From 97b8365cafc3a344a22d3980b8ed885f5c6d8357 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 9 Jan 2007 19:58:05 +0000 Subject: [PATCH] Merged gcj-eclipse branch to trunk. From-SVN: r120621 --- 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 | 76 - 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 | 899 +- gcc/java/parse.y | 16552 ---------------- gcc/java/typeck.c | 2 +- libjava/ChangeLog | 1231 ++ libjava/HACKING | 5 + libjava/Makefile.am | 447 +- libjava/Makefile.in | 3100 ++- libjava/boehm.cc | 3 + libjava/classpath/.cdtproject | 3 + libjava/classpath/.classpath | 14 + libjava/classpath/.cvsignore | 18 + .../.externalToolBuilders/Autogen.launch | 2 + .../ClasspathHeaders.launch | 2 + .../.externalToolBuilders/ClasspathJar.launch | 11 + .../CompileNative.launch | 2 + .../.externalToolBuilders/Configure.launch | 13 + .../CreateLocaleData.launch | 12 + libjava/classpath/.project | 77 + .../.settings/org.eclipse.jdt.core.prefs | 243 + .../.settings/org.eclipse.jdt.ui.prefs | 12 + libjava/classpath/AUTHORS | 13 +- libjava/classpath/ChangeLog | 12597 ++++++++++-- libjava/classpath/ChangeLog-2004 | 1068 +- libjava/classpath/ChangeLog-2005 | 2658 ++- 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 | 2508 ++- 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 | 122 +- libjava/classpath/examples/.cvsignore | 6 + libjava/classpath/examples/Makefile.am | 27 +- libjava/classpath/examples/Makefile.in | 36 +- .../examples/CORBA/NamingService/Demo.java | 3 +- .../gnu/classpath/examples/awt/aicas.png | Bin 0 -> 2320 bytes .../gnu/classpath/examples/awt/palme.gif | Bin 0 -> 502 bytes .../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 .../examples/swing/BrowserEditorKit.java | 57 + .../swing/ClasspathSwingActivityBoard.launch | 19 + .../gnu/classpath/examples/swing/Demo.java | 96 +- .../classpath/examples/swing/HtmlDemo.java | 428 +- .../examples/swing/TabbedPaneDemo.java | 145 +- .../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 + .../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 + .../jsr166/java/util/AbstractQueue.java | 166 + .../external/jsr166/java/util/ArrayDeque.java | 839 + .../external/jsr166/java/util/Deque.java | 547 + .../jsr166/java/util/NavigableMap.java | 395 + .../jsr166/java/util/NavigableSet.java | 290 + .../external/jsr166/java/util/Queue.java | 189 + .../concurrent/AbstractExecutorService.java | 270 + .../util/concurrent/ArrayBlockingQueue.java | 778 + .../java/util/concurrent/BlockingDeque.java | 613 + .../java/util/concurrent/BlockingQueue.java | 344 + .../concurrent/BrokenBarrierException.java | 38 + .../jsr166/java/util/concurrent/Callable.java | 36 + .../concurrent/CancellationException.java | 34 + .../util/concurrent/CompletionService.java | 97 + .../util/concurrent/ConcurrentHashMap.java | 1277 ++ .../concurrent/ConcurrentLinkedQueue.java | 480 + .../java/util/concurrent/ConcurrentMap.java | 134 + .../concurrent/ConcurrentNavigableMap.java | 148 + .../concurrent/ConcurrentSkipListMap.java | 3114 +++ .../concurrent/ConcurrentSkipListSet.java | 456 + .../util/concurrent/CopyOnWriteArraySet.java | 364 + .../java/util/concurrent/CountDownLatch.java | 290 + .../java/util/concurrent/CyclicBarrier.java | 454 + .../java/util/concurrent/DelayQueue.java | 487 + .../jsr166/java/util/concurrent/Delayed.java | 33 + .../java/util/concurrent/Exchanger.java | 656 + .../util/concurrent/ExecutionException.java | 65 + .../jsr166/java/util/concurrent/Executor.java | 112 + .../concurrent/ExecutorCompletionService.java | 174 + .../java/util/concurrent/ExecutorService.java | 306 + .../java/util/concurrent/Executors.java | 666 + .../jsr166/java/util/concurrent/Future.java | 142 + .../java/util/concurrent/FutureTask.java | 325 + .../util/concurrent/LinkedBlockingDeque.java | 1021 + .../util/concurrent/LinkedBlockingQueue.java | 807 + .../concurrent/PriorityBlockingQueue.java | 563 + .../RejectedExecutionException.java | 62 + .../concurrent/RejectedExecutionHandler.java | 33 + .../java/util/concurrent/RunnableFuture.java | 25 + .../concurrent/RunnableScheduledFuture.java | 29 + .../concurrent/ScheduledExecutorService.java | 159 + .../java/util/concurrent/ScheduledFuture.java | 19 + .../ScheduledThreadPoolExecutor.java | 626 + .../java/util/concurrent/Semaphore.java | 681 + .../util/concurrent/SynchronousQueue.java | 1127 ++ .../java/util/concurrent/ThreadFactory.java | 40 + .../util/concurrent/ThreadPoolExecutor.java | 1605 ++ .../jsr166/java/util/concurrent/TimeUnit.java | 331 + .../util/concurrent/TimeoutException.java | 38 + .../util/concurrent/atomic/AtomicBoolean.java | 133 + .../util/concurrent/atomic/AtomicInteger.java | 234 + .../concurrent/atomic/AtomicIntegerArray.java | 255 + .../atomic/AtomicIntegerFieldUpdater.java | 316 + .../util/concurrent/atomic/AtomicLong.java | 248 + .../concurrent/atomic/AtomicLongArray.java | 255 + .../atomic/AtomicLongFieldUpdater.java | 406 + .../atomic/AtomicMarkableReference.java | 161 + .../concurrent/atomic/AtomicReference.java | 124 + .../atomic/AtomicReferenceArray.java | 163 + .../atomic/AtomicReferenceFieldUpdater.java | 275 + .../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 + .../java/util/concurrent/locks/Lock.java | 327 + .../util/concurrent/locks/LockSupport.java | 352 + .../util/concurrent/locks/ReadWriteLock.java | 104 + .../util/concurrent/locks/ReentrantLock.java | 740 + .../locks/ReentrantReadWriteLock.java | 1346 ++ .../java/util/concurrent/locks/package.html | 50 + .../jsr166/java/util/concurrent/package.html | 222 + libjava/classpath/external/jsr166/readme | 45 + .../external/relaxngDatatype/.cvsignore | 2 + .../external/relaxngDatatype/Makefile.in | 11 +- libjava/classpath/external/sax/.cvsignore | 2 + libjava/classpath/external/sax/Makefile.in | 11 +- .../sax/org/xml/sax/AttributeList.java | 2 +- .../external/sax/org/xml/sax/Attributes.java | 2 +- .../sax/org/xml/sax/ContentHandler.java | 2 +- .../external/sax/org/xml/sax/DTDHandler.java | 2 +- .../sax/org/xml/sax/DocumentHandler.java | 2 +- .../sax/org/xml/sax/EntityResolver.java | 2 +- .../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 +- .../external/sax/org/xml/sax/Parser.java | 2 +- .../sax/org/xml/sax/SAXException.java | 2 +- .../xml/sax/SAXNotRecognizedException.java | 2 +- .../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 +- .../sax/org/xml/sax/ext/Attributes2.java | 2 +- .../sax/org/xml/sax/ext/Attributes2Impl.java | 2 +- .../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 +- .../sax/org/xml/sax/ext/Locator2.java | 2 +- .../sax/org/xml/sax/ext/Locator2Impl.java | 2 +- .../external/sax/org/xml/sax/ext/package.html | 2 +- .../xml/sax/helpers/AttributeListImpl.java | 2 +- .../org/xml/sax/helpers/AttributesImpl.java | 2 +- .../org/xml/sax/helpers/DefaultHandler.java | 2 +- .../sax/org/xml/sax/helpers/LocatorImpl.java | 2 +- .../org/xml/sax/helpers/NamespaceSupport.java | 2 +- .../sax/org/xml/sax/helpers/NewInstance.java | 2 +- .../org/xml/sax/helpers/ParserAdapter.java | 2 +- .../org/xml/sax/helpers/ParserFactory.java | 2 +- .../org/xml/sax/helpers/XMLFilterImpl.java | 2 +- .../org/xml/sax/helpers/XMLReaderAdapter.java | 2 +- .../org/xml/sax/helpers/XMLReaderFactory.java | 2 +- .../sax/org/xml/sax/helpers/package.html | 2 +- .../external/sax/org/xml/sax/package.html | 2 +- libjava/classpath/external/w3c_dom/.cvsignore | 2 + .../classpath/external/w3c_dom/COPYRIGHT.html | 106 + .../classpath/external/w3c_dom/Makefile.in | 11 +- libjava/classpath/gnu/CORBA/CDR/Vio.java | 5 +- .../classpath/gnu/CORBA/CollocatedOrbs.java | 164 + .../gnu/CORBA/Connected_objects.java | 10 + .../NamingService/Binding_iterator_impl.java | 6 +- .../gnu/CORBA/NamingService/Ext.java | 6 +- .../gnu/CORBA/NamingService/NameParser.java | 3 - .../CORBA/NamingService/NameTransformer.java | 6 +- .../NamingService/NamingServiceTransient.java | 42 +- .../CORBA/NamingService/TransientContext.java | 4 +- .../classpath/gnu/CORBA/OrbFunctional.java | 122 +- .../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 +- .../gnu/CORBA/Poa/gnuServantObject.java | 15 +- .../gnu/CORBA/SafeForDirectCalls.java | 50 + .../classpath/gnu/CORBA/SimpleDelegate.java | 40 +- libjava/classpath/gnu/classpath/.cvsignore | 1 + .../classpath/gnu/classpath/ListenerData.java | 136 + .../gnu/classpath/SystemProperties.java | 1 + .../gnu/classpath/debug/Component.java | 7 +- .../gnu/classpath/debug/SystemLogger.java | 41 +- .../gnu/java/awt/ComponentReshapeEvent.java | 85 + .../gnu/java/awt/LowPriorityEvent.java | 48 + .../gnu/java/awt/color/PyccConverter.java | 9 +- .../peer/gtk/GtkDragSourceContextPeer.java | 12 +- .../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 + .../gnu/java/awt/font/autofit/Latin.java | 177 + .../gnu/java/awt/font/autofit/LatinAxis.java | 53 + .../java/awt/font/autofit/LatinMetrics.java | 51 + .../gnu/java/awt/font/autofit/Scaler.java | 52 + .../gnu/java/awt/font/autofit/Script.java | 62 + .../java/awt/font/autofit/ScriptMetrics.java | 49 + .../gnu/java/awt/font/autofit/Segment.java | 47 + .../gnu/java/awt/font/autofit/Width.java | 46 + .../java/awt/font/opentype/CharGlyphMap.java | 2 +- .../java/awt/font/opentype/OpenTypeFont.java | 17 +- .../gnu/java/awt/font/opentype/Scaler.java | 12 + .../font/opentype/truetype/GlyphLoader.java | 5 + .../opentype/truetype/TrueTypeScaler.java | 6 + .../java/awt/font/opentype/truetype/Zone.java | 2 +- .../java/awt/java2d/AbstractGraphics2D.java | 181 +- .../gnu/java/awt/java2d/QuadSegment.java | 69 +- .../gnu/java/awt/java2d/ShapeCache.java | 85 + .../java/awt/java2d/TexturePaintContext.java | 8 +- .../gnu/java/awt/peer/ClasspathFontPeer.java | 14 - .../gnu/java/awt/peer/GLightweightPeer.java | 277 +- .../awt/peer/NativeEventLoopRunningEvent.java | 58 + .../gnu/java/awt/peer/gtk/AsyncImage.java | 283 + .../awt/peer/gtk/BufferedImageGraphics.java | 405 +- .../java/awt/peer/gtk/CairoGraphics2D.java | 509 +- .../gnu/java/awt/peer/gtk/CairoSurface.java | 128 +- .../awt/peer/gtk/CairoSurfaceGraphics.java | 216 +- .../java/awt/peer/gtk/ComponentGraphics.java | 299 +- .../awt/peer/gtk/FreetypeGlyphVector.java | 149 +- .../gnu/java/awt/peer/gtk/GdkFontMetrics.java | 143 - .../gnu/java/awt/peer/gtk/GdkFontPeer.java | 229 +- .../awt/peer/gtk/GdkGraphicsEnvironment.java | 8 +- .../gnu/java/awt/peer/gtk/GtkChoicePeer.java | 2 +- .../java/awt/peer/gtk/GtkComponentPeer.java | 73 +- .../gnu/java/awt/peer/gtk/GtkFramePeer.java | 22 +- .../java/awt/peer/gtk/GtkImageConsumer.java | 43 +- .../gnu/java/awt/peer/gtk/GtkMainThread.java | 190 + .../gnu/java/awt/peer/gtk/GtkToolkit.java | 112 +- .../java/awt/peer/gtk/GtkVolatileImage.java | 45 +- .../gnu/java/awt/peer/gtk/GtkWindowPeer.java | 78 +- .../awt/peer/gtk/VolatileImageGraphics.java | 209 +- .../headless/HeadlessGraphicsEnvironment.java | 118 + .../awt/peer/headless/HeadlessToolkit.java | 371 + .../gnu/java/awt/peer/qt/QtFontPeer.java | 11 - .../gnu/java/awt/peer/qt/QtGraphics.java | 7 +- .../java/awt/peer/swing/SwingButtonPeer.java | 22 +- .../java/awt/peer/swing/SwingComponent.java | 6 +- .../awt/peer/swing/SwingComponentPeer.java | 156 +- .../awt/peer/swing/SwingContainerPeer.java | 209 +- .../java/awt/peer/swing/SwingFramePeer.java | 11 +- .../java/awt/peer/swing/SwingLabelPeer.java | 48 +- .../java/awt/peer/swing/SwingListPeer.java | 352 + .../java/awt/peer/swing/SwingMenuBarPeer.java | 2 +- .../java/awt/peer/swing/SwingPanelPeer.java | 4 +- .../awt/peer/swing/SwingTextAreaPeer.java | 317 + .../awt/peer/swing/SwingTextFieldPeer.java | 32 +- .../java/awt/peer/swing/SwingWindowPeer.java | 8 +- .../gnu/java/awt/peer/x/XFontPeer.java | 7 - .../gnu/java/awt/peer/x/XFontPeer2.java | 6 - .../gnu/java/io/ObjectIdentityMap2Int.java | 292 + .../gnu/java/io/class-dependencies.conf | 75 + .../gnu/java/lang/InstrumentationImpl.java | 16 +- .../gnu/java/lang/management/BeanImpl.java | 437 +- .../lang/management/MemoryMXBeanImpl.java | 45 +- .../lang/management/MemoryPoolMXBeanImpl.java | 6 +- .../lang/reflect/ClassSignatureParser.java | 2 +- .../lang/reflect/GenericSignatureParser.java | 17 +- .../lang/reflect/MethodSignatureParser.java | 4 +- libjava/classpath/gnu/java/locale/.cvsignore | 1 + .../gnu/java/net/DefaultProxySelector.java | 80 + .../gnu/java/net/PlainDatagramSocketImpl.java | 254 +- .../gnu/java/net/PlainSocketImpl.java | 376 +- .../gnu/java/net/local/LocalSocketImpl.java | 7 +- .../net/protocol/http/HTTPConnection.java | 50 +- .../net/protocol/http/HTTPURLConnection.java | 40 +- .../gnu/java/net/protocol/jar/Handler.java | 46 +- .../gnu/java/nio/DatagramChannelImpl.java | 165 +- .../java/nio/DatagramChannelSelectionKey.java | 13 +- .../gnu/java/nio/EpollSelectionKeyImpl.java | 122 + .../gnu/java/nio/EpollSelectorImpl.java | 399 + .../nio/{channels => }/FileChannelImpl.java | 173 +- .../classpath/gnu/java/nio/FileLockImpl.java | 2 - .../gnu/java/nio/KqueueSelectionKeyImpl.java | 189 + .../gnu/java/nio/KqueueSelectorImpl.java | 527 + libjava/classpath/gnu/java/nio/NIOSocket.java | 29 +- .../classpath/gnu/java/nio/NIOSocketImpl.java | 110 + libjava/classpath/gnu/java/nio/PipeImpl.java | 34 +- .../gnu/java/nio/SelectionKeyImpl.java | 1 + .../classpath/gnu/java/nio/SelectorImpl.java | 20 +- .../gnu/java/nio/SelectorProviderImpl.java | 37 + .../gnu/java/nio/ServerSocketChannelImpl.java | 39 +- .../nio/ServerSocketChannelSelectionKey.java | 13 +- .../gnu/java/nio/SocketChannelImpl.java | 266 +- .../java/nio/SocketChannelSelectionKey.java | 13 +- .../nio/SocketChannelSelectionKeyImpl.java | 11 +- .../gnu/java/nio/VMChannelOwner.java | 57 + .../gnu/java/rmi/server/ActivatableRef.java | 8 +- .../java/rmi/server/RMIClassLoaderImpl.java | 69 +- .../java/rmi/server/RMIObjectInputStream.java | 61 +- .../classpath/gnu/java/security/.cvsignore | 1 + .../classpath/gnu/java/security/Engine.java | 174 +- .../classpath/gnu/java/security/Requires.java | 59 + .../security/action/GetPropertyAction.java | 4 +- .../action/GetSecurityPropertyAction.java | 4 +- .../security/key/rsa/RSAKeyPairRawCodec.java | 4 +- .../security/util/ByteBufferOutputStream.java | 118 + .../gnu/java/util/DoubleEnumeration.java | 12 +- .../util/prefs/GConfBasedPreferences.java | 27 +- .../util/prefs/gconf/GConfNativePeer.java | 53 +- .../gnu/java/util/regex/CharIndexed.java | 17 + .../util/regex/CharIndexedCharSequence.java | 13 + .../util/regex/CharIndexedInputStream.java | 14 + libjava/classpath/gnu/java/util/regex/RE.java | 34 +- .../gnu/java/util/regex/REMatch.java | 4 +- .../gnu/java/util/regex/RESyntax.java | 11 +- .../gnu/java/util/regex/REToken.java | 15 + .../gnu/java/util/regex/RETokenChar.java | 12 +- .../gnu/java/util/regex/RETokenEnd.java | 15 + .../gnu/java/util/regex/RETokenEndSub.java | 4 + .../java/util/regex/RETokenNamedProperty.java | 8 + .../gnu/java/util/regex/RETokenOneOf.java | 1 + .../gnu/java/util/regex/RETokenRepeated.java | 199 +- .../gnu/javax/crypto/RSACipherImpl.java | 67 +- .../crypto/jce/cipher/CipherAdapter.java | 39 +- .../gnu/javax/crypto/key/GnuPBEKey.java | 95 + .../classpath/gnu/javax/crypto/pad/PKCS7.java | 4 +- .../gnu/javax/management/Server.java | 2200 ++ .../naming/giop/ContextContinuation.java | 956 + .../gnu/javax/naming/giop/CorbalocParser.java | 439 + .../naming/giop/GiopNamingEnumeration.java | 187 + .../naming/giop/GiopNamingServiceFactory.java | 177 + .../giop/GiopNamingServiceURLContext.java | 840 + .../naming/giop/ListBindingsEnumeration.java | 116 + .../javax/naming/giop/ListEnumeration.java | 116 + .../javax/naming/ictxImpl/trans/GnuName.java | 467 + .../corbaname/corbanameURLContextFactory.java | 53 + .../jndi/url/rmi/ContextContinuation.java | 597 + .../jndi/url/rmi/ListBindingsEnumeration.java | 97 + .../naming/jndi/url/rmi/ListEnumeration.java | 80 + .../naming/jndi/url/rmi/RmiContinuation.java | 594 + .../jndi/url/rmi/RmiNamingEnumeration.java | 130 + .../naming/jndi/url/rmi/rmiURLContext.java | 637 + .../jndi/url/rmi/rmiURLContextFactory.java | 66 + .../javax/net/ssl/AbstractSessionContext.java | 288 + .../javax/net/ssl/PreSharedKeyManager.java | 54 + .../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 + .../classpath/gnu/javax/net/ssl/Session.java | 364 + .../javax/net/ssl/SessionStoreException.java | 59 + .../net/ssl/provider/AbstractHandshake.java | 1205 ++ .../gnu/javax/net/ssl/provider/Alert.java | 428 +- .../net/ssl/provider/AlertException.java | 37 +- .../gnu/javax/net/ssl/provider/Builder.java | 66 + .../javax/net/ssl/provider/Certificate.java | 209 +- .../net/ssl/provider/CertificateBuilder.java | 94 + .../net/ssl/provider/CertificateRequest.java | 230 +- .../provider/CertificateRequestBuilder.java | 113 + .../provider/CertificateStatusRequest.java | 272 + .../ssl/provider/CertificateStatusType.java | 13 + .../net/ssl/provider/CertificateType.java | 56 +- .../net/ssl/provider/CertificateURL.java | 388 + .../net/ssl/provider/CertificateVerify.java | 54 +- .../net/ssl/provider/CipherAlgorithm.java | 47 + .../javax/net/ssl/provider/CipherSuite.java | 1223 +- .../net/ssl/provider/CipherSuiteList.java | 283 + .../provider/ClientCertificateTypeList.java | 227 + .../ssl/provider/ClientDHE_PSKParameters.java | 122 + .../provider/ClientDiffieHellmanPublic.java | 129 + .../net/ssl/provider/ClientHandshake.java | 1150 ++ .../javax/net/ssl/provider/ClientHello.java | 323 +- .../net/ssl/provider/ClientHelloBuilder.java | 137 + .../javax/net/ssl/provider/ClientHelloV2.java | 158 + .../net/ssl/provider/ClientKeyExchange.java | 161 +- .../provider/ClientKeyExchangeBuilder.java | 75 + .../net/ssl/provider/ClientPSKParameters.java | 125 + .../ssl/provider/ClientRSA_PSKParameters.java | 126 + .../net/ssl/provider/CompressionMethod.java | 51 +- .../ssl/provider/CompressionMethodList.java | 281 + .../javax/net/ssl/provider/Constructed.java | 47 +- .../javax/net/ssl/provider/ContentType.java | 72 +- .../gnu/javax/net/ssl/provider/Context.java | 334 - .../gnu/javax/net/ssl/provider/Debug.java | 66 + .../javax/net/ssl/provider/DelegatedTask.java | 93 + .../javax/net/ssl/provider/DiffieHellman.java | 6 +- .../net/ssl/provider/DigestInputStream.java | 103 - .../net/ssl/provider/DigestOutputStream.java | 107 - .../net/ssl/provider/EmptyExchangeKeys.java | 77 + .../provider/EncryptedPreMasterSecret.java | 151 + .../javax/net/ssl/provider/Enumerated.java | 79 - .../javax/net/ssl/provider/ExchangeKeys.java | 54 + .../gnu/javax/net/ssl/provider/Extension.java | 260 +- .../javax/net/ssl/provider/ExtensionList.java | 290 + .../javax/net/ssl/provider/Extensions.java | 159 - .../gnu/javax/net/ssl/provider/Finished.java | 178 +- .../ssl/provider/GNUSecurityParameters.java | 490 - .../gnu/javax/net/ssl/provider/Handshake.java | 484 +- .../javax/net/ssl/provider/HelloRequest.java | 70 + .../ssl/provider/InputSecurityParameters.java | 336 + .../ssl/provider/JCESecurityParameters.java | 307 - .../net/ssl/provider/JDBCSessionContext.java | 356 - .../gnu/javax/net/ssl/provider/Jessie.java | 35 +- .../net/ssl/provider/JessieDHPrivateKey.java | 99 - .../net/ssl/provider/JessieDHPublicKey.java | 99 - .../net/ssl/provider/JessieRSAPrivateKey.java | 98 - .../net/ssl/provider/JessieRSAPublicKey.java | 98 - .../ssl/provider/KeyExchangeAlgorithm.java | 57 + .../gnu/javax/net/ssl/provider/KeyPool.java | 110 - .../javax/net/ssl/provider/MacAlgorithm.java | 47 + .../net/ssl/provider/MaxFragmentLength.java | 59 + .../provider/OutputSecurityParameters.java | 297 + .../net/ssl/provider/OverflowException.java | 57 - .../PreSharedKeyManagerFactoryImpl.java | 118 + .../net/ssl/provider/ProtocolVersion.java | 73 +- .../gnu/javax/net/ssl/provider/Random.java | 120 +- .../gnu/javax/net/ssl/provider/Record.java | 198 + .../javax/net/ssl/provider/RecordInput.java | 232 - .../net/ssl/provider/RecordInputStream.java | 106 - .../net/ssl/provider/RecordOutputStream.java | 189 - .../ssl/provider/RecordingInputStream.java | 131 - .../net/ssl/provider/SSLContextImpl.java | 315 + .../javax/net/ssl/provider/SSLEngineImpl.java | 842 + .../net/ssl/provider/SSLRSASignature.java | 235 - .../net/ssl/provider/SSLRSASignatureImpl.java | 233 + .../net/ssl/provider/SSLServerSocket.java | 283 - .../ssl/provider/SSLServerSocketFactory.java | 136 - .../provider/SSLServerSocketFactoryImpl.java | 108 + .../net/ssl/provider/SSLServerSocketImpl.java | 199 + .../gnu/javax/net/ssl/provider/SSLSocket.java | 3515 ---- .../net/ssl/provider/SSLSocketFactory.java | 133 - .../ssl/provider/SSLSocketFactoryImpl.java | 137 + .../javax/net/ssl/provider/SSLSocketImpl.java | 833 + .../ssl/provider/SSLSocketInputStream.java | 181 - .../ssl/provider/SSLSocketOutputStream.java | 115 - .../net/ssl/provider/SSLv3HMacMD5Impl.java | 116 + .../net/ssl/provider/SSLv3HMacSHAImpl.java | 116 + .../net/ssl/provider/SecurityParameters.java | 178 - .../ssl/provider/ServerDHE_PSKParameters.java | 151 + .../net/ssl/provider/ServerDHParams.java | 248 + .../net/ssl/provider/ServerHandshake.java | 1377 ++ .../javax/net/ssl/provider/ServerHello.java | 275 +- .../net/ssl/provider/ServerHelloBuilder.java | 131 + .../net/ssl/provider/ServerHelloDone.java | 66 + .../net/ssl/provider/ServerKeyExchange.java | 319 +- .../provider/ServerKeyExchangeBuilder.java | 89 + .../ssl/provider/ServerKeyExchangeParams.java | 50 + .../net/ssl/provider/ServerNameList.java | 311 + .../net/ssl/provider/ServerPSKParameters.java | 127 + .../net/ssl/provider/ServerRSAParams.java | 163 + .../ssl/provider/ServerRSA_PSKParameters.java | 62 + .../gnu/javax/net/ssl/provider/Session.java | 381 - .../net/ssl/provider/SessionContext.java | 250 - .../javax/net/ssl/provider/SessionImpl.java | 198 + .../gnu/javax/net/ssl/provider/Signature.java | 140 +- .../net/ssl/provider/SignatureAlgorithm.java | 62 + .../ssl/provider/SimpleSessionContext.java | 146 + .../net/ssl/provider/SynchronizedRandom.java | 104 - .../javax/net/ssl/provider/TruncatedHMAC.java | 76 + .../net/ssl/provider/TrustedAuthorities.java | 298 + .../provider/UnresolvedExtensionValue.java | 83 + .../gnu/javax/net/ssl/provider/Util.java | 109 +- .../net/ssl/provider/X500PrincipalList.java | 272 + .../ssl/provider/X509KeyManagerFactory.java | 95 +- .../ssl/provider/X509TrustManagerFactory.java | 147 +- .../net/ssl/provider/XMLSessionContext.java | 619 - .../gnu/javax/rmi/CORBA/UtilDelegateImpl.java | 30 +- .../callback/AbstractCallbackHandler.java | 97 +- .../auth/callback/CertificateCallback.java | 64 + .../swing/text/html/css/BorderStyle.java | 64 + .../swing/text/html/css/BorderWidth.java | 78 + .../javax/swing/text/html/css/CSSColor.java | 170 + .../text/html/css/CSSLexicalException.java | 60 + .../javax/swing/text/html/css/CSSParser.java | 500 + .../text/html/css/CSSParserCallback.java | 81 + .../text/html/css/CSSParserException.java | 62 + .../javax/swing/text/html/css/CSSScanner.java | 718 + .../javax/swing/text/html/css/FontSize.java | 273 + .../javax/swing/text/html/css/FontStyle.java | 80 + .../javax/swing/text/html/css/FontWeight.java | 84 + .../gnu/javax/swing/text/html/css/Length.java | 283 + .../javax/swing/text/html/css/Selector.java | 244 + .../text/html/parser/GnuParserDelegator.java | 3 +- .../swing/text/html/parser/HTML_401F.java | 4 +- .../swing/text/html/parser/HTML_401Swing.java | 91 - .../swing/text/html/parser/htmlValidator.java | 5 +- .../text/html/parser/support/Parser.java | 70 +- .../html/parser/support/low/Constants.java | 11 + .../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 +- .../gnu/xml/dom/ls/SAXEventSink.java | 8 +- .../classpath/gnu/xml/stream/SAXParser.java | 15 +- .../gnu/xml/stream/XMLStreamWriterImpl.java | 6 +- .../xml/transform/SAXTemplatesHandler.java | 97 + .../xml/transform/SAXTransformerHandler.java | 111 + .../gnu/xml/transform/StreamSerializer.java | 3 +- .../xml/transform/TransformerFactoryImpl.java | 52 +- .../gnu/xml/transform/XSLURIResolver.java | 21 +- libjava/classpath/gnu/xml/xpath/Expr.java | 35 + libjava/classpath/include/.cvsignore | 9 + .../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 +- .../gnu_java_awt_peer_gtk_CairoSurface.h | 2 +- .../gnu_java_awt_peer_gtk_GdkFontPeer.h | 16 + .../gnu_java_awt_peer_gtk_GtkChoicePeer.h | 6 +- .../gnu_java_awt_peer_gtk_GtkFramePeer.h | 4 + .../gnu_java_awt_peer_gtk_GtkToolkit.h | 3 +- .../gnu_java_net_VMPlainDatagramSocketImpl.h | 30 - .../include/gnu_java_net_VMPlainSocketImpl.h | 34 +- .../include/gnu_java_nio_EpollSelectorImpl.h | 37 + .../include/gnu_java_nio_FileChannelImpl.h | 30 + .../include/gnu_java_nio_KqueueSelectorImpl.h | 39 + .../include/gnu_java_nio_VMChannel.h | 34 +- .../classpath/include/gnu_java_nio_VMPipe.h | 2 +- .../gnu_java_nio_channels_FileChannelImpl.h | 46 - ...nu_java_util_prefs_gconf_GConfNativePeer.h | 6 +- .../include/java_net_VMInetAddress.h | 1 + .../include/java_net_VMNetworkInterface.h | 3 +- .../classpath/java/applet/AppletContext.java | 8 +- libjava/classpath/java/awt/AWTEvent.java | 5 + .../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 +- .../classpath/java/awt/CheckboxMenuItem.java | 4 +- libjava/classpath/java/awt/Choice.java | 25 +- libjava/classpath/java/awt/Color.java | 33 +- libjava/classpath/java/awt/Component.java | 822 +- libjava/classpath/java/awt/Container.java | 350 +- libjava/classpath/java/awt/Dialog.java | 21 + libjava/classpath/java/awt/EventQueue.java | 392 +- 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 +- .../java/awt/KeyboardFocusManager.java | 16 +- .../java/awt/LightweightDispatcher.java | 384 +- libjava/classpath/java/awt/List.java | 1887 +- libjava/classpath/java/awt/Menu.java | 661 +- 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 +- .../classpath/java/awt/RenderingHints.java | 13 +- libjava/classpath/java/awt/ScrollPane.java | 62 +- .../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 +- .../java/awt/datatransfer/FlavorMap.java | 4 +- .../java/awt/datatransfer/FlavorTable.java | 4 +- .../java/awt/datatransfer/MimeType.java | 281 + .../awt/datatransfer/SystemFlavorMap.java | 12 +- .../java/awt/dnd/DragGestureEvent.java | 14 +- .../java/awt/dnd/DragGestureRecognizer.java | 16 +- .../classpath/java/awt/dnd/DragSource.java | 36 +- .../java/awt/dnd/DragSourceContext.java | 50 +- .../classpath/java/awt/dnd/DropTarget.java | 143 +- .../java/awt/dnd/DropTargetContext.java | 23 +- .../java/awt/dnd/DropTargetDragEvent.java | 5 +- .../java/awt/dnd/DropTargetDropEvent.java | 4 +- .../java/awt/dnd/DropTargetEvent.java | 4 + .../java/awt/event/ComponentEvent.java | 39 +- .../java/awt/font/FontRenderContext.java | 8 +- .../classpath/java/awt/font/TextHitInfo.java | 5 +- .../classpath/java/awt/font/TextLayout.java | 1015 +- .../java/awt/geom/AffineTransform.java | 16 +- libjava/classpath/java/awt/geom/Arc2D.java | 44 +- .../classpath/java/awt/geom/GeneralPath.java | 39 +- .../java/awt/geom/RectangularShape.java | 5 +- .../java/awt/geom/RoundRectangle2D.java | 405 +- .../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 | 517 +- .../java/awt/image/BandCombineOp.java | 128 +- .../java/awt/image/BufferedImage.java | 359 +- .../java/awt/image/ColorConvertOp.java | 447 +- .../classpath/java/awt/image/ColorModel.java | 40 +- .../java/awt/image/ComponentColorModel.java | 31 +- .../classpath/java/awt/image/ConvolveOp.java | 131 +- .../java/awt/image/CropImageFilter.java | 9 +- .../java/awt/image/DirectColorModel.java | 16 +- .../java/awt/image/ImageConsumer.java | 2 +- .../classpath/java/awt/image/ImageFilter.java | 328 +- .../java/awt/image/IndexColorModel.java | 62 +- .../classpath/java/awt/image/LookupOp.java | 141 +- .../java/awt/image/MemoryImageSource.java | 76 +- .../java/awt/image/PixelGrabber.java | 4 +- .../java/awt/image/RGBImageFilter.java | 416 +- libjava/classpath/java/awt/image/Raster.java | 7 +- .../java/awt/image/RenderedImage.java | 2 +- .../java/awt/image/ReplicateScaleFilter.java | 153 +- .../classpath/java/awt/image/RescaleOp.java | 295 +- .../classpath/java/awt/image/SampleModel.java | 29 +- .../image/SinglePixelPackedSampleModel.java | 121 +- .../java/awt/image/WritableRaster.java | 24 +- .../awt/image/renderable/ParameterBlock.java | 24 +- .../awt/image/renderable/RenderableImage.java | 2 +- .../image/renderable/RenderableImageOp.java | 2 +- .../classpath/java/beans/BeanDescriptor.java | 12 +- libjava/classpath/java/beans/Beans.java | 4 +- .../beans/DefaultPersistenceDelegate.java | 4 +- libjava/classpath/java/beans/DesignMode.java | 84 +- libjava/classpath/java/beans/Encoder.java | 5 +- .../classpath/java/beans/EventHandler.java | 18 +- .../java/beans/EventSetDescriptor.java | 20 +- .../java/beans/FeatureDescriptor.java | 6 +- .../java/beans/IndexedPropertyDescriptor.java | 8 +- .../classpath/java/beans/Introspector.java | 13 +- .../java/beans/PersistenceDelegate.java | 4 +- .../java/beans/PropertyDescriptor.java | 18 +- .../java/beans/PropertyEditorManager.java | 7 +- .../classpath/java/beans/SimpleBeanInfo.java | 15 +- libjava/classpath/java/beans/Statement.java | 22 +- .../BeanContextServicesSupport.java | 616 +- .../beans/beancontext/BeanContextSupport.java | 408 +- .../classpath/java/io/CharArrayWriter.java | 6 +- .../classpath/java/io/DeleteFileHelper.java | 13 +- libjava/classpath/java/io/File.java | 107 +- libjava/classpath/java/io/FileDescriptor.java | 7 +- .../classpath/java/io/FileInputStream.java | 20 +- .../classpath/java/io/FileOutputStream.java | 26 +- .../classpath/java/io/InputStreamReader.java | 62 +- .../classpath/java/io/ObjectInputStream.java | 136 +- .../classpath/java/io/ObjectOutputStream.java | 365 +- .../classpath/java/io/ObjectStreamClass.java | 465 +- .../classpath/java/io/ObjectStreamField.java | 47 +- .../classpath/java/io/OutputStreamWriter.java | 6 + .../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 +- .../classpath/java/io/RandomAccessFile.java | 19 +- libjava/classpath/java/io/Reader.java | 19 +- .../java/io/SequenceInputStream.java | 26 +- libjava/classpath/java/io/StringWriter.java | 21 + libjava/classpath/java/io/Writer.java | 23 +- .../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 +- .../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 +- .../classpath/java/lang/ProcessBuilder.java | 337 + .../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 +- .../classpath/java/lang/StringBuilder.java | 3 +- .../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 +- .../java/lang/annotation/Annotation.java | 3 +- .../java/lang/annotation/Documented.java | 50 + .../java/lang/annotation/ElementType.java | 59 + .../IncompleteAnnotationException.java | 7 +- .../java/lang/annotation/Inherited.java | 51 + .../java/lang/annotation/Retention.java | 59 + .../java/lang/annotation/RetentionPolicy.java | 66 + .../java/lang/annotation/Target.java | 52 + .../java/lang/class-dependencies.conf | 58 + .../java/lang/instrument/ClassDefinition.java | 6 +- .../lang/instrument/ClassFileTransformer.java | 3 +- .../lang/management/ManagementFactory.java | 233 +- .../lang/management/MemoryPoolMXBean.java | 2 +- .../java/lang/management/MemoryType.java | 51 + .../java/lang/management/RuntimeMXBean.java | 4 +- .../java/lang/management/ThreadInfo.java | 26 +- .../java/lang/ref/PhantomReference.java | 10 +- .../classpath/java/lang/ref/Reference.java | 23 +- .../java/lang/ref/ReferenceQueue.java | 65 +- .../java/lang/ref/SoftReference.java | 12 +- .../java/lang/ref/WeakReference.java | 10 +- .../java/lang/reflect/AccessibleObject.java | 6 +- .../java/lang/reflect/AnnotatedElement.java | 6 +- .../classpath/java/lang/reflect/Array.java | 4 +- .../java/lang/reflect/GenericDeclaration.java | 3 +- .../classpath/java/lang/reflect/Proxy.java | 10 +- .../java/lang/reflect/TypeVariable.java | 7 +- libjava/classpath/java/math/BigDecimal.java | 67 +- libjava/classpath/java/math/BigInteger.java | 80 +- libjava/classpath/java/math/MathContext.java | 64 +- libjava/classpath/java/math/RoundingMode.java | 89 + .../java/math/class-dependencies.conf | 58 + .../classpath/java/net/DatagramSocket.java | 43 +- libjava/classpath/java/net/Inet6Address.java | 2 +- libjava/classpath/java/net/InetAddress.java | 8 +- .../classpath/java/net/MulticastSocket.java | 46 +- .../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 +- .../classpath/java/net/URLClassLoader.java | 6 +- libjava/classpath/java/net/URLConnection.java | 66 +- .../java/net/class-dependencies.conf | 122 + libjava/classpath/java/nio/ByteBuffer.java | 10 +- libjava/classpath/java/nio/CharBuffer.java | 45 +- .../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 +- .../classpath/java/nio/channels/Channel.java | 5 +- .../classpath/java/nio/channels/Selector.java | 4 +- .../spi/AbstractSelectableChannel.java | 15 +- .../nio/channels/spi/AbstractSelector.java | 8 +- .../classpath/java/nio/charset/Charset.java | 23 +- .../java/nio/charset/spi/CharsetProvider.java | 4 +- .../java/nio/class-dependencies.conf | 58 + .../java/rmi/server/LoaderHandler.java | 5 +- .../java/rmi/server/RMIClassLoader.java | 17 +- .../java/rmi/server/RMIClassLoaderSpi.java | 10 +- .../java/security/AccessControlContext.java | 22 +- .../java/security/AccessController.java | 12 +- .../security/AlgorithmParameterGenerator.java | 100 +- .../java/security/AlgorithmParameters.java | 125 +- .../java/security/AlgorithmParametersSpi.java | 4 +- .../java/security/IdentityScope.java | 2 +- .../classpath/java/security/KeyFactory.java | 101 +- .../java/security/KeyFactorySpi.java | 7 +- .../java/security/KeyPairGenerator.java | 91 +- libjava/classpath/java/security/KeyStore.java | 134 +- .../classpath/java/security/KeyStoreSpi.java | 2 +- .../java/security/MessageDigest.java | 121 +- .../java/security/MessageDigestSpi.java | 19 + .../java/security/PermissionCollection.java | 4 +- .../classpath/java/security/Permissions.java | 2 +- .../java/security/PrivilegedAction.java | 6 +- .../security/PrivilegedExceptionAction.java | 6 +- .../java/security/SecureClassLoader.java | 55 +- .../classpath/java/security/SecureRandom.java | 126 +- libjava/classpath/java/security/Security.java | 12 +- .../classpath/java/security/Signature.java | 122 +- .../classpath/java/security/SignatureSpi.java | 19 + libjava/classpath/java/security/acl/Acl.java | 4 +- .../classpath/java/security/acl/AclEntry.java | 6 +- .../classpath/java/security/acl/Group.java | 4 +- .../java/security/cert/CertPath.java | 4 +- .../java/security/cert/CertPathBuilder.java | 113 +- .../java/security/cert/CertPathValidator.java | 103 +- .../java/security/cert/CertStore.java | 121 +- .../java/security/cert/CertStoreSpi.java | 6 +- .../security/cert/CertificateFactory.java | 136 +- .../security/cert/CertificateFactorySpi.java | 10 +- .../cert/CollectionCertStoreParameters.java | 5 +- .../security/cert/PKIXBuilderParameters.java | 4 +- .../security/cert/PKIXCertPathChecker.java | 5 +- .../java/security/cert/PKIXParameters.java | 19 +- .../java/security/cert/PolicyNode.java | 12 +- .../security/cert/PolicyQualifierInfo.java | 5 +- .../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 +- .../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 +- .../text/AttributedCharacterIterator.java | 29 +- .../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 +- .../classpath/java/text/DecimalFormat.java | 3149 +-- .../java/text/DecimalFormatSymbols.java | 4 +- .../classpath/java/text/MessageFormat.java | 2 +- libjava/classpath/java/text/NumberFormat.java | 21 +- .../classpath/java/text/SimpleDateFormat.java | 20 +- libjava/classpath/java/util/.cvsignore | 1 + .../java/util/AbstractCollection.java | 48 +- libjava/classpath/java/util/AbstractList.java | 464 +- libjava/classpath/java/util/AbstractMap.java | 209 +- .../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 +- .../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 +- .../classpath/java/util/IdentityHashMap.java | 288 +- .../IllegalFormatConversionException.java | 6 +- libjava/classpath/java/util/Iterator.java | 6 +- .../classpath/java/util/LinkedHashMap.java | 26 +- .../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 +- .../java/util/ListResourceBundle.java | 8 +- libjava/classpath/java/util/Locale.java | 24 +- libjava/classpath/java/util/Map.java | 24 +- .../classpath/java/util/PriorityQueue.java | 335 + libjava/classpath/java/util/Properties.java | 5 +- .../java/util/PropertyResourceBundle.java | 10 +- .../classpath/java/util/ResourceBundle.java | 134 +- 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 +- .../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 +- .../java/util/class-dependencies.conf | 78 + .../util/concurrent/CopyOnWriteArrayList.java | 490 + .../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 +- .../java/util/logging/LogManager.java | 69 +- .../java/util/logging/LoggingMXBean.java | 2 +- .../java/util/prefs/Preferences.java | 4 +- .../classpath/java/util/regex/Matcher.java | 27 +- libjava/classpath/java/util/zip/Deflater.java | 24 +- .../java/util/zip/DeflaterEngine.java | 6 +- libjava/classpath/java/util/zip/Inflater.java | 26 +- libjava/classpath/java/util/zip/ZipFile.java | 137 +- .../accessibility/AccessibleRelationSet.java | 3 +- .../accessibility/AccessibleStateSet.java | 2 +- libjava/classpath/javax/crypto/Cipher.java | 199 +- .../javax/crypto/CipherOutputStream.java | 180 +- .../javax/crypto/ExemptionMechanism.java | 117 +- .../classpath/javax/crypto/KeyAgreement.java | 116 +- .../classpath/javax/crypto/KeyGenerator.java | 114 +- libjava/classpath/javax/crypto/Mac.java | 131 +- libjava/classpath/javax/crypto/MacSpi.java | 18 + .../javax/crypto/SecretKeyFactory.java | 108 +- libjava/classpath/javax/imageio/IIOImage.java | 13 +- libjava/classpath/javax/imageio/ImageIO.java | 128 +- .../classpath/javax/imageio/ImageReader.java | 18 +- .../classpath/javax/imageio/ImageWriter.java | 11 +- .../imageio/metadata/IIOMetadataFormat.java | 6 +- .../metadata/IIOMetadataFormatImpl.java | 33 +- .../javax/imageio/spi/IIORegistry.java | 3 - .../javax/imageio/spi/IIOServiceProvider.java | 4 +- .../imageio/spi/ImageInputStreamSpi.java | 6 +- .../imageio/spi/ImageOutputStreamSpi.java | 6 +- .../imageio/spi/RegisterableService.java | 4 +- .../javax/imageio/spi/ServiceRegistry.java | 47 +- .../BadAttributeValueExpException.java | 91 + .../BadBinaryOpValueExpException.java | 102 + .../BadStringOperationException.java | 92 + .../InstanceAlreadyExistsException.java | 76 + .../management/InstanceNotFoundException.java | 76 + .../InvalidApplicationException.java | 92 + .../javax/management/MBeanAttributeInfo.java | 13 +- .../management/MBeanConstructorInfo.java | 25 +- .../javax/management/MBeanFeatureInfo.java | 2 +- .../classpath/javax/management/MBeanInfo.java | 23 +- .../javax/management/MBeanOperationInfo.java | 29 +- .../javax/management/MBeanPermission.java | 562 + .../javax/management/MBeanRegistration.java | 95 + .../MBeanRegistrationException.java | 84 + .../javax/management/MBeanServer.java | 1199 ++ .../javax/management/MBeanServerBuilder.java | 102 + .../management/MBeanServerConnection.java | 768 + .../javax/management/MBeanServerDelegate.java | 308 + .../management/MBeanServerDelegateMBean.java | 101 + .../javax/management/MBeanServerFactory.java | 413 + .../management/MBeanServerNotification.java | 103 + .../management/MBeanServerPermission.java | 470 + .../management/MBeanTrustPermission.java | 105 + .../MalformedObjectNameException.java | 76 + .../javax/management/ObjectInstance.java | 147 + .../javax/management/ObjectName.java | 775 + .../classpath/javax/management/QueryExp.java | 87 + .../management/RuntimeErrorException.java | 115 + .../management/RuntimeMBeanException.java | 114 + .../management/ServiceNotFoundException.java | 75 + .../javax/management/StandardMBean.java | 32 +- .../classpath/javax/management/ValueExp.java | 86 + .../loading/ClassLoaderRepository.java | 139 + .../openmbean/InvalidOpenTypeException.java | 76 + .../openmbean/KeyAlreadyExistsException.java | 77 + .../openmbean/OpenMBeanAttributeInfo.java | 120 + .../OpenMBeanAttributeInfoSupport.java | 546 + .../openmbean/OpenMBeanConstructorInfo.java | 112 + .../OpenMBeanConstructorInfoSupport.java | 174 + .../management/openmbean/OpenMBeanInfo.java | 154 + .../openmbean/OpenMBeanInfoSupport.java | 191 + .../openmbean/OpenMBeanOperationInfo.java | 154 + .../OpenMBeanOperationInfoSupport.java | 240 + .../openmbean/OpenMBeanParameterInfo.java | 190 + .../OpenMBeanParameterInfoSupport.java | 511 + .../javax/management/openmbean/OpenType.java | 6 +- .../management/openmbean/SimpleType.java | 2 +- .../management/openmbean/TabularData.java | 45 +- .../openmbean/TabularDataSupport.java | 652 + .../javax/naming/CannotProceedException.java | 6 +- .../classpath/javax/naming/CompositeName.java | 4 +- .../classpath/javax/naming/CompoundName.java | 4 +- libjava/classpath/javax/naming/Context.java | 10 +- .../javax/naming/InitialContext.java | 20 +- libjava/classpath/javax/naming/Name.java | 18 +- .../javax/naming/NamingEnumeration.java | 4 +- libjava/classpath/javax/naming/Reference.java | 4 +- .../javax/naming/ReferralException.java | 2 +- .../javax/naming/directory/Attribute.java | 2 +- .../javax/naming/directory/Attributes.java | 4 +- .../naming/directory/BasicAttribute.java | 4 +- .../naming/directory/BasicAttributes.java | 4 +- .../javax/naming/directory/DirContext.java | 36 +- .../naming/directory/InitialDirContext.java | 37 +- .../javax/naming/ldap/ControlFactory.java | 2 +- .../javax/naming/ldap/InitialLdapContext.java | 12 +- .../naming/ldap/LdapReferralException.java | 5 +- .../javax/naming/spi/DirObjectFactory.java | 2 +- .../javax/naming/spi/DirStateFactory.java | 2 +- .../javax/naming/spi/DirectoryManager.java | 4 +- .../naming/spi/InitialContextFactory.java | 3 +- .../spi/InitialContextFactoryBuilder.java | 10 +- .../javax/naming/spi/NamingManager.java | 87 +- .../javax/naming/spi/ObjectFactory.java | 5 +- .../naming/spi/ObjectFactoryBuilder.java | 4 +- .../classpath/javax/naming/spi/Resolver.java | 41 +- .../javax/naming/spi/StateFactory.java | 2 +- .../ssl/CertPathTrustManagerParameters.java | 71 + .../net/ssl/HandshakeCompletedEvent.java | 31 + .../javax/net/ssl/HttpsURLConnection.java | 45 + .../javax/net/ssl/KeyManagerFactory.java | 106 +- .../net/ssl/KeyStoreBuilderParameters.java | 48 + .../classpath/javax/net/ssl/SSLContext.java | 148 +- .../javax/net/ssl/SSLContextSpi.java | 22 + .../classpath/javax/net/ssl/SSLEngine.java | 442 + .../javax/net/ssl/SSLEngineResult.java | 194 + .../classpath/javax/net/ssl/SSLSession.java | 67 + .../javax/net/ssl/SSLSocketFactory.java | 2 +- .../javax/net/ssl/TrustManagerFactory.java | 103 +- .../javax/net/ssl/X509ExtendedKeyManager.java | 96 + .../classpath/javax/print/PrintService.java | 14 +- .../javax/print/attribute/Attribute.java | 2 +- .../javax/print/attribute/AttributeSet.java | 6 +- .../attribute/AttributeSetUtilities.java | 8 +- .../print/attribute/HashAttributeSet.java | 14 +- .../attribute/standard/Chromaticity.java | 3 +- .../attribute/standard/ColorSupported.java | 3 +- .../print/attribute/standard/Compression.java | 3 +- .../print/attribute/standard/Copies.java | 3 +- .../attribute/standard/CopiesSupported.java | 3 +- .../standard/DateTimeAtCompleted.java | 3 +- .../standard/DateTimeAtCreation.java | 3 +- .../standard/DateTimeAtProcessing.java | 3 +- .../print/attribute/standard/Destination.java | 3 +- .../attribute/standard/DocumentName.java | 3 +- .../print/attribute/standard/Fidelity.java | 3 +- .../print/attribute/standard/Finishings.java | 3 +- .../attribute/standard/JobHoldUntil.java | 3 +- .../attribute/standard/JobImpressions.java | 3 +- .../standard/JobImpressionsCompleted.java | 3 +- .../standard/JobImpressionsSupported.java | 3 +- .../print/attribute/standard/JobKOctets.java | 3 +- .../standard/JobKOctetsProcessed.java | 3 +- .../standard/JobKOctetsSupported.java | 3 +- .../attribute/standard/JobMediaSheets.java | 3 +- .../standard/JobMediaSheetsCompleted.java | 3 +- .../standard/JobMediaSheetsSupported.java | 3 +- .../standard/JobMessageFromOperator.java | 3 +- .../print/attribute/standard/JobName.java | 3 +- .../standard/JobOriginatingUserName.java | 3 +- .../print/attribute/standard/JobPriority.java | 3 +- .../standard/JobPrioritySupported.java | 3 +- .../print/attribute/standard/JobSheets.java | 3 +- .../print/attribute/standard/JobState.java | 3 +- .../attribute/standard/JobStateReason.java | 2 +- .../attribute/standard/JobStateReasons.java | 16 +- .../javax/print/attribute/standard/Media.java | 3 +- .../standard/MediaPrintableArea.java | 3 +- .../print/attribute/standard/MediaSize.java | 15 +- .../standard/MultipleDocumentHandling.java | 3 +- .../attribute/standard/NumberOfDocuments.java | 3 +- .../standard/NumberOfInterveningJobs.java | 3 +- .../print/attribute/standard/NumberUp.java | 3 +- .../attribute/standard/NumberUpSupported.java | 3 +- .../standard/OrientationRequested.java | 3 +- .../standard/OutputDeviceAssigned.java | 3 +- .../standard/PDLOverrideSupported.java | 3 +- .../print/attribute/standard/PageRanges.java | 3 +- .../attribute/standard/PagesPerMinute.java | 3 +- .../standard/PagesPerMinuteColor.java | 3 +- .../standard/PresentationDirection.java | 3 +- .../attribute/standard/PrintQuality.java | 3 +- .../print/attribute/standard/PrinterInfo.java | 3 +- .../standard/PrinterIsAcceptingJobs.java | 3 +- .../attribute/standard/PrinterLocation.java | 3 +- .../standard/PrinterMakeAndModel.java | 3 +- .../standard/PrinterMessageFromOperator.java | 3 +- .../attribute/standard/PrinterMoreInfo.java | 3 +- .../standard/PrinterMoreInfoManufacturer.java | 3 +- .../print/attribute/standard/PrinterName.java | 3 +- .../attribute/standard/PrinterResolution.java | 3 +- .../attribute/standard/PrinterState.java | 3 +- .../standard/PrinterStateReason.java | 2 +- .../standard/PrinterStateReasons.java | 16 +- .../print/attribute/standard/PrinterURI.java | 3 +- .../attribute/standard/QueuedJobCount.java | 3 +- .../ReferenceUriSchemesSupported.java | 2 +- .../standard/RequestingUserName.java | 3 +- .../print/attribute/standard/Severity.java | 2 +- .../attribute/standard/SheetCollate.java | 3 +- .../javax/print/attribute/standard/Sides.java | 3 +- libjava/classpath/javax/rmi/CORBA/Tie.java | 6 +- .../javax/security/auth/Subject.java | 17 +- .../auth/login/AppConfigurationEntry.java | 4 +- .../javax/security/auth/spi/LoginModule.java | 2 +- .../classpath/javax/security/sasl/Sasl.java | 10 +- .../security/sasl/SaslClientFactory.java | 6 +- .../security/sasl/SaslServerFactory.java | 5 +- .../javax/sound/midi/Instrument.java | 2 +- .../classpath/javax/sound/midi/Sequence.java | 10 +- .../javax/sound/midi/SoundbankResource.java | 4 +- .../javax/sound/sampled/AudioFileFormat.java | 4 +- .../javax/sound/sampled/AudioFormat.java | 4 +- .../javax/sound/sampled/DataLine.java | 6 +- .../classpath/javax/sound/sampled/Line.java | 4 +- .../classpath/javax/sound/sampled/Port.java | 2 +- libjava/classpath/javax/sql/RowSet.java | 4 +- .../classpath/javax/swing/AbstractButton.java | 229 +- .../javax/swing/AbstractListModel.java | 2 +- .../javax/swing/AbstractSpinnerModel.java | 12 +- .../classpath/javax/swing/ButtonGroup.java | 8 +- .../javax/swing/DefaultBoundedRangeModel.java | 2 +- .../javax/swing/DefaultButtonModel.java | 4 +- .../javax/swing/DefaultComboBoxModel.java | 32 +- .../javax/swing/DefaultListModel.java | 2 +- .../swing/DefaultListSelectionModel.java | 2 +- .../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 +- .../classpath/javax/swing/JEditorPane.java | 336 +- libjava/classpath/javax/swing/JFrame.java | 51 +- libjava/classpath/javax/swing/JLabel.java | 103 +- .../classpath/javax/swing/JLayeredPane.java | 2 +- libjava/classpath/javax/swing/JList.java | 239 +- 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 +- .../classpath/javax/swing/JScrollPane.java | 8 +- libjava/classpath/javax/swing/JSlider.java | 71 +- libjava/classpath/javax/swing/JSplitPane.java | 34 +- .../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 +- .../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 + .../classpath/javax/swing/LookAndFeel.java | 2 +- libjava/classpath/javax/swing/Popup.java | 2 +- .../classpath/javax/swing/RepaintManager.java | 299 +- .../javax/swing/ScrollPaneLayout.java | 38 +- .../classpath/javax/swing/SizeSequence.java | 8 +- .../swing/SortingFocusTraversalPolicy.java | 6 +- .../javax/swing/SpinnerListModel.java | 6 +- .../classpath/javax/swing/SwingUtilities.java | 284 +- libjava/classpath/javax/swing/Timer.java | 2 +- .../classpath/javax/swing/ToolTipManager.java | 77 +- .../javax/swing/TransferHandler.java | 357 +- libjava/classpath/javax/swing/UIDefaults.java | 8 +- libjava/classpath/javax/swing/UIManager.java | 251 +- .../javax/swing/border/CompoundBorder.java | 25 +- .../javax/swing/event/EventListenerList.java | 60 +- .../swing/filechooser/FileSystemView.java | 9 +- .../swing/plaf/basic/BasicButtonListener.java | 136 +- .../javax/swing/plaf/basic/BasicButtonUI.java | 330 +- .../swing/plaf/basic/BasicDirectoryModel.java | 6 +- .../swing/plaf/basic/BasicFileChooserUI.java | 10 +- .../swing/plaf/basic/BasicGraphicsUtils.java | 53 +- .../javax/swing/plaf/basic/BasicHTML.java | 26 + .../basic/BasicInternalFrameTitlePane.java | 10 +- .../plaf/basic/BasicInternalFrameUI.java | 64 +- .../javax/swing/plaf/basic/BasicLabelUI.java | 57 +- .../javax/swing/plaf/basic/BasicListUI.java | 2 +- .../swing/plaf/basic/BasicLookAndFeel.java | 24 +- .../swing/plaf/basic/BasicMenuItemUI.java | 148 +- .../javax/swing/plaf/basic/BasicMenuUI.java | 203 +- .../swing/plaf/basic/BasicRadioButtonUI.java | 156 +- .../swing/plaf/basic/BasicScrollBarUI.java | 79 +- .../swing/plaf/basic/BasicScrollPaneUI.java | 237 +- .../javax/swing/plaf/basic/BasicSliderUI.java | 566 +- .../plaf/basic/BasicSplitPaneDivider.java | 412 +- .../swing/plaf/basic/BasicSplitPaneUI.java | 372 +- .../swing/plaf/basic/BasicTabbedPaneUI.java | 415 +- .../swing/plaf/basic/BasicTableHeaderUI.java | 8 +- .../javax/swing/plaf/basic/BasicTableUI.java | 9 +- .../javax/swing/plaf/basic/BasicTextUI.java | 548 +- .../swing/plaf/basic/BasicToolBarUI.java | 6 +- .../swing/plaf/basic/BasicToolTipUI.java | 123 +- .../javax/swing/plaf/basic/BasicTreeUI.java | 517 +- .../swing/plaf/metal/DefaultMetalTheme.java | 100 +- .../javax/swing/plaf/metal/MetalBorders.java | 16 +- .../javax/swing/plaf/metal/MetalButtonUI.java | 126 +- .../swing/plaf/metal/MetalCheckBoxIcon.java | 11 +- .../swing/plaf/metal/MetalIconFactory.java | 119 +- .../swing/plaf/metal/MetalLookAndFeel.java | 50 +- .../swing/plaf/metal/MetalMenuBarUI.java | 9 +- .../swing/plaf/metal/MetalRadioButtonUI.java | 2 +- .../swing/plaf/metal/MetalScrollBarUI.java | 15 +- .../javax/swing/plaf/metal/MetalSliderUI.java | 27 +- .../plaf/metal/MetalSplitPaneDivider.java | 281 +- .../swing/plaf/metal/MetalTabbedPaneUI.java | 2 +- .../swing/plaf/metal/MetalToolTipUI.java | 70 +- .../javax/swing/plaf/metal/MetalTreeUI.java | 122 +- .../javax/swing/plaf/metal/OceanTheme.java | 2 + .../swing/plaf/synth/SynthLookAndFeel.java | 4 +- .../javax/swing/table/AbstractTableModel.java | 4 +- .../swing/table/DefaultTableColumnModel.java | 8 +- .../javax/swing/table/DefaultTableModel.java | 2 +- .../javax/swing/table/TableColumnModel.java | 2 +- .../javax/swing/table/TableModel.java | 2 +- .../javax/swing/text/AbstractDocument.java | 917 +- .../javax/swing/text/AttributeSet.java | 2 +- .../classpath/javax/swing/text/BoxView.java | 488 +- .../javax/swing/text/ComponentView.java | 336 +- .../javax/swing/text/CompositeView.java | 195 +- .../javax/swing/text/DefaultCaret.java | 15 +- .../javax/swing/text/DefaultEditorKit.java | 365 +- .../javax/swing/text/DefaultFormatter.java | 6 +- .../javax/swing/text/DefaultHighlighter.java | 399 +- .../swing/text/DefaultStyledDocument.java | 2116 +- .../javax/swing/text/ElementIterator.java | 205 +- .../classpath/javax/swing/text/FieldView.java | 4 +- .../classpath/javax/swing/text/FlowView.java | 423 +- .../javax/swing/text/GapContent.java | 733 +- .../classpath/javax/swing/text/GlyphView.java | 618 +- .../swing/text/InternationalFormatter.java | 2 +- .../javax/swing/text/JTextComponent.java | 278 +- .../classpath/javax/swing/text/LabelView.java | 76 +- .../javax/swing/text/MaskFormatter.java | 377 +- .../javax/swing/text/MutableAttributeSet.java | 2 +- .../javax/swing/text/ParagraphView.java | 107 +- .../classpath/javax/swing/text/PlainView.java | 150 +- .../classpath/javax/swing/text/Position.java | 4 +- .../javax/swing/text/SimpleAttributeSet.java | 18 +- .../javax/swing/text/StringContent.java | 304 +- .../javax/swing/text/StyleConstants.java | 11 + .../javax/swing/text/StyleContext.java | 614 +- .../javax/swing/text/StyledEditorKit.java | 46 +- .../javax/swing/text/TextAction.java | 51 +- .../classpath/javax/swing/text/Utilities.java | 189 +- libjava/classpath/javax/swing/text/View.java | 104 +- .../javax/swing/text/WrappedPlainView.java | 199 +- .../classpath/javax/swing/text/ZoneView.java | 442 + .../javax/swing/text/html/BRView.java | 5 +- .../javax/swing/text/html/BlockView.java | 482 +- .../classpath/javax/swing/text/html/CSS.java | 274 + .../javax/swing/text/html/CSSBorder.java | 421 + .../swing/text/html/FormSubmitEvent.java | 123 + .../javax/swing/text/html/FormView.java | 649 +- .../javax/swing/text/html/FrameSetView.java | 274 + .../javax/swing/text/html/FrameView.java | 233 + .../classpath/javax/swing/text/html/HTML.java | 22 +- .../javax/swing/text/html/HTMLDocument.java | 965 +- .../javax/swing/text/html/HTMLEditorKit.java | 580 +- .../javax/swing/text/html/HTMLWriter.java | 1084 + .../javax/swing/text/html/ImageView.java | 403 +- .../javax/swing/text/html/InlineView.java | 151 +- .../javax/swing/text/html/ListView.java | 3 - .../swing/text/html/MultiAttributeSet.java | 213 + .../javax/swing/text/html/MultiStyle.java | 136 + .../javax/swing/text/html/Option.java | 12 +- .../javax/swing/text/html/ParagraphView.java | 131 +- .../javax/swing/text/html/ResetableModel.java | 50 + .../text/html/ResetablePlainDocument.java | 82 + .../text/html/ResetableToggleButtonModel.java | 71 + .../swing/text/html/SelectComboBoxModel.java | 84 + .../swing/text/html/SelectListModel.java | 106 + .../javax/swing/text/html/StyleSheet.java | 1120 +- .../javax/swing/text/html/TableView.java | 964 +- .../swing/text/html/ViewAttributeSet.java | 163 + .../swing/text/html/parser/AttributeList.java | 6 +- .../swing/text/html/parser/ContentModel.java | 6 +- .../javax/swing/text/html/parser/DTD.java | 17 +- .../text/html/parser/DocumentParser.java | 4 +- .../text/html/parser/ParserDelegator.java | 4 +- .../javax/swing/tree/AbstractLayoutCache.java | 27 +- .../swing/tree/DefaultMutableTreeNode.java | 12 +- .../swing/tree/DefaultTreeCellEditor.java | 320 +- .../swing/tree/DefaultTreeCellRenderer.java | 108 +- .../javax/swing/tree/DefaultTreeModel.java | 29 +- .../swing/tree/DefaultTreeSelectionModel.java | 788 +- .../swing/tree/FixedHeightLayoutCache.java | 2 +- .../swing/tree/VariableHeightLayoutCache.java | 194 +- .../javax/swing/undo/CompoundEdit.java | 16 +- .../classpath/javax/swing/undo/StateEdit.java | 4 +- .../javax/swing/undo/StateEditable.java | 4 +- .../javax/swing/undo/UndoableEditSupport.java | 5 +- .../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 +- .../classpath/lib/gnu/CORBA/Asynchron.class | Bin 0 -> 1872 bytes .../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 .../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 .../gnu/CORBA/CDR/BigEndianInputStream.class | Bin 0 -> 424 bytes .../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 .../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 .../CORBA/CDR/LittleEndianInputStream.class | Bin 0 -> 4549 bytes .../CORBA/CDR/LittleEndianOutputStream.class | Bin 0 -> 2133 bytes .../CDR/UnknownExceptionCtxHandler.class | Bin 0 -> 6277 bytes .../classpath/lib/gnu/CORBA/CDR/VMVio.class | Bin 0 -> 1408 bytes libjava/classpath/lib/gnu/CORBA/CDR/Vio.class | Bin 0 -> 21547 bytes .../lib/gnu/CORBA/CDR/gnuRuntime$1.class | Bin 0 -> 984 bytes .../lib/gnu/CORBA/CDR/gnuRuntime$Entry.class | Bin 0 -> 886 bytes .../CORBA/CDR/gnuRuntime$Redirection.class | Bin 0 -> 656 bytes .../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 .../lib/gnu/CORBA/CollocatedOrbs.class | Bin 0 -> 2494 bytes .../gnu/CORBA/Connected_objects$cObject.class | Bin 0 -> 809 bytes .../lib/gnu/CORBA/Connected_objects.class | Bin 0 -> 3540 bytes .../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 .../gnu/CORBA/DynAn/NameValuePairHolder.class | Bin 0 -> 1232 bytes .../lib/gnu/CORBA/DynAn/RecordAny.class | Bin 0 -> 8043 bytes .../lib/gnu/CORBA/DynAn/UndivideableAny.class | Bin 0 -> 5868 bytes .../gnu/CORBA/DynAn/ValueChangeListener.class | Bin 0 -> 159 bytes .../lib/gnu/CORBA/DynAn/gnuDynAny.class | Bin 0 -> 14085 bytes .../gnu/CORBA/DynAn/gnuDynAnyFactory.class | Bin 0 -> 6415 bytes .../lib/gnu/CORBA/DynAn/gnuDynArray.class | Bin 0 -> 6545 bytes .../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 .../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 .../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 .../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 .../gnu/CORBA/GIOP/v1_0/CancelHeader.class | Bin 0 -> 834 bytes .../lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class | Bin 0 -> 2441 bytes .../gnu/CORBA/GIOP/v1_0/RequestHeader.class | Bin 0 -> 3122 bytes .../lib/gnu/CORBA/GIOP/v1_2/ReplyHeader.class | Bin 0 -> 1766 bytes .../gnu/CORBA/GIOP/v1_2/RequestHeader.class | Bin 0 -> 3618 bytes .../lib/gnu/CORBA/GeneralHolder.class | Bin 0 -> 2394 bytes .../lib/gnu/CORBA/HolderLocator.class | Bin 0 -> 2952 bytes ...R$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 .../ClientRequestInterceptors.class | Bin 0 -> 2096 bytes .../Interceptor/ForwardRequestHolder.class | Bin 0 -> 1327 bytes .../CORBA/Interceptor/IORInterceptors.class | Bin 0 -> 2605 bytes .../gnu/CORBA/Interceptor/Registrator.class | Bin 0 -> 9169 bytes .../ServerRequestInterceptors.class | Bin 0 -> 2123 bytes .../Interceptor/gnuClientRequestInfo.class | Bin 0 -> 5483 bytes .../gnu/CORBA/Interceptor/gnuIcCurrent.class | Bin 0 -> 4277 bytes .../gnu/CORBA/Interceptor/gnuIorInfo.class | Bin 0 -> 2375 bytes .../Interceptor/gnuServerRequestInfo.class | Bin 0 -> 7751 bytes .../classpath/lib/gnu/CORBA/IorDelegate.class | Bin 0 -> 7919 bytes .../classpath/lib/gnu/CORBA/IorObject.class | Bin 0 -> 1966 bytes .../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 .../gnu/CORBA/NameDynAnyPairSeqHolder.class | Bin 0 -> 1274 bytes .../lib/gnu/CORBA/NameValuePairHolder.class | Bin 0 -> 1250 bytes .../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 .../NameComponentComparator.class | Bin 0 -> 1059 bytes .../gnu/CORBA/NamingService/NameParser.class | Bin 0 -> 9739 bytes .../CORBA/NamingService/NameTransformer.class | Bin 0 -> 4814 bytes .../CORBA/NamingService/NameValidator.class | Bin 0 -> 1159 bytes .../gnu/CORBA/NamingService/NamingMap.class | Bin 0 -> 2648 bytes .../NamingServiceTransient$1.class | Bin 0 -> 701 bytes .../NamingServiceTransient.class | Bin 0 -> 2390 bytes .../NamingService/TransientContext.class | Bin 0 -> 6742 bytes .../lib/gnu/CORBA/ObjectCreator.class | Bin 0 -> 10180 bytes .../classpath/lib/gnu/CORBA/OctetHolder.class | Bin 0 -> 1334 bytes .../classpath/lib/gnu/CORBA/OrbFocused.class | Bin 0 -> 6441 bytes .../lib/gnu/CORBA/OrbFunctional$1.class | Bin 0 -> 635 bytes .../lib/gnu/CORBA/OrbFunctional$2.class | Bin 0 -> 1116 bytes .../gnu/CORBA/OrbFunctional$portServer.class | Bin 0 -> 2171 bytes .../OrbFunctional$sharedPortServer.class | Bin 0 -> 872 bytes .../lib/gnu/CORBA/OrbFunctional.class | Bin 0 -> 24752 bytes .../lib/gnu/CORBA/OrbRestricted.class | Bin 0 -> 10136 bytes .../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 .../gnu/CORBA/Poa/ForwardRequestHolder.class | Bin 0 -> 1273 bytes .../lib/gnu/CORBA/Poa/ForwardedServant.class | Bin 0 -> 4682 bytes .../gnu/CORBA/Poa/InvalidPolicyHolder.class | Bin 0 -> 1333 bytes .../lib/gnu/CORBA/Poa/LocalDelegate.class | Bin 0 -> 8751 bytes .../lib/gnu/CORBA/Poa/LocalRequest.class | Bin 0 -> 12849 bytes .../gnu/CORBA/Poa/LocalServerRequest.class | Bin 0 -> 3164 bytes .../classpath/lib/gnu/CORBA/Poa/ORB_1_4.class | Bin 0 -> 7622 bytes .../gnu/CORBA/Poa/ServantDelegateImpl.class | Bin 0 -> 4010 bytes .../lib/gnu/CORBA/Poa/StandardPolicies.class | Bin 0 -> 3263 bytes .../gnu/CORBA/Poa/gnuAdapterActivator.class | Bin 0 -> 1055 bytes .../lib/gnu/CORBA/Poa/gnuForwardRequest.class | Bin 0 -> 759 bytes .../gnu/CORBA/Poa/gnuIdAssignmentPolicy.class | Bin 0 -> 942 bytes .../gnu/CORBA/Poa/gnuIdUniquenessPolicy.class | Bin 0 -> 942 bytes .../Poa/gnuImplicitActivationPolicy.class | Bin 0 -> 996 bytes .../lib/gnu/CORBA/Poa/gnuLifespanPolicy.class | Bin 0 -> 906 bytes .../gnu/CORBA/Poa/gnuPOA$RefTemplate.class | Bin 0 -> 1993 bytes .../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 .../Poa/gnuRequestProcessingPolicy.class | Bin 0 -> 987 bytes .../lib/gnu/CORBA/Poa/gnuServantObject.class | Bin 0 -> 14471 bytes .../CORBA/Poa/gnuServantRetentionPolicy.class | Bin 0 -> 978 bytes .../lib/gnu/CORBA/Poa/gnuThreadPolicy.class | Bin 0 -> 888 bytes .../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 .../lib/gnu/CORBA/SimpleDelegate.class | Bin 0 -> 4870 bytes .../lib/gnu/CORBA/SocketRepository.class | Bin 0 -> 1958 bytes .../lib/gnu/CORBA/StreamBasedRequest.class | Bin 0 -> 412 bytes .../lib/gnu/CORBA/StreamHolder.class | Bin 0 -> 1456 bytes .../classpath/lib/gnu/CORBA/StubLocator.class | Bin 0 -> 1718 bytes .../lib/gnu/CORBA/TypeCodeHelper.class | Bin 0 -> 4997 bytes .../lib/gnu/CORBA/TypeKindNamer.class | Bin 0 -> 4025 bytes .../classpath/lib/gnu/CORBA/Unexpected.class | Bin 0 -> 1454 bytes libjava/classpath/lib/gnu/CORBA/Version.class | Bin 0 -> 2480 bytes .../classpath/lib/gnu/CORBA/WCharHolder.class | Bin 0 -> 1329 bytes .../lib/gnu/CORBA/WStringHolder.class | Bin 0 -> 1407 bytes .../lib/gnu/CORBA/_PolicyImplBase.class | Bin 0 -> 2822 bytes libjava/classpath/lib/gnu/CORBA/gnuAny.class | Bin 0 -> 14005 bytes .../lib/gnu/CORBA/gnuCodecFactory.class | Bin 0 -> 1065 bytes .../classpath/lib/gnu/CORBA/gnuContext.class | Bin 0 -> 3523 bytes .../lib/gnu/CORBA/gnuContextList.class | Bin 0 -> 1009 bytes .../lib/gnu/CORBA/gnuEnvironment.class | Bin 0 -> 623 bytes .../lib/gnu/CORBA/gnuExceptionList.class | Bin 0 -> 1046 bytes .../classpath/lib/gnu/CORBA/gnuNVList.class | Bin 0 -> 1889 bytes .../lib/gnu/CORBA/gnuNamedValue.class | Bin 0 -> 1043 bytes .../lib/gnu/CORBA/gnuRequest$1.class | Bin 0 -> 567 bytes .../lib/gnu/CORBA/gnuRequest$2.class | Bin 0 -> 623 bytes .../classpath/lib/gnu/CORBA/gnuRequest.class | Bin 0 -> 23103 bytes .../lib/gnu/CORBA/gnuValueHolder.class | Bin 0 -> 2003 bytes .../gnu/CORBA/interfaces/SocketFactory.class | Bin 0 -> 407 bytes .../gnu/CORBA/typecodes/AliasTypeCode.class | Bin 0 -> 1443 bytes .../gnu/CORBA/typecodes/ArrayTypeCode.class | Bin 0 -> 3132 bytes .../gnu/CORBA/typecodes/FixedTypeCode.class | Bin 0 -> 1842 bytes .../gnu/CORBA/typecodes/GeneralTypeCode.class | Bin 0 -> 3185 bytes .../CORBA/typecodes/PrimitiveTypeCode.class | Bin 0 -> 2769 bytes .../typecodes/RecordTypeCode$Field.class | Bin 0 -> 582 bytes .../gnu/CORBA/typecodes/RecordTypeCode.class | Bin 0 -> 3537 bytes .../CORBA/typecodes/RecursiveTypeCode.class | Bin 0 -> 755 bytes .../gnu/CORBA/typecodes/StringTypeCode.class | Bin 0 -> 682 bytes .../lib/gnu/awt/LightweightRedirector.class | Bin 0 -> 3189 bytes .../gnu/awt/j2d/AbstractGraphicsState.class | Bin 0 -> 1779 bytes .../gnu/awt/j2d/DirectRasterGraphics.class | Bin 0 -> 925 bytes .../lib/gnu/awt/j2d/Graphics2DImpl.class | Bin 0 -> 12314 bytes ...egerGraphicsState$ScreenCoupledImage.class | Bin 0 -> 314 bytes .../gnu/awt/j2d/IntegerGraphicsState.class | Bin 0 -> 9383 bytes .../lib/gnu/awt/j2d/MappedRaster.class | Bin 0 -> 723 bytes .../lib/gnu/classpath/Configuration.class | Bin 0 -> 795 bytes .../lib/gnu/classpath/ListenerData.class | Bin 0 -> 1197 bytes .../classpath/NotImplementedException.class | Bin 0 -> 400 bytes .../classpath/lib/gnu/classpath/Pointer.class | Bin 0 -> 274 bytes .../lib/gnu/classpath/Pointer32.class | Bin 0 -> 344 bytes .../lib/gnu/classpath/Pointer64.class | Bin 0 -> 344 bytes .../ServiceFactory$ServiceIterator.class | Bin 0 -> 3903 bytes .../lib/gnu/classpath/ServiceFactory.class | Bin 0 -> 3194 bytes .../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 .../gnu/classpath/debug/PreciseFilter.class | Bin 0 -> 1400 bytes .../debug/Simple1LineFormatter.class | Bin 0 -> 3090 bytes .../gnu/classpath/debug/SystemLogger.class | Bin 0 -> 1949 bytes .../gnu/classpath/debug/TeeInputStream.class | Bin 0 -> 1164 bytes .../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 .../lib/gnu/classpath/jdwp/Jdwp$1.class | Bin 0 -> 804 bytes .../lib/gnu/classpath/jdwp/Jdwp.class | Bin 0 -> 5748 bytes .../jdwp/JdwpConstants$ClassStatus.class | Bin 0 -> 557 bytes ...pConstants$CommandSet$ArrayReference.class | Bin 0 -> 660 bytes .../JdwpConstants$CommandSet$ArrayType.class | Bin 0 -> 583 bytes ...ants$CommandSet$ClassLoaderReference.class | Bin 0 -> 619 bytes ...ants$CommandSet$ClassObjectReference.class | Bin 0 -> 618 bytes .../JdwpConstants$CommandSet$ClassType.class | Bin 0 -> 683 bytes .../jdwp/JdwpConstants$CommandSet$Event.class | Bin 0 -> 568 bytes ...dwpConstants$CommandSet$EventRequest.class | Bin 0 -> 657 bytes .../jdwp/JdwpConstants$CommandSet$Field.class | Bin 0 -> 535 bytes ...wpConstants$CommandSet$InterfaceType.class | Bin 0 -> 559 bytes .../JdwpConstants$CommandSet$Method.class | Bin 0 -> 730 bytes ...Constants$CommandSet$ObjectReference.class | Bin 0 -> 858 bytes ...wpConstants$CommandSet$ReferenceType.class | Bin 0 -> 1101 bytes .../JdwpConstants$CommandSet$StackFrame.class | Bin 0 -> 687 bytes ...Constants$CommandSet$StringReference.class | Bin 0 -> 594 bytes ...ants$CommandSet$ThreadGroupReference.class | Bin 0 -> 670 bytes ...Constants$CommandSet$ThreadReference.class | Bin 0 -> 965 bytes ...pConstants$CommandSet$VirtualMachine.class | Bin 0 -> 1291 bytes .../jdwp/JdwpConstants$CommandSet.class | Bin 0 -> 1924 bytes .../classpath/jdwp/JdwpConstants$Error.class | Bin 0 -> 2679 bytes .../jdwp/JdwpConstants$EventKind.class | Bin 0 -> 1119 bytes .../jdwp/JdwpConstants$InvokeOptions.class | Bin 0 -> 522 bytes .../jdwp/JdwpConstants$ModKind.class | Bin 0 -> 796 bytes .../jdwp/JdwpConstants$StepDepth.class | Bin 0 -> 506 bytes .../jdwp/JdwpConstants$StepSize.class | Bin 0 -> 475 bytes .../jdwp/JdwpConstants$SuspendPolicy.class | Bin 0 -> 526 bytes .../jdwp/JdwpConstants$SuspendStatus.class | Bin 0 -> 468 bytes .../classpath/jdwp/JdwpConstants$Tag.class | Bin 0 -> 890 bytes .../jdwp/JdwpConstants$ThreadStatus.class | Bin 0 -> 584 bytes .../jdwp/JdwpConstants$TypeTag.class | Bin 0 -> 508 bytes .../jdwp/JdwpConstants$Version.class | Bin 0 -> 475 bytes .../gnu/classpath/jdwp/JdwpConstants.class | Bin 0 -> 1279 bytes .../lib/gnu/classpath/jdwp/VMFrame.class | Bin 0 -> 837 bytes .../jdwp/VMIdManager$IdFactory.class | Bin 0 -> 3138 bytes .../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 .../gnu/classpath/jdwp/VMVirtualMachine.class | Bin 0 -> 2883 bytes .../jdwp/event/BreakpointEvent.class | Bin 0 -> 1458 bytes .../jdwp/event/ClassPrepareEvent.class | Bin 0 -> 2047 bytes .../jdwp/event/ClassUnloadEvent.class | Bin 0 -> 1000 bytes .../lib/gnu/classpath/jdwp/event/Event.class | Bin 0 -> 1598 bytes .../classpath/jdwp/event/EventManager.class | Bin 0 -> 4198 bytes .../classpath/jdwp/event/EventRequest.class | Bin 0 -> 4493 bytes .../classpath/jdwp/event/ExceptionEvent.class | Bin 0 -> 2304 bytes .../jdwp/event/MethodEntryEvent.class | Bin 0 -> 1553 bytes .../jdwp/event/MethodExitEvent.class | Bin 0 -> 1532 bytes .../jdwp/event/SingleStepEvent.class | Bin 0 -> 1549 bytes .../classpath/jdwp/event/ThreadEndEvent.class | Bin 0 -> 1140 bytes .../jdwp/event/ThreadStartEvent.class | Bin 0 -> 1146 bytes .../classpath/jdwp/event/VmDeathEvent.class | Bin 0 -> 657 bytes .../classpath/jdwp/event/VmInitEvent.class | Bin 0 -> 1120 bytes .../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 .../event/filters/ConditionalFilter.class | Bin 0 -> 776 bytes .../jdwp/event/filters/CountFilter.class | Bin 0 -> 818 bytes .../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 .../event/filters/InstanceOnlyFilter.class | Bin 0 -> 1328 bytes .../event/filters/LocationOnlyFilter.class | Bin 0 -> 889 bytes .../jdwp/event/filters/StepFilter.class | Bin 0 -> 1463 bytes .../jdwp/event/filters/ThreadOnlyFilter.class | Bin 0 -> 1383 bytes .../exception/InvalidClassException.class | Bin 0 -> 865 bytes .../InvalidClassLoaderException.class | Bin 0 -> 889 bytes .../exception/InvalidCountException.class | Bin 0 -> 860 bytes .../exception/InvalidEventTypeException.class | Bin 0 -> 881 bytes .../exception/InvalidFieldException.class | Bin 0 -> 865 bytes .../exception/InvalidLocationException.class | Bin 0 -> 623 bytes .../exception/InvalidMethodException.class | Bin 0 -> 869 bytes .../exception/InvalidObjectException.class | Bin 0 -> 869 bytes .../exception/InvalidStringException.class | Bin 0 -> 1023 bytes .../exception/InvalidThreadException.class | Bin 0 -> 869 bytes .../InvalidThreadGroupException.class | Bin 0 -> 890 bytes .../jdwp/exception/JdwpException.class | Bin 0 -> 741 bytes .../JdwpIllegalArgumentException.class | Bin 0 -> 480 bytes .../JdwpInternalErrorException.class | Bin 0 -> 649 bytes .../exception/NativeMethodException.class | Bin 0 -> 868 bytes .../exception/NotImplementedException.class | Bin 0 -> 753 bytes .../jdwp/exception/VmDeadException.class | Bin 0 -> 416 bytes .../lib/gnu/classpath/jdwp/id/ArrayId.class | Bin 0 -> 317 bytes .../jdwp/id/ArrayReferenceTypeId.class | Bin 0 -> 362 bytes .../gnu/classpath/jdwp/id/ClassLoaderId.class | Bin 0 -> 915 bytes .../gnu/classpath/jdwp/id/ClassObjectId.class | Bin 0 -> 874 bytes .../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 .../classpath/jdwp/id/ReferenceTypeId.class | Bin 0 -> 1033 bytes .../lib/gnu/classpath/jdwp/id/StringId.class | Bin 0 -> 879 bytes .../gnu/classpath/jdwp/id/ThreadGroupId.class | Bin 0 -> 918 bytes .../lib/gnu/classpath/jdwp/id/ThreadId.class | Bin 0 -> 912 bytes .../processor/ArrayReferenceCommandSet.class | Bin 0 -> 4143 bytes .../jdwp/processor/ArrayTypeCommandSet.class | Bin 0 -> 2446 bytes .../ClassLoaderReferenceCommandSet.class | Bin 0 -> 2722 bytes .../ClassObjectReferenceCommandSet.class | Bin 0 -> 2157 bytes .../jdwp/processor/ClassTypeCommandSet.class | Bin 0 -> 5471 bytes .../classpath/jdwp/processor/CommandSet.class | Bin 0 -> 631 bytes .../processor/EventRequestCommandSet.class | Bin 0 -> 5267 bytes .../jdwp/processor/FieldCommandSet.class | Bin 0 -> 814 bytes .../processor/InterfaceTypeCommandSet.class | Bin 0 -> 846 bytes .../jdwp/processor/MethodCommandSet.class | Bin 0 -> 3284 bytes .../processor/ObjectReferenceCommandSet.class | Bin 0 -> 6344 bytes .../jdwp/processor/PacketProcessor.class | Bin 0 -> 4326 bytes .../processor/ReferenceTypeCommandSet.class | Bin 0 -> 7908 bytes .../jdwp/processor/StackFrameCommandSet.class | Bin 0 -> 3406 bytes .../processor/StringReferenceCommandSet.class | Bin 0 -> 1977 bytes .../ThreadGroupReferenceCommandSet.class | Bin 0 -> 3763 bytes .../processor/ThreadReferenceCommandSet.class | Bin 0 -> 5835 bytes .../processor/VirtualMachineCommandSet.class | Bin 0 -> 9303 bytes .../classpath/jdwp/transport/ITransport.class | Bin 0 -> 456 bytes .../jdwp/transport/JdwpCommandPacket.class | Bin 0 -> 1601 bytes .../jdwp/transport/JdwpConnection.class | Bin 0 -> 5043 bytes .../classpath/jdwp/transport/JdwpPacket.class | Bin 0 -> 2845 bytes .../jdwp/transport/JdwpReplyPacket.class | Bin 0 -> 1571 bytes .../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 .../gnu/classpath/jdwp/util/JdwpString.class | Bin 0 -> 1340 bytes .../gnu/classpath/jdwp/util/LineTable.class | Bin 0 -> 1044 bytes .../gnu/classpath/jdwp/util/Location.class | Bin 0 -> 2633 bytes .../classpath/jdwp/util/MethodResult.class | Bin 0 -> 878 bytes .../gnu/classpath/jdwp/util/Signature.class | Bin 0 -> 2661 bytes .../lib/gnu/classpath/jdwp/util/Value.class | Bin 0 -> 4871 bytes .../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 .../lib/gnu/gcj/RawDataManaged.class | Bin 0 -> 283 bytes .../gcj/convert/BytesToCharsetAdaptor.class | Bin 0 -> 2167 bytes .../lib/gnu/gcj/convert/BytesToUnicode.class | Bin 0 -> 3258 bytes .../gcj/convert/CharsetToBytesAdaptor.class | Bin 0 -> 3025 bytes .../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 .../lib/gnu/gcj/convert/Input_SJIS.class | Bin 0 -> 453 bytes .../lib/gnu/gcj/convert/Input_UTF8.class | Bin 0 -> 1130 bytes .../gnu/gcj/convert/Input_UnicodeBig.class | Bin 0 -> 925 bytes .../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 .../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 .../classpath/lib/gnu/gcj/io/MimeTypes.class | Bin 0 -> 1793 bytes .../lib/gnu/gcj/io/SimpleSHSStream.class | Bin 0 -> 1323 bytes .../lib/gnu/gcj/jvmti/Breakpoint.class | Bin 0 -> 626 bytes .../lib/gnu/gcj/jvmti/BreakpointManager.class | Bin 0 -> 1275 bytes .../lib/gnu/gcj/jvmti/Location.class | Bin 0 -> 1096 bytes .../lib/gnu/gcj/runtime/BootClassLoader.class | Bin 0 -> 1561 bytes .../gcj/runtime/ExtensionClassLoader.class | Bin 0 -> 864 bytes .../lib/gnu/gcj/runtime/FinalizerThread.class | Bin 0 -> 525 bytes .../gnu/gcj/runtime/HelperClassLoader$1.class | Bin 0 -> 896 bytes .../gnu/gcj/runtime/HelperClassLoader.class | Bin 0 -> 2189 bytes .../lib/gnu/gcj/runtime/JNIWeakRef.class | Bin 0 -> 363 bytes .../gcj/runtime/NameFinder$Addr2Line.class | Bin 0 -> 1669 bytes .../lib/gnu/gcj/runtime/NameFinder.class | Bin 0 -> 5440 bytes .../PersistentByteMap$AccessMode.class | Bin 0 -> 991 bytes .../PersistentByteMap$ByteWrapper.class | Bin 0 -> 953 bytes .../PersistentByteMap$HashIterator.class | Bin 0 -> 1509 bytes .../runtime/PersistentByteMap$MapEntry.class | Bin 0 -> 877 bytes .../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 .../gnu/gcj/runtime/SystemClassLoader.class | Bin 0 -> 2998 bytes .../gnu/gcj/tools/gcj_dbtool/Fileset.class | Bin 0 -> 1534 bytes .../lib/gnu/gcj/tools/gcj_dbtool/Main.class | Bin 0 -> 10771 bytes .../gnu/gcj/tools/gcj_dbtool/Tokenizer.class | Bin 0 -> 1101 bytes .../classpath/lib/gnu/gcj/util/Debug.class | Bin 0 -> 5432 bytes ...mponentList$VisibleComponentIterator.class | Bin 0 -> 2389 bytes .../AWTUtilities$VisibleComponentList.class | Bin 0 -> 1070 bytes .../lib/gnu/java/awt/AWTUtilities.class | Bin 0 -> 5941 bytes .../lib/gnu/java/awt/BitMaskExtent.class | Bin 0 -> 788 bytes .../BitwiseXORComposite$GeneralContext.class | Bin 0 -> 2206 bytes .../awt/BitwiseXORComposite$IntContext.class | Bin 0 -> 2306 bytes .../gnu/java/awt/BitwiseXORComposite.class | Bin 0 -> 1207 bytes .../classpath/lib/gnu/java/awt/Buffers.class | Bin 0 -> 2865 bytes .../lib/gnu/java/awt/ClasspathToolkit.class | Bin 0 -> 2455 bytes .../gnu/java/awt/ComponentDataBlitOp.class | Bin 0 -> 3258 bytes .../gnu/java/awt/ComponentReshapeEvent.class | Bin 0 -> 588 bytes .../lib/gnu/java/awt/EmbeddedWindow.class | Bin 0 -> 2023 bytes .../lib/gnu/java/awt/EventModifier.class | Bin 0 -> 833 bytes .../gnu/java/awt/GradientPaintContext.class | Bin 0 -> 2322 bytes .../lib/gnu/java/awt/LowPriorityEvent.class | Bin 0 -> 126 bytes .../gnu/java/awt/color/CieXyzConverter.class | Bin 0 -> 928 bytes .../java/awt/color/ClutProfileConverter.class | Bin 0 -> 1763 bytes .../gnu/java/awt/color/ColorLookUpTable.class | Bin 0 -> 6371 bytes .../java/awt/color/ColorSpaceConverter.class | Bin 0 -> 221 bytes .../java/awt/color/GrayProfileConverter.class | Bin 0 -> 1883 bytes .../java/awt/color/GrayScaleConverter.class | Bin 0 -> 1653 bytes .../java/awt/color/LinearRGBConverter.class | Bin 0 -> 1747 bytes .../gnu/java/awt/color/ProfileHeader.class | Bin 0 -> 5228 bytes .../gnu/java/awt/color/PyccConverter.class | Bin 0 -> 755 bytes .../java/awt/color/RgbProfileConverter.class | Bin 0 -> 3481 bytes .../gnu/java/awt/color/SrgbConverter.class | Bin 0 -> 1766 bytes .../lib/gnu/java/awt/color/TagEntry.class | Bin 0 -> 1964 bytes .../awt/color/ToneReproductionCurve.class | Bin 0 -> 1850 bytes .../dnd/GtkMouseDragGestureRecognizer.class | Bin 0 -> 3199 bytes .../peer/gtk/GtkDragSourceContextPeer.class | Bin 0 -> 4092 bytes .../peer/gtk/GtkDropTargetContextPeer.class | Bin 0 -> 1604 bytes .../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 .../gnu/java/awt/font/GNUGlyphVector.class | Bin 0 -> 6624 bytes .../gnu/java/awt/font/autofit/AxisHints.class | Bin 0 -> 362 bytes .../gnu/java/awt/font/autofit/Constants.class | Bin 0 -> 258 bytes .../java/awt/font/autofit/GlyphHints.class | Bin 0 -> 972 bytes .../lib/gnu/java/awt/font/autofit/Latin.class | Bin 0 -> 4407 bytes .../gnu/java/awt/font/autofit/LatinAxis.class | Bin 0 -> 450 bytes .../java/awt/font/autofit/LatinMetrics.class | Bin 0 -> 417 bytes .../gnu/java/awt/font/autofit/Scaler.class | Bin 0 -> 426 bytes .../gnu/java/awt/font/autofit/Script.class | Bin 0 -> 447 bytes .../java/awt/font/autofit/ScriptMetrics.class | Bin 0 -> 424 bytes .../gnu/java/awt/font/autofit/Segment.class | Bin 0 -> 347 bytes .../lib/gnu/java/awt/font/autofit/Width.class | Bin 0 -> 338 bytes .../font/opentype/CharGlyphMap$Dummy.class | Bin 0 -> 595 bytes .../font/opentype/CharGlyphMap$Type0.class | Bin 0 -> 5509 bytes .../font/opentype/CharGlyphMap$Type12.class | Bin 0 -> 1637 bytes .../font/opentype/CharGlyphMap$Type4.class | Bin 0 -> 2808 bytes .../java/awt/font/opentype/CharGlyphMap.class | Bin 0 -> 2377 bytes .../java/awt/font/opentype/GlyphNamer.class | Bin 0 -> 21906 bytes .../opentype/MacResourceFork$Resource.class | Bin 0 -> 1571 bytes .../awt/font/opentype/MacResourceFork.class | Bin 0 -> 2474 bytes .../java/awt/font/opentype/NameDecoder.class | Bin 0 -> 8392 bytes .../java/awt/font/opentype/OpenTypeFont.class | Bin 0 -> 8291 bytes .../font/opentype/OpenTypeFontFactory.class | Bin 0 -> 1609 bytes .../gnu/java/awt/font/opentype/Scaler.class | Bin 0 -> 656 bytes .../awt/font/opentype/truetype/Fixed.class | Bin 0 -> 1969 bytes .../font/opentype/truetype/GlyphLoader.class | Bin 0 -> 7309 bytes .../truetype/GlyphLocator$FourByte.class | Bin 0 -> 1050 bytes .../truetype/GlyphLocator$TwoByte.class | Bin 0 -> 1055 bytes .../font/opentype/truetype/GlyphLocator.class | Bin 0 -> 1073 bytes .../opentype/truetype/GlyphMeasurer.class | Bin 0 -> 2140 bytes .../opentype/truetype/TrueTypeScaler.class | Bin 0 -> 4706 bytes .../opentype/truetype/VirtualMachine.class | Bin 0 -> 25434 bytes .../awt/font/opentype/truetype/Zone.class | Bin 0 -> 4834 bytes .../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 .../java/awt/java2d/AbstractGraphics2D.class | Bin 0 -> 33135 bytes .../awt/java2d/AlphaCompositeContext.class | Bin 0 -> 3745 bytes .../gnu/java/awt/java2d/CubicSegment.class | Bin 0 -> 3098 bytes .../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 .../java/awt/java2d/PolyEdgeComparator.class | Bin 0 -> 752 bytes .../lib/gnu/java/awt/java2d/QuadSegment.class | Bin 0 -> 4635 bytes .../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 .../java/awt/java2d/TexturePaintContext.class | Bin 0 -> 3431 bytes .../gnu/java/awt/peer/ClasspathFontPeer.class | Bin 0 -> 8543 bytes .../java/awt/peer/EmbeddedWindowPeer.class | Bin 0 -> 189 bytes .../gnu/java/awt/peer/GLightweightPeer.class | Bin 0 -> 7416 bytes .../peer/NativeEventLoopRunningEvent.class | Bin 0 -> 608 bytes .../java/awt/peer/gtk/AsyncImage$Loader.class | Bin 0 -> 1343 bytes .../peer/gtk/AsyncImage$NullImageSource.class | Bin 0 -> 1614 bytes .../gnu/java/awt/peer/gtk/AsyncImage.class | Bin 0 -> 3561 bytes .../awt/peer/gtk/BufferedImageGraphics.class | Bin 0 -> 10724 bytes .../java/awt/peer/gtk/CairoGraphics2D.class | Bin 0 -> 36599 bytes .../gtk/CairoSurface$CairoDataBuffer.class | Bin 0 -> 1519 bytes .../gnu/java/awt/peer/gtk/CairoSurface.class | Bin 0 -> 5276 bytes .../awt/peer/gtk/CairoSurfaceGraphics.class | Bin 0 -> 7704 bytes .../java/awt/peer/gtk/ComponentGraphics.class | Bin 0 -> 12284 bytes .../awt/peer/gtk/ComponentGraphicsCopy.class | Bin 0 -> 2743 bytes .../awt/peer/gtk/FreetypeGlyphVector.class | Bin 0 -> 8741 bytes .../gnu/java/awt/peer/gtk/GThreadMutex.class | Bin 0 -> 439 bytes .../peer/gtk/GThreadNativeMethodRunner.class | Bin 0 -> 2869 bytes .../gtk/GdkFontPeer$GdkFontLineMetrics.class | Bin 0 -> 1705 bytes .../peer/gtk/GdkFontPeer$GdkFontMetrics.class | Bin 0 -> 2341 bytes .../gnu/java/awt/peer/gtk/GdkFontPeer.class | Bin 0 -> 9155 bytes .../peer/gtk/GdkGraphicsConfiguration.class | Bin 0 -> 3231 bytes .../awt/peer/gtk/GdkGraphicsEnvironment.class | Bin 0 -> 2766 bytes .../GdkPixbufDecoder$GdkPixbufReader.class | Bin 0 -> 5200 bytes .../GdkPixbufDecoder$GdkPixbufReaderSpi.class | Bin 0 -> 1825 bytes .../GdkPixbufDecoder$GdkPixbufWriter.class | Bin 0 -> 5158 bytes .../GdkPixbufDecoder$GdkPixbufWriterSpi.class | Bin 0 -> 1878 bytes .../GdkPixbufDecoder$ImageFormatSpec.class | Bin 0 -> 1003 bytes .../java/awt/peer/gtk/GdkPixbufDecoder.class | Bin 0 -> 7774 bytes .../gnu/java/awt/peer/gtk/GdkRobotPeer.class | Bin 0 -> 1566 bytes ...kScreenGraphicsDevice$X11DisplayMode.class | Bin 0 -> 626 bytes .../peer/gtk/GdkScreenGraphicsDevice.class | Bin 0 -> 5577 bytes .../gnu/java/awt/peer/gtk/GtkButtonPeer.class | Bin 0 -> 1557 bytes .../gnu/java/awt/peer/gtk/GtkCanvasPeer.class | Bin 0 -> 664 bytes .../peer/gtk/GtkCheckboxMenuItemPeer.class | Bin 0 -> 1170 bytes .../java/awt/peer/gtk/GtkCheckboxPeer.class | Bin 0 -> 3001 bytes .../gnu/java/awt/peer/gtk/GtkChoicePeer.class | Bin 0 -> 2221 bytes .../gnu/java/awt/peer/gtk/GtkClipboard.class | Bin 0 -> 6435 bytes .../awt/peer/gtk/GtkClipboardNotifier.class | Bin 0 -> 1567 bytes .../GtkComponentPeer$RepaintTimerTask.class | Bin 0 -> 1498 bytes .../java/awt/peer/gtk/GtkComponentPeer.class | Bin 0 -> 18251 bytes .../java/awt/peer/gtk/GtkContainerPeer.class | Bin 0 -> 2481 bytes .../lib/gnu/java/awt/peer/gtk/GtkCursor.class | Bin 0 -> 979 bytes .../gnu/java/awt/peer/gtk/GtkDialogPeer.class | Bin 0 -> 914 bytes .../awt/peer/gtk/GtkEmbeddedWindowPeer.class | Bin 0 -> 847 bytes .../java/awt/peer/gtk/GtkFileDialogPeer.class | Bin 0 -> 4290 bytes .../gnu/java/awt/peer/gtk/GtkFramePeer.class | Bin 0 -> 4563 bytes .../java/awt/peer/gtk/GtkGenericPeer.class | Bin 0 -> 1974 bytes .../lib/gnu/java/awt/peer/gtk/GtkImage.class | Bin 0 -> 7420 bytes .../java/awt/peer/gtk/GtkImageConsumer.class | Bin 0 -> 3184 bytes .../gnu/java/awt/peer/gtk/GtkLabelPeer.class | Bin 0 -> 1390 bytes .../gnu/java/awt/peer/gtk/GtkListPeer.class | Bin 0 -> 3563 bytes .../gnu/java/awt/peer/gtk/GtkMainThread.class | Bin 0 -> 2319 bytes .../java/awt/peer/gtk/GtkMenuBarPeer.class | Bin 0 -> 1236 bytes .../awt/peer/gtk/GtkMenuComponentPeer.class | Bin 0 -> 1145 bytes .../java/awt/peer/gtk/GtkMenuItemPeer.class | Bin 0 -> 1236 bytes .../gnu/java/awt/peer/gtk/GtkMenuPeer.class | Bin 0 -> 1927 bytes .../java/awt/peer/gtk/GtkMouseInfoPeer.class | Bin 0 -> 1504 bytes .../gnu/java/awt/peer/gtk/GtkPanelPeer.class | Bin 0 -> 850 bytes .../java/awt/peer/gtk/GtkPopupMenuPeer.class | Bin 0 -> 1015 bytes .../java/awt/peer/gtk/GtkScrollPanePeer.class | Bin 0 -> 1785 bytes .../java/awt/peer/gtk/GtkScrollbarPeer.class | Bin 0 -> 1629 bytes .../gnu/java/awt/peer/gtk/GtkSelection.class | Bin 0 -> 7019 bytes .../java/awt/peer/gtk/GtkTextAreaPeer.class | Bin 0 -> 4023 bytes .../java/awt/peer/gtk/GtkTextFieldPeer.class | Bin 0 -> 3662 bytes .../awt/peer/gtk/GtkToolkit$LRUCache.class | Bin 0 -> 672 bytes .../gnu/java/awt/peer/gtk/GtkToolkit.class | Bin 0 -> 17432 bytes .../java/awt/peer/gtk/GtkVolatileImage.class | Bin 0 -> 4243 bytes .../gnu/java/awt/peer/gtk/GtkWindowPeer.class | Bin 0 -> 7753 bytes .../awt/peer/gtk/VolatileImageGraphics.class | Bin 0 -> 7987 bytes .../HeadlessGraphicsEnvironment.class | Bin 0 -> 2568 bytes .../awt/peer/headless/HeadlessToolkit.class | Bin 0 -> 7617 bytes .../gnu/java/awt/peer/qt/MainQtThread.class | Bin 0 -> 830 bytes .../gnu/java/awt/peer/qt/NativeWrapper.class | Bin 0 -> 333 bytes .../lib/gnu/java/awt/peer/qt/QMatrix.class | Bin 0 -> 823 bytes .../gnu/java/awt/peer/qt/QPainterPath.class | Bin 0 -> 1782 bytes .../lib/gnu/java/awt/peer/qt/QPen.class | Bin 0 -> 926 bytes .../gnu/java/awt/peer/qt/QtAudioClip.class | Bin 0 -> 1506 bytes .../gnu/java/awt/peer/qt/QtButtonPeer.class | Bin 0 -> 1370 bytes .../gnu/java/awt/peer/qt/QtCanvasPeer.class | Bin 0 -> 846 bytes .../gnu/java/awt/peer/qt/QtCheckboxPeer.class | Bin 0 -> 2071 bytes .../gnu/java/awt/peer/qt/QtChoicePeer.class | Bin 0 -> 1760 bytes .../awt/peer/qt/QtComponentGraphics.class | Bin 0 -> 1920 bytes .../qt/QtComponentPeer$RepaintTimerTask.class | Bin 0 -> 1132 bytes .../java/awt/peer/qt/QtComponentPeer.class | Bin 0 -> 16303 bytes .../java/awt/peer/qt/QtContainerPeer.class | Bin 0 -> 1580 bytes .../gnu/java/awt/peer/qt/QtDialogPeer.class | Bin 0 -> 1208 bytes .../awt/peer/qt/QtEmbeddedWindowPeer.class | Bin 0 -> 664 bytes .../java/awt/peer/qt/QtFileDialogPeer.class | Bin 0 -> 1336 bytes .../gnu/java/awt/peer/qt/QtFontMetrics.class | Bin 0 -> 2250 bytes .../lib/gnu/java/awt/peer/qt/QtFontPeer.class | Bin 0 -> 4252 bytes .../gnu/java/awt/peer/qt/QtFramePeer.class | Bin 0 -> 2945 bytes .../lib/gnu/java/awt/peer/qt/QtGraphics.class | Bin 0 -> 17525 bytes .../awt/peer/qt/QtGraphicsEnvironment.class | Bin 0 -> 2031 bytes .../lib/gnu/java/awt/peer/qt/QtImage.class | Bin 0 -> 10031 bytes .../java/awt/peer/qt/QtImageConsumer.class | Bin 0 -> 2774 bytes .../awt/peer/qt/QtImageDirectGraphics.class | Bin 0 -> 3155 bytes .../java/awt/peer/qt/QtImageGraphics.class | Bin 0 -> 2582 bytes .../gnu/java/awt/peer/qt/QtLabelPeer.class | Bin 0 -> 910 bytes .../lib/gnu/java/awt/peer/qt/QtListPeer.class | Bin 0 -> 3498 bytes .../gnu/java/awt/peer/qt/QtMenuBarPeer.class | Bin 0 -> 1748 bytes .../awt/peer/qt/QtMenuComponentPeer.class | Bin 0 -> 1191 bytes .../gnu/java/awt/peer/qt/QtMenuItemPeer.class | Bin 0 -> 1993 bytes .../lib/gnu/java/awt/peer/qt/QtMenuPeer.class | Bin 0 -> 3060 bytes .../gnu/java/awt/peer/qt/QtPanelPeer.class | Bin 0 -> 605 bytes .../java/awt/peer/qt/QtPopupMenuPeer.class | Bin 0 -> 1468 bytes .../qt/QtRepaintThread$RepaintComponent.class | Bin 0 -> 964 bytes .../java/awt/peer/qt/QtRepaintThread.class | Bin 0 -> 1750 bytes .../gnu/java/awt/peer/qt/QtScreenDevice.class | Bin 0 -> 2089 bytes .../peer/qt/QtScreenDeviceConfiguration.class | Bin 0 -> 2755 bytes .../java/awt/peer/qt/QtScrollPanePeer.class | Bin 0 -> 1410 bytes .../java/awt/peer/qt/QtScrollbarPeer.class | Bin 0 -> 1602 bytes .../gnu/java/awt/peer/qt/QtTextAreaPeer.class | Bin 0 -> 3522 bytes .../java/awt/peer/qt/QtTextFieldPeer.class | Bin 0 -> 2954 bytes .../lib/gnu/java/awt/peer/qt/QtToolkit.class | Bin 0 -> 12257 bytes .../java/awt/peer/qt/QtVolatileImage$1.class | Bin 0 -> 716 bytes .../java/awt/peer/qt/QtVolatileImage.class | Bin 0 -> 7103 bytes .../gnu/java/awt/peer/qt/QtWindowPeer.class | Bin 0 -> 849 bytes .../swing/SwingButtonPeer$SwingButton.class | Bin 0 -> 2148 bytes .../SwingButtonPeer$SwingButtonListener.class | Bin 0 -> 1280 bytes .../java/awt/peer/swing/SwingButtonPeer.class | Bin 0 -> 1351 bytes .../java/awt/peer/swing/SwingCanvasPeer.class | Bin 0 -> 572 bytes .../java/awt/peer/swing/SwingComponent.class | Bin 0 -> 335 bytes .../awt/peer/swing/SwingComponentPeer.class | Bin 0 -> 12438 bytes .../awt/peer/swing/SwingContainerPeer.class | Bin 0 -> 5446 bytes .../java/awt/peer/swing/SwingFramePeer.class | Bin 0 -> 2549 bytes .../swing/SwingLabelPeer$SwingLabel.class | Bin 0 -> 1996 bytes .../java/awt/peer/swing/SwingLabelPeer.class | Bin 0 -> 1575 bytes .../peer/swing/SwingListPeer$SwingList.class | Bin 0 -> 2229 bytes .../java/awt/peer/swing/SwingListPeer.class | Bin 0 -> 4649 bytes .../swing/SwingMenuBarPeer$SwingMenuBar.class | Bin 0 -> 1590 bytes .../awt/peer/swing/SwingMenuBarPeer.class | Bin 0 -> 3584 bytes ...ngMenuItemPeer$SwingMenuItemListener.class | Bin 0 -> 1326 bytes .../awt/peer/swing/SwingMenuItemPeer.class | Bin 0 -> 1645 bytes .../peer/swing/SwingMenuPeer$SwingMenu.class | Bin 0 -> 1556 bytes .../java/awt/peer/swing/SwingMenuPeer.class | Bin 0 -> 2958 bytes .../java/awt/peer/swing/SwingPanelPeer.class | Bin 0 -> 549 bytes .../SwingTextAreaPeer$SwingTextArea.class | Bin 0 -> 2265 bytes .../awt/peer/swing/SwingTextAreaPeer.class | Bin 0 -> 3822 bytes .../SwingTextFieldPeer$SwingTextField.class | Bin 0 -> 2190 bytes .../awt/peer/swing/SwingTextFieldPeer.class | Bin 0 -> 3242 bytes .../java/awt/peer/swing/SwingToolkit.class | Bin 0 -> 2296 bytes .../java/awt/peer/swing/SwingWindowPeer.class | Bin 0 -> 556 bytes .../java/awt/print/JavaPrinterGraphics.class | Bin 0 -> 12394 bytes .../gnu/java/awt/print/JavaPrinterJob.class | Bin 0 -> 6418 bytes .../java/awt/print/PostScriptGraphics2D.class | Bin 0 -> 30082 bytes .../gnu/java/awt/print/SpooledDocument.class | Bin 0 -> 1252 bytes .../lib/gnu/java/beans/BeanInfoEmbryo.class | Bin 0 -> 4796 bytes .../java/beans/DefaultExceptionListener.class | Bin 0 -> 1092 bytes .../lib/gnu/java/beans/DoubleKey.class | Bin 0 -> 993 bytes .../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 .../java/beans/IntrospectionIncubator.class | Bin 0 -> 8782 bytes .../java/beans/decoder/AbstractContext.class | Bin 0 -> 811 bytes .../AbstractCreatableObjectContext.class | Bin 0 -> 1412 bytes .../decoder/AbstractElementHandler.class | Bin 0 -> 4436 bytes .../beans/decoder/AbstractObjectContext.class | Bin 0 -> 2066 bytes .../gnu/java/beans/decoder/ArrayContext.class | Bin 0 -> 2068 bytes .../gnu/java/beans/decoder/ArrayHandler.class | Bin 0 -> 2748 bytes .../beans/decoder/AssemblyException.class | Bin 0 -> 393 bytes .../java/beans/decoder/BooleanHandler.class | Bin 0 -> 1035 bytes .../gnu/java/beans/decoder/ByteHandler.class | Bin 0 -> 718 bytes .../gnu/java/beans/decoder/CharHandler.class | Bin 0 -> 958 bytes .../gnu/java/beans/decoder/ClassHandler.class | Bin 0 -> 880 bytes .../beans/decoder/ConstructorContext.class | Bin 0 -> 2106 bytes .../lib/gnu/java/beans/decoder/Context.class | Bin 0 -> 704 bytes .../java/beans/decoder/DecoderContext.class | Bin 0 -> 1913 bytes .../java/beans/decoder/DoubleHandler.class | Bin 0 -> 728 bytes .../gnu/java/beans/decoder/DummyContext.class | Bin 0 -> 1589 bytes .../gnu/java/beans/decoder/DummyHandler.class | Bin 0 -> 2314 bytes .../java/beans/decoder/ElementHandler.class | Bin 0 -> 860 bytes .../gnu/java/beans/decoder/FloatHandler.class | Bin 0 -> 723 bytes .../beans/decoder/GrowableArrayContext.class | Bin 0 -> 2456 bytes .../gnu/java/beans/decoder/IndexContext.class | Bin 0 -> 2043 bytes .../gnu/java/beans/decoder/IntHandler.class | Bin 0 -> 721 bytes .../gnu/java/beans/decoder/JavaHandler.class | Bin 0 -> 1942 bytes .../gnu/java/beans/decoder/LongHandler.class | Bin 0 -> 718 bytes .../java/beans/decoder/MethodContext.class | Bin 0 -> 2509 bytes .../gnu/java/beans/decoder/MethodFinder.class | Bin 0 -> 3321 bytes .../gnu/java/beans/decoder/NullHandler.class | Bin 0 -> 911 bytes .../java/beans/decoder/ObjectContext.class | Bin 0 -> 1498 bytes .../java/beans/decoder/ObjectHandler.class | Bin 0 -> 3188 bytes ...ersistenceParser$ArrayHandlerCreator.class | Bin 0 -> 971 bytes ...sistenceParser$BooleanHandlerCreator.class | Bin 0 -> 979 bytes ...PersistenceParser$ByteHandlerCreator.class | Bin 0 -> 967 bytes ...PersistenceParser$CharHandlerCreator.class | Bin 0 -> 967 bytes ...ersistenceParser$ClassHandlerCreator.class | Bin 0 -> 971 bytes .../decoder/PersistenceParser$Creator.class | Bin 0 -> 348 bytes ...rsistenceParser$DoubleHandlerCreator.class | Bin 0 -> 975 bytes ...ersistenceParser$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 ...rsistenceParser$ObjectHandlerCreator.class | Bin 0 -> 975 bytes ...ersistenceParser$ShortHandlerCreator.class | Bin 0 -> 971 bytes ...rsistenceParser$StringHandlerCreator.class | Bin 0 -> 975 bytes ...PersistenceParser$VoidHandlerCreator.class | Bin 0 -> 967 bytes .../beans/decoder/PersistenceParser.class | Bin 0 -> 8449 bytes .../java/beans/decoder/PropertyContext.class | Bin 0 -> 3270 bytes .../gnu/java/beans/decoder/ShortHandler.class | Bin 0 -> 723 bytes .../java/beans/decoder/SimpleHandler.class | Bin 0 -> 2072 bytes .../beans/decoder/StaticMethodContext.class | Bin 0 -> 2088 bytes .../java/beans/decoder/StringHandler.class | Bin 0 -> 586 bytes .../gnu/java/beans/decoder/VoidHandler.class | Bin 0 -> 2834 bytes .../gnu/java/beans/editors/ColorEditor.class | Bin 0 -> 2251 bytes .../gnu/java/beans/editors/FontEditor.class | Bin 0 -> 1381 bytes .../beans/editors/NativeBooleanEditor.class | Bin 0 -> 1232 bytes .../java/beans/editors/NativeByteEditor.class | Bin 0 -> 850 bytes .../beans/editors/NativeDoubleEditor.class | Bin 0 -> 860 bytes .../beans/editors/NativeFloatEditor.class | Bin 0 -> 855 bytes .../java/beans/editors/NativeIntEditor.class | Bin 0 -> 853 bytes .../java/beans/editors/NativeLongEditor.class | Bin 0 -> 850 bytes .../beans/editors/NativeShortEditor.class | Bin 0 -> 855 bytes .../gnu/java/beans/editors/StringEditor.class | Bin 0 -> 735 bytes .../encoder/ArrayPersistenceDelegate.class | Bin 0 -> 3069 bytes .../encoder/ClassPersistenceDelegate.class | Bin 0 -> 972 bytes .../CollectionPersistenceDelegate.class | Bin 0 -> 1511 bytes .../lib/gnu/java/beans/encoder/Context.class | Bin 0 -> 1179 bytes .../beans/encoder/GenericScannerState.class | Bin 0 -> 5047 bytes .../beans/encoder/IgnoringScannerState.class | Bin 0 -> 2183 bytes .../encoder/MapPersistenceDelegate.class | Bin 0 -> 1681 bytes .../lib/gnu/java/beans/encoder/ObjectId.class | Bin 0 -> 2310 bytes .../PrimitivePersistenceDelegate.class | Bin 0 -> 1210 bytes .../beans/encoder/ReportingScannerState.class | Bin 0 -> 3297 bytes .../java/beans/encoder/Root$RootElement.class | Bin 0 -> 1105 bytes .../lib/gnu/java/beans/encoder/Root.class | Bin 0 -> 2009 bytes .../gnu/java/beans/encoder/ScanEngine.class | Bin 0 -> 10282 bytes .../gnu/java/beans/encoder/ScannerState.class | Bin 0 -> 4519 bytes .../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 .../beans/encoder/elements/Array_Get.class | Bin 0 -> 803 bytes .../beans/encoder/elements/Array_Set.class | Bin 0 -> 803 bytes .../encoder/elements/ClassResolution.class | Bin 0 -> 881 bytes .../java/beans/encoder/elements/Element.class | Bin 0 -> 1800 bytes .../beans/encoder/elements/List_Get.class | Bin 0 -> 626 bytes .../beans/encoder/elements/List_Set.class | Bin 0 -> 626 bytes .../encoder/elements/MethodInvocation.class | Bin 0 -> 819 bytes .../beans/encoder/elements/NullObject.class | Bin 0 -> 709 bytes .../elements/ObjectInstantiation.class | Bin 0 -> 1224 bytes .../encoder/elements/ObjectReference.class | Bin 0 -> 943 bytes .../elements/PrimitiveInstantiation.class | Bin 0 -> 949 bytes .../encoder/elements/StaticFieldAccess.class | Bin 0 -> 972 bytes .../elements/StaticMethodInvocation.class | Bin 0 -> 988 bytes .../encoder/elements/StringReference.class | Bin 0 -> 867 bytes .../gnu/java/io/ASN1ParsingException.class | Bin 0 -> 453 bytes .../lib/gnu/java/io/Base64InputStream.class | Bin 0 -> 2758 bytes .../io/ClassLoaderObjectInputStream.class | Bin 0 -> 881 bytes .../lib/gnu/java/io/NullOutputStream.class | Bin 0 -> 710 bytes .../gnu/java/io/ObjectIdentityMap2Int.class | Bin 0 -> 2650 bytes .../gnu/java/io/ObjectIdentityWrapper.class | Bin 0 -> 1122 bytes .../lib/gnu/java/io/PlatformHelper.class | Bin 0 -> 1866 bytes .../lib/gnu/java/lang/ArrayHelper.class | Bin 0 -> 716 bytes .../lib/gnu/java/lang/CharData.class | Bin 0 -> 41184 bytes .../lib/gnu/java/lang/ClassHelper.class | Bin 0 -> 3642 bytes .../gnu/java/lang/InstrumentationImpl.class | Bin 0 -> 3425 bytes .../lib/gnu/java/lang/MainThread.class | Bin 0 -> 3204 bytes .../gnu/java/lang/VMInstrumentationImpl.class | Bin 0 -> 1086 bytes .../gnu/java/lang/management/BeanImpl.class | Bin 0 -> 15568 bytes .../management/ClassLoadingMXBeanImpl.class | Bin 0 -> 1114 bytes .../management/CompilationMXBeanImpl.class | Bin 0 -> 1324 bytes .../GarbageCollectorMXBeanImpl.class | Bin 0 -> 900 bytes .../lang/management/MemoryMXBeanImpl.class | Bin 0 -> 7173 bytes .../management/MemoryManagerMXBeanImpl.class | Bin 0 -> 1194 bytes .../management/MemoryPoolMXBeanImpl.class | Bin 0 -> 4031 bytes .../OperatingSystemMXBeanImpl.class | Bin 0 -> 1085 bytes .../lang/management/RuntimeMXBeanImpl.class | Bin 0 -> 3865 bytes .../lang/management/ThreadMXBeanImpl.class | Bin 0 -> 5137 bytes .../management/VMClassLoadingMXBeanImpl.class | Bin 0 -> 475 bytes .../management/VMCompilationMXBeanImpl.class | Bin 0 -> 384 bytes .../VMGarbageCollectorMXBeanImpl.class | Bin 0 -> 440 bytes .../lang/management/VMMemoryMXBeanImpl.class | Bin 0 -> 897 bytes .../VMMemoryManagerMXBeanImpl.class | Bin 0 -> 1497 bytes .../management/VMMemoryPoolMXBeanImpl.class | Bin 0 -> 950 bytes .../lang/management/VMRuntimeMXBeanImpl.class | Bin 0 -> 1273 bytes .../lang/management/VMThreadMXBeanImpl.class | Bin 0 -> 1742 bytes .../lang/reflect/ClassSignatureParser.class | Bin 0 -> 1982 bytes .../lang/reflect/FieldSignatureParser.class | Bin 0 -> 1717 bytes .../lang/reflect/GenericArrayTypeImpl.class | Bin 0 -> 1366 bytes .../lang/reflect/GenericSignatureParser.class | Bin 0 -> 5172 bytes .../lang/reflect/MethodSignatureParser.class | Bin 0 -> 3626 bytes .../lang/reflect/ParameterizedTypeImpl.class | Bin 0 -> 3079 bytes .../lib/gnu/java/lang/reflect/TypeImpl.class | Bin 0 -> 735 bytes .../gnu/java/lang/reflect/TypeSignature.class | Bin 0 -> 4010 bytes .../java/lang/reflect/TypeVariableImpl.class | Bin 0 -> 1659 bytes .../lang/reflect/UnresolvedTypeVariable.class | Bin 0 -> 1893 bytes .../java/lang/reflect/WildcardTypeImpl.class | Bin 0 -> 1856 bytes .../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 .../lib/gnu/java/locale/LocaleData.class | Bin 0 -> 6225 bytes .../lib/gnu/java/locale/LocaleHelper.class | Bin 0 -> 2636 bytes .../gnu/java/locale/LocaleInformation.class | Bin 0 -> 328 bytes .../java/locale/LocaleInformation_af_ZA.class | Bin 0 -> 2305 bytes .../java/locale/LocaleInformation_ar_AE.class | Bin 0 -> 2443 bytes .../java/locale/LocaleInformation_ar_BH.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_DZ.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_EG.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_IN.class | Bin 0 -> 2454 bytes .../java/locale/LocaleInformation_ar_IQ.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_JO.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_ar_KW.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_LB.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_ar_LY.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_MA.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_OM.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_QA.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_SD.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_SY.class | Bin 0 -> 2304 bytes .../java/locale/LocaleInformation_ar_TN.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_ar_YE.class | Bin 0 -> 2442 bytes .../java/locale/LocaleInformation_be_BY.class | Bin 0 -> 2512 bytes .../java/locale/LocaleInformation_bn_IN.class | Bin 0 -> 2597 bytes .../java/locale/LocaleInformation_br_FR.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_bs_BA.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_ca_ES.class | Bin 0 -> 2266 bytes .../java/locale/LocaleInformation_cs_CZ.class | Bin 0 -> 2328 bytes .../java/locale/LocaleInformation_cy_GB.class | Bin 0 -> 2238 bytes .../java/locale/LocaleInformation_da_DK.class | Bin 0 -> 2290 bytes .../java/locale/LocaleInformation_de.class | Bin 0 -> 3408 bytes .../java/locale/LocaleInformation_de_AT.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_de_BE.class | Bin 0 -> 2296 bytes .../java/locale/LocaleInformation_de_CH.class | Bin 0 -> 2297 bytes .../java/locale/LocaleInformation_de_DE.class | Bin 0 -> 2296 bytes .../java/locale/LocaleInformation_de_LU.class | Bin 0 -> 2298 bytes .../java/locale/LocaleInformation_el_GR.class | Bin 0 -> 2526 bytes .../java/locale/LocaleInformation_en.class | Bin 0 -> 5113 bytes .../java/locale/LocaleInformation_en_AU.class | Bin 0 -> 2289 bytes .../java/locale/LocaleInformation_en_BW.class | Bin 0 -> 1713 bytes .../java/locale/LocaleInformation_en_CA.class | Bin 0 -> 2313 bytes .../java/locale/LocaleInformation_en_DK.class | Bin 0 -> 2292 bytes .../java/locale/LocaleInformation_en_GB.class | Bin 0 -> 2290 bytes .../java/locale/LocaleInformation_en_HK.class | Bin 0 -> 2312 bytes .../java/locale/LocaleInformation_en_IE.class | Bin 0 -> 2290 bytes .../java/locale/LocaleInformation_en_IN.class | Bin 0 -> 2324 bytes .../java/locale/LocaleInformation_en_NZ.class | Bin 0 -> 2289 bytes .../java/locale/LocaleInformation_en_PH.class | Bin 0 -> 2313 bytes .../java/locale/LocaleInformation_en_SG.class | Bin 0 -> 2309 bytes .../java/locale/LocaleInformation_en_US.class | Bin 0 -> 2315 bytes .../java/locale/LocaleInformation_en_ZA.class | Bin 0 -> 2289 bytes .../java/locale/LocaleInformation_en_ZW.class | Bin 0 -> 1713 bytes .../java/locale/LocaleInformation_es_AR.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_BO.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_CL.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_CO.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_CR.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_DO.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_EC.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_ES.class | Bin 0 -> 2269 bytes .../java/locale/LocaleInformation_es_GT.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_HN.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_MX.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_NI.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_PA.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_PE.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_PR.class | Bin 0 -> 2271 bytes .../java/locale/LocaleInformation_es_PY.class | Bin 0 -> 2273 bytes .../java/locale/LocaleInformation_es_SV.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_US.class | Bin 0 -> 2292 bytes .../java/locale/LocaleInformation_es_UY.class | Bin 0 -> 2272 bytes .../java/locale/LocaleInformation_es_VE.class | Bin 0 -> 2273 bytes .../java/locale/LocaleInformation_et_EE.class | Bin 0 -> 2300 bytes .../java/locale/LocaleInformation_eu_ES.class | Bin 0 -> 2293 bytes .../java/locale/LocaleInformation_fa_IR.class | Bin 0 -> 2430 bytes .../java/locale/LocaleInformation_fi_FI.class | Bin 0 -> 2380 bytes .../java/locale/LocaleInformation_fo_FO.class | Bin 0 -> 2317 bytes .../java/locale/LocaleInformation_fr_BE.class | Bin 0 -> 2267 bytes .../java/locale/LocaleInformation_fr_CA.class | Bin 0 -> 2269 bytes .../java/locale/LocaleInformation_fr_CH.class | Bin 0 -> 2263 bytes .../java/locale/LocaleInformation_fr_FR.class | Bin 0 -> 2261 bytes .../java/locale/LocaleInformation_fr_LU.class | Bin 0 -> 2264 bytes .../java/locale/LocaleInformation_ga_IE.class | Bin 0 -> 2367 bytes .../java/locale/LocaleInformation_gd_GB.class | Bin 0 -> 2380 bytes .../java/locale/LocaleInformation_gl_ES.class | Bin 0 -> 2265 bytes .../java/locale/LocaleInformation_gv_GB.class | Bin 0 -> 2369 bytes .../java/locale/LocaleInformation_he_IL.class | Bin 0 -> 2395 bytes .../java/locale/LocaleInformation_hi_IN.class | Bin 0 -> 2533 bytes .../java/locale/LocaleInformation_hr_HR.class | Bin 0 -> 2295 bytes .../java/locale/LocaleInformation_hu_HU.class | Bin 0 -> 2289 bytes .../java/locale/LocaleInformation_id_ID.class | Bin 0 -> 2277 bytes .../java/locale/LocaleInformation_it_CH.class | Bin 0 -> 2308 bytes .../java/locale/LocaleInformation_it_IT.class | Bin 0 -> 2280 bytes .../java/locale/LocaleInformation_iw_IL.class | Bin 0 -> 2395 bytes .../java/locale/LocaleInformation_ja_JP.class | Bin 0 -> 2290 bytes .../java/locale/LocaleInformation_ka_GE.class | Bin 0 -> 2718 bytes .../java/locale/LocaleInformation_kl_GL.class | Bin 0 -> 2346 bytes .../java/locale/LocaleInformation_ko_KR.class | Bin 0 -> 2371 bytes .../java/locale/LocaleInformation_kw_GB.class | Bin 0 -> 2339 bytes .../java/locale/LocaleInformation_lt_LT.class | Bin 0 -> 2353 bytes .../java/locale/LocaleInformation_lv_LV.class | Bin 0 -> 2342 bytes .../java/locale/LocaleInformation_mi_NZ.class | Bin 0 -> 2370 bytes .../java/locale/LocaleInformation_mk_MK.class | Bin 0 -> 2468 bytes .../java/locale/LocaleInformation_mr_IN.class | Bin 0 -> 2496 bytes .../java/locale/LocaleInformation_mt_MT.class | Bin 0 -> 2331 bytes .../java/locale/LocaleInformation_nl.class | Bin 0 -> 4111 bytes .../java/locale/LocaleInformation_nl_BE.class | Bin 0 -> 2273 bytes .../java/locale/LocaleInformation_nl_NL.class | Bin 0 -> 2266 bytes .../java/locale/LocaleInformation_nn_NO.class | Bin 0 -> 2281 bytes .../java/locale/LocaleInformation_no_NO.class | Bin 0 -> 2287 bytes .../java/locale/LocaleInformation_oc_FR.class | Bin 0 -> 2265 bytes .../java/locale/LocaleInformation_pl_PL.class | Bin 0 -> 2295 bytes .../java/locale/LocaleInformation_pt_BR.class | Bin 0 -> 2279 bytes .../java/locale/LocaleInformation_pt_PT.class | Bin 0 -> 2280 bytes .../java/locale/LocaleInformation_ro_RO.class | Bin 0 -> 2283 bytes .../java/locale/LocaleInformation_ru_RU.class | Bin 0 -> 2490 bytes .../java/locale/LocaleInformation_ru_UA.class | Bin 0 -> 2472 bytes .../java/locale/LocaleInformation_se_NO.class | Bin 0 -> 2415 bytes .../java/locale/LocaleInformation_sk_SK.class | Bin 0 -> 2283 bytes .../java/locale/LocaleInformation_sl_SI.class | Bin 0 -> 2267 bytes .../java/locale/LocaleInformation_sq_AL.class | Bin 0 -> 2332 bytes .../java/locale/LocaleInformation_sr_YU.class | Bin 0 -> 2245 bytes .../java/locale/LocaleInformation_sv_FI.class | Bin 0 -> 2293 bytes .../java/locale/LocaleInformation_sv_SE.class | Bin 0 -> 2293 bytes .../java/locale/LocaleInformation_ta_IN.class | Bin 0 -> 2452 bytes .../java/locale/LocaleInformation_te_IN.class | Bin 0 -> 2582 bytes .../java/locale/LocaleInformation_tg_TJ.class | Bin 0 -> 2490 bytes .../java/locale/LocaleInformation_tl_PH.class | Bin 0 -> 2319 bytes .../java/locale/LocaleInformation_tr_TR.class | Bin 0 -> 2562 bytes .../java/locale/LocaleInformation_uk_UA.class | Bin 0 -> 2501 bytes .../java/locale/LocaleInformation_ur_PK.class | Bin 0 -> 2199 bytes .../java/locale/LocaleInformation_uz_UZ.class | Bin 0 -> 2292 bytes .../java/locale/LocaleInformation_vi_VN.class | Bin 0 -> 2449 bytes .../java/locale/LocaleInformation_yi_US.class | Bin 0 -> 2525 bytes .../java/locale/LocaleInformation_zh_CN.class | Bin 0 -> 2355 bytes .../java/locale/LocaleInformation_zh_HK.class | Bin 0 -> 2369 bytes .../java/locale/LocaleInformation_zh_SG.class | Bin 0 -> 2153 bytes .../java/locale/LocaleInformation_zh_TW.class | Bin 0 -> 2376 bytes libjava/classpath/lib/gnu/java/math/MPN.class | Bin 0 -> 7842 bytes .../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 .../net/DefaultContentHandlerFactory.class | Bin 0 -> 1353 bytes .../gnu/java/net/DefaultProxySelector.class | Bin 0 -> 1184 bytes .../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 .../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 .../java/net/PlainDatagramSocketImpl.class | Bin 0 -> 3097 bytes .../PlainSocketImpl$SocketInputStream.class | Bin 0 -> 810 bytes .../PlainSocketImpl$SocketOutputStream.class | Bin 0 -> 720 bytes .../lib/gnu/java/net/PlainSocketImpl.class | Bin 0 -> 3295 bytes .../lib/gnu/java/net/URLParseError.class | Bin 0 -> 349 bytes .../gnu/java/net/loader/FileResource.class | Bin 0 -> 1259 bytes .../gnu/java/net/loader/FileURLLoader.class | Bin 0 -> 2171 bytes .../gnu/java/net/loader/JarURLLoader.class | Bin 0 -> 5457 bytes .../gnu/java/net/loader/JarURLResource.class | Bin 0 -> 2230 bytes .../gnu/java/net/loader/RemoteResource.class | Bin 0 -> 1051 bytes .../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 .../net/loader/URLStreamHandlerCache.class | Bin 0 -> 1273 bytes .../java/net/local/LocalServerSocket.class | Bin 0 -> 3487 bytes .../lib/gnu/java/net/local/LocalSocket.class | Bin 0 -> 5583 bytes .../java/net/local/LocalSocketAddress.class | Bin 0 -> 1183 bytes .../LocalSocketImpl$LocalInputStream.class | Bin 0 -> 1624 bytes .../LocalSocketImpl$LocalOutputStream.class | Bin 0 -> 1247 bytes .../gnu/java/net/local/LocalSocketImpl.class | Bin 0 -> 4520 bytes .../java/net/protocol/core/Connection.class | Bin 0 -> 3158 bytes .../net/protocol/core/CoreInputStream.class | Bin 0 -> 1518 bytes .../gnu/java/net/protocol/core/Handler.class | Bin 0 -> 588 bytes .../protocol/file/Connection$StaticData.class | Bin 0 -> 1010 bytes .../java/net/protocol/file/Connection.class | Bin 0 -> 5576 bytes .../gnu/java/net/protocol/file/Handler.class | Bin 0 -> 1057 bytes .../java/net/protocol/ftp/ActiveModeDTP.class | Bin 0 -> 3794 bytes .../net/protocol/ftp/BlockInputStream.class | Bin 0 -> 1694 bytes .../net/protocol/ftp/BlockOutputStream.class | Bin 0 -> 1454 bytes .../protocol/ftp/CompressedInputStream.class | Bin 0 -> 2403 bytes .../protocol/ftp/CompressedOutputStream.class | Bin 0 -> 2753 bytes .../lib/gnu/java/net/protocol/ftp/DTP.class | Bin 0 -> 382 bytes .../net/protocol/ftp/DTPInputStream.class | Bin 0 -> 867 bytes .../net/protocol/ftp/DTPOutputStream.class | Bin 0 -> 875 bytes .../java/net/protocol/ftp/FTPConnection.class | Bin 0 -> 16843 bytes .../java/net/protocol/ftp/FTPException.class | Bin 0 -> 685 bytes .../java/net/protocol/ftp/FTPResponse.class | Bin 0 -> 885 bytes .../FTPURLConnection$ClosingInputStream.class | Bin 0 -> 969 bytes ...FTPURLConnection$ClosingOutputStream.class | Bin 0 -> 977 bytes .../net/protocol/ftp/FTPURLConnection.class | Bin 0 -> 5875 bytes .../gnu/java/net/protocol/ftp/Handler.class | Bin 0 -> 673 bytes .../net/protocol/ftp/PassiveModeDTP.class | Bin 0 -> 3282 bytes .../net/protocol/ftp/StreamInputStream.class | Bin 0 -> 1089 bytes .../net/protocol/ftp/StreamOutputStream.class | Bin 0 -> 1021 bytes .../java/net/protocol/gcjlib/Connection.class | Bin 0 -> 2252 bytes .../java/net/protocol/gcjlib/Handler.class | Bin 0 -> 594 bytes .../net/protocol/http/Authenticator.class | Bin 0 -> 223 bytes .../http/ByteArrayRequestBodyWriter.class | Bin 0 -> 942 bytes .../protocol/http/ChunkedInputStream.class | Bin 0 -> 2748 bytes .../gnu/java/net/protocol/http/Cookie.class | Bin 0 -> 1894 bytes .../net/protocol/http/CookieManager.class | Bin 0 -> 294 bytes .../java/net/protocol/http/Credentials.class | Bin 0 -> 648 bytes .../http/HTTPConnection$Pool$Reaper.class | Bin 0 -> 1482 bytes .../protocol/http/HTTPConnection$Pool.class | Bin 0 -> 3489 bytes .../net/protocol/http/HTTPConnection.class | Bin 0 -> 10087 bytes .../net/protocol/http/HTTPDateFormat.class | Bin 0 -> 6629 bytes .../protocol/http/HTTPURLConnection$1.class | Bin 0 -> 976 bytes .../net/protocol/http/HTTPURLConnection.class | Bin 0 -> 12123 bytes .../gnu/java/net/protocol/http/Handler.class | Bin 0 -> 677 bytes .../protocol/http/Headers$HeaderElement.class | Bin 0 -> 571 bytes .../gnu/java/net/protocol/http/Headers.class | Bin 0 -> 5178 bytes .../http/LimitedLengthInputStream.class | Bin 0 -> 2288 bytes .../gnu/java/net/protocol/http/Request.class | Bin 0 -> 15584 bytes .../net/protocol/http/RequestBodyWriter.class | Bin 0 -> 221 bytes .../gnu/java/net/protocol/http/Response.class | Bin 0 -> 2213 bytes .../protocol/http/ResponseHeaderHandler.class | Bin 0 -> 193 bytes .../protocol/http/SimpleCookieManager.class | Bin 0 -> 3051 bytes .../gnu/java/net/protocol/https/Handler.class | Bin 0 -> 680 bytes .../jar/Connection$JarFileCache.class | Bin 0 -> 2288 bytes .../java/net/protocol/jar/Connection.class | Bin 0 -> 3397 bytes .../gnu/java/net/protocol/jar/Handler.class | Bin 0 -> 3822 bytes .../lib/gnu/java/nio/ChannelInputStream.class | Bin 0 -> 1104 bytes .../gnu/java/nio/ChannelOutputStream.class | Bin 0 -> 913 bytes .../lib/gnu/java/nio/ChannelReader.class | Bin 0 -> 2954 bytes .../lib/gnu/java/nio/ChannelWriter.class | Bin 0 -> 2972 bytes .../gnu/java/nio/DatagramChannelImpl.class | Bin 0 -> 5081 bytes .../nio/DatagramChannelSelectionKey.class | Bin 0 -> 810 bytes .../lib/gnu/java/nio/FileLockImpl.class | Bin 0 -> 1125 bytes .../lib/gnu/java/nio/InputStreamChannel.class | Bin 0 -> 1187 bytes .../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 .../lib/gnu/java/nio/NIOSocket.class | Bin 0 -> 992 bytes .../gnu/java/nio/OutputStreamChannel.class | Bin 0 -> 1182 bytes .../java/nio/PipeImpl$SinkChannelImpl.class | Bin 0 -> 1856 bytes .../java/nio/PipeImpl$SourceChannelImpl.class | Bin 0 -> 1865 bytes .../classpath/lib/gnu/java/nio/PipeImpl.class | Bin 0 -> 1072 bytes .../lib/gnu/java/nio/SelectionKeyImpl.class | Bin 0 -> 1511 bytes .../lib/gnu/java/nio/SelectorImpl.class | Bin 0 -> 5965 bytes .../gnu/java/nio/SelectorProviderImpl.class | Bin 0 -> 1290 bytes .../java/nio/ServerSocketChannelImpl.class | Bin 0 -> 2266 bytes .../nio/ServerSocketChannelSelectionKey.class | Bin 0 -> 826 bytes .../lib/gnu/java/nio/SocketChannelImpl.class | Bin 0 -> 5935 bytes .../java/nio/SocketChannelSelectionKey.class | Bin 0 -> 1027 bytes .../nio/SocketChannelSelectionKeyImpl.class | Bin 0 -> 843 bytes .../lib/gnu/java/nio/VMChannel.class | Bin 0 -> 2528 bytes .../lib/gnu/java/nio/VMChannelOwner.class | Bin 0 -> 174 bytes .../classpath/lib/gnu/java/nio/VMPipe.class | Bin 0 -> 401 bytes .../lib/gnu/java/nio/VMSelector.class | Bin 0 -> 359 bytes .../java/nio/channels/FileChannelImpl.class | Bin 0 -> 7914 bytes .../nio/charset/ByteCharset$Decoder.class | Bin 0 -> 1300 bytes .../nio/charset/ByteCharset$Encoder.class | Bin 0 -> 2042 bytes .../gnu/java/nio/charset/ByteCharset.class | Bin 0 -> 1313 bytes .../lib/gnu/java/nio/charset/Cp424.class | Bin 0 -> 2396 bytes .../lib/gnu/java/nio/charset/Cp437.class | Bin 0 -> 2429 bytes .../lib/gnu/java/nio/charset/Cp737.class | Bin 0 -> 2429 bytes .../lib/gnu/java/nio/charset/Cp775.class | Bin 0 -> 2429 bytes .../lib/gnu/java/nio/charset/Cp850.class | Bin 0 -> 2429 bytes .../lib/gnu/java/nio/charset/Cp852.class | Bin 0 -> 2429 bytes .../lib/gnu/java/nio/charset/Cp855.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp857.class | Bin 0 -> 2452 bytes .../lib/gnu/java/nio/charset/Cp860.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp861.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp862.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp863.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp864.class | Bin 0 -> 2738 bytes .../lib/gnu/java/nio/charset/Cp865.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp866.class | Bin 0 -> 2450 bytes .../lib/gnu/java/nio/charset/Cp869.class | Bin 0 -> 2446 bytes .../lib/gnu/java/nio/charset/Cp874.class | Bin 0 -> 2403 bytes .../gnu/java/nio/charset/EncodingHelper.class | Bin 0 -> 3137 bytes .../java/nio/charset/ISO_8859_1$Decoder.class | Bin 0 -> 1161 bytes .../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 .../gnu/java/nio/charset/ISO_8859_13.class | Bin 0 -> 2683 bytes .../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 .../lib/gnu/java/nio/charset/KOI_8.class | Bin 0 -> 2594 bytes .../lib/gnu/java/nio/charset/MS874.class | Bin 0 -> 2403 bytes .../java/nio/charset/MacCentralEurope.class | Bin 0 -> 2478 bytes .../gnu/java/nio/charset/MacCroatian.class | Bin 0 -> 2462 bytes .../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 .../java/nio/charset/US_ASCII$Decoder.class | Bin 0 -> 1248 bytes .../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 .../gnu/java/nio/charset/UTF_16Decoder.class | Bin 0 -> 2637 bytes .../gnu/java/nio/charset/UTF_16Encoder.class | Bin 0 -> 2308 bytes .../lib/gnu/java/nio/charset/UTF_16LE.class | Bin 0 -> 1340 bytes .../gnu/java/nio/charset/UTF_8$Decoder.class | Bin 0 -> 3229 bytes .../gnu/java/nio/charset/UTF_8$Encoder.class | Bin 0 -> 2124 bytes .../lib/gnu/java/nio/charset/UTF_8.class | Bin 0 -> 1316 bytes .../gnu/java/nio/charset/UnicodeLittle.class | Bin 0 -> 1218 bytes .../gnu/java/nio/charset/Windows1250.class | Bin 0 -> 2657 bytes .../gnu/java/nio/charset/Windows1251.class | Bin 0 -> 2603 bytes .../gnu/java/nio/charset/Windows1252.class | Bin 0 -> 2585 bytes .../gnu/java/nio/charset/Windows1253.class | Bin 0 -> 2587 bytes .../gnu/java/nio/charset/Windows1254.class | Bin 0 -> 2597 bytes .../gnu/java/nio/charset/Windows1255.class | Bin 0 -> 2581 bytes .../gnu/java/nio/charset/Windows1256.class | Bin 0 -> 2599 bytes .../gnu/java/nio/charset/Windows1257.class | Bin 0 -> 2592 bytes .../gnu/java/nio/charset/Windows1258.class | Bin 0 -> 2595 bytes .../rmi/RMIMarshalledObjectInputStream.class | Bin 0 -> 875 bytes .../rmi/RMIMarshalledObjectOutputStream.class | Bin 0 -> 1182 bytes .../ActivationSystemTransient.class | Bin 0 -> 8308 bytes .../gnu/java/rmi/activation/BidiTable.class | Bin 0 -> 2027 bytes .../activation/DefaultActivationGroup.class | Bin 0 -> 3584 bytes .../activation/DefaultActivationSystem.class | Bin 0 -> 1936 bytes .../java/rmi/dgc/DGCImpl$RefProtector.class | Bin 0 -> 1143 bytes .../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 .../LeaseRenewingTask$LeaseTimerTask.class | Bin 0 -> 636 bytes .../gnu/java/rmi/dgc/LeaseRenewingTask.class | Bin 0 -> 3205 bytes .../gnu/java/rmi/registry/RegistryImpl.class | Bin 0 -> 4240 bytes .../java/rmi/registry/RegistryImpl_Skel.class | Bin 0 -> 4107 bytes .../java/rmi/registry/RegistryImpl_Stub.class | Bin 0 -> 6139 bytes .../gnu/java/rmi/server/ActivatableRef.class | Bin 0 -> 3872 bytes .../rmi/server/ActivatableServerRef.class | Bin 0 -> 4674 bytes .../java/rmi/server/CombinedClassLoader.class | Bin 0 -> 1957 bytes ...onnectionRunnerPool$ConnectionRunner.class | Bin 0 -> 1527 bytes .../rmi/server/ConnectionRunnerPool.class | Bin 0 -> 2673 bytes .../java/rmi/server/ProtocolConstants.class | Bin 0 -> 719 bytes .../server/RMIClassLoaderImpl$CacheKey.class | Bin 0 -> 1553 bytes .../RMIClassLoaderImpl$MyClassLoader.class | Bin 0 -> 1385 bytes .../java/rmi/server/RMIClassLoaderImpl.class | Bin 0 -> 5117 bytes .../rmi/server/RMIDefaultSocketFactory.class | Bin 0 -> 814 bytes .../lib/gnu/java/rmi/server/RMIHashes.class | Bin 0 -> 2179 bytes .../java/rmi/server/RMIIncomingThread.class | Bin 0 -> 898 bytes .../rmi/server/RMIObjectInputStream.class | Bin 0 -> 3019 bytes .../rmi/server/RMIObjectOutputStream.class | Bin 0 -> 2997 bytes .../gnu/java/rmi/server/RMIVoidValue.class | Bin 0 -> 411 bytes .../lib/gnu/java/rmi/server/TripleKey.class | Bin 0 -> 1315 bytes .../java/rmi/server/UnicastConnection.class | Bin 0 -> 4367 bytes .../server/UnicastConnectionManager$1.class | Bin 0 -> 1917 bytes .../rmi/server/UnicastConnectionManager.class | Bin 0 -> 7405 bytes .../lib/gnu/java/rmi/server/UnicastRef.class | Bin 0 -> 10033 bytes ...astRemoteCall$DummyObjectInputStream.class | Bin 0 -> 3682 bytes ...stRemoteCall$DummyObjectOutputStream.class | Bin 0 -> 3218 bytes .../java/rmi/server/UnicastRemoteCall.class | Bin 0 -> 6149 bytes .../java/rmi/server/UnicastRemoteStub.class | Bin 0 -> 569 bytes .../gnu/java/rmi/server/UnicastServer.class | Bin 0 -> 6736 bytes .../java/rmi/server/UnicastServerRef.class | Bin 0 -> 9296 bytes .../lib/gnu/java/security/Configuration.class | Bin 0 -> 174 bytes .../lib/gnu/java/security/Engine.class | Bin 0 -> 5340 bytes .../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 .../lib/gnu/java/security/Registry.class | Bin 0 -> 7593 bytes .../lib/gnu/java/security/Requires.class | Bin 0 -> 601 bytes .../security/action/GetPropertyAction.class | Bin 0 -> 1489 bytes .../action/GetSecurityPropertyAction.class | Bin 0 -> 1525 bytes .../security/action/SetAccessibleAction.class | Bin 0 -> 914 bytes .../lib/gnu/java/security/ber/BER.class | Bin 0 -> 419 bytes .../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 .../lib/gnu/java/security/der/DER.class | Bin 0 -> 1355 bytes .../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 .../gnu/java/security/hash/HashFactory.class | Bin 0 -> 2386 bytes .../lib/gnu/java/security/hash/Haval.class | Bin 0 -> 16340 bytes .../java/security/hash/IMessageDigest.class | Bin 0 -> 410 bytes .../lib/gnu/java/security/hash/MD2.class | Bin 0 -> 4558 bytes .../lib/gnu/java/security/hash/MD4.class | Bin 0 -> 6039 bytes .../lib/gnu/java/security/hash/MD5.class | Bin 0 -> 7138 bytes .../gnu/java/security/hash/RipeMD128.class | Bin 0 -> 5286 bytes .../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 .../gnu/java/security/hash/Whirlpool.class | Bin 0 -> 10870 bytes .../gnu/java/security/jce/hash/HavalSpi.class | Bin 0 -> 375 bytes .../gnu/java/security/jce/hash/MD2Spi.class | Bin 0 -> 367 bytes .../gnu/java/security/jce/hash/MD4Spi.class | Bin 0 -> 367 bytes .../gnu/java/security/jce/hash/MD5Spi.class | Bin 0 -> 367 bytes .../jce/hash/MessageDigestAdapter.class | Bin 0 -> 1911 bytes .../java/security/jce/hash/RipeMD128Spi.class | Bin 0 -> 391 bytes .../java/security/jce/hash/RipeMD160Spi.class | Bin 0 -> 391 bytes .../java/security/jce/hash/Sha160Spi.class | Bin 0 -> 380 bytes .../java/security/jce/hash/Sha256Spi.class | Bin 0 -> 380 bytes .../java/security/jce/hash/Sha384Spi.class | Bin 0 -> 380 bytes .../java/security/jce/hash/Sha512Spi.class | Bin 0 -> 380 bytes .../gnu/java/security/jce/hash/TigerSpi.class | Bin 0 -> 375 bytes .../java/security/jce/hash/WhirlpoolSpi.class | Bin 0 -> 391 bytes .../security/jce/prng/HavalRandomSpi.class | Bin 0 -> 392 bytes .../java/security/jce/prng/MD2RandomSpi.class | Bin 0 -> 384 bytes .../java/security/jce/prng/MD4RandomSpi.class | Bin 0 -> 384 bytes .../java/security/jce/prng/MD5RandomSpi.class | Bin 0 -> 384 bytes .../jce/prng/RipeMD128RandomSpi.class | Bin 0 -> 408 bytes .../jce/prng/RipeMD160RandomSpi.class | Bin 0 -> 408 bytes .../jce/prng/SecureRandomAdapter.class | Bin 0 -> 1358 bytes .../security/jce/prng/Sha160RandomSpi.class | Bin 0 -> 397 bytes .../security/jce/prng/Sha256RandomSpi.class | Bin 0 -> 397 bytes .../security/jce/prng/Sha384RandomSpi.class | Bin 0 -> 397 bytes .../security/jce/prng/Sha512RandomSpi.class | Bin 0 -> 397 bytes .../security/jce/prng/TigerRandomSpi.class | Bin 0 -> 392 bytes .../jce/prng/WhirlpoolRandomSpi.class | Bin 0 -> 408 bytes .../java/security/jce/sig/DSSKeyFactory.class | Bin 0 -> 5029 bytes .../jce/sig/DSSKeyPairGeneratorSpi.class | Bin 0 -> 3213 bytes .../java/security/jce/sig/DSSParameters.class | Bin 0 -> 4369 bytes .../jce/sig/DSSParametersGenerator.class | Bin 0 -> 2984 bytes .../security/jce/sig/DSSRawSignatureSpi.class | Bin 0 -> 504 bytes .../security/jce/sig/EncodedKeyFactory.class | Bin 0 -> 9348 bytes .../jce/sig/KeyPairGeneratorAdapter.class | Bin 0 -> 1043 bytes .../java/security/jce/sig/MD2withRSA.class | Bin 0 -> 509 bytes .../java/security/jce/sig/MD5withRSA.class | Bin 0 -> 509 bytes .../java/security/jce/sig/RSAKeyFactory.class | Bin 0 -> 5638 bytes .../jce/sig/RSAKeyPairGeneratorSpi.class | Bin 0 -> 1615 bytes .../jce/sig/RSAPSSRawSignatureSpi.class | Bin 0 -> 520 bytes .../java/security/jce/sig/SHA160withDSS.class | Bin 0 -> 490 bytes .../java/security/jce/sig/SHA160withRSA.class | Bin 0 -> 522 bytes .../java/security/jce/sig/SHA256withRSA.class | Bin 0 -> 522 bytes .../java/security/jce/sig/SHA384withRSA.class | Bin 0 -> 522 bytes .../java/security/jce/sig/SHA512withRSA.class | Bin 0 -> 522 bytes .../security/jce/sig/SignatureAdapter.class | Bin 0 -> 4861 bytes .../gnu/java/security/key/IKeyPairCodec.class | Bin 0 -> 553 bytes .../java/security/key/IKeyPairGenerator.class | Bin 0 -> 259 bytes .../security/key/KeyPairCodecFactory.class | Bin 0 -> 5797 bytes .../key/KeyPairGeneratorFactory.class | Bin 0 -> 2362 bytes .../gnu/java/security/key/dss/DSSKey.class | Bin 0 -> 2829 bytes .../key/dss/DSSKeyPairGenerator.class | Bin 0 -> 7539 bytes .../key/dss/DSSKeyPairPKCS8Codec.class | Bin 0 -> 5128 bytes .../security/key/dss/DSSKeyPairRawCodec.class | Bin 0 -> 4553 bytes .../key/dss/DSSKeyPairX509Codec.class | Bin 0 -> 4955 bytes .../java/security/key/dss/DSSPrivateKey.class | Bin 0 -> 3030 bytes .../java/security/key/dss/DSSPublicKey.class | Bin 0 -> 3030 bytes .../gnu/java/security/key/dss/FIPS186.class | Bin 0 -> 3701 bytes .../gnu/java/security/key/rsa/GnuRSAKey.class | Bin 0 -> 2347 bytes .../security/key/rsa/GnuRSAPrivateKey.class | Bin 0 -> 4618 bytes .../security/key/rsa/GnuRSAPublicKey.class | Bin 0 -> 2694 bytes .../key/rsa/RSAKeyPairGenerator.class | Bin 0 -> 4142 bytes .../key/rsa/RSAKeyPairPKCS8Codec.class | Bin 0 -> 6261 bytes .../security/key/rsa/RSAKeyPairRawCodec.class | Bin 0 -> 4068 bytes .../key/rsa/RSAKeyPairX509Codec.class | Bin 0 -> 4663 bytes .../gnu/java/security/pkcs/PKCS7Data.class | Bin 0 -> 668 bytes .../java/security/pkcs/PKCS7SignedData.class | Bin 0 -> 8206 bytes .../gnu/java/security/pkcs/SignerInfo.class | Bin 0 -> 6501 bytes .../lib/gnu/java/security/prng/BasePRNG.class | Bin 0 -> 2892 bytes .../java/security/prng/EntropySource.class | Bin 0 -> 181 bytes .../lib/gnu/java/security/prng/IRandom.class | Bin 0 -> 561 bytes .../security/prng/LimitReachedException.class | Bin 0 -> 478 bytes .../gnu/java/security/prng/MDGenerator.class | Bin 0 -> 2078 bytes .../gnu/java/security/prng/PRNGFactory.class | Bin 0 -> 1073 bytes .../gnu/java/security/prng/RandomEvent.class | Bin 0 -> 1015 bytes .../security/prng/RandomEventListener.class | Bin 0 -> 240 bytes .../provider/CollectionCertStoreImpl.class | Bin 0 -> 2073 bytes .../security/provider/DefaultPolicy.class | Bin 0 -> 911 bytes .../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 .../provider/X509CertificateFactory.class | Bin 0 -> 5056 bytes .../gnu/java/security/sig/BaseSignature.class | Bin 0 -> 3996 bytes .../gnu/java/security/sig/ISignature.class | Bin 0 -> 762 bytes .../java/security/sig/ISignatureCodec.class | Bin 0 -> 317 bytes .../security/sig/SignatureCodecFactory.class | Bin 0 -> 3489 bytes .../java/security/sig/SignatureFactory.class | Bin 0 -> 1382 bytes .../java/security/sig/dss/DSSSignature.class | Bin 0 -> 5250 bytes .../sig/dss/DSSSignatureRawCodec.class | Bin 0 -> 2143 bytes .../sig/dss/DSSSignatureX509Codec.class | Bin 0 -> 2596 bytes .../security/sig/rsa/EME_PKCS1_V1_5.class | Bin 0 -> 3513 bytes .../security/sig/rsa/EMSA_PKCS1_V1_5.class | Bin 0 -> 3423 bytes .../gnu/java/security/sig/rsa/EMSA_PSS.class | Bin 0 -> 3734 bytes .../lib/gnu/java/security/sig/rsa/RSA.class | Bin 0 -> 4209 bytes .../sig/rsa/RSAPKCS1V1_5Signature.class | Bin 0 -> 3399 bytes .../rsa/RSAPKCS1V1_5SignatureRawCodec.class | Bin 0 -> 1762 bytes .../rsa/RSAPKCS1V1_5SignatureX509Codec.class | Bin 0 -> 924 bytes .../security/sig/rsa/RSAPSSSignature.class | Bin 0 -> 4129 bytes .../sig/rsa/RSAPSSSignatureRawCodec.class | Bin 0 -> 1690 bytes .../sig/rsa/RSASignatureFactory.class | Bin 0 -> 2802 bytes .../lib/gnu/java/security/util/Base64.class | Bin 0 -> 4996 bytes .../gnu/java/security/util/ByteArray.class | Bin 0 -> 2137 bytes .../util/ByteBufferOutputStream.class | Bin 0 -> 2085 bytes .../lib/gnu/java/security/util/DerUtil.class | Bin 0 -> 893 bytes .../util/ExpirableObject$Destroyer.class | Bin 0 -> 841 bytes .../java/security/util/ExpirableObject.class | Bin 0 -> 1264 bytes .../gnu/java/security/util/FormatUtil.class | Bin 0 -> 1246 bytes .../java/security/util/IntegerUtil$1.class | Bin 0 -> 689 bytes .../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 .../gnu/java/security/util/SimpleList.class | Bin 0 -> 2443 bytes .../lib/gnu/java/security/util/Util.class | Bin 0 -> 7616 bytes .../java/security/x509/GnuPKIExtension.class | Bin 0 -> 314 bytes .../java/security/x509/PolicyNodeImpl.class | Bin 0 -> 4472 bytes .../lib/gnu/java/security/x509/Util.class | Bin 0 -> 2815 bytes .../security/x509/X500DistinguishedName.class | Bin 0 -> 11414 bytes .../lib/gnu/java/security/x509/X509CRL.class | Bin 0 -> 9760 bytes .../gnu/java/security/x509/X509CRLEntry.class | Bin 0 -> 5338 bytes .../security/x509/X509CRLSelectorImpl.class | Bin 0 -> 2421 bytes .../gnu/java/security/x509/X509CertPath.class | Bin 0 -> 5636 bytes .../security/x509/X509CertSelectorImpl.class | Bin 0 -> 3382 bytes .../java/security/x509/X509Certificate.class | Bin 0 -> 17078 bytes .../x509/ext/AuthorityKeyIdentifier.class | Bin 0 -> 2707 bytes .../security/x509/ext/BasicConstraints.class | Bin 0 -> 2690 bytes .../java/security/x509/ext/CRLNumber.class | Bin 0 -> 1879 bytes .../x509/ext/CertificatePolicies.class | Bin 0 -> 4908 bytes .../security/x509/ext/ExtendedKeyUsage.class | Bin 0 -> 2069 bytes .../security/x509/ext/Extension$Value.class | Bin 0 -> 1195 bytes .../java/security/x509/ext/Extension.class | Bin 0 -> 4712 bytes .../java/security/x509/ext/GeneralNames.class | Bin 0 -> 3599 bytes .../x509/ext/IssuerAlternativeNames.class | Bin 0 -> 1334 bytes .../gnu/java/security/x509/ext/KeyUsage.class | Bin 0 -> 1954 bytes .../security/x509/ext/PolicyConstraint.class | Bin 0 -> 2187 bytes .../security/x509/ext/PolicyMappings.class | Bin 0 -> 2433 bytes .../x509/ext/PrivateKeyUsagePeriod.class | Bin 0 -> 2082 bytes .../java/security/x509/ext/ReasonCode.class | Bin 0 -> 1609 bytes .../x509/ext/SubjectAlternativeNames.class | Bin 0 -> 1337 bytes .../x509/ext/SubjectKeyIdentifier.class | Bin 0 -> 1612 bytes .../java/text/AttributedFormatBuffer.class | Bin 0 -> 4054 bytes .../lib/gnu/java/text/BaseBreakIterator.class | Bin 0 -> 1503 bytes .../java/text/CharacterBreakIterator.class | Bin 0 -> 3120 bytes .../lib/gnu/java/text/FormatBuffer.class | Bin 0 -> 613 bytes .../java/text/FormatCharacterIterator.class | Bin 0 -> 7158 bytes .../lib/gnu/java/text/LineBreakIterator.class | Bin 0 -> 2355 bytes .../gnu/java/text/SentenceBreakIterator.class | Bin 0 -> 2834 bytes .../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 .../gnu/java/util/WeakIdentityHashMap$1.class | Bin 0 -> 2951 bytes ...IdentityHashMap$WeakBucket$WeakEntry.class | Bin 0 -> 2038 bytes .../util/WeakIdentityHashMap$WeakBucket.class | Bin 0 -> 1120 bytes .../WeakIdentityHashMap$WeakEntrySet.class | Bin 0 -> 996 bytes .../gnu/java/util/WeakIdentityHashMap.class | Bin 0 -> 5474 bytes .../lib/gnu/java/util/jar/JarUtils.class | Bin 0 -> 9045 bytes .../gnu/java/util/prefs/EventDispatcher.class | Bin 0 -> 1264 bytes .../java/util/prefs/FileBasedFactory.class | Bin 0 -> 921 bytes .../util/prefs/FileBasedPreferences$1.class | Bin 0 -> 924 bytes .../util/prefs/FileBasedPreferences.class | Bin 0 -> 4473 bytes .../java/util/prefs/GConfBasedFactory.class | Bin 0 -> 869 bytes .../util/prefs/GConfBasedPreferences.class | Bin 0 -> 5305 bytes .../java/util/prefs/MemoryBasedFactory.class | Bin 0 -> 880 bytes .../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 .../util/prefs/gconf/GConfNativePeer.class | Bin 0 -> 2599 bytes .../util/regex/BacktrackStack$Backtrack.class | Bin 0 -> 911 bytes .../gnu/java/util/regex/BacktrackStack.class | Bin 0 -> 1487 bytes .../lib/gnu/java/util/regex/CharIndexed.class | Bin 0 -> 549 bytes .../util/regex/CharIndexedCharArray.class | Bin 0 -> 508 bytes .../util/regex/CharIndexedCharSequence.class | Bin 0 -> 2168 bytes .../util/regex/CharIndexedInputStream.class | Bin 0 -> 3586 bytes .../java/util/regex/CharIndexedString.class | Bin 0 -> 458 bytes .../util/regex/CharIndexedStringBuffer.class | Bin 0 -> 488 bytes .../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 .../java/util/regex/RE$NamedProperty.class | Bin 0 -> 549 bytes .../util/regex/RE$ParseCharClassResult.class | Bin 0 -> 632 bytes .../lib/gnu/java/util/regex/RE.class | Bin 0 -> 29673 bytes .../lib/gnu/java/util/regex/REException.class | Bin 0 -> 1846 bytes .../java/util/regex/REFilterInputStream.class | Bin 0 -> 2226 bytes .../lib/gnu/java/util/regex/REMatch.class | Bin 0 -> 4207 bytes .../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 .../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 .../regex/RETokenEndOfPreviousMatch.class | Bin 0 -> 1604 bytes .../gnu/java/util/regex/RETokenEndSub.class | Bin 0 -> 1668 bytes .../java/util/regex/RETokenIndependent.class | Bin 0 -> 1615 bytes .../java/util/regex/RETokenLookAhead.class | Bin 0 -> 1537 bytes ...TokenLookBehind$RETokenMatchHereOnly.class | Bin 0 -> 1065 bytes .../java/util/regex/RETokenLookBehind.class | Bin 0 -> 2393 bytes .../util/regex/RETokenNamedProperty$1.class | Bin 0 -> 831 bytes .../regex/RETokenNamedProperty$Handler.class | Bin 0 -> 566 bytes .../RETokenNamedProperty$POSIXHandler.class | Bin 0 -> 1238 bytes ...kenNamedProperty$UnicodeBlockHandler.class | Bin 0 -> 948 bytes ...medProperty$UnicodeCategoriesHandler.class | Bin 0 -> 868 bytes ...NamedProperty$UnicodeCategoryHandler.class | Bin 0 -> 782 bytes .../util/regex/RETokenNamedProperty.class | Bin 0 -> 6298 bytes .../gnu/java/util/regex/RETokenOneOf.class | Bin 0 -> 6619 bytes .../gnu/java/util/regex/RETokenPOSIX.class | Bin 0 -> 3820 bytes .../gnu/java/util/regex/RETokenRange.class | Bin 0 -> 2109 bytes .../regex/RETokenRepeated$DoablesFinder.class | Bin 0 -> 2400 bytes .../RETokenRepeated$FindMatchControl.class | Bin 0 -> 596 bytes ...ETokenRepeated$FindMatchControlStack.class | Bin 0 -> 1698 bytes .../regex/RETokenRepeated$StackedInfo.class | Bin 0 -> 999 bytes .../RETokenRepeated$TryAnotherResult.class | Bin 0 -> 768 bytes .../gnu/java/util/regex/RETokenRepeated.class | Bin 0 -> 9441 bytes .../gnu/java/util/regex/RETokenStart.class | Bin 0 -> 2229 bytes .../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 .../gnu/javax/crypto/assembly/Assembly.class | Bin 0 -> 2993 bytes .../gnu/javax/crypto/assembly/Cascade.class | Bin 0 -> 5202 bytes .../javax/crypto/assembly/CascadeStage.class | Bin 0 -> 2122 bytes .../crypto/assembly/CascadeTransformer.class | Bin 0 -> 2530 bytes .../crypto/assembly/DeflateTransformer.class | Bin 0 -> 3183 bytes .../gnu/javax/crypto/assembly/Direction.class | Bin 0 -> 863 bytes .../crypto/assembly/LoopbackTransformer.class | Bin 0 -> 1478 bytes .../gnu/javax/crypto/assembly/ModeStage.class | Bin 0 -> 2475 bytes .../gnu/javax/crypto/assembly/Operation.class | Bin 0 -> 679 bytes .../crypto/assembly/PaddingTransformer.class | Bin 0 -> 2783 bytes .../lib/gnu/javax/crypto/assembly/Stage.class | Bin 0 -> 2354 bytes .../javax/crypto/assembly/Transformer.class | Bin 0 -> 5430 bytes .../assembly/TransformerException.class | Bin 0 -> 1878 bytes .../lib/gnu/javax/crypto/cipher/Anubis.class | Bin 0 -> 8212 bytes .../gnu/javax/crypto/cipher/BaseCipher.class | Bin 0 -> 4395 bytes .../javax/crypto/cipher/Blowfish$Block.class | Bin 0 -> 672 bytes .../crypto/cipher/Blowfish$Context.class | Bin 0 -> 1097 bytes .../gnu/javax/crypto/cipher/Blowfish.class | Bin 0 -> 21891 bytes .../javax/crypto/cipher/Cast5$Cast5Key.class | Bin 0 -> 1106 bytes .../lib/gnu/javax/crypto/cipher/Cast5.class | Bin 0 -> 38541 bytes .../javax/crypto/cipher/CipherFactory.class | Bin 0 -> 2302 bytes .../gnu/javax/crypto/cipher/DES$Context.class | Bin 0 -> 1058 bytes .../lib/gnu/javax/crypto/cipher/DES.class | Bin 0 -> 13928 bytes .../javax/crypto/cipher/IBlockCipher.class | Bin 0 -> 829 bytes .../javax/crypto/cipher/IBlockCipherSpi.class | Bin 0 -> 425 bytes .../lib/gnu/javax/crypto/cipher/Khazad.class | Bin 0 -> 7325 bytes .../gnu/javax/crypto/cipher/NullCipher.class | Bin 0 -> 1919 bytes .../gnu/javax/crypto/cipher/Rijndael.class | Bin 0 -> 11637 bytes .../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 .../crypto/cipher/TripleDES$Context.class | Bin 0 -> 732 bytes .../gnu/javax/crypto/cipher/TripleDES.class | Bin 0 -> 3879 bytes .../lib/gnu/javax/crypto/cipher/Twofish.class | Bin 0 -> 11522 bytes .../crypto/cipher/WeakKeyException.class | Bin 0 -> 479 bytes .../javax/crypto/jce/DiffieHellmanImpl.class | Bin 0 -> 3619 bytes .../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 .../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 ...PBKDF2SecretKeyFactory$HMacRipeMD128.class | Bin 0 -> 485 bytes ...PBKDF2SecretKeyFactory$HMacRipeMD160.class | Bin 0 -> 485 bytes .../jce/PBKDF2SecretKeyFactory$HMacSHA1.class | Bin 0 -> 465 bytes .../PBKDF2SecretKeyFactory$HMacSHA256.class | Bin 0 -> 473 bytes .../PBKDF2SecretKeyFactory$HMacSHA384.class | Bin 0 -> 473 bytes .../PBKDF2SecretKeyFactory$HMacSHA512.class | Bin 0 -> 473 bytes .../PBKDF2SecretKeyFactory$HMacTiger.class | Bin 0 -> 469 bytes ...PBKDF2SecretKeyFactory$HMacWhirlpool.class | Bin 0 -> 485 bytes .../crypto/jce/PBKDF2SecretKeyFactory.class | Bin 0 -> 3819 bytes .../crypto/jce/cipher/AES128KeyWrapSpi.class | Bin 0 -> 431 bytes .../crypto/jce/cipher/AES192KeyWrapSpi.class | Bin 0 -> 431 bytes .../crypto/jce/cipher/AES256KeyWrapSpi.class | Bin 0 -> 431 bytes .../crypto/jce/cipher/AESKeyWrapSpi.class | Bin 0 -> 800 bytes .../gnu/javax/crypto/jce/cipher/AESSpi.class | Bin 0 -> 1559 bytes .../javax/crypto/jce/cipher/ARCFourSpi.class | Bin 0 -> 3913 bytes .../javax/crypto/jce/cipher/AnubisSpi.class | Bin 0 -> 375 bytes .../javax/crypto/jce/cipher/BlowfishSpi.class | Bin 0 -> 383 bytes .../javax/crypto/jce/cipher/Cast5Spi.class | Bin 0 -> 371 bytes .../crypto/jce/cipher/CipherAdapter.class | Bin 0 -> 9825 bytes .../gnu/javax/crypto/jce/cipher/DESSpi.class | Bin 0 -> 363 bytes .../cipher/KeyWrappingAlgorithmAdapter.class | Bin 0 -> 8363 bytes .../javax/crypto/jce/cipher/KhazadSpi.class | Bin 0 -> 375 bytes .../crypto/jce/cipher/NullCipherSpi.class | Bin 0 -> 385 bytes .../jce/cipher/PBES2$HMacHaval$AES.class | Bin 0 -> 480 bytes .../jce/cipher/PBES2$HMacHaval$Anubis.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacHaval$Blowfish.class | Bin 0 -> 495 bytes .../jce/cipher/PBES2$HMacHaval$Cast5.class | Bin 0 -> 486 bytes .../jce/cipher/PBES2$HMacHaval$DES.class | Bin 0 -> 480 bytes .../jce/cipher/PBES2$HMacHaval$Khazad.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacHaval$Serpent.class | Bin 0 -> 492 bytes .../jce/cipher/PBES2$HMacHaval$Square.class | Bin 0 -> 489 bytes .../cipher/PBES2$HMacHaval$TripleDES.class | Bin 0 -> 498 bytes .../jce/cipher/PBES2$HMacHaval$Twofish.class | Bin 0 -> 492 bytes .../crypto/jce/cipher/PBES2$HMacHaval.class | Bin 0 -> 1411 bytes .../crypto/jce/cipher/PBES2$HMacMD2$AES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD2$Anubis.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD2$Blowfish.class | Bin 0 -> 487 bytes .../jce/cipher/PBES2$HMacMD2$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD2$DES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD2$Khazad.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD2$Serpent.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacMD2$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD2$TripleDES.class | Bin 0 -> 490 bytes .../jce/cipher/PBES2$HMacMD2$Twofish.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD2.class | Bin 0 -> 1383 bytes .../crypto/jce/cipher/PBES2$HMacMD4$AES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD4$Anubis.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD4$Blowfish.class | Bin 0 -> 487 bytes .../jce/cipher/PBES2$HMacMD4$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD4$DES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD4$Khazad.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD4$Serpent.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacMD4$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD4$TripleDES.class | Bin 0 -> 490 bytes .../jce/cipher/PBES2$HMacMD4$Twofish.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD4.class | Bin 0 -> 1383 bytes .../crypto/jce/cipher/PBES2$HMacMD5$AES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD5$Anubis.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD5$Blowfish.class | Bin 0 -> 487 bytes .../jce/cipher/PBES2$HMacMD5$Cast5.class | Bin 0 -> 478 bytes .../crypto/jce/cipher/PBES2$HMacMD5$DES.class | Bin 0 -> 472 bytes .../jce/cipher/PBES2$HMacMD5$Khazad.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD5$Serpent.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacMD5$Square.class | Bin 0 -> 481 bytes .../jce/cipher/PBES2$HMacMD5$TripleDES.class | Bin 0 -> 490 bytes .../jce/cipher/PBES2$HMacMD5$Twofish.class | Bin 0 -> 484 bytes .../crypto/jce/cipher/PBES2$HMacMD5.class | Bin 0 -> 1383 bytes .../jce/cipher/PBES2$HMacRipeMD128$AES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacRipeMD128$Anubis.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacRipeMD128$Blowfish.class | Bin 0 -> 511 bytes .../cipher/PBES2$HMacRipeMD128$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacRipeMD128$DES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacRipeMD128$Khazad.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacRipeMD128$Serpent.class | Bin 0 -> 508 bytes .../cipher/PBES2$HMacRipeMD128$Square.class | Bin 0 -> 505 bytes .../PBES2$HMacRipeMD128$TripleDES.class | Bin 0 -> 514 bytes .../cipher/PBES2$HMacRipeMD128$Twofish.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacRipeMD128.class | Bin 0 -> 1467 bytes .../jce/cipher/PBES2$HMacRipeMD160$AES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacRipeMD160$Anubis.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacRipeMD160$Blowfish.class | Bin 0 -> 511 bytes .../cipher/PBES2$HMacRipeMD160$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacRipeMD160$DES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacRipeMD160$Khazad.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacRipeMD160$Serpent.class | Bin 0 -> 508 bytes .../cipher/PBES2$HMacRipeMD160$Square.class | Bin 0 -> 505 bytes .../PBES2$HMacRipeMD160$TripleDES.class | Bin 0 -> 514 bytes .../cipher/PBES2$HMacRipeMD160$Twofish.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacRipeMD160.class | Bin 0 -> 1467 bytes .../jce/cipher/PBES2$HMacSHA1$AES.class | Bin 0 -> 476 bytes .../jce/cipher/PBES2$HMacSHA1$Anubis.class | Bin 0 -> 485 bytes .../jce/cipher/PBES2$HMacSHA1$Blowfish.class | Bin 0 -> 491 bytes .../jce/cipher/PBES2$HMacSHA1$Cast5.class | Bin 0 -> 482 bytes .../jce/cipher/PBES2$HMacSHA1$DES.class | Bin 0 -> 476 bytes .../jce/cipher/PBES2$HMacSHA1$Khazad.class | Bin 0 -> 485 bytes .../jce/cipher/PBES2$HMacSHA1$Serpent.class | Bin 0 -> 488 bytes .../jce/cipher/PBES2$HMacSHA1$Square.class | Bin 0 -> 485 bytes .../jce/cipher/PBES2$HMacSHA1$TripleDES.class | Bin 0 -> 494 bytes .../jce/cipher/PBES2$HMacSHA1$Twofish.class | Bin 0 -> 488 bytes .../crypto/jce/cipher/PBES2$HMacSHA1.class | Bin 0 -> 1397 bytes .../jce/cipher/PBES2$HMacSHA256$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA256$Anubis.class | Bin 0 -> 493 bytes .../cipher/PBES2$HMacSHA256$Blowfish.class | Bin 0 -> 499 bytes .../jce/cipher/PBES2$HMacSHA256$Cast5.class | Bin 0 -> 490 bytes .../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 .../cipher/PBES2$HMacSHA256$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA256$Twofish.class | Bin 0 -> 496 bytes .../crypto/jce/cipher/PBES2$HMacSHA256.class | Bin 0 -> 1426 bytes .../jce/cipher/PBES2$HMacSHA384$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA384$Anubis.class | Bin 0 -> 493 bytes .../cipher/PBES2$HMacSHA384$Blowfish.class | Bin 0 -> 499 bytes .../jce/cipher/PBES2$HMacSHA384$Cast5.class | Bin 0 -> 490 bytes .../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 .../cipher/PBES2$HMacSHA384$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA384$Twofish.class | Bin 0 -> 496 bytes .../crypto/jce/cipher/PBES2$HMacSHA384.class | Bin 0 -> 1426 bytes .../jce/cipher/PBES2$HMacSHA512$AES.class | Bin 0 -> 484 bytes .../jce/cipher/PBES2$HMacSHA512$Anubis.class | Bin 0 -> 493 bytes .../cipher/PBES2$HMacSHA512$Blowfish.class | Bin 0 -> 499 bytes .../jce/cipher/PBES2$HMacSHA512$Cast5.class | Bin 0 -> 490 bytes .../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 .../cipher/PBES2$HMacSHA512$TripleDES.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacSHA512$Twofish.class | Bin 0 -> 496 bytes .../crypto/jce/cipher/PBES2$HMacSHA512.class | Bin 0 -> 1426 bytes .../jce/cipher/PBES2$HMacTiger$AES.class | Bin 0 -> 480 bytes .../jce/cipher/PBES2$HMacTiger$Anubis.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacTiger$Blowfish.class | Bin 0 -> 495 bytes .../jce/cipher/PBES2$HMacTiger$Cast5.class | Bin 0 -> 486 bytes .../jce/cipher/PBES2$HMacTiger$DES.class | Bin 0 -> 480 bytes .../jce/cipher/PBES2$HMacTiger$Khazad.class | Bin 0 -> 489 bytes .../jce/cipher/PBES2$HMacTiger$Serpent.class | Bin 0 -> 492 bytes .../jce/cipher/PBES2$HMacTiger$Square.class | Bin 0 -> 489 bytes .../cipher/PBES2$HMacTiger$TripleDES.class | Bin 0 -> 498 bytes .../jce/cipher/PBES2$HMacTiger$Twofish.class | Bin 0 -> 492 bytes .../crypto/jce/cipher/PBES2$HMacTiger.class | Bin 0 -> 1411 bytes .../jce/cipher/PBES2$HMacWhirlpool$AES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacWhirlpool$Anubis.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacWhirlpool$Blowfish.class | Bin 0 -> 511 bytes .../cipher/PBES2$HMacWhirlpool$Cast5.class | Bin 0 -> 502 bytes .../jce/cipher/PBES2$HMacWhirlpool$DES.class | Bin 0 -> 496 bytes .../cipher/PBES2$HMacWhirlpool$Khazad.class | Bin 0 -> 505 bytes .../cipher/PBES2$HMacWhirlpool$Serpent.class | Bin 0 -> 508 bytes .../cipher/PBES2$HMacWhirlpool$Square.class | Bin 0 -> 505 bytes .../PBES2$HMacWhirlpool$TripleDES.class | Bin 0 -> 514 bytes .../cipher/PBES2$HMacWhirlpool$Twofish.class | Bin 0 -> 508 bytes .../jce/cipher/PBES2$HMacWhirlpool.class | Bin 0 -> 1467 bytes .../gnu/javax/crypto/jce/cipher/PBES2.class | Bin 0 -> 4591 bytes .../javax/crypto/jce/cipher/RijndaelSpi.class | Bin 0 -> 386 bytes .../javax/crypto/jce/cipher/SerpentSpi.class | Bin 0 -> 379 bytes .../javax/crypto/jce/cipher/SquareSpi.class | Bin 0 -> 375 bytes .../jce/cipher/TripleDESKeyWrapSpi.class | Bin 0 -> 460 bytes .../crypto/jce/cipher/TripleDESSpi.class | Bin 0 -> 387 bytes .../javax/crypto/jce/cipher/TwofishSpi.class | Bin 0 -> 379 bytes .../jce/key/AnubisKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/AnubisSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../jce/key/BlowfishKeyGeneratorImpl.class | Bin 0 -> 422 bytes .../key/BlowfishSecretKeyFactoryImpl.class | Bin 0 -> 392 bytes .../jce/key/Cast5KeyGeneratorImpl.class | Bin 0 -> 410 bytes .../jce/key/Cast5SecretKeyFactoryImpl.class | Bin 0 -> 383 bytes .../crypto/jce/key/DESKeyGeneratorImpl.class | Bin 0 -> 1080 bytes .../jce/key/DESSecretKeyFactoryImpl.class | Bin 0 -> 1589 bytes .../jce/key/DESedeSecretKeyFactoryImpl.class | Bin 0 -> 1599 bytes .../jce/key/KhazadKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/KhazadSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../jce/key/RijndaelKeyGeneratorImpl.class | Bin 0 -> 422 bytes .../key/RijndaelSecretKeyFactoryImpl.class | Bin 0 -> 392 bytes .../crypto/jce/key/SecretKeyFactoryImpl.class | Bin 0 -> 1889 bytes .../jce/key/SecretKeyGeneratorImpl.class | Bin 0 -> 2889 bytes .../jce/key/SerpentKeyGeneratorImpl.class | Bin 0 -> 418 bytes .../jce/key/SerpentSecretKeyFactoryImpl.class | Bin 0 -> 389 bytes .../jce/key/SquareKeyGeneratorImpl.class | Bin 0 -> 414 bytes .../jce/key/SquareSecretKeyFactoryImpl.class | Bin 0 -> 386 bytes .../jce/key/TripleDESKeyGeneratorImpl.class | Bin 0 -> 426 bytes .../jce/key/TwofishKeyGeneratorImpl.class | Bin 0 -> 418 bytes .../jce/key/TwofishSecretKeyFactoryImpl.class | Bin 0 -> 389 bytes .../javax/crypto/jce/keyring/GnuKeyring.class | Bin 0 -> 9345 bytes .../javax/crypto/jce/mac/HMacHavalSpi.class | Bin 0 -> 376 bytes .../gnu/javax/crypto/jce/mac/HMacMD2Spi.class | Bin 0 -> 368 bytes .../gnu/javax/crypto/jce/mac/HMacMD4Spi.class | Bin 0 -> 368 bytes .../gnu/javax/crypto/jce/mac/HMacMD5Spi.class | Bin 0 -> 368 bytes .../crypto/jce/mac/HMacRipeMD128Spi.class | Bin 0 -> 392 bytes .../crypto/jce/mac/HMacRipeMD160Spi.class | Bin 0 -> 392 bytes .../javax/crypto/jce/mac/HMacSHA160Spi.class | Bin 0 -> 381 bytes .../javax/crypto/jce/mac/HMacSHA256Spi.class | Bin 0 -> 381 bytes .../javax/crypto/jce/mac/HMacSHA384Spi.class | Bin 0 -> 381 bytes .../javax/crypto/jce/mac/HMacSHA512Spi.class | Bin 0 -> 381 bytes .../javax/crypto/jce/mac/HMacTigerSpi.class | Bin 0 -> 376 bytes .../crypto/jce/mac/HMacWhirlpoolSpi.class | Bin 0 -> 392 bytes .../gnu/javax/crypto/jce/mac/MacAdapter.class | Bin 0 -> 2656 bytes .../javax/crypto/jce/mac/OMacAnubisImpl.class | Bin 0 -> 383 bytes .../crypto/jce/mac/OMacBlowfishImpl.class | Bin 0 -> 391 bytes .../javax/crypto/jce/mac/OMacCast5Impl.class | Bin 0 -> 379 bytes .../javax/crypto/jce/mac/OMacDESImpl.class | Bin 0 -> 371 bytes .../crypto/jce/mac/OMacImpl$Anubis.class | Bin 0 -> 517 bytes .../crypto/jce/mac/OMacImpl$Blowfish.class | Bin 0 -> 525 bytes .../javax/crypto/jce/mac/OMacImpl$Cast5.class | Bin 0 -> 513 bytes .../javax/crypto/jce/mac/OMacImpl$DES.class | Bin 0 -> 505 bytes .../crypto/jce/mac/OMacImpl$Khazad.class | Bin 0 -> 517 bytes .../crypto/jce/mac/OMacImpl$Rijndael.class | Bin 0 -> 525 bytes .../crypto/jce/mac/OMacImpl$Serpent.class | Bin 0 -> 521 bytes .../crypto/jce/mac/OMacImpl$Square.class | Bin 0 -> 517 bytes .../crypto/jce/mac/OMacImpl$TripleDES.class | Bin 0 -> 529 bytes .../crypto/jce/mac/OMacImpl$Twofish.class | Bin 0 -> 521 bytes .../gnu/javax/crypto/jce/mac/OMacImpl.class | Bin 0 -> 1213 bytes .../javax/crypto/jce/mac/OMacKhazadImpl.class | Bin 0 -> 383 bytes .../crypto/jce/mac/OMacRijndaelImpl.class | Bin 0 -> 391 bytes .../crypto/jce/mac/OMacSerpentImpl.class | Bin 0 -> 387 bytes .../javax/crypto/jce/mac/OMacSquareImpl.class | Bin 0 -> 383 bytes .../crypto/jce/mac/OMacTripleDESImpl.class | Bin 0 -> 395 bytes .../crypto/jce/mac/OMacTwofishImpl.class | Bin 0 -> 387 bytes .../gnu/javax/crypto/jce/mac/TMMH16Spi.class | Bin 0 -> 1659 bytes .../gnu/javax/crypto/jce/mac/UHash32Spi.class | Bin 0 -> 367 bytes .../gnu/javax/crypto/jce/mac/UMac32Spi.class | Bin 0 -> 1242 bytes .../jce/params/BlockCipherParameters.class | Bin 0 -> 3568 bytes .../jce/params/DEREncodingException.class | Bin 0 -> 485 bytes .../javax/crypto/jce/params/DERReader.class | Bin 0 -> 2085 bytes .../javax/crypto/jce/params/DERWriter.class | Bin 0 -> 2257 bytes .../crypto/jce/prng/ARCFourRandomSpi.class | Bin 0 -> 1418 bytes .../gnu/javax/crypto/jce/prng/CSPRNGSpi.class | Bin 0 -> 1499 bytes .../javax/crypto/jce/prng/FortunaImpl.class | Bin 0 -> 1354 bytes .../javax/crypto/jce/prng/ICMRandomSpi.class | Bin 0 -> 3712 bytes .../javax/crypto/jce/prng/UMacRandomSpi.class | Bin 0 -> 3184 bytes .../javax/crypto/jce/sig/DHKeyFactory.class | Bin 0 -> 4888 bytes .../jce/sig/DHKeyPairGeneratorSpi.class | Bin 0 -> 1650 bytes .../javax/crypto/jce/sig/DHParameters.class | Bin 0 -> 4564 bytes .../jce/sig/DHParametersGenerator.class | Bin 0 -> 3498 bytes .../jce/spec/BlockCipherParameterSpec.class | Bin 0 -> 1630 bytes .../crypto/jce/spec/TMMHParameterSpec.class | Bin 0 -> 1094 bytes .../crypto/jce/spec/UMac32ParameterSpec.class | Bin 0 -> 524 bytes .../crypto/key/BaseKeyAgreementParty.class | Bin 0 -> 2887 bytes .../lib/gnu/javax/crypto/key/GnuPBEKey.class | Bin 0 -> 1273 bytes .../gnu/javax/crypto/key/GnuSecretKey.class | Bin 0 -> 1620 bytes .../javax/crypto/key/IKeyAgreementParty.class | Bin 0 -> 491 bytes .../javax/crypto/key/IncomingMessage.class | Bin 0 -> 5337 bytes .../crypto/key/KeyAgreementException.class | Bin 0 -> 1782 bytes .../crypto/key/KeyAgreementFactory.class | Bin 0 -> 1998 bytes .../javax/crypto/key/OutgoingMessage.class | Bin 0 -> 3590 bytes .../crypto/key/dh/DHKeyPairPKCS8Codec.class | Bin 0 -> 4882 bytes .../crypto/key/dh/DHKeyPairRawCodec.class | Bin 0 -> 4528 bytes .../crypto/key/dh/DHKeyPairX509Codec.class | Bin 0 -> 4928 bytes .../key/dh/DiffieHellmanKeyAgreement.class | Bin 0 -> 1058 bytes .../crypto/key/dh/DiffieHellmanReceiver.class | Bin 0 -> 2816 bytes .../crypto/key/dh/DiffieHellmanSender.class | Bin 0 -> 2956 bytes .../crypto/key/dh/ElGamalKeyAgreement.class | Bin 0 -> 1075 bytes .../javax/crypto/key/dh/ElGamalReceiver.class | Bin 0 -> 2008 bytes .../javax/crypto/key/dh/ElGamalSender.class | Bin 0 -> 2505 bytes .../gnu/javax/crypto/key/dh/GnuDHKey.class | Bin 0 -> 2703 bytes .../crypto/key/dh/GnuDHKeyPairGenerator.class | Bin 0 -> 4686 bytes .../javax/crypto/key/dh/GnuDHPrivateKey.class | Bin 0 -> 2989 bytes .../javax/crypto/key/dh/GnuDHPublicKey.class | Bin 0 -> 2990 bytes .../lib/gnu/javax/crypto/key/dh/RFC2631.class | Bin 0 -> 3411 bytes .../gnu/javax/crypto/key/srp6/SRP6Host.class | Bin 0 -> 4805 bytes .../crypto/key/srp6/SRP6KeyAgreement.class | Bin 0 -> 2064 bytes .../crypto/key/srp6/SRP6SaslClient.class | Bin 0 -> 1268 bytes .../crypto/key/srp6/SRP6SaslServer.class | Bin 0 -> 1205 bytes .../javax/crypto/key/srp6/SRP6TLSClient.class | Bin 0 -> 4230 bytes .../javax/crypto/key/srp6/SRP6TLSServer.class | Bin 0 -> 4819 bytes .../gnu/javax/crypto/key/srp6/SRP6User.class | Bin 0 -> 4660 bytes .../javax/crypto/key/srp6/SRPAlgorithm.class | Bin 0 -> 4451 bytes .../gnu/javax/crypto/key/srp6/SRPKey.class | Bin 0 -> 1256 bytes .../crypto/key/srp6/SRPKeyPairGenerator.class | Bin 0 -> 5486 bytes .../crypto/key/srp6/SRPKeyPairRawCodec.class | Bin 0 -> 4346 bytes .../javax/crypto/key/srp6/SRPPrivateKey.class | Bin 0 -> 2479 bytes .../javax/crypto/key/srp6/SRPPublicKey.class | Bin 0 -> 1972 bytes .../crypto/keyring/AuthenticatedEntry.class | Bin 0 -> 5067 bytes .../javax/crypto/keyring/BaseKeyring.class | Bin 0 -> 3549 bytes .../crypto/keyring/BinaryDataEntry.class | Bin 0 -> 1815 bytes .../javax/crypto/keyring/CertPathEntry.class | Bin 0 -> 2959 bytes .../crypto/keyring/CertificateEntry.class | Bin 0 -> 2968 bytes .../crypto/keyring/CompressedEntry.class | Bin 0 -> 3048 bytes .../javax/crypto/keyring/EncryptedEntry.class | Bin 0 -> 5894 bytes .../lib/gnu/javax/crypto/keyring/Entry.class | Bin 0 -> 3066 bytes .../javax/crypto/keyring/EnvelopeEntry.class | Bin 0 -> 7797 bytes .../crypto/keyring/GnuPrivateKeyring.class | Bin 0 -> 7405 bytes .../crypto/keyring/GnuPublicKeyring.class | Bin 0 -> 4016 bytes .../gnu/javax/crypto/keyring/IKeyring.class | Bin 0 -> 754 bytes .../crypto/keyring/IPrivateKeyring.class | Bin 0 -> 790 bytes .../javax/crypto/keyring/IPublicKeyring.class | Bin 0 -> 390 bytes .../keyring/MalformedKeyringException.class | Bin 0 -> 494 bytes .../keyring/MaskableEnvelopeEntry.class | Bin 0 -> 2248 bytes .../crypto/keyring/MeteredInputStream.class | Bin 0 -> 1978 bytes .../keyring/PasswordAuthenticatedEntry.class | Bin 0 -> 8106 bytes .../keyring/PasswordEncryptedEntry.class | Bin 0 -> 8323 bytes .../keyring/PasswordProtectedEntry.class | Bin 0 -> 498 bytes .../javax/crypto/keyring/PrimitiveEntry.class | Bin 0 -> 2280 bytes .../crypto/keyring/PrivateKeyEntry.class | Bin 0 -> 4367 bytes .../gnu/javax/crypto/keyring/Properties.class | Bin 0 -> 3479 bytes .../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 .../crypto/kwa/IKeyWrappingAlgorithm.class | Bin 0 -> 698 bytes .../crypto/kwa/KeyUnwrappingException.class | Bin 0 -> 496 bytes .../kwa/KeyWrappingAlgorithmFactory.class | Bin 0 -> 1474 bytes .../javax/crypto/kwa/TripleDESKeyWrap.class | Bin 0 -> 5388 bytes .../lib/gnu/javax/crypto/mac/BaseMac.class | Bin 0 -> 1694 bytes .../lib/gnu/javax/crypto/mac/HMac.class | Bin 0 -> 4848 bytes .../gnu/javax/crypto/mac/HMacFactory.class | Bin 0 -> 1916 bytes .../lib/gnu/javax/crypto/mac/IMac.class | Bin 0 -> 686 bytes .../lib/gnu/javax/crypto/mac/MacFactory.class | Bin 0 -> 2483 bytes .../gnu/javax/crypto/mac/MacInputStream.class | Bin 0 -> 1464 bytes .../javax/crypto/mac/MacOutputStream.class | Bin 0 -> 1438 bytes .../lib/gnu/javax/crypto/mac/OMAC.class | Bin 0 -> 5837 bytes .../lib/gnu/javax/crypto/mac/TMMH16.class | Bin 0 -> 4710 bytes .../javax/crypto/mac/UHash32$L1Hash32.class | Bin 0 -> 3648 bytes .../javax/crypto/mac/UHash32$L2Hash32.class | Bin 0 -> 3784 bytes .../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 .../lib/gnu/javax/crypto/mode/CBC.class | Bin 0 -> 1912 bytes .../lib/gnu/javax/crypto/mode/CFB.class | Bin 0 -> 2144 bytes .../lib/gnu/javax/crypto/mode/CTR.class | Bin 0 -> 2347 bytes .../lib/gnu/javax/crypto/mode/EAX.class | Bin 0 -> 6178 bytes .../lib/gnu/javax/crypto/mode/ECB.class | Bin 0 -> 1484 bytes .../crypto/mode/IAuthenticatedMode.class | Bin 0 -> 207 bytes .../lib/gnu/javax/crypto/mode/ICM.class | Bin 0 -> 2874 bytes .../lib/gnu/javax/crypto/mode/IMode.class | Bin 0 -> 517 bytes .../gnu/javax/crypto/mode/ModeFactory.class | Bin 0 -> 2809 bytes .../lib/gnu/javax/crypto/mode/OFB.class | Bin 0 -> 1618 bytes .../lib/gnu/javax/crypto/pad/BasePad.class | Bin 0 -> 2343 bytes .../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 .../lib/gnu/javax/crypto/pad/PKCS7.class | Bin 0 -> 1381 bytes .../lib/gnu/javax/crypto/pad/PadFactory.class | Bin 0 -> 1921 bytes .../lib/gnu/javax/crypto/pad/SSL3.class | Bin 0 -> 1151 bytes .../lib/gnu/javax/crypto/pad/TBC.class | Bin 0 -> 1423 bytes .../lib/gnu/javax/crypto/pad/TLS1.class | Bin 0 -> 1199 bytes .../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 .../gnu/javax/crypto/prng/CSPRNG$Poller.class | Bin 0 -> 3788 bytes .../javax/crypto/prng/CSPRNG$Spinner.class | Bin 0 -> 738 bytes .../lib/gnu/javax/crypto/prng/CSPRNG.class | Bin 0 -> 12837 bytes .../javax/crypto/prng/Fortuna$Generator.class | Bin 0 -> 4028 bytes .../lib/gnu/javax/crypto/prng/Fortuna.class | Bin 0 -> 4083 bytes .../gnu/javax/crypto/prng/ICMGenerator.class | Bin 0 -> 4444 bytes .../lib/gnu/javax/crypto/prng/IPBE.class | Bin 0 -> 451 bytes .../lib/gnu/javax/crypto/prng/PBKDF2.class | Bin 0 -> 3572 bytes .../gnu/javax/crypto/prng/PRNGFactory.class | Bin 0 -> 2272 bytes .../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 .../gnu/javax/crypto/sasl/ClientFactory.class | Bin 0 -> 4064 bytes .../javax/crypto/sasl/ClientMechanism.class | Bin 0 -> 5373 bytes .../sasl/ConfidentialityException.class | Bin 0 -> 667 bytes .../javax/crypto/sasl/IAuthInfoProvider.class | Bin 0 -> 502 bytes .../sasl/IAuthInfoProviderFactory.class | Bin 0 -> 237 bytes .../sasl/IllegalMechanismStateException.class | Bin 0 -> 701 bytes .../gnu/javax/crypto/sasl/InputBuffer.class | Bin 0 -> 3753 bytes .../crypto/sasl/IntegrityException.class | Bin 0 -> 649 bytes .../sasl/NoSuchMechanismException.class | Bin 0 -> 418 bytes .../crypto/sasl/NoSuchUserException.class | Bin 0 -> 494 bytes .../gnu/javax/crypto/sasl/OutputBuffer.class | Bin 0 -> 2769 bytes .../crypto/sasl/SaslEncodingException.class | Bin 0 -> 488 bytes .../javax/crypto/sasl/SaslInputStream.class | Bin 0 -> 4002 bytes .../javax/crypto/sasl/SaslOutputStream.class | Bin 0 -> 2860 bytes .../lib/gnu/javax/crypto/sasl/SaslUtil.class | Bin 0 -> 954 bytes .../gnu/javax/crypto/sasl/ServerFactory.class | Bin 0 -> 3779 bytes .../javax/crypto/sasl/ServerMechanism.class | Bin 0 -> 5632 bytes .../sasl/UserAlreadyExistsException.class | Bin 0 -> 510 bytes .../sasl/anonymous/AnonymousClient.class | Bin 0 -> 1734 bytes .../sasl/anonymous/AnonymousServer.class | Bin 0 -> 1399 bytes .../crypto/sasl/anonymous/AnonymousUtil.class | Bin 0 -> 951 bytes .../crammd5/CramMD5AuthInfoProvider.class | Bin 0 -> 3418 bytes .../crypto/sasl/crammd5/CramMD5Client.class | Bin 0 -> 3839 bytes .../crypto/sasl/crammd5/CramMD5Registry.class | Bin 0 -> 543 bytes .../crypto/sasl/crammd5/CramMD5Server.class | Bin 0 -> 3369 bytes .../crypto/sasl/crammd5/CramMD5Util.class | Bin 0 -> 2534 bytes .../crypto/sasl/crammd5/PasswordFile.class | Bin 0 -> 5083 bytes .../crypto/sasl/plain/PasswordFile.class | Bin 0 -> 5266 bytes .../sasl/plain/PlainAuthInfoProvider.class | Bin 0 -> 3441 bytes .../javax/crypto/sasl/plain/PlainClient.class | Bin 0 -> 3394 bytes .../crypto/sasl/plain/PlainRegistry.class | Bin 0 -> 526 bytes .../javax/crypto/sasl/plain/PlainServer.class | Bin 0 -> 3221 bytes .../lib/gnu/javax/crypto/sasl/srp/CALG.class | Bin 0 -> 4124 bytes .../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 .../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 .../gnu/javax/crypto/sasl/srp/SRPClient.class | Bin 0 -> 18659 bytes .../javax/crypto/sasl/srp/SRPRegistry.class | Bin 0 -> 3133 bytes .../gnu/javax/crypto/sasl/srp/SRPServer.class | Bin 0 -> 15844 bytes .../crypto/sasl/srp/SecurityContext.class | Bin 0 -> 2168 bytes .../javax/crypto/sasl/srp/ServerStore.class | Bin 0 -> 2658 bytes .../javax/crypto/sasl/srp/StoreEntry.class | Bin 0 -> 641 bytes .../gnu/javax/imageio/IIOInputStream.class | Bin 0 -> 1477 bytes .../gnu/javax/imageio/bmp/BMPDecoder.class | Bin 0 -> 3476 bytes .../gnu/javax/imageio/bmp/BMPEncoder.class | Bin 0 -> 1547 bytes .../gnu/javax/imageio/bmp/BMPException.class | Bin 0 -> 379 bytes .../gnu/javax/imageio/bmp/BMPFileHeader.class | Bin 0 -> 2715 bytes .../javax/imageio/bmp/BMPImageReader.class | Bin 0 -> 3376 bytes .../javax/imageio/bmp/BMPImageReaderSpi.class | Bin 0 -> 3037 bytes .../javax/imageio/bmp/BMPImageWriter.class | Bin 0 -> 3379 bytes .../javax/imageio/bmp/BMPImageWriterSpi.class | Bin 0 -> 3398 bytes .../gnu/javax/imageio/bmp/BMPInfoHeader.class | Bin 0 -> 5107 bytes .../gnu/javax/imageio/bmp/DecodeBF16.class | Bin 0 -> 2661 bytes .../gnu/javax/imageio/bmp/DecodeBF32.class | Bin 0 -> 2692 bytes .../gnu/javax/imageio/bmp/DecodeRGB1.class | Bin 0 -> 2391 bytes .../gnu/javax/imageio/bmp/DecodeRGB24.class | Bin 0 -> 1766 bytes .../gnu/javax/imageio/bmp/DecodeRGB4.class | Bin 0 -> 2367 bytes .../gnu/javax/imageio/bmp/DecodeRGB8.class | Bin 0 -> 2347 bytes .../gnu/javax/imageio/bmp/DecodeRLE4.class | Bin 0 -> 3651 bytes .../gnu/javax/imageio/bmp/DecodeRLE8.class | Bin 0 -> 3241 bytes .../gnu/javax/imageio/bmp/EncodeRGB1.class | Bin 0 -> 2105 bytes .../gnu/javax/imageio/bmp/EncodeRGB16.class | Bin 0 -> 2126 bytes .../gnu/javax/imageio/bmp/EncodeRGB24.class | Bin 0 -> 2144 bytes .../gnu/javax/imageio/bmp/EncodeRGB32.class | Bin 0 -> 2162 bytes .../gnu/javax/imageio/bmp/EncodeRGB4.class | Bin 0 -> 2105 bytes .../gnu/javax/imageio/bmp/EncodeRGB8.class | Bin 0 -> 2105 bytes .../gnu/javax/imageio/bmp/EncodeRLE4.class | Bin 0 -> 4023 bytes .../gnu/javax/imageio/bmp/EncodeRLE8.class | Bin 0 -> 3631 bytes .../imageio/gif/GIFFile$GIFException.class | Bin 0 -> 464 bytes .../lib/gnu/javax/imageio/gif/GIFFile.class | Bin 0 -> 8669 bytes .../javax/imageio/gif/GIFImageReader.class | Bin 0 -> 5068 bytes .../javax/imageio/gif/GIFImageReaderSpi.class | Bin 0 -> 3106 bytes .../lib/gnu/javax/imageio/jpeg/DCT.class | Bin 0 -> 4527 bytes .../gnu/javax/imageio/jpeg/HuffmanTable.class | Bin 0 -> 3234 bytes .../javax/imageio/jpeg/JPEGComponent.class | Bin 0 -> 5425 bytes .../gnu/javax/imageio/jpeg/JPEGDecoder.class | Bin 0 -> 9405 bytes .../javax/imageio/jpeg/JPEGException.class | Bin 0 -> 384 bytes .../gnu/javax/imageio/jpeg/JPEGFrame.class | Bin 0 -> 2241 bytes .../imageio/jpeg/JPEGImageInputStream.class | Bin 0 -> 1776 bytes .../javax/imageio/jpeg/JPEGImageReader.class | Bin 0 -> 2704 bytes .../imageio/jpeg/JPEGImageReaderSpi.class | Bin 0 -> 3652 bytes .../gnu/javax/imageio/jpeg/JPEGMarker.class | Bin 0 -> 1860 bytes .../jpeg/JPEGMarkerFoundException.class | Bin 0 -> 382 bytes .../lib/gnu/javax/imageio/jpeg/JPEGScan.class | Bin 0 -> 2721 bytes .../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 .../gnu/javax/imageio/png/PNGDecoder.class | Bin 0 -> 5300 bytes .../gnu/javax/imageio/png/PNGEncoder.class | Bin 0 -> 5501 bytes .../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 .../gnu/javax/imageio/png/PNGICCProfile.class | Bin 0 -> 2711 bytes .../javax/imageio/png/PNGImageReader.class | Bin 0 -> 3530 bytes .../javax/imageio/png/PNGImageReaderSpi.class | Bin 0 -> 2450 bytes .../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 .../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 .../naming/giop/ContextContinuation.class | Bin 0 -> 11356 bytes .../javax/naming/giop/CorbalocParser.class | Bin 0 -> 7202 bytes .../naming/giop/GiopNamingEnumeration.class | Bin 0 -> 2055 bytes .../giop/GiopNamingServiceFactory$1.class | Bin 0 -> 908 bytes .../giop/GiopNamingServiceFactory.class | Bin 0 -> 3622 bytes .../giop/GiopNamingServiceURLContext.class | Bin 0 -> 11362 bytes .../naming/giop/ListBindingsEnumeration.class | Bin 0 -> 1743 bytes .../javax/naming/giop/ListEnumeration.class | Bin 0 -> 1733 bytes .../ictxImpl/trans/GnuName$GnuNameEnum.class | Bin 0 -> 1068 bytes .../javax/naming/ictxImpl/trans/GnuName.class | Bin 0 -> 4953 bytes .../corbanameURLContextFactory.class | Bin 0 -> 443 bytes .../jndi/url/rmi/ContextContinuation.class | Bin 0 -> 8448 bytes .../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 .../jndi/url/rmi/RmiNamingEnumeration.class | Bin 0 -> 1159 bytes .../naming/jndi/url/rmi/rmiURLContext.class | Bin 0 -> 9374 bytes .../jndi/url/rmi/rmiURLContextFactory.class | Bin 0 -> 824 bytes .../net/ssl/AbstractSessionContext.class | Bin 0 -> 3707 bytes .../lib/gnu/javax/net/ssl/Base64.class | Bin 0 -> 3230 bytes .../lib/gnu/javax/net/ssl/EntropySource.class | Bin 0 -> 176 bytes .../javax/net/ssl/NullManagerParameters.class | Bin 0 -> 370 bytes .../javax/net/ssl/PreSharedKeyManager.class | Bin 0 -> 350 bytes .../ssl/PreSharedKeyManagerParameters.class | Bin 0 -> 1549 bytes .../javax/net/ssl/PrivateCredentials.class | Bin 0 -> 9537 bytes .../javax/net/ssl/SRPManagerParameters.class | Bin 0 -> 689 bytes .../gnu/javax/net/ssl/SRPTrustManager.class | Bin 0 -> 454 bytes .../gnu/javax/net/ssl/SSLCipherSuite.class | Bin 0 -> 3137 bytes .../javax/net/ssl/SSLProtocolVersion.class | Bin 0 -> 1205 bytes .../gnu/javax/net/ssl/SSLRecordHandler.class | Bin 0 -> 803 bytes .../lib/gnu/javax/net/ssl/Session$ID.class | Bin 0 -> 1871 bytes .../lib/gnu/javax/net/ssl/Session.class | Bin 0 -> 5167 bytes .../javax/net/ssl/SessionStoreException.class | Bin 0 -> 685 bytes .../javax/net/ssl/StaticTrustAnchors.class | Bin 0 -> 92341 bytes .../ssl/provider/AbstractHandshake$1.class | Bin 0 -> 1157 bytes .../AbstractHandshake$CertVerifier.class | Bin 0 -> 3995 bytes .../AbstractHandshake$DHE_PSKGen.class | Bin 0 -> 2687 bytes .../provider/AbstractHandshake$DHPhase.class | Bin 0 -> 2303 bytes .../net/ssl/provider/AbstractHandshake.class | Bin 0 -> 19585 bytes .../net/ssl/provider/Alert$Description.class | Bin 0 -> 4176 bytes .../javax/net/ssl/provider/Alert$Level.class | Bin 0 -> 1724 bytes .../gnu/javax/net/ssl/provider/Alert.class | Bin 0 -> 3279 bytes .../net/ssl/provider/AlertException.class | Bin 0 -> 1895 bytes .../gnu/javax/net/ssl/provider/Builder.class | Bin 0 -> 211 bytes .../javax/net/ssl/provider/Certificate.class | Bin 0 -> 3965 bytes .../net/ssl/provider/CertificateBuilder.class | Bin 0 -> 2243 bytes ...ificateRequest$ClientCertificateType.class | Bin 0 -> 2127 bytes .../net/ssl/provider/CertificateRequest.class | Bin 0 -> 2520 bytes .../provider/CertificateRequestBuilder.class | Bin 0 -> 2972 bytes ...ateStatusRequest$ResponderIdIterator.class | Bin 0 -> 1355 bytes .../provider/CertificateStatusRequest.class | Bin 0 -> 5846 bytes .../ssl/provider/CertificateStatusType.class | Bin 0 -> 1177 bytes .../net/ssl/provider/CertificateType.class | Bin 0 -> 1610 bytes .../CertificateURL$CertChainType.class | Bin 0 -> 1447 bytes .../provider/CertificateURL$Iterator.class | Bin 0 -> 1434 bytes .../CertificateURL$URLAndOptionalHash.class | Bin 0 -> 4330 bytes .../net/ssl/provider/CertificateURL.class | Bin 0 -> 5717 bytes .../net/ssl/provider/CertificateVerify.class | Bin 0 -> 1646 bytes .../net/ssl/provider/CipherAlgorithm.class | Bin 0 -> 1286 bytes .../javax/net/ssl/provider/CipherSuite.class | Bin 0 -> 13470 bytes .../provider/CipherSuiteList$Iterator.class | Bin 0 -> 2597 bytes .../net/ssl/provider/CipherSuiteList.class | Bin 0 -> 4200 bytes .../ClientCertificateTypeList$Iterator.class | Bin 0 -> 2872 bytes .../provider/ClientCertificateTypeList.class | Bin 0 -> 3931 bytes .../provider/ClientDHE_PSKParameters.class | Bin 0 -> 2502 bytes .../provider/ClientDiffieHellmanPublic.class | Bin 0 -> 2671 bytes .../provider/ClientHandshake$CertLoader.class | Bin 0 -> 2588 bytes .../ClientHandshake$ClientDHGen.class | Bin 0 -> 3697 bytes .../ClientHandshake$GenCertVerify.class | Bin 0 -> 2856 bytes .../ClientHandshake$ParamsVerifier.class | Bin 0 -> 2151 bytes .../ssl/provider/ClientHandshake$RSAGen.class | Bin 0 -> 3440 bytes .../ssl/provider/ClientHandshake$State.class | Bin 0 -> 2213 bytes .../net/ssl/provider/ClientHandshake.class | Bin 0 -> 30697 bytes .../javax/net/ssl/provider/ClientHello.class | Bin 0 -> 5069 bytes .../net/ssl/provider/ClientHelloBuilder.class | Bin 0 -> 3939 bytes .../net/ssl/provider/ClientHelloV2.class | Bin 0 -> 3414 bytes .../net/ssl/provider/ClientKeyExchange.class | Bin 0 -> 3437 bytes .../provider/ClientKeyExchangeBuilder.class | Bin 0 -> 1785 bytes .../ssl/provider/ClientPSKParameters.class | Bin 0 -> 2480 bytes .../provider/ClientRSA_PSKParameters.class | Bin 0 -> 3336 bytes .../net/ssl/provider/CompressionMethod.class | Bin 0 -> 1447 bytes .../CompressionMethodList$Iterator.class | Bin 0 -> 2681 bytes .../ssl/provider/CompressionMethodList.class | Bin 0 -> 3860 bytes .../javax/net/ssl/provider/Constructed.class | Bin 0 -> 213 bytes .../javax/net/ssl/provider/ContentType.class | Bin 0 -> 1657 bytes .../gnu/javax/net/ssl/provider/Debug.class | Bin 0 -> 420 bytes .../net/ssl/provider/DelegatedTask.class | Bin 0 -> 1606 bytes .../net/ssl/provider/DiffieHellman.class | Bin 0 -> 8733 bytes .../net/ssl/provider/EmptyExchangeKeys.class | Bin 0 -> 1069 bytes .../provider/EncryptedPreMasterSecret.class | Bin 0 -> 3204 bytes .../javax/net/ssl/provider/ExchangeKeys.class | Bin 0 -> 686 bytes .../net/ssl/provider/Extension$Type.class | Bin 0 -> 1970 bytes .../net/ssl/provider/Extension$Value.class | Bin 0 -> 487 bytes .../javax/net/ssl/provider/Extension.class | Bin 0 -> 5727 bytes .../ExtensionList$ExtensionsIterator.class | Bin 0 -> 2697 bytes .../net/ssl/provider/ExtensionList.class | Bin 0 -> 5666 bytes .../gnu/javax/net/ssl/provider/Finished.class | Bin 0 -> 3117 bytes .../net/ssl/provider/Handshake$Body.class | Bin 0 -> 340 bytes .../net/ssl/provider/Handshake$Type.class | Bin 0 -> 2593 bytes .../javax/net/ssl/provider/Handshake.class | Bin 0 -> 5821 bytes .../javax/net/ssl/provider/HelloRequest.class | Bin 0 -> 905 bytes .../provider/InputSecurityParameters.class | Bin 0 -> 6952 bytes .../gnu/javax/net/ssl/provider/Jessie$1.class | Bin 0 -> 1944 bytes .../gnu/javax/net/ssl/provider/Jessie.class | Bin 0 -> 943 bytes .../ssl/provider/KeyExchangeAlgorithm.class | Bin 0 -> 1570 bytes .../javax/net/ssl/provider/MacAlgorithm.class | Bin 0 -> 1121 bytes .../javax/net/ssl/provider/MacException.class | Bin 0 -> 322 bytes .../net/ssl/provider/MaxFragmentLength.class | Bin 0 -> 1780 bytes .../provider/OutputSecurityParameters.class | Bin 0 -> 6668 bytes ...eSharedKeyManagerFactoryImpl$Manager.class | Bin 0 -> 1486 bytes .../PreSharedKeyManagerFactoryImpl.class | Bin 0 -> 1630 bytes .../net/ssl/provider/ProtocolVersion.class | Bin 0 -> 3435 bytes .../gnu/javax/net/ssl/provider/Random.class | Bin 0 -> 2988 bytes .../gnu/javax/net/ssl/provider/Record.class | Bin 0 -> 3611 bytes .../SRPTrustManagerFactory$Manager.class | Bin 0 -> 2766 bytes .../ssl/provider/SRPTrustManagerFactory.class | Bin 0 -> 2583 bytes .../net/ssl/provider/SSLContextImpl.class | Bin 0 -> 5552 bytes .../net/ssl/provider/SSLEngineImpl$Mode.class | Bin 0 -> 1197 bytes .../net/ssl/provider/SSLEngineImpl.class | Bin 0 -> 21687 bytes .../gnu/javax/net/ssl/provider/SSLHMac.class | Bin 0 -> 2627 bytes .../ssl/provider/SSLRSASignatureImpl.class | Bin 0 -> 5048 bytes .../javax/net/ssl/provider/SSLRandom.class | Bin 0 -> 3093 bytes .../provider/SSLServerSocketFactoryImpl.class | Bin 0 -> 2363 bytes .../ssl/provider/SSLServerSocketImpl.class | Bin 0 -> 3468 bytes .../ssl/provider/SSLSocketFactoryImpl.class | Bin 0 -> 3412 bytes .../net/ssl/provider/SSLSocketImpl$1.class | Bin 0 -> 885 bytes .../SSLSocketImpl$SocketInputStream.class | Bin 0 -> 3668 bytes .../SSLSocketImpl$SocketOutputStream.class | Bin 0 -> 3392 bytes .../net/ssl/provider/SSLSocketImpl.class | Bin 0 -> 16460 bytes .../net/ssl/provider/SSLv3HMacMD5Impl.class | Bin 0 -> 2107 bytes .../net/ssl/provider/SSLv3HMacSHAImpl.class | Bin 0 -> 2111 bytes .../provider/ServerDHE_PSKParameters.class | Bin 0 -> 3858 bytes .../net/ssl/provider/ServerDHParams.class | Bin 0 -> 4428 bytes .../provider/ServerHandshake$CertLoader.class | Bin 0 -> 3121 bytes .../ssl/provider/ServerHandshake$GenDH.class | Bin 0 -> 3828 bytes .../ServerHandshake$RSAKeyExchange.class | Bin 0 -> 2453 bytes .../ServerHandshake$RSA_PSKExchange.class | Bin 0 -> 2897 bytes .../ssl/provider/ServerHandshake$State.class | Bin 0 -> 2284 bytes .../net/ssl/provider/ServerHandshake.class | Bin 0 -> 34821 bytes .../javax/net/ssl/provider/ServerHello.class | Bin 0 -> 4424 bytes .../net/ssl/provider/ServerHelloBuilder.class | Bin 0 -> 3225 bytes .../net/ssl/provider/ServerHelloDone.class | Bin 0 -> 988 bytes .../net/ssl/provider/ServerKeyExchange.class | Bin 0 -> 4255 bytes .../provider/ServerKeyExchangeBuilder.class | Bin 0 -> 2131 bytes .../provider/ServerKeyExchangeParams.class | Bin 0 -> 274 bytes .../provider/ServerNameList$Iterator.class | Bin 0 -> 1410 bytes .../provider/ServerNameList$NameType.class | Bin 0 -> 1354 bytes .../provider/ServerNameList$ServerName.class | Bin 0 -> 3814 bytes .../net/ssl/provider/ServerNameList.class | Bin 0 -> 4498 bytes .../ssl/provider/ServerPSKParameters.class | Bin 0 -> 2864 bytes .../net/ssl/provider/ServerRSAParams.class | Bin 0 -> 2848 bytes .../provider/ServerRSA_PSKParameters.class | Bin 0 -> 844 bytes .../provider/SessionImpl$PrivateData.class | Bin 0 -> 545 bytes .../javax/net/ssl/provider/SessionImpl.class | Bin 0 -> 4385 bytes .../javax/net/ssl/provider/Signature.class | Bin 0 -> 3037 bytes .../net/ssl/provider/SignatureAlgorithm.class | Bin 0 -> 1648 bytes .../ssl/provider/SimpleSessionContext$1.class | Bin 0 -> 1347 bytes .../ssl/provider/SimpleSessionContext.class | Bin 0 -> 2957 bytes .../gnu/javax/net/ssl/provider/TLSHMac.class | Bin 0 -> 2111 bytes .../javax/net/ssl/provider/TLSRandom.class | Bin 0 -> 4306 bytes .../net/ssl/provider/TruncatedHMAC.class | Bin 0 -> 1125 bytes ...ustedAuthorities$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 .../provider/UnresolvedExtensionValue.class | Bin 0 -> 1413 bytes .../gnu/javax/net/ssl/provider/Util$1.class | Bin 0 -> 692 bytes .../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 .../provider/X500PrincipalList$Iterator.class | Bin 0 -> 2566 bytes .../net/ssl/provider/X500PrincipalList.class | Bin 0 -> 4562 bytes .../X509KeyManagerFactory$Manager.class | Bin 0 -> 5311 bytes .../ssl/provider/X509KeyManagerFactory.class | Bin 0 -> 5245 bytes .../X509TrustManagerFactory$Manager.class | Bin 0 -> 3262 bytes .../provider/X509TrustManagerFactory.class | Bin 0 -> 4623 bytes .../gnu/javax/print/CupsIppOperation.class | Bin 0 -> 860 bytes .../gnu/javax/print/CupsMediaMapping.class | Bin 0 -> 4194 bytes .../gnu/javax/print/CupsPrintService.class | Bin 0 -> 1287 bytes .../javax/print/CupsPrintServiceLookup.class | Bin 0 -> 3703 bytes .../lib/gnu/javax/print/CupsServer.class | Bin 0 -> 4232 bytes .../javax/print/PrintAttributeException.class | Bin 0 -> 1653 bytes .../javax/print/PrintFlavorException.class | Bin 0 -> 1248 bytes .../gnu/javax/print/PrintUriException.class | Bin 0 -> 1355 bytes .../PrinterDialog$AppearancePanel$Color.class | Bin 0 -> 3306 bytes ...Dialog$AppearancePanel$JobAttributes.class | Bin 0 -> 5932 bytes ...rinterDialog$AppearancePanel$Quality.class | Bin 0 -> 3566 bytes ...terDialog$AppearancePanel$SidesPanel.class | Bin 0 -> 3599 bytes .../print/PrinterDialog$AppearancePanel.class | Bin 0 -> 2445 bytes ...rDialog$GeneralPanel$CopiesAndSorted.class | Bin 0 -> 4024 bytes ...rinterDialog$GeneralPanel$PrintRange.class | Bin 0 -> 4723 bytes ...terDialog$GeneralPanel$PrintServices.class | Bin 0 -> 5188 bytes .../print/PrinterDialog$GeneralPanel.class | Bin 0 -> 2133 bytes ...PrinterDialog$PageSetupPanel$Margins.class | Bin 0 -> 3187 bytes ...nterDialog$PageSetupPanel$MediaTypes.class | Bin 0 -> 3821 bytes ...terDialog$PageSetupPanel$Orientation.class | Bin 0 -> 3923 bytes .../print/PrinterDialog$PageSetupPanel.class | Bin 0 -> 2129 bytes .../lib/gnu/javax/print/PrinterDialog.class | Bin 0 -> 7369 bytes .../gnu/javax/print/ipp/DocPrintJobImpl.class | Bin 0 -> 10253 bytes .../gnu/javax/print/ipp/IppDelimiterTag.class | Bin 0 -> 675 bytes .../gnu/javax/print/ipp/IppException.class | Bin 0 -> 733 bytes .../print/ipp/IppMultiDocPrintService.class | Bin 0 -> 945 bytes .../gnu/javax/print/ipp/IppPrintService.class | Bin 0 -> 20077 bytes .../print/ipp/IppRequest$RequestWriter.class | Bin 0 -> 9273 bytes .../lib/gnu/javax/print/ipp/IppRequest.class | Bin 0 -> 8604 bytes .../ipp/IppResponse$ResponseReader.class | Bin 0 -> 13159 bytes .../lib/gnu/javax/print/ipp/IppResponse.class | Bin 0 -> 2476 bytes .../gnu/javax/print/ipp/IppStatusCode.class | Bin 0 -> 2084 bytes .../gnu/javax/print/ipp/IppUtilities.class | Bin 0 -> 15597 bytes .../lib/gnu/javax/print/ipp/IppValueTag.class | Bin 0 -> 1278 bytes .../print/ipp/MultiDocPrintJobImpl.class | Bin 0 -> 987 bytes .../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 .../ipp/attribute/DocumentAccessError.class | Bin 0 -> 732 bytes .../ipp/attribute/NaturalLanguageSyntax.class | Bin 0 -> 1072 bytes .../ipp/attribute/RequestedAttributes.class | Bin 0 -> 1632 bytes .../print/ipp/attribute/StatusMessage.class | Bin 0 -> 707 bytes .../ipp/attribute/UnknownAttribute.class | Bin 0 -> 2180 bytes .../attribute/defaults/CopiesDefault.class | Bin 0 -> 1151 bytes .../defaults/DocumentFormatDefault.class | Bin 0 -> 1042 bytes .../defaults/FinishingsDefault.class | Bin 0 -> 3187 bytes .../defaults/JobHoldUntilDefault.class | Bin 0 -> 1603 bytes .../defaults/JobPriorityDefault.class | Bin 0 -> 1173 bytes .../attribute/defaults/JobSheetsDefault.class | Bin 0 -> 1338 bytes .../ipp/attribute/defaults/MediaDefault.class | Bin 0 -> 1043 bytes .../MultipleDocumentHandlingDefault.class | Bin 0 -> 2077 bytes .../attribute/defaults/NumberUpDefault.class | Bin 0 -> 1031 bytes .../OrientationRequestedDefault.class | Bin 0 -> 1998 bytes .../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 .../job/AttributesNaturalLanguage.class | Bin 0 -> 844 bytes .../job/JobDetailedStatusMessages.class | Bin 0 -> 765 bytes .../job/JobDocumentAccessErrors.class | Bin 0 -> 757 bytes .../javax/print/ipp/attribute/job/JobId.class | Bin 0 -> 725 bytes .../print/ipp/attribute/job/JobMoreInfo.class | Bin 0 -> 638 bytes .../ipp/attribute/job/JobPrinterUri.class | Bin 0 -> 646 bytes .../ipp/attribute/job/JobStateMessage.class | Bin 0 -> 724 bytes .../print/ipp/attribute/job/JobUri.class | Bin 0 -> 617 bytes .../attribute/printer/CharsetConfigured.class | Bin 0 -> 691 bytes .../attribute/printer/DocumentFormat.class | Bin 0 -> 1481 bytes .../printer/MultipleOperationTimeOut.class | Bin 0 -> 679 bytes .../printer/NaturalLanguageConfigured.class | Bin 0 -> 732 bytes .../printer/PrinterCurrentTime.class | Bin 0 -> 856 bytes .../printer/PrinterDriverInstaller.class | Bin 0 -> 690 bytes .../printer/PrinterStateMessage.class | Bin 0 -> 760 bytes .../ipp/attribute/printer/PrinterUpTime.class | Bin 0 -> 634 bytes .../supported/CharsetSupported.class | Bin 0 -> 706 bytes .../supported/CompressionSupported.class | Bin 0 -> 2442 bytes .../supported/DocumentFormatSupported.class | Bin 0 -> 783 bytes .../supported/FinishingsSupported.class | Bin 0 -> 3892 bytes .../GeneratedNaturalLanguageSupported.class | Bin 0 -> 784 bytes .../supported/IppVersionsSupported.class | Bin 0 -> 1309 bytes .../supported/JobHoldUntilSupported.class | Bin 0 -> 1363 bytes .../supported/JobSheetsSupported.class | Bin 0 -> 2290 bytes .../attribute/supported/MediaSupported.class | Bin 0 -> 1762 bytes .../MultipleDocumentHandlingSupported.class | Bin 0 -> 2774 bytes .../MultipleDocumentJobsSupported.class | Bin 0 -> 1375 bytes .../supported/OperationsSupported.class | Bin 0 -> 2682 bytes .../OrientationRequestedSupported.class | Bin 0 -> 2679 bytes .../supported/PageRangesSupported.class | Bin 0 -> 1332 bytes .../supported/PrintQualitySupported.class | Bin 0 -> 2459 bytes .../PrinterResolutionSupported.class | Bin 0 -> 1820 bytes .../supported/PrinterUriSupported.class | Bin 0 -> 697 bytes .../attribute/supported/SidesSupported.class | Bin 0 -> 1511 bytes .../UriAuthenticationSupported.class | Bin 0 -> 1598 bytes .../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 .../rmi/CORBA/DefaultWriteObjectTester.class | Bin 0 -> 890 bytes .../gnu/javax/rmi/CORBA/DelegateFactory.class | Bin 0 -> 1678 bytes .../CORBA/GetDelegateInstanceException.class | Bin 0 -> 593 bytes .../PortableRemoteObjectDelegateImpl.class | Bin 0 -> 7327 bytes .../gnu/javax/rmi/CORBA/RmiUtilities$1.class | Bin 0 -> 863 bytes .../gnu/javax/rmi/CORBA/RmiUtilities$2.class | Bin 0 -> 822 bytes .../gnu/javax/rmi/CORBA/RmiUtilities.class | Bin 0 -> 18745 bytes .../javax/rmi/CORBA/StubDelegateImpl.class | Bin 0 -> 6511 bytes .../gnu/javax/rmi/CORBA/TieTargetRecord.class | Bin 0 -> 890 bytes .../javax/rmi/CORBA/UtilDelegateImpl.class | Bin 0 -> 12840 bytes .../rmi/CORBA/ValueHandlerDelegateImpl.class | Bin 0 -> 3264 bytes .../gnu/javax/security/auth/Password.class | Bin 0 -> 2543 bytes .../auth/callback/AWTCallbackHandler.class | Bin 0 -> 10086 bytes .../callback/AbstractCallbackHandler.class | Bin 0 -> 4916 bytes .../auth/callback/CertificateCallback.class | Bin 0 -> 663 bytes .../callback/ConsoleCallbackHandler.class | Bin 0 -> 6784 bytes .../callback/DefaultCallbackHandler.class | Bin 0 -> 2626 bytes .../auth/callback/GnuCallbacks$1.class | Bin 0 -> 1268 bytes .../security/auth/callback/GnuCallbacks.class | Bin 0 -> 745 bytes .../callback/SwingCallbackHandler$1.class | Bin 0 -> 1388 bytes .../callback/SwingCallbackHandler$2.class | Bin 0 -> 1802 bytes .../callback/SwingCallbackHandler$3.class | Bin 0 -> 1869 bytes .../callback/SwingCallbackHandler$4.class | Bin 0 -> 1692 bytes .../callback/SwingCallbackHandler$5.class | Bin 0 -> 1727 bytes .../callback/SwingCallbackHandler$6.class | Bin 0 -> 1714 bytes .../callback/SwingCallbackHandler$7.class | Bin 0 -> 1255 bytes .../auth/callback/SwingCallbackHandler.class | Bin 0 -> 12162 bytes .../auth/login/ConfigFileParser.class | Bin 0 -> 5453 bytes .../auth/login/ConfigFileTokenizer.class | Bin 0 -> 3414 bytes .../auth/login/GnuConfiguration.class | Bin 0 -> 5617 bytes .../sound/midi/alsa/AlsaInputPortDevice.class | Bin 0 -> 1398 bytes .../AlsaMidiDeviceProvider$AlsaInfo.class | Bin 0 -> 732 bytes ...MidiDeviceProvider$AlsaInputPortInfo.class | Bin 0 -> 919 bytes ...idiDeviceProvider$AlsaOutputPortInfo.class | Bin 0 -> 923 bytes .../AlsaMidiDeviceProvider$AlsaPortInfo.class | Bin 0 -> 753 bytes ...MidiDeviceProvider$AlsaSequencerInfo.class | Bin 0 -> 870 bytes .../midi/alsa/AlsaMidiDeviceProvider.class | Bin 0 -> 2276 bytes .../midi/alsa/AlsaMidiSequencerDevice.class | Bin 0 -> 5607 bytes .../midi/alsa/AlsaOutputPortDevice.class | Bin 0 -> 1274 bytes .../alsa/AlsaPortDevice$AlsaReceiver.class | Bin 0 -> 900 bytes .../alsa/AlsaPortDevice$AlsaTransmitter.class | Bin 0 -> 1602 bytes .../sound/midi/alsa/AlsaPortDevice.class | Bin 0 -> 912 bytes .../midi/dssi/DSSIMidiDeviceProvider$1.class | Bin 0 -> 748 bytes .../DSSIMidiDeviceProvider$DSSIInfo.class | Bin 0 -> 849 bytes .../midi/dssi/DSSIMidiDeviceProvider.class | Bin 0 -> 3095 bytes .../dssi/DSSISynthesizer$DSSIInstrument.class | Bin 0 -> 978 bytes .../DSSISynthesizer$DSSIMidiChannel.class | Bin 0 -> 3148 bytes .../dssi/DSSISynthesizer$DSSIReceiver.class | Bin 0 -> 1835 bytes .../dssi/DSSISynthesizer$DSSISoundbank.class | Bin 0 -> 2595 bytes .../sound/midi/dssi/DSSISynthesizer.class | Bin 0 -> 6305 bytes .../midi/file/ExtendedMidiFileFormat.class | Bin 0 -> 639 bytes .../sound/midi/file/MidiDataInputStream.class | Bin 0 -> 666 bytes .../midi/file/MidiDataOutputStream.class | Bin 0 -> 930 bytes .../sound/midi/file/MidiFileReader.class | Bin 0 -> 5807 bytes .../sound/midi/file/MidiFileWriter.class | Bin 0 -> 3371 bytes .../sampled/AU/AUReader$AUFormatType.class | Bin 0 -> 507 bytes .../sound/sampled/AU/AUReader$AUHeader.class | Bin 0 -> 2587 bytes .../gnu/javax/sound/sampled/AU/AUReader.class | Bin 0 -> 2634 bytes .../javax/sound/sampled/WAV/WAVReader.class | Bin 0 -> 4349 bytes .../gnu/GNULookAndFeel$CheckBoxIcon.class | Bin 0 -> 1366 bytes .../gnu/GNULookAndFeel$RadioButtonIcon.class | Bin 0 -> 2334 bytes .../javax/swing/plaf/gnu/GNULookAndFeel.class | Bin 0 -> 3156 bytes .../swing/plaf/metal/CustomizableTheme.class | Bin 0 -> 2107 bytes .../html/CharacterAttributeTranslator.class | Bin 0 -> 3502 bytes ...mbinedAttributes$CombinedEnumeration.class | Bin 0 -> 1066 bytes .../swing/text/html/CombinedAttributes.class | Bin 0 -> 2759 bytes ...mageViewIconFactory$LoadingImageIcon.class | Bin 0 -> 2165 bytes .../ImageViewIconFactory$NoImageIcon.class | Bin 0 -> 2074 bytes .../text/html/ImageViewIconFactory.class | Bin 0 -> 852 bytes .../swing/text/html/css/BorderStyle.class | Bin 0 -> 736 bytes .../swing/text/html/css/BorderWidth.class | Bin 0 -> 755 bytes .../javax/swing/text/html/css/CSSColor.class | Bin 0 -> 2754 bytes .../text/html/css/CSSLexicalException.class | Bin 0 -> 490 bytes .../swing/text/html/css/CSSParser$1.class | Bin 0 -> 1508 bytes .../javax/swing/text/html/css/CSSParser.class | Bin 0 -> 5677 bytes .../text/html/css/CSSParserCallback.class | Bin 0 -> 310 bytes .../text/html/css/CSSParserException.class | Bin 0 -> 406 bytes .../swing/text/html/css/CSSScanner.class | Bin 0 -> 8017 bytes .../javax/swing/text/html/css/FontSize.class | Bin 0 -> 3980 bytes .../javax/swing/text/html/css/FontStyle.class | Bin 0 -> 653 bytes .../swing/text/html/css/FontWeight.class | Bin 0 -> 676 bytes .../javax/swing/text/html/css/Length.class | Bin 0 -> 2810 bytes .../javax/swing/text/html/css/Selector.class | Bin 0 -> 3283 bytes .../parser/GnuParserDelegator$gnuParser.class | Bin 0 -> 3083 bytes .../text/html/parser/GnuParserDelegator.class | Bin 0 -> 1712 bytes .../swing/text/html/parser/HTML_401F.class | Bin 0 -> 74378 bytes .../html/parser/SmallHtmlAttributeSet$1.class | Bin 0 -> 1076 bytes .../html/parser/SmallHtmlAttributeSet.class | Bin 0 -> 3164 bytes .../javax/swing/text/html/parser/gnuDTD.class | Bin 0 -> 6936 bytes .../text/html/parser/htmlAttributeSet$1.class | Bin 0 -> 1270 bytes .../text/html/parser/htmlAttributeSet.class | Bin 0 -> 2379 bytes .../text/html/parser/htmlValidator$hTag.class | Bin 0 -> 1850 bytes .../text/html/parser/htmlValidator.class | Bin 0 -> 10443 bytes .../html/parser/models/PCDATAonly_model.class | Bin 0 -> 901 bytes .../parser/models/TableRowContentModel.class | Bin 0 -> 1284 bytes .../swing/text/html/parser/models/list.class | Bin 0 -> 4383 bytes .../text/html/parser/models/noTagModel.class | Bin 0 -> 1153 bytes .../swing/text/html/parser/models/node.class | Bin 0 -> 3855 bytes .../text/html/parser/models/transformer.class | Bin 0 -> 3015 bytes .../text/html/parser/support/Parser$1.class | Bin 0 -> 859 bytes .../text/html/parser/support/Parser$2.class | Bin 0 -> 1742 bytes .../text/html/parser/support/Parser.class | Bin 0 -> 20690 bytes .../parser/support/gnuStringIntMapper.class | Bin 0 -> 1382 bytes .../text/html/parser/support/low/Buffer.class | Bin 0 -> 3384 bytes .../html/parser/support/low/Constants.class | Bin 0 -> 5329 bytes .../html/parser/support/low/Location.class | Bin 0 -> 591 bytes .../parser/support/low/ParseException.class | Bin 0 -> 489 bytes .../text/html/parser/support/low/Queue.class | Bin 0 -> 1980 bytes .../parser/support/low/ReaderTokenizer.class | Bin 0 -> 5335 bytes .../text/html/parser/support/low/Token.class | Bin 0 -> 2832 bytes .../text/html/parser/support/low/node.class | Bin 0 -> 551 bytes .../html/parser/support/low/pattern.class | Bin 0 -> 1556 bytes .../parser/support/parameterDefaulter.class | Bin 0 -> 1882 bytes .../parser/support/textPreProcessor.class | Bin 0 -> 1913 bytes .../lib/gnu/javax/swing/tree/GnuPath.class | Bin 0 -> 453 bytes .../xml/aelfred2/JAXPFactory$JaxpParser.class | Bin 0 -> 1835 bytes .../lib/gnu/xml/aelfred2/JAXPFactory.class | Bin 0 -> 2898 bytes .../gnu/xml/aelfred2/SAXDriver$Adapter.class | Bin 0 -> 2407 bytes .../xml/aelfred2/SAXDriver$Attribute.class | Bin 0 -> 657 bytes .../lib/gnu/xml/aelfred2/SAXDriver.class | Bin 0 -> 20456 bytes .../aelfred2/XmlParser$AttributeDecl.class | Bin 0 -> 514 bytes .../xml/aelfred2/XmlParser$ElementDecl.class | Bin 0 -> 500 bytes .../xml/aelfred2/XmlParser$EntityInfo.class | Bin 0 -> 528 bytes .../XmlParser$ExternalIdentifiers.class | Bin 0 -> 704 bytes .../gnu/xml/aelfred2/XmlParser$Input.class | Bin 0 -> 703 bytes .../lib/gnu/xml/aelfred2/XmlParser.class | Bin 0 -> 52439 bytes .../XmlReader$FatalErrorHandler.class | Bin 0 -> 624 bytes .../lib/gnu/xml/aelfred2/XmlReader.class | Bin 0 -> 4752 bytes .../lib/gnu/xml/dom/Consumer$Backdoor.class | Bin 0 -> 5882 bytes .../classpath/lib/gnu/xml/dom/Consumer.class | Bin 0 -> 851 bytes .../gnu/xml/dom/DTDAttributeTypeInfo.class | Bin 0 -> 1095 bytes .../lib/gnu/xml/dom/DTDElementTypeInfo.class | Bin 0 -> 1909 bytes .../classpath/lib/gnu/xml/dom/DomAttr.class | Bin 0 -> 5205 bytes .../lib/gnu/xml/dom/DomCDATASection.class | Bin 0 -> 849 bytes .../dom/DomCharacterData$EmptyNodeList.class | Bin 0 -> 621 bytes .../lib/gnu/xml/dom/DomCharacterData.class | Bin 0 -> 4429 bytes .../lib/gnu/xml/dom/DomComment.class | Bin 0 -> 614 bytes .../lib/gnu/xml/dom/DomDOMException.class | Bin 0 -> 2560 bytes .../lib/gnu/xml/dom/DomDoctype.class | Bin 0 -> 6376 bytes .../lib/gnu/xml/dom/DomDocument.class | Bin 0 -> 23664 bytes .../lib/gnu/xml/dom/DomDocumentBuilder.class | Bin 0 -> 4375 bytes .../xml/dom/DomDocumentBuilderFactory.class | Bin 0 -> 3710 bytes .../xml/dom/DomDocumentConfiguration.class | Bin 0 -> 4078 bytes .../lib/gnu/xml/dom/DomDocumentFragment.class | Bin 0 -> 575 bytes .../lib/gnu/xml/dom/DomElement.class | Bin 0 -> 8101 bytes .../classpath/lib/gnu/xml/dom/DomEntity.class | Bin 0 -> 1220 bytes .../lib/gnu/xml/dom/DomEntityReference.class | Bin 0 -> 1169 bytes .../xml/dom/DomEvent$DomMutationEvent.class | Bin 0 -> 1909 bytes .../lib/gnu/xml/dom/DomEvent$DomUIEvent.class | Bin 0 -> 1038 bytes .../classpath/lib/gnu/xml/dom/DomEvent.class | Bin 0 -> 2406 bytes .../classpath/lib/gnu/xml/dom/DomExtern.class | Bin 0 -> 955 bytes .../classpath/lib/gnu/xml/dom/DomImpl.class | Bin 0 -> 3939 bytes .../lib/gnu/xml/dom/DomIterator.class | Bin 0 -> 4187 bytes .../gnu/xml/dom/DomNSResolverContext.class | Bin 0 -> 1251 bytes .../lib/gnu/xml/dom/DomNamedNodeMap.class | Bin 0 -> 5204 bytes .../xml/dom/DomNode$DomEventException.class | Bin 0 -> 459 bytes .../gnu/xml/dom/DomNode$ListenerRecord.class | Bin 0 -> 1009 bytes .../gnu/xml/dom/DomNode$LiveNodeList.class | Bin 0 -> 3023 bytes .../lib/gnu/xml/dom/DomNode$ShadowList.class | Bin 0 -> 1025 bytes .../classpath/lib/gnu/xml/dom/DomNode.class | Bin 0 -> 22734 bytes .../lib/gnu/xml/dom/DomNodeIterator.class | Bin 0 -> 4168 bytes .../lib/gnu/xml/dom/DomNotation.class | Bin 0 -> 856 bytes .../classpath/lib/gnu/xml/dom/DomNsNode.class | Bin 0 -> 2725 bytes .../xml/dom/DomProcessingInstruction.class | Bin 0 -> 1255 bytes .../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 .../lib/gnu/xml/dom/DomXPathResult.class | Bin 0 -> 3637 bytes .../lib/gnu/xml/dom/ImplementationList.class | Bin 0 -> 765 bytes .../gnu/xml/dom/ImplementationSource.class | Bin 0 -> 3312 bytes .../gnu/xml/dom/JAXPFactory$JAXPBuilder.class | Bin 0 -> 4140 bytes .../lib/gnu/xml/dom/JAXPFactory.class | Bin 0 -> 2738 bytes .../xml/dom/html2/DomHTMLAnchorElement.class | Bin 0 -> 3209 bytes .../xml/dom/html2/DomHTMLAppletElement.class | Bin 0 -> 3172 bytes .../xml/dom/html2/DomHTMLAreaElement.class | Bin 0 -> 2461 bytes .../gnu/xml/dom/html2/DomHTMLBRElement.class | Bin 0 -> 923 bytes .../xml/dom/html2/DomHTMLBaseElement.class | Bin 0 -> 1105 bytes .../dom/html2/DomHTMLBaseFontElement.class | Bin 0 -> 1419 bytes .../xml/dom/html2/DomHTMLBodyElement.class | Bin 0 -> 1816 bytes .../xml/dom/html2/DomHTMLButtonElement.class | Bin 0 -> 2264 bytes .../gnu/xml/dom/html2/DomHTMLCollection.class | Bin 0 -> 4083 bytes .../xml/dom/html2/DomHTMLDListElement.class | Bin 0 -> 891 bytes .../dom/html2/DomHTMLDirectoryElement.class | Bin 0 -> 907 bytes .../gnu/xml/dom/html2/DomHTMLDivElement.class | Bin 0 -> 927 bytes .../gnu/xml/dom/html2/DomHTMLDocument.class | Bin 0 -> 10676 bytes .../gnu/xml/dom/html2/DomHTMLElement.class | Bin 0 -> 4725 bytes .../xml/dom/html2/DomHTMLEmbedElement.class | Bin 0 -> 2258 bytes .../dom/html2/DomHTMLFieldSetElement.class | Bin 0 -> 820 bytes .../xml/dom/html2/DomHTMLFontElement.class | Bin 0 -> 1273 bytes .../xml/dom/html2/DomHTMLFormElement.class | Bin 0 -> 2784 bytes .../xml/dom/html2/DomHTMLFrameElement.class | Bin 0 -> 2533 bytes .../dom/html2/DomHTMLFrameSetElement.class | Bin 0 -> 1115 bytes .../gnu/xml/dom/html2/DomHTMLHRElement.class | Bin 0 -> 1596 bytes .../xml/dom/html2/DomHTMLHeadElement.class | Bin 0 -> 937 bytes .../xml/dom/html2/DomHTMLHeadingElement.class | Bin 0 -> 943 bytes .../xml/dom/html2/DomHTMLHtmlElement.class | Bin 0 -> 937 bytes .../xml/dom/html2/DomHTMLIFrameElement.class | Bin 0 -> 2730 bytes .../xml/dom/html2/DomHTMLImageElement.class | Bin 0 -> 3147 bytes .../lib/gnu/xml/dom/html2/DomHTMLImpl.class | Bin 0 -> 767 bytes .../xml/dom/html2/DomHTMLInputElement.class | Bin 0 -> 4906 bytes .../xml/dom/html2/DomHTMLIsIndexElement.class | Bin 0 -> 1181 bytes .../gnu/xml/dom/html2/DomHTMLLIElement.class | Bin 0 -> 1224 bytes .../xml/dom/html2/DomHTMLLabelElement.class | Bin 0 -> 1380 bytes .../xml/dom/html2/DomHTMLLegendElement.class | Bin 0 -> 1372 bytes .../xml/dom/html2/DomHTMLLinkElement.class | Bin 0 -> 2470 bytes .../gnu/xml/dom/html2/DomHTMLMapElement.class | Bin 0 -> 1389 bytes .../xml/dom/html2/DomHTMLMenuElement.class | Bin 0 -> 887 bytes .../xml/dom/html2/DomHTMLMetaElement.class | Bin 0 -> 1477 bytes .../gnu/xml/dom/html2/DomHTMLModElement.class | Bin 0 -> 1118 bytes .../xml/dom/html2/DomHTMLOListElement.class | Bin 0 -> 1554 bytes .../xml/dom/html2/DomHTMLObjectElement.class | Bin 0 -> 5932 bytes .../dom/html2/DomHTMLOptGroupElement.class | Bin 0 -> 1268 bytes .../xml/dom/html2/DomHTMLOptionElement.class | Bin 0 -> 2410 bytes .../dom/html2/DomHTMLParagraphElement.class | Bin 0 -> 951 bytes .../xml/dom/html2/DomHTMLParamElement.class | Bin 0 -> 1468 bytes .../lib/gnu/xml/dom/html2/DomHTMLParser.class | Bin 0 -> 4808 bytes .../gnu/xml/dom/html2/DomHTMLPreElement.class | Bin 0 -> 869 bytes .../xml/dom/html2/DomHTMLQuoteElement.class | Bin 0 -> 932 bytes .../xml/dom/html2/DomHTMLScriptElement.class | Bin 0 -> 2174 bytes .../xml/dom/html2/DomHTMLSelectElement.class | Bin 0 -> 4686 bytes .../xml/dom/html2/DomHTMLStyleElement.class | Bin 0 -> 1427 bytes .../html2/DomHTMLTableCaptionElement.class | Bin 0 -> 963 bytes .../dom/html2/DomHTMLTableCellElement.class | Bin 0 -> 3661 bytes .../dom/html2/DomHTMLTableColElement.class | Bin 0 -> 1964 bytes .../xml/dom/html2/DomHTMLTableElement.class | Bin 0 -> 6637 bytes .../dom/html2/DomHTMLTableRowElement.class | Bin 0 -> 4138 bytes .../html2/DomHTMLTableSectionElement.class | Bin 0 -> 3194 bytes .../dom/html2/DomHTMLTextAreaElement.class | Bin 0 -> 3318 bytes .../xml/dom/html2/DomHTMLTitleElement.class | Bin 0 -> 838 bytes .../xml/dom/html2/DomHTMLUListElement.class | Bin 0 -> 1250 bytes .../lib/gnu/xml/dom/ls/DomLSException.class | Bin 0 -> 584 bytes .../lib/gnu/xml/dom/ls/DomLSInput.class | Bin 0 -> 2644 bytes .../lib/gnu/xml/dom/ls/DomLSOutput.class | Bin 0 -> 1412 bytes .../lib/gnu/xml/dom/ls/DomLSParser.class | Bin 0 -> 10963 bytes .../lib/gnu/xml/dom/ls/DomLSSerializer.class | Bin 0 -> 5775 bytes .../gnu/xml/dom/ls/FilteredSAXEventSink.class | Bin 0 -> 5514 bytes .../gnu/xml/dom/ls/ReaderInputStream.class | Bin 0 -> 3321 bytes .../lib/gnu/xml/dom/ls/SAXEventSink.class | Bin 0 -> 12805 bytes .../gnu/xml/dom/ls/WriterOutputStream.class | Bin 0 -> 1291 bytes .../lib/gnu/xml/libxmlj/dom/GnomeAttr.class | Bin 0 -> 1884 bytes .../xml/libxmlj/dom/GnomeCDATASection.class | Bin 0 -> 420 bytes .../xml/libxmlj/dom/GnomeCharacterData.class | Bin 0 -> 2367 bytes .../gnu/xml/libxmlj/dom/GnomeComment.class | Bin 0 -> 409 bytes .../xml/libxmlj/dom/GnomeDOMException.class | Bin 0 -> 1176 bytes .../xml/libxmlj/dom/GnomeDOMStringList.class | Bin 0 -> 913 bytes .../gnu/xml/libxmlj/dom/GnomeDocument.class | Bin 0 -> 10110 bytes .../libxmlj/dom/GnomeDocumentBuilder.class | Bin 0 -> 5993 bytes .../dom/GnomeDocumentBuilderFactory.class | Bin 0 -> 1683 bytes .../libxmlj/dom/GnomeDocumentFragment.class | Bin 0 -> 436 bytes .../xml/libxmlj/dom/GnomeDocumentType.class | Bin 0 -> 1475 bytes .../gnu/xml/libxmlj/dom/GnomeElement.class | Bin 0 -> 3362 bytes .../lib/gnu/xml/libxmlj/dom/GnomeEntity.class | Bin 0 -> 1358 bytes .../libxmlj/dom/GnomeEntityReference.class | Bin 0 -> 432 bytes .../xml/libxmlj/dom/GnomeNamedNodeMap.class | Bin 0 -> 917 bytes .../lib/gnu/xml/libxmlj/dom/GnomeNode.class | Bin 0 -> 9182 bytes .../gnu/xml/libxmlj/dom/GnomeNodeList.class | Bin 0 -> 488 bytes .../gnu/xml/libxmlj/dom/GnomeNotation.class | Bin 0 -> 1060 bytes .../dom/GnomeProcessingInstruction.class | Bin 0 -> 1110 bytes .../lib/gnu/xml/libxmlj/dom/GnomeText.class | Bin 0 -> 2414 bytes .../gnu/xml/libxmlj/dom/GnomeTypeInfo.class | Bin 0 -> 562 bytes .../libxmlj/dom/GnomeXPathExpression.class | Bin 0 -> 1313 bytes .../libxmlj/dom/GnomeXPathNSResolver.class | Bin 0 -> 660 bytes .../xml/libxmlj/dom/GnomeXPathNodeList.class | Bin 0 -> 609 bytes .../xml/libxmlj/dom/GnomeXPathResult.class | Bin 0 -> 2233 bytes .../gnu/xml/libxmlj/sax/GnomeLocator.class | Bin 0 -> 1191 bytes .../gnu/xml/libxmlj/sax/GnomeSAXParser.class | Bin 0 -> 1481 bytes .../libxmlj/sax/GnomeSAXParserFactory.class | Bin 0 -> 1596 bytes .../gnu/xml/libxmlj/sax/GnomeXMLReader.class | Bin 0 -> 16049 bytes .../lib/gnu/xml/libxmlj/sax/Namespaces.class | Bin 0 -> 1840 bytes .../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 .../libxmlj/transform/GnomeTransformer.class | Bin 0 -> 11424 bytes ...rFactory$AssociatedStylesheetHandler.class | Bin 0 -> 1279 bytes .../transform/GnomeTransformerFactory.class | Bin 0 -> 7295 bytes .../transform/URIResolverEntityResolver.class | Bin 0 -> 1383 bytes .../gnu/xml/libxmlj/util/EmptyNodeList.class | Bin 0 -> 521 bytes .../xml/libxmlj/util/NamedInputStream.class | Bin 0 -> 1272 bytes .../libxmlj/util/StandaloneDocumentType.class | Bin 0 -> 5182 bytes .../xml/libxmlj/util/StandaloneLocator.class | Bin 0 -> 993 bytes .../libxmlj/util/XMLJ$XMLJShutdownHook.class | Bin 0 -> 727 bytes .../lib/gnu/xml/libxmlj/util/XMLJ.class | Bin 0 -> 4753 bytes .../xml/pipeline/CallFilter$Requestor.class | Bin 0 -> 3236 bytes .../lib/gnu/xml/pipeline/CallFilter.class | Bin 0 -> 2591 bytes .../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 .../lib/gnu/xml/pipeline/NSFilter.class | Bin 0 -> 6282 bytes .../pipeline/PipelineFactory$Pipeline.class | Bin 0 -> 1433 bytes .../xml/pipeline/PipelineFactory$Stage.class | Bin 0 -> 5275 bytes .../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 ...alidationConsumer$ChildrenRecognizer.class | Bin 0 -> 5547 bytes .../ValidationConsumer$ElementInfo.class | Bin 0 -> 1680 bytes .../ValidationConsumer$EmptyRecognizer.class | Bin 0 -> 850 bytes .../ValidationConsumer$MixedRecognizer.class | Bin 0 -> 2369 bytes .../ValidationConsumer$Recognizer.class | Bin 0 -> 1170 bytes .../gnu/xml/pipeline/ValidationConsumer.class | Bin 0 -> 18791 bytes .../xml/pipeline/WellFormednessFilter.class | Bin 0 -> 6832 bytes .../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 .../lib/gnu/xml/stream/CRLFReader.class | Bin 0 -> 2032 bytes .../lib/gnu/xml/stream/CharactersImpl.class | Bin 0 -> 1830 bytes .../lib/gnu/xml/stream/CommentImpl.class | Bin 0 -> 1362 bytes .../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 .../xml/stream/EntityDeclarationImpl.class | Bin 0 -> 2367 bytes .../gnu/xml/stream/EntityReferenceImpl.class | Bin 0 -> 1586 bytes .../gnu/xml/stream/FilteredEventReader.class | Bin 0 -> 1631 bytes .../gnu/xml/stream/FilteredStreamReader.class | Bin 0 -> 1128 bytes .../lib/gnu/xml/stream/NamespaceImpl.class | Bin 0 -> 1777 bytes .../xml/stream/NotationDeclarationImpl.class | Bin 0 -> 1811 bytes .../stream/ProcessingInstructionImpl.class | Bin 0 -> 1536 bytes .../lib/gnu/xml/stream/SAXParser.class | Bin 0 -> 22005 bytes .../lib/gnu/xml/stream/SAXParserFactory.class | Bin 0 -> 2605 bytes .../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 .../xml/stream/XMLEventAllocatorImpl.class | Bin 0 -> 5884 bytes .../gnu/xml/stream/XMLEventFactoryImpl.class | Bin 0 -> 7643 bytes .../lib/gnu/xml/stream/XMLEventImpl.class | Bin 0 -> 3112 bytes .../gnu/xml/stream/XMLEventReaderImpl.class | Bin 0 -> 2614 bytes .../gnu/xml/stream/XMLEventWriterImpl.class | Bin 0 -> 4785 bytes .../gnu/xml/stream/XMLInputFactoryImpl.class | Bin 0 -> 9613 bytes .../gnu/xml/stream/XMLOutputFactoryImpl.class | Bin 0 -> 4038 bytes .../stream/XMLParser$AnyContentModel.class | Bin 0 -> 594 bytes .../gnu/xml/stream/XMLParser$Attribute.class | Bin 0 -> 1789 bytes .../xml/stream/XMLParser$AttributeDecl.class | Bin 0 -> 897 bytes .../xml/stream/XMLParser$ContentModel.class | Bin 0 -> 787 bytes .../stream/XMLParser$ContentParticle.class | Bin 0 -> 595 bytes .../gnu/xml/stream/XMLParser$Doctype.class | Bin 0 -> 5857 bytes .../XMLParser$ElementContentModel.class | Bin 0 -> 964 bytes .../stream/XMLParser$EmptyContentModel.class | Bin 0 -> 600 bytes .../xml/stream/XMLParser$ExternalIds.class | Bin 0 -> 556 bytes .../lib/gnu/xml/stream/XMLParser$Input.class | Bin 0 -> 6256 bytes .../stream/XMLParser$MixedContentModel.class | Bin 0 -> 965 bytes .../lib/gnu/xml/stream/XMLParser.class | Bin 0 -> 67379 bytes .../gnu/xml/stream/XMLStreamWriterImpl.class | Bin 0 -> 14899 bytes .../xml/transform/AbstractNumberNode.class | Bin 0 -> 6009 bytes .../gnu/xml/transform/ApplyImportsNode.class | Bin 0 -> 1500 bytes .../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 .../lib/gnu/xml/transform/Bindings.class | Bin 0 -> 5257 bytes .../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 .../lib/gnu/xml/transform/CopyNode.class | Bin 0 -> 3782 bytes .../lib/gnu/xml/transform/CopyOfNode.class | Bin 0 -> 4070 bytes .../gnu/xml/transform/CurrentFunction.class | Bin 0 -> 1641 bytes .../gnu/xml/transform/DOMSourceLocator.class | Bin 0 -> 872 bytes .../gnu/xml/transform/DocumentFunction.class | Bin 0 -> 5846 bytes .../transform/ElementAvailableFunction.class | Bin 0 -> 4430 bytes .../lib/gnu/xml/transform/ElementNode.class | Bin 0 -> 6372 bytes .../transform/ErrorListenerErrorHandler.class | Bin 0 -> 1346 bytes .../lib/gnu/xml/transform/ForEachNode.class | Bin 0 -> 3796 bytes .../xml/transform/FormatNumberFunction.class | Bin 0 -> 3272 bytes .../transform/FunctionAvailableFunction.class | Bin 0 -> 4586 bytes .../xml/transform/GenerateIdFunction.class | Bin 0 -> 3112 bytes .../lib/gnu/xml/transform/IfNode.class | Bin 0 -> 2314 bytes .../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 .../gnu/xml/transform/NamespaceProxy.class | Bin 0 -> 1109 bytes .../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 .../transform/ProcessingInstructionNode.class | Bin 0 -> 2568 bytes .../lib/gnu/xml/transform/SAXSerializer.class | Bin 0 -> 6506 bytes .../xml/transform/SAXTemplatesHandler.class | Bin 0 -> 1782 bytes .../xml/transform/SAXTransformerHandler.class | Bin 0 -> 2047 bytes .../lib/gnu/xml/transform/SortKey.class | Bin 0 -> 3065 bytes .../gnu/xml/transform/StreamSerializer.class | Bin 0 -> 17808 bytes .../xml/transform/StrippingInstruction.class | Bin 0 -> 703 bytes .../lib/gnu/xml/transform/Stylesheet.class | Bin 0 -> 38666 bytes .../transform/SystemPropertyFunction.class | Bin 0 -> 3011 bytes .../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 .../lib/gnu/xml/transform/TextNode.class | Bin 0 -> 2653 bytes .../transform/TransformerFactoryImpl.class | Bin 0 -> 11477 bytes .../gnu/xml/transform/TransformerImpl.class | Bin 0 -> 17191 bytes .../TransformerOutputProperties.class | Bin 0 -> 3335 bytes .../transform/URIResolverEntityResolver.class | Bin 0 -> 1294 bytes .../transform/UnparsedEntityUriFunction.class | Bin 0 -> 2875 bytes .../lib/gnu/xml/transform/ValueOfNode.class | Bin 0 -> 3965 bytes .../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 .../gnu/xml/transform/XSLURIResolver.class | Bin 0 -> 6144 bytes .../gnu/xml/util/DoParse$MyErrorHandler.class | Bin 0 -> 1301 bytes .../classpath/lib/gnu/xml/util/DoParse.class | Bin 0 -> 5058 bytes .../lib/gnu/xml/util/DomParser.class | Bin 0 -> 11909 bytes .../classpath/lib/gnu/xml/util/Resolver.class | Bin 0 -> 3303 bytes ...SAXNullTransformerFactory$DomHandler.class | Bin 0 -> 997 bytes ...AXNullTransformerFactory$DomTerminus.class | Bin 0 -> 874 bytes ...llTransformerFactory$ListenerAdapter.class | Bin 0 -> 2042 bytes ...ullTransformerFactory$LocatorAdapter.class | Bin 0 -> 940 bytes ...AXNullTransformerFactory$NullHandler.class | Bin 0 -> 3212 bytes ...llTransformerFactory$NullTransformer.class | Bin 0 -> 5136 bytes .../xml/util/SAXNullTransformerFactory.class | Bin 0 -> 5459 bytes .../lib/gnu/xml/util/XCat$Catalog.class | Bin 0 -> 5817 bytes .../gnu/xml/util/XCat$DoneDelegation.class | Bin 0 -> 372 bytes .../lib/gnu/xml/util/XCat$Loader.class | Bin 0 -> 10205 bytes libjava/classpath/lib/gnu/xml/util/XCat.class | Bin 0 -> 7607 bytes .../lib/gnu/xml/util/XHTMLWriter.class | Bin 0 -> 1019 bytes .../lib/gnu/xml/util/XMLWriter.class | Bin 0 -> 26506 bytes .../xml/validation/datatype/Annotation.class | Bin 0 -> 508 bytes .../validation/datatype/AnySimpleType.class | Bin 0 -> 753 bytes .../gnu/xml/validation/datatype/AnyType.class | Bin 0 -> 628 bytes .../xml/validation/datatype/AnyURIType.class | Bin 0 -> 1703 bytes .../datatype/AtomicSimpleType.class | Bin 0 -> 1385 bytes .../datatype/Base64BinaryType.class | Bin 0 -> 2173 bytes .../xml/validation/datatype/BooleanType.class | Bin 0 -> 2029 bytes .../xml/validation/datatype/ByteType.class | Bin 0 -> 2336 bytes .../validation/datatype/DateTimeType.class | Bin 0 -> 4310 bytes .../xml/validation/datatype/DateType.class | Bin 0 -> 3469 bytes .../xml/validation/datatype/DecimalType.class | Bin 0 -> 2033 bytes .../xml/validation/datatype/DoubleType.class | Bin 0 -> 2285 bytes .../datatype/DurationType$Duration.class | Bin 0 -> 1355 bytes .../validation/datatype/DurationType.class | Bin 0 -> 3020 bytes .../validation/datatype/EntitiesType.class | Bin 0 -> 2090 bytes .../xml/validation/datatype/EntityType.class | Bin 0 -> 1579 bytes .../datatype/EnumerationFacet.class | Bin 0 -> 876 bytes .../gnu/xml/validation/datatype/Facet.class | Bin 0 -> 925 bytes .../xml/validation/datatype/FloatType.class | Bin 0 -> 2278 bytes .../datatype/FractionDigitsFacet.class | Bin 0 -> 854 bytes .../validation/datatype/GDayType$GDay.class | Bin 0 -> 873 bytes .../xml/validation/datatype/GDayType.class | Bin 0 -> 2407 bytes .../datatype/GMonthDayType$GMonthDay.class | Bin 0 -> 1006 bytes .../validation/datatype/GMonthDayType.class | Bin 0 -> 2527 bytes .../datatype/GMonthType$GMonth.class | Bin 0 -> 889 bytes .../xml/validation/datatype/GMonthType.class | Bin 0 -> 2343 bytes .../datatype/GYearMonthType$GYearMonth.class | Bin 0 -> 1014 bytes .../validation/datatype/GYearMonthType.class | Bin 0 -> 2559 bytes .../validation/datatype/GYearType$GYear.class | Bin 0 -> 881 bytes .../xml/validation/datatype/GYearType.class | Bin 0 -> 2299 bytes .../validation/datatype/HexBinaryType.class | Bin 0 -> 1627 bytes .../xml/validation/datatype/IDRefType.class | Bin 0 -> 1327 bytes .../xml/validation/datatype/IDRefsType.class | Bin 0 -> 1330 bytes .../gnu/xml/validation/datatype/IDType.class | Bin 0 -> 1315 bytes .../gnu/xml/validation/datatype/IntType.class | Bin 0 -> 2338 bytes .../xml/validation/datatype/IntegerType.class | Bin 0 -> 1940 bytes .../validation/datatype/LanguageType.class | Bin 0 -> 1692 bytes .../xml/validation/datatype/LengthFacet.class | Bin 0 -> 829 bytes .../validation/datatype/ListSimpleType.class | Bin 0 -> 1633 bytes .../xml/validation/datatype/LongType.class | Bin 0 -> 2358 bytes .../datatype/MaxExclusiveFacet.class | Bin 0 -> 1798 bytes .../datatype/MaxInclusiveFacet.class | Bin 0 -> 1841 bytes .../validation/datatype/MaxLengthFacet.class | Bin 0 -> 838 bytes .../datatype/MinExclusiveFacet.class | Bin 0 -> 1797 bytes .../datatype/MinInclusiveFacet.class | Bin 0 -> 1840 bytes .../validation/datatype/MinLengthFacet.class | Bin 0 -> 838 bytes .../xml/validation/datatype/NCNameType.class | Bin 0 -> 2021 bytes .../xml/validation/datatype/NMTokenType.class | Bin 0 -> 1867 bytes .../validation/datatype/NMTokensType.class | Bin 0 -> 2500 bytes .../xml/validation/datatype/NameType.class | Bin 0 -> 1914 bytes .../datatype/NegativeIntegerType.class | Bin 0 -> 1988 bytes .../datatype/NonNegativeIntegerType.class | Bin 0 -> 2080 bytes .../datatype/NonPositiveIntegerType.class | Bin 0 -> 2080 bytes .../datatype/NormalizedStringType.class | Bin 0 -> 1577 bytes .../validation/datatype/NotationType.class | Bin 0 -> 1538 bytes .../validation/datatype/PatternFacet.class | Bin 0 -> 878 bytes .../datatype/PositiveIntegerType.class | Bin 0 -> 1975 bytes .../xml/validation/datatype/QNameType.class | Bin 0 -> 2399 bytes .../xml/validation/datatype/ShortType.class | Bin 0 -> 2332 bytes .../xml/validation/datatype/SimpleType.class | Bin 0 -> 5599 bytes .../xml/validation/datatype/StringType.class | Bin 0 -> 941 bytes .../validation/datatype/TimeType$Time.class | Bin 0 -> 1036 bytes .../xml/validation/datatype/TimeType.class | Bin 0 -> 3776 bytes .../xml/validation/datatype/TokenType.class | Bin 0 -> 1662 bytes .../datatype/TotalDigitsFacet.class | Bin 0 -> 845 bytes .../gnu/xml/validation/datatype/Type.class | Bin 0 -> 551 bytes .../xml/validation/datatype/TypeBuilder.class | Bin 0 -> 7085 bytes .../xml/validation/datatype/TypeLibrary.class | Bin 0 -> 7275 bytes .../datatype/TypeLibraryFactory.class | Bin 0 -> 753 bytes .../validation/datatype/UnionSimpleType.class | Bin 0 -> 1702 bytes .../datatype/UnsignedByteType.class | Bin 0 -> 2212 bytes .../validation/datatype/UnsignedIntType.class | Bin 0 -> 2216 bytes .../datatype/UnsignedLongType.class | Bin 0 -> 2235 bytes .../datatype/UnsignedShortType.class | Bin 0 -> 2226 bytes .../validation/datatype/WhiteSpaceFacet.class | Bin 0 -> 953 bytes .../validation/relaxng/AnyNameNameClass.class | Bin 0 -> 642 bytes .../validation/relaxng/AttributePattern.class | Bin 0 -> 463 bytes .../validation/relaxng/ChoiceNameClass.class | Bin 0 -> 654 bytes .../validation/relaxng/ChoicePattern.class | Bin 0 -> 413 bytes .../xml/validation/relaxng/DataPattern.class | Bin 0 -> 605 bytes .../gnu/xml/validation/relaxng/Define.class | Bin 0 -> 397 bytes .../validation/relaxng/ElementPattern.class | Bin 0 -> 457 bytes .../xml/validation/relaxng/EmptyPattern.class | Bin 0 -> 439 bytes .../relaxng/FullSyntaxBuilder.class | Bin 0 -> 32653 bytes .../gnu/xml/validation/relaxng/Grammar.class | Bin 0 -> 805 bytes .../validation/relaxng/GrammarException.class | Bin 0 -> 394 bytes .../validation/relaxng/GrammarValidator.class | Bin 0 -> 1483 bytes .../xml/validation/relaxng/GroupPattern.class | Bin 0 -> 410 bytes .../relaxng/InterleavePattern.class | Bin 0 -> 425 bytes .../xml/validation/relaxng/ListPattern.class | Bin 0 -> 387 bytes .../validation/relaxng/NSNameNameClass.class | Bin 0 -> 748 bytes .../xml/validation/relaxng/NameClass.class | Bin 0 -> 370 bytes .../validation/relaxng/NameNameClass.class | Bin 0 -> 652 bytes .../relaxng/NotAllowedPattern.class | Bin 0 -> 454 bytes .../validation/relaxng/OneOrMorePattern.class | Bin 0 -> 402 bytes .../gnu/xml/validation/relaxng/Param.class | Bin 0 -> 346 bytes .../gnu/xml/validation/relaxng/Pattern.class | Bin 0 -> 300 bytes .../relaxng/RELAXNGSchemaFactory.class | Bin 0 -> 4226 bytes .../xml/validation/relaxng/RefPattern.class | Bin 0 -> 363 bytes .../xml/validation/relaxng/TextPattern.class | Bin 0 -> 436 bytes .../xml/validation/relaxng/ValuePattern.class | Bin 0 -> 499 bytes .../validation/xmlschema/AnyAttribute.class | Bin 0 -> 642 bytes .../xmlschema/AttributeDeclaration.class | Bin 0 -> 1008 bytes .../validation/xmlschema/AttributeUse.class | Bin 0 -> 672 bytes .../validation/xmlschema/ComplexType.class | Bin 0 -> 937 bytes .../xmlschema/ElementDeclaration.class | Bin 0 -> 1233 bytes .../xml/validation/xmlschema/Particle.class | Bin 0 -> 558 bytes .../xmlschema/ValidationException.class | Bin 0 -> 483 bytes .../xml/validation/xmlschema/XMLSchema.class | Bin 0 -> 1892 bytes .../XMLSchemaAttributeTypeInfo.class | Bin 0 -> 1700 bytes .../xmlschema/XMLSchemaBuilder.class | Bin 0 -> 14866 bytes .../xmlschema/XMLSchemaElementTypeInfo.class | Bin 0 -> 1657 bytes .../xmlschema/XMLSchemaSchemaFactory.class | Bin 0 -> 4437 bytes .../xmlschema/XMLSchemaTypeInfo.class | Bin 0 -> 1095 bytes .../xmlschema/XMLSchemaTypeInfoProvider.class | Bin 0 -> 1088 bytes .../xmlschema/XMLSchemaValidator.class | Bin 0 -> 1500 bytes .../xmlschema/XMLSchemaValidatorHandler.class | Bin 0 -> 10302 bytes .../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 .../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 .../xml/xpath/DocumentOrderComparator.class | Bin 0 -> 694 bytes .../lib/gnu/xml/xpath/EqualityExpr.class | Bin 0 -> 4075 bytes .../lib/gnu/xml/xpath/Expr$ExprNodeSet.class | Bin 0 -> 939 bytes .../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 .../lib/gnu/xml/xpath/Function.class | Bin 0 -> 156 bytes .../lib/gnu/xml/xpath/FunctionCall.class | Bin 0 -> 3750 bytes .../lib/gnu/xml/xpath/IdFunction.class | Bin 0 -> 1789 bytes .../lib/gnu/xml/xpath/LangFunction.class | Bin 0 -> 2382 bytes .../lib/gnu/xml/xpath/LastFunction.class | Bin 0 -> 933 bytes .../lib/gnu/xml/xpath/LocalNameFunction.class | Bin 0 -> 1830 bytes .../lib/gnu/xml/xpath/NameFunction.class | Bin 0 -> 1797 bytes .../lib/gnu/xml/xpath/NameTest.class | Bin 0 -> 2393 bytes .../lib/gnu/xml/xpath/NamespaceTest.class | Bin 0 -> 2047 bytes .../gnu/xml/xpath/NamespaceUriFunction.class | Bin 0 -> 1848 bytes .../lib/gnu/xml/xpath/NegativeExpr.class | Bin 0 -> 1357 bytes .../lib/gnu/xml/xpath/NodeTypeTest.class | Bin 0 -> 2035 bytes .../xml/xpath/NormalizeSpaceFunction.class | Bin 0 -> 2184 bytes .../lib/gnu/xml/xpath/NotFunction.class | Bin 0 -> 1639 bytes .../lib/gnu/xml/xpath/NumberFunction.class | Bin 0 -> 1651 bytes .../classpath/lib/gnu/xml/xpath/OrExpr.class | Bin 0 -> 1544 bytes .../lib/gnu/xml/xpath/ParenthesizedExpr.class | Bin 0 -> 1627 bytes .../classpath/lib/gnu/xml/xpath/Path.class | Bin 0 -> 356 bytes .../classpath/lib/gnu/xml/xpath/Pattern.class | Bin 0 -> 318 bytes .../lib/gnu/xml/xpath/PositionFunction.class | Bin 0 -> 949 bytes .../lib/gnu/xml/xpath/Predicate.class | Bin 0 -> 1545 bytes .../lib/gnu/xml/xpath/RelationalExpr.class | Bin 0 -> 1897 bytes .../classpath/lib/gnu/xml/xpath/Root.class | Bin 0 -> 1538 bytes .../lib/gnu/xml/xpath/RoundFunction.class | Bin 0 -> 1759 bytes .../lib/gnu/xml/xpath/Selector.class | Bin 0 -> 8831 bytes .../gnu/xml/xpath/StartsWithFunction.class | Bin 0 -> 1982 bytes .../classpath/lib/gnu/xml/xpath/Steps.class | Bin 0 -> 4349 bytes .../lib/gnu/xml/xpath/StringFunction.class | Bin 0 -> 1678 bytes .../gnu/xml/xpath/StringLengthFunction.class | Bin 0 -> 1853 bytes .../xml/xpath/SubstringAfterFunction.class | Bin 0 -> 2036 bytes .../xml/xpath/SubstringBeforeFunction.class | Bin 0 -> 2011 bytes .../lib/gnu/xml/xpath/SubstringFunction.class | Bin 0 -> 2340 bytes .../lib/gnu/xml/xpath/SumFunction.class | Bin 0 -> 2040 bytes .../classpath/lib/gnu/xml/xpath/Test.class | Bin 0 -> 422 bytes .../lib/gnu/xml/xpath/TranslateFunction.class | Bin 0 -> 2543 bytes .../lib/gnu/xml/xpath/TrueFunction.class | Bin 0 -> 950 bytes .../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 .../lib/gnu/xml/xpath/XPathImpl.class | Bin 0 -> 3800 bytes .../xml/xpath/XPathParser$YyCheckClass.class | Bin 0 -> 7787 bytes .../xml/xpath/XPathParser$YyDefRedClass.class | Bin 0 -> 863 bytes .../xml/xpath/XPathParser$YyDgotoClass.class | Bin 0 -> 669 bytes .../xml/xpath/XPathParser$YyGindexClass.class | Bin 0 -> 589 bytes .../xml/xpath/XPathParser$YyLenClass.class | Bin 0 -> 952 bytes .../xml/xpath/XPathParser$YyLhsClass.class | Bin 0 -> 1018 bytes .../xml/xpath/XPathParser$YyNameClass.class | Bin 0 -> 1520 bytes .../xml/xpath/XPathParser$YyRindexClass.class | Bin 0 -> 774 bytes .../xml/xpath/XPathParser$YySindexClass.class | Bin 0 -> 1024 bytes .../xml/xpath/XPathParser$YyTableClass.class | Bin 0 -> 5389 bytes .../xml/xpath/XPathParser$yyException.class | Bin 0 -> 453 bytes .../gnu/xml/xpath/XPathParser$yyInput.class | Bin 0 -> 330 bytes .../lib/gnu/xml/xpath/XPathParser.class | Bin 0 -> 15434 bytes .../xml/xpath/XPathTokenizer$XPathToken.class | Bin 0 -> 796 bytes .../lib/gnu/xml/xpath/XPathTokenizer.class | Bin 0 -> 7206 bytes .../java/applet/Applet$AccessibleApplet.class | Bin 0 -> 1235 bytes .../lib/java/applet/Applet$URLAudioClip.class | Bin 0 -> 1500 bytes .../classpath/lib/java/applet/Applet.class | Bin 0 -> 4351 bytes .../lib/java/applet/AppletContext.class | Bin 0 -> 833 bytes .../lib/java/applet/AppletStub.class | Bin 0 -> 359 bytes .../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 .../classpath/lib/java/awt/AWTException.class | Bin 0 -> 410 bytes .../lib/java/awt/AWTKeyStroke$1.class | Bin 0 -> 1001 bytes .../lib/java/awt/AWTKeyStroke$2.class | Bin 0 -> 1451 bytes .../lib/java/awt/AWTKeyStroke$3.class | Bin 0 -> 1214 bytes .../classpath/lib/java/awt/AWTKeyStroke.class | Bin 0 -> 7354 bytes .../lib/java/awt/AWTPermission.class | Bin 0 -> 558 bytes .../classpath/lib/java/awt/ActiveEvent.class | Bin 0 -> 137 bytes .../classpath/lib/java/awt/Adjustable.class | Bin 0 -> 666 bytes .../lib/java/awt/AlphaComposite$1.class | Bin 0 -> 715 bytes .../lib/java/awt/AlphaComposite.class | Bin 0 -> 3106 bytes .../lib/java/awt/AttributeValue.class | Bin 0 -> 609 bytes .../classpath/lib/java/awt/BasicStroke.class | Bin 0 -> 11709 bytes .../classpath/lib/java/awt/BorderLayout.class | Bin 0 -> 8006 bytes .../awt/BufferCapabilities$FlipContents.class | Bin 0 -> 873 bytes .../lib/java/awt/BufferCapabilities.class | Bin 0 -> 1772 bytes .../java/awt/Button$AccessibleAWTButton.class | Bin 0 -> 2322 bytes libjava/classpath/lib/java/awt/Button.class | Bin 0 -> 4645 bytes .../java/awt/Canvas$AccessibleAWTCanvas.class | Bin 0 -> 783 bytes .../awt/Canvas$CanvasBltBufferStrategy.class | Bin 0 -> 947 bytes .../awt/Canvas$CanvasFlipBufferStrategy.class | Bin 0 -> 972 bytes libjava/classpath/lib/java/awt/Canvas.class | Bin 0 -> 3756 bytes .../classpath/lib/java/awt/CardLayout.class | Bin 0 -> 6645 bytes .../awt/Checkbox$AccessibleAWTCheckbox.class | Bin 0 -> 2701 bytes libjava/classpath/lib/java/awt/Checkbox.class | Bin 0 -> 5130 bytes .../lib/java/awt/CheckboxGroup.class | Bin 0 -> 1568 bytes ...nuItem$AccessibleAWTCheckboxMenuItem.class | Bin 0 -> 734 bytes .../lib/java/awt/CheckboxMenuItem.class | Bin 0 -> 4664 bytes .../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 .../awt/ColorPaintContext$ColorRaster.class | Bin 0 -> 2055 bytes .../lib/java/awt/ColorPaintContext.class | Bin 0 -> 1437 bytes ...ponent$AccessibleAWTComponentHandler.class | Bin 0 -> 1391 bytes ...TComponent$AccessibleAWTFocusHandler.class | Bin 0 -> 1188 bytes .../Component$AccessibleAWTComponent.class | Bin 0 -> 7344 bytes .../awt/Component$BltBufferStrategy.class | Bin 0 -> 3260 bytes .../awt/Component$FlipBufferStrategy.class | Bin 0 -> 3406 bytes ...ent$HeavyweightInLightweightListener.class | Bin 0 -> 1500 bytes .../classpath/lib/java/awt/Component.class | Bin 0 -> 57337 bytes .../lib/java/awt/ComponentOrientation.class | Bin 0 -> 1996 bytes .../classpath/lib/java/awt/Composite.class | Bin 0 -> 243 bytes .../lib/java/awt/CompositeContext.class | Bin 0 -> 247 bytes ...Container$AccessibleContainerHandler.class | Bin 0 -> 1195 bytes .../Container$AccessibleAWTContainer.class | Bin 0 -> 1986 bytes .../awt/Container$GfxPaintAllVisitor.class | Bin 0 -> 801 bytes .../java/awt/Container$GfxPaintVisitor.class | Bin 0 -> 789 bytes .../awt/Container$GfxPrintAllVisitor.class | Bin 0 -> 801 bytes .../java/awt/Container$GfxPrintVisitor.class | Bin 0 -> 789 bytes .../lib/java/awt/Container$GfxVisitor.class | Bin 0 -> 421 bytes .../classpath/lib/java/awt/Container.class | Bin 0 -> 25778 bytes .../ContainerOrderFocusTraversalPolicy.class | Bin 0 -> 5181 bytes libjava/classpath/lib/java/awt/Cursor.class | Bin 0 -> 3144 bytes .../awt/DefaultFocusTraversalPolicy.class | Bin 0 -> 1060 bytes ...yboardFocusManager$EventDelayRequest.class | Bin 0 -> 2221 bytes .../awt/DefaultKeyboardFocusManager.class | Bin 0 -> 8339 bytes .../java/awt/Dialog$AccessibleAWTDialog.class | Bin 0 -> 1304 bytes libjava/classpath/lib/java/awt/Dialog.class | Bin 0 -> 5452 bytes .../classpath/lib/java/awt/Dimension.class | Bin 0 -> 2137 bytes .../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 .../lib/java/awt/EventQueue$Queue.class | Bin 0 -> 610 bytes .../classpath/lib/java/awt/EventQueue.class | Bin 0 -> 7265 bytes .../classpath/lib/java/awt/FileDialog.class | Bin 0 -> 3706 bytes .../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 .../classpath/lib/java/awt/FontMetrics.class | Bin 0 -> 6101 bytes .../java/awt/Frame$AccessibleAWTFrame.class | Bin 0 -> 1302 bytes libjava/classpath/lib/java/awt/Frame.class | Bin 0 -> 7975 bytes .../lib/java/awt/GradientPaint.class | Bin 0 -> 2918 bytes libjava/classpath/lib/java/awt/Graphics.class | Bin 0 -> 5028 bytes .../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 .../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 .../lib/java/awt/GridBagLayout.class | Bin 0 -> 16068 bytes .../lib/java/awt/GridBagLayoutInfo.class | Bin 0 -> 737 bytes .../classpath/lib/java/awt/GridLayout.class | Bin 0 -> 5050 bytes .../lib/java/awt/HeadlessException.class | Bin 0 -> 526 bytes .../awt/IllegalComponentStateException.class | Bin 0 -> 557 bytes libjava/classpath/lib/java/awt/Image.class | Bin 0 -> 2109 bytes .../lib/java/awt/ImageCapabilities.class | Bin 0 -> 900 bytes libjava/classpath/lib/java/awt/Insets.class | Bin 0 -> 1998 bytes .../lib/java/awt/ItemSelectable.class | Bin 0 -> 261 bytes .../JobAttributes$DefaultSelectionType.class | Bin 0 -> 812 bytes .../awt/JobAttributes$DestinationType.class | Bin 0 -> 726 bytes .../java/awt/JobAttributes$DialogType.class | Bin 0 -> 768 bytes ...ributes$MultipleDocumentHandlingType.class | Bin 0 -> 903 bytes .../java/awt/JobAttributes$SidesType.class | Bin 0 -> 833 bytes .../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 .../java/awt/Label$AccessibleAWTLabel.class | Bin 0 -> 900 bytes libjava/classpath/lib/java/awt/Label.class | Bin 0 -> 2964 bytes .../lib/java/awt/LayoutManager.class | Bin 0 -> 402 bytes .../lib/java/awt/LayoutManager2.class | Bin 0 -> 433 bytes .../lib/java/awt/LightweightDispatcher.class | Bin 0 -> 4928 bytes ...ssibleAWTList$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 .../java/awt/MediaTracker$MediaEntry.class | Bin 0 -> 970 bytes .../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 .../awt/MenuBar$AccessibleAWTMenuBar.class | Bin 0 -> 806 bytes libjava/classpath/lib/java/awt/MenuBar.class | Bin 0 -> 4947 bytes ...Component$AccessibleAWTMenuComponent.class | Bin 0 -> 6273 bytes .../lib/java/awt/MenuComponent.class | Bin 0 -> 4426 bytes .../lib/java/awt/MenuContainer.class | Bin 0 -> 262 bytes .../awt/MenuItem$AccessibleAWTMenuItem.class | Bin 0 -> 2507 bytes libjava/classpath/lib/java/awt/MenuItem.class | Bin 0 -> 5918 bytes .../classpath/lib/java/awt/MenuShortcut.class | Bin 0 -> 5566 bytes .../classpath/lib/java/awt/MouseInfo.class | Bin 0 -> 1744 bytes .../java/awt/PageAttributes$ColorType.class | Bin 0 -> 720 bytes .../java/awt/PageAttributes$MediaType.class | Bin 0 -> 8335 bytes ...eAttributes$OrientationRequestedType.class | Bin 0 -> 777 bytes .../java/awt/PageAttributes$OriginType.class | Bin 0 -> 727 bytes .../awt/PageAttributes$PrintQualityType.class | Bin 0 -> 788 bytes .../lib/java/awt/PageAttributes.class | Bin 0 -> 6150 bytes libjava/classpath/lib/java/awt/Paint.class | Bin 0 -> 311 bytes .../classpath/lib/java/awt/PaintContext.class | Bin 0 -> 246 bytes .../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 .../classpath/lib/java/awt/PointerInfo.class | Bin 0 -> 656 bytes .../classpath/lib/java/awt/Polygon$1.class | Bin 0 -> 1484 bytes libjava/classpath/lib/java/awt/Polygon.class | Bin 0 -> 5355 bytes .../PopupMenu$AccessibleAWTPopupMenu.class | Bin 0 -> 799 bytes .../classpath/lib/java/awt/PopupMenu.class | Bin 0 -> 2008 bytes .../lib/java/awt/PrintGraphics.class | Bin 0 -> 162 bytes libjava/classpath/lib/java/awt/PrintJob.class | Bin 0 -> 533 bytes .../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 .../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 .../ScrollPane$AccessibleAWTScrollPane.class | Bin 0 -> 820 bytes .../classpath/lib/java/awt/ScrollPane.class | Bin 0 -> 8617 bytes .../lib/java/awt/ScrollPaneAdjustable.class | Bin 0 -> 4436 bytes .../Scrollbar$AccessibleAWTScrollBar.class | Bin 0 -> 2221 bytes .../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 .../classpath/lib/java/awt/SystemColor.class | Bin 0 -> 4272 bytes .../awt/TextArea$AccessibleAWTTextArea.class | Bin 0 -> 734 bytes libjava/classpath/lib/java/awt/TextArea.class | Bin 0 -> 6781 bytes ...Component$AccessibleAWTTextComponent.class | Bin 0 -> 4191 bytes .../lib/java/awt/TextComponent.class | Bin 0 -> 5979 bytes .../TextField$AccessibleAWTTextField.class | Bin 0 -> 743 bytes .../classpath/lib/java/awt/TextField.class | Bin 0 -> 6258 bytes .../classpath/lib/java/awt/TexturePaint.class | Bin 0 -> 1491 bytes .../classpath/lib/java/awt/Toolkit$1.class | Bin 0 -> 616 bytes .../classpath/lib/java/awt/Toolkit$2.class | Bin 0 -> 3538 bytes libjava/classpath/lib/java/awt/Toolkit.class | Bin 0 -> 14310 bytes .../classpath/lib/java/awt/Transparency.class | Bin 0 -> 262 bytes .../java/awt/Window$AccessibleAWTWindow.class | Bin 0 -> 1243 bytes .../awt/Window$WindowBltBufferStrategy.class | Bin 0 -> 947 bytes .../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 .../lib/java/awt/color/ColorSpace.class | Bin 0 -> 3046 bytes .../lib/java/awt/color/ICC_ColorSpace.class | Bin 0 -> 3606 bytes .../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 .../java/awt/color/ProfileDataException.class | Bin 0 -> 453 bytes .../lib/java/awt/datatransfer/Clipboard.class | Bin 0 -> 3685 bytes .../awt/datatransfer/ClipboardOwner.class | Bin 0 -> 230 bytes .../java/awt/datatransfer/DataFlavor.class | Bin 0 -> 12089 bytes .../java/awt/datatransfer/FlavorEvent.class | Bin 0 -> 423 bytes .../awt/datatransfer/FlavorListener.class | Bin 0 -> 228 bytes .../lib/java/awt/datatransfer/FlavorMap.class | Bin 0 -> 507 bytes .../java/awt/datatransfer/FlavorTable.class | Bin 0 -> 496 bytes .../lib/java/awt/datatransfer/MimeType.class | Bin 0 -> 4293 bytes .../datatransfer/MimeTypeParseException.class | Bin 0 -> 547 bytes .../awt/datatransfer/StringSelection.class | Bin 0 -> 1799 bytes .../awt/datatransfer/SystemFlavorMap.class | Bin 0 -> 5169 bytes .../java/awt/datatransfer/Transferable.class | Bin 0 -> 459 bytes .../UnsupportedFlavorException.class | Bin 0 -> 641 bytes .../lib/java/awt/dnd/Autoscroll.class | Bin 0 -> 209 bytes .../lib/java/awt/dnd/DnDConstants.class | Bin 0 -> 529 bytes .../java/awt/dnd/DnDEventMulticaster.class | Bin 0 -> 1262 bytes .../lib/java/awt/dnd/DragGestureEvent.class | Bin 0 -> 3417 bytes .../java/awt/dnd/DragGestureListener.class | Bin 0 -> 232 bytes .../java/awt/dnd/DragGestureRecognizer.class | Bin 0 -> 4026 bytes .../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 .../java/awt/dnd/DragSourceDragEvent.class | Bin 0 -> 1593 bytes .../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 .../awt/dnd/DragSourceMotionListener.class | Bin 0 -> 238 bytes .../DropTarget$DropTargetAutoScroller.class | Bin 0 -> 2504 bytes .../lib/java/awt/dnd/DropTarget.class | Bin 0 -> 6159 bytes .../lib/java/awt/dnd/DropTargetAdapter.class | Bin 0 -> 817 bytes .../DropTargetContext$TransferableProxy.class | Bin 0 -> 1371 bytes .../lib/java/awt/dnd/DropTargetContext.class | Bin 0 -> 3312 bytes .../java/awt/dnd/DropTargetDragEvent.class | Bin 0 -> 2244 bytes .../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 .../dnd/InvalidDnDOperationException.class | Bin 0 -> 553 bytes .../awt/dnd/MouseDragGestureRecognizer.class | Bin 0 -> 2199 bytes .../awt/dnd/peer/DragSourceContextPeer.class | Bin 0 -> 457 bytes .../awt/dnd/peer/DropTargetContextPeer.class | Bin 0 -> 631 bytes .../java/awt/dnd/peer/DropTargetPeer.class | Bin 0 -> 209 bytes .../lib/java/awt/event/AWTEventListener.class | Bin 0 -> 210 bytes .../awt/event/AWTEventListenerProxy.class | Bin 0 -> 859 bytes .../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 .../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 .../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 .../java/awt/event/ContainerListener.class | Bin 0 -> 250 bytes .../lib/java/awt/event/FocusAdapter.class | Bin 0 -> 562 bytes .../lib/java/awt/event/FocusEvent.class | Bin 0 -> 1702 bytes .../lib/java/awt/event/FocusListener.class | Bin 0 -> 228 bytes .../awt/event/HierarchyBoundsAdapter.class | Bin 0 -> 618 bytes .../awt/event/HierarchyBoundsListener.class | Bin 0 -> 260 bytes .../lib/java/awt/event/HierarchyEvent.class | Bin 0 -> 2402 bytes .../java/awt/event/HierarchyListener.class | Bin 0 -> 225 bytes .../lib/java/awt/event/InputEvent.class | Bin 0 -> 2833 bytes .../lib/java/awt/event/InputMethodEvent.class | Bin 0 -> 3854 bytes .../java/awt/event/InputMethodListener.class | Bin 0 -> 268 bytes .../lib/java/awt/event/InvocationEvent.class | Bin 0 -> 2700 bytes .../lib/java/awt/event/ItemEvent.class | Bin 0 -> 1688 bytes .../lib/java/awt/event/ItemListener.class | Bin 0 -> 210 bytes .../lib/java/awt/event/KeyAdapter.class | Bin 0 -> 629 bytes .../lib/java/awt/event/KeyEvent.class | Bin 0 -> 15180 bytes .../lib/java/awt/event/KeyListener.class | Bin 0 -> 242 bytes .../lib/java/awt/event/MouseAdapter.class | Bin 0 -> 812 bytes .../lib/java/awt/event/MouseEvent.class | Bin 0 -> 3968 bytes .../lib/java/awt/event/MouseListener.class | Bin 0 -> 301 bytes .../java/awt/event/MouseMotionAdapter.class | Bin 0 -> 588 bytes .../java/awt/event/MouseMotionListener.class | Bin 0 -> 242 bytes .../lib/java/awt/event/MouseWheelEvent.class | Bin 0 -> 1770 bytes .../java/awt/event/MouseWheelListener.class | Bin 0 -> 227 bytes .../lib/java/awt/event/PaintEvent.class | Bin 0 -> 1383 bytes .../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 .../lib/java/awt/event/WindowEvent.class | Bin 0 -> 2974 bytes .../java/awt/event/WindowFocusListener.class | Bin 0 -> 253 bytes .../lib/java/awt/event/WindowListener.class | Bin 0 -> 367 bytes .../java/awt/event/WindowStateListener.class | Bin 0 -> 228 bytes .../lib/java/awt/font/FontRenderContext.class | Bin 0 -> 1637 bytes .../awt/font/GlyphJustificationInfo.class | Bin 0 -> 1006 bytes .../lib/java/awt/font/GlyphMetrics.class | Bin 0 -> 2130 bytes .../lib/java/awt/font/GlyphVector.class | Bin 0 -> 3366 bytes .../lib/java/awt/font/GraphicAttribute.class | Bin 0 -> 1382 bytes .../java/awt/font/ImageGraphicAttribute.class | Bin 0 -> 2224 bytes .../lib/java/awt/font/LineBreakMeasurer.class | Bin 0 -> 2685 bytes .../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 .../lib/java/awt/font/OpenType.class | Bin 0 -> 1965 bytes .../java/awt/font/ShapeGraphicAttribute.class | Bin 0 -> 2387 bytes .../lib/java/awt/font/TextAttribute.class | Bin 0 -> 4769 bytes .../lib/java/awt/font/TextHitInfo.class | Bin 0 -> 2065 bytes .../awt/font/TextLayout$CaretPolicy.class | Bin 0 -> 1005 bytes .../lib/java/awt/font/TextLayout$Run.class | Bin 0 -> 946 bytes .../lib/java/awt/font/TextLayout.class | Bin 0 -> 23555 bytes .../lib/java/awt/font/TextMeasurer.class | Bin 0 -> 2843 bytes .../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 .../lib/java/awt/geom/Arc2D$Double.class | Bin 0 -> 2281 bytes .../lib/java/awt/geom/Arc2D$Float.class | Bin 0 -> 2314 bytes .../classpath/lib/java/awt/geom/Arc2D.class | Bin 0 -> 8744 bytes .../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 .../lib/java/awt/geom/Area$Segment.class | Bin 0 -> 6120 bytes .../classpath/lib/java/awt/geom/Area.class | Bin 0 -> 23638 bytes .../lib/java/awt/geom/CubicCurve2D$1.class | Bin 0 -> 2038 bytes .../java/awt/geom/CubicCurve2D$Double.class | Bin 0 -> 2454 bytes .../java/awt/geom/CubicCurve2D$Float.class | Bin 0 -> 2694 bytes .../lib/java/awt/geom/CubicCurve2D.class | Bin 0 -> 9086 bytes .../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 .../lib/java/awt/geom/Ellipse2D.class | Bin 0 -> 1989 bytes .../awt/geom/FlatteningPathIterator.class | Bin 0 -> 4030 bytes .../GeneralPath$GeneralPathIterator.class | Bin 0 -> 1905 bytes .../lib/java/awt/geom/GeneralPath.class | Bin 0 -> 10364 bytes .../awt/geom/IllegalPathStateException.class | Bin 0 -> 543 bytes .../lib/java/awt/geom/Line2D$1.class | Bin 0 -> 1797 bytes .../lib/java/awt/geom/Line2D$Double.class | Bin 0 -> 1886 bytes .../lib/java/awt/geom/Line2D$Float.class | Bin 0 -> 2038 bytes .../classpath/lib/java/awt/geom/Line2D.class | Bin 0 -> 7219 bytes .../NoninvertibleTransformException.class | Bin 0 -> 471 bytes .../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 .../classpath/lib/java/awt/geom/Point2D.class | Bin 0 -> 2115 bytes .../lib/java/awt/geom/QuadCurve2D$1.class | Bin 0 -> 1927 bytes .../java/awt/geom/QuadCurve2D$Double.class | Bin 0 -> 2038 bytes .../lib/java/awt/geom/QuadCurve2D$Float.class | Bin 0 -> 2232 bytes .../lib/java/awt/geom/QuadCurve2D.class | Bin 0 -> 7376 bytes .../lib/java/awt/geom/Rectangle2D$1.class | Bin 0 -> 1986 bytes .../java/awt/geom/Rectangle2D$Double.class | Bin 0 -> 2839 bytes .../lib/java/awt/geom/Rectangle2D$Float.class | Bin 0 -> 3146 bytes .../lib/java/awt/geom/Rectangle2D.class | Bin 0 -> 5149 bytes .../lib/java/awt/geom/RectangularShape.class | Bin 0 -> 3979 bytes .../java/awt/geom/RoundRectangle2D$1.class | Bin 0 -> 3069 bytes .../awt/geom/RoundRectangle2D$Double.class | Bin 0 -> 1665 bytes .../awt/geom/RoundRectangle2D$Float.class | Bin 0 -> 1862 bytes .../lib/java/awt/geom/RoundRectangle2D.class | Bin 0 -> 2622 bytes .../lib/java/awt/im/InputContext.class | Bin 0 -> 5168 bytes .../java/awt/im/InputMethodHighlight.class | Bin 0 -> 1841 bytes .../lib/java/awt/im/InputMethodRequests.class | Bin 0 -> 623 bytes .../lib/java/awt/im/InputSubset.class | Bin 0 -> 915 bytes .../lib/java/awt/im/spi/InputMethod.class | Bin 0 -> 735 bytes .../java/awt/im/spi/InputMethodContext.class | Bin 0 -> 538 bytes .../awt/im/spi/InputMethodDescriptor.class | Bin 0 -> 540 bytes .../java/awt/image/AffineTransformOp.class | Bin 0 -> 9727 bytes .../awt/image/AreaAveragingScaleFilter.class | Bin 0 -> 3621 bytes .../lib/java/awt/image/BandCombineOp.class | Bin 0 -> 3170 bytes .../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 .../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 .../awt/image/ColorModel$SRGBColorModel.class | Bin 0 -> 1142 bytes .../lib/java/awt/image/ColorModel.class | Bin 0 -> 9110 bytes .../java/awt/image/ComponentColorModel.class | Bin 0 -> 7615 bytes .../java/awt/image/ComponentSampleModel.class | Bin 0 -> 10746 bytes .../lib/java/awt/image/ConvolveOp.class | Bin 0 -> 5812 bytes .../lib/java/awt/image/CropImageFilter.class | Bin 0 -> 2690 bytes .../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 .../java/awt/image/FilteredImageSource.class | Bin 0 -> 1902 bytes .../lib/java/awt/image/ImageConsumer.class | Bin 0 -> 816 bytes .../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 .../java/awt/image/ImagingOpException.class | Bin 0 -> 447 bytes .../lib/java/awt/image/IndexColorModel.class | Bin 0 -> 7385 bytes .../classpath/lib/java/awt/image/Kernel.class | Bin 0 -> 1509 bytes .../lib/java/awt/image/LookupOp.class | Bin 0 -> 4856 bytes .../lib/java/awt/image/LookupTable.class | Bin 0 -> 688 bytes .../java/awt/image/MemoryImageSource.class | Bin 0 -> 6116 bytes .../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 .../image/PixelInterleavedSampleModel.class | Bin 0 -> 1024 bytes .../lib/java/awt/image/RGBImageFilter.class | Bin 0 -> 3344 bytes .../classpath/lib/java/awt/image/Raster.class | Bin 0 -> 11880 bytes .../awt/image/RasterFormatException.class | Bin 0 -> 456 bytes .../lib/java/awt/image/RasterOp.class | Bin 0 -> 545 bytes .../lib/java/awt/image/RenderedImage.class | Bin 0 -> 981 bytes .../java/awt/image/ReplicateScaleFilter.class | Bin 0 -> 3101 bytes .../lib/java/awt/image/RescaleOp.class | Bin 0 -> 5920 bytes .../lib/java/awt/image/SampleModel.class | Bin 0 -> 9352 bytes .../lib/java/awt/image/ShortLookupTable.class | Bin 0 -> 1417 bytes .../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 .../awt/image/WritableRenderedImage.class | Bin 0 -> 532 bytes .../ContextualRenderedImageFactory.class | Bin 0 -> 834 bytes .../awt/image/renderable/ParameterBlock.class | Bin 0 -> 7441 bytes .../awt/image/renderable/RenderContext.class | Bin 0 -> 2746 bytes .../image/renderable/RenderableImage.class | Bin 0 -> 827 bytes .../image/renderable/RenderableImageOp.class | Bin 0 -> 4519 bytes .../renderable/RenderableImageProducer.class | Bin 0 -> 4012 bytes .../renderable/RenderedImageFactory.class | Bin 0 -> 266 bytes .../lib/java/awt/peer/ButtonPeer.class | Bin 0 -> 193 bytes .../lib/java/awt/peer/CanvasPeer.class | Bin 0 -> 150 bytes .../java/awt/peer/CheckboxMenuItemPeer.class | Bin 0 -> 195 bytes .../lib/java/awt/peer/CheckboxPeer.class | Bin 0 -> 280 bytes .../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 .../lib/java/awt/peer/DialogPeer.class | Bin 0 -> 220 bytes .../lib/java/awt/peer/FileDialogPeer.class | Bin 0 -> 278 bytes .../lib/java/awt/peer/FontPeer.class | Bin 0 -> 111 bytes .../lib/java/awt/peer/FramePeer.class | Bin 0 -> 486 bytes .../lib/java/awt/peer/LabelPeer.class | Bin 0 -> 220 bytes .../lib/java/awt/peer/LightweightPeer.class | Bin 0 -> 160 bytes .../lib/java/awt/peer/ListPeer.class | Bin 0 -> 562 bytes .../lib/java/awt/peer/MenuBarPeer.class | Bin 0 -> 242 bytes .../lib/java/awt/peer/MenuComponentPeer.class | Bin 0 -> 192 bytes .../lib/java/awt/peer/MenuItemPeer.class | Bin 0 -> 270 bytes .../lib/java/awt/peer/MenuPeer.class | Bin 0 -> 242 bytes .../lib/java/awt/peer/MouseInfoPeer.class | Bin 0 -> 225 bytes .../lib/java/awt/peer/PanelPeer.class | Bin 0 -> 148 bytes .../lib/java/awt/peer/PopupMenuPeer.class | Bin 0 -> 224 bytes .../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 .../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 .../lib/java/awt/peer/WindowPeer.class | Bin 0 -> 254 bytes .../classpath/lib/java/awt/print/Book.class | Bin 0 -> 1689 bytes .../lib/java/awt/print/NoPrinterJob.class | Bin 0 -> 1976 bytes .../lib/java/awt/print/PageFormat.class | Bin 0 -> 2188 bytes .../lib/java/awt/print/Pageable.class | Bin 0 -> 398 bytes .../classpath/lib/java/awt/print/Paper.class | Bin 0 -> 1511 bytes .../lib/java/awt/print/Printable.class | Bin 0 -> 334 bytes .../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 .../java/awt/print/PrinterIOException.class | Bin 0 -> 873 bytes .../lib/java/awt/print/PrinterJob.class | Bin 0 -> 2499 bytes .../lib/java/beans/AppletInitializer.class | Bin 0 -> 254 bytes .../lib/java/beans/BeanDescriptor.class | Bin 0 -> 1332 bytes .../classpath/lib/java/beans/BeanInfo.class | Bin 0 -> 722 bytes libjava/classpath/lib/java/beans/Beans.class | Bin 0 -> 4626 bytes .../classpath/lib/java/beans/Customizer.class | Bin 0 -> 272 bytes .../beans/DefaultPersistenceDelegate.class | Bin 0 -> 3915 bytes .../classpath/lib/java/beans/DesignMode.class | Bin 0 -> 256 bytes .../classpath/lib/java/beans/Encoder$1.class | Bin 0 -> 623 bytes .../classpath/lib/java/beans/Encoder.class | Bin 0 -> 5974 bytes .../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 .../lib/java/beans/ExplicitInfo.class | Bin 0 -> 4484 bytes .../classpath/lib/java/beans/Expression.class | Bin 0 -> 1633 bytes .../lib/java/beans/FeatureDescriptor.class | Bin 0 -> 2393 bytes .../beans/IndexedPropertyChangeEvent.class | Bin 0 -> 811 bytes .../beans/IndexedPropertyDescriptor.class | Bin 0 -> 5909 bytes .../java/beans/IntrospectionException.class | Bin 0 -> 440 bytes .../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 .../java/beans/PropertyChangeListener.class | Bin 0 -> 230 bytes .../beans/PropertyChangeListenerProxy.class | Bin 0 -> 1124 bytes .../java/beans/PropertyChangeSupport.class | Bin 0 -> 7022 bytes .../lib/java/beans/PropertyDescriptor.class | Bin 0 -> 7963 bytes .../lib/java/beans/PropertyEditor.class | Bin 0 -> 727 bytes .../java/beans/PropertyEditorManager.class | Bin 0 -> 3761 bytes .../java/beans/PropertyEditorSupport.class | Bin 0 -> 2744 bytes .../java/beans/PropertyVetoException.class | Bin 0 -> 708 bytes .../lib/java/beans/SimpleBeanInfo.class | Bin 0 -> 1664 bytes .../classpath/lib/java/beans/Statement.class | Bin 0 -> 6040 bytes .../java/beans/VetoableChangeListener.class | Bin 0 -> 291 bytes .../beans/VetoableChangeListenerProxy.class | Bin 0 -> 1185 bytes .../java/beans/VetoableChangeSupport.class | Bin 0 -> 6761 bytes .../classpath/lib/java/beans/Visibility.class | Bin 0 -> 207 bytes .../classpath/lib/java/beans/XMLDecoder.class | Bin 0 -> 2926 bytes .../classpath/lib/java/beans/XMLEncoder.class | Bin 0 -> 3443 bytes .../java/beans/beancontext/BeanContext.class | Bin 0 -> 983 bytes .../beans/beancontext/BeanContextChild.class | Bin 0 -> 598 bytes .../BeanContextChildComponentProxy.class | Bin 0 -> 212 bytes .../beancontext/BeanContextChildSupport.class | Bin 0 -> 4168 bytes .../BeanContextContainerProxy.class | Bin 0 -> 202 bytes .../beans/beancontext/BeanContextEvent.class | Bin 0 -> 1031 bytes .../BeanContextMembershipEvent.class | Bin 0 -> 1426 bytes .../BeanContextMembershipListener.class | Bin 0 -> 300 bytes .../beans/beancontext/BeanContextProxy.class | Bin 0 -> 212 bytes .../BeanContextServiceAvailableEvent.class | Bin 0 -> 1228 bytes .../BeanContextServiceProvider.class | Bin 0 -> 531 bytes .../BeanContextServiceProviderBeanInfo.class | Bin 0 -> 256 bytes .../BeanContextServiceRevokedEvent.class | Bin 0 -> 1387 bytes .../BeanContextServiceRevokedListener.class | Bin 0 -> 287 bytes .../beancontext/BeanContextServices.class | Bin 0 -> 1130 bytes .../BeanContextServicesListener.class | Bin 0 -> 312 bytes ...BeanContextServicesSupport$BCSSChild.class | Bin 0 -> 892 bytes ...icesSupport$BCSSProxyServiceProvider.class | Bin 0 -> 2093 bytes ...tServicesSupport$BCSSServiceProvider.class | Bin 0 -> 1471 bytes .../BeanContextServicesSupport$Request.class | Bin 0 -> 837 bytes ...nContextServicesSupport$ServiceLease.class | Bin 0 -> 996 bytes ...ontextServicesSupport$ServiceRequest.class | Bin 0 -> 1145 bytes .../BeanContextServicesSupport.class | Bin 0 -> 12765 bytes .../BeanContextSupport$BCSChild.class | Bin 0 -> 1055 bytes .../BeanContextSupport$BCSIterator.class | Bin 0 -> 829 bytes .../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 .../lib/java/io/BufferedReader.class | Bin 0 -> 5190 bytes .../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 .../lib/java/io/CharArrayReader.class | Bin 0 -> 2503 bytes .../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 .../lib/java/io/DataInputStream.class | Bin 0 -> 5170 bytes .../classpath/lib/java/io/DataOutput.class | Bin 0 -> 623 bytes .../lib/java/io/DataOutputStream.class | Bin 0 -> 3626 bytes .../lib/java/io/DeleteFileHelper$1.class | Bin 0 -> 739 bytes .../lib/java/io/DeleteFileHelper.class | Bin 0 -> 1228 bytes .../classpath/lib/java/io/EOFException.class | Bin 0 -> 489 bytes .../lib/java/io/Externalizable.class | Bin 0 -> 345 bytes libjava/classpath/lib/java/io/File.class | Bin 0 -> 13330 bytes .../lib/java/io/FileDescriptor.class | Bin 0 -> 1346 bytes .../classpath/lib/java/io/FileFilter.class | Bin 0 -> 146 bytes .../lib/java/io/FileInputStream.class | Bin 0 -> 3029 bytes .../lib/java/io/FileNotFoundException.class | Bin 0 -> 516 bytes .../lib/java/io/FileOutputStream.class | Bin 0 -> 2903 bytes .../lib/java/io/FilePermission.class | Bin 0 -> 3406 bytes .../classpath/lib/java/io/FileReader.class | Bin 0 -> 774 bytes .../classpath/lib/java/io/FileWriter.class | Bin 0 -> 1099 bytes .../lib/java/io/FilenameFilter.class | Bin 0 -> 172 bytes .../lib/java/io/FilterInputStream.class | Bin 0 -> 1405 bytes .../lib/java/io/FilterOutputStream.class | Bin 0 -> 1060 bytes .../classpath/lib/java/io/FilterReader.class | Bin 0 -> 1350 bytes .../classpath/lib/java/io/FilterWriter.class | Bin 0 -> 1112 bytes libjava/classpath/lib/java/io/Flushable.class | Bin 0 -> 177 bytes .../classpath/lib/java/io/IOException.class | Bin 0 -> 486 bytes .../classpath/lib/java/io/InputStream.class | Bin 0 -> 1659 bytes .../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 .../lib/java/io/LineNumberReader.class | Bin 0 -> 3594 bytes .../lib/java/io/NotActiveException.class | Bin 0 -> 517 bytes .../java/io/NotSerializableException.class | Bin 0 -> 535 bytes .../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 .../java/io/ObjectInputStream$GetField.class | Bin 0 -> 1025 bytes ...jectInputStream$ValidatorAndPriority.class | Bin 0 -> 786 bytes .../lib/java/io/ObjectInputStream.class | Bin 0 -> 29187 bytes .../lib/java/io/ObjectInputValidation.class | Bin 0 -> 221 bytes .../classpath/lib/java/io/ObjectOutput.class | Bin 0 -> 378 bytes .../lib/java/io/ObjectOutputStream$1.class | Bin 0 -> 4699 bytes .../java/io/ObjectOutputStream$PutField.class | Bin 0 -> 818 bytes .../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 ...bjectStreamClass$InterfaceComparator.class | Bin 0 -> 862 bytes .../ObjectStreamClass$MemberComparator.class | Bin 0 -> 1121 bytes .../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 .../lib/java/io/ObjectStreamField.class | Bin 0 -> 6794 bytes .../lib/java/io/OptionalDataException.class | Bin 0 -> 498 bytes .../classpath/lib/java/io/OutputStream.class | Bin 0 -> 1018 bytes .../lib/java/io/OutputStreamWriter.class | Bin 0 -> 3952 bytes .../lib/java/io/PipedInputStream.class | Bin 0 -> 2836 bytes .../lib/java/io/PipedOutputStream.class | Bin 0 -> 1518 bytes .../classpath/lib/java/io/PipedReader.class | Bin 0 -> 2980 bytes .../classpath/lib/java/io/PipedWriter.class | Bin 0 -> 1514 bytes .../classpath/lib/java/io/PrintStream.class | Bin 0 -> 7581 bytes .../classpath/lib/java/io/PrintWriter.class | Bin 0 -> 7841 bytes .../lib/java/io/PushbackInputStream.class | Bin 0 -> 2552 bytes .../lib/java/io/PushbackReader.class | Bin 0 -> 3232 bytes .../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 .../classpath/lib/java/io/Serializable.class | Bin 0 -> 113 bytes .../lib/java/io/SerializablePermission.class | Bin 0 -> 1169 bytes .../java/io/StreamCorruptedException.class | Bin 0 -> 535 bytes .../lib/java/io/StreamTokenizer.class | Bin 0 -> 6870 bytes .../lib/java/io/StringBufferInputStream.class | Bin 0 -> 1413 bytes .../classpath/lib/java/io/StringReader.class | Bin 0 -> 2210 bytes .../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 .../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 .../classpath/lib/java/lang/Appendable.class | Bin 0 -> 344 bytes .../lib/java/lang/ArithmeticException.class | Bin 0 -> 515 bytes .../lang/ArrayIndexOutOfBoundsException.class | Bin 0 -> 827 bytes .../lib/java/lang/ArrayStoreException.class | Bin 0 -> 515 bytes .../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 .../lib/java/lang/CharSequence.class | Bin 0 -> 257 bytes .../lib/java/lang/Character$Subset.class | Bin 0 -> 795 bytes .../java/lang/Character$UnicodeBlock.class | Bin 0 -> 17734 bytes .../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 .../lib/java/lang/ClassFormatError.class | Bin 0 -> 502 bytes .../lang/ClassLoader$AnnotationsKey.class | Bin 0 -> 1160 bytes .../classpath/lib/java/lang/ClassLoader.class | Bin 0 -> 11539 bytes .../java/lang/ClassNotFoundException.class | Bin 0 -> 894 bytes .../lang/CloneNotSupportedException.class | Bin 0 -> 529 bytes .../classpath/lib/java/lang/Cloneable.class | Bin 0 -> 109 bytes .../classpath/lib/java/lang/Comparable.class | Bin 0 -> 235 bytes .../classpath/lib/java/lang/Compiler.class | Bin 0 -> 993 bytes .../classpath/lib/java/lang/Deprecated.class | Bin 0 -> 331 bytes libjava/classpath/lib/java/lang/Double.class | Bin 0 -> 4562 bytes .../classpath/lib/java/lang/EcosProcess.class | Bin 0 -> 1047 bytes libjava/classpath/lib/java/lang/Enum.class | Bin 0 -> 2931 bytes .../EnumConstantNotPresentException.class | Bin 0 -> 1266 bytes libjava/classpath/lib/java/lang/Error.class | Bin 0 -> 753 bytes .../classpath/lib/java/lang/Exception.class | Bin 0 -> 765 bytes .../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 .../java/lang/IllegalAccessException.class | Bin 0 -> 517 bytes .../java/lang/IllegalArgumentException.class | Bin 0 -> 827 bytes .../lang/IllegalMonitorStateException.class | Bin 0 -> 542 bytes .../lib/java/lang/IllegalStateException.class | Bin 0 -> 818 bytes .../lang/IllegalThreadStateException.class | Bin 0 -> 547 bytes .../lang/IncompatibleClassChangeError.class | Bin 0 -> 538 bytes .../java/lang/IndexOutOfBoundsException.class | Bin 0 -> 533 bytes .../java/lang/InheritableThreadLocal.class | Bin 0 -> 1623 bytes .../lib/java/lang/InstantiationError.class | Bin 0 -> 524 bytes .../java/lang/InstantiationException.class | Bin 0 -> 517 bytes libjava/classpath/lib/java/lang/Integer.class | Bin 0 -> 6722 bytes .../lib/java/lang/InternalError.class | Bin 0 -> 500 bytes .../lib/java/lang/InterruptedException.class | Bin 0 -> 511 bytes .../classpath/lib/java/lang/Iterable.class | Bin 0 -> 252 bytes .../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 .../lang/NegativeArraySizeException.class | Bin 0 -> 536 bytes .../lib/java/lang/NoClassDefFoundError.class | Bin 0 -> 514 bytes .../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 .../lib/java/lang/OutOfMemoryError.class | Bin 0 -> 509 bytes .../classpath/lib/java/lang/Override.class | Bin 0 -> 378 bytes libjava/classpath/lib/java/lang/Package.class | Bin 0 -> 5278 bytes .../lang/PosixProcess$EOFInputStream.class | Bin 0 -> 567 bytes .../lang/PosixProcess$ProcessManager.class | Bin 0 -> 2643 bytes .../lib/java/lang/PosixProcess.class | Bin 0 -> 4143 bytes libjava/classpath/lib/java/lang/Process.class | Bin 0 -> 520 bytes .../lib/java/lang/ProcessBuilder.class | Bin 0 -> 2592 bytes .../classpath/lib/java/lang/Readable.class | Bin 0 -> 197 bytes .../classpath/lib/java/lang/Runnable.class | Bin 0 -> 127 bytes libjava/classpath/lib/java/lang/Runtime.class | Bin 0 -> 6772 bytes .../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 .../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 .../classpath/lib/java/lang/StrictMath.class | Bin 0 -> 24574 bytes .../String$CaseInsensitiveComparator.class | Bin 0 -> 743 bytes libjava/classpath/lib/java/lang/String.class | Bin 0 -> 9041 bytes .../lib/java/lang/StringBuffer.class | Bin 0 -> 10367 bytes .../lib/java/lang/StringBuilder.class | Bin 0 -> 9663 bytes .../StringIndexOutOfBoundsException.class | Bin 0 -> 831 bytes .../lib/java/lang/SuppressWarnings.class | Bin 0 -> 509 bytes .../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 .../lib/java/lang/Thread$State.class | Bin 0 -> 1242 bytes .../Thread$UncaughtExceptionHandler.class | Bin 0 -> 281 bytes libjava/classpath/lib/java/lang/Thread.class | Bin 0 -> 9327 bytes .../classpath/lib/java/lang/ThreadDeath.class | Bin 0 -> 345 bytes .../classpath/lib/java/lang/ThreadGroup.class | Bin 0 -> 8558 bytes .../classpath/lib/java/lang/ThreadLocal.class | Bin 0 -> 1704 bytes .../lib/java/lang/Throwable$StaticData.class | Bin 0 -> 598 bytes .../classpath/lib/java/lang/Throwable.class | Bin 0 -> 4594 bytes .../java/lang/TypeNotPresentException.class | Bin 0 -> 828 bytes .../lib/java/lang/UnknownError.class | Bin 0 -> 497 bytes .../lib/java/lang/UnsatisfiedLinkError.class | Bin 0 -> 514 bytes .../lang/UnsupportedClassVersionError.class | Bin 0 -> 542 bytes .../lang/UnsupportedOperationException.class | Bin 0 -> 842 bytes .../lib/java/lang/VMClassLoader.class | Bin 0 -> 5495 bytes .../classpath/lib/java/lang/VMCompiler.class | Bin 0 -> 6666 bytes .../classpath/lib/java/lang/VMDouble.class | Bin 0 -> 457 bytes libjava/classpath/lib/java/lang/VMFloat.class | Bin 0 -> 358 bytes .../classpath/lib/java/lang/VMThrowable.class | Bin 0 -> 476 bytes .../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 .../lib/java/lang/Win32Process.class | Bin 0 -> 1711 bytes .../lib/java/lang/annotation/Annotation.class | Bin 0 -> 355 bytes .../annotation/AnnotationFormatError.class | Bin 0 -> 744 bytes .../AnnotationTypeMismatchException.class | Bin 0 -> 821 bytes .../lib/java/lang/annotation/Documented.class | Bin 0 -> 342 bytes .../java/lang/annotation/ElementType.class | Bin 0 -> 1451 bytes .../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 .../lang/annotation/RetentionPolicy.class | Bin 0 -> 1186 bytes .../lib/java/lang/annotation/Target.class | Bin 0 -> 483 bytes .../lang/instrument/ClassDefinition.class | Bin 0 -> 875 bytes .../instrument/ClassFileTransformer.class | Bin 0 -> 460 bytes .../IllegalClassFormatException.class | Bin 0 -> 554 bytes .../lang/instrument/Instrumentation.class | Bin 0 -> 690 bytes .../UnmodifiableClassException.class | Bin 0 -> 551 bytes .../lang/management/ClassLoadingMXBean.class | Bin 0 -> 301 bytes .../lang/management/CompilationMXBean.class | Bin 0 -> 270 bytes .../management/GarbageCollectorMXBean.class | Bin 0 -> 257 bytes .../lang/management/ManagementFactory.class | Bin 0 -> 8693 bytes .../management/ManagementPermission.class | Bin 0 -> 864 bytes .../java/lang/management/MemoryMXBean.class | Bin 0 -> 349 bytes .../lang/management/MemoryManagerMXBean.class | Bin 0 -> 258 bytes .../management/MemoryNotificationInfo.class | Bin 0 -> 2259 bytes .../lang/management/MemoryPoolMXBean.class | Bin 0 -> 835 bytes .../lib/java/lang/management/MemoryType.class | Bin 0 -> 1030 bytes .../java/lang/management/MemoryUsage.class | Bin 0 -> 3061 bytes .../management/OperatingSystemMXBean.class | Bin 0 -> 263 bytes .../java/lang/management/RuntimeMXBean.class | Bin 0 -> 731 bytes .../lib/java/lang/management/ThreadInfo.class | Bin 0 -> 7798 bytes .../java/lang/management/ThreadMXBean.class | Bin 0 -> 1008 bytes .../lang/management/VMManagementFactory.class | Bin 0 -> 444 bytes .../lib/java/lang/ref/PhantomReference.class | Bin 0 -> 848 bytes .../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 .../java/lang/reflect/AccessibleObject.class | Bin 0 -> 2646 bytes .../java/lang/reflect/AnnotatedElement.class | Bin 0 -> 515 bytes .../lib/java/lang/reflect/Array.class | Bin 0 -> 2431 bytes .../lib/java/lang/reflect/Constructor.class | Bin 0 -> 6252 bytes .../lib/java/lang/reflect/Field.class | Bin 0 -> 8309 bytes .../java/lang/reflect/GenericArrayType.class | Bin 0 -> 224 bytes .../lang/reflect/GenericDeclaration.class | Bin 0 -> 262 bytes .../reflect/GenericSignatureFormatError.class | Bin 0 -> 420 bytes .../java/lang/reflect/InvocationHandler.class | Bin 0 -> 284 bytes .../reflect/InvocationTargetException.class | Bin 0 -> 985 bytes .../MalformedParameterizedTypeException.class | Bin 0 -> 444 bytes .../lib/java/lang/reflect/Member.class | Bin 0 -> 341 bytes .../lib/java/lang/reflect/Method.class | Bin 0 -> 6176 bytes .../lib/java/lang/reflect/Modifier.class | Bin 0 -> 3197 bytes .../java/lang/reflect/ParameterizedType.class | Bin 0 -> 299 bytes .../lang/reflect/Proxy$ClassFactory.class | Bin 0 -> 11555 bytes .../java/lang/reflect/Proxy$ProxyData.class | Bin 0 -> 4102 bytes .../lang/reflect/Proxy$ProxySignature.class | Bin 0 -> 3655 bytes .../java/lang/reflect/Proxy$ProxyType.class | Bin 0 -> 997 bytes .../lib/java/lang/reflect/Proxy.class | Bin 0 -> 4465 bytes .../java/lang/reflect/ReflectPermission.class | Bin 0 -> 599 bytes .../lib/java/lang/reflect/Type.class | Bin 0 -> 107 bytes .../lib/java/lang/reflect/TypeVariable.class | Bin 0 -> 443 bytes .../UndeclaredThrowableException.class | Bin 0 -> 939 bytes .../lib/java/lang/reflect/VMProxy.class | Bin 0 -> 1005 bytes .../lib/java/lang/reflect/WildcardType.class | Bin 0 -> 233 bytes .../classpath/lib/java/math/BigDecimal.class | Bin 0 -> 18062 bytes .../classpath/lib/java/math/BigInteger.class | Bin 0 -> 30692 bytes .../classpath/lib/java/math/MathContext.class | Bin 0 -> 2676 bytes .../lib/java/math/RoundingMode.class | Bin 0 -> 1970 bytes .../lib/java/net/Authenticator.class | Bin 0 -> 2399 bytes .../lib/java/net/BindException.class | Bin 0 -> 499 bytes .../lib/java/net/ConnectException.class | Bin 0 -> 508 bytes .../lib/java/net/ContentHandler.class | Bin 0 -> 811 bytes .../lib/java/net/ContentHandlerFactory.class | Bin 0 -> 211 bytes .../lib/java/net/DatagramPacket.class | Bin 0 -> 3557 bytes .../lib/java/net/DatagramSocket.class | Bin 0 -> 9962 bytes .../lib/java/net/DatagramSocketImpl.class | Bin 0 -> 1571 bytes .../java/net/DatagramSocketImplFactory.class | Bin 0 -> 209 bytes .../classpath/lib/java/net/FileNameMap.class | Bin 0 -> 181 bytes .../lib/java/net/HttpURLConnection.class | Bin 0 -> 5717 bytes .../classpath/lib/java/net/Inet4Address.class | Bin 0 -> 2735 bytes .../classpath/lib/java/net/Inet6Address.class | Bin 0 -> 5032 bytes .../classpath/lib/java/net/InetAddress.class | Bin 0 -> 6300 bytes .../lib/java/net/InetSocketAddress.class | Bin 0 -> 2684 bytes .../lib/java/net/JarURLConnection.class | Bin 0 -> 2636 bytes .../lib/java/net/MalformedURLException.class | Bin 0 -> 518 bytes .../lib/java/net/MimeTypeMapper.class | Bin 0 -> 11230 bytes .../lib/java/net/MulticastSocket.class | Bin 0 -> 6058 bytes .../lib/java/net/NetPermission.class | Bin 0 -> 556 bytes .../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 .../java/net/PortUnreachableException.class | Bin 0 -> 532 bytes .../lib/java/net/ProtocolException.class | Bin 0 -> 506 bytes .../classpath/lib/java/net/Proxy$Type.class | Bin 0 -> 1121 bytes libjava/classpath/lib/java/net/Proxy.class | Bin 0 -> 1522 bytes .../lib/java/net/ProxySelector.class | Bin 0 -> 1266 bytes .../lib/java/net/ResolverCache$Entry.class | Bin 0 -> 732 bytes .../lib/java/net/ResolverCache.class | Bin 0 -> 3355 bytes .../classpath/lib/java/net/ServerSocket.class | Bin 0 -> 6796 bytes libjava/classpath/lib/java/net/Socket.class | Bin 0 -> 11073 bytes .../lib/java/net/SocketAddress.class | Bin 0 -> 378 bytes .../lib/java/net/SocketException.class | Bin 0 -> 500 bytes .../classpath/lib/java/net/SocketImpl.class | Bin 0 -> 2159 bytes .../lib/java/net/SocketImplFactory.class | Bin 0 -> 177 bytes .../lib/java/net/SocketOptions.class | Bin 0 -> 785 bytes .../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 .../lib/java/net/URLClassLoader$1.class | Bin 0 -> 1022 bytes .../lib/java/net/URLClassLoader$2.class | Bin 0 -> 908 bytes .../net/URLClassLoader$CoreResource.class | Bin 0 -> 1826 bytes .../net/URLClassLoader$CoreURLLoader.class | Bin 0 -> 1344 bytes .../net/URLClassLoader$FileResource.class | Bin 0 -> 1739 bytes .../net/URLClassLoader$FileURLLoader.class | Bin 0 -> 1278 bytes .../net/URLClassLoader$JarURLLoader.class | Bin 0 -> 3418 bytes .../net/URLClassLoader$JarURLResource.class | Bin 0 -> 2202 bytes .../net/URLClassLoader$RemoteResource.class | Bin 0 -> 1152 bytes .../net/URLClassLoader$RemoteURLLoader.class | Bin 0 -> 1724 bytes .../java/net/URLClassLoader$Resource.class | Bin 0 -> 1217 bytes .../java/net/URLClassLoader$SoResource.class | Bin 0 -> 1097 bytes .../java/net/URLClassLoader$SoURLLoader.class | Bin 0 -> 1625 bytes .../java/net/URLClassLoader$URLLoader.class | Bin 0 -> 1354 bytes .../lib/java/net/URLClassLoader.class | Bin 0 -> 14234 bytes .../lib/java/net/URLConnection.class | Bin 0 -> 11321 bytes .../classpath/lib/java/net/URLDecoder.class | Bin 0 -> 1781 bytes .../classpath/lib/java/net/URLEncoder.class | Bin 0 -> 1842 bytes .../lib/java/net/URLStreamHandler.class | Bin 0 -> 6389 bytes .../java/net/URLStreamHandlerFactory.class | Bin 0 -> 219 bytes .../lib/java/net/UnknownHostException.class | Bin 0 -> 515 bytes .../java/net/UnknownServiceException.class | Bin 0 -> 524 bytes .../lib/java/net/VMInetAddress.class | Bin 0 -> 610 bytes .../lib/java/net/VMNetworkInterface.class | Bin 0 -> 397 bytes .../lib/java/net/VMURLConnection.class | Bin 0 -> 944 bytes libjava/classpath/lib/java/nio/Buffer.class | Bin 0 -> 2875 bytes .../java/nio/BufferOverflowException.class | Bin 0 -> 390 bytes .../java/nio/BufferUnderflowException.class | Bin 0 -> 393 bytes .../classpath/lib/java/nio/ByteBuffer.class | Bin 0 -> 5629 bytes .../lib/java/nio/ByteBufferHelper.class | Bin 0 -> 6390 bytes .../lib/java/nio/ByteBufferImpl.class | Bin 0 -> 7873 bytes .../classpath/lib/java/nio/ByteOrder.class | Bin 0 -> 838 bytes .../classpath/lib/java/nio/CharBuffer.class | Bin 0 -> 5915 bytes .../lib/java/nio/CharBufferImpl.class | Bin 0 -> 3360 bytes .../lib/java/nio/CharViewBufferImpl.class | Bin 0 -> 3286 bytes .../nio/DirectByteBufferImpl$ReadOnly.class | Bin 0 -> 938 bytes .../nio/DirectByteBufferImpl$ReadWrite.class | Bin 0 -> 862 bytes .../lib/java/nio/DirectByteBufferImpl.class | Bin 0 -> 8554 bytes .../classpath/lib/java/nio/DoubleBuffer.class | Bin 0 -> 3594 bytes .../lib/java/nio/DoubleBufferImpl.class | Bin 0 -> 2345 bytes .../lib/java/nio/DoubleViewBufferImpl.class | Bin 0 -> 2973 bytes .../classpath/lib/java/nio/FloatBuffer.class | Bin 0 -> 3548 bytes .../lib/java/nio/FloatBufferImpl.class | Bin 0 -> 2338 bytes .../lib/java/nio/FloatViewBufferImpl.class | Bin 0 -> 2961 bytes .../classpath/lib/java/nio/IntBuffer.class | Bin 0 -> 3421 bytes .../lib/java/nio/IntBufferImpl.class | Bin 0 -> 2314 bytes .../lib/java/nio/IntViewBufferImpl.class | Bin 0 -> 2931 bytes .../lib/java/nio/InvalidMarkException.class | Bin 0 -> 386 bytes .../classpath/lib/java/nio/LongBuffer.class | Bin 0 -> 3498 bytes .../lib/java/nio/LongBufferImpl.class | Bin 0 -> 2331 bytes .../lib/java/nio/LongViewBufferImpl.class | Bin 0 -> 2953 bytes .../lib/java/nio/MappedByteBuffer.class | Bin 0 -> 1069 bytes .../lib/java/nio/MappedByteBufferImpl.class | Bin 0 -> 8128 bytes .../java/nio/ReadOnlyBufferException.class | Bin 0 -> 403 bytes .../classpath/lib/java/nio/ShortBuffer.class | Bin 0 -> 3485 bytes .../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 .../channels/AlreadyConnectedException.class | Bin 0 -> 419 bytes .../channels/AsynchronousCloseException.class | Bin 0 -> 431 bytes .../lib/java/nio/channels/ByteChannel.class | Bin 0 -> 211 bytes .../nio/channels/CancelledKeyException.class | Bin 0 -> 407 bytes .../lib/java/nio/channels/Channel.class | Bin 0 -> 231 bytes .../lib/java/nio/channels/Channels.class | Bin 0 -> 2520 bytes .../channels/ClosedByInterruptException.class | Bin 0 -> 435 bytes .../nio/channels/ClosedChannelException.class | Bin 0 -> 398 bytes .../channels/ClosedSelectorException.class | Bin 0 -> 413 bytes .../channels/ConnectionPendingException.class | Bin 0 -> 422 bytes .../java/nio/channels/DatagramChannel.class | Bin 0 -> 1817 bytes .../nio/channels/FileChannel$MapMode.class | Bin 0 -> 786 bytes .../lib/java/nio/channels/FileChannel.class | Bin 0 -> 1821 bytes .../lib/java/nio/channels/FileLock.class | Bin 0 -> 1781 bytes .../FileLockInterruptionException.class | Bin 0 -> 419 bytes .../nio/channels/GatheringByteChannel.class | Bin 0 -> 324 bytes .../IllegalBlockingModeException.class | Bin 0 -> 428 bytes .../channels/IllegalSelectorException.class | Bin 0 -> 419 bytes .../nio/channels/InterruptibleChannel.class | Bin 0 -> 242 bytes .../NoConnectionPendingException.class | Bin 0 -> 428 bytes .../NonReadableChannelException.class | Bin 0 -> 425 bytes .../NonWritableChannelException.class | Bin 0 -> 425 bytes .../nio/channels/NotYetBoundException.class | Bin 0 -> 404 bytes .../channels/NotYetConnectedException.class | Bin 0 -> 416 bytes .../OverlappingFileLockException.class | Bin 0 -> 428 bytes .../java/nio/channels/Pipe$SinkChannel.class | Bin 0 -> 676 bytes .../nio/channels/Pipe$SourceChannel.class | Bin 0 -> 683 bytes .../lib/java/nio/channels/Pipe.class | Bin 0 -> 812 bytes .../nio/channels/ReadableByteChannel.class | Bin 0 -> 260 bytes .../nio/channels/ScatteringByteChannel.class | Bin 0 -> 325 bytes .../java/nio/channels/SelectableChannel.class | Bin 0 -> 1112 bytes .../lib/java/nio/channels/SelectionKey.class | Bin 0 -> 1347 bytes .../lib/java/nio/channels/Selector.class | Bin 0 -> 912 bytes .../nio/channels/ServerSocketChannel.class | Bin 0 -> 931 bytes .../lib/java/nio/channels/SocketChannel.class | Bin 0 -> 1857 bytes .../channels/UnresolvedAddressException.class | Bin 0 -> 425 bytes .../UnsupportedAddressTypeException.class | Bin 0 -> 440 bytes .../lib/java/nio/channels/VMChannels.class | Bin 0 -> 1129 bytes .../nio/channels/WritableByteChannel.class | Bin 0 -> 261 bytes .../spi/AbstractInterruptibleChannel.class | Bin 0 -> 980 bytes .../spi/AbstractSelectableChannel.class | Bin 0 -> 3883 bytes .../channels/spi/AbstractSelectionKey.class | Bin 0 -> 747 bytes .../nio/channels/spi/AbstractSelector.class | Bin 0 -> 2139 bytes .../nio/channels/spi/SelectorProvider.class | Bin 0 -> 2066 bytes .../charset/CharacterCodingException.class | Bin 0 -> 402 bytes .../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 .../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 .../java/nio/charset/CoderResult$Cache.class | Bin 0 -> 1220 bytes .../lib/java/nio/charset/CoderResult.class | Bin 0 -> 2826 bytes .../java/nio/charset/CodingErrorAction.class | Bin 0 -> 745 bytes .../charset/IllegalCharsetNameException.class | Bin 0 -> 623 bytes .../nio/charset/MalformedInputException.class | Bin 0 -> 834 bytes .../UnmappableCharacterException.class | Bin 0 -> 849 bytes .../charset/UnsupportedCharsetException.class | Bin 0 -> 623 bytes .../nio/charset/spi/CharsetProvider.class | Bin 0 -> 821 bytes .../lib/java/rmi/AccessException.class | Bin 0 -> 633 bytes .../lib/java/rmi/AlreadyBoundException.class | Bin 0 -> 512 bytes .../lib/java/rmi/ConnectException.class | Bin 0 -> 636 bytes .../lib/java/rmi/ConnectIOException.class | Bin 0 -> 642 bytes .../lib/java/rmi/MarshalException.class | Bin 0 -> 636 bytes .../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 .../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 .../lib/java/rmi/RemoteException.class | Bin 0 -> 1334 bytes .../classpath/lib/java/rmi/ServerError.class | Bin 0 -> 503 bytes .../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 .../activation/ActivateFailedException.class | Bin 0 -> 680 bytes .../java/rmi/activation/ActivationDesc.class | Bin 0 -> 2753 bytes .../rmi/activation/ActivationException.class | Bin 0 -> 1291 bytes .../java/rmi/activation/ActivationGroup.class | Bin 0 -> 5542 bytes ...tivationGroupDesc$CommandEnvironment.class | Bin 0 -> 1613 bytes .../rmi/activation/ActivationGroupDesc.class | Bin 0 -> 3895 bytes .../rmi/activation/ActivationGroupID.class | Bin 0 -> 1152 bytes .../rmi/activation/ActivationGroup_Stub.class | Bin 0 -> 1895 bytes .../java/rmi/activation/ActivationID.class | Bin 0 -> 2732 bytes .../activation/ActivationInstantiator.class | Bin 0 -> 392 bytes .../rmi/activation/ActivationMonitor.class | Bin 0 -> 557 bytes .../rmi/activation/ActivationSystem.class | Bin 0 -> 1571 bytes .../lib/java/rmi/activation/Activator.class | Bin 0 -> 378 bytes .../activation/UnknownGroupException.class | Bin 0 -> 473 bytes .../activation/UnknownObjectException.class | Bin 0 -> 476 bytes libjava/classpath/lib/java/rmi/dgc/DGC.class | Bin 0 -> 339 bytes .../classpath/lib/java/rmi/dgc/Lease.class | Bin 0 -> 1065 bytes libjava/classpath/lib/java/rmi/dgc/VMID.class | Bin 0 -> 1907 bytes .../java/rmi/registry/LocateRegistry.class | Bin 0 -> 2079 bytes .../lib/java/rmi/registry/Registry.class | Bin 0 -> 612 bytes .../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 .../lib/java/rmi/server/LogStream.class | Bin 0 -> 1851 bytes .../classpath/lib/java/rmi/server/ObjID.class | Bin 0 -> 2488 bytes .../lib/java/rmi/server/Operation.class | Bin 0 -> 595 bytes .../lib/java/rmi/server/RMIClassLoader.class | Bin 0 -> 3592 bytes .../java/rmi/server/RMIClassLoaderSpi.class | Bin 0 -> 1029 bytes .../rmi/server/RMIClientSocketFactory.class | Bin 0 -> 253 bytes .../java/rmi/server/RMIFailureHandler.class | Bin 0 -> 176 bytes .../rmi/server/RMIServerSocketFactory.class | Bin 0 -> 247 bytes .../java/rmi/server/RMISocketFactory.class | Bin 0 -> 1425 bytes .../lib/java/rmi/server/RemoteCall.class | Bin 0 -> 611 bytes .../lib/java/rmi/server/RemoteObject.class | Bin 0 -> 3766 bytes .../RemoteObjectInvocationHandler.class | Bin 0 -> 3872 bytes .../lib/java/rmi/server/RemoteRef.class | Bin 0 -> 894 bytes .../lib/java/rmi/server/RemoteServer.class | Bin 0 -> 1358 bytes .../lib/java/rmi/server/RemoteStub.class | Bin 0 -> 704 bytes .../rmi/server/ServerCloneException.class | Bin 0 -> 1307 bytes .../rmi/server/ServerNotActiveException.class | Bin 0 -> 535 bytes .../lib/java/rmi/server/ServerRef.class | Bin 0 -> 459 bytes .../lib/java/rmi/server/Skeleton.class | Bin 0 -> 321 bytes .../server/SkeletonMismatchException.class | Bin 0 -> 487 bytes .../server/SkeletonNotFoundException.class | Bin 0 -> 696 bytes .../rmi/server/SocketSecurityException.class | Bin 0 -> 633 bytes .../classpath/lib/java/rmi/server/UID.class | Bin 0 -> 2816 bytes .../java/rmi/server/UnicastRemoteObject.class | Bin 0 -> 3032 bytes .../lib/java/rmi/server/Unreferenced.class | Bin 0 -> 150 bytes .../java/security/AccessControlContext.class | Bin 0 -> 3506 bytes .../security/AccessControlException.class | Bin 0 -> 772 bytes .../lib/java/security/AccessController.class | Bin 0 -> 2821 bytes .../AlgorithmParameterGenerator.class | Bin 0 -> 4329 bytes .../AlgorithmParameterGeneratorSpi.class | Bin 0 -> 640 bytes .../java/security/AlgorithmParameters.class | Bin 0 -> 4550 bytes .../security/AlgorithmParametersSpi.class | Bin 0 -> 906 bytes ...llPermission$AllPermissionCollection.class | Bin 0 -> 1510 bytes .../lib/java/security/AllPermission.class | Bin 0 -> 1336 bytes ...Permission$BasicPermissionCollection.class | Bin 0 -> 2446 bytes .../lib/java/security/BasicPermission.class | Bin 0 -> 1944 bytes .../lib/java/security/Certificate.class | Bin 0 -> 534 bytes .../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 .../java/security/DigestOutputStream.class | Bin 0 -> 1649 bytes .../lib/java/security/DomainCombiner.class | Bin 0 -> 245 bytes .../java/security/DummyKeyPairGenerator.class | Bin 0 -> 1628 bytes .../java/security/DummyMessageDigest.class | Bin 0 -> 1719 bytes .../lib/java/security/DummySignature.class | Bin 0 -> 2336 bytes .../security/GeneralSecurityException.class | Bin 0 -> 824 bytes .../classpath/lib/java/security/Guard.class | Bin 0 -> 150 bytes .../lib/java/security/GuardedObject.class | Bin 0 -> 1062 bytes .../lib/java/security/Identity.class | Bin 0 -> 4357 bytes .../lib/java/security/IdentityScope.class | Bin 0 -> 2238 bytes .../security/IntersectingDomainCombiner.class | Bin 0 -> 1156 bytes .../InvalidAlgorithmParameterException.class | Bin 0 -> 873 bytes .../java/security/InvalidKeyException.class | Bin 0 -> 816 bytes .../security/InvalidParameterException.class | Bin 0 -> 551 bytes libjava/classpath/lib/java/security/Key.class | Bin 0 -> 287 bytes .../lib/java/security/KeyException.class | Bin 0 -> 807 bytes .../lib/java/security/KeyFactory.class | Bin 0 -> 4252 bytes .../lib/java/security/KeyFactorySpi.class | Bin 0 -> 886 bytes .../security/KeyManagementException.class | Bin 0 -> 825 bytes .../classpath/lib/java/security/KeyPair.class | Bin 0 -> 791 bytes .../lib/java/security/KeyPairGenerator.class | Bin 0 -> 4574 bytes .../java/security/KeyPairGeneratorSpi.class | Bin 0 -> 961 bytes .../lib/java/security/KeyStore.class | Bin 0 -> 6138 bytes .../lib/java/security/KeyStoreException.class | Bin 0 -> 822 bytes .../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 .../security/NoSuchAlgorithmException.class | Bin 0 -> 843 bytes .../security/NoSuchProviderException.class | Bin 0 -> 549 bytes .../lib/java/security/Permission.class | Bin 0 -> 1670 bytes .../java/security/PermissionCollection.class | Bin 0 -> 1550 bytes .../lib/java/security/Permissions$1.class | Bin 0 -> 1225 bytes .../Permissions$PermissionsHash.class | Bin 0 -> 1401 bytes .../lib/java/security/Permissions.class | Bin 0 -> 1988 bytes .../classpath/lib/java/security/Policy.class | Bin 0 -> 3648 bytes .../lib/java/security/Principal.class | Bin 0 -> 239 bytes .../lib/java/security/PrivateKey.class | Bin 0 -> 204 bytes .../lib/java/security/PrivilegedAction.class | Bin 0 -> 243 bytes .../security/PrivilegedActionException.class | Bin 0 -> 830 bytes .../security/PrivilegedExceptionAction.class | Bin 0 -> 309 bytes .../lib/java/security/ProtectionDomain.class | Bin 0 -> 3502 bytes .../lib/java/security/Provider.class | Bin 0 -> 2473 bytes .../lib/java/security/ProviderException.class | Bin 0 -> 810 bytes .../lib/java/security/PublicKey.class | Bin 0 -> 202 bytes .../lib/java/security/SecureClassLoader.class | Bin 0 -> 2507 bytes .../lib/java/security/SecureRandom.class | Bin 0 -> 7756 bytes .../lib/java/security/SecureRandomSpi.class | Bin 0 -> 489 bytes .../lib/java/security/Security.class | Bin 0 -> 11241 bytes .../java/security/SecurityPermission.class | Bin 0 -> 583 bytes .../lib/java/security/Signature.class | Bin 0 -> 7379 bytes .../java/security/SignatureException.class | Bin 0 -> 825 bytes .../lib/java/security/SignatureSpi.class | Bin 0 -> 2716 bytes .../lib/java/security/SignedObject.class | Bin 0 -> 2675 bytes .../classpath/lib/java/security/Signer.class | Bin 0 -> 2154 bytes .../security/UnrecoverableKeyException.class | Bin 0 -> 555 bytes .../java/security/UnresolvedPermission.class | Bin 0 -> 2332 bytes .../UnresolvedPermissionCollection$1.class | Bin 0 -> 1297 bytes .../UnresolvedPermissionCollection.class | Bin 0 -> 1616 bytes .../java/security/VMAccessControlState.class | Bin 0 -> 816 bytes .../java/security/VMAccessController.class | Bin 0 -> 4797 bytes .../security/VMSecureRandom$Spinner.class | Bin 0 -> 808 bytes .../lib/java/security/VMSecureRandom.class | Bin 0 -> 1429 bytes .../classpath/lib/java/security/acl/Acl.class | Bin 0 -> 829 bytes .../lib/java/security/acl/AclEntry.class | Bin 0 -> 639 bytes .../security/acl/AclNotFoundException.class | Bin 0 -> 392 bytes .../lib/java/security/acl/Group.class | Bin 0 -> 355 bytes .../security/acl/LastOwnerException.class | Bin 0 -> 386 bytes .../java/security/acl/NotOwnerException.class | Bin 0 -> 383 bytes .../lib/java/security/acl/Owner.class | Bin 0 -> 373 bytes .../lib/java/security/acl/Permission.class | Bin 0 -> 202 bytes .../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 .../security/cert/CertPath$CertPathRep.class | Bin 0 -> 1562 bytes .../lib/java/security/cert/CertPath.class | Bin 0 -> 2633 bytes .../java/security/cert/CertPathBuilder.class | Bin 0 -> 3671 bytes .../cert/CertPathBuilderException.class | Bin 0 -> 1632 bytes .../security/cert/CertPathBuilderResult.class | Bin 0 -> 264 bytes .../security/cert/CertPathBuilderSpi.class | Bin 0 -> 557 bytes .../security/cert/CertPathParameters.class | Bin 0 -> 202 bytes .../security/cert/CertPathValidator$1.class | Bin 0 -> 718 bytes .../security/cert/CertPathValidator.class | Bin 0 -> 3933 bytes .../cert/CertPathValidatorException.class | Bin 0 -> 2433 bytes .../cert/CertPathValidatorResult.class | Bin 0 -> 212 bytes .../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 .../security/cert/CertStoreException.class | Bin 0 -> 1614 bytes .../security/cert/CertStoreParameters.class | Bin 0 -> 204 bytes .../lib/java/security/cert/CertStoreSpi.class | Bin 0 -> 935 bytes .../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 .../security/cert/CertificateException.class | Bin 0 -> 841 bytes .../cert/CertificateExpiredException.class | Bin 0 -> 572 bytes .../security/cert/CertificateFactory.class | Bin 0 -> 4794 bytes .../security/cert/CertificateFactorySpi.class | Bin 0 -> 1972 bytes .../CertificateNotYetValidException.class | Bin 0 -> 584 bytes .../cert/CertificateParsingException.class | Bin 0 -> 863 bytes .../cert/CollectionCertStoreParameters.class | Bin 0 -> 1491 bytes .../cert/LDAPCertStoreParameters.class | Bin 0 -> 1450 bytes .../security/cert/PKIXBuilderParameters.class | Bin 0 -> 1961 bytes .../cert/PKIXCertPathBuilderResult.class | Bin 0 -> 1549 bytes .../security/cert/PKIXCertPathChecker.class | Bin 0 -> 1117 bytes .../cert/PKIXCertPathValidatorResult.class | Bin 0 -> 1691 bytes .../java/security/cert/PKIXParameters.class | Bin 0 -> 8202 bytes .../lib/java/security/cert/PolicyNode.class | Bin 0 -> 601 bytes .../security/cert/PolicyQualifierInfo.class | Bin 0 -> 2039 bytes .../lib/java/security/cert/TrustAnchor.class | Bin 0 -> 2116 bytes .../lib/java/security/cert/X509CRL.class | Bin 0 -> 1939 bytes .../lib/java/security/cert/X509CRLEntry.class | Bin 0 -> 1053 bytes .../java/security/cert/X509CRLSelector.class | Bin 0 -> 6627 bytes .../java/security/cert/X509CertSelector.class | Bin 0 -> 13958 bytes .../java/security/cert/X509Certificate.class | Bin 0 -> 2025 bytes .../java/security/cert/X509Extension.class | Bin 0 -> 388 bytes .../lib/java/security/interfaces/DSAKey.class | Bin 0 -> 179 bytes .../interfaces/DSAKeyPairGenerator.class | Bin 0 -> 357 bytes .../java/security/interfaces/DSAParams.class | Bin 0 -> 196 bytes .../security/interfaces/DSAPrivateKey.class | Bin 0 -> 309 bytes .../security/interfaces/DSAPublicKey.class | Bin 0 -> 306 bytes .../lib/java/security/interfaces/RSAKey.class | Bin 0 -> 166 bytes .../RSAMultiPrimePrivateCrtKey.class | Bin 0 -> 519 bytes .../interfaces/RSAPrivateCrtKey.class | Bin 0 -> 427 bytes .../security/interfaces/RSAPrivateKey.class | Bin 0 -> 323 bytes .../security/interfaces/RSAPublicKey.class | Bin 0 -> 319 bytes .../spec/AlgorithmParameterSpec.class | Bin 0 -> 144 bytes .../java/security/spec/DSAParameterSpec.class | Bin 0 -> 884 bytes .../security/spec/DSAPrivateKeySpec.class | Bin 0 -> 971 bytes .../java/security/spec/DSAPublicKeySpec.class | Bin 0 -> 968 bytes .../java/security/spec/EncodedKeySpec.class | Bin 0 -> 530 bytes .../spec/InvalidKeySpecException.class | Bin 0 -> 850 bytes .../spec/InvalidParameterSpecException.class | Bin 0 -> 577 bytes .../lib/java/security/spec/KeySpec.class | Bin 0 -> 114 bytes .../security/spec/PKCS8EncodedKeySpec.class | Bin 0 -> 569 bytes .../java/security/spec/PSSParameterSpec.class | Bin 0 -> 570 bytes .../spec/RSAKeyGenParameterSpec.class | Bin 0 -> 943 bytes .../spec/RSAMultiPrimePrivateCrtKeySpec.class | Bin 0 -> 2190 bytes .../security/spec/RSAOtherPrimeInfo.class | Bin 0 -> 967 bytes .../security/spec/RSAPrivateCrtKeySpec.class | Bin 0 -> 1458 bytes .../security/spec/RSAPrivateKeySpec.class | Bin 0 -> 712 bytes .../java/security/spec/RSAPublicKeySpec.class | Bin 0 -> 707 bytes .../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 .../lib/java/sql/CallableStatement.class | Bin 0 -> 4652 bytes libjava/classpath/lib/java/sql/Clob.class | Bin 0 -> 704 bytes .../classpath/lib/java/sql/Connection.class | Bin 0 -> 2469 bytes .../lib/java/sql/DataTruncation.class | Bin 0 -> 1072 bytes .../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 .../lib/java/sql/DriverManager.class | Bin 0 -> 4441 bytes .../lib/java/sql/DriverPropertyInfo.class | Bin 0 -> 538 bytes .../lib/java/sql/ParameterMetaData.class | Bin 0 -> 824 bytes .../lib/java/sql/PreparedStatement.class | Bin 0 -> 1974 bytes libjava/classpath/lib/java/sql/Ref.class | Bin 0 -> 456 bytes .../classpath/lib/java/sql/ResultSet.class | Bin 0 -> 7255 bytes .../lib/java/sql/ResultSetMetaData.class | Bin 0 -> 1067 bytes libjava/classpath/lib/java/sql/SQLData.class | Bin 0 -> 328 bytes .../classpath/lib/java/sql/SQLException.class | Bin 0 -> 1367 bytes libjava/classpath/lib/java/sql/SQLInput.class | Bin 0 -> 1192 bytes .../classpath/lib/java/sql/SQLOutput.class | Bin 0 -> 1264 bytes .../lib/java/sql/SQLPermission.class | Bin 0 -> 505 bytes .../classpath/lib/java/sql/SQLWarning.class | Bin 0 -> 1151 bytes .../classpath/lib/java/sql/Savepoint.class | Bin 0 -> 249 bytes .../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 .../classpath/lib/java/sql/Timestamp.class | Bin 0 -> 3826 bytes libjava/classpath/lib/java/sql/Types.class | Bin 0 -> 1194 bytes .../classpath/lib/java/text/Annotation.class | Bin 0 -> 924 bytes ...ttributedCharacterIterator$Attribute.class | Bin 0 -> 1922 bytes .../text/AttributedCharacterIterator.class | Bin 0 -> 900 bytes .../AttributedString$AttributeRange.class | Bin 0 -> 689 bytes .../lib/java/text/AttributedString.class | Bin 0 -> 5877 bytes .../java/text/AttributedStringIterator.class | Bin 0 -> 5196 bytes libjava/classpath/lib/java/text/Bidi.class | Bin 0 -> 10729 bytes .../lib/java/text/BreakIterator.class | Bin 0 -> 3564 bytes .../lib/java/text/CharacterIterator.class | Bin 0 -> 488 bytes .../lib/java/text/ChoiceFormat.class | Bin 0 -> 5710 bytes .../java/text/CollationElementIterator.class | Bin 0 -> 5230 bytes .../lib/java/text/CollationKey.class | Bin 0 -> 1695 bytes .../classpath/lib/java/text/Collator.class | Bin 0 -> 3454 bytes .../lib/java/text/DateFormat$Field.class | Bin 0 -> 3570 bytes .../classpath/lib/java/text/DateFormat.class | Bin 0 -> 8501 bytes .../lib/java/text/DateFormatSymbols.class | Bin 0 -> 5265 bytes .../lib/java/text/DecimalFormat.class | Bin 0 -> 23996 bytes .../lib/java/text/DecimalFormatSymbols.class | Bin 0 -> 6530 bytes .../lib/java/text/FieldPosition.class | Bin 0 -> 2447 bytes .../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 .../MessageFormat$MessageFormatElement.class | Bin 0 -> 2477 bytes .../lib/java/text/MessageFormat.class | Bin 0 -> 11574 bytes .../lib/java/text/NumberFormat$Field.class | Bin 0 -> 2098 bytes .../lib/java/text/NumberFormat.class | Bin 0 -> 8151 bytes .../lib/java/text/ParseException.class | Bin 0 -> 585 bytes .../lib/java/text/ParsePosition.class | Bin 0 -> 1546 bytes .../RuleBasedCollator$CollationElement.class | Bin 0 -> 925 bytes .../RuleBasedCollator$CollationSorter.class | Bin 0 -> 778 bytes .../lib/java/text/RuleBasedCollator.class | Bin 0 -> 10427 bytes .../text/SimpleDateFormat$CompiledField.class | Bin 0 -> 1491 bytes .../lib/java/text/SimpleDateFormat.class | Bin 0 -> 17953 bytes .../java/text/StringCharacterIterator.class | Bin 0 -> 2733 bytes .../lib/java/util/AbstractCollection.class | Bin 0 -> 4777 bytes .../lib/java/util/AbstractList$1.class | Bin 0 -> 2205 bytes .../lib/java/util/AbstractList$2.class | Bin 0 -> 1499 bytes .../lib/java/util/AbstractList$3.class | Bin 0 -> 2389 bytes .../AbstractList$RandomAccessSubList.class | Bin 0 -> 865 bytes .../lib/java/util/AbstractList$SubList.class | Bin 0 -> 3945 bytes .../lib/java/util/AbstractList.class | Bin 0 -> 4911 bytes .../lib/java/util/AbstractMap$1.class | Bin 0 -> 1129 bytes .../lib/java/util/AbstractMap$2.class | Bin 0 -> 1269 bytes .../lib/java/util/AbstractMap$3.class | Bin 0 -> 1154 bytes .../lib/java/util/AbstractMap$4.class | Bin 0 -> 1271 bytes .../java/util/AbstractMap$SimpleEntry.class | Bin 0 -> 2423 bytes .../AbstractMap$SimpleImmutableEntry.class | Bin 0 -> 1736 bytes .../classpath/lib/java/util/AbstractMap.class | Bin 0 -> 5285 bytes .../lib/java/util/AbstractQueue.class | Bin 0 -> 1965 bytes .../java/util/AbstractSequentialList.class | Bin 0 -> 2769 bytes .../classpath/lib/java/util/AbstractSet.class | Bin 0 -> 1708 bytes .../java/util/ArrayDeque$DeqIterator.class | Bin 0 -> 1664 bytes .../util/ArrayDeque$DescendingIterator.class | Bin 0 -> 1692 bytes .../classpath/lib/java/util/ArrayDeque.class | Bin 0 -> 10291 bytes .../classpath/lib/java/util/ArrayList.class | Bin 0 -> 7908 bytes .../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 .../classpath/lib/java/util/Calendar.class | Bin 0 -> 13449 bytes .../classpath/lib/java/util/Collection.class | Bin 0 -> 841 bytes .../Collections$1$SynchronizedMapEntry.class | Bin 0 -> 2194 bytes .../lib/java/util/Collections$1.class | Bin 0 -> 1138 bytes .../lib/java/util/Collections$2.class | Bin 0 -> 1103 bytes .../lib/java/util/Collections$3.class | Bin 0 -> 1511 bytes .../lib/java/util/Collections$4.class | Bin 0 -> 1543 bytes .../lib/java/util/Collections$5.class | Bin 0 -> 1611 bytes .../lib/java/util/Collections$6.class | Bin 0 -> 1487 bytes .../lib/java/util/Collections$7.class | Bin 0 -> 1809 bytes .../lib/java/util/Collections$8.class | Bin 0 -> 889 bytes .../lib/java/util/Collections$9.class | Bin 0 -> 902 bytes .../util/Collections$CheckedCollection.class | Bin 0 -> 3768 bytes .../util/Collections$CheckedIterator.class | Bin 0 -> 1272 bytes .../java/util/Collections$CheckedList.class | Bin 0 -> 3851 bytes .../Collections$CheckedListIterator.class | Bin 0 -> 2065 bytes ...llections$CheckedMap$CheckedEntrySet.class | Bin 0 -> 1781 bytes .../java/util/Collections$CheckedMap.class | Bin 0 -> 4991 bytes .../Collections$CheckedRandomAccessList.class | Bin 0 -> 963 bytes .../java/util/Collections$CheckedSet.class | Bin 0 -> 1290 bytes .../util/Collections$CheckedSortedMap.class | Bin 0 -> 2347 bytes .../util/Collections$CheckedSortedSet.class | Bin 0 -> 2153 bytes .../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 .../util/Collections$ReverseComparator.class | Bin 0 -> 1024 bytes .../java/util/Collections$SingletonList.class | Bin 0 -> 3063 bytes .../java/util/Collections$SingletonMap.class | Bin 0 -> 2981 bytes .../java/util/Collections$SingletonSet.class | Bin 0 -> 2438 bytes .../Collections$SynchronizedCollection.class | Bin 0 -> 3969 bytes .../Collections$SynchronizedIterator.class | Bin 0 -> 1366 bytes .../util/Collections$SynchronizedList.class | Bin 0 -> 3835 bytes ...Collections$SynchronizedListIterator.class | Bin 0 -> 2030 bytes .../util/Collections$SynchronizedMap.class | Bin 0 -> 4720 bytes ...ections$SynchronizedRandomAccessList.class | Bin 0 -> 1461 bytes .../util/Collections$SynchronizedSet.class | Bin 0 -> 1550 bytes .../Collections$SynchronizedSortedMap.class | Bin 0 -> 2611 bytes .../Collections$SynchronizedSortedSet.class | Bin 0 -> 2577 bytes .../Collections$UnmodifiableCollection.class | Bin 0 -> 3096 bytes .../Collections$UnmodifiableIterator.class | Bin 0 -> 1182 bytes .../util/Collections$UnmodifiableList.class | Bin 0 -> 3136 bytes ...Collections$UnmodifiableListIterator.class | Bin 0 -> 1745 bytes ...ifiableEntrySet$UnmodifiableMapEntry.class | Bin 0 -> 2188 bytes ...UnmodifiableMap$UnmodifiableEntrySet.class | Bin 0 -> 2550 bytes .../util/Collections$UnmodifiableMap.class | Bin 0 -> 3698 bytes ...ections$UnmodifiableRandomAccessList.class | Bin 0 -> 883 bytes .../util/Collections$UnmodifiableSet.class | Bin 0 -> 1193 bytes .../Collections$UnmodifiableSortedMap.class | Bin 0 -> 2105 bytes .../Collections$UnmodifiableSortedSet.class | Bin 0 -> 2032 bytes .../classpath/lib/java/util/Collections.class | Bin 0 -> 21075 bytes .../classpath/lib/java/util/Comparator.class | Bin 0 -> 295 bytes .../ConcurrentModificationException.class | Bin 0 -> 556 bytes .../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 .../classpath/lib/java/util/Dictionary.class | Bin 0 -> 836 bytes .../util/DuplicateFormatFlagsException.class | Bin 0 -> 876 bytes .../lib/java/util/EmptyStackException.class | Bin 0 -> 380 bytes .../classpath/lib/java/util/EnumMap$1.class | Bin 0 -> 1315 bytes .../classpath/lib/java/util/EnumMap$2.class | Bin 0 -> 1460 bytes .../classpath/lib/java/util/EnumMap$3.class | Bin 0 -> 1053 bytes .../classpath/lib/java/util/EnumMap$4.class | Bin 0 -> 1233 bytes .../classpath/lib/java/util/EnumMap$5.class | Bin 0 -> 1839 bytes .../classpath/lib/java/util/EnumMap$6.class | Bin 0 -> 1753 bytes .../classpath/lib/java/util/EnumMap$7.class | Bin 0 -> 1307 bytes libjava/classpath/lib/java/util/EnumMap.class | Bin 0 -> 5826 bytes .../classpath/lib/java/util/EnumSet$1.class | Bin 0 -> 1389 bytes libjava/classpath/lib/java/util/EnumSet.class | Bin 0 -> 8349 bytes .../classpath/lib/java/util/Enumeration.class | Bin 0 -> 269 bytes .../lib/java/util/EventListener.class | Bin 0 -> 117 bytes .../lib/java/util/EventListenerProxy.class | Bin 0 -> 546 bytes .../classpath/lib/java/util/EventObject.class | Bin 0 -> 1140 bytes ...rmatFlagsConversionMismatchException.class | Bin 0 -> 1111 bytes .../classpath/lib/java/util/Formattable.class | Bin 0 -> 162 bytes .../lib/java/util/FormattableFlags.class | Bin 0 -> 562 bytes .../util/Formatter$BigDecimalLayoutForm.class | Bin 0 -> 1177 bytes .../classpath/lib/java/util/Formatter.class | Bin 0 -> 17740 bytes .../java/util/FormatterClosedException.class | Bin 0 -> 400 bytes .../lib/java/util/GregorianCalendar.class | Bin 0 -> 14556 bytes .../classpath/lib/java/util/HashMap$1.class | Bin 0 -> 1222 bytes .../classpath/lib/java/util/HashMap$2.class | Bin 0 -> 898 bytes .../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 .../classpath/lib/java/util/Hashtable$1.class | Bin 0 -> 1217 bytes .../classpath/lib/java/util/Hashtable$2.class | Bin 0 -> 926 bytes .../classpath/lib/java/util/Hashtable$3.class | Bin 0 -> 1530 bytes .../java/util/Hashtable$EntryEnumerator.class | Bin 0 -> 1475 bytes .../java/util/Hashtable$EntryIterator.class | Bin 0 -> 1861 bytes .../lib/java/util/Hashtable$HashEntry.class | Bin 0 -> 1054 bytes .../java/util/Hashtable$KeyEnumerator.class | Bin 0 -> 1278 bytes .../lib/java/util/Hashtable$KeyIterator.class | Bin 0 -> 1132 bytes .../java/util/Hashtable$ValueEnumerator.class | Bin 0 -> 1286 bytes .../java/util/Hashtable$ValueIterator.class | Bin 0 -> 1140 bytes .../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 .../util/IdentityHashMap$IdentityEntry.class | Bin 0 -> 2554 bytes .../IdentityHashMap$IdentityIterator.class | Bin 0 -> 1900 bytes .../lib/java/util/IdentityHashMap.class | Bin 0 -> 6772 bytes .../IllegalFormatCodePointException.class | Bin 0 -> 625 bytes .../IllegalFormatConversionException.class | Bin 0 -> 1364 bytes .../java/util/IllegalFormatException.class | Bin 0 -> 534 bytes .../util/IllegalFormatFlagsException.class | Bin 0 -> 881 bytes .../IllegalFormatPrecisionException.class | Bin 0 -> 821 bytes .../util/IllegalFormatWidthException.class | Bin 0 -> 801 bytes .../java/util/InputMismatchException.class | Bin 0 -> 466 bytes .../InvalidPropertiesFormatException.class | Bin 0 -> 1142 bytes .../classpath/lib/java/util/Iterator.class | Bin 0 -> 271 bytes .../lib/java/util/LinkedHashMap$1.class | Bin 0 -> 1521 bytes .../util/LinkedHashMap$LinkedHashEntry.class | Bin 0 -> 1630 bytes .../lib/java/util/LinkedHashMap.class | Bin 0 -> 3388 bytes .../lib/java/util/LinkedHashSet.class | Bin 0 -> 1400 bytes .../lib/java/util/LinkedList$Entry.class | Bin 0 -> 719 bytes .../java/util/LinkedList$LinkedListItr.class | Bin 0 -> 3062 bytes .../classpath/lib/java/util/LinkedList.class | Bin 0 -> 9888 bytes libjava/classpath/lib/java/util/List.class | Bin 0 -> 1427 bytes .../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 .../classpath/lib/java/util/Map$Entry.class | Bin 0 -> 480 bytes libjava/classpath/lib/java/util/Map.class | Bin 0 -> 935 bytes .../util/MissingFormatArgumentException.class | Bin 0 -> 917 bytes .../util/MissingFormatWidthException.class | Bin 0 -> 890 bytes .../java/util/MissingResourceException.class | Bin 0 -> 770 bytes .../lib/java/util/NavigableMap.class | Bin 0 -> 1538 bytes .../lib/java/util/NavigableSet.class | Bin 0 -> 1179 bytes .../java/util/NoSuchElementException.class | Bin 0 -> 529 bytes .../classpath/lib/java/util/Observable.class | Bin 0 -> 2016 bytes .../classpath/lib/java/util/Observer.class | Bin 0 -> 170 bytes .../lib/java/util/PriorityQueue$1.class | Bin 0 -> 1094 bytes .../lib/java/util/PriorityQueue.class | Bin 0 -> 5551 bytes .../classpath/lib/java/util/Properties.class | Bin 0 -> 12084 bytes .../lib/java/util/PropertyPermission.class | Bin 0 -> 3334 bytes .../util/PropertyPermissionCollection.class | Bin 0 -> 2452 bytes .../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 .../lib/java/util/RandomAccess.class | Bin 0 -> 115 bytes .../lib/java/util/ResourceBundle$1.class | Bin 0 -> 662 bytes .../java/util/ResourceBundle$BundleKey.class | Bin 0 -> 1438 bytes .../lib/java/util/ResourceBundle.class | Bin 0 -> 6232 bytes libjava/classpath/lib/java/util/Set.class | Bin 0 -> 831 bytes .../lib/java/util/SimpleTimeZone.class | Bin 0 -> 10254 bytes .../classpath/lib/java/util/SortedMap.class | Bin 0 -> 669 bytes .../classpath/lib/java/util/SortedSet.class | Bin 0 -> 634 bytes libjava/classpath/lib/java/util/Stack.class | Bin 0 -> 1548 bytes .../lib/java/util/StringTokenizer.class | Bin 0 -> 2332 bytes .../classpath/lib/java/util/TimeZone$1.class | Bin 0 -> 1134 bytes .../classpath/lib/java/util/TimeZone.class | Bin 0 -> 27535 bytes .../lib/java/util/Timer$Scheduler.class | Bin 0 -> 1292 bytes .../lib/java/util/Timer$TaskQueue.class | Bin 0 -> 2929 bytes libjava/classpath/lib/java/util/Timer.class | Bin 0 -> 4067 bytes .../classpath/lib/java/util/TimerTask.class | Bin 0 -> 681 bytes .../java/util/TooManyListenersException.class | Bin 0 -> 531 bytes .../classpath/lib/java/util/TreeMap$1.class | Bin 0 -> 2442 bytes .../classpath/lib/java/util/TreeMap$2.class | Bin 0 -> 1770 bytes .../classpath/lib/java/util/TreeMap$3.class | Bin 0 -> 1318 bytes .../classpath/lib/java/util/TreeMap$4.class | Bin 0 -> 1913 bytes .../classpath/lib/java/util/TreeMap$5.class | Bin 0 -> 1456 bytes .../classpath/lib/java/util/TreeMap$6.class | Bin 0 -> 938 bytes .../lib/java/util/TreeMap$Node.class | Bin 0 -> 976 bytes .../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 .../UnknownFormatConversionException.class | Bin 0 -> 875 bytes .../util/UnknownFormatFlagsException.class | Bin 0 -> 872 bytes .../classpath/lib/java/util/VMTimeZone.class | Bin 0 -> 4238 bytes .../classpath/lib/java/util/Vector$1.class | Bin 0 -> 977 bytes libjava/classpath/lib/java/util/Vector.class | Bin 0 -> 10887 bytes .../lib/java/util/WeakHashMap$1.class | Bin 0 -> 584 bytes .../lib/java/util/WeakHashMap$2.class | Bin 0 -> 2719 bytes .../WeakHashMap$WeakBucket$WeakEntry.class | Bin 0 -> 2131 bytes .../java/util/WeakHashMap$WeakBucket.class | Bin 0 -> 1472 bytes .../java/util/WeakHashMap$WeakEntrySet.class | Bin 0 -> 880 bytes .../classpath/lib/java/util/WeakHashMap.class | Bin 0 -> 6368 bytes .../concurrent/AbstractExecutorService.class | Bin 0 -> 8804 bytes .../concurrent/ArrayBlockingQueue$Itr.class | Bin 0 -> 2191 bytes .../util/concurrent/ArrayBlockingQueue.class | Bin 0 -> 9946 bytes .../java/util/concurrent/BlockingDeque.class | Bin 0 -> 1518 bytes .../java/util/concurrent/BlockingQueue.class | Bin 0 -> 982 bytes .../concurrent/BrokenBarrierException.class | Bin 0 -> 541 bytes .../lib/java/util/concurrent/Callable.class | Bin 0 -> 283 bytes .../concurrent/CancellationException.class | Bin 0 -> 550 bytes .../util/concurrent/CompletionService.class | Bin 0 -> 855 bytes .../ConcurrentHashMap$EntryIterator.class | Bin 0 -> 1504 bytes .../ConcurrentHashMap$EntrySet.class | Bin 0 -> 1751 bytes .../ConcurrentHashMap$HashEntry.class | Bin 0 -> 1373 bytes .../ConcurrentHashMap$HashIterator.class | Bin 0 -> 2413 bytes .../ConcurrentHashMap$KeyIterator.class | Bin 0 -> 1138 bytes .../concurrent/ConcurrentHashMap$KeySet.class | Bin 0 -> 1274 bytes .../ConcurrentHashMap$Segment.class | Bin 0 -> 6776 bytes .../ConcurrentHashMap$ValueIterator.class | Bin 0 -> 1146 bytes .../concurrent/ConcurrentHashMap$Values.class | Bin 0 -> 1151 bytes .../ConcurrentHashMap$WriteThroughEntry.class | Bin 0 -> 1272 bytes .../util/concurrent/ConcurrentHashMap.class | Bin 0 -> 10684 bytes .../ConcurrentLinkedQueue$Itr.class | Bin 0 -> 1874 bytes .../ConcurrentLinkedQueue$Node.class | Bin 0 -> 3245 bytes .../concurrent/ConcurrentLinkedQueue.class | Bin 0 -> 6269 bytes .../java/util/concurrent/ConcurrentMap.class | Bin 0 -> 534 bytes .../concurrent/ConcurrentNavigableMap.class | Bin 0 -> 1363 bytes ...kipListMap$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 .../ConcurrentSkipListMap$Index.class | Bin 0 -> 3030 bytes .../ConcurrentSkipListMap$Iter.class | Bin 0 -> 1873 bytes .../ConcurrentSkipListMap$KeyIterator.class | Bin 0 -> 1106 bytes .../ConcurrentSkipListMap$KeySet.class | Bin 0 -> 6690 bytes .../ConcurrentSkipListMap$Node.class | Bin 0 -> 4161 bytes ...ipListMap$SubMap$SubMapEntryIterator.class | Bin 0 -> 1564 bytes ...currentSkipListMap$SubMap$SubMapIter.class | Bin 0 -> 2947 bytes ...SkipListMap$SubMap$SubMapKeyIterator.class | Bin 0 -> 1250 bytes ...ipListMap$SubMap$SubMapValueIterator.class | Bin 0 -> 1090 bytes .../ConcurrentSkipListMap$SubMap.class | Bin 0 -> 18179 bytes .../ConcurrentSkipListMap$ValueIterator.class | Bin 0 -> 946 bytes .../ConcurrentSkipListMap$Values.class | Bin 0 -> 2209 bytes .../concurrent/ConcurrentSkipListMap.class | Bin 0 -> 29603 bytes .../concurrent/ConcurrentSkipListSet.class | Bin 0 -> 9070 bytes .../concurrent/CopyOnWriteArrayList.class | Bin 0 -> 6845 bytes .../util/concurrent/CopyOnWriteArraySet.class | Bin 0 -> 3911 bytes .../util/concurrent/CountDownLatch$Sync.class | Bin 0 -> 1003 bytes .../java/util/concurrent/CountDownLatch.class | Bin 0 -> 1704 bytes .../concurrent/CyclicBarrier$Generation.class | Bin 0 -> 565 bytes .../java/util/concurrent/CyclicBarrier.class | Bin 0 -> 3723 bytes .../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 .../java/util/concurrent/Exchanger$Node.class | Bin 0 -> 624 bytes .../java/util/concurrent/Exchanger$Slot.class | Bin 0 -> 791 bytes .../lib/java/util/concurrent/Exchanger.class | Bin 0 -> 5987 bytes .../util/concurrent/ExecutionException.class | Bin 0 -> 816 bytes .../lib/java/util/concurrent/Executor.class | Bin 0 -> 162 bytes ...utorCompletionService$QueueingFuture.class | Bin 0 -> 1361 bytes .../ExecutorCompletionService.class | Bin 0 -> 4452 bytes .../util/concurrent/ExecutorService.class | Bin 0 -> 1948 bytes .../java/util/concurrent/Executors$1.class | Bin 0 -> 1313 bytes .../java/util/concurrent/Executors$2.class | Bin 0 -> 2030 bytes .../java/util/concurrent/Executors$3.class | Bin 0 -> 1437 bytes .../java/util/concurrent/Executors$4.class | Bin 0 -> 1349 bytes .../java/util/concurrent/Executors$5.class | Bin 0 -> 867 bytes .../java/util/concurrent/Executors$6.class | Bin 0 -> 951 bytes .../Executors$DefaultThreadFactory.class | Bin 0 -> 2039 bytes .../Executors$DelegatedExecutorService.class | Bin 0 -> 3943 bytes ...rs$DelegatedScheduledExecutorService.class | Bin 0 -> 2190 bytes ...$FinalizableDelegatedExecutorService.class | Bin 0 -> 718 bytes .../Executors$PrivilegedCallable.class | Bin 0 -> 2052 bytes ...legedCallableUsingCurrentClassLoader.class | Bin 0 -> 2834 bytes .../Executors$PrivilegedThreadFactory.class | Bin 0 -> 1674 bytes .../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 .../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 .../concurrent/LinkedBlockingDeque$Itr.class | Bin 0 -> 1537 bytes .../concurrent/LinkedBlockingDeque$Node.class | Bin 0 -> 1107 bytes .../util/concurrent/LinkedBlockingDeque.class | Bin 0 -> 15659 bytes .../concurrent/LinkedBlockingQueue$Itr.class | Bin 0 -> 3118 bytes .../concurrent/LinkedBlockingQueue$Node.class | Bin 0 -> 792 bytes .../util/concurrent/LinkedBlockingQueue.class | Bin 0 -> 11808 bytes .../PriorityBlockingQueue$Itr.class | Bin 0 -> 1869 bytes .../concurrent/PriorityBlockingQueue.class | Bin 0 -> 8073 bytes .../RejectedExecutionException.class | Bin 0 -> 847 bytes .../concurrent/RejectedExecutionHandler.class | Bin 0 -> 245 bytes .../java/util/concurrent/RunnableFuture.class | Bin 0 -> 328 bytes .../concurrent/RunnableScheduledFuture.class | Bin 0 -> 410 bytes .../concurrent/ScheduledExecutorService.class | Bin 0 -> 960 bytes .../util/concurrent/ScheduledFuture.class | Bin 0 -> 330 bytes .../ScheduledThreadPoolExecutor$1.class | Bin 0 -> 1597 bytes ...dThreadPoolExecutor$DelayedWorkQueue.class | Bin 0 -> 5234 bytes ...readPoolExecutor$ScheduledFutureTask.class | Bin 0 -> 4323 bytes .../ScheduledThreadPoolExecutor.class | Bin 0 -> 9440 bytes .../util/concurrent/Semaphore$FairSync.class | Bin 0 -> 962 bytes .../concurrent/Semaphore$NonfairSync.class | Bin 0 -> 657 bytes .../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 .../SynchronousQueue$Transferer.class | Bin 0 -> 486 bytes .../SynchronousQueue$WaitQueue.class | Bin 0 -> 449 bytes .../util/concurrent/SynchronousQueue.class | Bin 0 -> 6851 bytes .../java/util/concurrent/ThreadFactory.class | Bin 0 -> 191 bytes .../ThreadPoolExecutor$AbortPolicy.class | Bin 0 -> 792 bytes .../ThreadPoolExecutor$CallerRunsPolicy.class | Bin 0 -> 832 bytes ...readPoolExecutor$DiscardOldestPolicy.class | Bin 0 -> 1002 bytes .../ThreadPoolExecutor$DiscardPolicy.class | Bin 0 -> 733 bytes .../ThreadPoolExecutor$Worker.class | Bin 0 -> 2276 bytes .../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 .../util/concurrent/TimeoutException.class | Bin 0 -> 523 bytes .../concurrent/atomic/AtomicBoolean.class | Bin 0 -> 2174 bytes .../concurrent/atomic/AtomicInteger.class | Bin 0 -> 3106 bytes .../atomic/AtomicIntegerArray.class | Bin 0 -> 3528 bytes ...pdater$AtomicIntegerFieldUpdaterImpl.class | Bin 0 -> 4605 bytes .../atomic/AtomicIntegerFieldUpdater.class | Bin 0 -> 2744 bytes .../util/concurrent/atomic/AtomicLong.class | Bin 0 -> 3192 bytes .../concurrent/atomic/AtomicLongArray.class | Bin 0 -> 3538 bytes .../AtomicLongFieldUpdater$CASUpdater.class | Bin 0 -> 4511 bytes ...AtomicLongFieldUpdater$LockedUpdater.class | Bin 0 -> 4539 bytes .../atomic/AtomicLongFieldUpdater.class | Bin 0 -> 2909 bytes ...rkableReference$ReferenceBooleanPair.class | Bin 0 -> 1189 bytes .../atomic/AtomicMarkableReference.class | Bin 0 -> 3193 bytes .../concurrent/atomic/AtomicReference.class | Bin 0 -> 2739 bytes .../atomic/AtomicReferenceArray.class | Bin 0 -> 3528 bytes ...ater$AtomicReferenceFieldUpdaterImpl.class | Bin 0 -> 5338 bytes .../atomic/AtomicReferenceFieldUpdater.class | Bin 0 -> 1995 bytes ...tampedReference$ReferenceIntegerPair.class | Bin 0 -> 1186 bytes .../atomic/AtomicStampedReference.class | Bin 0 -> 3208 bytes .../locks/AbstractOwnableSynchronizer.class | Bin 0 -> 754 bytes ...euedLongSynchronizer$ConditionObject.class | Bin 0 -> 6818 bytes .../AbstractQueuedLongSynchronizer$Node.class | Bin 0 -> 1553 bytes .../AbstractQueuedLongSynchronizer.class | Bin 0 -> 14442 bytes ...ctQueuedSynchronizer$ConditionObject.class | Bin 0 -> 6683 bytes .../AbstractQueuedSynchronizer$Node.class | Bin 0 -> 1529 bytes .../locks/AbstractQueuedSynchronizer.class | Bin 0 -> 14257 bytes .../util/concurrent/locks/Condition.class | Bin 0 -> 422 bytes .../lib/java/util/concurrent/locks/Lock.class | Bin 0 -> 387 bytes .../util/concurrent/locks/LockSupport.class | Bin 0 -> 2227 bytes .../util/concurrent/locks/ReadWriteLock.class | Bin 0 -> 211 bytes .../locks/ReentrantLock$FairSync.class | Bin 0 -> 1304 bytes .../locks/ReentrantLock$NonfairSync.class | Bin 0 -> 960 bytes .../concurrent/locks/ReentrantLock$Sync.class | Bin 0 -> 2389 bytes .../util/concurrent/locks/ReentrantLock.class | Bin 0 -> 4600 bytes .../ReentrantReadWriteLock$FairSync.class | Bin 0 -> 837 bytes .../ReentrantReadWriteLock$NonfairSync.class | Bin 0 -> 856 bytes .../ReentrantReadWriteLock$ReadLock.class | Bin 0 -> 2473 bytes ...ntrantReadWriteLock$Sync$HoldCounter.class | Bin 0 -> 846 bytes ...riteLock$Sync$ThreadLocalHoldCounter.class | Bin 0 -> 1021 bytes .../locks/ReentrantReadWriteLock$Sync.class | Bin 0 -> 5082 bytes .../ReentrantReadWriteLock$WriteLock.class | Bin 0 -> 2795 bytes .../locks/ReentrantReadWriteLock.class | Bin 0 -> 5343 bytes .../lib/java/util/jar/Attributes$Name.class | Bin 0 -> 2920 bytes .../lib/java/util/jar/Attributes.class | Bin 0 -> 3812 bytes .../lib/java/util/jar/JarEntry.class | Bin 0 -> 1895 bytes .../lib/java/util/jar/JarException.class | Bin 0 -> 508 bytes .../util/jar/JarFile$EntryInputStream.class | Bin 0 -> 5747 bytes .../util/jar/JarFile$JarEnumeration.class | Bin 0 -> 2148 bytes .../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 .../lib/java/util/jar/Manifest.class | Bin 0 -> 2568 bytes .../java/util/logging/ConsoleHandler.class | Bin 0 -> 938 bytes .../lib/java/util/logging/ErrorManager.class | Bin 0 -> 1654 bytes .../java/util/logging/FileHandler$ostr.class | Bin 0 -> 1249 bytes .../lib/java/util/logging/FileHandler.class | Bin 0 -> 6238 bytes .../lib/java/util/logging/Filter.class | Bin 0 -> 167 bytes .../lib/java/util/logging/Formatter.class | Bin 0 -> 1482 bytes .../lib/java/util/logging/Handler.class | Bin 0 -> 2968 bytes .../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 .../lib/java/util/logging/Logger$1.class | Bin 0 -> 588 bytes .../lib/java/util/logging/Logger.class | Bin 0 -> 12065 bytes .../lib/java/util/logging/LoggingMXBean.class | Bin 0 -> 395 bytes .../java/util/logging/LoggingPermission.class | Bin 0 -> 852 bytes .../lib/java/util/logging/MemoryHandler.class | Bin 0 -> 2945 bytes .../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 .../util/prefs/AbstractPreferences$1.class | Bin 0 -> 1009 bytes .../util/prefs/AbstractPreferences$2.class | Bin 0 -> 1104 bytes .../java/util/prefs/AbstractPreferences.class | Bin 0 -> 15751 bytes .../util/prefs/BackingStoreException.class | Bin 0 -> 1046 bytes .../InvalidPreferencesFormatException.class | Bin 0 -> 1236 bytes .../lib/java/util/prefs/NodeChangeEvent.class | Bin 0 -> 1309 bytes .../java/util/prefs/NodeChangeListener.class | Bin 0 -> 247 bytes .../util/prefs/PreferenceChangeEvent.class | Bin 0 -> 1485 bytes .../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 .../java/util/prefs/PreferencesFactory.class | Bin 0 -> 207 bytes .../lib/java/util/regex/MatchResult.class | Bin 0 -> 270 bytes .../lib/java/util/regex/Matcher.class | Bin 0 -> 5016 bytes .../lib/java/util/regex/Pattern.class | Bin 0 -> 4266 bytes .../util/regex/PatternSyntaxException.class | Bin 0 -> 1455 bytes .../classpath/lib/java/util/zip/Adler32.class | Bin 0 -> 1181 bytes .../classpath/lib/java/util/zip/CRC32.class | Bin 0 -> 1280 bytes .../java/util/zip/CheckedInputStream.class | Bin 0 -> 1443 bytes .../java/util/zip/CheckedOutputStream.class | Bin 0 -> 1062 bytes .../lib/java/util/zip/Checksum.class | Bin 0 -> 200 bytes .../java/util/zip/DataFormatException.class | Bin 0 -> 518 bytes .../lib/java/util/zip/Deflater.class | Bin 0 -> 2397 bytes .../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 .../lib/java/util/zip/Inflater.class | Bin 0 -> 1441 bytes .../java/util/zip/InflaterInputStream.class | Bin 0 -> 3282 bytes .../lib/java/util/zip/ZipConstants.class | Bin 0 -> 1279 bytes .../lib/java/util/zip/ZipEntry.class | Bin 0 -> 5378 bytes .../lib/java/util/zip/ZipException.class | Bin 0 -> 497 bytes .../lib/java/util/zip/ZipFile$1.class | Bin 0 -> 1024 bytes .../util/zip/ZipFile$PartialInputStream.class | Bin 0 -> 5138 bytes .../zip/ZipFile$ZipEntryEnumeration.class | Bin 0 -> 1173 bytes .../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 .../accessibility/AccessibleAction.class | Bin 0 -> 449 bytes .../AccessibleAttributeSequence.class | Bin 0 -> 449 bytes .../accessibility/AccessibleBundle.class | Bin 0 -> 919 bytes .../accessibility/AccessibleComponent.class | Bin 0 -> 1188 bytes .../accessibility/AccessibleContext.class | Bin 0 -> 5243 bytes .../AccessibleEditableText.class | Bin 0 -> 532 bytes .../AccessibleExtendedComponent.class | Bin 0 -> 361 bytes .../AccessibleExtendedTable.class | Bin 0 -> 291 bytes .../AccessibleExtendedText.class | Bin 0 -> 471 bytes .../accessibility/AccessibleHyperlink.class | Bin 0 -> 678 bytes .../accessibility/AccessibleHypertext.class | Bin 0 -> 305 bytes .../javax/accessibility/AccessibleIcon.class | Bin 0 -> 327 bytes .../accessibility/AccessibleKeyBinding.class | Bin 0 -> 244 bytes .../accessibility/AccessibleRelation.class | Bin 0 -> 2740 bytes .../accessibility/AccessibleRelationSet.class | Bin 0 -> 2893 bytes .../AccessibleResourceBundle.class | Bin 0 -> 481 bytes .../javax/accessibility/AccessibleRole.class | Bin 0 -> 4524 bytes .../accessibility/AccessibleSelection.class | Bin 0 -> 453 bytes .../javax/accessibility/AccessibleState.class | Bin 0 -> 2352 bytes .../accessibility/AccessibleStateSet.class | Bin 0 -> 2107 bytes .../accessibility/AccessibleStreamable.class | Bin 0 -> 284 bytes .../javax/accessibility/AccessibleTable.class | Bin 0 -> 1206 bytes .../AccessibleTableModelChange.class | Bin 0 -> 379 bytes .../javax/accessibility/AccessibleText.class | Bin 0 -> 668 bytes .../AccessibleTextSequence.class | Bin 0 -> 415 bytes .../javax/accessibility/AccessibleValue.class | Bin 0 -> 322 bytes .../javax/crypto/BadPaddingException.class | Bin 0 -> 539 bytes .../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 .../lib/javax/crypto/CipherSpi.class | Bin 0 -> 2771 bytes .../crypto/EncryptedPrivateKeyInfo.class | Bin 0 -> 4351 bytes .../lib/javax/crypto/ExemptionMechanism.class | Bin 0 -> 4810 bytes .../crypto/ExemptionMechanismException.class | Bin 0 -> 563 bytes .../javax/crypto/ExemptionMechanismSpi.class | Bin 0 -> 855 bytes .../crypto/IllegalBlockSizeException.class | Bin 0 -> 557 bytes .../lib/javax/crypto/KeyAgreement.class | Bin 0 -> 4848 bytes .../lib/javax/crypto/KeyAgreementSpi.class | Bin 0 -> 952 bytes .../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 .../classpath/lib/javax/crypto/MacSpi.class | Bin 0 -> 1179 bytes .../javax/crypto/NoSuchPaddingException.class | Bin 0 -> 548 bytes .../lib/javax/crypto/NullCipher.class | Bin 0 -> 423 bytes .../lib/javax/crypto/NullCipherImpl.class | Bin 0 -> 2559 bytes .../lib/javax/crypto/SealedObject.class | Bin 0 -> 4493 bytes .../lib/javax/crypto/SecretKey.class | Bin 0 -> 201 bytes .../lib/javax/crypto/SecretKeyFactory.class | Bin 0 -> 3822 bytes .../javax/crypto/SecretKeyFactorySpi.class | Bin 0 -> 713 bytes .../javax/crypto/ShortBufferException.class | Bin 0 -> 542 bytes .../lib/javax/crypto/interfaces/DHKey.class | Bin 0 -> 175 bytes .../crypto/interfaces/DHPrivateKey.class | Bin 0 -> 304 bytes .../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 .../crypto/spec/DHGenParameterSpec.class | Bin 0 -> 642 bytes .../javax/crypto/spec/DHParameterSpec.class | Bin 0 -> 947 bytes .../javax/crypto/spec/DHPrivateKeySpec.class | Bin 0 -> 798 bytes .../javax/crypto/spec/DHPublicKeySpec.class | Bin 0 -> 795 bytes .../javax/crypto/spec/IvParameterSpec.class | Bin 0 -> 731 bytes .../lib/javax/crypto/spec/PBEKeySpec.class | Bin 0 -> 2279 bytes .../javax/crypto/spec/PBEParameterSpec.class | Bin 0 -> 643 bytes .../javax/crypto/spec/RC2ParameterSpec.class | Bin 0 -> 1599 bytes .../javax/crypto/spec/RC5ParameterSpec.class | Bin 0 -> 1956 bytes .../lib/javax/crypto/spec/SecretKeySpec.class | Bin 0 -> 1600 bytes .../lib/javax/imageio/IIOException.class | Bin 0 -> 598 bytes .../lib/javax/imageio/IIOImage.class | Bin 0 -> 2986 bytes .../lib/javax/imageio/IIOParam.class | Bin 0 -> 4094 bytes .../javax/imageio/IIOParamController.class | Bin 0 -> 180 bytes .../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 .../imageio/ImageIO$ReaderFormatFilter.class | Bin 0 -> 996 bytes .../ImageIO$ReaderMIMETypeFilter.class | Bin 0 -> 996 bytes .../imageio/ImageIO$ReaderObjectFilter.class | Bin 0 -> 843 bytes .../imageio/ImageIO$ReaderSuffixFilter.class | Bin 0 -> 994 bytes .../imageio/ImageIO$TranscoderFilter.class | Bin 0 -> 1392 bytes .../imageio/ImageIO$WriterFormatFilter.class | Bin 0 -> 996 bytes .../ImageIO$WriterMIMETypeFilter.class | Bin 0 -> 996 bytes .../imageio/ImageIO$WriterObjectFilter.class | Bin 0 -> 1193 bytes .../imageio/ImageIO$WriterSuffixFilter.class | Bin 0 -> 994 bytes .../classpath/lib/javax/imageio/ImageIO.class | Bin 0 -> 13182 bytes .../lib/javax/imageio/ImageReadParam.class | Bin 0 -> 2209 bytes .../lib/javax/imageio/ImageReader.class | Bin 0 -> 20387 bytes .../lib/javax/imageio/ImageTranscoder.class | Bin 0 -> 438 bytes .../javax/imageio/ImageTypeSpecifier.class | Bin 0 -> 6079 bytes .../lib/javax/imageio/ImageWriteParam.class | Bin 0 -> 6550 bytes .../lib/javax/imageio/ImageWriter.class | Bin 0 -> 13487 bytes .../event/IIOReadProgressListener.class | Bin 0 -> 543 bytes .../imageio/event/IIOReadUpdateListener.class | Bin 0 -> 536 bytes .../event/IIOReadWarningListener.class | Bin 0 -> 253 bytes .../event/IIOWriteProgressListener.class | Bin 0 -> 493 bytes .../event/IIOWriteWarningListener.class | Bin 0 -> 256 bytes .../metadata/IIOInvalidTreeException.class | Bin 0 -> 953 bytes .../javax/imageio/metadata/IIOMetadata.class | Bin 0 -> 5437 bytes .../metadata/IIOMetadataController.class | Bin 0 -> 207 bytes .../imageio/metadata/IIOMetadataFormat.class | Bin 0 -> 2613 bytes .../metadata/IIOMetadataFormatImpl$1.class | Bin 0 -> 818 bytes ...tadataFormatImpl$IIOMetadataNodeAttr.class | Bin 0 -> 1846 bytes ...ormatImpl$IIOMetadataNodeAttrBounded.class | Bin 0 -> 1379 bytes ...atImpl$IIOMetadataNodeAttrEnumerated.class | Bin 0 -> 1283 bytes ...taFormatImpl$IIOMetadataNodeAttrList.class | Bin 0 -> 1187 bytes .../IIOMetadataFormatImpl$NodeObject.class | Bin 0 -> 1419 bytes ...IOMetadataFormatImpl$NodeObjectArray.class | Bin 0 -> 1284 bytes ...MetadataFormatImpl$NodeObjectBounded.class | Bin 0 -> 1499 bytes ...adataFormatImpl$NodeObjectEnumerated.class | Bin 0 -> 1253 bytes .../metadata/IIOMetadataFormatImpl.class | Bin 0 -> 16110 bytes .../IIOMetadataNode$IIONamedNodeMap.class | Bin 0 -> 2445 bytes .../IIOMetadataNode$IIONodeList.class | Bin 0 -> 1154 bytes .../imageio/metadata/IIOMetadataNode.class | Bin 0 -> 10716 bytes .../plugins/bmp/BMPImageWriteParam.class | Bin 0 -> 1248 bytes .../plugins/jpeg/JPEGHuffmanTable.class | Bin 0 -> 5297 bytes .../plugins/jpeg/JPEGImageReadParam.class | Bin 0 -> 1750 bytes .../plugins/jpeg/JPEGImageWriteParam.class | Bin 0 -> 3531 bytes .../imageio/plugins/jpeg/JPEGQTable.class | Bin 0 -> 3025 bytes .../lib/javax/imageio/spi/IIORegistry.class | Bin 0 -> 2596 bytes .../imageio/spi/IIOServiceProvider.class | Bin 0 -> 1399 bytes .../imageio/spi/ImageInputStreamSpi.class | Bin 0 -> 1458 bytes .../imageio/spi/ImageOutputStreamSpi.class | Bin 0 -> 1467 bytes .../javax/imageio/spi/ImageReaderSpi.class | Bin 0 -> 3023 bytes .../imageio/spi/ImageReaderWriterSpi.class | Bin 0 -> 4061 bytes .../imageio/spi/ImageTranscoderSpi.class | Bin 0 -> 694 bytes .../javax/imageio/spi/ImageWriterSpi.class | Bin 0 -> 3443 bytes .../imageio/spi/RegisterableService.class | Bin 0 -> 336 bytes .../javax/imageio/spi/ServiceRegistry$1.class | Bin 0 -> 1076 bytes .../javax/imageio/spi/ServiceRegistry$2.class | Bin 0 -> 1168 bytes .../imageio/spi/ServiceRegistry$Filter.class | Bin 0 -> 256 bytes .../javax/imageio/spi/ServiceRegistry.class | Bin 0 -> 8702 bytes .../stream/FileCacheImageInputStream.class | Bin 0 -> 1455 bytes .../stream/FileCacheImageOutputStream.class | Bin 0 -> 1740 bytes .../imageio/stream/FileImageInputStream.class | Bin 0 -> 1567 bytes .../stream/FileImageOutputStream.class | Bin 0 -> 1956 bytes .../javax/imageio/stream/IIOByteBuffer.class | Bin 0 -> 972 bytes .../imageio/stream/ImageInputStream.class | Bin 0 -> 1680 bytes .../imageio/stream/ImageInputStreamImpl.class | Bin 0 -> 8798 bytes .../imageio/stream/ImageOutputStream.class | Bin 0 -> 1056 bytes .../stream/ImageOutputStreamImpl.class | Bin 0 -> 4842 bytes .../stream/MemoryCacheImageInputStream.class | Bin 0 -> 1907 bytes .../stream/MemoryCacheImageOutputStream.class | Bin 0 -> 1612 bytes .../lib/javax/management/Attribute.class | Bin 0 -> 1293 bytes .../lib/javax/management/AttributeList.class | Bin 0 -> 1795 bytes .../AttributeNotFoundException.class | Bin 0 -> 502 bytes .../BadAttributeValueExpException.class | Bin 0 -> 1050 bytes .../BadBinaryOpValueExpException.class | Bin 0 -> 1167 bytes .../BadStringOperationException.class | Bin 0 -> 960 bytes .../lib/javax/management/DynamicMBean.class | Bin 0 -> 804 bytes .../InstanceAlreadyExistsException.class | Bin 0 -> 578 bytes .../InstanceNotFoundException.class | Bin 0 -> 563 bytes .../management/IntrospectionException.class | Bin 0 -> 554 bytes .../InvalidApplicationException.class | Bin 0 -> 1044 bytes .../InvalidAttributeValueException.class | Bin 0 -> 514 bytes .../lib/javax/management/JMException.class | Bin 0 -> 440 bytes .../javax/management/JMRuntimeException.class | Bin 0 -> 468 bytes .../ListenerNotFoundException.class | Bin 0 -> 563 bytes .../javax/management/MBeanAttributeInfo.class | Bin 0 -> 3515 bytes .../management/MBeanConstructorInfo.class | Bin 0 -> 2979 bytes .../lib/javax/management/MBeanException.class | Bin 0 -> 896 bytes .../javax/management/MBeanFeatureInfo.class | Bin 0 -> 1654 bytes .../lib/javax/management/MBeanInfo.class | Bin 0 -> 4188 bytes .../management/MBeanNotificationInfo.class | Bin 0 -> 2094 bytes .../javax/management/MBeanOperationInfo.class | Bin 0 -> 4069 bytes .../javax/management/MBeanParameterInfo.class | Bin 0 -> 1809 bytes .../MBeanPermission$NameHolder.class | Bin 0 -> 2646 bytes .../javax/management/MBeanPermission.class | Bin 0 -> 4723 bytes .../javax/management/MBeanRegistration.class | Bin 0 -> 408 bytes .../MBeanRegistrationException.class | Bin 0 -> 653 bytes .../lib/javax/management/MBeanServer.class | Bin 0 -> 4177 bytes .../javax/management/MBeanServerBuilder.class | Bin 0 -> 996 bytes .../management/MBeanServerConnection.class | Bin 0 -> 3243 bytes .../management/MBeanServerDelegate.class | Bin 0 -> 4939 bytes .../management/MBeanServerDelegateMBean.class | Bin 0 -> 395 bytes .../javax/management/MBeanServerFactory.class | Bin 0 -> 6217 bytes .../management/MBeanServerNotification.class | Bin 0 -> 961 bytes ...ion$MBeanServerPermissionEnumeration.class | Bin 0 -> 1404 bytes ...sion$MBeanServerPermissionCollection.class | Bin 0 -> 2905 bytes .../management/MBeanServerPermission.class | Bin 0 -> 3110 bytes .../management/MBeanTrustPermission.class | Bin 0 -> 912 bytes .../MalformedObjectNameException.class | Bin 0 -> 572 bytes .../NotCompliantMBeanException.class | Bin 0 -> 566 bytes .../lib/javax/management/Notification.class | Bin 0 -> 2790 bytes .../management/NotificationBroadcaster.class | Bin 0 -> 557 bytes .../management/NotificationEmitter.class | Bin 0 -> 392 bytes .../javax/management/NotificationFilter.class | Bin 0 -> 231 bytes .../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 .../management/OperationsException.class | Bin 0 -> 537 bytes .../lib/javax/management/QueryExp.class | Bin 0 -> 486 bytes .../management/ReflectionException.class | Bin 0 -> 911 bytes .../management/RuntimeErrorException.class | Bin 0 -> 900 bytes .../management/RuntimeMBeanException.class | Bin 0 -> 959 bytes .../RuntimeOperationsException.class | Bin 0 -> 974 bytes .../management/ServiceNotFoundException.class | Bin 0 -> 560 bytes .../lib/javax/management/StandardMBean.class | Bin 0 -> 14040 bytes .../lib/javax/management/ValueExp.class | Bin 0 -> 531 bytes .../loading/ClassLoaderRepository.class | Bin 0 -> 405 bytes .../management/openmbean/ArrayType.class | Bin 0 -> 3898 bytes .../management/openmbean/CompositeData.class | Bin 0 -> 545 bytes .../openmbean/CompositeDataSupport.class | Bin 0 -> 5405 bytes .../management/openmbean/CompositeType.class | Bin 0 -> 4543 bytes .../openmbean/InvalidKeyException.class | Bin 0 -> 563 bytes .../openmbean/InvalidOpenTypeException.class | Bin 0 -> 578 bytes .../openmbean/KeyAlreadyExistsException.class | Bin 0 -> 581 bytes .../openmbean/OpenDataException.class | Bin 0 -> 551 bytes .../openmbean/OpenMBeanAttributeInfo.class | Bin 0 -> 380 bytes .../OpenMBeanAttributeInfoSupport.class | Bin 0 -> 7086 bytes .../openmbean/OpenMBeanConstructorInfo.class | Bin 0 -> 373 bytes .../OpenMBeanConstructorInfoSupport.class | Bin 0 -> 2540 bytes .../management/openmbean/OpenMBeanInfo.class | Bin 0 -> 568 bytes .../openmbean/OpenMBeanInfoSupport.class | Bin 0 -> 3351 bytes .../openmbean/OpenMBeanOperationInfo.class | Bin 0 -> 483 bytes .../OpenMBeanOperationInfoSupport.class | Bin 0 -> 3539 bytes .../openmbean/OpenMBeanParameterInfo.class | Bin 0 -> 651 bytes .../OpenMBeanParameterInfoSupport.class | Bin 0 -> 6517 bytes .../javax/management/openmbean/OpenType.class | Bin 0 -> 2746 bytes .../management/openmbean/SimpleType.class | Bin 0 -> 3353 bytes .../management/openmbean/TabularData.class | Bin 0 -> 885 bytes .../openmbean/TabularDataSupport.class | Bin 0 -> 7234 bytes .../management/openmbean/TabularType.class | Bin 0 -> 3680 bytes .../naming/AuthenticationException.class | Bin 0 -> 545 bytes .../AuthenticationNotSupportedException.class | Bin 0 -> 581 bytes .../lib/javax/naming/BinaryRefAddr.class | Bin 0 -> 2131 bytes .../classpath/lib/javax/naming/Binding.class | Bin 0 -> 1937 bytes .../javax/naming/CannotProceedException.class | Bin 0 -> 1824 bytes .../javax/naming/CommunicationException.class | Bin 0 -> 534 bytes .../lib/javax/naming/CompositeName.class | Bin 0 -> 6437 bytes .../lib/javax/naming/CompoundName.class | Bin 0 -> 9469 bytes .../javax/naming/ConfigurationException.class | Bin 0 -> 534 bytes .../classpath/lib/javax/naming/Context.class | Bin 0 -> 3164 bytes .../naming/ContextNotEmptyException.class | Bin 0 -> 540 bytes .../lib/javax/naming/InitialContext.class | Bin 0 -> 10044 bytes .../InsufficientResourcesException.class | Bin 0 -> 558 bytes .../naming/InterruptedNamingException.class | Bin 0 -> 546 bytes .../javax/naming/InvalidNameException.class | Bin 0 -> 528 bytes .../javax/naming/LimitExceededException.class | Bin 0 -> 534 bytes .../lib/javax/naming/LinkException.class | Bin 0 -> 2151 bytes .../lib/javax/naming/LinkLoopException.class | Bin 0 -> 517 bytes .../classpath/lib/javax/naming/LinkRef.class | Bin 0 -> 1083 bytes .../javax/naming/MalformedLinkException.class | Bin 0 -> 532 bytes libjava/classpath/lib/javax/naming/Name.class | Bin 0 -> 1134 bytes .../naming/NameAlreadyBoundException.class | Bin 0 -> 543 bytes .../lib/javax/naming/NameClassPair.class | Bin 0 -> 1868 bytes .../javax/naming/NameNotFoundException.class | Bin 0 -> 531 bytes .../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 .../naming/NamingSecurityException.class | Bin 0 -> 537 bytes .../naming/NoInitialContextException.class | Bin 0 -> 543 bytes .../javax/naming/NoPermissionException.class | Bin 0 -> 539 bytes .../javax/naming/NotContextException.class | Bin 0 -> 525 bytes .../OperationNotSupportedException.class | Bin 0 -> 558 bytes .../javax/naming/PartialResultException.class | Bin 0 -> 534 bytes .../classpath/lib/javax/naming/RefAddr.class | Bin 0 -> 1468 bytes .../lib/javax/naming/Reference.class | Bin 0 -> 4085 bytes .../lib/javax/naming/Referenceable.class | Bin 0 -> 229 bytes .../lib/javax/naming/ReferralException.class | Bin 0 -> 838 bytes .../naming/ServiceUnavailableException.class | Bin 0 -> 549 bytes .../naming/SizeLimitExceededException.class | Bin 0 -> 553 bytes .../lib/javax/naming/StringRefAddr.class | Bin 0 -> 610 bytes .../naming/TimeLimitExceededException.class | Bin 0 -> 553 bytes .../javax/naming/directory/Attribute.class | Bin 0 -> 928 bytes .../directory/AttributeInUseException.class | Bin 0 -> 557 bytes .../AttributeModificationException.class | Bin 0 -> 1327 bytes .../javax/naming/directory/Attributes.class | Bin 0 -> 757 bytes ...cAttribute$BasicAttributeEnumeration.class | Bin 0 -> 1448 bytes .../naming/directory/BasicAttribute.class | Bin 0 -> 5900 bytes ...ttributes$BasicAttributesEnumeration.class | Bin 0 -> 1671 bytes .../naming/directory/BasicAttributes.class | Bin 0 -> 4910 bytes .../javax/naming/directory/DirContext.class | Bin 0 -> 4072 bytes .../naming/directory/InitialDirContext.class | Bin 0 -> 8037 bytes .../InvalidAttributeIdentifierException.class | Bin 0 -> 593 bytes .../InvalidAttributeValueException.class | Bin 0 -> 578 bytes .../InvalidAttributesException.class | Bin 0 -> 566 bytes .../InvalidSearchControlsException.class | Bin 0 -> 578 bytes .../InvalidSearchFilterException.class | Bin 0 -> 572 bytes .../naming/directory/ModificationItem.class | Bin 0 -> 1285 bytes .../directory/NoSuchAttributeException.class | Bin 0 -> 560 bytes .../directory/SchemaViolationException.class | Bin 0 -> 560 bytes .../naming/directory/SearchControls.class | Bin 0 -> 2181 bytes .../javax/naming/directory/SearchResult.class | Bin 0 -> 2145 bytes .../lib/javax/naming/event/EventContext.class | Bin 0 -> 631 bytes .../javax/naming/event/EventDirContext.class | Bin 0 -> 853 bytes .../event/NamespaceChangeListener.class | Bin 0 -> 295 bytes .../lib/javax/naming/event/NamingEvent.class | Bin 0 -> 2012 bytes .../naming/event/NamingExceptionEvent.class | Bin 0 -> 1239 bytes .../javax/naming/event/NamingListener.class | Bin 0 -> 238 bytes .../naming/event/ObjectChangeListener.class | Bin 0 -> 243 bytes .../lib/javax/naming/ldap/Control.class | Bin 0 -> 327 bytes .../javax/naming/ldap/ControlFactory.class | Bin 0 -> 2274 bytes .../javax/naming/ldap/ExtendedRequest.class | Bin 0 -> 382 bytes .../javax/naming/ldap/ExtendedResponse.class | Bin 0 -> 231 bytes .../lib/javax/naming/ldap/HasControls.class | Bin 0 -> 233 bytes .../naming/ldap/InitialLdapContext.class | Bin 0 -> 2605 bytes .../lib/javax/naming/ldap/LdapContext.class | Bin 0 -> 779 bytes .../naming/ldap/LdapReferralException.class | Bin 0 -> 920 bytes .../javax/naming/ldap/StartTlsRequest.class | Bin 0 -> 1676 bytes .../javax/naming/ldap/StartTlsResponse.class | Bin 0 -> 995 bytes .../naming/ldap/UnsolicitedNotification.class | Bin 0 -> 329 bytes .../ldap/UnsolicitedNotificationEvent.class | Bin 0 -> 1113 bytes .../UnsolicitedNotificationListener.class | Bin 0 -> 287 bytes .../javax/naming/spi/DirObjectFactory.class | Bin 0 -> 544 bytes .../naming/spi/DirStateFactory$Result.class | Bin 0 -> 822 bytes .../javax/naming/spi/DirStateFactory.class | Bin 0 -> 678 bytes .../javax/naming/spi/DirectoryManager.class | Bin 0 -> 5499 bytes .../naming/spi/InitialContextFactory.class | Bin 0 -> 345 bytes .../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 .../naming/spi/ObjectFactoryBuilder.class | Bin 0 -> 401 bytes .../lib/javax/naming/spi/ResolveResult.class | Bin 0 -> 1913 bytes .../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 .../lib/javax/net/SocketFactory.class | Bin 0 -> 1351 bytes .../net/VanillaServerSocketFactory.class | Bin 0 -> 1067 bytes .../lib/javax/net/VanillaSocketFactory.class | Bin 0 -> 1470 bytes .../ssl/CertPathTrustManagerParameters.class | Bin 0 -> 747 bytes .../net/ssl/HandshakeCompletedEvent.class | Bin 0 -> 1889 bytes .../net/ssl/HandshakeCompletedListener.class | Bin 0 -> 252 bytes .../lib/javax/net/ssl/HostnameVerifier.class | Bin 0 -> 194 bytes .../javax/net/ssl/HttpsURLConnection.class | Bin 0 -> 3247 bytes .../lib/javax/net/ssl/KeyManager.class | Bin 0 -> 115 bytes .../javax/net/ssl/KeyManagerFactory$1.class | Bin 0 -> 717 bytes .../lib/javax/net/ssl/KeyManagerFactory.class | Bin 0 -> 4221 bytes .../javax/net/ssl/KeyManagerFactorySpi.class | Bin 0 -> 704 bytes .../net/ssl/KeyStoreBuilderParameters.class | Bin 0 -> 374 bytes .../net/ssl/ManagerFactoryParameters.class | Bin 0 -> 143 bytes .../lib/javax/net/ssl/SSLContext.class | Bin 0 -> 4340 bytes .../lib/javax/net/ssl/SSLContextSpi.class | Bin 0 -> 861 bytes .../lib/javax/net/ssl/SSLEngine.class | Bin 0 -> 2522 bytes .../ssl/SSLEngineResult$HandshakeStatus.class | Bin 0 -> 1388 bytes .../net/ssl/SSLEngineResult$Status.class | Bin 0 -> 1265 bytes .../lib/javax/net/ssl/SSLEngineResult.class | Bin 0 -> 2115 bytes .../lib/javax/net/ssl/SSLException.class | Bin 0 -> 855 bytes .../javax/net/ssl/SSLHandshakeException.class | Bin 0 -> 390 bytes .../lib/javax/net/ssl/SSLKeyException.class | Bin 0 -> 372 bytes .../net/ssl/SSLPeerUnverifiedException.class | Bin 0 -> 405 bytes .../lib/javax/net/ssl/SSLPermission.class | Bin 0 -> 579 bytes .../javax/net/ssl/SSLProtocolException.class | Bin 0 -> 387 bytes .../lib/javax/net/ssl/SSLServerSocket.class | Bin 0 -> 1272 bytes .../net/ssl/SSLServerSocketFactory.class | Bin 0 -> 2694 bytes .../lib/javax/net/ssl/SSLSession.class | Bin 0 -> 1067 bytes .../net/ssl/SSLSessionBindingEvent.class | Bin 0 -> 852 bytes .../net/ssl/SSLSessionBindingListener.class | Bin 0 -> 264 bytes .../lib/javax/net/ssl/SSLSessionContext.class | Bin 0 -> 357 bytes .../lib/javax/net/ssl/SSLSocket.class | Bin 0 -> 1795 bytes .../lib/javax/net/ssl/SSLSocketFactory.class | Bin 0 -> 2826 bytes .../net/ssl/TrivialHostnameVerifier.class | Bin 0 -> 568 bytes .../lib/javax/net/ssl/TrustManager.class | Bin 0 -> 119 bytes .../javax/net/ssl/TrustManagerFactory$1.class | Bin 0 -> 727 bytes .../javax/net/ssl/TrustManagerFactory.class | Bin 0 -> 4189 bytes .../net/ssl/TrustManagerFactorySpi.class | Bin 0 -> 619 bytes .../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 .../javax/print/DocFlavor$BYTE_ARRAY.class | Bin 0 -> 2275 bytes .../javax/print/DocFlavor$CHAR_ARRAY.class | Bin 0 -> 758 bytes .../javax/print/DocFlavor$INPUT_STREAM.class | Bin 0 -> 2298 bytes .../lib/javax/print/DocFlavor$READER.class | Bin 0 -> 758 bytes .../print/DocFlavor$SERVICE_FORMATTED.class | Bin 0 -> 910 bytes .../lib/javax/print/DocFlavor$STRING.class | Bin 0 -> 760 bytes .../lib/javax/print/DocFlavor$URL.class | Bin 0 -> 2264 bytes .../classpath/lib/javax/print/DocFlavor.class | Bin 0 -> 5538 bytes .../lib/javax/print/DocPrintJob.class | Bin 0 -> 719 bytes .../lib/javax/print/FlavorException.class | Bin 0 -> 184 bytes .../classpath/lib/javax/print/MultiDoc.class | Bin 0 -> 248 bytes .../lib/javax/print/MultiDocPrintJob.class | Bin 0 -> 303 bytes .../javax/print/MultiDocPrintService.class | Bin 0 -> 233 bytes .../lib/javax/print/PrintException.class | Bin 0 -> 788 bytes .../lib/javax/print/PrintService.class | Bin 0 -> 1813 bytes .../lib/javax/print/PrintServiceLookup.class | Bin 0 -> 3781 bytes .../classpath/lib/javax/print/ServiceUI.class | Bin 0 -> 1871 bytes .../lib/javax/print/ServiceUIFactory.class | Bin 0 -> 814 bytes .../classpath/lib/javax/print/SimpleDoc.class | Bin 0 -> 2719 bytes .../lib/javax/print/StreamPrintService.class | Bin 0 -> 779 bytes .../print/StreamPrintServiceFactory.class | Bin 0 -> 1596 bytes .../lib/javax/print/URIException.class | Bin 0 -> 333 bytes .../lib/javax/print/attribute/Attribute.class | Bin 0 -> 312 bytes .../javax/print/attribute/AttributeSet.class | Bin 0 -> 706 bytes ...etUtilities$SynchronizedAttributeSet.class | Bin 0 -> 2396 bytes ...tilities$SynchronizedDocAttributeSet.class | Bin 0 -> 776 bytes ...ies$SynchronizedPrintJobAttributeSet.class | Bin 0 -> 806 bytes ...SynchronizedPrintRequestAttributeSet.class | Bin 0 -> 830 bytes ...SynchronizedPrintServiceAttributeSet.class | Bin 0 -> 830 bytes ...etUtilities$UnmodifiableAttributeSet.class | Bin 0 -> 2385 bytes ...tilities$UnmodifiableDocAttributeSet.class | Bin 0 -> 776 bytes ...ies$UnmodifiablePrintJobAttributeSet.class | Bin 0 -> 806 bytes ...UnmodifiablePrintRequestAttributeSet.class | Bin 0 -> 830 bytes ...UnmodifiablePrintServiceAttributeSet.class | Bin 0 -> 830 bytes .../attribute/AttributeSetUtilities.class | Bin 0 -> 4904 bytes .../print/attribute/DateTimeSyntax.class | Bin 0 -> 1129 bytes .../javax/print/attribute/DocAttribute.class | Bin 0 -> 166 bytes .../print/attribute/DocAttributeSet.class | Bin 0 -> 287 bytes .../javax/print/attribute/EnumSyntax.class | Bin 0 -> 1919 bytes .../print/attribute/HashAttributeSet.class | Bin 0 -> 6236 bytes .../print/attribute/HashDocAttributeSet.class | Bin 0 -> 1266 bytes .../attribute/HashPrintJobAttributeSet.class | Bin 0 -> 1321 bytes .../HashPrintRequestAttributeSet.class | Bin 0 -> 1365 bytes .../HashPrintServiceAttributeSet.class | Bin 0 -> 1365 bytes .../javax/print/attribute/IntegerSyntax.class | Bin 0 -> 1215 bytes .../print/attribute/PrintJobAttribute.class | Bin 0 -> 176 bytes .../attribute/PrintJobAttributeSet.class | Bin 0 -> 297 bytes .../attribute/PrintRequestAttribute.class | Bin 0 -> 184 bytes .../attribute/PrintRequestAttributeSet.class | Bin 0 -> 305 bytes .../attribute/PrintServiceAttribute.class | Bin 0 -> 184 bytes .../attribute/PrintServiceAttributeSet.class | Bin 0 -> 305 bytes .../print/attribute/ResolutionSyntax.class | Bin 0 -> 2590 bytes .../attribute/SetOfIntegerSyntax$1.class | Bin 0 -> 745 bytes .../print/attribute/SetOfIntegerSyntax.class | Bin 0 -> 5008 bytes .../javax/print/attribute/Size2DSyntax.class | Bin 0 -> 2497 bytes .../attribute/SupportedValuesAttribute.class | Bin 0 -> 190 bytes .../javax/print/attribute/TextSyntax.class | Bin 0 -> 1403 bytes .../lib/javax/print/attribute/URISyntax.class | Bin 0 -> 1100 bytes .../attribute/UnmodifiableSetException.class | Bin 0 -> 496 bytes .../attribute/standard/Chromaticity.class | Bin 0 -> 1462 bytes .../attribute/standard/ColorSupported.class | Bin 0 -> 1410 bytes .../attribute/standard/Compression.class | Bin 0 -> 1505 bytes .../print/attribute/standard/Copies.class | Bin 0 -> 1081 bytes .../attribute/standard/CopiesSupported.class | Bin 0 -> 1274 bytes .../standard/DateTimeAtCompleted.class | Bin 0 -> 985 bytes .../standard/DateTimeAtCreation.class | Bin 0 -> 981 bytes .../standard/DateTimeAtProcessing.class | Bin 0 -> 989 bytes .../attribute/standard/Destination.class | Bin 0 -> 1001 bytes .../attribute/standard/DocumentName.class | Bin 0 -> 1016 bytes .../print/attribute/standard/Fidelity.class | Bin 0 -> 1432 bytes .../print/attribute/standard/Finishings.class | Bin 0 -> 3008 bytes .../attribute/standard/JobHoldUntil.class | Bin 0 -> 1007 bytes .../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 .../standard/JobKOctetsProcessed.class | Bin 0 -> 1084 bytes .../standard/JobKOctetsSupported.class | Bin 0 -> 1132 bytes .../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 .../print/attribute/standard/JobName.class | Bin 0 -> 1047 bytes .../standard/JobOriginatingUserName.class | Bin 0 -> 1059 bytes .../attribute/standard/JobPriority.class | Bin 0 -> 1098 bytes .../standard/JobPrioritySupported.class | Bin 0 -> 1091 bytes .../print/attribute/standard/JobSheets.class | Bin 0 -> 1400 bytes .../print/attribute/standard/JobState.class | Bin 0 -> 1864 bytes .../attribute/standard/JobStateReason.class | Bin 0 -> 4071 bytes .../attribute/standard/JobStateReasons.class | Bin 0 -> 2137 bytes .../print/attribute/standard/Media.class | Bin 0 -> 1073 bytes .../print/attribute/standard/MediaName.class | Bin 0 -> 1275 bytes .../standard/MediaPrintableArea.class | Bin 0 -> 3086 bytes .../standard/MediaSize$Engineering.class | Bin 0 -> 1050 bytes .../attribute/standard/MediaSize$ISO.class | Bin 0 -> 2547 bytes .../attribute/standard/MediaSize$JIS.class | Bin 0 -> 2622 bytes .../attribute/standard/MediaSize$NA.class | Bin 0 -> 2218 bytes .../attribute/standard/MediaSize$Other.class | Bin 0 -> 1602 bytes .../print/attribute/standard/MediaSize.class | Bin 0 -> 3575 bytes .../attribute/standard/MediaSizeName.class | Bin 0 -> 6466 bytes .../print/attribute/standard/MediaTray.class | Bin 0 -> 1465 bytes .../standard/MultipleDocumentHandling.class | Bin 0 -> 1826 bytes .../standard/NumberOfDocuments.class | Bin 0 -> 1075 bytes .../standard/NumberOfInterveningJobs.class | Bin 0 -> 1100 bytes .../print/attribute/standard/NumberUp.class | Bin 0 -> 1001 bytes .../standard/NumberUpSupported.class | Bin 0 -> 1486 bytes .../standard/OrientationRequested.class | Bin 0 -> 1800 bytes .../standard/OutputDeviceAssigned.class | Bin 0 -> 1052 bytes .../standard/PDLOverrideSupported.class | Bin 0 -> 1449 bytes .../print/attribute/standard/PageRanges.class | Bin 0 -> 1667 bytes .../attribute/standard/PagesPerMinute.class | Bin 0 -> 1067 bytes .../standard/PagesPerMinuteColor.class | Bin 0 -> 1088 bytes .../standard/PresentationDirection.class | Bin 0 -> 2046 bytes .../attribute/standard/PrintQuality.class | Bin 0 -> 1592 bytes .../attribute/standard/PrinterInfo.class | Bin 0 -> 1020 bytes .../standard/PrinterIsAcceptingJobs.class | Bin 0 -> 1484 bytes .../attribute/standard/PrinterLocation.class | Bin 0 -> 1040 bytes .../standard/PrinterMakeAndModel.class | Bin 0 -> 1055 bytes .../standard/PrinterMessageFromOperator.class | Bin 0 -> 1078 bytes .../attribute/standard/PrinterMoreInfo.class | Bin 0 -> 961 bytes .../PrinterMoreInfoManufacturer.class | Bin 0 -> 1010 bytes .../attribute/standard/PrinterName.class | Bin 0 -> 1020 bytes .../standard/PrinterResolution.class | Bin 0 -> 1103 bytes .../attribute/standard/PrinterState.class | Bin 0 -> 1540 bytes .../standard/PrinterStateReason.class | Bin 0 -> 4201 bytes .../standard/PrinterStateReasons.class | Bin 0 -> 3545 bytes .../print/attribute/standard/PrinterURI.class | Bin 0 -> 940 bytes .../attribute/standard/QueuedJobCount.class | Bin 0 -> 1067 bytes .../ReferenceUriSchemesSupported.class | Bin 0 -> 1860 bytes .../standard/RequestingUserName.class | Bin 0 -> 1046 bytes .../print/attribute/standard/Severity.class | Bin 0 -> 1400 bytes .../attribute/standard/SheetCollate.class | Bin 0 -> 1481 bytes .../print/attribute/standard/Sides.class | Bin 0 -> 1662 bytes .../lib/javax/print/event/PrintEvent.class | Bin 0 -> 704 bytes .../javax/print/event/PrintJobAdapter.class | Bin 0 -> 973 bytes .../print/event/PrintJobAttributeEvent.class | Bin 0 -> 953 bytes .../event/PrintJobAttributeListener.class | Bin 0 -> 223 bytes .../lib/javax/print/event/PrintJobEvent.class | Bin 0 -> 1029 bytes .../javax/print/event/PrintJobListener.class | Bin 0 -> 354 bytes .../event/PrintServiceAttributeEvent.class | Bin 0 -> 921 bytes .../event/PrintServiceAttributeListener.class | Bin 0 -> 235 bytes .../lib/javax/rmi/CORBA/ClassDesc.class | Bin 0 -> 432 bytes .../CORBA/PortableRemoteObjectDelegate.class | Bin 0 -> 576 bytes .../classpath/lib/javax/rmi/CORBA/Stub.class | Bin 0 -> 2763 bytes .../lib/javax/rmi/CORBA/StubDelegate.class | Bin 0 -> 652 bytes .../classpath/lib/javax/rmi/CORBA/Tie.class | Bin 0 -> 437 bytes .../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 .../rmi/CORBA/ValueHandlerMultiFormat.class | Bin 0 -> 312 bytes .../lib/javax/rmi/PortableRemoteObject.class | Bin 0 -> 1607 bytes .../rmi/ssl/SslRMIClientSocketFactory.class | Bin 0 -> 2635 bytes .../rmi/ssl/SslRMIServerSocketFactory.class | Bin 0 -> 2688 bytes .../javax/security/auth/AuthPermission.class | Bin 0 -> 530 bytes .../auth/DestroyFailedException.class | Bin 0 -> 479 bytes .../lib/javax/security/auth/Destroyable.class | Bin 0 -> 246 bytes .../lib/javax/security/auth/Policy.class | Bin 0 -> 1059 bytes ...rivateCredentialPermission$CredOwner.class | Bin 0 -> 1186 bytes .../auth/PrivateCredentialPermission.class | Bin 0 -> 3273 bytes .../auth/RefreshFailedException.class | Bin 0 -> 479 bytes .../lib/javax/security/auth/Refreshable.class | Bin 0 -> 244 bytes .../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 .../security/auth/callback/Callback.class | Bin 0 -> 126 bytes .../auth/callback/CallbackHandler.class | Bin 0 -> 316 bytes .../auth/callback/ChoiceCallback.class | Bin 0 -> 2286 bytes .../auth/callback/ConfirmationCallback.class | Bin 0 -> 3748 bytes .../auth/callback/LanguageCallback.class | Bin 0 -> 664 bytes .../security/auth/callback/NameCallback.class | Bin 0 -> 1477 bytes .../auth/callback/PasswordCallback.class | Bin 0 -> 1467 bytes .../auth/callback/TextInputCallback.class | Bin 0 -> 1502 bytes .../auth/callback/TextOutputCallback.class | Bin 0 -> 1226 bytes .../UnsupportedCallbackException.class | Bin 0 -> 847 bytes .../kerberos/DelegationPermission$1.class | Bin 0 -> 1699 bytes .../auth/kerberos/DelegationPermission.class | Bin 0 -> 1471 bytes .../security/auth/kerberos/KerberosKey.class | Bin 0 -> 2715 bytes .../auth/kerberos/KerberosPrincipal.class | Bin 0 -> 2656 bytes .../auth/kerberos/KerberosTicket.class | Bin 0 -> 4697 bytes .../security/auth/kerberos/KeyImpl.class | Bin 0 -> 1062 bytes .../auth/kerberos/ServicePermission$1.class | Bin 0 -> 1681 bytes .../auth/kerberos/ServicePermission.class | Bin 0 -> 2220 bytes .../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 ...gurationEntry$LoginModuleControlFlag.class | Bin 0 -> 923 bytes .../auth/login/AppConfigurationEntry.class | Bin 0 -> 2363 bytes .../security/auth/login/Configuration$1.class | Bin 0 -> 747 bytes .../security/auth/login/Configuration.class | Bin 0 -> 1789 bytes .../auth/login/CredentialException.class | Bin 0 -> 567 bytes .../login/CredentialExpiredException.class | Bin 0 -> 593 bytes .../login/CredentialNotFoundException.class | Bin 0 -> 596 bytes .../auth/login/FailedLoginException.class | Bin 0 -> 570 bytes .../security/auth/login/LoginContext.class | Bin 0 -> 6202 bytes .../security/auth/login/LoginException.class | Bin 0 -> 550 bytes .../auth/login/NullConfiguration.class | Bin 0 -> 629 bytes .../javax/security/auth/spi/LoginModule.class | Bin 0 -> 603 bytes .../security/auth/x500/X500Principal.class | Bin 0 -> 11344 bytes .../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 .../security/cert/CertificateException.class | Bin 0 -> 469 bytes .../cert/CertificateExpiredException.class | Bin 0 -> 511 bytes .../CertificateNotYetValidException.class | Bin 0 -> 523 bytes .../cert/CertificateParsingException.class | Bin 0 -> 511 bytes .../javax/security/cert/X509CertBridge.class | Bin 0 -> 3538 bytes .../javax/security/cert/X509Certificate.class | Bin 0 -> 1891 bytes .../sasl/AuthenticationException.class | Bin 0 -> 666 bytes .../security/sasl/AuthorizeCallback.class | Bin 0 -> 1357 bytes .../javax/security/sasl/RealmCallback.class | Bin 0 -> 555 bytes .../security/sasl/RealmChoiceCallback.class | Bin 0 -> 534 bytes .../lib/javax/security/sasl/Sasl.class | Bin 0 -> 6585 bytes .../lib/javax/security/sasl/SaslClient.class | Bin 0 -> 496 bytes .../security/sasl/SaslClientFactory.class | Bin 0 -> 742 bytes .../javax/security/sasl/SaslException.class | Bin 0 -> 1813 bytes .../lib/javax/security/sasl/SaslServer.class | Bin 0 -> 495 bytes .../security/sasl/SaslServerFactory.class | Bin 0 -> 704 bytes .../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 .../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 .../javax/sound/midi/MidiDevice$Info.class | Bin 0 -> 1283 bytes .../lib/javax/sound/midi/MidiDevice.class | Bin 0 -> 621 bytes .../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 .../lib/javax/sound/midi/Patch.class | Bin 0 -> 550 bytes .../lib/javax/sound/midi/Receiver.class | Bin 0 -> 248 bytes .../lib/javax/sound/midi/Sequence.class | Bin 0 -> 3224 bytes .../javax/sound/midi/Sequencer$SyncMode.class | Bin 0 -> 1124 bytes .../lib/javax/sound/midi/Sequencer.class | Bin 0 -> 1751 bytes .../lib/javax/sound/midi/ShortMessage.class | Bin 0 -> 3400 bytes .../lib/javax/sound/midi/Soundbank.class | Bin 0 -> 430 bytes .../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 .../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 .../sound/midi/spi/MidiDeviceProvider.class | Bin 0 -> 927 bytes .../javax/sound/midi/spi/MidiFileReader.class | Bin 0 -> 856 bytes .../javax/sound/midi/spi/MidiFileWriter.class | Bin 0 -> 1011 bytes .../sound/midi/spi/SoundbankReader.class | Bin 0 -> 620 bytes .../sound/sampled/AudioFileFormat$Type.class | Bin 0 -> 1402 bytes .../javax/sound/sampled/AudioFileFormat.class | Bin 0 -> 2977 bytes .../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 .../sound/sampled/AudioInputStream.class | Bin 0 -> 2914 bytes .../javax/sound/sampled/AudioPermission.class | Bin 0 -> 597 bytes .../lib/javax/sound/sampled/AudioSystem.class | Bin 0 -> 11940 bytes .../sound/sampled/BooleanControl$Type.class | Bin 0 -> 659 bytes .../javax/sound/sampled/BooleanControl.class | Bin 0 -> 1626 bytes .../lib/javax/sound/sampled/Clip.class | Bin 0 -> 615 bytes .../sound/sampled/CompoundControl$Type.class | Bin 0 -> 476 bytes .../javax/sound/sampled/CompoundControl.class | Bin 0 -> 1195 bytes .../javax/sound/sampled/Control$Type.class | Bin 0 -> 783 bytes .../lib/javax/sound/sampled/Control.class | Bin 0 -> 705 bytes .../javax/sound/sampled/DataLine$Info.class | Bin 0 -> 2896 bytes .../lib/javax/sound/sampled/DataLine.class | Bin 0 -> 570 bytes .../sound/sampled/EnumControl$Type.class | Bin 0 -> 584 bytes .../lib/javax/sound/sampled/EnumControl.class | Bin 0 -> 1633 bytes .../sound/sampled/FloatControl$Type.class | Bin 0 -> 1080 bytes .../javax/sound/sampled/FloatControl.class | Bin 0 -> 2914 bytes .../lib/javax/sound/sampled/Line$Info.class | Bin 0 -> 995 bytes .../lib/javax/sound/sampled/Line.class | Bin 0 -> 683 bytes .../javax/sound/sampled/LineEvent$Type.class | Bin 0 -> 1067 bytes .../lib/javax/sound/sampled/LineEvent.class | Bin 0 -> 1926 bytes .../javax/sound/sampled/LineListener.class | Bin 0 -> 210 bytes .../sampled/LineUnavailableException.class | Bin 0 -> 545 bytes .../lib/javax/sound/sampled/Mixer$Info.class | Bin 0 -> 1545 bytes .../lib/javax/sound/sampled/Mixer.class | Bin 0 -> 995 bytes .../lib/javax/sound/sampled/Port$Info.class | Bin 0 -> 2235 bytes .../lib/javax/sound/sampled/Port.class | Bin 0 -> 214 bytes .../lib/javax/sound/sampled/ReverbType.class | Bin 0 -> 2055 bytes .../javax/sound/sampled/SourceDataLine.class | Bin 0 -> 376 bytes .../javax/sound/sampled/TargetDataLine.class | Bin 0 -> 375 bytes .../UnsupportedAudioFileException.class | Bin 0 -> 560 bytes .../sound/sampled/spi/AudioFileReader.class | Bin 0 -> 931 bytes .../sound/sampled/spi/AudioFileWriter.class | Bin 0 -> 1500 bytes .../spi/FormatConversionProvider.class | Bin 0 -> 2222 bytes .../sound/sampled/spi/MixerProvider.class | Bin 0 -> 839 bytes .../lib/javax/sql/ConnectionEvent.class | Bin 0 -> 771 bytes .../javax/sql/ConnectionEventListener.class | Bin 0 -> 262 bytes .../javax/sql/ConnectionPoolDataSource.class | Bin 0 -> 543 bytes .../classpath/lib/javax/sql/DataSource.class | Bin 0 -> 495 bytes .../lib/javax/sql/PooledConnection.class | Bin 0 -> 373 bytes libjava/classpath/lib/javax/sql/RowSet.class | Bin 0 -> 2753 bytes .../classpath/lib/javax/sql/RowSetEvent.class | Bin 0 -> 370 bytes .../lib/javax/sql/RowSetInternal.class | Bin 0 -> 429 bytes .../lib/javax/sql/RowSetListener.class | Bin 0 -> 246 bytes .../lib/javax/sql/RowSetMetaData.class | Bin 0 -> 824 bytes .../lib/javax/sql/RowSetReader.class | Bin 0 -> 216 bytes .../lib/javax/sql/RowSetWriter.class | Bin 0 -> 217 bytes .../lib/javax/sql/XAConnection.class | Bin 0 -> 261 bytes .../lib/javax/sql/XADataSource.class | Bin 0 -> 507 bytes .../lib/javax/swing/AbstractAction.class | Bin 0 -> 3209 bytes .../lib/javax/swing/AbstractButton$1.class | Bin 0 -> 1793 bytes ...tractButton$AccessibleAbstractButton.class | Bin 0 -> 8947 bytes .../AbstractButton$ButtonChangeListener.class | Bin 0 -> 954 bytes .../swing/AbstractButton$EventHandler.class | Bin 0 -> 1356 bytes .../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 .../javax/swing/AbstractSpinnerModel.class | Bin 0 -> 1771 bytes .../classpath/lib/javax/swing/Action.class | Bin 0 -> 861 bytes .../classpath/lib/javax/swing/ActionMap.class | Bin 0 -> 2209 bytes .../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 .../Box$Filler$AccessibleBoxFiller.class | Bin 0 -> 753 bytes .../lib/javax/swing/Box$Filler.class | Bin 0 -> 1392 bytes libjava/classpath/lib/javax/swing/Box.class | Bin 0 -> 2326 bytes .../classpath/lib/javax/swing/BoxLayout.class | Bin 0 -> 5920 bytes .../lib/javax/swing/ButtonGroup.class | Bin 0 -> 2388 bytes .../lib/javax/swing/ButtonModel.class | Bin 0 -> 857 bytes .../lib/javax/swing/CellEditor.class | Bin 0 -> 423 bytes ...dererPane$AccessibleCellRendererPane.class | Bin 0 -> 878 bytes .../lib/javax/swing/CellRendererPane.class | Bin 0 -> 2772 bytes .../lib/javax/swing/ComboBoxEditor.class | Bin 0 -> 380 bytes .../lib/javax/swing/ComboBoxModel.class | Bin 0 -> 247 bytes .../CompatibilityFocusTraversalPolicy.class | Bin 0 -> 2190 bytes .../lib/javax/swing/ComponentInputMap.class | Bin 0 -> 1635 bytes .../lib/javax/swing/DebugGraphics.class | Bin 0 -> 14084 bytes .../swing/DefaultBoundedRangeModel.class | Bin 0 -> 5095 bytes .../lib/javax/swing/DefaultButtonModel.class | Bin 0 -> 6192 bytes .../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 .../javax/swing/DefaultComboBoxModel.class | Bin 0 -> 2973 bytes .../javax/swing/DefaultDesktopManager.class | Bin 0 -> 7571 bytes .../lib/javax/swing/DefaultFocusManager.class | Bin 0 -> 1469 bytes .../DefaultListCellRenderer$UIResource.class | Bin 0 -> 442 bytes .../javax/swing/DefaultListCellRenderer.class | Bin 0 -> 3535 bytes .../lib/javax/swing/DefaultListModel.class | Bin 0 -> 4580 bytes .../swing/DefaultListSelectionModel.class | Bin 0 -> 8540 bytes .../swing/DefaultSingleSelectionModel.class | Bin 0 -> 2350 bytes .../lib/javax/swing/DesktopManager.class | Bin 0 -> 651 bytes .../FocusManager$WrappingFocusManager.class | Bin 0 -> 5486 bytes .../lib/javax/swing/FocusManager.class | Bin 0 -> 1199 bytes .../lib/javax/swing/GrayFilter.class | Bin 0 -> 1375 bytes libjava/classpath/lib/javax/swing/Icon.class | Bin 0 -> 221 bytes .../lib/javax/swing/ImageIcon$1.class | Bin 0 -> 372 bytes .../swing/ImageIcon$AccessibleImageIcon.class | Bin 0 -> 2147 bytes .../classpath/lib/javax/swing/ImageIcon.class | Bin 0 -> 4406 bytes .../classpath/lib/javax/swing/InputMap.class | Bin 0 -> 2530 bytes .../lib/javax/swing/InputVerifier.class | Bin 0 -> 479 bytes .../InternalFrameFocusTraversalPolicy.class | Bin 0 -> 624 bytes .../swing/JApplet$AccessibleJApplet.class | Bin 0 -> 509 bytes .../classpath/lib/javax/swing/JApplet.class | Bin 0 -> 4021 bytes .../swing/JButton$AccessibleJButton.class | Bin 0 -> 753 bytes .../classpath/lib/javax/swing/JButton.class | Bin 0 -> 3347 bytes .../swing/JCheckBox$AccessibleJCheckBox.class | Bin 0 -> 770 bytes .../classpath/lib/javax/swing/JCheckBox.class | Bin 0 -> 2782 bytes ...MenuItem$AccessibleJCheckBoxMenuItem.class | Bin 0 -> 894 bytes .../lib/javax/swing/JCheckBoxMenuItem.class | Bin 0 -> 2645 bytes ...ColorChooser$AccessibleJColorChooser.class | Bin 0 -> 865 bytes ...ColorChooser$DefaultOKCancelListener.class | Bin 0 -> 769 bytes .../JColorChooser$DefaultResetListener.class | Bin 0 -> 876 bytes .../lib/javax/swing/JColorChooser.class | Bin 0 -> 8097 bytes .../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 .../classpath/lib/javax/swing/JComboBox.class | Bin 0 -> 15989 bytes .../lib/javax/swing/JComponent$1.class | Bin 0 -> 586 bytes ...Component$AccessibleContainerHandler.class | Bin 0 -> 1529 bytes ...bleJComponent$AccessibleFocusHandler.class | Bin 0 -> 1215 bytes .../JComponent$AccessibleJComponent.class | Bin 0 -> 4520 bytes .../JComponent$ActionListenerProxy.class | Bin 0 -> 1101 bytes .../lib/javax/swing/JComponent.class | Bin 0 -> 36725 bytes .../JDesktopPane$AccessibleJDesktopPane.class | Bin 0 -> 855 bytes .../lib/javax/swing/JDesktopPane.class | Bin 0 -> 4836 bytes .../swing/JDialog$AccessibleJDialog.class | Bin 0 -> 506 bytes .../classpath/lib/javax/swing/JDialog.class | Bin 0 -> 6937 bytes .../lib/javax/swing/JEditorPane$1.class | Bin 0 -> 914 bytes .../lib/javax/swing/JEditorPane$2.class | Bin 0 -> 971 bytes .../JEditorPane$AccessibleJEditorPane.class | Bin 0 -> 999 bytes ...EditorPane$AccessibleJEditorPaneHTML.class | Bin 0 -> 738 bytes .../swing/JEditorPane$EditorKitMapping.class | Bin 0 -> 603 bytes ...eAccessibleHypertextSupport$HTMLLink.class | Bin 0 -> 3759 bytes ...EditorPaneAccessibleHypertextSupport.class | Bin 0 -> 3232 bytes .../javax/swing/JEditorPane$PageLoader.class | Bin 0 -> 2158 bytes .../javax/swing/JEditorPane$PageStream.class | Bin 0 -> 1492 bytes .../swing/JEditorPane$PlainEditorKit.class | Bin 0 -> 674 bytes .../lib/javax/swing/JEditorPane.class | Bin 0 -> 12028 bytes .../lib/javax/swing/JFileChooser$1.class | Bin 0 -> 744 bytes .../JFileChooser$AccessibleJFileChooser.class | Bin 0 -> 791 bytes .../lib/javax/swing/JFileChooser.class | Bin 0 -> 18403 bytes ...FormattedTextField$AbstractFormatter.class | Bin 0 -> 2454 bytes ...edTextField$AbstractFormatterFactory.class | Bin 0 -> 567 bytes .../lib/javax/swing/JFormattedTextField.class | Bin 0 -> 5767 bytes .../javax/swing/JFrame$AccessibleJFrame.class | Bin 0 -> 494 bytes .../classpath/lib/javax/swing/JFrame.class | Bin 0 -> 7071 bytes ...ternalFrame$AccessibleJInternalFrame.class | Bin 0 -> 1792 bytes ...$JDesktopIcon$AccessibleJDesktopIcon.class | Bin 0 -> 1831 bytes .../swing/JInternalFrame$JDesktopIcon.class | Bin 0 -> 2259 bytes .../lib/javax/swing/JInternalFrame.class | Bin 0 -> 17072 bytes .../javax/swing/JLabel$AccessibleJLabel.class | Bin 0 -> 5379 bytes .../classpath/lib/javax/swing/JLabel.class | Bin 0 -> 8529 bytes .../JLayeredPane$AccessibleJLayeredPane.class | Bin 0 -> 791 bytes .../lib/javax/swing/JLayeredPane.class | Bin 0 -> 8209 bytes .../classpath/lib/javax/swing/JList$1.class | Bin 0 -> 790 bytes .../classpath/lib/javax/swing/JList$2.class | Bin 0 -> 846 bytes .../classpath/lib/javax/swing/JList$3.class | Bin 0 -> 829 bytes ...AccessibleJList$AccessibleJListChild.class | Bin 0 -> 6064 bytes .../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 .../javax/swing/JMenu$AccessibleJMenu.class | Bin 0 -> 3677 bytes .../swing/JMenu$ActionChangedListener.class | Bin 0 -> 1012 bytes .../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 .../swing/JMenuBar$AccessibleJMenuBar.class | Bin 0 -> 2223 bytes .../classpath/lib/javax/swing/JMenuBar.class | Bin 0 -> 7798 bytes .../lib/javax/swing/JMenuItem$1.class | Bin 0 -> 997 bytes .../swing/JMenuItem$AccessibleJMenuItem.class | Bin 0 -> 2194 bytes .../classpath/lib/javax/swing/JMenuItem.class | Bin 0 -> 10317 bytes .../lib/javax/swing/JOptionPane$1.class | Bin 0 -> 441 bytes .../lib/javax/swing/JOptionPane$2.class | Bin 0 -> 447 bytes .../JOptionPane$AccessibleJOptionPane.class | Bin 0 -> 845 bytes .../JOptionPane$ValuePropertyHandler.class | Bin 0 -> 1144 bytes .../lib/javax/swing/JOptionPane.class | Bin 0 -> 17932 bytes .../javax/swing/JPanel$AccessibleJPanel.class | Bin 0 -> 730 bytes .../classpath/lib/javax/swing/JPanel.class | Bin 0 -> 1964 bytes ...sswordField$AccessibleJPasswordField.class | Bin 0 -> 874 bytes .../lib/javax/swing/JPasswordField.class | Bin 0 -> 3032 bytes .../lib/javax/swing/JPopupMenu$1.class | Bin 0 -> 592 bytes .../lib/javax/swing/JPopupMenu$2.class | Bin 0 -> 639 bytes .../JPopupMenu$AccessibleJPopupMenu.class | Bin 0 -> 835 bytes .../JPopupMenu$ActionChangeListener.class | Bin 0 -> 833 bytes .../javax/swing/JPopupMenu$Separator.class | Bin 0 -> 503 bytes .../lib/javax/swing/JPopupMenu.class | Bin 0 -> 12623 bytes .../lib/javax/swing/JProgressBar$1.class | Bin 0 -> 780 bytes .../JProgressBar$AccessibleJProgressBar.class | Bin 0 -> 2399 bytes .../lib/javax/swing/JProgressBar.class | Bin 0 -> 7973 bytes .../JRadioButton$AccessibleJRadioButton.class | Bin 0 -> 864 bytes .../lib/javax/swing/JRadioButton.class | Bin 0 -> 2256 bytes ...uItem$AccessibleJRadioButtonMenuItem.class | Bin 0 -> 924 bytes .../javax/swing/JRadioButtonMenuItem.class | Bin 0 -> 2374 bytes .../swing/JRootPane$AccessibleJRootPane.class | Bin 0 -> 825 bytes .../javax/swing/JRootPane$RootLayout.class | Bin 0 -> 3577 bytes .../classpath/lib/javax/swing/JRootPane.class | Bin 0 -> 6631 bytes .../JScrollBar$AccessibleJScrollBar.class | Bin 0 -> 2501 bytes .../JScrollBar$ScrollBarChangeListener.class | Bin 0 -> 1222 bytes .../lib/javax/swing/JScrollBar.class | Bin 0 -> 7898 bytes .../JScrollPane$AccessibleJScrollPane.class | Bin 0 -> 1495 bytes .../javax/swing/JScrollPane$ScrollBar.class | Bin 0 -> 1423 bytes .../lib/javax/swing/JScrollPane.class | Bin 0 -> 10207 bytes .../JSeparator$AccessibleJSeparator.class | Bin 0 -> 834 bytes .../lib/javax/swing/JSeparator.class | Bin 0 -> 2623 bytes .../classpath/lib/javax/swing/JSlider$1.class | Bin 0 -> 750 bytes .../swing/JSlider$AccessibleJSlider.class | Bin 0 -> 2348 bytes .../javax/swing/JSlider$LabelUIResource.class | Bin 0 -> 672 bytes .../classpath/lib/javax/swing/JSlider.class | Bin 0 -> 11001 bytes .../lib/javax/swing/JSpinner$DateEditor.class | Bin 0 -> 2032 bytes .../swing/JSpinner$DateEditorFormatter.class | Bin 0 -> 708 bytes .../javax/swing/JSpinner$DefaultEditor.class | Bin 0 -> 3921 bytes .../lib/javax/swing/JSpinner$ListEditor.class | Bin 0 -> 693 bytes .../javax/swing/JSpinner$ModelListener.class | Bin 0 -> 704 bytes .../javax/swing/JSpinner$NumberEditor.class | Bin 0 -> 2057 bytes .../JSpinner$NumberEditorFormatter.class | Bin 0 -> 722 bytes .../classpath/lib/javax/swing/JSpinner.class | Bin 0 -> 4828 bytes .../JSplitPane$AccessibleJSplitPane.class | Bin 0 -> 2425 bytes .../lib/javax/swing/JSplitPane.class | Bin 0 -> 9784 bytes .../JTabbedPane$AccessibleJTabbedPane.class | Bin 0 -> 3122 bytes .../swing/JTabbedPane$ModelListener.class | Bin 0 -> 810 bytes .../lib/javax/swing/JTabbedPane$Page.class | Bin 0 -> 5502 bytes .../lib/javax/swing/JTabbedPane.class | Bin 0 -> 14724 bytes ...ccessibleJTable$AccessibleJTableCell.class | Bin 0 -> 6478 bytes ...bleJTable$AccessibleJTableHeaderCell.class | Bin 0 -> 5760 bytes ...leJTable$AccessibleJTableModelChange.class | Bin 0 -> 1316 bytes ...cessibleJTable$AccessibleTableHeader.class | Bin 0 -> 4585 bytes .../javax/swing/JTable$AccessibleJTable.class | Bin 0 -> 13524 bytes .../swing/JTable$BooleanCellRenderer.class | Bin 0 -> 2085 bytes .../javax/swing/JTable$DateCellRenderer.class | Bin 0 -> 1275 bytes .../swing/JTable$DoubleCellRenderer.class | Bin 0 -> 1221 bytes .../swing/JTable$FloatCellRenderer.class | Bin 0 -> 1216 bytes .../javax/swing/JTable$IconCellRenderer.class | Bin 0 -> 1086 bytes .../swing/JTable$NumberCellRenderer.class | Bin 0 -> 543 bytes ...ble$TableColumnPropertyChangeHandler.class | Bin 0 -> 1405 bytes .../javax/swing/JTable$TableTextField.class | Bin 0 -> 686 bytes .../classpath/lib/javax/swing/JTable.class | Bin 0 -> 37074 bytes .../swing/JTextArea$AccessibleJTextArea.class | Bin 0 -> 768 bytes .../classpath/lib/javax/swing/JTextArea.class | Bin 0 -> 7526 bytes .../lib/javax/swing/JTextField$1.class | Bin 0 -> 791 bytes .../lib/javax/swing/JTextField$2.class | Bin 0 -> 1275 bytes .../JTextField$AccessibleJTextField.class | Bin 0 -> 841 bytes .../lib/javax/swing/JTextField.class | Bin 0 -> 8146 bytes .../classpath/lib/javax/swing/JTextPane.class | Bin 0 -> 6360 bytes ...ToggleButton$AccessibleJToggleButton.class | Bin 0 -> 1479 bytes .../JToggleButton$ToggleButtonModel.class | Bin 0 -> 1280 bytes .../lib/javax/swing/JToggleButton.class | Bin 0 -> 2541 bytes .../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 .../classpath/lib/javax/swing/JToolBar.class | Bin 0 -> 6886 bytes .../swing/JToolTip$AccessibleJToolTip.class | Bin 0 -> 1019 bytes .../classpath/lib/javax/swing/JToolTip.class | Bin 0 -> 2448 bytes ...$AccessibleJTree$AccessibleJTreeNode.class | Bin 0 -> 11937 bytes .../javax/swing/JTree$AccessibleJTree.class | Bin 0 -> 4836 bytes .../swing/JTree$DynamicUtilTreeNode.class | Bin 0 -> 2406 bytes .../swing/JTree$EmptySelectionModel.class | Bin 0 -> 1021 bytes .../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 .../javax/swing/JViewport$ViewListener.class | Bin 0 -> 809 bytes .../classpath/lib/javax/swing/JViewport.class | Bin 0 -> 12807 bytes .../swing/JWindow$AccessibleJWindow.class | Bin 0 -> 506 bytes .../classpath/lib/javax/swing/JWindow.class | Bin 0 -> 4615 bytes .../classpath/lib/javax/swing/KeyStroke.class | Bin 0 -> 2011 bytes .../lib/javax/swing/KeyboardManager.class | Bin 0 -> 4273 bytes ...ocusTraversalPolicy$LayoutComparator.class | Bin 0 -> 951 bytes .../swing/LayoutFocusTraversalPolicy.class | Bin 0 -> 602 bytes .../lib/javax/swing/ListCellRenderer.class | Bin 0 -> 229 bytes .../classpath/lib/javax/swing/ListModel.class | Bin 0 -> 287 bytes .../lib/javax/swing/ListSelectionModel.class | Bin 0 -> 1007 bytes .../lib/javax/swing/LookAndFeel$1.class | Bin 0 -> 852 bytes .../lib/javax/swing/LookAndFeel.class | Bin 0 -> 5733 bytes .../lib/javax/swing/MenuElement.class | Bin 0 -> 495 bytes .../javax/swing/MenuSelectionManager.class | Bin 0 -> 6636 bytes .../javax/swing/MutableComboBoxModel.class | Bin 0 -> 319 bytes .../lib/javax/swing/OverlayLayout.class | Bin 0 -> 4409 bytes .../lib/javax/swing/Popup$JWindowPopup.class | Bin 0 -> 1314 bytes .../javax/swing/Popup$LightweightPopup.class | Bin 0 -> 2173 bytes libjava/classpath/lib/javax/swing/Popup.class | Bin 0 -> 817 bytes .../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 .../swing/ProgressMonitorInputStream.class | Bin 0 -> 2495 bytes .../classpath/lib/javax/swing/Renderer.class | Bin 0 -> 201 bytes .../swing/RepaintManager$RepaintWorker.class | Bin 0 -> 1299 bytes .../RepaintManager$RepaintWorkerEvent.class | Bin 0 -> 751 bytes .../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 .../swing/ScrollPaneLayout$UIResource.class | Bin 0 -> 414 bytes .../lib/javax/swing/ScrollPaneLayout.class | Bin 0 -> 7677 bytes .../lib/javax/swing/Scrollable.class | Bin 0 -> 379 bytes .../javax/swing/SingleSelectionModel.class | Bin 0 -> 357 bytes .../lib/javax/swing/SizeRequirements.class | Bin 0 -> 5413 bytes .../lib/javax/swing/SizeSequence.class | Bin 0 -> 2218 bytes .../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 .../lib/javax/swing/SpinnerModel.class | Bin 0 -> 351 bytes .../lib/javax/swing/SpinnerNumberModel.class | Bin 0 -> 3988 bytes .../classpath/lib/javax/swing/Spring$1.class | Bin 0 -> 1114 bytes .../classpath/lib/javax/swing/Spring$2.class | Bin 0 -> 1218 bytes .../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 .../classpath/lib/javax/swing/Spring.class | Bin 0 -> 2675 bytes .../swing/SpringLayout$Constraints.class | Bin 0 -> 4240 bytes .../SpringLayout$DeferredDimension.class | Bin 0 -> 683 bytes .../swing/SpringLayout$DeferredHeight.class | Bin 0 -> 1175 bytes .../swing/SpringLayout$DeferredSpring.class | Bin 0 -> 1875 bytes .../swing/SpringLayout$DeferredWidth.class | Bin 0 -> 1169 bytes .../lib/javax/swing/SpringLayout.class | Bin 0 -> 5789 bytes .../lib/javax/swing/SwingConstants.class | Bin 0 -> 694 bytes .../swing/SwingUtilities$OwnerFrame.class | Bin 0 -> 659 bytes .../lib/javax/swing/SwingUtilities.class | Bin 0 -> 19713 bytes .../classpath/lib/javax/swing/Timer$1.class | Bin 0 -> 557 bytes .../lib/javax/swing/Timer$Task.class | Bin 0 -> 906 bytes libjava/classpath/lib/javax/swing/Timer.class | Bin 0 -> 4981 bytes .../ToolTipManager$insideTimerAction.class | Bin 0 -> 737 bytes .../ToolTipManager$outsideTimerAction.class | Bin 0 -> 709 bytes ...oolTipManager$stillInsideTimerAction.class | Bin 0 -> 752 bytes .../lib/javax/swing/ToolTipManager.class | Bin 0 -> 7320 bytes ...TransferHandler$PropertyTransferable.class | Bin 0 -> 2735 bytes .../TransferHandler$TransferAction.class | Bin 0 -> 2022 bytes .../lib/javax/swing/TransferHandler.class | Bin 0 -> 6249 bytes .../lib/javax/swing/UIDefaults$1.class | Bin 0 -> 1211 bytes .../lib/javax/swing/UIDefaults$2.class | Bin 0 -> 1308 bytes .../lib/javax/swing/UIDefaults$3.class | Bin 0 -> 1379 bytes .../lib/javax/swing/UIDefaults$4.class | Bin 0 -> 1477 bytes .../javax/swing/UIDefaults$ActiveValue.class | Bin 0 -> 267 bytes .../javax/swing/UIDefaults$LazyInputMap.class | Bin 0 -> 1156 bytes .../javax/swing/UIDefaults$LazyValue.class | Bin 0 -> 263 bytes .../swing/UIDefaults$ProxyLazyValue.class | Bin 0 -> 2228 bytes .../lib/javax/swing/UIDefaults.class | Bin 0 -> 9901 bytes .../swing/UIManager$LookAndFeelInfo.class | Bin 0 -> 1148 bytes ...iplexUIDefaults$MultiplexEnumeration.class | Bin 0 -> 1221 bytes .../swing/UIManager$MultiplexUIDefaults.class | Bin 0 -> 1632 bytes .../classpath/lib/javax/swing/UIManager.class | Bin 0 -> 9920 bytes .../UnsupportedLookAndFeelException.class | Bin 0 -> 403 bytes .../lib/javax/swing/ViewportLayout.class | Bin 0 -> 2485 bytes .../lib/javax/swing/WindowConstants.class | Bin 0 -> 300 bytes .../javax/swing/border/AbstractBorder.class | Bin 0 -> 1795 bytes .../lib/javax/swing/border/BevelBorder.class | Bin 0 -> 4286 bytes .../lib/javax/swing/border/Border.class | Bin 0 -> 282 bytes .../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 .../javax/swing/border/SoftBevelBorder.class | Bin 0 -> 2794 bytes .../lib/javax/swing/border/TitledBorder.class | Bin 0 -> 9912 bytes .../AbstractColorChooserPanel.class | Bin 0 -> 1582 bytes .../ColorChooserComponentFactory.class | Bin 0 -> 1014 bytes .../colorchooser/ColorSelectionModel.class | Bin 0 -> 340 bytes .../DefaultColorSelectionModel.class | Bin 0 -> 2281 bytes .../DefaultHSBChooserPanel$1.class | Bin 0 -> 1434 bytes .../DefaultHSBChooserPanel$2.class | Bin 0 -> 1077 bytes ...tHSBChooserPanel$ImageScrollListener.class | Bin 0 -> 1825 bytes ...ooserPanel$MainGradientMouseListener.class | Bin 0 -> 2513 bytes ...ltHSBChooserPanel$RadioStateListener.class | Bin 0 -> 1503 bytes ...HSBChooserPanel$SliderChangeListener.class | Bin 0 -> 1353 bytes .../colorchooser/DefaultHSBChooserPanel.class | Bin 0 -> 9940 bytes .../DefaultPreviewPanel$PreviewBorder.class | Bin 0 -> 2020 bytes .../colorchooser/DefaultPreviewPanel.class | Bin 0 -> 4044 bytes ...DefaultRGBChooserPanel$SliderHandler.class | Bin 0 -> 1333 bytes ...efaultRGBChooserPanel$SpinnerHandler.class | Bin 0 -> 1517 bytes .../colorchooser/DefaultRGBChooserPanel.class | Bin 0 -> 5019 bytes ...ltSwatchChooserPanel$MainPanelLayout.class | Bin 0 -> 2444 bytes ...ltSwatchChooserPanel$MainSwatchPanel.class | Bin 0 -> 7923 bytes ...faultSwatchChooserPanel$MouseHandler.class | Bin 0 -> 1620 bytes ...SwatchChooserPanel$RecentPanelLayout.class | Bin 0 -> 2178 bytes ...SwatchChooserPanel$RecentSwatchPanel.class | Bin 0 -> 2954 bytes ...efaultSwatchChooserPanel$SwatchPanel.class | Bin 0 -> 1303 bytes .../DefaultSwatchChooserPanel.class | Bin 0 -> 3119 bytes .../lib/javax/swing/event/AncestorEvent.class | Bin 0 -> 1099 bytes .../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 .../swing/event/CellEditorListener.class | Bin 0 -> 254 bytes .../lib/javax/swing/event/ChangeEvent.class | Bin 0 -> 362 bytes .../javax/swing/event/ChangeListener.class | Bin 0 -> 218 bytes .../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 .../javax/swing/event/DocumentListener.class | Bin 0 -> 271 bytes .../javax/swing/event/EventListenerList.class | Bin 0 -> 4510 bytes .../event/HyperlinkEvent$EventType.class | Bin 0 -> 802 bytes .../javax/swing/event/HyperlinkEvent.class | Bin 0 -> 1782 bytes .../javax/swing/event/HyperlinkListener.class | Bin 0 -> 230 bytes .../swing/event/InternalFrameAdapter.class | Bin 0 -> 1105 bytes .../swing/event/InternalFrameEvent.class | Bin 0 -> 1343 bytes .../swing/event/InternalFrameListener.class | Bin 0 -> 443 bytes .../lib/javax/swing/event/ListDataEvent.class | Bin 0 -> 1587 bytes .../javax/swing/event/ListDataListener.class | Bin 0 -> 277 bytes .../swing/event/ListSelectionEvent.class | Bin 0 -> 1514 bytes .../swing/event/ListSelectionListener.class | Bin 0 -> 239 bytes .../swing/event/MenuDragMouseEvent.class | Bin 0 -> 1050 bytes .../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 .../javax/swing/event/MenuKeyListener.class | Bin 0 -> 272 bytes .../lib/javax/swing/event/MenuListener.class | Bin 0 -> 260 bytes .../javax/swing/event/MouseInputAdapter.class | Bin 0 -> 1003 bytes .../swing/event/MouseInputListener.class | Bin 0 -> 213 bytes .../javax/swing/event/PopupMenuEvent.class | Bin 0 -> 371 bytes .../javax/swing/event/PopupMenuListener.class | Bin 0 -> 308 bytes .../event/SwingPropertyChangeSupport.class | Bin 0 -> 482 bytes .../swing/event/TableColumnModelEvent.class | Bin 0 -> 740 bytes .../event/TableColumnModelListener.class | Bin 0 -> 437 bytes .../javax/swing/event/TableModelEvent.class | Bin 0 -> 1718 bytes .../swing/event/TableModelListener.class | Bin 0 -> 230 bytes .../swing/event/TreeExpansionEvent.class | Bin 0 -> 620 bytes .../swing/event/TreeExpansionListener.class | Bin 0 -> 263 bytes .../javax/swing/event/TreeModelEvent.class | Bin 0 -> 2298 bytes .../javax/swing/event/TreeModelListener.class | Bin 0 -> 317 bytes .../swing/event/TreeSelectionEvent.class | Bin 0 -> 2194 bytes .../swing/event/TreeSelectionListener.class | Bin 0 -> 239 bytes .../swing/event/TreeWillExpandListener.class | Bin 0 -> 345 bytes .../javax/swing/event/UndoableEditEvent.class | Bin 0 -> 684 bytes .../swing/event/UndoableEditListener.class | Bin 0 -> 244 bytes .../javax/swing/filechooser/FileFilter.class | Bin 0 -> 392 bytes .../swing/filechooser/FileSystemView.class | Bin 0 -> 4192 bytes .../javax/swing/filechooser/FileView.class | Bin 0 -> 863 bytes .../filechooser/UnixFileSystemView.class | Bin 0 -> 2253 bytes .../swing/plaf/ActionMapUIResource.class | Bin 0 -> 360 bytes ...rderUIResource$BevelBorderUIResource.class | Bin 0 -> 1078 bytes ...rUIResource$CompoundBorderUIResource.class | Bin 0 -> 739 bytes ...rderUIResource$EmptyBorderUIResource.class | Bin 0 -> 811 bytes ...derUIResource$EtchedBorderUIResource.class | Bin 0 -> 1024 bytes ...orderUIResource$LineBorderUIResource.class | Bin 0 -> 776 bytes ...rderUIResource$MatteBorderUIResource.class | Bin 0 -> 1030 bytes ...derUIResource$TitledBorderUIResource.class | Bin 0 -> 1670 bytes .../javax/swing/plaf/BorderUIResource.class | Bin 0 -> 2641 bytes .../lib/javax/swing/plaf/ButtonUI.class | Bin 0 -> 295 bytes .../lib/javax/swing/plaf/ColorChooserUI.class | Bin 0 -> 317 bytes .../javax/swing/plaf/ColorUIResource.class | Bin 0 -> 762 bytes .../lib/javax/swing/plaf/ComboBoxUI.class | Bin 0 -> 444 bytes .../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 .../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 .../javax/swing/plaf/InputMapUIResource.class | Bin 0 -> 356 bytes .../javax/swing/plaf/InsetsUIResource.class | Bin 0 -> 547 bytes .../javax/swing/plaf/InternalFrameUI.class | Bin 0 -> 320 bytes .../lib/javax/swing/plaf/LabelUI.class | Bin 0 -> 296 bytes .../lib/javax/swing/plaf/ListUI.class | Bin 0 -> 497 bytes .../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 .../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 .../lib/javax/swing/plaf/SliderUI.class | Bin 0 -> 299 bytes .../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 .../lib/javax/swing/plaf/TableUI.class | Bin 0 -> 296 bytes .../lib/javax/swing/plaf/TextUI.class | Bin 0 -> 1455 bytes .../lib/javax/swing/plaf/ToolBarUI.class | Bin 0 -> 302 bytes .../lib/javax/swing/plaf/ToolTipUI.class | Bin 0 -> 302 bytes .../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 .../swing/plaf/basic/BasicArrowButton.class | Bin 0 -> 4556 bytes .../basic/BasicBorders$ButtonBorder.class | Bin 0 -> 2305 bytes .../plaf/basic/BasicBorders$FieldBorder.class | Bin 0 -> 2104 bytes .../basic/BasicBorders$MarginBorder.class | Bin 0 -> 1420 bytes .../basic/BasicBorders$MenuBarBorder.class | Bin 0 -> 1861 bytes .../BasicBorders$RadioButtonBorder.class | Bin 0 -> 2394 bytes .../BasicBorders$RolloverButtonBorder.class | Bin 0 -> 1786 bytes .../basic/BasicBorders$SplitPaneBorder.class | Bin 0 -> 2795 bytes .../BasicBorders$SplitPaneDividerBorder.class | Bin 0 -> 2559 bytes .../BasicBorders$ToggleButtonBorder.class | Bin 0 -> 1704 bytes .../javax/swing/plaf/basic/BasicBorders.class | Bin 0 -> 4045 bytes .../plaf/basic/BasicButtonListener$1.class | Bin 0 -> 1175 bytes .../plaf/basic/BasicButtonListener$2.class | Bin 0 -> 1175 bytes .../BasicButtonListener$ButtonAction.class | Bin 0 -> 1892 bytes .../plaf/basic/BasicButtonListener.class | Bin 0 -> 6685 bytes .../swing/plaf/basic/BasicButtonUI.class | Bin 0 -> 11510 bytes .../plaf/basic/BasicCheckBoxMenuItemUI.class | Bin 0 -> 1185 bytes .../swing/plaf/basic/BasicCheckBoxUI.class | Bin 0 -> 628 bytes .../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 .../plaf/basic/BasicColorChooserUI.class | Bin 0 -> 4904 bytes .../BasicComboBoxEditor$UIResource.class | Bin 0 -> 459 bytes .../plaf/basic/BasicComboBoxEditor.class | Bin 0 -> 1816 bytes .../BasicComboBoxRenderer$UIResource.class | Bin 0 -> 467 bytes .../plaf/basic/BasicComboBoxRenderer.class | Bin 0 -> 2088 bytes ...asicComboBoxUI$ComboBoxLayoutManager.class | Bin 0 -> 2168 bytes .../basic/BasicComboBoxUI$FocusHandler.class | Bin 0 -> 1191 bytes .../basic/BasicComboBoxUI$ItemHandler.class | Bin 0 -> 1308 bytes .../basic/BasicComboBoxUI$KeyHandler.class | Bin 0 -> 1593 bytes .../BasicComboBoxUI$ListDataHandler.class | Bin 0 -> 3136 bytes ...asicComboBoxUI$PropertyChangeHandler.class | Bin 0 -> 2581 bytes .../swing/plaf/basic/BasicComboBoxUI.class | Bin 0 -> 16273 bytes ...BasicComboPopup$InvocationKeyHandler.class | Bin 0 -> 734 bytes ...sicComboPopup$InvocationMouseHandler.class | Bin 0 -> 2308 bytes ...boPopup$InvocationMouseMotionHandler.class | Bin 0 -> 1954 bytes .../basic/BasicComboPopup$ItemHandler.class | Bin 0 -> 1152 bytes .../BasicComboPopup$ListDataHandler.class | Bin 0 -> 940 bytes .../BasicComboPopup$ListMouseHandler.class | Bin 0 -> 1081 bytes ...sicComboPopup$ListMouseMotionHandler.class | Bin 0 -> 1296 bytes ...BasicComboPopup$ListSelectionHandler.class | Bin 0 -> 799 bytes ...asicComboPopup$PropertyChangeHandler.class | Bin 0 -> 1878 bytes .../swing/plaf/basic/BasicComboPopup.class | Bin 0 -> 14150 bytes .../plaf/basic/BasicDesktopIconUI$1.class | Bin 0 -> 1713 bytes .../plaf/basic/BasicDesktopIconUI$2.class | Bin 0 -> 814 bytes .../BasicDesktopIconUI$BoundButton.class | Bin 0 -> 1306 bytes ...BasicDesktopIconUI$DesktopIconBorder.class | Bin 0 -> 2025 bytes ...pIconUI$InternalFrameDefaultMenuIcon.class | Bin 0 -> 1310 bytes ...BasicDesktopIconUI$MouseInputHandler.class | Bin 0 -> 2401 bytes .../swing/plaf/basic/BasicDesktopIconUI.class | Bin 0 -> 4991 bytes .../BasicDesktopPaneUI$CloseAction.class | Bin 0 -> 1157 bytes .../BasicDesktopPaneUI$MaximizeAction.class | Bin 0 -> 1170 bytes .../BasicDesktopPaneUI$MinimizeAction.class | Bin 0 -> 1167 bytes .../BasicDesktopPaneUI$NavigateAction.class | Bin 0 -> 1351 bytes .../basic/BasicDesktopPaneUI$OpenAction.class | Bin 0 -> 1238 bytes .../swing/plaf/basic/BasicDesktopPaneUI.class | Bin 0 -> 3093 bytes .../plaf/basic/BasicDirectoryModel$1.class | Bin 0 -> 856 bytes ...rectoryLoadThread$UpdateSwingRequest.class | Bin 0 -> 2209 bytes ...icDirectoryModel$DirectoryLoadThread.class | Bin 0 -> 4426 bytes .../plaf/basic/BasicDirectoryModel.class | Bin 0 -> 5555 bytes .../swing/plaf/basic/BasicEditorPaneUI.class | Bin 0 -> 914 bytes ...sicFileChooserUI$AcceptAllFileFilter.class | Bin 0 -> 893 bytes ...FileChooserUI$ApproveSelectionAction.class | Bin 0 -> 2289 bytes .../BasicFileChooserUI$BasicFileView.class | Bin 0 -> 2695 bytes ...cFileChooserUI$CancelSelectionAction.class | Bin 0 -> 1079 bytes ...oserUI$ChangeToParentDirectoryAction.class | Bin 0 -> 1031 bytes ...sicFileChooserUI$DoubleClickListener.class | Bin 0 -> 2984 bytes .../BasicFileChooserUI$GoHomeAction.class | Bin 0 -> 1186 bytes .../BasicFileChooserUI$NewFolderAction.class | Bin 0 -> 1269 bytes ...BasicFileChooserUI$SelectionListener.class | Bin 0 -> 1680 bytes .../BasicFileChooserUI$UpdateAction.class | Bin 0 -> 758 bytes .../swing/plaf/basic/BasicFileChooserUI.class | Bin 0 -> 13666 bytes .../basic/BasicFormattedTextFieldUI.class | Bin 0 -> 669 bytes .../swing/plaf/basic/BasicGraphicsUtils.class | Bin 0 -> 8236 bytes .../plaf/basic/BasicHTML$HTMLRootView.class | Bin 0 -> 4406 bytes .../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 .../basic/BasicIconFactory$CheckBoxIcon.class | Bin 0 -> 836 bytes ...asicIconFactory$CheckBoxMenuItemIcon.class | Bin 0 -> 1278 bytes .../basic/BasicIconFactory$DummyIcon.class | Bin 0 -> 1212 bytes .../BasicIconFactory$RadioButtonIcon.class | Bin 0 -> 845 bytes .../swing/plaf/basic/BasicIconFactory.class | Bin 0 -> 1847 bytes ...icInternalFrameTitlePane$CloseAction.class | Bin 0 -> 1046 bytes ...InternalFrameTitlePane$IconifyAction.class | Bin 0 -> 1088 bytes ...nternalFrameTitlePane$MaximizeAction.class | Bin 0 -> 1350 bytes ...sicInternalFrameTitlePane$MoveAction.class | Bin 0 -> 817 bytes ...sicInternalFrameTitlePane$PaneButton.class | Bin 0 -> 887 bytes ...FrameTitlePane$PropertyChangeHandler.class | Bin 0 -> 1598 bytes ...InternalFrameTitlePane$RestoreAction.class | Bin 0 -> 1054 bytes ...sicInternalFrameTitlePane$SizeAction.class | Bin 0 -> 817 bytes ...InternalFrameTitlePane$SystemMenuBar.class | Bin 0 -> 1381 bytes ...ternalFrameTitlePane$TitlePaneLayout.class | Bin 0 -> 2770 bytes .../basic/BasicInternalFrameTitlePane.class | Bin 0 -> 10171 bytes ...alFrameUI$BasicInternalFrameListener.class | Bin 0 -> 1622 bytes .../BasicInternalFrameUI$BorderListener.class | Bin 0 -> 5434 bytes ...asicInternalFrameUI$ComponentHandler.class | Bin 0 -> 1663 bytes ...cInternalFrameUI$GlassPaneDispatcher.class | Bin 0 -> 3894 bytes ...cInternalFrameUI$InternalFrameBorder.class | Bin 0 -> 2244 bytes ...cInternalFrameUI$InternalFrameLayout.class | Bin 0 -> 3731 bytes ...$InternalFramePropertyChangeListener.class | Bin 0 -> 3035 bytes ...InternalFrameUI$ShowSystemMenuAction.class | Bin 0 -> 1138 bytes .../plaf/basic/BasicInternalFrameUI.class | Bin 0 -> 12010 bytes .../swing/plaf/basic/BasicLabelUI$1.class | Bin 0 -> 1068 bytes .../javax/swing/plaf/basic/BasicLabelUI.class | Bin 0 -> 9298 bytes .../BasicListUI$ActionListenerProxy.class | Bin 0 -> 1138 bytes .../plaf/basic/BasicListUI$FocusHandler.class | Bin 0 -> 894 bytes .../plaf/basic/BasicListUI$ListAction.class | Bin 0 -> 4157 bytes .../basic/BasicListUI$ListDataHandler.class | Bin 0 -> 1130 bytes .../BasicListUI$ListSelectionHandler.class | Bin 0 -> 1200 bytes .../basic/BasicListUI$MouseInputHandler.class | Bin 0 -> 2536 bytes .../BasicListUI$PropertyChangeHandler.class | Bin 0 -> 1770 bytes .../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 .../basic/BasicLookAndFeel$AudioAction.class | Bin 0 -> 1804 bytes .../basic/BasicLookAndFeel$PopupHelper.class | Bin 0 -> 2053 bytes .../swing/plaf/basic/BasicLookAndFeel.class | Bin 0 -> 54628 bytes .../basic/BasicMenuBarUI$ChangeHandler.class | Bin 0 -> 911 bytes .../BasicMenuBarUI$ContainerHandler.class | Bin 0 -> 1177 bytes .../basic/BasicMenuBarUI$FocusAction.class | Bin 0 -> 1327 bytes .../BasicMenuBarUI$MouseInputHandler.class | Bin 0 -> 1811 bytes ...BasicMenuBarUI$PropertyChangeHandler.class | Bin 0 -> 1278 bytes .../swing/plaf/basic/BasicMenuBarUI.class | Bin 0 -> 5909 bytes .../basic/BasicMenuItemUI$ClickAction.class | Bin 0 -> 896 bytes .../basic/BasicMenuItemUI$ItemHandler.class | Bin 0 -> 1250 bytes ...BasicMenuItemUI$MenuDragMouseHandler.class | Bin 0 -> 2003 bytes .../BasicMenuItemUI$MenuKeyHandler.class | Bin 0 -> 1091 bytes .../BasicMenuItemUI$MouseInputHandler.class | Bin 0 -> 2324 bytes ...asicMenuItemUI$PropertyChangeHandler.class | Bin 0 -> 2614 bytes .../swing/plaf/basic/BasicMenuItemUI.class | Bin 0 -> 17650 bytes .../basic/BasicMenuUI$ChangeHandler.class | Bin 0 -> 969 bytes .../BasicMenuUI$MenuDragMouseHandler.class | Bin 0 -> 2832 bytes .../plaf/basic/BasicMenuUI$MenuHandler.class | Bin 0 -> 1638 bytes .../basic/BasicMenuUI$MenuKeyHandler.class | Bin 0 -> 1125 bytes .../basic/BasicMenuUI$MouseInputHandler.class | Bin 0 -> 3272 bytes .../basic/BasicMenuUI$SelectMenuAction.class | Bin 0 -> 1439 bytes .../javax/swing/plaf/basic/BasicMenuUI.class | Bin 0 -> 6078 bytes .../plaf/basic/BasicOptionPaneUI$1.class | Bin 0 -> 1325 bytes .../plaf/basic/BasicOptionPaneUI$2.class | Bin 0 -> 1389 bytes .../plaf/basic/BasicOptionPaneUI$3.class | Bin 0 -> 1406 bytes .../plaf/basic/BasicOptionPaneUI$4.class | Bin 0 -> 1282 bytes ...sicOptionPaneUI$ButtonActionListener.class | Bin 0 -> 2178 bytes .../BasicOptionPaneUI$ButtonAreaLayout.class | Bin 0 -> 3303 bytes .../basic/BasicOptionPaneUI$MessageIcon.class | Bin 0 -> 953 bytes ...icOptionPaneUI$OptionPaneCloseAction.class | Bin 0 -> 897 bytes ...icOptionPaneUI$PropertyChangeHandler.class | Bin 0 -> 1430 bytes .../swing/plaf/basic/BasicOptionPaneUI.class | Bin 0 -> 14568 bytes .../javax/swing/plaf/basic/BasicPanelUI.class | Bin 0 -> 1437 bytes .../plaf/basic/BasicPasswordFieldUI.class | Bin 0 -> 900 bytes .../basic/BasicPopupMenuSeparatorUI.class | Bin 0 -> 1533 bytes .../BasicPopupMenuUI$KeyboardHelper.class | Bin 0 -> 3368 bytes .../BasicPopupMenuUI$NavigateAction.class | Bin 0 -> 6719 bytes .../BasicPopupMenuUI$PopupMenuHandler.class | Bin 0 -> 2391 bytes .../BasicPopupMenuUI$TopWindowListener.class | Bin 0 -> 1481 bytes .../swing/plaf/basic/BasicPopupMenuUI.class | Bin 0 -> 6526 bytes .../BasicProgressBarUI$AncestorHandler.class | Bin 0 -> 1345 bytes .../basic/BasicProgressBarUI$Animator.class | Bin 0 -> 960 bytes .../BasicProgressBarUI$ChangeHandler.class | Bin 0 -> 888 bytes .../BasicProgressBarUI$ComponentHandler.class | Bin 0 -> 1056 bytes ...cProgressBarUI$PropertyChangeHandler.class | Bin 0 -> 1491 bytes .../swing/plaf/basic/BasicProgressBarUI.class | Bin 0 -> 13071 bytes .../basic/BasicRadioButtonMenuItemUI.class | Bin 0 -> 1197 bytes .../swing/plaf/basic/BasicRadioButtonUI.class | Bin 0 -> 5547 bytes .../BasicRootPaneUI$DefaultPressAction.class | Bin 0 -> 1211 bytes ...BasicRootPaneUI$DefaultReleaseAction.class | Bin 0 -> 1217 bytes .../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 .../BasicScrollBarUI$ModelListener.class | Bin 0 -> 955 bytes ...sicScrollBarUI$PropertyChangeHandler.class | Bin 0 -> 2087 bytes .../BasicScrollBarUI$ScrollListener.class | Bin 0 -> 1651 bytes .../BasicScrollBarUI$TrackListener.class | Bin 0 -> 3012 bytes .../swing/plaf/basic/BasicScrollBarUI.class | Bin 0 -> 16908 bytes .../plaf/basic/BasicScrollPaneUI$1.class | Bin 0 -> 1344 bytes .../plaf/basic/BasicScrollPaneUI$10.class | Bin 0 -> 1345 bytes .../plaf/basic/BasicScrollPaneUI$2.class | Bin 0 -> 1359 bytes .../plaf/basic/BasicScrollPaneUI$3.class | Bin 0 -> 1341 bytes .../plaf/basic/BasicScrollPaneUI$4.class | Bin 0 -> 1343 bytes .../plaf/basic/BasicScrollPaneUI$5.class | Bin 0 -> 1342 bytes .../plaf/basic/BasicScrollPaneUI$6.class | Bin 0 -> 1344 bytes .../plaf/basic/BasicScrollPaneUI$7.class | Bin 0 -> 1359 bytes .../plaf/basic/BasicScrollPaneUI$8.class | Bin 0 -> 1342 bytes .../plaf/basic/BasicScrollPaneUI$9.class | Bin 0 -> 1341 bytes .../BasicScrollPaneUI$HSBChangeListener.class | Bin 0 -> 1387 bytes .../BasicScrollPaneUI$MouseWheelHandler.class | Bin 0 -> 1690 bytes ...icScrollPaneUI$PropertyChangeHandler.class | Bin 0 -> 2042 bytes .../BasicScrollPaneUI$VSBChangeListener.class | Bin 0 -> 1385 bytes ...icScrollPaneUI$ViewportChangeHandler.class | Bin 0 -> 843 bytes ...rollPaneUI$ViewportContainerListener.class | Bin 0 -> 1211 bytes .../swing/plaf/basic/BasicScrollPaneUI.class | Bin 0 -> 10659 bytes .../swing/plaf/basic/BasicSeparatorUI.class | Bin 0 -> 3047 bytes .../swing/plaf/basic/BasicSliderUI$1.class | Bin 0 -> 1165 bytes .../swing/plaf/basic/BasicSliderUI$2.class | Bin 0 -> 1165 bytes .../swing/plaf/basic/BasicSliderUI$3.class | Bin 0 -> 1166 bytes .../swing/plaf/basic/BasicSliderUI$4.class | Bin 0 -> 1166 bytes .../swing/plaf/basic/BasicSliderUI$5.class | Bin 0 -> 1142 bytes .../swing/plaf/basic/BasicSliderUI$6.class | Bin 0 -> 1142 bytes .../basic/BasicSliderUI$ActionScroller.class | Bin 0 -> 827 bytes .../basic/BasicSliderUI$ChangeHandler.class | Bin 0 -> 889 bytes .../BasicSliderUI$ComponentHandler.class | Bin 0 -> 872 bytes .../basic/BasicSliderUI$FocusHandler.class | Bin 0 -> 920 bytes .../BasicSliderUI$PropertyChangeHandler.class | Bin 0 -> 1862 bytes .../basic/BasicSliderUI$ScrollListener.class | Bin 0 -> 1574 bytes .../basic/BasicSliderUI$TrackListener.class | Bin 0 -> 2631 bytes .../swing/plaf/basic/BasicSliderUI.class | Bin 0 -> 25517 bytes .../swing/plaf/basic/BasicSpinnerUI$1.class | Bin 0 -> 1216 bytes .../swing/plaf/basic/BasicSpinnerUI$2.class | Bin 0 -> 1703 bytes .../swing/plaf/basic/BasicSpinnerUI$3.class | Bin 0 -> 784 bytes .../swing/plaf/basic/BasicSpinnerUI$4.class | Bin 0 -> 1711 bytes .../swing/plaf/basic/BasicSpinnerUI$5.class | Bin 0 -> 784 bytes .../BasicSpinnerUI$DefaultLayoutManager.class | Bin 0 -> 3926 bytes .../swing/plaf/basic/BasicSpinnerUI.class | Bin 0 -> 4321 bytes ...SplitPaneDivider$BasicOneTouchButton.class | Bin 0 -> 2121 bytes .../BasicSplitPaneDivider$DividerLayout.class | Bin 0 -> 2579 bytes ...BasicSplitPaneDivider$DragController.class | Bin 0 -> 1769 bytes .../BasicSplitPaneDivider$MouseHandler.class | Bin 0 -> 1691 bytes ...BasicSplitPaneDivider$OneTouchAction.class | Bin 0 -> 2371 bytes ...itPaneDivider$VerticalDragController.class | Bin 0 -> 1197 bytes .../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 ...tPaneUI$BasicHorizontalLayoutManager.class | Bin 0 -> 6704 bytes ...litPaneUI$BasicVerticalLayoutManager.class | Bin 0 -> 701 bytes .../basic/BasicSplitPaneUI$FocusHandler.class | Bin 0 -> 965 bytes ...SplitPaneUI$KeyboardDownRightHandler.class | Bin 0 -> 787 bytes .../BasicSplitPaneUI$KeyboardEndHandler.class | Bin 0 -> 769 bytes ...BasicSplitPaneUI$KeyboardHomeHandler.class | Bin 0 -> 772 bytes ...itPaneUI$KeyboardResizeToggleHandler.class | Bin 0 -> 796 bytes ...sicSplitPaneUI$KeyboardUpLeftHandler.class | Bin 0 -> 778 bytes .../BasicSplitPaneUI$PropertyHandler.class | Bin 0 -> 1987 bytes .../swing/plaf/basic/BasicSplitPaneUI.class | Bin 0 -> 14032 bytes .../BasicTabbedPaneUI$FocusHandler.class | Bin 0 -> 1350 bytes .../BasicTabbedPaneUI$MouseHandler.class | Bin 0 -> 4164 bytes .../BasicTabbedPaneUI$NavigateAction.class | Bin 0 -> 1097 bytes ...cTabbedPaneUI$NavigatePageDownAction.class | Bin 0 -> 1104 bytes ...sicTabbedPaneUI$NavigatePageUpAction.class | Bin 0 -> 1100 bytes ...icTabbedPaneUI$PropertyChangeHandler.class | Bin 0 -> 2309 bytes ...BasicTabbedPaneUI$RequestFocusAction.class | Bin 0 -> 804 bytes ...equestFocusForVisibleComponentAction.class | Bin 0 -> 1029 bytes .../BasicTabbedPaneUI$ScrollingButton.class | Bin 0 -> 659 bytes ...neUI$ScrollingPanel$ScrollingPanelUI.class | Bin 0 -> 1945 bytes .../BasicTabbedPaneUI$ScrollingPanel.class | Bin 0 -> 1293 bytes .../BasicTabbedPaneUI$ScrollingViewport.class | Bin 0 -> 790 bytes ...asicTabbedPaneUI$TabSelectionHandler.class | Bin 0 -> 1145 bytes .../BasicTabbedPaneUI$TabbedPaneLayout.class | Bin 0 -> 10750 bytes ...cTabbedPaneUI$TabbedPaneScrollLayout.class | Bin 0 -> 6417 bytes .../swing/plaf/basic/BasicTabbedPaneUI.class | Bin 0 -> 32391 bytes .../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 .../basic/BasicTableUI$FocusHandler.class | Bin 0 -> 1654 bytes .../plaf/basic/BasicTableUI$KeyHandler.class | Bin 0 -> 1233 bytes .../BasicTableUI$MouseInputHandler.class | Bin 0 -> 3833 bytes .../BasicTableUI$PropertyChangeHandler.class | Bin 0 -> 2003 bytes .../plaf/basic/BasicTableUI$TableAction.class | Bin 0 -> 10390 bytes .../javax/swing/plaf/basic/BasicTableUI.class | Bin 0 -> 11558 bytes .../swing/plaf/basic/BasicTextAreaUI.class | Bin 0 -> 1835 bytes .../swing/plaf/basic/BasicTextFieldUI.class | Bin 0 -> 2284 bytes .../swing/plaf/basic/BasicTextPaneUI.class | Bin 0 -> 1583 bytes .../plaf/basic/BasicTextUI$BasicCaret.class | Bin 0 -> 462 bytes .../basic/BasicTextUI$BasicHighlighter.class | Bin 0 -> 486 bytes .../plaf/basic/BasicTextUI$FocusHandler.class | Bin 0 -> 2071 bytes .../plaf/basic/BasicTextUI$Handler.class | Bin 0 -> 2400 bytes .../plaf/basic/BasicTextUI$RootView.class | Bin 0 -> 4656 bytes .../javax/swing/plaf/basic/BasicTextUI.class | Bin 0 -> 17718 bytes .../plaf/basic/BasicToggleButtonUI.class | Bin 0 -> 3114 bytes .../plaf/basic/BasicToolBarSeparatorUI.class | Bin 0 -> 1337 bytes .../BasicToolBarUI$DockingListener.class | Bin 0 -> 2955 bytes .../basic/BasicToolBarUI$DragWindow.class | Bin 0 -> 2025 bytes .../basic/BasicToolBarUI$FrameListener.class | Bin 0 -> 1391 bytes .../BasicToolBarUI$PropertyListener.class | Bin 0 -> 1112 bytes .../basic/BasicToolBarUI$ToolBarAction.class | Bin 0 -> 1577 bytes .../basic/BasicToolBarUI$ToolBarBorder.class | Bin 0 -> 2132 bytes .../BasicToolBarUI$ToolBarContListener.class | Bin 0 -> 2107 bytes .../basic/BasicToolBarUI$ToolBarDialog.class | Bin 0 -> 786 bytes .../BasicToolBarUI$ToolBarFocusListener.class | Bin 0 -> 1147 bytes .../swing/plaf/basic/BasicToolBarUI.class | Bin 0 -> 16635 bytes ...BasicToolTipUI$PropertyChangeHandler.class | Bin 0 -> 1514 bytes .../swing/plaf/basic/BasicToolTipUI.class | Bin 0 -> 5073 bytes .../swing/plaf/basic/BasicTreeUI$1.class | Bin 0 -> 1001 bytes .../basic/BasicTreeUI$CellEditorHandler.class | Bin 0 -> 901 bytes .../basic/BasicTreeUI$ComponentHandler.class | Bin 0 -> 2143 bytes .../plaf/basic/BasicTreeUI$FocusHandler.class | Bin 0 -> 1242 bytes .../plaf/basic/BasicTreeUI$KeyHandler.class | Bin 0 -> 2114 bytes .../plaf/basic/BasicTreeUI$MouseHandler.class | Bin 0 -> 2514 bytes .../basic/BasicTreeUI$MouseInputHandler.class | Bin 0 -> 2338 bytes .../BasicTreeUI$NodeDimensionsHandler.class | Bin 0 -> 2351 bytes .../BasicTreeUI$PropertyChangeHandler.class | Bin 0 -> 2241 bytes ...$SelectionModelPropertyChangeHandler.class | Bin 0 -> 966 bytes .../BasicTreeUI$TreeCancelEditingAction.class | Bin 0 -> 987 bytes .../BasicTreeUI$TreeExpansionHandler.class | Bin 0 -> 1477 bytes .../basic/BasicTreeUI$TreeHomeAction.class | Bin 0 -> 2637 bytes .../BasicTreeUI$TreeIncrementAction.class | Bin 0 -> 3035 bytes .../basic/BasicTreeUI$TreeModelHandler.class | Bin 0 -> 1898 bytes .../basic/BasicTreeUI$TreePageAction.class | Bin 0 -> 3700 bytes .../BasicTreeUI$TreeSelectionHandler.class | Bin 0 -> 1558 bytes .../BasicTreeUI$TreeStartEditingAction.class | Bin 0 -> 1115 bytes .../basic/BasicTreeUI$TreeToggleAction.class | Bin 0 -> 1673 bytes .../BasicTreeUI$TreeTraverseAction.class | Bin 0 -> 2504 bytes .../javax/swing/plaf/basic/BasicTreeUI.class | Bin 0 -> 37315 bytes .../swing/plaf/basic/BasicViewportUI.class | Bin 0 -> 1238 bytes .../javax/swing/plaf/basic/ComboPopup.class | Bin 0 -> 447 bytes .../swing/plaf/basic/DefaultMenuLayout.class | Bin 0 -> 601 bytes .../swing/plaf/basic/SharedUIDefaults.class | Bin 0 -> 987 bytes .../swing/plaf/metal/DefaultMetalTheme.class | Bin 0 -> 3433 bytes .../metal/MetalBorders$ButtonBorder.class | Bin 0 -> 3859 bytes .../MetalBorders$DesktopIconBorder.class | Bin 0 -> 1464 bytes .../metal/MetalBorders$Flush3DBorder.class | Bin 0 -> 1822 bytes .../MetalBorders$InternalFrameBorder.class | Bin 0 -> 2289 bytes .../metal/MetalBorders$MenuBarBorder.class | Bin 0 -> 1790 bytes .../metal/MetalBorders$MenuItemBorder.class | Bin 0 -> 2085 bytes .../MetalBorders$OptionDialogBorder.class | Bin 0 -> 2348 bytes .../metal/MetalBorders$PaletteBorder.class | Bin 0 -> 1779 bytes .../metal/MetalBorders$PopupMenuBorder.class | Bin 0 -> 1821 bytes .../MetalBorders$RolloverButtonBorder.class | Bin 0 -> 760 bytes .../MetalBorders$RolloverMarginBorder.class | Bin 0 -> 1247 bytes .../metal/MetalBorders$ScrollPaneBorder.class | Bin 0 -> 1716 bytes .../MetalBorders$TableHeaderBorder.class | Bin 0 -> 1452 bytes .../metal/MetalBorders$TextFieldBorder.class | Bin 0 -> 1378 bytes .../MetalBorders$ToggleButtonBorder.class | Bin 0 -> 2043 bytes .../metal/MetalBorders$ToolBarBorder.class | Bin 0 -> 1869 bytes .../javax/swing/plaf/metal/MetalBorders.class | Bin 0 -> 3427 bytes .../plaf/metal/MetalButtonListener.class | Bin 0 -> 617 bytes .../swing/plaf/metal/MetalButtonUI.class | Bin 0 -> 4967 bytes .../swing/plaf/metal/MetalCheckBoxIcon.class | Bin 0 -> 2082 bytes .../swing/plaf/metal/MetalCheckBoxUI.class | Bin 0 -> 689 bytes .../plaf/metal/MetalComboBoxButton.class | Bin 0 -> 4952 bytes .../MetalComboBoxEditor$EditorTextField.class | Bin 0 -> 1031 bytes ...oBoxEditor$MetalComboBoxEditorBorder.class | Bin 0 -> 1715 bytes .../MetalComboBoxEditor$UIResource.class | Bin 0 -> 459 bytes .../plaf/metal/MetalComboBoxEditor.class | Bin 0 -> 1094 bytes .../swing/plaf/metal/MetalComboBoxIcon.class | Bin 0 -> 1244 bytes ...omboBoxUI$MetalComboBoxLayoutManager.class | Bin 0 -> 1060 bytes .../MetalComboBoxUI$MetalComboPopup.class | Bin 0 -> 866 bytes ...mboBoxUI$MetalPropertyChangeListener.class | Bin 0 -> 2089 bytes .../swing/plaf/metal/MetalComboBoxUI.class | Bin 0 -> 5757 bytes .../swing/plaf/metal/MetalDesktopIconUI.class | Bin 0 -> 532 bytes .../MetalFileChooserUI$ButtonLayout.class | Bin 0 -> 2657 bytes ...leChooserUI$DetailViewActionListener.class | Bin 0 -> 1928 bytes ...ileChooserUI$DirectoryComboBoxAction.class | Bin 0 -> 1224 bytes ...FileChooserUI$DirectoryComboBoxModel.class | Bin 0 -> 2120 bytes ...eChooserUI$DirectoryComboBoxRenderer.class | Bin 0 -> 1992 bytes .../MetalFileChooserUI$FileRenderer.class | Bin 0 -> 2259 bytes ...talFileChooserUI$FilterComboBoxModel.class | Bin 0 -> 2310 bytes ...FileChooserUI$FilterComboBoxRenderer.class | Bin 0 -> 1179 bytes .../metal/MetalFileChooserUI$IndentIcon.class | Bin 0 -> 1373 bytes ...FileChooserUI$ListViewActionListener.class | Bin 0 -> 1834 bytes ...talFileChooserPropertyChangeListener.class | Bin 0 -> 7109 bytes ...UI$MetalFileChooserSelectionListener.class | Bin 0 -> 1334 bytes ...eClickListener$EditingActionListener.class | Bin 0 -> 1068 bytes ...talFileChooserUI$SingleClickListener.class | Bin 0 -> 4212 bytes ...eClickListener$EditingActionListener.class | Bin 0 -> 1062 bytes ...etalFileChooserUI$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 ...etalIconFactory$CheckBoxMenuItemIcon.class | Bin 0 -> 1689 bytes ...conFactory$FileChooserDetailViewIcon.class | Bin 0 -> 1696 bytes ...conFactory$FileChooserHomeFolderIcon.class | Bin 0 -> 1818 bytes ...lIconFactory$FileChooserListViewIcon.class | Bin 0 -> 2031 bytes ...IconFactory$FileChooserNewFolderIcon.class | Bin 0 -> 1729 bytes ...lIconFactory$FileChooserUpFolderIcon.class | Bin 0 -> 1204 bytes .../metal/MetalIconFactory$FileIcon16.class | Bin 0 -> 1577 bytes .../metal/MetalIconFactory$FolderIcon16.class | Bin 0 -> 1654 bytes ...conFactory$HorizontalSliderThumbIcon.class | Bin 0 -> 2736 bytes ...Factory$InternalFrameAltMaximizeIcon.class | Bin 0 -> 2494 bytes ...alIconFactory$InternalFrameCloseIcon.class | Bin 0 -> 2551 bytes ...Factory$InternalFrameDefaultMenuIcon.class | Bin 0 -> 1605 bytes ...conFactory$InternalFrameMaximizeIcon.class | Bin 0 -> 2544 bytes ...conFactory$InternalFrameMinimizeIcon.class | Bin 0 -> 2347 bytes .../MetalIconFactory$PaletteCloseIcon.class | Bin 0 -> 1817 bytes .../MetalIconFactory$RadioButtonIcon.class | Bin 0 -> 3091 bytes ...lIconFactory$RadioButtonMenuItemIcon.class | Bin 0 -> 1899 bytes .../MetalIconFactory$TreeComputerIcon.class | Bin 0 -> 1656 bytes .../MetalIconFactory$TreeControlIcon.class | Bin 0 -> 1564 bytes ...MetalIconFactory$TreeFloppyDriveIcon.class | Bin 0 -> 1712 bytes .../MetalIconFactory$TreeFolderIcon.class | Bin 0 -> 637 bytes .../MetalIconFactory$TreeHardDriveIcon.class | Bin 0 -> 2463 bytes .../metal/MetalIconFactory$TreeLeafIcon.class | Bin 0 -> 629 bytes ...lIconFactory$VerticalSliderThumbIcon.class | Bin 0 -> 2728 bytes .../swing/plaf/metal/MetalIconFactory.class | Bin 0 -> 6422 bytes ...lFrameTitlePanePropertyChangeHandler.class | Bin 0 -> 1838 bytes ...lFrameTitlePane$MetalTitlePaneLayout.class | Bin 0 -> 2938 bytes .../metal/MetalInternalFrameTitlePane.class | Bin 0 -> 6716 bytes .../plaf/metal/MetalInternalFrameUI$1.class | Bin 0 -> 1205 bytes .../plaf/metal/MetalInternalFrameUI.class | Bin 0 -> 2982 bytes .../javax/swing/plaf/metal/MetalLabelUI.class | Bin 0 -> 1469 bytes .../swing/plaf/metal/MetalLookAndFeel$1.class | Bin 0 -> 916 bytes .../swing/plaf/metal/MetalLookAndFeel.class | Bin 0 -> 30873 bytes .../swing/plaf/metal/MetalMenuBarUI.class | Bin 0 -> 1225 bytes .../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 .../MetalRootPaneUI$MetalFrameBorder.class | Bin 0 -> 2445 bytes .../MetalRootPaneUI$MetalRootLayout.class | Bin 0 -> 4344 bytes ...ootPaneUI$MetalTitlePane$CloseAction.class | Bin 0 -> 1617 bytes ...tPaneUI$MetalTitlePane$IconifyAction.class | Bin 0 -> 1422 bytes ...PaneUI$MetalTitlePane$MaximizeAction.class | Bin 0 -> 1427 bytes ...$MetalTitlePane$MetalTitlePaneLayout.class | Bin 0 -> 2810 bytes ...otPaneUI$MetalTitlePane$MouseHandler.class | Bin 0 -> 1773 bytes ...RootPaneUI$MetalTitlePane$PaneButton.class | Bin 0 -> 959 bytes .../MetalRootPaneUI$MetalTitlePane.class | Bin 0 -> 8217 bytes .../swing/plaf/metal/MetalRootPaneUI.class | Bin 0 -> 3207 bytes ...$MetalScrollBarPropertyChangeHandler.class | Bin 0 -> 1557 bytes .../swing/plaf/metal/MetalScrollBarUI.class | Bin 0 -> 7735 bytes .../swing/plaf/metal/MetalScrollButton.class | Bin 0 -> 5504 bytes .../swing/plaf/metal/MetalScrollPaneUI.class | Bin 0 -> 1734 bytes .../swing/plaf/metal/MetalSeparatorUI.class | Bin 0 -> 1827 bytes .../MetalSliderUI$MetalPropertyListener.class | Bin 0 -> 1242 bytes .../swing/plaf/metal/MetalSliderUI.class | Bin 0 -> 7057 bytes ...SplitPaneDivider$MetalOneTouchButton.class | Bin 0 -> 2338 bytes .../plaf/metal/MetalSplitPaneDivider.class | Bin 0 -> 3190 bytes .../swing/plaf/metal/MetalSplitPaneUI.class | Bin 0 -> 1016 bytes .../MetalTabbedPaneUI$TabbedPaneLayout.class | Bin 0 -> 1097 bytes .../swing/plaf/metal/MetalTabbedPaneUI.class | Bin 0 -> 12940 bytes .../swing/plaf/metal/MetalTextFieldUI.class | Bin 0 -> 706 bytes .../javax/swing/plaf/metal/MetalTheme.class | Bin 0 -> 4295 bytes .../plaf/metal/MetalToggleButtonUI.class | Bin 0 -> 4445 bytes ...etalToolBarUI$MetalContainerListener.class | Bin 0 -> 662 bytes .../MetalToolBarUI$MetalDockingListener.class | Bin 0 -> 1188 bytes ...MetalToolBarUI$MetalRolloverListener.class | Bin 0 -> 656 bytes .../swing/plaf/metal/MetalToolBarUI.class | Bin 0 -> 3159 bytes .../swing/plaf/metal/MetalToolTipUI.class | Bin 0 -> 4741 bytes .../metal/MetalTreeUI$LineStyleListener.class | Bin 0 -> 1207 bytes .../javax/swing/plaf/metal/MetalTreeUI.class | Bin 0 -> 4661 bytes .../javax/swing/plaf/metal/MetalUtils.class | Bin 0 -> 7703 bytes .../javax/swing/plaf/metal/OceanTheme.class | Bin 0 -> 5545 bytes .../swing/plaf/multi/MultiButtonUI.class | Bin 0 -> 3741 bytes .../plaf/multi/MultiColorChooserUI.class | Bin 0 -> 3765 bytes .../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 .../plaf/multi/MultiInternalFrameUI.class | Bin 0 -> 3769 bytes .../javax/swing/plaf/multi/MultiLabelUI.class | Bin 0 -> 3737 bytes .../javax/swing/plaf/multi/MultiListUI.class | Bin 0 -> 4778 bytes .../swing/plaf/multi/MultiLookAndFeel.class | Bin 0 -> 4980 bytes .../swing/plaf/multi/MultiMenuBarUI.class | Bin 0 -> 3745 bytes .../swing/plaf/multi/MultiMenuItemUI.class | Bin 0 -> 3749 bytes .../swing/plaf/multi/MultiOptionPaneUI.class | Bin 0 -> 4309 bytes .../javax/swing/plaf/multi/MultiPanelUI.class | Bin 0 -> 3737 bytes .../swing/plaf/multi/MultiPopupMenuUI.class | Bin 0 -> 3753 bytes .../swing/plaf/multi/MultiProgressBarUI.class | Bin 0 -> 3761 bytes .../swing/plaf/multi/MultiRootPaneUI.class | Bin 0 -> 3749 bytes .../swing/plaf/multi/MultiScrollBarUI.class | Bin 0 -> 3753 bytes .../swing/plaf/multi/MultiScrollPaneUI.class | Bin 0 -> 3757 bytes .../swing/plaf/multi/MultiSeparatorUI.class | Bin 0 -> 3753 bytes .../swing/plaf/multi/MultiSliderUI.class | Bin 0 -> 3741 bytes .../swing/plaf/multi/MultiSpinnerUI.class | Bin 0 -> 3745 bytes .../swing/plaf/multi/MultiSplitPaneUI.class | Bin 0 -> 5265 bytes .../swing/plaf/multi/MultiTabbedPaneUI.class | Bin 0 -> 4734 bytes .../swing/plaf/multi/MultiTableHeaderUI.class | Bin 0 -> 3761 bytes .../javax/swing/plaf/multi/MultiTableUI.class | Bin 0 -> 3737 bytes .../javax/swing/plaf/multi/MultiTextUI.class | Bin 0 -> 7018 bytes .../swing/plaf/multi/MultiToolBarUI.class | Bin 0 -> 3745 bytes .../swing/plaf/multi/MultiToolTipUI.class | Bin 0 -> 3745 bytes .../javax/swing/plaf/multi/MultiTreeUI.class | Bin 0 -> 6600 bytes .../swing/plaf/multi/MultiViewportUI.class | Bin 0 -> 3749 bytes .../javax/swing/plaf/synth/ColorType.class | Bin 0 -> 1096 bytes .../lib/javax/swing/plaf/synth/Region.class | Bin 0 -> 5717 bytes .../swing/plaf/synth/SynthConstants.class | Bin 0 -> 374 bytes .../javax/swing/plaf/synth/SynthContext.class | Bin 0 -> 1110 bytes .../swing/plaf/synth/SynthGraphicsUtils.class | Bin 0 -> 4042 bytes .../swing/plaf/synth/SynthLookAndFeel.class | Bin 0 -> 2732 bytes .../javax/swing/plaf/synth/SynthPainter.class | Bin 0 -> 16885 bytes .../javax/swing/plaf/synth/SynthStyle.class | Bin 0 -> 3043 bytes .../swing/plaf/synth/SynthStyleFactory.class | Bin 0 -> 440 bytes .../swing/table/AbstractTableModel.class | Bin 0 -> 4043 bytes .../DefaultTableCellRenderer$UIResource.class | Bin 0 -> 464 bytes .../table/DefaultTableCellRenderer.class | Bin 0 -> 3503 bytes .../swing/table/DefaultTableColumnModel.class | Bin 0 -> 8494 bytes .../javax/swing/table/DefaultTableModel.class | Bin 0 -> 7491 bytes ...leHeader$AccessibleJTableHeaderEntry.class | Bin 0 -> 9605 bytes .../JTableHeader$AccessibleJTableHeader.class | Bin 0 -> 1638 bytes .../lib/javax/swing/table/JTableHeader.class | Bin 0 -> 6581 bytes .../javax/swing/table/TableCellEditor.class | Bin 0 -> 263 bytes .../javax/swing/table/TableCellRenderer.class | Bin 0 -> 240 bytes .../lib/javax/swing/table/TableColumn.class | Bin 0 -> 6349 bytes .../javax/swing/table/TableColumnModel.class | Bin 0 -> 1035 bytes .../lib/javax/swing/table/TableModel.class | Bin 0 -> 551 bytes .../AbstractDocument$AbstractElement.class | Bin 0 -> 7275 bytes .../AbstractDocument$AttributeContext.class | Bin 0 -> 946 bytes .../text/AbstractDocument$BidiElement.class | Bin 0 -> 1170 bytes .../AbstractDocument$BidiRootElement.class | Bin 0 -> 775 bytes .../text/AbstractDocument$BranchElement.class | Bin 0 -> 3805 bytes .../swing/text/AbstractDocument$Bypass.class | Bin 0 -> 1368 bytes .../swing/text/AbstractDocument$Content.class | Bin 0 -> 636 bytes ...bstractDocument$DefaultDocumentEvent.class | Bin 0 -> 2879 bytes .../text/AbstractDocument$ElementEdit.class | Bin 0 -> 1266 bytes .../text/AbstractDocument$LeafElement.class | Bin 0 -> 2890 bytes .../javax/swing/text/AbstractDocument.class | Bin 0 -> 19878 bytes .../lib/javax/swing/text/AbstractWriter.class | Bin 0 -> 6829 bytes .../text/AsyncBoxView$ChildLocator.class | Bin 0 -> 4547 bytes .../swing/text/AsyncBoxView$ChildState.class | Bin 0 -> 3896 bytes .../swing/text/AsyncBoxView$FlushTask.class | Bin 0 -> 1889 bytes .../lib/javax/swing/text/AsyncBoxView.class | Bin 0 -> 10236 bytes .../AttributeSet$CharacterAttribute.class | Bin 0 -> 228 bytes .../text/AttributeSet$ColorAttribute.class | Bin 0 -> 220 bytes .../text/AttributeSet$FontAttribute.class | Bin 0 -> 218 bytes .../AttributeSet$ParagraphAttribute.class | Bin 0 -> 228 bytes .../lib/javax/swing/text/AttributeSet.class | Bin 0 -> 1219 bytes .../swing/text/BadLocationException.class | Bin 0 -> 606 bytes .../lib/javax/swing/text/BoxView.class | Bin 0 -> 13114 bytes .../lib/javax/swing/text/Caret.class | Bin 0 -> 674 bytes .../swing/text/ChangedCharSetException.class | Bin 0 -> 796 bytes .../javax/swing/text/ComponentView$1.class | Bin 0 -> 1200 bytes .../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 .../DefaultCaret$BlinkTimerListener.class | Bin 0 -> 1007 bytes .../swing/text/DefaultCaret$Bypass.class | Bin 0 -> 960 bytes .../text/DefaultCaret$DocumentHandler.class | Bin 0 -> 1602 bytes .../DefaultCaret$PropertyChangeHandler.class | Bin 0 -> 1916 bytes .../lib/javax/swing/text/DefaultCaret.class | Bin 0 -> 14143 bytes .../DefaultEditorKit$BackwardAction.class | Bin 0 -> 750 bytes .../text/DefaultEditorKit$BeepAction.class | Bin 0 -> 716 bytes .../text/DefaultEditorKit$BeginAction.class | Bin 0 -> 1248 bytes .../DefaultEditorKit$BeginLineAction.class | Bin 0 -> 1442 bytes .../DefaultEditorKit$BeginWordAction.class | Bin 0 -> 1434 bytes .../text/DefaultEditorKit$CopyAction.class | Bin 0 -> 864 bytes .../text/DefaultEditorKit$CutAction.class | Bin 0 -> 859 bytes ...faultEditorKit$DefaultKeyTypedAction.class | Bin 0 -> 1326 bytes ...efaultEditorKit$DeleteNextCharAction.class | Bin 0 -> 1595 bytes ...efaultEditorKit$DeletePrevCharAction.class | Bin 0 -> 1575 bytes .../text/DefaultEditorKit$DownAction.class | Bin 0 -> 731 bytes .../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 .../DefaultEditorKit$InsertBreakAction.class | Bin 0 -> 896 bytes ...DefaultEditorKit$InsertContentAction.class | Bin 0 -> 658 bytes .../DefaultEditorKit$InsertTabAction.class | Bin 0 -> 888 bytes .../DefaultEditorKit$NextWordAction.class | Bin 0 -> 1429 bytes .../text/DefaultEditorKit$PasteAction.class | Bin 0 -> 871 bytes .../DefaultEditorKit$PreviousWordAction.class | Bin 0 -> 1449 bytes .../DefaultEditorKit$SelectAllAction.class | Bin 0 -> 1444 bytes .../DefaultEditorKit$SelectLineAction.class | Bin 0 -> 1512 bytes .../DefaultEditorKit$SelectWordAction.class | Bin 0 -> 1776 bytes ...ultEditorKit$SelectionBackwardAction.class | Bin 0 -> 782 bytes ...efaultEditorKit$SelectionBeginAction.class | Bin 0 -> 1280 bytes ...ltEditorKit$SelectionBeginLineAction.class | Bin 0 -> 1418 bytes ...ltEditorKit$SelectionBeginWordAction.class | Bin 0 -> 1466 bytes ...DefaultEditorKit$SelectionDownAction.class | Bin 0 -> 763 bytes .../DefaultEditorKit$SelectionEndAction.class | Bin 0 -> 1425 bytes ...aultEditorKit$SelectionEndLineAction.class | Bin 0 -> 1408 bytes ...aultEditorKit$SelectionEndWordAction.class | Bin 0 -> 1456 bytes ...aultEditorKit$SelectionForwardAction.class | Bin 0 -> 777 bytes ...ultEditorKit$SelectionNextWordAction.class | Bin 0 -> 1461 bytes ...ditorKit$SelectionPreviousWordAction.class | Bin 0 -> 1481 bytes .../DefaultEditorKit$SelectionUpAction.class | Bin 0 -> 755 bytes .../text/DefaultEditorKit$UpAction.class | Bin 0 -> 723 bytes .../javax/swing/text/DefaultEditorKit.class | Bin 0 -> 9767 bytes ...ultFormatter$FormatterDocumentFilter.class | Bin 0 -> 2934 bytes .../javax/swing/text/DefaultFormatter.class | Bin 0 -> 3572 bytes .../swing/text/DefaultFormatterFactory.class | Bin 0 -> 2826 bytes ...tHighlighter$DefaultHighlightPainter.class | Bin 0 -> 3060 bytes .../DefaultHighlighter$HighlightEntry.class | Bin 0 -> 1259 bytes ...faultHighlighter$LayerHighlightEntry.class | Bin 0 -> 2281 bytes .../javax/swing/text/DefaultHighlighter.class | Bin 0 -> 6755 bytes ...StyledDocument$AttributeUndoableEdit.class | Bin 0 -> 1512 bytes ...ultStyledDocument$ElementBuffer$Edit.class | Bin 0 -> 1219 bytes .../DefaultStyledDocument$ElementBuffer.class | Bin 0 -> 18010 bytes .../DefaultStyledDocument$ElementSpec.class | Bin 0 -> 2801 bytes ...DefaultStyledDocument$SectionElement.class | Bin 0 -> 800 bytes ...ltStyledDocument$StyleChangeListener.class | Bin 0 -> 1181 bytes .../swing/text/DefaultStyledDocument.class | Bin 0 -> 15413 bytes .../lib/javax/swing/text/DefaultTextUI.class | Bin 0 -> 345 bytes .../lib/javax/swing/text/Document.class | Bin 0 -> 1226 bytes .../text/DocumentFilter$FilterBypass.class | Bin 0 -> 733 bytes .../lib/javax/swing/text/DocumentFilter.class | Bin 0 -> 1408 bytes .../lib/javax/swing/text/EditorKit.class | Bin 0 -> 1450 bytes .../lib/javax/swing/text/Element.class | Bin 0 -> 514 bytes .../text/ElementIterator$ElementRef.class | Bin 0 -> 667 bytes .../javax/swing/text/ElementIterator.class | Bin 0 -> 3003 bytes .../swing/text/EmptyAttributeSet$1.class | Bin 0 -> 891 bytes .../javax/swing/text/EmptyAttributeSet.class | Bin 0 -> 1728 bytes .../lib/javax/swing/text/FieldView$1.class | Bin 0 -> 813 bytes .../lib/javax/swing/text/FieldView.class | Bin 0 -> 6268 bytes .../swing/text/FlowView$FlowStrategy.class | Bin 0 -> 5963 bytes .../swing/text/FlowView$LogicalView.class | Bin 0 -> 3269 bytes .../lib/javax/swing/text/FlowView.class | Bin 0 -> 4208 bytes .../text/GapContent$GapContentPosition.class | Bin 0 -> 736 bytes .../swing/text/GapContent$InsertUndo.class | Bin 0 -> 1557 bytes .../javax/swing/text/GapContent$Mark.class | Bin 0 -> 1400 bytes .../swing/text/GapContent$UndoPosRef.class | Bin 0 -> 908 bytes .../swing/text/GapContent$UndoRemove.class | Bin 0 -> 1623 bytes .../lib/javax/swing/text/GapContent.class | Bin 0 -> 12279 bytes .../text/GlyphView$DefaultGlyphPainter.class | Bin 0 -> 4860 bytes .../swing/text/GlyphView$GlyphPainter.class | Bin 0 -> 1753 bytes .../text/GlyphView$J2DGlyphPainter.class | Bin 0 -> 4332 bytes .../lib/javax/swing/text/GlyphView.class | Bin 0 -> 12332 bytes .../swing/text/Highlighter$Highlight.class | Bin 0 -> 334 bytes .../text/Highlighter$HighlightPainter.class | Bin 0 -> 313 bytes .../lib/javax/swing/text/Highlighter.class | Bin 0 -> 782 bytes .../lib/javax/swing/text/IconView.class | Bin 0 -> 2347 bytes .../swing/text/InternationalFormatter.class | Bin 0 -> 3849 bytes ...xtComponent$AccessibleJTextComponent.class | Bin 0 -> 10550 bytes .../text/JTextComponent$DefaultKeymap.class | Bin 0 -> 3384 bytes ...TextComponent$DefaultTransferHandler.class | Bin 0 -> 3041 bytes .../text/JTextComponent$KeyBinding.class | Bin 0 -> 595 bytes .../text/JTextComponent$KeymapActionMap.class | Bin 0 -> 1605 bytes .../text/JTextComponent$KeymapWrapper.class | Bin 0 -> 1999 bytes .../lib/javax/swing/text/JTextComponent.class | Bin 0 -> 18400 bytes .../lib/javax/swing/text/Keymap.class | Bin 0 -> 861 bytes .../lib/javax/swing/text/LabelView.class | Bin 0 -> 3664 bytes .../LayeredHighlighter$LayerPainter.class | Bin 0 -> 614 bytes .../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 .../swing/text/MutableAttributeSet.class | Bin 0 -> 492 bytes .../text/NavigationFilter$FilterBypass.class | Bin 0 -> 544 bytes .../javax/swing/text/NavigationFilter.class | Bin 0 -> 1419 bytes .../javax/swing/text/NumberFormatter.class | Bin 0 -> 730 bytes .../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 .../lib/javax/swing/text/PlainView.class | Bin 0 -> 11774 bytes .../lib/javax/swing/text/Position$Bias.class | Bin 0 -> 717 bytes .../lib/javax/swing/text/Position.class | Bin 0 -> 214 bytes .../lib/javax/swing/text/Segment.class | Bin 0 -> 2533 bytes .../javax/swing/text/SimpleAttributeSet.class | Bin 0 -> 4801 bytes .../swing/text/StringContent$InsertUndo.class | Bin 0 -> 1566 bytes .../javax/swing/text/StringContent$Mark.class | Bin 0 -> 568 bytes .../swing/text/StringContent$RemoveUndo.class | Bin 0 -> 1673 bytes .../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 .../lib/javax/swing/text/Style.class | Bin 0 -> 292 bytes .../StyleConstants$CharacterConstants.class | Bin 0 -> 1428 bytes .../text/StyleConstants$ColorConstants.class | Bin 0 -> 776 bytes .../text/StyleConstants$FontConstants.class | Bin 0 -> 858 bytes .../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 .../swing/text/StyleContext$NamedStyle.class | Bin 0 -> 6753 bytes .../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 .../StyledEditorKit$AlignmentAction.class | Bin 0 -> 1181 bytes .../text/StyledEditorKit$BoldAction.class | Bin 0 -> 1692 bytes .../text/StyledEditorKit$CaretTracker.class | Bin 0 -> 1774 bytes .../StyledEditorKit$FontFamilyAction.class | Bin 0 -> 1220 bytes .../text/StyledEditorKit$FontSizeAction.class | Bin 0 -> 1180 bytes .../StyledEditorKit$ForegroundAction.class | Bin 0 -> 1231 bytes .../text/StyledEditorKit$ItalicAction.class | Bin 0 -> 1704 bytes .../StyledEditorKit$StyledTextAction.class | Bin 0 -> 3268 bytes .../StyledEditorKit$StyledViewFactory.class | Bin 0 -> 1724 bytes .../StyledEditorKit$UnderlineAction.class | Bin 0 -> 1722 bytes .../javax/swing/text/StyledEditorKit.class | Bin 0 -> 4297 bytes .../lib/javax/swing/text/TabExpander.class | Bin 0 -> 150 bytes .../lib/javax/swing/text/TabSet.class | Bin 0 -> 2402 bytes .../lib/javax/swing/text/TabStop.class | Bin 0 -> 2174 bytes .../lib/javax/swing/text/TabableView.class | Bin 0 -> 214 bytes .../swing/text/TableView$TableCell.class | Bin 0 -> 1132 bytes .../javax/swing/text/TableView$TableRow.class | Bin 0 -> 2230 bytes .../lib/javax/swing/text/TableView.class | Bin 0 -> 3781 bytes .../TextAction$HorizontalMovementAction.class | Bin 0 -> 1800 bytes .../TextAction$VerticalMovementAction.class | Bin 0 -> 1953 bytes .../lib/javax/swing/text/TextAction.class | Bin 0 -> 2692 bytes .../lib/javax/swing/text/Utilities.class | Bin 0 -> 8224 bytes .../classpath/lib/javax/swing/text/View.class | Bin 0 -> 12065 bytes .../lib/javax/swing/text/ViewFactory.class | Bin 0 -> 191 bytes .../text/WrappedPlainView$WrappedLine.class | Bin 0 -> 5765 bytes .../WrappedPlainView$WrappedLineCreator.class | Bin 0 -> 889 bytes .../javax/swing/text/WrappedPlainView.class | Bin 0 -> 8465 bytes .../lib/javax/swing/text/ZoneView$Zone.class | Bin 0 -> 912 bytes .../lib/javax/swing/text/ZoneView.class | Bin 0 -> 5663 bytes .../lib/javax/swing/text/html/BRView.class | Bin 0 -> 553 bytes .../text/html/BlockView$PositionInfo.class | Bin 0 -> 998 bytes .../lib/javax/swing/text/html/BlockView.class | Bin 0 -> 9557 bytes .../javax/swing/text/html/CSS$Attribute.class | Bin 0 -> 6219 bytes .../lib/javax/swing/text/html/CSS.class | Bin 0 -> 6687 bytes .../lib/javax/swing/text/html/CSSBorder.class | Bin 0 -> 7458 bytes .../html/CSSParser$CSSParserCallback.class | Bin 0 -> 390 bytes .../lib/javax/swing/text/html/CSSParser.class | Bin 0 -> 4348 bytes .../html/FormSubmitEvent$MethodType.class | Bin 0 -> 567 bytes .../swing/text/html/FormSubmitEvent.class | Bin 0 -> 1362 bytes .../javax/swing/text/html/FormView$1.class | Bin 0 -> 1669 bytes .../html/FormView$MouseEventListener.class | Bin 0 -> 941 bytes .../text/html/FormView$SubmitThread.class | Bin 0 -> 5391 bytes .../lib/javax/swing/text/html/FormView.class | Bin 0 -> 10767 bytes .../text/html/FrameSetView$FrameSetRow.class | Bin 0 -> 1841 bytes .../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 .../swing/text/html/HTML$Attribute.class | Bin 0 -> 6257 bytes .../lib/javax/swing/text/html/HTML$Tag.class | Bin 0 -> 6702 bytes .../swing/text/html/HTML$UnknownTag.class | Bin 0 -> 546 bytes .../lib/javax/swing/text/html/HTML.class | Bin 0 -> 2647 bytes .../swing/text/html/HTMLDocument$1.class | Bin 0 -> 1352 bytes .../text/html/HTMLDocument$BlockElement.class | Bin 0 -> 1326 bytes .../HTMLDocument$HTMLReader$AreaAction.class | Bin 0 -> 1106 bytes .../HTMLDocument$HTMLReader$BaseAction.class | Bin 0 -> 1330 bytes .../HTMLDocument$HTMLReader$BlockAction.class | Bin 0 -> 1103 bytes ...LDocument$HTMLReader$CharacterAction.class | Bin 0 -> 1544 bytes ...TMLDocument$HTMLReader$ConvertAction.class | Bin 0 -> 2417 bytes .../HTMLDocument$HTMLReader$FormAction.class | Bin 0 -> 5253 bytes ...TMLDocument$HTMLReader$FormTagAction.class | Bin 0 -> 913 bytes .../HTMLDocument$HTMLReader$HeadAction.class | Bin 0 -> 1714 bytes ...HTMLDocument$HTMLReader$HiddenAction.class | Bin 0 -> 1106 bytes ...TMLDocument$HTMLReader$IsindexAction.class | Bin 0 -> 1202 bytes .../HTMLDocument$HTMLReader$LinkAction.class | Bin 0 -> 2414 bytes .../HTMLDocument$HTMLReader$MapAction.class | Bin 0 -> 1103 bytes .../HTMLDocument$HTMLReader$MetaAction.class | Bin 0 -> 1106 bytes ...LDocument$HTMLReader$ParagraphAction.class | Bin 0 -> 1086 bytes .../HTMLDocument$HTMLReader$PreAction.class | Bin 0 -> 1471 bytes ...TMLDocument$HTMLReader$SpecialAction.class | Bin 0 -> 971 bytes .../HTMLDocument$HTMLReader$StyleAction.class | Bin 0 -> 1084 bytes .../HTMLDocument$HTMLReader$TagAction.class | Bin 0 -> 993 bytes .../HTMLDocument$HTMLReader$TitleAction.class | Bin 0 -> 1109 bytes .../text/html/HTMLDocument$HTMLReader.class | Bin 0 -> 15313 bytes .../text/html/HTMLDocument$Iterator.class | Bin 0 -> 612 bytes .../text/html/HTMLDocument$LeafIterator.class | Bin 0 -> 1732 bytes .../text/html/HTMLDocument$RunElement.class | Bin 0 -> 1364 bytes .../javax/swing/text/html/HTMLDocument.class | Bin 0 -> 14134 bytes .../text/html/HTMLEditorKit$HTMLFactory.class | Bin 0 -> 3016 bytes .../html/HTMLEditorKit$HTMLTextAction.class | Bin 0 -> 3248 bytes .../HTMLEditorKit$InsertHTMLTextAction.class | Bin 0 -> 5648 bytes .../html/HTMLEditorKit$LinkController.class | Bin 0 -> 5330 bytes .../text/html/HTMLEditorKit$Parser.class | Bin 0 -> 542 bytes .../html/HTMLEditorKit$ParserCallback.class | Bin 0 -> 1710 bytes .../javax/swing/text/html/HTMLEditorKit.class | Bin 0 -> 10214 bytes .../text/html/HTMLFrameHyperlinkEvent.class | Bin 0 -> 1753 bytes .../javax/swing/text/html/HTMLWriter.class | Bin 0 -> 13091 bytes .../javax/swing/text/html/ImageView$1.class | Bin 0 -> 842 bytes .../swing/text/html/ImageView$Observer.class | Bin 0 -> 1079 bytes .../lib/javax/swing/text/html/ImageView.class | Bin 0 -> 8743 bytes .../javax/swing/text/html/InlineView.class | Bin 0 -> 4798 bytes .../lib/javax/swing/text/html/ListView.class | Bin 0 -> 1920 bytes .../swing/text/html/MinimalHTMLWriter.class | Bin 0 -> 9010 bytes ...ltiAttributeSet$MultiNameEnumeration.class | Bin 0 -> 1245 bytes .../swing/text/html/MultiAttributeSet.class | Bin 0 -> 2791 bytes .../javax/swing/text/html/MultiStyle.class | Bin 0 -> 1900 bytes .../lib/javax/swing/text/html/NullView.class | Bin 0 -> 1284 bytes .../javax/swing/text/html/ObjectView.class | Bin 0 -> 1388 bytes .../lib/javax/swing/text/html/Option.class | Bin 0 -> 1511 bytes .../javax/swing/text/html/ParagraphView.class | Bin 0 -> 4882 bytes .../swing/text/html/ResetableModel.class | Bin 0 -> 153 bytes .../text/html/ResetablePlainDocument.class | Bin 0 -> 1046 bytes .../html/ResetableToggleButtonModel.class | Bin 0 -> 655 bytes .../swing/text/html/SelectComboBoxModel.class | Bin 0 -> 837 bytes .../swing/text/html/SelectListModel.class | Bin 0 -> 1125 bytes .../text/html/StyleSheet$BoxPainter.class | Bin 0 -> 3498 bytes .../swing/text/html/StyleSheet$CSSStyle.class | Bin 0 -> 1625 bytes ...yleSheet$CSSStyleSheetParserCallback.class | Bin 0 -> 2235 bytes .../text/html/StyleSheet$ListPainter.class | Bin 0 -> 2672 bytes .../javax/swing/text/html/StyleSheet.class | Bin 0 -> 17082 bytes .../swing/text/html/TableView$CellView.class | Bin 0 -> 1794 bytes .../swing/text/html/TableView$RowView.class | Bin 0 -> 3261 bytes .../lib/javax/swing/text/html/TableView.class | Bin 0 -> 12518 bytes .../swing/text/html/ViewAttributeSet.class | Bin 0 -> 2824 bytes .../text/html/parser/AttributeList$1.class | Bin 0 -> 944 bytes .../text/html/parser/AttributeList.class | Bin 0 -> 2576 bytes .../swing/text/html/parser/ContentModel.class | Bin 0 -> 2305 bytes .../javax/swing/text/html/parser/DTD.class | Bin 0 -> 9163 bytes .../swing/text/html/parser/DTDConstants.class | Bin 0 -> 1133 bytes .../parser/DocumentParser$gnuParser.class | Bin 0 -> 3356 bytes .../text/html/parser/DocumentParser.class | Bin 0 -> 2434 bytes .../swing/text/html/parser/Element$1.class | Bin 0 -> 653 bytes .../swing/text/html/parser/Element.class | Bin 0 -> 2752 bytes .../swing/text/html/parser/Entity$1.class | Bin 0 -> 783 bytes .../javax/swing/text/html/parser/Entity.class | Bin 0 -> 1637 bytes .../swing/text/html/parser/Parser$1.class | Bin 0 -> 2671 bytes .../javax/swing/text/html/parser/Parser.class | Bin 0 -> 4563 bytes .../parser/ParserDelegator$gnuParser.class | Bin 0 -> 3250 bytes .../text/html/parser/ParserDelegator.class | Bin 0 -> 2400 bytes .../swing/text/html/parser/TagElement.class | Bin 0 -> 1863 bytes .../swing/text/rtf/ControlWordToken.class | Bin 0 -> 587 bytes .../javax/swing/text/rtf/RTFEditorKit.class | Bin 0 -> 1122 bytes .../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 .../lib/javax/swing/text/rtf/Token.class | Bin 0 -> 508 bytes .../AbstractLayoutCache$NodeDimensions.class | Bin 0 -> 534 bytes .../swing/tree/AbstractLayoutCache.class | Bin 0 -> 4406 bytes ...ableTreeNode$BreadthFirstEnumeration.class | Bin 0 -> 1311 bytes ...MutableTreeNode$PostorderEnumeration.class | Bin 0 -> 1720 bytes ...tMutableTreeNode$PreorderEnumeration.class | Bin 0 -> 1623 bytes .../swing/tree/DefaultMutableTreeNode.class | Bin 0 -> 10962 bytes ...faultTreeCellEditor$DefaultTextField.class | Bin 0 -> 1547 bytes ...efaultTreeCellEditor$EditorContainer.class | Bin 0 -> 2279 bytes .../swing/tree/DefaultTreeCellEditor.class | Bin 0 -> 9819 bytes .../swing/tree/DefaultTreeCellRenderer.class | Bin 0 -> 7763 bytes .../javax/swing/tree/DefaultTreeModel.class | Bin 0 -> 8345 bytes ...ltTreeSelectionModel$PathPlaceHolder.class | Bin 0 -> 632 bytes .../tree/DefaultTreeSelectionModel.class | Bin 0 -> 14529 bytes .../swing/tree/ExpandVetoException.class | Bin 0 -> 675 bytes .../FixedHeightLayoutCache$NodeRecord.class | Bin 0 -> 2355 bytes .../swing/tree/FixedHeightLayoutCache.class | Bin 0 -> 7085 bytes .../javax/swing/tree/MutableTreeNode.class | Bin 0 -> 392 bytes .../lib/javax/swing/tree/RowMapper.class | Bin 0 -> 177 bytes .../lib/javax/swing/tree/TreeCellEditor.class | Bin 0 -> 259 bytes .../javax/swing/tree/TreeCellRenderer.class | Bin 0 -> 236 bytes .../lib/javax/swing/tree/TreeModel.class | Bin 0 -> 564 bytes .../lib/javax/swing/tree/TreeNode.class | Bin 0 -> 400 bytes .../lib/javax/swing/tree/TreePath.class | Bin 0 -> 3273 bytes .../javax/swing/tree/TreeSelectionModel.class | Bin 0 -> 1436 bytes ...VariableHeightLayoutCache$NodeRecord.class | Bin 0 -> 2254 bytes .../tree/VariableHeightLayoutCache.class | Bin 0 -> 8001 bytes .../swing/undo/AbstractUndoableEdit.class | Bin 0 -> 2624 bytes .../swing/undo/CannotRedoException.class | Bin 0 -> 330 bytes .../swing/undo/CannotUndoException.class | Bin 0 -> 330 bytes .../lib/javax/swing/undo/CompoundEdit.class | Bin 0 -> 3252 bytes .../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 .../swing/undo/UndoableEditSupport.class | Bin 0 -> 3518 bytes .../HeuristicCommitException.class | Bin 0 -> 477 bytes .../transaction/HeuristicMixedException.class | Bin 0 -> 474 bytes .../HeuristicRollbackException.class | Bin 0 -> 483 bytes .../InvalidTransactionException.class | Bin 0 -> 491 bytes .../transaction/NotSupportedException.class | Bin 0 -> 468 bytes .../javax/transaction/RollbackException.class | Bin 0 -> 456 bytes .../lib/javax/transaction/Status.class | Bin 0 -> 541 bytes .../javax/transaction/Synchronization.class | Bin 0 -> 195 bytes .../javax/transaction/SystemException.class | Bin 0 -> 585 bytes .../lib/javax/transaction/Transaction.class | Bin 0 -> 771 bytes .../transaction/TransactionManager.class | Bin 0 -> 885 bytes .../TransactionRequiredException.class | Bin 0 -> 494 bytes .../TransactionRolledbackException.class | Bin 0 -> 500 bytes .../javax/transaction/UserTransaction.class | Bin 0 -> 661 bytes .../javax/transaction/xa/XAException.class | Bin 0 -> 1451 bytes .../lib/javax/transaction/xa/XAResource.class | Bin 0 -> 1062 bytes .../lib/javax/transaction/xa/Xid.class | Bin 0 -> 292 bytes .../lib/javax/xml/XMLConstants.class | Bin 0 -> 1138 bytes .../DatatypeConfigurationException.class | Bin 0 -> 788 bytes .../datatype/DatatypeConstants$Field.class | Bin 0 -> 717 bytes .../xml/datatype/DatatypeConstants.class | Bin 0 -> 2609 bytes .../javax/xml/datatype/DatatypeFactory.class | Bin 0 -> 5735 bytes .../lib/javax/xml/datatype/Duration.class | Bin 0 -> 3881 bytes .../xml/datatype/XMLGregorianCalendar.class | Bin 0 -> 3296 bytes .../xml/namespace/NamespaceContext.class | Bin 0 -> 285 bytes .../lib/javax/xml/namespace/QName.class | Bin 0 -> 2665 bytes .../javax/xml/parsers/DocumentBuilder.class | Bin 0 -> 2261 bytes .../xml/parsers/DocumentBuilderFactory.class | Bin 0 -> 5298 bytes .../parsers/FactoryConfigurationError.class | Bin 0 -> 1171 bytes .../ParserConfigurationException.class | Bin 0 -> 489 bytes .../lib/javax/xml/parsers/SAXParser.class | Bin 0 -> 4329 bytes .../javax/xml/parsers/SAXParserFactory.class | Bin 0 -> 4217 bytes .../lib/javax/xml/stream/EventFilter.class | Bin 0 -> 177 bytes .../stream/FactoryConfigurationError.class | Bin 0 -> 1130 bytes .../lib/javax/xml/stream/Location.class | Bin 0 -> 266 bytes .../lib/javax/xml/stream/StreamFilter.class | Bin 0 -> 179 bytes .../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 .../javax/xml/stream/XMLInputFactory.class | Bin 0 -> 5885 bytes .../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 .../javax/xml/stream/XMLStreamConstants.class | Bin 0 -> 688 bytes .../javax/xml/stream/XMLStreamException.class | Bin 0 -> 1355 bytes .../javax/xml/stream/XMLStreamReader.class | Bin 0 -> 1768 bytes .../javax/xml/stream/XMLStreamWriter.class | Bin 0 -> 1556 bytes .../javax/xml/stream/events/Attribute.class | Bin 0 -> 304 bytes .../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 .../javax/xml/stream/events/EndDocument.class | Bin 0 -> 167 bytes .../javax/xml/stream/events/EndElement.class | Bin 0 -> 264 bytes .../xml/stream/events/EntityDeclaration.class | Bin 0 -> 340 bytes .../xml/stream/events/EntityReference.class | Bin 0 -> 289 bytes .../javax/xml/stream/events/Namespace.class | Bin 0 -> 278 bytes .../stream/events/NotationDeclaration.class | Bin 0 -> 268 bytes .../stream/events/ProcessingInstruction.class | Bin 0 -> 248 bytes .../xml/stream/events/StartDocument.class | Bin 0 -> 349 bytes .../xml/stream/events/StartElement.class | Bin 0 -> 528 bytes .../javax/xml/stream/events/XMLEvent.class | Bin 0 -> 850 bytes .../xml/stream/util/EventReaderDelegate.class | Bin 0 -> 2151 bytes .../xml/stream/util/ReaderDelegate.class | Bin 0 -> 6601 bytes .../xml/stream/util/XMLEventAllocator.class | Bin 0 -> 459 bytes .../xml/stream/util/XMLEventConsumer.class | Bin 0 -> 253 bytes .../javax/xml/transform/ErrorListener.class | Bin 0 -> 319 bytes .../lib/javax/xml/transform/OutputKeys.class | Bin 0 -> 820 bytes .../lib/javax/xml/transform/Result.class | Bin 0 -> 427 bytes .../lib/javax/xml/transform/Source.class | Bin 0 -> 204 bytes .../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 .../xml/transform/TransformerException.class | Bin 0 -> 3839 bytes .../xml/transform/TransformerFactory.class | Bin 0 -> 4088 bytes ...TransformerFactoryConfigurationError.class | Bin 0 -> 1174 bytes .../lib/javax/xml/transform/URIResolver.class | Bin 0 -> 279 bytes .../javax/xml/transform/dom/DOMLocator.class | Bin 0 -> 218 bytes .../javax/xml/transform/dom/DOMResult.class | Bin 0 -> 1693 bytes .../javax/xml/transform/dom/DOMSource.class | Bin 0 -> 1180 bytes .../javax/xml/transform/sax/SAXResult.class | Bin 0 -> 1391 bytes .../javax/xml/transform/sax/SAXSource.class | Bin 0 -> 2439 bytes .../transform/sax/SAXTransformerFactory.class | Bin 0 -> 1212 bytes .../xml/transform/sax/TemplatesHandler.class | Bin 0 -> 321 bytes .../transform/sax/TransformerHandler.class | Bin 0 -> 514 bytes .../xml/transform/stream/StreamResult.class | Bin 0 -> 2049 bytes .../xml/transform/stream/StreamSource.class | Bin 0 -> 2517 bytes .../lib/javax/xml/validation/Schema.class | Bin 0 -> 423 bytes .../javax/xml/validation/SchemaFactory.class | Bin 0 -> 5071 bytes .../xml/validation/SchemaFactoryLoader.class | Bin 0 -> 408 bytes .../xml/validation/TypeInfoProvider.class | Bin 0 -> 487 bytes .../lib/javax/xml/validation/Validator.class | Bin 0 -> 1638 bytes .../xml/validation/ValidatorHandler.class | Bin 0 -> 1764 bytes .../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 .../xml/xpath/XPathExpressionException.class | Bin 0 -> 616 bytes .../lib/javax/xml/xpath/XPathFactory.class | Bin 0 -> 3748 bytes .../XPathFactoryConfigurationException.class | Bin 0 -> 646 bytes .../lib/javax/xml/xpath/XPathFunction.class | Bin 0 -> 248 bytes .../xml/xpath/XPathFunctionException.class | Bin 0 -> 620 bytes .../xml/xpath/XPathFunctionResolver.class | Bin 0 -> 229 bytes .../xml/xpath/XPathVariableResolver.class | Bin 0 -> 215 bytes libjava/classpath/lib/jazzlib/index.html | 47 + .../classpath/lib/jazzlib/makeJazzlibDist.sh | 121 + libjava/classpath/lib/mkdep.pl.in | 336 + .../lib/org/ietf/jgss/ChannelBinding.class | Bin 0 -> 1653 bytes .../lib/org/ietf/jgss/GSSContext.class | Bin 0 -> 1929 bytes .../lib/org/ietf/jgss/GSSCredential.class | Bin 0 -> 961 bytes .../lib/org/ietf/jgss/GSSException.class | Bin 0 -> 5289 bytes .../lib/org/ietf/jgss/GSSManager.class | Bin 0 -> 2374 bytes .../classpath/lib/org/ietf/jgss/GSSName.class | Bin 0 -> 1248 bytes .../lib/org/ietf/jgss/MessageProp.class | Bin 0 -> 1738 bytes libjava/classpath/lib/org/ietf/jgss/Oid.class | Bin 0 -> 4656 bytes .../org/omg/CORBA/ACTIVITY_COMPLETED.class | Bin 0 -> 975 bytes .../lib/org/omg/CORBA/ACTIVITY_REQUIRED.class | Bin 0 -> 972 bytes .../classpath/lib/org/omg/CORBA/ARG_IN.class | Bin 0 -> 156 bytes .../lib/org/omg/CORBA/ARG_INOUT.class | Bin 0 -> 162 bytes .../classpath/lib/org/omg/CORBA/ARG_OUT.class | Bin 0 -> 158 bytes libjava/classpath/lib/org/omg/CORBA/Any.class | Bin 0 -> 3486 bytes .../lib/org/omg/CORBA/AnyHolder.class | Bin 0 -> 1378 bytes .../lib/org/omg/CORBA/AnySeqHelper.class | Bin 0 -> 2256 bytes .../lib/org/omg/CORBA/AnySeqHolder.class | Bin 0 -> 1617 bytes .../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 .../lib/org/omg/CORBA/BAD_PARAM.class | Bin 0 -> 948 bytes .../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 .../classpath/lib/org/omg/CORBA/BAD_QOS.class | Bin 0 -> 942 bytes .../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 .../classpath/lib/org/omg/CORBA/Bounds.class | Bin 0 -> 426 bytes .../lib/org/omg/CORBA/ByteHolder.class | Bin 0 -> 1339 bytes .../org/omg/CORBA/CODESET_INCOMPATIBLE.class | Bin 0 -> 981 bytes .../lib/org/omg/CORBA/COMM_FAILURE.class | Bin 0 -> 957 bytes .../org/omg/CORBA/CTX_RESTRICT_SCOPE.class | Bin 0 -> 180 bytes .../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 .../omg/CORBA/CompletionStatusHelper.class | Bin 0 -> 2021 bytes .../classpath/lib/org/omg/CORBA/Context.class | Bin 0 -> 687 bytes .../lib/org/omg/CORBA/ContextList.class | Bin 0 -> 468 bytes .../classpath/lib/org/omg/CORBA/Current.class | Bin 0 -> 216 bytes .../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 .../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 .../org/omg/CORBA/DefinitionKindHelper.class | Bin 0 -> 2646 bytes .../lib/org/omg/CORBA/DomainManager.class | Bin 0 -> 262 bytes .../omg/CORBA/DomainManagerOperations.class | Bin 0 -> 197 bytes .../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 .../classpath/lib/org/omg/CORBA/DynAny.class | Bin 0 -> 2088 bytes .../org/omg/CORBA/DynAnyPackage/Invalid.class | Bin 0 -> 589 bytes .../omg/CORBA/DynAnyPackage/InvalidSeq.class | Bin 0 -> 598 bytes .../CORBA/DynAnyPackage/InvalidValue.class | Bin 0 -> 604 bytes .../CORBA/DynAnyPackage/TypeMismatch.class | Bin 0 -> 604 bytes .../lib/org/omg/CORBA/DynArray.class | Bin 0 -> 303 bytes .../classpath/lib/org/omg/CORBA/DynEnum.class | Bin 0 -> 264 bytes .../lib/org/omg/CORBA/DynFixed.class | Bin 0 -> 263 bytes .../lib/org/omg/CORBA/DynSequence.class | Bin 0 -> 347 bytes .../lib/org/omg/CORBA/DynStruct.class | Bin 0 -> 433 bytes .../lib/org/omg/CORBA/DynUnion.class | Bin 0 -> 408 bytes .../lib/org/omg/CORBA/DynValue.class | Bin 0 -> 459 bytes .../org/omg/CORBA/DynamicImplementation.class | Bin 0 -> 3441 bytes .../lib/org/omg/CORBA/Environment.class | Bin 0 -> 383 bytes .../lib/org/omg/CORBA/ExceptionList.class | Bin 0 -> 486 bytes .../lib/org/omg/CORBA/FREE_MEM.class | Bin 0 -> 945 bytes .../lib/org/omg/CORBA/FieldNameHelper.class | Bin 0 -> 1734 bytes .../lib/org/omg/CORBA/FixedHolder.class | Bin 0 -> 1175 bytes .../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 .../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 .../lib/org/omg/CORBA/IMP_LIMIT.class | Bin 0 -> 948 bytes .../lib/org/omg/CORBA/INITIALIZE.class | Bin 0 -> 951 bytes .../lib/org/omg/CORBA/INTERNAL.class | Bin 0 -> 945 bytes .../lib/org/omg/CORBA/INTF_REPOS.class | Bin 0 -> 951 bytes .../lib/org/omg/CORBA/INVALID_ACTIVITY.class | Bin 0 -> 969 bytes .../org/omg/CORBA/INVALID_TRANSACTION.class | Bin 0 -> 978 bytes .../lib/org/omg/CORBA/INV_FLAG.class | Bin 0 -> 945 bytes .../lib/org/omg/CORBA/INV_IDENT.class | Bin 0 -> 948 bytes .../lib/org/omg/CORBA/INV_OBJREF.class | Bin 0 -> 951 bytes .../lib/org/omg/CORBA/INV_POLICY.class | Bin 0 -> 951 bytes .../lib/org/omg/CORBA/IRObject.class | Bin 0 -> 247 bytes .../org/omg/CORBA/IRObjectOperations.class | Bin 0 -> 265 bytes .../lib/org/omg/CORBA/IdentifierHelper.class | Bin 0 -> 1739 bytes .../lib/org/omg/CORBA/IntHolder.class | Bin 0 -> 1328 bytes .../lib/org/omg/CORBA/LocalObject.class | Bin 0 -> 4238 bytes .../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 .../classpath/lib/org/omg/CORBA/MARSHAL.class | Bin 0 -> 950 bytes .../lib/org/omg/CORBA/NO_IMPLEMENT.class | Bin 0 -> 957 bytes .../lib/org/omg/CORBA/NO_MEMORY.class | Bin 0 -> 948 bytes .../lib/org/omg/CORBA/NO_PERMISSION.class | Bin 0 -> 960 bytes .../lib/org/omg/CORBA/NO_RESOURCES.class | Bin 0 -> 963 bytes .../lib/org/omg/CORBA/NO_RESPONSE.class | Bin 0 -> 954 bytes .../classpath/lib/org/omg/CORBA/NVList.class | Bin 0 -> 595 bytes .../lib/org/omg/CORBA/NameValuePair.class | Bin 0 -> 684 bytes .../org/omg/CORBA/NameValuePairHelper.class | Bin 0 -> 3134 bytes .../lib/org/omg/CORBA/NamedValue.class | Bin 0 -> 383 bytes .../lib/org/omg/CORBA/OBJECT_NOT_EXIST.class | Bin 0 -> 969 bytes .../lib/org/omg/CORBA/OBJ_ADAPTER.class | Bin 0 -> 954 bytes .../lib/org/omg/CORBA/OMGVMCID.class | Bin 0 -> 160 bytes libjava/classpath/lib/org/omg/CORBA/ORB.class | Bin 0 -> 10975 bytes .../ORBPackage/InconsistentTypeCode.class | Bin 0 -> 622 bytes .../omg/CORBA/ORBPackage/InvalidName.class | Bin 0 -> 595 bytes .../classpath/lib/org/omg/CORBA/Object.class | Bin 0 -> 1024 bytes .../lib/org/omg/CORBA/ObjectHelper.class | Bin 0 -> 2070 bytes .../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 .../org/omg/CORBA/ParameterModeHelper.class | Bin 0 -> 2148 bytes .../org/omg/CORBA/ParameterModeHolder.class | Bin 0 -> 1227 bytes .../classpath/lib/org/omg/CORBA/Policy.class | Bin 0 -> 241 bytes .../lib/org/omg/CORBA/PolicyError.class | Bin 0 -> 753 bytes .../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 .../lib/org/omg/CORBA/PolicyHelper.class | Bin 0 -> 2615 bytes .../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 .../lib/org/omg/CORBA/Principal.class | Bin 0 -> 521 bytes .../lib/org/omg/CORBA/PrincipalHolder.class | Bin 0 -> 1455 bytes .../classpath/lib/org/omg/CORBA/REBIND.class | Bin 0 -> 939 bytes .../org/omg/CORBA/RepositoryIdHelper.class | Bin 0 -> 1749 bytes .../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 .../org/omg/CORBA/ServiceDetailHelper.class | Bin 0 -> 3418 bytes .../org/omg/CORBA/ServiceInformation.class | Bin 0 -> 640 bytes .../omg/CORBA/ServiceInformationHelper.class | Bin 0 -> 3602 bytes .../omg/CORBA/ServiceInformationHolder.class | Bin 0 -> 1267 bytes .../lib/org/omg/CORBA/SetOverrideType.class | Bin 0 -> 1318 bytes .../org/omg/CORBA/SetOverrideTypeHelper.class | Bin 0 -> 2169 bytes .../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 .../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 .../lib/org/omg/CORBA/StructMember.class | Bin 0 -> 802 bytes .../org/omg/CORBA/StructMemberHelper.class | Bin 0 -> 4010 bytes .../lib/org/omg/CORBA/SystemException.class | Bin 0 -> 1174 bytes .../classpath/lib/org/omg/CORBA/TCKind.class | Bin 0 -> 3902 bytes .../classpath/lib/org/omg/CORBA/TIMEOUT.class | Bin 0 -> 942 bytes .../lib/org/omg/CORBA/TRANSACTION_MODE.class | Bin 0 -> 969 bytes .../org/omg/CORBA/TRANSACTION_REQUIRED.class | Bin 0 -> 981 bytes .../omg/CORBA/TRANSACTION_ROLLEDBACK.class | Bin 0 -> 987 bytes .../omg/CORBA/TRANSACTION_UNAVAILABLE.class | Bin 0 -> 990 bytes .../lib/org/omg/CORBA/TRANSIENT.class | Bin 0 -> 948 bytes .../lib/org/omg/CORBA/TypeCode.class | Bin 0 -> 1292 bytes .../lib/org/omg/CORBA/TypeCodeHolder.class | Bin 0 -> 1376 bytes .../omg/CORBA/TypeCodePackage/BadKind.class | Bin 0 -> 593 bytes .../omg/CORBA/TypeCodePackage/Bounds.class | Bin 0 -> 590 bytes .../org/omg/CORBA/ULongLongSeqHelper.class | Bin 0 -> 2094 bytes .../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 .../classpath/lib/org/omg/CORBA/UNKNOWN.class | Bin 0 -> 942 bytes .../org/omg/CORBA/UNSUPPORTED_POLICY.class | Bin 0 -> 180 bytes .../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 .../lib/org/omg/CORBA/UnionMember.class | Bin 0 -> 896 bytes .../lib/org/omg/CORBA/UnionMemberHelper.class | Bin 0 -> 4221 bytes .../org/omg/CORBA/UnknownUserException.class | Bin 0 -> 633 bytes .../CORBA/UnknownUserExceptionHelper.class | Bin 0 -> 3008 bytes .../CORBA/UnknownUserExceptionHolder.class | Bin 0 -> 1289 bytes .../lib/org/omg/CORBA/UserException.class | Bin 0 -> 571 bytes .../lib/org/omg/CORBA/VM_ABSTRACT.class | Bin 0 -> 166 bytes .../lib/org/omg/CORBA/VM_CUSTOM.class | Bin 0 -> 162 bytes .../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 .../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 .../org/omg/CORBA/WStringValueHelper.class | Bin 0 -> 2950 bytes .../lib/org/omg/CORBA/WrongTransaction.class | Bin 0 -> 456 bytes .../omg/CORBA/WrongTransactionHelper.class | Bin 0 -> 2642 bytes .../omg/CORBA/WrongTransactionHolder.class | Bin 0 -> 1257 bytes .../lib/org/omg/CORBA/_IDLTypeStub.class | Bin 0 -> 2887 bytes .../lib/org/omg/CORBA/_PolicyStub.class | Bin 0 -> 2534 bytes .../CORBA/portable/ApplicationException.class | Bin 0 -> 865 bytes .../omg/CORBA/portable/BoxedValueHelper.class | Bin 0 -> 347 bytes .../org/omg/CORBA/portable/CustomValue.class | Bin 0 -> 201 bytes .../lib/org/omg/CORBA/portable/Delegate.class | Bin 0 -> 4453 bytes .../org/omg/CORBA/portable/IDLEntity.class | Bin 0 -> 150 bytes .../CORBA/portable/IndirectionException.class | Bin 0 -> 689 bytes .../org/omg/CORBA/portable/InputStream.class | Bin 0 -> 1973 bytes .../omg/CORBA/portable/InvokeHandler.class | Bin 0 -> 342 bytes .../org/omg/CORBA/portable/ObjectImpl.class | Bin 0 -> 6331 bytes .../org/omg/CORBA/portable/OutputStream.class | Bin 0 -> 2185 bytes .../CORBA/portable/RemarshalException.class | Bin 0 -> 420 bytes .../omg/CORBA/portable/ResponseHandler.class | Bin 0 -> 229 bytes .../omg/CORBA/portable/ServantObject.class | Bin 0 -> 349 bytes .../org/omg/CORBA/portable/Streamable.class | Bin 0 -> 287 bytes .../omg/CORBA/portable/StreamableValue.class | Bin 0 -> 283 bytes .../omg/CORBA/portable/UnknownException.class | Bin 0 -> 862 bytes .../org/omg/CORBA/portable/ValueBase.class | Bin 0 -> 213 bytes .../org/omg/CORBA/portable/ValueFactory.class | Bin 0 -> 216 bytes .../classpath/lib/org/omg/CORBA_2_3/ORB.class | Bin 0 -> 1214 bytes .../org/omg/CORBA_2_3/portable/Delegate.class | Bin 0 -> 485 bytes .../omg/CORBA_2_3/portable/InputStream.class | Bin 0 -> 2118 bytes .../omg/CORBA_2_3/portable/ObjectImpl.class | Bin 0 -> 1190 bytes .../omg/CORBA_2_3/portable/OutputStream.class | Bin 0 -> 1870 bytes .../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 .../org/omg/CosNaming/BindingIterator.class | Bin 0 -> 419 bytes .../omg/CosNaming/BindingIteratorHelper.class | Bin 0 -> 3291 bytes .../omg/CosNaming/BindingIteratorHolder.class | Bin 0 -> 1271 bytes .../CosNaming/BindingIteratorOperations.class | Bin 0 -> 292 bytes .../omg/CosNaming/BindingIteratorPOA.class | Bin 0 -> 3104 bytes .../org/omg/CosNaming/BindingListHelper.class | Bin 0 -> 2886 bytes .../org/omg/CosNaming/BindingListHolder.class | Bin 0 -> 1245 bytes .../lib/org/omg/CosNaming/BindingType.class | Bin 0 -> 1151 bytes .../org/omg/CosNaming/BindingTypeHelper.class | Bin 0 -> 2576 bytes .../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 .../omg/CosNaming/NameComponentHelper.class | Bin 0 -> 2932 bytes .../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 .../org/omg/CosNaming/NamingContextExt.class | Bin 0 -> 262 bytes .../CosNaming/NamingContextExtHelper.class | Bin 0 -> 3314 bytes .../CosNaming/NamingContextExtHolder.class | Bin 0 -> 1276 bytes .../NamingContextExtOperations.class | Bin 0 -> 783 bytes .../omg/CosNaming/NamingContextExtPOA.class | Bin 0 -> 9433 bytes .../AddressHelper.class | Bin 0 -> 1957 bytes .../InvalidAddress.class | Bin 0 -> 635 bytes .../InvalidAddressHelper.class | Bin 0 -> 2467 bytes .../InvalidAddressHolder.class | Bin 0 -> 1431 bytes .../StringNameHelper.class | Bin 0 -> 1952 bytes .../URLStringHelper.class | Bin 0 -> 1947 bytes .../omg/CosNaming/NamingContextHelper.class | Bin 0 -> 3408 bytes .../omg/CosNaming/NamingContextHolder.class | Bin 0 -> 1255 bytes .../CosNaming/NamingContextOperations.class | Bin 0 -> 1183 bytes .../org/omg/CosNaming/NamingContextPOA.class | Bin 0 -> 7525 bytes .../NamingContextPackage/AlreadyBound.class | Bin 0 -> 595 bytes .../AlreadyBoundHelper.class | Bin 0 -> 2720 bytes .../AlreadyBoundHolder.class | Bin 0 -> 1394 bytes .../NamingContextPackage/CannotProceed.class | Bin 0 -> 1056 bytes .../CannotProceedHelper.class | Bin 0 -> 3876 bytes .../CannotProceedHolder.class | Bin 0 -> 1399 bytes .../NamingContextPackage/InvalidName.class | Bin 0 -> 592 bytes .../InvalidNameHelper.class | Bin 0 -> 2711 bytes .../InvalidNameHolder.class | Bin 0 -> 1386 bytes .../NamingContextPackage/NotEmpty.class | Bin 0 -> 583 bytes .../NamingContextPackage/NotEmptyHelper.class | Bin 0 -> 2672 bytes .../NamingContextPackage/NotEmptyHolder.class | Bin 0 -> 1359 bytes .../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 .../CosNaming/_BindingIteratorImplBase.class | Bin 0 -> 3208 bytes .../omg/CosNaming/_BindingIteratorStub.class | Bin 0 -> 3449 bytes .../CosNaming/_NamingContextExtImplBase.class | Bin 0 -> 5393 bytes .../omg/CosNaming/_NamingContextExtStub.class | Bin 0 -> 4329 bytes .../CosNaming/_NamingContextImplBase.class | Bin 0 -> 8183 bytes .../omg/CosNaming/_NamingContextStub.class | Bin 0 -> 8173 bytes .../lib/org/omg/Dynamic/Parameter.class | Bin 0 -> 708 bytes .../lib/org/omg/DynamicAny/AnySeqHelper.class | Bin 0 -> 1820 bytes .../lib/org/omg/DynamicAny/DynAny.class | Bin 0 -> 251 bytes .../org/omg/DynamicAny/DynAnyFactory.class | Bin 0 -> 272 bytes .../omg/DynamicAny/DynAnyFactoryHelper.class | Bin 0 -> 2755 bytes .../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 .../org/omg/DynamicAny/DynAnyOperations.class | Bin 0 -> 2284 bytes .../DynAnyPackage/InvalidValue.class | Bin 0 -> 611 bytes .../DynAnyPackage/InvalidValueHelper.class | Bin 0 -> 2758 bytes .../DynAnyPackage/TypeMismatch.class | Bin 0 -> 611 bytes .../DynAnyPackage/TypeMismatchHelper.class | Bin 0 -> 2758 bytes .../org/omg/DynamicAny/DynAnySeqHelper.class | Bin 0 -> 2483 bytes .../lib/org/omg/DynamicAny/DynArray.class | Bin 0 -> 290 bytes .../org/omg/DynamicAny/DynArrayHelper.class | Bin 0 -> 2493 bytes .../omg/DynamicAny/DynArrayOperations.class | Bin 0 -> 550 bytes .../lib/org/omg/DynamicAny/DynEnum.class | Bin 0 -> 287 bytes .../org/omg/DynamicAny/DynEnumHelper.class | Bin 0 -> 2480 bytes .../omg/DynamicAny/DynEnumOperations.class | Bin 0 -> 415 bytes .../lib/org/omg/DynamicAny/DynFixed.class | Bin 0 -> 290 bytes .../org/omg/DynamicAny/DynFixedHelper.class | Bin 0 -> 2493 bytes .../omg/DynamicAny/DynFixedOperations.class | Bin 0 -> 393 bytes .../lib/org/omg/DynamicAny/DynSequence.class | Bin 0 -> 299 bytes .../omg/DynamicAny/DynSequenceHelper.class | Bin 0 -> 2532 bytes .../DynamicAny/DynSequenceOperations.class | Bin 0 -> 621 bytes .../lib/org/omg/DynamicAny/DynStruct.class | Bin 0 -> 293 bytes .../org/omg/DynamicAny/DynStructHelper.class | Bin 0 -> 2506 bytes .../omg/DynamicAny/DynStructOperations.class | Bin 0 -> 728 bytes .../lib/org/omg/DynamicAny/DynUnion.class | Bin 0 -> 290 bytes .../org/omg/DynamicAny/DynUnionHelper.class | Bin 0 -> 2493 bytes .../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 .../DynamicAny/DynValueBoxOperations.class | Bin 0 -> 631 bytes .../org/omg/DynamicAny/DynValueCommon.class | Bin 0 -> 383 bytes .../DynamicAny/DynValueCommonOperations.class | Bin 0 -> 266 bytes .../org/omg/DynamicAny/DynValueHelper.class | Bin 0 -> 2493 bytes .../omg/DynamicAny/DynValueOperations.class | Bin 0 -> 797 bytes .../org/omg/DynamicAny/FieldNameHelper.class | Bin 0 -> 1749 bytes .../org/omg/DynamicAny/NameDynAnyPair.class | Bin 0 -> 712 bytes .../omg/DynamicAny/NameDynAnyPairHelper.class | Bin 0 -> 3058 bytes .../DynamicAny/NameDynAnyPairSeqHelper.class | Bin 0 -> 2595 bytes .../org/omg/DynamicAny/NameValuePair.class | Bin 0 -> 693 bytes .../omg/DynamicAny/NameValuePairHelper.class | Bin 0 -> 3228 bytes .../DynamicAny/NameValuePairSeqHelper.class | Bin 0 -> 2888 bytes .../omg/DynamicAny/_DynAnyFactoryStub.class | Bin 0 -> 1629 bytes .../lib/org/omg/DynamicAny/_DynAnyStub.class | Bin 0 -> 6420 bytes .../org/omg/DynamicAny/_DynArrayStub.class | Bin 0 -> 6920 bytes .../lib/org/omg/DynamicAny/_DynEnumStub.class | Bin 0 -> 6718 bytes .../org/omg/DynamicAny/_DynFixedStub.class | Bin 0 -> 6558 bytes .../org/omg/DynamicAny/_DynSequenceStub.class | Bin 0 -> 7118 bytes .../org/omg/DynamicAny/_DynStructStub.class | Bin 0 -> 7220 bytes .../org/omg/DynamicAny/_DynUnionStub.class | Bin 0 -> 7225 bytes .../org/omg/DynamicAny/_DynValueStub.class | Bin 0 -> 7486 bytes .../classpath/lib/org/omg/IOP/CodeSets.class | Bin 0 -> 158 bytes libjava/classpath/lib/org/omg/IOP/Codec.class | Bin 0 -> 206 bytes .../lib/org/omg/IOP/CodecFactory.class | Bin 0 -> 227 bytes .../lib/org/omg/IOP/CodecFactoryHelper.class | Bin 0 -> 2591 bytes .../org/omg/IOP/CodecFactoryOperations.class | Bin 0 -> 282 bytes .../CodecFactoryPackage/UnknownEncoding.class | Bin 0 -> 618 bytes .../UnknownEncodingHelper.class | Bin 0 -> 2785 bytes .../lib/org/omg/IOP/CodecOperations.class | Bin 0 -> 501 bytes .../omg/IOP/CodecPackage/FormatMismatch.class | Bin 0 -> 601 bytes .../CodecPackage/FormatMismatchHelper.class | Bin 0 -> 2710 bytes .../CodecPackage/InvalidTypeForEncoding.class | Bin 0 -> 625 bytes .../InvalidTypeForEncodingHelper.class | Bin 0 -> 2810 bytes .../omg/IOP/CodecPackage/TypeMismatch.class | Bin 0 -> 595 bytes .../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 .../classpath/lib/org/omg/IOP/Encoding.class | Bin 0 -> 687 bytes .../org/omg/IOP/ExceptionDetailMessage.class | Bin 0 -> 186 bytes libjava/classpath/lib/org/omg/IOP/IOR.class | Bin 0 -> 740 bytes .../classpath/lib/org/omg/IOP/IORHelper.class | Bin 0 -> 3250 bytes .../classpath/lib/org/omg/IOP/IORHolder.class | Bin 0 -> 1139 bytes .../IOP/MultipleComponentProfileHelper.class | Bin 0 -> 2658 bytes .../IOP/MultipleComponentProfileHolder.class | Bin 0 -> 1275 bytes .../lib/org/omg/IOP/ProfileIdHelper.class | Bin 0 -> 1719 bytes .../omg/IOP/RMICustomMaxStreamFormat.class | Bin 0 -> 190 bytes .../lib/org/omg/IOP/ServiceContext.class | Bin 0 -> 644 bytes .../org/omg/IOP/ServiceContextHelper.class | Bin 0 -> 3345 bytes .../org/omg/IOP/ServiceContextHolder.class | Bin 0 -> 1227 bytes .../omg/IOP/ServiceContextListHelper.class | Bin 0 -> 2700 bytes .../omg/IOP/ServiceContextListHolder.class | Bin 0 -> 1247 bytes .../lib/org/omg/IOP/ServiceIdHelper.class | Bin 0 -> 1719 bytes .../omg/IOP/TAG_ALTERNATE_IIOP_ADDRESS.class | Bin 0 -> 194 bytes .../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 .../org/omg/IOP/TAG_MULTIPLE_COMPONENTS.class | Bin 0 -> 188 bytes .../lib/org/omg/IOP/TAG_ORB_TYPE.class | Bin 0 -> 166 bytes .../lib/org/omg/IOP/TAG_POLICIES.class | Bin 0 -> 166 bytes .../TAG_RMI_CUSTOM_MAX_STREAM_FORMAT.class | Bin 0 -> 206 bytes .../lib/org/omg/IOP/TaggedComponent.class | Bin 0 -> 637 bytes .../org/omg/IOP/TaggedComponentHelper.class | Bin 0 -> 3538 bytes .../org/omg/IOP/TaggedComponentHolder.class | Bin 0 -> 1235 bytes .../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 .../omg/Messaging/SYNC_WITH_TRANSPORT.class | Bin 0 -> 186 bytes .../org/omg/Messaging/SyncScopeHelper.class | Bin 0 -> 1782 bytes .../org/omg/PortableInterceptor/ACTIVE.class | Bin 0 -> 170 bytes .../AdapterManagerIdHelper.class | Bin 0 -> 1808 bytes .../AdapterNameHelper.class | Bin 0 -> 2073 bytes .../AdapterStateHelper.class | Bin 0 -> 1793 bytes .../ClientRequestInfo.class | Bin 0 -> 321 bytes .../ClientRequestInfoOperations.class | Bin 0 -> 831 bytes .../ClientRequestInterceptor.class | Bin 0 -> 342 bytes .../ClientRequestInterceptorOperations.class | Bin 0 -> 497 bytes .../org/omg/PortableInterceptor/Current.class | Bin 0 -> 245 bytes .../PortableInterceptor/CurrentHelper.class | Bin 0 -> 2240 bytes .../CurrentOperations.class | Bin 0 -> 386 bytes .../omg/PortableInterceptor/DISCARDING.class | Bin 0 -> 178 bytes .../PortableInterceptor/ForwardRequest.class | Bin 0 -> 849 bytes .../ForwardRequestHelper.class | Bin 0 -> 3204 bytes .../org/omg/PortableInterceptor/HOLDING.class | Bin 0 -> 172 bytes .../omg/PortableInterceptor/INACTIVE.class | Bin 0 -> 174 bytes .../org/omg/PortableInterceptor/IORInfo.class | Bin 0 -> 272 bytes .../IORInfoOperations.class | Bin 0 -> 623 bytes .../PortableInterceptor/IORInterceptor.class | Bin 0 -> 397 bytes .../IORInterceptorOperations.class | Bin 0 -> 288 bytes .../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 .../omg/PortableInterceptor/Interceptor.class | Bin 0 -> 256 bytes .../InterceptorOperations.class | Bin 0 -> 213 bytes .../omg/PortableInterceptor/InvalidSlot.class | Bin 0 -> 598 bytes .../InvalidSlotHelper.class | Bin 0 -> 2708 bytes .../LOCATION_FORWARD.class | Bin 0 -> 190 bytes .../PortableInterceptor/NON_EXISTENT.class | Bin 0 -> 182 bytes .../omg/PortableInterceptor/ORBIdHelper.class | Bin 0 -> 1753 bytes .../omg/PortableInterceptor/ORBInitInfo.class | Bin 0 -> 256 bytes .../ORBInitInfoOperations.class | Bin 0 -> 1047 bytes .../ORBInitInfoPackage/DuplicateName.class | Bin 0 -> 821 bytes .../DuplicateNameHelper.class | Bin 0 -> 3155 bytes .../ORBInitInfoPackage/InvalidName.class | Bin 0 -> 636 bytes .../InvalidNameHelper.class | Bin 0 -> 2872 bytes .../ORBInitInfoPackage/ObjectIdHelper.class | Bin 0 -> 1818 bytes .../PortableInterceptor/ORBInitializer.class | Bin 0 -> 265 bytes .../ORBInitializerOperations.class | Bin 0 -> 243 bytes .../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 .../PortableInterceptor/PolicyFactory.class | Bin 0 -> 262 bytes .../PolicyFactoryOperations.class | Bin 0 -> 280 bytes .../omg/PortableInterceptor/RequestInfo.class | Bin 0 -> 256 bytes .../RequestInfoOperations.class | Bin 0 -> 845 bytes .../omg/PortableInterceptor/SUCCESSFUL.class | Bin 0 -> 178 bytes .../SYSTEM_EXCEPTION.class | Bin 0 -> 190 bytes .../PortableInterceptor/ServerIdHelper.class | Bin 0 -> 1768 bytes .../ServerRequestInfo.class | Bin 0 -> 321 bytes .../ServerRequestInfoOperations.class | Bin 0 -> 793 bytes .../ServerRequestInterceptor.class | Bin 0 -> 342 bytes .../ServerRequestInterceptorOperations.class | Bin 0 -> 524 bytes .../PortableInterceptor/TRANSPORT_RETRY.class | Bin 0 -> 188 bytes .../PortableInterceptor/USER_EXCEPTION.class | Bin 0 -> 186 bytes .../_IORInterceptor_3_0Stub.class | Bin 0 -> 4213 bytes .../omg/PortableServer/AdapterActivator.class | Bin 0 -> 261 bytes .../AdapterActivatorOperations.class | Bin 0 -> 234 bytes .../lib/org/omg/PortableServer/Current.class | Bin 0 -> 235 bytes .../omg/PortableServer/CurrentHelper.class | Bin 0 -> 2186 bytes .../PortableServer/CurrentOperations.class | Bin 0 -> 345 bytes .../CurrentPackage/NoContext.class | Bin 0 -> 612 bytes .../CurrentPackage/NoContextHelper.class | Bin 0 -> 2767 bytes .../DynamicImplementation.class | Bin 0 -> 400 bytes .../omg/PortableServer/ForwardRequest.class | Bin 0 -> 859 bytes .../PortableServer/ForwardRequestHelper.class | Bin 0 -> 2895 bytes .../ID_ASSIGNMENT_POLICY_ID.class | Bin 0 -> 199 bytes .../ID_UNIQUENESS_POLICY_ID.class | Bin 0 -> 199 bytes .../IMPLICIT_ACTIVATION_POLICY_ID.class | Bin 0 -> 211 bytes .../PortableServer/IdAssignmentPolicy.class | Bin 0 -> 267 bytes .../IdAssignmentPolicyOperations.class | Bin 0 -> 267 bytes .../IdAssignmentPolicyValue.class | Bin 0 -> 1654 bytes .../PortableServer/IdUniquenessPolicy.class | Bin 0 -> 267 bytes .../IdUniquenessPolicyOperations.class | Bin 0 -> 267 bytes .../IdUniquenessPolicyValue.class | Bin 0 -> 1662 bytes .../ImplicitActivationPolicy.class | Bin 0 -> 285 bytes .../ImplicitActivationPolicyOperations.class | Bin 0 -> 285 bytes .../ImplicitActivationPolicyValue.class | Bin 0 -> 1738 bytes .../PortableServer/LIFESPAN_POLICY_ID.class | Bin 0 -> 189 bytes .../omg/PortableServer/LifespanPolicy.class | Bin 0 -> 255 bytes .../LifespanPolicyOperations.class | Bin 0 -> 255 bytes .../PortableServer/LifespanPolicyValue.class | Bin 0 -> 1640 bytes .../lib/org/omg/PortableServer/POA.class | Bin 0 -> 222 bytes .../org/omg/PortableServer/POAHelper.class | Bin 0 -> 2396 bytes .../org/omg/PortableServer/POAManager.class | Bin 0 -> 243 bytes .../PortableServer/POAManagerOperations.class | Bin 0 -> 444 bytes .../POAManagerPackage/AdapterInactive.class | Bin 0 -> 636 bytes .../AdapterInactiveHelper.class | Bin 0 -> 2866 bytes .../POAManagerPackage/State.class | Bin 0 -> 1802 bytes .../omg/PortableServer/POAOperations.class | Bin 0 -> 3397 bytes .../POAPackage/AdapterAlreadyExists.class | Bin 0 -> 637 bytes .../AdapterAlreadyExistsHelper.class | Bin 0 -> 2943 bytes .../POAPackage/AdapterNonExistent.class | Bin 0 -> 631 bytes .../POAPackage/AdapterNonExistentHelper.class | Bin 0 -> 2915 bytes .../POAPackage/InvalidPolicy.class | Bin 0 -> 1185 bytes .../POAPackage/InvalidPolicyHelper.class | Bin 0 -> 3122 bytes .../PortableServer/POAPackage/NoServant.class | Bin 0 -> 604 bytes .../POAPackage/NoServantHelper.class | Bin 0 -> 2807 bytes .../POAPackage/ObjectAlreadyActive.class | Bin 0 -> 634 bytes .../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 .../ServantAlreadyActiveHelper.class | Bin 0 -> 2943 bytes .../POAPackage/ServantNotActive.class | Bin 0 -> 625 bytes .../POAPackage/ServantNotActiveHelper.class | Bin 0 -> 2891 bytes .../POAPackage/WrongAdapter.class | Bin 0 -> 613 bytes .../POAPackage/WrongAdapterHelper.class | Bin 0 -> 2843 bytes .../POAPackage/WrongPolicy.class | Bin 0 -> 610 bytes .../POAPackage/WrongPolicyHelper.class | Bin 0 -> 2831 bytes .../REQUEST_PROCESSING_POLICY_ID.class | Bin 0 -> 209 bytes .../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 .../omg/PortableServer/ServantActivator.class | Bin 0 -> 306 bytes .../ServantActivatorHelper.class | Bin 0 -> 2476 bytes .../ServantActivatorOperations.class | Bin 0 -> 456 bytes .../ServantActivatorPOA$delegator.class | Bin 0 -> 1364 bytes .../PortableServer/ServantActivatorPOA.class | Bin 0 -> 1737 bytes .../omg/PortableServer/ServantLocator.class | Bin 0 -> 300 bytes .../PortableServer/ServantLocatorHelper.class | Bin 0 -> 2482 bytes .../ServantLocatorOperations.class | Bin 0 -> 562 bytes .../ServantLocatorPOA$delegator.class | Bin 0 -> 1785 bytes .../PortableServer/ServantLocatorPOA.class | Bin 0 -> 1719 bytes .../ServantLocatorPackage/CookieHolder.class | Bin 0 -> 1045 bytes .../omg/PortableServer/ServantManager.class | Bin 0 -> 255 bytes .../ServantManagerOperations.class | Bin 0 -> 152 bytes .../ServantRetentionPolicy.class | Bin 0 -> 279 bytes .../ServantRetentionPolicyOperations.class | Bin 0 -> 279 bytes .../ServantRetentionPolicyValue.class | Bin 0 -> 1674 bytes .../omg/PortableServer/THREAD_POLICY_ID.class | Bin 0 -> 185 bytes .../org/omg/PortableServer/ThreadPolicy.class | Bin 0 -> 249 bytes .../ThreadPolicyOperations.class | Bin 0 -> 249 bytes .../PortableServer/ThreadPolicyValue.class | Bin 0 -> 1658 bytes .../_ServantActivatorStub.class | Bin 0 -> 1441 bytes .../PortableServer/_ServantLocatorStub.class | Bin 0 -> 1730 bytes .../PortableServer/portable/Delegate.class | Bin 0 -> 600 bytes .../lib/org/omg/SendingContext/RunTime.class | Bin 0 -> 262 bytes .../SendingContext/RunTimeOperations.class | Bin 0 -> 138 bytes .../org/omg/stub/java/rmi/_Remote_Stub.class | Bin 0 -> 549 bytes .../lib/org/relaxng/datatype/Datatype.class | Bin 0 -> 920 bytes .../relaxng/datatype/DatatypeBuilder.class | Bin 0 -> 375 bytes .../relaxng/datatype/DatatypeException.class | Bin 0 -> 740 bytes .../relaxng/datatype/DatatypeLibrary.class | Bin 0 -> 381 bytes .../datatype/DatatypeLibraryFactory.class | Bin 0 -> 239 bytes .../datatype/DatatypeStreamingValidator.class | Bin 0 -> 306 bytes .../relaxng/datatype/ValidationContext.class | Bin 0 -> 326 bytes ...DatatypeLibraryLoader$Service$Loader.class | Bin 0 -> 1749 bytes ...atatypeLibraryLoader$Service$Loader2.class | Bin 0 -> 1756 bytes ...ryLoader$Service$ProviderEnumeration.class | Bin 0 -> 1656 bytes ...atypeLibraryLoader$Service$Singleton.class | Bin 0 -> 1126 bytes .../DatatypeLibraryLoader$Service.class | Bin 0 -> 4546 bytes .../helpers/DatatypeLibraryLoader.class | Bin 0 -> 1250 bytes .../ParameterlessDatatypeBuilder.class | Bin 0 -> 1013 bytes .../helpers/StreamingValidatorImpl.class | Bin 0 -> 1449 bytes libjava/classpath/lib/org/w3c/dom/Attr.class | Bin 0 -> 432 bytes .../lib/org/w3c/dom/CDATASection.class | Bin 0 -> 141 bytes .../lib/org/w3c/dom/CharacterData.class | Bin 0 -> 558 bytes .../classpath/lib/org/w3c/dom/Comment.class | Bin 0 -> 140 bytes .../lib/org/w3c/dom/DOMConfiguration.class | Bin 0 -> 445 bytes .../classpath/lib/org/w3c/dom/DOMError.class | Bin 0 -> 470 bytes .../lib/org/w3c/dom/DOMErrorHandler.class | Bin 0 -> 173 bytes .../lib/org/w3c/dom/DOMException.class | Bin 0 -> 1156 bytes .../lib/org/w3c/dom/DOMImplementation.class | Bin 0 -> 561 bytes .../org/w3c/dom/DOMImplementationList.class | Bin 0 -> 213 bytes .../org/w3c/dom/DOMImplementationSource.class | Bin 0 -> 317 bytes .../lib/org/w3c/dom/DOMLocator.class | Bin 0 -> 306 bytes .../lib/org/w3c/dom/DOMStringList.class | Bin 0 -> 227 bytes .../classpath/lib/org/w3c/dom/Document.class | Bin 0 -> 2096 bytes .../lib/org/w3c/dom/DocumentFragment.class | Bin 0 -> 149 bytes .../lib/org/w3c/dom/DocumentType.class | Bin 0 -> 330 bytes .../classpath/lib/org/w3c/dom/Element.class | Bin 0 -> 1532 bytes .../classpath/lib/org/w3c/dom/Entity.class | Bin 0 -> 298 bytes .../lib/org/w3c/dom/EntityReference.class | Bin 0 -> 147 bytes .../classpath/lib/org/w3c/dom/NameList.class | Bin 0 -> 309 bytes .../lib/org/w3c/dom/NamedNodeMap.class | Bin 0 -> 566 bytes libjava/classpath/lib/org/w3c/dom/Node.class | Bin 0 -> 2560 bytes .../classpath/lib/org/w3c/dom/NodeList.class | Bin 0 -> 174 bytes .../classpath/lib/org/w3c/dom/Notation.class | Bin 0 -> 200 bytes .../org/w3c/dom/ProcessingInstruction.class | Bin 0 -> 315 bytes libjava/classpath/lib/org/w3c/dom/Text.class | Bin 0 -> 398 bytes .../classpath/lib/org/w3c/dom/TypeInfo.class | Bin 0 -> 437 bytes .../lib/org/w3c/dom/UserDataHandler.class | Bin 0 -> 419 bytes .../DOMImplementationRegistry$1.class | Bin 0 -> 1248 bytes .../DOMImplementationRegistry$2.class | Bin 0 -> 842 bytes .../DOMImplementationRegistry$3.class | Bin 0 -> 786 bytes .../DOMImplementationRegistry$4.class | Bin 0 -> 1067 bytes .../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 .../org/w3c/dom/css/CSSPrimitiveValue.class | Bin 0 -> 1487 bytes .../lib/org/w3c/dom/css/CSSRule.class | Bin 0 -> 663 bytes .../lib/org/w3c/dom/css/CSSRuleList.class | Bin 0 -> 191 bytes .../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 .../lib/org/w3c/dom/css/CSSValue.class | Bin 0 -> 457 bytes .../lib/org/w3c/dom/css/CSSValueList.class | Bin 0 -> 226 bytes .../lib/org/w3c/dom/css/Counter.class | Bin 0 -> 204 bytes .../w3c/dom/css/DOMImplementationCSS.class | Bin 0 -> 329 bytes .../lib/org/w3c/dom/css/DocumentCSS.class | Bin 0 -> 272 bytes .../w3c/dom/css/ElementCSSInlineStyle.class | Bin 0 -> 200 bytes .../lib/org/w3c/dom/css/RGBColor.class | Bin 0 -> 207 bytes .../classpath/lib/org/w3c/dom/css/Rect.class | Bin 0 -> 219 bytes .../lib/org/w3c/dom/css/ViewCSS.class | Bin 0 -> 257 bytes .../org/w3c/dom/events/DocumentEvent.class | Bin 0 -> 250 bytes .../lib/org/w3c/dom/events/Event.class | Bin 0 -> 578 bytes .../org/w3c/dom/events/EventException.class | Bin 0 -> 518 bytes .../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 .../org/w3c/dom/events/MutationEvent.class | Bin 0 -> 572 bytes .../lib/org/w3c/dom/events/UIEvent.class | Bin 0 -> 308 bytes .../org/w3c/dom/html2/HTMLAnchorElement.class | Bin 0 -> 737 bytes .../org/w3c/dom/html2/HTMLAppletElement.class | Bin 0 -> 658 bytes .../org/w3c/dom/html2/HTMLAreaElement.class | Bin 0 -> 557 bytes .../lib/org/w3c/dom/html2/HTMLBRElement.class | Bin 0 -> 247 bytes .../org/w3c/dom/html2/HTMLBaseElement.class | Bin 0 -> 289 bytes .../w3c/dom/html2/HTMLBaseFontElement.class | Bin 0 -> 344 bytes .../org/w3c/dom/html2/HTMLBodyElement.class | Bin 0 -> 451 bytes .../org/w3c/dom/html2/HTMLButtonElement.class | Bin 0 -> 527 bytes .../org/w3c/dom/html2/HTMLCollection.class | Bin 0 -> 253 bytes .../org/w3c/dom/html2/HTMLDListElement.class | Bin 0 -> 223 bytes .../w3c/dom/html2/HTMLDirectoryElement.class | Bin 0 -> 231 bytes .../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 .../w3c/dom/html2/HTMLFieldSetElement.class | Bin 0 -> 232 bytes .../org/w3c/dom/html2/HTMLFontElement.class | Bin 0 -> 323 bytes .../org/w3c/dom/html2/HTMLFormElement.class | Bin 0 -> 591 bytes .../org/w3c/dom/html2/HTMLFrameElement.class | Bin 0 -> 640 bytes .../w3c/dom/html2/HTMLFrameSetElement.class | Bin 0 -> 293 bytes .../lib/org/w3c/dom/html2/HTMLHRElement.class | Bin 0 -> 376 bytes .../org/w3c/dom/html2/HTMLHeadElement.class | Bin 0 -> 255 bytes .../w3c/dom/html2/HTMLHeadingElement.class | Bin 0 -> 257 bytes .../org/w3c/dom/html2/HTMLHtmlElement.class | Bin 0 -> 255 bytes .../org/w3c/dom/html2/HTMLIFrameElement.class | Bin 0 -> 701 bytes .../org/w3c/dom/html2/HTMLImageElement.class | Bin 0 -> 703 bytes .../org/w3c/dom/html2/HTMLInputElement.class | Bin 0 -> 1075 bytes .../w3c/dom/html2/HTMLIsIndexElement.class | Bin 0 -> 317 bytes .../lib/org/w3c/dom/html2/HTMLLIElement.class | Bin 0 -> 296 bytes .../org/w3c/dom/html2/HTMLLabelElement.class | Bin 0 -> 361 bytes .../org/w3c/dom/html2/HTMLLegendElement.class | Bin 0 -> 359 bytes .../org/w3c/dom/html2/HTMLLinkElement.class | Bin 0 -> 574 bytes .../org/w3c/dom/html2/HTMLMapElement.class | Bin 0 -> 305 bytes .../org/w3c/dom/html2/HTMLMenuElement.class | Bin 0 -> 221 bytes .../org/w3c/dom/html2/HTMLMetaElement.class | Bin 0 -> 377 bytes .../org/w3c/dom/html2/HTMLModElement.class | Bin 0 -> 291 bytes .../org/w3c/dom/html2/HTMLOListElement.class | Bin 0 -> 357 bytes .../org/w3c/dom/html2/HTMLObjectElement.class | Bin 0 -> 1035 bytes .../w3c/dom/html2/HTMLOptGroupElement.class | Bin 0 -> 316 bytes .../org/w3c/dom/html2/HTMLOptionElement.class | Bin 0 -> 553 bytes .../w3c/dom/html2/HTMLOptionsCollection.class | Bin 0 -> 347 bytes .../w3c/dom/html2/HTMLParagraphElement.class | Bin 0 -> 261 bytes .../org/w3c/dom/html2/HTMLParamElement.class | Bin 0 -> 371 bytes .../org/w3c/dom/html2/HTMLPreElement.class | Bin 0 -> 215 bytes .../org/w3c/dom/html2/HTMLQuoteElement.class | Bin 0 -> 251 bytes .../org/w3c/dom/html2/HTMLScriptElement.class | Bin 0 -> 496 bytes .../org/w3c/dom/html2/HTMLSelectElement.class | Bin 0 -> 921 bytes .../org/w3c/dom/html2/HTMLStyleElement.class | Bin 0 -> 346 bytes .../dom/html2/HTMLTableCaptionElement.class | Bin 0 -> 267 bytes .../w3c/dom/html2/HTMLTableCellElement.class | Bin 0 -> 816 bytes .../w3c/dom/html2/HTMLTableColElement.class | Bin 0 -> 456 bytes .../org/w3c/dom/html2/HTMLTableElement.class | Bin 0 -> 1336 bytes .../w3c/dom/html2/HTMLTableRowElement.class | Bin 0 -> 675 bytes .../dom/html2/HTMLTableSectionElement.class | Bin 0 -> 581 bytes .../w3c/dom/html2/HTMLTextAreaElement.class | Bin 0 -> 753 bytes .../org/w3c/dom/html2/HTMLTitleElement.class | Bin 0 -> 251 bytes .../org/w3c/dom/html2/HTMLUListElement.class | Bin 0 -> 306 bytes .../org/w3c/dom/ls/DOMImplementationLS.class | Bin 0 -> 533 bytes .../lib/org/w3c/dom/ls/LSException.class | Bin 0 -> 521 bytes .../lib/org/w3c/dom/ls/LSInput.class | Bin 0 -> 648 bytes .../lib/org/w3c/dom/ls/LSLoadEvent.class | Bin 0 -> 250 bytes .../lib/org/w3c/dom/ls/LSOutput.class | Bin 0 -> 451 bytes .../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 .../org/w3c/dom/ls/LSResourceResolver.class | Bin 0 -> 277 bytes .../lib/org/w3c/dom/ls/LSSerializer.class | Bin 0 -> 688 bytes .../org/w3c/dom/ls/LSSerializerFilter.class | Bin 0 -> 202 bytes .../org/w3c/dom/ranges/DocumentRange.class | Bin 0 -> 179 bytes .../lib/org/w3c/dom/ranges/Range.class | Bin 0 -> 1408 bytes .../org/w3c/dom/ranges/RangeException.class | Bin 0 -> 559 bytes .../w3c/dom/stylesheets/DocumentStyle.class | Bin 0 -> 201 bytes .../org/w3c/dom/stylesheets/LinkStyle.class | Bin 0 -> 183 bytes .../org/w3c/dom/stylesheets/MediaList.class | Bin 0 -> 400 bytes .../org/w3c/dom/stylesheets/StyleSheet.class | Bin 0 -> 436 bytes .../w3c/dom/stylesheets/StyleSheetList.class | Bin 0 -> 216 bytes .../w3c/dom/traversal/DocumentTraversal.class | Bin 0 -> 444 bytes .../org/w3c/dom/traversal/NodeFilter.class | Bin 0 -> 801 bytes .../org/w3c/dom/traversal/NodeIterator.class | Bin 0 -> 427 bytes .../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 .../org/w3c/dom/xpath/XPathEvaluator.class | Bin 0 -> 569 bytes .../org/w3c/dom/xpath/XPathException.class | Bin 0 -> 544 bytes .../org/w3c/dom/xpath/XPathExpression.class | Bin 0 -> 301 bytes .../org/w3c/dom/xpath/XPathNSResolver.class | Bin 0 -> 199 bytes .../org/w3c/dom/xpath/XPathNamespace.class | Bin 0 -> 267 bytes .../lib/org/w3c/dom/xpath/XPathResult.class | Bin 0 -> 1060 bytes .../lib/org/xml/sax/AttributeList.class | Bin 0 -> 300 bytes .../lib/org/xml/sax/Attributes.class | Bin 0 -> 484 bytes .../lib/org/xml/sax/ContentHandler.class | Bin 0 -> 799 bytes .../lib/org/xml/sax/DTDHandler.class | Bin 0 -> 366 bytes .../lib/org/xml/sax/DocumentHandler.class | Bin 0 -> 617 bytes .../lib/org/xml/sax/EntityResolver.class | Bin 0 -> 291 bytes .../lib/org/xml/sax/ErrorHandler.class | Bin 0 -> 282 bytes .../lib/org/xml/sax/HandlerBase.class | Bin 0 -> 2468 bytes .../lib/org/xml/sax/InputSource.class | Bin 0 -> 1772 bytes .../classpath/lib/org/xml/sax/Locator.class | Bin 0 -> 230 bytes .../classpath/lib/org/xml/sax/Parser.class | Bin 0 -> 587 bytes .../lib/org/xml/sax/SAXException.class | Bin 0 -> 1117 bytes .../xml/sax/SAXNotRecognizedException.class | Bin 0 -> 477 bytes .../xml/sax/SAXNotSupportedException.class | Bin 0 -> 474 bytes .../lib/org/xml/sax/SAXParseException.class | Bin 0 -> 1971 bytes .../classpath/lib/org/xml/sax/XMLFilter.class | Bin 0 -> 237 bytes .../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 .../lib/org/xml/sax/ext/Locator2.class | Bin 0 -> 209 bytes .../lib/org/xml/sax/ext/Locator2Impl.class | Bin 0 -> 1050 bytes .../xml/sax/helpers/AttributeListImpl.class | Bin 0 -> 2485 bytes .../org/xml/sax/helpers/AttributesImpl.class | Bin 0 -> 5438 bytes .../org/xml/sax/helpers/DefaultHandler.class | Bin 0 -> 2922 bytes .../lib/org/xml/sax/helpers/LocatorImpl.class | Bin 0 -> 1480 bytes .../helpers/NamespaceSupport$Context.class | Bin 0 -> 3777 bytes .../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 .../org/xml/sax/helpers/ParserAdapter.class | Bin 0 -> 11822 bytes .../org/xml/sax/helpers/ParserFactory.class | Bin 0 -> 1233 bytes .../org/xml/sax/helpers/XMLFilterImpl.class | Bin 0 -> 6984 bytes .../XMLReaderAdapter$AttributesAdapter.class | Bin 0 -> 1477 bytes .../xml/sax/helpers/XMLReaderAdapter.class | Bin 0 -> 4848 bytes .../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 .../sun/misc/ServiceConfigurationError.class | Bin 0 -> 462 bytes libjava/classpath/lib/sun/misc/Unsafe.class | Bin 0 -> 1550 bytes .../lib/sun/reflect/Reflection.class | Bin 0 -> 477 bytes .../AnnotationInvocationHandler.class | Bin 0 -> 7471 bytes .../reflect/annotation/AnnotationParser.class | Bin 0 -> 926 bytes .../reflect/annotation/AnnotationType.class | Bin 0 -> 671 bytes ...EnumConstantNotPresentExceptionProxy.class | Bin 0 -> 580 bytes .../reflect/annotation/ExceptionProxy.class | Bin 0 -> 313 bytes .../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 +- .../classpath/native/jni/classpath/.cvsignore | 8 + .../native/jni/classpath/Makefile.in | 11 +- .../native/jni/classpath/classpath_jawt.h | 1 + libjava/classpath/native/jni/classpath/jcl.c | 131 +- .../native/jni/gconf-peer/.cvsignore | 6 + .../native/jni/gconf-peer/GConfNativePeer.c | 117 +- .../native/jni/gconf-peer/Makefile.in | 11 +- .../jni/gtk-peer/GtkDragSourceContextPeer.c | 132 +- .../classpath/native/jni/gtk-peer/Makefile.am | 12 +- .../classpath/native/jni/gtk-peer/Makefile.in | 80 +- .../native/jni/gtk-peer/cairographics2d.h | 3 +- .../classpath/native/jni/gtk-peer/gdkfont.h | 5 +- .../gnu_java_awt_peer_gtk_CairoGraphics2D.c | 151 +- .../gnu_java_awt_peer_gtk_CairoSurface.c | 24 +- .../gnu_java_awt_peer_gtk_GdkFontPeer.c | 92 +- .../gnu_java_awt_peer_gtk_GdkPixbufDecoder.c | 21 +- .../gnu_java_awt_peer_gtk_GtkButtonPeer.c | 2 +- .../gnu_java_awt_peer_gtk_GtkComponentPeer.c | 18 +- .../gnu_java_awt_peer_gtk_GtkFramePeer.c | 44 + .../gnu_java_awt_peer_gtk_GtkLabelPeer.c | 2 +- .../gnu_java_awt_peer_gtk_GtkToolkit.c | 49 +- .../gnu_java_awt_peer_gtk_GtkVolatileImage.c | 22 +- .../gnu_java_awt_peer_gtk_GtkWindowPeer.c | 64 +- .../classpath/native/jni/gtk-peer/gtk_jawt.c | 35 + .../classpath/native/jni/java-io/.cvsignore | 8 + .../classpath/native/jni/java-io/Makefile.am | 3 +- .../classpath/native/jni/java-io/Makefile.in | 18 +- .../native/jni/java-io/java_io_VMFile.c | 213 +- .../classpath/native/jni/java-lang/.cvsignore | 8 + .../native/jni/java-lang/Makefile.am | 3 +- .../native/jni/java-lang/Makefile.in | 17 +- .../native/jni/java-lang/java_lang_VMDouble.c | 360 +- .../jni/java-lang/java_lang_VMProcess.c | 185 +- .../classpath/native/jni/java-net/.cvsignore | 8 + .../classpath/native/jni/java-net/Makefile.am | 5 +- .../classpath/native/jni/java-net/Makefile.in | 24 +- .../gnu_java_net_VMPlainDatagramSocketImpl.c | 399 - .../java-net/gnu_java_net_VMPlainSocketImpl.c | 1053 +- .../gnu_java_net_local_LocalSocketImpl.c | 2 - .../jni/java-net/java_net_VMInetAddress.c | 209 +- .../java-net/java_net_VMNetworkInterface.c | 206 +- .../classpath/native/jni/java-net/javanet.c | 551 +- .../classpath/native/jni/java-net/javanet.h | 9 +- libjava/classpath/native/jni/java-net/local.c | 2 - .../classpath/native/jni/java-nio/.cvsignore | 8 + .../classpath/native/jni/java-nio/Makefile.am | 10 +- .../classpath/native/jni/java-nio/Makefile.in | 30 +- .../java-nio/gnu_java_nio_EpollSelectorImpl.c | 414 + .../gnu_java_nio_KqueueSelectorImpl.c | 387 + .../jni/java-nio/gnu_java_nio_VMChannel.c | 1511 +- .../native/jni/java-nio/gnu_java_nio_VMPipe.c | 41 +- .../jni/java-nio/gnu_java_nio_VMSelector.c | 12 +- .../gnu_java_nio_channels_FileChannelImpl.c | 902 - .../java-nio/java_nio_MappedByteBufferImpl.c | 5 +- .../classpath/native/jni/java-nio/javanio.c | 122 + .../classpath/native/jni/java-nio/javanio.h | 332 + .../classpath/native/jni/java-util/.cvsignore | 8 + .../native/jni/java-util/Makefile.in | 11 +- .../classpath/native/jni/midi-alsa/.cvsignore | 9 + .../native/jni/midi-alsa/Makefile.in | 11 +- .../classpath/native/jni/midi-dssi/.cvsignore | 9 + .../native/jni/midi-dssi/Makefile.am | 5 +- .../native/jni/midi-dssi/Makefile.in | 16 +- .../native/jni/midi-dssi/dssi_data.h | 2 - .../native/jni/native-lib/.cvsignore | 8 + .../native/jni/native-lib/Makefile.am | 12 + .../native/jni/native-lib/Makefile.in | 570 + .../classpath/native/jni/native-lib/cpio.c | 485 + .../classpath/native/jni/native-lib/cpio.h | 85 + .../native/jni/native-lib/cpnative.h | 49 + .../classpath/native/jni/native-lib/cpnet.c | 768 + .../classpath/native/jni/native-lib/cpnet.h | 209 + .../classpath/native/jni/native-lib/cpproc.c | 136 + .../classpath/native/jni/native-lib/cpproc.h | 52 + .../classpath/native/jni/qt-peer/Makefile.am | 3 +- .../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 +- .../classpath/native/plugin/gcjwebplugin.cc | 9 +- .../classpath/native/target/Linux/Makefile.am | 10 - .../classpath/native/target/Linux/Makefile.in | 454 - .../native/target/Linux/target_native.h | 79 - .../native/target/Linux/target_native_file.h | 79 - .../native/target/Linux/target_native_io.h | 78 - .../target/Linux/target_native_math_float.h | 80 - .../target/Linux/target_native_math_int.h | 80 - .../native/target/Linux/target_native_misc.h | 79 - .../target/Linux/target_native_network.h | 79 - libjava/classpath/native/target/Makefile.am | 5 - libjava/classpath/native/target/Makefile.in | 604 - .../native/target/generic/Makefile.am | 10 - .../native/target/generic/Makefile.in | 454 - .../native/target/generic/target_generic.h | 171 - .../target/generic/target_generic_file.h | 844 - .../native/target/generic/target_generic_io.h | 82 - .../generic/target_generic_math_float.h | 130 - .../target/generic/target_generic_math_int.h | 260 - .../target/generic/target_generic_misc.h | 203 - .../target/generic/target_generic_network.h | 1289 -- libjava/classpath/native/target/readme.txt | 149 - .../classpath/org/omg/CORBA/AnyHolder.java | 6 +- .../classpath/org/omg/CORBA/AnySeqHelper.java | 3 +- .../classpath/org/omg/CORBA/AnySeqHolder.java | 6 +- .../org/omg/CORBA/BooleanHolder.java | 6 +- .../org/omg/CORBA/BooleanSeqHelper.java | 3 +- .../org/omg/CORBA/BooleanSeqHolder.java | 6 +- .../classpath/org/omg/CORBA/ByteHolder.java | 6 +- .../classpath/org/omg/CORBA/CharHolder.java | 6 +- .../org/omg/CORBA/CharSeqHelper.java | 3 +- .../org/omg/CORBA/CharSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/Context.java | 6 +- .../org/omg/CORBA/CurrentHelper.java | 5 +- .../classpath/org/omg/CORBA/CustomValue.java | 5 +- .../org/omg/CORBA/DataOutputStream.java | 28 +- .../org/omg/CORBA/DefinitionKindHelper.java | 5 +- .../omg/CORBA/DomainManagerOperations.java | 4 +- .../classpath/org/omg/CORBA/DoubleHolder.java | 6 +- .../org/omg/CORBA/DoubleSeqHelper.java | 3 +- .../org/omg/CORBA/DoubleSeqHolder.java | 6 +- libjava/classpath/org/omg/CORBA/DynAny.java | 10 +- .../classpath/org/omg/CORBA/DynSequence.java | 4 +- libjava/classpath/org/omg/CORBA/DynValue.java | 4 +- .../org/omg/CORBA/DynamicImplementation.java | 4 +- .../org/omg/CORBA/FieldNameHelper.java | 8 +- .../classpath/org/omg/CORBA/FixedHolder.java | 7 +- .../classpath/org/omg/CORBA/FloatHolder.java | 6 +- .../org/omg/CORBA/FloatSeqHelper.java | 3 +- .../org/omg/CORBA/FloatSeqHolder.java | 6 +- .../org/omg/CORBA/IdentifierHelper.java | 8 +- .../classpath/org/omg/CORBA/IntHolder.java | 6 +- .../classpath/org/omg/CORBA/LocalObject.java | 12 +- .../classpath/org/omg/CORBA/LongHolder.java | 6 +- .../org/omg/CORBA/LongLongSeqHelper.java | 3 +- .../org/omg/CORBA/LongLongSeqHolder.java | 6 +- .../org/omg/CORBA/LongSeqHelper.java | 3 +- .../org/omg/CORBA/LongSeqHolder.java | 10 +- libjava/classpath/org/omg/CORBA/ORB.java | 65 +- .../classpath/org/omg/CORBA/ObjectHelper.java | 3 +- .../classpath/org/omg/CORBA/ObjectHolder.java | 9 +- .../org/omg/CORBA/OctetSeqHelper.java | 3 +- .../org/omg/CORBA/OctetSeqHolder.java | 6 +- .../org/omg/CORBA/PolicyErrorCodeHelper.java | 10 +- .../org/omg/CORBA/PolicyErrorHelper.java | 6 +- .../classpath/org/omg/CORBA/PolicyHelper.java | 5 +- .../org/omg/CORBA/PolicyListHelper.java | 14 +- .../org/omg/CORBA/PolicyTypeHelper.java | 3 +- .../org/omg/CORBA/PrincipalHolder.java | 6 +- .../org/omg/CORBA/RepositoryIdHelper.java | 8 +- libjava/classpath/org/omg/CORBA/Request.java | 8 +- .../classpath/org/omg/CORBA/ShortHolder.java | 6 +- .../org/omg/CORBA/ShortSeqHelper.java | 3 +- .../org/omg/CORBA/ShortSeqHolder.java | 6 +- .../org/omg/CORBA/StringSeqHelper.java | 3 +- .../org/omg/CORBA/StringSeqHolder.java | 6 +- .../org/omg/CORBA/ULongLongSeqHelper.java | 3 +- .../org/omg/CORBA/ULongLongSeqHolder.java | 6 +- .../org/omg/CORBA/ULongSeqHelper.java | 3 +- .../org/omg/CORBA/ULongSeqHolder.java | 6 +- .../org/omg/CORBA/UShortSeqHelper.java | 3 +- .../org/omg/CORBA/UShortSeqHolder.java | 6 +- .../org/omg/CORBA/ValueBaseHelper.java | 6 +- .../org/omg/CORBA/ValueBaseHolder.java | 3 +- .../org/omg/CORBA/VersionSpecHelper.java | 8 +- .../org/omg/CORBA/WCharSeqHelper.java | 3 +- .../org/omg/CORBA/WCharSeqHolder.java | 10 +- .../org/omg/CORBA/WStringSeqHelper.java | 3 +- .../org/omg/CORBA/WStringSeqHolder.java | 6 +- .../org/omg/CORBA/WrongTransactionHelper.java | 3 +- .../classpath/org/omg/CORBA/_IDLTypeStub.java | 2 +- .../classpath/org/omg/CORBA/_PolicyStub.java | 4 +- .../omg/CORBA/portable/BoxedValueHelper.java | 8 +- .../org/omg/CORBA/portable/Delegate.java | 6 +- .../org/omg/CORBA/portable/ObjectImpl.java | 31 +- .../org/omg/CORBA/portable/ServantObject.java | 4 +- .../omg/CORBA/portable/StreamableValue.java | 4 +- .../org/omg/CORBA/portable/ValueFactory.java | 2 +- libjava/classpath/org/omg/CORBA_2_3/ORB.java | 11 +- .../omg/CORBA_2_3/portable/InputStream.java | 8 +- .../omg/CORBA_2_3/portable/OutputStream.java | 12 +- .../omg/CosNaming/BindingIteratorHelper.java | 7 +- .../org/omg/CosNaming/BindingType.java | 8 +- .../org/omg/CosNaming/BindingTypeHelper.java | 3 +- .../org/omg/CosNaming/IstringHelper.java | 10 +- .../omg/CosNaming/NameComponentHelper.java | 4 +- .../org/omg/CosNaming/NameHelper.java | 3 +- .../omg/CosNaming/NamingContextExtHelper.java | 7 +- .../AddressHelper.java | 3 +- .../InvalidAddressHelper.java | 3 +- .../InvalidAddressHolder.java | 3 +- .../StringNameHelper.java | 4 +- .../URLStringHelper.java | 3 +- .../omg/CosNaming/NamingContextHelper.java | 9 +- .../AlreadyBoundHelper.java | 3 +- .../NamingContextPackage/InvalidName.java | 3 +- .../InvalidNameHelper.java | 3 +- .../NamingContextPackage/NotEmpty.java | 2 +- .../NamingContextPackage/NotEmptyHelper.java | 3 +- .../NotFoundReasonHelper.java | 3 +- .../NotFoundReasonHolder.java | 6 +- .../CosNaming/_NamingContextExtImplBase.java | 4 +- .../omg/CosNaming/_NamingContextImplBase.java | 4 +- .../org/omg/DynamicAny/AnySeqHelper.java | 3 +- .../omg/DynamicAny/DynAnyFactoryHelper.java | 10 +- .../DynamicAny/DynAnyFactoryOperations.java | 5 +- .../InconsistentTypeCodeHelper.java | 3 +- .../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 +- .../omg/DynamicAny/DynStructOperations.java | 6 +- .../org/omg/DynamicAny/DynUnionHelper.java | 10 +- .../omg/DynamicAny/DynUnionOperations.java | 2 +- .../org/omg/DynamicAny/DynValueHelper.java | 10 +- .../org/omg/DynamicAny/FieldNameHelper.java | 8 +- .../omg/DynamicAny/NameDynAnyPairHelper.java | 4 +- .../DynamicAny/NameDynAnyPairSeqHelper.java | 6 +- .../org/omg/IOP/CodecFactoryHelper.java | 12 +- .../UnknownEncodingHelper.java | 3 +- .../org/omg/IOP/CodecOperations.java | 10 +- .../CodecPackage/FormatMismatchHelper.java | 3 +- .../InvalidTypeForEncodingHelper.java | 3 +- .../IOP/CodecPackage/TypeMismatchHelper.java | 3 +- .../org/omg/IOP/ComponentIdHelper.java | 3 +- .../org/omg/IOP/ExceptionDetailMessage.java | 4 +- .../IOP/MultipleComponentProfileHelper.java | 5 +- .../org/omg/IOP/ProfileIdHelper.java | 3 +- .../org/omg/IOP/ServiceContextListHelper.java | 7 +- .../org/omg/IOP/ServiceIdHelper.java | 3 +- .../classpath/org/omg/IOP/TAG_CODE_SETS.java | 4 +- .../ClientRequestInfoOperations.java | 5 +- .../ClientRequestInterceptorOperations.java | 4 +- .../PortableInterceptor/CurrentHelper.java | 9 +- .../org/omg/PortableInterceptor/IORInfo.java | 4 +- .../IORInterceptor_3_0Helper.java | 3 +- .../omg/PortableInterceptor/ORBIdHelper.java | 8 +- .../ORBInitInfoOperations.java | 12 +- .../ORBInitInfoPackage/InvalidNameHelper.java | 3 +- .../ORBInitializerOperations.java | 4 +- .../ObjectReferenceFactoryHelper.java | 3 +- .../ObjectReferenceTemplateHelper.java | 3 +- .../RequestInfoOperations.java | 5 +- .../PortableInterceptor/ServerIdHelper.java | 8 +- .../ServerRequestInfoOperations.java | 5 +- .../ServerRequestInterceptorOperations.java | 18 +- .../AdapterActivatorOperations.java | 4 +- .../org/omg/PortableServer/CurrentHelper.java | 4 +- .../CurrentPackage/NoContextHelper.java | 3 +- .../PortableServer/ForwardRequestHelper.java | 3 +- .../IdAssignmentPolicyValue.java | 3 +- .../IdUniquenessPolicyValue.java | 3 +- .../ImplicitActivationPolicyValue.java | 3 +- .../PortableServer/LifespanPolicyValue.java | 3 +- .../classpath/org/omg/PortableServer/POA.java | 6 +- .../org/omg/PortableServer/POAHelper.java | 6 +- .../AdapterInactiveHelper.java | 1 - .../POAManagerPackage/State.java | 6 +- .../org/omg/PortableServer/POAOperations.java | 32 +- .../AdapterAlreadyExistsHelper.java | 3 +- .../POAPackage/AdapterNonExistentHelper.java | 3 +- .../POAPackage/InvalidPolicy.java | 6 +- .../POAPackage/NoServantHelper.java | 3 +- .../POAPackage/ObjectAlreadyActiveHelper.java | 3 +- .../POAPackage/ObjectNotActiveHelper.java | 3 +- .../ServantAlreadyActiveHelper.java | 3 +- .../POAPackage/ServantNotActiveHelper.java | 3 +- .../POAPackage/WrongAdapterHelper.java | 3 +- .../POAPackage/WrongPolicyHelper.java | 3 +- .../RequestProcessingPolicyValue.java | 3 +- .../org/omg/PortableServer/Servant.java | 9 +- .../ServantActivatorHelper.java | 7 +- .../PortableServer/ServantLocatorHelper.java | 8 +- .../ServantLocatorOperations.java | 4 +- .../ServantRetentionPolicyValue.java | 3 +- .../omg/PortableServer/ThreadPolicyValue.java | 3 +- .../PortableServer/_ServantActivatorStub.java | 14 +- .../PortableServer/_ServantLocatorStub.java | 2 +- .../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 + .../java.util.prefs.PreferencesFactory | 1 - libjava/classpath/resource/Makefile.am | 4 +- libjava/classpath/resource/Makefile.in | 15 +- .../appletviewer/MessagesBundle.properties | 70 - .../appletviewer/MessagesBundle_de.properties | 75 - .../tools/appletviewer/messages.properties | 102 + .../tools/common/Messages.properties | 40 + .../tools/getopt/Messages.properties | 3 - .../tools/jarsigner/MessageBundle.properties | 33 + .../tools/keytool/MessageBundle.properties | 95 + .../classpath/tools/orbd/messages.properties | 46 + .../classpath/tools/rmic/messages.properties | 61 + .../classpath/tools/rmid/messages.properties | 50 + .../tools/rmiregistry/messages.properties | 48 + .../tools/tnameserv/messages.properties | 43 + .../util/regex/MessagesBundle_it.properties | 2 +- libjava/classpath/scripts/.cvsignore | 3 + libjava/classpath/scripts/Makefile.in | 11 +- libjava/classpath/scripts/build_mathnamespace | 6 + .../classpath/scripts/check_jni_methods.sh | 3 - .../classpath/scripts/checkstyle-config.xml | 132 + .../classpath/scripts/checkstyle-header.regex | 38 + .../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 + .../AnnotationInvocationHandler.java | 56 + .../reflect/annotation/AnnotationParser.java | 57 + .../reflect/annotation/AnnotationType.java | 52 + .../EnumConstantNotPresentExceptionProxy.java | 52 + .../reflect/annotation/ExceptionProxy.java | 46 + libjava/classpath/tools/.cvsignore | 13 + libjava/classpath/tools/Makefile.am | 254 +- libjava/classpath/tools/Makefile.in | 780 +- .../org/objectweb/asm/AnnotationVisitor.class | Bin 0 -> 481 bytes .../org/objectweb/asm/AnnotationWriter.class | Bin 0 -> 5344 bytes .../asm/org/objectweb/asm/Attribute.class | Bin 0 -> 2624 bytes .../asm/org/objectweb/asm/ByteVector.class | Bin 0 -> 3259 bytes .../asm/org/objectweb/asm/ClassAdapter.class | Bin 0 -> 2432 bytes .../asm/org/objectweb/asm/ClassReader.class | Bin 0 -> 22135 bytes .../asm/org/objectweb/asm/ClassVisitor.class | Bin 0 -> 894 bytes .../asm/org/objectweb/asm/ClassWriter.class | Bin 0 -> 14071 bytes .../tools/asm/org/objectweb/asm/Edge.class | Bin 0 -> 360 bytes .../asm/org/objectweb/asm/FieldVisitor.class | Bin 0 -> 295 bytes .../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 .../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 .../asm/attrs/StackMapAttribute.class | Bin 0 -> 6499 bytes .../objectweb/asm/attrs/StackMapFrame.class | Bin 0 -> 1113 bytes .../asm/attrs/StackMapTableAttribute.class | Bin 0 -> 10012 bytes .../objectweb/asm/attrs/StackMapType.class | Bin 0 -> 2422 bytes .../objectweb/asm/commons/AdviceAdapter.class | Bin 0 -> 7757 bytes .../objectweb/asm/commons/EmptyVisitor.class | Bin 0 -> 5591 bytes .../asm/commons/GeneratorAdapter.class | Bin 0 -> 18390 bytes .../asm/commons/LocalVariablesSorter.class | Bin 0 -> 2561 bytes .../org/objectweb/asm/commons/Method.class | Bin 0 -> 3964 bytes .../commons/SerialVersionUIDAdder$Item.class | Bin 0 -> 946 bytes .../asm/commons/SerialVersionUIDAdder.class | Bin 0 -> 5030 bytes .../asm/commons/StaticInitMerger.class | Bin 0 -> 2143 bytes .../asm/commons/TableSwitchGenerator.class | Bin 0 -> 234 bytes .../AnnotationConstantsCollector.class | Bin 0 -> 3362 bytes .../optimizer/ClassConstantsCollector.class | Bin 0 -> 4468 bytes .../asm/optimizer/ClassOptimizer.class | Bin 0 -> 4248 bytes .../objectweb/asm/optimizer/Constant.class | Bin 0 -> 3227 bytes .../asm/optimizer/ConstantPool.class | Bin 0 -> 4508 bytes .../optimizer/FieldConstantsCollector.class | Bin 0 -> 1547 bytes .../asm/optimizer/JarOptimizer.class | Bin 0 -> 2470 bytes .../optimizer/MethodConstantsCollector.class | Bin 0 -> 4239 bytes .../asm/optimizer/MethodOptimizer.class | Bin 0 -> 2621 bytes .../objectweb/asm/optimizer/NameMapping.class | Bin 0 -> 2533 bytes .../Shrinker$ConstantComparator.class | Bin 0 -> 2004 bytes .../objectweb/asm/optimizer/Shrinker.class | Bin 0 -> 4058 bytes .../asm/signature/SignatureReader.class | Bin 0 -> 2803 bytes .../asm/signature/SignatureVisitor.class | Bin 0 -> 808 bytes .../asm/signature/SignatureWriter.class | Bin 0 -> 2981 bytes .../objectweb/asm/tree/AbstractInsnNode.class | Bin 0 -> 994 bytes .../objectweb/asm/tree/AnnotationNode.class | Bin 0 -> 2730 bytes .../org/objectweb/asm/tree/ClassNode.class | Bin 0 -> 4574 bytes .../objectweb/asm/tree/FieldInsnNode.class | Bin 0 -> 996 bytes .../org/objectweb/asm/tree/FieldNode.class | Bin 0 -> 1958 bytes .../org/objectweb/asm/tree/IincInsnNode.class | Bin 0 -> 749 bytes .../objectweb/asm/tree/InnerClassNode.class | Bin 0 -> 836 bytes .../asm/org/objectweb/asm/tree/InsnNode.class | Bin 0 -> 994 bytes .../org/objectweb/asm/tree/IntInsnNode.class | Bin 0 -> 819 bytes .../org/objectweb/asm/tree/JumpInsnNode.class | Bin 0 -> 874 bytes .../org/objectweb/asm/tree/LabelNode.class | Bin 0 -> 736 bytes .../org/objectweb/asm/tree/LdcInsnNode.class | Bin 0 -> 729 bytes .../objectweb/asm/tree/LineNumberNode.class | Bin 0 -> 709 bytes .../asm/tree/LocalVariableNode.class | Bin 0 -> 1021 bytes .../asm/tree/LookupSwitchInsnNode.class | Bin 0 -> 1655 bytes .../org/objectweb/asm/tree/MemberNode.class | Bin 0 -> 1241 bytes .../objectweb/asm/tree/MethodInsnNode.class | Bin 0 -> 1000 bytes .../org/objectweb/asm/tree/MethodNode$1.class | Bin 0 -> 803 bytes .../org/objectweb/asm/tree/MethodNode.class | Bin 0 -> 8683 bytes .../asm/tree/MultiANewArrayInsnNode.class | Bin 0 -> 828 bytes .../asm/tree/TableSwitchInsnNode.class | Bin 0 -> 1401 bytes .../asm/tree/TryCatchBlockNode.class | Bin 0 -> 904 bytes .../org/objectweb/asm/tree/TypeInsnNode.class | Bin 0 -> 858 bytes .../org/objectweb/asm/tree/VarInsnNode.class | Bin 0 -> 815 bytes .../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 .../asm/tree/analysis/BasicValue.class | Bin 0 -> 1962 bytes .../asm/tree/analysis/BasicVerifier.class | Bin 0 -> 7836 bytes .../tree/analysis/DataflowInterpreter.class | Bin 0 -> 4302 bytes .../asm/tree/analysis/DataflowValue.class | Bin 0 -> 1356 bytes .../objectweb/asm/tree/analysis/Frame.class | Bin 0 -> 10023 bytes .../objectweb/asm/tree/analysis/IntMap.class | Bin 0 -> 1230 bytes .../asm/tree/analysis/Interpreter.class | Bin 0 -> 1312 bytes .../asm/tree/analysis/SimpleVerifier.class | Bin 0 -> 4833 bytes .../asm/tree/analysis/SmallSet.class | Bin 0 -> 1641 bytes .../asm/tree/analysis/Subroutine.class | Bin 0 -> 1836 bytes .../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 .../asm/util/ASMifierClassVisitor.class | Bin 0 -> 9817 bytes .../asm/util/ASMifierFieldVisitor.class | Bin 0 -> 437 bytes .../asm/util/ASMifierMethodVisitor.class | Bin 0 -> 7739 bytes .../objectweb/asm/util/AbstractVisitor.class | Bin 0 -> 3823 bytes .../asm/util/CheckAnnotationAdapter.class | Bin 0 -> 2766 bytes .../asm/util/CheckClassAdapter.class | Bin 0 -> 9728 bytes .../asm/util/CheckFieldAdapter.class | Bin 0 -> 1588 bytes .../asm/util/CheckMethodAdapter.class | Bin 0 -> 13225 bytes .../asm/util/TraceAbstractVisitor.class | Bin 0 -> 2593 bytes .../asm/util/TraceAnnotationVisitor.class | Bin 0 -> 5991 bytes .../asm/util/TraceClassVisitor.class | Bin 0 -> 9174 bytes .../asm/util/TraceFieldVisitor.class | Bin 0 -> 1141 bytes .../asm/util/TraceMethodVisitor.class | Bin 0 -> 10058 bytes .../asm/util/TraceSignatureVisitor.class | Bin 0 -> 4781 bytes .../asm/util/attrs/ASMStackMapAttribute.class | Bin 0 -> 5535 bytes .../attrs/ASMStackMapTableAttribute.class | Bin 0 -> 5483 bytes .../objectweb/asm/util/attrs/ASMifiable.class | Bin 0 -> 210 bytes .../objectweb/asm/util/attrs/Traceable.class | Bin 0 -> 189 bytes ...ContentHandler$AnnotationDefaultRule.class | Bin 0 -> 1399 bytes ...ntentHandler$AnnotationParameterRule.class | Bin 0 -> 1849 bytes .../ASMContentHandler$AnnotationRule.class | Bin 0 -> 1890 bytes ...andler$AnnotationValueAnnotationRule.class | Bin 0 -> 1576 bytes ...tentHandler$AnnotationValueArrayRule.class | Bin 0 -> 1497 bytes ...ntentHandler$AnnotationValueEnumRule.class | Bin 0 -> 1358 bytes ...SMContentHandler$AnnotationValueRule.class | Bin 0 -> 1393 bytes .../asm/xml/ASMContentHandler$ClassRule.class | Bin 0 -> 1839 bytes .../xml/ASMContentHandler$ExceptionRule.class | Bin 0 -> 1267 bytes .../ASMContentHandler$ExceptionsRule.class | Bin 0 -> 1802 bytes .../asm/xml/ASMContentHandler$FieldRule.class | Bin 0 -> 1851 bytes .../ASMContentHandler$InnerClassRule.class | Bin 0 -> 1433 bytes .../xml/ASMContentHandler$InterfaceRule.class | Bin 0 -> 1267 bytes .../ASMContentHandler$InterfacesRule.class | Bin 0 -> 1867 bytes .../asm/xml/ASMContentHandler$LabelRule.class | Bin 0 -> 1268 bytes .../ASMContentHandler$LineNumberRule.class | Bin 0 -> 1457 bytes .../xml/ASMContentHandler$LocalVarRule.class | Bin 0 -> 1709 bytes ...ContentHandler$LookupSwitchLabelRule.class | Bin 0 -> 1460 bytes .../ASMContentHandler$LookupSwitchRule.class | Bin 0 -> 2474 bytes .../asm/xml/ASMContentHandler$MaxRule.class | Bin 0 -> 1312 bytes .../xml/ASMContentHandler$MethodRule.class | Bin 0 -> 1704 bytes .../asm/xml/ASMContentHandler$Opcode.class | Bin 0 -> 525 bytes .../xml/ASMContentHandler$OpcodeGroup.class | Bin 0 -> 594 bytes .../xml/ASMContentHandler$OpcodesRule.class | Bin 0 -> 3082 bytes .../ASMContentHandler$OuterClassRule.class | Bin 0 -> 1331 bytes .../asm/xml/ASMContentHandler$Rule.class | Bin 0 -> 4962 bytes .../asm/xml/ASMContentHandler$RuleSet.class | Bin 0 -> 2077 bytes .../xml/ASMContentHandler$SourceRule.class | Bin 0 -> 1254 bytes ...MContentHandler$TableSwitchLabelRule.class | Bin 0 -> 1364 bytes .../ASMContentHandler$TableSwitchRule.class | Bin 0 -> 2394 bytes .../xml/ASMContentHandler$TryCatchRule.class | Bin 0 -> 1526 bytes .../objectweb/asm/xml/ASMContentHandler.class | Bin 0 -> 16825 bytes .../Processor$ASMContentHandlerFactory.class | Bin 0 -> 839 bytes .../xml/Processor$ContentHandlerFactory.class | Bin 0 -> 299 bytes .../asm/xml/Processor$EntryElement.class | Bin 0 -> 367 bytes .../xml/Processor$InputSlicingHandler.class | Bin 0 -> 2363 bytes .../xml/Processor$OutputSlicingHandler.class | Bin 0 -> 3077 bytes .../xml/Processor$ProtectedInputStream.class | Bin 0 -> 1130 bytes .../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 .../Processor$SubdocumentHandlerFactory.class | Bin 0 -> 749 bytes .../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 .../org/objectweb/asm/xml/SAXAdapter.class | Bin 0 -> 1848 bytes .../asm/xml/SAXAnnotationAdapter.class | Bin 0 -> 4628 bytes .../objectweb/asm/xml/SAXClassAdapter.class | Bin 0 -> 6837 bytes .../objectweb/asm/xml/SAXCodeAdapter.class | Bin 0 -> 7552 bytes .../objectweb/asm/xml/SAXFieldAdapter.class | Bin 0 -> 1719 bytes .../appletviewer/AppletClassLoader.class | Bin 0 -> 935 bytes .../appletviewer/AppletSecurityManager.class | Bin 0 -> 1193 bytes .../tools/appletviewer/AppletTag.class | Bin 0 -> 8668 bytes .../appletviewer/CommonAppletContext.class | Bin 0 -> 2750 bytes .../tools/appletviewer/CommonAppletStub.class | Bin 0 -> 1891 bytes .../tools/appletviewer/ErrorApplet.class | Bin 0 -> 648 bytes .../classpath/tools/appletviewer/Main$1.class | Bin 0 -> 828 bytes .../tools/appletviewer/Main$10.class | Bin 0 -> 801 bytes .../classpath/tools/appletviewer/Main$2.class | Bin 0 -> 828 bytes .../classpath/tools/appletviewer/Main$3.class | Bin 0 -> 828 bytes .../classpath/tools/appletviewer/Main$4.class | Bin 0 -> 973 bytes .../classpath/tools/appletviewer/Main$5.class | Bin 0 -> 974 bytes .../classpath/tools/appletviewer/Main$6.class | Bin 0 -> 915 bytes .../classpath/tools/appletviewer/Main$7.class | Bin 0 -> 1067 bytes .../classpath/tools/appletviewer/Main$8.class | Bin 0 -> 831 bytes .../classpath/tools/appletviewer/Main$9.class | Bin 0 -> 799 bytes .../classpath/tools/appletviewer/Main.class | Bin 0 -> 8053 bytes .../tools/appletviewer/Messages.class | Bin 0 -> 1169 bytes .../appletviewer/PluginAppletContext.class | Bin 0 -> 1320 bytes .../appletviewer/PluginAppletViewer.class | Bin 0 -> 3918 bytes .../appletviewer/PluginAppletWindow.class | Bin 0 -> 8194 bytes .../StandaloneAppletContext.class | Bin 0 -> 1397 bytes .../appletviewer/StandaloneAppletViewer.class | Bin 0 -> 4309 bytes .../StandaloneAppletWindow$1.class | Bin 0 -> 1119 bytes .../appletviewer/StandaloneAppletWindow.class | Bin 0 -> 11928 bytes .../tools/appletviewer/TagParser.class | Bin 0 -> 6630 bytes .../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 .../classpath/tools/common/Persistent.class | Bin 0 -> 570 bytes .../tools/common/ProviderUtil$1.class | Bin 0 -> 891 bytes .../tools/common/ProviderUtil$2.class | Bin 0 -> 705 bytes .../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 .../tools/getopt/OptionException.class | Bin 0 -> 391 bytes .../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 .../gnu/classpath/tools/jar/Action.class | Bin 0 -> 393 bytes .../gnu/classpath/tools/jar/Creator.class | Bin 0 -> 6303 bytes .../gnu/classpath/tools/jar/Entry.class | Bin 0 -> 634 bytes .../gnu/classpath/tools/jar/Extractor.class | Bin 0 -> 2938 bytes .../gnu/classpath/tools/jar/Indexer.class | Bin 0 -> 4105 bytes .../gnu/classpath/tools/jar/Lister.class | Bin 0 -> 2941 bytes .../gnu/classpath/tools/jar/Main$1.class | Bin 0 -> 964 bytes .../gnu/classpath/tools/jar/Main$2.class | Bin 0 -> 903 bytes .../gnu/classpath/tools/jar/Main$3.class | Bin 0 -> 899 bytes .../gnu/classpath/tools/jar/Main$4.class | Bin 0 -> 904 bytes .../gnu/classpath/tools/jar/Main$5.class | Bin 0 -> 1014 bytes .../gnu/classpath/tools/jar/Main$6.class | Bin 0 -> 966 bytes .../classpath/tools/jar/Main$HandleFile.class | Bin 0 -> 1151 bytes .../classpath/tools/jar/Main$JarParser.class | Bin 0 -> 1469 bytes .../classpath/tools/jar/Main$ModeOption.class | Bin 0 -> 1413 bytes .../gnu/classpath/tools/jar/Main.class | Bin 0 -> 4933 bytes .../gnu/classpath/tools/jar/Messages.class | Bin 0 -> 1142 bytes .../gnu/classpath/tools/jar/Updater.class | Bin 0 -> 2403 bytes .../gnu/classpath/tools/jar/WorkSet.class | Bin 0 -> 1498 bytes .../classpath/tools/jarsigner/HashUtils.class | Bin 0 -> 2539 bytes .../classpath/tools/jarsigner/JarSigner.class | Bin 0 -> 5541 bytes .../tools/jarsigner/JarVerifier.class | Bin 0 -> 9109 bytes .../classpath/tools/jarsigner/Main$1.class | Bin 0 -> 1187 bytes .../classpath/tools/jarsigner/Main$10.class | Bin 0 -> 1136 bytes .../classpath/tools/jarsigner/Main$11.class | Bin 0 -> 1138 bytes .../classpath/tools/jarsigner/Main$12.class | Bin 0 -> 1201 bytes .../classpath/tools/jarsigner/Main$2.class | Bin 0 -> 1188 bytes .../classpath/tools/jarsigner/Main$3.class | Bin 0 -> 1192 bytes .../classpath/tools/jarsigner/Main$4.class | Bin 0 -> 1190 bytes .../classpath/tools/jarsigner/Main$5.class | Bin 0 -> 1193 bytes .../classpath/tools/jarsigner/Main$6.class | Bin 0 -> 1199 bytes .../classpath/tools/jarsigner/Main$7.class | Bin 0 -> 1130 bytes .../classpath/tools/jarsigner/Main$8.class | Bin 0 -> 1129 bytes .../classpath/tools/jarsigner/Main$9.class | Bin 0 -> 1131 bytes .../tools/jarsigner/Main$ToolParser.class | Bin 0 -> 3938 bytes .../jarsigner/Main$ToolParserCallback.class | Bin 0 -> 1000 bytes .../gnu/classpath/tools/jarsigner/Main.class | Bin 0 -> 11988 bytes .../classpath/tools/jarsigner/Messages.class | Bin 0 -> 2620 bytes .../classpath/tools/jarsigner/SFHelper.class | Bin 0 -> 11138 bytes .../classpath/tools/javah/ClassWrapper.class | Bin 0 -> 7779 bytes .../tools/javah/CniIncludePrinter.class | Bin 0 -> 1928 bytes .../tools/javah/CniPrintStream.class | Bin 0 -> 5058 bytes .../tools/javah/CniStubPrinter.class | Bin 0 -> 3940 bytes .../classpath/tools/javah/FieldHelper.class | Bin 0 -> 2203 bytes .../gnu/classpath/tools/javah/JniHelper.class | Bin 0 -> 2997 bytes .../tools/javah/JniIncludePrinter.class | Bin 0 -> 4343 bytes .../tools/javah/JniPrintStream.class | Bin 0 -> 3119 bytes .../tools/javah/JniStubPrinter.class | Bin 0 -> 3407 bytes .../gnu/classpath/tools/javah/Keywords.class | Bin 0 -> 2625 bytes .../gnu/classpath/tools/javah/Main$1.class | Bin 0 -> 1002 bytes .../gnu/classpath/tools/javah/Main$10.class | Bin 0 -> 928 bytes .../gnu/classpath/tools/javah/Main$2.class | Bin 0 -> 1106 bytes .../gnu/classpath/tools/javah/Main$3.class | Bin 0 -> 1111 bytes .../gnu/classpath/tools/javah/Main$4.class | Bin 0 -> 994 bytes .../gnu/classpath/tools/javah/Main$5.class | Bin 0 -> 1056 bytes .../gnu/classpath/tools/javah/Main$6.class | Bin 0 -> 926 bytes .../gnu/classpath/tools/javah/Main$7.class | Bin 0 -> 1004 bytes .../gnu/classpath/tools/javah/Main$8.class | Bin 0 -> 924 bytes .../gnu/classpath/tools/javah/Main$9.class | Bin 0 -> 928 bytes .../gnu/classpath/tools/javah/Main.class | Bin 0 -> 10324 bytes .../classpath/tools/javah/MethodHelper.class | Bin 0 -> 3041 bytes .../tools/javah/PackageWrapper.class | Bin 0 -> 500 bytes .../tools/javah/PathOptionGroup$1.class | Bin 0 -> 939 bytes .../tools/javah/PathOptionGroup$2.class | Bin 0 -> 1104 bytes .../tools/javah/PathOptionGroup$3.class | Bin 0 -> 1103 bytes .../tools/javah/PathOptionGroup$4.class | Bin 0 -> 1108 bytes .../tools/javah/PathOptionGroup$5.class | Bin 0 -> 1107 bytes .../tools/javah/PathOptionGroup.class | Bin 0 -> 3120 bytes .../gnu/classpath/tools/javah/Printer.class | Bin 0 -> 2145 bytes .../gnu/classpath/tools/javah/Text.class | Bin 0 -> 565 bytes .../classpath/tools/keytool/CACertCmd$1.class | Bin 0 -> 1036 bytes .../classpath/tools/keytool/CACertCmd$2.class | Bin 0 -> 1030 bytes .../classpath/tools/keytool/CACertCmd$3.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/CACertCmd$4.class | Bin 0 -> 1034 bytes .../classpath/tools/keytool/CACertCmd$5.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/CACertCmd$6.class | Bin 0 -> 972 bytes .../classpath/tools/keytool/CACertCmd.class | Bin 0 -> 6606 bytes .../tools/keytool/CertReqCmd$1.class | Bin 0 -> 1035 bytes .../tools/keytool/CertReqCmd$10.class | Bin 0 -> 987 bytes .../tools/keytool/CertReqCmd$2.class | Bin 0 -> 1042 bytes .../tools/keytool/CertReqCmd$3.class | Bin 0 -> 1045 bytes .../tools/keytool/CertReqCmd$4.class | Bin 0 -> 1038 bytes .../tools/keytool/CertReqCmd$5.class | Bin 0 -> 1036 bytes .../tools/keytool/CertReqCmd$6.class | Bin 0 -> 1035 bytes .../tools/keytool/CertReqCmd$7.class | Bin 0 -> 1040 bytes .../tools/keytool/CertReqCmd$8.class | Bin 0 -> 1047 bytes .../tools/keytool/CertReqCmd$9.class | Bin 0 -> 978 bytes .../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 .../classpath/tools/keytool/DeleteCmd$1.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/DeleteCmd$2.class | Bin 0 -> 1030 bytes .../classpath/tools/keytool/DeleteCmd$3.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/DeleteCmd$4.class | Bin 0 -> 1034 bytes .../classpath/tools/keytool/DeleteCmd$5.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/DeleteCmd$6.class | Bin 0 -> 972 bytes .../classpath/tools/keytool/DeleteCmd.class | Bin 0 -> 5720 bytes .../classpath/tools/keytool/ExportCmd$1.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/ExportCmd$2.class | Bin 0 -> 1036 bytes .../classpath/tools/keytool/ExportCmd$3.class | Bin 0 -> 1030 bytes .../classpath/tools/keytool/ExportCmd$4.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/ExportCmd$5.class | Bin 0 -> 1034 bytes .../classpath/tools/keytool/ExportCmd$6.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/ExportCmd$7.class | Bin 0 -> 968 bytes .../classpath/tools/keytool/ExportCmd$8.class | Bin 0 -> 972 bytes .../classpath/tools/keytool/ExportCmd.class | Bin 0 -> 6748 bytes .../classpath/tools/keytool/GenKeyCmd$1.class | Bin 0 -> 1029 bytes .../tools/keytool/GenKeyCmd$10.class | Bin 0 -> 1036 bytes .../tools/keytool/GenKeyCmd$11.class | Bin 0 -> 1043 bytes .../tools/keytool/GenKeyCmd$12.class | Bin 0 -> 974 bytes .../classpath/tools/keytool/GenKeyCmd$2.class | Bin 0 -> 1036 bytes .../classpath/tools/keytool/GenKeyCmd$3.class | Bin 0 -> 1034 bytes .../classpath/tools/keytool/GenKeyCmd$4.class | Bin 0 -> 1036 bytes .../classpath/tools/keytool/GenKeyCmd$5.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/GenKeyCmd$6.class | Bin 0 -> 1032 bytes .../classpath/tools/keytool/GenKeyCmd$7.class | Bin 0 -> 1035 bytes .../classpath/tools/keytool/GenKeyCmd$8.class | Bin 0 -> 1030 bytes .../classpath/tools/keytool/GenKeyCmd$9.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/GenKeyCmd.class | Bin 0 -> 12086 bytes .../tools/keytool/IdentityDBCmd$1.class | Bin 0 -> 1059 bytes .../tools/keytool/IdentityDBCmd$2.class | Bin 0 -> 1054 bytes .../tools/keytool/IdentityDBCmd$3.class | Bin 0 -> 1053 bytes .../tools/keytool/IdentityDBCmd$4.class | Bin 0 -> 1058 bytes .../tools/keytool/IdentityDBCmd$5.class | Bin 0 -> 1065 bytes .../tools/keytool/IdentityDBCmd$6.class | Bin 0 -> 996 bytes .../tools/keytool/IdentityDBCmd.class | Bin 0 -> 4563 bytes .../classpath/tools/keytool/ImportCmd$1.class | Bin 0 -> 1029 bytes .../tools/keytool/ImportCmd$10.class | Bin 0 -> 974 bytes .../classpath/tools/keytool/ImportCmd$2.class | Bin 0 -> 1036 bytes .../classpath/tools/keytool/ImportCmd$3.class | Bin 0 -> 1032 bytes .../classpath/tools/keytool/ImportCmd$4.class | Bin 0 -> 973 bytes .../classpath/tools/keytool/ImportCmd$5.class | Bin 0 -> 977 bytes .../classpath/tools/keytool/ImportCmd$6.class | Bin 0 -> 1030 bytes .../classpath/tools/keytool/ImportCmd$7.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/ImportCmd$8.class | Bin 0 -> 1034 bytes .../classpath/tools/keytool/ImportCmd$9.class | Bin 0 -> 1041 bytes .../classpath/tools/keytool/ImportCmd.class | Bin 0 -> 17535 bytes .../tools/keytool/KeyCloneCmd$1.class | Bin 0 -> 1041 bytes .../tools/keytool/KeyCloneCmd$2.class | Bin 0 -> 1045 bytes .../tools/keytool/KeyCloneCmd$3.class | Bin 0 -> 1044 bytes .../tools/keytool/KeyCloneCmd$4.class | Bin 0 -> 1047 bytes .../tools/keytool/KeyCloneCmd$5.class | Bin 0 -> 1042 bytes .../tools/keytool/KeyCloneCmd$6.class | Bin 0 -> 1041 bytes .../tools/keytool/KeyCloneCmd$7.class | Bin 0 -> 1046 bytes .../tools/keytool/KeyCloneCmd$8.class | Bin 0 -> 1053 bytes .../tools/keytool/KeyCloneCmd$9.class | Bin 0 -> 984 bytes .../classpath/tools/keytool/KeyCloneCmd.class | Bin 0 -> 8733 bytes .../tools/keytool/KeyPasswdCmd$1.class | Bin 0 -> 1047 bytes .../tools/keytool/KeyPasswdCmd$2.class | Bin 0 -> 1050 bytes .../tools/keytool/KeyPasswdCmd$3.class | Bin 0 -> 1053 bytes .../tools/keytool/KeyPasswdCmd$4.class | Bin 0 -> 1048 bytes .../tools/keytool/KeyPasswdCmd$5.class | Bin 0 -> 1047 bytes .../tools/keytool/KeyPasswdCmd$6.class | Bin 0 -> 1052 bytes .../tools/keytool/KeyPasswdCmd$7.class | Bin 0 -> 1059 bytes .../tools/keytool/KeyPasswdCmd$8.class | Bin 0 -> 990 bytes .../tools/keytool/KeyPasswdCmd.class | Bin 0 -> 8305 bytes .../classpath/tools/keytool/ListCmd$1.class | Bin 0 -> 1017 bytes .../classpath/tools/keytool/ListCmd$2.class | Bin 0 -> 1018 bytes .../classpath/tools/keytool/ListCmd$3.class | Bin 0 -> 1017 bytes .../classpath/tools/keytool/ListCmd$4.class | Bin 0 -> 1022 bytes .../classpath/tools/keytool/ListCmd$5.class | Bin 0 -> 1029 bytes .../classpath/tools/keytool/ListCmd$6.class | Bin 0 -> 960 bytes .../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 .../gnu/classpath/tools/keytool/Main.class | Bin 0 -> 8761 bytes .../classpath/tools/keytool/Messages.class | Bin 0 -> 2614 bytes .../tools/keytool/PrintCertCmd$1.class | Bin 0 -> 1054 bytes .../tools/keytool/PrintCertCmd$2.class | Bin 0 -> 990 bytes .../tools/keytool/PrintCertCmd.class | Bin 0 -> 3871 bytes .../tools/keytool/SelfCertCmd$1.class | Bin 0 -> 1041 bytes .../tools/keytool/SelfCertCmd$10.class | Bin 0 -> 986 bytes .../tools/keytool/SelfCertCmd$2.class | Bin 0 -> 1048 bytes .../tools/keytool/SelfCertCmd$3.class | Bin 0 -> 1041 bytes .../tools/keytool/SelfCertCmd$4.class | Bin 0 -> 1044 bytes .../tools/keytool/SelfCertCmd$5.class | Bin 0 -> 1047 bytes .../tools/keytool/SelfCertCmd$6.class | Bin 0 -> 1042 bytes .../tools/keytool/SelfCertCmd$7.class | Bin 0 -> 1041 bytes .../tools/keytool/SelfCertCmd$8.class | Bin 0 -> 1046 bytes .../tools/keytool/SelfCertCmd$9.class | Bin 0 -> 1053 bytes .../classpath/tools/keytool/SelfCertCmd.class | Bin 0 -> 8750 bytes .../tools/keytool/StorePasswdCmd$1.class | Bin 0 -> 1065 bytes .../tools/keytool/StorePasswdCmd$2.class | Bin 0 -> 1060 bytes .../tools/keytool/StorePasswdCmd$3.class | Bin 0 -> 1059 bytes .../tools/keytool/StorePasswdCmd$4.class | Bin 0 -> 1064 bytes .../tools/keytool/StorePasswdCmd$5.class | Bin 0 -> 1071 bytes .../tools/keytool/StorePasswdCmd$6.class | Bin 0 -> 1002 bytes .../tools/keytool/StorePasswdCmd.class | Bin 0 -> 7050 bytes .../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$HandleFile.class | Bin 0 -> 1088 bytes .../tools/native2ascii/Native2ASCII.class | Bin 0 -> 4073 bytes .../gnu/classpath/tools/orbd/Main$1.class | Bin 0 -> 1106 bytes .../gnu/classpath/tools/orbd/Main$2.class | Bin 0 -> 1052 bytes .../gnu/classpath/tools/orbd/Main$3.class | Bin 0 -> 1048 bytes .../gnu/classpath/tools/orbd/Main$4.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/orbd/Main$5.class | Bin 0 -> 721 bytes .../gnu/classpath/tools/orbd/Main.class | Bin 0 -> 5449 bytes .../gnu/classpath/tools/orbd/Messages.class | Bin 0 -> 1145 bytes .../tools/orbd/PersistentContext.class | Bin 0 -> 3047 bytes .../tools/orbd/PersistentContextMap.class | Bin 0 -> 1138 bytes .../tools/orbd/PersistentMap$Entry.class | Bin 0 -> 2453 bytes .../classpath/tools/orbd/PersistentMap.class | Bin 0 -> 5523 bytes .../tools/rmic/AbstractMethodGenerator.class | Bin 0 -> 232 bytes .../rmic/ClassRmicCompiler$MethodRef.class | Bin 0 -> 2725 bytes .../tools/rmic/ClassRmicCompiler.class | Bin 0 -> 30617 bytes .../tools/rmic/CompilationError.class | Bin 0 -> 624 bytes .../gnu/classpath/tools/rmic/Generator.class | Bin 0 -> 2992 bytes .../gnu/classpath/tools/rmic/GiopIo.class | Bin 0 -> 2777 bytes .../gnu/classpath/tools/rmic/HashFinder.class | Bin 0 -> 1064 bytes .../gnu/classpath/tools/rmic/Main$1.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmic/Main$10.class | Bin 0 -> 971 bytes .../gnu/classpath/tools/rmic/Main$11.class | Bin 0 -> 900 bytes .../gnu/classpath/tools/rmic/Main$12.class | Bin 0 -> 971 bytes .../gnu/classpath/tools/rmic/Main$13.class | Bin 0 -> 971 bytes .../gnu/classpath/tools/rmic/Main$14.class | Bin 0 -> 971 bytes .../gnu/classpath/tools/rmic/Main$15.class | Bin 0 -> 1039 bytes .../gnu/classpath/tools/rmic/Main$16.class | Bin 0 -> 972 bytes .../gnu/classpath/tools/rmic/Main$17.class | Bin 0 -> 1039 bytes .../gnu/classpath/tools/rmic/Main$18.class | Bin 0 -> 900 bytes .../gnu/classpath/tools/rmic/Main$2.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmic/Main$3.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmic/Main$4.class | Bin 0 -> 1048 bytes .../gnu/classpath/tools/rmic/Main$5.class | Bin 0 -> 1048 bytes .../gnu/classpath/tools/rmic/Main$6.class | Bin 0 -> 960 bytes .../gnu/classpath/tools/rmic/Main$7.class | Bin 0 -> 960 bytes .../gnu/classpath/tools/rmic/Main$8.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmic/Main$9.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmic/Main.class | Bin 0 -> 6058 bytes .../gnu/classpath/tools/rmic/Messages.class | Bin 0 -> 1145 bytes .../tools/rmic/MethodGenerator.class | Bin 0 -> 5369 bytes .../classpath/tools/rmic/RMICException.class | Bin 0 -> 555 bytes .../tools/rmic/RmiMethodGenerator.class | Bin 0 -> 5210 bytes .../classpath/tools/rmic/RmicBackend.class | Bin 0 -> 271 bytes .../tools/rmic/SourceGiopRmicCompiler.class | Bin 0 -> 12424 bytes .../tools/rmic/SourceRmicCompiler.class | Bin 0 -> 3890 bytes .../gnu/classpath/tools/rmic/Variables.class | Bin 0 -> 3290 bytes .../classpath/tools/rmic/WrapUnWrapper.class | Bin 0 -> 1244 bytes .../tools/rmid/ActivationSystemImpl.class | Bin 0 -> 5243 bytes .../rmid/ActivationSystemImpl_Stub.class | Bin 0 -> 8775 bytes .../gnu/classpath/tools/rmid/Main$1.class | Bin 0 -> 1084 bytes .../gnu/classpath/tools/rmid/Main$2.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmid/Main$3.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmid/Main$4.class | Bin 0 -> 969 bytes .../gnu/classpath/tools/rmid/Main$5.class | Bin 0 -> 1048 bytes .../gnu/classpath/tools/rmid/Main$6.class | Bin 0 -> 983 bytes .../gnu/classpath/tools/rmid/Main.class | Bin 0 -> 5921 bytes .../gnu/classpath/tools/rmid/Messages.class | Bin 0 -> 1145 bytes ...ersistentBidiHashTable$AdaptedReader.class | Bin 0 -> 1111 bytes ...sistentBidiHashTable$WriteToDiskTask.class | Bin 0 -> 755 bytes .../tools/rmid/PersistentBidiHashTable.class | Bin 0 -> 4185 bytes .../classpath/tools/rmiregistry/Main$1.class | Bin 0 -> 1011 bytes .../classpath/tools/rmiregistry/Main$2.class | Bin 0 -> 1011 bytes .../classpath/tools/rmiregistry/Main$3.class | Bin 0 -> 1011 bytes .../classpath/tools/rmiregistry/Main$4.class | Bin 0 -> 1090 bytes .../classpath/tools/rmiregistry/Main$5.class | Bin 0 -> 965 bytes .../classpath/tools/rmiregistry/Main$6.class | Bin 0 -> 883 bytes .../classpath/tools/rmiregistry/Main.class | Bin 0 -> 5715 bytes .../tools/rmiregistry/Messages.class | Bin 0 -> 1166 bytes .../PersistentHashTable$WriteToDiskTask.class | Bin 0 -> 766 bytes .../rmiregistry/PersistentHashTable.class | Bin 0 -> 4109 bytes .../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 .../classpath/tools/serialver/Messages.class | Bin 0 -> 1160 bytes .../tools/serialver/SerialVer$1.class | Bin 0 -> 1171 bytes .../tools/serialver/SerialVer$2.class | Bin 0 -> 1197 bytes .../tools/serialver/SerialVer$3.class | Bin 0 -> 950 bytes .../classpath/tools/serialver/SerialVer.class | Bin 0 -> 4402 bytes .../classpath/tools/tnameserv/Main$1.class | Bin 0 -> 1136 bytes .../classpath/tools/tnameserv/Main$2.class | Bin 0 -> 1082 bytes .../gnu/classpath/tools/tnameserv/Main.class | Bin 0 -> 2391 bytes .../classpath/tools/tnameserv/Messages.class | Bin 0 -> 1160 bytes libjava/classpath/tools/external/README | 9 + .../classpath/tools/external/asm/LICENSE.txt | 28 + .../org/objectweb/asm/AnnotationVisitor.java | 88 + .../org/objectweb/asm/AnnotationWriter.java | 311 + .../asm/org/objectweb/asm/Attribute.java | 254 + .../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 ++ .../external/asm/org/objectweb/asm/Edge.java | 57 + .../asm/org/objectweb/asm/FieldVisitor.java | 63 + .../asm/org/objectweb/asm/FieldWriter.java | 276 + .../asm/org/objectweb/asm/Handler.java | 70 + .../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 ++ .../asm/org/objectweb/asm/Opcodes.java | 295 + .../external/asm/org/objectweb/asm/Type.java | 760 + .../asm/attrs/StackMapAttribute.java | 378 + .../objectweb/asm/attrs/StackMapFrame.java | 82 + .../asm/attrs/StackMapTableAttribute.java | 927 + .../org/objectweb/asm/attrs/StackMapType.java | 114 + .../asm/org/objectweb/asm/attrs/package.html | 48 + .../objectweb/asm/commons/AdviceAdapter.java | 643 + .../objectweb/asm/commons/EmptyVisitor.java | 211 + .../asm/commons/GeneratorAdapter.java | 1454 ++ .../asm/commons/LocalVariablesSorter.java | 136 + .../asm/org/objectweb/asm/commons/Method.java | 220 + .../asm/commons/SerialVersionUIDAdder.java | 490 + .../asm/commons/StaticInitMerger.java | 99 + .../asm/commons/TableSwitchGenerator.java | 55 + .../org/objectweb/asm/commons/package.html | 33 + .../AnnotationConstantsCollector.java | 150 + .../optimizer/ClassConstantsCollector.java | 212 + .../asm/optimizer/ClassOptimizer.java | 182 + .../org/objectweb/asm/optimizer/Constant.java | 265 + .../objectweb/asm/optimizer/ConstantPool.java | 198 + .../optimizer/FieldConstantsCollector.java | 76 + .../objectweb/asm/optimizer/JarOptimizer.java | 87 + .../optimizer/MethodConstantsCollector.java | 168 + .../asm/optimizer/MethodOptimizer.java | 108 + .../objectweb/asm/optimizer/NameMapping.java | 101 + .../org/objectweb/asm/optimizer/Shrinker.java | 168 + .../objectweb/asm/optimizer/shrink.properties | 225 + .../asm/org/objectweb/asm/package.html | 87 + .../asm/signature/SignatureReader.java | 233 + .../asm/signature/SignatureVisitor.java | 185 + .../asm/signature/SignatureWriter.java | 207 + .../org/objectweb/asm/signature/package.html | 36 + .../objectweb/asm/tree/AbstractInsnNode.java | 143 + .../objectweb/asm/tree/AnnotationNode.java | 187 + .../asm/org/objectweb/asm/tree/ClassNode.java | 283 + .../org/objectweb/asm/tree/FieldInsnNode.java | 97 + .../asm/org/objectweb/asm/tree/FieldNode.java | 123 + .../org/objectweb/asm/tree/IincInsnNode.java | 71 + .../objectweb/asm/tree/InnerClassNode.java | 101 + .../asm/org/objectweb/asm/tree/InsnNode.java | 96 + .../org/objectweb/asm/tree/IntInsnNode.java | 75 + .../org/objectweb/asm/tree/JumpInsnNode.java | 84 + .../asm/org/objectweb/asm/tree/LabelNode.java | 54 + .../org/objectweb/asm/tree/LdcInsnNode.java | 68 + .../objectweb/asm/tree/LineNumberNode.java | 73 + .../objectweb/asm/tree/LocalVariableNode.java | 111 + .../asm/tree/LookupSwitchInsnNode.java | 103 + .../org/objectweb/asm/tree/MemberNode.java | 120 + .../objectweb/asm/tree/MethodInsnNode.java | 98 + .../org/objectweb/asm/tree/MethodNode.java | 439 + .../asm/tree/MultiANewArrayInsnNode.java | 71 + .../asm/tree/TableSwitchInsnNode.java | 102 + .../objectweb/asm/tree/TryCatchBlockNode.java | 93 + .../org/objectweb/asm/tree/TypeInsnNode.java | 78 + .../org/objectweb/asm/tree/VarInsnNode.java | 81 + .../objectweb/asm/tree/analysis/Analyzer.java | 416 + .../asm/tree/analysis/AnalyzerException.java | 56 + .../asm/tree/analysis/BasicInterpreter.java | 335 + .../asm/tree/analysis/BasicValue.java | 105 + .../asm/tree/analysis/BasicVerifier.java | 428 + .../tree/analysis/DataflowInterpreter.java | 174 + .../asm/tree/analysis/DataflowValue.java | 92 + .../objectweb/asm/tree/analysis/Frame.java | 670 + .../objectweb/asm/tree/analysis/IntMap.java | 73 + .../asm/tree/analysis/Interpreter.java | 178 + .../asm/tree/analysis/SimpleVerifier.java | 266 + .../objectweb/asm/tree/analysis/SmallSet.java | 126 + .../asm/tree/analysis/Subroutine.java | 96 + .../objectweb/asm/tree/analysis/Value.java | 45 + .../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 + .../asm/util/ASMifierClassVisitor.java | 607 + .../asm/util/ASMifierFieldVisitor.java | 50 + .../asm/util/ASMifierMethodVisitor.java | 347 + .../objectweb/asm/util/AbstractVisitor.java | 201 + .../asm/util/CheckAnnotationAdapter.java | 125 + .../objectweb/asm/util/CheckClassAdapter.java | 416 + .../objectweb/asm/util/CheckFieldAdapter.java | 75 + .../asm/util/CheckMethodAdapter.java | 942 + .../asm/util/TraceAbstractVisitor.java | 180 + .../asm/util/TraceAnnotationVisitor.java | 272 + .../objectweb/asm/util/TraceClassVisitor.java | 534 + .../objectweb/asm/util/TraceFieldVisitor.java | 78 + .../asm/util/TraceMethodVisitor.java | 486 + .../asm/util/TraceSignatureVisitor.java | 300 + .../asm/util/attrs/ASMStackMapAttribute.java | 223 + .../util/attrs/ASMStackMapTableAttribute.java | 214 + .../objectweb/asm/util/attrs/ASMifiable.java | 53 + .../objectweb/asm/util/attrs/Traceable.java | 52 + .../org/objectweb/asm/util/attrs/package.html | 36 + .../asm/org/objectweb/asm/util/package.html | 40 + .../objectweb/asm/xml/ASMContentHandler.java | 1215 ++ .../asm/org/objectweb/asm/xml/Processor.java | 1048 + .../asm/org/objectweb/asm/xml/SAXAdapter.java | 91 + .../asm/xml/SAXAnnotationAdapter.java | 191 + .../objectweb/asm/xml/SAXClassAdapter.java | 351 + .../org/objectweb/asm/xml/SAXCodeAdapter.java | 310 + .../objectweb/asm/xml/SAXFieldAdapter.java | 77 + .../asm/org/objectweb/asm/xml/asm-xml.dtd | 340 + .../asm/org/objectweb/asm/xml/package.html | 96 + libjava/classpath/tools/gjavah.in | 47 + .../gnu/classpath/tools/HelpPrinter.java | 116 - .../tools/appletviewer/AppletWarning.java | 66 - .../tools/appletviewer/CommonAppletStub.java | 3 +- .../tools/appletviewer/ConsoleDialog.java | 175 - .../classpath/tools/appletviewer/Main.java | 123 +- .../tools/appletviewer/Messages.java | 67 + .../appletviewer/PluginAppletContext.java | 4 +- .../appletviewer/PluginAppletViewer.java | 12 +- .../appletviewer/PluginAppletWindow.java | 4 - .../appletviewer/StandaloneAppletContext.java | 3 +- .../appletviewer/StandaloneAppletViewer.java | 10 +- .../appletviewer/StandaloneAppletWindow.java | 33 +- .../tools/appletviewer/TagParser.java | 56 +- .../ClasspathToolParser.java | 18 +- .../gnu/classpath/tools/common/Messages.java | 67 + .../tools/{rmi => common}/Persistent.java | 2 +- .../gnu/classpath/tools/getopt/Messages.java | 2 +- .../gnu/classpath/tools/getopt/Option.java | 68 +- .../classpath/tools/getopt/OptionGroup.java | 5 +- .../gnu/classpath/tools/getopt/Parser.java | 101 +- .../gnu/classpath/tools/getopt/package.html | 49 + .../tools/gnu/classpath/tools/giop/GRMIC.java | 189 - .../tools/gnu/classpath/tools/giop/GRMIC.txt | 33 - .../gnu/classpath/tools/giop/IorParser.java | 109 - .../gnu/classpath/tools/giop/IorParser.txt | 10 - .../gnu/classpath/tools/giop/NameService.java | 75 - .../tools/giop/NameServicePersistent.java | 186 - .../tools/giop/NameServicePersistent.txt | 28 - .../classpath/tools/giop/NamingService.txt | 21 - .../tools/gnu/classpath/tools/giop/README | 19 - .../tools/giop/grmic/GiopRmicCompiler.java | 593 - .../gnu/classpath/tools/jar/Creator.java | 9 +- .../tools/gnu/classpath/tools/jar/Main.java | 2 +- .../gnu/classpath/tools/jarsigner/Main.java | 2 +- .../classpath/tools/javah/ClassWrapper.java | 346 + .../tools/javah/CniIncludePrinter.java | 80 + .../classpath/tools/javah/CniPrintStream.java | 243 + .../classpath/tools/javah/CniStubPrinter.java | 129 + .../classpath/tools/javah/FieldHelper.java | 99 + .../gnu/classpath/tools/javah/JniHelper.java | 120 + .../tools/javah/JniIncludePrinter.java | 158 + .../classpath/tools/javah/JniPrintStream.java | 115 + .../classpath/tools/javah/JniStubPrinter.java | 106 + .../gnu/classpath/tools/javah/Keywords.java | 85 + .../tools/gnu/classpath/tools/javah/Main.java | 441 + .../classpath/tools/javah/MethodHelper.java | 130 + .../classpath/tools/javah/PackageWrapper.java | 54 + .../tools/javah/PathOptionGroup.java | 135 + .../gnu/classpath/tools/javah/Printer.java | 138 + .../tools/gnu/classpath/tools/javah/Text.java | 60 + .../classpath/tools/keytool/CACertCmd.java | 2 +- .../classpath/tools/keytool/CertReqCmd.java | 2 +- .../gnu/classpath/tools/keytool/Command.java | 4 +- .../classpath/tools/keytool/DeleteCmd.java | 2 +- .../classpath/tools/keytool/ExportCmd.java | 2 +- .../classpath/tools/keytool/GenKeyCmd.java | 3 +- .../tools/keytool/IdentityDBCmd.java | 2 +- .../classpath/tools/keytool/ImportCmd.java | 3 +- .../classpath/tools/keytool/KeyCloneCmd.java | 2 +- .../classpath/tools/keytool/KeyPasswdCmd.java | 2 +- .../gnu/classpath/tools/keytool/ListCmd.java | 2 +- .../gnu/classpath/tools/keytool/Main.java | 10 +- .../classpath/tools/keytool/PrintCertCmd.java | 2 +- .../classpath/tools/keytool/SelfCertCmd.java | 2 +- .../tools/keytool/StorePasswdCmd.java | 2 +- .../tools/native2ascii/Native2ASCII.java | 2 +- .../tools/gnu/classpath/tools/orbd/Main.java | 228 + .../gnu/classpath/tools/orbd/Messages.java | 67 + .../PersistentContext.java | 2 +- .../PersistentContextMap.java | 2 +- .../nameservice => orbd}/PersistentMap.java | 2 +- .../gnu/classpath/tools/rmi/REGISTRY.java | 165 - .../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 - .../tools/rmi/rmic/RmicCompiler.java | 171 - .../{ => rmic}/AbstractMethodGenerator.java | 2 +- .../tools/rmic/ClassRmicCompiler.java | 1824 ++ .../grmic => rmic}/CompilationError.java | 2 +- .../tools/{giop/grmic => rmic}/Generator.java | 2 +- .../tools/{giop/grmic => rmic}/GiopIo.java | 6 +- .../{giop/grmic => rmic}/HashFinder.java | 2 +- .../tools/gnu/classpath/tools/rmic/Main.java | 282 + .../gnu/classpath/tools/rmic/Messages.java | 67 + .../{giop/grmic => rmic}/MethodGenerator.java | 8 +- .../classpath/tools/rmic/RMICException.java | 54 + .../{rmi => }/rmic/RmiMethodGenerator.java | 8 +- .../gnu/classpath/tools/rmic/RmicBackend.java | 31 + .../tools/rmic/SourceGiopRmicCompiler.java | 694 + .../tools/rmic/SourceRmicCompiler.java | 179 + .../gnu/classpath/tools/rmic/Variables.java | 137 + .../tools/{rmi => }/rmic/WrapUnWrapper.java | 2 +- .../grmic => rmic}/templates/ImplTie.jav | 0 .../{giop/grmic => rmic}/templates/Stub.jav | 0 .../grmic => rmic}/templates/StubMethod.jav | 0 .../templates/StubMethodVoid.jav | 0 .../{rmi => }/rmic/templates/Stub_12.jav | 0 .../rmic/templates/Stub_12Method.jav | 0 .../rmic/templates/Stub_12MethodVoid.jav | 0 .../{giop/grmic => rmic}/templates/Tie.jav | 0 .../grmic => rmic}/templates/TieMethod.jav | 0 .../templates/TieMethodVoid.jav | 0 .../{rmi => }/rmid/ActivationSystemImpl.java | 5 +- .../rmid/ActivationSystemImpl_Stub.java | 2 +- .../tools/gnu/classpath/tools/rmid/Main.java | 259 + .../gnu/classpath/tools/rmid/Messages.java | 67 + .../PersistentBidiHashTable.java | 5 +- .../gnu/classpath/tools/rmiregistry/Main.java | 232 + .../classpath/tools/rmiregistry/Messages.java | 67 + .../PersistentHashTable.java | 18 +- .../RegistryImpl.java | 13 +- .../RegistryImpl_Skel.java | 2 +- .../RegistryImpl_Stub.java | 2 +- .../classpath/tools/serialver/SerialVer.java | 2 +- .../gnu/classpath/tools/tnameserv/Main.java | 117 + .../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 + .../gnu/classpath/VMStackWalker.java | 19 +- .../gnu/classpath/jdwp/VMVirtualMachine.java | 4 +- .../lang/management/VMMemoryMXBeanImpl.java | 4 +- .../gnu/java/net/VMPlainSocketImpl.java | 664 +- .../vm/reference/gnu/java/nio/VMChannel.java | 657 +- .../vm/reference/gnu/java/nio/VMPipe.java | 24 +- .../vm/reference/java/io/VMFile.java | 105 + .../java/io/VMObjectInputStream.java | 39 - .../vm/reference/java/lang/VMClassLoader.java | 3 +- .../java/lang/reflect/Constructor.java | 24 +- .../vm/reference/java/lang/reflect/Field.java | 7 +- .../reference/java/lang/reflect/Method.java | 14 +- .../vm/reference/java/net/VMInetAddress.java | 10 + .../java/net/VMNetworkInterface.java | 74 +- .../java/nio/channels/VMChannels.java | 2 +- .../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 + .../gnu/CORBA/CDR/LittleEndianInputStream.h | 64 + .../gnu/CORBA/CDR/LittleEndianOutputStream.h | 45 + .../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 + .../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 + .../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 + .../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 + .../Interceptor/ClientRequestInterceptors.h | 56 + .../CORBA/Interceptor/ForwardRequestHolder.h | 56 + .../gnu/CORBA/Interceptor/IORInterceptors.h | 56 + libjava/gnu/CORBA/Interceptor/Registrator.h | 104 + .../Interceptor/ServerRequestInterceptors.h | 56 + .../CORBA/Interceptor/gnuClientRequestInfo.h | 86 + libjava/gnu/CORBA/Interceptor/gnuIcCurrent.h | 67 + libjava/gnu/CORBA/Interceptor/gnuIorInfo.h | 73 + .../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 + .../NamingService/Binding_iterator_impl.h | 54 + libjava/gnu/CORBA/NamingService/Ext.h | 75 + .../NamingService/NameComponentComparator.h | 35 + libjava/gnu/CORBA/NamingService/NameParser.h | 75 + .../gnu/CORBA/NamingService/NameTransformer.h | 58 + .../gnu/CORBA/NamingService/NameValidator.h | 45 + libjava/gnu/CORBA/NamingService/NamingMap.h | 57 + .../NamingService/NamingServiceTransient$1.h | 38 + .../NamingService/NamingServiceTransient.h | 37 + .../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 + .../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 + .../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 + .../CORBA/Poa/gnuRequestProcessingPolicy.h | 46 + libjava/gnu/CORBA/Poa/gnuServantObject.h | 96 + .../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 + .../gnu/CORBA/typecodes/PrimitiveTypeCode.h | 68 + .../CORBA/typecodes/RecordTypeCode$Field.h | 47 + libjava/gnu/CORBA/typecodes/RecordTypeCode.h | 72 + .../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 + .../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 + .../gnu/classpath/NotImplementedException.h | 30 + libjava/gnu/classpath/Pointer.h | 29 + libjava/gnu/classpath/Pointer32.h | 32 + libjava/gnu/classpath/Pointer64.h | 32 + .../ServiceFactory$ServiceIterator.h | 55 + libjava/gnu/classpath/ServiceFactory.h | 36 + .../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 + .../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 + .../jdwp/JdwpConstants$ClassStatus.h | 36 + .../JdwpConstants$CommandSet$ArrayReference.h | 36 + .../jdwp/JdwpConstants$CommandSet$ArrayType.h | 34 + ...onstants$CommandSet$ClassLoaderReference.h | 34 + ...onstants$CommandSet$ClassObjectReference.h | 34 + .../jdwp/JdwpConstants$CommandSet$ClassType.h | 37 + .../jdwp/JdwpConstants$CommandSet$Event.h | 34 + .../JdwpConstants$CommandSet$EventRequest.h | 36 + .../jdwp/JdwpConstants$CommandSet$Field.h | 33 + .../JdwpConstants$CommandSet$InterfaceType.h | 33 + .../jdwp/JdwpConstants$CommandSet$Method.h | 38 + ...JdwpConstants$CommandSet$ObjectReference.h | 41 + .../JdwpConstants$CommandSet$ReferenceType.h | 48 + .../JdwpConstants$CommandSet$StackFrame.h | 37 + ...JdwpConstants$CommandSet$StringReference.h | 34 + ...onstants$CommandSet$ThreadGroupReference.h | 36 + ...JdwpConstants$CommandSet$ThreadReference.h | 45 + .../JdwpConstants$CommandSet$VirtualMachine.h | 53 + .../classpath/jdwp/JdwpConstants$CommandSet.h | 33 + .../gnu/classpath/jdwp/JdwpConstants$Error.h | 88 + .../classpath/jdwp/JdwpConstants$EventKind.h | 52 + .../jdwp/JdwpConstants$InvokeOptions.h | 34 + .../classpath/jdwp/JdwpConstants$ModKind.h | 43 + .../classpath/jdwp/JdwpConstants$StepDepth.h | 35 + .../classpath/jdwp/JdwpConstants$StepSize.h | 34 + .../jdwp/JdwpConstants$SuspendPolicy.h | 35 + .../jdwp/JdwpConstants$SuspendStatus.h | 33 + .../gnu/classpath/jdwp/JdwpConstants$Tag.h | 48 + .../jdwp/JdwpConstants$ThreadStatus.h | 37 + .../classpath/jdwp/JdwpConstants$TypeTag.h | 35 + .../classpath/jdwp/JdwpConstants$Version.h | 34 + libjava/gnu/classpath/jdwp/JdwpConstants.h | 32 + libjava/gnu/classpath/jdwp/VMFrame.h | 47 + .../classpath/jdwp/VMIdManager$IdFactory.h | 46 + .../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 + .../classpath/jdwp/event/BreakpointEvent.h | 47 + .../classpath/jdwp/event/ClassPrepareEvent.h | 47 + .../classpath/jdwp/event/ClassUnloadEvent.h | 41 + libjava/gnu/classpath/jdwp/event/Event.h | 56 + .../gnu/classpath/jdwp/event/EventManager.h | 50 + .../gnu/classpath/jdwp/event/EventRequest.h | 75 + .../gnu/classpath/jdwp/event/ExceptionEvent.h | 51 + .../classpath/jdwp/event/MethodEntryEvent.h | 47 + .../classpath/jdwp/event/MethodExitEvent.h | 47 + .../classpath/jdwp/event/SingleStepEvent.h | 47 + .../gnu/classpath/jdwp/event/ThreadEndEvent.h | 41 + .../classpath/jdwp/event/ThreadStartEvent.h | 41 + .../gnu/classpath/jdwp/event/VmDeathEvent.h | 39 + .../gnu/classpath/jdwp/event/VmInitEvent.h | 41 + .../jdwp/event/filters/ClassExcludeFilter.h | 40 + .../jdwp/event/filters/ClassMatchFilter.h | 44 + .../jdwp/event/filters/ClassOnlyFilter.h | 48 + .../jdwp/event/filters/ConditionalFilter.h | 40 + .../jdwp/event/filters/CountFilter.h | 44 + .../jdwp/event/filters/ExceptionOnlyFilter.h | 50 + .../jdwp/event/filters/FieldOnlyFilter.h | 50 + .../jdwp/event/filters/IEventFilter.h | 39 + .../jdwp/event/filters/InstanceOnlyFilter.h | 48 + .../jdwp/event/filters/LocationOnlyFilter.h | 48 + .../classpath/jdwp/event/filters/StepFilter.h | 52 + .../jdwp/event/filters/ThreadOnlyFilter.h | 48 + .../jdwp/exception/InvalidClassException.h | 36 + .../exception/InvalidClassLoaderException.h | 36 + .../jdwp/exception/InvalidCountException.h | 36 + .../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 + .../exception/InvalidThreadGroupException.h | 36 + .../classpath/jdwp/exception/JdwpException.h | 40 + .../exception/JdwpIllegalArgumentException.h | 35 + .../exception/JdwpInternalErrorException.h | 36 + .../jdwp/exception/NativeMethodException.h | 36 + .../jdwp/exception/NotImplementedException.h | 35 + .../jdwp/exception/VmDeadException.h | 35 + libjava/gnu/classpath/jdwp/id/ArrayId.h | 35 + .../classpath/jdwp/id/ArrayReferenceTypeId.h | 35 + libjava/gnu/classpath/jdwp/id/ClassLoaderId.h | 37 + libjava/gnu/classpath/jdwp/id/ClassObjectId.h | 37 + .../classpath/jdwp/id/ClassReferenceTypeId.h | 35 + .../jdwp/id/InterfaceReferenceTypeId.h | 35 + libjava/gnu/classpath/jdwp/id/JdwpId.h | 50 + libjava/gnu/classpath/jdwp/id/ObjectId.h | 44 + .../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 + .../jdwp/processor/ArrayTypeCommandSet.h | 44 + .../ClassLoaderReferenceCommandSet.h | 44 + .../ClassObjectReferenceCommandSet.h | 44 + .../jdwp/processor/ClassTypeCommandSet.h | 54 + .../gnu/classpath/jdwp/processor/CommandSet.h | 47 + .../jdwp/processor/EventRequestCommandSet.h | 48 + .../jdwp/processor/FieldCommandSet.h | 43 + .../jdwp/processor/InterfaceTypeCommandSet.h | 43 + .../jdwp/processor/MethodCommandSet.h | 50 + .../processor/ObjectReferenceCommandSet.h | 53 + .../jdwp/processor/PacketProcessor.h | 52 + .../jdwp/processor/ReferenceTypeCommandSet.h | 60 + .../jdwp/processor/StackFrameCommandSet.h | 49 + .../processor/StringReferenceCommandSet.h | 46 + .../ThreadGroupReferenceCommandSet.h | 48 + .../processor/ThreadReferenceCommandSet.h | 57 + .../jdwp/processor/VirtualMachineCommandSet.h | 66 + .../gnu/classpath/jdwp/transport/ITransport.h | 39 + .../jdwp/transport/JdwpCommandPacket.h | 51 + .../classpath/jdwp/transport/JdwpConnection.h | 66 + .../gnu/classpath/jdwp/transport/JdwpPacket.h | 61 + .../jdwp/transport/JdwpReplyPacket.h | 50 + .../jdwp/transport/SocketTransport.h | 57 + .../jdwp/transport/TransportException.h | 36 + .../TransportFactory$TransportMethod.h | 39 + .../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 + .../gnu/classpath/jdwp/util/MethodResult.h | 43 + libjava/gnu/classpath/jdwp/util/Signature.h | 44 + libjava/gnu/classpath/jdwp/util/Value.h | 50 + .../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 + .../gnu/gcj/convert/BytesToCharsetAdaptor.h | 54 + libjava/gnu/gcj/convert/BytesToUnicode.h | 50 + .../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 + .../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 + .../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 + .../gnu/gcj/runtime/NameFinder$Addr2Line.h | 39 + libjava/gnu/gcj/runtime/NameFinder.h | 50 + .../runtime/PersistentByteMap$AccessMode.h | 49 + .../runtime/PersistentByteMap$ByteWrapper.h | 42 + .../runtime/PersistentByteMap$HashIterator.h | 44 + .../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 + ...leComponentList$VisibleComponentIterator.h | 48 + .../awt/AWTUtilities$VisibleComponentList.h | 47 + libjava/gnu/java/awt/AWTUtilities.h | 71 + libjava/gnu/java/awt/BitMaskExtent.h | 36 + .../awt/BitwiseXORComposite$GeneralContext.h | 52 + .../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 + .../gnu/java/awt/color/ClutProfileConverter.h | 57 + libjava/gnu/java/awt/color/ColorLookUpTable.h | 73 + .../gnu/java/awt/color/ColorSpaceConverter.h | 40 + .../gnu/java/awt/color/GrayProfileConverter.h | 60 + .../gnu/java/awt/color/GrayScaleConverter.h | 46 + .../gnu/java/awt/color/LinearRGBConverter.h | 41 + libjava/gnu/java/awt/color/ProfileHeader.h | 75 + libjava/gnu/java/awt/color/PyccConverter.h | 41 + .../gnu/java/awt/color/RgbProfileConverter.h | 64 + libjava/gnu/java/awt/color/SrgbConverter.h | 43 + libjava/gnu/java/awt/color/TagEntry.h | 53 + .../java/awt/color/ToneReproductionCurve.h | 47 + .../awt/dnd/GtkMouseDragGestureRecognizer.h | 66 + .../dnd/peer/gtk/GtkDragSourceContextPeer.h | 86 + .../dnd/peer/gtk/GtkDropTargetContextPeer.h | 69 + .../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 + .../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 + .../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 + .../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 + .../awt/font/opentype/CharGlyphMap$Dummy.h | 42 + .../awt/font/opentype/CharGlyphMap$Type0.h | 66 + .../awt/font/opentype/CharGlyphMap$Type12.h | 53 + .../awt/font/opentype/CharGlyphMap$Type4.h | 60 + .../gnu/java/awt/font/opentype/CharGlyphMap.h | 52 + .../gnu/java/awt/font/opentype/GlyphNamer.h | 69 + .../font/opentype/MacResourceFork$Resource.h | 58 + .../java/awt/font/opentype/MacResourceFork.h | 55 + .../gnu/java/awt/font/opentype/NameDecoder.h | 85 + .../gnu/java/awt/font/opentype/OpenTypeFont.h | 122 + .../awt/font/opentype/OpenTypeFontFactory.h | 49 + libjava/gnu/java/awt/font/opentype/Scaler.h | 59 + .../java/awt/font/opentype/truetype/Fixed.h | 54 + .../awt/font/opentype/truetype/GlyphLoader.h | 91 + .../opentype/truetype/GlyphLocator$FourByte.h | 54 + .../opentype/truetype/GlyphLocator$TwoByte.h | 54 + .../awt/font/opentype/truetype/GlyphLocator.h | 54 + .../font/opentype/truetype/GlyphMeasurer.h | 66 + .../font/opentype/truetype/TrueTypeScaler.h | 75 + .../font/opentype/truetype/VirtualMachine.h | 153 + .../java/awt/font/opentype/truetype/Zone.h | 88 + .../font/opentype/truetype/ZonePathIterator.h | 67 + .../ImageDecoder$DataInputStreamWrapper.h | 40 + libjava/gnu/java/awt/image/ImageDecoder.h | 71 + libjava/gnu/java/awt/image/XBMDecoder.h | 61 + .../gnu/java/awt/java2d/AbstractGraphics2D.h | 214 + .../java/awt/java2d/AlphaCompositeContext.h | 57 + libjava/gnu/java/awt/java2d/CubicSegment.h | 56 + .../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 + .../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 + .../gnu/java/awt/java2d/TexturePaintContext.h | 64 + libjava/gnu/java/awt/peer/ClasspathFontPeer.h | 123 + .../gnu/java/awt/peer/EmbeddedWindowPeer.h | 146 + libjava/gnu/java/awt/peer/GLightweightPeer.h | 133 + .../awt/peer/NativeEventLoopRunningEvent.h | 39 + .../gnu/java/awt/peer/gtk/AsyncImage$Loader.h | 53 + .../awt/peer/gtk/AsyncImage$NullImageSource.h | 60 + libjava/gnu/java/awt/peer/gtk/AsyncImage.h | 71 + .../java/awt/peer/gtk/BufferedImageGraphics.h | 104 + .../gnu/java/awt/peer/gtk/CairoGraphics2D.h | 279 + .../peer/gtk/CairoSurface$CairoDataBuffer.h | 44 + libjava/gnu/java/awt/peer/gtk/CairoSurface.h | 104 + .../java/awt/peer/gtk/CairoSurfaceGraphics.h | 93 + .../gnu/java/awt/peer/gtk/ComponentGraphics.h | 128 + .../java/awt/peer/gtk/ComponentGraphicsCopy.h | 78 + .../java/awt/peer/gtk/FreetypeGlyphVector.h | 110 + libjava/gnu/java/awt/peer/gtk/GThreadMutex.h | 41 + .../awt/peer/gtk/GThreadNativeMethodRunner.h | 58 + .../gnu/java/awt/peer/gtk/GdkFontMetrics.h | 74 + .../peer/gtk/GdkFontPeer$GdkFontLineMetrics.h | 57 + .../awt/peer/gtk/GdkFontPeer$GdkFontMetrics.h | 61 + libjava/gnu/java/awt/peer/gtk/GdkFontPeer.h | 142 + .../awt/peer/gtk/GdkGraphicsConfiguration.h | 78 + .../awt/peer/gtk/GdkGraphicsEnvironment.h | 82 + .../gtk/GdkPixbufDecoder$GdkPixbufReader.h | 89 + .../gtk/GdkPixbufDecoder$GdkPixbufReaderSpi.h | 48 + .../gtk/GdkPixbufDecoder$GdkPixbufWriter.h | 70 + .../gtk/GdkPixbufDecoder$GdkPixbufWriterSpi.h | 49 + .../gtk/GdkPixbufDecoder$ImageFormatSpec.h | 44 + .../gnu/java/awt/peer/gtk/GdkPixbufDecoder.h | 108 + libjava/gnu/java/awt/peer/gtk/GdkRobotPeer.h | 69 + .../GdkScreenGraphicsDevice$X11DisplayMode.h | 44 + .../awt/peer/gtk/GdkScreenGraphicsDevice.h | 97 + libjava/gnu/java/awt/peer/gtk/GtkButtonPeer.h | 68 + libjava/gnu/java/awt/peer/gtk/GtkCanvasPeer.h | 49 + .../awt/peer/gtk/GtkCheckboxMenuItemPeer.h | 51 + .../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 + .../java/awt/peer/gtk/GtkClipboardNotifier.h | 47 + .../gtk/GtkComponentPeer$RepaintTimerTask.h | 57 + .../gnu/java/awt/peer/gtk/GtkComponentPeer.h | 198 + .../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 + .../java/awt/peer/gtk/GtkEmbeddedWindowPeer.h | 44 + .../gnu/java/awt/peer/gtk/GtkFileDialogPeer.h | 80 + libjava/gnu/java/awt/peer/gtk/GtkFramePeer.h | 90 + .../gnu/java/awt/peer/gtk/GtkGenericPeer.h | 64 + libjava/gnu/java/awt/peer/gtk/GtkImage.h | 113 + .../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 + .../gnu/java/awt/peer/gtk/GtkMenuBarPeer.h | 57 + .../java/awt/peer/gtk/GtkMenuComponentPeer.h | 52 + .../gnu/java/awt/peer/gtk/GtkMenuItemPeer.h | 57 + libjava/gnu/java/awt/peer/gtk/GtkMenuPeer.h | 66 + .../gnu/java/awt/peer/gtk/GtkMouseInfoPeer.h | 52 + libjava/gnu/java/awt/peer/gtk/GtkPanelPeer.h | 52 + .../gnu/java/awt/peer/gtk/GtkPopupMenuPeer.h | 54 + .../gnu/java/awt/peer/gtk/GtkScrollPanePeer.h | 62 + .../gnu/java/awt/peer/gtk/GtkScrollbarPeer.h | 57 + libjava/gnu/java/awt/peer/gtk/GtkSelection.h | 94 + .../gnu/java/awt/peer/gtk/GtkTextAreaPeer.h | 89 + .../gnu/java/awt/peer/gtk/GtkTextFieldPeer.h | 80 + libjava/gnu/java/awt/peer/gtk/GtkToolkit$1.h | 40 + .../java/awt/peer/gtk/GtkToolkit$LRUCache.h | 43 + libjava/gnu/java/awt/peer/gtk/GtkToolkit.h | 235 + .../gnu/java/awt/peer/gtk/GtkVolatileImage.h | 98 + libjava/gnu/java/awt/peer/gtk/GtkWindowPeer.h | 125 + .../java/awt/peer/gtk/VolatileImageGraphics.h | 90 + .../headless/HeadlessGraphicsEnvironment.h | 59 + .../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 + .../java/awt/peer/qt/QtComponentGraphics.h | 56 + .../qt/QtComponentPeer$RepaintTimerTask.h | 50 + .../gnu/java/awt/peer/qt/QtComponentPeer.h | 189 + .../gnu/java/awt/peer/qt/QtContainerPeer.h | 61 + libjava/gnu/java/awt/peer/qt/QtDialogPeer.h | 56 + .../java/awt/peer/qt/QtEmbeddedWindowPeer.h | 51 + .../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 + .../java/awt/peer/qt/QtGraphicsEnvironment.h | 65 + libjava/gnu/java/awt/peer/qt/QtImage.h | 128 + .../gnu/java/awt/peer/qt/QtImageConsumer.h | 70 + .../java/awt/peer/qt/QtImageDirectGraphics.h | 76 + .../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 + .../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 + .../gnu/java/awt/peer/qt/QtPopupMenuPeer.h | 53 + .../qt/QtRepaintThread$RepaintComponent.h | 47 + .../gnu/java/awt/peer/qt/QtRepaintThread.h | 47 + libjava/gnu/java/awt/peer/qt/QtScreenDevice.h | 76 + .../awt/peer/qt/QtScreenDeviceConfiguration.h | 76 + .../gnu/java/awt/peer/qt/QtScrollPanePeer.h | 61 + .../gnu/java/awt/peer/qt/QtScrollbarPeer.h | 56 + libjava/gnu/java/awt/peer/qt/QtTextAreaPeer.h | 79 + .../gnu/java/awt/peer/qt/QtTextFieldPeer.h | 79 + libjava/gnu/java/awt/peer/qt/QtToolkit.h | 203 + .../gnu/java/awt/peer/qt/QtVolatileImage$1.h | 44 + .../gnu/java/awt/peer/qt/QtVolatileImage.h | 117 + libjava/gnu/java/awt/peer/qt/QtWindowPeer.h | 55 + .../peer/swing/SwingButtonPeer$SwingButton.h | 76 + .../SwingButtonPeer$SwingButtonListener.h | 54 + .../gnu/java/awt/peer/swing/SwingButtonPeer.h | 46 + .../gnu/java/awt/peer/swing/SwingCanvasPeer.h | 45 + .../gnu/java/awt/peer/swing/SwingComponent.h | 59 + .../java/awt/peer/swing/SwingComponentPeer.h | 146 + .../java/awt/peer/swing/SwingContainerPeer.h | 83 + .../gnu/java/awt/peer/swing/SwingFramePeer.h | 77 + .../peer/swing/SwingLabelPeer$SwingLabel.h | 76 + .../gnu/java/awt/peer/swing/SwingLabelPeer.h | 47 + .../awt/peer/swing/SwingListPeer$SwingList.h | 76 + .../gnu/java/awt/peer/swing/SwingListPeer.h | 79 + .../swing/SwingMenuBarPeer$SwingMenuBar.h | 59 + .../java/awt/peer/swing/SwingMenuBarPeer.h | 70 + .../SwingMenuItemPeer$SwingMenuItemListener.h | 54 + .../java/awt/peer/swing/SwingMenuItemPeer.h | 63 + .../awt/peer/swing/SwingMenuPeer$SwingMenu.h | 58 + .../gnu/java/awt/peer/swing/SwingMenuPeer.h | 72 + .../gnu/java/awt/peer/swing/SwingPanelPeer.h | 45 + .../swing/SwingTextAreaPeer$SwingTextArea.h | 76 + .../java/awt/peer/swing/SwingTextAreaPeer.h | 81 + .../swing/SwingTextFieldPeer$SwingTextField.h | 76 + .../java/awt/peer/swing/SwingTextFieldPeer.h | 69 + .../gnu/java/awt/peer/swing/SwingToolkit.h | 73 + .../gnu/java/awt/peer/swing/SwingWindowPeer.h | 49 + .../gnu/java/awt/print/JavaPrinterGraphics.h | 124 + libjava/gnu/java/awt/print/JavaPrinterJob.h | 95 + .../gnu/java/awt/print/PostScriptGraphics2D.h | 211 + libjava/gnu/java/awt/print/SpooledDocument.h | 54 + libjava/gnu/java/beans/BeanInfoEmbryo.h | 73 + .../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 + .../gnu/java/beans/IntrospectionIncubator.h | 71 + .../gnu/java/beans/decoder/AbstractContext.h | 52 + .../decoder/AbstractCreatableObjectContext.h | 47 + .../beans/decoder/AbstractElementHandler.h | 82 + .../beans/decoder/AbstractObjectContext.h | 44 + libjava/gnu/java/beans/decoder/ArrayContext.h | 47 + libjava/gnu/java/beans/decoder/ArrayHandler.h | 59 + .../java/beans/decoder/AssemblyException.h | 36 + .../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 + .../java/beans/decoder/ConstructorContext.h | 43 + libjava/gnu/java/beans/decoder/Context.h | 45 + .../gnu/java/beans/decoder/DecoderContext.h | 55 + .../gnu/java/beans/decoder/DoubleHandler.h | 39 + libjava/gnu/java/beans/decoder/DummyContext.h | 46 + libjava/gnu/java/beans/decoder/DummyHandler.h | 72 + .../gnu/java/beans/decoder/ElementHandler.h | 66 + libjava/gnu/java/beans/decoder/FloatHandler.h | 39 + .../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 + .../gnu/java/beans/decoder/MethodContext.h | 44 + libjava/gnu/java/beans/decoder/MethodFinder.h | 44 + libjava/gnu/java/beans/decoder/NullHandler.h | 39 + .../gnu/java/beans/decoder/ObjectContext.h | 43 + .../gnu/java/beans/decoder/ObjectHandler.h | 57 + .../PersistenceParser$ArrayHandlerCreator.h | 43 + .../PersistenceParser$BooleanHandlerCreator.h | 43 + .../PersistenceParser$ByteHandlerCreator.h | 43 + .../PersistenceParser$CharHandlerCreator.h | 43 + .../PersistenceParser$ClassHandlerCreator.h | 43 + .../beans/decoder/PersistenceParser$Creator.h | 37 + .../PersistenceParser$DoubleHandlerCreator.h | 43 + .../PersistenceParser$FloatHandlerCreator.h | 43 + .../PersistenceParser$IntHandlerCreator.h | 43 + .../PersistenceParser$JavaHandlerCreator.h | 43 + .../PersistenceParser$LongHandlerCreator.h | 43 + .../PersistenceParser$NullHandlerCreator.h | 43 + .../PersistenceParser$ObjectHandlerCreator.h | 43 + .../PersistenceParser$ShortHandlerCreator.h | 43 + .../PersistenceParser$StringHandlerCreator.h | 43 + .../PersistenceParser$VoidHandlerCreator.h | 43 + .../java/beans/decoder/PersistenceParser.h | 84 + .../gnu/java/beans/decoder/PropertyContext.h | 47 + libjava/gnu/java/beans/decoder/ShortHandler.h | 39 + .../gnu/java/beans/decoder/SimpleHandler.h | 64 + .../java/beans/decoder/StaticMethodContext.h | 45 + .../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 + .../java/beans/editors/NativeBooleanEditor.h | 42 + .../gnu/java/beans/editors/NativeByteEditor.h | 37 + .../java/beans/editors/NativeDoubleEditor.h | 37 + .../java/beans/editors/NativeFloatEditor.h | 37 + .../gnu/java/beans/editors/NativeIntEditor.h | 37 + .../gnu/java/beans/editors/NativeLongEditor.h | 37 + .../java/beans/editors/NativeShortEditor.h | 37 + libjava/gnu/java/beans/editors/StringEditor.h | 37 + .../beans/encoder/ArrayPersistenceDelegate.h | 51 + .../beans/encoder/ClassPersistenceDelegate.h | 46 + .../encoder/CollectionPersistenceDelegate.h | 47 + libjava/gnu/java/beans/encoder/Context.h | 43 + .../java/beans/encoder/GenericScannerState.h | 66 + .../java/beans/encoder/IgnoringScannerState.h | 53 + .../beans/encoder/MapPersistenceDelegate.h | 47 + libjava/gnu/java/beans/encoder/ObjectId.h | 46 + .../encoder/PrimitivePersistenceDelegate.h | 47 + .../beans/encoder/ReportingScannerState.h | 53 + .../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 + .../encoder/elements/ArrayInstantiation.h | 44 + .../java/beans/encoder/elements/Array_Get.h | 43 + .../java/beans/encoder/elements/Array_Set.h | 43 + .../beans/encoder/elements/ClassResolution.h | 44 + .../gnu/java/beans/encoder/elements/Element.h | 55 + .../java/beans/encoder/elements/List_Get.h | 40 + .../java/beans/encoder/elements/List_Set.h | 40 + .../beans/encoder/elements/MethodInvocation.h | 43 + .../java/beans/encoder/elements/NullObject.h | 41 + .../encoder/elements/ObjectInstantiation.h | 43 + .../beans/encoder/elements/ObjectReference.h | 44 + .../encoder/elements/PrimitiveInstantiation.h | 45 + .../encoder/elements/StaticFieldAccess.h | 44 + .../encoder/elements/StaticMethodInvocation.h | 44 + .../beans/encoder/elements/StringReference.h | 44 + libjava/gnu/java/io/ASN1ParsingException.h | 33 + libjava/gnu/java/io/Base64InputStream.h | 50 + .../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 + .../lang/management/ClassLoadingMXBeanImpl.h | 40 + .../lang/management/CompilationMXBeanImpl.h | 42 + .../management/GarbageCollectorMXBeanImpl.h | 37 + .../MemoryMXBeanImpl$ListenerData.h | 55 + .../java/lang/management/MemoryMXBeanImpl.h | 70 + .../lang/management/MemoryManagerMXBeanImpl.h | 46 + .../lang/management/MemoryPoolMXBeanImpl.h | 60 + .../management/OperatingSystemMXBeanImpl.h | 39 + .../java/lang/management/RuntimeMXBeanImpl.h | 58 + .../java/lang/management/ThreadMXBeanImpl.h | 67 + .../management/VMClassLoadingMXBeanImpl.h | 40 + .../management/VMClassLoadingMXBeanImpl.java | 19 +- .../lang/management/VMCompilationMXBeanImpl.h | 37 + .../management/VMCompilationMXBeanImpl.java | 5 +- .../management/VMGarbageCollectorMXBeanImpl.h | 38 + .../VMGarbageCollectorMXBeanImpl.java | 10 +- .../java/lang/management/VMMemoryMXBeanImpl.h | 41 + .../lang/management/VMMemoryMXBeanImpl.java | 19 +- .../management/VMMemoryManagerMXBeanImpl.h | 40 + .../management/VMMemoryManagerMXBeanImpl.java | 5 +- .../lang/management/VMMemoryPoolMXBeanImpl.h | 51 + .../management/VMMemoryPoolMXBeanImpl.java | 64 +- .../lang/management/VMRuntimeMXBeanImpl.h | 43 + .../lang/management/VMRuntimeMXBeanImpl.java | 32 +- .../java/lang/management/VMThreadMXBeanImpl.h | 53 + .../lang/management/VMThreadMXBeanImpl.java | 44 +- .../management/natVMClassLoadingMXBeanImpl.cc | 49 + .../management/natVMCompilationMXBeanImpl.cc | 11 + .../natVMGarbageCollectorMXBeanImpl.cc | 18 + .../lang/management/natVMMemoryMXBeanImpl.cc | 47 + .../natVMMemoryManagerMXBeanImpl.cc | 11 + .../management/natVMMemoryPoolMXBeanImpl.cc | 111 + .../lang/management/natVMRuntimeMXBeanImpl.cc | 39 + .../lang/management/natVMThreadMXBeanImpl.cc | 67 + libjava/gnu/java/lang/natMainThread.cc | 4 + .../java/lang/reflect/ClassSignatureParser.h | 45 + .../java/lang/reflect/FieldSignatureParser.h | 39 + .../java/lang/reflect/GenericArrayTypeImpl.h | 44 + .../lang/reflect/GenericSignatureParser.h | 62 + .../java/lang/reflect/MethodSignatureParser.h | 52 + .../java/lang/reflect/ParameterizedTypeImpl.h | 52 + libjava/gnu/java/lang/reflect/TypeImpl.h | 41 + libjava/gnu/java/lang/reflect/TypeSignature.h | 44 + .../gnu/java/lang/reflect/TypeVariableImpl.h | 50 + .../lang/reflect/UnresolvedTypeVariable.h | 41 + .../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 + .../gnu/java/locale/LocaleInformation_af_ZA.h | 53 + .../gnu/java/locale/LocaleInformation_ar_AE.h | 53 + .../gnu/java/locale/LocaleInformation_ar_BH.h | 53 + .../gnu/java/locale/LocaleInformation_ar_DZ.h | 53 + .../gnu/java/locale/LocaleInformation_ar_EG.h | 53 + .../gnu/java/locale/LocaleInformation_ar_IN.h | 53 + .../gnu/java/locale/LocaleInformation_ar_IQ.h | 53 + .../gnu/java/locale/LocaleInformation_ar_JO.h | 53 + .../gnu/java/locale/LocaleInformation_ar_KW.h | 53 + .../gnu/java/locale/LocaleInformation_ar_LB.h | 53 + .../gnu/java/locale/LocaleInformation_ar_LY.h | 53 + .../gnu/java/locale/LocaleInformation_ar_MA.h | 53 + .../gnu/java/locale/LocaleInformation_ar_OM.h | 53 + .../gnu/java/locale/LocaleInformation_ar_QA.h | 53 + .../gnu/java/locale/LocaleInformation_ar_SD.h | 53 + .../gnu/java/locale/LocaleInformation_ar_SY.h | 53 + .../gnu/java/locale/LocaleInformation_ar_TN.h | 53 + .../gnu/java/locale/LocaleInformation_ar_YE.h | 53 + .../gnu/java/locale/LocaleInformation_be_BY.h | 53 + .../gnu/java/locale/LocaleInformation_bn_IN.h | 53 + .../gnu/java/locale/LocaleInformation_br_FR.h | 53 + .../gnu/java/locale/LocaleInformation_bs_BA.h | 53 + .../gnu/java/locale/LocaleInformation_ca_ES.h | 53 + .../gnu/java/locale/LocaleInformation_cs_CZ.h | 53 + .../gnu/java/locale/LocaleInformation_cy_GB.h | 53 + .../gnu/java/locale/LocaleInformation_da_DK.h | 53 + .../gnu/java/locale/LocaleInformation_de.h | 59 + .../gnu/java/locale/LocaleInformation_de_AT.h | 53 + .../gnu/java/locale/LocaleInformation_de_BE.h | 53 + .../gnu/java/locale/LocaleInformation_de_CH.h | 53 + .../gnu/java/locale/LocaleInformation_de_DE.h | 53 + .../gnu/java/locale/LocaleInformation_de_LU.h | 53 + .../gnu/java/locale/LocaleInformation_el_GR.h | 53 + .../gnu/java/locale/LocaleInformation_en.h | 46 + .../gnu/java/locale/LocaleInformation_en_AU.h | 53 + .../gnu/java/locale/LocaleInformation_en_BW.h | 53 + .../gnu/java/locale/LocaleInformation_en_CA.h | 53 + .../gnu/java/locale/LocaleInformation_en_DK.h | 53 + .../gnu/java/locale/LocaleInformation_en_GB.h | 53 + .../gnu/java/locale/LocaleInformation_en_HK.h | 53 + .../gnu/java/locale/LocaleInformation_en_IE.h | 53 + .../gnu/java/locale/LocaleInformation_en_IN.h | 53 + .../gnu/java/locale/LocaleInformation_en_NZ.h | 53 + .../gnu/java/locale/LocaleInformation_en_PH.h | 53 + .../gnu/java/locale/LocaleInformation_en_SG.h | 53 + .../gnu/java/locale/LocaleInformation_en_US.h | 53 + .../gnu/java/locale/LocaleInformation_en_ZA.h | 53 + .../gnu/java/locale/LocaleInformation_en_ZW.h | 53 + .../gnu/java/locale/LocaleInformation_es_AR.h | 53 + .../gnu/java/locale/LocaleInformation_es_BO.h | 53 + .../gnu/java/locale/LocaleInformation_es_CL.h | 53 + .../gnu/java/locale/LocaleInformation_es_CO.h | 53 + .../gnu/java/locale/LocaleInformation_es_CR.h | 53 + .../gnu/java/locale/LocaleInformation_es_DO.h | 53 + .../gnu/java/locale/LocaleInformation_es_EC.h | 53 + .../gnu/java/locale/LocaleInformation_es_ES.h | 53 + .../gnu/java/locale/LocaleInformation_es_GT.h | 53 + .../gnu/java/locale/LocaleInformation_es_HN.h | 53 + .../gnu/java/locale/LocaleInformation_es_MX.h | 53 + .../gnu/java/locale/LocaleInformation_es_NI.h | 53 + .../gnu/java/locale/LocaleInformation_es_PA.h | 53 + .../gnu/java/locale/LocaleInformation_es_PE.h | 53 + .../gnu/java/locale/LocaleInformation_es_PR.h | 53 + .../gnu/java/locale/LocaleInformation_es_PY.h | 53 + .../gnu/java/locale/LocaleInformation_es_SV.h | 53 + .../gnu/java/locale/LocaleInformation_es_US.h | 53 + .../gnu/java/locale/LocaleInformation_es_UY.h | 53 + .../gnu/java/locale/LocaleInformation_es_VE.h | 53 + .../gnu/java/locale/LocaleInformation_et_EE.h | 53 + .../gnu/java/locale/LocaleInformation_eu_ES.h | 53 + .../gnu/java/locale/LocaleInformation_fa_IR.h | 53 + .../gnu/java/locale/LocaleInformation_fi_FI.h | 53 + .../gnu/java/locale/LocaleInformation_fo_FO.h | 53 + .../gnu/java/locale/LocaleInformation_fr_BE.h | 53 + .../gnu/java/locale/LocaleInformation_fr_CA.h | 53 + .../gnu/java/locale/LocaleInformation_fr_CH.h | 53 + .../gnu/java/locale/LocaleInformation_fr_FR.h | 53 + .../gnu/java/locale/LocaleInformation_fr_LU.h | 53 + .../gnu/java/locale/LocaleInformation_ga_IE.h | 53 + .../gnu/java/locale/LocaleInformation_gd_GB.h | 53 + .../gnu/java/locale/LocaleInformation_gl_ES.h | 53 + .../gnu/java/locale/LocaleInformation_gv_GB.h | 53 + .../gnu/java/locale/LocaleInformation_he_IL.h | 53 + .../gnu/java/locale/LocaleInformation_hi_IN.h | 53 + .../gnu/java/locale/LocaleInformation_hr_HR.h | 53 + .../gnu/java/locale/LocaleInformation_hu_HU.h | 53 + .../gnu/java/locale/LocaleInformation_id_ID.h | 53 + .../gnu/java/locale/LocaleInformation_it_CH.h | 53 + .../gnu/java/locale/LocaleInformation_it_IT.h | 53 + .../gnu/java/locale/LocaleInformation_iw_IL.h | 53 + .../gnu/java/locale/LocaleInformation_ja_JP.h | 53 + .../gnu/java/locale/LocaleInformation_ka_GE.h | 53 + .../gnu/java/locale/LocaleInformation_kl_GL.h | 53 + .../gnu/java/locale/LocaleInformation_ko_KR.h | 53 + .../gnu/java/locale/LocaleInformation_kw_GB.h | 53 + .../gnu/java/locale/LocaleInformation_lt_LT.h | 53 + .../gnu/java/locale/LocaleInformation_lv_LV.h | 53 + .../gnu/java/locale/LocaleInformation_mi_NZ.h | 53 + .../gnu/java/locale/LocaleInformation_mk_MK.h | 53 + .../gnu/java/locale/LocaleInformation_mr_IN.h | 53 + .../gnu/java/locale/LocaleInformation_mt_MT.h | 53 + .../gnu/java/locale/LocaleInformation_nl.h | 71 + .../gnu/java/locale/LocaleInformation_nl_BE.h | 53 + .../gnu/java/locale/LocaleInformation_nl_NL.h | 53 + .../gnu/java/locale/LocaleInformation_nn_NO.h | 53 + .../gnu/java/locale/LocaleInformation_no_NO.h | 53 + .../gnu/java/locale/LocaleInformation_oc_FR.h | 53 + .../gnu/java/locale/LocaleInformation_pl_PL.h | 53 + .../gnu/java/locale/LocaleInformation_pt_BR.h | 53 + .../gnu/java/locale/LocaleInformation_pt_PT.h | 53 + .../gnu/java/locale/LocaleInformation_ro_RO.h | 53 + .../gnu/java/locale/LocaleInformation_ru_RU.h | 53 + .../gnu/java/locale/LocaleInformation_ru_UA.h | 53 + .../gnu/java/locale/LocaleInformation_se_NO.h | 53 + .../gnu/java/locale/LocaleInformation_sk_SK.h | 53 + .../gnu/java/locale/LocaleInformation_sl_SI.h | 53 + .../gnu/java/locale/LocaleInformation_sq_AL.h | 53 + .../gnu/java/locale/LocaleInformation_sr_YU.h | 53 + .../gnu/java/locale/LocaleInformation_sv_FI.h | 53 + .../gnu/java/locale/LocaleInformation_sv_SE.h | 53 + .../gnu/java/locale/LocaleInformation_ta_IN.h | 53 + .../gnu/java/locale/LocaleInformation_te_IN.h | 53 + .../gnu/java/locale/LocaleInformation_tg_TJ.h | 53 + .../gnu/java/locale/LocaleInformation_tl_PH.h | 53 + .../gnu/java/locale/LocaleInformation_tr_TR.h | 53 + .../gnu/java/locale/LocaleInformation_uk_UA.h | 53 + .../gnu/java/locale/LocaleInformation_ur_PK.h | 53 + .../gnu/java/locale/LocaleInformation_uz_UZ.h | 53 + .../gnu/java/locale/LocaleInformation_vi_VN.h | 53 + .../gnu/java/locale/LocaleInformation_yi_US.h | 53 + .../gnu/java/locale/LocaleInformation_zh_CN.h | 53 + .../gnu/java/locale/LocaleInformation_zh_HK.h | 53 + .../gnu/java/locale/LocaleInformation_zh_SG.h | 53 + .../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 + .../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 + .../gnu/java/net/PlainDatagramSocketImpl.h | 93 + .../net/PlainSocketImpl$SocketInputStream.h | 43 + .../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 + .../java/net/loader/URLStreamHandlerCache.h | 48 + .../gnu/java/net/local/LocalServerSocket.h | 68 + libjava/gnu/java/net/local/LocalSocket.h | 100 + .../gnu/java/net/local/LocalSocketAddress.h | 42 + .../local/LocalSocketImpl$LocalInputStream.h | 52 + .../local/LocalSocketImpl$LocalOutputStream.h | 49 + libjava/gnu/java/net/local/LocalSocketImpl.h | 86 + .../gnu/java/net/protocol/core/Connection.h | 64 + .../java/net/protocol/core/CoreInputStream.h | 60 + libjava/gnu/java/net/protocol/core/Handler.h | 49 + .../net/protocol/file/Connection$StaticData.h | 48 + .../gnu/java/net/protocol/file/Connection.h | 70 + libjava/gnu/java/net/protocol/file/Handler.h | 49 + .../gnu/java/net/protocol/ftp/ActiveModeDTP.h | 70 + .../java/net/protocol/ftp/BlockInputStream.h | 52 + .../java/net/protocol/ftp/BlockOutputStream.h | 50 + .../net/protocol/ftp/CompressedInputStream.h | 59 + .../net/protocol/ftp/CompressedOutputStream.h | 56 + libjava/gnu/java/net/protocol/ftp/DTP.h | 43 + .../java/net/protocol/ftp/DTPInputStream.h | 46 + .../java/net/protocol/ftp/DTPOutputStream.h | 46 + .../gnu/java/net/protocol/ftp/FTPConnection.h | 165 + .../gnu/java/net/protocol/ftp/FTPException.h | 43 + .../gnu/java/net/protocol/ftp/FTPResponse.h | 47 + .../ftp/FTPURLConnection$ClosingInputStream.h | 44 + .../FTPURLConnection$ClosingOutputStream.h | 44 + .../java/net/protocol/ftp/FTPURLConnection.h | 65 + libjava/gnu/java/net/protocol/ftp/Handler.h | 50 + .../java/net/protocol/ftp/PassiveModeDTP.h | 65 + .../java/net/protocol/ftp/StreamInputStream.h | 45 + .../net/protocol/ftp/StreamOutputStream.h | 45 + .../gnu/java/net/protocol/gcjlib/Connection.h | 57 + .../gnu/java/net/protocol/gcjlib/Handler.h | 49 + .../java/net/protocol/http/Authenticator.h | 39 + .../http/ByteArrayRequestBodyWriter.h | 47 + .../net/protocol/http/ChunkedInputStream.h | 58 + libjava/gnu/java/net/protocol/http/Cookie.h | 56 + .../java/net/protocol/http/CookieManager.h | 42 + .../gnu/java/net/protocol/http/Credentials.h | 44 + .../http/HTTPConnection$Pool$Reaper.h | 44 + .../net/protocol/http/HTTPConnection$Pool.h | 50 + .../java/net/protocol/http/HTTPConnection.h | 128 + .../java/net/protocol/http/HTTPDateFormat.h | 62 + .../net/protocol/http/HTTPURLConnection$1.h | 47 + .../net/protocol/http/HTTPURLConnection.h | 115 + libjava/gnu/java/net/protocol/http/Handler.h | 50 + .../net/protocol/http/Headers$HeaderElement.h | 41 + libjava/gnu/java/net/protocol/http/Headers.h | 64 + .../protocol/http/LimitedLengthInputStream.h | 57 + libjava/gnu/java/net/protocol/http/Request.h | 87 + .../net/protocol/http/RequestBodyWriter.h | 42 + libjava/gnu/java/net/protocol/http/Response.h | 61 + .../net/protocol/http/ResponseHeaderHandler.h | 38 + .../net/protocol/http/SimpleCookieManager.h | 48 + libjava/gnu/java/net/protocol/https/Handler.h | 50 + .../protocol/jar/Connection$JarFileCache.h | 50 + .../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 + .../java/nio/DatagramChannelSelectionKey.h | 47 + libjava/gnu/java/nio/EpollSelectionKeyImpl.h | 63 + libjava/gnu/java/nio/FileLockImpl.h | 44 + libjava/gnu/java/nio/FileLockImpl.java | 104 + 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 + libjava/gnu/java/nio/NIOSocket.java | 77 + libjava/gnu/java/nio/OutputStreamChannel.h | 46 + .../gnu/java/nio/PipeImpl$SinkChannelImpl.h | 61 + .../gnu/java/nio/PipeImpl$SourceChannelImpl.h | 61 + libjava/gnu/java/nio/PipeImpl.h | 55 + libjava/gnu/java/nio/PipeImpl.java | 178 + 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 | 83 + .../gnu/java/nio/ServerSocketChannelImpl.h | 64 + .../nio/ServerSocketChannelSelectionKey.h | 47 + libjava/gnu/java/nio/SocketChannelImpl.h | 82 + .../gnu/java/nio/SocketChannelSelectionKey.h | 47 + .../java/nio/SocketChannelSelectionKey.java | 4 +- .../java/nio/SocketChannelSelectionKeyImpl.h | 38 + .../nio/SocketChannelSelectionKeyImpl.java | 69 + 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 + .../gnu/java/nio/channels/FileChannelImpl.h | 118 + .../java/nio/channels/FileChannelImpl.java | 8 + .../java/nio/charset/ByteCharset$Decoder.h | 55 + .../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 + .../gnu/java/nio/charset/ISO_8859_1$Decoder.h | 51 + .../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 + .../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 + .../gnu/java/nio/charset/US_ASCII$Decoder.h | 51 + .../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 + .../java/rmi/RMIMarshalledObjectInputStream.h | 39 + .../rmi/RMIMarshalledObjectOutputStream.h | 43 + .../activation/ActivationSystemTransient.h | 80 + libjava/gnu/java/rmi/activation/BidiTable.h | 54 + .../rmi/activation/DefaultActivationGroup.h | 58 + .../rmi/activation/DefaultActivationSystem.h | 52 + .../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 + .../dgc/LeaseRenewingTask$LeaseTimerTask.h | 41 + libjava/gnu/java/rmi/dgc/LeaseRenewingTask.h | 60 + libjava/gnu/java/rmi/registry/RegistryImpl.h | 61 + .../gnu/java/rmi/registry/RegistryImpl_Skel.h | 55 + .../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 - .../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 + .../java/rmi/server/ActivatableServerRef.h | 67 + .../gnu/java/rmi/server/CombinedClassLoader.h | 51 + .../ConnectionRunnerPool$ConnectionRunner.h | 44 + .../java/rmi/server/ConnectionRunnerPool.h | 53 + .../gnu/java/rmi/server/ProtocolConstants.h | 49 + .../rmi/server/RMIClassLoaderImpl$CacheKey.h | 45 + .../server/RMIClassLoaderImpl$MyClassLoader.h | 52 + .../gnu/java/rmi/server/RMIClassLoaderImpl.h | 65 + .../java/rmi/server/RMIDefaultSocketFactory.h | 45 + libjava/gnu/java/rmi/server/RMIHashes.h | 37 + .../gnu/java/rmi/server/RMIIncomingThread.h | 40 + .../java/rmi/server/RMIObjectInputStream.h | 43 + .../java/rmi/server/RMIObjectOutputStream.h | 42 + libjava/gnu/java/rmi/server/RMIVoidValue.h | 37 + libjava/gnu/java/rmi/server/TripleKey.h | 44 + .../gnu/java/rmi/server/UnicastConnection.h | 67 + .../rmi/server/UnicastConnectionManager$1.h | 37 + .../rmi/server/UnicastConnectionManager.h | 94 + libjava/gnu/java/rmi/server/UnicastRef.h | 91 + ...UnicastRemoteCall$DummyObjectInputStream.h | 64 + ...nicastRemoteCall$DummyObjectOutputStream.h | 59 + .../gnu/java/rmi/server/UnicastRemoteCall.h | 81 + .../gnu/java/rmi/server/UnicastRemoteStub.h | 47 + libjava/gnu/java/rmi/server/UnicastServer.h | 74 + .../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 + .../java/security/action/GetPropertyAction.h | 45 + .../action/GetSecurityPropertyAction.h | 45 + .../security/action/SetAccessibleAction.h | 41 + libjava/gnu/java/security/ber/BER.h | 36 + .../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 + .../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 + .../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 + .../security/jce/hash/MessageDigestAdapter.h | 57 + .../gnu/java/security/jce/hash/RipeMD128Spi.h | 38 + .../gnu/java/security/jce/hash/RipeMD160Spi.h | 38 + .../gnu/java/security/jce/hash/Sha160Spi.h | 38 + .../gnu/java/security/jce/hash/Sha256Spi.h | 38 + .../gnu/java/security/jce/hash/Sha384Spi.h | 38 + .../gnu/java/security/jce/hash/Sha512Spi.h | 38 + libjava/gnu/java/security/jce/hash/TigerSpi.h | 38 + .../gnu/java/security/jce/hash/WhirlpoolSpi.h | 38 + .../java/security/jce/prng/HavalRandomSpi.h | 38 + .../gnu/java/security/jce/prng/MD2RandomSpi.h | 38 + .../gnu/java/security/jce/prng/MD4RandomSpi.h | 38 + .../gnu/java/security/jce/prng/MD5RandomSpi.h | 38 + .../security/jce/prng/RipeMD128RandomSpi.h | 38 + .../security/jce/prng/RipeMD160RandomSpi.h | 38 + .../security/jce/prng/SecureRandomAdapter.h | 52 + .../java/security/jce/prng/Sha160RandomSpi.h | 38 + .../java/security/jce/prng/Sha256RandomSpi.h | 38 + .../java/security/jce/prng/Sha384RandomSpi.h | 38 + .../java/security/jce/prng/Sha512RandomSpi.h | 38 + .../java/security/jce/prng/TigerRandomSpi.h | 38 + .../security/jce/prng/WhirlpoolRandomSpi.h | 38 + .../gnu/java/security/jce/sig/DSSKeyFactory.h | 57 + .../security/jce/sig/DSSKeyPairGeneratorSpi.h | 57 + .../gnu/java/security/jce/sig/DSSParameters.h | 67 + .../security/jce/sig/DSSParametersGenerator.h | 68 + .../security/jce/sig/DSSRawSignatureSpi.h | 38 + .../java/security/jce/sig/EncodedKeyFactory.h | 106 + .../jce/sig/KeyPairGeneratorAdapter.h | 61 + .../gnu/java/security/jce/sig/MD2withRSA.h | 38 + .../gnu/java/security/jce/sig/MD5withRSA.h | 38 + .../gnu/java/security/jce/sig/RSAKeyFactory.h | 57 + .../security/jce/sig/RSAKeyPairGeneratorSpi.h | 51 + .../security/jce/sig/RSAPSSRawSignatureSpi.h | 38 + .../gnu/java/security/jce/sig/SHA160withDSS.h | 38 + .../gnu/java/security/jce/sig/SHA160withRSA.h | 38 + .../gnu/java/security/jce/sig/SHA256withRSA.h | 38 + .../gnu/java/security/jce/sig/SHA384withRSA.h | 38 + .../gnu/java/security/jce/sig/SHA512withRSA.h | 38 + .../java/security/jce/sig/SignatureAdapter.h | 78 + libjava/gnu/java/security/key/IKeyPairCodec.h | 53 + .../gnu/java/security/key/IKeyPairGenerator.h | 44 + .../java/security/key/KeyPairCodecFactory.h | 59 + .../security/key/KeyPairGeneratorFactory.h | 41 + libjava/gnu/java/security/key/dss/DSSKey.h | 71 + .../security/key/dss/DSSKeyPairGenerator.h | 98 + .../security/key/dss/DSSKeyPairPKCS8Codec.h | 58 + .../security/key/dss/DSSKeyPairRawCodec.h | 53 + .../security/key/dss/DSSKeyPairX509Codec.h | 57 + .../gnu/java/security/key/dss/DSSPrivateKey.h | 57 + .../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 + .../java/security/key/rsa/GnuRSAPrivateKey.h | 68 + .../java/security/key/rsa/GnuRSAPublicKey.h | 55 + .../security/key/rsa/RSAKeyPairGenerator.h | 79 + .../security/key/rsa/RSAKeyPairPKCS8Codec.h | 58 + .../security/key/rsa/RSAKeyPairRawCodec.h | 53 + .../security/key/rsa/RSAKeyPairX509Codec.h | 58 + libjava/gnu/java/security/pkcs/PKCS7Data.h | 43 + .../gnu/java/security/pkcs/PKCS7SignedData.h | 81 + libjava/gnu/java/security/pkcs/SignerInfo.h | 87 + libjava/gnu/java/security/prng/BasePRNG.h | 59 + .../gnu/java/security/prng/EntropySource.h | 38 + libjava/gnu/java/security/prng/IRandom.h | 44 + .../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 + .../java/security/prng/RandomEventListener.h | 36 + .../provider/CollectionCertStoreImpl.h | 52 + .../java/security/provider/DefaultPolicy.h | 49 + libjava/gnu/java/security/provider/Gnu$1.h | 41 + libjava/gnu/java/security/provider/Gnu.h | 35 + .../provider/PKIXCertPathValidatorImpl.h | 67 + .../provider/X509CertificateFactory.h | 68 + libjava/gnu/java/security/sig/BaseSignature.h | 86 + libjava/gnu/java/security/sig/ISignature.h | 47 + .../gnu/java/security/sig/ISignatureCodec.h | 40 + .../java/security/sig/SignatureCodecFactory.h | 45 + .../gnu/java/security/sig/SignatureFactory.h | 41 + .../gnu/java/security/sig/dss/DSSSignature.h | 80 + .../security/sig/dss/DSSSignatureRawCodec.h | 43 + .../security/sig/dss/DSSSignatureX509Codec.h | 43 + .../java/security/sig/rsa/EME_PKCS1_V1_5.h | 70 + .../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 + .../security/sig/rsa/RSAPKCS1V1_5Signature.h | 65 + .../sig/rsa/RSAPKCS1V1_5SignatureRawCodec.h | 43 + .../sig/rsa/RSAPKCS1V1_5SignatureX509Codec.h | 43 + .../java/security/sig/rsa/RSAPSSSignature.h | 68 + .../sig/rsa/RSAPSSSignatureRawCodec.h | 43 + .../security/sig/rsa/RSASignatureFactory.h | 46 + libjava/gnu/java/security/util/Base64.h | 53 + libjava/gnu/java/security/util/ByteArray.h | 44 + .../security/util/ByteBufferOutputStream.h | 54 + libjava/gnu/java/security/util/DerUtil.h | 41 + .../security/util/ExpirableObject$Destroyer.h | 43 + .../gnu/java/security/util/ExpirableObject.h | 48 + libjava/gnu/java/security/util/FormatUtil.h | 38 + .../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 + .../gnu/java/security/x509/GnuPKIExtension.h | 47 + .../gnu/java/security/x509/PolicyNodeImpl.h | 73 + libjava/gnu/java/security/x509/Util.h | 46 + .../security/x509/X500DistinguishedName.h | 90 + libjava/gnu/java/security/x509/X509CRL.h | 124 + libjava/gnu/java/security/x509/X509CRLEntry.h | 75 + .../java/security/x509/X509CRLSelectorImpl.h | 57 + libjava/gnu/java/security/x509/X509CertPath.h | 57 + .../java/security/x509/X509CertSelectorImpl.h | 62 + .../gnu/java/security/x509/X509Certificate.h | 140 + .../x509/ext/AuthorityKeyIdentifier.h | 59 + .../java/security/x509/ext/BasicConstraints.h | 51 + .../gnu/java/security/x509/ext/CRLNumber.h | 56 + .../security/x509/ext/CertificatePolicies.h | 51 + .../java/security/x509/ext/ExtendedKeyUsage.h | 47 + .../java/security/x509/ext/Extension$Value.h | 50 + .../gnu/java/security/x509/ext/Extension.h | 64 + .../gnu/java/security/x509/ext/GeneralNames.h | 54 + .../x509/ext/IssuerAlternativeNames.h | 48 + libjava/gnu/java/security/x509/ext/KeyUsage.h | 60 + .../java/security/x509/ext/PolicyConstraint.h | 49 + .../java/security/x509/ext/PolicyMappings.h | 47 + .../security/x509/ext/PrivateKeyUsagePeriod.h | 49 + .../gnu/java/security/x509/ext/ReasonCode.h | 45 + .../x509/ext/SubjectAlternativeNames.h | 48 + .../security/x509/ext/SubjectKeyIdentifier.h | 47 + .../gnu/java/text/AttributedFormatBuffer.h | 70 + libjava/gnu/java/text/BaseBreakIterator.h | 49 + .../gnu/java/text/CharacterBreakIterator.h | 56 + libjava/gnu/java/text/FormatBuffer.h | 50 + .../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 + .../util/WeakIdentityHashMap$WeakBucket.h | 39 + .../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 + .../gnu/java/util/prefs/FileBasedFactory.h | 41 + .../java/util/prefs/FileBasedPreferences$1.h | 41 + .../java/util/prefs/FileBasedPreferences.h | 58 + .../gnu/java/util/prefs/GConfBasedFactory.h | 41 + .../java/util/prefs/GConfBasedPreferences.h | 81 + .../gnu/java/util/prefs/MemoryBasedFactory.h | 41 + .../java/util/prefs/MemoryBasedPreferences.h | 52 + libjava/gnu/java/util/prefs/NodeReader.h | 50 + libjava/gnu/java/util/prefs/NodeWriter.h | 53 + .../java/util/prefs/gconf/GConfNativePeer.h | 72 + .../util/regex/BacktrackStack$Backtrack.h | 43 + libjava/gnu/java/util/regex/BacktrackStack.h | 50 + libjava/gnu/java/util/regex/CharIndexed.h | 48 + .../java/util/regex/CharIndexedCharArray.h | 38 + .../java/util/regex/CharIndexedCharSequence.h | 57 + .../java/util/regex/CharIndexedInputStream.h | 64 + .../gnu/java/util/regex/CharIndexedString.h | 36 + .../java/util/regex/CharIndexedStringBuffer.h | 36 + .../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 + .../gnu/java/util/regex/RE$NamedProperty.h | 40 + .../java/util/regex/RE$ParseCharClassResult.h | 41 + libjava/gnu/java/util/regex/RE.h | 146 + libjava/gnu/java/util/regex/REException.h | 56 + .../gnu/java/util/regex/REFilterInputStream.h | 51 + libjava/gnu/java/util/regex/REMatch.h | 68 + .../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 + .../util/regex/RETokenEndOfPreviousMatch.h | 43 + libjava/gnu/java/util/regex/RETokenEndSub.h | 43 + .../gnu/java/util/regex/RETokenIndependent.h | 44 + .../gnu/java/util/regex/RETokenLookAhead.h | 44 + .../RETokenLookBehind$RETokenMatchHereOnly.h | 43 + .../gnu/java/util/regex/RETokenLookBehind.h | 44 + .../java/util/regex/RETokenNamedProperty$1.h | 41 + .../util/regex/RETokenNamedProperty$Handler.h | 39 + .../regex/RETokenNamedProperty$POSIXHandler.h | 40 + ...RETokenNamedProperty$UnicodeBlockHandler.h | 39 + ...enNamedProperty$UnicodeCategoriesHandler.h | 41 + ...okenNamedProperty$UnicodeCategoryHandler.h | 39 + .../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 + .../regex/RETokenRepeated$DoablesFinder.h | 48 + .../regex/RETokenRepeated$FindMatchControl.h | 38 + .../RETokenRepeated$FindMatchControlStack.h | 44 + .../util/regex/RETokenRepeated$StackedInfo.h | 44 + .../regex/RETokenRepeated$TryAnotherResult.h | 46 + libjava/gnu/java/util/regex/RETokenRepeated.h | 76 + libjava/gnu/java/util/regex/RETokenStart.h | 47 + .../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 + .../gnu/javax/crypto/assembly/CascadeStage.h | 53 + .../crypto/assembly/CascadeTransformer.h | 48 + .../crypto/assembly/DeflateTransformer.h | 50 + libjava/gnu/javax/crypto/assembly/Direction.h | 42 + .../crypto/assembly/LoopbackTransformer.h | 49 + libjava/gnu/javax/crypto/assembly/ModeStage.h | 57 + libjava/gnu/javax/crypto/assembly/Operation.h | 41 + .../crypto/assembly/PaddingTransformer.h | 50 + libjava/gnu/javax/crypto/assembly/Stage.h | 62 + .../gnu/javax/crypto/assembly/Transformer.h | 85 + .../crypto/assembly/TransformerException.h | 46 + libjava/gnu/javax/crypto/cipher/Anubis.h | 64 + libjava/gnu/javax/crypto/cipher/BaseCipher.h | 69 + .../gnu/javax/crypto/cipher/Blowfish$Block.h | 41 + .../javax/crypto/cipher/Blowfish$Context.h | 50 + libjava/gnu/javax/crypto/cipher/Blowfish.h | 65 + .../gnu/javax/crypto/cipher/Cast5$Cast5Key.h | 72 + libjava/gnu/javax/crypto/cipher/Cast5.h | 68 + .../gnu/javax/crypto/cipher/CipherFactory.h | 38 + libjava/gnu/javax/crypto/cipher/DES$Context.h | 48 + libjava/gnu/javax/crypto/cipher/DES.h | 70 + .../gnu/javax/crypto/cipher/IBlockCipher.h | 50 + .../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 + .../javax/crypto/cipher/TripleDES$Context.h | 43 + libjava/gnu/javax/crypto/cipher/TripleDES.h | 53 + libjava/gnu/javax/crypto/cipher/Twofish.h | 101 + .../javax/crypto/cipher/WeakKeyException.h | 36 + .../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 + .../jce/PBKDF2SecretKeyFactory$HMacHaval.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacMD2.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacMD4.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacMD5.h | 35 + .../PBKDF2SecretKeyFactory$HMacRipeMD128.h | 35 + .../PBKDF2SecretKeyFactory$HMacRipeMD160.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacSHA1.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacSHA256.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacSHA384.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacSHA512.h | 35 + .../jce/PBKDF2SecretKeyFactory$HMacTiger.h | 35 + .../PBKDF2SecretKeyFactory$HMacWhirlpool.h | 35 + .../javax/crypto/jce/PBKDF2SecretKeyFactory.h | 60 + .../crypto/jce/cipher/AES128KeyWrapSpi.h | 38 + .../crypto/jce/cipher/AES192KeyWrapSpi.h | 38 + .../crypto/jce/cipher/AES256KeyWrapSpi.h | 38 + .../javax/crypto/jce/cipher/AESKeyWrapSpi.h | 41 + libjava/gnu/javax/crypto/jce/cipher/AESSpi.h | 55 + .../gnu/javax/crypto/jce/cipher/ARCFourSpi.h | 80 + .../gnu/javax/crypto/jce/cipher/AnubisSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/BlowfishSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/Cast5Spi.h | 38 + .../javax/crypto/jce/cipher/CipherAdapter.h | 94 + libjava/gnu/javax/crypto/jce/cipher/DESSpi.h | 38 + .../jce/cipher/KeyWrappingAlgorithmAdapter.h | 89 + .../gnu/javax/crypto/jce/cipher/KhazadSpi.h | 38 + .../javax/crypto/jce/cipher/NullCipherSpi.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$AES.h | 38 + .../jce/cipher/PBES2$HMacHaval$Anubis.h | 38 + .../jce/cipher/PBES2$HMacHaval$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacHaval$DES.h | 38 + .../jce/cipher/PBES2$HMacHaval$Khazad.h | 38 + .../jce/cipher/PBES2$HMacHaval$Serpent.h | 38 + .../jce/cipher/PBES2$HMacHaval$Square.h | 38 + .../jce/cipher/PBES2$HMacHaval$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacHaval$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacHaval.h | 39 + .../crypto/jce/cipher/PBES2$HMacMD2$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Anubis.h | 38 + .../jce/cipher/PBES2$HMacMD2$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Square.h | 38 + .../jce/cipher/PBES2$HMacMD2$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD2$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD2.h | 39 + .../crypto/jce/cipher/PBES2$HMacMD4$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Anubis.h | 38 + .../jce/cipher/PBES2$HMacMD4$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Square.h | 38 + .../jce/cipher/PBES2$HMacMD4$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD4$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD4.h | 39 + .../crypto/jce/cipher/PBES2$HMacMD5$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Anubis.h | 38 + .../jce/cipher/PBES2$HMacMD5$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Khazad.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Square.h | 38 + .../jce/cipher/PBES2$HMacMD5$TripleDES.h | 38 + .../crypto/jce/cipher/PBES2$HMacMD5$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacMD5.h | 39 + .../jce/cipher/PBES2$HMacRipeMD128$AES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Anubis.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Cast5.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$DES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Khazad.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Serpent.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Square.h | 38 + .../cipher/PBES2$HMacRipeMD128$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD128$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD128.h | 39 + .../jce/cipher/PBES2$HMacRipeMD160$AES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Anubis.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Cast5.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$DES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Khazad.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Serpent.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Square.h | 38 + .../cipher/PBES2$HMacRipeMD160$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacRipeMD160$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacRipeMD160.h | 39 + .../crypto/jce/cipher/PBES2$HMacSHA1$AES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Anubis.h | 38 + .../jce/cipher/PBES2$HMacSHA1$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$DES.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Khazad.h | 38 + .../jce/cipher/PBES2$HMacSHA1$Serpent.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA1$Square.h | 38 + .../jce/cipher/PBES2$HMacSHA1$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacSHA1$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacSHA1.h | 39 + .../crypto/jce/cipher/PBES2$HMacSHA256$AES.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Anubis.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256$DES.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Khazad.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Serpent.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Square.h | 38 + .../jce/cipher/PBES2$HMacSHA256$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacSHA256$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA256.h | 39 + .../crypto/jce/cipher/PBES2$HMacSHA384$AES.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Anubis.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384$DES.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Khazad.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Serpent.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Square.h | 38 + .../jce/cipher/PBES2$HMacSHA384$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacSHA384$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA384.h | 39 + .../crypto/jce/cipher/PBES2$HMacSHA512$AES.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Anubis.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512$DES.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Khazad.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Serpent.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Square.h | 38 + .../jce/cipher/PBES2$HMacSHA512$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacSHA512$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacSHA512.h | 39 + .../crypto/jce/cipher/PBES2$HMacTiger$AES.h | 38 + .../jce/cipher/PBES2$HMacTiger$Anubis.h | 38 + .../jce/cipher/PBES2$HMacTiger$Blowfish.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$Cast5.h | 38 + .../crypto/jce/cipher/PBES2$HMacTiger$DES.h | 38 + .../jce/cipher/PBES2$HMacTiger$Khazad.h | 38 + .../jce/cipher/PBES2$HMacTiger$Serpent.h | 38 + .../jce/cipher/PBES2$HMacTiger$Square.h | 38 + .../jce/cipher/PBES2$HMacTiger$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacTiger$Twofish.h | 38 + .../javax/crypto/jce/cipher/PBES2$HMacTiger.h | 39 + .../jce/cipher/PBES2$HMacWhirlpool$AES.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Anubis.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Blowfish.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Cast5.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$DES.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Khazad.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Serpent.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Square.h | 38 + .../cipher/PBES2$HMacWhirlpool$TripleDES.h | 38 + .../jce/cipher/PBES2$HMacWhirlpool$Twofish.h | 38 + .../crypto/jce/cipher/PBES2$HMacWhirlpool.h | 39 + libjava/gnu/javax/crypto/jce/cipher/PBES2.h | 74 + .../gnu/javax/crypto/jce/cipher/RijndaelSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/SerpentSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/SquareSpi.h | 38 + .../crypto/jce/cipher/TripleDESKeyWrapSpi.h | 38 + .../javax/crypto/jce/cipher/TripleDESSpi.h | 38 + .../gnu/javax/crypto/jce/cipher/TwofishSpi.h | 38 + .../crypto/jce/key/AnubisKeyGeneratorImpl.h | 38 + .../jce/key/AnubisSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/BlowfishKeyGeneratorImpl.h | 38 + .../jce/key/BlowfishSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/Cast5KeyGeneratorImpl.h | 38 + .../jce/key/Cast5SecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/DESKeyGeneratorImpl.h | 48 + .../crypto/jce/key/DESSecretKeyFactoryImpl.h | 59 + .../jce/key/DESedeSecretKeyFactoryImpl.h | 59 + .../crypto/jce/key/KhazadKeyGeneratorImpl.h | 38 + .../jce/key/KhazadSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/RijndaelKeyGeneratorImpl.h | 38 + .../jce/key/RijndaelSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/SecretKeyFactoryImpl.h | 59 + .../crypto/jce/key/SecretKeyGeneratorImpl.h | 67 + .../crypto/jce/key/SerpentKeyGeneratorImpl.h | 38 + .../jce/key/SerpentSecretKeyFactoryImpl.h | 38 + .../crypto/jce/key/SquareKeyGeneratorImpl.h | 38 + .../jce/key/SquareSecretKeyFactoryImpl.h | 38 + .../jce/key/TripleDESKeyGeneratorImpl.h | 38 + .../crypto/jce/key/TwofishKeyGeneratorImpl.h | 38 + .../jce/key/TwofishSecretKeyFactoryImpl.h | 38 + .../gnu/javax/crypto/jce/keyring/GnuKeyring.h | 85 + .../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 + .../javax/crypto/jce/mac/HMacRipeMD128Spi.h | 38 + .../javax/crypto/jce/mac/HMacRipeMD160Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacSHA160Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacSHA256Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacSHA384Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacSHA512Spi.h | 38 + .../gnu/javax/crypto/jce/mac/HMacTigerSpi.h | 38 + .../javax/crypto/jce/mac/HMacWhirlpoolSpi.h | 38 + libjava/gnu/javax/crypto/jce/mac/MacAdapter.h | 69 + .../gnu/javax/crypto/jce/mac/OMacAnubisImpl.h | 38 + .../javax/crypto/jce/mac/OMacBlowfishImpl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacCast5Impl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacDESImpl.h | 38 + .../javax/crypto/jce/mac/OMacImpl$Anubis.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Blowfish.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$Cast5.h | 42 + .../gnu/javax/crypto/jce/mac/OMacImpl$DES.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Khazad.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Rijndael.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Serpent.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Square.h | 42 + .../javax/crypto/jce/mac/OMacImpl$TripleDES.h | 42 + .../javax/crypto/jce/mac/OMacImpl$Twofish.h | 42 + libjava/gnu/javax/crypto/jce/mac/OMacImpl.h | 39 + .../gnu/javax/crypto/jce/mac/OMacKhazadImpl.h | 38 + .../javax/crypto/jce/mac/OMacRijndaelImpl.h | 38 + .../javax/crypto/jce/mac/OMacSerpentImpl.h | 38 + .../gnu/javax/crypto/jce/mac/OMacSquareImpl.h | 38 + .../javax/crypto/jce/mac/OMacTripleDESImpl.h | 38 + .../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 + .../crypto/jce/params/DEREncodingException.h | 39 + .../gnu/javax/crypto/jce/params/DERReader.h | 64 + .../gnu/javax/crypto/jce/params/DERWriter.h | 63 + .../javax/crypto/jce/prng/ARCFourRandomSpi.h | 57 + libjava/gnu/javax/crypto/jce/prng/CSPRNGSpi.h | 57 + .../gnu/javax/crypto/jce/prng/FortunaImpl.h | 51 + .../gnu/javax/crypto/jce/prng/ICMRandomSpi.h | 59 + .../gnu/javax/crypto/jce/prng/UMacRandomSpi.h | 57 + .../gnu/javax/crypto/jce/sig/DHKeyFactory.h | 57 + .../crypto/jce/sig/DHKeyPairGeneratorSpi.h | 51 + .../gnu/javax/crypto/jce/sig/DHParameters.h | 68 + .../crypto/jce/sig/DHParametersGenerator.h | 69 + .../jce/spec/BlockCipherParameterSpec.h | 50 + .../javax/crypto/jce/spec/TMMHParameterSpec.h | 59 + .../crypto/jce/spec/UMac32ParameterSpec.h | 44 + .../javax/crypto/key/BaseKeyAgreementParty.h | 90 + libjava/gnu/javax/crypto/key/GnuPBEKey.h | 57 + libjava/gnu/javax/crypto/key/GnuSecretKey.h | 47 + .../gnu/javax/crypto/key/IKeyAgreementParty.h | 44 + .../gnu/javax/crypto/key/IncomingMessage.h | 77 + .../javax/crypto/key/KeyAgreementException.h | 45 + .../javax/crypto/key/KeyAgreementFactory.h | 39 + .../gnu/javax/crypto/key/OutgoingMessage.h | 61 + .../javax/crypto/key/dh/DHKeyPairPKCS8Codec.h | 63 + .../javax/crypto/key/dh/DHKeyPairRawCodec.h | 53 + .../javax/crypto/key/dh/DHKeyPairX509Codec.h | 63 + .../crypto/key/dh/DiffieHellmanKeyAgreement.h | 66 + .../crypto/key/dh/DiffieHellmanReceiver.h | 54 + .../javax/crypto/key/dh/DiffieHellmanSender.h | 55 + .../javax/crypto/key/dh/ElGamalKeyAgreement.h | 56 + .../gnu/javax/crypto/key/dh/ElGamalReceiver.h | 57 + .../gnu/javax/crypto/key/dh/ElGamalSender.h | 57 + libjava/gnu/javax/crypto/key/dh/GnuDHKey.h | 74 + .../crypto/key/dh/GnuDHKeyPairGenerator.h | 96 + .../gnu/javax/crypto/key/dh/GnuDHPrivateKey.h | 57 + .../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 + .../javax/crypto/key/srp6/SRP6KeyAgreement.h | 72 + .../javax/crypto/key/srp6/SRP6SaslClient.h | 43 + .../javax/crypto/key/srp6/SRP6SaslServer.h | 43 + .../gnu/javax/crypto/key/srp6/SRP6TLSClient.h | 62 + .../gnu/javax/crypto/key/srp6/SRP6TLSServer.h | 66 + libjava/gnu/javax/crypto/key/srp6/SRP6User.h | 60 + .../gnu/javax/crypto/key/srp6/SRPAlgorithm.h | 60 + libjava/gnu/javax/crypto/key/srp6/SRPKey.h | 59 + .../crypto/key/srp6/SRPKeyPairGenerator.h | 92 + .../crypto/key/srp6/SRPKeyPairRawCodec.h | 53 + .../gnu/javax/crypto/key/srp6/SRPPrivateKey.h | 60 + .../gnu/javax/crypto/key/srp6/SRPPublicKey.h | 57 + .../javax/crypto/keyring/AuthenticatedEntry.h | 54 + .../gnu/javax/crypto/keyring/BaseKeyring.h | 56 + .../javax/crypto/keyring/BinaryDataEntry.h | 48 + .../gnu/javax/crypto/keyring/CertPathEntry.h | 60 + .../javax/crypto/keyring/CertificateEntry.h | 58 + .../javax/crypto/keyring/CompressedEntry.h | 44 + .../gnu/javax/crypto/keyring/EncryptedEntry.h | 53 + libjava/gnu/javax/crypto/keyring/Entry.h | 55 + .../gnu/javax/crypto/keyring/EnvelopeEntry.h | 60 + .../javax/crypto/keyring/GnuPrivateKeyring.h | 73 + .../javax/crypto/keyring/GnuPublicKeyring.h | 58 + libjava/gnu/javax/crypto/keyring/IKeyring.h | 47 + .../javax/crypto/keyring/IPrivateKeyring.h | 67 + .../gnu/javax/crypto/keyring/IPublicKeyring.h | 57 + .../keyring/MalformedKeyringException.h | 36 + .../crypto/keyring/MaskableEnvelopeEntry.h | 52 + .../javax/crypto/keyring/MeteredInputStream.h | 52 + .../keyring/PasswordAuthenticatedEntry.h | 57 + .../crypto/keyring/PasswordEncryptedEntry.h | 57 + .../crypto/keyring/PasswordProtectedEntry.h | 38 + .../gnu/javax/crypto/keyring/PrimitiveEntry.h | 45 + .../javax/crypto/keyring/PrivateKeyEntry.h | 56 + libjava/gnu/javax/crypto/keyring/Properties.h | 49 + .../gnu/javax/crypto/keyring/PublicKeyEntry.h | 55 + libjava/gnu/javax/crypto/kwa/AESKeyWrap.h | 50 + .../crypto/kwa/BaseKeyWrappingAlgorithm.h | 63 + .../javax/crypto/kwa/IKeyWrappingAlgorithm.h | 45 + .../javax/crypto/kwa/KeyUnwrappingException.h | 36 + .../crypto/kwa/KeyWrappingAlgorithmFactory.h | 41 + .../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 + .../gnu/javax/crypto/mac/MacOutputStream.h | 47 + libjava/gnu/javax/crypto/mac/OMAC.h | 75 + libjava/gnu/javax/crypto/mac/TMMH16.h | 79 + .../gnu/javax/crypto/mac/UHash32$L1Hash32.h | 60 + .../gnu/javax/crypto/mac/UHash32$L2Hash32.h | 65 + .../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 + .../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 + .../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 + .../gnu/javax/crypto/prng/CSPRNG$Spinner.h | 41 + libjava/gnu/javax/crypto/prng/CSPRNG.h | 121 + .../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 + .../crypto/sasl/AuthInfoProviderFactory.h | 37 + libjava/gnu/javax/crypto/sasl/ClientFactory.h | 65 + .../gnu/javax/crypto/sasl/ClientMechanism.h | 91 + .../crypto/sasl/ConfidentialityException.h | 37 + .../gnu/javax/crypto/sasl/IAuthInfoProvider.h | 40 + .../crypto/sasl/IAuthInfoProviderFactory.h | 36 + .../sasl/IllegalMechanismStateException.h | 37 + libjava/gnu/javax/crypto/sasl/InputBuffer.h | 60 + .../javax/crypto/sasl/IntegrityException.h | 37 + .../crypto/sasl/NoSuchMechanismException.h | 35 + .../javax/crypto/sasl/NoSuchUserException.h | 36 + libjava/gnu/javax/crypto/sasl/OutputBuffer.h | 54 + .../javax/crypto/sasl/SaslEncodingException.h | 36 + .../gnu/javax/crypto/sasl/SaslInputStream.h | 62 + .../gnu/javax/crypto/sasl/SaslOutputStream.h | 60 + libjava/gnu/javax/crypto/sasl/SaslUtil.h | 44 + libjava/gnu/javax/crypto/sasl/ServerFactory.h | 65 + .../gnu/javax/crypto/sasl/ServerMechanism.h | 92 + .../crypto/sasl/UserAlreadyExistsException.h | 36 + .../crypto/sasl/anonymous/AnonymousClient.h | 49 + .../crypto/sasl/anonymous/AnonymousServer.h | 45 + .../crypto/sasl/anonymous/AnonymousUtil.h | 41 + .../sasl/crammd5/CramMD5AuthInfoProvider.h | 48 + .../javax/crypto/sasl/crammd5/CramMD5Client.h | 49 + .../crypto/sasl/crammd5/CramMD5Registry.h | 44 + .../javax/crypto/sasl/crammd5/CramMD5Server.h | 52 + .../javax/crypto/sasl/crammd5/CramMD5Util.h | 43 + .../javax/crypto/sasl/crammd5/PasswordFile.h | 56 + .../javax/crypto/sasl/plain/PasswordFile.h | 56 + .../crypto/sasl/plain/PlainAuthInfoProvider.h | 48 + .../gnu/javax/crypto/sasl/plain/PlainClient.h | 49 + .../javax/crypto/sasl/plain/PlainRegistry.h | 44 + .../gnu/javax/crypto/sasl/plain/PlainServer.h | 50 + libjava/gnu/javax/crypto/sasl/srp/CALG.h | 57 + .../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 + .../gnu/javax/crypto/sasl/srp/PasswordFile.h | 89 + libjava/gnu/javax/crypto/sasl/srp/SRP.h | 77 + .../crypto/sasl/srp/SRPAuthInfoProvider.h | 48 + libjava/gnu/javax/crypto/sasl/srp/SRPClient.h | 129 + .../gnu/javax/crypto/sasl/srp/SRPRegistry.h | 92 + libjava/gnu/javax/crypto/sasl/srp/SRPServer.h | 115 + .../javax/crypto/sasl/srp/SecurityContext.h | 68 + .../gnu/javax/crypto/sasl/srp/ServerStore.h | 54 + .../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 + .../gnu/javax/imageio/bmp/BMPImageReader.h | 85 + .../gnu/javax/imageio/bmp/BMPImageReaderSpi.h | 66 + .../gnu/javax/imageio/bmp/BMPImageWriter.h | 68 + .../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 + .../javax/imageio/gif/GIFFile$GIFException.h | 35 + libjava/gnu/javax/imageio/gif/GIFFile.h | 101 + .../gnu/javax/imageio/gif/GIFImageReader.h | 83 + .../gnu/javax/imageio/gif/GIFImageReaderSpi.h | 66 + libjava/gnu/javax/imageio/jpeg/DCT.h | 48 + libjava/gnu/javax/imageio/jpeg/HuffmanTable.h | 76 + .../gnu/javax/imageio/jpeg/JPEGComponent.h | 91 + libjava/gnu/javax/imageio/jpeg/JPEGDecoder.h | 99 + .../gnu/javax/imageio/jpeg/JPEGException.h | 35 + libjava/gnu/javax/imageio/jpeg/JPEGFrame.h | 67 + .../javax/imageio/jpeg/JPEGImageInputStream.h | 60 + .../gnu/javax/imageio/jpeg/JPEGImageReader.h | 76 + .../javax/imageio/jpeg/JPEGImageReaderSpi.h | 74 + libjava/gnu/javax/imageio/jpeg/JPEGMarker.h | 89 + .../imageio/jpeg/JPEGMarkerFoundException.h | 35 + libjava/gnu/javax/imageio/jpeg/JPEGScan.h | 60 + .../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 + .../gnu/javax/imageio/png/PNGImageReader.h | 75 + .../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 + .../gnu/javax/management/Server$ServerInfo.h | 48 + .../management/Server$ServerInputStream.h | 40 + .../Server$ServerNotificationListener.h | 49 + libjava/gnu/javax/management/Server.h | 102 + .../javax/naming/giop/ContextContinuation.h | 111 + .../gnu/javax/naming/giop/CorbalocParser.h | 79 + .../javax/naming/giop/GiopNamingEnumeration.h | 64 + .../naming/giop/GiopNamingServiceFactory$1.h | 53 + .../naming/giop/GiopNamingServiceFactory.h | 58 + .../naming/giop/GiopNamingServiceURLContext.h | 111 + .../naming/giop/ListBindingsEnumeration.h | 52 + .../gnu/javax/naming/giop/ListEnumeration.h | 48 + .../ictxImpl/trans/GnuName$GnuNameEnum.h | 46 + .../gnu/javax/naming/ictxImpl/trans/GnuName.h | 76 + .../corbaname/corbanameURLContextFactory.h | 41 + .../naming/jndi/url/rmi/ContextContinuation.h | 98 + .../jndi/url/rmi/ListBindingsEnumeration.h | 57 + .../naming/jndi/url/rmi/ListEnumeration.h | 44 + .../naming/jndi/url/rmi/RmiContinuation.h | 98 + .../jndi/url/rmi/RmiNamingEnumeration.h | 54 + .../javax/naming/jndi/url/rmi/rmiURLContext.h | 100 + .../jndi/url/rmi/rmiURLContextFactory.h | 50 + .../javax/net/ssl/AbstractSessionContext.h | 71 + libjava/gnu/javax/net/ssl/Base64.h | 43 + libjava/gnu/javax/net/ssl/EntropySource.h | 38 + .../gnu/javax/net/ssl/NullManagerParameters.h | 35 + .../gnu/javax/net/ssl/PreSharedKeyManager.h | 43 + .../net/ssl/PreSharedKeyManagerParameters.h | 49 + .../gnu/javax/net/ssl/PrivateCredentials.h | 56 + .../gnu/javax/net/ssl/SRPManagerParameters.h | 49 + libjava/gnu/javax/net/ssl/SRPTrustManager.h | 62 + libjava/gnu/javax/net/ssl/SSLCipherSuite.h | 66 + .../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 + .../gnu/javax/net/ssl/SessionStoreException.h | 37 + .../gnu/javax/net/ssl/StaticTrustAnchors.h | 54 + .../net/ssl/provider/AbstractHandshake$1.h | 45 + .../provider/AbstractHandshake$CertVerifier.h | 62 + .../provider/AbstractHandshake$DHE_PSKGen.h | 58 + .../ssl/provider/AbstractHandshake$DHPhase.h | 57 + .../net/ssl/provider/AbstractHandshake.h | 142 + .../net/ssl/provider/Alert$Description.h | 79 + .../gnu/javax/net/ssl/provider/Alert$Level.h | 50 + libjava/gnu/javax/net/ssl/provider/Alert.h | 65 + .../javax/net/ssl/provider/AlertException.h | 49 + libjava/gnu/javax/net/ssl/provider/Builder.h | 47 + .../gnu/javax/net/ssl/provider/Certificate.h | 54 + .../net/ssl/provider/CertificateBuilder.h | 48 + ...CertificateRequest$ClientCertificateType.h | 53 + .../provider/CertificateRequest$ClientType.h | 53 + .../net/ssl/provider/CertificateRequest.h | 55 + .../ssl/provider/CertificateRequestBuilder.h | 49 + ...ificateStatusRequest$ResponderIdIterator.h | 50 + .../ssl/provider/CertificateStatusRequest.h | 65 + .../net/ssl/provider/CertificateStatusType.h | 47 + .../javax/net/ssl/provider/CertificateType.h | 49 + .../provider/CertificateURL$CertChainType.h | 49 + .../ssl/provider/CertificateURL$Iterator.h | 49 + .../CertificateURL$URLAndOptionalHash.h | 61 + .../javax/net/ssl/provider/CertificateURL.h | 61 + .../net/ssl/provider/CertificateVerify.h | 51 + .../javax/net/ssl/provider/CipherAlgorithm.h | 51 + .../gnu/javax/net/ssl/provider/CipherSuite.h | 145 + .../ssl/provider/CipherSuiteList$Iterator.h | 60 + .../javax/net/ssl/provider/CipherSuiteList.h | 63 + .../ClientCertificateTypeList$Iterator.h | 60 + .../ssl/provider/ClientCertificateTypeList.h | 60 + .../ssl/provider/ClientDHE_PSKParameters.h | 55 + .../ssl/provider/ClientDiffieHellmanPublic.h | 59 + .../ssl/provider/ClientHandshake$CertLoader.h | 47 + .../provider/ClientHandshake$ClientDHGen.h | 64 + .../provider/ClientHandshake$GenCertVerify.h | 59 + .../provider/ClientHandshake$ParamsVerifier.h | 59 + .../net/ssl/provider/ClientHandshake$RSAGen.h | 52 + .../net/ssl/provider/ClientHandshake$State.h | 62 + .../javax/net/ssl/provider/ClientHandshake.h | 120 + .../gnu/javax/net/ssl/provider/ClientHello.h | 75 + .../net/ssl/provider/ClientHelloBuilder.h | 58 + .../javax/net/ssl/provider/ClientHelloV2.h | 66 + .../net/ssl/provider/ClientKeyExchange.h | 57 + .../ssl/provider/ClientKeyExchangeBuilder.h | 49 + .../net/ssl/provider/ClientPSKParameters.h | 51 + .../ssl/provider/ClientRSA_PSKParameters.h | 55 + .../net/ssl/provider/CompressionMethod.h | 50 + .../provider/CompressionMethodList$Iterator.h | 60 + .../net/ssl/provider/CompressionMethodList.h | 60 + .../gnu/javax/net/ssl/provider/Constructed.h | 39 + .../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 + .../javax/net/ssl/provider/DelegatedTask.h | 57 + .../javax/net/ssl/provider/DiffieHellman.h | 66 + .../net/ssl/provider/DigestInputStream.h | 60 + .../net/ssl/provider/DigestOutputStream.h | 60 + .../net/ssl/provider/EmptyExchangeKeys.h | 41 + .../ssl/provider/EncryptedPreMasterSecret.h | 58 + .../gnu/javax/net/ssl/provider/Enumerated.h | 42 + .../gnu/javax/net/ssl/provider/ExchangeKeys.h | 50 + .../javax/net/ssl/provider/Extension$Type.h | 56 + .../javax/net/ssl/provider/Extension$Value.h | 48 + .../gnu/javax/net/ssl/provider/Extension.h | 68 + .../ExtensionList$ExtensionsIterator.h | 60 + .../javax/net/ssl/provider/ExtensionList.h | 64 + .../gnu/javax/net/ssl/provider/Extensions.h | 54 + libjava/gnu/javax/net/ssl/provider/Finished.h | 64 + .../net/ssl/provider/GNUSecurityParameters.h | 98 + .../javax/net/ssl/provider/Handshake$Body.h | 39 + .../javax/net/ssl/provider/Handshake$Type.h | 60 + .../javax/net/ssl/provider/Handshake$buffer.h | 44 + .../gnu/javax/net/ssl/provider/Handshake.h | 68 + .../gnu/javax/net/ssl/provider/HelloRequest.h | 41 + .../ssl/provider/InputSecurityParameters.h | 90 + .../net/ssl/provider/JCESecurityParameters.h | 76 + .../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 + .../net/ssl/provider/JessieDHPrivateKey.h | 68 + .../net/ssl/provider/JessieDHPublicKey.h | 68 + .../net/ssl/provider/JessieRSAPrivateKey.h | 58 + .../net/ssl/provider/JessieRSAPublicKey.h | 58 + .../net/ssl/provider/KeyExchangeAlgorithm.h | 55 + libjava/gnu/javax/net/ssl/provider/KeyPool.h | 60 + .../gnu/javax/net/ssl/provider/MacAlgorithm.h | 48 + .../gnu/javax/net/ssl/provider/MacException.h | 39 + .../net/ssl/provider/MaxFragmentLength.h | 59 + .../ssl/provider/OutputSecurityParameters.h | 77 + .../net/ssl/provider/OverflowException.h | 40 + .../PreSharedKeyManagerFactoryImpl$Manager.h | 52 + .../provider/PreSharedKeyManagerFactoryImpl.h | 66 + .../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 + .../gnu/javax/net/ssl/provider/RecordInput.h | 56 + .../net/ssl/provider/RecordInputStream.h | 52 + .../net/ssl/provider/RecordOutputStream.h | 54 + .../net/ssl/provider/RecordingInputStream.h | 52 + .../provider/SRPTrustManagerFactory$Manager.h | 73 + .../net/ssl/provider/SRPTrustManagerFactory.h | 66 + .../javax/net/ssl/provider/SSLContextImpl.h | 88 + .../net/ssl/provider/SSLEngineImpl$Mode.h | 47 + .../javax/net/ssl/provider/SSLEngineImpl.h | 128 + libjava/gnu/javax/net/ssl/provider/SSLHMac.h | 69 + .../javax/net/ssl/provider/SSLRSASignature.h | 79 + .../net/ssl/provider/SSLRSASignatureImpl.h | 79 + .../gnu/javax/net/ssl/provider/SSLRandom.h | 74 + .../javax/net/ssl/provider/SSLServerSocket.h | 104 + .../net/ssl/provider/SSLServerSocketFactory.h | 81 + .../ssl/provider/SSLServerSocketFactoryImpl.h | 61 + .../net/ssl/provider/SSLServerSocketImpl.h | 74 + .../gnu/javax/net/ssl/provider/SSLSocket.h | 240 + .../javax/net/ssl/provider/SSLSocketFactory.h | 81 + .../net/ssl/provider/SSLSocketFactoryImpl.h | 64 + .../javax/net/ssl/provider/SSLSocketImpl$1.h | 44 + .../SSLSocketImpl$SocketInputStream.h | 58 + .../SSLSocketImpl$SocketOutputStream.h | 58 + .../javax/net/ssl/provider/SSLSocketImpl.h | 160 + .../net/ssl/provider/SSLSocketInputStream.h | 52 + .../net/ssl/provider/SSLSocketOutputStream.h | 51 + .../javax/net/ssl/provider/SSLv3HMacMD5Impl.h | 62 + .../javax/net/ssl/provider/SSLv3HMacSHAImpl.h | 62 + .../net/ssl/provider/SecurityParameters.h | 54 + .../ssl/provider/ServerDHE_PSKParameters.h | 62 + .../javax/net/ssl/provider/ServerDHParams.h | 65 + .../ssl/provider/ServerHandshake$CertLoader.h | 44 + .../net/ssl/provider/ServerHandshake$GenDH.h | 53 + .../provider/ServerHandshake$RSAKeyExchange.h | 48 + .../ServerHandshake$RSA_PSKExchange.h | 56 + .../net/ssl/provider/ServerHandshake$State.h | 63 + .../javax/net/ssl/provider/ServerHandshake.h | 129 + .../gnu/javax/net/ssl/provider/ServerHello.h | 69 + .../net/ssl/provider/ServerHelloBuilder.h | 60 + .../javax/net/ssl/provider/ServerHelloDone.h | 41 + .../net/ssl/provider/ServerKeyExchange.h | 57 + .../ssl/provider/ServerKeyExchangeBuilder.h | 50 + .../ssl/provider/ServerKeyExchangeParams.h | 41 + .../ssl/provider/ServerNameList$Iterator.h | 49 + .../ssl/provider/ServerNameList$NameType.h | 48 + .../ssl/provider/ServerNameList$ServerName.h | 56 + .../javax/net/ssl/provider/ServerNameList.h | 58 + .../net/ssl/provider/ServerPSKParameters.h | 56 + .../javax/net/ssl/provider/ServerRSAParams.h | 61 + .../ssl/provider/ServerRSA_PSKParameters.h | 48 + .../gnu/javax/net/ssl/provider/Session$ID.h | 49 + libjava/gnu/javax/net/ssl/provider/Session.h | 134 + .../javax/net/ssl/provider/SessionContext.h | 70 + .../ssl/provider/SessionImpl$PrivateData.h | 43 + .../gnu/javax/net/ssl/provider/SessionImpl.h | 87 + .../gnu/javax/net/ssl/provider/Signature.h | 60 + .../net/ssl/provider/SignatureAlgorithm.h | 53 + .../net/ssl/provider/SimpleSessionContext$1.h | 46 + .../net/ssl/provider/SimpleSessionContext.h | 59 + .../net/ssl/provider/SynchronizedRandom.h | 62 + libjava/gnu/javax/net/ssl/provider/TLSHMac.h | 54 + .../gnu/javax/net/ssl/provider/TLSRandom.h | 71 + .../javax/net/ssl/provider/TruncatedHMAC.h | 49 + .../TrustedAuthorities$AuthoritiesIterator.h | 49 + .../TrustedAuthorities$IdentifierType.h | 51 + .../TrustedAuthorities$TrustedAuthority.h | 70 + .../net/ssl/provider/TrustedAuthorities.h | 56 + .../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 + .../net/ssl/provider/Util$WrappedBuffer.h | 51 + libjava/gnu/javax/net/ssl/provider/Util.h | 76 + .../ssl/provider/X500PrincipalList$Iterator.h | 72 + .../net/ssl/provider/X500PrincipalList.h | 76 + .../provider/X509KeyManagerFactory$Manager.h | 85 + .../net/ssl/provider/X509KeyManagerFactory.h | 72 + .../X509TrustManagerFactory$Manager.h | 61 + .../ssl/provider/X509TrustManagerFactory.h | 69 + .../provider/XMLSessionContext$SAXHandler.h | 102 + .../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 + .../gnu/javax/print/CupsPrintServiceLookup.h | 57 + libjava/gnu/javax/print/CupsServer.h | 52 + .../gnu/javax/print/PrintAttributeException.h | 53 + .../gnu/javax/print/PrintFlavorException.h | 48 + libjava/gnu/javax/print/PrintUriException.h | 48 + .../PrinterDialog$AppearancePanel$Color.h | 60 + ...nterDialog$AppearancePanel$JobAttributes.h | 80 + .../PrinterDialog$AppearancePanel$Quality.h | 63 + ...PrinterDialog$AppearancePanel$SidesPanel.h | 61 + .../print/PrinterDialog$AppearancePanel.h | 48 + ...interDialog$GeneralPanel$CopiesAndSorted.h | 70 + .../PrinterDialog$GeneralPanel$PrintRange.h | 71 + ...PrinterDialog$GeneralPanel$PrintServices.h | 71 + .../javax/print/PrinterDialog$GeneralPanel.h | 46 + .../PrinterDialog$PageSetupPanel$Margins.h | 70 + .../PrinterDialog$PageSetupPanel$MediaTypes.h | 63 + ...PrinterDialog$PageSetupPanel$Orientation.h | 62 + .../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 + .../javax/print/ipp/IppMultiDocPrintService.h | 54 + libjava/gnu/javax/print/ipp/IppPrintService.h | 111 + .../print/ipp/IppRequest$RequestWriter.h | 78 + libjava/gnu/javax/print/ipp/IppRequest.h | 88 + .../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 + .../javax/print/ipp/MultiDocPrintJobImpl.h | 48 + .../javax/print/ipp/attribute/CharsetSyntax.h | 46 + .../ipp/attribute/DefaultValueAttribute.h | 50 + .../ipp/attribute/DetailedStatusMessage.h | 40 + .../print/ipp/attribute/DocumentAccessError.h | 40 + .../ipp/attribute/NaturalLanguageSyntax.h | 46 + .../print/ipp/attribute/RequestedAttributes.h | 46 + .../javax/print/ipp/attribute/StatusMessage.h | 40 + .../print/ipp/attribute/UnknownAttribute.h | 61 + .../ipp/attribute/defaults/CopiesDefault.h | 55 + .../defaults/DocumentFormatDefault.h | 54 + .../attribute/defaults/FinishingsDefault.h | 85 + .../attribute/defaults/JobHoldUntilDefault.h | 62 + .../attribute/defaults/JobPriorityDefault.h | 55 + .../ipp/attribute/defaults/JobSheetsDefault.h | 56 + .../ipp/attribute/defaults/MediaDefault.h | 54 + .../MultipleDocumentHandlingDefault.h | 70 + .../ipp/attribute/defaults/NumberUpDefault.h | 55 + .../defaults/OrientationRequestedDefault.h | 71 + .../attribute/defaults/PrintQualityDefault.h | 70 + .../defaults/PrinterResolutionDefault.h | 55 + .../ipp/attribute/defaults/SidesDefault.h | 71 + .../ipp/attribute/job/AttributesCharset.h | 44 + .../attribute/job/AttributesNaturalLanguage.h | 44 + .../attribute/job/JobDetailedStatusMessages.h | 43 + .../attribute/job/JobDocumentAccessErrors.h | 43 + .../gnu/javax/print/ipp/attribute/job/JobId.h | 43 + .../print/ipp/attribute/job/JobMoreInfo.h | 50 + .../print/ipp/attribute/job/JobPrinterUri.h | 50 + .../print/ipp/attribute/job/JobStateMessage.h | 43 + .../javax/print/ipp/attribute/job/JobUri.h | 50 + .../ipp/attribute/printer/CharsetConfigured.h | 43 + .../ipp/attribute/printer/DocumentFormat.h | 51 + .../printer/MultipleOperationTimeOut.h | 43 + .../printer/NaturalLanguageConfigured.h | 43 + .../attribute/printer/PrinterCurrentTime.h | 44 + .../printer/PrinterDriverInstaller.h | 50 + .../attribute/printer/PrinterStateMessage.h | 43 + .../ipp/attribute/printer/PrinterUpTime.h | 43 + .../attribute/supported/CharsetSupported.h | 43 + .../supported/CompressionSupported.h | 74 + .../supported/DocumentFormatSupported.h | 43 + .../attribute/supported/FinishingsSupported.h | 89 + .../GeneratedNaturalLanguageSupported.h | 43 + .../supported/IppVersionsSupported.h | 65 + .../supported/JobHoldUntilSupported.h | 51 + .../attribute/supported/JobSheetsSupported.h | 66 + .../ipp/attribute/supported/MediaSupported.h | 59 + .../MultipleDocumentHandlingSupported.h | 74 + .../supported/MultipleDocumentJobsSupported.h | 66 + .../attribute/supported/OperationsSupported.h | 82 + .../supported/OrientationRequestedSupported.h | 75 + .../attribute/supported/PageRangesSupported.h | 66 + .../supported/PrintQualitySupported.h | 74 + .../supported/PrinterResolutionSupported.h | 61 + .../attribute/supported/PrinterUriSupported.h | 50 + .../ipp/attribute/supported/SidesSupported.h | 69 + .../supported/UriAuthenticationSupported.h | 68 + .../supported/UriSecuritySupported.h | 66 + libjava/gnu/javax/rmi/CORBA/CorbaInput.h | 94 + libjava/gnu/javax/rmi/CORBA/CorbaOutput.h | 76 + .../rmi/CORBA/DefaultWriteObjectTester.h | 40 + libjava/gnu/javax/rmi/CORBA/DelegateFactory.h | 40 + .../rmi/CORBA/GetDelegateInstanceException.h | 39 + .../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 + .../gnu/javax/rmi/CORBA/StubDelegateImpl.h | 70 + libjava/gnu/javax/rmi/CORBA/TieTargetRecord.h | 50 + .../gnu/javax/rmi/CORBA/UtilDelegateImpl.h | 101 + .../rmi/CORBA/ValueHandlerDelegateImpl.h | 61 + libjava/gnu/javax/security/auth/Password.h | 55 + .../auth/callback/AWTCallbackHandler.h | 94 + .../auth/callback/AbstractCallbackHandler.h | 90 + .../auth/callback/CertificateCallback.h | 52 + .../auth/callback/ConsoleCallbackHandler.h | 69 + .../auth/callback/DefaultCallbackHandler.h | 66 + .../security/auth/callback/GnuCallbacks$1.h | 44 + .../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 + .../auth/callback/SwingCallbackHandler.h | 73 + .../security/auth/login/ConfigFileParser.h | 52 + .../security/auth/login/ConfigFileTokenizer.h | 62 + .../security/auth/login/GnuConfiguration.h | 70 + .../sound/midi/alsa/AlsaInputPortDevice.h | 59 + .../alsa/AlsaMidiDeviceProvider$AlsaInfo.h | 51 + ...AlsaMidiDeviceProvider$AlsaInputPortInfo.h | 51 + ...lsaMidiDeviceProvider$AlsaOutputPortInfo.h | 51 + .../AlsaMidiDeviceProvider$AlsaPortInfo.h | 42 + ...AlsaMidiDeviceProvider$AlsaSequencerInfo.h | 51 + .../sound/midi/alsa/AlsaMidiDeviceProvider.h | 60 + .../sound/midi/alsa/AlsaMidiSequencerDevice.h | 112 + .../sound/midi/alsa/AlsaOutputPortDevice.h | 59 + .../midi/alsa/AlsaPortDevice$AlsaReceiver.h | 54 + .../alsa/AlsaPortDevice$AlsaTransmitter.h | 59 + .../javax/sound/midi/alsa/AlsaPortDevice.h | 66 + .../midi/dssi/DSSIMidiDeviceProvider$1.h | 40 + .../dssi/DSSIMidiDeviceProvider$DSSIInfo.h | 42 + .../sound/midi/dssi/DSSIMidiDeviceProvider.h | 67 + .../dssi/DSSISynthesizer$DSSIInstrument.h | 55 + .../dssi/DSSISynthesizer$DSSIMidiChannel.h | 69 + .../midi/dssi/DSSISynthesizer$DSSIReceiver.h | 55 + .../midi/dssi/DSSISynthesizer$DSSISoundbank.h | 73 + .../javax/sound/midi/dssi/DSSISynthesizer.h | 104 + .../sound/midi/file/ExtendedMidiFileFormat.h | 42 + .../sound/midi/file/MidiDataInputStream.h | 39 + .../sound/midi/file/MidiDataOutputStream.h | 40 + .../javax/sound/midi/file/MidiFileReader.h | 62 + .../javax/sound/midi/file/MidiFileWriter.h | 60 + .../sound/sampled/AU/AUReader$AUFormatType.h | 38 + .../sound/sampled/AU/AUReader$AUHeader.h | 73 + libjava/gnu/javax/sound/sampled/AU/AUReader.h | 62 + .../gnu/javax/sound/sampled/WAV/WAVReader.h | 66 + .../plaf/gnu/GNULookAndFeel$CheckBoxIcon.h | 50 + .../plaf/gnu/GNULookAndFeel$RadioButtonIcon.h | 50 + .../gnu/javax/swing/plaf/gnu/GNULookAndFeel.h | 64 + .../swing/plaf/metal/CustomizableTheme.h | 76 + .../text/html/CharacterAttributeTranslator.h | 64 + .../CombinedAttributes$CombinedEnumeration.h | 47 + .../swing/text/html/CombinedAttributes.h | 64 + .../ImageViewIconFactory$LoadingImageIcon.h | 49 + .../html/ImageViewIconFactory$NoImageIcon.h | 49 + .../swing/text/html/ImageViewIconFactory.h | 51 + .../javax/swing/text/html/css/BorderStyle.h | 42 + .../javax/swing/text/html/css/BorderWidth.h | 42 + .../gnu/javax/swing/text/html/css/CSSColor.h | 57 + .../swing/text/html/css/CSSLexicalException.h | 42 + .../javax/swing/text/html/css/CSSParser$1.h | 48 + .../gnu/javax/swing/text/html/css/CSSParser.h | 65 + .../swing/text/html/css/CSSParserCallback.h | 46 + .../swing/text/html/css/CSSParserException.h | 41 + .../javax/swing/text/html/css/CSSScanner.h | 92 + .../gnu/javax/swing/text/html/css/FontSize.h | 72 + .../gnu/javax/swing/text/html/css/FontStyle.h | 45 + .../javax/swing/text/html/css/FontWeight.h | 45 + .../gnu/javax/swing/text/html/css/Length.h | 62 + .../gnu/javax/swing/text/html/css/Selector.h | 55 + .../parser/GnuParserDelegator$gnuParser.h | 75 + .../text/html/parser/GnuParserDelegator.h | 67 + .../javax/swing/text/html/parser/HTML_401F.h | 330 + .../swing/text/html/parser/HTML_401Swing.h | 65 + .../html/parser/SmallHtmlAttributeSet$1.h | 49 + .../text/html/parser/SmallHtmlAttributeSet.h | 71 + .../gnu/javax/swing/text/html/parser/gnuDTD.h | 81 + .../text/html/parser/htmlAttributeSet$1.h | 50 + .../swing/text/html/parser/htmlAttributeSet.h | 62 + .../text/html/parser/htmlValidator$hTag.h | 74 + .../swing/text/html/parser/htmlValidator.h | 89 + .../html/parser/models/PCDATAonly_model.h | 48 + .../html/parser/models/TableRowContentModel.h | 67 + .../swing/text/html/parser/models/list.h | 66 + .../text/html/parser/models/noTagModel.h | 53 + .../swing/text/html/parser/models/node.h | 68 + .../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 + .../swing/text/html/parser/support/Parser.h | 154 + .../html/parser/support/gnuStringIntMapper.h | 54 + .../text/html/parser/support/low/Buffer.h | 72 + .../text/html/parser/support/low/Constants.h | 89 + .../text/html/parser/support/low/Location.h | 52 + .../html/parser/support/low/ParseException.h | 47 + .../text/html/parser/support/low/Queue.h | 61 + .../html/parser/support/low/ReaderTokenizer.h | 79 + .../text/html/parser/support/low/Token.h | 63 + .../swing/text/html/parser/support/low/node.h | 50 + .../text/html/parser/support/low/pattern.h | 53 + .../html/parser/support/parameterDefaulter.h | 66 + .../html/parser/support/textPreProcessor.h | 51 + libjava/gnu/javax/swing/tree/GnuPath.h | 38 + .../gnu/xml/aelfred2/JAXPFactory$JaxpParser.h | 59 + libjava/gnu/xml/aelfred2/JAXPFactory.h | 48 + libjava/gnu/xml/aelfred2/SAXDriver$Adapter.h | 61 + .../gnu/xml/aelfred2/SAXDriver$Attribute.h | 38 + libjava/gnu/xml/aelfred2/SAXDriver.h | 167 + .../xml/aelfred2/XmlParser$AttributeDecl.h | 38 + .../gnu/xml/aelfred2/XmlParser$ElementDecl.h | 36 + .../gnu/xml/aelfred2/XmlParser$EntityInfo.h | 38 + .../aelfred2/XmlParser$ExternalIdentifiers.h | 37 + libjava/gnu/xml/aelfred2/XmlParser$Input.h | 54 + libjava/gnu/xml/aelfred2/XmlParser.h | 274 + .../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 + .../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 + .../gnu/xml/dom/DomDocumentBuilderFactory.h | 71 + .../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 + .../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 + .../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 + .../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 + .../gnu/xml/dom/html2/DomHTMLAnchorElement.h | 63 + .../gnu/xml/dom/html2/DomHTMLAppletElement.h | 63 + .../gnu/xml/dom/html2/DomHTMLAreaElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLBRElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLBaseElement.h | 41 + .../xml/dom/html2/DomHTMLBaseFontElement.h | 43 + .../gnu/xml/dom/html2/DomHTMLBodyElement.h | 49 + .../gnu/xml/dom/html2/DomHTMLButtonElement.h | 62 + libjava/gnu/xml/dom/html2/DomHTMLCollection.h | 69 + .../gnu/xml/dom/html2/DomHTMLDListElement.h | 39 + .../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 + .../gnu/xml/dom/html2/DomHTMLEmbedElement.h | 53 + .../xml/dom/html2/DomHTMLFieldSetElement.h | 51 + .../gnu/xml/dom/html2/DomHTMLFontElement.h | 43 + .../gnu/xml/dom/html2/DomHTMLFormElement.h | 66 + .../gnu/xml/dom/html2/DomHTMLFrameElement.h | 64 + .../xml/dom/html2/DomHTMLFrameSetElement.h | 41 + libjava/gnu/xml/dom/html2/DomHTMLHRElement.h | 45 + .../gnu/xml/dom/html2/DomHTMLHeadElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLHeadingElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLHtmlElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLIFrameElement.h | 68 + .../gnu/xml/dom/html2/DomHTMLImageElement.h | 61 + libjava/gnu/xml/dom/html2/DomHTMLImpl.h | 49 + .../gnu/xml/dom/html2/DomHTMLInputElement.h | 93 + .../gnu/xml/dom/html2/DomHTMLIsIndexElement.h | 53 + libjava/gnu/xml/dom/html2/DomHTMLLIElement.h | 41 + .../gnu/xml/dom/html2/DomHTMLLabelElement.h | 55 + .../gnu/xml/dom/html2/DomHTMLLegendElement.h | 55 + .../gnu/xml/dom/html2/DomHTMLLinkElement.h | 55 + libjava/gnu/xml/dom/html2/DomHTMLMapElement.h | 53 + .../gnu/xml/dom/html2/DomHTMLMenuElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLMetaElement.h | 45 + libjava/gnu/xml/dom/html2/DomHTMLModElement.h | 41 + .../gnu/xml/dom/html2/DomHTMLOListElement.h | 43 + .../gnu/xml/dom/html2/DomHTMLObjectElement.h | 103 + .../xml/dom/html2/DomHTMLOptGroupElement.h | 41 + .../gnu/xml/dom/html2/DomHTMLOptionElement.h | 66 + .../xml/dom/html2/DomHTMLParagraphElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLParamElement.h | 45 + libjava/gnu/xml/dom/html2/DomHTMLParser.h | 81 + libjava/gnu/xml/dom/html2/DomHTMLPreElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLQuoteElement.h | 39 + .../gnu/xml/dom/html2/DomHTMLScriptElement.h | 51 + .../gnu/xml/dom/html2/DomHTMLSelectElement.h | 75 + .../gnu/xml/dom/html2/DomHTMLStyleElement.h | 43 + .../dom/html2/DomHTMLTableCaptionElement.h | 39 + .../xml/dom/html2/DomHTMLTableCellElement.h | 66 + .../xml/dom/html2/DomHTMLTableColElement.h | 49 + .../gnu/xml/dom/html2/DomHTMLTableElement.h | 91 + .../xml/dom/html2/DomHTMLTableRowElement.h | 70 + .../dom/html2/DomHTMLTableSectionElement.h | 66 + .../xml/dom/html2/DomHTMLTextAreaElement.h | 76 + .../gnu/xml/dom/html2/DomHTMLTitleElement.h | 39 + .../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 + .../gnu/xml/libxmlj/dom/GnomeCDATASection.h | 36 + .../gnu/xml/libxmlj/dom/GnomeCharacterData.h | 45 + libjava/gnu/xml/libxmlj/dom/GnomeComment.h | 36 + .../gnu/xml/libxmlj/dom/GnomeDOMException.h | 38 + .../gnu/xml/libxmlj/dom/GnomeDOMStringList.h | 44 + libjava/gnu/xml/libxmlj/dom/GnomeDocument.h | 148 + .../xml/libxmlj/dom/GnomeDocumentBuilder.h | 86 + .../libxmlj/dom/GnomeDocumentBuilderFactory.h | 53 + .../xml/libxmlj/dom/GnomeDocumentFragment.h | 36 + .../gnu/xml/libxmlj/dom/GnomeDocumentType.h | 53 + libjava/gnu/xml/libxmlj/dom/GnomeElement.h | 72 + libjava/gnu/xml/libxmlj/dom/GnomeEntity.h | 43 + .../xml/libxmlj/dom/GnomeEntityReference.h | 36 + .../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 + .../libxmlj/dom/GnomeProcessingInstruction.h | 40 + libjava/gnu/xml/libxmlj/dom/GnomeText.h | 50 + libjava/gnu/xml/libxmlj/dom/GnomeTypeInfo.h | 42 + .../xml/libxmlj/dom/GnomeXPathExpression.h | 62 + .../xml/libxmlj/dom/GnomeXPathNSResolver.h | 50 + .../gnu/xml/libxmlj/dom/GnomeXPathNodeList.h | 55 + .../gnu/xml/libxmlj/dom/GnomeXPathResult.h | 63 + libjava/gnu/xml/libxmlj/sax/GnomeLocator.h | 54 + libjava/gnu/xml/libxmlj/sax/GnomeSAXParser.h | 57 + .../xml/libxmlj/sax/GnomeSAXParserFactory.h | 51 + libjava/gnu/xml/libxmlj/sax/GnomeXMLReader.h | 130 + libjava/gnu/xml/libxmlj/sax/Namespaces.h | 42 + .../xml/libxmlj/sax/StringArrayAttributes.h | 57 + libjava/gnu/xml/libxmlj/sax/XMLName.h | 46 + .../transform/ErrorListenerErrorHandler.h | 65 + .../xml/libxmlj/transform/GnomeTransformer.h | 106 + ...ormerFactory$AssociatedStylesheetHandler.h | 44 + .../transform/GnomeTransformerFactory.h | 82 + .../transform/URIResolverEntityResolver.h | 60 + libjava/gnu/xml/libxmlj/util/EmptyNodeList.h | 48 + .../gnu/xml/libxmlj/util/NamedInputStream.h | 44 + .../xml/libxmlj/util/StandaloneDocumentType.h | 97 + .../gnu/xml/libxmlj/util/StandaloneLocator.h | 45 + .../xml/libxmlj/util/XMLJ$XMLJShutdownHook.h | 37 + libjava/gnu/xml/libxmlj/util/XMLJ.h | 81 + .../gnu/xml/pipeline/CallFilter$Requestor.h | 39 + libjava/gnu/xml/pipeline/CallFilter.h | 73 + .../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 + .../xml/pipeline/PipelineFactory$Pipeline.h | 42 + .../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 + .../ValidationConsumer$AttributeInfo.h | 37 + .../ValidationConsumer$ChildrenRecognizer.h | 56 + .../pipeline/ValidationConsumer$ElementInfo.h | 41 + .../ValidationConsumer$EmptyRecognizer.h | 38 + .../ValidationConsumer$MixedRecognizer.h | 42 + .../pipeline/ValidationConsumer$Recognizer.h | 41 + libjava/gnu/xml/pipeline/ValidationConsumer.h | 105 + .../gnu/xml/pipeline/WellFormednessFilter.h | 74 + .../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 + .../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 + .../gnu/xml/stream/NotationDeclarationImpl.h | 53 + .../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 + .../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 + .../xml/stream/XMLParser$AnyContentModel.h | 35 + libjava/gnu/xml/stream/XMLParser$Attribute.h | 44 + .../gnu/xml/stream/XMLParser$AttributeDecl.h | 41 + .../gnu/xml/stream/XMLParser$ContentModel.h | 44 + .../xml/stream/XMLParser$ContentParticle.h | 38 + libjava/gnu/xml/stream/XMLParser$Doctype.h | 74 + .../stream/XMLParser$ElementContentModel.h | 40 + .../xml/stream/XMLParser$EmptyContentModel.h | 35 + .../gnu/xml/stream/XMLParser$ExternalIds.h | 38 + libjava/gnu/xml/stream/XMLParser$Input.h | 83 + .../xml/stream/XMLParser$MixedContentModel.h | 40 + libjava/gnu/xml/stream/XMLParser.h | 296 + libjava/gnu/xml/stream/XMLStreamWriterImpl.h | 119 + .../gnu/xml/transform/AbstractNumberNode.h | 77 + libjava/gnu/xml/transform/ApplyImportsNode.h | 58 + .../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 + .../xml/transform/ElementAvailableFunction.h | 69 + libjava/gnu/xml/transform/ElementNode.h | 68 + .../xml/transform/ErrorListenerErrorHandler.h | 59 + libjava/gnu/xml/transform/ForEachNode.h | 67 + .../gnu/xml/transform/FormatNumberFunction.h | 67 + .../xml/transform/FunctionAvailableFunction.h | 70 + .../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 + .../xml/transform/ProcessingInstructionNode.h | 61 + libjava/gnu/xml/transform/SAXSerializer.h | 75 + .../gnu/xml/transform/SAXTemplatesHandler.h | 51 + .../gnu/xml/transform/SAXTransformerHandler.h | 56 + libjava/gnu/xml/transform/SortKey.h | 74 + libjava/gnu/xml/transform/StreamSerializer.h | 103 + .../gnu/xml/transform/StrippingInstruction.h | 40 + libjava/gnu/xml/transform/Stylesheet.h | 170 + .../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 + .../xml/transform/TransformerFactoryImpl.h | 101 + libjava/gnu/xml/transform/TransformerImpl.h | 100 + .../transform/TransformerOutputProperties.h | 43 + .../xml/transform/URIResolverEntityResolver.h | 57 + .../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 + .../SAXNullTransformerFactory$DomHandler.h | 54 + .../SAXNullTransformerFactory$DomTerminus.h | 46 + ...AXNullTransformerFactory$ListenerAdapter.h | 62 + ...SAXNullTransformerFactory$LocatorAdapter.h | 43 + .../SAXNullTransformerFactory$NullHandler.h | 52 + ...AXNullTransformerFactory$NullTransformer.h | 69 + .../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 + .../gnu/xml/validation/datatype/Annotation.h | 37 + .../xml/validation/datatype/AnySimpleType.h | 36 + libjava/gnu/xml/validation/datatype/AnyType.h | 36 + .../gnu/xml/validation/datatype/AnyURIType.h | 53 + .../validation/datatype/AtomicSimpleType.h | 61 + .../validation/datatype/Base64BinaryType.h | 56 + .../gnu/xml/validation/datatype/BooleanType.h | 55 + .../gnu/xml/validation/datatype/ByteType.h | 57 + .../xml/validation/datatype/DateTimeType.h | 54 + .../gnu/xml/validation/datatype/DateType.h | 54 + .../gnu/xml/validation/datatype/DecimalType.h | 54 + .../gnu/xml/validation/datatype/DoubleType.h | 55 + .../datatype/DurationType$Duration.h | 46 + .../xml/validation/datatype/DurationType.h | 54 + .../xml/validation/datatype/EntitiesType.h | 54 + .../gnu/xml/validation/datatype/EntityType.h | 54 + .../validation/datatype/EnumerationFacet.h | 39 + libjava/gnu/xml/validation/datatype/Facet.h | 51 + .../gnu/xml/validation/datatype/FloatType.h | 55 + .../validation/datatype/FractionDigitsFacet.h | 40 + .../xml/validation/datatype/GDayType$GDay.h | 42 + .../gnu/xml/validation/datatype/GDayType.h | 54 + .../datatype/GMonthDayType$GMonthDay.h | 43 + .../xml/validation/datatype/GMonthDayType.h | 54 + .../validation/datatype/GMonthType$GMonth.h | 42 + .../gnu/xml/validation/datatype/GMonthType.h | 54 + .../datatype/GYearMonthType$GYearMonth.h | 43 + .../xml/validation/datatype/GYearMonthType.h | 54 + .../xml/validation/datatype/GYearType$GYear.h | 42 + .../gnu/xml/validation/datatype/GYearType.h | 54 + .../xml/validation/datatype/HexBinaryType.h | 54 + .../gnu/xml/validation/datatype/IDRefType.h | 54 + .../gnu/xml/validation/datatype/IDRefsType.h | 54 + libjava/gnu/xml/validation/datatype/IDType.h | 54 + libjava/gnu/xml/validation/datatype/IntType.h | 57 + .../gnu/xml/validation/datatype/IntegerType.h | 54 + .../xml/validation/datatype/LanguageType.h | 54 + .../gnu/xml/validation/datatype/LengthFacet.h | 40 + .../xml/validation/datatype/ListSimpleType.h | 59 + .../gnu/xml/validation/datatype/LongType.h | 57 + .../validation/datatype/MaxExclusiveFacet.h | 43 + .../validation/datatype/MaxInclusiveFacet.h | 43 + .../xml/validation/datatype/MaxLengthFacet.h | 40 + .../validation/datatype/MinExclusiveFacet.h | 43 + .../validation/datatype/MinInclusiveFacet.h | 43 + .../xml/validation/datatype/MinLengthFacet.h | 40 + .../gnu/xml/validation/datatype/NCNameType.h | 53 + .../gnu/xml/validation/datatype/NMTokenType.h | 53 + .../xml/validation/datatype/NMTokensType.h | 55 + .../gnu/xml/validation/datatype/NameType.h | 53 + .../validation/datatype/NegativeIntegerType.h | 54 + .../datatype/NonNegativeIntegerType.h | 54 + .../datatype/NonPositiveIntegerType.h | 54 + .../datatype/NormalizedStringType.h | 53 + .../xml/validation/datatype/NotationType.h | 54 + .../xml/validation/datatype/PatternFacet.h | 39 + .../validation/datatype/PositiveIntegerType.h | 54 + .../gnu/xml/validation/datatype/QNameType.h | 54 + .../gnu/xml/validation/datatype/ShortType.h | 57 + .../gnu/xml/validation/datatype/SimpleType.h | 81 + .../gnu/xml/validation/datatype/StringType.h | 42 + .../xml/validation/datatype/TimeType$Time.h | 43 + .../gnu/xml/validation/datatype/TimeType.h | 54 + .../gnu/xml/validation/datatype/TokenType.h | 53 + .../validation/datatype/TotalDigitsFacet.h | 40 + libjava/gnu/xml/validation/datatype/Type.h | 47 + .../gnu/xml/validation/datatype/TypeBuilder.h | 79 + .../gnu/xml/validation/datatype/TypeLibrary.h | 97 + .../validation/datatype/TypeLibraryFactory.h | 46 + .../xml/validation/datatype/UnionSimpleType.h | 59 + .../validation/datatype/UnsignedByteType.h | 56 + .../xml/validation/datatype/UnsignedIntType.h | 56 + .../validation/datatype/UnsignedLongType.h | 56 + .../validation/datatype/UnsignedShortType.h | 56 + .../xml/validation/datatype/WhiteSpaceFacet.h | 43 + .../xml/validation/relaxng/AnyNameNameClass.h | 39 + .../xml/validation/relaxng/AttributePattern.h | 40 + .../xml/validation/relaxng/ChoiceNameClass.h | 40 + .../xml/validation/relaxng/ChoicePattern.h | 39 + .../gnu/xml/validation/relaxng/DataPattern.h | 52 + libjava/gnu/xml/validation/relaxng/Define.h | 39 + .../xml/validation/relaxng/ElementPattern.h | 40 + .../gnu/xml/validation/relaxng/EmptyPattern.h | 37 + .../validation/relaxng/FullSyntaxBuilder.h | 132 + libjava/gnu/xml/validation/relaxng/Grammar.h | 54 + .../xml/validation/relaxng/GrammarException.h | 36 + .../xml/validation/relaxng/GrammarValidator.h | 79 + .../gnu/xml/validation/relaxng/GroupPattern.h | 39 + .../validation/relaxng/InterleavePattern.h | 39 + .../gnu/xml/validation/relaxng/ListPattern.h | 38 + .../xml/validation/relaxng/NSNameNameClass.h | 40 + .../gnu/xml/validation/relaxng/NameClass.h | 37 + .../xml/validation/relaxng/NameNameClass.h | 39 + .../validation/relaxng/NotAllowedPattern.h | 37 + .../xml/validation/relaxng/OneOrMorePattern.h | 38 + libjava/gnu/xml/validation/relaxng/Param.h | 38 + libjava/gnu/xml/validation/relaxng/Pattern.h | 36 + .../validation/relaxng/RELAXNGSchemaFactory.h | 85 + .../gnu/xml/validation/relaxng/RefPattern.h | 37 + .../gnu/xml/validation/relaxng/TextPattern.h | 37 + .../gnu/xml/validation/relaxng/ValuePattern.h | 51 + .../xml/validation/xmlschema/AnyAttribute.h | 46 + .../xmlschema/AttributeDeclaration.h | 60 + .../xml/validation/xmlschema/AttributeUse.h | 41 + .../xml/validation/xmlschema/ComplexType.h | 57 + .../validation/xmlschema/ElementDeclaration.h | 63 + .../gnu/xml/validation/xmlschema/Particle.h | 39 + .../xmlschema/ValidationException.h | 46 + .../gnu/xml/validation/xmlschema/XMLSchema.h | 81 + .../xmlschema/XMLSchemaAttributeTypeInfo.h | 52 + .../validation/xmlschema/XMLSchemaBuilder.h | 98 + .../xmlschema/XMLSchemaElementTypeInfo.h | 51 + .../xmlschema/XMLSchemaSchemaFactory.h | 85 + .../validation/xmlschema/XMLSchemaTypeInfo.h | 45 + .../xmlschema/XMLSchemaTypeInfoProvider.h | 54 + .../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 + .../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 + .../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 + .../gnu/xml/xpath/SubstringAfterFunction.h | 63 + .../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 + .../gnu/xml/xpath/XPathParser$YyCheckClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyDefRedClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyDgotoClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyGindexClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyLenClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyLhsClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyNameClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyRindexClass.h | 36 + .../gnu/xml/xpath/XPathParser$YySindexClass.h | 36 + .../gnu/xml/xpath/XPathParser$YyTableClass.h | 36 + .../gnu/xml/xpath/XPathParser$yyException.h | 32 + libjava/gnu/xml/xpath/XPathParser$yyInput.h | 34 + libjava/gnu/xml/xpath/XPathParser.h | 124 + .../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 | 126 +- 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 + .../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 + .../java/awt/Canvas$CanvasBltBufferStrategy.h | 32 + .../awt/Canvas$CanvasFlipBufferStrategy.h | 32 + libjava/java/awt/Canvas.h | 64 + libjava/java/awt/CardLayout.h | 68 + .../java/awt/Checkbox$AccessibleAWTCheckbox.h | 61 + libjava/java/awt/Checkbox.h | 82 + libjava/java/awt/CheckboxGroup.h | 39 + ...oxMenuItem$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 + .../java/awt/ColorPaintContext$ColorRaster.h | 39 + libjava/java/awt/ColorPaintContext.h | 46 + ...TComponent$AccessibleAWTComponentHandler.h | 42 + ...leAWTComponent$AccessibleAWTFocusHandler.h | 40 + .../awt/Component$AccessibleAWTComponent.h | 104 + .../java/awt/Component$BltBufferStrategy.h | 59 + .../java/awt/Component$FlipBufferStrategy.h | 63 + ...mponent$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 + ...eAWTContainer$AccessibleContainerHandler.h | 40 + .../awt/Container$AccessibleAWTContainer.h | 53 + .../java/awt/Container$GfxPaintAllVisitor.h | 35 + libjava/java/awt/Container$GfxPaintVisitor.h | 35 + .../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 + .../awt/ContainerOrderFocusTraversalPolicy.h | 52 + libjava/java/awt/Cursor.h | 69 + .../java/awt/DefaultFocusTraversalPolicy.h | 35 + ...ltKeyboardFocusManager$EventDelayRequest.h | 48 + .../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 + .../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 + .../awt/JobAttributes$DefaultSelectionType.h | 35 + .../java/awt/JobAttributes$DestinationType.h | 34 + libjava/java/awt/JobAttributes$DialogType.h | 35 + ...bAttributes$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 + ...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 + .../java/awt/MenuBar$AccessibleAWTMenuBar.h | 44 + libjava/java/awt/MenuBar.h | 63 + ...MenuComponent$AccessibleAWTMenuComponent.h | 103 + libjava/java/awt/MenuComponent.h | 102 + libjava/java/awt/MenuContainer.h | 34 + .../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 + .../PageAttributes$OrientationRequestedType.h | 34 + libjava/java/awt/PageAttributes$OriginType.h | 34 + .../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 + .../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 + .../awt/ScrollPane$AccessibleAWTScrollPane.h | 44 + libjava/java/awt/ScrollPane.h | 89 + libjava/java/awt/ScrollPaneAdjustable.h | 76 + .../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 + .../java/awt/TextArea$AccessibleAWTTextArea.h | 44 + libjava/java/awt/TextArea.h | 80 + ...TextComponent$AccessibleAWTTextComponent.h | 72 + libjava/java/awt/TextComponent.h | 88 + .../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 + .../java/awt/Window$WindowBltBufferStrategy.h | 32 + .../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 + .../java/awt/datatransfer/ClipboardOwner.h | 34 + libjava/java/awt/datatransfer/DataFlavor.h | 100 + libjava/java/awt/datatransfer/FlavorEvent.h | 33 + .../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 + .../awt/datatransfer/MimeTypeParseException.h | 36 + .../java/awt/datatransfer/StringSelection.h | 46 + .../java/awt/datatransfer/SystemFlavorMap.h | 56 + libjava/java/awt/datatransfer/Transferable.h | 37 + .../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 + .../java/awt/dnd/DragSourceMotionListener.h | 33 + .../dnd/DropTarget$DropTargetAutoScroller.h | 59 + libjava/java/awt/dnd/DropTarget.h | 91 + libjava/java/awt/dnd/DropTargetAdapter.h | 40 + .../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 + .../awt/dnd/InvalidDnDOperationException.h | 36 + .../java/awt/dnd/MouseDragGestureRecognizer.h | 52 + .../java/awt/dnd/peer/DragSourceContextPeer.h | 42 + .../java/awt/dnd/peer/DropTargetContextPeer.h | 53 + libjava/java/awt/dnd/peer/DropTargetPeer.h | 37 + libjava/java/awt/event/AWTEventListener.h | 33 + .../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 + .../java/awt/event/HierarchyBoundsAdapter.h | 35 + .../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 + .../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 + .../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 + .../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 + .../java/awt/geom/FlatteningPathIterator.h | 59 + .../geom/GeneralPath$GeneralPathIterator.h | 50 + libjava/java/awt/geom/GeneralPath.h | 88 + .../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 + .../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 + .../java/awt/geom/RoundRectangle2D$Double.h | 49 + .../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 + .../java/awt/im/spi/InputMethodDescriptor.h | 43 + libjava/java/awt/image/AffineTransformOp.h | 68 + .../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 + .../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 + .../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 + .../awt/image/PixelInterleavedSampleModel.h | 37 + libjava/java/awt/image/RGBImageFilter.h | 48 + libjava/java/awt/image/Raster.h | 104 + .../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 + .../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 + .../java/awt/image/WritableRenderedImage.h | 69 + .../ContextualRenderedImageFactory.h | 52 + .../awt/image/renderable/ParameterBlock.h | 87 + .../java/awt/image/renderable/RenderContext.h | 60 + .../awt/image/renderable/RenderableImage.h | 51 + .../awt/image/renderable/RenderableImageOp.h | 59 + .../renderable/RenderableImageProducer.h | 50 + .../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 + .../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 + .../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 + .../java/beans/IndexedPropertyChangeEvent.h | 34 + .../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 + .../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 + .../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 + .../java/beans/beancontext/BeanContextChild.h | 40 + .../BeanContextChildComponentProxy.h | 36 + .../beancontext/BeanContextChildSupport.h | 67 + .../beancontext/BeanContextContainerProxy.h | 36 + .../java/beans/beancontext/BeanContextEvent.h | 43 + .../beancontext/BeanContextMembershipEvent.h | 45 + .../BeanContextMembershipListener.h | 34 + .../java/beans/beancontext/BeanContextProxy.h | 33 + .../BeanContextServiceAvailableEvent.h | 41 + .../beancontext/BeanContextServiceProvider.h | 35 + .../BeanContextServiceProviderBeanInfo.h | 51 + .../BeanContextServiceRevokedEvent.h | 44 + .../BeanContextServiceRevokedListener.h | 33 + .../beans/beancontext/BeanContextServices.h | 88 + .../beancontext/BeanContextServicesListener.h | 35 + .../BeanContextServicesSupport$BCSSChild.h | 38 + ...ServicesSupport$BCSSProxyServiceProvider.h | 46 + ...ntextServicesSupport$BCSSServiceProvider.h | 46 + .../BeanContextServicesSupport$Request.h | 37 + .../BeanContextServicesSupport$ServiceLease.h | 37 + ...eanContextServicesSupport$ServiceRequest.h | 38 + .../beancontext/BeanContextServicesSupport.h | 90 + .../beancontext/BeanContextSupport$BCSChild.h | 44 + .../BeanContextSupport$BCSIterator.h | 39 + .../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 + libjava/java/io/FileDescriptor.java | 139 + libjava/java/io/FileFilter.h | 19 + libjava/java/io/FileInputStream.h | 67 + libjava/java/io/FileInputStream.java | 309 + libjava/java/io/FileNotFoundException.h | 23 + libjava/java/io/FileOutputStream.h | 66 + libjava/java/io/FileOutputStream.java | 296 + 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 + .../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 + .../ObjectStreamClass$InterfaceComparator.h | 23 + .../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 + .../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 + .../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 | 492 +- libjava/java/lang/ClassCastException.h | 23 + libjava/java/lang/ClassCircularityError.h | 23 + libjava/java/lang/ClassFormatError.h | 23 + .../java/lang/ClassLoader$AnnotationsKey.h | 31 + libjava/java/lang/ClassLoader.h | 108 + libjava/java/lang/ClassLoader.java | 132 +- libjava/java/lang/ClassNotFoundException.h | 27 + .../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 + .../lang/EnumConstantNotPresentException.h | 26 + libjava/java/lang/Error.h | 25 + libjava/java/lang/Exception.h | 25 + .../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 + .../java/lang/IllegalMonitorStateException.h | 23 + libjava/java/lang/IllegalStateException.h | 25 + .../java/lang/IllegalThreadStateException.h | 23 + .../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 + .../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 - .../java/lang/PosixProcess$EOFInputStream.h | 24 + .../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 + .../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 +- .../lang/StringIndexOutOfBoundsException.h | 24 + libjava/java/lang/SuppressWarnings.h | 22 + .../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 + .../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 + .../java/lang/UnsupportedClassVersionError.h | 23 + .../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 + .../lang/annotation/AnnotationFormatError.h | 24 + .../AnnotationTypeMismatchException.h | 26 + libjava/java/lang/annotation/Documented.h | 19 + libjava/java/lang/annotation/ElementType.h | 35 + .../IncompleteAnnotationException.h | 25 + libjava/java/lang/annotation/Inherited.h | 19 + libjava/java/lang/annotation/Retention.h | 20 + .../java/lang/annotation/RetentionPolicy.h | 30 + libjava/java/lang/annotation/Target.h | 22 + .../java/lang/instrument/ClassDefinition.h | 27 + .../lang/instrument/ClassFileTransformer.h | 31 + .../instrument/IllegalClassFormatException.h | 23 + .../java/lang/instrument/Instrumentation.h | 27 + .../instrument/UnmodifiableClassException.h | 23 + .../java/lang/management/ClassLoadingMXBean.h | 23 + .../java/lang/management/CompilationMXBean.h | 21 + .../lang/management/GarbageCollectorMXBean.h | 25 + .../java/lang/management/ManagementFactory.h | 57 + .../lang/management/ManagementPermission.h | 23 + libjava/java/lang/management/MemoryMXBean.h | 24 + .../lang/management/MemoryManagerMXBean.h | 23 + .../lang/management/MemoryNotificationInfo.h | 43 + .../java/lang/management/MemoryPoolMXBean.h | 38 + libjava/java/lang/management/MemoryType.h | 28 + libjava/java/lang/management/MemoryUsage.h | 44 + .../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 + .../lang/management/VMManagementFactory.h | 25 + .../lang/management/VMManagementFactory.java | 15 +- .../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 + .../java/lang/reflect/GenericDeclaration.h | 21 + .../reflect/GenericSignatureFormatError.h | 22 + libjava/java/lang/reflect/InvocationHandler.h | 21 + .../lang/reflect/InvocationTargetException.h | 28 + .../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 + .../java/lang/reflect/Proxy$ClassFactory.h | 78 + libjava/java/lang/reflect/Proxy$ProxyData.h | 37 + .../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 + .../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 + libjava/java/net/DatagramSocket.java | 939 + 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/java/net/Socket.java | 1269 ++ 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 + .../java/net/URLClassLoader$CoreResource.h | 46 + .../java/net/URLClassLoader$CoreURLLoader.h | 36 + .../java/net/URLClassLoader$FileResource.h | 38 + .../java/net/URLClassLoader$FileURLLoader.h | 35 + .../java/net/URLClassLoader$JarURLLoader.h | 40 + .../java/net/URLClassLoader$JarURLResource.h | 48 + .../java/net/URLClassLoader$RemoteResource.h | 40 + .../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 + .../java/nio/DirectByteBufferImpl$ReadOnly.h | 41 + .../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 + .../nio/channels/AlreadyConnectedException.h | 35 + .../nio/channels/AsynchronousCloseException.h | 35 + libjava/java/nio/channels/ByteChannel.h | 36 + .../java/nio/channels/CancelledKeyException.h | 35 + libjava/java/nio/channels/Channel.h | 33 + libjava/java/nio/channels/Channels.h | 47 + .../nio/channels/ClosedByInterruptException.h | 35 + .../nio/channels/ClosedChannelException.h | 35 + .../nio/channels/ClosedSelectorException.h | 35 + .../nio/channels/ConnectionPendingException.h | 35 + libjava/java/nio/channels/DatagramChannel.h | 59 + .../java/nio/channels/FileChannel$MapMode.h | 40 + libjava/java/nio/channels/FileChannel.h | 64 + libjava/java/nio/channels/FileLock.h | 48 + .../channels/FileLockInterruptionException.h | 35 + .../java/nio/channels/GatheringByteChannel.h | 39 + .../channels/IllegalBlockingModeException.h | 35 + .../nio/channels/IllegalSelectorException.h | 35 + .../java/nio/channels/InterruptibleChannel.h | 33 + .../channels/NoConnectionPendingException.h | 35 + .../channels/NonReadableChannelException.h | 35 + .../channels/NonWritableChannelException.h | 35 + .../java/nio/channels/NotYetBoundException.h | 35 + .../nio/channels/NotYetConnectedException.h | 35 + .../channels/OverlappingFileLockException.h | 35 + libjava/java/nio/channels/Pipe$SinkChannel.h | 44 + .../java/nio/channels/Pipe$SourceChannel.h | 44 + libjava/java/nio/channels/Pipe.h | 38 + .../java/nio/channels/ReadableByteChannel.h | 35 + .../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 + .../java/nio/channels/ServerSocketChannel.h | 46 + libjava/java/nio/channels/SocketChannel.h | 59 + .../nio/channels/UnresolvedAddressException.h | 35 + .../UnsupportedAddressTypeException.h | 35 + libjava/java/nio/channels/VMChannels.h | 52 + .../java/nio/channels/WritableByteChannel.h | 35 + .../spi/AbstractInterruptibleChannel.h | 46 + .../channels/spi/AbstractSelectableChannel.h | 64 + .../nio/channels/spi/AbstractSelectionKey.h | 41 + .../java/nio/channels/spi/AbstractSelector.h | 60 + .../java/nio/channels/spi/SelectorProvider.h | 50 + .../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 + .../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 + .../nio/charset/IllegalCharsetNameException.h | 37 + .../nio/charset/MalformedInputException.h | 38 + .../charset/UnmappableCharacterException.h | 38 + .../nio/charset/UnsupportedCharsetException.h | 38 + .../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 + .../rmi/activation/ActivateFailedException.h | 36 + libjava/java/rmi/activation/ActivationDesc.h | 55 + .../java/rmi/activation/ActivationException.h | 40 + libjava/java/rmi/activation/ActivationGroup.h | 63 + .../ActivationGroupDesc$CommandEnvironment.h | 46 + .../java/rmi/activation/ActivationGroupDesc.h | 54 + .../java/rmi/activation/ActivationGroupID.h | 46 + .../rmi/activation/ActivationGroup_Stub.h | 43 + libjava/java/rmi/activation/ActivationID.h | 55 + .../rmi/activation/ActivationInstantiator.h | 35 + .../java/rmi/activation/ActivationMonitor.h | 37 + .../java/rmi/activation/ActivationSystem.h | 48 + libjava/java/rmi/activation/Activator.h | 34 + .../rmi/activation/UnknownGroupException.h | 35 + .../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 + .../java/rmi/server/RMIClientSocketFactory.h | 36 + libjava/java/rmi/server/RMIFailureHandler.h | 32 + .../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 + .../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 + .../java/rmi/server/ServerCloneException.h | 39 + .../rmi/server/ServerNotActiveException.h | 36 + libjava/java/rmi/server/ServerRef.h | 52 + libjava/java/rmi/server/Skeleton.h | 38 + .../rmi/server/SkeletonMismatchException.h | 35 + .../rmi/server/SkeletonNotFoundException.h | 36 + .../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 + .../java/security/AccessControlException.h | 36 + libjava/java/security/AccessController.h | 39 + .../security/AlgorithmParameterGenerator.h | 54 + .../security/AlgorithmParameterGeneratorSpi.h | 40 + libjava/java/security/AlgorithmParameters.h | 56 + .../java/security/AlgorithmParametersSpi.h | 44 + .../AllPermission$AllPermissionCollection.h | 39 + libjava/java/security/AllPermission.h | 40 + ...asicPermission$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 + .../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 + .../security/IntersectingDomainCombiner.h | 36 + .../InvalidAlgorithmParameterException.h | 35 + libjava/java/security/InvalidKeyException.h | 35 + .../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 + .../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 + .../java/security/NoSuchAlgorithmException.h | 35 + .../java/security/NoSuchProviderException.h | 33 + libjava/java/security/Permission.h | 42 + libjava/java/security/PermissionCollection.h | 40 + libjava/java/security/Permissions$1.h | 38 + .../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 + .../java/security/PrivilegedActionException.h | 36 + .../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 + .../java/security/UnrecoverableKeyException.h | 33 + libjava/java/security/UnresolvedPermission.h | 56 + .../UnresolvedPermissionCollection$1.h | 38 + .../security/UnresolvedPermissionCollection.h | 39 + libjava/java/security/VMAccessControlState.h | 37 + libjava/java/security/VMAccessController.h | 41 + .../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 + .../java/security/acl/AclNotFoundException.h | 35 + libjava/java/security/acl/Group.h | 37 + .../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 + .../java/security/cert/CertPath$CertPathRep.h | 40 + libjava/java/security/cert/CertPath.h | 49 + libjava/java/security/cert/CertPathBuilder.h | 50 + .../security/cert/CertPathBuilderException.h | 44 + .../security/cert/CertPathBuilderResult.h | 34 + .../java/security/cert/CertPathBuilderSpi.h | 35 + .../java/security/cert/CertPathParameters.h | 32 + .../java/security/cert/CertPathValidator$1.h | 34 + .../java/security/cert/CertPathValidator.h | 51 + .../cert/CertPathValidatorException.h | 50 + .../security/cert/CertPathValidatorResult.h | 32 + .../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 + .../java/security/cert/CertStoreException.h | 44 + .../java/security/cert/CertStoreParameters.h | 32 + libjava/java/security/cert/CertStoreSpi.h | 37 + .../cert/Certificate$CertificateRep.h | 40 + libjava/java/security/cert/Certificate.h | 50 + .../cert/CertificateEncodingException.h | 38 + .../java/security/cert/CertificateException.h | 38 + .../cert/CertificateExpiredException.h | 36 + .../java/security/cert/CertificateFactory.h | 57 + .../security/cert/CertificateFactorySpi.h | 43 + .../cert/CertificateNotYetValidException.h | 36 + .../cert/CertificateParsingException.h | 38 + .../cert/CollectionCertStoreParameters.h | 39 + .../security/cert/LDAPCertStoreParameters.h | 43 + .../security/cert/PKIXBuilderParameters.h | 41 + .../security/cert/PKIXCertPathBuilderResult.h | 41 + .../java/security/cert/PKIXCertPathChecker.h | 39 + .../cert/PKIXCertPathValidatorResult.h | 45 + libjava/java/security/cert/PKIXParameters.h | 83 + libjava/java/security/cert/PolicyNode.h | 38 + .../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 + .../security/interfaces/DSAKeyPairGenerator.h | 35 + libjava/java/security/interfaces/DSAParams.h | 38 + .../java/security/interfaces/DSAPrivateKey.h | 44 + .../java/security/interfaces/DSAPublicKey.h | 44 + libjava/java/security/interfaces/RSAKey.h | 36 + .../interfaces/RSAMultiPrimePrivateCrtKey.h | 54 + .../security/interfaces/RSAPrivateCrtKey.h | 49 + .../java/security/interfaces/RSAPrivateKey.h | 43 + .../java/security/interfaces/RSAPublicKey.h | 43 + .../security/spec/AlgorithmParameterSpec.h | 31 + libjava/java/security/spec/DSAParameterSpec.h | 44 + .../java/security/spec/DSAPrivateKeySpec.h | 46 + libjava/java/security/spec/DSAPublicKeySpec.h | 46 + libjava/java/security/spec/EncodedKeySpec.h | 39 + .../security/spec/InvalidKeySpecException.h | 38 + .../spec/InvalidParameterSpecException.h | 36 + libjava/java/security/spec/KeySpec.h | 31 + .../java/security/spec/PKCS8EncodedKeySpec.h | 36 + libjava/java/security/spec/PSSParameterSpec.h | 36 + .../security/spec/RSAKeyGenParameterSpec.h | 44 + .../spec/RSAMultiPrimePrivateCrtKeySpec.h | 55 + .../java/security/spec/RSAOtherPrimeInfo.h | 44 + .../java/security/spec/RSAPrivateCrtKeySpec.h | 50 + .../java/security/spec/RSAPrivateKeySpec.h | 42 + libjava/java/security/spec/RSAPublicKeySpec.h | 42 + .../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 + .../AttributedCharacterIterator$Attribute.h | 44 + .../java/text/AttributedCharacterIterator.h | 47 + .../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 + .../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 + .../text/RuleBasedCollator$CollationElement.h | 38 + .../text/RuleBasedCollator$CollationSorter.h | 42 + libjava/java/text/RuleBasedCollator.h | 70 + .../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 + .../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 + .../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 + .../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 + .../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 + .../java/util/Collections$CheckedCollection.h | 42 + .../java/util/Collections$CheckedIterator.h | 28 + libjava/java/util/Collections$CheckedList.h | 37 + .../util/Collections$CheckedListIterator.h | 29 + .../Collections$CheckedMap$CheckedEntrySet.h | 27 + libjava/java/util/Collections$CheckedMap.h | 46 + .../Collections$CheckedRandomAccessList.h | 22 + libjava/java/util/Collections$CheckedSet.h | 25 + .../java/util/Collections$CheckedSortedMap.h | 30 + .../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 + .../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 + .../util/Collections$SynchronizedCollection.h | 43 + .../util/Collections$SynchronizedIterator.h | 28 + .../java/util/Collections$SynchronizedList.h | 38 + .../Collections$SynchronizedListIterator.h | 29 + .../java/util/Collections$SynchronizedMap.h | 46 + ...Collections$SynchronizedRandomAccessList.h | 25 + .../java/util/Collections$SynchronizedSet.h | 26 + .../util/Collections$SynchronizedSortedMap.h | 31 + .../util/Collections$SynchronizedSortedSet.h | 31 + .../util/Collections$UnmodifiableCollection.h | 41 + .../util/Collections$UnmodifiableIterator.h | 26 + .../java/util/Collections$UnmodifiableList.h | 37 + .../Collections$UnmodifiableListIterator.h | 29 + ...nmodifiableEntrySet$UnmodifiableMapEntry.h | 30 + ...ons$UnmodifiableMap$UnmodifiableEntrySet.h | 29 + .../java/util/Collections$UnmodifiableMap.h | 42 + ...Collections$UnmodifiableRandomAccessList.h | 22 + .../java/util/Collections$UnmodifiableSet.h | 25 + .../util/Collections$UnmodifiableSortedMap.h | 30 + .../util/Collections$UnmodifiableSortedSet.h | 30 + libjava/java/util/Collections.h | 85 + libjava/java/util/Comparator.h | 20 + .../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 + .../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 + .../FormatFlagsConversionMismatchException.h | 26 + libjava/java/util/Formattable.h | 19 + libjava/java/util/FormattableFlags.h | 29 + .../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 + .../java/util/IdentityHashMap$IdentityEntry.h | 31 + .../util/IdentityHashMap$IdentityIterator.h | 30 + libjava/java/util/IdentityHashMap.h | 61 + .../util/IllegalFormatCodePointException.h | 25 + .../util/IllegalFormatConversionException.h | 27 + libjava/java/util/IllegalFormatException.h | 23 + .../java/util/IllegalFormatFlagsException.h | 24 + .../util/IllegalFormatPrecisionException.h | 24 + .../java/util/IllegalFormatWidthException.h | 24 + libjava/java/util/InputMismatchException.h | 20 + .../util/InvalidPropertiesFormatException.h | 25 + libjava/java/util/Iterator.h | 21 + libjava/java/util/LinkedHashMap$1.h | 31 + .../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 + .../util/MissingFormatArgumentException.h | 24 + .../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 + .../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 + .../util/UnknownFormatConversionException.h | 24 + .../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 + .../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 + .../util/concurrent/AbstractExecutorService.h | 42 + .../util/concurrent/ArrayBlockingQueue$Itr.h | 33 + .../java/util/concurrent/ArrayBlockingQueue.h | 65 + libjava/java/util/concurrent/BlockingDeque.h | 70 + libjava/java/util/concurrent/BlockingQueue.h | 45 + .../util/concurrent/BrokenBarrierException.h | 23 + libjava/java/util/concurrent/Callable.h | 19 + .../util/concurrent/CancellationException.h | 23 + .../java/util/concurrent/CompletionService.h | 23 + .../ConcurrentHashMap$EntryIterator.h | 25 + .../concurrent/ConcurrentHashMap$EntrySet.h | 28 + .../concurrent/ConcurrentHashMap$HashEntry.h | 27 + .../ConcurrentHashMap$HashIterator.h | 39 + .../ConcurrentHashMap$KeyIterator.h | 25 + .../concurrent/ConcurrentHashMap$KeySet.h | 28 + .../concurrent/ConcurrentHashMap$Segment.h | 43 + .../ConcurrentHashMap$ValueIterator.h | 25 + .../concurrent/ConcurrentHashMap$Values.h | 27 + .../ConcurrentHashMap$WriteThroughEntry.h | 24 + .../java/util/concurrent/ConcurrentHashMap.h | 65 + .../concurrent/ConcurrentLinkedQueue$Itr.h | 32 + .../concurrent/ConcurrentLinkedQueue$Node.h | 32 + .../util/concurrent/ConcurrentLinkedQueue.h | 43 + libjava/java/util/concurrent/ConcurrentMap.h | 34 + .../util/concurrent/ConcurrentNavigableMap.h | 66 + ...entSkipListMap$ComparableUsingComparator.h | 25 + .../ConcurrentSkipListMap$EntryIterator.h | 25 + .../ConcurrentSkipListMap$EntrySet.h | 34 + .../ConcurrentSkipListMap$HeadIndex.h | 21 + .../concurrent/ConcurrentSkipListMap$Index.h | 28 + .../concurrent/ConcurrentSkipListMap$Iter.h | 32 + .../ConcurrentSkipListMap$KeyIterator.h | 24 + .../concurrent/ConcurrentSkipListMap$KeySet.h | 54 + .../concurrent/ConcurrentSkipListMap$Node.h | 34 + ...ntSkipListMap$SubMap$SubMapEntryIterator.h | 25 + .../ConcurrentSkipListMap$SubMap$SubMapIter.h | 35 + ...rentSkipListMap$SubMap$SubMapKeyIterator.h | 24 + ...ntSkipListMap$SubMap$SubMapValueIterator.h | 24 + .../concurrent/ConcurrentSkipListMap$SubMap.h | 118 + .../ConcurrentSkipListMap$ValueIterator.h | 24 + .../concurrent/ConcurrentSkipListMap$Values.h | 32 + .../util/concurrent/ConcurrentSkipListMap.h | 136 + .../util/concurrent/ConcurrentSkipListSet.h | 75 + .../util/concurrent/CopyOnWriteArrayList.h | 52 + .../util/concurrent/CopyOnWriteArraySet.h | 41 + .../util/concurrent/CountDownLatch$Sync.h | 26 + libjava/java/util/concurrent/CountDownLatch.h | 27 + .../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 + .../java/util/concurrent/ExecutionException.h | 26 + libjava/java/util/concurrent/Executor.h | 19 + ...ExecutorCompletionService$QueueingFuture.h | 26 + .../concurrent/ExecutorCompletionService.h | 34 + .../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 + .../Executors$DefaultThreadFactory.h | 27 + .../Executors$DelegatedExecutorService.h | 36 + ...cutors$DelegatedScheduledExecutorService.h | 27 + ...tors$FinalizableDelegatedExecutorService.h | 22 + .../concurrent/Executors$PrivilegedCallable.h | 41 + ...rivilegedCallableUsingCurrentClassLoader.h | 43 + .../Executors$PrivilegedThreadFactory.h | 38 + .../concurrent/Executors$RunnableAdapter.h | 25 + libjava/java/util/concurrent/Executors.h | 52 + libjava/java/util/concurrent/Future.h | 23 + .../java/util/concurrent/FutureTask$Sync.h | 46 + libjava/java/util/concurrent/FutureTask.h | 36 + .../LinkedBlockingDeque$AbstractItr.h | 32 + .../LinkedBlockingDeque$DescendingItr.h | 23 + .../util/concurrent/LinkedBlockingDeque$Itr.h | 23 + .../concurrent/LinkedBlockingDeque$Node.h | 23 + .../util/concurrent/LinkedBlockingDeque.h | 96 + .../util/concurrent/LinkedBlockingQueue$Itr.h | 30 + .../concurrent/LinkedBlockingQueue$Node.h | 22 + .../util/concurrent/LinkedBlockingQueue.h | 71 + .../concurrent/PriorityBlockingQueue$Itr.h | 31 + .../util/concurrent/PriorityBlockingQueue.h | 57 + .../concurrent/RejectedExecutionException.h | 25 + .../concurrent/RejectedExecutionHandler.h | 19 + libjava/java/util/concurrent/RunnableFuture.h | 24 + .../util/concurrent/RunnableScheduledFuture.h | 27 + .../concurrent/ScheduledExecutorService.h | 35 + .../java/util/concurrent/ScheduledFuture.h | 25 + .../ScheduledThreadPoolExecutor$1.h | 29 + ...duledThreadPoolExecutor$DelayedWorkQueue.h | 58 + ...edThreadPoolExecutor$ScheduledFutureTask.h | 40 + .../concurrent/ScheduledThreadPoolExecutor.h | 56 + .../java/util/concurrent/Semaphore$FairSync.h | 24 + .../util/concurrent/Semaphore$NonfairSync.h | 24 + libjava/java/util/concurrent/Semaphore$Sync.h | 29 + libjava/java/util/concurrent/Semaphore.h | 46 + .../SynchronousQueue$EmptyIterator.h | 23 + .../SynchronousQueue$FifoWaitQueue.h | 22 + .../SynchronousQueue$LifoWaitQueue.h | 22 + .../SynchronousQueue$TransferQueue$QNode.h | 31 + .../SynchronousQueue$TransferQueue.h | 32 + .../SynchronousQueue$TransferStack$SNode.h | 31 + .../SynchronousQueue$TransferStack.h | 32 + .../concurrent/SynchronousQueue$Transferer.h | 21 + .../concurrent/SynchronousQueue$WaitQueue.h | 20 + .../java/util/concurrent/SynchronousQueue.h | 58 + libjava/java/util/concurrent/ThreadFactory.h | 19 + .../ThreadPoolExecutor$AbortPolicy.h | 20 + .../ThreadPoolExecutor$CallerRunsPolicy.h | 20 + .../ThreadPoolExecutor$DiscardOldestPolicy.h | 20 + .../ThreadPoolExecutor$DiscardPolicy.h | 20 + .../concurrent/ThreadPoolExecutor$Worker.h | 34 + .../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 + .../java/util/concurrent/TimeoutException.h | 23 + .../util/concurrent/atomic/AtomicBoolean.h | 43 + .../util/concurrent/atomic/AtomicInteger.h | 53 + .../concurrent/atomic/AtomicIntegerArray.h | 54 + ...eldUpdater$AtomicIntegerFieldUpdaterImpl.h | 44 + .../atomic/AtomicIntegerFieldUpdater.h | 34 + .../java/util/concurrent/atomic/AtomicLong.h | 57 + .../util/concurrent/atomic/AtomicLongArray.h | 54 + .../AtomicLongFieldUpdater$CASUpdater.h | 44 + .../AtomicLongFieldUpdater$LockedUpdater.h | 44 + .../atomic/AtomicLongFieldUpdater.h | 34 + ...icMarkableReference$ReferenceBooleanPair.h | 25 + .../atomic/AtomicMarkableReference.h | 31 + .../util/concurrent/atomic/AtomicReference.h | 43 + .../concurrent/atomic/AtomicReferenceArray.h | 48 + ...dUpdater$AtomicReferenceFieldUpdaterImpl.h | 45 + .../atomic/AtomicReferenceFieldUpdater.h | 28 + ...micStampedReference$ReferenceIntegerPair.h | 25 + .../atomic/AtomicStampedReference.h | 31 + .../util/concurrent/atomic/natAtomicLong.cc | 12 + .../locks/AbstractOwnableSynchronizer.h | 25 + ...ctQueuedLongSynchronizer$ConditionObject.h | 52 + .../AbstractQueuedLongSynchronizer$Node.h | 34 + .../locks/AbstractQueuedLongSynchronizer.h | 115 + ...stractQueuedSynchronizer$ConditionObject.h | 52 + .../locks/AbstractQueuedSynchronizer$Node.h | 34 + .../locks/AbstractQueuedSynchronizer.h | 115 + .../java/util/concurrent/locks/Condition.h | 25 + libjava/java/util/concurrent/locks/Lock.h | 24 + .../java/util/concurrent/locks/LockSupport.h | 42 + .../util/concurrent/locks/ReadWriteLock.h | 20 + .../concurrent/locks/ReentrantLock$FairSync.h | 25 + .../locks/ReentrantLock$NonfairSync.h | 25 + .../concurrent/locks/ReentrantLock$Sync.h | 33 + .../util/concurrent/locks/ReentrantLock.h | 49 + .../locks/ReentrantReadWriteLock$FairSync.h | 24 + .../ReentrantReadWriteLock$NonfairSync.h | 24 + .../locks/ReentrantReadWriteLock$ReadLock.h | 31 + .../ReentrantReadWriteLock$Sync$HoldCounter.h | 23 + ...eadWriteLock$Sync$ThreadLocalHoldCounter.h | 22 + .../locks/ReentrantReadWriteLock$Sync.h | 55 + .../locks/ReentrantReadWriteLock$WriteLock.h | 33 + .../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 + .../java/util/jar/JarFile$EntryInputStream.h | 49 + .../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 - .../java/util/prefs/AbstractPreferences$1.h | 27 + .../java/util/prefs/AbstractPreferences$2.h | 28 + libjava/java/util/prefs/AbstractPreferences.h | 106 + .../java/util/prefs/BackingStoreException.h | 26 + .../prefs/InvalidPreferencesFormatException.h | 27 + libjava/java/util/prefs/NodeChangeEvent.h | 27 + libjava/java/util/prefs/NodeChangeListener.h | 20 + .../java/util/prefs/PreferenceChangeEvent.h | 29 + .../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 + .../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 + .../util/zip/ZipFile$PartialInputStream.h | 66 + .../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 + .../javax/accessibility/AccessibleAction.h | 34 + .../AccessibleAttributeSequence.h | 39 + .../javax/accessibility/AccessibleBundle.h | 38 + .../javax/accessibility/AccessibleComponent.h | 73 + .../javax/accessibility/AccessibleContext.h | 104 + .../accessibility/AccessibleEditableText.h | 63 + .../AccessibleExtendedComponent.h | 77 + .../accessibility/AccessibleExtendedTable.h | 57 + .../accessibility/AccessibleExtendedText.h | 43 + .../javax/accessibility/AccessibleHyperlink.h | 37 + .../javax/accessibility/AccessibleHypertext.h | 58 + libjava/javax/accessibility/AccessibleIcon.h | 32 + .../accessibility/AccessibleKeyBinding.h | 30 + .../javax/accessibility/AccessibleRelation.h | 66 + .../accessibility/AccessibleRelationSet.h | 45 + .../accessibility/AccessibleResourceBundle.h | 32 + libjava/javax/accessibility/AccessibleRole.h | 92 + .../javax/accessibility/AccessibleSelection.h | 36 + libjava/javax/accessibility/AccessibleState.h | 59 + .../javax/accessibility/AccessibleStateSet.h | 43 + .../accessibility/AccessibleStreamable.h | 42 + libjava/javax/accessibility/AccessibleTable.h | 53 + .../AccessibleTableModelChange.h | 36 + libjava/javax/accessibility/AccessibleText.h | 57 + .../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 + .../javax/crypto/EncryptedPrivateKeyInfo.h | 73 + libjava/javax/crypto/ExemptionMechanism.h | 68 + .../crypto/ExemptionMechanismException.h | 33 + libjava/javax/crypto/ExemptionMechanismSpi.h | 51 + .../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 + .../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 + .../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 + .../imageio/ImageIO$ImageReaderIterator.h | 39 + .../imageio/ImageIO$ImageWriterIterator.h | 39 + .../imageio/ImageIO$ReaderFormatFilter.h | 33 + .../imageio/ImageIO$ReaderMIMETypeFilter.h | 33 + .../imageio/ImageIO$ReaderObjectFilter.h | 33 + .../imageio/ImageIO$ReaderSuffixFilter.h | 33 + .../javax/imageio/ImageIO$TranscoderFilter.h | 36 + .../imageio/ImageIO$WriterFormatFilter.h | 33 + .../imageio/ImageIO$WriterMIMETypeFilter.h | 33 + .../imageio/ImageIO$WriterObjectFilter.h | 35 + .../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 + .../imageio/event/IIOReadProgressListener.h | 41 + .../imageio/event/IIOReadUpdateListener.h | 50 + .../imageio/event/IIOReadWarningListener.h | 33 + .../imageio/event/IIOWriteProgressListener.h | 39 + .../imageio/event/IIOWriteWarningListener.h | 33 + .../metadata/IIOInvalidTreeException.h | 49 + libjava/javax/imageio/metadata/IIOMetadata.h | 87 + .../imageio/metadata/IIOMetadataController.h | 33 + .../imageio/metadata/IIOMetadataFormat.h | 82 + .../metadata/IIOMetadataFormatImpl$1.h | 35 + ...IOMetadataFormatImpl$IIOMetadataNodeAttr.h | 60 + ...ataFormatImpl$IIOMetadataNodeAttrBounded.h | 53 + ...FormatImpl$IIOMetadataNodeAttrEnumerated.h | 51 + ...tadataFormatImpl$IIOMetadataNodeAttrList.h | 51 + .../IIOMetadataFormatImpl$NodeObject.h | 57 + .../IIOMetadataFormatImpl$NodeObjectArray.h | 51 + .../IIOMetadataFormatImpl$NodeObjectBounded.h | 53 + ...OMetadataFormatImpl$NodeObjectEnumerated.h | 51 + .../imageio/metadata/IIOMetadataFormatImpl.h | 105 + .../IIOMetadataNode$IIONamedNodeMap.h | 55 + .../metadata/IIOMetadataNode$IIONodeList.h | 50 + .../javax/imageio/metadata/IIOMetadataNode.h | 121 + .../imageio/plugins/bmp/BMPImageWriteParam.h | 50 + .../imageio/plugins/jpeg/JPEGHuffmanTable.h | 53 + .../imageio/plugins/jpeg/JPEGImageReadParam.h | 50 + .../plugins/jpeg/JPEGImageWriteParam.h | 60 + .../javax/imageio/plugins/jpeg/JPEGQTable.h | 51 + libjava/javax/imageio/spi/IIORegistry.h | 40 + .../javax/imageio/spi/IIOServiceProvider.h | 43 + .../javax/imageio/spi/ImageInputStreamSpi.h | 46 + .../javax/imageio/spi/ImageOutputStreamSpi.h | 46 + libjava/javax/imageio/spi/ImageReaderSpi.h | 48 + .../javax/imageio/spi/ImageReaderWriterSpi.h | 67 + .../javax/imageio/spi/ImageTranscoderSpi.h | 38 + libjava/javax/imageio/spi/ImageWriterSpi.h | 61 + .../javax/imageio/spi/RegisterableService.h | 34 + libjava/javax/imageio/spi/ServiceRegistry$1.h | 41 + libjava/javax/imageio/spi/ServiceRegistry$2.h | 40 + .../imageio/spi/ServiceRegistry$Filter.h | 32 + libjava/javax/imageio/spi/ServiceRegistry.h | 70 + .../stream/FileCacheImageInputStream.h | 47 + .../stream/FileCacheImageOutputStream.h | 49 + .../imageio/stream/FileImageInputStream.h | 43 + .../imageio/stream/FileImageOutputStream.h | 45 + libjava/javax/imageio/stream/IIOByteBuffer.h | 45 + .../javax/imageio/stream/ImageInputStream.h | 86 + .../imageio/stream/ImageInputStreamImpl.h | 105 + .../javax/imageio/stream/ImageOutputStream.h | 108 + .../imageio/stream/ImageOutputStreamImpl.h | 59 + .../stream/MemoryCacheImageInputStream.h | 47 + .../stream/MemoryCacheImageOutputStream.h | 46 + libjava/javax/management/Attribute.h | 39 + libjava/javax/management/AttributeList.h | 40 + .../management/AttributeNotFoundException.h | 30 + .../BadAttributeValueExpException.h | 34 + .../management/BadBinaryOpValueExpException.h | 36 + .../management/BadStringOperationException.h | 34 + libjava/javax/management/DynamicMBean.h | 39 + .../InstanceAlreadyExistsException.h | 33 + .../management/InstanceNotFoundException.h | 33 + .../javax/management/IntrospectionException.h | 33 + .../management/InvalidApplicationException.h | 34 + .../InvalidAttributeValueException.h | 30 + libjava/javax/management/JMException.h | 30 + libjava/javax/management/JMRuntimeException.h | 30 + .../management/ListenerNotFoundException.h | 33 + libjava/javax/management/MBeanAttributeInfo.h | 44 + .../javax/management/MBeanConstructorInfo.h | 42 + libjava/javax/management/MBeanException.h | 36 + libjava/javax/management/MBeanFeatureInfo.h | 42 + libjava/javax/management/MBeanInfo.h | 55 + .../javax/management/MBeanNotificationInfo.h | 40 + libjava/javax/management/MBeanOperationInfo.h | 52 + libjava/javax/management/MBeanParameterInfo.h | 38 + .../management/MBeanPermission$NameHolder.h | 42 + libjava/javax/management/MBeanPermission.h | 53 + libjava/javax/management/MBeanRegistration.h | 34 + .../management/MBeanRegistrationException.h | 33 + libjava/javax/management/MBeanServer.h | 78 + libjava/javax/management/MBeanServerBuilder.h | 33 + .../javax/management/MBeanServerConnection.h | 63 + .../javax/management/MBeanServerDelegate.h | 52 + .../management/MBeanServerDelegateMBean.h | 35 + libjava/javax/management/MBeanServerFactory.h | 49 + .../management/MBeanServerNotification.h | 39 + ...lection$MBeanServerPermissionEnumeration.h | 39 + ...rmission$MBeanServerPermissionCollection.h | 48 + .../javax/management/MBeanServerPermission.h | 46 + .../javax/management/MBeanTrustPermission.h | 33 + .../management/MalformedObjectNameException.h | 33 + .../management/NotCompliantMBeanException.h | 33 + libjava/javax/management/Notification.h | 52 + .../management/NotificationBroadcaster.h | 36 + .../javax/management/NotificationEmitter.h | 37 + libjava/javax/management/NotificationFilter.h | 30 + .../javax/management/NotificationListener.h | 30 + libjava/javax/management/ObjectInstance.h | 40 + libjava/javax/management/ObjectName.h | 62 + .../javax/management/OperationsException.h | 33 + libjava/javax/management/QueryExp.h | 32 + .../javax/management/ReflectionException.h | 36 + .../javax/management/RuntimeErrorException.h | 36 + .../javax/management/RuntimeMBeanException.h | 36 + .../management/RuntimeOperationsException.h | 36 + .../management/ServiceNotFoundException.h | 33 + libjava/javax/management/StandardMBean.h | 76 + libjava/javax/management/ValueExp.h | 32 + .../loading/ClassLoaderRepository.h | 34 + .../javax/management/openmbean/ArrayType.h | 47 + .../management/openmbean/CompositeData.h | 43 + .../openmbean/CompositeDataSupport.h | 50 + .../management/openmbean/CompositeType.h | 50 + .../openmbean/InvalidKeyException.h | 36 + .../openmbean/InvalidOpenTypeException.h | 36 + .../openmbean/KeyAlreadyExistsException.h | 36 + .../management/openmbean/OpenDataException.h | 36 + .../openmbean/OpenMBeanAttributeInfo.h | 50 + .../openmbean/OpenMBeanAttributeInfoSupport.h | 61 + .../openmbean/OpenMBeanConstructorInfo.h | 40 + .../OpenMBeanConstructorInfoSupport.h | 43 + .../management/openmbean/OpenMBeanInfo.h | 46 + .../openmbean/OpenMBeanInfoSupport.h | 46 + .../openmbean/OpenMBeanOperationInfo.h | 44 + .../openmbean/OpenMBeanOperationInfoSupport.h | 46 + .../openmbean/OpenMBeanParameterInfo.h | 47 + .../openmbean/OpenMBeanParameterInfoSupport.h | 61 + libjava/javax/management/openmbean/OpenType.h | 50 + .../javax/management/openmbean/SimpleType.h | 56 + .../javax/management/openmbean/TabularData.h | 51 + .../management/openmbean/TabularDataSupport.h | 72 + .../javax/management/openmbean/TabularType.h | 48 + .../javax/naming/AuthenticationException.h | 33 + .../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 + .../javax/naming/ContextNotEmptyException.h | 33 + libjava/javax/naming/InitialContext.h | 85 + .../naming/InsufficientResourcesException.h | 33 + .../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 + .../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 + .../javax/naming/NamingSecurityException.h | 33 + .../javax/naming/NoInitialContextException.h | 33 + libjava/javax/naming/NoPermissionException.h | 33 + libjava/javax/naming/NotContextException.h | 33 + .../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 + .../naming/ServiceUnavailableException.h | 33 + .../javax/naming/SizeLimitExceededException.h | 33 + libjava/javax/naming/StringRefAddr.h | 34 + .../javax/naming/TimeLimitExceededException.h | 33 + libjava/javax/naming/directory/Attribute.h | 50 + .../directory/AttributeInUseException.h | 36 + .../AttributeModificationException.h | 43 + libjava/javax/naming/directory/Attributes.h | 42 + ...BasicAttribute$BasicAttributeEnumeration.h | 42 + .../javax/naming/directory/BasicAttribute.h | 67 + ...sicAttributes$BasicAttributesEnumeration.h | 43 + .../javax/naming/directory/BasicAttributes.h | 57 + libjava/javax/naming/directory/DirContext.h | 98 + .../naming/directory/InitialDirContext.h | 74 + .../InvalidAttributeIdentifierException.h | 36 + .../InvalidAttributeValueException.h | 36 + .../directory/InvalidAttributesException.h | 36 + .../InvalidSearchControlsException.h | 36 + .../directory/InvalidSearchFilterException.h | 36 + .../javax/naming/directory/ModificationItem.h | 41 + .../directory/NoSuchAttributeException.h | 36 + .../directory/SchemaViolationException.h | 36 + .../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 + .../naming/event/NamespaceChangeListener.h | 37 + libjava/javax/naming/event/NamingEvent.h | 54 + .../javax/naming/event/NamingExceptionEvent.h | 42 + libjava/javax/naming/event/NamingListener.h | 33 + .../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 + .../javax/naming/ldap/InitialLdapContext.h | 49 + libjava/javax/naming/ldap/LdapContext.h | 110 + .../javax/naming/ldap/LdapReferralException.h | 41 + libjava/javax/naming/ldap/StartTlsRequest.h | 42 + libjava/javax/naming/ldap/StartTlsResponse.h | 55 + .../naming/ldap/UnsolicitedNotification.h | 40 + .../ldap/UnsolicitedNotificationEvent.h | 40 + .../ldap/UnsolicitedNotificationListener.h | 38 + libjava/javax/naming/spi/DirObjectFactory.h | 39 + .../javax/naming/spi/DirStateFactory$Result.h | 42 + libjava/javax/naming/spi/DirStateFactory.h | 40 + libjava/javax/naming/spi/DirectoryManager.h | 49 + .../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 + .../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 + .../javax/net/VanillaServerSocketFactory.h | 42 + libjava/javax/net/VanillaSocketFactory.h | 43 + .../net/ssl/CertPathTrustManagerParameters.h | 46 + .../javax/net/ssl/HandshakeCompletedEvent.h | 66 + .../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 + .../javax/net/ssl/KeyStoreBuilderParameters.h | 32 + .../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 + .../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 + .../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 + .../javax/net/ssl/SSLServerSocketFactory.h | 43 + libjava/javax/net/ssl/SSLSession.h | 73 + .../javax/net/ssl/SSLSessionBindingEvent.h | 39 + .../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 + .../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 + .../javax/net/ssl/TrustManagerFactorySpi.h | 48 + .../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 + .../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 + .../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 + ...uteSetUtilities$SynchronizedAttributeSet.h | 52 + ...SetUtilities$SynchronizedDocAttributeSet.h | 33 + ...ilities$SynchronizedPrintJobAttributeSet.h | 33 + ...ies$SynchronizedPrintRequestAttributeSet.h | 33 + ...ies$SynchronizedPrintServiceAttributeSet.h | 33 + ...uteSetUtilities$UnmodifiableAttributeSet.h | 52 + ...SetUtilities$UnmodifiableDocAttributeSet.h | 33 + ...ilities$UnmodifiablePrintJobAttributeSet.h | 33 + ...ies$UnmodifiablePrintRequestAttributeSet.h | 33 + ...ies$UnmodifiablePrintServiceAttributeSet.h | 33 + .../print/attribute/AttributeSetUtilities.h | 51 + .../javax/print/attribute/DateTimeSyntax.h | 41 + libjava/javax/print/attribute/DocAttribute.h | 33 + .../javax/print/attribute/DocAttributeSet.h | 46 + libjava/javax/print/attribute/EnumSyntax.h | 48 + .../javax/print/attribute/HashAttributeSet.h | 71 + .../print/attribute/HashDocAttributeSet.h | 42 + .../attribute/HashPrintJobAttributeSet.h | 42 + .../attribute/HashPrintRequestAttributeSet.h | 42 + .../attribute/HashPrintServiceAttributeSet.h | 42 + libjava/javax/print/attribute/IntegerSyntax.h | 41 + .../javax/print/attribute/PrintJobAttribute.h | 33 + .../print/attribute/PrintJobAttributeSet.h | 46 + .../print/attribute/PrintRequestAttribute.h | 33 + .../attribute/PrintRequestAttributeSet.h | 46 + .../print/attribute/PrintServiceAttribute.h | 33 + .../attribute/PrintServiceAttributeSet.h | 46 + .../javax/print/attribute/ResolutionSyntax.h | 57 + .../print/attribute/SetOfIntegerSyntax$1.h | 34 + .../print/attribute/SetOfIntegerSyntax.h | 62 + libjava/javax/print/attribute/Size2DSyntax.h | 55 + .../attribute/SupportedValuesAttribute.h | 33 + libjava/javax/print/attribute/TextSyntax.h | 43 + libjava/javax/print/attribute/URISyntax.h | 48 + .../attribute/UnmodifiableSetException.h | 33 + .../print/attribute/standard/Chromaticity.h | 53 + .../print/attribute/standard/ColorSupported.h | 53 + .../print/attribute/standard/Compression.h | 55 + .../javax/print/attribute/standard/Copies.h | 41 + .../attribute/standard/CopiesSupported.h | 42 + .../attribute/standard/DateTimeAtCompleted.h | 41 + .../attribute/standard/DateTimeAtCreation.h | 41 + .../attribute/standard/DateTimeAtProcessing.h | 41 + .../print/attribute/standard/Destination.h | 48 + .../print/attribute/standard/DocumentName.h | 41 + .../javax/print/attribute/standard/Fidelity.h | 53 + .../print/attribute/standard/Finishings.h | 70 + .../print/attribute/standard/JobHoldUntil.h | 41 + .../print/attribute/standard/JobImpressions.h | 41 + .../standard/JobImpressionsCompleted.h | 41 + .../standard/JobImpressionsSupported.h | 41 + .../print/attribute/standard/JobKOctets.h | 41 + .../attribute/standard/JobKOctetsProcessed.h | 41 + .../attribute/standard/JobKOctetsSupported.h | 41 + .../print/attribute/standard/JobMediaSheets.h | 41 + .../standard/JobMediaSheetsCompleted.h | 41 + .../standard/JobMediaSheetsSupported.h | 41 + .../standard/JobMessageFromOperator.h | 41 + .../javax/print/attribute/standard/JobName.h | 41 + .../standard/JobOriginatingUserName.h | 41 + .../print/attribute/standard/JobPriority.h | 41 + .../attribute/standard/JobPrioritySupported.h | 41 + .../print/attribute/standard/JobSheets.h | 53 + .../javax/print/attribute/standard/JobState.h | 59 + .../print/attribute/standard/JobStateReason.h | 80 + .../attribute/standard/JobStateReasons.h | 46 + .../javax/print/attribute/standard/Media.h | 42 + .../print/attribute/standard/MediaName.h | 51 + .../attribute/standard/MediaPrintableArea.h | 60 + .../standard/MediaSize$Engineering.h | 41 + .../print/attribute/standard/MediaSize$ISO.h | 63 + .../print/attribute/standard/MediaSize$JIS.h | 71 + .../print/attribute/standard/MediaSize$NA.h | 52 + .../attribute/standard/MediaSize$Other.h | 47 + .../print/attribute/standard/MediaSize.h | 50 + .../print/attribute/standard/MediaSizeName.h | 120 + .../print/attribute/standard/MediaTray.h | 55 + .../standard/MultipleDocumentHandling.h | 55 + .../attribute/standard/NumberOfDocuments.h | 41 + .../standard/NumberOfInterveningJobs.h | 41 + .../javax/print/attribute/standard/NumberUp.h | 41 + .../attribute/standard/NumberUpSupported.h | 45 + .../attribute/standard/OrientationRequested.h | 56 + .../attribute/standard/OutputDeviceAssigned.h | 41 + .../attribute/standard/PDLOverrideSupported.h | 53 + .../print/attribute/standard/PageRanges.h | 46 + .../print/attribute/standard/PagesPerMinute.h | 41 + .../attribute/standard/PagesPerMinuteColor.h | 41 + .../standard/PresentationDirection.h | 58 + .../print/attribute/standard/PrintQuality.h | 55 + .../print/attribute/standard/PrinterInfo.h | 41 + .../standard/PrinterIsAcceptingJobs.h | 53 + .../attribute/standard/PrinterLocation.h | 41 + .../attribute/standard/PrinterMakeAndModel.h | 41 + .../standard/PrinterMessageFromOperator.h | 41 + .../attribute/standard/PrinterMoreInfo.h | 48 + .../standard/PrinterMoreInfoManufacturer.h | 48 + .../print/attribute/standard/PrinterName.h | 41 + .../attribute/standard/PrinterResolution.h | 41 + .../print/attribute/standard/PrinterState.h | 55 + .../attribute/standard/PrinterStateReason.h | 84 + .../attribute/standard/PrinterStateReasons.h | 48 + .../print/attribute/standard/PrinterURI.h | 48 + .../print/attribute/standard/QueuedJobCount.h | 41 + .../standard/ReferenceUriSchemesSupported.h | 59 + .../attribute/standard/RequestingUserName.h | 41 + .../javax/print/attribute/standard/Severity.h | 54 + .../print/attribute/standard/SheetCollate.h | 53 + .../javax/print/attribute/standard/Sides.h | 56 + libjava/javax/print/event/PrintEvent.h | 33 + libjava/javax/print/event/PrintJobAdapter.h | 39 + .../print/event/PrintJobAttributeEvent.h | 43 + .../print/event/PrintJobAttributeListener.h | 33 + libjava/javax/print/event/PrintJobEvent.h | 47 + libjava/javax/print/event/PrintJobListener.h | 38 + .../print/event/PrintServiceAttributeEvent.h | 42 + .../event/PrintServiceAttributeListener.h | 33 + libjava/javax/rmi/CORBA/ClassDesc.h | 38 + .../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 + .../javax/rmi/CORBA/ValueHandlerMultiFormat.h | 57 + libjava/javax/rmi/PortableRemoteObject.h | 49 + .../javax/rmi/ssl/SslRMIClientSocketFactory.h | 60 + .../javax/rmi/ssl/SslRMIServerSocketFactory.h | 64 + libjava/javax/security/auth/AuthPermission.h | 33 + .../security/auth/DestroyFailedException.h | 33 + libjava/javax/security/auth/Destroyable.h | 33 + libjava/javax/security/auth/Policy.h | 49 + .../PrivateCredentialPermission$CredOwner.h | 41 + .../auth/PrivateCredentialPermission.h | 55 + .../security/auth/RefreshFailedException.h | 33 + libjava/javax/security/auth/Refreshable.h | 33 + .../javax/security/auth/Subject$SecureSet.h | 56 + libjava/javax/security/auth/Subject.h | 66 + .../security/auth/SubjectDomainCombiner.h | 47 + .../javax/security/auth/callback/Callback.h | 34 + .../security/auth/callback/CallbackHandler.h | 38 + .../security/auth/callback/ChoiceCallback.h | 53 + .../auth/callback/ConfirmationCallback.h | 72 + .../security/auth/callback/LanguageCallback.h | 40 + .../security/auth/callback/NameCallback.h | 47 + .../security/auth/callback/PasswordCallback.h | 48 + .../auth/callback/TextInputCallback.h | 47 + .../auth/callback/TextOutputCallback.h | 47 + .../callback/UnsupportedCallbackException.h | 41 + .../auth/kerberos/DelegationPermission$1.h | 52 + .../auth/kerberos/DelegationPermission.h | 49 + .../security/auth/kerberos/KerberosKey.h | 58 + .../auth/kerberos/KerberosPrincipal.h | 56 + .../security/auth/kerberos/KerberosTicket.h | 96 + .../javax/security/auth/kerberos/KeyImpl.h | 44 + .../auth/kerberos/ServicePermission$1.h | 52 + .../auth/kerberos/ServicePermission.h | 54 + .../security/auth/login/AccountException.h | 39 + .../auth/login/AccountExpiredException.h | 39 + .../auth/login/AccountLockedException.h | 39 + .../auth/login/AccountNotFoundException.h | 39 + ...onfigurationEntry$LoginModuleControlFlag.h | 40 + .../auth/login/AppConfigurationEntry.h | 45 + .../security/auth/login/Configuration$1.h | 37 + .../javax/security/auth/login/Configuration.h | 48 + .../security/auth/login/CredentialException.h | 39 + .../auth/login/CredentialExpiredException.h | 39 + .../auth/login/CredentialNotFoundException.h | 39 + .../auth/login/FailedLoginException.h | 39 + .../javax/security/auth/login/LoginContext.h | 66 + .../security/auth/login/LoginException.h | 39 + .../security/auth/login/NullConfiguration.h | 41 + libjava/javax/security/auth/spi/LoginModule.h | 44 + .../javax/security/auth/x500/X500Principal.h | 92 + .../auth/x500/X500PrivateCredential.h | 57 + libjava/javax/security/cert/Certificate.h | 48 + .../cert/CertificateEncodingException.h | 33 + .../security/cert/CertificateException.h | 33 + .../cert/CertificateExpiredException.h | 33 + .../cert/CertificateNotYetValidException.h | 33 + .../cert/CertificateParsingException.h | 33 + libjava/javax/security/cert/X509CertBridge.h | 70 + libjava/javax/security/cert/X509Certificate.h | 58 + .../security/sasl/AuthenticationException.h | 34 + .../javax/security/sasl/AuthorizeCallback.h | 45 + libjava/javax/security/sasl/RealmCallback.h | 33 + .../javax/security/sasl/RealmChoiceCallback.h | 34 + libjava/javax/security/sasl/Sasl.h | 64 + libjava/javax/security/sasl/SaslClient.h | 41 + .../javax/security/sasl/SaslClientFactory.h | 43 + libjava/javax/security/sasl/SaslException.h | 43 + libjava/javax/security/sasl/SaslServer.h | 41 + .../javax/security/sasl/SaslServerFactory.h | 43 + .../sound/midi/ControllerEventListener.h | 33 + libjava/javax/sound/midi/Instrument.h | 39 + .../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 + .../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 + .../javax/sound/midi/spi/MidiDeviceProvider.h | 42 + libjava/javax/sound/midi/spi/MidiFileReader.h | 50 + libjava/javax/sound/midi/spi/MidiFileWriter.h | 44 + .../javax/sound/midi/spi/SoundbankReader.h | 46 + .../sound/sampled/AudioFileFormat$Type.h | 45 + libjava/javax/sound/sampled/AudioFileFormat.h | 52 + .../sound/sampled/AudioFormat$Encoding.h | 42 + libjava/javax/sound/sampled/AudioFormat.h | 57 + .../AudioInputStream$TargetInputStream.h | 41 + .../javax/sound/sampled/AudioInputStream.h | 57 + libjava/javax/sound/sampled/AudioPermission.h | 36 + libjava/javax/sound/sampled/AudioSystem.h | 88 + .../javax/sound/sampled/BooleanControl$Type.h | 35 + libjava/javax/sound/sampled/BooleanControl.h | 45 + libjava/javax/sound/sampled/Clip.h | 70 + .../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 + .../javax/sound/sampled/EnumControl$Type.h | 34 + libjava/javax/sound/sampled/EnumControl.h | 44 + .../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 + .../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 + .../sampled/UnsupportedAudioFileException.h | 36 + .../javax/sound/sampled/spi/AudioFileReader.h | 50 + .../javax/sound/sampled/spi/AudioFileWriter.h | 45 + .../sampled/spi/FormatConversionProvider.h | 50 + .../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 + .../AbstractButton$ButtonChangeListener.h | 41 + .../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 + .../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 + ...lRendererPane$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 + .../javax/swing/DefaultBoundedRangeModel.h | 71 + libjava/javax/swing/DefaultButtonModel.h | 99 + .../swing/DefaultCellEditor$EditorDelegate.h | 61 + .../DefaultCellEditor$JCheckBoxDelegate.h | 39 + .../DefaultCellEditor$JComboBoxDelegate.h | 40 + .../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 + .../DefaultListCellRenderer$UIResource.h | 29 + libjava/javax/swing/DefaultListCellRenderer.h | 63 + libjava/javax/swing/DefaultListModel.h | 67 + .../javax/swing/DefaultListSelectionModel.h | 86 + .../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 + .../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 + .../javax/swing/JApplet$AccessibleJApplet.h | 33 + libjava/javax/swing/JApplet.h | 88 + .../javax/swing/JButton$AccessibleJButton.h | 39 + libjava/javax/swing/JButton.h | 56 + .../swing/JCheckBox$AccessibleJCheckBox.h | 39 + libjava/javax/swing/JCheckBox.h | 57 + ...kBoxMenuItem$AccessibleJCheckBoxMenuItem.h | 41 + libjava/javax/swing/JCheckBoxMenuItem.h | 58 + .../JColorChooser$AccessibleJColorChooser.h | 41 + .../JColorChooser$DefaultOKCancelListener.h | 44 + .../JColorChooser$DefaultResetListener.h | 46 + libjava/javax/swing/JColorChooser.h | 102 + libjava/javax/swing/JComboBox$1.h | 42 + .../swing/JComboBox$AccessibleJComboBox.h | 57 + .../JComboBox$DefaultKeySelectionManager.h | 36 + .../swing/JComboBox$KeySelectionManager.h | 30 + libjava/javax/swing/JComboBox.h | 164 + libjava/javax/swing/JComponent$1.h | 35 + ...bleJComponent$AccessibleContainerHandler.h | 46 + ...essibleJComponent$AccessibleFocusHandler.h | 46 + .../swing/JComponent$AccessibleJComponent.h | 79 + .../swing/JComponent$ActionListenerProxy.h | 45 + libjava/javax/swing/JComponent.h | 297 + .../JDesktopPane$AccessibleJDesktopPane.h | 41 + libjava/javax/swing/JDesktopPane.h | 82 + .../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 + .../JEditorPane$AccessibleJEditorPaneHTML.h | 39 + .../swing/JEditorPane$EditorKitMapping.h | 32 + ...rPaneAccessibleHypertextSupport$HTMLLink.h | 46 + ...ne$JEditorPaneAccessibleHypertextSupport.h | 42 + libjava/javax/swing/JEditorPane$PageLoader.h | 56 + libjava/javax/swing/JEditorPane$PageStream.h | 47 + .../javax/swing/JEditorPane$PlainEditorKit.h | 37 + libjava/javax/swing/JEditorPane.h | 113 + libjava/javax/swing/JFileChooser$1.h | 45 + .../JFileChooser$AccessibleJFileChooser.h | 39 + libjava/javax/swing/JFileChooser.h | 197 + .../JFormattedTextField$AbstractFormatter.h | 57 + ...mattedTextField$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 + ...rame$JDesktopIcon$AccessibleJDesktopIcon.h | 47 + .../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 + .../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 + ...ist$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 + .../javax/swing/JMenu$ActionChangedListener.h | 44 + .../javax/swing/JMenu$MenuChangeListener.h | 42 + libjava/javax/swing/JMenu$WinListener.h | 47 + libjava/javax/swing/JMenu.h | 141 + .../javax/swing/JMenuBar$AccessibleJMenuBar.h | 51 + libjava/javax/swing/JMenuBar.h | 100 + libjava/javax/swing/JMenuItem$1.h | 42 + .../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 + .../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 + .../swing/JPopupMenu$AccessibleJPopupMenu.h | 41 + .../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 + .../JProgressBar$AccessibleJProgressBar.h | 49 + libjava/javax/swing/JProgressBar.h | 107 + .../JRadioButton$AccessibleJRadioButton.h | 41 + libjava/javax/swing/JRadioButton.h | 51 + ...nMenuItem$AccessibleJRadioButtonMenuItem.h | 41 + libjava/javax/swing/JRadioButtonMenuItem.h | 52 + .../swing/JRootPane$AccessibleJRootPane.h | 41 + libjava/javax/swing/JRootPane$RootLayout.h | 60 + libjava/javax/swing/JRootPane.h | 103 + .../swing/JScrollBar$AccessibleJScrollBar.h | 49 + .../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 + .../swing/JSeparator$AccessibleJSeparator.h | 41 + libjava/javax/swing/JSeparator.h | 52 + libjava/javax/swing/JSlider$1.h | 39 + .../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 + .../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 + .../swing/JSpinner$NumberEditorFormatter.h | 30 + libjava/javax/swing/JSpinner.h | 66 + .../swing/JSplitPane$AccessibleJSplitPane.h | 49 + libjava/javax/swing/JSplitPane.h | 124 + .../swing/JTabbedPane$AccessibleJTabbedPane.h | 65 + .../javax/swing/JTabbedPane$ModelListener.h | 41 + libjava/javax/swing/JTabbedPane$Page.h | 91 + libjava/javax/swing/JTabbedPane.h | 148 + ...le$AccessibleJTable$AccessibleJTableCell.h | 97 + ...essibleJTable$AccessibleJTableHeaderCell.h | 101 + ...ssibleJTable$AccessibleJTableModelChange.h | 45 + ...e$AccessibleJTable$AccessibleTableHeader.h | 70 + libjava/javax/swing/JTable$AccessibleJTable.h | 121 + .../javax/swing/JTable$BooleanCellRenderer.h | 46 + libjava/javax/swing/JTable$DateCellRenderer.h | 42 + .../javax/swing/JTable$DoubleCellRenderer.h | 41 + .../javax/swing/JTable$FloatCellRenderer.h | 41 + libjava/javax/swing/JTable$IconCellRenderer.h | 42 + .../javax/swing/JTable$NumberCellRenderer.h | 33 + .../JTable$TableColumnPropertyChangeHandler.h | 42 + libjava/javax/swing/JTable$TableTextField.h | 32 + libjava/javax/swing/JTable.h | 294 + .../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 + .../swing/JTextField$AccessibleJTextField.h | 41 + libjava/javax/swing/JTextField.h | 108 + libjava/javax/swing/JTextPane.h | 73 + .../JToggleButton$AccessibleJToggleButton.h | 51 + .../swing/JToggleButton$ToggleButtonModel.h | 35 + libjava/javax/swing/JToggleButton.h | 51 + .../javax/swing/JToolBar$AccessibleJToolBar.h | 43 + .../swing/JToolBar$DefaultToolBarLayout.h | 48 + libjava/javax/swing/JToolBar$Separator.h | 46 + libjava/javax/swing/JToolBar.h | 95 + .../javax/swing/JToolTip$AccessibleJToolTip.h | 42 + libjava/javax/swing/JToolTip.h | 57 + ...Tree$AccessibleJTree$AccessibleJTreeNode.h | 140 + libjava/javax/swing/JTree$AccessibleJTree.h | 74 + .../javax/swing/JTree$DynamicUtilTreeNode.h | 47 + .../javax/swing/JTree$EmptySelectionModel.h | 45 + libjava/javax/swing/JTree$TreeModelHandler.h | 42 + .../swing/JTree$TreeSelectionRedirector.h | 41 + libjava/javax/swing/JTree.h | 270 + .../swing/JViewport$AccessibleJViewport.h | 39 + libjava/javax/swing/JViewport$ViewListener.h | 47 + libjava/javax/swing/JViewport.h | 132 + .../javax/swing/JWindow$AccessibleJWindow.h | 33 + libjava/javax/swing/JWindow.h | 95 + libjava/javax/swing/KeyStroke.h | 50 + libjava/javax/swing/KeyboardManager.h | 65 + ...outFocusTraversalPolicy$LayoutComparator.h | 30 + .../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 + .../swing/ProgressMonitor$TimerListener.h | 48 + libjava/javax/swing/ProgressMonitor.h | 78 + .../javax/swing/ProgressMonitorInputStream.h | 53 + libjava/javax/swing/Renderer.h | 37 + .../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 + .../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 + .../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 + .../javax/swing/SpringLayout$Constraints.h | 65 + .../swing/SpringLayout$DeferredDimension.h | 34 + .../javax/swing/SpringLayout$DeferredHeight.h | 43 + .../javax/swing/SpringLayout$DeferredSpring.h | 52 + .../javax/swing/SpringLayout$DeferredWidth.h | 43 + libjava/javax/swing/SpringLayout.h | 64 + libjava/javax/swing/SwingConstants.h | 47 + .../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 + .../swing/ToolTipManager$insideTimerAction.h | 45 + .../swing/ToolTipManager$outsideTimerAction.h | 45 + .../ToolTipManager$stillInsideTimerAction.h | 45 + libjava/javax/swing/ToolTipManager.h | 92 + .../TransferHandler$PropertyTransferable.h | 54 + .../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 + .../javax/swing/UIDefaults$ProxyLazyValue.h | 40 + libjava/javax/swing/UIDefaults.h | 104 + .../javax/swing/UIManager$LookAndFeelInfo.h | 36 + ...MultiplexUIDefaults$MultiplexEnumeration.h | 40 + .../swing/UIManager$MultiplexUIDefaults.h | 40 + libjava/javax/swing/UIManager.h | 109 + .../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 + .../colorchooser/AbstractColorChooserPanel.h | 63 + .../ColorChooserComponentFactory.h | 38 + .../swing/colorchooser/ColorSelectionModel.h | 46 + .../colorchooser/DefaultColorSelectionModel.h | 62 + .../colorchooser/DefaultHSBChooserPanel$1.h | 47 + .../colorchooser/DefaultHSBChooserPanel$2.h | 47 + ...faultHSBChooserPanel$ImageScrollListener.h | 42 + ...SBChooserPanel$MainGradientMouseListener.h | 56 + ...efaultHSBChooserPanel$RadioStateListener.h | 42 + ...aultHSBChooserPanel$SliderChangeListener.h | 42 + .../colorchooser/DefaultHSBChooserPanel.h | 116 + .../DefaultPreviewPanel$PreviewBorder.h | 53 + .../swing/colorchooser/DefaultPreviewPanel.h | 55 + .../DefaultRGBChooserPanel$SliderHandler.h | 42 + .../DefaultRGBChooserPanel$SpinnerHandler.h | 42 + .../colorchooser/DefaultRGBChooserPanel.h | 81 + ...efaultSwatchChooserPanel$MainPanelLayout.h | 47 + ...efaultSwatchChooserPanel$MainSwatchPanel.h | 81 + .../DefaultSwatchChooserPanel$MouseHandler.h | 48 + ...aultSwatchChooserPanel$RecentPanelLayout.h | 47 + ...aultSwatchChooserPanel$RecentSwatchPanel.h | 64 + .../DefaultSwatchChooserPanel$SwatchPanel.h | 51 + .../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 + .../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 + .../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 + .../swing/event/HyperlinkEvent$EventType.h | 39 + libjava/javax/swing/event/HyperlinkEvent.h | 57 + libjava/javax/swing/event/HyperlinkListener.h | 33 + .../javax/swing/event/InternalFrameAdapter.h | 40 + .../javax/swing/event/InternalFrameEvent.h | 47 + .../javax/swing/event/InternalFrameListener.h | 39 + libjava/javax/swing/event/ListDataEvent.h | 47 + libjava/javax/swing/event/ListDataListener.h | 35 + .../javax/swing/event/ListSelectionEvent.h | 41 + .../javax/swing/event/ListSelectionListener.h | 33 + .../javax/swing/event/MenuDragMouseEvent.h | 49 + .../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 + .../javax/swing/event/MouseInputListener.h | 48 + libjava/javax/swing/event/PopupMenuEvent.h | 32 + libjava/javax/swing/event/PopupMenuListener.h | 35 + .../swing/event/SwingPropertyChangeSupport.h | 35 + .../javax/swing/event/TableColumnModelEvent.h | 42 + .../swing/event/TableColumnModelListener.h | 39 + libjava/javax/swing/event/TableModelEvent.h | 58 + .../javax/swing/event/TableModelListener.h | 33 + .../javax/swing/event/TreeExpansionEvent.h | 40 + .../javax/swing/event/TreeExpansionListener.h | 34 + libjava/javax/swing/event/TreeModelEvent.h | 51 + libjava/javax/swing/event/TreeModelListener.h | 36 + .../javax/swing/event/TreeSelectionEvent.h | 53 + .../javax/swing/event/TreeSelectionListener.h | 33 + .../swing/event/TreeWillExpandListener.h | 34 + libjava/javax/swing/event/UndoableEditEvent.h | 41 + .../javax/swing/event/UndoableEditListener.h | 33 + libjava/javax/swing/filechooser/FileFilter.h | 34 + .../javax/swing/filechooser/FileSystemView.h | 63 + libjava/javax/swing/filechooser/FileView.h | 38 + .../swing/filechooser/UnixFileSystemView.h | 45 + .../javax/swing/plaf/ActionMapUIResource.h | 32 + .../BorderUIResource$BevelBorderUIResource.h | 44 + ...orderUIResource$CompoundBorderUIResource.h | 39 + .../BorderUIResource$EmptyBorderUIResource.h | 43 + .../BorderUIResource$EtchedBorderUIResource.h | 45 + .../BorderUIResource$LineBorderUIResource.h | 43 + .../BorderUIResource$MatteBorderUIResource.h | 45 + .../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 + .../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 + .../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 + .../javax/swing/plaf/basic/BasicArrowButton.h | 65 + .../plaf/basic/BasicBorders$ButtonBorder.h | 56 + .../plaf/basic/BasicBorders$FieldBorder.h | 56 + .../plaf/basic/BasicBorders$MarginBorder.h | 48 + .../plaf/basic/BasicBorders$MenuBarBorder.h | 54 + .../basic/BasicBorders$RadioButtonBorder.h | 51 + .../basic/BasicBorders$RolloverButtonBorder.h | 48 + .../plaf/basic/BasicBorders$SplitPaneBorder.h | 61 + .../BasicBorders$SplitPaneDividerBorder.h | 51 + .../basic/BasicBorders$ToggleButtonBorder.h | 51 + libjava/javax/swing/plaf/basic/BasicBorders.h | 54 + .../swing/plaf/basic/BasicButtonListener$1.h | 51 + .../swing/plaf/basic/BasicButtonListener$2.h | 51 + .../basic/BasicButtonListener$ButtonAction.h | 54 + .../swing/plaf/basic/BasicButtonListener.h | 76 + .../javax/swing/plaf/basic/BasicButtonUI.h | 96 + .../plaf/basic/BasicCheckBoxMenuItemUI.h | 57 + .../javax/swing/plaf/basic/BasicCheckBoxUI.h | 39 + .../swing/plaf/basic/BasicColorChooserUI$1.h | 45 + .../BasicColorChooserUI$PreviewListener.h | 45 + .../BasicColorChooserUI$PropertyHandler.h | 47 + .../BasicColorChooserUI$TabPaneListener.h | 45 + .../swing/plaf/basic/BasicColorChooserUI.h | 89 + .../basic/BasicComboBoxEditor$UIResource.h | 35 + .../swing/plaf/basic/BasicComboBoxEditor.h | 59 + .../basic/BasicComboBoxRenderer$UIResource.h | 35 + .../swing/plaf/basic/BasicComboBoxRenderer.h | 53 + .../BasicComboBoxUI$ComboBoxLayoutManager.h | 53 + .../plaf/basic/BasicComboBoxUI$FocusHandler.h | 51 + .../plaf/basic/BasicComboBoxUI$ItemHandler.h | 50 + .../plaf/basic/BasicComboBoxUI$KeyHandler.h | 50 + .../basic/BasicComboBoxUI$ListDataHandler.h | 46 + .../BasicComboBoxUI$PropertyChangeHandler.h | 47 + .../javax/swing/plaf/basic/BasicComboBoxUI.h | 154 + .../BasicComboPopup$InvocationKeyHandler.h | 50 + .../BasicComboPopup$InvocationMouseHandler.h | 52 + ...cComboPopup$InvocationMouseMotionHandler.h | 51 + .../plaf/basic/BasicComboPopup$ItemHandler.h | 51 + .../basic/BasicComboPopup$ListDataHandler.h | 46 + .../basic/BasicComboPopup$ListMouseHandler.h | 52 + .../BasicComboPopup$ListMouseMotionHandler.h | 51 + .../BasicComboPopup$ListSelectionHandler.h | 45 + .../BasicComboPopup$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicComboPopup.h | 135 + .../swing/plaf/basic/BasicDesktopIconUI$1.h | 48 + .../swing/plaf/basic/BasicDesktopIconUI$2.h | 51 + .../basic/BasicDesktopIconUI$BoundButton.h | 49 + .../BasicDesktopIconUI$DesktopIconBorder.h | 56 + ...sktopIconUI$InternalFrameDefaultMenuIcon.h | 47 + .../BasicDesktopIconUI$MouseInputHandler.h | 60 + .../swing/plaf/basic/BasicDesktopIconUI.h | 90 + .../basic/BasicDesktopPaneUI$CloseAction.h | 52 + .../basic/BasicDesktopPaneUI$MaximizeAction.h | 52 + .../basic/BasicDesktopPaneUI$MinimizeAction.h | 52 + .../basic/BasicDesktopPaneUI$NavigateAction.h | 52 + .../basic/BasicDesktopPaneUI$OpenAction.h | 52 + .../swing/plaf/basic/BasicDesktopPaneUI.h | 74 + .../swing/plaf/basic/BasicDirectoryModel$1.h | 41 + ...l$DirectoryLoadThread$UpdateSwingRequest.h | 49 + .../BasicDirectoryModel$DirectoryLoadThread.h | 50 + .../swing/plaf/basic/BasicDirectoryModel.h | 83 + .../swing/plaf/basic/BasicEditorPaneUI.h | 47 + .../BasicFileChooserUI$AcceptAllFileFilter.h | 41 + ...asicFileChooserUI$ApproveSelectionAction.h | 51 + .../basic/BasicFileChooserUI$BasicFileView.h | 50 + ...BasicFileChooserUI$CancelSelectionAction.h | 51 + ...eChooserUI$ChangeToParentDirectoryAction.h | 51 + .../BasicFileChooserUI$DoubleClickListener.h | 55 + .../basic/BasicFileChooserUI$GoHomeAction.h | 51 + .../BasicFileChooserUI$NewFolderAction.h | 51 + .../BasicFileChooserUI$SelectionListener.h | 45 + .../basic/BasicFileChooserUI$UpdateAction.h | 51 + .../swing/plaf/basic/BasicFileChooserUI.h | 187 + .../plaf/basic/BasicFormattedTextFieldUI.h | 41 + .../swing/plaf/basic/BasicGraphicsUtils.h | 64 + .../swing/plaf/basic/BasicHTML$HTMLRootView.h | 87 + libjava/javax/swing/plaf/basic/BasicHTML.h | 45 + .../swing/plaf/basic/BasicIconFactory$1.h | 47 + .../swing/plaf/basic/BasicIconFactory$2.h | 47 + .../basic/BasicIconFactory$CheckBoxIcon.h | 47 + .../BasicIconFactory$CheckBoxMenuItemIcon.h | 47 + .../plaf/basic/BasicIconFactory$DummyIcon.h | 49 + .../basic/BasicIconFactory$RadioButtonIcon.h | 47 + .../javax/swing/plaf/basic/BasicIconFactory.h | 52 + .../BasicInternalFrameTitlePane$CloseAction.h | 50 + ...asicInternalFrameTitlePane$IconifyAction.h | 50 + ...sicInternalFrameTitlePane$MaximizeAction.h | 50 + .../BasicInternalFrameTitlePane$MoveAction.h | 50 + .../BasicInternalFrameTitlePane$PaneButton.h | 41 + ...rnalFrameTitlePane$PropertyChangeHandler.h | 47 + ...asicInternalFrameTitlePane$RestoreAction.h | 50 + .../BasicInternalFrameTitlePane$SizeAction.h | 50 + ...asicInternalFrameTitlePane$SystemMenuBar.h | 50 + ...icInternalFrameTitlePane$TitlePaneLayout.h | 53 + .../plaf/basic/BasicInternalFrameTitlePane.h | 110 + ...ternalFrameUI$BasicInternalFrameListener.h | 51 + .../BasicInternalFrameUI$BorderListener.h | 71 + .../BasicInternalFrameUI$ComponentHandler.h | 54 + ...BasicInternalFrameUI$GlassPaneDispatcher.h | 65 + ...BasicInternalFrameUI$InternalFrameBorder.h | 54 + ...BasicInternalFrameUI$InternalFrameLayout.h | 56 + ...meUI$InternalFramePropertyChangeListener.h | 47 + ...asicInternalFrameUI$ShowSystemMenuAction.h | 51 + .../swing/plaf/basic/BasicInternalFrameUI.h | 139 + .../javax/swing/plaf/basic/BasicLabelUI$1.h | 51 + libjava/javax/swing/plaf/basic/BasicLabelUI.h | 83 + .../basic/BasicListUI$ActionListenerProxy.h | 51 + .../plaf/basic/BasicListUI$FocusHandler.h | 53 + .../swing/plaf/basic/BasicListUI$ListAction.h | 51 + .../plaf/basic/BasicListUI$ListDataHandler.h | 46 + .../basic/BasicListUI$ListSelectionHandler.h | 44 + .../basic/BasicListUI$MouseInputHandler.h | 56 + .../basic/BasicListUI$PropertyChangeHandler.h | 47 + libjava/javax/swing/plaf/basic/BasicListUI.h | 128 + .../swing/plaf/basic/BasicLookAndFeel$1.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$2.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$3.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$4.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$5.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$6.h | 42 + .../swing/plaf/basic/BasicLookAndFeel$7.h | 42 + .../plaf/basic/BasicLookAndFeel$AudioAction.h | 52 + .../plaf/basic/BasicLookAndFeel$PopupHelper.h | 54 + .../javax/swing/plaf/basic/BasicLookAndFeel.h | 63 + .../plaf/basic/BasicMenuBarUI$ChangeHandler.h | 45 + .../basic/BasicMenuBarUI$ContainerHandler.h | 52 + .../plaf/basic/BasicMenuBarUI$FocusAction.h | 47 + .../basic/BasicMenuBarUI$MouseInputHandler.h | 57 + .../BasicMenuBarUI$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicMenuBarUI.h | 93 + .../plaf/basic/BasicMenuItemUI$ClickAction.h | 51 + .../plaf/basic/BasicMenuItemUI$ItemHandler.h | 51 + .../BasicMenuItemUI$MenuDragMouseHandler.h | 48 + .../basic/BasicMenuItemUI$MenuKeyHandler.h | 47 + .../basic/BasicMenuItemUI$MouseInputHandler.h | 57 + .../BasicMenuItemUI$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicMenuItemUI.h | 132 + .../plaf/basic/BasicMenuUI$ChangeHandler.h | 56 + .../basic/BasicMenuUI$MenuDragMouseHandler.h | 48 + .../plaf/basic/BasicMenuUI$MenuHandler.h | 47 + .../plaf/basic/BasicMenuUI$MenuKeyHandler.h | 47 + .../basic/BasicMenuUI$MouseInputHandler.h | 60 + .../plaf/basic/BasicMenuUI$SelectMenuAction.h | 51 + libjava/javax/swing/plaf/basic/BasicMenuUI.h | 80 + .../swing/plaf/basic/BasicOptionPaneUI$1.h | 45 + .../swing/plaf/basic/BasicOptionPaneUI$2.h | 45 + .../swing/plaf/basic/BasicOptionPaneUI$3.h | 45 + .../swing/plaf/basic/BasicOptionPaneUI$4.h | 45 + .../BasicOptionPaneUI$ButtonActionListener.h | 52 + .../BasicOptionPaneUI$ButtonAreaLayout.h | 66 + .../basic/BasicOptionPaneUI$MessageIcon.h | 49 + .../BasicOptionPaneUI$OptionPaneCloseAction.h | 47 + .../BasicOptionPaneUI$PropertyChangeHandler.h | 47 + .../swing/plaf/basic/BasicOptionPaneUI.h | 148 + libjava/javax/swing/plaf/basic/BasicPanelUI.h | 49 + .../swing/plaf/basic/BasicPasswordFieldUI.h | 47 + .../plaf/basic/BasicPopupMenuSeparatorUI.h | 48 + .../basic/BasicPopupMenuUI$KeyboardHelper.h | 65 + .../basic/BasicPopupMenuUI$NavigateAction.h | 64 + .../basic/BasicPopupMenuUI$PopupMenuHandler.h | 47 + .../BasicPopupMenuUI$TopWindowListener.h | 54 + .../javax/swing/plaf/basic/BasicPopupMenuUI.h | 90 + .../BasicProgressBarUI$AncestorHandler.h | 47 + .../plaf/basic/BasicProgressBarUI$Animator.h | 51 + .../basic/BasicProgressBarUI$ChangeHandler.h | 44 + .../BasicProgressBarUI$ComponentHandler.h | 51 + ...BasicProgressBarUI$PropertyChangeHandler.h | 48 + .../swing/plaf/basic/BasicProgressBarUI.h | 123 + .../plaf/basic/BasicRadioButtonMenuItemUI.h | 57 + .../swing/plaf/basic/BasicRadioButtonUI.h | 60 + .../BasicRootPaneUI$DefaultPressAction.h | 54 + .../BasicRootPaneUI$DefaultReleaseAction.h | 54 + .../javax/swing/plaf/basic/BasicRootPaneUI.h | 61 + .../swing/plaf/basic/BasicScrollBarUI$1.h | 51 + .../swing/plaf/basic/BasicScrollBarUI$2.h | 51 + .../swing/plaf/basic/BasicScrollBarUI$3.h | 51 + .../swing/plaf/basic/BasicScrollBarUI$4.h | 51 + .../swing/plaf/basic/BasicScrollBarUI$5.h | 51 + .../swing/plaf/basic/BasicScrollBarUI$6.h | 51 + .../BasicScrollBarUI$ArrowButtonListener.h | 52 + .../basic/BasicScrollBarUI$ModelListener.h | 45 + .../BasicScrollBarUI$PropertyChangeHandler.h | 47 + .../basic/BasicScrollBarUI$ScrollListener.h | 56 + .../basic/BasicScrollBarUI$TrackListener.h | 60 + .../javax/swing/plaf/basic/BasicScrollBarUI.h | 174 + .../swing/plaf/basic/BasicScrollPaneUI$1.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$10.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$2.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$3.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$4.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$5.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$6.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$7.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$8.h | 51 + .../swing/plaf/basic/BasicScrollPaneUI$9.h | 51 + .../BasicScrollPaneUI$HSBChangeListener.h | 44 + .../BasicScrollPaneUI$MouseWheelHandler.h | 53 + .../BasicScrollPaneUI$PropertyChangeHandler.h | 47 + .../BasicScrollPaneUI$VSBChangeListener.h | 44 + .../BasicScrollPaneUI$ViewportChangeHandler.h | 44 + ...icScrollPaneUI$ViewportContainerListener.h | 52 + .../swing/plaf/basic/BasicScrollPaneUI.h | 108 + .../javax/swing/plaf/basic/BasicSeparatorUI.h | 64 + .../javax/swing/plaf/basic/BasicSliderUI$1.h | 51 + .../javax/swing/plaf/basic/BasicSliderUI$2.h | 51 + .../javax/swing/plaf/basic/BasicSliderUI$3.h | 51 + .../javax/swing/plaf/basic/BasicSliderUI$4.h | 51 + .../javax/swing/plaf/basic/BasicSliderUI$5.h | 51 + .../javax/swing/plaf/basic/BasicSliderUI$6.h | 51 + .../plaf/basic/BasicSliderUI$ActionScroller.h | 51 + .../plaf/basic/BasicSliderUI$ChangeHandler.h | 44 + .../basic/BasicSliderUI$ComponentHandler.h | 50 + .../plaf/basic/BasicSliderUI$FocusHandler.h | 51 + .../BasicSliderUI$PropertyChangeHandler.h | 47 + .../plaf/basic/BasicSliderUI$ScrollListener.h | 56 + .../plaf/basic/BasicSliderUI$TrackListener.h | 58 + .../javax/swing/plaf/basic/BasicSliderUI.h | 188 + .../javax/swing/plaf/basic/BasicSpinnerUI$1.h | 48 + .../javax/swing/plaf/basic/BasicSpinnerUI$2.h | 56 + .../javax/swing/plaf/basic/BasicSpinnerUI$3.h | 51 + .../javax/swing/plaf/basic/BasicSpinnerUI$4.h | 56 + .../javax/swing/plaf/basic/BasicSpinnerUI$5.h | 51 + .../BasicSpinnerUI$DefaultLayoutManager.h | 62 + .../javax/swing/plaf/basic/BasicSpinnerUI.h | 74 + ...asicSplitPaneDivider$BasicOneTouchButton.h | 63 + .../BasicSplitPaneDivider$DividerLayout.h | 54 + .../BasicSplitPaneDivider$DragController.h | 58 + .../BasicSplitPaneDivider$MouseHandler.h | 56 + .../BasicSplitPaneDivider$OneTouchAction.h | 51 + ...cSplitPaneDivider$VerticalDragController.h | 52 + .../swing/plaf/basic/BasicSplitPaneDivider.h | 97 + .../swing/plaf/basic/BasicSplitPaneUI$1.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$2.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$3.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$4.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$5.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$6.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$7.h | 51 + .../swing/plaf/basic/BasicSplitPaneUI$8.h | 51 + ...SplitPaneUI$BasicHorizontalLayoutManager.h | 88 + ...icSplitPaneUI$BasicVerticalLayoutManager.h | 39 + .../basic/BasicSplitPaneUI$FocusHandler.h | 51 + ...asicSplitPaneUI$KeyboardDownRightHandler.h | 50 + .../BasicSplitPaneUI$KeyboardEndHandler.h | 50 + .../BasicSplitPaneUI$KeyboardHomeHandler.h | 50 + ...cSplitPaneUI$KeyboardResizeToggleHandler.h | 50 + .../BasicSplitPaneUI$KeyboardUpLeftHandler.h | 50 + .../basic/BasicSplitPaneUI$PropertyHandler.h | 47 + .../javax/swing/plaf/basic/BasicSplitPaneUI.h | 149 + .../basic/BasicTabbedPaneUI$FocusHandler.h | 51 + .../basic/BasicTabbedPaneUI$MouseHandler.h | 55 + .../basic/BasicTabbedPaneUI$NavigateAction.h | 50 + ...BasicTabbedPaneUI$NavigatePageDownAction.h | 46 + .../BasicTabbedPaneUI$NavigatePageUpAction.h | 46 + .../BasicTabbedPaneUI$PropertyChangeHandler.h | 47 + .../BasicTabbedPaneUI$RequestFocusAction.h | 46 + ...UI$RequestFocusForVisibleComponentAction.h | 46 + .../basic/BasicTabbedPaneUI$ScrollingButton.h | 39 + ...edPaneUI$ScrollingPanel$ScrollingPanelUI.h | 49 + .../basic/BasicTabbedPaneUI$ScrollingPanel.h | 42 + .../BasicTabbedPaneUI$ScrollingViewport.h | 39 + .../BasicTabbedPaneUI$TabSelectionHandler.h | 44 + .../BasicTabbedPaneUI$TabbedPaneLayout.h | 68 + ...BasicTabbedPaneUI$TabbedPaneScrollLayout.h | 56 + .../swing/plaf/basic/BasicTabbedPaneUI.h | 223 + .../swing/plaf/basic/BasicTableHeaderUI$1.h | 51 + .../BasicTableHeaderUI$MouseInputHandler.h | 65 + .../swing/plaf/basic/BasicTableHeaderUI.h | 92 + .../plaf/basic/BasicTableUI$FocusHandler.h | 53 + .../plaf/basic/BasicTableUI$KeyHandler.h | 52 + .../basic/BasicTableUI$MouseInputHandler.h | 62 + .../BasicTableUI$PropertyChangeHandler.h | 48 + .../plaf/basic/BasicTableUI$TableAction.h | 57 + libjava/javax/swing/plaf/basic/BasicTableUI.h | 112 + .../javax/swing/plaf/basic/BasicTextAreaUI.h | 55 + .../javax/swing/plaf/basic/BasicTextFieldUI.h | 58 + .../javax/swing/plaf/basic/BasicTextPaneUI.h | 42 + .../javax/swing/plaf/basic/BasicTextUI$1.h | 52 + .../swing/plaf/basic/BasicTextUI$BasicCaret.h | 35 + .../plaf/basic/BasicTextUI$BasicHighlighter.h | 35 + .../plaf/basic/BasicTextUI$DocumentHandler.h | 47 + .../plaf/basic/BasicTextUI$FocusHandler.h | 50 + .../swing/plaf/basic/BasicTextUI$Handler.h | 55 + .../basic/BasicTextUI$PropertyChangeHandler.h | 48 + .../swing/plaf/basic/BasicTextUI$RootView.h | 85 + libjava/javax/swing/plaf/basic/BasicTextUI.h | 137 + .../swing/plaf/basic/BasicToggleButtonUI.h | 54 + .../plaf/basic/BasicToolBarSeparatorUI.h | 57 + .../basic/BasicToolBarUI$DockingListener.h | 62 + .../plaf/basic/BasicToolBarUI$DragWindow.h | 60 + .../plaf/basic/BasicToolBarUI$FrameListener.h | 51 + .../basic/BasicToolBarUI$PropertyListener.h | 48 + .../plaf/basic/BasicToolBarUI$ToolBarAction.h | 50 + .../plaf/basic/BasicToolBarUI$ToolBarBorder.h | 55 + .../BasicToolBarUI$ToolBarContListener.h | 52 + .../plaf/basic/BasicToolBarUI$ToolBarDialog.h | 39 + .../BasicToolBarUI$ToolBarFocusListener.h | 52 + .../javax/swing/plaf/basic/BasicToolBarUI.h | 170 + .../BasicToolTipUI$PropertyChangeHandler.h | 48 + .../javax/swing/plaf/basic/BasicToolTipUI.h | 69 + .../javax/swing/plaf/basic/BasicTreeUI$1.h | 51 + .../javax/swing/plaf/basic/BasicTreeUI$2.h | 51 + .../basic/BasicTreeUI$CellEditorHandler.h | 45 + .../plaf/basic/BasicTreeUI$ComponentHandler.h | 62 + .../plaf/basic/BasicTreeUI$FocusHandler.h | 52 + .../swing/plaf/basic/BasicTreeUI$KeyHandler.h | 59 + .../plaf/basic/BasicTreeUI$MouseHandler.h | 56 + .../basic/BasicTreeUI$MouseInputHandler.h | 64 + .../basic/BasicTreeUI$NodeDimensionsHandler.h | 49 + .../basic/BasicTreeUI$PropertyChangeHandler.h | 47 + ...eeUI$SelectionModelPropertyChangeHandler.h | 47 + .../BasicTreeUI$TreeCancelEditingAction.h | 50 + .../basic/BasicTreeUI$TreeExpansionHandler.h | 45 + .../plaf/basic/BasicTreeUI$TreeHomeAction.h | 53 + .../basic/BasicTreeUI$TreeIncrementAction.h | 53 + .../plaf/basic/BasicTreeUI$TreeModelHandler.h | 47 + .../plaf/basic/BasicTreeUI$TreePageAction.h | 53 + .../basic/BasicTreeUI$TreeSelectionHandler.h | 44 + .../BasicTreeUI$TreeStartEditingAction.h | 50 + .../plaf/basic/BasicTreeUI$TreeToggleAction.h | 51 + .../basic/BasicTreeUI$TreeTraverseAction.h | 53 + libjava/javax/swing/plaf/basic/BasicTreeUI.h | 280 + .../javax/swing/plaf/basic/BasicViewportUI.h | 44 + libjava/javax/swing/plaf/basic/ComboPopup.h | 55 + .../swing/plaf/basic/DefaultMenuLayout.h | 44 + .../javax/swing/plaf/basic/SharedUIDefaults.h | 48 + .../swing/plaf/metal/DefaultMetalTheme.h | 73 + .../plaf/metal/MetalBorders$ButtonBorder.h | 54 + .../metal/MetalBorders$DesktopIconBorder.h | 47 + .../plaf/metal/MetalBorders$Flush3DBorder.h | 50 + .../metal/MetalBorders$InternalFrameBorder.h | 50 + .../plaf/metal/MetalBorders$MenuBarBorder.h | 50 + .../plaf/metal/MetalBorders$MenuItemBorder.h | 50 + .../metal/MetalBorders$OptionDialogBorder.h | 47 + .../plaf/metal/MetalBorders$PaletteBorder.h | 50 + .../plaf/metal/MetalBorders$PopupMenuBorder.h | 50 + .../metal/MetalBorders$RolloverButtonBorder.h | 44 + .../metal/MetalBorders$RolloverMarginBorder.h | 48 + .../metal/MetalBorders$ScrollPaneBorder.h | 49 + .../metal/MetalBorders$TableHeaderBorder.h | 49 + .../plaf/metal/MetalBorders$TextFieldBorder.h | 44 + .../metal/MetalBorders$ToggleButtonBorder.h | 44 + .../plaf/metal/MetalBorders$ToolBarBorder.h | 47 + libjava/javax/swing/plaf/metal/MetalBorders.h | 62 + .../swing/plaf/metal/MetalButtonListener.h | 44 + .../javax/swing/plaf/metal/MetalButtonUI.h | 71 + .../swing/plaf/metal/MetalCheckBoxIcon.h | 54 + .../javax/swing/plaf/metal/MetalCheckBoxUI.h | 42 + .../swing/plaf/metal/MetalComboBoxButton.h | 63 + .../MetalComboBoxEditor$EditorTextField.h | 49 + ...ComboBoxEditor$MetalComboBoxEditorBorder.h | 46 + .../metal/MetalComboBoxEditor$UIResource.h | 35 + .../swing/plaf/metal/MetalComboBoxEditor.h | 45 + .../swing/plaf/metal/MetalComboBoxIcon.h | 46 + ...talComboBoxUI$MetalComboBoxLayoutManager.h | 48 + .../metal/MetalComboBoxUI$MetalComboPopup.h | 51 + ...alComboBoxUI$MetalPropertyChangeListener.h | 47 + .../javax/swing/plaf/metal/MetalComboBoxUI.h | 83 + .../swing/plaf/metal/MetalDesktopIconUI.h | 38 + .../metal/MetalFileChooserUI$ButtonLayout.h | 55 + ...alFileChooserUI$DetailViewActionListener.h | 51 + ...talFileChooserUI$DirectoryComboBoxAction.h | 51 + ...etalFileChooserUI$DirectoryComboBoxModel.h | 47 + ...lFileChooserUI$DirectoryComboBoxRenderer.h | 52 + .../metal/MetalFileChooserUI$FileRenderer.h | 49 + .../MetalFileChooserUI$FilterComboBoxModel.h | 62 + ...etalFileChooserUI$FilterComboBoxRenderer.h | 48 + .../metal/MetalFileChooserUI$IndentIcon.h | 58 + ...etalFileChooserUI$ListViewActionListener.h | 51 + ...I$MetalFileChooserPropertyChangeListener.h | 47 + ...oserUI$MetalFileChooserSelectionListener.h | 45 + ...ingleClickListener$EditingActionListener.h | 51 + .../MetalFileChooserUI$SingleClickListener.h | 60 + ...TableClickListener$EditingActionListener.h | 51 + .../MetalFileChooserUI$TableClickListener.h | 63 + .../MetalFileChooserUI$TableFileRenderer.h | 48 + .../MetalFileChooserUI$VerticalMidLayout.h | 54 + .../swing/plaf/metal/MetalFileChooserUI.h | 159 + .../swing/plaf/metal/MetalIconFactory$1.h | 47 + .../swing/plaf/metal/MetalIconFactory$2.h | 47 + .../swing/plaf/metal/MetalIconFactory$3.h | 47 + .../MetalIconFactory$CheckBoxMenuItemIcon.h | 46 + ...talIconFactory$FileChooserDetailViewIcon.h | 46 + ...talIconFactory$FileChooserHomeFolderIcon.h | 46 + ...MetalIconFactory$FileChooserListViewIcon.h | 46 + ...etalIconFactory$FileChooserNewFolderIcon.h | 46 + ...MetalIconFactory$FileChooserUpFolderIcon.h | 44 + .../plaf/metal/MetalIconFactory$FileIcon16.h | 48 + .../metal/MetalIconFactory$FolderIcon16.h | 48 + ...talIconFactory$HorizontalSliderThumbIcon.h | 51 + ...IconFactory$InternalFrameAltMaximizeIcon.h | 49 + .../MetalIconFactory$InternalFrameCloseIcon.h | 49 + ...IconFactory$InternalFrameDefaultMenuIcon.h | 46 + ...talIconFactory$InternalFrameMaximizeIcon.h | 46 + ...talIconFactory$InternalFrameMinimizeIcon.h | 46 + .../metal/MetalIconFactory$PaletteCloseIcon.h | 46 + .../metal/MetalIconFactory$RadioButtonIcon.h | 52 + ...MetalIconFactory$RadioButtonMenuItemIcon.h | 46 + .../metal/MetalIconFactory$TreeComputerIcon.h | 46 + .../metal/MetalIconFactory$TreeControlIcon.h | 52 + .../MetalIconFactory$TreeFloppyDriveIcon.h | 46 + .../metal/MetalIconFactory$TreeFolderIcon.h | 37 + .../MetalIconFactory$TreeHardDriveIcon.h | 46 + .../metal/MetalIconFactory$TreeLeafIcon.h | 37 + ...MetalIconFactory$VerticalSliderThumbIcon.h | 51 + .../javax/swing/plaf/metal/MetalIconFactory.h | 83 + ...ernalFrameTitlePanePropertyChangeHandler.h | 47 + ...ernalFrameTitlePane$MetalTitlePaneLayout.h | 53 + .../plaf/metal/MetalInternalFrameTitlePane.h | 81 + .../swing/plaf/metal/MetalInternalFrameUI$1.h | 48 + .../swing/plaf/metal/MetalInternalFrameUI.h | 59 + libjava/javax/swing/plaf/metal/MetalLabelUI.h | 50 + .../swing/plaf/metal/MetalLookAndFeel$1.h | 42 + .../javax/swing/plaf/metal/MetalLookAndFeel.h | 103 + .../javax/swing/plaf/metal/MetalMenuBarUI.h | 46 + .../plaf/metal/MetalPopupMenuSeparatorUI.h | 41 + .../swing/plaf/metal/MetalProgressBarUI.h | 47 + .../swing/plaf/metal/MetalRadioButtonUI.h | 63 + .../metal/MetalRootPaneUI$MetalFrameBorder.h | 50 + .../metal/MetalRootPaneUI$MetalRootLayout.h | 66 + ...talRootPaneUI$MetalTitlePane$CloseAction.h | 50 + ...lRootPaneUI$MetalTitlePane$IconifyAction.h | 51 + ...RootPaneUI$MetalTitlePane$MaximizeAction.h | 51 + ...neUI$MetalTitlePane$MetalTitlePaneLayout.h | 53 + ...alRootPaneUI$MetalTitlePane$MouseHandler.h | 54 + ...etalRootPaneUI$MetalTitlePane$PaneButton.h | 41 + .../metal/MetalRootPaneUI$MetalTitlePane.h | 98 + .../javax/swing/plaf/metal/MetalRootPaneUI.h | 56 + ...arUI$MetalScrollBarPropertyChangeHandler.h | 47 + .../javax/swing/plaf/metal/MetalScrollBarUI.h | 84 + .../swing/plaf/metal/MetalScrollButton.h | 65 + .../swing/plaf/metal/MetalScrollPaneUI.h | 53 + .../javax/swing/plaf/metal/MetalSeparatorUI.h | 49 + .../MetalSliderUI$MetalPropertyListener.h | 48 + .../javax/swing/plaf/metal/MetalSliderUI.h | 85 + ...MetalSplitPaneDivider$MetalDividerLayout.h | 59 + ...etalSplitPaneDivider$MetalOneTouchButton.h | 63 + .../swing/plaf/metal/MetalSplitPaneDivider.h | 60 + .../javax/swing/plaf/metal/MetalSplitPaneUI.h | 43 + .../MetalTabbedPaneUI$TabbedPaneLayout.h | 43 + .../swing/plaf/metal/MetalTabbedPaneUI.h | 85 + .../javax/swing/plaf/metal/MetalTextFieldUI.h | 46 + libjava/javax/swing/plaf/metal/MetalTheme.h | 94 + .../swing/plaf/metal/MetalToggleButtonUI.h | 65 + .../MetalToolBarUI$MetalContainerListener.h | 39 + .../MetalToolBarUI$MetalDockingListener.h | 52 + .../MetalToolBarUI$MetalRolloverListener.h | 39 + .../javax/swing/plaf/metal/MetalToolBarUI.h | 76 + .../javax/swing/plaf/metal/MetalToolTipUI.h | 76 + .../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 + .../javax/swing/plaf/multi/MultiButtonUI.h | 66 + .../swing/plaf/multi/MultiColorChooserUI.h | 66 + .../javax/swing/plaf/multi/MultiComboBoxUI.h | 70 + .../swing/plaf/multi/MultiDesktopIconUI.h | 66 + .../swing/plaf/multi/MultiDesktopPaneUI.h | 66 + .../swing/plaf/multi/MultiFileChooserUI.h | 78 + .../swing/plaf/multi/MultiInternalFrameUI.h | 66 + libjava/javax/swing/plaf/multi/MultiLabelUI.h | 66 + libjava/javax/swing/plaf/multi/MultiListUI.h | 72 + .../javax/swing/plaf/multi/MultiLookAndFeel.h | 50 + .../javax/swing/plaf/multi/MultiMenuBarUI.h | 66 + .../javax/swing/plaf/multi/MultiMenuItemUI.h | 66 + .../swing/plaf/multi/MultiOptionPaneUI.h | 69 + libjava/javax/swing/plaf/multi/MultiPanelUI.h | 66 + .../javax/swing/plaf/multi/MultiPopupMenuUI.h | 66 + .../swing/plaf/multi/MultiProgressBarUI.h | 66 + .../javax/swing/plaf/multi/MultiRootPaneUI.h | 66 + .../javax/swing/plaf/multi/MultiScrollBarUI.h | 66 + .../swing/plaf/multi/MultiScrollPaneUI.h | 66 + .../javax/swing/plaf/multi/MultiSeparatorUI.h | 66 + .../javax/swing/plaf/multi/MultiSliderUI.h | 66 + .../javax/swing/plaf/multi/MultiSpinnerUI.h | 66 + .../javax/swing/plaf/multi/MultiSplitPaneUI.h | 73 + .../swing/plaf/multi/MultiTabbedPaneUI.h | 71 + .../swing/plaf/multi/MultiTableHeaderUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTableUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTextUI.h | 84 + .../javax/swing/plaf/multi/MultiToolBarUI.h | 66 + .../javax/swing/plaf/multi/MultiToolTipUI.h | 66 + libjava/javax/swing/plaf/multi/MultiTreeUI.h | 82 + .../javax/swing/plaf/multi/MultiViewportUI.h | 66 + libjava/javax/swing/plaf/synth/ColorType.h | 49 + libjava/javax/swing/plaf/synth/Region.h | 102 + .../javax/swing/plaf/synth/SynthConstants.h | 41 + libjava/javax/swing/plaf/synth/SynthContext.h | 48 + .../swing/plaf/synth/SynthGraphicsUtils.h | 58 + .../javax/swing/plaf/synth/SynthLookAndFeel.h | 67 + libjava/javax/swing/plaf/synth/SynthPainter.h | 156 + libjava/javax/swing/plaf/synth/SynthStyle.h | 68 + .../swing/plaf/synth/SynthStyleFactory.h | 39 + .../javax/swing/table/AbstractTableModel.h | 64 + .../DefaultTableCellRenderer$UIResource.h | 32 + .../swing/table/DefaultTableCellRenderer.h | 69 + .../swing/table/DefaultTableColumnModel.h | 96 + libjava/javax/swing/table/DefaultTableModel.h | 81 + ...JTableHeader$AccessibleJTableHeaderEntry.h | 125 + .../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 + .../text/AbstractDocument$AbstractElement.h | 83 + .../text/AbstractDocument$AttributeContext.h | 39 + .../swing/text/AbstractDocument$BidiElement.h | 39 + .../text/AbstractDocument$BidiRootElement.h | 38 + .../text/AbstractDocument$BranchElement.h | 57 + .../swing/text/AbstractDocument$Bypass.h | 43 + .../swing/text/AbstractDocument$Content.h | 43 + .../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 + .../swing/text/AsyncBoxView$ChildLocator.h | 61 + .../swing/text/AsyncBoxView$ChildState.h | 63 + .../javax/swing/text/AsyncBoxView$FlushTask.h | 38 + libjava/javax/swing/text/AsyncBoxView.h | 116 + .../text/AttributeSet$CharacterAttribute.h | 31 + .../swing/text/AttributeSet$ColorAttribute.h | 31 + .../swing/text/AttributeSet$FontAttribute.h | 31 + .../text/AttributeSet$ParagraphAttribute.h | 31 + libjava/javax/swing/text/AttributeSet.h | 42 + .../javax/swing/text/BadLocationException.h | 38 + libjava/javax/swing/text/BoxView.h | 115 + libjava/javax/swing/text/Caret.h | 61 + .../swing/text/ChangedCharSetException.h | 39 + libjava/javax/swing/text/ComponentView$1.h | 38 + .../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 + .../text/DefaultCaret$BlinkTimerListener.h | 49 + .../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 + .../text/DefaultEditorKit$BackwardAction.h | 36 + .../swing/text/DefaultEditorKit$BeepAction.h | 43 + .../swing/text/DefaultEditorKit$BeginAction.h | 44 + .../text/DefaultEditorKit$BeginLineAction.h | 44 + .../text/DefaultEditorKit$BeginWordAction.h | 44 + .../swing/text/DefaultEditorKit$CopyAction.h | 43 + .../swing/text/DefaultEditorKit$CutAction.h | 43 + .../DefaultEditorKit$DefaultKeyTypedAction.h | 43 + .../DefaultEditorKit$DeleteNextCharAction.h | 44 + .../DefaultEditorKit$DeletePrevCharAction.h | 44 + .../swing/text/DefaultEditorKit$DownAction.h | 36 + .../swing/text/DefaultEditorKit$EndAction.h | 44 + .../text/DefaultEditorKit$EndLineAction.h | 44 + .../text/DefaultEditorKit$EndWordAction.h | 44 + .../text/DefaultEditorKit$ForwardAction.h | 36 + .../text/DefaultEditorKit$InsertBreakAction.h | 43 + .../DefaultEditorKit$InsertContentAction.h | 43 + .../text/DefaultEditorKit$InsertTabAction.h | 43 + .../text/DefaultEditorKit$NextWordAction.h | 44 + .../swing/text/DefaultEditorKit$PasteAction.h | 43 + .../DefaultEditorKit$PreviousWordAction.h | 44 + .../text/DefaultEditorKit$SelectAllAction.h | 44 + .../text/DefaultEditorKit$SelectLineAction.h | 44 + .../text/DefaultEditorKit$SelectWordAction.h | 44 + ...DefaultEditorKit$SelectionBackwardAction.h | 36 + .../DefaultEditorKit$SelectionBeginAction.h | 44 + ...efaultEditorKit$SelectionBeginLineAction.h | 44 + ...efaultEditorKit$SelectionBeginWordAction.h | 44 + .../DefaultEditorKit$SelectionDownAction.h | 36 + .../DefaultEditorKit$SelectionEndAction.h | 44 + .../DefaultEditorKit$SelectionEndLineAction.h | 44 + .../DefaultEditorKit$SelectionEndWordAction.h | 44 + .../DefaultEditorKit$SelectionForwardAction.h | 36 + ...DefaultEditorKit$SelectionNextWordAction.h | 44 + ...ultEditorKit$SelectionPreviousWordAction.h | 44 + .../text/DefaultEditorKit$SelectionUpAction.h | 36 + .../swing/text/DefaultEditorKit$UpAction.h | 36 + libjava/javax/swing/text/DefaultEditorKit.h | 100 + ...DefaultFormatter$FormatterDocumentFilter.h | 45 + libjava/javax/swing/text/DefaultFormatter.h | 58 + .../swing/text/DefaultFormatterFactory.h | 53 + ...faultHighlighter$DefaultHighlightPainter.h | 49 + .../text/DefaultHighlighter$HighlightEntry.h | 44 + .../DefaultHighlighter$LayerHighlightEntry.h | 50 + libjava/javax/swing/text/DefaultHighlighter.h | 67 + ...aultStyledDocument$AttributeUndoableEdit.h | 42 + .../swing/text/DefaultStyledDocument$Edit.h | 52 + ...DefaultStyledDocument$ElementBuffer$Edit.h | 42 + .../DefaultStyledDocument$ElementBuffer.h | 93 + .../text/DefaultStyledDocument$ElementSpec.h | 61 + .../DefaultStyledDocument$SectionElement.h | 37 + ...efaultStyledDocument$StyleChangeListener.h | 42 + .../javax/swing/text/DefaultStyledDocument.h | 95 + libjava/javax/swing/text/DefaultTextUI.h | 32 + libjava/javax/swing/text/Document.h | 61 + .../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 + .../swing/text/ElementIterator$ElementRef.h | 38 + libjava/javax/swing/text/ElementIterator.h | 46 + .../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 + .../javax/swing/text/FlowView$FlowStrategy.h | 62 + .../javax/swing/text/FlowView$LogicalView.h | 68 + libjava/javax/swing/text/FlowView.h | 69 + .../text/GapContent$GapContentPosition.h | 40 + .../javax/swing/text/GapContent$InsertUndo.h | 44 + libjava/javax/swing/text/GapContent$Mark.h | 40 + .../javax/swing/text/GapContent$UndoPosRef.h | 41 + .../javax/swing/text/GapContent$UndoRemove.h | 43 + libjava/javax/swing/text/GapContent.h | 91 + .../text/GlyphView$DefaultGlyphPainter.h | 60 + .../javax/swing/text/GlyphView$GlyphPainter.h | 55 + .../swing/text/GlyphView$J2DGlyphPainter.h | 65 + libjava/javax/swing/text/GlyphView.h | 100 + .../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 + .../javax/swing/text/InternationalFormatter.h | 64 + .../JTextComponent$AccessibleJTextComponent.h | 95 + .../swing/text/JTextComponent$DefaultKeymap.h | 56 + .../JTextComponent$DefaultTransferHandler.h | 56 + .../swing/text/JTextComponent$KeyBinding.h | 35 + .../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 + .../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 + .../javax/swing/text/MutableAttributeSet.h | 47 + .../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 + .../swing/text/StringContent$InsertUndo.h | 43 + libjava/javax/swing/text/StringContent$Mark.h | 37 + .../swing/text/StringContent$RemoveUndo.h | 43 + .../swing/text/StringContent$StickyPosition.h | 39 + .../swing/text/StringContent$UndoPosRef.h | 41 + libjava/javax/swing/text/StringContent.h | 71 + libjava/javax/swing/text/Style.h | 54 + .../text/StyleConstants$CharacterConstants.h | 45 + .../text/StyleConstants$ColorConstants.h | 34 + .../swing/text/StyleConstants$FontConstants.h | 36 + .../text/StyleConstants$ParagraphConstants.h | 41 + libjava/javax/swing/text/StyleConstants.h | 126 + libjava/javax/swing/text/StyleContext$1.h | 40 + .../swing/text/StyleContext$NamedStyle.h | 82 + .../swing/text/StyleContext$SimpleFontSpec.h | 39 + .../text/StyleContext$SmallAttributeSet.h | 57 + libjava/javax/swing/text/StyleContext.h | 110 + libjava/javax/swing/text/StyledDocument.h | 80 + .../text/StyledEditorKit$AlignmentAction.h | 46 + .../swing/text/StyledEditorKit$BoldAction.h | 43 + .../swing/text/StyledEditorKit$CaretTracker.h | 42 + .../text/StyledEditorKit$FontFamilyAction.h | 46 + .../text/StyledEditorKit$FontSizeAction.h | 46 + .../text/StyledEditorKit$ForegroundAction.h | 47 + .../swing/text/StyledEditorKit$ItalicAction.h | 43 + .../text/StyledEditorKit$StyledTextAction.h | 53 + .../text/StyledEditorKit$StyledViewFactory.h | 36 + .../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 + .../javax/swing/text/TableView$TableCell.h | 45 + libjava/javax/swing/text/TableView$TableRow.h | 56 + libjava/javax/swing/text/TableView.h | 69 + .../TextAction$HorizontalMovementAction.h | 50 + .../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 + .../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 + .../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 + .../text/html/CSSParser$CSSParserCallback.h | 40 + libjava/javax/swing/text/html/CSSParser.h | 82 + .../text/html/FormSubmitEvent$MethodType.h | 37 + .../javax/swing/text/html/FormSubmitEvent.h | 55 + libjava/javax/swing/text/html/FormView$1.h | 57 + .../text/html/FormView$MouseEventListener.h | 51 + .../swing/text/html/FormView$SubmitThread.h | 61 + libjava/javax/swing/text/html/FormView.h | 76 + .../text/html/FrameSetView$FrameSetRow.h | 48 + libjava/javax/swing/text/html/FrameSetView.h | 53 + libjava/javax/swing/text/html/FrameView.h | 58 + .../swing/text/html/HRuleView$Beginning.h | 43 + libjava/javax/swing/text/html/HRuleView.h | 54 + .../javax/swing/text/html/HTML$Attribute.h | 130 + libjava/javax/swing/text/html/HTML$Tag.h | 139 + .../javax/swing/text/html/HTML$UnknownTag.h | 38 + libjava/javax/swing/text/html/HTML.h | 55 + .../javax/swing/text/html/HTMLDocument$1.h | 44 + .../text/html/HTMLDocument$BlockElement.h | 43 + .../html/HTMLDocument$HTMLReader$AreaAction.h | 44 + .../html/HTMLDocument$HTMLReader$BaseAction.h | 43 + .../HTMLDocument$HTMLReader$BlockAction.h | 43 + .../HTMLDocument$HTMLReader$CharacterAction.h | 43 + .../HTMLDocument$HTMLReader$ConvertAction.h | 44 + .../html/HTMLDocument$HTMLReader$FormAction.h | 46 + .../HTMLDocument$HTMLReader$FormTagAction.h | 42 + .../html/HTMLDocument$HTMLReader$HeadAction.h | 44 + .../HTMLDocument$HTMLReader$HiddenAction.h | 43 + .../HTMLDocument$HTMLReader$IsindexAction.h | 42 + .../html/HTMLDocument$HTMLReader$LinkAction.h | 43 + .../html/HTMLDocument$HTMLReader$MapAction.h | 44 + .../html/HTMLDocument$HTMLReader$MetaAction.h | 44 + .../HTMLDocument$HTMLReader$ParagraphAction.h | 43 + .../html/HTMLDocument$HTMLReader$PreAction.h | 43 + .../HTMLDocument$HTMLReader$SpecialAction.h | 42 + .../HTMLDocument$HTMLReader$StyleAction.h | 44 + .../html/HTMLDocument$HTMLReader$TagAction.h | 43 + .../HTMLDocument$HTMLReader$TitleAction.h | 44 + .../swing/text/html/HTMLDocument$HTMLReader.h | 111 + .../swing/text/html/HTMLDocument$Iterator.h | 43 + .../text/html/HTMLDocument$LeafIterator.h | 51 + .../swing/text/html/HTMLDocument$RunElement.h | 43 + libjava/javax/swing/text/html/HTMLDocument.h | 114 + .../text/html/HTMLEditorKit$HTMLFactory.h | 38 + .../text/html/HTMLEditorKit$HTMLTextAction.h | 52 + .../html/HTMLEditorKit$InsertHTMLTextAction.h | 66 + .../text/html/HTMLEditorKit$LinkController.h | 63 + .../swing/text/html/HTMLEditorKit$Parser.h | 37 + .../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 + .../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 + .../javax/swing/text/html/MinimalHTMLWriter.h | 80 + .../MultiAttributeSet$MultiNameEnumeration.h | 45 + .../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 + .../javax/swing/text/html/ResetableModel.h | 35 + .../swing/text/html/ResetablePlainDocument.h | 43 + .../text/html/ResetableToggleButtonModel.h | 41 + .../swing/text/html/SelectComboBoxModel.h | 43 + .../javax/swing/text/html/SelectListModel.h | 46 + .../swing/text/html/StyleSheet$BoxPainter.h | 65 + .../swing/text/html/StyleSheet$CSSStyle.h | 76 + .../StyleSheet$CSSStyleSheetParserCallback.h | 68 + .../swing/text/html/StyleSheet$CssParser.h | 69 + .../swing/text/html/StyleSheet$ListPainter.h | 54 + libjava/javax/swing/text/html/StyleSheet.h | 121 + .../swing/text/html/TableView$CellView.h | 46 + .../javax/swing/text/html/TableView$RowView.h | 55 + libjava/javax/swing/text/html/TableView.h | 119 + .../javax/swing/text/html/ViewAttributeSet.h | 45 + .../swing/text/html/parser/AttributeList$1.h | 41 + .../swing/text/html/parser/AttributeList.h | 80 + .../swing/text/html/parser/ContentModel.h | 53 + libjava/javax/swing/text/html/parser/DTD.h | 89 + .../swing/text/html/parser/DTDConstants.h | 72 + .../html/parser/DocumentParser$gnuParser.h | 54 + .../swing/text/html/parser/DocumentParser.h | 57 + .../javax/swing/text/html/parser/Element$1.h | 41 + .../javax/swing/text/html/parser/Element.h | 90 + .../javax/swing/text/html/parser/Entity$1.h | 41 + libjava/javax/swing/text/html/parser/Entity.h | 78 + .../javax/swing/text/html/parser/Parser$1.h | 63 + libjava/javax/swing/text/html/parser/Parser.h | 96 + .../html/parser/ParserDelegator$gnuParser.h | 57 + .../swing/text/html/parser/ParserDelegator.h | 52 + .../javax/swing/text/html/parser/TagElement.h | 52 + .../javax/swing/text/rtf/ControlWordToken.h | 38 + libjava/javax/swing/text/rtf/RTFEditorKit.h | 39 + .../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 + .../javax/swing/tree/AbstractLayoutCache.h | 89 + ...tMutableTreeNode$BreadthFirstEnumeration.h | 39 + ...aultMutableTreeNode$PostorderEnumeration.h | 42 + ...faultMutableTreeNode$PreorderEnumeration.h | 42 + .../javax/swing/tree/DefaultMutableTreeNode.h | 105 + .../DefaultTreeCellEditor$DefaultTextField.h | 55 + .../DefaultTreeCellEditor$EditorContainer.h | 49 + ...DefaultTreeCellEditor$RealEditorListener.h | 43 + .../javax/swing/tree/DefaultTreeCellEditor.h | 113 + .../swing/tree/DefaultTreeCellRenderer.h | 105 + libjava/javax/swing/tree/DefaultTreeModel.h | 86 + ...efaultTreeSelectionModel$PathPlaceHolder.h | 36 + .../swing/tree/DefaultTreeSelectionModel.h | 119 + .../javax/swing/tree/ExpandVetoException.h | 40 + .../tree/FixedHeightLayoutCache$NodeRecord.h | 54 + .../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 + .../VariableHeightLayoutCache$NodeRecord.h | 54 + .../swing/tree/VariableHeightLayoutCache.h | 85 + .../javax/swing/undo/AbstractUndoableEdit.h | 54 + .../javax/swing/undo/CannotRedoException.h | 32 + .../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 + .../javax/swing/undo/UndoableEditSupport.h | 61 + .../transaction/HeuristicCommitException.h | 30 + .../transaction/HeuristicMixedException.h | 30 + .../transaction/HeuristicRollbackException.h | 30 + .../transaction/InvalidTransactionException.h | 30 + .../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 + .../javax/transaction/TransactionManager.h | 38 + .../TransactionRequiredException.h | 30 + .../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 + .../datatype/DatatypeConfigurationException.h | 35 + .../xml/datatype/DatatypeConstants$Field.h | 39 + .../javax/xml/datatype/DatatypeConstants.h | 73 + libjava/javax/xml/datatype/DatatypeFactory.h | 67 + libjava/javax/xml/datatype/Duration.h | 70 + .../javax/xml/datatype/XMLGregorianCalendar.h | 84 + .../javax/xml/namespace/NamespaceContext.h | 34 + libjava/javax/xml/namespace/QName.h | 50 + libjava/javax/xml/parsers/DocumentBuilder.h | 71 + .../xml/parsers/DocumentBuilderFactory.h | 73 + .../xml/parsers/FactoryConfigurationError.h | 40 + .../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 + .../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 + .../xml/stream/events/EntityDeclaration.h | 64 + .../javax/xml/stream/events/EntityReference.h | 61 + libjava/javax/xml/stream/events/Namespace.h | 61 + .../xml/stream/events/NotationDeclaration.h | 61 + .../xml/stream/events/ProcessingInstruction.h | 60 + .../javax/xml/stream/events/StartDocument.h | 64 + .../javax/xml/stream/events/StartElement.h | 65 + libjava/javax/xml/stream/events/XMLEvent.h | 58 + .../xml/stream/util/EventReaderDelegate.h | 55 + .../javax/xml/stream/util/ReaderDelegate.h | 95 + .../javax/xml/stream/util/XMLEventAllocator.h | 43 + .../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 + .../TransformerConfigurationException.h | 41 + .../xml/transform/TransformerException.h | 52 + .../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 + .../xml/transform/sax/TemplatesHandler.h | 62 + .../xml/transform/sax/TransformerHandler.h | 73 + .../javax/xml/transform/stream/StreamResult.h | 52 + .../javax/xml/transform/stream/StreamSource.h | 57 + libjava/javax/xml/validation/Schema.h | 37 + libjava/javax/xml/validation/SchemaFactory.h | 85 + .../xml/validation/SchemaFactoryLoader.h | 35 + .../javax/xml/validation/TypeInfoProvider.h | 47 + libjava/javax/xml/validation/Validator.h | 69 + .../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 + .../xml/xpath/XPathExpressionException.h | 36 + libjava/javax/xml/xpath/XPathFactory.h | 49 + .../XPathFactoryConfigurationException.h | 36 + libjava/javax/xml/xpath/XPathFunction.h | 32 + .../javax/xml/xpath/XPathFunctionException.h | 36 + .../javax/xml/xpath/XPathFunctionResolver.h | 37 + .../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 + .../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 + .../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 + .../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 + .../org/omg/CORBA/DynAnyPackage/InvalidSeq.h | 39 + .../omg/CORBA/DynAnyPackage/InvalidValue.h | 39 + .../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 + .../CORBA/ORBPackage/InconsistentTypeCode.h | 39 + .../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 + .../org/omg/CORBA/ServiceInformationHelper.h | 49 + .../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 + .../org/omg/CORBA/TRANSACTION_ROLLEDBACK.h | 39 + .../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 + .../org/omg/CORBA/TypeCodePackage/BadKind.h | 39 + .../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 + .../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 + .../omg/CORBA/UnknownUserExceptionHelper.h | 46 + .../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 + .../org/omg/CORBA/WrongTransactionHelper.h | 46 + .../org/omg/CORBA/WrongTransactionHolder.h | 44 + libjava/org/omg/CORBA/_IDLTypeStub.h | 48 + libjava/org/omg/CORBA/_PolicyStub.h | 47 + .../omg/CORBA/portable/ApplicationException.h | 43 + .../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 + .../omg/CORBA/portable/IndirectionException.h | 39 + libjava/org/omg/CORBA/portable/InputStream.h | 85 + .../org/omg/CORBA/portable/InvokeHandler.h | 38 + libjava/org/omg/CORBA/portable/ObjectImpl.h | 80 + libjava/org/omg/CORBA/portable/OutputStream.h | 87 + .../omg/CORBA/portable/RemarshalException.h | 38 + .../org/omg/CORBA/portable/ResponseHandler.h | 37 + .../org/omg/CORBA/portable/ServantObject.h | 36 + libjava/org/omg/CORBA/portable/Streamable.h | 40 + .../org/omg/CORBA/portable/StreamableValue.h | 43 + .../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 + .../org/omg/CORBA_2_3/portable/InputStream.h | 49 + .../org/omg/CORBA_2_3/portable/ObjectImpl.h | 36 + .../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 + .../org/omg/CosNaming/BindingIteratorHelper.h | 55 + .../org/omg/CosNaming/BindingIteratorHolder.h | 47 + .../omg/CosNaming/BindingIteratorOperations.h | 36 + .../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 + .../org/omg/CosNaming/NameComponentHelper.h | 52 + .../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 + .../omg/CosNaming/NamingContextExtHelper.h | 55 + .../omg/CosNaming/NamingContextExtHolder.h | 47 + .../CosNaming/NamingContextExtOperations.h | 55 + .../org/omg/CosNaming/NamingContextExtPOA.h | 75 + .../NamingContextExtPackage/AddressHelper.h | 54 + .../NamingContextExtPackage/InvalidAddress.h | 39 + .../InvalidAddressHelper.h | 55 + .../InvalidAddressHolder.h | 50 + .../StringNameHelper.h | 54 + .../NamingContextExtPackage/URLStringHelper.h | 54 + .../org/omg/CosNaming/NamingContextHelper.h | 55 + .../org/omg/CosNaming/NamingContextHolder.h | 47 + .../omg/CosNaming/NamingContextOperations.h | 51 + libjava/org/omg/CosNaming/NamingContextPOA.h | 67 + .../NamingContextPackage/AlreadyBound.h | 39 + .../NamingContextPackage/AlreadyBoundHelper.h | 55 + .../NamingContextPackage/AlreadyBoundHolder.h | 50 + .../NamingContextPackage/CannotProceed.h | 46 + .../CannotProceedHelper.h | 55 + .../CannotProceedHolder.h | 50 + .../NamingContextPackage/InvalidName.h | 39 + .../NamingContextPackage/InvalidNameHelper.h | 55 + .../NamingContextPackage/InvalidNameHolder.h | 50 + .../CosNaming/NamingContextPackage/NotEmpty.h | 39 + .../NamingContextPackage/NotEmptyHelper.h | 55 + .../NamingContextPackage/NotEmptyHolder.h | 50 + .../CosNaming/NamingContextPackage/NotFound.h | 46 + .../NamingContextPackage/NotFoundHelper.h | 55 + .../NamingContextPackage/NotFoundHolder.h | 50 + .../NamingContextPackage/NotFoundReason.h | 50 + .../NotFoundReasonHelper.h | 55 + .../NotFoundReasonHolder.h | 50 + .../omg/CosNaming/_BindingIteratorImplBase.h | 56 + .../org/omg/CosNaming/_BindingIteratorStub.h | 57 + .../omg/CosNaming/_NamingContextExtImplBase.h | 58 + .../org/omg/CosNaming/_NamingContextExtStub.h | 66 + .../omg/CosNaming/_NamingContextImplBase.h | 67 + .../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 + .../org/omg/DynamicAny/DynAnyFactoryHelper.h | 55 + .../omg/DynamicAny/DynAnyFactoryOperations.h | 39 + .../InconsistentTypeCode.h | 39 + .../InconsistentTypeCodeHelper.h | 52 + libjava/org/omg/DynamicAny/DynAnyHelper.h | 52 + libjava/org/omg/DynamicAny/DynAnyOperations.h | 88 + .../DynamicAny/DynAnyPackage/InvalidValue.h | 39 + .../DynAnyPackage/InvalidValueHelper.h | 52 + .../DynamicAny/DynAnyPackage/TypeMismatch.h | 39 + .../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 + .../org/omg/DynamicAny/DynArrayOperations.h | 94 + libjava/org/omg/DynamicAny/DynEnum.h | 116 + libjava/org/omg/DynamicAny/DynEnumHelper.h | 52 + .../org/omg/DynamicAny/DynEnumOperations.h | 92 + libjava/org/omg/DynamicAny/DynFixed.h | 114 + libjava/org/omg/DynamicAny/DynFixedHelper.h | 52 + .../org/omg/DynamicAny/DynFixedOperations.h | 90 + libjava/org/omg/DynamicAny/DynSequence.h | 118 + .../org/omg/DynamicAny/DynSequenceHelper.h | 52 + .../omg/DynamicAny/DynSequenceOperations.h | 96 + libjava/org/omg/DynamicAny/DynStruct.h | 121 + libjava/org/omg/DynamicAny/DynStructHelper.h | 52 + .../org/omg/DynamicAny/DynStructOperations.h | 99 + libjava/org/omg/DynamicAny/DynUnion.h | 122 + libjava/org/omg/DynamicAny/DynUnionHelper.h | 52 + .../org/omg/DynamicAny/DynUnionOperations.h | 98 + libjava/org/omg/DynamicAny/DynValue.h | 124 + libjava/org/omg/DynamicAny/DynValueBox.h | 119 + .../omg/DynamicAny/DynValueBoxOperations.h | 95 + libjava/org/omg/DynamicAny/DynValueCommon.h | 115 + .../omg/DynamicAny/DynValueCommonOperations.h | 91 + libjava/org/omg/DynamicAny/DynValueHelper.h | 52 + .../org/omg/DynamicAny/DynValueOperations.h | 102 + libjava/org/omg/DynamicAny/FieldNameHelper.h | 48 + libjava/org/omg/DynamicAny/NameDynAnyPair.h | 39 + .../org/omg/DynamicAny/NameDynAnyPairHelper.h | 49 + .../omg/DynamicAny/NameDynAnyPairSeqHelper.h | 51 + libjava/org/omg/DynamicAny/NameValuePair.h | 42 + .../org/omg/DynamicAny/NameValuePairHelper.h | 49 + .../omg/DynamicAny/NameValuePairSeqHelper.h | 51 + .../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 + .../IOP/CodecFactoryPackage/UnknownEncoding.h | 39 + .../UnknownEncodingHelper.h | 52 + libjava/org/omg/IOP/CodecOperations.h | 42 + .../org/omg/IOP/CodecPackage/FormatMismatch.h | 39 + .../IOP/CodecPackage/FormatMismatchHelper.h | 52 + .../IOP/CodecPackage/InvalidTypeForEncoding.h | 39 + .../InvalidTypeForEncodingHelper.h | 52 + .../org/omg/IOP/CodecPackage/TypeMismatch.h | 39 + .../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 + .../omg/IOP/MultipleComponentProfileHelper.h | 51 + .../omg/IOP/MultipleComponentProfileHolder.h | 49 + libjava/org/omg/IOP/ProfileIdHelper.h | 48 + .../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 + .../org/omg/IOP/ServiceContextListHelper.h | 51 + .../org/omg/IOP/ServiceContextListHolder.h | 49 + libjava/org/omg/IOP/ServiceIdHelper.h | 48 + .../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 + .../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 + .../org/omg/Messaging/SYNC_WITH_TRANSPORT.h | 32 + libjava/org/omg/Messaging/SyncScopeHelper.h | 48 + libjava/org/omg/PortableInterceptor/ACTIVE.h | 32 + .../AdapterManagerIdHelper.h | 48 + .../PortableInterceptor/AdapterNameHelper.h | 50 + .../PortableInterceptor/AdapterStateHelper.h | 48 + .../PortableInterceptor/ClientRequestInfo.h | 94 + .../ClientRequestInfoOperations.h | 73 + .../ClientRequestInterceptor.h | 67 + .../ClientRequestInterceptorOperations.h | 39 + libjava/org/omg/PortableInterceptor/Current.h | 62 + .../omg/PortableInterceptor/CurrentHelper.h | 52 + .../PortableInterceptor/CurrentOperations.h | 37 + .../org/omg/PortableInterceptor/DISCARDING.h | 32 + .../omg/PortableInterceptor/ForwardRequest.h | 42 + .../ForwardRequestHelper.h | 49 + libjava/org/omg/PortableInterceptor/HOLDING.h | 32 + .../org/omg/PortableInterceptor/INACTIVE.h | 32 + libjava/org/omg/PortableInterceptor/IORInfo.h | 73 + .../PortableInterceptor/IORInfoOperations.h | 49 + .../omg/PortableInterceptor/IORInterceptor.h | 63 + .../IORInterceptorOperations.h | 35 + .../PortableInterceptor/IORInterceptor_3_0.h | 67 + .../IORInterceptor_3_0Helper.h | 52 + .../IORInterceptor_3_0Holder.h | 47 + .../IORInterceptor_3_0Operations.h | 41 + .../org/omg/PortableInterceptor/Interceptor.h | 61 + .../InterceptorOperations.h | 33 + .../org/omg/PortableInterceptor/InvalidSlot.h | 36 + .../PortableInterceptor/InvalidSlotHelper.h | 49 + .../PortableInterceptor/LOCATION_FORWARD.h | 32 + .../omg/PortableInterceptor/NON_EXISTENT.h | 32 + .../org/omg/PortableInterceptor/ORBIdHelper.h | 48 + .../org/omg/PortableInterceptor/ORBInitInfo.h | 77 + .../ORBInitInfoOperations.h | 55 + .../ORBInitInfoPackage/DuplicateName.h | 41 + .../ORBInitInfoPackage/DuplicateNameHelper.h | 52 + .../ORBInitInfoPackage/InvalidName.h | 39 + .../ORBInitInfoPackage/InvalidNameHelper.h | 52 + .../ORBInitInfoPackage/ObjectIdHelper.h | 51 + .../omg/PortableInterceptor/ORBInitializer.h | 62 + .../ORBInitializerOperations.h | 34 + .../omg/PortableInterceptor/ObjectIdHelper.h | 50 + .../ObjectReferenceFactory.h | 39 + .../ObjectReferenceFactoryHelper.h | 49 + .../ObjectReferenceFactoryHolder.h | 47 + .../ObjectReferenceTemplate.h | 42 + .../ObjectReferenceTemplateHelper.h | 49 + .../ObjectReferenceTemplateHolder.h | 47 + .../ObjectReferenceTemplateSeqHelper.h | 51 + .../ObjectReferenceTemplateSeqHolder.h | 49 + .../omg/PortableInterceptor/PolicyFactory.h | 61 + .../PolicyFactoryOperations.h | 37 + .../org/omg/PortableInterceptor/RequestInfo.h | 83 + .../RequestInfoOperations.h | 61 + .../org/omg/PortableInterceptor/SUCCESSFUL.h | 32 + .../PortableInterceptor/SYSTEM_EXCEPTION.h | 32 + .../omg/PortableInterceptor/ServerIdHelper.h | 48 + .../PortableInterceptor/ServerRequestInfo.h | 94 + .../ServerRequestInfoOperations.h | 73 + .../ServerRequestInterceptor.h | 67 + .../ServerRequestInterceptorOperations.h | 39 + .../omg/PortableInterceptor/TRANSPORT_RETRY.h | 32 + .../omg/PortableInterceptor/USER_EXCEPTION.h | 32 + .../_IORInterceptor_3_0Stub.h | 54 + .../org/omg/PortableServer/AdapterActivator.h | 61 + .../AdapterActivatorOperations.h | 33 + libjava/org/omg/PortableServer/Current.h | 62 + .../org/omg/PortableServer/CurrentHelper.h | 51 + .../omg/PortableServer/CurrentOperations.h | 36 + .../PortableServer/CurrentPackage/NoContext.h | 39 + .../CurrentPackage/NoContextHelper.h | 52 + .../PortableServer/DynamicImplementation.h | 37 + .../org/omg/PortableServer/ForwardRequest.h | 42 + .../omg/PortableServer/ForwardRequestHelper.h | 49 + .../PortableServer/ID_ASSIGNMENT_POLICY_ID.h | 32 + .../PortableServer/ID_UNIQUENESS_POLICY_ID.h | 32 + .../IMPLICIT_ACTIVATION_POLICY_ID.h | 32 + .../omg/PortableServer/IdAssignmentPolicy.h | 64 + .../IdAssignmentPolicyOperations.h | 40 + .../PortableServer/IdAssignmentPolicyValue.h | 50 + .../omg/PortableServer/IdUniquenessPolicy.h | 64 + .../IdUniquenessPolicyOperations.h | 40 + .../PortableServer/IdUniquenessPolicyValue.h | 50 + .../PortableServer/ImplicitActivationPolicy.h | 64 + .../ImplicitActivationPolicyOperations.h | 40 + .../ImplicitActivationPolicyValue.h | 50 + .../omg/PortableServer/LIFESPAN_POLICY_ID.h | 32 + .../org/omg/PortableServer/LifespanPolicy.h | 64 + .../PortableServer/LifespanPolicyOperations.h | 40 + .../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 + .../omg/PortableServer/POAManagerOperations.h | 40 + .../POAManagerPackage/AdapterInactive.h | 39 + .../POAManagerPackage/AdapterInactiveHelper.h | 52 + .../PortableServer/POAManagerPackage/State.h | 57 + .../org/omg/PortableServer/POAOperations.h | 89 + .../POAPackage/AdapterAlreadyExists.h | 39 + .../POAPackage/AdapterAlreadyExistsHelper.h | 55 + .../POAPackage/AdapterNonExistent.h | 39 + .../POAPackage/AdapterNonExistentHelper.h | 55 + .../PortableServer/POAPackage/InvalidPolicy.h | 42 + .../POAPackage/InvalidPolicyHelper.h | 55 + .../omg/PortableServer/POAPackage/NoServant.h | 39 + .../POAPackage/NoServantHelper.h | 55 + .../POAPackage/ObjectAlreadyActive.h | 39 + .../POAPackage/ObjectAlreadyActiveHelper.h | 55 + .../POAPackage/ObjectNotActive.h | 39 + .../POAPackage/ObjectNotActiveHelper.h | 55 + .../POAPackage/ServantAlreadyActive.h | 39 + .../POAPackage/ServantAlreadyActiveHelper.h | 55 + .../POAPackage/ServantNotActive.h | 39 + .../POAPackage/ServantNotActiveHelper.h | 55 + .../PortableServer/POAPackage/WrongAdapter.h | 39 + .../POAPackage/WrongAdapterHelper.h | 55 + .../PortableServer/POAPackage/WrongPolicy.h | 39 + .../POAPackage/WrongPolicyHelper.h | 55 + .../REQUEST_PROCESSING_POLICY_ID.h | 32 + .../PortableServer/RequestProcessingPolicy.h | 64 + .../RequestProcessingPolicyOperations.h | 40 + .../RequestProcessingPolicyValue.h | 52 + .../SERVANT_RETENTION_POLICY_ID.h | 32 + libjava/org/omg/PortableServer/Servant.h | 59 + .../org/omg/PortableServer/ServantActivator.h | 63 + .../PortableServer/ServantActivatorHelper.h | 52 + .../ServantActivatorOperations.h | 37 + .../ServantActivatorPOA$delegator.h | 43 + .../omg/PortableServer/ServantActivatorPOA.h | 56 + .../org/omg/PortableServer/ServantLocator.h | 67 + .../omg/PortableServer/ServantLocatorHelper.h | 52 + .../PortableServer/ServantLocatorOperations.h | 41 + .../ServantLocatorPOA$delegator.h | 48 + .../omg/PortableServer/ServantLocatorPOA.h | 60 + .../ServantLocatorPackage/CookieHolder.h | 49 + .../org/omg/PortableServer/ServantManager.h | 59 + .../PortableServer/ServantManagerOperations.h | 31 + .../PortableServer/ServantRetentionPolicy.h | 64 + .../ServantRetentionPolicyOperations.h | 40 + .../ServantRetentionPolicyValue.h | 50 + .../org/omg/PortableServer/THREAD_POLICY_ID.h | 32 + libjava/org/omg/PortableServer/ThreadPolicy.h | 64 + .../PortableServer/ThreadPolicyOperations.h | 40 + .../omg/PortableServer/ThreadPolicyValue.h | 50 + .../PortableServer/_ServantActivatorStub.h | 43 + .../omg/PortableServer/_ServantLocatorStub.h | 50 + .../omg/PortableServer/portable/Delegate.h | 51 + libjava/org/omg/SendingContext/RunTime.h | 59 + .../omg/SendingContext/RunTimeOperations.h | 31 + libjava/org/omg/stub/java/rmi/_Remote_Stub.h | 44 + libjava/org/relaxng/datatype/Datatype.h | 45 + .../org/relaxng/datatype/DatatypeBuilder.h | 35 + .../org/relaxng/datatype/DatatypeException.h | 39 + .../org/relaxng/datatype/DatatypeLibrary.h | 35 + .../relaxng/datatype/DatatypeLibraryFactory.h | 33 + .../datatype/DatatypeStreamingValidator.h | 36 + .../org/relaxng/datatype/ValidationContext.h | 35 + .../DatatypeLibraryLoader$Service$Loader.h | 40 + .../DatatypeLibraryLoader$Service$Loader2.h | 40 + ...ibraryLoader$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 + .../bootstrap/DOMImplementationRegistry$1.h | 45 + .../bootstrap/DOMImplementationRegistry$2.h | 37 + .../bootstrap/DOMImplementationRegistry$3.h | 40 + .../bootstrap/DOMImplementationRegistry$4.h | 41 + .../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 + .../org/w3c/dom/css/DOMImplementationCSS.h | 42 + libjava/org/w3c/dom/css/DocumentCSS.h | 42 + .../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 + .../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 + .../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 + .../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 + .../org/w3c/dom/html2/HTMLFrameSetElement.h | 112 + libjava/org/w3c/dom/html2/HTMLHRElement.h | 116 + libjava/org/w3c/dom/html2/HTMLHeadElement.h | 110 + .../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 + .../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 + .../org/w3c/dom/html2/HTMLOptGroupElement.h | 112 + libjava/org/w3c/dom/html2/HTMLOptionElement.h | 122 + .../org/w3c/dom/html2/HTMLOptionsCollection.h | 39 + .../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 + .../w3c/dom/html2/HTMLTableCaptionElement.h | 110 + .../org/w3c/dom/html2/HTMLTableCellElement.h | 137 + .../org/w3c/dom/html2/HTMLTableColElement.h | 120 + libjava/org/w3c/dom/html2/HTMLTableElement.h | 146 + .../org/w3c/dom/html2/HTMLTableRowElement.h | 125 + .../w3c/dom/html2/HTMLTableSectionElement.h | 121 + .../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 + .../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 + .../org/w3c/dom/stylesheets/StyleSheetList.h | 37 + .../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 + .../org/xml/sax/SAXNotRecognizedException.h | 33 + .../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 + .../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 + .../sax/helpers/NamespaceSupport$Context.h | 62 + .../org/xml/sax/helpers/NamespaceSupport.h | 63 + libjava/org/xml/sax/helpers/NewInstance.h | 38 + .../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 + .../XMLReaderAdapter$AttributesAdapter.h | 50 + .../org/xml/sax/helpers/XMLReaderAdapter.h | 76 + .../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 + .../sun/reflect/annotation/AnnotationParser.h | 33 + .../sun/reflect/annotation/AnnotationType.h | 33 + .../EnumConstantNotPresentExceptionProxy.h | 32 + .../sun/reflect/annotation/ExceptionProxy.h | 32 + .../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 | 57 +- 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 .../testsuite/libjava.cni/shortfieldbase.h | 25 + .../testsuite/libjava.compile/ArrayClass.java | 11 - .../testsuite/libjava.compile/AssertBug.java | 7 - libjava/testsuite/libjava.compile/Case.java | 15 - .../libjava.compile/G19990210_1.java | 18 - .../libjava.compile/G19990210_2.java | 18 - .../libjava.compile/G19990210_3.java | 23 - .../libjava.compile/G19990217_01.java | 16 - .../libjava.compile/G19990217_02.java | 16 - .../libjava.compile/G19990217_02.no-link | 1 - .../libjava.compile/G19990225_01.java | 7 - .../libjava.compile/InnerExcept.java | 19 - .../libjava.compile/MethodFailure4.java | 40 - .../libjava.compile/MethodFailure4.xfail | 1 - .../libjava.compile/N19990310_01.java | 18 - .../testsuite/libjava.compile/N19990317.java | 23 - .../libjava.compile/OperatorBenchmark.java | 886 - .../testsuite/libjava.compile/PR11600.java | 7 - .../testsuite/libjava.compile/PR11600.xfail | 1 - .../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 - .../testsuite/libjava.compile/PR12857.java | 4 - .../testsuite/libjava.compile/PR129_B.java | 9 - .../testsuite/libjava.compile/PR129_B.no-link | 1 - .../testsuite/libjava.compile/PR13024.java | 18 - .../testsuite/libjava.compile/PR13237.java | 3 - libjava/testsuite/libjava.compile/PR1343.java | 17 - .../testsuite/libjava.compile/PR13733.java | 10 - .../testsuite/libjava.compile/PR13733.xfail | 1 - libjava/testsuite/libjava.compile/PR140.java | 13 - libjava/testsuite/libjava.compile/PR140.xfail | 1 - .../testsuite/libjava.compile/PR14853.java | 17 - .../testsuite/libjava.compile/PR14853.xfail | 1 - .../testsuite/libjava.compile/PR15769.java | 10 - .../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 - .../testsuite/libjava.compile/PR16675.java | 13 - .../testsuite/libjava.compile/PR16701.java | 10 - .../testsuite/libjava.compile/PR19277.java | 7 - .../testsuite/libjava.compile/PR19277.xfail | 1 - .../testsuite/libjava.compile/PR19295.java | 16 - .../testsuite/libjava.compile/PR19674.java | 7 - .../testsuite/libjava.compile/PR20312.java | 8 - .../testsuite/libjava.compile/PR20312.xfail | 1 - .../testsuite/libjava.compile/PR20418.java | 7 - .../testsuite/libjava.compile/PR20418.xfail | 1 - libjava/testsuite/libjava.compile/PR206.java | 7 - .../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 - .../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 - .../testsuite/libjava.compile/PR23431_1.java | 9 - .../testsuite/libjava.compile/PR23431_1.xfail | 1 - .../testsuite/libjava.compile/PR23431_2.java | 9 - .../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 - .../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 - .../testsuite/libjava.compile/PR5641.xfail | 1 - libjava/testsuite/libjava.compile/PR5848.java | 14 - .../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 - .../testsuite/libjava.compile/PR6865.xfail | 1 - libjava/testsuite/libjava.compile/Semi.java | 8 - .../testsuite/libjava.compile/Statics.java | 7 - .../libjava.compile/SuperConstr.java | 20 - .../testsuite/libjava.compile/T20020529.java | 23 - .../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 - .../testsuite/libjava.compile/XercesBug.java | 13 - libjava/testsuite/libjava.compile/abstr.java | 14 - libjava/testsuite/libjava.compile/abstr.xfail | 1 - .../testsuite/libjava.compile/assignment.java | 19 - .../libjava.compile/assignment_2.java | 32 - libjava/testsuite/libjava.compile/block.java | 14 - libjava/testsuite/libjava.compile/block.xfail | 1 - .../testsuite/libjava.compile/comment.java | 7 - libjava/testsuite/libjava.compile/compile.exp | 20 - .../testsuite/libjava.compile/consthrow.java | 6 - .../testsuite/libjava.compile/consthrow.xfail | 2 - .../final_assignment_check.java | 12 - .../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 - .../testsuite/libjava.compile/inner_1.java | 36 - .../testsuite/libjava.compile/inner_1.xfail | 1 - .../testsuite/libjava.compile/inner_data.java | 18 - .../libjava.compile/inner_inherit.java | 14 - .../testsuite/libjava.compile/inner_priv.java | 11 - .../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.compile/narrow_case.java | 11 - .../libjava.compile/not_a_redef.java | 6 - .../libjava.compile/not_a_redef.xfail | 1 - libjava/testsuite/libjava.compile/perc.java | 9 - .../testsuite/libjava.compile/plusplus.java | 10 - .../testsuite/libjava.compile/pr10459.java | 15 - .../testsuite/libjava.compile/pr13788.java | 8 - .../testsuite/libjava.compile/pr15656.java | 8 - .../testsuite/libjava.compile/pr15656.xfail | 1 - libjava/testsuite/libjava.compile/pr172.java | 9 - .../testsuite/libjava.compile/pr17329.java | 14 - libjava/testsuite/libjava.compile/pr174.java | 15 - .../testsuite/libjava.compile/pr17500.java | 28 - libjava/testsuite/libjava.compile/pr176.java | 15 - .../testsuite/libjava.compile/pr21519.java | 8 - .../testsuite/libjava.compile/pr21540.java | 15 - .../testsuite/libjava.compile/pr25429.java | 13 - .../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 - .../testsuite/libjava.compile/redef1.xfail | 1 - libjava/testsuite/libjava.compile/redef2.java | 6 - .../testsuite/libjava.compile/redef2.xfail | 1 - libjava/testsuite/libjava.compile/redef3.java | 6 - .../testsuite/libjava.compile/redef3.xfail | 1 - libjava/testsuite/libjava.compile/redef4.java | 6 - .../testsuite/libjava.compile/redef4.xfail | 1 - libjava/testsuite/libjava.compile/redef5.java | 6 - .../testsuite/libjava.compile/redef5.xfail | 1 - libjava/testsuite/libjava.compile/redef6.java | 6 - .../testsuite/libjava.compile/redef6.xfail | 1 - .../testsuite/libjava.compile/rh174912.java | 17 - .../testsuite/libjava.compile/rh175833.java | 13 - .../testsuite/libjava.compile/static_1.java | 12 - .../testsuite/libjava.compile/static_1.xfail | 1 - .../testsuite/libjava.compile/static_2.java | 10 - .../testsuite/libjava.compile/static_2.xfail | 1 - .../testsuite/libjava.compile/static_3.java | 5 - .../testsuite/libjava.compile/static_3.xfail | 1 - .../libjava.compile/static_init.java | 4 - .../libjava.compile/static_init.xfail | 1 - .../libjava.compile/static_init2.java | 9 - .../libjava.compile/static_inner.java | 19 - .../libjava.compile/support/Case.java | 6 - .../libjava.compile/support/PR129_A.java | 6 - .../libjava.compile/support/PR206_A.java | 8 - .../libjava.compile/support/PR207_A.java | 13 - .../libjava.compile/support/Waldo.java | 7 - libjava/testsuite/libjava.compile/uesc.java | 9 - libjava/testsuite/libjava.compile/uesc.xfail | 1 - .../testsuite/libjava.compile/weirddecl.java | 8 - .../testsuite/libjava.compile/weirddecl.xfail | 1 - .../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 + .../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 + .../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 .../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 .../testsuite/libjava.jvmti/geterrorname.h | 27 + .../testsuite/libjava.jvmti/geterrorname.jar | Bin 0 -> 716 bytes libjava/testsuite/libjava.jvmti/jvmti.exp | 52 +- libjava/testsuite/libjava.lang/ArrayStore.jar | Bin 0 -> 1041 bytes .../testsuite/libjava.lang/ArrayStore2.jar | Bin 0 -> 899 bytes .../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.lang/EvaluationOrder.jar | Bin 0 -> 730 bytes .../libjava.lang/ExtraClassLoader.jar | Bin 0 -> 2372 bytes .../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 .../testsuite/libjava.lang/G19990301_01.jar | Bin 0 -> 1067 bytes .../testsuite/libjava.lang/G19990302_02.jar | Bin 0 -> 778 bytes .../testsuite/libjava.lang/G19990303_01.jar | Bin 0 -> 762 bytes .../testsuite/libjava.lang/G19990303_02.jar | Bin 0 -> 799 bytes .../testsuite/libjava.lang/G19990304_01.jar | Bin 0 -> 764 bytes .../testsuite/libjava.lang/G19990310_01.jar | Bin 0 -> 850 bytes libjava/testsuite/libjava.lang/II.jar | Bin 0 -> 685 bytes .../libjava.lang/InterfaceDispatch.jar | Bin 0 -> 4725 bytes .../libjava.lang/InvokeInterface.jar | Bin 0 -> 2413 bytes .../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 .../testsuite/libjava.lang/MathBuiltin.jar | Bin 0 -> 996 bytes libjava/testsuite/libjava.lang/Matrix4f.jar | Bin 0 -> 1511 bytes .../testsuite/libjava.lang/N19990310_02.jar | Bin 0 -> 856 bytes .../testsuite/libjava.lang/N19990310_3.jar | Bin 0 -> 834 bytes .../testsuite/libjava.lang/N19990310_4.jar | Bin 0 -> 720 bytes .../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 + .../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 .../testsuite/libjava.lang/Serialization.jar | Bin 0 -> 1362 bytes libjava/testsuite/libjava.lang/Shazam.jar | Bin 0 -> 733 bytes .../testsuite/libjava.lang/StackTrace2.jar | Bin 0 -> 1775 bytes .../libjava.lang/StaticConstructor.jar | Bin 0 -> 1162 bytes .../testsuite/libjava.lang/StringBuffer_1.jar | Bin 0 -> 1351 bytes .../libjava.lang/StringBuffer_overflow.jar | Bin 0 -> 1610 bytes .../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 +- .../testsuite/libjava.lang/Thread_Alive.jar | Bin 0 -> 1098 bytes .../libjava.lang/Thread_HoldsLock.jar | Bin 0 -> 1187 bytes .../libjava.lang/Thread_Interrupt.jar | Bin 0 -> 3972 bytes .../testsuite/libjava.lang/Thread_Join.jar | Bin 0 -> 1890 bytes .../testsuite/libjava.lang/Thread_Monitor.jar | Bin 0 -> 1750 bytes .../testsuite/libjava.lang/Thread_Sleep.jar | Bin 0 -> 858 bytes .../testsuite/libjava.lang/Thread_Sleep_2.jar | Bin 0 -> 966 bytes .../testsuite/libjava.lang/Thread_Wait.jar | Bin 0 -> 1096 bytes .../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 .../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 .../testsuite/libjava.lang/direct_read.jar | Bin 0 -> 1455 bytes .../testsuite/libjava.lang/direct_write.jar | Bin 0 -> 1391 bytes .../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 .../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 .../testsuite/libjava.lang/indirect_read.jar | Bin 0 -> 2044 bytes .../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 .../testsuite/libjava.lang/inner_array.jar | Bin 0 -> 1602 bytes .../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 .../libjava.lang/invoke_from_inner.jar | Bin 0 -> 2208 bytes .../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 .../testsuite/libjava.lang/multiple_finit.jar | Bin 0 -> 1447 bytes libjava/testsuite/libjava.lang/negzero.jar | Bin 0 -> 680 bytes .../libjava.lang/nested_with_ctor.jar | Bin 0 -> 1541 bytes .../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 | 7 +- 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 .../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 .../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 .../testsuite/libjava.lang/stringconst.jar | Bin 0 -> 1175 bytes .../testsuite/libjava.lang/stringconst.xfail | 1 - .../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 .../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 .../testsuite/libjava.loader/TestEarlyGC.jar | Bin 0 -> 2452 bytes libjava/testsuite/libjava.loader/TestLeak.jar | Bin 0 -> 1571 bytes .../testsuite/libjava.loader/TestLeak.java | 4 +- .../testsuite/libjava.loader/TestMultiple.jar | Bin 0 -> 1165 bytes .../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 + 17478 files changed, 606493 insertions(+), 100744 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 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 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 rename libjava/classpath/gnu/java/nio/{channels => }/FileChannelImpl.java (80%) 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 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 create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/Builder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/CertificateBuilder.java 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 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 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 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 create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloBuilder.java create mode 100644 libjava/classpath/gnu/javax/net/ssl/provider/ServerHelloDone.java 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 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 create mode 100644 libjava/classpath/java/awt/datatransfer/MimeType.java 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 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 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 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/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 rename libjava/classpath/tools/gnu/classpath/tools/{getopt => common}/ClasspathToolParser.java (79%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/common/Messages.java rename libjava/classpath/tools/gnu/classpath/tools/{rmi => common}/Persistent.java (98%) 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/GiopRmicCompiler.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 rename libjava/classpath/tools/gnu/classpath/tools/{giop/nameservice => orbd}/PersistentContext.java (99%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/nameservice => orbd}/PersistentContextMap.java (98%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/nameservice => orbd}/PersistentMap.java (99%) 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/rmic/RmicCompiler.java rename libjava/classpath/tools/gnu/classpath/tools/{ => rmic}/AbstractMethodGenerator.java (98%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/CompilationError.java (97%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/Generator.java (98%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/GiopIo.java (96%) rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/HashFinder.java (98%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/Messages.java rename libjava/classpath/tools/gnu/classpath/tools/{giop/grmic => rmic}/MethodGenerator.java (97%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmic/RmiMethodGenerator.java (97%) 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 rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmic/WrapUnWrapper.java (98%) 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%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmid/ActivationSystemImpl.java (98%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi => }/rmid/ActivationSystemImpl_Stub.java (99%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmid/Messages.java rename libjava/classpath/tools/gnu/classpath/tools/{rmi => rmid}/PersistentBidiHashTable.java (98%) create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Main.java create mode 100644 libjava/classpath/tools/gnu/classpath/tools/rmiregistry/Messages.java rename libjava/classpath/tools/gnu/classpath/tools/{rmi => rmiregistry}/PersistentHashTable.java (92%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi/registry => rmiregistry}/RegistryImpl.java (94%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi/registry => rmiregistry}/RegistryImpl_Skel.java (99%) rename libjava/classpath/tools/gnu/classpath/tools/{rmi/registry => rmiregistry}/RegistryImpl_Stub.java (99%) 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 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 create mode 100644 libjava/gnu/java/nio/FileLockImpl.java 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 create mode 100644 libjava/gnu/java/nio/NIOSocket.java 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 create mode 100644 libjava/gnu/java/nio/PipeImpl.java 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 create mode 100644 libjava/gnu/java/nio/SelectorProviderImpl.java 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 create mode 100644 libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.java 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 create mode 100644 libjava/java/io/FileDescriptor.java create mode 100644 libjava/java/io/FileFilter.h create mode 100644 libjava/java/io/FileInputStream.h create mode 100644 libjava/java/io/FileInputStream.java create mode 100644 libjava/java/io/FileNotFoundException.h create mode 100644 libjava/java/io/FileOutputStream.h create mode 100644 libjava/java/io/FileOutputStream.java 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 create mode 100644 libjava/java/net/DatagramSocket.java 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 create mode 100644 libjava/java/net/Socket.java 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 index 7e2c650b1fb..a93d413ab0d 100644 --- a/gcc/java/java-tree.def +++ b/gcc/java/java-tree.def @@ -11,36 +11,6 @@ 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) @@ -49,57 +19,11 @@ DEFTREECODE (LABELED_BLOCK_EXPR, "labeled_block_expr", tcc_expression, 2) 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 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, @@ -842,6 +1605,42 @@ duplicate_class_warning (const char *filename) warning (0, "%Hduplicate class will only be compiled once", &warn_loc); } +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) { @@ -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 (); @@ -1276,20 +2015,16 @@ java_parse_file (int set_yydebug ATTRIBUTE_UNUSED) java_pop_parser_context (1); #ifdef USE_MAPPED_LOCATION linemap_add (&line_table, LC_LEAVE, false, NULL, 0); +#endif #endif } } - 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_2 (); - } - - for (ctxp = ctxp_for_generation; ctxp; ctxp = ctxp->next) - { - 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")) { @@ -234,6 +243,55 @@ get_attribute (JCF *jcf) HANDLE_SOURCEDEBUGEXTENSION_ATTRIBUTE (attribute_length); } 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 @@ -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 index 6b14ffe871e..74831714ddc 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -1,6 +1,6 @@ /* 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. + 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. @@ -27,26 +27,10 @@ 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) \ @@ -55,144 +39,6 @@ extern tree stabilize_reference (tree); #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) \ @@ -204,765 +50,24 @@ extern void parse_error_context (tree cl, const char *gmsgid, ...) ATTRIBUTE_GCC && (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 */ 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) -$(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 +MYGCJH = gjavah + +$(generic_header_files): gcjh.stamp + +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) +ecjx_SOURCES = +ECJX_BASE_FLAGS = -findirect-dispatch \ + --main=org.eclipse.jdt.internal.compiler.batch.GCCMain -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 +@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,37 +9256,6 @@ 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: -@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 -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $< - -.jar.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 -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ -@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` - -.jar.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 -@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ -@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; \ -@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@ 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 - .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 $@ $<; \ @@ -8648,6 +9280,37 @@ classpath/tools/libgcj_tools_la-tools.lo: classpath/tools/tools.jar @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.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.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.zip' || echo '$(srcdir)/'`classpath/tools/tools.zip + +.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 +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ $< + +.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 +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepGCJ_FALSE@ $(GCJCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.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 +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepGCJ_FALSE@ DEPDIR=$(DEPDIR) $(GCJDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepGCJ_FALSE@ $(LTGCJCOMPILE) -c -o $@ $< + mostlyclean-libtool: -rm -f *.lo @@ -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 +sun/misc.list: $(sun_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/misc/*.class > sun/misc.list -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 +-include sun/misc.deps -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 +sun/reflect.list: $(sun_reflect_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/*.class > sun/reflect.list -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 +-include sun/reflect.deps -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 +sun/reflect/annotation.list: $(sun_reflect_annotation_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/annotation/*.class > sun/reflect/annotation.list -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 +-include sun/reflect/annotation.deps -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 +sun/reflect/misc.list: $(sun_reflect_misc_source_files) + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/sun/reflect/misc/*.class > sun/reflect/misc.list -java/lang/reflect/Proxy.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - java/lang/reflect/Proxy +-include sun/reflect/misc.deps -java/lang/reflect/Proxy$$ProxyData.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyData' +java/process-Ecos.list: java/lang/EcosProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/EcosProcess*.class > java/process-Ecos.list -java/lang/reflect/Proxy$$ProxyType.h: classpath/lib/java/lang/reflect/Proxy.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/lang/reflect/Proxy$$ProxyType' +-include java/process-Ecos.deps -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/process-Win32.list: java/lang/Win32Process.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/Win32Process*.class > java/process-Win32.list -java/io/ObjectInputStream$$GetField.h: classpath/lib/java/io/ObjectInputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectInputStream$$GetField' +-include java/process-Win32.deps -java/io/ObjectOutputStream$$PutField.h: classpath/lib/java/io/ObjectOutputStream.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/io/ObjectOutputStream$$PutField' +java/process-Posix.list: java/lang/PosixProcess.java + @$(mkinstalldirs) $(dir $@) + echo $(srcdir)/classpath/lib/java/lang/PosixProcess*.class > java/process-Posix.list -java/nio/DirectByteBufferImpl$$ReadWrite.h: classpath/lib/java/nio/DirectByteBufferImpl.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/DirectByteBufferImpl$$ReadWrite' +-include java/process-Posix.deps -java/nio/channels/Pipe$$SinkChannel.h: classpath/lib/java/nio/channels/Pipe.class - $(GCJH) -classpath '' -bootclasspath classpath/lib \ - 'java/nio/channels/Pipe$$SinkChannel' +$(generic_header_files): gcjh.stamp -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' +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 - * 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. + * tools/gnu/classpath/tools/jar/Creator.java: Close the + inputStream. -2006-07-30 Sven de Marothy +2006-10-12 Andrew Haley - * 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. + * java/lang/InheritableThreadLocal.java: Rename NULL to sentinel. + * java/lang/ThreadLocal.java: Likewise. -2006-07-06 Paul Eggert +2006-09-13 Andrew Haley - 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. + * 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-07-04 Peter O'Gorman +2006-09-13 Andrew Haley - * ltconfig: chmod 644 before ranlib during install. + * 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. + +2006-08-14 Audrius Meskauskas + + * javax/swing/JTable (getScrollableUnitIncrement): + Removing my name as the whole method body have been + recently completely replaced. + +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 + + * 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. + +2006-08-11 Roman Kennke + + * 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. + +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,73 +9802,103 @@ 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 - - * scripts/import-cacerts.sh: Batch CA certificates import script. - -2006-08-03 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. - (decodePrivateKey): Handle case of NULL AlgorithmIdentifier.parameters. - -2006-08-03 Raif S. Naffah +2006-08-02 Raif S. Naffah PR Classpath/23899 * java/security/SecureRandom.java (next): Call nextBytes as per specs. -2006-08-03 Thomas Fitzsimmons +2006-08-02 Raif S. Naffah - * 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. + 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. + (decodePrivateKey): Handle case of NULL AlgorithmIdentifier.parameters. -2006-08-03 Thomas Fitzsimmons +2006-08-01 Andrew John Hughes + + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + Call parameter 'defaultValue' not 'defValue'. + +2006-08-01 Andrew John Hughes + + * javax/management/openmbean/OpenMBeanParameterInfoSupport.java: + New file. + +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 + + * java/awt/Choice.java + (remove(int)): Added documentation. + +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. + +2006-08-01 Tania Bento + + * java/awt/CardLayout.java + (toString): Changed format of string outputted. + (goToComponent): Changed the order of the if-clause. + +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-08-03 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-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-07-31 Raif S. Naffah * java/security/Provider.java: Updated copyright year. @@ -436,6 +9920,11 @@ * gnu/java/security/Engine.java (getInstance): Ignore self referencing aliases. +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 @@ -447,12 +9936,66 @@ 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 static field isPaintingDoubleBuffered to not have the same name 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: @@ -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): @@ -3065,6 +12696,12 @@ * javax/swing/text/html/BRView.java, javax/swing/text/html/HRuleView.java: New files. +2006-07-05 Andrew John Hughes + + * java/lang/Thread.java: + (getAllStackTraces(Map)): + Added generic type signature. + 2006-07-05 Andrew John Hughes * NEWS: Updated. @@ -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 @@ -5318,10 +14959,14 @@ 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. + +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 +2006-06-04 Tom Tromey - * 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. - -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 +2006-06-04 Andrew John Hughes - * 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. - -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): @@ -9530,6 +19001,14 @@ (AccessibleJMenu.selectAllAccessibleSelection): Implemented. (createPath): New helper method. +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 @@ -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 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-10 Roman Kennke - - * javax/swing/JRootPane.java - (createContentPane): Don't set background to null. - 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,6 +21407,28 @@ (updateClip): New method. (clipShape): New method. +2006-04-23 Jeroen Frijters + + * java/lang/Package.java: Added compatibility constructor to ease + VM interface migration. + +2006-04-23 Jeroen Frijters + + * java/lang/Class.java (getEnumConstants): Implemented without + delegating to VMClass. + * vm/reference/java/lang/VMClass.java (getEnumConstants): Removed. + +2006-04-23 Jeroen Frijters + + * java/lang/ClassLoader.java (definePackage): Added argument to + Package constructor. + * java/lang/Package.java (Package): Added ClassLoader argument. + (loader): New field. + (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: @@ -11899,59 +21447,12 @@ * 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. - -2006-04-23 Jeroen Frijters - - * java/lang/ClassLoader.java (definePackage): Added argument to - Package constructor. - * java/lang/Package.java (Package): Added ClassLoader argument. - (loader): New field. - (getAnnotation, getAnnotations, getDeclaredAnnotations, - isAnnotationPresent): Merged from generics branch. - * vm/reference/java/lang/VMClassLoader.java (static): Added argument - to Package constructor. - -2005-12-14 Nicolas Geoffray - - * java/lang/ClassLoader - (defineClass(String,byte[],int,int,ProtectionDomain)): - Calls VMClassLoader.defineClassWithTransformers instead - of VMClassLoader.defineClass. - 2006-04-22 Andrew John Hughes * NEWS: 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,25 +22106,10 @@ (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: @@ -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 Andrew John Hughes -2006-04-17 Jeroen Frijters + * java/lang/annotation/Annotation.java: + Documented. + +2006-04-17 David Gilbert - * java/util/Collection.java: Implemented java.lang.Iterable. - -2006-04-17 Jeroen Frijters - - * 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 - * 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. + * java/lang/ProcessBuilder.java: + Made final. + +2006-03-26 Andrew John Hughes + + * 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'. - -2006-03-06 Lillian Angel + (initComponentDefaults): Use Boolean.TRUE for + 'CheckBoxMenuItem.borderPainted'. - PR classpath/26569 - * java/awt/List.java - (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. +2006-03-06 Wolfgang Baer + * 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. + +2006-03-06 Lillian Angel + + PR classpath/26569 + * java/awt/List.java + (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. + 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,15 +27963,82 @@ (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 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 + + * 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, + * 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. + +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. + +2006-03-06 Mark Wielaard + + * configure.ac: Set version to 0.90-generics. + * NEWS: Fix typos. 2006-03-06 Mark Wielaard @@ -18589,26 +28046,24 @@ * 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 +2006-03-06 Robert Schuster - * NEWS: Fixed typo. + * javax/swing/text/GapContent.java: + (insertString): Throw exception when argument is below + zero. 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. + * javax/swing/text/PlainDocument.java: + (insertUpdate): Extended if-expression, added + code to generate another Element when newly inserted characters + and old ones will be on the same line. -2006-03-06 Tom Tromey +2006-03-06 Robert Schuster - * javax/swing/plaf/synth/SynthLookAndFeel.java (getDescription): - Javadoc fix. - (getName): Likewise. - -2006-03-06 Mark Wielaard - - * configure.ac (VERSION): Set to 0.91-pre. - * NEWS: Add updates for 0.90 release. + * javax/swing/text/DefaultCaret.java: + (mouseDragged): Do selection when shift is pressed. + (mouseClicked): Implemented. 2006-03-06 Robert Schuster @@ -18624,41 +28079,9 @@ * native/jni/gtk-peer/Makefile.am (AM_LDFLAGS): Added FREETYPE2. (AM_CFLAGS): Likewise. -2006-03-06 David Gilbert +2006-03-06 Mark Wielaard - * javax/swing/tree/FixedHeightLayoutCache.java: Reformatted and fixed - 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. - -2006-03-06 Robert Schuster - - * javax/swing/plaf/basic/BasicTextUI.java: - (damageRange): Rewritten if-expressions to correctly identify the - break condition. - -2006-03-06 Robert Schuster - - * javax/swing/text/DefaultCaret.java: - (mouseDragged): Do selection when shift is pressed. - (mouseClicked): Implemented. - -2006-03-06 Dalibor Topic - - * libraries/javalib/external/classpath/java/net/URI.java (quote): - Pass Unicode characters outside the basic plane through. - -2006-03-06 Robert Schuster - - * javax/swing/text/PlainDocument.java: - (insertUpdate): Extended if-expression, added - code to generate another Element when newly inserted characters - and old ones will be on the same line. + * NEWS: Add updates for 0.90 release. 2006-03-05 Robert Schuster @@ -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. + * javax/swing/DefaultFocusManager.java: Fixed bad API doc tags, + * javax/swing/FocusManager.java: Likewise. + 2006-03-05 David Gilbert - * 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 @@ -19830,8 +29257,69 @@ * java/util/logging/FileHandler.java: Fixed a javadoc reference. -2006-02-25 Chris Burdess +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/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-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 + + * 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 + + * 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 + + * 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 +2005-12-09 Tom Tromey - * 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 - - * 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 @@ -1872,6 +2080,91 @@ * java/util/logging/XMLFormatter.java (format): Don't call getMillis() twice. +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): @@ -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. @@ -5953,6 +6449,44 @@ Call gdk_window_get_root_origin instead of gdk_window_get_origin so that the window decorations are correctly respected. +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 @@ -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 @@ -15787,11 +16890,82 @@ * gnu/java/awt/peer/gtk/GtkComponentPeer.java (repaintTimer): Make field final. +2005-08-14 Sven de Marothy + + * 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 + + * 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 @@ -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: @@ -25038,12 +26449,45 @@ Make the UIManager respect the swing.defaultlaf system property. +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,32 +28918,98 @@ * 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 @@ -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: @@ -29762,6 +31341,25 @@ javax/print/attribute/standard/MediaSize.java: New files. +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: @@ -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 + + * 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 + + * 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 + + * 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 + + * 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. + * 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-09-22 David Daney +2006-12-11 Tom Tromey - PR classpath/28661 - * gnu/java/net/protocol/http/HTTPURLConnection.java (connect): Add - default content-type for POST method. + * Merged in Classpath from libgcj-import-20061211. -2006-09-20 Gary Benson +2006-10-17 Tom Tromey - * 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. + * sun/reflect/annotation/AnnotationInvocationHandler.java + (invoke): Clone array values before return. + (create): New method. + (arrayClone): 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-10-12 Tom Tromey -2006-09-18 Tom Tromey + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Put classes in srcdir. + (compile-classes): Conditional on MAINTAINER_MODE. - * 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-07-18 Tom Tromey -2006-09-11 David Daney + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Add -w, -g, and --encoding. - 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-07-06 Tom Tromey -2006-09-05 Gary Benson + * lib/Makefile.in: Rebuilt. + * lib/Makefile.am (JAVAC): Define when FOUND_GCJ is true. + (compile-classes): Remove special case for gcj. - * 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 +2006-06-23 Tom Tromey - * 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. - -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-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-07 Tom Tromey - - PR libgcj/28609: - * ltconfig: Copied from gcc. - -2006-07-20 Keith Seitz - - * include/jvmti.h: Include copy from upstream before next merge. - -2006-07-12 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. - -2006-06-14 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. @@ -2598,6 +2626,39 @@ cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ +int +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 () { @@ -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,7 +4421,246 @@ fi if test "${enable_tool_wrappers+set}" = set; then enableval="$enable_tool_wrappers" case x"${enableval}" in - xyes) COMPILE_WRAPPERS=yes ;; + 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 + # 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 + +# 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 + ac_cpp_err=yes +fi +if test -z "$ac_cpp_err"; then + ac_header_preproc=yes +else + 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 + +# 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 +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 `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + { { echo "$as_me:$LINENO: error: cannot find ltdl.h" >&5 +echo "$as_me: error: cannot find ltdl.h" >&2;} + { (exit 1); exit 1; }; } +fi + +done + + +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 + 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 () +{ +lt_dlopen (); + ; + 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_ltdl_lt_dlopen=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_lib_ltdl_lt_dlopen=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_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 + + LIBS="-lltdl $LIBS" + +else + { { echo "$as_me:$LINENO: error: cannot find libltdl" >&5 +echo "$as_me: error: cannot find libltdl" >&2;} + { (exit 1); exit 1; }; } +fi + + ;; xno) COMPILE_WRAPPERS=no ;; x) COMPILE_WRAPPERS=yes ;; *) COMPILE_WRAPPERS=yes ;; @@ -4473,469 +4770,6 @@ 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 - -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 -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 $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_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_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_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. */ - -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_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 -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;' \ - '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 -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 -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 - -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="$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_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 - - 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 - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CXX_dependencies_compiler_type=none -fi - -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='#' -else - am__fastdepCXX_TRUE='#' - am__fastdepCXX_FALSE= -fi - # Check whether --enable-static or --disable-static was given. if test "${enable_static+set}" = set; then @@ -5721,7 +5555,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 5724 "configure"' > conftest.$ac_ext + echo '#line 5558 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -5839,7 +5673,12 @@ 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 + 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 @@ -6002,260 +5841,6 @@ LIBTOOL='$(SHELL) $(top_builddir)/libtool' # clobbered by the next message. exec 5>>./config.log -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 -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 -_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 - 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 - 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 - break -fi - - done - ac_cv_prog_CXXCPP=$CXXCPP - -fi - CXXCPP=$ac_cv_prog_CXXCPP -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 -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 -_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 - 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 - 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 - @@ -7333,6 +6918,736 @@ 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_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 + +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 +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 $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_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_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_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. */ + +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_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 +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;' \ + '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 +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 +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 + +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="$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_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 + + 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 + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +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='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + +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 +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 +_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 + 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 + 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 + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +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 +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 +_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 + 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 + 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 + + + + +# 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 @@ -7848,6 +8322,9 @@ fi + + + for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \ asm/ioctls.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 @@ -8115,6 +8594,17 @@ rm -f conftest* + + + + + + + + + + + @@ -8129,15 +8619,17 @@ 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 @@ -12770,6 +13547,104 @@ echo "${ECHO_T}$MOZILLA_LIBS" >&6 + 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 + 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" @@ -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,13 +19961,6 @@ 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. -Usually this means the macro was only invoked conditionally." >&5 -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 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 @@ -19089,6 +19968,13 @@ 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__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__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." >&2;} + { (exit 1); exit 1; }; } +fi if test -z "${USER_SPECIFIED_JAVAH_TRUE}" && test -z "${USER_SPECIFIED_JAVAH_FALSE}"; then { { echo "$as_me:$LINENO: error: conditional \"USER_SPECIFIED_JAVAH\" was never defined. Usually this means the macro was only invoked conditionally." >&5 @@ -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 @@ -221,25 +235,16 @@ AC_ARG_ENABLE([plugin], [COMPILE_PLUGIN=yes]) 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.} +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. -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. +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 -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: +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 -@example -static void insertSystemProperties(Properties @var{p}) -@end example -... -@example -@var{p}.put("gnu.classpath.awt.gtk.portable.native.sync", "true"); -@end example +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 -So, the configure option -@option{--portable-native-sync} is deprecated, and should go away in a -subsequent release of GNU Classpath. +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 zcmV+r3GeoaP)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() - { - public void actionPerformed(ActionEvent event) - { - String t = text.getText(); - System.out.println("HtmlDemo.java.createContent:Parsing started"); - html.setText(t); - System.out.println("HtmlDemo.java.createContent:Parsing completed"); - } - }); - - buttons.add(parse); - - JButton insertBeforeEnd = new JButton("before end"); - insertBeforeEnd.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.insertBeforeEnd(el,"before end "+(n++)); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - }); - - 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() - { - 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() - { - 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(); - } - } - }); - - JButton setInner = new JButton("inner"); - setInner.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) { - HTMLDocument doc = (HTMLDocument) html.getDocument(); - Element el = doc.getElement("insertHere"); - System.out.println("Element found:"+el); - try + submitForm((FormSubmitEvent) event); + } + else + { + URL u = event.getURL(); + if (u != null) { - doc.setInnerHTML(el,"inner "+(n++)); - } - catch (Exception e) - { - e.printStackTrace(); + setPage(u); } } - }); - - JButton setOuter = new JButton("outer"); - setOuter.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.setOuterHTML(el,"outer "+(n++)); - } - catch (Exception e) - { - e.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); + URL startpage = getClass().getResource("welcome.html"); + html.setPage(startpage); + url.setText(startpage.toString()); + history.addLast(startpage); + } + catch (Exception ex) + { + System.err.println("couldn't load page: "/* + startpage*/); + ex.printStackTrace(); + } + setPreferredSize(new Dimension(800, 600)); } + + /** + * 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) + { + if (history.size() > 1) + { + URL last = (URL) history.removeLast(); + last = (URL) history.getLast(); + url.setText(last.toString()); + try + { + html.setPage(last); + } + catch (IOException ex) + { + // Do something more useful. + ex.printStackTrace(); + } + } + } + }); + 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) + { + if (history.size() > 0) + { + URL last = (URL) history.getLast(); + url.setText(last.toString()); + try + { + html.setPage(last); + } + catch (IOException ex) + { + // Do something more useful. + ex.printStackTrace(); + } + } + } + }); + tb.add(reload); + return tb; + } + /** * The executable method to display the editable table. * @@ -259,26 +266,101 @@ 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. * 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) + while (iter.hasNext()) { - subserver = new portServer(obj.port); - portServers.add(subserver); - } - else - subserver = (portServer) identities.get(obj.identity); - - if (!subserver.isAlive()) - { - // 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 + // Check maybe the local object on another ORB, but same VM. + object = CollocatedOrbs.searchLocalObject(ior); + if (object == null) { - 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)); - } + // 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.
  • * *

    * @@ -143,6 +160,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 */ @@ -183,11 +206,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); - } - - public void print(Graphics graphics) {} - - 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); - } - - public void requestFocus() {} - - 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 print(Graphics graphics) + { + // Nothing to do here for lightweights. + } - public void setBackground(Color color) {} + public void repaint(long tm, int x, int y, int width, int height) + { + // Nothing to do here for lightweights. + } - public void setBounds(int x, int y, int width, int height) {} + public void requestFocus() + { + // Nothing to do here for lightweights. + } + + 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) + { + // Nothing to do here for lightweights. + } + + public void setBackground(Color color) + { + // Nothing to do here for lightweights. + } + + 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 setEventMask(long eventMask) {} - - public void setFont(Font font) {} - - public void setForeground(Color color) {} - - public void setVisible(boolean visible) {} - - public void show() {} - - public ColorModel getColorModel () + public void setEnabled(boolean enabled) { - return comp.getColorModel (); + // Nothing to do here for lightweights. + } + + public void setEventMask(long eventMask) + { + // Nothing to do here for lightweights. + } + + public void setFont(Font font) + { + // Nothing to do here for lightweights. + } + + public void setForeground(Color color) + { + // Nothing to do here for lightweights. + } + + public void setVisible(boolean visible) + { + // Nothing to do here for lightweights. + } + + public void show() + { + // Nothing to do here for lightweights. + } + + public ColorModel 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); @@ -189,6 +195,18 @@ public abstract class CairoGraphics2D extends Graphics2D static ColorModel argb32 = new DirectColorModel(32, 0xFF0000, 0xFF00, 0xFF, 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. */ @@ -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, @@ -440,11 +473,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). * @@ -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 shifted(double coord, boolean doShift) + private double shiftX(double coord, boolean doShift) { if (doShift) - return Math.floor(coord) + 0.5; + { + 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 shiftY(double coord, boolean doShift) + { + if (doShift) + { + 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; + // 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 nativeModel = 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,45 +481,6 @@ 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) - { - lock(); - try - { - super.drawLine(x1, y1, x2, y2); - } - finally - { - unlock(); - } - } - - public void drawRect(int x, int y, int width, int height) - { - lock(); - try - { - super.drawRect(x, y, width, height); - } - finally - { - unlock(); - } - } - - public void fillRect(int x, int y, int width, int height) - { - lock(); - try - { - super.fillRect(x, y, width, height); - } - finally - { - unlock(); - } - } - public void setClip(Shape s) { lock(); @@ -431,5 +494,99 @@ public class ComponentGraphics extends CairoGraphics2D } } + + 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(); + + 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; + } + + private void createBuffer() + { + if (buffer == null) + { + 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()); + } + else + { + Graphics2D g2d = ((Graphics2D)buffer.getGraphics()); + + g2d.setBackground(new Color(0,0,0,0)); + g2d.clearRect(0, 0, buffer.getWidth(), buffer.getHeight()); + } + + if (componentBuffer == null) + { + 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()); + // 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; + } - awtComponent.paint(g); - - 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(); + // 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.setClip(event.getUpdateRect()); - - awtComponent.update(g); - - 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) + 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 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. @@ -56,14 +62,54 @@ public class SwingContainerPeer implements ContainerPeer { + /** + * 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) { - init(awtCont, null); + 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) + { + 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,14 +213,26 @@ public final class PlainDatagramSocketImpl extends DatagramSocketImpl */ protected synchronized int getTimeToLive() throws IOException { - Object obj = getOption(VMPlainDatagramSocketImpl.IP_TTL); - - if (! (obj instanceof Integer)) - throw new IOException("Internal Error"); - - return ((Integer) obj).intValue(); + return impl.getTimeToLive(); } + protected int getLocalPort() + { + if (channel == null) + return -1; + + 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); + if (impl.getState().isValid()) + impl.close(); + + address = null; + port = -1; } - public void sendUrgentData(int data) + public void sendUrgentData(int data) throws IOException { - 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); - } - - /** - * 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 - { - 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; } @@ -148,6 +151,45 @@ public class Handler extends URLStreamHandler setURL (url, "jar", url.getHost(), url.getPort(), url_string, null); } + /** + * 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. * 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()) + if (!(target instanceof InetSocketAddress)) + throw new IOException("can only send to inet socket addresses"); + + InetSocketAddress dst = (InetSocketAddress) target; + if (dst.isUnresolved()) throw new IOException("Target address not resolved"); - byte[] buffer; - int offset = 0; - int len = src.remaining(); - - 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); - } - - 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/channels/FileChannelImpl.java b/libjava/classpath/gnu/java/nio/FileChannelImpl.java similarity index 80% rename from libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java rename to libjava/classpath/gnu/java/nio/FileChannelImpl.java index ed439e141ef..41912405078 100644 --- a/libjava/classpath/gnu/java/nio/channels/FileChannelImpl.java +++ b/libjava/classpath/gnu/java/nio/FileChannelImpl.java @@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.java.nio.channels; +package gnu.java.nio; import gnu.classpath.Configuration; import gnu.java.nio.FileLockImpl; @@ -74,11 +74,11 @@ public final class FileChannelImpl extends FileChannel public static final int SYNC = 16; public static final int DSYNC = 32; - public static FileChannelImpl in; - public static FileChannelImpl out; - public static FileChannelImpl err; + public static final FileChannelImpl in; + public static final FileChannelImpl out; + public static final FileChannelImpl err; - private static native void init(); + //private static native void init(); static { @@ -87,22 +87,45 @@ public final class FileChannelImpl extends FileChannel System.loadLibrary("javanio"); } - init(); + //init(); - in = new FileChannelImpl(0, READ); - out = new FileChannelImpl(1, WRITE); - err = new FileChannelImpl(2, WRITE); + 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 */ - // 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; @@ -113,19 +136,19 @@ public final class FileChannelImpl extends FileChannel /* 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 + throws IOException { return new FileChannelImpl(file, mode); } private FileChannelImpl(File file, int mode) - throws FileNotFoundException + throws IOException { String path = file.getPath(); description = path; - fd = open (path, mode); this.mode = mode; - this.ch = VMChannel.getVMChannel(this); + 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. @@ -133,11 +156,11 @@ public final class FileChannelImpl extends FileChannel { try { - close(); + close(); } catch (IOException e) { - /* ignore it */ + /* ignore it */ } throw new FileNotFoundException(description + " is a directory"); @@ -153,49 +176,59 @@ public final class FileChannelImpl extends FileChannel * * @param mode READ or WRITE */ - FileChannelImpl (int fd, int mode) + FileChannelImpl (VMChannel ch, int mode) { - this.fd = fd; this.mode = mode; - this.description = "descriptor(" + fd + ")"; - this.ch = VMChannel.getVMChannel(this); + this.description = "descriptor(" + ch.getState() + ")"; + this.ch = ch; } - private native int open (String path, int mode) throws FileNotFoundException; + public int available() throws IOException + { + return ch.available(); + } - 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; + 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 native void unlock (long pos, long len) throws IOException; + public void unlock(long pos, long len) throws IOException + { + ch.unlock(pos, len); + } - public native long size () throws IOException; + public long size () throws IOException + { + return ch.size(); + } - protected native void implCloseChannel() throws IOException; + protected void implCloseChannel() throws IOException + { + ch.close(); + } /** * Makes sure the Channel is properly closed. */ protected void finalize() throws IOException { - if (fd != -1) + if (ch.getState().isValid()) 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); } @@ -212,11 +245,10 @@ public final class FileChannelImpl extends FileChannel return result; } - public native int read () - throws IOException; - - public native int read (byte[] buffer, int offset, int length) - throws IOException; + public int read() throws IOException + { + return ch.read(); + } public long read (ByteBuffer[] dsts, int offset, int length) throws IOException @@ -252,19 +284,16 @@ public final class FileChannelImpl extends FileChannel return result; } - public native void write (byte[] buffer, int offset, int length) - throws IOException; - - public native void write (int b) throws IOException; + 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 native MappedByteBuffer mapImpl (char mode, long position, int size) - throws IOException; public MappedByteBuffer map (FileChannel.MapMode mode, long position, long size) @@ -291,7 +320,7 @@ public final class FileChannelImpl extends FileChannel if (position < 0 || size < 0 || size > Integer.MAX_VALUE) throw new IllegalArgumentException ("position: " + position + ", size: " + size); - return mapImpl(nmode, position, (int) size); + return ch.map(nmode, position, (int) size); } /** @@ -302,11 +331,9 @@ public final class FileChannelImpl extends FileChannel if (!isOpen ()) throw new ClosedChannelException (); - force (); + ch.flush(metaData); } - private native void force (); - // like transferTo, but with a count of less than 2Gbytes private int smallTransferTo (long position, int count, WritableByteChannel target) @@ -453,7 +480,7 @@ public final class FileChannelImpl extends FileChannel try { begin(); - boolean lockable = lock(position, size, shared, false); + boolean lockable = ch.lock(position, size, shared, false); completed = true; return (lockable ? new FileLockImpl(this, position, size, shared) @@ -464,14 +491,6 @@ public final class FileChannelImpl extends FileChannel 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 @@ -481,7 +500,7 @@ public final class FileChannelImpl extends FileChannel boolean completed = false; try { - boolean lockable = lock(position, size, shared, true); + boolean lockable = ch.lock(position, size, shared, true); completed = true; return (lockable ? new FileLockImpl(this, position, size, shared) @@ -537,17 +556,17 @@ public final class FileChannelImpl extends FileChannel public String toString() { - return (this.getClass() - + "[fd=" + fd - + ",mode=" + mode + "," - + description + "]"); + 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); + } - SocketChannelImpl (SelectorProvider provider) + public SocketChannelImpl(VMChannel channel) throws IOException + { + this(new SelectorProviderImpl(), channel, false); + } + + SocketChannelImpl(SelectorProvider provider) throws IOException + { + this(provider, true); + } + + 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,22 +132,27 @@ 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(); + + InetSocketAddress remote = channel.getPeerAddress(); + if (remote != null) + { + connectionPending = false; + return true; + } - if (!isConnected() && !connectionPending) + if (!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()) - { - selector.select(); // blocking until channel is connected. - connectionPending = false; - return true; - } - - int ready = selector.selectNow(); // non-blocking - if (ready == 1) - { - connectionPending = false; - return true; - } - 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/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 - } - - if (codeBase.length() == 0) //=="" - { - loader = defaultClassLoader; - } - else - { - loader = getClassLoader(codeBase); } - if (loader == null) - { - //do not throw NullPointerException - throw new ClassNotFoundException ("Could not find class (" + name + - ") at codebase (" + codeBase + ")"); - } - - return Class.forName(name, false, loader); + return Class.forName(name, false, getClassLoader(codeBase)); } public Class loadProxyClass(String codeBase, String[] interfaces, ClassLoader defaultLoader) throws MalformedURLException, ClassNotFoundException { - // FIXME: Implement this. - return null; + Class clss[] = new Class[interfaces.length]; + + for (int i = 0; i < interfaces.length; i++) + { + clss[i] = loadClass(codeBase, interfaces[i], defaultLoader); + } + + // 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 = clss[i].getClassLoader(); + if (! loaders.contains(loader)) + { + loaders.add(0, loader); + } + } + if (loaders.size() > 1) + { + loader = new CombinedClassLoader(loaders); + } + + try + { + return Proxy.getProxyClass(loader, clss); + } + catch (IllegalArgumentException e) + { + throw new ClassNotFoundException(null, e); + } } /** @@ -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++) + try { - if (annotation == null) - clss[i] = RMIClassLoader.loadClass(intfs[i]); - else - clss[i] = RMIClassLoader.loadClass(annotation, intfs[i]); + return RMIClassLoader.loadProxyClass( + (String)getAnnotation(), + intfs, + VMStackWalker.firstNonNullClassLoader()); } - - ClassLoader loader; - - if (clss.length > 0) + catch (MalformedURLException x) { - // 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 - { - return Proxy.getProxyClass(loader, clss); - } - catch (IllegalArgumentException e) - { - 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,9 +161,25 @@ 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. */ @@ -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 @@ -76,6 +76,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. @@ -104,6 +111,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. */ 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 index c31e1bef5ca..12c86b0a402 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/Alert.java @@ -38,10 +38,10 @@ 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; + +import java.nio.ByteBuffer; /** * An alert message in the SSL protocol. Alerts are sent both as warnings @@ -52,211 +52,112 @@ import java.io.OutputStream; * *
      * struct {
    - *   AlertLevel level;
    + *   AlertLevel       level;
      *   AlertDescription description;
      * }
      * 
    */ -final class Alert implements Constructed +public final class Alert implements Constructed { // Fields. // ------------------------------------------------------------------------- - /** The alert level enumerated. */ - private final Level level; - - /** The alert description enumerated. */ - private final Description description; + /** The underlying byte buffer. */ + private final ByteBuffer buffer; // Constructor. // ------------------------------------------------------------------------- - Alert(Level level, Description description) + public Alert (final ByteBuffer buffer) { - this.level = level; - this.description = description; + this.buffer = buffer; } - - // Class method. - // ------------------------------------------------------------------------- - - static Alert read(InputStream in) throws IOException + + public Alert (final Level level, final Description description) { - 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); + 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 void write(OutputStream out) throws IOException + public int length () { - out.write((byte) level.getValue()); - out.write((byte) description.getValue()); + return 2; } byte[] getEncoded() { - return new byte[] { (byte) level.getValue(), - (byte) description.getValue() }; + byte[] buf = new byte[2]; + buffer.position (0); + buffer.get (buf); + return buf; } - Level getLevel() + public Level level() { - return level; + return Level.forInteger (buffer.get (0) & 0xFF); } - Description getDescription() + public Description description() { - return 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() { - String nl = System.getProperty("line.separator"); - return "struct {" + nl + - " level = " + level + ";" + nl + - " description = " + description + ";" + nl + - "} Alert;" + nl; + return toString (null); } - // Inner classes. + 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. // ------------------------------------------------------------------------- /** @@ -266,129 +167,88 @@ final class Alert implements Constructed * enum { warning(1), fatal(2), (255) } AlertLevel; * */ - static final class Level implements Enumerated + public static enum Level { - // Constants and fields. - // ----------------------------------------------------------------------- - - static final Level WARNING = new Level(1), FATAL = new Level(2); - + WARNING (1), FATAL (2); + private final int value; - // Constructor. - // ----------------------------------------------------------------------- - private Level(int value) { this.value = value; } - // Class method. - // ----------------------------------------------------------------------- - - static Level read(InputStream in) throws IOException + public static Level forInteger (final int value) { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of stream"); - } - switch (i & 0xFF) + switch (value & 0xFF) { case 1: return WARNING; case 2: return FATAL; - default: return new Level(i); + default: throw new IllegalArgumentException ("invalid alert level: " + value); } } - // 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 + public static enum Description { - - // 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); - + 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; - // Constructor. - // ----------------------------------------------------------------------- - private Description(int value) { this.value = value; } - // Class method. - // ----------------------------------------------------------------------- - - static Description read(InputStream in) throws IOException + /** + * 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) { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (i) + switch (value & 0xFF) { case 0: return CLOSE_NOTIFY; case 10: return UNEXPECTED_MESSAGE; @@ -416,59 +276,13 @@ final class Alert implements Constructed case 100: return NO_RENEGOTIATION; case 120: return UNKNOWN_SRP_USERNAME; case 121: return MISSING_SRP_USERNAME; - default: return new Description(i); + default: throw new IllegalArgumentException("unknown alert description: " + value); } } - // 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 + ")"; - } - } } } 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 java.util.List; -import javax.net.ssl.SSLProtocolException; +/** + * 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>;
     
    -final class Certificate implements Handshake.Body
    +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; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static Certificate read(InputStream in, CertificateType type) - throws IOException - { - 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); + buffer.getClass (); + type.getClass (); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + this.type = type; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () { - 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) - { - } - out.write(bout.size() >>> 16 & 0xFF); - out.write(bout.size() >>> 8 & 0xFF); - out.write(bout.size() & 0xFF); - bout.writeTo(out); + return (((buffer.get (0) & 0xFF) << 24) + | buffer.getShort (1)) + 3; } - X509Certificate[] getCertificates() + public List certificates () + throws CertificateException, NoSuchAlgorithmException { - return certs; + 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); + } + return list; } - public String toString() + public String toString () + { + return toString (null); + } + + 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 (" };"); } - out.println("} Certificate;"); + 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.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 index 0f788039b0b..b7a22b20400 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CertificateRequest.java @@ -38,201 +38,96 @@ 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.nio.ByteBuffer; +import java.nio.ByteOrder; -import java.util.LinkedList; -import java.security.Principal; - -final class CertificateRequest implements Handshake.Body +/** + * 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. // ------------------------------------------------------------------------- - private final ClientType[] types; - private final Principal[] authorities; - + protected ByteBuffer buffer; + // Constructor. // ------------------------------------------------------------------------- - CertificateRequest(ClientType[] types, Principal[] authorities) + public CertificateRequest(final ByteBuffer buffer) { - 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()])); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () { - 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); + int o1 = (buffer.get (0) & 0xFF) + 1; + return o1 + (buffer.getShort (o1) & 0xFFFF) + 2; } - ClientType[] getTypes() + public ClientCertificateTypeList types () { - return types; + return new ClientCertificateTypeList(buffer.duplicate()); } - String[] getTypeStrings() + public X500PrincipalList authorities () { - try - { - return (String[]) Util.transform(types, String.class, "toString", null); - } - catch (Exception x) - { - return null; - } - } - - Principal[] getAuthorities() - { - return 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 {"); - out.print(" types = "); - for (int i = 0; i < types.length; i++) - { - out.print(types[i]); - if (i != types.length - 1) - out.print(", "); - } - out.println(";"); + if (prefix != null) out.print (prefix); + out.println (" types ="); + out.println (types ().toString (subprefix)); + if (prefix != null) out.print (prefix); 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;"); + out.println (authorities ().toString (subprefix)); + if (prefix != null) out.print (prefix); + out.print ("} CertificateRequest;"); return str.toString(); } - // Inner class. - // ------------------------------------------------------------------------- - - static final class ClientType implements Enumerated + public static enum ClientCertificateType { - - // 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); + RSA_SIGN (1), + DSS_SIGN (2), + RSA_FIXED_DH (3), + DSS_FIXED_DH (4); private final int value; // Constructor. // ----------------------------------------------------------------------- - private ClientType(int value) + private ClientCertificateType (final int value) { this.value = value; } @@ -240,46 +135,21 @@ final class CertificateRequest implements Handshake.Body // Class method. // ----------------------------------------------------------------------- - static ClientType read(InputStream in) throws IOException + static ClientCertificateType forValue (final int value) { - int i = in.read(); - if (i == -1) - { - throw new EOFException("unexpected end of input stream"); - } - switch (i & 0xFF) + 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 new ClientType(i); + default: throw new IllegalArgumentException("unknown client certificate type: " + value); } } - // 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 + ")"; - } - } } } 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 index de916817b92..af3041e9403 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/CipherSuite.java @@ -38,407 +38,521 @@ exception statement from your version. */ package gnu.javax.net.ssl.provider; -import java.io.DataInputStream; -import java.io.InputStream; +import gnu.java.security.action.GetSecurityPropertyAction; + import java.io.IOException; import java.io.OutputStream; -import java.lang.reflect.Field; +import java.nio.ByteBuffer; +import java.security.AccessController; 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 javax.crypto.NullCipher; -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 +public final class CipherSuite implements Constructed { // Constants and fields. // ------------------------------------------------------------------------- - private static final List tlsSuiteNames = new LinkedList(); - private static final HashMap namesToSuites = new HashMap(); + 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); + // 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. - 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); + 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 - 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); + // 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. - 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); + // 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 String cipherName; - private final String kexName; - private final String sigName; - private final String macName; + 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 ProtocolVersion version; + private final boolean isResolved; // Constructors. // ------------------------------------------------------------------------- - private CipherSuite(String cipherName, String kexName, String sigName, - String macName, int keyLength, int id1, int id2, - String name, ProtocolVersion version) + 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.cipherName = cipherName.intern(); - this.kexName = kexName.intern(); - this.sigName = sigName.intern(); - this.macName = macName.intern(); + 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 = cipherName.equals("null") || cipherName.equals("RC4"); + this.isStream = (cipherAlgorithm == CipherAlgorithm.NULL + || cipherAlgorithm == CipherAlgorithm.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); } + isResolved = true; } private CipherSuite(byte[] id) { - cipherName = null; - kexName = null; - sigName = null; - macName = null; + cipherAlgorithm = null; + keyExchangeAlgorithm = null; + signatureAlgorithm = null; + macAlgorithm = null; + ephemeralDH = false; exportable = false; isStream = false; keyLength = 0; this.id = id; name = null; - version = null; + isResolved = false; } // Class methods. @@ -450,276 +564,245 @@ final class CipherSuite implements Constructed * * @return The named cipher suite. */ - static CipherSuite forName(String name) + public static CipherSuite forName(String name) { - return (CipherSuite) namesToSuites.get(name); + if (name.startsWith("SSL_")) + name = "TLS_" + name.substring(4); + return namesToSuites.get(name); } - static List availableSuiteNames() + 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; } - static CipherSuite read(InputStream in) throws IOException + // Intance methods. + // ------------------------------------------------------------------------- + + public CipherAlgorithm cipherAlgorithm () { - DataInputStream din = new DataInputStream(in); - byte[] id = new byte[2]; - din.readFully(id); - return new CipherSuite(id); + return cipherAlgorithm; } - static IMode getCipher(String cbcCipherName) + public Cipher cipher () throws NoSuchAlgorithmException, NoSuchPaddingException { - IBlockCipher cipher = CipherFactory.getInstance(cbcCipherName); - if (cipher == null) - { - return null; - } - return ModeFactory.getInstance("CBC", cipher, cipher.defaultBlockSize()); - } + if (cipherAlgorithm == null) + throw new NoSuchAlgorithmException (toString () + ": unresolved cipher suite"); + if (cipherAlgorithm == CipherAlgorithm.NULL) + return new NullCipher (); - 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); - } + String alg = null; + if (cipherAlgorithm == CipherAlgorithm.RC4) + alg = "RC4"; 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"); + alg = cipherAlgorithm + "/CBC/NoPadding"; + GetSecurityPropertyAction gspa = + new GetSecurityPropertyAction ("jessie.jce.provider"); + final String provider = (String) AccessController.doPrivileged (gspa); if (provider != null) { try { - return Mac.getInstance (name, provider); + return Cipher.getInstance (alg, provider); } catch (NoSuchProviderException nspe) { - // Fall through. Try any available provider. } } - return Mac.getInstance (name); + return Cipher.getInstance (alg); } - // Intance methods. - // ------------------------------------------------------------------------- + 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); } - CipherSuite resolve(ProtocolVersion version) + public void put (final ByteBuffer buf) { - if (version == ProtocolVersion.SSL_3) + buf.put (id); + } + + public CipherSuite resolve() + { + if (id[0] == 0x00) switch (id[1] & 0xFF) { - 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; - } + 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; } - - String getCipher() + + public boolean isResolved() { - return cipherName; + return isResolved; } - int getKeyLength() + public int keyLength() { return keyLength; } - String getKeyExchange() - { - return kexName; - } - - String getSignature() - { - return sigName; - } - - String getMac() - { - return macName; - } - - boolean isExportable() + public boolean isExportable() { return exportable; } - boolean isStreamCipher() + public boolean isStreamCipher() { return isStream; } - String getAuthType() - { - if (kexName.equals("RSA")) - { - if (isExportable()) - { - return "RSA_EXPORT"; - } - return "RSA"; - } - return kexName + "_" + sigName; - } +// String getAuthType() +// { +// if (keyExchangeAlgorithm == KeyExchangeAlgorithm.RSA) +// { +// if (isExportable()) +// { +// return "RSA_EXPORT"; +// } +// return "RSA"; +// } +// return kexName + "_" + sigName; +// } - byte[] getId() + public byte[] id() { return id; } - ProtocolVersion getVersion() - { - return version; - } - public boolean equals(Object o) { if (!(o instanceof CipherSuite)) @@ -728,26 +811,26 @@ final class CipherSuite implements Constructed } if (o == this) return true; - byte[] id = ((CipherSuite) o).getId(); - return id[0] == this.id[0] && - id[1] == this.id[1]; + byte[] id = ((CipherSuite) o).id(); + 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); + return 0xFFFF0000 | (id[0] & 0xFF) << 8 | (id[1] & 0xFF); + } + + public String toString (String prefix) + { + return toString (); } public String toString() { if (name == null) { - return "UNKNOWN { " + (id[0] & 0xFF) + ", " + (id[1] & 0xFF) + " }"; + 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 index 259051df129..54d7f8b4d74 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ClientHello.java @@ -38,216 +38,203 @@ 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 java.nio.ByteBuffer; +import java.nio.ByteOrder; -import javax.net.ssl.SSLProtocolException; - -final class ClientHello implements Handshake.Body +/** + * 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. // ------------------------------------------------------------------------- - private ProtocolVersion version; - private Random random; - private byte[] sessionId; - private List suites; - private List comp; - private List extensions; + // 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. // ------------------------------------------------------------------------- - ClientHello(ProtocolVersion version, Random random, - byte[] sessionId, List suites, List comp) + public ClientHello (final ByteBuffer buffer) { - 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); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + disableExtensions = false; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length() { - 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); - } + 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; } - ProtocolVersion getVersion() + /** + * Gets the protocol version field. + * + * @return The protocol version field. + */ + public ProtocolVersion version() { - return version; + return ProtocolVersion.getInstance (buffer.getShort (0)); } - Random getRandom() + /** + * Gets the SSL nonce. + * + * @return The nonce. + */ + public Random random() { - return random; + ByteBuffer randomBuf = + ((ByteBuffer) buffer.duplicate ().position (RANDOM_OFFSET) + .limit (SESSID_OFFSET)).slice (); + return new Random (randomBuf); } - byte[] getSessionId() + public byte[] sessionId() { + int idlen = buffer.get (SESSID_OFFSET) & 0xFF; + byte[] sessionId = new byte[idlen]; + buffer.position (SESSID_OFFSET2); + buffer.get (sessionId); return sessionId; } - List getCipherSuites() + public CipherSuiteList cipherSuites() { - return suites; + 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 ()); } - List getCompressionMethods() + public CompressionMethodList compressionMethods() { - return comp; + 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()); } - List getExtensions() + public ExtensionList extensions() { - return 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; } - public String toString() + protected int getCipherSuitesOffset () { - 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 (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.nio.ByteBuffer; +import java.nio.ByteOrder; -import java.security.PublicKey; -import java.security.interfaces.RSAKey; -import javax.crypto.interfaces.DHPublicKey; - -final class ClientKeyExchange implements Handshake.Body +/** + * 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) + public ClientKeyExchange (final ByteBuffer buffer, final CipherSuite suite, + final ProtocolVersion version) { - exObject = encryptedSecret; - } - - ClientKeyExchange(BigInteger bigint) - { - exObject = bigint; - } - - // Class method. - // ------------------------------------------------------------------------- - - static ClientKeyExchange read(InputStream in, CipherSuite suite, - PublicKey key) - throws IOException - { - 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 () { - out.write(type.getEncoded()); - out.write(value.length >>> 8 & 0xFF); - out.write(value.length & 0xFF); - out.write(value); + return (buffer.getShort (2) & 0xFFFF) + 4; + } + + public ByteBuffer buffer() + { + 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) + switch (value & 0xFFFF) { - throw new EOFException("unexpected end of input stream"); - } - int value = (i & 0xFF) << 8; - i = in.read(); - if (i == -1) - { - 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; - } - - Finished(byte[] md5, byte[] sha) - { - this.md5 = md5; - this.sha = sha; - verifyData = null; - } - - // Class methods. - // ------------------------------------------------------------------------- - - static Finished read(InputStream in, CipherSuite suite) - throws IOException - { - DataInputStream din = new DataInputStream(in); - if (suite.getVersion().equals(ProtocolVersion.SSL_3)) - { - byte[] md5 = new byte[16]; - byte[] sha = new byte[20]; - din.readFully(md5); - din.readFully(sha); - return new Finished(md5, sha); - } - else - { - byte[] buf = new byte[12]; - din.readFully(buf); - return new Finished(buf); - } + buffer.getClass (); + version.getClass (); + this.buffer = buffer; + this.version = version; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) throws IOException + public int length () { - if (verifyData != null) - out.write(verifyData); - else + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) + return 12; + if (version == ProtocolVersion.SSL_3) + return 36; + throw new IllegalArgumentException ("length for this version unknown"); + } + + byte[] verifyData() + { + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) { - out.write(md5); - out.write(sha); + byte[] verify = new byte[12]; + buffer.position (0); + buffer.get (verify); + return verify; } + throw new IllegalArgumentException ("not TLSv1.0 or later"); } - byte[] getVerifyData() + byte[] md5Hash() { - return verifyData; - } - - byte[] getMD5Hash() - { - return md5; - } - - byte[] getSHAHash() - { - return sha; - } - - public String toString() - { - String nl = System.getProperty("line.separator"); - if (verifyData != null) + if (version == ProtocolVersion.SSL_3) { - return "struct {" + nl + - " verifyData = " + Util.toHexString(verifyData, ':') + ";" + nl + - "} Finished;" + nl; + byte[] md5 = new byte[16]; + buffer.position (0); + buffer.get (md5); + return md5; } - else + throw new IllegalArgumentException ("not SSLv3"); + } + + byte[] shaHash() + { + if (version == ProtocolVersion.SSL_3) { - return "struct {" + nl + - " md5Hash = " + Util.toHexString(md5, ':') + ";" + nl + - " shaHash = " + Util.toHexString(sha, ':') + ";" + nl + - "} Finished;" + nl; + 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); + } + + void setMD5Hash (final byte[] md5, final int offset) + { + if (version != ProtocolVersion.SSL_3) + throw new IllegalArgumentException ("not SSLv3"); + buffer.position (0); + buffer.put (md5, offset, 16); + } + + void setShaHash (final byte[] sha, final int offset) + { + if (version != ProtocolVersion.SSL_3) + throw new IllegalArgumentException ("not SSLv3"); + buffer.position (16); + buffer.put (sha, offset, 20); + } + + 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); + if (version.compareTo(ProtocolVersion.TLS_1) >= 0) + { + out.print (" verifyData = "); + out.print (Util.toHexString (verifyData (), ':')); + } + else if (version == ProtocolVersion.SSL_3) + { + 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 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,4 +1,4 @@ -/* Handshake.java -- SSL handshake message. +/* Handshake.java -- SSL Handshake message. Copyright (C) 2006 Free Software Foundation, Inc. This file is a part of GNU Classpath. @@ -49,6 +49,8 @@ import java.io.PrintWriter; import java.io.StringReader; import java.io.StringWriter; +import java.nio.ByteBuffer; + import java.security.PublicKey; import java.util.ArrayList; @@ -56,306 +58,219 @@ import java.util.Collections; import javax.net.ssl.SSLProtocolException; -final class Handshake implements Constructed +/** + * 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 static final buffer BUF = new buffer(); - - private final Type type; - private final Body body; + private final ByteBuffer buffer; + private final CipherSuite suite; + private final ProtocolVersion version; // Constructors. // ------------------------------------------------------------------------- - Handshake(Type type, Body body) + public Handshake (final ByteBuffer buffer) { - this.type = type; - this.body = body; + this (buffer, null, ProtocolVersion.TLS_1_1); } - // Class methods. - // ------------------------------------------------------------------------- - - static Handshake read(byte[] buffer) throws IOException + public Handshake (final ByteBuffer buffer, final CipherSuite suite, + final ProtocolVersion version) { - 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); + this.buffer = buffer; + this.suite = suite; + this.version = version; } // Instance methods. // ------------------------------------------------------------------------- - public void write(OutputStream out) + /** + * Returns the handshake type. + * + * @return The handshake type. + */ + public Type type() { - throw new UnsupportedOperationException(); + return Type.forInteger (buffer.get (0) & 0xFF); } - public int write(OutputStream out, ProtocolVersion version) - throws IOException + /** + * Returns the message length. + * + * @return The message length. + */ + public int length () { - out.write(type.getValue()); - if (body == null) + // 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) { - 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(); + 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); } - Type getType() + /** + * 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 () { - return type; + int length = length (); + return ((ByteBuffer) buffer.position (4).limit (4 + length)).slice (); } - Body getBody() + /** + * Sets the handshake body type. + * + * @param type The handshake type. + */ + public void setType (final Type type) { - return body; + 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); - String nl = System.getProperty("line.separator"); - StringBuffer buf = new StringBuffer(); + if (prefix != null) out.print (prefix); 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;"); + 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. // ------------------------------------------------------------------------- - static interface Body extends Constructed + public static interface Body extends Constructed { + int length (); + + String toString (String prefix); } - static class Type implements Enumerated + public static enum Type { - - // 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); + 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; - // Constructor. - // ----------------------------------------------------------------------- - private Type(int value) { this.value = value; @@ -364,18 +279,20 @@ final class Handshake implements Constructed // Class methods. // ----------------------------------------------------------------------- - public static Type read(InputStream in) throws IOException + /** + * 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) { - int i = in.read(); - if (i == -1) + switch (value & 0xFF) { - 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 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; @@ -385,56 +302,13 @@ final class Handshake implements Constructed case 20: return FINISHED; case 21: return CERTIFICATE_URL; case 22: return CERTIFICATE_STATUS; - default: return new Type(i); + default: throw new IllegalArgumentException ("unsupported value type " + value); } } - // 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(); - } } } 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.
    -  // -------------------------------------------------------------------------
    -
    -  static Random read(InputStream in) throws IOException
    +  public Random copy()
    +  {
    +    ByteBuffer buffer = ByteBuffer.allocate(32);
    +    buffer.put((ByteBuffer) this.buffer.duplicate().position(0));
    +    return new Random(buffer);
    +  }
    +
    +  public int length()
    +  {
    +    return RANDOM_LENGTH + 4;
    +  }
    +  
    +  public ByteBuffer buffer()
    +  {
    +    return ((ByteBuffer) buffer.duplicate().position(0).limit(length())).slice();
    +  }
    +
    +  public int gmtUnixTime ()
    +  {
    +    return buffer.getInt(0);
    +  }
    +
    +  public byte[] randomBytes()
       {
    -    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);
    +    buffer.position (4);
    +    buffer.get (buf);
    +    return buf;
       }
     
    -  // Instance methods.
    -  // -------------------------------------------------------------------------
    -
    -  public void write(OutputStream out) throws IOException
    +  public void setGmtUnixTime (final int gmtUnixTime)
       {
    -    out.write((gmtUnixTime >>> 24) & 0xFF);
    -    out.write((gmtUnixTime >>> 16) & 0xFF);
    -    out.write((gmtUnixTime >>>  8) & 0xFF);
    -    out.write(gmtUnixTime & 0xFF);
    -    out.write(randomBytes);
    +    buffer.putInt (0, gmtUnixTime);
       }
     
    -  byte[] getEncoded()
    +  public void setRandomBytes (final byte[] randomBytes)
       {
    -    ByteArrayOutputStream bout = new ByteArrayOutputStream(32);
    -    try
    -      {
    -        write(bout);
    -      }
    -    catch (IOException cantHappen)
    -      {
    -        throw new Error(cantHappen.toString());
    -      }
    -    return bout.toByteArray();
    +    setRandomBytes (randomBytes, 0);
       }
     
    -  int getTime()
    +  public void setRandomBytes (final byte[] randomBytes, final int offset)
       {
    -    return gmtUnixTime;
    +    if (randomBytes.length - offset < RANDOM_LENGTH)
    +      throw new IllegalArgumentException ("random value too short");
    +    buffer.position (4);
    +    buffer.put (randomBytes, offset, RANDOM_LENGTH);
       }
     
    -  byte[] getRandomBytes()
    -  {
    -    return randomBytes;
    -  }
    -
    -  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 index 8b7853c7f40..2bbce37fb3d 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerHello.java @@ -38,179 +38,194 @@ 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 java.nio.ByteBuffer; -import javax.net.ssl.SSLProtocolException; - -class ServerHello implements Handshake.Body +/** + * 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. // ------------------------------------------------------------------------- - private final ProtocolVersion version; - private final Random random; - private final byte[] sessionId; - private final CipherSuite suite; - private final CompressionMethod comp; - private final List extensions; + 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. // ------------------------------------------------------------------------- - ServerHello(ProtocolVersion version, Random random, - byte[] sessionId, CipherSuite suite, - CompressionMethod comp) + public ServerHello (final ByteBuffer buffer) { - this(version, random, sessionId, suite, comp, null); + this.buffer = buffer; + disableExtensions = false; } - ServerHello(ProtocolVersion version, Random random, - byte[] sessionId, CipherSuite suite, - CompressionMethod comp, List extensions) + public int length () { - this.version = version; - this.random = random; - this.sessionId = sessionId; - this.suite = suite; - this.comp = comp; - this.extensions = extensions; + 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; } - // Class methods. - // ------------------------------------------------------------------------- - - static ServerHello read(InputStream in) throws IOException + /** + * 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() { - 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); + return ProtocolVersion.getInstance (buffer.getShort (0)); } - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException + /** + * 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() { - 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); - } + ByteBuffer randomBuf = + ((ByteBuffer) buffer.duplicate ().position (RANDOM_OFFSET) + .limit (SESSID_OFFSET)).slice (); + return new Random (randomBuf); } - ProtocolVersion getVersion() + /** + * Returns the session ID. This method returns a new byte array with + * the session ID bytes. + * + * @return The session ID. + */ + public byte[] sessionId() { - return version; + int idlen = buffer.get (SESSID_OFFSET) & 0xFF; + byte[] sessionId = new byte[idlen]; + buffer.position (SESSID_OFFSET2); + buffer.get (sessionId); + return sessionId; } - Random getRandom() + /** + * 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() { - return random; + int offset = SESSID_OFFSET2 + (buffer.get(SESSID_OFFSET) & 0xFF); + return CipherSuite.forValue(buffer.getShort(offset)).resolve(); } - byte[] getSessionId() + /** + * Returns the server's chosen compression method. + * + * @return The chosen compression method. + */ + public CompressionMethod compressionMethod() { - return (byte[]) sessionId.clone(); + int offset = SESSID_OFFSET2 + (buffer.get(SESSID_OFFSET) & 0xFF) + 2; + return CompressionMethod.getInstance(buffer.get(offset) & 0xFF); } - CipherSuite getCipherSuite() + public int extensionsLength() { - return suite; + int offset = SESSID_OFFSET2 + (buffer.get (SESSID_OFFSET) & 0xFF) + 3; + if (offset + 1 >= buffer.limit()) + return 0; + return buffer.getShort(offset) & 0xFFFF; } - - CompressionMethod getCompressionMethod() + + public ExtensionList extensions () { - return comp; - } - - List getExtensions() - { - return 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); - 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;"); + 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 index 58304159300..1206ae6b28b 100644 --- a/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java +++ b/libjava/classpath/gnu/javax/net/ssl/provider/ServerKeyExchange.java @@ -38,249 +38,136 @@ 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.nio.ByteBuffer; +import java.nio.ByteOrder; -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 +/** + * 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 { - // Fields. - // ------------------------------------------------------------------------- + protected ByteBuffer buffer; + protected final CipherSuite suite; - private PublicKey publicKey; - private Signature signature; - private byte[] srpSalt; - - // Constructor. - // ------------------------------------------------------------------------- - - ServerKeyExchange(PublicKey publicKey, Signature signature) + public ServerKeyExchange(final ByteBuffer buffer, final CipherSuite suite) { - this(publicKey, signature, null); + suite.getClass(); + this.buffer = buffer.duplicate().order(ByteOrder.BIG_ENDIAN); + this.suite = suite; } - ServerKeyExchange(PublicKey publicKey, Signature signature, byte[] srpSalt) + public int length () { - this.publicKey = publicKey; - this.signature = signature; - this.srpSalt = srpSalt; + 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; } - // Class methods. - // ------------------------------------------------------------------------- - - static ServerKeyExchange read(InputStream in, CipherSuite suite, - PublicKey serverKey) - throws IOException + /** + * 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 () { - 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); + 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); } - // Instance methods. - // ------------------------------------------------------------------------- - - public void write(OutputStream out) throws IOException + /** + * Returns the digital signature made over the key exchange parameters. + * + * @return The signature. + */ + public Signature signature () { - 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; + 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() { - 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(); + return toString (null); } - private void writeBigint(OutputStream out, BigInteger bigint) - throws IOException + public String toString (final String prefix) { - byte[] b = bigint.toByteArray(); - if (b[0] == 0x00) + 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)) { - out.write((b.length - 1) >>> 8 & 0xFF); - out.write((b.length - 1) & 0xFF); - out.write(b, 1, b.length - 1); + if (prefix != null) out.print (prefix); + out.println (" parameters:"); + out.println (params ().toString (prefix != null ? prefix+" " : " ")); } - else + if (!suite.signatureAlgorithm ().equals (SignatureAlgorithm.ANONYMOUS)) { - out.write(b.length >>> 8 & 0xFF); - out.write(b.length & 0xFF); - out.write(b); + 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 () { - write(out, ProtocolVersion.TLS_1); + if (alg.equals (SignatureAlgorithm.ANONYMOUS)) + return 0; + return (buffer.getShort (0) & 0xFFFF) + 2; + } + + public ByteBuffer buffer() + { + return (ByteBuffer) buffer.duplicate().limit(length()); } - public void write(OutputStream out, ProtocolVersion version) - throws IOException + public 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); + 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; } - Object getSigValue() + public void setSignature (final byte[] signature) { - return sigValue; + setSignature (signature, 0, signature.length); } - String getSigAlg() + public void setSignature (final byte[] signature, final int offset, final int length) { - return sigAlg; + if (alg.equals (SignatureAlgorithm.ANONYMOUS)) + return; + buffer.putShort (0, (short) length); + buffer.position (2); + buffer.put (signature, offset, length); } - public String toString() + 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 (sigAlg.equals("RSA")) + if (!alg.equals (SignatureAlgorithm.ANONYMOUS)) { - out.print(Util.hexDump((byte[]) sigValue, " ")); + String subprefix = " "; + if (prefix != null) + subprefix = prefix + subprefix; + out.print (Util.hexDump (signature (), subprefix)); } - else - { - out.println(" r = " + ((BigInteger[]) sigValue)[0].toString(16) + ";"); - out.println(" s = " + ((BigInteger[]) sigValue)[1].toString(16) + ";"); - } - 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 index f7616c2c3bc..ef3c3a46784 100644 --- a/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h +++ b/libjava/classpath/include/gnu_java_net_VMPlainSocketImpl.h @@ -10,19 +10,27 @@ 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); +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 } 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 @@ -96,6 +96,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. * 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( selectedIndex > index ) + selectedIndex--; + else if( selectedIndex == index ) + selectedIndex = 0; - if( peer != null ) - ((ChoicePeer)peer).select( selectedIndex ); - } + 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 need to recursivly call repaint() on the parent here, since + // a (lightweight) parent component might have overridden repaint() + // to perform additional custom tasks. - // 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) + 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. + * Returns true when this component and all of its ancestors + * are visible, false otherwise. * - *
    -   * +------+
    -   * |      +-----+  ...will be merged
    -   * |      |     |
    -   * |      |     |
    -   * +------+     |
    -   *        +-----+
    -   *
    -   * +---------------+--+
    -   * |               |  |  ...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 ()) { + if (index < 0 || index >= ncomponents) + throw new ArrayIndexOutOfBoundsException(); + Component r = component[index]; + if (peer != null) + r.removeNotify(); - ComponentListener[] list = r.getComponentListeners(); - for (int j = 0; j < list.length; j++) - r.removeComponentListener(list[j]); - - 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(); - - if (layoutMgr != null) - layoutMgr.removeLayoutComponent(r); - r.parent = null; - if (isShowing ()) + System.arraycopy(component, index + 1, component, index, + ncomponents - index - 1); + component[--ncomponents] = null; + + if (valid) + invalidate(); + + 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]; - - if (! comp.isValid()) + ContainerPeer cPeer = null; + if (peer instanceof ContainerPeer) { - if (comp instanceof Container) + cPeer = (ContainerPeer) peer; + cPeer.beginLayout(); + } + + doLayout (); + for (int i = 0; i < ncomponents; ++i) + { + 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 @@ -96,6 +96,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; - 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 + /** + * Indicates events that are processed with lowes priority. This is normally + * all PaintEvents and LowPriorityEvents. + */ + private static final int LOW_PRIORITY = 1; + + /** + * 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; + private boolean nativeLoopRunning = false; - synchronized private void setShutdown (boolean b) + private boolean isShutdown () { - shutdown = b; - } - - synchronized 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,30 +161,66 @@ 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 @@ -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(); } - // Empty the queue so it can be reused - next_in = 0; - next_out = 0; + else + { + previous.next = null; - setShutdown(true); - dispatchThread = null; - this.notifyAll(); + // 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; + } + } } } } 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(); } @@ -319,6 +320,16 @@ public class GridBagLayout return new Point (col, row); } + /** + * 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 @@ -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 { /** @@ -59,26 +62,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) + 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) { - target = findTarget(parent, loc); - while (target == null && parent != null) + switch (id) { - 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()) - { - // Dispatch additional MOUSE_EXITED and MOUSE_ENTERED if event target - // is different from the last event target. - if (target != lastTarget) - { - 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 parent the parent component - * @param p the point - * @param child the child component + * @param c the component to check * - * @return the translated point + * @return true if the component has mouse listeners installed, + * false otherwise */ - private Point convertPointToChild(Component parent, Point p, - Component child) + private boolean isMouseListening(final Component c) { - int offX = 0; - int offY = 0; - Component comp = child; - while (comp != null && comp != parent) + // 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) { - offX += comp.getX(); - offY += comp.getY(); - comp = comp.getParent(); + 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; } - p.x -= offX; - p.y -= offY; - return p; + + } + + /** + * Redispatches the specified mouse event to the specified target with the + * specified id. + * + * @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 true if we are in the middle of a drag operation, + * false otherwise + */ + private boolean isDragging(MouseEvent ev) + { + int mods = ev.getModifiersEx(); + int id = ev.getID(); + if (id == MouseEvent.MOUSE_PRESSED || id == MouseEvent.MOUSE_RELEASED) + { + 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; + } + } + 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 index 86270234345..df8bffa1945 100644 --- a/libjava/classpath/java/awt/List.java +++ b/libjava/classpath/java/awt/List.java @@ -1,5 +1,5 @@ /* List.java -- A listbox widget - Copyright (C) 1999, 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -54,1005 +54,932 @@ import javax.accessibility.AccessibleState; import javax.accessibility.AccessibleStateSet; /** - * Class that implements a listbox widget - * - * @author Aaron M. Renn (arenn@urbanophile.com) - */ + * 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; -/** - * 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; -// Serialization constant -private static final long serialVersionUID = -3304312411574666869L; + // FIXME: Need read/writeObject -/*************************************************************************/ + /** + * @serial The items in the list. + */ + private Vector items = new Vector(); -/* - * Instance Variables - */ + /** + * @serial Indicates whether or not multiple items can be selected + * simultaneously. + */ + private boolean multipleMode; -// FIXME: Need read/writeObject + /** + * @serial The number of rows in the list. This is set on creation + * only and cannot be modified. + */ + private int rows; -/** - * @serial The items in the list. - */ -private Vector items = new Vector(); + /** + * @serial An array of the item indices that are selected. + */ + private int[] selected; -/** - * @serial Indicates whether or not multiple items can be selected - * simultaneously. - */ -private boolean multipleMode; + /** + * @serial An index value used by makeVisible() and + * getVisibleIndex. + */ + private int visibleIndex = -1; -/** - * @serial The number of rows in the list. This is set on creation - * only and cannot be modified. - */ -private int rows; + // The list of ItemListeners for this object. + private ItemListener item_listeners; -/** - * @serial An array of the item indices that are selected. - */ -private int[] selected; + // The list of ActionListeners for this object. + private ActionListener action_listeners; -/** - * @serial An index value used by makeVisible() and - * getVisibleIndex. - */ -private int visibleIndex; + /** + * 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); + } -// The list of ItemListeners for this object. -private ItemListener item_listeners; + /** + * 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); + } -// 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; + /** + * 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]; + this.multipleMode = multipleMode; + selected = new int[0]; - if (GraphicsEnvironment.isHeadless()) - throw new HeadlessException (); -} + 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(); + } -/* - * Instance Variables - */ + /** + * 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 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()]; + /** + * 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. - */ -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 + 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); -} + || (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 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 @@ -1061,12 +988,14 @@ paramString() * * @exception ClassCastException If listenerType doesn't specify a class or * interface that implements java.util.EventListener. + * + * @since 1.3 */ - public EventListener[] getListeners (Class listenerType) + 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); @@ -1075,6 +1004,8 @@ paramString() /** * Returns all action listeners registered to this object. + * + * @since 1.4 */ public ActionListener[] getActionListeners () { @@ -1083,6 +1014,8 @@ paramString() /** * Returns all action listeners registered to this object. + * + * @since 1.4 */ public ItemListener[] getItemListeners () { diff --git a/libjava/classpath/java/awt/Menu.java b/libjava/classpath/java/awt/Menu.java index f900d929574..cef04a38e1a 100644 --- a/libjava/classpath/java/awt/Menu.java +++ b/libjava/classpath/java/awt/Menu.java @@ -54,38 +54,28 @@ import javax.accessibility.AccessibleRole; 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; -/** - * 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; -// 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; -/* - * 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 Indicates whether or not this is a help menu. + */ + private boolean isHelpMenu; /* * @serial Unused in this implementation, but present in Sun's @@ -93,371 +83,316 @@ private boolean isHelpMenu; */ private int menuSerializedDataVersion = 1; -static final transient String separatorLabel = "-"; + 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() + { + } -/* - * Constructors - */ + /** + * 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 no label and that - * is not a tearoff; - * - * @exception HeadlessException If GraphicsEnvironment.isHeadless() is true. - */ -public -Menu() -{ -} + /** + * 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; -/** - * 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); -} + if (label.equals("Help")) + isHelpMenu = true; -/*************************************************************************/ + if (GraphicsEnvironment.isHeadless()) + throw new HeadlessException(); + } -/** - * 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); + /** + * Tests whether or not this menu is a tearoff. + * + * @return true if this menu is a tearoff, false + * otherwise. + */ + public boolean isTearOff() + { + return(tearOff); + } - tearOff = isTearOff; + /** + * Returns the number of items in this menu. + * + * @return The number of items in this menu. + */ + public int getItemCount() + { + return countItems(); + } - 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 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)); + } -/** - * 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); -/** - * 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); + if (peer != null) + { + item.addNotify(); + MenuPeer mp = (MenuPeer) peer; + mp.addItem(item); + } - items.addElement(item); - item.setParent(this); + return item; + } - if (peer != null) - { - item.addNotify(); - MenuPeer mp = (MenuPeer) peer; - mp.addItem(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)); + } - return item; -} + /** + * 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(); -/** - * 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); + if (index >= count) + add(item); + else + { + MenuContainer parent = item.getParent(); + if (parent != null) + parent.remove(item); - items.insertElementAt(item, index); - item.setParent(this); + items.insertElementAt(item, index); + item.setParent(this); - MenuPeer peer = (MenuPeer) getPeer(); - if (peer == null) - return; + MenuPeer peer = (MenuPeer) getPeer(); + if (peer == null) + return; - for (int i = count - 1; i >= index; i--) - peer.delItem(i); + for (int i = count - 1; i >= index; i--) + peer.delItem(i); - item.addNotify(); - peer.addItem(item); + item.addNotify(); + peer.addItem(item); - for (int i = index; i < count; i++) - peer.addItem((MenuItem) items.elementAt (i)); - } + // 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. - * - * @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()) + /** + * 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) { - MenuItem mi = (MenuItem) e.nextElement(); - mi.removeNotify(); + insert(new MenuItem(label), index); } - super.removeNotify(); -} -/*************************************************************************/ + /** + * Adds a separator bar at the current menu location. + */ + public void addSeparator() + { + add(new MenuItem(separatorLabel)); + } -/** - * Returns a debugging string for this menu. - * - * @return A debugging string for this menu. - */ -public String -paramString() -{ - return (",tearOff=" + tearOff + ",isHelpMenu=" + isHelpMenu - + super.paramString()); -} + /** + * 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 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); @@ -130,6 +134,11 @@ public abstract class Toolkit */ AWTEventListenerProxy[] awtEventListeners; + /** + * The shared peer for all lightweight components. + */ + private GLightweightPeer lightweightPeer; + /** * Default constructor for subclasses. */ @@ -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) { - case ENTER: - break; - case CHANGED: - break; - case OVER: - break; default: - break; + targetAct = DnDConstants.ACTION_NONE; + case ENTER: + case CHANGED: + case OVER: + 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 int[][] runIndices; + private float totalAdvance = -1F; + + /** + * The cached natural bounds. + */ + private Rectangle2D naturalBounds; /** * Character indices. @@ -87,67 +154,99 @@ 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) - throws NotImplementedException + public TextHitInfo getNextLeftHit(int offset) { - throw new Error ("not implemented"); + return getNextLeftHit(offset, DEFAULT_CARET_POLICY); + } + + public TextHitInfo getNextLeftHit(int offset, CaretPolicy policy) + { + 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,17 +1262,126 @@ 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 */ @@ -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) { - /** 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; + 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; - /** Child path iterator, used for corners. */ - private PathIterator corner; + 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; + } - /** This is used when rendering the corners. We re-use the arc - * for each corner. */ - private Arc2D arc = new Arc2D.Double(); + 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; + } - /** Temporary array used by getPoint. */ - private double[] temp = new double[2]; + public int getWindingRule() { + return WIND_NON_ZERO; + } - public int getWindingRule() - { - return WIND_NON_ZERO; - } + public boolean isDone() { + return step >= 8; + } - 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; - } - }; + public void next() + { + 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); - // 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); + // 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()); + 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 ()); + dst = createCompatibleDestImage(src, null); - // 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 - - 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]; - 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++) + // 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())) { - 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) - { - // bottom or right edge - Arrays.fill(tmp, 0); - src.getPixel(xx, yy, tmp); - } - 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); - } + 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(); } - } - else - { - // Bicubic - throw new UnsupportedOperationException("not implemented yet"); - } + + // 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++) + { + for (int y = 0; y < dst.getHeight(); y++) + { + dstPts[i++] = x; + dstPts[i++] = y; + } + } + 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,26 +80,36 @@ 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 }; + /** + * Vector of TileObservers (or null) + */ + Vector tileObservers; - 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}; + /** + * 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; - Vector observers; - /** * 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) + boolean premultiplied = (type == BufferedImage.TYPE_INT_ARGB_PRE || + type == BufferedImage.TYPE_4BYTE_ABGR_PRE); + + 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) - { - 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 TYPE_BYTE_BINARY: - byte[] vals = { 0, (byte) 0xff }; - cm = new IndexColorModel(8, 2, vals, vals, vals); + + 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 TYPE_BYTE_INDEXED: - String msg2 = "type not implemented yet"; - throw new UnsupportedOperationException(msg2); - // FIXME: build color-cube and create color model + + 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 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; + 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. + * well-defined conversion, an IllegalArgumentException is thrown. * - * 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. - * - * 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); } + /** + * 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) + { + if (spaces.length < 2) + throw new IllegalArgumentException("Not enough destination colorspace " + + "information"); + + // 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); + } + + /** + * 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 ICC_Profile[] getICC_Profiles() { return profiles; } - /** Return the rendering hints for this op. */ + /** + * Returns the rendering hints for this op. + * + * @return The rendering hints for this Op, or null. + */ public final RenderingHints getRenderingHints() { return hints; } - /* (non-Javadoc) - * @see java.awt.image.RasterOp#filter(java.awt.image.Raster, java.awt.image.WritableRaster) - */ - public final WritableRaster filter(Raster src, WritableRaster dest) - { - 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; - } - - /* (non-Javadoc) - * @see java.awt.image.RasterOp#createCompatibleDestRaster(java.awt.image.Raster) - */ - public WritableRaster createCompatibleDestRaster(Raster src) - { - return src.createCompatibleWritableRaster(); - } - - /** 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 index c39c4a428f9..0ead45a4ae0 100644 --- a/libjava/classpath/java/awt/image/ImageFilter.java +++ b/libjava/classpath/java/awt/image/ImageFilter.java @@ -49,180 +49,178 @@ import java.util.Hashtable; */ 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 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); - } + /** + * 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 (); - } - } + /** + * 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)"); + /** + * 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; + } - 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) + { + consumer.setDimensions(width, height); + } - /** - * 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) + { + 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()); - /** - * 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); - } + 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) - { - if (consumer != null) - consumer.setColorModel(model); - } + /** + * 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) - { - if (consumer != null) - consumer.setHints(flags); - } + /** + * 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) - { - 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 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) - { - 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) + { + 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); - } + /** + * 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 index ecfed0674f1..c777fecd901 100644 --- a/libjava/classpath/java/awt/image/RGBImageFilter.java +++ b/libjava/classpath/java/awt/image/RGBImageFilter.java @@ -46,228 +46,220 @@ package java.awt.image; */ public abstract class RGBImageFilter extends ImageFilter { - protected ColorModel origmodel; + protected ColorModel origmodel; - protected ColorModel newmodel; + 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; + /** + * 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() - { - } + /** + * 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; + /** + * 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()); + } + } - 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; - } + /** + * 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. + /** + * 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]; - @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 ); + 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 ); - } + 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; + } - 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) + { + 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); + } - /** - This functions filters a set of RGB pixels through filterRGB. + /** + * 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); + } + } + } - @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; - } - } + /** + * 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); + } + } + } - - /** - * 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); + /** + * 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); + 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 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; - } - - 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); - } - // else all color bands - filter(wsrc, wdst); + dst2.getRaster().setSamples(0, 0, src.getWidth(), src.getHeight(), + numBands, + src.getRaster().getSamples(0, 0, + src.getWidth(), + src.getHeight(), + numBands, + (int[]) null)); + } + + // 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."); - // 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); - } + // 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); + + 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); } @@ -1291,32 +1252,6 @@ public class File implements Serializable, Comparable return path.compareToIgnoreCase (other.path); } - /** - * 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 @@ -134,6 +134,16 @@ public class InputStreamReader extends Reader private char savedSurrogate; 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,38 +1218,69 @@ public class ObjectOutputStream extends OutputStream { ObjectStreamField[] fields = osc.fields; boolean oldmode = setBlockDataMode(false); - String field_name; - Class type; + try + { + 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++) { - 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 ())); + 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()); + } } - setBlockDataMode(oldmode); } @@ -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; } + /** + * 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) + { + ClassLoader l = cl.getClassLoader(); + return + ( l == null /* boot loader */ ) + || (l == ClassLoader.getSystemClassLoader() /* application loader */); + } + + static Hashtable methodCache = new Hashtable(); + + static final Class[] readObjectSignature = { ObjectInputStream.class }; + static final Class[] writeObjectSignature = { ObjectOutputStream.class }; + private void cacheMethods() { - Method[] methods = forClass().getDeclaredMethods(); + 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); - readObjectMethod = findMethod(methods, "readObject", - new Class[] { ObjectInputStream.class }, - Void.TYPE, true); - writeObjectMethod = findMethod(methods, "writeObject", - new Class[] { ObjectOutputStream.class }, - Void.TYPE, true); - - // 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()); + // 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) { + long result = 0; + Long cache = (Long) uidCache.get(cl); + if (cache != null) + result = cache.longValue(); + else + { + 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)); + } + 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) - return suid.getLong(null); - } - catch (NoSuchFieldException ignore) - { + // 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 + 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 { - 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; + 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"); } - catch (IOException ioe) + + 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()) { - throw new RuntimeException(ioe); + 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(); + 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. @@ -236,14 +236,6 @@ public final class Boolean implements Serializable, Comparable return value == other.value ? 0 : (value ? 1 : -1); } - /** - * 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. @@ -1978,12 +1970,79 @@ 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]), @@ -2527,71 +2586,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 @@ -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 @@ -4197,23 +4194,6 @@ public final class Character implements Serializable, Comparable return value - anotherCharacter.value; } - /** - * 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 @@ -4221,7 +4201,7 @@ public final class Character implements Serializable, Comparable * * @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) @@ -574,22 +575,6 @@ public final class Double extends Number implements Comparable return compare(value, d.value); } - /** - * 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, 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,34 +164,13 @@ 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(); return ordinal - e.ordinal; } - /** - * 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) @@ -583,22 +584,6 @@ public final class Float extends Number implements Comparable return compare(value, f.value); } - /** - * 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, 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. @@ -525,22 +526,6 @@ public final class Integer extends Number implements Comparable return value > i.value ? 1 : -1; } - /** - * 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 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) @@ -516,22 +517,6 @@ public final class Long extends Number implements Comparable return value > l.value ? 1 : -1; } - /** - * 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 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]; } } @@ -370,22 +371,6 @@ public final class Short extends Number implements Comparable return value - s.value; } - /** - * 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 @@ -632,6 +632,94 @@ public final strictfp class StrictMath return y > 0 ? PI - (z - PI_L) : z - PI_L - PI; } + /** + * 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; @@ -728,14 +813,83 @@ public final strictfp class StrictMath return Double.POSITIVE_INFINITY; } + /** + * 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(); /** @@ -918,22 +922,6 @@ public final class String implements Serializable, Comparable, CharSequence return count - anotherString.count; } - /** - * 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 @@ -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); } /** @@ -390,46 +395,6 @@ public final class StringBuffer implements Serializable, CharSequence return this; } - /** - * 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 @@ -469,6 +434,25 @@ public final class StringBuffer implements Serializable, CharSequence return this; } + /** + * 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 @@ -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; @@ -97,6 +105,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. */ @@ -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. @@ -492,6 +505,60 @@ public final class System return VMSystem.getenv(name); } + /** + *

    + * 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. @@ -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 @@ -74,6 +131,60 @@ import javax.management.NotCompliantMBeanException; 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. */ @@ -104,6 +215,11 @@ public class ManagementFactory */ private static CompilationMXBean compilationBean; + /** + * The platform server. + */ + private static MBeanServer platformServer; + /** * Private constructor to prevent instance creation. */ @@ -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 byte_len = 0; - byte[] bytes = new byte[len]; - boolean negative = false; - for (int i = 0; i < len; i++) + + int i, digit; + boolean negative; + byte[] bytes; + char ch = s.charAt(0); + if (ch == '-') { - 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; - } + negative = true; + i = 1; + bytes = new byte[len - 1]; + } + else + { + negative = false; + i = 0; + bytes = new byte[len]; + } + int byte_len = 0; + for ( ; i < len; i++) + { + 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. @@ -65,12 +91,26 @@ public final class MathContext implements Serializable * @throws IllegalArgumentException if precision is < 0. */ 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); } /** @@ -121,6 +163,18 @@ public final class MathContext implements Serializable return precision; } + /** + * 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, @@ -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) + 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(1, 1); - this.inetAddresses.add(address); + return new NetworkInterface(new VMNetworkInterface()); } - - 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 * @@ -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) + finally { - close(); - throw exception; - } - catch (RuntimeException exception) - { - close(); - throw exception; - } - catch (Error error) - { - 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. @@ -82,13 +82,6 @@ public class Socket // package-private because ServerSocket.implAccept() needs to access it. 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); } /** @@ -376,6 +379,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; @@ -223,6 +229,17 @@ public abstract class MessageDigest extends MessageDigestSpi engineUpdate(input, 0, input.length); } + /** + * 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. * 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 @@ -97,6 +99,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 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; /** @@ -130,6 +131,24 @@ public abstract class SignatureSpi protected abstract void engineUpdate(byte[] b, int off, int len) 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. @@ -111,21 +111,6 @@ public final class CollationKey implements Comparable return key.length - ck.key.length; } - /** - * 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 index f64249b6755..529e571331f 100644 --- a/libjava/classpath/java/text/DecimalFormat.java +++ b/libjava/classpath/java/text/DecimalFormat.java @@ -35,387 +35,157 @@ this exception to your version of the 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 gnu.java.text.AttributedFormatBuffer; -import gnu.java.text.FormatBuffer; -import gnu.java.text.FormatCharacterIterator; -import gnu.java.text.StringFormatBuffer; +import java.math.BigDecimal; +import java.math.BigInteger; -import java.io.IOException; -import java.io.ObjectInputStream; +import java.util.ArrayList; import java.util.Currency; -import java.util.HashMap; 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 + * + * 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 { - // 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(); + /** 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; - 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; - } - + /** 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 () + public DecimalFormat() { this ("#,##0.###"); } - + /** * Constructs a DecimalFormat which uses the given * pattern and the default symbols for formatting and parsing. @@ -424,9 +194,9 @@ public class DecimalFormat extends NumberFormat * @throws NullPointerException if any argument is null. * @throws IllegalArgumentException if the pattern is invalid. */ - public DecimalFormat (String pattern) + public DecimalFormat(String pattern) { - this (pattern, new DecimalFormatSymbols ()); + this (pattern, new DecimalFormatSymbols()); } /** @@ -442,14 +212,38 @@ public class DecimalFormat extends NumberFormat public DecimalFormat(String pattern, DecimalFormatSymbols symbols) { this.symbols = (DecimalFormatSymbols) symbols.clone(); - applyPattern(pattern); + 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); } - private boolean equals(String s1, String s2) + /** + * 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) { - if (s1 == null || s2 == null) - return s1 == s2; - return s1.equals(s2); + applyPatternWithSymbols(pattern, nonLocalizedSymbols); + } + + public Object clone() + { + DecimalFormat c = (DecimalFormat) super.clone(); + c.symbols = (DecimalFormatSymbols) symbols.clone(); + return c; } /** @@ -471,8 +265,9 @@ public class DecimalFormat extends NumberFormat return false; DecimalFormat dup = (DecimalFormat) obj; return (decimalSeparatorAlwaysShown == dup.decimalSeparatorAlwaysShown - && groupingUsed == dup.groupingUsed - && groupingSize == dup.groupingSize + && groupingUsed == dup.groupingUsed + && groupingSeparatorInPattern == dup.groupingSeparatorInPattern + && groupingSize == dup.groupingSize && multiplier == dup.multiplier && useExponentialNotation == dup.useExponentialNotation && minExponentDigits == dup.minExponentDigits @@ -480,6 +275,14 @@ public class DecimalFormat extends NumberFormat && 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) @@ -487,306 +290,163 @@ public class DecimalFormat extends NumberFormat && symbols.equals(dup.symbols)); } - private void formatInternal (double number, FormatBuffer dest, - FieldPosition fieldPos) + /** + * Returns a hash code for this object. + * + * @return A hash code. + */ + public int hashCode() { - // A very special case. + 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)) { - 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; + // 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); + } } - - boolean is_neg = number < 0; - if (is_neg) + else if (Double.isInfinite(number)) { - 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; + // 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 { - dest.append(substituteCurrency(positivePrefix, number), - positivePrefixRanges, positivePrefixAttrs); + // get the number as a BigDecimal + BigDecimal bigDecimal = new BigDecimal(String.valueOf(number)); + formatInternal(bigDecimal, false, dest, fieldPos); } - 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; } + /** + * 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 @@ -799,7 +459,7 @@ public class DecimalFormat extends NumberFormat { return symbols.getCurrency(); } - + /** * Returns a copy of the symbols used by this instance. * @@ -809,351 +469,326 @@ public class DecimalFormat extends NumberFormat { return (DecimalFormatSymbols) symbols.clone(); } - - public int getGroupingSize () + + /** + * 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; } - public int getMultiplier () + /** + * Gets the multiplier used in percent and similar formats. + * + * @return The multiplier used in percent and similar formats. + */ + public int getMultiplier() { return multiplier; } - - public String getNegativePrefix () + + /** + * Gets the negative prefix. + * + * @return The negative prefix. + */ + public String getNegativePrefix() { return negativePrefix; } - public String getNegativeSuffix () + /** + * Gets the negative suffix. + * + * @return The negative suffix. + */ + public String getNegativeSuffix() { return negativeSuffix; } - - public String getPositivePrefix () + + /** + * Gets the positive prefix. + * + * @return The positive prefix. + */ + public String getPositivePrefix() { return positivePrefix; } - - public String getPositiveSuffix () + + /** + * Gets the positive suffix. + * + * @return The positive suffix. + */ + 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 () + + public boolean isDecimalSeparatorAlwaysShown() { return decimalSeparatorAlwaysShown; } - - public Number parse (String str, ParsePosition pos) + + /** + * Define if parse(java.lang.String, java.text.ParsePosition) + * should return a {@link BigDecimal} or not. + * + * @param newValue + */ + public void setParseBigDecimal(boolean newValue) { - /* - * 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) + 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. We - // check this again later. - if (np.length() > positivePrefix.length()) - { - is_neg = true; - index += np.length(); - } - else - index += positivePrefix.length(); + // 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 (got_neg) + else if (isNegative) { - is_neg = true; - index += np.length(); + start += _negativePrefix.length(); + isPositive = false; + } + else if (isPositive) + { + start += positivePrefix.length(); + isNegative = false; } - else if (got_pos) - index += positivePrefix.length(); else { - pos.setErrorIndex (index); - return null; + pos.setErrorIndex(start); + 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; + + // 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) - last += minExponentDigits + 1; + stop += minExponentDigits + 1; + + boolean inExponent = false; - 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) + // correct the size of the end parsing flag + int len = str.length(); + if (len < stop) stop = len; + + int i = start; + while (i < stop) { - 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; + 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; + } } - if (index == start_index) + // 2nd special case: infinity + // XXX: need to be tested + if (str.contains(symbols.getInfinity())) { - // Didn't see any digits. - pos.setErrorIndex(index); - return null; + 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; } - // 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) + // 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) { - if (! got_neg_suf) - { - pos.setErrorIndex(index); - return null; - } + pos.setErrorIndex(i); + return null; } - else if (got_pos && got_neg && got_neg_suf) + else if (isNegativeSuffix && + !positiveEqualsNegative && + (negativeLen > positiveLen)) { - is_neg = true; + isNegative = true; } - else if (got_pos != got_pos_suf && got_neg != got_neg_suf) + else if (!isPositiveSuffix) { - pos.setErrorIndex(index); - return null; + pos.setErrorIndex(i); + return null; } - else if (! got_pos_suf) + + 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 { - pos.setErrorIndex(index); - return null; + BigDecimal integer + = bigDecimal.setScale(0, BigDecimal.ROUND_UNNECESSARY); + return new Long(integer.longValue()); } - - 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) + catch (ArithmeticException e) { - 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; - } - } + return new Double(bigDecimal.doubleValue()); } - 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. + * + * @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. @@ -1164,274 +799,1442 @@ public class DecimalFormat extends NumberFormat { symbols = (DecimalFormatSymbols) newSymbols.clone(); } - - public void setDecimalSeparatorAlwaysShown (boolean newValue) + + /** + * 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; } - - public void setGroupingSize (int groupSize) + + /** + * 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; } - - public void setMaximumFractionDigits (int newValue) + + /** + * 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) { - super.setMaximumFractionDigits(Math.min(newValue, 340)); + newValue = (newValue > 0) ? newValue : 0; + super.setMaximumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } - - public void setMaximumIntegerDigits (int newValue) + + /** + * 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) { - super.setMaximumIntegerDigits(Math.min(newValue, 309)); + newValue = (newValue > 0) ? newValue : 0; + super.setMinimumIntegerDigits(Math.min(newValue, DEFAULT_INTEGER_DIGITS)); } - - public void setMinimumFractionDigits (int newValue) + + /** + * 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) { - super.setMinimumFractionDigits(Math.min(newValue, 340)); + newValue = (newValue > 0) ? newValue : 0; + super.setMaximumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } - - public void setMinimumIntegerDigits (int newValue) + + /** + * 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) { - super.setMinimumIntegerDigits(Math.min(newValue, 309)); + newValue = (newValue > 0) ? newValue : 0; + super.setMinimumFractionDigits(Math.min(newValue, DEFAULT_FRACTION_DIGITS)); } - - public void setMultiplier (int newValue) + + /** + * 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; } - - public void setNegativePrefix (String newValue) + + /** + * Sets the negative prefix. + * + * @param newValue The new negative prefix. + */ + public void setNegativePrefix(String newValue) { negativePrefix = newValue; } - public void setNegativeSuffix (String newValue) + /** + * Sets the negative suffix. + * + * @param newValue The new negative suffix. + */ + public void setNegativeSuffix(String newValue) { negativeSuffix = newValue; } - - public void setPositivePrefix (String newValue) + + /** + * Sets the positive prefix. + * + * @param newValue The new positive prefix. + */ + public void setPositivePrefix(String newValue) { positivePrefix = newValue; } - - public void setPositiveSuffix (String newValue) + + /** + * Sets the new positive suffix. + * + * @param newValue The new positive suffix. + */ + 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. + * 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() */ - private String substituteCurrency(String string, double number) + public String toLocalizedPattern() { - 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(); + 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 E next() + { + if (position == size) + throw new NoSuchElementException(); + position++; + return i.next(); + } - 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. - }; + /** + * 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(); + 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. - */ + /** + * 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) { @@ -1195,6 +1219,31 @@ public abstract class Calendar implements Serializable, Cloneable return max; } + /** + * 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. */ 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; } @@ -108,13 +110,27 @@ 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; @@ -262,13 +278,27 @@ 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; @@ -440,13 +470,27 @@ 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,14 +1186,42 @@ 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 @@ -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 @@ -353,24 +353,6 @@ public class Date return (time < when.time) ? -1 : (time == when.time) ? 0 : 1; } - /** - * 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 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. @@ -142,6 +142,15 @@ public final class Formatter private static final String lineSeparator = 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,12 +192,188 @@ 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} @@ -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; + } + + /** + * 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)super.next()).value; + 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() + { + 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,12 +541,46 @@ 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 @@ -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; @@ -628,9 +675,32 @@ public class IdentityHashMap extends AbstractMap return values; } + /** + * 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,21 +692,65 @@ 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. * @@ -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 @@ -90,6 +90,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. + * 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 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(""); + 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; - } - 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); + return (ResourceBundle) obj; - // Try the default locale if neccessary. - if (bundle == null && !locale.equals(defaultLocale)) - bundle = tryBundle(baseName, defaultLocale, classLoader, true); + 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(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; - } + BundleKey key = new BundleKey(defaultLocale, baseName, locale, classLoader); + if (bundle == null) + { + // 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, ""); } - - 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; @@ -121,17 +121,6 @@ public final class UUID return (int)((leastSigBits & 0x3FFF000000000000L) >> 48); } - /** - * 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(Object val) - { - return compareTo((UUID)val); - } - /** * Compare this UUID to another. * The comparison is performed as between two 128-bit integers. 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) @@ -800,100 +806,6 @@ public class JarFile extends ZipFile return verified > 0; } - /** - * 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. */ 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,7 +241,17 @@ 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(); } @@ -249,7 +259,17 @@ public class Deflater /** * 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,7 +246,18 @@ 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,7 +266,18 @@ 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); + out.write(cipher.doFinal()); + out.flush(); + out.close(); } - catch (javax.crypto.IllegalBlockSizeException ibse) + catch (Exception cause) { - throw new IOException(ibse.toString()); + IOException ioex = new IOException(String.valueOf(cause)); + ioex.initCause(cause); + throw ioex; } - catch (javax.crypto.BadPaddingException bpe) - { - throw new IOException(bpe.toString()); - } - 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. * @@ -397,6 +406,18 @@ public class Mac implements Cloneable macSpi.engineUpdate(input, offset, length); } + /** + * 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. * 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; @@ -107,6 +108,20 @@ public class HandshakeCompletedEvent extends java.util.EventObject return null; } + /** + * 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. * @@ -128,6 +143,22 @@ public class HandshakeCompletedEvent extends java.util.EventObject return null; } + /** + * 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. * 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. * @@ -86,6 +101,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. @@ -114,6 +151,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. * @@ -151,6 +209,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. * 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,15 +288,28 @@ 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,96 +1293,56 @@ 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. * @@ -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,13 +1834,50 @@ 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; } @@ -2010,6 +2018,39 @@ public abstract class JComponent extends Container implements Serializable return obscured; } + /** + * 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 @@ -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; + } } /** @@ -2861,57 +3079,6 @@ public abstract class JComponent extends Container implements Serializable repaint(); } - /** - * 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 @@ -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; @@ -481,6 +486,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 - 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) - { - // 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; - } - else - { - // no next item, no advance possible - return 0; - } - } + // Scrolling down. + Rectangle bounds = getCellBounds(row, row); + if (bounds != null) + unit = bounds.height - (visibleRect.y - bounds.y); 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 = 0; } else { - // 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) + // 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 top of the current cell, so we - // are being asked to scroll to the top of the previous one - if (curIdx > 0) - { - // there *is* a previous 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 previous item, no advance possible - return 0; - } + unit = prevR.height; } else + unit = visibleRect.y - bounds.y; + } + } + else if (orientation == SwingConstants.HORIZONTAL && getLayoutOrientation() != VERTICAL) + { + // Horizontal scrolling. + int i = locationToIndex(visibleRect.getLocation()); + if (i != -1) + { + Rectangle b = getCellBounds(i, i); + if (b != null) { - // 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; - } + if (b.x != visibleRect.x) + { + if (direction < 0) + unit = Math.abs(b.x - visibleRect.x); + else + unit = b.width + b.x - visibleRect.x; + } + else + unit = b.width; + } } } - // 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,10 +126,19 @@ 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. */ @@ -99,7 +146,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement { 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); + } } /** @@ -341,63 +398,6 @@ public class JMenu extends JMenuItem implements Accessible, MenuElement return super.isSelected(); } - /** - * 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 - if (isTopLevelMenu()) - return new Point(0, this.getHeight()); + // The menu's screen location and size. + Point screenLoc = getLocationOnScreen(); + Dimension size = getSize(); - // if submenu - return new Point(this.getWidth(), 0); + // 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()) + { + // 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; @@ -76,13 +75,17 @@ public class JMenuItem extends AbstractButton implements Accessible, /** Combination of keyboard keys that can be used to activate this menu item */ 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()); } /** @@ -595,16 +599,31 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible * @param value The new value for the property that was changed.. */ 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) @@ -71,6 +80,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. */ @@ -196,19 +243,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 + * @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 */ - void commitBuffer(Component comp, Rectangle area) + void commitBuffer(Component comp, int x, int y, int w, int h) { - // 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) + Component root = comp; + while (root != null + && ! (root instanceof Window || root instanceof Applet)) { - // 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 - */ - private void blitBuffer(Component root, Rectangle rootRect) - { - if (! root.isShowing()) - return; - - // Find the Window from which we use the backbuffer. - Component bufferRoot = root; - Rectangle bufferRect = rootRect.getBounds(); - if (!(bufferRoot instanceof Window)) - { - 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) + boolean ltr = true; + if (c != null && ! c.getComponentOrientation().isLeftToRight()) + ltr = false; + + switch (horizontalTextPosition) { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalTextPosition = RIGHT; - else - horizontalTextPosition = LEFT; - } - else if (horizontalTextPosition == TRAILING) - { - 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. + switch (horizontalAlignment) + { + case LEADING: + horizontalAlignment = ltr ? LEFT : RIGHT; + break; + case TRAILING: + horizontalAlignment = ltr ? RIGHT : LEFT; + break; + default: + // Nothing to do in the other cases. + } - if (horizontalAlignment == LEADING) - { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalAlignment = RIGHT; - else - horizontalAlignment = LEFT; - } - else if (horizontalAlignment == TRAILING) - { - if (c.getComponentOrientation() == ComponentOrientation.RIGHT_TO_LEFT) - horizontalAlignment = LEFT; - else - horizontalAlignment = RIGHT; - } - - 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.height += fm.getHeight(); - fromIndex = text.indexOf('\n', fromIndex) + 1; + textR.width = (int) html.getPreferredSpan(View.X_AXIS); + textR.width = Math.min(availableWidth, textR.width); + textR.height = (int) html.getPreferredSpan(View.Y_AXIS); + } + else + { + 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) - { - case LEFT: - textR.x = 0; - iconR.x = textR.width + textIconGap; - break; - case RIGHT: - iconR.x = 0; - textR.x = iconR.width + textIconGap; - break; - case CENTER: - int centerLine = Math.max(textR.width, iconR.width) / 2; - textR.x = centerLine - textR.width/2; - iconR.x = centerLine - iconR.width/2; - break; - } - switch (verticalTextPosition) { case TOP: - textR.y = 0; - iconR.y = (horizontalTextPosition == CENTER - ? textR.height + textIconGap : 0); + textR.y = horizontalTextPosition == CENTER ? + - textR.height - textIconGap : 0; break; case BOTTOM: - iconR.y = 0; - textR.y = (horizontalTextPosition == CENTER - ? iconR.height + textIconGap - : Math.max(iconR.height - textR.height, 0)); + textR.y = horizontalTextPosition == CENTER ? + iconR.height + textIconGap : iconR.height - textR.height; 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.y = iconR.height / 2 - textR.height / 2; break; } + + switch (horizontalTextPosition) + { + case LEFT: + textR.x = -(textR.width + textIconGap); + break; + case RIGHT: + textR.x = iconR.width + textIconGap; + break; + case CENTER: + 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; + // 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; - return insideBorder.isBorderOpaque() - && outsideBorder.isBorderOpaque(); + // 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,12 +58,46 @@ 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. */ 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,11 +316,77 @@ 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; + } + /** * Calculate the preferred size of this component, by delegating to * {@link BasicGraphicsUtils#getPreferredButtonSize}. @@ -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(); + // 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; - /* 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. - */ 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)); } /** @@ -150,6 +152,14 @@ public class BasicHTML view = v; } + /** + * 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. * @@ -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; } @@ -952,47 +948,6 @@ public class BasicMenuItemUI extends MenuItemUI paint(g, c); } - /** - * 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 @@ -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(); } } @@ -1274,6 +1229,33 @@ public class BasicMenuItemUI extends MenuItemUI return accelText; } + /** + * 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 i the component for which to initialize the rectangles + */ + private void resetRectangles(JMenuItem i) + { + // 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); + 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. @@ -1283,24 +1265,6 @@ public class BasicMenuItemUI extends MenuItemUI */ private void layoutMenuItem(JMenuItem m, String accelText) { - 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; - // 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(); + // 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); + } + } + } - manager.setSelectedPath(getPath()); + // 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); + } + } - JMenuBar mb = (JMenuBar) menu.getParent(); - - // set selectedIndex of the selectionModel of a menuBar - mb.getSelectionModel().setSelectedIndex(mb.getComponentIndex(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(); + 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()), - b.getText(), - i, - b.getVerticalAlignment(), - b.getHorizontalAlignment(), - b.getVerticalTextPosition(), - b.getHorizontalTextPosition(), - viewRect, iconRect, textRect, - defaultTextIconGap + defaultTextShiftOffset); + 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()); - contentRect = textRect.union(iconRect); - - return new Dimension(insets.left - + contentRect.width - + insets.right + b.getHorizontalAlignment(), - insets.top - + contentRect.height - + insets.bottom); + 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) + 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; - paintHorizontalLabel(g, tmpKey.intValue(), label); - } - } - else - { - 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; - 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; /** @@ -71,6 +74,207 @@ import javax.swing.border.Border; 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. @@ -160,6 +364,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. * @@ -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(); + if (leftButton != null) + leftButton.addActionListener(new OneTouchAction()); + rightButton = createRightOneTouchButton(); - add(leftButton); - add(rightButton); + if (rightButton != null) + rightButton.addActionListener(new OneTouchAction()); - leftButton.addMouseListener(mouseHandler); - rightButton.addMouseListener(mouseHandler); - - // 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; @@ -106,6 +107,13 @@ 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 @@ -113,7 +121,21 @@ public class BasicSplitPaneUI extends SplitPaneUI */ 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. + * Creates a new instance. */ - protected int getAvailableSize(Dimension containerSize, Insets insets) + public BasicVerticalLayoutManager() { - 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. - */ - public Dimension minimumLayoutSize(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].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--; + // 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; + // 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; + 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; + } - 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,82 +957,50 @@ 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) + end = rects[last].x + rects[last].width; + prevLength = (int) (maxTabWidth * weight); + } + else + { + 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++) { - 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; + 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 - { - for (int i = 1; i < runCount; i++) + else if (currentRun == runCount - 1) + adjust = false; + if (currentRun - 1 > 0) + currentRun -= 1; + 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++) - { - rects[j].y = currY; - currY += rects[j].height; - } + // 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,117 +535,74 @@ 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); - } - } - - /** - * 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 - */ - 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()); + return null; } /** - * Notification about a document insert event. - * - * @param ev the DocumentEvent describing the insertion + * Overridden to forward to the view. */ - public void insertUpdate(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.insertUpdate(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 removal event. - * - * @param ev the DocumentEvent describing the removal + * Overridden to forward to the real view. */ - public void removeUpdate(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.removeUpdate(ev, getVisibleEditorRect(), - rootView.getViewFactory()); + // The RI returns 10 in the degenerate case. + float span = 10; + if (view != null) + span = view.getMinimumSpan(axis); + return span; + } + + /** + * Overridden to return Integer.MAX_VALUE. + */ + public float getMaximumSpan(int axis) + { + // 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 combined event handler for text components. + * + * This is package private to avoid accessor methods. + */ + Handler handler; /** * The root view. + * + * This is package private to avoid accessor methods. */ - RootView rootView = new RootView(); + RootView rootView; /** * The text component that we handle. */ JTextComponent textComponent; - /** - * Receives notification when the model changes. - */ - private PropertyChangeHandler updateHandler = new PropertyChangeHandler(); - - /** The DocumentEvent handler. */ - DocumentHandler documentHandler = new DocumentHandler(); - /** * 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) { @@ -637,65 +751,19 @@ 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; } /** @@ -1272,6 +1460,11 @@ public abstract class BasicTextUI extends TextUI return null; } + /** + * A cached Insets instance to be reused below. + */ + private Insets cachedInsets; + /** * Returns 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,12 +61,39 @@ 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; /** The tooltip's text */ private String text; + /** + * Handles property changes. + */ + private PropertyChangeListener propertyChangeHandler; + /** * Creates a new BasicToolTipUI object. */ @@ -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 @@ -274,13 +273,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. */ @@ -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]); + 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]); + 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; - } + Component comp = editingComponent; + TreePath p = editingPath; + editingComponent = null; + editingPath = null; + if (messageStop) + cellEditor.stopCellEditing(); + else if (messageCancel) + cellEditor.cancelCellEditing(); - if (messageCancel) - { - getCellEditor().cancelCellEditing(); - stopEditingInCompleteEditing = true; - } + tree.remove(comp); - if (messageTree) - { - TreeCellEditor editor = getCellEditor(); - if (editor != null) + if (editorHasDifferentSize) { - Object value = editor.getCellEditorValue(); - treeModel.valueForPathChanged(tree.getLeadSelectionPath(), value); + 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) + { + Object value = cellEditor.getCellEditorValue(); + treeModel.valueForPathChanged(p, value); } } } @@ -1772,46 +1813,104 @@ 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); + 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); - // Extend the right boundary till the tree width. - bounds.width = tree.getWidth() - bounds.x; + Rectangle bounds = getPathBounds(tree, path); - editingPath = path; - editingRow = tree.getRowForPath(editingPath); + Dimension size = editingComponent.getPreferredSize(); + int rowHeight = getRowHeight(); + if (size.height != bounds.height && rowHeight > 0) + size.height = rowHeight; - Object value = editingPath.getLastPathComponent(); + 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; - stopEditingInCompleteEditing = false; - boolean expanded = tree.isExpanded(editingPath); - isEditing = true; - editingComponent = ed.getTreeCellEditorComponent(tree, value, true, - expanded, - isLeaf(editingRow), - editingRow); + if (ed.shouldSelectCell(event)) + { + stopEditingInCompleteEditing = false; + tree.setSelectionRow(editingRow); + stopEditingInCompleteEditing = true; + } - // Remove all previous components (if still present). Only one - // container with the editing component inside is allowed in the tree. - tree.removeAll(); + 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); + + } + } - // 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(); - - 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) { - 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; + // 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) + { + size.x = getRowX(row, depth); + // 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(); @@ -3807,25 +3925,6 @@ public class BasicTreeUI return ! isLeaf && hasControlIcons(); } - /** - * 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 * 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 = @@ -76,6 +75,40 @@ public class DefaultMetalTheme extends MetalTheme private static final FontUIResource WINDOW_TITLE_FONT = 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. */ @@ -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,56 +65,26 @@ 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; - /** - * Creates a new instance. - */ - public MetalButtonUI() - { - super(); - focusColor = UIManager.getColor(getPropertyPrefix() + "focus"); - selectColor = UIManager.getColor(getPropertyPrefix() + "select"); - disabledTextColor = UIManager.getColor(getPropertyPrefix() + "disabledText"); - } - - /** - * Returns the color for the focus border. - * - * @return the color for the focus border - */ - protected Color getFocusColor() - { - return focusColor; - } - - /** - * Returns the color that indicates a selected button. - * - * @return the color that indicates a selected button - */ - protected Color getSelectColor() - { - return selectColor; - } - - /** - * Returns the color for the text label of disabled buttons. - * - * @return the color for the text label of disabled buttons - */ - protected Color getDisabledTextColor() - { - return disabledTextColor; - } - /** * Returns a UI delegate for the specified component. * @@ -125,7 +94,51 @@ public class MetalButtonUI */ public static ComponentUI createUI(JComponent c) { - return new MetalButtonUI(); + if (sharedUI == null) + sharedUI = new MetalButtonUI(); + return sharedUI; + } + + /** + * Creates a new instance. + */ + public MetalButtonUI() + { + super(); + } + + /** + * Returns the color for the focus border. + * + * @return the color for the focus border + */ + protected Color getFocusColor() + { + focusColor = UIManager.getColor(getPropertyPrefix() + "focus"); + return focusColor; + } + + /** + * Returns the color that indicates a selected button. + * + * @return the color that indicates a selected button + */ + protected Color getSelectColor() + { + selectColor = UIManager.getColor(getPropertyPrefix() + "select"); + return selectColor; + } + + /** + * Returns the color for the text label of disabled buttons. + * + * @return the color for the text label of disabled buttons + */ + protected Color getDisabledTextColor() + { + disabledTextColor = UIManager.getColor(getPropertyPrefix() + + "disabledText"); + return disabledTextColor; } /** @@ -137,32 +150,19 @@ 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 + + protected JButton createLeftOneTouchButton() { - /** The right button. */ - BasicArrowButton rb; - - /** The left button. */ - BasicArrowButton lb; - - /** - * Creates a new DividerLayout object. - */ - public MetalDividerLayout() - { - // Nothing to do here - } + 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 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); - } - - /** - * 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; @@ -55,6 +56,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. */ @@ -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; @@ -104,6 +108,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. */ @@ -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); + UndoableEdit undo = content.insertString(offset, text); + if (undo != null) + event.addEdit(undo); - insertUpdate(event, attributes); - - 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(); + } + } + } + } + + /** + * Updates the bidi element structure. + * + * @param ev the document event for the change + */ + private void updateBidi(DefaultDocumentEvent ev) + { + // 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) + { + 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++) + { + 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) + { + 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)); + } + } + } + else + { + 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; + } + } + } + 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 void readLock() + public final synchronized void readLock() { - if (currentWriter != null && currentWriter.equals(Thread.currentThread())) - return; - synchronized (documentCV) + try { - while (currentWriter != null || numWritersWaiting > 0) + while (currentWriter != null) { - try - { - documentCV.wait(); - } - catch (InterruptedException ie) - { - throw new Error("interrupted trying to get a readLock"); - } + if (currentWriter == Thread.currentThread()) + return; + wait(); } - numReaders++; + 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 + if (Thread.currentThread() == currentWriter) { - documentCV.wait(); - } - catch (InterruptedException ie) - { - 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. @@ -1704,6 +2100,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; @@ -91,11 +92,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 @@ -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,55 +228,48 @@ public class BoxView */ public void replace(int offset, int length, View[] views) { - int numViews = 0; - if (views != null) - numViews = views.length; - - // 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; - // Actually perform the replace. super.replace(offset, length, views); - // Invalidate layout information. - layoutValid[X_AXIS] = false; - requirementsValid[X_AXIS] = false; - layoutValid[Y_AXIS] = false; - requirementsValid[Y_AXIS] = false; + // Resize and copy data for cache arrays. + 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; } + /** + * 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) + + { + 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; - SizeRequirements res = sr; - if (res == null) - res = new SizeRequirements(); - - 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++) + // 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++) { - 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); - } - 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; + View v = getView(i); + float align = v.getAlignment(axis); + int span = (int) v.getPreferredSpan(axis); + int ascent = (int) (align * span); + int descent = span - ascent; - res.alignment = align; - res.maximum = maxSize; - res.preferred = prefSize; - res.minimum = minSize; - return res; + 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); + } + } + + // 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; + + if (sr.alignment == 0) + { + // Nothing above the baseline, use the descent. + sr.minimum = totalDescentMin; + sr.maximum = totalDescentMax; + } + 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(); + layoutAxis(X_AXIS, width); + layoutAxis(Y_AXIS, height); + } - // 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]) + private void layoutAxis(int axis, int s) + { + if (span[axis] != s) + layoutValid[axis] = false; + if (! layoutValid[axis]) { - layoutValid[minorAxis] = false; - span[minorAxis] = newSpan[minorAxis]; - layoutMinorAxis(span[minorAxis], minorAxis, offsets[minorAxis], - spans[minorAxis]); + 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[minorAxis] = true; } - - - // Update major axis as appropriate. - if ((! isLayoutValid(myAxis)) || newSpan[myAxis] != span[myAxis]) - { - layoutValid[myAxis] = false; - span[myAxis] = newSpan[myAxis]; - layoutMajorAxis(span[myAxis], myAxis, offsets[myAxis], - spans[myAxis]); - - // 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[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); } @@ -989,32 +1087,6 @@ public class BoxView return super.flipEastAndWestAtEnds(position, bias); } - /** - * 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 @@ -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; /** @@ -61,11 +61,161 @@ import javax.swing.SwingUtilities; 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 + if (t != null) { - int offs = Utilities.getRowEnd(t, c.getDot()); - c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + Caret c = t.getCaret(); + try + { + int offs = Utilities.getRowEnd(t, c.getDot()); + c.setMagicCaretPosition(t.modelToView(offs).getLocation()); + } + catch(BadLocationException ble) + { + // Can't happen. + } } - 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 + if (t != null) { - 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. + 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) + Caret c = t.getCaret(); + int dot = c.getDot(); + try { - // Current cursor position is on the first character in a word. - c.setDot(wordStart); - c.moveDot(Utilities.getWordEnd(t, wordStart)); - } - else - { - // 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); - 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. - - 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() @@ -208,6 +201,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 */ @@ -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) - { - // Final region will be painted as the - // old highlight region finishes first - sds = o1; - sde = n1; - } - else - { - // Final region will be cleared as the - // new highlight region finishes first. - sds = n1; - sde = o1; - } - - // 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); - } + 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 + else if (tag instanceof HighlightEntry) { - // The two regions do not overlap. So mark - // both areas as damaged. - ui.damageRange(textComponent, o0, o1); - ui.damageRange(textComponent, n0, n1); + HighlightEntry e = (HighlightEntry) tag; + int p0 = e.getStartOffset(); + int p1 = e.getEndOffset(); + if (p0 == n0) + { + ui.damageRange(textComponent, Math.min(p1, n1), + Math.max(p1, n1)); + } + else if (n1 == p1) + { + ui.damageRange(textComponent, Math.min(p0, n0), + Math.max(p0, n0)); + } + else + { + ui.damageRange(textComponent, p0, p1); + ui.damageRange(textComponent, n0, n1); + } + e.p0 = doc.createPosition(n0); + e.p1 = doc.createPosition(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,54 +576,271 @@ 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; + } + return ret; + } + + /** + * 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 + */ + 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; + } } } - // Now we remove paragraphs from the root that have been tagged for - // removal. - if (removeStart != -1) + return ret; + } + + private Element join(Element p, Element left, Element right, int rmOffs0, + int rmOffs1) + { + Element joined = null; + if (left.isLeaf() && right.isLeaf()) { - 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); + joined = createLeafElement(p, left.getAttributes(), + left.getStartOffset(), + right.getEndOffset()); } + else if ((! left.isLeaf()) && (! right.isLeaf())) + { + // 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) + { + 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 + { + 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))); + } + + // 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; } /** @@ -568,52 +850,19 @@ public class DefaultStyledDocument extends AbstractDocument implements */ protected void changeUpdate() { - // 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) + boolean didEnd = split(offset, length); + if (! didEnd) { - Element[] removed; - Element[] added; - if (res[0] == null) + // need to do the other end + while (elementStack.size() != 0) { - removed = new Element[0]; - added = new Element[] { res[1] }; - index++; + pop(); } - else - { - removed = new Element[] { el }; - added = new Element[] { res[0], res[1] }; - } - edit.addRemovedElements(removed); - - edit.addAddedElements(added); + split(offset + length, 0); } - - int endOffset = offset + length; - el = getCharacterElement(endOffset); - res = split(el, endOffset, 0, el.getElementIndex(endOffset)); - par = (BranchElement) el.getParentElement(); - if (res[0] != null) + while (elementStack.size() != 0) { - Element[] removed; - Element[] added; - if (res[1] == null) - { - removed = new Element[0]; - added = new Element[] { res[1] }; - } - else - { - removed = new Element[] { el }; - added = new Element[] { res[0], res[1] }; - } - edit.addRemovedElements(removed); - edit.addAddedElements(added); + 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); - // 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); - } - } - } + + 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; } /** - * Inserts new content + * 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. + 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. * - * @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]); } - } - - /** - * Inserts a new paragraph. - * - * @param par - - * the parent - * @param offset - - * the offset - * @return the new paragraph - */ - private Element insertParagraph(BranchElement par, int offset) - { - 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) - { - Element[] removed; - Element[] added; - if (res[0] == null) - { - removed = new Element[0]; - if (res[1] instanceof BranchElement) - { - added = new Element[] { res[1] }; - ret = res[1]; - } - else - { - ret = createBranchElement(par, null); - added = new Element[] { ret, res[1] }; - } - index++; - } - else - { - removed = new Element[] { current }; - if (res[1] instanceof BranchElement) - { - ret = res[1]; - added = new Element[] { res[0], res[1] }; - } - else - { - ret = createBranchElement(par, null); - added = new Element[] { res[0], ret, res[1] }; - } - } - e.addAddedElements(added); - e.addRemovedElements(removed); - } - else + // 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--) { - ret = createBranchElement(par, null); - e.addAddedElement(ret); + 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)); } - return ret; } - + + 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) + { + Edit edit = (Edit) elementStack.peek(); + switch (spec.getType()) + { + case ElementSpec.StartTagType: + switch (spec.getDirection()) + { + case ElementSpec.JoinFractureDirection: + // Fracture the tree and ensure the appropriate element + // is on top of the stack. + if (! createdFracture) + { + fracture(elementStack.size() - 1); + } + if (! edit.isFracture) + { + // If the parent isn't a fracture, then the fracture is + // in fracturedChild. + Edit newEdit = new Edit(fracturedChild, 0, true); + elementStack.push(newEdit); + } + else + { + // Otherwise use the parent's first child. + Element el = edit.e.getElement(0); + Edit newEdit = new Edit(el, 0, true); + elementStack.push(newEdit); + } + 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()) + { + 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; + } + break; + case ElementSpec.EndTagType: + pop(); + break; + case ElementSpec.ContentType: + insertContentTag(spec, edit); + break; + } + } + /** * 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) + if (! edit.isFracture) { - 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))) - { - 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); + 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 + offsetLastIndex = true; + } + + private void fracture(int depth) + { + 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--) + { + Edit edit = insertPath[i]; + if (edit.added.size() > 0 || i == depth) + { + lastIndex = i; + if (! recreate && childChanged) + { + recreate = true; + if (deepestChangedIndex == -1) + deepestChangedIndex = lastChangedIndex + 1; + } + } + if (! childChanged && edit.index < edit.e.getElementCount()) + { + childChanged = true; + lastChangedIndex = i; + } + } + if (recreate) + { + if (lastIndex == -1) + lastIndex = len - 1; + recreate(lastIndex, deepestChangedIndex); } } - /** - * 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) + private void recreate(int startIndex, int endIndex) { - int index = paragraph.getElementIndex(start); - Element child = paragraph.getElement(index); - AttributeSet atts = child.getAttributes(); - - if (!onlyContent) + // 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()) { - 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(); + newChild = createLeafElement(edit.e, child.getAttributes(), + Math.max(endOffset, child.getStartOffset()), + child.getEndOffset()); } else { - Element newLeaf = createLeafElement(paragraph, atts, start, - child.getEndOffset()); - Edit edit = getEditForParagraphAndIndex(paragraph, index); - edit.addAddedElement(newLeaf); + newChild = createBranchElement(edit.e, child.getAttributes()); } - } - - /** - * 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) - { - // 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]; + fracturedParent = edit.e; + fracturedChild = newChild; - // 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) + // Recreate all the elements to the right of the insertion point. + Element parent = newChild; + while (++startIndex < endIndex) { - int index = el.getElementIndex(offset); - Element child = el.getElement(index); - Element[] result = split(child, offset, space, editIndex); - Element[] removed; - Element[] added; - Element[] newAdded; + boolean isEnd = (startIndex + 1) == endIndex; + boolean isEndLeaf = (startIndex + 1) == changeLength; - int count = el.getElementCount(); - if (result[1] != null) + // 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) { - // 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[] {}; + if(offsetLastIndex || ! isEndLeaf) + child = null; + else + child = edit.e.getElement(edit.index); + } + else + { + child = edit.e.getElement(edit.index - 1); + } + // Duplicate it. + if(child != null) + { + if(child.isLeaf()) + { + newChild = createLeafElement(parent, child.getAttributes(), + Math.max(endOffset, child.getStartOffset()), + child.getEndOffset()); } - // 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] }; + newChild = createBranchElement(parent, + child.getAttributes()); } - newAdded[0] = result[1]; - for (int i = index; i < count; i++) - { - Element el2 = el.getElement(i); - int ind = i - count + removed.length; - removed[ind] = el2; - if (ind != 0) - newAdded[ind] = el2; - } - - 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 - { - 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 }; - } - } - else if (el instanceof LeafElement) - { - BranchElement par = (BranchElement) el.getParentElement(); - Element el1 = createLeafElement(par, el.getAttributes(), - el.getStartOffset(), offset); + newChild = null; - Element el2 = createLeafElement(par, el.getAttributes(), - offset + space, - el.getEndOffset()); - res = new Element[] { el1, el2 }; + // Recreate the remaining children (there may be none). + int childrenToMove = edit.e.getElementCount() - edit.index; + Element[] children; + int moveStartIndex; + int childStartIndex = 1; + + 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; + } + else + { + // Last leaf, need to recreate part of it. + moveStartIndex = edit.index + 1; + } + children = new Element[childrenToMove]; + children[0] = newChild; } - return res; + + 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; + } + } - /** - * Inserts a fracture into the document structure. - * - * @param tag - - * the element spec. - */ - private void insertFracture(ElementSpec tag) + private Element recreateFracturedElement(Element parent, Element toCopy) { - // 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) + Element recreated; + if(toCopy.isLeaf()) { - // 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) - { - added = new Element[] { rightBranch }; - - // don't try to remove left part of tree - parentIndex++; - } - 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 }); - } - } - - if (!toFracture.isLeaf()) - { - // add all non-fracture elements to the branches - if (indexOfFrac > 0 && leftBranch != null) - { - 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); - } - - int count = size - indexOfFrac - 1; - if (count > 0) - { - 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); - } - } - - // 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; - } - - Element rightFracturedLeaf = createLeafElement(rightBranch, atts, - pos, end); - rightBranch.replace(0, rm, new Element[] { rightFracturedLeaf }); - - // 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()); - } - - edit.addAddedElements(added); - edit.addAddedElements(added2); - elementStack.push(rightBranch); - lastFractured = rightFracturedLeaf; + recreated = createLeafElement(parent, toCopy.getAttributes(), + Math.max(toCopy.getStartOffset(), endOffset), + toCopy.getEndOffset()); } else - fracNotCreated = true; - } - - /** - * 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) - { - Element[] added = new Element[recreate.length - startFrom]; - int j = 0; - for (int i = startFrom; i < recreate.length; i++) { - Element curr = recreate[i]; - int len = curr.getEndOffset() - curr.getStartOffset(); - if (curr instanceof LeafElement) - added[j] = createLeafElement(parent, curr.getAttributes(), - startOffset, startOffset + len); - 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 recreated; + } + + private boolean split(int offs, int len) + { + boolean splitEnd = false; + // Push the path to the stack. + Element e = root; + int index = e.getElementIndex(offs); + while (! e.isLeaf()) + { + elementStack.push(new Edit(e, index)); + e = e.getElement(index); + index = e.getElementIndex(offs); } - return added; - } - } + 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()) + { + // 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; + } - /** - * 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; + // 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); - /** The index of the change. */ - int index; + // 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); + } - /** 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 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() - { - 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; + 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; - int i = v.size(); - for (int j = 0; j < i; j++) - { - 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; - } - 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++) - { - if (!contains(removed, e[i])) - removed.add(e[i]); - } - } - - /** - * 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); - } - - /** - * 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]); - } - } - - /** - * 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. @@ -1673,11 +1716,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. */ @@ -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); + 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; + } + } + } + + } + + // If we are not inserting after a newline, the paragraph attributes + // come from the paragraph under the insertion point. + if (! insertAfterNewline) + pAttr = paragraph2.getAttributes(); + + // 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++) + { + if (s.array[i] == '\n') + { + 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; + } + } + + // Need to add a tailing content tag if we didn't finish at a boundary. + if (last < end) + { + buf.add(new ElementSpec(attr, ElementSpec.ContentType, + end - last)); + } + + // 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) + { + 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); + } + } + + ElementSpec[] specs = new ElementSpec[buf.size()]; + specs = (ElementSpec[]) buf.toArray(specs); + buffer.insert(offs, len, specs, ev); } catch (BadLocationException ex) { - AssertionError ae = new AssertionError("Unexpected bad location"); - ae.initCause(ex); - throw ae; + // Ignore this. Comment out for debugging. + ex.printStackTrace(); } + super.insertUpdate(ev, attr); + } - 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; - - // Check to see if we're inserting immediately after a newline. - if (offset > 0) + private short insertAfterNewline(Element par1, Element par2, + AttributeSet attr, ArrayList buf, + int offs, int endOffs) + { + short dir = 0; + if (par1.getParentElement() == par2.getParentElement()) { - try - { - String s = getText(offset - 1, 1); - if (s.equals("\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); - } - } - catch (BadLocationException ble) - { - // This shouldn't happen. - AssertionError ae = new AssertionError(); - ae.initCause(ble); - throw ae; - } - } - - for (int i = txt.offset; i < segmentEnd; ++i) - { - len++; - if (txt.array[i] == '\n') - { - // 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; - } - } - - // Create last element if last character hasn't been a newline. - if (len > 0) - specs.add(new ElementSpec(attr, ElementSpec.ContentType, len)); - - // 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) - { - 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(); + } + e = par1; + int leftIndex = -1; + while (e != null && (leftIndex = parentsLeft.indexOf(e)) == 1) + { + 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--) + { + 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 - { - if (finalStartTag != null - && finalStartTag.getDirection() == ElementSpec.JoinFractureDirection - && currentRun.getAttributes().isEqual(attr)) - { - last.setDirection(ElementSpec.JoinNextDirection); - } - } + 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,39 +177,41 @@ 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. } - - while (currentDepth > 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; - } - } - - currentElement = null; - return currentElement; + return next; } /** @@ -174,8 +219,54 @@ public class ElementIterator implements Cloneable */ public Element previous() { - if (currentElement == null || currentElement == root) - return null; - return previousItem; + Element previous = null; + int stackSize; + if (stack != null && (stackSize = stack.size()) > 0) + { + 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)); + } + } + return previous; + } + + /** + * Determines and returns the deepest leaf of the element el. + * + * @param el the base element + * + * @returnthe deepest leaf of the element el + */ + private Element deepestLeaf(Element el) + { + 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) { - fv.removeAll(); - Element el = fv.getElement(); + int start = fv.getStartOffset(); + int end = fv.getEndOffset(); - int rowStart = el.getStartOffset(); - int end = el.getEndOffset(); - int rowIndex = 0; - while (rowStart >= 0 && rowStart < end) + // 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(); + + 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; + int end = fv.getEndOffset(); - Row: while (span > 0) + // 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, axis); + 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) + { + 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; } } @@ -356,11 +590,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(flowAxis); + layoutChanged(getAxis()); + layoutSpan = span; + } + + if (! isLayoutValid(flowAxis)) + { + int axis = getAxis(); + int oldSpan = axis == X_AXIS ? getWidth() : getHeight(); + strategy.layout(this); + int newSpan = (int) getPreferredSpan(axis); + if (oldSpan != newSpan) { - layoutChanged(X_AXIS); - layoutSpan = height; + View parent = getParent(); + if (parent != null) + parent.preferenceChanged(this, axis == X_AXIS, axis == Y_AXIS); } } - if (layoutDirty) - { - strategy.layout(this); - layoutDirty = false; - } - - 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 { @@ -81,39 +78,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. * @@ -133,19 +97,13 @@ 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. */ 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. * @@ -153,9 +111,14 @@ public class GapContent */ 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); } /** - * Implementation of Comparable. + * 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 */ - public int compareTo(Object o) + GapContentPosition getPosition() { - Mark other = (Mark) o; - return mark - other.mark; + 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 + { /** - * Adjustment for equals(). + * The mark that might need to be reset. */ - public boolean equals(Object o) + 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) { - if (o == null || !(o instanceof Mark)) - return false; + mark = m; + undoOffset = mark.getOffset(); + } + + /** + * Resets the position of the mark to the value that it had when + * creating this UndoPosRef. + */ + void reset() + { + 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();) + 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)) { - GapContentPosition p = (GapContentPosition) i.next(); - if (p.getOffset() == offset) - { - pos = p; - break; - } + // Create new position if none was found. + pos = new GapContentPosition(); + m = new Mark(index, pos, queueOfDeath); + pos.mark = m; + marks.add(insertIndex, m); } - - // If none was found, then create and return a new one. - if (pos == null) - { - pos = new GapContentPosition(offset); - positions.put(pos, null); - } - + // 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) - { - // 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 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 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(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 if (delta < 0) + { + 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 gap is too small, enlarge the gap. - if ((gapEnd - gapStart) <= addSize) - shiftEnd((addSize - gapEnd + gapStart + 1) * 2 + gapEnd + DEFAULT_BUFSIZE); - - // Add new items to the buffer. - if (addItems != null) + if (addSize == 0) { - System.arraycopy(addItems, 0, buffer, gapStart, addSize); - gapStart += addSize; + 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); + } + } + } + + /** + * 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; + } + + shiftGap(pos); + if (num >= size) + { + 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; + else + { + startIndex = searchFirst(offset + (gapEnd - gapStart)); + endIndex = searchFirst(end + (gapEnd - gapStart) + 1); + } + if (v == null) + v = new Vector(); + for (int i = startIndex; i < endIndex; i++) + { + v.add(new UndoPosRef((Mark) marks.get(i))); + } + return v; } - /** - * 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) - { - // 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; - } - - } - - /** - * 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) - { - // 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; - } - } - - } - /** * 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); } /** @@ -891,30 +995,6 @@ public class GapContent System.out.println(); } - /** - * 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 @@ -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; @@ -247,11 +254,165 @@ 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) + // Find out the X location at which we have to paint. + int x = r.x; + int p = view.getStartOffset(); + if (p != p0) { - g.setColor(background); - g.fillRect(bounds.x, bounds.y, width, height); + int width = Utilities.getTabbedTextWidth(txt, fontMetrics,x, tabEx, + p); + x += width; } - // 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); + // 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); - 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()) - { - int lineHeight = (int) getAscent(view); - g.drawLine(bounds.x, bounds.y + lineHeight, bounds.height + width, - bounds.y + lineHeight); - } - g.setColor(oldColor); } /** @@ -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 + View brokenView = this; + if (axis == X_AXIS) { - int start = getStartOffset(); - int length = getEndOffset() - start; - getDocument().getText(start, length, txt); + 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; + } } - catch (BadLocationException ex) - { - AssertionError err = new AssertionError("BadLocationException must not " - + "be thrown here."); - err.initCause(ex); - throw err; - } - 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; @@ -89,6 +91,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. * @@ -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); + AttributeSet atts = getAttributes(); + setStrikeThrough(StyleConstants.isStrikeThrough(atts)); + setSubscript(StyleConstants.isSubscript(atts)); + setSuperscript(StyleConstants.isSuperscript(atts)); + setUnderline(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); + // 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; + StringBuffer result = new StringBuffer(); + char valueChar; + boolean isPlaceHolder; - // this boolean is specifically to avoid calling the isCharValid method - // when neither invalidChars or validChars has been set - boolean checkCharSets = (invalidChars != null || validChars != null); - - 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,29 +68,44 @@ 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 + 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 { - doc.getText(start, end - start, s); + // 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; + } + } + + } } - catch (BadLocationException ble) - { - AssertionError ae = new AssertionError("Unexpected bad location"); - ae.initCause(ble); - throw ae; - } - - 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,10 +273,24 @@ 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 @@ -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. - + /** + * Register StyleConstant keys as static attribute keys for serialization. + */ + 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 name of the default style. */ public static final String DEFAULT_STYLE = "default"; - /** - * The default style for this style context. - */ - NamedStyle defaultStyle = new NamedStyle(DEFAULT_STYLE, null); - 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 styleTable.keys(); + return styles.getAttributeNames(); + } + + private void readObject(ObjectInputStream in) + throws ClassNotFoundException, IOException + { + 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; - } - } - - public AttributeSet removeAttributes(AttributeSet old, AttributeSet attributes) - { - return removeAttributes(old, attributes.getAttributeNames()); - } - - public AttributeSet removeAttributes(AttributeSet old, Enumeration names) - { - if (old instanceof MutableAttributeSet) + else { - ((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; + MutableAttributeSet mas = getMutableAttributeSet(old); + mas.removeAttribute(name); + ret = mas; } - 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; - } + return ret; + } + + public synchronized AttributeSet removeAttributes(AttributeSet old, + AttributeSet attributes) + { + 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 synchronized AttributeSet removeAttributes(AttributeSet old, + Enumeration names) + { + AttributeSet ret; + if (old.getAttributeCount() <= getCompressionThreshold()) + { + search.removeAttributes(search); + search.addAttributes(old); + search.removeAttributes(names); + reclaim(old); + ret = searchImmutableSet(); + } + 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; + // Found position. + if ((! round) || ((x - currentX) < (nextX - x))) + { + found = pos - s.offset; + } + else + { + found = pos + 1 - s.offset; + } } - else - { - if (currentX + width > x) - break; - } - - 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); + int breakPoint = calculateBreakPosition(i, end); - if (breakPoint == 0) - return; - - // 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; /** @@ -104,6 +124,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. @@ -124,6 +369,11 @@ public class FormView public static final String RESET = UIManager.getString("FormView.resetButtonText"); + /** + * If this is true, the maximum size is set to the preferred size. + */ + private boolean maxIsPreferred; + /** * Creates a new FormView. * @@ -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 @@ -464,6 +464,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. */ @@ -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,30 +1071,6 @@ public class HTMLDocument extends DefaultStyledDocument */ public void start(HTML.Tag t, MutableAttributeSet a) { - blockOpen(t, a); - } - - /** - * Called when an end tag is seen for one of the types of tags associated - * with this Action. - */ - public void end(HTML.Tag t) - { - blockClose(t); - } - } - - public class PreAction extends BlockAction - { - /** - * 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 ("PreAction.start not implemented"); super.start(t, a); } @@ -762,13 +1079,39 @@ 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); } } + + /** + * This action is performed when a <pre> tag is parsed. + */ + public class PreAction extends BlockAction + { + /** + * 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) + { + inPreTag = true; + blockOpen(t, a); + a.addAttribute(CSS.Attribute.WHITE_SPACE, "pre"); + blockOpen(HTML.Tag.IMPLIED, a); + } + + /** + * Called when an end tag is seen for one of the types of tags associated + * with this Action. + */ + public void end(HTML.Tag t) + { + blockClose(HTML.Tag.IMPLIED); + inPreTag = false; + blockClose(t); + } + } /** * Inserts the elements that are represented by ths single tag with @@ -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); - - offset += HTMLDocument.this.getLength() - offset; + flushImpl(); } - + + /** + * 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();
      +      if (inImpliedParagraph())
      +        blockClose(HTML.Tag.IMPLIED);
      +
      +      // Push the new tag on top of the stack.
      +      parseStack.push(t);
      +
             DefaultStyledDocument.ElementSpec element;
       
      -      parseStack.push(t);
             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)
      +      protected void activateLink(int pos, JEditorPane editor)
             {
      -        /*
      -          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.
      +        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
      +       */
      +      private HyperlinkEvent createHyperlinkEvent(JEditorPane editor,
      +                                                  HTMLDocument doc,
      +                                                  String href,
      +                                                  AttributeSet anchor,
      +                                                  Element el)
      +      {
      +        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)
                 {
      -            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?
      +            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)
      +          {
      +            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.equals(HTML.Tag.MENU) || tag.equals(HTML.Tag.DIR)
      -                   || tag.equals(HTML.Tag.UL) || tag.equals(HTML.Tag.OL))
      -            view = new ListView(element);
      -          else if (tag.equals(HTML.Tag.INPUT) || tag.equals(HTML.Tag.SELECT)
      -                   || tag.equals(HTML.Tag.TEXTAREA))
      +          else if (tag == HTML.Tag.INPUT || tag == HTML.Tag.SELECT
      +                   || tag == 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.MENU || tag == HTML.Tag.DIR
      +                   || tag == HTML.Tag.UL || tag == HTML.Tag.OL)
      +            view = new ListView(element);
      +          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;
      @@ -28,22 +31,97 @@ 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.
          */
         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.
          * 
      @@ -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)
      -
      +    updateState();
      +    Rectangle r = bounds instanceof Rectangle ? (Rectangle) bounds
      +                                              : bounds.getBounds();
      +    Image image = getImage();
      +    if (image != 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;
      -          }
      +        g.drawImage(image, r.x, r.y, r.width, r.height, observer);
             }
      -
      -    imageState = (byte) imageIcon.getImageLoadStatus();
      -
      -    switch (imageState)
      +    else
             {
      -      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:
      -      {
      -        // 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;
      -      }
      -  }
      -  
      -  /**
      -   * 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
      -      {
      -        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;
       
      @@ -59,6 +63,23 @@ public class InlineView
         extends LabelView
       {
       
      +  /**
      +   * 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.
          *
      @@ -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,9 +59,29 @@ 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.
          *
      @@ -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
      +   * @param atts the attributes to convert
      +   *
      +   * @return the converted map
          */
      -   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();
      -       }
      -   }
      +  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>.
      -     *
      -     * @param el the element for which to create a row view
      +     * Has true at column positions where an above row's cell overlaps into
      +     * this row.
            */
      -    public RowView(Element el)
      +    boolean[] overlap;
      +
      +    /**
      +     * Stores the row index of this row.
      +     */
      +    int rowIndex;
      +
      +    /**
      +     * Creates a new RowView.
      +     *
      +     * @param el the element for the row view
      +     */
      +    RowView(Element el)
           {
      -      super(el);
      +      super(el, X_AXIS);
           }
      -    
      -  /**
      -   * Get the associated style sheet from the document.
      -   * 
      -   * @return the associated style sheet.
      -   */
      -    protected StyleSheet getStyleSheet()
      +
      +    public void replace(int offset, int len, View[] views)
           {
      -      Document d = getElement().getDocument();
      -      if (d instanceof HTMLDocument)
      -        return ((HTMLDocument) d).getStyleSheet();
      +      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
      -        return null;
      -    }    
      +        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.
      +     */
      +    protected void layoutMinorAxis(int targetSpan, int axis, int[] offsets,
      +                                   int spans[])
      +    {
      +      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++;
      +            }
      +        }
      +    }
         }
       
      +  /**
      +   * A view that renders HTML table cells (TD and TH tags).
      +   */
      +  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)
      +    {
      +      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.
      +   */
      +  public View create(Element elem)
      +  {
      +    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
      +      {
      +        // 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()
         {
      -    Document d = getElement().getDocument();
      -    if (d instanceof HTMLDocument)
      -      return ((HTMLDocument) d).getStyleSheet();
      -    else
      -      return null;
      -  }  
      -  
      -  /**
      -   * 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}).
      -   */
      -  protected TableRow createTableRow(Element el) 
      -  {
      -    return new RowView(el);
      -  }  
      -  
      -  /**
      -   * Loads the children of the Table. This completely bypasses the ViewFactory
      -   * and creates instances of TableRow instead.
      -   *
      -   * @param vf ignored
      -   */
      -  protected void loadChildren(ViewFactory vf)
      -  {
      -    Element el = getElement();
      -    int numChildren = el.getElementCount();
      -    View[] rows = new View[numChildren];
      -    for (int i = 0; i < numChildren; ++i)
      -      {
      -        rows[i] = createTableRow(el.getElement(i));
      -      }
      -    replace(0, getViewCount(), rows);
      +    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);
      +          }
      +      }
      +  }
      +
      +  /**
      +   * Lays out the columns.
      +   *
      +   * @param targetSpan the target span into which the table is laid out
      +   */
      +  private void layoutColumns(int targetSpan)
      +  {
      +    // 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);
      +      }
      +  }
      +
      +  /**
      +   * Updates the arrays that contain the row and column data in response
      +   * to a change to the table structure.
      +   *
      +   * 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.
      +   */
      +  public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
      +  {
      +    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++)
      +      {
      +        tmpRect.setBounds(inside);
      +        childAllocation(r, tmpRect);
      +        paintChild(g, tmpRect, r);
      +      }
      +  }
      +
       }
      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;
      @@ -76,12 +75,6 @@ import javax.swing.event.TreeSelectionListener;
       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 - 
      @@ -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();
      +    setTree(tree);
      +    lastRow = row;
      +    determineOffset(tree, value, isSelected, expanded, leaf, row);
      +    if (editingComponent != null)
      +      editingContainer.remove(editingComponent);
       
      -    return realEditor.getTreeCellEditorComponent(tree, value, isSelected,
      -                                                        expanded, leaf, row);
      +    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,45 +501,63 @@ public class DefaultTreeCellRenderer
          */
         public void paint(Graphics g)
         {
      -    // paint background
      -    Rectangle vr = new Rectangle();
      -    Rectangle ir = new Rectangle();
      -    Rectangle tr = new Rectangle();
      +    // 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());
      +      }
       
      -    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);
      -
      -    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;
         }
       
         /**
      @@ -547,19 +567,9 @@ public class DefaultTreeCellRenderer
          */
         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.
          */
      @@ -123,13 +156,37 @@ 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))
                 {
      -            v0 = paths[i];
      -            if (! isPathSelected(v0))
      -              {
      -                if (isSelectionEmpty())
      -                  setSelectionPath(v0);
      -                else
      -                  {
      -                    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);
      -                  }
      -               TreePath oldLead = leadPath;                
      -                leadPath = paths[paths.length - 1];
      -                leadRow = getRow(leadPath);
      -                leadIndex = selection.length - 1;
      -
      -                fireValueChanged(new TreeSelectionEvent(this, v0, true,
      -                                                        oldLead, leadPath));
      -              }
      +            if (arePathsContiguous(paths))
      +              setSelectionPaths(paths);
      +            else
      +              setSelectionPaths(new TreePath[] { paths[0] });
      +          }
      +        else
      +          {
      +            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 (paths[i] != null)
      +                  {
      +                    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];
      +                  }
      +              }
      +            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,66 +965,40 @@ 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++)
      +            int max = listSelectionModel.getMaxSelectionIndex();
      +            for (int i = min; i <= max; i++)
                     {
      -                if (rows[i - 1] != rows[i] - 1)
      -                  // Break if no longer continuous.
      -                  break;
      -              }
      -
      -            if (i < rows.length)
      -              {
      -                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
      @@ -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,33 +1062,50 @@ 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();
      -    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.bounds == null)
      -          {
      -            Rectangle dim = getNodeDimensions(last, r.row, r.depth,
      -                                              r.isExpanded, rect);
      -            r.bounds = dim;
      -          }
       
      -        rect.setRect(r.bounds);
      +    Object last = path.getLastPathComponent();
      +    Rectangle result = null;
      +    NodeRecord r = (NodeRecord) nodes.get(last);
      +    if (r != null)
      +      {
      +        // 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
      zcmZ`)TT>iG6#klBcDPK!HQ`Q-8rWrlO(K}cO#wkk7BGZ>gtDk%x3df`J7i{-BtFNV
      zU|FV0OH-+AX~n9<io{D*u)>?~{sbR<&$IY-vkSz6hv_qO`t*0c^PN7sfByU1a{%XX
      z)j*LzO)8U(jZV*u49AAOJDJ3a>tqZB1u9pq4J($mGO5_~@~TYu0zpq^XimoUR@S%E
      zvACW2R3_uL=l2VQ2JDRO4+#XqkvWEsI!RfE0Lo1mC^2wMp!Tq%WiU}*3g$FXjF3PD
      zVdYeIZCSdr)^b`3RL7l!m7cR)TYcx9L4U>e1Wv>cseyD_NH@8(mQDNidRi{I@@7_g
      zzPIFL<SpxtKvQ@z?zpL#vzE#$FtZ!dADJsdJsJ%(5dF{)6HO=)DAy?pfF*?#0`*5h
      z3kaLfgutmI=q2S1>AEthRC(RR8+em~TFE4-gm;xc(3Jkjbw#z!M7!d1Ok)-hDBHS|
      zPA_HTZJ*_P>rTd_mh27>nTVR`M3+E`?Mv749ha>QM-DW1BJb}nM-1l-oF(9X{|dV%
      z&f_h1TV-K`3kU~EDvG@(-bREJHKhU@g?!P(J8H*RvAih_5>$+cbr=_l$E~^}Iww$-
      zlK%fIZXl^c+sIo|Hg-E9*L|DX7#I;~eKl~N^N^Z#t&C?SRFD$xeG_A<D<M~|IUBs<
      zA7H}3hp)`c?20R`q=`$oEKuyFrCg^*;Y*P@1Cz|MKV1_U7VBo$eVN>&!q8imO*sP-
      zQ=?obhd(CMt4`KU$Z=Z@#PPjp?N(4Y&G89vt_2^?kX|V%O6V!&*9dpjUS-EKly&?L
      zbKx0||BQ+!^cA6s>v4U)2SN6!0zIgv&)hwO8r1TOHxMWDcuPE`@|_3_=3qvf&u^mc
      zZjoq?KL2j#<vwUN;eb(68bdj4Ewxg>uk9Yr0}}?#Xd!eFcUy6aRxqZJ><dOKoLI+G
      zR4h!s2n^*=r{1G2%zJuXn=^L<qD7_ur*k`pQ0Mm66T%n>Bg&&ubZNU=Yb*W00@p>>
      z_zCJ@G5sRi=<7!E0L9oI#aNzVDI*m{rDqrsu1ep>%%v#yX^Qa|%50)zGKc!kU(qe_
      z2kNJ~HqrAHjOcdo5uFzV?(O^?Rb->vTY*PJG;jvJL}}+tDcg$++U~M$)0rGb-DHP6
      zvdogx27e-M@q~x7aBvZy9bn&=XJ5hl(T9F=Y-Sq<FsRuN;az&(W1b+Z7*^<_O=||M
      zR+bDD4_1knL%N{8V4<SE;vCu=iVHRMg&IP-su~ri-bd#fLJh&~$0|mb_!qx&Ft~0t
      zef|r^n_BMg{MgjIGLYMOIG@|O&+JuXafLjFF{SMl%xZfL3EV)OoYV~+*Xx($evcRG
      zYx4b;p8IIT1NP)0dy(V++V`yU2O>SdW$s^NXRhN3mhcmio+5>Bv_3<6MppCs1n8e)
      jPdTcPnAR7tly~AI-RDN4D)ow)p<b&OVx;0*gqi;UJ~NC;
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<OHUI~6#j18>C|x)?FP=OX&Mnq95&sGRcYDoYwghX=Nj&;a%+6+?yYvp$k
      zH?rx*4H!w#wg19DqMn&)Xi?(go^$Sbe&_My*Vi)uW0(`+VdyCvbtSXBlAc%6`<6Oy
      zntVS~t<<>5t*R-)$8ckt?{Y=wMp;=dY^y~}gr6boXzP}yD=mKp|CDBE)(nF;7GG!Z
      zWvV4rf)`h1hzKxr<TOLg*DD3pT;l~@WeDb~MXs-NQ?vg~rO$e&?J)G_{tGX~AQm04
      zlxHZG`x|KLUrjtKBE;a?OpAyxbhbjWhNYSY*B4CFZoKn?an&+4qnxg5dPz0ye!6Ac
      z!fl2?S+z1c-yyJ}SiG&CqfANYL9d9r)Of3sW0KK_e!@@jd0rv>;S1qzL5jbR0TB-_
      zY{9k37{m}I*yVa%U4F|jc*y|T5uK-uB5rSEm?6?0(zM6d14uBigoG$YWhi(^Yvr|?
      zYLpm~mqoO-?Ivjsir`1_NXEF`X~3$wMhRiWMNH7dS~FSLE2=e1s~U7O+}PswU9_z3
      z-O;+ee5*j%$jof6(aSPOtJS($R2Mb-p1Ll%<54>m`auck33UG+;&hNiuh35+&WH=c
      zCy+inW|^qpQI6pn$+GK!>*$~#?E^Q7QZS2CLO<yaMiQSOcpL0Hf_a-v`bKOq;fP02
      zUY{boaf;~1$T7N(apw!}ogfyZUozopNIJ&Y2_An-o^|`q4k0<b)bLISN9ajLgz;`4
      zkwaWRmrIQg0*eUb{_*!uZ-YPu>FE0KgnG1_SR|mp6oH(kj%P_XM;;k;;stpv(o~j^
      zLYC+fa(Ia~<gtkraFQx`g*}qrW5XH3jN52)2-Gs3;+Zp;13V|muDFj$glNt|>`>ki
      Te0YNasy|H#7-k5I2eW?wDCY)&
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIs349gR)j#LXy!WyUOA-QvBoGKoHi#^uhDAw2AOZms2tv^CNFE^=63l|2txHvE
      zYqf6GDy2oM(ppriCV(i^+Pd4t-L_V%Ul*-=S6d6;|J<23Z{8++_4obyGxKKV&OPV+
      z&w9_j^r<5c9wMTtsxv@}X>?m>UwPHi`pS9bRn_(7^VaqBb_ZK}t6IBjJ2&_B2FPTZ
      z*wx)u-nFUC9@jjrd3yQguI}F8x{gq}9@Ws>9SUv=ke?|(YHWFRus7%#!W8K4>+Egc
      z6k-~+IGQx>>g{*4m{M2N%|CNl^ZcbXOqq)}2Db#uJA$2U<)GBw*@gjws=7LRdV`(4
      zjlqt-PznuV8o8n~v~_c+r8m@C5bA6#=vrR@VZay@uVWe;LoY0<%c9H*(ffiO&EfB|
      zZPM*sUO6$&=<3FdS&O5E1&VlQwzYR{mX{In8bjSZ?OmOC8EENh4fTY20jlTyg4(6a
      z%B%3EA=KLt>fX}c5`uWWp{>36WN>G&ySwYW=9Ue?ZvCZoUVCdOay!U*-x=&}-vV5D
      zHB-7C5`HqMqrJDcBh(B~+Jl`;{@LxF?Y(n>SW!axiW?z?u#-jxjk9Pp6++~q;>G|?
      zV9JP-D~-m}BpFu3<SVMJEpALDrV@*WQFbbo(Ubs9W*Q&)F1frGmD32Ol!oQ=>Z<3}
      zSIb0GEgDWE<kxhIMpBymI?<vWN=w79lPo%!#sDT@<FPb(RbkOAn$47kR}Q*N#YM*l
      zynrxdaeHT|u5Z)2Q1^1NcCp2-mS9I?u)AIEorh-chV~w&0?)*Wd<nWtfjPF;ba%ld
      zEihHt-ZtOSiCMJThHbt@`IIX%F0g1QWk9mNo>23;_BL04>Fqt9FQFJ{d{9eASEtxd
      zFZ=_{6ne!>$W3vhU{q&OEuAjEmRVFuRr0Ieq6S(H+}b?26%`eG<V&u>Su#VTMJwq{
      z8+ph0nTC5=3cG|Y^lFPTDNDXwW6@c3Hf$8|EEOliSMgpZ%JJJy8lWK4gotg4tc$h1
      z+t5bY#9C?*I~^nNhAbLPLju&sG%osc7u=|C*Ha7PlCZUYJ^sQ)ieTyBBiPxj!+|A^
      z-@L{4b$CLsqrDB@HW-sPi{6|2pdwI%!cI@8bEzjl-ArSmX~#t+i+ZU~;wEOO?F3nT
      zUh6{yry)m=9u3eortD~dmdvYfSU7KS8f~QuMA|Q4gyZPm7+TzDET|$Q6~ivF=wiAA
      zEN^P>>;g|*D<5BK(PeZwWR_@A6@(Qsm3b#xz5#Jb{9snGCqze{2I$L7!y@uU;&U2p
      zr>_WaUyTGI&D;E~Euqc55-TOzd<~!L*pC2=RN%f0(A5aA;WxEQ-4|fJ1OJ`Qq(WO^
      zJ8pRMehoil;5Z`2t{m9#))Vz3Q{(xNh$eeBAOVWKe$%2&v{BS~i$yy`QyHSE6`eg$
      zeyFuU#tHt#G1Qz~A!Fett^hqU(=Lm4YMmD~RU(?!%Cqmvvs=MA#8OR_l7iO5&5e!_
      zOw5OY_OQET*!PeCw81T1w-M=3AdVxi-^>coJqR5U4b?8KPoukOoc#HrMfcHSNNpQ$
      zXO|OyQt|Eqi~1=IoYb}kXdkeQOaZ5@>FaC}9R@qnXn+n_^dKDsF6-MnTbny1el~YG
      zj7{=}1Q3TIMccA10b<I-bT~kVfMkSHLvP<Y3CF!%-4^|b9??M~*xj-Lp)*m?@Pw~K
      zq}-Cmrdhjba|h@?N<R(IPf$HX^Oaz*MUT<rK(iT9v$-|Y5o!ze!ea{Kuy?<$b_PKW
      zPew^r+tnR@mqt&})8Z-5Aj%z&REX-2($6gVIsHPIL8S69Gd^~PcwQteY^8A$8*&2l
      z0#k0Z<dyTPo0l$|Uq5eo?b13JV7mm2Au-q@IIh<*F~{>F$}-?iK5Yx)rO^}|onwx6
      z=l}@Dymxu_C<=_M6HgkX?SA>T%_yK+f&QpC^uzC<+uzY!0eTbe5wWT8+l8Ty%^{f8
      zPWm6Fxk*v;B#1cE4NnC^+i6^Y{)iGNTF~%_Wx<wnf^DJl%C5f7R%C^@q3UCd47M(U
      zH#r4GbFfpgK%A)aI=6v1(|Z>EmR=9g2TVgFqT&|@q|y80?(fsb7X5|(iddu(+#*#q
      z)2YWLd5nI-Vj+YhLiB>Qk;z6tZJPH?kD1tf!9Fa_$-1ttj*wKXncmxG)Wku|94Km9
      zEd{3pMN~m%7jiR#WIM8!9xg>Qh!ho9A?35OXcXlJ*ksCavxh8mu&ls3p&r3F)E!_f
      zW5z|}@0y%P;c0Ae3OtijQR^lyq&-;?6lCE7?_z^?!DC$ZJfc*IC^GM0SRN12;>ojG
      z5w8mIO~jMZ!;i4v){8*rmuW%}G1pCX9u{qZ0HvJ{TD$sm5eqn~kyCi2#W_6OQF*oV
      zQm3zGd#H!C>M+XHVNHZOTY{T=`Z}=e=z@AA&P9w%s<6tw_3K03-J#a-Vp5Ee3oITh
      z$<5Y}R77H;-wp8ixLPP~f;2AVi30f~C+7jILRuq_ODrzsvatDfVG#(JAZVqGSO$}j
      zvIcAhY^Gt`vFpJ&YQW7OUNYHUvA%t42u>&IRGZJHVDE-<REyQ2miA3Sqzj(OCkOZ>
      z#GMEfk@s#;;ZvBVBsQ7aBvXeaTi?+Yv?Z$%70$7EE`w2xW{v%Bs5UJ<(4)YbumZ87
      zwvA7)_Y9~F4}i7VVN?dle?n-1#S5v+2{?=K5Cxc~6CUK5>GbeSQs(j!i|a%)dhJuW
      zO>&~mp;nUTGpTjp$Tsbs(7AoEFbp<}ikm8BqU9E^5Y5}N_H}f?|BZEh>%-9KnoKLb
      zL58okxQVd_(ZiiO%qFY{dI&d!`E3Y$3YHe|R#cy1O?wOHfOHdvY6I{*PU9fAift~F
      zU+d);CdknxT%tG-kRUZ8c9zP%_73=S3ZH{-wI@40jDmIDUFU>4%L>}MdJEEc16_bW
      z+-Y$aquJmOZr%)2Wy-^vB#xRh>8uoS0;A}Jt@3HFd<s9D?5*g-Q7Y*aX?z}U3rG=~
      z5n&z6l29A6C7;h10Kwj_g`utXOp=unFa%D%h%i!I5bP-kihuySpr`%(kT7<U#TWBh
      z*h_DhJ&BYeR)8->{*2J9lky7vj(L&?8t|!GLc`A`1z?G7JFT<ovQ@8dY}HFJ`ijMs
      zjKDfro3ef>_AIZyX7PM6_+innBHw=9;#yg0*s--w8<l)`oy9A~?(9HnKaYI%4U5<C
      zSz+GJll+AC34hb#oB0-argXqMn%g^DI{JEaJ4ZKER!jE!mPL7#E2jNzi@yUAZI`OT
      z6e*0QLAstz;|L20GL{UZ`F0o?Y%ortIuix?PK$Rl)(d`NWF7*GENTIWZyg*JFsc^8
      z63Y!6K20I)Id*<N&sLvEey_!QMRRswa9%X8SYFdSb!H0R2Q0%{i_$s7f575?Eq)Iq
      z4@JaJVJt4tgrXxy@#p9fp>ojThxlP|+H+nIrf(Ki6<3M4heccq+~T2<g|aACZGe}l
      zjxMyJ_%VwgmsM`6$lBbB&SV-t$xjFPDWuOxytZ2#7}5~x?P*@xP-F2kV%GuG^>x8b
      zA(`rD7XMtP8tk^>^n3<%g7nT(5~K#3Tf)6Q^qeA=Th$Tl>4~cr-GvVGix&NW_CN>c
      z$VeDc+{a<_(Y;SkKEg5??Zb979?sXxa)ImDsO$LEa99nu7h*%3hy3dnzrnA;Y_#DA
      zorW-U(i`etAC!nZF19KZ6Kn{byRb`Q*DQ&qsr(lIKEVGIw|s~iYVjX<C<N8jrZD>_
      zi{IvVV9KG+p1y9|xnbr-O;QClNpp(dwK!eW?BAfNq2nA=Tt-nqYD6b2x|mxTJ;G-9
      zBVqSr1kleKEA;<r@gAW+`m<+E<A3lc0sd!nrr6fg8`@;?zxdx`AQHM-x;7(?h3iM1
      zPaIv;dek0%q!XlNOWy3%=yCF`kn|j@j-!eL3g#IjU-VefM>T|02K1mzjl7fvP3Q-)
      z@>~36@u^tJqvrtParTjbA(bW!rN`Mv)X;e4M!im?TwMdj2(N~yjDUin#RwlgR)n7?
      za%PF}!?f^HG&R-8!{HX6%BRH(A3X;+id$mag>@`Tqf}l%<;L%q=qlVDEIj22`O(4?
      zy4-LDsl=PKmd08<iZRES7*mX;n7{{gJ>-(HT~<v{lLBgD98A$;g{8BFrD9>JM6)CX
      zR8vDdIMH7w0%t|c5KPpVs-_4d<#FJ|3>GG)T712v(^v>%hJtjQn=F+zLM#L)s*?h0
      zW*h|3V*vr(A=FP12r4uLQoJ@*%EQ?fFXd(NU_{RWjwZ$iCNb`41GnKgO;rZeJO~*b
      zo8pFxY8D9#)xy_&&6m{TO{h}F#@I;Q$6yHExM&L6vlDStD;#0gf@6&rZWdd7l@v<j
      zjy-#V9#^Hk{*P7EGF2Z?X8`4B4q``(sy-Dauy}Y|t<aE2!=P!kJX~qfzv$l(BZjls
      zS%8gQA);9ku71YGf`w*EER$>0*#QOX92L!^cO)28&B(@0F)Uz=ESFVK_{MsptSHe4
      zktE57Sc|+ve}*N;zmKpPP*|g6#BqnD)!d7XTJ%<>j%aRgMHzzrQj;eo*|qts6or+_
      zgxc!G71$u2A~V^W$?mQy#-X)RF?Grbs9GAj`np>}HSMyMmL0A|!tH@6QX`pTk)))K
      z@{vWCP=Hdf(~(E11TZKazZIUFvU7vqrfiVuD|V0c6+4dliVZ_tm24O4D>e)D7408=
      zMIo)P*lNSI4s&By2!9K3cM)hST+2)L(b$rMG=7!o+eZ`oskr1mD($BeO1Ph<$)6b|
      zr2{lmo(|9{Kg1`B=HTx*&Gh|XZ#&q#5=>l+J-wUoyq_kaBR+-p(OirhZj+%?=``Gd
      zAkD*gl#pPi&|#(n%%B9OlH*_|mXFbZkI*@f=i@LHqhl^SSoZ7=4=h`N4&{1qCol{z
      z$-S8Z#%?mreyT1hd4OslbVS<0QlHZ^G>D!B_&@VVHr$nLI4uOwA{jOto%v7F_e6s*
      zV|AFq9!zC}=*MfKmpx1la+zF2i=9bA4wGX`O9p7k04<g48PG;4W-T6|6>?oQKur;T
      zhXYZf*P){~U_QTtcHV^A-}3N1*5!LFHA6STH};qvk{!TPa4E9+&V+@mT~)e|*7Z~C
      zZW@By^>Vubw<WNanpn#3LM!h<_aDF>K7u`b?4exbQZBM>0X0}VZ3H!zZBd7VxsK3&
      znSWJe{xso>;X155bNbym{d5l8M5MvyY@)e}W9Lf4T<J;X>VUSTlZx#x&0i;VIdeV)
      zgv2Ih0-@Few3+Gh)5Z*=Ef<|O=I+G@Y3r&?YagAzq%8A`{d8d&eCJCm%MRnkcERn6
      z!x~+2=qoWtCe9CBg(u=yCE~<9iqbh3`{H?&#iMB$7hu^p7Hi0HRKkT+#uISZV3Ou}
      zhSu~<NB(qZ{OfcLcpRoZ@;dw)jX-ie-GKQgBg9-w-@r4b8>tU}3qbKM$RUzUEAb7`
      zO}02UGwnHEDI`pZ6oaYAm0}_&5l;uQGiV6Uq@jE=jp9?NfGcPs&%z;!xm3)jX$eYz
      zB&a(Q40ZV)<?>zZ;X9MQ<?vmu<skBj_3y<L9-rbxdTQJ8ea_S@JB}FjZHzVX@l{&<
      zFFN8E+LEK^kX&+nL^@1g=@1)5e#qHKX?!L$wwkiJiE?=jjpeg60|gq{LRUKyB}FIM
      zu57~8t#M4<4hAtZl?hX&dHDzEHk0;Ln66<}_;P&Ov~qkorWjX_@37|1LX3*$t{vxw
      z&Vd#-K?9xOtP99**4)jtX*k@08r@EJ=vm6>P9!FY0A;irzYOR&U-NEacOg^Tlf-Q7
      z!^ZJ`1xAZT$7|jX(DxPXS>iHYH(9eixlEXzZ1bFkq!-Qe7l7u4geDmc=SwJ$zeMBs
      zQjfKacX=M~@GPfh1Y3ouW81qVSo9e1w*We7fS(9gmmH+KSM8&F7fTS`TlxUq|2V94
      zuh`HdG;lMGkY7KdfhFRz`|Bn@M!w1VZRvh`XbHIf@#8e9>>xd{N(RE0pBkWNchj(y
      zvCqo(Y6sd!zeEst&JzT{#vEFX@bo;`8HT`e6<D6GuQPNY42Obxyd}PcQg{bcxD#RE
      z+koS{aH2clKzGs<-c8f^do+Xh&>X&(s(CN1<oj?YWq>yD0ouq1=^TETdiW4dP#mU<
      z*iMHFb;`WNfiQ*E(TnsFU@AhQe3@PWgi~M`uhOre$T<iazoy^d**W0S4jw%K_%$6+
      zSoYj(fGLPE;vOSP_R|}CS4yPYN54Pp{=jQ-J0JZ)UkB5l@I)e>&Q<&jwD5BruKOho
      z=I3FpFM1q!gu^OJwdas)26Ga%vZ2Ozf%N;J_TiE;DONrzi$sG=Q98el$=?8mze6~E
      z)8m-g&cr?>$-mLxG4&t>(0|ZBwJe{wY5e;Ru@l9l4-jI+El#zNJXU}wZ>-ON*GQDi
      zpi(zV>KcmQrA&SwjD1M?{1Hx}eGLEn3zhQU5a<8lvH24nX0zM~neRrCGEam=weMi`
      zAFwS^WJTUgb2sIdW}9*RFTc#>Y%?!^?X5@O+D%iA5n<%@_EkBiWUwD<g-%3~C1OoP
      z@e{V&DN@5KMSf*cF0REYK&2{`W~wxrqta<UwkQ{>A#}RRpyet{i&(GA$rX->U>R=x
      zskWyT^dBb_t#Cq-fx__!o|%9$9F%6dLFsfPP_a{q@JC^gc9MGq_hK%KOCDgpnFhN+
      zT({>S8{*5YKVr!w)An&-fYYu!F2zbf$<PR7!h38aGEiP#1#XJ;)sxg!J_Xch%2WkF
      z1c_XYrx|JjRj7${nwmtFs)VXknMdJ^9W+W@h0kymUKLTev<hu0ky!1t(Pv9JLF;{(
      zSMS%Yh$#G>-BcGZe1(}~BI6A3pq2lPLDZo76@#du4X!~{!o5hH1o2OyL8<~qaS9-q
      z3-M2-lX0D+PNP~?MT^vYYE(6JmRdj|wU9QbMYK^Zp<cCA!?FfK6H<71Ezw7}^H6Oh
      zeVpMKNgrqGe3ga;m2D(*D3!B#7@%3?noFZ=E*m4}!r46BF_&GA!%r(2ni4LG7-u%`
      z)iFI$X%`*mhCpILVF-*O>=wEvQfI;~R?$$^L>cNVAaOR0Rn0U>tpy@2Fp7|t)UF%C
      zHBp9Z0J*LKu(ZV-ZjU-@Z?L)5TF(k=UD&RVDE-g>jZ$&+Rf{toY7L7s4cUU!W{7hx
      zS*nL}aGj*KK#Z+W>^7RE&WAl;KsD+@c>BdvufC*3vpv1RRbm5_n5UK4;Cgz4<LRkb
      zP}xc>c2zgSRoz05>hgKC4F(EJzYcmGB?CNWcJ4zdON_a@X=r{)S$^4}{MG>;w{|Xm
      z-Fo!HgIu_(Y#&b$i-+g08sH+-Qd~UKm+iZmQgcjWfG6jeb{<cp^Oz97&@ugm$f#kI
      z>SWEXt|FiMI;E;>C|zAkgVps={IyX0jfjgk0j-;X)(%90oj_|BT;Vpv#@i7a@1WJ{
      zPFkyW(>iq*wWvKBLE8;F90Yw-jgtQoNS{il@e~wr3h{R?muojD#lqnPo(cn*g~U1y
      z&wR*g;WBi&YfdemcrqPDyB#%mI&M&0V(jM=j~fUd6d=~`!+J6dgwAzpKg{Jp#DRxk
      z{SVU!b%^rSVH%@;Oa<yES~z<(Q0xd7a9Pc8SuOCeT7i%kyNU_84vS;a_at@L8095h
      z#i*Y{dB30`>N$Ar3p7f-2wq>JiRxu4Qon+^|Hi|2*kg~eijg+E!}k$DEIGQqMEH(z
      zT?lZ-=XBjdq-N1YA<cJnVY}`hA=jT^knhk)TqmmcAkPOhU44j@^byk0$4JzFqXp_8
      zbcXsw%V@i9z3aO5aNT*31Khi=Tkp7TitD;XuIo;BU3Y=Ub#YQAxejGveO#$ns>`H0
      zG!*#^tYHikdPaao87WkNL%|b`G%7L%QL!=PztABz)sI7mBEZuBFC7}AAXhG>8~HR6
      z*NH{}<QYfPjY6t0##5y+f#w@Uw7@8#GYq@5NTkE+&#gn8B5<&{3HB_ynC#7*IF55S
      z5~R}<SzM}@fTgkRkVw)jbWK%<4dX=e8)zaJCsT%j^1+xzV~yEVXq-ypjd@yicEX(O
      zm}V}jNojdtr^*v7aFW4c^0N~rxLx)+HI_7C8jB&y60(e?l!NOeqaN0`oMsp+XqM4P
      zRmMuHF;>$;V-3|CXM4OZI$<u-8v8s669>s0Fm82%{A67d^Wy)5!%4?lf=epGOH`mY
      z+9=Ivhhd&W*+vI6wh0>RgvQQ=#(F%?7S>q08|Wjg5wGsB+vKqOoKx(~7Iwp}k^ibx
      z9pn^ggV2-?bFYgu<3iZl#gu7$iSmt0!SQ8OW?W9?#uYTx_$n0jH7$X?j-Ks?!`W{8
      zWVRa)XFK6A(+z_8ZV;U634&*Ey(8ZXjyh($^-J!zb^o}v>;N|?a{3C#QICwoKOYk9
      zj6`!SET0bj#y1c)ZlqM>CK_a*<zeiAG44cI{0?N@MJ2|qbb@gkO*8I5DA}!LwOd7D
      zS$*hCglmqWXn#q~G0N58csEr~_jn)93po-dXgKn!|AW;f5A*jyuKN+@`=P&mkY_)_
      z`~if;2N4z@hNB(!Sl;obYMf+p_>QD%Uwo>D0F9qBXe3S5##4~%X?WAK2=h-vo?k$o
      z=b)SC5$0b&n12yr{uPAzUm?uf<w&A1FRk^@m#Uk2t&Ih5L(w9u-<`&6UAXAjA-PUh
      z+;Uf@JAW(jbK2uH^dJXUl^MBa>ppJT>)y!AeH_}Gv_0sqs&w`^$QxE=@y31JkvqVf
      zviRHq?#bQHTX4zZFW~P0U#OezS$v5!+zx|Dh1S}9xWNpR$#RwZv*8YMFITy5Lw`~3
      z<!Ue38)b{l_#-Lf9W;90McR1}f$V*l6LvF<j}fo`3dsMCSp830W_&`8#=mHd@ozfY
      z_zyK3N2$$Z+F%-Vv1!sZxZYs;Xou<dxYAB1Y$)2HOLgf9pTL)CSE_MbNzpRLl`sQV
      zv6tg7nryt?t(YP`a4dFW_La<`np{i|T#mOm_PiV#6dk6N==J^;F&iUh4h76n9*;?J
      zBV7s#Kf7p1aU)%d6X}@0>J|g#!Y(NI5X-K-8$UcPdb2Pgd)P%!%-+?p?3IDN$w}F>
      zGh`z6u5kmA7rkp^(VLl&JsiYH%-#*L?41hsyc-<R=-IxQh`k#Dm|oIgg{W7uTm?5N
      zHnB3j>1LYhY|`+Ka1%>HXKWK|M!1P3j;Q;UvvYmBXc*c;_)az>TMzI~gxuVnG(qYz
      z+p~5#o)zmxvWS*%oCI{pcRQ7o8PhZ9$SxXNX5z=uT{KdAwXf`uuN7m#L8xvwwcz%4
      zTBZkM%mO_aU(NN;^zEj+vTWb<nI`_4t@3j@{$!iWFY~Ev%!7_(qABfAVw1S7ZZg*B
      zcO+jRxbZ``7sv5fM1Vp%MPDmumA<a#0)54vHg>13((mOe@8v4*<!amRb{dN|b}d=v
      zBFZqA&`7h63e9CyVJ@d?a|JCk8)>z<lFl|)(Rt=-y3lMw6lkW)%(Zm2*+O@kt#r@~
      z(NpGndfwbfubLh7y19woHaqD9+<#(j=D}tU=bC*y*4)P9%nP{8`~puizsM(>7jlJp
      zG0!sXR?22+w8EY3epoe{@^(@_&y5wA;h$K1U&oaFWbj=mI1KD{hJWRv->#pbiJwK+
      z^A8XXUV{A6a`ExFa6(6=7~Vl-ITuLUJXykrtX#K47h&^E@t9{!_fgyFXLcXOYCmW9
      zaV4#Wh6$T1+gy#Ej)IHKtD&*4Lu1!MW7pGY^9CxzwZi-+%{OnRT3qYQTcEj}w8s1n
      z;`c7<G;gIX=54giyn`-4|NL_E`#L1p?U(ItFx>8TA-B6-$n8!SGS}@w*128CHEt=`
      z=9YpNcuK*$-6Wd=e5Gl<LHza>Y`c4b9^iZSes=10(yZf+$JxCZ>Eubd+WArTXewX<
      zgrgBz*lQeV9-w?|1WYm?qEho=nrR*ehL2E<`6#UaC)8;E6c|1R4|tNA&8IbHcKNu$
      z!E6$mQqrDcH1J2o<UFjsTx)Cgl#e)c?bzKBJ1o+3C_Rw%=Hz{gMo0|H;vXXU*G;yQ
      z|K!6OE#Cm&A3k?6H_z8GCl5O}Sv;^e?;&4>X-E{x&M~v4^N)}yp>)M%KF-FbD&o)E
      zXaUa1;{CfQ#hksH&<m8?1H0hxvvcLsEcsOao3WoC^nCbdfj-B~&C74iMa6SSc59Cd
      ze@Vxu(7mwXIdqS{%Ka0tWx1ED9fi)P(a;CB>daS>W`0fS=4&+E{4MnII*l>kqN(N|
      z=tT2vI>mg4=9uqNrTIQBG(Vt~xUMrlrVjJ(bgubN*!8FMMe_(<Y92+Ma)fsH4BF!}
      z>0Y0o_WDxjL0>BU$d^Ws`O@hL-(Y&uXBQRcOY@hWbM&d`Zfq@zJ_Go7xuRLwg|+Jy
      zgQn7j{0N>I*bv#om!V^Cq7uuuqYPc_^oe}fsWo^C{J=+h!;uI7s5TsVo^)*?RgT8n
      zwt({@N_)tNQOH3T&KWf{<$U=uJ8x*p*4&G)i{x~DfXA0deqTNf@r}_&Y4;39z<qxV
      zVTNFz^-(Q^9|tdfqJ>~|O=ml#ZUiBPadmPa<pen*bixDt)BXH}oRhNep4E3VO0xJD
      z&g)&!4h|I={mgj!OJ`W*>5fR%ppO#xCXvrqL|MLK8tW^ilYC{g#Ag>d_CcyTH|*5$
      zb2$IS_#gg%3>+RK1r4~1Y=Y`zM!p$|3L5$Wc3X8khn=w&P>Qt|Vn43bAKN^H&r_hT
      z<Cpkle8&6=zZ%EG0RJj>nq`T2;NS3T2|oU9?8nUsKTgN4t}Q@2Oh+6jr?jN>0e&+t
      ze;@y`pWk$D2Kdhrux)eLNP~Un&`4j0p4jd@=ePjp@O#*omGU*mjq5p1T$eofK|-=0
      zI%Gc-vbY)Gzr>Q=0<!0U?AD}Y|CWTTl7Bhiki8Dl$|0|!(#I(k8@Lbo_Ld&P^)?!z
      z?<&kv0|Be_(0=|qHZe*gXzC+#zAuyMyMoeuU!hFjm6YTA8WsAkqKUq1G*|YqBF|AR
      z{?yrOD{{doa=^&J&N}{$1F&bTF8-4cmLq^gseV2pu;6Au`C?(&0a(5TSav3Z1>4BU
      zv{9*25|LE^M#!pEkd>PRWOsw?_dwQ8?g@+lyVZ%wLK{kUnG2wWIBldwX(R1e+Smte
      z?1wfEKpO|4jfbF(hoKGo#6}`**z2!k+NjprI8_Zw2+LrBC9_`*7FcjIpt57N@ibt0
      z2CzJvR2vd}68VO}GAtP^{wP@d$AaZIfaNv7@>{_224MLeV0ja;{649X&eL2agJqtE
      zWt1A35SAQ)CBI+g2rRf6PzABDd<a-R0xb4{#zfXK?lWKsAFqtFmOvCNsDeM!cm4Pm
      zVSYtveuFaoKFaa?sn8#wiT<>tu-H4S$zaLTu&hyq31Jy8uoU&H@d68O2H3OM)sfVX
      zrmcTCjr5O5YAvNnU}3%<haM6Ha5dQ>J6Xu$W<Z?~qYZx^$YSfmKRPMdX-UY6k(M}Q
      z<Ft_)rH#~MX=5_9fx^XK4sA?@Hl{%v)1eK!gOJE~?bUxWZJe#Ou~bb@2+ItC<>Y>a
      zbJ-6l+zhB$v9QboER}$zDk&^;J_DADWU!<}!IE+;Sn2^w17KMWSQ-J#O2Bd^U};Kb
      zq*$j)L`eb*-b#Y0#d(oL)^e)AQq`|c6<BaHz@CPYZKQ30WdmSoPYO#-5?Gk8QVSB2
      zUFeWqC}eRnpcchyqZefRKz2(~vP+VX6(gPRkc~6a^eAnlA4?mTLmS(njW0tRUx7Bh
      z3T<2oZCss98#qGy8QQ>GNqzrP^3Mt+0Y(*HYN^1|(65#XEVvm^jj^zxf91agu<S?*
      zi|iL9OE4=OvT?AW((zP5=CNS83$XkEu<QXW_W+iA0n1*%a(^;doKtDZjPz51MXge+
      z9sY3gLsw~~Qj@ACfn{w!u5utRL!RJF-hgUph-@9a7XeD2jPxG@P={%l{}CF4Yl;6+
      z4{N1vwOY#W;p~tAR_YdLrA~pCfsG*h7>!ueI)}9z9M(!uK&GK&d|0gyV>i;iJr;P_
      zit|5D>HZfe%l{JP`d_9A{#U5T|7#D2B`$|0{3%X435O*vhb3;G1SKTi3V0h-yTjp$
      m+Qta0+lR59HnP;lhDa5w7d8GrXi|2CmhO;Z)d3<(ZTep<T>}yT
      
      literal 0
      HcmV?d00001
      
      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
      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
      AHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXRTTj9;9K}x&7#9@~#k+WUffpA)0vnRdn2<p9L7&Q4#&BuLE=InZ4}JhYl(8+-
      zkn*(l*K>OQJ^TLo`~q-?8v{9lw$D=29*(S@Y4=BFZxSaFb(20#sKXX%VjxdYpVN10
      zhLri{a5DGYgdiVzbV^X@yjop{pmP7=dW$6BEH+RkXevj*O=tLjLSP8B<4Ao~+AYpQ
      zk1~R-PWOeNq}Vd?6tFU2&uFB8EmEYS&(le`()0<+5)DF5#Z2Ow!5>M(aG8zwEP|!V
      zVJnS@S5c3g`O5T=nZ`37tt4adW@&k1ao{s=YN@Fj>nIbK<F{ZTk7LnEN4>2w=4s@5
      zgFsH%+GzAvR#PMp(c(V<HBoQ@MX@);E-$_%MJgJpVp}6S*wsi4b&WKzr;#T1HFAKK
      kMh<bLkz<@_<P>KbIp1(yY>>hRY2$MJ9<ja>J>+ox3ya=u#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ%}&BV6ot=Vp-@m!RQy}GEE^ji0a{6FOqxLALRUjmp`_`McIwZox$pseDC3<W
      zA*QpMGvB%A=HC1B`}Gar4%aps3^&WX^89Ev8GC*(^Tvx(7Ce>#mprQErjj-+hW?tr
      zaWCWf(u)@BB$f=#*Q_d6414bAiNU%5h?9*>MPAzIFbs4c6<!$a9Ll^GsZ1CwH&h|p
      zeVK$>HAyMb(*+YDvV`ZV?pe{!mVT<JqxF0x3YuYS_$yv8w6ziDJNzi}rE2k@=hN;q
      z6P$d@ohsJVED+Tq(=!FSa4xDMPNu11L-QQBYOxjrElyVidUTy8TJ*Q+XVKdx;-G7g
      po<a6&<N${?(l`1X8RXa?1B0C4wAT3y!x}lq#eYKjk~V7K>JJmtUONB)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBrX%6g^MK3xu`BAX*Hy+lrW^Kw71~rA4!$FVH{`C<If7F3FOv4ZE4mF48Z)
      z&G<K*I^&FA{9tEVaAd}Q_eVLNXLk*uRX^<WdhfaCo_nAD^RM6k0B{+fClC=xH!Uw;
      zs;p?md}(eaUu>C8%e0#FR@-wEhzg8-q3`K=)6Q!TU8CqY`a}P2)pZPgS0HZh>~suQ
      zK+JP<)wE1^Rv?zCY1wswXvuCEN%Ub*K?3~)5O_&J3~_<eWz#a2yxncXS<|;$hCr%p
      z*Y(!A?wE2P9!A~!W=G&``G0s81p4)@ZEt7Ca0DVXO<;hWDj~CIW?pg`(5<b1$i{S;
      zr=&Bg;B`r-uWfgd+>a?Zi#N!;^T2F#$}D6T5>N$Rvz=z%-ff0rX~ns%<>E?lF@X!b
      z^hIjvRx?jwsGsJUt%l+BV_abPjwKUPU0e0Ts=BKtaUK&=leYy%GUeyp3)yvPkyVhx
      zMe3@z+lJL3JEro2aTu#0J*E^)BTqeCJ0K$PO6Elu+MdIN9NtmzE@r5XtXxU=IxNIw
      zFQK*jj{T+NU+9H7K26{~rg)sd_5Hfhc1_!oic6Ju4NJBM*+-0hX4}KRYs(4>sy$l%
      z50QC4&@@~vEO9iGt!c7)pC~9|nAKzP1qNxdY<J8cdS52XmW*}`<AF52q2Q)0bgXWB
      z7F(NlnPb*rV>gWbipR#$Xw&F)=_PR+EOc35=-4IDSHTi00*O7n<rx){82Psn75ech
      z8(cLzs_nU|y`$3JY^XI^vsGE;HG!#K*#q<wnxE(_BC@9=)6@N^GJH*S*nE6yw=lu#
      zvzbE`lB>4o)Quaa|H6vB&wE<t!uXVrKLmowhsjl(Yd%(v1Ki!@d4%&|?&2YmxxS}R
      z9&;PPDUPRnSB;JzB8d`C^X%2Y97A}SJ31nTVS=#}F%p8#hM@6W`UGCm_q|QLat~I#
      zixnrjq{kQ6#d<>PDC5lLp5P2W<zBjdZR`hJ%B9B|-ya}d{TbtnM>w~6g!7xJHxKbv
      z`T&^&OdjIW($wSuE^kaddrVAV6l1s&=5~P+0Gm+o8ROsO%@%(RI`6kpKpod$_#9^#
      zpV7M<XYszzQQ^r4Tt(=mQlF2wx<bqXu2MBY|5=Vw;yh;=Jx2B)|H?%mu1pkY`9YMx
      zAPgd)QS88ZhSt(9*-ihK=MeUK5RzSlxvqeZn1HNsH7(Wq5kqpmF4y;dLg5IveBsi+
      zVS&=6mJhHZ?<isFPOuJa<-rCId|@}A<$ScpQ=B<&7yfA(=PO438sqo|^PCs)EjI9-
      U&oOA7YFElCr4Pzo^K-iUH!pErasU7T
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=%W@k<6g{n{B@YQmdEiJ%<Pd@^Y!4yk5o8-AIdKf~BTg`tN`V<$BY6^eMl}zd
      zuwuaic6<R<tg^|1P(-dGRj}uSSOTYe23fIz#msc~+;i@^=idJP&tHB8a2Yq#hzS%s
      zcAz&_*XuRCv9PY!x>m=w?9OW7_X0nSguvN*#utWeIePt}Z`NGbco_b?<-4Y_E0A*9
      zZO`-t#1c2NmTmd-0`c<1hCrg>w9G8x7}b!*NCpBgXh<R@aJ*^R=1Q=;WxBVGt*$AM
      zYdYITcf)WkxsMJL{*L7doNNA{&MGsNmnJr3rV}z#PC%1FETg;WSznSoLy4=A(2QYk
      z{v$eR$cm+~Ga3p~SaRD5Y(LABvl`Axs)Tpn>ZMT<IPJI{-P!F#j@4@mn`^c8+Hx8f
      z_){6xHSCT~Z)jpYu(~bN9l=F`{KvMes^mK*m9b>_r7XsANy>dq;AFXZ7+#eHjblPX
      z1+UXuqt`R-7F)(rj|4}#suD4!VH&!?i0_0#1WuHXLKu4<m*neB4OcKjlcZ-2Bk*Y0
      z<glRIJFc@Q^;d^!4o=f}n<X9;aP7gi+4C*OCZ{TQ*R<t?P<_mNz-ou|4`SIx(GwVJ
      z{)frbD=@F&ec6-bo@@D(ncU)3azKP7FxoNwHOFJyWnxa?l0;n7a2*ZVMKuTs&ouAT
      zo8BNWLs&g%w@p`$(Zt=loQ9@`Wvq~8D`->n-MT>bmJ_(!=5<RBYySD0GA(PT^#t&8
      z5g>=0s}Zg__<U!$o8`ISH(S}~6MqWr33o9Z<NKIG&Le@VjQs$|d8UQYco8pgCz)~)
      z(;`tZo{d%t`^f(*)gmQaMHV*{)u}K%q9PC{DUiP5)PQt8B285a&q>QF>>BxQ4soRh
      zTq&H6xLzJ`{lw@51<qD}#uy*%^FnW~_&ug8g<`9Z;v-yKeundRo?-k>?v;JKTIi$P
      z$K*cVSecsa<MJm{zdfNkkoyeYq5^5s1zHJwMq@Ua-Qb@VFKwIC+hMIcsN$YdIK%AH
      z?$9{7dPgbL$nq{%F``ODyvNlQa#k4;XEt7UzGbUE<saF~e0=T^U5@uL_jODZ3qSnz
      z$3f3>szi^;0vhcRyr<HaLg*lUp8b?&$9Pgx=>_U&M5$(Y9!^Cc3(Bg;OdJ+0QNUM<
      z_3$(-4#YN?FPa94Z#~7>fyl6X-%#MUistAf+)&~KmhfRDN#|E4PLl4U9}lVdZb(fs
      Ls!?E7MXmh}nmZe*
      
      literal 0
      HcmV?d00001
      
      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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
      SIF5Li2=qdTQdx_|lrI48dX_T)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYOH0E*6ot=?G0|9Ut?!j6E_^_P>y$#9DhNTLmF_3$P)FK{q!a&_E5U_7z#k>v
      z)CUH_h0A<*&YU?jAD?gU04}lZ!Xg|`bnb_DgI?DU`vbqHCRci_guc;Fxfz;FikS<W
      zu=gmQg|AY-FN`Q{I)uZrNjILGOeE${N^sgrE7KwDpGLn<|6GEz5y1}AvGlNnwHjQk
      z5bBZA@;0BvGP@V?R1%s|nuzI0WUAnwp=}=2oNyAAQ&c@AAXrKhb}B;<ykVMWiM&?D
      zWd~Ibts*^+K%A4X%s)w79GCklQwJ6o;GAE)!h7MBg&KEnF%9@c8|%!w-zsdN&cu2&
      Mu(|MRGFjOA0-8Q$e*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY&q~8U5XQerW1_LzTBWEbMFjtV!E<Y&P4yHkw9@+~UFu4kNV?ni@+5fh0emQN
      zQWXt^VTb)@zy0mZetf>Y1GvVX3yW|vO^hE5hP|#I^oM>=O>dKl63M{mXQM|tlVa||
      zChR|nrSMhi_k|Y4Q-^R=#B`&D&P1&LyacDM5~VwYgR}6L^`Fx^9~0~#ok$NAY*yi7
      zolpx^BJa&SlG%fZW|Ghd(^$;LB2&5kDcbr`EeNM!v5(SmT7*h!G@)7E2f-VqCX3~r
      z%HKOIg<Rz$;26x}wZ=b69NaSJ4OSgk9Ds9i`3moacNVIgy;Zf%H*T=Sy7}$GHfpTc
      Nk2-c%tOhF!yI(c3X^{W`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBrX%6g>|lgrwU-p;F%Z=1ZFdZESs)iYB38Y6K)S7SYm8cnE7@m)UHv^_w64
      zsNd{w@Pp3SFw@TX1N>2r=k9L9l89qwvM<kb?>Xn*d!GI4?`MAkxPhGn`V=lT>{hP0
      zyjsZTiu0?vLTh_lyLzj*<u13p{g#(NtS2a6YkIC(_aZ?93e(4t_*OM{Te{-8+T2qZ
      zZfe&ucdOcMT8@3UG_RoUD4Z@jcGEL$&kv4Mnf#Q(K+Tt;aIt(GIKOK(Y|Cy0`eqq<
      z%d#zRP9c^qWvaXtoh_Y0KSm6k!KgxiI#W&Hr5=gLky1E^^O7-?gu;XY1E*7bnldnr
      z3kpL`?FF1KN}5QQzcmlcoaN-A8?z!}sBGDKskK+r?wVQK)e0kJr_TCKc7gBVV$9pI
      znhICCYU~*U%S^B#73+H<sgh_NQAmoU?QLFV;hKThFvL~U-gNv`g}5o*lHC~t8QC4I
      zIW2q3bRR2>);StaZ(247y~&ySgSwi|lpVK`bM_jcG4>tT6V17j1P0a5Ch%sDF#_3v
      zef(G<zG>hsysdD`a|(|=op)W6+_7|KqmV)l?@G(xqtf(7Aybvse_-H4u;6~jtx;r`
      z7+Q5!@;)*!hmSdZ>45}}rT--|K+GE`ph(h&<?IXOk)uLC`jEE`EMQR~MaXd7hwY8d
      zRK*!319$Kl;~Ux&&sDUikY@Xi5*AC#E4gs5qTK_lu4#BrKk|IW&kZbLIbiG{WYYf+
      zKy21$*(bRtG6ps??&{DcYX(;3RGgyf6{l%=JdXYu@m+P#z+DhnYFcgCYt|kOH+`%o
      z`A)Dx?t0vvm63gI;2YehN8MmiVKP!fS3*#32mC^`+^$e5F==jgP-9K4ABw5A4Agu#
      z?{_LlRh*Vv*9(>$wy~ZQbX|@ru25`0|8ewT5(y0QImr)BA5u6gC!WtTT7Ct19p>9Q
      zV%!BLvWGaEeU5YMQ->IPit%jr4~(}l`MaNfk=GH10!3bLGj##uSi~i+j0FI=OnUiE
      z;AOl*c%c~$X_kChAnXg8L%jMQEM>ARQRFhtW5s7Nh{XJmMaj1y#LkmnN=S<0sWz@2
      zNly72_t=N^h}2|9Y7*&CDnA}4z-7DP9uUqv0q*q>?hRZI;r3X$sLMP@ZawJfjYGUs
      zp5gQRZQPRkCvD8nWZU?(jq=QI4DN$8e2jAhcBsr^8y=E!7uR4%s54<DL!9;sz96L%
      z_lML4;z-km1KLXONY79la6qSgN0vuEa?t4EPNR8VLcE*23*KOW_vNpA4wMe~>pw*D
      z2Rr%e_$tiLh52#jZyc2wB>xymj(3tb@gPi|BbD@VAUpFE8{ISciLLrM(wKn|f$^Nx
      feV>>oD#Yq`OuZZK7moNz1TN|r9gcY0ufFjQmqDNY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=*-{fx5Ir}L)sam^7Ey6cf*SV?MUwy;jbZ_&L?5gPTyT`kP%{(Xd{p0j)SvJ{
      zt6ZwI$`A0PEKd(Z2%+Ls&7FI1cb`7pr{~Y#pT7Z|MLCX$!ogL$o-5AI74o^_)LgDm
      zUs=(vtCx$*ZpmJ+`*CzC9N6xZuX?^~F8NzNF@^oxeR!&vYjr*EyV|TN^my8}%(aSk
      zJ<G8lm8KNbU4`96$M$^F_5<fAiOHiBV%30&!f1IraDL5NwJm!!U^hX>>y~Z#lM2!F
      z(?X`A&{=erbqXEmGth-S3LWW8C62ucBmY54p&$DspgReLAp-_>r??w2upgreU7q%X
      zl$!+&rpqtPS7y#~a!vOW!l1is+4@1fR@Lr;SzXf#ePw5f#hYva&*5dK|J?Ev####8
      zApwg_n9nx*5qVlrNRrL$$_iK3n=WN4LjQz;qd3NnIH5(A*cDUyCFYX`vSLmKH#Kcb
      zY|V6Eit&tr(_)O8&$YQsUBob7Utf1zU-Qf!J`ul*2F~F;{anrDa&yJNCF%06Rqa1?
      zJj<uNfqzM?*9~07H74@34ieooa6=L$)*HSlM$Xmk1*@hxM(IpTKPVclKCKfX&6I&@
      z%qYa&jZ1~$_5lhh(rkc_rrW!Ua7pu712r}8)ZHaLV~KtPJ487x;$w`2I`~Er!7$=T
      zaG&G=N036Vj1c!SMI0-xJv=R<lU86T`vbk%U+7;P|AB#T7|dqBV(>eLzXah2xc1Q%
      zC~}=<=nMvN8wYtaumONWOfSz64&w;nmB=5a$<s&DBn5TkJC1L`rUJt(xjt-yOE%z=
      zNFx)#aa`KKjkm%*Cfs5hxKjb#m<(7OxLhloNw{hoxU(TU&S405E?^5JHd=V$6AO<(
      zS{S1Rco85O!9Eezsbp%y_yWDfuV*9v@=htbs50PEVUJ4sO?W*GJkEKD*TQF_mCx&@
      z_$@yCEyDQw<RjwshT=`OBlL!Cddt~(*VL-skPyRhD{NIBg%CQ&uap`kbn!Dc&3$^`
      r#4FmU>o)F$!IL4cSa$pyimjS`;9u~uiAbzLB!&{lR}$Y1GT!?KK2R0E
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U3U{z6x}xsgoc3vg+ifx6fGucX~b_WqD=@G4K2_R1k^A|Z>NLlOud;v3qI+>
      z<%19Eo4<fpSxdrNvX;L4qg?JYGtjgJ7cY~!ch1>opM5^^&%b~E1>h9EO(CH$>Uf=e
      zarSayI$u0{IbZUc_Hw(^vIE!m<^rSbr4*71N7tK8H`;-*n?Z5j%yxq1PN0x3l+V{o
      zGiS@wGYYDpu%qaE?ZEben%(N?KE?zuE9GjnQi=`bQYmb0bQTu0Q8-fB5T@lip6fYL
      zj44_!+eUkgHdgVCllPaLnESGC0=v=D`N%Y4E)J(%&kfEfWHT@2aXnj8NEZEhokkx9
      zEev3<LSH6ZOOySOh5b07V6}BnaGjDj@7f;iGjvPgpu))i@lRtIgZ+d#Y+*Yr0X%Bq
      z7)BKa2-wS9VK`H{W#6{*uD?E|Y)ueev9JR>1!2s>3B0DT<&JR!EnLcy!a&9K^h{@|
      zp-okEQP@-Qn|7;a8&}TpWinWF+l1So`*XU0TBhnx)!*4^>w3d=>N-|HU03Lr92OS%
      zltfQi$P2H2+pGKGExV#jp0?CfEZ(v3mRM|S_#JQFHmm&DZ24^}Ka3A7OyM-sX}fnx
      zo&_kUaRwi!@Db_0MC~n13wSz|rQY&AM_`K<&Whft@Ve@!a86-=D0IvAoP5~}wDIg#
      z$r#_HQNo}+$`(GwXUs)<sc18Kg^9R6p<8v)_;*CsscclW4Yw&=P#An#&+=?(rKy)?
      z!W0sEMPc8wTK9aT;(gk1Du#P7*Ab+}V3Q*n=(_812<se54y?k7O!h_HUKYc6JW{x_
      zX|fC9C>lM_(GG1zwyPFC$2EoRfnQh+^t3THtCh@TZxqs~;)aaL7c5`qMj`6YuPoGY
      zlL`2yL6RHDaNA6YU&BHZ^Bhv?95Ec)IHY13Aud>Ou*jf}>n{uB+N9OAX;aG(@|K0K
      z(PG^R8Q+Jno2{dX_AK}yUfR)tO#PhZa>-D>HHY)%*^Bx3+nhGH-KOSd3-n45Ml=@M
      zkp0Jq&k(q6UJ5`)HQ}-iMtkgK4{s_1YrVy2#*lifTDT*7DLv<ROjDn8Wxx+SXKE*<
      z=P=4WA*(h?*Dct}Q;Meqw(;EGb53KoEGB;2E$fB9Vmp9ceD3DyK2ZcGpL>iwxsfjR
      z<(^>p+G8AggppkC5Af<pZu}9B=SF@*s_y}k$u3@fNS6dMd>#n{Um}sq3_ORuY=RM7
      zA;B6ZaTQtG9E(CAhjE@53=^cH!nc#OO7NYVC8jjZbAsRcCHkQ*USA8A4nNeH<;@Uy
      zC^CEo+>bZ#CSjDUp%=ity%EkK+~N!1-i_hjV_uP9KQW{THc58JBYocQ;zN0pn=T3u
      zu($FAC2Dy7!o+wNpIn{z`ysu-(u|-&|25qVb!hXpgTpNU7*?pzDo)~Fk8YE3dWTuG
      z8O#!CjEpbh5|I>DpNp9-k(cO}eS+$>h*|A1u2;tS{$&@o{OT^;@mv>6U3@eCJB=eU
      zL+l~oJNCu*{5QOhqxgaP{n#T)HYPEEgCu*KA(ixN9J&xv0d_@USDrS`n$$Z((SByL
      V{K6=|hR7DZ=@TO>+zt8M`wx-M?ZyBA
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Nmv;&IjkW8y{{c$Z_CNpt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`HTW=dx5Xb)~-o{rPw+X3JH#8+BwH>HSxD{FozQo{Q8fc;*wGwEPtdm8~Ze;I<
      zn^ayv;+03>13-BLDpMgSh$kr5F9BZyMERey_WG8H7h)yeIWzm4`Olfj?SH<y1>iv}
      z2QeZrw`IAx;_~G}K36PV&Q(pvsT+&drm0)YuCwbpD^A1EcY@Faj=iey={eKRmCd?i
      zH2VFc0yF)r{Cd-A=o?N+cXTgSVDy4%na)LlsdTkN>*bu!tO;mEd((&@fM^UsgapQ_
      zre$1mch-%@s=i(~1ddeg4ZXgmH%w`_4>f1oYzm~S{dF9q>AXO|b{&Dq{Yw!zRI9tq
      zZHA>~S&_xpH;i4!w5?_klLF%%0hMLn6NW%Ch6D~ra16(TNC`}I;(CR~a0KJb@LI!k
      zs7FgzGHddcnHZ*V4;_1Y-K9fR1cK?Sg-Y9hpY+eNq;<C@FmkoPp4zoq)1Zz(-LM2=
      z3R$r2x}nq5(pMyzw?o(!fw1R(LuQSr=ap@{!M8m}aa(T)gp{LV`Nvh;+LElL%-SJN
      zkNmkq-cpBAuG>0;wRBk~djc1NV0*`u^15zq<y1fnPl9(JugU0DoBV?5@W$k86<Ooc
      zF%Blxi?Tpe)ljlsb>UjNB*}|-CI~tcU9uMu!?R$k5}PW1)s_W!;HAuxgg+O<0v;l~
      z#Hv?px3OVxklBXmgC^vR%z~4AH^5&hJjQR1B>#qKUBn1Kz-V^<OGG~7(+DGgh&o;5
      z8)e)@d(w+S9AmT?F9(DS&N0U6o8Xy7>uyDTRC$0<_6Cl&Fg3`1ffc-{xUw3?wYewd
      z<P6dBJdrhqB`wv$i9y`U1iaEyX4o$?OzHPBg#^zIfnQ?D8o^Nso<Ba_!l^;D%}(qp
      zbk+;?(NWCdw5mReG?T~*qsZ_{b~=msp>$=Q$f$TW^#Ov~$It>T+&`G{9cFvCM@-z$
      z7^jQ}$QC%WPnQbJE9sGJ>M-tH+lTxi@8+W(a>OS`{5IwGA+J)oBqy^3r>?zEw0cT}
      z-c&|cL7X)JpRi}waTK5S<VyOvl76nU|3j|Nnd=MYy73>mxRcb-Kc#zZT?+^3@<b*)
      zk)DwpR6MD6>T6c<4Xe0?Q}~wq|6NZt3%>FNUpbd}sG9G&Q?h$jb^;Hdc>6uoX8D*1
      zz13?a`mAK1HPdIM`>eBl*15LTy}LQJxj%4*f5a4SbGCoNBlsCb{K8%Rl?(P8cJO<T
      zGRs$HQJJ^%kKx>qvhM!Q-o)cAJk?F={hRrN`}=1PxPO21YUB$nWbgv>Y?y3WID7gg
      XN-Zo6g8w4;?*qYA1%94@5nTEgUvyf|
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fvg|6kUg=1WLG51QkJ4Xse~jRVkoQK$(Gp1*@PVh8Sy@(lTj^%CkS>ldt+x
      zW^}}N|G=M7SCT@*Oh+G*bM|fRwfEWk=kKp40B&PZMvXvwCRdCl)>89xvBW|umR?O8
      zc^Q&G%bt3u#<FTI6I<Ke(=|(=cG}1p)~tXp6iy3BiTo=)03YfV_)#m+ykg|^WO092
      zH#gPYtS->DlGoI1S~U$@E-NMLjZqK?u2e}K7idzmSw>m<Y1+r3l?s<cRxK3b|5BLx
      z>n!QU68T)gGK-p(H{)SXfD6k+fyH;4eqb5&lhG#7SIM%>P&H>6s%<@UlhMH<D_#zl
      z0NT;1-~zfxJ)>Kmv;w1{XP(S1cQ2P}Tm!g>%Q7wr^i)z+aa7QQD*}xL-I~)hy-+Zm
      zmP?`SaN5S`Q*agi0u4F+ty_=A7a2UqsN4%LrLs!K^>Z_@VVOoQQ-=Wo*d>P)gb`so
      z&X>%0?GJ^$MOR@Sx9Qzd5XF!{D*@J3Q{C4sj?Mc6oe&-8A>6*%S%(!4?udZQpd>>a
      zS5Jpsmc(zxm_3x^95e6ql<ncPj7iRZrN3uyEa2C&>d_I2d2n3@0*dAg)lS)^!4;hu
      z6X^8>RI6G*Xq>YDHHU5nzhy3%YG&AtHgCi!lfXv4XlnYBVXs-hS=%AI9KJdClM4>i
      z@W#F5U#1k}$+v?)a*Vn!jyb@;Z3ZUMz`x=;@NA@1k0vw|q=k2hmR1`^OgNChVZ`?x
      z?Ii@0QK^LPC?#JBy`P^%B<i<(ZPzwjBlVPSP_m6B3?_XO(kBc=gVKl-$+Lu;Q+`{~
      z?LRri`5=j)6g~O)=hrv1ZZR-+jL{!XX`S4*33Oo;V?6KU1$KDWa4vyaat0R3eu?}a
      z&~urds~A9%-s>1g3RBo*)Kfgf79L@n(a-Ucx;^YVeMq5>7>BrnyFBgN6mNE)4iU#R
      nGugeF;mt?f)7un=shg#4hLe4d86=`NVGi@`nLvW^HCXry(Rfxz
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJ134B!L)&4o}y?16Zxj;x5WPnJJ#bhQSf)I6B6v7rrg0c!$Lr4ZP8WNnDuvn?M
      zms+)IUBInwL|e5e8bVRPF5vRX*VeUet*zBo?PB}c+SZouIq$uhxmjrG*Z*ICzq#AH
      zocEmPtnVA1|HpUs5z%<{v7Z#vz%?yx<&_H-&X`_aIdft8(nPDDOs2f^>(|$pH`lkU
      zDPOSa{CGo}$zHN(R$b-XCAIUbYUeQV3cOmMu3I|2ddaN1#na_g6;r>;)|OPdz9qf1
      zzPT-KTyo?HG3BmbU01na=Bydh7tJy-IWt*!RW(x{K*Rt%)GVo9Ty<vkEWBMLuR(<F
      z=1wTD0!;leV^!_Us)e&E7gsH)HICpvCO_WRE~&1TMwl*8RlB%uQPqlBOa*J}7NwJk
      zmNlB3x$)+8@g&m;)vd`j<*jSixGP`QtIcE#+Em}t*euPDuNH1>EKjaYxE-9)obPBF
      zn9|UkXi21}F&V`rOPS2d*2Z`aNGY<(BA=g5!0o@9Ge{$8v`u5EkjXbik0(Q%Xwwi1
      z2dRXjeu^*+>PgI!bfVd&QYvH0Z%D@L({V3(n7Fv)pD#dWDYt1T4TC7E6D{%DwzaF`
      z$;I`nn&TL=y0xLcd1-wzA<z0{kPI4)Ri>K~De$<u7lyzS6O=SEO)2id>vgTkv<y^U
      z)v~TF4aUdo*G_f_EKjtSFN$NH=EOzPWO5LMoodr0I*qCJm<G}db#Uv*^k_o^fe9gi
      zY4ouWD3naKX&RjlhOCLFE8CLEcuV@s)>I;$Xl;R%j)}aIsvu3LN<Ym22)pB<FTU6`
      zlK^6KZGG|rT#BnomP-FQHq9mIT8^-|uDP{kjm90uW}0tPwe$%zG{qY(SX{rxPqh%y
      zIlUPpt<SXSEUJLiWu&T>#zYdTj`hg5MK&#_CD1}WOG;}I#Bprv?0dRpHl0n&VRSr0
      z*3~DI^_!SZJGOz3vXFCZ`U0H`mOwULS`NfytypDqeJVBC^CAO}qljTf>&AGa$7%qK
      zBdN}&l~m895`gv~SFgIkEl3R%_Y*#QOsF%LO{)o#^2IM~t8a$hguL`QR(5j93SoW1
      zrt=9B@9(H{mA0r2(8c-QF768Y;7DJ~%(B9rN+w!sQwz1iYHNWcGV?rqOv0%0%;OGP
      zbu?w_#ZFJ(|8OCGy3n<XJq?JTgw5RrTr+*)qPf$ngOsGv#+*v><=}3EO&i6%SZfn4
      ztx5TIkxgHuivcLH!<F@IDR95k%l*Yo$<__pO1Z{MJIm}_KYa;$m*x7bjSca2j;#Q<
      z*NNe1O>U|aAm#Vw1r%5}(Y7ULz4+3)bUn}$Xn<!~RWIZiiAF5X*W^02l4E8)@Y}kv
      z`?Rk3@Fk8fArC<rx?$6KEz@y5rg8a+uQkU68qd&<PW}_yf4yk+*R<`=GP0K@cd1Sf
      z!ZHT67xct^-DuNI^mXu4jJenb2&<buJJST|7P`$(x57mBpunbWv>jTWNKH?r5^Gun
      z3bT`~;Lsp1Ox!iD@Y5aOU3Lry^E28K&5dyY?sgh2KX=>o4Y~(HtzWk;-U4WpdB@5u
      z^eDqj4$yr}!J<T}sHHVsR9_@RJ|IKx=rNM3abDzhBM8Rs7JAU8hs4<V!J^vwwQ(8k
      zTQ)r`?*i#or-SIqqY|`yyN5yRnqsLaSwVmv2W6Fr3yZ|mXv!Y-)00ev-PLo^rc^q<
      zHUl~d0yX#>92pJl1s{q2x-7nx+LW3F{Ep}Wg&u<ftEqn%t1j<*419Eqd0CrLuKvzi
      zvUWCpY-Dt2(Z8IuuP|!Agi(8g^bFPc>APT2_c0x5dEA|Nhwt0;13HK>-*H1T+E%ZY
      zaCq)95nWZ%BP?{f#~UjflMC9?2)%T8_pD9N(erKuQX7Zx9jD7QulT6W#2Y&P%UP;Q
      zs{Hg{SaJ6#)gdRT>Cxlm&|&(apZ@zOEj@(W^dtH)lysHLkmGyMFufV}069lynJ?3;
      zetLyzcy|)Ix3lRrdfka&x;SkXmz*;rNH5SEqG4~sKNX)dLt?<g^tMg!&`+ULP|k&I
      zEsGOt;Sq+zf_0w)PxzX~S8)3Ude^3((=X5~<>^&eeDqEwOa1gqreWPjoeLFij;B(Z
      zZ$WyGJ`nnTrJ>QiWiKvIKAHx3Wm>W{2ZMfS(?{e3G*WG=QV5z5Z&%hgH>YIzu$G7E
      zw>JGwVqI%PGLeRPnogex$`J=2ra#*BKlCY#x`W-igarF_DV=UGjRm8+D?mo6ymSQU
      z&#-Dsv~4d+w>qY)p{cFq0uaIU7n}Y{e{<t-tvgKLJ~rj>n6ZD?vUs|>Hum3%0DIa7
      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
      Q`jz@M=wtPv07HHBzY8co8UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%OHUI~6#njXI%7+v<xyTzd{rs5wIB%^swPrvAgPc5VMAgvEfYGVozdyknrL+4
      zD{kDgGOpNk<3debG`jU~_&?O|4oyT!7w4Ym{m%K$y+3|^?EsiZR)-=mv1d1Ph4qc)
      z+quG>jU2s=rtMjEGdZtA6^QK{kBnT+u=jH7<$bf_>Cgm*{b<v(YPo__e_*(V=ePoz
      zSG5|+Iii+&!RA?Y!?G>!mOvuayKH7#KrJ}CW(WeOBhYawi~yn$gb))5q+~&~WZC9g
      zvtBmcEu&mB1qMq_#i(r?t|k3$P?ci|O!n-Soab12#b-j0=~U@|*7=i>nN=NQ|14<J
      zb1i!>j8RNPa0ZhCp)Tf@BM?81dQ_U17*hg6JICO=DFI<fJ|`w&qAZ{^m{l6IM1`_S
      zu>``KPSdTJcP+V#=-<b@B2fe)tF~>rg__Z5m|RG-Xjf`ZgEQYVy{faTBO@@@>*X-V
      zmk3aT5V4qi5Pl<t5<-~KK3do5%Sd=O{RxrTFX;d1*9^#*pOLp8Vvv4>cVu)3!_-_4
      zMvhR#0K4dnwbI`)dVrCPucGO17|l>VW4z5w;s7OPsEW)a)|g5xsoBoB+If$#uXo#l
      zMePui*|>IfT;;*5i@|vC09riQeyNGLmhF7_{WBo(*hyCpp(<^*Rv<@SLO;(Y&lV=|
      z7%4nK7EiH&XUO9@mhl2Bc!h1e#tz=#KK&}*Vju5(iYrGnx)ezWXK~J_-NJcV3ej%j
      s0;WiK0oQPmmP)ifByow0Dl&4Jmd5<FKUE4d)N<W&d0>}Wo+{G7AH?0!@c;k-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95IyT$>>8I8Cr~b>1SsGHT8I0^2#FeyB1Nr8Q6)e;ILRuwa@Lh&Bk@-t
      zAy)#458$H^v$my#qVTY@GiP?r%+AcO-`{@%xQ!<&6o&P&NNjhvzx~{HU-WIV`iY4B
      z3Ey}r;^?!AGQ-M&_sO#ZPmJx|!2ut}42nmBbs4H*ftbDHuN?9|^@SflV<=gzeTK3d
      zj<}8zmJKXHXQ=gj!FQ6$fJbk<LBJWzUO4oEeJ}E*U4Z5Iqd#S6_WoZiCDh_@FOGaM
      zW@uQgxsr0!QE{4KbyjH(Zzp~*;*pL9mY2YA)_@94n&%B%z#4tTJ3QoK#IR}2k>=fS
      z{>@VmIvUogP46XBQ!-sXMo?6>m_Sx@)j$PR$#G3`TxVFbx{E_JSTvsxP1)zRft$ER
      zZ5i{}4ZJBevHn+EGSJbng^miF1~O|+<}zqe>I^Ey?|2iMT?2Owm=e?X!Xz5<SH2uu
      zZMHaDl7hkL3c;g{gilpGqOLBQ9z!KtHZ<wCC0b5}4t<#<<RC~&gf@o!CrGpDW^`BD
      zM=-u-?vo^|8R()$x{*J?3Qmzldxbhl8T^jOWN_yP8gGwqru_}8DbAS}Q(PkbN{S8h
      pMy?ayO0h{siaTE@M!_u4>$yCgB9DT5*{l0_K({QH;UOMF`vaJm!KDBI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+e*Vg5IvJtQ)9GR>-~Oj1r0t|3R)EkMWISTUu12Ux)L{%CW3#ZAPNe8fFC8!
      zYQduPAv2k?GiOdt_T%&Q9l$o$ZCHerrjEVRadmIkEA3Z3uBx$))Qw!J%7zMMJyL<T
      zktED@?L5#?cu(lvQCdYsLL!&15t5~#Asr;p=b{I_gmgt|c@*DV%J5WN`jU{T1a;xp
      zM5s*N29wd1Y7y2dUH5e;D-cpqa1w<|HwoEXzH%+@gy#$0^nTESjbXz0UwAK8enW;S
      zj1a8NqJtrf8l7W=(cFKMe60_J2^W)?;sFs6sBDI2T+CvQKVID4O5GsL<jVg=w6_(^
      z#Da@KqzTSR5QlYnsEiZoU*oroRDxU9T81TGv|6%dW0kjeGlbCJVF?ykX@Y+-VDZD&
      zb8YjR$C(VW@q*Oj_p!s#90TX*=ji@4a30`_j8KkdxX6^IFZ+g}vrOg%*^MWRKV$kC
      f^AC($_~p9j;L5hSEG&L^En%6n!(4p#u!htZ?!1h}
      
      literal 0
      HcmV?d00001
      
      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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
      T1S^P-UloE?#K)2+e**sjm@txV
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fy$ZrW5QJwn8jZhTt9{aVSX*gC2nb3P`!gINF+X4~KAeRQ;6sUPDn)E|cG-`e
      z*~jyC2Qb6HM2#>Gvr@QQf4LCu$`?ExWm2lWz9^ZRFbKm~UZqH67K-gDR)HpTLZx?k
      z5$Pz;2zA@>2u7jQnZ@>;Bf(<AFSA3GD)z9Q&5sRlHE-w479Z@y{*P9N_j!2<)H+J|
      m@aQ}4^qsUx;7I%-U~u{dn%odfv?^`Gs<eYH6NDbu8u~BXRzh?D
      
      literal 0
      HcmV?d00001
      
      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
      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
      Ggy&6`@_zsT
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTT>KA6#jZym}MPrC<+P$6BD@ztMQUVNCGSnH?Ck<#Q-s6*lm`9VFqVs5!75Y
      z7fl|lB$bL(UVQRZ!Gct%ib<@>Lw;0}uV)u`QLIW{rhB?ipYwg+Ieq%Czkm4^z+rr?
      zAs|qdwzH9F|3Ft~B<fg}lQcY;>UYO78iE4bCXHDmVi|Ti(mysSlb*oN?$|(2^z3M~
      zGagTj^3#95r&~Y_3j`gW6R3>)r?Q@DMLJ#An2(zouT7v_dACkF8G5P6+4!Clo@?4^
      z8tm9_WHQqAOvlc2n;B!wk|}{ud(tv((|bdpq@i(;VWLh-hOrG58nz2;EntjVbf9Ag
      zb_(oD$&BgBROgz@glBkJ!lRSna?n7>CX}gJm5x%BY1l&u8$b`E8Z|m<v00$3-G`!1
      zJ*PuMD2#o0LBsPD#y@IHFB0RYGnI0s0<#}43g~I+#S84K8X9x_pRjII-VW$!K%>AG
      zo>5}uJu$%AsbbX>l4c#{2y18&*j*4KW_!}L4Xej>9alqS-DXbnuB>ULq#MFvfm$D5
      z{RAV{o0)ps@#>9ak`zp);Y1j%IHEK-%KSDwoxH|DWpP}`D|nSE88b7|X6{;wO>-60
      zmZx4sA`gS?TX8~1n_?gGoE*k54&sOgX215az~}5K+qq;bb$aHKaz<4Q3n6aWvM)P5
      zCf&2Dc2t!q%?AzFRR8(KfShCU3i@y4j8IBY!&37mOqR@^__J;at9Fws(=2f5^418{
      zG!)r#r8jFQ6+FXgQyNtxrsHj#BEh6%dxmMN3$u|*!x~PrGz<BBT*!Vx!-%6s`8%WI
      z9p$gYNKx<-UO|ECXJQc8oVAMpD-VM@&MOaPuAFveDckmpG~DEbFW%a<KTymo)<3{B
      zI&M1ROsDhRBcI)JjNpQX_ZX<48SQnvk5RJDRi$JLs4oIZgZ*neqcg5EZd$Uf90rma
      z$fs_dtEVh=q!4DZRPBZ_jtLFvb-gQBNjglQro5Ontc+qlrNhEBRpV7tX^0iqW}c7+
      zhc~AHU|miX+lx9}sJ=2K=LG^IT?%(r$1E-p(~RTNwTOjbV_wH)Tw$Pb(@u>t|28|S
      zOpQAE*1ET0q>B(X)K$ZWEUp5KgfT9A9k-h;F6l)L%VNX+c%4#b93w*egmh;O+sm<0
      zq(9a18Lkmp#=OjAvmM6xH62&oph5tZW7fnPwp|;;A~jPWoN%&kQuZ=yY@zGlkycf~
      zsAroh;j<G&NcCFI!m4|645{7)Y^ze;nE$0*(XpBKTljaA|AJ$8g;>Vc1!%#$2$n3N
      zGPs1@tEe7Y!QLg*{fzo$ytIU-yQn#}ii1O|XdS9Jw1StLmT_zuudSf{;eC3l!vQqm
      zbp-Gxz3%ZNcJL|b#ZL5bcZj<qXvPI}a9`(%W>ldQUHpT30`j;b92Kt8rWHi*bCPpd
      z<}Y?UKCI|;qlfz;hIlJ~_!_MPTsyXi-M4Xg5p_fHKNeBBfJ)AZ_~dPDT1A}X`X1(1
      z`p-8%x{I>rM`RHou2w$a>JdNUkHu^z$jPL|6ki^Tz0<@|mR<*~6&nV{01_NSIQu^U
      zEj$V6+<yi%M?muoeuaRp63{#WeY7E<cPYQ0cCm%UQc9366{0Fl4>0@yA1s2}$OV*&
      zdpXTYj<X!vIj;;ZWAZoHrw`I}CTH#~W3I2|PgJ-3j;pt!wKPAv$LUA;>Ghzf4D#qQ
      zKDqPH!!>oqJ(g%4OJSPP`-w-5!<h8PX*m9vllz2Upf|9KMOuY#c<L4zev3o+j_kf?
      z-haR;{75eg7{pKXatjl*o53BQeG?;*A+F<dj)&0VCnmtXT6}>oslYxa=qp^Joxly+
      H1aR|TGkH*u
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<QBT@X6#h<WsbV)kCmT8@3~*4Loyp#|Y#H5Lh(r@zc;SH*xWPJXm$sPf5BPt4
      zXiWC7AK;HNo?BR!%!P;ceCM8X?)lDl?(N;L-vIXUT8BcYj=ia6AD^^7S+?(aVi<{0
      z-yfVa2y4UR1n5u+xpU{zu_lf;wq~b<^em51==j0d@-N2on`Q~`2<i_%hzQgsq`r%v
      z1f|y^EV(1$MQ+6YYUkf;xhfr<xnb=Mq10KxPA0y0JvaJ5IBYD;{6D>Rul2Bdv&*b)
      ze<YScSTpblk26SN-9Q!vo}$t0%E&VV8qyMN7|^jK(Q^aK$Vl|UzzPgPw&Qx@XnHXa
      z!8d0x5prIC=uEm!;7WgfsLFW>^+hxM*#%Fn&-X*n`ZImiej@IQ<Msban>qET!B8By
      zvTxzRa`&Y01f$JM5A2B(h9cClL)cuPIX9ob2~>E_6h9;lc_{^>yc8m_EJI>h1R$4_
      zBC=2XWszf>XLJQ6sVbX0F;>kRJTZ4;JT*%(ie^!bv1t~y7^Q2@Rj|eXjU@jocl*df
      z+kEF|tl<laI6#@>Z#e=+6})6CQI#u{1l5?CWLrj^xv2@-W_B9KU$Lj4fhOAwvm=<;
      G1>FPk=&yGG
      
      literal 0
      HcmV?d00001
      
      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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
      A1poj5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTc@~6#k|yZQU#v3y4ZpE-Ix$w@AGfQCc9WR-1^H5JJedJJu!J-DWQYiT}q}
      zd1(_#^xYq2JhR=Df;_m%?#!Gy``u=K|M~F~z!ElN2r-N{Oiw9R-WS%CqGi|AvhKJs
      zL}=qcJyaFX)eU9Mw$(4)jVQyIzoA>o7PocP(2v!c!5Kyze_7?Wqg&?3(mDfs%`jNB
      zOvhDCx2hT*A0TG&Fox)gZtCtTLnKw2uhLMoG%g{G5g9TD8HUTc$=`X+8n-`mDH3I?
      zt{PR9Xo)f?M%>T3!!TaH#7Le&7Az!l-_egrB`Yz6Q}b0pbVCqL5VK}mEe2`hsLoq1
      ziFabSMLsRNp;*mEkWRt!OwAGh-H|bcX>wrmrgcc5<K&?1r(&pPL#fmbc-_s%Fv~D;
      zR^D=L-E0&*-O#ul$2}6WD`5t6LPkoU^kH<H^Frth(lQ=kfe6)Bi<=rl@;u==<a`_%
      zihXZk>W~gco7&B0G6EzkK$aL5FQfT~Igpu`z_2VMhewoCH$sZ96vq>izb9~?$#@P5
      zI__Fs9h6+EKaRkPge2x-paY*h%cNv#{HWr&l~3Jxdq=<!QeC3dUEUO#7i1Jg=HUjX
      zvb1G+cAanP;^GbU?rlZ@W11v~=^dc=CSr)wc!lm<2ofSRr^`j(A*!rWEkt89J=wwV
      ziQjXTzLH<vAcRdMXnn2Qg;9*riuy55H3~r7p8#vwUjqZ_4z6E>dPBr-eJGjQs40LF
      z0tX3vl4?R)(wFs>_JypRkac_e8y2@uk=!}O%ueEN2lpr2m`^OWp`_b*DCUo8-p11o
      zR(_rM_)#+af-r=c1R(=ERM{nCdsxPPpQ&8WR1Pl#Q?Dq(i<;a(Q&wnN`~Lre0>9Co
      co*_CMz@QLKI-FLYmTXT;wx?yCdPCUw3xwe5<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv(QeZ)6g_UcX307>HW;)UqYO6M4H5CcQwI_hCMrc#B4|<{)8KU;!I@llg1-Xs
      zP>D)>03U_8cB*D$eTWm^<8$sgzWMX_*KYvN@WerZVS6A)e!KhO^(+4kKZ!<(4%7HE
      z*GEyTQ}xY3iDC6Dx`_NFk^{fnKjX1>P-fW4nL=u=PNJ9({VQw+HxzP^aGgqqdXO{b
      z^=dIJ9>$4~Lce4vHk!u_rFQy>dtg|u;08Q~@}b3DDy>%FV3A=Z5R$(ied%-cG3qCr
      zVJ%4GC^?RlFne3{P{cCn=~FSJ1F_<f=IumqIStIP*9h{Up;qL))oErm$@MfEx%A$C
      zjrqA2sT?|}GOSygNc~QChB(+HXBNo09%{H}f^0Kv%<X0(pQb}?GF&r5*m<f5W1U%q
      zkgE%>vRh}UHLe)GgtZ*(G2G4#UBW!<qG4<`sRJpH2`@}XD&|MRTxWIOw4NF%JfJxg
      z=~<wsYQ{moR*6;@W@t;a^HHD`Sek(K#;E+n$`9HWaFbTgf-QPK$C|BzXf)^<nZi<i
      zVSkMEoL08Qj8e%C;Fj%85wSs{cZgIX<gWGbj=qbg-2}DX!PXdC-)%EvA=7Hx_Vw)4
      zRLj`AkGj?ODCrLAGCahiYx*yUXHvQo?DjUtc>KS7VC9W5Iy94at*A-3Z|xlX0~U6=
      A<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5VQ<n<6g>|LwY3hNI^9$pbGo)Djh`_ZwuNj;B)Ww}zmNh?>{41%+Zq3rCK`z!
      z`~m(b<9)9UO5@1Vy!PFfd(J)g^uAxefBXdS7><epLv<V^&R+NRZp+!{@4Uc^y)by;
      z1*3z|AMr?q!f^S-J#`)54aQD)aKeYNiZVkjjK)ql8E5Ee7{%_u=gv_aad#rN45d@o
      zPv~3iEG93OYBH3ch|*7q)m)xx^%#`BaKv>Kamj#&6^5c|^)!%B11c^sR61V3UnY|Q
      zkB(CztDSJ@`aL)DM4TNe@q6zB!)9l>2PDss#s~u0PN`2Vju>|GV&^6t2Gb-?ooHG;
      z9qYKIVuN98nGXltpYq7SZQP+I(-QmVE3w=(hJqI`Z0EB6tCoIRKmIhOpSEFIIlwWU
      z3-6nvp?e0lQ6r&gcDesC@?wISXDaR{ao!cvfCZasX5jYuz&TyHaS}6943n7QelBs|
      z@q!cv{U}VLA#ZzPXxA6%(u>d#cK|gSvLdY#Ehc7-ZjwSf4LZFqQq)F)9zeIh!?5e$
      zQ29bp0axg~LRjD#AzFmk#VSQ>X*RCn8byS|bz&9lYq*hdwlYr5uFr6Dfl`<7LxMd2
      zhfbT*X{h3^q}!C@g~W!8N%#y~pD9komFX0CC0Pu)S27l|5fA7@VCPcm_E%J9*!kOC
      UD&-AHd3%PGIv&c>k7UutA2FK>hX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTZBNrs6n-x2HdiYkC?bl8g6u`t7(dRCj2XhrWCY0kIPbR0D0XdAZ!!KWO*Afk
      z@CW##jOVtsV~Y?XA9`O-&w0*so_o%(-#>l=cn&j*DTd{~6PUH;{#Mm|6?nGQ<x=eO
      zf!J~Fp768K7-moSDK~BI^v!1HM08~q8HQEY@0;$R9|wD`FL}on=7IDDAE+Zk`jp!N
      z?VF9i&U>+2-I2oY3QxMeNy+PuCF{<SyT`lld0&iEsW4<-TI8|GkjfWY3|h_Y2^}fi
      zFpz`JFw?Lcu^S9J!as~s&o$gGw_Dt|)IBz8^4R*ou+q4&Xv$a3UyX60l>@^q16f>S
      zFcf)9u?f{kw@INM!^S8{^Z<#5b;k>2BxI$~(s38}vRGo+x{8cD!uEu3;69c~!H7cd
      zaulv62K9lZ3SwAGfG#MQUc3F#w<PsV{#<&^Ku${Z*uWarDOntRbh+S!(tow4>c)&4
      zl3`d+uqMhIV@nL%@{>p9E#(Un5r<?~y<JgnUNZ0$1$wK<TR(6E8kucNP1fQ+hPABb
      z6sy#DDf-g%G1Y%G?CMN&LhE(9y$Ju1wfG&z7cxv?npT~5pb8B&%+SdoHx)XIo3tx{
      zxfo!ZJe9Am0E(q=m>;1`Q*z)np)@GsO^CD*dB;d9(`}-q=q=z*j9HB_bH&mSi(`-x
      zu@;5AJp-3Z;Bt6?l@RV>SiPz-fh!fiVt$B6BZd*&JA&iqz&*i62$x48W>*gHfHp+&
      WGr>oSWylH~pHWLo)Or?rmHz<a#ZRgL
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#j0TCLt_8QhpRDv?&NCX-gFRT|`SM8c16trP?aR?dB#~NOsF+1Eip+
      z_~U^`^~D+W4IkARTTo{7%?F?TdmO*JyA2_2$1yY6d+yzP?m6FgzI*nse}4NNz_a)w
      zf)0V+l2y-)O<g!OnmOIDMy<@~Ld|t_!yUC65rhQx+D<8BS4+XBoNefpsf8=ja3cr{
      z?7X61*E6P_$xFx7E9R2EP>}-LYu<E5IyKX_E@n>)h_eD)#%!zR>XtjBSL(8hd8nV@
      z3%gh}4IXgWZ7kA%PwvUE(_9_13vxstRy3{VzDSX&+D=2@V6Ghr=N_cS8GjFbJ8fq{
      zU`N~GM9+6!6WPhB3(PZ5dwk;j^sGR4&VyIctx_iMI;K?`iDHjH|9ExLZ6wH4-EixU
      zOx!Tta>B9`MN?J^wW9)|e0FX;ie7=Od2>l7s%EXKyGEI>!rA=f#au3mKBh8VmI=eQ
      zTxq!pvzD;xm5M;LV%E4K9f8AZV0qMym6?*v1>2Z?_=IVh?n!}ivJG96x((O=lejid
      z#aC*E7*$1L=)_?S12{r@lc||a5J+m+ft|`qYtXPoSwkAO`qohm+pt}&J)<FxZh>t%
      z(~^_*>VkBpef@NMI-Aj{De5U$47p{qCU9U4B`um&g|ro9j=Dca^*{h>$(m9M2)W*l
      zeaTcCv?f^sn+!+luH-!s*tKROmq%haiPs}|O(6cHT1k+GQJkPy{X;J6>J;s|QoUcg
      zg2I1VLq8ImaRzTj@P@#l_DZZ%YYkaNb;R%#P*8c6rE%4Vdi;MEU)3=-e$$YPE-z{=
      zf=PklRW!Uldet<D)o%`s^SW_WFUgFGHW4T~hV!@(!CL~mSN;5cvdX1~Jf_LLyjIsK
      z?%oY^OwGke%8Z7$@ebK?TY`|Q4c#^>VQTH=jbQ?FO04gyny!7X*oexTi|lTa)P~tO
      zm~#Y|1$x>$!Ku1gDM%*<9YzEcRnOz<Dd^`+t1ziorK6z$$}vnXW!B|Q*bvFO8JA#2
      zP-aVQPe8*JT%{5`RZSHIj<h23d-TY<N6up|3X6qLtYS^XFpotI*T9|=))yD0Mf}69
      z2L}Cb?STOiybkklHPmsPB)Yc0pI->xo%YmuOSKx?;;M$Ion$t<&b}y?*dCtfphI4+
      zw^gnm2<%U;<F=Yn6n6wRCz4H+QGCn>pJD?jONTWPS=BCFPDn=Ht~-W2V|w4OmX>l<
      zWgi-#G&}k4LJa#5L6r6;e!Mz3CmL*_9ak;R8`<Ezk?oBmR6FEz4|ZX9)31l~y)E;7
      zobPX$AD{=@1D_H44B#N2hd8^(nCjCxkbZ!t(((Skm+^FZa2cue&@u+o!^;>>?+q;@
      z^D{Sf@JkQ$@d&_02y@tsn@q03RF(+j76aVIF}{7yKNQDlsowyeCm7*bFVO1ntQYCq
      z=~*ukT8Qso#w$T$8IEdySNa#Eexl(A4||Juy&#&uAqXNcf)iX(sE%<|&QUsNR`6=O
      z|GgIfXy6~hDI5v>#{&O2{m1@<riNcJF7TLztzPC|l8dj1;_H?J<4x3OagJ%{n25qQ
      z;iYzo%qYw~gF`Er`Udewn3zqg$;Ahl{i8j=x75aWtmF4yfQ0Yb4A6u30$O`;DWH}8
      zE<jP>ZWXHU5$0zHAL9LoC_X@?ySf5<h*J(Ls6FP!hjgF%`hmr~-x9H}8L_V!v9B5N
      z21VfWekq99uOfCg7;OIvZgqdiNWIGVs6C`#&L3Ms^*2NH;}hKF!AiKF((0i78D|~%
      F{9ho6V157q
      
      literal 0
      HcmV?d00001
      
      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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
      LW>b?Qb<BSO<K@N1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n-x2R#q#oiio02K)OxW7(dPs$ADlmnUQ6mB+K1)GfTR5sV#<orHRJH
      z5B>mul=0lQ8MF%7hqm{gp7Xq%d+zT)KYsyu0aL{c!{)#V%zE?vUd`OUaB7Zu%!i`Q
      z?LfTamUraZec`E47#7a>IX7+Y49sTtO!RyeIfjDk4NP}9h#^L<=ku;D%oE=ed?=R;
      z*>efUu--@}Czz@XxmT8B`MV4mqu6Fp>TX|X$l$h)JT!*+hUJLkVAvI2D?(msxIJ#S
      zxo63J98~;|)+dJT#uUzob;Gz(R<WH2!yO$eW*Jo8iOpm?WU$Y$lP;gM;Egj1{HPDr
      zVq3#~JW#RrPs<WrI1=_qcsd?pof;4^)Td*((FGlXCFL+|rSkqOm(n}_#fZ*q%_yb{
      zS`?QjQ<aW3b!?$PQlso#=d)+|RAyYOxf%HBwir5!C=q8|d@x;cN>`$f)Nq<7H{_C|
      zkQ}^;=Y$vr?Zgedo;bAR)UGA~ql-|HcK`(%hzvbhdT1mtOV>%RX-MgPi*_%=KNKzf
      zfc}*NGnk{dMqgkT3SMKLRyw80(giHiR{|`>0Ed(*b2SN2Du2iFCCVI;1ABzBPZb9t
      z(n^#aBT1&aBumO$!Mzx>7Gvg1<uO(hkdd$kmAt(Im!H7p@d%GYxQ)=g^jHb^fHKCD
      vFSL&=<|qoZuGmv1_O|gfEu~!ghUGDKF5N{^K9H2tYowI%ETn!Ol2-l#i1rQh
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4~dyi$E<{~#wveV58S$2|S8#GKMp=ZwU>^i-eB;*!+7
      z)FO5U7Dfhvti-ZJ{T!gUzJF3yYH|r91A8)9SqdWqvxa6EBLi1(erZv1s#|7GDkFmg
      h7K8LaX0S0b05t%ez`(!=G?$fu4a8z#2a-$-8~{hLCwBk<
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      X=h_-gaHJ$PnrWk_A1O)YSt|d3pWvPy
      
      literal 0
      HcmV?d00001
      
      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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
      b>|ZP(|1LOWwSP!}Mt|i7i-KRfAb;~eY}gO$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9Yjjjs75+|MGZ`+BP7)v?fq~MJOvr-<s7;`nXPcT33?Vq6jhC65$%V;Gn3>ST
      zs`Wwb!`c?BBKRn6sZkp(6qo?14X8z|FSOSB)*mjF<x-db)F0}%@10DBA?YGnH|N}Q
      z&whRT+xwin_TTfb09cPdIFO~VJQyCSZRzf5ZmMk^3pa&p`OZnZIcfwP$Wd6CxnV~*
      zU>-07hQ23cG=;|;$fK4>G*}xM3W^SW$n<kvrj{0kf|wCC^-!M?jhT_~j*eCZb&tZr
      zmPj}j*TeBXJv3tE(kb~-3OT#ldb$;sbnev;=(R(7e6Y6J47M76b4U+0D&!sz0gf@h
      z9^$Av6!HRQ(2U0voSXe2Gi=81RLHKV?4!1pNWgGli9*p_`kYwCopm*JE)=6w!*Y~S
      z+vcQ-;tJb|kRA@!ZjVRJaImqmFCPjkG-z0;u(;C<8(T+)_88G#fkeUG8KGZ&I%DR0
      za&fSta|R<D?cT9rLp*DocRdq$J2Ql~UH8W$(XmWPCXv3mkd2!qj8)?0EgEjcS_RjD
      z8P-GnaT--vHlIlsDpBQtm)OtktcG={R?r579{n?r6X)$>tX9KKC=ey<HQXi}7uXxE
      zJjsp?8Wy9#flUfaueH$J)Y`wTsi&#SiMLU1Yb5T`J(jc!8&N94jT#nVp#xhK3aw09
      zNogDP8^dw(ikXfNnq)wE=iJCyY!v!L1bdFUJv#LypbD$!5lsVK<ig$2J#-=iM!{df
      zQ!$SY+q_MlyESx3S{6nI224L|!^(^V`A!X;Xi;zs*h!YPts1(~MwUjzY|cP5GNh0n
      zG~)fqLMW=Jyq>1Q=Uxpv(8HpLM{M#^E;cJSC%bo%Eh$iA4)DEtCRf*%H&NN9`}gTV
      zqgIgYGGnY&|DXf!xe<|$FugYeR`I)VFW%=sKYPV&W^Io(=wQ@&{y{z36leGq9hEIE
      z1Tf$LlbFVY7VaQuMpQ!(gM`qGwMtVEnU>03Vq>p{eF#xo$Os4H+(YViI6&?!&9vJ*
      zVuk`n)QMq*n|dP=&yXG-^VpPc@VGF9Qu!0p5XT5L>chiEIG|8Q|E^0$Qdy%D_mMxI
      zfk@QSFebw9Cs=cJnYU2#0rtEavEJ*#Zt>$@d|1OrB-1(UQA19AjL5VN4adhkF{^2L
      zhV@v?2srT|JC<EsVXJ2~c-A`c5cREf!6&MGcvQnD@EDmQJ+MU|i4o>?=^pkDMkDu0
      zZ);4CbavH6&OWZ;2^6wbSQKSy!a*Y-lsqIYAmqSPJX&Tkw;O1CBuWOQ$d~FLNt(N_
      zgM{^#!<4Y-m7fpm#u+m70K0S@U&&l$Dr6a>3aip&=QJj&Oj43<ELGPxM0X125nMA!
      z7Oj}=^4H0-H!r|*c;12I3MKPal!h;3T=Ho3s8Uw;%+`!^Ls0&zhOglTrpiBP`1jfE
      ztbW#q42k(PRrWdXb)FS7hOTwp>Ra8zMpTzB8(V-0yr|(_=yBqt!XleY6tVX4Dv+{r
      ztr|89B9$A74;oR1=Z_4Ju~nyqcl~yWa8i!4b_yE%M|4*1TO-UOFUFLHm+?(z#S$Sm
      zu4!}Kd-fXsc%$?Kg%_oCrpOxUsr@W)o_v|`iQ{step^!a9X5j*m~3?US-xG;@LgPH
      zM>j^}(uMj5<cQ>1JJXsouQ5`&uSsx)GJDj4AEsTSY}Ilmc5iFzY3l9h-YP5$+b(7v
      zJT|n7Wm=vBe+~_VU$Gh90KL;&v(P&pu?-ier7IPEqX7A)hF{<fA!5|f<8m()P=2N1
      z*Z2*afEnf$FontbWHZTxB*S^3vvos~Tbv5=SlS*LiTaIpQ*K!W_I1c&U5zvntfC*;
      zd~*3)3J08==krFH1s9gdWzD)@@(RJRK<**d$Quhs7k9f+NQol8t*0LOSvZAapL^*f
      zN=~8tBp0%<l7C$sfp)6g43D+SYpdM2lH%i*3&2Ki)w=4EoJp+qdQW3b0u^UalbqI_
      zLH#%u?VQ3!pZoSn+%fHa3FT+daMJR6C00|pZEgi)0ePCwlduST_$7dwF@S0eVgpRe
      zg$*=GgSZoK=P0vxU@bMttcf#mcq5w8VnwzQt!P7z<#c<}>HX9oyQ;lar*RjbHGJ;j
      z(<T0MtP$rq*3)wt8!TsMFj-<bFiZ#cqYP23L5z3BxaHguTXD*{YHXvM%&Bydr1{&d
      zcfd)c8WPxkg09%%=kW`0zokjD=FX%hg+A=$u6Of$9!DPwiRn|X(ieg3YW9|#O*z?{
      za>sFdRdH?t@4d79Ec{1MUS3dl49?=5qsTj$rTF$V+}WFQ#-WuL)Eq<JI2IqwRmHhg
      z37F6P?@}3^s^L=~IF9-$?DkDz$mfnsVt-izQTKraMrDW0@3-gmoG0+XNqlJ9D<rBS
      zhltlWnj1vv1Jrv|=(XGD{-|u4g3nfZkV?5>)ctY(u{1o~kXMpdLhm2hS&}#HP2iI@
      zL{ExC&mlKwB71_cJcvX1G(MFCZ7(YTT+6~k1mh7b;F0deV<^GnOwAKy#FOODA=Kk3
      z+(Eg`+;cZR%iH2%Chv2+OB|;37y0FBu0Dffc$O#4^SFfLxXcsk3dZp|SKh=6R$_Ws
      zKLk9L;;WSW486+2pDAC!(M@}YsX3ee{1HcRl>Bp&rJv{5T<+O|FVJ2twJ*SzXjRgF
      zjF#>63RitrZJwZ<RA-MA(p^>O@T@`tU#YqXbp(Y~7ofVl>uh$8ql(KDM^I|#-~uMj
      z;Tt?tlDQ!MKA-!<Bp$Y4oh|TNt-f)J|8AV&c``{X&*B!GC!t?v1x=$17f9WUR^%Sr
      zn^fdIB=<}7wv=(4BF(cnKTSP$XQ}6Ip>zHel+QbfL?+KKr|~>L#q+Z`msAj^LMhWa
      zJ7BkPL4vlb=KO>mZxL7QP)V0p5||c>%+!-zsaIGbuVV?`Ksh^i4g0i*JM2oWO9fNM
      z5F{AIfG;LfkydF;V>Z(vO~Xn?0^edPyyWkzB)d>`97SEi@=1JeYxTMWzQ412S~?uq
      zk(c8KR4EO0wZ)!4v7!EjIljs-e`OQ-8=3ldc<~S7{!hz2uWc;lUNwG%A5&WyIdla-
      zp|&;D^iu{VDF2MX*{FB(T|g_OOF!?d63oQk1b$gHi~k~S0{%q`{+s{C{wEEO!lc1m
      Q65_X(L51IOZx(+4f0qq1&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah~T~`xV6x|mxjD$&1EGYOvt74M~rdmH*V^svv*fc1CR7!0+OfGTSWQH}Fw5E?;
      z{Ud$ywOy;iT6Ia^`_g~Zy6;R#>_7@@W#-&7=bp3AJ|Fz`&mTJgF5zn(eF7(|PBSyN
      zxO8_mGv9J%oea+uioVyhd>t`?@u<a;v|O(;>$G$X(1Gh!Gj6@AuA6n+qF#x+4h{*t
      z`>pxCnX%nWQF^vnvwt+#Yf|8FBRH0%*RWk@B{wf19ttGpT&Llij$blsO{o#8`V#^J
      zH*LrEZwWk0=67R;z?WN_a?Y*DY)^eOg)m7%T`(=*^;*%J<RhCZ3B;7!IQlVS;2jJP
      zg4q}t#h5^R!*<MC*=KBl<GmusaU2sm#s$Xq$86vPP6`-xSzni4*>anXFVLS%<#e1T
      z`MbCN%Px^CEbke3A7=zK)AP(0Yq8eBvBy5E;~Ys3YEd(tYK9fEovLzk-oOV)lHrYl
      zS(gogqigx7T~-;U4P3yqfW8sZCU7QyAhn8uiv}|IP++K?X2{x!WG>YK94TcSmvKeM
      zM@;gd2nMd=n!qW`lcq1rm6lUBomP3nbL&BQNNR;Oy4tgCx*+zlrqF+E;1k^FqGzAe
      z->5>rhbA32*&|)ZD~^1=DJ@@C;>hBbYNOlim*iVF?>)EVrq3B*%juXU{avq}Zvw-4
      z+mVH)YLn$~f=2SLW!6e2r-~ERR>u5iHcNQAM`6Ob%(7=(H8!eu!uKJwJqt?ZEPCt2
      z5h;$E3J$5wUyeV;!M<sbDM$X03&z-@)lWT{j|5Oi!a?p5$dYun(g6dzC*{tj%EsBf
      zBOJo2^vhunHp*sWw^uj<$<)5HqXr^C(0XLr9^Ld~#Xt!~feB(P_wqON)(3&9|M4EI
      zxsLNM4Xoh_iyd*!eN%Lso+TG-wL6dSGhv0ryr|lRi-2nbebAs&n!q4b&O_XteJ~KC
      z%mv2hVJ=ghRs;M}PhXgx8INt_NILyHj&9-DYn*zCNp+gsd5yC#G1Y%fdx06H7}fYp
      zDZ^213o~1|RODeQPzS2(#h*1194B{v`S<S^7`~ysLUwgr+s3DV{>I>gc#3auhmh_v
      z{AB_I?o*q`F?^1*C?JJLTosRTo9{bV;<LaTD_F-Ds9_azyzzi35<KQ{k8dR{V2s|C
      zbe~dRAU(h|2~oNn9+H6bxQ@>lNu#egqZKH{u*e7jDJYW?_3tL}3Sza*%i~|E2*C~n
      z0m=b@E1_WrK%xU6(E*Sk%n(4L4L~rRVmnxdZv|LOZ(}(cL<T{O(4ZYeF#jj}TwaY{
      N{%+sPUj=zQeFHOl^%4L8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)B33yc175>j;CNqS`76=dmI0#6RNr**JN&s0cku0r1(tsKtGcU<VGLz0s5L~)x
      zt!=5+eXXL_ri-??Fe%a+yIZ?&cHeAk_q}$r+kftRvt&X(#V_;TyYJp}&-u@Pmiv6>
      zzfU{~;1zOe5I#XoUt+jvOUL<}H#KcNl-QJL;xlh{C*sLO5Prd;(g|DR2jVfu-Z$WE
      zN*oHJoHCNBzNX}0pGvR?<57<5ttTTSm~)AJz;22sn|3;>xIGZROjid{Ay`@}z0)2T
      zcDD4}i9V+_p3XQ4CncDfHtRZ_RGMn-ZrLi3^90kjBopb3oyeF)0a~U1gfC+8bTkzo
      zj3?|&lIv?)Pp%;qZ5H_3J2tfmDqD?~1Khf4XC@U-^zmJ2U34Ixh-Wqk%4+L6IeAMm
      z=7cbxO0_4$b~F<|;DiUA!F^6@3Iq!*RARPZMr%Cbv=8g>E;UxgC!_X2r%eF(><yN$
      z^Mv=;=2di^vFp%~qgypkI$nyL>o}TpF11Rg4wbH?kDJwkifsp@&QOLxrh`}_ST`v)
      zo}gFT(fxLx)6|lPa*c6HCZ}En%COYJA}m(xms>auD+Iw_R|UbTtuLvjF08Xqj|g?^
      zrOO6-GBjQ=e=^f6(1@lWRto0kbRQ3zh0{rJRF0#8Cv`z>-Q;r5!0I5*6og+&YYS)L
      zYz9X(<=7dgCw3^&V<!&v^rn)7W}luYeJ5Bwsap$5j1L;6q$2W43o|h*2y$>jh;G`K
      z&ZLMi=T5;|thcZM=a8!d`G8qI0rr!`RkPx_$--uA(U5U^?csq;PdpKG4jQ(%R8Ws?
      z7S2VLpepTTdNRqL+%%W+I%B(q7M(HAn~_NNxM9)b&Iw^=1;S`mmN3k!YA427U8m0I
      zu<&ZUMleNVVv9YTCV&mavv>8Ul9y`qG}jf$D2xWNQ!u*_#d)GLY%~4wH2pOJ7dL85
      zsv^{Zq!OD~+r5TtF9vid(UICm`6cYpuoCzbv#KJk@_X}TSv(OHY{)O1;PICcXcSXU
      z_(?K_u)rRd_{tjf#XbvBTucaEUUIks4*G)V70enRD|~06A8}@9kHpF0%+PSAhum`P
      zLBWa%y9^~$8HK;8!^~uo<izHw*pI;=1_af)9VQrPp$8YMDoG1Nc%5MCrKvdM=745<
      zL2YT6oP4LcPK}JTg$#z(A*qy2G#2ii99V*KDOjZFoTWMCT*OYggN4g*IbG}l5>FK4
      zaoXf~wCF?+4z==13$Mo;n9c}LENA37lNwpPJa5bRjAk;o*c0ieo+tg11Y~*1+LM~7
      zJhId2cwa)WxS-Jlk8#5w-YRI!!8Tz=t}JMzw8hhdb|%`d{&|~)w`(q+mhA0~M_KMo
      zLR6L<w(w5P%YM!8O4sWxybCudUHhHremCUKC@56|L5X=f-BifB&Jb=Qzp0^#<8aD(
      z-EchR#42zNTBjm_TP@s%+c~9=No-tEU`i-*>jWDOx$m@aHQu6f?zZr5+{1|Jx6?hP
      zdCug_Jv!}(h5K~7ayJ30=?_?Vj}G~x$szLby_8WXF}oAa!67G_QH>wO`!rF$pXIMO
      z^%c^I=1Rc_Ej*-2*D?|0_DiuKKJ;=N){@|&c+6A;YNR!b{S*nbD39=XAadDJ7^+Q^
      z%pnhRgeaD8YS}RhS?nP`$<#hoeyJwfOuu$^AyYAJ&1!Q?9k0|@YaJZcAEvT1@T7$?
      zJSCVuzVHf8Kk4epl{M+|6Ba&+w~!ZFy2kNBefDV!$MJ-c=(FmQD!uEdz{B{g{&WQK
      z1*YO$c(`0`+jRcU?VDPI_!7f${Hq*Yb0}@LV>?)DH5^UvKu_3IfzP=FyezMMNy;kD
      z7mR%s;)`eKL;k%C|EMOpfMq%mdVgNYR-PUDmL+dR$=gXx;p~!*YripYeo=&ZA-zRS
      zH~q&CE&K@Ir}6IGscy*h=#x_A2up=G#G?iIH;2Ls6`na)`*ih3t9CQbTlfWj$*}O&
      z4A}b|7N)tiEhn#-4t{OnH~1|H$(&)EsU^l57Vc5uzqjxl{-EWT(oUj7BmQLJ&)Q7o
      zwvQ%<6PXbHO6qS*k?p=1Gq|wi3VW+Y{8RV-7aP1%?&bh)uG<sDzv-UR-8K)$2Vzbt
      zg#R*{x>CtRUw9mS!-YON+?z~=EAXNLNW>B!eoD9%O^%A+l7R3GS8fjtIm)EQ;<V%8
      zJJDQE0V4mRge;k&GDDf9JD<TLQ)wGFdx;uDTt%i^GQ;Gu;h`9t>9*WqN@iJ7iN6!P
      zp(NvCy1ljdR2LGazj8O>hh(0cl*5T+*y~WkWRNyxzF0gY3#iDpgF^$XN16PDsGWB7
      zfhV=tO8P?<TCzwM7Z{geps05ykSFgS9(AJTtV-Z2b|!~YQRm#ap7v%I^_45tdssp?
      zm+`*<f|$bV0!)R)v1vTA`Y@fp?DzQ_(gP%~vv@ZLRh%)GPxZX&zw*j?kD>Yz-uY0&
      z-wIxV*HG$4EHtA$0PAs#<EQZ1&!@1F@PgSH=&Fx2G*<gZacX`2<5<SO+AJEfSal3*
      z_^{?FtgSzWb?*4ayHHV|#nutd&f--gs9760fpB-_d862|w!FH$I*>(sS9ST=Biv{T
      znt2jA-&5@@W7>rry_jm+n9pks+tbsS%TGry&Sv+y0hdtm0qnpab|QgJc86-lc7jAz
      zu?xF-)w@na3<O=gj~Ju7@LH@OkovY8duZxL8oC!3(9j(O_d;BRa;{<L$zKKWCgT8L
      zJ#DdDBU!}S)Z*i~ga?f*5`0KK890JUz45Qgk4O0OfD6bKk)sskV!zlZd5GIxMguR$
      zJX}GnuS64@zh=C_7!o!LuJ;THU=7}gH&Gp}WpBn+lqA|*@S5}1HL9vaC{;~+K%I1L
      z<T&0TtfALMK90bhn05l!bXVRuikrtGPa$B8XgH2rg!SqUA9#D0;0`P{_W19`1@-=q
      zVSjfSpV#a>hSUhoGp_>oVrhM#@T%L-rT40o`vvaAB|353@Cc^0oxp?L4Wk$tBak0Z
      z&!2)Da5Iyz3(N-0pz7C>)Ndn!-_Ez!V;MWWGdOD<y|9gQyKp=GatGnKi%<99798R4
      z1Gt}kk}{y4{-pVN20VZdGbDs^hHw;*aHm_ytVi*ffsnlw->HwEr_VJcGAAJ2RQ_82
      z)$&h?{`e?HTO+)o%V{AAA8`pEaS5M#(tiY15f?0d<zf(yxEPs{Za>!>a(Ea;j<zZs
      z5ru;~0C93U>>;s=Ar5wG^YB6P|6wf0hsga8<CU~v2Nh_gQypIW@e!_if=$Oqi)fSa
      zte?-A`UoRI_<jl*ei84~OHXhYrHxvA4W%n_t|V^yCF};5I9Z$^ZIthA<oie48ycy;
      z8}L`~ZW)>Vv9<pCYJV0VSHqP4yUZkGqhXy+<P*8^DIZ3#x?SlviqEX|SNj{Yc)F|F
      zKgO|#Ircek>=|$D!S2QaP0HxNE(U7YTod@bxxN`+^uX#QS%A+FvZwjx^EBrRI2B()
      z1HOV)_$p)S8wBl}l<;kW@Lk04Jp%H5ri~vWi67%2e!{4Gj&b!fM%ME<j9-#;zcPUK
      zGU5nIo=!L5%O(zIk$_*}osYY1<sM&S)HPrwzD^DN++{ZRyoh5luKy;U<yewq-=YR(
      z+)u|I<JeVn%Xg?z8Qt<dYUEP!Y~v<i8u26J43<AAqz}za!0(NES_nANQ&04?;t6T;
      zgalMb>Egc@Ee_-t^N8XtKAUzK!N#@zBMA5(Dtm}KxpC@h@UJ2v1r2^oGYUz`aElpR
      zd8Y<t@smjm5+2AorPQG3@Y4z6ULanY<N9*iO;-{<it17PY|O=siMh3G{fJ3rwF|TO
      zIZ6DhJ7DpxKK}0L)jnCM4_W;2zW@E8Xg!1S;qJ=6P*ht37d_L}Fh&LD@N?NNMpH9?
      z_3GkaqEsp{MW$koOvhrG%`-|BR>@p`f18aKnU7tv0J~)&dSnqCS!|3v(?nXI2mE4w
      z5`4jsDvUb(4S%Qf-7MyhvLa~}3K_DfLwGox07jc34^U&k2;7enFc^RZ?@w3U<TNV0
      zf(q9aAztGtBYLnY+Qd{9Dit7Gfdg(qae-qB_{W`CqCtHEFLqb{XB7W4Z&-1pEGt2+
      zGaOhGIW84G+=)5vgO-~5tV|n0o#q;oI)eTY_{)yT%n{6Cl`v_dy^%XS-PLGX1h5f^
      z<$*UXf}F_@=Bp8wv)F>I=Jx?M5wafJWdk~7Gh(uhfWHcZvK?t@;g_Es#$LBT9PsR=
      zO>~qN2#0-?LhfTrp^!gofaN#LQZz&prSk7$V=XqWtGOGsIT&WkoN+kJmbv55sI4Iz
      zbCs8Q(M4ijYh;YfGj<!^Jx$(evC@`i2a~j3+w=CDLMgiul1^CCg=O+uV$ekl_F}DE
      zfUR;Nc1RCeWgprlMm&1aC4IP1`boq~3=SKZ{%M1ULx{(Z`J|qZ=(7wReJnCQW~^s9
      z*5P3z%)>4=N=JUZEyadKHo!M5!yYzwVTPJDTNs=-k9Cza6uCA4lvI_^=L=LbN%4R4
      zWZ2$cin($*mdh2WW05N4i2593^$<|1hpb|cr9Qe^IcFL&lMgnkT7`VDa(oxVm!_{>
      zm=$_yl~(b3KS^oS9G5Xpkf#&;Rcf5_*|pI1;~x62#Z<Cf0y&?F1@cx}dKfe0Iwp{J
      z;S{-%*4~5$xf$#De2&~of8Iu3-_C?`nBPP0#$LGxQMs2NVUO_0^d4L$5Aw6&dvTSF
      z7=+vebG3(11wW6w3C1Fq+yt{X@6l+%qjCz7bZgKaqNiF{y8N70=vB0B)AK=)taQ_0
      jrRD}Xil977Mm~;Nk~Lb)btU8(rY(rFNhC}OK3VdA8^!l7
      
      literal 0
      HcmV?d00001
      
      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
      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
      HO!ogDU8Um8
      
      literal 0
      HcmV?d00001
      
      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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
      O4iE@TFHAq`xc>t5)Tr<P
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZEw<06n^d~)YiJqZBF;1b8~ZTQ5xe%j0s~|)Zj>D;mb@&fg3EA7Hd1hztTh_
      z@q<6WA7wnZt!yJH;X`}xJw4}nIrsF>-(SB0JcA`;fnlTPMOL-`?x<oNkGzUEYVc35
      ze7DO384|;C-@dRd*Y<i=z1`=XP)31a*AIG@Kj@`}Lq7=Zw#%(X7;t+awhZ|T+l^@5
      zKCk`HCIWllbciJ7Dl-&bIGz)}WXS18lR>KbU9KXBTN)Io3`;e~<EPP}&4aT9c%|ld
      zY`19#jyR`5Dg5AkX4tA_+99qTeU=uZseoZkgNz#tnvmrPp4dgcMb5emhx)`#(zJ>9
      z*WNG+lLnNHriu-0$=GDr%XBX~&D|jnG;HHOc~2;g=A)Qpg}UzuISl*r$fa9oeF>b9
      zZcEQ3uSemu!ABbQaX@5g@$r1cvy_V&DEKiI!$Fq#Yg&lE6^@1^ep5H5D$Xb_CaNs%
      zqp0Bt4C-@|tv389=<pLqOzYaz@R!8gW0wXZM^By}Cgy^E9I>a#r1woaJ&(Uo)cgtU
      z8wD1yNN<%^paKb1EYVJ*G*P;Y+q4RRl@#EFGDWT`0L<bKtX`rl5;^dOP-;~1Hbz=c
      zvQs3%bcbXKdF!~FVpdX2#Vn3-?;2zx?3_y8Ux8C5a0(t^Cx&|%yB8iOa7FVwR>#=8
      tRG7f^3GQPC++!TZa5{`sT`4{T(irAff=@bDpePVr>6SF<*3&qv^bZ7m2}u9|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yi|=r6g?BiS+d?@>J$Q@N%J7VHa4b|K20f!31D#SG%-%2KHQD7G8@@mYqRE|
      zs%ne+xqpMNMIuR6q_*EG^+#1bv%A>d)Iogk%<P?e&%Ni|nejjW{{9DmckzXSA%UrS
      ztCPu<)|M7C%gwg)c==JyXgj9Wx@|SK4O_vmz=<9Gfu3pTt$L=kwPVyA1tS78mR-+S
      z&AK1mwroe=Y8aVy$2Rn)TndCA=#38NlZ75c`MzyEl-pT>W6tBYQM0z`a=H-2D|08u
      z9eRyiHCv{0P2f^|AkI;diHg9m#844JR6_(O1VZsdWfTH24GNCQ)ms`yp$bF`X3Hpc
      znp=il_R5bHteW1a=(Z`pedDlm-`o|LF1%Vf)~)HSs_{}!0adT|=!UCQX<OiY{805>
      z9rLYr$MM9>CMqhXFs<Mnf!Ux=gZwqjU{)X^Q&e{y+icZIGoI*EkHEBMRh+|uf_Z`Q
      z9v!dAIYv8{t>HZ4EIz;8xa@5REcExmN9qUn{IUv?Y<;lYd&RrO(ne850x8*%G(85P
      zRTN|d#s(Z4o+?vHBXI6@q!So2sdMcA+__^s3hwxYGlknKfeDHhB+!2@s}F6{;n|HJ
      z*~C)E33f4yPZeAhI5ikm!)45>_za5*t_#csy}G^bht;qoRn**C{BA3_A#gSrytH_u
      zT3TIRTP){G)IW!4=vEHlQLb)l$m0%KH_eu13y8ejFKAdnQD9WwzMS6KCDT-YuX;DR
      zzxh3@g4I9^yKf7xwB-sTFn>tiffRX{`d^SP4(*{Wd5b0wp#-?nOI^1*cFnkH%17zU
      zpoi|FJZZc(MC31wA&z_>_)<~;sGNtnia_J|2ER7x5#k(89^iQL!XDmCruH!QjHV%+
      z<QQWBP~cc3KncgOic_>qdtn&IX?_s^XP8E~s|hBOiO=F~Kg|=yOPqxZ`<Prw{f4<>
      z`ftRNFOb+w9YE%Nibyj37cO$y%RYe-Mtw;lUlH?bX8#70_!jff-71nEYPX67T;gAX
      zBtF9v_#UfJS;G~)@5=E3KJ@F!aF(@(lg}~sD;FNw5!blmLQ93{;6n?1gpX;Fn*Bm=
      zkBp4o$0z%^_7oE<FOb_jz;ZDiySay3>C`^%ZlwQw=Hf(Hddbf+#f|{q(egcI`+*sL
      kB&nY;hbJWV^AW^8#~P8M+`WQzB8@Y?jC(GzipyZ*KeE!RPyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GX;%|x7`-n9hm50QR2CJBJ0#R}(=Jh42&iZv2oy?P=n!6DY{<mP1h9);>^W_J
      zK-<4zdlWq7botyL)zkaV44EuS+b>DxUG8(A``qWr{Pp**zXNy`-)LwOIJQ(MC)3%9
      z!GYuz+gUT6g$a4TEKBY+nJ-F5LqwqMp1Eo!^JZZwnVr8UbFRRyi&nvMFAFsH_Du^!
      z()NPX(Tu2p7VHw(m$3?Rth_QWohfrZF9l*5J7?ynO~+Et!D7T+wn_p$nVngr1T?ws
      zI;IMJu{UEoOG$fWDd0U&c#!I=tc}}_t0GKFXH`0NNu_k`#{ms7f&C321`gs7i3XA8
      zCS6CGD?a<vy<r4jtzr--86Hb%=nyy&<}z-Zbp)>2`331j(T*+yhjB!pW!21=sn6N}
      zn1P0Ffg`o#2M31cvg5-O15+c}u~xh!&{12=9=Tp*-Q<Ffqd2Z=bVA@zZze1(v#<(F
      zslMsvt7$}|Ja*c^8Js1-6{}!70%Am6?lTZaLLjQ@pEk=SQtz(@np$@3H6<Er62gb8
      z8eSGS8t$a?W~r1mOYZP`P8MCuF3?nF;eo(`iXy(^s?OZY$#vSc3cC?O9h)~71iI@W
      zYJ}pcCX0s-vbG_gK!{enDX_OzMcUpfl%zuwUV5GhE5Ua5VBfUP`lnPCE(*j$q<_D*
      zAD0chi}z?>pGl2L&xBAf_Ndpc?y|`wBJ?-&AARAqkwUTT`u_eO9X5=s8m_PrYE4>c
      zm?~5Q*Kl57w<0oE@+_#~y1?n}t2;`fV+2th!x%L%hU_-Z_KfOm=vjX!73IB~1|~2`
      z9T)wnH|NMj>BvHker~T6(w8x~##XSDAOffA4m>Y4x+~&7C=%{)1CJ@LtBFY_v$&<<
      zLpE$UHL}k91P8EVsfIOh8+X`llkCpCbX9lM_XUSHC(j%MZL8+fX5q>?cT}n&tiwc3
      z!+gUbKR18a8<@sSD<*W@#iFw3lE6@PZxc}siMs47+0?C%3}w_7XNnF1%fK5ruj6B^
      zXvjCrUnXIo0GsLM=muBL$?bVC=jH@%J\*WRk5P%S}~gMED}yg4mwhtg;(o>u%r
      z>fRBEMp(3Do~_ea7q1GkWzDf%RzLf~?#h<ku)QikJ38Leavh&&;Cwt;TkeVpt8oo{
      zsz$xxkqJ6X$2vYY@DN{AHnv-)tDbCNeKj<8*&bguXN7Csl&KC(`|Fc-*~!T(miqhe
      zsvV`i;m)Z7Mvl`R&3q*RH2&i213xuBCHXD*-4fqK>(Bhr1f8F18@P<!{51Rn{NBT-
      zDE49>SJdT)gjArX;u~oD6YWpX`8czMqqDJNo9G$skDYvqQ~ikz^v?AE;i2e6><?lb
      zW)$E$S2DyN<G9Z9zi%8TaMO$1<749-Nh%hdc!h6NoE&8E8eS(#RJlFia?-;GnqwCp
      z^LTX{w>`Kfu14_|-VQDdBf?X_p7<8pXA_%vX9Jf)1$1w7nQ<-edb@u(V8d$|z!5@4
      zF^F^kIm0swvV(dI&1_+0b`v);2|i_>VmuM@iZM1&VjWxpt>O^Ys)BT23hygsECpX*
      zydWGJK@gYHE78yVf)8#)e#70&Gki3fXx_rz+1NtA*o2&nKf`kD0)@X9#%yOa;A=*H
      zMAF|9{X1fRUy(XO;fuJ#Gf{NoJ{-o|gD$dknN$>I^7PA|3DRs+VK%T9Pdvf+20jbL
      g+v_p>flPm-S$?X@tqot|E5-oYg4_f-sd_#72cgv2%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-yH3ME5S)$e1WX_#JQ_qnMWEmWZ4eSz0wP%$5tJ5PoRhi8vBTvI-$jK)!3XeB
      zh_#gh3TWnbXK#0B=kx3R1Hdu18>kU>lB^Ixba!zsuKLlf2xJzk^jgWWG7Y$d^@)6z
      zB9&PpqR~Xfmf#!pRH(Uq&|?Di3H4K*X?sR+x(7po8{}i<!@)`u4J;8_q0ZDzF&!y$
      zFGr~&bizEA=};P7<_prbk9tnn4gb;9<MD>o5%#-bZW57ClZF0SZfrSC^s`xE2bRB0
      zd!-)l#c0b*yMJ~>h5g;)5Awpq>Qa|t+doY?D*bTxz{j$Ud_O$YIdVASV;Pq@6IBK9
      n4&UIvGEqa5vCcGbf>p+56?<4i3zgAmS8oR!TqSHW*0A*rNnv5e
      
      literal 0
      HcmV?d00001
      
      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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
      G&;J6*9!|>u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv+fvg|6kVsK^g^IexnHE9LR%^k@7jt&Rj5-aQmDfdhH^-wX~N_p_zV7s&*(sB
      zWJcfpD93%$C>@5(B<;Shz4rS3=f_U~3wRMmfMHBET)9x*Twan_iscQtpqn;d<F>7+
      zJd6&8@k<GQY?Ukf++ygpxuq$3m0PxE8r#K}4D1a<cfmAlM=_kLqPsjq1I5D_q7}_h
      zb?%r3!$j#)@Alz2hDg4qYlh}5G6YlUDnm!X+~+aSR0)0PX6Vd&@hG{jNr<6~Azso9
      zzV0^mxV5G1>6{@^GHZlTA)I7;&KQE|6;;C$Mli}CHCik0I-d`zge}uBr>@xyp_*WX
      zVI)=hpnOtf&6LZobLcu1$KpyOm#zvxlM<4cpzI?{a|q%zZiaD#q5rBH3AY6J(1GsS
      z^)O}`224wp&4%h<Vr^-&vbt1?Ak8qkZ3x&&$4q+pNvF<}wl_P58O#YLvedzcrz?gk
      z6EtF(paoY72t+AOmT(6PG_#=@CY_BHMe#ie_wj&^B3LXauGll%-e{|CnMY!LF5TMR
      zYk%Pl;}J3cZ^vT!)p3m<IwS;Q)HZ7$xz7^A;MMFg1o$zb{~vAZK?-0EhN04x<WMwL
      zF<q<1Uu)vZeeL3z7mzSThY6DG0vJUIon(bQD?&DDh5iQ-frM^~^pGV}rg*x}!FHO6
      ze@Ehk%mDi78}ouI^!pS8o|p72ROlDyDb7S*risB!<P<{}wLKn;b#!0@QM~o)rB*h^
      zJRnhwW5VzBg|Y?g)HftDXSh!9)K`p`&M~u-NHvjJ%O-B0Vm>=}hP&^wzfQbPU9`eO
      zAL}%&1?<wg@5#G|IQB{A9FsU8>8Y57=3z*-=HM}&P<|Z4v|En4jZjq{&%BKmDH6c*
      Ezp88Evj6}9
      
      literal 0
      HcmV?d00001
      
      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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
      Td8y8u$p^U+6yBhN7QFdi-7+*V
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{ZBNrs6n^en=_uWRfp0Km2<n{1W}p1PLIPvzbXm<<76KoduDh8fr6pZQ_*=e3
      zW1>I6A7wcAw#F0_Xp`P^&%Mucp7Wgk{`2D(fI6ON$T6&qgQ?lHdV9O(>$dgYY=%M1
      zFXA^&F!Fh%L1kDtan2pncY?8L4NtfmGw5B*Zd%=b>#)yIIqqB`IpEQ`=kk<mn_+&E
      zWNbH~XUI2P-wV8Whe4@69WbcPaKtqj|4YiU&4Qt5;1*_xw&Ml7J3SrpsP7DY&QR)v
      zuHz4!$P@cCIn$7pbSPLdu!vc~aod0<IMn!qH(^-6+C$a|>Opr#qcll9S36-eHpA1g
      zDO}4++&&Tw>8%TwpT%AnOf-}kR{sJLxA%7U?RIxyTfO~OPsbb{7+6Pz?4UXfcJ(G#
      zuNQC=noLY*VaK5@OO~%=WY8jh<~uH#%#NtLgK!$T{FNtMU&@;GLi{l52AQnTpO!;e
      zOp7AokgI|`y<!MDWuMb3p1krCbDvT8NO2DH^wntvUJ|N~1(_8bG`|$NL+1i()V`rq
      z`-H+*EdN6nW%W8#G|1hA!AS1o4(<|;;U4Z2#|p(N?N+6pLyCp&Vy*TC%g@T+v6kU2
      m(K*njPTtb}HVSwr)m0Ky%1wA|;GwKn#3r_+)<=ZQ;qfIW3c{cO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(X;T|V5PgFd)`&G=;Q)#qFa#VfTXF6nheXI6iiJcFmP0PQEQ45E+9A6uA3r6(
      zz@J?OrV>{r_SgKVRNiQ1Bp^|hW_J2`-TkI}{{H8WKLOl=YobHoO2w<Evc-+XOll=p
      zTu&|ezVg>(5ZD!I!VtK6#-OQNmG-Xm1^NT&yLPoK{lHb;z1$rE@vXqctnz};_QJAV
      zt;<dZ)ITB6b=&paa6w>jD&InGx~Heh0!CKt$~a=^wGc<2Kx}Hd+zo+C77`c`Fds+3
      z1P1;CLR-FLVGu(CRxK)IJA8H^nb@L0U*7d(p<dgO{-(WCr8JRO4hyhZ2G32Q5$?Nz
      zz<X^0&e4+==&1#j?UQtjKzh3ZlkJt|iW}*?@+&D-t2B8g*(}t=HG!cP1x0^nx$Ze3
      zS+uL&7{$1S_c1{#1LZuD;j-<7%6}#>(Uz0zh0@=%9T}ub?N;e-T*s7&59r<s!CWj%
      zV@BXYPCI%s6u8y~M}vvCn(YH$?YUJ+s5#s;aYJC_6x2CO3n_fa``cFmaTEE6_G3F$
      zwY^HJ6#A}LX&`-M;bVM4s{`fJO5}R*8NM*_xxjb}{{QN-@FnJn?fB9TWwz={FN_Ko
      zxIT40Vs1K;vC<|%X%n~E1&!QV(m2vs(CzkhqcP8Ao|`UflZ=H$Wa(a!VX+<_)I(M#
      z?V7;wR5OyRQtg^_ob9+|VHqm|olkr>WXC0&nVz-PL2|fjf&+B9k;54a3wb>dolaE+
      z9FerPEwbHD_t#oxqqLgI$5B9UY$c11Zhn<4Y--*+Yp$n!tt(r&kM9M#^+0Crdce%)
      z+Bw|Z_tg_U6X|Acjk|0~P5i(Se4A&kxb)PK2fBYbvaaIW(097EI4?2f@942Tov<DV
      zz6?>HbI#A*87DbXM%40-B9k-p5TrvsB_Ai+wxp;OY`CE_v72O38!xH4@5p8LJacG&
      z2XE>cF~*yW=|>Fjq7z-*O`bY%fq#0VhpR=&I?o;4`)7`Eac1_2AN^fNxcs7FJ<K%$
      zgX>+cYtVPoha!@c3`Ty$zrqs{a1{eY<vWCt2wjZQOFyS-?hQtN!`R$wj2>ca_7IbY
      zn2okuzvI&w3eS;zh4j{G)iJ&*+<1v^=8c)8@e+6RvP!|)bBq*Tp|Ev~^?4&{B)&Vs
      zM$(|>-u<NU*9(T%rIoP7By|xBOdHrH2@lW<o2fp)Bpf!SL<W0UL51DAPmhP}yefW1
      z4ZHC02#V{kje<8w9!ohXSm8(f)QF^L{|h6Hlk#mM$A~-J{K}9(8#^Rolb#MyW3;}+
      NxO<cd#?{xd|1W!Zsbl~E
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>YjfK~6g}(Mv18OWh^C<-r6~!mok!KCJPIxa$5s-9V`Z!m=qHa7FGj_Yjl2r!
      z58&}z_+)07lz|z(GQ*EzI4dVp;dJoK?&{oob?>=nul)BvzyAr~KAbF40&|@pvMNq<
      zqik)}oL#Fa``u^T(re2wi?qOvF@L2OD0!l`y`bHdp@7kFTK1O}dv~wqGz3IV;1Xj7
      z$_v!K*Nx-^i$UP>=dRs+5vi?0VA_4+?%6y4wUgC!-Kmsy#@43O{G!~f>i7wPnQ?n-
      z*KY1;C#lXfY`f~V%GGMqcHLTItF_})ZSBmEXQ&%%k(Y`F0{KvW8_9uc`E7y8M}FX|
      z#{v_D;=Vw-(re2+CUD)r46X@Wsr!L!L`MfQ-182)QoyYD4!!Qa7y25X8Pn=(pQ-2T
      zW0EB#EiqX~DmP}~s?ZNQ0#^&g`cv=Nv$|f;u}0R?6g9hL;5AI<uqcq~eUro6lrb8}
      za6z6N%D(b@K@N8)*5KJd$)lvTD3Ceo9ZNQs4tbdZi-iQOO0{W~4+bjq4ppTc)`EVd
      zO1kx&>W%8>S^lnpH*qtIdjhlL{5B%L%Mr<8T_8IWbs-N6?`X;1<y{mmwp85L5$_v#
      zhz}^b*YC@K%;pQVi~XPFFX=Z*23B!X3-XbHtC-B=W0bS_gq@GmGO&RP86E4%bH36%
      zUXr|&gH1_SW5!#W&$htY%NSp1;+z-xpO2DxA&9q}`7ZPo2W9DhWOpKUu6y3?Md6{`
      z^!0E}CkE!O?l66ez3Vy7;W{#yB+3${Vmy_=dHP>TV1xKl0$(P+lEBl%uO_g`%$zvp
      z=2XUKhEMzkxX;pR@f18W%g^!pFENEV?wXMPM|p$0F$%yuZV(AQLEQDreV#gQefd``
      z{LBabR!2wN+yb8$xo&e6&9{c;($Ks;Gz&v9q$LGiX)Y$!#u7TXgQr-=5!RUb9tMf(
      z>!a#vLH`Qh5_*2lSe&p{infQ#r&z16{Ds*+U_CMKKgR>j>lE*u;={VO5kC42kLfV0
      yr`TNKqU!}06KUr8o)_{1rtl;C{VC>fZIu5^feap?hEE~L<}=h|Hapx?X#5LvrXfuL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2_vv7=BK(P10=;o0f_t(LzzvG_uzEomy?u(nce7io#ef>Lxjf3t@LXIni<h
      zqr<KLL9e*+0(JNpnBfQbJNzBS=WG^`#xXOS_k6tX^E~gz?w@}@cm!Y>^%TYgavi_#
      zRCjhO>&{kf=W}OQe%qHly)E6AR4G^j`9mJnz}NCXZ@Yf0Yh027^MUF(!PQO-6b4GW
      zjjnWR8}&_Jd-|F{vaO`7wFE>>U?K>ma<v!u0@?ay_dD0=x_-wwua)O_$^v%KxGbA`
      z|B7Vj*rkfVj2a5#{eDQVrWd+hI&R2N$)>9%q3zgb-{WRV$zB-vJ-IIrLSh*Qu_usT
      zZFW81(`y2W!r}!1s~WUqLM&`{CLr)a1}UTkj@CV2p6g$2NcDxu#Rv_WZuf$#JhP7v
      zldBPyjRbNT%wgIl#!DHzjCrQnk@_4<Wzr^B&ETKP;3(2&bvlFRF-3m;jn`vP{ZO5s
      z=|nkkV=x#ngSNnQPwL$`xy>iJS%p25P1fs;-jSS{k2kJqNv7GtrOM)H)l+zbcZZu%
      z>9^Zb*>I4vv4Xc#c#E}t>Q&<~bfn7Q9lR?rse^5KFl?j1u|n-XcnsG28GHctIq8O>
      z^jV%#VN}p)>`+WOjSpFgc?0xO1|MUcUDd&3)|tX+AgRV(rCd&vXb2o1A&ZfD?Xe?@
      z(=V`4_*YA+8@tYWqo<YI)YX=%`C(s|O~J>%SDxm0oc<s0oxXnTZl4eOswvNU(MUbh
      z<1?nJ)=7>=g3maTu+1#;W#uSwZR{j6kv&2y@Eq6XloLg3nR%j};4X`4p3iVsq&2@}
      z_Sheo{f(<J9Ou7H3#^i71usUY28k0K$8GW6L{1g&;Y9I1@^^5uXx+iWQ-~}n!Eg&-
      zQrI5phfqcu1Mv!8rCl^HLkxN`2F?GD*)pH(Yd^!bsOuIcxwXFLa_(0K4K>bE9Uw{2
      zX1*P2^Kb%JBE5#h;;LYBw*+a5kzGQGF#@mSOicO{>uH28KZNtuJuH8gSi6N>X(_)l
      zg~9dvc=ImayI9Ju8gnxt@=K3?8T?hci?!QNgv_xSz;#mHz!Cg_9Dc+C*CpJH#1w}F
      qamMEBT8SEzrmQM9n2wE8*kpWyQqN*5lFG@A>^5qV<WC~LPyYd*QZdp1
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))*-FDu5QhKh78~PIm%8s&(+Wntbpb7?fnr6aw<Xp?J<=vMCi+~03wYrJ_)y{`
      zR;-nxH#0fs{PWHH=j84E<rTm>bOjN@Y}NLSeDP#&*EleX$Hwh?dCkaMc16?<g>@lZ
      z1u?=zo2penNNh=4dOL)uo-Gk#dFMi?h$5*Wjs&5vAZ>Bv*UyD}W}VjrVW8kttXj!(
      zWw35;#=J{;LzpkLHTyNvCiif8IKr}CaNMfl)T>Po4afBYq+!|(-#hhKR^QB)RHQJd
      zV1Vg=>op8vn4ktN%6`qUtD!S93BrhmQH+I$*S@&%%95ublMt6dLqg_11F`(hl^$P&
      z-qAqO_kKE<!JL9w!a@fJtpyt9u|Vh!yL@?w>1Oae2`3~I7CVjFO5(d#PaWT_h<zEn
      zT&nfySFfyF3v+xgQU0aCk)0vIQQ?)rnK;LD&*-}6j|fzb!7;FbZjRcgfO8M82)*dz
      z7!>caI>I@bTX{nNBhudhH9Xit7q&x4`cv41a0$jS!5G3MrrL2Uxd)`5Fx`&ZXWT&t
      OTn39FZi(lKVEF?tfwj2+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~*-{%v6g@2#33+T3*#^R5i$IJd7O`ZP7eK@Yq8Nh+gg6Nqq(O`=BzZI=L$)W|
      zspK#6l&U<Ds#s8Qm0wep&&Y=)IXxO%gHVjBG`FXx`<`>py|??XfBtw5U;^KJ;Sso;
      z&0Dd=(#q^i?AF54omhEdb3C@96?6OZnwrrJFPa6q>lV4b3$$L<^SXImpeY<#6KGBp
      zGMXPvXj9OFR)O}Up4V<$yIY#Es&3^pfnc(bRrq04t?vf13xO9K7LI;?s^aeB;Z
      zX3A7etCTVgJ)af05RN48sbw{mQ}fwabvE7xf!7oSab7?%WJsGOdzXM%@Zq9>r*Pkg
      zPJwe)Ni#y)URo=fdLi$_>jHt&e#z8!-LpLcExU!XmJ#r!3wcx9GfQ4v66mPMp0&2O
      zHN%fSv`H5I3f{l~i4&%*r?pLIw?OD_eY~mal0?;i+>bXg<i!<%zB*x!FH{glJ9(Lf
      zYV;C2s$du+%#d0vYI(9A37=Hyq;OU8MDD|w^biy12`65;Zitd@33Q!s@A%?pouy&0
      zqyz@Su9y>ZE3uial4+=EGm$YC@<q#xN7iK6?<#l?@7uXkGb!zXrRCGCp4rp4pDt<~
      z*SxqYaH%G0BPI&2<A#7=65q6P1zBq>^97mI83nVlwD^(KO6I1X@na4*z4%aIu;$lp
      zE7=q&R_(FmD!7Gt%CfD?<jjXpqaAVS_Wxd)xHuLSe1s&)l{C}A7Kpf&dxZnp#vVP-
      z>U04%l7~<NcNCmMyB8}0ohSQ1&+!oPVO79eZN88n%UF|V!@9u5Mg_^_FJnVi-e&^6
      z;e|$(XS*f*GKT#40-IiZ$(F5$SMU{7BA3;ir7dksyawLlKBO7&h|NrsxLi5fh*^X3
      zt`hNKhb2x20{0a3%1&&3an=M+?BWsD^3c#t7W1GxC3O-nS!S&niV7aU5IAdZtaZcO
      z=?+dUD++F+?1gpgI%vp7!9(l`oUvKF=!j;jYWrAZcN8r1_$l7d4<+!Y3YL-9ZtC(%
      z2)M44F_}j6Q_Ch^R6r|7yh-@<@-0RyXj`I(@cqVt2YzP}FoiQ5E7b+GXZgnC9qoL|
      z%|%+dc{2Jt0>5&=-$>QiU?GkN_`kw`BzWN<*l`f-ItX?jhy%`4k-A9*Y_UO}4MUhg
      zlubX%P9Ddi3w`n>I;+7!e@qM+($q8bZ5-lqvgz6{=ou!LQ14^~gB3*9hXbJsM%N#C
      zM6aBG{`0?o4_7c=51#^iis7xH2kX3CRxySR8$MKpaNvEc<_S!afS-h?aGpU3yoI+N
      zN;`b_kkVju_z3SjMJP(N51wM$u>qUi5fT+F)Wq&!K7cGa>>vOgUARx#ayEWP)t`e;
      z&-fU(i6-O)<)A(yM~ONYtzaoR{3kk}VR<8%I>aY3F%^7T!QG^s<LmShKIezvRs|W7
      z%LKE0aHCGcWi@4jXr@n#+{$QUo%UhR#c0l9)Pfsio3k11BJVJIse==5LE7mGO45>$
      nZ9}#W`}I0JrVdZ2!w=NqN9ypC3w6+?!`Jx6M*Ws7J^1cF!lgPF
      
      literal 0
      HcmV?d00001
      
      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
      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
      K6X`F*&;J1+7vjqR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(D|mEz1I06|dAH6?;(&c(-^dtw^<kwuZ!*SeNbyYswa8XDj|CpU?;r
      z6Mgi-A7%VzTSBST`Y=1QGvAzZzT5o#_4PY|DHH?fVK}>DyQ%DAaW<2Bm|uLFs!x@t
      zQ$@aBeLv3)lZya+9gQYijTri7EZdTI8G2*!B?e!%W^xU^=-1&#UjPFPqiswjF6vf=
      zXKS|Po3bB+7!F{FA=+lAph{dGG}mzmhZ%yU=b43ErkG=xDE!a8bUzr5=s1dF48u-C
      zLb=k=zz})aj&hJTO_vIm%@^FYWiFl@%T>-0D%2`Qb;%Hx`fqOf<f`Q`jJ4yn$5$b)
      zkayCMu2Yi2vR4?6#^QyyM%_qN4SOZk*iEZ&j_Npt)5?dlIwBZj(1prX+41f(uzV2X
      z42Rchb#6x1xmYu7Zp-TXAkH(y<SLICRmp{INUKh3(-hosh%~ZBVU7sC;aY;51VrLP
      ze~O^g3aSf+@mPyz*<3M|S$3o_Dl%(|yuI$qbbLue5|;wF$PnJoO($C&myu%76m;3G
      z)>I6rkn+mWDIL?wQ99gkxg*P#sX@b49oKN(^WQK_>d3B8E@r#S>Xu@SD)FX{TewZm
      zzOig_c0ShaQoJP^ULSR=TFPM(Gdk{oIz@B1Y+5nITXp{fKs8s7WmBcL5OxYF)s_F9
      zuq4GK+KSy~yXeZjT;(tqz=H$L-qBdcL(DS_c<6iC^2PEh-x?n2c#HzWpm)5Vm|S-e
      zU1LlHIm}RL)LeP6wK@u=5NM^ED=K`>Qhj=;<ypI|+6!Y;U%m7g0zO*NLq*>J{XL*H
      zqxneU3xWyXH)t<<KS3{TBlMBBdoV)ZA@Axfx|&7^GdNCrdgB^S;3WMq)vQg(O`3aX
      z?;=5-DI|ZupWI4(M)(8mou=WV;iqwo#);6mtx$A}ZPB{H74~Fh$s&h-k~e@kM3Kh@
      z6p+B8$34=(Z*u$TY=Q=LGGd4~RjiVYQV~rgcaYe|WOEKDlDoJ<?j=c6Xcsqjkly!n
      z#8dVPL6qs)eN7C@7)ParHQHn)WZc7jk2QnYc2<Qxxr3~l!_Ar4^82h$+F93$b%R(1
      UF-T%{|H8UJQBb}<^<wtyH-MR<i2wiq
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn6n-wH4GGIjV<~NczR&^*0Ya(8T3R#&3e*j$K&ePI=4A=nhTU}8wAByl
      zCqL>qzKo8}__3poV>{D^8JV&A)qmk1@F%Fx-Q9)+%ixFX-o5wSbI$Xe=bZfU_b<N!
      zIE%YJ)CsibjZ!q8oS%qAr!_;f(uEnbkkc$5>IGVFrSGPrg|v~6CNsCRtnI@Afm5cH
      zkDBXw?^@Bc>~yA}MHg&KORvkN!2Y}GLW%EF>bC#*<a~6Zw7RNUS}vZmk|n!Xvd07t
      zT+$8Q9v3(h+S59`Bv2nWb6NoV(4@eRW`TX7@RAR$0w?we7C;M{{1A9Sfe#G=Evjy4
      zbEWl+W-Ypj2URnhE-a-jU4DC;_4b;+A#k)Ry&AG4h>U}b$Wvq?C(svCcj0N)Aa0ke
      zF`0PhE{VG|Io5u3;JAV#I3dtgm4&1<R?zc?ZsZ-qu>eltv=7|^9kpcCm?=1e9sz$|
      zv)zi2)lhh4LK4)cAcQc1+_Q9BmNK+55nc))f<Ye!1iJTzrC<nAx^$Ufd1j^Kv(oX1
      zj5I4@zbMdF>nahOUzmxh0h~kAzUespey%Pkco`R&#=35pmVltIbGW47GAJ3plukTd
      z+F+ssA$41?i))s7PnK{j{M=n1UZo5id)<uACa3OawW6(?1|#XRK$PSEDIgQd>?ZT7
      z0#YF&D^RE1Cu%pL+OX1qG23^<^eEx!{*?W0ktmOa!aHmhxi4E{%!dTaUd!o3Y%-O+
      zHZ>nxoK4OJpt{U9`nkHm&dErrcI|Ljb4O}B<w+s5tESy%u87*taxY1}-Vivxi(b9{
      z4`3N9KD;T=`Fz2;b_#CdEdigC$)d?-^r}r7cLZm`rZZavdUhbI%&M9z0?llMs<ss9
      z{SV8Pt5tUFwiaX+<dCMAvXr~6r5yF7Hk@I|vc(Ig!LoJG;Wob7=^-gtQ=mINv!TDo
      z;nsrNa=48IIIPy?D&PY_AKG?t-O%nAIg+(p00!<z8+ON$>K>?Qnq!9AGbq%+f?2Y%
      z+7(?6>0nJ7L$Vn-J*W!)_VZUKha~?i4sgv3_-y3Yb)MJp-PXSerGE=8%bPg(1i}6Y
      zACGuYheLb@QP1a9KBtIA<z519+&S!C=DVF=bVHRi&^0THV_t|qX(MkZBEO^KYaEUI
      zhK@x4V+02tqpOUQW%NG4NTiJZ%bnk#QJ!>`G2Hp>KYu;IvBVb6F{kr$gTc`!cxiB;
      zjIkSoPan}aFoN@V#Y=G%P29Ojly5^p3SG#f8*AugDTZ*HmIg*q#5nF?5*ER15J<^^
      zF-}&PU<F13F-$Omf`f?Dx{jV&3H>5hqqMq$X|Bf6j2X;23}3}-9$b|tlF`;Js7!oL
      zjRccVa4qtbdoG#HyaBvVqCTL9537i5^)hJS+3T36M}Y+_dY(V#eMw}mr06lOld?DV
      zVyKZ3o-uTs+yI|&=TjE(GnVXgvh)Q`<4g45D<_YBH$sJpUb2~D{FVyp_6lm?9i+Y7
      zM);N$X^^><k$K3qi&p9l_|EaJxHg`50S&9%kvjay)8Vj`pog!F{3dRxRcN;$mLr=e
      zJXE(}$W`&F<FSWTeunZe)ed}5$^JleKl0=!^x<bG{z-@VVK07=GTw0H+Q*KNHI*1_
      HC-c(38*UbP
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuzTW}Lq82(O5vuT<_JY1SK1zJ(;1qjp|+JevkQX5+&y>N$ZvNl`N-H>ccD_8F~
      zd~tMiP-m2J#_{q{K*5m_opFW-eRIYaAAR)EM;{#jb9R&LW;>bfx4Zx4{Qvh~w!i-O
      z!(9N|@Q#82L-Uj|n@Elv9N3-MZ|1XFF=b{{%PcBb#t@xW=hQ@AHKr0HlhazpVo-8Y
      ztHi*MrmEs(UM-dS7{Vp(jO~XsLj9S%Zs^udhPuwKafW3{Gpi|xFs!ICZ2-ga2<j13
      z5M@|v7N-*C%#;(^fue3?^n#kVT`S-WZC;hpg@Pu$mo-*VYF>@q#zI-Rh9T}14wz<M
      zQ;o7hj3MS#NaoaHS=!3b>Xq&>XD9QOv)dS2yz+f{Q?<(G>-=JUUdxun?Y_tdjf(C4
      zzQ9tZF;zBwfMIpDo+BAcs~B$d9h%OW#frGomr~jy(kq_3J)S4rY;5v0(S+A-i_fp!
      zNOr`c>RTgFMAds4+P$QWiPXfEF87pzM|_2sX}B~V^Jz#PTpHVbF;Q!{<WKs#qb7)c
      zhV|Z1mxz>_zNSTG6S&UV<?D01ja(`NzEA}7E`>b|>%5^jo$S)t=Zi$v&!w^77s*&H
      zt<U(J$nv<Hq<l{7R&c2d`=WK)rJ_TdA*CDI@a)W_RvcAnsA$oMm6RV>i@JDrUIzQ+
      zW(lJX=?I=f18o;8r_<JHNmWO{ZZl`4(RzwxikfOUgUYa@Gvy_(yhZxDY6JzE6>)lk
      za?;cpaoZQhVH{O(gkjCnULrV#;}q9v-N@41cGfx_O%9QS{G5cU;1t8E8b4AV!6Y&a
      z^>b=|me`<8Iv7SHv<RNZ6hot-ogFkvmTF{3x{3~|u2y^2`V{C49bVr{BqZ`V9YG#5
      zf+*9lG{ZV+(O#u_@yG7$TXJsFu~o{)3~jzZp9(D-hJiDpHbs%VE3Ccq8LeRHrqS0m
      zE)KOKn8h4JKqs2K8Q3k<7s5P4(5_|}FW|g_bDp(hXPOk%HH#5kz{N_j%U`bT?hqWm
      zuArPZOVW3lVP%!oO85+nzKF4!R;lz5i3b^)GUiOdG>A)4Y|0`hKcEa7YV4M%2z6{g
      zqs&*k;;fu5geD2OOXw7wzQbvAwwTfO>2iQPW3WYJf(}}}b@YEg0IlMyOLwhe4-?iQ
      zL_e{b!vOn3YJqh`+kZskO*Gv=Q?!Y%NDGYc`y@8<l@ddIwZsPAEK%Vt5`#Q0v5l`4
      z8072aV~Znh<{k1m%r^+E=MTz9&L0vOa<pT%mf}cTd6(3R^B#%I`R23}W8wx9(HP%G
      z?-TX>VFA%Fe^g>4e_UXYKOrBRd7s1}-yu=qPf2XxyCsHrQerFLD^TH23kdN+`Ihq`
      ziE;jH`nn`@g#KQ|M*4e%NIZ%tt$-Mgqa7#ENprpxr?4F=cF|DpM+PIvVgedTXqf3|
      zAcr~V)WFkt6{m59#_>JO;A4_}jsm_x5#OSOJFxHzP0eql{X5R$Pt4;lEZ}b%j(>0t
      z|KdCg-~wx)L5SiKi{UbB$1o01WC6OESebT-ksxIBuD<&=4p!3$%9plD#8$v4#z?UN
      z;}o>rA6uwDmeIS5-M4V)7EbiD;W!oT?lm+M#Cz{yg~VIP{*2u4=6k5$ycqwAEP!6R
      zR+cZapSE4>Xd{Zrfq=GN+i>v<G^OsqINWm^g`Y^b#Ls?@g;WnYU7TQxvP*l2)Jxbz
      zR13@#73T;8L^3cyr2yWgqP$Oi{Q-6Rhg7Dk=*CB6@d*{=Qw-rVq;ZX`zogQ9O&%7B
      z-s|M$CeGtKN#0I5BNy=^ULt=XD)TYCOk5118L!Y?fV>}~(!E9zWr(TQ@diofXvW^e
      NTXe_pHrWMm<$t$z`|bb$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~ixn6n@_Du_0Y3#6l~D8d@kJX$kmULR$+;iKe8I0wO9d@Ddi2-E^}-^v;hu
      zI-{5B*ipw`Iip_C84HY^>7^Im_#6Bq>ho?=!snFU?ECK7^YxtboU?!Z`^N(S{U~bi
      z3G`*GVr)1yK6E9PNR4+6+Y2%+-NJ0%u@}v(d?=Wmw{v;hl9sEXTA*>+STSN*!^*@`
      zbIWqx6$s4R){1lrrfmuMW)hTGhHI|K*@EO}K|$@HX_@XNfvRxNq(HR_7C;s1b<`ms
      za5QOJa;%t}lg<reE-M9sNqgSNP8yD>-pj&jcgZXWJe_>p)Z>ilNMk{uJDjwgOw7(@
      z%GmR^<Ejv`gq1J4X_sobc+X@2%{Z>1Md0+K^>v)UlZ358%oek@mGO`!>L74ZhX#KD
      z?RZMVDS@_~?k1AdPRpC4GMkr<jvzt;;lm|4;{`aaqXxCCyvg!+9tNF&-?fR<RCyi?
      z_arMlElJ}V!U8S3#Y4r#Md<|4jd~4Hf#Z7>%<O`6{5UV5l{gRzAcB}`bDuzScyB0G
      zYPM9zGkBI=vWy(N-yBZtla+Gyyp9*}A{k}m^U`8N&+q4RPne;imswo77|_v$vkJzb
      za&}SR+#!7^_;Eij3+SN==?SqLSCp$EwmUq$H}g{A7`z(;9EdrA6Z>T7dFN+Spy^?M
      zMr<c%xUO9AgJaYX2!+PH(F$?2LVmm^&`w#(U6M|yP|Pbb%LVnZFhF^TD%a?d6IS!S
      zW4f&D!PH6>-JJvQI?@`(1<veb?AE|+H_&kd6Py4q%4}%@s@X&~w;fYD#_)zf<Um?)
      zcNL$Z8Ry3?a(Q$e#OECre!NBg_pJu-4&K!;%K}!YnXp`$QKMxjf*o<~QMp>8xgYa1
      z3xxxa$Y@w(_bQ9!Y9e(#HoRmw-cn4ZM|3PH2U<qDV<f2`%QWucv{rd*E|9j1&b%Dq
      z>g0TJqxPy4$drU-NoP1~6biDSAun*M5@f%{tHBYd-=V{`yL&woVp&vK(CFYKRdL1p
      zcycH3#(d%DS<4$YEuTmD7UL;+)<ia--{r-JhO!cn!BO7zk^&mh#5e9^Ji(_jzD8{y
      z&!$Lp9mnpWH4@!K+dXtt95r}ZtTOTkbnv0)u%%>Fc1UxaK_^|Z$2ePd{Wq#T%iMi*
      zPj8?n8NH9lbnx5;dLxnF(Yk^Dbv(C@3+sqaQPA-xE~w+dkLZsEFDYr&#h=j@RoWeG
      zy`Fx2D%u!Y$4gV6`b3+jedoV_$|52dUL%$g{s;>Me8jXrW@?{sBi+IPKEq{vP6B^{
      z3EmBSNgjOVK?;?UEkp8?MK9wOLK!5a5qeQ=xcVq?qlW|c>f?Y5CYAPn;J#*B-w@ol
      z1os`m-6pv23GN4iyG?LE5!{_agBwGt+_^1ML|Nh1bzE0x$0jCslj0X9@GC3!+X1AQ
      z#+!8MQ-6c9YlBr*eCzVKFvD`4+{D}DL2!-_-WSx}ED@v9%n}FJ_#3~=xmep4u4{{f
      cU3ib_sBl@21UXndgM7Df69rC;;LSzd|1yIkHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBrXn6n-vmA#srs3eq<kgog0arq;LGR4IgjsgzWLAYu*6<`NdeZf3KA{s8}i
      zzrn9|MxZ03&iK)9zI^kuI^#HwzrgXi*`*1Aw&P?b_ujMTp65B|Joo(Y@7Lb~cm>4(
      zngsd_RwbUyEKE(t)0u^#q@9;p>6UXP$KEiDGJqC=Gh6zO9xv)vA)Z;^l7=hLu{b%K
      zOJ=51xom1ND<IOeC2gzh>Xy5t7b~)vAVQ$c(jCX%6}U0?Y@{RToMCU5Y)e{hLZD^W
      z%u9igB@4D|>aNTSMC$_0rZe~BKIg1-c1%N(gexDa%Wbz!%XHrnXpW66F_!WRp&4Nf
      zFQPMmvjW%uFQ*W?5e`D&B@ID@)b5;y7Z3{J0xkt`QQ$%?rblm6cd8}LWM?$=<Fdfn
      zf^@T$Qpt9hQPTfThOv>=bTdPWAYoqCFo-slyzZJiGFO(aGGEaU#W2l=ZS6>>Y}%GU
      zQ}vz*3UtnymYlC_uS;i9UoWzF;W^vTi%Ys=s<UrwaW~DfK%}mgr?sC|43>|GlAt4X
      zc3?18cP%-+5T9HxyN+(S$-I-cN)<OTvJ|4iUJc;JF@>GxtKl`gPL?WkPFjXuDp!ik
      zSfw=>8)-nAs%&gX$6?iupj1cR)Nl<q1%_jDwo{1P+XY|Js=_Mkc$HSxCCE0(2?Tt7
      zA1}da{8)mH23iBpB_+`A+JrN$0=vyDYA?vMCIYxa5jC2pDrPY+opwwSb-wy?A_nzw
      zD-yy4rj>A00zI*l@l?epFstER@F}+GrINJRs;l*`-s4T2WaGmo+VLK7$0N&pb#=J+
      zRMh!~V16D?52pCs*YGy@0$X<-)1?-No}rvf#XXYFB9;R9K;UxiDK)glbJnno4+Xjn
      z_SKcC=ZU9IraqVw&qo^G$ErZ=sp9dRpQtB<MLf{(2|AgWQMAjPl55ABndS&`EWMcG
      z=yO8IAsm1~p4E1nHYaWBp&?72$Q#vkk|iH|)~+~)oZ&>KwD?l5sZau1+OnjREb8U5
      zEC*n+d$p3$jkCLPq6>8SrrM;%0Ednm*ey7RR<!XH;He4i+;PmQQLctub=A;O^%QD~
      z(td`g&w0Cv>*VMGx<(Jty>ft_J@nSLeUEW|ZuBekh9i3zP@Azm3~}uX$2>!yGCX3C
      zCXDbuN?>4xl)fR%_c)JL4$lV|X5r&l!%gV8gLRD3tJed^7{+<(=iIzXKh9B(g}6^~
      zjXo;H-m!gLzo!U{@8b<cK&>_0FcE<tS%#mO=+EfEFI9|)ciYEMm~Y`0W4EFU3EXCM
      zp|tL!-KDo+oX8<2R>G49NGimA%!KdmL)D>=`+a1-q>q=cDmw6M6-)E(`dEVcT%bi2
      z`ZGU^D6_~OWwGLCvBFF~{sP+aA#!Yh{@o+q>S0SSvQ8dKf3>l{k@fG)?hk(blVAVB
      uCH##m_@^$@=#xyN%rwtPt&~ZEyC(i*mG=e;T*EvIY+{QY>*nrL1pfoLR0stC
      
      literal 0
      HcmV?d00001
      
      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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
      JY5P}*{{ef=xhVhu
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Jd0>>~ng2cCH<OtRUmzre5J+G+)SLtYjhYCWgu`IC5#-P?Bp=C0m>K8bs)`35
      zwN(qA;03i34=Um&18Wq~?PAxutGiq4YIW73wzj&ptF_%;?C<@)Ig$*p-9Iw#`@P5W
      zKIiXw-Z!uQ^|_+}rpiGVG(k>BAXeS9a7klBb@Rd{E;t0aSNb;js=IuFj_QT$t~A@C
      zf~+|W%`LNM38a}@nu38y)E9^@_jScgoy0r>cXJ?Wh65%Sds_z3oRpkt4TXd2{at3g
      zKx=Ln<h7&^S{e=e109^vH<(*Fzq*km6YC>_0()sJ>hG#<2#0-JTl|qIS9==$9j&ti
      z?S5Z?ysaXm7x)AI=uFZnEn6;dGzHsD4|Eh7$j1m5iUecN%$*0LFh;E|CWoa1MX4`a
      zo()nkkPVLuUO~Pk!a%+}7>7c&ZlZx<$W^_w3=Bt}U|5SkU@nMlTxW)t`POxrN(sR>
      zU)OS9*ss15gN|sYpHdGSbh^M9@`WSZHL)~PcV!u?J+rs8nW3nk=5k@OpfDKjs19!I
      zNZ7lvVOHy+h9wR2-IzjE(foBD)L^;`(*`(!Z5spMKrJ;+%ZH<p75-=^&2lO>R=IJW
      zpmbTM>5W)c^@h#$bd5ICyD=7ta*zbPn@PZ{j?6|KE^vXy96OM`rr^d<m#Mg48udkE
      z5d$+o!x~Ks=PzoRy=?ZZ)&&cdvz>WYy$4meNZGSNP<sk~oBuBYWy?LZV4(|i{}RjG
      z{$O?E)~IPY;=))o6pK<trf;JMO(=9@E?v>mWV3;JxJ2Oc2inao3)i1UVa-bG^9?Kj
      z<;jl3*4b)PtDDO*?W|TWR;!l?MwT|8ddV^@ci~dO@N|f&FzhhH23FuQ6<o@bIHrhX
      z9@1P!u9~pQz-p|a-)#>2qx3rmIifmhaD{<ZtYy4)nSl=F3XHdA7uE^JrNgUf){^SR
      z*m@d2Y_>PGhnoXbl_J}2zy#GXBpOU9QV}m(-ROZ2oyuH(o?5!P(boP316|n2kyh%N
      z&_Vwncua#*ny)RIJcW_!K@eBD5K0EA1!$>=Fc8KFhFFNWL-YCCHZ0?Q(*-J|Fs(Ei
      zmblay^LMqIVGklGR6m;yYyn{^%NGin0rFGTUxhYk)@Pb7L8jh~Z}MdC=1zj4SJ{C_
      zcop4i6y0kFk+WGi139(xIs@0^2AVY*wATwplxA|kC@Y|%c%FZ~-)yHgX&jTGNtX@N
      zi0fjs$~fB{PUq#MAzKL1ZTyiY{?Sr;TRXRpA7qpa+jFaCa$5q<2U?`wh3_V9#j~3i
      zrflWGF5K<HT?4RNIoDvT8@NX~WwvsX)~;ZnL+!lJ!2Q@w;E0$}ri)~@aFnjHed_@O
      z4=UdpX8BfYAlOQi+6kp?U@|+^krXM*Ua!vDXW)Cv3_~mqY)vct|Gt4CFw~0u2D<S$
      zao<`&)%!w`SeH-1oO0{_Ab!g5A)Y;n11>zp*iMJQa+6LJ3>f$Uo~EQ0?M?QWpgiH6
      zN~tOW=^z9vI#kB~`fMh@XAB&|vqY^Ff&5dfRB^gbE$=lDhr#IW3`Q8-J{&Rd_sR;x
      zNZwXyEYcYaN7dp!1J5Iii$fexi;o(3Q6WK&tuXVdnDR!YvX>0xV5pMz9}N5u|44$2
      zlQy%JKV7kie-nMyso-ywqI0*R{v!kbgjX2^D(f#bqfDWLYmwwksuuC!HT;VU|2)9A
      zn3pCEUTNTU<s}Zqs0;rp7?Vsq%?lS*FY|SD5aXD#f&nu?(cVxcz#I69fj5=FdeqmU
      zzTYzN9~dea+Lm0}+U|?`6!-5K_!)AUVN+8PRY|;O;6L#`Dfrq6Gy^hj5@@J_4;9q?
      zoI#(q>7@a4ONiB*Np?RH6lJoz$gamcIH8z5fuCeklfN|ZDSkz-CKeDJnDhEs-->`P
      ze@B1_V)+u?@iY9F3!hUT>7z528TgH|a&`wp&?2jj`>lchR=O|}b)KaO${$D?hxT(N
      z=C~@*npO-^hdAwMqgDwip*F>3rhF-LFi1!ClOnAdg=I_-V@|O-p&S+8t%>Y6=?q!N
      zt^-us5nz=|BqI~{11ozm%L>sAap12kx9l_eqmLepQO3cTnn8sOdMy501F^0yw`B8t
      z@*qPDF(ik2vnOpV8stDk0vgh0T80^tt8#sUnhl@hB+rn170!-`e;Z5bQBt64g1^!=
      zrO=R3!irj_Srz30rAWd#Ju*g0T*6{{T&95%I=<NK3aP?mwTu-sm8OhgUrQ8JsM@%?
      zf2mcUT9l5yq{UR>uSG*H8BeokrgG)g9`Q1hi&rKw<H}ir%KiyFsg{hg$oAcOx12+L
      zczsc?B2lJDln)}249(M%s3d@UOI!TWD2o6)gOqvQGMT96y~NzgdSIDMF=VPL3Rx#z
      zY;LjHato_-Q77X%c35$ZI^7{WAz2R035GZNqQnBXoKN)e*!+2$+v_}Do=PVwPLBB_
      zUSC_A8HxC*bP8#&m_c1~DHCXdSvGCKcDj#SE)<OB+yGfp)05rO(C<WwW}VnXhw&_p
      zg_L#8b}vcsx<JUTbIWXoy~n%4-){19@S4mu<YIO0bZq8`pr&6Sp9-gwz@0{mdXHQp
      z^Ig&+n3Be*ziqD}=i&yp&<1Yr0$(^B++0URB(-W4QA?6FluMRm1ikGsR`r_*dReS$
      zNRdko{Dome2U@{$S8}ptv8*Kas$1;XelqsQQkw+jS%Y?$Tu!5<<;h&9XtyfoWb}?H
      zZOW_$6YiV|G8tSe6kO*I_`)oDg|IxF$*9#I45yXMRGSXmbWElp*ebT9!;nr@Fb*Yw
      z)ZDV5p#D_5lM#K2U{7r(dJ#UE2$+BSvs0YGVrw**%q$f7ROh9M@|r^=4A}{?)!*)s
      zpj_orxng`KjHR|Ef$VivOrIXe23BEbphrtDmZ-W7tx>&UiVNO7R;&7Zc3Ob{Cr+l=
      zwSa%IY%}DW>MrDL>k38)@gEBBA^F04$f*9Pm@3D)%`L>9qDupjQ~)Pb<&AC)nd&Yh
      zE7Z@8%KdiGPY31(8_AN_A>Pns1&f2WWJzSDeKW#3ilMOjjK(L@`vdez0z=|bG4Sf3
      z9G69<uPfq_JLJ1Axik5+k$$s@81fz2$wPVF<b{*fRE^xlF;#W-f1^rZI+2KPR15;A
      zs(4i!jCQI*$=&ITbgHt^C40z@m3gdFw)sQV4eecKcv_7|cB{m*TOKmxVRgsNiiKDJ
      zQtLIc*N}axN^+|ziSG+!dAB^O*3tUA<uOC{OSe63y}U8;mX^)q`94LP*H$|Z3_em7
      z2up*paGN=Y_f766@=aFEu{LN91k7+#moE}ADM;?%nwLX^AMY?8JeO~NStx>&ztkJQ
      zG`QL0s~G#tS1_!W1w31*S1{|FZ(!CJuXz~3bp`xd4F`L``0~RTS>A_HE7=*{ixT$7
      ztvrnJy_it$=*6T%T%_S_{*L6qkZbr>xt0ZU2xDXmys{nVaL%xap%i8O%0@XVxT}(V
      zbxf5yQraxWfk(>os^gft2YG#{TA6oluIE{te;60O*azXsjV*m>Vmo_&`GTsdyg6}P
      z>{uH|%L2XD*^RMP1<nGelLL!#bB|!@u3ATBfg_HUJDgg9vnr0u_nmyd55AR^akL#q
      zN1d~x$Qj3#70<L(#1T*@_8~&@F@A2!+ZM;w<@}3ddx{N9lo&SgA;T7Y3AF~<iEP=0
      zVR9FPb{7k>dno*UD3$wBPVYKb9>NTHgk{5CJ^(!gpFE0yJjQp8{n#XrW3xQT=ZB|o
      zuN=SwY?acM(0Wt{ZnW&?#d7SR`uK>)SEieAGfyu^3vS`8j)hd}t@swzS;xJ%(F2?a
      zaR0aQ9riYJ&+WK_dqut2BvhZp_D);**ucK>pCXFAb4KxQ<do~QZiODlz2zL+leY6{
      z5{LA`DbG{nqr5A;NL+e}BEM|0?X?LdY)z7Q2oLjMC)M-__iF6(YM;r3b^+O^tI7y<
      z;@)07YBRG3L(7F<>Zjz8KC>HNsEJw!e;=!J7C82xcYurbprpuo1W)whV7b+g<L`RW
      zlk6Yv#dGD#>M!)-m|mNu#(QwkK{t7MH#}<Qcx{$m>*_|c{oyWfJN6>aUigX{`*AmT
      z<QsI9f2+$b$}VvC;@^w16GVS%FMPWwJC1i(>~Kkes~~IN$#^%W*SU&ZaeQFyKEd4|
      z*JTxD6)=!KDatBx_TU$B{JIxkkidkZENizeCB^$r4nIV#1@IQ$!H3kGinlv3k-B;l
      zZg~qi@-~Lc&oENnW!$~TSMm=qUVe^q<OE^-W5U=k_)7ar%#%;CTz<tD!OyTkenS`h
      z64%IA*dbrzHu(c~${%r`{2BW-4F@$Ham|5anv)mtukntSjd!&n_(&U$&$T>!rR9rg
      z1u{fFkbG^FW&3T)Rb@od_UzfV&k+~Cv}`{Xzq8y^=lYM-Eu1#5;$8YH%TWUitKV@f
      zi*CILU$b>#CoaJ6*>mF{#^Mk7AG-Rx^rqYKN6voEu|MI@oEKHO@mImuT<S<;J489~
      zNxGA0X$Kyv98?<*r#1l|ZKB2aNPBsbaSRcsD3aM^JW2FIu2GnnQ=TvGxOmF-xC|Xk
      zb~0SrR2W)~Mb^f>9E%tgqi&T64iAzEhvKw?wtke<Djdq_aT&grRLQmsRbE8SM<|ak
      zRFfrf8F>sR=2ui6k<mNo7>OPGPJWbT<7}!2T0Pv_3>0V=VYJqO3ECW-qg{+?S~JdL
      ze~xyE#a_A1LQ3kn38|;ism4*M8YW>v!dwDAWhR(ELFN@&#QMa$@~}*3NeD4<MMb`x
      z9T&EW`M8v>U^{6K?T{}N#hR~Dtv;h0qtv2f#nXo4<h4hnS`F{eq*x6e-FNb1ZmCI;
      z>cK0D8fi>_h6mdbP|LR{XoN{^DTZsyP^4W-QCFZ$y9`scRXAT;gPGbDSj2XX=0m%-
      z4k4}G65U3rSVD9+ACbNxwG^+OsZ_xyO|32&w!l)85crvt!1;1sk~vz>609yckP>`1
      zhEj?P)Ofe0gPDn?7peAd(?Mfm%Pgx^YNalEWKLY>C1w_!W@dn{=BXsFZKSRO$kl?>
      zRS4s?t5B{*sH-S0&^BR~wgoNPHZ0bzMjP9pwjG<b>#$wB9y_%guv@zkPiZ&x)88{G
      z{XL%0--3SnTa?rv<5j0lfy?@2F&$=UiwenQN||}phh_QviXOQvF01VvUd|kzbc#Ah
      z5n=gqqOYeicS>BYSW(FV<ta{KKBu3&Svf$?$t-iA-AOrjB1gLmh1xwBr`?aUv^}WN
      z9zebJAR4uY(9E%=+FnbRnKo}JSr#!2e6)Na|2w6;LgRzq`Ld2>lg@v#jAo@`FmNVd
      zY9i5!w2PStjoZ0e#r0I%Qg1Uyy=z(8ir`{9f)`X(9Fg@2XIC*lAcCy~s~sSS9Hd(x
      zLW%Y)-TEM=Xg&R+c4{hWr^=NCMc&>Lv8thj@c0$uSEmzikgf!4hsYXBG&B{nw(8Gb
      zH)<5dOyF1&W0c-|@JaDrWEVLsX8Xg<+iAF&po$djWjM4SB47IvMrp57*FVN&?KMp2
      zccb>Y#q@Oh=oHgU38u-8Y_#I7fO$Ygo{qCvnkx2L4XAsm%|44Mr$yrhviS)e;sLf_
      z9DNuys+?1OmU9bO;T?YgZ_L+g9o-np(y!`>1eWe_NP(l0&hp!CxOFwJ{LtE8(Sx5J
      zU7PD(dsre1sw$7NmXw&iyNcUuj>x9;Ze_Mj#ILR07*^-#!-p%29EauV7t5<`|7GUx
      z#<*k=nJ?Q9%k_%exZJ=B^03_WqDtf2S<&6h%F70^E9hp>-l4<3$H06a#oC9Mq@7@3
      zGHtWHQ2UgD`D@JAKBL2aj^*sH(!Rht?MrlOUlGv0#5V2s4AMX0X6-MyRXd4Yx?r#F
      z#PfQVrTjH2C*TE3sqEkdx!LlVNh}s_kz2{hEWR<?y<$w1Z!sCG1YKYm#DP_qV}*py
      ze-I|eZl!T<lW)^VqAq0#BVCm6v7U;Tz_Ryg$IOaj{J*QpZ6(JsL^)N-E67)$R)0U7
      zjsyAuejhuIF=~jdnm%UrkI3yz6a}g8{czE)4t<6qa2(TA(}SMlD6^;?$9Su?hDIj4
      ziA8bQHM6+nTHf^Rf#(wQ&+WB&&<{{E{Su3w1DBqQY&{Rd^br`V7htkph#C4Q%-2Vw
      zRWC+JFTsuaSlp|7@vLrF5;mChq#V5mx5(Yp&OGS66XfxPRxC~Qvhjr6%Q2k}|0o^2
      z%+lulSZiw&_i?o<W9IhBZo=jRE##c~8Db^QxICx?IgYav0v^Y3EA3MHxIDt?#Mg6i
      z`5xi+`?sbAw4zq8U@%ltxGEItlPTa7l<HGatJk1GpKdvhT^7wvA>)PexI97TG<i}f
      WOP&%%QwjAN-QWjwvr%lHhWsz!KBPqe
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN+fEZv6kVsS43q(-T)coty|zUisdqsXt0<-s1;s>-W+=xpW|*m`gO?azj4ytM
      zPrPcP7=7>q{1OxYL0xBBDJHg7)68Y>efC;=@3YSI%lA*80gT|1frx-r^p>sM^vt;l
      zYsw3xD#%jcD=X(Z(hFwf!(~|x)&<H2Vgj2U*pF<>wY{P>J^w%!0s}1q<Gw0d{!-Dp
      z>Z`z>cjdagx`5LqsqDb<y|RGm)GDBP{C56-5Jv@C#vIQH#s&7K@_+7cMi!lNKxSW!
      zrso7=Ie$UM5k-fIHgpO^Q|Y-lHX&i4OCb4I6cgR(5f~`SpziDhPNvfT*;E?@`b-#T
      z71)?}Jb7h#X<n-9dd>ogykD^0Ia@i}t~z7EqQfzc)EPnDGC9C@Rhy5%t~v<ohbYjc
      zWI;NQ<URRBi-=n)kWKx|7T)*6y@+4<1wgeW1u~6PFzKtuwpyqvwH>>#$G~oZBaM>k
      zwQgcN1}O%|yYKU8{A29`!r?U~(D7>&ey}K&E^5DtjD}u|C|Po!>WF3HfR414rMGae
      z<h!o+W=$N@UNiKn$~n}5qb3gPfU&@Xsr(S)go$J5G;m6wyLK|yrpSgodx<LPNu~3(
      z_-vpYuQ;kjKW^d-&I+`K>b1*MP4{nWb1t1+dJg9e<fy<JOc*k80b?wR`By@!_^iLo
      zZ^@*i)j3#i-sOWD2T5u>%4-9!gqAqJPpy1!L!9?^T2qMd2XtgUz|0J<V&i-CzNI6A
      z&AfLq9c&?n379N$3$4CN0=8lsEvBL$1B4TLj~UxRUyRmJNU%tc#u$vAUO^)B4!r}}
      z;g8rE!OMsk(DvuoKfcu%6U+rJvE<9>;&VIlA?r{DWsP+Zd$Er!5wfR{=97AEo`1M8
      z|26W@lK&d{Z#2zMxv>g8);e7uY|MI#tar$Ii>!B>W~H1PvyL=oEs#}`wLsQl)2uuz
      z&F=M)#{4e%J@UKcFE!22b6M?riFIfRC!=F4=+%nq&wj*lffdAVz7(RrDzdL{nXrNX
      zJl#0S1TF7A+Q4JppV9jqJ$xU+i?E1_%#&5YMcA&EnU?t|#;VlW(B_%Stm5=4Cf*RO
      Wg51Ig@G3+y!}r!IlE7rR>f%qun91P)
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@ZBNrs6vzLUb(^ad5EKO;QINI6RpZMUBakd$hBITCFK4&ijFPUMms^P6N)wHX
      zFZ=+0DC4<p?O+izUi3cooZtDMbI<+t`^QfJ&tc~=!(jFO(B7#xwzup(UvkmqLm3FW
      z8i-Rz^cwtQ$dBc2;Ptr3Lt~gfa!wrEbNs$t?;P>2%p=FJ8i>9f4EhOa7zpWfJZ>LI
      z!JUCxGGtF2FQj?1_Sg7bVs>%h3PbLt>$~z5L#Al97_^<B$8}_I%|HP<!(7ev`P*>N
      z;i4G_TBrqG$7?ylRr};nlZWoH3O;?l6x=ReMy%N?fZ>LLJgzVpO1G<oL}_Q+REi$M
      z#uyowJuTLrKMZADv5MK!v5Y%;tS~&AzFxcB8**XbF78pO;((3m0$wIjx=dGzWmrqy
      z{*w${V*6CMk}kh^p_qCoC)0myU=8aOEOBm5=bTEKqQ6v2<$@?Q!+PpDk<2-5q^B)E
      z4JnzGqB-Hwq;u7v6?J<h1Di1E9%5_#APDJsRbBNMmjCs@%Ia-lm3k;cUzR?mT8Un(
      zT2r^vc$Ic9qCa$MeTVUd4rVY*qfRsM8XC4SM=OKOl<PdM)2sjs37|@r%2rnZtMm<v
      zW6CTA2i_2+MjrbSX(_f&NGj4zlBMJ=;a0-jN|*(!G{Wt3$XHm5T;89-6;fOQ_wgXY
      zJ&dwfIi|Rh^%aXFJQ^#EaUTfhT!4FmjR;qSnW!sAdq5k(`b_w^VmUem4$o9eORM!X
      HvMT=p0yjIK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dU2_vv7=BK&Y5K81DQz{jDNXrGTS{p85E_c40W_F4C9SQ9OlC>9=`zi3XOjw!
      zqce`^jCWixIy!!g-t>YCts}*vg5G-LAMjp(h5DS`Z4wGdb)3v@_MAQEeV^xjp7-o8
      zf8M<ZU=Wvr@CocGm`kx_COevlrOdK!=k>+1WyeyPY|XF~gd)&<MSD$)Eof#TmbrXI
      z&zFO!6F6qsg_u<=#3n4etX*EvYxZpjlRK0<m|4_qt!!9kNkBEK895xdnBIJ>xIo<r
      z!!*h#1@=bMk7kk83r4BTe3l*Wofc4%)~wzLKeni7z*Yf&w0F7@&1eZ?yFlcLQB>?e
      zt3XRZFK?)jKrGt(uLv|ipj|}}^#a?{hN+J)6))@dl&m3Bq^-QRFs<2!9D9>WdEQ{5
      z_C1E~21qPXlU=QVz^=#at1Xj2t6q{i8m0MM-YPCyrf!y*G#Y)fI&&7w+=OoQ1Q8MF
      z+q|4A!srTOx4@37%g$VrZlqVJoMFycbnB)t2nd5$N+38(GPd=)#MG~%S8A@9T9E~A
      zjrOLisV2*|VHV=j8!;6JF(^<^k&_EriQIQQu-2L6(nB~B#9@k84dc90aTEj0&Hdv}
      zs<1YzEwZ<AMa|R-{AYp7dM-cDR?=q$0@2i@tXlxXDxSr$AWjH`){EyhXJ+(VE^#_B
      zF?A+e4|+aa)h1UFOrPzZ(~Jduwh?ihk{(Y8v_&80DP12&QpIVU5onNol+>0=EX)4d
      z)l>7fbyfN=UR$f`tUoh`x&}siK}8BtGASCSW%H=;7>~JxQzWT+Q<IWA)tO}X>DTha
      zR|Bu2IKAt$G=Ywa;1897OWM{8yP=@N(SPnl_xQ@{bGogYd3{PRE-nyN+*4sn#d&1u
      z053cpaP+?g6xgyJ!{golXx*gvuc&w#T>_1h))LR*vlNmx-O$trq}dSR+2Q9E;MF3J
      z5T58kJ~yC|_a=@~@bL$1>AM59uYVQWZli656Fxk}`&MoT5>SwYbivacwYwV-!ZRFk
      zD>~50a5Njbys+1}M(*tKk1V6T?_0EW4)w2Lrw_|eX0H20r<}X@#b3X#a7O^!(TZJO
      z&UTK07kSTc_B`779Kp1cyW5Rg$=!oJ*vkk$?8H7q`7dPmdMJt<OL7taiDk6Oj2%O3
      z=o2moAv!z|f4Cr;d1^lh;u1k<oXr!+C7uoQH3f)xAbcb(Q_BME$AFi5$Qc9meXBUI
      zilMIw!!2nY-vE{qNp+s<y+}efwYUE_60PI93IEAuoR&DlLq8+%5stXeKOxZ3xrXC@
      za_JdXzDN8*%g7x(Hyj8BLdq&eXF`FNv$yelC~*I}UxYoTYcA6Wc2}4laC~r;Oy8gk
      zZ&K8^`1Wm<^&Niwuj4r0#VNc;16-vb?>o3py4Wf*OyHbT0pg`tX{YRCPF4Jj6UG?E
      zX`w-SFvAtnjclCFGwmnS$^VP#4d%Z|rXP^$hh+LO5q?5!pOWckWcoRo-XP8|AH(z|
      zT2U%EftgJ)Wv_Znf2F3<+GDaQ5>k;)SJNT)nVPakF329~9<M5@gp>hCP{kEgxnI*i
      zKe&Q+Q_gkkx`N(fs;@|Mg*3n6yW6CC2Qhrdug)4qaF<kXk-(1*&BHFRilAeazB=di
      X)o%8<l#w4kMwK!uq;-*We0cS5#0OMk
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVS33y!9b^edGCykyrd6jL9yi23aHpbYJZDh+bOwfjGWF$z$c=RL<9?c9hBijN(
      z$kL?Qo2DhPgGrMVOd3cq#UqT^lC-8tTDm4}6Pl)JlO}1>H8cxt=zrdOGxJ6s$u97r
      zdGqeQ=l<tE>%GHQfA!4s0Jh3I4HOC1jz%Y%+k5)<?`sZ3Q&u8m#Z$3FbDuRDPNot;
      zJ{u?zRL2sd&9U)OcWP%W6pZv7z0(S%43r5rXNG%YiB#}t#PZ6b@IW-23PeX@f`v&d
      z5e`QBtwb^$i{27AAdoi+=C#M7$y6|!>JLUHtWpBhe?(9|J`_(_BjJ;Rs?Ixu$Ait0
      zV05(kP%06Qj<%L#fnW<aZz8s)0-HCvn{&(X-BzMK5=<tWY^lU?+)4<RI#MT6;Yjno
      zL?SrZNyS_3DWOQ%ilzjm<3r&Xr!FFvSR@>pJQxg-n6Q=1Uw&gSIc96m<>vShVOt3+
      z8q#TtJ-ZxESXNgs&Pnqrn9R7~IITFAI4W4)nKMdnEZ9sPhPDoE=Yq2Fp<rTE<=u8E
      z8MeGoY}g7p_$CFbJd!B0-7~1tcI)nY1?{z-dEOm8sCyH!xRppz>DB^!*YyiZRJ;$x
      zSa0HLY@jx^b^Qi55v^^we2RV8i1if^)R|a_Mfy~4qRM${G_e?q3^eDh&GPF*le2c4
      zi6vNSU^|VI+ruT;hijZ!*O^#`<+{Tz6Dyn@T1`}ArM}x^Vii^!xSn2~<9!BOKJ3Ll
      zRcpUsS#4*=-JQUpeOl}KRn`F$S7D8hPX|rhfExu1LSt6wSdKhyQd^kSx_%$tgiZrD
      zF-kn1KAB8e<0iV$%`h3YQeIgrYU>IMD@U)OVuDWIG!`4DRRnz|4&gB0+K3K@BNpS<
      z#o~>rOC77OzZ|r0g@UrhmE%@gHxj0=F6azLt?r5OqgLXu2EK-=CWrnY!<^sUmnEsO
      zFx_^&$IrYe!jo>)FN4t`I}l3abUH3uR#-`a!I>HmJ{-lcfskNH&JA)znXoWI_Ea2w
      zc(OY<u0dIy$6iNtV%%cJV_Ish#2D^05N3Sm<as8TIEILzGHRVnbwsRjJ54Ofh_l&r
      zvSX_cQN#^s=F8dC88dMgm{rPCF(;c5e4Ye1$N7-LaRU>15}Yv;C&0w$W9Cexl1IX+
      zF#;}N(z-zva<_?la4+eNSkY0P%J>ZEz<nm(hWlyY<iydWomf>&z;!LJZ}{*Iyvx8l
      znWJ){;%L*Ju(Vp3_%*znh8c+^lx4xjLU=qrW~XG*^y_$^f%np(ax~dPCf@H-eIj6&
      zh>&IAg93jh1`A|;&6rwp+{CJ>=EEj_10SKz!QtT<B)OKV8?0dbebmHn;kP-@O5}<|
      zIM&?DdXpmSR&c!4z{f~H4yR*`{S)EHu$53kPnkH4PmqP<TFrXsdYil~WH$7$;D{g%
      z58#ZZnTKXzbjLLke}{5wMuLprVV(YI6Q9BFYS6^vR+PFmdbi4~yJRaDt-WL1hqL&s
      zfk!jhHeX*8zo&SNxKa>_YHU1a;&FVQ#u^JIyJ88;jRD3KeQMCa6B$Xi^K_ilu7YvJ
      zQW|waZ@DL;J#oe0FFt0maCvLJOP8Q1d5nKT6jK(qeS=xwqnP7Kj7m>U6*Od%_2nIf
      zmVK6`+qNt@&>ZQ*G|uRs7figUDwkO&*&s0EOyf&xsV_6Dxs1C@T0NLD{L^lK$okBz
      z*5oE37E;Yx>ka%7>vU$z{SzbFGz<r#@d?-6416`?ZSDr1K_9+?KUNrjLM~>&(1P+3
      z{!~Z*Ot2z1>RHdar6~Tw#9!*9l1MDbJo@#F`M6=A$78<Y;V`43jCsO-5PJ4}N860<
      zZ0F+4Y3$kT)<#3`?@W9ff6td;_LrI?w1j%=R=|DFwEGYEM+4ub{cS?*jv+H@;-54T
      zlxWU1@O{DdE6)HuO#60bPgdf4_<@OU;fHjMTp^#sH?(ghO^WSbO#E1Vz@XcA69&<!
      zPE6bm33+(w%RBxbzL$f@h09szotmi5(C29+7v(YMw2>9@STbePt=j$6#DA)Gt107<
      z-Q@OJcTHGHHsIO*o`Jfnw(hn$;mx*|DPtpkZsHeOOG=V#s|~z%8EecYOGW*!iC^J$
      z20rm#Qg^bkZ-gBgg6rNOY<ec^xda?$+U?%{jWILZ+Ezo1%MdZ!Qu-8AnseN^jDoX?
      zpxacD!az@7zM-2hXXyMDRASy`s%!oN4T69Mb>rNI$zMgZYgmehLblR8E7>keC(in)
      zy6Bt^Ix7)+81ZGZR??6qg56h;EHu)4gP~)=QLFjDM4TtRV9L@ihV8Q~V*??}1^e7Q
      zntz&UofE0YAj~9oh4QF5cb1q{OXg@LkSEi8)|%&LZH5^X&fFz(#sb%FNjtN=A-m0%
      z3~XxVCS%s6Y>tDG2oD}9YbY6sF&hq7$U50z$a?0KT(9am+?ujcis>lf&>=23#5`6h
      zo2AZ>+RNN$c&urPUt9PR?P}QgNrNek+GUo}or962PZr}0ha>D5c+kCKA7Pgh4zVBS
      z(S~P|Xo~52sYdb4mXkp=&pz-Ejo3F5Y@AlJK4e@y(9_#I^T^K*gxr+NPQub>wvf`o
      z7E&lHuXCKWNzHVQf|UvTmdH{Ew43eRl?M;=Zk%|J4_RdHx!JxzqS+1M;kzXR`!cmS
      z6QO}9yX)|<#%H<gQzJ}7B0kxRGv#uCU0la_JT+O9w9hlV3Xp@Q+@Q9p48@|UU^tq*
      z$(q#n0h1R{JaZSb;}Y!j!ge|E@LqtGY>BFj+4>BrGtdQ`Z+dvmD3+%+i+q+o=T<3a
      z#OB&Sc2OZVdOf#LlQw^SnF|n`ZuQVn9!2D4In4G?ZXr87&#~2Ol7oiu@V+V^)Bb%2
      zh63IFLp^;5I{M0GkX5$Nid!iw6+Uj&I5?dKswOs4lNz&X9LPL}=uOyU4Uc;@smZui
      zqyBWe`qP`$7Ym#rGwxF%LlQLP4(5}5EbX!Jc!V3rqK8t!)I`#hqrzY?+k3itJ39_{
      z92n~E5!7S}a#)?Ys?{e)#8Tziqweq;)osah49_CKp^NQ8rE4D5kNxgUW7TJoT;5a~
      z*mN@YHqdJ;h9AQz8H*fu8fP9|bJ4{3_ZLth7wLJP<zwQDn=&p@pClw@2$yfj=a}c?
      z0%2szgl01zyNE6;nPeGcILQf9P6{(ig$8+hkatRU=bXz$hsP4J6MEOv>b)_@y=BwI
      zC7ZG|xnK)IAPq%f9`JT&XBQ&XJ>GlkwI>@;#%ea`vlULVp~JJ45)M~!m>rEL&-114
      zP;7#?<IcU=LZ>;mPcu!*1lIC~t(gCnq7o}%pq$SYyuvPmj~9(5=4HRn=R00_+GD)#
      zv_E;-sn^|lnQ4FWy3+pSWhFls>Q$xv$%{(+lb4MAT+S6&qlSOi^4n`D;lIE={wb{U
      zPh;c26gHnnZSK*Zdu-ri6DMprkF9*XhL6{t$Bx{Do&NgsXz@3m$8NsdJK%o`EmLSa
      zk9L2<6gvD*BcLBuJu-!x{Z+SA9pUFWZeN4}{@sfO{QCd_1^F~W_{Z4l$FYSsR;{=f
      z2k~*-gj49{Mad98fnhwz8E25dL%18C#2{Du9d&RUZs#{DhBs4=*iUcasv`U84pLIg
      zXWq6tL`XB&m2>Pw{Yxl0SD!|(>nuVI7ceU5ZoG(F8`BtXDXA{0nx97U6mE2$CewIp
      zOKElK(|CJJS#?<&?|Bg)Xfdex&T1o#4;?v+HAkMrZ%*TZf$EZ{@$o4<SoO&?K9$D9
      zX*@#tpA(#Z{q#A)s6`L@@CBEQgSHhPA*@H~AD^Q~e1ZOOj@EvX*U?YWmNXMCU^|{6
      zInSXT&!Pj*Q^Je9vb~6L&OeT?*`)M2s%1$z0i}ZO$yw(puZU6y@cWcnOu0RjJdgWs
      z=X07*rIf!MQ+OI>++iN~e1^VSq!+^udH5+u^yinsX-p5)PvN<4vi1CF64`JO^YmpS
      z?f=DY`>E;=^f5DG8b|3y7nRv*yfiS4uM9L!;cHWPIgLN}SC`OV&Z6YVIU-Y^z7>B(
      zUbfnw+i;8h={V00A_GS&@O94nYtH&6<Kh+i`nTy6-{G3?VjEAot@u7Q`~g?~h&uno
      z=4ZQuKFiM_zCmf~G=r2hkGfWH&EMc}iK3O4_1`3WB^>`2Hn<Gj%Q=d0lUhEFS31vP
      zN&N+UM`(@jbv5`e;Gc`Y7e7*K|1jtBYse(XUpZc74){6k@H3+R1>N&iy8df6x*A8a
      zi>{nj`3e4&`!40$3-~wgEckc)hl`|{pNhPcNOnBI2Zx?AeJRDZK+~Dv3KX9FuUw7)
      znq3VsQ7-dPDGRYg7GS9?!fJls$bMEM^Geis75`0aYdQNK60C&QQH|O(e)b%G*;%|t
      zSzWDfR;TelFXESn-c=;4>!1JB>p!l~sk)Nh2w4H2EGL+1ER<DP!_Uofl?O<jt9~WN
      z^fyCx#aJmtq=<Y<iIf%q;#VM2<^kfjfk@dLK-Lq;Is(~1Ae*?^1_G&_1xUH*4?<ob
      zKB;tpobWKxU;{BdKpGq%W<em!)W4;XAesnb3qdpy#I{*L%%}14K`f*xi=>L?px4u!
      zYM}izk0w)}pZ4(APs!4pSNn8CcA-LA>^+t_GqdsKlNGdw(!P?mnNxB@A<5TMa@(wu
      zSKE@Wk~MQnt}P__ASK^0tK_R~$u%rRj+5?EKFGlWQqVH+l&l>rx#PU7eT=WXQP*t?
      zbfRv7OG1%e3|s>6OC(hjX>Y>?*(A)qlMkVd#psppvuJK~@`-HLWNDAPv!wnM7ER0I
      z0q6UaG`+yNcB*-~p04sCrq2wbP1<0{AWXR(i)4tA8f3eB6x(DNZTudPG4x2-M(m`;
      z-mKYrStS?Q3ir~0Td3nA?6i|nG1Kf?*~)k7Alu{`mmqI4+MSC~CmF>(w3ND=h-{Z@
      z3oLG*x%gzk#XHywIHtLtOsZ*?YUN!l*Rk%Zk<zk@m3OAF`#r*zW|8ccJstz?wY~l{
      z#cEn=W1BF4TJ}<O+m!5ofi{{voq5x)Z@Alz`m}VMf~oW9Z0@^;wA|=1$U3df@?QS`
      z67R<X`5>0bhe_o}&>$bhwem6k!hFg`=cLcJtTEc8lZirAY?ChOrZGf%q}Nsdak`QA
      zb$h1e=7CjHa;Telwl=1v{}k3v%Mlh@rG=&U!BuIwjhrl8_@umLN`@8q)<%LH^?+<*
      zae{oB!SNY-%)?kAk6@jg<<InwpiUk|y?mCZ#E0ock72hwZUc5Yu{~M9dt{8sRRQne
      zo$8$gT*05<k4Z!=r3a5o$i9yws>B+#9J!1=(WO)p+g)U{TR|Q_()fZcvz*uxl&O8B
      zlkTSY<^pr?G%0<SmFPJSsx?_uYg`(A)a!1!hZ2^tirp)3wNc%N&%1=~<fmevPb^vn
      y9zto!W5qKg{i4T_=DT}{yse-Vt!jm(yj)Pq{RO3HB`7TA8wI7jojMfBJN^%B6GW>3
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW2+fEZv6o&uZRtCz5S`HpSq#oO%j?@Dph$4z$8c|S8)JTT1Eknu-?hc?a-WYCt
      z46nG=L@{{51NbB+zJvPjX|-r<t)`jjthHyYZ>_ce-G2J|aT7ofMh%1ntem@K4UbP;
      z8M4M)U#hHJ^gU%wO0_K2gnY6j3;vdcf`N#@&Ut&;w(_={v&LuUW!5)PCot%#oaHU#
      ztXrP)?U}sX5?3+d_@Y#{?|5!Oz;wzL(CmGX`Jasa0(Aq9>-d8LM-!Pp_ctMPPQfSH
      zQ~k*)fyl5oE29WwyNL!g34{~LsVH_LW?+{<{I6L|G^0hJBPacevlHk`B>%Ii1_-p7
      zFi<bBBjdR8=F-B9RCn~81!5U5Yv-qI<!HO)jQDd7$JkS01QpBV02@_#J_3g-WY{`H
      zfi5Mp(pi?%s;HXj0yX4h<#g8Lwm$V)N;>f`JNnoQwkCS*sTQS{h=I63s+uT9Jhfu0
      z*^+P@aR^5Y92PiJEvV8YOzcM|wc)srJ)V?*tX)7jyvDd+zfDG$b=*WsCvPf9cXnF-
      zXi+a&CQj(3Xt3n@b5dz{+Qg}{Tgk=zGwnWW;<R=fvplKF3w-BIoI{g=3j)pMqxy4>
      zY{|73D4Ui<GE-ik^p)f0`t>OoG;s-+1?nm1;k;eo-ZlU7Zs6prS8&z9Fk39A36@M;
      z!vKq7{LKIro%ELY<1*rCxpr2Xc;TeZgE++==CzGiOlzJ$SoM5vK$Q1JT4M<D18h%y
      zfSKxE$By@CeM?6OyLoS7IM_l2Loiw79$Ib10PMv+S`0-yI+#xAUFO;W`XaQt0>B(S
      zI!9;t;u>P9cWCWMcW>Ze2&*B{q3zAr-@cTIF~$O;Ecpg@@q0fq0kx}`<tMchM{$gl
      z5a|gd`AtRF&hM_yzfJxm`M1fxTQi?(tF`}=)%o|ye@Om)@*maAr>tw`_f+R+$(Q73
      z$<Niy=lS6-XjxU*^)uC}c~V_c^Q11;OyvnJQ5V>~7IQp2u!dHxt@iW=dIi=Hxwk4r
      zdr5Ae-!fnu|CE~1#{ez#Hrl`n@6YLdffhb@;bl-nQSkAS^g?V>3r-8Z9|I+HI<R@V
      gQtP<5j-fZqR?J+-72s8n$qb(BOPK^lg14@J2c3h`X8-^I
      
      literal 0
      HcmV?d00001
      
      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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
      F{{iaRqLBaq
      
      literal 0
      HcmV?d00001
      
      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
      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
      F_#ckE|CRs%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTXz~&6#h;^LYPdOOVd=-sA+2zNSiS+O;ma@rN&ZeKp@2X^Z*Ak6=qn&B+I<{
      z=%X&*{0%<nS_Ur<{s4cJ%YDuaFw!L2SqtV|_Wt&FzP-<$zyAK?PXMc^M=`>%)UXeX
      zbgpoJ%gETCaI2#2Ij%vg8OP1obtj4l!;6mFFq~E+u*^DD-po~=imDgIIK#ExcHVJ4
      zUTKOjR3=xDI1JMr;aa>|7H-FK?A^=*2KI>IT-vca9=E+RZyty-;wB%)FzUD!hD+H2
      z!@R={qH3<1>nYlAJDg#DXrHX}xh=VEIWEIgXq%YO`uJ_jw!FIx_u`?wF!a!JfEZep
      zK#4L#B<<9MhEdGxn8hWE8BdgBAiZ?xI44J!b)3hP9KEDt8Z(lSWs9AIRz<iasTISl
      z(zDD-9hwJ=5pUn>FkB6XJuyM@NZdA+SYzB&qR0hx{6$`?$&p!gT5ZP`wr6^d*>;_}
      zB_m&nXM3s3<nl&|HyWar?wO`CiL!<`l2IfmPlG(r`E^{!Ym`$@xeVaxoM%EZXhC$-
      zs!;)C7-pW~NM(68F`w6(4g+s6%r%5(ih7;O(K-~QK+~!oQ4->rM4yXa;(4`|(y)QI
      zqS%zK{qmO;;HO&0+gN9qG$n2iZPFi@-cg%`8>5Q#=uHVPO0>H=?%`dA^WMHNss0{w
      zn>Pg2-}U%_L+^GJg?lJmV_=q=#C<%7B25|T<>ORi9q(bAAtuQMEY|){kUXz`Nt}$L
      zWKI%1#G@!k{+0iX_%BZ#A0SHt9Ln3O1R#uQUgK@*9;PQ+?WR&@^8`-ew&1sqf~X5u
      z*i}&q993@eIzGgXpV((C=mu2}TypZvI<Hc*qEv4@U$AZ8PsQ5RQAUyB0_oY06&NsV
      z4(hO%kTVX^!<FT^fsb{3f;~d+oP-?hlV9%_>2rjjd(`r4jP8*J6FiD1l!&MNkQ+^I
      zH;m#@hq9rgf-0?BH4@D7jvn&PzU*2I7vtH1v7e1pf^w-9odfy|Y^w$_MK>b&5UfaR
      zT%k@jO208guz)BgXdI({Jpv6gvgy%yMz%b9&&q~JZ`u83ae@BlXx1d#2)*Z$zv5zY
      z`4}%GZyaMGdGi>HKhydMUZ($fiU1VIvPAy7gjgnoJ-kAzN#7q!#6~`IxJq%E8eOBv
      zBWm<2#g<H|PX&>)G#{lsE%^%;mlwNueGpGmUQZ|%S231+%YF<E%ebLpXt;?LvSzaR
      z1jt)7mr-L1xr^0d;C&LxQo!@RVIMda05iOa^#JZp2yWqW7q@;QY+sjg#i4x))H}qC
      znkrJb9YCejoN_|U7P`3eJGL0Qc>nt!hakUFkUE*m1p3l4JjPA{v=#tO_&~W~N?(Wk
      zC;I*c6i@aq4f}s{ivM2VAC`Dwxr>j6CH|Hq{_YfAKE-E>{^!UBaJSSPm<)9J4POi^
      P@<WKxWdB4prJMK%pNSSL
      
      literal 0
      HcmV?d00001
      
      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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
      P6`yRKxBY|yDU<&L2`3M*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM?Q+vr5Ixs+B3l)ZFQ6&35CYV8LR9)i8dC}h1YFWM#KAO$)|G9=h$@mtmeUS1
      zeW!K?9HtCB01wsaxw4YTvOAsW4@=hGJ-cVm?%sEQ|MeEYRWubO1SXqKM_(yzF5l9N
      zu2-r(GwZ&Bl)#MZHFbBl86LJ=&o^qesrOupyDeM6sKCiS{D$Z5Sq;+@NLntRC)Ogz
      zrOkps!fG(-<F#kTo}t@@)6~npXE{wCjb67L%fBITDZAF6ob(E@NV$qYYQ=4sDv~&%
      z;XRBoX*O5MKwv_Hg0zCEIKSJbZ8i;`ph=vPAWfzF`x>V4fxxk9+w`lA&`026oX4RE
      z2XP9yih{EOWASn__z33}oMX^F1vJdy0#ztdg^58CB>9UPGEk*<mSe7Wc59}$C6$)|
      zw{F-K!?WafXiWJ}tv2h7>T}RYikfu28U-IBC<Qm1YS5;IYy@5MYO5Wm?pv;7*o8rk
      zxr)l-7BuMiL|~+4cx`f<%?|O5L@fs0pN?4i^N>x`^f`h8<Jnxqtp`k1t%j^Jn;SYh
      zY2WRQk-!wu@op3pd?j!?ZeH$KHiuP30beV)-q*(7m}|I!Zv@h$wqhG?GMMZO9~cWN
      zZec~iGJAHEA~@1;8`lIB;@6E`j@=ooYPgGgwCx#o$1Lp#T#icD%Uc*ygNj9bD`)n;
      z)M2p3TqTX~*pMYEwj`ZP8aD7iwz<_Z9S+=;VW@#Xp(?Cu5oH--D~9}6icw@m!<Vx3
      z^p3?bvYvB9)H}b`&6b?2wt^oh<&juhPd)cnIn;6;pJ@0IKgo5ZY>{=GrS$#x!r(rt
      z_!%_?hQPW1aMe%;HBmgSyCEldI=<}(b@HZB%WlW3o2!;w!{dh+<$|n$8_hN2Zv+WU
      z$%}{A>y+GKzDH^2EyL$Aem$p8lJEKaK91+-Ut&D}8k5^|`4<@9$H^{E=TmQRW;-bj
      zFYsacC1(Gme*%~IJVi7(P${f3`d!{x_b`VdF4KCx7Z)ER%P(d?4tZvk|K`Xj5%8D~
      zdHf#o(0e>y;mZG_vOy}FEUt{R*unxHMyTkARCH3g8c@+m<w8K^Q+yUu(fO7%M`X!=
      z@K3K+sT=Sl2q@K~Ll{utb9_OI)H4d6jf0J$U=C#nz8^FVn0bxG?R*zYUEF+yJNqb3
      ztaY(2`E;?_#lv{uUm}5LLRKj}!Wg-KPgW@=*bewz3yK9Y4F8zF>QOUQ9sxdE(}{%3
      M92RNvG=ZIe08R_AegFUf
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      aU}Rth+RVVf2sE6PfeplBU<Z;+3>*Ltzas|#
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk)*HRlX6b4`^6oXCgExk7k={+%v*Kh%5z~nX~c7?sLk#?kA2l8mS$OGh|GWjJO
      z=G^I1Kfm<n@2}sCv30gpVpljDZ>ypjH1{`Z)ty9XQ)2y`O`M3XsHQ@-tIeYm8ReV}
      zcBP87;f!x{HX3MUbD{FDA}wTJBVdfP{zjrR*XEeLB}FWa6VB+XH$&I#Lo?Xicg+FL
      z1}+y5a#jwt`5{c4sJ0s};f%V9L}rUr<cU_Ua|p|8>fAMlF@9*Jsh>qM`#)Yr=e81A
      zW^`r}k^75PI2+oPZEVu@9>Kv4BeIU$W(?TSXEJse_se}*Sll~vg0nGy&x?Xu!e4I^
      z5s}_76>aObnBr_WNQJe5u(|7)MikBCV=KL8prBKzQ$KkYn;a@zWSKU(j4#ue<E#{l
      zDA&f9I?vfGnO2KqBdzV_w17yqn?BJ+Y}XQ|Ept3hR~p-^V2QJe-#biX8vB!%@$9==
      z9Y~~<CO^ed>Z4h~^>$?5(J|hm79lYo1A6y#nndSl9O&p&;x|<4s`xHVZ@hdl-a5}D
      z0^LJ77B#dw2A=?}%1+`h{0%q7&Ih_Mkqna*lgs|kt-9}qPk>_ZGw-lPHoyj<5_E+P
      z!NbI5xI#Pvj}ni;<HQs2B=HnHO*{k763@Z�&5u@e;I5yaHb(z6M_>z5(APz6IYV
      zcJ<yRz6akYegHotegr=zegZ!wUWKc~Yw$YpGx$023-~4REBH0>8~82pJNP~E2lykg
      sd#_K#F0aqTF0U`dF0UG~%WH$!<rNUSdN+w(y>;R>{2I<e|92Yy0M1pv-~a#s
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*ZEw<06vzK}6p&iCx#@IM=jNU$D2?$Y#>i%tk&$8C!V7&tE^vdFloo3{!?)5z
      zBk_eFzz=0Sx2<I(GI`Pa)N_94f6hJk*Y6)c0X&73#T>(W*9okH`kVcVb;A4N)zGOp
      z!`EDTN3PuwUKSd|VvnD5%jQnks<(Qg?Prl;*mS+F<@UR=_rUdh-m-;t>U)Cs)si87
      z&h3Eat=eB>3c&laO+hB&l^HV6r6c_p45_@?V9*ZSj?j_94Ffso3=1{sh?Ah-65d(F
      zU#hunZa26m)jmGd{P*%B!$$4u)F|L?eg<7;BL{|C2C}%uU?_=F#S9ZmH!0Z;!`_$_
      z6*DPE)fohSRFksV(6NepS*(%Ae=Bk%?1AtM+{XhdMii$yTbvovqRWv=8pC#CeT8(o
      zo#rP``gEE3sT%5mKbh>7fo<$iu-N%{Hs?gr^nOt-l5xX`3_FR#L=KlEk&LE498eBx
      zd2_<!jLucVmDLp$4LpWPRgbLoQ#bJ1;!vudUj5fQDXAxdO=^@BeQElb>KA%wYE9is
      z<8|6S3;)n*;X8~kbTEf`8g-h1m(Z|}1zH(ord$_slV$~2iUEgYscdxxC=|b8c}$t7
      z;6Rlq$K+89Nh^_cOj40<lPo1~1$Sa*C1&Od#S!jaLPo;glFPdbxLktEVI2=c+(wwa
      z$}zze3tzE3!lSXm2qy{Gn}XZLUWm)XjMbIGJ)n(H_)PeyVi`IGK3u4lmQ?FWXjS?H
      D5gHrE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95Ix&C2{EQEEfgr_Qrgnkfmn#gAVgYJQLq|Bsyxt#Xp^kMMvk2tyC{DJ
      z5{QTgK7fxx%-SZsNKyS@dv`r^E;F-#{{H$6;2G>9<`~xdUS#h!KJ3)(13nb5$6nnV
      zzvnV&isLuF+Y><%8pGm%pK#mdUf*tX2BI4lQJ`c$=-d9Vp8|~hAmkla*v&8ye5jTT
      z`4jF&^xZsi{znrDAIdHfUEr)S6kbSAhA$a%WwXVg?fN~TBZq4SO3)b=9O;RJXxI_K
      zVM4Iv_+9R{cp%k2J=DTa@-xGRbE!Sz+%9L)X0}RTxM84(D-4E`DHU(*F5f1{Jq0y&
      znG|(elYMU#g-Ky*W=qE%+%002!Me06suRK;iNL@b?omw=s<+vwvRI=oNhOcEltn&u
      zsr@C8A$7GpQ$!;QFB;x3u!$`qOOu^!$ypqzSt<B2CBxP%6X!IMj&?X6k%`r^c_HJF
      z&ei1ARG%sap1`EKC((M-kAkk)lWMxxW?Y)8x-VF#fyvR6r-!Mzp^K;1G|BY7O1tOr
      zA3C*u!uUo9bC{>MPG8^^H0)r3RtANs)J0sUuL4*~0rn_T#p(*cs{Fw6Dat&N1N(&X
      zjxwAWX(fqHkrdNSlBMLW;8u!RPcchYWrEx1AQNF9Ddp%4Txkkd!hJl5;U32BmB%Su
      z#rlrr2_Bs)OyDHJ4Q9YS#&!%>hMB6X#(O}U!1_w?NyQ3u3LKxQmNu={(>SX74_`bX
      A=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*-EPxB5QWb+PC|@nOADnGN@?j&oIotZWe_4Qs#35TM2m03CRqhnjvX1hC~pN4
      zh=>awfQLfN+Qw-j()7ai?s(>#Gqbb5|NQ&~;3<qe<`~wyZfG1d-tE_nW8M=McS7-&
      z+kV}1I>OIGVOTul=iG3(+cg@kGtmz6$T4hse%J7N-6Xj0`2lY^!Z-<h!FzJakUf_;
      zhAs1-^Q(c&dv?3#4#v|}8FJ5U*A8AVWQw}Qpd5G|p(2AD8VXPu7EId}$6>D}{L>h}
      zWO{AxSlqYeJ~1l6NBa}QhIwgWly9dvTa|7Vz;H`L9@iK&DbSV~qpGq^s<gwfHv+|t
      zOnY(U_QN1<NL9B~+{L{-));nYwWBVazVJ2N$2xT)PE)^Hn%PCsx!6(|!*=R?iEuiZ
      z=4amy=p2hvB{afdveZW!wy{IWlHk`@3r;0X9ThnpIWI~`r<nRrlrW}<R5XJ@pGsIO
      z>Jt&CWS6s6mFH8|@EAJvJoZ*kywGopLt9Ss>VGasMcxf;(vW26$<o8*tk4CMYnoen
      zU#H!(=nq*-KcIaj!yM-6t<o2G2?hIDpp`~$GIS9)=_>(C3E+@CrLQUhrSf+yk0|q$
      z95^D%8;UR^(n{=|kYuLYBumO$!JULzOPGaHd5G09WGw7Gg;*DGg%nr718hXNhf(#i
      z#uQgBeZ%q)TO)-ru1UBLQ*gW3i*QBgiMmR(2b3X7UkD#}EJs$Ld!buO+N~#%SLH7z
      Cw;1OD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*+iuf95QhJ4oP-$DBNS+Xo?APCScuCYL|Rl4HEIwkzTqNul2zEsv4gRT@>U>$
      zh`8VZcqqiIZPKP9sxNHsj%U94XLk1YpP#<~JcXIZ48wZQ4b6kb+x@C}Z1=fkJ0X8#
      z3%|)fzV@6h_w!H~=FjYN+jMNVXExeryc6V+W7zQgp6T^_N&LX`1H0{Tvl;l@?#m@Z
      z_FNJfw%*tOdA}OEc3*U=?r<_?g(3G`xFUGLkkJi`K{@ccTtx=AG!&pR%+-a<kHdbO
      z`zJAfvF>$j$FhAP_lZ#nK8Q~YoAv98qm;XP3T1{>0K;t!dE8*oq(~vNMx|w2RBo4H
      zPal^UH+0;PnmY)CxGNRIQgI)vd8{xP*R@2R0(S=7*YE%jsUdNuTDnXr3ZnxOQXIo}
      z8u4^Ot<Sy)=s@+U8X946wcITY+t{IGN$^p+;1mVOG0AyRMuwefHB3k%8LePApc+<m
      z<4VK{+2znx<RO(bJcdDCkG<8V7y2E3DCAtP{{Oa=<wd~;4NHceEImxl3|%<6rWvO9
      zP1-$+{*bl!1KL+I%wU$@Dt&>MP_U0VT504aL+7zTUkO-D0Egr$eN_o4mcC=@f-+0V
      zff`YcD54&bmSgXPBs1M1SyJ9I?k3D?!YmX^Bix%n#=_oFh;<297~=|fgtZ8_9#t=E
      z9OFvGZ&(^(^Fm>aYZ2~r3T_vB5l)AZs4GW%KpCO<h4695a%2U1m%62lyY(dUD*pvW
      Cs~-md
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2_vv7=BK($&$F1w$j#qq===MFB(9kLTZtwR3f3ySSA#_h?`^yi<>>2&88!_
      z4qoWLka5PF-iTCYbl?Yg>0j`FsL$CfNk5f~-LvOC&w1YGecpHWkH3F=3E(_#=@<|=
      z+jKkm;%A>PU(2tVE!%CbTi%vkxAM!j+u*ip`<7?=(yQ97O-F|&kda<9FI&xgQMS8x
      z^3@Ps3c)2}m(8}NBPKB2PqA*^w^pUMVtZEIFPe_i78r76wIw~PTI*(HXsUcLMVO%=
      zaI6oU{^CE8VpBkrcw@2d*skp_2}Dxqihx#>4T>8Um^d<%j<*C(9z15rR#CP#rE9r<
      z9HSW5F(!~ahzup)eza*BcpDP}x+`lBSvrZ27OwDx1coqWU>Zq**kUMtC3RT6dju8!
      zhc{h`gV_z}I3{qsY`fN4r&Y7O+h)zN1V+lTZaNjyv(-Kfo;)<~tB#~A2}E#Oi5*nr
      zXAH!VpvnFNo6XFZ`~8275o3cB=B`=L8&=!*<f8<ca|X_0p3GJ0)dWUU>3+4r2=hhf
      z&f$WN^8&-Ymb^MN@IEdwLBnp>rRxTrm`Lp>30hQ8a}sl{ul=ekkWQ8QsNUFz4wUV-
      ze?vMA%PXYsDF;3@@CJ-Hu3%9I3!3c-Ir^%BkCbWAEz{|+4>7YPJ1z$$W>y{Y3(UQi
      z01iCm3Y$Y8Xy=p)oZeO9eg(UPui}P|PYxaWu+lDAN#*dwdu<Xpb+ouJ0bO609j|V!
      z+G@@wL&m-Tm-&b0mWfleFv2Iw_oNzB{;x*VOmQ7h&T@@1`X&a6I?mk{XnYg(JBIE?
      zUSQ-YPCUotFPQn6(E+@}_aNDTt6Y~bj0I*<Cm_Q#-VJ$H8BwuB<~e3F*&WR7zkidN
      zZc)oxaDS|e#(PNd7Vja=hyEke)3!j2;8{HLE3$m@eab{|{SHgn2<VJ1Fr*Xs0GAk1
      z1^!7JqFgsJ&#=H}?&T9)4^|auEG4IYM09E?mwbVt9bArF(tbiR_Y9XuHHFIDCF-8`
      z<qj4utUuPosFwWUpTD&29K8zg+vM)rG*5#8izYWQjt4Zy#tgo~892zHg(BB7Bn@bz
      z0zc4wv8%0T!v-zx*0MpvKPK}y4Zp@%ga*xGnO_<!D`F+APa+n0kyYgcbv?m^+U$|O
      vgX`LM_9<rg5$Q`F3(|i>(#P!dx9sM3O!NJ&4rP1NvMAwGCKb3DlwAH75(KFt
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7D+fEZv6kVsxbZ8mmA_a>mVpUo$9T8(95Db!#G-*mgv0h$uI!x-|bVi3M@mGBD
      z3wSXaNi;F~>PH#ZIn!8+F~&4=F8i|9-fN$J|MBSyfEBD7NC{Z2pkr<C?%m(AYIfTT
      zT6H%%_8eE<-0iUaG7Q`xmIphs<1jLy35*`v$F}9$LCe~09=c9!AT2PVtex2NtzNu9
      z=7^}i8;60wO7%bK)&&MP9N!DPcvE1YSZWAp+u?zmg}|_hbI1y$H<Uj^)2Impg90N}
      zFK}y}cGHda?WXSvj8{X)_8WHO$-6RUF@Ry>#m~JX0mD&EGIYLJJ=@^=pO#X^zy*QX
      zFlt$0yTzW55(WFE%U}xACN5$|Amts%LVDo!IHEY~SzN{y1G9a~CO#8$xJnVb#qEaz
      zx!=p{B9tnU=bDM@l1F>t1!U3!=c(OKn2d|6N?%hz&_7rGM+*!Wj7>S5pr}x9_f^OC
      zDOq17UFgyi2E7)@*27NZxI3N{f95Z*sVt@7TjXf@>HP9?ete%A*9_#8hj_D);tC9X
      zhIo7m^F2o1@tVRI*Q|1`alegmWtASjjBfHOcR{<paEkM1)9#UJOQo4f5GEA=7;>2G
      z0=y+$ngHd+ub8SWaaq%rKOmpixO~K=J9<ukgLF<mp|v2b1zJy3DYC$6mA%LQ>g?tL
      zdu(vv4>{RKig`0Z?=q7IH!!cNDWk|!ikT(;7O2t?3RvVxBT5cSSXQc)sZgTSUG7pV
      eeeoMauY|OMd#30nlYn1zI&LaD{ykO6w|)XDao6Gi
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      DOKqcO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~6#i~0bXtl)c_{@!6d9^?pejDfLupW}O)+9f2w^cyZ_1_9JIyd9ByQcg
      za*Hchu1yRilGG)MKT14z+CTy|y6C;<oco=}_s!|A-#=;qX0RASfML8St43z!?b0(N
      zZ<d8Du5x!zSX_C0&9p_q^c**YAVb%Vxn~--DT~I+)(*EkhPF8&g}1=aqED_d1T#*7
      zN6><B6s>4u=*$Vp^VRYeci)*?HfM<C9Lu!VOjjts5e$0UVwYhe_g}-L8CtDvZk1?y
      zeIw_%MZ+l<jf}HfXW);Xamp1(a_ObjV3Fm0i&s41$lVZP45_9`#6IIlkMDbLOsixT
      zxsjE7N&=;YhF*rSBx_z)Z99T)^edJF41Id;T$)wSr8?AA!!?Eum5{W#EPC7X(;>te
      z1}<Wks=_XCSHmz7Q}~St2GOsM(I{?UjC3|D6)p=5Lwa`dQnN;Zw1!&*-E7P^h}$ZA
      zf?=xJe1EN?`c6iXz#Rt7bLxB;diBeV(_u`(2qDQZ(o|7?_8Fp>#tcJ15Q*5O-Zc6>
      zQg<^c3jXw}?t>_1RZ6fVWI@9thW5>*vV8=_l~fF4|K0!wCg_)?Jy><BuEn1Ve--mo
      z;B3W{>a&nuw9EAO00Lyu4$~PT&!C&p-I_Rp_RW8e(5aq*6x!*G)&X>PkQc@kbW)Kn
      zvV-)}?Uy;Fk^zc*PMo0Q7~Si!o+I@AOw<k<?p5Ws%zZ^Q5l@|9RAG)WxE>oi!u9we
      zMq)P)F@6Z$Pm8C%<8D(_>H_M1Q`EzA)Cb1miQ1RbkLToOeIkoA{!=2egdSutjAe}B
      t1$4Y5D~mi{p@i4)ki#d698g4w(O;*D$9O{C2;L)&Ig){4p8Nn7{s2JT8k7J4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GZF3W46g>}3o0o3Odl9P;pp+y9A_cW=C_-bQg^(hx#TFH}$wRu3?1s&zw)i^Z
      z5AZY2IDT-H8TErY&`!ZoKKl#&HR^eGw@C;Aai+7`=jGme?m73~?Vo=?_#MD8d>+Im
      zfqezDnoLh!9y^oF>LtT0OiO#o$Vq>7Q7;D(5ZH1<U(%CB-7F-h7H-I#BhXgT%L3ao
      z?n%`#ipd#UN*bgDI!+p<;hf^7SbSC>khbzNf;Mz&2qF|jm%!F1?84ZLtwC%NNInCU
      zOk1V0WlGagFS@NemaSnMwhM$S#9x$-WeOb2{7)aL2sG?e_<96(#~RYA$4SL!!w`5u
      zLpwSIHfIb|W~-$IY0u~jMJcc?W99VXtZo}>?QaI0MWZ5c;8}<W++!}VV3>J<kyysE
      z3rVX~NT#idr;L)Mo_(r*!Bx+bg$M;A<I6c&b_~m`1hG%xcuQ9dnYK(vE<2a>+)ce8
      zlV^&y)blH2R@KZ0aX?`3ISnVxCB10m6}|}hIjEr@hXguv^sgIc<$_!h==<-K;`7Qp
      zt|5T|)=ojP%!Z%CtTh#?;ErfGiX;nC-m2<Fs<6{nwxN_$@%a#r5%$cYjGD|LYE+_z
      z8Ld`i^txq7b<=Vdr5&~0!jB+|<El(fG&!4gY*I=AR1U9ccpXCmT^kh4>cuJxgoRb(
      z^fB28VML%;LGa>47xhXlv_hrap42dkJxs@zUY!Kg3A?!N^(oat8_%ymPyKQu1Oc(E
      zD!94R-NqPKl9I=^n{q`p%7n^~>md8kHYADN8jCmd%(Qe|yNrg5I4=-V_g1*8jHi^q
      zmjwD-Y4K$IATA5+XhoZ%WJbf=V9}G3lC?xGo~O=Sjo#5PiSwP9$GbsXrB?NcM4%ep
      z!}|noIMSUl<n6HxC;k0YCqBSJ5IVW5JJ>kYkOSK}V6x4a#D<5)>I>pJ$7tP@bD(cr
      zvDFEQMGb~>5MnR5C8VO=R4IqlTS<cni!!iSvTg_tTsD!0TN-RombP-0frnZ!{Up)8
      zfQ{e?T@gU&4dQMj$3d@7OKgOO(;9xa09F)MY8|K;w<!+cO)7YwXt<4!II5<ts-2T(
      z4K+QxIY7KYcvR7WeU!J2-zr8|1D9`V`tk$9XPB#T1o#GQPpl!5cnEFoS9Gso$9?Sj
      zh1;93o6m07MVeQ~`IR_}7rCc-X6VIBTnW64J-oe_?;ZS&V!!MDYgz`lH=Gz)Mc*Ct
      zs^3`l$l+BSzJt9F5uMxi${Gg$NO0%XJLqzEhTWY3Zl&rV_7gKO!{;mk&7%ib8Ri;d
      z)Nl}a3{h$YEa3(8fiW~r;SCq;FiztP!F4l<F{BBN{ewe%DkesGvWdUp#69dH$~S-F
      z!ppzIH8)-NJ>I37`!M-X?u8mwPjPjw+12t>Tq%6Y6?@8eHR!H^kV3VJ3qLo3`l3OM
      zP)!WZe&7DIpOxlkm3@S_ntgoPfJUn&run=HH7@BzNvmqb6ZQewYv;~{5_CGTiYx1w
      z6Ug4h!6WOqCh!Q7e<Ok2fpruFJi)^}yCJ}5QQ)h8{&GR_sC=cabH86W?f8cO%zR6&
      zzN60H^BZ&*C%7KP4>*S(UCbvu3^mLXHLWLntv6GD2UVhtvICazp_>DzozKsh&rihX
      pXSo4M#FhFU@!W4<C{l|SsWHSp^!+vI^>MTEzqQosQ&-i`{slOkMpXa+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}vB56g@W^-MFqznp(fD3VDbMM*C0-7D0o85EV?w`(!gDQ#P|OyPH>E+8<O<
      z3qJS*{87?7X)s0z_^>;3&fGcY&bd#|503y2u;n5{*zf4HQoXu9Ij&rap3<GVG<_Aw
      zanvwE$4cs?bl@UODEt(CQ3-|aR2p3)MVsLEMOcbVi?Cc9X<nJuS*n9XMOuW1gy|nj
      ztK^8VR-Rb3-6UkIQCrS{FzaIq(;ghm`Ec=p;FN7azNWOiOnWV98ln|SLa`PFB5Vqy
      zEFO~Cq^n}W*H>omdnWhlm{fcCj71j<gvAMu^6|-b<<+Cq1oBMTR#wM6Uc%e6sS*5h
      zt);1kB90~ZmOs@&7{wg@g-p6p+r>IzZ{#+nHDN41Hn2&UiW6ZH!b17HHkwd9F)V(#
      z-NZfz>hSQXP_(J?F2kRT9P=~0`_9-h-p=kF|Ng@NGpNa1Zg9dLxIuxj&vz{Q5k+3f
      wrZ80b#;ZNc?cBn<$NXE3U+nn%l}2u;;b4hxWw4Buf%1P9u>LCJEY|SlALmw|oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+jA3D9R5yo*)(jqq)<pfF1AWiECE!+go15JB{nvtmta7t+wC@_q`PsmsV#Uz
      zQBl-U$0ui;(HUoa6&@1C%;=jB{!xzK*@ULCWgH)JPR=>M`}h5R``6#U{SM$HzEaR3
      za6E5TVxyU<k>S{cwp=jt(}ulL(2e%fjIEjFf?+xeyaGFyv=uE@)XaP=Grwf$j(~SE
      zGc_Y1QUYD0mRWW*)5&VZis1n~cLe-r3ueJNC*X-hvlJh-7K|V~=u**%pumoF!89f+
      z%kzdkqs<o$fl%7gwPIGY3-a8&^g7oIWq}jv{}*+FQRNNig0ZMoiq5#P#t0(Ot0MvI
      z5!lAOjb_#X>=p3M&WsJ72_lUB3VPepopx-NNW}p>ArPR+ku}F)Ks}Lkt0oPh1nnz0
      zB(S&jk}@5`Hnn2Xwk<n=BLcfzUxzDZxl$@wwqq;=aS(m7D*Xa`wlbSl@U%d`Yqem-
      zW?QOBQ@0ivUvgD9N>0HtnG2DyiBC@?wMB$9HNXH{#mw0AV--`Ex>_-aD7xe_sNy(c
      z0!rC%CK;rxUMfoElLGr&%I*9~u97Uz3Pc_!u+Ay+#W7Z$AWlhlCvaM3{{mBtq%Aui
      zvzGI*QLEgr-lSzyB@xX^m|m2CbjwH+D$Zhvk?NLdy2RYS!HCQ924fRfN2G2P=T*Ff
      zVS;SAOrCSBxv~qgz`$cvqnj%k#3+&qE=ZoO_fsk}rD6;(6NQpym&xhAt?=ByWojf8
      zu!r_NLU*iCG%^*ZRB^~ELt75wBKj1h1-c)JOp=o8uj81I)yoKko4!bqjRxG3jpLGv
      zDakNjNoof%ju{oRvJ-uJ(JC7XF0;*AxwK>3c3Q`=|6~wZ<fQ*A0tX@+5^Lj?8$uSZ
      zt2l~aC$8a51#|6fwpMnGWfdCcIWY{|W-By`&TKa1%VI6GHCUtdMk<Bkg24t`BomTT
      zQ<<sw;UIMM$)%uT2{$;Av{K11sXn+7lqNeiL)^5PkR}+J35x^3u^J8qc1Jd=P<9+|
      zsjy|C6}QkuGYAJO3M!8Pbf@Tg!>V{2tDJ_e@U)}pH&|Vr%-PpMb7TI|Y$rK<Q^hU#
      z8N`L;*zjz6W-c|6nn?|(=Ndy<m4jv2&R3Q>zy;Jra;kL<ZDuq3TdHs?ST<|uv25ZH
      zek`6Ojma5Gl=}axV>uN#j6Jl=j|ENluEY9orc+Fm_+#=-?AuGl_u#Zuv2{agau97z
      z%Hy(4m~@Ksz#c7X<+4%65ikaR1ep|k@N-vq>Og?Eg7gh?-Nu_3cfs8^P=k8k71_>J
      zDgZ;+!BuStU?+C*)QJ$fc_WoaT^B%iXm_ZmihaLcuH#@Xbhw5m|8SKQ`g@9ArOEBC
      zaE3RRXk^+o-QgNMib%ttxD7AgfS-1G?hN&I{0v|3(6Na+qPZH5#k~g};+Z;5<mx!Z
      zi|1;1KJE*9!@kh&D$Z09m;b9c7x#z#4>59i@K5yDaWOYo!z*#6j`3Vrso~XlARGw$
      ztC$Q2s+g`Ln+tnuc&&=7zo0+veSkOW&~qW9hJ4st#q}zRRg}W=p^EYYtTBrF47dv`
      zSR>aP>0Ln&1J{^<&J-3{pG8V6@wSLwSQucFoJIxbsg-08q^LWMo16`|VBj4}zK=3K
      z;q6`Ce2#B%58vZ!{D^PdQY{iP7KW03?(*Nec#lzd@dGvejG_zQ;RD`z=u^jSe8{%}
      zWbhI0kOJos$H#p2)9YUP`ILmXMr`k5o{-$aA$&%!UfQ`w>mB$4Uvif;$x3$!{R3dp
      BRRI71
      
      literal 0
      HcmV?d00001
      
      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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
      VRI-yPz&y&5jGgRhKD2Cp^nU`-r=9=+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`&X>Zd&5Pj1oapSrNrDw|3izX@5oaIPBY9du2A_BCE1Oi2FVudYET)CSfKEY3d
      z0<8oRKY$;Fn6;f#Z6s$s<2P^K9Q*g*uRj28;*o{{!c?u%H1ow*xlOZJk+yu|I#t`#
      z5Fw23S%;SCSdE%l+}*P)QbUZe;CeOFt=Gb!eb<xLu49|q(zC6)dL?MG>?$(CY@rvv
      z^J(ACyHz_wh#p!_lfjfD3}q{hXbAb3Fqll02oVL+Fh*GE2$URLVgG^o!V`5N#i8Be
      zi{l*5YnUKR_9e_e6OF2YNlbAX`Jp9jx?h-&%jg)zjDcCq5n|a;(p>U%aH<psVcvj-
      zA;MTeH0<Zi`mXKm1Z|ioxE0GOS)Nd~@6<7f%ZlIN8s&R&K$t0XD(o5ocPNs~1u2#d
      z#Gw;LlptX_<*;?pGWWbnSnU_sp32k4ep3dc$)rj;QdrZFCM@=L=`_57Yq(C(Rf<;E
      zcsM+*s8Fng<-WF@#-avYR)ZrXlBvFc*7O(@D}VHaWK{CZT8d5CTg+YD)38BUI-{8G
      z00Z~2NEr6Bw91LOJ|!<%pRjf%-4v`+-*%f`#oiKX%g4K>wXW_8Un<^TexevaLTv?K
      zG*YAEGsf0147Nwu+F+dejsC{y>m!VxVEQ`}-`F#N3(D_*&vRss@mXB-zbH0dosi=;
      zpTz!X`UICcp*m9lMMUt@4^wak;R+V`R0NCsuS9GyQekyPke>gEr4CCV;0?39<pSRM
      zOw$26Wa2oi@S{Xr#cIg88FI$cYsX0TPzJ&T_hGM#F5ae#V;!bXcf;?blDO{MK;#IC
      zuWSe1iLn>(y2^`$EQDK7eNnM(DQoE;SUSd?PIZBl&n)H38B!kLp`SYAC(Zr`2PY9}
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`$%TB^T6g@+c)>@?E0}-DI3q&KZ(2b8oi9`~VL<#!=CQwtSNlW=J6Vb$lAK<sR
      z&>t|~AuQCSi<vuj?m6eqx%2-0`Uaqa9UU=-Y+r_@YV-EuywvnNwNQ44jwiXBujq&~
      z*!O(IOD>oFQfuG~-eX7%2TqVL6SWb+J!UXQB+<I6-x2=Ak<Rdp;jj=%h%D^38RAv1
      zCuYH5S(rgWo#rj*NSM%ITQIP|pcND})o`S^2_HJbZ}E;R7}5=|%iT8j9hFZn<H`a<
      zE~;(5LKZYXlqOcOrX$OciSTM+MYT8YywLB8nltJ7XOahMg!K5jl)|sNJO~8!PF>2b
      z>jjSNUyI?u>si=VI!Pge&=<F%lvF~QylV7YG22$w0XwaXs~cJd)GSOool>rFsp8%k
      zbH)8JlEoLK9w)#w?dF6)VC@5olv_k3IF_(Xktq{XsUwQ2W)z>0d`9M<hV}_v`}(C}
      ZOf@v*h!w*+HYl1?6(EgG%HuT1tsf8^fwuqv
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g|`Jc5PYdQVUqcFRa>6ijeq%AxZ;+DG)3n!3Sl#9oyA9OSW77fKSGl
      zXpH^^o=K=CK1d>O{v%(EcP34&A)C$anY(lD*SYuCpYJ~a+(pGegdx)sy-IcS$<o8h
      zrr%iU2`6wpVRy1~2BHksOZ&jCbZpV8Y`1-GHyL6<+wEp&$+Z^ZyTG6yP>6koY#1lI
      z@A*NU`v=@7`iP`=$#NaeFjiAp1rI89&w0fIV#Myd!VMM~wsK)17s4)vbDasD-(iSW
      zy(W)?A!$NKOrFL}7&s?S7fi&FNI=85i4jaNXgTSWths`3^j<f(zil@<RClW8Id*5q
      z_FZWYenzES43|TTo1^YDzbE3jf@=n@GE9f)I@E`W>$pKRke_fx>v^DtLwVR*0ylBX
      zK$c-LB#w#OxWf>ag7bR7X-?z0Gr~NTO(yDI&v*EWtNQzILuTZV7|b;xxL@tq-7cs6
      z$z|bmye`$W&V#nsG*QM3?Ssn2uoybMq2?BbYEc_9*n<2HW@#WAt*>TTa#Dbml5<i>
      zQ=*#)y(2J*cb-m5WJd|pg<>D0g;F0@q1;ER@D1rB#h#>ZLU~c~`Wsv%TY8fZGPp!Y
      z!^6ZN-fzk-<FyLMuy$)d6&zzKy4S~4@$?X};^_(f9Hlp<eZ}-4rq>l|;~%$4+_L1B
      zPftpcZS98K9#L}!CC^aG43!}fDAEJWQ*+CN%Xp-43wv<LcEA-zAX~d9WzgTk(BC0V
      zIHkWwQU8FF{t@%~Cp;ir)j#7g;TGA?2w&)5hGb|BWYCbKcoF1LAWV=TQY0Xys)^Fp
      GmHq;;GzC8Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+jA3D9R5zaZD`m+uRx(dfGX)02nDYM(Oyyv)}|&U6}-f4IJ67tZrt4f`p)Q#
      z<KXo{XLxXYsN<7$Xsa@#qmSzNpik=mqJC$0ZBu9BLvqfZ^ZmZ_yL`XjkAHphEr1c+
      zj3Xv+c)_lx$Mc1;(RALOpRC&z-*RlTI#_dDzbM@s(v3qC=)7j$Fw<4jUP#X_y3)KN
      zu+y#Ewq-Ar{oue85IKQ1udGZ3;vTK7iWJyA6&TynPlt>}r*d8T8G(c^-6hL5eMvrX
      znb!WI<qe(`=$~rh7_HjQTDIk%6WE_>ipmX@1hjGIifo5Kw+<a03ACVB#}4!fw4{bg
      z>Sni&INB22_3PM+eFE*C^e0TY<k%!gT~@IDI2gwPf}8lHBZ)%-9bOREq*?JD_cejR
      z2JbAJp<XpB(o2WYN2ttp9Ki!|3~nh!GqjEeag^aySOH%)CR1Q<DmT<5(JIg(9ox_z
      z$FRUY$6ZJ}OAArm$3`d0`I&5CbT*ftj^jAv+$?s{cUj`Gx>da*-EBxSs*AQcUzJJU
      zNjf!YC;dg4RHc?~GK@cI`pE>2VML|+lt5o9bSn@~$d?%^Da1oM9>yaqs97TuB`~lN
      zLjyQ^Jfkcg)A2aY2yFA6kV&976@}ekLac$2mh<D#+qpZZ<4Lp$v{Gx1tL{d1jA5L`
      zR!SN->mFr#tkF-3+_|aZ%rvrZp2m?C=n3*<Iq6(Jd#fUAs&&{GQ<g2K>r3;}omC91
      z*OXH+t0mL5)OU2KDXDK2NwW^5=3Aq#ipg8dXqeEg4-?cfuljQT)c@31q1d-d@XzTe
      zs8-N?t8!gQWL8H4+m+l)I_6Zu_RP+W=4Q*qY@w7bl(U6GzEGYSy;#huR=T9)GG3r-
      zURBDPYL*LOv%I9^Wo+jJhz3L)uaIhU1_WKQk+3-C|IK7j!G;S4b6``7In_dLy~bg&
      zf#C?**n0_jzMx|fmU2o-Qs7+E5z#Q=GEMqM&5-s=)$wH6c5Wt6g&oHd^S>EOApEeS
      zbvP=Wt$_h0dX<B%YP~L1u3a71)McXR)ZL1lv;tXdsrLy*Dxl|VTe{;_)AJ<dk=UHW
      zI7Ffr&hFOW*T#RS;T5dx?O<gAfzD1f?)a^cJFt^>o!tG(Z*@{KhF8&LtfR*mSj8?w
      zTf-h>_#Os~d)W0g4#%*H)G|h<@58usAIC0rpIFC9b-9MqYj|`WnKN3y)_ryrPxNcY
      z*YMO_zxLe<U+KXhj$#5aO!A#m^aA*hZ{DVNZ_txBiFk{Mw~@jfw(~pe%R9usi)Zj2
      z)%ZTn)53tJyu{PUaaFquj50=><HSud2NUSRvzR7MAdkK%z7L2I#GhEk5n~NA%NUrW
      z*Ts*}yP`H-_i*v{S9pFITJ-ti$AAC6LcSK}F@bWh_P|6h4&pE>Q5**EfV;f?gu73f
      z;bnB=Gsf~ckzWw`C5QN3dbb|<uZLc2_|GmQlO%`o*9>ZrA)E5GL-}R!FSUlND?A8O
      zm*5I~&jkL^K-m#d3MD3*tD@$KR772dwu)j%bX`TL>H!k$<clF`caYbgSdX81`U}l}
      wYas86$Tie9$WN0)v9vOsum0D&KS=jy13_y<5Q9gP7<|;ZD)n<F;RdvS0J1yrGynhq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~E|N6g_vhP_~Y+ECQn72d>)fD%EF<iLR1t(g1M{55Ab$GJ#5M*J(@qTPBK$
      z5B>muioU9k#yb@eUHj0^+&gE^Idf({{rK<^z+Lz@Y6N#LDg55nlZOxdEj`>Qk}!|b
      zM8@rGUuw0xo$7p`^r6x=EW&CPdUS##Oy>Jh*1khn3M%0147wL3QGTDW;#Q*iogISJ
      zOLtWRgfjvYm~>FbSpgeUgqa{p)MoK=sPt1gj1{33q@j#=q>fB|+_a1zf>)(8c2u@E
      z@!Xt<Kz(+QN8tgX?ixGJ<JX}YnT#?U=LvH!<e~Iqne6!|E5_{wfs0rs*cqo6h3suH
      zD4~hU{a=X=((pj#>kcmAijB*J`Tqh0u40t~lc5o2MYnT`={H9kH*8#Im5Rs(Zo(xr
      zj2$(|)rjTXF`j4Uh_+U*3YD?c>==Lp7^H;`)kak2{nwjWGyVyppCn56Vwq)%b8r6p
      zlK4EFCci;yHqDjtti~T-Dfb&Zd&H||U3lGhaJ=sFdx$qBYMTE}iT=VnKVydLg|ZfC
      zVwNl3g%;+@-Z{+kxWGM&nHNj$O=dP~E$=Osj<6E&=ydBxxb{b3x>Wzle!em1_fsmZ
      cW0fg((SgUTHFTM+hFiGJqr)9S8*8wB0{eQ(RsaA1
      
      literal 0
      HcmV?d00001
      
      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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
      IwamHxKYoDzvj6}9
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OHUI~7(KV0J}85<MZkh$d8qC17!-VhB!JPN#S$<qV9^X^QU}WnnHj3=Tp5@8
      zKU`>HW8%WCi9gDC?sVjxu;{(t{qFZT=R3Fa=kL#70B&P0frvnN&ED4+%c~3X`if)d
      z^X27{^43lQia>hDXc&6kuxmP9X4MynJE4&;oy_BD&2$@v?YBZ_1QK4$A&@UQZcTS~
      zYi!~A##Y^wv8JnsDGcu1bFE#&J*XTeMfV&-pyzC#mGV3jqHoLtfym~9K>N07RDG*q
      z_~y2N*dR>*wdIXW3Ur-HCq3rIXD!?E=LGD+IrpbrXP9j+Ttw$=1&O)1E}$$r+h!Zc
      zOGO%)6r#AIB8wae6^iTfre8%2acNysp`t@t*Ht8tl-8h%6xunjl4YAO_jk8U_mv!|
      zK(^#mjrzLbTJjt^6*&lj-cyJ|m8D3P|B5P=V4}$*1(Zr4LCQ1zP$+@n!bRj;EXGx|
      zAxSmZJyknaV5m^MsDeO;<vnR>Y6hBeHXD-tw2DjU6u3l4VL(fCrLZB#8}odg*>TO;
      zcdO=8OAaPUwiEIx3#d!BZMutf!}Clpfmwmf$!E+^D#0g=LAHzXf095(>OqUcLXtZq
      zGp-q_M6gpO?u3O-Af1-V@*LwYi!S;v)B1o&P$jR8Hqov9K(98|M4vX^#8oY)G%=v%
      zVol_~F*brBu6;rLGV45J$0b&O&T21^LkYvYpAI_YF@hUB0eReHMkKIq5s^fnM}b(C
      zz$y}LjA%5BhL~0vE#tG=cZ~f;QbHS(%fJzeY>?d`_qTkF@5t;R=-$)HJnWvu1Upf1
      z=$H)a>%p0mVEuuwY}6taryF=5lu-ja7M2nGEZsRLdFsol<d5ej-^IN!c`jrY*ZP~7
      nI%1OwP=DeaJ|ANdKV%WdeQL<>3LXR<AL0@B6g>hncnt9mKkEMm
      
      literal 0
      HcmV?d00001
      
      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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
      L2v6|$9jN~T90JGi
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9Gy$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
      HcmV?d00001
      
      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
      zcmb7EYfoB15Iu{?Rf<}vZ(GFHwt$se`}joD#J40wj2II?nH9FUmb*(Xi%EY#e^8TF
      zlbW>O`=gr9eV`OWnugqkVdtEgIWu#A{r>&~z$)Hah%hYFRomVuAFQw0`<mOEpA>gw
      zwdgc=xvDjUYaz;T|D0cNyTMi6E}x!@s<9AbSki9Y)=oWyH??c{X+zjWb)i3s5YJ$>
      zgnPl2VaS&{i2cyFLRZ4=irNs4P=*_+Re>S)PAX~MGpuI*51Kt<h;Hbbh+_aF2@GSD
      zVIY$|8U|I9fQ2E3v656`ukD-)_s~n6Az9K@-Z<i}^z87@s5z4@hQ-o9l%jlxPHt+o
      zPNXjb!{<!tR=$dHrK%ThstJ_ulCIe{<RiG#*XKaAnp(9w0vEFV$jWVV%VuGgVZNh(
      z5O#fS^Q64Lb+C3=Ebm#EXPEBIbiFMbHQ~lFhY{~cC9r@rb%r;aLe&^nx~mI@gEHzv
      zQy9WyhS{`irIj{muF`+aO5TgG<VASeLmbN1pV&h_PauOVb;0PspJ5_%7gC602Fu<|
      zykMB@PQMd{h9~9-bEc`j<egfm&x2Btva|vHq%V5+VIOG&&VpTHxE<r3#`iXrAzsmK
      zw<@-!H<(j*_A>8Dj71vf0eS}M8TY1|HakMUhY_dq9$DLDN9a4AyFwzj{0(DYe4lYT
      zM+pmTA&MPB>>^3lRN##Vm>`RAm?Tz4pD9d-oF51grMuKMW{$5hcYKA1xvv<z#G~Zm
      xC7xX3*%fj>$s<Bp0Wrb>6`wyBAaD3nSV7*uPr=4ZKYEJZPOtpBUi%zx{s5uII?4b5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n-x2R$D6|C<-b#1nD|mWBfQ{0+>bPV1$wBx24-|W|wZAmv+Q|rHRJH
      z5B>mul=0lQY|sSUhu)XdbDr}&=bZcJ@2}qgUcgo{$FSKQg!X>zcyHG}@*TV4i!(=b
      zj``=1p9XJzufv53g<-Mhj2zo@23@<>>hX4<BFB*TMc4NG-2`Fii@<4l+^z?LJAHX%
      z$c`K@q<yD)?tGNE)wvjPk;++S$h~q0Zt$8RV-^|=%D&&>Ix@IrK!eV(P<03VFzmOu
      zIEiyCRsFW(H5}o}dty|APwpwhR`vf9DXC@7$gj}Qz;MTaiW>}ur0UAtk;rV5gm*~n
      z6fG|9q%`ja!!U^JQ!X@gtm1)+HHP&m%TyD%H{`;=Lp-8d#PA2R!Oy6OdgMx0vR3Ck
      zx`s8mH-j%jYU!F;NCljbUAC(%g*`E_g*=gty>rbo;RY0DUdg@|2I=aU1`4n!XA)eS
      zEqKD~`eBpvmGh&l4BL~Sl=@4w81%XyiZ-vfa=cel-HM(}Nxl~3X-+cqW$9ybT<G1&
      zGYv7VH|h2=`a@RhCyZ}on8Q4+I_<z76uiL#oeXl5p^Lapy98KD04n4ueRT<76@OrP
      ziZV~hf%k-RKoN%#(n{=|AjwR3iI$|df_n+(Zi1;<#WC(*f{clMppcIj;Is*xhIMR2
      zaE~MPQe!E)1IieiU+Er8%#jsnUXZ6u<Za_=no807j^#0Srs`rUE>Y=SL8XXiQR?SW
      G($YWn86;!?
      
      literal 0
      HcmV?d00001
      
      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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
      bZE$Gv+IsOfyprAb${Qz72>d;J@*n>Popb@7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@ZEw<06vzK}6p&i?sB_N8xy?~fnnituF+q}LGfapqEWTnFxM7{8CAG!uTWO+^
      z_`(n1hcceq)-s4wc+vaRbAIQ4&OP_%ukSwq?7~Q6j$xx~`$oC?_EpKKIovp~2i!6{
      zHODgB=lhP;5pEg^!{QkqaKqwu*QmD6MB7UvMb3`fHJn~I0`wi%<1I@Vb<Y*NCzlLK
      z0{S%XR{j{*BD1=12f{UK)l!YO-}9~*k6vU*y)bRld&!W<>J0{^>~w^R1g>ewKxJ5{
      zn6`N1_gca|3ZpGooHn-_+%@GsI#j$<^8>?X<-fU7%xBq|h3btA7_Mtb;|hZ&HJegI
      zkax04wdgSHjJRRB<7yq)ecua9R@56RZsB$s>kQ9lEZDxV`oh(42Y0DfVbtU4qRyN$
      z-K!~OGi=4a|456jviZ?9J?ew(rHZP)H(7{H4O`fzV3G5?>6~Lp)3%!Iu9OqRXV{M2
      zCo&onNTQnFd7m;`&*~E%M|3WGwJ0w$ui-Itx{=UYtvkNk7JH_A9BY4hZw2|(ut6P_
      zpf5=ulZ{1hR<5b<X}n6ir@<dO&3%LRnGWVKPoqjRP=bOo7HFlBnRH#m63r5@90B&o
      zQrfB#kjsC?%7`*g!GYIAsgTEEKw1s0Ba)1CgJem0tGF34OA#}Z%MY<Oh75%@$mRF~
      zE)(N2xQF`z?m>{f%rVC0b6>DB#KV!o5O+d2ehKaob^=@$dZexp>;Ywn+$X|^6-&`6
      PaC)IyN?ffcfmPu*KT9~k
      
      literal 0
      HcmV?d00001
      
      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
      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
      GQ$GT=9+D>j
      
      literal 0
      HcmV?d00001
      
      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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
      Mzi4FjE5!8w1%9#u{Qv*}
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Jd0-UP8UKCB!X(Q;LO4SJgB&KCgax!H#DgS2jgW%`!GN+3n;}^UJL~L*qo-C|
      zRIJw8L+oK~wN!g)B}r*iu(r~wwTIRow)U>It@dv1X@75Kc6K(0wSOe@=FNNWyMEvG
      z_Obtb;UNIa<$#6)!Hk|{f3&Hsqp=~{ZW&PyV#{M^X$T2s<vz99JJ<Io<C%n&H2MUZ
      zZCRQ2wg$n>jk!f?Ki@cCFDQ!l+qRj^qy_WFSYsJY?sqN?C*m=0wO~<TadR?b+Ho_L
      zv21m4b3C_4+hxQ#eNb?EV8hyj$%dp_>I@F9ch``_#B&qLMCN=!VO8}OL8!^<Hp3{y
      zR2`EsMZ+{f#b`l%Cc`Mh)M8Lv9U6)>%qHF3`tkS-V;1Hp3KfDmRRKN&ny#<jq7I&?
      zqZnZgrwJ-^2ahdJ81pelZ8}}YB<LCz38v>Z<;+loCA3wCYpXD-5YbRAn4iD4Gh-yX
      z4ZFMD>Py5EW?DxLYO^-B3_*ES_4bXH-4nI;_V`fY+Jp6BEW}bJU{vs?kphy6g2Kk#
      z#y%t3XC!-~of$ik?5X$9YPal+v9r(YH0^z+9p&m4BWd)QcKtZ?UR8z5bxgoS4QCR$
      zIhu}b2-<bFZP{V0z*O~brH-?4j-Xh<qRHq_n}XV^0IQpOZEL^ct-gB9S*8BfI_hz*
      zpiCW-F#2M)xyvNx<0e60;%@8DB>JK)Myh@i&c_-J7YHUh%w<35Xh0)znd;97&Iz*6
      zwsW@`&jj`7%>+5}ri!puFvYX9r$l9(^*UaU3;8M2YsPZ=6)di*ehp?Q!bNmX?(-b4
      z2ph?No^utUm1=Bn_Eu<U7eupQ8ExQpBff_gjy5Ov8GQ*Cb9Ca8jfte$+P`<FX>V3q
      zr&2dsaiedGVJFnPHyO(GCaBw4<KRG0U>*=Ge-+8bq|X2mN|?4ys0WOlha4^`wH$-Q
      zGFB|@09g>J@=3WNbPNl5pjXl6QXO5`rtGpqM+}!!x4RO_Zg&&aHtuQp4%^VyvWR=?
      zHSDA_XLao{(0I|hrp>X|w#~71mo#^7E<!hjOZNBmg|Q308hR*5&O2PvIuh8;ke#ty
      zW*JThkK8I>1Ot7_+xIeU1d-}}SCP!Z6&g~b(u&8j4jU5{*eydX&FJXIKECfUiGhOc
      zjY>5KbR5JR2-&!mOws|AzAc-QR#a_o97o*_;Wz1cGv2~jZ#i~iARPe{YEeZRBbjl<
      zX85`iZ_{v<U_rhXQ(j<-x(l24rYQH-xQ42XCAx{g87d@>p`e9$hmJ$IRxmqmn?}aW
      z#e~@YM5dR!RiL3Dqc-RKF%L=_t|#F0*=uZA8*6XqXlT)JLte0R4bj-2=<7D^BHSpL
      zc5zbqPi4lcWHL<bBTJQG90uWV7&q&9H*TTEj8w`@lC!#?RXrt*27-4!)pr=ZVO*yU
      zyACTg+)8>mxz-&}shbr8<HIh?c8^mPL%uK`8FFDBNTgN0Fw(uVcqdSHD*v7lP@YeO
      z4qCX=pbX_B&i9qY6<W8M&e+yLg|m<8xC3_zCRA<PR=q{J=f~B|6oTJ2d&r4t2l6`E
      z%H{_ra<|)7%Cs{~m&{c;nSD>ta1T+H^V`5t(GKT$+hF|?#@+aoa;Z-Xnnos2uNLz%
      zz-uB~%=130<6hh+n7TKXQYqalgUG6{I_InljdZV*e(O~-yI;pKwX0;r9>w9Hjv=L(
      zqLgjMRI*c($8~%G!?ae9nQ<jz?(6Odq`;}!Ad<~>P7-`j$3r+lb2H;L^s$&M^FZgX
      zQr5T|59|1%B3hiX(ixxXmvnp?k8)G5k#4p|Sct{lHVt24b{kvq&21e4JEX%ng~ycg
      z9~UeMDnGC&Xe_T(`<jj?@pY9l$N;MVA8*-g7u=ptGInNcSsQU<D7Q${f$qjPb$m++
      zG?xOobx?<SML%I0I3=y&X{Lv<g&KEL7*F9bW!mrP_%6Oj^e5c4f;F$o^LQtY;QUz~
      zKge?4)R$nbKPKnTjm!DCo5J{^%lS`q{1iV^oV#oP7w6-h7~q^aH|6`Tibjs}j&v?s
      z*RXr&Fw@5HZowosLO3ogSQyAN0juRfhd6c<0s$dd8AMx?o9E2#nB^p{^rE;QdIKhJ
      z>tFy2`|*yLc!@bNKbERk*VewSqhWJ%TdN9bzt{0={H7RxL`K7(Si9vNsKVf1bo>>6
      z^C}SndV@;ED%Dm8q*5(KHVSL_dtQ$cl$fVGPPxkp<7NC)`PRP#7X+mZwmu^$aJSPi
      z<nc(Sn}q)m0(gb>aaP>_*VS|pDPUx$Uojmf(!H^`wKruY-3GNPS9pzk@Gi^aB&5p(
      zb=J(>2{HdzlL@GhZ2&`1K)CTO%+(1ML`njyi4c{{2nH2nlDn+@9(QbgbH`+_;&21F
      z%2&<4o4X}NL-HWonXC@oxppT-)N4}8)H&8Cr*YDxj0q)|=M)p{)50=UrqjwYgRE9H
      zGjPi+Dc59nwh+iqG`h@@3W~;z;Y8frc|PDrO=&VuP@QFLEc3V$c)fm+u!COEYE^po
      z1C`laZgy9)2&r_Hqe>uI!0Ja%XXGX0qf)qE<4B1tQW7qv#e>z6m+3nRPnj!c=rUQD
      ztU{TCDK;<C%({XNPCv)fMkrhvL1jNj@9J|-WKXO7Jb}FSaC42n`F~2zT~pF#CYCa6
      zW3S2Th0!Zp&#}JiGc(Z!=P^z_;nYBKrY_55xhAj6YZF{y!w@-J$5DKOHsq1?CztvB
      z<H@~>uq4kyHz1v-F?VKUz;&sgr>IkqkP<?mD|x!jKC_2qt17w!r)3edMUzG{k_AYx
      zc4qFAwYsd6^~A2%P2{3%{=L*F7p)J=g>sRmEE%{N8nsN94Z@yyA|dTW&hv7iB*+Tg
      zE*I5C9pVRkrQudx+JsHC=5eg<UwjngpGn!7O#BWo3lTSeN7aM94uiaG*5zX1z1Jkw
      zZhG^ARk?G=-kQgCFbAkJFVUq-wo&zImyYVw{0k80DkE!?aSzWf$dhW4Tq-*>xh&9>
      zjW{58kD*IU*hLpp`|QabkgRwu7aQ4I0A77%Oj>%UbZZh9EX{H>F2%f^x<rJyWZBuQ
      zxbD%V*C~^;omP=BgqP(yFwdfuMZ&T-q<S(HhmtA|G010~HF#C_DuD?vf~RQvZF--{
      z6jC<YIT(oOg_S;fMo8rWf&MnnU*eh~ua4mNaHrMJi`exEbu*)TeaTW4xUhf)W+CsB
      zLzt?r-#Ajay2yF*M$>unl9EqVit@6R|4X>2l55nyk4A=28W~1e*AS);U<QY?x;R%p
      zfVmvcSL4b7EZ}%ymy|7*&*KbE)eT_TQO2KPtl-A8T54+s@w%<GCnCqNs%$a;FFTI&
      z3bECBZ&L4rSQnUT=G2V9`v$%*2)wuOeXjd{A2~h)t8pIMP=HP3`Fte-uTw(U%uyFA
      zu!AcST(O7Wl335Xjg3g5mDe3Rkj53r;3{5q+>Cv=1N+gz-IcEN=;Rsd#8O<0Eu^%b
      zdfAFgNJ-RX5&tV~Eu?NkTz6HZW(eEwRbnlp#Fw?yp2F;57+p1|P*fH_3XQYo5cZs?
      zJ%;4NSa<|wYQ(=ZzwAGXbF;5}zHtz5EnG2(w{Ja)MJ>a)u4@>FyUN}<gqyhdU4wYf
      z5Z>EbS38LJZLK@uk|twt4E=tZc`F%wzo(S-1OOQ%1g_?nLlo#*Oy|A80$h*9d{*<e
      z;7r_rM%;*ta1#Z;k-KlkcHBZ0y@!`R@5LK&tD~H=NI{+DDo2fu;5MqFlsi9w50c_`
      zD)2-2Fh^-B>~?&F>J%#1gBR8~@4ytLsZimdgR{Ht<EgF*r+Dfw#+?M^T@F>9Cvb;H
      zHKY=qt9~{iuKITm<L<6VP3;gq*&3-khR+P(b9I9lAdyvke*QQfC;$g1`S-{Xln}J1
      zy6T4T)d4)gsc*PbPpPSI58xS2eczq>p_=;90Dhc3HOJ{n@(0|<oBsPT4Fmj1VGxVh
      zk5}P1qHMwI@c?!DAi;Km5IPBiZF2&TI1)u1(Cqg0xEnvmFB~a%<Cl1zx|qa!$Y0?F
      zY9pjN1<w4I)IwbIq66}09a{sNl=Xk7yyA&Ru}&$K`1!*i{@hx33c7k<9Xg6)>Lj^3
      zG>n(KBIO~f=^v{ns4e9aj^p12@P<-YfZBU~Q$(C7@i>9=1Vw!k<?LJM;b|<vGpJ?f
      zx(d%?EnCetJm&~?A>l=ae4#eUMA69bL~M{EDW(YJSSew`q>%khp}KOUK(!pZqg9wG
      zlSKVkAgXA~i7X|K$oKGzg5R29nc7t`B-2{SH_a?FPs-fYq4Llv%paB#$5*Dwd^$_T
      zpj6UXDsCB)g(u2G6}87@Ng*#`vS6F<aQr+Y;0u^ZHCIs4%c$rTe6GYx0m!fMrCK9Z
      zQtg;(4YN!Qxh%%nQY&?oXeJ`ERHBqBq^dQpQt@aDzo>{>ssJi0BDIAN%2|W5G6y9W
      z^nay3{>B|IJ9OPRRO-_$m2+g3L$_2`6D$P|je3tpr$=M5L*v{C!|rGTuc$j-u;mI6
      znCugnEaww>%F`x$1Vk>7H7)^}N7bu9cc|uJX*hz4nv>E%)JaqApuGMR><FJNN3olq
      zHyuHopEoH`F5`6PDRg?ntxkYc5nr|o2F17y=crH444bo~sNOn^7d;auym&WF_6*A2
      zh!^=J)mnE##r~DJ443<1u8~0qM2|+~=tRscDdmrLW&EXWI%;GFkvE$^@|0tf%;5$9
      zTo^JRmYjww`MgFd@eWxSu=gQfEr;X^u}Mv*lfRk4u7JP7ZD;z<aC8m-ZkK-QUSuDY
      IQy}~Q3u*TpOaK4?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Y20HfRYw{In&0W@0UYBnu<~n@)AF#2N2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O>Yx15Pj36*^(|Tw9t?An^KzeYbn<tq)>rCq)kLnk>C(H8!Oq6+L7x7IPr71
      z^uh_kfgiw+Ld<TGRuodSTH7<8dGkDe{`u?s4*>hP?_h+mR#R>7pz!i>&MRu+v6ZWe
      zmX#*w+n^(?HV)#1d2MQ*KB@IX^V%29LZu;n>mWhc9Bdc0v7*wHC22a+c$cvViHCs-
      z>?1-fojE4N4|G)~5yQ9(2V;cEe4yk}`=lbxs}P7V6%{)cCJ61mGj8j_DPcYTU;0_b
      zY^!%lzgK0^I~rj>ogc!uSjc7b4bc%^Q>dC(vL;ZqZ01c8)41*67Ge3%k|irtRhVi~
      zHv>PAr!HnNOK^<VmOIL=OK0AmR~vMiV?SocF^>fYDMD&E8yAaMA|!nyg_ULIM`)z~
      zrg&cB(iL#Rp-`eGO?C*4%oV8-#}yZ=SR+i>dPJa)N7zVTl{+Xqj&*D}xXWT2e$0Nb
      zi+iC8#zaqj(m|RqeQ_U8KKQa_1Fcv|En%dxgvG1)hn=ej&1zYRlSoV#SpB;t5Thka
      zx@~;<GzcX(_m5|=7bap2tX%#_`3a5i%$nu#8e1OE#PjIZS0ukg+b)lZ$oT-*dF}QB
      zFo8+72sdz($1wR5;`{+C+dK3PQ(er(akSgTGNFq*gwII4j-AENB7j+>u*ua!_?d{w
      sGhRPu?+Yy85KAaT<+gf|{c;SB47MVK6>MWCLYTlV`@$3LG1>^c-_05d>;M1&
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g{^sU8pUERu?HMAcAd4-1v+!X^SL~RY)rvd1|KHVOi47*4bU<ulNgm
      z_JNRS;>W8$O1(>)5S4^^*qO64=bm%V%+Ft+zXEuQnt>Ey*;BFA+HW@-)<GaFMmvFi
      zFLb{x-^MbG3}gtEQ}Iq%1ED;t9jnM6$`@y@97TSh2y>y-z8E-Chl~$*w+XaID6|3<
      zMnXl77{qew_hb;}kH-RCEsv#^%9VsQJJ6mL484h!QJ^Ey8%S%vcPiazcQ_hs5sDM0
      zue`1s^qEIZLiU-j{OCDhvHDMyF?p-z5Hc-3pF<j@JZ4cQq^mV&2826#<WVrNKv=!e
      zLqb^0BZpfCmIw=f6Pk_f?m?s7csY&xgz}a36?rz|E@VH43YHTCD=b{KuTt$qnwz?G
      zTC{y7U&X_o)UT5W2qimkIbXpkGoJj+L??d8p6wg%k7Fx~?lqB{*M~*Ob%I#Ca>q}!
      z&Ho<6lf*SvIf*nsqcnFkg)Ae3Q3}(%;&^yXNv@YOal=K%bBq)-Qao?eFEC%vp5ylB
      z511b?Ti^T+^Bi|SqVNTkqtd+#JoxsBPo`K4tdiw#2N~>P28UeB!4lqJ9Y=V`JLb45
      T*6@fC*XNxL)+9V;ltT3nMWDVR
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg7zK5T;9hO`tKpan|7Zl$;>w+11l2_RQiTM@_=Iqu51a%^Nfk@#0|
      zDG~?7nIDCiwIdZo4$Vs5-5Jk3GyCrT`u+U}fHq7O3SrxiCRXqC?NQe{i(QK?`@EZ`
      zfgg=Ul%2(4;C)t6CTv^<ekk1b_)~b~rb0!PV8)4W#bci-N#>41F%ZdAB-T8dM%cWf
      z$+BI~6I_(j3N)dfiX?Eup-9poj^5jS0v!{UdU2FyZj=q(a3U&v5IKlYeGx=K_LA`2
      zaIW1-4(XUfLb(^8iy9hOQ?W{DEr!r>8|#G1R5nE@8K$k_E}?DrokK>ot|iQ2yR~0K
      z2~8c#xW|$jwsYZ5T`P1W-#QrujW?HXiB5czrkD^3uJlgW4_l6O*lLc@tY*3V@X
      z*`7Je*~cIy>^T3*Klj!<toW3$zo?vq1H)W2sRqIm9XohR(0ox`FJX;I|4Bfo4dO}S
      ziPwQVXmf7&Et!T#j4eSy1uE~FxB*${CO;VkI)B7Uukc)F&oM_Sye{w7SNHZVajS9X
      z8#cb?vG=8)NkAVOUSSDu@PMuLA_JS)VoSz6%xe-qh{rST0k6dWwB1W=|3u>p?-fX5
      SHTR$7B)y24kqFQ7DB}++8}uar
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg7zzD#i2U`n9@3bYiQR*IW)YY<YK0CHuu6=`!tj=M5jIX3ts68{P=
      zMdE-s^P>=BJ5oX9(5&R$o$<^wv+wS&-`{@#=%7`DLfG(v)a)I<JJ>f*LdRswIzJ2K
      zr&I(Yj!!~gx}R$(6IQPR-xqFc{Lw#fVo^ht&<Z2Z496Z*qQn{bVj!Z4h|F0um9Tb2
      z%gXM%E?1MBR-g%uSVYqCha!q)7@S#s0v!?-dSMVJPLK>8KNS@|NH&O2eJKN(ydu0X
      z>}$7@L%OXYq1+44MIAbpYq(8l&xg=(2P=fiBx{OLGFq03dxVbFxAz#;zLqe1o%T*0
      zB{VfG;yz1iSoVc8aZKL{Jo9*TA>5?<w`-6@GVt>Lmuwk`qjWqH(P^eWLAOJf^>bK7
      zwx`Z=@<GOgP5WQ@XWn|36`v4x=9QDMYqaJ~s)O)U!zP{)R8JJwOIT*oe-aStgD{O;
      z@kV9`ZO-hzou%OkV@ps_L5+7!+(1_7CO;Vk8h^w}FY(-9&ml)Cye@7v^zH3S+|uuU
      z!|K;O_Ce-n63~Z=*I2+?JY;L7$iNyNv6aO<&TA4si1jIVmsjF{>eeMTenS7kdj%P>
      Sn){D(l2*h_NrdNll<^1N-}LhU
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKZEMp|6n;+M5^J~BTBn;jr}L#<p>ZO<tRi%+lZ>#9Rr^(L<0amaCX%E9|CN53
      z;0N)uKT13|Eld#yYaqGzJbBJ@UVr}j_8q_$ng()&rWZ`C-oepM*E$S^#g;w(=qpzx
      zT{lswNK_ach75c%P#~<F(%(&CP2Ul*G*BW~VdPoi*ki3I5hGs?WR%Lt`oE@0SUc6!
      zDRf;|#<61OX#hesmXQ+vP)0Fl^VaSYXpgYa3xhZjK{6EnL>9Ry{Scw_LIo;$NqF9H
      z&Y4gq)oBh1g<kkxmQh39z-7YYd4wvsf@MN6)d>>vjiznl8sVwkceYuueU4UbZ?zwm
      zk;iHUi@45%YuL`QNQLE#z_SiU$I?wYe?o&KQh}G%vgD{h?oY-e8NJa{A=I4E<&FyO
      zE88=$kbF=vq2>HNkTZ6o!;?q}Pv&bg;aQ_OpKBR}yA|BSeS+!9=?W0)toKh-2<1UI
      ziCnp>bm{A7)YI0^xXt2u<WPjcw^dw#4tJ54D~Afd#1mNJZ<UcfX65)?+^p7HtrJ|T
      zUHyucFB$iS##ssI!^A5r;5BZtwLJB}8g8+rIqO+W;&r(*(|yDz@jr9(1RFn4`^@(o
      Uv|=g4_cNu+lrvKzJjhs$-$}U(DgXcg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg8$mrZcnG?YLK^n+5cQ-~?Y1|hWxpj1{{5y-XLn8j@6*p=->;$Oj~
      zNE{GneiUMCM=Fp5ttESR#xu{%zOz4nefthz2bP8cVa*H1cIW8L{+@jt3Y#rQeUR~)
      z2#!Nvxt}zY2+J2iC%L;fI`j8MEHzXJTVdqc;mBh`l!&1(`!bry$o`k46IL%sX}LYu
      zm2s>%CC3tKv5b`P2QrFP7`*Fs33Nc1>x4m^h#(mVe=N&<fb=0k<+%z}@`7NS&ZXMO
      z0BvhPD0Ra3vWhyEG~6IGFQ0DUCK`nDByEOJG_9VF+k_{*uCvRS)_=v=-Dy3oqKFj(
      z^SDE>%${>9Cc^eb;MqsRQ|Tt{KVAJKQh}HCz2K-o9*##t8NE%_Ce)qKWz7UD$M)1&
      zN<ONXu;KhI`OJjdtnh^J_$u-dTBdcCgenLR3~b>cLHA@nM#2(PW{yp$_QP@H%2z5q
      zTw|u=R+@qhMix;(85-|aa1CjZ>wGN=F!&`_c7eY&_8f3jf!FzFZE<`19E<f^U$Oip
      zi@lrrnFMs9<0a<s8u!?0<QZ7S8e3`1dRCKo`1hyWXS@>s)0^km{DJys-WQM(E1CZ=
      PBN=(jltg%xMVY?=Z-3>>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>QBxaL6#j0q5C}_4OG7DEiWF-S0uiBDrB;E8O-%s_rM76-O>!F+likc_QwK*!
      zNBiKYKfp(Qs*ly7RPEU5n=}3hUw!f~SihTWA*899+1$H#&-u=G&iU^7^WWbd0GPmL
      z2myhif?Z9{FRjeYCYK#E$+zXD*^w1_V^x;QMbncZXaYT(=1ntMH0?riDZ43iUI^_1
      zla5<RI;8?VUC+!GWy<!Xo0DbFaeX@iNmtrA`52B^73o@LaZS1v%dsz~&I^c(0^ReD
      zUGYrYTQiGQ*+z=$Cj<_Z3^Q+*iEP+rNec9?r}yY&JlC=dGXm}2hE*APQJ^o~DkWuc
      z*0L?{oWQYYYm?ZTfHv>sWhVrV=s19bVFb~qqX$O?g3;Jo2**gE7QX6P#pJB(np<hB
      z;)T(VzA%nsFob96-HL;b6BrWc@HV8M%8_X7$y^lFu#S@$VN5fh7l=d~tm+MziCt6C
      zPU(07QGu|+ESoH~Coo9V=GJ7SdsDheHg~2Aam8{}VBqOi%IK70GOi;DmQ|}*AG7!@
      zLMnup_DQ1N168ys9Xh&|+q90CafbE<Nk)-qsxeVN1%ZQU%a)7PQdYXFN<adK(@u`!
      zFewqf`-ht9t-x^0wl#{CU2an%p>d>Mvi)7+_h8vE1&;q;fhb6ePf9@Fue?Y!)<Sz>
      zEa0sWx^-LtecEzG$7Uw`d%K%*yW?gJE8ofHrFC4wB0Wk54+V}k<;PoTOc+x$omj?7
      z2=6ed{j%~6bX-J6m9E9L=;Uo<<7*Mu@NNiK7-tV<$;~cQ?VQJ(Xcl#>Dx9v8`JptN
      z+C3LYG-}VkZR>M;0;|ssKRqSM_jJ6E>jM2bS8{$B?&A?)d}MhWB%(0a=bj|{6ijx(
      zm1U=5ajI;k=-pALrnZ6gIV#ccT;^cbMiB8Us<wF@65agB@P_BlGWC&nCF4{%r4}ru
      zw=UL#mttI%j*(KfE#3K|S*a)ubv4XE3{l@fK5hITKnNY&cXC7p5axWK?17#hH8XhD
      z&Zh^5XmOakzv-g}niC(ri{AJ>MDC;i>OBlxN{sH{nH@ZLh3oT+w-HH<{fd}?I^r%N
      zusHU|qkrOw9gO{siMyB#PHVR@7~jTZL`$gUK}5@I`5l~oh>6TCO+>WX=?{<o`iUU}
      zc!mGdiX6Tri7it8gv35&3ZHQteU4##fiZlEDelkUE6n3-r0@+)uCLN74vqf~W^k74
      zAza66I7i$Q6y@u9gT+`t6tkG4ouK!5Kk3t41wFbHogKXS5DRzsS|`+A`}AEcfL=HA
      z0|;taRa(`p5u$e+Z*OC%8RGkv5UaZo<AhQyw4ZUg+4si=Uu`%1Rb2DKUtn%Q`i7Z7
      zuj<r#Gs2x3!cg7HN1#0nWNJ~v_<(f`aG%|+O9P`^Gu|&P7zJ>nR<;5*6c=J~dcgwz
      E14Y5SHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      UqKZ?)(ryfuE$}KK*5H@l08-`I#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVZEqA+6n<{Ibjo)6N?W0{yl9KtH&#RxSQKb2QrT`RTl)rDr`vHmusgF(XA68F
      z#&1MoVoZ#Qd?d;jLcnNCZM4KDelY$Je}($oJG1Q+D8ZQQ?45h>x#v93bIv{U$KOBy
      z3g8f~XebldowbYc{^9d|r{g1z5$B9Uf6;YK+tUyc*zdU6xRcKYMg_<9jG3GnAD+2n
      zX1u|CA*Z22U{A?xBrr&u?t<yY16Kl?H|Lth?7YB^<RxRlh!;I87aw&^bI2$p1S(Eg
      zw&lGgP#)_X6NvOXvt|_KsMfI^Q4O^M^-r9Oq6XF5A<&>hL#04%(z4A|F+XFvqY@@}
      zl1|3RjTx>b=fPsco3n_dE%^-g#1xsfB;cl4=LH{g&akubwC7rOHld+KpiV&wEl1Ic
      zJsR4mY)KJc-9U)5X0BkmI`(3pK$$fw&=~7{(z!r&*7T+wB{ESE3qkY=L<g>B%z|e*
      z_PmA;fp{s(({&#)GMA048BaO=j_sLOy(nHrr-s-j=%Xq%I=ax!z!^XL{^H~K{MCeX
      z)2rj4WT6ph%E&WYHF!m5WxdKIa!uesEX2$&m_(Rtu%zKNf!MQ&3{y2j(XPT_ysl$E
      zUW}q0M`d{&lQ{~73Nj??NVo!B$>;UWoJ%&-Bg3az(oD=22f3e+I8N#~fj3FFP$b=x
      zVGMy#TX_h|VS`qpb4&`@uj3Tn7C0LA73dUVxV4z1OehT@+W-l#m}_Pnm$g(rXRxgI
      z#<l_{>2*#?IOlXEF(gpQcHmx1%cRzq>Q!A}E>VeLyr*G=wX<<UxuN4c(mZQ<GItI$
      z(Y)#GV6aXH?_*p8)77xyptP%F0+XzNo7MYxHLe%X1-6xqqwFZ{0}^l*rtpD|52b@j
      zCU(ro6-^Bv3B0gzaR+%ZT-(SExUS<yF^y`8C!=E)>>nDnN~zFnOj9z|jv>(cEa?bV
      zQYKhG3reUG9obg6n`g;}cGnSeds8U~$@8;e>u^vIsLJp%8<stP&b;=ReW@^rl<Cep
      z3#9N=hpO6`qEF;?ji#NVn=#K=s$*{Y2pp6`@wSmUpKW}~WUJ*Tq>}G!&HS(8tWWI&
      zbzMu)yH-#$xrDl(Q2&5?W!S<08d?AeL}**fv5_;Kr+EfVXy(YYU}xa(2<_xvRpb}!
      znk;{a-Rb+B`mQR})=<br)w&Bd23oyDTj`)(fxE@fGWfBsA5lL!^qU+W;=m$$77>4h
      z!^xhtJE-VcTkZZG(e7m&5xBpC_DSDn32&?_)-7nGlQuSQIr>mqP{H>pYI2d-r?8LJ
      z*3Kg8hN0l?^8*L)c2dFP<SuBpD|i#Khx~8I{Br&`$TlGt2-zkSmyqWPx%k|WPvJC4
      z$i!bE!HASaX`52oc2ikO+c(}Tb?seSeW3JfCTH;3twvwJ26gy4!F<Z#*ZKMUECix0
      z&`qj7fHNxXZFq+Ymht^81_Ka(alVbdCqfBc#JkH#38e1eQ13EE1s-9FzvGczk!4(z
      z)5FW4Zr$Ibu4gTBcYFoYtXgB0)-wX%{_|(4EXwZ^We1KjQ|&~09BIZnfe|&P*)8PU
      z=W|era)VZ%lgCX~^cOt&CC`4v6JIma-;l{oq;LacxTUyuDGespxlZ6?WXY_Nk>+4g
      z;0`9~5-!tDvd#spXBktL_0AA$Dg7eyJ!^Ma&fM4NrHM98L?TBYrGFQ1bN4&0-c~4@
      zxkq1|%eyGwe8mNOgd0T61rb}Hh&Vr963fqZ6VFQ@Eouzs`W~a+XGgflI`|<Jxph5q
      M>w4rOeUxG0U!0L&c>n+a
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~YirYB6vzLkx5S!lwa)6MZr)8gXq@7ORfMfo$p~9nwQnVj4>2Q6^hr|iTj`q#
      zz7Svgp~RD<FhvU5K=M52<ecBR{`mRz8-Q&X3Q7ds3sbXqc(k``4kE{7=}3G?MVt&|
      z<cc`<LvIiTzWY%@g|K#N{iaY`llQ@%6AJ}3LMM`*8BIJ!$;254VkqQPNOLYyC2X7`
      zvjleCJSzJZd_p4@(szQ9kg*?yudP0T_6bY9D2x*)Oh!(SiYk|sJw&KI^+P{-MtGvz
      z|Cdir>KY?Lr5C*wbu_W6;5^~M0vrt&&>~c)S$c%BZdfWV5gu86dxv?QfA7=IcIRFl
      zWvpvh#$|$`TlTRtb<DsCJ@asUEZn5~yK0z7o?BkYitUHuAf1ebe3eav(6l3$+v#vq
      zS)M5?$vZzLwCz8qF@GJpJcTLY;X*AYJl2hcJnJCb(r_Dh2&yNF;S*LF_g6;<^<k7s
      zSG@4Ex;N(+)5&~so!MoSP=&&`b(}#K?JRFq2^zn|-CyBvgEjkXRpN8G-DquXo#0&a
      z;uoxa&TX$`dL{vVsCbSgyu?+OT7?HTu*p(pb1jcayeT(k-1~eI|5Mv1xcME;Pkb*S
      UBi3^LK~B;Nn;D64H@DJ%0rv|CqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbW0TWi!%5Xb+My(F$_yRL1uRqI`o7B{wdfvyPcu1ZR1OIP<*vhfg4$tIFy7yMTG
      zQo#rD*$*YoNfxST!8VYbGjnEsGiPS<<LB3J0M=pa&<OX#c<gld4z{<P{ls@z>Wg&Z
      z$N7QCMV!kd-cKSKeAH1TEFBxaE!FPmL$vK@LPwqOAW1_f8HG$rbAK2Kg%YWA644;6
      z91~UetsoFtCfT*b6PlSwr5_DMnsF{~+#Z2;2s7Oz&T>w3;74Oo;|r;W2=!+&micqS
      zQ_DM5It8d>4+zz6@=i3+!n}@)gpJc<Oe|oLP@Aaa2o=kA4O}KXc6;6?<J$jSq|NpA
      z!v-o?HZhAU1lw}GLx18skspW7-tbTadFOXkKTl;G7WbI*WGr^aqoGJ&t8NflUJ`IE
      zeXc0WQ)M-OFEb{4f41VpN$79~CWJ?4DKFuPWuL{d0m2;<cX5wkgraOaVV-G!m4nde
      zC*w2_FQvM)8nJ&*U|YH3CZj9RP=n69Wt@WwcAm#cgUK&(<>&a@WX%p+X}r#^HW${`
      zj&PxM=?j)V7q(ZGo=HFt23}wWuW*f}#nJ;SxXzNYxlzO<9+F#A?gp>KXU6IgZhuGX
      X6Yn)BV!hDs79_K@nUeV5Ev&3x@b3iI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pjo(*aWu?Arx9@3zQE#ftYe^5K@}}a%Hs@X>+YM?#gxL*vNJw@vq=g
      zBo2r(KMFCnBbAl|v1ISg_`Nr?Z}!*k?>_)+!Bn9T*1T|H^$tGn?pTMBusAw8i={X{
      zi~`^NtfEX<xrCe)X?y%B*cFLXQ6+3fv1dhNkNI&bMu8m2cq(J-s*XljztqV}?YOQ?
      z5}yf$D50Ln*cZW2#)%(=$9A7UdxV8v6eg(%)1e3^vck=04-u+w{LoL|5?&h498Ki(
      zt~n%>d(o+^p@F7~+XQ1?vW`1gCRC<bBZQJ++8XW=+IHXBW|7W+Y}nrFysDvuRUM1C
      zPcRMJITur51tRpUgVDKk)9&A?K^ps^m-oEn_@UgNj7Ks)%3LNioXBOj1bfEuELl#^
      z{DiRKTs8aJT)XV-l+c>rHo^<ToF85T;fao?ct+4XS&WX*WQ~6gOsEZ_N$kq^es-+p
      zwO%_J0gqU)1O*kSyj#T$WF>C$MNpvgOYG<pf9sstW0b<{Vyj+nw=Zz3arYZmzUJ5m
      zS)P@EJ~X_;0zP1kqve8ub!>2yVIJl+iAVl;ru&*#;(uD}0-Hb4_`-VynPN51@8?Q-
      Mfte{0p64jz53=6g4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=YflqF6g^W)Ys&z|0xBX;#qAbYpP&{+S{~LEYKmzDG-OJrWl7m3+bu@F_?I++
      zl4#-&@JAW%Y)jgN#t*xDXXeg1=iYnv&)=WF0X)P;5I%<MWvgbSvbp4nkrSVD@}%-5
      z2tPyQNSq3zBCN8JEgZ=MmmzQ{MNv8oW0}^ajdb>%u_>!nQI>DK^8`be?GzZI8QUov
      z_Hnt1Pb75aFA7&M`1X>7xMW(U`-)*f>yZ0@mc3*wPiQH-D8uMNKSvKDM6Jd0Ay8c$
      zL0nVOAV)U>DjMbpA<WR9F)g`OJ1$7)y(m;9WoPUIQOOI(RO{xZ-#s*|biYl<Ws9he
      zfUx$xGD8$xb|xV98|8({(%p6)DUKPYwOAWOYBgshYo(HO99c{iowRjQa}z;KGK{y{
      z+A%AP2~4Xx?=p02ssUllKnvnN!)WX7)sb+-pfmK6sK$)8&9787^(w6}XF29D&k(9g
      zH(M&vn;NU7RU>EcfRk4qF$7PgQ#EZ%&9%jqZ)_$M%oC2MSYQYfKy#mZu64*(!YA;I
      z<2hbXCl#$S4CP*ROryvpj+Y>#^qAG8Szfb>rXVF$z^+1i&9MUV6DOp$W52emJmNDc
      zb+S!H$L7*V!`pVvIgsn7vPAFYtmoCAKqN#*|4kPn%1#tTl)=0&nTozXdV0Vqua}|<
      zt^M>J)GyGd$ImgK&z>Wy&z)oFhnIbW-ou0iyrs+xS#uM8*g_Op+@xK-aUZuZLMuYT
      zZQ^5IG)f8--yrS~x6(C+@h0;(TC20gUzpg@&oFd>sZ5-LXdU<Jh<o7~j5;2xaG;LG
      z=4qmi<@k5H>VpzD;+6S<O4_0IE~c<YqCV1)KY0R&8#GOU9C4(uN+KB6JdE{!+5+ww
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-F6dI6#h<|pEjJ9{$QY%wpJ=60UFSvXj`RCfkp$t1fvu+Op=pyN-{}jCTT&h
      zbfG+gUV5o=fvzT1bol_jgm2<<pP6xzreSe0bM~CG_qV_ObN2lG@3X%ET*Q}t^f648
      zw0bm_Os%d&Q^KfKHAAc`TA?iTc%@eM!^1GLr8JaiS<y<-WNu63O+S1Lr>lA?TCJ2E
      z<62cWm0VeLqc99tgkdNpk=+zZLFf$AiMG${@#L-O4O?N|I$vbyuj)C5@x(z7#F5Up
      zE^6fmF4oCztdu-<k%o1#T^EMw>L2o*vK87EVmB{prdri3BnGy@;LFvEMM-_O!(D7G
      z6<xLVMIlzulXbIJH;JKdN!3*IT?Q@GBZ3Zq9<g_yc1Cmf%nHq69?md$V%35OpdZIM
      z#&LoY8470x!SFJN9|KZ4$#Dc+O4A%e7?#p29D@i1NP3myl(ZYFQI-{5q)lBY6^5e;
      zRTDSsm7LIT%OW$3C8~L)oKbXDemk2Ub5k`KW;&Sm=qZ^ZMax<>9;mpL8PHvEP~Udt
      zV|k)rimP2!ITH$ZCD(00yAU?@MHyd|<0wX?bdh5eV+==ZP%FEGSiqZpT%s&>wPi>0
      zIo`r$xA_cHG3yj4i!%(CglTsH!zm)w#&}+TjHpI;G*qVzKd5D9USJ-;GLFmF3dbs9
      zlu1LFNqJj>y_!u{|0=Hgag8e9hCbYQ9P6N9{0*TS)cW%Bwbe8B=A!ib0Y?Hi7y{(i
      z*|&Tj)|S2(kmR_952=F;p*PgL$mXk>DRxcjy1N}NEJkTtC1z`oyEH!X<2J)w8{JZr
      zZJrk9L4A%4KBhZRRJ8)bdgw*)ouzs{sulDdjt$(kgLZr~ghSo@d(v7AX9D;PSwB8!
      z7;OjQB#+}B6iQEBGu3id)$--Kp*HA(c|-Adcq2gN%X1V!J44iI_GM4259ynlCN4`-
      z;@E^rohVzOSfn>)ArzN>7jU1W47$PI9bGlaXs(mB?9i2*Vd_fWY)>#*xMfu3RjC~u
      z)|P%*EorJ&a>iW%I_Q5um!YG-4(oB$We6UFm`jr#j$Juuyt=UX1~jpgtvcib>1tii
      zi)*SJG$(pYka_t-!Yp0retNv{5mlOR^j8~|lgwIa%2_MTI9mJU1h7`R|Frt(8OJfQ
      zeu<>Vbnc~fI<k*o<XjUIk@HPVMkYK>OhwK%F+&HlzmP^B=A<5Z1M={oNd8LXVUw^_
      zOkfLBxR2N9biqc%X`G=iX%ix5%#y;ywa=0w#IoO#&Jv1;&d=ez!|Dp@Nd4gm(U_ME
      zB73;-ly+<u!<J=({Ok~mUCS%CEgY{5ue)do2Q3)sZ=+3;{Ki4lF=7EcBGhjP^;^p5
      z;|}DYi~Kg;ad<{)l{~!%fqd5HcOAxF*LV?2J&fm{xUt#BKlCu}lYc13_#euE%;VRQ
      zKd^jfAMZ7BL6V?nriCkxII)Md7T$NhCiigjH>6tlgf`@n$J4^6-(%%}?G|z^6zOYH
      z?zFHa^=MOm?Lli{``(f(H>5O4`t9bJrynfvBfWn@5I<AHJi#SA#TtG^3Qd{?`>5e}
      eJj646g+HwjgLW8BernXB4{(`+WTYj_{l$L;>_;5{
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh2Pmyi$E<{~#wv{ous3RJZ&hm&~Hn<Pzt^oSb5I1{OvJ
      zfvm)`ME#t^ymWp4q%5EmBLi1(erZv1s#|7GDkFn9ranE87B)r(Mh0e}RUp8~zzQUp
      G7}x+d?;xN6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95Ivilu`vx4D5VhEK%u!nES`fvX`pIR)Cf{Vf|tliR$(j0j?6lUzXAzF
      z!~-9|M<HfyD_}#T%JO<=HRsHkv*Vw?zW)I57?y?%Luuj$R=fLpzh(8fKNlnZoJ(6c
      zhn_R$zJ?sb<x_iZTaN8ctnToXkEDhIL)r5umN%Wm;F;%3d+2bhCw*>D)s`VYx1E5#
      zrA{(AQK`vLcp_XOpEB%JR%TZF47s*9<_5C3WJ1RpL$*@w>mZpXG+baPc7)51gXxg_
      zCy|WxjyJNMzU>PY$A>xjPP}K>?yNL`#F<K)Q24Ny{DAr!Gwh|ME*&^>XMv1tXjc0M
      zZsL}Pt$!R#m~hCQ8TU=xMu}RCDzwj6VWndX8R0VQrjq`vmF{aGKhEgBwkp*W;DpYV
      z@lDmvJrlbqlg=o+F!<mLNwCV9g1doCdr~n`MU864;1}lur*tJuB)4fCyg)MCPvtEe
      zPAFk8dS2j<_<>O4x|v{${(y!Wew1mxvh?QZWopdm56aO_he7K_iVl#W2QX^iVAkqi
      zQT$9%23KfZBP{TY5G_LNW1XUnC>vLCjUvL~I<YGD4cv%1TQR3zt1qybpfp1G5kX%5
      zMW-+6blkyqNVgM;R}vdxOu`qq`-$R6T!Bu3S0RfT?sG8<xrhgJqOeOT_1YH{7ufsL
      WT_oiVNqKvQlsX=Ur5}Yw8@~Z^xCbWy
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)5U60a06g|UNZLN#0x+;DkyQ@n<X?(_P#EmPP5ZTCv=o2Y0!EQ=R#wo^srHMx3
      zgFnC@WxUfiD2*$dX4<)vd(J)g^v=&;-+usj0$W3dp*-<J`=I;!dCTr`*`0GC+%Z4-
      zIOFZW8*`x{$8h=7nLD=U_!GN3Jmn*)p}<fH#KaD!lLS5sgmi`;w|i1>XR5Xg`MKkT
      z^euN*lT)>t427qz@5+6K?dqCbtIv=-2*%t%7MD!u*kH(3t-cPDYC^*WhGNI{`Kxd`
      z<l-cjve^knj@NgDtK#G^C*Qg6sg=$e8%Ut3^tp;5>L@>;F2@XeX}L=uj{I3DV>6mo
      z-@q;0)=*;D`L7ji?#;L`aR+y)&A7&k^VL}68$-tR8Fo`?|I|x=ZXjt07)n(u1yIAG
      z>~E@;c1-M|LQ3Q8!r+5&CBdp^O74a-?Mu~!g&NgNz%S1SPU%X|l$w)l5K4vzsmx`|
      zD_R(gUJ!~AKXldTmQsB2eQ2nwfC^1omR6n?Qv*jgDn~mV2E8v*bchT+fKmGfvsV9#
      z;%AC7xI*s@!UFq*ct(g8HYwVQvvC#IC?XuL6RTq1!i|Kpm2m2{`T{psD2)i-CdkoW
      zbo!D`$32uIy8DrMC9x63Bz%GGPZY=E3Umq_M=WNv&m}D6BOcO;!Y-xMYhO@YVDC?N
      Vv6MF?<?R_#>Ub2DejF8T{08x`4u1du
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`(TT@$A7+oho62hh__i|BNY`G<Ew6%zas^wBj8$byLLo4(Uj^xmA4wG|IKxZ6%
      za~x;%&4EAAmp-&QlNOz^jyyQyt26!xe}uaBK7mA_GjMkHx4+9;>-+Zp<DZ{?0q{E3
      z0`O_*ShWhV(V5wi>#?Mrxo^0$#)j>fuAScwpjyM}HT{7e%jwo?Y-V}Q$haB;j&gJ~
      zG$qt&!8LQSo4S*o(l_E7g2S1dX_@Xj8mjvGQyQvA?G+<{It>lS{6h$#Uf>jh8vMg5
      ztQIUQPy@e)aKf~V>B9Q5k)P9-bB2b-gq_iIDLrq>y)uSSg?g58vnD}xC0<O4=t3I>
      zcgbU*p{LJdP{A+mSuDdX2@>y5Ns#RV9q1$_#%maQVPIvd{^Qw0B=?fQ%aX5eHN$-O
      zjcv*5sLq6{kxj!fI1<cxfeYxN)Q08ex041DHT0FLscz5|uR|XO0_fLJUzVK*0ue+R
      zYq~~WXQMT={x5d2WM_g)crAb!;gu5{oC=Q6Wr}VYTddxEkfD-(0B>+c%Ap*O^Wze5
      z9j;(d;7yqzxN5j5Jy+m>yv2Si@3Qz(uDHN3u4xdK?Jnhwg5wQBbEySo=Xn2ug#50+
      zdup8W#=8B$kfsrVQH*hPv$`{_0CO@Ih+b+y^q$B{xdVPue~w#A#nB;tp81@u5QcDD
      zAR!Y6O=mP`JI0DMP7BPaYNj({7c6D_Kwwtd>gZ@&7B7<LJ16j=w1-V+(&A_(vjum>
      z-n3+%d4Z4Q*=f_6DYzAfoMNhWIK>xE7{<~tREQ(z=B~iUSme+#{N(9Bab!cdCpBHH
      z0{*@yk!1u{Ky`#;xJi4?TsLfaE2{e@`%?j|YB+PGkK<bzW5YFVi_nvHA)hgBnDREa
      z9DQ^y$v~WA+gXg?kbDRD%a0%e{MS&+T?{^cfx4d&N<W485#cA?`q02{NFBzx4x&+6
      zWg@;Xhrw(u?KJ~W(NqreE29@8JO?zRg^smoMO!J@CN7Dr^9O{}Q@`;$5Gmr!{4;b#
      z_aDL^-GBas_5BQOqgxx=)#@Q@B^h9Xr;`Zd7ST=cQAsG2tqOG~Ucp)VumDBqX3>y*
      zD@w(`=PHX|W7#5J-9xX2+Yiw@u!oBpe#I63B_eycDmOz@(Pwyj2emxqQ_Sym4ZHvT
      zRc74H#K0T`(u8vdUAT)LEaD=TctO*=b-IFfmPO@tAIA;)cahKpZW2ll>Pe)Vz=QIJ
      zmO!StN_l$+inz6lb6lo&(81;X9W-%C?m}=$?V_gYQS~Fbdg`1~+_IG1Wa_Lc?KPrT
      zX(1bt#zLvgpNx`POvpwgR3nPGqiFw*KxAKg?9mU)78S8HuS|`45zB1Tyf$@Uk4E+%
      zNA{nyHBnr~ReZwsv|)^?+cBWlsC+!QA0vOcdT<BH9@wP!HplK$!v2gApR;{m@ZtTE
      m*}h`7uQ`O@@Wy=0`|};6H!GSwQEGMr)t1fnky=*eH~#}nw4vSr
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO;5s55S)cdq1F#j@nSUIl!M?IVj?x3h$LV*crg#UXbrUZ`kwJ`c`zm(`~m(b
      z<5Ed5;j*){nVrn;_s{1SfOAw`<Ol~3v8@N)Ui-4%H=5P7tx^tq{A@WjE*!$qQW0GB
      z>TNq7v*s`eb=R7iH3V1x$qCiYQY_uVrb#GkPG?D+@;$%Kcw{&v&>f-BisHyz5b`Id
      z1A-GIA$!PU!$%2T34|>lE{cMkDCQeG9kRYv!wC~Aon)jY1Er%mUkn}d7^Q^6e?eC7
      zl0aTRv3kVU(cEc&RdV*EUKEZcKwiF;6I??<I=L3b3~8QF_`0xGrU1O!2mG4zj?K4h
      fYg_7O=FotHrff7&mYFYmqDBQff`nbEIqdxcMz>pk
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5Yg5xe6g^uS(#G(XhgjteX`xgQK`p4IygJi|1D!gK!_-h>3DY(;qyqoN?|hXR
      zfl+4UyFbStpx&gRqzE&%ljQF1xo7V=clYP-?>_)cVTp%}p(|gigrceS#Ykww&=tA3
      zrWLjoorjyDbyxl*hYE5jA4+ZQDmjBkBg25E=R;aCZ)cS?-H^8mik)tT42^ph7sGJ;
      z7Idsst{BxF!-St#ORDjLVNCj;1b>FX9o4oK0S#yp;YBk;gXGV6K~;<3;bCZrt0g5_
      zDQ+oxx>{9xT+7LYjI68X*q(G7JL(=oPyA*hs5p<Dy_Cacjl(kO>y`Z1>P*wTSy7nB
      zJzB3<olIq8iP!Pv#Bwq%pa)H)IJ>W_22n}3Do$05E06pc0T0p7qmN;*p1sxqho>S2
      zFi0j*N4G6&VgiOS%439K=$3Tnej>&oF>rQ~ZYk!^@CYz;)+Z+->l<s4xBx$z%vVsv
      zBti^cv!7A9vPTLhr1;fAO7G~}zG;8hf8%V!Y80H8n5IQM#tfBER7;x9z+yaR89FQ~
      zRSU&Z%Lh57Y^Yj^+|(?u7)GwOrRI%O9QBluD=y`L^i->;Co};?hVE-*wpd!_vQ=X_
      z)jY-w&3VOexX&>9&jG1b;=mD;u%T7-oU)>t*QU*R1t(3V)JAF_JsdrE&4W#M*NnXo
      z=zWJqD{#>t5CUfq1LG%XIi`^dZS-!YTwn=qLV2-@b{ch6(dZyP^CzH_SV=LhblaTM
      zgkiMiIY-aiGxT0iTxD#u=93naSjE^(4EN!)^S=?=O*wOcuV^{NgM}lsj{8nAbUF5Y
      z{`2byy@_-9iGMs9oH)hAn_&B+6HEm!jxAyz`tZcwcG8mijtbqRD2rCSr+c(Xh#dN%
      zK*9$)czMiV2ea6<%9|mhsDzr(If|bWvxj6pBczKmyYL)giX^gX9t)P$FKX7#(~4>B
      sZ8mPx9*<H1YIP~a6Jwjm+<nuc<w0beL^x_RhuldHM8XrZEi0p-Rvb^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmZux-*XdH6#j0z$tKHU)AR>MTNM=Cw9){gXaWHmXjzO6wiv9U?IziVWwyJS%?5eU
      zNA<~n!B=1Fj1xLC<M`|!#qiziYSNO2y?gIHzrORGbMC({{`wohMYL5+2+Xy;UZGOk
      zT)kP?3VV&J-?TzMP@xE99$QbWf@^v0Lap)GZiWKMtB&V{Wr0Z}Ul&j+e#_P{iL{Oc
      zk^)mz$Fnzj`wcs|Z#7(7AS*q(bt`b>IlffFM^0DZRCR3d6617jD`-9vSU0ME&@TA<
      z?HDAHmPX9X+GZ(#Or_%op$rzIHupPjDUE5&sK^SO9LA)vj#<nJOqeYRb(rv07&u<L
      zq~R2DDqcTAMkLem2Hq4<9j|3St?iKv!_1q~U{S|gQgp(#x}h0~<^4N4PUDO~y4!1X
      z2mS@-4b#kzkNcjEvpB~Hf!%SfCb^t9DwQ$HDHsA!u|!6XXRz9H+?E}r@PUBX(U8ZA
      zELDMpH(m{!uS=X4CC*DyV?4AxF6;ORAG1tWr(=7h?)*4sulSF_lv4PFbjfy;fQmXw
      zxGIne{fJqCSz}C^5?Wcub=)8)Pb{}*OV-bgMvmH)4RM?X7IGE0R8&aOu>O&HC9q}7
      z>$r_IdfxMc4QrolpB?oa_rs{?3d`H2<2$&k!es9cgAPPGK0}pV;Mw1sUN^KnS;C{4
      z#duY02%J9J=VO{!gTOr<UtmgLx+ziHx9mNu=Z2C>6<Y!`Lkzc{HtkO6_#TJV4;qvm
      z8xuK6lsSGN=XS`794R)7#gADDS_;mp(y>C$qtaz4*~0t{vLuudwj)kd(0FFVqaQ?>
      zYS=|n_8(h@^d8N4++_2O(YE|v(6rYa`I=;8rturKB6DS@G6%kA;40)J#8u^~z(1z~
      ziKS;q{lU!yG_Fz%T)_#hdZfVrNuJVp4O6_Ku_!@7ig&**|A|bd*vI^}|8@&yxm!?n
      z7yEcSQ^>6J@orJcDRQ$=Ui=NyIc0KD*`>6Y_#JBY{bJ%d^4r<vXE>iz29gVXe3-q$
      zrH@aGNh!@G4slH?B%|9y+$^d&wU70G@cF@mrR77^4hC?4!q3=@let9bz&aDV!)NR+
      z3~b;6YPgJhZ1+v9;XYcZ<41f&tFQ43b_R(*WU@?-(l7a!yE-1wyM`aAxlQl02&lhJ
      zP7QpAZ!kwfuJiPey9E8-h<7cV!MD6iGDe!3JEU*Wp%IZN({6$hwCC8}ULpmJ1D-}p
      U;SLbZM_T_Q(qcpc_CSB{CCJc)`~Uy|
      
      literal 0
      HcmV?d00001
      
      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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
      LHQ(nn0|)*Ox>6~Q
      
      literal 0
      HcmV?d00001
      
      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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
      A6#xJL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZux+foxj5IqyXTwFmSBI0elK}cfa{T8(fV^kDH4aDL>ttA<fm1K9_-5|X98UBYa
      z#F8p~^TCg@?4CrjB6*map6Nd4^qJoL`u*)YfJ?X=MMPk%ZnyKrg;)1y^Gmkca8)%>
      zwI~J!j=VS5&3x0e>-jl5P@ZizOP=R=0tbENS!T1MJl}HcrMU+J;)%e4qGS7kX$KXv
      z*;YeD!apG}Tz)+Js`TL9vr@S{`=}(4obO|o1JAPSg%}P9eAYsw=@UUf&{8pBPQGX=
      z(^s<EP}McL>9jprb!sXn=T<qALBq1wq!mcZm&GPkyJpakuIH>YRVypqZndXe#|t>w
      zmn-c$->+LW;wC=XYF8W5vR56iWol+Ra~<Ee2qGu2?~Y|#!99U=>VN5>lhQ_2xm;hE
      zsR#@fNo5qtf4uDWd%tZpYsyPt4C7H8CQo-eV&DiS1fuI~=EADLRG4~U<vqPrVJ5`g
      zGctiuOd1%*F@eM3lHUDHC596Mk(}hrQwAhXQ-h}KD!V3dVXu<^SbFjc3~|=LIh+@W
      z1x}ZOhAOqEumMaaAdoUJgS0@LJuRATUkPNxw2KYT`Dl{!|Mb^C6&RVfZ1ud|T2bC2
      zC-O)+RT@c?29x66;UGV@!1(-LLtYRVX!&(oKQ=bWt5B2uXB3zSE9+nI`wpad9nwR}
      zja_HkM|gLWcb9p0n|D_P5@j0Os(NU#*pdFHmg9HFY04a+k0pXh3}GKdQ60r_6bbC#
      zi4A>6By@6+GCp8X*G;FlF}j@jibEY7O&;IE$)rKc7S41qmHml$I=hAG*IzVfhSnq%
      z0&_TyCo}+0F@<?#=|pznZ~-}rfNA74J?}2kpGJg;sk0vaONt|uHJVNuM3iBo%w9xg
      z(!EHXERpJpCK~S+?huV?c={t@yL#}~G#wD_!uQoDbnzPkeXGF?DxkC;SR7Y(47x{s
      zvckkR#Bw^*!L=V0MZg}g&43k>lhEDLAxY(KX+{a_Z?{*-8?K0JtPXDMh6+Mr;u?UG
      d3E*!(DJ=zvF+c~mcGrK>^(<GQKx+hd{s3f+GI#(0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYE26n@^MZPLtE+CVQf6$4(#twb&rq=1%k3#JWH2vU%;O_yYAvRji)sf>g8
      z2bl4z9~8WPka1u}Qb%S4{NM*a>NsA;-=aS6?$T`AIAdqBd){~7bDr}&=bX1c{r%nd
      z0Cr*_0G~il(Ws}#bEglFrSn>~rkh3pZ35l%>Y|!1t41-Mo1NDRRsbCWo9tcPOiyW5
      zT`lX^)Y-De!!>*9`k&1l5fCQ@y2eeTW~qjiSIc#+ouKkh2((w!d9%tx8ENZ=v^x&y
      zhHf3=Ml6$w=LOov%{eUuKQ=1ZfK3AaSUleefj$Kax}-Ir;3;$oY{=?{Hd(LCYSlAN
      zM&YbkP|JChSu#U+v&|~$HGz%Ub(BYmKjS7v!_7#0yRMe$&>PFHRbw<h9by986g-RP
      zm}^a~P=~%)i_r0Dax$%wMv~$6f#__NR7)UOQfnp2*=9;*l&YrA%`7@a5lFaMQ2mUt
      zP`9Qmey@ziTR?^|jC24y$n{CVJT3}eM4YfPyd<$p>f0T_9x^qn#k5%|x(zWgc6#c>
      zST=~41Y()o(WQd6V6j7@S4(<Xi^>4HQH)l!T1_o#(Gu5MHH6*RCqurxMmZ+T)1&dc
      zJTa=^01gUt%Bqj6^%`lXygHvLRn4oicx2dAzq#u_J`P_eBMk&F<|W!pQ^2PiOv3SB
      zqZ>bJORGLM9oY_|BG8|0DF?r9sOd&Qo8hBeujz}--R@deI-ox3BWXE}6tql-I|nG{
      zW#cLmK#pKdlFs(wx?Z;Bd>vB(oL)7O&Itu)aF&pZa=da^q}-Vn;X|0jz98NpsU6au
      zR&W6q+41Vaf@aJK410BVb6OwA&1Y1GxFkc&2n@9X^d3|dWHCX(>V~D4R|$5ts#_Fp
      zbF-~;b<5M&Y?CV}1yJ-{JKhrt3eefcOd%h{TP-_OVyy2_4wzZz#PzK-hBq$D8=5lf
      z)q-}6P0lfNueBYrK-kKG@$=Wt=O6+I((dG~=0gZQ@?N6dBX1?X<rT%r;<JaV3q0eO
      zUlYp+Cn6u*M{i<?&;EPd^kFlfVYKm?<#UqZa&$dK5FqL}B7z~VB*4=I5Vp02mXG!`
      zJmmmYT%brY@deu3?j#>We28}co#Z2kiA1V_t#|0^Kn|jV_B8oiB%4dj{4!w+=*64|
      zI<f*C!Si^5K)v+a&U7Sn3~?8Fue}Dk65pV=JGjJG|BWVC2af?2JFsHgU2fn`B#?B2
      zd`13JsF6eisUG}u{lF9B-~)*Bk)dVmyqkT1-RHw2%h)@SN;a_nTq=C%K3+*Zw8KiF
      zUUeC6V~v0%R^uHCe2rh;rF_?!{d>G7Z}0|r-%e-`H6SPsW1R0!Y_zM%JDa7D_4Lte
      z07r0?2-~@H499J@{0HDBKFPI@zJro|lD}K%mI~19za=Z-Un|8;8@bQ%TG4pWR+i(6
      z6Uex+4W5yrL}l#AXEK^?eIg4hL56OxLFlvjd_?vilff<WxQ$Kt+*8%)3Stx|-G++d
      zHMgNSw=VVxBFn;Ud4S3D67^f0T1Gy6t^v91Z{W=aF5l$|r>C4Uf9)yr78gli_CFYr
      zhs%iETt=U^Wb}}X9+A;wGWvmxe*E8z3hZfTL~fIj9JP_8q$7K*0ZrQduKgv3ChQKI
      zXNOG=+r2f+$=QEy_~AWUi~&+w-C{qpVSeH6uWYg3I3&L#g+H(he_{{*vXe|WpewSE
      Wpv-CDHR?8&k6un=Nx=<UQ1f4|SoV+r
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&`%lwg6g?NVm6b9Oc@AF;kZmaS{n|8vB}C%_M92)$WGP!SKI~R39mHSsUs6;^
      zH1QAck22n`?OqKmX}{f@bI(2Z+^>KC{rUsoE}kpsBaGJ?O}()3W_3k>Ti7$4m$p?k
      z9R(4>$i8u8=$6r_=^MNIX2n$yBh1=PO}Fc{py<GMTw~WV^)1&ijk^3xh`Hqoa}lPB
      zz3A;v2WG*pnmI!B$grA>r2=6fU$I0(xGxC(=}d_bkst-bgoTbimy0W$Kh!rJQ5UW_
      zGFyCcT*74qqlB?g!@_IPsA?F)IJa>>l#hL36JcQ<E~g@aNexq&<{|Qdr0Mke;7lnF
      z!i)w51BBtCXqfBG`mX70`!0+Y?TTTQ3`fY=ORDI{b;+;sjP9N|Buo}N6LxKY9g3t2
      zev5exaj1kLDM%PrIj}BTX3MLD#jwEkQeHI<ny$Z@T&AQVgCzx7LaNuL^Y9vO;Wj~)
      zEn2Sea(G)&Az2CYAzRL4k&7<N#SxO}OsJr>JqE?f$Bu9rmA-J6ji%c>%tJg@@Q5&X
      z!7$wg8lE6U81%Zd#);V;C10|Tu=XU~6s%I+vYSrDTodw=k92KoS$-<~P4WHZCyG8K
      z<*nfFjO6P0jBzvwjpHGX?lDgO62FnyIl;&oCcY#2jWd0?!f%yNV3o0XT=lY&iLXsi
      zf1gj{d^CH8YvHnWM6l_VNjQUW1G9Wef)u}{fHiI)Td0yCJM$BB9hQVAZiiXkvH15M
      z(}a%>n54i3ex!(-SPVE<0?v4L=@jW6N`Ia`_CR#e#oKgoEJOF`?szUriOXILL{5<W
      y%CYZEjI+SUuJIxP3$d%x7g^huvXuRSxl=soOy^7a%u>EwAmu5Zd98C^)BJz?xex9D
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}`)|@<6g?lWLhT;n9)i!Y%@xqq=X}6SCT7t{oY@G*7$qGv*sW_xDO>ze|012b
      zC7SpL_(vJ<*H%h5mXS2&em(cxbI-l)pT9qU1Gt4{0TG7jw%JoEYwJ%|l-C=Mt()y<
      zmeJB|0WpU0Ep=B_4ApEaYnxkI(-Dwhn6d1(V(qm3w2oyv>ZYM7l&+~e{4Yb&X>?sS
      zhPi4`!ui<InpR8eaxm4ZQCy+8#1P+AjUHvDt3go@L=ThYrlFg<^Ozwj=j#kHo+V(6
      zA$K}^3TJUnK$>A9EWK8Fp_?rU6PRQWo$bcnf6-IbVaSq*QA|rXj|@Yi>?_L1!@>D_
      z3Jez{2uL!FRdrK)+1uIF?3(9Mx@t95qpsRIkKIENQC#8t61C`j(7Ozo0sBG|B3mZq
      z<7RnP=Om;cGK_GIx@t6hcjFD3QHx>WsOJ6@pPQYYL&no6OZmEpJc<Ge<a5}NVR#AG
      zaf3nPB?2oa<ot1!G;f_3;_GobF<*}c-yMc5v4s-`b|}%<vvr41@`>%O^_*~j_i$gp
      z62okmwcp=hf`kXik*RK#pu>dak}}L6kv5csnh`gwp54?|b^fZPLsMPk+m9JqoG4v!
      zM3CkCLvJkO6Qz5CqBD>v9-(N7aQrv=3!`uLF@A`tZ^(Y7lL#*IbNBgE%B&E68JFBA
      zoQ;;u=eR?6M(6RuAub20B2fUZ5W~8g#^D6QRg&is<a~lvLUOFg2@1s@m<?Dw0dI-r
      z9X0UYWt#HPJ`?3(o-Qup8Ww!c6`wOzC>}r#QF_9*$cOC#x>TPog+(YX-A($=c|I+=
      zF%a8F_6te%+)2<W;0&}E^H~^fgZsig?n@~azGL<PcZ2RcDW6En=M$tn#3Q$K$t_y`
      E2Oq~SQUCw|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8-ES0C6#w1*=q%e&*o6XZtyqDwAHWJCY71z)EwEU+wJpVhx=wem+kxrKFgsgX
      zzaS=>G)9ey8jTuXG}Y*XUtLt9zL=QkyN^ElXBf|&8TMn?MoHM2x%d3eIrn#d=iL7O
      z&yPO?IE3pG0u0?{y_(79r$&Y|g-JtGiz~TBQyWn#TtbMU->}LVW3lX+n1*F5^BT|O
      z=P&W1EleeJFl=iza~(;DFzjjFsXNH&OU7k>TG2}yw-~lmxTPxEEVnAEp`Xi*GO#lY
      zcVrE{Vk^2mt7ugoro6>J#t>9X6^5-B$1f>MN=8%ka%S4LRJ}aJ5VBWHPWT){cuC+G
      z;!SpL>SPx+o%3dm5?OQ{Q+3ro!H`VkZZ~dT^5P_CDU!fO5k$9)F7!}ZiRA1iFx(|$
      z3u5B!ZW(cG6>s;**oK&dd+D_PtfSb20SS8<dRqB%nLN!klUp+OA;Az(OGJ1g*_5T1
      zl8BO$aVIu2Y#vv2K2cqq=hlp<nBc%D62l7dOyAyO$X-y1$lmb{Wk5uAm<5+o$t-w;
      z(o)gkEo>IllGe&_y%L=+!ycN*p^}8io+5T7l5LA86;wwV46h_^KjC;QJ56dbt2Tw@
      z%Hq&QHdDM}lA3O5ZYa5tVZLfNyhT6+NF`peEn_8$ejJx^0*??W{7O~PoRc)=>4__O
      zAxgCvmNA5$PGm7AffPNkLH54PWSqn)hRz}#$L3Sq)K(bwQNcHW`|=eW7Y&n=Wq3?R
      z4&w|vZ$rDn8j4~9lM?a_yZ?uG8INO%LB49KHZQnmr4f?wWp;~%*$9q^EY8U|f(JyX
      z^D>^m9JQY7K{NC+Wt+$)$uutENm62K8Y9D_h5Y2$)bLC$KM_2Y1va4oMZz=GTCJv8
      zgQgL;X?#rEie0V9m`9NsA)7xtIX*TsHd;74JU22%jp$3)4<u49f{TuRmf>g{73TiS
      zftU>)i`-r?s8z$NPI972=tH#?FSWO|z~E=JZtIhZXimeCE5qK6{I}?X#B6c9YU!lh
      zNSV8X)jv<_BT^y@cRogJ!)@y*Y%EErwoEY>Aj1*^Dzczd7Tn3mup+~NDL~K5xGGd&
      z<2ViHWfH-(QMHQvq$;M<Hs9@YP>je>KdC2(0K$;ye-9O3=&6(LfB?i`rBO%kaWQP2
      zCyiR?NrRT2on+gE?ex2YzFsE};s)85x`Cak-gWe*_OGKa)whmasqjzep9^+}rsqQ6
      zWB2qrl3$Z)0BQQ|K?nUVAOwvPSfrpjg)uMy6Z>iBi0c*yaFD(z05TMwIdAuoWx#nm
      zL~B9k?J({qUop`WUTPV73j1*CJM?}@FK*xtXYr~NM0O3lATb=pgR~;f)eKI4<pW=9
      z3w{U>yI^*Jau=stWrLw~e6WUN?<1b7;n4#>V1!{Xv<5vLKkck{)B2h7w>G*%^m%p-
      z`E-2R+3uz9nWN#xepk4L*)<$Y$1gYrI~rSb&Rx!C>?SVGrQ=V1gQstx^h<ZBaexV@
      zma9bCYgFqusK#%i7jMx``8JYxhyH?j7lU|@rt1eZ<UXX)^bz&#$0*?wD%7V~#%H*O
      z&+#%nU&R*=5hvWk)=RaDG8IEmze)vGol>ph5-wBJAfYrWcZj^lspK)DDkj9-hWEZk
      z+HTRlZOi+WwiVyyulUWjV7f}Y$U>ANXV%cD8}-*FAgfD-n$iOvrl$Z#i2uGCD*mkh
      zXu?N4JQFvFhu`nv11Uf9&n9G`j--C~kd4SSEZ6Xy|Hywe;Tw_ZqV@1&R2tDovGi|{
      kf@|m`u`Q=-c){=JZ^zMg*SKEi7+xebiNn7{P6D|0FS@^62><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Cd0<r4^*(3bB$G@Y5CTL(Si)u|3z^~qNFtboEgC=xMgp}sNd_25X5wVRqE@Ze
      zz1Fq0KwGJb)Lk(P0u^jUTXE~6ZMC&(-MUfRQoHc0{=W0>+h$4H{E>O{-o5Ah&U)`X
      zZ(jIx|I<V?)8p}xhbe!3v?o}<d_`St5LdO)Z9eicjf}<D2V<S<%_q2xk=@~VB-GIy
      zj(105(eoP?F!9+;!|G$v?nEe>XbyGsgtH)8{+KBz+SAdoa$8rJX>4P%Jh@vRYY$g5
      zX&XY_OjA<^bj9L{P-{mx*p!HeL!EMou{jCMYr{OItgYunqU~VN01>fxE7PbH5l~5{
      z)U<U(qLIWr3=5PsGkFEqM<+2&cQm);b_dUmM>->k$mXy`F_(&{*hk}-MyKddFAQ`V
      zPZOAYiA`%oU8cem8Y_)q)qX0ZNjjC#WTxyIlTlG1^Wd`PT!Kw>@>3quh{i}XysW3Q
      zH5^|lhF~gajJ3fLA-DtIjhlYbs8r;SmZ@brji7ueo7fP6bqg9DRh5%rne6UxV!0Tu
      zFqMT^PEiQzG?EH1HWXcJ7&)uHBNhdN(SfpbnLav=X_5m~zhFhMu4mo4a6H^z-yUDy
      zlj!P6_~}$Cm4CB!s-zimb%suJ35;^L#3PCD+K>cW8YzSzNcrf@K_C=HLlh9XkU3wc
      zv#1u#TMYtC6J30TSZzmSeKZnXuUNr9^|a7Oi0Sdk3M7xyX%Q`E%1gxRwk5)~@puSa
      zy@9edb$+U$25|sVA}g?_uB=(^%$9#kby`Nt5sL`rcBS4J*e^MpL_Z1To&?k66s~DT
      z#7IvhI@my$DKKzU8(?A9h?r(=w~<dwC#MmxQ_irV%DZX_rVDh^X_${%m`-wRvp5_L
      z$3q=UVjb<_xSv+h8l65*=Q9moA5OSL_#xp7I<2LPU^eC8%~B|s0;zFlGf+M;DM-?C
      z4^xrLC`sVZakQx;tmjs;bZ{k;AS4+~yJUqg?g>d6r;;<`Z?$L>(P<-XlH@XK+qg6k
      zt8^f!Iw|HOII1w&+13c1y69p^+GNzSvFVbm;-OK*PYK%WBUmDTV`y_I*b$1Z4=!)r
      z7;a1Gw1u`p34=TGeN3P+bx3s?xNGzUKV3>+^wDLOl%7PSBWT2Nw@A4hr3}G~@Li2C
      zjwLpP<LQ-Eg(`>O7nBcAD=s{1>f{Pvb5PGWNR2fLZi64?^9G%6r0XEhaJ-Mc0)_@Z
      z1N@RmSFpCdBOE{V6hGZ0wc#eZMW<UOk+OTb+7Y{Q>vp+yha_8rq}EOJHJ!drcL5Ob
      zW-L7h;Mv+0pMCZjutFjd5vwebiUij%eN(4(v|h?%nzazd;jM{ys4cNpnHXzWns?Nb
      zY9D=vX<V{{)gzT0xwMP!6%*WtI7rEQTg3fL#mOS-Y8R|se(u5*wJRHzFZ0uGvCM9I
      zK&J=kA=FA)Lh3_3-LP||+ubWS#A92G^|H*RmUCBITu-^Vko2fdkI5R5)ftJ#;y!u;
      zrO&ZLeMhLfyFS#NSh%$<+?BwB5C4V{WD{Ld(+5cjYYkyto{*wwk~SDM(lRd=+-O^*
      zOLDF_&BFFW%<wM=cg4eP2#0oY-hQ19NIYb<Z3wq*^3nHznQTCNvgL+@bV%HASZc{2
      zLxEFZF;n$Nt+><EsM*EJ8HUOE)?_Qg!P~ZAw~wBKk&~gVffmUl^g|(ub$^&8%ZzRb
      zK*K?iSg^_1ibXCl9POhQ)08*n)P=gkmfWNCvdDc!Vlbl=sV_g)=_mA4l~aauk^B~_
      zQE!Z!)j4#dpI)b5_~_@@o}>hgPQRo#l!!%<a0g;xhC4oCF08uM?%<4v*L9$Z1&!gz
      z%wN%4KKeCs*O8nwM5o`-+XyryzAR*}fHc#|E!@tqcd<-lQap#=gO-N9N)o8(CE=~u
      zWExSnn?BI7qJNlDQ7sj)8~GikIxKBZqcX0OD03bqDS$v3<9cRK!~HzV=^@#P{~1O|
      z4j0s3%cIBWFXGWF;R0(?Yb@3g4k1;s*In(Szo!=!HNX;aoc<vq{t3RQ_qrvfZ9@p9
      z6Ef<3^na*)$rS4G)Dm!lJ{18dxLoh5neDM2W1|WY3w*4lmB$6fb5jU=I155J8$uSi
      z!hT(3YZ%dEhka)#u_0I&S-&9M7U>LiRQuQu8z*yHBy%jexvY!aVRp!;N^pa9#6pNB
      z5MJctk?C^fu_ZU3M~U3g;Je6WHSCPn`xpm{6qhwb?U{vKB<4cZwF`yJQZvV=S-KI=
      zEYM<}C{tl1yDr2KrHXT%kEbA}oZZ=Sd1OtU%+rMLbnwM0ZBOssfJ2s{a+8nC(o}Ae
      z$CiiySBQv8h-h;8x!Xu)bsTVF-OLXke=g1O>X9Wi$ft<ZQ<IlqbGnOZj~K|cW*Fbq
      zJ$sq%G1alv+agiy<1>=%a)B#&c@BN*%AGAr86V?>;o9e3kW9ITPXVz=6lY;)YcMl)
      zvuGBblvTzm^*G1)X&2X_wn)~bodT^YhEdE5vD=g|D^A65NrP9gGUuDD>~#-oP3k23
      znZbei9Gx2pf$WcmaU2wp-F`aA%Y+(E)+0@kuz`6BHwtcY&ShE&Wz#;woNN*G(-CeG
      z!ICuQGjnN!0W+26>cI_&g9+ncGMw^oK<5^nSIaS6$1!}foG#Y3#<u$S^T;SCCvauJ
      zsp#|b8pgS#gwGc%U!?O&+0eol8HtEK{<gIVv;W|yql}|}iA?dEs-R%|=@_raZ8^-!
      zkr}s;Ear2&HhTlBB>;|dhe+6nns1I!W!D?1m&Yf#OCF<^ThV3}Rc~Mc2B2zU-(SKg
      z)Rr;Lf@v8uwb~7COtHXL9fvH?wJeZ2+pxe^#{!(omkB<m*!Zf3dIO7uUp`+c&vBx#
      z^plMBb0J@i`?7Vj0z~esZ1x7umZ`;jolL#P5p9+_Z$Qq~JehBj=QlXd&E)q6n&f$a
      zaeye{n;qM!-1c*jKJYQ1r#N9@`LtVlP1u@P;VN<UHJ!gMag~d>vP9fYlN?;LGFhqT
      zDomEwth!_w$tX*Hp2J;EXqctP&o%Uc>@`w*1FDsU97X%U2ydqOshMqOq3i5DME>~r
      zULYkW^3vKBO-pJUacbq=I^WNwaGeoTYrD~I3j6uH{Gg8?Kv8$B=d8y|!W~`VxXusp
      z!#Jf0SEec_o!qn<%ne#<jQROde%!~8B^6+muF~;J#323&-V5`q^S*k-bY`kCEFWT<
      znXIC1C8wfc!?}ukC0_cNrUhJGhK&6yqi}ZefX@543TL87yPx;-K_4GLxpeFzbDJYE
      zF~|3qmZcK3dAQBu+7hZzw06m<8-8q&`H;?s`57$VsM}1X8Fs-garTOm$3NgBK7JOh
      zqyK6couA|9all%ud<lp_rnq&G^t*>jbMfy{xk9vLMWpit+x{=}rEnTW2AZ{p+wgU>
      zd5ZA0#iEID6oR-D0g@ujj9oahh<~Q@Yy3KnAnW3>PV~Jnr3hVvlo@7YRxI)hoqs7E
      zoh%c1n2}^w5Xp#N>HKTyU}dj0T3CMm4Zq`K973iJViR|NN#}Q^-1$}aOI5mT)v7`l
      zI)#=U8Ey&HIgG-fXq7}`i4r*7#~;BAsk^Sao`^K$a`^X1-i4}#fudI8=MU)vKmUpU
      z?Bioe`6X&fCwp0_Q_}Zi{tMKM;!6YUHb(50ict+={5PGCGY%Npp{}m5bmITpDNlv8
      z$qx$s0}7RF*$|GFbR)6D?Lv|NrSrcft#T4EH9m)N0LgKN{E0smjyQ0j>yd1G%U@R3
      z7zb7}kzoC%SWmnyyeJ|K^gJXgPEu8(8BHd{8eUms(>Th)f3(2x%|kh8?V|yYYp*mw
      zjZf@1j8AmejWOts<MT|69Yv!ta}2)CGNcg=KR|^odui+dO?;B3JYkHVhX2Ej=j$PR
      z9i*<N>BbYhGQp~7$*2K7<G#OqfKD#=^id#n{%Ww=Ou6QKU5%!4s=zE5hi2fvu$c!*
      z9(-n(SM*VpBgJpry$Tv%Z7?WQqf7~6jn6?hBpc17Q%qUcg1K1gv;%Z%%K)9;SW(_f
      zRsA%pqP(Bx9H5$(ie8%6Pjv&dWND>(c1~qKH6A8@9P>OR`j3NbqOZbcx4??Gg5~YF
      ze+M|<X)q~K7$%b(+&`Dj1A}Q8y@Hw`g=r<7Z*qFX<g^fQ&Ck%P?UXN9hiO$~ML(^6
      zJe6uW?p`<;RfpusFfGxy;H0}@hFx?L-A9w82}k#X(08et9>5!e2MxmIa0SsqlW+k{
      z8lqOvn?xs@)T<%KqTWXBCiP`dMO;&m%CW-Xp@QW}7^@fR_qkkEU>nF!VZ%Ty?Mx+`
      zPl9AI^A#24_fwYlVK`_*KXpL)I6ih$miDli={cHE@eJ{HDwJ;(@Do1zse8N3F=<(z
      zoK+52!gPk~m(9Qg!}T-zX<Mao`&{n~^CGLrTa>krE_oOfl-KKwjCmTyIfVQ=Ok?R8
      zM8Xd!K+n<{bOZ){9tQm(okKr@(T?JU!i#hfy#&=>p(wqI-t<ol<>x82>^QxGuAnQS
      zbUj|Qd<kaoU}h;@g)0s7Mk2bu4EJn-0k6ST7Dir6*O?A@45KBU&lBaJr{SiN`ssS;
      zeiI`6=EjURs4(^Ir>{!ni(xURpKgPB@4UX?8<#t3t2lZCD!++1dJ8JQO;hL{(0`YL
      z^d4S(y-!Q%Ls#IRXR0=iX47`s0jg6lQmMw$=r_q<2=Wp=MW%=0M{S4USGZB@r=1Ro
      zLg-EOG5-GrME;5j^f!3p@2+4fvh7&}dwvTLOy5T6s~U2dX{RY-r^B?Xm+pBSme~yp
      z?O9q0rN4VYWx>OJ^ho6)%s|ybm3$m?oNWJ$@)+AT)^OPL;$><Um2kF8=_w|@j@P7n
      z=}AZ#4VJwKc**vD8o=j1NG7AE%{T56jV#X})=y6<RtJ0OX(w-t^2TG(FDW!&RDm36
      z!Z3pG`=)Y1d<y9-5#tDub%1!XYjT!7`3JNK44%a#FGlT7<)qu3j`Y&=j!4C+6r2Js
      zu@0vn(F<u}51Hj{v9NoFj&4Vk8csOcOD{bxm;Ll=!O!~XHKQ2g+na~!9p#;Z-wx3G
      zOHI!xFC78^!M0WO5m?VKK9!%0K;<*Y&vR)E*U}WOqbgoVL0(K}@DiHO4YZKYHi)Z&
      zx7f7D6s(TFr$4|FL1gt_`XjE+aCz@fv^-5Mmk0A~YaQ#Qk5jF+0@iBEXsy2@h=*`O
      zjxF|hFMZ<Vf^x!Yh+UIW?7!&WLy66`#h&P;|D=j-h1j-CVi96ED-0eoK1(cndfEFJ
      ze5Aah*lvW_O&P`dIA<ua<886Iy_}b7+pQ40Eu+}sJYp!Z*|ymHUM_evh3%CP`=yLx
      z$Ds128bS6al79K+j?}_l9-C^~8z_r!bV<#(vXRHpU1?HX@pY0-wz!ukJd#58HjusD
      zCDzVHp2Q_XiS^rJC-?HyRJJ=Hc4tPhCv$0<SjPrgw$wl`m#0d-2R69ZCDpOP46aI(
      z>aszBEjHN8GgIT>L6CjOCDyUQX+t{9PBG5puqQ#b*Co{<d-~808*7uz<gkMv`#qOf
      zhwQ8&E$d`hCd(cH+2>qR9kR2Bt_S06vU7TQZmPpx0@;^cVjZ&8Lp!Y47F*NH^HLr5
      zI>i1wquBX;7P3k9{j0Dx$=;@*`~dB0sTkneK5E7eju$v*0Aq8>zrnivHjU(W42f#@
      zZEY?wANBt}BSQ;N)AJBz%=5Y4L|F(FSy6_$Q5*nOzCHrL?+oGUkTJ|mT}(5DGcUpN
      z;$GrAO~Ga51AMkx`wni$f^V#S2XT~ndJl~N=s{6!DO7Vnjol9a9Y16Hgog7!XgvRm
      z0{m|mfijyw83-JPF3ijMTvMk-AR;>9>;-5*xnvs_^LWYY$)a43+QBHL{I*O#WDYZA
      zp2v$!nHkhMVyklm7|$zpj)*!dk{}IrJi`Gwf`)tYX}qU^0-jNs)iGQo>a1kzfOIvs
      zeG&+#m-jOE`%~ou8`izN>VE9{5Ad26oZ`57fG-5>9@JrD058BniPxrB)iahxd&W_z
      zXCehXljt;$+8?QyIo-Cv>9D{n&>W!LYQ_xO>!vO41R=3+<NrpeRCymeAJh9sVXl{y
      zxsHmt+LFv=oGv{lgJ%FdEAczW88qJ$q;otoT_$U^xi*?ynZr1PsNBimtz$O)F~EPU
      z;ExIXx+Hkzt!j9y2HrXo-kJ|@o#ldd2j2$c=)xS~je|oUx1o<0_t7T``glw60B_0w
      zjg0gx0`y`)Hvn4g*i?+Vp%>FX0m<m4MF)pIVMCt)^nVoe34xAffL;#ha{+xGpql`_
      zauBT-(`N?s#T>VxRg5~>&K?VzJ*9o@HK5tkQaZrh8K7GLy&BMK0DU2#zc3gyP936k
      z4{tW1TM&zq9wSt?_w$zW%070bd;uyE+PnbRh?L(1kPbt*3i=UtAdTR~ENKr>e2E$K
      zc%x!#s0yV^!(3a#+=@QVQyS(<NL`vi!!01N72w;T;ib^<vOzUewdad``QXs`Hgx{f
      zJ}ywu`7Kii_=*hBUjp=1fW8{g*8uw3L7}C6#n}AaF*tOg4P98=$72<Ap@h^`8K7?h
      z^j83VGoWt)^sR$I<2)<SU*>CU=(Lb3wxNqB_3;D+UEDHhfUnH}{WU;;9ng0HdOM(Z
      z3<|A6>UzGxhEDVKWE*-iw4SP<CyUlMW`MpM(7OQr9YEg;==%nP=IMskU*VevhYr}#
      z0YH~4=zu_fH3RemfPN6r4*~iSKtDPtbfp1(D|#2IXkKBi*t6{wn}arV5D`98K?fzm
      zZv!;ep4(gY@|^>GS5m^M3jQRB^nyqqhzx+pQ#8x7-$iD&op`g6c&8d<zF`O6W|K^n
      zLuTl}E6+*lu__LSz~L}BJOd8sRC%7I8J;694plaXDy$+Z0=L@{xW!y}gARwGBd|Pw
      zYz7i9fW%Rdco8IC28maw%JZs=M9?N7M|Bm8JM4hSV2GguqTH8(!)xI1Iyn3s9DWH7
      zZ@>_5x;P{mf>mVf9AaVNId){sK~T<BkugVt@|zig@@>Gs1Ne6V{~qAqcR?qwX=-8l
      zmK~JoD>>KL&@~9kc?uex>jD0D2I$`d`VWBqBcP7~`p<(ws}RIC+G?7)`$|>L4qhBY
      zo=*%hswrjnm3S9_2dk0USHjCP?BjU{B3T-_`_X)rF5|oj`Qvw?Ym1%yefxONTrbin
      zx24FdR*gM0v%GR2KO*Uct@86U#cW{C^%i+?M>@9HHLo%zJSn5(M4)z9t9DRuLjJ^E
      zR3_i8w$fa$K=tqAr{<!mD^H5D`Wd@#>HRlXJjLJl&>ot&>;T`>GQd9+9JB)YM@8Nl
      z{rtiOMczYCh{m)N{lt%;-85XUMwgGYY|7DcX}Fe0V>O)uT0VVF8%eXZLOM%3i5j%A
      z)T|ZL8f^lFwTZMzn?l>PX>_$Voo>?t^lh!2?$*$X*JjXTS{3zcL3&D4d%Sh%K*C~n
      zV(jOm{G!2PKfh!w%{ln(a2GOGL&qwgU&g}irL(~5EcA`Nw2j8{E9hu>(LEl{uc9BC
      zg<j}5qqn7@`9G3>%s;_XmLG!Sznr(E{E42mYFC>hAJU%-?4)t9cwviN@8h51Z4j!R
      z^%NWO5n{)u7{8?4L)m+2iW4eE5z=OnPn%7;Hit%Ob7{I(P377=SNPPLYJ!Y?+*k@j
      z%NBd2yzP*vK~Cc&<KEU7CmC%C<!KF+ueo=L)*%(s`3+bL>#F>G-_-NVrsx`>{hWH)
      zf+%=Xq5ww+LUoxaANj-YrZL9Fgu6*ME)ZHd6<R;P<(w*%ip!zmxing9qG{Snnx!>U
      zwRV9k(Q0f@*6?rnJuvagkAK0$%oWvxW$EwBUhXZxA@&QUMLmk&cXdGz36Y(&Mm~z~
      zrU8T3m|g1ihv5WeFFe~Rvk&lxknp<!{zLIT{$oG?brgSs|1wQ|@8^FeiMQVdKthZ2
      zZXiE1#_T~bP6!4>?c@L8Dh0!_p30+ESg)N5v@r5$9gWi>G+En3Wm*R<)S}d+#poif
      zi#l<Av34<S(c;LXEp(l>l^)P8p#kkudRDuPevIqav@g<|+U4|XP4(|igFRtQ+xl-A
      zIfGy88Ly+HH-E8x^_qQEAU`QHqvcGDk*vro$FD1zGrh>vuE#rz8_2J@n|payOiK`x
      H$HV^*eHrp-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&X-^YT6g{sLhmHftDizeh1-r?J3obP#P{1^4C{i86r{;Bd)PZ)Ud7YyC6#s=L
      zm?o0wcYl=ezUgYBAKuK|ckXiTxp#j3{{92N8nPN94DqVhvU0`!%?*pba{i%kcDNJx
      z@=QaNU|&`(zh3RS6nux*ij`yG1R5?eEcD=fanBkKW*G5hg<+=9^XSx|LRp4OFI~?K
      zUNOuk{(&cLhNw!WV+7*{Vwj+GiKHC^!xaM>#uz3Gt|xX|^@@;hd8H;8rbBWzm#(tA
      zm(k#Z+hkZQ{I^X-hkNCat>H+)15tLA3=HW3JJsK|NB6E*%_jS#`)yMeefyIm8iDJ3
      zO%2x=tX}7Rr>?Mj+&SS@VZHNCJpZHDOB=%yZfLm9FgqOCgALq-NnDS7S?2)*D~;h6
      z!+O!HotfLax#CuS_jNh9wO=M<W3OboO|#i*G<+F|L$h*bDkaRL&TLn8#BoPSdzWD@
      zQ8?zO+^TV}YLx;RwrFd($FMYzEq5r13U4&SG3V=znua99)WE|QvPs>mKGFs<xX&<N
      z=f}P*pLP%;y{S;kz=ICzdIMBP0uL3XM+~Ehd_HOGSiuu@v(Atl%wn)fLsRV*&#L7y
      zNTagoPK%c8uW|MCR1+)tE$N6ISFO)1H4?Vgozkk(1k1E?BXmaTOsmbKUnfG}G3fNX
      zOx6zB5qj&XHjGsI8z#SoK2!9Zpjco7QRFCMi!uQ79dFEFmMn_H9AzbG2)Rnw0^LQ)
      ziig=7R8wWoq|dSV8RHj-A51T|ar@^5Rt{3<n7lyZfWQ=;)i&1Jc>IO@BT)6{i8t_u
      da_p0BQ_lA!vOUBj)8~=FQ#=cKJP+ev`~iMp_i+FK
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZva+iwy<6vn@SEeqSR)ZXmHs`Uy~Sw$aA(8fY+f+04x2BUAwvcYL!r`cVa#=pr2
      zO_U~@7@z&4jAw=o-GUEnIG68tzB4m_{{Hv{;1QmfNHMH-{efNIKd9~6^sg@c$UBXi
      zB8*HJ3~Msz+Opq`I}&9EGmHY^cSDBd<~gJ;gSMmeRffzn;frX8Azdi87>v5?cox!_
      z<uH*oafxB^KS~Q6vpF!#bIc&akZ%g#dp+p4z2L3W?s*IgP3bzlmJ<jS$4MjlD9Fuv
      z!p+5%$Wq$rbjWa_dE}fpcF*y<_Mu**T5PGgs~pQ%o9NhYA9-$6Eq<UKe5bGHPw5$E
      zTsiO~y=_CWu5;YLCTT+Pi8O|YyuKngiqq2>te2;*cN_`nhbHbYEL}YM8nHW}!rtT9
      zLSYINn>10PgPU~6kaEZwYtW?xUSFOlKV(Gj{E*XYC{v;n$YU~cC<lS-?Fn_z>V6Wp
      zURGclPfOApV)Ua6(qDQH$WkUpQH`pqHeWh}Rr(43{tR>9k^f4$6fV<uPU|Z$@DzDe
      zus}IJ(qIuw6w!WI8S_%41F^m#zdgj2cjqKaSDw?{9Zgvob;cCZU>zI8VYrITm{-v;
      zkX5`Pu6-u<$XA9cKt16nJNC1Mo78oS>IQY))|<YdjB>^mX=8}Hzft@`agz2b;fs%b
      lactwh_VEDaDei8}&Ba`Ma^W|0*ar!4ZVb+i!4+-f@jspCut)#^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%TB^T6g>lNky=GW9=dY}nAn)O5<^4+t40$w>`R^0F=c9MA%2!78WR_OfFEVN
      zQ!3O1H*+6z?z!jOukVjf07qyPkYi~0a%%T4ug-fmWdk`AQ79)|#sz2$yJ6(p;lxi7
      znQw+7fAaW4EJDdpb?)7nYX`3M?ZI!m!(f~WDdH|ezS$ZvX#Mb(o5*9`LIG<GB}Yhp
      zF`bNgbmNW#&amx-o*RtZNT@n(YVn<TWY}~56HBXfFW_!e1W{PfVUV@vN>xgTG1tye
      zZ?;x~7|iQ%8hLyul&Z?#+Z-yl*r#22Iwkp13n|kmCtvgysj?|DihBDU<_je`So9i6
      z)5Zqn)*OIMl&E6ZS_~f(S`8a*_J;Cu+N3^kLJK<?24lgXqe63PeV335YqSqmFq{!X
      mFJY+7Q7MDcx07h3lcJh(Ev>ww{7j@-E5nQseIcZlpz1$E;%iU<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iTW=Ck6ouE}&h%JnTd)?Z)+<nDwD@8$)q*u45}ULQMqkVT6PyNS$N-J{n|#nj
      zX`+eo*&k(GXP8o;_GRYm+qc)==luEm;}?L3coaoIV6|lr^z!arX<O%M=R?En_ASS*
      zTD^W0A%V2xwsfb{@^hvV1VU}*2_&nhl(OU24OLzgh&-`utG^`>%w%iKE;~(ALlAQk
      zQN*ISAh7hGN(~ZoaR@9(gb@))R4v<lHR#k$_rR#PO@YO#(=ggK!?l#{J45~VR!`u{
      zgqqozC@N?)o180Cou2IAW7kyrirJd#zao*uWsa7q9vVl6-Zt!(zFR*u8~tMTt$;M_
      zcjn2q1Xj+Y34|NYz~+*;gNh<wlemsGZlh;?;v^xfZ+4WPO7?t)Hr{(LirWIq)7ney
      z(CjJrU5RyMlx*V82#+EskeaSNnOh)WP^GBw+FY~a94T$2c-wd&`C#&NG+n1FpzS*Y
      zw_(1p)Kw&Bcbr#!DT5>Pp|MC^B2QtSdF}khX_Xii{4eB=q2+!;zB$JHcO<^j7r;e+
      z=e_y@>mMV50v73$qZ%w>nHHNPHRc6a2eQ5)u`$G@*QX@Si)^v)Q;(7wW%?A>U=?X{
      z_;#@7^EN#jh$-F>S3i?I(iLF@cs`*gHrBI_8_c@Nc!*iIyh)$Yqm)TSN)K`8H?m)7
      tPtsma=#pby5*xVZ>9~*l8Sb{vjr&}EcHliOdw&8PAA{p#@TMoE@DEo@ySxAZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKsYje{^6o%h*6f0J?P9P-UTnfD_4#h2{KrztRX#$~6QV5uVUNVZU8ZoxS_>yTm
      z)Bc41l747sT4$!2>GX4d6vMmHR#uGRi!JS*^X&Vcb5{R7|N9>RALD_El)y~G?-kZ|
      z?v+agK5bVkUZ-oq5I7aI8-<|N(3{bYfYD@tz-(oZw-&Vb9hFxUNMHASuX|Hq%wDcC
      zdM&8C7RE3sVPe9>8^=zJGc8C=W*{&vF^;srRK@e%?Oto&ZQpnHo36mgN>Fo}Rj2K#
      zcfDwIpLm_)YGM~uW7wO^RmDE7j-M5fN}cC4_d4EBWQt7+b?SA2B}P_;96K$yUUiy1
      zw`gLC(gu$CRPukcu!u>EqR&aZg|`JVMC~1@41uy;dFmWEg{I>-3cKC5=QoN&2M|$w
      z-Khemv-f?|Y0%+>LVI1eB~Tbaemy4b?D;gKYWR{S6Uzdpk6GJ}ja#slLmTHMKEwqI
      z>bPCC&61B$p=xd8Bgx^qNXd*1%O@~rkFXv^Uy}G#bw)*RD6gtrS0v_fb?A_t{iklN
      zTU>q|)<u_jW(1gh^#yW?2~{%@o8nw74eLqls<9o{^!XurB8)+`py%@{aMCxG=rxHi
      zP~y-<vt>lxvetj7xzD;@;CD>ie(743$*6~(??|lUOXZo(9JEQhHnAme=2ZhKkaDOb
      z-F92S0q>i{U5R_DtVX>ZJQJ{XgI>GlZg}b@WmP%Ci+(|!!`Y<?ei9h1E+3!NP2_du
      zZ-#GW?h5`-=MQ1!k02i%BKsGn{@_{)C-|EU^KUT!b4+0sC%Go09L(Sp-xP0F^R^h5
      z;@XLrw{VEL5x{i@-oi9)hrqcgNduXVGsqDsI4cVpUDoJqUL0YOI^SIA<LvJ|EE1Y#
      z9I%z(Wn*3z?`Yn;cu(^x<f+nR^DCOSID)qu^3Fw(3EunoAUrQ3r})gzgeLz=MdKvf
      zN3f|gf6d4lD}AiwjPrdIa>i00pXC3<RL<z*^23}l@Gu{?=n-4<n8p5@W&MW!zoq8y
      zLLHYPZmh$`|2k}ZhHGIJ?a=EO8D~+%b-GklyrH#~8KW9xDFGC9`Qf0|R=D$onO>rb
      zR(zU;n;Zhwl~t59?_&54OekI-<=@Co_9F;M(ZEb-lHhGvVAKX<mAYHuD6VovDU*uC
      z)^7fb%Ahh)cMlS}WUNbKTX%Pd6&vQ3G&iHUUkw}nnYZDW1UM6eGckBKv~~Xl?n_aq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%Uu)A)96dKpnk~k)u3I;))BV*X12bQIQ3l&!Ff9}8C<w|(x0prJ1iE(Mck)5O
      zGEndX_@TselVI02d&$kcIp_S&IX8d){`?K#Ikt5u0!u+Wa1Y+T+uw8fcI<Wi^R^ca
      zd>yL5a?%Ujq#NXb(N_VzdwL~t0=4EiYA^osQlQ*DjVUHD-~8-dd2Zyzf!pf$!Z_ep
      zvOh&$a48^;h<z2tVSiVkWZ7*2^&mO-4U|wZaR;W3dji!ln;c=Fipnem7EEX;3sjn6
      z>>m%h9lv+tb)s}~a^^*CuNTUFeyH{@LXN%P91|QRqq&(&zkisyQ>`PrEvGy*F$+UL
      z%Wdn#NRq&!H61YHteMa;!#r6LQZ}ttpl%g(CZlV4r!0cKELirmww!1e&;^WEGU%Q8
      zhhZ9i>^7gtJHQ%)lz8_gD6%uYDbiuOG96c)2v*MLUGDaY6kMy$HRhaOsJ_3({1CP8
      zDPxh(xm0flDqf(19n^Uy+2mje%UoGC9^`tvoTu=t>@<dGj8u&D^ff)bNfqiDDpw#L
      zD|E+y1&{D}N^5(F)k&=uwN7r)T4!RZwSmndtsChwUmvLT@fNKudXri!c#><m=^oIW
      tA834KSOu~u2?IJe3ex@;w2r3*<kfEz<cmV`7OVntZIT=plI?Va^AGS9pY{L%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO;5r=5PjPMg<5PyMDX*%0Wq;~F(w)lA!1BW6C_+sp(|ADHnx=iW#UKT!5`p{
      zGR`82#&Fo3nKv`<&CKW5`v-tJwlydWg`tS;=2fS0Vw2b5k1>zN<+_FhgLUUj9NTxq
      z(C&^x?zjx8@yLtHHR@~6YdoZiBTsnaV}?>?e#uUcA<+z6o&m#xfh1BoRAdckSY%Ku
      zvcPP6f?viDeI9n5zRwwQ?O@>eJty>JJOdMQ9ERdtrE;CdQNvj1Si!1>0z-b@&<2W9
      zIOT~+a8FA5br6RG-twfZ`FoW;c@75STnHXEeJ6@IX`82F;0KW>h8KK13S0wQk}Vr?
      z;oi9XmWLsCQKMZ|Iy<v0xiEPOJq>BXGvpmmED^oB`$FFvjHhXhDY0pWA*nQAQEX6;
      zM3;~w%dm{a8OuIdnM+rnp}!*kk3(reQ_lWyq-Pu|O4Oxb4eL|p9~Kb*2E_?F-{v=6
      CIBt&s
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%SyvQ6g`vFrpDC7THkNULaUhS!i^8mq99ZSl`eE4V>`6bIKiZ;_*sGvaN!5|
      zQR1CaP$Y|)`<Qdjz4y%5_s1uIbu1dt7)F~i@hYch`+FXFXW}6daogQ6kYR9cd53!e
      zmrd`Y6$##8$hKR4?3SsnnpU{QV0L)m)`L(A1>g3i-`-{LmeTR*+2tBTrV=(pKNu_v
      zeaI?r(1L-i2_24w9EKS5B?Yysz7!|P{f&q&_)Q=f3e~XAgBp)~759=EH9Nz2YEO5A
      zX4j)cni$8VfeD6U+J+XURO75KJK-I5GS9;#s*6KkwY7gGTvOW7@JCXLs1oov7S!85
      zkR(m)%jU6Yx59>n1;sWH3)#3P$sYL=%CxCYKcqR1S{!f+YHgLFlY>&iByWdeg|ka5
      zuNWw;z9L_GhyC0I7U(v+1q9Y=7^c{wLV}}+5wi4!80t}Nl2vcH(hKr$82iVeUBb|=
      c{&3`a96F|{O2Z6h$(lVDpny4wGo<AF4^BLL&j0`b
      
      literal 0
      HcmV?d00001
      
      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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
      W_f)?^yoBl?v}X&hxD(s0>;D7nYYZg-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TW=Fb6#m9>vcy?PL#TnYfsm5m3uT*dD;Q{rfhMgRlM9CO5^d~>S!C~;^_rVR
      zg%IMQ|DeBsS0a%#>O<AHO8rq)zu8^cvB?S^?3tZ8^IguFGyneg=U)J3a9=}A;7HYO
      z8TsP!+;xMql38oXd8by9u7<e4xZ_q0r(O*s{Ovij8HNbNy=M(ckV1FdDp&JPMdkzs
      z9>`ilx&rB*n1<te=6X#UbIwy)35fkr9vTb|tu0;`5cdgk#j-8$n!rq|@X&m08kS?M
      zNY^rJ)^mlC>%ngGr%TkRlqArHVI4#GOyFn)NV+r#frC2wF(5Epuxz>5s;^6TRdH~q
      z;FQf;$s{ko!^ODwz-kJN6{7M;JN=JUS_P7Oi>E(xEl6a4IF6-y)77@b=(Q)V<q<EH
      z>hayqX|d%sTHcE1O0%9zmlE`KT*m}X2qZQvyD}dZr7snj{z`|2eJV*)I=;lXO2jE0
      zhjAo<G_o2p0wW!V`5Vhd$#Qg@#@DnL%Bg;uoV}9}<>Z6gp-MX7`2GZ@qK<VXfD+f3
      zi3&YMN?fqJ6V`{bI=;b-@_$~(1zhA!3P9v1fkY|$(9qrqp=e8K5;z$JwOg~QSWd?v
      z5(!+zcN*9&$-TQ$$M;}k#VjV|5HFhFQ8m-98oV%;UCkws$4w141P*s<UR-}D%U+%-
      z@EljiE&L#$drokZ7R@^E<8;_qyRjnR7j*oHp9HiG#|;ioedKVyW;UCY_A`na7TKR2
      z+5VP}+gK79vgMNnyXl#BnTopY1r~A|R(KP-bJOme-tuU;BQV<Gy7{y$8=mFZqzYas
      zpPlWoE02Lz_S%Zma?A3TrJj$`?)UYK!o&%dt&h*K`tjM}|4Y@0{>WPTt7L-Cxc&TE
      zLd=gH%4Gk*fz0VGjBIi_hEe_>@VANty3M0YIK;JyARM0~$uAI!O-(R0J4(VB=VSOH
      zgf}><z5dL5jJ)F{03Prc@A-gAiP9PX3iVoWMQN*$D#mdlvyEc}nEVI6%#&|1oaOhl
      zTH8UYBREMMz(gGDlvAb&iR0Mtd6EHETlfUdAdttd{0QSL88eEKbmz7(-OE@fqfJJK
      zjE~6ZMlgPhOTJq^oFU_HRHZ!52L2KpF8_}BCdZL&T-m|g4(1D)>^2I2V|fdcZ!vf`
      z6W_w+O(F~<g)CNypvpDr*ZCRC_MAJvGLtWu%a@FJ#fSAZUB20+Yc|ZpIO9vWOEiId
      JM2X>-{{c_h+U)=U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQK}*9x6ohAEZDO@r+k@!QgVakF&z>~2P!LiQ5j?KTGi(hT*=~#eH4pv(f0X!|
      zVr}sBc4wCPX5ZKM$0vX*3_=6~=Y?I!B+YJbq_Ljdv(hw|d8J>-kCpb7dk@hP=*`qp
      z$x_)urcX1{ULcxg>2#FcKMM5k{_Na4V~cBnZc^E~SJpqMazPRH1WuS1*R;5S-~{bR
      zdCJKx$*nzsv*F}&oova=ZI9zSqc=^j-Y_J@p}?T7U@AFDH_j$EDGgcwn|m?*-?u@k
      zzrSMS)xv2So02%HQ8`}W+5!SQyiS2r?4r#x<XeCU0WYnCeO3-wY4Pl`a)jQt!sp}q
      Geg6mJ1!|%I
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O;Zy=5Pg#m0$~xvKnRG4h$b6g#cvIQ5Q{1$C6r)LJW!KlDl8<sy4j@4t4ELC
      z^f%<7mOzyUe}F&AqGxwW!6tHGyJvddd;Ple_uub70Os*Df&jy0*{EyT^;av)n*H&;
      zD4Hcv)0QhbuWeD9r8I&N!*r*z4NI@;w%!n@r3?c#Vd=b*7gkL-jn~hgF|Zd5eOc3}
      z+1#-6yiylo;+KDnA)uES26Owo!L<rE%G#!F=|(xj5HfgGFm!XNW!1D8MslWA*34?z
      z(|gKF#a#=!q1%fLOUeHgwR5zer1Hcod+xy{3`G!Qi1|3PYr0WVFpM~9vk!J1c?`pT
      zTBj}(MGy%E{TO9Pv`KSoQu!V*TvpJB3o^Q*Ac|fYT~(l<m!UtW8{%cXS`gM2FI32t
      z!JJtnmpOS&xpx?{_w*XWRIbyk&W)5D>*a>4-LW=InVduy-*s(Qil$);!`_uk!7!Rk
      z`5W}MgP_9VL!DO`#@ZS@tx4@jBW4w-NJpVzK7w21na^6UTDE_ij3>&rwTR*_?niKs
      z7R`UB-~k>|2aXuBVJLa#`Fder6zxoECxXYc%$<ohc=3Rjg|@;=a>&$}Y3~VIyeMJn
      z4PGHXr21Jp*);1`QLO6DFwS{9Cxu~>#uua&4`CExbWs+eEP!sr<a8;H$=Nzznmc`E
      zO+N<c|3%77stwUMuKvW}F-Fw%A;#31LyW7lhnV<5R{<gcEu#E2Z4>+(0(?u4cj)XL
      zuF<LLLSPElDI+jU6BTo!8$=#(qMH;2=`@LyN3PLVR)y7H82e6vOC=Qo1qWJj3p{8h
      z2TLbXxu9wZoKVxpnE8rus7Wy6=_AY?;ZAcq*rdWJhDhZj57_O&AahK*vFOGotqq50
      z*ad6#kU+-ifnlLVx#m&E)9MkPe8WIm3U|VAuo-IlI{0)3INkz|w}5H=yk5>4G440w
      Vb4MeTj*ln&kH2($yyz%hIsxZ@8`1y(
      
      literal 0
      HcmV?d00001
      
      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
      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
      Umh045E-s)AE^F*Ud&Z0Y2V+3!GXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{k-*XdH6vw}}NxDtCEtO&fi$Fy*Kd_-%5e<SgwHipFkP;Boa+_Q?OOstpHVn=<
      zBaY)MJ~-nuPdxPnN2B9|k3RTEIezcWwzP4{Og8uKIrnqU`QCH#&%b~E1z;Z1!id1E
      z<Mj%qE7uk;6oRkssk+}#-NLf_KsDC5EpclhE^s2sZMEaJ-N3!Cwp|6Lx~k*KR!w!f
      zuJ2thFA0c?0uv?Q>ju&bYO>W+3C7nSAu!r-9XIIGt16J_)@4ia<yqHrgL4A0OtvNv
      z*I6X-0;VnO7dYT|oPytW!mQUymt3!5;{aY17z;MnztqVKq$^Q=#S~(A$;Jc@3LMHr
      z`{<ziDz2w4_u3n(vnDrmR{JYH)2m6=$9?!R9yDEMf4mZ<&mI|zCf;3nUl!UjXciV-
      zXGzuFwrmx%wG@tG*1|DX7v*8Y#;Zn-atZ>k**JmMS#4JZ)q!O3Oj%O|GB&cv35?hM
      zo);{I>ax-(ZZT_kCvCi`c}eoNPgv@KY~Ry$r=yQ18EoE03gb*fuJ7DqSsUKb8Pj0N
      zb#te>zB4x7!~5)oo@d@QOfLu=%w+dQD0_i&REJk}7UwK{Ff2-Fw{c$MVsfLaJulc;
      zL`k=RUky60=kVAzxg|ZPFnCMqNBG#nGJDlXvdd=U6D{*-OL<Pv<ia!e&&E_=^<+z6
      z=6?+n&PXwPON+l^<1((WV>j87gUX)Mgjca*;TpvqvWL7Bu42u`b+8j{)6hEtb0(_V
      zeAC9K+B`lm8%ZtP=BP#^S7m)uI;yZJ8+u?^lpi!zhgl8}!FEloBWTJ%AXW8yow{0f
      z%^2+I>N%|;W?6fT10BQ5NMMvZi@Onw@yiA=YxV<w$7q|tB%k}ZJ59ULZ*#w3>UX4{
      z8qY&~rf2~w<gAbhc9ZeL3=VUr8LxzlJM`4PheJmGZ%pU%eH`iIcrO13-smI$jGJbD
      zpsp5b%;zSiDdG%nn;7W<CyYTN=1^c1p{FB^c0P<|<z{~R4X2)g2MKSm`1&rGwF9&8
      z7Tz{6j&3AuVHkFou+8VdP8(QK&w2<uW8lDKu8(*7DE9GTA4^-Tb_7~ceJen)OU+4?
      zS)W$(A})oLAL*@caz3AXf<$~Pzd~H)WFM<fFq8Wgr?{*>#uS$eT;6!Bonl)zVp{}Q
      z6lxB)!hlCi6MVzxw@Bh4{{g<E{UJTRXV@Q1BF6^7c2t_jXZW0?B>&*P;7Yd#hagOD
      ja2Y^CCo){wqg|CHLZHwi5^;E8`0&q>hu0~@2=4p`;Y?$8
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbW1&2Jk;7{;G*?0D<AO&T22HhiSeQpbUATf$e9h9*u5Zk&%cj-lmXP3(y?)ZPud
      z<B%Y6;=+k5Cr(I6NR<GIHWHOUoRIjV5bx}6Y{y<O)Ccd*>^r}C-sgR1{`~8gUjbaj
      z{Wu~F7i(72%&pyBm^anIuBg~m;hO7?Y)B>dM3JU)G!;jbA#FP~({9v)@b<SshKb|f
      zc5O%Tt-3Jti-jdiNp%p1!I1ix?{QPw=7w-2uglML48w@)4NJmtrEP8I7a7=XhLbtl
      zauv5!iPxJVMxynPF+?9ot4ewb$2TqJmT7*5VQ^MjQq3`(&4h<cmI$KrN?-t~Bt|gC
      zFp!xnodCnLNu0tk!*D@bVzt@W5>C<AIa;tQyk6p@opcA2QMDsohD(M2WTaNd%f9~6
      zifvUKp+tF$yP~Y^XE>Lc?A9FAfR-kf_A6pnkx6bG=c#yI1_Y7oyz+q8gt@@0+K~h%
      zkYY&Ec1l<(*yv<cZ1ZMal_^5(d+FyHMyt}T=;~Ws*-j7|6Q4ABongGk&Le4)_Y>q?
      zRy#MvaHcm0zckwJEJMszJHny3f60`#lzY5RdgHiCwj9rNb*-FVSuZTDEUgw3xT4dG
      z?Q*9<k;!ejFRJCLtVu<6p{i~enARS=tqc7Q!&s)^^<kY`HFHBb(yGnqju`S+x>RFf
      z;5xNyO{j9kZtU`k@0vax3=v7qm!cedC<bm&eMxjp?HIU8Vj4pC4?&uiGO*B|sq-yC
      zmZmfL?t0H#2QzWJ$8h0z&PV61Rb66MT?2GlVnGcVRd6WS(&7!$I;Qy{I+xple&3Dv
      z3OU+v#=t7W>43W@UAZOebfoDF(IRs94!!B^3>4|qYF@cvSLL=8jsY?@v0*ozint~9
      zVNds5E|;}FoTmmFKm;++y@Yc(0o_tVbmAjOBBjqHy{Bky1gGhLlt#DcTZEp8>>-}X
      zPCY{UColdC{huNlu!1Poh_#NhG)nu?L?5RSt;2IfrP~J2;|2QmBF#l<G~v;&(F~&*
      z;|V729pa_m=sg0>9`xonJ!aC6378BoKLzQdP|^il{NI{*DCw1_&{PX0T|$QP)!yew
      zoA!P<`xui`kMZhvh(#X`JnS;b@i4ye!!6^7@ft1@h{0?DX9FPFeTD44)@}Ev9VDYg
      zGVpppn#LPFc1=?g=n^J$2}j>N#9Q6e&pXmgw2FAWFKZ@*^+hOamdy7p>u9LZ48QDH
      zf0QA^4b1h)>)jA7Uv;qBdC~P8Xff%jorz_CM*7FDqJ7=5IMy=dW=KCCH+Vio$TuCV
      zwvdIstXv4|+fddbmI8wY={Z5Sg6_{b?>0Fq{re%b?>$=Yosh?E&zxlx`f^u7xIgsa
      zuF{R<-!=cNcRhsrs1NrJ?)K$wgm9nq;THQg;ARN*caQ4dj_taa`W~zgLRf!<vOe^>
      G_TJyw!n%V1
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`T}uK%6g}f-+NP#`e;YlR4=p_xf{B743Ti@+vpQ@e>ul_<f<LPuf*$$-{ix{9
      zYDB&GGH1@*d(S=h&ga+r2Y_o7lZY^sY&A7&o$g)L4CYT_=#GSMb_u;vpLmV<MMDZ_
      zlthdnH|8^LI$YUi#~O=azz}!1B^-uA%k^y2o!CpYs+!+0#1x+hhJ5R{uorkz**c~h
      zGVJ{;{Ao)W>6!GUB^?>e8Ca7caVwP!Dh$!m<$x5ly)>fOG_Zk83I%K@vBhw{dMX1u
      zFv$LWyI1e0Kt2qt>z8axD$$-!EaCOJ<%I6tA$JDclbSCdW5J{J8Op8ItriQ^^Yq-Q
      zHxv!2RSSQ&e5E(UU^JByUd`dYFGxNf?jA+*7o}f|5yp|A8$%LnA*PTHk<5q4^eQNx
      zC00R%Zh%pKL$3US{3~{!iAS(cXC~CFlj;MFUdMsXT;$^rM`7M^c%I;tFikP?jWeXa
      E0S{?`+yDRo
      
      literal 0
      HcmV?d00001
      
      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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
      B#FPL4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{`JEYvMvDdod2P{Fn&ZhVHANd2ldN=oS~8Mc#UWIIcCXNmqRB^VPQ
      z`~m(b<DH=o#$w_=%<jGC+&lN2yFY(@{{i3$wmcLFn~~0g_WR!6v%q{hlVLKHS<sVV
      zo@VM?_Bqw&l!xL!sQalJDf0)Fu#m}AiFhEnMWPQo&k6K~P-!PRGeVnzh;v!u8SF!Z
      zX>%fv)R0i^eh}v(h=q=V1CuHp?J&Blv@%Z#ON~jmIUp46fU{UY)x%9fElHyw8AW4J
      z{q|d>hdvfjBY5WYNat}(sCTcU?UXTvx(^@Agw@9NoaSH_jQS|!24TLdw0xJ3j%C^x
      z$Fa03l91I4_JHGYvS?0JMtIcyFS}WGNoeOu!5UL*G$*wa$}c{K^31TwnTH3wpuaSY
      zm$xs%QxVBvPYkUWTz8P<X((SRJ8peq*^liOu)!jyctHiMp@eCUJQvNNYL&ZhVy7yM
      z%yHCVW`W<8)&=IjVX3wK6)RsHZH>=4*X$KHdCf%~+~QpQssOifha)b<U2e>O3+`c^
      ou?@}@IlAvI2pj^GT9;V)%#fW7ZZe?f8v0CO!nh&fp<`|S1|g@Z9{>OV
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYTW`}q5QWdgiPI+OjY7GUyILs?5*BYrMU|)#C}1w4Av{*wbmcB2Yh-UK@t=4>
      z0wM9h58y{3j<+r%QubjzGoJb8oc;ah=Pv*caJz|`;BIQCQT+Pt{^Q7f{-j6Qu`Z$m
      zmm8Z7n8(bUs0+5|^}Wf>#5i-R&sznnh0cu{4|QIc%)aYC5y*4FQk>bsDeH!6Jk<>f
      zD31t&v9@gK3&Kan8n-97+D)=Njj~Bv2^+*Oj6L4n84Bv9pcVqGcF@7nA_NyYXrV1w
      zNsQI6rjsL`57g0E^G}kEC`C~a^Qu^PC#Dc=CG!l;8sDWTb@-9H1sn4<2^I_O5^Ym=
      zLUrAKDRMy_(v`1-=Rwfjp~u!iHqA%+sVU{H&u+W_L7ghxp`(CLQ^Peh5Hf4}Y=ITp
      zWE`+Y>%5nlJ!8GbZ@YKz2UdE)cdUK&1M9q(J!+qzha8S^k+qGpc3fgqo;EJy3SoSA
      zt~`V8RnV}vIm2uD*@V28|FOb<tPq>zm8|QyQL!SQ1C8D{tbO6a8cJ!UGvK|)bbQ>X
      KFoK)D>(*azjDSc0
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxZFAE`5PmMPE!%Mn4K%bAO4C4*1H~oKSJTko#31U#A!gD7pJe&4l~E+kNe<-)
      zbUM>t(|+hM)6TTt`=dJDJzXNFjc0t%?cVOQd%L&#`=8(c1aKQqEX)WjjlxOOeU&!%
      zSBK5@L6R!hOCKsX9{XO>Pu)~nC<vV0cMsiW;D)1SZ?G@D)Iv$%T&`^gQ7GL(AO*@V
      zRTQQ&912|OPSYRJu5LI7anKSd-Sa~~T@#qK8+!tUb~Kb#%woQV3aSEUx_&6PCkF$m
      zo@U$&-N<u;Jy-cG8)YFK`-#BviD0MRg<{SnGVL5Ec*Q>9^q&kHdld-0U4w<PfHm}!
      zI7;}2#L<p|NKpywt}X(XP^(&elNuT9xPF*!(TxPEB!1u9%>;`RpaKajO!=}#yVgh9
      z@s>;#wLswd|E%(e>}3q;YRudY{P<*6{jnQMO>Gf%cD`UYa+1tIVBQ=*h$i8X0xwP*
      z?NZOF`+=l5WiN_fuPf;aRBT88_|oN}a$j-BC=;#L%9nl+urt|ufpk^2pJ&@$4rF9)
      zmdl!}cjyNEoQNUYTI{v1JPN={y{oZqCkkE%I&#^5;k<Ah4n22tGKxZy*n{n~RN*t{
      zz#UPtccu!gRV~NKtK+j#Q|o(!M5;rnT8-!QSeb!<Y3TuveY&AN#grE;=gKPmoZYMJ
      z-lrCaBY_LXPtRATq#XDTr=4^<d{UuF4U>QdRG>)ZW?j+V*kCNFh$ok_voo3WdQ(hj
      zde|WuQ!5BP9$SI)N3EWk@D@*^Q$q(2EqqI<<iqaJc&pG2HkFE06^}7*VO!v8ZlOO1
      z+fmw|#BrojIo$lglX2>EC#wBuqCDC0Ig^X0&gm^?DlF0P&C<U}fA9>_dX4t<ZJ>3I
      zq$VMs6<6M%_A6~>P^Yz|m6vgb_O;9aXYm$EG;}yeD?6`|^$c6D-1rUWbMLCwE>qa6
      znqe`sG7QYlsc_)M<3#R~4JT4s5vOq3#MPL}rj&8fcl83^0e@fLB__s;Mt%>Mw0s%w
      zYrKLFG%n#ojmwl9+h4;+8n46F*f6+a@P;|RY4BsCzh$s#^q&~KjaAKa$KYLqpW-vE
      z|J>y9g~2cJmDaa#&*0Y@*Kpt9HyYRRz+hYB1~UC7BUO$b8LixvN2Zc>YU!h2zWW1@
      opS?l%FJ0XN)p3i?xyN;S8o-aF`H4F6^Hg=~$Gz^6#SC`-1p=UfO#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95S=X)Cr&7(7fOLbX@NR`Fqg+XRYgUX5~WHcgy_@8UR+08ueEks_1Add
      z1NbP!%&Z|sfTj5CoINw1nVj!GzJ3FMH}KMfB>}r>J`d$(70%u!;rq<0xEjl{Quc$D
      z#aR}Y9$Xi&I+GVN)G|-Q(R79y4{iupU$95o<VsGp65u6SS(p+}*Mi<h0j*M1M@Acq
      z3BiC<=zC1{Nzg^XiOlk9XcElwG5j<dyTHTX*yNRfwMH&6oVt>_>!GSF_A21uFV*6U
      zlvNA+*e125v*ORLCTFrxT)GvT;_A>UDWDxh{O~l1m6wAor$L$iO^$IbIPI5AYj^ZW
      zdT3)*63M47aVJJ!X)e(UPNUN(q8goFH>t@nq72e;<U5%Y`Xrp-ym=~MtDcwt8b|h>
      ztWC1$T&CFRyT(?SLd{|?8HqyXN7GW-3uXJg&p7tEESwhvylzyW>Cg!p_cUm_XDEw8
      zB`yOO+?nT%0z1L~wKV>6Ob!yT5%gSV4YOe}e`4k~R>v7RZ2Mn6eMQbfQ=;wgw~Q9w
      zMB{qU0y1zLe8x^4ckB2jtT2BIRvB-@8sj=_FmA#f#;qFf*0^2Y->dOHJYd~UjSt}w
      e$Gh;DaS!$xpTJYbXK=t6Ko2_=@EqSu@Zu+vDCK+r
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwF>b;@5JmqGVh2JbL<L<GQ9#2gp`^5w$PyBTPcYcSV#}=2dY#;jf&*|Ulm#hO
      zkZ5M6_<!cVIh_wj0PlDS(IU*XX%zoBReWSBHcqtIFU$LFp4N$DC*vfwA||SueJNSI
      zV=W=tgnq%_tV%Xot=5I4jxf~X{=89THo0yrySy@lx5;#QHC#^J)GP?yq-ty`pLr>S
      z(XBAE%ML;>Hb!hza$QRu;+gPz4}&oH4-yav5B?hfd89`Kerh4S)+cm)?|Ow#hF;M5
      E1@?JbcK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_i4SZYGbw5Y8C0Tlw9XZdoVjC2UiN6v<07L8~5ZiHVuu1BGQ<IKbmY!`TisVXi
      zVgoDb%35e>SD=(8r3D5fZ3kUCf-^Ua(ynV$y0v91E!*0CwQQ{0+HL(<yN_o7bKld`
      zv#f-)Yx(8rzWeSy=YP&UpVxiq=bwIoh_2vK54o7a)5*Ec$f0cKzKyZYp=8#WHqtxN
      zk=dDeG_yM!$r>IiWm@Z8wQVw!O-G{HWy_dc*?A@&lEDH~c`Tkbux1LAmkc|%_p1-1
      zkxVwvsfVdFnuyObRSoZp9E>PLyJsS^2EMpA$CL5wR;K2bHzw3N22y>gnBk)ms?tcK
      zRZJx<tz+fHRIQPh%9$#M<4NPDxdW3%`sT=F!e9yxr=pR>SR@^ncWbgVI}^_o!Y`&H
      zfGmq9Qb`b6-O_4GkccFwJ9kd*gA#fKOT9*Q6!KFe)qCio0>u~836m!l&&;MWhHP4^
      z(Z#e%2(4xECHjqn@u;D+>&+P1zEmQWhI}n~?Ww7r)-l<<PNPeySwNcW97;BqF=?Q(
      zD-us;N1!{|)1gtD=+1`^Z{9hYo9@(Ty^!)o5;?9OtQbfov(Tc0zsy+duhQrW+K6+R
      zQmZQSAk`wKz_dwW#K@*$cTDS65L&*+TG%5%yEVFou7$Ql56Xs|YA}tcb<9IBprCDA
      zqc|2EPy%MMh3d=k*rri0xnaTcVk!L^m62QK2Q=ED<`-msNF$HTGu^0>kNg5)M57+s
      z?4g}ZwTgi{`rQyEIo&%KPsEJ0m)?Yr@S0>M5y@gcEY=>*h=qrJbQA3sOTC#%w*+^P
      zfD&cJm_~c(&G3fE?5vTDF|BtlwG7Q^d&>ayc<ENAiZBj16^<$6QGDMbRDZ32n7Om(
      ze8k?0Ezwje9g8OsBf^>4NYn_=L^9!IDjS|OjAS@|U^ZbKFc48<;RPcrB1ANrq$q4B
      zn=)Axx{JlwLvW;Zc~#z$%*@TsrqUp_bJj>hfvM#7`KU1~10Tg`H)x7N<y1j4Z!7jO
      z!$V6BWTwT@^K>nCFdf*RX*$82`$|YOZO2PVCcmk<xr~txLyy+_-qc(&26L@(?#lD@
      zQ<}0K!h(Qpc#5V*bA(t|4l+3s-e_ueVO!dWV7g^U{m=B>1&t2UA^7g0cq}`E^Pe%|
      z(=!m$6+>us#Sm+~v2^5+gfvK^_L@82q0!svF07fq0*?iG%)<*^3wU^^;)#SH6$8FU
      zqj$-|@@T?{q-9nN{D?;P(R*cS8g8phu3=gH&BgzX{X;lw1i9a$`#to2rZvuRzkHQO
      z572|A0(&FT{nKgDpac%f*hKASND^`nY4kx^?iGETp{qh<9hF^z(@RGY^~B~1%nf@Y
      z>F6F)W#t$ST3V}6g6H;Qnb6yLFp}^=<VQ7nOmyv$$!%#dRau_<{DekNs?Rcs&!W3W
      zB|>H+>FhR%CMH`ol#fp!t_rDLsl-A;osYL=@6g_%A@hKq*68E(2`_z;DU^#1hVmeX
      zG(a=ID+RxW8M*c%y?PdMubyOX<j--LP9=r$a~eHMpMcp4QsHjR|A9t}v;@c|3;`mk
      z8W4vLM5Y1%N=M*TQ$0gNd3TD-qE0oxa}us_&`9^R-s+)0#75_t7t4{C?vADr7y43j
      zhzl`A!%xrCXEb_|KFd^xBhHyhUn)5jpPn-v9r@R397Wgkl*3s5NTbiwAHzYSYCAG)
      z9(eIxqNy)x^l3Wnp)WBt*iLH7**iBiWuz^vUivcAMY3W8Y;;3Wf<8J!f2z?}=&R5?
      z<k^)@AzVo{beS_&7YVO+o$xaKxrhGD88DQlH2ONd0^<Tv%cj>l4$6e97Uqv-$VV^J
      zH#K@yHcF&1JwWo^UrMsMOQipnM&G8t#`gn}S+gQzy4*oIAIn;ox&DYGp_sV?j{mpx
      z_a6E?IYdV>>0G1Hcj&uT+!Q~SY9hhZ=sa0d3gzbNv!eSC8vP@^ZVHeCxOU~PJ?VH>
      z3O5_k8Ty_^|4jb^bAafhJ9-g75gJ>emG9HPdFTgVUU1yYX=wEC^dG1cvAaK#jchk_
      z8GNt>WE?r9NaD2*^GEa(5B(U<UBD?XqhS2cf~=pT2&g}zp9zltl7i?$nSP)CN2C9x
      zp94DzqUG3Yi({7>5s`|S(Gd9Ok`7~NTwZcJ&lGium(d#pBz#CoqYg0aWfW1B1tA&Q
      zS6`Ra_d^m*keIzGE0(~)@-AzdgIZ%7HBNI<%@kR=%v(X#ndmK*%62PbyAGt0r_OED
      z2$4~Tq1G4T${!(ExznndVY;|**>ao0Qcrq%Qfx`mFyex19yz=;gGr1t$o;MiaJi&V
      zab+-98Z$q|WHu(VF<BYIN_>hOLV?PcYIM6QRrxZF?jW}uW{bwHlF?OmQ;Cw>VP<B%
      zx$<n(JV>Th{ZuMR1NG8O992e3(P)sD)2xwhZAEoinl<LJ!<$MX!lm{jn=od5g3}Cn
      zD1nQ_K`R^bH5y;VR~KJ1Fd#)R^EIG3fM{T6OUtd1#mZXx`^`nyX?(qOF4alHh;5si
      zLgKwyD(|UO8hYn`Ik1$pwt(D%J=mL_F|yF98#K&`47x#lcdK8iy47GDOEWX5kz_)C
      z)fX9zdwGPZ9hCs8;Y0E4OgN$#hZR!cyfUx*cBkgjQDY!3oI=HN<^~BI@XVoP(n$9u
      zBAJYV2ozkINog&rmlCw~rTB-&1y7PjMg5}XRljIg@Y{@)8dcyKz}o=1@E?({?G#nE
      zwLeF}PvOl)tMLpdikm@mD=1t?I_7H3)%dN&8}>;<4O)o(6tZZJSv1#x=9(9Yhuhmu
      zQgDeH7^%JyEZR?Cr;|q?sPu!vfP=>xi-(tj_)@EQpaZseL@XX5AwAs2LiGz&-o8X(
      zCh)x^FUA_Bh8v-l5y0IEv35bcQ4rnjU>CC3mEl{HB@%jOi(Q|^&M)l1<T4lK8Tjy#
      zXdJ|EbrAI1I`UHswJQ8*s4arms&~=5QVpE5klt+o@m57o!&=d_sdF@5=Y+LkC9Ehm
      z#?Arjatjuka|>3XoL8<SI0J(5a}d0mx|Ce#$1Q@_6)0|#i}Hu>R)QUP17hf{En;7X
      zL5h)2w11Yi9Hnd9U!*OIbRC`}9pfkIdg!um;yJorUbf?95HH)?I-a8&M9UpZGz@W0
      z(@o>SU8iWYeUWYnjxW;Q;B9y;(!|JVij8-iqN&f==D88BLg?Z=l!Y12;R@y;b<jMn
      zGj2!Ee+Q7=g}(MMEa@&9L$|euenUyqrW|p?Hh~E!%?~MpxKo*?87O5BjyF#GFk;$I
      z2}{DSKt3_17y#e!MJnSHGEma4mys>-aC=VR7zCCVB`{vLx1X>@lr19V0f&^sB4v9K
      zDc=n#?*XcNshW-;pxj3r=)I8geW(~8fWJHl%n!iC@29==kdiX2P9tVXxt1D~Y>e-w
      zY!VhyG;7Ir$davdnQTk+Hm37RV;_d;$j1Ql!(i|TV1AUs^eFt{F^36tT5zguI4ljc
      z1ww@MfMO#+1ncqWn`ppuaH3H!)ys7E63u&7xZ-h;`j}!dXl}O8wNdVjKpF()mPnml
      zqoiY{nMO&+$`TssPK?Ubx?jgg_MkVnKrL9`npS{P0QFLZaET6=t$_9nT|%E!(5_PC
      zn`~%JFhvtu6TK57F{>uJ8zXU{Ci+c`N&x_!zXc-&3Ib8Z)B@cs(YseNe-<(Hq=R`b
      zhJu8xmyoTOkgb=Hr5A>+<(NNgG2bLQz`yq_()(1LmG@#`^6NfO5RZdO<x5nB&aQ<{
      zBNjdH0J+K5&?Xz?CL81?8{{S%<ioc0%tCi!JwEZF;D?quk*Vv?Im{#%u_bor%*1DN
      z^4Xkxwwd_o7*0jbzy}*Q&E%0^fcuwz<=j7FA5aXE3$j34eFL1OWEIaW(nkxk)>lzk
      ze9fWlfUWI-t%HEAgMh7rfUWJv&(HC<3pu_5j^Fryam1C6<pFOT9e!tJbodsc!?zuZ
      zZ?r|e@aXWAb?l9F+&Xq#G+i*LkF5mt9f11ouN)L^t1M6p@G+@1o8g9i$EX%RgU6^!
      zoU*;6afyDnR5C4`<e6noV!Gz*sKLHRYtZ}FqZ^m9(#)65w&t4Y_fRKDTx~|kJE4MC
      zGyOhvQ-WDsZCxOYljno+L%{ekVEhCye)dbiShQh808F%@Tk?xiL?cUd%3T<;A=GL{
      zFJ?=v+fwVc)VeLTZcB}8DpTr`XTfd_5x*j-t8Ze9B(uSZt*DBgKT55rik@Gh7nr)s
      zLS^{!o|E*sr<0wl_3}N|)#hW%M)_pE=5hu=tFu3%;~Sf70y^xzD|U7wKzVo_73v
      zqsx1mwu~bTcy#Y6`it&z><Wg;m*}rt)a?uT7U^%g{qpl#x5nKSC0&8z^wW~A%H#BU
      zs7$Za1B>)eT~&HjRo$Jd=<M4|C%RVQr7HIl#EUogQmt26YgUIey|Q6K4>V4MDi-Nq
      zyDLI|8T_zI*RdnFp$0GZ?pj^9cGsaJ)K|s2LV8eNHKW()p_vJ+D~)y4=+!b)o1dxG
      zSIbOYex^>Zsj8aSYpcBThxNL{U3$o`>%#n}K(P$gf8Sln5YhAa+1k4UtOs=O<7Yie
      zKfWb8>!Q-9#V@2ptL74`46Wuevjkn{EQ_dYh~4C24+XfKbk^{PLq9s43hLkh^>7vS
      za*zgjHU7M$<IgxXl;Ar2y#c9~>*-!@qz`hKKEiA1Np7Lz+)B@IJ3Y(mVICWBq1j2V
      z^5ygzUxE9uD^aao#pUS0Yq*P>&}y&eYw_02JGh6(c{A_lt$YVx&+p=1ehBvok8&%2
      zoVW8ywB(EU!|xfsfnVk!F>N5L7X!_iHow9i_QHH+PI4it5sai{LN$V~<?Mq8g|Q2F
      zxX3euoMb=bErVnReI63KAy=Qu7amBrS>+2aWLytT%%C2Gq+AKUKFAy5RnUtcQU|#j
      z+R-38P6bpd;In6;CpUcm1f;ITsFGfwZ$fWwR19CHm!Lg2`m|SZt1T60kY1w`(54&p
      z<`3v8Zop_YPUAjk*Nro&!9B}G7}anSrTJovYN6j5=-o|qd^Jr#`)=ut`4YR4xfgOt
      z71m=mG9A*$jEIeN<hmFPR6#${agv+xuX%~rp#T%psb=)IQ~4gHM$$5m!c1<)9o{X}
      z$zyamkE;k{R_HysV}QwYs6GUL4;GL(28JQz`m0|CmZ}R)SY<_E-3C|_fE59(Nx(8L
      z7*;1N)4ZeD4P8le^%rBK$}Zlo$eLNi(ReEvC5!lB;(nDy{JfE`1VNU|CW}E78WaYS
      z#SkO$?3*xS>JoP$gW!{STcJ9Ap2b<e&B3tNR&OoX>=P@;eT8M^7@1Zs40B!a7}yCz
      zUt9a7N1Bf;@}@!_bNIh09CYw-)RHz2RF&MVghEw`kqFfT&oH&N7w=+YdK;R<zIwF6
      zeKHzsz-TbfPF?cw?d0P-VAgjkmZsG>^HQ#S)veM^7;Ui_y#=C3VHjK&c=#CkTIE^#
      zskT$RHP1!meLf6Bcn4MRJ8?UAw}VsAR$ve<?>42tAPi@l5~&w%Z;CVwP9l<~I2Gq{
      z5B^qvFZLe6nct^)m{(Ss%|pWtpzvUXvF#S+2~d{8{(O|*56bt0@`IrK0msp-qzpPZ
      z8bL3k9T=5?+dvVGRVt0iv$!-Lg2s+QV;_db9x1Ldgl9`*Jg9gwLh&ztHjjbR<KXlJ
      zI6Zj|PB++`Zd9CHjC)o~gICL0L0-#AhnK|y(@D)1+PuxmIjM_p!X_8*<X!m16)$=<
      J<~O;^{|}b#G;II?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%OHaZ;5dOC1Ay~lT3sIun0F8~_3}9kRI2BFQU_36c!IILFQuJ?WA~Esc5Aa7B
      zXIm0T)kCMV^F3x}+pq7BPXH$<C801B2F}#r&%QA{?Hg@A9*h1BpZLN{BF3;b<WJnN
      zxic`XyF=0Q84_LqGwhoID7Dsz4}@{=Sw8RDBGlIzl-`J8H%hy7ZP#nNePI(N(XbrL
      zKWAuGqP&P*6kf8ab{Jxp<d}wvjD{4l3~Hs?Nr6_-5Jy60c@0UdFyu_j5m(buS9o`F
      zUP4T_$L$XHEP0+6WB#KxVJMpa-4KnR8VEmJm!Vv#MrVwyz>p#SVsM7iZ_NTG|Maap
      z^?IUZ$tm^a&vPs<A7xrgrLU>bLt9dW+>xS6ND66+t8{uGhUDdH@6c+8GfIwT&|j&f
      zV4Y$fF^Xpt>m+L+izYUxauCX}i7h&jLC}T;nQWv$$2JP{HU_;V7O%Y__d-c%o(PH;
      efuR->=7u_UP^5~SaapWK#jQWY^lt?%_I>~r5tdT`
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95IviFjeAQAG?Y^ABn6V9J|QBIn}*hCn^bX#Xe4B9l5OJR+LdF&ccDBG
      z@xTZ0QHWV95LHO{VP|*d%-J(O`}5cL9{^sUoJE3RbLd5tzAMJ#OA(GLHQzgPhEX6w
      z$M>>GF|3@6&!XZAZ&+#e&SgJjSgLWuvQCWlk$u!Wt~2EM9At%o;|*Uitj<xLddo7K
      z4TeSHABVyVJHm}*4jMyhxBPOCA$?Hae}Blpy3}bl%(l&&#(~Yv{g%->O_E|TYz*X?
      zh}_T?Uqbs*%D@hN-~Hr}rs6xJW7yni9NN~Y)vh1g^$#c9tPzo7GYxKbjdm;|SM9rw
      z=Y+2rlEqSoB-H$Y)QJDOjvKg11OELX_Q=1G4C}?xzauVCM?ps#8P&U~<2JTvkb&$)
      z!<f3O5ZgMgL05=-I_@j>>`b((KGd;{48t;aJlTjYdNOE>o=aEex!)IVM+A;K&ytyH
      zEL=kpB^^(YC-LFP88dA0{}@SbXqF!Zefidjxv$t<R_4)zAkFlbGbpH$Xjed%B14Y$
      z2`tc=28r{F6#wLxC{H8A`IRgAG<B{bPslZ@zM-hTwJFvo*qGwh1b3#mJHdmmluqCg
      zt$Czqtr8t4s*iMjhR1PLA!yzi*&anjm)`k?;=ElW5KtzP-MCGuBoKD+l%9{K%#9-%
      P6-Tmz>WnT?^v{0-bCj4d
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%Wl&^6g?9sZ62l%(iBKbX@SthNibEHAT}UYAv{`jfy82xPE!ZhZW9NwLOjHR
      zPv8f-VgV8Xi3Nf!AB8yMI8iAj$kNQ2@jdsRd+z-F_4ONoHB=`N6Ueu`p51h1x4SQc
      zUAyLV1LdjCZ5hZ(#06&B@~O04>9y>8jkanA0!cRt5?HP2-_Ptl>B*MbQ(j=#{lM9A
      znlf;FZ<y`6z{HN@2C5@a7*DwqhLMomr>2H%J`p$_QjUty32!)_6WkP##qk+OBF2YB
      zh5s&9+7gK0^0!qQ2BuA9Fe6|TOIs;Wnu!D^G@3IpiKIsJCQ?WXOxGMw)q8sl)!CE{
      zSLsIlrgXPt$I<8LG9K(YU4g~gzbC<VGc6SiI}s=qOXIs4hLV{gbI=^;^*`RoeqHbW
      zXaaK)@AwSVK~K6ApBv2JkKd(7X_|4_!~zyIx?<uymNY7wxPWDv=r`K*cAIZaAid%D
      zI!#3ZG-`IJU%$hv`i)_QM1v34KulXs6w`)>JMHG4U_=Hc*Hb*X{2%8&XMMqxRqkWf
      zs`Qbys(s`>hO9GO=g9)<jC{bMJ;W3?ki{m>^41#gaSnN&m?^9)LZmClLZoXOtjR8;
      z$~Jc$m9Rcx_5(o-y3|B?`8Z6iMQXu=)IuA>8!h`NIeVPkI+08-Pax-xlMhZLui#=t
      zeoLL&;Pvtkh<B)#zeC)ue8wf+#vv963xwH2%n+^;<_?jFzc=`iHfVB*GXb7+eZfh*
      mWaF<`;5Duhui;H7VR=wy<m)<0^iVLqK+p5cBv1}BR(=B%%lB3Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%Syvg5IvKot;E#EsvB|RLVPR?BDl~ZLbXsSUHHiUHXYh4$xTUa#NY5!TnR4x
      z0KdhhYjvvPPH;14&dgzE&b+)oJp<UoN*xYiV{FPWPE=7$m7Rox%=Xf0!YLceqqDo1
      zr&edC4wtZcqi$80C^HT(N@I1(zkNbbaIRGnabAf2x_3&Tb3&t&nZhb#BbAg~?Y_N!
      z1otNggj!o0ZI20+t?h{5cCrzBs9?c|hj~J?uMH2%bjbOY8YWC=^|M$OC|M)?r|8;=
      zE(n|bf7v)9c$Zn3$K2Jkk!ye0-JLnbI^;Tel{iNgHNm<t2Xm4+vnvICsq71qV0Gsa
      ejfXEuQ=%s#;1Dj_2qg2rMOZ{j7-31GgXK>@a$;ow
      
      literal 0
      HcmV?d00001
      
      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
      zcmZus!D_-l6r2|mV`HjP5YN3;!7e>pya=8`6)N60>7pxfQ<9DU)l<QPAK*t7-v*Dp
      z%)FTgZ{}V9&KCf07=-W$!=0%`mdmR8mUb`Jg*H}|A$-E%AWu@{((J@4J*dnQ+V9$E
      zJ14YW##@5FD85vL79L^*XcPL0HtM53rmEb?G*^VDq{w8xm8Ew2Zu)kwE5a!GH+)8j
      zK8w1{)Ka?>@x9cm>*GIz)A<1~lS^d`S&2pi!Q>a6A2vKhjBX7~(PfOAIbeQdMd&el
      G=-&VV0y&BR
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO-sW-5Pg%z#>SY|)+*v3Xgyd>jukILp%99o<UUOoyAl&gHvTUUMeyJc@JET0
      zR6LbsKi->}H*fa)=kp7|HHHo>!s%01O_G$$@|Deca-ZwWs3Hs;*o5KEAi-X-VFJww
      z?HiqGb1U3vK91$O%U8-p3kMz?c!bty9CtwQJ?x=P=teqIi|S>mibr0iiqMbpgwvP{
      zUE@E}HfvoH&Z3<b!eB~pAM&b5)J)eR{=f6fXMSUuPg={IgkIgZd678U7p5a<21^#;
      rUVO+t-{A0FkcF<Cep7h`8-e78q5zz1vvGvJAgOCq<qt3rWa0Q1byh-5
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutyH3ME5S(>POpI|tARsE*gn|T!(tv1?QbZO)0=d69CvwQx$PfOD0wGc41NbP!
      zT!g4n-0sfKYIgR%f4)`#&e8MW2#%hzdYGiDEMHZ%9Ny<9t8_6LdvFE4jikU`s7eWB
      zCTL!p%v3k*^=E^a={8?z9}VmT@DK<Z{XyJ<APlgDrl1{}OyAWnb6q^Dd8!57C{I)x
      ztHN0P*L16;DFw&TMhlbimB4?<>mt!pV@1M$=V#CAP4Pai=AD9$-Mg-Yj<(rp5lzWj
      s-aq~1JNdxwJCTDnW4LBUaB;!eODX_|<T#BzbeU~sRrv?lCvtG`3xqvFV*mgE
      
      literal 0
      HcmV?d00001
      
      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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
      E0Pj)-t^fc4
      
      literal 0
      HcmV?d00001
      
      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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
      NRnF8w{yxJw{{w7CQRM&t
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#j-*R<?`KauE>~P^8^%DJWhGC=yLbDw1GG@NL;nmc{M1+1*x+f51c^
      zG`{&OG?9`>B5#=Zql{;!g)V(CKFrQJXU=@*JD1tte}4P~Fo#D9x)^lZtK}`%41%f|
      z?&LSPUw16N?pNwgiTlNhS#msk*$SPCry$PIziZabylZ-P{@L~}w?YNo4AasYaI5A!
      z;hX%r@6;Wa+r0GnwZ*IAaub3f7E~REWU&piB7zqfv}!Bpnpx%ysff!)=o1U_>2`?_
      z_ZiMdP9=a~%6;Lo;CN2B#ITs|^eIFPEy#!^3X|Dnh_6&iTty5?4ZTPa^>k)a!63tA
      zoBXOvX`1e`Z`aD)3s2HjF@R(bh^PhyXN7b@Ll0CTUDS|(#?V)EJib;dZ*%{-x$VlN
      zE0*bQn!Y3SmN6dgI01uE{Qp)_9b$gXV;D?lA}KaIMu+MN(Llj9hJkiQCnqYdBduVX
      zVW@o?DUyZ^bcP<$5@}|bik7@p;b?s6R#0JJMnR4W&;hI=j|ql^$6u{_L1=mwHNe1}
      zh8ws^texQ4Or)Z*T8U*|D7eKi)&aX>2GPzKxTE1N?lCAf51Z3=x=t<XD&|oT&0pvU
      zcbpncNkUHKaRK^*)9>f>7`My6QK|VBe?o7BVd7tJZbqbnSsI!ctuypZiFu+2oD$O{
      zcbX;IyJ+>|9C`JT^p5m6?P+}<{n;ZVj3X$yUq~EaU~3;khkAAo!@9AD5k0qu(QguA
      zjJ}r%A1Kjn8~xb92zGG^FEI%h(<qY+=uK?$y+RsAk(`*61S`QMEoNM@9>)Y(Cdn2j
      zc2_08w{#LCOHTieQCcGnOck>YWS^2UY&0<Y1*rqfZwa-5+xxhGXnds$T@WOPsT9C_
      o3h)6*d?ec^Wbs*&8*c))$Y~UOkqSot9P(Pi143YUD3O-`0u}2#!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNOK?+V6#o9uHn+)bsR7EPibVn2APG+eTHcQuS}0g-DJpQ2+@`nO<i^~aLRIjA
      z4>m5CQD>ZS#&M+!7XmYZ5y!y=!;Bj@F5S3r@5ZH$-~Zp6=F#fH$;^NM$2s3Q=R1%5
      z^!Il^0N9ET!w3ni%@xYYjBU7X(eS2|V{@)&=1-NJqFM4R(+#6VplimMHIlYb$R$V9
      zGiJsUh!p2V1iD9*K-shGWKDHI;IXVZWt45Nb}66@W^AiqdHV#G^!1Mmv>bM_W*EA_
      z^2J~xh@w-+QnU-S4Jyrc5L!nVZ4vI4=~#{x^uj8*bh<eLfz^GB``16NVWq$dGLV>O
      zATeu}T+1nFSWVZqBzA9?4)o}F98b{WVwu733IOXE8SqWi-}EoM((okxY_vD+<jq96
      zWJ@#abUcNpX(ngV%*I8`ECL$F27#5e6peW$tB^ZXw(P7~((sHxc*?TPJ;`JQ>(MW%
      zj5F$ba9?FW67sA-Y@vfvGod4iElh$@ESiO^z~*`gzc2>s{cCV!K*Kf?nzXI71lu9O
      zb~a&D-KZn35kqP|uVWW>vyME+e`MYCEi_AeEWkC5q0HtJ?zB_#3P#@4uvb8rv?X{g
      zZ)67c>o|ae0#RllsM@)vO#G{t0}&j?(J+oQbc`>q;~0hr%SQ83g{*mHbc$^BrTSA+
      zDW&5$h6UQ)a@tktlL<;K8r2Cl-?Zly6GqM~cp63pIvM5W`3g>II4uzB?b9$OAb5O9
      zU}-hb`SPCNTfc@$Up<j2mJ`gXWfWvjy{zLEyvjH%cfu)U-9uLHsCraQdrrdzZqimx
      zgTaEZEzh$_XogtIj^!l0d@*aW{7eR|?)(eMaZblHEP>XH?G*Uln7*KpWRG9c(TX-Y
      zKVlWkljVHcES)jZHdSIHPR6jujglqL!DZ{LVVBjTH0aN(AXzkKN!A&2iZquwC=N>c
      zB3Ob>Cc>MxT!G#Z68Rs)kOkEu3#DlS1U42_?IO*<5{Y6?*4SkhUoaiVeYc}-t>mQG
      zRUL2O+W)Z?P$<w*t76V_fmPK;SvaaYYSxu#Tgl8jv#KZF)A6pHN|7<AT*{coI80cc
      z&2u&(Nyj>-Z3+KgLWs!Rakoa!X?`Qn_>*ak0OD7^hWPEgkLcuGblgGLZFJp3jBBhr
      zwyJ_P6LPz@g5F2yQ``GkKN;J2*FSCILj{{-TPxUJ!E;slJxV?<<p(R+HyrPx)S<zi
      z&=-itds;45@WQZs+!L>Aj3|xc3jAaM-c42F#!hij(!u$~;Cv=HkNd_I;>bMW*?Tzm
      z8MN5>uh1H!ML&|Xva?*mrR9=U0jReMrXC=A2Q#-6b2iscv4QJBay5i5q_BbmVkN&l
      zIDw5giA@;A4xGY%oW>FEhj=%PGZ^RZ0wyqpv$%vwxHyNaIFB2+h?_9*InwwN8GM5*
      zZo$O&l>Cuz50S&qn87d9`i<Y;QNSN?@F$A+3yu)*L<hDbPp^8J;R{$x35TaC`c=eh
      z%<DsXTT*vy*=nXa=Gk<VYmMK9TMMvFUHX8!F8~i^mPADUol~J*PGY{WT(FJBB0;p<
      zm?6*mzU4jyNtBN>ryTQfG|Va|r2geVe=l8TxuIR^vvjUB16)%8-M&x&AYFK!P#hTS
      z#46N*07?&_-h6<=&1l!_(DZpUT`?xn-oo2~W9wB|Knu~DQEn&{<u=|SB|a4?ekB#l
      z;*Ze5Lh_4eINne`F|<(RBd#~miH{M(Cv^-h^IMZlbI40p*xyyAcLq#HeWtH365ZEz
      PP|+Ydf%gd%!Uz8V@NaD5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4Jx>Bb5Pi#sz=?o-h)C=#4hk=JCKwxx)rpB1EUcDeJr348b1drLvNEyo2l%6m
      zbBo{y#MsQ+H#7TYW@q2tUtR$mpq@gEq3-%q%aMFCx#MbR_0GDAJL4-Z$0AH2!B80S
      zdu~bYyViMsBpk)CcI5e<I%bHQjUGdy9SnqlI5JrzvBr?MJzsRDw|x;_^1c)dMLTe~
      z?D5cx_@^_WhTeo>*Z!l07OA;HwW9{xfv?0P)i0ZkYx}D$9h@g}DLvoSE{2lXSdq79
      z>WZ#2vM%_;30J(eDy<UL{U&Dzd>}%G+Op^@L@hM`A-zb>%?Fz+)9v3=Ej6~dUA^(b
      ziRuJ?XDX$hcP?XegK6l9Q%}GAkB#m}`m}pm9sL0yO($9z*%UF0kP#-E&qzPfAqInN
      v6b25lPBuGBAlv|0207$47O+WZpn#(0C6qNUp`!T~sv5T=KWWs+#<24NE)1pT
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT@$A6#h1ZB!pd{X${gso7P$(6w+F2tzb2V0FgA%Buz=RrH60`2SW}fC$!c}
      z>x*}NueWi0@<C_NT5xp6@!2>3kmI-aNud-*VJ7Q*d#~%a*IIx5^V=T)PT@Ttngn`F
      zm3p*THfpsM!&!{Zn{)M2G;S}i*cG$l_}~%fS~6CRXx*{O(Xw4CS(Q>WWv-fKfj}ak
      z$P{uD$@I9u;naV+8Ww2IW>W%t_&YlhOOIwJVv`AhPK7gx_*7<eHWe!*GL56jL}4~D
      z6Q|}lwSr1(G?7Y-$8w3$*<36;Dd3G~3e&kM0nf~tljn%1r&7syfsvBa(@d}C7*!`(
      znKy3=h@^nutjsr{f23HpDwcDe%6<KLx`^BJrXO9@j07OiEpY$`>2su^*43BNM3fB@
      zkaeo$VK|xW&$m*!SE2=8KYR*=C434Tb!!c8)~ehdQ*NIW2<_(0b@r5mU)lG&M1);#
      z!kQc9e?X#D-48bINmTd&QR+S_5m5K1T-L&ytc4Y8O5?Odo6?X9JS!m;cut^YW{5nh
      z!{;UTsKa&zUXW;4phJO|Bs$;~=tx-=GhJVvGpjjcu52<`$}Sq^yiv6jZX9}?MXN@3
      zE5@=`*+C&+WzKRRsTIwbkVxVc8jK~=eD-da^PSB%9H4Sa;sVn2U{##FQLZxrA2X@0
      zj;UNPN_1kc`pQZKu~)#iU{}*RmD9UCK>z==Z~&K4@L`6;KU#;x6}&3Y=Gd23R?KSL
      zs4<!Sef>LoCV;D$_2C*R+;S3E6DV;V2CFHV&X{GE=LH6LO>)buYA%$`q7&8Xq@)Pb
      z2imzKt2=d@io}BAOESU*d)`{G%xW!wMJ)MX2^`qz_<@$h>)^oqty<PG9IMC&>Pz-t
      z37~=%AM9;}OwBDZCy6&ub&Ju(3GCa(hCXD<S3%V}R_Vg3#cDOHR8j3SR<)NEfe-QL
      zTBx8!+?03|xA@$wMBw<tYHs-9hna62`S3Qg*eWu&Sha7sy(<<rdu=CcTwQ^zU9T3+
      zF-tXi`{sTeQqH(bnFx2PM7LT4{OVR4Kub=tmYi5EIhk5={<P%iX~}8Rl7prtXN)qa
      z`d3SKFQu28VITH0-eW|6Gn)GQ=y!-hFx1@Hwt>g*p-00*&3=szYjmV}15ez;aSi%B
      z8bmZW(W1eS1}D85JgvbqbU>Rk8l3HPug+;S-09PIBO0CW3~2P?PfVr>G5!v5!GOcr
      zfgE~KKm^xtmhU#oX1fTR$Uzym_<tK8Vh}HDOJ&XN*eEZ>@)WIs$Uskz=Q^v|@*kik
      z@IDve2ii95Y9g*_qYWb^=tq5xk-8@B`C!BI616?N3q=Ng#`roWH!v0HxsT~c?|o#p
      zq6D?pC#>aDKE!7v{c{~H;#zM;3vEUV=?7D}h19}foK`Y$sS)>Mod?+oipV<h>v%0S
      zu#UN3QM!wcpy2oNI%;>(BGv}PI&S<4v36Ok=~}}Wz*{&<CY5wqKEyTyzF>`CvMIho
      z7++K48)|%u6ZlT&8q(H7Izz?A5xj$UnGfd;=|)~rje(ZPFPQ#;E?xIt9s}QNH&TDM
      WG)m^O-_<ztsPT`x8sF9-?)(cDSG89F
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizYflqF6o%h{(k;tKD=LDB+`P0!SrrwrDA01T$wr76jQDB0JC-HOF4^4@eiUDf
      zS`tZ&pZ!tBGrPT@HffXXWagZC&U-HN>-YB`03KmeK@Y=J)val!V+6sG5$<c2sMM<3
      zwl7RO5F54=3SU8jA#-3H8=7OdRc)(sAk0ufl3^q|t%bIuIbOADlQq7>klfU_imN)q
      zjNUaufk6?jQE`ODFr>GkMLXOPA(>N4renKy_==%7o7-hblsrqQU`TUhz$xBRWbdb=
      zAr1v8GU>J}-qa2&!ha{>lI@v>vupUa+((BhdXZLey_sT^OdMCmFwzougQFiR1r7J@
      zfV5h65c8(99g{10hew_(+^~?_RWX4n1(OWpo$AnX<(S3{gBpZ}AC_H9oJ6UX<^4Mx
      zccn2UTq`n3Wm%3K@(g{ZBMhI`Y`H8e({DDTGfZ@mM`eraE`b`yLka8+L`WDrSZ}tZ
      zdzyO^@Py+jo)Mrb0f}rmw?_%tfli|l*K0C+p}Eb8A@f^ddcIZ25#|M!6i~;<+EehK
      zBgae7B%~;gE{=sm-q~CyvNRUtl&o+X_{R#03^&`8T#{p7GJ<gZ#1u!N?YUGC8hz42
      z?dk+<Nu|Vgyqa&yHzEh?uNN~XLr_2}1$}+!!Kj=_dUZo`kZ4WPZUCIDmuRPvhx`qk
      zgMB!|;1^u}Oxqq@p?@_p&eQq;SEEyDp_y-7E=ECsO#Tel^5+;P!pJv_wh4pe0W2Va
      zMWm^~k|J-@9gIb?s45t5@LrR*l#|JS#prAux9GcF$GtW$R<uT}^@ueb`!`sUI*a>6
      zW2CqXb?#s47E!mmP^ps*tt%8+YUNF>b<CgAKCWDnynv4vXuPG7w=^!`d4smopr!Ma
      t^5RcS)UkZ}K5-ghWVcou;JBa_I<csKpDqMQw*sV5!W!LVR3s^A;}5GW8bJU6
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7FZBr9h6n<`uY}hUpgI1|;2vm{~66y;o0VSZIH9#~mHA-JLn`>Cz>@vGIOlhYd
      z`ZxLq`n9$*;FOt;pZwr|=wE4j_U;xI%?#5F+3Y>{p68tNoabEL{r$(E06qs-5Mvl>
      z*`2&$>7KWti}ieyH#)6+Wy=%1U2<A2?kb2goPMEi>iLc^t-M86({AO1U51`Yy;8lq
      z%rIO!464A8m@zEVHpMN5BdK(aA->==xeA7lG-yZ=-i+MuCDX?mj-sa*{YWY}&Tz3?
      zfU?UC)8mV#CAh0$04E4zskAy@EHR99&FO$k!4Lk4hEq7r(Ccv#ATgXvl|HOG*es-L
      z3O;4X_zB5F9ydC!DYo*uAxy{4FL6<Joel1at)jFfaF*dbozLx&os(qe45z)}*xVML
      zib0(BX}G{}GK_BN#C1iuL^(xOaS<a5h6(Cm*rH)@&s%V8;X0P(6ETX<7__EScFj%G
      z;w|1}xEg})WxKx_WLZcDHOr{0jThVy1qEXa{W4r683k#E!F_^)6syilZkyk8H-T{m
      zmQ|6$gkMpPVXR9<k!X<`Q<&69pqHs1HvdjYP=*t!Xma6k6<0B(;2O27n>ZH!<5t6U
      z++a|iJMN0!<_uT5WRvcymOTtoN<XGG6fi>)<F?+g2xvHUh*!GSi(8meaGT-OK4E)v
      z#5cL6p@?}JhWjgvt3+!T;g$Sjg#_+UQ-jdW>7gGcfArP6s9_2BXrc&{VJ@uf;IvBj
      z59y9r!gl*2OW_L*4?qLdx2}83j>}~aJUO&a8IF}qo3C`*4enM07Lp~$(5;&8n*KU8
      zCYt=Y-mwJvB_n~t))AO+UNW4CRQsNa=)zzI!-Yc_ri5BtL@zCdQBq4cMMO^#olmI5
      z14F6e2qvf#V%?;)<HYDDL-GGm`Ycjvgj0sE{Wh&J9JTyrkc3E#ZCy|l-EC2@fi9j5
      zYQ^cehJU}2*p5fj&-r4aIUyqHLMPeyw<W#Bk$^&98XsD{qqV=kwhLC@f%-f8e)Ip1
      zZR6xF2J6W)J2>|mLvL{DLFO&4?;=&tBr`k6mVUwT_%`ydab-FC7ApB<w{cT?&n6e>
      z{Vr|a|M{Q4UJ-r_%k-Q=A3ZNarMCgxz*(BR5lmwYGi05`HQc7>9Lc?idzeR+R?jer
      z74jOQJV$U7t0+s1G#=s+RWVC<bA?XEsGi5Dg>{Y6um6ctKEKj$5Wh!S%Mvdpt@KYN
      z^q3-i-zSkte#v%F-_KelZ{P{BR+pYya1Ku;pFdHCYavFJ*o;ez@$AGlzIq>{Nf=yW
      fWP)=c21Ug;RIiMWZ>d5*VgfoEGAn~tF*N@LJ<9Qp
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fEZv6kTUJrBH{K7FxxE0;0Vk^#XV)YDB>_sh}xo0z8;$8DO-u&2&cn1;4@{
      z@Wn)G;)5UHM;X^StwRYWzU*_(zOA*_p856r$4>yaQ4B#7m^*BGg?hv6blRqSRM@v_
      z-eF<evP#Xi=T=<DGLJ*h1;*c+@6CeUDhvb!G`lH~DE}i?6bQ6DS0L#}w>;PH$?(vs
      z-L&1u0*e_xWuSS{cb=)sRt5BDt$izu07earAVQ=}wmJfVF#|yi$y?k&2*U!=vfZ>c
      zz2lnYY@4-)#YnkTHyc&cvE{q()ZHVyBQRh7zZzt&Q<Z&%S`rAaf2><=*KRdCA*2R{
      z+VUfk>$HK3xD>`!%!V){F!5Kk!SM{t;hI43gJZkos%J{ssw}x~;D#JDc+l`VM}&4P
      zN-GE-%IvL`O4*Wx$V-T<%)cocE&5SvCTiT)-kRLX!2xZ<;^u<&MysQgTsCkQ5m~w{
      zFnVk{?<!uq-Ev&3H|Q=0t+YI+Zf)37#qqPB$f6tuvlKqSZ%ad5?t!<s+yc)aBO?gY
      zUf^qo88R=L`wk<QKjCHJ1hKDlX&9%CL#Hj$K4RHpMDPR?^vv|ikU)|zHc&7^-6W7k
      z0E*0Wl0KcU%RZn+&t&c!qFqd_@{FarxFXLk=2Kr79E5((X6qQk2HU+*&`HMGpbtHa
      z7}CfPKmumZ0e&KQkojo|n4g;NBDbO^bnP<|5;8xP(7RaZqbKxJ_@pX(2?Lu{;T5Lw
      z8uO?q3QN6~{`6@SaEk;8!{0fh2&Qp|w*c!?ilEehi#<p1siH1dpcGl^QCT@%K}1Qt
      t!~N~Dd`}TD6j-!RAclLmPmkQ_Lcg6BI2~n3WxpAy)cTbI4_Kq&;U8BN!2|#R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(TW`}q5QWd?T7t=~Nw~D7Ev1k+r54YHA_}b(ky437kxHH%*J%xI9K|;9w~%O%
      zc;E-{qY!7D5>Ofm9_*bxvva=L*&jc@eFyLu+iAoUHckhjVY#O756$4rII(--snNFW
      zqc9kTK`R*9=6M<kh0;6ogK0RP@pncc?uCIur8zIVqmb~O!Fz?&6KCKAy9!2i{>k}j
      ztwV<w-ie(-9GZp&+#s=9>s*6EPD2tYi3%FhNKt7z1N(J&-m^z-v*+3h#inPOZpR!s
      zvcD7)!I|SLY&QSn>byeo<H!l<m8dqPpUnOz%N_=fH}KQAqp<k<=8dCiM%rE0P{B<F
      zW$|k$q^sS%1|1}~F1c0eJ%w0zPo~)K^Y7XN^7?M*pUJVRh6i%vq~&^kG=sW^nkbo;
      z7mh6Zz>!OqW}a(XI>I^!6X!$6P?R|_D$10&CYf1)3@*dnF;B?3oc<Np_4);}`ql;V
      zpD9VHlqLAz;r}U%c9F$1EK*sUl%a$&cQlAFDvAUYBY+d&dW%|uyW0`)kV=e7LH~m6
      z(ilrz^RoUyW+UsD>~bG@97MRvq-csOU<G$+Dv;GH5Su`0yDX6U^2!)%f|*3KpjYgx
      zN#nx^q)!T`pfc`ZgBY6OK9SOU8JmpaRQW(x;LoGBWTb?T@leQIX0dPh9xaZu9bvTy
      fk-NkydFOu_>l0&r*7%slZ)x0}YrMt&V|ernXh@@1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=+fEZv6kTUJrBH{K7K>u3fS|o0^#XVSF$Tdjsd$0Z01swb4lr6e&2*~%f?wee
      z_+lb8@xc%9qm1jE)>0+$<(#u`Ywf-E%+Fune*n0N<q!;k)M33<sMhRevtj#3g?(9R
      z9Tv8wd@1dH>4jhlMBdo%?1JMKIz9ozsSAvh{&p`51l*S2A9&?CzVsLvSaIr(zbY`3
      z`M0WPcayVa0dvjWmth1jY+(oy0%x-2ArRU^5CiHJw-CahK(yr4<!0-+BE4<9Qj?67
      z+^StG+n%HBuG937oTk8J>A%ymQ`6(zny@GkUjI;)4c~F=%@C3TqkkqYKI=tPn<)zy
      za50QYOouSlCs=1D3s*2B5PYxXAVsE_Evw|K7Otu3f(Nx$^N6ILq<n(Jq0HV|v6w9?
      z@Vo-gs{HE;XucPvP@=+R?5!!~4-R<NBo`B`*4(C+Z_&bSL{#ab!0@r{z1?ax8m{Nd
      z&WO7lam#IaRk`6P=_0+o&#Or>O`!w)Rt&_I?tI0S>b!%D3?a<(9IYK@sJv+I8?0RZ
      zgpaus#J<pFV3cPZCeLM_4_LN}2p-}*JyV@BBrryc0GdYVmm)GqKxKK4(`VAU)FU+L
      z8P9!1w2g@s-mzpGm(|_IZ1OXM{nU>MwvG{O5blYl9%GyUUFt!^kVb|CiZFYI@FU5C
      z%ug%A{6wma+>)6vjZa7@%KSvaY-6s=o-j}8$8_0KSlFZr&ym6l%wkKou+V|*O`k>q
      zH`oAa_<Lq_gK6C2E5Q1sZcu5!ot|m%k#1eBKr6D)X=Ukj1raUv4)?dq@;%*vrOBe*
      i24c8_yY#4y&UN98!09LhI{S5BrO~YvxW^g;_kROW;H+T)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixTW`}q5QWd?T7q#dCFRnVw3JKYltw%kicn~!h_pyF3MzSWT&FP@yNYe#Zz0hj
      z@xTw@M<LGGC5RNkgT1q7cg{C6`~An)ZvY-*E02`I>WLS%EY}QzQ!^a5j_qM|((2jv
      ztBDiZlRPpC`Wy4T*>e0=qA8^PC{!qQ|J1h?GJ)g0RmeSZJSW^y*r?Cnncp}1%xe3`
      zb^&Q<8WwPc{`E%x5)_IWvdBqP){sYzO4sr1gXrDRp7hM2Yb#W`zGb?7bK=PUT+D=H
      zCs3$$|JfW1&VG<KSwg)dl@xYATJ~w^_+F65O@+l@9d=&KPNdKk4NJJDpe%kJg?xR`
      z?$ANb*5#~5eW;Kcv}IbO5&y33kvDRqU@X__8tzH2S<Cf<xcjDthA4$YKblzfo+It)
      zv!~dSTCmPxr1^X)RAe@cDl!?aS)MFFhE?G1h&SY3(fESPM)M51v3Z8lCrXkkX&L^v
      z`G3r$9q4$1MJj7a8m^+s9SvfPiX#D~2w?AAuT#r#cOwSwQ%O-N8=s*sPqECkB<pXa
      z9$P<SmAfcmFUBn;Ni$p-tGGo|fz&QQYyze1sz916t5d8ACW+=j&skTO#``hIND^nD
      zDsE$g7@FY@ky3jVcNwLr@@X!>pT=d$NC}_fzL2@hV_)(;4mr+VjMZX9@f@q<h5u)4
      WB*w<P@ez$*(|GV#<4x9|!h@fL9Fea8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5Ph43x-koJ!$&DC<tsoMB-}_G5J5;)1X56-5ukEJ8+(;(FuT#(E`mSA
      z0WL@&Dh~VreiUNX32H%v!+Je$X5P%~n;$>FeFxA+(?f}2ZKU%sN<^AYMK%s6@tbM*
      zh(3+BhYCY55&I%cgdT;v!-<SC4@(U7L-c8`wHPLnVJRD{w6RT;{RNyI3c9DX%I-64
      zG#5r~?J-okCYDt&oZ#@V?4yhtM->4>x#<FGeWm4-{Pj@U=d=3tzKKM#C#-Vz9IUve
      z7}ggRYqY7Uvdy)RRjhe9$FRDfdyey1XIK_dB-3Kh-hXEJSHY<@F4fp@Afi_?8~nCA
      zJ}%&*hfRjf;%QSE<yK{H!=0j7*XYceB$1Zm5-v0F*bJ=NSBV_SnBjJ_|7Y5vb0^A_
      z(VeYXz!4#7ZvUCdZ6qHO4MWwbe#_AieNSs?yKXBay<Y8sjuMk9J$fv&v57fuI3ZSE
      z#->MVDv_vn!j-``DORR)3@iwoaI|S9I#u|D9;d%MWIM!f-TVUH`ihgEikKCL6&{!U
      z9(A%g<v8>dPSeeB2Em-=F5S+@Tc5!XaP|NjFaGBFK=nQz;o)<hGOkc&30Ki5*k??j
      M$ZKR*Xb-Oc0+JQMB>(^b
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>O;5r=5Qg7{B3Ozbe&Sa=cu-?#JZnq{l%%EsQb-Tp7T7>Z-I9Lj@A72g!5`q&
      z|6`n1P3p;bncZh*XWq=aZyztO04{M<M2_KNCS!f#@i1KSXs$1&k4ycQLfe;N#AOto
      zw3Fg6;!zwHp)k}I{DJEpmovRTUWiG=P;w00?3zZ0ftd`IpJs=9vB;Aeqc;QF7_@Ao
      zlQ0RF&7L_jTb6nEm7>W7!?yc&QZF&AT)WbZZW!{XXAXnX_NPKc9vd2}s4-M6SBhSI
      zKNi7=k3GRqxBLnB93Hp{e<zh_?uHCa>py#5F{nd74kn`Orjvg;(o76s&`c>skh&wt
      znFEI7zcgs;jGOcav>k1$pn(Ebh>D3fC=st_SS2oJSR<}vc#S&A5Y#BH(*!+bpm6?-
      l`cpb`lVT!(+&i}Dt|fO8-NsH@-%Vo!dvvO4`#uiQ_yi&Bc1-{P
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}%Syvg5QhJ;t*J4!wO;F8aNz|EZdC*g^+r&zwOct&k8MhNQj%2hv0Mo*d;mAT
      zkvNHp?Mier=X`UR`RDxe`u_X^U<a!jh6uY&)iWJWgke`iEwkOY@0#ZvEMJ9@P*J#M
      z`JIkXjf#xc4ue2ET*+G*NaaWkX+ohb?u6+H)if{bZRtdWtW~+G9opAr0v!=@->quG
      z>&X;r=Lo}g`QoH{8WR!plXCU5q!MR%EWI+2NpZ!#tK8^-kXqlU5z?05kUCPBFpx)q
      zkhfhWFM6H24635;NkY-~9pTkP;KuxwOh+v@B<$P&|My-zp5F@`dF&=S1AcACh7gQ1
      zrDR~m#>!B`0%7Y9iW-&(E58-+96!q;j18`bSIlOyooSSi!7!5+n~N;-NFVFWqkU{J
      z=lXbzE7@NZIF54%GhraJ`Gn$Q(sGhxEC9S=ildR-GnmFq@;;ly66W|U@(A--#4^he
      I-&Roi0Nw_eG5`Po
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJ%TB^T6g`)R1q4BS;v;dv!bf7`!nn|wV1o&!sf!{m$xtRxQl_LW8a~UFi3>l#
      zk22miK37H;bMBlw_j%^!_30VF5w<m?2*(38)g4cS;Y373ebm37=vNGeufj;ED6AX)
      zcq~-kmQlSC1Y*{nO{9hlp)wM8LidCk=-0iGbRt5|u)CdxdDA4&1)=m&r6atlOmkaK
      zD_YIlZp*UU4a;c8J|fJWxyp^s3F+Ov4k2UseOW*n<s#-$B$Q28NozXp$)GKIo+MOF
      z-w|F%1a8dVotbFphJ+LIUrU`53bsED9C_&`Eq>^57;nqdx0I5B5ep_m4eNx1KQz;@
      zLD=~%f#>)Vosj>OoqvrbV#!jdA&WU?TEcS7^WS)ZUnrK2vBVL2!h!7mBNiT#lnP^9
      i0GMHsF%IPbRI$W1h2;cSu*$Z|e2rUd@*%!$q4ox@4UDz`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR%SyvQ6g{`E)Y_M|KI#Kpbm0RGt`)Hj6)Hi&XtrgVj%`XhDM_l|<w|hj2lxm6
      zjCd0i6$B9%b7sz+`#ksg_3;V70X8+H2q!}|(;ZKQ;Z#H;eLT3E>Sqjwufj;EC~O-3
      zWFpkSl2Ox${Y+mBWN;~OWFVCzHDn0YvA7kwC)7~C=#Qln5%PxBvs>nMhd^yY=_8>n
      zyqQdM2W3LV?pocp+36W(%d$FFY$ihP$W?B1Oh|9<*o2JX4`cypREn5Kk;6<^$@AHy
      zFM})5_avca`i}5y5x6mbH)f)d8xq>)e@8qd6fA!hIP%m@s(lk^Kc1aX>?$RLL?Ib!
      zSS9TJp{|BC!q#sA+{foO2=$-#!JB2_SjZF_$Rfu~OIV)y+!tQpABqKKEU|~4a3H(;
      qfbxA3Qe})2054czj9u9QH7xR-LOsDHEc0DszQQHe`4GQ0(0BtcB%0Cy
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR%SyvQ6g{`E)Y{gz*0+KS7e2t?S`lrGpahk+7F?BSI<_h4q$H_+mn*@AAK(YM
      z6mO!Uf*|5z&Yg1~bLXD>^z!fsU<WH25`=@E8tb+zf?y=VzCP&Qj`ULo!&5;hR2Zxo
      z-f$>Xw;{tdBg#AP45S^_<+b#svZaO;p)?RTLU)Dg>2F~|)@Za_ht{P@pc<j@@nB21
      zW0~Y1lnKSUd2E?R(>!W7uP)5UON7jxqnvP`kX+wr5mJWNl{q9amB%FVgel8W@@zcp
      zNWUpMt|U|}&lYY=_)f&%ovE<z1caLP-wAgKxrR6PZF%g(-M;Cw9gR-NpC~2$SRff_
      zm?v!gp|6HT!s>4Y{EyFN5UM||gBQ!fv5*NYAdL(&EoNEf6JL0aBNPeBSl|pj=0JM$
      q9>u%3q{J9K06e427^QLoDwt-QKsCl0%(AU8pW_xwe28z$Sa=10V49@>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~&2H0B5QWb)Nu7kGX~IuQ>A$)tAYrknSb!>}t`RA&Q`N4!jBb*v#F29y#SRsZ
      z#R`c955PmA&NUR$RRs%=?>D|PXLQCtet!E7;5GIPED;WeYHs!;kt9=*j?D4kdTO3>
      zuws>@LZ!*R6;CEY4Lq6dTl${=c`6O$39DoANtlsPL$lKx%YI5IT3$D3IhQtpjtSM<
      zE`f;VGRLwxLfN}Kw=XQG<#{?oI%E64%CZbkRc*UL=cC;{v;7a96GFwcuexp5^INWE
      z>nfICeiy1RJtE`|o(F`y6%S+?IXtRh6?H<*36*r`lb)RUq8CX*!-@MM3dAhb{5zRX
      zM`1#E<NTKqZ}s%?eAbum!%X6icdxWVJbha!Im^tGiGfYR%YP6vuua&xuYl+HyC_2G
      z&#HLSY!O>lK$D+kCWC1SMds21mzf_daD}<L!215m0@t_`{{*OWY;Z?2W7c``6%W5;
      o5|24*K|tXN$4YiCU=2^R@69Z(;~BpjJkkcXu){LMr(HB}0J@f#00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B+e*Vg5Ixgd+S=M$uk`{x^uY@lijRt@p+Y5EA+@ivO_nw#-IQGFcljjv;0O3o
      z;v^{QlL))Bb7p7e?3{gje|ZJa#*T&zp*>QuZhImOXCfNw6X$WJU$ZfM6-GiuVaxER
      zQ=uG7My<|Vsz^hQP@jmo&^@6>dT%(9c0?!|*2Cb!yzda`l2HBXFc4lWvrKtTC>gz*
      zyPnnUcanfZD4e>=jm`+!z5M|pXZVgRBa2!E3#brkrmN&_JRQoQFNU5ZG)&(X-arIy
      zf<J?~XzYfBWAoqBoDj;E9|yL)a?|#|hCfQiBviUe$-qcdlA(qT!r?!NG;9)f|0>{j
      zd@D`Jr&{wju{11I22JEqV5Fs}$hh<am-&Vg$=FsoLr*b~KX}ICQ(97In>0w)68lLi
      bC!m4l^nN9^t61Z+!G!BfvBjI%+eY&P%lU@}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}+e*Vg5QhJ;t*N!zT95TCc;NvI-ieA(Lj*ObG_|*7+b)`tZfdj9=kiMM!Uymz
      zd=YUH6zi4f&Fp-;%>1+eyuLrb0NBNvfg!@)jf%{cFT$`V^sU)xKlIEq4pyK-EtC$|
      zt)SZ#s_ja>Zr@9#tMV?Ap*D~v6g%Qxn7&Xq=4G=ZTbhuy+(y0PT-yXXCX9VGstZ4o
      zDON5JQm$Q#QzB$6$F5Xk;9;f{XjB}haa^@4=U11f7d1D2Oc90;J>}^muHM+J6Vg`D
      zmN}#_nMVOdLc#HryokC@*{_MFF9{_lXbHbA`d-YRmuY?Lg@k?QzaKv!<lG?Yx8#YJ
      zsQj>NCw7F8KUGTht=Lx?8dxN3|3S~dGGX<%0-oc0H!L~09o{b+#m1#kMh3%7M(i=N
      z%p(JwV;&vgJoDH9k8>q^iz3Gf?qDViWVW7AdQ4hQaf}6kH%xQPCwT@lm`&d2l32z(
      RpCuk)0ZUk68RBde<qylEmjM6(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g{_Xnp#s^t5vHT7hU)OLvg7H8Z0P57u9TKnhb49Iw^VRkN6|51Q&jQ
      zA0^%linx+)&b{Z(eV+OFe0vAb$Bu~-p+8o+?MEU_=OUZf)8J`tUo$wdN;9FdwCBXL
      znNYz{X1zfuqrgOk(3*-zVMjuZ?c32*`Wd0-3?IC6_x_SV7lg)72Tw$~Ec3`3p?Vss
      zFgqiZ_x3$P#fbx1M;Q$ZOQ;i?Zm8r<J{!s8PK+W+XuGj5B2Oe?!M}r*Y!aq~V|U@@
      zPYCs4oF~2<gu4BoTaSvX2-cNSGI0t~WNKoAaJaxA6I+Dc{|b1IUttM`mX?2orD3TE
      zT^OjcHJO!AV~+}n7?(L>YYrF(udrTp$_isq06e3~XldU-3#<CQt#J+OY}?$jgH0aN
      K<*W|2(ftA<`-6G_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}O-sW-5Qg9BS87ddtyZmGJoMlP7(7Zv(4bHWdT7m6w&~iYq??j#6p#KSPl5-3
      zfImu{1Vwrhy}a|WJ2N}azJI*F0XW2#fgIszq!P;uL>$kA9$S;)!_2y5u|pMWp>*7~
      z!|7D0VNdFIS7{mD2~YMPXVO4{P@jl<VFf~stn0x<dYVwSd$;bXb8}9hGeY&dlPiKm
      z=6Q6HP&)RNuTKd1on4nuu*0FOAdjkv1yl$%$5-+ynGR&s7lS|&8cyhmz!j07#$U;T
      z9{Vw&<NSMx4x!QulgN`7el})q_k(mhg4tC{Ms^BG#s=01`+pc{V1uyzTLHi02Q*Wg
      zL(RX%s2Clgg(6C94UTdsvqvd1)<w=(S<Hy{USK|FSC&}Q0^kWXRx|U9sAD-hZ)CcH
      TRkjUo*~B^zY4NQlHqrV73+9b!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?+iuf95QhIr(mGAkQ)q$GBaliQB&;ItsE`uZP*-ju)y9Y`Ym=-JN6xy6o%R)Y
      z9j=hL-~o83idjQd_X_o9cE8b__MiQI{qq-qLmU_=5#A2f%<RV^O)o??GRK3f3-gqX
      zm8dimDodMIGMNZ9@MP9Jli4U47^o0d$Kq0$u~0*^+Z)S%MyOg|7_{8aHi6oNrJE9g
      zh-b3QJ?9BE*Xh`y-)g(I_7Gt?Xq`KnZ@oNLt^L)vL#umidpfR6SaiIw+xEJy?dPdH
      z!`9u@@QdT0grDq=eePH~YmP8~6saitKq$X>84xN~GLSWt@u-dmSSPHwk&>O+q$j7o
      z=*5!IaFf1>12K&>|8rKdQIrzix%XG=JwL`vX4Ag>80GcvsQX6CNT@qX$*HB+AX5YT
      zgxB}zWZ)TL|9=TQ$L%UvnZL{AkHF&S<zN$YYzYQa303BW0@s)q3tVSjD)2J%N`Y6I
      z*9zR=%A`eSyTKjIoOwyFe&FHvyyfG33}X9@lYu&iZ~&fQi_a3abGw6GJ{!z?c#7v7
      JNqlQ!^A9FMoZkQd
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu7+iuf95QhKF$w^30;TVnu0<=ZK;<|v;IvX&!Hj0fUuB?r-w2mCRvK@FBo`NeR
      zE_eVQ3Nh<a;UXl2xS8E=W_RY-%zXR)<tu>4*wIj9*gZ^^dKim5KNiK2KA(L!)?bn_
      z(j+fLQshG;T`WX0b7e7frgIq<6ZuYNG6|)I2E+PXycc>bl0*F@%+NO6z~8gpa0a%|
      zuyUHq7x7Zosd$HBb;8Gd!fk^G-rLt)c^O0ZIrmP!y2?ZPy6zcIouPN&*rw-90@EHl
      z>Q$3Un6~e{;=uv;UN|G=Y%%mlrn|Rq@xX8_iyNNl*eaqiY;gMzfi~qf-P6~6#L#*Y
      zB~kH=p}w{4Gc=5JCcCKPdJk7HU|6%FMB2;6RA!!-#*%7UX((b}WRc>Z&PH(*<qS`)
      z|LFCuYDK!tLOG7gLT85bNDV>BPZF6KYML_FaF5~PKa|w)fMN4*A4tcqji46%wiC2i
      z)Glgs2Lm+GBGQOzXcKoT+$BC&;U4iyg;$B!D!fj-QQ<!E`3hekzF6T)#Fs1FCM8Ub
      zjqFuYq?b(Fv-26(K9v%0kX3?#kGM&;SKgbrg-xOwZkP5B?$X&O9^yW>%7jB~WAFp^
      CT(gq^
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW#NpI6Y6ae5i*_^crZ7GDcK!7e#vo9(_N}NgR%C(U_3FTxt$<R7VoG5WX{47pL
      z9QXnJD8w5lg{gW#^fL12=geF3e*XIY0{|YwD+OW%ULOTBwL9>p)3FyGtNq^RvAU0k
      zHVUSp7lhM_HX07Spy%+gV)KuD!h<enU&dU41c6fD`{bzuFE~=IPM>!}0%^^0+f}1Q
      z36L6r!pTi-Z!qI=OpRGHj@~q@tYuU2f)L1SM%8g#!>ZP)jqwAkt~YdQJ0cz@kU|*s
      zNSIYQplr{YGf5!Zq->rt`XEIh=U6RUqi#btq6`XVFsZ|6-DMx%(de@@-s&(cB2osg
      z(M?9}Mpc`~vwy0xYWq}UqLLhewZ+wST5C03ddR5h=$0v>c@aHn%zdx3J-10sYU`Sa
      z76`1&yEqeCBCxt>=}fGMWxnwPKYU9dzOmURkkCdwo`pDU<>4OOCr~u}fSa>nhfkQ-
      z8E^v2#;EHJ+TO$$Uc5|%$NrSSu5s?ad>4o0jAoNAZ}?G~Q=76Qb^(W`2LYdGVx{<0
      zfu{tv|0AIS&k3ym>jzlJ-?hXYJGGd&+c+wmcnQjogcM3a#UPE&NY0{jl0`f(xqx1h
      zTtt^7UqCNQUO}%)zKC9vd<lJ7av6O^@>TRT$=A_0B;Q1@OTLA^E%^?*BKa<MPQ;4f
      zxq%Z<BLgJ2zQN|#Xe8TsiU9!}!UH_>(Q^_W!cG)dqw^7t6tLA8Jb`EM0@DzDdI{y<
      D!9C7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}NlwE+5Ji8HfFT43VV=XVV34rbAS4hHSP6pyK{#X^b(|JBIBjG*a4uFzEI0sH
      z;SPvuGldm`h0Fb_tLvA3J-<Fa0ocHzfeymvrD~auC&KVXL|0~`es^OYbFh3BMnXm5
      zlI1s>Le*^<E!mN9t_y)^N&`tkrXg;H=?QgdmTC>@M1*e3u2%Mn7kL8h6Z$^eRD{=(
      z3D(UJQV03+dy%a(#2NcXhR5nHA0FA&(*AMYD(j*I7oC;Ps)h5tlYIP)^}BXl<wm=N
      z#PUjokhJ`|Od)}hGzO6+3=~}@Pg~8J49cSBNkX>hJHo4oz}5VbOh#93NZ2a=&x&n5
      zzuyWRS#V>GANH+lj|k}_rDR}fpJixZmaz5*H3K<9?zaa#$M>%EP+!~PZL>*iV<#r~
      z>tZsPI?&DB)5a<0-ZoA%_qB09^FSMCxD#o!ISz40GiKIVeZcU2EHTPa3j!|~<Cu=m
      cofzj<dW6Y1PGOq=S>_qcVV>`ZPYalM14r1HVgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR%SyvQ6g{`E)Y{rwpY;JQy6^!8*HuA-f)W&rW-HTlY*W%nNhbPF?pz5j`~W{n
      zya|erjfjgmch1bY_s%`@^7`})U<a!Pa)eG_C8igMI35c<Fo(Unv3bg1g(}uU>9}o$
      zqmfWON9wktBVY9|<c*A^@}z+Rp)nM<!VHA!o9Er3^faMtIoIxieRV{jLqhGNmMelp
      z=DB%=P|O4=Awp@_SH9jS<kvS`Lct1qvVuJ7RZOBvsN24hXUV85qf5~ZB%x`Co(NnK
      z`6+)tEa-tB6ZY(X%+w)NoG^(zdF*G6zL~L|4oj$>C?z8+bxp<w771H_XlY=Hu=ZO5
      zzvI(+w%~{N{DEv2+m}NNMU<Es87niN_`)lEL#d67HCC7z2a21In0m-k8jNWH;2zVA
      dsgwn1VuoW5vl-4|o@0~w0=HP^MZ8-<>kYk?k_G?(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu6OH0E*6ot>Vt*JF?t<U-vT=)QkYelTFzKB(9?N+AgXj9Tj$wPmaE5U_3H~uK`
      zCMZ@AMBJRY-wgLL=f1u@Jp<UnvW7mw-mQuZ+Z9336=BP0H}AW~DU0c;AQUPLR!pzc
      z5vp00;YzLLOVK>?y{LOBZ=^4kEj6SG`L?(dhAY&qao%W4J0xVy>UF(jU6l#6PZ;_v
      zSQl<2Q#^rANLNZ{<v1on|3&GtT&cyxV`a_b6YGF4Vovevj-#A#mylXrt8=31HDwMd
      zjOiFbo-krLN>-vyL;5w*a3!H&dA4xt!gpf+xJ-vFCm`%w|NZqgAy@Sx-<F3?((RjP
      zo3R}P{X{A0o3Xhv&@e~X_(NX}3xuWL5_pcU1rf%7S`jasjbkIzC?bP?CM~uZS>}Nr
      z&M^=6u+BWx!^51(UL(&s$`y=+fz0|N3J*!ian`s2@PY|eJ&7}z#8mP=ooEp=d=_|w
      OS<GXR+Ym=fD82)=sGO?+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu7*>2N76o&t47H4fsSi{;vfG$u|ZVO1kaUm$RBYPY!qe(I}jvS}59e6IdLE?f3
      z;Gq!5rYHk92yt^}zL_)gpY7ZCFJA#1;;Du;hNIJPsgDB@$7dp$>a)p*GyM%2V-d!Q
      z2$Q&FEar0&PF$I^_%xDY;>dS0lHpit$TMut#CxF!B0SaY(M*mLhLYh92ko9`GO(8n
      z^<RGtM6i@O60b7kt@eqT?iqvTdT!seIw?{}MaOi#pO-lzm$$j+rgx-P<F6gF-5I`e
      zY_Ff570Bb*p}#VZB11K!p<#O#PaQOdb^EPlc7`Xm)#bL6IhGijhUYk@#mUv;q`vY<
      zpOq;@m)n^}g`wOfAII_fobovjccoFIAfEZ5pS)nm?d%Tdt+ANM3UX-Gu!U`gjh-J$
      zYdIguh>KAm85+ICSOfzR`6-_t=98%(Gd%D8M_Y~<D(+$#jpebQ3H{d3gS1~%$Zi<Q
      z$VeM6V-1fP_WwargU+z^w+9r*YIvvwe~b^!AeD=1T}KlI6p1vVHI#_U3Rj4$3fGA1
      z3a=AyD7;C0LE#4RMTIXBUsm`E@l}Pd5jPdSPIN=zo5Z&iPUF3;@Eyv8%7bmPcPS%1
      xW17{y&$#z7OYuJ0G-2Qq9+0hN`vM+fC%fOx>>l=MZBR)b;Q&uahSBa2%^%zBx+?$x
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW0TT|0O6vxj}N}!ZmK>@F*s9cnace$FTOS{aHbh2qsUv@&tK$wy;ZK|KkCue-{
      z1NfmF&!%-;d~x*UB)@Yu`#<^b+3!ETeglAYC>bz7VB;k278}i=)42$e)8g6jr;Fk~
      z2CEf!k|0hxi&pFWJcy4)m@N8HJLv|^gP?I5#i0R%1SZddk3q2+#3x1P=qzj`1cogk
      zeUsNI0a79`_G>FYXm-O4Y7+v6PhG(ro4}04O(Cd|rT0>>ifwvzm#S6R+^EU9?AKK)
      z(@%L-mzrgvQrN<*=hP&pKIO7kkQLXd*V1wprOHgy9FguhgviQ*eV}R8KooURqjp*C
      zHB4a0rJ{b2t{ovTNZ&C}RdVV#P}8GQcrLRmDmh9ZZ<#f-#5nU<Z^t}#m^LhHrdLfx
      z#t2OGTaZp^pITm;9><kchnFQbZue3X1jb#;sVS(IokWv$8EMl)B|n9EmzL=sv#D-U
      zfxxt&p2Uh-=bma9Jv~sLOcR*XER~1MtI7(ssmm-?pFsn*qBu%+2xOL)eRRNT9fvu{
      z!1Fvjfpz>9jwf$-&yT{k7aTQ10tMb`1Wi9^M~eH&!Q?dR5ZL1XKVF*za-!93H^RLr
      z)wwj5YijQB09YJ{ZA;B>*fC(6!0JCJ8n8=X;cp*cAHVMa9?|7nfHw)vLi4V`JY-=A
      z$v_%_VdRlNIH&O_*7F*VA&+Z3fjp`46mmi1Y2+D=mHt(YXOZVLo=3i>@pa@I8s9{|
      zrSWa#1&!|@-_`gY@}kD~ksoOM5P3=CW#ko&SCJoS{1|yn<03jq)X-skijMXeAiMGf
      uo_$U&et}UL4zLX`G3L|vEWCo(Y5h$aH((Q=1w4{1*nzhwgM$es%>M+mD(B|_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW2+foxj5QhH&!bl89@qkBER1QJ}1%V)fkzg><DuO9*hh!j&$!^>O7O&x(cx9Cr
      zK7bEp`DcT1lcI_mZ|3XnP5-mq>Dl@9`^QfJ^LQ)KB`|Yn2gy=Zd0t)lmE=+ROFg;6
      zCGFUruWa9&NISKfvdabSOY{f~9jRlLtSb93`F{UMmwW-4-~5=(f5;1ntU&+Y)S{{e
      zx|@3q3-qp8w&kx2bWctd1$xp>S;x_h{sj6E7Z}W0wtg4X_O-jG_N!W8B<GY=wWwUH
      z;hzS3{EFoX%;pT<IwcS<IDuQz87mZSD{rn*jzA)7+uBVx`k+0DD+1%^Z9&;+YsLgt
      z&r6B)a-wLtexRy(RjRObfr0jb#7%(}6Tw}5pj~a3^xjFGdi`y_#2tY}6S=S#O{u<?
      zEpg9KX47@m$*D}smUv)TT-Nrrd!SmywfPd00t+U^<+WdN${fq4Au%H`Zz7Pfbd~wB
      zkP>qODU<Z($!YyVod1r9#Jr(o!FMhDFe=#*k$7e(xmR(uDn}(dA`;I9HcSd{3T(Sh
      zP><-2o)wl@H9S(`d_`mj+5-|V4Bs}K`<$c7+KtGLo)wnZ5Lh;8#n!R5{ayVz&>p{`
      ziKr`)7FaS7EBLDPDdVadPk#KLBa!)^k~@Y`pjmQ9Sb|@Bqf-;s$Ws%NR}ilQUJn9e
      zh@qF1^ty0?mS|iHTrV<`41FLr{T+#K;ZFv*HWGjo2Dv6eJBA?)htEgC^%6$OuNdLe
      z%ecyIuF<+q-XL$0x5;txE_t7vARm&C$SHD~d`!-gN%9G~Kt3fG$t7}`Tp?5B8o5rs
      TBsa-d<ZE(^+$P_UI~e-|VzWig
      
      literal 0
      HcmV?d00001
      
      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
      zcma*oS$Eq+6bJB`ZfVnWPnQ(Bmo_O-(}lI`L>k*_<r#G(xec3e5;t{7?bLQ!_8q<t
      zPn^R8AArxp0S-&ye`T3-13jfLPJUOTJIkFJ{rK?vAA}HR#5W^ijT9#q+AF2GrADu}
      z-00saEzUn!E?vWq*J=0qjds6xTz9*j?ub|?#rDO<{YGi2(OxLo*~R8uUy60c8ZCv4
      zrPwljrQTRtX|6>dLW-?{sjD#Xv!v>@@+mqh#rW!IR&h3s=-Fm;GJF=fz`7urq4*fy
      z8Dz+eO|m$RBW--0=i7pJif60hTUqaR`kM9<$~2CF4twxI6~`3ZEyd0pdG^TZNV!4s
      zJ#0WVom8zK<elzi@z8oI39O+^`=r=5OkWOkSTvvDVW(<(kmVqTXlz!qPG@Bb=c73!
      z#h8uMjkE|--osMtpqYEAbJ`?>*7V>A=9A1sI;#b7O(kBHf=7{IIEpy5`NWS&vB^)P
      zFu-6nHJU_#QkHFM@;ObhLDsAZ66>hl*`n(rl-Zj`=MT;yL0}T?TpHzFoM)9CEN9s|
      z42rT`lw!gQoR@~mWrK&lE(hqPSh-86L0JW1oYl1p$~4U4$z>__E8ous>z|h>s70Z!
      zVIc-px+2Aa*sJQA%Dk#F75%72S22&_qR@)PNwE-0io?}FJLSCU%wrNvqZeO?I>BP+
      zTj5c?cv9?2O`JxNbr>B@CNAdTW6u~Wa^_o<@Skeo{G1r9NDbQyyT-+j8AVx&lSTJW
      z(!7GAQkDO;VsqFbCJn<ZvUv%qMDwVCnvQ9E1!hpWV&qLc87`f!Qv+H+dgnHsgD}(;
      z6=up+QmP5X7qBgDnq;<&wZi_+PjMST<#{^B3TP7yYS)osq+UZ{a62qZu`wT!Q6VL|
      zhpMGUC5b|P`8Cp$V)JlJiK?Kj{0W0mA>A`Gm_glM4@@5anVtCn*TyYs{0qAtLTxGu
      zogDcqi^hp768!d`jU8I$=chpa&XOzV6wOrrfi#IzCZ=7GQDch!xhhI~pP~<u022)A
      z!)-;uzgSie2b5Z_!F{^nVyoTi<3y~ToT}sc^*Zy-QL$EhI3^y5_fYGw)oz-VyR*%1
      z(wJSM!iAl=#!|h}ZIO%My8fLO7H~3rvfKZH6r*uxr90OwxAL5;z7VJBvp_dayWQ-1
      z^eJifM#NV*RsWY=iuL)|1z#h~2-SW?Oo;Vj12h7y5gXx6%%kvT<}r8+^Hz8p^LBU#
      z^G<jd^EkYlc@Mmoc^^E%ydQds`Dyq7^FjC!^I`Z1^HKO1^KtkY<`eKq=1F*p`4s#t
      z^K<a?%%|ZJ^9%49=CklQ=JW82%rC(&GgCcYWqu95z<d$D#C#dP!h980%+s*P?8BP5
      z3|E+|aKL;GzRn!NHD&`_<_NyQ?BJL=fm7x>e3SVWJj47t{08%z@LSAp!x{5CaD#ak
      zo@1Veo6NW21?D?&i+K@#mw5@k%iM-L%**gS<}Tc0?!zn0_i^$h-6Z&ZA1APsTZr|i
      vz7rpOn;*%K@Jk0&$nD}|{69wj<IsL0KFyzhmj8Y(zQEtn{Pi!z*J9#t?0CH_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*T~pIQ6o$`Ipiqh+f{GuAib^XI@mpb>3CY$*(j=3F4tkRbZ3e>Blxb7^U0ylk
      zg+IU_<@oNF>UyO&+dOa1*S<OZ@$=hvBHE&zB8@Ss9%Tcq)rtH4(>OoYPTHSOwf8uT
      zZr0D^Ebp)Jvn0#+(yU#iaYpke@mZ{O;_OIs4^NU-&S)mEoOd>lf{=TR*e;{lQFb%#
      z43YxcF-E0bpX+;`YdN7%(0jV(>kS@xt|x>71b$#}FSJ}o2<TSc54azhyk<Gv6xsx|
      zu#Q3|+UdTmG>O{h8h2z=QH)^gK@fR9_jI3&)G4G6#eK(ibs0E~)S)&~N{Fgi+%_ZK
      zFnAD%%tb~EL#^SOR?RZ>(TGco=6=r{K{x6mVFg7RJgmEB#GTOpAhdNDHPQ|&Ie3Lp
      zvDt_$XNVseO#w}=hq6iw#RXe|;W`dC!l4E2VVJ!BA2(zcqsg5#OY^sk3hR|7qj96#
      zPD)gutuj5LO%$}#EO7>(4wGIOA9fPl%<i`0PBZSMg3rbA{5b71+OYqBJGNnE&>i$z
      zNiCIi|JtHWu{N02%Ce+qh;>W)MS8<%^<N#tR*W_fTZ@~CFG9;SL6e{&XpE-7(+Zcs
      zGYXf%vkG4T&nY|)zNqj5_>#h+-;%<Y!B-T%3SL(D8tA&hH^4U)UIE`ycolqG;XB~F
      z3a^3hDSRLNK;d<8Md2#=p~515L*Yd@$HYe9)Zm~d8Go<pS9<(KTKWX1Fqp=6=qaAd
      a;u)qtqv!Jd3wgezSNJW-^w+da%fA38fw)Ql
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g}61D1tmx6jv@>s0*rVjR^tNYSSiw-I4(&P^?qZ7L1?e%EW~q;71v6
      zD<-lsZtl#vk8|go`S^T$2XKb{3|0uWk(%iPPlVxAL}Pt2e46UF92&j~BcY=3&`@*#
      zLE6*E<x~bKLUAJILidCk>2`l22N9uSSdM+y>U9k3+HCc@H|<uv*=iEVAmo3@9O2ER
      z#@mTdT1;5B<rwYmecg-;{G!zhSGmz8K|4Bj2&slYlv!vf<gkGpp<ud7TC>N#47#H4
      zNkZB52f}ki;Kq27OhsciB%GT66L?O@cKlf|kXLTPy<|o$R!+znO39!RyC&I^J;K3X
      zTiAsqBl!bZVXPQcq_N5<lb|)m>%VZ8D-<i|nCA{X!9e=t6`L=~NReYq0PPtizQ?WH
      VfHJm{`gRg`P~r2NZkLx-zW`Q@dLjS-
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iuf95QhKB$*r9pD93PWp#{=_u($>xnT@LkT)V<<RIaK`VzrKpUBwPO7gtDJ
      z@Blm%V%C(fy@H$Ze!pk`+1c42Kfiqk@B+^a)Ck?vY;KQJSrq58JhP{h&*%1A4kFKr
      zQf6hbbC6HoCE3J4gRnl8pQN42?9>iM(|BAGnj$#zBLcl4to+$El<7RKa~UF7BJlfz
      zXb||0rz9?FMf>kvr+*Uo-UlVs38wIzFkC2H%lfSxIFZ;_NloQnCAr7KJL<biY_aGC
      z!cq2%%?4qWbKJvA>Jk^(8@S%zvde@<7`cba$Yi5|A4ZNZ+=Y=vXuV3Zq<l@NcXx-J
      zFY-xjqK*e`+{1msnwMm;KmRz2XOSGGF=4~Y$1)wtS)%wtY?Nn7LFjq^d)+Vjv|&D<
      zjpMzfa=kQ^=V}gw_8`mRnNZV<3j;mE*1!A-#>GJS32;~3x`hs!XfYW~H7qeNYiu%G
      z8n>BOG+t$1(|DcvipCqvS2e!Id|l%k%r`Z@#oW>OHq#xA@A64W-9E=nKCxXfKak#6
      nY<;O(c*s#TgxWE-dEHiPZgK~Ys{fCx_yk@4n$`AQJVoahqZN&!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pf5TO65!ZL_K)$pv2gC)^I^hFoY(8y)R`0C3V}-t^O`gCLa6&{wU*Y
      zqXtiUc{^`*-b~(m|9E`^aE=2TD}?q`Wo{6OG);t_x%0_W;@&cJW0h*5bb2(@GP#n8
      zp4li68gua|+(@XY>y76!(1b#7F!Bi0BUHa-zKAku@g4BL=U?BMnh2J6KQbj>E?tHy
      z)E({}pZGl0jVIE9h4l)ms1fS@P{~2|FqVsv7)O%O?8kwKe6a`(|7sTWEKCWf{r?-e
      zAUMM~TLkhZ%=i8>d}bUHDm|s-qHB_osf|6t;a?XB<)5%PV0Ok%EwoTXiJ5JDW0iS%
      zi95{KmUx9HIY`tP>#T5d4iwujXgudDnv7;4tPVD~HWD7dCbshb?HqTo%deBmTi8eI
      E6MxWbcK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd^|B7z`(;>m*t(Zt5H#tYG;rsAQ7`%*Trq;8vbtBL>0lZgj^fIrGO
      zTP4wxUf#~znKv_U-alU70GwjaMTIb!>B5U*k>{x}b8j(yOucJ{VWM**w8;-bBhyel
      zNf%W@cOf2x7YjY}ZYK*F8G>`;j|k)w+Dp+`#D#Qt3JBG}A6?p*2=#NNmAPQe;b6?E
      zVKS9XIOw#niWZ?0C@n|D{X}MWViHS2FGwO0k42^||Ng9+xylL0!M}GuBQ(RL$Rc^A
      z%C^5Oo>)_amanzUhV~XRcd<*@|7!rDu{;l7lzp+!3i_y_&de=YgZau2-sB8fzl?3J
      q@JbHUj$W|#TuQo(wgH?F>m1usE<g_(Wqz~7Eo}4q)ozD}^gjVp6=|vf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyH3ME5S+tF3??taGeAK>0TeORAfynC09g(qky~`JPl+vaj{E@eSyV_Ad;lMX
      z*t0-NDnzrlvv)IlGoN4Y9{^6Ut7CzoGnTpOMLbQXJe!!I|2#Essq|u*W?W|J{vc1M
      zLi%@c6nHN>N({}AKXEhSa%}cTq3|+>lGArA26n+v`=z=(%7sR|z)-bZ%NaflukWqy
      zrJ6AYt!vw=rC(Ie0vTlIG&?wSNv#+A!hnXADr%@RH0(eMCx0A?WXMO6U})K~$0L^~
      zfx<t-QZ@-vhGYAGrcN1*L7XR^xC#pGxd1xKEjhT6QY1Z<lt^`KGwl7fg|e6nk3uJh
      z<XA%+WmE|1%0CtfFU??s@bV0<(n}IUooa&^W`Tk7(Hoktg+z<05`^Ysm3l>?2Ux>;
      SalcX2O>EI=6!bQB(EbJ?Msy(n
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=5Pbs$q!vN^<mSPHdZ2pNcn~nrG-y)gzLX7=lr8CQ^>=wP@!${8|74tP
      z^uWn@c{6Wz=i|MPueWyqXV|ZyMCeXc?njBxdMV7zpHH5b{w+f<RoVz;^kJCmrBsv9
      z2$Sm?971a@o`jzWHTCbta~T;zJ$wxB2gClLPoOJ8<F|h#l3bQ~ArYz<v5L(lp?q{a
      zA~?NtB3+cx@KA?KXa=#8!+bH8*@GA-lF$y)NF*bX#g_jR9W#qH;WYT)>E{GDO!F*~
      z*Ksj>MP}D(B6v4S$*gDnkSunWaPZd_7Q12*TgwWqVsubJm1B)r32U6OQ*asAx#AZb
      osGPjQdnvwbFxm!`KGEddvpElGVY7H|7r2FOj&=-T2Ycvz10Jq$@&Et;
      
      literal 0
      HcmV?d00001
      
      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
      zcma*l+iuf95C-7c#Hk^qw3K5wwLmCsftqr<0U_B=(m1lR$aW(YE~<@drH+hK#ST0d
      zS4dp&06Ym#f%tdJVYz~v&3@jU@pvX*zkmKhL_74{qza?fIG<Z_CW_)%lt<R&@WZjy
      z$Kp=&q7->qv?4J!$zZfR5$}bSiF|DF(IkmWMm0MK?0rVeVYK)wVkokCQpGFYGBTX~
      zs3Z5dV7NUykb9TW0(bfyH<I#^rt5QCp^Kw7-*bEw)Mixm2I{~=yw3-_GNO-&u*U;+
      z5aM9Sy|z3UGBO>`{f<45e1l|R6nH051r+syj;*eu_{ND2b_2fmTHYVynd{qOcz|-+
      z9aU@g``Mq0V`O@n=4tr~^=)k8t%f^2OzKpn`whBB8;q9xG*1TeccWw$iBXm?TJfi`
      z$cAE;O8<Ollt(G*TKE5F2rn4b!|8k$C*4$K{A*0xayls1%kyOB%6TS*NlzKA{VO*<
      z0wcyB0vmK;nVM9i1;~UdbP7JLxelMv+<+G~pM{q+%Y5fFufXRuUw|)az64*^d<AZ5
      zz6xE_d>y`_`6j%oc@4g$`8Iq<a|^z!c^zNQ<P@=Pq63yPQElrJZGBWNd4N?mh$`Rc
      cA@&WqN7J@(S+?wvT6gF%e(Ngy2|c6c50^ZQoB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>OHaa35QWbG0@f;sPkgd)p(fh6)|e<kQv<C5#KheNZlI(V(ue*oS0*lW?~gLh
      zZ7``T<KoVpuQxMi=JfOH?H#}gDmkPGM*}Z1daek9i3o?rsQ)}MZa7rOUJwc|4EEYX
      zUy6P!6k!zPkRcRD;z<~;@CJt69m!ru$UfMOOS48GlQ92N+YxRg(<}x;u6bu!rgg25
      z2>DjMR=b@tkCAKGmf5zO>N!ow++Ub&m9t#-%<-J?oRHo>=<ri@+?N{CSkbYF5}{Cc
      zJZVLbUFo+)*Oi1)ecTgnNBEB7>BmesbOM4=|JTB&1g$lW{GPmW;?}>sIaW>(bkp;s
      zUsWbbwrGb?`AdY0lD_iq;Qe^t8I<{Cm0?UN<e6s^tTE3eSZAJ3@B(uo!A0&w$|sIX
      t+|h`cbq-&#{1Qv7a#VsyePE4qUFAH)I=50IY{YRBTYPJA`8IY@{svqEcnAOh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%}T>S7@V(Z8XNm({jGZN;Gy<l@T>?iv``5Z+EDPgO_w$$Zc2U>AIp>A!3Xdm
      zd=zmvRH!Gt%<g=<GaoY_UvKXKE^ut1KxofIX89pYk|j&$)?)g!v~DFhkw{V|(&W^8
      zUUHAk3=|2C1$$&x$i&RLn=H7W5_HG4M<W8=5UM|_F$*)U$u&eM_Xl2g*t4Ck8pxHp
      zJsjHiifDw=RUm@&nxM7M#)P61O}PmTTNPAMBh=kM@Im%4;jzaiAtyB5$Y<f0#ew3h
      zVKJQt38CZuH_j!&97S2|^Inj<{tA7rauO<iA$aVlc6egokZ|&sKfzcPCM%YyR7$j<
      zqa>N33c!Zs<uz_fzPZLL@~7+)HHmepuyPLQomVtoa*L)!Wr)Hjw&h((<Ol3vH-F#D
      PaUTcrG;?_iM`(QmmYr;~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=6r9Ib6+sX`@#Mh+a-i|7F)>X{N{}XKdSA*0meeijw)(p~nRxIA_@j((
      zD<*o<%e>6)ym>os-#=d80G#94L5a|t>)efEVa!To3wJqtTDe08FVQ9wIy0xCOpQvk
      zg9@R&6pzA<g`T^?bSa~ZP`$k#1``7LgywfwDB@g}c??;BKMp3AutDuoX_Z|O%DuCY
      zQ1OzPtfP!p16ybiS|g?9IDeSR^j=J3N$8A{NW`H?mF4ThO14mj&>#Kx^%sQtU6QAf
      zyitYguZ#m5i_q}3mZ@i#A&rA0!pUF$1ZTY;-YBQylqGagMU9zLunp#$KX{#Q$fjj%
      rvcfGmQ0>29`?+XoGg<@tO*@QM$^vw-%e92P0{3yi^~>&%hjc#yTE1zB
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^U2hUW6o%g^&}k{OwSMAfTd@LdS?jmfc!M>mqBU8<{Q?tMgxSsRfT{n=D-$pL
      z0sbiCyIat5wU|xLbKadjXU@!-*<ZhZ`~+}-Lx}}}&8{9<?ST`9zGHe;zw^bn-qF-N
      z9U4cQP$Dg`-gm~1HE?v-I%)M)+XyVaa<yw-3#3Zrra-#pbyOB9Ea#BHqQF|+)#~GD
      z*iu2mX$_RXM%`;WgQgR>k)FIvo1PmAY}b?OI26d*-Y96Rw{Dzmrpjtmpg`_eYZcU@
      z<tSFZAy7)nTWqQzbUiH~C!WM*f!)Nonl~Iex??MDM)seOxF)cZ7=083ULcT(DRD!f
      zk{mNu+PrslM_~DA>Py_7XO$nk&RL|KcoJIz`-yWldVz8}wsFjeZOWaO5=DV(Vg`E@
      z`ilEBNs*t?688o65_7~Ion}}$rz9%#tiEyT^T2i4<B2D+FHlUJH;zfsN<5gSL$*==
      z8|9lGJM`C=cqC9xoGbd?cE9qXEKOaBr~k3TpS*$FJ{6em@R^o)F;9+TJ@!7U6W{PE
      zu+jM$jV<t=^REGthZc*plFEuTkg0sf(l@?XK$bQdjs{m~bFrTx^YQp<Y}c?(23W-f
      zj$cFpm&hyRRkFb6I(d`4McyGd$!+p3d5_#7OJtecCHKfG8I^QEJ|rKLPsnHFbMhq$
      Fe*kJJZYBT#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%Wl&^6g@YO=24fH(iSN1(iW!+EZBnBR1~=iuqeu+3#5rNN+)vdDjvgEA%PSL
      zi3K0PM<LFbv{D@}>^paS9`_#q`TOfPfEPGup(fZKCwUOXD$6dEJqsqIuNT4K{n1pN
      z>lPY<wTb$of><Tv;Nx(jBP(c}gr{!>5(-uh(<HMhu>%$7x=!7;pq>sVg7tox`HG+7
      zG!pFeD@=21;-H^K%9=DGv}Q*1I2J6uHi@xsNcMXJx*w(^-9;U@Jgj0(u-Z3?{*a#!
      z_4Jb(#@bm^CLXA%asB+VVb4q^xL@TxUzo1TV{I>o5bXNBD){wLI}qISunbSoCcTJ4
      zu<3`rstDTI6=cf~7ZGm94rMOW-rx)iNjlG`9y;g>ngoZ;it!w~`)3|ja6`~NN%Lu>
      zkBp1No3HrXN#O}$?q@Y{7fmd&Yq6`L&4-%Bnfnx#TC5JkwE4ctE?^bb=D|;_|0rM^
      za}e+nn>>5}0ocNAc7i*!DwAi}{$3)#TO<pA8XizX@DPs*vB$***C&}_r!4k)QH(R}
      YV()5_8c%MG8TP-GCK*?f{Q}kd2jbtFr~m)}
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbW0&rTCj6vn?pTUzQ!3lvb$TD59Br3^@1Vcd|IG`14OuwY}R<@R6d6s9f4NAU$*
      zbz>ruxG=i)5!5$O_pXfJ9VVp`{v@X9+`0Fh^WAfP=ggNsA3g$D#!46?f?Un%S(TRE
      z>Fn6uy4Bo%xnpgX3fm>yv1`grKUG!bDyO0zsaIhH1@ldN&$e2&Q?p!EwKm$-?!ZS7
      zdS16Xb%7KFquqL=lU@>}if3Q4O5ghpr_p^NxR*K4xp<Vodbz18-PP=-Ah_1vR$~xc
      zG!RB4iU48;#t;`wXHE)<ViJikrUdchf(E8BBZ%lyw5%YI$riNuB?BRh3Sz~EqaOEO
      zl$HC;F1P40S!`GA)~4+?^xi)VY661%IVJrAnJ^**tD$$b?D6Di-}nzkLpr)`gO)w%
      zsh%Q14eYuGc0;go0<iPq+4@~AB}ks_%3iD8p4}ps6C1M?CFhKREKG8*DMCnOvO}7F
      z(`js%n|!hyL3E?tb1Uj$L-!&+G{B3RpTH<Mj&j%ZoU2Y4%S`j^nPkX-5l0^>W)<Lf
      zGr}K70Eox+obe<`%NTUl7r0xeUHeU$xqTSs!U4w3h4+})$Lw1#{4$^8p38R%eP!S`
      z%<*i7fegbuu5i_FSCQnI7Qg0;Z!s=NTf!I5A0Ty_`Y)>gU`jtd^^|vGVxXSz)v1M>
      zNYl!8Fo(k;EUv<PLgqWn_W3dbo%X1A_}ddS4jp_!!7be8i6*e;6G-PiLtZ19`vfVO
      zxi<&}`y_G4<lox_`hg?uIn7ie2ul=(jAKG#{5B^zj)|cH(t`rh$Po{_#H1I9O!p=4
      PWx5E9tL}$j33q|NfaV!K
      
      literal 0
      HcmV?d00001
      
      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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
      S*;essn3OyqDgA6e0saNdQ(ff%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>dvg<296dKpy3Mksw55Pxu?4{-m9D7xDyZ~<rX-CRh!!7pliZ|R)7{Kw7xaVp
      z1@v!ca7F^7GkyR+l;gR(n>0x??M!nY`}>`9ey{uQe}DZ0;3k?H5(1Z+PGHtrR;Sap
      z{C)GF{<LjYibd(~yLAmofinlz6U%H_PSY$^4`j_3NS5=Dw**99V0y!KI=<!j6{{7<
      z2?9?EOzwq%0<(o9=MBZNCXn7c48iktB5c$6w(Z#d#{vtPW7gZ*3fVT?y3{d&Sp(CU
      z6PU<kD`^OvHIRm`cIOP7f*~+dupPM*99E_G(5kkiz+AztS*?oY+3Fl$CjEW8Bd}OF
      zA$BTF{iq}hBy37eHKng4lboVwdD@hW(zBgr7@5F)CVMOZ0gaYB)*+>w9r|AOl`B~c
      z8kFs(WBGwcD|IZob-Q6pkKCkVmer*SE!KaHNMoc2zTGnWW`x$aeyYi~Z?i-iass(A
      zPO@iWZnN}#2iBdOBYDf7z&m70?kV4mLeyXioImP==ypA@TXpH_EZ$86uVG2YJGiCc
      zT^8}kHq5MnWn9tmK0eg&!B9U&PzF8%3AHDx14|8o>w}FH_3YYUY2wuDSj8RHQlq^W
      zf6rE?@F{zART-`u*uW;c)oQn;!#=n%NYe8dsDE@7hq<QWyrpnHGjIb}sP?I6`%*R3
      zVhm)v=BDLarND0oKE0)NxR$MGxX;cCGeU!Wsb3(4STwMR%Q{MUpy3OF3q8A0AOl~b
      z%+U);3$D}TRAs{9(%eo+C2%nkKTZb2rkuJ`yEPbgG}4iuL&x=>eYqYq8q#CF$Mjn7
      zU12(Q@r{PZz0ii84Sb8s(c~ztI=;sb8ukRPj>W9lo*!7PqE*}Hh#0U?6*$fA4dq2I
      z8N2Mb@a>aDa`3A}S{NH2hpX%cUQOP!)iX2Q3vE@EfDOyZ<y$y`SCGOaPa01NO!1#j
      zR=DSb#q|`D?7-8snBi%c9!ah<xfeK-TX~N8+|qL_{1G~w=kHwj`2l~+1bRrvN4UWI
      zrI2ohbQgId04|Y6gu7Qsl;EDN64RLB8A#>+#KP}1N<e`tonY=2pb_p<F`!Tr+IQwm
      z&_X%SKjUW5xqjSP2sOU|*Q@dRI<AH1>v)4u8Db>4W@)j4HwSOH=d|!wCFee4RK&}F
      zV|6#z#amsx{SxoJ!0owDy12`mEiPT$8x{4-fT-nuM4uy1={@r8km4>W5~N745UtR~
      z&Qa#|@WZbx;cp?_xyZ1eaaD~+)R#sDU&X+aT(gLv@ARN^D_wm365oxgd^QBD%BTL)
      OsG&|+0m)MWjsF3qPPmr<
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dU2_vv7=E@*vozgO3Jq-l5rtyfQUb`A1VLI_D5M2j3|~swB&X?iwn^L%1h2i&
      zQ5?Nc$I)?y8I@~qD&ve^>Wn|Y-{O_{oIP8*NtPKeoKCZ6-}8Pv@AE$A?4SSq@*9A|
      zsOsp@u(w+Cb7k9f-G=Ec=T<83HFCw-qUCtLY0sMFWveE1Bs6SUG4Gi<+pJY{S4u0Q
      z>}eQSl<teJ?>0oOvRJPBHP6+ME(ET=XW6-nrn~H!C0pb*Bu`s4%R8f?Gdoh$keIAj
      zL<*hgF`#3UhQ0!8&H1Y(;arm;8nzbdWz#O2jwRniW5QduSY^2IACR+ZN*1+D+j^e~
      zdqb?(mK|YM2sNv)25l*0USdm4-7kxVXVq)2j<kl+m|9}pC3lG|JPXj!9~L=h+bX4-
      z!Vq@o$TYF2_6+RAE&?n2jw5Q`I<SH4NIS9=c4Lo@7c~sV;E^Z{yo8qtzbd@*V#)Mv
      zPH87oJ;yySGww4mjQu2=K{AJeaKWkj4GozX9KjYtvl!JeLJ~KW5s5W0CbM=k>s3>>
      zCIiL|97Ik-k6HGtdty>5CeXu-+&ygI2wr83sQIhHF+EOfd-ira5hHXT!Z8EKWr@u!
      z5h<L4hLZ;Ru~mZ}(ki9Yijvysmii4l9c*(@eQM~cDlU?Zpbz3DJPq0m^Lv4iD93Fv
      zFzI9QpB);GaM_YVNfoHqs6aGaG%zJG_pzM?b)-UmVpYoOL-b^hLfx#0%A`EQ!VN>V
      z#cWA3LsbQ5bH<Y#*BufeDGU-Uc&6vGoq_1V2zK%#tSB|Yih*HPc+2$)eGkX@-j0)8
      zaaP4d3o1)&l1s6=jU<uUns&@pK@ek65Q^vg%uKZ1bB<#^C|It?@|)HpHB7|>Dk;>g
      zdT!!@Cno%*CE?_sgC+pLl)dXI!wJYSDje&aN{gJ;ym;3auDmG^Mr#M82D6m4Hm=Yp
      z?p|?UlzmUEv-WW`fx4FSZ90xx)F>k^j##pJndidEL{%K-yA|7bpdb}APi@<hRY}1@
      z-FM1j+LG7za1>oAqDbil&#`J%8Rv*9=OUb`d%P!j+h*g`Bjjc-a0wX<uIfI&))L-R
      zwuPy3k>f;mBDm3`z|yT>xPy{z-km(#{5J9eMHiA>ZReWbCjNHwEyt(EXV>V@Nd3e`
      z2Mqou17jY&TpP*(o6*NS-Ppol`Q&ZHoo)0;@HxPA+qu)xWPx^+7W%_`g2BsA@WLAQ
      z7RF`|tl^cp$4HH<)%YJz|EB4{@kBcDD~3*W9msU8;n4NY<H^Su$#kWYM^5P({derh
      z=xaDS_5=De`sk0~?xu|X1SdX7YUyM;@#yJaqiSCtrFEm9BGSb0CXvpg2XC>jBGF%`
      z^(F>!3%j`9gFD!dMU3Mvj-rH9sNfs~rcq_Y3T|K(@6cX_gF0OPc>zE3>@R@^USkB9
      z-9jFx$w)6fU+1cWl}b3nRVVY$;Vj;u|2Qr%`viw_0*5e3Taxd)aGqIovdeq3h27~G
      zc6W#DE=hJ}>;FHu7dE)v;BzjR@`vo>BhLL3cKwjL_>|Vq$m!?U!S!x@fqnRr-^{Q0
      z4g4A>@eO<bmK}bF1w7&ezQ=9a1s+FuEQLIFlWWCe54{wRTNtBw+(+gVk7M*wJRW<-
      z<Jkz0Gq@Dxk<4BWME^{;v=lJg;xmUUEtacPPekpEnr9cymTS~Wv!zH~HCt}9;knsn
      lxy6o~quwSP&6Yb<YP01o%oa<j%~GbOBT-xnYPJJQ{{o|ru6qCg
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fvg|6kVqm0wHp-6cwaa@Y04$MDbcgMR2Awg`zNh(|X#(5^R%BdJ6hCenOoQ
      zbbN4p_M;s4Nn5NChnM7>eOY_$wRiIC_xB$F7V%6$h#^&Rnnt<G8;v>_yT+b*P&cf7
      z%Mr$^XYu!S*LK9Zyeo(>B>o%i$1o^Gu}gU-!};7E-{(e^I~8Ncw`CXxidDDFh3z^F
      z)42e!rm(9<t`p-Y*iJ)mr)>R;m@n;FWkCUb%eG^S6^3l;biuPL^yG9P(*=gebJw&~
      zgfXmP5F=zrt)>eDAPyR$=#!^04GQ|@X<WkqREFW4?O2=5TFLTuc&X|$rcSB_?%DF*
      zF-F9$-C)pz$OS4dyX>kOCjA)t|B9kjEV0EsUbBSdF~n2Z^y!|c0r9a;gjkkAEgpEb
      zu-3TX3{xG|Y}b&6d{fk$Vq4G%YZ<A8y8fYT)#bn%3T`mO{Gn2GHh=6<k%F!u9lRce
      zjjXxB9bU0K4YQadOrpGIz2nWQpe;zHgM{eG%1HbL4F+y83{q};P+8isrQVr$=NANL
      zn?^S)qu_QhQwnM?YSvWg`&iO&7c&e|UoI8*v83PuL-MS(r8RfEA~H<0#}OnjL)bQJ
      zgcwA*R{;tXHuW1A*h8B(McsCrUfFtK%l#WW@eMD?>ESBvY?yulVT9x|(<vlZ*?-d_
      z`yNsn8pWNXTaEk?ddKzXR}AU1hZxo84iVGm4-x<Dr(K}uIDrA1^vn~;7KZT>V|ay&
      zWYyaMxP%G15fmn=F!N8BsdUIcO;KK$tO;D{l&+FT`jV5;Pw3abV6-*a*FMEslS=y(
      zZ?P7|gdkZYs1@Kfv3NshMPl)mSa7ObBA@BA8E<1Avq>W9ixR;!X2^Gq5F*6jy5Igj
      zS!DZ(Z@9TJCpjEp{wEeU=Vy;_hwd?Y-#e*;OF4Cnz@uIpn1blhA#q$efrofRl_I1|
      V2Fp}w1Vea?6<>!ZR5gUBe*jaGU4sAs
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}Yf~Fl7=8{cT?kvD)MB}m(kg`n+E}Gppk62h-O9}*jf$6eNDg5!*<_YYYtiw$
      zI$HG?_z%PxLB<b`pZ!se&)E&I13|y+p7Y+G=e?Zw?|=UI6Tod0Otc6jN^U(_D9i2b
      zn)El5TgAt<q<W-WKRKs`tDdS!Po=cPgds3=rhQ-|VCMZzPsyS{&*GMRB$H+7mXg^(
      zHY0E@AAkv5h-d>SD$V@1Fa7$qfUpI+GTGVe!%RMxO4|!|YF^;{T-Bw8>*r*-u3DLf
      zI5t~Nr&edvsd+7CVm%FSd)dy~vy1jxs9_3LLz7CUSJK+LowV*buH(NhFgh0D)nFZw
      zgiP&tPQaL}7F7(bxNPBB^ieQ&Kc4G=z<`A|oYSW(7EHA3(^U%{h>`80<ErI)WnFn$
      zxn5SfOx1!c=cMQ8dqZgWn-0q`v3O>=PqjxE_ptPBEb`8dK-)%HmKet>DSuUZvZ8$D
      z30xYp<B_CR*0)r_r@!GpsgY4E|JZYUH7|Y16dDC_s!1(asr$9MpYhq^%8V{UEcJOo
      z)qIDYF>y=aV$gJ2+bc(!7+%CnCT=$$pWKpNT#~LVDbK>om}E@SomU&OUiJm9kHwo+
      zA>uWo<G*6zRooTmq;Hsz%^94GwzH9E({N5PdFVA`V!Am~8igZa7d7NP3$KAQ(?iI#
      z+EAWy3o6SJYUJrCayT|;0iW<?I#YPl!Yszw!Jri}%pqlhPhh0UK#<mn5Ed4+b7$b3
      zm8Fs*;kWU?1mD%QCL!v+Q%+`_lFR4kDGTplkz-P*R@iJ6us>3gL$lP5-#UlGaZAi%
      z8LK8%*uk>^A8^}*))wAH`jBua5=j2X=tai2ffvukkVVeKLxIbOLwIszExd>K1=@qc
      z*e=J*;9KArcT^9jTA)7+-fZFpTAgA=VEF$=l7_y+F=%QSnIpcsR!<v_Hj8+=v$T(8
      zs&%iR7971jdQa_vTRL}K<Id5$jZ0oHBfS&#DhmEwMEv)mlYj1pKz5$@XCn75-n%3B
      z3%vJ4?iU$daPM8>x0exI#y9xyO?0>aj^`5Nd+1M0>|ro*We-EY1{lLyPd3078GT0l
      zGBGNQ;gT<q2qWM+p65;5zCb$>oJPpKB{<z63ynRBu?F@UHGyuR?Ps(nenbE6fDxVs
      zcf~HfS}+{=YV0Ruu)`Q%pbK9zgRcVY-bVCe?0Ar^L003`P0-UI-pwG}UntSBrVfx?
      zn$U>*xbqjLmi2jXA2ZX&&GCJ_(P!{`e_RU>@YVsA^l@k(nd5>a2m^f0;NP$q-=ZJi
      z;VQnz2%h2wejwmeu9_cl7e56=Cqv+)B2D1~tdW?3JNOVEkytn4_!ytCNd1hI$EN{t
      JNt70>{|g}9_d@^x
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5Pj>KnmA5dTEa)6g_f^40W2<Df;coOA}DPt719F&v`H3sBgc-MbqoIr
      zBoK%LKY$;Fm~}#Ag_O(g&g`4F@6GJ5-#>l=c!UQQ3<lQ^6R#Wa(P+rkvDfdN4n1)q
      zLgm$T@>Li_ytk_p7EFfCGvO(Q!G1TAe#li43x?HZpPz6q;Gypws#u18m0|IT45fO?
      zP%Qm>?Y0@rTGSIZ7La#f!J$NH$8G1pu;kzz78#bCG8FsCpd;d!yc47^MO_}Wc`S82
      zNt)_dju<M<GeysOBzd`ve#aN;fX93wl!&$9hMSSx>hwidQHiNO4oL%RX#1zJRHDum
      zXV{n+l#!<stwaqIMST!_P}N55-49(cR5A)j7Opd_rQITQqcy#;v5A`&Zp?3ed#};k
      z<01D&>|hJq#7UCt;yq6S#jss+=XuXmRc+kHT?=;zJf};El7aVv{=|5C4(_4EkWW31
      zQw-jJTxPm8nZNd(i~hEOVSNml*CH}=7$tF6Jd=9F#o1v!)a@eIjJ^tJHT378(*m6>
      zoToKM(R0chv^(XM+&9?e%2yOVQ*2<F)}^#|hw5s`qmC8IT^i$Y0jm^ICD!Pk=8KCc
      zPFNq)u2~KCNv|oF#sCKy4r9t;5bI^SH*p153BOKAlj3Ws#s+0HTj4u4jw<CZ`fzJj
      b<ZCK;Lt@@$9w<y7D8NOT2<f}0g6{tT*{JJI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U31$+6g_LpaiXeeXleQxXn|0Fv=%8LKwV00M`_d=+fy3@PZ`A)sS;Z<^17uz
      zgs*{NnBjpJ9?A@)OgqC5;72i>m7I)$H05Pi=ic3W&pr39{`~979{`rnNFyQe(w09m
      zJ3VJO960ixx!rv*Fx~sEFHK9WX=nm-+s=K*>^c6HS>N1tJ5u0?)wXJ_jY_rDYzhcl
      z;AkcAhtlz7+v$zmBvS|hBR<wzziX9Nm5mu^V_UUeDYfi+O<9xsR=d`0m1-4BS($m9
      zX3e&$(e;$T$@seUam8w=`!NS~eoA2eKhDyJx7J(An-<VFqRQ@gewUof0#nyL-;*~4
      zv`jhM=2i*1u8t(m890UW0?ACaJp-y_;3Vb+j#WM1t&RGdZrE}*d#=FoYS3|dZ71{;
      z9vd}z&l?I{s2(nEkr{U)GRBrGBfVp8OiOn9#)Ht4?y4glfrU&p>Vg-T%1|H4!ALe`
      z=sNwPqOMz?cie&W*n~840w?xP+x2}9`@uX7Cv^I*bVF*Hv9od5iRO~kv<w<fXUAou
      zdxzwGPI-6T&qnT07PAMPlcD1e2SF&!+Z?$#TT#awxSGb2z~bS`jYAuF6N{WrR@EF0
      z2d>|31U;|wP{&(%JB<~A(|a=fTQmdj;9Y^4NaFHC$yRDqqphwM4O~~w>BwpOQt`TB
      z;C<W_NHLks`C*T2oug4U@H#G~u_{nFfb>7>tOWhOLza=aIx1LGgLaEiGv#Oklih%W
      zbN1Q27D$J&t^$`15_aP8?lpj92RrQL|8E56sTqvIj=ScmA=jhXEGR9ti>z6_r)iu)
      z3R6UBqC|veCa_NbkqK-NADzIn#K$J^9PtYi_&D*23H%~+@C`CoiaAf=G}kjkYqTf0
      z>$%4`n>+U#7JiBNyv%hrV%mj<PcefnT%c_}K8=fbg^2g?DsB89;596cW110WrrfVs
      z_?d?iP~lXuz#s}^MBk}6jHam>pd~}U#y!h_S00y%1g@aKRZ;z&K8^cI{_-x&T`cFd
      zU0lnnBnr^@9&s+ei_%k6KAF2Y*L@7D_7kQ)616Lj7zK>AgzT74fdT_xQ2H+^?N^lN
      zYb@X!7WOTfe1{zOC47&o_yNoKG2*>U`N&|u{1vRjjv}w%HtsNTfudFM0oP@s_)DP1
      ITM5+v23AF0j{pDw
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      NouFpT4ZSbZ{{h-C0Wbgn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%}e^6#i~Vb|GwAC@nS#0!0fU{D`fH3Rsn2HcChpj4f?Vmt>nPhHOkWP#NF#
      z)ltVE<AV>r_!egjb#%t@sSo~9j^EwQFEm(Ra?ic{opZnQopVqA{Oi}>0bE5+g-2i_
      zTc||SdA(dN>UJ)=mpLp(jRT`#N7o*vjiPN@g*CZV;T0G@9V{^dJt?zLw)H~V5IDcF
      zryuCiyk5vg6T5px+Flg!r;J8efs1X3?Oe$^)OYg+L2Am*l?**|G6oSm<L91K-b(9|
      znZVda2TB#&%ttrs7&@Fy5uVO9P6U+H2Qp)U{x$|H@`z|<$t;-mb%D>qZC_jbP9921
      zPv-DH5G}D>B5l{y)tgKTcvq~9;YSxPXz0U59)y=ClRXf4N`s1SX$3U&z%Q+khF)mW
      zdRoI7*Ba4q7U$&IWeq+k0_Qf&g0WfI-!)3xvI0_eikDC7B~$L}hh95pQnJZTxpe9n
      zS*f;SD~+0Vx2kvMA9eAu5s!`px?5eOWexkLUefms+bFSR!m-JJE8|BLS5-VG(ASdD
      zRZYV+JkN*><LD|d5N?m)itWb>cu~c?!040uNyAHcnW-^g+^};NyL5yRJGdp|E?`jw
      zwdij#Tehscp%?sEz$>zh>@{zA$0@J<QIYzKm_TotjO%SHa3$R7hLeph19UeOl~3)k
      zWZK56ZtJXny_ZcZDi0DByI8TeY`&=dMd{~nzV@<;8x+Z5OLQ#J{Nl%(*ii9S=Q)s!
      z$1-ufpl6MehB!7ElM<~O5A;f&lVR*MjhbGIGX6~sZ{r<iPhYoyF$z4_{t_Fnp_3qH
      zrao$78LGbBnJGc;EQw|O*g{gndsq|jIdaKPNcypZyDILS>ffNI;huEubzHagY}O##
      z9;+d(K+tX0PO=MhnVEfdT&G0Z)MW2;*(T$51hyq3f!2Qk8>|WRZ&{U6+E_Q`b027y
      z*ctV+vi7*l3DLzr3I!fHCTMx&fN@ri7iZ;gaaN8NXXRkw>ZNBN`uTgFyB{4tU?QSE
      z!a!uIhQY{m4VNM_H3TC8Zw*6{fUkz(NI<D!^d~3K7=Oo{%XWDA9bR{rq3_`W-bWBA
      zjN(4Vq2n3iZjctk<5^tcDy?yP3dfqDr^m6vq$tywz$7iNV?`L#=U7urP@&H>X6m#b
      z6D>V=LcZ_O9r+oTsv*U-g4K}fTBFsF*R_VLp+0`@C2;T<v)mCf!rjm@<{m@)4GXuu
      zkFZpgMwc{1mC-%S61eWjmM52e@-1*@G1DRf_z=S=G0QT-urZ4Y=5c@}9AX_0k-!md
      z;bTXIL6>b)g&n+#*O-gI>sYSmbe$Lv?^9$IhFVIy8hyh1KW&SpG-D}Pp=KOXSj8G6
      ztTToz@*7Tpf8dE!asC&?;?q*8V<i5-)~2*6Mq<G`Gj)u2xeIc=74Y)+wv<NhS}fdp
      zf6mBXuzkK{oxj2ezGlU~VO756yZp{!H|O5gWH-;ANIC4T;XZr9L+^3yBFzd0F@y{Z
      LhwTG$^dS2;?O-vq
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}*-{fh6g`~;CJZA4A*e(mi%S;5xS%M(jm=7#fK^aDxM7pDWT<44nsh)O{S!VR
      zRtZ`@SU&qvmbWJX0*vL;+`h}X=bpYjzyJLB3E&Q1Xz($_x9qx^FY#Kf%4N~qF6>rK
      zu_J70=7cO(3X8UM_7;^xLx3Ur&vZA3LEDf;NALo}#q2iU;bw{3TjrYUOEYwBlqz{H
      zt%}Vsmh}LuORHpNTRColW!EIP^Wrq(%I3DnOG@aRwQNg1VaUYJH~fExwwe}Xe4QaM
      zUnvM3e)JmXMu;4-x%he)h=YL+bSi7WfQF#51`TvUXXwpZwpgy0H-)ptH%l&KnxwSO
      z9ZQ{C&VVdhHHM@YIdAFJm`Ab(PXr8}NMmdX`HDNdETnK4!m&*J{A4;tF|J{ZA#`#z
      z&8ZDs#|?%c!OW{=VCavvBe+hY5s-UTnu}!^^o?D|l45~N&M@2(->R6(u~L`Sx?GjC
      z3FWjBRA2m*7gcrdH4PJl?h>Hv%*t^@$0TlRFuk{IJ(nruxXrhOW6<{AB}^i_AU^VX
      zNzyVAU5|BYt4b^UDFgTMfT5deo0Df~Rj1ll=V%SQ;H-jqRF&57(3>eGHTOMJ&@qh}
      z18Kw=I$XJQJjRR$+Sd^ex~I0EUQ6XjM24Z}eR>JZ;I|58LiD2Ct^g%Ui{|xAY@<yV
      zt*=(<PF^foYK_BZ{{@rk`Y=kn@27u>A3pUc$nvQt;eP2sxDk>X2IXC#lTGmeeFqbv
      z*f;bfk_YHZOdOy;kvc&5i(7X|#R&~~Nr+jh&LM<lgt3Cl<V`dYa0NqjQn?YzW3F|T
      zdiz{!n7aGP8^yI&@6Qxbu~ejEAHl>|^fe-#O{>2V(VAAc5ee+0o1)=Ej5Jt-3VcwM
      zZqf?}UK6o51pOAhc!vSJCmI{n<O9aRkwo65IM{4-Off~(w}?gnF~ljBAfy1DlddQ`
      z<WZtTzay2KP{a;#?-!<*Q^`X-qH{leXU~dLp_(cQ<B%{l3`4ew6Fu%6#Zx?UI}hPG
      T=BQH$J($OWE6yTy^<n8RjAnNN
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}*-{fh6g`~;CJdtl1E?U8#U%;LxS%M(4G31sgjfZY2e(v{v@ldMiIWcC-|z{s
      zO3?Db^4X8Fygf-Ez*s&__w9SnJ@@qK`Tgg|PXKrEQiG2nx@FhRLW$RERW7&9o#I~A
      z6uZKfW=6>EN-?=_$)wtA2rxwcneFB<XnDEq2wr5kl-}XH+$?c>%iM5d35K40sZ!w5
      zs@Mz@X%Dcvv`S{WmE#szc1?1-AWkD@H+MuqQbPBlWn1zoLn?Z{;r}~y)U+UDIflS;
      zr6_dx(Py9+Aqqs7V!0j=2LoN`R;vL68iHyyWS|E+Ltomm#ag|*DVz<yS#lZEB&8g8
      zEVXY119ID{F~q&dc`C1_Y^xeP(Jy$SjIkx;Ywqx}kiuaYjHY7e2h%Z*NevSWp_7|w
      z4sGBDZZZT3W?5N*Asp>QaDzl6AU{`WES6%>^LvgZ#R`|4VYH>aRWVf{TbI?kT$f~o
      zazg2;C-)1Ys;<4JVVclg0+gM~9-ru##T^Z%x5;vuR58PCz9k%kynBx@iR_B_$m=CZ
      zULv|4ZtAE?DEv7C5Acwomuj1nr^u;uoz7{yzzfbQn(eBDhDY8^DXD4qR8hw~77Qd1
      zW9V|_((wcf8py6=9&}HcpB_u4Eh58k^FF-<X7F3ZG9h|V?o@yhrA704CU(%Ki`LgG
      zb*CU!E#=~YGk=0vb$b{m=lkhL;)hQ?30nEogK)p}9NZI98V2QEpq)+U0s0QbL$PnT
      z7@s;se|-87;rPrU2EVv<m(@9;0j~%#P1PBMu!ccoafPDsCIYTvn06|6gz}iXx<<Wy
      z?rM~}`zad1^;Yi+ov5?Pk*)&-<6qI=80l`V!i|x@0eUGmc!aSAYfzdGib#aU0p1Xu
      zw*>eOeRz)ne4yre8lJm^hMKU)geGwdx2b6WQN-vhP6z?oPq`B8Qbb7*`Hq>)w4!l@
      z`@b;1HZygE$FvXAck!$gWva1BhAPSM38Qd2q=+1Mj^G)dyPb#e0!!2>go{|liYrBu
      Iy85vC7adD+*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT>HB7(JZ~Oc+K%A*e*+U6Vi@Z@caqcf9~wsp6ty@ut`$Z5S$<q$VA3ANQa5
      z6JnL1wGUhSygzDdPfr3w9m|*L?(cHG^PT>B{{8Q-zX9CDQyU3^TrKE$mAY)VTT*X%
      z+tuBcr*>4Jy){3m)zz9-twnRTVF_fv8y&?6*c*B)RI(~?a%o%cNUtt~n)foYl>|mM
      z>dlJOelrlbxD*4{(SF@q>c>P0e$du3sHiUyS2wp+MKfUdz90DdcY$*5+k!u?Fp$%S
      z%&!Yr^UbPqki?jaQH;}&dz@b%0XeuB!m!y*y0DQlyD1kVa0JGd{6MXA8k;J7DL3m8
      zV|G$sm!WUYeWRtf{I)<Lj$Ewrrpp6WQ%Cxxj+Ak0N<WjKY$&Zlfpo5%|F$s)7jVhO
      zMS=07o9Q*};xeuXqzE%_MnPaAH;51!NyE~AwAhv?3pg9Qp|90~)KXxkuf5;&jA6B-
      zTOGZoIS7rC(bHLcS5Yl<?QI)#M2`qCy1aVmac~_sY<TfQw!U1hF3UjHROoVcZxNGZ
      z7t~wXscX&>>BdacKvv1%-*NF1eij&IZm;t)C-u(Y<Qz;v9GqYE4zfx%eu-zwpx(Hb
      zs}Anso{JLl0z;8p4t~Qu8ywg3F?7Eeem<7wfrtXrz59$4SRm<F8$^twJg5Kzwa<QI
      z0|#jHqMfy7C#<L^zM105ul@wr&F$d=CqKy_NfHV3B)ChM2NA7&4v~jS!)4qto*ML9
      zT+;>X6OI>V_i&;xw}**BaS!PaQQ9efrw9hD@ViQoXBfkCOyUJj(^}{O;0&gDA`~(#
      zETY|6mQF;w8RjKv&Ej0Y^q=$?UokWE9;w1doaknTd%KBl#_sLX-Hi1fqx7ctalR|M
      zOh~{`y2|GbydtI7gx(;fH>4y<W0OTHxP&TZ@iwA3)hl#JvB>Oeq+ub4JbeWsSv=21
      zn(WYGG|7HOae2-V+sEyHaCfCRyN_Rap5S`_YjHy6v@wnj1=zt1b_c}C9#+oc0Ukz`
      Wr|}4nS!o={F^`2voJCem;K~1_+I5=%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~pIQ6g}GpLel`Xl`0^J_|Y#Qe(+Yu2c?d|mO2Ad$0ugnENwb%+DW&d|Hhwy
      zGm4H6j?exm$Gd64qTywed-vRP&$+wFuixK)0C<FL9TA31(;Hfi4j&BqT(+#XbJDlO
      zvGAmI(DDU$N}f|vp$?5<^-6GnVbBj{P{oiexA`%*I^1iHnTib4PhHQI&lnc6|8M7N
      z4BCsHBMd|lH=)C%MD}^E76Zeai78Ao%$HqH><znh;UDmNN2pG{2Jh6k@2Ys5)MU#Y
      zFyzWtD!yz_i945WHidk{eclyP_)4ptn^0S=w?#t|UXvgC)SlT4#^H(YO0mNwXIL3~
      zb9<IbREM%Zl>3r~*)1xMM(KS+^rhSL20Csrq=G>a+OA&g7+A%cj@#iQuT^ZP!ad#;
      zzKJ_nCr*;QBaZm6BN^7Sp|&Tgii-c9iTilK5U1LaDcfP#o;;bc*HAjwvCgZCI<nzP
      z2{f9s?HI@)Z=!%jhN)m&46)w%WEhr4GY*>?L)3M;3~OPhIcbZ4(j^n2zzHpMdd7Zl
      z=r_bmS6!jh<;$?8PJ{+abo8Y#MAX%zw<x{qn4vXB(JRVF=xOE?`d1kF!WYbbqBw$i
      zTIYgVo9cEE$7>`gmmcA94M~cq5-HlJD}?J<_?LBg>LX_IpD}yNP6<27S|dGgVc^{r
      ztZCdJHVrqiNOen8tx>!jsBTk6qfGi6Rw^5c{|tA3BD1$yI79BQ{$zl1Xcg4ui1ams
      hZuwF5g@-gYuo-kqVha|rC&<%7`oE}YJr0yV`2)G93Hbm3
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~7(LT&Sy&dRMXG>Y#0$Lu>xH)(9~6vD3MDD&i$*f-j%Dh0+ia(x|Hhwy
      ziK6kr`0S4|ezR?{!6m-T?tF93nRC9G-Cw`I{{Zk1+a_WR*@oY9>K^ZQJ6s(*P4~3p
      zh!f!}=kPcX+^r}cs9jw!VK6LT2@f$0=8+0{45?C+pK!<Heq*3jU>JKMeW{)@%w_&v
      z&Q=+W=WSP5h-1=*37ZO;XW8lm7^ZC`Fvc)blD^pQwQ3?b<TX#|o!WKoRe2!wd{8vh
      zvFtMBOIJF+98lXEnztK59q@p+gc5;vTg;C5E!Uc&t_W|a4;?bViVW7#X&{x@;fgaX
      z4bsWBqYLGp>hx4aQA1k=ozmKUUl$!E+kV%?Er!{!RfH~<FIFrpW7Wh;bknPQMR$+;
      zydeS`x3NZ=WO+xt<vmX^tYxxM!ADpHt$)|XJ=|xQByK-c(Ph{kJ)1$+NIB^`Lsr2=
      zCfX^1`kgMi7S@rok;gnkB5W7KM0?m7hJ}8Qqq@crmu`z;^?$Jls3e7m1de#2)3Yk=
      zUQib=q`pLRm#@Q?J`-v!3DWn%5YyL>-s1FbVw}ban!TiYjGlHbX?}&3%YVVtCz{7F
      zL*sPF-6vidlQ=+<YUw^6*N~zaF)>T)bct{sbC*>Y6CW|2`;4hGc1GAy)mP-_H7vZj
      zLN$#Wq-NkI=83mJY=h>Dq3b49463BRVQFte>!0J!Ppt26=FgG+>pvBuB#lkl<sJF+
      i!rgLx_C<y?Hn17)mckYsQcqH*2lSWG-Fg%{fBXkTJq;EB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TB^j5IqCcYDGoy{YqRI!G(<r-S}9j7)gj2F>KAH-ryzBHsu!duXJVN!VmDH
      zjB^Vr8#Z(2%$##(I{o_o_yll(4I3%KPQ#B~uO&L2Q0OPO`Pd6x*_FO_Ywb(PrJ?~g
      zEW*}EYQiCmpD17HGeSCFs1dA-;88kAV={v=I9$k|oBC{7`SK=i*JX4s>Mco_F9)7z
      z)kLHW9uzJ8q&kG%^2o8n8y*uf4XJNMB-&ETh_IM170OM~6>dxT4YyKnN>4M*(k~&;
      zq!Ph-=tWA)OQ8i}Gv8;cz%_+RtixDWbtFam*sSdopFJ6B75E(+%Y<Cw&FoU;uS1v&
      zeno_}(S~eS4dTd?SIQh<ZunF7jWM>tcjO-hj>PvH=V&uJM2a)O-phLLn0Vtfg(;2>
      zzrYC-Pm$p))2Cq?GmQA`$PO%y_%+-Vy_%S)jXiLkD3|)(fzmMMFwcDpIV><*WTwS<
      dX|RxC@Pz+W`et`SX7p!9Sivfb`8>(+^&e<#i7x;E
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~8B16g{(DSXmaRMXI16B0@ia^@I3Q<AVZmla^{AeLxMFcE>VJyKS~p(0`?g
      zqVd7_?2j_u*_OJACBDqey>srl=iWQJzkYxJ0pJ0)Ef@@|^`Ph0n!MZXaCPD~{IiZL
      zPDP;HO3MqR+SO+ZCd1OD$OywQeJm+J^5)@5D7ep%DmM5jcbhz@yM14QVf=|kJ!P27
      z{Cl0PFqqHVzOa$Nqyq~MIWo_(l?hM+2V)p#m?_FY?Dtw#5gzhtQ|L_X8gEv3D78Is
      zn(9P$8P<xI3Xhejm8pSlr!Le>9`cq@BGf{?Y)opo+7LBGcvF4oP;TZi*vDs~RAPrK
      z&agNrOtxL^DECySrw$bLq*c%b+Pm*-qN8Lx=vuhNFdKD=&|Z0XV`B-+7H*Gjd!^+0
      zB_8m)2p!zP3UQL;9r2F$nu=j1lO0uaEUKXSR~_8L8p9;T_KWgpXxs6z3~C)oCw=!K
      zs$d~AS}B40llOcZ>&Q9CW1e9wY8S&q`=T=p3;iCC>Ka2r`Ynd#|CL2RC8>y!z?c@A
      zo_)~ng*CA!_4`T2Uc#0h2X&RW=sRIB^rNFwg3cDM&^kfZ3-TMZJGtc1SJ=7y7fgL3
      z+rSL1(^2dW#qDAedq|Qm-N)l9Qe;siX6c^Z53XTu!1|bW&1$fZdX2a=26z?YFoqlk
      zv0kTp6E`qV_yt0mWZ#T5HppX=C;bhJrH$NYOr7KIPpt26=FgG+t2Py(j%a;NS>BME
      jw^6oSKYExgjSXx@*;3eoOYBLi;6D9JbZ;I;iXZ&}SMmlk
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3Jx>Bb5Pb^=r-+~^;76me0ZqIRV}(H@!Gr{DFcfynvBHvLA$JG*SNsJwHdZDU
      z{s4cJarQu>Aw;&=-I;mwX6DW3*ZT*60(MP=7*5)1XxR?;yaD$+R=4#qu*66x-@2EM
      zFI>+m>tN;4c7`o+75GdT428uKueon`#%T=EGpVFsVo2v|T|VNL!&Td=`>s^&V!pu;
      zqdH>X%f9kVEYIog2Vzy#h&!@1&Yxy780CIT#1KY2jtHU*$(mH+X4q>A_m(#u!H}x;
      zZSFL<E44jw8h%H545zilM*E{lk-;PdNin6_XQrcYPfH=Fz(H<)g^Jd`n7`BQXX4nv
      zCPO4x2*cigX(V91KXh%qCmJ$4ySiiD81})4UY`*CNFsVovJA485Tjp-JRy3chevN%
      zc@2=ObjJekIptg+L3U=0LK16a5gzME5ew6u)2+EKCtL~5m41R5euiPZP$UG+86_N0
      T{l%A<@+FYPR=~F%;CH?O#y7A7
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+j7%Z6kW%bEyoqj1q=m35J@k-BvENvpcq0)nzW+1(1r;E18rsdU@LXxjHQI|
      z*5AkzKadBQp=PF?DLnO|AHruaUFXQTKuCGeW$&~1+H0@9rGH=l`8R;`xMd<CaK0X_
      zJJqHahHGBba8_y$*BrSagUET{HzU~&ooRJA??u(dtoE2N1o~FI4bN$MLETxbtjKC)
      zA}uiXUNCn?VaGrMnO|6xMFN3=xjn?CsO<;!vOxNZANbLvKrVmqxUejco!P9)wa9M;
      zp@|~`6YnCh6XLkRhS&6KG5l_(fHB>w$t;rSv(STnfn>h0oW)V(OdNZo*ErR}ahwn^
      z{h%f{7atHH?-pE@aMHploF?(64C+xsBe@xzA+v6$_Nw>Du1MPpY`N)GBidBfZnf<&
      z^4gIjgPQ%&j~e!HaX1SLXBDMv4+PFxFp&}Ho$~{^u)bQ6?OR@@DV27us@Gih+P<>8
      zP9tjgA?wb)OOpQ`FoidF=aSM*3J8~K*JX5bXJE(jg@ZF;rtU|w@<{&h(s~QZg}Ygd
      z<8u>^z|f&Ib*#mO{X)Rf4BFnR<kqOQaQBmlH?eHuORBWDPI`f}n7{=K7f~cfqAU<2
      zgRj|GQ4Owa;R>#@MLmV^HYae%){*m3T(j^Et_$>p>y=P%>j5&|C05bX7QR*B84g!N
      zE9b0&_)g$>-hHEqeR-~hlFCcz4^qH>pP<~t=+T<qh`si^s<1Z=qty`T-#0w%;?#|R
      zqHt$PlhI49^>$VAQ>82S_D^73;o}_FGRZ5&E1|ZNKNe+kV`+at%b;c9L%#jalO&(x
      z#pmcP^%Xl9xH_14jMIZ#I5Al2;3K2<7)Snsb!TAkIfh;oOMk$A%8Uetc|V0T@7IVp
      zMdWD=VHSC~7{d*W@WhVM@i9K3#X9(ud<0`h@EIc$d@rELyJF+;DfmnkpTT~@m$*n;
      zJC`(|6$f+y1xGPTk4k<;5{gWvWOOh#Kl%^ujK0Lg!dM4iT{aZrz@-i@Z=wIBwiq?p
      z!PNH7$<!8x)VuEaLMjeQ=29KZFl{@wJNSM(xxLG5T+4Z%b$_O~zoHi&a;S0yH8vwr
      zMxBB*u#De$8t4utW0t#;R4COC>>-VNn8Q4K?!}K-z#^r~@#H22Gl<ehZ(a}eCtZK(
      EKcz}_Gynhq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%ry}6#nkktuU*=_~GyeC_lRmC?aa&j0quNmP{Z@Ai)Rhw#z7P-O?5m{u5t)
      z=0Ow1#0TS(5B^ccuPw?VjgqD9J?Gx@o%4O?-2M3Z<tu<Yc%ULCFk7?tjY{2g-InR?
      z8hh2(Ekhni+cS2ox+fjiSoAkn?fT(z;839mbnlr5rcpQTnz35mlNC=zQegVOSj8nD
      zIs_7kZ(CJ?$x=j^RW+W;9qCBBBG(UFvREw$Bp+F}<vkY2=@*R2ZV057-c)4EvzoT6
      z;<CV8L^}EVh*7i;%(_(#NdE~GP!^k2nL-@h8amO#+V$*43ccu8(I+q-fq9;Sh5=j^
      zP;1ijISKUY+0vPkLC!)a1O_#z=n&{CS+-o+Z<M98ZkFqeNSB%wv%X<EmT#Xr6>rya
      zNi0f~fA*4^CLFm_WEZk5<w7JFqc%*hvMZT#G_nz4&Y;zW>{be+7*{bSFcguX?W~3g
      zObTd}XU%lXhUEAO^y|fTk-~8+sK`>DzqCt1M_$7era7UOyWqN3&GvO#cA5==KK-27
      z*)1v%lpt^`iho;qB(8Wt+tO_~r}Yqqm+0t7pr>s!>?lVtfC(%b&zt*BMe-7`pM8Pz
      z>~_uglyI9f5a*NN6Z1!b7uL5sk)nNxmO@Lz6|Pq4iSgT&`;4yq3DTRn{3m2S&=tcq
      zzSBGmEbzTVfMo_f!F75D!Z6&xO<DxN5EBXh1~AOG4{iiDkjQ;R<~<!DWRh-REr8L2
      zb>b9;G6vQA!S8rF!LOcIPB8Lx>N|#g7?!v)^$q$%WqObsxwq(0jyL1S@na&T7(Gg6
      zVV(&V3~V8Z7u?w<m6yoC*Qd-=Rg9s=nRyk|F(2moLr2F<P<|34nC0JHjL|)q!(A$w
      Qp@#EZ`6}LHh8XVu0uUEJmH+?%
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O-~|05PdZugQF`5E9!m;@d73~+0Diao4pW8Oo(pchD2}8&_a`8hRihRkJ>wl
      zChpxIWvm`Q<L6<jrmA1PS5@7YS7#RhzN2EpBK+tDW7qRV9FK(VyMyk@$dwZrX!lt8
      zT1K(k2!pQDDh!0*Oj0(|g#18EgzJl-=k9j~($h9Fgw1!^c6SW<4G|&pO9e{*CM;E3
      zPYLU_Ho@6B_2kH?$2R5&KVK5KgSdO4-W`s7Ib;dhy)PxC8(~*ENMT_fHgbeiwbssJ
      zkx=v=#w*{B?7%_M06#uy>_A5<=p~KiS}Krx<6%cee?`ZaghDIygx?mCGVyIPt@|qG
      zwp%at{q~ycgt<q}8G&ajBG^Nry}o3P_3G;)$<ph!Bf?B_xrFk2VBY;fIF3BYcg53{
      zo;`yt(+w)%W%4(}Z^~kCBg=l4qclej=J~J52#fu~#uOjU;T#t7QxyIu6-#WL<g~#R
      zO_Vq;-Jr3I6^^(LtN6rhgwOcG)^KjKH=I`LpRq7J8O{NJ9&uRr92UOf8=n)_5`6g@
      Dt_8(V
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy&2G~`6ot<ucH9Qj22)BQ{IqnFL{JO1MO_f3QlzL|fFd<ep@}mjj$Av6CxK^S
      z$+{aPP$iIH&qE=OC#JAy)y0hG%*_4nxp(~Q_qQJao?_cULE!N)p7}u}({v*B$R7{h
      zPkc33vG(7Ekyg{xZzi)??;GL35~z&jT>6oWhyG!ItOD(zB=F=)PP>(17a)Ps+aTi#
      zh&ILZFb?&efK_YPy8`9bhd@nqn8c}r>jKX%g8#kZx8u2t!h!L59!OR*8K^RfsJK|h
      z4S`~<-Yvt$%}ke<A#lrugC&90P8h3$*-2kbU&(%?1iVfX$fzr)VW#s<OOL`-V5f7D
      zoy&T*D`4lPE)A77E{zw~?VLy*j1-yMwacNVZ@cv#LFQ!yHm|zO7QReo(?GG^tfpeJ
      zE?U2nJs-AMeUZcFC}d6GFOg|BhWZ+nMdf0Jt2aC;@Vn7C!)n#~1ou1Kqv{#FpN;BQ
      ztbOKL0qdOC$piKn`+}q<JhX5d`yAPsVPFGys7S+IX65^%ihG>1Ouo^8-S~pFQ*JD<
      zC2j+U2IHEwonr*<<3S#LklXYcM~t=xJzDz++d3`&Bdzcb&||XKsNncNW8S$j4-c_v
      KjBFVPkNyA?S+UFj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2hXd6g}gwCEKMANuW@Y5K3t5b)0R%(2tO|5JKzJI5b3Vo0n*_9w!?%Ys+4z
      z@F)77KhV7J&`OPwiq!UrN<8)lRXwxo*haMqmb`Ok=H5H!o_l6q{`1@K06xUJhL}KM
      z$8TGXXSZ4nJJ_}Msy{R=c_973s<~bun=NbQu_GISTld#|@5#MzQA0vtbk9DpEzkCM
      zthMbu=>!^50{PeGE3T;YQ6hoVR#VoBRe`zEkVv;`t;?EhO5c$iPa3jVT@=u^9J{@<
      z8wiL^fsw7Ye=<+qa(y@WOkh6qhS@eZvlRioS7S@VsKB)$P~-^>R?$DOJ-527Nb3a(
      zB$n${sUwbY0|q7p;+bqk$2pwW@Q%RMAvynBo`DN^SHRejL9cLuOPOq`&o&9O9@cAp
      zheaKenAR{QaPfcK3|zttVKKMB#49PI1~Sh%yl3DFW(AUTQ+;6-t2)wnUsW~7GBc~$
      z$_NCq1~i;fR?ff(bY<lYyain#U2=U{Ztri)=7zoPNrACa-Lbuj-E`HwyO;=e-Il=3
      zVa<B22&sf*S39W_0i5b<K_h-883JXgZ$!S**1jD$yON-;43$uXDpc@dc2mcvxTS${
      z(?bpz@HMam%2KuUf!(zCC2y9%*-UY;uiYkS_<{uX`xxp>b>@zN8(0<?f2DQd_M(Or
      zfiwM}JN3FJZC}S-d}-h-6nXe|v{tdbHd$d`d3%x}NP(GQ3=I^(67}$vxUcwO+#{ua
      z9yy@P2nq2GtaWjy@Q3ww(~-RQJp6p`-t-@p1%)1$siHXlNq%EWV0^1$N?zeeadA}p
      z22OMRZO#&$rE!MVkF*mU7tCiE%e}ybTnA@6xcC>+&yoI~v&+wL^$#<5jEp&X4AY!C
      z#{4ggh+%=>X`TnHFh>z%SmnILyKo;Fl#$08Ebf}o3HX37sQNA78ZnB{x=wVl&??YU
      zC~x2<zY3ehQF$fJUy=ElMs#E<T>LIfZA1>;)B+#jW3H&+zv-<C+ej>_@E4fPjix&I
      z<WGEF&a0IUZvO-=afC#C=?JNB<4d_wEp)hBo;<`<zJq&*I89gc5a}c6wB`?yOgxQ0
      z<ryQG#T-eDFqt9A4rev)JR%i)7>7p>pHwtR!2zzLjRGErxC?9+vGpj~Aa!3eYYgio
      ZP*F0D3DQ_5B?Zhdb}c05LCC^4{{kb%mVy8P
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6>rN9<5dKbYTh_&51yoQdAkZ5uf)}uOB@l}ZC=inRhb+6NWyyBiv|E(t@I^Ec
      zNF<Sen)p!0Ion#WZm?;(Gjn$4n{O^>fByRV4ZuAtN$@eu6z#gITUxDF(VRVX-*{h9
      z`2n{bwP0Efuh!HRlUv5RZ5^(-2ND7dJ^R{$rdpa^RM&U+x$Z~^F--jzE4wV98$b-9
      zohmP64Ti~_N2F<}8@#})+}8QlVTEUn3`2OQAn1so(4uLZ&QpfB@eac~bW3bA$jcve
      zUUAH_U6XK?Vb+5n|Kp-&?E}p+jU~~>R-lBQ4&&Sox8fKAOJ#%0@Z-7y8NCetcw$>d
      zKW<96!7%Q@<=<v0xP<`*rO2ID8ySY<iQM_@sQv0@xp3}~k#QSC67DbzUgD-;7%`$n
      z*bKdYK{nQbaQZQ-U<`K|g5)L!MpdlJ=*EPoYLd!~uZprFnCJpSQh|i9(9#OJ5N3$v
      zOq;LOOS`<frR`drA(|`enzgM}O<^|=1J0gVqfUEG_tH(KbqY2Y&|ff#phQH)rZFU_
      zrjEKSR+6IJ2@*g_bM!q<Y{ooyvO&ka1DV7-2@4DZ=WX7o+m2b{twjif&?noj-*huY
      z%q}}IvsAHoiEb1(WX$7<Xe?cbzW9Y1Z#q@eE@s412i^P(F|XP#a-;p<EZ3_#r<+RM
      z=xyg9IAerH<)?oTKKjw@=&RxrlOq|Ra~W62R>%sG?4~(iBmE=2^OIaio*<g~j_%Yk
      z`i?R91Cdj7=gAs5!T4F)wIlhoYsb%$sUswk=_8~*Q?L(H^c;0lEfe4?M3Kc1Uej3)
      z(^$hC)~O+HNC#q#gitX<7Nw?-Uzi9AZI(12>2tVGPeD*6Dc%K>Uy%4jN+VgwJ<Pj+
      zO2eTE$nd~3IMp7kdj>zmBZ3o|pAt_WN%<7>`RL;lES|Ncw_Sw(hF7Z|8PD*XFc@CA
      H{x5$6j+J#s
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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|
      w2Cm@z(xT*4prNUZ41&lu=z$DpV`N}tU<SI9fq@ZdAu9tLh{eDTB$*gE0CUPU;s5{u
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TTc@~6#k~SwaX${D2OQ6qP<X7MZ6V#z(6diV8ArdXmHq0>5}c1Y_}+hzsDyZ
      zG*L)2(Kk%|QO2{grL9SUOlD`!*>k@0oy+|B`~4??TX>`(z%ajKH*~||_4*!nEBbEf
      z-JUM?h3)EP({hDV*YkGW<+dT#ZR=n~>J)?+`gi$0*DY@E=<D0N!f+Kt7_#TXEqmxb
      z5JPm!Y{D~46uLN@r6zp7lw*i2nzrdaW|&T%XPhcBsLSsSvFDmKyRM-3lw?m#DA9dx
      znI%7)mM25#Nv$MQ1ktY{ic1W^WU8oQ0C5F_3}a`r)-Z%&25m>U8=@>6L8W9EPo@g(
      z0y?6sZ`R6fgPe*Hj4HUoFnWfWhO4+nd<dIi@IOdD3&I(|xP}Q#GK9%2Uy}4!RcM&@
      z(n(N$$<<Ub3Wn<%6kK5FE10%eYgD&|^MY?%L^oEb8Qdyz$Moc;GUQgwI>SP@PMkMF
      z)XQMaBr-i7sn!TgQ4VL9lN^;Qca4gm(A}rNk1fY6mwKhrsLw07-MvvAwi@nW!Ee-a
      z?(nLh>1T*1^PQb)mX(SrJx>|h4pidXE5&w_v5wBS@YL!-+d|!}H5^0GBca+4pXl2U
      zaL$_vOj65&w8OLmUgzjpdvX*i$vq^6NYZeTZWX!*=uD)K(3d&JNahf+LtOriz8}zD
      zk~DUNsbA^LH_Ut?y8v#`cZjfoCGuTH3@aGJQ%oa|r2HrGkV2XyLPmxdFj}+7($|Zs
      zOBo2KzhdSyDSX%nseug%qse=?3Bxcaojm6cWF4Y2kx>qD^V#e%Mm-px_geNCYIgP`
      z!l6$=S}km!@@qu!hRU#oINo9khK!Z=@j58q#XX82p~UXv0mX}>7Z2&?l`$tV7ykho
      C2uR-m
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%We}f6g_t`$&fTOZ77sy=?f_dDi%VpDPn_KQ4!GvB?~sxnYf7~cM@fs(Ebw(
      zDitBI-~;$5#P#GsRgDx`ew?d&j?caJpTEC;19*;&03P8*I~t16$T;px+Y#N?*S=6A
      z6<Kkjja7qK)O(?{x)&Wr=6pYi1@H+=T{)7%$fzw2n_U&!06D_WT)Bfir#==U<iD7S
      zJYln*LLOReW)^k{xz{?<_6^}lWqx|KK`88<g{toghy&atyiB=7O;f}{G?GTQrZvyF
      z1pjTXr3%Pksfaw537JZ@kq6;c5dm%xN_8En55v=@8XU={QG~LSF%3D;4o`x<?dX_o
      zq`9Bhc&<Og{UR*1m7RJdY*(sjYS&vAoJt#Z6kooT+Pm@X$@A=1KNGS^fUuq>el?k!
      z{ING2go<C4%U+#2`~PE}xzB<P?pB6pmZ#^M#{baaJPM2#82OBfSme__M?BsOwVx=}
      zp8i1jf{}+6UKg1KyyNWm%&p@#qdVhl-d7nh4|iFgc-+H%UY({$Fp#ZXqWql$W4RoM
      rflrA{F*#=^GK2?sI3d5{-5K)yZ`YW|R}6SF10Eh>jX8wJN&fmjkO$dh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}YflqF6g|@i3+rkT0hMQYX&=C<_%7mum#tM3N}AvovUI2IlI^zHZo&8y{4IXa
      zL?DqwKAQNWjCXb`t<3^WI&)`w@44sRbEm)m{P+prF4iRk7?LHcp%zT7Uax6RS>4t5
      zYbxL4mZKI8)8Teq%{jcb=GqcM486PBo~D|bRZ`#Y?DB#mp^IVeLYVZbK=ptaLfej^
      zGeomKafYsLmTj)-X+6ad-mV*;I0H*FbZzUr=9I};G%UkeVwj0tgpf|h^9=Ip#{z{K
      zRjV$cmtnytFaPJFrma2AG<1)}X(X{;uIgMy5Z4qa=w}GV;&~Z^xFO*>!<Y|fTQLf5
      zVu(R0ac6@Uxy`Kt)ioZAXIm|`c~Q+(i!Fzgj1i1U7-bkf$4$XFqQr-=8T$W&^i(38
      zK};%`!Zh`i+|ty3qMwlw!7WkFZK^MpiRXL35LY0fTUbd2J&=Vpr{EG~hDg@1_`61B
      zhufRlj!7l-Wvd0v%xktG&dtk^Q#R@p<)_bC14eQO-MI*PnunWm_YhxC42DT6?)*Lz
      zibMf9cWkIc8k}xAuXv*)RWzqi=0t7EcXm8(?y#ofA0#|u7-}_sqhUElg`dtuH=Yxv
      z))Sd;qDQT&6E!L|lUHc!xh`W7FGZJMF$~1o1kX9PVU<#1M#FCEGaf}dEgI)swP6=H
      zy(VgZq%FN*iV0FHNZ&B60U;#4_kfVm-AP2+!}Pm?%XEK*P9Zu)aFwjjWQS-^B#zLR
      zJjB2uhJPV)jK~(9CXO(3l1LsPmKZr8pV0%%ek1Py=4l<HT)+y&uM_HP3?V~f`3BR-
      zB96CE1+IsVJM<4EJ_+0-e$2HNh*`k3?vo`dcz}nr3SKJh!YiEkj@VZ+yp&z;W!{BW
      zJclMU!y`PVo6g|GmyTe~H~5Kf@N8$W=^OkMsb=OSR{}sj#^P4r(h**qbfn*R5eD7D
      R<<qvvSf)mbl2={-wZG2wMzH_@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|ZBNrs6n^g3uB;S?yeXjLUH1Z11m75<L{Ud3sE{STL@ezcE9pAY6_kJBuke!}
      zG*L)2Q9ohgk20RN8ym@lG`+p&^ql8;?m6fF`TOk$fGI3U2r*1;+B>RlX_d;h<`&g0
      z<L$P}ce(AV1=Di5Q&HE74%dto+uD2Jdn5=9?OWQerdpc4sjh5naov>=VVF1-EW7Ao
      z2S5zMx@#H?gSjSorcq_i8X1PjoN1fxJi|!hwBTf(L0){P^KI8G+Z73I4AV^rcr8TD
      z+Pj)%8o@!2GD+UOvcYA9(XJqhvkc)xGB2YO-4ePO;!QvsR4eGgIR<5uyU%!mJKWYe
      z!$2aLtJluq1$DJts0U<Z^rBxvA4C5MVG1tbBIzM)hOT3fK|2Vi69WncF~lHJSeEKc
      z@|R>N81arXO6N-~CG$}*Tv8yRg&~$RZN9uy+ThNbwqcRnj$B#Sti0x!o?UecZqckz
      zQJZz*<k_K4hW(aDNm5X6hGEiwaw#cIDrv4><V4$i0s>xtx-!WZGR^n2gsaV))DWv+
      z2G@cnJ<%Mk#A)Oix)a&PE>%k^;l{DSujv<ky#I`G1D7|(u78=ly4Jf}g=c8>gKMyj
      zA%TwoT1tDh|MF^i$I&_6CF)am;H}@%Ne>@G)Z8$=BE2E6$8_^OI|`ZXR<Z=L6r7=5
      zk@g|_j;0O}OCO>wy^oH4od1p3cPP)viXUM3XDa;_W1lH5gv+${5H_$tx%bh5Ma1zC
      zBY1>_|If!m5-G9>8EI0$=o!ZZtsblD+klw*g0WBJ2w)@R2A=vbioX}DFbtD^l9&9R
      zqCNUlTHME#$K!_>8vljs%N|xBo~&76qF49;QTQ09=ZK*X5!%0`^%WK4HDXvN@o$Jx
      q_gQBG<RkGZ+{7(X5}{+vB16nEx~g-yO$Ch;!aVJ~V&3r??*0SX5L2uG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T~8B16g{^sbY07bm6oq6RRp$0+(=B+R0)A-LeuzC(#Ye`owU;|yPNG6{9C@X
      zi6;I4eiY%(QlZ+yJlwf+=bm%!$K}<pKLFlhCyfMQx8?QhrYpMLKtyf3<6H!`{Lz#_
      zq<qgl^3H{;oJ0Np<!>~N6rubeuF5pG`Go0D%2UxEA!Sud4ZaS2N2c+Ju-Fmj!ght%
      zvg=W(yw*WaxsD7CJSJq-jeIe#uc(}&Wx~Kr22+?N<gD8N=t`-fGv+gRf-LKbAdsFz
      zD6sBW@=&T`V1Ym-4a{rcB4K9|^}PfdxtzfYRtZMr-!wv4u*NkjCX#rj8+cC0TlFzc
      z?tm~?Q=a_RJ3E!(u{d=lkD}%`h1(FJ((hp~6}45D@UHgYE++1<LP#hc3{?qBqs<<-
      zL;pf+#G_1NOV?@<mj9`BG>b_hUdBi#cfSO)?)So`{Hk;pD-&yZqqm3`ARdiA3HGKi
      z%{I-i@9gV%p*)}a4dWzh4v<;vV=nu&k6a&10~CJ7s5Q2;aqfGzAFzs#C~_>%jErZ6
      xmwan)9j};Ot85Ha_8FnG3|845VDpaAjN_lVmc0=+<Ce`p3FVk=oAC*}z6L?@&v*a;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpT~8B16o%hZ3f->dt3dg%$SNS)B5u4<V$np1CN>*xN}6yvbSLeQb$7Gff`7}K
      zHqpc%;9oK^o>?kXs@;p(nK|b??|J9^`1SQWfEPH(AwxK92R*0di*7d(NyoYLt|Lc&
      zZpkQ7Vc>iWu7t0=6CHO$;mP>@pI8oALUm$wong26gqb51sN^jnYu77H{+)!L%pp%$
      zy%bl%@kP*f8cD2z_Hj@7EN0*Vp`>n_u+lCqKW)RZO&FLhU>b9T72CZ}s8yOeW1)aW
      z6j@tDkqkUSnYG7~hjKLo%LJ<E!jdjrB^>+<{a=8tTrXe)4+%yR-k2dQ+vA!w6I0mK
      z1|G3TyD`RO2ZVW71@g4_=|aY5;=-4Nq8qk^-xRUZ=iy~G>8LK@wL5Vh6Q)@sWE4LS
      z)d_2(md`qIc&(Mv2c5#6?${=*|JCtm7DEyq$%vo3D8X!my|^VmDDB0X(9v@}Q9K6m
      zGwCnGyJ^hun&Z<s@Ads=b&-C4gK=Io2PkayF<)HjW2KL^0m@&}vMpZc(&U%O;uXp`
      zgvECyMlygUp73Aqwz0!_Ewek6dB=4+E3akt2Y7miG}FKl5B$vtE`N*5qk?LR+h;%q
      G&wc}$+S(HU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp-EPxB5QWdUY2%nc+t8+eDTG2>C#6^*1Q)K5paLl<>P<={F1NOoY~`*k$8LEo
      zZW0M39)O2J%qF3PCe#<ZJL@^$nc4aI>)Q_i&vBTCL3q(ond60`*Na8kb<X{(*a^OP
      zL7d7+ISq9wLg^nznM&XPxy>U-sNbsl$e8PV!orbMGJQkH*^OG8x8ukU@+c72&c&s0
      zLZLcND@~;8yvt<h2Z@P0ghe^BuX@_QYFjXIw}^S%BdprZn^L#d))`AhEThDxB8~&)
      z6Dn*vl|1%wO{@^8riEoKTq7LLLjM<_l^aEDVvAs=(Wnc;iaqV=TA0JOZr}l-Y`3PE
      z+yQsplqxvMF3y7FRGftYq122#5w=Albv(YzrCr%0ylmb&h?xU)35Mi{p$1`nvf0ya
      z5?yJJ;Zx3GU)O3AHvXw~GK(Q84`ZT}zkdl<E6Nft_#kx`n=@;9rl*KUAbuMC8GM?@
      z0<U?FKJnS$eY?JF;5*FEC2N4<Rv(L{`+cnTu|7cM>rnQPS8JI33KhIYmE-bA%=jIS
      t7=y=n!f0)=JGOYs#@eEwEe;0QyNPpoz(*6f!Zogd8tOyb0Rs#?{SDnE&SwAs
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;TW=CU6#fpSWnJk-Y-uZ4vDJ2$S~tFE4cZu*n$!?qAVeRh><ClW-OaL4{aL<1
      zqKQAiA7wnVV2dK1hq<2bHs|NBZ$AJ$!9fNo!qc|jb6TG0c0&<&oOAagbmZrj3}Y4e
      z&Z*xQo^nt6(vKToLV5D%C4)4fd@c43Q(e{*7G5Y{#Ycp+RkfSE90#t<;09s+T=a$G
      z3BT>s<4F1KYEOBtj11f)tg4ZPlGGkbF`Fn^CJZcQF^?s}npOK3U$L9IVkL`P$g#2r
      zL+QJOqIGId6_3R#2384VYhYdj*9iyzqn=5ik(*iEL4jbz!6*s`u%<ODCgyNg2iPLy
      zt@;!vCm<}>lrP`*KAp*^A<jHW$kl?D@R}l0`aHf&#~sxr9M-Pw#>`GuxD_9j{vN6l
      zHYOuCI#F<;m68vg!=83*5jOvFJXysgF}GwQ&($lztOvcQC0{F@WoxFR$GV@m58_YK
      zBgMOUEbyG+(>va$crBJ!K75DqK4%V*Eex=nyFI|#02@OTzb2@AJTE02&v-sW0nbt5
      zyZi{x3fp{QChXt=vul-yW0hBo&?*M2><_Vf#b_q?FWJk{1e<ZmX23={VcTbX3XgsR
      D)H~Mr
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;TTdE66#fpPY`1tRDvHvIy}4j@W7DK<u*TTbq=fVZL+s<oPGQV;ce5<ozvT-g
      zn)n0yql{-(s#wr{m^pLyyPV74tMf|$Ti8e;L3rQvI(EYq?RFrdmVNA;2DbdukU^w;
      z&;IV62v<4#O1jRsf7uk0gwmtD3d`K$2@~7OQ_&6~X;q4KzP|d7OyLP(;aHpq+ZA5Z
      zu0^5pntL7PIx;lyl#o$3_Jv>Czo49gWx~K@8snHE%v;s}+2vwgBWBWgh79|PAdsFz
      z$g}SdxNlW9Fh`)GCT2Bpfv_=3`auEB%%!n}Wr7j;H;oYHtYOcxi7`Ca4ZI*^t=f<#
      zcR-k~Do_6C{63Q5fjDv{kD}@~gj*M(((isU8MRcK@S*zXE=KOKOh_mm3{?n=gUuea
      zLjP2I#G@R;ny%F%<nGlvh+>h5mod=E-Cu%P^E+Wf?knBJ(#Tpi^%k)T;?d|Y!O=J-
      z_)PKZkYk<Cmu7MoFn(st9?~maOlM}hnD1h-hx}R0TH$jl#(w1U6PEEA1<qwzk@@WK
      xl5ZWo!fRI7E^qoSyUfrigI(5pczdU4#`!N?%g%tBajRyah*GS!&in-4T?4dg&o}@8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpK~KU!5QX0qkb)?Pf{<u}w}Od{2gL+5CPott@dDw#lm?cRmXreiEl(sK`~m(b
      z<7`32M7YfMP2YU;y8ZZkdk1iiVjLRbqUTOb%Ms)8NCbUz(4CD;`^B<Hf%IJS(VYrM
      zb{n20l)nFd5l56z**N;dq#r+Ft1ev`+z=v0xlM@Pd0ksaf^Z}kJ4()SNy!*{Lp$h8
      zw^vRgg6$MyND=ZzvoR1;VLHO?na#jwLrt;L4e8p?lVQj9TcYFGgsckew1qE~UN)nQ
      z922UIjj`8#ag9(gR`$30zBf~Jj-XQRtCR<X;-8eOE&>IF+`kM$vgu8H%YKk5|M9vM
      zXX*lQ0=`E6hk(XUF>G;-v#N2I_)JtXg{(eD@-?*VaNP|DF1c2r<BBzqT9}bWhLr;C
      pEkU>J)3~QI=yZ<kFDDuH>%8tdWaJmVC4(oBL!K#wL!Q@A_yY8+mE!;a
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;-A)=&5dH>H)-6?w3My3SkGi0C(=<)nP)*aOCKBuohP0PQ_5_YucQ?zTzE*D_
      zX_G!cAFAn`l`0l=FXqgd{eEW7{QmRf7l4=8O(8*e)%JRJ%N5;jAfk?a>Rbf2yllxJ
      zQod&&dgsDb&XJ5dzVrECIfW#laxbyQI@fr@%zNdjXrGX@YUL&$pL|EAFiXgtigRJR
      z!fV@&C{$kiV^6t`3=KRWEUGL2(plU<NjW9Ugn@@?Ok<9)Y}Nm#SIbR}SV-d$GHfh@
      zKza_Lz{X?Xp;y(w5`oH^nAOA_VRw@BodTM<n#LOP1S9gVCLt_Y<DOL$Q+TWgSSMty
      z#+W8gK$x#9Pk!m0oyhQ5oVb#ZsrxPAHbtoPeOOFJ9n~eguHU<i$y=-v5{h4jYJ`>1
      zX^%Uhf1yp{x17S3Zq_2K-fDIf#Uc@JV`P+@zXY@4_rjJuP<o8~<Yr#zJ>m(7A4h))
      z&ZaTLF~zs9oa=g_vXJ`;<6FiYAYJTZKC{@zavv)L6u!r-BFDKH`-bCN<nazAu4P$~
      z`RwqNPn|u(b5_?b8$*{5%+M%<UA70<yiqjc`X2YPKcZ$_s~ISx602=9KY^XUPL9zm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;TW=Ck5dMbJvR$zkN@*)-@lsu=b<-H5hT0g7CM854Xox-@c2D4t?e1n-TK|?W
      zkZ95$;EyuS*<y<YyAN~b%zl@dGrxZSI0vwgy$n)>=N*4wJD%wGLlJlFo_iMB@|z>W
      zSOva)<ev&pxu4rT>BJxYmNQ5bsy7nrtaFJcEF36b#fOBnRj;)8cptbjgGItdPn-(d
      z6Mn~T#*y+n?*__qWn|zMVNG55mxH8%vU1Co2?MvYn8y-f-D+H?*D5WISjl1)IW`ty
      zD1DbuV&f_B*sEqBPoRn>7Bq2#us2KkzXF=MmBk$t2}T@TOhU+8)1EaGbGWMqxJM{h
      z%_&WufUw+9zWg*eY0KzXv^`14H3CO?EfFbw9~aYcSM>=m8aFOu_7-b|l;W46I$?8i
      z+T(5%oN1HfE$8q=H)|2L{%Lj+#Ue3pV`7x6zXY=x3?fH<RC<i!>}H<nJ>ouyA4h*F
      z&gQYeF~henoa=h2x|071<7>_wA-g@qa&B#i^&vJ#D1A>@+Z>k?>`RWXP{eDLxmI9B
      z=Ci{CK6UmGk62y1?2KLBGDD*bcG(@_@s*;P)ZcI~hZAbXrJ8{Xs)^bz^HX^G2l^?{
      A{r~^~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq+iu!G5QhJ8++Zlpft;J9p=TSKxKY)EL>j4y8mS2Nh6pK_8*ITwu5B5U^tE~e
      zQY-ZV`bfQ~I%^<Mpj>#phuQy|`FDQ(`Ti5YAr4c}2(KD`+pc?})e1%2w6C0-(00Gp
      z-7uDcZ-4Tyg(sbA97(_Naj>0&PAJU0SZ1Buc*6XV^ksZZSTieE;#%0A@Edkdwq(@^
      z`f1>}DWnM-<L4)B={as>;4WcF_7cjsl8o|Z1_thBaR>8iwwT2dmKi6)(Dfa{{xsY~
      z27N-wzzTsZrL>mCIyMMK9Q3jzteV!u%~A$)*i!uagmtqz8K8<=tVrMe-2QUuM(5(v
      za|yXhP#0cJL{hE$n|j=oEyC-{OlPM*Nr^DWo+#yU|M*BZ%T~?6W5UXqfzs)D_*6Of
      zjIhIz6AA-=2%2P5sZ7`$HTJw21vjb?eoAFXQ5o`ru=S52qfsmpb2E&PhNpx~HE2h5
      z_e?6Qwx<_-pvuHUaNXR^;E_}p@R;J&1<y79?-rKn_YW8sxl9+?Vh0Pk91k6=cCq=5
      z12k;&xR8jvfsVJ>!8`uI&z}fj7Y}&FQrJVD<rPL@2N;DPVjeMOuY)HuFh`7e&xqsy
      uV4lP5W2`>r1E;5wNvmp#T@;3yXOe>x?%2~2x%6$;Y3$=5k+WGq!^^+6HS47S
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;TTdEM5dH>HwkuwWidwK@uM5_0j4^7k#%OF(Li&Os_VLJ`z%kq1&9Z3!R$m}#
      z6MsN|RO6f#l?rtq=FFM>E;DET{QY$eU=tfDBnVqguVXh{(QXGKYS|agRba~>4H-nr
      z_v|m;rEryV+6tv`PVUMnBnhP_i51ql#}g*@m8YTuLei=f>wFyhj!fYhVevv-3fmQ4
      z)2>CK@|s5-<vKDnFiDtGxBi7FZlIu?f@Q+MR2t)$CM;Oh$MkZst`W0oJV%C&MG#2O
      zA>`S32;BE78<;0hQ4_P8xJcL-CH-Fk&0J371#$!<@^2?0%v-~rWfNmq(F43BWUbne
      zCQm?^sVYx??R-C%;i))xB_UJw8^W!NQ0aTWn2cJgP1vqJxs1_UEE5unUxq4#rNL==
      z+y0d{iQjSz?{%{lVfmkC2T?2%@iqoVdH72(Yknte$j?fTksIC2N4-a^f%tLsm*8w1
      z6C6`~JL6o}^QBqyH;iu?vxoF*7c-f;E*832>LLF#X039Zj<Gu&cag&$3S7&wBJ<hd
      x6`wkLjW?{WUEcOx4w<1*2D_~H@a{p;jO(AcmxBQ{<6g}`5v5pdo%soTxB>cK(Cz>L
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;-A)rh6#h;rbXh83fdW!xMTKqo*?1*VB}Svhrtzkvk;|bwX@@Mko9!;}THLe=
      zCO&`<WjwPKs8%}{GiT16@8`_<`Rn=zfS1_KAw$@2`-#)?M7JA?xZ|9<7oj6BTQZDQ
      z;5%RZbKxoXs1r%yevX19{CNA8LzYk(i>@)*T|Hsyjq+7|NXXi?a+8k_fh%*ECM=(d
      zbK!WxZ##`RQhxh=qC8hd24)DW>c)f>r!K6vwqYsPvP~FxkjEru2}^eUZ<1=csVnC5
      zc!&bai!hYFODM7YNbx|iYG9E-WeqH9;4)$NU)294(8$$19$}4O#KBEJghhK)vua`j
      zk97l22t~Uw!pR*F=IY9qUz4*F86AlePZA3Cpe4Mfh?Kq$lG(VUx`c!J*pZAGXqAvr
      z{5@17tPHoz(+@7RQu?72*wT(|9?Tz(hpU(*=8+8bbN@;(8$lAa<R_(jvBo&s(-Xy0
      z5Py?i8IC3~#e0r#-#FI!Qe}STJB;Ik*++i8hq=N+4@*6)^ijG>QR}?VrnRql-^UtW
      z!{S_#85z$C8+_{M8J;t{R(UZ{dB+G{Ww6S2ADj1#W}1J?UJi%Yj5{_1WmHnOZN_J?
      F^BXL=*?9l}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=6r4v<v=&hiMDg>6#MpSosEN^oRufag)zrFy8f?i@#2@9wL}TK?AK;HN
      zzHO^$g3-(N&AxflnYVB6FRuW$v6exKP;2>p)9pCDUe^iR=JnN}Yl=HpbVD!j&0~g#
      zpD2Sgp>XZoI%dc5Tjp1TpkD|n19=c!2?E)K@g2|i!d=2b)wYHsjkXL1&Sgi`H=2aB
      z;_J{bWgr8CP_F*ModjXpz!=5}Im`3KS^wrz$cB<4<gLJUI!#A<3MZH8u<i8-o7VpW
      z*4dI9M+gbUkzNR;ABpTxdVY)Js2pXLV}VD%=lEg}v|cEc-Qhx#Cc$Wl@Nl?8t-8Tm
      z)a{@zU2)_^DStf1meRmF??vO+B&5`GxYD@JV1my{M(2F5`ct*dXXv%c6S5BsQ^@f-
      z9kq6Oa1T26F~fIjF&(qWGvYxMSeBw{4n>|+@}*Jo^CRU?Sl(j!(?8`GQHkW2u$;)7
      d{8hgmt34un&qeGz_S1+2jhK-5C9FiO)ekyKl_~%L
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%TB{E5FDqWDWT9(MDM+oB4KevDF}o>0!3VcdUsRHb>%ow9>8yLLgK&&@KK0O
      zd0cq(vg=vTjAr-s?fC`3A$B}C3`fdVJT{^zGEvU?Vs@W#`4G#j)T!my1h0&dN|>`;
      zRf)9a#n-0?mtnM0{>^7-j<wb03B&F%T!=ftjj)PGWv;CX_9hJOc{-Cm8dz^*4L(DE
      z82!%dgxboRDw)dsR!og#=!I!4%tYk6#-BsCoa=%i2v^4ZYs-M4krb--{}GwNkJ2iS
      z<)y9@4F0>;L9NCBWJlKrbw(>Tsd|J?Y3fjKjk;?839UzZJJ_J=FXv-o9ivUS|G~p1
      Rwg`~|9dws&+k_nS-U0u7fieI9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot=}Un>ftAgqi##KguG8qk;+Of-!f2>YQ-N=cdGv=v{=m5B=<z=ty4
      zLByXx*i7f#Irr;5Gw&a-ZvakF&A?!2xH7gJpNHXuM?-5gm`*J5<cLY+1=6}Bc`GBK
      zB=_4&1*-jhltGfAzP5ScXGpg^=|z_em6|=`kKFRPbgk}C1ykPlMf0e~kh~5C!bAca
      zIiz4RRBN4;=Dh7maUYNSLUlEPp=bvV_j_D<TF;BgXy}Cu=l0rRmnUs9q#PcH#4jzK
      zh3dZ(bt2_Sm*VIgyE?}nL-|jRg@qw84qZL?&yCCv8O%-)D@WXTI@-bNr#R8QI0V7y
      zVF817DWqx5kh-F(LEmh>@NoQs?DNdANvk=lH^_B{9O?3x4_nwKMIFeaKom{eSxzhd
      Ur?rT7v4U2jKWN%Mu?<u{0TnWyrT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;-A)rh6#h;rbh}oN0_DddRZzAC+-OYDR7uq6MN_#cX~N~uowP%i-OYAdd@XO<
      zL=zvthf>ch6{@Yw#mt#A-_JR7e*FCU9l$djWRM~}ZwEcM<%@1N61wA_dzX<bKeuG0
      zRT#L(LaV;~By}hBKK#jMkS0`a<<(f`8c&#etpcTw2x+HQZu0Ry^kfEE!s@x`3)dGx
      z+imDr1?_h|<$E%=aEGv@g1+#TSGq_FC~@T2uy8krS<Dkwoch1?YPo3;_i|W7o{dEm
      z$-pBN*?0mx@~T=`CQ#WB3x>E#IG85=Ujf5h&tU`i36>78Iw34Olb%%@GuSi@JRlUD
      z#)Kw!Kv<}&Kpyul&SZQd&U{J8*Ta_Zn<7@`K1!x_M|BA=>bDMK>JY1hl;V$}8ewg`
      z*^^EjUK)?&D`&84YIO+ff7LpUViC>580+Nbm0&l*Ufhx&mFZ$*YAsLA6!8$mUt?B^
      zqgl-Hp5fam$0om7S)^azV4ddeA#z&-EaaC4SQ%h#h~k%ow#EB=0zO0<FHyuRlsH#l
      zNfuy>M|_%S8#^p-Y#xtn-ZIaivc_g_h$lCacJlCshkP_9m%WzDqKrx+x5ol0?EeNr
      C6Vd1Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TTc@~6#h=BY^f`h0!1pyaxWO&m=J{2_@L25)4)SX6CS6#Lz!kfyV=g7{w!a>
      zXyOmxM-k5!s!eNoIcLu8`_5&qZ+`v;@Cw@&GK9UBPFyb#-EJhzx!d-?M6Uem$;hZs
      zyGNn<)QJMwk=jWAL*H*9OW3`)@-qYd%_mI0QCgX|goR42EiQx`2;Fk)CRVyt-DwcA
      z??Yc&m?A6=$KNF?@MWCGLp-uz6AHr_Hl{H{ur5T9$m27@)*#Dqvn@SS-5Dj$BZpZV
      z4=|a-95Xwr>*&xp-=uNWzq!-21sf$S@*pCLr1l9f1}XZ3j8NS5UQHpEY?SeYkTc<J
      zK4HG{->xR`H0|mcp;W1lVD|PkQ&U<VC7q^>Pee12gkml9M9>hiO6@ym)|{&@VZV0o
      zvBsRa$}2sS!X$AIet7E~&ey{v_T)#EHn2Pf=4D!lRS+il<AF7$D`#o3)!=uAb$Peo
      z{X*{a`48l;P$(8JF@K52S6Kee(F|5tPWKRAvpm2O4&kt`bX(2%YiuzN*0Is!*kmh%
      Ftv{E7$|V2*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-yH3ME5S&d+>=;9WLC~5mL?~7Ypa`PjQ6P)P$o<7W*%$dGKY-t&LZaXU_$b6$
      zJc<-)W^VR&=VtHo>-_`39Q!(Ygwr^0-7pn(U5X}gSJ89n%9l`<jVf|C$Zn*FZvV6n
      zjWFFfanA<-{e;1#%2jhk=ub`pf_7a*(!h{#6sW3cMe1ZCOjIr%RXY*CWulL53tO-V
      zhZEmhi6`NvB9C3asZ<^>I-8Nl6Ax{+l+~kHrjlTLMJUohRI1azMXgCxO_+Hb6R+*K
      zAees9R-wF8o%6xk{j5ubWAIA+jbJ8DJ7CmVU2v6{htqLs8*eaQS@f{OXfgw5FmR4t
      RK3PAF7-7tcu*cYg{S644YNY@G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZus!AiqW5S&e8V`J3ly)C`99t<8l83h%DLePVym!4ko9`=Qpl$WH%&+=68;0N@h
      ziW|(am)V(N*qz<&e|`bn;KG4L=zrvOkYu7PSE5=5sobmrErUm6#Me|hunB|1k+(Qi
      zNi~&(Zm4rzJrFwM$(&$67gD+Cpy%NTE*s;g#y^jAu3qcUSecoKGex+JibP~{VRWNg
      z)2^1fBn+d&XWM3X1oyqDO`=|Ov&w7z>r|`-M&L61C3q5-=rTI2ZecM4oGX8^#ql>&
      a3nz>&Pax#rJv?UKe+;KMW5wMWE%<-q;YHy9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO-sX25S&e8qA`BndhDT4OECyu{6J7aD1;ug^!}Qx?JH>#UJ^@xmZyS;{s4cJ
      zxS^gTm)V(N*f(##f4;T=u5jkUBJ^iz6-0?Did>cRU=gqKK*zzOF>3wF?`$}Yc)ZSe
      z7`w0u-RAtiD8aecsV*M~t=`3iU_WOuduZXn#~wT}dQY`~66%yk)pE*atfmPQ&ciHH
      z$wV1l>p#;j=ei&a!sgeT+TIbox2!S|zvy~zyD4<JP#+2%NKLs3WRlc#1YJ?ru!I3l
      h-`QaQQ<#NAK~E-dBgtF%!u(wdM>rNGpAxii`U`VkSPcLG
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv{ZG?S6g_tvD|D5O%7=3fMMU?ZR834sAZjF<3@Q>ZB>rGb*FHv<+Adv(`d?`@
      zkZ7X*X5t@Zysrf;b4}X5ci%bp+;i{y{pag<0QYcLL58r{@dt+OS^a*`iVlpf^R8#O
      zj<GHyW?(rYY&i;Yg!$3H7wxXFqn1OMh(7d0%p**hUF*;?Jj?GSsa6T&Yqsb5ZuF3l
      zt=0Dkx%I#i3JQdoA#@@<0m20hW5^SVrt6EX!P~Y7Us`QX5Og!JEpN{XUAaFA=GS5c
      z6<O#SO1Q`>wI{Jybl~<0OXg@B=lpW9lN}MIVuW(7KI|!}lELcJ_qOOoZs7M7TqdlH
      z&=98(qvao3p6jHtpV6h`D;lbp=cI2!u`fd5+ibR)(&n(S8|+6rr^l-*uHm|Z1w!Rt
      zBmaYGSi}wPJv$>zpR<z;k@FC4YPf|OVT@sNsywO<6=gJJJDakd8?v1l+at`Ss!G|B
      z9oY>Ap)H=d@uX5`EoWJlhy|9)@-^hf$^r8#i*YFY@<rlZga7i$>*{A{pLmtQB!5-@
      z11rqAk768^IZ9`|2YfD>N~7c*V``ZAh@~FKL@j|~8Z!(h%wmqImw27yT{$k|HLs;y
      zweba&BV7Fn)olJk@f*so8b??<M*T<gBLkA!bcO?)DBw9uY@vefSZX#&aw1iLj@!7y
      KB826bYy1TcwaYXB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvZBNrs6n@S&R;YCw1<{F25Yequ8c9q{AZjF<3@REiB!1Gay^JokUA7MOUuiUu
      zXrg>0@kbfYy=6FXeZBXb=XuWC{r%_rPXPB|Yse55TT$QkLbuoJxXGT~_CIv&z_-_>
      z<wdhCyrki4$Pp@|fddR-BKg!2ibt4q+U~w<hi=qLrB(^!YhD;cLGqB0t=4u3x%Jo=
      z8ZHou=g<=%Tr@C-Jo}s=5?lTEP0@YrHbX%$o!E239k(0E{fRNZrnGfrVHzl5iuJ2c
      zRG4Hh=n<Bj(FL5Tl+!G<L^5O}OjT<ms?nc*^h75K;;5(LDq&@Wx)?z0MzrsSfv<E=
      ziL%OT2If#9=x@7XS9C?>ae;F~@z`u{$Ggd^fqPZQJZ@-MAk6-2+kY?vi@3?1=4uGj
      zXG%y%#yW&s25zHD7-Lw&SA*HmQHCX3SeGr_kS)x3A*Z+<_q(2W7N{8vwW#4Q%S5oi
      zf>}OV!~#4zUS%;3jbA<-ytDW(ue_;$h4F<~85H=d^B;J?oD~$6Rce$@dH2~bnVMDd
      z4l#M2_=rP2RzxF(VH%ehPME=Ere5K7j(261#5-QgaP!tT%pTzS5p;f>`Z0<>P<~?_
      sVCfLGU-i$7Nz*f#0c>)r&tYN<6}(i@W>TG#Xa)A&;Y^6{yNbK~7p*?LI{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO-sX25S&fZL}P5#TaO-uTBJen(pEfJ5QNY}TY7&@R{KhtgnTIdSv?hc@CW##
      z#0~W%xy;TC!@ha@{d4#NaF0tH2BG&JmtGL5JWo}z^48&J>gmuMSI(5*IO90r`8MU(
      z(1uC4sn7q560AoZ>*9&f=-w^}<~Rx2K?A2QnsCJEK39I**D+7Z&62aZT1HH`@{>SC
      z3zg|g|Cwg7(mCPIuYbL+?TFyak}?bUMOS+}b)o)ReJET*YRXL@lcb&{Xp4G)Aq=p3
      g<{l?IVFu0w9htyDl0&${++zyoXo-?f2^zTg1zvDh@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7i)iN>hay9W<K_0TAIu}TjLLLqq2())JvYPZBq*d&Ud<w@}12l!Fq
      z3wo0FGH+&>eLK5f-yfd<&afB4BMcsGljvMkRjKMlvdmt}#AM0X*6ij=^F7bmvDG|z
      zEqR=U@Ciq&&-{xLf-7T9JtB1a$5VoTQ)C>WgUuLSL}K)>TYon-mhYOU8M}#^<xJR5
      z3$600a;DXPre7~iML11Y-@dN#B_Vn!8mIZzw7U=11qVy@tZ)daEB^zTBsBxUP}Dg*
      kVL))weaFU|Fb`XTkxbx1l0(G8;@=duu_H<zC+MN~1Ccje&Hw-a
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+fEZv6kVsCworyrK@b7CsAxM?M!YMChFj960kx!2UT|oKGEHe~J0tqySD+7m
      z116dXCO-H9ew1;YnNpet`!I86pR?Cx?|s@oe}DZ3FpFm)_yooZWk=7IjC#Fl*t>c$
      zzhBj@yq@Bk%!i-|M2p5dLoXTSg1)|8G;_9ql1Xl^2#BOW?^2~)w~ex$HA;@@Cv%s8
      zf6L1AIK|8@+bHmJQ6RikGk46IS<aaPm(r)K+}1Od9sA|U@ti<#-YQ%60tsS^@hq36
      zO5O~^j{y~ZI8TXKJlhR{Ar(DP1^Uuf*<5q>w$0jxv0b7>f4Y)0N?D_3$+)qp*t=F;
      zU_9NaZ0h@6+kv`iCs~OSOL=M&D!LIC@X7iD1@DwrSgFdWS%JVrEZ(t1>HV6DUPK6`
      zObc`}))6V&;b+g-B=fCflvvJGtaCl_%`oL|s+huM`rfZuwwysj$ExVdhHb1ncGa;n
      zcFi>Q=A=k?<$cbq+7<^K!fk;8cVx^?t~XBvdR(>*qfjvOVcf%m5bg^MpX9bPt9Xb<
      z0^KfZ@q_fC#FFu>G&rYX209NbCq4v5yk4B;kq$Ezr<OBUEjjNV@6OIhWo3$V@-iy8
      zhya3&LX3Rq;tnV1e)HbA8Jq#vF6Q(h%J(@&tIYLr4QoHquZ<pI@H-<PF7O?3nb*kl
      zoLnz3%)KEmn`$GBh{Gt^dGRrZOAXEi;-sgbHgSaUQ@*f^eMO(ITeyNvt{^7KC%HJj
      z2A58ZAXh;9f$^{W@T|!~fj2IVlxISNM&JsrHo=n215bZz0~gN(Uq`F~UZ9lhOi)W4
      zVY<Bvn}W`Ns))05QdmQx!L`gDO0H<)7&kON2VW3S4*iF1o<6oPMw@+!Vv^k!{EOnP
      zA>%Eg6t1&;?r_J~vLk1jYB-N1*tEf8+|?-i__P9Vt_QpcpZL4{+@cw2YDO@RC*&7c
      Ia6LZ#2iG#~g#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(ZBNrs7(JK4N^21qFXF}&-?vVw3Wz#DVZMzlk}yM}UuM^q(WSJr>p=XbzeuA(
      zqKSSq@kbe-+iqjbxevX)_c_lw_ndpX-+#XS0B{RA0euYTDo#VyZLMCfY5tB{HTG+&
      zWvCnFs;T>VLqI>nbZ^W$Ve<xq=pWR~9H(FyEmXBVO|><rq6SM@2BEa0IfiXA#5$^>
      z0+k1sblY+)e}y5EN^ddr=Ul@SFvKu&OcugLFbvBWK$OOU<(SVKyJgdRp_M~=SJ&(<
      z&9nHtxfopv$R$KDE+d8s5=gBDI{uDDTb?QOw%3Y)wixlX3IkgsuNBh|3k>6_bT2>B
      z<F~q5^DWn@3pmFx*Mr_{LDamnr`eVfa<)6U&lwpPaFIbOdFHn1nT}2gCOZ^qSuMKT
      z{${J3m2eqX1zcfB94Ge=OvW`N$P`)OI%ydSGBht)beL>iLJ~K4QnNg%b)HnjEms)^
      z_C3qzdq{<wuw3<#=4%@bzt-@JzGrH?+4PoxIfk)7o&focwkHV-SQK!FVX9T_ZkKVF
      ztBQe8!F4Ef(QR=v#Q(2LH_x!@{Md7@ZPV4I_$4y8EF+EtxA{PZfI+%brgIWT2^Zal
      zr<+eKeu;*{qsSYxe3x_tWS_p5KAh#(E_fpz8u?QM7db^Ug+~61#^ld9{fXZCFhWm>
      zMqrtG7cm;Ff{?Lx-vZTnr=W}!jxg5U_>?4{1&wkD!z9iSoKsBDlS{7<1s91bi5?7_
      zBwY*`CPP${f$*3jQ*`7!BC1UjM?cMy0qZMz=d5w%3(g<nQX%sT!{3p7N%PbZuK&z@
      zq-tm~Mp&RkfxLzcjd=AA#duS3koK$+hAZBrKcHj9+kxUL1<e)343{{>e0LZ%YJSr}
      zEViwPxQF`zaW+W&q?JXY<r#~La)_m`Sm`D{AmVo&DYu9j9<~o^zDW{QSPzExl=6oT
      NhG_eoR)dt*{sMGC2#Wv!
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%Yi|-k6g|UhyDJt8SZir3Rcm=@*Vfkul*Cp|K$JuplKQ0%Fr`cAE?I_F`>QlD
      zZK8?#&BPyNyt5RFh}q5T-q$(zo;$yOfB6Pr9gj5l7*?8g&#bq3x7*=z-)uFGI;Pby
      z--tco3cD`0KXgQ)p&`JqFgdkIC4~k<=&@y6GS3i5ZKkXA*>W1ffFF7oL4+70CCe7C
      zdj~b)Zu44OFhomEowuvpwUmA449I<}%dlFSOgGk9j=?W^lYwnAXiXti!wj)hy42!_
      z+-!5ZX>O_cDARcUzAie_a_p{#IK##S3Nc7A3-%#zTMe&xSg3<xHjFEnBe-36AQQvl
      z2p_r4inAw&z2*$eV?jfLA#vW;KWSksVu=Q#F&N^1jZm(&L|x`IBuU6~2(LNS)AcZJ
      z;3n1XTC@vRG!VlrCH$&dNKq{$NNYYmW|$f2bf8S|$h9QtwwUS%EysMuB`^16rzb1Y
      z75pHVu4=eL(t7NaP$&;oF<@d{!(E2CL3F%4j1AR`?h%z7n^vYf18j!*|MQa26{qLc
      z#S2San)p!F{@q+tj94ZO{B*BDCyj~_of=tr_~-#bnZzlkKGB~K2AziIeL|UeTp)Y4
      zpM@|kl12HLMuadJE@6gZQSt@Iig~E-=wG2GGoNw!1Xq9H8oj0LPei^VwnN_KQ>=W?
      zex#f}Uz93<0-+WO>m`=(YJ@j=#yd^16w)4V2H6qb+aB*znojZRSw(Szwef*=Fom}x
      S!1{0?9rtkG1AgE&_3#e}yyv9=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<{ZG?S6g`iPm3769is+a_@N?^w`VkWoh#H9|!-~ck5`G}2Yain+wO!gb)c;DO
      zfkYGKHxvIT<9#hKf*(!V_uhTy+;i`_{rT(5HvqSAQ^Od;TrV8jUf?Flz?Iu}-+w!>
      zg>QFcEW%#f*O31w=6SczJ=yjdit_z{uc#ypQ%>LAaqYkjdv+RHVwhO=0uc&%pCQ+1
      zt~2CUBA;t0F;qtAOtT1vNdx03Fq9n;^0nccE{|Wi-GDQgPUN}4x*H31J_r_;)8smG
      zFb!02ngkk;QXRQ1sHS=6|6Njv#U7Vg0SwcP=CLNSC_(hc?>s(`A_@}?vkZ6sl9V4p
      z>~^^02ExzSM@-e-c>{IKQNGtP-{LV3J!-6eOp(HNC)$!P53iSW%;Tbl1%}$luRmZ0
      zF5xm+Os$-3BAXTEVYq7G8X64a1XIJKiLC0V!cx|?ly$4hx<Zov0?P7{<j9LoG>kp|
      zM5v)mX5qHKsE}A7ksSSEjFQqAX_vzUG<wNqI$5-;r(o)zV0@(A7*5ewrxmzIoZBd;
      zQI(@|#JfxPim6$ZWDip(i4REXVM;VI7^ZQC;0!Z3OVo3;&(o=z7O_ctC0DmTqqd6+
      z`_P@%50t;6x?%0&${w2ETOSCJ)n*bLc#0C9k;EEmc#%rYWJwOBN-%L9H%NqGG3DC7
      E0XFfzF8}}l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvZEMp|6n^gdk}ZvE7x!YVoo;j5rn;yg3^r68DxGl-HwJzXNt3%YB_<(Fr~WHN
      z*+4=4CitVobJM+CwSgq(p7T8CIWPCu?=Rl~+{P^hV+>1PI53^S?)PIm?V3IJZEX6k
      zx!X;+?LJAOLELr~<Qe8i1D|(#+)3Lm!$kT%<{Kgt!<5yt4{S5AL(j}yYYgM-PT+@r
      zdXFL3XznrOHzJoSC^5{Op(Wu7Fr3p+K#`$r`61sLyy@^{*X{(ILAN5u4)*NC7w2PV
      zaXnK|k%O+Gg7c)(c$kT$U7reDwnn!h$+lf8cGBai<YTBdno>_vh`{QjcMgwJKMMN_
      zE;6i+(BLN!vmGATf$vHwPU)iKOB(8!r=+hFzRwdLI@D}k(k8dL6YZxjPQq&{u3%BY
      z0z>U=kpICnEa586o;qWg{;Qqg5-AVEH4WF%U?>nwY?W5EsiF!)jI$-ixhck3@Wj<%
      zn3D>VIub+Ki3W+oAN$#|q*&Ws5mjP=)N*taX|`g=WaTgpg<iT#bTa5Ko}#XPg7%TD
      zF-+1|r9ZGroI5CIUXi16%DYQ(!BmWjcZ8{biT6qBK}OVuFic~H;0&{vBkBdR^K`0a
      zMZ6+g$kmO{s2$?+52#k_C(2(@eQ6wG`3TMLtq%kk)}|92c#0C9k;E2i*v_P8he?j5
      QO3-lwH%WwHCF7cZ0CK*~Pyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=YfsZq7=8{LE9;6I6VZtvAnMjBRnWu);*DT3Yy=%4(J$t#J#1&G?b3Bq|BAmt
      zqZx@N>L)+=qm1uqff2m4X?xDw=ki|KpT9nT1#lC$G>kCJHvOLEc)Z)~@Tg_A-PavU
      zy4FrB6x^-38q)v7Y&F`#iE1uGHhS9;>q>-S!fx|Ew><7QtvIyGFt+A+(wEU)hE%z-
      z%aC3VT%jSyP#B^U&ny_m4U8hgkhi5Tp7dTdM7YBno?s~2fy2FB9!j-82xit|aUCfX
      z4HR&i49X8<pQt4%r#buoRZ@!CrihXR7$(b=V?`uUg6JD>9MOqn;CD5gXIS}*s5pdJ
      zHNVe2=_c$WrmF6Off>w_-pf$ziBR|s6*hCsk-}Cz*o&SWzFyTahXoDu4AaAY{Q)y@
      z35(QXD&=Gm$*f36#}xxtQD)F&_kkz-<V`bqp;Ka}fhw*sjFNyFE5$c;l(3|lYN@7f
      zs-|Y5_~TH+7$!69Qa$K}j(8;1xW<!k&0SJR%#%rqK0ZdGG+<h#Fb0h-8UXD~da5H+
      z)IY-bK&ug)qPtE{;0|$?k&mNFqj1E#P45*`GYio^CQcIXk=6Z}Xe2O9;tatVrf`<1
      z=V+a#T`5k&rM0qKG(TZ_fQ#Ru+tnY?s{>qqhx`|mo|^+y_Hq4N^*!N|6pO?H9wUcs
      bQhkaA)MLk~MC-sYM;<rm-(z$x$J~|Q?eoJv
      
      literal 0
      HcmV?d00001
      
      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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
      Wl7TMvVMPYD=>ZvnVU%t6_x}Yti!9Xu
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYf~Fl7=8{UY)H3KpcI0Dsg_H)g;LsTf@q;2sR6Vging_z<Pa8<-MHBl_(je*
      zesRVLj?CB@Kl%gwIgZasHX+!B(GPp}?AiD7yw7_%fBya3?*Q)NSVNn@T;8h0vjwAE
      zE*b7Y{4jS^ikBQaE6Ziui9d22<7DTgBv<TW(Xevc($x?U7{5~MTv(uE(X>o=NuYfq
      zwkr@=v2!wvc690pqC=o7ZCY}(Qp`wa$H)|<Ku_Av8iifMG1a$s7;q2FvcP=$O2<BM
      zlLBF<VtJ4R?oFf*jaNq8GVS>Ci7S^Y`}@*K)(?61*l>-lid(9<+pZ&xVsbh5HBGD@
      zXJyGXZL6%IM_|$ihHQw$pOD0+LKp%!b@bsDLzBlcTXE&4JW5$**RZmTcmDq(itTC`
      z5Lmbp!=~+~ilu@qO3RhGCK?Tc0{t}x3Wk-BGf30QFIUV$PC6kB34}bVqG3cZqO$ak
      zK%a-PMJE~CRT8&#yo>jkXQNb-R!(4OA{DE%*&^&YNQN*fa3^ZnZgk(SSh=WaMVm>B
      zHaxS+W|i%6WqU$k#?SkuK9uI9jwwtt7}u^x$Q(?(2`d>!KSngf1s-0>rpjoFL^_sH
      zSalrRX%ZU7Ebc0n<^={?aqb*A_K~V!5~X25ptr_4ODwh3)D~#VWJs@XP4cJBnjgHp
      zHU+e7y)gyEGUerQ)7V8v$xfExl8%q?u|UwwZ5Wn7)UTU%H&W`ak!M$gv5dzWRs=?T
      z=xLGEv5GZ@$d1W9m24=<(pGaL#fn(+FYuV3cQY6Nmp(zP<B5ipz^D(1Hx+bziZq$Y
      zOIINvstcK4QL~OlH}RQ<Ee@dbW~lwr@wrmJL3P$+$+p-)%1#*D_(H=@Bas&eh>l%+
      z$u6K4>!ddAQeo`j8x0&EEe+?${esN8^~tK^8J-JVvs&lDSZfv4(O&4Nt;`_})N=E!
      zj+ZcKfNtx@itmM11D^C{WH+>EE(@uF>VByv%MD2#`)Y1?=ghLI?iIVB;^Aae77lcn
      zI3%DW$8<Tn^La^&!yX{N@v1I`AW2cc$NytR2y_~ai-|~DCPAGpf$MCG^VBgf1!?8o
      z19l0^C`7tzLr2{;=h^p|V(x5{V0@dSg$H%9Y}*wlE7weQZ4ET%m^a4M6jRo5o2}Q*
      zD;HcDEIPPq{EG7}_zq5<BJ?viZ3uH!zkvj<an<Vrd|&66z+32|)D7+f{OYcm`GY2d
      zJXs(9kt;C7M_Eu$@8r~U6}>-T`V9ShXNc_eynTw{;VPm%cd8hxB6f<I*NMOxX7?h2
      zQ_Q_?|EZ>#AcA`yqA_&R)+%nY69<vPFgt7(X*}RNfh{buHP+Yw3h_c6i-(w~aG!Dt
      z%Q_z7eOgqz52)8py)cqoRV=(8y~sNF?xt@=(O=vv-;0yK;KQjZ9&OH4@kt^O2~@F>
      z2=e6VgN{hBuj5yImC%$>M62ROA`}T#k%@#DeEyu-dK}Ma@i}>XL60xVmVr@ZFvqgK
      zk38`l)Z$Q5^xKSMu^Gpr7e^;Ceuo0%=)w$&uo%ZJjKStENV`##@IA9R$~(qEneoig
      Pnu`iTjQ16-x8dj?@D757
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GZF3V<6n<`-bknekl-D4|U<I1eHu9oq7ExNL1k)C2O)a9b+1w^u)7`Myr7ym}
      z`y2cN%s75=#z|FXgz=;Qz#rmQ^|{G5q$PB4rnz@_?>+aN=Q+<gw}1Zg+wTBQ;yVpp
      z0!GOR(pJT+)vBgnPA?XhtLdueTC!Giz4W+R$hl@wde`KF^rU0Sad&CSbc!?5*ANjn
      zzWo8M%>q5=Y{&M`3v>^r@&b`@w<zQ2Mz4-2dIWanY)4K7O9ko8nuUrK=*zj5S;?E8
      zt=_|r5x;EL1YXH)?|9qD4S~29I3W~)(}TH1^R}6GY&Si&>dUcUfoP59M}E6#`sQ@t
      zR|9{>_oTUGjHRygh)XM$topX=)HL)740VV|Zfr?kA+;@oI0W|S*o%Dvd*zC>0$=9s
      znoXDu&Lt6^`oBS?@)`~ZoY^*vDc8>~RV#8yI=(En0@83$V1I*zis_Wn#A!RFvB0h{
      z_c0t2h=pt=<4EAJ%GooFJ&du<#z^JWjw3pr#Q?KzR;$t}3LF~DrkaGdZ4Mn6F&q_0
      zCmq*MF1UeHOxjMellYPwK~R39%FS`*W>8?HQy`CYr!0qboWL+~`EC;|Gcx#aghm|u
      zaacoI;Ow@<s{CfjsppuLOP=R?EpFo&#YsijDS-p+an6=KcUeiBoM|{Cu)C1}3NAa{
      zvKHtn6v%W(g>uoQR1Q8`sREkSEJ6V>#{F`ob=YP{MlVHqUdO9=O(1F)Crw8n*{RI(
      zlUcQDmRKWkjNzh&ae>1f=xN)j;}RwWbk<LCy09oMKTB1d?JV+CC%1Mny<teVmvKcy
      zwzJ!|ojTq?PN26W{igBOG&jE*8m7q0g92z%UmRC)O~ac4105meZO;$P%A{$P*}-(o
      zV3ysC4pry8CT|6@<}*p7?Wu1&-Uvk(_;w|I!Sl@3oL%#YFpsx2%x$P*^RkY4umweG
      z_8J={J8CwL8+cE{yVTf*ing{b9q;2N6~FA+zNA)Z&!S|x=26gLf%%AW#WQ`^6WF&=
      z4GquP@Vl`C3n*(Su{}5ZY+BV}E4Cw!T;cWb0cqI6sFKT)4hJsnNm1)snO&_)C5X&J
      zERmlMv@^w9Y{}RyuoE-%qmN~v!$%;nqd~{4St?2T?+^WV>iVg?0>7+d1*@#9vRRuV
      z&IbL=MYpTs?^rNxdgRs9WmVW~+nQ6m7+4{dO|l6Ke{=eIN<?LfVs4(ZDGOYUS`~9`
      zO<>nnH)_q33o6v(kI5@<x*0d{EIDDTTX~=@+*S(0zO34^$~ca&mvr<03~;1J^l;Sp
      zmgX!tM~BuC`-u--h;vlSz<KQ8s5duoeu8fTPhux`J;mn;-*z>Q`GZGB`Q>u|4;+C*
      z{HYVvZ}-rN;W~ET!SG$|pTCR5eBaaS=<ly1+4o!>$LdI}W8_{Yau=iXiO4#hzt{a^
      z!!m;mPKOa4Lod(DVh?gSh)MKgnr-|lUgVr%iJ!w9CUCtG@tI~UVZ@9IFL0lV<ucCV
      zC7!6BUZ!0)?cy*vDlEMILu5UichR?^=x;tN-*ZDh<CPP2T$mcE<MsQP%tR8AUof4C
      z4kw~@yj90LYBn=HcQBCX`4!B~eJt`XqbbvbR!1chOT@@VRjuC^`2OF&9*{oNp#CPE
      zndn1-ccR71w1{Df+(3!&$^>6zcUWw|ywMD+1#_+ib1sD0iz%$(L&EH1xBmzq6J~;G
      l{RE$qq7+8(89ryS4TAjwUlQ&F-@d}vh>?zO2)Ya3{s--D+{^#~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYf~Fl7=8{(SV*Il(3V08ra}whw!NTewxt>hk{X~EM5&i{Ne*F|WH+<f2<@-%
      zUpV9V#Th5e$c%ORu|LZ3IoV|!F)-tYJ!kiv_wu~Yd)YUC|M4e)+b}hB2^eL&p%*J=
      zy<RiDJ$=7)P}6I!Q<U|(<LZm*Vtr>{7QH8OSGv+J%0;JIHSN-d^fW{T#?Lnp3JY}K
      zvuw*-5Qt1<wgjS!PD#cQL2m*vbPHT8ShieiRClDiY3@{{K(gQz&B~VPTIxGEjCy-k
      zUEqG<e8=Y^Hw5Bt!wy0bxI0nUH-9vB+j8{W3s2@6yNuTG4|(>`^vv~!S8I41o-56&
      zk;^=#iKWA$ta+AW*EJ*sCOaUKCnEYIQX4A7A#f>y%ecZ_9?D|FlVrF;qGf6GMUBDV
      z`M;PlTN<tk%$<v3&GGWpT18f+O-~^n4MPG0Ee<NCUDg?<WtVdet5T9~4~7ML0<zL^
      z3}Qs3?0tdD0me2RBeSI>t|#yTMwxW8R+Dx~V0a>*@%d~M4jdRgxFK*WZ986i*J;?L
      zv}LE;YA+oYU-|?E%Wqcs8CQNL1ZFxRIn$rgoJ?Q}(+tdW{AihpiT^@0;uye)23=tO
      zTxL~%^CZ=^&B~JNI&MgA9J9Es7`r2IwH@c?p6eW_(k5vd<^=j%8DPQX*F$ZAuALoH
      z-LXP>>984w&aPAet>`zQfXGo^9)`yL?a1h5Q7$C#0G|rPtkSA!3#2=>+16@a-I`_g
      zNE|sl)UYTp(t(~f$pn_LERbOTl>CvBXIad5uJTMLw^m6%QKZ`yJkpTw?6yrZfiF-H
      z=q*dnS3aF)|J2a1#u4<k16t*$f_t36mw3WqL<?aZsuor7v+e0@sTgNLKc&kEHo>fa
      zC2*qyag5-ULIPjo8-WW4uH|tSmdld<Q-S|ZGfEBFh+|QzV-njq;y8>IE9T3W0)1^g
      z<Hy50SMI7{$InR0DWGb&Za59MD3>iY#YbCqe40bippR7>E6#D9wHM)k30&zB-CQ+(
      z>D&eP*yIs<e&b6Q;#}1=ki`YA315KwJNy!O7Z)k@9^a$<>T8*KO_MR6tfYS73Jmj6
      z7Sz)}IW^rx|Ie5{#=!P52Dg*fj*v<<kxq^^akGic5oTUxqsN%t9*iF0)~m>`EzK+u
      z+zk-jL@#aSaEWC;gk_{yptH#1Bkoxga1W1py3s;B=VJ*F6BRzBoWin#d3;QZ>g^Ni
      zMW`2t!Bxe=-$f8vH}^jJRuuij_ipZElfUEsR1=@A%{1}(Us%mX)yZJAiS=x3FvcJ^
      z-ZFTlg<+ehpCXALi1!&r@w|m^!M7LU8w>G`1^9Y#4cpX=P&bKh@g4D{h~|4*iV^8E
      J;_1Tke*mn#JCOhY
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{$xg#C5Pfb#18Hd4cgk|1?STj(aVg?Z770|~P}BoAH+5TAsS_m*%V%*wAP#&0
      zABC8d?NY(P<C*7q<MA86y}!Hy*uk2K6vI|W#g6OoC<?glI=$9y-~^%XiYW3!=g{x>
      zxoXvgHeoPK^!N>TJgz#<WwR$-%`hTc=Ug$Y*M<~ooS!DAyd%O2LuOwpsSg;^#ZrU8
      zIP_b>LK;~cCPpocBX1(dQ24u&jR{OLSRJ8{M4QJRb+K72{dfNu7^ZEEAj6QaNhL1g
      zep7^3yy*#sshaO{ufao^#9yGHyE0-JT6&m9^hPU;)t6`tyT#f-FeQDbdap$_ZnsH^
      zPmr)9uK8uGgIL#fD0sh8EnQQI<2zRbTKXz7vBFRuB8T`+an5L9KLjGz{Wx^RiA)}q
      z{~h0U(ulD^8l-9X3^R!k<fX_b@yU)+bTEhkyZi*J{0#dMQxAiz8M3(ncMk?C$YKw(
      dgxSPQ>>TEi{E!7K60$^?LHjbTRq|6Pd;oyGqF4X`
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<OHbQC5dJ0@3@+snpbz>oT!5&Gg~}~eMMI0!DoPKjkjiaiZ^9yb*Rt1r{H&gk
      zTB*JFM^zm=1|&ptncaDO-_CrqfBydX1z;cBE*gaAV_gJcEb=@R_AEG$zNA5#nNa4r
      z$%11g<LJmFiO|tNS{DvsXDZ^lm@xNJX=Ps#W_I^Z2+om-q=y+SEMgXOgyo*nvR@=a
      znSB()SQ45&6N>mmWUBP*pkvQePH6Y0K76Cq4#CR`UAIGcvD-TrpGBaR3A*2`>=vVu
      z%sP`G$KD7lJ`^@B?7(JHB%SWwDO0@t8p_lvqjMKcLhF_m<Yh_lp2fQYxL79~Os(%5
      z`z}dinMiGAbcLM9J)X92{BR<C?vG4%>G-*{el@GFuCZ+oYj{w~`jD_uj~WX-4tN@+
      z$DLCD#&F2VTV>#+VTm{YF9*S`+aXYwl^K{K3+1sY*S3B`{B|idw!oX`uLd;u#v5nr
      zvKR14e9pEmF#o+udu+=zaDY2(7bgXL-er%lgk>gK;k(1$YDII(<PJx?pIH0U+_=E~
      u-|RI|axGO4A9DUR^Bz{5tx0vw$vAA{QT2|8$9TfXGWHbD7)$UguC0H^%+3S=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O-~d-5PiK23=9amh$5m6UW7f+F@9Xum@udbX0slakjSlfws&bV(>>|wQTbV%
      zNHo#AKgw7$JFp>HxO8=Wy{dXufB*gb4d5l7`)Dw{9_fO|iOBOzxD$Rl_@431npoz!
      zvHU<gX@??~hi94GH)$&LpeLOVkKx6wnUi3Kxpzt{_nu*9d*_J3+cyIlU<M0In8h5!
      zN=IqgEz-WUhoYZIhGxgaA~_OPm3nRT+=<E=-ga&+d_&7^hQJoOZj0g7cIQ-l6I?69
      zqcbO?VmOqxJvNf<gK*+Y;j+T@oRuPNM?1#^@$pA2GpCHseKZ+bQ(BRiA^bCud6nSf
      z{&cn{@m=E%(kzjwB-#g8ne%u+Q+G`mj~9@KLt`(MFqba8Hgl*Z7`p*hv0l>rh+(ZB
      zIT3oqX)2{h?Q$QDexICE=^&>e$~SJNg~6}eVqg(5)H8*R<tJ6Har0VZlatsjsmB)R
      zBIp!>2L0#~==DkCBpJ!s)&=IzD|bL|=?30lk=~_o0LeR~F)U++K<?7tBkf)Vb4=hK
      zS%P0!{n}i+z{5YJHBe$LSB3Y;9}(_eh1nWM*O-)t4Lq*u1lYtA$}DY9@r-gA!U}8a
      EKQ=PkWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      O112iRzp1_q|M@SO3}Utb
      
      literal 0
      HcmV?d00001
      
      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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
      ZsmG|tRTiZ)lsQgaWK8{xnit^x{{a+{-K78k
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      askw)I>)}ZIt3n)Vh(ir<2qKp|zy22(RWb?y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYj4|B7=BKY){SS_mTt5uZI=z$lJsJ>m372rK)QBKNmI6Vfes1b#HXpN#EzU}
      zT7D4{;tLW=5S2E>$Neb8dtx^Wom+_yJ~zLY=Y8JG>wo@y3E(ciQxIc#&~SXc-ZVR%
      zwkZzuL+hxmw>`JcI~~{4cZ6p<jc0tHd)%q>RkzhL9czaR1qp^b7wWzdW*A+u9a}tN
      zh-Y(EhQz9CaTReSHH=`C;d0q_c*SqkxVLN8nw%k3cI#%dYI?T3hmQ$yV0RcEmM?UC
      zE@*>6^?WA;#&ADdJ~V$cb;ow~;!lDX{e2452p;L}u_?@LU$lKeCb`)%in$kLV(qxj
      z+roC8j)D|JJ^~Cs711||(1C&qhHDzG<2?qAAM?5|c-3tB6z{$NizQc8Fv+lVq4$a_
      zO09O2x40v?HNc@@ieaK3d((6pVVaA+-L$wjhG~Yekfe-?G-hR%ZZKRAF%Ib%xvG@7
      zso@qrpgf!HHg_zB>1-(%@HiwKIxxoY5yM=@aYbg|^&Kl?JDDJ9nL(*#P61G{ElL-6
      zq>C)WLKKK|T}jQnhB?erOu`MkP!h6lqcc=YU{-<7uzVq@GNmQr({s$`n&-LRfL9fZ
      zxGTxJ$1pjJbN9e=k7OYeUka8O#{1+`jg__s+6=K;jaZH>O8V(i=}(<soD51m=uZY#
      zBzb;3F!o<ZMw06Ak%rIl1;dDKZJ7>3CaS5bTP69|Y*1UMDB`h#RfgFJdWIx5tYMuB
      zoLa`(t{w8aC{aZ$M;CZ5%B^kbr;6lu1Dgs;(Qbz%HGG9KL$bj|pnNvX!K<O5!f@qm
      z@vHb6&lEgmxD^qdFYIQ&m4gD(u!CKOOGln9_-Re)VSrJC<E{FnI-p_b+C)qw@k4RZ
      z)QWe6Cr9F0&~l*dxV~5C>$V)4vjLVt6NNn_TS%(nCgnX&!ymL#<}pgELN}duM*B#<
      zhq2%25Q9pq{0$hmM5`7E(EbkH7~aKYlDb0Y1l_Lo&HPO!N9bi^<`-IlY5JrE`Hko2
      z=6e|b8S^KY*gHXbFZF&8Gc#ReQXh74yNg^83$F@^6D;nf6Fq$VD*kI<vw#Bbhlp+?
      zNw%Kg8a6RS`JTZRwOj=cXfNO?R`49___mLDDZmmUCRF%@<Rq32EaM?rl&4QgFHU+Y
      z#koSU#N>1iBO9gtD*2Wa9no3Fmd^i<&*r-Lva-;{lfST4NX(}be_;C!Z7DJXd{0n+
      oKnf-%Q5yo39so)Y0Hs4fNh0()sst!SPQRf*B)NNJEru8W0y4M+F8}}l
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      D_?c)x
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-OHRWu6daefX$v%k^1A`)28(spAS!{fC}M9?lQ;^FmDsf6Xe>AYheEs*Q7jg$
      z{NBv-%xFG7-`)XS;y6Hu;XKohr=@5bBW%u#<;rkd3*DHiwtRm7GY04~ObYQLcqw$o
      zlgC1)mSLDy`blN3mJBD+?dHH)Rq`9r<affvvj>LJ)jE~Ns!BHjh79~))2-+B7bz&M
      ztP-VqC7+$B6&*CWv&(9w8OE8kb8Vbm*jkEbhSO;F9Ys~#BjNxPhUq3`%OsvdNE(T=
      zp2(Re;xjSDSyZl0<+Um)PWao>MJwHBpp4Wp(4*3N=+hq1)}?nq$OyZCkUc`$g7-1@
      Rn2?YI9Qp{&Q&Q^S=nG5AbO-<d
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~`xV6x}zOBoYTSSfj;Y{U!-Yr1Tq0YY;RV(6!L0^#O)t77Qgb>Ex!$W4rp$
      zkGHlzqc2v$wff)>=#O%_&&-fS#O2Gq_ndn^_C9C-|LVV&048xOg_y#`n%gPWH?4NN
      zW$E?OM&og-q<zb6w>)2$Zql6fnoY}X+_CE4+d2h9VeGv*VX(r%<$9RCWNQUgRyeTh
      zQ5agNELIloEi6~(7O&sE!T*ZF;H>AiwdLxXwb`-bL`sm!D~{{v8HIShP*X5wy@s7e
      z9EVMq7*se^bzFO~(_FRvyVmNatuS2m>egn>@*S}wr=i!Kw!-D=d-1=)d0HWnFP96o
      z0Vo_ZaU27}gEQ01PD7j{CQgVm9@(QN5=hF=M<!B8@~15WNJZ077+AA))ppnPdO)fo
      zY|fiFgR>j~{~`dv*hrd#8)SukuaPGrg;<@8(!C5Cy+GEkHyd0-b8FuBn&mBRGdh`n
      zRIU`*Qeo0W9tC+#nYf4onXZOGu}AEgaNLIdgo|;Ay}5PYcQj`^ny+qHKUyWnD_yg+
      zb-SZm9lfM|+iFe=r1adAy4}(a7n#Bpg(JJsmD}APX*px!0>;w#7UdMKDjeU9+gsJd
      zEUs~8kEOqmpak-jLQRUyn;6F!i8ee^8+kV};#%@Le%+pTL?GF>q&*?+ahf$nb#WN7
      zL%s~zAny?zfUGnvn#952P4&?;M9&m`afkRJ&kPOc>LxCGCQpGS|W*CGc_<)w8
      zeUzsZ*kDU(oRb2@e~~p-9zH{M8y^-=Y}1?D#>rmYEWrWySoc0Mcz`S(Qi9(FJx+yn
      zq8_Y>QzRhZa-^3eA|*nL`c4KmkP_tQR{mjFj3p7JSbeZlUD(`PlwRT;@_vro-ejjQ
      zInhm~;-cgkwvzcI1ByL%;naR0M?a{L4Wqh@k|+l7l<a;VASd?%+1eKf1-~DVzA=YD
      zej<>c-vQ)O0K~uqWD>H-7MEi1&c$bn<GIma;%a4T2bcTaACLC%4F|EmlHhO5{+%lO
      zBj{8NYji2+@CiO;2U+50)Se7(1fTOIO8o*~(*BCS24kiJ91B4VkQp!T;OiZHBljHd
      h-kgU5rTj@@|AoW&yN_a~+c<;k)UPbL!tycPd<_ai2rB>p
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      PXQ=eU$<ryab71;^E%_=?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+OH&g;6opSGAt7OS`9M@qQPE^jqv9Jx1wms4P@{2SDGp(T(PSny>F`*HEUePK
      zf5VMcid8QB0sbiUbWcnIRTgg2(>>>Y_nzB#^7GgC9{|qbb_^kbQ;TjjT_{?WO4*W2
      z=~oLY<+SuIw^H_enZC#EL%UpDyKfa<+cJiTz{wpW0<l11&h~xJpYRrJ0g)5vn9j^(
      zrXNqwWhZCuJi5!nj6nN@=T@ZU%Dh#q+F{nlvZAAo>&P*Ia59w_h$uz^VRRa3gCWqF
      zbzFO<TAH{0N7j6i{9ReEU={P0@2Gw4Fd~<nioludjx{&A91%F3+&Lm}Ig(4|6A<W8
      zh3#WM|35O7k27$;ffht*wES8Mr2advK)l{v)tMdzJ8a+x2H3v2mqlxl&c!%&i?+<#
      z?xI}M?aV0kpn;<}CSdU0WaE<9ZC;a6*>V_3(xX7gE(o-h)~0-~G`=Qn(xb_z<CzqJ
      zY_WkPQUWdW!K=_yW^QrZ1$&iMI0CWK+7sWAys7?V_La44r5!JQ+mhC7RhFwVCw<#0
      zji^M4$<=~gmJY`vhRXuG|Ee>y^*1WzRRbq*GJz3Xk6~1x_pfd{)xa2Tkh`Mt=ax9w
      zoTy|*<q9u&^l{+d1u-n=RsDiJ<)|s!v+avGqjF+^)#$-RL|rCF_yA&P<!M}vGZOll
      zgUge4o(yvpTwBa<==iK9UHnZ@3XBsng>F76IYroo-CWsx?BTBhJfKn~Y%_<xVXxWu
      z6}=5ihko^dfe(qyY1ENGUPCdE6&}?1HuSOLkjC$;;qP*<N--3^-|X7>ibLD^&&YpH
      z&Yb4=1o}GPsPTmwvl{iB&H}`g?c*;#F+m8*cT^YhvdMF-?wL1S3r}+mn)U^~+k@Sv
      z;6}qZk+tA4rc#cg=D{t!3R=EQFDp$xqIDlpn7X_OhH$FJdP8-DtikY@In>wxE-YRQ
      zcjNbZSL<r?cH`qFPWLwo?O_=3hGnc1|CS%>I$N`$)0zRWo^}vvoYigz`A^-di$8|*
      zd<s)Jj0-%uNLqxNOL`)1X$=q`GB<H$6W1E|6?lBl;15k6<Mm{5+{7({1V>L@$;2N7
      CIv}b5
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~+jA3D9R5xlx@o$F5(?$6DAG2)L@EMO1bay(nzqo?BBGXUvQ4(6yJ2@jxu_`M
      z1srD_-<WY6#}}TQkr`X?GU$^J{!xzKp53IITJRyW=khz>`F`K``<?v#&##XG9K@Fj
      z8U%U^W+j;`X^vCY++uPezf?}Twq`nI%XX7lD|b<Mr>k=X5rMV^?Xs3EX=WigIk%wa
      zTm?-6olnI{*B}HU6GP)Efp}&WC+pgVSr`;(9kEQu)l7FrD^>I;S_GQ&?yMte2yC7`
      zJvDhcH8p*1c4%~TDwWMfu~9(L@_Ac#9CBL?$fl-dQd3cE7HD#G`?78eY?$@35)f%`
      zT(lgHmD%d9ct_5vclrEGy{ZD~H61rh!#yF;*wsD5Oh&A{9z!GcsMvv>%@BA-#a3(+
      z*px9$eWJ2Br`yxoTuJxxwQ^c%MzalX9xO)OqCwjInWw6^#sv~-&ROQXQK;Ai-qz(a
      zt++-hc}jDN<63#pqZdnE$?0X+pri`A1d>m^q~=iVR1699D(Io^(yH(UD*Dh*9SS-n
      zJP<Gl)x=<T$X>rp1{J(mS3SP#Q4G+KV=*LgNX5%IOlzES$slfL7&oYq?(-qwV9gW$
      zsET$(V>pK63aF4zSu#qSu3pe>6|aKUMa!D)=v))nx*mSoLwij{99uk2!zxBFD$wFu
      z8EZ+mM>L0;w|9l}3ur_!#!Rkyr%tIz;|&&!eyO6B=y2Utfgatgw^-S>%DU|uI)k>X
      zV<ZvF{CT_UWKICDA`Pu%Tw^6pVOl{}V2|h5m87g)S^9njjcGa8vahOm3toB9yHR~!
      ztCT3kz969|9vbw}-&S!BWF61hy5{QH5VpXsu5>z3W$nd0{4U;C@E(PbrL;Cc#VjsR
      zE-mL(EOV{u8)`q#mpK(3*d9Y3^9txgM<`L*x1kgZ9wnbpkX1N>l=3iCEa0Mm8srnS
      zeqB8W=GLVq<A~6SMX&Qsf$iZ^nl9SblGo*ILj|;Ni%i<ElIh7>cd>aKXPz&HH2ulC
      z3p98yTZdm8YlUN_H+U#J!YFll@*cyYR9k(3dJ;Syb&3@?Z!MWIT*rqBKH%fE>XC#}
      z@ey{iEpsKy(G`4LO-OcEEm?t$tf;hEuDH}p*A_{-YNL1S>IRj&j@v3e!A)MqLz5LZ
      zbZUF(RCq@o`$EO1_>9$?wJLT_A2YnSwSCPC+3zKQXIU_f{B3|jlN3ZbZsuQK17g?-
      zH8gMKd{b!N#u)a$jOD8$zkJr^m-WYQ6Mua2iMWfS<BS*l#u5*)JJGm|y$?8RAOm0{
      zIRGaR!5Q9u0{b{q{b)Rg=Q$JDj~5tyfa3^fof7kRo{MlL(-Uu9LHD0Xj`#kBeZBF6
      zD|l(5@9~E3(VpmQ99YJYL|<g!5nfrw$)0%IYHWM&3WnmT6})~A(L|(<RX<vYeSu17
      zWSHZhR-U)clTiV^DB&;``IK51Lm6+vmaG##pMW))aVJB*F$`mzDm4(L0~45(s-LDh
      z|IH~P)fi6vjJ@};`w`A$dN@8AS;5)y1o@s{hISwOA0d}XcsobD-4zt&a%<){be`*Z
      zh|(Vqq=JWVgdBaH4@hrs(C3@X?H0M*rv7)R?OjHFg`@ZyL-<B!a)>nnvi9|FVeBR5
      z$R6QI2QCr!qYV{Y=Gsx>F5wDC0#|E}kI6ZmBtLBh*X|>7*5{;9j~f9e-}`U5@*R<X
      z2zjs8yk`@Hbh4!P0|9!}N5AzG+4@;FaR>M@gcPkIu`m7)>GQQnzpRUNN8We$UoO33
      AdH?_b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=%}xR_6opSmWOPJ95OC|xpTveW1{X#X&BP6aeHogeWavyfMSLw+CN6vcAIf+;
      z{$NBGc5&Ntd-C<%zPvs?1L&ab!(-sFp7SUXd7cS7;nVRV<JJhBXQ{D#@Oiqtk7Q<5
      zs(q9g8dGs6cp`Mnzb+WcXG$yEV`v_ROGDoprQ`0=kfC&uj%9!~Y*w(2GD9^~THelQ
      zBWVU=lt_kpm_{NQ3ZtC<XqN0m<qVzhpIN&M{!He%hzs&cCWig*Ne2^?F5I&e)}^ew
      zlr;usX{2uxEqx3@Kb@OMUMUy8z4~3J?ok|o5zj4;PBc1IpHz>uM|=7B<PjSW#eG0E
      tD7rmzo@0x2>)nM4wn>p6JE#)Fv1-4uc7L+2$$9e!tAV|O)g-cq)*FG5dZGXT
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRT}uK%6g{)9nzm_L_8s^Tq4u%#oM{jUfz^W|^f<1AuIQ}njz#{f9wg|YAJC7A
      z?yP3MMhtuQe$Kh~%;(qp2Y?G4#$hmAb>-N020RExT=ndJ=Xqo+pUYt6`O0qoST*h_
      z&wn{u1nz|Dd7U^+hV?#w;`V^cuKm#N3r8`Sk`Dz#w*H%HDBqRcONJ=1O(qPPrR0qs
      zfO4_2D_vD#I4&$@=dDYTS$(lZOgCOfBoV=yg#=OzkwUSR08M2fikP;t7UEc8NY`B{
      z?#IKn@SD6n2<P)0K4@{@)&4was-7D#RO|mzhL%Y-ys__ynyaaD3+3igo@;3stXnCC
      zAMPW9IQALN{=`dbEpDE@3G%dagr3--k0c<37J!h^NgzqMO5P(?=(=?24OZ!7O2+9F
      znO6!K*dWZpBrFqFsI7_=uCYmx{HzT*Y>`J7gfuL)G?77Pn>+(M*rmTFWZ1(2lHU{v
      Bo{j(j
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVYf~Fl7=BIy-LNc%hD$GEjTFl@jo`gpEKrcNAs|W9QdC?vOR_ZGO*b3S&NzPY
      zPx!H){OWCBl(F=Kqci>}^*Ni61j{hP_#tP{dC&X4=Q+>&oHu{{{p<<9MhbAP~#j
      zmAFyV%jJ^p72-R&-BR3hb-P@0TrZwEnl0*v=eS=gXc6e#(LdMYMcvNFSGIOc!xQM*
      z%&g6((yJ?Lna$O;mDPo{%(_4%+3-wzu4U&Z1v=&(yX@(<m(`0EGlVvQw)%kr=Qrz%
      zWz#D-xw62`jpUh74%A^+Q}EQ#lu@*7%bO7h4h?4oTIQXcsi0F}`hVpPA;Jsfyv?#>
      zJTyH8-2!8$W=#8zb%-j$=+$rm7X{8u)i7QgdXc&&%e<`D<Z!kP0+%(YXcq`4E!#|0
      z9&MR!M&Bx$l77d~i&@>Z<k~l?2;z!7tb+`A1&idy&&DmeY`4wbgkM90r_9u#Ry?a1
      zU((BkWxX^xe0tJE{q{_!E_`8_CC{QP6ueGAr?OX%tVgLB#IS-PYR8vbGY}0U7-h-x
      zCPjLT)T(j`v?0-&NkQzG#;eK=AuiBsJ5lfGNkq#f)3CNJGpAwz<C4`0fu0j8CkqwE
      zTN>WRIr47nk4zO~cvr)Fc%M}_A6N7uOK~jr2;c)5JE>s`(*mu0sZXBprcJP`Vo>n`
      zW)<9|5E?h~w=}$lIf3q>6YqLUVDMDJ8?|c3JQg*4h$SlCaO`a>Uva5`-V+s&m8{&B
      ztlSZ}*vv|%;5xffl2ovQWq}I~#8tBADpoOPx*@DkZ4JWvRU|PkhcyjpWJsM}Dw%eU
      zZLIl#TCZuo@3Fj-A+Q6q_eX8Vi*7p=n-xsrzJ_%?V5{()s`r06tEE-&F&kb3a$Sg&
      za>;c{rt4WItJzhpQL`MWc46_C;E#el%PR?ZWP1GcXZ7OSkOwlZr%5h#xbo?xor-Ii
      zi<WE`J@xQfv%fCyD4->5+jM;?$!mq{Zq?>Wb@74mA0>dxXvI0M6n_<BUt(wCJctl9
      zba3Y-uIBuGptt2Wgx7-y93tl<UHj-s|Ab3F_^~f@jG%?%0y8dhehWRAK%c)0W?~Dg
      z<%{zxXm1_a$19C+2?Vtet?GbR5v8q-koyVuD(5ZS8IZ8VAi>K6zZS`nKhQA}3GLz9
      zbBrZN|3t?D2G%3j_wmMIaQZvk_z{=-CVs}7qkDMgTMX5fH}){|9P_Ez$S+t3AohJK
      zc9@cpv3(>CzX^ywIzD^)&+pQ9faH24wU1Ti_$YFh!yfL*0|;ya3EU<u`CY~aEs~Ep
      zbaK4QRhFFG<LW-TDcLLZxQb8cy@gpASVE4`+qi=Qqj!)(k=`5JeeCl$!)RWU5ufrK
      vz*n*@k%lNw*u-bF%#tFV{z2vlFk_Ch6m2H625HIraRpfXs*DWtw*&QGylpkv
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|*-{fx5Ir{p20|1}1cA7KA|`<_E+}Yl3j~dYPzppT^kI@*!cbu*HJJ$hfuEx<
      zp-L@%_oFP&ok>^}_2q8eefsq2zCV6`{s!O%avA~xm&;aNFIJ3Nt!lVi`gUozs@Gk!
      zqCewl#dS=ptRX1SyKTHP^on7X_2t60EV=?6v!-Rb4+PrciM&8?&MwIi+Rzn7J30h<
      z7EMbo)prWgSv3k3DG*t-i$*1HIHtNcAA|0eSrZst{6CYlK=-a=y3!{mpvM<IUZ$<j
      z8?LcjcdK=mMrrJ%eT&D~cTX#pq3m8!R$bG!Y8oN}(N=tJ`M}bNvjXjFs|%@_5c)Bo
      z;oLC+e7G<MF(lAgmTu;~D_KH+lg+W58<`N!<D!NO0t2mNzmpB)5{8N86_>LpZZMup
      z<W=P5Fs@*fd^{WX_(nz*60n(Z=<nsTKQ*s?O7_F%HKkxKTAREB8yN~i(MrBmAknPE
      zqOi&-Q{UW_PCD@?kcLTt=@VKfTRMA_#G0gI8I`Q#*v^5_Aza5z4L4eCIG!$yTbN=Q
      z6xfr5W0q49cfy#)49AWJfkCB*&+B-2TJ`RpnnjMyIePs`UMZZyedWV39yr>*)h)-~
      zRa45T(eQ}#+3MYzRjXI4w&TiD)+*X1{*Z%$*p@;;pzlOJETtl?vb!Z9a`cpY0%N`>
      zW&Rf|3ka>)b*Cs7O!bd?4nOClqJ<Gq4*qIz<%pnztHztoU2tzt?xXV)4*`U@Dl;&J
      zZmwb9f%_@mx^Nmj^y=j~NXr=y<}F_od~`e#ZJ_UYa^hP9vE)PpBZr_71^^ib%n@oH
      z5oEmt!+t2PVvKfz;2PqD)|fJZB%!-7j)@~lQ(n>!#8Zf)$p-Y<*w;>`ZQ%B+FX&&N
      zh(z~s_v6wRq}EgWnEg(?9`zsbkT|NuAr=X|pcXHQzd~!CZ?6%<8;@1e$Hrqarat_C
      XbL1@O8*8$P@tnnir|1*<1n~410PZ@_
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8BH5IuMMu~3%}iwK1lwxZH5(iQv`g(#r5Hu8X}k{Xkx-IOKU-DdZ$@B{o4
      zCML!wpG_<zn$&myhW|sEyDg9y5+8PF?#$ddXU^PTf4+ABEa1Kji6Pr?0=;G%zTYzV
      zj=o#pYv}>EY`ttb=1XJSHf2N^hIfs3hHe{9L*LlmHEWz9=5xa%%SsFp)2TDaHr;s<
      zG#R97ks&UQtK>*kDv3X^9E&eA^yf;YYOz|%R~VwJZrw~Ef?)*;&QqgYz9M6UVf+;E
      zk?)%xw_Io4^IWeFqYR5Rx~E!B-P~6Vr>+Vl)d`y0rsu0%u=Z8Q<*IKqP1QD?2H!~_
      zi7|mP&M=xQpSJJLvy`v&gJD8J3~}M5706w0N<km`MNCzYz&VB?Ar1{naG^vD$+BBB
      z?26%80=yTD@*T@(m?{5P<0X=F&$GD6km+%=Tz$>p#zw$f0pH}FX*7u=Lt=fuX10VJ
      zzKlG>NH_^q7dK8a3Cv+$#<gP^&*-I~0G*Z*qLy8!LCeU|PQ=v(1&g@B&=)3)4lOyF
      zD++MQrFka0;+@fy#$XnGwDZKK8+bMIiDlDFgF>%Rl!9Q3ENK~`M;N7@klf@Yh1j7b
      zsY6Rbla;7a!2taS>GY9q$z%)KA%;@1PAcB{gn=JOZY3`q;^I$jx{Z{UZDUeP#oEYd
      zsdyXHU&B6G`d^|&0*?uIje4$Q3{R29GvZUkEJ~QibE*Mu5-UQ%3@(!uo?yvBPw*7n
      z3*u4q>I7Gjzk;j8c$TtJI^{ynAE;W?ugq!RkUD@S>}1boItREOdH4krB08PckK^eA
      zCEiOcP2o)E^WWe94pAZaR~W`?q_Bl4R0-}4t!)d-cpDC(c41G3SfR0Q5v@sz+{T?y
      K+Pg$d!o4G``PRJv
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TT@$A6#jMy90-RZmr6@ZxmasRfN0fL3!-v0lt3*s6z_**6Hc0(#Bc(|Yt=Vj
      zeDTRY;FB{tV*_Jn)F&VOQI6l<CxnEacFxS%*R|HSzIECE{`be90A9j(1_A;@8K)de
      z<*eP^qUG+yvg!R|tnAvk*m5Cdxpu)Z5EOVOYwcOFoaJO<t6N!_as^uQ(%mVf1qPOV
      zR3sA#eLN}9Y&&UrUqCETXv%hMcUoXL{8Xu>(WF3dwvd(~G@-*p8_ozcg-4TZAQ}_R
      zXi>9n69!rZI+txnu9Wjzvb1h(<s?rO{#?>3*=k+g47xk^uE2<&?FOd_`&@WgJMGwo
      z*vx?|XUf~#vNWlHh34<4WKof`YoK4CM_=T<_-gIMz(s+G4>R&uHnv2rYxhIAgdqci
      z$J!drni$3i3CKt?Pa0-IxQr_Xo)@^}V<VY}rxTWAWn{_33kVZ3CFkU}RnAetNO;tb
      zfjX&4r9WaKiZKEzNh^I@(tGKo<oZET#u@hMC-CE^*-pn!$xj-X@aKnjXH`0$5(r@&
      zFPco-s{#g{Q7{ONo}8qnmLv36aLvH00vCL#@e<R-b-c!eRK6*9=Bw`L9QPFY$KTJt
      zTDGew-Y_wVDG%jx!O7@=G4}&oTLNc&mGZJKK?P*Y&%hH%QPp)%ktNXe7!N$#FWD|x
      z8mRil44t!FYqjha%kG*>*YnJ0#n*y~Ma68FP7`7&*-l2Ypb{Z&VhJ}{Q#?Ht7J(a&
      z6X%;<J~^ObnlQ0~Ie~VKb=}HjWLhD*W#V16Z|MCv_ttR7z&Z=_xY|zpVj_tRfi^AS
      zF&_-GlPJ+m6Yt^u<3m-?>@VTCs^&m}^!0o6`7y-!+37qxrC(s`Yla$ACD&$uB2V-A
      zqI+=MLj^ATmt14h39+N4Rj&&XD0O(5Dlq6TT+2FvR^E<#ZMM}dFtiMxKyO2Jc)KjT
      zdjfqYMdNMHl<izvmK5`O6Faa&DBx2A#fIMR-8E4HDKqx0Tv@Je3tXvB0q=d7tgp+e
      z<q)zcEBE$T2lXP=^U-80)H^YuE`Da>b9})9wTeaQur9{^B<hmB!4EcpEWT1Iz81L1
      zBzWpY1~;@;D3?-l!B%fa$8p>y6isZsOaVTb0e*aU^o*|#M}sGf7XR&BZSq!-V`t<L
      zW+eKMlc9&``b`V;@ZYVEXZW9^*gVc)0lnNG(&{^L7SD1;1=@_zGi4~C&Gd0R$GsMg
      z=W#)s{Gn<xs!T>J7}z+%a~wzi#&}|^g4jxAJbHwe6&7y4-T-Gr`*4eJ)(GbgdazD7
      zNh;sK2<{?6j}*L!h8?ZJi{cGT6H+hw@Fw2UaJum}W(Y=Lmd<%VgIt~0F#oE;T#WpV
      z&VMjLkclxhuVB7{cL;W6obZ;_7RS{nCtVfX{uzDIU<G%hZCsrEP8hw04g!=6M23d4
      z<j<zb9rPoILFD=NIk?Jny^dW>!6nEtIp42yYq93mB0j)}gxpT4kMJ>_=qKNw(7`6s
      zV_{35DLR^I69_$m*c5GtNd3xHfb^-@sHi>A`U9K^V%x6D#W<?dX65B+k?*yL>0PKo
      z5_D>+CajXc6YlzjlX`nU`U<m%tHL*RV1VIA$ZmSH=Z@eU!tLI#;J_pM%L*QxM)gyj
      N;^7*qZ?ySu{|9=PbAkW>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3+e*Vg5Ix(g)>NxjTk9P}s)Es16&1XIQWa|H`!-$Ll$excqkfixBKY73_)+3)
      zEVfN6NMLqnGH1>?v!7q@9{_f-l0<}ItzrARVR6rEbJ^5e^@q0ZOViS?glszXvhaLM
      zCJ|%EwD>*OEp9jTn_5d4k|FI1>ASY5SGna2hN)7xXP;q0HeKhzK6^AoTbho|Fw@ia
      zTc*y$foYrakRe*!s4~P(oVrLMinNANq-avfw8gc5R}*f9*Q|ihF}PLbuBq})F(#X)
      z$FN@dk2RvrG=wbo8_5<odNlsn-5&)>*APd7Fx~)WrZ@;uHl}ENCA@-MA3=8siep|w
      z5+ej8jsal4m!*qSM5$ZHcMWlFs?ALHzTdWb7Oc|jC_R0IJ~9#9h=|TO{h<w09HUI9
      zld0<F8?@)3ZJc5vDDGf_?%GcSGMJ={q+*(4KllaNrx18=D0mjR4)`$8MpT<yugG?(
      zQ&b0zNat}dVK&GU9eO2A`BAF#m>VLb5EgPeRLBArhY2Z!g<KHb<sU-SLY0uE!20qx
      DS9_`h
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7I3wTt;75*m)x!L6w!b9XG25gZehG;=41gj<?m^1`zLTo~<y~*Ar7dN|c_bvo1
      z7OJ8atXf4HpsiLV6e<M7-9V^dTdSqj)@rM@Dkv7MqQ$<@KG6T%ecKi7$2Yq>=gj%%
      z%z6AX;o!-=4+A()X&SN=&S>|AN?W}~FxX|-9i@vsOS?)#w&g8tG`t~GLykiJVq=L>
      z>NR}rrSn@Bo2|A&?rh6v*`HU)o>JJTkW=CJm~LdlrDG6s6^7PYKC>>=*<uD7j25q{
      zFuc~^YIqxsfF<*oFvsq&f(mEWp3;djS}zS)wz<$}8}03;$8k-ebV{w`ndL97G;Cvj
      z$nFZ+^>)BCI?JM(6ran)PxqYeR<p~t{Jx-u;R;0=_BG>6N^2O4gn@>U3M1nCRnJc-
      z+)x;$<8+KBzT;-hy>tIB_nO7OEI*?$_M=b5c>7xxOE5p262>Us*}NecAxX%YItnmR
      zA+O!ED<sQ2#FWAmb4OU_###7`hEFqdNn}T*V=~TG7;FU>1guWWww5rN%zCp6g(%ig
      zq%b6DQohVKb)16|)<i?of;kGqGVE1~^E8~RFghO252sJZXE9B|<(x<`2{)y>u+hyu
      z&)0DQW>DEec`VfQr`&~^;?JyjmYm#IbQl4n)iwieYG>=X5Ug2OE2T-x3O7n|v5rfU
      zTZ)+r6@pip7LqEj->}`(ROy(DOPTRDktD&Y1gu8K7f>572ggPZP*vFILY;ulPiv}5
      ze~2yNrs^^sUqn5l?Quj&*h+z2sG|{=Q|p8!Y9+Xpg4-mx&5U<48Pz`9Y?q@q;mbO%
      zz*krXmM_KGYC-*~4nt0!=b+NYg;v4xq$Rf2?`wBc(Wavv9gLxuf~0>ng0xu2Rq)2s
      zCKlpdjd<r1M1NW+>pT1bhSG<tbp*h=bO%L}#H@EABxXy}9BK4h9v8Yru`KPh<$k}{
      zG<<IAuF>%|DO$ZHDswQ!!)tYX9V@Ab7FJX%PO|$nd_!Tz#}a}BHQ+P6a{>W>AVC6o
      zxL#p=m1TN81sz7P!166Iyq2e+E8a5`-B^Xy!j3m8oEBpSr$k9umam=kBt3Yuj&F+R
      zniaex5HOZ$SesTV(Zw3Rl_qWIAm@2B+(zhR`lHgh0e`4V!?)8^PG{Hp4UbgEow!TG
      zI)w=t&fYk$+B47a87w0m>+v0Ci9}LqwizKWuYpOVl2coeS?<IJ9UHNUg-hG$4N}eO
      znw}bksJJX6oaKq#JJlY-eGhkQ_<m-0Q&#G@2R~34<Yb!H+$qRdm^U|ivnVL`(4bbY
      zv3$9ZtwlczG958xCsJ>2^k52wv2A?3lZ3a*Lv3wlfX7OvC3aFbw&4K{KZ?^;x`mGI
      z!g1NemHVYn$4=~GA8;PO1c}27Ec1Tl88+nY($c~zh`N%#9gi?8Gg6A<(VHRzvaoVQ
      zO1ocLsaz^~8}{lL5VF<ive2mz@Q-ED!?LI%y6Aw8M}$S?c1lp|Pi0lDU_7eh=R$`r
      zs*@!7xacnz{XreS6jqb)voD3{o)G0UQT|%TZ-lADfjE2pR<vHxKBMDzLOQZ@f{C6L
      z^>gB1z4+IS=XLxMFA#&>95Uy(@unwLq{JjfI!=|pq~j0{lU$@3lVv_5b6`JFrN5%%
      z2wsf_Ad09kGVS_~RTF)-mv!+D>Behvh?Q>q8E<NMgFTv|L7fMlJa3|WqT?9eVrz@z
      zQOPH&<QQ{l_zRmk!!F5}RGr_h?(FiKohI4SlVD8^?<ky}Y>g;jdC2mTnDX#9o{G<z
      z0ymChwS4?j#|ga4d>dU|rjM;To{xf*Y^2$j<>6n9R)G~P@cHcmE4lwv!TOJ2{a2wR
      zmYy^&{zy!*d|xL^D3*@xj|VF~C$YG=@itbohsi87C}(`@{h>gsS!Kz4*zH_OQ|0iO
      z$QIA$n;g*iiw|giYMhnwTk(5PQ3QEA`6CN%eu^5Hg~9yPqYL=`Db8FNf}vcM@2twg
      zFpO}3E+TvuWm-{jc0W!_Lb)CBTtZ&zz>SJ7!x)U^a`9&z#&Zi7&iFXsoD9GV3EX%}
      zV7EM+Q#>9)pLz7GC+YDZKy4}xV?td?7?XO`n37$XvKiyX_rO(@UmnKPqT&N63}ZTf
      z_NpM&pG&AKV(OV;l!b9ouWF#WJfW_Nskv-U7}dS%e5&Uq)Ri%HT^I|(Xy{d=sQywy
      z9pAetj74Ew*^3iYw<OdxG3(Ya%rLB8JV$kBLR}wI`@-mQtoKlDZ$>^3w!J97k?LOD
      zPubFhNpsAkJB;OFtmwt+0jz2oeq97N?5CB*0NvCBy(pjV(737i5v+0ML1$jg`7O@e
      zcIGoVztx$yJM%)$Z+GTiXFi7Wvz$4PKs<)KmOuJ&2h-6rD`!kjQ5fG%meEm?JJ80A
      zwX+f}R^3(1tCvO7iDLNqn!lQl_5fxhh#J1?F2hnRBv&oMGOoS`U04Ad*J3%JXE$LL
      zZpC%D1J|PmH=q|c@-n;`yZAEd#~R)Ux8Mn`cnY`SS=^34apf_rV`JWh_vD3w4Jrp4
      zm76b)(YRZU$31ESzb9dfnvAWg1l!aFymv3e1F8z!)jaG_jp$QXV5e&1CEJMy)e`Jh
      zEAWt7jfh%{J!&2Hs*Tv^RPyv_UB+8PZHl!BYZdq6KGyOewI27Q1lhF9#b%x$hYhp^
      zKTN6fcxO(dOuE@s#E5R~$BsTuQrrAsN}IdzAa=`Qz6KupUodqgHxeFslv$e8gWbhW
      zzYHBfVUwUo5bmRhJwnk;5$%a!pNQBO6jg|5e*`}f5qp86IuZRWg2zO}`lqN#M8AmO
      zS0ZA~Q`9P=CnI=DM67d)d?I=}g5QgXbv%O8tv%3k7z|R-A4JTO*RuEJ^(9N01;%wR
      z&O0ZJmy>~LAwvMqlNVkfzr9FmdWn>Ih!H-F>3A6z;}!lfb_Df!70s-NHXLQ$y~f&l
      z9V>YcuEiUykvEy0W7vwfSWU-SP46(2$5~M)Z~*T*K`w{}FBW8mkys_n&H-jzvY6!r
      zepiOTZ{Z3CUQHdhjh;dY|H>%mSi@1lv7V!nV+ThS$GsfY90MFR9FK9-(pC~!&+#-z
      zBgY|*W{x8qi(>lL*mryE+Z+21a?ME&Tjr^0PtA8~qEj=Rn%dNyrY2L;C7IlSAp_`c
      z%8uY@F9yrc9RBPp>c{JSX-OQw+f4&F-ZcEL5&V5z82=dlUKsxl<77l-?Wd>FQZJWi
      zDHs3P(b>U6a33Ssr-oyn8i~i%C_KYXKCH&_DKsAMs|hMcO;)-(TMbi%YLY7Azrth&
      a)zo+f)l`*DE>J{`XHY5LD*S)1+z$W{DD>I@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVqm0woF-K?;?dB5jaHzzfPnrCz3;4vbu?GdzV7Lzs|u+En}i`2*kl
      z0H2+);`qRmPkxlT&Z)wn;P{fg&d$l&d#%0m?faKQ0F%gS2nmcje%&m2R;^aCf^BnW
      zYp-I~1J^T)R@JpOJ$p?)G(-eCcdS>I=~=#GE^qGGr9hy?sybPpK;#9YHLo1hnDkuV
      z&gKL{8_Y&zR$?YJ&-R^Qn|C5L*J0?|C>)cn236O0W=Z5*yS5~nbA2~h5SUEmavS+m
      z?w*#)ZRFBLR>+pO>=?qhsG}3z0^wA;*am@1I-+QiD4|1ZqJAB%Xp_0iIy!J(qCp+!
      znrK*uj&_;5q9cZOfsO(tF4cE8?W*!eAYLe!EboMA>>=28sbj40UnWzzph?lasvFqs
      zB-QlBEt`+5z*?>cm3lyrY-@K`3XDB|U9u~ITlQ-jCg`PdlDBiqM{i;<F{$B(K=1Fj
      ze{$)V!n8n}s#+-f4%<%U)5REW;f{ve0wZU2pXahPho)l&cLmxNNi!v2{zJguW0w_8
      z%<7oKyg;jB%E{G=q|`h^Wjfh+wk0&rr75fBdbMOfaXmU1KQWGsbO6JgVwn4{AuiW|
      zC@z;kMXms2NRC)V4qZjAfr?xV75OXR0(s&*9g?k;F=HH{%jn;4pvOq^*=tNR&}Sqf
      z4J3_3w1EL5(bB+>k<c0#`Ji~N@_9|wTtWoTSa*fYtLVlW`mxSlix|UmOyC7Zd3U8*
      ziQkOz#F|u)VjmJ|L?MNw3aKz77n!^gNd-}bq$a60qf~1AIt_zgjx!hG>AF&NKrA`d
      z$BmEZ`Gky&y^P`c_n47~zNGmpolH)B#!Z<UI6_0o%qQHFxe<llghX;*QoMcl<Lj|_
      zgG~UNlvSeeEed~$K{#w_8`E$xj~zT^ehr>7V5r&Dkpb&iz<o7{MLbXj2s|WX2#Y@f
      DvN!`a
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%TB{E5S&fZhKA55?;D(24n&A!5tjl|rHD!t_3ox7brqZ{b%5XEgv5al;G+<0
      z9_4@!J3HeY@5t{TuWtZOu<yYk1c@%fB%X);ESDZ!LSrr-M3@Slgu}^P#)eQ@n4Hjz
      zerIpQ<ApGyN2sJyCuT;V0h2hF!brklC;EG2WOAjGUU%iTo7n1KKE-ljRHm06HVEx6
      zi^{^maCJj)@06bM(`QO6bIwsZ-7%~EY$|<}&<;>XgHVr@me<AoMCP|*l5&Ptl*J+)
      zi(Fa$Bf4g$mW0~BETgQ*V|k^lvuXn#+cY=;Z{*){7|W<|NAR%5SfVPb@R_eOa~T6x
      tYOL79nOJFZcgjeN<)at0p1E<b$<=2Bw%EAC6$rkEu+7{q+2!hB?-S2LS2_Ry
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9Gv2MaZ5JYE<jT2+Aldni9IHd;BB%-p26cGK|IXP!Jwq$JhE~-cr`2ao&u_vf#
      z=H2Yx-OTBH{0H!c*oQ-i@~TsLR;VxDe{jn_TtZy%j#bH3u0GR3XDy*WGnHxQgx<^R
      zhTy)}-#S1Kk0Ctt<)6e<dfEM^x><8tYQl3;XIyT$G1lLPZu?`lgs0>#c1j3Vb=PEi
      zVeI4ZR%c?HNLk61(hxc}Pw0zNLK1r8KRg`d;2;pSYaqrzG`wCA4#g2hq7I@9&mS|H
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvX!A`<J5QhILE!9$iU_y8V_29-c#tXz#fdmNmY1!0m>NY8@K9?sG4?KVmWt@#(
      zNVxpp{xh4If4+adjsPAo4B-*RxouUR6>81zb8dLSmUF!i;S+`hzp*OW=4zD|I%^2s
      zM`KO%MCjby?g;*@+Up1%T*e5{B@7Z{^|F0Ub-m@Z)Pzw|WnAvKHqQSS{pQ6S2$SUe
      z_9-FSRBfH<XX9pEpN6}4x#R*#A(uetx$VMGoDz~SxckJ#hdew)qOJ{$(G!jTJ_xVG
      J5&EJY2ESWeJG%e?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`xV6x|nsA?XzqfeL~msN|zH)!K?;KazkD4XAu7^uu9h2ty}#!ej#Fr}PK(
      ztq-lML{=aA*oXd!{*$hrGczPn$Xb1XxpU{-efHUB-;=-p{o_vncW@X*hrrE}s%1+0
      zZbo<1zUg|I+@WVySDgHg=2lHFYiJeEaifR`Tx}D&sw~|xOo6Cj^1>CkUfk98wT!Zy
      zj2-}GLcp0IWLluhQn}i;z(6yWbJO0o>C*Rek1S<*UkZ#Sni21zO()j`B6&(0$9eQd
      z(IarVU22I7xF`@;=0V6pU?P!h3w}a14uMM&G4u=EXwT&&oGJAdEoCm&%3G$pqHWov
      zO<&Q`HG55SEq)I-Bi@cx6__lxQTE*?kR}~Eg%7u7JRL_TMwsfTKxZPk79;A{B)V`e
      zhU=J!Vq9SSv_6husnV?LI&N0?EJsP)z)kAs((LnMHa|;cpONzYLzH|H$tV((@^p&8
      z1))X~DWnB1IBG$&w;i`^8U<CUc>;51>3b^E|LNHzK9;!6X$Bm%s>)iW!pgIxn(nbl
      zI}KB(B1@*XsFkTj{U=_qHC4(idoGFM7xk&cJ$y!?q5A|zPD0OcI2}2U`w~;QL*7&b
      z9mhjFih}w#!Hqs8&a9$qL&@e%yJET$Uw~ZSOT3=hMqX16-7n1+xD{&CN-tERb&Ha^
      zre+Y`#Ad!wNEX-xIf*E`<CwwYD5#;A8YG%`PGS!80^K`WHS4<Cp>LrLKJ!H4DT;Ju
      zwO~JzNN(mBc2VLPp3@miZTa_>EV`NFBTEv?SRpP4u2vBkN^Is@y4FlO%`j^c>v-vp
      zgo;BB7e40=iA~-maNATRZ-;TemG}<dQ>bl~Eiz1hqR@&P3=a;}B(^xPn-DEFbsPq^
      zqo77Ni)S|k1BdCB1g->{HSOMv@U37;?BWL+PUIbb<~?mOY)e&V0&KJ}4Xu>n+2t;o
      z)tc>5f*F*Vw(_MfFypd7%&B=zb@P;*Hhi7Bbf>0B1m2)B-kGH>#HkC0qp0xsvQu+)
      z^RdMfX_)Drn)J8X7&I%00sTsJppS=#zasz8vx~mOz$5VkddpHo2R&n{bRF_7`hN36
      z2k3v?|B#|XX$;c)U=WB8ahcxe2!=3BFbvlp!WkjlSn4gVq|!&Yn))4A-(akcTkDPG
      zN9)ZjgG30piwND&8156&6t3YxOUAKA#xZ256wdew{rm+5O!@CX52M#{w~o(`@!(g&
      z>;PB6@j%|klm5CV#1r@mUxz6FP=4mIM=069h&ny$$p3_k!Ky%yg`X)2KacU^2wDC>
      zf2;KO>UAC8aC!bl9k18ZBcsRAA4X`8703=nI_ub3=i`KHA7OPUQin5Q{L&yg?ssRN
      ziZ9S`eS&Gav2$3U>$yl5<^?SBH@D$lK(rys9xB-L3)_Q>mwuD>P^DETogIgV8Wkt7
      ckI}H$G@-C4qS=K&rB^K~iH1rCKE)sZ1McGn+yDRo
      
      literal 0
      HcmV?d00001
      
      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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
      QS9P-FxWG5ORfTW=4~91ivj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQfT6#fn*M&gKyN=32aJp^m2Rcpc8LIh3aVnLunZ$mObFwEd&f)#76ZKc)T
      z>_uBwpQ|r@Xk8_``q0Nd^!N0+tKXg(k|~6>d?4q{Is1Iy-rwG5AO8OLk3Rt%!u<%U
      z6!uP-g~UX9Dv`F#S;KY`$w}SL8_s#F<BDVC+cWx%W7!de6rNpbI%sCoR>ts66(WWy
      z-?qZe?kRm%PncONk@oNwaXUSeHicDI!RaWBD{L+s3n$mc4VwmQ(>W_|Wc(8fYD8i6
      zq@H&j<8(Z0X7iIqhEOLsbxta5kCm~O5VtiCDTI>rFNzJ=7(t!FmX*BJunC(LqNZ`V
      zM87-MydwBwR8c5AqhT$!DC}9;mql}NX<c{LG<pluV}^ZRAIljEb=_84&kgBzR=)kk
      zkTaRhE9~!HnuLn^qIy+nnr~gv<F+WO(Il?!RH%+M57p51-5SDJRfE0QAHhC_UCZ^c
      zGFfw?)3z<UJ?&&IQ$q~ROnranx$gF4C&R8lx%3dpTku>22NZTJr|=5K*GR)bBox+L
      zW{;j5x9n*nlQL%tj>73m`YvO7nw+)ZkcPuTv)M8S&1rpRMwAz2^|T}PTy2<X2039k
      zz4|m$v}v&xa=JN@7;tQg;s*7ihU0jNrhfG)G%lJ}xC}h90c{#i;3#X;By<!f@oEIG
      zFc*^OW#YK1knD_+n=xz+?dV_$(XYN-CaIeiZ={}6*yn2#bkA2JxTFxiY-b$?6p4){
      zQ>o@u6kRwI!D)q!C2rBdyObJIc#WQ3w)Gi>ZQhx3zRQLTOrcvt5<R?SfkXvNnumm}
      zPs2I9&f7d=<+D;yZZ)R3kTu8LPQX$gP14h>NfUMfZ!c$<6V4<*$Ntwq0{CU(V92Rd
      z(u;Cbf_YQnP*5s4K44rbFx^HQ^{5ydJ<K~SiaKvMh%VY#_C>mtl>0QMA%fLWWH259
      zRW55<Zgd(Zz&NC_wcECS#f^VN&P-{z2qrVEd+VWC^Js^_^3qvg0;(yHsM8_VEQS=Q
      zPeW|9Bj9(Ls7;O*G|Xa<m}#qEI&$tkNdQ?l#e(7bO<0ax)lh?|+}LXxKEQRhTgt;e
      zs&KY)X3MGt*hd0RrM)YjkZx@E8~H-cp?5d%aReXn#*`|rf}Ms>aFcTN4R!W+b@vVP
      zSt`?2uy>>WRKprCgj*VJ<8#J8o-5=j`_VuI0cW4W*Dp1EC7#p__MY-w5wY%Q(1a<2
      zKDT74BlWV~5ZT2h^;zSbVM-4bHl}M0-`cLyLl(+dCUuPtSOq(6bY<l^*eXT2>_t8(
      zB4H;ftNEITQ74_7vnr`LcVyDsk&(M2{o*K2u0<_>*YT^J_EoYPZz*E^W7PlVnl|t^
      z>Ta|WtPNZFUGEuU8yfi~K-=*wVFYfA50~-bn&OYKBi^!rUGd+s>k;-85g#s1pC2x>
      z)YEOC10kFu;%Pp+XRw2XTxM)4F*e}^hA50jaMWi!?tTNcf?mY2B3hr|<zI<e1&KoJ
      zfdLm!bLX`_o?>%4<)h3{MDe4(rE&Wcbhd`#4WY+4+Yl<Ew=wfe39Z%@`vNr?p@gF@
      z>Jjf`$;*25lTTRdaUO%NYV{c6teWR)F^o4Dt*~G4+2^<;sq@%JTEp>%u&{?Kvg<?{
      zBTm|7Kk1zeu)l@3S6~;9-od+MU-TnP@7SV!KmOs46w_^LssDv-G8B=%j}6`|%VGLw
      zN-g6PTv~uG8~k&Mxa{V)#b1~!;{BfZfk*i80V1J?2vsj&o_llmv73XG1))Fdp~V*u
      zuqGZ_z}FA4TE=;S=jJyHaLRRZnAZxhSsQu8*}{(D3ae#~YF=f$*D%G-bP3nFdV{l@
      zxP^IFpC&J&l0LWbE%oO=4~+Xe+EsD>Jtlnx5*#ISVY)D1PP<n`cLGHeE)~&T_YTTk
      zI^u${<Rpr@vg_VOy2~=T7eH85Lbz8#Xd#NwtMXxw`lrA_zPs)XRQQ3WRrv8g+I_Tz
      
      literal 0
      HcmV?d00001
      
      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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
      Q_!r~hr-uKbz6##{FANzHbN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TW}Lq82(OMnk9w;;UWs<rb1{<)6f!<wp>c2G!QA876dQrX0uH<O*S#RX$y*=
      zcxT2(XMEIg2H(6e0}jqOzBtbK<h$>_`|db?XE)&#VSGux^Pm6v{r~y*w}0;a1R#l<
      zA#@3BFFUP7*{meYy0c_8y+m#%8z8G0LXW_Pim_xQs)kce%oHn@=?U~K8190=mb`z}
      z^6YA2ni9__R;_V?^|th-7cYC3?k*b*0dYw{n=q@kV|zyhx?=~<(@VBqvO-uVu;~$g
      z!iZpf1RD?*=$-Hl*Fqo~!5Z{x*evjv?bhQ}!?T@uQo~lNrPGHpdQw_$i{J@7$w-YB
      z^G(NsOji{#{;=f0!y*kk1lBT6;90{?*3t6j<H=Oj(y&`#-JHW}OIF_YJSp0HU!lm;
      z(*ohP!U?;qVIQled0In^Xl{0jXn<L!MpGJ|6<9M_$mVhyhFFZ%GWAMB!!Ys5x$Nm&
      zLBm0+P%g!z0)2+#+WN}K&}clFNzqm6Ke9BvrfFihrfq8&BQzT$slys3e3(vVG_W5b
      z(`~C9XERKfAsUON`I=WT8ir%JtmFjwHeE8|6HdOLV`--AF4*&4#dbAJv7myV<aCgH
      zTxNM%Aa1RAmQ%7yddsm_bV-)pFw8{?=IhOx;mJQ;Mat9MF4p`s&j#4f^Be=pj>}fa
      zhQHW8+s$}#cv!<MnV0uGvuw_n>>G)Vx0u~aoMRq!o`>w_(pWN+p$kr>bg6e-z9MJ$
      z{+UW?QuUfZSCz`IGnY>BMaHVR`l8`f$ZLtQd?Iw8iFq2xn0z5x%Z<00t&nj!Ic!rk
      zn2}^EE@#BKf2vwxPIx1NH_()s`L9S$zW-t_$?^9h2ti|-dE2qhwrWMIIV)csA4a}z
      z8rAbg)0Ssn7)CeNvn}3&?F#hg|L3Li)kaLisdJc(s(pq2_N{(11+Qs4<?+=oq%8{L
      zDz1g__5*t&xQpOA-r?AI^?ZHVYGw_WZa2ps=_G<15xj@@S!vl~y$?hW*3JXb+aea{
      z7&X6owWZpbaqF05u~2U{O>4@Q9Bo*&+lHh;&mMBx&289)u-q#|KEeF&frhn|vH)I}
      zd@YEte?;WsUG&|?#_zE)x+%Kl4j#WC;dTZ4qq{oNJ<+E+@R{iT4m=PY?7(<5(Sb<?
      zN0h=L1rIBjQE*%ZKBA<@l(R{tkd2<~L_4JvatfYN9-dcbGYY<-U_t55DR@D_i%R!p
      z1z%NASI|(InF?CUSy@3_F}bMttp%+AfckB?-}yal@%Kx__`8Xn?8g@D#BS`uAb(TX
      zi%IN99s{^QNf8OuFpL#`8E@bqKE((=$0)wSA$&vadpL|=kjC%G;17)9PmJR)OyF-E
      z5g{(oD2|DK92YT6iV?2MqsWRJx8y8N3Z2`rf>WY}X>lDnag%%TGn^4$;H<dCPu!B9
      zEjVlZ+yxWIY&gJ_uNk<DWmQhEFAPi~fdW&$Oxv(r8#LH~D|nMP99x{@V0ZC<8z*$&
      z4&J(hcYns!{NS$$4ctP{;J3W%f}|<z>zzj*$&l%64eam%KIEy7_a70-ls@)tKKT~}
      C9o;?v
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8fO-~b16g{u)bf#FXg$`|@MMcH7MjQO7D8v|QNNO5b@Ug*!4DB#HQr?hZhQy7l
      z{sPx7P29N9L}TK@AK)+X54g3SnKsz4IrqK$?z!jOJM-)BkDmY*QPB|-C^;&qJDsC?
      z$5m&x=hs{6B=Gl^mL5OdThx&dn7df9`o_0Ux7=+dJ8st&NUlgF{pSMlN_9sd(PVZ4
      zair4FkQB(YrLxz9<9*xPvi5sqOt#&Q)!VT=8Qw?9gnuYcDc8QJH|}UzKzD3^-8yEQ
      zT&3DRvd*k}&r(i()AyuumJMWSY3QG3JlpD$Q`v2{TGdtx0%jW1$O~vvowyVfQMQ=I
      z3}yuksrG||1KSgb?XHIP<uvBPdcO2*<@kpJDL3%{S2d}}MAS^{xPkI1=z7wLGP+c>
      zD0^(cqS0|;(+#|iy(YtLWXA`*9}a{Y)Q$5ifk>xF5_R6{jDk_CeTVUdhZrV^;WLoM
      zC1QG5z<8NAfh))mL-IYwur5A%^)tgbb!v<nKc`M&YDE2m1XAQ|lp2ZJSL7NRvG6QO
      zESXxjp_dzmX_)#4luf;1e8lwKQa>h&NmJ`<;$aqpx9_(5#=tb*4}RB7?Hh6>GtvEY
      zZsP$(fjq}8QfP*rXHh_jSjIf}zkq9~axE*2FL4vEa4WL>dT488nFjfOJ(_ZZ)p-sX
      t=H{c$akR<IN29ET{{R=8!He*_bAtsuVb44_HH$~M&6B}C3z5S+{{S!?jXD4T
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8fO=}ZT6g@AK$xLFjF=lMiCaqSjNkoGdW?@9JK_M8j>BpvmOp@vJmGn)S&J^6}
      zCcnV7OTmo`1x0Y-5AdJ3cWpg04K<Vp_iN61_uTvD*WVvM0o+I3KuTcIQ&Gzs?ze`%
      zI(CDw)m4X4`0D9Kr`t7<7FaqDSbrV5N1OhZl0$#w3S=HhCBw%8TD`F?knXUWgNAG#
      zIx+%tJ*nJ&bTDv(O=mDBquBF@&Uo7iWSmcn>2OaT3DkP$`^^Yy3mBdo_MHRXQmQw4
      z`_8e`8av8sZG?eTUfaZF0X<PqDS_*ZNU85|m_|1X0V|KIm?uQ4L!a$LQmy2%fJFgQ
      zszJ27>jna;o%I-B%VR0V^UK&(UbrWa^`r1Vs>21akX)t@{YZsu=m*kEDuz^4D95~j
      zplO)f@S|YpK9}(>3Nz!~i^surw$=DTprue`Xbom9dO@!@zr*~(AcY)l{23_V0&V^j
      zK!1^$z$MJl#^k&7F-|KMKGV%oi!)U1j9SE%DfJK1$dc2q+Ue$3lx&^0{4hgXwe*o~
      z)NIo-E#m`I!!|#{x>KE`L?vVC6J4wo-oAOaH8D>t^Zm*1rlo&FscNN1pUzY~U{CN>
      zG?dw=Ldgq^7I~^zK@F>Xfd;OjP2XXqiyMjJm#3<xim4CFM8!k)xx;zR7)L9NG@ch^
      k%_oyQi~j)bbq-JBSLXuDuyK<$gV`ExF*142YNGJ=KOHoTga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9IOHaa35QWdBl|ro`FW)h72PE3KhPaSuQq!>Ev2j64xz<bI)|6Wk|CKI`i3@*#
      zKgu|5T@V(XlbN15`R4xoetiSD#;JiE!&x9>JMibWAIde4l<mluSWWImy$5GtKxa7L
      zcHF)yz8Z!jDg1E88H_|$Trn_*!F&?YN=>F@V#s%e6zYaSYqrJ=dXJnYG*}i2C>Fs`
      zvao|ZL)jIQ_v7W1M?-JApxvq)`rcyfMI!0{hq`(eD`IlDp*FEQ#1wGV_m&h>Z?@dI
      zxAyFXCj)z+A|ZoL0S5$^9Z6Ub_hz)yeC#<+E4g71#*xqOMZ!_pjJ`^ua6#Z2Jz|bN
      zqNfTNscQ6xE~9GFtV<3?YPLVI+txm?_fB07WvZn#p#mKZ@>j4=Gb?jbSEY`jhWdZf
      fC25kRRU2<4Swub^)izeOY?Uz_;wX(cPTePe{l;Fx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8hOKTHR6#i~9nY3|g)7q%j)K^=ZrrN00iq>a?Vzez{AEGVlbULO};*3mZ3T||v
      zsNk;XPJDF{5J80&MbM=SSBkh1!KEOAzd-AEC&6kn+{gLuch3FJIhVZq{pt;Xt=JJo
      zNT4Ba`<c8kkue;5%5=R<&c5h-XOHSrdcSK#p$M#5OzFPlnUe#~plun>m?;pM^mLD_
      z$Z<cV7kuv3J(g{G`vk(N)*%5UOJ)pVXc{U|SqXuq8X`~ys(UQk?DH>-n(lx;TA*)j
      zk7MYCA>Fm4T?Q3z+?o_v+p}2Be}cONqIuKn(=RYiU8=Qbf{A1bx}DGTd#+{YyDG4p
      zoN|5?=9>B#fz)s|mut;QVXHK(mck;IebJeeNP~to5~;B4f@$ZyaS5)|upS!%aMVA4
      z-gE^*!`<?vNkbHB3>%S(qD5fYf{5(6?&^kTx*A%M<{e{J-txGnvb;SE%>NRobbN0i
      zWR}GwKq;gdj&GA5bzCbSAYzntCneVJ_^x3dwt@owSCe*mJ+-nIY<!4=b>|GJl5?0R
      z><Q->tvzH2uCeqBEJ=swQ1zTv2-TdI1`%qYU={f_h!fLFY+ALnm@Mkbkv4Ock;1i!
      zXIx4l)Bsxck8Aj^>k6zaxr$Ge7^Tn8WT%pzMLkFIA=DziBooS5L$LioaBcb&Pfsi7
      z=1|{JgZazToe{!SkLi1cL;hsa4IG;|BsP$U#77?BMp|KR#rYYU{sX2O3C!E_^ggU~
      zf_7tkgz;2)fRl{d$nZt<k`jN3=1w)C-bHn78#%I0MYN|SDIOnBs8rM_mBgcu5SJ>e
      zq)6V^QH~S1v?Z^FL?SX+oKMQco={$?OxM{jU>(Ibvg%DNQ8ViKpps}o2T~Y78-}qN
      z=g<xV+c1IcaIga|cH$Ct;R<%+D!OnJdvOc<F^vPbgKpeI7Be`6A`aszj^Z_r;VpXc
      z9)0+T<M@md_{!+tc>i|{1#LP~YDKwCYzj*$dn<SCd_nR>{X~YlFuxzz!kt2uv;33U
      S#zx-5K|XespCBqT-2MmgD&AiJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8dO-lk%6g}55$0p0vzK96gsZc{}qeVh6F}N9X(?Xu(YkHz@Vtga?uWA*v=m+$p
      zqB~=txOn&6uX8!){rrA?1GvVCjRN5`(y1GT6E}?YLMF!b^lNH{!GjmrC=$*$=XY;L
      z&inDBR$)Ar1m{^Lb2A)qn?N3+bfdH~w*;%%8W4(IUUOh!rve*gLe*DV_R`r%CVerQ
      zGOO;#p_mRtqO$tGSu`(dPB`;71*`;i2zDe*Pt5qpL9^vg#6q}Jp(8giiPBN0j0P*n
      z%rGQUjG57V>Uv&_g*ri;CZW7nnTG1>>{WIK7hnhcQN(WxC5{&7?11AoS1w~dYk$J|
      z;6?!zj-|X=!!GBQ<pTCl<%+P68pn)$$(WI?di|YYo!VHVT1zUiI~?XGj`Ho}KhJJg
      A=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8fOK1~O6g@BVNn4Xn6Px;JY^~oWwhdAcL8)L-2o@K%sb6d-$uylBXTo$+s$g*8
      zPI2K<K`JQOxKOYNg5pke=|*v-8@F}m%Et31p%oYJzWdI(|NB0zzj+7XFh;@%3G6I6
      z)l8|dkSVy%lI8iCtW&A_Gr6hLN5fDB`u^un-teu(DL3cX1-EDkge#`!+h$onWCeO!
      zubI3wo3WNFR>8N50{U^=vHdXtWiT}@ppMhI0}3J$w4uEn0-X_P(52QDK^VG#F=0E_
      z+3NMY<xQFSGLyw8+=5x2Ha%OuTcGOC+lvCpiT_L8Y~>j1ELr|p^E!ic52hv-%q25Z
      zHl0#t()VnqbgT{AS(R*?muHzQIXrlIJey5rWl6~hcFB@7+o`yV66ud%w?x`(r))VT
      ze_n!nBG`+40hq7O%~_s6=<-Pg_)4<ft@@kjIA=nD(HOPhRvn)iUC%BBh{y|cOuALC
      zV4b#Q=f-9;BeHl5Fd_pZ#KXB!LQaiRA;XzccJOtI7J|2tevK_@Wff5=jF*H$h*8F&
      zQpP9~bm~DT^*E78(+ykE&6gnC(+WAvTZUBP+g|W$hS39P>p!l_hU*UOY`Tgc&00k?
      zc|=Vn)Z(ru(Che<euZA1zTmY+Z6JM-&?R+t6}_WJw1oBu#-Ze$kVt3`a`ncCgcig5
      zS`4>WP)*Z5+NCciw5}7i+p<CW8fuYUk}=d3j7p1`(s<gq9|Vc-4*(U#@Xgr=xn=;P
      z7E>zB7p*turQgGb85m1b+H6d&-pI=A-<kdW3cAxw+h3DeRVJ)Ah9vom<o6b71f&*_
      zhO`a`fG&acbvcCR8$+z2pL#D>*oQ6DJNd_UaMeld!3e+BDE8q54&n?_xPmn1a0m{D
      zv5Ya?B6FAbJ)Fa1<nRpV@d6jHii>!QtN4gne1?f{DBve7tkL^77P!c3LPJutp%N@_
      sOnxE}Z7ok~2bhs&)CS4%!%<67Q=o_rR-yCnjNl7v(YaoMp`f4PziHatlmGw#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8eO-~b16g{ugk0}fSm16lQ-(p*o!5E1NhDDo@G-=rIktilGEyM7z%#dM*ph;b^
      zcHz<$uGqNHL}KE?AK=2DL_M!mAYIIT_nx`uzH`s}bM@;tfTu7MhzLwLZfH8S1GDD2
      zC$=A$W%noywl`c^^LFi`bP|XPjCFPu-v##Zy4P+KNE}&yAg#K9C<*kmtL>T>x&g7W
      zK>Ve2Ww0!u<?@>X(GtgZK|_y$B)SB8E7G-B!^5iWuUpl+Es&~sHLJd9`BK$wFdFR3
      zV}Yqkr=m{XOBChU!K!u0Q3JVr<-j_z%(~?|=33xO*ICk$7U;U&l%jmw+9fZyRVtVB
      z<s<}#3?!hdY{WneaSga?s&dT0ICO!SbdS7ag-jZlQiv|yy6rl_z5-_qJj84ZtcH7g
      zwl5IbDhedMFt`QiS)2d|abVlDq~}ZLzkyXMUGqY}X0J%)O}ca4d9@xUc_S4f!jEDZ
      zq2x1a{6n7^yIGk$1<zRFCyeh*BDlvGZ-L$DWo}$Ipb!15_!_v+sK`%vDzcUu_{QTd
      zHFbxo-B1Vd;F>DZZB>ozVzlrBnb<iNvY!#ZfMhwG8a-Ee&)n!)L?~e6OluajOJr0S
      zzG(g>nB_O|MfE*rHeGl{=yi1G64__{Xnt6X6%?~iKTXGWK9QvwGU|WkqWLi$&F+4^
      z5nZH2V36hvakCMMALX7|jM2y(A9D`VSilTkU=}4j!U_s_L-Z{kBji%2G*WrB+_JjS
      oUKnVwH`ns0fjsS3&(R=P=S>>kbApa2Ck=6qPD=zmRYuPL13vh!tN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-~b16g{sqZKp65sDK69D)M1ll);z~BZdV{NSZWk_(&8JoR(o2Qf8Xz3{ew5
      z(y(#s(iN`QxX?sm;=&)`!k<JvuT(_BV(z>5%suy=d)}|pA3p)yhY?3aV8V7o!>;Wa
      zHP1b;{J<!?jWF0+cb%HIZB?8gs9SNU0=dhLOD_Yfx#o2{1>z0U4;-^DAW8zsZnahO
      zLN_2*7KlA|Tqjr*Q1XQh0ky;%dY~YwBY_@)zKY{oE8%|C^4H92-4aMuyqa0xFnveX
      zT~G~nou<H4<+7qHq%TmHZ3QdlKBo=l3za?dz%=TnYa6S9@3{7Yh9Ro`Z(mCDEpwaH
      z{AQ_KE|e1x7|{`jCbKaeQN$GBv@Oe=j+@W~qK@0}ni3h;aa$sq<JK+L4t6CtsbdP$
      z9k3ei>{z})WOGR%;f29JfX>ATa1aM}txI^mWB;|WD$uj)g?`OicBDh;E0&&>OJbat
      zQY0e$sFx9P14e~^XgFgpD}$%t87+Q?{*_4t*BE0Ruor#I^|J=_V}KQ(1=krR`5sS6
      zR#JmscwD5WE>M+o>M(AcQN?IiRVzEM7QZ1KJ;Ge}BVxyJS&pVMM>0>&WDX-j0_%rL
      zyQrKXEyL(>`!~TXzgwSV-y>!d#V3TGs?Sf5eK3IboB3!_GKZr58qf6Zi+3MLm0fAs
      zls<01A5yd1pU;&qQ714=heo*G7&pjp*(`E&GtWnz!35?oiHDd*33srJBAyX#;4WTq
      yv)6P}8n)Q+yVczqXt6inF{*_E-$1@ei(HL2DR|2X8dOfoagIh`1dWw$&i(;ujkV$c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuT~8B16g{(Dx^!KImI5LlegH{Z5;s0;d=N2d((oYAnD}6Z-EkRGW}EFSe*7v;
      zBqTog1N>3OGYd9G%p`a2J@?#?GxPJ;_a6YBU^{>(u$q}N&XUtO$<4VcY}_~F(!SF!
      z4B!iF{7ZQ8$*Rd=eq_i=mB6erbhOC?T7y%0F5{6jS$tp%VowF?C(@)N5}SiRtzOFy
      zFQt_(`Ai#ap9?H@Zq{~(0^#1rM2)S^%_P8WfvswS&f_C9DaYfyuqxfVUSLWU@OQae
      zh#KZ2G|&{Nb-Kd_1QsI9pzgfI2mxk8ddm^+B4m-<MPP2AjoL5Ij#Y6ekKN|2L7vFb
      zP!`(7*Pw4t^h98Ns_H*4NQFVB?7lo>mv*OnQzPH+y*6^BKa=4XN~SF7yxr~hyL|#_
      zZit5md08atm3GU_|Mf$U-D}_>HPra09uLJ;9;NZFGt)pw{1zjhQG`46-c($m-MhqG
      zZ|4H7p15GNbBU#|Rs9O>61xG*tXpB1d#qf=0@mocoJZRxvc}taZnEH6#|EvN5?3)W
      x)BA?j7Xls|T`dKYT$_j#60X_^f%|9z!gK$@%yemH9#AHDKXMG_HfcR<{RUs0kIn!9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvbOHUI~7>3_N=T@u&wIdWLsEGCgR17pI1_F(m#sV>=Y%n3E3}vuP$uNbu=MT7N
      zNy5g3CSDR3`~d%f@prhjzH{0%TwKg|&Ufa!yx((Xe*XP&4qy_Gb#w^CDo#CJDetDs
      zHRsTBz4S`m+pl{YGc(gqHzsu`0z+3rijG~bZCR_e#rK|dAfP?B9ow4|2*eX>0!o%I
      zI}t!I1QnV<SKfB4<@(;H<*t@CtCm1GUn`fYYbDqA{nnx4?bxg~oWI)dlB8Jyy<&OG
      zr9IY(#1r}5(qSoGEjg8R!E<e=GHalRnwkR$s7J2tF;tJQXLGqkE(ifLggfZvyK=4W
      zcmhJ6MnmYw0H@fjZwqv+FA5m8LucD^eLu?t+u5&CBhRarQ}K3q#P)WTHEcd*J`9V-
      zudB-C*0YIRCmtfM<B>r3Rox*ZkfiYPPRU)MC?%dtuvXx}WB2g&f{Zw-x$guz3$?mi
      zwqDwj>?K$eeiPi|$N}Ctpm4`4q1EZ7xeBgo@;i*r+;pIm)_)Czaf3G04B&c`p1>`1
      z(fY~bT>ZE}xcd{Ai>Z+dseyKC7`I!gf2bqKoI>&oA{m9Y@0l7^&rM}3qs2_^6q>2c
      z#WMOCMpA>v9bzhDL{(EcR)lHvpm7SLd;ScnX?$2c)*GgN()gV;m9L1zKDMPyND=*<
      zW`Gg~5kZXCJ48E-5h6+9KC;}u#sj>;sEmHwl+}_<fy|4^DGSW(<&gf_Fn0mgUGhI7
      zjuOHv|HC2J2<CB@XBusaJ$gwhg+6u~fx$Xq_LB4jFHf>AN(8DzphdNFQ{BqwF;n*u
      z=tN+gVN@dchS5wgs+sDsD$L+T2th(H8m4j5_?0x(|3OGnP>M3gC~%xoCpc7^k|yar
      z!3*w}FvY>9C4}v!ur`DubH^lvVjDuS1pz3sMvTK~SdlnX=H(;~jolU`4xM&f;xM>2
      MarnRCguJZuKaYXF761SM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvbO-~b16o%hR=c`zyl#W=SsEFDYXd#j=#Grs7)--5fWP^zr%1{Q&3>l^nS8n(N
      z?pczsaiNJHi3@&!Kf(AjTwC9{C8Pn<%(>^@dp_Rt%=G8qAEyAOFsY+UV5sgjOZD1z
      zspfn8P7sz}G{fCy_-1Zpp;FPI2n=70c;&e@f5Wl-`FEkSC!jrYJvW>ch~@ID0?Gm}
      zyAeY?0Tr4+Pu2CDrRL7M6Ik|o!x2bT{hHlawF5WWpB*aUmdk3x)r<W)70n3fbthc1
      zcUUH!%U8GUeY@1Ky?SXS3|y~1W1v?+mGZeB1a8PkJ-5bj@|8FQ%ml8ZpLaFC>4gG9
      zo@Nplz#wN>Z*B^7t<4J<uE))$6GZz3Cb-_NPlY^hI9@&6;t{*M4c2h^)c7zgle;Xc
      zQdwKbSGsWzIUV-}k{4wskVk<iYg=|OM^Q?yl4q^hUdZmL%LN&6;0JF7x>x*WP;(aD
      zh-+^rs$$dww>fc)?;B9)@qN(h+?BWru4>^sjL&qs&`ld%1HHIHn`j4cy~>@yHT2L%
      z$rD_oxL7LriA!f{Uq@=}JT-;Bv(!J-5ogYF;S17bh4#inHKU%I%0^ksn%XfmQ=83}
      z^%IPY4IOrg>9UbgP32G#rjdMq3?upY1gdF#unzT>sUNj|7fj_V(%FyaN{UiLhQka{
      z!64EYqL<}w7<X_BW27=q|2cOrF)E{9w^f}fratCm<&eva?B|Tp*-d&e)~!aL5GP4s
      zG5T!CHH}$T?&sYt6j;BXpvGuN*u!9*6#Gbc<fcf}mL#A`0$N5pHPwx>o;CG|fKCF&
      z2}UJ>Z@62IXEakiRD~JuU=Sw*qh%ULtzQLG{U3uo^%SUbjQYl@bb>P#sc4ek6rR$r
      z;sNKHmJBxAy3QF`%o~>staAp|83VwQ)f9GEk~CE2J(Dyvc6%ae=(OXKhQa7Ijp#pE
      Il<%ta4|M#z#{d8T
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%Syvg5IxhRO>OI=_5G^2YYQ3_Tq!Or3X!5h)rBr3#!I}?CK7Kdev7~0LO~H+
      z_yK;DIC<csE;7TJd*<Yv`S^T$2e5*wfec~Z^+MBiu1v@GdLmHfeyFZPb+&!f+_l;U
      zbV9YCa^y+JzYvH1)}0bJg#5MeE~MwK5Xkz0tAyN!^rYG(Xtnw=L2vR}0UAmr<S{S+
      z!cYlW<Ostp>509tdoF@Q`@ACvm6q?=ont$Y5l)A?x|ICKg;u|(KepEihAY&b-DRDz
      zTD^5;_iVFcd#>450XtpKV}ji!Aqm;rKq{shwbQ0$)j7j-?f;Htoi?MlkxRQL4wA^}
      z1vuUbq0sijz!5t#w*SY`a^wJu99ZMyXZYjPTmd8QS$^S*a4qm`gBirV(0E0$k$J)3
      z6Qc}<xemn&W$36fzl;%{l@d0i3M0ZO#!{sv?vavK8Gq!KNaW(t=&w~RStY_GrdT2B
      k)3MYHW>cxPRI1o`#^61&`h)h+Cpr5|viR+0E@sVt0Z#;T#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TWb?r6#jN*GSk-4rcI+Bo2D17rm320&xu04(Rd+J>ZMW97V2~|O-It1GEO|+
      z(3k!JK@`LX@ueVw3Km77kAmmv{DAZ1(|Pg9Hy;|modm5xeAsKRy=Hyi{`Ojn`DgXr
      z3V=Nr))5j&6y0*VXkAHLo_o#qgY>C#uuu-BPny@v3E$G8{vzj`>sVgF&U>Rb0{g0f
      z8h8ayK;#6B1=}q+ZgJY0GkpQ=fa5yBAps>haGr@-!djrfFwlf%fz~m{wa3fzGq#^M
      zXG*p}`<Q2$rSqom$a6iY26GPY=^6XI+7SW0Xb0owJc&Az17lbCigd|zi|L8Lr>c=A
      zbTFs>IDzorz7sH4PfliYxq)0W1U4J^16!zgraUVUnjDqExPdNc1Xy0#4P>O-Kp2|z
      zdJX8%TCf%UI<^T!f83g75lkzveFNLEL!fEa^N%`3Cm>Uj7iJl9TwXM5vsj@?p2Lp2
      z;PI`Dmu$Bf%n3AK4NO0nu7<;WkyBz?p+*z3m>`I2nefWKWgmBB5u-nMako^2UTRg?
      z`VbeT(?SZTRrrPNpl#tP&0TO0r`}-QD>@;pr`4*#Hf*48)DqB&2u}iSXs4CnUEC#D
      zX^+0-wiX&)16965W7t@OhDNALC)-Foqo!VC(+W*zArp>;A3<9ZeLN<fk@GQERUh|W
      zt`lq4T_*KJrk<cjGNdk&;gWiJ8J&@-{9?G0QkIces=SmR5^8}5nJ<a;xto#JI~lD3
      z7Ske;x9Gbk!Aq6v4PPVWDyd#2o$Qh_aceNX7!rSGv_+*tG^K2BL`~&WF>RUmssvVv
      zyP0|SDdG*8F|Bs-YNg==UsI=Os#C1~7mulh=PX67<PXqKzmu(vv((+_Ko2&tTnDfX
      z$2g1^umhKn#54vl!<LsYgxmZp+{a!##4sM=FFZ#EFR%}<u^(@Ue2;@z!6AIWVSL09
      z{EJb1LKgqyC_a<*3tRCOIk6rmMHJ(rAE(41PKzO&5yR*b8RV-YaF)ZyHrGc$dP%Ba
      uOX;OJXB<#^gY*<AVn24$Q_(7Ra=J7Q$!#RCo1R7`^VB{>Pf)vj``&Lxt@`-@
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%SyvQ6g|_VO&`%debj2fU0cxL!c~h43qqt+q1A;hB#lEHsfol%#c%N!x=>IA
      z7k+>rCElb#N?puc?wNDXJ!iguKED9$VM{}Tq2{=O;n=r^?YR@~OXDPv_kp|`9Ge3T
      zDnosdaOMizyXHgh@JaFq2JN1^*TQuen8}dp2v^7h2BpzFXHdID%|by=hlX?p3`;ta
      zNHOGl!sY$oZp8heH5zk<QqQxk@ww%Tu#Z7i-U!;V)m!v2XS7W&94`CT9jR0r&EBmw
      zv5c|hI>tcy<gJ~?3YiH*F(e;-A&ICpF1x1LB-7Q#{|VE)?1pcJ8*9Q(XA$GX6zzf`
      zJMaSE=0_s5UYK*U8*axoMOEmd86C<S-Lw;FLNe5Kkci&0tq){diFfF)geI^|_i{8@
      zgo-+Gi^vnE&)6tXAF7s6j+J((hFg?U<%P;jA{9a9xlv^{${1F$MhanFkEE*Dh^6*p
      asa)#~`ZJR1RGBVF*5)L0e{O0KYx5UxeQpr|
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMUrbw782_Ey_7-Y4+KxJPfZ{q<I-u?kj4@ytOk6X9CKTpIHn_BR?Iq<F%PotW
      z;u5PSzASrE&}rC68V!k>jF9Ys_@aqEXkxO&L=zVueAY)FZ2g^EhRvogCO7B%bH49)
      ze&2V_cfT#&-2`wDJ#Huhds1dTno7(>6IpXX&sotI^VVG6njDJ{b-UpdXnHtc%rp|&
      zq#n->ylUz50^WH`Gm}~_DN_W*c>#CYn4Hsc7Og=6*MgSG>(pZco@tphX=RgH0kzjK
      z4Xa<k5pEq9a1IjI0|$Iwc(J1v0s${vPzCCS4O1V<&ra*PxHg?3SYSAt&@$s%&XD$&
      z(`ls*GHM)tm~&N8$4M`xTO-;mQR>63!!z1~7R_j8DmrTA3^R4S22YVpr5e}eoMAE0
      z9iAAB#ad&MRFfA^;~BD^&R-HxCI+PQSugg&!(tQJylF|#J}(}FM{4`MaHB?QtzOi^
      z;{bjtbNNLsKeJ%`$VGr(jbRe?lAe>mvUi3#mt{%xXLK`Vr3Gr)@0>MhyItgNWEh*^
      zhA*ux=r8GJl0|IY4I9hr@Qh~jxr9Ds$j14qdeI?kM>EeQ2RJF&ZEBEwZArGaWF?d`
      zf;Yo;C#_y6)BsOp19cJSI{aVIQm~8bP8-qBj3-#JANBNkE71tzaasbqxmQ7Ir<6#J
      zz>}X-R3KE_wW})Cv7NdH4V6?!ft1}$8EEKoM(&_-lS^~5%N2AjDQ%6*sHYuT#tw>>
      zWvE4Ew{(1j!N@sEXL21OIvS<beBL>=j%J!+8RJvaS9~WH{kV4RM!euE+j-?rgRYz9
      zuZ!hd#O|l7WeG<qssa4CFE@PND@=??b)ATgb+kwn7f&pf69*a!ia64x790|oC})Cd
      zAhHS%#er4y6_j$pA^rz)t%O@fFLByd&?(_=qvKJapt?mcsFL0`v(h&~l_lRoIH)f3
      zYVW|mgoaA_)kOx?8}VZ4Lk7Fc|Azl1@m1LXnQ9*)Ur4A}GRUZX1$u?p#mWI^X+>_s
      zYe%*eOQ-C%1=^E-C(_(&OHKtkcscT7s#*B)J3V1v;K50(C1kg{Si&Q*_y42jzwR{z
      zoyoQBm-j2Wsqf_z4xtYF(Sk5qaTw3xD0;XT!!cZ-yhuyq7|fy%b2y2s7{q%xg^%$(
      zRxyMkUceeo<1?JW28MALBlsSp_yKX;!x;X+IR3<0l<=|;I45c`A(}8Hx}k}FOpB99
      zh!}Kn0Vy$sv{=B5SVTs=k6G~nOtFHj_yn(rP0Wk0a9MnZtKv7jrYLw_abZ#M;0+~!
      zg3^Y!ltXx1>BKuq5B4d2c-Nk))0N5Dnkvo^qO6gFNbMj8Ua_@9)EsaqC)fcG2f9u<
      zj3d-s*br}`lRpYMsa@>NgWp1Bm;>y8=qB&fevdB4n)9CyS7!Tq)ocg0XIu7O!Lh#q
      DkXB=D
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;(M}UV6g|`Kwxw37wX0xTu!7K5Wn<Jnh~WW@vB{=BP?{PZWV>CqgWFlM&SLbL
      zAMgWwGx5a-O*AGx@BzlJ@I%BqOC^L5vYC7D+&SmYIkUh1{yYG14-07|818r?GCgO<
      zbON#GhSGc<$=yi4+z{Le2Cl`W^xX|Hvcp&IAPtRS<}_mr?F6fDrTdy8^_UATR~VAD
      zdY3_4qd8e5F_D9g6vL#&h1-rseK+jbecxp$Sb<~vT|4AzKW=Jr$Z6V=b^5;Z6fQHQ
      zJy*8v5sfX@>ei0EXPdq)Jab)!TzJbFTxKxNw8x;o3ArR@y0*F2YSmj4AZ!j-agE&c
      zqiu%7=BjE==Wrb*A~-=LBm-+PWVj&6wi_zc8l7>m8;}F)`>ychkXodM`vm8-99jg+
      zt_M-*xKFuyiRyXgmXsM(>G~x7K~SWLNKs7F&ZNvJ>y01Ce5E3REJbw;T*3v4xg!AO
      zi?n0ZousJ9cPT4evXK8m=_ECOf|@+07I0-u{R1r?(QAA|@qohAps7{#p`m?5#?W+s
      zrP9<t;o<G_eu6z{rW8z}jMV$i|61EJQu)j~YP_Hmed{}>_Vq(U|8V%b^7&X#BQ{hf
      z4HXnIgK5mtSH&W3;y&i^1oLQ9r;CMH^RpveW6eMhWnwCuJz|&0rK)DBQobzQph_dm
      UBbr&FmtBk}&&5wTAFH_a563s6(EtDd
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuTWb?R7(KJOY_nahNz<Fgc&m`4;Nr95gKdRCs9@V5^g*VZaXTfQ4V&3k{Z$H<
      zf)D-xf0TG;+Xk^R@LkV$Ip6&H{o^Nq=XmPF6KEwSkCON}ic@o{G8?_k?IgD!wDWzG
      z1={~2_6?IGwU@sBY}Hg?P8s^zBm#}Wu{@R0Sehi-wHaeC1gb~UjK)f!KDci6PM&Q^
      zD_!!XHrl=tSnAxY?G6Qk?N70qSe=@wk6Qxk#RQ#3`(~O?CTV8XX!~k`8C0OW$rS^X
      za3@3!b%9c+JFG!qF+>GbXDx;BF&EHU39*WRMQ#^?g@HC|CqFq<*`7Rfn>Pk&EXPBc
      zY3E-B%l1f<etX91e<vhGKT&o^p0G``)4fTO2mGjw9P2McRL(MOsr}BuX20L<bEi>i
      z7zlRLJd4#ET^#c7PkQDKf=8rL;=g))<X2c^M_py6hJf*TdS!YcZqs^SV1Z`u0t>y3
      zb2NJ5oZiL-mcJGCYn03E2CT4dja}}t@*Wn^qUCZPWs{K>wX@u0!FL~RN;f4ce4x_%
      vj>cC8JT|&q3Iw?}At3}@wh;mkPzQwPzJ!_C(#$+0O;A5}2<DzpdRYGh4&#yJ
      
      literal 0
      HcmV?d00001
      
      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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
      Lda^((KK$|j9?C*M
      
      literal 0
      HcmV?d00001
      
      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
      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
      E0ILa^4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(%TgOh6g>?iB#kGSfWZhQ2HOFHc#KVgLjVJg4S__w1z0$VGl&L;NF$XrO5v>Y
      z72amS){iQb3RP5AaaFeYgDkSo515>ukw9R(RGRL-eY@{D=ib|Yz4`qZz#UjY)CgSJ
      zaf;?nYR|N@=A508iKjVP2tpHR*t34J%(Ug~m<yYGGUW>B8G1Z%m5V@g+;b?pcG{e=
      z3cIegnU<phbz`<;yW;}2-92jp+Jo$t)KQB|27(9)T#nn0oG)fJWj>*f2sFmCDJ#8Z
      z<!!Yt8#Q;=W|Wrry8tqbv2CZ*)A?*>+E#bOy59-MH+m#i+`R4Vj4Dj})P73lTs!NK
      z>J@<|j|ml+T{ztdqD7#!vT=raSz22%A4Ds0S9TQy->%~-+7!_!1u8>2A6-W?K2{#r
      z7`N=f$o_Gn3!+0Hawe@0JCXfSI`+>pua4g^a1);hg!06qkTH$jJ#SOh(T+Ctxn-bR
      z9SA#e-}SBvAtoSh>gdBj5dG(}?MF0V;x?r!xK`dRtlRGHdl+r#7{q5md|J`*d_@=-
      z!d(_auE+u!u9n2Fs?jRkWlJ@cvPsb%Ht+>T1OkfoQ?I@@f*2F%I8$pryHZT;PNii=
      zI__yMdB&?wj@yov@k-7+Q=J-CuDV#}1=@T}Ov}Z*v+%-hB^Lrw-_c`yAyM=cWGoo0
      zbw|3D-cl7iweL!&!0Hp|surYDp;d~MO<@Sk8VI0HiG3-IIOc<xBY>*zcqq56V)`^v
      z!N39*6?MN~n;yS?ZwSk5NK?8gQ?>Sh=c+SU!axH)RKeB^tm6^YCW#Ap-=D4!Hb~pb
      z<<fS_QhjD-Q?7LT3oa$jP(#*XMFL?{rCB}{DmV*nC0op=q~F!`71;^{DqpxxXtjL3
      z=%&Qrtd?^=EBuDJGC2y4fmjLp3r=ca@LT5@>+u2ShVOuST;?jQXws{ZbB#Mq-ZlS~
      zFHat!ng6TF-V!1ud^C4}`$uR`_8sDS37zx(hv*v7B3fh5A$p&o(_053fj`j}36zZu
      zu}C1I9pcXV!O1`CJo)*vlj9c*)s98}M#~UK2nc8)sAfWHC6Fktp^aYc=p=6wU2LRV
      zc*stkWBV_nA4~Lm#Ft#r8u!#l;+{7GNm?ctr2(^;#C=9-XEMLU11i>uUfwf7!b7}a
      zin9P|Pva~4D;59dx`yNGOU%5+_z?z^C4Bt~GcWPY@z?>Pv~wB_Yz?YG+Zt5#ei3h?
      z+OH@7a<g&iH>?~$TjxA>h}A#P7w>(Iy2j-5-scQ5M3|GL=x1l#%fwv*A12%}3UH6G
      zCUAp3JskT9|2Azy1UQKqt`=GUOZ+Zl1qqLShgTM>cuarrhCY0Y?-(ggLf_M-%Hj!k
      HYVgDV=DnxL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%-BQzF5ItWT+EM~kpr9=(_=6>AK~ekxp%$uk?8rrt8RbGl2^gj%oi<S)z!&h=
      zJFmRe87qwA_y9hQPoSPnp)me*rpbQ0`<=6UPQL&A@(sXc6ru<zq_!M?a;vgEX}gnU
      zd#6^l%J<7<uWp$;QD_Rsx6K!(6qiiTT=u=1@3pE5(TeLko>f;+MTKtOdzvpTFFq(2
      zpA>jrbe)E0I^L>T^{p@|a|%7uv{bxTD6dGDWCs+&>;9%fXf3Z0Ydmi}wVh4372dTS
      zv#JoutmVh0+{yBz+J@;_tTVZmFOIKr5~hoe?I~!PpfBR@H))x?G-!+NhSdp$6FPKs
      zOO)2pfrvyWb@ZS+&gis`W9U=pE!mFs(BE0N>MQ1Ym1KP-w_;XT&AKh;{iNnSw;Kw>
      zrT=R<OL5lu=j<IX>$c3TWrCUGg;y1;=Gjy!3PYj)K<MIfyCO4P)RDws9ARX2jNt;e
      z<>EzRNHt6K+)b(%u38RxY>KsEZ&?jbsxvxzkzi`hraJRnKT|rOIqK!CfQ4~O$93Eg
      zN#=A!TjI>?h$A9kIUW6hTdq%`2mcME5HGuay<*+9MYe%IKB=s*W0YuOeMj(*@R<-g
      zW@C&)=;WEC?Q<8ibd67lQ+&o$Og01frendI!?6+)wRm%gah(hyzO%+B95)_+Lh6b3
      ztcg^5g^5%mS9^=35oUtNVd+Wa_HgQBfHK18U@+kb8Ag%DS&ZNuF42S0pcWwG4D<5K
      zvUZ-lN<1QKhB=L=@nDks%t*g(q~Gjf!btDp(jiYzpoYPXC(wn9NAUGFzD|5mMDQp7
      z!hc0BQ8N{u(cU9rOeD48XVafC^;%O&?c}>(KMvXY*b7V%?J^ad!U<dn7_YVv+KeeO
      zc9V~&?2H8Sr`Q|ev|(y9%}6%9O5Iy}7nqm+p#wcdW-2PjJzV?1Qivjg=870IwD5XB
      zt+%f2Q!Duj_aW=-l-@C8Viz}!M6QWhBQem#ZN^_?P5Qcrg(mG29}ky2#SaRY<4OaR
      hG)W6@bJ2OSFVLpk5sAmz3y<Lr^5j)m<lPXKegn2+&tm`p
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8eO;6iE5Pf6EF}Q|6(o!0re2OMH)at2+Ry{yfi72!ZRJo#!voaf;HF7qo)L&I3
      zP^BLF1Nx&XW=#lEE;}E7Z{C~nzyE*!0(ggg9}ZzX(c>tI2hm_MG%7mErMSAzlr}y}
      zgq4Aqh$t00iN5s)GB$+rP@2oEPoOqoA<bf8RHg}~zA%F4bsh(vi65W2bt<$-Wd8#*
      zKPs)vCxX{#x0_w29A|wQz{PTi02PAUXm%GtSPkK!Y_nPjALW3v7a`UxX4MW+B2_=-
      zg=X!EBvd*|%dg{MPv+l6FXc|P!^YCC$d#?9&62rPBSL*<aeiku=_@@lB2C$DE{B<&
      z?kCcm=n?N&Z!~Azx%I5soe&FHBn0Q#IFIEQWt~)>PWskf6T6Ib`46~o?3SE4cE=(z
      zoukKy0MGahxe|=@IM!OfvDDhW!%A!S4ppw6-xQ>m{H_&{1C(&cBi>*c4OG#@I)B?K
      z<Z5_@I#)cXkfkEC!Y(=Xv;Yw{rg76oHn4@)QyURS%kf&b*#5<d11nrEn(qst@BuIt
      KBHq-Z_U-}2ig6GC
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|YfsZq7=F&^7%Lr{T*fvKHbB@=DR>u<511HTrhd>sNQ|T#C!@3L$msBcf66<F
      zON^iWQO4(#x^Wq?AKIShynQb3d;0s&kDmZmuo^)~V7ltI%xa}(){g3)ZEiND_3ofy
      zyWVrlwW_iifhLfsSx1)XSZ>vPS+2>7ClKAW-9yiED^eg=`VYyPfU#TdP#+46m3+#U
      zXFKLo>u}$*%8q2&z<R~8UEA9b=*t(j1hmJEJ*h(=W?%@qK>xbGA0?D95Jta1ykxub
      zMXO$x&DV-YV7Sz%Sk9K!wAI=Nb@U+?!I;2E4{05vh$+sLfd~eu>+Re08FS_PZchZJ
      z^2K7|(zt68TqVV2-Ow?KX%!<Y5LQH65zGiA&(<sJp51VD<S?y#T{AF`1vccM#l}C#
      zpS14OG}bO6g^LhdSC`&?V^2U7*=Z-x5eStJ1TvSWqBM&c>|Dt|r<_}2Pdd_*-Bu~%
      zD+X@iHg%h_-Z<h|=6iVW=`>cA-dV1D2JS1aKJEzUuNtjpMLx0Bu#?@&;Lt9q3A24H
      z=TQ$qSLeik<81j1^ByHCFvyk33Uv*(A$E>od_nvZmmyr?UH3O9_)KHiN7W8bV({@M
      zB?R%r;xR@R+ZZK7@*Bpx3`4$&EHum@j#;0@IQfR0%2pH^Oay!%h$w8Kjme#<>@lWR
      zwKj78>+EXyGvZ${o(`wA@0i<8Yae|}%IGi!fF&j}k;F3Q_=_vUi$1=9JPKTqm`H&U
      z26-5-;|6z=40@AahH1n^HZby*Ho~k=b=9>%o!ZOW=L4>j@e#(c;j3o-(5a4Us-qh7
      swKQto>4bh0Xk~h8-Tj5hZqAc|Jfm9ilv1Xnl<6qN110`5%n`!Fzb~u)SpWb4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~8BH5IwgaY+V*wD&<2_tkSYAg$jOC#6%OLO@#+c6MWm2wcTdf#j+*-5TE=F
      zJZK`N(Zu-dk20RSU1(LzX7|pWnLFp4xwAiief<t#6;Bj|1g08Jr`V{simju4&ni~j
      zy5U)_qaY%XXc<RF(Keh$al6(s>z=^KzUejHJpoY`h}l6l{Tr5Jd7A=Jy<E;!1tQPf
      zJyS&(nuZw01j2f*dI<t?4N;6pYeIv95qc_?V{Uc!Yi9ekQL{~fq@-b2jkYECfivPY
      ztwVvC%EgRJ<kK_`n-bSYd#Ms*R>KusWyo`Pytd^u1Sa)dWgx8YEvdMMc?H-15Z#Yy
      zn8Gv_n(sP>O#&%>=y<;`rQ91ry0w<1KByf88DgUpWCf-N!G7_l9n0P`+bVSA732iQ
      z2N@ODX=qqNL15H#UzqRD6r}X>e<ZAEDB`w&a%9*YbNj78_9C`J9MAP<uqJQn&R+t9
      zc&-}5J>L3?iVPlTc!)=AiE(gXIvj@OVUV*E|9}Kq*=rpoc`pT7Y*s+saXan0`P`Cs
      zKXx{PE3y+v^Af|H*AO4hjc;*kxJDR>K@O72-7d4DT;usujOOQ0FrH7JAo1BhkmNVX
      z1Hb~mSsq%%I9Xh#=Z0TCj!C4rV*wvV_?83;6MzE{z^rkVu~@!~nJ(szX@^)F%#{9u
      zUsLPn1T_UQqzp;3PJAgRz4Qa(RpAS1^8N4;6SNbw6SSj|<M5!cN&xx4MzJ<TIDJky
      zjhnc|@=?rDUW(a5&U^s4<@brgzag_Lv3gkSVfhrR$-7<Lmxw*A)9Pa56LE&ctPhD<
      LI2ZHS&)WPA4r9{|
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+foxj5Iut-3CkiRT#N{E7YH$Hyh9L_JDQ*ch{fZQ9l}z{4mH^*eubaGE51OL
      zROzEtew1a;CWIwGxv9)<PxqWYr@MFm{QdD0Knj@<8W{TWPT9!k_6=EfT)W7PIU(Hn
      zf>|nMglTaZLV#hQK4^s(4!HD%F$AY=$988JI>$2m=4aC=m`>i<aHZ|!)8ktVfq7wZ
      z4Y$ywqY)ZIw?EK_MbTmC3{eG><c=j|iCam_mL&}gw{^54NXJdfTCgS0xkB2!v?N9G
      zgA_!|{TfDup_fP}Nm;V0>@rda?F_m{)Zwo2aXk}8Cy~qv$-}tAfH3YdFhfHW_Y~tE
      zhABVes<f+OSFdi3Zz<;Yb@ZX1N=3{mAw#5!S7kuLLl`7w7xi1ObY<}{#}8avI2r~p
      ztk{e&#QbbF_oVn@?i9EOGD^v6+OlS0SI8n)Icq=+tr^?lYvtk&mz(M!6+9zyW?{>e
      zwz8|60e8<X(FkPfXP|CS(xj_k?@*T%(1n6(nW&V94E+^{(t9l{0%_Ty0aUZ+O$5V;
      zU*-8Y`S86kI;Yj7l|pz*sV*pZA#1{25@pA#g{h7_*YN@=s>QDDSl+-_(kkDijw$79
      zQobsgfMXV^P%KBiyM{xn;=at?bzTx>nWM<To7tZ?UFCYCV-B-4kSf>3>9#sN>chm%
      zfMwS%7>iE1$fc=fB^|;NL%UZ8TNtbFFG*j~v5Ez%w?8E%&^A2kOSYPbj=Cl%6&QUx
      z7`?{o3edk1L9#>i^o>@vpNg|ngyYfX6STymZE8J3bUWG+?P`d|PSJgW-XpYR&oHo^
      zIK|Mf?*tIR5FXI40b>Ml-vjI+@Ln{N6~VCQ9mO~vVS-kmzmg1bvelJB0uKpk6irCN
      zAS6byDY`!<Z-A^P9;&1rMKczkIKi`Q;x}5=)647;f}dD6aZHgK+R#q%6*k=@5rh>a
      zG>s;v9h2xl8eN$2F^Scf#K@<Z1nJu`jaMF%8O+j-D$^9%4RjBxtgnyhsggyN5t#Q7
      gyDAYi#9$SXk$-`F=ZY4uA}-e>uKWk_t;gWqKdi541poj5
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvaUrQT76vfZP=&sw1sj*R${xfPc@gYkoeNsxnR{9W1Atm5b8Fz<tWV0)?lcN1r
      zRWMMYAD|zq^v)QXCFW&kXXf1BJ?HNJ`TOfPfLCZcC@|~}l2I@S&jU3|v>b}y!=)BU
      zCe!3N=2_NFc_fsBB12<V`BB6dLgi!(u1qq`lTa}1b!YYS$cGH&>?+e@_;p&k^Pse6
      zCAn5q=N^TzOr(Cxu+VDv8H&egBs?&be5}A@SUR%z%XIYE$0C*-ROaM(0QazpCx%gF
      zsJFW3{5ua~o(zJ#fp*_;H+(p7DMVK$;?rn&Ce#;x7E}I8Hw}5*=SrHrJ@l}E68Y5M
      zWJZfI=i&wVH61$QQg<S$GLvA-M+4i`ok!7osYIw#B}I0k(&1;7($w`8Lp5)$r<F_w
      zhh`3*0ZSgsA9fl|AJ5>KOijA$r6U!J6KO2g=6#WlF+;xxO_hF=0$ejVdUH)sT8s2t
      zhB5hwcJHhT*t`Qf9mBst`3|e6*C>y%c7yewma$3C6{~Dg<vupZOwHby4)m=iwAZvU
      zI$t~(qdqP5NCd1=>#8mD??rfOjTKD13E&MW4Zu05Jio=uSwxKr>N$inLAcn-Aq)U0
      d*$lhaSii;I6m%bBi$D$d*!~}bQ7jXt^$#PAvRVKD
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB^T6g|^cTA+gR@_~x(fQ5}~j2jJ!Ny9=+7i`P`BMd3iq_igbSH?sV7k+>r
      zWxOLk5;tz{YtGEM=giyt%PW8r9NI7#8WWXzlhMqJQ<ccM@VZj*P(FzGdKwEpwqY@B
      z%=jJmLarv>YRXW&{l?vB*gXRqFl0`plF1o^*=z+2)_F7*4)P59z8n(ErAkCh@Bbmm
      z!Nj@?8wG}H)Bk1bC$UtMPAkZPws5hD5<_+&k_#^8ks^lXpcQ24u;OA384ats*n&ex
      zdKFsKmrC@~`H&RxVJH|%el+4?z+<WVuc4Jp<$~eJ|HqFGL*YmI)k?WZ-ZA9*Q5ug#
      zS89&RABD$S6PZrVkog4G+frpwZNs6MrLG5qDxlIX<(6>U)-#Ic6Uyx+s*f}`uuZW>
      qcR?C6)a9{*B6d+mohrax-KR;NXbkNHWe0nonf^g%!W>XE(D(ptb#Vy*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g?BWaS}`t0t6_pmZl|1L)~l;B8W|)0?9n2RzYGnu}8^7&Nv!7mEcqO
      zhHh8@5(_?nk3!sWEI~miEbN(k@44qb&V2vz^&5ab_8b%#w#I7Vjf1JD7b=xA;XM=4
      zT<C*{Cy5{PQ0P|Qfz42#@)PbwT#da~qp1i|2StWv=9RH`C?lcxOwgGM%}`7yGHLBo
      z0e@wM0l^<hCDX?YJMI6#cZLl1K^%%Q7|y$JP^!Q}%|#h?2CHoVHD4<6axohTeauIZ
      zU}*Spz@s78(%8AvHjOfDuP)o_n?`vMh<QqLwf)~`A1tkGKS!ySYCPz?E#WFPx;N#z
      zf_2<*aQ)04mpB(Uaf_iORG7Sx>4f2OPW>m@h9P?|=QLp`X~)&G9Z=LLVCMX#Ro)9j
      z<tSe0!01DW=3gpPlP8?PeXdllzM!qto~j^<6Po6QNGEaVpv$niQcxE?++$ehVfaL9
      zdMmM(B01FY?6r>Rb*1nAG2{^Yq^L#T8d$w<gr&Dyps$PydC$@90ole=>F$1l+x>#-
      z#|(49__Bz}zK;gkF69{SMO>njilUjb923$aU$fV^@)_4YpxSHP&Ms@#seMY30t{m@
      qV|bXcZ7ef#Hp;~&?qu;Mw$RELx3kP0+@;fWZ0duu+w`~5!R}8xuhYB$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7O;;0F7=CU@m}DG8A}E1Yu~1FIM})RWiIo;ag(hGDvB7>gNiJb<GLudw7`tf~
      z-E`@q=d{YUverf7DW`Vdeg97BduIa7k#OkAncTVez8}x~ydU%Tzkj>|Fp8=KAH$`B
      zQAreXn+dC8*jkY%?r^=ttr=Y{ms6&i=avLN!}(2hOHCNuPTX5cc`g}RuWN>8-(YBo
      z##R~pGiIJk2r(#L6&Wo!r62%>Asl^>^4=wdUVBP2_(G+a<<^Rt)j5f!%$%yPs+K19
      zjYGe^p_Li>QzybsGW0}UKe}oZ5+2axP~bT$@N_c7-o|sR7DZc9EpFIE$T33XRn6yb
      zY8KDgrls-nEz2z4wM^pFe!|e@g|uv2no%G$5_%XS4kr~`(-ZE+ius5e+V|WF;vELa
      zxPU$h7a7htl1^01Ps%ngD!7FA7)}+qedubUi7OB2edkAyLKwhh3GeTxP%{&^G@UEB
      zf+#~<NwqhYIq{%UfFeyEG;TmLB8Ure2N|yXKNOUZ2!<7mAi)qac-3~IXXuQ^nmHK2
      zsBq9N6V?wDe29-IH@vEqZK@8c#5EDbH3bs_a;UrySH>i+OQ72Da_FE|@Cm4jgWSlM
      z?`!tPF}Yfk@acX#xEXM?rz@IHy&~*SE11De25C#xD|~UC;j)*5#q1`PMzU#CQy7&o
      zh1&}5V2%P(OC^HCFzhvOY~mUilETF23Q~f~pl!PH5*Da!PVAZi0+7aC!R;3g@Dnwh
      zW*We<f)(7O{?{o7hlm@sW2i+=HDq%u8EZ7ZhrDDE_epb|icCfj8R316VX{foM{8m3
      z=#gk|hOZQSjc){t`8*9RhK`24#uRgaNAOUADypY_LoKIGi_hx3NF835kfUBctnDRt
      zKF(Hiyku*pAtMXwi2x|U-Cm?C8<zQ4j4Y?Isg5o<MugY2s;`??kqbNrhA2rTnhy&^
      z5ra>V*XxGVY!p!CN_ou^d{Uj$8^dW=y1_IF1O$=P24|Zv&A>EzsJK{_q0d!478)6o
      zm(7Zm6Uifo=Z<_FMnr5hDCP{K@zLOA^bz|l^o@b@A3!VZCE8tskKTY#yyZ^>>yTg4
      z#)mfgmuUrhDEqxQO>c@Th<2Qz9f;<RhLLG9Dr9BH$Y34ex2;@6h#&|n=UmAHD>Az1
      zjG7<k(e2t}S&|muUhE>084UNn#=Ec3Uq>vxgCB=#7+ToHKxVj(tCRkSzlO2jpbfvm
      zcnu#vL-#JGGQ+R&Ssk;^*{vGp7b5;$q%-k47He3V3`7EN{Q2?L9Sp^H5zK^F!@WL_
      zUL?@fI#z?wtmDfX9{kk0*VVec_YXP$_SxPKJ7^;aSpgyc*God(fnV_)g$8r;2ow4^
      zF*ry}#woTKNsOQqS81e<q90>)Lj#h2^B6~l=3EXp@H4GXN$xqOv5i^$j@u4rOOyj*
      z<AAdl&=7UJ{(?<BBCiotq0?Cl*)~w5$4^!#V4_5MdPqLMgGEW-CT7d9oqScurVm?q
      MOsi<lG_64RKUR||2mk;8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5PcJ4Qe!n*u!8yn`~Vlvm0kov2^Cc8c@w8`W4eVk@qc*|Jop3rQQ~YZ
      z^dRoQFmLwp=FNP4e|!QsLoY@^*eh+T%A!)PwT+pwx*lCUuztSfNsN%NU+Gt^YHds9
      zc%l|x?AR7eh|Y~Q&5*Ejm@SDndBsIDI2seei`gS5SixEstB43`W-O1|Y0mCm=e20`
      zvRR?)v3ADeMKf%k%nRWl``_Mx&=E`CO5;`j%qJvwv(^=SY5bgYx!I}b$_Yq}`9~7s
      vPI4@0h(H2}j!)jvd6OzYA~~6N`@-DCy5RmV3temo5<WJO&b77#1=#)pHmy<@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZC4XV7`+n$3+oCrii)L06eS5S5#Kddt0;<1!4eyc?@Kbq<s`eD&Bn@yp1zz`
      ze@Z|1oI*T$^dleq2mLcW-r3!dr3d|xOlI!Q%)NJ>XFmM*<~@LEm>OaNqZPZ6sgzbS
      zZo~Ghn#|0bH92e9W$BJyDVN<7Im?zB;sX6E=5sSsHSJ1fVR=QCJc0PC>y!lc<l4|}
      zuE=^lE70LINI4K-mXo>Kc=}Yjvb^M4o^(lwS@ur&qBMCp@h<O~RUbVrFqHeWNX5Ho
      z*_L-nU^@9ZVnk%#b1l1)O%-Ti#wp7l2z+5+7YrR8*kfQf_R>HyRnV|+oAcnG-8dl7
      zW2$(njHeq1>1I;u7{b>YzT#%>Ko)~s4GiOufL@VaxFRr+OhrV6%UQL{VFO1nN_Fyu
      zWWdSf{Rpw8KC;wGT^TuMpc7phk^=jD8IkORY&E0>23y#iz1r}&r!;E;tYZRG8YZ{d
      z2v0DO0dJ(2HX{EM*x$0k!y*99q;Nvzd6HM13>5#5k}BvJ!)Zl2!&+*S!a_(Dl&f<F
      zdZ25#u!F0hqBL9-IM{Nv(D1fw1-P<x$-rfNE6_*%QHBy1-UZb~5jx1?suDND%-Z6%
      zag>GgxUN{U+bo2&9$2_(Kts2NTcosP&MjPjQIe~k<**m}RIkl9YRl5SV=h;vKqBXq
      z%xb}OEj14p<Ek%s&z~vwcI&b~^kvI7-L+XO*wH`QZ{x6#C})TA641gYfq10UT4gHG
      zS*kj97X26s2JT?5%78&kplINpY9OsF>z?bZQ9|BnxFx<TN<v@ziJ4Mj1dKV`mhMc|
      ztk-2-!(-m#r#qgVxAidL5KE(j&sm%wRz1I=LiR`23(()M+M4qiKfBROejk7ROKvAe
      zD?PrB{&W+Gu6GzHb|m)ai}A!@zSudDpMQ-nFT~S>@yQL0tmEikh%cr8!O=~ePQS%i
      z@hwtCHQ&H^6VpwcTE|%e=Luv(;F~6{G;wVmH~!|qJs8In<|ySm9({~+V2v`K@mG~y
      zU&9D&GFI7S9?sx77Vr~tWTkzB7QV+kXOvCkHuo7qf)B+Hj9`T37LoUPyo=E0&m0B$
      z8R|T{30(~v_>senP4uc^150gR3a6dBN-Vhf@Rr!aex|=L+h3XCZy3PuME_v^fAaoc
      dQuHfds1Y0&3XS1D_le;F9&*%uF^}*B_y{&Ln9TqH
      
      literal 0
      HcmV?d00001
      
      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
      zcma)A3w%@68UKHI-P`m+OCUlDXn6>23a$7k+VYShg<=6MNC(W(G`+NeG^sZUrOs^*
      znRB{1ADbJB=$u<OUlWiN#QE4%HYV=n=6uf0=cYr4Zj;T){^urXQ>gsb{7%lf_nhx>
      zzVH7%(gPnq_%MJOQl-HmC~1$Ss@lWrtE^Nk8R;~umWDdb`bezJv^2N`#p^>GLsijG
      zti5Vk>v}Vs6nI-Bv5?hMABma*U*o`m<w+|NYp>;rL_B4M$wr;fqLG-nG}S4P27$ZF
      ziiZ<|kr}#FG7_y?6iRd~33ZXMpfwr_Z-_<`6jPLUV!4^*?yywCTpMa@vrbnm$#1nl
      zPjtk)*IJ=&!Enp$jBhm8reYgn@$MM+W`%h$lAI%OmX)s*xaP;(ObsUqM%Y^SODBIX
      z{1{^(fRO^vESt=Wu^6vmoWMVDe11F{r5PgeSi-=`IE9KPdSc-YD;|qnYPOM+ptS55
      z-OG=8E`VTy0RzKyOcIpQ36*q0W!4Fm15T(MbY~r>@)k)eWqL6c<r>Ncd1!f0B58IS
      z2%<tz*ls2-u;N{&mFy9momI*9WY$p`rSjio^~`_e#dHuVl{uT)dv)=6)C|Q8oJJr)
      z+Zc+b%w_8YQ-_d}&ofI`tC*f);7pt)Fj_OrRw^d8r&cTT%rr0@MLNzAOge#ia_-kb
      zfVkI%q6t$`&o)r3sOJjGPe45wF^X`Wfe|QD=*ytC)wEWGS~EzGheOeoAuFPuvoAFz
      zze%BQScca{8Sr`G#25{Wa#rg{8gcH$LX1(e&Ntvip>k+Pgds7m@sndwp`ZR-o)=f6
      z%JMCnb*W-|p#cpZwOVe#tyUMISp)HJ*f5U7t5jqf_!K-0xrEsjvO>wY<;7}zTEm*b
      zkg{Xiz{U6sAr%cJk`2rao0PNtLpi%aacMCSLM!7aYR1}=9kx^LjWz=&NLr9cwI*!N
      zf|JS`8iu$D&9ctUA70)&>kM_L^#*hlDBkh-hE$iLKOV=6%U2d6hAs_p8g3wX8Jz|$
      zfyLYqj>nRrNQ`zLbdOAut1Vxxyu`yPY^3^BK`<p>Q0`ow?CdKIn*@_T*_D&$sSKuW
      z<V80wRVnAQf*EBe@_wF_tfR|UDg{4h;Pdzb73@k;!9g*e)h3VflT|LDB40GH8CTHi
      zDna+>XFJ-NMZ#txQLEugg3-1$^D;zTDiUS2(D7w~<Frj)Y{6I5rLI24vU!Ss71wI`
      z8Z-6)uf}++-N4sz9Z{ByFETe}jw>FEhd_sta)W^z@eLv&)YWCi+62?{9h4K7XMoJB
      ztiH@aTX2(sZ($kHkc?+Gl_j<sxEZ(5sBvY~F&PF7n!41wb*5#uHCvISX_5X`+@@hW
      z5ts|B!6yvdu8iRBR_E2}I}ChRl@~2$c4z#5E52vo`|6#0T{M;GP~v}J;D@-2wv4cZ
      z9WTAf4AI(@eh==`aPJV(GbarE$iA7y^GcYG9ppK8u8PlH1|CrHtf@NBSXS@SD#rWh
      z|FVX1#_C?|)9_#}ecA4Ah$YQ-(=zaoqScu-5+>iNKzrE0BPyz#tj-!9BYbiuX;`*k
      zQ`qcM^-{x61*Z(SoIL@vYkl163?=&yQ2|xqS=<*hP2?5(DJO`JfskUJ)H=*fD#Qp3
      z%S@!A^r1V^6^(HAMl(sBz7_=9%ucp7QFRB?>at9JFENuHao*tRoLL9qT)E$igZPz#
      z_pdXiTB#$T%=e6e-{JSF^+|@TWTH8u(%zuVk^>|&%WC{VCBo;_iJ@|z67qsV_ltsQ
      z|0k%Gazw>yysVttr&zqASo}#awru|KA(X+YP4TLM*YG;+748UG^Jpi9f%!V#<f^qN
      zN$C8AE48WPZ60fjr&s}X{LO}KJe1V&E`1+~aq)Maj53yWyszxu5x4mAAM{GL$}0{3
      zr8NAI+bZ)n==e8t^sH>xR%)5+=IHoHz%>6cA<)0Ucx45{jUp_SL*K|wM76p&iS#uW
      z>*D4-tyG!fCIX5bs3Xjna@(lqLxLqL8(_!znLsKCv)m<AD@Ni7T^q8jP|tY;GhHjp
      zkusl`P4;wg-x1@pI~<KC80ibeZ^%h9nx?WlBi5KPxngZM0s}o{ZJ`8YtR^LbQFde;
      zvv0^a8P8x-8AsJ<RqnFBv`;o<-;>WNGC`A4cH{$ma=V61lu6VzW^ST)2R9Dcs=!(#
      zry4R6BNeBqhLow^OzQ|GmfA$lh>Dp}nPfOvG%b_gmlWkSuSyj<tsxdOt@+BDCT&rm
      zqSG#bn81SW<gXDO4%Mk}<xstgJ+sQ&Gg~CiUezqyGrK~2W`D=IM73+23&_KVk>odu
      zPdAW{`kS*4{#AV#y$2<`Q0klLo4f~8_F!5Xr|&|w?`&U9-t#QqoI(5N?jQ#T>iAv5
      zUKE&14dzo`9Y*6kN}h-DSj0OlWG~*prn{b9?MlpGyEPNdq*;O4ID-_53owQ>XJz%9
      z%vt@pc4F2&oHJ59_S*~dC>9Jwaqh7cYx^mf)%tBvN6RWH#lb$*2lrti4biY0iwABs
      z+_wF-aG{nqyw2ugWN6TcC8QNB#WH>?n|ATEy2q5@1GwNx6soDQ7dq#r#)^uaSdqpm
      zS4%}2Ytsnd&y$&3`N$vGO26JrDci_vyDh2ImOdpb$>38vJ+EZ>vMWIcTC>utIIG*Z
      zDK2uX0ebUPclWEl0nrSx9Ha^gOs@wkcB3gMyKzC#u^W+{sNRaAohYr?i%ti1bnPJf
      z#k@k|QFPb10<QfC>_hjeU_~E#YFzeaz?H^j%>mZ~xO_i!Cvmi6AGWOWUD=1LO84NJ
      zG_FtMn>B8A;@bgt8r$qu8sEvzcdEHJjk{|+0gvzgG<G^}$C&|7aZMV#tF>Uj<MeAZ
      zA+-#6{F<vJ;K|suMh^z`J=jCddoh-3E7R}Aj~!_4MPaklxO(Ag-a)%Z@f=>nqxSqN
      zev<V>jK62WzQK)q8Bh1o8}}2vJ1`MDQH5RnIkuY^Ph&Bwe-ri*%MTI9kC4mb*oY_C
      zYCef8v7bo!Ic~u(a3`K3hl7;!G*{11;<I>(l3&FOEGRGAPHAFX((qZQs8z<xYV|mI
      zIw(0!zWeE-D0=WSV!%xajg;Zx=T4O20G+2%ib0tk@++XUii~TWPiI^!PdR4?X(a~y
      z!Byk?@Jl+&_nS0+yA_oc#g)pi9=~TB3My*cy%<*E_qbZpcvg8yx#;=kEe@?0lY_-&
      zX}nbJ_Pe)ZbifsK`nefa`{Vp>S4+$6fJ>eDW3#i`J#PFR41#fK{J9tI;__-wubk!g
      z+|AoQ#^L2qnPU})$^b1K=W(=i)N{l*8aPrMi#aaiXymw_V>!na9IH95=2*kg=X;}u
      z8eZmmOHC=?U)2=zy`!df-yt=%_}){~D&Ju>HTgbJ)A_;TTI%@EYTd7I$Ee^qSBqcg
      zooY0{KD!swd`Hx&Q+@xb(YCmSu(GlIUt-x$)EzCJ!!HGAjfNs9pKtbiir3r*nu8YV
      zMNz;tQXIAc-ADcITaO;z;*eu4qi1MF`t{=S+h8aX#t>QQ$|=R=w|{(qb}d(SWpIgS
      zAa@*MW&++IO5P*_-eT^3n|b#T5&JH4?t9F)hnZ{NCu%>y0({7vb%e<M57y!%^)nMO
      zapDqjVY9gT+eODKQi#{YU}rO&olFr9$p{=49~+cWI3j+w9W2^1h7ClCXfjs3EWX3#
      zWEsK2>X!-JnZ)nOGKHTRGF4_uP->+@=E!uZlS)}2RkDaXEpmo*NVOz+qFc_9%cVxH
      z;QA_=E!Xh$Hkm7T$+@yi=1Cvhl!r<Aq}1C;`G`3j@|0xipjzofJzESpAO*xeE2KPu
      z5LZr&kbTs#kTDR1llM}wGZVwJtBL&I(lDO$&@KUc<)$^(@a_dXx0xMwkrZ?HHPVjY
      ztkJr;)#3itk=%;*%<fXR+=?|MLrd%BRx|j21)HDL_P?v^f7gQM?Cu1Nx3$t`8^(%{
      zy66zqf@ESFmvVN}|79xgre)M#+8-=ABP#aNCrk+4OQxk|GM}ahZa(_XKxHf8Z6HfA
      zOqQWoE<}km;bg9-$_m@Ync7p9%}T>4y<CEnRzgc|W-fBj+7*=SkZCfVvzL3_)U6Wu
      EAL=gxXaE2J
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CS#J_i6#gzyW*Em7QBmsBRtF2y%G75Y6T~(lp-Yg^^vPVtD-4+#nps@_m1~-4
      z;t%jg8PB~#QWGDfFK0jBS%3Zh{u96x>}bd_Y>&g#8M{*_O2fnpgmWyS*ozYpCeJ@4
      z;((u7ZPyiXd@y@0G!z)hQ~s7aJ`cyv(P%2%gh31Vne;Pk_LMjDW{x}IVJQ6A+4p?W
      z$rOw5WZ+YVQh%@g;?>b%@06j{yG$39Y^daues{1()sOq#VOvW2uIqcDmpo(0H=09+
      zLWhc#u!3tE$_({|nlquHXn^6mi5s}dP~4q^+KmOrYYt14e@i0ivV6@%2}NnUBPC_K
      zXTr#AYf{n~R(f724%1*Hq5&WIw9ZOz=5l|?BTwqeXdsV=vN2P_)lDp+NP{L5FD4eK
      zE9hLE%-Uf%X<Tl%%>^f<8@!yQkt^hN8LI!hO-t^Y!R*o#L>-^Uv4}Oa7&iWUYr?+x
      zIr>z(CVgxH6*((OHMv&BX_bo8`iSR=UV%yRS4kVFETHiN?DR91&r$h;YNp&)%4(+E
      zRm%NOl#|0c(F)Z9d_oDZiV&N4gAL`C5%d!C3j3tx$Zpu@cwldRgLQ$itg5Gk^o|bx
      zUgcM_XgpHgQXU}}!OA)sXwEU~#2H~O*<WFOR7KZ`QW(+6Uv1dRw}oxu@>v-k!$Iv2
      Db~4+~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+int36kX@cz!aFu2nDaGrD%ssJ2fW0)Q|{?NfW#z8Z_W-z!MlU3^*5)zWW1y
      zf=|BqVj|J_(D>}<_yOuZ6iw4U;LGfN&RKiywbz~>zrGy+xQ=ZNoMCI=Mb@A{vi!&k
      zow2YU2tROwP<UZuKNNTEX-US%zCE1^UxUhEjO;hI<=WoBy5Ad#e#j8(5hh^Z-3Eg?
      zw1Xi7+hd4_LnkQhFl@Az_Sq%)Eyr`hI)iEc2fo`Vx2aom@=7GYkk*kvG6@Bzb)=AC
      zP|R{$zO3npAuhAL4h<`WZ8@H}7ma(ue`NPu!H{W9`nKD)eMg=bm#UP{U@aGO)Fc{2
      z38FDM;4rL6Go-}19BGMo9oa6i=FHY{BX`T4B#J0$*!XL66gsYT+xPALK*wcVWzfuS
      zgGTQV;iNZ`%1_WRBp*&9zc21Ma<=@5oo>q#27S--gx_@SAP|9u8pHb1H8G@){1Dh7
      zR~7o76d2NE$_!~S1w*c5{z4_t3Aak8cZ7^l+^SS(I92%qL#bD4Gh~&U>IbYAYB}}B
      z%lccD<<#22``<q+g&A_6sDR@PeT$Nszd(#XL4tRX;$0a0Df0Xo3KTc_bDSky1*&X<
      zb2v{?W>Op{Aw^su4h31P;UZ-!2`k{zLY_sD5k6M=jNC^`4%^1%CGXFv<s<}HP%~P}
      z6}pkLH3`irrl~kv{SHRqE7p(G4CgfYL+C$+X<Wl55pkIFwq=?DWT4bjCH<K{xbwvC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~6#nk*lqqGD+G2SW#0P3S2rVyPAS#HlNd*(N3A$k@H!!5kG&55K-MTUO
      z3taeExp9GsghmqG`*&O!pXUx0sw`kJbIv{IyXWzpbHDuh_z6HCCRA{S-g&E>o-Zt>
      zowDVbOCo(oIIih>!t%yeJ#pJ8b=@-Dg{&tW!?PU~3PWVkST@o{!<tV|%`S?9r=pG_
      z>RZd6Sxo;$GX%`J6$X}N2o`M0z@T`mCBabVEtqashT&9h-wK8aK4My?H_C7}c>sJi
      zm8V4G_ME5(!x0S)(835Hrr{8psH$WtFFkP$VT8hHL7R$Jh7<diq9K8HhLBMx2-mOw
      z%s~oDWo5c!8tM^}+HnmkLJW;L(-M>ArCH(JGiHm#OEhN}jAGt!OnI&v6-gFDX8+dz
      z85Z%TE*S2lSRvl2=LbZJ<sX`osoeiV9F{!j8oF_Ax554cGoF>#do`qMuMbFLpN4)6
      z?8Y2qNFIc=Z0g~diXjGl-?4Pjo=#Yvvl_-AF32fglu5FCo7`(j<z<nVH4N8IwvV>f
      zq`h;*lD#ZcTqPoQ8M|+}<x<IZJTW&_k}t!wt%;R_C`l!ZQN$R+ckQxM5I0RZ*7%-h
      z)hnYhXj#h=&Un#qT|pz(Y9AXiv?>Amf>6Na#?Zs%a)(Gp<>~^Fh+J+uEA$=0VL~^O
      zHbb}o$#%Va0}*`_QN4WwNA>Osnm5p)2R6|8p8Omq=pUyHV80M#-%!uK<1qVyIQxl{
      zzK_c|IE5~fQj>W(<vEQr)oeo~8TlIY59oM_pz<#8j*i>G>!gdTelTqtRt-j!B1slm
      z@K<V2CR)>{DTXp9i~NAjk+-l(MiLdI_$$ol31x;#C(}{oHDc0Lb@x<|S(o+~|Cm$K
      zyoJH(L=9FNYmV~jCeE)vWz0uaaOutO=WKnah0DY%I5Ey+i1H>J<8hqk&FJARxWZd;
      zgSX)xPhgt2V}W<z5$R6|`;2$iaJW`&yAh8uLL5rYuAr$(K)=r^5Zc1%^d_!--pRgA
      ZV5Ww^P&E?Abssf`agt#_Vhe5{`Ug?uROJ8w
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3+iuf95IwtblE#=eaYLY#TT6k&Dp<TiDN-X45h);1<=ru>;M8@HFGcw$9zY^O
      z;(-s~qY!5uBcUV`JnYVy*)uacXMX<r{sX{6+^a$gIHM?YNB-E2vnUPDl>0`-Nsy!}
      zN{^<gI`%&7@jQ#tcv^)aP#=5eo*R16$bCH=D?b$|ovNvT-CulpEKol8!b}NNhM9k=
      z$Q3<02SF61hXU<(Z#ii>(isRC-N`#;qJ(t|CN|i#-5Jy%(6CTOMWam%)j7IkVGT8b
      zjeZcRSJ~N6#V6h{<Uj2G#P`C17YEuef=2p2NCfu#|1Skct3>MKOFj4+!Jrs(q|!Xr
      zY<HIDAeHY0wMKYUh{9PYi}`kv#lCtT=#RFR*6={fD`54aNX6aIOA?h-aYtb1pWkNV
      zKRe{!sU7!Uf~|!kvbAivrD(JU87409w&;bBi~vpN8!kHgGt`~?GuY1d49zc$OSE{m
      zSPSwI40(W>e1dg(h)wwvm-*(*^Kk`R^jJwRht)N@%FZ%J+e9Taa1Gas&MvKHm7TAs
      ze<ql>s_3BX=B2GUp(x$Jjg`svV)BcX$v1I}<@C&dcW!=K=zP2)Sz;$=?cz4A$ua_a
      HxQngdH}Iua
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7K3t&{`l|E<QnOtB92@;YBC_*xm5P=wMkVp~&4&;F(CPq{;BttSVnZ%ii5PTp)
      zM8w*vR0W^7Dphn>teN1(;-js$YPYVg_^fu<u3Ed>+IF|Q?ON$~{(EQU64DKV&VSB-
      z|Ns2wKksuduYC27M~P@Y-|Qp{)2yyYe`#08#?okiBp&JsmaYy)W1(0)7>QR8#Dn#L
      zJ}23jJR1X721>($NLOj&`i;SkIFogK{|2VKI`t$H>Mh0EzF?>9s_x&gAsAiEWUsGU
      z;jdw0KhuPo-bgGSh{Rh0;r^f%JP?z!rFKn|zp+739OJ5~T3uD+Z*CLZ#pG_Ts;;YD
      zS6$UqD>E8XW>fPTf5VE@lqWsa<iA9%%4W(~?#H&|#554Dt*foCZD?*1GWo#$4bAE~
      zuBM-Xhilr5DOX3JFVGQ+4}gPsV0}2aZhasY#7VJuG!*F?g~dW!@hoFQ2<vp%6$}S^
      zAi)@uBOHu$#k(Pbl}xrspa)AQ>N11KmSYdZq+Qf-QB&=*b&3b;as0vBRkdwR*xyoB
      zcTufkn;|Y);nz_p&vB)Q5~objDfY)h;nE8Nv2LgWWGx#ym}aCE)X^P?M1tX%I<`hf
      zu*`8@C=!ZSGEFW#k+Gr{uu;?78FZ7C$}~Eg&Vkwsi&`?ExkVbCNwb+I)rBI#hW?)Q
      z!DzFHiYcqEw<8d42}DDJ8<VzpcL<E0SvRh|fukCO5oK>pO6H5l-#ELfqazrL)q~;1
      z!n(V5OGmIT9)j69>3j%DSt_LNZ%jRLQWeCXd?4y@(^9IDyDnqO8H10a7B_CcTvn`L
      zI)9YNzCM>Ou^ZhkvUKsAZw&?X;66<Az8>Was;5RLH82&AD{zzCG+IroV9RT2tCp>6
      zY^ZB<(i*1I%<}O^`ugM0NifjkrVFWA1TkNr7L8izVu-yf7&nXy;ia%>9QzYnx<sRS
      zRO+NlnWiPrS`&zL_V(y16}`CVa#(b9vzyjZyBr#THI0_O+H97eXlpIur;|1~334n@
      zOC(&4<qaBj5q#CAyD?0CrLebAqgix@8zK#B)I$-3kAO0@*=IAg7Jfa=j3bZPa9w4=
      z!g8NRS5Oo_*AwW2%^A1-Tg<1nu3Tw4<fN!9H;QXyCx;mFl^SiPEr=}8T5E5#6PGXa
      z7x}G737t;5is_8BO#R_-uqzO*igxu&bW1srxXd*gT}#_^It?nyWhYf{)`y$6QjKtM
      zy+--u5@@GJc{+51Mg=-_qeiFe&`lc6(4m_(nkhMfk#(#aB$(u$5Uxyyi4bDl(2Et*
      zQ!7TB6PDO}0$m|QNSlN|rt(uz<l+=P6}kO>v9G0chemhOT}W{qaEo}bA-Gu{t5|u7
      zllC)ZD<Sp-;@zdyp)P+U9_$K6-E<G#=cIcPcug|apJ{YIJpen4_v+zKVv*m_>WT8)
      zC-U4!f2Ywy^e~QWY^Y_Ls`EMOz{PGXJgCuk=}{~UbVAwl44WFg(l~1Lv=BI?(c|<4
      z0zWLKu6J`V7H<m1t3`tF7r(6d2aTSj!&niDt&aAtmn^V4irPZAtxIId_cVH1h`2&V
      zJs@tH&}f*BKrx%6p*U9C3)fZ`wb+rd@yA0M^ei29()XFp`hT4`=?5A;N6#Z3sbJQ+
      z#@`IV%+&=mt_uk}FN)iDi<A6NqaV>rh>Hk)tAYco#kA~&y7rlVtkF;8sS{7dh1~Qi
      z{nSaX!9Y`dj`l*0{)v7DA{%<69k^*h(pUaQ9mPGk2Z|3ABTcH>uto#o2Jy|ku)26}
      zJP;O(GoGz0+k{ZLwi><?f-MAl`r-p8m32(#jEbJP&-kGXHpJ8{KObmxJMERreyGt$
      z^b07nuQwKwd<%n5S*zU0s0U^3ziIR_{SvIhdLSUta9SlN){db_XHX*3X2=v2P^d(M
      zvHoye$oxv9&lMTS9A+g;a6W=kbO6>UrHnyVl|-0=zh~gc>i&*R@|?k=;JP;DI=|QG
      zHxdXlF{>(6rR7Y}Ph&2jfcjQff6>}%Vda12Mt?#jjJt>kQ#wE4HdZ8gFsj#))=fc_
      zmbPwGYKE2j4J#*9e!L#M$uqw$0EY-k&SJJ}^cVU{Ag4xO&=!F*H2QD)qnk5%f|F4p
      z>!rH7cU3eR7>H>+ktacV!7KU$VX*E5Jy3)nGEdg%4{~cqXQ&IFjKg6%#)1|nPi2~E
      zicLoRSGms={h6mp41dDO)04%5DMnTIhr*q~sEbi{YpNQYxx7Cdu9)fOT&lqj&(L@#
      z&jJ(DKt!O({FL>aOlPs|I8)-|HaF*h0B$iy<GJ(|3;;1r=|?7uH2N=bOS>wPK|K=O
      z40U4_0Hsr8AD*XCF_kzOnOu*;<{H|~rBvqRg-j*mS5b0sYgDcfb@Ku~2Q><pGZmgn
      zT9G)1bin7zrf=wRvIVE}V%RyK$8@gYt4bbv2WI3V^NeA9<|!dk2@7Quz;nhRGS(L4
      zrSG{I;bXF%d}bo-go8?JFnC@jz6XQ1bq3-Acrv^mQeLn7Md|n<WVT6Ca7%O5YupUV
      z3T}}WR6<-YN*@>UK{OEWMJ;q%$~Kgy{KkXDPHsdx8(&S*9wj%qxq&Yfk)z0+dn$TD
      zzQ?`e1AU0ulMs*53@VG(1FzIjdgAva!%w=$vv-7hW9TlJ+a&m(gZhrwYTPP4l><?x
      zDjZfC8ute1ZA1&}#4_4Z-y2F*aW>t1j~$1^8rEyv!EiERD1v*OSf?2p5I#3(T*vj9
      z+|3)El1Q>tBsf9p8o~ug*&<MvQ<9W-T=pe9*GimrbC`QI?h^tIJrq0Xn9L$##bs8)
      zt#VZ128HV9oGsjJ(Re_rEhl1R0}e*e!vEQN;5~soDe_cKfS69fE|Z*L8(d}Fn=CHE
      zTa9EVFh310IAvop?MIABk}5mJpy5YSKv~e#+m9MTx4Wq)rTKZHGz4BhI{#=*I1r0T
      z_Hw6NWjr&x1lUN50lCoRsWb~oQr@2Al0}*aK-0-dF3e^CwvZcmrU}=8PcY#Vflo5w
      z9^jKrcoy&}COjK>jtQR%{4^6j4S22zm-D8Z@QL6FjfLV3t%e%WUZ@exg&NUXs1c2Y
      z8qwxq%#t@77^l-&m`~ns4o;hE!rj0NO?VM-uL<|ze54l8A?a@MI|DOlmO*g=u;suk
      z7~S4sTIlr+QTbtD7CINd6P2W|A{$);>0V3Uz}!@QHC51JVA!X)gz<ysd3d%2b2ea=
      ziu!86qOFPE5n9^j8>Z^wVX94^;8xUjKtnqf^_lwW6!nR80r^2qcv(rSuv*SpG5Q>C
      zgbmoR>QL$y#ZOV)BXrsbT`0#kHF!%BbkPvC9i*uvw6@Kcb=fejQ?u(a>-9cOZ3*fa
      zqL2cMkI<$J%!LxvJ47+Bb(s1q3$h08r%5BUwau5HtB2{j=e%Bzh9^U`9gs^wI{<kU
      zGzchLLAwA=Q_yZe`3l;T7D59Ij_3wlU^m3P2R+6&p~PFD{M(?g+i4NqLDgvOTF|jv
      zO8aR&-Axg?m$uM-bUiANo9O|pIDp>==`ng(39?eT#-WrT4}s=vCCEdDAamg+x6rpB
      z@KTt|x9L_umr^6nbOEwRRXtkFmH@=;#tYLW#R>XOtH`lf$+5ydLi^eZ9No5dd-w?5
      zJxm8G98b}M_%A_^R5)`T33_ZF<>tzy%s38`mg~rMDmd5SaVO~S_Z|PjD+`}$s~n;o
      zUe8h`)~9KEfydR|K173F>kvVdPt)KK?G|K@z&W<|a>ry3J?pA)W-M|Yq^w-K5FVQ9
      z%BE)mi(FG(IgY`-cOU<?H`kt^l(wIukqnu5L07T099t)NEjdu*4|cjZ$5n9P_#eDk
      z15o|TUYk>X!H5hvb-U<YL4%@g1??6cD`=1C_+>1MCFqq_vu()@(u%)L`S)XpV}}rf
      zhJYoYj3ZF^GgL(*v<$6gJ;qi#3Z=h5-Si^$(+}|S;)hWDk7yUY48^?)(|8T$@Kdzj
      zuYt<Xu=;g+1ApJ4H_;NkL7&lE^jkWH0{w0JlHOqly~`eYkEhf7Jexk?V)~F5(MNn9
      z{X!YfR?<YtN#g<ZI=mfT2uREb@dA)UHTX85e+Fcu$)NKF%*c)vm3V{oFifzN7J`R|
      zVK(2UC+J_W&H-*80YAquw;wd#MyzuIp908*zZu~A-O+|e9iS@yJ!OQr4L<%}LrIA@
      z4^n==<Vj4M!__As@hQalnYxNs-)4kT5KwGOK$)W0wqUheT~BNt@1Sr^35$ntH92sF
      zXfZEAKW}wD>#7$7rvI<4#ny$B>G-vk1;sW6cwAfBf!KA#qY#IVOcUhs6q9mWqW{FP
      zzd_XdE#m3#@RI5G<U<E^E?R|JXi4I%&iIO?4iNMH9XruxW9Ab`&w^b=xTx-|===@F
      z?*iMxc$x5;Z!q3aV$Hj?xx|*|ab1nkp6Bt%=*aU-!ze2e9Y1SLTc*zCpTXt-;lwYI
      zi~fQ<^c8e<oV<|ULS_?}WhpMp=+}x%oUiz`VE0_buND0L2kxzlw-}=+!NO_vIb??I
      zims+VHRxKTC&r8@=6n^Lh%&+Tc6(m8v%5VlT%Cklk<b%WW{R~;2wMbbk&e|MR%sA(
      zd%bzX^g9IR(X=L+Xt`6g+$maUTMb%E4O*H`%h^5#wQLhLEk#XBQN!yUgIYb5D2X%E
      zo9Bg@gSD5_+EH1PbIHxq6+t~~ny;$c3brfKlHt*W8l)Qy(i05Q!s$uGPsdlT87AUl
      zc6!2}U>G7P^L2r=1t$APgZP~wE-w-0t2mt}LRbP#4d%5w+bi=Cqites1!9*1<l3yT
      z(f?`9wWaM~x}+{XlQMZWW%F5-%X8=qo=fw%P%%`dACO{bz9GI$nnQnviY=5)1+ZK3
      zj9i)q>pcdhEb_|2VDb^1AeCc<&$@6hn~rbu+4Rxl8VLC82J8XsFyLtefvTBcc*o!s
      zi)>SEH>S<Rs}kbbcqKfartsO|cmd78IFlEW4`VT!_Yy9naz00KulsdHiu($9(lPK=
      zLKD~m|FTdyxcwB6R8b$Z_>I{8eYlPIb-C9!%(f*k3U*W$SRNodKk4%p472M9yZ0f3
      z$rBIICwE#nUsa`5<@*r^A}Iq+%X3UY8IRD3?7_EPX&4W4VLh%W%Yet7pP6R+hd
      zUduU4@#;XYYEhEbXf8{&EL@^5!Wl;Whj$|2n(Lq|C(hohxUK{{d%Oug?EuXf;heS+
      z&TX5*dBa>F4-$NOg3lP{+0V&!9Obqg8?IL-JI^Y&dvojs$jshi!5rQk2i6pN+py1u
      z+F*~Eo1S(L`@A`}q&Twl_4;luJiODY&f3vedGPo>DVeAOj4y;tnjnv6=<8xC<2I_`
      zwfHc1DP6#qQ6pbYExeA}xt%t0fHrXl-dF|kv0($<z+JS9H_}bKiEiZ{CA&3{3htef
      z-Cjd>m}9Ss-wwJ(Nf944=`tln8?wHaeb{M7A(oGPD*197Y)c?Jq9xuhoh0KwVGUf4
      zb9_fVo`)#veVR*NrUvf_m$nV_{2?x}E;$Ih5sR_hPr89rj_?9hy<#`RTqa)0CAqc{
      zx~C0OixOPXnlzsS$A2sj)q1F+EWu0ai(jJ5;^*m}1TTHuchuQF2<eCR-c1ult5dj2
      zDG^?e>0Rwh@+-Z*qf!y=v?%XaSqYC~KCAC&f@@myeMj4u?6g?(Jzri6%f_R@PAT>B
      zrOp!?Qb(I=Ed8RhPGC#1u67#yi%ku7rX6)F5+-qsoV=MPqIJ*ZtLSvT8U}nV6uynl
      z<LmID@+xZMK`8hJd|%s5SMn{igTDnu-HKNKHhe?5oeuC`dWgS+&jxqUGkhl<<-6zw
      z-iLR5`{{MQo8IDkP)glPzvBDp3w{7^Js(UP1l+=iqnyLF%9-*|EJ^8OK?s<|%K=%@
      zNM-Q~IHQd=q7?fSE@`2==o((B*6qg!u~ljv%c~J1KvZJ2YUD<^p$+MbSEoa&o)-@)
      zK2B=jVDyp~8712j2CY(s6WJldJ!ui@WFA*!^bBn`uEX$}u{Q4-z4`E1n^BV`H!s8;
      zq%e@?Ylpqt5gtw8h>1W(@^pEVWw5@;U|k5P@_TgJ{65_2=vYMfB5pB=nD1XcT8uB6
      zHmC28H)vq}#O}A!;6+2syBPemCHRswJF2_ppWq*yyn<Z!s)=f{G+@3IktanJ#v?Ix
      z2^1}v;89V|e!9{JNr|)`piKZn07HBC(>jbXtK?Zs>VV7$lHki*y#TgLgM|_8)S!&J
      z#OE;X7PrH=2XWO0*MEs71Lcwg2cG9r#FN85dxC@Y2Wdv}Gu*}WJcp%|=E(DW1%@bw
      z1oz|FW~TkeKTKbF4N^1l8?f#-;d^hv_l_Zzyba%bhnDfXRLAd8Grx~7@E_p4<j)ag
      zKcoTvh_>>_bRGW^zW6EK%%9LV`7^p7_;>kpB{n^&KAQ9`d|2G78kXyj((2&T7PKu{
      zd^KM~R*#E%;PHA=J<CwgSayzfTk3GQl*h%}#@w=FlyTypAEdWj$J>ol=75NJrbE2a
      zF=`J_Fzva1>^+{*d$LS>cJR)z&T)-4+gZsyNF#%CF}{I!VU$7xF@$eKL~Ovg8<GlR
      Myb1UMjC&~SuZ%fp@c;k-
      
      literal 0
      HcmV?d00001
      
      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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
      AumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~Yg5}+5Iu`+WGf;hCYVQ>#H3A&A4G-p6_n646bPw-7AK~VwllJQZN$hjBg>g)
      zrvIlOo6NM3DKqWI&h$rhx>piHg^+%cb?@ChXV31@_22*e{s(|r{GecfaHH+?^>$-V
      zcl(ZKb%b8sHC@rHSoKQRYzkLFk}$ewJ~wsSblUo&ZT5P>5n*sw*!#jIOjXW>dE|!}
      z9DL7mEN_7@GhI2st9q{Gw2jzKjKNqf)CkGNZd0g8;DQDP8euXH5DzcZ6kH@|KD;A5
      z{pn^UjY|yCvTTt?mH-t)xFUf@33uZ_XDc~(NAipj#(kciX!Kpnd!frRtKGia;9_%_
      zkQ|eQxsW3)$9NV<jj|fT_4Gx4SS_nzdcr8wRJ?=h3a-6vIzd}C+(4e7wk)R^>=4><
      zQSt7?di)<{Q7I<^jGe;&PBa6;O${jwDtM1@J!<-zX}7v=M>M(nOFuTmzGrnE!f?fM
      z#CpF|7w!|YZVN)T(ruV_&2%lf4mXqDuGM?1qXPG_qZHe!J7&j6I^!rd+&(+m@d#rv
      z<?)6PQZ3tTGaIcE5`EVuTnu85r^Vinw=?XU91-D;hL7+u;YwS0)fYWabYkFyiRr>Q
      zyfXPyX^%7^BS+`w5pKPS>NE!HR->-=6x<`^PsIC3>s@cT+jp8#m^9RahR<+Ug@Ff>
      zdX_(mpm&Le%^kS>1|Ch;wkdkPr+L`tmv`JQNwlKjODqwF;@QklIzPSdS+>69^gF^e
      zrCAIGUlB%pSyoqH-H0h6tSDF~T=Gx-%$jI;U01~#zLwIyVQJHRbI6UVh9`K+!!?`D
      zQ?uNt?{S_{*pYEt8otFgAuVjtVbgHE(frO-$9{P(-FvzMIhx=CSmx`7jdAKOy)6?k
      z#nVsl4a|3u{CNB)dl_lo$?)nIeoyhQUMwF%J;Km-b~t;vbcm7p<j+vHXg*mimX46y
      zo=DOm#*?pc^*2nt;`9_o_~v;R1GvQiHyILqL8N#m$2(*A0Fx--8j2|K?`?j*&k+lL
      z5jvkv^NNZ2tmv1gb3~cZ<lYR&Cm27$?;j$`NTcDKEPggD{vn^pc(qu1jk&}jK6%Bf
      zpdQsfnPZW6eBN9T8S$ziFG-{F**s?^8Q1XJQfFq_w(;Vxm?|CM{#yAjXh$%%xiz2v
      zS$-MuWH}3rkzte}M#(XP)R_<RBffEb;p@y`7!R??j3k{KD!I>VsU#EfEuRn!atQDs
      zCL$AoW<pTHBdjvOv53dMh@ZFwSzNxz3Mx`Tie4UJZ9930jrE!G0XDa04p2Mcn)HXW
      v#Ls2^>so=vxTB1G6_0)XVt^O%=R^KM9*`W=07qZI4xTYH;XCFY!1w<G*gV*I
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TXPd-7=FGaZ4NFpEe8*6fC56gEu^C00V<Z1YA~FnR9n<`lWx=0WVf@~Wh`Df
      zD(H>lVZ3lgZyeMcM{(rPaU5=)@kcp6@9vVM8q7t%e7oQKJ<sz#@B425`uq3$0G`5H
      z91(?~isj`h<<*?yS#Gs%<}SHT)vBEGmX}Q@j+jDv)wpWpYKB$GoiDALWmlo6Y%^Lx
      z6}Z1@)I3umawX5$sngSwmy0tC`N<2D`NGVc!j`;kHC)4TXC*F5>a;?yv9@MfOA5o;
      z`H|xPNjR<$%iBw4LaxPJ$K!5*tjk8NVWyz4U4w=l3P-ZVme3%H<6WWqidD-z=haK5
      zGh>u$Ok<#EmyO!2;Z)^0d>M0Bsttu*U6qz>yGC2)C9!-L_9Vsc($IrmNn?+OVeD1N
      zm{!Ac%)GH?l&kLgf@d|>t@4UvTh(hO4U1(9BeQaKzlJyx^u4@7MtVQYlWqcsvuC=*
      zq@ZIgj!}iJEjx?0Rnc$=hZPd89hj@IL%>==q34uXv%ESroe@pbUHP8I(Kwz_=xaeu
      z*KETT!ehchh}KbyWjSD(7M7{5EXOes$B9kdJY{<<vCzCIG{opcvlP%w{j0-*QRvoT
      zDdcfF4qk4Xq96qg(|B1S?vKy;WrYLn4cvt9ASr5>R;5u}M`3gVuhM<XtJQ?}tcG(q
      z&snRPR>ftLM6)9WIk>3dHC$pTE2f)YF&uVwB3me2$+NQ<)o`87=uOL`L`vZe%*VmO
      zZtIV;hP$HS3f|=Py74Z@lXyb*HWuSp*qr@(!!_#~43rd-hT|CPWqWO1LGO@%;lD`|
      zm@50~RjXR}>JR3Gb6^p#_XJ<NEGKiFm9e5M6MIvLVpVpuIZ+NrOKRQ*A7&}w+p`^8
      zA$7_2oU%DxmG4A<5FdOe4@)WdNhL48Z}P{f<_Z~6u1_GzXN45^5j=t|+-v^2m2al_
      zF2dimKKL~f1ARZDXQ2Nsw%zihcXE}xz%e|^b!QNZ$M86xc#G(RJQu_vu7Ws6enHIW
      z`fX%li}$dbn|=BmpXOtWcaRyptheB|`jSsl-b;j<Y@^9EX)<^c2cVSD93-^-W<$CO
      z-j}44`tA*kbWlFq2AOO^CXvH9Ap}ai6Xg@37fF5J299)qDm?`1Sv(g)J>P_Spz7cT
      zUg!X2Jp}3`Z3t9NHlczFCH2t_oaz8|?IBRFpb$ds2%)aCG~(6x=%45vI8z+Gi{gY|
      zrXeZQXmrT06bp417yN<^Nxj;twTn#!e1I4}<nAMycb!df1N-qY4&xJF$)13tY4tc}
      zaG44;M$NLFBpv>{2{pYRYRU}?_x+p52AiIhp2ZEkeq!*Cp0jci9gFfOvw^qtu{+rJ
      zD`iATE&VOs{wcfsGtz&~Ci(&+_>ywIYLk;|%E_VZ_w*pPVTltGp%4ydDCemE%-PY?
      z>3gWOXi_`?zTwqxeOQebWW<6|5QqmEU1X%h_Urdh)uUn{lh~wrfCd8JalJ|1-*b+B
      z@Iiz5>Thc8$2-1Ofv<%M-wWp}C-7k*b*ZEfiACx3qE9#K8|Hh*a<(!FYWNe$e`fl>
      i@RM+hR{VxNxJ}dUv<Yc9&95OR@DS>hu3&ME!2Sn)0_=zY
      
      literal 0
      HcmV?d00001
      
      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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
      Vd_Pye;N4y4PNDS`VwT~{e*n>u2KE2|
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}%~I1)6#j0Sk`jWHp8`b?M8LKP1w>S;sGvx-Pz463x^M!$K%k_UrjFy<htQ=f
      zH!gHW>5QH60o?ftZhQzw@!TZ*SYTWv_vGC3_kHJ_eEaj|D}Z4vDv%hu*34pjZDk{F
      z=kvLOke+6jg&dzYa=gH81u{c$Lw~NvbGo?}PcLuq6`R4oD()G=Dd(<e8@YJOFgJO2
      zMlY-{a67?Jb<HphdxD`g^29ZBLM+&pVXh^T$><V;JeALK6+YBxP@pmRBGDxUrx;pJ
      z2&|$OHPv9K*WgE$f<^|-u{H8e)hZeg649C&LXo41qe~)0tA;SzD4(9qR@k{16Vb;E
      zb%cq}6}OhTwWu%WI734!zoO@sbjuLmo>I2g4I-mE^*=g^6-I`Q$M8X%7Hr)jZdsDb
      z;wF{F3}V=WK<JX@cF`vKxW1K`5;UD>Xx@W9SzKM^7SGOeJ<BZxQF7h8JLKqItB9aq
      zaCAX*$K|LZfuN}mgTg3I6(1P65fUQ*FkwCs@?w6Io5o9SsTjgV5oeU4=|~&`62KS(
      zgxM7hS24~|ZSohk6F|5`k2X=oHB2bD{?Bl_lcnK?XlxaKR@8Guwj^2;Iu;`(D)4RH
      z((SxOY){ccXK>%vgGw<9)R&%<+q;jI8Z4XomNO_0`-exKAz;|t%htRH%h{czr%#C4
      zoYim-_bF0==yO&gDbx=&%puL7F64{W3Kttn0A_W=92BY0MN8qM<t8r0X3$%vM?ruz
      z)g-+pt)I@3SP5#ZjM_{Ib)OMzACuo99Q%Y|84a2KkUUaC(+*l5y^>i-?s&WV^CNjl
      zI8E<15tsd@zrrunv0a4dClaA^Sn{Er?nm7W=)f8JqFm^7>JrjfbW;=|og>LdYubq(
      zlH4kLy(+(ZwWlkpETb<|MkLc;0^JPEl`)hVXfI)8oT_iyt3K@aYHzp{mUnPDGw$C(
      z;?3@l0|?zj2qeD?K~m5u1rU=|3`jMYpmR>r94IqH9gyCKlEzKka>z|%5>o`FlP2~y
      z?huq1dNGZ=1Z4pAm_d?22!B_CXr~8ngig_*fT(x}sShN()K&?-6m)WHuFZaK>N{yf
      U6D#~5ysz*N9ple1?^rGT1xzhVU;qFB
      
      literal 0
      HcmV?d00001
      
      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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
      F{{;lc5ySuh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OHUI~6#h<I=z}Sgr$~z;FZ&QGDv07EvC*VSu|@=hjhVKWGFWGt>C_N^20L7_
      zW5YrdDMl0bz7`r?xiCf&qcJh@2dL*xi$siZF*E0U_nh;c@0>f&emr^tU<4CxI0(IY
      zy&TVHm*SRT6iU*%k;_Ose$BWkbnT8X-Ea{COX_VkUQqRXJe^q*S&Kj>!zmlrjQCZd
      z=7c#x@RmeTHC4;tV@eR}&uF@4og=h`_XZ~-GXz({$O#{u@GJ15k>CtRX1w6q3hGcV
      ztri7tcnD1?O&6ETw=%-Kre+F)Pf|u!EzGE<CjA=dvKF-xp+EJ1ZQO5zR+`%F*cDDj
      z=6&cw$c-SObys#`kyT|aVJhgx0fM5HW*0R}l!|JWJ8^{*k$F~}<tNEg(8aQ4k5CGa
      zRF&J~o3czz&-3*A2_3uTtMG;L!h$e;=!4(K!VfFhhfe866hsl@X{yDd&~t<!^Ziw|
      znm*yf5aMnO6B_?qkAkBZ;a*K%mObdCtbJU;3G@;?mQn4(jj<i+yxC;>;&N6LEzQt5
      zCsSS^bpDH(;F~haW>#F%<a)f5s-_Ri9?-*boP6;d2*|av6_88iuSC6&avRv1;|Pf~
      zMYo_tW1DP*Hqm^aAqQId-2xXtPx(?lhnHUPjd_VS#(S!1Xh#QoT)?Iw+mb{Mws@E|
      zn(ORKBouvs=7-q73U6?QzZ*dbtf9`e;oRW!DrcjtO|Rgi*9g!Xo3Epq|C=v_gSJTE
      z5PEAYZ#hPanSPAExh)K&*3ljfRWNuL{#a<Gg7EA*2AHv_f+KTh9cw?gcOq6%zm8xn
      zXitP|Hdev0draa%3Tcei+8l$Q+kD5r%6l}>2ei^hbkR1t*^kmE4AEzd(ie==SDa@*
      mP2X^ZzT0x5a;%uH$?;$kCoyizXt9MkFo;OaBAl{EbNUy7ndV;r
      
      literal 0
      HcmV?d00001
      
      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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
      GasLBXW){5w
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-%lJ>6#nk+b{DqWLYI|7S=yyVVHagftv?Es{y?Z}Hnfoz3ys=gcLLMw&TMvO
      zkvCr;MiZkZzL@l(#3(WGK}`Wu64b;P<Ad?hM}sfE)jyz$-<_HLAwM*b?99FAp8K8e
      zeCM3ur@tR;0O-R@0eA$i%;=@$9c4~QDsNcHORrqNVQD$d(p0l^LNm4LoH}ge3x=-h
      zR$4Qy9mbTU78T1V2H+EDw1IMpK9jsUeMik$0r&-)ZEK0RNeNNDA#gy`v+BHnND0*E
      z<dL)YTeF(k*(Y#1y+3vX0{%fw*Q_Cdv)%i>oQh8f_=b(FS`X$DLJ$Xo@FE;S2u%Xs
      z?)Zc}c`Sr_)XCM+5CU@5inaib3H0udZU|Ad3j{M|g-wFrN>{2;QGOtZ6X*yaCJ^3v
      z8p27OqJo;~R?Mb4CD4%8bakwhpH_?46;_hB(?&+gO(;c8?p>o#$}N!Er(S!u0;|wG
      zx2<=~QKO`11p>2*Ii}8AEIJ7aje_g;Hqsq;60hl=fdG;Mv1<E_8RMnQ>_|?{vmHm~
      zGit%o3_XZmgb8NI{A}l141t4;d9A3<X-0`@))gwtdKud7ITn{)c&L0>?!=;+H|Ep;
      z`USeG&^L6mR45olOU+&_$o?mb3Y|I(3Uur?JTc9TY59D~lHvz(4nwlDF0km`HN3~I
      zqNdLb$Y%7KDwX=zsWVs3sgk9l!EvKh%&4Q9tnZQ90q&KA1wtuZSBt|r#WYnjfGYy6
      zd$y@SWH;ghE!)lIDMpNQ;N|ZCpOE9gC**(tjg4}IxC`<Z!XbJc=ITRw`uOfo^sJyE
      zv4$gw=n5j<p@eq@&C58^a~~~<`)EG1isK)_zu*;#Np5|&dE6eox3&2tZ+p<m=Se$W
      zmeFr9=Bvbi4UKpmEl|*fX(YIQoPIHzT|b_nRsQwc3_bKspqm&ngE&sP3>S$mvq^df
      zC6DvVIL3DaX+<4Qb-ux6gcm#_>e@G!wtj2-oL3xL$0-D0a93dRMSdVGw4sFK+&_i+
      z8cIo*l85#<$#6ty=^-T#*H6;wh_*pO9%4?5^fHoeR7uVu)KqJsN3^P#baGG0^2eSZ
      z&{}gyVIxx5NY5AR=$%}{>2E4o^xDN+VBAFt{1%SlZHoR5C0xWsyo(p`9>(xKZsG$>
      zv8+<)W`|`ZtK0lfbA~wxJYA9ZP5MZA<Bq((>>dIK7d%_hyIX(k5cVDcme^4rQ`Aq;
      zj!#+NCDQt=M%Z|TLKj0zVe2V>S=h4`VZU;Pof2tBmaN@`|1WW*>MkX|yY&mDZIH%@
      zj~KfNny@Efh3r?+fUnVk2mE%eQ=(N|#s)_5Ew14^yo~Q_#GI;Ra<d}lGkDf*j6R|X
      ziWwjYR<hcIe%t)B4HR-*Tp)qx_PCzie*M>7uRo6_H~JvelhK3gI5!y{Si|{h`y955
      zyvbSr9e!-qAO$N#F5;4lH0su2Z={Dr`jbcxYqTjN$!|=#(Jt=;^AR!sBIcw2#Pnd8
      XIeOUeBYcOsYGtin<dE`XiWKk<It2aR
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO>YuW6g?LxBM7C?f~BBRN?V``YTUIpX-H}&A#PeR*402?^qJ|5&OFe#?w@e!
      z%8d(6)Fztr2lz|;73zJ%M@&B!WHK}F-Z}5wd(OM_>(7r<0C&+a5F#|5JN@QMYhX34
      zH>$bwWdE^}wp3F1m5%gf*A^}J=#}dTN42G|3`7W}0N-a|bEoSo&+4f?@w(3tY1tY@
      zi1)_3d_wkFds1P-wn>O?Nk^(}!eaG8M6E-JwA@1xM;KQVFpwaGtF=xHgxLgU5GADA
      z(h-mPM_u9VTih-o({_87-LX8W<54oAUPx}`PJ24N+$Hr037b`!N_duXJwl;s)`pS-
      z6SU;<$4vv*2oI;La?a{8TO2v$weTgv{pz&6o7%t`=^To;EW>0oeff?JVhhbUN+=sx
      zX1mUxO#&;Z5Mt6F%|Ni{fRG-XnF+R(Bp>&l+xL26S8D&$|4&gvv$KJw;|Q;1TfQ%R
      z0~>_=r4|tuE*d=^le6iuO{|4G<f$gUc`Ep+BLi1B6XVq`LVN-7`U&3~-;n&mQ3xr1
      z&T1?rd9YK6(H!PDmm8vyMusEahk0gYtyn;I#JP>g5cLzer}e@K7C$p`$f>cQ{3Tok
      z6a%j7xG~}y@IKvfCA<}W@DbViS0sz~zT@V5M30G%LsZnM(+_`t7d}m@ENP{*!oP6^
      z2CZVA){x_Mnbw2Kr6K1?MF?fA29+aRca2xtll6eDiW<K&924re#lGcubsP8x39t7s
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`$%We}v5Uhzee&OKY#TY`sc6i7!0*fO`2*kl4A{!1yPI6<so~$RVXOVXnd_kP}
      z0Hj>V4{+iTDG&)HxbrRf214&(#c<%#-7_`aT~+h**Vpd=ZsS@4Qw(#i3Tr$36|eEv
      zx>lFE#e)}(krqlPU@^=Z%;U<fJ?-uYM>E)-;DK&SSIKSZaHXk>fz=t3U8y%@Pxl$(
      z%Th_b!Vs%0b{MQRzbDd&A(KH8DTZuQD)A&7bj9!)?|OnE*Yq9kb@)(5=kcYb`!Zmd
      zZ~mX=5<?;ohBxi0tS@#_U^tt>G~!WpE`tQ(37ltGn234odBWx1>d*}bq_r_}#7ixG
      zmBbuFVL&F724SE}T~Ts;rKJk}Fi4|-`AEPehJ2+tnby`rsoW)_H0mWg))`VkUv7_y
      z#kC(fYy2Q6-S)$wBOXel{2$wIMPuoI=qdfv6lD@Z70EO?Mip5|F-^BM%8c@K^$@4_
      zO~VYuxVgN6(^O~vJU|w+bYeJz9L1>l3oIHAY*u5RVMiffOzrN$+Ar2WB3IoyfNed0
      zPgvP{Q!l6ArglFZAB~Z`LGmZa-tkeHaLjx|VJmmx5Ep+;_*^H#z%p&SOPg1S!#&uz
      zkDFM<Bdno?2iQQv@GTkPn`6Gj4wq3R#x~(4sv-l*SQu-#V=Mx)R`me+k=3JQkKTQv
      UbyJvF(fZ4Z?1>du%&V)v0lgNTP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTW=dh6#mAyjW=uO(m1JGN&>Xhc9NQwVyIIZh}#5%(}c97g>uOzUXl%tU3oW6
      zKs;4N2!s$45+V{8RRRhWArOsQ3Ka2#6bXqZc;SWo5Xv{Z#!lQK%EQh%bLO1yTxWLe
      zudCMp>_tI=M<6*{TujdEXY{1LWG9DAd&#tnlVcN^(!%MIW!lEh5u<37^+Kjpw2ft3
      zflr{-F(~N8+2q*tyfH&*Kp<L!sTo&|1VUDMCQ~Yu%A=*cQ4rXkt0|ic`mB+x9}ZAE
      zZ`pN$K+|%m?Cj~fZs<s;9XMzfP5Y2QHda5p0ri%ST*&yOfG@*9Rd~^=K|`B>Hx{1^
      zLSTyq1x=ERXb8Gomj)Hh0xdbSXdGQ!m^RAC_345k(4H&J=!HqWY|4FA=(FccOJHyA
      zf7YJ4Dl<-Bh&+BnvJ<*x8|8t<ME^y6qHNkSrs{EgQbjlJP|(A~8hYcZXt)!12?S>i
      zd#JQn%rk?|SiJ6Sf^)!$C>R4Oc1fhW1$HzbZFZ_6hJ=E+K)9yobU;Hd`q)^yniv^!
      zYM%{a5AIQrWKC<zHJ2Lad7prP$;{hx0wSwoKT-<r`v=;Y)luD^({Mi?AmV~qq<$=$
      zjXTI`4FeJ(FlU&vbGCH$poT+IB$nmwAq@{ZyBB4hG8zu!2pi4_59_vmq+l!<MVlpw
      z5z?*6hU+m<Ez?GkiV<WLJhJiLG!Ct-!=vm+wbdKV<4kb`IT^>O!0y<sI^Bga4dZy6
      zv0II?cilX8-UctPuRvG5*>0rO*<m4hVY4h~fOKrp7U*tN-Q0OO$%K^s6X>Yx)*4EM
      zpo8hEs4lL%@hqQaSC;s()d9kco6GX1Ib*T0Ms7ULslR;Mp&pC2p1fSjT$H?N@tNaw
      zQje7u%QMEXDR1r8o4kX2B)ou@E%G_c6m-inECurdJ^yu!IfI+uQ1tNi@bdF>g?vu9
      zLOv!A<x@f`&ozX&hPf-i10QKe;xbwiy{l+X^sRE&zlzSUDfeJ2*G?h=?^5$UqP<Vc
      z53mIvB1&n(wZ}GW=Z;8@U*T}lv&Z42Z|V6q>~KAMwjqFao~`#*aC_R<Cs%)e1v}G$
      z#3giAusfwheV5Q54RE=Fd!v4rrkbSqfD|97iX}}2MOqc<W|7vssn7+y;!TAwV6it6
      zmg)zmA|Xi!r=n^FLus{-asoPXQp%g9yqUh+rOI%sg=~kE4yRfpEfM8xr1fm7t)F)E
      z?AVbGPD!muTU4vyu?mi!3yVlN(scg%>*qou5{d-RUw^4y$9Yx>_=uT*%pQEg{6A&Y
      zKI3!sIr>TW;UWg{1@GQPWbq{?@C{C470==_&fp4O#kY8k^i5pF3ce%K_tg3UKjIqJ
      zNPnU3@3i?7KRLarxD~GTW}S$~SbtU>$H~dwtm6qxvNr+zffMxRV`RVKNpgN#|B9!`
      z1sLVeIK}uBeqZ5fu1$<^1<#NRB8PVv<8%C3jp1!fk!z->x1f{Li2sIs<2ZAt@UndS
      zI6o`ck7;r(%pr~$a;?my8+meVjL>jaIibD$WW=Ig#(*POb5hjY!)l5iJWo{*W-&*q
      L@=U<Q3sC<CD-RDG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+iw(Q6#t#>Wp-z0y9+YVrIeP7())_&iWE^<ZmTV=1$*J5Ot-^!$ac2bokB4r
      z8p40TA7C&hO$;w2rW!ORCMG5(KIw}uHqj>^ykDb<`1@uGOIrv$%=eu+=R3deobx;1
      z`TW0|9|PEla~c{1T_txmd(Jv<WvvTdcE96YaBBA0;BdY&JyWSUp1r-`dijd$*>j$T
      zups+Dhr_mOSFQ4rlOVd+aUE};ptrsM&P~p=RkE}BO1V-Us7%`BzPia*_H~R1!g-o>
      zgb+6nfi5UK9Ku6^r}`b&J~}%+VONh^6J=Ylw!c!e$|F|QQU6QIus7w@1U>x^%)4Hw
      zK7n4mlbWEpp4_U?1hKhF)z4Xwt{)7lAkd0F6AW)?Rr14D&9kd_l`cTPk9xG~cq*|a
      zbH|8|^=Q(tL13=nB{*UrgN=-!WP1aSJ0=LVcNCP<CIc;ZS;lp=Dxfw&%L<_7cdB!n
      z6u>qE+Z8~J(4)?zH>Kk-v}@QQX!H@vmRrgWSl*O@4s`P7X~z{r+6x60K`XW?lpX`U
      z3MEdIBeqkT@|3A34#7?XParKw)~ZFnl75pZ%aaDyV6BcEc58V0_I;}P{c{GMQIJtW
      z4j<mHqYuw&*el4aNURQOU>}|nr08+L@~nepd)jtAw#<(9LO`dV%;3a1yXf_GtX8R1
      zUQj6e1)a>W@UU*JIAGu)4)OBZ%F8qN1LCs^u_%HK^<G=nHZ1dG%`33nQSO7Yo}hK*
      z(dD$V-5V^nhZHDGPzckJTZ1*O6kL>oTjYY`n!r;&TS4m&IdgWIUB;l)i=@X%;%M{;
      ze&r&O=L89-c5HTLrc(9nNx|@{$53Zv)q}XFY1nor?W*IJjyR;Nuj7Ow`&9$4DgG6k
      z$E%iGJIm>CafVSP8BiUExlAcHHb%WRD-Z>Sw+uo*R++69?L&?lHcj`KwY{pz=vHt!
      zLGxv+R<mmwSg^JS4Id7i`uIT``#i)U53Y<9QLY;QUPRc}$2z;Zy5C3a26YWcaMig3
      z-}2OVFetSJ=a57r|9}`$NE1a#d_Fuacm(SL+=ey0VGV7IT?;UCVXn<Nty{?vuFbhv
      z&jL2*qFlG+;<Rq1cIyXtl!`8HIi0$0>be76R_PL^9=?XSnFzm)@C{S{NZ*t6*T&BG
      z@HoF+3wSD%T)>{uOfuA)GeWu4JjS}ru$eNoGxS!*=SREE2o*73(Wn%mTzVesGmU2Y
      zRBt9}rh84}^5wxRX))8Le(l!xJ!X^+@!JmhD=FcB;@YkGdbwOQGu<DU_Kz&rPb|pK
      zXu>bpj9)p}enS?&V;A?`_yc+TiNoCc@fXJMH^%V~d+cAZ2XI~lmn4MC62Vo8;vI?M
      zU5Vo+_fI8(uW0*5l0GHZgA(7NWRa*xd`cEkpri;~B*ib0x+uQpeFLO>Exy1}N)g8P
      z2?i-eiS{LiC~1uOGrUYG#;8BUFr_$Sp2smtIuWkoIHd$Gp@>%~sn_u)Mli}KY`o5V
      zM%f^5P&-a*ik>YvK`Bj~lQ<Q$2Rz0WW^_%R3pl;6g=C+83z5+EmZ-mluhSN^;YLOW
      zX+cCbBPp#&$rh}WtynMH{Tg%zIBK@jhln_{)Rs-KFhP_E+p@?ALX;<cTpMS(>x@NE
      Hf&=}3Stl{q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_b-EI;=6#fp-ZrM_()E{d7p%oQa%EoJq7m`#-&?eLn>)iqqI%L@;yMyhG#@FyI
      zYNDyJi4WjI8P6`r)@n*GyqKLmGw1s`b7p@0{PrEdBbXXugnZu_n*-~uWm<>Id@9wU
      z^u_DlR^1(rTwf}oAwgITGi=N0o4cKX=qe41gzOAA%O)%xxnAA1U5`=CGYPy>BP>3a
      zj#N(wYsK@Mr8Xf^cY8ud94jd#ktW28rFIfbm4b#PLZ&Gl@p3%u2=A5Eu?3rGx?Rg|
      zTb>N!>0&}1NT0CPoL3!NTIqViQljoUN*pPIea4v_T76-L<-A~Lb}ce}!B$H+J>f~G
      z|6DrCuazRu?3|`*H61zJ)UZx4=2<N?95scduz_2IW$EvYM<dr$qDN@`ci(RUcXxtL
      z+$B^mM<1S5t<=`ANigTu^h`Lyv+QYII`X&|=oJW!%jsRvhTm4W#lF{#nn>7)I`S8u
      zvwJ=tG~d^-<%ETUppAs}2z9Q*1bxpPdtI?3gDaW)$1|!1Pl1qXI9zbuwtQbOW%|$h
      znI~#8Hu>Jic`Wcq1lOORZH)hu(D}Q}(GJHkp7rtxQf1={GM~bnEBs9}78o$nX2cL#
      zj;>F#v4*Q0F)m~!X1m6F6Hdi?3EnFhmF=&%@e!-1$n6{D&&ZtM_VFq5`$lCFZ5?x7
      z43XM9R(j7&A40YAglDE!z<oSm73Ri6{tKKJP(+EH#!wEq3{-f|a-8SPZFZRBxeEOk
      DAhtix
      
      literal 0
      HcmV?d00001
      
      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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
      Do)unn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXPge6#hEdFtP-L0TK|o3T6X=RRSsm(U1hPm<wjt#0Xv{vz^W0WM*roH-R7E
      z6JE-)EX%Si%O_ua&=;|^ygd8v5Acsze%-TkSt?LG%yiG`?|kR<H>Xek{ok*D0C)lK
      zTIdou*zjBB+xCWCwl`II!n32OX{)tb5O^QB%0fY4SGwG`3T(UN`mVYx&|Ml{6evst
      zby-9=w)dh3+XVV%Twl($)>mX$vsXMR&_5G6wzp`9uKsQt3u?`c1P;$UGKn#P0}ZJR
      z!L`tCuDMP$<!`uQ;IB(x2^=X6&!jnSfgr&i5~Q2E8u;pll%c?MDR%U1zfrEL(DfT*
      zv8AP4uRLov$A&wTYtk>1DPdv+ixKpvz}d$kP4m@0V;1%b?Ch{v7^IHIWU@2aTiBoc
      zk6g+Y4kX@5+C>cDU@s2gu)qK_o0N`chq68q_>l@*jtaQ@(bCP__Duk8HwzicRZlvs
      zip+_b9u*i#|5qfPR_Lm`W!q71;FqgXjXREvBA0)8+}MgZf@gJI92XeMOOw!N4)ZIw
      z8E<TOv54nTvM?lY$fT2oiLp#bg@NbEuouHPDbQOFZiMcJ>&b?!3!H0*N!_x=IH!(n
      zwxe1Y>CiSd7jXv9TPX9SJW`lmo~W||JAAoWp~SZDu;_<61WtCBQ#cKMPGDcgKORLg
      z)Ot>ZVGtHEiWjwjFA40;3z!ftTDZVdkoi|AO~dwLv8L`gvZ=`|uuKnUsJWopa@J<0
      zS_|qq&?}u(W;4pQO*$FXs{*Gos^nKz{0$y+4XxQB%Pys5kMQkv(+4uI_JI@Vv6Twh
      z2>Kp4djeuLwd($44ht=-EPz~9>K2mGCduRg+_+%yV>#5;8WDIj2ij61VmgSnREVI{
      zIie(|hYCb|(FvukWZXoCN|o5%4ayb2*-{is+UrT-=ET?$yDbDO0h>=!`Wle5!b!Q|
      zIx_ESx|s3MeNe|v|5Rk5$~rT0YLfA#TDrzQ8V8$VXRp^~eaZFf!KT1esk2LVt}}Al
      zFf^r!-U(@^u{)FvH&QaJtlJG)nXfkW{ctQU`a5M;TPaA?bjy{>{DJ|8ciAv_6VWxP
      zgNGvp23eM~K`UxsPxGr+T1v6OnY*k)C8|LybmUd`63UR?8SSg@jMk-a6h!k91-5g>
      z8;@^`UuBMhW6#O^c;Y8cx=`d>F9Yvk2j9Ihfa6Z+%k@e0nQ<4M;wtY+?B<(fVv@u?
      zwE1GLe^1Zv7+CJ^-&b8O^gmtw8P8lS{DvdT`wRDR>=&F^+Fu~z)N=PJ0!Fxg`Y-I6
      z`yQhjHfmt!|9qVJ=^s&G))#OIFPm{17tL6sMcd!UWsZ7RSFnrk5BYVEJ|8jjdl<wg
      z?DikyI6fu*Gh#o-G`_%fe2E&q!XmyV!#7yLxA5?tQREgy<St`H%<MIc8<l*<m>_=_
      zv6Gmh<bybYtGLE^mzl#fDx6(6v+JBKn%V1|t(e&i3RHL&b4KBL+#u^4j8NdXz?B-_
      z<d>k|65sj<p6Ao0Z4dsue@v<a@nV{)z*|_RtH9g1*`^pV-=yjK!H{JI@NcdFy4oB9
      Jw+!l?{{aTLo2LK(
      
      literal 0
      HcmV?d00001
      
      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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
      SUvZ^+#jE6{3hI(nm;VF0{Tsgk
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_T}uK%6g{)9ZrYk@YUO7|54Ax{&xR0E5J;AaJ&!uLE4nMXYW<3SOAiwC&=2UP
      ze-zzWMS2Jtn7QZPIdkWn`}zI;0pJ1$8We`3o-;N3e8x>a_sohr9J!8gyt<fJd?c=C
      zgf*xP@iph_vFVo?*c0tr+RqHZx!v_FhL9!fp5+m^v>n?kGh|Py>$mIvrCVC3Ee5sX
      zc0~jMZ0U#~#*kjo2i)nIwRT^0yb>|PAPqW#2uZY~LtCPhj*TVS)e%OBAy%~=aW@^d
      z#kk4a1Hq7}x*a}f@v$xQRZ;aUd%|#B{eJ)@ve;or{^f%q(r~Baj<~VqSDCfL-xEBS
      z1Hd5(576jUisXY3lP>&79{flS{77xFN%uNsFZ4=Qi^f@8`+7sv$StsK<QGU7DRqIQ
      zkqR!5ekF>6JvuW!y+(t%M-&f8picD$3TR@V?#s(|#LH4fjgdp1K9fiaQ+y<)Nx4Ni
      QU=l5nloupsfieZf9}^gIvH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TUQfT6#fnuCy67{VCCY4XsIR<4K4JdL0gQWN+Y09D81>BIfl_;hBcX}boKJw
      z_rCNO^r;W7)k0g>sy=mf^+$E}J14^=VX=H5b1wVr{q1jmd-LyqfBpsFE!;QIC2*qV
      zH3|={$5z355*Esv>(aKRz3O<j|HMF#Kwo@08(5oC;LwKU*)A7ij+<%6bHZx^-PzoV
      zKu^iHWeVLmY{Eby34tRfdT~hLXvOj5e1idkWouo%Pgne^<*rzPqxR8ZPq^XK1x{67
      zfvd<s**O(2Y1#I?A36`VQw;UGiQ^a)NY!Mx?ECH`ClolA%~j$QqSK;*VaDhPQF5(%
      zeai|rA{zrI2r+(H@;A49PkLbjrx<=q${>YNoH3ALZraSXyjnrKF>w}e2=o)j4Ow-q
      zK-#m8bZvo)*(MlmyA%eFS1U&N^id!mxUw1+v^inEDKH+xtjlU6aKi0^RSg~AD=f)y
      zrdpNtx<meE^jQjHIIp<R3Y>3`wdc6?U}60sBNcNiDdaJ3;DW$uoktv|X<PEWFz{Vh
      z1|}}zl7MOZi-Gglab-<1rKu=P{H%4^#MF^s6g7n*Oqf*R+pJJEkX9%=wI@){zET6Z
      z&RbQGeezx8Q89%nyldbcfx%Xh_Q=pIn|KfJQ^0jewRCV6VQs5e%$b2J0z)m2GxfR*
      zR8h)7;8PiwF|Dd_m7;8~Li}F!$Ok3{kT5VKkZF0kMW$<(+vL9dv?{lhTLY!N@@SpR
      z`%8`LhQ=S;2y}&y1V%fF*{^FhPg0Q;339kCyAE1tC)lKC+wKpBM#D^-(Lu;mOwxN(
      z4-Nyj1x8v4-)(rIvnk^=5?El^PBmnldd6}o6MH)&qZyS#1$Pw5clVLJ*H#p^z_N)?
      zz)4}S7nLB$Py0a7vWa_JE5^X50%LL0sj;Z7IuR+;!&t><CO$`6pjX3Uo{ZDXQ_n<>
      z$kdYG2&!_H{UR{X>E)850cVJ_n=_dORI`$+UamPm`J3c!nzw@ARDPF#$=_f;<E{&R
      z{O!{(OX$H3+Lm#YXJ*qH{dkQ#<tZI`nx(ah)buoZfTsm|TBN5t+S74Hp>^a*trR{g
      zLn$}%`43+xpV#v{IQ9}lmGnsZ<PJ{XevYxV@m-wz9l6!<`~_YYb};!f26=N?-4tK6
      zR!r^MGe%3`9CG+je<yK0$}-Q$z#32Q5zBp?ghi_=2baVoYV2_bSK(p?n;Q2NaS~C4
      zJAo@?r%b&47{)9<qSrigyop;}P3hGfR{|f$Og)XVn#lhOGx_6BIPx5owe<Wh7GLBQ
      zaZG3FZw#o<OROrZKd{z~R%J$XCAaDQYqIqX2i~{*hw&W>_`Z$XiJ04onA<P#WyEbk
      dqoN*^|6iC=v*@Y>zz=Q3?v30Ce5I}K{SWL^=~(~(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-%ry}9L3M=x^<hw75sr#j58(%)Hsa^QBj70p_BbkXC^)<-ffprGTNkc)2D@h
      zL;nL4-bpY~p8cbYr+1Cu1266Q^nUNX=bZljbNCa$eO$F*2sk}&P~4V7S(Kl{VtJ^%
      zu;zE&O;-gLOaWW3^`+M<Hrm^&6AGjo)s>Cfv*wzBs0d6f``&ISy|5+w1C`*}CC=2#
      z@AM40bR>{^;(BhlD3F+)YYCXkeph9YKt6{v$XS>am_EL#;)N>kWWO8)evpNYyg<I{
      zda6FyX{+F^Z1<JGRMqdueoF>!#PLTn+;VpXW~!&>TA&^EB~)IQMrJE>%#hge38_F0
      zRltPVrauTeYSq=({8!4|$R)0WdzjR~Wh9XzS(?)1%n6Pn8c{+{OmN~cN${P!b%3)!
      zV81`W)GxjB9G_XP0`oBO5a*+*@hmRjA}NDuT#C;*jL%tj?9%8PlFq(kj=m!8*h_m0
      zPLeX?Ok$7P8fyV+J3R(NgFOaQLtzXB4M(GW-e(~4w1_;PE6i7>gH_UVdV2u}6%_Ci
      zH?f90sNw-?c!WBZ(BRZ7(rYyF=0uKlc9YUMoPRmK$2l4_P6w7_(k6{-os6`A)>fpA
      zNHb$Pf<g?12+SC40vkEDKd)>5K>Hv08#Wl}6Kj;XhBj`XgWKrh9uy1T#8dPba*Ltd
      O6Sf<%ZGkJgl$pQJFq1U^
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0-*XdH6#j1WW7Bj=OCdI)gi;IA2BCsbY@rG?wia8c1q-$y-E6kWmLyv?TiT)s
      zN(Fzl;txid(Fc6tRcA=;IF1iK_~48W{ssOCJo(D_-A$T8aWpgcp6{M}?m73|^PQdi
      z{_v+?0PMjv1yusg>HKv2q;^Sb*JhmdK3hwfM&23H%)HZM<sD<zQQ#G*b4{{ZKHYvI
      zIcezB`US$3gO45%sG8j)AbJVr2&!~WbpsXK9xH3v2c^|sX(1<_lV6|Hv!>32qg-T-
      zeA>xyk>KKxnKzvm1zKBsd)NATQZw2%BH-<@QbrISG^p5sh=8ZHZKN6kn^Y(WNVHi+
      zbqQ@z5k!sDZB?O`bWf{TS3=uVgi5>5sHjC<5Uq$SXnQpOv|;7ihb+F@-h_&scvc{g
      zG7FBD*9`%sHNjt7LPprFVm;~wY6r}`aeO+LH0)DaGE1xa0ZZ4iBbsf>by?|kGG;-b
      zW#E77#1~zcHdr;j?jV!T3dCC5R-envX=$T<b^Blt9e6>(0fA_xHfxPkbYfr0@o?YK
      zlrf=AXB~lR1{&51j$z9n{ro)<sI<)>0^KT}$37YEB^8HpL|}_<8=7PESh*?9F`4aY
      z+jL~sD^6SJ^a+=b8_{(SURFSYgjU%(s5u!Gz33wa3KwnO)!WLK_a7$b<xd`ZRmFfb
      z@J(bb%a)qsDo#j^M@tsu`ZX29ILUR+%+rqLYfDJ|>ncV{dTlm{GZ<Cy#!7hEKkn<Q
      z7{ghzR=$yua+%jJjo(ypUTy@q(PtY*UMe*eNvTw*Jer**WzQg`!dNjplAX$EL8M_S
      zU^~RtRO<03Q89@NtWLpjhRj(bOX5_!)fwxTJt1Z}`Z?w}W;p1uO3w*2{s&8#h+VF9
      z(^|8~qmzK%l;&u3I>soTsT8|fkRd`g^)%nnX0a_=CAEU=3O2};B~kFCHEruguPNIg
      z`fneh-7;@9lT02C9|EYCZOnq!%O-XuTiBIsU{|tzUCHKkC0o~(Y(Gjb{cONS&S9?p
      zEPLsW|A?pJEk#7*+lpw6?<yh|Z}1k;6mReq(HxKZi)e|5l_IvsTNbu0G<X*pd<)Ci
      zQN*qv=%@<qoa5vfaF#*N)A2aJ9~y%t5rvK>q_CX@-iZkuVqu@7<*<9zZhn>bas_m|
      z$q5(9^r~DW6ZE)9rs#E%Ow#8fnWo=GGEs$zvFXa`?WUC8yvx}CJ!R>ZephF^H&9Fa
      z<r@fe;UG19nyPOZVLc$O#FucW%NO;<!rmpk*yX3pD4CywT}u2u-|Ie_CMsZ(sF9;t
      zs!CuoxzHK#bOi5-t)7mWdt!a4Q;h^dU){m}#&FH}4S7~tH@RSPb2#Yg8l|q8qj7>B
      zB7tQbwRljaW|!3&qS$^1u}CNqs?|5*6>AyCC@!RzG1wWphuTnWB(#j7Wt{2^g@dsS
      zLn)b#x~LMa<Js5}PT!13FD*o6Me61Seer~}@Q#;M=PEYm%8FGRU)g57VzZ)Hwego#
      zdc{UB`O!-@^EDz|6TAEH!F*7JgJJL8hkr%=9uHqQsw`n5>R&C|Wo%&qud>wFSmt-J
      z3GX3+>o|sa4B>s8#0`w%CRZQeL&{G$-^NGy1|MSy3-}d__yeEf0dC=Md?xB~OKiaB
      zB8o3W2ju~LDY|i6j8cwaUZikc<ngt*j5{t-7D;B3VTGzhS>z;ni1I|FDv?D*suE2R
      zdHH8y1{YzIs&yiV0vz6dlh84ZOQdQ-bYg~G8Q?c~2WEL9h(XbSIiebVZv(i@U6pzK
      qhPQ}9%wQ33bGMF>uOL#QDqD&n<yh^+634%LgyW*Z@ps%#xcUzSZs8dK
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh4mRyi)zF#Ii*F#PSk-pZxNGqRjlF%#upivedj1b_Nzk
      z1_7{iPGVlVzJF3yYH|r916Oc<X;E^jTV_rwBZDZqE<KP2Hbw?U24<j5Ai&7L3M82r
      F*Z_g^A)x>O
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95IyT_YfMT@DR&68wCP0{BtSwbJTxLzqyQ4Bs+K%$%#ylFyw!G76ut_c
      zs1V`<_$b799fBHJ0v<d&Gdpw6nOXVA&#&JBJVeEZ#c;Qq4x&ST!Xy4cN3rZl71a{4
      zH~d(W>4{KUC?5{P1yj@GX*YV^ITW$>;V~>1b!Ql@BOZ$}0)w}iq=|mcU{_Xm8JwDY
      zCj!_w7sAIB!%Q<t#j8QTBh(J>^aR6PQ^vfv%T<!aqokt`l4FLYW)bgM)m4TmEo+Sz
      zd;4#RztXO+w(9{d;*yW~GxM~D$6EA5EZ{Q3G*^lbV|g@WSgSNAr>-^%QjKgRD@n<;
      z>olSqXoldulKtQGu9k1Mw*uTk*~e{$a)JJq>UPE(3vmatGy#b>tqgvKHv(A-anD>+
      ztfd(+Xvu+!MLo%OH$U-$_p>nwk+jk0((}7?(&EWZQxwt3vh3Oy1fR*V5R&yw@&V41
      zALa!pVTK~wA7;sB%{v5U(^>Mqc`w)P4cj}#+{P!$<R~R``v?vm6Uq~VR?a&{Xw-`<
      zxJq~q0$d}{BLDh-GE}L1lNg@;GsBHB!&Bn3NU^(qikp9==L^^}fD3uSSh72kOutYe
      Q%;F@>_FrI@&Bj)K0fV8UtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XdH7(F*hv(36dErnwFl@fs_RnkULq5Lpi8wkX<V`yvXjIxQ_u&~)1mrY?t
      zeb7;7e9>{n@yCPDJ~*Q=1C$X*XMBJeM*k(pb2lN)U|@LY{qFsGzjMxh=ev3E?{9wq
      zn8dt>h`_;`*UVnB)~u{`HON+_EB&nLHiLOzt~#!5N^i~f1KZaS6Br0Dx|UbV&Q&hi
      z)j&gB;6N`31ypWW)eQuJzCg~KWr6*r$5oW1yu8pjXH{H#N<drnWj(A&c;-dR^KAEu
      zfG7&Yk2#(boDkSMR(eEy(KO#}i=Rp_3dBtLo~<K_0Rsk}6^M?d7j<mKHVs1pBabgP
      zupPtv=$akOHtVLWH>78K0VNQkn1H}@26Q~5VW&XqDLyHh&rMJ07{MMTWv@W;iRz2#
      zMMW}dKtq3YI+veN$L9?scqG)M%1x?WPVI6UG6MTHEGoLLU9;T0Uu)K>d*)izZUm0>
      z`tgFm(5y_FrG;}>l8%>bw9FpWk;WmVEi16Ctu1uB9Qck`V?Q-a3T)lr=zt1rDLJ0a
      zMpbM-G*Do$B&(LYX!(vZw4ICv7ag`R-E#(d44#^UwmyMfPjXwJKagf|=I!P4oRG1V
      zLVBg3x;<s!7>+RIa=Mxgfr#UASt*1Q`PQjvoo&q<cnwE%n3&P<2CeDgXW6e+IuF7?
      zL4o#@Esz8e(ABs;<PT>z#5Qrpz}fIF&w*rtB7D=pDV5aAvgudt0v{U(s@Kyyq}q*9
      z)<pT&$2FoRf{!?&Mj?zGL&iS--@qoWn*s3y&k<(-$*f~bX8bk=Z(&E~E=HEe2Y0Pw
      z_bnuULSiW+xM`>Nh3VA8bSiTb$@|b5Quh$M(Z036ckzLzDn8h|c&umfkYc`%O?Q!A
      z9volCi+|ogoS!&?-Izd%zhW;l7O{l$j2GbHea6r64ZdUi5kKP>#t3q3gNL15UqOsU
      z8#qaXJoeD<6iyT63=X4&qnP7qo`?%XT*3;LiTVyvFTh6yS7GBbtdij}8S3~Rk}LsP
      z*6=H?;U+%7U-%Gz<0HI8w(Ttgh<}(TT0#C-X^&9D*0PCgk?@xK*5o}HD$uN>*W<s(
      zud}A5elu+cKBn=XU;v+Xp$~P?hj1JxLiCdz^y6*xgc^X??_hcZGR~{O7hO<^4pgE8
      z#UX7AEw`bDTjQXFrb40I?D)UdFRAq_YW=#4V7Nmt+#xvKA?VV22gTbcJ*xHFE~s8w
      JXTx^Q{RiUtd;S0b
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvWJqp4=6olu+{247QJ%MQB;uQ==tOV1jsn%r;hM1LQ6Ypl>0X&qrk=WVH48!og
      z_j*5`02UYqa0rvUs#(Ds&iLIhp-QD$+-iE`LdL3Uq&89qa0#RDuH;qDwx>c0LkNwE
      zH>>^ONbsjwGRqP|bk^$nYdxcO>m?y*%WsNORcj%WODPHCKdgC+@d<>UeH3sl+JkR{
      RJ=1yEdB1hLjI25sd;k%ZGRXh{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBrXn7(F)$*%G(31w=sYi?wv~LPM$I3$;qN1ZYzVgocKwWeH0RO?ETO2J5I_
      zbgVz6U+YXEGi}F@e()FgYaGwrEFnX;H8aV*d-r*sbDr~@o4@~k{wIK|_(nlU;Bv)k
      zrgw}zBW--|rptECcG7c>@xzj1Z&z!kZd-e%<C>0wh`?ztux415^xe%Jv+OE}3XBDm
      z&}E@~!zdqB5C~Pu1k445OT>KH=)#*82)hpB6G8E-wq>rE4aeSUmffmt=}l+PWJ-@~
      zFX?%KOF>B<r<`p+yw_MYHfu6o*>>!@ml3^QwW{t7fs0!1m>dhb{=k<*@|=zr1R}b<
      zWyTOjzluH#kgOIjD0o{y3urHpZVc~WM8UAY**62K7{$8+Cn}~pXVmM42bPUt5bsOy
      zvt*-X<Aq)boLA9{n5_JPii`MAAj+)O6<x-}OL>_zCX+5xE3K55oa2-$fb**(i9tiZ
      zL`kVoa6-WqsuhrVT<7r2WM(3Uaa@(ilVtfOiKiFZt$d{7EvVtl<jjP`{6xh`s0uzK
      z<}tba+1xZ-WA;(mY)C^W;B*I$?Am!Da4J`|%*AGX({wx=2=wP{daqzORcQ<VFyek!
      z-4%!jIVtFZNH@`t^3t%w|ML*X>Dv0j?ET_8XQY*~@e(IGj#(91a9YtCecEiudCkkC
      zh4zpcqv5uSjEo6YE&i0Ud{v<@J@>E7Wn{>*in}tz^S6Jts$vDYtXNR7CM%wFOkVC?
      zQ{IVYLm(z^Lz|Q=vaaI3EE3DxO{Z*Tz0O90dcPut#s!Wk%x@1O2uX+VZzd%D=&c;4
      zw{nVHdl=V;Q~W*6r+@ey;<}M&;Y{KM28+o947KpyKF&SCz}n%_g%&RHh>u#ag~UFR
      z+>RHM{pl7a_HpeAde;(y8~^xY?|AC)c<K-Gi(mjl_>_NuUsA@;F^>X@Ttm1{29qAU
      z45PA)n&(Bjg)uBLdX3RV=qT}YgS$<vV+#+kjW3ut)aH*HtSUbn_zE-ZPRLRDT|Q!$
      zVZKWwp5fYGQ02ltZ$6E@jNVCw`FJiFo;bkVGPlXp0d75Ibeq=@bAcVI`jCp%IK(>j
      zwmj_f?W!H@1ai1T%t5kR<SxWL-Qcs>@L7z$4t41Wwa=@(OEp}aL9+{Ow1YP4qeZ&V
      z=rbSfTOVy$w!~)hexoVb=)L9CajYNdm!DYa=Ps<_4%V=b)l26bc1DZ(SbIK}My#o}
      szEhsQK6df7*ll%xp}N0P-QO^R$DI1_T^zIy2hHa&(#4_V&FSm^0D5|qvj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwTTCNW82+YnI%P`*b}UOa*xeO@rBI+OySQ9RyUV4p;Wn_Ml})rQQ)np+mV&y8
      z#)nNzOi&Wz`r;+V2NE?KT{IGdn)s;6zLNMxvN6#oU+_WW<vY__NOmVVGynPL%y+)a
      znIHf8<~sl#FkEmbXjoWTZ_mUx;_dMl^X*A1YvtObx%kU7$#~WruvRwAT;9yNAQV*D
      z%d+v6h4#rr#!Tj2&=fR21YkhI%&f+fM+gd>Ny|*76gcJv6{v%kg0dV|P}Y~srdQJW
      zes-JuvkJt3HE)XW#{O9mo{9W%0t!xgZ~|@xm1F4@b7FltVdk#K6IoM%K4y{WY&@5i
      z^I}u$vjN>uamoWPJX-jt&dvyBYvEt+zxkS7++A;w9SMKN0~gA;bAB<srr`Y8Lo_{T
      zN-w$Rt%1>@XJXGP(3<9k{Zfx3y`n%_;NV2H*7KB}x2B_4MQ^m{TXAJ#cUpvBcZam_
      z&!5QaQ#aZWbfH~A#gW6~@%*BPDP15&)*_l{8uSm!r58Q8WVg+iRz)Zty`#XL%2~?=
      zA|f)f)h5FC{;m`Ke}&4#_cvetQ-lx0uZU3DJ+6N{zbE=LvbXcwj#O+euaat-V^o1l
      z0!gZ&bN5eb5&ynBwEFSB7EwFxOACM2boj$tH~d=o_k-vi@67{#Mz!u4Ydx1Vhto2V
      zng^X~le+LYomM%VaL{)e&bwRY%BRLzIXry(2xr|8yaUzRo)%N}3L_>wM$D;K8at@^
      zf-fA<d3W1DT@1JlkJ?=jfN>XLrU<LBf2R3sR5xpTu9)gY&2&t7ae6xD^rCk9EBKD^
      zDo78+67=0y#FSV>z*(H*Q=y2uBKjLdmozW5sKKH7^4sshRqsg**_7+=qDl>B$XixI
      zR!&(tSxvNl&aVmzPSFgYhd8}d(}xO#5JbPNrn!J#+?o5}39eyeWLA#`A_O@a*^{Q8
      zFY$Vp)=C{AG8rc~z3KM*s0^sG^k<B1)CN?&*^3r7Hh0mww2RKIjNX+p0wUlHsKGhI
      z2pmzYvvV5Ywu8)O2&WN6D@M3^ls1i$_%)mExx%I;x}g%?ZkwcoB%dsiJfL|}x+O`H
      z&t;Oy=-n-}Dy8?d&?iYp@3q@~vYpUFvYjvjPQBl5hYPDCg|^t!Ce$vmjha?9P%VO+
      z&0oS-EjpIAj9Wsf7TQPu{(8*$Mjkw1lCq{y3xn=XQ_Kv;ah><4Fwf^QW^HK~3sg(e
      ztdg`PT(M8#IE59GnBvK~3Tc-@!~Q=jhdkU;?iyKAZn>fMZzIv-3tkpALLMEhTvncU
      zK7i(tl|IDK7}SlRl;P{B5t~b13|m_X2H1Gi_hN*vyttP1V$3S0xx`hsRK-WhA0A7x
      z%l^0KNbNah`aEX|{zgeAI*-R-QdEi}7I?fCF^mk-T=N35$1GSYS+G{Jz$&Ke=9f~q
      SO3bG*!2>ESn51Y2rv3w#Bretf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrZERCj7{~v2_x6;vb#wLN6e&&+Xtzoy2;#<eH_AF7+h7dFwjy$=WptEYDD8Mr
      z6a^tsVH06SBSw5-1Qk&~(D<70fe!|vi60P*0*Ntx0?|m~7xaI-+dC47x4Gv$=RD7S
      z&hz`9r{CWA{A&OYqsNIN36pzM*-)R}uZQ%_nNZ9~8tG6=A{E!uOPc3~jZ}X;or$NN
      zP$b-$4@>H)-q51eeeqbv2_a$1Z4!jdG#wlCSlrGaLCi^{5}A4lvOmx%K?xgA#$Ax%
      z_P~iT5=zZu+p_Cd$J0yo)ycR7Z;KJrlbw1xVXm!BC9^iMNy5~Y+njrA;k6PR8G|T1
      z-ye+xq7kLGx#laSu`Rbm(e}9Ngm&SW`F!BQJs9W2y%I`BIa~G2S`Y5ScvhV>dReu9
      zUSOUXI>Cec^V{()8<aY|`M89lM2bT+!dN4lksu}bF5t^;iM!4<X=6Q0QR*swEfWoa
      zbFR7#@17G4@{If=v=9A%pBh*Z5ZWJ?n~$s8E=zEkpM)1Qb#?cMhGOs7vwybwh4#<I
      z+==g8WkS2yd#&;PzmAD-t}c4}(!l9Tq1_lhKXLcLQlT9lw{lO#zDA*ax)Hy)dnO3&
      z?BdI%8|NPq+V$<)7i%w`kuWA>Sh=;Ie&2lMrO8Ky_T!O-JBO}kg?4K3@TKqXR)uzE
      zYg2b}UyaayyH>I_R~!}E$F7H5(W@-v<^CUD8#C)8q2(^jx-v<QFy?&8oZ8oCv+@oj
      zn~udJ3G*V$Z@rjlrpR~z6pOEe9qHiAM&MY?Rfw}>?pB_J>k}G9@Ng9Q&FQ#<wr3;&
      zB`D>J{fRP;=EpxXk(qM2_)@gW^}|?L<*S~plq>F`HzC}n<vI8kgvYeJ-l0P%4f?9&
      zYVTcr?ZX%s^m$bkW6PDjIh3!<!8h3Ftyt5(OO|}%@V_U6CzyJqoEjbu)IdQk53b{?
      z9%G@gKN{E`jhKkJs6-gE(1ZnupoMcQW0zrm9^sLZGA#raOhqOVLO};6(JCVFB0Px6
      zRH=k{r(i0568tvmc`9b2MhmEI|A!hNYFW@nG8L7^AYsP`eJX<ajcG9z)kXoifcx1^
      zxYP4@(9RN;5qCLD>LPA8aeIgxWx*?m`#5If3A8h&8~RO{Q5!RAV=lKbJ8aCbjXAx5
      zDb*8GCgxESGbpQ=!Ry+)PQ}bBg>$cpN2?sBG1wkdR6J&RYx7=m)#bf0dL1e>%iCD^
      zHf($4YO_V0LD|hbmaWisShj<<Tx~WFV?1Weh^^3eShj=qXp5{wIqTj;%`&vIB+pQ%
      ze$2#XUT8lXWeYERD^=TqmDq+gcnW=Z8fk2&_Zj}4#q-#K7x5hS(Hg=|yn$VK2QT0V
      zcIWl27}3Vo_o%J!dzQWu8?W&1IBjXUs-R`W(qn!>t%bH8)Uw6$wiUdKZ7;Q4VtJPq
      zyq&gpRD)@7Q-c9&Fh~tvVReJlU_Ui@l^X1)1_!9YL27V-8VudUw8~~$Wizd?nYx&@
      H2;Khy$|`Mr
      
      literal 0
      HcmV?d00001
      
      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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
      TeYADx61KjdvGoI0hClo-9x77C
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%TB^j5QhK5tq3TJir0m@P;g<R3pWsBB-EG?F``6ebtp$Hfu5!m)W>o~qKWQ(
      zDC4vcl!OEpom=MrX6E$!=lv7FAvP8G7`EzWM{V#fSNXG}>ar<q_3BmEbJFYz+Yz>c
      z0K>f3(d1@bEmj*scNByecE@OQE}>*`T?`2fp{!vV&IyA*l`b;`a<V2O@FN<7f-pn8
      zV3^{v)2a&lhF6<{AyJSzZ<e`jxcQ(MaGs1d!%kt$+>xC#3_(X;pP$j_R7FcyGzE(c
      zdw*Bln(dBdNjk7rw1mwaLz?*)U07}qK>|?*pJ9@zXbj4uEn6Ng?8w|j{_g&PA>tN?
      zNlA8WU1)~4{Kzr~?o@1puBR_ZZyzL2caxo=OeN3U>V6NAHwt`+kqvppBg|49>o;Hy
      zamwg-V1cYF&QiCJeE0*2`yQ6QDE_ZM_Vmeq&p=PzSVocv3@cNUG80IvQ<F|7kk+Oq
      M<tLEVz1P_I1xZnXD*ylh
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZ)_7~82`P!>$SVp&eaO)ERLbr_R2azP}sT~Y;+rLV{MnoHezzE-PW$_&F(fB
      zK{4T9j4n)p%@2U^#U*M`LL!YpP57o+h>3ns{33}_;|HRNe9`#ld9Pi^$P)FM-t*k^
      z|Mz>|yU+jn=o0`>px*`yL-kO0BAC`DwV<}o2qyH5o(sluL-A%kJDJQG$(#)$!@Xui
      zM#~NbcgNGogkgikuzrQyW?msSrX`Z43Jg+1Dw{GI83eDdmqBdSpHIpVQ0{;Yc7}?M
      zR5sZ)F&a<idbD^Z$>8eH6I!NM%cb~p(I^_jsd0vyjurYYo4KAr9?a>Z&Fwq)^z~DJ
      z??Bi$5SGDkp95}GGT6ys=+V|443<=uZUbR58hRmxM?UDlLuMoe8M;}=YG%mr;1L_v
      zETbhhHEtwF9jL}yhB7Ue)20&o*c5}`+i^E}_3bN|+Bq|VK4CD}`0UhGY-*dS71is1
      z)`*RNgzVy{2VVMJRBx*<iXr>;F)?(~xGFZLx$W}Lm&N+lZ6Ax<yYf*{JuZhN^~O8=
      zdRN9KY_{P^2ItZootiQ1z!p43Ei?KMt;E~nYvG|=9oS}?ll!TI)_ReA1Z<3frRd)-
      zhN{1>l$wN1<|V1`d2e4kvDYW5zuauS=ss{$QosFa->p{zmn8M;w|5<$6TXtvYu)qT
      zeX;tWq%KVD?90T~Na_#2I;XCD7M0ZZ<qh)Q5hkgxO@2AMaPT)t&EME^Yn}Z^iuuOb
      zP(N2itBmOrxkNIYG7rYGMb~mjSWDXy=x?QSZ6ir%itc6f6eP(=TK!ibUn0c<2i+yp
      z*n)dVcN7BPL<K$3PEkpBp1hT$g``!<!}S3vcP6))$*T$h#bgS_{a8h5469cx^T6F@
      zI{&3iRjEu56&Gj-r*u{7RD^&a<?(P}sh-pHMj;|bn0m~*)rE}Gc+TQ@B4pIipcWc*
      z-T&;+M;-d9!@z&+P{!Xk>O+h&AFW0t3>OGPha$Kh^$T@r*JFOME<Na4@3)eOD5C3e
      z)9mHuxXZ`Q@rYt|`AxG@hz=CYoD89H9?vMAy7JjGuqmGM2<eW~=eX|Rx@*JiSyTi(
      zT&+z<=1~>!xPorfkzqQIjU#zHJ(G6T4@Qm%%p+a+`@=hE4b$+zAdNkQDhy*IQfS8r
      zI*~yXS)xM6a~PwD7m!8{<Mca(37o_vW=YOb+*{ahlI1UeH<tj?&!WLREuFNk!a8=N
      z8zD5(+RFIHr%0QZ&NHX&Jg03D@n%24Q8_Zj!`0d>AtQ`#G|}U<8#@wiwCIcY7O^b^
      z1UJHpP&Yl|Mw=p%q_|y*l`AumfanHo#`JbAdb>+rs~gdxw`bAYTk<X)#sX`HY3d_1
      z`%yxFjF28Dl&=uxqiDelp2h3XNXGGo$=4y0FXI$3cbb?vg>%Foe?beZoiDL=rpTHd
      TZx&gT>62ApjbRUESkU(mP4r!?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?YjYZ97(EMw1>9Up6Pg>f_0n*OMQgmYNiT*rEtUqA3^O(AxFH*|9kOJWrJYpG
      zf2hC14?1HmqfS5i!5^ib=iN;p36l@7&%4j<Jm)zt{PXW0uK|33s*aF`sfN=jJTsr0
      z1@nbhsJEIex3FS19yp%6qa&hWL^+$L(<oHdo>_HIL);Q?)qZJd&`KHxi!G<^nT}U8
      zn;k36>IQ?_cEd5fj?17(Tg66O8yjtl1tROFXKDzoE^3G_*pBVp(Gbg&N~P7sY>ob6
      zYu!p9jHH1fT+|TGWNUF~7&8z@RIEz|-tesn0}0=nGGJgZfi&LKarp%F>Q39UwhUas
      zRYEge*W9VMws$n-GUd|)&X@YUDhaOPvh7&Qovk&?T`||1oGe*x)y-zjbZt2YFC*Tj
      z-PVvUpTq4uhay9qKNAeCH!SbI;w6&F3NzZe27S|PZ$7pNbTpIgfmQWf+iA=v$i#I6
      z1-!2z;hBv`N6}-MQlD^=?6v&V7(Ubh9Uqa(E&;x8v12#aEjNKra8t*pCy7*z4cr1J
      z(4Wh~D;pZF^`Ws3fCT1nTXxEQkM*Vm^JHrhanHbK5NVj(+m=HXrZdH}#R8P%U=H^U
      z3VN25k@n<Snlu<Bx7rmX^+eqY<GzaHv?_r(<CN%;9U+YhQc}891lJb=rw_SDaJYzS
      ztK-(KC0hhCcyyVr3(L65g~<gOzyv>0o^+l<i19;ZE1POoPwHDescAlC)k7HO_Xtm~
      zm_5MfOzr>|a#MR4%}wtil}qnoJeU3}wui}y$aL;^Oor2knEp)_dW+weRl{3|V1W&9
      z%PMdYcQJ{3xW@6`X3U&l8t>p;p4fyQfhv}O3Morq$|y5(=~z$T%>?j%Vg>Q#yYOaT
      z3p64cSLkMGr4&ASbpqm~n!Cu74+wFIGe0C-kB~!2!Moy@K8BY+hL=}RLIjaPHh@wk
      z6ajq6Z(UYB^WmUt{#Uv}5N3u{*(c;@8DprZRw+L<Xr+_-9A~A@kjHG$;D$N_F_s)X
      z#CzR}K4&YclEEm(1eG+AYmomp`wGC_<c;#5n0uN(#K#9%kZL32FE8M~-B&;F<L*9+
      zXWS#_yJP3NPgL&V!KeQzQGHEbR;h_^@IAi8kNB>KligsFFn-{gmJ|mMxg=kn1$Cy(
      zWr|;pDfS7e_Yg90Oh~D3^7!fG&A!Q>_f1ZnPTuO9{21i`_8l%lRuPpOmFixagnH{z
      zN$nmAq5*cst82kO7WpL(YTaaxtbAB@dVnXB`&i}<Ppjia52RrwWH9YZMcG&X1Ma9<
      AbpQYW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?@wE06n@^@UXW5~=>X?i<|f1ShpZJD{(!M5tdj+t{79o={<xG&DU{xNX&Dfr
      zAKc0Z?Zlb+!Du2;!;FS#;*=QEuS@((jQ@hh`n<QLbOaMW+<VV?&-<R|InO!o{r#U`
      zivXU+a6J?Oe<Ga=FK8=TSi6x8$BmR>hNq0QKA~q!V>TDhCXMt^&Ro&!VHa>)J5yRZ
      z5xzFFpvSWUwyYT!P^O~-YC>CD(gXx;hpDgV=CVE|qjdwxbTT_AVE0D@F@A=OS=|8}
      znw@aK#U%bftN{WoPN=Ap)-fj<%2t~b^>{?UHJVK8ujH0ybaP6ZN$CQfQ6sLUVw#zh
      zer3^~olh<c1V{gGVf`fTpC&H{d^lN;j)%&eTwBiSOHMqFQvwZ|X=-b6BeO;T|L9>c
      z`bUmf8j*<wo^Ya5R_a>Tv$@PfjW`VyFs7w)I$4v*WFTe(N+tW1_ewmcOixnKB%cxL
      zm@<sTT&ApJ)PZw|)FUj=e86N(%g#I5-5!dXG7@s@a9~(&?RDb3wXCmZr2niF&q-gM
      zV^)($$u!RxIrdc5Qki+#$YI*a^sK%r&{S#Ys71jZ^<5%6vA~DN9Fs=QjO)>)Y|Duw
      z=jWW{h|@g8^7tsS)3g-XUF*w!^IOLq4m9%Zr1u)*3cszvU(gg3_u-Z=Pq6boT7R@o
      zwe#K1T)+_QxXh`Eq8V3k3@_tRD`uU?aXdzknJhfgCd!ElipKMDSBHfXD*jeSppY&2
      z6Wq2?aSz_$&p3S;Zj5l(Nb*&t9_Q#x)WCIA;W}`}DoMh1Rp4&%q!b}s3un8qgLaAN
      z3;E7_o_sg&Ih!88sR&=FxLx}5VFD*v1MoW2Oq0NMwBQXYdmTZ%$;Q5A5jj<cs1ga2
      zh@S+SNj1Qo3hfY{s!;lyB&GW6lEDLbI~(tQ2DNdQZfl{lu!ru&Jv_6u+bQEk`)q!p
      za5b=pzT16jpiSLOTy0Y;k!`k!dn#UJw@v*54(Zt<GMl?ijTBsg#A4aDza1$A7UNr&
      z&+HOiVJCq;H1R#p8W(6S!i5yCUxsYoK@Ut$?J|aurRX`tu)^AJU=?dt)xFjvtXHdE
      z$Mc*n!MK7KXerDxhJFlCogPlg1uCI3KDe)hkUB^uHYC9Z=-5}nMZdLR9MZz`pIXRB
      zSql$OO7B1mPgx63jTW?z(qfR+1MgFdTht;?Z<C$=0NwZyy(qAz+pOXvOk#_7<zx2#
      z4i)=^irm3E?$&6sQPpIlqRDzylkTb}y)~Nfe^r@|zld)qkIi7qS+~3#9@~JNSJRjG
      zTueuIP<K-Zsh5{Ebbb0cn!VC1s<YdrKlaTpaa;=FlMyRQMaFj!vKGDhF1hB7%vm3%
      zskrGGX%zG2yFmEuQsLkx_E<lOuXyRd<}c$LxWP+=d%Wu3a?I~hqVI4K-(w29*kC-5
      mA1q0N<#H;LG%|LHgTS90$EbWc+A)V0IWRV^zQocM4E+lak71es
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)6TTc@~6#k~ItyU1cfEPqW0e1meHJWHJ7}E+VsX`*@1Nt)Ej&-5zZl+Tt@h|zH
      zPbNP21N>3OGqc-vdrM8zZqJ<Wa^{@V{`vdsH-N`@ltYT)N!@QbNBopK{EKpGe$5Gm
      zkWO74J3H#QD1-2T%eqj7z*pi-?Nc&`48u|nFUi>vzL1_9A+rn*2GxhkGGt$RzNfYr
      zW~{OyHMn1Q_Nqt1RhxE&AyWuyB9AmKP9TT#3{z##7w=jpRUr>}wILX;lmnMHDqMOx
      zjt?{Hv)5#JTJ9<Ozb?DUkPfOxT6mx&hUunIQGZ^$$_sol$yg;_YL2%LSc!1d!9HBt
      zvMDi1iEcL-<}5q%X-}h@q)KMBjO2dvlaNKO_;!Pz29ivdE&D@)M=2G<oGy+8rV;{C
      zzgBt-lf<@>#t}9D=FAnLxnvG^8SI|1mi$xR@M=ZBxEBh^HLQcDy1iynZMX8)Oo>`+
      z*@q;}T`gUdyiP%l9#J<bkU|eX$`F_u+W`lm0SDm#SZ5|`w7P}hBy0#pYmu=I%~YB#
      zvT9PtnD%`iw4^JxJ-s;dqt<;xUlfa=YUzEBemfKNr1hiE3lwc3MK2(`y7m+KAM`Cn
      z2q14xpA+K+CMlkcP`HFCiU^NsTqX@#EnJPYp3%A1VqKXmrGQrn3D%KdxP}=cF^lW5
      z#JY(|CjHHb=~5z%qS4UBYm=x9h8wuq&t%{Gn7c!nw=g%Bxj&S78}n4b9dgN#!h&gI
      zr|tpw%216(-0OEAxberK%=_cp?HXb<v1GfK;&v}%B{pB9OX!9UOw3Dow<YM$aJ+Xg
      i!rO|y?eX5Nq28-li;Et)W?x5muj3(688*yfIR5}JjUE#K
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5PbvKY6U@5)Wm}(9{h+lCgKI+L5*A*HIZ;%+D$DVEvXCsE>9*N`~m(b
      z<MhK+f|0|{&g{PT_U+8)*ZT*6Gi>R|5sqDdZ1%)NnBqm5j_;TwDMQm$eY2(dH(@Yp
      zi_n$oflqZ52>Vln-{6+?W$4)nQX}ln%1-MMw5I2K>XMK@IP4G#*MTDq<gr|Yjv`^>
      zz=}l%!gtO4Zco~(5dq7V=gYhCuq(s1=nf>IY6Z3!bVTSyb$VD(Pu?@(#G3N_|0f%S
      zl5m{NDPbpd@zbH~E;gg7xI={P#Oxn1LM4>LU?MXr!FUYDp)GH{$bW67+o#dbu?KDr
      zuLYi2wCh;pxWv^ta-0F$5xv29<t&F1M}v2u&WsDJa8^uED5Js^VHMR>q0V)LrHrh_
      c;ATv$C6_5NqOM_`Badai#MK;$TKx9rH;AB)N&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TDVs5FPU>lyckhz8C2(QMw_5Z6pM06;z2wMG=ecOgc?dIW}?}9>2zd58$H^
      zV<$jCELg-Rp65B^d3k+$27rCoslW__|FO*d3BTh$zc>C!N#lofbWmW-4OU=|LBsh4
      zm$83wGr`C(SdP(zxe(_(MFzXxsSC+XBK%Voae+arFuAP0(TR)$1}ip=r-^th5*u{y
      z=Qq=)CYgFFGyO;>x26bN_kOHaqtNp_JrR$$<BY+q*XlA@BjZ_;Wz^6)+G<D)n~_G6
      z<1E*tKxqb(lC>3XH3tRbFLSs=IYiwiFFw2n*k8Xr=9)(ab(cO)_1*=4q)+uC<yE3}
      zJiOyFA~uI!H~efCqe}hb(I}C4rMb*TN~ghKF!&bHQ;9SOouGBipib3X{fpcP%42Z!
      zo08=eEk)P#1SOFdJ#NNC(T>v<Er!0~b$^`tl2wvLC}|CLy<g~Pg@ybMmRZ%l%5{Wc
      zBJ9gduiKtoqXh=^n6#q+HQK&;SOB|)l@b?AT!N~zFGJ1YN{N4<?(Pj}I$VV{hwHH6
      Ra1*v1Zd;^If9afoe{VVG;|%}+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5Pb`UN<l#szl~S$Kx4dUFdk4jHFA&;6HnW^;F8iMWvlY9^rZ3N5Aa7B
      zr_~UQAK7GQX5X8)Z)e}$UtR(1Vbes4VY?qh_JH4Vo8M`>rvh!aXlrp#t8ik%U??T9
      z&x5|*b_c@K4A~<YNPWzZuGYE?#)-NX7ShNSkU^HA=*U2vM?+VH9q#&qq3kG+`&}N&
      zxc)jc^o<-d>^T3LXfWixP;f0`XT(3KI*Fw~D!Vz+q8asiB5c&I{?IuUzUWgs30Y_N
      zo)~GVg0YD*!`Afa$*Wa3<a$c6u#6QG6^8mxgK8uKJsAnRO-YB6nXwhHfFcdYjd~1~
      zU(J%03l)W)XvugyrJ3$}?1?^z1n8rH6fK%6)h1Q@6dA?L?i1!76WF5NA`);20}bRU
      uD}0hD&Qq0(4H2V6xk1QcB4tmdp0V^mP>N)b+yq>HlUc<YAq?vYYvThA*@#I1
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ-!AiqG6r9(_q{i6Reu1EZ_2A-JDTq)!1U<C$;%O7NaZ9=j$wvJxPl5+OpdTf^
      zq@}m^u)A;O4R2=O>hI?lzzqfgT7<LARAM3DrH~&^%&l=kR?g0~6ZfCGeALF30X#y#
      z5#`ck;yGEU)Db$R%9e@+g!7kp_n^sIc1!T@w9#%vXkQLz1n<GVst|1)MF`L#^kQw)
      zQ?*P~F_lTK2!q(BGM~vp*LXvE?oG4l#U9UXcy<jZwklFJ*7d;dwsT$o2&dpQyb$7Z
      p0Dn_)8fFd|34WX2)i=T~CR&L2_8W4DW3HpM0A2JL@v0it$v?#_Rp|f#
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+8OA5j;6h&|RRqJ=^*tx+ah*s=C3s#Cakyui(lmu*|dvo9dT$Gp;igkD%=id9?
      zpXUp}3_}Msg2_c_nzB2i?4f8Pg`!L=nOqfJNRcZhRPLZbFe;>si3<(RDUTJwVCiqX
      zZRiKv(>mB435ZY7FJlqQG_RW}{F#xr+uJKK>My^UAMDXQ<c3n;V!pa&+~mr#d}`-g
      ew##~TjL}5PkYiJ58}3xtHQcRm&kmwrxPvd-VKf{7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{_HyHcw~MDSY#V+sK_KJZjyG=5^LK9ul)Pt)yC26uNh+gYVQizgBu
      z`~m(b!=2fUO$=>)n7JP_=bU@*%<n(vzW_YPnvV+M=^)92WAQ@-;-?7?bz%aM8-1uu
      z@F5zdM;}#UhCV#Pyt@^NWDtDq9m~)VYA4-LM3O+eHh3!|BiI?0+1jYgc;ZA23D3TD
      zCab;XD^9G<3@=oo%u7PGwZ2dA-srxpql)<k8n{kqc2pw2<Z(}Cd!lCxSm<c3WM5>;
      z#%0noM^1K%>bOUi^)opv`q^wv!F0n+rRK9VnF@z(Tc95o0b%{WaolAlBQ5%bt;^JO
      zDibqGWni*gI_E$qvXIlciFg8pjZ5Sv0C{Smj?>)8t{lY7%@5+Wc5V69zKRJAru;rW
      zt9Nyth4Q_!<86-Tv~9luR=_a+MpxXb@ecSX?A6lFm9~y+?iTFhG42LO0b8=!jWaY)
      z*{R?r?=_d)#sd3|;sS1Akt5(XmN;X<JG?5q=wD#l0hfxyzd*t=?l`i$xHpU9)dY(B
      ec;F}=;?XRMcM~Wcm+h_0rua0Kg7CymVD$pnsKcQE
      
      literal 0
      HcmV?d00001
      
      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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
      H{L6m;fhRbm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-lnY5Pj3H)wQ;@){mnof{GYCD}q!C!lDODJ$OoY(>7(Bz;4$1w>$|R`~m(b
      zadumJ)5FYrGkKZ3%=gdd7l2Fbdngf(#wHU}`6`8+J2A4x37I)N(oO`@X><FgQx6qF
      zs}RM~jK$+{szOJorlE`#f$o_{Dt40K&voP`U7Hye)QTb{9KHm9zw?~mxFU2^G*)*y
      zb<%{YpQv<V<A|sCc+j;r+T9S!C#M5KrE4SQql~ROHqjt718vkpHXEv>FNe9Oc3|1u
      zKqfk`m(7ZsXm)e_kD1k{*^vKavm{hKoeylRPA>9I-~jA~7g;T$#u@Oiz_lf=!!P<9
      rs524=yJc)L6O4JMdiH_VJChRHoNGn%9NWz63jsRV;fk<ZsP=vVR&Qmr
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!AiqG5Pg%TiN<KH`T?G_inw@I1Q7)xicsmr(>88(rQOJ8SN$zdf(Jjqj}m8N
      z4ql3fnR)Yg`*=HF-yfd<4zQ6TB5d6oFCOKy6!OK1NoAan-c=LrL?N9vm&#dP)+u7b
      z_I&NIwED@lVnQrmb<O6t#r!9Y{R!(137I$A)z`|N%?NZsNRBi!$Ar#cXT*M|)t$=F
      z!E%m8WQ1O!jk@x)v9dREJXM6XqAKNdB&`m6OUCXY<QV)HqYWOC3@dL-b*_VF|L+O*
      z!<DcJ&cyeNxVlKV11T1`6BlRWxx`5D3`}?T9r+uB2rJx^hTKDsasDg7D*C+f4;t0_
      E4<id^W&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutyH3ME5S&dM8yrJIc(oA~0f`eehz1l1DI!Ip^k;Jp7nyTp&VWCQ3W<Ub;G+=h
      zM}wfao!Qyd&hCAEe|!Qs$DxN7VYoE8SjlH8<ck$?YOIjCO=E4vERu=JJUE1Y)saZE
      z6w`2}B1>>zt2%*h%j8BSRx&9X)h!yuiDje+qsd>Rbghgn)=Es7%$bbY{(^^GYNPEH
      zp?y4B5S;7uUioOFA0WUMp*PV+-Q|y=%H}dmc=}+H^0Et==`wFb$3EyM!qGp@zfWXK
      zf0pK1q{h0O)~zo;E04wyya#_+r+O|&z(b824Q@8*qsvv|$9pnvGZT!Z(m8oY?~O?d
      XI~?6gJjH-{P&Z%~dz=yWtFD6|7*Jf)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3!A=4(6r7^CvJ2`bc+|w$c;*fsFeIYhYb{vPw9WEXvcKlR58$JSuj{HYA?l^`
      zUNi5_bh_ETz5%$xafXh->B3iXsa}*+Ym)QeNvev%+>)H>(niX#FL2T@obn4feOww%
      z0)_RKZVZ)HuLSPTCVwqzxx*dA5RIog8ad_Sj*Aid7@j`}^jBIr^Cffff0;C0JO%$f
      z+)IwHtta+-``e<itK)M++-3G>JfE*ha=D7p)vZE43stGj$U4JDKC-+_F&+Q{d;A4J
      bm!s{1FBmf%HrQ)1N73~Cggi0evxB2|bHs$n
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwyH3L}6o!ANX#ye8a(Mv60!0XmxrhacDZo(F-7#))6>Q`<@LWtt3_Ji2g*Y}{
      zm@=IIT=ePOzJETy09@c8N5XKtG#y`wSHZ=b=L>5*7oE2Y?fFbP{o-$xcUrbNQigE^
      z8)26GzFsNm8L~D~3`bR8r)i``qg)>ym_T1@qx}`b;AApqNU!aqDlouyiA@v?qe>ff
      z*FD$DJ&3wd411N8qL~Y)L%uGi{z<nClimf_r_$tNW;-X<jgC$KJ>oq40EeKh=#2^4
      v5E&_uV}q2D(RSpwDB|QpWqA65@|}VNJEU1Go?%3B`3GQ(UCQW&NbUauny6_6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah^yG{c!5S&f!0mnhY;{!l6gaV72hz2PV(g}*7^uCL8I9zOW_<-M{LZaXU_^61r
      zNl)RO+0kfr{ImZ025^a^6g|R8Z91`(uTsc2Cl=N?Av<Rm+KH*ESIW2)5n&iCjWo5m
      zFPExvgs9QxiEvu{n{Y*lwVA7T0^Jh&&-R6ojJ473n%A?@jMHxHTxIBEFGq$Q!l2Mb
      z-F2%{wGXmv6ycz-m276R)qdZIk$cpfmQ8KfR%)WXG2b-5@TGAKzQI5CFGj)>NU;@g
      oJ0LOVo9xS(2}ZBP=bza9VA8{YXA;B_hRpLn1NK84Hw&)AUz&|b8vp<R
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivKTpFj5XIlMX#ye8@@GfgC<7KVhy@7=DS`o1W+!!1SHYHy4WEk%iGdHmheDi9
      zcLu+AcYbI6{QdL!1>hV<1qOuU&IGZRuTsc2FP7GLA%nL|?ZuN`_*H?7FiC-4nois|
      zYt?$f(7KL5w_LTsvGN8Xztl$iD{fC_b3%4)7plY%yA`%k62`SQ>MlGt%00@aSA>Jw
      zwz8i~r(?evW`3n#2-Er>xC=u0V1sMbjgF6%3HdD2VhX0<kH#}X&I%M8-%8H-k&1PP
      i?*u!sk4`^Oy>l_Z9&4V4GmN>e{sNd_pF3txsl#84GDK7W
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyG{Z@6g_tr1Xh%XipE+anCPf6HX0j@h6HUi^aGBtW|`gWL&HDWSeaP(0e*#z
      zzhS(yY(Zgx%{g;t=G=Sk`TTkR0C0$n0xZJbP$%M1K1m^;WAWhYSond`@gz{9J(A&-
      zHwi}9GT6FE#^Xr=Il|7I62iintKImVU^iPmLay!KD+e}8W#q9ysB~SeZjy0dg?F;=
      zDMG#L52V+Vp=;{wG8d2Bh#<Oi4xV~FB@~A$P8Z<W%}%SslnkO{0`c*v`Oki>o&!RO
      z;N1F2I8c|aaa@~CY2PGCD0j40VcU~Yq}X^q%?<~wwmEt*S|$Ll3tS0iV$Scrq4>%N
      z3l5`s2EMS!Se|}hUgC<dj0&R>pD<g@mi=OIM){p88`IZJX?|2u166q(>RFHNtcNkM
      W^0$F>1Xj}#YiKZ=EX+RZ*!%@9)_g?(
      
      literal 0
      HcmV?d00001
      
      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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
      bMkQHNENT4J$)m}HFY!~-d`TL=f_47{D)H@`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOKclu5dMD8uASK1)@`~0ya{Qc5XVX5Bow!e69X}6YLtdUsz&sbjlH%P*}Im#
      zhK3^t#0dlvmvRWf5~w8{kZ6huwBmW-$Qh8}%tIg$;#HV`?K(MD96bNLAK%RSi<{T3
      z1DM2PAp``*OHMQSr1_MYG@tg8Mc46?Zq0JM^_rE;md*M?WxZBDW7dwGWzFPN2#Ub)
      zZN>=nI?d`r-EGzy0wO1%6im+)IJoFnbZj@7bG*4`v1rxP0uj5h+^p5yx@Q#x)Oap8
      za-L(dZov}Rw`e=oQnR{d)z6x171kVBbn|BAoLRS}+)?(_DyCO->s5gs%gMV1+bIbI
      zXKcszG6J#qPU*RI&+63XO6S5L^l6CVpa8|C+>bj$xI>_?+wD$>hPx2s8a20Jd$#NN
      zF*zACpkWYq3xrCRClT~5*)RkSY3M~bgnI;r{FD{bDJ652id8Zz%bw|3^B3|~O{NRu
      zF#2S+`!w7y3k5kFV<lB_4I@Y}Koz@cdyHm0H?nK0Hk!R$Z%l)VpbQz;ki-NdY&N=p
      z3-rf##dY;*89JpQgdPUpE8D!giN)JodFM=cnY7j{3h28U+ksmk?8%++%yk|hDEDPD
      z)5Amh2gikZD28(enGj}q*WDF#`_%9drnwHsuzNG#IL1QNmYb-W7kr+tXir1dkb7vK
      zQN(fzJ5qSrZPxSFDO=vt{@wRJE(;21ImfZ;*^1d{Sd2rk{S{z>AtL^Y0{ml$nL^^l
      zl$i38*&bo(Irfk~nb>8fK-#C$3mEFiQa5J2im(xCK~=VB%TP8DF{0rOsI(;&>=A&*
      zG$w0N3y0_p9HmQ`qRUA0J40_{58M0O)v&kIQwIB(6KsiMf2XG}xw`ClDRC7CMz^7-
      z6sAT>)zzr>8X^OO?_ua7BJbny6IXHX4QX5%)uq#s)ol!~NM<D==@pF1_vjT&zQY;Y
      zJ&w!C=^7OJ0AczNQM!&Hx`AQ(2xIgyPS7WqrB5+WpWzIB?)RN(cZ3IUjPr1Bcn~SS
      z?<Id0iQ$qz3o*8j;yC*&JW~cIm{ZyFB&OT*37ah;_HWT_;$4g?h0LJxOiE#XGN>!%
      zZKPA`EkWUd(y5@X8Z8VMda#9lLstvZtSiB?D$T1~deC?s5nWMMXWs<p$P5gw%9I0x
      zoBzIbE7kwVyKAvU{yPDEg#dkxUit=m>021|9TN0CQuG6k(~mgG?=<~{1%7k%Gajd3
      zutLA$JpBffen*l1K!g6ov-B5Upuh1V{ezeIeVJ}zgWpXBKG>(*@N~g$;b8_*@cK6K
      v2y+2G;ER}Jju`w`kY!GRf#(@`33dYOm}gFUo?@T_Siot1<<ZN}B8S+2DqLQw
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7FU2Icj7=FI~owjS&7C6Gj_!$gXC#-BhVQkE89b=Vk1vZAmA9l8#ZU@@araeU#
      zCD8<l#-I2TH4}{xqln&&L^lEnF&b~U!03e+UVFohciyVcce=qyFd1pS?|t9%zTfly
      zeDC-6&ObMA1871{fkR;1q*;oc*3N1%?L{k=&Y4y$m)A{eI<LnPQ(ECrW;#FBujLiE
      z1j4pqMl&a4sj<`gxW!LL`Z|YtQpfsF9Un+0Qr!myL{cD_$eBe;Gp%7QQ_`Ju2!R#%
      zZTmYD$$_ENV6W7OhcwB=vD9FyXGm(C0-iR*G^}<3XMJ>7z?H~N=zcg62_T3{fl!}e
      z>I0?hm|hst#xgpw`f}r1W>_m2QeODzvZjopK(ud}>9z`ZCw0rto?h#dQ6}Y0=N6rG
      z)c4u7FpXTSYueJgO6jy-Xk9+OA8WBrL5;x5M*sz|9vkQ|pDP-cku&Y|lk!Y$0Gp)B
      zoiVb8CBM`KumxKM6viuW%(hKPO}(^@3an!IOTsOO>c^AVp<p{p_#gmVC7nm*`B(ru
      zr7sVWlcw!#habDJN5O7^9m_0b-4J_ecK~th6{s+ZgQa{vSFrR60@o*#$>>QxTF|Os
      zzd+;TU^X>N&^FeBFlCf>*%eO-R6qK9Xg2IeClU&}77K58^TBiDdR`VffNs01@&&`R
      z1}$y;%uqoaXUFYAPXLF|E8r{W+QdRz_5QD)<u+QmI?Vp*$E@g1Ka%K^`SuH}d2}4n
      zVFjtj!0j$&v(tVI;HbnsCeU2J>^$tVt@4dJ$4Y4dbxFrPcp&WQDXl0wVkZa1Nwxr|
      zM8RS^`SKaf;seV{UN^^c6NWiSUa<|Dng#re7PhcxA_e8FUMSkn#AlYW_TBKY`z<*D
      zc!>pzek8O;#=D3@R^EL{o8-{&F2d0=mrfUTS_(tJp`W{-%EO()3E>~il?vl}k0HlS
      zWa+eQlut?^kTgxbkjQAoqRxQac8y3E^0z5d^hmj>*;UIKX^%Zr!wnB5g+tH*FJ<2n
      z*-yD*i5%c5j$Bl75Aj5dRFJwG<`KSbL#*H~0f7#z<Q^y+U=>uz$^HaZ^Q#YQP(=+v
      z9Dgwco)X>8Hpc;HyEE=`#NE!g#~D`|=1?8?bKe-R;J!KTRlPHCi&<OnIpdM5xYnRn
      z%we1AS4P!H*gG{khlUfjK4|YDRRT1Q#={M2cn(cvT|f<d%Q(((+5Z`&wOlT)ty}@F
      zl&kG3dL>5rNM()VGWMxKwNee;K=TZ?tKkD`uw4zsU01O|byHnMHI@5j5K_Z&w;GIl
      zs8%jSgc?zOSN<JV-IuU=A!4_T^cGr18dQ&}%;Ui9{zz414jna@u)1thV<)ptb=|<h
      z*%NDLP_>wC`D}88l|MX7lz|a3k0Z0p=AID3fld(=8^lJ^Euuy2=PYu_D&r;^xxYl|
      zW!}PhetU&?@hT_r1=Qg+L~)Vx`gQ(ozk$7Y6Nm8@j^b^cz&jYlyO_j#$l?QXAK`s`
      zj1Tb%f0u9>pW;h=hU@qo-%*;!72LuXxQ(xH7hmHyT*L4927eIuPg>o>_xKxgjP!<Z
      z;imB6wg}=!u?9ae>Yqg|?uae8E1K{NqyJU3^0e%yALK5&F^C~b4$+0<7-lEAL<eK^
      zFfWg2$1~)d@bT0LITr$AA5M~UBP90VS#ln%5Y2dwR6!j*K2OezCb1GPkYj&}?Knlw
      zkM&|J|J^)%2wCJ=0}s37D66883o_I77$a9n?-wynE<~I2m>?I%Zp=a_7h#TWq*=WP
      hBb<_v!@z0MO^j}U@t@&SOOj?tcadgETS!e*{|8!nAM^kK
      
      literal 0
      HcmV?d00001
      
      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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
      F{|n4MdsYAd
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLU2hvz5Ixtiy@^?x&}8$`I3<(-_PXu1l=9U!ZIh;Ck)eWAsoJNmo$GX4XE(Cf
      zp!^Sh06(A)LDUZ70VMK<c&>mxSNsdanY%Wrq9CC@?9R-+^Ks_P++Y9x@h1T1@u`K3
      z!iCMK<2?+%3cTR!#B0P+;>FuKN_Muj_gPT?Qn%wytFCXxtw#$3!$MYJ%mg)qXw$n@
      zd#LM)LRO*_l&_EpH>j*Bj08#23TvH2E|wGuQLv?NH5zTrfWk(Q1OsEJ)@dj>Rg*Ug
      zV{d6E(Mz31L$@v|<S&O&m@Fz3OGkS6YrbDzCx+#CLl-cFaT}wUP#7we*GHf*Y2#HK
      z6K&c?4tdc|*sw4xTG57`o}IMu3i1l0)iBbZceZM}bvvjv3IBLCt_RKapcRVUKg=c%
      z!nVT2>Pzs*wyaH^+%~KcCwa@!_HP)}B(FegnIqvm6sAh$BRem^#c2x_h4CY(vvCFs
      z3d8kaJE(`rj(B@E&fz?ZHN<nI}sAi>Xt}#qolT_i&Nq3o5~orKc}9AK3U%QVeg$
      z?Jx=BsDO{*Szt?}2PjM?alc|?5hYe^H^Vxq9BS%_yTP<o9c?BL6u$WHvAz_w<@Ex`
      zx-3gDMk3eJEe>Ul6NmQttN>Q9{V39{<z~=s>$Zhe1^55YluQg>2cH%j<P*#D<D&5o
      zSu-O?P%x4!W+a!+NUkPj9vQ*Q_}6HCLrZSw-8~$4D_uBlv5P5pu8SGh$#ya8I=L?9
      zzN1eDuk(MBb%0%D@jXWHggLtyM-MaD<NXhq=j~#e6K~)YEoPTz!HS{@+KkZzuk<i4
      z&w}|x6U;e!zKI3?1))bNkvaDXrXEvCVdTx>K10B8<Ipds@D|?Y$>HFc!@<8D8T<}P
      z{orqjPVlX=vU9ikiwOC8DEDyoPT!pE;oU0(-MZhy`!r^)`$eiB8K)jDSN3-+`#%%9
      zg&SC5&J}!OWZKLL!`D;Z{*FofLDv4nB|M|YQ-g8RFt*xn@D$m(YFJdb_AgKO=p(#N
      z3zh@40<W_Fcu;);4t*R<8JSi;X1aXN>VNU{`3tN}rxnM*jk(@u<uohH2H0+;IOk-Y
      f+#Z$=wj&+OuE`;2GVE9WE4WE1&qc9wA2a^|0l732
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT}+#06n<X%-+r{+&$q1(CQjy{rF3?qa}1b{xmoSN(G3Lr=|}krW$+dI<D5og
      z7NW*G=Q88exWx-hG-f6ni$82}+%56Od-X<l<&D=S;`6>O1`QXE5Z?E^=e*xJ=Q-y&
      zZ}0r|%}oFgW5k6zf$)S?iA@<V88PEbIhHF}<yc|Xw902^&De1xJ7AUym15RBS}2}&
      z!7dO~cc%?&BGx}PWoF9)4tcpGP&b+s@DyubP_ch>H1+@8H?PDxC}10_<OKAT3TEXC
      zvBPJ}=HW^%XBKI7cIB;nxkq4I%bGV@2L<fCg>lmh8v+`92-0Os>!24KvDt-90-M(G
      ztU<>XA{ejCPUo{m*%a8?(z<2@4;Wm72VUv&J`LN^AmE-Yl=9_#!4lZql3e{|HFJ4)
      zhlcynL<|#VIcc$a%quAkJ2gCrW&sxsy^}^!S$bulhcr0gbfHBcvA%*zFJTQXxMid^
      znQoH{?E-t((H`kyk46H;iI~ZzCkw?Yj<gNS%gbIw(IJbT5IC`RgOcfFa$U@joeiY&
      zmf2UC88eF~jj?HVX=AF8HKqrRVqTtWN_%-SPY$--LmX1eFS(q`m&*OQT*)LXK~C2f
      z&D?68-!f+Yb;&bh%&vUk9XHCx%E4__W=>Y8L*&_84u?Fl{WOs8^gqP`qB?nma$3bI
      z_0j!`2gWWPS>@4QEETf?9rplh^<Zgi7~`s$X7mH3>G~+e36rG~@U8Nw9Hv{>m7Ao^
      zfQGcBm4iNILF)4390OKBz?-hVLwVWo&Hs6s+T}D0Xi3X5i@noEsU$yfuK>j!^54cs
      zPyTb1xIzwt+Bw7AZM@-w#<d=(`+~L&fCz?fz#kdzbl;9FU_&Y#xsI(7+X6yEJU1qs
      zYIVp}DTX4tBe*Ri?Yh)Hkm;%I3A;SnGYMB%cYWu*j$ParvHLn&X^3>&5}tXy7ikE(
      zb<d=7Ae|<>wXb~PYuKfGbZ<X}RtmmFMAMN*X;!yw32h!p9%G4mUB${I{K`c@cj|$S
      zdtc8a0`ffcEuzB_-K*E@0o^ZdU|(mj>NBoup<sGW6S}7Rt}HLic?1Kwt}IW7+)MLt
      zalQ2w>fjM>;bU!l!Y_Af_H(_6U0jo}V}P&XN%(OJn=ptFhWOq+L+dcY7(oo9IDlvI
      z7@otEc%HXkpf-an|0XdG3pu=k3B1A6+nB<;IE{}ngU@LB60^957qN&UmQcnIsNhGO
      z!B2P@zi|HzXYmK`{fTkmz<>zgH9W$se#RErOUCWwNlLQkf)PH&L3Hs~Fu;?NnAaV2
      zQ)g2;B{9$M(L<eG>6An~cX5b1htesDIDf~Z)H#(-NyPUxeRjd6bV?$kOE^rOhbUh~
      zFC{OrmT-iU51->{JWfd?)@~fdF*0%y`|t#He&TLtmAeoiT8)`Kg&=cJ;dqs~L{!Hf
      z03B@V*5Tu~Z9Ve{N%l0hZ@&ypwz@IiwsdvQCK{#s=9T4N+t^-b+tMv@m1E$-4vq^5
      zCaU&5h^xKY<{h*H=eW)>{F^N7Tf8}k2z7h$jw*MP8ncd-a-#!%Oqjo`*r{O4QR^p2
      zHEKc<NczmEggfoGZ3)Lb4$0hfNBj0q;G9RhOj~!v`)moGLQ&lrU%-im%kW7tWG5V_
      z(4A3&xjW|&x}%0{ktWGpdkveLd5kbtH%Te?5t2~uRcvu00?u>vFR;)TN!|C+fDh2j
      zc7^dFaeTxtFR>vPNbvI{?`4IzM?EN+fAD5%c!`Pkj?sHFf7wr=g>~_<d9w8m>_(Gn
      Vvy=8gmBSFn1d5nZ)@B%?zX9{vIuHN=
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7EU2hvj6g?B~X49>qj*DsBCe$tc@JAar2@P%C21uZik*TG|3bKL_n`P{7n(SKZ
      zaUoL0XGA4l`c?^v2l~_pUcyTvH8hB)O8gK025@F;TL`&Pk>$PfaqpRX&pk7L{PlPb
      zz!VlN3<*p&{Z4V!x#JX_&s4Dy_^KGRq^~wwvRLJy#=&*2UUys-gc}wNfkfoL=J?HG
      zb!An$N?`b^=X+{SAePN72^b5(r_x3Y2jVa>EO4me`SM0*eMN>fXJt(aBrAdItSvdA
      zr{~>8L*4S)0v9U(FRPNkK{u3+ic%%OrEDe2(f5Ml{DzYAokl~3rQGrWU|rq2a!ocF
      zP9Xce&t2J4Uf{PaBn8I%<U}+C;ku*xE;e4ls}@oMhX<S&#}SN?o2FD{pClRCa;|LQ
      zsKD75tj|Uo<C?+=f%M>-%DJVOQf|XSMj*cr?gx&0Q?`Rn=#r)IwvFRBsi9vN7#j>t
      z<aWbX+Ve~tXOR_%vz8tTdA`hw265V#(0>j+)r&3J$m5)ag22p+=iCpE<2)wWD`vC6
      z_EE0_N3ywrO&`Gpfs=lqGM=C5NjejRnOfM9THcvP)KnXznAU{M2&B4%L>gaIq31VC
      zxg`r1dyS4Z`ZA#GS2_)b4NO45)c1;X<@e>Pmz&lZg=pQ8VVg1(5M};7>W7Km7C1LR
      z#Lpv~I7ZkGU4hws&wg&7Nb=${&3O9Oj{Q5y?wc^FrOyY2Ebw6ghWO*9=iK6KhE~v;
      z`5lb>5^dZ3+H?Z0z`#`;<S72kiS{MV4&Y@RqDO*bgFB-dN_@-pVXi#Q$F_0!+W5~L
      z&+~6av3%32wOW<)DXm&<6+0Z+jn<U5#uKFLv0Z-hu^k*++!{~5_7kS_i4o#)uM(Sk
      zgkyz?$RnRfSQEEC;f{9QjERZD-owBDENt!Kc%8+ZxN$ytY8$7o7-?fK3Z69|;b<Xc
      z>hQFYGN-qZi_Y0JMat|(f4Ga$da}5Kso$9P7udzGc!Q;CQr<_B-(?p05iY?+8LOyb
      z9d-El7y;U}chO?hUEIT$xR0;!0AJ%re1k38$Jiv=cX)#DBT{c-gm_Oei#KWOI8D^c
      xJoN$2bVtMZolPk5{AHYAD@yF)JzT^!%yD#|*X%94%@+L7-PKgTL#!dp{{z1As$&2E
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;5r=5Pb^;1Vs_QkHo})2OGU&2t<N0X@scZ(A!eBSW<RP*+TqTo=iOW1N>3O
      zX=yn0pkDUP?9RNMnKxhGAD;j&aZ*5rp*E4BIpqs(@})LiCAFzugw(Gu!hCeNFM<LL
      zhDsdbb2%~lqp5H-L;l*6o^CN@>y06Uaihkfge;0%$RW?LV|h~ChqI9gp7_WY3{^`J
      z<B$hl<R_Pge)i@Jr`Df^G#N@0q5GlsiJ75Yzw24+(kDXA%#Q2Q(^J6Z+*QG>Y1@rd
      z#I2Ab;QoN?=Y+2_UU2CUU+X`7c8YJHJgKj`&1eKgs;)D4XnG81^}lPg8@*LaU6Ev!
      ziQ$1S*DYH0yVQT_4jaGCO$VWfm9&)<QM->S3>?w(A~iNw@?Jy}G-@CnX)S;}S)?DG
      z1@cTnMwmN)$Hp5O8I+PBpp8wkw^jj!Wkjp8jhz@P*p0D@y%_fsJisAkF&xEg$3G0C
      Buv!2B
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn6n-uw*<>5qh?HWYhzPo&v7z_^N=tc-VguAtq5bBDY{I5t7n2Qw&UE}B
      z>gcq7@RRlJ4|II_LK&TL{Opf%eD2+CNC~56W_RyB_dMr3=Q-!XUw{Ah2Y`#XrJ+M0
      zU3MDTin(KE%@4e6$#uM}yKOn%-nNzXY7I**a`vuO)DRL#DA%g#l(Q>^inZYhbgnEf
      z2#7_2t~uAKd#2;9nbn5X$t=?XkxRB?dsFl?(rW^tIk#x(=tNf>G3Wwk^0s3wH?|5^
      z?S@&XS_0j9cf+i%nKfJP17pbBwCe)r^Z%RgBvWoRssdqSaWPGL!sJt+wP^2<$cAO}
      zFl4B+aH;CLHG%jJYjSIO%PD)CI-W+qhGzs$AC<jidYf@Pi#`T23-!?K$AEMkjN^F>
      zF<|}u8dV7y^Xd7>^fijW9~1BL*%Rm}$wf{sxQp6>ShSS{bh0pg^?YXZJ5_WWltD@A
      z8|MYI9jWjNAt56tYm@0@iA6p<k9zK^SF@e6z*!cUKcerOCv{SKBaREm>bQg{4VNG5
      zt?w1b7_P_&xf3D?^h#aZLu;7j+3}3CjZ(>~>6pR1Y&<7MD!(QTZ^rQ!NIqh2bMjb0
      z%9v}9>jxn58C;csy!1PPSl}1MGBwT&NdIfn{~dvh(a!c?6RpNEjvE3!M!OrwD^xEu
      z*n+;cr~wBybk%LtHmsa2=UP|S=z>%Rqtsts5P_!<MucCDyADLr#WyboEvIOCnP0(g
      zc;q4Czbcp0eCu=qCK1AAoZ%|&J0XE5xQn41PX+;|=p%jg<bG=3PDDQX`~i0zkWpk>
      zU_nLb^}WzTtNiIWtIlKSJt<ZqvX|Q5YKwLCKVqFjU%+dO`DFHJGI8a-#GiMLv%20=
      zS2SQ1qgapd*#I9-o&dht0uDF9$z~y6QIrsqXOs64O&ucjAjL&eE|Q;i4>$`c`OXau
      zRfdNvg}aA%t_Q=n?;UaMSM4e?h()zaY+9L`SIF)*`cYNsNBk6cF;FxMLn+#ab4X)^
      z{QKFh^IUZ@M&_i-A|D>5^qW<Ctg@F>=$O35fvlr}ED=@5Ppq-E)w?a|2p*wF`Om<g
      zwu_`Jo1!H@W5Mpv$KZEb;93(triN4wYcu&^_dw;#<J3QCLCfSLM8x<P=9QM@a#FPy
      zj*0D8{zVI1!>f2r!N)NXz{mLY2kH>7A7b(sp10QibqhY)BtMSn0Dq5dkT-JTcg);M
      z7!NVGlt~x|$gO9TmIruyJ=48(fR*)(8V_Yiq?N}3t{>&|hvOSwq5Ev`w@BeT4B~sX
      f_y<b$qvA2(=V}heL@*pWd-*QbR2SD(1vmczAjLe0
      
      literal 0
      HcmV?d00001
      
      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
      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
      W$4Id&NSn~Wsv;p3tSpRrQS?7JQnWh&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%Wl&^6g`tTb>h0TNz+%F@C@L%P2KPm3Utw;qDT=Ns<2^!+l~_>*N$ul$S3d_
      z>=3Xh(4>e3AHYW;?l{2#shci5zH{f^bIyJI`u*c4fEw=0NH9ETyFKHT`PwwhH=$v9
      zZfJO2?uPv?H$uP1BjbtF?{=Erff;&!dDrXt+x?KskQg@4o6exv?je7>=Mf%5z8P`5
      zwr4claJy$&+^;iCJ+xgr++wI|lK??FjyTg<X)#DU-XT|z#Iy<-DnnAMv@&40pkfwt
      z44JmmxAx3^hchgk38Nr~yo`B<`B>Y8TEzku8K%u3*2}P{RVGlezb<%}RirS*Fx#|U
      z{<L?r&;2obPBheMnZ7O5jGa>0u>*#B^SphH$3oqc973j_D3w8N^Dr9VV>2Z0vex)V
      z?4+=|f~zRYxW<r+>yB$taUD0Pn}kKc1kn&}(o|HSGo&2*$fk$<|Jb8xDp<#cj4JgY
      z#vP4Og(0%jT`#ah+j9wsBzHRutU){ASymwElxMVY2YlBSGs{M$jCXNE08)hw*X90>
      zV+H}I=B58`C^l&TNm_P>IWYyY67<PPlP5#g3%ZN<oPG*LUmsvbUmGGjz|xl}c165F
      zqVoftA1UV(viOVwc`lDKv5F$yL|lnjSY%x!D?#=piW)J!qiBIs)laarI>ePnks-Y#
      zbE{Z-j}$v5&rE5Eo5dm4o{P&dB_tq36e96oNx(PcaYDWU5uZZC_ehLB0*}R1sq|Vz
      fUB)f45|p(<v#ODd1a3#TcW{^f3Pp(~-9zCIHeL40
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C$!^n76g@9->c(+tleQ#H6UI^!cW}cj0$nr+6e(gu6gDhy+vmi{wIkc1%^x6!
      z4TE6I9~6lOi3K0PM<MQWLY+!%y72RTcR1(XbKmbjKYszJ;I@ny!=1L%(_a`b4c*ue
      zbklVL-R*KG=y$mucs(8(kL-T8({Oi;!1b1z`|egh;4&nJjnh^$D3-I!51KB)G0ZnY
      zYR7W*TF3CVdZx*}D#OG*%dvt@hP6_ZAy`Kl|8<sI3{uVA<qG0RsgR*E#7pH?5)5Zl
      zOk;*2*|z&;)7ZB83HC8;1sTlAm}QtfZY~O|n8#TL)$pT+8M38v)KV0v3g(=O1SS}!
      z8<xW#_x85AH{#C-N$r;5S)!kjQwlnk&v3VKT510+hUAlM0;Zpsm3nRSAl%>sBOq_C
      zR3B?Lnyjke5|(6K9v?iKMa2~?lb!@d$b?Z7LX}jMp)n+EYtN#<+)41^J{7EDUB((|
      z5GfjlROq65vg`U*V7U$fQP15D1FO?3a81(}bjlOA=k4%^me^W4oMrSH*99PrSa%%m
      z)ojD}If*Ba-Y7Om|2VyNh8eL0vSRefm?Te<tY>r=@r?EZine-$DQ#td^bxY(!rTQB
      zgGA>mI$u-G8>I0TdGcHsR$>tax{16Zv9QoOM^=pN^OQAYdPms;r=opFc5#4<(!u@E
      zl%9u|%|h`j66}zCQ^f(U76w>(DlUgq6oY6a9}e&yDSSW<ABpZ05qu_bzl05GLxSUm
      lDl~qD=u=q6HL_w<wLt5tP%AN94{>kcCjAx45<=ZV{x6?9_RRnQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLL2nX47=1%23oF_dL=dZ`S`|v`s)xp=#zU(Z5~7DTBsDR*(1C8V-Q6s+R&M?t
      zPkJJ;iQfHD#y1OXJaEAfX5M`B?fc&M?c3jfe*6UR1e*pD0+0J%WS!WbY|B1VR?qj8
      z<p<JJ!$4XpjARU6yTjnP<#%o6hX#@Yi}4e#?e(p<ofFwr0-3%$>>b!0R|*tb@xABx
      z*6vWr-Kf`-;f_G+x#KzNg}_|3))q+a`A5>k9Ij+xAT6-aay<DaI_=1C!j#ih-L@S%
      znt2jTs$*v$@U%6nc1lS1{0r_6)#g;4Q-ihtDQ3R<+?9cHd~aajy1??~pc@=?!w*kw
      zb(vz|hQPB~TUt9f^Yx5P6j0J*yeY6*o!Y|GV6AQ7mcaJRbsK&ZjtiGjO5=_|G4cjc
      z5cr{zM-`Xvt-@KeLlb#aw6s+^V<IiK&b|sAufL<MkQ%27h$elZALgbVC6Mh)6&vuS
      ztr#s;o3*K(2$=iS)RhfKdvNJr(>~IJCsot)WVq+rgMp-hjLGciii>WN70{jhK3E>}
      zND=81-N{IX$l@-z&##YQekVvE%QY1Tw{ev?J5IngEbx@UB9@qyBTn)rAJcpx*2G)o
      zuUvt8yy~(*k^j|m6b|bfBNV@#qa34UqWod*_6RG#m@%%KBM<NnCA`O7e8dL2v4+Z+
      qow0koXC16fG;ZNOQGy@w13ctS0@Zk}VV!%9=K@vKQRYvOulyG)xDZwV
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVTTfh76#h0d!@zieDYVd*X-lcvnKRI70WZi+pj@UxtAb$BY7aAqnbW|T@o<Jh
      z)kJH2F!8A`24j=H^`$W}aj4P6OX?-@59o_V{UOG0?=zf15@U=H%vxvfZ++|AYpuQc
      z@z2k{1aJ<SFlq$O<?K@Gnz3P|jO%V{rC__MLeaF{t)iK7osy}XsnxAwe%3VBOOEM;
      z5fq53kX6IZr7kUBGc&G0Yrf!EH%MTtR`9N4W!AYdqrkRRNX-%Bj+ItcOlLsg;D+hA
      zR%So`gk4&jDcHGbpKsPwR1-FhNk)+tI95R|R5<oyqE$Jg>lvO%pm8_f?!tj8=Db+}
      zHSL1@l|85#%QmNsqCoASWn1pBz+$|5y0I<StQ_utE+!TPA`_b#v*=m{dp(SU0x`c!
      zlPvON!C5n0A0iMOFJ#RK0%+3^#bJR!Jh2eLQN+S%7ijT&P*thn7>@HSInzzc`UK<Y
      zL^=Qg)ZwH+TghH86^rbcneE8uO`~H)C5@m3r(}|c1rAk?uO?xR?XhzMUfM@BoJL%r
      zj_j)K9{*fD`E?Bsp<a4j8X7$BjD{xEOTlL~PG^rmn33ao!|?*gCA?3gGzEHG!xMN?
      zput$*GgJbH<B4kR_v{SF@TW9{P%FJb4VssCSVN=dJ*^?)d1D&Fs1<0E{k~XQTQ;3}
      zV|mpSXr3u>UKb3<lHZlZpqsZimAy0n`7ZGi1Z8De$g1jUgVgq#yGhiBLIpR}S3N7U
      zJHx^FQi9hZQXOU9k0mY;<BzcX@MpJ4MrSt+J7X?dSvM~bil<2u!3$UngQM42z1_2h
      zo7eCnE_0yPEL&kYB@w)YD`C9MOY9HUo@#4&MfN_xOj3z_KGJs9<Uyj<<kO~=%gg<_
      zLdnUPla?y*-`<)tk{oB*umInzdNj-a(QB6dQI_MNEIX$x=So?2S6NP%vh1<4oH1G%
      z8^r<CkO>HqzXgW?(aSs`uH4q|qcs`W!I9<@cc3Ms$LVgP;S01}Ztl2`&ad=jcn6P^
      zk<gRTTID6_)hVx=Ugr){W%TM@J9w;&{_gM5rFVNF1A2EQWQd*z9MO*i6>{`0IvE~e
      zcxbhZ0bTzT18x~ZdZ3IEU6e8U2?f?*oWB>8e2WKILmO<IL=ie(LmwOr!^Jd8cox?&
      zk1brm4dn1Tci+I9cnk00ZQR05e1LcG5#Ggl^7VO##{?$%#WG-u9DEPxrRmiu?*cv9
      zj@x*Ko-E!BX8Fqkl0_&~w0#>9N>AKHSf1b>_dLzDitm=n*Xm*Yd{JD)CGHEV{wKzy
      z$2hc~@y@?6KIb#`S2Ttwtb0Gr$9rf(zOaxl?0L*FTprbC5o8%+u@4an+-oOWZ!r5A
      z<_GEZw+A<OuvBF~s%GwMmg^gO4>-Ty^5uKL8T?LV?C`k!j4`~*NtLCKsoXX6ull*)
      zujKBDZOhzDIQj#cX%hTPX8F^7RVf<r6^-s!)XAq5_=$>srlMb{=2zzWjsFvV$0^#=
      W_+yW<9$#6HudK&cW{{}{%YOmqw9g{|
      
      literal 0
      HcmV?d00001
      
      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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
      J6LAgR{SQ5H#$x~g
      
      literal 0
      HcmV?d00001
      
      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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
      Up7=)&FB~KXuJAw)`>@&n2jOtc+5i9m
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      XjC6x<ZA;h4&ct}?BH{w$IB@Y_Suhh_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTTc@~7(HLRuyomim0ItDatUDKh8JU^@u5JI#zr16<#}i)IHcWewp+m$|B%&$
      z1g{VN0DqKvW_zJV6B9R?+4;_QzRUS$zW@084Zs%GTx0|fkHTJXtX`==og{&2t0Ns$
      z?Y^TMQB%h&J1SAtu+vNSlUS?vL999*9lLM@3u&B*f(gGM*JOmT5oFXxlyREJg6StF
      zG|5vzY5gz$jk>_uW^E5y%=&QQ3$p7Q^&A9qKBh1&n6H^oKku~<b^JmdwzS}KEo!J%
      zUB$-QL(oZHny%nc?f+D=SBIjTY5l6e+dXaQPGX|4>*DI<0QSb7SzO0W7dHfjKeYR}
      zh1-G|o3s2nVb|1EcCjcZj>x-vm2oas+>d&3LsyKISeU$+2R1<9SHn=p+bz}YYBseZ
      zSp0`pj(vO?zuhU8IN&Vb28U^<%u|NT#SD=gPZio0@isqk-T#36S<0E`K9@$mg@bqG
      zzQ-kEr2!iS=ChxdW))^zK#{&H#2i|sH2X6mLZq;Hj{Fx~qh9=c(?7`cQ#j8OcSyM?
      gc249Y?ayg3e-Jz@mZ2Ei{$1ST-=j~kj8%BQ03*7t-2eap
      
      literal 0
      HcmV?d00001
      
      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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
      YQ|0g`o!s_a-ND-&)i-RE&s{|R1FGI^8vp<R
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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%0Dta5ZdE*en#
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      SdqUrT*_&O~-gBB1Xa4~UOQ8z@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F?Qc_682_EVuHEh0Rj*ju@gftuPAHqK=!zf=Cd2VE3gb<5ck5kuM|(T&y@NsI
      zgN6`|8V%q4<`xqYKS=^38l%P-6OD=A{KEet{?2V_yO%&**K?lx+~+*c@BE&Z{`v0@
      zKLO~&)gU|qyGrJKc2>KpWwmRLEA$t$BNeTrpVSP~>28WcRnyTIoFIGxG517SGfUYM
      zle791wE+RO;m18&KOhirG^?aL0-Hx07KRLwJ!=_`Hd)qBX||(Vd1*Rh*xkDXwv0X<
      zn6%w%n1-`YU|afG#y#T#zM*PS4?!TRAcSxjUUVvGM_j<0mIl#L!_<$@S0;7qv;-v(
      zAFWPl<#Ek2<a1r=lMn^^pAmB{bA%i$8unb(rt1g^8LF16)-j?g3v{J>R+H0woev?2
      zt{_qZo1RXKf=$>g;CJbz^=hA|bhD^ideKd5z8zb!Er^!{QmYcP!cM`9NC<=oxt1si
      zcZ7dyAlLI4Cd;oVNTY|PqMP=-RnKt2xWT*odAMg>2JcnyDt3?;x;~^inm}SL4-KbT
      z^aa7%Xx3S+ifRT5`te%L)iJ|7=Vo;zj4TEe<m8(+203dKof)ZoUBMeI=I5m@uVAm#
      z$%`J*jna%GdEcjCKi;C&u{6`3u3D89g<R6BmF$7(Y1Yo^CkFX24&qP{LnNv}?0SaM
      z^<jZ<`r_~i|H+EP@wS2^7-2!ySvg$RE4t~h=+b1ameQ8q%h%J;s*-j7j)EZC!Z?N#
      zK^$*|vR?BkIEgXFv}>7Y#@w)eOg4;Xp-(^%sOP#AuJJn~wf$1V#cNwr6fX|5`HH&D
      z0T8gO^VSqgV8fcid@=!i6*qalinhQU%BS;k(-ye-=Zpo}Eb+A*F!ptR7Z|VTF4yJ7
      z2js$RWN}$R8O+?KDNENJeW+TQ(;S0cy>bM}VX{tLuQXyK3nt^tGsn*V9}%(u1g^-r
      zq_8duE?vWh97a*MXWhxVQx=tgGGdy#HB{DYTPL2*ra^u5Vhf#l`SruY532!)#pLwk
      zFF=4AM&a8CpLV+zKseL;03Df!h~1;sgXdgJ!Sx`X=PK=K1r;xFXCe`=d+2qasat(;
      ztmPn^w|<Z#rG9V^cj+{exsQ(f*!VrR2z*CHYxD~(P9hB_-FUg?#G~>)66>Q(m+E_n
      z?a8i*oIj=dCUOD)kAcCUT-q7|G6I94L}(d1b78sdR>Kpyb}8-2DRLWBm5E$L40fb)
      z(Yv^r%*F1ak_dX$*zK`I(5FUkkJX&LNoAtV>s!VFZo59sbtc+;+~R7d8eT+>Tl*5S
      zYFt$ok>(az!q!BH>Ug4K8N-7e^m9~=C5vh_Rg|jHTQQ-=RR7}RJGY`jjjDmg#~(?f
      zCMA;`$Uu<^)tQiKrl7<`%pe5=8O-v>{W9{b_k*Zl6edofiZi%^i?A^XhgS2rfvfls
      z*YGi=Z}0)`;U<2i&0n<rhi_!Ef2mPgr<>&B6bf#x9^o`4k0hL)3oJ4zjZ^Xw(cd^r
      z$xmE=;2fm@(fx+=xIn}y{7f7dSc)0Od>5Bkj(zwR@6j$y)L-L$O6|n{6(%StyulaH
      zC`EXW&xn5t9mH{q_b(ty{|;FwAV$mw$VCC2ywe~VDKNfA{s`4d1fLL_k2nV;nZF|;
      zw`I&E7g_JFXrz{~kz%a~StG|YJCdno%s#-;W>LpoC!eE>urm0PopZ+}D^qjcAZx%S
      zMi%yfON@usVJ71eyfN^C)jF*01S#nYWO^TBt{Erb5?$*$Nwf!+yV|_4>_FKxNhZ?s
      EANaj63;+NC
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fEZv6kTU}lc7*RydVNaQQLwH@LEIE8Y4+jgGj>TFg-0prZZ+bMf?_jK_fg6
      zj7C4ek20=vS~?X7Je)IU-`3uH?LB|~{`d`G8Os?M0@Dq@ZSC3nwq<{e^kb!Ftu^h2
      zd~3UYltEHpMB6>vZ&+`3_M}5?T41;rr9A~wt_mY$wP(>9YeV`q8OoZ5Eei}pq3yTo
      zLD&?SiJcoVXj;$eb=Q}hrw;T^KXH9GS`~O&h<z^tj;$9W6}JSEm7pd~B#_Hu5F-MK
      zLUC&V0%KWZa813&vlxIWkgKwe*X`zx3^(l^kA00*1IPBZ?9f$mSDB1<-IhSUdO45m
      zL%2MVz>pJ4JCc>akK_U6&*$2z1YQuXvr?}d_q0LYIRQ`h>2#kx!^(@Zrn6-Bqp6X&
      ze&ZE~+$tAiiymgTxN-*50!x>-HmAqhA7)|-c}4K7!27~g%v@nV4_{W3G#oC^WL$P<
      zA^MmT$kyb(>&WLp+plp%<FRv(GLFS;w`6$g(+7BtTQ2xPXJ=EpiZp?Ve#HOy<oYyZ
      zq__Bk9ZKK%q*rZ?>D~qH(2*})wNbg4x<&QRu;w-2mtn=TTP?{9qp?GGB$(xnCU{aX
      z_#1O+c|)x%?*z{vva}BIwM`GD$(2qpT$(?|XldaX*N><&aD(?4lDxn2{zia94C4ql
      zsmXW3a0|C75dafRBlPPI6B&F@;%+xho$+bf%%7OrE{PM&98&6JNb9KY8g;ef)k8IL
      z5BIg*#2g+lf*5#+M>@NS0wq<Si6TmDS706s-JI&H>M@dE&gA-~b14c`4V?}QJl4`8
      NEPhSerg)ZM`~x^hLYV*n
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~``c6y2APjNlN7QUlf0m|6wYpfol0qp=BSYC?<^i=n0;Bh13F$gl=5`jFK>
      z;Q#1LAJVmIT&wmY&;3zd-FIeGy2Sc$?>TqQ-DjV3_Qk*d`Rz{t(<mzN2n<zft<<iz
      zucfqCP1{J9Q#qri=k>~-UTZ4w2@G@!asvdeEf_VU`9MI4XZe>X2>3E)Sr5XCfC@i?
      z0^WF{pg<KEJkM3p&Arr`Y1EqO>`2yZZC81t8`tHH9sxhW5`_Q+Zm8%*pMYm=THt1`
      zBfz{2d{0Hc6POn0kwvVw_O^9vLnF38Z_X@f)q-Xj(svJi%^jm5Fr4dDVp|{Png4+K
      zMV7`P4bK6Scn-Nt$FJaY#c`q##2t(%_>h!4R-@u0jIsr#s#zoPNIc;{Rkd0r^?Z9*
      zFEu5fx};H02a%L$;{stDtu0EyBwKcIx>9TER!yreS(a%9F@b<wrc}y-g#_drGg_;`
      zoD*(QHrU3FWxkS4n{Ov_ajM{+z{o|KjO4v)HuJ4|-L#r|dFh~}*PDh}qevQ#uqcvJ
      zO=cQxtL^HGvR;GHv9{>{RKtKsMQ>(}M!l+)^s*~YIoo(PvDI<DZj3FS&s03XAk}PX
      zWuw)QBl=v$Lp&l;;=ZsooR!B}6-#Hw#UOR}Sj87u;nkXH?P*nkF6SX^F<juO6!bOH
      zKbYcj$VJp?Y)K(CIKf;0OHBrGG>WC~>y~Vnw<O2zizg%i9exbv&6ZWtmkp`%aGPlF
      z%8_80B)oj`fI^F0xGMC1<Qm{UoIF8S@)X_0vBU{N#|Ya_)E`xBH}VUEJh;iV7e202
      zT&HmZY23!gi1OqfVF`p7-sdi@0Sq#Yv~JOo>4)(FEhlb>mP6*YOGak~88u*&8Gno6
      zceo>|Oq`jQXxt}_Ptk)}CY`fs+;$+&X$)WteKw5&#A$hG^JTdyf2J?XSr9oUO}vB1
      zjVFIa_$*;qdXY0P@)IJ@PBBqD!QItKvPx}E{x$xFSRNuK*a)XZqjpap(py3h%jET#
      zUsw1>pR!>&GJZz3Yc}7cli%g*;rS=5MKCsu8QdpE8eP0G%en-=&O6M-3{+ev^P}Y0
      zF%}%oi%*<AGwXL~FU~5Ck(mu76LOl-z*{WOb)P~M6R~dZbSdhOb^Ev}ju)`K6Fiwy
      z&toc1OvQ<*MD3W0j0ySwfVb$4srjNW7RtXNAEyH|2+=Nb)L+xu;&1Xx4B;D2;9J)B
      z9eeUUHn<m|VHevt;QksVyCW~{?j4;^@JK#NRvn^RbGDHBvCj@lAq`>AmYG82vMsX!
      z@i(!G=lnlX<V4o+B|G(+8d;|mB2Jz&anzqDTMv2m$+qQ^vQ<)U<Hxupv>hfhczu`p
      z|G}o&?_70h`Z<hMTWErXedQ*2#9Q(OME$=jMXx)P^`g%m%KAma<bwoE8(DSkxX1#9
      XtMMq*MF)>o<`Q1BBi<%6dGO+2t80OW
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2hvj6g}gQtZg=J;x@re9plhK*RESP<vR|hBxxbww4q5&8x_#TUYsqC*Q{-D
      z_yxQX@lsSFUh~2ONOf9)gm~shA<mt3nm|Pp&CHoQ_ue`8%w7NW_iujyn8h6fA%%3K
      z)hph!zp{(=*If-R*NdxObLVQk;TVW0jOo*+-D(tXY~FKfT>~QuCl9TQ-geve?aij6
      z5b9r2P)h_m1fl+{AWqRv(`)m5w7=ZyI(~;~T(6}t;&v9BZksV1+|0Wzw_8?-Sxfxe
      z$W;|0i(cJHAdHhH#xS7}wsO@t6rMM6495kXGGQPl=(LG=fTm3(0`!83=K?fi!bB{A
      zGkD3sS%qVVC9K%pEfX)}9P@9x<P{}@+>+$XnHUYC&YLLU0x8uTx5>q#hr;oS+j6e=
      zwl^JrJ<uRo@oILnYWuG2hsH>E%k3y+D$mlpB+0cL@tPLZS@#qstjZzN;0a2(WlF}g
      z<kLqa?{&8vUve=C{pcI(dTU+ZZ8i9ER_;hpU@aMVo01-06POozZnN(AF}%aak%pMd
      zCNPh8<tY~aLu{BRR~3&X6IXGKL3X?CwCZd#iuKg3!}O&X-e;Q>bnXu%@<W9SM~gnl
      z{frDN3h_c#ciCJvh8qgwh3vnYP0SxDBnsJ}=Ym?+<i2$wxbgo4rKGBfIq-oJYhKT<
      zIoDii_tAqd<)TQ38TLz<Bg%$U(v<wr$ZNQ=A@!c^$Q9CzdS!d*mF>(m%rS;>#w8hS
      zF*-rZZvGKY<R{_-Oy*L?4?iNEKQ}-spBrE*pNbB+PZ<Mb_HasXQ+hikPHAz<<ns@S
      z9wOD?l;N0acmrewh~fSNOo&U0BmEdJ4q)wJ`oN;y9z(WMjW23E{FR(SxX5{dY=Koo
      zaFa~e$ov*2QN?L|Og(NRkGr^pPw+ZEMG2qb3T&QiqQ?Io9DIk*QDlZPMmX=%cb2Ol
      z(NAe43W_efydg$)1&NA=Mwh9Ze5tSC)j&0TOEwXnS?B+RS_zk>umT5li-pR27(X!F
      z{|V7ZdHQGi2GwMA&TZb&BJywoZKUue&cf%<Lq{{s2f3dxweT9NlUF~3H^@H3$Qite
      zw{$PCX@;!6*L&dZ@0h=nEI+~(p|Ov}<a_&A7HyB<^bwp9TnT)#g0BbI61*DV$$i}1
      j$E{zURFc#z`(&|$3cle>^fh~vY{+5AUhyrY_S^pepWige
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~b16g_wPrejMHlp>-C0tvQ$FexEj2-c6PNs|UmB<x??mpWvaF~d~lm*~Q{
      zb;HKQ#KeVh?T<2^_aK_sgt)kO?z{KAd(OS{e*XIQ9Y6!C0X)IlFd2pW`n3-Ao7@E(
      zgYbD8A3YfiO*=h!r8AwUSpX%NcDPt4!|+*e-}LhUMM2eNM|l*7fAIo2qICqt?I?-z
      zmY`6p?+H{p9hfo-n5>|LvS6wkC1z)I&@<Vt?!`uMv77dFyr;9so==l1e;FMLYTf_S
      zyCn$vPCXmmsCEBUzBQhycLK}`7S19lp^CW*E@NIW`L>hfCOhOFqBP;Kj|E=Zu=>Z?
      zY-K~>8!nZI#WSa%b_e7IWoHnSU!<d~Z=ObWJ#*uKXWbHF8C){WrvU-Z(R+-!X8H-9
      zLVj({zxfrF&#ru)zUYz-OfjyU05FXUJaHJz(A&$$P(%Wow|=0ybDQq2Dm48&UvOz&
      z(Y^nGlGpS<VdhWj-A5Ev)1UQ^dC!C8T5+<rDe@k>wwSw*t9U^153!C%e3xyfqjkb{
      ns)MY!LYx)9i3LU;JA}A~MUFgyI+hqIc3Z=BGT0R?JI<Bg;<lcn
      
      literal 0
      HcmV?d00001
      
      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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
      IbsH}H7Z>fup#T5?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95Iy6#2?=gP8wi(DN})oDsj%oP7YQY_JOm^z3U5doXGs?&Hd=4WZ-GQX
      z;(-s~qY$$jw<IP)mb|k&=bV{2yT5+__zB=Xb}R4*w?@e{`XG))Bt97z><^<?A~RAS
      zYVq+%#aRVD;m$JLlR;**h|MW-ze^}<M<#6d&Scd@jAZmyD<cMDIa7Z?sKx0x)z8zR
      z91}K+@XlG1q2-4vQRXq>QLBh6$QILcGVMOW?{K*qN>~k0#Tud1YWJ%kTnMm&vW+$Z
      zRB*1w(Zv9lEXKFR3H6>z<csNKAoUwN2t#{mEXIAImEGruzBy7EVYj!;vPEloGSUPu
      zo)A_?()?|fu+?h+XBKXb@m-l2l?bEKWF}15`IlC3h|qM@V-?Fzn!Hz|sdf_l8s^ET
      zx4M9_*Y-M{>R28q>p)|1pnLYtvBTb#_>p=1v8gU%OL_G<Q-$^RJnsbOEv^xMM-bjU
      zK|S0%!Fu=&jW3SW<bRVTfG$&?GW7s!IK&2?;WD4zoY8RwS9!-mxW?tkMVnmEW7c(S
      z<>ew?ZEhv}iuKPNcr1>b@X`qeGe9or;|8{ukn2VAyCr1e?yM1Z&^=ylWsi!?;T+S;
      L%kn+A=5GH1_1(-w
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?ZBrXn6n<`42%9WPc`FMTUVJHe0YYh|29OHGsx?pwNK0GoEXg)(3A=O?-gF$b
      zI^*;gbjA;U<*SZB9d-QbjK9QRp+0wag=$AKlY7rS_v~}d^PIEE?|=UED}akw4I?Db
      zUADKg4~-ooYwXrMW3-fAGRvE$T?<1IIOknf47;4YvG&j`(%T@=dg`66IJRl5RZM}<
      z!bO3O!U<g2bT+dKj%C+I^AqxVRG|KW<yLC~iNYC~8LZgm9>bK1A)^~yqhxJY1w@{Q
      zNz1lsQv!9#)Cxmpost<r9ojUUL$eBj^BPn%N=w%e_N^`r5k#f$B@LQy^=N29R3Kik
      zY;%5lbIo*@eJU*lr)X4G4A+w9z^T;ME!I$Hlu819$uk+q$|AP8TlKZ%!8LbGw`xvT
      zDiIbjpdpE7fpFj^wH;D>;JBNnOSe-g`3f}FoTZv;*=2#YWXc!UYlrWh2qR0;Py6A!
      zXSS_M$#fgRjx+}S9FJfam!wFS1=^D@LZwz@#F&OFc!RYVTU(}0rbEw%`a>}BVj)4s
      ziAIdG)q{N!YEnYI`5%O!?*B)SPhQn9h#?kXQxKy<63IM2sk?dE!C4J4#3Ohc?}Twp
      zAa+WB&Zw<xco*++FshGSIYP;Nic=HX8{x7qmpzIS+LuddPcHiuf1Z7H<gu-6*78<$
      zt6~(*QlK20-cOXfXLg(b#Vvv=Nml6{IPQ@pXWK2B*DU#dXaU@?ELZ6#kve|s(ZH2c
      z%GXlJx%GC=s<(4ey`6K)U6H)GOA$EhTw8d$N5A0SlYWNQbXwdwLi-Uq(&-~~ro|Du
      zrIq-e5h3()?P5k?l21($?<!jH7IaJ_ff@AiM)T3oALM=+uLPOy6CuQi-c0%sof7^K
      ziHw(l#v!`7{wq}rlK|IA>U|bmKo91;6z6@IAO!*ODwDAfc<qGN4~&sdUr8V1LRx0>
      z6LuHUa~`b&bY*yzk?b-|KA#z6DVe#ULgu%>{y613PL{wj!9F0j6(+bv&bP_=4!Wsc
      zFFs`YkC4KBj-G)LtYMUQV<>sWru{O4Vw-V+k+RrUK9!~w;#oz8mh30zmaFW`b?*%H
      z{fyz&mXT)|C5et>yxx*K#suwl+Q*psj<J4c<Rk#=&vl_M$f~eM(>|`a#Qrri?ulMM
      zP|m4(I91L?^=RzrH%Jh5Mpt7`zeQL%fD-z8BNvV3)C1g<-hToZ%YYCA6b7iVT=W1V
      zx~i)iI)OHdKO&!N($!pC!tK(dH#s@g!;X7)wEmayYMrhwt}1$T@sz+Ae^7x(EYPLY
      zRZ6st0qjtcJzU1ed@(=4JU*k?pHt*7;NUSmUwMS@QACnDnTaP9FzyNRgwqqJnDVwj
      ztKPHbXz||&UlK9SXEl6^8?>TCPhf#o6LWOpCat(4<nJxtAb~|JdHXWQL7rFS&OEoc
      HhH(3D*)dX<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=6rAO&f+&c9qQ=NgJ=jRRX-o|2iKqd?eJPu=Wa*O9YW!KAOg#7l{87fY
      zTeS%XFK_m}na<9>etx}w064{-gABvIAH?pIKXI2oNA}PeyMqazi!S#j!a<IqYI(&2
      z-@PAAg%>g8lnewzv-kI@FZ9gq(X?}YPJC!(^_1_^fE<({wixO-7@G;hK`OBp{a?z8
      zt(hZ~lJf=K*IE+aB!pFEdFU}TmK0Z^mw3#zdhvC@P)ijL$&3;eE@U91ONQ*>(U9VI
      z^;ndUMWc)j)EFw}Wq0vxB*I5NQWT}u(;int9!k^y40F*$F3g+$-zr^L8t6Fm#H}=5
      zm2}}JW}#?<lF(l&5ay|Z(7}quB1#rlQMR~-b&C~LEi#js^qbVVgp4qM{D%4~9WrQA
      WHMYPRwy2g90k+Yij$wyt2D{()WPzRl
      
      literal 0
      HcmV?d00001
      
      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
      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
      VfSZ>9xuf_Q<CT&2Cg}mZ^*@}2NpAoE
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7>OH0E*6ot=CAF(w)+G>4^?rcSakA<KJDhfhSQK{f=T8BCkCz2-hPq`6%fD3W$
      zj}mXD)r}&!nYriW%r|py-alSm0W4wKhDBIt>e#&!ZQ+XB$i0y=bPq(N+H$uob>s!X
      z&2g-?(oLgnqzQ%Z_}1B}u?cqANfGFrklj#PMVo}-InRWBp_}eu{Yo~X^-7J9-U%*b
      z9x3!Xu;CEOzXbOyH5>h3_Zh@?5cpE)Jo+%`pnxL5sdv1Z@MB3x%~j5GAPhOkAWInV
      zl$HnabzO$1qV98|=mibo*F>li-8IwErD_pe?_c9s=T=)m95xL0N2i3GYIVm)$e)<x
      zo=P4u^T&`E6A)&(i4^}Rf|Yc_mBqD<9$s^-j`*v^`%rbh(EI$1e0BZ}eNPy8MCsn7
      zhk5NcjAcHxf)Z9yX0O~ihY^gjVgkl6&Q!t#ie0*EG?1x2pmfI}3kfdEHn3(ej;S+U
      K3}Mowral3UGKZu9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~6#k|yU0T-C7Q_pRwW748uw1-@+#1xzA_*Xd$8DLGg=H6~yC}vOi81~Z
      zpGicBCYs2Di9gDCW?QWo2x+!EbLPx<Idf)z{`&kCz#wu8d<;Dm%hgu(O<mKUJK6^4
      zLaR7y+GKUhD&^Pp3hyr1`Z5;^0t`_v(bTPqHd|cfB}YM!A>N42xt66DP0rwVg~<>p
      zcxx7Sv?p_g5r&|%VpO{a7?OpPh-LPuVHwUC!*J^4^utu?MTS7mUgjY%w5kXp9EKk;
      z6)lL9yi|HouC%LA&`cQx!{U$K^&%GwH3RX2UDC}(T^Mp+4+f-shV+SQ>Qy5T%q2GA
      zS_&>ObRBK_fwSh-I*d+qNrjgfVyXWPg>e~I6eOv5N5kZFL)i1KDC;Gzq8nG~#46mG
      za?52d__9aAFmYTh|EL&A*O+BP7_tSlLkJ^b^dPMu#gI5!2LUbEwz+0FDl+J0P(7Gg
      zF)f5GNPgX#B=AK2%UBD9&<9OH|FIm6230YDL57gvy6J5u*9`+TxG=#DtGJFEbkvsZ
      z80D?mVwH<cF6cM|sl4olKHO4q8+QoHZY;Lduw2J5wTF6jWu7}D3g}>yjkeF5Ca>t`
      zq^P*-+;XO0l=y~Y*cL;RAq&XROqZ%IE^$or{4GC2c;0qJiQhNmO=@je?U$5P&b(!D
      zku&vbm6QBn?S>*j{p_cw2|oH!TLaOkY<#-zK6+Z9(&{N1J)*gv-mRJ5T|_c_h-R|8
      zXxs4;Pt$+ITNVUm6TmZcP^`lPX~h|wr5SC;Iim0p<axyFz&~i81kQay=Thb)+V*g9
      zCcBSB;RAwCS%E^4-hEu#MOF@%X1>c;wC59s<bdtsX7+$mvj^XHJfIlbaTjTfVw_;d
      zG3mX1kRmglvn_J<lCoY=>@|sdgCw?T$6E~H9qrx56yAFVG6+a%bptWNAEnPAqj|PI
      ZQpwOgjFBl{oo9j=K|FMisXwOR`wjdgM-%`6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#ix@EnSwo;0+K2v@PlaUJ+2CD6TeWfYeK(acRdo*zV%)6r#`m2@~Ia
      z@x??SYGQo$U-(DFGux#!c)>K&*|T%bcfRwTGyDDL=dS=pk%>WL7%4bqbH!e>O?zFM
      ztDJjgK|VL9{g+P8D%k}-IA1OngQrEe?B#e25r)<vqG&q>^Um@L&&e2~4Bb^6p(4#7
      z>aOSJ%Q@~b#B;9WmrLC989Fn8Z&`|>IqiA&%Z%{l1VdCl6aL@`!|}|1#FY1>aD=?V
      zFqGKeJ(*>Qq}@D^gQ3Mh9J-D=v>9kbJ40O}nT_E9L&qPO>F7Y4iaTf^h6aky2#3#?
      zOUv9_vX_gTp*`c~>|)mTgtEhz5mgSu*uL!cs!YW-+WCAsRE(iNQBh2FsYcx$hlylX
      zaXe<A5B*dO#gfQjOiiCAk`Ea)kz?rnHy(p7{2lcFNdHi!KWQML(l=12r7avPz1ia>
      zca85LDX(Dzr<7N;a>UT%@fT(8%O!Vp)?Ifp{Ha_Jg=cbs``pRvB)e%~1U)3XFKtg&
      zMoJ3TQE+1h&f*;P))%j+57b9Xy}n@JA}*0#;8ICpB`XEjiV?%*zfA28-$smM(!dmG
      z$eMgEXGMuSK4qrT>Jyfg%qov-2BtAX9zkc)ZfUj1C2@&RR+>5{Xj!yKcD-_oZU{9q
      zExXt3jG8(I!*U$%rHi)jb3cY#41N3E1A^IeMQH}8Zd&!w=tlz!w6>~&r;8t@)d+)5
      zo9Jnd{50A-Q^Ol*PHmwz^#vUdw$QnOt`Bse;Sl{dlN)fI0A~nh7Kh1F5EO_bI7&O|
      zh@KF1CP)kDsgLLy-bC-cT_in7XA#P+0HrIi^$>+(a2x}K!!U@U5N|5Pi-&k8-c!N~
      zu_(C!^EFWMDpb4*mHaEU)Nj-liP};P-k+$QuHsz@sYO#%=b61_-Y3Bx)L=!c+@e)(
      zG}mF7Z%E__RWn|dO+9R4G?Jfshkj*rZ{qwnjL)BrL_T4n4#V}Ia8<)=ZM*yJ_K)54
      zz0`Ez5tZ^7U3fytY^1PEU;W3pgnU3LRY_K*G#*mwAl=i{V~y+<>iIx0A~yob=WvsD
      Lbt4%p+=liGNT^Ru
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      O!R&O-26XA1^Zx-~Uss6$
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIjT~8B16g{_;F06~t%7;SHDplJeEcmV97a!_k6%!1hk3&0cSIU-bch&e)G%@jA
      zA50X8B>L`;GTzx%N(za6@u54NnRCxQ_uezVet-V~U>eUfgb0^Qj&HscuY@UHd*+su
      zu37Rn%z0tE)fL|@io8q)n+4&CIlowxu7)t-)P9V;DN538UK1i-*{&t02+8cf*=HC(
      zYdf}gmvAxFPC$B<5T36VWH$)M40IyWjUM!BI8HeC?~Dfe5G8cJwhLaFK$eO=VW3}~
      zM#|DIl|3CD7&M?^h=D1~QaO9Gwj-bUo9ohjA=WFB5X)BcqOvMnTkRW%VO2fhY8$1r
      zc9wggm87>=k(-UQmWDHgv7p%%;gn3vDabd=zPDVQtNKo%w)iG5w>-P*XgEt4Y64e0
      z*LF&CzFjFuSH~F6Ye*9MS`h{=;3DUJB`UsLE)oV(Ryx~?n$eL!S~Vo25Qp#6t6jLn
      zG>Mx1R^Co1_@n_7?1G5c+LBIzFmY7eA*zPtAme34afJ{+O4C8$H3QdigV5zw>xC2g
      zQ%9C@8fi7}+XiMZOXyh-JpH_CJDzme4NE%T-ZgL!_nA)Q^RgCrIo*~wm#nnK?pznn
      z26NfmklNpQM%YH|BSrtvz#}|v(oYjIZPEu$?BHP$^p&db=H)|MSuuL>#ZId65e&<5
      zq&r^`wVGr{_O`rZ9ucw40qW~hkBI+u@QH>l{&w?j4q=3N?az#VgPw_ue}%!nSa}Bn
      zU-&$Pll;{chT`a?5uD<^!O<LpVT|y~v%_eE?*nI1`PN3>VL1LCgYnE)=uBE)V&#vR
      z+QaGG9um3uF3#;B6&v5iL<?#g)7!YZgPT9qMg8&?<L`W8?z*PqDi4iegp%Cn^MS5J
      zJ$FMFtH1+91FdUZX_O-g^H^wT{mfd!%$NHgT1R)W*lb`-C87xyJIP{AtkF~;I8zs}
      hFF3a^IM)!&@?f#_4i>)@6#oQSUUe>lt&OJ${Q-SkV$}cu
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Adwg4E8GgPdP110-W?53k+Oq6|v{_l$z={?pT{}kWwsz|rWCQ1Ea@HP}CgJ3S
      zb%1jqDhOV=C@3g87|NZErchuActb@21w;kB0$$-i{6~Dg@0?s(I-tMb>G{rgdEWPZ
      z-plv4PyFwJhXJg_8-COYEE&lb6X)vZ>j{0goyZ%8l^C&iC3<wz$_*8*oqEdf!z<8Q
      z*<+6BBSzv(%e3|3jImiS*oGxgzuQdPqXME&z&C1`Bcry!+=7EJm@~6#m*^LmGhE!c
      z)37RYjVURsCzr`t8**tQBhb8lhOp{lm%vfZ{tY|wmO&BauUuX~ugHnOsi};aHSN^`
      zp0@U_0^S~?`Y~T%(G1vL(=t+a72Jcj01x=v!vTT_V}XWau#hI5>S6}k`s7dh)&>Z)
      zXgCU55XU0s$0C7aDgsi{oP>fN%9BG4i?M{dj~I4ewqWbo6jeR8t*^am>dYfuK`g`j
      z{5Vb^GR;YA6n_N`$D@r#6~^>T#wgg``Mj0OTc&OsTP!_WAjezw<SE8WF@4gQxHM+D
      zz;SKwAXS;S%{A}@4RfS{VI<_)69xRre#iV(8s<V1Xk2e*jg7^zVM>%SArM}lOX-=d
      zI<?`qJLyYV29+b35<|MipQhecZV$t!t-oK+%*pDudA_mEu-9gcF*Q%+EAvC;d0$(<
      z12NAz&}-?t-Eb9XAlUZaUM1qFbnQx@&0Ub*TcaU>h9F118a@mLjMpAD3j)j5Pvd*m
      zq+lS<P30KX<8~#IJ?5&SK;8CU>aAz;qdL=p<2fq$^SKO7%VkMd#l}H%+{jR%w5EMK
      z&1_(Nlqc)yw(WgV(ajoTQ7O7b!v<`mq6PB;66qq5mGU7XZC7?T6snW;ZE{W;x?RIo
      zoJoOsS8|<{8lu$GGiE+-q@CDud1tax3HRu*h7{5QO^z3x0-=xPGlrYBF}bxGSWcN3
      zs_y9WV<$<gq==#|2m_-sv_27J=AA1?y9D}c0`%=TGiCJZw(jWNRb5i(T~3^iX{d)!
      zGMUrhhtH4mSooA889h6a=wtqj=$US7q&Q||?X}}6BQISQ0DZHhPu9EGSg~NohK-nR
      z$1(<MUTo#~%9z9AiXieRO4ZL7h`OpP;33;Gvm?|(azC!&{pj@L0{X2gd#z>VtN<<&
      zSlE**X40{2&W<smnLoA>8#e7RJx>99Q1s(d0;}FVGM6dWR7nY9FD{naT_SLN+j|LZ
      zhqX&Jd<LHt2&OCi&QhAIa+ncIj|9KY-lb?%4!Im-ete$gZ+2VCdmC^$a+0{wAV*)+
      zFn}+~V#cHh;w!kykFT=OC?>OJF0p2hZ46jx!_sgyu3@QlvP?}eYTMk<oVK;Afk0o=
      z@O4~AJJ<BB+p%_IZ(lbPEaF7c^xaaKZ)i9RNhXGhOM%!C2rXMdR=koxmI9N{FrN`V
      zyfOW0vyjgf42gQPh7aHrUS2!Rte#<R%gI|cd>0|-(kR0*9%;!t6UU1~;C2lk#}3Kd
      zoznMrIaOEHSefolz8Goc6$v^^?oQjIKo4rT8;4jgkK|{kDma&Z*V~H0bU=aAjs#P-
      z_T3<)p(SbF=lr;z*Kwt`DCZ=m$qQl%5Bc$6?JezWt2O`{9>!rh-z;>?@;zu7W5tYZ
      z<};?j%ExwMn;$<An6Km%Z8MWNLobY~J}8Js@R(F36vQNcC`UgM7<yYFs|u?rR*oLi
      zTdJ;YP6$pH!vtdFxNVgi8kU|PHB&5AN0)<KwsPy-=~cZfygw6&&mJ_j9xERS;t5>L
      zQs!jPMq{_y)Z^TCG6nnFc{Ma<XD*PSe(92@HT(ikaz`qc-_y-Yf1|q8S5aSiZL1$?
      z2QSdtb*3Q0&|Q@{&ue%Fzh<_K^I?-vm*$`@&5@67gDJbZmjss2@cIx-ZpKg-;-H?|
      zWu$BFpdenvAEj^p#9WiYoXb+|rT{jt0X>y63Wa6tbJ~v-o3(^>@!DoF5_na^2l1gQ
      zz)JG{9s%6z^`9ELa4IPn$`!4Yak?qnsCl)*R!BPqw7zWCuzE6jp<vMGjcQA^3S%+V
      zVGqlD4)WIHZ#j0}Y<JW*y9vGnvUyc+_IT>eZjSF3t~4S<oO%4Zlf8%h>7PP48H$A?
      z;pjZP6>ciw=!0mMlk+^UPNKDD$s3AIVrdEO2hpKUEpShju;L(A-b1uHoFp;XSb}vu
      zfI&*x#9nhVB@ZBqEm(w)VJW+n<8UV0Saah@VmY?qM6Pw>9IR%2I}JO~!*L(mx04kr
      zM4h~4A>XX1>P^q6H~HmT$X1Vg1wO*_j*SNSkbE`9<A>0_=!6B{sBZ#2RYikT7`T}2
      z?j=gl$)uLsu@<NEEl2AJA=Ky$sv{lHNb^1luNtkV1AJU&^TuyM69-+<tGPpB2c_su
      z%@Y{9n_mt+K81LNlGx<zsz?ly9<CFU4V}W|wd7*1nTEN10^4R<at*b;_6WFVlTeAv
      z>qFtPH*;~HAxY9QGv3@X30+LVNP0XajFdQ4cONqHSGM^^_*-tkoGIj!VXFlDaJ*Tr
      zwQ!9Gn@iX&S#G%cI%v}7hO4iaoA)Hc7nbnJ!|^HXO~y;ucOO1oReP0+%$sQPcQBux
      zYsG#>#?46J0L{3S+4ntq^ESrM?Kqn;JBquMc`--f3T>v!3F#<PWrd`k*N0=Eu(=xG
      z%>MZDL%5936(w9r{=Tqb5?{U-*WQ9tJgW~N-qE^(Ik30W8}(j~U`MNG-~hrMt(*=8
      zE{b|X3&!^iT<Q_69S`61*0Tq&Ssq%))o|1FGbhTq$lg%sg3fw5jPC99@h!1Kq47?C
      zM{Cp@_3w-N_C@Qfi1)`kCUAX~o6U$&=MouufEoJ`7UD3o=TT<OV>khilZT%$OAa&W
      zo@DMkMSh-!&dNH9XHmd&xDd~iffsNM*Kfp2Y&u?6-0f7EzrVuWetZ)*D5kFBzH=Cm
      zEzHJm(I+0tYG%0m7<ii)<j&mL^olcAz!H3$tM!z%5Ymf2N}Nky`sf8A+Z;E<&fp&D
      zou+b#I4LRPq=fxdo98OOzQQnmmDS=krLX3kboKS(mI~@gT#=~t@d+HLf;d_II+cE-
      z2B6*r5DcmB^VmEd9CEXJ@f0pkQke{&tjgH($LIuZE8&i6@;Vy6Nw55u(fVeMfW@wW
      z1~yaoxB|M}lw~4_<U;1im6N!)3Z^OnlTsErrxMIjfy_@9O<CUgw<F>1bKyEkk2F}5
      za7?C&S<r$tDrw5KP#A|?i~;2urpFW}llP)I&SwG-OyQAa36GZWcvZbHwTB2JAm(GP
      zh#<<bRMqjwG5E16lY(*hQy2UsSHXrUJRueQc@@mD^^_Wb28S>j#I}O40>8wsW&)|w
      zJ%Ok0;D(y=DSBrGVqc+ve#0DaTzna$UFLqoDa0)@_3ER(sDA>_%?KGW$p0p7Qn;I)
      zGp<K@8oyP}kfRqklJzB`TqO%<M7c^{2@(8`tMU?w;P)KK`#FL?@a-pS{6pK-YJ@J4
      z7)z({V$!#;+5ccL=?O;$lHPE1AX(2!F_83yn+8gFxyoRZ1Qut(FOvNCOcG6E8~;0X
      zmQvV>o~8J+5=mhEg(DFP;IH_bEA)7}Q!43?FKR8}mD@S2VH7z9M6Gz}HT>N@)J~z&
      ko(3L@dQ136l{Dp1*yUpc`<H_JH~z!7?4S1Xc^!5C2XJYeJ^%m!
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_dYf~Fl7=BI&1j0&N=tau4ZLnkmjkH*8Q;{|bVkuBSv{<#9WRol;*>sa|`3HX0
      z-{BW$3XD4A5Aa7hKJRYG1(IpUF*AGi<ec|B&+}f+yMO=l$6o+uPzk`N5XlrO(H&#Y
      zh#LFlXwfvCXr{ayjobO6T`&vfMaL*+tz;=~7Y_sQE9h+w7?xviRGhStG*8bc^dwJl
      z6egEjpIj{O*4Wm_A5-Y21S@Z3Ooj3Gr<TNm)}8xSs+?6&OA1|C)5>JaWX_o7HR~Wz
      zNh>^kXX>|+g|`%fNrvJSdi8&UUgA&SyB=8ut30PLJ-M{hUQct#<e)!pr_2B@E8J`y
      z=y*elf*8P64Ht2Z@gq@qD~JvZ%F1<x+wHt+gouT=dY~|@p%Yy)8`aQ*pv=ZK^m?<K
      z8g3z^5GZ-2p%7~0Qxmkv`#{5OOe*v;ldKUp+w^TR+y>y(CMF7W4FPlqIh)d;;XQ>5
      z%T~c$spJ!;vuPx9EUo@!J89&$49AlH)kS|fYn2%MHYByMpVqkC3)Y}N<rw=41Cz_O
      zyR?xtiY9|3ft}TO;qLb0K0XQHV}-tED-93u(5u-ecBPP_fUESgX0&c5%SIuSGwItS
      z%mwf%)t}$h@EL-<2M1#HSi=+d-=X{)m0?`sv7n(37idM2i**W5EtegI%k||tGkr{3
      zxtw_OOv6*$Rk$QhubYLG>6oc%e&!n@;9lWqlR>NwoiXiv^l>`Pv}`&?p_I0rd^KFp
      zHLPHjmFXg|vg)T=VbbtGPAiPn4O_x9#-h2Z^;Lsbcj;~F>gaJhXFCn%o-7w+HBmC1
      zJ@&Eiwgl^ihAn)f&|&2>O%eAPc{LK5q@XozdiXqLCzz*m{x=gT_?$haZktsu?k(mH
      zi`gyKjDU_eIGMH!<!HlhY+=ExPg6qzNhyzvhAb@B0B_v_&Asf!IWrH~R&O<yr3-h?
      zC>F#n@&V)&25U8XmRUmqHt&JgrOn)F**`d|_B=c_*YnU=pS}!(FjU_=%gJl17TCWx
      z?23~#7cA)k*IQobJE9vm7>*8pD*f<Di{s2EO~rk)(YbH7Ilj9Uq{)B><Z^L^$;2g&
      z{ha^I(|*2Z^gl81VrcjTS5EN0K7E8Cedq`y`tT9Pbo~u(9An}LVSSqO@G&C4@sJPG
      z97jnEER*6HAy;q>s~E-_8{~6*h;`iIuI`Z_$`$#|NH-QmoQX`II}=AbxXN}^l~*FR
      zxEa<XC%6~+9Umz?6FEa7W9kiJeCGMY`FwtiFY2=TUCM3x_Z|IziAj9#N*VV6Yf{2k
      z#FwPgFoGp~MJfC!w-&Jc9|RZ_kRW)H0#ffRfE}h9fn+rTBYI@&1Zy?lJ31JF5k6y0
      zUiZ1)Wf@3|N!V#19I1Ic!lY~v9`tw<U(;j1w1Fz&Pb8Fj3XyPn(0_t&?{~Ilz0&zB
      z?YtuJcx@)L$l84E^3HiUHQo@mnG4|!Re5Fhl6jF7hwuY_q>^3?;uR!pO74AC)h|@l
      zNvl~s5}G(cDxx1F9hx}C&O?7q-JqWZA;Y{3aT!|G#2&Hs`4K<BJsi49XFcqi(ph@(
      e+EqHs&z9qs=PW;24wVkjKdBQx_e-w-<$nPLgo-!-
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiw%}T>S6ot<uv9&d78?ALI;zGMHxK>0EDq{QrOTpzNy`<BoNf{^VYq=<bf)C(B
      ziFee6=)%REx#!Hx<(vEV{`?AH59?Jp0-I@Gh9h|=LwRq)DUl9SGY(IBLrrpUUK)C+
      z!V_qG-pOR1hL`b(62sB7Fq9i5v#3bMq;CbpsX#kp*DdtbpVJ`v-DF>&a-ec$4h7up
      zoxXr~TnwlV7mGe>sMjE{>|+iUTQz-DG0#b)a=IudG3lO+GZF|GL1ulamG$4DXNHQQ
      zwxa+4$RPFWqSOg>mF?I3Ie=Y@jSU8Hd2$YpEDu+(G^~Obv+};c)fwNiNvrb&zvIrZ
      p)Omq>!)AuYBOf>jSOa*h#G3NsAy%QV!ioR&n0<?#z#6NA_6OgyViW)X
      
      literal 0
      HcmV?d00001
      
      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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
      b;<dS9UY`RdN|@LTn72H03LN420UZ4YpuCWJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*%}*0S7{;I3e$leff`Xu+D2Q!A77+0RG!aa-rhX)RTs$r9v|U@bWOu9n14a*?
      zym;~A#f!#B0wFQP#H)Xl@txhxu&xluCObRx&hL4jdFS2Ve}4P~FoRnOC=7Eov#mYT
      zU+9|t($O|Kx3rqm(C$?lg_h|&q4}8qT{2AmkUN%9wiAdl3`(j>JGDTVA#RrIx@9x4
      zB2ApSVUJBSjFyf}wm{n#4byOLGd##1WB)O>6m#ng(dAZ!C&AFAB7u$+B1o%9BEt~L
      z=GH}|S49kQhO{`!qxSO+ZmsGYO-_+gtE@NIb;}TQe=#bK#V~)gg99o^=TxejR3DQe
      zS>w(fyUb0;^-@S;2xk)*W;lOjy;PjT2-QsYc~)S^klvDR^ClgmXjb?uSC%fKHxPJS
      zt=iln|IuvjDM2ZU-Q})|$bU&iRtP65-kRs~J~wK0N5m&oOuC8d?vlrsxLz^L8bc?E
      zQ302|9_Xjp3iVBcJ9VqouGPKV)Is6EYTYO|Om34c;dPD7TjCTRAo5;OF(>k-+yBNG
      z`htKI63jIf*9Frn85t(uE3LLw<^@CCb0*OCQ=+{Y)S_u}Yq_c0HW#-3{~0g>Dlq+0
      z3O&?7Kqezvj8;^NB$1+bC(YI<9;GpzpV)z#-$i$Rcn3XOE_#CA-9m=FMU1^hlD)x6
      zS{ret)96D#%?QRRl2+WW0ZJAj@j;ySQ_RxHDAtkRhPsV2-{@O`(2k3B_RiH5wrG#9
      zNo|G;v?44{(kNm|<g0iG$oBzKk>n`Gd~(Vsqw&4?_YnIbz(yr|@i5opVb>o6{J!hl
      zVSGN!e>#xAEcqq3iok$ZwY*<EZy4XGhV?!N^akX4reqa0zZNl4=m{6{O8|~ZSd(Vv
      zsO;hjQof5WGn{@appcRZ(^5fRq8cW51LXcC&PX!UKC@wdFTn3##MQ(2`7r<M0A9fj
      Rw_R>xL7dtx-4GU``~_{gFMt35
      
      literal 0
      HcmV?d00001
      
      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
      zcma)++jkmO6vn>;BvYnSprwsXFG@{pxWtmSHdd*%DG3P*y@imbG1kK{z$9ddFvPfg
      z@j;*bSNfu>Ca%`y^3ApUqg?JYGa05pR{An?F8loUx4(U6{{8ROUjVM7CBerqQ#ZQl
      zO}@+1{5vzfqiOAQ-P}qqR=093!+b>ZNoQQt%(kv}Bm@}Fx+g@Gv%@fIHuTQq48ug>
      zSZs#E@92hZ-etHIe~b9S8#yzHGD9HSs%k+noK!G^Q5mNYmJnjNa%_495u9c?Ary!j
      z7-I4M41IGMenb^WILmNmAeiKY3%a2_=x$fEc8OP-8if^FDsPr~TNiU@F(6!GxN&^V
      zeb$p@ftsZ?+$W73=umfz`l?<v8w}?hc};HA)63RQCXo-4Kkq7d4>8heYI|mZf8Xkw
      zS*|unYt&|TO}&|3;+;m3?_^}Wk4Xs=45uyky_*U?z*Po+T_f|ZdJ{gZY-*~RN!UP3
      zgR>+d&T!ssq$nm`a)pRaCKZh1f>1iG;6q%a%H|hxb1Q|?^K9uUb+%Wzbz1c9iDp!_
      zc9uqjBF$5n5pBB8u;7*D_|OB0vzgxX2wtKrT)3&=Biy2Lce+&WZ7<iUZLr!Q1_*H<
      zE4YnM7-Vv8uDZ(&mE8Bo6FGWP7saiy9P&1g!DluZF7&DGc}I66s5W@pxd4H9Hj$Sw
      z#}Mgf$+(BC@MoT3B)*;%^)ciWT*M_xqtf+ZSyCrx9S0{-Tt1)3i?aoBw#eYDiO;ag
      zO-@JG>6pJ&s}Ueiqo!t%C@OME)9Vd#jcT;+U|GQ`sF$M+XM<7c!i|E)t8|G)_tzDC
      zWySE0su`wO`dYzru_RSBYt4qwIb(&+7x~`dRN&?h<4)Oo&RnoG1vSBvxA|Uwn9~yx
      zrYqPy40Bs0FSojFRm<t(3y*mIl-GpS3`*WG=sGrer=!t#9(wcti5R)<r#~=@M8r>v
      zMki@S!U=i?X_kY}+7BgDze7$={{iIyXMUv}AI{NJrZ@0_&K5C7qcLk9!aF!mGaw{B
      zAX;Ohp$_vWiWWI%lP@8^#O2gJuKbOu;`Bd=y~fm9iq;dqA$5Rs@i1h1A2(L%G5gC4
      zI%($~BM$HcVJstx6-=Ov89cRg#Ow^Nj#+$)4CN2gmA`|}EJb(mxua;2Di(D_ldo}a
      zE%4{an*ZX;0q*Z(p_guyf`JWBnNb%X#UhqypCOMg9Ox?98K4tk3!1ug`2b%I0ah$v
      z(hhZjVe<5$l`xD)cx<T)Q>~AwE=Kj1oFq5tEo234qgFij*m~<0Ua^B5Jj0p`$XY;P
      z+yU6HXZCBOQX2p^J-~4n_>BwfQ}k>A@T~_BbOHSB0lPy1m7@R~0}6f^3Q&&%R0jY*
      g4h7VY0yG8yKMw);utkmZp^0sJi{BulkKTaqe_Cta3jhEB
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTUQfT6#fnY0z;IWU`qhOTSF+usx7rxTkggpRzVPJFGF$?#w0UwGSRlHPkrf&
      z?Tb(S3w^R()vQ(4>JR9Ts{PJPm`pCHWv!WE&e{9h-`@M%XY$X#fBg;MJv<DfP2gPC
      zEGHi5kMxB8*hv(nv=dn;msm~bR&BkwXQWDtmYFfKWm|U)%M7DkVBEKFX(Mnvo6c>d
      zY$?qHgC+UMNJ)Xj+M)4UIm`+4Sw;O}SuR?6%f4ZyWnLh<<`XaqdR8WCn{?>kHJpN8
      z%GDMHh8$ZrOZjq2noe-N^NL{_&Q*a6vHwYIYD=Jfk$g0S&>KMy`UFC;sjY4Z3`Ed@
      z&M=M%oM@oBWY{tl;1I$~5P^3MgLq2;y)DocOR7H)EgC@>T_M4)De&<KA6+53xv!HE
      zdUgr)t{J9WFBf*Dy{Yf!S?hr{E2ZbRblXtx)x~ya&nO9;KRn%omeuv0bq%HEBZ2O$
      zbPk#sjZM`$ap2}{(td~n&>c3eP^5IoAgOvKaFV$N{Jah>lrtG=%d~4V7sk5+qYag-
      zGtn@ObE;SgflgH{)erHQSCZGBz$tgJMz2*Ejn#ZVf+@rWBCbM;x-HGrcLHOL<hQIm
      zvv_q9bv8`mBZ0Gr$lb}+8Ed$VD=M9j1v*rHn9Wr_Yy929Eb2vl*T@@=Axm>jHLOEq
      z1GMFDQ?jV0wiL!Z8{!vqetXm3Q=u1C=p}*4*M(G~Pw7PpX!KRo1ddQ9!9g1fO2z9%
      zZJS)jW6heVGZ=Jrm(k04XH(5`#<B~FaG(lVX%!OlnGEN^H(?iUu$zA7t!y-`p;sMR
      z(pe{}o;SWX%&ZULX@0>fn`!1f9E^CIqpX|RyqwdpfjePr3d|hR@zy6|1fSy;Tf^9%
      zzJo31=@E?9Y{2YxcpUoKHCrf&e-Xibd?|2@L7HTwN*}0U)BapHzJ?ygHv+Lui^
      zH;Ozl93HTx2zHTT+3u__Ew3ckm#M6HO)kwO>zrB2yO2td837rq`888}v%S~Fo7xJ4
      z2gZn>T~i<pSv*jTa+H7Uo*K^9$4lb`c04xH4zWA;q><foIFcJy*-pt79wb!dVISFZ
      ziV7y#I(`_?&Wm3Y-l4t&?voz?_sNr=&!e>LL4@}se0$2ZHa<U#S8y~w{T%)AeGKmO
      zO$-bT4EN(@sDk6qF;c%cFzT+3HLRX+S0{caTpLdEKH?IYC#gk#eU>qf6<oq9uHza`
      zaevqgjng>8H<G|vdhkfbJBU>YCfs)>75@|c&uHX9D>HBu6^zP7W$nQTbwpR4lU!9*
      z>DkBhPIR=Rf|*8$TQ0<eXXZ2M!Fm4ZQLsI@!2jC#{}e7(VQ<n}6*?S`j=sR9M#ya!
      zGVYo9kYOJ(T!mB}`hege!p`EuD)=?}DbCtHE|YTwbB*}-1C%u%U-R)bpYklOlKLk^
      zYbW}rZpSxR6GfgiQTQ_zEHnm41rq4-12oq}RcDz!RSB%Jr=FyO9UEzc-gBWFJGP2s
      z)j7wf(&KdWH{Rh2L$yIwB+6@o*BMG-<QZ>c>NZgeG2kXvz$l6w2%BmuyWu>YP5YTl
      zyJc58yH3q{tS`7d2D<jKwo}1+4b_v{4*}v`RV0C%Z|whLOMjl{etgA;@s-YB;C5sD
      zpIZ8FVY}+Dq^|r2_i=Y8{sQ;Z^#{JHAYFs<3iO0C|1+oN7xdyu0Cvz%i(h~$>_xY^
      z{PDPt><$kDqXy>H<!Jz*+Xt9Mz6x-gJyCKyT+Y9`2;R5^<y@#vpa#>OKw|jgViB<o
      G#s2_e4#vg+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTUQfT7~Llz3BxEF6fJ`F)&dC{rP>>4Rc_Ko6!C_%rNiV91|~CcGKu0tyX;GU
      zLw`YE?OGLCb+y|1(6#!by1LKIBn&omEqTbyIrCli-rsk=!{7h>`a6KLc$`E+V5sO+
      zbE`(p$Qcj)Tv<vlSM=9%Q-!rD&nT~0W@W;uS)S{Zq~j;iD$v`oZek&zJBDx7<YL7)
      zd?_HN1$GzYvQf4DaaprW?&b13CY>`qDV=)Y&|yR%SqNM!0%sQ9+Br39+LmMa7X?}d
      z2JZ;8j=2SyLMP*rtKzI-AG(rA3+xTp*@jch&8=5_S<<l|2Lw87*C^zzCC~8I1r7}4
      zV|Ko0ImMB|I~oKI>No^lpi^a>qXw3#e#yEsZ#i<NT3V9cEn~^%PCD<JhJDBIEVYg{
      z+eQPd8d}h&<1lm$@8VbzM+HvqAe+B7B^~Km<_%KOaU3VeqbU8`j`g4_ryXAwr5BK&
      zZYRX|bnHT#0^6@+AOIWIY&wEWXs!N=MYT`wEOxy{vG!o0RNAnHVeJ^BcVKWKR7-VO
      z-7PAu!gE?jJ2ZvojLyCs7U&M~O#LU;u!^;V3Wc?%&7<KQ&L^Si_z)in>@scFA;J9v
      zgRv4`Us{!>Ka#{J0zEsUB{K3G54$-|Q{ZqtUK5h4mKStf#AgDURk<pSf-NhQhV6Ji
      ziObB{I8*hH6OT+;_AS@Za0z`%rg0rfq?AmPI;L=y$~I(b3h68%y`5G9dwBlXt@SDi
      zoR2zP(XvWLQRc2xmzSj{3)5;f5~&zxJv=_5A&;3PuEnQC6K@^YaYLY;qTV!k*x01U
      z;yQ*dcRkBj2P8CMk!}hcZ%%B?;Ha9bddr3>HO%6cj@#gg?_h>4P6y*T>f1z}#65v*
      z^T^v+*L^hH#eH>17ZmWVCT~KO<AKc=d=NPD|E2<MUL?oCH!UL(1P(Qd&zUmmI{u_l
      zvTRGTtqwFkZQt)6h*~=wZ}qVi%5&Mal{MYd+YYSSq%zB#7F#3lwo|E=%dY3k!u7KB
      zIOSX?*0B<OJQ39Va?P-8Rl5d|^%<iSU~D9bgHheRrsEr&NTRfT7zb$8cUOmjC0;bk
      zitzfP69(*R!i~qx@H}IEv0^>uneUHERP`-87tCJvZ&Np6tLYr@jT;Mek<>M}T9IR}
      z>lG{tt;n>J4DUH@&aHZ;oV3(%KivEZJ*|S`7<sht7H&aW&0@YK)Zq@EoP~ULa@7Hy
      zcDuPc%cuHlPw&~p-c5A>%tZq4@OMuTXp~_t(q$Mu!54^>x`+5qB#khW^ihHKW}c%r
      zvxy_ma5A%j_qU>@(aP^*{5{9?6NE7tL{vcNhe2diNOf%lv9lQBQbEi|v3oMV;M8B}
      z$S_Cl8BVF?20nO&kDt;ijyX@tGt4j>%g_^LNT`b-$nYsfq6|;yo#0+>6Qe((;{`6w
      zKgX4qX)&MwlUc^1q!Z6DmVNyb+On@-s_mzA>cUC%)3u-B)iZ=~gaCkh)PJ5bF3{>L
      zLRsVmx<Hy{3|6iIi-VUw0@L_Bf>mSzR4x0m8~Ebd&>xs3xS>~=-N4+_7q~m0eUAAp
      z?xDh~tk)VfwE5qK6C^qs1_=|XaQKpNI5SwsuL&w466#zqcS7}l0K!Be0x?WVszRw3
      zkW{7klJ6nOwqU;&Ba@192&}-0{1<4gNbF<PRxkAa20Nc2ZYTRD@NWs|J9g+37Vi5P
      z@O@EGjhdG6fMIu$o=0sJuoYCIM5A1*BJKqAhahHmXwwiQ1s_!iGOXbty#*cx1lRus
      DF+85v
      
      literal 0
      HcmV?d00001
      
      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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
      F{{rJthf)9l
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cOH&g;5dNACCah5~2)<B30TYz0fbS?C@KLEkqzr`xo;J%E2a-){ccSs=|M8$F
      z6&3a1#f$&QvS&B7q)4>zu~j>d?&)v3zv=F8KQ^}jOyOo6U4*M8w{ET5Pi@P7rmUI}
      zo>fvC*4?#@McF9UAKwyAbxnAqk>G)_d0(i>IAVlhZQ8J8#V!e1wfvg2@_HSeBJ8;?
      zU8!aXMmn=hh|Mux0zHJD2s44bte(y`OzcB%9Qz65yYnlFJ{%zIF9~(0>Q!vDU{{1s
      z7)-Bb9?b`Fm2J0V6_h94QcmOdCvi~Q^hY+g8%nsoth&C|4<>O)>r;{bo~($a=QZIc
      zaD;G)J<Dq3EHjqXjAfazY!u8d7>nZ=p?BM(xw7s1aU3U%?ch*(!mflg=G|IdvF|L1
      z<0PSP+dhmafsybH|Hz|<o>ajbnlNxWiEfM%O{UxVYL|2%b$6oQLj`Q)Iv}mK+qFwN
      z*mV&7M<|`hz4Ou)3-wA-cuRJ%EI4E4tBze>wmqr$O<_zuk(`jZ`Q0USheFG7emk}s
      z=2egpgn`z_x?fxuj>=_LxrnO8b?wM@o-~z&gAS*WYF1|6^_A^9?6lPhDX`xz>z0zv
      z#c@8YfxqY)CM-<rbekb8rvHJF_W1OR7^0!VUT{nJjwfr1Ynoe0Gs3!(Wh;0hk;}9o
      zG<!n=SD2)zjEBP(He6WDGjh4=M6|Zz5X?fg?m6O))EO`knK!#YP?m&b-gSi+B)RTR
      zspwdE33pSBfUn`k48(ZVjXgZZdG`YSyaHw>Qi+slyhW1#6#oOM!?BMzx?-e;3cNVM
      zi{XMn`~|}soO;b>T^QqW0wzFj(M|8T^KN1vz2_G90sZt5L$rl4`h*GkjA{CUaXz06
      zuf!Roc}K`FLg>yVp1U+|?4=$9bnPnWYhXDTYMYk_qUJz)}A9(72w9HPcB-@{s&
      zIQs@uuXbR4Yr!%jEE5-+SQnxF&{&sw)>uaB@=lQNEg(h&V&E#S1xC5x((Aavv&j<T
      I=0A&`pL9a-=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      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
      Uyr2>N2`_R~#gq>dT!-j?0WU5o=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cTTc@~6#j-5TGn#0T)d$c1Z+XN0*Yc0O}H463d9l&__QoT9cZ`B?o{ie|HAv_
      z!53qqK4CQa1N>3OGrM(Zpc1@nva_@2%=zY=?_9qB`1}pPFs_GC$1t9?O8Ta8&(Mwg
      zQZI6D>sh&_-&o&T6y>$j#xyqz>)h`31-ES>xt%GB5P}RbWm?un-pF!M(4C^t=hWUm
      z#n3PzEFmWu0`bH$LvV`l!f0e@^fALYMCy@bSwj<ALTF~_KbT(;wBj&BbC%25f}J<y
      zypiV)LuY(7aVPD@l{2iYo{_e&vMGh%7D2nRY4dGn%92}-C|HitcSdkT>7%~>rpWW9
      z2Sx6Lag1S%JWDF%Br%p$j3tS&q#w+07z^P9L(7gwQ#r$NLO4mG?&46|+{k-0E|g@k
      zB*}S_gm9XnbqBx;DU5C}iGSqMEpAX!DTx{aI1@oVdKnvv?<H)nqz0=86YUS>(vhlx
      zw7S=BucU@u4bgvuQkC4278ai`<=42qWUS>ll}x%|8o6b|7V5tu49dHLDl(NmSVh<9
      zv=kM%X;?FsYDKrb82Y?q?X;dNS5=xRa#L&wZl@Bf40V$3?r|C0_bfxZNmV8*ojYea
      z(y&a5Nw2Pog|$s?%2c8jp4alJ5YBr&@)uJ@gN_kZjiU^U@qZw!szQFbObH9{vQ$ah
      z>7k0!8z9r%F>O(lGzh3ED`A(U$mwocc_nPUdZ2_cPR#keAM;3vWfte?x?I8ZudBvk
      z&@zRRZSq;6s;0v?uZ#}2l^G&)mc?ziG1N$l`p5j?if+&~G|hn^?ds7$Yl!|HqK$UI
      z=s+|a)q<Z8p*KozNAzg$D~_)OqFou<oT5!E6JYeX%QkvGl35-4XdQqCut%t8k7-;#
      zK@)pQbMYD4*mHET7wBUzF~DA7guO;TosW1|;w<9y$B-Zd&z&*))+yZJJGHv#%2lv8
      zu4SjEtyroPgE&Weh9M+rRUu7Mhzdjd0)1s*a2vxPc457(!qR*!4Ht0H#Tvt<3YPjR
      jtU&bgZjkp?AORmFfGbG3MicI(SIHf6#f5FcH8lPN^XCMY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKU2hUW6g>l2%67Ggg<7rJDppvut1rf+#zd<%P4FY3!PvI}Mx2&i$nIj>H~*4}
      z*hCY5fWJeHQ6Ka{AB|@hEU{u@e3`j-?!D)pd+xmX@$xl*OSqUsOyF|U?b;jiiL~Wb
      zV0V=A>}IfO-)?N)*W0!3qnoPUZYVFm>d2;AX?u<gDjii%A|a5D>RQrm+V^T3svZa=
      zT<Iu*OnDfp1fF)AO9JCto(^QK#kg1(NIBY3Ydam~3uOEG-9WeO>z*ff%GwWDVyNvv
      zxxQ|@Od7kYT^(E#$QAyCUoTeKeVJSh#E~{(;;=xxP^_jPaKuCs<4I&`M$CTiWMB&E
      zFz={|6pYY1W@4gm&6+rXF@edlcGcakQ&Zkre~L`GU6-w@^mOPC9uvW1O|n<Y|0gVm
      zo{){koq;x#X2h_?YREWm;w%<8B=h&>_1Cdfq|Cw*Fqv`dmy&$q28>F(>($kY4%d<0
      zzwX6QB-X9EuJV>!()X30#G=5$zfDE8_I()4Q`9&=UV=CEq$R?gL^m~$ZYs_@&WMSF
      zJP*-(N<XZ#tX)i6@g6ePD@;AyMXrbGp*drfdN^*)GX9L&F`VFek{y5#?D>{^eMimS
      z;}kw3k54G#GvmNqAD!=W^w=k2Cn7847bEj|oF1^bK|jWrVLium=>^U_7<MzF$QO3{
      v8X@QUnS00v&T(!*w8BWdnUQ$ki1+<3c*O`WM$X~HC7chLv4g+`*hu{Znm5&_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TXPd-7=FHHo3!g<o6wX(iiBDv4YUzK1X__EAPuGm)0z@+#@Qy{Buls1%w|){
      zy}!acue@;_4@^5Fj^6t_{2kWk+g&!58OO|gr}y~0&--rv{QKA60bEBdfdPT3X1iB-
      zW*(RY^SM{(Na+@u-d>^D*sD0Zj<-oc0-C_6Z)2P7W?^IZnXG#W#0Ad%+cR<z7^v?H
      zWXh4=+BciBu<Y25yXG{cJufh{P`9nN<=qpA<z}h^+A=i>oDsP6hTn?iGG*U8cES>3
      z;2r~a9R^Yc&SFd;z7WP7%9Ye_raBCPaRUhq35=Ajwp{P+?@D*u+_j}Zs_fKFyK1_Y
      zdWXWvTpxMSH9IY<-d&LgR$b03p!$Quy6kwC)9xlPDUgofF79kcI-TI&QK)pC2(kt)
      zV@hCH!F#+dyPjY6lOaqCT=WH5dFaV@mtnJQ$IEtmosQ#rvY{h`_f?=POcf&YJF(@t
      zR=ep#(!7?{6__sne?LimyjyprYzv(K&pL^8-|2PbnsY#w21%x0xi8yvWtYjcoG&wc
      zSw-5??9x>CpF1rnZT5Iiz6h;#UL&Ja+w`mhS(IL-xU^{<N}KV5j?FwR3B1+pYr^a$
      z#o`?UH}R2<d3=(<0`W)8zd2wA?%`8b8UzZ!GO#%0Qs)Z+<5Uu+pE%X@3dfDJZnNJ{
      zOT&1G)dY$hmMC3hVBkI$mBk|iOTn#dU=53e{oHDJEv4Hqu&E^Rmb98Jc3!vwV}0(U
      zXzY#NZ0vp22`L#+WW-;;ghln1({t<cp{0g5dHOq@Q{XscoGY$Dt_d~t{89|=!~9Cf
      zD_@T&Rlo69FlwXO)Z3|%)MyeX$4LHy^iR|b;2if0h;#p#zPIUnhf(fggzq$4FyUK)
      z5zpd0?Jw}H@s;s2REc1KlJWd8F6NJL=^LDRg-k8=?lIo`qn{x~A7Fv|efljj@{%8U
      zJn%*iGt@H<^0*2i!0M)$RNxwB{c{cl|NJ04uZQP{;d#S9p@xQW1a1+3z`_Qr<DUnT
      zKO>#bOlsN@ZpY@1aQAx(0|MeS1wQv7Wdq{~Qc|_u*C$om=^?O;l`!}Zq<@gUtNE)h
      z@qnwu^%>VXv#h<ow|>*tW4E;LFgBak2;*8>Qvf!;)<jy1jJ`ejYxc(oQ_z$usoEhK
      yHC(|HmR948ed*)88RU&{t`dKRsM5HBEo>9#W%_)<TMW}Avr6o$aXWs7$NvB`Xhr$}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRO;5r=5PegSLM@1jpP+K^08Oyrtns4Jkf0tg#KhB5Hgu&H(iVt6%L6g-;1BRe
      z8E4Up2M@->?0Yl2^RaK<KVIJeG*LBS5Kac+#C;G`;fh(}j-`y;K{9kN`@@bGNf};7
      zV(cp~K9^JF$-}#5^IXN_Ks;TI`qD(2P+VjOA{@9ky$9(fgr!I%GA0=J9d>4_pZEl7
      z5i-711D{`HPE@FpQ-WD*weCChE+Ku!6)mJtuwh|^kgC<YIS^KDn8<3jZX@@_Hf$^*
      zLs)66P+m_SdosEey+9Jy+9OW{T@fkme+ScvuXvu*_J4kROt3nmN#w~3r8`xA5$Q+^
      zLa<w5D5JAL#IcM`>=PP)>P{&9R2x;6AjP}W#=qwiTA2m1E{w!xVVTip7QjH7vE;lU
      z@08~#I+Z!roW>lbXO0`#<a3j2fwH_x3prXwfo!Z(9$S3peC1;sJM3|#ML*r8q&LA8
      XG}E)BnD4S@po|Km#WN80aDeP558;O{
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`(Yg5xe6g^8z3nlV?2`DH61(b?!c`0v;<)LLj#4l;Plt8<Ibc5s1a>fBiXB<EK
      zPy7>(cQ-LDAk%3!dvo^ObI-lWuRq^@02s$c6jcoUdEq7w%o8(Vew2wL&YeVF9wwIM
      z;hZa_EjB0;MVMjmO5nU*JhBBB(!)j=I?of9nHVBjhntc!w8c{zRWL<9k(Q1n@{_|`
      z4E0%C2%eQ`D=*AKi6InM;TBT0ZRPS@uG%?k@6(bkBtyr4NRml~uOob#%aobn1%~$E
      zG{u%|hvyyJ6*-a<PkQ)sh&eNR_z$6oX0y^d@l*#yZ~3vyOGK7+Nn}Hb%Qcfwd`=Nl
      zB&wLTl-}UXGM5_;-{X$Ma|>3Hi;`sv!dAz3H8L_~2}{l}wEA_ao_OwQZ^H9-j>ix}
      zw}B4yl<QZxpbZ+@kg^0{bBh`7Y?_$@8Qz?-vu0t-bS$;^gJHREk${2JmEA2jZ<2v!
      z7@EAkRY<D^!yN+y7-TRg9w?zg%HSY68AY5N3ueU25W^5g42<F~Lk+dr?_6tq`0|{@
      zDB+laC~62x&TFg+jvKh9g4G4D@6DIbQsyJOBvngov3Npb%Mgx}{p$Qv1JCfB>O5B7
      z`k7Uw8u-TLE+_S5L|34mD~dz~opNK^zzkk6)Y4gRYL)-xd0)>Q(1=f}nr98nshS(9
      zW{-u8Dw-k}!vq#opBEX1E9cxloUGvU-ydDYGLlieqBkaxSQc+!1+Ph#a=@>>y<*g6
      zw>Ndv8@8gY=9ncJVrkoTvV6(XbF^IfZ5UHoaEodV(Z8C$EcFbkGXSGRh|wBG9SmBb
      znxofxH0ZU_Uz;=zX!h3@wCd+=XeUPM1v=?^o$hB)ML!@iGJ1xt&vaLX8+487Xp$7H
      z;3n<cJrsJ;M?1ok#@k8)X;Yn6T+@V6k%p0xFX;b?p;HW>;@(BlHPmBWlNuh}CuK-b
      zIhSOe;{HX3G|Ae$Le>L3)U1#2*yq|OiK@iDuXyqu6FVesswwn4(D<_Z4D+X0Drf1U
      l@_=__^A2f!PiF0+hxWbrP?5DSFryDCtWq|HH9A*?^}jV1W10W}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h+e*Vg5QhJ0YSPANt=4)zR8gve!NZjmZz_5dL{PlnrfXf>CM8W3d@2P|@WKc1
      zp~PuoTSX*fnZq~#?96_AzP$t3!HR(dVYTLU>|1dsY;hmjEhz)L7S`?4uwEA4ooJtP
      z#6Xg;{y*q9TfQf~FlKea^l!m|5<zzZDMCrmiW^t#9x6|TM}%C_=@-R(shdxh{i-yf
      zVZ=fjqlBrST(5D2W*p_ovre-jgG*6qaEo!rcSYk$1gh(Q2b1BAY7^F+|L5rsULuf7
      z$o{z+VWbtvYZ(NxdZ8Y;SH8G0ppI2jdTr%<r8IaO7G^L@uz17e-j#Xc0pE|7Ow41^
      zzye=>u#R4hg(c((MoorsQ}e>_1g<<$(X_wbY`a^I0=L)rAL19+2r!Uhi+GhLpTle)
      zA;BM@Z*IN9dSWYq44-Bc-Q&uAjIp1ODP%Fu9`l$$jx`9AoQt(~BOgd@K4a<ybC1l$
      UYC30tgGkAW?9{gsVL74-Ut@EbPyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&YflqV5Ixf_Y+IN2TMz|B`v4XMK`lbCg4WbmN=oG0w!J9}?JkyE^auDS`~`kC
      zF<>+rKl`JMbGM}rq}jCDnLBgNnKO6){Qdq5z#=wu_y}_ar(zyhCzffwm*$ZWWwRg;
      z&8PA(u`hCmS@**W;Z%}RlwR|h4vjF=wxzYSlQ7+id>JI6GglUt6ojF0%BwG0PQgse
      zvh5V&kqj5C*^VvO36r$~CG{efSE(i3ya>UME(1Yy6NZ~Q&ed^c2)*dn(MK4oE4&D3
      zU;u-JKtaf~^z`||k-ZQY)W8Tv`RKTQq=omC(w>y<h?kX8R+M+FY>{W`Pq{g(n6b*X
      zifc(t?%T%%Gu76~i(-`dae`LjWe~=zK3!@9Vc^I;mTK6|oU~nM>qIz`z~VDO7C&v^
      zCT<ae+`Vh(c{(Ms;rpxXfyl|Yn)9}SI|vi#9bqIKX^?u5Zz`f9;yR*)(YlF3k(uhc
      zcr`j^xwU?(@@Y|Id}W4O!n^?!3xr<QQI(r;OC`(669&&2o3BF%5!_X~T_P+r?Y0#;
      zp8S8Hq}uvDtm;@{i|UdZqZqi42keV-&&#&np3U7IFYDbNKjH?i;|6cU=9vhgv|B0X
      z#I~(=KGEjunOCfsVrTvQ>)@|YBMmwN{Kmvko?qej=kW0ZbVp-nFru+j^qgYo3uk;7
      zQ+e(O&(eVvbYT@&IU25ZU>p-1shVq;1QFYhQI0hww}$_bITikL^ed)*qc`;pGd~b{
      zTMc7<zMo7vr)WPx@AwQ&JHz5Bm!IKbL&dbG`!W9~nEeSW+hWdb%yMkv8J3W2Qnp-E
      Q7U1(WrHr3Ptigx%e_K2rXaE2J
      
      literal 0
      HcmV?d00001
      
      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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
      H?Ad<-t@Mps
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~k{{7=AVh1j0i243&U_NQDz^tWsMIrP7pQl+s!#RIBJAIfet_944Hg<Ft+!
      zUikR~tTTSxwAVT|I$k*S)_>z4P@mm%I0<xcn8Rjw-+kWaecosHuYZ331Hfri;)n>0
      zmz`R6%iK4!<_BJO*RrbFvbUXG@V4`tu3faQaV3tJz{%qS-JM<6u^i8jZ523i7_fmP
      z(6(n)tfFU?1Vllgb;fpVZ&sjxaxpyQ$LFS21!8%(WF-(qr$jrt1O}Vq4iYmofo}B1
      z(Ib#Nf+Nv~egRpwyn<)#<lUO%2}CES3hGQsVh|?;;=#7Sz+_>{=Tb49a(3CP+D<u_
      zfWVMM8pAwmmPkJpFlmk|_(UF;ctYjuCg^fdZ^0>9AGQ-^Od^gpg*Pto6ecKwuL-MV
      zY8IVbv>j`ywzFYXSImuyCD6O*7R}14S+&(XSd4j__MX7R;_;mcTbQHVMS-42L>6c%
      z`icmfOo~;@^q7$HkVubXdiK7x(5OP7tLQooJGg9@9kasx(r3S<L)pmY=?$mi7PnQi
      zr4M!8+Hv=ZpKPAaRVoRb#Y=IVqh`8&TGW+IvMEWt4ASo`)~Z#S%wJT7Y3`E0nrp{-
      zT!@2yI^Ne;Oxrm?eg$&^iJfref7NUp)NaU2ynqSS$9ak8RUg}S-96j0U57$eb)jmv
      zATh0WTWsY3fp&jO7cFo_;taC%A3de)NfX$5=zY|K0)5Qj`PV}Q&+k(Z<*8+f72Kf8
      zyu|r~TS1MQ+I_I9xvxpw#G4dV;e|*?JbiUzi+#>%OLlCUPN`z)gpDxuWX!Ft=v93O
      zqj*Q+E!>LZ-R4)oQarO^o&?rmN^C$mGPrmCHSyh^K4`7NSEm}AWWNqe;(c|!y43aZ
      z=+`{imHA9`W1KqcY}Beze8`c_UUqBMqIKEU*XqzScS<=AW0W(>uZ3Sk-Bdo7N&aq!
      zYGwy#54a!WIB#Trh0N5EJU{#$rlYg>(QRZ#>KNen*r!o3GW_Gee;W)Kd4N&l7mR+3
      zK0}RlJb52&Muf{h5h#L_{C`S=pJC#&Omz-j^nD+47~wcUUq6dk8tDT6F5(jMc$#Mn
      zp9m%~#ThAaB}1ACo_mJWBa~!-C)*GeDnl0B#B=D^<LO{d^XfV6%u%REPS0suJ<_1W
      z7V5DIBv>PIglmJp;l-aZa}OOxx{iygD2|sJMfGZeYgF$hdgzQ4ZfW8v|9D7z5SK}k
      zj}#WdB&$J^RQfKGO18U!W-7<4M{}5zZ-eC)S#YT-M=H#b!fQc}*IAI?%NgdNB1q_F
      z7<DW*aJ$%NV3Q58$$v{@N<TWl6j-8EK2m|vDn4#xhS~lGOhT9HpcSr$81=(KT5(*(
      zH4PirB19<J8=(j`qm|NQN`UnDNE>NoCeE%uq}{Zc24Z!rHWCgo74Q*jy^T)XA;XVp
      zqB|JHCr!GHg#^YzU3hbYYHkPGPb-hVo%s{%-@wQ`#Cjd?soeK4?9WQEAJB7%P5CI3
      k(%koW>a_>zTv#dq`TCMMG%lWD4LlYyYx>RN372Ntx>rvLx|
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)6T~ixX7=8{(v&m))NWr##ph77jiA_~RYa%VArPe02P8bxX7jBYMSO~kB&50B*
      z{2%oPm`kVWOqj7VcBb6<XZ#1n=WLb_M@PBHp7)&h<2=v%J|};?{_S@FAE9JmKp?&0
      zwsTwd4|dMpRk@~=er`i;=kBWQV#8@xJ=?D@d&+t2NZ&wIU^s|v*zQJdWz&~-UErea
      zx?bC@$>WUTCjC-CtP6}Cc^~@Dj_vOq`QmO^Rv=qCJBYkMyijX6uA}A!BB_~GfoRdI
      zOA`Wv7KV@%h!p~Vf=6#yh$A5|RB~Lo+}^25f5omg2yUe0)$GQq?K^rO9L6ywFdA}S
      zJk8xi1Q&JnOJtNPoiw4Me8=6$&#dbE-?H#F-VsQ&q`Ga(9nU4W)Oz1JZs9!*?p#aR
      zzM?~IIxVs}>W{#5>I{wGRS8_dRRdE36aU{h3)4su5_{Gkr@)o7T%((pwr~zHZDlPO
      zh?%&C>jrXvlfi@PmaHj@iXyp0Fx9<<MuWrg+pf--weYF-MR#pSY3!d__&mVWk`1Oh
      zo@?NX{~}X4iZgKo1wDodlXd1T+{7(`B->r|TqRw_hL*$eXg$|$Wh>uyTaT&hmC(@R
      z&i6<7kC<Z#KiGApAB=Sow+$2pE}RUV%J+7484Gtbv!NzMpeo9)ZS#_vG;mj7{3QM!
      zvH5<xsbu}mlbUR5%6uIZ!PqG&9ap8s&5GCdYjVlaO1=DVuko5LkM}v72%mEVrXCe7
      zQx7Uwse7(b>fc0?aTa$u4DbsiUqGzw<NR|BKjU@)BmA0ybB=2o7lKpm;fo5Bm$(x=
      zA5M>q?&HmLw1>;-9^O5vFv9DAc>=h}tXs@o2r60qJi^tG;`jg)Va+|()R3mT7+x#A
      zN_R2&3(V+q%yeLI$?&{~4>JcH#4-mjpD{SbGLuZ1#8j~M!H<(SaG%~X&SM#)c!*2*
      z2ID-tipnV%)A~g)R^a1fYOe`g_i-h?R({n%lC(bQAo^_=Ge0BIMds<@pR}K1kN``O
      z0A8|-Ic;XL8eI0^W#$ELtY!9*7d?F0IovO2dsyfk{>s`0ZyLlBtvN~<{N;nSfO{xm
      zk*xFp=Gib{ol%dN@jWxDJbA=Fl})y6i+s0{g@@~CVwQ0QJYn{aWc(AEeiv|@r4Gm=
      fZ1oiDXtshmiO?!wEVRnJ=_?}8WBr<01GxVe>^oir
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM+foxj5Iqe^7UBwW2@wShikJi>c)tX%5fF@sNMYgI5~j#X*u-Qb`X7FW<t+w{
      zWvMS(ew1bRZross2g|LR?U~-`)2DmR?9X2xKLa?0dm35@7dEVN;<546NEq98qM%eU
      zv0-l}X6?;XeyfnTlw~inb7V;s4AZig%`H`2HcFcse1sk+uxy*Tg!h4<7kBL?bfuei
      zB?<J5#~hF61pl_VZf6OBtTH#UHpep)FFB#tjTd^Jmm%7wGC9*S?W=^=Xl#YxOXb&<
      zhHgS<Q^Fv+(5oYaKF%^#5AsDH#a7xuIH<#q07s=wOD&YQ)}+9-oFa6m^BE(zViZkT
      z*PVx>d-0j$C$<tqD+VP|rvM+(p`lG?!#djC*)bhKcXnLIK6iFPhmQSRfSol<giGoF
      zJQC?^hPzQLTS1&eLc;`M^xwdAOyU&BKOuypu||c{Pgwx>%c`uB8qN^<J*g=9l2{Z`
      zIGZ$_<BoZsmsG|!tc{!s;w&ymPc9O)=$}5F#%1v_<?+4y*`VMdC8fbva7_cBxhp*p
      zMT4S_>$pK^FXT%uCqmyY^cxSCoxP01@+oDqYP~GSJP@51T8)einMp>%v`{@PDw@@C
      z6Suhyb=be9pPU!u7JG{uIZp^a$d`*5HDgMWQ1gwNkXEtS=PXMVQ#qqlQhfLan(rAR
      zOrVu7YygKur#x#BSvi(P<ye-KV_8s+WjV3+@u~xz9DjgUlMV`?*U+`<tD@&E!mpj(
      z{rnCxD(DsV(M!%FIppE0>(MXRBe^5-DhA>M6%54(E4&K%DmWSs`70QSk5w?*KpbM0
      zpbGycs%WPjbkGO%(nlPk8jjE>C(BhA6H&yRd=bQ%IY}O;Mqv?=tK)Ew$kpMh#3z;d
      zdFPl{-x~WQa(oBlHJo0Jzr$!(>u?QcWje$o!s959kt)ttap^s#8f?1-m%cE|uZXf8
      zqi+sF-NmdkY~#~Uu}Av3%?!9ggx?@s1FiN41_ndEkiUvsL+>%ufOcE^oqs+*b`>4Q
      p9OgNk0lZSfUa4WP)Ns92*(c2j@Il<+s1~Ggm#yfN__i+~_!|;TGjIR^
      
      literal 0
      HcmV?d00001
      
      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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
      D+jFzp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~iZR7=BI?NV6;-B4{bZR%>lOkSN%SfK*7uVxv%kY1L|7l5JRt8z$L^Ui7NH
      z=})M4z4E3PcE-kOFC4CzY5zd~P21<3-E2b06k&Gv>^bk(^SsZylfVA?<28Wu*a#ya
      zaHeS2QV)&CM#|W6Qro6kNfn)~)HP=-UA7&=vdzjWH^T`1zwM*#vTfRqYuha_x<BT=
      zU;-j9FqH94{L@*1?m5f0oOyxcu}%i@oIogDE|?mE=+zNHU%RPS%4|Frfxv){Fy0dA
      z&k)Pa+M^A#vTkgYOo72nId7D5M#Ylv-e$<zw5kHJ%$xDTf_pd2qGjidl2tGqh7HDK
      zjXkDaXzoRdrn78UO^2b6#^Oz2?&hp4bX3O}q9nlb438Wz(`fdtj<+!)5Mi{%a?LI<
      zWH`3Wzj#h^^1hDuaFP^1;kC@`sX*6`Rd6;LdegLun+_f5yu|*Jgcg?N4q1~?#&yJz
      zkY!EiNa37-PJN`y9=C1XYcL+hBqJVdt46t9(D4yICS9b$kHgxJ$KrRJK>d?h4bzwj
      z<I?_sUM3y0m}4xfnvsBZJXoauj`SOsw@-9j!2+=|p_C=5Yh_+Z-A^YC*o7b_r0b_T
      zuFCikt13Cknj}hmD>dX}Q(OsX`35C~GTadeT`g)><~u}J9ynDC6{K{PF`kxdOdp}1
      z8tXo*y2{BUD!X9WMe-oEVC1)o6)6ZQv1Xy^a;aSLx|-FoiZ3L>TRL(QVZT*vIud6O
      zzCt#P+Z_hDr8-Vkdjcl)(3cFmm|EF*XyzSGM@SOH9$M8kv+A(MY;AkHTyad6IhZ%>
      zyjk*KC`fEq#kC{1*>bItH<v6qti$bJqzTyyoTNg7yt;Tn4m$6BTt^^hrH60V5a2)1
      zlSsaTo=E<N{$KeTz!7B{<ozPur|EDBgM2&Yn&T*j_(n$+mR-a!&)lF%?#qOt8LC@t
      zTvj1;_s|PLjUVo~(9w~T?qy8zDKmB@UgDh>T(|(-tXEr{yZo$U9h~bp(e8Y`qcguD
      zUgig6r;7=-#OPRbIP?mqnxHks)e7leRZ%XumOghHPU8brw}vxZ$wp}SkSoc%h8R~N
      zp7UGdW&4vhGFw)*D@m|tcX7UssT;xh=a?CfPS$bpC-icWtmE=?oK{=&y9myNMnZcS
      z8VS9`Vjbych>V12ll&nlqT{cB{&%lgc7myabtbxn0S>}2Reu7vS<cs(!abyMAIscd
      zgV6#j>%+=oiMrwx(DE}{255B!*A=WO_WE;V6s#ME_dVajK4(a2PT=O@j)jhnE12_$
      z9OqLCCJ_8Z-j&>4wU{lQ0Y4=_44&r;uLX;;1#4|Bh?DPKOiQxsSbv6N@;SeUKJ`rg
      zjxPgfF#dOw@l$FtEi%4E)=FgDMie!i#bb_M2@80ls&WOi=rg^@;k(1S1~5sc?<%HK
      z9@9~bvR~&E)A!y0_jes}-}i-{B~Ma%2Zs9lmeLwMlJnotHh&p;+7`aH`KkA`{mtRM
      P{IR97MgoBcs&B@B+Qhy|
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95IvhZF>y`Y8p@@V-nb=pz~TWFl!AmR6_BE;Qc)xx-PCeT6T8~1;TQM?
      zzJOPdD3w5};FXU;%<i_1L2Yfxo}D=}bLPzc{`36^z(e>ZDhvy8ng?&gcVQ5|7r}lM
      z@gNp^!3(jsmh(}@O&APL0nko{YBCJth+(mNX8tRQ=rEYOnHcS7f?=v#)Y;6ER8X+C
      znxu(%#_*^)4(iPDS%dX?5T<dkC3up?omP**Sj%=I3lq3#qmBl{%yFTAfhMLH=FjI^
      z2ZL*)ikgMXxME_4p;0haq-<QpHHLZ|iLET>eW^gRHD;<*2^4gbXFGX6;vEYPW+k~B
      z3`?acPs6r)lEh6LCN7Zd-6V}R^5J&GUx(WRYUXycemLlbJdx*Pry+Ke5!F6>6?$tV
      zcWDEPB)N<<9IDD{(z0p{lQbvY1O;VSrb*9Nkjhz<^73TiZdsd?m0Mc5^+XQTC@$Iq
      z*&j<Z{sdjm3S7AevRtVJ{iU}Ki{g`HeSkqP(Dv>h!uEf``G|(+|AcdZ=}&OIA8_9I
      z-*D*=*U96x4>0$I@D<F{cUDzip$?B>;|VRbgS%LTkEd9mxTkAlk@(1`O~_^HEG@~V
      zqO4oEtytZmT+J$=zeH8NubBQ!hHh6=&gZJMtpP>pduWnJj#N&b`#*X8lw^jMYT^9_
      DH2>Te
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Ph4tb?R;jEoo`XM=7P?Bv3cyD^*G_MIfYr5Gg_G&5c)PX=+#YhDx0H
      z8~g&!NXSSW5NCcAV%D}20utijUC+#$H*aS4$Iq|d05q^|qQJ1`2LtDg`_^^bQ{|ip
      z5jnm(avrOrhtlnb{&Vt}F#ZL6B?B)!&47~(i{oq~8ivUo8A!FuP_f%XR0e2Oy9~x&
      z=m`r&Ommpv<G8F$iYvEeAf6454@I=^9`*&pTs!Q!{jM8HZRbuyy_PY<diy_mY>_%I
      z?U-TqFL4y?MZ#57sc2WbQ(#!&IFCgJPIKD}k59rt1d0@oa);iQiDicJA01m*!bOft
      zxXdsk<ClRadSOI0ytK%HMMbV~oWm-^g#F~8+SM6r9M^P)DdVT1=k_(~I>!yzq?<OE
      zO{pVP8l{oid18&Dj++c6U#NYl^w27HHB;Mn1K;VWNCtjO6K-%g*d%N`#Lnj%`yHAo
      z+Tysa6-~?dg^1-ly#P&em*bvR#ffAXV6ZyjAnJ)nGF{u)JKN9`!Ybt!>6@TeTA<rR
      ziOwmqcF8W#Jz1-Nf%Pek&(LY5-UelC;SAXe846{bC5!Nw#T;>fhFQtE-ct?D)vSHS
      z{C6z1YexQ;;KB!(#g8zI1S_?Af~yJE^<7PHOW%zIcShBhi67Kz3ENmfi&n8i(|dsX
      Uq<5sInX4&bGgre1p*w8;0{W%OdjJ3c
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqOHbQC5Xb+MhXbx5yx){JI7VPqf>T-!jS47=DkM-iFZL=Jh>gsKd@dvuBo2sk
      zKUCFO2c<HvgLh_kW`F;g@&5Vy_yph^oB}e0%|_UAFT|~IMO(SoQpRpWUAhPA@>lar
      z`o8o}gV2xKM;s|2M_B&w!hS58vYTfRR^R5mB@zrTmO@EF&aRf~gsiRCTqW{lKM0nE
      z0SvO`>MBw5Itpc|2xGNg$-UEZ0Yik@lx$kjL=htvMlnX{Z%B10LjQ`TS+i=g*o1`w
      z`Uu5Z5X#>z?ms>eXF6k~7J1^TF5*D%Uk-EXJh&lj)l!n5kFd<jUKHM_xaDyld8vo2
      zwZB@J)!N4SOHowi&G#S-)E;5cPK%`bDwpaevRJjSgf+sb{eL>iKjAom+JyN}DFpL4
      zYQ>)14|LBn@4kU;J$TmPsqvTRmy{>yv9YJE{%IzAKax05bewy9c}B5=;SR>{IF!L8
      zuO?ey2ZPwf6nhq5<aA792HNFm@SZTowu{_jWR}kiXQ6}n*QB3ZOeG;rBxIvY()n1x
      iA~T4~Uhc6n-7IJG0V}Ur2h2MBfVGZ|gk>{1gVH}bGPQsJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9`*&2;75;8A$%M%vz{n%0D1{c2nUE9^MS^Kb0%0Txw6R#ADtBgX!X=YC!_1w4
      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
      H75?-e-L>Xx
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7e^VP(6g`imY_eTSNr1GqRjO4&Xo;=X9}QF~6iiK1Fq9O3!IC_}lFe>dUQql@
      z{-M<d#?JTw{3d=0$9s1-A)$3fX2Ndnd-vRP&b{yDuYdmd6ToeF8U_Sz)SOm!&pb4<
      z<_{{{l+w%AR6V<_>dVrRo>f_)kcOzhMSquVI<@SR?LAph0)}HM>rieUC{sxRkrx<o
      z<d15zKOQIOvQ@1~N=X#X!sG;EvlZKNEOlQXlAc-@h%UHQ8Hd0H0~!Veh6|P>i>=1C
      z^w!L6n~Eh0ZpF0MP0!-*VNk1D2Tk{Yx$Fz1(o;b-miF*aI%>5gTQa9(3@Huc9ZkHv
      z=DK#>QU)&JGN~Z0i*m<o*(zKR80|$1qdwFd2CgD0kffy2(SeeU(^>+9v!SxF^sCaR
      z)^$WMVc;6h>m>JW1MlDl@gk_Fj<w&Cc}K~b^n7FT?8tit&S8+>(gtFPlUZulI-rHZ
      z|7j(;JxmU%`HHe!$0sT<-b<~dJj<!&^2|+O#y|o|4etwF>5hqHFS9)mI<mOKDn1aH
      z>IDlXC717!-iv=1A8YuCtm{IbT4&%Bd@2xUwr6;9!{*Ctel*APqE*~R!*r_s^A%Pi
      zhZ=5`97@t;2Xpw?ty()rORmEc8S-UNju4=Z&+$ORyueVG7%v%Ez#>(n?i9@iO<8v)
      z{9_T;<Lo5^%iPEq&xAU%B?t2c9&wQKOV&>m6DSy%!(*P+*H}b7ph@20@$ch7O-wYY
      zOKPFzdDM!vT~C_TIKIM~hEiv&15W-x8h8qVinuKjJQjdiZgzz+h_y5uIStQ<g<qye
      z%!8I?SEU!j*8-QwzFKf8@I7&JLiuIyP3S1&TkigM1pXQwZ0IIT4O@NG0@en$Q6Zx%
      zy;9CP8*HW1R)#dNgBqPHv)Po~@mswW!+8tO{i{NJ2+P18_c5m2pk+F2I2szALF~82
      zfXm7>-*MX!&`WO1tH>pb@1bP>RXM{B;yQIULbq%L7x}c(o6h$bJxBS>(lbs^9p`DE
      zLEon6$$#e}zhUTCdKthl{nzOU+(i^K1jJDYx|}EtluqX|OrH$XwG)iCapf0(D+3Jr
      z3yYm(0=kAb!=zP$WB8HGG2Y6Y;Q9-^o0)!r$<z7?N&pRV6nCg*o?ssNP~$-&(az91
      zLHMHRoM9R_LwJ(}vjwRW+<J-ZM&@@+jzs>RzIu$?ZG3pPND&wCgaj2ajupSiM3CMs
      zlEOXYd_5`5lClA$`LYblW&GV_*>enSM7PMspQ(6YW8lKG9v9|tKg`P$>A;2QHa?@z
      zL;8Ht#+RoAgDz}Qy7?dKi$q<BD4%318Y2On#?JW;0+*j-^(D$1iH&1?bAs>NsJ5}&
      TM*VD=I{g6IU8Vv}U&a2vE2*=9
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`&YflqF6g>mAg?4$Bw*^6<xNVh+;<E_yu%ucE2B?X~n1v2?rR<Vri~5)R(8R=G
      z;s@g=Klr1JXSU6@yqfGzXXe~<&pr3<-+w=U0hq-~2rU8=C99JDXdD}9<CB{{l+sC;
      z-2L>LyPr39WO;)JAp``bFU76c2Zy#LEw_dZ3Jjj+^N9q4yN)zmDKMbtJy6-OO6g74
      zF|AT2n<xnMGW%<@Sd#8byJ+rx$=a4n#tY!NoWe&f!!?iPrgWFeX309B4uOE~adjL?
      zcip?*lAn3pe*uf)=<;#PcEu_l354_<f9h_`*Rv+w4M*-t$C1TVlZlQ@+amUg{?<db
      z>IxrNv5T@DtWd)sh6FVF>RTkxSF2l@?Vn~sxGK=;yXF}d#xO=SjN%&Q(2iOOeR|@&
      zaSA%F;W{Rmj?gA2C@L4Gnkfx&OtVy8v$su%fSyZa6-3t%LK`7@(~|3zgB|H?89QY*
      zE1I`=jdH<oOtr5c2HX!OtDnkWIv9T6Gc>8Jrb(c?QNDN0s}S8+#VHN58amKP7hSJm
      z(et%(hUQJnbQd@(^>!*RYh;N+7_E4qVGa))Lvz||)g(bB8q=P!fzbj_G(?~Yv>T0i
      z61l)4zZrq>rd@G%W!6--^fZ4YGpc)RfuI1EOLRm)8OpE#+7VXaikYiWMSA-#bbD(L
      zqKr`ZUc&nLZyN!$a2-y5NB?gO=aZ=u#MEo-1d}JY@r{=)Nbudsl)x%eJ;M;PNOCt&
      z3q}ezxoblYZefPh0%_uFDYC?<6yek#v?=D>XE~o!#0!egH*tpRoQ%UA-1Ru;aIem}
      zQ0ELLQ$KLO!58*2ZP1ukO<X~rD~LyReUFi;b1kzjPhT<_^J<<y%ePH!g(kjcZ3|c=
      z57gM#`An{gFCP2KH!$J7m5V@(&nTbqNHzMjs#POZZff=pc-?%15xm1Syl0OMOrqG7
      QHtv@ZM=h<uk{7@HAH1FwWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@Yj+dZ72Q{sC0mSN;743TOA<GcWn)2j2Bl7^fK*^P1XEL+HjOM@%Y&tnBaLiG
      zT9Uq!^Z_(!(*)Y4CVeG+l9Y%BvbyrAANqUxxvTr!kw?NnmzOn~d(YWtpMB0fSO5O+
      zt$za8g-^l=C_I>Vs`0a#l}tRd>c*F~F30okQv4}*Y0|E^C-@#lP~nmLnk7rc<&vYF
      zx@}0I|4z7d9EDJ}tTV1wXo-%@C<K$GoNkB0CJPoi6f9Ek;S_o&eIS1|5k{9nhrc1<
      z5p<%*!e(qy2<NqXvb0(;F;WqN_gM&|pV6YJkr^?4z``ItqtIzr($#`%FBf#0M2yFr
      zcx<(>4WCu$s%ZC4i(qt4h<8oej-IL(=XLp1X1+kz&6A~UrZAH!+wxvt47!Upi99@c
      zU+vbVNswNFnF#b9sd1w-TXGzob*JsTlPM5y3+r>*&M{HawinJHEje@?h<cudjFXQ~
      zyJg$SCsNFq0{HeP_48F-agUa=RpN+L)AkEwAC9I{XN+y=3EQ#V2_{sBlco@s3DK?v
      z;}%8{Z$y*rMr}NOcUgE$N?{Q{<?3RxRCP>^_E^}9eF|;$4RYv<j-0uhw-n)kg~xG_
      zJ(F2p)=rLH6}^Y0<kynPneDrAOiE#H3k?B%(n11HP;8qEQZ*xXvt$abwv*H66jX}e
      zvjv?gi|0`bPoYhry{wC+6@92sU>-SL5M<`jN(F@rmnyozYO!uoAgWoc7Cn^**nnO@
      zQSGo@)K0}NISGNEvhXw}c@m1v9>KEd<ZdFJDC-4XF6*3NiN~~sQ{vIF+`Pk_XgqBw
      z=v+!N(WDoo%uHufF|(v+?264E6^vO6BZ!4@hHie_`NSfa!`G$W^bF=~Ni$$jRy+hb
      zW`Z(r;W)BVp!=lP32k8kd9UTXcI|04mL<y23ERS1EP2|=Vp_A2vkd%bQ#%^#rch0W
      ziFR@>T5ynLO;+ukyV!<hg~+bQcJJA{Z~uYEcScZ#8wN3Z{gj&!EL5>Vr7GqG@tC=b
      z(xrDd%1BCLowIOWVucp9onK_t75hT59h+vCFDMUlV1aGd-{^v-$fgfow(w=qJG9<K
      zeN8jSD=S-u<kdX?=SXxh<KznZ$O;Frl%N59==3SGYEJHJ_+c17Q0Vb<Uf;IxBRQ<C
      zawZQ;IWJncB;&E&t{ib>n&rayiNc`osU=oCU8+{Run}Cw8y0>lP7%A3B)@7==VbX!
      z3qKcha~5P+*}7aga!$71ws1wZIv6-vu(M14nD~W-U*cCBh0UF8&TH>_(=?x0;rwe0
      zYjUo;mP-})P}ZeJCigJj<*eGk{J1`EHY2!(H{|1Y7Je^OA`Hk)xs_!3O&NIaTlhX+
      zq1GIeTkat)OIqaCP-APOJgmCqRg(wOq!C!6$KXbfby~FVkTk@$p2XkR3up39Ij+uY
      zPNfg=ksQx{QQ)S95Acsh2N=tz=g)E!CCp@ENAv1UvR(3w9+@sx%UONYmdmTV>9QXe
      zvG5=fTln9~9}0u~52KB5?ff>20ROleyMf53=$wp=*3ex;uRI5882W&l0ep_1n-S#a
      zKDr)2HxA+f&fe`@>GuE_<RQMbp$89R7)nW)elQL`&sC@(9>JsLJ!;+|!-^h?Igi!p
      zWa@Ob#YS&p$2td6+4&AO$?NVK_BSZ?n~aY0GmQ>T++Li(Ry@;0Yg?Tb_!D5A7VjZO
      zRdRKh@L%B5QzJ!{TDTUDjc%=Bq7f)!a-2noGh#apwtHqico<*AA%aNGUqX`B3Wu4c
      z2fLe3*=vo}aAYIsvy}B42GsJ5JW%rE<S;ysiHzJkj!Aw>)ehEW3dM$MNMGlQSE7(X
      zSTJZ_SwcR=5Vc8iUs0cX;+))wv-JOP$nPtdG5k)~`SHf9^E=0iNV5#LeiBL7JBw{K
      z5gXbzR>N0sV{Ue=Wqd3+eiL77MD-f1LeDC?utL;T!yx8i`I!vYGYN9{S!x%cbswH%
      zcGBa#Me8gsl7)19yv`s^`7={vWRR<2@nBGB?6`r#U~qG(hUcH-_tkq4y1+WV#P)g_
      z1NgQfw8w+>3B~J#+SuPOu=fMBeh4q(n<O;AbMh@*U<yipanz~pHB_b1S^_n^w6P~%
      zVWYijLRoZ>rZR_1DH4z)rQ`=K*A>3Qr`Hn`%{|d{Y`xaKM9P;9;@y4mU3`xiN(Q5c
      zrN&85>UW7J?$sXkpEVq#c0ay?<mjikoTh@WU&Vete%2Gjg)0zE-)ddMuwUz|Q#<~J
      zzF6a3jB9wu1AKiAJBf5nkbZL&!+iX<JF<qMhQ0V(u^rs`1KngCyw_0a7>5yfL-pV-
      z>hU(!xPmCIVkd8!1h0-KaSg}tE~fZ=hL^z^yvP1{AIta?%knpt^EzI`4P3-WMw1EZ
      z&20UGUcw(~$>~e9KjSY{Ho@<I<q>ZoPLv4Ox%MK<?5zbktW%zLY=t1LfX>)$d^kIF
      o6E`?YY7OpQJwB%IEfd=tC7pikPL2{er$oTV^-*$*Zvou?ADvV2#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTW?fV6#jN+=$Rf4mKF-MTs#P9TZB;%RElW1mCDcy9Vo>cr!%|lp)==<r+Zq^
      z@L&utn)pDB5n_xl+L%a`Hfbvjn!uZX#s8pwd(SY_0WrihoqaiLt?&ERT6_KR*WKR$
      zyo|hsI)NSIK{0vRoA#34j7k=yjFRJOGTEah&v<^2o`|HEwGbCrYm9PUFrF;k3N!}A
      z{HToj$A<kN8_rA#h+Y9FC?8W{W>TOzRdwtiy(}}TOTdbXLEs1D^tdRnx_l}**!c>u
      zz^>F&@MFNl;Y`jCe04-1*4}YmAbu>&$_5bM!79{SSYIQd#KgurY;dp<jRN(DjlXtj
      zbzmW(cbgqFz}CC14pt*U%_%>SeMWcM8_h{AFwA(l^IqiZv$;%QJ1u+Cr(LbZRVIrz
      zV%VX<b_%q#ugJ=fikONn!&*)FOk<1*vC)oB3mpRP6H|~5!`!5=9PHK#EEY}|O~9U#
      z>g>Y|$J;M<oYzW|4qnoB4MC{<v8&y=97#?oFH+S~+myON>wU$6gEjhi(7~(PZIv<A
      zfnIlTNZ-U~JYO~7FpgMwqb9vWSErQBJ9rasQH_iuN-in(!{h+vDvFj~zAJ&F0_mD=
      z+xrNmLoUr3qF7Ke>&{I0Iq7O(=FD}+!pN=UITwZnSA}kw=y9C1a6(|6X~0@w2R*tD
      zRzY*gG1<L1ZQ*T!oli`5j|^nwX9oC09HelDz5AiS#`cbqF#UW^Ov^wG7G+U(S?Cwo
      z^LVg6Px;f*7^X<KTqSe1FeuPeeJw{>UFnhA0ETqm?6J{@b9%@AuIZriyV7O8fQuGJ
      z9*V9d<=`E>%la3>DP<5@>vAJ%!|vg<xn(C>cwb;!l}c~50w=CyWI_2M+iZ;tvMXDs
      z9iD^HhpjkR^i={`fx+7H);Rs2;)VqdnGD-U$<n0JT{`Y?q_HR0WaX5K!mHIUmmPed
      zzt}@zG0Mo3>>obbT25LiwlhqOqj42%Ju<kn^&BuOr+`^G1GqNmx4|{Rzh}@$zqLG_
      zK^=dAt+9DDEo0rtB3kCLiKn*8Y0DiN)L|QcHxL9ki#X0P$OSaBI$O|>XN`rn;#?|+
      zKERXUz17+5F5<ar5Zhp8$Tn*nost=L8GZuKS3>NgyABaw!V8c3Pf)kN!arX2xA7wO
      zlqqD0r1iDVVarJBej8PBw}8F7AIzeD_k-W>@N+#?w9u%9-1WLrX`Ww0rm?_e<*^CT
      z3cyx9W@&HhB9;N~(OwfirvXpjpF`U%99xE9TKCOk{~Y!&;J_?e42#!h;SA5AtGRmt
      z$7p)<??0DtY8iba%NQ7mFXHSX(hC^w)MPs~*%;w>amKz!m_7^=Xb?kYEs;KGGC0kz
      zS6J<jSgwy*o@?~_gkGPb1J_CR8fW8YoQ9usB1|KVFN`RiCtG)2S;|jkDW@t@ZsOn)
      zE<MIRQ(}LshJEZ`**7zVn+^MJ948*9omorl_mMMjgScOE_Z69Z&C+~Bk8i2sJM84S
      z6W_DCKX6Fj;57WP!n^^p!aU0o>LR#v*kp>(bPM%M7@I>={1V%|nonK)R>lVZx0$uX
      zq>cB$ZT|jDCciN99X7{pqRp>BocIsKc$Po}G|2wbA}$i~S3az}SdV2QE)wlt1yNv<
      Itm=^a2e@ebx&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|-A~g{6#t!3H!0;?P==xt#I{o^GCzl?%%~(oF_IB|>$aOw*xIFZ`r<$0U*NNe
      zj>HGUlMnt;#&g)R4@|I4Z|}#szmIe7{r%_1PXNnUPasBEsQ3+M&;8&!?#IZfD-}AG
      zXy17e?Qbf-vF?UjJe7b(uuqN51+{wMD?e(*#|bn2s6B9mp<VajrK;9tl0feX@lvSV
      zND&51t3XJ&<#KCr(afJpEPPqn5?}RvFIpo^nfVTNoAo$A%LQenV*uj@hA}~yJrUUP
      za2!6G_k8uLQ7fu&+bvdE+C)Amxz&OjdNOWLYSFHDKv+CoWjm2sc2;B0MK=_<e`IoI
      z*myTH6DJh1ut5+m8c5)*^yUm)#udUKS8vBFS5(x&t-5~2d0pI7r6`-gRl?XwIvpu2
      z7`TQ-g27uQS-GI$GX_^-LuY)`fCZaXmsPb@56#@L3bJ&=zz~uIO$-r6``u(E<d%UM
      zBz4?ICV>^gaGwGLcW{@XnOTZRm^ZC1NL`L%OHt3sVkh?rssEk`VSgwB4KcZD;1T#_
      z3^7$Vx#PWb!o<~~8bN;>G{Ta4?n%uj`)|UMIABE15PxU*i%BW?Ld8kLAasCYLd!Gk
      z7bDz`a(|8EViIMi4>9(YdofIMs~^wi80i_#@p!rwg(>dI6UTX6U<|%aNVc&W93xnk
      z{SC99F>Ukz(h*Wk%r|k}9{7&g^e+tC=_b;)#-lFX9E$}ux!q!lHw?LrITSFD9hi96
      zBf;uOuy7MgAR;*lyqnY5k@Bf6CDW3!U{e#05HBC$-XR`zrDb{H3r2d@x~h_F6WC={
      fdz`p^wp?X30aj4&QIzQ@%HXjm;`a&fi{a^C#U&2O
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&ZBNrs7(I6s2Bi)eGI<dYMBTbU#dn<&BMO>qNCM8!rMsKurCqj8<Dc-mKf}a8
      z^n=kan)suP=e7kl(GTlx?>)~s&pG$$uisz30$9TRBoYE<-D_Jr_8Z%>-v(Ag%BEEh
      zcCEEww=BK(iof6RJ?RA-JV-(lnEx++O?tBFIuWu@V5Xb(6rDhy)0B1~1$wf%ia@d@
      zgH_)P1hf^uDhD877&wEJzyO<j<yPyGhv`yCyk~oL>&5ntbb?|MX9Y6HdR<aFhLAQe
      zf^$?LL8LI8%|$fIwc08wT*kn8j8Trb4ZBI-0u!Cch}jElmtKp5m_Ry-$<x{~LZ^i(
      z0|S_5+u6SamF1xliPqcu+p@W3Z|^aRbjf$@y^7s*)qA|D1+U$fK%w;C@VhLlD<}#i
      z_8oz-6V)yZ&qYl&aGYA00xzWz8$VTfWSf`=uIC2J0+Su4y6JNj9X%)*$YDWXG{$va
      znnDOz29oGkt0fgwKf`y9hK?6jbz2R;CDr*Y1GiO>Bb?7@7Rr9rt-Xs!rWQ_)zUjA{
      zj$CzBmgE1L;zeaxn<Zfnf4%$^dNob;z*RzZz+Ii|_k7d%Z<?Pl_>Dp34=`LV{6vO}
      z(e;Jz82SKx;WNes%4XpJ7e0mzGkng4Y!CTd=KMawFdid=Cz!%h%;Om|d5(*UJ5s<b
      zD?s!dF7aHjW(t>ag&ky&!c}C$UUS4py{+>k!HSfbKSbU<z@mAGYbW~Ykav^rw&>_3
      z`6{7aCaQ|{SdZ&UPYB!yJ7)Npjx|<e4L$z@{U$x%JmF8VA3##2#)^6ew|>m6;|?8g
      L%5az11n&I-Boq6w
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKs+fNfg6vn@4YYXcNWy?ju8!A$^%6h?Tk;D)%#G*#D7+!SSj>|whOSV&tf0l`<
      zi4VqS|0v^`-LhS<;i28xnKQrho$s9X&)=WF0NllL4k?B?Pj;L=_t16RFUmRKJa9a<
      z@4Qg^n_PA_6mPwuy&N(O_Nk$(e(S)OT&gHO%P@T$o8&QM>j8HaXP78f!nmd@J!eY=
      zLVD$eD#J+Kmy*}jmhhz8Y%`>bdb>dCwnf9^YSV9s&tKPlsTigPKsGjXd}h^e@L@2F
      zn#f~}VVLTS01Q?l_3PRmWh>`UU>J*)ABi?#VZy{DrWl4OdBv^qCc}7fA%W<rHz?Z$
      z6FCe~){2n)Ri{<s!8^Csq<XE2Uw4~THxT;0x0zA9f=ZmPoNDn=H_Bw+vXDZpFiiF;
      z*WEi3Oa2*1W7foFTw|Cy5fXPQjI(gV#2jvtGormFwWvmD_KvQjXkr02gVE+HKFkz%
      zbOwf7CWc{<$%5vDdJ}nZObSD;A=**tSsvoaL8A2>EFAc4rG-DQE8)wvLz*CM_L7MQ
      z+Uz`;9UYPEmMa@N?;{hB@r2yfmlGHJb|j}MoC9Oa?*w(eE_4sZPmK4X?l)$MoTkqi
      z`gs^EqZ<g&lS&MqXJOKb-q#w=(fS!uv;szL`#VN{!|GzZi}T-TD}`zLHs}ew#0V;w
      zp_Lhh<03B68>9YQ>7m|Iq>i=h(hpp<OI=*=V&3ke)TddL9C%LxtCW5lWB3qKC!?D^
      zDlu>yi^OGcVyR0Mqoro;G;#aPNa06feo83J#tQEYAY=v*JR<D=Phd>X50%R3ABXIu
      i3hu?kmC$Y=-?#5Rse5=*U4T)v6YPAf?kN#dDE|X<Y5mp!
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!U3U{z6o%iEj2#+=)&hlwHnf1H`GSaIMM9$(r3O-{rdH@$x*U?zbZjycClg#=
      zc<oPc@e922!kct0FI@G83xAZ$cTYZ=SgRNFb<X~H_Ph6)KmYpecL2ArV<Mt(rS5ie
      z-`Fqgoc&#pYiaH0>cM_)J=ovSZfBF<CJcq;|1>KFy4f?GP`EH2Z4gFbqUviq&<eB3
      za%j`A-FmJP_>No8r?wSLyH=A>r0QD?nIy^}OTM%t*3)erbXxbTRoz(ky-rIZl`Nl#
      zxvpL9J5`|!bH$izOWXdF-Cc!fQUXp@J=fLMpyJeByU|uKie8Pl(`Coik2}rh+TXID
      zH@I@P>{ac?w(UFe-Cs0<J%>)$PG%TLk*5~-9M=g73^h`z>=Q1ADCR88B2F>?u`L>e
      zCi6&`SWq}KR9n0)T*jipq|+X)Z6^jwYT*o~VwlG@3vXbVR&^b0+P-!Jg-gj)uP36o
      zL@Ii2V6$#NFD@$<l1Q;b;z9{o=BPtU#-``hY<VsthB`~yjD^#%Ox$3pL)4<zH;W;Q
      zoWy=pVeweRp;;Ks#9Ip2Pi*j*F?-i!5z@P1QsEQjTm6#f#<xZbzJt3a-cy(va~AC_
      z<Z(~oG<B%#d45psP`vmkxuh9vQM&>@F!4TTek|0$z`}ieNG67Rq`wabu_QhpS@>8Q
      zIn!zDc4g1m4K}=*v+HO-hC5g>@d;Ztj5w5ka6&}*hZZIgqYzGbqRx$18_p5)?Mqfw
      z;vBU{vv6%kA=2bLUmSNFkW<Okk=Z<kkUzmq4%))e-f=$;Sxq;DkL<~k*jqfS70tfc
      zfydE{RlJU0)ejswim#9SscwoQxWeM2yk6s9E~X5aI0dMPsKF;>9K&y(23i=H=96*w
      zp5a9Us9$-DV21aJaG`{=e7Aa=IEV9M!~=SPcX9lM)=@qmr85V(nCaruOPJ{cEb;Z~
      zM)nWPzr^`;_7L-3Tt9^BBK<R#xSs8=XS=w0h+E<MskH1LA*6*H8?5IE5jL6dGp4R!
      z0b96%&v6^u9G0heh-V?@QV*q%NhrKc8^K-0JG>%%pG3Tm{u31trBczgXo0xz-ZkRJ
      zD@@0YF4orMUM!@!{@@Vn3yA}ij=-*pu=tVzzhaQDiD^^JDihWC%c%2I?}b3OdkKa>
      zDI%4bK7tjN^_Wis%Pek_;4v)XQx<51kd;2<kA28Qv=Ci2vac{j!PW}A6<3XPCNXP_
      zfn8?Lfd&INnc8Eu-?GO(+t#6KFGipeL#PCywwMk`ga8qG&xd$X#+VE745g^|Hf<EX
      R`2VT-;a{ibDcvJ@_BU14tndH;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E*-{fh6g^EQjKmQHM8yRWMH7jM;7)K20?~k4F1S>w!=y=C;tVxRKtD&TeB;Fp
      ztF+1wu*zSuJkt}xqCEI8z1-XP+;i^jo}a(J{QxkCDHBZs$I5Ok`_f*tv-VPuotM(j
      zmV>$McrZ8V)fQyIo%Qa}Xu=TKsn1nyx17B_^HMs2iDrTQ8>2Ub3B<}JDUc~{k)|{^
      z?%VSf<t*HA7nSe1ucRB~1h$PhRpqMSG7*xghXO|4D@hYO1k(Qlm4Jmd3p<ezXdcms
      zEfDCiU}Bp<TT!`ks`hF|`uFXbDw%c^J;$y-w0#xswK0Jh+Q=ZNs0D%KR#G-qj3PQ`
      zRkeD@Q*JP=f=b@={1O2=lf_2Gv@@3~gf#bCIDmunmt~-fr~{O12a-`nGWE33f<riL
      zqF11GBZP%M91#$&`RP;r7LIAl8(QYsy3ILR4yR72>1lzw)xxxLOWx80w<LX?Utrfd
      zs*yLBdJ=NYSjgfOVafHL<4fs|%0=abL=TYYTC&ydM($h!LpWpNG%Mc_5CK~_i*o{d
      z3Ah@Q_uN@kuK9MLJXfGEnfe=d!x_R~z_5vn0zD1*f1+8)VML&X*&=4V#{Ys}NBgpc
      zE4Ui9C%hvesoQQOp5<E~9d$L-dfh@EqrA>cG_6WOMPFyOdkA9|#zR-gVM3~MC19tP
      z1lrd`)=RD*5i7fI>$(ag?s+xekz*>n#9f=8Zze1U4)f;6_{I4p!Uw?rfWfhaJAv)o
      zWzobD*!~^X<F9D_g!T{IHldSaLOV}$9>gwf1;hBX8o^XRd;G*#bghLoYhx5*MF+4O
      zdw7uTMmNVWvqNSv&fOo;zJh&|18F1k1w8}lIH#lOSZ0~dh(`xW1LrB=0$OnqT^QDU
      zdLw{3IH7PHNy3}xKnf=qEiiy|J>f5&juYp3J)xdXPMu_`p@9_)uHgK8#AC}`Um7;Z
      zrrY?8p0_x)x}@XUi+AWH!_al~ExJ~hblspUZY;;vX!q%QUm=~Vq@Bk>jPf~;qaPEr
      p6!465Sk^NUt%i)}v=_9DM|BykxQm;(MFIVk9*Q*RFX{qK{sAU5RDJ*e
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~8B16g{_JE87()twky-AYf^g)dzjBfSM|%Nn=PLG~sR7PTG}awr*$P@Awx?
      z3?@GK1N=X}8t-n)wwjR5PUhZw=A3iy&i?xI<0pXUcxE6)SnH|K{v<AhEiSb^kTS4)
      z`po{I&klr=-T@~JWC)u#;+nqF!c{UDVRMAVfB6z3Le2@K(2|g@ZXI*D<0@D05sKAz
      zawdj1qH?C`ccqCmZd;haEE7+`64@9!*JcMF!}C)a9Enqp6&BjQBfMh~xKTV#W^~^j
      z64u){c9WQG5NJS{|KAuP-xsRu$@dphX+n9*)7#EboMlTU?xJE~iBL#7yDnR}hh;*x
      zCw1#xJd4&02oEeg#0tUUFVXbR2fm60N)rc3wqaro>joZip9y_ZwXlIrLMf1+Lpjv@
      zz7q~xs^hAze;Lc2L_@7wxPvm=kfTP56P;_LJcE?m<w3LvvyQKnbo8OyQ^MmRnumTE
      zIC9^Ord^o6Fx!zOta3|fezSbr_yWPeE#47-Nt4$+@Ar`62gudx-(h{_T?%u&nsN38
      zpL~gVj>{ty3RvKX@hGCi927M$=IS#h&9zGX3X8kT1^WF3`Pw(!zrt!K;(t8hFUOu<
      q@wx*GyUg_(OL!A&t&CU_tqQhKV~s3p)$t_yW$<*|$u{eyVE+Yb61@2U
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZEw<06n+kLRBDB}S7DoqFOwHtopE1ek{F@{gGw^P=aqWH>Y%qN?WRA=#LUDG
      z{s4cJ@!XD-ZgGaR<(&K6=jGh{`_Io`0Cw?AM~1LH@*?ZAePUboX=wRE1lA}#wmRW)
      zU;2^%PIytDn>sW?<x1=vmLqIjq`SaF$nCqH8@34R)m{QjFwNS4pta>EVIYg^CUlsD
      zr4&?2#i(M>^~C#VG8Dl_dpH&h>q*BR5A48I^{lCdNA8qR?Oka;5m!N*EI(lh!pgtw
      z5sFh0M*b_u5#vrEBcD+F4|hj+B5<9UIgU0xlBYa`YPb7V)umLjww(CV6JFTtc54Fz
      zC2Z&@bF5@c3BtrCwg}535vt6gE4>fiffESfscF^H)?Fsd;|?l1?h*<KSzq#siF>$D
      zpfCJ%73!gh?YQ&R08h=tD%RMq4BU~++^L}?W_V;-d&o0hye!KOQ~6$>sB9`V@nNOF
      z=L-bmKt_Qh-ni;8S1(_|9pxMqc9rF4f$#7Fe|22rcb=;jGW-K_^~Mhv-}qk!H~4MD
      z-RF$nLxJnHa}<hL<cjgQi6syL%UA)EsmR=C3s|3VhrC-UmK$fd^+KzcwC}jRd8j@Q
      zwhr@Wcr@25us>j*d0+Aowqi}C&bt%MGHR$RDemzB#E!~p@Vqz2E*f|YEq3r^=3tMp
      cDjm&*axp<W6^d`?EEHh}7OxYY#v6D40y&i2X#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)U2hXt5Ixr)ad4K9IK(C;1=>PlZ<@H!LO)D_d^CxvNn8w0CHk`Q-o_i8U2DB2
      zqCcgtRN}2_rOH*Ss_Jup6yn^wTd&i=gMG(yXU?26GrRux)t`R@xQ=f#NC+$*xc%~>
      z^~@?;$3eL(rC&Y>o|d<Qr;V2Hbvkv+m34YENC_;wHF(`~1IuxxAI6Re%%223i6$`C
      z@}(6>fpoE2Ej0y_MfIIp_iT9v0)~OJnB+-X>)uh<bEO*yoUaXGhu%sSQ^;j7Es#5X
      zYhVWF1;!6#u;<u8TUV;8l)Qn0x;n$FZRs4egDeZr8OUH<;9QMzcKS#A(tl*_cgQqX
      z^IBG?Y59)&9XV4$+vy3EYHw}LN#zxRt88%Sl=hzE+TL-41VT^MWnYf8)KpRT<&DwJ
      zQ_*9$9oGr&2wW(}Es9H5O3f^ixN6`%ToWja1Pw>0V-``$peQgi>|_jLz*PO3W4}V@
      zzU6N?y>7>PUiUgq>$&RRhX$5$nO*J4AoL0(dR>9pH}c|yTWzOfKa@S^2WcyW8wNhc
      zCjxo)i6djREg5V$>`Kq^TsAvhe8SeK&|3yRRg`iJih4p$dd}+la|2(f>lt204d!(?
      zYr-6d`yi@Z$F^PoE{E+Lk?<4xrl}wj@AaI3wFRb#RQKig()Xp^AY;-jmSSZ?ntCZW
      z419$(fef?4;3;B0=AcIAJU23nRr|2t3)Fg5sBi*Re4WAl(P_jH25L&%B(ZmWhbv<#
      zic0p5flIioth#|KY8Xk&K0Gmj7={Ze`g}e}tZ8-n6eOMrWE)=JZ^=zZEq?yg+h9d)
      z2Um&6{G|ClIV+%^8(QjAPjHsjs=fziO!GHP3~(+yW(T<NE3XrHhu>MAz)j?E3m0h_
      zOlAt^@h+4}E&8Mq`UT6rAHm;erplc(mwv|w=F$KQ11!bJlPnM1A;Eimo2+W|e3%iU
      zt6Z$048b~FTaEt_WrXy9W`2sk&GcW{9dmhr>lc@kE9L+<?VoT>*)MQuemSLFpV5_5
      z_6tmyY0`L!X|4JnEdHO@0vkkBVsF!WfLZL2&n}9nlgl^U=>`|)k>+cL42FC+QNeB1
      z7Uq9RE5Z9UYP^diMR48OBB7oNecsa}5!AjGX}ZBvWsirWSpS7~IEOLq|88Uk<55+?
      zT3b=R#c0*l!qOku7Wk2B=LdN3l7KvS<L2iyaf<@?F%27eNDX}@Odkp=Q1C-tx<J`V
      mkf8Mc%H3rtRZhgfA<ymz82@e5uBfmfn84!*tVw?Yd#?e%6>{AG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yf}?f7=BL31>!Ms5v+vJ+KWv>C06l9EEcHRXh19&1p8%)XVR5q7dN}8pZhQR
      zFPw4EX=gh9+#l8H^X`TX@k6JXd9!EV%kw_(<?P@8{Qf6^Z}D>m35AO-C#bxz4y}sy
      z%C8(4<5gPze&xQuzuENMc6-nAHmJ-X`Cq=PZs)*tjN?bXX@&eC<^Y&Ny6G9qHwr_=
      zQbQrR>OMCkP&lQbaauu>OpK{;wjQI!+G+-86vksioFR)G#x%w;p^$4C|B+{tnC089
      z6XvUl!=%QPI1JOFVYLGz%1<=Ti!w{)n(f$~pd;$M#!RfXULUJxH9i&fD7~LJwqJ8t
      zREMb~=7PrOVjQD!rR_HN2drOee03b!u)FqN+bnn7KtdJ1*2thp7R6fhlMbD!+m2Ze
      zI(x?3vgppr>u%F(H!RPV_ntE8|6+F)iuM0D)v7|GyEo9^xQ(>sny%xRroU;o9IH*-
      z^lf&<Us5<%>`$a0QEFr{gsU2tu`uY<pPCe-2sPR@zSI==g<DXpiB&8cR_ml?gsN~#
      z49tXWkyJU{*7y#jGjTk{T6g*Ri=gY<PAi=Ct~B&}jb$uysfe;-dB;GhLzz3-)ChVQ
      zO@TojTh^pwy(a8|+w~(rnd{v{{wbtLK+-Eb(0GVC5nf8QrG867&&PoY47YS$VK&}U
      zBN&yBFtb?0hIH+*!pw=zMs70RDmP(Ql5XNj23w>SBldG?G_b8OBCLB{r%s}6Z-v@w
      zc;oyx2Xg&*y}4<dZs0Y|JzMr_^5d&NFR5^W^$t-|{C12`G8pEYoC2N_e3r`Zko^m}
      zdU@^$qm;9hbChXHf$|yUiz8foOXmbi{GTNZaD@O17{fK*zUxeMgO_6gMchQ0)~N^_
      zbNGgD!?a(*Jd_d&MUVq3)XL#9KWY)BCB_J)bb0PQuJrR|L+uKSSUrKA?qSoP90XgD
      z#|=U%a^RDwx3Jj5{*}>b>hisE7gOg`N2vY=UCz%GCX?@Rr=M^fNxD8@pB}QnI;J^k
      zDQYQ#h!f|rLQ1R!dHleWkk8{TPebA99#2W4jEBXiR6;hImL%@u#~!gaY=dMg^oXs0
      zK<y8#?OYm5?Br+2>(LQ@>QkEzDQq+7DMqn_3GA}}Px+~P7E&xnU@^r4Z4t#nNH)R9
      PNyg2GYq8732|W83J||ir
      
      literal 0
      HcmV?d00001
      
      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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
      b`8H-oerGZxzpj{(ANHw}Qt~3ARmJ}Uk=v7(
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      OW}pqx3<P8G@xK8+Y7A}w
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O>fgc5PcK7b()%(hL#q>M}Zz<x2nat2#}%{f(!>}bLa(alTow8u`7Gi0>6i2
      zFGzey9QXnJD8#G_lmikRyyJQM=Iy+hZ{NRs1#lO4Jk$u`VK$9lsbdwZ6B8dX7xAGP
      z$B)c-H_y|tHfzcAy{;OJ*n>-0uBcO^(>T%Dn1_#5IeMy&2=f#5`Xy(k&|DIzN0_~*
      zGi~k@+)gj-OX%i9b{{+h8gStI@Nhv`o!-uV*q;L-@G*l~i6YI<rjr9McGW@3gjSLd
      zRN7aCw)s!cH6txgttbC&VT<5Mn}mgeC;2gNr$a8ywlw{Qu+mA+&55P83f~I%8`9c}
      zk1Mz;9!mXI`f)m;HON&xVd<}xgvN_}S`2tcTMxncOgHUA1izPMTy#@amRx$cMOgip
      z6+->jKCmi%IkHNUPv$0PP5wR9<(!l330y&dX4Gyq+|QVg+8@z;U-2$l+*VVBI<3nh
      zHn1Sr<+BR3a7i-DSrldQjU~A|)9nh!>ITs#EJq*Ee1{qL)HxNX1}kg}K=B`f!EeC;
      XZCsQ48m?FT8@MUaj#%8|HtIhBJFAS+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtb2Y6h?wLUXiX{FUQmL)gYmK(;liX~hij%A81xd<f7ST4whB&*#kX|2`nvc-h}
      z0YVEQjcy?HKmY>{7)c-!AS6Hvq>@5<4+-fF@)CIenYnG7;CqknGrK!?=AZx6IWu$h
      z<u{-B91$&-kNHUonm-WBwCoM;3$_IJr&|)HnQR$I54CJc4{eXfqeGFjpL~MqvU;^e
      zgQ-*^m>#sc2omQAn%3#SY}jYU(r0AMjM*xvqCXx>w*^Ckrl7{oET96@E$ZC1Lv_Z;
      zKx8;LU|K`V*M_2zSR{S2ppvEaI|cdL;$gF#juGSsV}=S)6;=Cbil8b*B^rzkwDcTI
      zrOjc3YG|sU%4j?o?u_&$gUN$nyi`-x{nE)uY@oG%XE{w5)Bv8%AzRL7=%yKyG$-Q8
      zbg(aKHphbL$Ud_<bubp<S!WtlOS6DKV5YYw;|VjF2L9qg`1w-?Xb#QwQ=OnGF75Tu
      zz8Q=eG>_&(!hOML#_aAFwB&6tt#Pdky3n9wX^|kKPlN4b5T(A|0RlaPme5kIz7A*>
      zDqY&anw{JkiJ4n6!+mCQJ4-95x-%XMMt2625&msA+S=Hnl+goSz!N$!o*$r*TUZ-B
      z-j%FJD_YOn6^z96w=*)#plq$Oaezu_r9sQ7(oZJ{s(;5`6QEV}E*`kF0usL4AU~D!
      zw^oBHs2mce2O}v#3*Xic;eNh8(**Y!uxU>yX_~Q~$hl^FWY~<QBJmhdN|)|Y`U=3e
      zLqi?xtb$fr2I6p1O|2arZe%Er*6rPWDKojxOt#i{_^Dmc+@eA%m;klWMuXPTCP524
      za}+~_9g4*EI`&!%b2DuWP$zBiQ<tD)oB&o&4eI8}$|3)*NH{&n9nUam8#h*<akCj2
      z7))2vcG~Hu9fIaK!wYaSXcwJ{08x*2B*MWobT!i>hnf<)!hiL<p<C4vk?iVD_rRn5
      z%m%(Ps0e^z+)^c!=yq2CIjY8>R63Z>z<7pw-ksc#OvaP&h&(FwE|i{`Ef6v&Okh3<
      z@~e^R5f85~?oxU<VxtcVfG0tAYuF-d)~pPaKkr_O`e`UTt*Iz7XqXT`Wl=LWz$!sz
      z>|mNJ`G4nd983*RiZXseY%MJ8U~R!jGTxI(_6I|zLHlSw=7DtUGyVN$(hOTnPhI+U
      z@_F<X;ZSJFLO?<ibkLypQP5BC2N^dZbVQ@(Krp&4IgmkYr8gW1nTa$a42JEGK(gR4
      z6h7b5RLo4b?AX@X>X}WeH$a=|11#}{$fLQPk<>~u$tYZ0E7wL5biBvznzn*N+6rev
      z9Gv;qXroJcp392Hp*tA!mM1KzV$SLG7Bqe7p7n75{3)yG!v<YNA3@*+lgZ%0P&|S4
      zrNQex-F<t_P`b544^|FkHz7%}KYWZ?e_W-l^_=D_l)Q+<pdh(ty&atK{{EB+chRA0
      zdzMf4tMRz6O<YiOuD)Ff3h9(x;gCTCbUvq)n+>{!KB-emPdt+hDQkO_PzXXtU|T#I
      zPj;aUfMx3tfjJ4tecbA&I|R+kdEOpLLS=5R5~8=T@VrG-f`1gC+vy(G*}bshQk|Kg
      zHeTa5qNM4Jq@bl~OY8S|RBkP9<@5levON-v#s|vjK@8I0J7S4Ux||+HZPOKx#Zg3s
      z%y2n<21e;Ilac;%dK8N23C2?DC;Zi#tjk2ahmf}H^`Dm)X5n>E{%v(cxQ)`|ej0<K
      z9I5%aK~K;)uec~wP%;Uc<<*-i$haFngVH_=A1|CWHid`megS%to-*htJ%%;2AA`Aq
      z$eI+3DX$_bvUr95f<a%T=b)7kdZPkJoo?oqW0vpMqf%K#FBtSC`Z8h|AUS1~-OpnK
      ztBJkrtL$Z1xK`0i27Qgb4hR@P(CPw_laF9IlsA?TDUo6A16xrqrca9_r+0aB$i^hn
      zRjUWf@(A6MNk^hBh#M{tBWB8LJR1&{tD=_;`VM^;brS^cF+-VTBz>?e7(-Tt#T-x9
      zt48)?4F5j;z)!CTs#P{9)XAV9Ql+38Rkzp^uM36D6jwF<EJD`GtA&CQ_s09uku+C?
      zrATWD^qyW=Fz6`-J<awiB8MpEXX#XBwarY$qfibfeO_AKdW(~yC$OFJORXorHRu#N
      z)la{JrW}WJx&-J|dX3}v51jLmS9ui(v-#v6R7Xm;YID#QjU@Ww!DLv_vEIoz<)xDd
      zMl6IaPA8?|zZvv*R^cqALcPaudT31s=%4hupZ-;J;l&=y8Dh{I^lw2^A-mJo5ksvK
      z<8-(ftcrx82Ln-7mNG-bK`7A`uE&fb$w9Ns=S>6I&6>w~;Lc+tl4c^9w5yZ<Ln(`J
      z-7HEB;S;5Zl3+M&SGh$OOS=PhUKJSYH$*w1{;NQl6jccWNhR1ZJODKo(ScjfLIXZ7
      zZczbX32TcFC*m<w6g@B_w0MdqOr2+~ML^j&_IQ;Hv4)DtVv1i>d7aJaV~A=|qn&qS
      zJZTOj<Cz%zsoLvLYNcrnh-nNn9cC?VQ}5I~?@U9~idn#iTweT|ESazxLXF&ijv?x7
      zKI?;_A<c)Up2Lsl8)AVC=RWp}W0AU@K-v|Fh2#6V`*DU?ESBgcx-FATalu@ZC7Ehe
      zqSYIsK{TQ-Tfpi&)yq<M)ijqGqFJ<P;PtFA&M02sZSY;};-hA3g;*|D`o#*b_MNAO
      zSVc`Jun%yr6Ake$_3I%2!X9uBHSss>0nef)*1<`JI9Z&cIoi|u)e5g^tuw@W-Z)o8
      zQadB52)4XDs@)J9#6~RLkj!d^zb)O(c}2kIrs`zJE3@Mk@JJcLCUS!6+3Bm?3^Cki
      zDZ+#22nswymtgBN=`^RyWggw?Ht(vU7IfXL;ISx*t%f**bJrx5yEdD_a1@E(FM5#v
      zih87r5fIzN4y089vAu@1Cr9%XR})sNL%S^)+ZTkDy|i^(9&O#MX#2&UiO9J<17f#0
      zo5{T=o18sGHaV*mWtP@y8}H-$;s*pR_h{8_%_nGew<y8|jw`A^8-)7?uo1*oYq`LA
      z&h&y4fu;<hvZ!$tX#>Cmrf0M5GGmzzoN)<SR{+d@T9m!r!IA={^s={=!aF7)h6K*3
      zmWw!cI1>_pR3)L|h*K7*NU?NiBf1XWHW-ia;+N$qs;z)1+|?2wGohy_0BwY{*w3_K
      zZLb^aX^}>=+}LV$+*p_M+2nLv9y#5t$OXjt;sbth!9)!CL~Q#YR==<zF61z^;$3HB
      zzqoj!!R}lEagn%$#k(|HJewrM6Ih=-k!n3b;iuheBlh09P0$G*ySnXpqPmYPTYMNB
      zmZHv--8&$z6dz&2AI&}&a(gM8$bPW)95s6$^L|1duBdVqhs|Ensx0>uk_p6Ni|S}m
      zy>_BH&FL5r*NE$x<qf<7y3wgCWVI3?s4X6y!9L!ZdU>d(JiVz_i^nY!@o+i@#LePX
      z=5bp#4+|gGEsg5gJqKv|Ar>&LCcS~J_ejAl`Q*@Oar;#9?O=L{2XnuGxLe%I)IQDS
      zkE<dL4racn+Btjni0YBUi&Fv4d_6<CC65<3TD%^bh?m_jARZJ)m=|{2US1lU;{h4e
      zLrS&tDye*mf2|Lq?rF*4g~o!^&~C9C6||^m5LmccaU<e!CisMVHNh#;>Z09$7^{MH
      zn(lq(EMeSPF9zNv%x*2nl)GD0pPpz5vq3c1r^M%(>$BNQnBB)Bi(Kzn!kmXrglrAQ
      zaw9}F<?&Rl7RfJ76d_K>fOtWCg&BS|J3=gcwm0fBPju)9Z~<-bt?@)A!Hlzy^quB>
      ziuM4D<~JuQ@EsVf%x{QqGu4-I+u(68r<2lVSvr`+_7LgZjVZT>leV#Sjz^;`Om^CK
      z+w+*ak1Xmxm?&*$_YR0x#E+Q!kF(RZ+e^Db3d;7RZO>yz<GQVngUq}0befCs#sG`<
      zFDKHt1EV$m3-N1a{hMr!JDn`j2sV$l-KS2tZ8s03*C9b<SB!RR9%K7~MHmMY#VbZ{
      z-+*{c{E7MgIXm3!KAJ8c<a)x*dFW`ETQ)|_D3(yKhMneueANJp@INQgumhtt{15Ru
      zGkzmm!%ioQGFD5EhTW&xrIjvz^62Sii`$zM6-I8)fcUQ@5R)RiFtVrM#IQfBFtVPY
      zyUq+7a4{MVn_=B9XhY8CF8eu1=O_Q{E?NNTN2!qC71z#u8=pTSAj@P03lb1~JCZdr
      zySGwx-Gn`mk&#>M6J1yN`t(rW*m^G}5~_T%4~nsLx0^US3gMh3j4h_DGNd7K4{u)#
      zWWh{?<I}f2rK$A6sOgu}U<h>{p$<+r2UCMx!9+k##RZp~DQEd*Z9$_uFDTdo8FIFq
      z!zmK?COr(jJ-#lTPGTQgv$R8}Q#Aw7p)AIpYsh(WK1U7@!Nsp<#K!y)ka?jYkClty
      zCF%^%dPBk{AZW9d*uARA#mP32(s7<B*dX~*;DZV;s70`97DoW+N7l1rG`NM1^APVh
      zNSu_+flFC$Z!~W+&&im0Ng~W-x8UrzQZ~~|eu;A#eRp6F#zDVa&cHZ?S@aIXK`50C
      znK-yc?)S&c{p{z+c<)e3b?>guXWiFHI))P{sAqUjh}?&*xagNS?kS}*zl54<oRciK
      zPe87rl~9Y0<hD#I9Urz&sSwA`2zByk9piJIwKa~z{sPDPo*jjTY4yufanqC)jmnT#
      z9P3^Id5T=mnrzEnq~GzhP_2J3o=zp=C<weojN*wVe$mA`mgY+`c=~KDb9*v4ps(55
      zU~Vi3+A61cgb&BUE!=Grydsk{mG->3m!B({3SzYe<Y}_gFHiTr5wIy4Obp@zYeQ@w
      zZkuDnIF&VI7oV{OA}QwxN_L~}cWl7Zbl|io8VR?@+PiUQg7-|~G3S0bAh*y;zuYEh
      zMV7i9dX~xyvJA*G<aV~e4pftGD?2X=h`4#KgA~+JmXa;);pi?t5JSMi^)L4Zjf!lK
      zi`j_UIGzX20ik`l%MNMxwr1fSlo`vuug>Y>5`l&G$g}<OETlK3ZIzQ0A49%JzE@ul
      zawgy<(sFTc-YS=<G?wsC^=1?%YVL|>Ql`gg+}Q%OSB4B3<_o_vq?%wf<(F9YoAZo@
      zoHPN9H02;0410>60tWkkstrlsltYG$@{!9F9N@D;leStBJ^?Imjv=jM6IX9YH<Ayp
      zYx6zCB8Idb!l^!V8&uaZ=q!-S7UmDgH7WQE=ty*xiWe8M(<mEzLj8f^jNxEH-9Y1#
      zcrYH`jMsOf{0dKYH5eI2)Zvyir<0uk?8N|y?%XW@QLn?4%k$6}i>K#Dkg83Nb5sQK
      zAf1EL^g(w*kJ!cL3y9_NA{d+x>V3Gj;}nLaRlSK;Af0d#<jKYbdVuj|f||12&P~nX
      zp#nn!@={(dtOFBXANdB}su&`1tti~^n!#aPKOCIg5wr2>mm6O@VyR4m-;6WEg>u=I
      zJW*MHJUJZ1BzR4UL7hEQ&Rot0dRx4YSAbQXfUw1AH}~OC)JsbVt446nheHIMT#Asq
      z7Lz%-cipb-&NIKfzW9ziJmdfd<aP2!j?hEM{1Xu3vLJ=U$i(f1Cth-RWBs<HP_2p`
      z-8~8Q>YheE&=TR7jG&iPBGS^)(Y;NDZ1SM0-)@t4_~q@zH!I<xt&szLnf`Xfbl6N9
      z@=l32Pz-xQJyQvO+Bv`YbXaTQl`3y_#QNi`Sq$>JqEdTS2lxgK$BJM7Wpxh7d)YOn
      zMN;aJQC(*C*q(&Yz&o3`FGa<S;@dBA6gJDTqP?&>rVPjj8H-CRHHUu5v%6p4(xl)K
      zI$QCnD&iOk#V!&V6B_D>VUbZQg^Awf_RG4ofN-{tcV<fP)(q+|e3Sg@rTWB+m-t+d
      z{|BfN{S5rN9-k7Q4b_vzXma(mF`CiY_&k-%)_ZAc;~32zp#_Ji+=ri~C9Si@=(x`)
      zta=^;9HLKPp6l@KT43Hllj%m9N{47J-Gp~uZ=vJpR;s5<(U<%CXbPA$QWJj7cfK75
      z1l?ANw``YDGw#O9`IT5Ae6|3WKab~6u*JKm7WW;%6KI>)FiI;L#%Wb=)rwI%@iAKM
      z{jtU+T#W%lci=_pl{5u6m2>GXMa<AJw3bf741!KpQ%ZiPK~1?1O4I848kEOM-Bfk#
      ziKUItP}?Dz)c7>D)%r$g!(lXR)(xAv;k3iGzUOF8t*>!fsg#Y}bh`Tg*2k&GPrIg-
      z9tM<zeu!2mYa9l_BbfX%G>sm`i^E50F^xbsqmX_KeIBRPcx~up{BFm)KCIJ|H62Zz
      ziBT`@R^n{p>sDpkO?=&|ykZlbP4B@RKD>qYUbK}$9J~l<3AYxXtj|Eh^W-0+z9S7s
      z@JsVMMvea>Mm~ozFL=}zpnlBAmcbi77SfgI&0e^;afBi_QRO(b^^Q{f2!A$?Qeupf
      zUH4MiF45IAMhA{y)MT0sbDV3<HcLtMB0TpcJoy%$ybRCyF1-8uYG(E%pgU48rt{cq
      zfKj64m*`n)ePdqdTf9!fbN2R%aoWs8E^q}bLl>eSEBNWUlLKEt7tzId&QKq;pf0jR
      ztV6Vv3R|*E@+B*yYFIN{vR{DzFCpWrc=CIiPJf`8^e2yGb<WgvbU9stDXSgHW@btD
      zA&brfXl2K&uY0n5O=;tt+R~D`F}ji!URyd!9|f;9zI(~PORVwL`YfdrTx?zrwbudk
      z1|38H#*_abNZ+Jmp%`|x%`gWhaH!QI^smPB+;)xSYV}A1>}qo?x;`X<GGz!KaAzS=
      zT#ZkGv~z<+{3PgFnWO=}a^ncylw%T6`8FoGm2R`3&HzECQ!`Gt_g2lHLT^>yS$$Xa
      z-J|p=7gV{Hm_}t{I#q}ns4{2LBvDI~(Z*8hTu@_4Dd^L5p9OywjK=VD%RftddrPYC
      z@9FhbAMWWbt$wJdx2*a|Pp`lFk)GU{=3<6<R3+xqG_e4Gny?UmUoh7*(_CjJytik~
      zbgHEj11cGLnx4eR=UiOnsbaN9Erw$ggPx{mfFkJgPB8AbJhi^zD6Ik1vxjK1_4WCu
      zsq+Xc{wrOorD=p-+|}exH66wxaS}v0nP!M}puV1#h&DAf=kIKH&@osC6@CL5K`Ih<
      z<h>ITH%>&N10+rZi7t@X0utRtNa#rQlK3VPh|b<|d_o|aGDhF#FhDBfr2IYMO01R$
      zu@fP^ivr?IxW#TY(JDRAQS=o05t0SF!xZ`nau2)k6#6Os3|c9L27XS6aV#ajq!^wE
      z`W5}!BGH5A+<QjplY!0#B%$Ao)2qFWCC!b#=27~+OGTwz5d=&hJT>I8_Y8}M4}VPa
      zM<fom_n+x6)&yJe$rDsT%Ff2;$PfGeb&USuB5NTBfgHi#V(cYDL_O$L4!S}A12Gu=
      zKW~Tr-(2)_fSv?;3h0@M(J=wf!R5#pm~$FitJl`)&e~cv|AIqQ>N{LwEwXd)Wb>NR
      z+EN%$$lB7QqU<^S+~+Q;i}AN6gv)!sxCjw=F;(Mpmbio#h|AzXms7L2g4T$u6g$0;
      zu5}E&)>%l`It%GqXCYl{Eu>4RMpOutT0$UEae?9!hL~hYGY(VpLe<?kB93{UDjS<d
      z#MBWn13zb5Kj)5!d5zDAg*Q=C6Pg!|h^6>w+S0V_s5l<~PQbs___t<6tmO`;j)*q5
      zpivc=xE2Cl2T#2oe=v0e%@wG+#I3YU+)gXR9kfy0Nn6C-N=UtKb~{3Li%nuP$busN
      zUg$I^e+A7Er;AQ_u}^d%(6m`L;5WO}q=r$^JubFk?G)QxiwF3j_%w#x=dtu8XPQaW
      zk8nbXEY1|Yg&}t{<XO3p4`Il|g(1QGy$bSu2$6y;`xr8u3wacfj}?I&5M00@Di9L|
      zA%_@pI2ZB>3>hy1nGokF$Rq-xAY_^$_vJ!94ajGTKyDHT738_%{T3vfOGP}JXH1+o
      zE-qr!54xy2mplhlly*XwZ@S8{qaFD|T!xrn`L7UmS&?J-D;f4G7gihoMGSeV2-%N`
      zk1NPe2rd;k#Pi8s!>HG}sG97zfckBaec6NTC3~aFzdmtD++-o=kiD5<Kk341vabO4
      z2Oda|mx|jFE-e3@;;zDwcQfQYxsX4_ke?NSyieS(ARiEi3qwB0kPqiV{u+?KDFXS3
      zcvL|ig&!AmsS$=8%Y}RmkbfuwIWC@5ke?NwD-8J*Lq3xW`By;xtq9~7#1|FhbMUx=
      zEMH*AFXuwO4#+o(K)whsWAl7Xe7!K_HyH9;xsY#S$Xi7qzaze@AipQRUl{TghWud;
      zq{I$NmKK5hiTJ64{F(T9VaQ)F<gaoe1Az3Fx?aEht$0;I{!aY9Fyw0t`Nv$yDnL#t
      z!tyWTuL|;S;_rna|G|*|%7vT`$QeZ-|1JJUL0%~SV?pMJ`hOYqEf-aVx|{>lI`T_h
      z7w6?ADP;)|g=D1{Ng}cg$g(^a`B)$?0`hSl&YmO!WIjyr;gWO`NqG#?6Yl_c8|_0*
      z#YVBAaZZ&nDkr<Zs{F>q9B&qM4P4<YbQQ8%?L#q8)~GF!<oj2P^m%~f@^kLEoZ34o
      zr?2thY+y{zsJo0m>KgcLKrV1+Qe~Pv5m@h{$#OMKm+w}y>RQy^H~`O?b*?olw;iW8
      zVihz^E|yDp>%zC9789(iib*>&X&RMFw=AoXjg61XWhJx=JAu{9oNWSseg0`V6Fb}|
      zdmGXB_%%M&gDdA3ch&k_zH@nlDBHoegQm*UXr4Ts8gVytqU@%1a;t}XyQ8sohkLu?
      zDN(Yu%9UVTLMPHOa+N#*Tz&FH=s=r(2umF=b_=RSZ|CP9k*lAlN#k-26uS0Nxw`RL
      zoGUaw`xM%bpj#=;z^;?<Z;txZhZ$;HBT?kbGpSPUhKhDlojh9+)cd~$7C|9Tk|$de
      zbK%a_T;;et1)5kkD%ZKPYp>{25W32$bY!e_O36yuE;lIll}hds;gcKbRDcS(NpdB|
      z&evlt=QGA+$043>3xwPH)VMr@ecZFd)X@{6GPxJ38d8(%=&^SQ*k;I`l4~y^&y;rU
      zbw6rs-piw)l)G!>`$lBnA)1fbZlYP^((G+oHqD1q139p!thQ`K?yW65;@Ki;GpA{i
      z%utOyK=b8(T8Nv4CGuQqkQXQx`mCVIQ9+X&mNBrvoH8yGN(D{w92B1%Wlb^(XJy?s
      z$&^e(&kJz^nUVXzQ^@_8Lo4PKOEFN%!QLAA{!w}UQy8R;sx5GdM+qJa$P45LSPA@B
      z4i?xBsDS;b*4>AR<-H{()=o@b=o(k+`9pBSE8*N9_DoT0N$7(QU95Lv@`LgcYl;<^
      zfMqTpmzTnXm%E6X?9~cMdtABWaaTyY`r3%`tRIZO663GR74`--UMC@YJbKHIK$~h_
      z`BC{X<{&>VKY{#qHLy4lT%+8~Jq(lAv18qkOYatspxzvJle`)5Lf#@jX$g7~K3SKg
      zjbrjwcYC5LE_ny^cBcob)bWZ^d6&E!Lw)j7@*WGyqqBP<^L@Fb?kT9V`{e`H_-+tk
      zDmAkYQPphUZB#kCs_Zr#ULW?k8$)f-2Vu;Is2WG{oXd6K*atrVkcX8TCI69z1-_1z
      ziN2HV$b1kKAAZV}SOY(bh&+mj)cXu=-^p5PA><KtBp{_4B_ENG0ub-&;BO-ZMwS0B
      D?M~66
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Im&o}40@mv02LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNTU!%H7=9-Q65?7R2ok|VY%PgERzsyg6omu?OQJOvL~8AlOv382i<=F$Kc&B*
      zxAq2n>eIt@e^j4-vxj8R^zigzcXnpJ!~1@x{o~J{e+6&@jTk}<vrV(DzR(UeReSBI
      z2b|mL9@pvyZ?)7l|Kpym9qj3~){1$k+m^Y{O(%v3!+1xphXh04E#1_eMTT%DyU7qK
      zT6La482t*O=wmpup_{zY-rwc+V{O;q49N|vrWu=>t&6>X7;*OW7Q@`e|3g|}_^4)c
      z&EWw^hMSp<4s?BAYjSnD-Dq%|*Vo0aknLUvO8HVDjzNYigd!)Da}=+fh*z%Zyv!9f
      zicGa_H?$gY9Kvu6XNjTf#n8;AS~Rp)OTh@vF~k~{UD5W5@Kqm(D^hiA-E0QVyIO?=
      zQW%Tjyd3c!uoaBs0z-e3JCC%M!)=CiMxx@WY}vXaqU(u}?IB!Ja2aWagx*>=TaISd
      z2->g=?ZNH~UULfBr*VADaEd$xaS{4g6?}>b&vThOdsdy{uB`4e+wsCGG4s*6CpK>w
      z<V5u>6k^CS40HqNK}cW{(=kjjjCQY1YAVP<rRvkoL+d3GnU|6HL}VlZHwm176vGXM
      zA=i&+j(~E$6vqt1WbaBiQAvS{h|*03v-q5<k)l_$D9(1f=2(=ZnT!m_EtC^Q5YUs9
      zC~fng5G^oV_%IHVpn_YtO&K%!>uzc%PB{E0{&&2B?+yszEMHf>;_0$WVM)O<iVUY+
      zc7|n_soM>L_hAJVt>BtyEMi5BgH?vxex5|AdzNaqDZOjSPIfbfwIEk+HLZMC;|Gpz
      znG8`^oZ;g822P}k=0v!er^+4fiUkCz`Nb5Gdb~)~2BnJevPM;B`<-{LYsEwB_Zx#E
      zbx)b$yksTFwBG^*eOGS^R}rx?T<Re!C7VEs)?6}-Rm*f}W+pRPzqCY9#UY7|36Voh
      zH^dYWXRF%2ZhS8W5~&P#RNOH7oy#!cXQ%DxhU$)K8k2I}b|e|$O?p6OVTKWMT;dI_
      zZ8%k$$lNUPLtTuTF}X&9n0uF0<KI$@Iz1Ttk~-;4;5qtfP>^leC@~rDFp-<rH%r5=
      zYPIbeU)9Br=W<{-@Gkx8+-Z+As6Obw3B>4&{$KQt(N3k6(HgyWjQCIV5ki9A;u_TN
      zr|7MC0<@l{9TgJJ(3_OmJQ)&3UL^<KB3YR{!stR|Iu$v>#UGHKPF@NBf}taPvJg#0
      zQxV!^j&SXFTrdBKJIOq$h>HlxY=@Jn>JdI$=u7p{KC>O3r0tw1dUop_7Pp0QdhQ;h
      zRGxa{LfXMMxaR|2#sC3XCO}IBzDQt87{)3_Nn)JVG}bVKGUl*>1w5c#1^4lgEL152
      zU%|qbOSa+Cf8~=UYFH;ZhU*l)FGx3poz9m<JMXLyPsnzKZWKHs>kknjk4bz<yD0ff
      zla~s8-NzsvlQ$9GP4ejFV2V}|?htz;-ckadNeKvb67U4u|EgL08_lP_<}9tDo<4O~
      zbHuyt#6j@>nsgYRQOrEtd6E&h<L~f%`xx49@1Zv(4Dk;7UDW=geygW`-Sxu%0*sG?
      AegFUf
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`U2hUW6g>kA2;Eu=h5Auz>qmvHapRNGHb!G&VuM;*!b9H{7+?(S;&xa4QNEZ+
      zO?>bN_@j*H?qb@+7$0Wt$J~4Fxo3X<`u+pJL)<SQqp&^lWA~l+!E?Qjkvr2mbl*qr
      zYtQ)Ys51_=Hz>eTC?_Qo&mXyIR-xK{KATNU--}G(9|p#cbf};X_%daCTJ}n^L$9wD
      za?w~%X)CRBtm7y&{%B935XQbwmjEXU_8^FR6Wxo4L&41N8{b4v73z(@drz8O1?xpH
      z&?RKCYGWA{g>0kQEka?<#w8TRtJ|=#B;FMpB`hhdw2ZIc#M7P*J08agwV>}!x?X4`
      zUL>t(Y)%z!xBjaX_b8gvqd%LF19!26`@g7DEK7gVeVWFBERv-TC33uL<0iI*?L8Yg
      z<R#a%v5i{_rQ;wD`}(C3%BvT@>VYWBBI59ibIHl`1`0?m#bA^X0TN3|XmjjX#%10s
      zjCy>R{x#<t%FgZ_RcB+4nv<Pl{Y%nym3KYCe*_DUiTQ-xd#GX`*Z8)T_TxG>7!gT6
      zf#~AN#0>o#*j&tWY2_{Fe8u`_IvL1-e3E>Y0NQCm3aFH51JF_rR`PRD;VtAlBqU&)
      vjzhRAPwfnM=Gbv8(wE%M85-wnR9FwZMHz>vp-oyx7bb2lR#0$QmBH?Bkl>Uq
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwu};H45JYDa#}392$RB_x0tF{(5DgLqvO<w4sn2E=E;46xoWplfAyM!Fd=z4R
      zKtV;bJ2M)s-rdLN+dF_Wj1%+-hb!Bvwcco@pS^0BoqF_Ys=e9p(&?sQmmnhSg-)gI
      zO5GM~E<GW$q4jI&h7eyEYy2glKRI3yqO1CjQ}nT&A;FL^%8lh|`%ti(>!M=9IIl}x
      zEwnS8{|O_1Z=MK8`Tua|gmhN7uH<VI?)^bO?Wl180g^Wh5C({Yq7F!sEpbXV$sU}%
      bB7G6jLnbp0;RHLPv+n|SF%l==5nB6SChkhh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+iuf95Iy7AabmVN?w6J}r3E`!SXQAgMIb~}UeZbxRS@daw%vq9NgQmaAifG-
      z8VL{|z(*lw?WpijQA^(O%$_}S=6HYo{`M0<jHU~Vu-F@pqxbSeM)G4Gjg(5G4|%k=
      zBlA>$a$yrz&qeIYT%V{nsT_?|N~k{7L!CckwBJ5s>#1ZAz36uJQ0=F3n01qMuoZL&
      z_RHj0d8nW+;J_nP{Gj7OVAjP9Vd=jN0&|!r)O#u~RT3Qkpk)XMmj$liDt9n)805E#
      z$26U5vyR>I;83Oe^02QM+)j>Uzavv^@@dh|-|38Sw|(x|Q)9LW#PrJ-%*wtD3L^>D
      zL5o%SfeC`8pBX}E_`wA{X0nEvd&!t|&zQyzxW_shB^eJ=V~b^9e`Ze!4+PeXr{3#i
      zoF1udZAKMS;g5{9XfUk8mjI~pms6}RXBlRS`g(JM+I;ngyYnzS#ieFgi9<UMoj9z<
      zp&N&_c!Gtme89prUavESxluMYP{(7;;t5OG<T|iY65<AKat5s97H)IXIu>z<UyCgB
      z#{iBzA0ya%Ec0pvZSra2D856yWl<{=tbXCV>}$jW&x<~y#Fc%Bj0L<$+|PJoxHdQ%
      cywg0z{lDTpCIhxv{HuS6oT*@f&$||aKawn<$N&HU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxQEwYX5dQXJ`(o#4(v-H>(gJCrvE4YvZ9@~1rY$uIfi$Fz>$Is5T<nW;#lCaS
      z=QIT&A%uifgm`F$gv2XE>KiXa0mKjBM*-iQjUAetv^#UNJ2T&YGrNEN{o9`aa=5EQ
      zQy8ka&Flkf)5=;8gKXWl{p?1Ny|rjLZeaV1R<N!kqHyNGZ3|Z5Y}(7dRj=E=LTt)$
      zonTs_Cz&cLL~eLxJAod=4MY)B=%067d!bodwf%y%TD27h=e?3uEn2=K|7~L=Sa%u<
      zXXg*hxfj}`!ja^B2mR8zRktToMI8eQr#t3~?bWi^*VdT4;9G8E>ys^dsJfBRHz#
      zMTJA1&0!1!$8el@D|R3Z%#jHz@OZ*2d$JuAb~4pP6Rz)dpX|d4yrko#!pTm)eY*^t
      z!f7I6?q$a<J8tE6Q>Y@Ra|tNCV&GK_kzL`MA~}~TO5n2wUc>8jEH!=Kc7r9mQln6a
      zChzB4uEPeBNU=^eZ__S#vXsxKiW2p_fe|TDv{dyPESkcofo!<BD!h4O${DzTi}c@U
      zT4nLq>HlAZF#~VnGHs>is#B8Hc(^L-f^WjWTaqE-+FOAbrVLyGn<eHn@}Ao|;fjJ{
      z=?A(jwrZ-N)g6UXUHd-X*bA|e=lNy&YxnaEw8bIv5ywN0b%ov#(u#Daww2@bNT#g|
      zqH$8pueXcN4oW^>%~{)JCsd`VOsAKfMxAUiEPKnUI-iEb-7#=m4w_i<ntsWiain^O
      z_qOe*R3AfRw1+nlc!7f#g#S9Vi<C+%=^ga`LPbM@bAnP9BN#&;HKVnOQruZN9OBFX
      zYMPb^Z9hwZ^S`72-VP4$Vo<})f!H7VLV9Euros+h-o|GmnO&UG@QnLE;gC;!hd9PK
      z-sZT&F`CZw<T8=m4$f`k8Uv@dG10MQwlUKF$wYIR7`MH#jT8SfW%OL8mkXDeeO!Sv
      zDg5D|FS{o!;wUp+X8s8bvRRH}ia4g(*4HqP8z>@=dzi(Cco!ezeLSGGh7a&L7V!m^
      z@HGnfmS~?){~mYoBYl6uO2}5a#Ymeia)Yak$_EHfah<2snC&~}$g?EEr4&Jm@r-kv
      za$LAf_mH#naEc_Phs|h-N~WcldMVUX9Yuc0QulP{!Z;rhhed6b?@tLP$~>Ko4Az*j
      z!n3c3XfF`~b9T^<;~mTpk=SObN!yH*g_-ugIcj={`@J^quec&zV?K}DjG8*Jb#WaF
      zW7LStBd$7eZIBB;#4*jLWQ-0DldQLJnB=~N!^F)t4igI@4)M6ky2O=YWp1$}HF>f^
      y$@eFed~8C=Cnl79S3=1rgi^^3VrIok?!OklqR@rkx)zTK|C<A^MUi1NEdL9rYeXpk
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuw+fEZf82$zd+itfahoT(R1rPLqtO|+<F#%eVnnE-fi1BLZj_v3&TX&~;cn4m<
      z_!8bgqKStaFMKHDKWzgfaxwqx{HO1m|J(WV_v?26ck#$V55rhpwY=B-fP4I%_L@RO
      z-dpWGdn%NL1jF>X;VrJ^f!K|Bvne8m{uQaDe#|hEtDdyl)=~IIEa!I^66>KaZ1f`K
      zpbs`fZ!W)M!J&ea^feyKTBpXs1p;nI0<P*_B?v^F2dh!NwJ($|zpsg=mZ3`GBE#@j
      zs9o;vnQ}L7W6s&gV8}oXGi1Az+MTGsRCVHHBaN(sQCwnh>Oz-z+*pkw{(;Em@-H`%
      z7-N`R=W0f~4X*q^xIU!_zY7r)Mj8_iCUK?Hp(>TwmA-DYZ?|E>*BrQ*Vn`7{S^4X{
      z*^X6A?7D*+CYGj{DSZ-3W&F1s%$SxL@^4BlqN?1N+6F`3K><bLXJ*Y{<w})G$xL^^
      z)Ni%+_eAuZ?*)Qks2bLIu)`y1&Ru6hH)PB(Q9V~tBlt2Y*_j~2;D16gFe)EC^`B9U
      zDlK2e%`hhP<SVIoAU~4g42upHjN<lo*otamLmGZ5gEnUb#uVlB((ec)=&KL?WGy;<
      zCTsj_g<~X(zmWcf%r|6S3=JG(@JI0{(wnnK82R1xUN+tWdBzXPT%|Ql>*nDxa$l%R
      z4`#_uBT4oiAuZ6P?<0#vjN>73SV9rYSj7r%Q-<3?#vD945eM9%=fWsAN7eK6YI=+m
      s0AuEIl)<Q*xvgP7PdlT%uW*D1r{Fe`07?X2Zi6_Tq%H^}8iwZ5KN5(@(*OVf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(>rxy=7(Ko0?!Y(+mjuv6VU4$ClQ5c~<^qWbAyS1XLcs7ttFzlIZJL?MY%gA(
      zz-RCU{2i^zTBb_NUsm~0mZxWjWsBfe_4H-FKHoX#`)2?7_xC>lyoXf}1%XO4YKPy*
      zLmA3%ZI~#PhEHs`VHevC9WNQ3cqj^7IyGutT79T?Qkf(w^-vZV?;<6MQ8w&B2nZ`M
      zw$@9t702eWwzmZa=j%pC+TIZusLpH)6qn+L8iK%?03HSfhSzkY*4qb<RJtV}8RdZD
      zx-{D|)o!03mgjSr@oG1Zkx?_;w5g7ow`aC}4B%XV5%@l_#{*2j7x3%*s{VK-PB*NF
      zmj!~1p^n29ZIq8mTyR%L-Rji<uVG4Hq^azZjN(X>!{^fO3!JacyqMCZsRVc(qZDak
      z+30%thQPU_B&(m@`>w7MtK*2e?Y?f&=(SUw?yHA0ZIARKd60RLq4kTU+j|0MyOeS*
      zyj0j@meJgth~;_k#Tt#F@9os|;*VaCP-5iwoT|Gn=q24+Je1mWE5K6i`nZnwJ<QRP
      zlXVU70X}3hTD7e9WZT%h;C)`XZaZoN4>tv-{zrHo<bfKdkHxMUqngreT4`0!#z8Cy
      zOm5N1N~)f;b*fsG4O?+t-J11r3l}KJ#Bt)Pvlw6&ArD$MP6WJ$ZY6Pxp3>e(8vO%1
      zKwu@nQr0S)aXYOm*BDgXSC3i8iFKxt93>9lH7-A~fX^ZB=pJ`7oZYV^ens$<ivrH_
      z>2n6=P{cJ1XQyBwn=ZfhBVmg?uhcpi<2e5ulMgR<@XDuGp5fwp?P>?pKcl$wl<}ju
      zh$&pkk*7!ltV9tvNaQBp&a>+m7;zWV_&Cc}>tf?gyv0~%!P|HzLmEbvlncBuh#JqF
      zxDj0D(}`K&?0A<PtCM1u33@++pXdhl;7hoIs}Q2#z6<IsxC&(RyZl3PmhiL8Q|x9b
      zfyyrk{>IR6xJKW&{tGvL!kOo|^>A#ygFAm7XP=<^z!u7QK<~FPjvWg9GGh`Dl~_3w
      zK?{!Z%rUEbSFRO1_~;m|TbQqi`E?&cxrZ=&3c|oC2z4SfUPKUrCGe?Txc*{(f#n|J
      cb?zLeQtcV;oup)F??E46sYmHPuN3gff1pMeqW}N^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~pIQ6g^8@LPG>f0r@KORc#9rP!zC;lmc3&s0<w(AJekbK$_Gvf$_=Tq~n02
      zGmg*x6aR$c-Ly6cQ)hh0e%!tH+;eX3?vGzzz5!T3PC^^QMA>xJW9?K^wKGSpa&D_{
      z9d*yya2>}oU(#MekYT!oTh^*nEt8v0-Lsux@NY05hoOB{H+5%?VKI?!fmg6B<3xAT
      z`6fyoAe}s52xhHAE+c?W1rij7rT@TbGWDRk^Sa5OyOkoh3tG|O483`)q!|aAt&4rb
      z7<As~HHN8HbbWPch5!*~7;okKM;b%OIy1S=5V@w3G>Q@tRze64)wttUh2kLvH!%<f
      z!-#??Mj872U|*VqF^29dwUZIUxPl2xGIW%=lh=yeAb>=&4q<3!S>1PR-7KeN$}p`U
      zj@#r**&Dw7iR-R{VE9P4dDhTNC&WCFOCCr_F$^~e@Kb6HHB)kQ%iI!c!DUv#UBRV?
      zxYUnGKt(eTWvEz?Fi%GwLY>&Vn!_s!?%_UFtmN7@!4&ig-_;F6{2VIPj*KK8h^BbR
      zkh;wEMe&%IoOJFw{T*T(#xfpBSYa6ZcRwmfW0gVn^z6CZrH1MEe}E^=GgATAurA>V
      zL$p~1|5!l=8&tNcRdYNm!$5<sxPF;e1<&fWXt-h>>PI@aNh8bAM>$9RocwBOsRQMG
      z%e6~<TNe!-xqOM|1Q}`pDi?hrdH_N+OX#36OuHP}12jvinb`}-A86Tz8#Kx^1M_I7
      z7o&?-<8?Q5qlb1BfCzdCM69CdqbG$bg8|wHMaMSaw+Kb}L{k?SOr<_y_&Z|fxOI*x
      zKUJ3py+nb_1i9j+Q|e*Oba#+wK)xsLf^qySlCK3~B=EBdJo6cIBNtfQ{fMR6b3FEw
      zOi~!IPGbh0*dVT13}O>QWQ$=7)7ZYGGu})bC%;Wf9izxC@)0`emJk-hQySaw>^BI`
      BML7Tf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?ZBG+H5Xb*Ruf1{}59OhvD6~A7QVl0+f=P|Os39R~ObLYd2Q0AA?$+xT5<itD
      zMiO550sK(L+1|B>n7;7E?ab``=eIMH`SttuCx9(Hb1_CJpQ&DO5nhEscx{4?5K-{i
      z1be0)s;jWu<k*EnSQ{nN?T%JLnOK=4Ec^{iIfUFhsib*NcvESN;2mh)x|F8Y7*b+D
      zZR3#O)b)w*kii2VE_}lF|8NGC_EA#}sl=yV`$$9w;ZaKvW*Yi9Y#oM?v~hCjm~+`B
      ztd1%-?XE`1aN&f~DD9v%LRMcZ5fKXibjdy15izS`8_srx>2++!k9<5tkuZHGOfwRv
      zB8tSxzWl<47b_bn=c8;3)s<S+#zA=MV-`z<xl~Xej=@6-D=y01dOGaEUmvSjB)I%s
      z{ED})d(pAjk#<&vyZf<evr*>fGW=zEw;Z-E@_deSw9EGywr=(LiyL^~*d4<JpB`J_
      zC33uslkAmZ8KyAJ5htL48HQMI7IVC<gn1M>cI+?`{A;#Wldaxh;XZturEmLiKNcl$
      k!ecBZfL941U;U0JKd}6jVR3=Ee$IzG`T1e~T3@yP2XHyROaK4?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~iZR7=BI?*bukMM?nRvR6#>fR**{DfRskSXbfV~P-wN?gkx9<SsFIlAJ9M1
      ztKQXX`w?d9w9`9h{861g=j<i{k<K)k-JJ7&KJW9s=j6>lfBXet5{`k8z@>7vZauZ1
      z*_Qp>vv#GdS>Jiqs+Zc5rR}2o{R2u2L<B~TGjw-$-Kwm5zGbJt;NfrwBMEerYi@m4
      z;7q1v)ihXEnxsHfo7}f)b=tS8drrk#llJx<dvA*hWi(r=I912HB@m8}6$BzFcT*ZT
      zCD5-UzwHylN%WZLg(=WEt6jSw@V<#I!~{-doT|*$cZ#x>w~G}i(3^2fcBNp~9JLRG
      zH{+ROc*whMW!v$RN9#(C6=DeEtV%v8F!O&xG|6QQmgsFcdjg}!L1+@GIzfuUgd;F~
      zoOKg0d*VK?%9=pmJFqjW;)+Il(yQ;PLPktngsI58Y~lj0ki-LyEyM=K1bU8iIfgjK
      zO<ct_f$p+w4VvyghbKOEAXqSj{$#|M(K2xzlk_B-X1RgqQ2aPY#eW<(Oibe=HD1!o
      z*hN_(?q;%zT`gNVujW+CNtI^C#K-uAwoDV)_6Ok)n)-p0CT20`2hMr6$JyaXZm2l(
      zCO*T0A16>n;v1@$u_sPV=G}6+A{CRjO&EwOnDa3#BW>W0z`zmmbg3rp;vTz2Y<x
      zB~NZPsi4n0Sm5v&xX&}!iYK4(z*=cf?kuWR3>mDb@q8d~{XhU^;HOYWAer_F)(or^
      zpE7eYJyz(#L*xzQ1kV5W(J=7^ROLGPYF*YzRDZi?8i^LO1z%#rz&eX;L2j!}e1)$C
      zx^~??PfHJ1y|9+oQhj8Mk{ThoDIhl3mOa&Vk><nPgYDe%FdupbHcd!%SwwjYRMI>H
      zs-YvqpL6TAl3a4sCDC{Irkqf4@gWVvd^!-~mwn}Z8&lT|f1~`KfJyCp+*#DC&xuz!
      zxxSC?U(xrH+YtKsj%no#e<v`YrJ!3cP6y6uCJ9q+B*w4q<ILNRv*^T}b{zK2Fobh7
      zrvpB~c?MCd3mE3#K!li0?j!1C2jLy2S2k8+AD0q|-!S?&;teDkm}u{&8o1fsecHgS
      zHjDuh0Hhf7Hc>A!(Gn|J){s;ZRlW}?gwL@Mq<ur!5$X!en0k$#An{NGi!abW^rM!f
      zT5y&qF(NMz>6m+k%z7a23H{l!m^!zQZ1xwdUTa{jjc!U8e2)}l$aWTIv4SgD<saii
      z9_Jk9kw=;ndzbqx3S6ye<Ov^Li_8KZ;W4pKVie!tTauP#i)|G32=KBB>iU5i)$C~k
      zOO5}G$V;_&?Sl`GHy1ylJ2Cz{Qlz=W=ZW65QD4-<^oZ}r94IwvC0xcP5}efuY~cnR
      fjdH-x)j~PVI-?LmsC$iLB-Fh`Gy-M5L)iKkG=kfD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO>@&$6g|&&qS{fLFOmZJAds}Rl@wu`Hh_|pU=lDGNSZW2caHrU1dfzCa_A3W
      z*L8mYE7mZbWTqWDUH9K~(`D(olCTV!bfz<U()-f6=bU@r`}3b)e+N*+w+2!QXScnU
      z{kXbcwX079dspkG{X<}{1*J#6Thpr?8^|b39k<Qj+4Vi`1<}rKg_G}sB{&M*^RDLx
      ziwd*($}xBwzTbG_22Q1o5&<}cO@&O!uj?Gr=rLiyRG9leIB%JTP`wq`(|21tTe`VX
      z-D+rsfr?+NHa4qGSH|&VCV1rTDNG(mH&N#(q)A+1;<&wUr73jzPd(jK=s%*88pR@F
      z<wbDUo(@{OqWF}Fk1?Eu!ib4Mj4GVy__;03z_>#1d*0<Rh6xjAaZbV9)<HSYJ0-v6
      zMPbUaJZ0h&e5zo?%L+sJav_S)sCwJ>deC&eZ6`+pc@qU#q*$%j6^8Rica;m90y<;j
      zbBWnU&~@F=wLsU)US0nvD7J|UD6%H@!W9Z<KuT6MHjk~$<|^dAcbhu0Sukw_mpf}r
      z@3Z!7QM4?*94^6;;+R*s5HpjymJJaFNv>1w;CyfEF_}3Gp2Z@r8u(ga{J*Qy#1gKN
      zS{Qt-rCThYp(Gt4lW>}TUB`-nWre|ZQj%p8H*ixSyX)@-;cQ~3kY2jK5zdAM+vSRL
      z^n|faC$aRq`dNhr(;{-El)}$IhuAocw7sc!{C#3&qs~&JAzAsx#68JMZryJ+YkI|%
      zlhNOK8=My%tR?23t&2B_6s3U=_|9@v=6sr8!<wEsMD8WKDSXIxj$bh6-Mo4}Vs9ea
      zhF<h>#2?U)0fI<x5GQyyWiW(cjx$pFG5pW`E5o^>b%>MJFF5@N#wybXIJ1yme1Se|
      zdh7s`Y@a<#tFh7NZ~n5l$me`Q<Q%yIbA-7J6IU44A^bcEImlyy6c<B+Rum{EC<o*s
      zY0(bu`~tI-Gf0A8vX^H6E6R!-_=yt5fnrQ=<N$NO;nKr+*q?fxEKFt&aple{EX*9B
      z^ghLF=s}6puHzJzF@+UUDDmvwAjO*<9v0gk7HR)1X%r~&7H-o+>02bDP~rDTibm;F
      z5;jWFD*3N<z#DCN19xzjAd(^pB=9Vk5Pr3tq6Xa%{o}DrCTBjq@B%#+qpdwlsnL<=
      yZ~jiA4u@5ApJE@d6duyk2R!KCbubu@8T8O`abB^Y`a<W00k4se!8+e5Z2SvWfOKX6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBrUo7(Ew(1+s}6gVny#q)7^!A~p6^Z5qXpV9>;9No~{CWm#b@*`>=O%`fWL
      zwi9utnd#Tg^hafK?yjtuiBom%<>5ZhJ?A_xm;YY={SSay>?w!{WE*z3u&3|q1-<7L
      z+NS9ie)S3)UeS5lc5Ku3?z(!rX&D^_QGv`U(Ssm?sDu!>UO6Q)#C^!P1%ddYWn11Y
      zftl>;+3uA2m#dPg=+w;=MsQAr0##rno2w=va6!c=#spMb_pE*ML2b`8JOQyPoflQa
      z5La-CW|;OP2IzL9MYst}O1QTKlx)BxZ%wOs8}A65lVUBsRcu*pfw4-6u-Vkx=0b|0
      z@2Pkn8G%H{^p;xfrcR~V6{+kpK2&f;;ObdQqv9&A3B;V9E$eydm@2Fw={`bEL3TKm
      z(5phj4T19w(_7Y!UmC8{wd;(`=7ynKj=PXV9t8z6tX!B+(V<7hCzz#%Ueof-6Y2VH
      zKixSMpW-v}Fx_FEiR|k%xvJFrg^Di+x=M~~2D+q#c@+yjU9CmEvXoz|xFxY=DSbwH
      zcw5Di>~@TY-L^a_s#w7tHcW>3jTt5nIwJ>Wv|`!jdiQC~bhq?ciy2+4IELP;>aHcf
      zA00-$rqvP9{&yM&L(eH5X?tu^(il7%PTOx>Wv*vjJ+3C#$wr1#M*v|6<g;g|l*JrD
      zRgUUoPSmM4LyfWkqQUoOxTY?<nI0a5Fih6-iA3FE*$t=tY>DB_%zq2PyNmU#y2otd
      zP19;L`LH5&<{GIp(Mb;5in(tYX3?>Ctwz`73v_IOD{mq@5yN4+j9nECa7d?!Gmvy5
      zN+7lAbX~(NS+ajqZ}^>>kuyvzHibWP6eiz0tr%?u3GPWA=XsXmX-7LmO3NJJyp}(}
      z_zO&Ir=#guI-XVzk)BUz(}@F2X`_9-n}3cE`nW!yoKF7B@W1eJA2)wTQkzcF2)v&k
      zd%x;qao}Cl`uIlEo@1(y<v&RqL5X__<J^}K#T|+&;R5a<gEFq+J|Axdb6DeJS!cvU
      zdLCf|o2X(7JKT5i7<>2*F1B%(C{JWs=rFF#Pid`UjLAytK9iNj=n!*_Y|>h%74xkJ
      zv}A!gWLaa0GGy2wTY~(z$vEpHb0UJ$@kvJb55%<_hxqn5o0NaLLsZ>YG#NyNisDpT
      zCWfHm?~kzNs7q>0zJS<fD}MNcUxMPqeTV5osX@>Yl)#Vp=?I{~c!f(G>j*A7{>6KN
      zGt?mb3P?ubS3u?=@H6uchGmDAtdC$0L45>jv?Qj1I(J#+oBWg*33hb65A$`=`$M7=
      Lq39-WL}0xFRRo?R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+iuf95Iq|wF>$wP+Qd!UG@(EUiF<Lm6dsED5(z0%gn&kQciR;)P3+XMDf|k5
      z0m2~hzz6VAh}q2r0Sbzx@tpDQ>>SS-`^V33-vQjmV;u>Gqt{+!zj59=wsRfYLm>kD
      zDzsmQO@A=-J>i8f=u!2R7&@*OcHDsoI?m`)N0K40(xTAq+p`4*_KvJY_MYsTtjCa)
      z=Q7mVixfL%NQXUlR6Qi{)b-r(gyFQlSnguGT68tK#H;CFhzuB3IXIRKXvlLcqrjlm
      z8(q1w&XGb|q74pxjJ7y#jL|knW{fHv29_9B+O8*_M}srjsI$IcSZn*|PQU8}u8b!S
      zlkyE2o-D-opY~IWv>@^_xQlx_Y7CV*jqUh;|I!UP>S!=52NM~4fp9MVqsLTkweQ%#
      zF7|coF;wT2`C~uF0c?isRU{%Y8zYAO1tpw{W1RX?a4w#?vWbPiCh|be9s_TAo(P(K
      zXEYKc9gpTyoDq@p%#fQ>o=!A&NMemXj5HEbaY6~HxALU6@}#x$q%@Gr$(d0xXlAmM
      zze3Rml?T+U-55FRE7q)X4AU}`F^ZO%im_>#=@=zzFGl&J%D+kX3RQ!)ft0q2jFv}M
      zE1;m6*wWUqqZNrCaH8tha0|C7q8f7MsGdZUv*ce>tdj~!-YJD7^E5HMgTjPoOT|Fx
      z6ROr{l*vr8BH1Qc=?kpi<P2FvD-oG(MTFBKlsX}jz#&Bm`lmb~Z_paULmVOT3mH-W
      A5&!@I
      
      literal 0
      HcmV?d00001
      
      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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
      F{vUj?kh1^)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4YflqF6g|@?lm(QBFMI$ZmWLGOVYJ4WV2n+w0l_93ziit{J5qLQyA}CQe$X#8
      z(ZnC%k20RwU3ZsC#Z6{s=FUCmp8NRu>)Q_icd?m9Okl2Nb#m{`k7mw1baG88Te%NT
      zZpYcOEyq-rY;Dt&M&e(d2Tj|Omg9M*1g1{%ouCp(JyMo(9t+&h7W)L>v+c&da`MH1
      zXv_A4<QGZ;i7mS-Gl*lzKpF!AqeV)6**Pf7)}C2zNP)4UT`?Oav!(RiHzu6AY75Nw
      zi+e(8ULZ~p0@MB6|Hu?b+J`Kaz{F{asaI!Ax~vwTY)hxp)aox8xPVE4p|Y$gt7snC
      z9eNGBx02aVRnuW6gVL&cZy5+&GjLsF26mj+P0wM74iWd7bP5(@FwybsLMX^H=F_;z
      zdIg2`tQpMWmagTzKssCCr<JCZ%cH|C7?{S4z=&#Zb1c|vtE#M;o6}oXTeV-wwqsWI
      zcRS6d-Ew4=#)@fGWW#rLVFKb4SApw@l{i#Yr_MNascLnmo^E+00-0UA)2hg4O80W2
      zXB=0wddyH(oGZy`9_G$L;D3;}0_}0`>BXhxE;3(vjKSbP!yQ;fisL`b)3oP?5sdOi
      z0M6k&N%Uz9<Md8o0+T-N67Bj;goG*Au;G#!-lI>J(5>}>Yuq(3x!A?U5bUXWz!(oB
      z1WBJj;Br9FH}aDRkj-(^5V&$S@ad_*sQ?&CKE~Bv$<Had5FrR9-v|i$N`4UmhLSm4
      zez7*$9bGKrJ7(X+`E@b(g?F!m-rG)u!wAy89dP7=f*&K>3ob>#q4Gs6`2v=Ga4i10
      zC+xcjG8Tkg{tsmNROB7Z`!RR*ba4GOTFM2kdyjrdJ%uaKIqK6YPkO2aXFBK3v%o!`
      U611$H-3~jVENsU*31is!4V-oH#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g|@}ER<EGe2B6rh|0Dgi;5r=LBXITm8dkB@V3xRJ6d+J-BRVB_zQeC
      zF(vWA`0S4|p4r7NO8Vd?vvcpvz2}~LX6EOwZ{Gpj#hQ+Uz<9~4+i#sC$95WledxMX
      z`+Z=)3Z6=*;+J01*P*o!dn3J~--yCG1&04dia`WAm!&6z6@fV`-==24_bcyYkjuAF
      zB7j_GM?hQmi*5=@^cc`#2rT>u&boha=zFdggiyVC>A73=gFUxeaP}&$KsxX5JCz-$
      zDwTh_s0C$N6PRd6H|{PckR)+|v39Y4S`+B-8=hMg=sVXXdsGq;%Tf(@)ZCzcs5-u4
      z;4+4~AuwW~AEv-SoE*2N<C;M4KiZ`*iZKJ@xFOJ0a)W{lRKo*SCW5FqUdi4Ls?sav
      zQmk;(z%ATnEUTZ!4qE3!Gdl{{GLS)5phwnTyES<niAnmq3ToQG9n1(AggUdWS-Vm8
      ztifBzY+cq~_(i9pa_$?LQ#q=9xX6xZuK9JZSle;}c|`JE)+Rrq2z0kLi4!g>Y=I>M
      z4=^tvK5%Sue59ZaSq#d&iDg%o%G5cv?boaO?uJx~^qsx)GfG8@#<Sq);Cs<I>*(UY
      zo8BhZlWH|PHGP8A7n%uN;6KF~u+fQGT%<J?g`pRh=qZ>!qzR&|ehlyhY8b>2eNCP5
      zDZC_#im|gN7|v$D;_45KHgUa)iP)QLVk-9RCho;FhC<Hs1YKachorHH87zgAj0ifS
      z#46Mq5DBFhXQ9rFrTM;?7j=8gc9aHYcElVV)LMKdKS57^hNhihF|M6vRbYcT&oIn+
      n1kb~|a}h>M3KKajhg?iNqNRj0u|i8JYhsm_#{I|i5_s|(F|Yro
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%TB^T6g>llYOSIOzD+Q3!Nb@XOiZkCV<gcuMkB#>p%bk_2g_8x%N2<WKfsSN
      z-l6Ei!eZ_#=bkzD&U}4;d;&Pau8tH#<uQn?XZOvu+@ZAkoQKw{wC?0(ugyJ=dk=o#
      ziQz5Pb!ZHw8SqBv_IQlSGVCW&Nj`?`nIHJ_oZ+PGBs<13nnHA6d}%v>5-&urF9IG&
      zyV7FNE`-Moq_JQ^#~ee>@dJJnk@~Rdw!54m?}(1uZMmVZ@<~yXPyT?RHtXJ`T$>?H
      zN@xYMdVaMsWW+GwAwyxBY!a=;Cc3hkAT!`H>Z=hpOst_u6|Qzqu=2G6822IyJG|km
      zVK%3|%%NHi_CS<$GW5C{d0GeAdCIP+o+htXYX>73?-ZtBk~PQ!b!2gjMT$x>3`@vS
      zMh#fT3X!NNk5&3F8VV><t|_S#`Z{@q$y7&J|4)8OP<u>n#-Ny-(J0uWCWdXYDeU|J
      Dcy^e0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@?N8HC6vm&kw?eHT3?>TbP?0f^f}&t%G?8gsGK>o0dl}uRcI_;868|g{;}Sm@
      zKl?`+&%Led&^3e)ZSTuDzw?~u_Wt_){Re;zY-val7F%A|d~bcSOzTvb9or7fkHUN_
      zUOKK_bu8C!z2P+t8NxzB=wMimFn5-A7DUKBaXd#nC2W`K3BY~dcRx6yQty*uNM-qe
      zklFE%Y#nJ_GN8dAY+isB%2k~4y5rfeyX`|e*tZT{n=o1T8<u-u1&*9Yiy3k3oDi0h
      z^v3F>R~15<)f0+I@qhaxWc^dm4hYjjTjfTjSIjHPuCph$=yqh=*9=@mVHAW}19{95
      zreeU3-|qOH?TLzp8-)B26Lrj^XkY=i2wKY)yKJYbQq!4v$G{@)@($MvcQU1#6foB8
      z{}ffOz>bu{vaaQ|%smk}UMo7Z!4-949ZMWbdzG5OUBZaOdRCi(vZQpA9T|dFAQ?<B
      zII!vjc0>5VXO@2Cu!|E>wq!9yNM~mwj^mpW9B-)~Ak}OVW<pW_M-cQqzZ*0pOiKFq
      zR;<Zp*hQ|-PnK`h2!A#89_3k$*VFvf$}6iq=wEo4!exHz`~}vL<7+s^qhc6_aa`dU
      zCtw1TjFO`~rud#_FpUDwGxFehN8(>FMaJaIJ<OELUvd2>=D*=)54Yn|V+y^+iQ9~P
      ztjZZ-T3C)!^0XO~!V*dm`Werqa*9DYmGpc-FZJ~jmQhywgcTl1U8}ek!5%935ZEgP
      lD=0GtVQUITFwaNqCLq=$#0Ku4r{Y}#;sG`}l@Q8*^al&z5`q8#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)--BVLX7{;GXkOMJkY=YFH)=0JH14*@hRIzACK%xN^5Q?;Q4#|=nC!D0o38l7w
      zNpE}Gi#pTFjLcZQ=|%sjPM_VJd})*pGud-?_q^}#ecor6fBt>(62JvKHsBE$FWQad
      z6LZH*nm;(ns+6_l_fGPGGgq;l1?kkReBHo+z({*f*NTAOHXUn6-rIa4^NxVHBQT(X
      z2%OHnC-Qx6nGzVhVcC{5Ef9+4dg4#TRv9Q=DM%l@2>3A!pASKNXyAxIpl7ciA%q2t
      zqI6VPfw5?;6HQm7kabD}M+HtD0A}DL>Y{U$O}m)PmdmnemQ%H2V_VwJ>~3CG9jjsw
      z;bZEOwRg<2Rfwn@k&4z~(uYwTSI{Q}j=H7kP|Fn5F0#5|2z=s)fgvBCB7U64I4f3i
      z2%L!?sGZU$n6qrT*x25bwH0%-EGc8Ik~hn%X3bLX?&N?|vg!=_zL;*O*%Gm(0`~~a
      z*|Tr<r?caB&8(K_5*B43@osfn`-X5{;8;twqWg76If0}fpW_0(rPOGBCNO)jD(@<>
      z6-3)g6a~V4_yw;1j|^>PdSZIEs&rt%s#hy@_Q4y~{h=e94WFqr>;ij`?B|6JN>Ns}
      zlS@2EbX{3q%usk=-n26eTQ+~BJ)-H@BY|PYP1W<XqRy1%F3x16JEfNArBy6(SuNzG
      zS)l27Z1}QZ?xqSmrky9{aK2>L)~te4YKB&U)KuM_Gol;mY&MoPa9iL==R7oP@?j2H
      z<#8T)cjv0|a?XzhED9X1Yp=Vp`kn$NJfsr}cs9~3rm{u%2~K;<(iWKMBUeYQP6Ik~
      zZz-sVRu$zX_4KtLU*a0WlTDqLH*2EcMxN(b?ovC?);0xMt~6?SIcMqP)pIRQs;_x&
      z8IJd<hku7KsGoSMIfl5xYm2{!`Svq+c{pB*C-&e^JjVxrBcO)Y82JT(eT=S$j_qOW
      zueh3gg^@pTG9Lc}C--pbnU4A?f5&u&%gl6zSIkvJSWg1i@CB~p4A)1SIdB%A@r~JV
      z4p9;)l9)^KD@hb__8^jp*NC^!Ci<aGyh3~rlO4QqUHCNdZW84d@lphs;Xj)+ZXkns
      z%xcU?6QGTmbukHri!4S7#g@6iPhH?>Tu{0`R4u9A;%Um2CC?rBahFUv9H%|cVX=!N
      z+UAIIWr$fp(V84exN(<bnOur2tU2O|R@$Bpg)qP^OH8@U-mlOF54$=OZl?<4vPva9
      z>gESH^3K!a74}sz(5ZU7jwz0U0)C~(X?MKoj<?(~<&HBHTYZ?J*iG-P(KU)H7~jX-
      zdg25<HUAuUf8&$~%2tCaAL<%3-rU*-4dNc|>-8WWurQ@Ski{**ODG<7z6-*xxXB*#
      zdzCD_53#NcOzS*cJWp4z{m$uTLZ1%v6aoCym9$%(bv)8Z!`RS<2oUlcy4uUxZ*`pS
      F{sW0J==A^q
      
      literal 0
      HcmV?d00001
      
      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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
      N8&gX17dn3L{vRMSZgBtr
      
      literal 0
      HcmV?d00001
      
      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
      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
      O%{HH!z}M0i_x}T{a8Tj^
      
      literal 0
      HcmV?d00001
      
      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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
      F{|`lB%vAsY
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!T~ixX7{~u7Ax%g(C54s>BuHPhc|q1jTg0@`mk^Am)Eb7d<9M-zL%Qu|Q^N+w
      zduRL%UiQjcov|>ZQ>NE`6leSjZU1L?v#gNlMRs$}KF|O8Jum0{_4<!P0N1b)M?|2|
      zvU~ayW6#iy?;ZV_lwJKhM}O$7b&Y3_&F1c^y=Qhic3av`93ujmz;=LzK-}qctf!_U
      zFjpU<yy01tX}sI)N@?#3On*~9p<9uAW>eDa)J@Yion?W`x&PD5Zwidu>uk#;qDW~N
      z#TkKUF26YnfwYDgP9-spb8$=v%>Fl^hVz&dNZP%2qt8jHS{&~PTo{6@;!JCZBN0c2
      z#6v=Of?kG6%wSfbzDxF8O{FkaH*LAzYj4T!hOuQyf$@5$X;_;^*HmkNbHsUUvUu~u
      zsxqKMEN8@dDj;nBYW$f3r(4pwV_DUX?NDtzmk%{VZI+Wvs;FTe9|+7S<2}Q)6o>j+
      zHQJ{2!@ALybUq(ATZY}z8&21>Tje-(fmBd2<(0$&uBoI;tYyw?e%Phv)*-gzF-`bH
      zVGDtT`ubq&3FD?uB9G$}4ND4H<)>oS&0WsrRX<wKF)iJ#sx0?2{<prcRNY<du(7}-
      z1uJsL=vhv<kt|LwKXi`O+}+l2N6l1fJM1lRhVx}OvfnR(>prA9lV;m!N&RkbXGeDB
      zc1^9y1HzOl?9(dN;;4pC=>TsHpMkAcWjTt-&YeVO=e`h_2s+m{FI5C$t};*2k=uY+
      zoVPUNgv-QsWr8tL3HDWk1D~Xae@h5lBG`~qbaay>8=YRaDXXSBE7JpSuLYF_E^?Hk
      zy#6Bm@iO2O>ag;e;FnRTQ9sSq&-^;V_w~X7v_kO(#tOe<Y#(QD6*4bz;RU9m%fH|p
      zH>a|HV&+ly0NKWmQIX9&fAi08bc|q*&r7cK4N5Iid<kc<j47;O7PonvR`4<B;Uet{
      zUNG8U=89o)g>ZuQSMVO*r`intuJT`$yE){2%%2FaFpGtK6zavpmsq&3z$WKOweYBz
      zEk)DX0X}rmiigkN{5}6G%{{njH~&>;T4l~_NOLac_|Bsif-3q@F$VvLz^XoT1iV3&
      z6fyx6ZwDW$#J6CSgjce~qlhXcVBJ;MJR4t~w-`R<j;j3<-)?_YQpcSeuJfd45Y#J%
      zGH%jM;1(<F$t==Fg-fX>c_=HT<8ohzSW*GYUEK3Ul&E4!6!%eih0l-se;dL{1UL!Q
      qai5-oxjyifba&0EQ#i+Ewn7-O0OLzM9N;{5+_^Q-`72UK(0B_RSH9!`
      
      literal 0
      HcmV?d00001
      
      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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
      Y)|=2`y&0={FSMoWJoX~T6}U|PF9dhSivR!s
      
      literal 0
      HcmV?d00001
      
      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
      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
      R(9<7eXqu@*FiaAk`7bJ&A{qby
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-BuG<6#gcJ{5b|xf{A~`RxJcH)mmDO)!HZ$r3wYHMQl4shGaBk;v@)MYVDnE
      z-=WvN=~`;m>O~)*575Wy>bK7f6Q~Jw2`iH`=j`+S?0wG8U;q5^CxEkPh7r(^snpl9
      z4~-{A)>v<48>Z=GAGfk|t-`8NF|S#US!&&Ij7HTeF+Ql_#BT9hks5-6q~X*|kMO*`
      z+OX?py*10YoQBA%UA9&%v#dc|(h$02)veZL4L3%6At-^lUaLFt#}=t5Z<oy&`mk3=
      z6mbm)MrVBAF4)*&6dDF~^dlsr{W`*kXc(BW>gMgW)uQPv7{!{&l^MHa)D{iLl6P-1
      z*s5Ah4HLaIbxA3m_gj)_4aauf#=x=NQ?Zr%+}NVHJS;9#%w}bmDkw$%Mh)?1scM$j
      zYUbTW*=SKz->9T6T(+7GyQ#AGo{ls|qBwz5VVvxJ9(EK!#|IcCPRq7ykF1u4bT6|D
      zZbUAI3?{-DXI^@oATLtKX^gPC&CPl#MpaoIAId~zuC-+%Sayu{o%Not8V%FS)Onqk
      z;arUMp44$n_G+x+VCQhS!Q@!6YBkAiPR9kD(-0Hj`IckVndF1sajF^hO4gms6$)-K
      zuIRXg&v>kxUhsYweS0ivH~1;=v)LVOYRW~sA!yebH$|HwL5?T0J6hnM8#1G#fSVcu
      z8)y00l*a}I2R8YL$`)054YP0DfsXBpX|HCluB;Gz!7=L1728?Ob(Yn!%_^Kb#ir>z
      z;XNK(lJqR-n8Q~)QmDdsh64-qIMM;>%E4o27g>U1ow#mfOn{>y|AvD?p|dY<*KFsl
      zL_ZMG_nF0Fr6ikn$ai6wZR%1^H59t=O8(!Cy(H`gjhCfhePyW_$E+5|@@%U4rkZc6
      z`KHWY@2cWm{MSW6jqPaNDz~aUs#VjfRC!fn^Y)rkGN&x*dxyIIFr1M-isQUNef(t!
      z@ShD-jo3c<y_YLd$PL@Ww<WGi++b$B4LvjQ3ImzGSJ?Nv+Hru-{Rr~;DN!zP*F_8<
      zhat|S-F--4m~TYDK_rPPBVi0Eo|MOPSt$WR!gHvD9^*W4g*!f1sKe?#<fDdg1V@Px
      zkY?avjdO?aXdRf4nz*JQba&B%V0-g7&TvIG4rkgpo_UFZmw5j*#$@ywXF6!E<!Kr(
      zAdZ_vy0r~?*hglkBA%pi%Ci>}dmj=0;|^L}CF%|>&NA_H+ib>sn=yRC6pK3cvTm3c
      zyJ6lX<{~lg{SPMFork$hPf|`jGk)Y~8<)GG-skV^GF?4Ts2MljSE{p6SBXXpe1W_w
      zmyT;3^>LQ1@J*%@C)=3n#$=GGNT$+TFirbR(~5~5)nlqM3;om+&m2B-G!bm$RyVE+
      z^Hk;Gw-ncTcZcsPjxXszT*YzQa}~!O<x1veISO)}t<+<E$ai7o#hEzW#{6VZSQEkD
      zI2V9i9JlT^c^l+?yp4Cz=aoxySMd(AlJ}IyL41vG=rPLdEb+>^y!SocXS`Zrq7O+0
      zQ^8b!8_Sa+#U1)D_d0nuun(Jxd)nRSa}W94Lw+TPyh;)u-{Lz}`yqT!J^jRT^~hag
      zfAsYH&2zAqdeWjN5lr+aLWyu9l8B~asXc8JCv~Mw?`S)u+R;-wd&XAr1DT#8h3CBH
      zKPsKiT|8fB+Si#z*{e+&rdOLZR#a`M02Pj;CTUhWuUOKocV78U;~_`V0MmHHQB;k@
      zV@!?2;~wg8JxUK@2j)|5_pjV1@yRWZsZc81#_D85d5d(s4J-Z^#QceQdBNQOOdr1}
      wU&}6r?<?v1O8WUv`uR`7rb@Z1NuD3qS5nnPnt4*yBuso)Z-h!8b3Op)U!b!@?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TUXRp6#fpkfiZ{!f>p7OcNo;sg0&V!5xh_-iYS&|)G%|L35Fzw442kwYwgAM
      zu}`&ceJF2Tt#VnbtX13B{-~~gI~fOX2{S7>Cnx)S``h2%`{dvM{`?ETQTz}?nZn+j
      zQ%H}QlV;kS3euj|e)?XJ9t`@%&78jAn_k|^OvF&3uyYN|mqrR3Jk!@sv{hkKe+f1O
      z>r|+6ryT81C?ukHg}}1YLxGvO%a=8Q>s<)}6!!P8;cOKxK|E<WR?wx;(DJIg)?tN;
      z9yhDwC`X-v4cMem-qJc8L;c!u54*NWRyuSP!)Ar%^{B+qq_8^-)Ha=5y3e+C&a}Jz
      zTw$D2oSV*QFR)yv8gD2Z?=c<64U!pOn}JTgB69MM>nF{m<2r{1L+{Cq>jZi_I2=bK
      zwn+fn6&j0ihTet(-*R%D64DNZx{$`Qrg1c*t_BK812I&~<8A|cu$Q`cg^4_6UI})2
      zbWCT0&ellB5Wl!282b&>AYOw8v>0ebN}+Pf$_4~ceX@Gcz#&<!%4;i^58~XCHgE(-
      znOI3t7?HxRmUT1BP~rq@H_(A&3URLxTrn-G;48GQzx8Dq5~2nPw8-tC&^Te>U9eOV
      zLSt2W*TY<87}83hU4-Z|P>HG-&M4HE3j8XSWBP5@+G(7XRP`vtTKf1CItu3uoW}*W
      zh>);MyT`V?RV^}<H$B}ceEST%hfCZ(p@Yb5Wo<`x0{T8K$1tF<vBaXswO!x96%0yt
      z@>ZZ%xd>l}E`|(T!*zvPx;V@3%lU4>$*yjq$U0(w!@vg^Q7|$EUpl<o_VOk(-zzLW
      zGVpQeanvT1L~zr<ErG9=2!xX?ng&Lt11q^$VC;4MmZJv><D=TYW{%pVTHo(xOncb$
      zEqN|3Rs?yA2S%kO=Mh~_@ybg_kBQ26*~n{_#fpmHrW_T`S`(f-!6YfT20WotmDRQm
      zxYPhjHz8G5>+5lMQWpy^&N^cCRYgrJ4Or|DIWJ2t1aev!aesBj^=7)+<1GEK1f&SW
      z!F>ZW_*4Mzlh8D;8HKVeCuLdAnsPem)st36_qfg-D_8J&61fh~m)E&mWz!kM*9r%g
      z&!OwiM8Wf1KhW9Bo{oT497f+V*8@C>tZ~oQa!~1Paz?XjA7dNaZpbb88GW9|pu*-?
      zj;X`q1iKh-IX@$Eu^o7aoH60ZbAn?PEjGa5y%toTZ!5U^Jhh08ZT}$g6q`9TJVosi
      z8b|84EMn`6)DoIU7V+jhcBbZdEnwG;l$ysrvHS`9+x|ww91fg{#<s4MOcroh1{%LL
      zi#?ns=J2+da6BHGBo^?FJk#W4s%;*p=;!oEd3p1WMRd=jH$`W?3%HnihW-UyP1Vg~
      znDY-8@Cmov{)4p3km3C%w(x#}fpnrCCwZQB;Q$-{2+rUb&T^%f|8wYPuV2FjHo+z2
      z_~f!nrZ9kq7^J{g@gs)tGcA6>b<AQIzu^X+vBR=N?+V3y4jqa}!Eh&(vKQNll_C>C
      zjAs3;sXW)p>7lncgVbOoI*YB0e}3yzZHur{ZF4v!(Q^p(OvtPx-NxuCRB1WnZ6Tdo
      z%<*mJ(WC&Q*hivANKoiDMGi`IkHRK#RyM}5sYqj#Hj1__RMUB#_j|Kg;XPRP-bBBE
      zMZw3g5qBy0I0bh?&r(^$EP7TbV6y11or1`_nkA?a*4xzYe26kAMG2Y;^$4J*1i;oT
      z0{qHijnSf`M0RUYs_o4?8Y>zr8><%Z*({ohlC4<%e3^WGSnv-h$3rCXCED>Q^m{SF
      zE=ksb2h5@H>Y$}$SZ4ghhRxL>pVbhl17C0^f^-lq6;{O~d{yM!Q4Bi1gvTTG-z?(0
      U7qna%^^+A*$4gN^39Y{WAD3T5@c;k-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?Ur!T36vfZbZCBP2N-5w!v>@tsK^9^nni>;BV$x(oG&J>ji<7dt-L1=1{8}ca
      zBt96Q{ZPg;U2H+q2OoB3?(CW0J@@AR{PpcSfL-j`m=UOTlY##}{1p1(srLIyW&TI)
      zztKV1QSobrHY|aSDXRUn*H06b=v-M6Sh>s^V+2aiqa@NV1RlG=6kID!;}4N;1Y^kP
      zeWTtMu=dk;%0U5FC2UB6z5l?BeU4D`L6oS2L9e5-R@jM^KqW|z!nhq~k%`YQEqxrF
      z2&_+YJFcxEP@ru#bDH!|VFJbUG*OvA`R^K8q3I7%t|_;8qV%9|>b)Vcg5_BV+>%(t
      zZGr0K?W8apcLe4xH_pK-Y7%Q$7qGiZx724QsJitW5Qj<EKh#;2bQ=!&8xr^NfKukp
      zrAzL=%6i*iU5Pq80ZHu3IO--nPQl20)1bB_9$}lmiMsIHa+{_&=P(^)N9t8%dSAXU
      zY}>{^{Sw5l$T=-?w{eB*ETbmx3*2pQbL$Mw7anJDjjO{Q@KM4J=6I^*GR&jQh!3!U
      z3L)mSh$<)F!V;DlTc*3`__w4O&6;<H>z?-&H-BJth`U4Fn?w(X*qkJ;5CA;ky2k`h
      anfTerfXqR;0U=B`0Pbus^@3K7^_|~jU(j#>
      
      literal 0
      HcmV?d00001
      
      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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
      I@gunWe||2;j{pDw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2_v<7(Gw2?Y7B6p-7=Lm42Y6NhL*vs)14(K%!}-Qai(k7u)6qR@2>>Zba|>
      zBhE0xH8V_@;lkkxX8bSy1?4=uY0{L54i~%c$3D+F&pFS#?_dAC_!Gc6tlLNkW*+#>
      z!jJARZoz#N7V5?{3O|R1^>Eer%@wzClN&ZHLH0l5O2JM&@QokF(Sw5VUc`N1g29WP
      z?}bZ(^Vv!t(2XFd{p5wkN(ZKmP@LNoSf!w9Qb;20z=k6zz9Uel-Ux1_;`wH+xwB;&
      z8}3%k2u3Txwp-hD8=kJ)n^ySH+ZCMYSMxrNMM09~3#R%7?+FwP1dn{vP|mlsQmHyc
      zu&l}+*fn9ZE*NsFRVCXUhTxQgW0(+}>`m_~v@t0-au7R(3{E?k!n7d$z=StUt*)4Y
      zquIG$sG`QsIyi$51U6&ixY2C+?Lfgt4zieIV7o{P%O1d++f>B7gL!-`aN3Bapy|g_
      z%PHzAI9O1eG;zAcNkC5?vQ~kV`FQL{-`;DTdLW}F+f`H3jTAn|mo~l-9P07JK@k^Y
      zeVQYf-S0zPe+y0T_!<E#*ph?G7!wS$(6u1+?*C@vir{pglf73|3d<-txT>kz&~j*Y
      zc2)RwHSj#O?FdE=IH%vgR%7_xqW?5fu<GD~ZVY&S)%+?*-3pqGZFAj=PIAwWd{!l6
      znn_7M1H1(kz{U{Y!(5fQpX6xg^7GG;ddg`6hoZ0q-wPPzwQ-oUsW=QHIKmYZa1^5i
      z(b+M)$9u)Xag1?o;RMGRKF_trNEdi8+E|Q0o%mx1^kgUTG3hKOF6W+M{3SA#d<*Zt
      zf^9v4mAsT(dV-N$ezJv`7C!tvDU<x1%T)jP_wP6^ozt;}vt8a9Y6crO#5Nqq6`aBf
      zW;rgPghh7cGOk56<zn7;O+)PWIm#2}<nakUr9CGwj?XwtN<te)bqQ@yG_o&|Wd0G%
      zQHKpP)XHgAwD=k}hf6wriRBhnv`(Eq$F**$V^O2l>Fjq%;})qm=>PXod1EnH$FgaB
      zg&U+2mhi5W<%5*BNqL8qcS(7Vlt26r<pq4xR(YRg={d@@`!&JVtj@o};oSV5z)F{G
      nH1gPmgDoDXZA_pVF~x^0(-D`!8hz%C!6=oP;QU*%ByjT$6@O)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~8B16g|^!yHHj@P()F_6fMigqVf>~;XxuvO+irtG4W+711^@?bvp&)AL7k~
      z2Q=|P6M6GT8PDtz5GnDYJ9F=xd+xbsCjIsM+jjsDF>NCwP~28^Z^z&BJ%3+&k(9Cb
      zL3=BDNvirnxEqB^D*cja8<xOeL-ew*gFU$(`%z?Yd4az3j2FlRY#oNx_kkAZFE=Dz
      z(W@z9Rv;JdD;W!Pmrr@mQ4*4$3sj)z1!jx?<GYMxcul}s2sdQ`S+qH5LAyY<IK0*j
      zfer^Yn#}H+gJu-WuFJs<bPG5tG2q3<j;wGX@w~vpTMl{*K~u%AR!h`Yz#a72=oM&B
      zrl|UA+e>R4^c$$P?;99xc5v4uay6;zk&PjN-m{vL(lU<gk(Qg!K2~I;gHQ>yl>;T0
      z>$@8=UiCMsl9J0Id$0L%VB(XcrQZcL0rxVK&iQKYo!(}Xd$NqdoM$Ugel_?+mjuQg
      zct)tb8PuY%#-=tUFNTW1j^dfoCNrD(yOo@^{c|KxcpcW`id+ng^6m!jZ`>Gw0XEI@
      zmqP}Yxe-2P%iIT7oB0+v{9a-7nK+B<g!>h(?#L0Yx}!(vbeoTG-F>tC)BS>*{M|l)
      zwLW%yfc)6;55@zBtm{D^262zKJA@)Rig1%PgZqre*#&q+_DOc0LMx`xi5a4wuyT%-
      z^Sr(pjNmEVS-=CL`^iczWEtjab}qGxWM|Z8gk_!!V~cg|Co_yNHW+cpPue`6BuWXX
      z8Pxz%Qp>y<MrQa+3zr%c3XGl>J|=-7&C!anv#u1#<O;>T`imf!b{4`sf<(y#|5s84
      aQ;bc`1?g`Sg0A%N)DJ;F)83Ow;nW{&r0N_1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYgZdp6x}xo88RJP9;Kz0B2cS&&_)GoX)1~-)j)Vj3~j8BNx0A{lNmahwCV@H
      z_=|M8z-8C!(y#s#|Ae~lWXPjH*YeBEJ?Eag&)NH&d;j|9_ZI-(MO8yY;Oef^%sw`s
      znpyLipWT<z%Rce58~%!Pngw6h*Xhv^6G*-yFz?p)T}L{8D>^RldM{)zTED<l?|%M~
      ztnF3Z@4Djz;&&{^^5+F^CX1(JFS)M0XZg8e8}A4rmnsXy^6s|O5yfi;5;!Z6`=3Z{
      zW&zx}qUFfdX1yxCl3BH-z);bxnReOqEM<qznE%LX2wXd@=%W&qS~&sDZ;=p~IPJs{
      zO@Ti5nIk=c;S(5>uM$iknoN}wU>6LG;IhDIZ*Yf{hARSt$F$QihBpjMU{aueSNcV>
      zDs6%D$y5u-Hl5w<rtewKZmu6!1;lk7*YLK6w*&?PxULWbNu=0K`J`#u)MX^ug|b$C
      zENgx)Rnd?UxYRD?<%!Tq=emI#$P%gMNz<qL7rT+ddMXvw_&&Q;@=#Z*Fo2s4={NUD
      zZO3v<+xmeMBJjR}n;2y`wynm#+aP*k$MR&}wrYD6Hd#oOHQer=Z26QEpIxZ=mg_94
      zwUX_Qfe)2z1C*_`MYZduv#sMJENJ++SD^13ykiDFL7si6H9e0oC95u1EZbHy#7-{h
      zn8Tu)-+Kb-ZpNW@h2tETSZxBIVM#+lVEomW$G|d*0(!t_qbZx@KGMQeZ$dyVaOZTa
      zVqL=;$FJR}&bEOKd`{V@o*#GxE`;SOoQ17Y;0<n4qV8^6JC^jwQLse8oMWAw@?~k&
      zHDP1aB~#6MV4#98Su;Di=qT^D>QT`8xC|U@FE_)<?HRdn4%C>akWD|BC4JLvdNp~^
      zQrCL8_W``2*kY22qllmn8Xr)DRsyP+GqeiaiSn<dGt-AKe&#ZQbNuT312c$Y76V*O
      zw8AimAzD0uVVoz3T8-cWqhq*;(Ga#mOPwE2|B6e0VC(?n#dIb!G<ASCmFrKW4>8@z
      zb~Zr2#ggW51-FBY3X=$7#xu<K4qt!Dh4<QdGK^3)hz?XdaLfk~imM6;iWU)d3j=$m
      z4KTx971NhKz-$Mk#r`gHEp`F*g+P4R380kv0JnHt3HcL6RYInoWA1^XI2irAO+NP<
      z<}VLM{{8U~cUOMFr_%>m=_H#%KMyYRTO`y9<y<BF8iiP9@7DPWZFIFD)owuwn<z2;
      zBu{>UGRqOzYBQS+Y#^SF9^if_TZ`Hjr{R7VwRngs@bCnL*a-*^iSX5N1R>OfQ*^=I
      QuY><L%4Tif@*9EqAHEH^k^lez
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GSyL2O7(I7pU}R_o6o?BT7^6d@PF!LZ+>l@d5f=ywnq^?F*f?|#Ll2lllei=?
      znnbe)vsIpaPD+QWSd}s_dB}TyME*pQ^K}nBqF|Ya>F#^`yWe-t`IeqP|M~Sd0Gsh+
      z6d{GxBX%w^nw(4~l2dLXqjfeh?k0}72eq9$%vBT-h4>?k+MThCV{6;>txFYZ=enEq
      zq)=kHdTc^rX}4#QbFFluUk|%ZwpAhKy=+URbV@-DDwOW9Y|GuHuqEETK>R+(NuROY
      zR^OixkYKIN{R)wGC#7QuqryNrDivD)r<Z^i-Ial$4U{3KP|<DKx+ga_q_cg=p|ln{
      z&Tul_pUhgaE^J2J(-x^VEd+g56*3Q#f<og$ma`<OpEG6atUw49_V|*mNJUR^p<Xhf
      z-CQP$)e4ml3LQfOnnaO0;q;_|C>F`nQwCOGox<|Du8Sf>5m#6|CvFVuVH#+`28Bf<
      z+U-sb>9j(1yxDh>PTC`hUN>vmBdsyU*kmAqr)f)k1>2hV!=}ys;&_XJt=OheW=-_z
      zWcJXhQy#rRakSmQv#3)rlIgTF6}(=QOr<)d!sPr523oO0AxdDf$+C=h7J$tbitH2F
      zF6@b7w?fq%cJk6d8}|A>q`E2CEVrOpBmsd+V&qYM(ZF-46Ri6TyoCMqQ2-}6=4$Mr
      z@JV+WIDl>vD}Ziya<-q=PWFVupT!@aL&JPnHjf_)cFM}?_Ovy8CW=0Vl>sR|$tF#-
      z4ZD_OcgVBI)NkOJ<gbzu{Z}M2mb6nb^kP5?g`F6`KTC&(M%l8ho%1EG3@7nw6t5^W
      zJi22IyoT4=^B$%nIh|u0)fDM?@VsrRIfPUc!=xK9DZVzK!NMrZI1{e7J6GPeV}0JP
      zHxU$L)D>gs2jyTVR#^6g&bqxiqq9klC7DXzj$c94VF6lF1!ChBfb?MDoa`&CedM{|
      zOf;p_exOLaOPqvRGf@!55|6sqPu-3^62mxL$&DlJJZT_<De5;*mYSKpaK@zz)fL5C
      zoK=B{hn-9=Blx6B&l^Z%EQ)tn;*UX5j$AM>iZe2LyzWvN4w1)_NBTCEqQ*&2WAXKY
      z0ZSS>!WL!sH{hy)YxszX)oDG(Qf*@w)CB$O2~ns+(c%*W*Kvc^X^PXIOiML!6n2U0
      z&kWeUPG1=K5?7eytR8bFbw|;2iDjqsS@vkknvfAL=cWzZ#J5Z&hgF9yyZkIg;)9Zx
      zQtfT<Wv`RV4(olEd<H6tAI(joGMeZn%wGvY{NQrX@(THg@Vb=y<uG_%%+*oag?Ts3
      zmJKslVutUa>SwM)SjOuT@7;Eka_W_Hu2gfc(YHqpYPsS`Jb~r(CQmD{l3(@+R-umT
      z2<mzF<7l1|n-=pf8U|+2cn51t^ETGr!}>g$^Vk?HHcumJ&fu9Mj9L-_hh;f-GsGUO
      z<8U;w*MlQO=r(}E;a3QGn<OH9x1XM?Zlb*qpgX+t7Mfe?@_4>y<L_8Mjp~hg?EC|Z
      z<#rD$Pg6d2Tn?$amOMIt`u8t0GDjBE6LLR=?Lr0TW;G6ycn{(@ge^Esu?`U3QI6j}
      z52NYhC}6ChkYdlV&;LR_JQL!op68BGq!7=|GO!8>Y`Tly0fAo?{yUKA<ry6B{skup
      zF<F#qC36KFXT}F8*C0b4r(`FXwUZu{S_S~?!_VFd+Ku2elnTjr4d9*a;N96`-ksg)
      z-C4^#8Dhsf1%W#WPim)%nAY6I_`vEJOyrR}R)iDt!i}Pm&ZKz!@Kr&!s&E!>(4CS`
      zRl)69o)NcZ3$t?*G2Y&sW)KpU^vvMgEmZo8w-1`E+INfb{7M;T;buuAhqahQGh-AB
      z*9>BtxJbo0BT3^DE;Fjadx7>_xsu8%VJW^}4B!(w$Aq5uociTgQgEu+@mF|EI%|X^
      zr2OhdomF{!cn{-weB5R>&fwF+-seTfOFiQYtfz}~e2F+N--o(BKwXcoSTXE*aun?Z
      z_16LFZQdFvHN$y)Q}ph`zDlOo?t@(#!2WI?50QC1T&IT{4|`BbMi$FN$^R^pR`{OR
      H5PtX%2#1y%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%}&BV6ot<~OSM)(1o3Bs#s#9W8WUMy+>n@<GzKGKKj=iOWd_Ssp34=93m?FT
      zGTsp+YV4wO=QQVjbMDOh$Lkw_BWyazFjVhk;y>_b?(>oM2SUXDllHH4n@bV3Njk6?
      zc2Zm|B{dJFh$qe*L*+MXhGEE^hBDM=42@clg6k+1J%+j&%pfh*A1EoLZtiv&td_bJ
      zF0xqg;9!m+AJE~KNxvuJ4(~;Rp%|ze9(8#f8a@4K>HBcVu$^}9EM=1+O9ALw(yZSR
      z8EiG8!5K>brKPN9TEf*#aC<0pGBC;4JglP3;9jdFz7gl430?Sc-v?%PY=K(ov+1c!
      zrD<uMCv`zOOVz3G?T_KU&^7~)R+lQ^BZosQ(yltOVF`Is)PMq(31W6dtkC0ID4|T+
      hGLfeEW2(ku*T<;*g`beM@dfuLrYW3Zomw*3_ym~EhXw!u
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^*-qO)6o&sv0*2Hq4f`JUkPuRq7D^~vfD#A+3PR-$6Gp+**r{=Vz63YD>swT+
      z5~-C+dsV3qRrQP$oPf$jFUGU@%zwV~&)C2JeEkk!9B(AJ7zWaMHgcw1DiP(%iexx9
      zBk!%quC-%ivY9QeXLo2xf`_5!k;qa|B}2!3se396m2;}DTJsFkfy5(f`-Y*tQ>|#i
      z5pp!5BL@tgm~q0raN~{OaPe@F>bTcs|c>O7e}Kj!AXa;$L%U&2T!+JR!KVqRSI
      zSf}a*!_Z@}4w^72%HSq)2LEH>ceOE87*{$s85;jpCWH6l)VNA2mU>BK6@hr%u3RiK
      zv;|6gV#ayK(7A3!MTmrUhHl$8P0`blWLDF53{|(dxq6-A8A~<vDs(b5i#Ps^V$x23
      z>P}<Ki#Bu%S9=(midk%-J<C+}G#TdwL$8cJ^fOc`Cns@>pOZiCfOs{CVF^Rzq;ql(
      zo{RuS7#h;t5;hBvZGA6ga;{T+V5C%$%^US1gs_BBhFV9=ej{TH5xN8<^w!S1B0|Sy
      zOx!IW3dSiJO=zb3W|(SPr5t5GJ5Y39?3!Af+6QVGhWdvf#9U_g>ZP!H<e(b!Sd_3(
      zj%UA<v4mwxYbhoXic3{GjqT$zp0c76Rv7w9%W+NPX+>Ky)7f)UFFU9;hW^#-3~eIw
      z{YvSe{B|yXAxW<nF?0)}xQuDch|#8umzWVoY{_UrD-}ogsI0g`A#~67jI5dBYpVDH
      z8XtW0V*(Prq~fMlLH`U7^%AP+SxvJzt-Gn0f}znoyq{_4LJd8=)Pqi>5|gN<k-rdz
      zI@HsQHsC3IBqBx)Xr#Z8OB@%?nV>Dof24FGX*l!?HQ&&7=<CR%>o%B!Ka|73tS8v!
      z$su^tc_jL0H(f`0OqL+pDLu#w4;BbwkrFPGbPS_dv7x34;to_8&+)>B3JV+U62ihp
      zf^Q|fSw!vnTQFAyJf*oPG!XiNS3fcMNnpkfeXDuAz72}S9~h)=o!UkYi4vQSb^_~U
      dRGiA+z%Vv#rsjg4!xTUg+mwxAhvHq>{R^tZST6to
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g|@qw$xD&T2utIirC!>D-Xs*vBp%<CXIrU#`v}^6S`#Ct=p~O5Alci
      zup#lmAK;HNo|!fnNNU{V&b@bM=ALu!nP0zu`~<LxO$!-;M+f21J@meKu6LZceWhae
      zbK>qM?^WOP!(^`)D{p^woHe4OeiW)Ov5*s(HP-?!JaFH24plc1$aRNtEU?y^Q1z_9
      z4uPKXe5g)%?eV1Z|7O7g1;g@15D17*v=dsB_LX)_>j_M4`JtcG1?=i1nDeykHi<Q&
      zeN{vjC5c&-1+rDUJq>|t5_wGN=!S%af{t!VOrt0;)AB?0c6iiL@t)TSl)zjo>Uu%j
      zi+!Dsf98^&KOnch!1{kuYVxz&MPl92e6DKLRf$WGI$D#sJc_CkS4NQ|F#{=3{16S}
      zuG;oBozeweH?)ERvKfXdZUo+7pavFP)}El>IX(CSF1`!gCY>ywmqpJxF%o)8#&br-
      zleO{WY&;noPrmdS-e8AZ=a_wDo}n)}r<iwYDHa@&;<}SdvH0DbUgEkyEZ_-p*rF28
      zID<Oo@f^!$&)mm~VZlncMP3{~Q8ZhP@{JgpYsIOZa>=r|vy|elvz+3dQzqDbr<_k=
      z|Aky(TR?-rFWJ^B4ttxWUt<w(Shi`P>!YG)(3LSXfwXj{v5J<?jI5%iV+(p$k0Q_g
      S8nX-@V4Ys8FR+1!DEtAR9J~Dh
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTW=dx5dMzi_{I`KXj;;wrcKjgJ84aUUPwa02~F$NX_`x2QEuAUCyl{byX)OH
      zec~b@z*}31OHrTwjFct_Bwi!+*YJSE8|Ir`$0-#-5w>>c%$(VoZ@!sx9{u&pZvajp
      zA4Wi7;JW3eKQwQeY4etou4-+kZ#d~0XI59ulI6@V+1f0I5me~(yvn9^J?&c+qJ_$G
      zwPI<@Q8=C3O{9Tl-0`gsM-+k!Ztb>$x~32sEm<Y!tU_BNndi=UrKn?Q!_x+$h()3B
      zjDdE9D03xCUvifhv^{Swl(j-vu2L||dDAY5-ZTcCrBY4d=&ryKOPlRll4h@gFe2?F
      zN`A!{P5TY>qEDf{R@S;oaEZxeK8iRFhVg>J$^TWpfkTKWL_D%H<+8*(Y+wLKn4sX=
      z_J3e+ad??s8;RjXB*RGT+|qye8%QBW8ok70X5phTcX3hM5@pE1G1-gEI9IAg)6oJd
      zZQv!GV3$_-WX1A|fmc1tZP88{IPGb-M0?G^u%|6az)?x|x<WXS<u92R+ZzVn6q~V?
      zB*Q_IPsa?5OM`=!UU9-Wrx4#BysYJD+jgstE}mN{=&DnySPC6CT<z*sc?!wIPW^5<
      zd7KH9II=Qa=cUCL4dkTqC@0^~!(!QL#Woz<Wz4M-<Cu}S(+aV<ifb42L`kM}&l5-M
      zxD-bkvX-Uo@v>Q~Y0hislgET(!r|m72Kev*$W+RN@*U(34+q~*Q5&U)qKu_BV5HPT
      zbo@jufKI+Uya?0$VuoML;#t}Z-y2<cjvDc8MN+-YBat4Y+8&~N5BB|xo>Y*_dgJ%2
      zb$py!L&q8p{DA%bs(&3vTdTo3=9-Exj{D+eU!3&CnRSf#tA1bX<aM@=;MJ7xlVMG=
      z+H8DMZ!CI*bQ1hq*oV)tO6eCn$&!F;EaF`f^Bz4uU~wkBG|61TAWArcWlX`sJCyIE
      zf*Pv$lya4;uW%Fh=zkyi$B25+B<c_*aGvxC<#$M^w8krC6J4oa5r2Dd0~ZLij>Cd=
      zs*cFe8ZuMz+HCwewC$2ftz&Y#M{#x)1QEt(*o!ZC<$TG*vx-yrnn&sz56VG5T@wlu
      zvxp-E)64%Q&PIR*PGGtT?-8d&V&**3@VpPN??893yL|(fJ&+#n!=XB2Js~0-4tZj;
      z@kdX{L;9Hazv8{i4ENB7Z_$tMcrAQSa_-|Ie)RBO@bkCu=9+kkNiG$yg*mxQyt;C7
      gk&sf^<t4%f_Om*vODdbCJ%BmPQ_9T8`CLKdZ%DOx@&Et;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYje{^6g}%loEQ;E(u7BV5<*+s(1_AP8%&`jZfIzDI!y`v&{3?#Sw@jmSxScg
      z)DP`U12gTkKcGLV!&ym=Wo(A@i|$H$&$(ysWA*QUfBpmDGpv`86PRzik@>>fwM=U-
      zG<_)p^Ow+k95!2llx{=rs+KIFAaLTq>26^8+p5(`HU$jV3e~QBxb;G|LIH74Ag63D
      zRs}{^8=WvvZd+h-EoN{mw{14#Z*_r@mghcK+`YPX2qDX{a}+S1=W6s#<*M+OK%uf)
      z-Jn_aY*|Jg69$fAQXpTcZj3?T0|O<DmN3&jM@Gd`q#RoYqc};q-Gi4gjnkTBR$#g^
      zsJyzNJ<b|9hYzX4@_p&@$Y-cyz&Q<2*N8a-7ckF2p_k-<+A4#Px)%MBfiaZJTzz7o
      zf^nWtAGd^>z?J`-tum^(tPk|5K&5h+WY?3_nFfx)5IDA`T=^i{*^<G!wdF`%P_Jb<
      z8&;t7d-|~uZmSNpA1Z=C$yOcT>yT}%EyE=*a&4k#x+&2;`Gj4?o^d1#UZPXOS5M>0
      zvc1yxO@X2<{cxMv)HJda_O*(@a#}-8*zMoMWnJ$0jupy!T7^N6Uccqry20m?3J*FS
      zPzg*>MxO+pYQ9qa>0Qunj1rav&JB!O9~FC8r$IiqBBwuyz=dq)`VZO-A#jB7-dyS&
      zuD|qIf|IJ#U^yJ?<?=Q&E}N0>dqF7K*c_y1oCMWbi5w@n8#24&9qLJt_c?(Ar!wiz
      zY_O$xH`qI@a4!+reSs-b^<w;}T-)2zGt%=<zQt66TN4920_CO`1ueOvbem3fXF9pB
      z7Ibnk$EnKm8Z01(B1X8%=^G-p96DO)w&(LWJ&$6X&trVsixGfXdyV6@*?mma{=)R;
      z<cZffHTw!@Ug7*cF4nmGm>bnix?S4G!taFUaD~s)aj@&8`HIuMh_krC8=;N`+~l1M
      z%+QbYxQfqd^-9YUf>TQoT;K~#(gN3TJ+@zxNxv_q_J+3nP$y#|dXZMM7HfZC;WsW4
      zDI*$%?=xYG2Vsl&8n?JFa2wz7sn4!OYlKnw8+SJInymRY+oPDxNc>VZP9GX6he@kB
      zhD!M%1MW%@_!jd+z!%?+{A?(Ag~>?NUrr<E^1m{EHUmFrkhufRck$hOk@isJ>LHM7
      zDDobwk*K{EYh)RFos*Qyje$v*@UNM6iNG4}#|M0Xhwq~Z-a+vQk7J4_aqQ+B@>93~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`}b6x}xv2I4@0Qd&)<e6%(s*tArwHb{XW5KF-V(oz-IkW7+k!%Q3|#roiD
      z^~t~ByDz#{0hg@h5Aa91+;?U&87LsEHMw`@p0m$B=j?m<=ik5n25=kC6hs7WmCbtQ
      znf5}<XuD3Prt5a*J16tVSuNPQZqDj2jDnuC%#u;A+nQrorh-<1fxu(l)@l`_uye#l
      zAZqQJx-D>h@f`SBfwnEHZWeb0`W6G|6}{kSX1S{KytP;}o(PCpZ@a+=MZM-!_$g2C
      z3Bxp;Nr7bYT=7QN36rymdJHY-Rndiu0xikW^$rMJQV~U4443h?f-3?e=g2_CJBSN(
      zlyzsuPozINdQvJf!n-OIw95!rRSaTCK%wKTn;}``rOk+n4#cF*brtW0Y&PU+QpH=|
      zX-b8PA^B}g?m7i7EE=Z1RNvmx?KN$ystfckS_Q4TuGxls_dm8e6@&F2KTpAqG?(4D
      zL~&>ib+KKeCWx8e*2)YtoXqD#SsU_eW~N>$>9$^UZL$hJ5J&_)KEWi0JNQWU<SrXa
      zz`X2Mbk``#Znsr*qg-)VANQnL;S+$eF;-<lrPRj-RL9oLotkFrX5l4Ua6E%`tIAZ)
      z&g6&<Gnp2+c8WNTn8q-LoXm*ojmi=+p-HYy_HJ!*T20$Bs)l3eJJ~nNcm&Z+ZC=GB
      z?o-JHt;S9!&Vm!@q{MPo)v_N__f=LPtWU3c&12#}#Ik}VUiDKlT(hj|bHh>b1s)0X
      zNCE35tzLEf1778D1ph06SMjBSHG%Fx1Oe3Nc))<kH#HPuCU7wnOE$G++1mm`;b>*u
      z+RjXuO1uec4HGu(Dbo(3o@5il270}F?2SHwco?@a?Yu+Ygv;cz#Q0j(_`xvCL9n)|
      z6%JYcNyIG`1r*u)9bQ9TlW1~wR%)QlbnOMMHd}WRE5<ol?ngBt5L>nCc0r$`js*tK
      z7~(f&6)?p6(L#<<MC8chE+Pk$yK?xrE60qxa<p(&>CuG?{O#u3_w<f%9ZMacCzakq
      zUn;$i{yik*I`C=_!*X+tn;UX7x`*^1F53J29bhcrW3=KPM_m>@nBWxs6eCo18uxLN
      zr~Mv2GPuPzMsj&_=*vs(vv|#KGK<aBYovd3&9Ka+m5<CN$49cg%jXK8F+PKQmJe}f
      zBc5nKz=ywk+wSnbv-!PMZs`$0lXs4c=E!;h)5tT%0_O36+Fo*b4|<FO-kZ#`lYGe%
      zpKup(Gq~qx@SGV)wsDz3_u#MS^7uq$+*CZVk8Cr1mkYhll08Nrp19#so_i239)yeg
      z;Rw#scG8!lhsE_8xIjNyy4WG6Sc(J8G~=|<2KXkFPAtHW1^BTbok@J=qb?IurlYvj
      z=Z-@bLX?#NQVAfHfU?4>=3UDC@9KkRxJqJC)+%uvy5d4hkxEf}q7mR!@ttq`&dQ%y
      z+{emscQfSPU?$zyefKO^srOUd9oOBHY{Q+#Zrvs6$Ly9@_i<MMl;<HfHV*LBaUw56
      zMB0NqzGgQ(|8NodjywMta&8u3GYI~alw=kIe(=R~AHHQZhb?ctVeLapH&H#oz2aT^
      u2?_ihN^-!b*3NsXqeOC2TxFl+|H$AM7syj?xLS>i5|%+jxfRlm!1xdD1}`%J
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8B16g{`JY$+>Wg(?b)2wDnK!7rqU64cO8NfoT&jisH?!R>C{ZXx)qG%+;M
      z#Q5xwGTzx;STHokht8e3J9F+iXYTaZ?{7Z<%wa`CgfO{hHM9H1fsr*1-E3V5C;QRO
      zzHv9pj%}Jn!xBZ#X^0Xg+H765E!U8iaQvN}gpu=r=dlQ#OVX0=GGQTIXoI<B+vW%9
      z<_f1sAxLhjM2N216_G#(x^-yK36K8+Yt^pRZA)0L2i03(@*B<Cu5h-DT~iPS3U=8r
      zONJxWI!H#{s%#MMw4)pnR6gVg9V~z_)^7iaL_*9yWcLU|7pi5g$}YxBE8($*aGQ0d
      zd|1b2q`E-3rXz_F!e9sxO4M+jki5Xh1V%BY<0i%l!+RpQ@?FDuAscnmI4atvEFXDw
      z^9impp<@!a30=(K<XbeISETfERhpHzq9H$t3Uf^7y>yaM*L+_Xc1_5=D(e{FZ0R)n
      zURK;Hp`Sqm2knM*rEPH`-k7)e1KXZVPle+AWKKht(0i)P&nl*KI;JqLX7_bu)NB?H
      zRi8W}Xw1!L*T=~3*x9^Qc0`T4fo({KMOG^N&4#NQAm@pRN>|j*UDBBy?2@#~1j-ZQ
      zj9W6yCO1;-z>kSdyXln0E2+9`=<nAxt0eF}FbMx*{5rciYKZgL#j8B$J2+~Y>6sQ1
      zUw9h9B_0zT)l=@oJbHLG=5IqU`gp|$(2oHIQL`il`MpOmgcPr%s&xYRmyDwJBr`2s
      z$z;Cb>Q9Uw<3<a&!csjR^a3Az!jOwzIo&_zm!pX44uJTHAnirI126IocyU_g`OFON
      z2BnKkU6oFK$Lw}IbBudCYMkGR$6I*tnZNi#Q=Tj9EV#hZUbCzXX0d*TMJf=@e*{<v
      u(4X;n<r{@E{Bm1o+~N)j+#;5?=+PnMu;jV&^xt6H{{&kOz!aYdp8o;OfhrXM
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E`%e==5dO9lj-D$bAU-HqUs#G*->AhWidGAPU=?4<0Vkfey?VW({sI0$8dDNY
      zj6eHF8NazJtwk~MlD*xX+4<(1*_r+E^UF5?C-K}sMB(sishWOetyyX7t)DL2wwHe6
      zr|10nWzQ`XmMm|UA_LK_PfohUvRkrCet5D&VW1VS1xle~!YMiaWrgu%ZVTrNu3LER
      z_?cV-sDY6g$ty%B-4)wJ8@6c}(EkV3;2S{g$T=l@rdnLGy#;HjU@P?G+-0kfw>(Go
      zbz#(h=~NVkw_@DjCrQXCw2{6-VyojD0V=e+Z%ekP(D%1k8L8xoa7hWfy<+>-vc$bt
      zV>kL^V6HWK5pS_?254Z2@%))Y6N5--9Kb<^&Q;sbTZJkkr<bg#4r?3{l_@Hx;xG*&
      zKB|%25Kog=v04;yN@KJkw%&zeg)xoeNGrrhI>2Z8jAWMINM6iNYMc_YE;_mAIjkSc
      zcifW6n9gXN#W|{I`kRW`NY;(dYg`cHZW_x4W=qSST_lE>XEY|nyqo5ml!Lgeab?4D
      z)>>_~yryw|!?H!Gpj?LX!tv~Bcg<emT`-i9yn$N^LyZL6Yow6Aw(_c4@rBJz*_)U`
      zR_gQ)Z!6in=J1%*SSCnH3^~jgm?q%A+d|_WW_de-x4Eh<SGTK)8#oQb858%hU|?RM
      zx52Tg)_4F`Rjlk*LZ%A+zw>*z5S$G=&VOH~8<l0`Yhkr0?h{S70h`USvlGmDx9Tn1
      zQ;zgj-=>G<xX@x9vi3OI`7U*GHiCbQyDa5xoQ>4zv2~aqxr|^t|0ZYP1UmSTb#avl
      zk6{P8xuXGgqK8nj>O~)4I_3!d+()Hzs1f)NbSXF&QtQ~0`iy<wF_=q@*07)B5XUgb
      zNDaqCc48f;Wgf5LqRf|SxY{H%L`T3l;m<>gGl7fjmJBIQP;x0C*&jNqlhhc)B&jJC
      zk#eVX1UGQAPVF5-i&7T<imAmqwVjd0f%rOZ&wRq&u^Q%@-uLk|h_;OgUBu`Pkf$(!
      vTY=|Ph}B3>91rm*NKYJ#Tt&#E6OZu(ZA=uq2c#vv5X|gjqANTNI6nIYs629C
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GX>;3D6g|(eqr??mY1)*QwsgU97qf%{Nm<%7(3EsdNJ&|p_{CANC0CZauy1XF
      zvXrH4W%&S~7?=TuNf<iA@R=XQaPE^LyN<&^X5uI5-FMEt=brbZzyALH4*<90OA85w
      zO+~ksJDES7&*jeqxr)|)?o^OF8jR|*!5&}dkMN0wq{8L}0tdWu#dEbAgputEYp#cD
      zL{ezq?YK^GzrwD}@B)aVo>zL-3Hpa)oH>a8o-u{wfLG9Iv|*7A3%0`D{{tz`)<7*8
      zc3gd^R-VxQXnvxk6_yWslljtE-go3adYBBRovOl?1ru)2s$Zdv$t!GFFghwvA?2NM
      zwXd+EMWw7$gd$o-icVE^P^(DQ-8NRCs}l-0*;s+K3OCl5*UPhTv%<1@3Z}6R8*FUE
      zEecjqn>G_6(-UHp@@_FV68Mf=>`#+ovyCm-%23iv6BJfv=12C732eqj53&krr#e`0
      zf>2Lpe?ow^+t`7f3X2F-pG{^?NO3k38PO#@891KH!ufQFp#cd8rkRm0Sh!PRbzF@;
      zO~2(Np+UJy;||;<X4s|B)tKMmiIW8FAL<$F#69S<aIeD6|L!^){n*VS48_r!uF(`L
      z>jE1-^O*YFj|VM0!2ZRF)u(Oj!Cr;VidPMjtfwX$ZO`#h6Kia!$g!r*VW{iX(NXr4
      zQwp?iR?vva%z>T*+)Ck71;v}C)Nmm0>)?o2bwVAfJ!M=j6VrJ=KS_kWUd=5KVO3@*
      z>bN9xj3QCylJ2)~h%4f9;)yg4;)p1GlwQaT@lX2J#^T6Mk|iV=atr$G9`ZXbeUf67
      z&@bl9K{~lyD~~wOvC!2rQ7?9%Q`T;keK&p^w=sqjB2~)}mhO9JM1e`K#6gNa;_E5x
      z`??_TVzsAjJSiBGQ|ziiw;*#9HgdR)8>4Y<B*^>BxZQE9S}v}$P_!9XudLr-VVde0
      zfg1M8-kMV?Xg`gUC|P)xi8V*qD1+AStkx!~W_t-uEJOnoWjKk7jZ@&kV4cpFYWnb$
      z!qyhHZn<ZR2&7M2(<tJ!jWamQ%JP+pb_)tS8d0Lk=A%T_m`t9N#GjXKKi9PDb1mXU
      z8!yRe(h+zeBD*6ySI*LA6=-F}wxvU*W&et(Z`de+&RA5g`$V2!6f+!GxS`VA;<u&6
      zoUwgfDdi{iF*zi})$<ucr*>AQ$4?u-T9hKZO8HK4nu#V$dWyrM2yHH}k8E7RJCv_#
      z&ZfxI^!-vEVoiH3NqsoeMPCiMm0EC62h(2Rm_Ak0)qo{$YBaP{&b0`lIO!3u=1=N}
      z9C;P3xc())Q^e%K&27j36kp-p94&P4x0826eBQ><%5K{}i}cUDOyCCora1z4q8+_h
      z%&QGy7?xlu@3;WVu$&-rwE{QtqacZu=;D1+-ZT;XaiU1f#_TLsXS2Uz&7W8|gY`4m
      zRKL4*2HWby%LxGV@wcA@yGeYXNx%+)!UR-8b|m8x{3Mwp8{ryBdet@DF)m!o+TNH&
      z@9;0Ud)o}|t5YmCwG0vJ02e=E;Jd=5QGH7&&;a(4QehAe@mIv!#TXGQvHnLxEjqQE
      zw2n4lBw~#cco_Skl%mWB7^}!N9AQ1km6EJ|4F|{D_&1BgKQ*C_H=x=vs*Ph9F{q<>
      z)S%Mu5$XU($uO0j!DG#EWdj#BG8Mz6@VLOqB0Rw>X&ARj3&5wE0jvKR@EO)0YIvI=
      zpl(@Kod2Pz;<E-ZY;}8-qQYd0)yWpCU!1?1+ViW$sKnDE%HbTf7nAi+rKv;NYbcKI
      zXj?l2=Qnt>sM0L89lSlqaRx8YtIgIqPpvK>gNueR8-m4(_TXi_LMjrNRwWp{8L#r0
      z?7`RKG#d6E*<P=cgnRE2vwWvPVJjxEVgf57P&gmAY>+hJmcEIw7n+-Pc>%~d7g(_i
      z-dq6kt!Bt8{~3}eW7LE1DVjxzdZh<_$?l|SKwqjm$@Ae{U%Tl_cdFiz?)Db#=rTvz
      zRVwu*)%l7i&(}P&zA^di5AkEwdilNx+tQ17jnT=D_juLD^*fEGNk(tM`;1EwYaK50
      zN_O}Mao(fMJITB|vfI`&(+``w_AObzGyI_~I%58gxN99Te@Dnqm-2&|2ZX}MxMD_r
      n_nPq&d`dQj&+vJq+;)y)u7qmt!_S5{+&y!rkir)di>v<t4!ys&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GZF3V<7(F*l6Pqq=DWw#UH$hB8B_Ie&04br>V9Q%du?Xlkxinjn-LToT1;ID)
      z<*R=8ALtA^PCFwrj^CW|M>(E*ciC*ymKig%*|+C8=RD_m?oIyr_m4jT9L0A@!~_n^
      z+0E>{xnO3^MK4>I(#_uYvRAz+x#W#ovRb~vM@hstj?6o?x?@Y*^CJ@iJ6Geaf)Yra
      zwrtBgD{wMBu@SlBRPR|{ZXyH<F>=Gx0`a_4mML_g+dvY=|APwkYN*}`%a)g#wOQ#-
      znX^?X&_Cgn%<8o1TIxP{822hxL*U?silcVr1Ue{RVDE<EL4g9D&Y~?{fr0gEWu?k1
      z!lhN&oek+V>#FYU2DV|a3-sE+7QDJDzg1uoyIId#6I0lQy$1H-HG$-u)XgSDde|3H
      zHSM`<(Q_?(E|((50Ryk&AVbNo8X>SXy*6@qTEV6b3?n0uvKnJ$%kwRz{F@4B#K4<4
      zEYMA$*4udcrmC*nBXqt(Zdp#^sK8JtTrP0DvWj|4U8QgY$5iK!3k*h;T%MhmB`;SP
      zp6<d4ypzO9f!!~kF$3@76y<7)t4-PD1Z-{fLi6dzbmBD5CUHh!ODL@M+Q54_C(u=Q
      z8otPuG_|lsZ%pY}J#&H_J6ar?x>X&g$6!y2vdUU4$L0{wpaT2Dr<0tATC-NP9?DCm
      zXDtwETe=YRO%YwNYSL~njWB~uxZ=vY(sgAynqu6ws-ASUB2INYeR24rfZ)-`l)ULO
      z&uLgbJDW%He)Xbax@L)q=bffqX5wn<Yt+l`Rb?)TE77?NU!-su*Hq(*9Hw-EAJuqa
      z@gPMnDGGL3E{&4ivN>j*j8WubiN^zh9!5kQP$PBAz!=7pxDzD|O-SK3K2?Nf07klG
      z$*DGLHsy=*s&x})(K_YBD(e*2oPqZ-o`QvYNz6wH!zE{+ikiQul;LU!HfWBjHtg}3
      zT~-8j19@B!*c^RV^h}ptbk|y~SFxUfn;2*FSPpC1RF5`V1uPkmDj?C&lf;_1>e_l6
      z=j_lD^=7P8al!_xnaHaJE%1ebFY!27vq224EAhztBUZ5MO>a_q6{mbn-fzl=M?L$a
      zbz8OUIzhBKRdkweNse1;;~i-G)j6z|88<0ze>^(*qqUvqBwpcn7w-yu-obM+b7*7*
      zsb6^+!zO;Gcm|Fkf#c}m)m}dgz3Af|6R;Wm1W{L8Fu<R|IJRPt_i?qY2JknCqGI-C
      zRxp&w{Ei)eVb?PDEMtG`?u}&}Y7zGn064|(90^X7_>2}{_&|Yx7_uQrk+Dkbw&yr9
      zqc}EqJYB(C6Tji@L(9mupnG%;7YH%N<Z%r<=%)s-y)<SN=OIK)O%cE|mxexbY)K;U
      z0ZsGGJHcFKUTn`V>RbDk&@!(_uw$WTF=AgNw!nv&&{&hW6kwgB)2ayLIWEt1@Uw!e
      z&)QILMNo|p)xZ?46GdPeH$pVkaBAxKxea4hWBA>SD*H%ds48Z7rMkwI5unY|V1+i6
      z*|~y`CrAE9?{nOq=}YycR`AKQk(N%sd2_6#!U?kI@_dAEDAYWJS<RPVi%TeLJ}$I?
      z?+))3-+<z~tN6NATbEH;%jJ-(POkezawA*=A=g02)e~~r^xyB{5zP%GGIZQ&cWY52
      z`lFW!5Cyr`X2;jbezZ25z2`p$)+VU-MZKq}LG?b7*}05H%T0flo@f+*PG4wXESf>r
      z7uLsFY{&WjWjNIJ048M#Jj7>O-y=K@JUScI_jzkQ`Fq3<+*W?v0Q)O^t>>M)pT_1t
      j7k%bmA<gjwPXmq-p4Cnf6YaWxin#b<Vg<fYvH12s^4CYx
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7K349#ob$`!VNvqNNl4N5c+xSM7EDLiOuna|(Z7d`Cl8?v^$7nT@)?Ur5cV~S-
      zpo9=efIz|#0wEy@PDm&@Fs<!Ii34o{4L#Dd=|PXQX?i5RQhKCK(uV%u_s!1C?(9J1
      z-_PFNH}Ctu`+e{G#;^VS%jbz`9e=u>W-u)tw~O6}&0}V_dED*JSysOLsN22U-Rn5n
      zBN?}z5=@KAc>1ztp^!7(36F)zu#Q=_ySr!=Ev9(`KH3(a+`}|8Z{^I4?e3k(TjnU!
      zs(~`pK=Ph29~L%@7c-?r%d0OM1Ta)q$XL-ho;Pz7nRH=`eT->M^)<WQ>jSP#-mxcP
      z0~RMYrn4D4<6g^D)4qB?Q=-oqwHk<NZi;HDPQEp#sGgGYZC;8R$dGRrq^OZnOtS|v
      zwzZ=;Ib!Aanj=|wq-nrOo7w$lJ|n+9Vx!3LoxBj3RorG!8!b-JMKp`4Zlltwo|ZDL
      z_(fc2&=Ojlq!n0t)D`y{w2Ip6>0+iiN><ji$GeA47F=sGMXRX;j>|gc=s;#9Z{|<J
      zwssv#&FAJb_IS_g{YhE_BagaH&doS>VQs-ZnY9FZZHl_-67jy}?#eqkEAIkiRW*<(
      zZjvr#S`eVx&Ztv_w?>L%V^+SNE@xU=)#z~O4Z4ihi@UC5nqNik!PWbP<?0k|5RcXt
      zTr=;Ao35^>Yna+XUa``}e8xSw<wV+2cGlA`F)a%i`m<SU+|2go$BU9TJ|9rs32RbC
      zJ>VYF&Ql`cEv8i1Iwn47Pz^0MkVe<1=t7z$YWAmSJKcc%&lL6)Z5!TK8F{dt2AMjl
      zI-_b%8#F*W#Vfm*mbb?hgO`d3Ff!hq$P}2Cyd5u6+cw?IF>9-1yIal4Og3X--MseI
      zhoTWio3M+ML+QL_*<eC#^`j|_T4QE0>uNG2k62a?oaqTGeWZWV9EYzi^CBtzNs)T`
      z`-2{n5hhLFIa09l$E<wM>i&9qC)2_hA1M%n4$)018m60(Ss@A4@en!n0HqU%RygPw
      zd>nsa3{RkYIGz&dtN~{=P$U6-VY=3)qU$;~Q&&g}P3u`5K&bwx$-7X?J@s@rt|WH5
      z0iQt`%1ZDjnJ$0Z;0NML3LqQmP$ej7^uNes--bTZK4v1SVH-3pVuL1oHegBhvfk|m
      zd<NyIC^n#(PsfIm0<a;Zx<_T2rQP2rsW#%AU|JUnK#3Yv-(&X-xD7QGlV&9d;WX%0
      zx?N1TgK7OV!cf9cW!W6~-=_x=m~b*_R7+U|6s?L0!s;3Dp0|jATCUZ<i{2~h-!sh!
      zcnVZRKvU79%Ofyo*~NZrMohg`B2ju;#T*^L5`$;h{qd0ra~gCXeLzfmaC(s`VW`No
      zMI+-s$G)P?+?+SZhn!+QZS|pDS|?mllxcg&)=_)3TiC9*3T`oPsre~vuRPCTm12ru
      zp(i}TbYZaVVB2srla{|ZCFwD2-8&q2NoF#a#V!RkMh$wH9v25-|F0R9hI>(9O;v@k
      z#cPYU=1tk@IztvHQdniBuA+Kz`4~2qn2Pb)40?*57M(u9bmer)#hJ`Gw#;#|jfGmZ
      zRtqFg@l4j*oH4Tww$v-a+WYjV3H~F`j!!eKjI*PR*Pv7MtQhlIrmLo5%vK*oSreM8
      zLr?rzsLhD!l8`l_T?g~nXfZ8YV-Q=teaSxfdC~3*vHM`K7*0**JgB%0&gYgH?9itE
      z{wg9@(TgeiRr)myH)cL>o=iJAjEWte?rPrLIda%ayFK1cUq<SeG42qZ6|K)<XND9B
      zcZ0Hbv+0^lGY)NnXB1)Q*jPb!Fa2x4vd3N7r$@opr^K!Zi}fb8Dmovc$FXb-L9tcV
      zFY%VymfO8=&p>t0{-)^ob?iTt%+R-{n9pJt(g7)<pgwhq?nQ&xnz6DtDTN0hpB$E_
      zYRrG)<>zbh$AmIggT6_>BWnKc^lHrqQQ6rN<W=y%PtE~z#DcBiMxjU%BNWv$;1A*(
      zh0kWtx9K~g{2wVd#nfYIwheUjq?b1dO_b?V&1D0b0@7x+7de?eg%VX6L{H;CL+^}H
      zL6!=aL9f$ah{Au#bm=sjfffyYXNQasb^L_E2<>FEBPO<#aKiZHh~oYePy4@#Pna@R
      zgT6<9D<=Hi^b*DgsZ5yQf#0AtX_skZdkHt_fF5IxEb;95$M^;v!04F#kp5W=`j_c7
      z=m4d%L5H6BbEcF<FA}SK&MZ+Q=9C_I#{7HyG!y1D=neW$G3CFeH_enVlp&!x)2I8T
      zEDo+HWkre@ps1eqKaDSCpUt43(9>m`w#M}*+yfbV)WK0JJmG3uM7Abt;W(GYo-qPG
      zgWeSBp>u)<?TatX3t{n^77?$>p7^?W@d2N~wVXuUxM6w&c1Zy=hLGwW6~}Ac$z&GY
      zB#ogv)XY3$M0t<yX^(4?Wic%+#AxtLo+IkdRplD9Alim~9iV?x(AY|3zZDCiycG+j
      zs_LHJ^W$5wEEO(;=kWqjx^;T3Sc@)i#fs*);$2Rzm=jWYEB46|#r-Fq_KV|NaT%+@
      zi+G8cuylH@*axX>#lZu=Z;2iHR2DuTm#7g_N)MDJxYaC=ssLfjYQcR%?}5GQd?P!X
      zWm|b%1+4Hdj%2r0m&)ChY*@XreS7JG=`HyZlV;%v%6~fw0RsD+tdk$aT`t<!qV~{)
      zr|0D0aZf$3Mf#|7lnBtzH)rw~NCU1KbPQbD;olm3A%na4G6@B4DwFN~@<)bJxeS%t
      zF|o3qaW5IZdR4cANxm9)EV^Wq4D%ZG_kKH9bd!vGNn_Bl9o)F5t<fao8nSlC%4f!s
      z+>4oa$g~UUC+-fpFGWMNm#KcFn8~{RHr!wJBCZCvcF@wyW<@nPewL@@paqrEAY2@3
      z6v7h@v;6iL;VE2D#x;l#qk$j{ig$LP&?DIJQ(_FLWz&rk8#qw%Dd_#-E9vk7BPWMr
      zS?LuLoH19$vFK*9-P_E<#GsiocnEi`e1M1R`5jgFRsR)72`a@0`H)N}I57;#h4)^k
      z*L5Xlo7=r3ijn|ylvJYkI!TBFd{c^V=3AsM$hyp};bmKOWrUVV2uD(!X3YFjArUQ@
      zwt2n_+h2)O<<>TWgfvU&V@$27?eOMGUmfHJROpx6RnhBkik_pFbvSn6O@O=I8DSa>
      zhf*#BdbBbz>fvZ8Zv}8k9L}c_Tn}C%u$^LuaRb~0;X~df{Ge$=3q;?qT8&@+xX0i;
      zqs9=E*5C@H0wcvmx%qES%Pn3>aBn(o6|k&!Oy6fD4?81n#+7^eTAX%scr-uc<d79O
      zXcll?<z4?&)ygwPy=CdkW^yBrnMZt=hZ~TbMcq6q8Lv9JeI~@{0`Y=c8oWyD$JGs<
      zgx3cTu|`@Q=1<(ROTx(^Jk;to<2uML;JpnPn|;PTR>8?4@^TA(!K9f}tp_DO;f!v}
      zj8A0o7quBaRb(c+t1*?r8p@)Ei2z}l_M+~o)d4VW<>W<S-cqSoE>)4<{`UVMlDlxy
      zP9rcdQN4Vt@~RIbY1lJWIMCfb5I;tgT7$t4@I%ttJ}4X5Tjsy+4*pal2-0f329j~K
      zOK=5YnUf_~inD|f$~+3@AhY+`g<>w}<Z*?!6IF%xFpllt^cnmJVTh<3bMlkY>+1>%
      z)PFl$Aq#b_C&fL^hy!-qvirMV$uXO)W4JXAtEHN)TA{iv?DFLo>KXTZ^L!B5#Y?Z!
      zL>rZ#DAZUn=zv<IEqIYSI%<vTahz#O#i6<UIn;{|pXDr`u8YbU%Xv^8hQ3~vt2XS9
      z{`>H?ViGOInF3osCGheWuY~cfL0$-}PrMFRpLiLJ&-I|rq*>sfjbFX^ls|L%MVf=Z
      zP59e_zw=)JaRx2Gzw-e|c;S(t0+zY}DbgIuQLEy>wj!?wH5|_Zm#A^m6txYXr9}Xp
      zq9ypY4A4!>&(TW0p{es6bq#dBLNhyWc$Sg}o~6Wr#Kxv|pboA9wPs_9Iz^WaceI_Q
      zE1=V9YB@t!ou;NU)bj$Qw9&=XK^xWQTDq3j(KU1(e#_@({MNefpk`=u5<1>WEp!`n
      zz8x#>guC8NE9ovE+)ZogUc4s0A1fcEE9oKXp$`J-VW2!lTj&YeO;6GR`Y7FqD`2s?
      zLrL!gPcMEgg`+nqH?E^D>cc7wz8-A`zT-`~_6;3|XT;g<9cO6^%z2gS&e2w7*S06#
      z{OM_$|0>OzqJd#N-%%EU#Rw(QCn5J4SaJ&C`wXJ;Sz1V+gBPAtTBS5LwB1AU6=RqB
      z+(-M>=K=M(l->b-gfL78@vo$S4PQxwTRLB+Lr)+oFVUga#2LEr`8n4;54!f`EEU&t
      z(B#)?E=?(!m+N&}rXbKQWGX#cXoS*ODYQ|1lbmQFi^gC>g2rjWlYK3I370WNnc<Gk
      zvvlN3_@yP*DWsQ_r1_f5mt;U|2hS78!=q8GyuxxTvAz+DbzEVcK&EJ)g!H;qVZEyo
      z>$O;{UshOmBEuqBcPXs9E3v*6i*>KUdLO+%iglmDdY}^PJF!>~0fUj-AM&wkO1^)1
      zxarZe^x>~n`2O`6tdF27#P?64Dk3&MrS$rErC#5S!LpIpg7qonb_DB`!um`l*7swv
      zJ_ig&Mf{3~bqz94@~dHr4h<u{p09-ZK?thBPp=00B7Mn&dclLrBiW@)7A*QoazmnX
      zVQZph(K$LTz^#e1bS6O7rSc<i{~L<!4JARB$^u`)0+i90febtplP;A7^c7VqwP;#j
      z#nS|yKS$?1`IV-8EfA<H<;O9myrjC5K)oCT^&6E?KZ}9-2E77^1iebX<w1oC<(n#4
      zzg>X^6QyZZE8yQ#Sl^=Gk79jWVf|qxR&6ZSA1kasp+Ajcy{@qSyb{ZZ#rm$o`YZbD
      zDAxBB*7qy1X2)Xvy~6qj`au-yhYIVTDzRE(vHn$I{RmkVDU>%9)_+uDwZ>xoSYiD)
      z{ZAC@CkpFll~{{ovHn+K{U7~2iuI;oF;`+OkHccwG80_GlKZkb1^LCb3ah>nt34J=
      z{_|3T8(Fr-3apt5Yj!18S1eYO!fNK0DAqiMbwMT8rLkBSDy%kM7{ywour8{^x-u4P
      znZjDmD<W7_eS_eQu~;jC!Mutu_ORB-Z^U3mBz~I}h8{U)cs)&4wtFkr<5RZ$=*oeR
      z^wLV<Tg@FJjXPPSO0@Q3)DY?Or?_i)&XQ*CZstqo(woh^?kry#c<4fzc6m3|@g8cx
      zJxYrA(rn&`Np^Qg%lW>RR{&W{co7{s0SSG{uk!lgnr6OgXgJZ#8-|8!n|b5Va9uNB
      zJ2YJ1%-0PKbe!Q$gKN$wZvpF$&YG^8Bzpgvny%!U^Z3#gsIwOT=aTqFsBsfixS1C4
      zEjag>v<$T6JVNc9#(zm1rK{MYULI2_%0vk@JQbJI65h;PpkzC>@m74BL6=Z7UypB?
      zAbA`2dj<qs0&mCe#sh&GYD?fFA#aCvH{Qv+0FmI`@R|07187mAZHkA6&+@(<3%kzo
      z{$_qBK5p#j>^j3{0Ny05e3X)$r<q*9fx!*g(dO9!FtHH=@C`GvY;sB1F~;M{j)`A*
      zYvYsE?I3S!;|YIj+W;Z5;n#I^p5aWOvi8RvA)Gp2%{tQi8uJm(dj2>L6=k<?J;#$9
      z60M0>D2bVvk4{l!R?^<Mhids=T(P|m$#<U;qqqE4UrZ|>Q?m|0`8fO{YPRwT7$>4y
      z_*T9Rer0|a-|i`Kx%dfOn2sY-wLuRlNxBdXPf~*KV3|Rsh}Pm$5E7?pPNg#*4XsV+
      zwak1czZ<b-zDv#v`0^gU+ryHg7M-I-{jrc+!$tjGzDMNqz3__G$HJ$$wNalnY7@`b
      zR2(t*Q&i8-pps98oY?3)vC%(bH2O!3M*oP>sE-&>|NZ)y!}sz1p6HM(=2yDn^HEno
      zZCrbLYqudV($9=3eqgwB%~^i165+H$SfaUnZ4JKw43+lS-S|WNu!p)8?iAGI6hDHR
      zd#qyo=5ry;q>q{852KVMs7ZdDKLQNqC-_N(<)ffU0zIWdzY$L)Tyf~<6}q0w!ss98
      gr-9D=3I3#~XMEtl9>NF(o<<Nw!FUGpXYi^22Y3U>82|tP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g@XiV(OSA^aX^Fc446;RCTj%)lF2SN&yK`WzpRv899TTak0msen%Jm
      ziEg?;NG$k(epJ;vZa@MFDT{fWbM8H!Ipe$gpT7VMu<N2kcoXS7{4BnTP<%7tg_LRd
      z#e^TtIEjT(u{>RfNCpEJWkTyuUBM2;g_x*V86`79)y!2E9I)eP70W~JI8s`fV?w{X
      zTFZHFOehbNnOp;*=A(kD2M14mxTv$#Eh-u#rR9fwF_Gz+n8cE>K1!w{9*b02yd=x^
      zz=YMl9Sr!uwLs`ZUoMh7<9pIMp{}yCG?%}_A~@Y1)83~fPp9%7=SSH5C(M1DBEdh^
      zTBgHTWSNbxaiXVjk|`a%mu8;KT(k+nDoOh2V22GNY5snZPPaGu|BD^sfJ1cnSD<Fo
      zCds=J4;N3EU*p}7vDIt+x8LFQ+dtsn7DWx7y`q><p(`{QZx^_RXIN*%P1wLDbA&C{
      t9u4<+CDuyLjh$hAs+OVa!oz=5mmUtD7gaCtl2>op3-)g@F5?wmKLD(Grl9};
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVRd3;<|75;8!CNr77W|{OA+9qwvQj$qZpv07tQlTwNO1hVng!N_SB^f%Ina)hQ
      z0B%(&vQ!j7Q7BjnRRJkW8)y|ov<NDSxFS{stFpL)`qMwe@7(uh$uyz;+5Y<Ox%b_B
      z&Uel|+nYZB-+fO4I2Hf$qfFt1fy8j@mDUEU)!LYCP1$z3b$zyVWwtvRx3aOg-8p0p
      z*nW5w>hil{ver6khk|coESeouP@M|pgLZ6SFw4bMI+@BSm|gntFgdoKZ)FCvR$tui
      zP%sh{vcX>7ccmTScC|!dg0r+V8MWgI)0~5X&5^n&8BeD5OCArTtXLvzrzzo>A_;44
      zYn@10YNce;x>!7ZZrmCm|6We#N8+(WEW1F#)7aFl;9W#feoR)FQKI4ESemd35<Peq
      z@PJPb2?Swcnt?jhQ{(wA&p>0R{Aud002vxEFj1kZE0(aA4G;C%={2IcLZ~YlvEtoU
      zIwo^>(HDu^R$8HAz|O9SZL;Ik%iGv=F)cbFlD4g^a~s^ypSE+fw=W)}>1H-|jdPRw
      z20KL46OXXR0j^Nv2wP2rc2pl%2#<Sqlpl0ZbA@0uZEehHF#gH&(pG9P7RhvIll98U
      z>cUA!yh6*kl1HEK?9?300*5teE0O6>ribjP!onl78OMT4t!z5BNn7xk0&@r6x$#&k
      zCG6)MnLV}a?bWIZCEEJvEKS`(`c%94QLXsQ=>~i#7wQZHew6z$U!iu4@Cl*=?XvIv
      z1_G!Ek~-VKiKrE7k%8k-OZUkR#^^<}#!+o_m@`<$H+IQ2JHQprHxNcMV=0r4P@zG_
      zBjpA9V+kuByUG?UOARa&EdFRLlS*c6!MwsiC8~m0g*ASxW`ZavSQNbmE(Fcwk7dpo
      zN@X|ei0u`Y7a5r4n5)-7HEJl4F|*dmKn#VFK-NCIyf0&?H`wWprcPmTnSqOOxn{}u
      z3MAdP3e(^Fv=g4^>jWo!q6Yee&jbltW;;7AKo`3h;#Ojybv6AbG0^eee4Cut`hb%U
      zJLHB34a9IIVUj)Xv6!v9Ym9?p;kbbzBpA#WCZaa4!;Tivg$|cRS4mhyIx}hG6$9tJ
      zZm{CRd?}e}b#gczA>GjEN-iX4ZD)#!4o7HbKZd!h<SLfhL&@}Jz0qMLHr#07c$^SK
      z7Mmpwu3}kYWR%*gkcc}jW(4U(lN!#haB6@;)3_n1#pSbwMBFO02k;>(79AcM+AQ;r
      z7}$c3($HkdC>+DkhZ}7S)3eC1(2N^zqmd{~Ow%44Y*z=tah-ur$c2|XZyd+UVP~Ke
      zTRpc-Q{OaxDIX;>h#T=qG4jpKDn)^!H!;V_b$r^u)wqVPBe(4ofkY;2CFIsksc%IW
      z@0|1FHihE~j?)>B+XGho?DW9!ke$e$vngVyvaw_$fX^w+)^XZkC87;ZpU{x(Z^&pl
      z4Slifkd+!5&SV?<?1lwrHk=Z~t@ykE{(=ZEx&t?=9LRUdj&pgR{qf-pyO3aH(2lIr
      z;OMoIwO#s(ah)V@%yDw1TLwzKQu8h37M-5%F>ne_Wl<i7RW>h+_dKM_i{zcL3%Dy+
      zVa<`D7YB_Fmm?(|!u>Mt_v0%HmH9~3Ck;FxX|0?-u*#0gwyzp^NR}kkp2r3xA&U<i
      zctjTcTwKT;A^!82ffmeWBy8e8CPRPUKt$R$miL179C!-dN2AsMqnE;d11F<Zq4(%S
      zNNFy`SD43i(|h=BKZ$Sn@l?)yI&JdCn6{tBH<?YWK9)moW2aMezGYwzPUCWP6WzlT
      z-K?LR=4e`;8NHs->lwYC+01pibu4v}JNEDjqM2N^t03uABQCQDyG5{qWNz6@nulfJ
      zSuYRBjDv8BBvYHuW^>6faavcMSdB=MjWug|S2DwNSm|_xIk#oIJysf;vzQ%36&+!b
      zm9qL`>`P-dwVz(RR~xYSJ#*KunJ~xp{n7o&38w~e5WkgBfA#1)Qr&4ubzYsYQklUd
      z)fuC7EgbIex6^LBOH98%{DWuImLLw{kAmcN#)!^|Or3}Drh&KcCoW|eHs>v5_SQzt
      z)vL0;*cc7QD8}-|!fG3fvfWoWz9>cKtiLFk=#LEyr}^oWOt70#C>vn!)ll%&v3D{n
      zIwkj9e%C2XD*4DeS>m6cWSxnGon92TG8sFAnG9!s@vsqvw55Cs?Tl<X^*o3P90T&H
      zqvvew^vJ%9<1D@jp_Y6makflz0w(W=*;CyRIwo{%4c-k+8Nt*?G5ulgC_@9E)Ahck
      zl(dZJm-Aa|1-Y*z=cWAWnonG^6N*)byrIgZfzTrxU_G)w)bCG1qdPX~b#|+IWQNis
      zGlU+QusK5Fle~HRXmc@NOACk%TEZiEU$|@!=E`GUc$!dkLhVOK&j`-kg9Y4jR(LNK
      z7Bo4I_<_6O#R9gxJBaEY9E+XAdoNDHeMGZMYt!J!z+#-k{gkHdO+ci?;${5H66a#N
      zmAid>*Ia^$aOQ^VOE5K?-VvNvfaDnW0T<FkgtVKG9wwwm*~~wt;j}sI^KhEcNniq}
      zSp%c-NeM79O*58|^78!!<mO!UX&hz0kM`&)2oK7=;R$Zurv(|#CRdP>PX(938txPZ
      z)5DKp`2kFnVJ}wRjv$p@y9<G^cMp0BoI~UZJV~#6it0R#dOTAkVR~M|#kj<kFps04
      z5r~&QK*DjpaxL~beR#67A#VpCu7Jh&ie3L$Y$By>UN{098~tP^v0+h^Xkb#&1<iXg
      zux$3TsCWeHcELM)cOIQ%z?T?&Kh~_n&Y?U)6G^1B2ByYZ#+?S%Bf*<eNF(EllfV-5
      z*6l~Oha%_l-@Hd??GbG7$b1Bw3Q{ZeJ-@=s`4x@(N|9mf@{-v!y1XyrZZWLBx@S?z
      z2wBAl`M@45C+FqOp%3oGhu4-~-K+Gc*O)AR$E!P3WVYPZNm}?AKCV$;o0oMtC5fyV
      zn)6<4T}z_pcGSpR`-@-vrBvAKG|L;9iZ{vhts-GF^6JcRg(+N*8(hV@T*a#Q<HjDc
      z-PRT6O?|4l)KG7e`#X&He-v@9b~#s2O-BudTksi|b3z9YRh+gR{<=FcaX)VD34L}1
      zw?DNXswX_Hu6_h}l*)M*0p4Lqd9)nI6^hLzIa|k&n?uBe5~|_~+w+mejHq|1f|2ww
      zH9@m=LX;o1IyEWWmG}I)JSMjHR3BgB_bODRxhHQ^Pd<F^#us^5{C*A5h~Edo%`GF?
      z;Vp2|uCD4)uBI317szu9(2hGb@&L2xeHuzYOA!6;W@dFH+(B2Dn$<GJdjR#}<|*F2
      z_>w#xl*jJ6dgjMRchOCoJswY8y@#_R6jSA_YJ^WU@t1}$rf{60S`bzzYg7vy-g#6l
      zc~mXf!*^n!7VIVE(bNbY*ZQ_-q&|)G2^Z<(taMT@+NP8rz)T`77o>bVC=Vhvy{3<7
      z_w7Q+MJp>ryzel?rxWo!B0hsZP|m~gYCh(u1sd@xM@AlTTOM&+9&uY9v6KQy?nI@%
      zNa{`-L<_NLo7TdwwfLH&g{P6f$xNorZmu)EJK^^-fqBewGmxXVv>WxNFE=y&W<`$P
      z(mv7j)<qx3*V`*iU%e)(%z#<0scN&r^lPd{*zEvc?1Ik>w1<R=%>6R2Xs@N@9gHKH
      zdD|yZ8fWz~^R=61HB-afov1S_w+gk@tlpYjx2?TWCT1wwUTsS9m?t}`WXHU%W{uua
      zB@?qY+FoN;o1rUY|4z(s+3@7nb;4>iC$m=ek=YD~*<7CIJ~G_aUd(ShLT1f&Of)OE
      zQ;(`U;qyK)C3pa>^n##x0Ur;_W4CFT6U~rWOAIyUB-1o2%_{owGrQ2BePXQl9=<Q~
      zkR7@!Iv-P2C)(5!oT)D0=W`cUsHNyt%lHGta{dgn0@taP{Ip+#yHqzGQfu+J>c!LQ
      z61=D`#mnjnw#j|?w~DAT)vqempqi;-Dy-saff`b0siZnbrPNBbUUjQ9e|*oV%T!kN
      zsbTKkpsrLK)jGak&u_%5_;-uCT3xTMQ8#eDO?^On>Oseka-OPg&Uq@SZ`1!6Tci$<
      zVr-Fm*6~zQ-yua$CG{LBiQt>@JV$o2q`pgvaYpKUq}a!j5|0jQN=p0$+GYd3&u+q?
      zg)YGhq$bi%tMLP#sHC-);D@BDXtT5MBB^Rxt{p!jRYUvD!b_w=wBlqI>T>4V>r?<g
      zAvFoN;Xn8(DN`x@3_oWSDf|N6ZVqVSC^@^#Q^<r)I^L>n;-up;*Cq-t<CpHqqpVKq
      zMpUSqP^q?Qeol)sR&{!X#oo!FZH#}x6x@%4Jz=Js-xMm5gYA|gY{5J>{xs@xXyqsz
      zd=d<$ifu1C?8_g1jh%oaKEcb9G|E2WP`+0wAHg5Gn6V`ag=xNV*^4)d3i4#_2KT^F
      zJNbVx_b?&ei$--{k?LVrVhyI?&-jZ5%HM`v*~P%;mIA+jOyGaT-`vCP90mB{ce%R=
      dK<+N30sTAP)@R<4Q|ur9$x(h(ImnTf{(r4L{m%dZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i&u$Yj5XQerHrWtD+mr?hl#&z<p{-aD5<LVVL8ORE;h!26iJO~P!E|eHH(ny%
      zi3_Jn9C!d83NhYYl7PrzJs$7ppT8OV=dbTS06fBuj{>1J)=BV5d=`P2+8~lL4$f`x
      z&c0WAWTtO9_u&!lEs=GNwnAwcXUZ~R^KaOkLnuF0TG?lWgLZ!jZ(vM#s%)n}qjb$#
      zWVF<_bN`s&b<IdtQN-mMd{hXleLnqla&{u)fj9{zVZCpLB0Ltca(TY!*^g>MxV!A!
      zxy=rt$PNh2W!gU;2_-Y-(g_>?v&&{(xr}Q&=cS3XN#v|=)^H6CZih85#PF2hThoiV
      zk%S712FkiJ8tn`k3Ox>vY^?M+?La+=M#9SH;Z%H?ywL*_amlefPvj)Ow4NCzTq_^@
      zflxg%Nj#K2<(T!wdwt+qj22kQUy0vDg(EkW$4i_Y@_Lb@zq_}8f$BG&7Et4{$`J@q
      z#zS1;Su>Mi1*@F#2CSjZ5I0-LReoh2HqhYQbA{*l#~huew0nW;|H7ZJ^dN=TGEoL6
      z!VL%Fcr%Z;u*DF<?HPD4&3SDOEvJx|3qZ=<61H)N|GI+rIXXv$;#W7OwPrhCE$l4J
      Jb~aO0>o-Vmtc(Bv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Nq5^+7`@L9aU-jloPjo>gc4d0rS3qO5(?BbsS{@a7t_<7;yi5iIFgSnC$MA9
      z4*>SSjz!C%F0f$9f*-}<zGqn$Y6)3r`iA@N{RaK@_wRoIxQ_cNBm{0YoNn=<bz~K-
      zW53vz(kph3ZKqMJs{8G(@4L<(t;><`6h;IxD(Q<Lc(Wgv!l=Nd6A?@9VcT`2;|q-L
      zYjlCBN=TrOvr4Dmv^&e!1ag%V@rDdl(wgnq{w;y`vZu~^=ImTeV5H<8$T0{^m>7d$
      zAc-jxX-o?wv$>k`%$P{w3?nMGBX_!o`_j8-?YE@Bbj7V(t(xW8>N_xwC_Mrzr{xu`
      zH<e`?(pRv)?K-<oweCsj@T6>RNPo|@9e>rpA}*xxlECFt*3HB@oEI3gJJqJEnyxiI
      zFmMseDZEOBvF@078A~j-C;gh$5)cmr(qv@$vV3SYSb>>rxg24pt(sZh#ARfea?GpD
      ztI1SK+wiP*)2_2Xvr$O{v(CM4;wp*)XBod48Kd(-MmUS1k9C`DTFyaBZoA!%ymO?-
      z?m~80GpS6)p?5V`Gw>GPN#SjQbD{2dn2C2m@Uf2ct8Uk;Q}S$p+OoJiyZaAi-Pd58
      zMH9EM!YOZiZe4ad!_x#3@<?Fe1U>?D5e3_>>c7@ua0E*xK2pf@QRGOBz<57-OMV%M
      zUwlUVz^B>XRnpm)`Iz)UkUDkCL<Q>{i{R9Oj|Gbh8Msuf*tI>&(;b+L_PFFazQq;t
      z*yM}&*u)NYIe~4<;~WhEhhYLnzv%0>+P0a<k4gQgt}5yRX4xTTsbzIKl4F&QL}7_4
      zlDu9(f`3A8F)%r)_MBhpO2ef0EZ?>mk>qnCUwDG?{8LQkuRKBKF--}~@;<KJJA~RI
      zz&7S+o71opn8%C!VzNFWK}arI0DOZ_LEoADFBtD(;St~ah@;wmUn40Rj0up0+B;el
      zu_~X6d?vX@gv_5vt49y7tS$T$LQP|Y?*|N&B=<R{(1;Ms1h5I(U&AE=@}GfhaKK#(
      zQ_2lRaAC2BT%2N8V=eWgLa_!4xIzq7$=CU&WOHo;)R^pRam=rtEBgj+2KfqEVJGtO
      z%&#MviLhXAU?s@hAQM%vbRplvoB2WyYw<3A!!CYH+TTTrln#ZZ@jgD#$A5SN=<PV@
      z_XPccpg;Z(=pC#-kLiYDx)}$3M9{|s{rNvZw>49)QUDsxi>Ul-UiK=5VI}+X(qo;T
      ha$bJrT>KU}AUZFf1Os?a^#Y%wru(gWvxv`te*h@bzVHA5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~E_s6n@^W-CU`%!B9ayCZM!qqlk*gltdOyNG6hCmKd+P@ror|OS%sJfWN{!
      zue>HfiJA}-FHB7Q)*s=GKS4cjH?|p<xQqAe^n5($Ip_4<ua}1aE+89$#E{)|YUY-;
      zW0}^jZ*Ft$nblp}*)-S1zFhNt*I6U!WZOG$SAFhqF9Mk%78sW;GPzUS;w3+VFvCdG
      zCEwwWZ{8^Rw(A@jGKBqyc6D-=!N_+BAWKHqY{&MO7}9#zRz`tA&bb>r3WnnvA~>cZ
      zgkB9%#27-lQ0UFu4qvTRirl+v70aBVFYlJDa>4R!@oorZ0h-}@x4}DcMrrg~0U2xD
      zd*FH%zQHi2=R5LsQ*f6x3Q?TKPy~YvQ(dy9;S7cuG%9M&t!%pvIbuk(!ZfAS2BU<j
      z8NXg~6(dM$IE!)OVw3xS*N;dT*NyuvZ=H%vjwcz0nvUCbg2Y6O^BSh0Qx`R35U`5n
      z5Ge`Ws0RpoYu)##AG0bZkP@|<X3!g~we?<h<zEw{&;tb-4FfpIpad`&hC71~fKiQD
      zks;nvsgok)WrpPc5@(S34(ZyoRv6TEx8{}jEn75JqHT`ET+Il6s8A~o4OFgdRjZuX
      z?QhdM8X6?2gG00wuvknqGL5lBD+-mQJ#@Q7Zy`}r)6bx#4sc>G(23I?CLQ1n`e@gJ
      zyNZ4!=*0vx4G(Y0dzfUo)IPL*oO+Fs+v(>RTg@CkhP?L*6Zg{b&<_%wJAkn$hvt>1
      zh-U_rxk32_(h?piY(U8zKKcE#6?!HB_n!6-h~XoJ`$PdhV-#O7PUjT9B7<*OpmQ1D
      z1Bgp?7!8O72s1DPkPDclzn4UwE@F;Wi0p?cbrUjDG$@xbPf19)LTO0k^D3Q!AV%L7
      Ffj|3XOjQ5?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{^sEM2xmN<jovK$LD<SrPGTL8BNGlWI&LO?cdv39Ko*q@99^zskgv
      zL=xk(Kf?I+tpC7xXBXN<OzlHw=FXg+`*H5wPru)P0I-Nv4Kc#}w%4>?Is1;~97t<V
      zh`QA{aJ_A7U9FFsQu^LYzSWQ*<hz2`{M|j@6P^t5{e<z;#2q$5|BCCm@&O^6E45J}
      zz&6W-#G1b)bi^@eK!ZVu=ghK(G-0W05FH<LkqmUCa83~o6IOGj9vSR^M5bc|qZ+b=
      zp})d5FoyGlfo&m6PDRvIYG%k#b5ucPohxdqP%aplz$8Iy2)Q9%OTy@J6{1L$??r;$
      zW3<tHOKw97Pt<ix;j+qmno#ULZ?mkToHcL-bA(}MYwJ-}y1sWpOPGzQCiYo#>okHj
      z)IqprU>-SEQ;AJ@82MMbTkP&~ba1LIhDxp{UNm<rqQ2o&YJ!j{`BkS@cIvLOk1rE)
      z$88YI?$n)Lu?b1JBf<;L_>Az}u$5pI2+O^aMg?I911xsX7)dV7l7U-TCZvO5Yv)M#
      zk4SAK6ZX}@Hp`rCGJ?MDH|tgL)KxXgMn*vm=Yncog7M7b9$Bk7jfUWA4MtFek%)Do
      zJ7zfaIRE<i3lig9!vL>Iw%#DYFMydpgnoq7X1;KUq36Xy3z-(ii$|E+<flt5%;XEj
      z7OuVxC`?`_(9i2<CisFhzVaA-!z{idhabrE%XCPL0*Y+03tYznyG>&f7H$NAEb=)F
      z<O$m`Mj82cxcLz&4q&|FOAp?DVi3Oq?y(Tt<~DE}cbF-LyUY>8J>2I#!>1JA+I*hk
      HeFgXfg@A9|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%T5A85UgHSkcS|MiW(1|<dL}X41oiQUN*)A!+pRBjDcCQ5BM%Gnt1R7{3v73
      zq9~fEGf8KvySjU-`{niN8NfM?Qm_c8BON(+VlEu92%VXfz7s5z9yvW@yF$-JaLwKn
      zY(o8avNxT1TIz7gPZEyT3%hDG4j0ncC1sOPS*Lt9BqUo(tFTQdSKSqBNodyk1iS0q
      z$_x_N${~$BAyKXMGazi|P(+CdCZEvxn*Q;}ru#oFai@Z-w7iO@1L@z0!9)^Dt~V5u
      zzVMa7?@l`$tAJ4Zqx5Q~P1ZP!5ux})A|ccBB7Z0^l<8RhwvaP35}dHy1T1VI#Y-i=
      zX_ygY8C}K^AX|S#uHK*r6z<t=VTWy=gFp*5+MLiqnb97{n2ue3nUlpnDsj;RMivg=
      E0O>1~;s5{u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQy>0?A5QJy>JHnrkB2gfe5<wG-nlgeS0i{5qH^=HYbg>cmICwRRJU|`_;WL*&
      zM6+w{H#7G7=Y0AGFhIjYj?fKMEY@-_g-ndtFmJ^!2~{9wX?@dQ8?9Iw4+TQg=^|<A
      z=VHyiA=Cpl?|&*nyVswjsza7?V?*m-Nwti4s^cAx_BNI9(sOcmIj19Wqr?83(7N+X
      zwF$M#oQ*5^;A1xEJVgC67gU+)c<b{xjF|BJf4kT8$t40IZ@&g8*ky|-*#p5t+4ZNa
      NS5UPILe173>K85QU8Vp4
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)A3wRt=75;Csn@y8x(xy$5KwF@tm~PUfKzSvlq@<LlBx!Bhw52?p>`sztx4X;E
      zY|_ZHif<7WMT^QyA*hI;bi+e=h!(~A#<vKFpr9hC;PX@eb7yvUT2@2y&Cbld=brPQ
      z|2*#9eeB=&JpkZ%{40Voh3H5!+rHBrGuzE^w>@oHnRaK~PL8w>$Y*yd>6&)Z%53CB
      z1fl8Wcc)WHE9rXj6$(cls{0Uy3iC!Sb8KSVvPVYUHI@^zl5s9}IMJ)uWnDYb-fJg!
      zS@B-maXS^NhRoQmq3rOml~I`GNeS|v-R6iT^TVlF*4Z#l%nEah^W7;Q8D%O~+DY48
      zrO?nE6!2Z`Tso)_>Q2S2DwJckftjdNC~samI0IB^pc+O5^Y~Z_VioE!TLha7L{O<v
      zOZZlQcK48#*=!CaEQPw>RLo2ani*T({lSnsYSZu5-q#-wdJ>`QLg`_y<~>npG~@Ag
      zr8qv^`8+#I2gQTM29CuNdd=ku^*&7rlX<aWXr~o(JC~kIl42y4A<kI4Q)5<1Gooy%
      zfv6~}@Z|VlCml<oJg0eSF#tV!uv55eGtiFZ3N<<v3!zhJo{pZp8`U@gD<U{i;kaoC
      z^;Z};2`4Me9I@Q>0fR^Q2>19^QJm|n!l~$p;4~(yB*JSY40NJZVFp!tzD004^Px}>
      z-e470;tWZ$E{3zYhkufP<jNg16AH6mLr@h7T4SI^bk7{JM(iX7?YQYOwW?V_fj2$d
      zYfhxH%#azJ%RkrH&PLWX%QP8hnd|gsK<jL0ljXRquz_qkoyxctqhA*@lQApdi|S<x
      zY7eg-UK0x8aXapg67#68W4e*?l+dO$6n{yu*v`(F=}|l8be=2urZ8w=E7sFn+gX#!
      zvMSEh6;5c94%-c!3q!%s+3p9d3g_X12+k+K0;7e%8MqK{Qm7>LTRm{B-yT^qWFRI}
      z5|wotuUN1Q%s^EYMqo!kS856>bzc#6I~9%zv<qAMjn{QH3^`V2%*u3%g%Kpg!cMW3
      zG>`%dq&k+d7#^*PmC7Io(_S|&S(q{4fPtzev^+sld;#J7Fq3Z#dm<PoWd*4DNdpsj
      zv!|vzVW&5-T$!UmH8R9nPFPycB?d0VWegjOQWi*E7PD?()J$9KiP8+OFff4460o-z
      zcq^`?^+JHVN9{yBV<p8@adjS(RxpOQ8+eCw(@5NQ(kX`>b`0+_@NT?^5s7Eaai60T
      z11j`TXHQR2X-V#xzKV%Frzlpi&D6}My#i4bD;qgMdYASzutO9{sl<mA7O-!$G2z;D
      z4{D3+wDdL}re!6rW#SK;3Gv~hxGsWy3Jayx#1f|Cq)m6UePF_It=$_lskD`GZObw6
      zF?`&Mi$BQXIo0=6_tpV7L*1R83&9aT1%gABxSn3PnJfX^h?^t0iTk0>g+QA&@JZcy
      zt&6gRO8GR=$PRS4AQPb;lLl_Xr&%_(Yh_F~#T~SeHhL%S@y9!>@mYK>g4^@OcgU=P
      zJMekhN?LoEcysfK7l1`;=ix2`U%(fc3ru%8E+`z87nKcN605yX&?2B$?KhB<PBFuF
      z25rY?s}NoH7`RueIz(ODWZ-@SU&;?`mn?h0z=L>*nc&qT_h+xymPi+I?kff!5i^ld
      z)9KfKD7&!99^x%`;c!fHU)a@dEGX(M;RK^JY9`|et1p#xth2^=-eKkh^4*f5_TsEA
      zorCyx1m7a+LbV?*X5c&cuGjK5rr6pUnjoEeOf&d>13$py>~Z9(!0&3x9~S`Oi3d7Q
      zK~n4Zk%1ozJu_{mSI%zU39bqU@lyjo!_TSR&6r6i!M5k42}|2!7deP04Ez#LGKB0m
      z1F38##*M4w5kvQ!rwx1qkFjd4F&;IF)E@3X<1jBkY+uT?Q%Oy)bgt(N{93fscp~Rm
      z6M9Nve!yu@WqwZcuJD3^-{JS($zW~ZY+0xbN!CNzdC|Zh@e-FvmoweisBbIS7*}uI
      ztVjLM`X>Xw!Ef2Z$VJoPP8JX`)lzb@l??x@fxk%zs%=NZ^3IkaDP5j|Jzm$^a^7rs
      z?NPo>(g??}k(cud^RrA&tNdP2CL5u?^O(!~T+Yu#4L@u7wna+<_0cKJimLsX6TKhx
      z+o#a5AB}hEWk>L{4k3QNk>3|~P~8BPY{rosnMd_pjQLo=yF4w#QB-|2{{@VgIEOMK
      zRU5q<jV(DW+N$jomDdmhU{diAam50PYYU2NaU9W$;y3(H#m%J^r>Hnh#TWfw#Y)a!
      zKH?NAG~y*hyzBre;q6`=uh^(g>77LF{aCrZoPSeT)!T9>v6rDp(xv46GBn@{EXH1K
      z@@Vbf65p4(d|Qn(X=*Xoc~43XmcH?J-W7F*qd9aJl~?G&tF%HPf&#umg|iqRkLwnW
      z%bY5*>n*%Cu#h#P!=<ox`i0k*TzK~M3vVsCaNYC^?<l#j2kU(wg(&f{to(NQ)YN-U
      z-V<0^R&es1*Rk@Ek}G@B<=Y&frEn=;59)<0yh-1rgrE=o8l=JoK1up3Y~+(<x?&;q
      zv!E0<P0z;T0c82Wh2+r2<*Y8Xou;MCZ(sp$*@vr{tJ`wevC6xfCx`eDKY&GY^Tvi3
      z+@w?5f8A9dx*4;hGPj^Ul*8`*S}>l&MIB+5Yqq1JDcn?%!^P32@cb!U&RY(9Co!`l
      zB2RB?iae<AEn=d)+%xjdt&^yUwrF`O*?Sk^?m&kB`H*d569JxJwLD2jo<bv@X6yJB
      z+VBikvA6f)S$3!AxaxWKg%@D6YiIBxT(;r~yo5`5-;0-V4PL=Myo&4DJ*6eBqejwE
      zh{X+fFRr3>8G9eDW-MxPr5}q%T<phU3vIria$(v#6(7I{bqnBE7?0*+6RW$X?!))s
      zBfTwkpUB~cVg~9arr2~9w`^6ep?KXf-^3~j>{Gaf3Xheewy*d<G%0{b$XjC$xAsk9
      zOY6P(jKV`WuYXw%cXouDLJy;SA5Q1n-TQEI3-43B?&GzCmzl$tJHkz&hfv-WF3;g|
      zi4B7$v8nK4LyZqBT=$>bBo1B7zJ8kYN~eRZ5vm5&Y8L9%Y#gcPAgUVpO}i1DymzSu
      z=vPN$qdEp#)FN!-{d~#~t0mgWRb-0r3w)3Gd{^QEd=+1#m3qeH0K2!4awZ<d*O~iW
      z>_8shAvq2BWZXd+*=W{F5;1MQnZx(`S|3HFy!W+|jDC4)y#-Oe{O~#~UZ$Cu-@?}^
      zUianj6M6o{GLk_BPZj&%A}JHq#;=|2^m93mP{;EZi4(C>t-xw^5_;4r+MlS0py1DX
      z=HxTPXD~x#4-(dvYcB*V&mcbb8-46uhhRT|69}gOdkJ3%d!YxrAqd+?{A>~NLP-qO
      zMZ~KyOLY_V8nmdjI7OX}Gt~M3+O7iHt^(Q>KH7TzRwJAXTAoOJv=;r4Uev(0@qAzF
      z0aUk=u0KqY>Xs?ITm&(X`3bcdVYLM_)F5W7ZTzWhyEg7^Yz+nD4fr$uLIYv8wO2G%
      zWpdQ=O<v=hJdFg+c@)celZ5AnI=>~K@Dk%!_n|u4%9F?>3{L30eOlHOH$yL$7qZw)
      ve))`HzKUb98b-4kAwwoss9gbor}+SDu>^l-MoJs4)frjF=YNoeGW_$u;-uFW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_d-E$LF6#w03Lugn_p`=(_iWG%30V0a^qk!5<OQeC;LMxxLO_yYAvm29513dfj
      zj?d~KGxDGhI@6{j%%C$mI^!SZ_&dAHX4_#HX0)BV-M#nR^ZPjG-v0g1gGT_4;&uWZ
      z3I|GdBe!I%7&)Wq=BlPy%hj8fUCPbMbE0Nc%xO+0peY=DYV5paFFH*>c#FdBjY-2y
      z3W<toH^z*bLT2iz84G@#q#RY)a@?{l_oPBkdMeEAr5zofQ_#kpMKg&Qp3~8ZE`?o@
      zFrORaI-$_5BY~|7+ovqsJlm)&n6>l9!m_EbbIK_i%X3D}lJ8(rbIVp;A^mi&p*}K=
      z-w@jfw3(+uvTnM8EQM5rVK7OGNxXo81p2u@lo_n**n>eDSTbEPMPYw>xQ$Vj;z{JV
      zQ>i+(X?sDV3A{-5&uVlMdoiSAKVDMMNjB7_kbPzge4h{KIEXaUu(Lu+tV^45I6Im|
      z28R;JvIe2(a8<`)98uUx+4I(-TULmrhx5Yp6`hUzDwoJKSklsYX@`!=g48oi_Sj!e
      ziciyqWk*T%MoKYRGpc2)SodlX!<#x@$B3Z4tz#4;3Y}pF1yy20wqe4(j3TEor(rL$
      zc@pV7f26iCyr<(N-r>%h9C?mg98C`D>ZHWH&5hjC6RoX3Nt<H$K*uCbcVY@>6DY8a
      zLydlrj&m5NMXpm7(la_f6!#?cY11l|T^=PXz}V4d9w6}GGEm%-v*22eea@aO)=bl;
      zb5Taq4jp83eWcJ8GVmsa+9e&Ag@v|k-f)wc$5lC%*LXJQgw#h_?C-K+FD{z}r%^Xg
      zt*~De1|xMaWh&QR_3BZCnZTk#Ux>LmOveonK)NNMGmo;4_c1PZEa|uoBZ(rGbyS2=
      zms>OJ`m*7gUbtB7=%~U_=#3C8IAVrJQ$m*5V&;lMf7`*$M0gXZ>V{ju_l&ndh5q`*
      z5KazfW}QZ@Xiivi4fSlidyj}zZ69y07)P7~a)I%=mG7NM^0|#)ljz_tuq~5ahn`Vu
      z*#0v=JFtV#E^Y><xqXrwX0VfAy?!`)u!~>Zh!p3@8oTj)kaQtPI+V$_(DxhmGHYg)
      zqlJCm-&MTa!f*?@Hr7sP%yx<SE;IKP?8DUv-cX1)gx7G4IGP-=0PjM8ml6?g2*RHf
      z#6N_8YcoWNa>~$QQNU6JA{9cUa2zL?TFIFUAe!72C&9i<|G=J<wvKlrFngY$q)C%+
      zq8qp9%54wkn4cho>BAVtnVw0d(L7)KaEfo@dLJhErg5DIHz0A1D^je%%sTQ@K7pR>
      z#Z{b<_ZFtFui;GgCr0@7^F95HxSvz-7Z|{o5y682lQ^+vah@0o7cduK6^JcZDG%!*
      z<}YT6!*OvPSK1IsFX#>-zKW!N>}8w=eC(yx<OBt&|Dp`>a)#wuC`kUZzLpb#j1le7
      zDoTfmcNYVXUsKxkd+3q~ZnN&AI~z-BZVR7C(QSEr+Aej5{R(_dm~Z&@ExY+H|3iMq
      z-nqx3eot@j;|zXaZ~qvn%}iLE8PrfG-8io$7Y&L`vJN68#ym%{;?+iz6aW8-YCcJn
      py;;;6Nwr94ouYmrnFkd0kfI(@)UOovJ4OBRA4Dm(tu)ZBe*p)0Cr1DP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%W~656g@2mJ5fa9#1IA&-T`bUU;@L;Fv;*TFDFh&l_^ujPBC4vC`WS1O2TaC
      z1LpAsY}gFL0;(WW#eyXZK8oUWTaknbfrVP?+xMP6=k{rR`1tl6fEnD&zz~>Ob=OOe
      z?G3wRZw95dlzyqR>A0(<ni{M2ifk=2I2lhf=o1)KB~QZCd7YL)THy4qaAj|;?YYto
      z1opHPv_Q5RZLU#f1=2y&=}ev%$X9noi^!>(ImdN^D+06MUDUgAp)Sx@_8!Rr2n<^o
      zfN3Iy5etJD6-ea^b+xk3LI(ZJs5-7(T3=g{{(XC;CE1gz*RWf4+jrDF4E8B80vEqi
      zN}|tHwRcqp^NFS%$`>^2sPWMnle10RebkbR-g-yg+R#ltl8;476)MH6vxT}zIY%rU
      z#e~2}+xHr>(}@!V47njNz6*rFSYp#fFK|3pZ>^9gEu2!w2a?E%9D$*3@q+w4<U8>N
      z-|e-KZNWkjXW0A@b9-6fU@y(>C3YsqHmb8x^zON}hA*Yd;|iOpjlb+UZZK=2gqaLz
      zz1@8rInTm0&I$}Tom$gV7e@Q!p@~cQIfI`l@pE@uxPXgvt1pAPP4|n30)ymZ2ePte
      zuhK;O@|8;WkTowI)x3VQ@GB@rZ1Sn_X|j~U?)Y}Q=``rE{YgRFVO@LE!gbsrPv$S%
      zzV^mgGP~@#flWXAOuvM?7H;7-rL=9IjN;D5X#!@=TlX9Cwxg_{i+>O5Z*fkk7O*NV
      zA<Heh(~;z7#z{CvgQWQEfx({<FBFi?sw>BtdIn)}buYgbn33XpxH$C&L&g7*El$5d
      z?iE7@_H!K4%S(h>AiyHV7#q{D!#IE+IAgKi!XV^9914M_`4(I=iZ9iuvC=y7Kw~HZ
      zD&EE5MZg3jiqaKE7439!Y72*BCZ>+AkVzxKA|0_vQ}%IU2%Oj%>trw18nN7OV4cR9
      zop|MYu{MeI<f~Xynit(1VqMU4puhMULt8l4+oL}cJ?f8oM0bbvHNI7ka;Z5Y<lbXY
      zy|(b<-1rOKR&{iv=;Qb&6aV7T{f!a)lOUK2VGYKA!DUT|S0LQrE{|RL!c+vuC$=!x
      zOYy13I@ZmK4#DK{T_uL{*)@JCQ}A+xs6DdFy_nB-l+D``)<?2M^)uObs#7skSN6Z$
      g`Z;C)M|m&4BD;cl0vmL;a$=S4R<xCaN?3yN334BgF#rGn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~E_c7=F$+C@UQd#)o{UfQVf;nSdx-7~&Ke4mE)+(Yu1ptSKFCoe;158U6zk
      z?@Y`PP~)A(AE1dw6BB=j@jcyahmyfXPjk-uoacSsuk-2m?mGZuSQ6l47|B_s#6#_|
      zme4ls#D=aH62(o!$|aWhn$cEu^9~&f2rwvhv8nv}M&8mbyMk|I=-$ukk})(+8<t@w
      z86tAV1vz##nq>&2^7nNSel$xEATjvmXjVWA!&qGju7_byy@(LPoTiOIl`}`Xul}z}
      zL<F4zIv85^E0)lOZU!Nz+bjB(&Cnr7E7whp=g}@uB2_M<M?x?92wMCL?W~4hi;QMD
      z_PB%-ILQzs?ClNhQAww?$oIIBVNk*lPSF9+BExJ=65T4O^+WY=oHByb5=L-_L836`
      zOe1HlQzf0mr@6<d1O+iNlbjlJKu+^|wPp-Uzg1da)e9@ys!3AYGx;^m%xVRL@2iIa
      z`+-qpIC2pf8cg1R4B>z4!5}(q>QtOzqJFRk^@SRwuqGv3z(p#lL+0k>P>n89ZN??2
      z0xlmmN$w2^)0klhQJxpwLx$dJ(`;48&$AKxEG3jToojRg5|Km?HG%DPUHd^jm&7#*
      z*LmT(sBjDUg7GA8*_v5X!l33=o299H9iIK3R7&@9zEoJ#=M7%nh&Nt**hjfG>W#Ez
      z>4lW36^lBRS@b{{q+I*yYoM2h{{=MB8l>G*1n2}%lx>K62;Eg;+h|>i$I56g<5)aU
      zM!yn^mocEw(Qp~^OG5h)r}YH!0Ncdy8ZFqNIow4b_Q=~CMDZ49$vRMB$0!oCBR@Dt
      zZy!}0{TRmtF;VX6Rz*#k_C7+jDX(yT2U861ktDxYJg1@q_<%4zIu5!j7hDHzn8Q_~
      zqvsN_D(y4E@F0`5v`c+2DuVdRL*n8<gAMe?g)&ml5sv$ve^b1H{+@;*N+0l<o{2Az
      z@s)IZqp-eX5<f77pP0d~n&6YJwj}0pgEWOG1>;yCpFX6C$%jSUq(7hZ5Pcc={s2>l
      Bgr@)i
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%W@k<6g@2|k|j-Sk=O!12nL)WOU6oggolkFh&<%Tu|UQKc4N6qnjp`pX2v$`
      zV9f{c_yQJC#lsO*ELgJOqbN?dMx#Ncq`c^vp4<1HIp;q5pMU@S3&0J0l0r<N+_sO)
      z56u&^Y@Yh%o|JCcJGJa~xv8FY%kvwwt%P4GBm|yT0bc};Tg{g1bh{1HmMJ6!u00X4
      z>KyePTiU)r((hQ_%5{O4>Q4+AlGtF#re#}xMW9kRXG}fR7XEo-bx$Bsbq-}30v8RW
      zFqJ_ZGX~Pg3CtHJ1=VUQY^HA6^1<=ZfpmAxgRT^~RCiitch7V!^&J=!N}9lp^N}27
      zml6{#W=LRm5(lzvOMfd=BCt?c)sA5?!ZSkUI;MTtmD|p-CvTtVoL`A(lgd;coiZ;O
      zEa6HD&oT*N-p1VwJcnh0v?u+hbL_U5gSh~;YqD{64j#&uufYUfFz_N)$otUpdZyp%
      z1U&K)9=G;)wN=+8CQk$wN8-o-PFWW%uWq$F{;5<?fp}r{Gl6_W?6%`uj;%p6EOE)e
      z8Wz~LJ=bYT&(o44J_6H&;QR8+fZtMt-+;pKED(0x;0Ud=Ap*?dF*7$#et1Ocmsvj5
      zFN)rd&B2k<W(x&H)Faq%EZg76;3nQo;SGVS=b8-zui`Zp#qydRM@?>;02>B2kryyH
      z+F@U0P{DgCyvyH)B@Pb_yoCbC%$5G0*%c5>Y?drdU)GMyHcLHQ;2?|?YO7{@$3PVy
      zFyxf0#?@gc<=%D8UdL*28s?%hhh`nSZD0%cNuT}=)771tk9t=f+c!CRF5N5m(7*%i
      zu<$+89h;P)n?PpJoOdieq~ZOgZnJeIoN1}qM67mA&y%E=4t=o9ripW1fXL<4^}q`=
      z%aw*|C$-x_f*!z3vGfQ=aV?k6E&qY(UulZrDLyaJ0i<~WbtJjc*rpB0^PFM0j9I?b
      zZcf|Sop>eyU*lWwELQwQJvClZTlO`EF*pq{*l}2(MbWxTZ-t*N75i8$mil;pL}^+x
      zJ|LwQbsR?MWJ5YxT*Wnl@lr-101fHHe;T9n`9wOaA)QJ<C#jeeM@%xB<O!LaMpz_6
      z7Rivs%UBOs{12-<j`bC>zJ4s$D_RjJB)}Sc15?E_7=64xp5|{Nx~9T3b2NhZPx)49
      zo{w)TgfqPTH>QJKAMb1~juJKKgKz2n9SnTWD*q6nIUj(>XupN`HBC-Y@SA%qm};_&
      zf?ize<MuewA2rtUz$;8&hJA347>q=XyBPPJuK;ySe0?1A=ZWGua6x=1UeqUuZ`4a8
      mz=8PRNZ@yhKcmP;j}iY7nuL#GS9jRQ*wf@yAKt`1V*dfnV#}rg
      
      literal 0
      HcmV?d00001
      
      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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
      bA<BdHdEK0U%=rL*f}e7ftJelTFCg$Aj^yZ3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8BH5IuLPUE8iukPrC~Q4zOWU{OKTMKm^IG)0ItJQ&n0<qC^sm+Wo}&;A}C
      zG(kvwFh2R<k222PUfM;H+LwFxPG`=XIWyDWf4=_!a0`!BC=7F3Zq?keYqn|chvpvV
      zz8UO0?v_~+=Q4MzPi%jc%;Rx`iUdQi2s@DOFQh9>e58@filA*e<q3Q45aigo_MQ
      zdi!CyHHJjN+vF)QWHg*ZGK~&g(4eA|p+grAT}8*`FRQy7+<$FvR5(LV(JR}PHQRT@
      zTN)FBHp6_|*-r^V6{NO!xN7^{4H^3NT(Kc)!E-~KIQUiy{kWuJfI)9p8V!ROBJdBs
      zy~{-(D7H1lr4vs|H-b?Wml-BnrfWoKxPmbTjYgs1?e2MQR7`KY6lt|oTq7aR)<~W7
      zc~Gs82&dvsB%o59ptS9Y>54k^h9SFcyPFlh>{SE)v=-$Y)tgDVFqzF?t=w7~1}0VH
      z83r2^{&mwZg=tC`@UY}n{W3MaPoh?A8t|2k9bOJ2Foqe8HbQ6U-t)aO4}xYk28Guc
      zhFkDqxJbPhLlrunyW*D0KIbmU6Q6=r&v8R5O)Z(%a1V0~0~92-=4{~Re_9+{ORM!T
      z#5_;WtI&|a5}R_KAzfE!$r0<(7vFR-a??U%8jI&H4RN7j2LY!|(c*3xBeV|sUt!s-
      zSVQ_sLJ{C(Ptj|ZUJBi5Bma$#V`yLLrJyVFWOTklmQIcQ$qU`+p_`ONuS8g<TOf?E
      zqH&1yA^LuyTYep4_$RIw^Iz!qI%W?N^u126w}kl)LwFzI_t!BbzC!lv7$;<g8<>!p
      zCZjhYB|bOsl4Juu#yBbsjyIvp$Y+EuIA-$35pqWU2xha)&Pbpd$+J%d9>nNmBoqbW
      zHts~}XE7&1#VwL&WU)uM+pM$B>r;%E1S2t3+?NmcB0Y2=Ubph>A7T~}W4R<IDA
      Q53xwMm=O9e!y_nv0Yu?=5&!@I
      
      literal 0
      HcmV?d00001
      
      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
      zcmcguS#T6p6g@AQnP!G&3rutp_JAf6U<74L0L{V@OaK9cfQp?=Cuy8a53?izcf}PI
      z_kE-MNR?7nSp|bjm1XIl%dh^seCn@%>bb9nnGOn}sM1u;>+aY0oqO)NOXr(EKl=i}
      zO1x*FN}+KuT}T|ZMy!N2noneGJDbRjI_bg09$9<rbfMkK?&7wAfWk~|nX>qPXWwDF
      zKW`wU5Sw`3cSs>Z*wThVO?TO{wAZR&40}!#)^=YmnI(R9#0U>$tzlbeGNMbPY&mbq
      zW1$UB+R1NHh&KL{SyQh<pu<ht5maNAiD{@&sBUcP4MSm$2?J9M)GDmLBGM5=akYTP
      z6q1ur_6gd0>EL{p6D9Ik*P93<BCh9|n2!YtvvPL6(=GI+?DoRIfSt9I47%|^Q*Q)|
      z&|qNk`J792l+aBq!BXaJ(AJq{S{u8XChFH3!L?{I(5NtNLds3VMaHm|Ozv>=&cM+K
      z#aw1$IaUynyW&F-FTnE%U1zdxS1Fh!*Bx#lo!3d}Qkc>0r0pGr;XXUN*J40YZf?Jo
      z>b0_tJeM{D`5`B#5Wj38StrWjk1hhkn%#^G$dM3bEEkqS^CSr^o3?s+*<@lWOyW!b
      ziF9oy+R@=@>{WF`qfcTn)7j{7hcj;4PUpp_)xc(jrIVJU*oM)GttQrEo5IS;rH~_)
      zf?{@~*lyxxbW?mLjZNnzY^*dqwo4jYJ;oFFDCDrh6cJKD6|TKJ@65tfdfH~EGG2)o
      zNjv4;1z3Kp*C_UyxD~tE)>(Vl9bo|kopjP3ql`%>mvM94F(gs06pg>cWQVB`jDsd_
      z!+xe>KwJ4zt&K>X2>YC5en_nEGGU>QJ;H+Am9^PG?4Ui)F?y=?C#=(9z&XcFw}z3#
      zfB_oRlpCY`*2Eyzk^hkG3=ZYRfn(w@?)G?lxWUG*Qn<q=($Y**l5V$k)GaV5HOk(~
      zP}g0SBSF^s`e<v`$_zRExl*7x6L}n=Mj6jk4Jyp86n5E~fDCS%X2d{;taLJE_qc_e
      zy?KO%r!e2=!<MZ?<*oL05AHK?um3Y~p_z&M@c;u66<tld#;=~<W6^cuArlYF00_|X
      zHrY6C;!)X<qdF^LJdP&~JfSeXtgk+A;wjNqjmfd6O+0fRXMY6u;G~J?MCa-Gtd-8C
      zth}uciR}v}#&A@j${tauuPAh35UkK(#$!LTV&!q?>9LivkZP?@!XC~*H?4&fS8tkl
      zU0g->xP@%Ly~U9!7WIGYq-R!0V4OK!>9n2gNLjg@&4Fh6%{aW-nfwL0LOxYoA;Vu^
      zIc#_}`F<LvbDhDbk7yg<wLN|gGvm!?F+2V_qWk0O9IiTxy7(E?RTnY0dgC}^&2x)b
      zxMO({*TnU05zWV|)ZFGG5~u$9^<$z`;d-ud?e7F}pP}z(QHzuO>^zSKyoe^e#Hs%>
      z*6_Ivui^%6uNh!9cjd2LGgny1c-CSaQJctkJz8{Zt=LfFzKL(DXde>Z8!P@JdiOm>
      zc1q*ddRArp5N^~eDEa=Buny8jG>bBto4!P6k3_!g47L=}wXXs_T^oHsVL!wioYwFQ
      zy@O@=D0)bh#YxgTu#><FyROX9If8sbN1tBAk!Ui}(Jk0ril~i_MV+ujQeVWLN)(<z
      zUlIIkpFrVq1Yz`2c6JT+p{4}4QO5yHjVq}OF0(6uo-E%|@$Z=X?=`5@8O=+eO6F?`
      zY63IreV_v5G5dkce!K{?+i?eB6z(hs+DrW<P+hF`5^WKO&Y-`DA@3no!S{&%#HfBo
      z48Qn%)Rm*JgIkI|gCiHAoUK55lz$`T-+gd?F$);clt;0u1h-m0i<o7$rx}6QJ|VsY
      z{`glBIg&gGRn4fSy$31av7YKp<Je2E+4I<<ErD3TtKybmELg;YYeLbG+&psE8iO_c
      zSTuAB4f@7-A9c;zMwSyrJR1uV@cD7fI$o{j38L=q@k+d_WQr)x7*&Oc3Sf>3V!jIT
      ze?tQaH3e-df}LtAZdLrI(q=%-(4p-1=$2(3<TQAR!35FAdGHE@H*iSzdo?S*Q}=s-
      zbEAdbx|3E*Ia^+3VnRr89=ygogQqz-{|`alm{gFfDM*Zh)KieT6l5L+nNL9$P>@9w
      iWHAM4pdc{{a?O7xNEP1Fb@Vpg;Z^?2j`H^|s{RJPItJbV
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUYfsZ)6n@S&R#z&F+fW2Sow$pxc)yHj2x>wy72TYlyYVuMTT9xv5Py~lg7Jet
      zz#nBiZ|UerFd6Yf-}apMoaa2}*57}A{sM3ps~Qr77ab=scdR|jwDzUBD}-nI`?k|D
      z>*{<XoM1zW-X`nwr!+O&m%<UAh7=(i0(32Qd)L|#ZK)wmSU7<dd%}_CT3gz#(|07K
      z<!9T^uMo<$p-EKPZPj*c`J7NGoWrl!B&62eEs+7?q5%yTbR;ouAcHI+Sx^S!HQNzy
      zgI-H`4Xf1^gvpxQwz^Hrvy~hvQ;IlYZTRqK*N&4Jx5A=q3UAx>dSZ*PSg4&@w^yo$
      z)nYS)OPJGenNS?MY6h-go-oQS?st?h702l-t2(Y?Ny8#x?%yN~T*Gxj#uu{g240)X
      zG!u~?7y+iLBadYbH~RykCamGQ-7mH@a0>;(L`TS%V%rM3GP)p47m6{nNXx|XC>bc@
      zHWO#3`d1#mURaa&fe4tw?4VnG!JZYYXfWCDB&GP;;6=E{x$L^W47G&ZKm*o3H9{>X
      zLl_aN1%&ySUZ{x%``D1+o@XrodxTV#36Iqn>jeF{A+K#UySY;ft5&$8DnKwc9NygZ
      zuI2lJ=XmCnU4K8Z#JEX*MnKuD+86$7B#}^oSUbwn1C|o})=TB@FiJ-l`^HiN6MUxG
      z2H3zPpGNqtV+zwOaX{oEgbxuyu3S2Rae&!FEd0QYLln!0xD%s|ab%#*Q5)?2F+|OU
      xv2zhB81p_eqAZx<!w7$wZIoxaR6fF^7;liB${>L!;rSHL_^t9IUb89^e*r{yU2y;a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|^c7Pc$j6a+y))ZJF8_=Q?NM1%xWKN3h2crb3;5f|Gn>284sebq<x
      zReyzvltdDLfIrH3XS$_ZS&}~N?Cza&&pmVQoj-qn{RS|DRRtjiW81DIcg#IAY3{qp
      zUCzr%XWz27lj~xA#_h_Q%Zo25t{}qDEujUI057sTJm)HCV;F8G@MkeZiMSqN=u4kq
      z>%kO5d(kVzFem{Bo{FbFP}`hkTkZlwOb;M2G7ORBQl6^_qf0{+-3(#f$aH|ASA&9f
      z1^o;IqW&p*6)_Ac7-Z-<rBA~J43oxf?xxKwFEI4$Moob<V%;s1RVfvHxG3t5QV~y~
      zf4`>Wl7<eb3MLp9Teg0xsTpa@ak<UQD#meH6r5rx>FJi)QmsRS3#W{XIP6so*PxSQ
      zW<I}^bFGqHSH>{uYZ2e$wwr855Cub5+OqlcN-@jJ8)mk^sZZ%r&MaiivL*h#V8nfE
      zISh%`Wz$3{dCL(TLTFOMP0TQ;4tG~<5zW)A=vzWV8<zn}sD025+oEO@R5n}W&uX|Y
      zx~focgCDq*?8;Z~=_#mH-Yq$F8i8Le*@W-)*&!mHgNqvGFi&)EB&w@1))GXD*GrXh
      zj;~t6oLJKoh$}fQW|cu(vuPZb3#Q|6GHRd+SMLcX=pKaWIfoG4f4UB|LJXt)qk9UC
      zcF)sa(Zd+=BXq_Shv<nPqi-`&#lR6p4lx%0iLqmhZ^qdXCabvegOWlpXpK=S@Cp&U
      zCTbHy$U;XBak(c78%W?fy~URhL4M-~y1mk~#KUN>LzD<tG2Nh6rS2U{c_-<FTA{y2
      z$8al{BoaVUCK4x*gyzIkvP9*CUa4dxfaE=qeDEEtu0&|MjXOlca2KONbmZi{{}1+&
      z=sul6_W%ziUFzhB^PW%9I1~M#rKdsINqq)BQ!Bnucfa}$8a;7~=I#t-3k{;0<=;rz
      c_cN3|!V=Mh@R$mQu#6}4Rw*)0&k92S0C=fgZ~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+foxj5IwWRED0+F6c8_<7$6s90r48dO9TuCp(<8N^u<jw1xv-<xVr%?^^bhe
      zDuF5=`~W}7vS(N}TX~@3LuR&TPM_1=)15zmfBgn9hnFf827TLV>bu6Cp&R?2-r(HP
      z-F?&A)=Oet=T>u*&XR$pBErxw91eWongB6Gy&cm{&N56DJEF{y%c5zS-V#G5)uB(i
      z%n-@jH68;)kA`!I#?giI8dUT$bfpBKuV`BQRr5oIJFksOoihv+?W$2P8;&V#|1cr~
      zW|-?tx>W%RJZ8G39a|JgYQAN-u+2Ro;+eL!VU?;5=N9Rv(#4>*o3?3rxi|%WNy7*(
      z6Ad|S8V<KShM_PtZ(E*0NjL<*icuBUh$|opZZ!;ID2D48S8;=(H$X@!4L6ZwU<dRo
      z2-!&uQ%F$(N%oBlyda!28nP1jNq}x?m^lS)QHTv0AEm~SXwQX?b_}al=j(RU<;#0A
      zk<nBO#>J7|y3M7_aV+4jiaQJ=LAdQO4fk-Lv|a9%?50zt7aa6i>jt&vMrD^*JxRv!
      zP(u#$)RPUzu5#CHsWB*gkKxK0@lf4E8LZpl`D7lV6i+lf70kn7<`9PAU8jBf-#sP@
      z#qeD8bvHx&qzo&jZ02AV#bnNiDl%vVi`pe$H(ZyyDhdn}9ZexsIiRCnpst|*29`*O
      z$)c|)6cGWP$H-bBOQAiU$sW>j4DAP53i>3H(ON))R*mq4LO%v*r{TawpJAGIai>JS
      zi8bU|4tXkpC-t}QS)<5=b~1B>;Ujv~?AA|=kumZ95M#nflQB(3I{Q7~9zcY?4a%TG
      zvr@%4YEozDgv;0IrXkZYD`T6(ysx-Q7@^pcCF0we>=7Qc((RRnvZ+iBO7vrhw8tkU
      zM=auzBwad#^l>}sXCnPVq+ib>r828{=0`e7af)|~X0pe~xA>xTfBGgO69vn1UBN2t
      LqQMwmU=7MYQr1@o
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTW}L)7(IWoG$dUpP+G1c$fZdN1h8DBpq2t!Yzx|2Xz{jf{<e$hZcR3&cz@9G
      zHeSY8^}!h(UmP80Ak63t`lvqY3!}d3tG?=kdcNIlnx=`=huzJ7d%p9X@Al{WzrVZz
      zU_V}rA)>Hz!YO7hSu<9~y6k19wa#Y>mu+VvGa&aq?G(?^7K5R%%7^7FempyRNsoCk
      zG$^z#be{82h>=j<6q<U=7%_Az7*qa-{k=<yzN4&#t_{a*$M)`4Sd*-xO%0K_+s*0(
      zqG&SFh*b*FWNIi5qD{oGJchLjng1Cyfo8M{-8zMf$)!o|TpFw*vq0ts6LBOY;wBTD
      zaht;Gg7!|j#nGHTQ5+xFd7WjJ$&u7h0=HvZ3|kdeEGVyuJFs10`God*tx=s*Ser}*
      zrSf|>;N{ubPKmM8#4fb4Rg5vHXFY|Mu&9;DAXLgk8tufAx5v{{?0m8(<dxBp&WfGH
      zdyt7?FQqTgB_B=flcvP2Y_{L^?C~oCK49WbbOg*YYzo`w1ea%0*t^}SY1h$?C!o$4
      z4k@H=*-D8j_&5&Yh>5#!l%<jB3vyWJ7iKn``7;$sG~<|w<KUo0sa9cMP?^QhpazTW
      z(w}=xbm4@885XVEEjp|+hq6c3!gh3jacWfO2QBuOL)z<(S-BxAZ_9gVG`vZ>pwPCo
      ziQ<MRn-}>F+iz3z!Zne+Wdo=EO1Iydb*_SRim?(w-CC=b&u5hdH0Np?bkd~9fS$JU
      zmgnYW<Q_6{PDUV>)wzJm;23e3n=xeKJO;Vpc|GOMupG;5C#z=#YZs&-0=j785m}1_
      zNA{E>R`#Yr`@e_`e$b>w*k@wG6)-%1yw@z=gMfb8Eij<$!D&}IRC&0Fr8AH?VIm6x
      zjd34Uaj^Lyo{^K5lg;Tqw^-1pW;m+~TPjMW#gv)<8q#tvF5yXqh@Mf{G~cg9a4ua%
      zfIhB}>-b@$G<g%#!eVgPE{LIMq9D^JN5OeJ>rIMr*2Ih$1vM;&XG~lXLt?-!=EwAD
      z+n>bpkt==ND~rtD_Bf8tcjv4^L31MGWem3QgpKlAh6w*#c+m0=Imvi$qP-C&?<@Fr
      zlbB_Ej-;<+WxD+uR;Ry0^Ke>SN6R&=PhZ9QXbBtT*<Qky5_Uw7e}Y}@n@dRc?<rw7
      zul?WP;88;$8;q+sTteshmm+F2@%McA&&@B$9zi$n2N)H283taVmRHe=*RTbzBZW7x
      z7jL2iZ{Y~uMi<^eKW)Q!7boe_5h%ndoaP&~`WY#-)9XImPxcOML=Vm|=PqXT0D2ii
      zp^q#<mKTYM(zAt{L~Wml-5qM37r4>~y~lFBkG1%~556^UEC+A#1F?w=be4f448aWw
      z10CX1G0<`eP{M=r+zBFqk0||PpH~_{T*#|1fWeTXi%7x7g=13*4_A|XMz_y>lGXrN
      z78l0_)<Yx=mn9u0Mnd^??Bz%`U5RwpD>TK+njWo9V$>kHL6Wa)lJIz_lh`69-;(6J
      zI*C1o$Nj{fKwB+3Hg-pKVn2}X$2xQtMt!=ma*D^pIyI)13_fqG=Lv(!_=$t~GneR>
      zibNaB)#6E1N7?v1Q7{I-QrT~Hlug3+mGK0sLzk<j`<--u)S+|W`gA;s>d-w^P4_41
      z{`yZk$Uzp;9q{SPBkz66Sqt{PfnT7Eiek-;JLJr(?SHx2zo~}5k|VOV|I^j}8*BJS
      T@T{-$IXus2f=tc4UO?nu41re>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5PefVs-*&giXOcfEQyWh8ox-4hsKa#xG%WDHDyamE5FN&CLa6&{wU+D
      zXd@mlo1M*j`{vEg?EA;-8-Qc%*{}!)W1aaA;!*fwp88WM6Mr^WdhGX2><KNS9+NhT
      z1aGCb8|zdkEt7@5OlU3p=4OQQiP9=PB{bV%F8aC;4hMu{H@=e&3aGfS;j+^&Szd>w
      z4hU5jHPkuDSQ5^bq?2i^rA~wJpQr!mO!ZpGUEE}op-gVYFp`8u7>`6W5Q#GQn=GdH
      zYDQ?Uw$7Ul2&JhRC!zkgXM)p@vt%T%lquI-p8b)T5cav%0`C%k9`UlV#&Mm|HS-pq
      vuGe{i<8|m68&8ZaY;vsfEpX0x7pUM84MsZ)J(}2J#F^M;&bYQ1S=jvq)8&o~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOIIUB7`+uRAxQ&q2BJJ1QE|)z$@rRa1W^X(5eNecX4G91>X7Dy?wsxpj4NIH
      z1AP1fH?wdQ<2f!|y6{JNyj3YWO%5|>TvT`USKoL0-tSTW{QKu$0N%nEDI^4L9Jrmz
      zp?z#u?31w4meQ{TCyski*-_73`7m7drM*r2{5eYs!vZg;z=tMaeW&4jt=6{f$`q0U
      zSD%W!<{h;?SGu7<GHg1*{564c?WrMgGD{3wc3dZ15x7<OA91xvYs6rwSQi*x^Y&#L
      z0;3jE7|CD=;}+7$2}~6(3aVCB*m%ux<^9glp7eL^y_OWXRP!2kt8V*_`ZmU4B~jq!
      zvlBg^ZOR>PFk=D}7jYr$0~xMIiUg($MeP_BCpsfku4%jbExGA+0(tvb*WgM_qg19!
      z|CIU3U=~+Wc!|k~@;B&a;bqJTqyri5cpbmNTud6&md%FR+B=kuP=g7)YT-4^llQ(8
      zwC%9bG(7S#9;**_wN=+AA&&)S`r-%wPFbT)P;(BN;fYjFfuTb2D}j7W?4}nwo~uDK
      zEOpt!0;bu<ZQpCiAkdOyJ_2LC;0^h;;Wr!O*Q0QDW`td{I9iKr41;-g%*+jvKRY7z
      z%PgPj8%1x+<seDvvXx8`^=NK;jvFpza2@Zba6_Q@%(G(Q9lXoJIKfWSQ&XKL$dZL+
      z<OM8_ebgHntl;AmKH{&VGDn9NZlb`k^JQ4KTLOZ~&624d%IcAQz;aI%I23)A+Nv4f
      zv9N|u7;?f@<!UmNlJEL<yXiDI8Iy6TXJ#F{X<;23q)-2C+t=Nik9)6qZfJ7~eY&sU
      zQw#U8#p1VZe_&e9+ypYc2EF5`fz6-0*VIk7sKhfhRhOu1EjtJ#DUP1=!yFrEi0e6s
      zTuxmXyi~JXX{gpxyDbdU0~jxre}`3C$mMf$e_-q}O$j{D=OsD-n}pavk}HiGZ9tyq
      z48vti@U3=}+Qv@Biw1mwZ^5%f=@<3Xcu8%kYYeM*YB1P+n5IS1x=U|`pDmZVm?@RJ
      zc%@HiOf$AgX^%P@F*@0ZP8P4@D!~NaK*4}UbcP-c&^f%2PBEghV(26llTx2aMw9H2
      z$#INDGGdX8SiFfv!{QuPWf1EdVtxBWthcoyPKv?meFGz<Q&?TRH<;${V!B46G;>5u
      z{Fi*IG*1mJD}+;g@HfWHu8R+sXZnfi^}+Xa{{a?$WR-u4(VQ~i3EEe2OVi{uncv)F
      z!BmrF6!gq&7q<tA{;aX)dR|fbGVFtU#9$<<+$Ff@oEg*s@wGwBM;D6c;F<VHyr^9u
      qe!Eug1NOu}CV^im{x^y|eS-MUutWF+c6En+j=CnV`tUj)An_lKciBV$
      
      literal 0
      HcmV?d00001
      
      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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
      H-a+JFK~Ljw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7_%X8aQ6vn?Rhq$p-=ixkP6WUNh@gvl2dE-!^rb(SRjlsb%*(uJ&R>zS%vXYb~
      zYhVj(fd!9Y2AFBh3=5Vl_@fxUE6cL1mOvM>q<hZ&o%7vuj{Mi(zyAT?8a|9e6L_s@
      z9Tn~x$40?8aSI(OokI7-w3>yQ`rVcH+;vm752`e*j4s77CNQtI-t)I?2JUf;3tT=G
      zU9t~5wk0iBV8R`Q5tyw6$po~bz_{BoyDL`(Rx77cgFPx?wQtR|O!tOBDf2iRAC*M5
      zE-+TI599;{CUs08kw6U7I+B<Xh-I>MWtr6x#~FH5OiSK5I^37euCd>i0y7o6VYKUp
      zW2$$5aZCvlC_YAZkvdRix+z@+cTL;cv1$!RN{jI_*`bcAZCY+IfhAms<0*mM|35|@
      z=Ww1?GP|{wt-8V!yO+Qvti<sQ13g?a9T&08<9DQ6H`)SXPaw&>3|E#9jV4cHHd8K#
      z^7B@`{Bk;;Lxx*Uc$Imz1kO_6W~gJ%`_h8W3v4`%sg_|KwB@#a)Rni6y$-vO8J>hx
      zONF7en5`%90$z&aMS*jHl&G7Im+=Zup)1{*edIJKVa}(v4bIEX{$1H{Js77-$LqKz
      zFx_$NhU|8S(F8PkEU<V=KAftMf^Az>)zgt+d%daSEk#}klS4iNss83I`LQp4=^^n0
      zo0si7O8PAlBhm*>D(Z%g+qlW5_M;ALJg}&cfr*8fVAZOI<5gfj+>9mLat)4$!-8MJ
      zwvJ6~v8g(SGx7l#y0Ll4+Hj0c%WQC5=EAhWve!K|9aX$5kmwg_-BgpeF#6?E--atn
      zt$<#(m`15>bi0z=)TkqtsXfN)326Lga;|}?DK+_gQ&$o?t!MePMUNQolezo@q;kJu
      zD!2Lo>0h~|VUE8k&s-&Hn}8k6b8X(kPGSL1@{OCl5E_x3I3IkScR|~k+<l~aSp0?0
      zed4&czUPrt8ual=LQNl6RAM#WRr2ZB8VTt?kyN)Ho?cu0DL~C&jL#p@vB~6Gn1&fj
      zFzsVCu0M;*1PV2xet_E)rj#dCf{RN%WTPpbc&z2VS0FZlJXXn2C;2>|l<X@g_*7+4
      zHZ2#WeG(F^1%j{gAFVHVgCr$5na}lbJ(us{)o2wyWfeYS*v~^ElR;uh6tU)of8!MB
      zjVSaBLcb*RtN(z$jhm0kw4^d!k3zpD^czCI{a0w&%ajA;LxXyY%1FH{mHhA|`}O{g
      z=kz`6{R8XzV<<ql-gnrlsuCP3KR~1*-y2f<4f(T28f{1oyQ-FWA9b(ZinxRip#1}K
      CZ_RN4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8U3U{z6x}y14Gq&Tps7$$5yUjDL{vV5ls2@I(qe5(l=^|w<kAi%Ghs4;;-kMu
      z*OIkdVO5mntG@dK`~klE<Z|CT)9EBBO&>ConS1U&`|PvNP5%7vmzMy}V>6DJKziM-
      zXC9i5&5ZfP%T%RwGqop{y`EWC*A=<x&04ZtTI50;-JRldPNnMD()RrL9)Zzj>?S~g
      zo@<tEdDjI-QuAS87?T|<2z2M1l1!irhYZAF2y~^!3UTxcT-iVMGtJc`(1$?<Hzbft
      z&F>#4yF1GSj$k;BqXLK9t1ytnh(LT@da5#kqp2|;rfe#mJ(ogf6{TYaj$@Rewe8U1
      zK$d9aSRny{lLlVL8<a;0C@>k(FKj|~@5*-Kl+FY5mM!npD{InSG1tnHwahz3vs^G;
      zOFaiKyS)voCNQx#bl5`WgRDTWw{0Yrzng{v{n~cnMu86O!$_5)rN7L0s6t^X^~$pK
      z9ZMNW<pa%?%Wqm0Y1b^r&h}EtaRU>0cbh;cia-Zrgpt`p$l!b&?+KjU(@NnE1MlMl
      zfj(MdE_^9)JTS&)FoHX4w8sTpisPa{QaP+W!oX!*VG)E}h*qB5Hd}My9HX+d1w@`S
      zs;+z>U00TrSSr(X1Ct7EkZ6n1Me0g#&J;JC+=l7WeW{%C&OsTz5jk#)#F#}-GH`%M
      z%d#ws9%Y}gOL~l%dno#T*)v@)4!&+KGHi7Mw=k?O$Cz4KN|{toTy#KqtkiTWfdi?0
      zUJ>lADd_uEht}<pc4<+4(WR6u&v$!wYE@0vE!;J*gk@D!xF%M8EpnzyL7bYUs!*}3
      z2EM?TjAa>mvAv0kW=5~kCtu^6IPSO9w-aHH&S?WV)xl#oq1mEtT&0Z9W7P}H^h
      z!CksKC3M~{$;~MewQPcD4XCNu<mV|BQ(W0S-I-~pZkMP<^MEX|PduB-l7nPCu*z)V
      z%wwMF4D3$Ljm<Hu|CWe+Na~!`y0;*`4X3muAJt_|1)q+Z&#Gkdc3TiLB$l1JTa>ew
      zI&?;wPii&X=TwJDByZc&&6UksO%l7mIS{8f%3b^%;E&r8-s3pPYcHR^MK@P~lj-M3
      zyg=W*^!RfOEKH0yaJYfj(&G~ioOs577~bSHsUfzw=>_`nE1!SE3A|(ia9so8Eu7{P
      zA#nz8Gfh7Ra2D?nfyV~Mg2Yq2#~9U@{u${loD*o^!=L!VPt?O@;13O)^aDfSK3qkX
      z>jKyIg!`x!?ynATm-mEgWA}FlxXC@?+SvWm0qzErW~ylyv`m25X^gMezYz!#>LoCZ
      zoYw1RM+gz?05OBvfW?G{WW&0CXl|P@G={--)lT0J0w3>V=g6)*`5z(3c{Rv67`o<n
      z+-hL1rPJb61ZOa0z&{WHPM*A!`-Y-8^!)7|MH4DOjAKwtL?jssRUN`S7BrnZ_#}Xx
      zB%~UG*2aiS8p5BDXk!+&k+}h%@|&6v9<Kq|t{g`jSZU=rMUK<2;8?(CgcJBY6n|1b
      z1H;kM8@RWHuLN2<c{`%xaH!)NiUG$vfsV-*u+c4)VrV6L7sH|uA({-uOkzD4=?z!`
      z_6^>ZnC<>5M%3K)mvY*}K+PDBHDAp#DgoL>-c`qAqSY(a2%{+4HX|EOh!OJ{_5P@k
      vc;W$i@Wj(sU{vvldj(w70*r8K+IW1gF`B0)22W?I<1z2*zil5sPZ0Yb6B>L+
      
      literal 0
      HcmV?d00001
      
      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
      zcmai#+fvg|6o&r|h0<_7i;4&2&{Clycr19JT1Cr2si@;sS~3tVDbuFloe$sx_yE3u
      zUNNIHK7bG9xK^@B(xfRjN%z_--}?5>>dxPPzy1JNz`H0~1Sa>4TI!>Eq^8tkGj*tG
      zl~nauH}+E7e9f23rBAvUMMPk{E;Cb7tJOo*+?Oc=?aR8Mn-2t9<B1)CNT$52DQHEk
      z3vFl@=*{VdwoyAMXqCKLC}{!%xpGl0?Wh%<$1)f(_w}m4bgr&kh*(;nt60%gQ(LW>
      zX4w#!i|3rx*s*lNjaV2vyhTe*N6{}Z)3lPCt)LHsyqF<@p$27W(d`AP(eKuj7LI8~
      zHI7tTq1V)o1x)R*G(CToshh1}3>VpSyx#P*44W3EhR0M+3v}9hno|o}Ng(N2s}%}(
      zT2ZNajow|;4Rw+gOkj#Frv(OsHAu3pWE=FkyJ-suD7NCdX4C`{o~Jny5agiryDl)*
      z)bBJ`K@#(<m!eJ$6yOd&u!{G(a#n4DZr5#9tq7!iPgAg=A;qQSErIx%k}_Sv67I0)
      zU4h|7l}I(ps+P+@y)CN<^ti%nrgk8(;Nx(#p)yZMXZq(S&U8M_SFnOdEd5wuq+v0#
      z?qF+MXs}+}@^SifOEvs`YJ~#ER#fUfJF8EfWCdBQvFnTaK9x1NPY-PaPoLV8bn4k#
      zo7X;@SzRmb3M_h->x2WU&WzOE5}0keyLAsJ*u-mA-WC{bT#vM4rfW6iZm>h5&QP|?
      zwMtRT>U>`Jd%p?ue9T6!g3f#ToB%QUMdv(Sqclp<UC_O4_5>Y2=|>9`y7DxTK_^|i
      z>;$@Z(<p)-^iqT$ULj-)-DAJe_da=ofgd#R0yZtch@B(>Y%q)wLPRi%b3xP?qb~SS
      zA3{)<aM?m#0WZ;KHNmJ!KWZ-oHG{Z?N?<mKN-}EBkE({CZqRp|7kCqkLDUkXZu?PR
      zLQwZ`-$JFa97L@!>Y*R?H3YRvZ<MW`;As$*Wz=&&>RSlvC2|&O9UDQ^CZk^YQQt#Q
      OdAuQnz>d{CZ~p^yDj<vi
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`!A`<J5PefB)lxwa1&^K-NNhY~^gyDRG{yvj=LI&n2DYTM_Pe}j;=vE_ql~kn
      zAevw{JDWHA=FPs@xA&J<0LR#KU=a?6I`QwtgYZQf`x7Z6f0`;i^gAZrDm@6(YtA~b
      z3H6oaR;Xj4w2Wr_ETOtAyig-#Pn1^iDWQBA%vm!+v(_cpt#BY+WRUaVz#~+C@aCPE
      z>VlB>P{0-!8BN035_LQYwbXGl_~-H8Jkz}pu#c-`+>_Cb=#3<y6oh>->WWAi{FSuh
      zJ2fTLR!c8zH`#akIZ{ILk8Oh636rQV&z0#|{`CV#W=!@z+s*J^<3A)`4%RttFluw&
      w;?t`)p5fLT^n}ev#ukbk^Lz_ja9tZYT%yEicgDvy%8a-YJDfAB6-E}SA4sN=<NyEw
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+iuf95Ix(vH3@E;ORwBp0wigvxd|QuNTqG0pwL9I3F-qvn`B#DrFLZ2rF;>u
      zfIyL`#0T(Ei18(<8wvVg%QJh<*_qk1{{83YF97%PNW~b#%D(OC2mFZZ{G-%+u4PNz
      z=s8YTbhezfcPMPBLSaY+m@c>X^;+vdv?)8uFym*BBO2iu#`mlb3`^AjZaI3{>WYfp
      z^Q0kN!4FFelTR(%lFu2^`7@|ep~;|ZIvtV3IHoitFim>-LQ_SGVc{Q&Nz5SQgOdp`
      z%xX|^LB%}7)i`0tk!8oTJKM)?(UX>AQ|(pD7CYWyOSmR)bp=DF>a=;c$z98jqog9=
      z`yJ(~=MRdSQ}(D|hUv4NF-+|Xxgn)%wLB?Eu8=PTkiqQuU`?kf4uOV{q^S{?vgIy6
      za$K722z9trN?-*!6*uWrN6sbW<|;e&*XBFJY;145(r^p68ItvyVH%r_O5OCEJf9a8
      zRQH{-#U-biM+NCIcMvK?Wj6%x2)FFGrZ|=~-~p115iXTftWisYql!5tTu)*Z>;CEL
      z42!3JiQxj<q-n3vV6@kZPr-;6Vw=VB)U)AuZd>@)r0Pf9zV6q8W%ANEJrned`Ie$9
      zGfCfMGkRa7=q(gl0p^N*XvGuE?5_5a{(<agC~v+JNI?o&%n@jTU>S;mC-g2+_8Dfe
      zfkn#9hay<QC5lK6mvM#I<X>Eiwpt5f&~^Pnh)~Zj2G|ZXwBUOz(qOob8xeCoVk+OT
      zJj#6;<0?b$9podf9&sm%-;o_9*J9*}A-RBJM1CAh5717qy6X${ad%Y1jA>{?jeGQK
      T3Mc&E0(N8M(*hm@^Lh9e`p^ls
      
      literal 0
      HcmV?d00001
      
      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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
      YUel#muMz9QB3ROM1naLv3E*%416K{0>i_@%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n^eD)~%Em2M$msgQ;xbsEQ)c2`XY@GN;LwC4B6*Yboj4rR#k8S!%K+
      zlK2DsQO0xIy-G;@(A#@Y&+|OzIrsGUpP#<~Ji@Vr5W}Wnchn30ldjgdZnxFf{G;Bn
      zywfjr-ttVxE}CtR+uW59VVL(5E!{TM_q7XN_asCaR>$C1a161xrE=wE>Ex6lSNu;k
      zjbMekW!k29#1PKrstl16r@>_~%qW<J%n&X3-{TaTS0EwAFjq8fUg|V!+^y&}i!&sO
      zPF=UEx@(HFACwWs4DosAW}6^<V6}4YI-hNZ<!o`}b7)A*RpVI3EeR_VjVOPm1~nDj
      z#wu0HU6<izfHxiWgKOGe*>kzx)Fj+tSQ;@?*tCsT9n)%XH-<FTIxHpa`L!ITWu&kn
      z{AP%DysiLEMTv}i3hrZ*I-<8)+-@-B$5Vr=(sE<2CbYE}atum3pKkJYTQ_(hyDdl`
      z{KGYny_QSH4jxKS85TxXhfP#y?jAG92KU|tS`3TXtCeZO)e{9zMRv?{0$CZ)a3EoS
      zz&+Vu1&5+bQcLvQqI+a?{r#)(M|M~RO_yADI&Pi6F~y9et{eItVFBwjU}1Wu=vfhS
      zM!!#();Pp8PSa@@AzFdyOR%#ZlpmP;M#m6t&^k-WzySgG39yHR{{;l4Dee=f^kx*F
      z+Uj9p1daN^0HOp5SoHPD8Ilwc>INdde&#!tE|EG*to5+I-NoHRwu>#=<muJLZWnta
      l>Ll3#o<qSAQ5|EA_8WNNSC<Uv`cgm!8VV%FC`Y(D`U@|?{hI&)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%$!^n76g@YSn_$S)LTO7WQ*j0*VoMR5BBY2=7Of(|?m2x*T%~sLfasRL$c{l`
      zfe;i#TZsjNEgyxr&o+sJKvC>>@43S{=lSQauipUNLQ_MEusE=T_MUhq+NKn?*S_Zj
      z=14w}hZ-`3QizO%J!n5N_hjEEWc<SeNho)x(B?>Z-UdUq*k`DcfVO?tvImUi?pU_v
      z-zBUY2{`IZB;xv7kEd-qyRv{Z&g#hH93gGgdU-G@9a-emsiH%}9HH2?Y`GQeo6_A8
      zOkZ(u`eM`*uBGBQnem5~M_B6qPc!q>2GZXN6;_Q}g4iF83f~H4&d=aeq4H@UM!aSr
      zDKv6#qxM7zTGg?Pl>*kVs^Q9v%h4DDIkP^-{S539=7z!>DtAIpI%=e$;|A8%NP|$=
      zb^^CA?_0`=<&N#Uj(5P9XE}Dq?gysu9k->fkIQ)ke+?=Av#0!oax{#<t``_T!_i}|
      zP<6%nDfD{dm=Dckls|DQg(^QQ$N=<`znNFa(`&x2H<;)ATGWOGoacxKgli}~sYPn>
      z1uVvE+Wb~nw*CdhBR)jKb1F%1!-0BKFd29eOPo<0lg;J7o8SGTnZ3bE-26Ni*lPR$
      zjbSvtgB~`Sg<^7oOJh_yDsxmm!R0ZsnfGb_O(;hCKR~08(CG+G`kc_;n$T_GDz5QP
      pot?SPo}~E97Z<a*9mYT@+IlluS9>wt6IpSZP*aL$6Y3$G#%~<Bv&sMf
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U31$+6g_J@v8||IX_J!j<r1KA0uiMY2o4RY<5E*6F0m7)4-BKYTUV_td88Fd
      zc;b;)UU}sYK$)Q_%)mQ8is{|eT2>ur>KRGi-FweH_uPB;zyJUG2f$T)lShW(a@UKj
      zNA~x&wa0BQv^Jt%?{K}}ce$wgp5O-}j~v5UW#Zai*J|!P;vL$ZWSCRCwz9TfaAG)D
      z+q~Pp_g!skXS24w-mW*d7%n!HLnIv6s(De52exp0ufkAR?YNHTh#L&qh4L;#uIk_C
      zMV!K!JWeyr3>~Y!>k<L-3r(EGIfh~!s#R+<oJoafaZxb{;=G9qm|>XW!<Y=#LdtXq
      zS}CWt(<F<a1We>nkWn0uZ$-U59<=Q}morQ^{EqGJ+JPh2dUJAB<zyg>*Gyc3L3xRX
      zPRKCdc&YBBirM92J-YAsRoCe=T+xg@F07sH#(?QS|A8Up{1)EMW1d(YFOZ3MP$FoL
      z@28-%QQ$J1j#D4tQ(1^Wy=QkR!O{uA_l2b_DC!d4&*Qy8v)FXf_I>xUBTOvAqLv`E
      z4gSE6T%ivbE-YxhQ|1cls)-L#rlNHMZVRqi6s01n-xwA&Bh{5H5jb9VR1#%LLgqZX
      zr;4QXNINhX2_)5JZa`;DkDB2_e}BX8P~UojvKbYGx^{kKFV-_1PxkhtumcK8p(SEV
      z*dn6PGvm@B>wJ%gp(;T!<bv|#c8_6kjCCB%@vXYokF;e)1~h619o|<Xlg9?bc_o81
      zY$hiK++wJx@h>?&ntz$48c(_OLmrlX;DKLCVVCSM^gE6+3YQI3aa(q|oZ-j(kn#*Q
      z*_pA-XmCk|K|<v*3F+1t$%x@p;&+E1l612#RIM)Lz2XOzDSVAq9^2$FyguksFwsVn
      zn%mKaBv8wbf)2ms$Wgv{{0>}}{wUE6kfmpWo=fr~pnKG$cM%5dOwnqYzVc^0fq8`K
      zKQQ|{tulB;?$H-mC+juLsa<->OF{cyqp$RySbU0CN8PH(p{Cr-*a)xV4KikUQ_+&a
      zS7;?eOe`JY@^ADfjytIwww3d2Y@nUV6z}2+ozpO(Om7LZN;VRvaD>IBKk>mR(zhw3
      zLV{FCkgnk)jr1{nB~pfsVmwG;WD<-Fu0#4Te1cCkhE!Cll6!*LQ4~KVNG=g%1)pi(
      z>oPVyY^Y`|#z87POTx1xg%wmZ#2UG0$3gt4AWHG!F$h_hRmvqp-_LR5Wqf`*fzO(j
      z;|pq=3~myS96?o8nQl{P$;|j0)qB&mr}*+;TBS?=bBdyoP&80isInoy!W~7iflW>E
      q<dXf8;+QU3jK;8qrp6dFa*>AM8SXNS*6mjX6*qD*soRdCzxy0byTPFV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|ZBG+H5PtUha;2QKVyzYhT3@g&l@m=&ObG-bnkJ1Hsu=y`_1Lsa+AFzkLH$jB
      z&_qI_i9f&}Wt`nRDQ&8JxZR!Ed7hb_XYSYU?>_;o;*kl1VWH&>>;vb>v76lS`u6sq
      z+x@tCc-Y~xAqPzpQHHd>?>Jt|-f13iSDJ`3WVP4Pq4p5LVD0zZL6>{-snh2SGj$#4
      zacRHatydWmZf~Clcc$C(B>x~8ZrA@^$W{<U(D<70gj{D>ERM2{TBSXP=oV#3B7(F9
      z3zr!p#nRps7_L~DLPDLcS}>6?agCvHVfG}lNGsHwg(RjKQgz|+7lUq-`>&j4hh92c
      z@3~HA&+&z_LuXXBMV}%6pZBRo)8nQ+eyoZPT9YDcd!&&G(cg5XIHFASmUmP^i_6iF
      zbg?wr31X$7A*)5!OUHM*TymdbDQu(Gwjq7twW=Y*c^7rlBZzw8a1_FD8V}+O^bdt%
      znEzYH$aoBOv;zMw?~6}F8!OgoO0(Fp*q3bvRwJp~T(sIW8OcU(;Jf^pP%X}k&F6}$
      z2L+NPLSKwlLupC_ZYY)YPHNF^(!GUCw9b&#rpO5GbLCT{%F8F1EmuyEDgQwB?J2IG
      zAoo>cZ_t`0Uf>C$s1oNI;n$JF25yo!AFyB^3uF-=7AY&!r#zhuIu~#&%vzyc-5Jr(
      zYK3BtYtM7dW(Bt)8~qfxLmpMHO}j$I%HNRrG6vo`2acVA?@k2Ij)UJ!1TW!UnE5g7
      zhDylBk?%D!8{D3Cz(5ftU2Pf5A;<aZbK^8(VgVK055XIhTuH@-iUd9LH84<sMlMu<
      SVMTX~0C+$rrNF9g*uy`A&G63v
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~NpI6o5dL1XI4!0$ZITiSr7c_HE@9uwR=S8tWs#_Q04`4Qnz~BuD0QJ6xNzaZ
      zjo*N{Z~%!22?>rI_$B-b#LP=V9NVIYc;=1goArCnuRq^@062#g4SfQ~tM+bT%Y1GY
      zO477<3d?)-npL*kyL2kr8;*vkz>spNnRd1Cu(T!1u7<e4hzHhj7Z~I?OLC{&u<EYU
      z5Exta`E_5;QxN%F+U{fNcC9-C6HmRM<$wzV>kX$a8}7^h03QWh2$<ZK?xs`efsOa%
      zyYF)#P^uy~%-x#XiCDBNa!)`MDPH@Ps<Le#HY*j&wH({5btjYQNz$=X@R(J0Z0b7M
      zb}(PKh2pkZmGmxt!?G>+mcaX*cO;DNb}%0vxyRb6+=D9iID|~O*C8;LK)LyKf#{-B
      zkpqa}h>i@#1R}Zox`tx{$2>d;ChG^0QAa-pG)(q72TNz?6FLq+XYG^@4GGrH=orQb
      zYk3`qFvQxlj$})l)o~DmY%AzUAuVud)w1P--R+WWteK^n6c}E0%4TidY*>758>8-~
      zMf;gt-RH8<zLHg`?oM~i)Jrb^pWO*$2ooF#C7jCT_gfKBlh8{oc6upDV<&QQ=-~K5
      zLI<6wnbB_O&igjOIjNry6m`N^u-}DZrU|(aayt(Dpq~4o5u`|0gf4xq*dC?#jwJa0
      zti7z$`UW05yN$A3v3Qqh|Ho{O8Hh<DK!koVBoJlh(C0A9#8Z+ur6e&$Nn(+b#33b#
      zUrG{xNHUo+7^UZ7I{ii;S%AC7S7eRIcN}eEoaIClQ^s@?CykjVP8+j)Oh=o@8QB=S
      zq~lE(MpkQL#>gg`nEOmo`f!$>=T$vVsKPs>Efa4`$fAsKRB!?kd2FD7DlTCY^RTdh
      zE&8|v&svob{sNt-Ce^7>8u!qrH10N{H10F1G@e9EY20&MX*>;0Y20^$`n^aQTU{4O
      za@?5l1t&j|(keWzjJ7I9Z#lG!5x9&iWZ{u{!Q+1LPAK>)u7!Y&kG{-%q2TK@q+sSL
      zf96-A;2WWtbN<Y)L%}z3D<t!bKl7VV@NL?Du<X-*@Y_)E0xiD<zDLXE#iwXhb3ZZ2
      hVk}xY|AGGH{juJuSecgpKN_X5NTlF}FR6Ji{{^@%)OP>?
      
      literal 0
      HcmV?d00001
      
      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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
      O*+m^icB{3?p8o~kVqWh6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-%1-n6vn@^*(5dDHr8saO={B?%BtYvg*Pge5)}$TFH*e7-Rx#aN8$u_C+b7>
      zLO~I{@Bw@%@yr@Xnm;VFGkfOy&iS3QPtOmJ0JiWw4~Ouhqx->`xDY`og-(LDjCySu
      z2fxC^#3C~Fo;LEz<lz$LQ(af+PH+;Q$%vyl!s?6+11F)VlBN+xo=a^A)FL>lO;~6Q
      z(=|=3bZ3{4+f!PZeL}`xJ0-YvhAAL}l7}KZLaCv&Jno-|GX5jNuC!@-k?5X^SlRDE
      z&^3QmLhu_i*v7i!!r6{AznN;$Uz_Bb17X?2911K<UWH5kq|PE|wY;>6xPg}SefE&Y
      z8-mBakukV_%c?0P6q>z$9LXbP+gTh#+q6S+Yn&*<D+`Ao&c}byu{^wIdGT!c_AQ?R
      z-pNMS@A2-24-V$}olAq8c+Y1mwYCL(;GIiiiQoU5Z&AMH%Te?8RP#ry49xqicG#0!
      z-?&40Sh|o#cevngnxXuv8kDzapSTZ8okwK~NcG<s$j_-DtN1bjQn^EQ9OQsO4rhSW
      Mc(4}aYg+N!3!+|%o&W#<
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8B16g@*13fn4lfvWhyB7T&DR0ZM#1fxU}l3Gy+3BJvC$9Bnfm+VdjevvOc
      zNTQNRqHmh`ql|ZUmr|+NhjwS~+<VWt=gj>2{q-AwN0?8ehhd@SHA_4EJug{;dtu2I
      zRo@mt>6sPEfLG;8Ah_g~D_&VUg0{XV#lB2KW0>hu`d0-*-;(1wa+x7jnA&2{RtQH&
      z3Ikd6qK{#)?0BNmY*-@LRDcXd*{^bUiwBO{CqYftosi*4xeNNgi7!%DZrkfT;0+-~
      z5OZW0EtDe>T<+CMad1(w)L-mZ#jbRGFHFN=C|raZhN5A)2d(r0FpOj|iabs3N7|`@
      zIzV*FyPCx{3^L?9nXNT;-88N<jGtAmxvr>jcSCY1T6q1q$xx~IX2TDJxqCXF8AFFA
      zrzm$_e^1!vUR`*mtc&E(<aF$k&-Q_72|B7O&xJj!V+`ZU9rK((8!~Xb8VRH$hubP+
      zlBQ^vaI+rxd&;#)Mdp*eo-dtu2NCOr@Fc@z;UW){TNVM3=2=Xk$dHYBomw{Ey}VOy
      z>f$%a_XL5#?8brafbi@jU%6Gv;x6tn424ZA39oX;6?Sy9-%|dD-wdi^m0~pH{~yw<
      zvQ;ywZHgWxkftBK2HLCD9DSLJ6pzt=M2jBi^sm!by<m+JGPKIZN%Xx$yBscKkTQm7
      zt<gy?YQ?Fos+uT%!thUIiql_k<pV}eklQ}N*tT)w7`Kiw@%;?OpmJc5%9p6&GE6*;
      z;PP>!1ddwb4)S1{rfzXWfb{7g@P;N-1Pn#s2ehN2qHzB+hR-9uB*Y5(u};)qw;>uW
      zL<7^9i4f^x(1>TF=J0?b=ZAkz5rwTQ$XP|;BkkJ7tdcx-8<yU}(qk+_c}SASzAVsJ
      d`I3pn?9~oahpmRnJiu>rCX+N{cpPQT{Q(qJK0^Qi
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}(N-H(6x}xo8Ind@LMaF+P_ZTulG<tu1`$NCX-S$kDP38WhsiKarcGuvGimX`
      z@A0*DDXe9e`tH~G1uplU8IlR4s}ITCd+yoi?6c3g_n-g%_zS>ic%&dCkZG9R+%xrs
      znyc%oY3B}g%{tUOxvjeGbX3i`Uw@`+&bDPb`jMj`B5>^;2;WyAYPnc}<er<LrJ9YL
      z7cbA#b;C5A4S{efy)O{iX4*KyxR8K?QGttlhN+jj?YiEns`ZvG!&sWy+E+V<-229e
      z(==>>?A|+A4b;K(F<bX*6PQSyCz#%kL0~+A5k$$6rSP8^fh(!PFn59Y&XK17;24%^
      zEBHVl^)^bjt+(r~pL*_b%-}->vjUgS3YEY|m=hRn=+1UawOQ$SDji7g8uO!=P;ix+
      z_2KS842!s?;1hwd{z-wYZ0MZ?K1GVUS8L@Ro}Y^u#{!lTSVo3oF?~^Yn%1GfW>Bn(
      z(=p6O{>eFXkYh)G+Tsl5ya@R?No8e|bIhJ9r1#?-#+wRm2u$@^4uTT+9A9u|4D*Hc
      zoTIQ7B;k)#kc4jvvhYoDOyRc7zRGmLDAi`idMO7hFByG_bp;%g<@1aR<e;gt%~iES
      zVR~&$;45&R-Cn6(n=~f}dezUMU{heOAG%~!x?0oIrx#AaHv;p0r$VcxH`Laars=lb
      z^AZ>_%tQT1Kot11C{o++)O4ULgL1O4h-tUUa3SC`lm%VGhC|Plfahtnw@TrnRHCj1
      zP{Rw5u2fOp!orY#jiThu-$UK*w&-?wKvTb~ynGd_+tKu0L%tN#Ltn3~)G{*9YaQkT
      zND1WK=4ymLJ~_0+xVp)&kk+LW#9wm}LW2Kseu3Krt>Qhd5}p&@$3^Zg;}XXF02}m_
      zzR{)S-;q2UVUy{$+z3}ZFFykP870aXW0-(En`Dd#_fwLVxIlstS`L<eL-H8Y$@!5#
      zu}};DijOO`NOGofjC5&59@0Kj3%|i)ZRP|kJk0Ry`r}`)SbBr0+R6!T{q3!evDV+n
      z)oWLoRpjwCQ>|i$_dtFhlCmemEtmQ|>a|B&MUuP6$LlU;ai6FMSVx7ZN7%(<qH5ed
      z!S^_DQFn-90lk6`u#InB84rkwGQ%w9i2RN$)*1Z{3S8|{>buMmW~>;q7P%TjiTTb*
      zgnucK>}>f|qH?4s5!ESXq@AXqI#lLWQOc5$^?NH{mcH4Innli4C5tszl`NT^s&c~}
      zkp}B)lB0ofG}ywYY~gdF+PDsjs2_>5iR!Y#m#!ik?);T|ij;jtCaJ5`Aw;C7Lx@;U
      phY;<a4k7CBfGT@)o8#A;TUPmsGI$M>69xS2rW>4DK|!Tg^?%Q(+L-_V
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fo}x5IrLa1hTNX7?i|uytx<)8KWe=<bvY_W3ZKANCg)a=Os1L4r1-qu4{J`
      z;EVE-2fHeXskkb6&quj(W_DS&1jG*-&GdAiK7G1p|9$<}-vB<r!!im2A9jO&^NIXL
      zHrq-Dann_u&{a`$DT?I&au{f}r^_e_%%0}hj&&qEI`tJ8k|tDOa?Qf}GUzrp+D}wR
      zFA5Cb_5x4e5x7#%U2p2h3%ZLr%d#)yc(FCNB~V%>p$dvPQ$-n7fnt4bs{(<uRh+{(
      z6UIunT!HBmAdTlF&X+MIP&?uiscoNxk}9j1#*Dz3K<&1ISj(WJSZ*HdkWG$YTG1$Z
      zyj8^zh6T>8d4XE*_u49YB-=hgCfCA_^tWW>nR99^=^ZZ?xV(0npgHBKSixgyc`Z}1
      zSoc#SlE6fcR>G7z`zq+_9Rbl|v~=C?Wh8q_t0*BppjKLqk-M_8*HO>37Y1<|R|M*(
      z(Tro&Yy10|dl_>AmyR@U`M&B(e^X1XGN%z-6<AtwUH01v?Nr3huBUgxzIJ5bc!8_-
      z9348++4lC7>)2s(yx0js?K}(P*rSpQ71VLfjKg>ZvuK*#$81EtXODKGaM#GbXsQw+
      z`$GtCd*2f3sX%l1>!&p#on{+bB{vmi^X<GTh8n8C&HQh?IZ3X8X(t56<9<8ESe2fy
      zI0YR1pSW_|1!n54<59`9e^teo;1jFo<w$W)3@YOrdLMPpzWtWz#719lY~Kz0fg5Kn
      z<lxyZamb_>hHcJyBS+=`gE`Q}uHipjZ_VYRQhMgG-ml^w9t?aT4(Xo|BQQ$DA5`4;
      ziF>|&qDy5n>_;87N+J1REXP#b1yeU1zT+Z4i+pe9F>^P<Uzsc6x$E+_#Q&+rOH>+H
      z|HN2h{^9{9{y^;o%>}&8b<(<A=X#Stw|M>x@6g^zLU94_@<b3^#CrrbyGu-6u)Fv1
      z0h4ej@ewVTX)EzGYtyfgl<}H)h1tiiP=7p09`i4;@DGhi@?i^j$0nRfoU?=z{M?&+
      zflqOrtEuRwjbz0~{1b@#IS7$K2;5+Zfw;x02KjwKyWuy~_#L(91Dw`#fI}JJPzLxp
      zOt|4RZxgVh;%@^OKU$0`?@hglkb+~rc#KM%cB*EmT$n$=?O!prZgjh5^m<_-Mp4Dr
      z3_a@F&$LL4p@SJHn=I*CEhAjR5<6rF)U2EZdXM5RmTlMWVdWSV$s03NQ<lmBR-ZpK
      zJd(Z{pb-Kb(l~2fpVHDp1)-(jB;gr_sgyz`O<W+I7QW?b)NAtJpq|)-y_|rDO%V8w
      I?ggy<2LT<x^8f$<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQ%Z6#fn*nMsJn28-aWDYb=wCAQUCfl?_g1siA;N=t2PC&`cuOlELqLZND{
      z_xlCk`~^N*<61>!E%m7n{wSB<nIt4!vXsDNpS}0l``i0``wV~o^ZOqFj^cX-O#%mV
      zRx!DtEo;fNu32s}t7q)2?j%PXM_V1&tgNX!3IYO08abw2&(Sj8Ia4p_mRH##pm?iG
      z`lPlb(3bM!7d^vFj%#k7%0U5jC}SFy;SCEk_atTo0;5c<phaNs4*v)ucqEEFPz6Fm
      z{<bg#9*rW1kct?0r&m2ajK|QfV4uJqKZL1Sx#SrdqIet~befsFbdK@MfPCwysk!c;
      zjQ>OwPvR+}St@!0CwuCgE~Xdsj5oMblh~<J@r*#w&D)L_MqI)<AkbQaGc7GD4l<Ep
      z(dCeIIb1E;$24JidQNv#^boRXTe&cLrB~mUx>7W#IKpJ}rmZnjQu;i<CE1v?s5r*1
      zW$j|xWQSgmUN5qDHArWDlZuykYH8axNrW(7mVN_UaGfdJR16VUCa*bR3`?)mJmXrl
      zQ5whx-64{cVd+!FLRxobG-elwrR<Dm&T5V!*A-=NPpSdAwvuWvF&jZM&PpQi82kS3
      zwrf7Uyu9HG9BP!Rp75k+Xi0NOXMyfU8@6E+h`OHUROdk8YEQ~`a><o~nRK<4<cQ}v
      zM!M+fZiPqXc{{g~(U&~Kwo-=c>6Y#cCK@FiwaJSWkKiJkyIciR0zD1dH{!Z_A#JX1
      zx~sS(&}3v=@H%D`ObfK{jxmbM;7qDH-J8|SB2Vsc{Xk5!7Ar@nwPUZSR9qz^Gjgir
      zP+g1S4O|y!$q>9|SndUVRbXFztjcgDu1Wu!QM`#;oDC-4mb2<tm$RZ$klw<2f2Je6
      zAF@&Cm?zhn*wZY}&^+BYk_Yt=b}6TPFQ~|q3Z`!5yu5;i|F|wI2NdB<n^6>Cv4NzK
      zt8<{Y6<y6Z5rKgvN$9sowOugPRa=HMk(gCLBKI{o^Ye~<Th5lx=S@ToiZaRaww_jC
      z>_{R9Z4xVT3y-U#9@k91l7Q2w;BA4f8V4p!Q_pGUh?6VIcR?NP-W5np8m>#$#Je++
      z9o=!QIuUWhiVtb>g)<!Yv|N7#ckrIfeXl{+nD_&McrCHtnkm~Gvx`=CGp&M;1oqdw
      z$~V!N?G&^cHcrzf5Vp0W(a`cH)VI&7z%%96HJW94;nnh2x-Ag)J20gcI9I_%*$sK2
      zTJv0X)%ovU73aU%cRf(&x@&3jrkJ*iPDURy<mJ1!{*LRHxcGu%H2yn4Px&gP)C?60
      z|A>;SpL{E@xPi#rI-<XzwS?B#-V)j#p!159pDtm4RqiU`*{a-KLZT`^S3-YPK3c-@
      zs(hk^lT~@Jgi})fnQ5Ew3ZK0M1)St_2<<q9F1~L1aT)^{!5Gf)4m*pRlooJ|8o5jU
      z?4hL${xrc$ozmMESjT8BaKu+nvEGaR#`dxsL!I|SC>X~Cg9Pv@F3^^uHpK5qe%KXJ
      zV6PPF*7{->f5U4{nCgpN@r8jvXW$_g*_Y111I+z^_KJApFKGN72>ytcUTMn=1p8vS
      z@}^K{=pouRV9Xuq40eWo#o{{b`x|iNdL7>Vf#3!v=cIi5&w5#EH*jYz_Rc!)N+Th6
      z;5zbnA2*QmzvbG)hyGfAmwP*mRu(YBaxS9{SGem24zimkaEo0|vjG_vt5cijXMrD+
      zQ7kND3HK<;e$V^ov$ol`HGGUu*fur>pW-uS3iEjhpYt5ra2H=t3g9?bUou~id3r0-
      dIEk32HN-p-e1)%RU8eL6zNIAa9b-0O?O!zf+V=ne
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%!Ab)$5QhI*x4XJls}+k!kF|oqlZ8q_L{EzsOYhljXd~N1vb$9u%TvLF58y+I
      zlPY@9g9%CIpZS>l^Y;Go3g8s&7y+R>HMO{t3n?-sO(`ZSw-e>WMOmtORy<uj=IXxE
      z*2D-2dn>Y#W-7i5gy>uwT@48b-Sh_-&76IZS)m3;V?ubzZ4<0vqlpG0LMzoq-PH3;
      zxsj&`?bPP77)z(U{z`_`OqYaS`d^;|LL--T$qo1abVEpPZS8V(t^Kc^Uz48r8E^<<
      zw|)^Hw#;wL(GUS|AnF}2vHr|afQ0X4l|5s!k4@H{PYO+Jv0@(EXmJn14yypWAA?C?
      A6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZEw<06n-uO1w^-jn{&S5+zU{pPN#lg!JuK$glHm2GQZuHE9-J;v9wcvivMEz
      zK@ykfcYl=e+^!pp1e>(!bMAA_bI!TXpT9qU0ocM54KarGo)Z`c{E!=_;LgzK3d`*Z
      z&v@>-k^(Qe)0M*05NBAML2cRnffNywA-Q8awqIi?7n?IO8dCIy<3}mgQimb_f@Cwe
      zfOHlKBpK$Kwj*8#eN%XCZc4$BYq}Pf9q!o*N5QziZx0zZXGxu(qe|@!xJTOmNtx=7
      zAwelaYG9+-3^ygY(=%GWXFI)WX(IH-JP?*o8kxptOALJ5b%q+QFcfF(p*|dnzA3+)
      z(NkEWRrp>&t60X0hHDJ-)0$aa#|;`pd<?jx*%v3<ih3x$PvaH}8g4Tzj0;5D$l?xG
      zNvQqyU4tP%F+xPBrm#kHf1vt8723#RQ)MJ}>&;d}Ly2K^T=kWdqQ_<3>jmmsC#KOE
      zO3^wCmh1SO?zCHQ+`=K3cDG=jm`tHSR5B>yzPkO&)J&(V?qrb11I5^4Se~4^z3;i7
      zlq*6nC7sYV$}!_6qat)UEjREiv1=<&<<I-0qWCC)krCAsqnF%BSfjrhVHHW1^$}9v
      z!t)G$GhuX_m``z$@X`qjSzIDSd|bvH)reyr3v`yFSe$S^tm;yps;cX`#UHr(720>)
      zJkoP_Pr>@pG4gxIDDLITBitLo_)YW}$ttM?eXB@ghs0`xpJ4^{i8l1JHgr71Ba&s<
      I4)Y)X10In9hX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%SyvQ6g^YZMq}0bs_zFPK3Xscx+s+{6vai*MaBIz9qW{2Qqn~9uXLrj@B{oP
      z@lIN85rTmXbM8I&+;i`Ie!YJHIK+mD48vAS#de!NaJwP6>e@}=22By#r%#c%<f`e3
      z(1gLTox-b2zvKNd8FD95$*9Iq+H+DW&OPA^74^ld`?n0n8TGU<g0VcZ$T3VgQi-eB
      zZ;0@QH$1^G;{-1EZh0s*?gx$NUUtb_TC1TUs^qQ1Lu$;ho5ufRjUh`VUFyEG=OjDw
      zxN6z;D3q#I-5&~FH`>CDsE2j_=!#Ax1JyM#$FMOd>y2{}gg%dcSr&>|G_k-iIbdqr
      zc`RX>!F=FeEUxcp$bT&8B0Z!^wx$<05bQf9d-Wg=U2!4xN()2lInZQmg3%-BFGD}Q
      z1YwhIHNrZQE0td{`jX@=I;|vnM9gE16E5~x$YX*K@iB=h(lAiKH05R}W)PlDR4a5#
      h`jp==|4gY23F;z7XJtq*`zx5m3RWr4u$J)GzX5OVuKfT2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%-*3`T6#nk$C{}a`+nmlHI0q}B)ERwHmL-JDNJ8|1g@ni3a#OmLThf-P|Bruw
      zzKlc?efN(to?8i!MIPGpoPOtg=X~G!{pZI|0LOT#V}s$ql@sfNUvkS9Tt?PFIKe=K
      zR%^(^_goHq5$ezw4%gti-e~NLIg%lL;z=()WvH5+H5F&R7zr8AOB$6PgVrKW11a3d
      zViReGt&S(fhsnqm;W@W`!I19+4)=RJ^i(`gYVpvEXts4!D@!zJwlNQhnBiz0{@Q2^
      zn^Y1Jd)e$H8u?thRyPhk={71WsgL%BaAM*x&OSS09D9L`bZj%2YeZ;9kr>(jmj&Fw
      zF7|ZXWyoD;%HkgG)A+uSZaid2nU%JV2jtxn+4g<ma=#h66D97VZ3d4RO7p#nP9S4W
      z$_|P$C|+{k8x$S#nLDuv>jw5wRQf+**!kbSJp%<iRft1|y;a2dFbqB^U&u`zWro6X
      zGUY)+pf)tKsGv%_DB31jp_%PU%RmXwRNv<+(NY(YmWlbw_hqZO@T77#n1qga=c&uc
      zt+-rQU=%?j(TxKe^w2?3tkc&i#VV7o)~3jOPyQS9Hj?ZsLcYdLig*8^ki{*E2#?#?
      zq8=J@xI_Q)l+!3KBwcN)Q(eooE9_`ru{}efKf``M|8R=OQyl!7q13OXu5dI(?HeIC
      fh!NCN&G-fxyd{HAR+!5R<}&KAh>77vQg{3p6|w3y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc6r4@nxHX|olTyleXbVkKgoOkrLlLT4aR}`pRV6M+YiFBm<*cLirog{~
      z3za~EJ3k8Xys?6XusGQAdpq;y&3J$Q`uZKf6KuJtFl-Lg#6Ra3+z$m;soxh-(ihs_
      zk9nHD=BghH?ZRQ$DgpN7XdH_i$xwYRl{9+{op!f`aS)4<P$s7YJEsiJK8bpm!(t8d
      zs4^^fr4mPzQ7H5Y4`ad5=q3@5Pq~&^oi`mblqti5GO41AfR-C`P09@0WrV+WW0)sO
      zO7aieU7J$O)xhr=E!7~{DYTBma}gQR@D4siVr*ohQWvWX?UEE;rKuQ&@y8k51H)Pk
      z*Rjq}mnt<}8Oe>X9?0W=7O=3uLlZZ%3~w>47a1o*oxIPIqr6?*VQBraW2r}pIZP(1
      zKih|_L_@B5WQ3-S8wInufBJ8cI-_tl3TOWwmIc#GCOQ&_GW(k=7M5Ru$Jr`qk^ecm
      znLvdex&>6b^tDHI)~R-OFR}31o_qB6Z1*W4pWzDCYf}_zxJnh_v4mxs;h>HcI%`nR
      zp}J|Oz9X$nt=`%Ff@`1Nd_(i?qf6ZQL5QjPZQ^7)OBNT<ycfiLX|-BY?o6wWySQif
      PT_hj(iAkXlw}Q>z>d@T}
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~|8o;X9DSPvt~m~B3$z8rrl63dX(I|+2~?BVY9uX4Yp{Thm&=+QUhbH?3t#>#
      zosrg&8U5Wqi60o>UP5}MiA-mDyZia<`+VNpx0`=o{q;A1%lJ`4LLk?6d&P(5W3$+l
      zrW+Jn((+o;FIGJ_2>qTFdOnAtd>U#<30xhMUT!kmw8E+{&CqN*@>cVq<g~w4AZ_~X
      zURSzdAaJ@K)$4_}Q!M+w`K)dSVM*Y~uZ|foKGlyqrrR!7)e>VzuiLI2t_obt#-dxH
      zZ@cYMY^9%{YY3#O<e?*p;|9_=A&|`G8XDdaI60!cj!7I(gFypFa8&2$w1FASvaLXd
      zwHD_iD(4z%&lv+6CIlwywktP#-KO-nl?DRSb<Z-LhUwdCK3GhJ9h)>4>tnP$EIkEC
      z*lb}s#&p14V8WG8BH98oW~+7E^v$jerQbh+TKAFjM(_PVDc4Y>KQQniE>azC9g}xY
      zKzIj>4<G~#OC9*&v<0qY|A&+^Q7IRrFhtSUo?7xzXw!2VmISh6lqm;+>^7Ze!*s=<
      zXy7AU7SKX3a+6|_yMMThj!$q^!xe!GW8gPr*zsEHw#y4(;8T1iaH1`hiC<p@fwi~`
      z`feLhE6&oFzc{=K@f%gr@i|Hwt_hrr%ournM52M~xFK+iM_gkQrfbnum$GlEIM7u`
      z0beNde<?5*Z+pArdry=hBM(&Ym4+()c({|A`<VV!=d#WFE5o7g2G+1n>nU~2Ucjbi
      zvvJP*6*PP!FuxDI>239_PG9LEoQ7`&GW$t2$B}K*DO;8df>>7lU{<6^Xh#hWv*<~$
      zNBa+-p3K`U$+v>+cq31a(3Rp_@$;XL8EeFW@usHSpi4m(Vu>S3Gc{?4%v_3PzJ?sD
      ze6-8tuJf^7qxFhjjW;t#YQ{``%j@};T({M;H5;@1K*wcuI>_*~OY+wv!9PBe(TGnU
      zziKrN^==;HsKdEhIh)^uk$-{7ojpuF$8>&i7pL-t=a~DQ(FD%&{|u49`;g*|n?wnx
      za06$sig&r1>7(F1oa2mmcpvkup+*_jO>ox&&JU_qqP_q<{|Ba7>B8OpDmr7JYtvYd
      zkY}Q~K19}W30dN#kVBraMP{csFGPG^vX2y3DhhcQ%NzX875>D>n@fdVto*k50)?HW
      zJ*@uIAMK*NKRGxe&V>45!Pn7u0hQ>xj9T<v!A(|Ix-3VPZ*uh(rf`QlwlRkW`Tju0
      z_ZWYGB7VXOex`cOh}9itv&$i?3O2Aw78AHel-op};;DT{v?Q_8*dk_<Xa>F~a*}vy
      V+$DaJh-vJwN|L+p6ElGa{{g@$D9Qi;
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%SyvQ6g^`fu@9}*w!Z7a&2(cB+_@65P$(!CTy!@{#*mUuB$-J2YcBi%KT5ob
      zQQFkvW-j-hb06p4`S^T$2XKiq0~-uoSH<Q;yb9BjLPe${?ZA<tc^fD#XWBrKVJF3X
      zp<MIcnn+tSG=<|lh)_(Wmf=sZ&4+pBb?=FxdN;G>i}nH)8K^MuH9c>lNKP$({!3?Q
      zs6czq^N|)>PNkyG=X|&(JsbJErBqJlGhF?jvN|})j$$jT(HEXC9fkt$jp>af4btI*
      z)vQEr!A;;cAM{pnh6<sNGKziTwD_Nt64f72x21iKbm%EJ6<4AX3BH`35g2M-w6L!_
      z6<ctNe4L(S6vUw|`y`8@o~gV@u2%*~0{sx6Mz=4aOuj*0k?bZ#s;K26b!_D#+h|Y%
      ltq{98q=~&;q=k0M?O;E(2RKaaQC8y^C)Azcl-><=zW~WTtt$Wk
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hXd6g?B$*jY@2O%f=jVSxgU12IriK0*N}B-D~yP(uUZiM2gAi`KhncU+SH
      z)Q46AA`z*5?~kf_X1v{O;#jD%w7WBN=bU@az1M&L^XX3j*YQIhV*(eue!up{`PHel
      zq~k}mj%)`V8P*;R-phfn<d(`KD{yH<XuTDw&}pkURv;gP2%K!DpkMshj8PXE6SUsQ
      zwu%I%1~Gl*dbN5OI@?V*Qj9oq&-Gn(U*L3Q1j_8XKz5nwTFBs75##tmAXAxL&*Qkj
      z2}8Xf*1`mijf00p<WbOHQ$^%(L|~%n`tqlKuO-80PRo-5<z~=!ymcpZ^*Y|ns!f+k
      zUv7>tW4~{dVQuxic$1J$r}NYaot{)Od}1762C+WR@w>Ib=AxEnt!%aBTjd6Rl*d_t
      z$_UDO6v<x8+fKr@%5z1W#|7F!#t{@R1w^1_8l%$ebi)sn`+9p#IZF1VuLLesMoEtA
      zZgMULeJV>j!T#JGs+4{wiNE=IlEbn+9`#!>#;W6bl8V^|)R&1QQ=hIhhHvRExh`;i
      zPkh7kWY_WPVYja(Cw3O_t-#easce>QGw9fEWYZqo@x0)j<kGj}hPT^;ahbPp4GX#<
      zzdPXlnhIUNORFr*;I@vqBXBC+0M9nV;GJ$b<7dwGJ93MKYEVp9i<zo4W{1@j@PIi!
      z{y#Yij1%x@8TCEFPF4;<6)3nYr=x;UyBJ59k!r;Ii@MoXide!jYq=Km!?s*y2{>Z=
      zM`2zYjdPs14F7({_~Y1_FAgH#dKSlF@p+W1Ul=vU_f&NU#p*65Hg-_@fO2*211A44
      z*QWU_Bg^LkpLdzYEllDzPI6~@a2coYC0B&OX_C=Ke1$VS`<i=Mu4W9`5_dG2Reg{0
      z+(+2Y_ZTd5QfF#QDP$`_w(t!u8stm3JcPVJRE;e50CgHbBL&6=h|}bZW7dFGF*gKu
      zhbI~=$22E@H^|z90pQaVU@ig7C4g6OmDjbkR}2C3%KUZ!<AuQ}@?2*<NJ?NHwV_m=
      zuz0$RrCrQy?Bd!+`Nj@z?%>v62OwV=NP7^Rq*Y?M77b0w*f+-Sd-#5cW`#6b@gB|n
      z!)Z2C>Ptg30uNCqg;rnVTkAX2#J4E}{xebN){ZaVh%Xm(qkP1pgGJa*-7h2tt{P7s
      F{|n^jh{yl{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5Pge<YDGa*{1y)e`ABR`^gu9N6ykx%0poosD=sNpQd;8A(v!x6KfoVl
      zoEE}|39(5x`)1y}c{BU{^Z5nf0vR0<hSQGn%`P8uvn9A1m~CM>ZQ+`?j^DDy9an8z
      zxH`1O%%<%1CrpOewN%opFcfn21=>|x^n~)p;^q7!gLXq*4J=_LjwoUbiMmwc-tV=9
      z`@qQwL#pmr+<xS)4DdLpdCzjdkX_VjZj3Uy>vNY{Gn_4|_+ySCN+kp8pUu_7J=t7!
      z%%<l`)hXv^LXB2eSRVB-sxOx4d(u$@9a{{UY1wF?n&bAkH(?n_V^_xxLvqR-8INNR
      z`waS!+rDT#{cmDa77VJw-34o#ijG~A#irxCmZ-^av2#m059l}nqsIuo2>tXTgmt=A
      z2nUf^q4<vFw=i$eX@t>BVqRgDaC*c-9BYJ#k98zSLqif9luJ=eBfJ@^mgpAtDSlx4
      cl~NHB42l??r5VBKL@<g298#X)DC8gi0(kAR>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!TTj$L7>2*uBh*z6a`5aZqD5s32}UDIBnY_4Mo|n2+)dlr-9oqBOsDMfpS;j3
      z6HWBqA7%WeT}nfD<z_lFedn3?{bt%fe}DV}fMr-NLyo{)(+iD5cFYWuGcPb~ZuvGB
      z#@n#nKH2a+$$PR41p*I;2-nR(3TDZ^mO$y1<2iDTKwe+iBT(2to(6dstw0e<1jg!)
      z$KQu-lZ(&HbUA^^x^FRej|oSO`;!IPasmSL^&$JF4Xz@C+4c?-tj#4CAIw8;NdnV)
      zJ&NWsuW7`StICtM*|T^@I=&Z_VUmD8WRLYA;BC`AN#q(3n5w|E%28-A$0a~~6(F+>
      z=Jb5&G){IUlf2D6v@@p<3)3%NWUk_e7$GSqy=V=_;hvr7S1#UUklXPfH2aJ#%*E~K
      z{0^`UI9i|4YuQz*ltst0c@N7_Lupe<r}f%GR!d+M-+tmj=%QvyA0R2i0)g4HO4ji5
      z36Hs(Lil0?o)GYB-m!n=cugu>oThI8bpnd@ro7j|ljk;Fq&qHW0jCWNLm4&0CKbHn
      z3rU%zEh#%M4Wrxb8hG?oUo?%tZ^$ka+^}301RW+@MpXkH7S*+_p1VuCQlN|YF75iE
      zu=o~kLtrB9sj8yDJ-jk`{NMmav4>v(wq+a{_$2r&KK>3P->{Pd4O{gZU<oc^TZsku
      zyo@6PS6~cP<Jd3YXd=SA#$FC*6z1v~MvEq&qwqz9nu$ey6v|-+W^pNjYj8aSeTF~<
      zC1=3c*P9fKBrpOu;ARB71-CP>wZ6lWa!9^LXq7a!xQ!OyrKqKZT1u#Q;4U&$(N>~e
      zuu6)R|8kDCgRGCK%AK+ZP&|h7mD@&^I+%f#+eg$vgrc!1u~mfoFo#P|Yna3S1DMa?
      z{~wzn-y9M<=Hnk19w9puJ5$0#WE~BNom2m*gpiLsYd=BXpTz1t{hbsqKH5%-p!L%d
      Kyrt?UEd2wYgE0{R
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~O>-MX5bcp<N#2+^amWW>VUs{2nM51s3lhZvN3lVmG67Sr3g$AB#?pq>u4;ES
      zQmWtvH@LusAHe}mt|C=%=SNYznH{Z`AUOx^?96t*?tZU(^!Go1{7FP>v{j-UqYFJh
      zb{_L5+-VE$M^0CCg02Xi2k~I=^ds(fJrS0u!04DZ^0?n~K5ai19a*9xqqpa{Z+c=N
      zd}#m}74N#fEAKJNSE{>=3JnCYC{IV0s6=H(%PrRz+wq_+!Y_E+6O2|`L5F+0JapCG
      z92R8XjS#gpCu}zBI-`Y1@=!9mU1<ej&lwLqC*osgL(0%?$5KS~R;KjLaYqcL8~80Z
      zlEN2Zy}D}=qZ3Q?vdXcr&s~p^#Zz}iXXXJjIxe2aV|4cLc%Vo4T}J0BhubL%txlhZ
      zydy;jLQ0jrMzg7obDcgOdksdc3EDm3_ashExY17B7Kthwo)?S+;+!;bw5mHG#qZUt
      zUotux#ciYDHXmp)rs^9zbcE}JUthXhiiXD{CCn_qq!t}Rn?V>W<vJ=+m61J#*CyM6
      z+zMj9o0>6N?5Ge)I?H|_-TkLK5|LG#;cK5qTaZUpg%(2%R!_)A;7c*a=kt~7yp}OG
      z^%AYUU>c02MOWzv7)^38hm+Wg!&oNc!RXQqGBR8wX6P|S<v>qV6Unncwf>Y2V}%M)
      z&jk764CLxOr-wY$6jkSQ@ZV_#6&Tdh(;S*$G4#2&8HPbvrVkhmoBosFYqX0k`@+sn
      zo$W?8n6brph&w`b?JM>}Pw+_C`%uT`c02Cbp%@0Cw7InHzLdi|jx!pKYMAMo8q+A)
      zmm?(YXvK$I_MMtV>vUh;6=>|4U8^QyCy2w2*g_mkUpA?ls)cOKavr}0Tz^OL!^MN$
      zBHkRV4C}(`0a?G}B}Yqm7WLs8y@dCr!~l-V*rEC9IG)P+L#%nM%6Vn#YypJm4i%`b
      z0qn%c0KlA1(kTOan$EzQ(JS<-0bR$c{AYsR2WUfso=S`|pbAPA^BTQwpgzM|m<RPS
      zK7FF0RuiKP)Ejgbt}4@G^ri`9<4tjRj?NqSTUb@5xx%mNnIZ1;Op3V_H%AxfE%@NF
      zpo_4-1g`>i6;0+ngH}{zvfom~gv~uzew9Hjrl>_)HK^~T9NyI45Nj$*qNvC~;Ih+-
      zDorQcU8XD8DQz!fRTSj%&ll%ujHD|j#WAYsR#KkVP@3{AKclOU4(Qsnlq3h4@h_Vk
      z7+p_W^16vUvjM&V58q}07E*v4bQ6v*Y|HNe@Vy53e_P(tL@L?erT26dx6#H4=;8AG
      z0Ms8fYSNckc@k8HVYq9sZkP&ZOZ^kDe$JFQ!OE%s;uJx(B9Zls)*r3Be?S|5DXlUs
      P_)7-CN=bU4tv3G!DL=$`
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>Yx16dd=1C85wlDBsXhRM@?+;)rsJqDEAT04Wj&IC*y;+pQeCvb~W0H4gj$
      zeiY)Zla{SW#Kj}o^TzY$y<fk7`~>g@FCwf79G1FHPvtk6W+b&s3(8GFHa$`_CGFoy
      zT_~~<HUxG8O-Ws*AF@-*y}+jP(lWk{$HtcFY^qWxXX(IuTV=H;*B`gEk7hZY`O4^V
      z<veM!{p6FtI_W~-dHjE7H$Rb9=ANt*h~h89<Ksr4SGh@@(cJJrDf69JaCadX{7%@9
      zF8j%6?xNCcTKh_R8Y<~n>Tnr#ZYNX+T3?`h*?^01TVVfhAc6AU_>rk~aY+-{*2Y&~
      z&nKRLYw{H6oJcp4m1;b$$Bm<INq%Uwrx`yV#L0NYNERG6(wnO;E?R1wM(3>d7vp)g
      zq_I|Cb6OZehdo?Wy<Ae2{96{`nLxb4>%cjhX6n2ZMf1f+X+sFf>MpM?UX%L7)HbIP
      zN5-9BeSY0c;2OYD@=gO=yr!Gr3&sf719s32cmrDjZ{im7x0$`cxWmjl3uX^@17jEW
      e0^Y}ifDiE~;A1>#RX*j)J?yg%Z!e!~IQRqn;qEg4
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%SyvQ6g^XuMq{<U-&(=9f<e%QRNRQgMbJgX{WKlxNHQsTh@Yh^#f2Z>M~OFM
      zwLu65GR(R6oO2)Z@%i=+-~crXC5E+*N}YTDz@3)hDt6k!3)>=c8h*%=3$EI}h%6Wk
      z>jlK747$GPF&WAyQpx0$VRzdtP@MZB5bDRgzH`H1oKaC50~o5nM46%LN+mASpe3Sf
      z-tq;*gd2L?zu}S0a4%>icQR(!C@PhoqE5|qc|?^Nwu%IQdSft25>xrjZC7u}=c?m0
      zlSrygeJ2;XYTXMjp&Iu2qbItF3{`AlilNq*eb3Vfqkt#BEE_YJvoK3D_nEry3g)rE
      zU_Ed@6<4=3=081XRW_#5i_3P_x9s&y4K~9x@<c;sTOH4DXg_0P6^tGt`%3iFYY?{R
      zc1k#lly~=DF!-$VHl4PP9uo5i!-QwPS*T!y5b-gJDtQ<f!#L$8C}t3z)UL;L({=V<
      dG5tiT5*cP9M(1(P(EK$tv4|zgGc0TV$`@nnu<QT;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XdH6#j0Kk~S>;1-1yNu~bOXw2^`c6wpvxTu4i$ZM0R9O>#*Ww;N`6V_U}u
      zXMFL$kT+j^kQpl-arE6k%JI9q+wIz>;=}IVd-mLOzVn^$+`s<*?GFGK@F0zZz*y66
      zmmV8m8Ks&uY`4^q^;SbVrQ1$x!>C!Z>^R2Obj$YSrk6%a;M^ex$~D(>jJg;43TXPg
      zzND8cUo7gYGXg>vIL4o@XV_lVu-Y<782tiWUs{Ii3Jg?y7?xo-OVi3U#earMFEAMU
      zcdzzX);<0_VoAH{t#NVPv`z0OvE^cZi=JcJ&8e6rh?=hoq^4P921yKR=*4k?WG-LL
      zK;RV(Ll|aaS9*Gb`wkKF)gF4js-Xv&3{K;<G|mVN@1b|(Ba0AAK6e^k#~T7iZMmWQ
      z#n<INpaCpBA43|}sPeq2;V3kLzKUtf`SyBEI!mfCij-E}u&Rb*s(olod21%g9IqVG
      zrcQk&mkE=_##s*86X+&zA0hu6jmCoE80*rLP5^NqLm_TOab{+-E}wWNJD$e4K<*Gg
      zW!IJKHESz!S4EdJ9K#Vs?gb5#xG2!mlwKw5_rIF5n^Mo<9lV>yWr6;^RxED0o?O>(
      z1y>ovS5v+9go-M}8ym*Z4|YJ;l`c+WO2c*BpiZa@*7E-jtD{A{rzG~iz{&WbrL}Or
      zrt;M^ZV8O+Vb(26HVv!nG~4Ua_99|9LoFik)}Qcg8dSh&4Dey6*xWw5<(ZGR7CnPp
      zFrvWO++q3%$Ct3WaYx`{bjZz`wre(I*2p$P>{*{rzGapfvW8`~He_QWgEA_rXwH$=
      zYEvuGosfN5TIxpHjmZDf%W=ji2-`>jxb0dPW7aS&No{k$R|ST09eS+P+GW}exk)$5
      zOli8)G%6i@qG1^;0_Wq++?7v<2@ZsNU%G9JaZltrx?~nxZKp10iIn$BrwN@<>Ohv0
      zp)So7PN54&xJz@FKsO)WMgE$1h5zOF@Y~I&7k%{X=jt&}tMg|H&oNLK`xPe&#ciA{
      z6n??U{{9`D+D7&n|0giQ_YiXcmznJfqhDp5Yiba1mey<#2cvk4J4VDgoM#rb$`MI|
      z>pTklj?tFluIMB9oiP=H1*V+flik7FPcf<hC`;EGLCh(8vY1qc9b8fnv&vLhp<y-k
      za2pe2JGk~Ej?KM5ai#biH~)Ob3?<yc45b&KAMtCyMbsY<(+si9(&G+Sce$$I9_IZ@
      z3PeXdQ6&qQCWC@!j`O6(XtS(-hHq8VZG3p3ra9J>V2lBU<^{?tgZgvaRj6nT!1Ve>
      zFEdq@_u8_bcqlj&B_6;WA#uhDZQ($YZ$siH6)TDj688f}xblhn588f?Py`KqKuR7`
      zKn5FC!#HHDp_37s$q>z{hz5a=aG&UukcvJ|R+s!Kimv1cwESp_KvjDn55cQ*@jyi`
      zIZ@OPt7=XcgO1KC4##&p3No)n9Ub)DH)+`-iC<Hn-^4mN96=w(l0O>^?e{W4@1TQ8
      z!dhkv_N(#+Evkb(K9n7NyvJEk)pxOu^+bt!!bAeA_>`d)GbMgi?OiI={xILi$mxp6
      K`Hb!feEtt185Uyz
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U31$+6g}%WvEvFFr?Fe0v?6H|+evK-<tr|QkS5fSHW||KkT5*R*49x_q>dz$
      zba>%!z#rg+hcZLxw4H%>eiXx5NmVqlJ$;aNwYq!Gx#!;9fB$>_H-H=1&LJZ(*K_)f
      z1LH@d(UFGZH%!@eP3bjSjwz4VTqlsnK@M4gg%N?P9Y64lZV<-`OnB1o+kwFJW{7JW
      zPOq`mIgs6;DUdh3UjI-!{6B6f4gt~PvgPl{AdntE_lR-Ja;)ICK)I3v*$F($=`~x`
      zwm^1`G7A{Plm-n&fw4-pU4Xy^4KpYa-Iqbj6etZrsJ15=c~L_ilLF^AEl1w(A9keo
      z!06agDR;Yu-8MW+eaDO0VBhiu<~K(ek#>xUW-OAYEr``KS4SR&!TfKS=C<J(hmxsB
      z9-UDf8>dn(tRHvfqrh?<KZiMi$_OE=zAq0u_Twa6B|ER7fOBfLs3C`m9I66WPYcwt
      zZP_#IoxliWvN4Y(ft7o%C-q?8aCFy^`pf$14_!}Z1+A_$b)(yrzOP%p?zn;e$n|}T
      z#?=d`;JT_$seoBD)a+e>OX-R{*!SEc<#JP{C|s6<5Z1%Tp^~Uk<|?B+kDHEr^Y}pE
      zMzV=o9N#kKS%n5uQ4$T?c8{c47tq{3y-&JVe-#z$ARRM_zxirysSb{-c@9l{n!_!D
      zD<f(c<7>E$&)D1SWpx%>gHYAB0$bJa1=bkYQ-P&Qt2!8|YQL^w91{Xle!mk_Y#5d;
      z*{VE0dwK9EE=LFPWiex?hWlC1<7<KIWTl70cbI2NK+7i?|4n>J%v6R*rN=vN-|NZ^
      zY7;1?k5*mvEOaI_#%nB#jLL|!jOyxe<e?5n_B+Qs9}TZD{&miF8K?H0uRZ0n^cSXU
      zmrqdsgG(7);(MBqz(;(4LYNh9YT^y9=+QR3iMRMg09?k~1XZ&ujLdL;l~EbI!?i5G
      zW<$aQ%FA$Nq4p=P{fepD(h29;6I}ZZGcPc^`vR5SX{uR%iuymNI?CJ!7Bz=El)uh9
      z?Jnlg3bm9Y#6-&iZ}SN<3cQE+2NbNw3W^Ea&6te@QPOHNu$=-gCg4SUNIMkx$F$^Z
      zdOg~r(pyyN{elZi9Lszbo?&GS;z=!Bc!tk2*gL_UCkbWb^S8|JJCyJ}F2YFBFDCSh
      z3H=7XqzF~S<xmdAXMa!dq7;4zF*N>HsYSIC>I@AC-=Zt35l&sXJKPmNgpA6cc13lW
      zqA7;vtMc;%4$usm|J87spHkTm(g<wg9w}7z4UUR<oHnNnjSToXWx#l1z<q{iu=PJ4
      C+O9wV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`+e*Vg5ItMdMq{<M-mg^@FBJ@eK1ii6(xOoGq0;wly4Eeprfk#VXX%sTgCF2W
      ziIW%_5sHB<duGm@IWznD_5K0i6h#v$hMkTY*j+y4c1v*8x7)(;+d|tnD!AsV?Fwze
      zVAvZ&Ye=u>ikQiexs*x<6^7DbeN08w6`mN0myenZ#uc@+FoCHo(#SC6>Qaf@f!7lH
      zp0`}VP^kM3cbi<x5XV6yc$9sH-Epmw8Omg>$2Ik3I2cF&<BTCqC4FkXe^`$;<Z{)q
      z8-bRpQ$G3?x@&cX6HpJU`s9dSAbr(0vA|GF%6_J)`P$>bh-G03D<+m1@(Gh%i;mD)
      ztYVG99CCLc?jFeZKQ7|Ba8wnoF5Fro8~Y}c4S%2=QIp|bbIFcQLN2z!=pn){ML)d;
      zVUunZ!eJy+I)26EOO&_hw4&%4G0!ngc<G0QEM^E1AG64jhJiWcDOaGFL3ln=y`Wpv
      g=lBha&y-4$U|7WHy!a)U9tozgjt$B)Y)1U8Z!lu8IRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TXWM!6#mwi7%L)9pbaUvhPy8Tm0qDH0oNpij2j*Rx1|rAwY)WAWGN%9JK<lo
      zGXxkq!y^y;D2B5uSyqh2gQeBk?|kPwXU|!`|M2E5fa};PA;)lj;Ek+j{2y-h1ouL#
      zFKoXr0&9m%+uZBBA}FE2a5V$h>V-1kw%l~ZP<S$SVJO+YC&j*GSnXuEwj)H7q3rjb
      z30wZk_ZW_Mw3?B0Tx*+$PsvD#dE4b-*zq}OV>l6ET<#65_GE)_bGIDNksAzuRkOn0
      z9Sw)iW1Y<`&{$hWpjwxq(56Be$fIIn9*Yc(%#eqR(|l6vmT-(=>61(iEa3}9_a#HV
      zTI-fU$(ktPh+2JRq6|Z=PMIiTj-k?VJh3|(_C)ZA_gukntmE6<?ef4;-?6bEpE@DK
      z#jI>ohplS3#{)V_hD%xaLnUNbh?^!Z8bi)@8O%`fVB8lBzgIhcFtGNAt`+iqt0iUN
      z^hQ#I&8Wsv`)%&qVoy50*KtBAJP|Z&St7<q#9$;|VF^`+YDUAg!cYu*?(+mrt~}Af
      zu#%;aj!H}mV>tVH;ndaxAs^_@X1H8UwbDb%-5XG9x&d?>N4TbHfNxBi&Tpv!$bHH&
      zM$K?!I1&xf{l02~32_{Y)a;ECHCJY+N%@S!bd{VNCT`+ql0*IsH`1OlZieTlCI;po
      zRu+3REIJ<biYFZ|g&t>Wy>yrv<<hWb33upzndGXiyT07=M_xZUWdpz9ZV7D~mno=;
      zO>EI!^|v4F@*z#n`i!toQn{oroAe<>a;V0(x{V?(<DowaY_a92v0U7l+^5%+3Y?=c
      z&eKJlM^4Q$t#WG4^_!-g-bMP&!zA2MT1i3{=zY50D7?Z#{eLX|@e0Qeuw1`-fR*~%
      z0Z#r$`#GGZ=d$)*C*JSr2yfGO3#ZV=8QQByJUEN5>5CY#s@15~dGg3<+Xd2~B3{HL
      zvRo!xfs|a)TH3MpV*Le9{!3d?&^a;#J37d!POg{)DWXP!)qW8TtdR%(r{EerRdVa}
      zt-_XxaJlgk)->q@O}ZR`64Elhqx`6|@B@B~sUA~cRo6=69gb?cwU_wmw@GOh^!6i4
      z=P?%0O{uLU#FdzsXwbwht#%z7^d1-Dw${BtTuQgm$Wy45*Jw=(|1%}rNcauhi-m8K
      IcMkVI0xZ7Zt^fc4
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5Pge<YDGc({=^ugfQgNX9tg&Zfp}=-fbqVR6_>PIQVQ{B=}F_kAK;HN
      z&K3g1gxI8;otgLMy_x;~`TPQKfxL+X!%<uH?G7JsyD7Np*)8D)EfLyIpxSp_wLB4;
      zFc^+!;2P5JdSZlRNL@=MqZ@`&!I{CRdcqef8c{06M+W1TG%d_wA&n$b3>il%ao_iw
      zB7ERYPcY=1z~$Z}52cPrNh5leJ@Ph7YHElIdF%3!gc(j};s01;ND`$->L&#!-jT;u
      z+ipamRP9P}DphZGgd35DRef<qH<E$snOI}UPiVt&YC-7pXpFM3fh`l849gRwww=Z{
      zb{Nb7_xhs#L__{#L6h{5D&Cr2*regeG1+Sb{m>OPsaKkvTF<!#;}DD<L4OJQ=_M#O
      z>2^c0&ZJ6b@0fp!>lU3>oV_IE6&5Mp7^0BI5=Df^GBVV|Ko%=h%Tdmtcs1@?rdzCY
      f_JQ?RDkZ3)CNVn8Qw@{jhDq#VkLnEjG5+8eQi`tW
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~Yje{^6g}%0lnAAv;SmB9%-ePnTv}3^1VV!$Z6KJCqzM5^k?oBwkfl_TdGuGc
      zGsS7kO#87j{ZXBsm4q#WJ&eZQyL<26$GMOF_rE{?0&odGYe)&4tvSuYGxLR6C`;4v
      z3sqThtI{jnl|kLD7F{QhuL2Eef$2Vy3uQm>%t}!7q#2lHTiz=_liWsE1%^zo)@(>8
      z@C6Pnho+i=WfvAa&wRaX`N5ok-U!W=%!U*gjf8B|sTI}&&vI&%*n8D-tYBW?LiR)U
      zhbOrWfpn3P=orATfgyY%Fp$k{XxJ}spobSaMld`CG7ap(UY*n-1BWptu*a9dQkDB2
      zrgIxga@@dC91}1oxfYm#RPoY-?8DrK()pPI4TAzB%a$Wc%|=;z>k29rtXnbd4b!vK
      zK0Ztbb&F`7U+x2WS8@nW%A$9}j(iz0A{Y;w)#{4r5z;_<QBIZ`JNA2FM2tBV#t1GL
      z$RbCec(sq*LjmD-=O|Xe=qsuO;`|F-&i3;^u8p}|B5`dk`mI+Lxf58f<7@a_AlnCo
      z1>cvAvi-U(z7JpEvW71OPV~7F+chwauUMEh8LUdbX){v?vpsy#@HKUXwGtL%scG9Q
      zuEmz{+D0|Z3XFARqJq8Av}|_KAg&4=E4djrY>7<ZW-RB0`&?$Cde7*X!Mv)@F-3i2
      zU;#H+>*mgmbeMsuUImxHtjpM(QgPG3Ei4KQ25!WBKeV`^bX>u_jsljH_1gkRlBU+{
      zp8HbOV_X-@2JWIHpapK&wW>C9j}nf=$<widRSowA_ID78cm~$6PQQqG(KdZn_kk|R
      z!$XF!fd?8k1<v$IVN~IZmP2?AY=QNt@)#WptR};VbSB)4gYV&aGW(v~wmHD!5lEjN
      z<B5hJh*2k~ZW#kV;wkeMC0Af3=|zmqM~t=+ETgKSA~5lxu_e|{#Z;ZK&Y3EMb`cto
      z*p9(9n?A?NSQogRd}^o*ob0GBxogczJwmUoPQx>SOh;(Rwq?z<7b+F$`)w)qyW3<d
      zv<H3WW9=@mFT4@O%JIl3R3Y?$hG0f5B5*X3z;4(%`O=QBo{UoonVun0bifKIIhBxn
      zr>!rp;VqN5PA6{lMuVdIn%nd$a?uLsdW2~V&P4?#GJFXJ`1Ypw@rem3J_}sc=@8UQ
      zvX9hH+^dt5`CS<Kw;0*l#iwsDnxAOlU_RZ#k^JNv9RHOfDV*T{(NNhHq;Z*3d<F+G
      zi*d}6cNHhe&qV6Dp5l&*ahhgDNSz^-B7GL;V)Hjb2LV0*8%AmJ{AS0JP99LCvo}M{
      zhr_+z)~q9s3F=8>5>w<|q;#75f(lG5@)g{}6K~=VToSlD`47&$MPchLuJAXrH9EJ8
      zYqWa2h3hR8ck%5mzWZCb(ZZe5WDEBcbLw||Kbsy;PfoS)=$F~F(lDM@lJDpi%;Z+l
      zL|_`XaR;?<-9$NDw_(vsh2bhu1D5GwiN4+=jw?8T`#8@v$Ndxs*fa;u3?AYd9$_92
      zIITB{#bauH!U6e|yD}xJ*ydN~r?6iQ6YRAS^6(rs5z)9dh*gSOufc&!4~vxDVfxe5
      bro)3zY74^%&?Hso*$cc3@q9(iDZKt4kEW9f
      
      literal 0
      HcmV?d00001
      
      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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
      H89x0N*UUa7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%U279T6g?BuY`aDqleX5H>RM}?4`>kdK@$Q+DheS!qy+2RWOvw1ne4{>X!Wo7
      zEA+*H1%3BNiFekuSpr$uW$&GH?>YCL`Tgg|PXJHRG>~K1bG^8A&M$atB)Av09AW#8
      z2wMGEsW;qnln4yu8TOap268f0B1JM3I?|I-m!VPXEvYzBVj{dKEos+>4Ea~YY2pUf
      zidaE`VZA3k(T^u15uEao5)9>@Z*w)|fz)xD%tvDxlD1`3nIYPwZOQ{8W;k4iUy#PI
      zLM0)wAJlrujuiLY)*uR`=eFya)VtBSup{CyPd?dV8cE*^4Qw#fmMq~o48>%mK3~IE
      zvBdxr+t@L1kD;{4SHyi(X$bK#=8A^i%t}i6>mLj}AW!GDZ<P`*SI2=H>!oMtEE3oE
      zEqlxZZbu>rE$M~Q5mx8ImrmD;xNC8x{7c~+nb^giw&w8y@BdW{O;qqiBMun0v&v4#
      zfq$tjON=(>blTFn&a@FNaNx&*EnZ7)dMRVzkp{y8qidp{9KCc`C^qP?OR>%r8qFD2
      zza{4;ea$5MjF8W9lj5y^C=_vvBEsV~)~QDxCETI2GUf6VSCX#psZMvTHp`pearX;0
      xu24C<!tPo5;S7&v*#E`8(s_<}K%KO*7g)nf?4Xn3t6uX}afllAXQ(H2jlY9;<Cg#c
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiz?N8HC6vm&s7Y21QHUaSkserHzWXPK@BgBP(Az73NA>y~&^*Tzr*0gs5|C1l|
      z3nY^0cmF8kxosI6%R-iIy{G5=p68s?{{8psH-Hy-nL><Vy6!Yf$NU>F8G<{0$rLr$
      z6kh3raV%<b({-dcl_?|`=6hsT3}1S@COaw^`qnMSk{b*o`D(zoxl@m@<-!3&Vv~e4
      z#4(UY5*kB1UpUafkWS++`WOa$5kVO;Rm&0Yn+-#F``oYvL$2!9xP8DqOP!-&LLON@
      z!%Ve@*A9<ml5oUH7*oJ5n+&t<=J%v$IrVaPUg&!?jr$m5NRsaz^G4%Qt!g}G(am<X
      z=pF^RY3_25H-r@4l`n1Uv?jhv%XRz|o-pKl^j7hG(J<_@R(c9L!{l{SJGL$A+^%@_
      zW<xl#mDi6+hNX&WQggZ+?A_O;t8+*1n3rz(y5mZn+qQcm%mob-m{z+R(=d)1bv4T{
      z);_WQBhNii`w2GATv{X%tS@JKl1rgnFihopZ7X{Eg4(p(q?tq!2K}}g22D6-D}Uv7
      zk?ysshjB4YugVfVDRm(~3cqQS<KcXvJDFj~ZyJ%{Hn(g+Tc$_)GdbCFn_f+9Q;c@p
      zG1CRL9xRejoL)*GMc*X)=&Y``5u*>F6)(_VoIA&zpLB|0kbVb)ie)6QiUF)4L$T2?
      z8$-y_iRzHUJz^>5aKt>M9Ho`HVvZE&JHR<Y0<Y-z4S~xfv>w3qu&f2o-~k>6@Jt}1
      zjM94?$t=@<AgpArU2B2E4T8T7py@Cvf-*d!-eY)7s07^^52mn1SOw2sV*KzD6NkB{
      z7nr)hvp*CJhoJ@rylWdmw&gR6d@uxt0*YPm)qnx8YmXspw+%+SjV8)4hj|iXc#efG
      v*lUUhV<?`Z^y7xRPi??t3z%#Hm$5?SYVDx_^%nnrgJHA{E!G-Z*u&a?%>y*)
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2D`p6g_u$-E?DWx2<mLcRv=o-J+@BTR)%_MPbo`QrgE!_R^-Lvt=eL_%nR)
      zf9Qi06#4`Dqr^KgU}+76Fv*?a+;h)8b94Fo=LLWl=z6FTHjnf;JW-!i7_rhe9CADw
      zvI+Ot*u-Y6W8PE7vgz&^qdvb;dYH1=HLS9c@z5Z&^XydVqwsxn!g1!INm#GUTW}GY
      z*>PgK>xBNGYVw9;Z6-R&wh7OA)zen@35{K8v<1Rs01p#B>X-`9LYq+UIl$B)(fn?F
      z8nOAPqLc|UgHf!~ePt52FAf_{HetJR_5V33jZDVQR4yDQ9F+F+D&<qwS%KVGEvvi}
      z+03XoyN35LPgpLo`06eDn8O2S$wRr5%4)>9=9w}gkg!rF?V2Ql|6w#XF~3fn&z&37
      z_uLH`A$Y5`Okb+3W$R&y&@1WV1_NRCYH!8VVL=9<F6$Pk-F9;z|3*z#3%;D*mguGI
      z-HG2{`+=Z;jyvCT%(T3lf&qQOjKqP9C2JOU<x9ASPQkDx6>`pBm^)lM$Ng^tsNo;M
      f*PNj97gP{936JntC~A0;<DZIHSAgVM#4_*)rz8q4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?`zaR5PfrZUV3TTo~^ysU)AaruUBj;_^n#hq9`1C&{Fi{CO6cSbR)Yt|1SL?
      z1qJ^A|0r=b2BfWl5H{Hz-n@D9cJk}@_n!bBq3@wV*gMwK@I-x9VZ=(?aKdpmVH1wo
      z*u>_nV;(DG+4NszSt^j%N>5TY`-WAX84oQ&x5!VGJ`UeSCmiP<+Jv3j%q170oqtSh
      ze}^y})lJ@&tS5<1@;$=CLH)GNBSLFmTJ3-^7r?`ek0urZbkHR<2M(|>N;JQno<?jA
      zRg^Meag@a>JyIrd=Q7xGvI);>SO344(#l-yY~|8p!u!gOUZ#A?IxmsCn^m=+M>aPq
      z&M)9StP(aVOg?|pK2~tU*>Y3vrM4b%ul-3Gkw|z@CGLVKf`5=rP0X(n=XLMW3~swY
      zBLr`>mI+LiwQN1yBMd4!xx_$NKHptAd$=oO(3Eur)a|-ykbk5hs{>!6v$A_EXBY8@
      zTi*~2&oKYBz+9DgTQHz?EXqD`d&yeDHTg<G^yKXro=Sy+^9NQwY@Oly7YR1-k6@!9
      d==}wi1Wv*&+!l%k)(ZR`5$g(&JnOg*`~fr}3|asH
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?`zaR5PfrZUV1ULXVt5}tM#CFS86Kw?W~|hQ8=`ql=^X#8){0rC%b!s|CN4_
      zf`Wg5f0Q^IBbL@c2%GFKZ{EClGx_=J+YbN_&=1fcj1TlYK2#r7oUqb1o^m>yvWa)u
      z*vvZCDeo#{+4P@&a{NN+Y0hTHuyQjKphf5w!MV~0@$2M}Qx~93*s4uiauM3@eP;Vx
      zgwdpK@K~ZAWjb?@37doZVZ%K_Ye(wrfUp=Lz(R;7mLhb}B{T;fur$duznUK<Y~HFQ
      zXTtJima2SDnarQd%a)f-*sh)ZKSoL&i>deYufc@<%5t9Ne8k$7tr!oh5<f|-Gb(kb
      z@Byw8)+!u6(c=&+xb6+PAswkLMtp03P)76-)~l4AQbY*f%;qNL=b3l8cV_hN`w=5V
      zFSVB0%ayfk1FR7S6=j@ZklvjrtsFVrk?uETodb2dehB2hXvpdyl-u*Ndnjjr6OJ~%
      zA{rgz!j}SbQQmFAfQDF>edPBNbqSZ{OSpnw$*?UM3eN9XdAD(lYo7(sz(0b`f}r;Y
      aR1$azH*rfS8n|8HS4FH(K=RzhJ>WN{KL@S=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T}#|R6g_u$yK&Q4w_4YJ*V+Zwl{N}}+gd0~OAAXYw1__RVUoRQB+klAw!f==
      z5TONsfImulCk86oKnRn}4CkJE?zuPT7r)N{Y@+L-Mi}htX?Uo9s4!xsZ8+w5GG-HQ
      zv$2WISjW7rjAhdu9w_rs>2b<tXjo+v<Do%l=fSDc`{9@9kmJllldw^p_L7Ux%nlOU
      z-5~TwRf7i-^(N6t_LlInS3PWPhtL>Goh=Y%19+J6QO8_>7TSb*&jIE}iRRDKqlnEn
      z6{Sp=A5CJF?kJPEb8*>lvI$$2v;W6Psbe;FK5$_$VYjrL_bDH-&I;sUtt|1o$Yw^x
      z*)_a}`-GJehp+V5#}XboLmo*-DvJ@{n#anBKEi65vTKS6{@2OW#QY&~E_ZH>-YYj^
      zgy56bGJC1AmaT^sLa(HZ8w}FBE2S0Vi)HD4UDhp7yX}TR{)?Kd7JRwAExXrpb~k>1
      z{RBb(6nB2*n7i_B3I?=?dD#bUFHsA)Ctt!MIt9a)WXL)HU}<mt6c2t1poV`0-*bY_
      bC8!{95+37;P}J}=$3GLXE&<8&94~;s5XT3$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T}#|R6g_u$yXmH}ZnducZq<dZD>e#!(+aY*w6L^7McT(n_F^M(w#;Pv?nD1i
      zeGtJye}F%#^iB*Y+CT`C+!@Y2_uM-t=YP-s09Z%YLyfSxuP5Pw`k}&zmA2uC<MD`1
      zxWmRKHe((0jxv@_caSP;-zz;z*$fP;Y-~I<2<<#OReC@C6diD!d1w;Ws`FlO5t`Yz
      z#CF#R{bAMQ4awR}bdqfmR(sXcmiGvafi&6zVJd)!+dk@;4$wlIQ13aw^f1x<adH^3
      z*;P@>gqh(uR_UHHiQ5;44JVthRk`~ACMk_f#cmK>OqlScw4b*rAF|F0<i>JY<?YC3
      zM#b4RyoU#brIHa}y=5Qsc;rU%Sni~<8kt=4yD}n>@Ul$WHAw{j^LS!newVm8cW$`v
      zl`|P3_@K48&pDB;heblKq>md6gxRaT6%NJ=F+g3`El|7dd?5cuO;!uOoZgY>wd~!A
      z-(NXF&_Bi9;~aBO-c7-PjxZx};9|*|#eMk_=Flk^-bjU<^Ec+duAJiGF9FnWN$@i#
      d=v;sb0w>`Ko(e?`&vN{85$g(&JPTL?{sB=|3F-g<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gu}VWh5Jm4q&BmC3m0w^H8&_*935tSXz{YmozDr10_rdJOkF)Rt{3vk~QW;(|
      z7iR7Z=g!aX*EfJ$OdSS-n`PSgwSKB^s44rFp=)V=LCdRLm;x7SnRYohYU#}3Sa81E
      zh?<uEwOKP1!8B~=eA3iLn&5r*(sTMD@`I`Dop)D#zWXK@(@_5T1>?7FV}XyWNWsMc
      z>Gc*)FnLaiHjkP!v%{HS)&q2KLE!djhk)Ry{;O)ueS+G+0B%=DIITLaj>?3|aP$YD
      C4QC_(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?@!b~5PfrZUcFl6Ks@}7=p`ISw3zq}&=}Nca#09E;N!M8!IH8yyFLFd{a{Em
      z@elBiGR)Q*1K6Z#w%y&ldGqGY^w;n2KLI>J-$R42ai}NZk@~E{h?TbCnB#2BCfs6U
      z6PvS+c}p3~rvEaVL@B>fdYrP^G_3N>cxVy2MR=<8Vfa2e;yCxvCal&bF1ZNp{9|JK
      ztAydGZt$8!ttUFkpAjAn>W3}w5n7v4X$OR<03I&;Xkt1*2VFvQ-~iL3MDx4Jam40>
      zlG+KgqbyeGo-&C$mzOOkoAA7L_WxQbl}yFX)xQ=K_A3i|mGUv`yllqWa#iXVk<E>Y
      z^K*C)HwgU-kI(ek$2@L1Q*KLFYReJt+MkpWg@mOlZRa!*{GDuKVt$=Cr+XI$@Ua^+
      zLhx2=nZHz7%htmK!l0s%3k-z0GsTsIhx;-EO<9*f-L4x2`9B)6I`HN8itL`s+1>cV
      zm2U`!C%F2xz|6?IEf~-?W@R6^y+mEZoO}t_(JL7?BtyaZ1M>$fC%E}V01f;j*ewWp
      be?TRHlW+%jg`$Cb1%5%qx&$Q8A|3*#zxoRz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?@!b~5PfrZUcFM}1U<mt$|W90q?q^(Bq2m1$*Ck7q93=t36_+t+3opv=?6k0
      z34efplySD!K!7Gqv+eHY&6_uGroaFEIs@<$eGd)7#(|!Mhw8fuBUajmV~(>in{bbf
      zO>E9O<~?OBoBmFksr;?d<CM*|VU=gbLyOQYqEn?0!Vl3Q$GL|#VXZcA$wg@AUlZG3
      zBMe7%gV!Z$Bhg8|Nq8}+AGW+tXl+ZO9T27ic)01KiJ1T$bP3IY1I&yP&F?2i5t~mc
      zN|`V_%3_u7E0ef$dD(KZ37fUEU+1J0G95cpxpbKDxw4)&DIc-^-;4F-s?1xF&5erl
      zOLz|pgry3LFLv3-JnlJ5?n_T<s}bkg-;@!7gy&V#E=eNzAG3*xc_(o`_pVIesv9yw
      zu&cF9U#hHS>){z;P*KMf2EyFM+RCZJ6B&S}tQ(+i*Uf?a8x2_<_;NcXyH|2{H~w(t
      z7{Txaw|*9w+wyJ;2DFP=*#~YfQFFK>U&3AVN`}{xq2N5l{FjvzEdCHc1Lp+q3WDB0
      aP)Xn<JitStXy8$Se=K5M0+Qz`mVm!2W(j%#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?`zaR5PfrZUV1UL*H*9o*6Km8S86KwMcWEeEG-;*pcMVM$qj8vx>t5{{$2V(
      z3KseY_(zGeF?i4;5W*(A%bPcE-b{Y~`E>>0CAuDJgg3`}5}vAWDvVfZ8;&?0kJyAm
      zHa4*t>zIeiST@~5ogFAWO4;lgR@vBiXb{?YY^wBe_%S-=IP=gXY*l70xCqVcB(dEs
      zLVr*-cw3@&5}jmk37fs@Ve3bP#-5bf0%1OYhdCd0ECgtwO{n)AU}2DG{xCU<*nCz|
      z%7mrCI9BPAGKo7EmklSIuv0nvtdCO0eC#ac!e7Fd(rVtPe8&GfvAtfF_g!Q&qvGru
      z-ostOYKg(q4*OWaeP_o5=|^QP;#%`u8Iea=D-(825W)X6o|u^T6X$VfX6|0N0V4#5
      zTFd06%38J_o)LN_Rm?CD7N?aJ^M<F=`ns$epmy6$fcz6RSuOZ-dsB9=<m_(z{>D!P
      z{R`askz*F+-4qPyHI`%_xV=Oz<F<SWchD&qb|pj3d5M*;8yC3uT>v#q33hXW&OcB=
      Y;3Pc6BcZ6_agKi?VqF4~XBE$ZzYZA&CIA2c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T}vB56g@YISrb=Hqm8YtAFYAL6kQ9x#TJTGsst4j@pX1{(Ur|aW;gv^3QEBT
      ze?Wg!>7DIj#TwX$nYnX0=iYNae*M0?2k;3i4hn?MnI3u<>WA`tRyy{291MDFyhAo|
      z7$>X)K2#=V)7%r#ccps~n{C4?85jp8LM<gnN}qWL{sjk#gEC<wci1czp`4tDadU&v
      z?&c+TgtZmwF!@4QYvre{o)AjgQfCE(Nf!>rt0-dHMFllNv1I|%-B9!Xu<x@uR(`~U
      zdUp`0=tP;&{xfIE$|iiyo&A|cN*$Ad?I~vsCY+8e=Uc>m)=7r!td2_j)sGXSg5(Ll
      zf>)S#@S4!d+h!MU@Rl%PC;cF>IV$g?J+bq-R7TViK8(UY(MPBr4TdJ*ozV8Y@!uk@
      zTNwm*S8LhCNX0Qr|Lc#^W-EndnQl?e7^qgWLzcZS$f=+z-U+cb<!?RJ_QzYe?Vp&s
      zPBAa!E(-<}qAs>;ZDGw|R$jtOG_nX=^4bXF?Hjl^n7b0YfPegc%5VI|WPCwm0gEYf
      RDa9}2oxD~R$#~uae*lqd{L%mb
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?`zaR5PfrZUc8vvv(>A=t@Xg`6`KlvJ1dk@Q8=_<DfZ(gH=HTyrtIeYyX=Qj
      zsNf&qA0^JlfO0hu!X~@Rn>TOXOn&~l`~l!4`W_mD(NxdEWA#;q5i4!O3CG!lO}Nj-
      zCN^gs^S&~cO@Ex}={uz-DVtrxD$k6E7NJ`Nr%F%5kI^y5xra7kt2S-PMQG<=65HP*
      z499hYM-ufq(MkS>@M2IuZ2geX+LbyxAS?v%aNS1}ivc?55}E@CSR5ysKg>=dHU}z7
      znXoj@VwD~$lelwv*>bW8+qJX*$4IGTA$Fc}X)xh)WjT8(pRmqL<Y>Jr@lIrOqvCuH
      z@8K?Ct-|4ddhBBb_njdRq$9P(h;QvvWket0d6lv`MFjs-HZw85O`OZUE2FpRMvM@=
      z*IH&TRo1fgutpeElyQZj=-vGIVpY1|lywc%?Ybe5|DqwQ17B`$$nKS#-HkuoI7cwN
      zz|FG)b4%WB!GLzKB>TYaC2ASB<x9AOUdga684AwtSUK9bz`bt*Xy7lwUO~|N11bre
      Xgok(}6b(Es@J~dnOF;5G#WUbHmA41Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T}#|R6g_u$yXnSQw^mpCY1M_UD>e#!+gd2n(!yeeirB|V_F^M(w#;PvANt^b
      zu@54&;1B4JD!r2iD%wB@lgtd~o_p@OH@|-WxCF3;u7?_7aHJ>UvHGgQh?TbCh~x2y
      zO}NL#CN^Uo^PV!6O?P*artg#<rEGQ#t88pMGzjfHI92*6{16>;oOx&xHY?K>T!d!!
      zIkDYMLVs8_cpy<P6P;wQ2phfXVQUA3#*Wn40%1CUhuc2tm<iBAn^5mLz|1hwygNCG
      z*zBt)Wy0)m9INy|nZ%uo%Z8Ip*sh%YKSoL&)3NiE3xf%VrRBUy`Gj>=AO~w@iC;%H
      zGb+xm;XN!8R!SVc(qkVBc;F0qC>^ORMtp02QAYF;o|P%PrikEw98XNlZxiQo=f>zg
      zcOym!-fJzhmnv)7dRQU!O3JvwAicX%S}}5XD&4Qkx&>;t-4MusQIpkzFSk>&dm(3c
      z<M-Fk5%e!`=X;L1EAOUYK;JMc`@rob>K^9gOPEKeVAz%nIp<F-d|JQ2{WAg7@Q>g$
      eC+PeI6$DPgBRm$08lL3%B@ycqkUYy+1^xgb{s@Wy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~E|N6g_u$*}ApJim>>F0&e26L<@;;h=vf1CL1Av5P6(-Z?L4y>P*+)r4NP#
      z6Mq0d%6O;L7(SXb&9pO<bI(2Z+}ra%XTJfgq3fYW*f`ST@K}9QVZ=(?aLDm!$R^xn
      zV-uUPj(JxZ%ci>%9dn$$S9+MT*)puMk@3(VwDa&(>7(!h<Dp4dtxQ~S5t`ZO#CBH+
      z{Xx~>b%}bN=p=hXc+smKwtPTnY)Pdp5GDh7xaFgcsQ@js3H6=>ObrsvAIB#Vn|&3f
      zOqd>wVwD~!lelwn*>JK6Z!2fN(MqXgGIp+VVKL!TX+hg5pRoSdjP>QR)SHpbjEb`>
      zcn|jp-4c&4_1VW99y(JVNmnY%5$~E`lo5r5=VjWiXd?J~qp^wkUE-YXTpPfbZp;Y5
      z2d!oPQe`b$4@-nzNg>x52s4+8D+Uh>G6Qv46QFk6je`6iHCZkAa(i2LujK4*{Qk;M
      z1pQOo`H^Gp%DX8T&{s^$K5%=9x`!G05@yjU7&atB&iM;-hbyOe@Ld2k{3jUa1f2^|
      ZLEt1j#=KC}@Fd4S6|pV>$+L)Oz+bc`3sL|8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5?@!b~5PfrZUcFM}1U>L4DwlX1(L$o1KoUbVnp~6wLh$3ZH-VC}HM>3kF8yFg
      zAn_0Ik221d5((I(X|~<nym|BH&Gh%5(_aAA(D%?FY#iuGc%;6mFk+=`IOaGTvkAA^
      z*u>_nW8PNAvgz*}W+wlj^f+a+Wmx5z@z5f4i|AD8gYa{7#BuJSO<1kXTXGTF`C(%F
      ztAydGZt%K9Z6rF$HwiBW^~09;2(2wCv;)F)01r2PG%*vPgD#;taDbUnqWRP0IAXJ_
      zqLc}<qbyeGo-&C$mzOOko3L3s`~RGjLZ)M9Dwhru_ABdom+~>|i(afRS7m-1+1#i&
      zzk>I$Kv=4<_;Qzh%;UbZ<bm|0wi<D+{Z$zeNO)c)?TRFVzmrW&%<mKDbMM;py>vrH
      z2tH~p)0Zl1*?M?J7*y18je#(CxwdlZ@I(fnDeDHP+jVmw|3*Vr2fo}+$?lb$-Hkt7
      z`H5h7f?Gcd%x!tM1p`{ctn34~m#8`1kuTvcdL_df$xv{fVgAd?3GRItKm-2>UKa$t
      bb5Kd(Bs|0;p=jW7fnOA{E&<8&6idKg^8N|3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2D`p6g_u$-MBHeYi+lFe=fM)QqzKOwTcu)VbMaR=;I`NSyR$knVIeHY9FLf
      z!5`2cCEkevX=@;aN$w2io_p?@o3r1izW{8YAD}_ln&?@)uMSn5u+lajb2=TfiFer8
      z%sSR7?<iy0^mm=f^yIzL<DAX5VdbVKK#R~V(sQLJ@uy^;Qx~93Sg%c7auM3@TW0&~
      zgyE=e@}^|H%yi~n5!MFv(^mEft!?SF1HxQ{09QjaF(09WE}=Q_fca6T`Qz*$Ve?rf
      zITIE}(^Tbq%4B|D9=5z}!t2`A|7)dmGM9Q+xwM$@rLv*7IUlfgC3176s`Q)0I-^o|
      z0UzKNp<m(gxqA+=j62?xyK*bF<%oCf@5+cm!m}!E7c>#V-RaDv{4VoO_bv_Kb3bN;
      z=!4cWf4Q=jZGb0)K}92%7zm5!nkxqnk7Nd#vaW!-T|Wx)e>7xu5X$K_iC)OwpM=BJ
      zABcu0xPDw<ZpgbW7?8q(#F39B>n0ZEOISj$WZ04l1?NvJe_cJn?IQs+@Q;8Cg5F<H
      aN#G^i!+oJ>;6Z_ZC}Mp9lIJm=0)GIs;R~_=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2D`p6g_u$-MDFLx3zBlwjT@KZqZcmZEZn{qOfQ|S@dy|y|gLmL}s#r5B*R2
      zAO!_~fImvS69bmkKnRn}4CkJE?zuO=et-W7;4%6h8idiIo`uKilL{kN+J;k(vniYK
      zfQ?OT&N}7;Wh|TiBul0*m7b<-_6@5%Gag!mZV{X+eHgxpjycXfv<W-4X-h6bJ3mTn
      ze}^y}*9{&?)YC*K`5xinpnllagwWcTIy)fD2k>y!M-vMHI_MIb0|!_bCz@Z+P9iq%
      zRFpDdX`IC>ohXyIb9vcvvI)Djv;W6PsbfBNo^ok0;eBN}&r?2OotMbbR#oC>k<E>Y
      z^9y(nHwo(%4xj6>j}_c@hTM^k)D|PYwLdB&`Usm<$}T7(_;0hBiTOq1T<%>Oy+>}u
      z2*E3@W%g2KEn5%kgh53aml&jX=SnL_4y)4rrmQQVZr2Tg{1**b9r$uPC%Y$db~pZT
      z`x}Dc8LoXTFpKhT3kLKVOR^8#UZSpJS-ylD=#>n+lA+-Ift3&2XSnr601f;jI4uZz
      ce?cXIlW-UJgrb4_1^$7EbqPqGHEaNX0L<eEMgRZ+
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB^T6g`85YDE#>Z%lk^Vq<in!MHIH7ep2q_CpzANSTtM7(Yu_8W(<mA7#89
      z6dDs^lTPN`d(OF!`TTnS0C0+&jReDXL-pJif8=gWaMg9|!VBs`yOn03!&|QEzR)%-
      zhMiGF+3xt_hslt-l1hfx3`Ym05sHE@+Cu%B=MSq4)(sVPFouaVl1MRRN>YitUb`mr
      zJ+JwKVYU=_+^=#iBm5Jz!lvvp?2alGpCV7qb-1R=4Ev)5e|lp`lB7%J_YO*COFmZ(
      zw-Rcp8u`Oms9b9aFQghy;mH%7PzI`NW1b;5l=bH+2D;6|0n5Q6mTfH2%tNN>JB<~r
      zGT4vY?}_pQjrmUxMiq^z%;KV*#Vq?hQ-hVDr#(@W(N?qZ4V^@6Y=O~3L|=k_dJV!h
      z-L45ok<`)gE5=_;-l5Ym(KBM6W0LS<pM^B02oWFC$dHGH8DuFpOEHV^oN>LRo2hgB
      ehJ|NJCCD%mF*+||hRK0p5^GqeJi~_JZ+-(LjInC~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`}b6x}x&GB6BcV+kMqN)aIml!(?;2?bMx5}QIR6bn}E&Ey)UYck22nJD$y
      zKjKqg?OI9}vX(yEpVA+po;wqgPzb9JGr9N7+4t<T&p9`*{{8bW0CV6fLJSjSyPkf=
      zf8^<+;I^AC38PvPPI}X<)GV>a?UE%N6$-<RE}prf>p9%;RxD8ww%3F(s7BTH#J<Nc
      zS?B`YC_WR0w;cFo86pd&ZF-9gsYEx($tc<6HiNQEj5UPOuS12-F#WdZT?rp7n6_B2
      zSBk>f;zdg^L<?1eTie_*<-TcDygk!BCzlg~$y{pOAvqYP-ZB*i-SxP0tRutYM4{@G
      z)B6=G?ehI}&hs3zSoegREp!xYW#14r&#c-7)AfWcoNTgNz_!p@3+1X9W=M1?P|kHl
      zrD#2Gx%XofmsE@~#LniX<1(%=^p%BI5O&$yV+bdbd5OEGBaZ6~z4YzjI<Jt@Ly3Gc
      zNXFuJIlW04+U2Z@_Zi0h9DQ@%vP79%Ij3Bg9o8bF;sb`^wqF3hQ#UQ@;9g8Ij6AY!
      zVHm=7x$`{Ej}?qhX_!D#wo6KqI87nBEj?y*+`uf=lGkd&F3}8}<$4O;WRUH}hg8(5
      zc*%4P?vzAnRv!A1j*oGZWbmp1VTOx|GgQzpj$}V>;WHJVGF(2d<~rs<JvS(hn_+9u
      zss3b>0G)(e!qM2MxZQpDPt2u;1uRLaKKDzx-3Nv{I(iUc&{~qxXpD4gSB48MV#i&|
      zaP|Byrnz>_pQ%S!o*t87pcO0Vo#-juNdYFCs^ddDWg<%@Y+fH4<?ukqLwv>1LxbuP
      zY_e0TW+!%*B@iVm<=E2k2y}Jyxxx#~Z*)=9S9VbhkEM7!Z`8sski1^}T71KBt=-4L
      zWwcs#D!kq7#NXKC@}d<Ei5<3oAkNo2Qauwzl4zUNx?_k{)4$qITvM|$rV=MH!t|HG
      z5Rz4;l|qk-Ub6JjYKgvvq$M>SZa{lU%Mb?Wt@-8!f-K=3+Q$Mn4B}nd$s;ZxN{3v;
      zd-Q}bL^g%?G5^@t6ig+{*7PAp7#71B<ppj{4=IPZ8p3?f5yp3pFtHPzY#=e(bAah+
      znqCK(Yv7al$joTu5Sb8uQP_}j<=6lINgZKfr-8-YKal&4&J8$be5Pv@DNm~}F^mE(
      z;XcjbI+EDHEUo9rb`$rI!2>Lk-(76_`A8J;Yvr?rWqd*WrELYP6hS5QU96En8g3JE
      zjq)4D6veqm*=0z=0(nFTvyN0#fe8J^ni^Pyl+ur-en&1vxosR^^92U(A0f6g)4<n%
      zzx3nj#9_CYQPeNb6S90qIzOe0wdk{r2Pd`Ij^PQhVC2(>Z^<{LD6-+nBI^*a*rna~
      Iv<u<s|IalMW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBr9h6n<_JUD&Rr$cu;|s4XM`3>0ahXxorV#X__OV^RBIv$+kcn_Xvj<ID6<
      zwKD}eb*BB^ztI2E>2r5uSV}T}fIat|=RW84p8WmqAAbT^!jBqK0{Mp9Dm*h^nuVG)
      z-JnpHmRFa4p%R**ZSBZ#->a8AH<YhK4H<!z9{6G{2z}EEOTIKiv*yTqwP%vY_^Lp^
      z={H(U>4t&8$adtg71~ar==<iIZ953p1<pKo%z*a6*zTBaqfk;R+Vo}=O4)2mf%6GK
      zCG>5#LB!dcwrhu93an;Nn-iLtF`;NP<f;Oh5|h`F#(;qj@R2||o2zO#FEG?4WF3PT
      z=m!%ra0X{}N*4@_;UZHBWVltQrAsWis=9N@fQCLLO&aKjE-<idyRzJB)}+6yDyZ`G
      zEYqo)zOBw}WhUIWS)}>x9-ZjYIaViSGnzhEzKYTpI7cz=Zd}q)vtGY%`YdlK{kV5q
      z%@@x9GKdZ9xvEM%YaoX_Ys9NPaE}Fqcd}n?3IW4Xqtc!efg9Og3AJZvJ(uWNhef~r
      z+LA9q+j9dAO9I&*RVfC6Y}TAN9k|M1*}x5~2xy@f&7sO7_vEx29iL-O!>Yiw9`tc3
      zH*J@1$G{h0#rqpFjMV}Ul4H<o0J}I&rtHg~9KNVR%(<@P7QWKJc^`{LGkPs2F$TUy
      zkq^UmUwY3uPHV|1+7*0{(>6-SB1-B>d_#9hmfd~dd!>dmnu$%^(eSOn-06t67=y)?
      z;<>xr1TyUO!N3;oax|$cnXQ0fUdSfXKK7ttTVU##y6jb2)_z=$4xNUw!1OU_%W-7G
      zbc&WGgP?=r^m#1~dS^XNzi;@s8yGj=-B6c`vBu44Jqe5_rsrfgI1(8*Q0wbT0@F1K
      zLeq9g<U#`Zj;&`Uqgy6#T}|BTo<E^_#cTPN+_crA8SAn%uB#$qnhPq;--|R-YR6GZ
      zsl63_xwRq-I2Z<T=Xm;=$PB+z`6GOoe~ZDrBMcp2I6rrY(fs@Y#`6mYnD{j!xXl0K
      z5$OsqEn$G~Y#6J!h&5d1E1IG`AJZ|AD?E`HSLs$n(lrK>ilmRJOH=y^X4-*l(4uU5
      z{x=NM`Rt=(pL%2|a_w$JK1O3?$A^wN%#$aB1ze}CK%NZGi&2XIv{SsLm=E#k4!`64
      zo0$I{pOqKH{2^}sQhtlYy@exe{1r=wxP5$35=r`S2^07(`p#f8`YvOK4pm`h7#?t!
      z+A>CPkI3&ai3;@(F^eCtjK|zwPoo6xuqWU`cvqxb#NTJYeOTeG2V@)}qJmv|oh0u=
      ZR4L7}Ymdm3CQm>1$frv9giI+s{SWRy8{Gf^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O;5r=6r8PvYDH00&K?Z%kx)&H7YrAp@zCf2!+l#`U`biXQv6+dGV$OK@JAWn
      zmd1byHtB2U?Yx=U_x1hp3E&b{501duP%nb9e33y!QqO|{#nS<qpqCn@hYwN@5;7j#
      zf0$}AODJaw6mOJPX;+|G4>xGvB{U(O<|Ca(U%<U(S07v0DWQO(Ksi*J9v72{%(ILV
      z5~zgJSSEdGl*M_|O-E`jP}^j+c8w0Fn@Pjg0_U41{)7`K@W`C~YxOYOQzG>+Ur(p8
      z(t3)<6sPRr$0KQEoRZ;Wl@-P^jAitu3lr15%I>w6v28tY3c<UukHar7gt5neUB<Rk
      zY_{I9{g$2kT>Y#YF!KVtjH^o)O4wt>eC(sl8ZHiSm}_10*J?SfS6f-b@&wnb6%FTC
      P!$Ac{d@gXD@lSpLunUXz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8+jA3D9R5z4bkh)MiKP<d60S`fN<cudDPSor1lxkPR$95ZNlw#+&2HG;K=1|(
      zGu~!=@y!Q))ES@ZgH-6KFHUuwah&mi2mctyZ#QWgN>_Z@{LVSQ%Xhxt<>dE&9{vR2
      zAnqy%2<$8xmGo8hhMLYv)v(hAnKuj4N>7<u;f!h&bZIFF3iSEt4d!geQuEHRE=$sI
      z>LvoM1Dc^Z#|3(mqdumOn`C;X1cE~h9zhG*q6i@(kov#YGp>32sAkCVN+~C;Nj0ZS
      zf!L^-SM@2?(%f}@Gw94|w!m&bU`=<=@Fr!|;>`rQ{q$E|L?CKAs<ljsz=h<fX%*Ae
      zlAgBJYI@LdEG<`Yq@5XUVt%-qmt{vYjZw{Zq#><Lk6*wc({N<fA-G7x%2u#RAnC*P
      zpl!=iPQTSqk3itrC^jQ5(9sMxTPo`U{l1W&3Thpm$5sVf1h)Brsl$(A8@9V-NoT@Q
      z9j|^^0!c5G5w*dRz-B-G1UAamv@z~~(<;!Ccd7!3r_mcmw?IHEtV0h{3VH>)*3M%T
      z`_Ly4E=p%g)hn#Ky~!E|T{Vj73Fg}<GM!$wo43M93xx8zYTIEPWUZB?GiMgUI7Dw{
      z%PdRFxfR9{DrrVRR^6<<6va`z%&ch!^JX|2sT*=V2<&-ER8K7v1`DUfkT)YZh7$_d
      zq#dh~Mezy-iAP?qs5(7wYW93CcU9({OwWvhA%PzMEORte@{VcM6CS}y47-gzvNl0Y
      z{M3;4Oer|S5#kfUtr{&q=26xNaT;gc5U&axZN^;B!4n~xHkQ*g6+tJ)Tqol!y=Etq
      zbC!A29V8r93eF4c@<En$lhuIqIwloNuvS-C&a#1v(u(2@aBhV;Vr<F1RYWf%%0_Sw
      z7hFWstifhPb&afx=PiyjA3Uo#n!zR4*=5eOHJq(Y$uYbgg^C=DLYGF-nPUwld$I}&
      zOr}rR^YsdDFp<Y41x3C(O-$&zEUNmTRjjxVNMk^Sp}AFGu;gqQ*93NqX|~NaN~{cq
      z#H?v025#`BI-YRUVi+aXN_|~0rJXQLCt+90Wz%vJ-JYxN74!WO%))eeDErV(PA!g!
      z6|7!Wj+@SiSuqL?qzag~?JHWf2WZ5!O6tmW+^1+orJgo{w!GW9<7$aBBT{Sr+9JB#
      z{k3K2TCKx3HaV&F2q$LVn5Fs7)kjYN_1fN5-O;4FCR+DpnJ_C>UXEz)GuqMgB<^>w
      zfgPMgE&Lw=?;AoZ*9uoBxDN1F=}iR}5dMy00PFaTc-x1lco<QxyJ~7!j}2VW0PX0Y
      zlOQ%C#<OR*7v#Frb9;q5LGHBorWVjO-WPm;=K|=P=T^=A1`kJu?g!}dxEG?gX3_}J
      zj)aGsZm<)(XxWN3?8Y7sGoQlMVa4Cn2s6f`RBZ19Bm)>r#rAu`cq(?l6Z(Ux*b6l&
      zl!_g$Nv(ZLIM&;DA20SR@!%5H$Ahu{`xy8F8y0bLdS6^wz^VB~oOZ=HiOSCRD~sry
      zb`M5>j<+sh>mttawDkwPwtzPuKc+|enc*=_FV4q9OX!M+?&Hc=?tY&8p#@0#@0?!5
      z>~tzN=fV0F;n>x05Q^ywFx)u2_hC#ThwGd}>}~$qxP!a=)>t+8mIJ5A(lC=Uf-N|W
      zy*PsdI7`cMWH3Q#iq<o<zK8-Y!(dz4(CNj%J(TeoD)<~X@Fm{CxAgu!KEwljgdg!S
      ze#0mD1E1nguK(h`TNtw}6*At)+M{~b+Njx0UjZWdh5jl;zXcC*lTwhV=24{-BDSw_
      hgi<Tfb>kMJaz@eTyLgY%JxcH614;t787F`{{{ksU0tx^C
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U3(Kn7(Lr0&1O3-VWCBAfj|+`R2r##x1go8G*AnYSV;kOlZ@MKH@ji8p{*kL
      z0V;~$pMV#7#g)$k5mO#{M6bQ}UVn-8olT$t>f=RbGVi=|=A1L{%>MDuFLwcK#dkq8
      zNZ6oTrTCO~MvG^-W)<T+XSlXgj1StT?F@N?Ap8;{bvZ{JyTBcHt~#A86$-ZFN(dF*
      zoVTnfVfl$sZ-F-BR-yVNG~b&a)AF2hR@8D#&C=sZ*D)-evKsph%W(He@I|}ECHM#J
      z99Q5&GeZbU5X&UAJO~{^3zjpeSRo;hF}3Wpgz&@Li=<YDHj(7dm?bU(k1?$F0@*pu
      z5`lJx4iS)ZnlpXS(dI;OEyFr5ORojiGi(rnfbMYat=q`(gouPpL!Wf-E!@ly713Z`
      z)4Anp0xZVREn<zfL$W;<TNrvo$X_t5X_503qvN4~&*3>SewtyM7zbu14cA+;gJGwK
      zGRIBRo(Vz1ZiWCFgCGmTo<DWA%1~vr$yhDpSt2RKMT8g`>tt+@aX^CNF|S3VGP-5-
      z$k-}ln~a?Tf0Q8zS;DeW!{TG5e1<zIEn{*C>ZqO7%yG>z#JCppyOTyy!p716uP<U8
      zDsp$AnBuckMy=86+12sy6P2J0&1QMQHEgRG#0ylpiz*YQ$#u;faP(51jJ}_!U=Lno
      zIF2+KZgNX^C%w8#$T%Tkb;>b#F5=n|+C9Sa1$QoTMx)YLuONj}qTY@PgqIm!fkw9S
      z(<RL;CUnbo_@GuK=}U5*P{^(<Lk^T76ZW_OeJJ@zW{PKB5+-)g875&6$Lyr$43G!@
      zXrgOS%uF+w$P0r?nWA?^1WuysQHvDVI2}ZR?p~cSmdkbSFgT#YkPDhq<Oz#5Xj{VM
      zL{~zgYAXrhXQ~{?b{|<H&Ug{@{#BKTvXmfl`r_%Wj4sJd!a0WXc#}v_a?Owjb8C(W
      z3U4#KgA3$G)$#wZZX$?xC9Haw*#44X=C~u{ePY+C;37^5%nunZdv!qjA3M0;hlPa&
      z;n^n)p9+VYTziDiR<(&mpEG=cFNuRzC~zw$VapPhJ*u^~d!K;#n&BIqCCRQ`#igf!
      zc28+K9Y$-kYsvRdN!leR%ZCkdwZe7JaE}m*^;BCvdcPa!NB5mth<iz`pJwQVq_zo=
      z+Gtjy=&jg1SS;N9D_YXNGQ!EUzl@d1bfAn?$#i2Gk0;Z?GS(#1av70iI!vKX>L|8}
      zItq4C7b@dP>Xb6#)HRjSOC2j?d-7-O^3eCBeQG~}t9uDs-AB;sGlZ-T5U{$RvK!Sw
      zYJ=(!wX!-)ZAd*xt)h-l+oUF_W$GaUJbaUQH{dyH_hA{e+epiH(zhLJv4ft*ofyV0
      zoWO2m=!#_NH$}fW^x+cvaSeO%Bdz?2){W6>R`mf#aFj+8p2smlPtt$kSW38sKWPWy
      zs?}Y=_*FFDK`O0I%;V&5zP;D6Hg*e#J9=sEr7LKO(P&pkZv~l~7aF7vF?aWeg}=Ie
      z6}%em{2uMGJLGk@zk;c7_%^J0xRiSxE35Ik*rLuJkHrw3<S>?Fgg#RVbm9=U;4pm~
      zMo8Tl4v>PA#6C~lg|0}IaZML-#|&mk(F$xPFJ2>!5?;qyYK6kflr3sz#MgfvYlMXM
      z-dF{1RPfdnC_+Sg?~MzR)Gnq-&);`&F|EEgk4qx!ceGUSf%?(8+xWPG&no!p24Pjt
      zNK_i=jSV1;R!q<b^f-O?PI(;Ls(aQrHei#-jP51A#g!VfIQ61Z1A@dNY@-*<)E!~q
      L{t;gFHox{S*|z@+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+foxj5IsWzyTrvH2JnJPKrw`bh$4#dLV^hfBOsxu!naK_#-*0s)MgjZfAEn9
      z{z6{@rB#;C{)fL|*|VFN3sm{ibLpPb=XCe{`t$7vfH@Q-^e}`ghLhM;_tiv^t41xs
      z%bIOkwM5o5?2NmY;Aa?b3)!&DD!1&9p1a^wtEOc$^gY!K&3?|{i%f4b_?OKx55R|h
      z1-<BF2<A0|uQ_`~Zf&VWoihyO&628btCl9tjZ44%L8~!L=Ko79$<SZpcB;0;4=Mj}
      zB=3^cRilz9*p_Bgl7dJeb6Db4TQiNCgdv8BR#Z;cc}3MzR>j%lq_-IuKnNoeh8YIj
      zVD-Ru3!-2YS4e4@mq;9uJTIlkqWL5l0K+u}*D=N*6Wwi9cj##c+x6luFWD|z-@dAg
      z%Ctx}q>$K3OKd1IeKtg-noux_+mwoe8>u>D8@YtUDFt^CAw60xZR%yWbMJ&Bs$fPq
      zWUZF7Rb4Adh%=0Kb4oj!Ugnl~kx+0C;|vm|T~qg{@%J$=;Q_;7_bUYtu|Sa|)Zy#z
      z8K&B+*eu0)>SA~-W+^D+34;<Z5@*e&7Y`tYrwX2d#;;GUR=GiH;_bN2fjEQP5J7zk
      zVM##>X-`E#`$TP`S<VUYmjXP)Fc!(3Eqn_ih7|>`L?L9`^is-LB~C8cxQsk`;tkR=
      z))*KSmQfLc9<hI8Lvvd&9jnB%n)oWg)_<H81x1*8?W2DTvP^t1vJ#yVv@%+IqbHER
      z(xwLivce54-~w623!rs?P7D_jq^LpK`{{Jag-Ov(58d=fXHIdsj;k%Gfa_QUb-{%j
      z@d6ug^aM9>lYkg*VVtaB^_y4<xT9zt;hzZQXX?0fj4UnF#|VE%Y=^e9r<gmzqoKt*
      zl5~7g$8sInFJ0bTr}un_*PTIK5N|rYM9izw1c?Hc$fl?!X^dbQ^T=QmE7+mF9$>Xi
      T@=-&wjL%rdhAa84i?#U|KRrSq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TT|0e5dID=G_BzlxyVHgc%v7opyH(nlv=dVLB}F9;8R)-HB6e+<b;9$;fwwO
      zU)34QjE?&5k8<23g>rjvGIQqa?zd;ZZ+G+O@AqE-rmzx08$+UMy6GKlS4)?<W;$uU
      zr3=e;(yN-#cln}a8RX9U&IrN`>M`s~+p2S0><8hJTd!NTU<eDX>M&e<Q}nThW>(WB
      zVe4i!!_YCSo4S}|2u;M-37fOFcnl$2kP(3tK_^4c=`;!5-mA9DCG;}1Z)=9bqo5Kp
      z+R?$#UDQp!>ekBKUen43XHbe(MKjhlTlegyGc4ZfL@ZVOf6c@=>Tr>D*7zPt>z_EQ
      z$&(Sw?^SqR=$7e3Fv>9Al29-VUe%1OU3F{R6i2`qWL%MP6)Gv_?_APUsG63|bDBc}
      z&aJd5VVr@9D6ZpX1UDFZTZNjll5q<Y)ULHxuk+NQV|<%{OpH30kdZ`+K_YSMn&F<V
      z_@cbSD<TtLmoP~cw<X+RfX8`S#$DW_K?a;pF+I%N^eE2Ac;InqU&<Csc?pjg;(jr;
      z<~l+xbJd$^O7-WNQU%>q%T{@<F7_v57(vEciXqySUCr=j+7f%TPtj^?I(-xIvk*^h
      zR>mT7q?W)<wI{Jn+A-wuEP|yII~c@dJjXn}AgrJ?&Aeo}c7-qL-o9Nr=YN^>=wgiO
      zhv<i+_Ib-nXNc~!>vTrRDv;NU4JHl{OSJ!lyb)5mN*iINr}PcV7YenZkIpXtnHhws
      zsRNinKl$V!mFz*Xhz5oTJxup7StEXd_mtO0o?=qzYT)um$Vp|4E+5dD_=;-{#6Mv=
      zsr2}<{-kpI5R`6UDgfR0L7hJ^vY|XYz~kR7R>QueIVhONC>DrYmcATTsFfbWfuMGi
      sA+f+Lo)9;NIm!rHFzwrblxSd~fv2A-FVNgU5n%b4R_RD<!AC9s152wFfdBvi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pg%RwPOq|r77Q#mO_)X!h%Y02to>|NJvqOlq&a4x|pq8JF?eN`>*IF
      zAP)QheiZ7gZPlT0;4-^2^Y*>Bv-|7!kDmZuV8=p*u;quTcPysD8%Yr+o;*@IiW6^N
      zXf>7Z&a~XiDi&&l<{a=-98F}b&+_&lolK%w6Bgg7Q0cdXYO6gY)ZRx&(m@q<7YkS<
      zEcI0=_tTS+j1R>qkc5?fG#0^7#LDDFv8KPMgwXE)r@bzro=DwG4&^DkXtes7)j)*4
      zH_)*P{jRa&?46F~M5`!FEUXYVO4P?7kiH0dv7esEP+tNatYXbVgK(n+o4L5SjXMNu
      zDuPrVd?sxEOLWeMIn;GPxaZ<N9uRDHJT#}T7(N&s%dyT3SDD?6sFW^l!}s;e`>wXy
      ze?yGahKncIWGMz0Qh#C#EeFrgvam&1E~WCGi#D3fprc%xr#Ohxcq~6C^L&k~Kjpb0
      zz&eXp`JaI!nWyJyapv(#ye@RU!9M3r1rA5k26l0cqniVGz0MiW9ZQT_=6#K`n;A`y
      zD;2KPJKNuJYlgcem6J7I!N%*1ZY>8EbbJI4@ra2CkJ034T)oV4!0ybjKEu<mT$?x6
      Noik=%8tY`J?F&k|zOn!S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IvKmwPOq|r5Em`1xhXz79hbx5K;t1LW)|XRC(W|i`mMxBYPdSf7QMO
      z!~-9|M<Hfyt4=8oyv***oIU5v?*97y<0pU@*s)L{wEQsjj>J@WBPqhflZQ%2apLU>
      zt)}url#T+qo7F7T2#q=D=Qx_kSfA$YK{}a4u_i3ORiV=F2-Rk5NT|J!4yA)C>Mj<r
      zNLcEtQ0}G2BN-nEW+$xlqp=8vB333ZiZ%UJC4^4@zYTT?^+f7kav)FG$6B+WnGHnf
      zdjlP-(C->U&hE)rPPB@`#KH<;t3-VY0_lsO7yIe44D|)j!7A1*tPz$=aDF!~HgKC@
      zO+}E({V#;=f62}{$&Ym%5bnCThx-JZT@TIqzfA9sj^tQprmM_vE~=C-CgPd>a^}@$
      z>ng-ZZMk@iCoIL_Lh3TM&~mViriEvhCe3>;T4*qXj&f<f$w8FHWBE~;N8GsjW1btg
      z*kt)C|2S|Y^949soO!$wuM6#Ou+Mo@fy2?XfmgW3(aiz8UgwN(151or=6#K`n;A`y
      zD;2KP+nw*YHN%~f%E=n9VdG6kx1IwFIzEC2c*sPAM`&;~u3lz2V7F)3oZ;yi*XE6N
      N=Zx7G#@ZRG^9N1R!k+*D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Ph4ZwPOq|r48SZmKGeh!U7~X1R+JJm5`zqDOK*9baA(G?Z{q7?Z0X-
      z0de35@S_m3YpV{F1DDyInK$pf{rLIo`wsxGuw$Xd;DvD>obV|RMuNv#AdaL;(k$5L
      zN>0UIlyJ3cN){Rn?K$M<G?|E0ofqvvKA9w`Vpx1HW2rtc)V<D-q46;}5)SHUx>&#>
      z!%|<yVn06}iS&?<BEhiIPsThN@>J@)EH>1!%ozOs|N84PG&7-k*`YWi8*5(Qc#U`*
      z1_PDKIP7Xa&hFV*Oq5LG%)$!8MuqwmMIz);FAeik5vwbpgH^OFtdaK$Y;MNIUEE`^
      zraa2U!54<Df2qzHF;iU!3=dp9#3KfqJP-BwUzQI>Ct|FO<vP*pTdKs%^U#UI>cp#F
      z=Q>17ZMb-bO_CyTDfK6|)N=3~o`n|-%av5obJ0PY7*tY7(>)H7JROTYsb8>l?YF$t
      z3|J@iI(;@!Wcv9jT9gH}GFlh>udpv^Q-ecMw}CgfLD4M$wBDqQ;TDz%wM_d4Ww#AY
      zk192)H2v*wxHH53ipnvKx3KZf(6tI+Nk=1ij3-3I@Dy!|+SO~51GYcI`V3naRGT-}
      Noik=%8S@Ql`!_chz@Y#D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pg%RwPOtZAT8gJ7HFLmVF3~xf{-Fqq)JhXlq&a4x)@ik9j(_<`B!iW
      zhyy=>ABC883^s)Wm)V_}x9`2#-S0oXegp6Xk1W&(J3*ZJr(!1ju@rIY%ac$iD)kSA
      z4rlTp*86$ELW9t*;NGfaDwY1QXb-dLG*Ozc{4$I~{fbccIwL~kb#fvd)X{XYgk{3Y
      zAdKZ<b~cvkSd1e{SRW)45sicjO<oim`hA!Zyutsu>k*o%)cy2Wp0kM!Z;(5UL>%}-
      zt-?6y88^=U`9w~2n8c}tb;5RuI*1|}h^ViE>`d~|zkm)}*tD=gSgU|zEd!}sT*GyO
      zH4{-LkKPe>|D{{8!nbM8^&Ajxy10eg1e<-248aB4N8?jD(Yft93z&N<4HPr+)Im9Q
      z%j^6NF;d$u?&ASVF}RTW6I*CG*nwwZm#|t&EqX3GXfuOO7Seo|!z5D^`6e`P*t+mr
      z9-H&nV(mJAHE<;J{2VRLd|rvyrS50gpLkP)!_l;XXSl@CT>yB!%o*VdRv5L)`vzxg
      zIZdA{HLf(fdtY#MjvFPFlQ*8j#*3V8a{(;q_z3RcE)x;%q0P~_dYb2e-JN4=j)xz)
      QRyEeE7_)yH>*lDvpXe^X?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pg%RwPOtZpef&wmO_&hVF3~xf{-FqBqXavN|pO2UEHl)JF?eN`B!iW
      zhyy=>ABC8;tvVDATxNG>-oE#Cc7Oi*{sX`>Jh4zC>;_Thor;<8#!^J7Cy$kmlhiv9
      zTFs;%N5OtxvCts27l0p<cq$Y9sb~+g=`>C>VfnR+lzu~~ce*1&<86E_9n{fuv4my9
      zimxJhke!WXawNu~B&_@KM1&)eD3h1PhCWd#q3i#ry*{CtN<B!A<T<-&b^P3FD5Ag{
      z>O@6B-`H{X&nI%KRUD-j)(P7c>U|i>K!k%N$j)S>FMtj<uxX)1xK@G9TwL71O@cKO
      zVI~hh5_bM2y5Pec>N_CZc5w%H2{t<(nbVgHAC6DuMCXR<%x*?hNtd_b`v%p0H#*(F
      zAx3K3#Y60{6oX5tKe45jgU9Gt*d?r1Qbo^27j0(HaUso99L8BPk?)jwzSiZR^3)Ju
      zi^c2w&%lw)({r>q^LQm*mwI1ef8k9H4oA}lUf>Exw*c^Zl{20@Rv5L)`vzxgIn978
      zHLf&!d*5(<j$0L#lQ&+%#;crevjCQKd<6G!pNR+$(B^1dJ<oH%?#;0^$D_|&TQt^R
      MFlJvE>*c7u-yq$-o&W#<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pg%RwPOtZpbg)UmKGcrVF3~xf{-FqB&4WCN|pO2UEHl)JF?eN`B!iW
      zhyy=>ABC8;qsCAUTxNG>-oE#Cc7Oi*{sX`>Jh4zCcww9er(!CCkrZ(j$YZ6GGz$)d
      zR#Q1RNm9LElq@s|?F#ZknoMM>Kb7r4KAA9<u>4xZO1~l0z0Q!(c$*wc2X!=EEMb|j
      z(pRxO$j?SHJrbix64v|4SVTjSDwEHP4Sk|Ag5UpNe_cW|le(83$#b@`>Gcb*k%+@!
      zpi>oxUE{~uKOf79R!N*$SSM^RQ17Eih9c^vVSXlKeF1c^ftH0$_PziYlW}naHwo5M
      zM7cctNZ9?CYSoCDXV(GYwu?KsOR(AV&>a8E^5N)Ij&)(V&h%zV74h;ueB*F&;|;HK
      z8DgZiT|C4NOEGvZ^(S_&<=_!K3y%q_3#qc_qJuUw=%gGa&vB6C=~%u~<^@}qe#=wC
      zfGt+9^JfD`GSAP^;w<2mcwO?p!v4aW8XS(M4ZOe=j&2Fy^(tqCYgl2_D(@Sdtravq
      zuGF~F^!L8u`V6-gR8G-&2^+5px>gCC)A149!+j<qJV2YHarL~&0o$KpYlhv=T&o)E
      NR*cyf#{2@c_Zvyx!6N_w
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%St0b6g@YI>DXq*_hX!w4}=)OMg?6&1Q{X>1RaQEUmc5{lD0ckSBw6YvvI(M
      zxb~yOTb(9}<7PJZ*12^!=iI92mxo6HJ6Ly6Agl*b>RpO!;rUWTi6<|ViFM+&jaE_6
      z%#ec;VP%B$OUFH_&29g>o%VXMHiYt_ij+Ab6l<FuLg`0*Azc(PUd0&7gvpkQ<Y{{4
      zOMNc<P!eWZaaV*Lp_Rq?uw;I#gs{>2k7y0Tcp}YlaxQN;!F;Wi#SBFh<SR666t{WP
      zl|7^4C~+`DSR1l_hM^2Zc&vl;N=9ZtbU~P_Vjc^G3R`qUm~!Gb4rl(Q?3&D>cr8M^
      z&rrDkf;M0<3^-TYd{41fU#j?uZ*0Zn-0Cei_j0g8nEKa+H*CkL?#dHopLKfl_qHt=
      ztL#zae+O5x-@(;k<Z&nNWA(qN{NY0ZE?0XE>|ugywNK#wff3;&CYd$G=MtmoOy-Cu
      z1)h}aTlbh9>bTi-pA8Q(t%W`-*Rno~SYj2zCoFTdk#;i-RO<Km{Dkj!JR42b7)ezb
      Jq*~2bYp>nGpKSmD
      
      literal 0
      HcmV?d00001
      
      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
      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%0D#rxESiQ%ZH3lZZU
      OPp5DSK47FWeE2Vv*bbZk
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Ph4E+I0hUObQfeOUqZ%Vys@c81bRjh)O0P1x2bjZQR9d<=V)05WfhC
      z8(gRa0&(U?A;xQ~Nz`)Svg>)CdGqGY{{HjrCxC6(8fpwq7>}Jp{+>G{!Q;#kagZE{
      z)Y*x6mc0~dCbOI{u`41G@?2<WFsx1$oRPyY_dv!nf5=ep_J$0N9pW@l$9xM-%rPwb
      zG8X;u(MY7P_$U$#mY)PX8uC;YaRoN=w=!ec_Wx6)%djBhEa!19Ni)NvuCF9VJPw@~
      zqeBtoZi$prd*#$_ZwCDEE)`iOli1bJCeafL<&K664CVwJ<f)894NDA5QwDh_G&(LZ
      zK*utJ9*SI%80g??;mS1z|DP&P>sCnF(S3b-xZY65DuebWN&EbWwsw6+YH5K16B{ku
      zz)i{|K}9A*r(3x&-GU5FqJur<X`t3MnY;3nmYs}qs-N+&GL|N$dNnaadrGf@XkW%4
      z8K;4GDvQUkqR=y5*1e)D)<M1K4Ffg$q6bB%Mv+4|8I0!UG4wC$w?Sv|8*s5eXRA!0
      z`y53LoW~*|Me!%hQw(@pzhL%l%le4+cXak`>!Nj;9plPp+cHlutHR0*(^_f#z}kM@
      z{)+WMkxN816wNni-@s#1xk~~(EaMs0um>AH?&CS0&|L`IESp!tNCs}<wi4^%4!XqF
      PB$giK)d}5F{CEEX3P$ks
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc@~6#j;8+0s@h<z`VUf|r&e^#WBXQn7#`Ry5W$L7%qmq%2u>$?jCppW+`d
      z@kw7GNHjkC8~iQm+1a+VAUyaovvX$7Ip1YwfBydZ9l&ioQPIUPQ#0%7P3^6gE_2Ov
      z(%h_ARc@#AmSOOU&@J-?w;kOPw859S!E2h}DinrzTh>3$Fm%uBrY;s3e2HX<LCI6$
      zAbjWv!;fx;zJhM@wfa_>+pn~;!5N|jtD+et&DPy@BdCZC-C@WS{s(E6A*7p*&`hBd
      zaE4r>AaNU-SxY}JZxY9>7xDNnd;GJ>j^OUL%^iot$g1dP7;2-w+}aCb07EJU86wA9
      zgfWZ}hCq#ryrDTnXCTq&Ac4qWHh>t3W%8XMBDmnHbdjNOD&Uh8WTYr;-K=HboaE`c
      z5VDNwsuZLm1wW3I1oK&S!7$h%KtmOVpzEow8Txxl@4)79IN9~I$T7W3Dy~vjiKi}f
      zqwNNUFoEk~+(3dP)CIRSVc87BO$p`k)kd5gnrznbS`-C2zr{@vz!b65s?`vtaZ5#-
      zZroA7W`QuhjXQK*O}^{O&}`DKb`VL-xc<yC%$@DeS#AVz4-Zt_Z^GzMB#b$b8NE9;
      zF>X;{h&B2h<Caa9TviXmSU`?J-O!vhNq`>TYhokbZIfaBZDx3W(T$)BcXT6s)U9QH
      zr?6yx(W=`OzM{L2b^Od<#I!3cu7CumzYS<)?yIL!rB#|{Mzeo%AAv9Q(S;z5?ly>b
      zh{mvYfaY_wQqYS&inz&TI_DOR93rxwO6?&UJ<s+r`k7*0ol!ag<S6SAHC;px9#hRc
      z)ym1*V_trvHdVqU#AUw-E@O<UC<J}H(eD%GyY(_tKQM8CYvj5ABgSINA(HD;(UkHH
      z1M9w+{{S}`iu<^`hm5<LXZY~v*Act8M88T1o)Vj97{MA6G^c1ii<c7Fg4d~qEJF+y
      fC9;gf*yZ9NHgU-yBhf09nId*e#Fb%Ls<84GxHose
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=YflqV5IwgKw$v5c%0r<*QPH*w6nskyCe)BLR?uLY;3HvMHgrkdV!Ktp_(SxQ
      zKY$OKNJ%s?`qdw0Ja>1Yg(jxy?#!LJbLO0x{qy(xPXLQ}pui_ExofpDd-_{FQ#N#~
      znK7(NeaC2I@^#BL-rEWS0ud)()2-diMtRSu*aE?(t=on`tk{Wd+6~j%%?bo6daWiP
      z3IcsO(=zQ9fstfyW+7E#a-Mi$_;FrEKL!N+$yBKyL{$+)pR{5s6odo@i>76)w_cZx
      z#xuQKbKvX5D(MYV`rcu{u9{7OMDhRB*l5Ty-fg->6q<Rb?NC*3R%KI8D}^xPm{c%v
      zN(Pszic1(1@Kq}$YP@ObHNp;e6Lsavrk=|xS5zc0O<n4zb@P%ag<aLDZOE>>^#z8K
      zsb1L>qy<LL>b}}CYaCn%vlPmkUgCu_rsXhFn3wWq&h+PvELD;jiz;s5CaLKA`-Zh6
      zFxO4xIJKuA4>%jbZ2@IAA&2iE-j((43B;3yUKX8OOH|~Q#Lua?j-)_%v)*b{j5SkE
      zSoNsPOTL)qHu$-{KK{5Ij>XmBJHUTG!i=AzwZ*v18%!TTO>2iV;)jTS<&h5;_>4Ih
      zmiWx^+A;>Pf+3zK+-n%d2t5|SC}D(ST_li?Hiz!Pyrl1AEFMvEk*V=&`Wpt@7~ej2
      zqT9Lg1ID{CSBa2E1P@td&A}XTYj~J`)}JC0RgvrBA$?$uB&2D-AwD7KKhS<bJeGj7
      z4(R2Nh|r7Di+)BhaNzF%k2y*`;zv{@*>#eA!gYL#G~XT4+6ie5S20820ZiZ;g^;8<
      z8LyQMHX;R?`GM3{OgqAyOM4-9tBnQOLmPKu_i4A0{c^(IRk7p%s%`-fP*8uV(aJxm
      CC*<`2
      
      literal 0
      HcmV?d00001
      
      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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
      DMdynZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8B16una_g-VNnR1iNvPzn`RO!Nh#sU%=Sg@hV>@WD*CLmAx8n%!yD_~3)T
      z$R`sY`~m(b<DHpx+qAnG<HPLE%$;-Q+%xz7`u*c40PMiS9ApSo+M?@R&>nS~jEc}<
      z!u4A$aB6Mg2VArpE){|W4M`=-L6*R33SjUcf$=9?aQT$LSb5`=Kz0vF^DqXJQ*a5!
      z2~5|yU`O3flLfD6(_;i?>%L39QyOr!jyALMoQDLq>M55dsoW)SrNiX8->Qioa!T$C
      z0`uj%&eEfz?KGrHZC5GFo1;gxqcx12Ay5i2ckaF%p<GX(Oul5&^=KHHJ7x^sK4)I5
      z>bfk%{3g%T%EYJj*%KD}Ue`#U^P3mUl{JA#A$gS0<D}bDY&tdsEuHa1MAss)lICj+
      z!1Uh-yu&5$u^|D4IADYqderN(YG}+Quwd?~1_Avv1bvaDeZ+dJIQ4!-s`&T%{uVtZ
      z+VZ@wV=2~|BxOS58%z=?aM5BP`#=*qP@$a1L)o9{<9X5bJYy8rbEr$|gq^VfTL^1u
      z-0Wb;_%IM!EB{k!8IDgh#sq%z4Zj<>Y@e%6Sxl<>ZDk)U10t}y0cLPur{Ow>GY9`f
      z?QDLBiElW`Kpwv;4DcK-<9Es&z<&W(07aO_9R+@bBZGqs0}nK?WP&je+YfJ7#IrCL
      zQ9Q$y(ltVHs413BaDd`!L}AF(?eliBV=Gw+X%*QudvcAG<o+sKfJIw!udRBn!;;o>
      z!=Bum6tbJKQ@5hzZtF5oFIU5n#W7<0TTQlUf&;d%#AJ6OG6G7Ydb?FSt@|IeYxbvT
      zYueE|yBn#!XQy~)p;(VwrK0>w^32y1rcFrfS=kN@6M-9c;D<!urajxwDcM#c!|uaY
      dRJ*CY{UwEB8>>Ot<JjeYO^{FE0fIBI^9KhRYhVBX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+j7%L6zqvFGPVHc!o|R{VSx~nfPr1u#R`EXgkUf+U@BFCC)rFHfg`)5F_--m
      zet_5Ig;b!H;+f(f_!FRKWG8kKwu%=?bLN~reR^8+>Fc`>0M6pRg&~1c4Zl-(;y!Z=
      zHR<|cLHhO9BN-HKyX`wN2)$4-BCpA&Y`98VhzlI<OW!6(AUWgto|+YiP3D&b;&Vhy
      zBZeI|5=aW{E_=RQ?5xyeaNn&prNBtJRd<_9Zs6&4HyBrsy-=V~{wa!%K*sY!<@(Aa
      zV}Z+)Wka~>`i(-R_C(f|6Gftl=c9?8{6O$UJCI@MwS33Iu)v<andjH{(ip`a3u6M=
      z%`I%~#Xf;lL#nx^8*+}($!-Tj!~~rba#YEe&(p}_pqA&5K>3G+w~k;URTX%C!+E%M
      zPAz|?)qGSkg4B)Do0(FuSgWH1#s&oFsv?lqhv~UZ?;n;AaEoTx+Vw|~O?od`I3}>u
      z@aZV8sXdp$QB2r4fl1ovseD<LBsSbr&SWv<WN;GG7N!QuxnbiJPE&PH$-q^uKw$4c
      zZK)e4z!{vgaF*8F=-=D5@jL#YZ+-bf%hE&WSKq<~?wHbOs;Z*dR-~^|_=|$JJ4%mI
      zwBcZeYuZ3yVw;2Q_e9s6X`IKb_QGX>;x;9H^8Vk+r|~!DEL`o4IH10bYnT_<^*o?d
      z>)Zu$-F};fa`H=Bu>~79P!g~nyWye{hky73Dy3ewX^!DOW|24OKAL;OeX$j{t^fZG
      z&3We9fMl_5Ky%8yv(TIL0c}`qb%MIQ?&<sD;P%(kX^o2`U=6Q0@G10-!>7enfp5Wg
      z;^Zn)Z}>5UG@p7Klsv<y9VPI+ldCv(VK*bXxW+sUnthM#^3>E@jEw9Tt2pp4V-d~)
      zW&lN2Icz$E9k@iySz;9p_IOm^#U>Jd!C})ci(fHLlsKvX*6sI&+)~7=On=1DVj`DV
      z!*PK%<mrjzYn;g?*HGZMm5aZ}`Q_=6KNJ69bUBu@s>|_QB4@4P;t;B<xbzlRbn<n9
      zSKmHwj6FeupbL_i#~2o{4<(Ygi9Bx6I5)YofJIac^?MPOb?O!F-!jxIW{4q86lIR1
      hC90Tl;zTatHZc;!cNo3H$T*JSF7qr_-(xN*eg`Rynoj@#
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~S#uOs7(F+cq$iUmWH%U)u!vcJ5tWE05=ltR-~`ZwU~o&%bZ64g=^lECL{vn@
      z^37-Y0imqofkgr(RqB(e;>};7Rle~9)N{K#lNqKg=Arxcz2}~9JKr~t{`vVA0Eh6c
      zf*OIH1v^Ne*Os+(&d_WxZP<B7H{A58+<7DKXLJP#f#wikX?7vr7ihG#B_m_&X5R1w
      z+Oi=c@J%Z{sd<Z2T5(9A#?%E`qoeThwC|dBfhTnrEY0J+ma@Y!xy7@#y?h(4Z#uSj
      z-1M}ZWspXk6G#r{Ez>srqXM<PeX|0IG5VT93)&R43T)kUGbB^djt+rN-SAA;(2s4<
      zPWzf4&^k%ZH9+7Q6^&38Y@<U}aiq|NZWY_nBv3ybnwNK;Q&ER{+RU1^aWYuS8Sad9
      zRR-+jHEULLP5B*fw)a*=+Bcg*ExIMyUKI^UF&=->q+h$TPbmtslr+6FcHkMhyx*rn
      zL6V!k6Qx+7y|=H-Vx0IS4zO~=L3pvp)S1YHj7Y(Y0$rQgD`jfjbsaZ_G`eLPURLo6
      z4l{2B!xz|B9#SNip>mt?mV#F|(i&<YWBW$IAn71pQ}H?&i?Xa)fpKbqrRvR;Q^eRI
      zS>iWT9F^5nOz)WMYAbT@O%=y5N`2CyF=wgh*oN)TtQ1*=wu<;8Z8hLHCKQZU_%rG_
      z7L~8!t*`<!bEn4@WGITwbVS)34NQxjk;K~qYA(7JdoqbBsgRQb9py=hvn~rgh|?<G
      z!Mn0>wm&Q54fU5vVG=Vc&VX{R*NR2Mrr5VvrlG<<lQD_+RP<w@0q0~q?+Y|-Iy<`J
      z8%ca9(2(OQbg%&*OWb@#hfFUzuAf9sAmzzrj2y&767)^F8E+Nj<;4mkS;sCUah^sj
      zu40@eaZ43OCM-vz5r;+=<T6HHlt{N?t{is)c1sczR-+!SL#(XwvWibIz{<1ACpmRe
      zSixllpH|$DawG-y+0&&N7e;FO3l&%JC2LU(X!=Nb`C<W=wbB2poFgso1U4z+QCO~Z
      zO1vh|qtvt$xOrp3lw)E`M3&JH%GzNU+qjl<If0ZMEL_#do(|uf4M20398&zQ<L(wT
      z5x<pRBgDyHcdJ-K^K~eR8%WgNMdw3w&E3bdcd_F(k87}#&r}E=K{FenC*0+O!j;A)
      z*#yreU8?^+cJ~k5!=BB%O`&@y=wOz^YAU?n8KLn!_DLf0OIJCp@d7$x&coq1(AfVI
      zde>2xxLJFX(8!^B9)f+*!>1aq8)Gsd1s+oj#S|@);&*z-*A3LQ?!WZ}(QFw}ONr><
      zMzX}e^qxr;+8uOWM=N>utfTQE(#+JMUnBO!?K{{ZPuB3#Zy3xDtRq?b07tUX-tZ52
      z9IZyC_TRzSD!~siIoEpPKC%OAIJJi9HJrUCJ^YJ+xf0-mYQQ=HAC&-FHDHy1d<mde
      z1FjLUPy(3M0G)sfC4gNG7$cy#is2{<uNtsBJc(is9^lfGh&Wv`_QX6BwT92nZpvl>
      z+gK!xa>!F?I(A@zbuI8O#pIuf#hGqXb`Awq<nBd&x%dtqzK4$=5#Sb<@reEZ2QJ}n
      xHvVJwy^71CjeULqS40+9#XP<W3*QqJH!l2u7{pbc2=f1luS4+*d=pCM+JDt1BEkRw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8B16g|^!*|M!rT2LuU0l!*Wsh~bB(FX)IX_Ta<3Gu~knbaZ6F4>)en)sje
      z1rm+^0DqM6&g`b2;)5@9XYS0s=iGDe{QCXvCxA_CnMg1^?0UWWk#p+Q+uZTOI`=yM
      zArI>NfjAaYobr7hgd&vW=g+vyyN={042I>QpufCfnA#SekWUzr<w}de*rB`@l9<jS
      zg(-&FhVb~S-f^1;Z=ANv8S)Lk<G3v+5b7K|4f$S#438WCLDXi*2rrb5Ck63lcv@~~
      z+OFeu>#y5Kyd&+%6IH((Rc}{DoF7gC9)`mAY!h<~3qzIf_U|kduwY`IAvX?@#Z_Em
      zNO!s1ah;H=DU@RbO+-8GG!{uKkDsYbOIh5&O^T6zQwGB8GR%*}L|)rM4kab%3Pa=4
      z;wH=0o;b(bNljG4GQNBGQj6Eoy&12H#7+7=NyJ9PiWOwARQrYFicb_i!Y!(I67@3A
      zSZ`Vu%2+p1p@|u8MTDG16*Zc!vp`5bXb(d%mM6~EZ=9{CQ+_-lnsY-GB9^2BwPc`!
      z)%1HohwlkBu&e+2B^!zxRzWh+e*>*d4L+?Vo$6#6+0^<4(qCzlfJLji2DXr)H5)x3
      zdxcI0W-v=075om<I%)AcatGDwIr91I#t#$@lC&>2FR=WDUPT#a^h=vEZqpbl3#>%Z
      zab}=MG}km*5w~!gA`RTZ-5BjNF-uWYY0*%4wb~FK?KR#x?hT5_Q#i0kw4Y;%>@r?x
      j*hf*CK5Pm1v7up0nm|H<kTPqUUP)6i=>7ru6WII%-83nO
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT~`}b6x|oF8Df9}h0ucS)HXJuKw7m_lWL{3v{VX}AQoG&lgT9vPG(?cLhaHA
      z{Ym;j*V4880sbhL=gt=)xs$3d^Ks{#z0cm~<m9ivfBzG}O}HuaFwE4gW^rFT(u!5C
      zS#FVAx?ST=ah)I7j%Qf)imq7}cPgId@f7+Pt|Vl%1~QzvV_1gwIYV#0u*uN3NT_M_
      zqCbOoaE4)M#jyBlvr*;FhE_E>!^n!QYv!ir7~(xV?DO^vmtk%tfmB*%nc-}MdwX_m
      z**YRn&#*0qvHXg!)6}ebvEn(Ttz6jb$1p}y7@?GwudiK?H!?VfF%n=mJ<1M}4ZHZ1
      zGCj)YTBDpomLc1c=)>M?8YX$D;5?~nFQlZVF^)-L!;pA-FN2G?M22Yx2i&SL%*yKQ
      zC_UsTE4a+ilP?IUD;ZoxjzRJ4Kp(@oe4!(?oW?a2Qphum`lX*1mBBQI7*Yp9r%A@8
      z0|~2I!|zhNT5@~brRgyACmo(&lW6Izr?9Eu2E&9LrKBqOkb%uH^y{YPx<MhsLG+Tr
      z&Dw&lbJtZcPl`H@ODZMqim)JY$Ol>Hu5C8OWGE;x47VMMq*1%N&vkFvB1p?K!ZDhc
      zNlKW`wE&<-bEbfP3u6*Q!K8%e)cwmzlOAJ{-PD?f;TcE#RBZ|t8P3bUmDId~2Q(=K
      zq8o@~0!IdpG_%PU+-PVff^rrdM|*vWf#H!%eaA$+RfF*3ONNU{L?zYYuc+@&sPE4e
      ztkG?oVNeqlEuPH4pvkSew|7$cWUQ>Scm*3|Z<m08l)B;5RJf<$8=C&;O*Cr2uxk8=
      z6TTqyp$L5*h0>b{O__%4`CndyFFxW9g;`D04BDySC9Oi&-x}+Dmpin6xdNI48gH?o
      z;zI#>COD&vz_<7#!`1x1^4uWcw%lMJeJ{3<*|vOw8q1v<Bw9W+PX^W6OM6Sf0Tno_
      zo3=|^B3-eYj?R}1vDhz2m-L*N8mORj`a1%xVTgYQdQZ_)k?u^KOuvEhD?RieO;_<5
      zxPf=+nh65vK0t54Acp8fByXUP;(@8(aP|+3Z;ed6!G-I`m>N;(a*X$n@xcjZ+K;`3
      zNzD7W<3VnWJB90*@wsL(7c$g|L6n_~7>W_YO=6hoPF12UUG}Ne03@c$;iHf$=aUK%
      zAIGHCkW`IGZ?%)krQO9Pe9^+E#(Zkbr{Xp-3%*Zc8`nY`vk~8?A)lP)KK%ndXmKzb
      z(_~|sGVX*9ZiQlE@Xxw}FBACV77a4+Ebfv{p<yA}vwM+e_rpfX#jKKNYb|`Oo-Ktv
      zQt>eK>=BkjS%)O6uXQjUM|>;MV64)EoU}rNvEh?W2OzP7IXsOA<ExM~=gSpSxSmX3
      z`49BZh<@vT(0`pgF`HeRx=l^p@d<<9Tx(OGg?hJ=!N2VaUL|n-E#NQWeRG@UMy!^8
      zn)Q)w$$qFq!JZEn?4AC&H#>5W?<625fi$EbFXbSb1muuF94SaO*(<%PS4ZU4s|2rj
      w*oa-!!x`_`3wr_hzI>{GB=DaSz#H^~6}DS)`L;y<&m{jBiF}4b0_uVD4`D){oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95IyT$>^g?Fp%-W=DW$YdQ{t98q(VqlkdQ)!FbWi&oOBh85*w{IMg1&Z
      z3IvJ-k9-tj*0I_^6TyRLJma%x&d!W~{_1@Lu!;LRG=|ky&~@H=`<~O_UJyAvXoh=S
      zIM2dRE-O=Q^9~QBj`V0S?_(k-0W)N`{J@tF7*ckz&XC?FQWGhRS;!#EFkbTmzSHeA
      zxOnb0+MFR@3!7fM?g?MTNir?p_z^>~_Ma*%4CZ^`OYTZfNQNbQ)X5hLB`U?bfl1P*
      zI-uhm!$jPRwimP<R|-F98JK3!_qmAtFfcI7kZHEPC^B$?!BXgQ^3lXR7Ia+vljI<h
      zykp@K3Jkdxmrq6bjthCfuwvK#E><a?PU*PJFdZZNBYOFyR_#y8#1&lCu}u9uVcJ&e
      zEUaLabW_0{uS4yfvWHOTP((?`8pFbf2KU=!VI9}#;&E#kwuT6QeOmaC)GM_N*_cK!
      z6#g+B1|x=6gFU76x`hqgpkdiDjp>G6(d3VOwLN2MRm-XgG?d3dz(w2!9_hHtFhAmU
      z>JUw3V9l`z+FANP5L?<+igk({@{D|D?IVm2^rFEet3CsV$dR@B0P<%jVmOO&vg)uT
      ztC3$X<tH*n$nU1|Q|@j$KjS9R`A?WriN!-Kxv9^vGdQU+M^%6xCh-Nc^c3)wrrSda
      zM{(VmK6g@=s-T?6-8fe8kT6PtQ6lzDZGhd3^WRC~j{!F0n9WGoG~A@~8gAh>d6RC&
      Ja0mBb{01|Q1dRXy
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TT@$A7+pK0oRDl9K$=PsTM=n4K&+)yrL7kP!A1&&28-8|WVfV-6FlbxeRFg=
      zj-zj0Ui#3{aU91-X9T7?<M`}9@Xx4g?{f$#ZN`V3eL3H^zO}x~$zT8c_6LA7xM3k8
      zFnH5x<Zs#AcD|%+$IC0HT(2lMf3;rsEkp%+%*&eX+{|Ao-BM*=z}m81<@laJZ^686
      z_|;l|#kb4vPYWbmy3W?rCQSq~g*E|HVBzIMQ+itEhO2?O^L*R&RYgFo3v^znI#vIY
      zKu0=L6o}4{VH_Rkk&x)N&?k^Q#3PPg^mIYsn8XouS~xCnx(yR8bwocxCUK+!-xCsD
      zh-s9^BrL=jrcia%Vq>$U+*P|&Qv!X3dfBcOZMUk=;bqj{s4_c4?X>G))El!am6?rd
      zjWWm5?Q9>&Q>GZl2u3YD)n3wJCy6I8taFl<$RNucZZ*6OfzfnOz?Sk(XCAzwy+&jK
      zlvB|#6B2nm&GS}$OQ1jfP@i~(PQEJGp0637m6$}gK-^WE^=)&_6!@;atz3_p9B!L}
      zHMi<3cREwlrFd2%jzj{_<AMbyai~pI11E`#I%fBW8e+*+_9m;O*}Nd}BBsd3ykYOU
      zhUCi<GkAr(bVS>)y8@|wb*9S~!u#nsxy(tN!>a;Q|3|%LOqu{e9Ty~C(+rQ4Ysz-D
      ztb)Yr=H^Dt)Tq-iB$1QtS|pIlTo9!08F^PFR<yjBah`Q58u^;U61o#u!*vU9uy+rJ
      zW}lVBx~^-~Q6Kr*@GXhA@eT)a!}b<=XJ(Ki*}?p<@DJ0)ndPhaO1<Hh)m&8%NtbT;
      z2^~#9E;x>IXKJ?RDb7fuW$@UfMCQjSiin<C?jm~b%*shLD~r$7q9tda&!apQ=^?nD
      z%I+bV{T;p6_wdLL`m@}pxPNqg2Ln48{KX&)@!3ZYu+&lZM-sC*i8(yZ8yVp6e2OQb
      z$A(WGW1U<gTu)?w#XxQsPjc<o`(2z~%jOv1F#0kXub>~R7{E1yo(d2`bYdY#8zu~6
      zO)VE`qqQWnI>0W*|HR0B;Bf<DlT@jNa<WPJOcQE8gi75H6_9@BfbLO~^g0ngz%jTj
      zsHrCEIZTC#xJ_%Fh)Lp{zk}Y~Jv=AC!yvPADI49v`D{)fck$95W`o^4tu6~3#2hx|
      z{FsIOgnU0`+}ljYXBfrj7{?bli!WPJHrY(sBo=YSq-?3l=rZ|eM#+%GGJ~zQ1`7m!
      z&5++v<hL!r`)Q+d2prKP9ZLO*Qgxq9{DhIQd*FW$i?KLvbmqnbefqS_{X7lc6u9&6
      z--kusCCYac`8~Vt2Mppz_7(wgmqLFwT(UuwrpSqq3nSxQyhm}}I1Zcqb?QrG6hRpk
      MuKFvK;!h#=A85^=KL7v#
      
      literal 0
      HcmV?d00001
      
      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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
      WO$5GRd|<t63U|#f(;Jq2<$nQwR-udl
      
      literal 0
      HcmV?d00001
      
      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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
      MsNh4gw&0)t1F(|!>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(y-ve06orpV)0BqNQhqjO!h*#LYzQV)kSb9Lru>*Rm2o5|fp=rz0eC2ceK7(l
      z9$5TI=iYNIo%8Ye_730_`yqM^hlOhSI(bQWDiT$5p|UC$nlE+P2pyu&Fr~3fRKai4
      zwa6NV@v9x*X^}jqQZQ`9$M+0FQm<6b(2pOi5|F}h5a0YBSv0y-#W^jUc?R9pu0rPd
      zzs!$aw@0Fb7oLNjU5`ZeBaglNxy@xlxy-A}RVi~V6vON%yT4-aB-?srV$5V!o0vz7
      zs@0jeE^X$~k}5i}!44Qq38q#cGK~coz&00RNZiE8F>>5;96N3kC-~;n`F9*=mga|D
      I^Y*a!1^a55?EnA(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fEZv6kVscDP=6BqIg4YDs4eV5Je~g6(N#TjH#A@Pp9Ri3~A4pnNta$;urXA
      zA{b5d1N;O(#<<T+0i`rN^mOl?wJ&S!J-_~Z{|R6U1p^_5>6&a>d;9~pDuPST60+*-
      z2-gyI(GXI3R>5`o!MgMmm&)eKcBFv_!`MZ6t3d&Vu4<io-Ue?7hIG+yRp+v1m6U7C
      zTAm?U7qX^y3tkXmh%MOCR*Tdm(~fVCWXlYZ6`DGMFiaD1Tw(}kvgIx?^q7burmbER
      z24WN`+EQ#Z8x`Tc;gz~Sl~d*QGIwq5w}KJ1YkLec#fylx3q+huDfU-RdH0fAJi{`v
      z@7hX~6n7QFNTyStO^tH%*>Zw7+%$0u0}RocQ0qGkqnT`{yjPVyQ6*45fk6x#7-AUg
      zK;;-}Vg#cMaoc+<o1UQhq~dlQcc~%QXJBBAA$4|zabyYLZ#j-}T3@hFJ@0)Jle(l~
      zd#jE2>Yy7BFl}IpVW7h-0bLUhF+)Xti5M2nxr2A@hj314J6n$9F+<4S(K<XaF^74g
      zsGQ?t>mv!zGNJ{>{MIgs)=A*jVyKwYlA2+-6ZlwSs+=e}O}8r6Y<+tD?bkD@r@=6(
      z7pCttgp@vDvQqkd{Rp*$zUTybTZGWKp4?Y-=f)3_%uO63_1Ooe=}jX-?<~D@lr)bd
      z^0-Wqp&$)?xI!Kkz*Q>Ge5;?V5ZTvoz18M7HP>xa?g%$tP8{L(M@)~W??iv#-c~rB
      zDQ!j4xl-Wez930H{iR9-pZEqViciQBJQlzoX*lIXDJKX~#n~W-QltN;o^qK)H_fm_
      zf-J*C0RwnOhf*L$&+!_o*rcDp8YKB1Ui`yTo$yqIULaOcICzRhpXU-)4Pp5&)FeP#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyZEF)j5Xb+Mr%SJwv`uV%thLX101rVFOc9E-A_m{2MChBcNtSd=vMGC;)_yFZ
      zwbU1W06&yCw<%GHB^<Z6GduH}ng8C;U*CTKc!83K1fks3!|+6$iLfPwjzX#1gN`(z
      z?8&~=HVSu*5f?}ArS*^^Y)=c{8|4vlN_XU!-Kb%W(p^HK?yB^J?uH{@jgZ+<TG_XR
      z#nR+)xk*U9<8FK;F&n@`KuDI#%^48#0n*42=ITnzPs4songh}5$+*y<EqYC1RBYcm
      zQ}$Rzglc_S|KoAFyLm0oKm0p|e{PhO4J(W#td;J<eU76{t=!DwJ`Zs=P@OCu64Fi-
      zpZk9t;0cxqo{IMRr}n~4b~uX_ta^AxSiYmt5jnsb)*0uzA-wsIdXsuidJbcWGY(=1
      zD^sQ+_>IBPwB^2vb<U5adLG{_R(Yx<|5>bCd^NmF@ZLj~*BQ3<*-r4+uUzw6y+ZD*
      zi<#p!?=oK^g;yN=nhC(tC>jeWu*G>OGL`tbhs9gwN3Ikzi`BwX;X&mRxym;@y1~;l
      b{=j_~Qe(`{U*O^xT*L-89e9gT32grcNo2mj
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyZA%+L5Xb+Mr%TRDw29i<YOPvp9-v2kQ9(;Vib65;O(X^1$R=6hO0p??8y`Ma
      zp%2s-{Q&(?rE?pJEvba#_IBoGelzpm{q_6iCxBNddq@x}T|ErX#f1o4Qs^j@x;^Mf
      z6Uv_KOKqcY-xzUy+K|>mim){;{9u$v$Sd8ESNl=J8l}60V%=5g3Ed4xzCA+bjnc}#
      zB`lODe^;7>)I09RM-npuJOqSfxzfymPzaDlhA>-KT7DSzThbhhR!_!-25r%63Zr8C
      z)|s+rDk9YC)A}Ee%iYasdHMd|Df~;LtZZ0eEMdKTAMRruW%eq~EFSU@7X#JFVu_G;
      zqWIkZlK{(DA$Te}=zp@;ZnBdZtYXc>Gs4O}jgH6x*0I4j*9~F!Kk7~DIq5lxCC)gA
      zA*@cBhTt~_L(`UrD%QC$mg;4EvRLD(l6<pRxA<sym*BmJEU!7X4%trd*ROu(xAqnJ
      z&n{+`*MiFok>Y!q!!{Fu#ZfdKpvV^Ip~O_;XC4c;%p<N8GfTDNV)0S+3-Z-(c>DuT
      c)3}5CF61?1cK!mF#^4g3W7C0OFe-tqKZN$a%K!iX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+invv5QhKBrrBh>+tSdMV<{~Kl15@x3Bg4w4vNyNC>I2UYbUW%qm5VcZs>C%
      zfl#^N0eC3H*eN0EL6NnV$DaS2@$dcp=jSf~M|kF=K#0eB8h;jFL_Cl}XR*}7bR<nI
      z6FHGO&*D}hvh0J*(qx*eRQo6ro-Y%%XKF%aXysiok%Vf;)k%aN$GzMrJ#G?8$4aaG
      z4PmQx^|;<A6kFU+01vAne1rtAR_|9pSPQX&5@EfgwCqkN18F{rLE;LfLy`1_Q8vEV
      zEas;wBOG;>^?vEX++(QancJP+BRDfEm%Ut=oUmWJ3HZronP$CT#vQ_nGh!9@@W97?
      z!p;qC%v2#BVu!EhDs|J=sY*shYIgn_m#+7%<g|vcyQD!v*`>Di$hNm1;)%7n`fqcw
      ze9%j$W++dTwR!WBQ!niEVvnE3;~$K0%f1h<JYM@K^IYNR1O*;IaQK72#&<+tIVxbC
      z=QXE%i6UNc?rSCh+p}zJpvn>JaGR;bV-s5!%r@&RGip?~55FNg$6XKqv4J~mBE<0m
      qGMXbJJi@L+KAt1ra%_=);~aZ*1@?}6c)tMi=P-W`J79SMPyYgd`Nw$x
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TXWk)7(MHo97W{frXeJ>C2eSYNvpO%1K5<NsRIF1V9KP^JfT=SiHa;2NiM?-
      z&-{q+19;(qThoEgz+0K&M=_jTskU+A;YHT2_FTU6ee1vf`TY+7SJ5(%5m?<1diDe7
      zkz?;kCx~nrw7aehZRyL74C2UcCNBnZ0yFxc?*#ky$9oTCI~FLm4?N!uWgsx$(w}>=
      z=i4nW_(HlZFN*6t)76K!U4iA+7`=pV+vV|7D^3*2F!s7ZblZ!ZJzo+jc1hG|`(EJ1
      zHw3cf%8o#8lV(j!W7fco!1Tc1rcV+JC7hx$S4Lha-Hqq8cVj2+MVe%H0s^NkOu!_b
      zw&k5(XHSNoDOrJ1tJ`+`9VhhEI^8TZv<VYgELvEAW#DCjxs$3lv4lk>an3>>1v-uo
      zJStbl<uIB%^C&1a72ZmD9IBsQWk-p<YQaF!z^cH)Ad-Ih%`ohSCN5%;kvgussahzo
      zHkSUFsmhKjY|X+YTxN{qV2I_U|3l+Zudr!3g%&VF+37x#EhmZ<_L_w&c#Wx*E5~89
      z<;5~|;%><9JwKrbYdhVqE0T2!uj37YeA|}}D_X+a7T$y<V0clp^DzEe?Y(26uErq0
      zFLjI;NcjI#Xnqya11BZql%F3P%{_H0tgB%xYD6<|Cvh8F2ATqA#^@v{3%Bqd11j$-
      zctOKi@VRmBQY~hAx7!Qba?4XAYNa>yvg&khneET=erJ(U1IM?Fngw8HLCrYVlUz;0
      z;<*>}|A62Vm@SDTOdZ0=eUDuB7tH;{%?#%GEbu6>ju-U~xZ=pC@LLp8UuUXM@KW_D
      zmhL~nna4OgKu>8q>&T(Odz!E)G%<Ju%lw_id0a^OI@HW?@6ykhJ4C7aD^{Li@+mHo
      zxBRExoUZ*f*s0bYV`U&#q73j6PU8+%@d?)OskS|zkfws9*O>@PS5WPjl1Q5rJzG0M
      z?cRXb)cE^MaCeB$?DLthS&HJj(vN1HYe6>?ith+lkI{Y3MmU--$zvj=n^i-dn!1*f
      z6cdu`Kay~`D+fdPVjs^dkm9fZ7ys61Ne>ysmnU-Y%AD+>@xzFRZ%)MDz`H5lPCevR
      zH%ANjb_kqL3djlE#0EtK@5e?;vc<C1U`*ALBpSbAGlS7`4ms1`X~v}EQ)wi`;eBjt
      KBOhq{AN~s`C0HT=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`yH3ME5S()!4o*VAKzM_o!3h$E0-7M22xu&tpim;)oXkbeMLJ*LyQmNpd;lMX
      zSlfvxP?To(_I77>ZtnZ%^9#Tk_DmQIP9(?fz<=@Gfcr9WxeP~7T)8~vLoRjVdLq$}
      zw_KYjG91mDzRqC`<x3%jzG5gitv*AsORN?OSg4_dGDE`?lHZMo0ay2a5OW6G8-;${
      z_mxQN$z@SLi-e)=&09Q`*<r9=mC(GWeWe)=omtR_bV_wv{R);z?<g4XP*<=*k|VCG
      zSi`!BCd2NG)j7U~4Qw)$vYlj*<7H;XzKq<SRzgOd|2L^4<qV-1_U8zs2lYl{74jRA
      z+Ekyu^dwz`1CU<&Pr#rPSxeER%B9RGm)h^Byk%{RV%i2yQKeYR2PoI6Vpv3jVhZjO
      pr9ruRY%kgN2UZLCqp-5pIV@acG|hZ;LPH>IVVj5;c8J2j?k_<vlVJb=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`yH3ME5S+`)!AS@h2+x3^!3h$E0-7M22r7%lD3s`IPT?ZQmd+RWE-C~CAHYW;
      z)^;Ka6s6g{z1^9eoBRIx`~q-}eFFssdl*fe5r5&1FL;zVA`0Rsp&Sv4v50iyxH8d?
      zp3nwL49AP6Z*mwz<w{0UUo#Z#&VZrRCsq?hEY(p)g`w%nNZd`vzEJnv4+Vqe#sLop
      zT*<VaUY7K;Oc=WEqQx_rJqGhtNi96hm1a1y=RqIRDb?!?s#qnxu|E=lu40WOCqmb-
      zflUJ~hW4D*Ilhi9Y%`Rzon(;hW@d&w8akd<G8*>&-=vOIGK69{SRjxd<i!&eh+CQ3
      z)R?{WG+l&4kY4&vpg<?GmZCwGLzz)7ci&Nc%i1Qzv<;l0MzNj`P;OAgu#6_f6x=7u
      o0_EC?wPINxSTEv_!pvG1FmajDwDQp@4S}$OT_R%GBZ>mrzlO_`kpKVy
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyZEF)j5Xb+Mr%SJw)+SA@54HBmCMkGTq=G5Fkru?*H<1W^w@H?CCAU{Ln-o8m
      zpcZ}M2k=9Qb9+Ulv4rFHc6MieGyj?U`Rn@+08dc!kRj|3^f>$=CL-)gp+}+Ay|^z;
      zD2FnV+K$4v(w@cr*Lo87gjKQjkR$BQiaJWe34Y|_PeddM<(A7d6nYT0tx<Z=Boq#n
      zR`w;KTARMEcL=#xT#=6~<^y;L2-#Y_GY7&#fIJF>#g@|YWE^#+c_+F<mx!w!c7#!h
      zeRY_#XKF-v+L~4Tb;(?0Nz04$I91|b7-ePK3S$YIwVROd6ED-OcZ#^pLME~57jcI*
      zr(N+`#JvFbu}1LJ=qNh3ADz6@d8}i@!$ZQ_4b`UT0Grq%<Xt(07yoJDbW^8KPLn<t
      z9K;aTXUO5Hw&Sts$zzo?yL!D}kCQ25gT-a}Pb1t)#>Be}?>!WGonz~m?F@hY#wEXd
      zUr_qwd=`0KaFNfD!vXs~X9BR2dSeM?wm1$IrV>BPs9rJOaHfP=*(<M<R~w&EYJA1r
      fZ+MW$U%2mFnv6O82VD6Bu3#HG4*ZBw8SMTBRfol{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixO;5r=5Qg6=U!|ZZDt?Q4kq=|_pa(I=Xz)bvfWgFDfen_FC0UC8E>A`e{s4cJ
      zake0s7{X<yv-`f!%xu5DKRyARU^fPXP-x46-Ep2ByCEFew}ou>T0+^v6I~(wzFi%7
      z-d&?3ntlvn!oe(kd1xd=FI?&RmxNF*Unhibm}?<~coGpr38{)JMRm|^2zBo?JV8iT
      zdQHcxJIdAd=rHU*xqZT6Wme<Kpe2I!qFi6pd`J0&{oFM3gI1|hzHVZXN0hv40!vtl
      zVVST!rQ^_)L<XybNYIFo$yI_^^c>l?Yrb-2yY#5{js^ln$j%soU<T5%Z0Q-clGwmD
      z50wirR;@QsO>yh$he}O$J<?sV2YzP$tKi5pA<8kvmCczrM+$E+U-`p;#Zg}a$4GEY
      z4h5X&xFXCW#ZjBD8D?;{is^;$JJKOc2v%@&ia5>!N@l1WQP_hutTTsriC^9oYc$U+
      ZGHuiNM?2@Pr9U)tOf$!{9rhc@{s8Ium0kb<
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TTc^F5dKatY$*%q3WygjEh=q6R=|qV(x?Pt6Q~c>8t`e`p43CyQ?q+2@u&E1
      z;<JfjG|?a6k222LEn;XJvf0bbnfd0M`DTCr`SA<DDhdWd4C@Wqv5%a0j$P%B^lUC`
      z?K*dD-sCMVm1jS%9`TwgN>4db2}g;xG!S7}yeM%eKwucIH670@IW5j$?fJEuj%?Uv
      z<qFxzF%0E}6so{5nd&`GR~RDO#3_z2Mobtm8N#V_Wf%-&CZZT(7~d0;mpZK~cV9Tw
      zreCOCbD9;$7257PBkGOt7_xg8aqrVK@iZkr-ahLke(Vax%gS*TLozi8^p%csbLmQ)
      z2wycZjcW|i23N&8!$K-OD6h+*o{QrKW(?e9m>a<RG}Oc_<``nadnr2}Cwv;zVGIeH
      zaog81h6O6_3!>@VHgQL17{c3Wy;bi=kV3{lnqg)@sh}GZOIRi#e*z4feRS(pve$E%
      zt{7NhxO9FgVz|c;5_R4Bnu&GXr>;~x*cgThn%eo4oaX*O6Wd_O_aXGUH>Hn@DABO|
      zzFZpkAaS~)602aYTFb<s;8S^Mh2rIQ$F1>Qp?7q;d+`6iwW9k%g0u<KUrM9V3r=4l
      z`Zf@w=P+5jWQXV-&wQhM=_^J*`!VD69P=}?h+u<a9})sE6-47QEV3vMR|u8SHG#=4
      z=10QUHA|TjOzkh9;Q9wlFIn?eGV=wa<h=DAi&1=nP0r{~+&u_ecKIM;CCh<DDXV1b
      z=yDLAjpB^gEa3xr>Sqfk3e@9ctl<fs(R&|HeV+3HgMU0r#QzcTi=v24<oqe*2_=NB
      EzkVDtj{pDw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4ZEMp|6n;*YHeHrE7i)c;b91^Rb&LHVf}MiOgh82TrNX|Y?Ona2P2~30v7a@V
      z6aC;1@JER!Nl{TkC2;ONC+9rRInTM@e|-H0pn--3gAfklNq7`}jKZ#n;&CYAUeXsT
      z6hko*u^xx7x<{g?--tt@_@A&~5;kWQ?dH`4L-q-4t%Cd<d#~Rlly_t-^;5!zH#6Js
      z5X=|crj0o)II!Rl<~+YM55ffpC6sMkgll1$usVa=!KJj^Oz8<rEg6gb$*3#T+o(Gf
      z1h<v+qG2aeGWDlHQ@@vELZhhFBK3ICQY?=5SQPtMNiEtsQcSyEIP|+TOEvvY1vgox
      zB-=&>w-`wFl{icXz3pHP>x7C<+FHqYK&X0tE8FTYiU(mHZQ3l)hJ(AfN3i60cl1G@
      zWWpURz(ZicC#)36mG|MGj{8iV^-g%~{Y&yck%M%D<qSmehKf|2&dyr3lZonymoi;Q
      z^{*GXozBSu@Fe`MiS^+9^UdJ9g$mnw_Fl7Z@VOj(h8@&DVKF$v;yIR1v(zeE7be?>
      zY#(vS4g)>GWscPHLO!ps#}K&61jOGpT%W@4GieH6tGhScl^l9CILDnY*eu~Uhn;0T
      XW8CL|VAp<O*RX}{3_D~r0}p-zJNf02
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g{)8-BK1<tKtVD0xJD5ZhRpq24X52lcq7LS;OPBos==#Su;B=zsm$-
      z@WCJ8k22obrM0AzW|P@_&zyVC+`04n&(B`~USh|E!?4>|!{93)@t`BPN&=y}aZl(#
      zL}DP6NrF#W4y2JI@lhp)D<ip)v2u}T*qK**l!-7beH*K^_&_j}o2g~QRX=DOEmeP?
      zNFyE%#oHtU7z%HslIDPXDzo%iq#82h8+7;*a_~G9vBZ$8RKo=@ta!MAf{ku^a8V$n
      zDV1mq2OXh5^G=i=D(><q<XYPN63m+unK0}%=k@ykd!n{{B~B-sS^E|WuQppc)zXNz
      z;o2~4Rj#x9Vp)2>8ZKfD>n<KLtY34ojOyVL7O2})z7;o4WYp6_(e0*)X4shH#ZXMC
      zN2+H{w>><uH(MTq)1swzJk(wBUfTOyn{<8U>AbL`$0m&;NAJ*qZzn^MZ|6e)9PJcg
      zM^&Qim>8C~Qu~3$TKyc$wdd#XzZ2x3Olui=T6byPqoP+>#%tUn<Z)Jp+qgp+31F4v
      zSsLA?$f5Wi?qAw`Ahu)o>a{bnID>zI2RZz+DW%&7B!8I7uV(Zq`3<sU^leT=4=J;v
      cZv6sVY(}g>r+7Cd=1#<1jK!W(xr1ka0q^G7bN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+iuf95IyTScAA<rH4v_)S7_oiH5C#9S_M$mK1F?T6_oPixJ%f|c988*@mWX|
      z1QL7zABC7*S0L4`^0GTKJ9B2{oc;ah$1ea|cx*yr*c!zX_r(9`yF>2BsmtSFe9RM<
      zhdknOmbzZ%XCl}aJUo6K1UyYm=nU)A%J%YlhM6Gr)AYcPID_3&okBkz5pE*l(KaQ#
      zlh}EJu_I!UbqT*&Of5!QeFlA(=B=Ux%R&X$7)s4ne+CS57RoTBHE+R$L6M$_`N1R_
      z^5oDThH9X3;D>!b5z;>o>e+jdGCb)`+p$0mZDYm!boc+p(pB8$`&Ca9k#VX^GKQ7r
      zRUO{QtYo{@uizeoF&>`qATzPRP`^lE1&a)2#c>78WGXhRwDqcmH9TZ6MY<P#$UZ4%
      zj%KlrmWd|A!WHY~%`G@+6Py~DVdoM(-WCP9By=Q2G89b0usCI9hN?H7Bmv(SQlCbF
      z;!Q~amTA8d{bCJuDKc4gDY1$$`UX<<DtQCSka=^?H_STiGt``oGt@t;M4L_<I-O7H
      zd`3mjQNs&dr^r%Xh8ws^9s!_1@Jv~^$kNEZjXURUB5JPDTc>T`E&s&*LCJpL4Rm|S
      y%RT1{YUI;Z_nfa-`Hn|rTpXf{dAuZby4b)gHAEu^{WnC1UOLp0VUwC^aQ^~}?&p;N
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+iuf95IvhXcIvvRYoJ_8>4i%Zr>WtETPg~wS_vuiB`7H6$w^k}B72Q&Cl#NC
      zL_r|I2k=pd@wx)3NtKuN%y@RroOAZ~pC7*fJi<c*1%}5%Ir2XEW8dp>UnU-x{b;~r
      zj|V*DGEKa8>ZhXrhNmad;I$k_eM%!~Kx5dNb@w12!Z6nl{3JQ@L(br|6kOoTAq|g(
      z95xxuPyyr}`mT^7eL(=#$==CIt;3-0)7B=6uq>3Zz)-B#I&)xHv`~VcMN1Y8=u~M5
      z$&W^1kH>HQUZ6H2Rzb&)MV6lzwe&<J3{P9LNKO}sI9ZaP?*He#Kxr;x&eA-MMat=R
      zoHA@yFT;74b;ZqEr;HWiIgZ4@z$$}%QN=RW7)na$GBz0WTvC&$-?eZL_ZbY49E2a!
      zPfDKSd2FF(pvtg%3CA4Uf{QwhR{JvSPBG>Eq$^WO$C*>Q8WS_D&0tKAq8*LmK0g$h
      zNh{NJ-pORZ29Ye%t1iIK?54=h%vKdf4<hs5q^wIFS>K}j4fAgO3>A0#4EAT$=+Nmv
      zqw@)!&*;)~RM5l~s;uYNa23}mqXAf^@k~Y6DJoEW12@lMLIN+)zee4;Rr-nB-J)}+
      z-PN4+cAmLkP@$YYcH8}m&F^?n!o?-_u!NUn(H^$(N-eRR5B;}9gZ?xKl3|Cy3h@2{
      Dx{dEH
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTTdE66vzLEMHbdwwN&lJ3yK;+lCIi^Hu2I2gHOZ<G5EZ|2-B=XGA#9Tnb;V8
      z@B{dvjAs@~iI<ScPUc+xzjNlyK0e()0NBBXjRe7Osh<Bk_!Ibb5vZ;&RHM@r+83d?
      z6e{Za)ksU#Iu#c}b4=Js5;n()%6&B<)s5wZY$Yxd2C6kc?s0TqDj6LT<_fRF#Tp@b
      z#LYOcFzLdEORx&XS_XtE7ZXSkrYlm3lip=r=(C_63R9@l2*O&RrLhOjWYm^j!cJve
      z<1cQ@J!X`+>U#;!m6nmHMuCn9`NDg&bCad_inTN*Ch-|xZG0gty;HlN?P39oe4n_&
      zN$037!zK@$XZ^-#-X2ye)@nj-Ok;#}oLW{*)849!yqRtGpL4XlQ|<J0LmW#p+u0Z6
      z`DWe}tNb1o|5Ah*^C*0>_-rH1dxouJBzOVN)-8XfzwoZvN?@AzsaUy<Bz8IXI}?EU
      zel|WJ%NFbKk*UOM7IOn;nRSNgm9q0&H}LN8$-;lE69<35#m^C>H$-|^!g7qv4Uxat
      cHb}d4hZTAS+vgq*Mqu_3W)ER&EKgwl8P$8js{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix&q~8U5XQev(?nx!wOYZOdTJ{es-TBTK}10aRfy!ijZ0ifcO`$s*YZ^G-~;$j
      z;%r(ysNiL0XZJVXe7pPp@%jc}fQ}1`VJA_g|G=NPFSUObjt4h9%cV*#o@4P?NUdDh
      z3>#m>)%EuQgL5jCEJh5qZZBf6&-I<~P{VQqbvO*IKq@gVrxTIg@<}Qf+JTOF8u3h;
      zda-F2_cCYL3;we*WaxB*%1X*r;)g{>PKUk73|%uro8)DhCuYzujKK?anZ@E#8Y|m>
      zUG~6qVHYGrZv<GhqN`AJsXC&}DA)TlEWK369z~BZ^Pn~ku|liH9HP8Rl@VxCGy)?c
      h4eRvxXK4LYI41I>QrMbP3kBk_jy7q~M^Lwg%}?}#S<L_d
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4*=`d-5Uk!9Z`R%<;E;=O*c?ghL|8nVQx-vyR*6uM-^cdIOthY{_K4uGKq5rS
      z10TRgA$rFr#7I2s?DTZiR8MvP{B`vMz%%T+a0q)noz~C9xu`2sZ-yd{10%XJI%%KD
      zPI9CNX>yuGQuJNq2wP+1wKQR=|9OT_*a$2*6uLKiaf6V5uCz*C66$+H3`@@_HU2@Y
      zwg`o{pE`1oD5GN+MZ)U1preyX#>En$JWdR&Z<;7d2Z`)XP=s95bY%exxaq^iEyCvf
      za;hy4tmNYc@`RN@X?dLX+cNqf+My(r0@D#;OGGM*M~AuOqlyW&;D7yPUmT?gYjZ6j
      z_>qiFcrLBSgeRj~t-bt4rF)I)-^Mju+#6dl?ZdH24o#}3Ruu366&Ga|pW8AY53x<~
      zLY|C~d`^qLefpFzDuR1-YSO494^?JPWo9O>4b9VxjS9QFz#~cgvBkVPymzt4e~+U)
      z{|oT3%=`De&#=YX{v}pw2Nx)PwS?QeF5A>AzT`C%-e8T-%0oETvB41&v574!RkUK6
      y)E#X9A$8YEz2Gy48D8xhO8eh&{|g5WGNHV^;GGp%AA%+V9v<N_=eb1|zw;Z6f7iVL
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%TB^T6g|@xs)(Wp_>74=#Kgu2y3n}5#H0zq1%?f)f`g11T2nguU9L=A_yK;D
      z@lL4(3F>0*`<yxVetf>Y131K%4TE9(-dE0p_vASua2iU=8x=jOs2PRa8`!WI3g6wy
      z4nz7v_#(PwFw1)_2J0%g;~AKk&mx61L#{4--cW-M4{yDW<P7<G(Dh`?3x&>;q80VU
      zkYT6(myUCW)N?2zBC*P@{*HC%xl}H<YdSaDH3pj!H*T9juSd!x_i3aj)v!;#D}y01
      zWSW5ryZl;cO~vVz5A?R!1)=FmK$;@jhpbJRL!OaORbDaoLV<xyG6Wo9f#U3Ffczq5
      z3`@w7)!-^UL)WH($1$)pY9>GpUB(JoO_BeP;^bF~)r6vuP`ISPnx&!|Q&dLHA1XA3
      p)>9-s@d7AOWKv~qe3|`tV#ac(6IWs5tE~SIJevvJpnnW(egRl3TdDv6
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g|@xc3GDXD+Qr`v_iEXKm`@S5*{QWHfiLc&_?6Sww<&?$}VoVCj1ot
      zfKNPVqQz)p^wl3_ytBJ5wXHFm-JLsg?m6e)J3oJY`37Je1qC67WYg^CkBv7*URe2q
      z+A*&?#RfMW;ha@%<Mfo<3L*?ME~IUkO&`QCZn<cNXld}UK&Lyx6wWR~EIoXjsW3$L
      ztOnN*#uXh3bcS#`Q<(t6l#VfsGfbC+$)9&mYTQ0FYHcosth&*z7`BkHzZr2_qQkIM
      z`fnlRidhV5%jmSExGP!IFpmWV*Z-=qeAaRJiH=3YX<zsac@`v&EUHLV^VeOYO?E~C
      zUXr+Dl^t7{O@`TYrmr*JF3lv#Fn`%kZ~JLiv>V)3u|$U>hqRN>kU&bd^6r4T&zz}9
      zL|R7%Su!d|Yc?2GM~!F5mv5k;Vuc~J;)<<Fs{8=MAF+QjXf)w<9kYl@I}aqsLxvma
      z;&3xAMK?(_u`3g{blk#i2CZy$?K<BV@?I>CY{{DJB9f#Rru$B_m)D9`5n3rw={rHu
      zK0@>WTK0n8+$T(apeTfC`cAo-o0PFd*lo<v-kgWVRYWPGJX|AI$xbEtoEvTosM(L0
      z{EWGC!g-7mDK#aN?ygmziF$yWetwnE(o;P51MDqgk|y^ZjDGJh7C8^o6Ht0452>Uh
      zETGzFG9H+W2PUa`zQ_R;C(We3BJm=6=K{-8riXjcTo0?+9`5(B5q(7K9v;6B<h%-A
      O^;M7xD%f^WPksZxx9u4K
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-%}e^6#g#R{2*K)4L@oi6>G5#tCE(sYALp2YGrGHKqyp1=_Xu~rJG%5vuWYY
      z@xK6PY#*HQg@+0=$oSwN;2-69?%hlhrfnXwch5cNJKy=vm;C$R-~Rx(0Vj$shLMWX
      z$nKcW&8+2S3%2QRyIyTh*t^1uLSsm%JKJ<B*~QY1DEkcER(;KKw%iwW2DVP`b+K!D
      zrtf+T$$UG%=zEq^xy#VoO2}1BN@6*R?V5hI*e<+q?mfs$7z@UVF`M6<pMA1fm|dBp
      zQiDo!u2c6-$6qz=h6vFxzc9pR%C_ZL{ym0JW@42=%eh-3h9QQiTc32ynuy~fQc=8j
      zZm8mZ-4`{E5sWhQRD@sfT$<hAXSkYqbC`)YLor;U9!*8!7{lc#J~-b)3BmCpu23dP
      zC-xS%8HV15Z*+s<BaSd4F<fKl+qP^m*%DCRPH;pKlbt^1_ynIaM9QS=EUiY%7!x^}
      zljZ0}Jcb*DAeB9jaFe44F`0LpgCow+pSK*b(5RJ!w_=uTAvfukO?%b!EcxCHMrM@8
      zafC3<@dc99(yv-%gmnJhMj{JbEQyNctXY0_*>(K_F)Das+uDoaJ}osXhneO08sv;P
      z?bh?jVt(}<8m-6h4OMN(s&6^wK&FV;!l}p#+P)FTcbJbN&oI!oqx6(n_Jzl>fJJhQ
      zRnH5b-lc502{N)Kl_D*yx+M9)^2qM4w;v~+iX30c?S-ff?N&Hjl3&ZelF1s!6UjeD
      zmreEqo~XIcNj%H$NM-ne<1um)_eYK;c^bne$5WW{*VHK0m0=i$GluaN$1x1rX5BXe
      zBXuB;VT(gZo;@82aa3SML6h~h)tIMIId<@jW~!Nc3}M-egp3#6hF2C3$#x{)`G15-
      zS&z%aTmI@INJ*R0DJ2c5o@6@pBzvhRnM*x;(MMJNbnZezWnVy&A_Ek0C?-GC$-y%W
      zC)1~R|5rq{KcIz9FrK_h!4qVTkqMnbKfz@3x{6F4V=9Q;`je`=@ELuNC_Ymd!cAPl
      zEnLHGWa;J(uH$o+1?o!1ZT8O6lTkdZ|Ajkkn1~7nB|J#LUCdBoO8S5zlK4w%DvOu&
      z<h@gTbqKB}AJE|dVeRM`<A(@`j`UMJ4F8TvU2;9cqXS&gH997yUm>N3<th6Ty}@bY
      z6~d9D&=G+K^XN)HgZMteAo4WdJknUiI0`h^63w+tks?JNtN8-5OLQCPPv&ZpohL-8
      z^N=JoGx{5~Jj3!RHPkvA##PcLE%vDb91e<_fMHtRidtn#I=BfvM>$f5VKx4$(t!k7
      zRXTJG)2D1xrC}@@=2-{f;TGZVG1^33fTmE>#B=?Cz|XL8h<-gJ2hg@o@zZPlbxWuK
      v+b3=f66r+;cDjXKYHe<sm`KJ6wYjq5T|UEhTll~MKX>3Hnm7!$>RS6B!~t=3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3OD_Xa6#mXkr`0O0qF&>*Yb(*P6OTm1E19q$7OZZ^#cjq6qZRi4gq2v?bYp{9
      z_yK;5pMZ0<L6pSeo^#K+-}%mW&V7D;d;&0mkr)g@-@achmc^+kdcxl?&WE8mUy<IC
      z3}c88(qB*OrLuG@gy@X&Rb`G~=JH#F$U?9y6EG1^!a|gga+ELEs)r>RZi<p82^lAF
      zg|{U_rQ=32QaMm3gaPMI0n>yQH}ES$`3%hEcATGLrkgYQ?F0xNNo3GTh$(+po~`fw
      zzkHQo3B3eD=PwNj@e?UR_h2aq^<Yhk^d|a}=*IwWN*-5*$J)Dd&A|LNffOI^nAixa
      zp(~e^-d6hCAB<~$jPgV#{~6e_JVe>XI4ZIy_EzB@Ew_9zkYKByfpN65P1XVI+c=7&
      z9VyP};(10J?Ar=s4@etVup%|H#)<DFQy(PRIuKpx=65bZ7ClT8*Gq2Dl^LTo+UD#H
      zG6j2b><+z`u<Y7}L3ZKk`t8N|V$bpvz#`ja7PN{EzW2lV=r&U4`Rrylx*6z&jX~~1
      J7~*OJ!|(RKk8A({
      
      literal 0
      HcmV?d00001
      
      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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
      Bw!#1a
      
      literal 0
      HcmV?d00001
      
      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
      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
      AlK=n!
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOYi|@)7=BK>-D$TAy-{GHAeCFYy@?l;-BN7}g<`uDdb3n3)9$n#oSmt&vp_Na
      z2|r@=D>1<Y5-lK!CDu#gC%<Zp#suRBP5cMybIwk8hf=Kd!|XYG=DhFwyzlc~=G(tM
      z`y9X#yrZE+pmEO5bzIUf>m8PE&vo?MS<lU74BOK^)3N(A3zmkEKy~rT+38EhjHe+i
      zaG-c<76jMo5QuuNZf9p5H)FV2f%*X@mh()jquX`$#Q`(xB?T&m%{g25a;_oJv)-M~
      z{GkFGu-9wp*=(O_86!nA$u24kcbc~8bqSO<HIE5|dY!ZpK`E-Ds6<pljX>QxP$H;C
      zRRsjLMWLZwplZOhjZ`i(ZMY-)v_*Ke1I~<Yjp?o_|NDm_Z{DPP`v*1*DY0$U)9C<S
      zf%c|Nc-K6pp+R78G5)EXWequ|?HTULt24%eWG{l<sFL116~#U@G7dD#_y;ZJ*-SQH
      z5U32$B+#-6I07}Uk#Q~u8Q82x7bMWbQ8Y=Q;k-Jv$>uCiKoH<AGke}h8?$6Xac*RX
      za|;WO>lyTl98*O*p3%@j5+3DXY;c{#j-myvWY>LEr$D@E@?V@kApw{&zDb!?kwUn$
      z8eS0CSL8&2OgUbkle5!>YZ_h@2$WnPlSl20lQw5nQYqnrP=x77&k_QMi~2|H?5h7~
      z7YtWbY(V0eB)=WUqbzn7!BCL)fYCLPNp8aTN=1f>1rz`9f0Sg^%^6;|Weqrb+DQ9U
      zvfP@QgBsL%QhIPAif;7e#rkFFbuwNMYYF<LPL*Ca`2=mJqd18^rj{kmy8=4`WC!I1
      zwh(8&K!(k0Ec<mU=Zu7yisDrau+=%LJB~Pcf!cs-ztY%C**dI1?K5;2pX5V8e%NzO
      zdoCF`$ww%EkTqs<uIVjy47rZS{>=0|;be5vPEPhTPcnEj|KCJsyvsMcffWs-0wt3@
      zvXsZ8cnuQ*<tAH_?l}zf_NL}MSk?Ob{qtlcCh>-b*V$H!-FWqF6jOMUz1udfvI{Up
      z0{;6E)u0PB7t11$+bTk9MnfeoVkU|-&U54xTAl<k8^xUL2->`!P0^kPlU28_;(p6A
      z=5#BspMy>J3WZ0lGjbxO^o*JmMR}h=CbGKFW023)hQ<z76L3u_=9s8nSVJcp%tnN>
      zr78Wh9Em--*;$$66}EAuuy?HV>Rw~kxSaNEu=I7?di0RDN2lH5!s^8H@2i2V5X(#v
      z=w3(7W@mR~*vYvwhU89Q=b9cRKTFzWT-n*!`T3ObDUs8fYXv`VN)S;i=R8lg@T5=O
      z1FGY9ur+=k)f0D6`zh*ftK0Sbtwl)P3!#VldQpYb*v=EFfpXY^om>TC*yZbdmv%~d
      zcCh6eRNlvKs@$_2{{(dtgI~y{WeI!7TUTx%+`6)So0sdb7mXBX#D2AwKpNhKFn>pB
      zevHP(d20d<Tn{iOC4lXeq!Ay0+&xWsQpOtxeJJnoj)Z^cF(|23D2I->NhobA%MCX-
      zz%ox=Cb3w=ViSu+OA881Ja46d<&cl1fgx)~oO%!N$?y0PfmR=1yTS{E?xO7`appY_
      z^Axxi2y>_q<|BBPx1QtsFxTgCRM9xfy^KbEd<idImr*~)s3(`>EqBqmmdoqRi1*3k
      z2iS%W1EH)hz^}*4ctt_ugn1ll@2xdZKUx<m=ZP<SjH`rKMmVR|3NHm9locS9p&w@y
      z1WpiN&7kjPO^{8h9Q?R|XRFG*71Hq~iTWy_x~8DI24^v(RG-6ns?1l$uneR~F|3u;
      zHYFZlBoU64B{Y?}i3*i3OBhQ;ZlE<5xd(oFJ;238d91vpwJjEkY4<Q4Mk0Izq48Mw
      zYiO}>LX#I+s@MPiE>^)b)A+j_({2%E90?r9JnL(ONew<1)LN>Nzl;0;-xJLbtl1xV
      z>nDD;{>(!8g^~|BTYqH|Jfw!-(1qVwmw(_C-=E{%N&Kn&o~0x`Dfm6*hg6<j!dr@w
      zDJF47#cYZx?Wi=KVp5MXal;%{Z*v!>o)Ng*X|%luS(aHj(Hw<`9N%50m3%QuZC9u*
      P|L!W^2`ut$39kJEJMCP&
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g@XdlQd0fNna4&ErkRSh6M{`goKKaf(%7Xl?8M&iH9(iV@H0l;F~~#
      z6%rDB03U_8Gqw^p@}ibJk309AbI;8E`|sBu0FQCIh7w_K>?hW#_$(|>_+xAErsqd-
      zm`tP}i&zDIZ!-02s1VlYNr%HzIf@C@XUbRcb3(b(9S|x9fh!v*W4VbXR0(U2^5xrP
      zGL+%57<!V>a)OcY1|n2?p9L%NClwL)opY386WS^|lCJ#7+y|bBA{q6Q=`;vq>6%L3
      zvv7Def$*;5%<ES(i`If$`$KV>5qhaLmA(|)*wr+IJH?1aV#124+2Gmj-E%4tHpVi3
      z;dxFVT<K<x37eg6p25WJ8ZNW>xlt2M8G5>M!FM!cxSzig6EzZ{T|mrl?P>jxu#@wf
      zM-f)J(6lxB>I*;iR$d@Iu)D7b&A{}}age69a)enHq0tYLa3o(T-8JpPu6(F{;t}}K
      zxu1b5|J-)Gukp&_nRMjdPt<?#qJ##I`dByr3Xjb+f#+4;)o}r99MRxibHbSNSKj53
      zPYtqU^4D=O%YS0B09q6}GU?k)!G~yJgJ-?k#1@ZrY-1;**ymY)OXc6V^qm)Z)sviR
      v8&@*O%wiElow0Zo*O;=7>$s7DAFzN{EG>Uq5KD5%5^mxapA%n+E@|&Sx`6nW
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIr34Bvk)<5UIBrgq*wG@bg6cB|{KoA*C5iO-)wTqGpQ(Q2lfkx7#Bq@s<IN*lj
      zf})}#?sXdnQCn&iaUXSD#vPY&WyWP(P=^_H9KQc~FG*i$1b*Ldh8dHWd+#~-+;h+J
      zKli>q|DT7q5Yaewhfa!V$oy#Y*wX`x0%IeA==`ybfoNcUs4)~xj-3(;L@OGbB04#k
      z4v-;B?A`ukAX*=Y*H_6nCU>kU6s?HPi!l{db{Q<4jdL+@Yz>}F5*b^<<eC(YhLe+-
      z`i?NkEHTO=fkdKY<V+?{`I2C$DH)DM6FPNc8r6k&bu3vHgPh?&G--0qP%t^lV)Y>p
      zY1G3Yo!m@4E5p%Hbu(m%*9PWBLQH)sW5GaVW*{Dx->F7NvLT#c8dkYi?O+Mc@Vr0}
      zoO*Xz08@`(AlMMfESPDqwahG4X1cLr4-KIGbn-Io*JY)daR%*A1DU$d4<$>J$#{5f
      zb20>RM~oPGQdixZRGDF>+I2dB>F_T6bL>(Uoxi!MDHcz9sE~&0Gz9wT!lLVB1`VSF
      znRLinyR->v>N{ejO;LV`ADv&~A*O>2I+#W<<t5{RXd)6wV(@gkRiwsR<XIZbA^Guv
      zc%U(q48_eAccUUI)@c;exGpm9jo6^kG=`}gR!|j=&J0AFA=rSdRfqv%J{VAm%yfuB
      z<7hl~A0(Bb`C?um!VdLLQ#B{Uk+J?zvP7o|O!?NfS+-v@_w-OO2|g3)aGidGZ5D~g
      zrYQ_Mf_%_tGFBRo2bMAwq<1}wTsCQvK}V)_UkznQ+ffD`Eo~y&)KDTA51Y;<Qcp3c
      zjHX%(6*slE>)@2gd(gKG#10nHG=rwoF>u;&Vn!%XZ#kGYV&rV;Jl3G&Qk}En;iPm*
      zbCp5W((DK)DiR{b@dlkhGvKPGg!2N;kz`8e*_M;ilZOUTt$6o|OvxP9($&_wx=6MK
      zn9G?xd$x@-HCK*p8aY#Bo@LN)Gd2=fV#+Im%@)B<Vp{z_7R)B9%@lLDS~2DngHEM6
      zmX^y9T$AzUU@{hmjTWWtDQm|~$F>bj#gPD$Z(kg0H_A*T3DP8;>Y0XjVUlY?4+ZHc
      z`Iv7|1BICk*oZ$oKN?6j$KjNF2!Pq)K*G%egCf+31ds_gHclsx__auy%_vvE&9)|U
      z9oa-4I*npt8BI(l?UQBX5N5BlSo<6|C_zapSHP*`0W+2EQB|2?sXbn_kGUd?F0;c+
      zWQP%^ekE6A5qW5d?C%nqFCS+cbdH27Npmwo*kLmwNzZbF&ZXZWQ=kVBB@n~{5oRhp
      z)J!WyvF9<J`#)3cKE;oUku!C=fXT#GS)LTjjfFA_8$cHsv`Q8()@>poD|inO-3*}B
      z23<;*G4(<(uuphiIGEnlQNQlG_L1hkdgy$*LUgr;>FfWZuCfqA$-WuxZqZ>Msj^Hb
      z7mew9T^2raW*)r%DubNl(&=iZ{$_qP;crD0fFT-)l*i+-xSOtJnpj%c6ptZSH5SH#
      z!RB~8R9_g3hoJH3{K8~Is8F`EFo_IUSf5I#h@xXWw3e<D?Orbl+7^h@7zRLZEv+}`
      zM%n;777Sb#Xigx8728MGHpF9#O;};aOr5Pd-3*E@u`}DmrUsG$J0=dBD1Bg8GdA^Q
      z8VAyGEK*+zOqOE<&0*Qw3_KDrfhh9Fgd8N<0_9}DNF`hWG%Y|1VfoOm^5x)?9ax!E
      z1kp-lFGGmSA&5Ek?&b!HAW|SUI|oIMNpsL+#+p57t0o<JQ`*&HP5Z8?-H91iGG=eu
      z$=Y-jDg9A~1Q%4rU}&-U@u7HQIFXQ|$_$(^#)s(<ojMRzI-SA4G?5H78uTb_L6$_c
      z@rU35;pEaPvq+3H4NAjV(|LC52DIJEG_sSQt+uo{NSWCwikqH*88uoGdgw8_&O=Yr
      zvpPM)<n83L+bjnCk)8vLF_+iLOk^`vG&YeEdTeK>Sy-wBjBI~vOiuCBI>T-!<FQC5
      zdBROEK~k8Ev|C|1;|?$ay91})-8N4OOX~D$u4*>J2yts#tT|er@m!r=NBP*r*G-GI
      z4SJL5z%GMkgyuz1RA9q1Bc&>S+n|@}6`kHeJ<zG)@@R9Thqlps2E8w7$PqPbhY#o@
      zoj%O65Njz0eN3O=1R$NQP|sx9g;mUZXgmE)r@vyaI;S$b4Ejt806m;AD;gO%DUZIS
      zuXOr*F5Hmqk%HC@`kKChjh0qc*32rOI;X6%)bFn@tt$8LR$HaE!$Ujhd!4?^T8!0a
      z&=2$v97}{2HU}c`j;!FF+Paamb^2#oWoBJg8BU-q-cCOn^b`GzIuE)K!7||qoQ9>7
      zvsI_Xtt}ZV!_ub@DEfX8xb&aYfy=LtbR$?2mt#CDgEe+QQp`C$6b;40!KtBO1W{D>
      z+eCUc>q}4DbtER=$u5I+K~|1L_>7Q;^SGPNo~#s^W?=4>!3K9n#TX4Ou0RbDh{`!g
      zmIGLuUtv#QDJ{x$JyFeaFOkuTyjdk|3R`Ej0l0G?gY&ts<#(p_OHhTzauuqX{t})0
      zVV*9Yk!?(w;oZ1Ej$vB5@qXA4-hUs@4Km&<BDr}GQoEHGaX=%irs!OlRnS)jnsgot
      zo$Wy|oJlofJH=3RhChzp`&fzoX+X)t7$++_AB=Egg{EJDqqcbvA-nNl9%*oqoMX5V
      zsN+j<T!BLgE;e{H<2=M22386nn=tiD`@8836{+@;ZhQ!j*LfT~({%Z)UV{&nD&G+e
      zElKKp7#y{84774!xlE}u&Oi19p{3f5B_K)GiihwK2KyLk&jY8J5nC*}6KJ)^qoWKj
      z8C~M$Bas^ygqFJbD4>!>a)Q&1Cvd63Q$%nVI3E{UDos-jE|(^WfL7_x6M4Gm9AVAB
      zN1bQSX?KEDsIoVu!w>f6SgzFhxP7u4(Tu@WT#e;4HKS4*y>Ai;9qho($1_dMg@R+z
      zMWJ{G2R8<q3X`$IKw&VwC583iP?#`J7Eqp#5p$Sfu-^>!4S__px$`)-*^^ghDagaM
      zJj>wUicPw(HLysXXJ?s?8I~j*i>bOiT*o-+(D_tY+6bx1__VBOW@&j!b2w5Tio1C(
      zbc9Xx@Eo8Ip2H!7=ka_@7H9&@ug~btib<(0vd6Y8ekH;pZ1CxlMcv7m)rma85rZ2U
      zu~`b(s!*~a2G&RCzzz1@w<4*1vUDi6IAFFWj_bS-hm)o&nW!dvjKK+p1-Qb|MX?3&
      zh$HNCrp(JeXWHUy3B(q?7a6=*lBE`?uXi(Q{QPNwa0CSs>>wV(!ER_#sL(@i@R_m&
      zXUWl$jZp@Pl-L^6DxK-!b9lMV%TgFAI}=twe5>fK4aA|s3@d}rWn?cCidf}T|8!_F
      zwPCBAcxBpd%$^JjH=mExUW>{Oj1kESWAh5#d?5y-+>3`67Y3q*q4b@EhhF0|#nO7}
      z^bHak9q#5!nWpXCUCem07l+aL@)Y8;mR}w7HwPQ6-Ok9X^BShY&JC}KMC8P|G#Cse
      z61GuSF%9iHDn7qiP<Un>LUq^O$Zkv-0IX<{X_5$zK{=p6LJmYCvBjZ!iJt&G3~b!X
      z;+6qP2+58`0Xb$IVz;xjl?r7B41saLI^uRD&G<dsWcDlB3ssVNK7<*ZNo)Kb<D5O)
      zK`4n;h(vpuAw^-vMO2z$I8tBR@-k@;0+{&{kj&Pd$!Q{BP!_tEo3gCPCqx3np}3wl
      zrgDQI8<DzRaLx;dA_ygtn_#-QL$b!^hy)-TYU|8xH5hbYjzPN{4Tg=j4NGt4uX-uQ
      zOF3C4S7X-wp}-{+B-}^vU7NuV3ciyAF45Dpc&ssHX@}bbh&>?g-6%My^CSCsl9_?+
      zB3A}SZNaS<KbET^F=1mCk%za?B>6bX!yWvj#J{JQ7TU#6g*uz!>@9m+kd15)aT{T@
      zgP)PvpJiJ0zntABj~H(1GAwti-0R92jUV{MiUL`y?W#=}jFt!^5AWmIQr1=g$-Ri`
      za&9aZ!3DI=FQYu`41`mxW;g#CV6j#%9!+95zXtC%f6GN=eW9$#yiUyHH~1}`QD%3&
      zv*;`){9)Wkhs1gfew(*p{wXyzmF1-XVF#N^$y#wPx{^G8iQhH&J$@hBs-1CSIZ}{K
      zpDDr3VILU$p$v0QE3NdGyZK{K%w3v9x$tSaOf^Hm6ts!_e>M1TB9voFU2VCCKjF^}
      z{(`@Rlx8HUnTM%HOtC`^p@bs80!^?X0F;4p+XCz+<1)126h0Ie?mG<rPPpfl9aB1^
      zw5+y#hKIlAA7l!Eg#jbV?2I#%B^uGLU2gst!dHE)87Hnf|CCjrPc>U*hJPFUi_GAf
      zT65x*%5oRpXOMrWRDV>cNWV}@3iqk@c`V`**RpSRng86%1%1tn!~#iOp_;ZGN=%bR
      zOrt!8>L$}Tr&ZRJ);i1?l&*Tn3_ax{dzyU)ldQzCY#COe`oLntQLsiFvss&*FV8o%
      zr1}}EzcAM;s%y)qm(S3agTF`RtNn!i{!&zBRm~~V5)J$@0WR<zkyv!Tu24|g4sR;a
      zCbADT)G%T1sH~};?iAkg&!YybgN6SH+2LdD;tOGkQ<%#?w<^ZE6AifT*VULT_4uVx
      zrZ~h<<4pDVkExka>rtcCp~8BCXvS}6ZBoEc-%t|`^&25^`D<rXR8L2AQb!;<DO_k*
      z{`aC2iWW5qOJ5WV*UPMv4Rw^Mi<vbQQ{4*3+UAw|7(pdtke6{Bq{<96Rl&tPIK_x3
      z6SKm}hTRT-($I9aTTKVJnIu#dhB{WE4AaBW`p^>bo2>JqG)aY9Re_{fNNR)xB~`y1
      z>#Z1xkuxxIvW%=X)QJkAGB43QH(|aeVH!o2RitK+;lDLhoq1e`p^a{J5~RY~3Z;To
      zr+|z6Fx?wfl$s-2M=6xZA%!i-q}bb`+TNOeC9q}S8LlOHh?*<&2bt>kY5qM$%xsvH
      zLsGE@U@g-}tSy)FP*+GNT@Ok-Be7XXN&xq$c`7X8o{rP(5fyuq#lA?|t|EqNRH*Xw
      zd9k>Kkca13uH92CNaI#bOl4An1m!)bLXe}bPC}MKToKh5hNJk|d754*FIJ)KZjRI!
      zMq^3*EJOsW57pxqYP*UXDj^lOE1a+ncDJi$LoJebNCaR>n|Yssx2F;w`hdf3wG_TH
      z51>m|XYONhE|^#*JKIp_DAa6n>|)g^0Iawruy0Em9$NjVTI<xgP%mvp{R+$kOI|64
      zf1dbKPFv?Db%9(Be*&<mE;4vCx9jTS+*qP>KQntHGpsh$rRp*$MUq)5fV><Il*tON
      zFw`13%@*C5rWFO27c+3HtC$XxP3hc-`dBDos=Oh9N*9|T(^>uLmkMwMJ4RPmXO(E?
      zE_XTKhcporWgzedV~vd{M_ln#11~^OSR@@Xc{X&<%?*%A2VTL+0(M~kJ?I}yg(pV2
      z%<2IT&U(CYhw!Ij(2U0)YmNs)(@@wWZl+%f93u#dh7i&m(h7#kZK@;~a$qan_??Ge
      z4)l1)z|&;3D15t$MzvA*`|+fxCq6x9>q1b+sTY3tvqn*G>VsbxPx;grTpUz@K9rb5
      z+Ue9?xbq{Uo+ZcqqgttdRq>WbX;8H`(a}QB6%`ja#<$YoHX818dY$bwlId9r$<tVQ
      zGI%Q;>T|VF?^IJe9fr49T%!vd9W<!UqAsz%Cd&}y3+q?8^;KbgRZ3qC?xtLA<oCBw
      z)&HA;C8MxIv~Qz2|4IiJIEuI2ylWy>ce2mnbzps``JCEBh&{&ZEO2$uX?0#lfeQ<r
      zoB9qFr5@(B(dlgz^{;esfeWNJ?|KDn7W!OX7uYoWbZw%$g{FJ;0(S>B*Lht9Zm?OL
      z`aYv5^>8NGq@T}%GEGIK`j)lP3jazs7r4Rm=3Q+?9dv#jCb<y*T|C<B^y+xHq>V0r
      zh^}m*f~pQ$Ti55BHd<HQN;hn!wU6D8y>#*&d>7r6vV@&@SB+>9c6u?a;S5;DS+I~Z
      zVHIa%=a=Cv!sU1mZw38^R^kn|^YPNy1#~i9h?jvbqSNud#6r3lZ-!igk*m>rDSll*
      zm(dlpp4QN9bS2$GSJ5Wixwq5Rw3V)bAzVu@(K>n?W42+APw0C3oNmC)(0ckOuH}Em
      z#k@{8aZg;a?~msL=tdq)>$!+-;X~+FKAdjj$#gpogYV#KYT=o5C(ot3I6-&wnP@u)
      zeakRr72U(v(7k*szVD*@_-@+B577PGhVKq~z_j{n#TWRIwAJJ37P?h@hc`g>+o7Re
      zypHam7I<4ey+U`=UC`4oYNfleE+;gn(Y-VQ-cn7asi)7e%HPv{7`KBq(;sLf#{GbI
      z3We5%6)dIup$`|<u@F)`h!U}cYRq0YWb923fx7~A8>mgcqnY?6KHP6JwO5XMhI)<a
      zpvUU^Jl;l6w$f9bKHUf72y_lmx}om^TrPL|cE8jr9q{ny=>_n1(4Y1;$BVh=*aF(e
      zFvnKR@%SF+V7cgo^b(ca(AJ;nHF`s$iE|0sAf4JIk?F0f;>T&*I_g%umA19gyBlGz
      zf2khbN}sMHXYocneC~5>qAyaeSm1StGs1hmHTx}(bHXD&2cMnmXaV@_^tsrlgY;iM
      zw>B}ag^IlHg1qtV^lu!4>@rCUtQKa*Qnus&K7C~#7vy=}VD-9Jf0pz<ANX{y?sc`Z
      zlW8-%C5GjBUEaKQ?xAR7Q7iY}$_3)%?c5)1cz{pm)P%#~>X?wd0R24BoUv!B31x)O
      zZOx@)u5HDS^Wb%Kjn}=Ehxqb3cvzh`uZ@TMJjGjia66-HXy;L&>DGdX+O3@tQMd90
      z{NHDIJsms|!&~`q=cBZvPRr*>{yIlKPxj;Y2X&g)Xy>DGAyVg%C%mBHZ{un0T%lms
      z1AN^jM&xr1f`qqwDoV%<Coo;N>l&|TqsUZ?HDiLAK9ARv5~PFc>f{ITZX2KMGg_!6
      zEg0?ab!T6X(H%SooC9qf1ZS>q<pyr$1->3F<e23(ygiEXGuF<{ie|M?*w?dz-l+5T
      zw5XQYsM`39$M)X)8faVj?5(`Q;&5J?Lq1<%&ECcrJ(gM8iI	=8CWgsIHw?DX8^g
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUW6g@+?Y+2S;Y3YY(we_Pwm9-Cjs_{WWlQz(rh{W=s4ltps%S^MoH2nkq
      z8-4Ia8z1}u{wU)eSQkPd@nPrA%-(bEx#!OBKR<r~*uygu2?nPt`_4yx$sLc&uG8a^
      zcSTRg&?$R72&#&AT-mL?eJQv+>Rosy42G?lpix?qVdp=28IsRk>4q;D=JJIGgH^d|
      zi;K`zGBA;5*wsW=<Kj+KSXLy*<ua`4qA`NOD65XJFo#7OCYBgh^3{=&L0bp9%2L&p
      z;-uee3BS%;o?ysSRhxSa?z{RNT^ixJ8!+ruXEr_EsRM@Pt_Zb*qBBS-tG)~eJsw$D
      z!-k1<;+;v`s7)ufv4SkaI+52^$i1l*jx8{3=w;K!J>(d&l>bJ06LPeWO@@>kG=$$$
      z0l7dkXzJ^SHny-$(+ETu|1|Q=LPOK$Z4|J;u+}~o?N4PTLtlBXgx_<6Ko3qc?AmyQ
      z#|-A>KW^3}zSpYnx5c5WEzeEwv7`q^kCfEVH%|{XNzudt5=ha>ppylgcKdY0D4NC0
      z{14ptM%x5#(rQrzDg->lE!x?`G-R+$Cwdjg(yA#+6g7o$jnyv{hj?8OI3B|qG4?ic
      z5q5td1xOda<IZPV?((k_6sKbp>6n6M5>b?*4ygS7No;)#J1S3OiLtTt2b0pzrebLz
      v5w=26Ta+TzJGpBVN8T-x?Z7+g?LArkVL-GxOpY2L7@puMQ84mPd*=KF3pw7K
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g>l_TbBj2Qb1HJicmh>f(kxhOt7h@reC3@K@&rkGAV2JquHGr_$mGe
      zO!P&FCi>=sKgxJ#*=#oi5+8PU?#w-B?m2hn&)@Gq0j%Mff&m7-<Mi?$jE_d%GMrA{
      zHXNhFZSIJC!L_@lWeC%CD!VVa;gsyIr69pDdnKlymSmX!KU#*7LakCSm5bYZ)vZdA
      zAzkhx8^SZ4&ZbOq9bXuZXc<<Ir!dSgL3QXdRc{Bia!+>*n=?$E6K*w2wd!88R4MK?
      zcIx%ob~A-hhI|B*lJ&l1Jtnzn+Pu;0c3n>}B%hm(DPAxP<`!EFYVoMeyV4k6!A*u`
      zS;JA>yQ(WBmt|7D6=_O@U`Q0)1Fm8a6B@=a$uORa=`C1>?{CUe#>%F{t37+4drf2C
      zB3bFO+cvD0;h8cH7Zc*p^chymS2iW4s^3U*ROxV04g4C<EyhX+Emv_5vkI~dGm^S3
      z3+o!<FyA=#1-I*-+vT1xxv$|q9xx0OUATBm&5w%;88116Vb1hp1xnj1E}8AhwucSi
      z2Z8hN7$)hArYj8V0wmafqk>^k!yF!}SjHm-E9A?SwzMiSlD;t-=CPn4&#=(Hg*%Ra
      zei!&bjZ_DZB5G+0YYZzfvaBE#Sv!)EHT|sPifqK8LdO%?{ih6>%Z!qjtl{>&Hh*Qx
      z&QHhK`=thVpI$Plr*8-Yn1+HB&9Bi5AAm}+7K=xapuI6%r@b4LA)_?LX|_%)jQ+|}
      zdgv6HuK|3DMwK>z29jvv7R|KtG$OuD5yKtarBPC>(qB>})9M*!zR+v{k|7za?#9r`
      z2u+;|(HkLJOOFuxH--`?gC`d_-p4q!h=aNna=Z>~05VJ8koyGX3`?JXK!2NFJ;mc+
      Y5!ooE0sG`s8^ho+(o96U9%OI)18$y4Z~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT~8B16g^YgF089S6%bG>Xb2yP6^u_9L)d7w*=<4~jjz)(S;p+nknPmqkMhC9
      z1i}M9z#nC}vu&V-?t>3IbMMSO=iGC5{{FkX0<ewO4hjtKBGs#X=RbHY<|?WsT=7UG
      zLYZ2fr)`RT9mk?$bQ*r!7hHW!PGbi}hPS!EP$WA28D>l)s4~OWe@HQuKS(9bM~1oe
      z;1+mjQmLZdjTVFZ>8vA8jnt~^;K6|YY}iFp8(&k;k}DHh12+hUqOXsIiwQjP;9#0z
      zZH&y2upjeoH`ARCq!P_u(iZ6vZ^we666g+(TRfFE9~>6ViR?1G4{~RfKjdBNPw^z9
      zzUQ6vB0<KoUqkMF-BX5PVtu1A1%^crPcY|V8P6R&qXu&ITVZ|&9_H~PXZ8(-*^v&8
      zWJ04{#)^lkMY)H%mv+QwX@^tI7kOj7(QBmU=_}F8w7Y{z6fi|ukunz^MSFBppnY<4
      zt5Q10!`~DaFhi@Go!1HV1+$dT_v=u>W6B6&r$Ic7ZWd^@Y&%rL?A_)cJiWluFN*tY
      c<?KAjn7n??fQgLc;a}dxAB@GXW-70)0gGPS3IG5A
      
      literal 0
      HcmV?d00001
      
      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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
      bJLgoWmI~ETp;{`m=>M#cQpZxg64m%`mNSpG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*+iuf95QhKF$vK#ohNe&`&~Qj|C<J;Ngb)!(NO4qD6rmzO+jL16+3U)7P<baV
      zKmrwU!2|G6h*`%ZCaEPZygR!)|39C{>tDZr`~+|xcMPN$?v2#A{hoi|ZJVo6+u@3j
      zgd<eYwuIw)AFXi1vtB+HTs?D+Z37vGYNBeEmSd>@uQ5YLaYrzedo#&i;7K*=FytOc
      zC4+|ymHOgwW57^+axxUhfpnE`;2c9so1Da7rtbz_m*^!|fu$Lz3M$=o4@D6S=S>u_
      z!caS-OssI%=Dy$2b(ecmiT>C*5Z()ZV2AwfklO?9NxhCXGr^Jc8FqS!T}$Y7r-(Ez
      zYN|^Nt8uEo3<bizY{EdEAuHeUAu+5huu@+~BA67}bzQqpy(XYaz40oR8}+-0P24b0
      zCE!Hfft5gP;wo-3Y{gk4-?M5l7zCzq^!qgyVJJcR18&PhhIGBLui+XdYG@|hhJCsX
      zd+yj9il<V4kc|Y;yZVZtO6^P2lcgu4yGVbAjteLvg%YhYv@)?o(Id)C(VTC#%Gpya
      zf1x;qGL1SH=#k#S1&Y=td00h-R-_1>bp^U!boQ_BbJ|H$R;jstinV6z8`fvmOX1OL
      zf_g(`-iG#@lk};5DY7RET)_s}G5QMEXw=v{G&2p+{EGGOxc-^q33e{rABLXhBq#D@
      rxP{xaqxEf?wLYu$^WvkJI6D>Buoa2tiq}8Q6?bC#{8Zlxv$p>LF8Twv
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4+iuf95IvhFc5n@CQ(Er5a4AU&NsHhq2nhm+N=ZNs3cPN^%3WlyBYP9I|HK2l
      zK*a+ez(*lw<0vuUNIZDwqB&>I%=qW8?>_+SW8X%O;en@y^^bhS>poXrJ>ZIaA`nW~
      zUk^mYwNzgBG}a<$zkepUItT{7jXcBlT->b8VyON<HG}n7Dyg3^ER-uf2Is{|UktPi
      zRcvFCVb^e-q$PGj-3&>Q<Vv?q-zkD2-wZzp2Mf61!p0KA#d2#Vrs?xIZkR4hEvZCj
      z7#xY{EkE)FL#Y+^x!>cFH1Q;v*T*tuc-Wdd_uPFo7;I1Ir&0gdsHmi5bag}vZWM8e
      zYQnh2sm8$-T(fbNVR@!Exq*x8xWTYUY;U5F?xRl`cG7cA2s3&xtQ!#{E`2i=;rk+v
      z!-$5Wbssp`#w{B+8CGUp4~I(2K)AS#J9H1iPcjT^f6OsSHw?>N7iDZRtkSjq?PWI6
      z;ejY(HyK$`kZ|`z6w|Sbs8LMI7$q?U-EbK7#Y<_fvoUwiH6xsUY#NBZ0{!F#vNnpy
      z;T%PIiX6D)J)#UFYgbE!Z#e&j+#Htab;truSa^;V^4z2hC9G0J*TWjUhGLJbp|DEp
      zXSn>CyoA9TXJ4hz))c*g%?a9w91A$Z)>rI&`U~Dp!R;x$lF_`H(flxlo;AOhfxe%C
      MewT@^j}`9y1{Nyt&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      QnQrz?H~XgN93}nWzpVwIUH||9
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>Jx{|h5Qg7tL(_&rOG|-;y)Y0eMi2v$kcv_mfCzPSQY*Mh9F!0K7ZVZ#KY$;F
      zI0pm^3=F>azHB{retUm;1u(&mjRs*7>&jh<N8u(y$8IXLh-E5u=>{_|5k=u=Vxe?A
      zyE~IYPt%9QhDGTAT)7IDGAaqJ6QxyoN@$Mv0)pjb3+bSVP8Ta^5qiGT^0G=pncs*o
      zk%WPtMIs4Au1x%uw90!`5RUwRgB=rwu`CU+T-5AdR%s?<pebR*wOgJ1R=pr}R1wHL
      z%nIh>{yD)ZWci)4#&a{2bDdRrB+r$>-~DSt2WB}q1i!?a29Iw}i({KTmz7Lr{~7Hk
      pb{cTlnzH$pRkq#F2G%uz+E_=g);>0B9bj1NCPv&%*kaqj_6L!aa0UPX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyH3ME5S(>P984gPhK3IS3LMgcQV<CV<UoOC(Vor8Ty&4focS**Bnm!&k3#GL
      z5;PPPH+ws~tDV`m_m@`y#~3Gw2$RNk*-|`;Obgp&Mp)5EBdyQM#oU>d(!wie7q@3p
      z*bB4L31Y(b&%|}Ll(i@HPnA`EM(FJyl!SQh?qrG{)`wU_pD@aml~<jqWLt<zOTsvJ
      zwa}$#Rmi`|*x#!M!ZiP{t`ov;BYok#(7%Ki%J3@IbV*2WT-Vm}T!rm>fA~8J)-VAN
      v@tJ^#9~<C2;a|p)0(1C`!P93sWejCtiVeo$R|CgQfCkvYh*`cFV}zX#mEm32
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVI%TB{E5FDpzQ$nE+#0PL|IS`OQ9Evy)2?R>v&?@5U1S`05Y-Ak%i&Lc@_y9f%
      zu_=`*E*!Ybc)YW#+5P-legHVZUI35btk6|7=WjexTo+NvH7`Udw2RWo4YwJo*eE4(
      zXYAzhN^pH!zNi2`LvPdekj=@#(7KRXx=V(}aFjCmv3U|98rbTfi55dQky_kWWhU&5
      zXG$;(5|eY4aw}`S{`B3md}TOK{uORaQw!nNv8B<msWgS#A10f`Q)i_v#-lri{x9=P
      zmJ}<Tn#$(lTGkm4{yN1`Jrl>Eo$0JtA?->!AQcfa;^yH3?RR>32np*laEfih&X0k3
      T2ViaNqPyZ=%~b0XdKi2IKMQXp
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95IvK+apD?!PoYJmg#t-R>q2=eLeQX!rb$6uBIw&DUBXuOy0RSvd=<P<
      z1QH*>M**{OLW0T*D|u(<czou}?D)seuipXO!W|nK!dgdny<_oKc)rjbFA!REWFU3o
      zH5&~XgwgxP%N;57UU1^uun1Gb;K!|F*-i-AyGpC%9$~ChZW63&cqAQ+A@5=wS;Ayp
      zX?f5MS~7YrTD~OA)Wf#$n<7%i?}JwIM#Y5n`hQ5;X0DD*9!YVMs(lf&e!^<0TptP@
      zscIx@+rczuZOjm+hp|t)I#GdiF^74A!{mL0F#i{6AMUX%xVV6egoz|fgrDZ<wWDTZ
      ziLgAR|F@L!U;Sky6<sVFGUs(9Wy)pXD=w}YI3I|219TDBOpmV<>{5-FX}=w%6%b}e
      zS};&c$PF|SsK!Ncg$JQN)4>(S(+hqg^^ww@U8RMuK8Qqxx*BqhUV(coNX1PVwZfSD
      z&J%FR%43=QfvnP@k>xxKyHQ*2Ds%q}XNPOU^az_^4jxY+%MVWv`!=6Ewq%gXDRQ6q
      zkb%Ryc@1n~f_FC!V0(_e9L{5s5%Y1IV-0EX3#RrfpHaB~4U4blaH+`7Woh=6Q>=dE
      zkd(H-nSlqeu!B6RDBvNM*qSs2j<MLgff9Rp_RFY%D2Fvp2(~w|-m@F5+W4FNv+)79
      IdCy?$H?3FIb^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E%Tg0T6g>?I6T*nRg5m=e1rs6!@P&Y=s9-dS4=_H<s)kI3p^}MCCYHGNCv@kE
      zt!~svNxAkL{112P>6yfYhzl2)N#8s7^ttDr?r%RoZvhy`T@6hF6IrViTa(XaEGMmO
      zEH5pYHS&h##L~&6kuTWmNjGFC@6Q?1iszr^H24HMYBe{P*NhcMpk>CiOlMZ0IUGp~
      z_%0VRMi9+t)!|2r!0v=;8L3i!*|3-7a?TLwN)%RPE-h_Stt&yFvuYLvP9^@I*)$=u
      zhU4+RRVd_AGH(#;csNm`yXe@am7R_}`a7nfQ=r@ZwB(q%*d^PR>j|^y1kr)kAbQZN
      zAtW$VL#q?a6G~|}FIOBYr(+NH3iNEF<mpIKUEzqwz}-siGTnxKIG|y_KzogZ%IG+V
      zeu04L7`7y|K<~EdcqLAR!x+$Tgzz<lYF5Wl9OGat;|0gnQ$=tG?+tNU!;rw>&h5Ew
      zP^x+@v|$io9T5x*g#NTxaZ5$`P<SVqgE)av4I|rJ<c&o~3}dvC@vJ0s6e(0cxeCX~
      zL$&pUj*~bgpmA%pTVq3&F)K;W=s2rTn`I`W1Ujc<3iOJ$DvK#s3p$pd`*2>zEG|%@
      zqWO}D498XYl8!lCW`R?1Eg=vN*W0H`Y=@YJtF%;oqC!l~!KK~xw+{t$&sP~GH)ZH(
      zbc%p~na7c-p1M?Z(Cp2p(sX_uc)e8{X32tpm$nHhB!6+XYZlWoXJ#74P(45o1%iu(
      zlD%Tgo9Z<8|MSKeRffVCs3@-<xKCaQTx(p#_!fNohd(0lo`0GU<Wr@ANwo2)dmr$<
      zi>m<Iv6~T9{DWV&@LkwM$Agc&Q9hx&j6Q+n2IfwbaY*1R22&$t92c1KHJ|ZsV4%+z
      z@=pwZK=d`bqfCtplySNV_cqY}$}d9xKHt{cU*B0iDe&gkW;9yHjKCK#a<PekSKe_;
      zkLCnP0ar<C9-Ua=9T7)Au44!{X!8UcNHKd8*SKC}{xR;jEzNqgS+&6W0J8id&Zau?
      kgw;2Q-jCC)Pg1QRjJPO1b=rt^3w{y6Z6bjci!PU?-;$GdTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO;6iE5Ph2j96}%@C6p3M`BDo#)aB9(RS%6+36ua5AwuP}2`gt|y^9>D5<iO*
      zQV;zB{ZUoNo2@WlDsk|>o!yz|H{<8ue}4V~u!BtxIR-z_BmaW`;J)HI@I$V7AVQ&I
      zzuRt$&_vfq#;Eq`SHbmOc%?iP80PK@4tp1(A2UpTmRiPN81h@&U4}x_oQo3jm?~oe
      zlMI!X)Z$<i_C(a-JtY`wEz{?!%Ojb@?ywLK<d9*f^-Nj2#21LTX_O*4(&&>R^}+CI
      zt97UKIF6(acDGYUseZ@Z+B#xuJZ9?*A~75ob<R-FqTOd${ZCcXj5H0ZPATJ8we75<
      z10D)$`CS&}SxTx?&rl|YBf&3SiynoY>nm#ZZ5BlqLy<~cb@ksi)!o9QGpF5?!!B3y
      zsR4Xvn57ZjQ<pg@GDw5c9(=8|f{ae~6JJ%S%qmYMmyXRS>WgnOaaAMRwjUA~;3LSN
      zWPV_l9`Yr{9_@TWmYlr5Me&9<Ih1Hku9H7yn%43-fp7+3MIxwJoI}-O&EX5o+qmxT
      k7x2=?i!OfU@|GMnux#&NW5wbdtXf=4klwjYYYrQK0d_+GVgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+foxj5Iqx+U6++h<famgH%t(+Al@*5T;vi67Yzg`%7-Nx!(w(ewb_mGEq;Kn
      z`VvxF<p=mtmOV+3lH|pQ?VaiAIeohO%&*_ye*&1mmVyAoXioUXiCHp@yeV>qZ3;8T
      zZ7w_`z46u;o@Mim{RM7{gk8uhXl3ZSh~7Fn;TeyiZQ2r+H_OlxiKZD^7o9BE(1NQv
      zuAq&fGieFF>Dx!#-7$~yoFSNWGG;z)x|ZD6ovq%nRb+@I|A$kYp*zRDgedslyqohS
      zcLM2+L=Te}OjDj~i5$f$6uW8KM4=}VZ4A(G9lZ*A=(u`WaL-7Pna^fjUM%Y9LqCH~
      zAk_j^og$S#aE^2-Ixf*}=(ve)hIYCm!)0<6g9NfGJ_zTd2p^MI!4O0LWxfl(mCtfl
      zMVP|nVXS1w1OaHci~9=hF$~FGW%6dRSTMa~BXwHzxV`N<1@3wlC&CXfTuWYeo-zza
      z8VhgQiwH&(ME@Cit&ut&VU(I#GV?y)dVdMBCX0Ae$Pi*u6o#Bo6BcO|6AUb@A%saC
      zPw<q~WflrtWEsYq-Dm)*H!ZH>IVtbFYbEX$Ek~%BVhDr}H88|=Ok;-dX)@c1*H!hd
      z$;7W@;yH%F$Xa6!7w`*2bWR0bWbfp)WgRPW(yHgwx}+e%5c;d5`n;tGmOf>8!6QBt
      zEyrI|WU!$Y60Fo($}?SWhn^yXmU4VI!<Q}jiUyjz(U{DKajLI{o;j%3@@u2LLMwy*
      zOnOGnpnju802*0&3{0Y(tX>PC|22TA=s+iVRdk`7P9(@@f|l_s6$Hx|SpNcLFL-PH
      z2SNwI+ZEiY;Ncm@g5za84nCv3{J$Vm!OJpcgY&c;k-kMTWh{NIf+<8~wN7WKn&u68
      xQbcK&DD08o_lf-h7HKVM_ED@tMAooQyADj%Rzx_786vL9;nE4i2H5~M{{TE0IC=m8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOK%%h7(Lf^Y{!{4Y3jsH?6xU=;73}Q(w0KpK<hNEUuhsAAdsLp_QaXio{7fe
      zNM#8Th@Su~P*>To04jwF0b3;g3PNJXj&SbG)OOo!h!o#@zt=hE`|h1T{{8tk0I%R~
      z1Ob6u)9mK&%Wau&Nwb-6OH(%Wwr)E4wc6^Yt;<I3{hPWpOYN;z1R;U3e(>G(`+D6G
      z2yYmzmfjE$B_0ZfX*lx&!E|O#AXKy(dJI8~Xow&xFj_TCeW}}C*X>og-qHoet5#jM
      z)}(Eyvu_MJn?^_AeD#0un-fTF7-pkpk%46|kbKLkKhPVV5S9z2Gar@(4mEY>Myu5`
      zPtaWL>+<Y#F-#y4!Q?ZVJ)eeSm|~rJ*S6U!&nOU2XAUlt)R4k)fx`s$f^XYacS~UE
      zfDG3~^piLh!HmGf^UT};4KJyR!>qV06$zDaM#EX06Bv<o$Jo}3R@dZwIEj+-rZr@c
      zWsYuk+qx|sHh(gGfbvXf7y`2zh7cAQYI<A~FKF|avY@nW`EbSfgau=cduysjhsZ|{
      zD9$S|*#1(Z6C>DV4dXbfT7Ff-Yq+Lhb*IEjMfMz7&}eXe0X01#1rl@?2b*8q>aH4X
      z;vak7^KOSX&2`1;T9A6%GQAnN?NN|#X}E!#0#T#m`CZfx*vEz&?)Pz=`OCU|Fpxbs
      zQa@^pQGUczPN8&JX;Ar|r(|wei<YhAolTcZgSTej1@>ckvyb$W`+}yG&2nUG#gVr2
      z^q%`X;<ny7fNyNY>e_XE(NIq>@!})Dpl%y3awI{1COA)Z3Aj7Ve?DMZhPlgg6<mk1
      zKOy!5Hvwq;4ZFrGIK;i?1u$`xb)p!<5n7{a%=D-tkC~-FZaqPK57U)hM6-K1QBgm?
      z@BhQ)bRqdGCTiK)J-qxFxn0DQLz~aqenc+$?f##$-?NZM;;IXOhipq^UnYDBlc*qx
      zDrQha8cWDwnHt{4WxRs|&qb`dSu-RQ!93360_!D_Wt0*%!*_L&AI$&-T%r(9z&1jz
      zfHP0<YK2688L0-Z?_xBU%BC*u;mYz(K%{7YwEuUm&u`l8=SR%_nEdXMpXBG{9^dnN
      zk3)!v3J;8!#_M>4h#FPQF*m?w7I4jN>UFh}(>%`koF4j3J*_we3yROU%jV6m5Z)1@
      zN9nKRcfFRKplIMzQu>SlI~c*|h~o<+xIcw22WXx2X@zl|O;fFjVyZ`Lfix7ITRl3n
      xj8K13(s_@q=wrr66!@B$-?;U8qOe8WcGo)`nmU*LbHx{2Wpz3@Mm6rG{{Vi}e^meg
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(ZF3V<6n<_JS-M^OLT$Bx#fp|>`w~H{fz%=fTPv|3slgU!obBck7Pp(u-3>GN
      zXY?Cib;bq;2Y-M+#u@*Bdd_Z=-mOVK<i4HrJkNRCKmU382Y}1?&Ok=MZU*h*W9Nxe
      z^qrttRPv!O-KbdcoiMC<&A^G;O5Sx;D3yVnz|vs*O&Lh#xhFgX#-gW(?Cu=MNUBg^
      z{z3KsY&&FBca-Ps`?5?<Vf#=jmnHCvz*|Fn*wzaO_@U!UHYI}DVFYA+YRwD0XkB0-
      zuOY^<mbHsoq`aV6F4P5bl~zNV7{{c634!rr?Xj1IGngU~O&P`KYRhRzMI!PA4NrS2
      zo5*6?!YF10?&&IeneS%umUMkeTjaF@U78N1G4vIipln%~#aV&Vhf@AfdE}6uY`#$8
      zr}Gxx#vGX_=`=Q4>cH_iZF+$&<_p6z*e}rtLA_()HJmc=uE5-JR(etB6=mZ0EWD2e
      zff*)_gJ6q(y9k_3WlV=DGh5z*fzt+TfvK3S9eIB7rc%z+suxBk3RvQ-F2}Lf`CPQ{
      z0WQ<oX*2|;^<3ZCe@snYF6^=0hZe5lBPw<1{Ybq=soFB|F-aX96|1>sVFV^Smo2Q}
      z69FS?#bQWlUQb_-X}}$)<%We%W6d%kjpJ1>klXEpeW`YM6a>yxTdw2x^4`77MUOmc
      z^rh<HQH-<O&ulWf)ce8}nABP(HlzEIus7vQcN}xKr3B3Wgc0d<Vv){1q0FR(Qf<3p
      zi-R22G@ewc*9mHphAG{YChp*C19z#@28Yb%TL*`}g?p$`F_a8j{u9dI`BX7dR6N~G
      zRZD$qn5xb&_XV!#EtB>grayt)I`K(5H+-ZhUbEI}D_3rKT=3aJ)m!1JV4nIVOJD9R
      zGCX;-%kWIZD|I8SIkFgqMgOnU=`T9xXl>Ywiye$DJ;xh%2X9WS{fsf2cIS?8;TcBl
      z>?_REmai@z;nMFY>^{fh_A^+^eAU6q{n)Si)4zY)%N<;Kh1DaJmhInA>fky*uK!9r
      zS=^-m)tLJ#=~=}TN|>YhSilXeP@}Js#Wmc*XSCkN2I|<v_xJ)Xw&)J96TPUA4gVVW
      zoUBB=+a$XTA*_(?m&A3OZaLEArb;&gUlCgp`*m8`&mxf*USOM-U+A2PHJY@7tPO0(
      zyo|$W39rBoDNb<K$&%kDY(lv70^d-Acy|)3MtR@SuqOIg-(t6mrE4lBno1{ec1hEo
      MhI6cGFINBHKaBMF2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(U2GIp6#i~m7-ksg01C841;x5MEv#04ge?`i?c%~(3%hPCnCNBqx*eI$G<Rp4
      z5EBv--Y_vf_-0~!Feb*tpGYBUBtH0JObjNznHV2@Gci8!M$~if>~?2yeYi98o$sD=
      z&(C+~`@g^Z2EbFO7#Lu18$m1kI$z;gp9hVs6tDTB7G(>b@atu-5%8!b#XOfyAq}J$
      z#{2I-B?2M6+I=1jsp#^uVAxgq?-3PZats?Ly}*m67)H~HO?jU;o4JIc97!)|<T6!?
      znGfs2!X|7sU^5JMLu)S^TQJD5r6D4XOChfd$uN}8B;qBgoP~ARYQw-bhI7d*I^Aej
      zHzR63mpt;qAemY+RN{oSj4d!cVB<mTVA!}U#HIWqr+n6>GkHbrvN42Vh8<Gyy6(H`
      z%vvWIhI<n4<fPkYlK*ZS>#;#adf3Jz*u!Ad!l2n&qQ0ln`ApTsqu6KQF@~+(R!xVY
      zFL+?%ag5Tw%EJ6C@rm?xRXG!B<(r{?CVVeP!o-*&#(Vl-UJPYq;(%hZ4BNXds$^b^
      zgfvNc#7^`iQw$=}P~1Vq9qNf$@Iy{9k0|Duo-|5f&@gdK5u_uhd)Q3ay66i7#~Jo_
      zt)0f*FV#XQmv}TQWhgC7;#nnx6M8&V)zoPld5uL-r^HHLAm&<27lo{FI)q_cDXek7
      z%B81p+n9<Ly(V3jQvci1?{-lMCe1D4bO5QtY<4c6I-*-eTU87;>3dBr7M{lo2Ifcu
      z{ZCYCDK0JhHs*1b6e2}4^j9eTiGF(5+DhJ*PVY3qV3os`tcilB8Zgwangc3h8a4Hi
      zel`pPN~82OK;H&7($ggKPe>`A?RLk;R$-0bgyXJa`$x)!(PNs{1zK;@`i$0JZTp@0
      zt@nIO_TSp}m9AZJ$%Xf6-~aHqsyLU9-gyHfAL6>}oL|L5?&sL6@f)r)9pfi7zT`UP
      z7`qx@aGiXN_iKE{b&4^5QsbQK6k`0e#$&E?I>v`J9&w$S7$4Pm(^r^WxQVITl+j65
      z_W)+-d4+B_Fae9M$u%6so231>NU`tWINrq+-opuefRp%``t}KV+`ufpMgh0+9KJ&l
      zKj1WeL<v8WSbo7AekCpZj<fg!=kO;gxQiEY4^{kwm)LqNFdOIDAYNuW@d_Kks}v2`
      z6VHpHo+3n(qu8S~P4!iz_-ejqFdWa9a#9#HRrd>w+(L=UQ(vEwEw0I;H&CaaxzO?L
      Ncz-)S{f_m{^1tg0qC5Zq
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizTTc^F5Xb+gS6H^76)b`x;;r2R6%=nZCP;!I)=N@CqQ-}9du*31yY+NSf-fe1
      z3%>&onrJba7=86q7<teaUyQ~VW1O?Q=>^-E=4|)OocYbn|IB{;^X46ZIb@><Flc3~
      zo>|v7^^B=o<&5ADO<r^|*SW=oQCt*4-&)<O@|BIM8AXU;qWk&QnFzzw|9K3tqP<bI
      zEp9n7mSHsaZ<O?886sB<%W$qTj3;{?O06-3mh2K&5JXHxKL#0s$<$gu81|`%qK{!H
      zXIT7JeWSp|s$MWDX*_2ab#qM@hTQwckW(>g4AZ&pt#*@!ii`?gv&~I{jwMsQ%2cSD
      zQ57RN#4z8xnO@-xi86Qm0+u@Ui||Kv-K4rl+PSw2>vWyj)I9|gn2h2msnOEe^Qsuf
      zVN%O3tV>1qx~aFY?Nqp6=&R_pid5Ovb|rXY_wf@6PO3P8ljL{oydw;&%rM*`f@h_P
      zo2C|82|V+)x?z^MP>@DUJ~ArKV2-X`uU5HLVwmaHQCpoIm~0=;G6e2Fkf;TTI=_eD
      z7t?-8odg+qQAG+GgOa!FqR5vGIWFVA^m(If=}uknJG!WGF)KTwM5GF>Fs*<bIQq&W
      zwE7`$eSqGU$sVA8McaX@rC(v_1?>XZPtQS$1wJ8!&lItXIPDI4r*Qzow4*qe%IIx`
      zd>%7PXQU;jX)iJK8VRCm&&l9n6&LY^(tmZ4s(08&(yTT?8S+R_SaMo`h->`T794H{
      z)7X$#c2=S^vi`C32e4-tPQM4cDM8b;8aT2Y+-{Z>ryhat)XNX3_=!>ca_N&Eq1o*i
      zj$w-UD*cX=0<uq<GC$*jy9Wm1r(~W6PCsp>@QVK3R`fu#Xu4G&vFIZbZ;`&cgBg!A
      c8=r6BTmu*OXu#;(pt?N)6HVMDx39~80d({yL;wH)
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*S#uOs6#hC13^TScf&{{%;yN<{qlg=c0h1624g^RD0upT|?WA$i9eaA%+z=H6
      zR2BtA6w%V6^hI0<E`^r(V3k!qSY?$DKKbAyRsI6;JGW;h-Jvs8J$<^*Ip5j7dvE{x
      z-*-O%xErTqsL{}vw@XdijO|8K!Laj9uK8ra%y~_#OmEN`=&|y);gwu-jo}teH-<V5
      z^P?S>o3`m%xiKCZCVRVv#oZV(J<}~}n7285b+}#{^%<^ZY%Q408YUTTUS83>VLWr1
      z#az=9GYvDx!K6{b8+4r=MJ7hHi7l3Gd950nQV|}0(aix(kLOx;zB%2ep|0H-FcU~(
      zY7Eyg;?+g??mDL7dJWg*O|Qeu6<Cy=Z!Z`{MxT~S2e8%4<^<|7Glm%&ri>ygm5v6?
      zVgm`Jp0kcIV7lzc)hND-SQ_T&&@orTx~KxnL-O-7Jj=0z#Rj4TUk7?HC2QH{>eA3w
      z)9sZ}X_%UIaz>#ty7J39Z_r}73$oEviR2b1HIWn{=`_p=bSX?oTE&YMQcCpEo|V(o
      zuqdkXcE>JyZYk$EZe(o<q-3yZ4Rc2!E3pI48g2~4j4<F3YB5J9u|UV2Xd;=1P4lVt
      zL4%{KO{LpKb+?X%xQ8TiO=F<bafgh8@Hn_kZb_v#M??xOlsKX8)iD7RW4K?#4OeF#
      zG?%~+>R1d}IXU*DG{gbcrP|YdF+4<eD)*9S6`CG)U1L|)DtZaDV2LnlsY<?2Fxqsq
      zqk{~W<Rw6L&2w@gZdTeOM(j%qI(00^3PKqJ9P{+xpt`qi<G$0J-XwM_bv%MBlPg-g
      znIqfQ6~k%`_0bhdAJ*uIVUjqn)6s)o*62B^4h^YPu$7fa5$^=3Pe&XHDfCet8>P^O
      zN}&~+R|^)a%{m?vt9r3gODNP6f$Z0DjpU}`2_1&&rD?MPu^p~4JS=Pa_J~nOELN_O
      zLU|XM5%35uTsDoHCs*He-yl3sj=ny;VmX@fs%?sLXbFS~jkA?dvd2lWqr6R^06T^u
      zk}-Pii+R`3a6yNIVYP!7ox*m`cur_Wp-{5>&Sa=^L#ojPi-pb}f2A<T>qi~enLNsD
      z@sc!4lEQWk3xg~S#~rWsP&&(Y=FDN)N>w^C<Xt*;R~exwD5@%H;&>L%$M78cH%jL=
      z$0?YGt>Xpk;Rt&-u31KXAOSVw<~a6>?@K%u0=~OEGmck8u`hIt^b9(#7ssojIZ#>P
      z>X?`9$jI?Pj^mJMUkfGEWqW2`bZ?06a0s)L1SIBB(Hsk<k#+2R9B+x@xQ66tejQGU
      zXGI)ui|U<_PoHBA#PBXR%Te>n490#@sD08~=DLoXz)39O(ca^f+??5I$w@RT@>sc3
      za50ZlspUsc9cpB^q*Nojg}QUGt2<XH?~`b$<68bt=F=K_h~MN)W8(;>j9~iw3z+?d
      zvcG}<3E}|v(*8c&Na-fun)i8pq91O?EyNP(R@_EwLBBl`{f=?a7ZbgCT=Yx`y@u#>
      zeRS;vbC*glWg6!%xPZpY2<9hS&af6rcb&(gv$!TxdlC0h%p_AIc;I`qY`lQh#dT+K
      zZ9`q=0v;a0vJJ{Fedfx)nTEO%bX~-%^XR7fYjlrb?S@P;P1lTApU3(N#Dud*XOjJ*
      zk+8jIkZhPhaf2WVygY2G!uNl0<&R9mgbMr?s=vk-1wVqvrQfxXes9H0{x9Y1+V~;X
      zf!SEW{;out$HhWqIf>O+!utwNt`}?3k98Q}X;9!(3G1;F8}K|H#eQreQTuV4@6K{Z
      z{))&Kk;6~4mN~ZiovY6A67@ON=}WXQ)zmMkiPkdi5j=@JyIsO6?(=yvY>*iBwDNUU
      zRcBGBVH@u8XT-BuQ>Z%2UGxo}lG{1@)~ITIb`7#xOJ$||w&koeJPkJjr`yNr9*biW
      z$BD!#vXegFTNzo{n#?eh_20nbNJScp<+09E04rI|X-8yETl}21jK$f_oSq5b=w+N5
      z`NHsX(wuTmmxW26F**MJ=GDe)Gq0n(KH>EnFM0oM`7ZM3ynZe}KNol}y5Mz+&pXTS
      z{v4y*&*!~D-E%@&`P+FelO%T^_!7@hYE#mSlzNo(GNpDU?WfeGq=S??mGnBLl}b87
      zsY6L`QtDIEiF4oMB-h}n9~smqK|f|t-orEFCA`Q@ejmwu2nSg9K^(_xIEB~o0S>bT
      zNAM|*vE(;N=i_X{2~zqUmVXkz(CRn5hu=x~KWY6JK4keH;U9b)X#QpR+m=R4iT?io
      DoLQ4N
      
      literal 0
      HcmV?d00001
      
      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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
      Wq%s!%d3Kn>RBxLK(kpg>T>KZKW8C=w
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<Jx|+E6g@X_VjA*6LX!ppG^686wL-;!pe#t0P@^({qDq~d^ffhd;>aXO?EDGF
      zPF>5=A_fF2|E7NcIL}EHhMM8}-giIFIqyE--Ctb;XrgW+Az14T#?Fy@;yS)N=sBVK
      z=Bw_=IXoSzz5dWQVF(sx_5IEf%O=u-$}IbIN|4_62Ht2#khB_Yfw3EWRT(5PpM{Az
      zL80Xh)TeR3qryYC<10a_6?9#{?S`H{Pm{*zyLT+8x1LwHB``yE9QY>$TDBUk|I1?A
      ziuEO~*l1@Uc$vil%7S$(wlA(ANR7BM>RpN@5r{|I(^NH0RpfH?l%N`qn>h%^VOM?d
      z^rCYA-sP>nrBNqRl9u9w8Z@q#rx%PIdZAC*e~`IgkU*B-bd-F99OLYy0eKXnY3gBi
      zj=D;$XpqkYP0&}9+domTYj$n@5{n0CA~pN^$HU(lZYiQ~Qph{vHSr1?5l3Y*j|wwd
      zLm5>p5nZ#Cr!2elT58e0g`8vFzJdJ4@<;nuG@@nac}rlE_uHb__fO;(v4U0B_#;Q%
      GuO9))(3zS5
      
      literal 0
      HcmV?d00001
      
      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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
      H`2BwY97xy7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVqm3Uv@{DV3{u0jDjrAR;Ii0gZ&DprlP7<Uyz9*bW(HaF`N(<uCXL
      zA2fk#d@%UxM;Z5-nYL4*#xyhM%sG3nwf5S(zkYxJ0bmB}A@~?3%6c`kuN*5GP0`C4
      zlfTn=$;#wE9`b@>s!CDgn+Jzl2myxC_OVV(2gUpwiy^SbOB(TJF9&XLottXuIRz-D
      zVyT9{$k0(Vs`}m$!@%wpDMBX&1$5<rGekTQIm=Y_vH)08b=6v7$jhGVdZAZvw&n4p
      zyXc7maX&Nmco=@%kkE|?gI`V*y1>vUA%sq`>zB}lu-M&{a19bePgd3WcJ-jh&Ajkf
      zXg5lVR`=XJ3|JMFN|&?kov&wz4p6lrlOGw{F#!(B36J1<y{=(hWp1sz#tzAewk3y2
      z^BoBzxXUmsw+%}a!WhRy2w@5LAu|L^nxT`3z7`QLi~BTOq%ubImz}3VTf*y_FGq?(
      z31ZvsdMih>@BDpL(a61+x9_fm#OpAo@gRg5hTi5RI=2$0kPhRaxSwmecfhH|MsdG&
      z+#00?4XeUUhR%v|R1u?L55%Vb&DIW?G>v5mkMTsHFH?|Z)FHz;qiUA;3snrmkXv$2
      zE$fO^HTf&WJmO|rC?yPnq$fykpBORvJNv|d*(;3~t>Ua3*D0!pb{gFWXzfdWMQ<{7
      zj%af79I@ooIpSaF+=l^r_Y)#8OObPg_K33Q5yb)q=``u&V+h0aMMyR;vv-2oXYT~J
      zpLQb{b(tq=6;ZzAXYsaqI_#4r8&`5}U0jA+7^4%Rd6ia?8A+ZY_6@hiQp3Fqj5m=S
      z-Zj#)?m>$*&=REELCd&kL4t`k0URkCp5$O7IRznJNbx4e|4z<cnM?!ZCV!x+g(vCM
      zPq0(SsSB_zp<<Gr8ZxKUj5EaPD_+CwDT0Ade)>^{<5t9Weurwzk-K>kRj?Vy9Mncf
      z($uke;*`k21?rNI_B3d&ie>v7h(;C#cMVG?g0+T~lO~np#;&KJXv2-C|L4YAPjb`B
      IRlAzCKb`YUrT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~iZR7=GS-u(GTm#E57DSQPUm5iQUXiq#lYNYIwZjP2Eu9OF8hUAoygZLj+$
      zxa^hFJ33Rb>Wrnmu$}&m{*T)CY!b2=(rJfTa?X3+kLP*L`<_4le*G4}Jhl}C2$`DI
      z%s$nh=~+{^YFS4-HbuqFKC~Rsu+3+pTK;BNZ0nAp@0dbCh%nhdLi*jS@0tn*2xpFG
      zl;?y{Ra8vEZ1K3m9bpN_sN7};-O*jcwsP!m>2(ep^Z9SNj$zgKY+%K(40n}~OZbjE
      z4Em(=d9{-yx4A^#t_l@FjA$6bDMB!j+#UoM)u7;nT%Fc12$e8WG%T^%tnUb?EcKAU
      z?22x7^l2MI?h~Uym@D>Is=u~ONNH<MIG0HJz;-A}33Ee;VNyYyaPj|Ws9_4zgwdLC
      zW%vV@wk}-ZFus{Y^2>jz(jmmvKEOo<GkopGtI32NPYsta%M`fIrgvqhdnmN^R*^tT
      zL6UH)o33@HA&m@Qs`#p@n~W~%ztsCXPq`~|$uCsCjX4cjTqO*0E#@OEm$2#g?&#I0
      z1^UU_$4$XC!a^5fCu2!BAKOk{RF8BtzHN<2;p>Xnl})SiXpIo4${z!p{x5|Ue8i2_
      zEtNO*MnlCCmNn$C!Y#%$3s%Ln8{GCK;XbiBb*x9-BY56vPDZb4xPeaz<NoNpZ8cn{
      zS#fQLaG`GspNp60mWDiTw;JdOg@=(4>B-<3a|+f7XS;NIp{Xd~u7-P^jICj3US6<*
      z4MO~QtPhilb=+03*&|uOacoCL2~zhuPfs7sTf*^>QH3zo$H7;Gz0@tc=~Tp;A&2~Y
      zyF<2&nx(r<M@~^gICByyu5w2P`3ob!fBazZ;~J391^)*58-m8CCwcXV?b0%mdWqpw
      z`UOT)nHPxs$ff|I{C^A~fK+~D`Msf&7^Y#IVf%C|4C6S<J5J!0A#WuM1$Z@qbL}!e
      z@P2?T8>yc#T6~V>^edbvEQf=u6XCauq34KCgyYvrnOC?#V5i6dF7F|n+5av`@o4D#
      z_kX2-#+73F_xFFi!Th6_xc&>LYeAf4W}q>IDS{Ie#T1PrOB0yq^)kh9gY9{m^ugX}
      z!wzE&AF?{EJ`-KQB4<?PAh%)v#(SwwIrS@+_Ha3Mh@}I3Tui@1IKAK6eNxKsF4NxK
      z+-KLq9)|d^aDY2<yS~TL9%B6f#Y4pQ-=M_!?|1Pp%A24WD0GRtWfl=iAWA8IPSdQ$
      v6@KWlNYgxz|8?fGfSa_0BCYuNlsy*m5@L9O&lr6i!}uIqjGs{UlzR9N<PqZh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-*4Mg6#h<}#;NDEA?wo8K*?CQCTW(y#`u-8vTo~^lC_h%bt*^*C%GgJZX6tY
      zqvB<n5aM6hKfn_YMPl6q0>KMNJn;{KcCPKES(_m1+V`A$?)RO0zH|Nee?R{Q;7x3(
      zh!D;;J6@@6+%rm+(P@?(@wp}HZt1RRHR^`bxV_sIm7T7oB1)JW9(xcI<Cy=)B8*w~
      zec=#hsz)OwQkg@%ZdZoHmduXnULst`jtU;-&utN+SL}w+pkP9WhDm~w&25c?@RAM{
      zaXCAoV;ph9WYz45b#JF8oZCjt5`<*ct{c{t;h546ol&=C_6XVP@Io9e8XrY<M9;SF
      zG2m=AH!4|;GfC^1!7GIGBab?AJ7J<J+&i*nE4J5ZaE9q@?vqh$Dl&xB@ZtwhRjJT(
      zsF?WDGc3kDIhff-t<7yx&V4L%KcnMS%xPFaPDPfG@WDOTv`Uv9$Jp)Z$YYV9HH7G1
      z3*mCv!3;yZA+CVpoQ_kNV+rkATZ(g#ez=pn#&%n>YvL`V*OJovf>#vpANOAk7x9jY
      zx1Z<c_j<5X=c{m@KrJ2>-tF3(u48tZgsB%43%q3&9}uPw=mYnP$M;1zaV#^!a;E38
      z78wmoxGY<5<xufLsN9x}xT@nCR=L>?7O>MGoEui>fdjw5Se6hsbi9vp9BX`p<v6Nb
      z>E(?0%4N77YpreCo>LdArtItVb<q)yS>H699mDk;am#Re!YRrV;SCm3;W35?KYT~{
      zM-h=Xguf~e4aay@=h-&<75+}<pWt|Y@i7wl!eb<VWLE@J{7xbY&?^5nZeW}$n4mSB
      zWPc{uh7_jRVgR3p{Fx+*@N5Pzhcs(!%e9$&{wE}#VwO4NG~rJZ`8{3>_$DMSt>YMN
      zAVs%)E<M;Aa*=G(K5jI`W!S$ESANB7dr^LEE0SpQFzy|wbQd~p55?uq9D<uTf}1#k
      z`zhmo#<;bixUb`Mi2Hy~Da&14`~&m|*~Q;MH}m_LFYtJZvyX6stpZyG-x`blpzzbL
      z&MabFohGxH%+|&%eZd#9jRNfqs8Z~!QbZ9YpF6`%G3~3s*CfowW?SmCki4)Y%k?LY
      zr{#AaZ#|TbMCeHPj`ZO)94OR-Mjoc<KGL*{GxW8eMk;^}(@-#vckv#RlI-u0+~Y#X
      zmM8~A)4yP8J9+5|K9u%8uI%Ibo=hfr@q5IQl|6s`qhOsg^w;}!NpY)#9&lYAaw6Yg
      Up1#EbeK(*+x!*lE{ax$N00IezApigX
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+fEZv6kUg2W+=nOiin8!3$2$H(Rc%Iw19;Q#u`kc(G2BS2Zw1gotpUMH~0xA
      z`sRbe1BnDbz|Zg-eDOtH=gbI=7aq<&UF@~?K5Os!^5fHI0OxSmK!?C!-D~An>=$<4
      zZPaX6<_kQ$W!pCp7Z}$6X$6j(FFVcPo@_Q+eoaocyk%Dk^pWSd_L3{hn%orF{jl7|
      z(df89w~|(>1=nseD;*}ewpY(r0^jlKDyh)$nt|;Fi?-X6Cb|UnE3KTWpPTVzz2Q5y
      z_q#!Xo~MrA42t&4g{Kdse9q!+vL!E&b?H-gVAb)QRoi7^v*b-HPMF?T-_~pe3ooS4
      z7qxX?v;#@HS!+<r3)pu5!{~Lo@r9)oSqoIgM9pQ1;JQF8lU)>u7aGgbz+US8X+|do
      zu+PE}_6sCurtaOjHNR~~=yT|q$~$1;pvp6*=4Z;K%54*e1v)&}#8CmHm~q^~37n+T
      zL{xty(`G^B?B7Usu@eFr3kf6*oD$fj+tja$d`lsVGfMp|pOYztjJyR4-HLn8LJztP
      zoaYpFo~Rs4{QUXt>-XjN>~9R0l)`1DFdHgdwa|+`0~0%&((a`JdKh}v2AfEjFicn`
      zdQ9}H`coEmAuZ5bc04)XT3wR<eYJ<mOJ(4q%~j!V4W<x7Np;fCPJ(9+CplF9-`;bc
      zU3D377o(vMWU~Jrd#a*8hG|EY?f$)%Ib{cqu*Vobvm_@?lX)A00h4Ga?;SK}NLi_I
      z8mS|V(UA{hj4^vR`pMV>hy>Z{?_F{W1J&3X1}oM08ip&?#3q6Cq4bdr9ILEjWE0tH
      zd;_P~k=wbBZepz3j|&^PxQ;947RIZw#1^hqW9b`OXr#grAvbwVrwAk>;FeCw5lKeK
      zq((-G7!gv?$dw9PD1Kz49hl}h%_#xnG+=_OJWgBYxL30{gS)td$3&jsI%5$I(G@(x
      zbF9L}E1s|6;SHYQEiPh4E7Auw#LyDt8TlC?acTp%cS<HT7*eb-fzoqK6e!~kPx^@*
      aqaxG8;s?gC-H`iImkYV^ZSK6zTKENjMJd_<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95Is{nv73fAO-m@Wq1+x49%_M9t`!diDn+uWM5<I#AJE3xge{IE*=wZ!
      z6_<xfAou`23NgEmT7)VdJiB{5bI#1!{q_6XPXG^a&%**?bCTr2iTEgjcovCR1|1H`
      zNTlyZ(t}IbvOjaJ;viI+ek-$Co<{Ozo{VBi@S|CxWuh~}`tfmCFo|Rm91Krnq@Q!f
      zUKFcD=@$g2)$SAA&dhKx5!Nm#@Nk7t`<KVZ3SoJy(oDY+rw8LBDL;5vC9Ga#cDa#>
      zOe?5it%`MAC6xE(%5JOM?)$h#XiOQJikNA#ZnAF}4cQ_H*Q+R@Ojrq3BH!fGp-d0O
      z&`enmjX8ahDs#4A1rC}<#^;Ijd&LGc!~dAcPApBN?ws4zXtggltkSa%?<=ER`|Cb-
      z%&fT0ojQDjgd3(^-Z}8$@kdzX)7VDfQRxRN1BYXE;MA9U1NS>>gVGu5J>JjZ#vJx6
      z{1qFYnPGvMfd;b!Pgvn8ns|nXc#K_sH=8!Y==1Dz&45>8ymbEzTNe~%3l=5SA^|tC
      l&549tb`aC>4xdc1`vn`HcrE0M+SgXDsCCb4@7S!ne*kf?lwAM-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%TB^T6g@)=6sUlJ_+GdJ7Zf+Tkhrjkt40$wY*?65COD){lQQ+Yd@M{%^aK1T
      z<DHhE3u2SrJCAejIcL7U-#-ByVY`SN!|qfj&dh)GoiGagkUK6FIq~B=E{iZ3_R`Bl
      ziO})HTwU{dl*9o)Pvj)z3|0_H#ig1vv_>N@o8-%>b2XmvK%Ej|5QIVsb;e+Hx<dxj
      zjV8Q^3PW=Rp#+9C8+jBMYMzk%GI<#D_|_k5xrV1*4*gi@{o=4NNavSfpkbp9i!{`|
      zAWQq+Kk>+0Wy+Pi4AAa$S4Sw{q?s>-wow1`LOq=q2V~ixH)Yt-zG-E^LXm!k67Blb
      z^=BC$D8IsfrgaWgs@0Tt0u#rC@1vI9=t-1f!FH%?e*W+c>%Y`OdYDn{41gwD1Z3Di
      eo2r)XQP*Vi1@;s5Og7`Xsa(c2m)y-1we<t;CToHK
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<!A{#i5PgH4IE0jhgr+nBQhG{yh}Bbzih3XwYJ>$6se&R7$Z?i*sk@P!b*27Q
      zTMkGd`T=|tV%A2asv-`a@y@>YX6D(qcUOM_yv1t=3xxVu#qPQP!*|0;;D^HPa8M&Z
      zI#r<qo3Nf-##)B1C#U*IOeb*^h}~F?LP5v{6QzaHQ^M-WiI*z*YU~~k&qbg=Fk&YN
      zrIPw1!D_bp1iLdC2?tAr${d1&XN1!KIyn>x%V#p0>QDa9!?R-{zByPStjv&I9%L+{
      zJW8k(u!`q|?9M}HyV-5^7eRPYKn7Vt(UVFX#NUS^`r;4GCS}hU(Dx&0&Pg#33w0xv
      z<Eiym$xCi{PZ-AAE{%omJX%t1w&t6X?<FqoNz=LXkLPW(54Lzxi@y?~X2#_=3pqIa
      z5El8gpG2Tx-ylD*GB+p;tnzYiU|*v&$Xue_>s_Gwo1qI><5-5x@jXjzqmFmj<R9Q=
      za%-CKf)BzjXX1M1%_V9xdNwJhltK!?IyM+cEY;v>rfPFGWcv@Qzc{C@Q|{-aUCOl|
      Jxvvt`);<3%g}eX&
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@YjYE26n@_3UKS{U0%^HO5l9=7Vik}C0V#z>LeK_^l<Owhrc1Y*kPC8Afe}CW
      zL3A7)1s!G_FIaK3cC_ul*zuc=e(@Kn&%2w@)JCS0yzibp*XKFsq<{SVa2CKbc-@00
      zfi*d^(tSa_q;?zmjB04z3G3+BjDlA5z$wsTzg5j#_tEqPEmIb7@77Jdyhp$h>>Lzu
      z_U5x%GaT?KaKSCGG@+YXvND#|ipSKnp$Ygcw}Wa?m(Nw9vpk}g1lA><ltYZhIjwBj
      z>sPgGs$A5~oIoO&uoA13b)%Ye%$683Ra>orWN4^!p_&)V1kjA-X!T&lyqaxC3RYqj
      z3)e1IRD(IUR-;?7Y*=EQLmmVKR?XpM+wQOEMpi3I@9hfKV6A}Xl4?}6qr(E58#!8-
      zU^7-@y+rq^|HQ7=**WM%hk%Gk#itc)!e(Zx77Ch~6$sY{saY%tQq40aT?7?$qD#PA
      z&fEF|D}oJy+bXbu{6%Ed5xa*Xb`QnP;e2sSE$ex+84+yrpj%+|9BBhuDPJjOwEYz`
      zYiJ5vvPZy2u5E$9z6NRAS=W<Z&B_wZcgad3cuv7~?64izN|^`x|KeepKQHszB@k(l
      z%M&8|5W@=|?5?#^UBU|XU@u#sFL@{tPxZ^$n8U<Ij*(+{QPRC%U{{043%G00=$(Te
      z91!T3bACiGl{h;!koqoXw1Q-ZH0!1vnIk=_U3r{S{U~wHO?8a3tYk*C%xIsPGxX93
      zdv1u}TB3n`p37mW)dcmU>Ma!W+$LrEb*C+|1={M0t|esiULE+}ykV&2e9_L!8oAC>
      zbw*XBd`RKA2gm5K@fJCtmQ@9VI3ch+GtXy|)zI(qs@M8jC4DCq3`wGzj;G}4o>p)M
      zXIW~gk}g$u(8^#u-e4%C`gsK^(k$4}%v_l;aaG3Ui>&lR6kCIhOugW06X&F&uHXVj
      z*(kc1)h^3jF>mSA+BVJ@MXgjZ2z{-Tx^5$yLg$BSURhy9%`rGFau)GiL|n-xZCzFv
      zfhDzNtM%q9W?ABUNx^FpzeN_aS{1j&j}@hWA=pRFDQlt+>T>5VvnjHFO04~W4ImKw
      z^#NO(A>rn?hfm!+xq#v7nuhmBUYfX!VZ8=+ViE6(t-y0JpL|$?rM9v7lX_mt#zX#=
      zDfsWe?QfZQgw-dv&Y*1?>--z0urb8X6t+a&{!rHp!U6Xbo{hTh!*fDJT>;l`X!D0=
      zuruljcox1}yY>zO{?H_%4NZfs&O6xX4?RNcq`yV}O=Dj}O?OBJn}CxGx`%tIm%AW|
      zS9qSq7z#Y!#K*YH(+1!+HnOnOEcXlxKTE3&wjhfj&k)aTNYl$Oc3=d%FiLMl+FnE-
      zO7vR60Es(}YqY$9^SDW?8`Qo@&FhTz7B$~S8SgOaZN7OA@A7<~e;@I77a!nLe29Da
      z1Yhv!YkX!AA+sUajIo!eydA_Li=1)v^VVd^;&{nodK`y&bFx|o5`61oo`vdd6K>%M
      zWp4UXh{I9#f)6h<bE_-FCO*sVxIT%2*}GWc{DlBJCh=-&LQ42_*s=RQPWfAs{+6hd
      zvi2T{ufsKkQ%3^)KIi%p%>ft5&LqSB;VF#laJRbeVO6-*?L1Fu)ERd0nx#Rqt6dVf
      zH5_n~zSJ!t+Ph{y|L3c&38rAvaS+RR|AtA8!;f##h6h-W@6mxDuo)8wW0G|IL>hi(
      zNz*KDh7>#`fsY9LETMjYH}I<kV?VvLL4!f!!T$<Wn8>s6?S!>p!Pr6Di@Z7LJ4s>>
      z5ymjTCCD!N-a?Y|1kXpmX&W*&h#Vsh(j+Rg-|<pENWWWwB|kn~W@vl%woykKxoOhY
      ZGgqvfP2jJ(;dA2(1A_9a{BFXve*vIjdx`)6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah^!AiqG5Pg#-jZLE|9=r#8sD(E4tavFDgy2Q#RW|9iZb^1woA_Uz1P^|IA61+U
      z-g@Zey?Hakyf?qc?;ijQj6!&Xbf?>FFFr(8nNn0T%R73~TVrd{D5FF8gz?$6H>nBz
      z2c=c>Na#)O)&zfPHZnpFgBSt&gd|s5KDTut?W-s%Nx1I(*1{^M|C@gEt`3CT{H*Ie
      zA$l>bE#*qNb2lgP=k7VA;7t5Bn8{^f3|VEJ27>7qE<U;8A!2l6V1^-M+|>c|B`d-e
      Hqle@VsD@6D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWkG`DG5!mt%AvXreXO%V~X1uZQ_plOAH))W<{$uu2EX6j@HtQ)A{
      zzAq^53wr$M^1*XB2Y-Oa-{4R1_zT46-b`ZP;5mNCec$)F?|$ET^V{Foeg&`{-zCr_
      zu(9ZdnbX!;D^v3FR>{tcYI4w>@%*wCIG%gbnmIW&m_V~YmsSh|r<56WD#1~^;)Q<R
      z-WR%sk}Z%f*m<XHl}vli@~y!01&q<EZ_6!a%)octV!uH9kmptc%MB*1QfN!G3W%)&
      z3yZ!N&QYaqFOlL^uRzKT%hR?$qH~g1Kp)*(ySvq|ua}haoXt$!pr&F7B<m{c1>`x~
      zK2xyfD*}s7+%~Dotmg-lb*(lnXFWHVrA<pYV&YbLu1sKoz8<y$yB6^d1}PLW*=%Nh
      zp2ZaG87nLW$DDFq<4yqxbmT+dx83}_IbWXkN)l^W<59NCaf8y(EqCh#VpD^>ty|T?
      zZRB&Tt5?|D*Vn)8CXw0XnKN6$Y!{zsta*I;w4D$55ON@2a$G0a%P5<ACIp&?yn>wo
      zJD$Gv-6Z<h2Ges3R#D<Efkf7_s>0nAh8?$}Z|<SnNzaa?dj(pDX=D5P@;<tl@aHu@
      zKt+@NQ#Y;b%ia_gVX?#m0!^kTv5z!sNeq(?I}#(Llf)lXGU*}G314EA)U=d`u@sgl
      z4-c`NLzXMSzQsoDX^CTGvKEzDV{CAa%)<(?>2`|Dp^(atXom0cn9>PZ<S8<oMTu!L
      z<7Wbi0+})Iti%kNVY{ND&Ze+bMLo@W7&WwfhcjJb;SB9ZqAL(*zkK?bBg+&VM)Jur
      zw$cwYTT<*<I%52=5`-0rC+LVt1h)DBB%WlinTn@{r>V(wqN`^qF()ml#4e<;OeOZb
      zYE)L@BI#IG-MpAWCl)90@+}`jG#ClIdeZ<@VTnZ&OC**`ER*PzST4~eu}WgC#CnOi
      zL{g$%BCSGvoWdsb@H-iGTzgD^y~nI+wIvL_VJ6rnB}ZV(fS$u7V)!D3&#;BF7|c2x
      z-Ja3^xuH1EZAClaZi$9|>876BkA2eAYiq<&>2&?a!s}HZ0M@XS7}w<jHY|=7N(o9$
      zU;~hBklQG?H^?27(+%=M%A9W6cB&cGlvATAA4yX_iKfdN>{d{}t3h5#c~yhFn)2EP
      zxtsF(26+QksCS^>7<1l?Ev#TG3pl6iKvOI&uVY)T*~pl=xUt>LwHQ0hT*BCC=A^O9
      z%%xk5-8>UUzxgxv)Rga6%7aRINGb1E$_KRaL9Kk4%Gq?g@*Fe9O}am#EKFr_Tv<#i
      zi=4JNp)DTeDUFjnTMdh6(#Z2{Gi-V));u}N(;4NdtUP&jPmfc##i;O17$Hw-oa5PQ
      z%=1hdPw{Lso}s7n@oGxXDMv35xRma=j+b&V;;%5(*NFdwJ<PK?LSENMmPkB8-q1)<
      z)e<3ZYUDhTM1;JhkxN8mguG3}SV16NvwBA%D-}|+dRHN<6;iW$Pa)k3X^s56uaFH2
      zNk+&A3XuwFi;&9-X;VllLOxVTheFyT<RgVFG}(eHKXN#l@CnZ;E;3*TwqYmvUAT(f
      z_!IrO!5!R!{i2gQcry-&0q)>292BRxgMAzp7rBEkBP+hgn7D><@jEy0A2=fZ;sU;b
      zp{6E!{8UF#|9||rt3!wkDgP1?-~0<c|2GZwl_4@oRTc0hz9J^@HNN4=2}Uoe(&K|&
      X`GK@rLe=)T4p+5puG?PKTHpQy7O?3|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{xu$!U_7aCsFh5(uwCX^V&mEh?0PNK=IHFrdP1a!CWpO-*jV;<M5g
      ztnU{-@P!qNJjIT~$P9h}#}9Dxj~~JD6NtY(_ohY$XUt5_p8eh3J-^*^c7Ofr)-Ob~
      znlAduBWPLLEVUigkLzvOd{WOEZ9PhCH;?2CIo-<S%|m+O(57xb)d*@*h9xVLZR^Pt
      zt=&d3Un(Sx%_TFHH3WrIMlzGrvvFfUFX&djAV}+RV(VtQEp8PuX1YUAeOKNrTDocN
      z)3YT*Qk@{tDrkDTkS`6uWXfMs2%lO6h0Ic}&nRqFoFq*XR2OZDM%!DX(J0~#7+_&q
      zmCu?WpZdH+kUU`+$5Q%WQP7No_asy7&ljxyQ&vHx$MUAt4<BF7-PG#2fgFHo>hl)e
      zGAgIt2YRVgBo>RcL<aFgA}QmDUdmc~GPx<M`vnC~M*90V<Tex|x}b(+sZcP?<Y0U-
      z*O$*qT8P8!>#g<$R6@&`R<`RdgT;cpo4U7DxmFk~6V$jk;uNI4y}hGqzX}ydA_Y_j
      z<YykNF2T;eqejxgeaOyaHe+V2M{vUO=6!-{y7DQ*Phb+h`}!ocBNKa~JZz8KSMBSP
      z9snbyPuQ2sqvf&ksH6wssj$ni1CIZBNe@-far=gS(f-*%A4dI@?X~hqdCZ=aw4s7r
      zDUZPFdr6&wg34wRewQM3B<PV4&7hf*9uwrTuS(hs$w#9=9{aMStt@XydYt7oNl&o6
      zBB_VvBuD5C(JYSeBr4Ce?FmV{c|U|h;JJtQBOr-AisD1U3V+JQ%VUxb@P4d(hEIOF
      zvLBZ8tYd$R(>ct0MO;#!!po=ZOOjG-KMLO=Nk<sJ&gnC={t(S(W=BzKhZ(+rMHYo|
      z*r6B-F>!kiM?PtQuST(i7g(SH)mLUH$#SBBtD_&U=);cwyyFed_Dzm<lCMGW#tAC(
      z7a196_T@7U@-j10IaF+3WgC@=gK$2tg=h}vGt9OBNzy1}d4#{52~i`>^wZc~?diTv
      zKfU>{H|W5UW=NVPX||*}k{Tt=mDD6@fuu!}mPo3V6p&OeDa=QF9-`&cjLz-Jm`1Of
      zBYX5do>!Whb^G)}hIJS8b*fefkeAMf=qp-@cCh+0=$_`D|2ZqsQo*!gVamCEH+y;W
      zy*n=uR|9lwhUql@$LMY49;Agx#f!l`4F#(uA2dHS51{}QsM3Sb>#Otz=;11TI&?G+
      zd>i@sD~ZRZBrZuwT#1r%tNiA{zNt!|4}C$E9)Z57N{>QcQl&4Yd3+Cu>jmc(v=SM#
      zAb}Gq5At}!@;0qX)M#z-M6I?up73dF;t9XDHlC2$x_Bb&)7E44YaQ`P+E_7ul#MsB
      zaTgnRv+*`%yj>aZfN?Bb&yl^_&N#yFVvjg`>}8Mr?2%9&2bIS&SfzFdYn`TJ4QNTM
      zLCrv<bR|-TBOT*NIgXU)NY8PkB5ZwH39DZ_fmLdQSnISGum-f3um-hP5NW8^p>&D^
      zjQ}_uZn#aaC%nMl0M)mE|419bv&Kc<R!9s;t&6;)kTmDwBJV0>2#DWB-c!hFAkszN
      z2cpdb5UzNAz{q??DqbHl5@Dp`^${acM(W%+XBk<_NWeutW<)X)bdgUO2{ICLkxv<E
      zV5HtfK4WBh93?n+1CPT)Utm3e`A4*dR?%AQ*U`7Mp8lW?x`XlVqi)fN@xFq#iB637
      zUfM1WW4sq=hZx3qKT9!jk$S}~+9`g+aQ~fli9a#e?@*V=gNR?MQwYxw&FwrwYJ(KO
      zYggQ)um7RJT}G};$T6UAXdIXTr3+Z`f~ggf?Qmh|et>jRaD4Zw;~d|bDc|pu)x_WU
      Ch={`g
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wF$!VIl;qoe2q!3<((iRaBT2Nb_(i9;)45)CMT-rc#Q<EF8_^h-A
      z>-&Wdd|}mAo?^#gWClNg;|I9;$B*Fn3B=!?dvA>l&X}2;J^Q=6dw#p;?Ed=KtzU>}
      z4NV5gCun(}S!_M7pVV73xul*kTDz6lX&%evv$~benMd^ek<J}Ksua|q42xDe)7qUb
      zSbL2^u9#06okcU1F$6_YMlzk%GjU@;&+Aq$FG%ZlV(VsKYuw7G&AxU)HC;KgVCklH
      zK+hBnNmYVGi=Y{O`CM@TCe!|s!uZrIC~Ow9y+(eU;v}g~P*t=!8f|NdMx%%~V1R{b
      zd7m{w0rh#QAbH9#PNej~f}oj)?@6Z6pUYbZr>&}$9?O|lKYRjNcjMQy16crd>hl)e
      zGQ8971HDwLF&2w8HxA;5L{i2vy_m7~rL)sk_X`T0ZtU;hnB7=t)CJWhi}}1^CI{n#
      z+1^}6(jpvYUvIG|Q3)+=TA8l943-G0=-jcT%++JCTu}XzMyDWcZEfvk`_-sG5-FfM
      zAV2GHc?ov+9ygK}?n8DYGiftzZN>>Jnhpr6?8>E#Ac0Bb?(37(hD_{<(y%>lU$w7G
      zdH{@+K4D)jjh4nrqmmwkr@}774mkc7B|YS!<Ms`E(*D^&A4dI@?X}WKY0RFIw9!MZ
      zlty6ny`&EB%qjR?sv<#~!!(m-NqSU}&%P?D6OvCxeSG$1N!wW7khFv4HA#=NydtTa
      z<rGKg3Dazj@B|9atnCR&dwD;EGvK+8_aoqlJ!%p_z6yWR#Y<z74)K1hbdFDc%G(c1
      zdd9K8#n~L?z2YsYSK*~I_9aOvwjYJ>kfdXbU+3(ZS$~-3Ftg*x+F^z-V39#x9CoOe
      zLQGtq!;w!K;3_GW@B$0;pZdxSC0R~1aCP*Po<8j8&pF=UY~SQ)r}-8XZ=9eqe}R#4
      zW?wqzATKc^m4j#V3frhm9E9_EHB56kpJA^3Pm)F<OC$W{T$t)<R*=T->Q47*2I-A|
      zJwXSSG*i-SNpmF4l~gZjo}>mz3neX<v{aH`Qb<ybqzE7JS(sK(6B@TWZ5lmljO^2U
      zd0c5~)E&_CY1UmZ(4jgZL=|)~OkdI}bc5BOM)Ndv|Ibm0j;ii6EDSlf?dGg#x_9G+
      z;%a_wOEaB@|Cqcj+=8?SsZ?NY*P&p33P1}&^AQR_p)$Q1dQF*L3q4Y%&w!4`fp0xO
      ze<ktQl*A<|i7QcZUYXx~*f*5v3!pD7(;J~LF4LpXmzL?vXg=Qq;#Pq3N?L^snvuXM
      zl?VAMBJwt^PE=~G@q}Mn6Hf%RwedtyTNh7AZGAiu31}Oz2DSG16m9a1A7SIi*tm<0
      zx3ckeWxP`v?}BkGQp1rewB2!p-@_hp_SnxJ2iYT`JPs?5r?E=y2-Yf1#~RX-SgSPy
      zk@~zyX^wP)BV{>Kjw3zGkqWR4Xhp0+?G#q24Pvd*p2r%}Uc_3hy^KgheuvT-4m1Mb
      zY^3%!y_To|{yM0>3H(Re1fG>H@|HqkK>RN9wnF+i7Z-U)AwxidF7mEI&H|Ax@*WUv
      zK7fel^*$pD81cM5V5E@|&+9`*qKs6zan3WcjFFIwe8h-kq}oM3W~7>tu#0@cNG&5Z
      zF7hcOGvX-0g&TMrKKdN%A<RFbwX~YnVZWZfp$+s0wbLDp_W*4b^%(CfX}jpac<-T|
      z;wZ*@o_2|0jQ8^t6O+^<ZqaV>8;1Muv`74j!G4Fjd_F|{LY+c*erRsz5mGCp0PbIT
      zlfL?g26q{`E@8)jzNT?t0+hbRiWf{RkZgwwyYK^~lY-;BUmfT8R!;kVr>rLa2CC(V
      AwEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wD$!U_7aCsFh5(uwCX^MylEk0-gk){aYVTua3$)yb>H#NNhi_c11
      zu)bgTz!z36@)SD`BQy8`96!L#KYj$qPayvG+?yI1oG~*wd-ivC_xyIx+5Ppeo4*jz
      zTDlM*kDwKOW+{GDKd#4fg|wbC;$2GYFpm_9dELqu%tLzdP-jnoY6LYZ!;+QF#k;bD
      z)*fT9P%5U4EhRIPGXzC4Mmn3<b4g=BFX~pIC`jvaV(VsKJZTlPW?!42x{iW5Xz8Z4
      zU(b~cNwtDRi=df(#X@NSCe!|s!uZrIC~TJUy+(1H;v{K?pxRh-EY{i*i^ULczyJ%=
      zs(jW2`PJuTg5(LqIF`|e1_jMJcvmum{e_}+VA?9A^hCk5`r+fxyBnXLAIJlkp+0x&
      zmQgwF9?;8VqKQPJIXZ+N63G}x^is~+o6S#K-76?~GTPt2DZgnjstc-5mx@KhOb;c8
      z^1X$eq{TSQzSd%2MkTbYY2`ZZFjy+c+u74u<yv8|LQuofs8f*E*4DPF{TfstjTBHF
      zke_|9x&*s=j~ZzU_aWQUxvZJB9>NJLoAwK;=_q830D(#5&g+xZicIXu@`ycQU$L)A
      zx(|$$K51VnkCn&EW0LNNr@}754mkejB|T6<C+zF?1^Z_QeGv6iwpYue<#BsT(xwV>
      zxjYK1?<KWY&YXhZ#aa^dP?%=XY)Ov@^4M1-ZGq&IQ6G<eNzyi!*Cjp1@~WiASzeaZ
      z#d3-xbcbmUM|c8-XV&(lq&>VJ#u@P3%llDq#2z*ABVUC->Eh*aNj<zDFQ4I)pQ`Lf
      zBt7HU-{fo#^Iq|m)T{9FDf^<N4BL;vcUaO9#;<Yq%&b35bD7yuWbH7+7qG~oE)F}?
      zOCcsM&*8`?4RDndOL&0=`cHjjhLS8N8n`<8@rpj;=+8Oc;B4REXeap=6mOiMGJk=Q
      z31(kD;~+0FBb7tN<`uS4nK%gN^J<vpaXuql`=2C@L6%4P%b74W(Ch$>-_f1!(+toX
      z|9XNBENPacIg;i|nkT72(tJsck`_r?B59c<pQNCqI!O^e;<GTVq$V_OSJpJT)fm~U
      z_wu;X)TrC97qhIppub&pLXf<4K1^TIYIK9upGEUDb^Xs#iH-{O85V||+jetTHr>7P
      zf=M+$w`G}5<9|%v7H&aWj8wds+cQuwANipLpm_)dpkS3Af?ijp*F%p~=`*3Dap2p)
      z&tFMAHYIUMO5#eCoL}X)0QQYl`a<Z7s`M!IB~^M1`m!p0IW6FOKwK|4ucFn+pcx6A
      zP<fEY8<DqYO{zwVCsRIcZ8GK8)+JK`ZGAE&wGGKs#IJ3{8qnI3Q?$8a{4g6o%EldR
      zyp@f&E8`u?cqfb#kvfj-)pjKjem8q0*<&Aj9AJ->@;InGp2jM*Ls)Ay9cxfaV-0Br
      zBK1`wWjWF@j+Ey}1&;JAM;e5!Un^k^XeY2rZ3t_v_B__0_9E7h_A(+3`y5KAIM677
      z(~<gH^jgXb{B=-$6Zns`89ZxT<Sm6HfcRYGZH4r4E-vzpLWY3^T;yGaoCYFY<UJtT
      z0sxVU*ZYhtWTfKt0V7dHDqbHl5@V#+jdPZf<%|Sf<ReBTBOw?0n2``8VHf#?k$Ohz
      zT;x+mW+qXBbJy`WJoGu%9?U<Yb+m@oW50pEp^fwhwb5;icRy_v4H)mMXuD{~c<-hi
      z;xNX0k#>p^jQ6vY5ErOh+@xLNHw^dRX}9<jgZ(yjcsz*sg*t`s{LtLaBcwQ_0Pb6L
      zgTDHQ26q{`E@8)jzNQIa0+hbRiWf{RkZgwwJNE;mlY-;BPaWs@)=c|;r>rLb2ElKM
      A2><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wD$!U_7aCsFh5(uwCX^MylEj}ovB25v(!+;96$t4XWH#NBdi_c11
      zu)bgTz!z36@)SD`BQy8`96vzvj~~JD6NtY(_ohY$XUt5_p8eh3J-^*^c7Ofr<}XCF
      zmM-|nC1^$3EJcs%$MtA7pVYHPv{#Ak=8=3Mr(2o4c}OoD>hAGTouFoASh6zNXm6%y
      z?KX<}QXy$<DVeFPAt;nGl9`;IjT?h{LAUY+L0YdJTQ}3uxK+rQ=?*~+U3s%;>87<$
      z&z1~H^@2p3pqc4HzBCAvX@5yUd}<XGG)uXDqp(eJk~Bk5eWW!KX>W@}B8WF=fQ4yQ
      zKWl=#>hm%|@`Pa=OX)*JL9-6tl}vFUU$FL1TLqLJ%bV5!e7rel<I!`2IRG=%=dHSB
      zR8PAH^irvCEEa1G58;PIQpORzl(qI`a?@7#3i6)}4-9O|Z7PO!L5;~$p<tNFq4-d)
      zKcAJf7>AWFw^c?_2`yt<*{(YbmI`ur_dHSKT4k_8P}9<|U6A(n_KuqU8dM;O6i^+I
      zpM9{l1UvhW8c7THAv=@VjG3_>!U-!|_6e%%%BKt;fl27j>yy-uOv;m$k@7_OO8J_k
      z`@l%)ljTd5vC4R5Ow#@ERM;ih0muKmqz9_#MEQF8LiuMKeGv6iwpS~omGSbFq)k=i
      za%B`&-%IMOo;d}-i}fVvp&-qo*^(X+<SJj0v;~q+-pcwVN!wUnm-HCRtCAjPd0A2~
      z%PEe~7o<5H0TuN!>++<e-Mk;h8Svc0`%!Sj9yReIUxh#E;FWPn2Y5eTIm0JERo#zB
      zdd9ZD$=Mv{z2YsYU*VNg<%^P1Y(ECyVM#|AzsA`!vw<MZWoAc_wapA)z#@yf*z8a*
      zg_yWJn<Jkz$W>A-;RP1xKlPOvO0w)|;A-o~tNMtoKWBS`bNL2GJIS}8c;f_>`3sCp
      zF#F0G8+nNtsT`^{udt2E#6~!uSA#T<^BLjV|0HP)vNFnF&IGB6X8UOTj_!1xrjOqE
      z*Auj1NwXx)ku+D*JV{NG=1Xdpv`EqtNy{X8B>5#ZNDA>0p9N_pwV-i(Gp5m}#>gJM
      zpU0J^M%_NWkYU{cy`8EP{N$$dLHd$bqZ_P&44S8<_kWH`bW|X1SQv6n+s$3sa`(pb
      z$JPAYmSH;0|1o*nxCLo3QgLH$&p^RE<b~#g<{}h;{55(2dP9xg2t8Dz&xDS~fo~H(
      ze<ktQl*A<|i7QcZevRJ(*f-bc3!yKn(ZkS})aViD%WCxHw1Dpcaoym&idG|oRwQsj
      z<v}iYNZz6~i8?JBPk6Mo@q|}f7f<-K_3?z%HpCMlueK4ZPwR+J(dMf0!)*L08+WmB
      zHyigT<L%0L2aIE(29E63cE%BY7kk9nV=sH`XOD#PIH)|H#wxW#SnD+%t6xiE4QK`;
      zrK^!L9O)QG%5kJTM|zec6=CbuN?3i`39M2Z!dkCAkJYceh&7<Sj7Y;Co6;!`Gz#E!
      zsPPuPmT&`q9aP^0{v&M$&pHQrOCd2J9tU|_A!*LVLEcfwFc6=EysMDYK%|4b2Si%{
      zAXN2wpOJ-(RJ}f6B+N+F>qAB&jMO`E&N8x`5x;|c#E4`h;2<9}5@00gAfGVO$Vh{O
      ze9FkoI7)EtIv$6MKF4|h^N(m9t)cbUZ=i2zBmF@gbQ|N{OWmRg<9!wNh)#_6KH4r0
      zW4sq=hZw<lKT9!jf%?Qv+9`g+aQ~fli9a#eZ&R1cg@|9MQwYxw&22wIib4wDo>e#K
      ytAA*4myzQVv<>KMngAw1>07LL!PExHcDS%}KS0_k*uHz!akg*WwC{JyYVvOt;fSOF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X?GK46uy%*$=f6?Vb}^5352aIZ4nWn#f7q1X^RjR11e0DAst92but0#UT6!}
      zeZvJetlG*d_INmQ4*md-KOp(y2Y-OaUm!mBotYXqc#b*kd*?pybMO1yce%g*ed8A*
      zT0;{d@+q_|YnED$YR9#fTp_LH^p-AZI?W>mE3er`!91i{hdO&gRHIO%B$jL=*V1Ja
      z?cI8@P_okc=8~Do=?cX%dfLcqxuo8&S(;t26jHmK+?ttfN!pfSX4@31>nNB-TQlu_
      zTCSuEs#Qp7R%m+GDwO&`nTi(_#ndW=qGl=It6SToCPCAHBvvK(ueCXmNFZgu4k4!P
      zF;s<WJ;oA+#0gzLmeB@^3e7lpS4qXbf@SZYVnw9iT`=uF#02y1M?lN>=K)NU(_1uK
      z_ZGYd`nTd2&t&4=_{9hC1D4T`Xr-LJ$H-4n?^P(=*S9ghu^89l&nr})E?JgtrU#M(
      z`QAcK&_ad$f1I4a?ir??>$qcfF=jh^c2~uD8kXUN7RSA^n_FAkR^R4gAJQlU+k_Hk
      z9<1JooxMl(w2iY7?dhCh8umk2WqH#+g=#tq89hWepV*y8DX0~tl*cPW<+1YR@>N0i
      zL6!8!%NHvnmC?$Gp!*Riv5VjV$Nzaj4|wQU`C56R{Ii2Th=Y~fE0y8OXn9i5Mi04E
      z83yZnLG9j}lZd-eOA0*{r5Q9+&?5@@%9jOghUJyFuzyj|Hn!IUJ;wHmpvT!>64b?Z
      zk~8!~X%=UA0%y&t%j1Hu!@<fR)<EPQ{vL)#d}B|7s8`}ox_D(&&;kA)t(@VNpYpzk
      z1U=*MZ*Vn-`CIB1)GP7IsqzIu8Rm~5c2Lj}#;<bqtgJ6evsu|uRP89k3{>Q>FOE9w
      zmqbh)o}-ah>gQdODiH-0mOIM|1=&tEXm$MKo<HRH&pFZ1T)xiPa7&|(Zmb|Hf02<f
      zR$n>eATP5bS%b%Ul{vB!2jO~7MrjV$GsJuUlb{jU$}rEIiBbd24AJNvZ`8e-A$sGs
      zE9k(2W(b-kXttm^f*J(P71StbfuKc#mIw+63Ja<e6yqg6i_&sx!t?DiOua|8ls#H6
      zw=Pw-y?vTxu<wGwcKH&*<frpd`jS@SHQ0Ry9#2!(|7@FhQIV`}qv5&FZuat~yFa{e
      zQufkq2Fq#uk1pKIPmmU(6hC_SG;COag78A{e1r|4aFri{UsvVV!;e+@)8XUcAhv<8
      zzqGh)(&CV$#gRxmw<>NP_>EQmeE18h{5bqYRel2gk}7{G&Es=GUOzOipp~d#6$&^Z
      z>mZ*$CT`N|RE^q_Oa;_6$y88Xn@ok&b;*=a*C$i4pt=ELNNr0_(k74mFq0o;atD*Q
      zGI_fscS`aOkh^1boY}ALOd|a*j!1IEUXIw$5h)pQP)0nBQK*M7)~XuDu$smgQFUa>
      zdYKH)bc{3QIa7f%J<FMj;0Dza#*lgfqfiGh)~YXH4683;jHs_5(_p}nbcz!V12`S4
      zze%s9{J>v_)Hi|uNSmOu#zo$eNH>sxi@Yt7EZ5>9??_}2NXSLrmB?uz!bRQ#qRs;l
      z^P=8oWIiKa)CY{j8S$b%WF)~zt()g8BTE?xyU0h32u30<@-ZV3MxrkA2_yB4)Vau~
      zj7(2r3(j4`<?zwx7!RQT5v`@wv<~0v=^NTWe^MLWLVFL=R;2;$eFbe-+R@&7s8czN
      z_HNM*WeDy4EOjdr)T7*>oyu=$?!VJ6<u5e$Th!t6A>$Wv6~gty<903~wZJOC11ql6
      ySO3c3S4M6~)FIH<GzLt8q;E0e22(RE^KfA2et>mKaANn$<($}>so3u%Yy2M=!-{DD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{xu$!U_d;qoe2BoJPO(iRaBT2LtuD{ZlahXECClS>;&Zfbf17N3>2
      zV12*vfiJ9D<SBL>24?UBIDUYefBXoJpFsTWx%bw{;Eb8c*|Wd9yXUui&hD>&-TH-y
      z*3g9@`2;QRGmFhf_2YVTHlNb7MsueU9p;gIA*WlJym?439O~!^QiY&;WmvQ_+2+p7
      zptai=%ohtOV@uIYXAMEow2{i>^lZWy&<nbiF9^~)o!GkB*PO5l8MCidP<4CW9JF-P
      z+NWoWhNLP%qDjz<zCyk@0F!BdNfCT%6cjOwxn85NU2&3BE2t{o7>~C!#p7|r8!*7a
      zw7k!npn&?kRFFJj7{}83(4e512k%K{us>h0_D@@dmEM&%t$z3fa_**5&kf`N)T+;0
      zb<6NhyASlz=~!1+S7U4lKO~Yij_Ad#wI`FCwz^+X=wz(Fe`9XrU`!WOlPVSphM5{l
      z4CQ+BSxJj<n0>9uzKKd`8Pm$P-(|2wkiVm6YniLZV7Z{WB{8QUEiEmrW&72rKnf|K
      zIv_vmV0j64^&T}+7Vbl~rLq|_V{OI>D;o9*s%X!rjUa(Z^zQ4E)PhXx$<l~DVPCPY
      zNqPW`ls;)+Dvg!KOJkBAgr~wT!45e7=OsPlp%eCX`+|MbK_5o_l<n2hXldM@lC;r7
      zE|*4O^@F4~@60LqU92KOn<F%nW=VQfkk7s%X$vHujQaTOOOm#;ye{c+mRBV`!Sb@C
      zPL@*~p*upeIl_}DJhQeZCGF<@FwTJI9^Q|FBlf6C0QoBXDHkt|OFF>&@zNPS`Dt%I
      zBI#Mj{uXC*nD>geq+W%WPT3bFrP+QAzQdA^Fn*1*XJ-8on#0VFB5Q{kzJNs*b#d6C
      zUJ5aBc@9TDX@IMwSi%b|(0}SHGn8aG(ZJQwk9+!vqd)I>gR^~uqn+eiP`q)1%KSw}
      zCYXKcjDx()j8qPu&8uvqGI0>j=d}pU<$OlC_CHG+gDj2mmopKnqgg>3zpFdlrx~O-
      z|MdhNSkg>Mvn9=uG*?ocq<NC+B`uV+Skh8Sm6Ae|swGAFh|eRmf*R1cof*^UR%2w3
      z-pk`kQ=@L5UdXWSf`K;G2_f>+`3QYQtI!Qre+JFd(D^?{B|0kHXIL0=ZrjaS(Qxm^
      z3nkS2+@4`N_5U$>o45sO5mNDEZr7q<l@x#$gytg@fI?+@7<zS?UIRT^rq6(m#({4g
      zKYu0h*p$R2DTymla$cF=eAw5Q=?kDQEYoAq7nkXA=u6A=Wi+4f0df7{ypmQSgGMB9
      zLghg|e^lP4)yWF2IgzZ?)+CYvZEYeM)Yc`EQd^%$Mg!UgtU;|cF-4m^<44%|F*a^z
      z<85rbLm77{<DD?>idJ)EzqTuZ@ICC2V2{1*v7bGX%HyE&cm}J~4q>g*bgUsQg*B`h
      zh}7pr%5bD(94W_<@*L?ojx-3{fL6pB)J|ZP+7Q+%?FFnM?Io;X?G;2Cu5>7!;y|MS
      zPDg8Q)9Xn;@Has9E#N=VCh)9qk+&7n1*FnN-cd*&=i(yoDr6W)&_&);$Y~(bMcxOZ
      z%?A+mygp!L0VAH*hm6D+@w`4_B+f{c8|N$|%NPl{$j6LGM#3)g2_s=fA};bNBQ=av
      zyU1sZ%t)XF=dR;%_~;9)2QdGL*3xQPhy8l`mNw8I)Jk_S-UGBv)M31@q#dFS<Gq_Y
      z#9@s00__wd81HAPOI)CCaf^0|-!R;NrylVq2Kyaq_xTX<OLYq2`JuU;M@Y?(0(j-h
      z8}#)*G`P#ib%{6z^bJh_6QJ}RR=i+pf@C{f*ts7eofI73z3Mo}w_@7&du28GH^bS9
      A1^@s6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`H>vB_76vzL&X_DPGE#XjT!6JchE0nf~h|mH`xd`+kgo~jnoF<3%Kyp%(6R>!}
      zOX)B?fZw&wfFMGt4kI)80FDoE^2JARd;;;m_c^JtgEKl~XS#RRZ?CoXT5GSfe*WXh
      zPXM;#vnc8WHjO*wo=fHxvnN-`m^rIwP;W<_i-ls|bnSw3-YlL!HWEd>K!;W=yLPT;
      z&@Q<rtx};}%vcA?PBv!=#Ish$&YQWEHE9-2w@?%?27TYAGv1SOi?%b~C(t}la7wP}
      zxM$2<*^+1w5ZwYx$BTvXBvlsdC1O145{NnF{FqfdtYeZ`BG8cRN+x@|lgT9gO<Ih?
      zajVCMKtvyJ5Rg|b>vGndDhVtbeQq$Ni9*pmyP(yi<)MP(PS7Tj4}OHr{A8YBi9SAP
      zx>ohJ7Z_ePn;04z>Pk%UkBMZhi)K0Jp0e``S}zJTUQ0|&?8)ybB}{>qOu1OJoXk{e
      zDnC}pNv!2%-h*y$mX$DU$IT5aQdln#IyQ2!#<Uv2CV}?#3BMq{y}f-kzqhdh8K%JM
      zF!<Kd+7gV6U9vJR-$V9ia<*f;`*_3V&NBk_1BI*=1tW<sem;p_X5!thOnbB5eeZ$9
      zON>a%x4nCnnaZuojKs^d)a)Mh$oc=J#4A-g>&<z0ydQn~D(k0pzpLD+-16on_EgEY
      zl^fLhMxwuZ=REE1Hb7us49n1}e!UjMa<obu5NNA>PERwHo0XY_f4vrONw93v`<}+P
      zy~h%VmGqVOkkXvQ8+5J$_vV$h#4(;KC;sW63g*7|i05<u`LMFS%V2MMk0jn?x#;VT
      z#7Pz8EDJEr0H!5Q2`u;S^42+36hEL@|A;kiTYSVKsVF4gqTS*|w4KWKTnsDxyx)$Y
      zP38TrK%Mu4#0Bn^8%k#^hIX_@kzLgD!GlL}@ox|7V~J%F%OzGwv`Mr}td!`GSR=7c
      zVuM6jqEVt*BCf8u62oS6@^cup9cx&BoTtn&H3SSjK+c#&Tgd^8^y~g=L<k?mFomrw
      znmb{$B|8WI<p5%zHjP^@M@P`iD>ipNznvRXdMX{ZRX830FweSGV`D8-32_=OVZp+P
      zP>NEj0}Fu08o7ybbB)|WIbI_#rObAuZM$klz4Mv$&PUQapG5B~YwT80zoSN8O?gd?
      zoS?j}Mov=RP$O@|D)kQZ8)D2`u$38fF@dW(57dR?@+r2Z>y4gNI&5rDr6b0UR61(x
      zOr@o<E0vB%jNM$LMqg?kd;g2_{&=(U95P-{(fxpOe@MAMqTC-<?vHEtL)!faS81H!
      z+F+!(HX5h7HW_DmZTf%nG#d6pdPjwHp03S!%Tr|1A##hMj*~yaUItJfkO@uplY|3e
      zYmz331muz?qa@LQT-L-Skpan(7^?{4Rja%rs}-qQIf^6{sah2jNh;D1_?c8>qauv~
      zc~23kNK-(HiZm$_3rI<k7Dbu^;wrK<#S)a~*c^4Z%Jm#42e1R%u#>-c;cM*1Z|K7_
      zPR9riiFVG#EjS|jIT43(R9xUBEaJGB#-R8DL*fpG#S@H(UpVuA#R>5{C*Cs*)YZ}B
      z`}!8J{rGYFO^6=uf;_zCF|Pd;hWg47n8bVqe29<81U|-fuIylRb60wNu<}FhehR+r
      QX?>k<TfboYiPrk`Po8H-i~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wF$!U_7aCsFh5(uwCX^MylEj}m@u}u*I)PM@N$)yb>H#NBdi_c11
      zu)bgTz!z36@)SD`BQy8`96!L#KYj$qPayvG+?yI1oG~*wd-ivC_xyIx+5Ppeo4*jz
      zTDssTkDwL(W+`@5Kd#5J`IMeDV%<vYG>_y9Io-<S%|m+OP*<;?Y6UeZ!;+QB#=0{_
      zYmZUPmkKFkOUX=U4ME|wk;>%sY{D4S3%Zpr2-3Qp*t*#tOIU@B+21axzB6wYE#0*C
      z>)DbasZNk+6*RNIkS`6wWZGX+2%lO6h0Ic}&nRqHoFvT<R2OZDM%!AW(J0~#8em~s
      zmCu?WpZdH^kUU`+$I|*xQP8Y|cO_FC$QP{MX{(^p<9X8>fR8WdZoGPKFb80U`n*-Q
      zjLK>EfL=NsiO1tDks<t$NZL4}m$KI0Om5ohUO|DAk%56txlP50E~p_@DijPeHIx|2
      z_2sjY7UMAcT5I_fDxqaeE8BU8!BRmrUA<eYTq_J#2x?p!aSGDb*4AFNUxNyykOHa$
      z^0N<Cmta@lQ6pvHK4eEKn=v!iLpWh&^L|0Ko%yukCol=$d3}=FkcmB69<e9vEA}->
      z_koepC+$n+vGRC%Ow#@ERM;ih0muKmqz5YKgniw<VE^o(52Aj`_G)>wJZ?`(+EhU<
      zmq%gsy`+xHnN#q)SVw{$3ehZ@E$I<K9{Y-<Es%UN>f^C5N!rfxx}?WgUX}DX%gd6w
      zSx#|;o)FF92v4B!%-Wumw1@Y@I0K%0c|Qt{*rO&s<g4%}UA#Ol=>YG?%V+rHrz-mq
      zNzXX;H#wWbyjQ#>^(nl3%DyNm&GuvP9hP*2@oSttGaCreTxNC@Sv$<|1uU|ti^C4}
      zQizGmb2#!zgIp!W5?)||{!?F>p(M+R2Cj~NyrPdd`g4vqINLWk+DX0z#TzH6%wJ$+
      zg4vhPILJ%PNaawmd4+9MCJw^+yc(i;oX-f?{wGOekmXVSawbHLG}}+(cXX%wH2w6(
      zzn-82OPVEVj-<Jg=1FRlG+$Daq(zdJNLnVzD=8qUUQ(Ek_$)*#sTqyioiU9bHAeR8
      zeLSu-HR|^3g$(O1=<86O5TF`5AEGa5HM+qX$e?+eyZ`5?L`Mbt4GTlgZM(TEoA2Iu
      zfrOf$+cQk3=|3iKE4LsmMk+O!+cQuwFZrPPp?L@epg@%#gkE2zH$V?p=`*3Dap2p?
      z&tFMAHYIUMO5#eCoL}X)0QOB)`a<Z7s`Lo-B~^M9`m!p0IW6FOK-?N|UPY^sK?@Q%
      zq4FS4O<3NdHOX2nmPmTFwTYxpTbD@swe^Xl)HWoNVV|}Ut6ytROws0w@xyHVC>wXO
      z@isQzp^SGb<1QG-!}T1wM%$G@_}%Q0V2^$5(aRo5<#AAXJdIUqhp^UZI@W-e!Wz^J
      zMCz|Z%5bD(94W_<@*L?|j#PxLPb*>dYbUTuZ3t_f_B_^r_9E7x_A(+3dmT!rIM677
      z)8U3&^jfk8`0JqhCh#9=GkDgz$Xg1D1M#}Z+Y0IDTwLTGg$x7nyU4o=ISoX*$a_Gv
      z1pvYoulE^Q$VkQO14bf@RJ=Z9B+5vg8|N$|%NYr{$VZGwMuIN#F(W}nLN4+NBMpqy
      zyU3@E%uJvJ=dR;%c<6Ji2QdGL*3lYTkNpPvhBne4)K0fC-hH%9G-AB3q8*|G<GqJ=
      zio+Q11?mzb81H8(E-p}yxJkRjZy4^s({Ax62K#O5^mq{Q3v~+N`JuU;M@TV90o=Rl
      z27UDp4el~>T|$lleN7X<1Soxr6)%`tA=wTWcJ2pACk4lMpE}O*t)2G$PFYR<4e5D^
      A@c;k-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`HZF3V<6vzKJX_DJCEnz9NV39z0DwL*(h|nV1@*t8HAv_qW!ZumjK(eXn1}r{n
      z=`ef%-)o%#L6lM*MrQB>IDUZ58$W{MClLSl?xw~L&ghJtbnl+uJ?GqW&OLj6{^QY4
      z0CwWj2m%6I#_ekAl6l2U70WrZXr<D6Ici@lS4yT+DBI`F%K7wQ1Wf{6TCwUBim7yA
      z$~kFGm8+GUHCVOtMN1%_w{nG&S<G0IX2o>M6#*md`8MtGRK}?k?D2kq)}gXJ<(Rf}
      z#w=DXiDm)OE3kaLQm#%?Wzk+D#;qQKm|ZQ6S(U>&CW&PN&B>l*vadIpOw!+^#VBm2
      zzHJDE_4XzKdDXHm=gsLUffb`q4Q6VhTyf4WYPD#2xNJKUv<a8|mylVSED<cz+Xqd@
      zs-N}@!^`Ir!^6WpiD~{Zk-T-$tQMV9h0>zdvjWj;iHV7QrF~NgQ=lzZtyC;KH=UU-
      zjg^ZM>v>phrk6iftzbLFp(P3%1%m0p*Beah5o{6Y+?enR(%0A5-|)VJ7059KR)@j2
      zk2aRz_}C>Y=kPw{K(1J@3(iYCVQcppfu^By-im;c#Ft*5L?1J8Z`EepIrpCXoy2pD
      zNXxg}yS3Tc&DyNQ^R(3LF7?Ry|AoX0bvozHySLpRJ^CW+r**%rU9a7A7bN!8$v3s@
      z)cRUtpnm28?d~)~;H4N=pk2Ma9K%YqOAHEh)IOu9+1icTY{ENUi#H_>GE4V+8sBms
      zN*q?wm+pN^^AfMpxeDA}P}&l&aaTF<cGD`Dd+r17&wKkL%K8q2z2QEP;Dt2N*KLWD
      zD#$q&V1@zANSqQ_>E7X~^QtIbKy%&}YuvGPi$zjVNW4M2rHN=emF>A0R(W~98AFH4
      z`)z@M`-8*<uC?n*XDo(Jv`3I%()0d>M{x0P7wch(6%s2YR!MY7bV{t2=#p3`u|Z;!
      zL`Whk(JB#FM_h?vE4ukPqzkq+qCd`4=9n4+h8`ei%t}GYJ`4}&{)!@q_hOjFb{5T<
      zD6l2F)Bkb+u}@pZEr+ASZ{}57yPw|9(Ttu-hYKp4u78+ky{fUXo~Z;m4VSTCA%rPK
      zC<VX*Ale|eP;PCI+bG8y<mHsvj<oGm&8SyilU{jAdgYbqb#;T?8tQj7$ZILDYmgI^
      zH#Epe%9|SG%~+%EfqsLGc^kGfgB~VuRp)^~FfJcsN4CjGWwIe-XC@mqc4e{=V|OMi
      zjXjxcJZ$XcGh*~-7O?-nC?ANoD$haVl?>evDffqz`y<NzQRV)ac0a7$ALmmVC-`hO
      zGJHmj(|ooVXL)S)fAcgN@<Mt`g>;^-&3M~m<g!6>i=mE_Kfrzl(BzW|O%9NRd{WRP
      zOA_|UB~3<2B0jmSiAf@TQY10f5X9?NB}LXMQn#`dNhngcDl3vyq}lf~smNwUqCR;?
      z5vfRvPb!MEC=&C@lp<}4wEDzRWO;@qsLr!F0=UZOIZh5>7j|Gb-}m4v?8R^B#}iJ+
      zFb;`M&c$swA_h1SM{rbJ;3TZzn3zFYe2!sp8zbToj*DM7^M1t%@jEBp6AT3c^!Tnm
      z1#CZl++GtR#Z{1pwmrnPzrs*o8GMtNr-1kI0hz#u_=rz-FnYNvJziM#K36XV&-S!F
      O&a-V=wEb9Xeex&cZAT;k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6d2>@$6hAj@liMUM;jtAg5(rzNG(|*&78lAQk`y5<22^-W9%&$XsmTjiTq|wC
      zx^KAPhE<EKV#i@*20wt~2YC6%kKp(T#NWB^rA7v4%uMdN=l9Mz_jk^{=luHD&0mOU
      zHC^zLN6@m2S&kmnkL%G~A*JVxXiSOi=8-}%uUpxIc}OoFiY0wiFQ`=+maS|q8q1cf
      z-A1WUE~bo4Wiy>K1clN@Dx24H31dJn>Q<pBNQ*hKbu$x9SjDWF=@Qh`Q!q=GZd&{F
      zT-lJ+C`fb&nw}{Z$^$T&@|P6Er*=U>vz+fUidz*YNz(*1M%p8h&W=bVf_MW4SeRDz
      zvnI%^J}(g@PZ-9rv_4o8G~?i1$&~sFMQi_*RY2+Sf@$@`$D4OI4SIec4`7=5yji!5
      z>S_0YUOF9)$K&ncLHv+N+Bl+@bJm`0e#+`zLH?8B{{9X54W+Oys5w<G77a5sm>A6W
      z6>^dm;xPMKM`ak5(6XkL>$$^Vv7owGa&wJqmBBJWEsMiWK{`7-yK45UP=ORuKy^TV
      z=E2$$?Cd*gq%7Qr>`vvfX4ZNLCoFH<C#b%skT!e-CZRj8Pf{l`u_r3S_PBk;z9#8D
      zFjD%2eW@~98LNy+x*whjy97Jn_@9^bKouRguiF>wpB?l;)KA%7t&CL0>`6%*s>tQa
      z2&}%B)LlJu5`GsONzg+<nn5!qJtD|sUy-y4l21l`JoY6?TUlP0^cc&lk{)MySyGJU
      zBuD5C(kzbf1Pafr?FmV{c|U|R;JJtQBjAWVYT`w{3V+hYD`S!l@P4dvhEIN~x*wMG
      zjAMV3vpLLr#amLJ!Yilji;~i8KMLO=Nk<sJ#@REo{vgd}W=D~=!wg@*B8R#->`*U-
      zn7BNLBcC+DRZ=YB1s3Q(^_3Y)vYcq(>gdO-`mm!v=Xis&eS@Q&<Xcd@ae~VH1xCi1
      zedUaUyu^%D4pp01*hXdIAe_&uL7Kz)40G*&k~9ig8R0Kyg49AYeKdAQce+p0M{oS=
      z2|BQ(8Iop6nk{LLq!vkYCACUgAZd}LC6XE>`6V?;3h@!21!+08p>bnb)96)WWRKp*
      z<4RMbZl7MvvhIT3Zq*5Xs-yEk`jS?n8?62;nx`%HKSw1xDv&WO3^}*$W-o8Md*k^N
      zYJP6bGM(1{n7kd_g0v8+)M0K<L%|xz3(W`3Lnr|GYxDs0rW(B&dZ<R94jqjH-xhxU
      zO5(98iAz!vSEA(H8ozn4Z>`biLtjv%hoLX3(Ie28)aXlT9^V7v)`9a1T8RwWk-!O+
      z2YKp3@)oU1)@#v3vO!y&NP4w3iKI_kn@CD+T_PFsYU{E3w64S?ZLAtU%*KzhaSt1B
      zVdHJec)K#*0pob6i6hr(I}-@Mi#-zTv6nsevqw^S98?}pW0l$=tc{wE)vu+n1~dba
      zGSx^~j&zJ8<vCJ;BR$KJO0e~6Wvo8!1XigHVr|r($LiN!#2V0EMx>zzhteqyGy>ps
      zsQDJXmaGH*I;g%0{72ddp7k#BmO|n{8eHUUg=9Dv7kNh^LqL2k@~%Qo1CcKB9uRFF
      zfKb)zeMaUpQuX?PkuW1wuMZiCFw*G8Im^gWM*J@F5hIe3fQx+0NPv-`i+sXJGb2qd
      z@+l+J6DYyC>v$X<`W)*4%s-+vw2IbZzmC44_4EgI(QS-(FKrPm81E}+o9M=P@1^bH
      zFvfe4c8Fn&_p=li7pPa<q@Ch74ENt@m-rKd{WkS@Jc#&(I)(83(A>@=q$s2S-mu~Z
      zef19w?lN*+f{p=wP2<1>D1D0+FPJ(Y*$x+W?gvOG1;=-<I?nN}pYr`qSxx*6Jl}}^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{xw$!VIl;qoe2q!3<((i9O9T2Lqtk){aYVL*l3<dO!Go0{B!#b>20
      zSl=&v;0vo3d5Rr}ks15|jvwIWA3uWQClG&o?!7fKIAdmV_U!NO?)mMWv-|5`w|*g_
      zRdg{xK0!;<W+{41KcPpn`J|pTqCHCNFpuU7Io-<S&BJ=(aBNe6ss%MG!;+QBMtd?v
      zYmZUPmkLQ^bID9)4ME|Qk<8@uY}^>o3%Zpr2-13-*t(gH#;roeOm_;Z@6MY=OE<0k
      zdbVUpsud*K1x-sA@}&WoO!-R+;ZvKSkXg$08HH_%lcYvLwUM?+q@z6&i6Gv90T!m^
      zebxl|)#t^6<VnLgp3(=4f~Ft3Cz)b@zF-}gvZ_;hEN@!<@bTx|O^u!#$N^|npSS3i
      z;hlCL=%rFEu~@9FWe`6kk}{6!rL46#lbf=-Ur_K=OMn0R-1=gRE~p_{DijPeIT#<z
      z_2sjY7T_@ZdV6^UmC!P#mF>REV3DAz*rqKNt{#J>f|?e!I0fnG=;*B2uS5lsNCDLW
      z`5A{QOR%f&n31$_AF?Z%&6pW$BTiV>x?fOrcRpnV2u#9vU!SB7WMWU0hwX9us(oG3
      z17M`|3Hx$+v^-WGmGmGy6?PeR!12Ez=^+mtw{O@N?Vla=Vbo9AUMr83$LvW->pkR3
      zc?4G9OX~8@oP^({S`xG|MAK=8q(=q$?5mPCL-NU}kI%j=X&cKMk{)AuP155muSn`)
      zImr=vLo|~kJb}V9YkNY{9^Mb(40!J4{RlW>kDB<Aufm^n@$#6YgS;OrpXHOE^7g}$
      zo^kANaW+SIuXs!9Q+WBbeMwS^?MLA|B<U#Q*ExG;)*qr-%<LGlc9`J{SY%NbhaKvr
      z5EGZ@aO9H)xJrs8yubqer@k^nNtP20Tpj&{rw=>&bB;GS+c!DdDZT~88z-pDUtnaM
      z*_Y2c$V<#f<>1-8!Zs=s2jP5P4bg1QXP9gMlcZ6|@(6!98=@wf5umZVy3>7{0ea(K
      zPtbuSO_wxN(kw}{B{fN!BdJ-^d`Sx>EtXUxDJZF4QkakUEJVww6^+}IF^yg|M)vA`
      zJgzh~>h|k}4C^lF?^2x*q$;`)qAzI$y20wtpm|z*{^zJfN7bbb3q#IryIIRx@7;L8
      zxSF5aGEArWKPGQGw;(M*Dpi=<jVM?R`Jn}%`3MD|V1-@>y}m+kfF7>Ur$I;Kz_*E?
      zzmj-tO5&1~#FZ#Hr^0V8?3*j}dC=!q=q=C}R_GDvi!1acG?(uIajU?2IjukjZAjpx
      z%7c7WVR@TYCaSe)JW->qiYNTq>Ubict%)b3wl<y!`?Ymg16pT%k~Vn8kFfD3HtuHQ
      zt!%tq8ShZWJ7F9P*K_15ZC4!Oce6*FJ@&E30rp5Jk3-7iX{=H^jI~zNu?Dpy);i5V
      zq_h_)!;y}2q#Q@ebEIcEQW3U(t%Nn8oy01&L9Dgf^H_u0i&*Qlml0{G#-VhY1C0PU
      z6K=RouO+I0zYeNz0{@XVfM>OfyrqyBkQx_xTOn!A#YNsx$Pkc#i@d9lGeD$^yaz;^
      z3n1)yz0b%zMm(<%7-?a|^ZJmH2qU#_oO6sUVI=4xA2A{ssdJH!8L49=<RYIi(!fZ)
      zi+sw+v^Yv|{stb0k3PqG5c7{{HLavI*srB;XdV4QopcA|-A`LZ6UO^;+Ag{<-g{|>
      zID+wBpq*kE<NX}P#6{{Aw`iC64a5C++AaRXV827%J|7}}p-v$@KQy=V2q_9FfY&U)
      zNnia#gS(7emylyXU(+}+0ZQLu#S5l(NVda;o&N#SNx|{mr;c-ctEYUwQ&tmy0|JVO
      AqW}N^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{xu$!VIl;qoe2q!3<((iRaBT2Ltuk){>G!+;96$)yb>H#NBdi_c11
      zu)bgTz!z36^0amw24?UBIDUYefBXoJpFsTWx%bw{;Eb8c*|Wd9yXUui&hD>&-TH-y
      z*3iWu`2;QRGmEXq^b>k(CYRJRMr)T6JI$lHd{(#8IrFfdKim@wQiY%fWmvS*nbxj!
      z!P;XKa>abo*itl88ADJcWhB#CJrg$u^t^86@`AK3C$?_(wZ^S{+U#o=RMVL=3zlwL
      z`}IuGkW?i|v<RBfm(LXkU^4A5DU46eg2HAo+iT>vD^8N?1XV?wqtUjOXf%p=0|r=_
      zmiJi`6i}a+3X&%c<9JFREC`x;=$>Q>{kgn#VA`r$>9L$?^}{ESbvKoIb|4F&PJQ00
      zTZVVqeV~_0HO6AG=Egz%kVwinsuwfX-gI`_>V83?Q;q%o8?ze=jk=)PWHFyN%;aEv
      zFx#8UNLqx$?8z4UCMuz&O)JxRm%$Q2{+`&LGFOkmazXV=8l8f)wY9aE?N_4$Nu+@4
      zfc&gO<t6CpJ!T{=+=uK)X3}Qb+KdxcH0>8u(V0sbK?0M=-Pb3n4Vl;zrD1#AzG`2W
      z^Z*zseZsz68ZC{LMkPH6Pla8E9dP_FNP5Ua$L&e`qJ7grA4dI@?X}WKY0RFIw9!MZ
      zlty6ngQO1c%qjR?sv<#~!!(m-NqSU}&%P>Y3nZVsmG#S#wzHg+^f=3FlAd6BMN${b
      zDUQ$`rr8|fNfe%0+Y^#d-9TvwXTWnW??=E9d(<R=d=>tbi<ibE9pwF3=`5f8w6`CY
      z^sHlli?cbxd&OH)ufj{G?MsqUY(EO$AxTFWzs}h+v;Hv6VP?mWwZjZwz#@aXIP6d_
      zg_yWJha;afz*SN#;RP0X_bW4$WI55m)zMFQ`mm!v?|6f=eS@Q&;#*L>ae~VHMMlP%
      zed(-&yv&SL4xY`cY@;%95YFedFwNzBhPn1XOB#hNjqsPVVXCKDK^nWOJKd)lq&NTd
      z1RYq?Oi8mP&5<-$QoW>kk{To}l(bmVQc0DPLXv7EMfix%!?c2$(70V`)96-XWUt=K
      z<4RMbZoi&Sv+ja{4%G=E^3#PdeMPI#4OV{|&C}HNKSw1xs=CjxFy!2}o3o<n-i;TE
      ztNFP-&2$?6WAe6e3(_K_;>X;sL%}L304)g3M<@V=%JgdJHD!7&^hlXL13DT9zV-b4
      zmBeFH5|^YTu0+XsWq$Kv-%zG6fWELyZ-l<MOpiieTBa|f`FszE>j&qRv<ewCBY~4D
      z5AyjV@;0qbRA{a7M5VSSo(O1b<B6cQE}oFu`gkG|&^BNVYVGkU+T<BO!p4uWaVHyZ
      zW8)plc&9Sn1>;zxh9mp6o;bqqW{)^~>|>7u?2%9&hm^-NSfzFtYn7&B4QWZN)tZ4w
      zeO{zAM>@`tvK%SLk)Gp71=t3(BG#aG606h(u~um>U=3+6VXf9)L8PHdhtg>dGy>pE
      zr1mzwp6~;I161Dv{u6Bi&k7fLTOlzZl`is*Li#ut7kO79LqLKq@}5G@0Ff^8J`im_
      zfQaYy0V4|-@w`4{q>&NN>mx>@j8wUC&M~r#k&ugg%!p*9+C@HLq?(bii+svREh9B9
      z@);vD;wZuSNjwf8eS!5L<{!~oT21S)Ur*oC2Ks~A=?=zwfVPQxjQ5qaLv&!gchgRB
      z1mitVyTmZY`#Fk<i_|S{QIGfy!~J*KE&jw{zeAlqA0mFKP9Z!$G`I5zsTEQHuUvV9
      zzW#>>cNw`ZVaI^Jp>bdWl)l4?7fdaXY=;Xw|0AT6g5$eS9q0H~O#6PXtS0^jb2^D0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wD$!U_7aCsFh5(uwCX^MylEhv<SNK-7~VL*l3<kAL`o0{B!#RnGJ
      zg7y8v2fnask*BreFfxN5!0`hl|M(FcKY{q$b8l*7aK_B!?AhPl-SgW$XZP2?ZvR3=
      ztLd_jT!NPMn#Jfb{e&LP<dS;Eh;}Nm(>$8XXLT!`GY{+e!`+*GR3oTS85XT{Cfb=U
      zSbK~@u9#06TZ(2XV+abRjAS~iXW~Y`p4Y8hUXa#l$JWi>Xxz%D&E7UabsaggVCkl{
      zU(XZ`NwtDRi=gSf`CPFdCR6^Bg80-dC}<Y5Jw|@J;v{LBpxQ`tB+}Xvi9`^u-vA5K
      zs(jW2dDZ77g5*iVIG)l63W8=Fx-XeRUoLMQn6e5eJ(e@AKKOXE&c>r>`?CP1sn1(=
      z%cz|80O+Ms;aDuz93H?AiKL99dNE_|O=qX99u(w174GZXklj!S>w@Z&#eCi{lLPUA
      zY)>vDX(0|PO|+EHpb}czv@#v{7%Ud#?%uqo%C*8^nV^QnVY?u$t*vcU`&Fnw5-FfM
      zAV2d^bqRL&95a#@?nAaGGiftzZNdr5oAwK;>ByxFAAw2e-s_XpicCu5<)PA8>3Zp=
      zq=&#r>EorV<&pAec|_8~@Ko4U*a64?lB7o}=vZl@bh-4ijXsL{Dcc+6;qqu{QqqPB
      za;-cJtM4VXSI(S--<4Vtv?)k4Xr`pc1-VMsC2fJ^lee;dRnm5r6Ox`_c|+2ZEU!uG
      zWI4$Zx`H%|BRqw|Gwag0BvjX19>f{&+{^o6aKs)p@giS^KkeY<QAr1RKUzM|CqGl!
      z4@r8?w!h8U9O1p<EvZN0<+G(Ll2U9x0^dPNM;X7#*)y}gAkAiG$B?zn3}3(^gSy!4
      zP%nj;xICL9pVZG)QY_&G7J26@Gn8c6(ZJQ#PgL|FTYtg!2ItZ(j&_P~LGi{3D)W~Z
      z8DsY4^EUDdGg3KJY+hv>m5GgTK4*e7hw~ZY+W#bJ1hPELU(N@qfoA$>^q%f?o~Do9
      z_}3G(VM#M2&5|@*(i}+*lIBWkl(az7B1uamc_jHI)kzBR5uXKVIW?hiJJY7orN+o!
      zy@$t@rbgX<J)dUX0ln?26a3_+OF{aQR-zlMzBHPrsq=r1N_149*RU|;oVJ_2yy^ap
      z=Z~xTxjoHv8vkSRwr~s5LZsrx+@6MldB_XR2hBw&0Qsx*0Q9;ly&ig~N}moLjRW5X
      ze*Q}0u_=j5QW969<lHL1d9ZJ+(&s~8P^E{VFRIcb(3e!{OKBe81LC^Dc?GRR2F*y|
      zq{@R_?vT7gs}eO@G@kHitK$i;wkDqNX=~#NsjZ7ALSAh>R-e`upQMcy<Hy)|GaGlX
      z@isQzp^SGb<6SV0h3Yu6TiYE+_-^)yv&TO6IKUnW<#9-PJd0Iohq2abI#$1y#2U~H
      zMCz?XN^_*+94X6@avbS-j#PlHS1V%mX(zEtZ2)Vn_99ll_A=Ihb{dfeJvODY9B3H8
      zxlsKbdM)7w{yM0>3H(Re2%a?#@|HqkKs*lewnBP27YBJqA%j4C4)U%-&H<4Q@*WUv
      z9)M8A>wQM%Gg9&TfRQjG6|WB&i7-;@#JRx8Qbzm^@)0AFk${7I%t(Ndpo4tENIfHU
      z4)Q4@)8i<?#R)tP7k!TPAm$&@8d^nbv0q2u(0clV+UPFEyO*|!28{O=v_rIGym!$~
      zaRlQ%PrJkr#`^_|iObX_Zqsh@8;1Mu)GhwRV82TpE*Bzxp-v$@KQy=f2q_9FfO}Tl
      zqObm;!Cgj<OVBo;uW1aJ0HtrS;ssL+B-`P_F8%;%r(pZ;Q^(o9HB-LdDXa0n0nA*8
      AzyJUM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z}`@$!VIFaCsFhQV6d?X^MylEvU4BNLz%<!+;96$t4XWH#NBdiw~@{
      z1?&5T4}4+OB2Tg7FfxN5!0`jz{NqP(`~>1}&%LRU!5K4?vuA&Ich7J4oZVmly7dbY
      zt)`1XsuHv;WffybjpIfvlS>#GGuExdcI!wkpEc}s&N^h|59wV&sut9!42yO;6YEYF
      z?A>M|SIj5O%|$DjF$G1EW+I(6GP*fn<PAHQ7o>H&u?;H~)9rlPO0^5B>&#gN+pz3?
      zMy6;=su3hw1x-)obHxFeO!-R+<5P>EuvN_Vnfa}XlcZ^aYN9RCXj^ME8b!PT6D%yd
      z{8<weP@k6wk|#{_Skf3Q2%2&5o@5IBxxBr9%BoiBJvqznhfg5uZTv=dAPZoc`rKvM
      zX8E-HKrfkW>gnleX&S^2i6qS<MloaWNoS|5?iUm~+0@^^A-kc_WC*HH6!Ur0N(}0Q
      z*}hyx(n1{OTxoSCQ3)+=*_qC}3>FLW>0M7&xRx0#6V$M{$t_4*TU&d@eibT^Knkc1
      z$j>}jS%RH?N6mzd`;Z-pOxjA@n{dMN=6!;yJ99}hNMI7V`}!ocAroh!H0+E!SDovU
      z9snbyPdJxLqouLZsH6wssj$ni1CIX%Ne`9Lap#6}(fQd$A4dI@?X}WKY0R0Fw4sb#
      zDUHDDdr2MTGbiD9sfGk?3eyalDd|x`RnApOn<4q+F4iwg+RE~Vq{mralk^13E0Vfd
      zPI83aFwNo!sAzy$I}?(2^L_|tz;h4pN5Bz#)Fgm>75<cmm&PO=;Qd(XET8;zc|R=a
      zS=as+XLFeMinpXbg_lk{mn0?GeiXh#l8!KbowH|V{b8ET%#I>!ml?i*MFw?o*`Zzv
      zv2b}VM?PtQtE5=M3oOuo>MJvpWV_M8)zy!e^<h_k-t`7&=O#xx$+w_*;{=uYi;Rpj
      z`_fq#d6^lh9LhGYu#L*ZML3^V!!(EU8RpvmBxw|~G{RrbhN*#O25IcB?)08!kly&$
      z6LeuoGbGKDG+WXfNez<bN@|p}K++;fOC<Rvg(THUitrJig=sl8qj9^_mf5Su$R4AQ
      z$Cai=-996qX59k=9jX&T<f98=`jS?n8|?lxny0z@e~wCYRBg(%G330qo4vgG-i;U1
      z)%@I=W;%`kF?n0L1!*Bt@nLRHL&5wMfEI*SMJND;D)d_DbrpI&^hkw19Xc8Zz772R
      zmBeFH5|^YTu0+YX6@K$z-&mo~hrXafZ-Tz4LXSdUQlT%Ud3+Cu>jUQ%v=SM#Ab}Gq
      z532G-<ZW6NuhwFE+^?<H;{k1r9uI13^|;j5>G4QFTaPuUwd<3#v26SZ8$ZUzoou{?
      zjkhV|?aFuujC&$=9NDMs)DeCcd+6-3mp%5gM_hRvR36V@mD(Y!HJX7nq$RM{Y9=D3
      z%8}9>=@>`Ka-<wbdX6I%U>neiScBRLtWq1qTBE&yHKe_SwN^WYNJD;?(rFGf0^m%f
      z{x-c9_W^$$RNn;tBW(oFY7co!Aw59+9`d$AQk;v2yrYmIAVCj#S0QJBNDp}rh&B&E
      zr0n%RBl8(4dwsx26C-7>4;hIvQsc!r$H-DfLLTxFBa)F?5BZppT1LVi@(CmLjMRC^
      zr;JS3QG)X~@HndIbF2q2|A^MmDq4&EI{Jpz(;w7McQD=qv_&*vysw~bq66c-m$r+;
      z81H%7A%-#D&ry%KNWJ0~?G(RZxc^SO#Ge@Kcc`<f3K73hrx2bWn%jMZ6oVAN{VQ(L
      ySO3u9E+fw+>>AM5G!9IF(zjUgf~ggf?Qmh|e}HsTaDDfx<6PhBDc|pu)x_V9*@*oB
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E>vB_76#jNE$!?mKa4583kwCZ=N>fBcXaS{MMA{;RivhKqCWrPwa#E8Muy{eG
      z?Jzum|FzD5AWEqYBQy8_jt_A1$478{0`c4XoYdICTV}HNS>L+sZ>_!d`sw$_KLXf}
      znK0@EHjO#u<R$ZpnamY3X3k0u>g}j=u~5vLu3d0O%;HEY9Y%vdr#39Rb}l(+m)w(9
      zsZcIvtOI2yo3jLBSu11b&0NZwFpH*JC<+*Zer(ejOQzhS?Tqyav<wuSl50Bd88cV5
      zB$@<7kHFHgVxc@ilLdc?C{^78QKy_AwTg!|Cy6BjO^NPAqPHiJNHE@nMHY@*RT}~!
      zt==FYuUgjStT|Z{Sa$xIWJ=?OqI-71s#(iJ1;-tyPbeRJG@AK|Jb@)zeb98R>S@oB
      zUN##a8XD@3Px8k^verejoO4gv`30-z1tQnt<KuhsdrEOrpfyu27A+?;nVQUx7IG46
      zd01tt$D3y*4BK&Y1B(pS3)H95Z`8O}8Eg{hSReNb(%akHSM$A%7056JR)^%<&exXU
      z_~<1o<MKXae<o);w!4ofZ0<TE&@fQQT49h$Z1MF;^fD9gc4f+&_3nG$O1wZuTE6Yw
      ztISkxRc0h!q^HL2(T+I(pG&+{MQ6P^?~eC_kG{<MY1?lq)0JD^yu_X=@^xjJR$oc<
      zSI?ZM-`yq%?2BR<+SJ!8Q7lKB!~uc!$_+-Esobp0#Qo#7cuV3Sv-G~B^KI{u#9<|U
      z;XR-<C-EACE8^a~vX*$AS{20C4k|MDy@%A#`TAkyeV1f!dJiRdAq|XmN8+R+Im-e}
      zk-(J1DS_qQU7k9pisBQR^;N8K`(hP~q*zG2Nx#L3Xg`(hxhPhsY~LcSDoLN#JBn67
      zR9Rk#qFq^z3e<VuOJuoMrj_Pm6dh;_V|>w@2pS@cOMkg|AC_1qv0P$>M7u<X#7c=y
      zi8T`IBsNGiN<<`DBx34_Yf)@Q7oW?Z?O4P5@t!hA)sQgsfH`9pZ6ya_s9*PA1ogNc
      z#fR9+qPpWYTefTPKMpANar2nva<l}^zG8FNv)etA(o^fOt>|?A&AjVTjgPfVrJmDr
      z2@BSU5T!7sI<NqU)X2@0TWaK1%CQ=GDP^`ReLGaM>Ydl9cV3d-c_n&ZS>v~g_MJ8I
      zYRYSB<T&MZHFARTh8lSzR;hbn+<J1}g00M;n+aUid7!R7CZAwiy1_`M(v8OUR61nr
      z;H)=xrqa^bl}g7##%``*qc1g&z5mB}f2>7Ct~XvyG5mlEe@KNtqQW0l;g9L?LpuC%
      zuF^QcwaG|vjToo7HXCPoZ2F%fomY|Grftah_edj+J|$C8$}qGQYkh*TbUksKR4)^M
      zh`l7x5Fj~?>?hI~AbE|XiG%{g(Z~pqaDWsvViA!6GC{;xMIcu7dRHN<6;kyoDkQFu
      zs#i%N357HTaa@ILR7fO1$_kMRX%3Jp3TakIG(fH@q*Wm;0rH+gmZn&O$vHMh9p2}9
      zj*|u0fo<5y?_Ky3yYVaf@RZXtghQf(b8`!hh<;AYVH_0~I4O%bCZ;ebKEsf>gJJO)
      z$HmW_iND~4_>B|sDF*8581Vyr3fO*p+<p@x$z2d{-0}z?{YgW;G6XJB-vA%u6Ji3N
      i;s#fCFnYKvJ6_o21MYqbzVB&$obTJP;5((QrvCuyKv-)4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wD$!U_7aCsFh5(uwCX^MylEvS@-NK=FqFrdP1a%ls}O-*mW;sYyf
      z!TNsT17BFR$W!b%jLhH%aQpx_|M(FcKY{q$b8l*7aK_B!?AhPl-SgW$XZP2?Zv8?;
      ztLb8ZJc5?>nx*(r{kR^_71Danh<7Tn!#q+b=5;GuFc0a)L)~2gsu9$v3`<rv7w^mt
      zSbL0tLaCTGHkZsy&JYyI80l<Y&n1n1y{KD-q9Co)iLINx@uXGEn!Rm;>N*PMfTf$(
      zK0Q}5B-IKMErO=^77L|*m`wRg3gc6=ps-oW_ZY=(ij$;if@)*Uu~=(MEEYq&egiB_
      ztMXYB<X4}U2$ClZ<5)%?91t|);62F<^c9NM{wb@F(h~*K>VuCz?{0j0zCRCOn)<v&
      zw~WeZ_kms}6HO!%&Cx;pkVwWjqL*@3cQ!v|b-$qC$!K5ShWv(ss4l2JT`Cq0Gd-9b
      z%=Z*>k{04H`+AFg36;>Yrj_fs%V4n}Z+F+0D%T2wWr7+ON1cMSwzjra?N^}!X{3Pa
      zfc(sZ)g{=~bJR#%xDVN$&SlN4wFxIIZ`voQrlXKC0t6<JyRT1DD>AVs%ER`!ebv4$
      z=>afO`h<PCJX#(rk4kzFo(j7RJK*?Vkn~Um9k*}T7ww-N^kLLb*<LG;l*jBzNgFE2
      zmGTIzzL(TqIdc+zmugASrZCN*nUWqA<gu?x+6>7jqdp${vZQS+Z%BHa<uyr9u)HFv
      zljS5w=nB&;j_@Q3&#dhUNqcxdgfrmT&HE8>#2z*ABVUC-<>KWrNe6g8RzAxoKV8`m
      zOM2F^zs1=c=Dp%AsYl`E)Al7v8MYsV?~tS;j9=&MnOR?$W;3&+$l76sFJO^FT^x3(
      zmqJWjp2Lw(>gOscmhb`#^q>053?*4kG;nqF;}w0_(Vus`!P&ma(N6L$DBd_hW&R=~
      z<IKK%)<IroMk<Gj%`0r9GI0>j=hZOH;e3X<_CHA)g)EQom$PANpqT+0yQ@3hrx~C(
      z{`CYMSkeqhvn0)yG)Gc{q`8tBB`uJ&NYWBXK1o4Ib&?`{#AjhzPEBas&a7#4sWH;6
      z_wcyV)TrC17qhIppub&pLXf<4AxvM=N_2zOmqqh5b^gy$iH-{O8Wx6}+jg^;H{HAO
      zf=M+$w`G}5<9|%v7H&aWh*Z3o+tW}mANipLpm_)dpkS3Af?ijp*F%p~>C>U3ap2p)
      z&tFMAHYIUMO5#eCoLl8L5B7~!`h4gMs`M!IMOAtX`jRSrDb3@1KwK|4ub`F4pcx6A
      zP<fEY8<DqZRjNjdCsRIcbu#7G)+AE_ZEZ3owROo<#ILQ#8qnI3leDp7{0JLA#>O3N
      zyp@f&E8`u?cqfb#kvfj-)pjKjem8q0*<&wz>}QXZ@;InGp1~@$Ls)Ay9cxfaV-0Br
      zBK1}xWjWF@j+Ey}1&;I_M;d^wUn^k^XeY2rZ4hg%_5#+R_7c{Rb_$V(d=9149B2f<
      znMnO@dM)Jz{yM0>3H(Re2%a@A@|HppKzuIpwnBP27Z-U)Awxg{F7mEI&H#}v@*WUv
      z9)L*2>wQM%Gg9&TfRQL86|WB&i7`^^#yQ8xQbvL<@)0AFk&ugg%t(llu#0@cNIfHU
      zF7hcO(~~H{`5Sl~9{L>X0n9(5HMEM>V!w{Qq4o3!wb31ncRy_v4H)k$XuD{~c<-Ve
      z;xNX0k#>q<jQ4Yt5ErRS+@f9LHw^dRX}9<jgZ&P5csz*sg*t`s{LtLaBcwQ_0Pb6H
      zlfL?g26q{`E@8)jzNT?t0+hbRiWf{RkZgwwJO2ZulY-;BR~_g0)=c?+r>rLa1{QXS
      A7XSbN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6dvjA&5Z{wD$!U_7aCsFh5(uwCX^MylEj}m(k){aYVL*l3<dO!Go0{B!#b>20
      zSl=&v;0vo3d0IOTBQy8`96vzvj~~JD6NtY(_ohY$XUt5_p8eh3J-^*^c7Ofr<}XCF
      zmM;3pC1^$3EJcs$C-i7GpVYHPv`2{@=Fxm1r(2o4c~~zTPIUXIPEfNlELoXsv?o)v
      z_87%{sgN|bl+0At5EM!o$xKeq#*G2Jpj-KZAg#xat()m++$v<ubcdjZuDn^abko|e
      zXG?~pdO@O1(9CopUmAePw7;YvKD7!8nx$NyQP`$9Ntz+3KGGVAw6{ef5yTrXz{0eu
      zpEW^V^?8{fdD1YBr}V+1pjn6RN~YMKFIWertpZAq<xQ&}KHi+O@#wjM9Do_>^H$w5
      zs;AupdZ|=67K^op2k}E9DdVVK%36CfxoN9=1^G{f`};TLHWkCVpvGjWP%zBoV0<vw
      zm(NOCjKj*4ZIv-pLd%#|w(AaqrGngv?macGRR${rH7yO>1!-?@@2J_YK?RaX0o4Kd
      z*@tRNu&eKwk+g6hvNM^@m>KIKoUpQGzo5FVe9G_<n1t@UK1uD!q&!g>E{~V5maj{?
      z4~&#PQNCOmt&CMhCEX8Cg<XanaQrVwdZ3DqmnX{?%Rk%bgQ%afy;d2ijFqP(ZK@(y
      zDkHG^UQ%cE%qjR?swY7Y1!)$|mh^}qSNW=>Es%WjR@N^|+QxEH(qk;INqU^+6-hlT
      zr#M1ykmhiNCs251U7nDH>Ut|fI0K%0c|QV<*rO(1<g4%}9lSCo=^*dNDrfoRr>gs5
      zNzd5!H#wUlyjQ#>^(nk^x_n7eitR_?J0$5S<JUQRX4W61xy<YsvbLGw3s_`P7n>dG
      zr4SRBXLIC}2DnO!CA`3*;Cy9<k}NwKxZ3)Osy=M%&)MGKT)x54PVp@$-Z(*J{sJT8
      z%)WBgMqXk@Du=4gD{P}Ou@TPa)gaB|e1^I9KS>&etc>uNvq5U2**+S(qdT3a>7zIP
      z^#pBL(kw}HB+ZpHPg0Yl`I4F?Et0fE(lSXNNq$KUl0tmMXF*y?Eoj`HjA`_$F|t?h
      z<8h^_QMX?&WLS4VZ>Q=6Ke_2bkiMkV=mx7lgXU@J`JbZ_9Ti9$7KWVDc5_#@+`aMq
      zaWy};WtdL$e@xysZb4d%RNR=`Gf*%Od7=5Bxd;Uye~li1-cX}ALJ!sGGohn#;M>H{
      zUr9VRC2>hg;!2d9U*op`_RTf=Lg<TX^f2@#HF^a4vKoCkE#P}VTsJtcqSeTt6$zYF
      zd63H;lDBA0qE3s(6CQ1CJmJ;W#S=bleLNwx4e><Ct8K*U(>mf)w7F{hFdIM0#$9aO
      z&Boi6@eXCY6UMPn14njiyW$AHn?2&}v5!3tut!3998w-nW0l%rto53X)vqP71~dba
      z($z>Aj&z(O<v3EFBR$KJim>%+C9FQ}Bvz>nVy)Mn$LiN!#2V0EMx-H+P3bfT8Ub)7
      z)Od?tOSpl*4ytbg|B*I>XPtw*rH~j9kAu9ekTmDwAnzz-2#C)?-c`sMAksnJ1EMVe
      z5UP5;&&WbXs$L&35@w|8^&uk>M(Uk7=NMVeh~GgzVni|$aFCA~2{00LkWUzCWTe4C
      zK4oNP93?nEiO1oh&#@lF{3BXNYiK?88|WL_NPkcV-NtzLQnzTrcwa@^MJL94FYORV
      zFy0HaQw(FgpQD(#NWJ1F?GnFXxc^SO#h)1Lx2enJLc}lBDTL>T=C&UpMIi-n&#D{r
      y)ju@2%gAvF+6MGBjRO;)^etArU}}S8J6zcLA0X`%Y~OwAINP^w+V?wUHSsq&j)?dG
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dX>$}+6g@B7yd;w_Gywtx7zkTfk{}{Nf(v0Wk_2H`98jS%(<BWuJ#o?l1~+z8
      zMEru57FCob)ss@RB37YL1%9{u4OagG%U>X#_qrzx5v%;*RPtWm)A!zY?(%N``q#Y&
      z0M_Eu2r2}Y4>^U7W9A97Ba=&+8LOjDZ@tdZTs~{McFs9G=p61Hh@eWKMJpCuJJZo;
      zkGgxT(Oe;)vbGeQbjA{hrLB~mH8Tlo#LSy+E-zs81-?yZs3YO#ZD*)UprI${jJl@d
      z?l&_9OQKdlv<plh%I69rRGGAwi1O8Hfv8i+4qEx`nv=vdBCV@i)n8|OYilcAj#wn(
      zxFrokpthv3R6w4ztmA2OY*b*zp(j!r9nR(51Cv_yTJFy|?l5g?vf)FunH|Xzn5JKE
      zHC?N8;5>%EjlXz09q;e&kB{-kkkZysvygH3+Sy6X1p;-$!<(|3M&oAult5#ukk4CA
      zYAi999n57U7BM>CyWx8eeD4}pX3=)sOwSaxB?6Vb1AEFGl(;NsrIy51`26o|@9gYa
      z^O(qdq!<v>#Za0Kl_zA^;4v%ZvPQBym9ZV$eU7KBXxlGP)sstG5wK3NsU?-@BuC$y
      z@V#5U_lsW1eL~_XjsNTyFZ<s2W%$zqGd1#s?|trjx658VqfKu4#WTKFEW@7_Sfs?_
      zIp4eMd-Qq5_rCGHn~$HkNub&H?r8ICS|?x?@afjh@A%$$xm7I$o{M4znj~Ie<4i^(
      zu|<nv01{huX&6b!TVlIb2<b|^q>q0xONp1+IaA0<^l1+vCq-o-ikXVaE85p}-3Q|;
      zpkmMy6Mpfu1Pi~w_rCRumvmN`4B}IC_UiLUS4FRr@udW7$y!}i$x|t0dRVdB60fq)
      zRZWVQBo1m$*L4=hC0^5h0+F?%H|o5h!Hc?pK{akj9MP;Ol2zdUhJL17p2hB9Qw-|j
      zUr^1hKq|01f>&w%ipBZvA67?oHonqq1OJbFs;mu1F$+!V=~xuARsJ#p^E8XIrRaGG
      zx!={tel6jYh_H>AhDWcImysx%(G)>`%E$<BNCfU<Hz9x}W=PDGm?be=qFG{&M2o~i
      ziNz92C8{OrBpM`Q>WK4EtUw#n*k?P|fSz!B%|SIu4LybTn|WKwAz0I`FJv7m@nIB~
      zu!@(`9kzLg+xq_F6z9dRAF^D|-|+U&TG968`(KyPqkX%r=(POHN1<I!0xV)EmHebk
      zW5TLYLn%V30!#qv%H(>=4P|m8<ye_KoigtrZJX5v&^t@2cNSFdEQ#Ldl-bRteoL7=
      zpYp;oIZk<TncPZwX_>qXb5$Max00M!VihA;%>Yj7I8ad;llQSES!Hx2lGVoAM6$+M
      zmq<p8^@*f3HYAd<8e=2Zh|!h!5t~cO&nx8@m2!_#-lmjyXysn5ypziPu?FS2(%6-t
      z``yYSp)B?(iv!9csVxp^i`ThI<1p7+!{l0Lq`1}_7CjC9Z=USxfYNbADNEP6SmS-X
      znXDu}N~#6ox3QT#t3u?2M*4|Vhsa5d45?T`<SmWZL?R(FrjZ;G86u~M7;_24N>*<x
      zWWGX5R_`bzu8@+|y9#MlNNwonJ%ub&NL`4$uMnw_`Vcv-ka~qgL*$G?8WqwIB4-sc
      zJ;4;5`+?0-feTy@a>@Yfum<b-ya6|{5r3cy5BY7V!8Xy%FTzUf5Z(L~44_vW;n2@x
      zr#R0!{~7wlI0nQ$>=M6my#J2f;!h6phv=!OpvQ~)6tMkxxq~J|2X{fddgV{};1LaV
      u%MhAG0|k79%ftje#ucvYV6<~rdMwzv3GP7%f$cthTwq%@Y5R%Ry81VV+Zd1l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7>2ecC5bm)oX)MV`ESDh$3<8WfBojgi*pLKY7%T`DM+8Y=B@NPowCk*P?brz+
      zB;>vi$bD9R<Y$f_siKNJKq}9WM@Z!fLcSiY96?A`T;-nbZ@PQFp6PA<`qzzLh-e3W
      z6QwpmeP!FvTrg+MOw}oxRh604%Y=R2acib$IriCtdv<IpO6`Jrw4?7?)y$+-_oh_c
      z@!g_2;M=9D5|k{dqE$1iIW=v%rsueVjLAlB(=KOno@?3VK|!6vj$QXm+dFAieI=<w
      zkk}?@aoKhJX}B!JOG*eLK?&Qh6_h)sDM?x+D4a^CQYoaGRv=(|%`HPvTWX^qIjhvg
      zk~vowwB*cPIn*nT>z!KgifcRT*j@!Oky@aH&DwMgz#_dpVtT51(mjG=rBXVZP0!&E
      z>`Usr=~unuR&Bv&4Tw}Ks<yY@YYOTr`mU?&;#_X7R&c74)}ih(+>vE_)!{q#HV6uh
      zO<{K-s(Emqpf#y&s2=|V>4AaX4TIZnw{dC_{BbQ{zVu9M{YMKIRMEp5$f07@vMp~v
      z&e`05Qc(M_Q&Le%;~DRKGD!pQs{5dPFO;fpOS+FQN%`)4MbiC9SHnB>Rg^2~0pyx9
      z9beL3_>^ar&FB#Hx><5uy8{opKS4`qsicRH4p}4}&<gxUpdeZjN)I7e(m^PQ<gh~t
      zTE=0MIAUDcy^@YF@xIEeq(`7-l@DwR+GxRrcAPO&LE{2PXIOg_+PK4hrx|nV&>mxK
      zmUo|kc2IHbIcOt(FSG)*!@!t9DM8Db!FiMe1~Xh*MNkKGP%|!@7qA5)`ev%=R8Ud4
      zIU8kwi==7XR#wed)QrMC;v0#8j&iZ%;UEz5B+bAFgzU0Y#Z^4jAO(+kwD$<E>lx$)
      zrFow@J)58v%;`C_lP39mg1TvGl&;><{K4Z#>80BqxdBUBB59eV<&suN>Xx)pQjesy
      zlGaPwC@Cx{CaF_WlFz)Jpv}~e?_$!j)e-%59ybd-1PnbuPMWU8b^u0(bg#uIM4u+;
      zW7>*}yo!bP?4SIf0|-4EFDnnDBWUd9oBQwH+OeFTN@Et&>G_X&mgXj>btol-X}Aa%
      z7N!WSD6BTZ1yHQTj>GP3vAbX=TkOTK(a?zP<_^^>`b4jI8@=L5^t!SoZWa7{TI|)Z
      z*S6Tbu-CWPDcBoZ>`k<a-vN0;;Jk&lqJnKGU{=>bZK0&RN!#=7MkbdJ8#{9Oh_N%5
      zj~csjd1>s<<&zO(4`kFB%>6|B{_XrAJ3q|M!`gXNJCDP8BH78AL&o78(q}pSQBHr1
      zBXS&ZLPwm^5qU^yoPq2x9*2w>XCdQ;iA=?2CdHY`oXO%$7dcanGdb{$7*9e*jXI<>
      ze8>)C7BXhcLB@@zk?B&nLFqClx(wh-vg;<jkPiWW5ma9W{v+)JyY>KiMI#eH!U6KC
      zMv6cp0rHwgE&+)K$m<%p0z?ML8$gUz0Fuq9HyK&YNHgj!MtT`(M!n5Qijj^W&pV84
      zVk8zI?=m78i3iAgjKmp91jzf0bTQHyARjQYIEO2^_5+%ujXs1tjnPH4leW_?=)37#
      z+CzWPAl<^yjnJs*#?0M9<6;OS_Xtghb96|!bXZ))yuD6Y@g1h^4LT}*!>s+Cj)^}p
      zX>ZYRTN^Tdq)*}BYJA*{CZr5j{Crb*%g^-5KQ#C&qaY;FaG=lVb6|qLpf4fO!IZ|z
      bet58J-(zi*(1<;uk88xXFT{SOy}te%h3(&;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=rB&SJQ!cd@KK`<y3p(!FFwqDvo5qblLivblT$<R)k%+$$Du`1#P
      z?|4P=etGc0M=uYq#aj5}lgr=WPjLAQ#P6I;YGC17cCDVX_jmUG_TK00+4=47tG@u)
      zfp3y%6WBcChWU!MVCAb`$*S7<3B4U~&w75%3LMWpU96uT8BU^IpjR7)fm6*-IQ8I&
      zUH3x2WRHYyxoQh!%XZ1BSyj`Xw|pz`d;w#k!EL!Sc{A`GcV<wabJTO|f#n9rt!ijX
      zbO?xT0?TK7FPx{zlD|Yo00J2|tQBp4Os6EVOdy`?&*gHYnzxyN8#Ip$fwtV80`i<~
      z&y}sky1<H4x6GkF>-oWnC9Aa7Cp|ZqrB9+333017Un8(gAMdpSyBX;=fmFHNKRMaI
      z$UkOZw$EB&H8|?jA{&9OQt11(TUs<1YelaraXZr+pX9YTZcrV)>F^GL*vRmBi(4}m
      z3tGQvLv9;O=Knzdz`)@48+BG(V#>S;Cfj|gwdCny#V!TBb~#k4I<6Bu#5h~}jtjJp
      zdSyEaUVZlFSCZ(b!<1dF*wu<9F(8mW<hhYPCvgui=@_5bqI|DF()68*U8d!I0v*3z
      zvV#RbP-pk^tq$2*e1I-ySo8v`gKs*N!3uOssB9QV;t>iAAu&RM)Dn9skXK@ixhhVH
      zN0pHh4yv=TsF)@)SgDw%2pzOYaEQW~U6eRNVbby?j#3z&r@*R-R3sjwa4@9tNiFbg
      z9#=NujKq@^*n$#gC``{WSdqe%w;)lbu-7iBsAn@+rJ~NVDn<=em<lg~fqku1nKXmb
      z-Q^uHy2Bvz1R0h!@#COWr4*2Xfx|jY7kGP&9oV&^B7B;J%)ryiGwMaWh3M!xYD`6I
      zDxc>wSdDHay^ui<x|4Y6rrwVlA&HAOJa_|^SRt`eVwJ>di5`hH61@`ZBsNIoB;pb&
      ziB5^E3h`kEcVRO>iwVcIr}W2p)GDeOVCeaA-0~fzM_^(|_gxAxe44?>=wt1{tix9A
      zoA{sehy9zLu>($ysL5At>AQ8Cr%XMR#vGMS?|+Q5e%0{U$Wme)hRb+iaU`fEskMO@
      zfK-c~rrz12cTvx_=*y|Ind#f3T2b$84!!eH^v);I`<fQNwY2YT(N&yvE&6)u8(Q>@
      z)N?KRCahKOK;9U0-hw_>u$2Xz({-RNmX+6VccI<bZWiK3-Yg`H9cCeE>@*9~*ku;7
      z31c_cq_M~R34=}J2bJ-|%6M2Ak1FGR+IYV<K0xE~Y^P$58IvaIr<KQH<zXt1W6I-%
      z_9$qNQ(UF-1lJDZG}n}2aZMW~GTBY08O7u%ra8q_TVnEPn=qc@nl$QMr4e%NFwSvJ
      z8H-%g#<OHPA8(|TRzzt67qVT~@M0lG{AH&43h^H?$Q0Wn<W-G~6NyL2YZ|eMBqHQ>
      zjhrWvjF2}pa)F49kT;1KYYAkVUT-NRt&pbIC55b4NYm?Wg=|zvN5u1vLN+NR6(R2`
      zL@Fd5A@3<fGiM^?eT8%>o6ZRNKq1RbUcu!b*c@&6i0ettD_|$KV;AM!_!fKcCkAny
      zb2fo}qK9L4EB1>a4%sOj5N9}JeT<8Xm=ISmDZb-?y^3k^JLl^kI4u6+c)gC%wl*?e
      z(NWY-H9zh~6C%%@zut&%{TZM9n}+(z5V>R;2KWr06BGCXUvgy!qo2F7<AYuPo_nK&
      ShVL;QuHoCh<olJj`uZOX(&Lu^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S(6i06#hDyBzKa`5Sjr791si&gD?RR5og>O21GJ!&0;`>PI4#HA?Y4F-GgyM
      z6!(1r_qD9jN0$eysKOWDEPsPP!SWY~-@WNzq_oPHd(Qdp+3)Gozx;XWCjguAWePC^
      zYin*;sN3^)q2X2RhAb2{+2hW5e$x&d&plbOPfl4W^cfh@iecb13Pq<C9Fi?B^eb{l
      z=vEujK&~n)PSb8!a?bYc!1E25#g1>=tre`mcih^zfq_ZSZ3VU)9JL#v6zDf#Y%s8}
      z=6m5BRj%3#WDUST)(x9w>F?4h2`n&>$dBdodAgdDOu!AgSEhkj{ze1hjFhLVcDrR@
      z(TRV}p*8FI!Lh4a87)tHZZJ!mWHVwCc5|*tV1d5gX$P_!={g3fRtwY9g?5{{SLKWy
      zHiE-WGtw|HSP6Y!x|O!oZkD}<!1V^=2LgIC9XDu9UUPc`Z>OvSJ$BtttY>)5s{964
      zydl47Y<y#nz$_}vl`Wv(p%cBe?l0G6C1AhBM5W=lPH-0^tQ$RQpl{Nv$`si1+_ldm
      zFs2G~!lra<e49-MQdOtX2;G*zEm~;Wen8<?t=E(lUsAe_O{+R}FC>4vf&Qv9FWsuX
      zx<f0rT6Q^*{d~=dEEZu%fa%1lHGz8+WqWog8VKxEv?8!e(YnBWip~q%uV_noC}y!(
      zdDzE-YSI;8*Wxp>EO3Yn^Ak8s#x9d#xkMa+2guYzDj(Mj13sv9YM#KuWLlD;Pm%E|
      zWXfb*k3p+ss!~Ut$zq9$I?M56R7vM`R?WD+;v0k+`sc3&T(S)AFvc9a&G0OfUqc_`
      zw*>-P)x(CPW@28c*1Q&DKFU5Z3)!SUfydZurV?u530^Us=;|reP}$OwYRA)AEX9!G
      zp2=buLn)lUX6&O;Na6W^Jb4EeSR}AmV2Qv|fnkAV0wV$|1Xc;;1rh>jfdPS>3UM)u
      zo3NH&MA32OKK)%Dw#(}CH}&c`YWt3oBQQCkCohdSKFZ<)jIs;Ctixd)E&k8d!wJsR
      zWWc2njro#wqyIkWX-n^;U5-j;<Ucmqm>PMkW+`#*!3Ats0!d0KN-?kjNcYGY$^$*}
      zAmv<-ypS@dnYP1fCN<@hXv#;?lux4RvL3tT)F0`QRh$()@=D69dgRrV^F8t!ELZP9
      zzj5Zg4x_AKJqtLa>p(1?6PIywsn6VKl@eybDkaU$Rw-p}u}Z?+YL#+Ha~sc;x!w8!
      z<6Y%DmGa$6`Cg?wsg$R*@@}oXhst|%1IlyUoVMtGzp^-}EG%VlL|Giu7A0+Qf~PPa
      z;@NMW<e4^Yo*A=3PqOQ&raU>y(`n_YsXTeg(<9VPnk}9wGvq1EGd%mvHqW&AIM0mv
      zBt4x?bW+MFM;QX=a)X!gY$;CsIi~so@$WIt6#F9NMUCtwl8BI(G$M&4Bjja`oF$Tq
      zkXJNvj);hmSBaR*3FNv~uPG#>kgnD13R$U;uGJd~S*?)%$j_S!S)-72guJB?p^!|3
      zysZ%JIU6DGC}dFS3`EGg3R!5e1sA^KaK!K)&*NNNz!q%8R`T2M6}IDdjN=M-Z4y()
      zFn8^G>^3I2YxiM~af-Xv$6n(+ipE7u8{cr#Uc!FkS1#J$aM1XJd-e(@V=;PsUq?}Y
      zX@1<DAw+?cKW-$}|A-I&PD6cVh)l8_1$>N8h#B}4pYh}bV~kYk@xd;9OWG-+V|zr0
      O>)7^Pwf$UceeoCWSLJ8`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6S#uOs6#hDs$=pmPFf?1hu!b!xNe~es!G*AhSqL<X6IAG#X_8K6y2qZLU~omi
      z72HJwE}&@nLY2#dRaD`F2``qv!JlCH3&ijA^u&R}DyM4hJ>PfFdhhA;+ut{S0k9F@
      z#!#bS^^j9)A2G+w_MDqBb5?tAu<dnDxL)4$ZPz)LDIV({jG<OTbD&uA?Oc1WUGxuF
      zMYrT-tQ{pMo3k_|vsT8=n>oWOn4amoo(8?Q?AvsP+6~{couN(*joq$O^i9V<Z01Uq
      zLcIoUy@pvso?9wVW!hdLp`qs2D;g3`DWA5y-9b_cGwGydeM^h{JKDGt7c8dY_!Sjh
      zLws6gr3Q7<vPQG!cu~Xbqxa0JIP7}<k!h`l0Qb3$KTMmtd?-ZCd?8O_W^laI^sP$7
      z`xr5sZR_i68|RPpWUUisDd!)w^V2$u>1lX)TYeio%*d2H&vG*3#&|yM<`kA`i1bWd
      z;H}w?pX<KsbOlel2YagQDuGvPSUg>7TSv#z6`dRI#4JC<{CPc$JLhP1{rl1*R>tS6
      zsIE-Tc5MG)##z&PSVL{Mo3&zS<HO$lhzcDVV*OTj>T-?`c)y1F0oM^Ud0pWFo=slz
      zEpPIs!h-~ce`~_ZnhFmw%+z^*%=4{Lg>Afyfyt|Z+(p@N)2?sUL&L)f%*GsrNBR8y
      z46uXyfUB^RxzV%2ZW0Ff$4Stk!V?teOQBazTyfH$z+7=Mz@wa%RXD(!CT}?ObC6P+
      zIVrHtNVb$#c#_oU*wkf(K}u5>EJxv~vXoJHhH6Expm1D6^wi|lTN4Utink^vua78X
      zC4^m6I6<M{1>uJim?z;!sK)T(FGo=l@Dv<gi)3(0_yTz*AtJw-n54nCQt%0wi8m%-
      zjF%h&iy1vf8)hUYr>GX>B$xjJL6DW4yu|xvUcOr}S^q0UOs;4<Rz@!9)dc2ChG#WE
      z@M{S)VNMKh-1UisEfT|9ceFy8R+z0YS7DyQe1#^31q#gyOB9wXtW=09#1$G9k`m%l
      z0&CF9ucwzu^atPcK{GAGLk|YeVbik(hh$w>(2;RO@MQv@V;vvFAGX=Vt-b$qaIv!+
      zhAf{WCv5+DYg+I90mO}9n(ekFo#y|TgKhFDU>Qq^aEi|4g+)<E6eFquF97i>+(6t|
      zg=Y{atMDvhHacyaq*sHTO%v>VnqcRX1p9(2yM@$muEL9mmsH`U#LKI23-QV-yb25D
      z9q2d0oY!I<D_GA0P6l<LCX!S)u_0Bfw;QRbzR^h4>6?sHOy6vzl)lACCF}I9Tw{8t
      z@e{UJlphi0$3(eXly`~po<MnTpxi^{zGS0#j_CUgy5BDrhFBaDiz8x@3M`HW7Eg0k
      z`Z2Ecy2&-JXSg=#7CjABJlW!DR6OOylPjK{6;DO#*6Ag#G5sW0rH^y1*PrJa*I(q?
      zpubE{r=#VR&WNKkB+eyg+{Ejt2>Cae>f7Xh#CGOc8#3nurjJZCWG)2Ekkk?~?*z<g
      zGO>_(H(<_@Q6cjl8GRv%WX0-zVHOEfvHC!mrNUIKJ`|=!nEKGqN5ZTUCLS^$3!{W-
      z2$_q*GzgOjnNNh7AxvY)d@9T=gI6%|1Dm4;m$?pdjscsn0h=jr!8L5fpXkJGj^jG)
      z(waDp*J6*>#cAA+z1ndOV-G#rS<d2%=+nMKzjg!rwBI?2|G<9jFAn0{=&q@u$IpT&
      zVEggoE;k|CxpN{Ry7p&$@oyUPl_4}qlofCVSIKGk3SV<&2cwO<=<&fOzUN*pp=^67
      P2v@ePowmIeXnpe!yI%;#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#gb@lG7wDVJJ|rl}ovmOHxEcY(Z&(Qb<6U0tQr=CMU^2GE*lLV!Yu6
      z@8Vs&yy}CGULIVFweZ15m%qWE;PMxU-<eE8VBuOmWS_mi^X<zyXV1>>|J?i)z)pM<
      zLrBBsvfapBGOw7Ks#7qlGL!X}IlJVzHPf>k`$D00VRkx(J`E#2vEf<OOxCJ<r)1q}
      zxCJ@gu!~ixAyt$Gt7cXWxoEnk=eQd5Y&*7TmotXvT6TF-!@!JV*FDqr&Y0DP6zJEW
      zr8O)qyG~<~l&-%(l3Uv~B<)6RLAr<ingo_G#@P0;G4-2BbEUl~S&8j+D7uDtm$FfV
      zXi9mxXtwGamYu(EQT2-BdS|<=gm32@+pEwgS__njSzD|TSmJLVG(FkL_yCg>i|Jf0
      z-D>eLMOiW%Rd3#^br}z8fQG?B!*!)yXc?{Af>RY(ry=y)x4bLM_Np`YY;MpHo}GTO
      z$E}lZGv8xF_lW6<iOC&znJlNkqIoAQcj$cYp-(Jak_C@1A*Kpd%eK7z%(7+tjE24$
      zrzm6KYozXdIDrYWj0P)yh{SBQVGBIWtI3&7*Q*FTq9K;!D^#Q_@F=-+W<%gHGG?37
      zR^SwM!z?ykyPp@aKZ#`+5_p1CMiZE(!e9aim7*LDQ=zlK5i0alZby??uH3SO<{Z{=
      zoXSjvZoH-Np#{2~qLMQ$fqA7!*2bfSXB}=mMdd)VE^yA@DhfPJ<w%Rlvpm(jSs?o&
      zp;Hx8Wm`yMh00cB>CDEX3Y2(pOejmPidf+evszVN%q9N{Dzap;t}0uQIZGvJ+h$3?
      zW_+gh1Qw~~WRV5(6NxgpE4lA6tjgb%MOJf#p;$w?)N)lF&nK}GLrQxgiD3-I@X|e<
      z96V|auiW)`ZCGHLz;b~V0xJcE1y%`+2&@rUFR)P{A`llC5J;&MA11K{<81P*Wy|CK
      zr#Ejds83w?$HN)ZwUixz(J8-&;t1ojBtF459?z>-Y`gL7{~Ryu#Y9<p91KCjuGlhu
      z|CWs#{>(XSsd7gCV_KzE^I{#366UO1!V8NaN-IVy1YQ8*J$8cjK#x60JJn+^rOi&I
      z@33k;e`QnnD<8#Q`6T|js>g3N`6E5{DD5>p_FCHOd+agV8++_cSgqcHal@>6E4J|j
      z+j)Sde-4DgDRB!s@_l;7$Vc>@Mn0<VGV(Efw~-h69wVQM>U$|;`lRtQ_T5E(T#*kb
      z^2{CbA)h=;@?2^_MGou742I9C@FYj|6UyVH@-Y1Hr+tsJltRx__Uq><<N7m{3H<^i
      znVm=l6-lZ{tTC#WyOAt%qxxmam|mk4x<lEoKSvqY>y!z-!AQ+WyQEPSXp}%JHFygz
      z=EKBaW~o<+|Ac)ktS>-b^^rLukpOwkM@%Bo0D0X<nnYp&@`jJJh=>5WMnqptAl31D
      zQz4@Y>3F@RkhKcwc)hKVF@^L8ao$nLCWXWU<Xwdbg(L#xJ%uC`k_?dd6*8!hfdKhH
      zAxjNj!Sx^693gx}d5&`m*o7U~O??l(!(RM_N!;c%jpC3t%wf6}v)UAA>2b_y7jaZ`
      zaZJ0$L3#r@?R(DAn>eBU!7=(LPHKO1ir&UdD8z^#`&rbV7eDTH6C%Tv|7VD7{RN-i
      yDMNi_2wakF0zStV#5CN%mz3;aq`4{{AME-MT-!%z`=0jGwSD`#zF+yQum1(fCDtJT
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uOs6#i}|lew8p!q5Z=m_Q(G0g`}-hzTwvfS3hgSR7EHGt-%LGSeM<dce3L
      ziu=BR`&vHu=<*;%6~6Fh`5XKRmcKy!&Yhk(QdniGa_%|b+3!7l=GVWj{sLe-zDb}#
      zVPnCo49wVP?SZ17vy0Bam^lu5Q+`mgL)Z6C=k3!YqX{%BbQ;4-=oSaY+;VutDf^Wm
      z=j^R``J$tc&O14`WEV5eoE_MqA1GL3)!4RI7|4Wy>lFqST8DkF9NJ!Z+%8rejb;V4
      zRbg=<@GEmPS@73LQPr=I@+zfCC)jUl(pbb8JzINv<bPW~Ps(!+EAhgbiKUQSFj=pl
      z&pFO)-kvWjEID<{qRP{L5T01DYBBP-?}gL!X(~lb+%C<P2rM${5j%8h8E<38e7<jd
      zyl<X=Y$xwb*_C2=)GaO8tWtnNTdooWj+dLy%$FwpqQ)A9hFQ5S*9(ioH!0UC#70I(
      z>)dJ?H!7@J*S*kX|F&&|>$>~uW%iw8;k*}?+<vOQ@k5g{PA=qY=%HNE_1y3t=GoMH
      zT%mE;&pQe5+S4~bp2jwXMEUv^FK-t#ZkLO(tNa~Qgl<qaiaV*`8yo&EQTUPKZYrh%
      z$0&xVC|<u3P-y0@+>^o*v}@eQ3M7NZURK2L8Y5&FTVp>N#?^R05TD3{WEfCmjBXN5
      zLQSNwR6;#O<%|S4B390%#!)gQn||ywX3vp%*dQ|+C&|oIX#9v__$-f!O@)1)Ayand
      zG$zUTv!O<wjOU-#m?Fcmm#ot%ER(D=?2%b3lBUQWnK&?lrx0iIkoC`zWqOxc`0kC&
      z>uQ9CE0R0Q5X@XDGu0Cc%}gFT@&#x-$%rh$H^S3=K9&)wo~6WEj3fm;m%?(i3-^2q
      z9cWMB;!V>Z4M74g{p+!-u*MRNr5ejLmTPoqtkCGxSgo;EW4%UPBdO7<k(LyfQ`m%F
      zei&n}=S-N-^{725Yr!%r<+vTVB1d4;keRt8V)!(LkFkZlhtn>{w0G=(t|ZQGOTh`b
      zOril_wyF2lBc9BdJ+<GJaytKG!}ZIsV+~u0aX&8Ng~icCDM6_LyZ|KY<QB@Ub#fc!
      zbe+7IGRK*|9WsmN<aC&mk77<fi8)u)`K_dVXPw+dd3BxKO?hpd+(UVNoxA}n<sBF|
      z#+o-{3p?1#2F{s2&=5=OYv{{1S_7GE+}fVWHd#9|*@U$-lhxL)Og7zQ?IulFgPEVO
      zr)GSw7~e0(!(zNoj1L&&gT{E2#^dQ$i5#;IWf=ajcx1%mn0TBJkF4=HWjr1w)z)d!
      zX3Hi`S~=1d%VDHKEs`sdW+hTdBKZrE9;a=SRVGbX6;f@TBW<?kNt4!7q%GDnjC4L;
      zEvZWabrHCbZo7sTvN7T>vecJ}|A;-TvoS(mF~~TPc!a!akb?9QA+H(aJds3%yl#*S
      zM0A9_LBv`~AYJo%Q;;q}YF=*%(k)2M>uo`L1Zj@qyd%g4L6Q;jt{_^FmI!%IkQPBw
      z5%RtuZGyB$$OnQf&hQE@{lMX9z=xzKxv+p8=)+F(yYMY`;|~nt1~+aK_Nfjo+|4+k
      zhPZDha8RA$x(zU@E^^ym#<=<p6Y44sso%J1f5&0<Cl~Dv3^z0|;zuTn{M_;5t_~pv
      zc=8tz@y$QulYh#PuMCk(s%n7G@HsJsFYqNPCm8)a#f}el>3g2l7OK9-OuDLX<AU#3
      I#_H?80Y~BNdjJ3c
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7wDVJJ|rAQ%*iv?(GYwq8n05olUr3K&pfnhfngGE=7$YU>3r
      zc)yF{{qn$rk6s>Ji?#5DH<!P`pWyNrh~GY$)WE{E>{{Jt@9*sU*|YQ8-&cMGupQqe
      z(PCipv{%cYvCrB0ieIuTPJT=u`@PeCP_;wX_fD3blS7k9v>NEvinY+K<j35(@US!I
      z*MgF>r{<L_j)831DY;d<VmY&RV26HSz#Oalw!P`R6$Y+1Jz$`H*!Si_+Y67{m71f_
      zX295HVEJ_5*Ji1*WUr7h00SAXR-JN!QJs>)G6V5kUoMxUt67H$cwytpG|-Z}(}0?H
      zoU>(nVa~vc6SvG^ZpIJ7V@q0TEf;(*oS{vk8ZmLZI$I^MOka=Kq0@+Tn}O5<|9T6B
      z-g24Qmz~pgtrAYU)kw!cN2wMBj#pZ+7OGQzMd5Z<YOyP>7gmOEy1T<bY-p0VOID3g
      ztY`hE4Y_TsnE(BK{rv;IH_9xy#EjVp=Gu9px#EebGfpXF*VSOD;(BiQ5aVp=IclJF
      z*e^Rtu=ClQA4#FlK+^I(FSMr>`q>d_jqvx-(}?TH15&z|Qo#+wdA~HHa36azLL(=r
      z-`-Crqk-dU)d$3*U6q?QzUg2FE6}MR=`fJOBV-svVGkKbP#6)!4HZTOk*i0^(4oQs
      zGIS=6#xhtbj>cKhfoqqk^_XZmQwoO(6|P+l6ebA`&5~i=v4ZU?JWl37joQaG!^e3-
      zbZRW>DKeZvg;QiE&N6{1GUNU^1wM3a#95TMr!!b3ac5YU#AVeAXE>S+Eo_CX1YcC}
      z$TGUiAhVKX&0_-mI>=SXg={Ya*X9`MoPjpR4jmbIg=grT8TeXQWV4w?boHD(gtMq6
      z$>)U(R-;q67c=NWXA&>pH2l#hByr(}C$GZ_D->2LtWsF5(50|Op<7{{!Ulz$LR=xG
      z(5{e`5Fcl77dG>|7;`;mTz{RD_LM9EQ!kLCcHoK}fr&vqc`3y3c?O@NhqZ?@E{C;e
      z?0+sGPH=kK3As9=F<-T%=hlOsvh-FObtRqd|JY}JGV<8SQexbO%h<3u5|omZTEGS%
      z)g-4Ww>QZhl(S9pa>|@$+IGn>>XXBvPd<u1`6T*W(`2`n`rS>k#97xQucy4BN!~~~
      z*CcPkT6qWhjWOpf=wSt0S-`xm11+(vx{AAtt!A%PjGK9@m@v0n#iY5zDk^iQRm>*L
      zU8G5KxAijy8p;of^24G$B+A30yjLsl)5`m)d@$QCo?~XgqWcN4I3yO9SR4_HW7?vq
      zEl!Xs^GVV+^CW4?v`N!uiJqK>r)lxzil?*Usk-FJr*6W0nlx$7kt(xB+Gfs^rpyJ>
      zwD~MOJs+>9lom&60_U?GSMgFYM*J0~`YQ3CFu)XBBjh!W93&Etkk>Wh5J^PH8yb0@
      zNHRj+)W~@vDni~OVy-2SZCJf6NLrAF)jNW$7o=hJt{@u)X^Z^4C&(s2QW5gLAWD#Q
      zgnS@~_MC~34+ZHEo%RU%NRZ_gTX6A54o3?<AwAB01?)gCc9P$P%h-)SF@Wn_v<d7r
      zy0~YzVxKX{H9L;|#wl*u00)f=7&9)RV0_ONdj%85?_98d;E?eb_v>{Gx3tjXB^^b6
      ztNC%)hY)$5{P{+F>o551-!$YaLu8VvE8q)!NzA}k_?naxj6R;C#|OLk1J8O1b=xC4
      OT-~;H$@Uwq_3b}f@#VGv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7*>V$C5ItjA(zPrbF&Hq!27}oQcp-!kVnc#A0$6rHED<Duku=By(u^}6;n-OS
      z3EB4rvaiKM9<w~8iYoGww^Y6%pODHIgq*$_ISNIp;ws<UeQx*Z?t6P$zy5XOX8=3!
      zO&kpdHW%GW|9R`8)nD@RR>|(4(Az=xoadLV!13HO1^dkKSR9Q8I<#RWa7z6X&TMeh
      zp7knz-X5;Fg_3O`Rj~6;*(zo18Oyf<&o^LBRJkp;*q;e}$1M&TXc_U`*}!sx6IQ8W
      zD>NA}wi{Sl^u5XqO&0wXl051&kaR2Mob8Y6oD`OjqkDUIxBL(Eai>0GGZQzcnV1F=
      zizXWls5#rdP_X7_4J<o-$E0SbJwG_PXw|IswC4uX^of;2A!?Op$^@3^<54THYZ32a
      z#CiVprqjKJ0?R4b=d4O8IOdcWZPplof!2J*_iZ;npP4V`ypqB?0}bPHTaFu)Ms7RY
      zU?4I)HeTmei@4dqnhjlxRrU=G3~uP^t=Cz1o{95bm~z|c`ogDj=k0vJ*HA<GlH)qT
      zKE~P7bHYI5h*z-V;I*f2e>{Z&1M!UKx`9<xxSJOvHze{sWEypBd01-qQcF8QFz4l`
      z74GBJjMB;WtEcyqWZbtMZ8{{3R#{G(cscu$ScW!*2bm57DGXC!5QR|+jG(}~h>%?2
      zAwlHm5Csw{Oi&=15KShrT!<bfbjYI7Q8BV}3ddMu`j_jz0;`SepP}#wg|y`;oD%B_
      ztsm6_ALntgsj#NA6xf;yISNx37@w~kne;9yoTD&mFG$$wBvwe+^Sm2|typ9)NxgQ?
      z*NST(D$y4dW+*be!zg_HM#g0ZftE^?E|P+gE3*vsq=6;|4{Z4k6c)(H6g;gw&C6yQ
      z;nB155cY!BB%$Y$Scx`~o=>73ZE;+=?HdSNA&!^+_2gApVVS~mg%t`b71|Y6DRd~T
      zRamdEQ6Z|3P-sy|Nr-DnY(Wn{j|s=MC-p~r%*x4dF!f+LVfl{eAs8FdotHoapC<7!
      zwz2kL+F`TyO#IKm#13vQ+5tyO*yby?^xV186B#|N#vMtg<3HwHpR_#Iv6Kj><Pu(3
      z6ftUXY7O88AW^3`Q*Wu$TdAk&^rh6<&Gc=TX4E^oL+^YPz4J-*zN*e|HSIg<^iJw)
      z>+~+_>+AGx>Kp6yO;|1OK;8&*-imFkU^@$#({-RBl2SL(n{71vGuf!QBa@ApJ2Tn1
      zxhs=Z=I%^36*Kp6jhlm+AF;P){D2tm7vm8z9uwmO+W4S0K1}0uszsP1=2V9CN5mr|
      z9>>Mwq<Cbt$7${H7*}PU;o4+cToY!VYqM#SsaRujgz17Xm4(S$WO{<OF>{t{+^ld_
      z<{Z~1bDnF$e2Qzc`3#vZMXM=w3Q;G4%c<6zcp)1h{vuO-nfMRb%RC!H<Q0vii9|!>
      zRgDy-mJoSOBbSK8L*#XhTqdGI<P9R`Y67X6*PDWL3R3fWOOP%>YF=*((k)0+$n%aM
      zn*>RO$h(3lL7GG4JwciUNruS#g0u?K5+WZ6vNXdhxcWVtqX8dsJ;i|q>_jhiQQnQ~
      z*n>YXh+CYvF^n1Q9JpI?z!>7Zoy0-oEXS>n!^Ra(+iOT0-(u3ZfhprRj@sXG#Q2kw
      z_7+AO8p!yOjv_yL{J5)4h<@(;9Yl2NPx$1YG~_Eo=#s1&;4^$q%)l4;k}EqHecZ*4
      a4|erC?$r{izQ=XAs&C_>?^oLD>%RfyPU$NE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7*>V$C5ItjA(zPrbF&Hq!27}oQcp-!kVv_`H%x2jEu|$vrM$#Y;NHfl8gkxtR
      zBxK(g$i5a2dCc;VDyqm!-ctF7d_pQ;5OVrz<R}!WimQBY_qpAtyYKC3{rcC9p8;&c
      zH*qu>*jRL{gXgV_)?mrYTP1sNLT?A%bDm$e0>^XD6znsj2jXZp(4`Hlfm0fsa4Nx3
      zyW&;-yuG*T7D~2(RKd<WWvi62XDr_eJl}vhQRBAU;$SB59k)1apl#H1D}m((C#+J{
      zR%kI`3>a8k^u6i~O&0tWl051$kaVl%ob8Y6oD>$3qjzg>ulx@UaHl?FGZQzco0tX?
      z3nuFgs9D>-P_X7I29}(@V^WoA&ks&6ShZ?B?YY4;ePZQMh+5^DGJ!?<c+3jydc?aJ
      zagKle>2!agz;X)qIjdR<jydH8n^gv2pgmvpecR2?W#-B`ucWZXKxEwK6_}12ltynm
      zUB}bW1LF;T^^hA4tXkKzQ0BnU(D1sR{zjdJ=b1S#hB<efZmfJNcizqid=52|FFCFg
      zJis`c`c4>V9`y=#9Ly(m`|BwT8Hi^**A1+q!ri<XxgwG8A=8*+%ga)`ms;8hf>|#=
      zt#BXjW{gg@Upu{@B;&sAXwwm4w90bQ!rOTui6!Vzc!=pRkiuRH45Bbbfe{pV7ZH*x
      z91ui~4pAVX!UP493DIN{ONHoRLWe9G9Tg)xr*MolrhmEaE3n$go*4>{P)J*j!YQ$?
      z()v*?@O2&+n<{HMOM$(qkfShlf${mwkxB2O!Z`|K_Pm6hPGXsaJ<q#g*s4YLlGJPG
      ze66?!q7r>xVTK~ZJB-4QrI~S=L7=4)rHiCs<Z6YXo;1+H;DIe4g2Fr*nS!U4r+L{-
      zBRqOm9>Sj2nk4jG63fvc((_4lq9cwgw|xX*E5z~Azn;7XD=bl1s<2F9xk9JH3WY9(
      z)e37B)+<C65(;e!DG6~ciB0I^_c7tP_N4x5k6AgH4yK+gCoJC)Jp^MTy7Ll<;L{{N
      z#unBdOgn7WzKQ=inb^UtMLXb33EO<xroKBjdLpC8)wm<+bp6Mm8<3XA8kQ2_m|VmQ
      ziy}rXPOS;N03;gpR_bjHdOP)0gT9zLyP3Y7(u{g%cj%puqIW)t-d8mEt)zWdgWgSj
      zb%WkReQkr@OMQKVz5y%c9mpGD&YQ7?6>Mbzv$_s6MN;Y}`m@dEU?v+iw`H<1b9*Km
      zH+N*R%G{aBrefwUu5oiX^CNcGjUN=_Jz_j6#{0y0zcxOojStf}ooW;2h&h!Z{SooV
      zh{tj9I4K@k?QvRrJjPX-XSlYQ7T1KC=h|x8WGdE~9AUa3Ol4v67MPx(ZOp82jhj`j
      z%ADoeV$N|*m``zSHJ>5VrD!dsZXxO>a5>d}6E9>V#9w5pFBAU(yP0Qmh`geaG?8eC
      zysD9+)Dj}EY2*@-c!<2Nk;_C>h`d3>TuC5R_j*&1Zb9l^Zwb;PNZspgL3#yg33=WT
      zWP>1y5P4S+B}i+CyeCMjAjuGUUyyb|+Ct<5K^A9t1y{dkb2Q;YuBSM#fbHnV4$3=m
      z9lP)chH;A%H->#iCkO6k>^DX@ZzplkILmSC<FIjs)AkzD#<!R>ZeYszjidH=95Mdn
      zq`igFrY16eq@&2M9zX6{6Jn4%e+UuX{1ZO;Ck^?^5V|C52KWr06EpAyzU0ad#sGJ*
      a<AYuOj(e?yn(uKPuIAgk;QN)f`ucCP&*@$O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>(I$6n<{gG;h<igiC>fEnC^j(iRaBTTp0P1e#U|ivbmGlS_IbxwqcjP+J#3
      zao-nkUxyEVbot;6Gx)`Cj=#a5;P?x~=e)Uzfx#I&)AOG5yk~#UJ^AhL8@~Y9hHqnN
      zGO(fGRtC;l7p#Gzm$QoYz_>mRxMw}TWCf1rp3d8+Q=>678|c=GmB1+uj63Dvh+Xz7
      ze$L)kaq~snKr(OVoRU?{*fW-I1)guf9IyJe+`>R6@Ex}>WT1V-bIXC{2FI;p#a3uF
      zU~Dn4u;6=@8LHIn6%xGaH;`~Er77DV(>W<DppV`yy}j~3*w2&ljLl5kpr&FPh}Tut
      z8BnvfeLio^l?^O9b=RcI)1DuksB5)pIqkW@G;LZ+ArrMqGbI8G^mWP#>{`To7%`vk
      zPpA9m_{Vbc_F1b^430Xby3Ps%Fwl{!_`dDt<}!1oDX*xo+CWn(&2BkvP#n4Aa;<?#
      zYLvHivs%Or23FK->>nIlwRULh?K11mF>&^VDR-V~EPQh6oSh5!8frLKbX+Ic!#ErJ
      zjvHtm@$z;IY<u#~$5R+I5X*S38(0N}d)XN2kns1>Q_8XBVJY2DDeVNote2Zscz~@*
      z(a83zw-3_Em~T5;byz%FCAn#3bM_>#2%QQKGaUv}*hhvz6jIU%hx0Nfh!ZG0B8Xfa
      zBtwS^<7DVe98Dy!SR6e{=%7WVBcfzaDI8^u>0ht=3amD=cZSSkWYU(Sa8k4@)P7tu
      ze4Hmmr^1@fkl|=5Op%#9&-i&V6W#@dvt&~Cyo8-jV2Ol1$KEh(#iIA3)N4=qT5t_S
      zCHlO=3|WSE7=_<TGvhLYKyyWM7wCeKD`kdy+CVFV2ey0%3iI^H6g(|F%Vsl;@alPa
      z2zy>jlF+3DmZDR*7ZT_~XAD>F_y)pJh~eeip1cYxEK*pkutZ_0LYKlag>HqF3TqVB
      zDMS_G3hfF>32`lfjp*a&G48nbg#KucT2rzdOubl+TfQT52(}FC$%`X`&l30qn^}7>
      z?QmH8#{cJH;sm!9?0_pJ9P=d``|dvI@r>S9V~(WL{U3X-Uq&9QSxSUkase9_MGK`E
      zr6#Zeh&RY>l-nER4$8>}c_C#^Gi|$M81>2N&?g^7pL`O1E^Dw`PW|o%xrg$~26+|b
      zH4Snv<#i46dMuZBpx+2{-h|DpU<(VF)pejLl2kXbHQQ_sWU^6nTPE9LZqH<6=8jBO
      znL9JtWQ)0rG-eKEe!}jW@<XD$SCmIYc~q45Yvlu4`4E-U$#(G^F()&0e^@LsVsT6?
      zPKZTTTb$AsPmn6}G-<18k;cs&X`5-&Q=#U`5l`pEQ%O8|bx%)Gx5X@z#>@(-GG|F!
      z%{kJz`3z~B`5Zl6j8;?X5l1})E+;!~;>B!)_)ARn72-c)H}h-`kyka6CK3&i*ECX)
      zT0-P?ja(!W3z0W8a+!z<kvEB$%LycFR&NQ?BS_8aZ9!HEQnPwTkX}JrLqG2dvR;sQ
      zh`c9=5~M9e-WQ}zkVJ@lAV`NG?IH4^APX~W!POr)98LI$^duJ+upL{mgZxfh$1ePd
      zA>87|ZNaF~#f7^G`;B4l+X);n&T!rOIAmPmw!Mb5@f{|N8<;eH=c@e!hmF6uX>Vbq
      zsfivx)=}g~j~{n+2r<Buzk`Tw`Wc`8n}&R42u%`I1$>S#h#B}2Uy*Wx(a%%#_+VGR
      W=UFYGYI{tFtJ*f#ZNJu9-~0nK{pl3|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYE26n?g8nzw0M!cw4M3x#rNfnE?1u?2;eB9OE~C>T&-n=I)<vRgMBYU>42
      zyx%Y2{W^T`qn8iPFoR$G=J*@@368%&e9oIqjSSA%nV$EY=RNoL?8&cx-S`>6c6<{<
      zgMrNjw=#I%x@Zj+y_{9F2UGeu<eu~Vk`*|fdnRw6NlnGjXrNOoRsyFum~zU&F}v(l
      z{G7eN;^vFCfn?s!IVG!@v1cvc3OwI{nX3A>+`?cc@Ex}>Y@l`2bIXC{1}Cgy#a3uG
      zU~Dt6wBUP{S*k4BD<pU|U?AaEO4GJKu5(gYLLWWbdV1u4Xn-f>S(}--K~2Rp5MNZ;
      zXh6-`_JzDPUpBDp^c|Bb&v<@ta#5>A%W2OIW@yt?3Yn-?nk^AnqOZrSz^+BSixKDf
      z*Pl-J=kqKlZ=bU&#o)M8TGUx%00!D}72mhr+<a!fH0>1?)){CVPfb0-emQPX9KG#&
      zgMmnDYP`;{7IU+KH5<AY>l_#w8s5;|UoW%r98+g!m~{K;`qC$-&)d0x@1aI=MaOl5
      zy^Pb_cY?``dU-nrHa>a#^C=7&h-Ez24XlE~-E58YNcel`Y0R<ZX(`=HDeVNooR^zX
      zxR1>lqmk`bZ||p*ao={d>WFx>N^;Z8_Uuhy8QK*dWI7C_u%8TrD2$O|1O@gYLgxw(
      z2_jdA$<U!fiVU5JqlpBTi=&4L9k!@+OqA?th2yL-{mXS<fz?L#&5~jBBWcS~I3?N@
      zYCozOKF{N#Q(;YK$#6IorpZiRV0^xFWWu|saE{EFy&z#{5?CQ&&$BlSTe0Z9DD~RY
      zz7|{qQHj2wFiV!<9Y*2T(#W{XAkbWq+(o)z<Vu;Lo;1+R;DIe)g2DnlG6hcyPqW!f
      zBfNT69>QMGk|gw80xQuj-17-^pgo2ww|xcSD8%s6zn;7bD=br3uCPL3r9y|oDuqsk
      zwF>JMHY!9F;tH(_NeOW+fnN0S14%iqJ)u9_<JPpS2UD+>6PE9Y9D+?Fdh+6k;L`*?
      z##YuI%s3p@zSRF*O`PDCf*o+Fgk!#<x9`q_9?$4~HSS0{o&T}v24v*1j-^DnCzr5c
      zQ8ZDCQEC7ifOwtULb<h0Zlj#6lb2HFG}E?2hEboK4t?@b^vNgD=c+op)zt5-le;Ld
      zt&_VcudkDPC~vHjH(|BB1N}yr^A>Dn1>0D_oUQ{6k)*nb{%oT;n8`-X?U`(oxg(Q}
      znL9ICW$wyklTGGs(wI4%`4M|+$`6S0K2aVO<pZL8P%9tO%15Z2PPU5Yh&h>|`=er!
      z5sN9YI4KrcZE;##JVvU_Go;O?MH)AAq%EdRPlcK%M?75+PbKl>EqZ!_x=m)8G-g&v
      zl{rV+Y|fL$&8J9P%xCE7QnZ><mpJMoa5>p_6E9>V#9w5pFBAU(dzfcqh`geaG?8eC
      zysD9c)Dj}EY2*@-Sctr?k;_C>h`d3>TumTZvwBmIE<tKmZwb;ZNX_bPL3#vf4*k3%
      z$R<JJA@Z&uN|2Tic~6iQK@uVIz94Oaw1&tBf-KFj1y{f4a5UgU(o<Ymzz+0dC;45t
      zj@|eJ!??wb+k^u~2N&)Z95hC_ZzpibILmeG<A`yE+x8mL#<!R-ZeY^*jjQ%|95w#r
      zroDyHh6Z~4NJo*MJ$~HPA;ch0{t_a(<tKddPa5)-Av8%;74R88CuZOad`Zd)#sE*z
      a<AYuOj%T%ms_m2xSG8?iwEaqJef>8#lIk1)
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWkB)3Ug!cd@KD@)nR(i9O9ThLM{0!=GS3kFo2CPOliOzLC?j2oi3
      z?+duE#}9sV`QSO6gFnFIZ}2C0`~~83ZzeHt@Ekwn-uHRtUGIJGo8SJv_A7wx_%@CX
      zfsI8s$egv#TbXh-Z<X!Ll->@xXR2Ps@|~)C+ICNm&&AOx(61E(-zjINoSJ{ku2lms
      zZ|@7-LfIBb7wo)KvC5{sV0o5b^#qKmhHuL)W=!96+~TM}_e9mL`IhS+x5|Mn(Ip^;
      z1r`^*YOp|+mc2xZpSB95+@LaVdy_gRiAD4=xOH$){YHkl6EE1z#PyphhCrgFvR*)5
      zu<dgNt6mdWa_Y88)k;;*Khe@kYMiaQeu*}*N+?9F%0h+2BK>*4<=f4OcQ8nykjZ8<
      z^*W0w*k`Pu?9V!tmd2d|5a`JVo@cxHx>>KxSIZJ>SmQb#mE-#5iCeyrkBralZ?kHK
      z+sNx!*Q#)MWMp*PO_15-nKO@s+4i1luX$$vtey9H5ppbFc3j8b%P5<Mjtg{7R10<-
      zyo~g%_a-sIV=#HuR$byQ$~+q_-z^ZI4eXi*_Xu>IunTSo?`4qLQs6Z{-bbrR&(Vrw
      z{9;;u;1PB4SoWr{1icauFc(IV*hhgOBv^ff{v{?U(6_{ciYWyWhbhpZ#1sX3Q;w!n
      zSgIU7MC!0b`(sMUo|l-VkhMGsRvH;!pzyF}SkFlchgH-^w7^?=Oz8wgiN`6hBPHf3
      z%;bHE0)^@7d5JR=_S<<CwUoj#74<9+gHZ#^qt`NPWMr>_T!ARV=Sva`6q$g-ID90X
      zjLh<UEtP3^p6A5aL5;zl<bg80Z>t9&@f7_tiK+(A&_5FiKRrjpY&23SJ)gpI^eX9v
      z6#CE`$K_j^KWv0JUcTwV8??j{iKP<DB$i9`Nvx3QmslmSR${$GR3ahKEs<6suBNaF
      zLwpxgj%!cr*E(y>tEph<iE`ZX9EC$NHm3V7fe1cJ;S+3O?S9E&s}4>5&xyqTO%`pR
      zvm|WtWt)a>-{uKZkEuyVrPKc(18!I~Jl3$32*=|h9#|AHqBv0pcmPPW;UsZ)8}1=a
      zx8cRaY-if`sczIe`$O-%6ut9G^uD6aZYA~m+wcJKsy4iucx@XVBwpW!H(;f@2l|aL
      z=gru{3bwL<3%U+;MAGs)w&gmFjG2oX+s$0e*kR`4#!fRQja_Cg9W!=wjT@up&)Cyc
      zzF#SiE9D8Ld_XB5)XImn@)0U$)7{E*#F#PZ{;0ArmBpO0IH4?Z+TxV9c$BL&PIK)t
      zEUpP7&oyb-^i*tma+IfY%2P#os<u2mLEV^9;~F;tuF|-`wach;O&CveO&ZVA)5T~b
      zr2*w=fW)PA&vm?*i;#bbslGz~C+uOKogwq8X0l|WA@iDMimH~7d0jIX$;3nE4b5C4
      zBSYp*GR8_0>890NiWyK$)9P)-tX53Z>K(-lDyA#+^R8kxC?*jy?<qzqCK)pCD<-L!
      zRLFdwm>$J+hs=kHS#0tMuKdX6=)gx@PjX}dJFpEqDeuB}*o{9iiW?lcF&q$moVc5D
      zP>gZlPUDbxob%Sh5pkL0_A0XCdrXUKm=V8o*8YK`;xCTc8<^<mpvRAO6!m|{$K7Z`
      zWVrJ$5Yf%Q;M0H8P_GQ3NvffM&+!F0fiLkDS9UOlxhp+h*p(l+H%e&O&gpOs+s>Bl
      J*IMhFe*j3j<@^8u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+?@|+27{;GN2stDRgrJBNQHUrgBtcY)psfT^G=WGEiqvtI<QUd&cA3p?JNeXW
      z=$GC=Z=g-4)0xiLubt@~^cs2%?esloH*s}z#t+Ha=eO^B&in7|U;q972Y^Mqh@pq!
      zYR&Spuk~;BtZ7$tQ)CNj*|J{QPF;5m+j=Rim+J>H^fF8+L(etLY{6)_yP{!xPDQMH
      zR@D>?$*QOrb=@qBQ{B;B+hIr*{JnLnmMy!EVbxX{2J*JmaCOVw*G*4w^fRyw!*I>9
      zy;Cyj`g3UXYMw!}y!x?lHdRa<L$pVFKAo1oT!vQCr-CA}+>S|#A>K8aVc_2h@l924
      zHW)^ZJ{VNv#CF_+u2n+mqHVb+<kMFV9-?~vv`%11z24AW(K+!mI;2|77K_<tlai^5
      zSGs4qdq%x$G06ai!HVZN!m2dO&HAxza!fJwlsu}HVYz1hy_c66BI^gGkXz@xtJIIn
      z-4rvq-0H$RlESG_&{Pu&_smf^>7C=(qT*5~_*%s@EW^D=r_9dnGxX-|s^~`sxfrsa
      zIvvmNYZ$?qeo8JUeU~(x_2rV3w>6CV^0t&K8qWE0Mane|W4>IA;fwdW69gK=eVVSf
      zljLKL5stGQqa5cr#yHM%OmJM}nC6(_h;qa^1~`&3vZoqmF-MIn7?#*p<FuzA%dt(V
      zk>A%HL+Swbt*N@i5y8HOJzS^SxF-gca<1@+SBC1Fs0o*bJ!rz{?A(Xj5HG8Hv}wq2
      zCO&clGctcnQ7RF-ze7~DDEdgnNcDgUfOtqJNDqYcAn9aC50j>zk?)vnmRhMxYNht5
      zmHMLA^C7=+vY!a)3#2cG^d-{MA)O{Y6Vg{OF8e_HMkwZMxK0_&)3x|f<pDO`!a^I1
      zE!=41W(&94SZ?9-Htw{r+Q!}F;2YdKj6~ny%fm=&y?of)!eW`0faDdqNhBJO4MmoT
      z^abRBB6o<y0<x*dT_QXn4~eA42_!pSk0iMuNylqTl1q|wydF!EmZU$}=ZPd&B#8&4
      zAPJWw5s;!J2}!hoY)djI$v{AMBpEK3+bI1)wd=ty{XeIB1uRi@Z$ZN{QdpsCuVNA#
      zRPzT!HnD|=IKm^;>FIks#t(RcpHRTBDB@3S<8SQXAC&Mfp0XkAvPtCG6c$icr^xRW
      z&A#6wWND>O7^2sH!?U+x$RR}FqWK0mz*oc=4k<|0V7lqPGc~OAv)Wvy;QKyP$N9d!
      KUEd>R_4WT<5?j3h
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X?GJ<7=CWjB)3Ug!mt%AvXreXO%V~HMJ<IQ(6qo5FrdOT8IplyQYSND+;9Q+
      zeL-<w(Bns!51zw0_yaut27iLbUm!mBW>NzO&+)_D`##US>%H%NfBXB|uK+gVy96Qv
      zYfEmBJ!74-vXxrFs@U0az3p>P*SxCbJ2m&D?VcPRNuWcZS1Sg-Q^}4yb^owkuLWMg
      z-W9mTiY<^S+6AX-RZM%v@+`mR2^ix|-<Dg-n!e|_r6GZ?(VAQLE!RJ4RRUY0Q$P#|
      z%q@AfV1_EQ_7Z9S+9;5AgX*;Hjp>{u=Fmsq#=buF4GwT8p0SyU>$g-4f#j^pY5{rP
      zw$B!=MqOauiQ6VsFV{T(*sNAc<6O=4%e0ACLm_5WXR0LT=-<07-)=>`gF%YLY%Z5=
      zG+0d0K5YdRf6A%OYTQYUa(PE}M}4^^&|L^T&vpw9vr(O{RU}rh)>S+*$Mq|txBMd?
      z9Ua--X4MM2me;asw$g#Y!J$nzLB=dFcODJ1o`0gf_Q~lpcERU`$l*f8aUK6YMp@T?
      zRG?$DR<sk~rDSfsKZ!vehsi6q8WML=<{4@EZh^#9VAnOcN1*eVU35cuFM~{#1F!jW
      z2d&0DM=K8Vk7@aVN7M;{`_h<)`4SH>7e<lTMS&qCSbdcKCB`Vwx5R^rDF+h!DbS(B
      zI0brBjwaGrpd1|}wcn!sVWnhGOH5J7S)K$djgHJvct|s>=QxG^D(b^p;H^BWbb^w^
      zDGKaNiD?Rx1z(~_VWM_U;xvWbc0olgr?F5)J;TFb)WGuSwZa-1*=r(KAja^8vcwEU
      zCg3m*A4>-#vpio*722KSIWcxnXRyb4pbYQZ>LExxLH|smromJ6&qTss&k!*ijZ{j{
      zrm;w+^t?c1Bqwo^`@x+0^I{r3n4iGQw>*llF%o$7rUq!z67wV$NGz0CB+(<WSfW>A
      znZ!zo)e<p@q(qlQMuqq|jdkefdl`3JdqThBDQj9y3qwzuqn76=9Fp;2-G@m;@kJV+
      zVFS;?FFS1A{_+1gso2k{lI?TGgiXJ2UH|RdK56RlHRh;vdjDha4X6iz6)Yvnu{nna
      z7DJpUK@<TG0LeC-BJOI#-NczTJeQd5P1_#ToqA`#=$)6OcV3C!7q{6hp?+^0UP`>I
      z4KF8N*@pXwSGVCcSfcKMexuBJJvOj{jV$22t^<*1MqbCJe20-W^D$$ynU5P=%zVPw
      zYUZV}&CF-w#&)g=W61m&J6p>4E9DWTJgSuUDCNCcd7oB3K;>MfOL>kOlP29CQWmDN
      zIHD|$DT}<eIH4^b;VO-jTssYmYtkriO&K;lm0F%0<>{>QR8^j8vz{KKZrrGIO&9@J
      zX`JWUX*9SdjVHOLjHl`8Ladq6bIQ>RBravTuj8eBl>949^)>Q8VJGwK2$|P4lOq!g
      znKv|3QniH4o0_>mCJ{1kY333c88UB^F_w_Xw5;Ay%u>a)tlm}3a>cZ)-cwAUVmd=V
      z?<;1FVv-^Afnua$QXz9$F)78QL*_%pbStJSWIj^NT$4v|<wrJ01fOs{&JhM|!6s~_
      zybV{e9e-j7H#mah*duy4f!AZN80G+;z&>$`^Vh=xagpQqGIHX3Oo(fk6u)!!{((c{
      zFOJ?D7>z{e@lzcIY(GBkW)mXIU67Bh{{^4_n}&L22u;#W1$>FG$O(LnZ@999F~D8v
      a@xreBz`a>Q)AooC*R<`JwY{pfzWoOynCwyj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYD-7=BLEB&SJQ!cw4ME0=OB(58rp*rGy95!$rE7BHZ~Hd&H|WK%c0V7(!V
      z_xlCBUxyEV^zy+OX7Ga_9e;yA!SNS}&pFw|z~GFX={fK7ocDUpyKjE```Rx6w&B}2
      z+5|Qh-5_(uI%j3d)x1@<GgEpy;GV8}70Y+3?n&D{IX)RjyFjm241A}YnR06WVY^lh
      zyu7_Pa0_KyAYHKYPQ@yl_Ppg;e$^8&rs}>ex0o?~&vA<*0-a-3x8_@}f7B`mwnT@3
      z*ebBN=v9Mxsx<8-Qal<GNV!2}&h{pBP7;ggqkn6Ezxp2@;!ZqoGZWWus2Bo?rpkH&
      zdEU0q7OaJuz>*WUO{!L^dj7GdR#M|^)%8oXiB&=&YE|YdBo^u8am%+G5$|Bc1^x|Y
      zvx9{K%PH8Wt)T4BI+do*odOW($_JijyZHrkp)yx3ORN!S`}Hbs%W?hk*e!?a1R~>;
      zlPzYAh#UDL>zYLl4G)hD-UL~7o@w(|m~i)r*0N{j&e(aMZy`tXWyf{=`x#}^z)^wr
      zv1-ANgO{GZ_30#rc@rjI+ggygi!!fA%XbUJX9K&Y!94;U$LxX|!h0EHwiI~v!~1A8
      z;W=7ylqaU;2Od!e@8$j!mY`eWLFU3J5_>5ygv2-n`j?oXK;IG%DW()i9Hc;p5>piD
      zO*xuQVX1QTFsXwU?GGy@dro4OLe}ymSZQR>JcUOz!+MTWIH;mNss%pF<4PweN}Qs=
      zrj(eYFq8Ks_`Z?p>N$zi6vpkmidsrxnTmRbm%*rk<<V=IH8QeSN3KAW;qxVld5TQH
      zVH|!Z?TpOwd@Yq}caHbO*g=iKp5%oxyl<;-K;kL-XA)Hno}qsx5*|HA#B4NDDLtRU
      za&#-{g%o<w9ml0x`af)hI9|T#!Rxfd5{ab}%OsXd^hm6b=#^L{u~uTeL{uUn(J7Hu
      zA+Dsb2?P8zrX1Iv)*tMwHKzuHp@+&*%X1VC$=Imwy96TmEQL?7g|+)7hpjp=^*@Ia
      z`!`v%eU6i`$(L;!xP6-^Og*V49F<P*f6TZc)$mxuQX-s?i+EvC#E9ZVZQunU(Sno2
      zoh`VFINgF56SJLZ+oQTs@9Yn~^HKE9C(-+g7Q2<y?`^?-#H(8HYT~smxSx1^3*La0
      z>K*7e!kjl_3oF>l0?z9?&=yI{>ln<n8yPbfHMW_#n6cf=#f=?iP8vJSTsmg#;u<$b
      z%%8Bkq5ObS-lLSql=42Myk9FH(8`lk&Zaw+=ZG<5()}T2VJeFw%Ho)^$Z3lc+Tt;;
      z(m2Vr!?3s}j6Bz*VbfEw;mJ{+&MHq8<*C~A^aOQdMvZIS2)Ih)Jl76mfosBenrqT{
      zmYyy|>nZgqM|~tNrn|1=#ax8^OHB0@@;_oX^K1{9S2dF*6AhWyG*eWygv{%jxj-f!
      zGH+<+A{iMnZ;~-ql1MkK-cn4TVj5O&D`vG~8dmQpre84~p`UjZvq3S5ka<rrQZdPp
      zd0#O}#iT;!1I2VHrZZ$dRLo+NS8(|UHb)yi;(DAT3)qf9?4Z08SFsC!Vgxrha%0#h
      zdN^@6W4{>Xz@5ecaf<WS!=$*xaeD<>@g1hcHOz?LIcxvGA@LVS?G22zwbA3pI*R(i
      z<HucZLS(q}HxSXyKjYJX(@<X-LX%Wo0iWXwasprCE3WKd3~^U_e6Y*kbFY_Bw>_f6
      O)ot6GwqI+lZ~g&(M(7#<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWjB)4f=!cd@KD@)nR(i9O9TTohP1)5fv0tQr=CPO-qOzLC?j2oc1
      z?+du^e(<Bq2hZUg{NP8Azrmm2@fV2Cy_v+o!E^kOd*A1ocfI$$Z+`px+AjdM;_Cz=
      z0_%%zkU3+WvofVh-YVIdNxkiNPglIM<vSJkr0t%Z7)_u}pjRsfzEjFfI#vI$U9ALO
      z-X0CyLdh0L7wo)Kwo0ZwZ+Vtq@dS*?x^K%ZW=!96+~Tl6=UBz9`j+b-wMv04(Jmkc
      z1r`>)N-$5AroBXppEe7m+@L&bd*eDMi3Rl0zq!9({e}j)6VKbs#Pu60hCs5ZvQ|Kz
      zx9zh9t5y|QbmF#2Rp%<6f2^t1p>ek2`g632mqQ_DmFLSO7U<7=E#GcLyn{gsg-kY^
      zsnu9a!9HyTC4a^#H#P1QfIwG1@I2ei*UVaZwo;N<B@p@b8=jTp`lYd3KCTgnPK-X(
      zV%CVap7*h)S>oW((D0U<Ak)b+X`Ttw?LN_3^z`f*JMZ%*<Ve2cxQ@S@Q8o-56=)l)
      z6zl|e8|hmwPGX4XVDhf5n#5g{c{p0WTOctL*i{Yg5okYV7u*ou%OEpzfmi={AFakc
      zM=Or-i)s0RN7T-9*`2~7bW1$ITo^@SlmbIY?4>~e65|x;TjD{*%moq$DA1wABn5g?
      zj;2yrtQ_&sq6aM6A682Cti%k3tmR3t(&(Of3J+_B^&F>gKt+8-3%r)clul5TI7NXi
      zDKSf7I`2yqC`?t(Nt~vz*Uqb`b15uQQP1!&7&WjwdM&X=M)vB+6^Jo>eokVZA`@^J
      zhp(iKky)Ovr4sGV@thbts500SJWz)BZS?{qo}_;!QPJRO`e!2Hr)P<njYcY^izzHc
      zx00Sqp$FXwT)w6I!$wHp#hWg?PD?D3SS+zbVyQ%r#4?Fqi4_v7CDuyBB$5)H5@{9U
      zY6=@Lz=tvExb~EOt~1uG8ViOVDMu~OQ8*;yBf9UBh~kqJKEfu}?$0@F)q%<XIg;4F
      z9Yx#cFbSJ{$%cX3w|Uakb86gC>Gb}`gd0>1k5w!s%K5l}2Npw|C_xkf4*<y)+(F#g
      zg1d;*EqEa@+nKgKsvGsr{?I!wMen>4y)SFATTcDn7Tia?q6M!cUfqKGiPyH^by%+M
      zfqtXRc_TKlg3T=8ysiV0Xj)#!mRy^WF>^6vtC@=%+ss_T*ly;evBS)z<Hk;|31is&
      z3A-A~_bcT+N_k8v?^DVXT6w=#K1k(kx>I?M8q+4-A5s>kvN)nFjwy?rwm6|J9_1>H
      zlU&;ki)+%zbL}u}dMY+NIm**n<*BSZRhph2r*7P+a!nWkS81H*+HTaiCXJ`Kb{Nml
      z(}h?)r9S1TkHn>P*L6Ifi;{nVslG)1N9<yrZ6WirX0l{rA@ho6imH~7c~vtP$RtAM
      zHO*WiBSYqOGRATe>4w!Cis@5K!|F}NtW-?H>Mh0eE2cg4^R{BvDJB^*?<htprXytD
      zRZNFsQX%u6V!9O588YuHW}(R=xbg#=BZ3dO9_PpcwqXmlQ{I7Zu@iq{7&ka_<Jc#9
      zIB_>(LX2?WPGP?|#d+)Dpt#I&dlgyn9j3%JOpD(+YyZF@@fSz!4U9!1^!TBUqW<vs
      zxa&=b40rwqBDV2oeEe@3>XjihN!1nbDLx}7@HxKV$_~aLccsS*yYfBvdI@#gBRX8&
      MwykOVrPliDA0O}M761SM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X?GJ<7=CWkB)3W0hG8pMq!5-CN?SxkXi=e1mNqRg1q`S#O@?G3nbgS)ST|h2
      zeP2-A7xehi<%8#N4*md-zrmm2@fV2Cy_wX=!E>As?|t9rzWaUW{q?WwzW~^bZ{uhY
      zSYLF5!L!zRYp`6+TV;E2LLUd*GgYr*`A*e6WxJ>LkH^s}(5)2%-zg7HI5q!>U8@FO
      z-rgO!g|aP>F4%deVwFvM*77XB>IoPVb>Eg-95j8;af`zO?W0w<=3B0R%qj=AM4NyZ
      z5Li(3s=+K(=Itd?yy_Q7xj|*d_QrHh5}g8Vnf^>>Xdsix(BG`hEL^{FZ3x8l^;!XW
      z!M4v8tht)N!jrd6rdFzY{_%OOq?WT)*Dui~RtcG?Rhg|2=+xJHEZ=TKyMvzh^6T%(
      z^6M!S`g`X1v7Ul`#tO>*v{RW^zLS|-rP7Ydj#|&-0v-9l^K3UiXU<h-s%42)0+IdW
      zYuGr)^~<BT+!E*Qo+i6S66*yPuc^0WXlS^1p6z1?@+^VfVe*SkHn(7E=B%Cf`5tm4
      zUv^x_zmM*F`;G~;j#dkH9DI}Xt<NVh#IBfpacfTEF7j-Z=I<7WPX~5Q3-_?j<95Lf
      z#d{fKx)gZz%N?{D^Bk=>!W+}_1CLT01nx^=Ar?tIz+4zbVmBFvkYL#n`j;3ZL*Ekn
      z6;cW$4w9imi3u|FrW{SCuvj@dMChPJ`y)!po{^X)leIhvRvOtgOXfk1u$~iS4yvdR
      zX@(E-h|&p)5~s;<FePTlOyzxv0-4F`d5JS*_Skt9wUojV74<Be!Ki`d(QBDCGO|~f
      zT!ARV=Svc^WSM}&IQ&;y8JXqznk&=pJp07hL5;y4V?!C<x7B|j!P$v3iK-T!q<<z7
      zUOi2T*=R|n^h^p%RZ7nZwCu`CT;h2st8QLMp$m)Rc<GjZBOHu4UisGm)M1H*5{o64
      zNGz4;l2|6uEwNH!wZvM9s6;}dT_UYQe3U{jIE0-Oj%!cqpLp7uQOm;6i{_Z+IZ6(}
      z*odCP1S0r6g-@}Oz3@v8N4Ia{e=aJ{bFygrTruI$FX`>O{n#f=y}ia9l}`76?7ac?
      z17H<PiEwLnvSCrgD8(tYfDJ&RNlsF3Z<0GGr<>#jlsVqC?NZaJPtJ=z`AGWYljw6<
      zlihOacQ?r^D6edidnm7Nk~5UoHp%O-T)hMRMws&kY-9!fEZ~B!11*uXyn#)*R%6i2
      zMUBm7E@o^ob8%y<nUlsgGnbAT+ezcbu=x{qHk9vI%Da^Es8Zgml=o@n16p~U%Gq?g
      z@*FXyOu9d;EKFr_R9PHX7CCKkQd>MsDveX5ZH7gfF!H2H!=|TV!;_;tol~AF%2RdT
      z)1%al88y<l5s*sb0%@BuN18C6AWa%i(bL6fJ*8)rqvr`+PIuhEi@6B#mznCT#DBz2
      z=Ght|uW2MpBpM>GYow@Z36VE6a*;?pMBdcMWg;>}-XdZwCy;Jfy{(WH3TarqqmUkj
      zG_2lLNJb%Tp`Z5@vQ8n15P4rAQX$C@xuTGyLQ)~}fkHYI(jFooDrAAl7F_*-!_k6|
      zNl$Qv0b8&MTgh+3HEhQp7{*Pm;28FbE^gor*e6D~fG2T4oaX-ZFfJ}}{a!&<e1}PK
      z9aG{r?%v;VSp3P=dlREAE%f+_jslJ!fA0DaVvwgG9^LRWKKmyP^_L+uN!1nb1->LE
      k@D;u$<pg7Zr_$qtUHzVCy@a~$Q5~*s+d6N1O>2GgH&6@iWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWjB)4f=!cd@KD@)nR(i9O9TTm!17P<&iz<>(VWJm{+nL3#P>jo(9
      z`vUH}AN=U@!E-nVKlst(Z}2C0`~~83ZzeHt@Ekwn-uHRtUGIJGo8SJv_6vZm_&SA{
      z!1|IK=FV8>tX$bESY<mmuD3DwwC7i>!13IZwtI4HB!w1%Zmk#wPB}O3RD;8I)eHTC
      zy*G4=Wm_Oyv<ptfDx3D4<y(R03mD@y-<Dg-nSt-Pr9pxAVb84wmKz+k%AqaMDj@m=
      z7M6T3oTEy^ULwO!n*}m%Sedc?QJs^-0{ZCP+}o>u1O42I=WJ%;26YufAl*<|D<IF?
      z_SvE}Ulmw%;<iauXFWeS*3fFxc*1joS=uBkk&v(|a}^Q`^yht6VAmtw!63zAZek)g
      zKhI){_Gv3D2h&cap>d}G1Ud?#@7r!+-kh(@cx8!I0<mAe;aNFuP#(VJ;~IhZ*vLao
      zX7zaMc^_*UCH4;t3~spzGMxgG=9w_v&J)c=PtBaM3juFJ4i(Cd>jb+QWkcUlftF#f
      zXs5v2$liK!5(7L3lXq>+OWZ}7hoj}Y1ya+YUDe<of!1So(T(7}3^F|%`n8Yu(Q4Fp
      zwBiuIm{t(_M6EoR-5D%Gr^Exyg;6B-QeX&)eH7?lVw3`XOFXEU*-+vD1v-=%r$BGY
      z(PRdTl_MTn{D4LK!%E4Xk(j11VfhlQG`?q!!o!+jJ;x~=P*ESz0<YyUr4yDUPElY>
      zO3YB0Dg+Wm3X|SBiPIGJ*##AKHiIQ9>KPseqlT7GuVvQA$bJpE0ttpM%u38rWC9N3
      z@RhVMGRq6JRHofIo)cq-RR(*42g>k)tzLk{ll0FdJPn?ve<l)rdX|XUXrxlQn88wX
      zD(Sfly3m=z<y*QxYJ?PCyy?Pgw8SEb#S%*-mP&L<ER*P#SRt`mVy#3%A}!G_kyRnC
      zX0QQ$d>G@7YftLuI&ICUv0&(ta@6u2g(EUKr28(7I6leXBWz;r!K}kp?Hm7}BZ>Xn
      zR<Z*Qlc>p;Z0Ngvo2N}Zr$!x>PWOLIxPH~}SjAG}oR155U<o9NQbaNE0FZ9NZN%+O
      zxPv&`gclOCooU;px>4`!554nJ^v)~M`?4mx<<#$P!ac+*n(#{E)lImUcx@A2hvn)X
      z=r_)sH)0bj*vtaX>pBpNXXSNl$+s9eGoLWFn)#%$&CI8a?PgvYJIs7GY3$^hG6v0`
      zu&b_ozf#_#l!uk_h*I9KmB+O5K`KvV+m+|IF=f*IA!T7IizCY7n6k)gixb-7QLfTB
      z$+gw6xTcK)*EYkZr&8UMqdc8eo+`?d*YNZ>b(2PwYsv_@O5;4&R%4!P+IWg<oAC@i
      zT}aeY>QRn*NL<QxT*veIIQbWt>PzH*#4hI95-~4pW`ay2VqVcqN!1cDuWIH3nN-BQ
      zrkP7*WW>Bq##l}wTeo^cF+GZ@TfM26m5Qlby``95#k59#-d4;y#iS$V9mPn+v_;Ij
      zifL0!CSu-GOow9HBj$a@EHrrpSAJk~#P9*v;~ZJQHf+Im$~*8acH&PA;s!@<5+kCE
      z6L%x_iy;o&NsNh8oVPv>ipw0gS1}>J!=$)|De*gJ?H@QK{^F>;f#Fz;9zWDk)E^!n
      zcdZGL<Iev;BsTtxkN-_Wy)r~5nVJGV#b@LMKF1ea*}>@NuJm|eSH9<7E1_n4M2D-{
      Mwlr+N)LLKt1DELMDgXcg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YjYD-7=BLEG^a^g!j?<HB7t%%m$rzA(1JptSZGpU3m8ygn=HvfvZ<S0u-;Gv
      z@AnIe_X|3F^zy+OX7C3%{suqz0~~*W_?(kX4Ghkh$-L)%pYz_&yYH`mU;hQbMtm1T
      zi@@rl8w{Mb&RPTIYThc_1LOJ_b5B*hisd_1_k``97|X`cD$t`91K%kRj5{^|kX@?=
      zUf$jnxP`JUkSf@Dr(%^&d)o3Wzv>AX<8|MbTO2Tb&vA=G0v#h&x8_@}f5a*WwnV#t
      z=ogq<^s2!$Rc7ralDt|kkaUB}l<ke`oFwKD>0RHe{)7F!y}fifZ8H(qZ)g|-?G25U
      z0`i<~pD9=~HG!_<cTA~Ps(Sv>S*?VYGga3w(Wb2uGEu8CT_G?>U+=bjyAkj%=D&x(
      zbfJ*W@Ry$9k66JzWd&t_(y7d<-YpO>m9|y3)zVh_NrBFM;CZ&2pD|}DQ`NG>GJ(h+
      z7p}2;j_a34Zo6H<+p+ASCc8!stNB7J(v7nF2M32X+#<3Mc^1Mpv4nZYn;S7Pb=uDR
      zd>c8OFFUT|?_iWQeMbaZN2&!o2EI?~_NSB>WN%EqzBMCp4|z6B^Y;qGCIh>sh5Psx
      zN9}?eiuW_fWGV3Km)mGH>N#3*m^Y^72Ogz%2<%9r3-cr%WG;*%v5O2tNbDv<{}Q8Q
      z=v(3;g_Ht`ePrlRVw?=UDM#5P<|{`B2<@|I&+bJ=?J0>#G8xO0V5O0r(_|jj2<tgU
      zW}k}sh-UaMk13s?C~=Yuhg4#U%tYRoD3Hlk&q|ykv)j(AsHG$psHmse3`Pwsk6z2H
      zk&(T+<O)O?K3|fUCd&jI#_`y7MrL`w=E}4?%RVu7P-Czs*ieS|ZS_q^aD-w^qN;_b
      z>7R*&SI<&nHd<0CJ(t8nmC^-)mYo@ii#!ix)Xj@YbYor&FW>fsgo6>otG5h59hT^l
      zm@lzFVxdI0#3G3viKP<DC00sACE^kt5-Anp<0RIgj~~yt<JwvMK~Gv!YH=8P=^U{<
      zN68`BHmv6`jtIU;;xnvcFZ`0j(d`@mpG%ALoG98p*G)L|3)b}AdF<n+-ejYWN~h;P
      zc3{8y0I-auM7TlcuwhZOQHoJ&0ULmLlboR3(Ij_LPBqDMDRaDO+pVTkpPUzc@{#n(
      zC(-AkCcDMd?`e{kP+r<3rztOQl6xtyY?4=Dv3dvkjWFl6SjP(1vw(BD4zxs4@&-2K
      zT8#lS7d1ATxi({ynTr{l&73s0n7LG&v6VDt44FS+dqepFrMy!qk0|9mN_nqV9@EPE
      zshml5D9;gN!le6y%ED9@hn2-qWs%bs$F;?yq|!J++HP2+aU)NfFl>4%Hat1X(;4Nd
      zqC8b+Jv~m{Hls!wGXhd+oFi>FW=P}4Q=|#w8G1S&t*7+7a`Xa$OR3Hqcqtbl{t8ol
      zjrfn)&OBQ~<aLc?h(tr=4UH64Eg|xzM$Qw7g~(ePxkN;U$lFAW#RO6ft9KN#L?I2U
      zcNLOWNW<zqh4d<<J@oUwLRKjx9wHwoL@Fc^B9|4CP)IUFK2%7jLOMd^BZbU0*@7!S
      za5!4<3F$GeFklllU^DqGxQea#6GOPk72JkBqMI9dE%u6GF5oQ2#7XX75BtSMuHVbZ
      zh-=7->zEL~argd?gW@l)-kTU{X`#nYbrf*?_;J^V5Cc2~@#xy0@%g`LsILs6NwThh
      pFYy&Ifv@omDJK~HJe3|F?8^5%>m}4}59@Gs+tyjzt6J;Ze*huj@s9ui
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=ET{lG`LL=}@3xD@!R*mZpe^*n&c#2sEiM1x!(4nheQ6GE*lrVB7%3
      zeP6(RJ$~?`%LmWl9Q*+ue}g~4<1Y}OdoziFgXj1m_rA|F?|Sch-~9IX^<M#O#kX;E
      zXjorzg3MX-yqT%E1+!vhrqy=PIpca&)3;scl;xbt&Bf8FVL&MczFo;o+cp2FRdWNc
      zVC@Z@V#U&sE?Nb<YE}$u!Sqbu^)%?y4d13y${4<9JEd_A-IK0U^G(M;ZdL+Ipi6@`
      zs-d^!xxoTeTJ{1de%h=d<pkAv%bQX;2`r+Iq0K`>@;5fhop`}wCXU}!(KRGmD#IGY
      z1<N{DH0w1Di%;G$sao0f{1Yv$q{3O(@yoP{RYM_aRu`%y7OBtsOy6ooyo*7K#Y{Gv
      zsn=Od(K=%W6@S*Qwlwb601Z8b!1FApP&ew;dAB04nl-NFQQ3}PnY`^A`ABYVUz=4k
      z+<IQe+E#_5V`Jl6Zh_3Ez?^v`%(m}jd(AWRXRU(Iix3lqitX6`ZbsQKa$G~_q+7J&
      z;ANz5zc+y~9)rQFHtPcSQ0Cbv`Cbk2*}$qPaG!>*6IRg);r$FUTMoR&#|LON<=IMc
      zf?o{N4?LnS9?R|&7Nbw#A?Cs;0(&VigaE6L(7(VG1^O0vSTf~6;1C5m6qu$!Z_-gN
      zg(cF_Bcu+Qv_C49ta*W13R%+=V5N~g3lttz4C|Sra7addObNV|C!|hL5;#qP9VswR
      zVW!{<6e;A~^8#lm?6V3oYB`0aGU{0#2BQY1N3Rvu$jDv;IU1r2UnmPKP-Fr&<M5Gm
      zGBV5al~keKd7cwv2Q>zJiU-Q@z9k=kz|-{4BwPiarGF+8etMpW*(fAax|G5)^hxQ3
      z6#CH@$CcZfKWv0JUcTkR8??Y;fh7V<1(pf)3oI8H5LhX&MqpSVDv%K97D&qw*HYMk
      z5x$FQ+p%)$wa%LJaw_O*q8v9pTjG$6O{l(0AcD_Q_yn6+yI;21sw30?b0V>SlO@aN
      zED4)@>4uRzw|T-)V`|El=?whGfE$$!kJT(C!tuC>2Np$)C{EM?9sm+;I7!^yhI@$9
      zZMc`1?M&N#*^O#vf2f_8qIO=1+LyQ4t)Tuu8y+NH*@jmUuW7?W#KUcP9ahMDpx+2{
      z-iS@CU^5H2pz1(JBrR@WOTJUj82PBa)yT*6ZALz>Z#VKn-(lp_F?}c3xIS+Dj9pFT
      z2c_~JsXQr__e<piO8KBtK1}6ox?6gV=rac0ACVS@v^XX$PDqQqvN)+M9_K3bQ(U`r
      zlWRgRa82qKJ(ZfCZ0YHo^i-9e+?J;&sT<R4T;qDcRp=MEcIkDl3H=$aN&Pu`x)^Pw
      zG$<VnlDM4ixq%n+5%MoF)mO;>gk8+DGh|*>OqNVEWL{HDN!AiFuPf#vnRv*&p_t2L
      zM992JMqfc9-L!g3GJ}$7TD>iqRg!61y(5_+$#jK&-j&Qc$s|JNJ;?~kBtzzX$s{F{
      z3YiZi(<7PgkoizDy#|lq>W^%W4t&IQjw1`$hAr4mc?Z73PW*{++~mlOVZYYTiMtU8
      zv<VK}91d!yId452)~;~eUPD&<9y#qgX0+cqYyZFz?Jthno0#nApvR9@6#0M0$K7Z`
      zWVrJ$5Ydgl;M0H8kgp7(NvffM&+!F04PW9buIylpa+i9%u&Y0CZ<NrmJ*L7nY&%=F
      JUn{L|{sH*4=0pGh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X>$`t5Pf4=(pZ*lv0R3jAP|QQ#x@~@fK3uGn9H&aYaoIou$C5SL0UPhU5Im$
      z19IO73AqoF%EufZQbiT{0jd0k{Df3~LCBlY%26m%mHjZ&{igeMPfu_E`q%Ye0Bpv$
      zakL1mFS^0tS?jztSgz)+vOPGiw*&5(s#mdmr|O=v-BVNh<7gG=(T0KVln2M1nt#Nu
      zRRb???+)BT*%n9@?7UO4%BDSQd6r-G1dQ=Ix8)WGP2Y3e;;=x+Xw|Lxmg^t0%7HD>
      zCLjg`78Jc|FiVqpe~BcI`UR41P?@p4F`bh{mq1&lKa&|6$Ye6)o3)vR>o<-KftWsC
      zD<Ch}_PK&JR})xx^0vv;N>$H4K5x~o^=#GkOZ16VLLq8ZW-A1`^zk0cw;R#!AoE^+
      z{pms>o#oe`p5w>+6znrrQ1+*t%DnNN0*O*-M`cGXZKWR<=*$P6XS?}1bFMN|ElaEt
      zh)k7cSvkk`%cHlPu2HA^r<(j4S*#aWyry20p`qd4d9jZr$ny>?53^r%vbhG6GiU9*
      z&j*ns`Lg3W{(YqH?K>vWI$AB*aqv-6x4xgm5X)ln$*nnwyC}0(TE1H#J{{OKt=z*W
      zI&K%-P`#Hyrb~fWKiomDG0)M4BRnxJKk%rvLEye57Gjaa1I&d{Bz99^2#Gxu$S*NQ
      zf!q@N6;cW$4pJbY#5e`ADWZua7AqoFD{|1H{}E+m&qz#D$XcERZyMP(OW{F{@IEIf
      z98^&s(gGjk5oHq;B~DXdXG+Xan9TbU1qu_@^Acw$?6LDIYAJ~&D(YDlgHZ#^BWsy=
      zWMr?dxdKs!&zB_l&QT`dFb;o~Rz~Lad@Ysfcb;`(?4ZVAkFlT(@7wA}kYMk`nM749
      zPm-UBghx+PV>Vh-DLs?KQkBwk0xi3;5|_A7W!1?GNpxdT953DSbA*i%$1DG8fI2L(
      zP-3yf5{ab}-4e?rdL&j#td>|S5tT?tbV#IBh>w!!1)H#I+;Qy*{TEMLGiq8GdeR)T
      zJV)sv7#q=jm_P)dC-EsZvKD^HVe9sd|IbOqer_+?K4(nW^h<jCZr}C^Q;)APN2SyA
      zAA@f|{Qy|St3)_9yI8O&V$|Z)TEGGz(WJLi?`YCHsi&Is1=QKz^zByNsdx5^-uXy+
      z=acAtS(D##+V?c+E2yt*($myeH|ZJbYn$|SSgziIyb<QS0ULRPeqP{$z6V+&DR~2%
      za;?UonTr~m&0NgbV&>w;Rx>A!ZDuYNGq!V$8^h*L*x4|?Um5RG#-qx3uQJ}JjSpz!
      zLp08&Iuvunm^4X$Sb3Pr<EZjDt~_$u<D~X@n5#5Sacwg!t_dU0wcW7ERBSLgis_tU
      zswk%FJkz7JjTtqraU<X=jSF1cj5)3e;|Z?q##3av7_F!DtRi}zz~xlu4ZN6(5PzAe
      zzDoQ@>|~y;A@Z6=vP7aG^14Qf>MkMjhDI(DiHFFW8o5kFhR9n)jO7GU4X?KqvO*yZ
      zuXhxZR!GC^U4>*6(iZZ(r;v3DNrcGz3XuwF50NVhX;(-xL_SbRr$RbH<U@rlFj<1D
      zKd?Dk@G;jD9AUr~Y{FK`+i(rr@dt)+lOs5Wy`q~Fcmwu{5f0!991y2De?1%$mpFc}
      zAS=GZgt(4L@f&CF?>H>}<mkPL(Uul6exjp*?Z=<H-h>$BE{I1r{EW~3Nkjc*2wjqO
      q1AKumi3xm#ueq{=F~D8f@xiWs&%J(yy6;gPuI}49?|V&Kee*ZZ@$VJ@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X?GJ<7=CWkB)3W0hG8pMq!5-CN?SxkXhEUS3N$S+1q`S#O@?G3nbgS)ST|h2
      zeP2-A7xehi<%8#N4*md-zrmm2@fV2Cy_wX=!E>As?|t9rzWaUW{q?WwzW~^bZ{uhY
      zSYLF5!L!zRYp`6+TV;E2LLd9xGgYr*`A*e6WxJ=$@i<xqy0v29JLSO%r{*8AYt_KZ
      z+j|1HP__lq1v~Fltg>m(TAt-sJpp5)?%Q&UgQo8}ZgE(keYEP<e9QHZS>?c%XcG_v
      z0t<>>HJGK!yuCz<SN#GhH>k|m-k8owqEnzP)1S!<4P-JI`kS?xh3hx24S|@xUMnCk
      z*!H=CHCGc@c=EQ%)Jj#)KR&OO)N;1!`X$=LDj^fKDzg;=o%(vO<=c&DcQEsP{CWz7
      z{w%-#Iex?n_8BWE`_oQkUiD6aM5(l+vZK~x^*k=nkq<o2cJp)QTxF(OmRQAd*RX4j
      z>z7Awxg#Di$M-f_H8NN)uy{?qA45aKz4L4z%g-}^wuYH6I@w(R)XZ5s@AEO_NWSd2
      zj=ziUd;5+Fw2oE_b{u?=^sR3vF~pXbd~Rz_;x6*+ljiRhh))N0O$+z%d5+r!Hx%z>
      zkm*w3)h~C@YRq%A;s|d{%MUzCZ4lU%!a^*PxL=hTxDtEFFoXolj?llv7#aGOct9bg
      zK;i%yI+U0oLvPB_WD1LwqeFxaShPQ)l<XOaX);;MlVGKh-LqsK)ClW2LFRyp`jBS$
      z9FHiSpeS*g45w0JhRjsnmne{#te%%RLuRj?S5ZqTEKyO<vKfpTSRTEWStBERb;%Wo
      zGJL)yF-w*SIE=#|rInFcp0Bww?as4Lj2+Y%>@hZ!;eA{E1QMK_IFqPq;Ys>uBH`83
      zl$ec{R7%gJuvDe=oIuO&ti&arhqCJCg%rB5D2|tI`7y%5h~t%i4L}{1SSYbrVu{33
      zi7ts{65SFjC00wUm553tB-$m?D#S-A^nyd!IpMhWr2d1atr@i`483KJS)QZh5R8rJ
      zIZPme&r|pm8`%rL<ZyKRCjRG^;yfpdw$J?%4*inezT1y|!qls4%u(rd|HslBP(J`x
      zv6Ki`W+xjKMT}CMQVZAsB%0(T<@P4IgL1k_UO<`SP1`Oto%-aw=#!76Pd<r0mo?cf
      zr+#;nyn^z|Cb@_5>Lxiud2N%t4$IX$&~Jn}Z@@-Y(9Z%c=sM66Ny{79lxsBx&0N&j
      zZ02Id7Bd$&wwgI<Y%_D|n6aHSZVa10VP`}6KBc@{DUT}UeM)&;EAQ9J2dSJ*w=2&P
      zW6Gra!^*-`7DtuEab=Oy7ALjE!=%zUMcQUqqzNNWnlx;BDmFYh%F{XJsiHhp=RG}2
      z-I!4$jT-@}G%k>~8FQow;|bEF@f1B>jMh_nRylf}z~ywu4ZN6(5PzAezDoQ@>|~y;
      zA@Z6=vP7aG^14Qfs+JIWLn9Z7#6#pwja()oL*y+Y#&QDbhSl2&S)q`I)jJC5QAoq;
      zU4>*6(iZx8Pa*3Rk_eIa6(SXq43R4eNh%~2A|EKELm}-U@}WW&m~6q-A2=K>_?Ywr
      zR~WDbo3NGqHeADY{DEQI<O+^qpXlNS-hgp2!Ua5u{o*wDuZM%;64&n)WW{%w6xT5&
      ze&g=_9f!rAT)j6j+R{RgpXeyy`0?ki4<QD53gXcXKjX81(olaHLX%Wo0bk%tVgg^`
      iYf?@y26!qxKG@aodDcs)+aA^7>b9-(w%4@QH-7_G&h5$o
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X>(Im7=BLDB&SJQ!euL1WGP!&nj#`XiwcDz(6qp9!GH?4$tAgv+|-+U!MfoB
      z?)!q`zM$hrmk-V`gFnFWH~14Ae}VX%lbaYAoG~*w=Y5|0uIIex{q65-zXI5d?-Gaz
      ztSz}g_KbDT%2sLxt72!z^tRtUUGu7z@6_CrwtI5QOrS%cS1Sg-Q^}4wb^nN6uLWMg
      z-W|BbiY<^S+6AX-RZM%v@+`mR2^eDy-<Dg-n!e|_r6GZ?k(yigE!RJ4RRUY0Q$P#|
      z%q@AfV1_C!dx<nZZ4^kmL3P^pMs-dSbLgXQV_%>84-RlAp0SyU>o-*lfn-Z%wSYWt
      z+h>c`Y+Yd9iQ6VsFV{T(SW7FVajxe2W!l86p%AmGGgT6E^yfX6Z#N^}!HBtBwph&0
      z^2c(D_Gv4q_>)exrE@0}DVKLtchr|#0^Nnc^K7>;YtB}uYZZwVtacR-&2jz8$SvQ<
      zN2km^ZC1^|Yk4uNTD1-g4i0U)2{LAZ+4FFi_xuy>)lW>Hu?s%0L=G1!j_dgMG0M9B
      zqXHcxwW6H>uO)Nq4N461Kulh`H7ju!WuB6j?-oc*26kP8djvX<*+n;m_cF+2Iq(`E
      zchG9obF|_xznGREcto8LxG#-)m@n}Fb72&T-4qx?g4IXqUt*L3eM>y3m~tR-fC3##
      zj8ULB<!C&O1<KJOQU@&BA5lv7w8SKZoaITd(&(-k3J+<9^&F>gKt+963%r#_l}=ES
      zI7NZIDKSl9qTovuDU8?7Nt~vz$1bR-<un$msAqT>j2c)Ty;fKwBYO?x3d9(`P?ngX
      z$OIh5;dAL=WR~Y^sY1JRJSWBu>J0Wc50v43TRjDdC+MF^)HHaC{+USl=@}wsqmfGK
      z*)$fZl%5xe?8-@8<bEipzPy-559TNE@-5FIY>Wh6y{Q2jw8T7#1riG-7D@C-ESBh%
      zSSGPjVzop}A}P@&kx?N&PGcSV`C`T#*B;mJc+#3y^TN=x=BVX43WsETSodKPQGAic
      zXV}2A@XHQcw}0$^&MNkEs$~0|GGWs%T-Sg5wojURfQ>pTo!<W#eFN$NU<FHwa&XS!
      zfyEFfN)ScB13<D3r--}Sa5r(L4bLTJd(*Z@b*J9hFM8)C>77@i_r+~?OQ_%5hL;jA
      zYs1TlSGM6k;?-?<4VI{Tpx-ESUXKl|U?U4Suj@c0nvvJBDc@ma&3w$*Z06&}7BinP
      zwwifqY%}wjxUrpU!Wc4t#?Gel{YrV4QXWytdzJD&t-N0=AEa_F)1^E|jR}+P4=W2(
      zSxhO5W6C10Ely~QN4QGkB-c*E;+ixHTvLWkPo<_OM|nD{JXMvaTFcX8)QuZ;t_dUH
      zDvk48JB?YcN#jYbDdTB+x)5um^qg|^0*OnR?(29dA0__^Q+<v6PuR&kJ3{7l&E&|$
      zLgo$4lvFJt^QLAlkV%BhTbj8<MuyDWWQ-*wGEJ*@6th$@O{;emvs^JvtM?Ssr<l&r
      z&-;p5qnKpKe4rSqm{iDIR!mAU>5%zQG2M#k3Ym`-GuPx1T=|jB5y2;1k8^|pTd)aR
      zDR0A7Y{#D%!VQk#IQEJjPT=*}Cx$tI$FX0W;{5e+P+a8ry^Ngr9^>K~CdBWYy?@}a
      z_=}_W21X(gdi+#J0o#v{yU~Qmau?)d>wm%L|E8f{8A6kELjhmnD{=x~;~TE*U<`0q
      bdc3eJKX7l9(6F7-;TpCbE!(SF>)U?-rC9CO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWkB)3Ug!cd@KD@)nR(i9O9ThLM{0!=GS0aH|*CPOliOzLC?j2oi3
      z?+duE#}9sV`QSO6gFnFIZ}2C0`~~83ZzeHt@Ekwn-uHR#yWacGo8SJv_A7wx_%@CX
      zfsI8s$egv#TbXh-Z<X!Ll->@xXR2Ps@|~)C+ICORjmOa`(61E(-zjINoSJ{ku2lms
      zZ|@7-LfIBb7wo)KvC5{sV0o5b^#qKmhHuL)W=!96+~TM}_e9mL`IhUSu*!ig(Ip^;
      z1r`^*YOp|+mc2xZM_UC_Zcv%Gy-A&u#3K3_+&Va@ej~%&i5F~U;`&V$Lm<&oSuY?j
      z*!H=CRj&ywId$8lYNe{@pKNI*HO^LDzeJl@B^07oWuZc1kv`sU`F1nn9Sl+^WU|>z
      zz0P6^_8BWE`?F4^rE#YK1bXs;=h<$)Zq_UF)w0AI)_9Cp<+y%%;+C^@0+G3Kp0=!-
      z;WqL)*0m}e9vK<kb`xYadFIS3VYa=e+H0PfKWpcGK7<_0mmSyf_cF?+p%Vg~6V-wp
      z2OlGS>$^#e@ES}$wN;n6i!$#<%XbUJX9K&Y!94<9C+&h8!h0EHwiI}c!~1A8={Z_)
      zj3=h$2Od!uuVrrvOVBIv0CQm!iG36pLSjD!`j?obK;IG%Dy9@j9Hu~r5>piDO*xuQ
      zVX1QT5UIl!?Rk5VNqb&mmO|F@Bv@%=e1XElnqfV26b`GXk7$9f@|e;IiV}}gU`I;K
      zQ<%y75(Ns=)$<Z(DD1cMDrzZ(Wh&}fUIwEEmPfB;*2u_S1GxfGhR>HI7AP_ShjBdK
      zIwP|@UrS}$o##C<c2HxmCwZX^@7wAFka&vznM75CXXu}agh$U2F&m9kO3$aT9KA|<
      zA%#Bl#&P+U<_{Yoj+bwG@CGfhL}IDLGKu99eG)4q`XyFLtd&?V5tT?tbW5aFh^r}V
      z!VtfUDaW;^_18LU&8w+k=!tT|@*IUjGB&3BE`bO>OW_l2VeNj&VXF>J{m+TS{!JEb
      zpR*)v@@1QbZr|n!Q;(@hN2SyM9|LY!H9Xd^lnBS;B3@V&F`_t82Y3NUwBaOicN^{@
      zPPgI3#B68U_Ni{vJNrZLd=$O&N%X#=&2A<2``hpU@v1hwns{v+9wc7hhBsiPdI$QA
      zFz3zK!V0#sfD5_~bVSnfI=1CHjf|O#8r#iW%-CV(;>J!hCyiZZE*&#=bB!CL=FiyE
      zRK8y+k1OQ~rF=jsAJoc+wDJ)uXVcxvbHtc2>Hes)FqOq|WpPqj<g~>pZSg2qX`JTT
      zWmsGjMxJZZu<5DT^yDZ{=ai?4@>FekdV;z!qsBFE1YD(Yfoqph=bA8{=9)B~rKgM0
      zMoI(9(Ey1{>7MI&F&82K5>tJJ{7=}!JUc_?Rn26{L__8^%@kEFA@jOsE|Q6d%p01y
      zL`H_pn`DfYB+^Z*w-hs=n5Na+idn6grqw%&8B|PH=;vL<Y*0)hWZqMZR7^5t-d9Xg
      zF{zOGKruav=?<9>6|>mn6<qm|&C!96xXy880Xwh_J1OtNci4?TF^U@;xiK6NeVn+P
      zaZrqL;7;R^c%1Xr!x3?r<Mt}D;(JVsYnTzgbJqTWqv9`)+8dbY=%B}sbrkh~$B(<w
      zgvfB`Um&8Jf5E5!rlGzvgeIwm0zStV<OIINS6tb_80N0@_+VFl;NB>qVS8MMYuI+S
      KY`@l8-~0o3*yc<C
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+?NSq07{~vI5OPQs2tg4kq7YF~$cCa)1Z_2lq6r{DDA10xB*(CJUzp9NoqXyw
      z^h<A`H_#^2=}c$r*Ut0~dJVmXcKV#No49rCj31J-|KC2(InUeKKmPgkHvo(HGJzh3
      z>oupLzc#)$bjz(6me7l8*>qmHo^AN1>%0`s%cFw?dKo5^VZ%2qy=d0`T~T)%UPU}?
      zI8{q9q^qK0+J;pYXNG6^uE&rm274P$O)vYN>C{#k1`4iI_YKG2H>`%>=x1O#hT)p$
      zHqOYT>(8Olt9b^^Y1k*i+fXra4ACCh`D|AH@;O>bp9zY@@jE6NhGf@dhJk-0#8*|L
      zS!WnIes56qQ`hqkx>hNrORnRel24x<KEw_C%qB3TUauRz=$!Zw9a638rIOxkQZiNX
      z%4k^ro@sY2CK<pmSZR2ka4OAm(>`%6jwyzoqpMUa)A6msJ1>dHjt<r%Zk_Y4Q$MbD
      zQ_SV_s|){;6i$VLrkYT==Z>REZ=bvt6`wl6*D99jnErh_Wp-|#p|{{xML%-LC!l}u
      zbUe^7f^+?pTweMvX*eIqB`NP{7!BkdDOWUH2;_>CYZ}G^xt74E?{p^&G=T>+U2i8T
      zz#JnS=Q&0>E^v%-T;!PGxXdxlF~bq(NOBBtq-A8!HOyj;8do$Ov8Bdo&p44|n^7ab
      zZ+NEEA?#aIbx9(IeGPlKNwx7$O)BMF@dK|6)i+fWJ`H==gwff#_qQQgR`+Pbl;KSL
      z&kfAU{4qtT#OVGGQPtw;Bb6Z411bQL5uGAE5YdCA(-A#PntDdQW3pLlr7o$J+M`zL
      zi&`&6{Km<CBBC#mz8uk4NKZ#}mh?<SU&FZU1MM55m~Y@FWiU_I;(L_`*mMgEZ7jC%
      zaT~W<xZTEb3!k)cw}sU<?xhFc;QnDO{sx~N#xf7fhrKN<mT3t|L6KWT;vrdAWSK}`
      zNFFJ2mq;Qc8;aZ`!b9?yNM@Wsy5sdkl1q|wyf!7dB1y;VsU%rR`on#mNpek+WJrpV
      za7j`jDM^x&L<`B5B!iL+gk)Qi;c~f+ou8<7J=mrHBf3|>5>@v$G%O>76{_|sCb3R6
      ze?(*hn|O?4Jb_J5-{L90!!!JVB7Q~*zheu3VjF*92Y=%^8^SJ|M1f6V0cCZH{9e)Q
      z2R(vLD}BNczwrxRybVJRAwm}|Fu(ymC&q9{L8=DRO%I%@VLLyn&1DLK?+bNY;M?2v
      JJyup<{0m^tTgm_c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SJQ!cd@KK`>P)LQ_OUY`s9ah@>DLE(TPXB-3`vWTs9g#h?f(
      z-tVG#zpdqizIl0YE!M&p-dz3$e}c<jAb#g$f`Nr=`H*w={?6Xt-us+AJHP#X=~n<7
      z@pTF@fi=@!qcCgDTLsszSgu_t>TQoV<p(t@bbRl)T|d5UGKDUI0d3d_9k)<)>fxka
      z_ZvaQ-rn%4t}T$O+7+i}xu!j51y<+>0!FdLZF$oLGYlMWdQ_li-1q9C<%NeWw_!_k
      z3yAds3#S9WF-MbY{t{UM2xPrRt!xLobV?En1QPk-d_GUAIhzT1Vf)Ash~;k=kf&_>
      zWYucc1r{B<X%6)nKM0Rpv&v|F!uP@%`Xp<Skg#fVH3AFt@eV7r+mUWzkZQFsF;QqX
      znS0fqvKnr9(5Xch0=<<+5ZGR&X*O$R-<7zPbq?}Q94~aoZ#cV6AiizV?C@#_Vl^uV
      zSLN5UUj9agM@B|BT(2{e3iIVPFw?$co%QZ7&)SuccP_^&uH!l31B|nF=&(T7xL>tX
      z;JxQ=d?JZqfmGG6@hyCb5ni|3@a($8UFvGAAXM_*0_mD_<@=!GyGp-@XR{4^Udi{;
      zf8MbJ?Q|cN`jv0WR@Lw3V~%C92z?SN6ULBuhywW~wo@Rx#15vXs3mq0BB{i~6v!y?
      z2+tIoqAF&wSW)fcq3!YTQ3_LbSz?lcRVLLz3N@=K!IH_uD357@&v8`Qr~)6SP`BqK
      zo}}PcLWvU;JbzxIOrh#jRIq9mOH{BaUI&8(bev&j3>Ro+mN>INP28o(=njK;suZh9
      zaE>4oa47P_py(<w<gGD@dPsSmH_ALh$F7l6;%U+|orYFU3v@H3_Sv&knOI9z={=Xl
      zQuHb5To(Q4OW}nZdOzxg6wY7w<}Fxak;Gz&B@#;|`X!c03`neySS68{NJyk5dL(ix
      z#0Od2fi?UrijHUR(;w$StE^^#q36e8D{zz^fypu5dTGS*NfsYrh?f%1IPBJ;;{TjK
      zY~jqb9ddF+eZFMv(9JtNZR(-4%TehJ{Kq&ORy~i^EG5oixPTXyK$2RDS`54Zq&xHs
      z^_~vBmwK*4Ur3!jP2Yaika}mY=$((EcRq>Umv#6pr~N>OuHvld&{tAl)uFGZp6}2H
      zv0S|adE?A^ErwXZIu>wB*MV3(Cokj9QkSv8EG3MBSxOok%~HzPWR|3{*(~Lf#ulzA
      zW2^ZyM%%{sE8_>1@it{Vu8enT<K5bL4~_TcdK7cqm@rAdUwP0tX&g`<rt&zXJ&tIP
      z5?5&)<JxUJ!8L6h=bAArGF944wqlxAOpanYshDbt$)|17c#3PvsB@J@gKM{Oifh_v
      za?Kdekm*dKl~P6#WeA+j^<KvFr8w~ynd(c#f5IrU>xz(<HL{mTB0^r#NQFo;LSEI#
      z86v3&c}*i{iO2|fortlVK(6iehC(t5X?wk?kd+E)d%dNQ)e7m3c-~gXphD6S@{U5J
      zLNXEZu0k|(HbUN0NUyT#iIDddve4ueT=<dA5yOXEk8*qgo3H_!DR05I*or?fimM#A
      zN$eE;9JcGQTa0nm?!z8&f}=LTUU42paS;>ZJC4~)*e`zPl>Gw-#9th;S1}%ok@2FA
      zqW-G+akrWf1@8R!Mq=GB`1s#6)K`YcCEGH<r}&JRz~}gaD?1p&+?5?4?7|P+TP3u7
      R59x3%->z%EUuvtb{sGaN>30AC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)dsk!l6LHf?%ppgr<my*m`TZh@?~q7XvDsB&Y2u=Tc8jia`-C
      zc)yF{{Wjx+zIl0Yh8cX}&G9$*6C8hm`0bq&3=GcrkiFOX_FCUsYwvYde*634uK+gV
      z>l9)F>t?)0Va{AI3yxnk9jj2(+a7P)4_q^}eebwcKR!N{LYKgRHf)5pQz+W?@PJkK
      z8$s0?Z+JDw63Er8s_mLi$(lC<GxP%iquAm$y_rHO3~X;^RG??V_v)ePg@;Y2VM%lg
      zh>Ze^X9B-5Pm`<u5?KKVWW9!4v4UMXC5c4>iTrRrpC{G4#RR;tePjs4^0x}eQ<inI
      zW;W{rOOD+zhx)7^gh#GgWwbu&d*Lj7l5Qj<On2TTut*>8Fhi>y=_UrL)e4i7g=Ukv
      z*Q{x?;e-cmH?k1utu}(d@~X{J)2;Z9#LY}@u)<5Rz0jGs?(i0Y`1sU#hg&-m%UM0R
      zCclvd^EWa)GBUd9TAis>nK18xsrDV~EO@FiXH`R9x*V%Iwr7X;G0ys-!vb9se$7gO
      z7oWTSjU<KzQZ?V@WB3vyyl<!BS#^m!)ZLgtsN_2Z(yo2^`=IJOO23O|a}8@j$#>I#
      z!L|bJbPtvK<!>rx&F|)Gj%Bd~eG)1Y#*lb`0{JCaeVptPJD8rLme@szq!JHNAfv>?
      zJX36ns+h%6MYWHImdC?KC`?-wi31eO3aJiKaLuL!OC}SeJgNo0$5CaY3Ve)0-I|wp
      zf`VTSB~DQA`~?X<SG;CdRj^tX%T%ywUI&8(bev^n3>Ro+jySVFP28c#=r)6RsuZ(H
      zaGoF&uqpD(py((u<gGD@dPsSJH_ALh+j7Y%@f7KqPD3lF1-hA1`|KI2Osu7<^q$RP
      zIr^0JTo(Q4OW}p<nm_7=6wY1q<}FxaiNsQgWfIFJ`XyFK3`ne!SR;{_NJyk5dL(ix
      z#0Od2hIRZdineF%(_iO7v!aH8p$EueGq9B&fypu5dTGS*NfsYrh?f%1+U(Y$;{O~#
      zY~jp|6>@Y$eZFk{(2YAiUD8u&m#xwn_>Xxuta=`6SxTJKa1k#ofh4sQwHSB-NO$NN
      z>OCELFZEo9zL+|Dn!f$2A@$B)(K{bS?|c%yujuewN&A5gUBy||p|7UCrbAy#J>Q`Z
      zVx@Wq^2V9-dJM6G4J_c4t^=`nPF}+8<t}4WshlthrE=2PTq>uGEv2$FwwB7dq_K@_
      z%Gh4|8KZ6EdzJD1%J@NLJfVztYUAD7cn^*D=6V!!+?XtpeoA@JIBD!x9wp^*NP8U7
      z9%Zi5IL5Wxc${n6IL<X=m}IK9nJmRLqnK>PbW$<7ipi&K(s+_<%BXXdMuTg&af)l&
      zXmZUMPm}3PqLorc5oHLR&GlZw^W`}47n$ly#DBslv+IhGmo>7NNFqXB(MXj@GD2R}
      z$QdH32zgB-XNkxNd7X%{l0dHQ^@c(+3Tb=2sgTtQX?wk;khKcwj(FZy$e=>f5%P{g
      zq(U+g@~%QOb2dWWQ%J9}>4}i{6|%U*D>(lnn<It~xgO>C0=8fiwo=}PZ?PSJViZ?6
      zZj;z4`Z;VjV7D0Ktlft_;si%+fW6`zisAw$#djRD7cnJ%=al^e`^8@zvR5z>i;?ky
      zj-vjn`Ej?J5C!i1`$l5JFZlT1G}Kpy$R*n{z^C|(n84@wf-5^1!`zh}AME@O+*>8I
      Sd=KexE#I!IzF%squl@maQt80}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)dsk!l6LHf?%ppgr<my*m@&eL{bpK#efPY$!UAaxzv-BVo<~j
      z-tVG#zs>ldZ(bgpVFq7#bNmhd1jk<>etYKx1A{X@Wbd`Uz1FwZUVELD-~PV%D}aso
      zI)#|PnrW|Dm^J6kg5%dr$10Tcw%eQX1J?{~-#czKju%TQ^au=T!)9nZg_7L}4_FPq
      z8Pu$8O|R})0=c?Xvt83ETXSY$hJGMml-k^;H(e-)f$dF?3-lFzuMwJFc-VBBmPD_B
      zSTC?}I`ErwG`Z?8krjYI)@!;|E7+-1l2{;+$dBgpc~Z?;Ou!2}M}|Nwf2)8zWmzZd
      zW~(8v=-3T&Xw3LQc;u>8M(dNl7tYWp=|)1rbmv?G3-s}JGqgI9Zeoyny)ZdhXtkJo
      z-I_9+PI%CEBMX84S~CbNuhuHJ+^X+L+{}9pvnI9|I>qbGZV`wVOOJGUbpr7=D~DI*
      z*Ym#ojg5|tjc>SCXC^h~%Q7(2fn(kG-B+EpY9VVbCu)xE+2MVRvv%aLKu^)HTPd*a
      zx$B=uVpJei_g%h)FEPe)J5A4ONZg@HV+Ns;?-WS8_T}$`n(rw6E}qRct$8KiP5*h@
      z3bfNbR2rARshV}amybD-#Uczys7x3`;sFZem)J&u>=N6Vo}!l6Nr<Ep4^bea#KSyO
      zY>KLs#bQOZmxq?eL)I@oWmP2(P%x{cI!M7aTN1o7nHc3!E$}&xDjRjd$0#(cIf*AI
      z__a{t1O?BZm#9*x+cg!ep2ZRsY>MSzuz-#;ycxp<TA3xz>`xPSC^EXuAfCF4*&;Yc
      zkO|ln`C(9Wlo+yVOrjA|o@YgwM`&9vIVGMVJ=1Aw<+MOAQ|g>OLzRiORh8beSuDkX
      zlAg<A5CbW^a9!_5y^zAWYu>yKODvLDEU`plsl=efGKnFH6%wl?@)8M&v_zjoPKEd&
      zi`%e<pGC>`tiAf<JZM(c3^4TkIBW*C(jzcAp<6GFI6leZBaE;p;f&309Vz|K`NI~@
      zOj{u*N7Uy_){fk`)6-==ly=%GouU62XQQg;v6@$ja~LjQ!4gPPOHqq~1wgt>&rt8{
      z()+3By7YzA+0*nLR1K+j_KM#5D0=6U=zUq2-*Vayb?GY3iY|R6^;KQ^YU=qeeHhEt
      zJCHZdoY!K6H(19DoYMC|ES{5>aC@c4*ifz{j6%7RG&YtiDPvQ)B8|=EN-k+^;hHkG
      zmVd^0$M{}le7`b&P#G7M@eXagOB?T|@t$0tVvZY=Wzz3c9yCrG`;|voc^uLnN3=(U
      zt2B;r?KK|fnl_Ge%@`(`Y8@s^F-<EbTQQwfOs-<`X`3{j<eD-XT&2<E+H0KRnl@To
      zGse?oI+JLplu<+(0%vpmm+*WgPW(lt`V#S<FwX3HBIIR_>>-kfkXJNPBa)1eS2c2m
      zNGd{J)5uvOGD2P_Vk{?+>v+APkc>h)UT-R7r9wJhZz*K8LV6>fw-qw1kaUE+qY$Z(
      zOoY6v5Y3#8koOeQuWb4v<b8!KEVBgXe`IsS@FCZu9ACgDY`|v9TktKm;!lj@3dd~{
      zJH#M|?K<od6P&esv0I$rs12}3oI^=mz@+$&WA-BUiQhS8|G<9n7l-T>6k{<mUeHn0
      zUo}7Ob`zq&o&VlQtosEY|C@&T$`H9^+Xna)pAi%I9A9u{2V<1Gvg3oD|ABk^3T@v*
      QI$Ybg=c@0Q+Ul!+09+vHWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SK*hM_>gf?%ppgr<my*m@&SMAB9W7XvCxl4(0-GE*m$Vo<~j
      z-tVG#zpdqizIl0YE!M&p-dz3$e}c<jAb#g$f`Nr=`H*w={?6Xt-e;dZJHP#X@mBy_
      z@O1(af%UU)BR6j@nmNa-n2wbz=xwh%<M}l+us!#<RX?7ePM}L*P#ZP^+sPH|dT_w1
      zdkw#0?QFPJ#}dd?t%_YUouaj1`exwy0!E?5ZMw6$V&L2E?3h4L-gE1L=>~^Qr(sES
      z3y4huOJ;qqu|Sin{t{^c2&COct!()dIwgrdfmn7Vo6VAH!D0e#&^|H*BH3F7<SENK
      zSv8w=fu+Z8m_vQe^MfN-tx{T_^xR;MKJi*8#LU`4jX<A1-em?>JJL-IQmy7DCv(jv
      zbFW%6X2S^%+O^O^ptsWSeao#hi_Kcub0lu&J%?Bm+YOxjb!WE-MDx>+ba=G`@iuFQ
      z)@C>HzWj}jjE;_NzE)=@73Rw_Fw_2Ho%fwC&s&v%HJ9TR$9C=DKE~NFd|03>?^Ue?
      zSoh5JPb4uSkf?e!zJ(_-%5pmm*Q!h0p-N-=fs*eONY?Dj-}@EMQTkmxn{QZ)O1_)^
      zi?-!!r+cW>FMm@ut6n!Bb3Bcu=$BBLFowhf6v!{JlLFZ#b}>CgEipleq!JHNAfv>?
      zJX36ns*uJqMK#4k%jF^K7oD-n5(g-lWl|laP&1nnyfT>><xws0IgTnDb-~9d)U5@H
      zCn$K8K;i@i*ISe*Q>fY%6|9=ZausZb<zO(Mj&r;j!}(g7C(i6o6L%;wy3HW2x{BE(
      zxImBz*cAC;P;`_Suxd=A9#CFnMVUunTQzb@JVkn@)6mLkfo`VMK6{2L6Kkm|y=T){
      zfqo@Dm&O446L{ge-Vb{rfpgcqc?*_UDzQvrxx@;I0g06ogA%JH)=Fe0ViHM-9*K+!
      z@j)85VLd;Kg6&#U`r|xkmemX}^!zw%`nJ+TFg~tZFNr8VN#i37vnauw&2Ako{LlHr
      z7EaAt0VhY;=gT(?-?-D0MLm=zY?aR7e~hyc)$>@#t3){r`&h6T;?xq<B47cK?9fxx
      zdph)9>X{CG33c`~eFs!S>Ycr!cRq^V`6PN@+2OZ}_JbX|inF>yUqgLuhrW(_wnHDn
      zD)kQJjWXvA80HN&@&c#yJrIdz<R#o*>M}MLOEDu?EX9p2#Zto9S}aLpTd|ah8{4@i
      zj2*?FG1fM|R~g^0j2~3Sd1bs?8}HG^duhBc)1#Q9#$=K7)5?R!abv&oC@POb+T)1!
      zC~=j>F|OUl<6M)*ajq%DBvYl$WGSXu#bhg{lZvUPm^|9XjVHM#j5=3oG`Myfr?@7K
      zCfAhlG?~uCS}COzQHsFXOz$N;Uy2fck*U5!{3nbtyRHy<StI+1#6sj1jZ}!lL*!MB
      zoFS43k=HbGmWT|I*NGUb2xQt`Zzv?Ckha&G3R$C&w%1z<S*MWhkmqfM3@IcTBJU_f
      zDkK#m?<zzyr$gjDh4d<$o)CFoAxnxZ!TBHA91(oT^(e;|uoauJjq-MUiyinAW4OX`
      z8^>-jz+t-)d&D?r?G*Nk6CAZZ_K9;Shzpn$-*L=d#I*RGQ}z$+7k_ccUO_$*A>#!d
      zMg3Lt<8Cz}a@_gvjo8Lt@bSNCsILs6OS)x%Pw^QsfzR;;S9UN)xGOt8*!ds0x319g
      RJ*306e7mmteyOd#`Uj)!>2Lr5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7w@!%(1LK`<y3p(!FFw%!OAkrbriVnBsSGHs_MGj%d421UH!
      z{Vt04+gd*8o0kXIVl8~(&E;?KC%F6t;<ryGHL!3kA9Bv#-`V@yd!Mss=eNHv{R&_+
      zzK)~Iz`AL-k)5^Xt!&jRTU9%o*V|rq%JXYh;CSu{yM7`!8ArE)A#K<QoN6}j)PqU8
      z?lt_fy`$k)s<wf2#V$KFt6H$<EZ+(|-+-BKaa-<mwh;J^J3VHgH|M$az;c5lR<&U(
      z^cXNk3@n=Vy~Z3(7W@@b24EoNHfkl?->p+p=r<6}jASwyQq9>+zzy0*rh%@^tp?O-
      z+dfsXnsoz<kKZtd`i$oXM;EM;TA%RTV1_=iS|~)V+FXr5zdqh+1$H~qO$<`0WG5!F
      z%_eiN*i%-c8XR(Jp@o6Ia>Ms+x7;i=YbCF$a5L-7@lG5!sOGLayTw2xH_6iluXZ3-
      zvuf??%tqGB-{{Eb=-8%fb!Jj#zPtuzI&i$R-UFpsyBzS&)p)t;xK3~%<E$S(VxT+c
      zRqQx6^4YF`A_cxiyyDgP7M{W=ue;iC?YhDpay6D8h<vAkM9sPKy<hgKqTj`{*@itY
      z^4;{GcWhrf-9x2*<(raK@p|}}<0&l0fP!Sg7zz(iAiu&63S?K<$@GL;VK*U?Dm+Ai
      zj0z9)OxT1fpTZKM+RsDV<>4a~rtFf!Bn7KPszVfNR#Sl`lZjCt)dHX6nAk{xk5Q=G
      za|%yT@XCS0NeZqvuTY{;amo^`lEP96HpS~;FrSVytc>A&t;`Z<_GgG!DKfglAg+{R
      zH3`lUWC9LFei#(1A_lxQCQ%P4&+|r^N8s2saw<GUdZyFR${7PaOsReL3{@u9QYF1-
      zQ&@%pk)BIo5Cd_%a9!_*y%5LwYu>yCD=b!6qOeq9nZlsLa)lv<l?tmBG73?JghH=E
      zT0(q~!fjZ`&m!-*_I~|w9<oX@157<Xj#$1UdI-kGb?YS%!6zwvgkfGvFypXWhx7k)
      z{;-9U({{kg5%&4g^}{#r^h7}qrQMFCGxQ(hY(#n<YgkHz!?2$h7DbF&oLU!n0Z4S{
      zN$R~FdLQ+4hrWn9dz!w3(vW&*ujrkRqIW)t-j{dyt)Tr-hc0necId09ukO&-P|tMe
      zYq3J!fxHpsydJ}>U;_&{t?NKnB&{yv_F}iWsZflX*+Ma9ZY~t#=9WTHnOh6Rbj;kw
      zHEwP%{EV@-@x5YvzZgF##yK(GrH%J!<GnQAm+lqjh&fRp{Q>cyam+j@9tH6@tUZou
      zk0MuP9_QL)KF&2^p5U4^Ei#qcOtvsh3zH*Er-Z2{Odf4x=966GW}T}t8(e$L(_9l~
      zlWWp^noMV-t(1~Nlq7I2-FF$!7bC=9WU4O_{|RHvt~*3t*2q30(GYn>BV{775P4N2
      zXNkl^<TZ_)Bcej&bt2{p0_nEb8-gSSX?wjX$SOhFUT+DqMv$J6=WRjO3X%wscLY&_
      zBtzs~K{RtJMBWpmPi%Ta<b6RF6?g>~eq?iW;X|&+IKF@_*o3W=x8YlC$DbI(RgT*j
      zb{T^lwi~d=80W0rkG;l8j#?l4jPuAF7cpUc$1!^e2aMl2W&glI<1Y@`tH^bAk@2FA
      zB7fEVxLZw#EO-8UBf8-ieEe@3@|7WUNwo~{DLx}+;B$Pzl^u)`?qbIWyYK_|RtYWN
      Q!#Z5cw|l|&OKtVlKZ2j>kN^Mx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#gb@lG7wDVJJ|rAebr?p(!FFw%%v~k(3JIVnBsSGHs_MGj%d421UH!
      z{Vt04+gd*8o0kXIVl8~(&E;?KC%F6t;<ryG7+AQL4>@P=@9h2Uz0cXR^V{DSe+94^
      zUndYTux`d}<mRjeD_8Z(R@Khs^|r^I_WYU^IG%glt{<P6N}$WYfHrIdPBoWz>cIiK
      z?lt_fy`$k)s<wel#V$KFt6H$<E#C?}-+-BKaa-<8t`PW+J2PsaXWVn^f#n8=t!l$o
      z=r&*s8(2K!dyRRTT=iE-8-Rhd+o+Xnf0s^4VUdAYb~u~Ol4{;&0&dVgG7Utsw;E8V
      zZ2M%zYSs-bId;Pw>a(679Jy+h()y(52D9{u*Fqs?)#hsi7U|;&E3n&<Zeoy1B{w;l
      zYc`pC#h$hr)!?903oQ)vmK(lryX9t~Su1%}g_~LDAn(L+gX;KoXSW!LPE0-0;nfbr
      zYE}=f$!=u5{EZBcjEru&R%a$<=F4kfrhUgc>zyji+2w$DuExq$$901H7-#*^VFO*`
      zUd2veBcJX1CsN>RBr0BwZ{aD7@VcuF*RCtvAy;Ghfyj3nNY<Ro-}_~+D*9bKn`_t$
      zBHvB_1;_Ta(>+w`m%k}l6|b9*IhMu}^eIRtjG^!V1@bHGpg?wo38p913cCoARN)~C
      zWK?*VXTl~_`81Xa)jl5DE)RKs(P_J+aDakUBGo|(HLIz>lF7s<k7|L>aa3%iz{e=m
      z?RkYKD0t;S;RFTOTTm!bs5oT_R!L)-1e@k{FqlurSyskyzE<XlGyBuTs}vdCVGvhJ
      zv6=+u2{HkPB0mg@RS^T;8k498loxoT%p-8@8aWl7B0bY-XyvqlZl=^edxk0#YpIgn
      zvuP|xpGeQ8(T~0aUbwFJ!(K?>+%<3Bf)$o1ELB*huw0>EVTHng!YYL|3R#7iLQ<he
      zAtNC^NaHrF<7bg~TzjAXI1gGSnE|GrABQd95j_OsW4iT{h~kqpKEe<$C75;CtwZ_$
      zIe*x~sTn)q<OutG+4`XycY3m*hte)b(i!-VaW*VHkF_i%%3-*O7ZyXDT7p^xyZ|IS
      z^c3};4!xIprbAy$ojpz8erZU(vsd)aN6|Z<MDHs){8rL_phK59t2*@6)Yo+AYpG{D
      z^g*nYcOY++Ij_eME7-sSPU$)jiDuL#++OT5Hx-I8Ggm0a&CP{k!rW3QDsyY0n2DR)
      zxF*c)g`Y9nHojMk?-%0-#dutdcWUF^+ISC*_hx#8IciQ8NIxYWG>)75#iJk|hqT8L
      z?NQ{a%wt@;&BwVW&Es5CrbVW5o5>cY8DVmS>7+2#gvq0A+<cO2!mM*uW`k?Dd5UY&
      zY;sMRPm}3Ptd&wqh*AX3W_mB-`C^p#i%j(;;y+=O*>#1;%Np5BBo-pCXrxRe9wM)5
      z<P4ESh`gqevqV&gyiUYiNg&hqdP9(uAZ@QV1z9af+v_bs)(X-c^1Lm`pdiT*c}EZ>
      zNGe3$6+|<qL*zX{dc~$EMBW!<ae-HG{zo=P1Rrue%JBtk!6s~_yba%CJO0Edu5jGO
      zvD4`1u-$;&#u#VqKI}10aMb$PYn(&gxPVFHJC50lm@<Cnl>GzyjlVc#uV6e9A>#!d
      zMgFS!akrWfIqv-TMr^|``1s#6<SRqyl5QE`Q+!6uz~}gaD?1p&+{KO$cK!$MtrA+k
      Rhjh4>Z`W1dFSXTI{{YNz>2?4B
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=rB&SK*hM_>gf?%ppgr<my*m@%rL{bojivblT$+Vp^nW>XWF(~2%
      z?{`tW-`4U$-@H7y7Hi=PZ!Uj>Kf&cM5WjOW!N9_`e8@R_e`oJ+?|sgmo!|bx_$z=-
      z_&SL$fwePUBR^*?Sb5j4SgxHf>TS0-?FTh0bbRl)T|YiqNTOR{NE<dn$ITa=dU(LD
      z`;DMtZ*O>2*A~cD?TS;gT+^Pn0xR?b0i)RBw!E3V83v9wGcM3u@V$CydEsHpZP*e$
      z0%C)}qM5*N%+utmzeGj=0vWGSE8D?NosvYqKs+~^%jHNlZ!-ZeY#$i{UAbEY<SE-e
      zS+$yVfyKvem_vQm55gl?t<qYb^1X1DK8ac+#I4$VjX=LX-eHAyJJL-IQmy8vrt-}u
      zbFbRdR>KVsI<?3`ps&&h0^6%J&1S9ayAn6E&SBn(<ArYFy0cpZVv_~4!>b*L)vOv`
      zo!h{A`5PM@8ynwvt<Fp;%$L`|Ob3p2*1NAfXIDbrxtyrDj^~8;G0wV?!vfs}ziKDJ
      zd(U3~L=vL{$*N!DTlf-Vyl%JQ*>#CK)YVu)sN_2ZQZ?uD_d&&Xm3|k`<{I{blJBPf
      zf@25T=^iTe%iol(s^7!MoXB7?1|(D_j3My=1@cR5r$Baz9ZXMAOY9^>Qi+EskWu1c
      zo+&m(Rm@<CqT0(t+vDLQ6sGO6!~qIcnN$ZU)U2iiOC}SeJgNmg$5CaY3Ve)0-JX|t
      zf`VTOB~DQA`~`_Jg{o6g!KxW7Rl%lt9Sj!Gah8=aT%eUX;>`XuahD>aI}GBfQmiJy
      zd4f#9p~w$|qN~J^x5gyuA>{?$DDwy%yGBllr%2Cq8d^Cm(8HA4XU|Y&Vl7pr_iP5s
      zFrcL8G8n`_5-(iW`%y0>aqgNoZ^06aC6-7ml~^V*D6w2(NMfbLYKfdgTp}gWE0I+p
      zKFHuUtmS7>bUb^n{x}a>Wi<l~JwFaxfur;YOibw3OCg3&GWZB1yp(X(VYiMH|L6Q+
      z3#Vu7kdq_o^QG%XZrtf9QxBz`j!I|fKgQXp>UpeTDKQSieqLA{32I4dUEl>E)uE@U
      z_jc%g)UzG>BI@jE`VOjw)H{1c?|c-!^GWo+yu)t=?T0#a6=!9KzKZ(l4t)*vT!%i4
      z73v+x8)MGvFv1Gfvw%~&4s^w`@)B+@bsHPaQryU!rG&A`EG3Q2W=R@b%u+UCY~`9X
      zwwXU;yls51GQM9KKd6ig%6L*6@6yJ*X}l-ftC(ZPlu7!1%7exUW54n+mB%6NaYTER
      zxJu&~*B;|>t|{X<*R)}gsnTY$71NAjaum}^#Z*&FK5Y}mlU$QVovSn&TziaDTvJAq
      zYub34OlRV)l+ubQP2g;{?-HIb#fZPiR9_<g6ULcccZ9sGkv&A>5%P*gDnt?y@~TG8
      z5J^VJYZ^IAL`KN#M2r;#vTd(76p~g*+v`n*tWrqZ>n(+>QAkh3^R_~U6_SdOcN8KO
      zl8%sf6{49l5%Qiw`jky?guJhiMJBJ{{EuvoE_}%KD90DD85^;M@>YC{ZTJ)8xWaLp
      zz@!-Duw9Q`VuG`FFLsL)9JK-Vh;t~43z!n$am-%CKJh!J>>t=K{^F3mf<jjp887H4
      z>aUs~cdH4J=gxm`#Ml3VkN-_WePxJTGA#pqiqD7%e2y=;vV$?oUD@%$&i}x@RYJ@6
      QkPg@K?Y`>!rMCL&AIetgO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SJQ(xE`91;L<Dga$-JY`swmA}IxiivblT$+Vp^nW>XWF(~2%
      z?{`tW-`4U$-@H7y7Hi=PZ!Uj>Kf&cM5WjOW!N|h3e8@R_e`oJ+@3YUIonQaD^b3H^
      z_$q~%z}gwFQJAw9tb*%TEY~g+^|r^G_Jf)gI=*+puAi7NQ|J;H(uR%DaSKJK9v-yo
      zej}*ZI~rcqwFPojyW-R=*R<!YzzY39z$mu3EpMh^hJoYFj0*IO`(8b?yzq$SHf)J*
      z0kJ`#Zzk{?^EA2UFOe01K-O#2%670zrzEjRAdw%*=kuhRx0!$!wvP;fSpHT4dD^y5
      zRjp=SVDa%A=1`yYgYf7ztBlqseJ`A)PqG#X39B|=Bd|yx@3ca@9qA?psa6Y<lZ9rJ
      zxmWFJtKo)+oLXcd&|7H)f$deAX0ulIU5T3o;`>9g8IBja<JX<u!qW+Je}`W?6z?;*
      zW>tOzZ_MAOk<pEv8uO?yTNZ)L{l`0RJ5`>uD<LZ`$11MlIpKYbv2OT?K-aimwNqf#
      zbJstR#E3wu>eu)ZzQiUL+iiGuUE&T^7%K>se5XLV=3MzMsQ9kZ@8a29!(LGG-Sl5@
      z>_9u+L#2M@>#|k#yZMx3Su94sgvx|5Bp#qZeu*6v$S$#y=_zW7U4%#~@el<vN<7Rn
      z#ipo=Su9ah`*>)3JY?<S({@?nAO)*TszVfNR#SpkCKIDPq6I$2F=eAJ_$Y<CJumS%
      z1-}wXoTT9S3le1tRi~nYRkK*Cf=#m=3>MIFmN#R#Kr3^^nf)2!E=5Ln7{pUov6=+u
      z2{HkPB0md?t`b95jY-r)$_uP0^9UWgMox(*NzZf|S~(-o&6L__Pg7-LEmfuWOcu+~
      zucT+Q7(jmt&tKR1Q7@!${$Fq2f+ZG9ERk3$u}oq>V!6bS#0rU35_yS)L|URpBBw&U
      zpT%uh%a5Yyc=kU1X&$o5Y62K~dK|F=N9hrm9Mi3rMjRh!@gas;lyKHzw+<Ko=k#F<
      zXJ+h>b0g~WrR#=o-05jkkEC6WN@wUlhS`Yfd93DD;v9vGSg-_=)Kb)9U;&Ws&@<F~
      zI`m%ZxemRLI(wSF1F9kQ&R)?wA4Ttc61^|)@EfH4P=~JKtmx2JQeV}fucn^w(AQv4
      zy#smU%y}J#d4u)5z-fIC#Ns)58Ml|ZjE!a~VHC_#(%5X4QpOguB#o_RDVH?1aZMT9
      z&7UyZHojLG->-}xRL0}VctRWR*2a5iyf@dQnB&HzN%|?}LF1%xKzW$T<FNKPsy#|v
      zrE#2VxA7R)v~hxK#<0j#X*1c1X+|+Qis_VMswpO)wn^g&t|_C=RT>Sh-NtFIX`{(C
      zV?0Hsvx!zp8AX&Ka4y$-8PApC#9v^lFB1O|qs*==LSE9yULuJId08VBBFPAOMI&d4
      zq$1>1jhrJQBjhzA#vp-Q+v|0OWE9f&dP5;A71H*4Qz5Gr(jD=<rI0lWNk_=r3XuxQ
      zM94b|(ahNhc~>F5%BCkm-cv}Q$r4=nfz1)a2V9SFd;wdq5nCy5!#CKDKQM}`9JfhK
      zhyf1U_1G=OIBWM|k2uLu8(^<EkD|DUN%1Ym>?KTz-#BG|#{uythwN31$6{o>sH3Pq
      zYJS|UCPaZd|GSY`|1&=NCk^$LA#%yK4Dbm)B_{A0KIh5~#t3(1#|OLcJ@?iXTE2&M
      PxR!6%HQz6^)t7$*kRR#U
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#gb@lG7wDVJJ|rAQ%*i&=e67TW=JoND4v<7*Ju7Oxr2ROr1=MK@l%_
      zzl-Aiww4e2=H<b)SPNfxbNL(m2`+zu`0bNP4J=&Chn%zbclQ4F-skMu`R(sZzXI5T
      zuM>zESU>GHa<kUFm8*JXt7_-+dfV$xd4A0b9M3&r*H4U3CeUSIKpQp!r<%(<_27_Q
      z_ZoiL-q~;~Rog(OVwatoRV~<amTv`~Z@|pAxGi@&R|tH^ogOjJGv>MVz;c5lR<&U(
      zbQ>^+3@o1Zy~Z3(7W@^`24EoVHfkl?-=kAfSY#lU9m;02q?)stfE%=rOaqbZtp?O-
      z+dfsXnsoz9j^8kc`i$oXM;EM8TA%RTV1_>NS}4S<+FXsmB7MBe3hZ{In;4{0$xTe;
      znoZ_jv8Sv?HJEg2p@o6oa>Ms+x7;i=YbCF$a5L*X$UAY|pgMNl*)0a5<C8pH@M;HQ
      zHLKUH$!=o3{0$Ec507lVR%a$<=F4kfrhUgd>pf7KwaWqTT#c5ij_U;XG0uj;BL=$0
      zyo#N`CO+HsPo%)tNL0KU-@;QE=5<#au3cBSL$1d11Cj4EkgPdZzW2*sRrI@fHruf0
      zMZTN<^N#Inr+cW>uY6OoDqc4qb2N=5=u?nP7(?L!3glPVNrCJNyO^F(E9@aeQiX>o
      zkWt}bo(Y>!<<nRyRQq{oyF7e^!jxT7I7GoJk!q4c&1x#JWHK?zqgvo|91|NU@G%N?
      zdrsjA3SK!-I7z|v<`qg5Do$B~Rnk}{!KQc}4Cd2uhLtg#ua#Ni%>E4VDn&+j7{rxQ
      ztR}%Zf=s}n$Pa^JRm6a|#w6+i<$2yH^9UTfMoxvNNY8W{S~+8&n<=%=o}tRbTB@Y?
      zY#PhaC(?6i^rJ6<7q095uon_If6be>V1*?LOBI$WELZ4PSfMbWuu5T#LRKNBkW}bV
      z$Vi9}(zp%l`B~&0*WRx`&Pl5zGr-jI<A~)uqK9C7RJUFdQGAldM;PR#1Tzl1buj-w
      z=MP&rHEjo+9ATd?+c0?JPEQu}P}<{2Is^YP&W5Dtv6iJoISd!^!eWS1OHhk|7l34k
      zo}%8<q4!eHbm)tzv#06XFAb@8_KM#5D0=6U=zT?p-%8pKbm$UiRfoQs`kD@XE%j`N
      zz78wp9mpGH&Koeu3O2HU)4C2sq8W7=w->w2&4psj%oU1pb4#I^Ft-+p%G_2cX5!{{
      zt_gET;b)ArjqerX`^ES{F&-1+-P(9u8}Fs@zD$oWN6m=>=?{npjpOD)@hFJLVeN5L
      zdlb1U^ElUT^Kq_8^90wFX_2YiX0nB8T9_PRIwedsVe)7jH=pF1FzZ~E+2Go3p5~e~
      zn_N@o(_}guYo(MDq7;F1ncmBIz8EF`B2#^d_)i#Nc3mOzvPSk1iG|238YvTrhsdiM
      zIZGrFBCl!W91#^FuM;s>63Dc@-Vh`uNZad8K~@XW_IgW@wSshqJZ}rKPLO1Xyd#Jb
      zBo!j>3Zj|QA@ZIey<*c7BJT^bxWFs8@FSZef)BYK<M;x$Vl%c;-i~jv1Ak%!S2=Fu
      z*lqN4*lxtQG0IuHAA60H9JN078RwBVE@Hy?j$`%`4j8|4%Km|a#$Oz=S1}fekny69
      zB7fEVxLZw#9C!YEBewAueEe@3@|7WUNw*B}DLx}+;B$Pzl^u*B?qbIWyYK_|RtYWN
      Q!#Z5cw`;-oOKtVlKi@Rz!~g&Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7wDVJJ|rAQ%*i&=e67TW^%Bq(ul911e0CX**>yQzw&R@PZe-
      z-$n6$TgwN1^YY+Ytc5SUx%>_O1ed=+{PxKN0}I#kA?NJ<oxQ)k_c?oZe*634uK+gT
      z>m<4itey56`B`h;%DaBWa_xLUZ+pEdKd4!u<9jFU`iVW0Npu?+)P{}Faq|VI9v-yo
      zej}*Z+Z$fhwGCvecEzb#Zqc5z0xR?b17@McZF$rAVi-8y^r(T}ao?+lmKPqe+=i{t
      zW55_Tuy8u?8*?<d>aUP700SAXQ7hZQE}fFX0t4~fa4wf4)tt=)ys&*_8tBU1YCxT~
      z?Ne2&SvRog_ziQY&-g)j^r}@_>l3~g&d?`Oi-fpUo2wC6ppSQ0q1}#j6N6N%`H6{q
      zv&r16_LS9d!$VFjvM|tBX#|1oRhq?St?auBH#4~c3pE`tbjPndyv0Cl&t##)tsRNw
      ztX#7yw}A!oH!?gjGP?0vovBoqFz<n>_8;#ocz=1;u7tdFHCAyQ&k65ioOMG-40MnC
      zRXd3de7Ec0NP$@<tA34-;VX>rzTJjr*A?!NyRm{$<U0+dYR={FgNpBpeizSX8}_`&
      zchi5~u><XN50(1mZ^~BH@8N5XWv~eS3X%z9C_F%c{0iGCkX>O1(-UfiU4%%gu!jN}
      z6&~W5unAQmgT+EM$wS-Y;lmWB?6Sf^3Ram^hbYvnrUFYQ6Qew$1-{2Iv5^8FrBJu$
      z6dtGGS3-r86g+=kp-iFbR3un6gC!Ddir2wl0Uc*p8N&rynI+Eb&k%PhGP=Vco|IxW
      z3C<B@0uDuf85CU+L*5#bsE3s2d85oDbnF^A6`mwL(`jhsjDa4e)INKfDidp|lHRi!
      zEJeRa&t))x{v=+wuKA;0NaEZzZ{C6x7AY)NSfa30VL)M-!l1$mg;feUg}6dWp;sX*
      zAwJ09Hmv1$QE)taQh%L?tg;LNQxA|MR^W&pfr&BQdMU*4Nd_Nbh?f%1IPBJ;!v7pV
      zY~l2@9ddL;eZFMf(2YAiRn${ymm}#6{>MBUmY&CImJ;JMT)+#9BS9@mtqZ&Wq&oC8
      z_1+G>k9xL4Ur3!jP2T}&NWHUH^v*}oJD)`F%R2m)(|)i+mpCgr^p(_Cb?B?9=Q{K?
      zST65C-WYRUhapz5o&}uNb)YMjRhMvksoUIGEXB=yv6L`36-!BTbFrk%EyYqcVQ%G`
      zG`AIh#%SC4UNOF3j2{%^aWUShjdyF~y)@pJ?G@&jIZ-72e(|7j!aN`zMe#VSJ&tOR
      z5?5s&=h|aF#x-T0;F>lqGF944wlGZ#lOs&0gsCP>K5Y}`6I_#KovSh%TzkyZTvKL~
      zYubE@OwYtyDW!!dP2g;{?-HIb#fZPiR9_<g6GoX`cZ9sGk$pts5%P*gDnt?y@~TFj
      zA(D)c*EDjLh>DQciI~d?WZPbE2$B}0?e(T0D+OtLy(P$ML3$#dw*^@vNGd|!5kv`+
      zj*xc+(af0$c~6i&vFVMF_XSy4<Q1I%k<HPC54j%W_yRU#Beqc9if^$Ee_|9@IBpZz
      zX$)}KuE%a;jI(wUdySJEwE^}S=TI;%V8Zy0WA-BU8^3eP{(%F=UmUVmFy7Tg#tS-%
      z{8#hiZZ#qD-1+y7`1)V)@xN)vSBA(X(=x!P_>7o=&+!FUb})vyiya^A{14n)CA54G
      Q>u@dK?yJ6EYOAmQ0qp4M)c^nh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S(6i06#hDyBzKa`5Sjr791zSX48mj(5pl+iVG&6{2wOmfPSP{eL()BVI)lLl
      z7u<JI+_x$p^v&hLDyr~>H_PAPPq6$2;&*O37$~grA@`p1-E+Qk&b_Bke*634uK+gU
      z>jWYO)=az2+^jWk<!WBVs@b``-gdiFo?o{D$8%5EjT42V3G^5k(uU2zspaxcBRF6;
      zyry5Vw>8~r%{Gv!+7+j6)r$6<<y(R08!+>2Zp)p{6$9UKr^gNSO?qx4u-xFVRcqP`
      zy#|a?0}H2puQ^APtNsdU12B+woAt8o@6;(NEHDtuj%Kr2Qq9>+zzsS_rh!QIRs-s^
      zZJ(-It%iX`$8VTJW5)A?BUi0bS}%BRFhiesJrrVAeXdSmfj-`D1$HOWO$<`4<_d*e
      ztHs=__LSAE1qYpaXknng()4}Xt+a}*dfBTf+{`+Mc_)q=)F!VxyTw4XaP*NbuTCIV
      zvvPP<c0KFmZ)|jIY<$DDIy0#-UtR+<9XQ@y@4oV^T?u&SYNAqeTqn4Xan_C;HqbNa
      zRqX`U^VzO{A_cxiqUzQ87M{Wwue;WC?S{e~ay6D8h<vAkWZk*^y<hQaqTj`{*`_@&
      z^4;{GcWhrf-9x2u`J1v;^?Lc36KO2MfP!Sg7zz(iAiu&k3S?K<&h&&@VJ9JyDm+Ai
      zj0z9)OxT1fpT=UL+RH=R<st7cI%Ss?4p6Ylq&i5UZnYFxGMO0Vs22Df$HYboe3U}N
      zo>O?7f>#L?PEv5ad4)2Cs#B3*)ijn!uqj>#gZXrvVPy>GYh{)=vp++;Mv>7S263en
      zt3_~*AQNyX^24B56EWbeF^NV%d7d}QJOanAlT+bI(lec=R?ZmcWlEj1r>Qcrwkqj8
      zo5oTMi1b_<gBVEQh3k4h?1co*UGwH`SYeUEVud9NOBDtcmMIJ=tWa2`kX48&Bo+D;
      zG7{p0G;YHheinJhwfE|e^Pp9h8DQ%9aoF-5(L*pkp<6GBC_YK!BaHA;f*FV1I+FjN
      z^M@^*nzjQ@j<C;{tR1;=rzeYgDD8A4ouU62XQR^dSj|$R9EJ;cVKKz1C8$Nf3qZ0<
      zPf_pd()+1ry7YzA+0*nLl!nwhdqwYj6ut9F^uDaiZ#nIUx^#)NqDx;%eN~sfntHZN
      zAI5Td2l7Ul^ID9sf^{t5w5|h@XhvPa?WG=bL$MSybH!5J+*m9n%uU6TGB+1XnYg)y
      zYr@=G{2AjN<9o&UeldPfj3>o-hc@1&jd#;{Po__pqh_H<`hDU-<G8tBJc{CRNP8U7
      z9wn~IJkGV(e2i<-Ji#?(T4btpm~3I17A8lSP6<<8m^|9X%_q1f%m!CwHo5kir@1E0
      z7T1*d6q%lhwNpw7QHsFXO#dZ3Uy2fck*U5!{3nbvyPgnvStEOh#6sj1jZ}!lL*!MB
      zJVPWABCl!WED;qVuM;ts6UcPD-Vh`uNXP3<K~@UV@p?;;)q?bfJZ}p!EJ!j$-VsCz
      zk_wS`1<}mu5P46KezEBbk@p2zSmYI)|B=lR!G~OraeM)rumPJXZ^5_Nia#-qD;&3R
      z>@Ws7Y}a9zF~M287rTv<9JN0780U~TE}&q1$1!^m`;6Z?W&gl_<1Y@`E0~N#$aq0V
      zk-utw-0dbrjywOo5nJ~QKK?fi`N|Nwq}vAg6rT|@@HxKV$_~aTcd_Gxo&SM*yM(sy
      QAsw#m+jG_TOKtVlKYM`bz5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#gb@lG7w@!%(1LK`>P)LQ_OUY`sw~R(cV_#efQvWZF(iX6j^842pQc
      z`&|_8x3zrGH!lya#aj5no6FzePjLAQ#BZNWFtBhfAF|Kh-`V@y`<%09=eNHv{t93V
      zzD^)wVEwFH&&^wlR<7cetcsnR(95_x<M~x9a6I?8T{}KCo<N6ze(hKfoJwxOsRak@
      znpgKr_RhLnuGj`LWxM25txDcruzV}<d;{i0liPA<bNRq`+}RNWU1OeG3oJJ{Y*p&E
      zLZ<;^$iR|W->Was<!Zb_+5ils-FmfX`+Iar3Oxp5*`aJUOR5E%1-L<L%QO(l-fBRd
      zvh9;)t5Gws^w<q+sLgqPaOA32O52m38_Y2#UJaF)Rb8kO=+WD|tiWz%x`|23<=o_C
      zuF+uaWqZb|SAv61HS{phU8?)O?Uow(Mz!cw6mDj517o}t#|<iD*KOWnAUZWZ-4@o$
      z#N(_PSexC%1M@dLG(0@A`C6N$lvptDfu;5yYd`RGao#QkymU2MsyMC_+{Zi{1`iwP
      z81u?@0-N}5*T0bhpCeKBs(cJjVVL(_sk?Sf;SRYQ%MV1q(?GK7T>joKc@?qm;@*7S
      zUKIUq#xFXyuY>NPQM>$2(JFhLe9h4`mZDcdDq#+V2dI!=VJ8)`E9_!<Lanfe5J?pt
      zqC!T6hq)(gLN$@bGNGE{rtNa`5h^owQQ-g;t4OMYRH{}(fk!42vplL5zQ<AVkpn(P
      zrDiWEJVC`P1qvsqxZa{dkxJPqNwRVp%O%+iuY<{a2F~$hOy_H3o;a&NO}s*t*&QZv
      z<tSEz-~vGw;85k4LA4@kz*}PxwSf8}Z<KWej$I|E!c(MYIdyHEHqgnET6@pXWMNHH
      z%6m4A73dZ1xitFFo4^a#HGkL(37os;&6}{oQiWv-%N15A^eL=V=vP>+uvQ_f5K~Ah
      zbSY#c#RqBJhV}d|CLGtE(qHF6t0+Uj)C1(O<vU`BV0=`!UJ_A!lEz0E<fR024!d=5
      z;(rbxws30J4mdi(K3~3J@W!2<%<HMN$B}aS|6`sFNzY>)j}qlH?BRvQ5T})(6#*{*
      z$u>JhyQ|Iark!cCm(XTUGqz6}Qm^b4z4B4?$|uq5%C@*w^zU!8CC}<MdkyWiZT33a
      z**1FstK=QX8)eNKFvt^Z<N;3Ub08AUs7tuL&|z-Q7h+~EUx=Gq@`Z%CHD6HXwtOKI
      zH@8zJ%pLikG179rSDfz`=Lf}kOq_RX=e^o_oX-0)UBVnSC-bDAmIyk>&HWOQmxx0;
      z;)sqYP%85nWvBT#WzsxOnKCUhm0C=;FwF{+BTOfSsVYn!edFenlnJv&smwZMr+JDp
      zX*MWR=F?<46Kj@~5~37=vzhKoc)k!N{vu0#iTF<#VRaoL^0G$u5s8J!D;g;giHFFm
      z8aYEG5hAZ?<SY>tBCiuMR}sjxqTUcBB}gmkO+nTO(u#UZkadD|hCFWzG9XAYMBWiZ
      z36cttcLmYR=@5BOkZ$qm3X%5(S(4`!od1!{5y6L)M>)QLt=Noh)VJeX?7*KG!4;0%
      zICdL-9JU*=*BIrjox-?rf}_^QKI0rFj0>1FzT=p^h-u?@PT4=O-}s9|_6o)#5i(xT
      zS>(T(A9u3}k>kq0Z^SnKf{*_#L%uSEA?c<AKE-Fm41A6+DA~an;wpZ8u=77~Z62W+
      Rdq}5i#&%qd{Ze~<^$(72>B#^9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S(6i06#jZLN$w<>Av6OFI3O4l24OOYh&bZ{!y=Ml3yT32I!Vt=51sC@(-{nk
      zxZu8v;=Wb+pl>b@R#Am7yjlJRe}d&N5WjQN!9Zb^54rc8@1FCWbM8HT^4s5+eg&`r
      zUnkLJVD*&O$j?}FR^Ih1mTTt=dfV+y`a#VK9p5`)*H7%<nnbsOL2cLw9XDTa>fu4V
      z?l*#py{+L@UE4smYFC_^<reK(E3iU8Fklv1+?F?$FNT5RO^q7p9rwL@XnElg%Wc>S
      zJqC<n1M{Z>zcEXbYyJuu12B;B8nv<=?9?eK%rg+r4d-$>Qq9^-zzf?)rh%^9?FQ6o
      z+dfsbnsoyUj^8wg`m`T}N3U6>wLal{;WT{`wMd9twb>ehdHQ&}7254cw=hVxnxB}+
      zH=E48YEN1XH$3FjA`1h3l|~TQUZq)V*2=!Ca4VDBmgl87Ug(bBaCn=6*#52CI^5ck
      zSkCfQD{|{tFn=S%BO{~huh*GMg$eT>m}>v=&Vu)qXY5MIOIKqR*YTY20mfM~bi_dS
      zxL>uCSjTs}@r@Mt9LcI*<74;=BfM|7;n{VCyX0=HAQbs-1F4#G<@=!GyQ1I2vzdlH
      zC-S}YpL6U$JKaa6e&w68RrP!LnqwI(K)-@y!Waq<Q6RqptB;XgVLQ_kYK5JINUHEK
      z1u`l;!ZTqLszL?}g=#MkZI6fhDNNdBg@Y8VGN}$xs98+~mP{r_c~lF0k7HsZ1wKZh
      zZqF(_LBX$t3MVOe{+vRYLe;5AuxbX2B-kXcgTVqiPO~zG3$!vroY|it?owoQhe13k
      z#cC3qCCCIEiu^Jtx*~?WH6~FHDbMjnnMdf@HF7FEMS7;w(8?JDJxr;6_6$`f)>0+C
      zXERugevzKbU;zC|yl_MFN4=25`Rm@i1uHC2Sg5c_VX?x1!V-l+g=GpW6mkl2g_J_C
      zLRLb2kii{T&F`Y%c=lfXbsn<HG6YOLK#o{}BYFfT#&qkY5W^=Ke1suhN;vJXTZan&
      za{#f0(^GcH(Gm6eqBTP|@AOnrPo<rXq%-&*^K4jp9xGW&jMH!)FD#A(wIsDJ@B)zP
      z(9_g=JM=#4*$#a^b@nuU2c#kO&R)?wA4Ttc61^|!@LNjz!46&GEbGvhQ(w`cucV&q
      z&{tupyaRb-%y|ulSixEra9Y=au2@!G#+{{ZbA7QCH}l0(!rV|SCC!b+k}@|HOWB0E
      znQPMAQv4aCZR7jJ_(3t=D#qhtyh9uB(#E@KyeHc$%rSGKNcw%^LF0sZKs<`#aaemC
      z)gC3T$~?}s$9$Y?$~?g}ZCYfiw3%#Sni3{Qm`({(O_+SzCd?<fCe1omWj46>n5Vg>
      z%qG{g`81i%##<?+g(ywnT(<8ro-f6SzsOWyBK{LbnO%2;ysVKuMB)+hibg6#5)tyM
      zM$QsRM#yU#IY&fA$m>MRr3A8VuQvoq3)1#_Q;_9?w7uREWThZI5zpI#tP&&@A@2yH
      z1W8B8yMk!uOoY5ANT1mBM#%eu%rEi^F8s*m=)#9wk8ykf8?hdnC~wBM*n&SXimM#A
      z3G6TiIBeHqmodg!yBE8SlN_}H_88|;FfL-k_>N=t680ItbISgK1IAw*vR5(Q)kVgO
      zI*R;P^W$zcA@bb$_l@}4U-0q2X~<WG$R*P<z^C|(n1Rpn1y^=3hPjI!AMC;p+*>8I
      Sd=KkzE#K~IzF%squl@n*OX;ov
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7wDVJJ|rAQ%*i&=e67TW^$tNXji-45%<krtOr;Or1=M!3$pS
      zeiz02Z7m=4&C7#pu@=7Y=JGfA6I}iR@!Ka83@lvBhn%zbclQ4FKKtz1`R(tEzXI5V
      zuaoF9uy)#O<Y%pUEARRh%eC_bz3uj<{Geuqj_;kY>nHY4B++ePP#ZQv$ITa<dU(*T
      z`;DMtZ*O>2*EW!?+7+i}xkY=<3aro%448!$x8+Uei(%k+)1wA@$9=CJT3&d>avQcn
      zj{#%Yz{2UkZ_Lr;s=q?U01RZjMy+fIJ9SD53k<|_!?|3JRC6{H@WS?yX`m~2s{wV|
      zwog^9X5GM|<2THqKH~@B(W_Qztxx)1I76RAEfV5ZZLUUOfj-`0g?2mAO$<`4<|ilf
      z%_eiN+EZ4;4G%fB$ihHhr4a<SS7{cTwX*Lj+|1;Pc^1X-LU;VS!&?l*_D}5XaBD~6
      zbylufmD|7z^EWa)GBUdHTAis>m@w<WRQr#2UU*-5)~<vsx*Dsvj^~8;G0wW7BL=$1
      z{i>bB2EN<%Z=}HINLKwCAH!D|VZGgkXV(?(klI*5DDs^KQZ?uD_d&&XMZb$@vkiM*
      z<h$uV@7RHMx`#^r@;7Cx>i6(9$1+%ieg(;dF%%x4Kz@bo6v(cygXsyi!cIaYRd|R3
      z85JJpnXm~}A%n$2#j?e0kB9pyOxb0HgA}YXsSZ)7Sxp6AnM{oGh!*%B$HYc1_$Y<C
      zJ*V(E1-}w1oTT9S^9p4ORi`4ssu?ViU{fpyg9UV);msH>(8?@vW`BmbOOeqX2Jz%7
      zR+HcyK_=i(<d;Fw6)|Mhm_$9KJkN?UkI=De<WzW)^h~Frl`{r<m{R-fX{t=DrAm6w
      zX0R0fB0ZPE0Q!@7;kxFJdLfB(*SvWPR#>F4SYe66QiTD9WeS4|D->2K<P_oxDTQ8z
      ztc3U=gWIr{-$lXk?7jNyJY<z+2$*_+9I*mN^axCh>DEgjhEFp12tzDNIODKehYJ65
      z0I`MB({{+w5%u|!bwfAq^i)w#rJatXGx#6#Y*>08t9g|er{Mw?ERF=VB(*NE07!M{
      zY3jWldLQ*{hrW<Hdz!uj(vW&*ujrkRqIW)t-j{XwEvNlphc0nebm%Louj<fOQ_pqi
      zYp`72fxI#1ybeRW!Fpccw7v(rVp(+wx0kxjjm1*j%oj@ub5pUDG&dJZ%G^>cWfSIB
      zu1RxS@n?*-jqerX`^ES{F&-D=32nSf8}Fv^o@}o$$IQth>Gz2TjT7bp@hFPNVeN5L
      zdz82;^ElTY^D(X|^90wlX_2YYX0nB8T9_PRIwedsVe)C4FrVO>H0xZI+2Gn^p5~e|
      zn_Sc8Q)GH3-byJgL}>zNvwfHFd?`l!MW*@^@t-it?7Ac5WsU415|5BqG*Tgwh>%w`
      z@(ht=guJGavqV&cyiUYiP9WR%dP9)3AZ@QV1z9Ob+v_bsRtwS-@w_d_8bMMK@{S-%
      zkaUE+D~M*!M96!B^odPxguE}v!Xis>{zo=P7e3^AjN=Q~jE&erc`LrfHvEZET;aG)
      zV8R&Suw9Q`#u#VqUhFnba?}RcW1K_5xPVFHJC50l*k}CCDf<Tw7=LldUcq=*7a1?;
      zDDq#;kGs``$aCl4H{$Dm!N>omAzv9HmrTn5pW-uO20q6ZT-m`G<}P-8u=77~Z(X6~
      Rdsv5S`F3CR{Zd<f^$#Ah>DvGR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S(6i06#jZLN$w<>Av6OFI3So&7=+0nBI1l2!y=Ml3yT32I!Vt=51sC@(-{md
      zxZu8v;=Wb+pl>b@R#Am7yjlJRe}d&N5WjQN!9Zb^54rc8@1FCWbM8HT^4s4Re+94+
      zUnkLJV9m7G$j@5yR^Ih1mTTt=dfV+y`9aMJ9p5`)*H7#}m_)aML2cLw9XDTa>fu4V
      z?l*#py{+L@UE4smYFC_^<reKZE3iU8Fklv1+?F?;FNT5RO^+Gqo$$SSXnElg%Wc>S
      zJqC;s0}H1EzcELXtNscZ12B;B8nv<=?9?eKEHDtyjpTAUQq9>+zzf?)rh%^9tp?O-
      z+dfsbnsoz<j^8kc`ivihN3U9?wLa;4;S7BewMd9twYeIB1^Rfq7254cH!(=HnxCA^
      zH=E48YEM}WH$3FjA`1h3l|~TQUZq)V*2=!Ca5L*1;+;5N=uTXBc8h`7;o|lVuXZ3-
      zvvO!vZawSeZ**jIbZo=5Iy0#-UtR+<?LXdG@4oV^T?u*TYP{k)o)g~3IBSQG80enx
      zt9BCW`E1uekpf>MS@mmt3twTB*X=euyRLADT#XfkBHw8sRdX(XA5?r-^t*UA+py<F
      zzMKB@jvZ*Hd#Kbee^a)qeh(jWJcC8(SCC8?L*W4m<X6~6f$R#rhHjx&*hz?_3J*~r
      zqr$^H6E>kLWUyGM_VUp7c(|X!lwDRhNWm(T>JWvR)l^`~WMY&@w7};$CN@&wqZI1)
      zoWkQ2{7R^Bl7i>YE0ifzor(mjX0SwpP4PMyETH2ID`U7oE3?Fz{TbpeMMifR#FJ92
      zCc!y^Ou(VY4}+pBV#r%#67`VsJa3eFgpOS!r^1t@XF3h7oH5YDl-g%cQ)OZ;RnmJl
      zgQe&f>A4IB(4WK$*Y$qX3rU>2=FMBM!Xkym3QH80DhwzrQy5fOp|DCJrw~_2DfB92
      zCBz3A+=ey$EDDZi@6{jYA*(Diz|`~Oh!r@ZM_^)Hw_XY{e3HRO80MvfGY-3TxbQ#c
      z4_i1rZHJs3QJ*haJAC6#PZjl0+UZC-ga0wkMx^Jlnx(`z3>Wai;z&?SQtJXQ0I3c=
      zO})26@1vgW&=*o?Pt$im8dC4<6}|IO^v);I`?3zd<+LB{&?U}_4t*u{RUP_j>bVYm
      z2+QRi$QxtMYcb3U*0F%ox(;;3vg#6UFLj$6ilw-jFP0MK#$qXHZYq|Pxw%-%Cd@5d
      zljhdq&lqbP-z&!Vi}8bEJR!zAwDB%&yqm^*vc19_Gbf9r-zOe4PM8P8qbMGSwZ~EI
      zQR1r1<6L{p$GE1<6I|1#MW#xd$rh$*VRD4&lrYtV$)|0?e1dDztaDXngKLj@nrq5z
      za!s30k?EOuE2Xp$r3swP_FcmBr5N!Snd(c#f5I5E>yD6@HL{0DJVIX4NQFouLSEI#
      zGenXR@|s4@5>XNIIuUa@fo$9B4MEa^w7uRGWThZ&ueStQEl5wq^R^&Ef}|qk9YK^J
      z=?HmO5Y3#4koN@X6Pw-$d0&u)MP9-AAK4sT_>k){jxS&nHefU5E%+8&@h8S`h2u7X
      z9mW8M?K<o-#yM;EVz+UUqc*@E;~Wac1xy;>am-%CKI3;z**|c=_=`jK3MRU`$aq0V
      zk-utw+^r@=o;&}&5nuNUKK?fi`N|NvWLgIJ6rT|@@HxKV$_~Z|cd_Gxo&SM*tAv*C
      QVI8jJ+kMsdOKtVlKL|eQtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7wDVJJ|rAQ%*i&=e67TW=JoNXji-45%<krtOr;Or1=M!3$pS
      zeiz02Z7m=4&C7#pu@=7Y=JGfA6I}iR@!Ka83@lvBhn%zbclQ4FKKtz1`R(tEzXI5V
      zuaoF9uy)#O<Y%pUEARRh%eC_bz3uj<{Geuqj_;kY>nHY?lIS)ts0|yT<K_!aJv?aF
      z{YFr+w>P}1Ya7T`?TS;g+@d{a1y<+>2FyZ>+w!LK#V~NZ=}`l{<Gxo9EiXJ`xeZ&P
      z$AGcHz{2UkZ_Lr;s=q?U01RZjMy+fIyL3tl3k<|_!?|3JRC6{H@WS?yX`m~2s{wV|
      zwog^9X5GM|<2THqKH~@B(W_Qztxx)1I76RAEfV5ZZLUUOfj-`0g?2mAO$<`4<|ilf
      z%_eiN+EZ4;4G%fB$ihHhr4a<SS7{cTwX*Lj+-x8=Q6FYi94~aouRFbkr~6A29e(Xl
      zywA!tt8yE7WBx{lM@B|BUaK>g3NvOQm}~#>&KvJ5&)SucRaavb*YTY2KE_!$bi_dS
      zxL>uCVCA#dKav8oOji9GU&B`zVZq&oXV(?(km6WDDDs^KQZ?uD_d&&XMZb$@vkiM*
      z<h$uV@7RHMx`#^r@;7Cx>i6(D$1+%ieg(;dF%%x4Kz@bo6v(cygXsyi!Y)E2Rd|R3
      z85JJpnXm~}A%n$2wU>vs$HV;;rtGr9K?+uxREH?ktfm65OeRKoL<@Y7V`3v0e3U}n
      zo>O?7f?o+0PEzpvd4)2Cs#B3*)eM$Muql><!2&wY@Ma7bXl0f-vp+-JrO4<GgLrZk
      zt4VN<AQNyX^3$N`iWstLOrjoAo@YgwN9fo!aw<GYdZyFR${7PaOsReLG*u?nQYF1-
      zGgyj#k)F$70R2h4a9#IDy^zGYYu>yCD=bo2tgu93sltH5GKE2f6$+~qatd*UltQmU
      zRziG`!EIQ}52N6C_FnyY9<s_Z1x!6bj#z;sdIToMbnB%M!zUShgdr9soN?H#Lxul2
      zf!M<7X*=ZXi28iVx}h6)da9_$(k@5R8T^ldHY`1l)x1iK<8T2B7Ds|wl3Ev70Hiwf
      zH1*yNy^ngfLtjXpJx$*MX-K`ZSM<(D(L0|+@5?&;meYQ)Lzg%!I`oy)S9R#CspmTM
      zHCQh1K;9U0UWXyxU_CEzTHga*v8=j;+e_W%#$qXM=8L6-xv5x6nwyIyWo{{!vI%o5
      z*QB|v_%lY^#`lWx{bKx}7>|qbPHjA)jd#;{PqtT>W9DR$^!vnv#tHL)cofCsu=Y5r
      zJxW}ad7NvH`54!fd4g-&w8&IxGugs4EliFuof4*+F!{7im``v`nsu(qY;f%{PjgL~
      zO|EJ4DKb41Z>5wLqBMcC*}hA7z7!+=B2#^d_)i#RcHI&3vPSk0iATsQ8mSOTM98Ze
      zd4@<bLSECzSt2SzUMFHMCy;G>y&*_ikha&Gf~*vz?e&%*s|D$ac-|IdjUcHAc}EZ>
      zNIF8^6+|;<BIG?m`oyL;Lf#i-VUZ;`|0A2D3m<Yl#_<Jg#zt(RycOSK8~(&7u5jEY
      zu+tdeuw9P{V~n$QFLoOzIcfv!G0vf2T)?F99mniN>@$Anl>Gw-jK4T!uVB2Zi;Nd^
      z6#28}$K7f|<hk?z8}aqO;NySOkgp7pOQvOjPw^Qs1E1pyuIyk8a~C^4*!ds0x319g
      RJ*>mEe7mpueyOd#`UfUR>WKgV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SK*hM_>gf?!Z6LQ_OUY`sw~A}I(1#efQvWZF)d%+$%G7!>h>
      z_q!<GugeF0^YY+Ytc4Hq=JGfA6I}iR@jE9I3@lvBhwQWWclQ4FKIiP&`R(ruzW~^X
      zFH?vKteN&2g;{IfD!6{da_vG<FT1@dKd4!u<9o;K`Z04dg)V_X?brw%w@`HI;Q_nu
      zH-d`2t>IN&TOe1pD^AUFO?%D?tk4exjAD!1@}>)B7&zYas6fxS@6|)g3nwkNVM}xi
      zh+%;R(}CZZqsx_eiL3wwvR<QBwu7CzB#AzOM1DA*&y#A-W&vK<-ZBJY`I`mgN!vbA
      zwVHK-g-5SjLw&{%!oyd*GTNT-y>Nyx$y%f&tlC_SK%d^;ZiRL`(+x~gtrjLG3e6^K
      zui8^q!wnBQwa7!Dx6%j#+p9FqX07bI5;wBAU%%$1I9}+EU$c3WK-`=h?+9yW;&E22
      zUYTFd1M@dBJTfx6;cA<uR9G<Yfu;5z?L6?l@~mA6dFgVj;yRua-ord=hb9HO#{H_D
      z!g{{jwQnTB=SWrk8Xv=#7~y@p4bQGi+@|iv3PPpdE|9J{m%a-szN_pzxHsFd=aqgZ
      z<L4ba&_Q?6s9*Z3Y*qbkzUEjK3(+s3Dq#+Z`>2p#VjC5*OKfL(idtePA(BcwK!uDF
      z4{}ejDXL-?ixkyfZrUC<AEGj4mn9BRvC5=6NTp^qC3s{qG0VeR;d>lWKI(vvP^sH<
      z5|2^wE1|@3DxN<tQKnLLDk@nui^VG06t9EH0tU|TWK0)mW0p9pKSkW7%Ipr4c<Lxt
      zli(ad7T{3jmqFE4YRFq-5%rMzJa3eBgpOS!r^FMaXE_aRoD%3}N$tI-XtJ=Dsmgmg
      zizVn++A~=Upg)D@u4(?L7g9KT)tk3qiG>o2Bo<37kr<FzDlsUrTw<j}ULqlpmgtel
      zsTA*JaSPV)yC^!Iy;pyo2d%Oi0)`$SlUCp;I|7qqy7khC<D)D-zz{DboN?H#L&g6&
      zfY`#BX*=ZTi28i-+M(-rdfL=eX{V#g8T^lVHmrIct9X<+r(qv2EP*7g6s;I|0Z4b)
      z8QMJ^b}#K*hrNI{dz!HWsv-5tUePNbMX!7ky)NyDTSouE4qN3}-eIqxy|TkzMLXYN
      zuf{U<4&;rq=Cv5&3D)rdC-pfHi|6D;+*;}~HkhS^Q7}tMW20G08Jo<KG&Y;1T+-M=
      znKHJTKVh`(e7ADGS2^FWoX3^(4(+^4JMX6Ro?MS&jvEsu>G!D!Iwy_&D#BC|hjheY
      z9Z{l`#!<>{<59}Aaf~u!SY)cSnQX;0t(Y9ebV4!J6q8Tir13aq%BWLHqe0nioTN+}
      zP0Eb%B$-YpS|w!^QHH>oT<=9ZTZ$8Zo~6D({6~zkx~>R$Q6qbZBqHP`jZ}yvBjja`
      zoF<ZrkXJNvhKP)iSBV(Q2;|yPuPG#>kapDT3R$6$cGMdRS*4Kfi04g(tX4=mLf%q{
      zR7fU5-d2ca&PK>P3h7loJrVM*LKc|3f^$ExIbwL9@(9Nlun8NmnfexdgRS@zqqxj*
      zo5T(=z+t-%yTll0?OyB_$2n>P>=9>C6z4G^zU7#`fPLb3PT4=OU;M=(dl}=g7#Yv&
      zEb70SA9t$>QQ*qIZzR_Jj1T`ULw#k4Lb5Ffe2h<s34DsrDA~an=BoVoVCTN)+B!lj
      R_K;53itV}*`?>b|;vX?j>jD4(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG8MWFcc`*%B9@Or70pJwxCijB5e_df&mpK$+Vr4%+$%G7`z~g
      z_xlCBUvT-LZ(bf;i?#5DH<!P`pWyNrh~GY$)WE{Ee8@R_e`oJ+?|sgmo!|bx`YV7f
      z_$G-K1M4QeYIfS5wX-F^V3(Zih~5r(6Mj&(L)Z6CIh9l6RuZiSy0u|7bW7P0w-O$4
      zDt<L6IJ>J}vE&%Y6rF-wwo8^XV+VHV2L{ZMI=AgjX00%Ay~#lX9mBp?32iStW|yjt
      zLYo1j-@t;&z^~5GWX@k9&7(~Q(q6TkcY=L7Cx!Xs=-t%YE5Ct$?$l=-X5xhn6VpIy
      z&SZ@Nb=Gmt6zy8Yz`~QaO{y~G2jTHKt9GrA`d&CipF}wl;&yqaOkln~-eZSOBjOzl
      zQY>aiN3*pWizzx2cC{29b<1-WcN&0!d4*~aI9{P<)yjFlq_C1TuI5#_URWBw<&1c2
      z+}hLR)d;ta&#`*0!v2AQ!Ob_R%%;Gcc_qxY^JH_)hw{@-A>>1-p+d>^+;A78tnWK!
      zpmo?UI!W*`GPk~)!hnHf(J%9Xe1*FV#7kArsVLkn*JB5v$oKHt%kK5>gMwcY{a&6;
      zSDjgr@1y^$>jc_qh)U)9mAqZ_+juFv(pZR2g$I}kV<_yVKz;?*9wWQLKBgzs3J(z?
      zslvk)$fz*FGhq{|u{0J5)gwG~JRTmQFyZ7Cj#9Amq++GytSLN7VOpY`&;lRhF|m;X
      zpP*22W)x0S@C%_ro`UDkDikRc-GT(0NMo@Co8omaSU|^VR>p9FR!YQ~{W;<uMMifS
      zWJXG{YXtd;#F>CgG1Ov7#97`Nlc<E0pW=-&kI;3><Wx9EdZts=$}<Mqm{Q~HIjT&o
      zu1b2(r?CW`BE67C7dn%;cuW6By^zGqH@$fsR#>R8NMW(U5``{>r3&2&%N15BtWk(7
      zq!c<7G7{o)8tc)=Ph-UOoH6~u9<}o_7)(7>j@f}LdITnhbnB%M!)IxHf{nbCaLQ%3
      z_Kp0{p~Mz$pL9Zwlc>)ZukX8kr>87EsrI>&PWOMzxPIw*tYj%MPRRMZus9OblGIwj
      z3qYz#Z>QeTq|c+CY0?)^XHV0&OBzz|>=nK9QS{Cy(fiUSzh$)VZqj?GFK^OUP+!%g
      z_flWeq_4#?c?a^wnDYi~WCfd8z*$`fT4EV>4V!bVX4cBZ%`H|gVQ#f@NpqW(Q|5Ln
      zmr0mAxF*d(>u2n27~e0(4~p@y81EJ1{o43|Ha<w>(M*Rh$IL?(=?{wsjT5FN9^>M1
      zTzllS$4Rcre4J~Wd5UYww7IsM1u{7erb%IPh3Skim4(R{rYC8eFe_Y>W|gZl&vI=u
      zYg|+2(_GulXUTLvUQek<h<XTI$jrNj7jrS<FEQ0ui2sD0OtCdWUe(Abk$8l>rV)oo
      zB0^r*$ax~k2zf&z7l^0`d6S5_j6kO0^_Cz#f;7C|7G#AW4X<|u=@q0c;(1q)wSuG~
      z<UK)@Ang(Iz98*_q$A`5LFNh45g{K6vcTdMT>6pC(Snb-p5XWbwqi53QQnSku>*f%
      z5H~n?6WD8XaqMoueq)G3cMJ!N)10{h4jLCZaxY`l_zq*nRU9&Y=eYd?hmF5DZEs+>
      zrG<<i>nQS<$B(<-gvfH|zaZipe!-{zrXgP$BA0aC0H5OvVg|m%S6tb_=;tnWe6UMD
      WaIcq8_Z`>a>b|XWzF%vrEB^os=I!(V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SJQ!cd@KK`>P)LQ_OUY`sw~B54sq!GH>rWZF)d%+$$DF(~2%
      z?{`tW-`4U$-@H7y7Hi=PZ!Uj>Kf&cM5WjOW!N9_`e8@R_e`oJ+@3YUIo!|bx_$z?T
      z_&SA{z`7YXEX<h;X2J2QrehU~dfV$xdw$&vY|lMzHI7e}Q|J;H(1u}PJB6a%2o72e
      zFZ8R{j?k?+mO!p%RqeXzl&pEvHv`WXFp4d1)14`l0^fFLMg@AtJ+~2<ZgALiLQA4s
      zKx`CPJmY)eJWa0pOJoHgkafd)#qxLSlq41jB=W=ge4bSE787uT_K_hF%ik&>Pg&N<
      zn%Qg!EID?=92&Ep9~`-AmC^cy=LWO%N!BAFVb<sC1QzMzon~OQBi+OxwOV0fqR?zI
      z_nI|rhE8zEu16LEz17h7Ew|b%HR~16k+_-3O%Adswi`I(*B#y>5T7bfb-1-7@j9yq
      z*W@?y!u*X4kBp3Nx>jc@RVK_jFx9?eofqC;nX{?^i!R5ij_umPeT=hy=&(T7xL31M
      zVBvGuzmdeSK&s}|`52zW2<z>HuGNsZL)FIg10~-nkgnU8zxS)2qx8FYHWyk8O1_)^
      z3%2EJr+cV0E`L)oYhE{Bb1aJ`=#x;HFowhf6v!{Jg96zlb}~IhEwP&rNhKblKt_p&
      zd8XJDRWXaDifWRFmdnFOC`?-wiGvi(3aJiJsGCg*UYSgc@~9U09!Hgpy5M6J8rHnT
      z6BN8^AaR0%>n%uBDAeq#3RcTvnF=<|axj=r$64Nt;e4&k5oh+Ni8~Y--DVJ1UBzq?
      zoF~WxY>NCcC^||EST!cm2q-VGqRb<(tvWd+o+3Td3AJ)spqnYR&z_;m#9FFK@7XMt
      zqfbfCWzmnm6kfQl`J-M);oLQE-hw5TNGz3DCb3+iUt)#CfW#_^H4=G=ghX1RM<S;}
      ze2~R$SjX?8XuH;={yGnt6*UA5JwOhdzOD2KOpfW+OCyd?viJx?EJ`qIvs;IX|8oGb
      zg)=i&z|j%)`LgvxH}3RwNl&HSwn}H<Kjzu6>Upf?RpOk6i&(G(lGIYvVqgJ~?$9&T
      zdph)9>bVYmF?IGdefw2I>Ycr!cRq^V`6PN@(c!m}_5&TdinFRiUrl{YhrX72zC$0x
      zO7#xpjWg%<7~%~!@B*jwJrIlM<R#o*?lLx&$_b-TDkqK2rE<#HQYuShYpI+|8r!(0
      zjP0eLG1@l1R~g^0j2~3S<H~rKHr}I+_tJP@u17J)jfoQJ_bU$?CyfKjqoh2hw8s(c
      zQRXU*V_dt9$GN7B<6JX_Nv3L>$x=)+ipf??Clym&F?qC28c%Xf84a$|2)T9}r?{q#
      zCfAJdG?~sMS}A1|QHH?TT<;}3Uyc)hk*U5!{3nbuyRHa%StI+1BqHP$jZ}#wBji<$
      zoFS5mkk>SFmWYgy*NGS_3FO*dZzv?Akha&G3R$g?w%1z<S*wuli05sE3@RiYA@3+e
      zDkKvj?<zzyXCvf2h4d<$o(OqgA&W~a!TBHA95H;z^(e;|umzj2mGU-xi|zOmqqxFx
      zo5U{B&tba(d&C%L?IiY!6CAZZ_K9;SiVK(!-*L=d#D4KRr|cg%ApYWzy@K&rjEom_
      z6!l-tkGs``C~)WBHxe6u!N>omp}sOiF4>j=KE-Fm1U|<XT-m`G=C17cVCR3}-nv4|
      RcS?tA`F36P{Zd<f^$#J7>NEfV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#gb@lG7w@!%(1LK`<y3p(!FFw%#ZOkraeLF`&XEnYL4snL3#igCbt=
      zeiz02Z7m=4&C7#pu@=7Y=JGfA6I}iR@!Ka83@lvBhn%zbclQ4F-skMu`R(tEzXI5d
      zuM>zESU2M~a&y*#m8*JXt7_-+dfVepdw$Id9M3&&*N;z4B+zAGP#ZP^r<%(<_28gg
      z_ZoiL-qCO?Rog(OVwatoRV~=_mTv`~Z@|pAxGi@kR|tH^of$RIGw!+dz;c5rtJ<&?
      zx(yf`4J?}Ry~aFEuKFva4ZuL!ZPZG(ze}g2&}Sf)9nNO6q?)&xfE%=rOaqbZtp?O7
      z+df&bnsoz<kKHhb`mE;%N3L3>v_9#%!7P2^wNQvzwfP!>K7G8?3hZ{In;4{0$xTk?
      znoZ_jv8Sy@H8|wdLJI@E<%aLuZn;@#)=FMg;bsHT9ra<}isJ^=@#{`+;px=Gjt;+e
      zDAu!T?dt4CR?OeX@W{yMrfYTPQf9`y2<F;<th3_%r8&DC@YdB>x$3x1a3ABWADS}I
      zHSSgH1bFkA>mNyhStcr8jj!P;jPSy%4cD$K+##1^`GLrH8c5ch%isHDuPXXoJezCS
      z3nJf5{{_ePwbMOR>X*MMSrxCF&pDRHV)QFWCXAu*00r_Zu=*(36?QT`p;p*Mh@=V+
      zQ6Qtj!#oo<p~|PRM5y-h&~|zF2!(08q;QaeRU*|P3N@>#z>>+tD35A^4{}s&q`=20
      z)a`kNCn$L3K;Z-h*IQ61QK&d&306sCsRWzmbugGu$5~d!aK2XNh%@`s#H$n;-C+<{
      zO0k**=Ls?ahax`>id7K<-Wrpr2b33hqs$|4>>4>0o+3TdX=vrNfo`VMK6{2L6KkoG
      z-m_^eL%&GRr7?j11YWqV`@>#H;M_HD-hvetD=bl1s<2F9Kw-JUpu$Rp)e2dKm_kya
      zM<F92K1ky>tmB7~cU*g){yYy^C7A-Io*+|}?}#3P@iE<cNks8U8XsYZmlDi6?AD?D
      z|C~T<;na*BaCU@!zI6T2jXOPA&|_(rBk2tO$3PpFp2r%N66HAT<Auc#r<R}=0WSc_
      z4n0M^r$g_hp6SpRQD;xncR(6a@9Y)5^HKE9C(--z4!;$&AMDU2&dLsb74_8}`Woul
      z4t*_F$UBfX%AD6@h!t#L0jG2wh(t5$5^gVcnVSm5n3*dS<L2f<F=1{g6qUKPP|U>5
      zZCn%P_QKB?Z5!V!#`lZygJL``#uM6jw>I8G<Gq<4VUC)U1=8;q4;shK1L9E-kHgyI
      zi1sLQRpv3S-R9$5ljd=*DbpfTxy@t?(~K}V!gNxYYQp5vHf}!2HDT7dDzm}0+dRcJ
      zX*Rj0%%{n8Ce}(RB}6F#XEVK*@O&{!{6(hv67iof%IvyA<YkTQB@zpfS2R*45)YAA
      zHFAbXB1B%($XOyPL|!Lit{{+Ud%Yn@N|3hKn}Vzor0w;VAZrBa4td@dWUU~{5P3%s
      zB}ghn-W5bMr$gjDL3+ieCq&*CWKn@vaQ;U&M+6^oJ<9O~Y{4dMrMwN_VmtoCD6Vka
      z#xY?GaM*6ZZextIb|3Z_Cpc<->^06IZ(P8n@g2wPMeH|z=al^e2aLZsWUpX65+UOS
      z9Yy}E`Ej?J5IOGr|3+-XFZlT1G~_Eo=#p+3;8T1?%)saPf-5^1!`#J=4|e_s?yVA9
      SzK3<VmT%Wp-!HY*SN{Nw;Oa*J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uOs6#j0K$=oE9Ff;)ICJ+c)Sdt(jVgf25AZB5i01l|wnYm0l>FFMOx`PpM
      z#eKyEcgqJJd~|uRiV`2>&GI++6D)s$_}x1_aY$j6smeX)`}(YXPoMei@9Vz+*om)`
      zs1w*+@S^@1d(Q56{haNp{xKttc<23~XorsPom1htk&z@C1Uijj6gqDIm{Sf<sIngg
      zIdvfN@~#p{=T*)r+HOXb?7$BFK)@QS#J0Uce<lnZuP`XkI_!Jp(DuSpwi_vlCIPWs
      zU}+)nqY_OP{3TKXb-#Wikn*D9lnM@+q9m3uNYD139{oSiM@d{#EX50}CYC_+g2_e!
      zc|ob!yggqQSa$Y~Rh6gxAUwTb)nf3t?}gL!X)MM{!Y-DIB$k-R2klT*Gv39F`F!8_
      zc;7t#*iT-aw<9;4bczc$YXl(BmWzTwdAa$_d~wQmCDyUcS^c^kFLZ|&J=`ErKQb~}
      z<5tbMSzyhE?u9P<1_lOq+>Y6Ij)n8Ru;li$wT&O0no+rs*CB^;uH!l3e&*TIdrF{T
      z*w3pZ`go&@Z%<-?U6yYCJZ+b5UQ=@tcN42}(JsgM9^z0rWhch>63_Z>v1)%Gv8UXb
      zD!yMJ5h#`C91O7**N%*16JOK*6qcb~;z7>GF^K~dBN7KGCM6D0j7mIAF(L5?#R-Wq
      ziZSgvk-~EAdW_L$Y}@OWI6-wzsi{C>Qs3vzYe86+V802w6m-+#QL07T(drrP7e$^U
      z@mNK5sXn1?qk=Ygl4@C%LaI|#{n=2nd8(d2r`7XR^C~QN>vE=3SfR_A5lHHCBAZpX
      z0@4&@kjI)>hvRY_O1udcBEgYpWWuN%N`wMUI-}Abg2WuXnbr3VdYXud<7dy%ROdEO
      z=YKYZm1x)6b18J7J&6|<eFpI~B=OR1w_c$omPss^SRt`eqC;YpM5n}BiS-g2B@z<N
      z60H(xo#KNOwxE|^$e81)3G>}f+EaQ#SZ2ALvI9rsm~0#}!`F;@e3HV)*v0`2ryb5~
      z@7VubP8{Nvf(p4-;z?hzrT5OW-kdQT>yV?%>HLpf*Qci*>)1*?H{}w(uml>3l0<dj
      z3qW%XZXs^1!EMCp8oZR4V@%%;J(EUq7>wkl7|AO!a#fArYT9?!;4b2|HMpC2eGTp*
      z-dKY-VYR*o#;s?~Td|EDY-a-(OdqJLPs<zFk!`U0Guec-Gm~w!c4e|jYj-9qtv#7+
      zy3yLpGieQGe#E}2@dMiUA#FUYjYqWcVPky67?09;Jl(1z*IP$341ZjEWVFXg?QvRr
      zWR1sJ<MB98X`SQQWZ68MtsKu5OEFTR8p+X-W)~tAbtHdrq^C@zvWXO#NEb|`c}BXJ
      zsFc*D19g$Oly19$=d<<XUu3B-lm7wxSZ71bTsF)&nMBOIVwi&NC1zeV%tbQEn0d`G
      zm&nMNd7X^4nnb$l^@e7;G*k6@Q#0L~sd~MonI6qF#c|%&%qGn=$ILsLk(z0VnRhkQ
      zqM208yr-Eq&9uhM`<hvr;VZcEJ%^(XAM!lI{RHg74(z7B2iLF{e_{}~xNaLUB09Kl
      zx8krE;=-N45%DB9Zh%p7nJf1y#>Kao5Z7^3{LYR02ab!sxNdJ@xUP;7KQdYL?;bzy
      z$`GQTl0St=Z2bvW|1Cp*Wr$r;6$5;V&&UaUjxTs}g3(8*?Ra5VzN4(PQ1Lx!(p7vL
      L7JR=nR$u)CzT)y!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWkB)3Ug!cd^pf?!Z6(iTKSY~3gYk(O;(45)CE4C&BhrcP#n)&)@9
      z_XXV7;|D*weDEC3!5`r9H~14g{sQs2HxrB;JjV~Y_kExDd6#?Vy>EW~>&h<xHsYH!
      zIt12Ky=df=I;}=(ep%I=kx8@d@=p3eU4^di9e1MR6LuP%0t1E^g>G$R(rttXoQ59-
      zWoKLDRcekvzT%YKx~kdEtO``<2Lje)Gq&=oBX$_LUUgKUd))ULq4L7RsunpCT>@gg
      zz`|<aN3*0{_m{{CKp^Ku^^z0pFeOPW5J(n=3xxth%{nZ=3tJ{jprdfRfIQ<kGZi)0
      z5Lk5VrZqIC{UAJYos~8El<$Sp^hwoYA*t%Kbpi{FdAkaoR;F8+WNvO~YHFxbVeJ*?
      zq>5_cLAM?=1bWI*5IA0W&Yr86{F=nA0*QSgqgk#O*2ZtJ-bU+$y|2x$m5S%-U%j%h
      zo+svS!|>=(yT&@otd^I+$i2tfPrJ8t$|;AuaXD75xt<$7z#MA_4-0gT`xPe*-g^GV
      z4<s=xkanxet2jzxgFr?#LZ{|TJ0A7B1iG}Y0{$fKj?HR*#+dJ6GN0yZq{;U-H8)T-
      zYWLB#rh>>TsZe$CyN>0s2)z=zEGCqAhyoKyY@@&o65F*fKO?b&0>er?q6IgQc$5Oe
      z=|Gb?EY^Yc5Q?-LuQB0=4T%F3>Wb`x6x6IM!P66=@E8SWhFOnNi00|_xaO21i6<$r
      zXo(Zr6wtk-P4h(fvB`0C){{9b(OIW?E@o9h;Ob+Z;`K4NGD?jK^M_}BT0APOp-G!H
      z7FUHjDxXS<wYd7yLK;|3)Bm(~DN&7RIZGDHGJ)s$2w0g*_!+{iEzl{RGknLZMCOLi
      z=dcvLy4dG)=tFNB7jJkGagU_&(!YA42}>-JSS+zbVyQ%*#4?EiiRBV2B?=NriHt<I
      zL|&)3oWmVh!^bk|dd?p6WDly6o(z_mDu)%zr5=N+G1HP6B=BhtA7hYh8BV+G;=#%P
      zIhEMj*{TzAp2YpXWbNS1UqHq-qiTn%%Nh8OAvdhw0#@-T3697Gys#uv)Y8;Czzaa8
      zP0v#AZqs|H=iBs!)Y;zj?bF?9cJ_<e`BBWyPh$3EZGQda547nz&+;~X1@)C}`YP&$
      zHhnev^><+01Z!T4L7re84{*ku109LHyox)Eoz{?DOj;v$F=cJEi)m|<U6j^lyO>W|
      zTezmJt@ckCZISQS<OenRVND*_<OxIGX~?@s-ktB(krURG&G37*$A0Z$YmY<P<B0Jn
      z8joXKrS$~YF6%hgjHS3{tuiAytw>cJ$<>i&bfmhD<m*UJk(;s_T+>#>Ra$4bc3E>=
      zGuG2wv(~eWbS~K}DXRlz30%ncT*V8;1o0PH>dVA`#3)PbjFDFivYSXUMqV|DLnIX=
      zuNmYVk#vl_ZjcK^WQ@E)#Of!IZ+X3`k*r2qUT<k+g+^LlZ);?gM!MoS?`UMTMlvz-
      zu12IrvN7_WMoi>fjJ&Ur9?j{Fkq<Po(B>6f`hm^Sfe*PJ<p={dVF;TkZ^5_Nia#)l
      zYn;3(Oo%=X-gVe1#yEHPV3#<-u^V8wxQIz{8B^jr&fF{5D}Lk1{T=(opPabYFy7I@
      zh##3OVEgfLH=7V6-1(o5<hq~n$v<W2SBBUn*CgOGd`?W@3w+6y9gJb_n#T`z>3i<Y
      UBQ$*vnRHFx&g;Hk8P?Z-11s+D-T(jq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6`*Raj6h7ND$!(IBu)GQuDTG&fG$0~E3n=Abr7hC%FrdOV*`^E0rY0M(z5t;Q
      zHNF+Ww}=$A4%Xs0Fhl<U$3I}Vo$&|%0LQ;T{Lb#C1O{i^AMT#>-S3?H-E;3fzx{J_
      zoQT%a6+cx-v@E3;qQ{gIN;I8KC}}m?X8&6C?rbij7+O|8(ybh6?etTnM0GZ?U}))R
      zo0c~^)qJ*)OQ_oldNQp_6i%uMEu*AkYOj)0jBHLKxy{L~=&5MT$Z2}2NuuhOte!U%
      z-8i763#y<hi7KogB$}SeWedIFOeGK$;<*utLV6+7rRH|pssv4ws4B855?Rw2iA0dG
      zSA`DUC{4=}`RwT>5{Z+ldOWH0<t3VN_`Y)TJ=vUbaEcYQ{r0SG^dQEUaSgAM>CFI`
      zW>0Td47Ie{0}=)L@I~9(qsb)pkyN{tLfY7;Wu`a}LP$@~rp%^%y&_RfqL9m}dZI7Z
      zm+8u;1uew1IXYQ1hpls{nx-4+mU}3RCGxa(c9sQ~)?bDQrx^8%n^u=BWK2Lhsshn7
      z50`I!PuDRuVc;Z0b0V$jnz04Bmp2@csIn!SRQ=S5!@T$41g*j5CyNu`{du}*UbhC!
      ztJa{Phj2FLHEZY&@-S%Tm^FA8?Ga?07_bJ-VRQ5j^-&bd8b_*;yU3fk8Y5P}d4pGI
      zX3t%(iX_?+q8T((&|?riS!@)v4TgCQ#&$NwVC;l3F#zKU7}hw9CwXcFMjIQ~8#z%&
      zh-Pu3r*O&>7f|{EL8!0KI)m+u3fjkZKPwi5+W5>%4*s-_Tc=svA=ncatRaql#<eGl
      zf}UgkF!<jKI?DE#HO_XIgP&y^SH))yfHN$poAGPrm^sYKdO|dtl^sKI9c9+gWRcfP
      z<E}aS9A8Iq9F69fpkB;6DlvObP!1<*^>ds79_uu(u+kIYIi8c{1>7n}AvE`!S9!-T
      za;{+uN*(`YXmQk*7_Zt#&zc>Cm7fmL99I4s@8=gp{wN4H+GpN?H_D8G5Y^I5KMmdU
      z9^Fgnr#J4pd=4yVhM-x3W(%4ls8-NiL3M%_2wEg)i6F0_fS_tYVP4{s5G|($T*Ed^
      zS3B&+u}|sZ7A4#5?SPWg*mpr+v;77F<e@J^^f|3W)r=ku&!(a6f3`=wrC>@m(AeAu
      zH+y-*{hwSQX7|jU8q2Bsk8az@kB=5&D<1UfX(*VNeDM76DhLIjK$#zeUtQ+czz>)C
      z)8XUAAhwn-y#2@Zvi~?N`;Q~B|8vXY=7C>V=Ff+}pv<p_zo^WQz+Y14FQs{W4#?|)
      z<`uLOJ6MGcoV52r6`ruTMXTeLax@nA%4=hBpS&&>_si>JaUpMr#lt>%BSyd66dR+>
      zCGu7#KhES9ChuVKE}PtHlXrvM9<Juh9(hj;>GyI(j3f4Q#6gaT+YyKDh-Wbh`3S};
      zS-}{P6BvWCicG0eCXF*4=S&&Sl;up%bEZ7FKDmI=FFTn|!mg70Fb3q8Fb3sUkm;1y
      zk#vR=odwVzuDL~naS!m<A@xn*KhtLDtaOp0jkE*ty2x8LlH$F%$lEq@3W(oD-m#H>
      zAi_o71tQM_5H3Z%$H;s}N>T4KQqM>!>H|h1j8wUKK4fGmBLNrrh!Md^&_&KO5@aOg
      zA|EqS!$`G@Twr8+3?;ZYipx<!pJF_Ojz_ePR?~Xe8|X4^q`#<%ZlkOFXopmbroMu9
      zNzLf#9n>lvMN7}oZs{C4`gv-Xu2P3|llDlzqn-ajd!@h8%5PIkMFlc`X0JlHet6u@
      zC8Q|+5^(Q|U+IfGGWeB|8xnE|^c8&#OrlHl4MyBxYQ&#;IIxR9;qPq0iQR86=fqY{
      K#a^~q-~J0GHHG>B
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6y7IklG7wDVJJ|r<yLOxk`xgUTTm$!D@_r?#efRaWSUGfnW>W*Fy0Zo
      z-*4dEsyz7U<-xUB3m@>!<!|sOxcmj;x6e#!VBuPJt)4yKclO@r+vl?L+uv7zA);+`
      zB|#BE8!EP+o6*neIm;>OmXVuKX55~3+`8_Wj(vLCJUup^pbkNO%F*{sD>q>_ydy@#
      z@!gWK*SE`-At+NeN@iWR3dXGN>Yn2Y(k6o3x?RZ?JlC`<!-Bd-9lPP_ws%~&d_z*F
      zAhAWz!iwwovv8S@mz2g-R#4jZ>r;k1rZh=ffE)u`1_t<lC<_ZbYe0$ZwOlko$$6J`
      zg5){FsFn3*L(rmAw-wc>I<9wO-YcbW-m$$ZV&e7iBc|79>mU}W>3zCqv{t+WE0)XI
      zd_LR6AId2k)4FeYN6q@Y&k8{#sJrC5u3?v&g=T%qu_Ub)6sgy+Tc+(<qqj`16%-vC
      z&$orOR@@+H#e9v~p`lf4hqvC0QFjT#u`iI^bE>`YLsK(G$-`;Lk&<QFrnd*{Y#cl;
      zsAJSA8wtX;XKp<_Nkf7<8@_G(wx^qt?gXssx{bqRc$c7rXX0uwxLZ)FW;AN%S<|f5
      z97*@^tm6i=_aYK!HWNmUK!~OL3Uy+S_M~YM^+>uOThs6*?d2`fCGCUtkbDfbhP(41
      zW8{7ab{2R7*3vn{WSSOphKG4oy<Ru3&q+E0P&KRo9OZM>b<1o>Lfwg~U-gvNBTA@W
      zb2#KAgrbaJuUwyF_$Y){4bx^U>2XXN7W{(AGni~Nn~eZXaZOH54^UaH=DIpoo5lh&
      zj&J$b=U8erO-oqn3<8wYnvaq#wGy-{WCuG9u?o)eB<ocOFHL$51S{kLDa8t%MPMLU
      z!6zXDiq-d1kil{lcm{ygD)5|Ijm0YX0x~MSKrHyhG%ckb{<@f^Ug}BE%eTC%@OmZa
      z)tjzSKucOAX|bdwl9o#9m9$J!pQM$N)<{|>DJCf?sY_CZm-skM8)*<vZo;&UN!19B
      z>QmfsG}Ww*>#oT-B;zCMHYX`cU!>_X+Ke0RRZTpA!HNIb?C>g56~jZD3ZKrBjf1y;
      zJjsIUfMX`h>HCk~ndN6ht5Hf6op%8?EJksl1W<&q0hDaRDd4U)+zp&*!wZ4&G!Wa%
      z7hGA~9%XST%Hl|rUDg)29R7W6xF2|B8(syxrVS4OuWQ5WX*r(*@<yR~6KzHXTTs9`
      zRR=|)8F`Ji7CW?Dp%~M)6^e0fd!d-nb`*+I+gT`P;@U2Z32nIW6YXv}-^b1mu=6N8
      z?`P)&%6VKlAB1y0)5V#i+Mxo{ALfVxM;zmb6C6=g5vNqdV;H4&8e^xXV@zr#j491P
      zrb;W5$(d@Lsm_@k&h!LlYQQ(H`4|)0IgC<kV(iqO#+cNe#hB8bN2c?!KvF*^>IZQl
      z(|wIzDn`M-0;#Wo|B-e>XGh4qu9!TSSjfDgm<rbtGH)v8JeWktyrq~6U}VU=4MtlI
      zBGZa`hnaq6T2b#Zvx=Ek)O*YfFw+_4d7qi}%p^nR17;*MsgU`QnG`eWkokz2Zf3ed
      z<`Odt3)q6oKj3mi=o5@5(a?yt(^lGn@11mocF~_SOgGTL<FsG&qJeLs17ZXXe3Hh+
      z88mR04vLFt;Fl;bzN1NTl@5vD(Z2tn!{RS=?i(~3i6G;rY8Cz=#p4bxA?0B4+e)!b
      zKhx*`%HUT<VMsb~pfBkwaDwLOYmB(Tl!awK9N6XWVS^Ha*kfwBAhu&Z_8aB(?LXif
      B8qxp&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>(Im7=BLDG^a^g!lgjL77Ar6(58rp*y2K=h~0#+7*OFhxlM1I+#7H11?z?=
      z?)w7n3yvTB!i>rXXPCh+{pR=^{0WY~Kzz>0O^poB*qNU5KF@jAbKd*r*T1g+0$>Ne
      zjUytkx#$F$S@W!!DY<#GWM#(mcF37_y|U@su5)_YJv}lRN0UIORt$W*lo_+D{t>I{
      z243FU7dVBIC6F#ydAn?uvR1|POyBhcjIo+;(<x@MzGpkdL4np`*QxrZ;~zImfhEx*
      zAhruEEqZQHp~|AYM2biK0x2gbPg&lG&Piekee`Va=~4d!{oIKw7Bg}Dx{4u?SX9|4
      zAkSIWT)~{L3M@Ny+oY;9uIHav)JkeR?mGSqZJNuW5Hrh_GKnSnc)#ge^@w*cVxf>3
      zAMcyzAIm9N(`HcekJ{x$oizdwXv+tlXF2)#?0k93ElI2sh|H<mvK_xPe9Pemf$09x
      z(FU`6#LWV0Hgqpm**`EaxS_kR5wq?*6X(4!<@QsJg-=e+T6v$ZA&2rM+p+!o7-viG
      zae<~`w_wG=Yfs<$coGAwvKlx}P%w*uCvhindEts<hWIXl7JuPJHH3E)mhHK^_C16%
      z3)kwW_wwDQy@jjA;%wc1NFZ6V=8LAMJ+$z;?n_}A+9e)ff($LOk2$KC68kBsXc8kl
      zWFU!$NU0DK4^vX!CB}G2r^?wx3d@zVM@Y?@ba8~jv^6DhRCzF260aa?Rwz8G8C&8c
      zg;^E(F)i@Lo=`eLQQ{1Rs#TGgqTtT?5(Ns5dsbqaLcyx4s52?7P*G>uNsJn(FeQOF
      z1A7`cswC56))lHS`odL4VM{bIE;I18RHAfNod?CB%1}@7IvL!z)W;$5G(9o}SA%Ey
      zvP>g9dY*{6XrvN)A%&G_SJI0qbf7(si?@6jVSmK&%D?)cMoTP{ST3<bVx>ff#43qS
      ziM0~zB{oXLBoY#>5@{9Uatd3}%Wr1PcB~2gB_B1X)Wk6Kv^j2iw!$IVJfzz(fhayt
      z;Ztm5?f#6-4(=WMpVNwMoh({D=S<l9E4K9BzWWndJ;Fw8l}_h>48MN$9bg?xiE?x<
      z;f2M}OcW=IfER#715OgRHsChmbOT;W%!a0Ihw4SWvpe+8N6|Z<MDME_>{e61vjKMz
      zuWi8H#OoVy5AntZya}t-JJ4^GId8=_R<NA~oYQq65>3k+=*u-3nQSg*?8xStjh)$C
      z+}M@PNn>|5mu@!paE%*-*=yKaSH52<Kd6+4mGS|ld{8SN(#oS$9#6L_&rxGCOZSJB
      zMOIlHQx+$bMNV6s(iV?%mBwkVEr!W8VdS|c4U3+Nbx*ePG^ae3l_z)6)05O~HmY3X
      zM!;1X=eV{Q^IQ|gGhCC#bM$mRR!gZ%IqD*DA>DQZFXf`-UuLSWlK%;NnP*eTyr!9P
      zGO>_(T{A^hOUS&Tne$}gA@inYE|8HS^A;InHHmcH>TShzDW-1qj$*nMQ@46oF+GZD
      z3H`jMm`#dFgv|Sjk%~!%%m<1|Dkc>&A1bCzF|8r<kz$r+c?Fk#WOGFDG1rqESiny7
      zVHf4y_zrvU2L^GIGq)KBL<cACRvZ*V9JmuWB+hW$dKeWKIczUuTzroSaUGN5H%{8$
      zaajDxL3<O!kqAA0qNAu^LVnz}CPaoie;g6p`ZGTJCk^$LAv8(V6z~PUBq#6{zUImf
      eMn89@#|OLg1NT}9HQQr4T+Oy=(e@jyb>(lU?fZWK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SJQ!cd@KE0=I9m!^n_*n-;9BGMLNxEN4jnoQd%lbJf16ssa$
      z@O~G?`{lt0dGqq%TDb6qH<!P`pWyNrh~GJx)WE{Ee8@R_f9Knmv(KKL-~PV(D}e3z
      zCWV;5#wo8>n6c)pg6o$o*Dj3e?SMDw2Nf%HeDCyRaC&e!g%*J>O{|5ETNrh!;Ssy)
      z*MgEgSo6xREs!hQC8uJ!rafx~R_F%;#%SHQ<xLgLFmSx7eu1_j->Zg}7aq6Vnk~^P
      zAhrrDo(lZhEGY~25?LPg3S_-nWx@_dbWReB1QPk)d_GTKvo<sE!p4yy5X-L@kmqds
      zY}uNx3M@Hw+a#*feh{8mU}dyE=6m5ZZIYEpNLZEG3V}uXc%K#8jYxMeNV!}X8!ODu
      zGx@STY1Q2Ds8d;B+$jKo_EIefY_BwL&Q~UUS7HrQ92sP794~Z-ZaG{h5FZ>KX)<fX
      z+bD2nek(7{Ute!u-|BV!+iupGP>E@?8cew3RP(hDP0ZM(khPZsCD-wsa4+L*>NzgZ
      zGUS)-6j<cktxqM<r|!rn^-9xxr@L5omv8Mz+)c4!1xmb!oC+Tyu$6W%4`%F|67S=|
      zob8qC2Lmi>)vA!x%A)MeVhK7V9$*>_Ai;XX>04qS1$vfX4dV1G@el>Nlz5l|9ZHN+
      zpfBZUJd35u(Ibjv@$3k%G<p5XoWxN=)*K!1mUPLC9#te2<fImeJVv(VU;jno2|`tS
      zR^ki=zZ6PLQ1E;@Dw9;cex;=1O=hu7#hVsLG2Wb`GMwQ}Rm?zZF6q2MRl;L2n1RDb
      zpCvd`a~PXnMT(N^+Kdq@2IEtl6KG`up<S5>SnQ`rV;a6zo@M~15*<BDrpiaFDyiqP
      zSdI=QJ)cD<I#PJ?mbQ=HKZT1oy>lIwSR%1hVwuEpiB5?X5?vCjB-To-mq<vYCE6r%
      zD#V9bY(fveh*8J0$Mtu4)S6J=zoBQxaVv0?9)ZaL-EL{b@o5$xV+#urPCM+-p3(m~
      zd)T&_DLdrUh<bb3rk>k(ciPkgX~a?Kbp6LD>s5V@HM~lkgK!ZGmOzqPidqaT0Mbo*
      zhI(6*-cCK&q%Wq<R;F#I>O{S>L-fu^(L0|+?<<<@R+8V<q<2$a)ugYczP3rvQ(xbt
      zZ@^0R4)hym&YQ7?H`vMxoYVI}ES{6su&vl)6wG46*lre+#tyTXGIp9pY3wqKxumh1
      zYs%<1f5M&y`F=%yP?3ied03J6Yw`h2K1lLdu1$H48;4A~KddZBP8z1NIHoL4Xp5q@
      zIK@>Ok8^D`PIFBg7T1hXq9?oIX-au=l&7=GQ)R)EPj1q9l55JSa+OAnYpZdNYucFS
      znlYZCr}K$=O5Ms)H-QVe_G@^d7$^P`Q+=8EkJ!T$TO#BYjf@dVM98Zev56!j<TZ_)
      zCz6Vg*EMp1h>Vaoh!`sg<Qi6QDx_N>4Xd{lvRWYxtG5-BS4eB*=N*M?P)IsL-c^WH
      zNG3wwQ%FW3*$8=GA?*rji;xc#ve;w^F8#pfh~XoyCpol$9oUAQly~7<?8cwy#|@6#
      zB!)#Nr|o9!7Xuu&<2WGBaMlJmC@yl;UdEXC4&&k~4vF76XaB%q@fXMJ4GhI%^mtiE
      zQU7%Oxa&=b0(buTA+h;qeDZG^>MKKJlC2Z)89pZ_@CCl)$__>^cg5p_UHYDT{R(y4
      QV>(>jwq?QgE6w`)ALaY#{r~^~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SK*hM_>gRtn+L0&R+jh%G3Di%469a5135G?}(jCNp(1DON>L
      z@qQP@`{lt0dGqq%TDb6qH<!P`pWyNrh~GJx)WE{E>{>l%@9%v3cFvxi-~PV#D}c@T
      zCV_~+`YE@Tn=$9ioa2>D$I6ZB?SMP!`4uy;J@@pae>%S_ffj*oO{@jBlN+_G!4a$K
      z)%=pRyXKZ1OCVFWN_NF`3f8RYn}O#G7^8LHraP4@1itM~4GXm8J+~T|ZgAXmYL-N+
      zfY>CkXv+6$v!pE8OQd<!E0A_;l?lt=r*o3%5Qt?5v)L?t&05UB4H`#=KqR|XK%TR#
      zvt@I>DzNy}9h0a|dwy_YftAwwnCAx5w24<jA!b%)D+D_9@g6g<8j<c2NY3+bU~Ful
      zTxR-ZYtpPa!BM-iz`0uh0_~-m?^|wZzA#^z@EnO%tZEG}$94lJf7==HXnxn8CaXrk
      z^#Uuin^-mfhX#j+de;p1-KzJq?h+H{eK6(DQ_Y1RnwYUl0dHT9lpNc&gPjc2*MD4~
      zCGVB31P1wlw?CG|5Dm(FRJSzEm%4`+@9?#4iF+wlOkaujkyGI__?FV{=fR9sQ{n?W
      zn6un+{a}RGS~V*qwenJSrm+~E5)UyA29VfIfxabJdz79f_9?-l@Gu3slz4;!9ZHN+
      zpfBZUJdGvF(W8oF^6Uspn!Is!PU0vbbB+#JC0#P3#}r8gIjIFAkCSbBH-3?Ll2Fx}
      zl{iDeD+Ll06kLyv$|RL<TrH`1lW8nf@ume5j5lYi3};xWis@_3A)OUeC0t$xGqCyS
      zvjk^qHe>U<NKkSdi!lPlV0?;m0<BCSuqqQiFZ*fIn1-j7XBdE~gh$Vjsq)dPO6vJE
      zmZ4Kg7t`oMX96$Y*7)K3CvfSOcdo+{izSvwER|R$(Iv55qFZ96#A=DP5;2LSM4LoL
      zh4?UyKCst1Ms3#`*I(vQb3#o3Lr;(6rf(}f1mh#R-I9pn(=<NDMqWfPZL>rBNB`&a
      zVcVvrtblVP?Cqs}{dex}WI>OleYQ%c`#*-+pz3q1VkuFM!VX?o3~_1+Y7y`PkZjUZ
      z)Z3c$cIufXeGzrGGHtt5C+eLYqIW)u-uWbYU*2T5g8c3#y@&eBCcT&X>Lxu)eQlGz
      z4lC3<&~KDEZ@@-Yu!#kn({&&c&B*H*D7F~6LNR7+E)?U&mO?RMY%LU}v8_<d#EtD-
      z6UK1iC+ujDA5`RBikw&Ey^6eFlMiU}L6XNZZOU`hI8>nf!^(o>xKU6R$CSkhZBf(~
      zr?^Vv39hZiX|74b<eD-{^kg+WO({>d@^n^tsw{Z&$c-CMaZMOiuF|M+Z8gquO&arD
      zQ^vFObUs#3sYf~LA#fqnejP6qqr_igsxK4&5j&V-ONhLpkuf5%5P4N27Lj;}yrz-!
      zL=qwLx<)P#ks<O15n}~`OvCC;h4d(-VfB_mdKJ>JdRrk`g|vo#-ciUpg(O4dU4=-6
      zq(bC9g`^ac4w3g2(yoxU5cxnMiweAg%RjI=BKU~wNe(Sw3kI;2@-}>n?f4VJxXE!F
      z$6nFJX}baY#R!M(I1Y$2oV7j<ic1`|S1=~N!??JHL*jSN**|bt{KYYQ6ZuGl9<S&q
      z>X(imcfARb<IW#H#5VklPyS6qePswu(scqp!{@{VzQC7U*})j(u6TT~%inXamr%Do
      Qro+{3TNZ4;(yXul0WXN@k^lez
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S$9)a6#h=qB&SJQ!lgjLg2hy!2uTqUv2`L)KvEFGU_gc2<hH%#4)x}ySP@5@
      zM;vhW$p?9JcyKLT_`;jZ-{4Ph`3uDFoZQsN!nJ(JIeUNS+r!!W+?`+ly7CKvE%-Wx
      zn85mJuUVWm=gp$y*G$JMmi4yJoALwK3~k>#H5HsH?M<OeU_cX_q3smQb|XA&HT-5!
      zvvxMUx?>6C>Q>EmO{ZebnSmMlfq+qN`8K`jVkHc0Z+cXqr{sH$(DcG%rqi?}x&_20
      zfu+-d-<%_5(Ox1e0D-L6bSJG~T&E<lL?Dqb<nwvDnzNXI7q*WKfmr@_0eRN4&eY9?
      zhQP9uH_f3j;|JmKMOH@Z6TTPD&?f0dLc(<CTmnn<@h&s8+L3M%NZ0Fy!HJ2&;KBm4
      zuUk`Q(+Q8*Zp0Djtu=$d@@fl}1$WYSByJUmj|T<T#r8s{bi?UwJT2`V@33nJ<Bir1
      z4dyrT&isuOMn*=51~+%=ymE~>vlPs>?_}ql4^GZnwUBj}V>QS2?C=4`*)V)epsVE9
      ztrS@M+>LFLV3xAZc6zlL_GpAPci3lJ;x3A=87T2?a$I&Gu#|QW4`!{V67S`~yyewf
      z2lug}4bvs5o827CVj21*R2mE*@el?2me@&wo+WlE!J@!o#OYFEF9kZ3c!UCdDM#fj
      zmMcdG6v^b-qrB48wafDohY6YUbZ~@%YceBVH$JO^Jf;OAC&)JaYd=doPN-qcNjyox
      zuZ0q)DR@2|O_Ef<cDbhF)w5Wk;!O#p7;oNI8P4#gDrTUyS<-ofhJ?dnFaw)i_Xy55
      zZN{EcmQCAnEXLsHkx=m|h63G8Ahg`cfW@9CjcNE=d71&3N_6xLnJOQxs-&LHVkP>N
      z^jsGG=u6>+8{T}>{}f*OSD#z3#4?HH5-TKDO7u&tk{FO!BQYqEmq<vYC3+-sD#Qm_
      z+=2D{9Llz59nc@;5pz;~`-Ywy$IQT1dIToN^m9uij!&}q7{e??IAimL4wwJu+~Kp$
      zOj{u*M)bB<Y#6@z>rPknFdDa2Is^YP#tQ14V;!#&=MY@Nf+diomZBB|3xIToo}u2;
      zq4!eHb?8f}^C{D|U%f=V^M&Z0P0>4BqW4uDcB{!B=+IT1H68j|>VqBnI_mijeF&>n
      zALuvEoHt;YH`vGvoYnV0ES{5Bac8y5*j%Y5jAEslG`3W#DPwD;DvfQGYA$JP=bAEh
      zRDQ&0n|!|_Kd8tLD{@JZcWd$<P2NZH{#=jp95*H^bbnA;keoCQDT|7-II1m<Yl|vZ
      zX`JNRZ9Ks>ZJgqoF-&@@wLMwN)3owrD^F(@J-Os24WDbuc#5ku8eF@LCfBramTSgX
      zpr><*R!SM=C_~_UuJ<aQuf~bL$W&h@{sTstT~~x$(8zuwi3oW`BQ+w)2zgZ_=ZK^t
      z<TZ_)Cn6){bt1-U0=c%;8w$xNq;2)4Le?szZS|Hy)+wYr^7FPrh7^*HkarX!6_SaN
      zcNL;NXCvf2h4d;;PlUX$kfjxt;Ntgu95H;z^#q3&uoauJjq-MUgB|z-qqxo~o5XI>
      z&mp@Jd&C%L>;dc(r#WH+>=zeM7MCy~zU6$qf`j5Wj@RFDNc_p+dL5-$j2=JIQPf{F
      zKkn8eM3FoHwUOBP6E6LehWg47nPgi8e2UMA34D$(xbg*~z+Lg!u#4YuZ(X5fdsK&O
      N*>)}3eyLes{SDa~=d%C+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S$9)a7~LmnlG7w@(@TMZ1;L=S2uTqUv2~(QL{gB3!GH?4$!&Yf9qP?Zu_BH*
      zk2v7$lMnLd@Zegw@P#**zrmm2@)wBvoZQsF!nN#LJ?H!O+2451{qo!2mwyGY72l)~
      z6WBQ8HHvfQf?0I@s_9t8lHT@t(|+KZq3wGor-PH@lPPov3}|8_w4Gwfu7{IW-ERa{
      zYgfaoIhH`KW>sz1bjsGe8JM9T2pFZNZ_}G8mczjIW<~_M#(b|HnqGL+bQ+dKr-0Zj
      z&^r_Ojd@a*>?N`S5XgEBcghOJbxIOF0*QPfpU>0Pyu}2(uytez#PYWb$TOC8x@Ioc
      z1(uz-X%6*SKM0R4u`*hp@V#)BHc2-U5~e%v66n##yUoyQMY=^GU8@x)CJKxEWA-&`
      z+H5%CVcU&30^QX{5LjMyvApO``HsY`taO}RvAxh4yW#9Mf%y0&PnWD(p;*t_{ASk6
      z|KY;$@VX5nTdvnxaFrRe5zMvkM0>>tr{=6`$ga!Ls$+Y0_yFS!4jmQf81rjZ3haFD
      z#!HeY(4fZ4^s2MGp<#C1;Vs(|cTsfBK#6yg<FfyOrL=o^FlRNCcrOnYEU(r)xR3p;
      zn=VP6yvxxnmZ48VrNICa4^g0RiCq-vSz@;mEDCH!oGv9Ep+JWck5Zs7<*1a!a^>iN
      zBAGmUj3rH9y|f@PNyuEFgToYDlNqtx_?!yzxE6>UC)@O|{vz=Np}I9M@e~EW8cLj^
      z;Q4ekMN;kRrK*Zo%VLF!H!YB2yaiijILk^^%s^{%q_cv$gu`Yq1Dkj55u9t-j6JU`
      z8@A(EjKPm1q2f~v1v;5PXt`4Xo4r69)9|(O3<EHg=;&E8RX$o(Nj;avO7tn|`7HX;
      zm%@uTy!hz;Q+WBhdv3xK%OsXdtdLkK(J!$|VnAYz#5#$*L_#7h(It^nAwJCF4s7Jd
      zP_jMifc_*8n^Wq`H}upvY6iB_BQQCtpIaJne45247-A#BS(`6(sPsRl4xepi#tJzv
      zqPM+baOmc*J6+bJXxvum4E)CsE2wvl^(-aM5!l0qC6J_+q80-ifOMOlq2AS|cT>-`
      z>AlqXlxf?qUZURlLiEl{(L1k1@2lGER+B%_rmHw>+Vr*5*R|>Esps4D4Op%2fqvu6
      zc@RUaU=s^Cqw7E{o|9K_XQji~Qm!P7V!4tuww5a?V_Uf*jqT-1E@|xGnlg5lf5J$M
      ze7_<;sK^g1@|Ys;(d50FypQDlxh~~7ZcLQv{-ClTIcXeH7G-5|L|Yuw78S12IKj2k
      zc#><{ILS3*nDkU_d9swJ8Rf}Vo=z`$a>-2^KG&4-G*@ZVxpo>2u4&^8*Nm}9PiGU&
      zlrqXuhQPU8_Z7TQi4%W`slGz|M~pDLjtDugk^Mvx5%Q`=szj0z@|s4@5=lkK>l!&n
      zL`KLPM2yu0axJSj6_Qa%%jzwKtW`+M>TQLrS4d~%=N*M?P)IsL-c^WHNG3wwQ;7DQ
      zjga>h(ycgM5%PgTddqCVg&+7hV)%&baSknD8@6CO<sJAIJMkw*aE((oi9Mp9Lv|DP
      zic!wk1K1}{al{7LFV3SRE@DD_$N7302gUCkuYcf>_>05!8pdKVdi+>NQ9sc9xSNj<
      zMeh8~Mq<;?xcF}x>MKKJl5G<389pZ_@CCl)$`_0Rcg5p{UHG1RvxKJY5go2++p%Q(
      Im1ceY555oQ_W%F@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)du4hC_jZ1;L<Dgrtaw*m|Q-MAB9W1p_LaCa3Kw=Tc8jiWTvS
      z_bXoT?voGl=H<Z|9DL!;@i+Jr9DjlM?VXbv7@V;)-FvNXf9tZ>+Gpjrzc2p^U^~7^
      zAttbC#%mPk%muUP_*K)fiY2`r@TUF1HACC?PEH3WOOq*d2=r@WBeb1j$*zZot-9X`
      zs@9%{S92_ZT+OQ5uIZGmc{4CWKM*iVP2Z+BQ!Iyp?ad4cbdC64Jv6=WsOdB;iB18r
      zRbbgn;5X(;S+bYN3P2$1HQXsH7}Y6B^av#Kg?v6wSMwGV@WR%SArQ;oE+EfX*6EtL
      zSQl7+;-)#&XZ;{Nw#3S4ea!d5S=uDsNJyCOyi1@*AMZ6os}<=Mfpo1_7#k}r@{ifq
      ztZB31ghy;Q;s|tC8$n=s)y49nJLNkPw+eKOmL?x(VQepSMs7I1O(0&H9BngfMdOv$
      z<+t+6{2wd~4zAxgwC#GGcdjyN)`IEwo@l@H#MGQs4Ow_OTy<>E4j*8g%>zf7%!psJ
      zQeg3OH}*-QK!Y0l=~ZXhq(K(lVWVw{yC}M5pv1e$aoK{vQrbN{n6ny6yq5<HmRD;Y
      z+{cpEO_!ujwsSa(<>-}AX)u7qLlo#+Vh;s+me{KVivo)gr%Q=PDA1wAqZH^%IVxqb
      zLOB{&B$H>4@k-NIFD*zMCS)$q!4V3s$&7g2_?!yD>Qf+coNUv-`isO9gzDD3#8VXf
      zYAA7vg6GrG6iKzKm#QjWEsK>Z-n2l9@fK{A;Vf^eVg_29Bb_&>OE@eBGqBlqk02v5
      z_Pnxe*p6c{2EUJlicc{V=wt$+<xT}G_5x{4!`I3)48T;Pqi4xf`Dj%o^;{OK(5s~9
      zv*<%_3NPO9=%fCp@bYziZo(4FC00nRlvpLvC$U<hUt+DqdWpP5LLx2EC6QAhKFs0{
      zY~uG&vOQ~Df0akfDfRIidT<;y16%14m>ky6EsZ!n&EgXbun^&_%@;aQ`k#Y`&o(n-
      zg&Y~t+g`bO;O4J8UDnfR)K=;A|Hm9FsCSMHyh@x?u!jXpAW1DnEd~|<={7w>y{k>{
      zrk-olmr>_arfr{kiF)S?(L0->ceX_DtK00>kl){?t2k@h^mWwNx9J<G=iBs+Sflzt
      zzj5Zg83Vk*7GB_tz6WCQoV<cND;>tRawTCD%ax?Dy<ABdJIWPl>?~JuNn;n+l(D<~
      z6NXyk`xW^?MSfV3M-+LVChyne10)~Jbt%trW2{W~6Uu_*q;W`Dl$FJ#wm7CODqN*;
      zf@`PoB-gZYl555=>8aZCWGPQG%9E`;onG?flAAPqt|{YbuF|M;?KB!()5aOD8Do*2
      z&L)~EWt5`~fpfX;D|n$2C;k#seTDds7-DuE5prH52Z<yi<W-GSi6kTBHI1All8TVm
      zHFA!KjF2~o7;6aRT2^l=B%_d))msW#r;wJ_+X~sBkj}`@I||vTkaUE+s}QM>OoY6r
      z5bZe|A@3`sTXDJ~<O78)E3*U_e&FMX;UlicIkbQs*oK{yci~&?#-A9%HBQ+i_K7|Y
      z*)7;FhB;%$aX_5nhz)R1oJUDq#F+Sw^Yt<&#P1xhf8db#i^KIAMq)8~{8&d(ztQ}-
      zn~xAh?)=$CV$09C_-`8OD??<GZ4&SqJ|`yd1-|6U7mNaT#bd)Re9ygkg{JMK4%f8p
      LShD>}v%dZZD_rRp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6ka=Nn%y)l;ZUGpD}{0^m!yb@*rGx&SV@X-xEN4jCpjbsl5^_m30M)Y
      zc)#KW@6Is#AP>%{JUG)Cd@yg0zrmm2_zT2u?VN<r!5JU2_g>#w>sxEDwf4&I|IGhN
      zMBC__D1`)VC_2^D8Ffyj%5GkjtyEfXQ_gAEt0>=gos&g%a%v(<ZG!r=V%4|HskA-o
      zAF^iMs+YI+R-HoG5|k)ddAp*@rZuBH<-49BBVFfKPBCTrp6wJz1a*zM&aAH-|EMZg
      zElC}ML{iY=qUTm;pwhIL6vwA6g5plKlC!)?9h0O*;27L8ILN=@BzDL%79w%{hKeC5
      z)>K(1NS?Q>vjsIbD`?4yI|emday|c8Q>#<U8Q1YkuxYOZhlr}oQ~)f}pU0JNH9X!0
      zCxt>XlS$6a;W7p5w5pc<!*->qakn56)Sa(-p5^4{%(+U=ElXN0DD>O6$d&E*<*@}H
      z*9r<xO+40O*6_Ch^;p}yVsdzRWb17r!pS3O<OJdNoM^rDf!rA@@1qiOG+(wI+kX&V
      zHVz#X)Hdc8tSF%xiG_ueG>kNl*RBnWyOolo>|#mMJ%TzIN>`QbNV*qUXE9T|YJ0w<
      z`vQxx+BH>BF00&MS5aOdKM<Id_TV#`VHDM73RC$dWqVEsQubh+mQatRhY=t<m$Vlr
      z_ypfLiqmj6DJY^{NqPiF&?ryRqc{fSX_zrFlTOEJDU%|%;R$9s1ieX1<v@S9PU`te
      z60#EBW9KA24&%L+LdA|lGh^94G@rn6sy1%}eTrkM&4cL_n@`rRbEG+($Afc0yJz$?
      zPSb9=%z>2Rw2T8eBPfbMICYZB5OgpeLU2$igy31Vt6-l&aWb_Z1{^iO;rPfr@`lG2
      zW$$Vh20r>F!`cJdGx8|u9GY_6vOP-`N-gj+C{e&>Dz2-fXKz6qqbhQg&&6pu_3-KW
      zIQ3FblwMr$l!C5`(#yAXPaT%DMAA}8%OowA)GKL)q&`WjB(0IOPEtftOj4Jm1iSb!
      zP8(?muPlwbP3yORSmk)e7<xV(Ri4dq0Je|nCXP{<K8@2Sv>Dm;OE&s`DE&X@8y-Vv
      z(eg2wf)}%F<ItVoOw80nZ_?&)`u<~FCi(TyYFs6ZVY>(ki%>hHD5MY}0TgSIJ0W+q
      z$lZ_=E%IW>cmS~N<(}0$T1M|Eir!HYy{~AoTM7NX7P%ktsup<w@|qTT5c0Yfc|EP<
      zI)FEfm^aa8++YhXa9-boLg9qGL0hwJM#{`ajBRGN-Pmqsqs9(1D~+9IHqmbE!WuP3
      z%<Htfq5Kdl?_uRJR-RzxeOh@+EANMLCeg*rVdH=a`h#p?vc(a$IK~!PZE-?dJc(5r
      zC$V-I3Tw>BW9>97Fclk2HZz@VGF6z#UC8vbW}4MZRn2r>GtGhNLZlv2KNIx>xR~g^
      zK`&&(z+XbBuK@p<b|cQV0J)@*43J2GysD8R-z7j^)5rxN(Exc}BNu_l0C@w5u@XR{
      zVf7{>{fsoM-eP2ck%raVj0`f;5%9dj$a+R%0rD;*l9A2;d5@7!M&beTJ|o?XbOp!<
      zj4U>hg3CXlIYRUi*5jCBMB8aA?Z9~_eMh_KFB+kn7}4!CA$n<2Y@&T)6tj7nro<@>
      zW{>uZOOzH@C?me7X)#X+#2=W*f6_tmHwN-e8ViNM__6lF|DJf<^(LegcKo4IWYaHn
      z<yIK{$|x|2*A?h9`W%>`FX&6G=wM1>XFU|`@{ic-SE$<_(eCQDZB5&+wAR=E0#v;b
      A^#A|>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6yB$4n$sjLVJJ|rl|s1{Xj4Q)Y*E{WR-|c#a5135X)+`OlbJf1fc1{x
      z{eA=QR^h=19~2*4uogbpH<!P`pWyNrh~GY$#K6L}e8@RxfAj78IXl1oeeD+_+Dexr
      z)Ffy_!Koxqs?#cIyE$c>$w|HKaZb2iN%@xR94q9HO^imUSx}cIR(#7&PFiJuzgc!G
      zUd|k?IC<L?l*pSotEB9VIjcP7yPhCpvT9p7g=EI}ET=FesBO%3%D!^^L&~n0l3E3c
      z0YQrko?Dp(rLHe2j!#<z#hprN#`MN@Op+GCM(>v1Uj7XZV23<wA`-{1Q4B%RI%S<8
      zdB!wP<<(qS(2}FK4XRvpJ^yf>71MIsb^Ic9T1vqotV**b0E_hJl=97*$2;I8pHHUK
      z$+<ZslQ&POitQh;N_EDaf=Ez%uHt#7lbg%Tm1bO9(rQ6Xzg|MEEXTLUZuz)YP-tTG
      zkp{JzzYXZe+IorugM&l;H;D)*hoDgtgxhhnG3n`<lV;9GC**L>wj9g9A6_>09TL<$
      z=H|@^p&N-?8z*THjYwJfg)60^qpVy}(p`cgDa)=X%aL?9?4_*I!o21AlI{`InzC}1
      z%IlB!YEgN4<udm^%`LKk3otAwma@vqFDlD(%vMzC{x~h64oMFpCirwEjp~zKk(5HT
      za3pD5A99i&(%+OP>0x~;DoK<2R90+lDo#t;8tNDtS1`68hY1s`17M{W=Ant~Llf4F
      zq(>PlF3d|h0%*FBmh>17b_I@}z_-bTtH|IupiBkro53Na5KW#DKAd3B3s+~@b1_cK
      z*z-wT(UDRQoLjbUDlVRlD>~xzAPmn_u;`#Bpl~#(-)!*Jnz2p(ipLZk+0es*Sp{hO
      zs2Q~VejwkwWl5)N00J#?DV{>Rz~FFIIj<1v(^bUpN8rA0%d=H4h@VR@>G?WCBk=no
      z2k!K6K1CaG=Q*pF;<TJP_;fx_ozxMbS8jP%!4-?pYd2k`DlBP<q@|LUNm?$cQ_>1a
      zU6NKwS|e$lq_Cu@q&7(jcJWD^Hc}s++$1i`lpX{J6sp40g@@H4<ykBTV9T(+(NPM~
      zmvQ=>HlrJU(ZVC>oBW@{4lg5CFnx@v;Q1`u*mwH}6wT-fIBsz`UH>sV2ly$`YNQgv
      z<Xwb<g{cKn1X2^B02FPIW02b#<aWr326-`LJPqh}@}<^0u9)7@6uqM*dSB6?w-WrW
      z2DuyZss_0S@|p&@7xKCWc|EP<KEQ4WF>j*H$Y2W+IHU8Rrcgp&r~YiSk<4Vn#@0->
      z#n_g~MvU#5tTc9HvWXUBC)S8Dl=+Ev)yNMpd4$PhOy14p2~FOk$$LRgC)(I@$e7N+
      z{65ymu*N~wILsPZt#MRqJdRZw$FQ~<3TxEJVT~CkEEQ^&EVgutEtS}k%a)#GOJ#6d
      zj0)C>aR#e2=CHOJ&tQ!j&tZ)jFTm2-a5bcEHq;H^T%!Fty_^jJe-)v=4*Ux3LY&P3
      z@`gszK*9m?rbY^!OMtwkk+VP|0rIv+&H<4D@(vJVC4fXt>s>~=8L4T#$4Cz&HLdp<
      z>1Cufu=4>U>luj#$cKzbMq&Z-5hF21;sNq8Bkhc|1;_<P7H3d`i$CIWG|{J6k6`K%
      zZKHnLj`I$>OgrgM8loE*-Yv9SbYgaIq6smK(LF_b#BmI6kM@f57~2;pExw~EagC<M
      z?-<#C&_3}OCiV>)YifeU&$Ji*E5+lkUP4M@$G<CuH~mas{2K<pG741URRVoQUjq{~
      jPv2n04W<F?%tOO2{(!xjLRI&mc30JHuIqlQS(p9+?{Eok
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Tay!25dLPfNzQJvOBfbd)&;?!um~Fv5pmZG>;;iz7Z_Lws4z)}>_9TJPG-PG
      z5mdb2Me%;C@<HE3AFQGZUwE_p4gLhnUm$)xnP8-_%7>iO{hjWw`}FDQ{QB3GUjS^v
      z*GY6}SW|U^+zIoPnX9>Fvu5S;;kL^;?s|38w_WFGwRUvENTO52U}zZlb}g5;8~#44
      z;RasW+7URFnx!FAvC4MctQppv>6yOkY0&dcZqupe4BxYz>WGG(G1qDMrsL0;wZKy7
      z(x9!^u(0a6!5mF)_$#C}KttLI>LtsY3{z5Apdp?e&StZunzNXI<F}4<4ISA#HK@~;
      zb+Tg4H#96da?2bVv##eKykV6J^@8j8v-C;SBOz|q=jsF&gvaBiZ?z)b#vqkSu29I$
      z&olRmb=(YU{(ie2S!n1j2cBm+<#}ViUUF*+w`+*)@l966cKq7dO{aJ8bi&xv=GO|v
      z`wXmJnO)Bt^S5z$WJ9~gJj%?LMPQzNN7`>YT{>ZveO6qJmTR_S`wub3+MyW@onvmr
      zN`h6--26Za!y1y~Zk;dTDr}^2K5!Ze_pmMn)AKFL_iE@WT>IWDyPl}`@kI`~r$oG;
      zRx_3p!Vi$hxb{uSthil##?dqup-(}wAiu&R6v(Zxg951)#u-g`6($LhQsGewBvg2e
      zXTl~_`7{;_)s$G7JY?NslU7M#ABF8D66~i?Fl`07?xEn?Wragx9q=U%i;>*!aSDdz
      zD?CYII-qcj!j!}<Q5d(%60MTP5{Y)4_hB^4_UJmxvNEFA)K0JhyuleB)F?6on{gbu
      zj%gE|lL|2jiu^1n)@l@e7K?c_e9EWD$5gC(N!XueDCQG{${8Lpr|9TeYD_HDB)jL*
      zSc*Q8&Zp6jz9e3_sq3RYNaDi3-n$7aEK*pkutZ_0LchW?g+Ybo3M&<|3UP&Qg&u{B
      zg!mwhyRe2IMBa9+sqnMhZ<gfi*Tcy%V|upe5ttYa+pZfie3HgT7-B*ES(}|Yl>eWT
      zhwYoHT0Un+)Z<Im4&A!TyNz%hP1=&q;C~FVVd;0Q;#FcCg9})&I1<#7)H=Wdpu0^^
      zQSWKfd#PvI^o7*f)Aa3^h75PMO1Se;!kteN?#tTz253Lnrc0dVZTbr8E8Fx{)U$2+
      zY7EFbkT=Gh*J6k_SjP*T4)1}ESVmpN-NjCQgHep@Iir}+HyOpGzS$@$eTz}dB=oIZ
      zllnH}Cyca=9~9$<#dy0IkBRX_XuLBt-bLfxnI2(|=>>!I)8awnguYii4DmP+dK?Tr
      zid>a`glm`n1lMl;DA$y3lBwKcvV^HBOtvtc6sEc`xwK8_PjOA^4X#QLxOVBMxpwRG
      zTvPfpWI7vfrj!z*6oGS@-m7@N7$g27Q+<i}j~HQgoe}bKi0md3kC0bFq)a3cA+LtW
      zSt7{@c`ZcF5m6EHIuU(<K&IvOh9D_HT3&AovO<uS*IR<D5~M5Qd0UXxf^<j7JAx=d
      zQW5g5AR%))Lf#XkS8RGB<b6RF8Z5!Z%WRGge8}}Mrx&mp8?c4)R(y+X_yZ%j&T*T-
      zgx1etyAC_GQO?>a?9z^L)Oy&hT|i#Dgo5@R$LtkMYrk>I{*JxcpB%E+G1k#R#!F!o
      z`IF|y-E2bSxbuG-@pV7r<A2hSuMCk(x@mw<@fk4<pW_Rz>|hLY7dt-K#UHpguh8^8
      Q5Qb~|cHZ#)GPL^YZ%1h5T>t<8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6y7IklG7wDVJJ|rl|s1{NK!;ZY(Z&(LP?4+1q`S#O-_@6$xNNh6eA*D
      z@P5S$-hI&rAH6)d7Hi>yk1l_MKf&cM5WjOW69Nm@@*(G({mr-c`OZ0e@BIGHjbDjq
      zJAIR&2%}9^+s~gj7LB~+lnqPd3u-!S&pU42@Jz=(TU|UmHIbk$MgxlId#05ym<{i^
      zXgI!G78AZ*u>_+`MU>6DVd-MQa1GCK8EJ)9Y{RbRb<Z{J>KLP*Nylz@hV7j+EMIWy
      zX2f!gmR4QIUjU`;&nb;h+Zd&7zdk42gGv*pC5SP+ZFpGzMst{9F9;~Hy^x|YO13E*
      z81aijT&Nh$2BT$X?kTEKb6oFKo0U>_(XqW6eB$+B5i{xwbpT7$=lzB!!X59!CY4IQ
      zSj;z@I7~&%8@}bun)Np0en!Nox9q#Fu**%oS)X$(PHP!Oe)|@8W!j!KdDqAFjG|K$
      zk9W9*`)$H|tZyGNH#$0&y~Bi@GDPD}Ah+*K=b?|zofl;fFTuylmT8;bUhJ}Y<Rqi6
      zNv9$bgxAR2{cxN{;V>;Kj$;eF+5?Od)559=)8_P`GU`Ut^*BAG3_OQ{FAukjilRND
      zB1jj}<TQ?ZofZwlwYzaId(*Ux`ZzrXE!c(Agj(Q&_Nzsm(?JNF#yfL5)LMZxtv=Q`
      z71W|3L(QaVxeSGCi%(~(zHm7mhmP5-fvbo1S$rr$tPQm|b$s8V>zdf<36Lfn!>Tl)
      z{4~TCvogh{%ac-i+j^Q&cfmJoRDq<PQ`C9KZ<^R@PEkXvBERJhIlemcJRFO;8OO5B
      z@&&22mZlX_>v`lb&gP0{wkld%T1c~5r%^MFYRwC!+e)rbau*n-in!&rEL2<=B-HJN
      zoKVl=ZB7V1i()AXF%*h?4(TRsyE)XM^!YTcq&}(ng*5e3UxHq|tC)hkO3=%9<WCFc
      zw2aeoPAfRA<kZh;6{i7CYdEdrw1HEMQ<75;r;Oa<!!&KC5nMn4xiX`wf7Y0jT}D$K
      z>ZIYC(hk7*xJu(BMd{NteL`E2A70Hw=8qKqXNN;Mq^iP0ZwhK=#paQFS4~n^ZSSBd
      z<qZ5s!_3M0p|v<l6zz5iE-XfISP57W!Ua&W!%o5O>9BiYXFBYquu&cG?U$*oW~7ap
      z@hED>lc;%Bhu>=O2RiIQ*lRlMA=v9W>|xj&I_!<KTD}9~Mxl8NZN&+;;Q$xaIVcj%
      z@SBt^b!mCM6w|irrMR|3FD0~{dWmbh^in3S?Z%kU#`K?QPe^`LlJ`mSq$D4Z<S9iy
      ztjI?|E@paU<fwL3NBCpXLzf;Wq{k`gQBodfl*dyTxpo#~w`O2WYGsTmO(0S=jAY74
      z7uu2P?MM!|aqSt539S{Wfpxd$V@zrnF{ZR8B3+8LBn`?yg8(jPdT-K|QWW@0kopSn
      zpJ)$sb_K{)g%p9r0_0VNROML$<TZs{0+I-j*A;RZ2oI1qfM}}$WJ0euB{C?H(CaOU
      z3`r#PdRrpH66p@&yd#l~5=jQgyAt6NNd?Gz5=luU9U$*Zq*o$60rG)Fmg=~IYd<16
      zBJ>f))97SGJ19##vED`B(Qf*S#^@G0c$^Nfel+kcG{wfzzGvt#JBQ}&(h+tQz56;9
      z+4nTVZqQNo2O9UEbd3FtrhSVhBN0UWSnVSJKT+JRB&0lM{H0QC%P(~OwhUQi6u6{Y
      r1p16V2gc|N`Vu2Dm~xmU4-a<j2h6P_w0uvf?OMKFZQrjH>+633_y-2}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXz#x6yB3G$!U_7Fx(0jC=@8=(i9O9T2Lq#D@nNw7XvCxlOY*MCN-IWRS^}u
      z-`YYcRV){)fKOf?T#L2v2e^EnH-Cc5Um$+_%p?XDuI0m=v-daO-upYZ{oCL7ekG!H
      zG#w(JLLFJF5<jJ%(c}4ITF)Etgq-@Vlf_a&x6Pt;JZBv5PlTvJp;k$(*k(SSFw6D<
      zqg<?%(#H0RmB||l#WF_PEa-X77}86+T`Vc2CfwY*m5pn5$+WUP3N`f=t+K6K_F+9=
      zF$6U#q;x4XGg~TFhCr#s3yR{`8ik@(r7&oec1cZwW*|rVn)Y`7y1OvLA2OiCva1wT
      zp>U0|Tp@ARFivOm;j%)rjy+aXIae&%M{2By^pi!)&LJjP@Qi?77%BjmA%E}CZKGQ8
      z2^7g>;>l!uco>Vx7$@~g-acp+YK%o-<Z_z}o6BvwLe1$)sbpB`VQsiDSj-DrqELf#
      z*O|bsnU<aJd*t^rh5Y>qtuC-yxkI5v%i3zI?dtCCdDvZx!f7l3`vd8-kJWF$-oaBw
      z+QzAf-gMryOnWQptn54tF@4315h9#S?9oFM)Q$ah?l>b5Jnmc<^d$BO_6=uJ&{O>H
      zu5-<q#0dXsmpcmo7W>bzKjBPO|8GWdX1eTNH`A!|eIqHfHA=H+wxH*r${Fbpw4IGn
      z7(3V)gRzT^OE8{i<1&mF*cgYAVB>BFCmM*-98R>4(@#R^xS#`UPdlT|9YF`#p2Cv8
      z6@<kHv9xK%Uv%*i7JiiNNi6t=pqHxlH9@bq{BdVY&<VD0BKE4F!76@RP=;+(bw&l9
      zWc!lyoioMCa#5Pg%1-gNNM)#v%6Z&-R~@1xVlhMN0uObEc;loVR)^>2df0eDHb;*j
      zatz;1R&$0CsSN9sYkm!vNpfyGS6LZXeVtiSXO;CPSCwj+!HVCC(mYoDwnDybNkQ*o
      z-k0P*7o*fdvqSX$BhSpcWg+_Tq1)ubf@TStBWSLmd4gI5%@@=vXtAKBf|d&k2nq{o
      z5)|VSSEIC&I`IM%rezGszHm?<<o=_|-gQ_nne2ODuvcE{F!|~0D1Ak%ak1^3iFeSM
      z_@BKGk0X*bY;-N}1<hUA`S>>!)?`E6WwM;s|7fLM{F-P9mf}Yvo`DSuP!L`So{z8r
      z6t43l@SE!VX85r>e<pmq5X83d1(!3flbmr#a>kL!d465o0`Obw{Dtrr*ZFPmm)801
      z@R!&5D`)|q1M>Qzc@?e33f5o&XXQG`=Z}f|v^LeC#<f&HU8kjj>Uu2|Qa5NRp>EVt
      zv7ovMV@U1Mex@x|^0Q3d#^gRG?_~0BN$!{AJs>AzO`O@U?$wZfKSyXBafl<1a70Q*
      z9Fq|*V-)IfjE$;}F|4LBMpOftveir`XF6TWRH$Vtf*Vv{#TZh{7=>EF*r=Yx7*>Zd
      zM$|Wu>0H2-be<Ev1K>ie`98gu@&o?>Qa=Lz6K#Rc1`qjIB1s?t5BWqQSze2Wd@7N1
      zKtdk!nM5uC5gzh65Oo27ST*VkMiw$sjT&L3jge~9C?oBRG<tc)7+Jwc*h4NcA{dEy
      z$Yn+%j6^+ToRMZmnmptRBQrH@!NiZa96p-FcoZFuXg#f^4X`)TG;N|ksfQk*iw9|^
      z(t;+wigqi#=-~s@ube;&FVP<5B0BgLN-B3~K)FYImEY06|DgTKUufMAsL$s^#xG?R
      z!u7-Bb}u2tF)P3WtA3$t|H|N3MqWtNCD0UI2d2;sx``1tn7S}C4+l2!17>##ZtNjh
      O&W&xT#om&vZ~g%zlVK$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dTXPge6#hE5?IfG93?T#vvasC3B?%%TBzPfQjAVnbTwG9LvO8o4c4y;e77X6F
      z3W}&NN|j}mFB7GZvJgvDO5ok{H(2uvEPsLcb?<C4P*~-I`_Mh-JD2{>Io)S}`}@v4
      z0BiAS1T_N7N1bxdG4q7klP_k>ywx+Lw?XG<u~aZ!yXYLw*@p**Bd8PT)P`l(&i4%2
      z<L(}7yjU(}tSx0Ho3{jFSu0}~%zVlkGfSphED0DxmDr{;+LLliwlmr%&@xbT#$D5K
      z_nY~$CDAA#x&>yAmWt&unoRjiM5$UW5OvCh5v#OabCQ@L(3n`ANc46m5(&l|v&h16
      zt7=1_L93Sv$di_JJZnyj3(Pw7STf_eV#z%)W!0?ZWYKYR^l2yrAN6KotUzFfR&O<3
      zt9sgeCccfocs3hPCX?|A{+LYGI%<~l?q0hvW%-0aQ!cluuxUJQ#!m^fX3C|K<zyyO
      z6NQmtUSbgs^u3$@<XKkEcHI2HBL+(ZY6pk+gj}mEmJ75miC2o!+uOHh`kOV#FbUR&
      z^xF=Fi?D0tn3Zwa5!s)~+m7u%%lIq0_6yVv6th+Y>`Ls>21@j@mWrnLqwn3<>phBb
      zi6^z<XMggt?|m0mJVkaII_rB^eeYIS_q2Ap;ZL6Ny>G&bXSCB*tzb>4=6S(Mn*`?i
      z-ffM3=1*R!(h1c4I_7QPyY>*nMhH9`#VoW*JkMrSz3!9y7A*(dDR1Sy3R5PuU7G|<
      zDZi*qrU?>yi3NLv7ttZ@7|@9;7Q<1@RxDoTjq<%OHBn~AG*3&gzlQI9>wCXe30CmE
      z+L(n^S?Z*}kYKZDe8Kmw2W6PN$O22eqVE!oFG(Eadr_xMvi#R1UJVXaC1ooZjW(}q
      zka5@_R)H1uB#sEoR-$UNr>ddw8$4ZNM5}0DDgReGctw@flvsLZ6m~hPUB1@Q7;{>s
      zDw2z$9c}9CSQK+qZSn&1by{RyNw?DfUo;Em;Z!MH*L7kZfl5Ugi=qQ<5tMip9&_g-
      za38wcm8T#vOJcS}yTlxc4vD!Eoe~Qr7E3IZsF!GxXpxAiBhE*$0$r@zknLE*dP40r
      zN7N)V^c3B1mTV;lU_-xtVoj*U2T@$aDn2teXY*Bd4gJR{%%|EsYPp=B!Fz6B(e?Nj
      z-IUU!dAqIXbpFdw?^bUci<n9+{}N`fVD)IA6rofD7645lxtVfHNN%MZ3&}Gn^J&qy
      zLtSpYv!!}xL-o#<=zVU;ZyxPCL-GR33qx|8^5T%3pu99BFT*_52ga=>=apE+3|2FN
      zlR6L7)W+mptV!1yJ*jlPu{M=%FxI8g5o3KSEsYJSbgaSH$Ted0rGCKXs_}Em_yuJ=
      zpp3UE;~m;~P#f>0aWdATBG($bQVhRad8CxbKIL&hd8D<+A?@)RS7{vP+Gv<un~V(C
      zX2W8n(f=)yU0<PeTu~}8bTQU?7jL9%iI0<NnfNViCeOM6IiZmxk@^5RsgY5YOMtwo
      z5t~RPKqfR&Bq9Uk6cJ+{fmqe+Erl#lNY(3Yg~Sz7^?FAk357HUao$zPGKDk+$a@Nr
      z3TY0I(+X);NHjpsD5O;(Edg>?Av04f!MX2wIcji$>p@N#U>(+AJ-;`=!$$mxK0M&S
      zZ@@Ou!70BIJ48RH`!EK@5svf{c8c>H;-4cau3=c*!7lMTNB1AtE&k%Pet?0R8b*9y
      zp8{S#KJLmTL=SgCynf|RxHL^ey)pzY(TV{+#ARXvAK?mD-e7cdS9WaJxtrW8DO7y-
      Q>EkNCbyL0{YpYNG0hl7^cmMzZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6kfY&lHDXN;ZUGpK`<y3At@pvw%#aLn_lQC#efPY$)-IaIVYZ+Q!HK(
      z#XEQh@7M9cM=uY~FauBc;`kf<368%&{MOD11_o#BO!r>vJ8OMw?X}ll`R(sZSBPi}
      zeH*6^LF;FoAXl;Gtz6YDSyh$G>utYt-1TafZ@bRXIq&GcsW^2C>eq&WZ&!19yWvl%
      zh8uV#wKH(aRV650RwcV;RZUg5Jj-`IK}NpGZ8@_!)Awv=c1Te7i0d?b%kgKdYM>-_
      z2@;zGEuQt<pbnGk{*qFHNKncNYDMMk(J4t<Bq*B6W-=L2)fEzO{MIK!P)FuYLGq+h
      zC(71BL(q~Vx6Gk2=X(C3>sCpvkGYON2cK9i6rxtGUIVa5f8J&Jsuk%rL5XrXJ2sYG
      zz#p<NtK(Ks^{4GxXd|en6nLI;N(<&ft>{)I-H!A|9hAj({OZU}AMX$p**7)X=GKaZ
      z1Fc@SCbJ1g#{Xb;aByhzjXF+TLdvKFlI=axe&mT_MU{M%T@IJ3wqyGbA<l+@89|*R
      zZdt_%rBB~{OOmp17+2+rs#YvXgMyNit`q7fB;A7|9mEw|kna@~H$A(e%CNjoP}kLS
      z%Afaq{&qj^YEo(O0l1h!(e<q^-05(NmQb%G&IWNLJputCB<+L%YDv2wfLGEU<jS0q
      z_OTHQkMXyl$V~YZEoG*0hU|)@NeD9v<(`7y#IIKZNz;I)J*0<YN6dL}J`N#o*Cich
      z#Dnkzgi*ewryxuPAUdXP8j^}^<AbLRVbXIs?C}&W<FIo$Fv6;<=Pd_571RyED;9J~
      zRg{J^sBkTC@o^+EukGqww0XOz6}*%flF_oyW%8QxJdBW%JMW&7^bAUgv@De96oT*z
      zbn6x>_Z(CCL0LIC*9-WB3>&s%l{n28Q?#6VS$Zi&ebgJLvp2noutDPV>J5$1ge5JJ
      zv{ceENy{bmNm?PPU(zZ`Yb0ePMI|L9bxTTfh>Iz@i`L`0<ZVZd>qk3n6?rxodale^
      zp3Qm)#)fr2CMZImrRWnHz<v31Hd=Tf|3Bvv`Z_tQd`y(E`Il`NxOMv{Og*gj*ql!P
      ze~h^-KLlEfqeL(y7olKLib0D*>mU?>5^Z`CdUu=N13lfQFNTgLhi@OZsNT^tddH>c
      z9ap0F6>WYiVc*}TbDULe`fBKF+Vr*1Gi~}hTFLhS-UxEuKm$0zMjYUzJ_mI~((*Fh
      zUFbA6n}w*6GYc_ei&=;pTg`$rwwZ-=%-D`KZtO6BrlFScgKYdT8$Zg%BW%1|8}HS|
      z`(Zqq?q=qQF=m2(f;|qfhshoX+2fG*C}@u(Sf%kK)-K~H)`VeUO&TRIsTR{LGug~^
      zf|+W}<TBIKu#FiFtZ^g2Dvgs^yNm^_3FBF;N#l7iosKqBN-|Lrz?pQ<WqP>~0sab7
      zeGT|eG=vm8L*#Xhi~@;<$Qv3_Kw=^CrbbQ!iHFEr8aV?*hR8V}#!3L`me+Ykl8m&x
      z-ezPqBQ39Y7+K3mSIF}&BkLGRgvfi0NJf$&@;)P)ITa!wFw(;|-68TJBa2Ox;KGk+
      zjt=?=>tT#BqOG)<wn5%b-_Z{GlZNOT=5LI4i$09sjkH$`WB88KesK)5*P~H!mh$2v
      zjfw9ucrVd}_#Jci4>}<J!q~k=BOM)J{8&ffpKv_xW)o5lJATzEy73qK^xri2l~L%D
      sY8uez^aU_MU(#1t(ZQ6(&UU!43qN3Q9---bP={;!c3$`WT3dbd4-)q8-2eap
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y7+pJUn%yKV;ZUGpK`<y3=>-uHTQ6;z(o52oo}`$f;%Rbd1IbBEPr#~(
      zC|>Z2qNs?M2OoU&^56_J_>%F(@i+Jr9Djkh_Ra|g250O{_ugxr@3QvZ-~RI3-`9Qt
      zuovG1;1k%n=v4YnSf{MMLMdw%?7oDa#+~D(a?x`0CFj^u<=9v{fM$U%ZCG*hg}y|7
      z#htZRN|kcf9<DgKf-Mlq+1Y&2Dwy`NRkqwxS-?otVq4B)pXrwK&f<VTTdd@)xR&G2
      zS%r!%(JCPJ2&`Q!mnzFNx#=$v7Jxw5sT3FN@~D<1u|~ij?TtpG47F@ifaBIb83MlO
      zy#n&IZJ*3pt1ANQj^0tj%2KK99=T~1(l}Xi+$H+76upJtDlQjEtkIuGEZ44Qx=SFq
      z%D<juvL~0L`kZ~-subK*zUbKqv}Y^jvh8G7&DG*UsUUGT<&CCzEP2N*#BTd|k3iE{
      zdbGi<o{JmWx?@{(54X(!{@(unfu372cbuhUo&?2q9Bth4^uh@{>+;y;V78EV^6q2I
      zv#WbfpgC5`*#YqABe&m@M6W>W+>lv4H#;>nBhfDq7^_}LjsAL3;sN?j#z#gZ9^_e>
      z^YPh{A&G~0Q8BZ6HC4Sl%l}D<hv_s^y)c!E6Ffp-&QB+Yhf=M))4?#-p+kad#GJ$v
      zoW>-EInj265*b#4r{Rm45@Y14VnXxN%0CgtdgVVwYGP<gVup*+_^`w*)g`H0f+yWv
      zJvYOZ+AX;Wi6^<5s9vGNd~KDGc#5t==|d9Fa4|iZl6aPjscGt3;9?{mQyFt%Y)~1G
      zb0f@{)+v^FuFN`HLnnw->ezUiq6<VS{di)W$l*~b3F^zT3PBOtjL$@Yga$5;ol?@~
      zd`cOfVwLeAW>WFwaGd*io*^l)dP$=fh^W&0_7V}LYNYhO9L7d;sMRZBbfP1GS8sa_
      zUTFky{+1G`(Gu$<)=O-V*eKB{u}Pv!VvEE!iKv8MA}G-&5m6~V4&y%T<U>j19eYYY
      z*OaxOx`LrQ%A8fsE9{XigSrxfXu{`Ve2Q+~g}anz@pdQvXGda1hZb#@y~Hc~4ZFJU
      zT=+p#x2e&*lGF7c4X#%`0c_`1n%ExK@WA|NAqo)rzym<A0f&g&8gM&tqyeubW_i=M
      zQ<bTnSv-2?rRbSgqUTKwew%6E)qqu=Ee&`p@wNuMojBTncVM%+2gYrp=3VIK4t8?`
      zr}aMIYl_J0xIfcu^q3jH(Pw5_jJ;+iVC*w9(%5fiA}z)NjsfGK`4a}}#*ZrF$CdGr
      zGL9+ZxHdkdjmK#`8EI3In~bE%@YBlUu<|gKM_PFt(H<G?ag?J}fg-KO(;S1wF^(a_
      zVx(+6lC2^wsz`Yi>7<HORFO)wZ84tX7%)~iN~6ND)i}*DXsmJ!880%@8GlVuNCgU!
      zI2&odj&qqN@~=_q>*RmL03|ki%p01SB;)s(H#L(b)8a92Y32->fX7_W%vmzhW8NlX
      zY$g$@d%dHWkYegy?<!`iV(MP+DQ3H3TD>^$D`tmcf*$jMVx(e19&=GKI&#=!K2%J*
      zvT5^}j})`k<Plu@fyLp&CmiS5&wzdC!G5j};9DHTpBTUm_TLu7MJL<uZX6PWY`;?&
      z7tgZ)mN6;LBOxv$DZXR#y@qM=JA3aRI4u5R>%D=P&&P<Dbr$vG&Bt9ULiBOw?>YRt
      zf5vD3%22Nio=do9fGhZdoWNCl$&nR|Ue3yn7k24;&b2MneA7Bz&A0ic?^oLD>wf^U
      CbLGPT
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uLd5dKE8q_HF$u^2GK4u`qSVVMv@hz$wYKn#`*UXBQoz)D)=1!?81b|KD1
      zNXUI3ko&AW<T1xXs;DAAAeG;cpODHg2>E8TQUpb+@}QaSZ@Rzk>FI6#_V@K)0c^#$
      z2}A_em)#(H&bnY_E489kv9ptUn{dz8ysG6pHTSerIz2I-K!-q|HVk~HlAUzw{)}C(
      z1zyqK8@Q#4Es!bMMW<?2Onc7qEWhRn7?TZd%PnV3-*epZh(Om^&8_>E>mRo&fi2M~
      zAT|puEPJ(JjwUUCi8POf1k!F$E!f_Eos+}@atv%97*N0AA@0=YY-Zy6O%p>P*)mxx
      zATQeX`I0qX7g%)aj!D&LYo33iWtGx;uIBo)^odtPA!b$QsstA3<8jNkn-T9~kWwj|
      z%Vp>1d6|-Z)(R^AQK#CnxLW`M-NnH3Y_~XX&Q}Yyio_~`$jlsT<+y%j?6$)-0?~=_
      znKrj(y!CvKHLWWS4G)iOxkY6<MJCOfFx{S0?U$Y|oU@BQUqX%+D~{{<yBTG};BkSD
      zv0BMafF;k|{%{h*tV53PQw}8V5r~<#>$np45;pCMRktMWBgKqWpuzn#IAm3wy2Jw%
      z4+iWeiBaWd75t!+mDrueBJ@Z+#OUOe*h_(=660E6ZT3?jpTxryNGEZS0?8yMm5o(U
      zL{n)jRz!!@nMHrrD|*<b+ffQR%ah>UqI>2jJfaZWkvK`=U_j$XwZLGHD;ssWGZff_
      z5(Ns==b3kj!c^^o#90dCc3nlCO=F3QdQKq0sDb5?wZft@ve(dDUYFr*GVp<8Ou%6r
      zk40i+TKih6P`W@8#;*GT3-+WyC*%9JYI=#Mc*ZPhT6u;6m`Ql_95tq+HI>uzX)HyL
      zl3qxo7d;7Fxvk;Dw@={ZTi&<<ODvLDEU`plsYI{DGKoHk6%wl@)=I=Ak`i4K85QDM
      z8XGXkZ(-7L?J50*9<>T;5*T`l9A`z89)j^v-D*ih@mU(5U=uIz&pPbR!O8zQh1jyG
      zvh8zzgnhka!{D7eJ8A0CwBJ$b^!>+B8&W-vRlG`+BXI!>7DJp`f?5PD0FrHbih5U@
      z-c3EzrZ1$<ex`4)YDc}ZLG;c?(L0|+@5|c!meankP4B0^qD@~(eRZ2YKz(hSz7EUP
      zJCHZZoHt?<Z?KscxTx=eNHimFU`xKk$eQ_>vDM7SjcsN=VQe?^(%50<GjU@l*Mu=*
      z{)}Bs;|G=T9%VeHjQ1(y1KM~(8y})^F4Lu$qsFvJ`XkE2R368a#|h<;*B+;|$75Wj
      zahhwVVR20wMXo8sCR4e|<S3@|im9rYYAvQGXd5@`ToXpXRT>w$b{g|slg86rQ^vDo
      zx)f`q)USy830%%}-@uFcDDjt=>MO*5!Y=075hAZ@Bu69`BClzrtnLybuWRHIkwl2R
      zp^?i(WQe>;#8^%s)AV{vA^i$zdcCcXl?rKky`zu;g>;5I?<!=SLXsi!o<gKTQX%rb
      zLQ)DzhsXyC=~hTrh<vD!g(gdI^+z^G1Rrrd$(aRg!xn6(yaV51C;r3;ZgS?vu}}1J
      z<Zi?PG0KTMg$Z$n1J}bLafS2t8gk-$Oo{857Qb`Y{(&RnFV5PV7>h*6__2<n{^R&@
      zH<}Px?)=+BY~wHZ^xrhpSBB6f-7vuC_=1?gm-vb+I~YUUl^q}K>JQu-S7`Vi)8QJv
      M9WCFlwbeKO0OuOuh5!Hn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x7~Q97lG7wDVJJ|LLZRGRASoguwxALyRN5khivblT$uu39%+$%GSiAs=
      z_xlCBUzZO)_~7NiwO9*Zd~^95{0T09fw<4fq(&C5<wMT-_CDYBoNvDT`q%ZJ0c^!r
      zakL3+sJQj)S##FRI$p_itn9en#@s2-ubP4Fxu@;mbnZYL?E)*bVm+{(?6_SEj#xFX
      z?w71Rb+_zT0_n0<va6<(w`NS=3_M@J7;pGC-AXne__kXa7U;}*ZY?m~;JE43Er|{R
      zu~}eY#rNtnRGGJzNbzWcK+3IGi<UpCbCOs<AN`yA`_*qK!<~4>VkU0TR51h+^D65E
      z<ax_FS2pKr0*g-FHmTaQ=LaX|wUQc7cy2IFn^-jzqGolbN@9UN-fIR{GvXbLST1M!
      zCMGg{b8{@GY)zSUCpc<X=XF*JK%lEs_kGJP&E@B+MbD8~Ef5*?GrTU_4V>I9r)znd
      zJ22W}*9^&<S-G}vzRb+f(D2&6Ev=Y^mzX&(hB<eiYOVZG@vKz}_#ASi<k+qq>}H&e
      z1IGp0b6(ksgZZRyeLaaG8kD`N<=Q1v;!c6MQ+KWMFW*Ys#iOd}2Mu&L@1x2`@tg*}
      zho=?Wn{A+biDoU=^0nm%Z@6X_*)tuypWP`eLbt^IOo*W*_E2CHiM<pUL4vmtp>v4?
      z6zEmrK?-yzF;0QLl%vTM7Ar>&DJ6Awgu;|nlsHPkoS{9-rN@fI!%D}lOPr+O)X6-e
      zbSiZH7=@Y@NSvYI1r&-DTyIvQOrdO-RIsTOmZ)IUyb=a;O_kMImdSucUn55#%JeVr
      zz-7fuz;@XGGpfJLiY|lSOpIw%T<QdrnTewu%_{whR|_aVA<)5m0;^i|X?}qLnU$x(
      zQw+$=!lP%1n4U%|$4e<JMYockO`!+faa_6OdkDKCju-y*`VCrQk;Gz&B@#;|dL))f
      ztdLkGu|{H@L{uUn(J7HuA+Dvc5d-{G#%<S{)F1Fsv#17zp@+<I)3+54$=HZ)!UQ7t
      zIE4?fiH#Uc+w9wc@&7rb*v!d_6>z+S9lvDb!0mfJk=K)Jl=siE_8&7Zqq-lfSxSTx
      za{(_biWpIxs13XTBwBEixU&U!5vN=5LSnWxZF^K#>YWXvcRq^V`6PN@)?&Au`YT#+
      zFY&4t+(*2o1@{xLYr*TWT)hMRMws&;HnD=uEa1GZ18tGCyn!u+b|afFM2)TaLd@8f
      zFT{=Q`GPcd<O}JTv6E}u7|#EQT}|ctl=1^gIj5BODdqiIc}y!Gr1C_%Q+bXUhw^lP
      zSXodxX5^K{F=cT=TNJd#DX!9Zlxv4^nrp%^xh9PgJy}gp73IlRp3W&xRprT3o*t)e
      z%&2jV8+ESIIM21inB$r-p5&S|o~EaZ(MC$W%26+g%jvEgc&-p3|2$KDk^B$X#T45^
      z<|WNckco!O%bKys#6sp3&0HiC51CgrbD4|`nb*h|%Soi0R<A3jS20biHx$#Sn5Na6
      zis@HON9gA*#jICMB4plHj8sfAWZqFsQZcEJc~>!Ais=lQ_Y|`*&nvk4J)5Hq?{huL
      z83t^_7Hp@y17Bk&{=hJ9a`eWqPxNr|4r0F;;ozObm^j0^>*Juf!m)b|6XF|8it9Ke
      ze&fvj9f!rA9Jx1<Yipy&4|Eju2gr}R(S*oy=YJxigFoS;f6`E28A6j(Ljj-QQ*r{I
      j;d8F+U}U%}JwDjg@3=QgXxJXp;TpE>^R{1TtuOxu`^ob%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)dsk!l6K^fM8H4LIWZqw%#ZgD=7%4fB_XwlGF6Sxzv-BVo?MY
      z?{`tWUmkq$!3Qr7&M<>7zB&E|e}dyL5Wl^1f|0=)JJY?_`u1AiT5IohR(}2K^3MP^
      z<Eso30&5$7t8~(uvr2AIvs}AW*4u<X9fY10Ie~xNiH=W9WzZwATpP9`$1RneW^~YQ
      z2CcAW?`ZjT*A^($?V96Ru4&I&p%n$8fKhI9TYjTtMxo<3Mg{uD1HTzrestJ!Ted{6
      zfY>0gun`8WS(;q)m&gl1An&)lsvYjuDM>64NEJtl#UiO@Z6@GHog+gaQM^?^p0@2%
      zb!)yUu;|zgb7;;4VRYo0RZi=ZfgjD#C+)>T%JODC0t@u<PAjrIk!}*m*6XFo$<jRk
      zn0?)zwpwm9<#@4;K!2?jhPGduH|M=-;7Z)g^vWZ=7RQg=@#_w65lBu<mAl+Ju~^X1
      znpMROESdkCMn*SwYpk}$ba@L*bl_Nbx%;ap?OMbumt!^8@tx>C##lFeSfFP-sM{Iv
      z+6&jekOVW7^}w@zr)EiP63DnM->(1it;8KX@~kjwYj^SzJib8Sw)MMs+HiuowstqQ
      zIor2G?RgKcwP{t^7rlJau{;)GKtd(NP!bPNU=)cR6c|BbrxI)myD5-W;votolz5l|
      zxfD@3kHv~;pE6Qsk5HJls}ct(ShMt>qTpE#3D!-bmc*kJ+!m3e%BDf;$0#)INa6_!
      zK}6vM1wWXRs8XmqH5II$#}XB6npeVLzNNC7VVMkA4YhWX&B^r7@W5roOu%v3<GyMt
      ztD(!7rOY%MK5h7oq?w7Uh$3a*2$~V)Ie}j06WLxhr2A70$gBdboMAv_79TxBjp=Dk
      z<@jtKOEI9N^LY$nAcN<x`v~H$$l$`iUcU`XERt9(u|#62#Gu47iRBV2BvwfjB~lVu
      zi9U&f3h{m(w_z>6kFw+2`}9{jWmVNMF!UffY=w@}V=z6Yn=p$cKF;Gq46_lV8Has4
      zT>hVfh|Qd9*bzra-0@4+4d1xuv!<R-yLtZ{UH>uHMpXA>HA_iyDlXuKrI4nUp_TwI
      z0NE}*N4>90@26hq(ic)^Thn(?b*0|fFnZ^s=$%iZ_hnsvL$qJsrK>nAy7ZOQS9R&D
      zsTaHSH5gLwK;9&CUWZ{;u$~2+)^#9}EXXUkz0zZBG%G2iWLDC~X0wtpwwM)ZY&9!|
      zw6TqA#@KHDh|!Mmy~_B0W&EHr9#_V@wDBHoJVE2Vg+9fcG$u{b?^hl)P8$c5hp9Xc
      zX^$h?qrz1h$GG+yk8{l$$GPSVi%hi+ldYH<ipfz-rxcT?m;&0SjVHNgj3!rUw7B*f
      zr@3a0d9FF*X)>KnwNuI|q8x#9h5jpeu977F0#kjF_zxImc0Dojl1BCtNyW&^8mSRU
      z$H*%hIZGrHBd==Y91$5KuMshZ2oySAuPY>{kdD_I3R$U;j@O$CS*?)XnCC5ptWiid
      zM&4G4R7fsH-cg8V&d12R3h7rieKGQ$LKd35f{Wj?ITHAQ>ru`yU<)>4E9GtY8r$&)
      zMsbxBH;r9lkOOx;_J}dg+kKc2Cpd0H>=hSK7MCz7zTvFBjQ!#_j@sXGK>W!`dlln}
      z1Q{>sDC#$xA9uS6QR2>@airG&gpdA7Lw#k4UGi-Me1cDj34Dgnxw3;X!d=<%!7hHs
      Vy<I}v_mB?P_U*am`-Qgp@^6A<?vMZg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6S$9)a6y7IklG8LT;W8C0QYcW$&=e67T2Ls1m81+|FrdP1a!D^FH#NDTR>cXN
      zr?yZ^70X~1@X6u9wO9*(fXny$=1*|>3&d}qdlLf-*Ye?>v-fwuz4v#f{oCJne<h;z
      zG!r79p!Td)j-A%e>akoQt>=tbTupt}sX{TY+h)N!VGf_@i-)LAP>Uj#Z8H~(n<e|8
      zQ7V*+X=6v(%H#||(TtHc^Lj364CzJPE))f6aW}VaWn)RZXj<8BL5;lyt7PkzeMHZd
      z4N3KaM5mzH*<ztQ1WGktQUt%&3W`|e{D4v1tu#rRg&b{b+uHc+>ck9x$bb^du23{V
      z;VNZ?AUSLpXEORoNzk0*j}%oJEEMgdRaS%Y69vm2L`*R6838>%lm{?N{obkDMy29o
      zD3Zy<5{cNz2o{quPU+>GeaOsL8IOZ8IJhOhrPQhmYD$-jMZ-#uBuDZCg`A|Ng6f<*
      z&LnotwCr5(L%){`^7qA)HG!4N?SdX(-dbI4XIEGEgYG&MPGbSsA4s2jymkZj4V*U8
      zHcmzMq;sZa+S^cPRmTyC=`Cc85aDE^4<DkWF6^&!+Zl!63Fn%mC$LAbuRBwcp5%Xb
      zoU6_hM)*&;+%fn!*?*e-NoTt9e+!B;(`EO#nZ}&&>q*eI2+g6nlAeVsXS7|?4mQSM
      z>||pc#%?w)!g!92OE8{iV**B;jXUj}s6RsUIMIGiKLw!^k`A&x<BU1CB^_dW8cX_C
      z5*8oC(q<Tc!No^e_%XJpu;A;GUaZ(xCB5wOC!BFfC)vJ%*ej9-D)=o)8MaZ?8IyF1
      z?TgNL&NM3<jL>{mcAB?EDMM{k&f(s>>JX(6iy2B6c&IzX8>jTJIy^Vm!^TUpIeHY4
      z<M?i{nzM{3Wmu<L^Q*W_igU}k!pgYnYs^wQE37xTs#41gR{Um!7O>*C1^KooB)yAy
      ze}ey9h)^@l4bl4#Ju~l?h3LZvZj%d3nj>kRr1_E-NNSd}P*RJeC6bm&S|KSQDJ-c`
      zQj|+viO?$Qzzd9<meH^J!XbTt`;Vr2*AcyFvhRVx9(Ae1<fpGA^cAha#kL1cyn~MT
      z|LlEu91U5+M%VIQ(EL>$kA6epq-uz}O_tO0AFZ^LUlT3GQv7Jdv#?<S3c?G)^AR?H
      z!Zm&a{Kgu;34XN3pA8=`1hLJ0!PSiGq-GqFnsFp*URV>i2>g~Be=+<eHGV7nWi@^q
      z{1r9+N?OF{fV_TaUQKJTg0)z{uv!QC{84$2)}`vSSTYsR)+bXzZ9_5@(l#bjQrnbF
      zMT6RAj3KQ%`7>>;ke^}lb|&{Sc^8xSC~}`7?*%y#ZRE^;ZC?`U4{$`1BMx)KQI1Hd
      zh~p~aC5%!#fw5lGF^07?#s<wmrfemX$(hbnGv%w93g8B{S1^XO5=N<&G1hCt7{l5K
      z#s=+mWI7jcCB4Oo-T`nv+H{ZJOZkC+0I44V|B1FjXPt+9tdIndfQNjdkSwpoLq1i=
      zIUpeq`Ai|_fk+Se9Ei3EK(rF|1tW_YsYH!3(#l9BYK)OKM(Vvh<BY6iB<vv<8Ig=M
      zc*rG28W@Rq$OI!zj5K=4WkzNvu?3Sq;&S+C3ga<!IHC=-jyA&HL^HIR{-kcYk1igh
      zU7{IHd^PP6J?P>6)F)1&g%@eBxPT6RnG)hQ^^3c-PyCMd{RbTof1!2Xr(T~A8NXCj
      z2-gpf+r5Mo!z_RYR{ug*|CPb7jJ%MDOQ31G229X(x`7clm^v{t4+l2+17>##ZtP)I
      O&W)|B#@<w{Z~g&lNMT+8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXPge6#gcg-R&fsunf0=K?2JyT(X2aCU_xS1d?!BE-t7r*&Q|$c4y;e7L0g9
      zQG$Ys3aCU;ORA{y1(hnRr~=<De}ive`J(;;@jE@UaYd|h9=gBp>vK+@?mlyV{PX5*
      z03G-;iW&n8a&9>}XdSbX`C`V(+sPh1ZFP?nO9jhwiteF7>(I8HQPdh}(S~Ku$tQc9
      zVQ;rRTr8I|_J*>X&D#dzSv%tttbEEIvPza$EEzC+{MeS8OQyV%<K{XIG<Fx=Vb5~C
      zeOA6~E7Tb<+6_$1m5SvdnvDA^#JIG?K+G){`t8zYos+@@19gcdiNvz@L?Xd>LpHN;
      zy~?s_AflJ&8BoV<`)Jl088$HK-~*Ex9w?T){o_^*n)eo6Z-73LLIA>6VW>c1f?nQe
      zd3I&Dhq%cIzuw+#mWRmNN33$*+v60*Egm)ywgv{oy(v>Jm25XNk{T)W7xN0U4TOIG
      z;VN&+alL%^eXDc1x@~8=%CEBP0$%rA{|-9mF7*Ku$uM2s1b3Qzu==<=`UmZd$GcZu
      znY`mV-lL4Xux+1#+U{c3j)M0ezyGNemhqzRUb=es@)$>j<wD0sD|994FDJjQ(ABbf
      z{YHhZ)yCH<^byiuPoJ;QF48+=SA1Fr1CPcq36m8bXJUG@4FbkS6*dxZ8->lHT)(04
      zq+YtFu#JF06?zC5P6GACFhv6G<gK@M=m@(7F4u66z!e(u@Zr{#8a^d(m4*iduGa8r
      zfon8;R^VC<4+~tUVLxHVG7b6k;SPVdBLZbN$z~visglhgZ`xnZ6ZyHgM1CqmM1Cgx
      zXKMXKJR(1jV?=%$&lCAsyg(#L$R01oFirM&ne}?-+~}P%=M-KI@a?l=@mdVcm>k8a
      z`~HHUETVYxAJ6a03X>G3C`?tDrqHY~U7<x`mckr`c?w~LdWA-XxNLDThJ|S357Ohf
      zcAx%T_gMYX7EIkz_E{xIcpyf)bQRVkgv&8}jKw^UH{h^v+j{<IOJX%Q<ZO@4Bq;f*
      z3)>!C^z|v-r#3s1PRoCExOORj%;r%-?2i+8VPQnbqGUDT1)#o)H;^}0@h0+k6`x4X
      zdZur)l%t+m2zusY>6uTW=jl~`GicvZ#b=Vws^YEWbE<fPd|nlwj~Vg~j2mLki?Em{
      zSi%Dw*XKY@D6Vc{X}Z=-rqW@vBbAPrD^lsGxhj=b=9*MG9x>N(jGCRP@36jN{FoR&
      zA;#Teyh)6=XydKgcsq@I<BbwIWbQ~Y{4ViGiN{{?*e@Pw?Qu|hJi}3$hd9=m7RP!s
      z!?D4%87WtZ<Vd8W5~(1OiW2ELi8M^xh*{<sHIH*t<_O1sM>-MqQ+i1Py~5BZ<4w2l
      zdOAe?4W@dU`nOomJZl4GR4cty!hv!|D>*q!puDA(6I7ys^0rn^Qc;0&mWnxpLcHR2
      zPL!FVRJ`61rB#%Q*Sn%5M5znnyeG<hQR)NbyeLYPhCq2=lm<~^f%1VUO`<dg%7>y%
      zOz{dXe8b|X!6l9d*qeYASc+A|Yw#7;;Wu>R9(!&Cn~Y|*+(p=8bg|?1VXJYN4Y!2t
      z#wqsOi|943q0hL99mY>=wm)N+@dtJr_t0Ha!-ya0UBL3=&+Qi>lAI0d;YHu$lfToD
      vzYKv(%s0RoKBZ>hGhE@w3Pw9;vEzeXxX#%>g73RmZ|D2gj{APDt-kmRH1HNL
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>$}+6g@A=%)HD@!q5Z=m_Q(GVM&6BhzY2KMa(1!!{UGnFEgD<Cq3Pv7cg#s
      z;=V87zLp>S=<>lTs_+L`{sw=7<u4G=>*+~G3ad<2-n;koxy!rnzB|ADedAXE+wpA*
      zO#&M$PB<{FE~o+9Eh*a^$Vb~@XVUemDzIGV?2LW(P(Fngfv$)c29`aLxBTFk>ARs<
      zGWUf}*)|1oWwT^em0d7rm8SyN6EN~M-^!^B6avq3DnkNoBd+5I$_Y*?J2WL)1;kc?
      z#TCyDXGxj2m&o!{zd+Urs}rVoFv>|{5q<P-?d{e7gZ<p8&zj7{3F;I>AU#i6FCZ_P
      z=1f`5`2tJM+%YMC%JqU%^Q=sykGW1TMVn+b780sDTP3h4`n+ESW<BCv0-18TXKZY&
      zXO4e7PuZMQp&cBzs`I2(0uX2~g`Q_RrMbdfb;7kJ)(AAs=yF+3V2|APah*W({?X9}
      zvwFyl0;|^b%pbFVaByf{&$dRL2QM*m7KS-@oM}Ayk%?)u6!1FaaLKkDE7;38oBB=)
      zw2ZiAGX>T?cl+&046+!$nouf`xSKhtKq=pHoQmr?=6Q*Gco$XW+2I0oFUzIxRrw9z
      zeYEv0Uscrt@qQ8mW!r3`1#nmg@g|vJ9cyI?_hzvK9TE>RX{IBwj{<X%*iV58NF1cV
      zuo4ezj^#@{LV^Az@)YP(I~vbosdn@zp=m|-F$$9=Js#JjSvq1#=y6)&G0h3dIUNaf
      z^tk4P6^SP)_~xv{ISTF!i!(vNaW6=eDez_JV3S!a)4`?$QVbR<&ytwt6)>Pz(`?;r
      z$_spcaVRqb%ceZbdtnlk*e5N_f>IDk`s)ROR^}1<L8uL%V)rwfz|^mX`qK=-q}-bJ
      zEXmBQ{_%OL%&(^EEH7uV935JEA&X9Qq;U1NR}=S63NQbwM{2Od5{ab}%OsXdbV{s{
      z=#p41u~uTeL_#7h(I%18A+Be!34OfyyyckV(KA1;CiFNlqEU2`HPU(vCWoU|O`{o~
      zW$_8Numr)B#qRFQ|Ibmzmd{kofI}#L7t1#F-T7st3(<T#Xz6si{$n!s>o<ZmJW4a?
      z>LL~_fh4sQwI;9tNH^#i>TL~rJM~<HzL+{2o3@?0FQc6;6Yac|Xy=tg`-%p;mE?Cd
      z=-t#;H|Rao*EZ<A)YmuY8?aK}1N}BL=gru{6Kv%HE=K1-Q*%z<#I|CKF;FNbjO~SD
      z(%4Zbri`71qBM3Din*k*n`_D#D*TK+b@Bt6{E#M(Xz~F~J`|A;N90kG$8v4jbF*=z
      zK=((r1<6UHpe;^li&K$BF|s(rRT@ulZ8gqvO&f}9#wgK~S@%@Yo-FNYMtiDiPp<ZK
      zp4_D2b4?i`S7}`2+G@;kO&iZ}%^1(o)1^c$rEcx0o4}P^`%S!9Y$pB^Q+<W_PuRm0
      zTVmwZ2pJ=ih>_PK#3Yi8k=G;S5|LDlyb&Q+h{zaulZdgBK(21}mPWcYQnz|rBRv|a
      zTfL)^UX8TIe%{r{292a+<UNf@jbviveT`%^l8uoMG}5k-wix+PBZ~_x!L=XR98LI$
      z>uF9gU<bBgC*@uE4!iLuhH#6+H;DtHle2d-4vAro-f<ij=Qw#ijEbuqyw@=%zQ?$@
      zfg|E~PTfCnRQ$!EdkZ5?P4xJ26a{QQKJHo*Vt_k;IFZ==3qD;)L%%Y_CfOPRpW_Q+
      l0$<`QuIym+bJsjx*tH+H*N#xLJrRYg*|yBvejTyC`3EO_0lNSI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YjYD-7=BOFB&SJQ!g4EEBv5YU(opW$f=aoFy&zpK22|K4OS+J3YPtdI9js6V
      z?-dILt%`__&UhV_5&iD?8~gzX>MszV_v~(n49=LDobx=-d2eUWIqxrjU-^lMTIh0^
      zsst^_+NI<n<A{;W71Bn|Om?bin|-iQ%o~nXu=gJ>?C<CaQ?;N5Wms~oT(Z*|aC*#v
      zLaCTGH<s*7&J+~Sm}x6-<aD#&C>l<oC`jvcV;gohsXIl>&bA7wZ7<jZj$u2yja<o;
      zR3k_<3!0cM7E1jvDf>%`VQGn=m|e>En#C=uCP@<zqj5=NBmb8*V+QXxQHkyNCYqo~
      z*<_v|dDJuyXN<uCL6i2~v8aK*Lebe%wu&m=Rj{2t_=NHv2pakRJcJ2qd6VIoe#X0y
      zaS*>mS63pF!FDp{L8Fv&c3Sze&D|)(Nc8n3@(IMKOP7j8(@qcSgZbV<PSR{afj@t~
      zgwJN#POkm7)wx*h=-E@@=cisEsD5sFx6Q3{m);`Cm`3gRG{`u4U*+Dn_Z~9S4h}@N
      zrE`{TIUA5+Vbg9w)$N6h873S`{Py#cv`kRV^$R~<KR1F=(sHI_BR*XTdgE-FuIAO@
      zQGazU=<lC?;?sLTuYEu4(>C@!G49eD60{*klW4M}`%sulwvoZuh@?#bNF!+rE5oCb
      z9sodSNe==bsH9G|IWf+Gx??nj13e@tm}pTEdKfNOa3{kR3S#rY#7YGpX1Gehy$n|?
      z_z1%_3O>egt%3&_u2ZlVuw|KoxCOx$H`_smoQ<pLi_uiB<`6Cxe@Wg@PT_A9wizFH
      z^?rpvQ#u}0==$hIg&oG{#}z)p_y-q10es{1h|-?~zV@x_`!w5}I<NF+`A|-M?x%j<
      zr<|SZJ07EHT;CA;Am8|qq!TW_F*d{&!!fF-$zgi=w&&zssW6@X*VS=lNs}Z^ku+7(
      zG)eW6rb}v&G)vMPN%JHHB}F9FN{Vxe^D$aTO?YXYmTh*c_rKHV<vydS9<|#jTFgB$
      z)TVB5gaY(_jNYTgxW!JNg-hSm`9FIcUP3f$I_OT`bD6rZ>CO)(qN~QY#o}@r{-b3!
      z^V6Z(*h&BmcLF|GkV0T#uqwg_phyLeg4b5?I`DV}p9qe(0N;AP%4)_XQZo)q%{US@
      zPp|Ns0sDpuJ`;Ra1y6v_so;&^^D6j!n!)FQxB=9>h!$f9OR#~XY9CY;h|8<AG*zu7
      z^;A%6(NiI9g`Ns)tMruA*668tNLz<7thMT2(|X_dUN*j;joaCHGaGMJ#@m!}2aLPo
      zwH!I1ZPyWg2Ycx3v5P(Sut!RH>{A|(VwBo`j5V5pF`}h0Ml}<WvVJ6sBOT^Qd5%=z
      zNRM-*0oaDL62`E06r<DzG1h2LVT@?cV2o<dA=0s+Tha?0=tT%8<8@c*rBnd=DU|vO
      z^si_=>a6yZSC!HQCFm)yDJ9E$@s!t<atun?Q{GU@Nhs1&-h`sffDre+-eP4YE56qV
      zD+yM7ueVugWTnQ7bB2}qtVBHJ9abbOQBN6VCCW<7Q_iwd$4afIoMUC8j!!W5B`!x5
      zUBI{(eT`@ZEu~e!Yv>}aqd%yXZlYg@XtStCyIw?FMH{+xH*FIK(5#EpA%@Va&rp}R
      zOx@xNZ5O|yQU69e#9!1SZc=+y6(YW?vJkEx9=Cf5DT!G?4=(zS#&4CuuZ%pGm}@{E
      n(1*|jO8N*RZZI`tW;-0%*cX`HEx5kBR65tUy6k&NS$+Hu<z+(X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S$9)a6yB$4lG7wD;ZmSrD}^$Zp(!FFwxV{R3`r3#g8>z8lS6VLxwqcjB*q!R
      zd7i*|f(IWR9$bsH@WDryzrmm2@)wBTKDnuZg=_h6&)NGsdp`T@``h2wej%c5bTvvH
      zf;JSKYU-?2vr;8DXO&bct+##78P_XYzU?}v&ec!NOhl<uP`?(e`gSRmwk!T&RdK6c
      zPEAyud`SsP=2gxvTP0J?Tb|{+o**OLv~4+sl<9l6Qy3G}J?T0X-*Wt8R;j8abqNw9
      zf)*D%w>l4z1${{g9BmPlaH{1w<?YciNm>LOLtBQ1_!}L;4t`!C631_e7=mI8BI^Xn
      zx>D!zR-+<l$;sOWRVlije|$kIuKA4X_(kYM$^j9!%JXFai}dl7<*Sy*JK!XrPh~Qx
      zMgz&@)fuZ=@{ic%1&KQak)WPj)$^2-YnYAloLiE#T2RNYS5Pb4@k^7p9Ih1<nwfaG
      zO|9i`1MXw(LW(1!qhnidVi8UbL8B%JxA$aw(g)|xs+^CTkmI?M?b!Zqc-c67Oi<^f
      zn^#f7Z6t5KI7y?Z!;~5{s|fn8CY`Q2lJ15f;2GulMM?Jv>S}UD<w?4?DVTNZlJ09B
      z&D52{N8?S_wDPX!bfGl66SRbSB|V66w3i7G+Qk%z3|rsBL=nn+L1?4<LBOJ<Gzi#Y
      zL$e85%7#$4(2PQehmqRxqS`I#2p~i%3E76G=RiDy`e&ejf`J-@A7w2UCyz5y@g<#R
      zq>iIG5PMZ#QXWcERY_+698fiOT1?O~c6t`AmuXZ6;kd?*N`m6d!+*_FsGWnn83+nC
      zAFv39Pw{FZ%~MG}D$DeA&4Tk9+MGGW=A*Wp*OP*xnT8tFQ9gx-qR;CMr(l&VNzVkP
      z5wZvNxxh3B{z4#(;4Lp-ta1h~CTKbJGIcRQebgJJmv4D4LFYv2)tfq`2}@ccX{n@T
      zl9o&Ale9uozob=?)<{|>DJ&@_sasN#U3{FNjWmpxl(ro;tKat#YmVoLp=Z!B%d?pe
      zz{t36)EI^6iv)c}n{lIl(ME3%r~l^+L&L`l%E$BxUd6JF!?%AIF;fq=JvN8a{~sf9
      zgkK1)Mk*l;)I}&*m?Ge!;5rBepjaCp2jAVs_kd5f@r%Ku`Jvm#y{mV$liqPDddHRM
      zeMOtzO33%O@dMyjwef@C*R=6N;McYB>uDw51MG$n^CsGi47MPFy3T_-LP>d@wq`qx
      zl$i}1+stgl*luQ{#tt(pjh$vT88LQYjT&R-Pjr7v_yHDvh=nIvc$$T0wD3MHd;r3k
      zWH(z583#?6Kg1d)YaC^b<E)X@8Yi{JV_2ne3Tu~PVT~C%tZ_rZQlVwZW=rSTQkgBe
      zZ0QNMRDo>7sA7#8b*$28VC^!V#u_u8#TqxBho$r3W=I2UXaK;4WY2YaDH{U*3PODi
      z_>Xiy;_M8N*ENy>5)P0zG*aMP0_07NoCgvOkhe5)0f-Ecw}BWd0VG>m?=UjJNK5No
      zMg|#aX}!nD5F=fIo%b18&qyplK43&L5)Y6M8HqEJ2#}8$>0zWhKrS(|*hC2~|A6M`
      zpii)#z=R{(PFraQ=$&+xcF~_SMmK0mL}*&{VLor788MFWJWKn;Y1%J5Iv_4$IA5ZS
      z_>N}9H99DM$7KG44vD`om~YTzM+Yo^s=e?Z5|6vtgp|ULpC*Mj{Y;<#8wS5J3RDtJ
      r0s4}@0w(Bd`UWdHm`1R(94_qg_t={$G<A<^cTL^S1>JA8)Rlh#?zQs$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)-`*Raj6vxkPn&dV~OIQjNY<ZPec{D{t#1^y^sMxd=HWULY+$5KD+s$s=>=x@A
      z!MFI9`WBQQobeYQKRCk-{fYkK_&4|`IQ|9V_ii>JFgRmpdhb1-dmi_md-mk_f3D9H
      z(GI#6r6xw3ik6p}5;G!Y+IeBhRN9{oTW4*jBwWL`PMhxObS6s8j5>Wq&o#_c+Nik4
      zWX1NJyxi|u1yeFg7G&Ni2~(G4;Rx4u7-{LMZ($Wvy6YHLv7b@vkZo05VYw5+^dzSi
      zMr<3S#YM;V%227>b4p;Vmr=s<N;&Bq^3TL+5qxxS>+V+neZ80=mnBYOxiuAyQLL`A
      zfe}9^<#a*JRv0Zgb<aapCT+((QP+z5@~CaOldy@Df<;)A$|ZnB{`LXk%38$x5OEfN
      zy`!VOg#xZqkY|Nwx*4NX*IC7g7`5d+$B|ZkR-Y~9Y?ISkMonoK*)lBG9J*_BJ)=-M
      zlWs7pMcl+_RsD{=eSK@z_iw*b#=Y}6IP!ucx1Vaf_>tU{%)59EK9DyJ%W(H0&gPy8
      zM$JQZK}HE_Pu~4_ocb8Wbva!U1w&d!h12~2;|6M_1|9$yv|OhS9>nWp9C`DSQAZEq
      zHY3uVF&wwf9>z0|OKbWz8Gzx!6}fP=hFXxkeF<7Z?VKJ(&h%+c`!SC@oDN_fv^X8Y
      zoPqop<`I|E<7yuq2@EY<ag~d)1T9rA#({L<aXN;@gurDoSd7>+oREgleu1ZX0*hf;
      z<aAOI1CF1>B5j~-pT^=?vCQd=zkqoT3%x8j;rT;pfvvMx3_ArCbuvNARMaU{Q$=_c
      z!{%f%iq43NaFk#n_0#qYR%Mh@PME?fEX=DNd`K-tS@ag>Z_XhMDy1c7I1BUARJ${9
      zXd1F?W9wNY-|>p&sf8brZ)`q?2L`CzoSTC5f{I-hzS&C%Vv6##V^lR?Q9&Hf_G798
      zznY-s)UH++6VyTNQF{HZk0+?1D7|?{tyD3mC7hOWTE=NPrw&dlICXMb&1oH{4V=Q9
      zVw_qzB~^&e6116m@Li=1OOE+pdq(6`SJC{AG=Ur`Ie?J?zhq++qOTM5C2d9S+(`pf
      z-jn{H9Sx-)FG?4^DEK~>ZSJ}E7ZTI`Hh0KS$Lai!2HC5=6<Uj{gwS3WAz@*PK#D?Y
      zA|!xf4RRcEYlGYdIoTjDhKw?YZHKB=e@6BAGakjC@g)AdqQPz@^gA2mF377J<Ta4j
      zHOSqNH#Eo_X{CAx_zmIATWBk8uniYD=ih^xLP>suwr88Ql%5T1JM?Ts+o@-x+AclI
      zwcUC)8PWD&jB5S*ue7(O{D@K>RLVn2`JhrB_LUF&$|F!7O|~k}A?=6`_eYh5t}Ko#
      zixbKs>sy@iEuO;2wbK||G=VXu<uS%J2~WkECqsFfR-Q`AldU{GqdZlh8__(BQSBT?
      zuFYa>(VoW`(_X|F*ItIF^Wo}|x|E|XfD6gC8}wQ>1pWq&`WE;vv=`@W4#?X+83hRk
      z<Q<<B)m;Meu20T`L<4fkCl^3?K;8q<RstkzR_`m)rAW={14Y&-QnUI{k#0p=0zV%q
      zvQd#(Kt5K4D-sXLCyK-sNd)9mMcNc;4aj9h7VAjC+|MYECi)!XNi;N~owS{HVZEEK
      z(H{DX`so&$afA-C4m9H}G|UFjjK}COJA-EI&<MMTW_+1O*$*_vuG10r2RiYebd>##
      zMtqBgnwsG83qOkbwZz9=Eka6R#t$fkxBNz5-9Co;$|x{NR2AqO`WB4Q6}pNM6->RD
      cl^z~!?kCLED^zWd`{Am#&2`)Fe68>Q1r%KfZvX%Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYD-7=BLDB&SJQ!cw4M%dOnXB`qQ%wxCijB54b3DF#&7Cfjt|WH)X$#d=5Z
      zeisGr7UhF8eDU(Z8D{VU1793}gFnIX7l_Z<Y-(U|#?JJd_j&et-}Aob^5(a{ul@>P
      z3ogeH5?EKTt38v(w9!*^az@eY$@tR&d)#qLhG#kU$>Q|M%xDZv0v*1v>RH8}j8*ZD
      zm=&k$=FHtyJ6|*fQh76Hm5icpmJQeN99KZg)M6WUp-1;z%P#Z@v<x_Q#WQSg)F@U>
      ziDm(@Nnn1#b*g1b=KLj+0-@`(0!h1C8Z+H}eo_+i7^G`cSC{(lO>-tLn@q*_>Jm*L
      zJ||ftAWxg-RNk1W2rM{p*Q_cNj_VzpQzd*n=-A!_eWInnh!~}EiNrkr^B%)9>nq+P
      zkeK0LdT=nE&!<^X-W)foMQ_9^&54!?K%g~ObzRfW&FC|wF{dc8l67VnRkLibIB>_u
      z)dJznXr{rfzT`TAWvf@rm6`7C?c01iX5l$z&W&O8wiAt&506cnIgjTd`*TIhw!B?j
      zXMOjmK+}MeH)CK4sXLEPqL&+6nZ9w}%Uh;xNZc#XT(;a&0PkZw$8!U8KgFJF-n<mx
      z2e?N$)2q65?*}O;Tjo?9_cL0>tkhsLw`x}s3(zL<Fn36wme|cC4_%*?*h6Dj8T)9A
      zDC1EY1Il=e+Cx(k+_JEKeO84TN@Af3bBNTWVM`pLF>a1YjL;|<t^^AY8)X`g`-~-V
      zoLez@^9t2Z)GVIVQ%Y4WNSvZkG0PHTG@L0<B2UA1nBzDNz6G`JL=ubCx|6Jn>rUS|
      z<60GoBFpCLZZ*KRK!izn{8Z)!GL0Koib}{g#1GaaO-~@Evhl%m4HSLw3;}bhR+Rs<
      z>U_+yXO_nNrJh#@GUYin^dj?Mj`fc(6Ef2pRQbM=#A385>s%7;Xp7;sJ047MZDM%i
      zw(C)&B^F35lvpIOSfX8GiA0CQa*0(EYa}8Pafud*lv?7`B-W#wZz*Hh=8*rwM~pGm
      zN;JO>jT)|{a6m@;{aYGG7+)pv1vc_fya|gJyF2qg+Zb<qqF{P#K*5t(w7&c9k0P%7
      zy=|YR(&_k*u9#NO11nidm_2nKH!OlEQH&@AZUEv9I6>UffLn=E4R}5=?>c?k)n)Z(
      zULJquq4+b8#GjWm_${TrqXBmkFK@srh*ve>F5)!}crBKyb70&sbKZcBtY8xhIPKSg
      zP&g&8VRN=g>(R3jZHu0bYFqVeOxvbsrM6wqrlQ&ojxnuI{~0^$;)j&@5hWf_;=M||
      z-xnY7#Rn-KOtq-UVQpAv_`}LWR~|=|$1&xR^*v7b9#3+V+DVShn!z!y<v1oZlaUJb
      zNS2B;r6QG7Bu7PhT1Bc*8`Y{DW7=tsQk&t}tUbpuuD!r9p}oXNXCk$fI#r-f5@%Db
      z*YIjKO#XGI`X>3Gu#<T<1<YGMGe{;9FmL-zLDdp4@A%9aGO>Vp*JsX>kpc4_8Eq+v
      zRNd=+#dIpB?)8CURw$<K^`T<A6w@5U`A9Kq6%!Ab^NNv*Nd(Ntib*IY88DwHrd2U5
      z0dqky^L1{)#UFV&Limj1arQG{D>h>r?d`aX9rzP{xW$GX#a_|Qe!KzuML*l|5Dth_
      z?8Yt*igWD77ceNk$B?*+Veva#@gF!W{$eM-g@I6r5kL1=Q9qD;+_g)H9?tyDL}bG+
      z`10R0)GI^alB@~vHNGJyFpEnZd4rMWtaLoEi$8F#l~D6N>MvLGZJP7_)>nP^59FB!
      Axc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6y7IklG7wDVJJ|rl}ov`kfw-;*n&!-6lqE!g_@$mG#Qd1$xNKiQ0u*d
      zck5m7e&xZnc=7V!TC9an?TgFb;7@S*3&d}qOln}^T0Z2Qv%mTFclJJKpPk?SzWyr_
      z?WC&_3JBU-u)NfH{eqq<+c~{#q(;<q#5!j?72P#$>rBNwGddZeCP5vF=(%P&HDXS?
      zCyZ&^b8^N3&&rn#L5aMPGb?&IV^noVcWp<IHd52ptwJi}I;K_V7t}InThp#?xu^89
      zXGm%mBzgrcFF3YW1!c)!QXHRl2#Q-?Wy)}dR7{eVL8EI&R~P^KdNISU8i>Sl>l95;
      zbcwQAkeo4$QeK~(7PR8@9fO)K+KxN1#EL09ZCh>;KH-YL2<eq-1;8@(`JnC^^&RiR
      zCi#3SolecpBAL8#PWQ_0xLH|Z+%1R%wdOp>F|6EdX0|eAmnCgLj+<~)rsb9gZ~F#3
      zI68T-!K=RAR$RxXr3`!f`udZ%n208am~kYCw(WFd&c~+C8#xyjAqR40(=y%t*kxPy
      zDM3wxcHW2(E+cXKy-Dg56gjal=jv5Y(mf!jbqlw5FHUEC@tR|plI{a#!mtcw+|M5t
      z=1do)2k>DGMPWKH2C(xm3xU>*6WJf971So_Awhw0UD5%}Y0OAF2xUn_04Cr#j7?cl
      z(j!2|Kp6oAQmir>r<JTS2GUWx2+|4u=wUIA#h8t#kz#O6hti`U4I>^&lUR+JRj?jI
      zjKhobR>6kx1QU>lq_bG1^&-5dkkCZYOj=my{WVLRQ(`5ROEFHXIEwRvVjM-%MWO~s
      zWdH~!iMlU%4iqdD5rT3TuO(e0=>W#IRR(p#D(K0X;=&yNB;g%JI9S(%j*E>sUI*+8
      ztXYe=7WGrOIF35$dXAYaEzXzN|7o~z2E6ODU?2y6iF$Hj4!M+oK97QJMEz)9R2!Gf
      zqM`E%zZ9p{)W)kzacZZw2)%OKYw{~ALa*IYK{Z&?3P~#^t&+4_QoE!zk~$=<leAIN
      zW=SDQQAsV561>I7aoR@RIF1q1GDg+&AJ?b2&1kAcozfkXZ66E|s6viXkiLl1XS5x6
      z;ucNRe)q`#Y;kxHv4Y{EIr*<<)wb?Cznf@A^}QjJ!|C{sj@ipEh&CXVAo}ex99W3L
      zup+Pmgae>xgB^q2(qOm3PBhrdVdIg&x1Gye%_uZA<5JX&D^c^B2EVo7cQn|Yu-7%%
      z>tSzfu)APyZm_q|TD}M91`%@)ZAS(>kid+}g95>Xyg|uqla|V4L)y+vHmvQ+WFy+{
      zOjc@pGTB5}+lw)x^=E#jeRcAKOn#WjgG@fe<im=5M3IkzoKCc`a!@;#f&6jy$gsyr
      z_LyLgtnxUmJRZj=wKEu-H63GA%VCUZ29yeQC6kp(tW;qoo0XnqrD<@(nujr>&0v(;
      zEXHQ-8H`cwIgByw1t`shY9V#9P$z(kiPjtRayAJ3RfPIF@SkWO;%xGfHx!Zv67rEZ
      z6;j|_eB>>K%mIn`$h<->0+BxQHV|zsfJEKv9Y#7Cse8T4$a+TVUhgr|#YnTS^FAY6
      z7>WAG2aHHYVm|UABQZweKJpPGt&Ftz$Yn;BXK(~penfEu=o5^S=zT=HC`r4q-a}Vu
      zFa1gVbQ7&SOov1}I(ZKr76a(yqjW@^MIU$QsJMhaewotZdm0tj>6rK(P5ci!F8)Fb
      zze$6E02Dt}yYL?<9(Sz>DTNvTsTAt@g+Bi`41Q(gyToe*`jWl^Cg^MW1|uq%dNDH(
      a7k1?b%(WD1z9-doHQ%Ns-)|M`yMF-H*9&|A
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?Igq6y2{wa+{_lJPH(Sp-`qWv_(Y37F5b0wkbjw45;v$Jla5pn!bQ_q6HM^
      z8LacL{NTq@?2=V1e0TZb<q!B1T>b)apZk(DvT!ZCR`0!MzkSZx_uP9=e*1goHh|6e
      z!H)_9YX{T0jx*Ldt0S3-SxLL2Pfz>Pr!(1<<s>rclc}>O!@Yh~8EDePoRdg)^d&}|
      zL-t4}myOxGa_M-|HV}&2u|&#BM(klLYdM*$0khAGZKVf0B2G4u9_%tu*ON()I9A#@
      zY9({FLX81qqk;K@*-UPjl#;(fke^x%1k<_HfSui|H7U$vjMj~<t@7X5&YAYGO(kik
      zNHGlrN|e<G)Op)J8@EPB3@kWtUr{4NnXGfH#H!VHIFojU=;KQj7S&d2I7MKd{=D0A
      z>|(|Tm@yu24~N@F`N!?V?bB8+=^Rd^N}Oc|V4yyh%VzC#Y&0^O8ptFSRxpA4vpen1
      zvSNv}lkB;Nu*yJXxOaD%YccCu1ItSLZ13!BS=F`a-!}Iiqj=VavKvm6Z~nl*89V0i
      zL{xVynMfy`oy@bY?WlpOo=n{Kqn(F(?*S@w@<7~K$`#4C+)0H88QHz#-Y!FD-J9-=
      z!b8;TPUSDUxASBCs<DSzsr)!?i9qj1m?eM3ohEB4KPFu9e3UH46ja;Y%$gr}C*A9e
      zb<v%yVI_A4u>cJUk4piyB86SD)>;%;F`t)RVK3KSR)r^Jturb-<?)$Ep-*!pheYoW
      zVxdHTTF?oivkHe~eVNLq6b_5$ukK`iOo27?k#R@X&lK?qh2z4X$X^oQXN&7w3eS7|
      zDffoLDZ$4X^NzxR;M}jMiOYJH*0jQDSxdcVMA=Xfi$vKOR@YO;4AkM?R7grSwL;di
      zgr<4Oo>qxGEVb2Yc_LK9m#RFK62U22x5PRpr#<OXY5o%HNADMTOFg|jhiOLTsR{EX
      zX7;pmETON+4bZ!o!(J1n-p!o9>}xED#b}V##UL8d;K${A-fQ8?`tb%s%w0_nR#>30
      zP+^h6VueP9B??Un%N15CtX8O22q@Gkge1kaAl9LcPq{CVw)=I1IcyC`BQtdqJZfbV
      zVi!PPw|*f3RN~7ZKF0>W5@#sEN7dH%Kbt6DTJ50iu>BRD<DzwK_kWOqi0-U=6C$VS
      zKYDVz>>n$*l}dK>c`R5pe6;+uD!>9DP-fTCt}C<aX@|<}`Ly|%=-VjQUeCN_dgh_%
      znMb1MC1rj~$!{vNn`tjEvs-AdEVEl_uP(FKV5yt~<5p7hdTihhHgW^!^*&Hh8B(*@
      z6s<BlBGGDdb0q3Bw?v|Tb8953%x#fq$Y*Zn=r_9}H?X5feoV+u2)ReddxX4CllN<K
      zFUjFhokXrQ4@4OLpm;>Y<A``16OX9&IH5hB<EYG&9BWLAW5A4YtTk;$8Z1UiNTjn8
      zDJ79IrARN3>oZ3<`pq0iWuE6)V~%nRm@jjzHD6_<3)P;aW(m|xU_4Ymi%Zc;;;&Qc
      z72;FaL7i0v<V}r)iBuPmw=^;+dnq7qYvckEe*t+%BjZF=0eP2*xs*Vt==Gi;&4LuY
      z-WQ}rkfPTIg0u=!Q;74SAZr8(6p)VuQG(PKkdFna6(m?dJ`to|kh%i$sUY(sEWy?5
      zyc`wyjN@_kJzxtqVJp|$@FTY4PjulfTfGl^j7GNk_1I^0v&Hvgzj2D~J&RuBGF$sK
      zgpHrjZ_MC;@jILPA2?|I#fE+tJrxy<IH9x14>TXQcL~wKnZMbnUjGZen3Ex|3<Z~<
      qN5EJ3nwWua@GVE)V6<}<9uMs5Bxi36p6?Nz&hxD*`F^Ka-~R*j3#Fj|
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cYi|@)7=BLM-92r$Wf@8-P-J1bl}lShL}<NHE>_wiEEfwZOm~NNVRyFf&Vuy{
      z1qDU)gHaMgLQHmJql6#?R1)C3@i&<H1;$?>KIhDA85&Id;Cwh|-silR=Y8LE-rxSd
      zdmq4hd=Wv7z{*j()OFlEX?A7vDKl$z4d|`kK9(=!Oed4KkK_tR`iCN@6KL0pB`1^Z
      z8psr#y;d<_Dx|EfB|Dw91Y&6`mC2deq&039OebFuFa|u|rajt~bP5@Jv`3(+FK-te
      z({>J+*^(tuFCaPvW{(!~rE#iE+e<`wv{oQ$mvSRkVTa}<F-xF6u{M$D?o1>S^fzvi
      zh3!<24S}#eUM?U{S=NcPIZ+gtbNGp5ieveLb8uR#QOkpQ+Zm%xIOqR_%-nd6z$|^d
      z&2+44w1rH3JHL239UmMVj8E`mGHL6WS;{*5GP!BZrvw_t#<t|P6ys+6U4iCQsZg-&
      z)I@S3H<HgvEMY*me8a7rVdXNmlkJ<KuuPz~e`s&Ow8~<oK<l!&SCsDVo^_A@S%Val
      zV0}ox<#4bFyGM>&DTf`Ay{T-*&Nwg7|Ei7y0(E`)v=srn5}VmTiEgq}G|RW$@&moz
      zrzr8X#(!}u7v1vp0RD`?T#Zb+<;!mQR^aGaeRP=_dwB<ro)c(u%XjqA*KXxfHKG@5
      zi;i{2El&kG)I*>*iaBVJU@rAln+FmvY0)Pqv6Yu9$Vp<GR=B3)eJ`;?D?DN*@d~>?
      zgOJ3l+REpl!Vg3-SA`$a^sl&O@||)k=chAsE2kx1)2BaboFUIXe#!<j5=*FZ)v13g
      zu}^3GrCa`?S`60yrUbjiOLLvBBwp8SuDBIedP?Gu&VeGUd(*94ka$CT{z~_OwO~=N
      zO1veo&@EFWNzeIJ{ZA*?NI>GK?h>uMKJb(s_KrrhEfXYiTRZ&qaoe=E{Z4nu3*oy}
      z#X1&6D_YdwSQPVA*^Ub|GMi4#WU^BtI}NbYlbuS}j-m}M5sc4x)BbgipzzqW^<arP
      z5_2V5CFV)ANz9jMmsl*ZRARYANTNZaNg}2~Oh&N^9W2&B#<qs^@Y!dMs3B+Q0eQeI
      zWR&cK;a>fE8c>V#QGARwd_m4wh7Yb|;6DynzQV>)%i(DBpK9x>jwe6XhNPalJ2Hw+
      z`@hWVPW5cDgsIeW+RtLaLI_ieP^tk7fQEqFNVzE>H&c!U<k^(@sA$`!ZnxgqIK8uN
      zdS^@YK0jc$fcotLc@gEs0Xa^2X+Ta;ULKHFV1eob{nnE6YOG-fYni|)od;@aWAYx>
      z4c8f6$>ET(J~<pVHYA55YLUjq<Zvu(Y~mU*HYabPr>gwCQhre>zpRw|l=611yi+Up
      zQ+ZdcNqMd{29tEZTUqQ;7D;8XUs)W~7Q@=&Fjr~3$+g}%!nMILxi%Updb0jEPop7^
      zQbtiaLD#uh^F8E;Yl**2szu^A(L;)LKH_L(7m<*Ulr&-y3H!)Njf@hB_{b@Z<cLTg
      zd54IxfIzHjHKCA23aMJXtB|-ts#fnQB%zRc-_QFBS)q^yANfEbQX!2#@}WW+6%zH4
      zj}+3ZkR~5Ft&rJCmf*}!yc{(+%k>av39td{u#x|pP{wBbi5@)UXb)q%XyZ&@jh&*G
      zlY9vM;wXoA0lUOG42W+qD5f~G?_#(3ozwXb>=A!quXu>Qni_gMr=x(^kB{5Cgy`Zf
      zh=*4Hj87iXP_GQWNz_xo1$;_O;4@t0${UPM?n;jhJ9C4(mx5=zUx)K->!xi#*IJkU
      E0fwd2=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXz#x6#h=rB&SK*hT&GQNFZEV=nWAOT2Lr00!b^RfB_XI$&gOTOzLDpEnW}-
      zZ+O3;ctu6@(aVEtu@*k{$>neGC%F6t;&&#K8d<oO^RQ=s-`Tfw&OZCszi$2lU=wbH
      z(Il|GXjl8E^fP*YshrnKMt{ot?Xypn9ZPr3vVFpGPoyWpXcp-746CkL>Q9*!_mEL3
      zSDn1EyJ{CohCsYv<V{O2WsGUv(cQ8mprvZDb-UP~aUIhx4hpmmm+gwH+wKv)R5c`8
      z1Vo>}f}&HdPSa%GUn0h(9)Xx$wQ`0t>eVFCF3^(fNhSySlF20FO&hGjcI(TUK*(EO
      zD<EeK<8(ovtq3eUe%E3ulV!&}I&T&AaJp=}lk^E$z7o`}X^TX=x4cJpje53w1Qw6*
      z>q!&}30F^~)9IeXEI;n3V4TvcC3nKK=FRUFh)hmyx3*Ujdg81=TfXWzhMk|y%v!l}
      zNn({iQ_AAenYLRRzGHEXKp;JlYH+KUv7TkDsU6C|z+l(B+RZb_a}zutmcQtD;~|Xa
      zri{GH8<9i#l4+anPKNL5J|fUOTrL=4@K)k?UZBJP9n4bi+zq`@kho7Fw|BxerfiA(
      zc{K`^OvBYB9w03BjySpE+_!`es#VX^GAk0>1)>UGGp*YCkU-e1^k&SQ+X8`|F)YL)
      ziHBK`$|kX!1u~Pw9;K8_iBT$yFY!pt$dcHvG{%(RK?N90#TtuYv5NI5sr@=DJw#>H
      zVNnxQ(z+wTeFt_;Q+Z4=#+1Y{FH)7(kCRGOc|A`mqZuYXNhM>r5;-d4E|mh6vGN&-
      zQ*_&7&Rte{Cu3Nm@=mdtnAcW`N?d1ZYPLX-xzAQ5rl~T!$sBw*LFS(#>(XuRTGdwi
      z8PcplsZWz;6_pBgHc<-;aSbcy5I)N@WI0t2JkQHvN&eCc>^)VN2NSBg7h_nes=Fuv
      zg<p!H1B=3V<&Nj#cS;zq{i`Etw8TP*#S%*-mP&L;ER*PzSShhuVy#3_A|lZ$5mzZb
      zj-d<e%J!6L8)M$Pp3rk@erVq8IifqJ!af-q@)|RO0KSOfGi>D9xsxV)xjXegXBQhh
      zS~Ofv9sd<9>FU1wJBVbwfi`NYaytKG6!xhXfmPf}fP=K12Npz#C`{A@9snW@I7-~w
      zfZK@U4R`@Do1DHKszJR!8^-(dYP>(M#QQI6@LNv%&IY`Kcx3}l5U*~)N#eB)cpa9j
      zdtlrEYu<p3+(8dFFyrk5O@X+)h2Ctl)}P4+wN069NZXvrhP5r3tkkw<vhk3%jWVna
      zW`4qsy75EGc$YFBR>mXBc&}%?&oe$i<8-`LMGk1=8HPWoJTl7Tu<|&nJhGn0anIuk
      zN~xWoY|(Veh?b{}Y6c?}>yb<q>9mSusYqoN=_wVdLfep5r3`B`lv10eY|);fjA+kM
      zMzwQ{bUs)s>4FM$fyAYF+bz7D4Um78rCuigBX+RPW}kW8W71@TKJ$jh6xCjQ=1q?|
      zPbTa$Z+XlmGSX+>CZjDU5wCl_qnH(nse8Svn1o{LUhgR;shAc&&ijg4r<jP(e4rSq
      zn5fTOQA|`ZF`xNRF>Q)z^_h<pvmnDGxcUQ|qY0l-9^(uHHlr6?sBgt}Y{MTI#BI*u
      z5Jp4?$M6R16+@iDW7sE7at1p%ATDwOUqM=YhcR&z<Kj1t-`{ai{K@Hi8^cXajQFXS
      z1#CY)?phO~pMOpy1ULMQ&;Kbyy)yVNv6=y{;Y)G?U*T&?b};(*S9ZLxtKaiq+d|Fv
      Qu$Qjp+dS`k-Lv}UZ~I65*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X?GJ<7=CWjB)3gk!cd@K%NDi*ZHkD9EiNrBB5e`EVnBsyGEJu>GjTH0+PWZ$
      z`@Vqtdi>x=mk*x9IrsxS{sw=7$6p{m_hwQ92hZ_C?tP!<zT188J8ypb``WJncH`Rw
      zA_Ch=PLQ27=ge%`Etq91JFd6G&a~@QOy72$b58l(@Mr=p0^M3M@a=MT+^+e@t(qHn
      z1#38Pie*b6U9<{z#VqHns_B`&>j@a+b>F5_%I18}c1nW+?IW&J^G(M;WtIa=qE$fb
      z5?EgH+@MO8C3}e!kNO2tPEeV$yfK}V#4>?crazO(&{x%B29Do2G6W)-Edp}hvMv<O
      zg_^*Mv$sv6HsgB!=_ReC#uKjN&(J1b35A$hsa8lV)5ix*-)cm<gF%YLzKMyxg#{*G
      zw5H9V?4PhJOB(A0Aka|=JkN3p3%P~Llv|eA$P~whSsUB&%OkfOZWf3RkB&8&HR5d(
      zSeMzwOY=9-KQORi^I+f2m<bh_HmkveJI^*>`{>lHRq$DRIaDayj_u#aINN(q3ABv3
      zMJoXoIeqI>Ner+Oi>^~NOA>bqBr2v^2X_$^ZKtMB?pEb?tq|QK&|0L8<>|wFsX6D_
      zvl<LhbCESvN3E>QeJQL!r^Ev+$)YR4szfTL#6j*wTY`0n%#(jeVeSuepYtTfxi6Z^
      z!(<98m4`=opIOt9I8I^Onvys{q2l=xykyj@(&|ygSaf@a!fZh0$F#sVc|z#~yybZc
      zHLEHyMZvv5^CAVuos*cRzz$bYXHr<DqR#Sij2f68y_R`7M)vB+VUMz0DuF6RCSWrT
      zKZzDbrnax8GNn1%F?LY%gPO!sEFTl_E!FT6i;TcDTn(O~CQ}KIo+DyD8mXk7PhmAW
      zmGnXiUFb~U@-59Dc0mF!-}KsbT4II7N{Lkxt0lT5)<|?qte4m%u|*;#(I(L@kyatD
      zrm!8o{4U0A$C}h%=LvI4O#wqskW(y)!XX(S(oNTfC_YQ!6YS*e{TZ8m+B^O~ClH%A
      zS+ac2j<Ca5ZSTE(kGJLYSQ@icI^F*<(E3%kV<WE;<v3i%g2fOgN)ScB0-&u4CyCpe
      za0hX^2`?vRC)2h|^`qX|A$sSd=$%iZ_ccv+YpLJegnNkBH{lJ$o0@QjcuN!BinZz;
      z=r_uocVH)Pu!|R%*Y`jqnwHnmmv1q$xqQsnoy*6KJ-K|s*qh5sV_z<xjvM>ACXB({
      z&p6OfzF#RnsFX*P@~Bciq?HeA<s(#{NVhA`QR8Ti?vE*poU%BnEKVznytX*2Egt78
      zjdNUE4U=n|QQ(?1EP5(6JlV?A1?8!tJh@Aro}_NvsBujg0at0vb8R&ixV9Njb4?o0
      z($mFQJ*6JysE5R*bjNkPn2(ZwiK)Iq{wEw@o-HBss%9q0#6spZ&6Lz#LgsbNTqKhS
      znKv|ZiHr=HH^~@lNu(QAZz-lnF%7G?6|+Gx4Xbw)lTl1-=;vL<Y*kEK$h@Z*shDKQ
      zyswy~Vp1XVfnquo(;hM(DrR|(CAjh<n<IjcxSrwA0`{N}dnxb3ci4|VF^C(Sw{eV$
      zF3#H>I3$KRZzpkBoaemta70|@yuFGE@jWKRH5?VcbK3raW8yCk+Zz~(MCkEj9Yy`$
      z@#C&HA+p^07l_!7U-0R_X{fIZp-HN)fY0#-Ie{<n6<2mJ`nfATKG>BXxYw^xw>_!D
      O)oojrY`@l8-~0m+Vdjni
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#h=qB&SJQ!cd@KK`<y3X;VZ*Y`sw~B54tZivbm;$uymk%*4q|YpaMC
      zyx&FfetGc0M=uYq#aj3ST>b`sg3DhZe&=LT0}I#kA!qOXoqa!hc7FT&%C7*n<J%Ns
      z0-LLDSeUiutU}EzTQ$2-)a0N$?fG>pa6I>nTRSsZOrc9)Kr4oUQ!5mmW^mMQdZAyo
      z_k?bxW((vhcG;<0HPdcbz7=@BfKhDuw%lsL41C9}jtcaQdu}tZ+~9;&3vG#R0kKVB
      zdDZvA233~qC9(n#$hu*D%J%o`lq8l3B=W=ge4efvHWP4z_LU(J%ik^_=WY93#ad_z
      ztT=ts9GWwpADmp$%4m7QbAuV$B<m5Au<DIEfo1x7uNBzsNVhOZr7|=zF|@G2+$;99
      z71n}dPCe2P=q-o7Z@c9MbD=)v)g*3Za?>?7#c_k$_zjo03B)Ih2Rh8!kyy_9O&jvt
      zSTKJh!y_Z3*Na0;rObrc2d3J0y0hTJQ?qtCVAJJTx#qY|@Brg%89X7-HSSgH6xjIO
      zjc+6|%pNRyZpErfj0mLamemsOqEK<%roOpbHQKWy=^laZ3T<p(U*1d2Ip3Mp!hO_S
      zWcSonH(zutixudTU^cNuPvRlcx+SrPwBktYC7ma}U&*A8kk0uMkCHB0%0n@WmCC~;
      z>zTD&iO0xH+fx!p$<+No;usmLK`T}puiJF{IGNdy%BM8LH+e$ogsk!@GEKW7ah8mC
      zj^<NjTyIXILWZNQqE2VAN=2Pvaf}*TKE2MeI7aqc5+69hcBuqhvP{5XoCX`t$kgUn
      zL9RwFpdDj}%^++_%&~n;Ah6Y_OFY8}OvBT{A~l&xboCr1=A$K*)bm-aMxWwd$f6&8
      zDZF&U*hf>4!o}-ey9G<EkXR|PN@BG{zr-4e0f}`I8zk})35m2sk3>#|_$Z4zu$f;(
      z(Q)lb{aqfjrqt(e=+$w8Em3j=Cdc&9r4h$xS$u*)Rv*kboYTSL|6DyB-b~dFxHO^(
      zU$tfM<};o)^*-9~sB{MYW0MW5X~#yE66YRV#)c)3q?Do*0~>&Jhn%6@(;@d#&UMJk
      zDRYu(+pp$PQ%;Dcd=yRjB$}@2uv<(0feu;4S=S-2r@Wy<-bgv$A#cK3^$zqKXU<zN
      z$O^WyfO%a9V)2~3iaSeP#*kS`7zMMGG`5?il(EAsNn@v3$|a3mJX6MQ^Jk2<mG4)|
      z4=Uw{mGZb!-lvrhXyt=cK9uWGp5w-ZN%x19#Svv;DvRUF;-t1HX^Yc5rST-sZsQEk
      zv|;hg7-f30+n%b*lcPMHQ=aNeo;>O%ji-60j3!TMggm>Ad7f!wfoH~emY&WhS}A3e
      zqYQxyx!$XIu@oo%GE;qp_)i#Rid_-%szweGNkqtN8nKBaBjk0BoF|fskT*1PfryNd
      zH;EW)3FO*VZz&|Bkhay^3R$m^w$(cd*{G22$j`e9*`$zkguJH^sgO*Bysr@LIU6A#
      zD5O{E^hC&q3R!Nl1($y0aK!L2&r@7lzzz&yC;46Y4!iLuMsbaMHi><rpL=#I4u~=C
      z*-0D}XSrv691<5%6qhj}zUP*`g2Uo>F4;eDMEu1adky2U7(HIrQPjUQKkn8LqCm<&
      zZX~w;f=~ZVLw#k4OtLKne2y=O34DpKcyfX<Ose$wV3&R%ZI#fnJ+8yGY`d0hzt&pc
      F`~$0z<tYFF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>(Im7=BLEB&SK*hD(8htrWsmmbQq9*n&z~M4DCzivbmGliT#R$-VLBUNCNm
      z;=V87uIT8DA6-5;!wi1VZ;rpgpWyfl#OIvc)X3nB`EbtrJm+1{dGDKF|GN4UfUWp4
      zjy8eyB_|l3GtZjCWw&6Kt>Fp19du?~uVVVP>zsC+)00ziv<viU#lW}A!xMJRKVsF~
      zz$;jL0;gEE1ky#TU{}m?&Z?T8>ARkQG12gCI;G*9@7YdiRG@R*b!xup_{Yt1U`ccc
      zh|L0vN}d~3sj^@%krHV8`HDcw2`bZ;w_hhE(Jj!C*__FY3}rGII;>hu!||KPhCoao
      zuN9EzENi}K)@uTbPu(<|+N|sOCl<7l8fRU{pQTN#5(-hXQmv5a*2jBI-)cs?h3OTG
      zLj&1tcA(B5D=AttW>EHz+LZ;ZTLmD{RR}!Katifay)x~VC04P(d38~?<Cn*8I9wwT
      znVdS*V%ChgUSP?ZfyNb#jErts(-c{7ff@5Mm}}3e){3X5=d6Oy`<G*dvhCRZZo1zv
      zcwC@;+$~yh4DktXd@hL*fq0ECY?cNjZliVOm#;%~JCFQ&t#Nb*0pGO&?xY?YAVhcZ
      zXvVV|M`JuHn}MfL2d`vz3X9PraSyYp1&pzW2{8txy`=m)h5Zy<hr)e|aVgwSVaB5{
      zL2bIzt|n7hqFg<|!#UHDIHI(yX^Ep0DyApFY9nTq!h@QzB~DV93#j~%7WgKQD4n1r
      zafU+8s!B{#aOZuAA_d1iD=|Z%Xw_5!vnec9QRmn#j2fsgWmT~??P=hsf=sU_Q5A?X
      zy3HVb^LB=10=|~Yl+Mxv0|zxmdW<d3*uJIuUgB|eyYs%Q!IQi~W)U7eO~h0*Qu#cS
      z!ZP$I>Dd%|(G$nT8+t$Ngg9RK*NZo3iNz92B$i4nljxOLF3~5kQew5lT8XGcLZVY5
      ztwLN*VFL#FSxnfDHK{++qvo`l28Ny_$4$>xI3#0Zy73Z-;NuiN#3t76&)V$O!HNGl
      ziP*r&lI3%Tgk8RL!{E*PJdxAmX}_(~>HCktHl#Wpt5`~eW3ihT7DbFGPSgfo01_=Y
      zN!;0jyNJ^*co8wXnYO*E74^>M&^sSR?|c%yFK@A1LH)iK+)uo+1rHFfZowJiwJmrZ
      zR;YKN-w1Qwh)t|uGYdGU>p)v1Ew5oqzTFtk<)g;dTs~%O%jM(7_FP^XJ97DS%-G2_
      zZj9!Bz^<n9-Aeghr97^b_bKHATKS+>K1Ahgx>I?M7*jdAKddZr%Ho)^IH4@^+TxV9
      zc$lj+PIK)rOs)x|z%^-D^i*nkvX!TK<*A}PxeJ~irEbiqag7@RS81H%+F{hWCX6Sz
      zCXJ`)>3p=2QonN4PvSzl>l&WRN60_VR9__jJ$5nA_K<l=Gg&gxka<}%B~?qvyrP-&
      zWa1(7s%9>bks<RM8Dj;Bbkpi}#q=wtY4wI;1{Bk@dQ&kO#dL&z-crmu#Uw)JZN*5%
      zBtzyM#UvGz3Ym8m)1{cska<rri*mezOW(0M+VDQtlblz;Hf+Im$~*8CcH$3=;yMRz
      z4Esbc=j}!u5Mvy-lQ<~OaN2q}BrbB;UPe}YgGq4}Q{p!c+TU?l{K+|c9pi0n^!R~}
      zqW<dmaW|R}!`%7rhv>#1@zFnNsILs6NvffMPw*)@fzR+cS9UOlxGOzA*rji|H%e&O
      R9@F6(w(SeHSG3j_e*?W6=+^)M
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uOs6#i}|lew8p!q5Z=n8*^A1jvGjhzY2KMI?(bEDos9ndwYAndy!_Jz(4r
      z#eHAEeJvk+ba{}X3SW4${0;sD%U>XV=T1)?DXcP8x%Zs!?Dw2L^Xp$%e*v%+-z3nW
      zu(9A(24?KD_CV3k*+pky)LaL>DL*LLq3e66J^%FhL;{Tpokp<|y2XJ}w;UdE%6=ut
      zIeRKzzUU~V^G?n!*~N@AX9srZ2MX3`)wk^x1~OsbdW9i{))C(;hqf0Uw~G}=qgg?1
      zQCM6E{K_0v7VI@r6!j~lyh>@(3HF<uG#1fE_m=K%`5)}(O@7W{CSF)mu@sUED(e;W
      zImemJ+w*0GC8utgRC(GD!V?QxEruWSy>OZ~O{Iv4+oib@fkj5V*AAUp#M>A#pYIzR
      z>zn5v%gH-acBL2|bxR96w<|!QEmsKw$IH!U=1Y@)QDcol!>qiP>xIRUn}q8WV&fBs
      z>da~pH?kw^7K-d292{ELSI@HQ9Mk5jFyZ!7^<_^?&N#V{z0kwCqU*WgZbs?pJ+9C=
      z;^&<N_~_}ITc<IokSJfj;^pmv#vSr3c9p)9g3t}hMsODe?69Hl7J(lL?xA2RaExG>
      zg5vcn0hwmL$?g=Epk3oWW*`wX_An#5*Vs#fzBTrfpkIv#1o4SHNP-SEMrkJA#MO8T
      zOU2bg6wZi)BckO@Y8)j|vT4UUWA+@0hYjLtoFp+*q4Fb!U{f9woeJwbL!#`=X-tyv
      zXG4uV3C};PF-0QplqKqP3d<zw3~OZ6ii9b$Mg|TH<1s}BXZmvraYlC;giUW`SSAn}
      zsz~ZAJuq;k%t%itG&6SS$oOkKNr%k9H_X%Q9<zu<&yr&*hLe1rOJO<Mg?c`P4zwq5
      z@uty_W*~u={?+R$tg%F6sm3ym<r*CtD>OPaR%xu&Sg#S+NNTidq$R}V6nfChuVU2o
      zoN@E59<?WBCs<~m9Jd2k_y}woHY1lr44<a(F*dXIaN6aR_KyC~eZ<jiDL5fFNi^Tf
      zdU|g?;mM3yQu|#=r}ID7TffXY*07Wqm*XNnSR75{666}d2SBopZz11W$G4GB*YS(V
      zbDC+}A){z+4u`qf6mzpB=3Y@}x03pub$l23RdxJo@@wn(Zu0Bv_zhSoeW2eMbKZo_
      ztY8ZZIA`iWLoBVYp)cEL4P>%$YilOkWNpi26V~=jR$DtV*>sb&lV`#j%KU^~HRXFn
      z`F>Fz5#@cNe84ClG|GplJeF=1&oOHvL-&WpA|n>Z#NvclWR1lsWAP|YZJp-XY}q`M
      zR*q+j<<L{1=E)ULv*M{Fp8N$*k5jkFD)UTO6`tBU$Ftd*=b5yg;@M(7Lr>@9)s(u#
      zQ5S&=>9%WlAsZw9B2#^t_>b7dJR2kA6@!csiATt*1}R7_5%QWr&J#&Q$m<5VKtxB#
      z8$_&?1kyFDHwEbuq-OP&AgcwbS-mYtw;;`tpLYb=AV@Mo-W5a((h?!>3DP1+Dni~D
      zq)m|42>C#e#Th=qr5`vP4fv4fN$x9P8~U)F^bUNBo%jPoxWR?ngng=m`*sr!s9~<#
      zaU4`<xNQR*QWv>wFJnx7hjDck6Y4iE+TU?l{mDIh10xL$^!Sm9BENO~xT`~m0p9%i
      zLwwWE_~f57<SRpDlBz1;Gki`=;R}4plM{@7-lE5bUHYDPwS=neF%zz8+qhu+mC^e8
      EZ;GPqV*mgE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)dsk!l6LHf?!Z6LRv&bY`sw^A}L72#efPYC#UHt$vO4poMJ`1
      z;{A#jy!+&gJgPi6!wkOk&G9$*6C8hm`0bsO8W^0hGu?ZwZ?E;Owf0_T<+s1D{t93l
      zzDpq{u(9TbLo?=_IaK#7vu+O+^|s%g^8AJwIG%gTvrdgqrqCrYpbf*osSg#MW-w_t
      zz0kMp-Jx5p+XA_&Z8;6IUb1IR-wZroz$mu3O}92w3Vg?{jR^FNd2TZ>-Qbv64{eEV
      z0kK73Y0dY-S(+^ROJoHgkafdG#rDT_N)k&168S<tpC{F<%>>+_ePjs4@^=czv$lPv
      zYR)$WmYuw14$W!L4~{QdWwbuwxxqAjl8s16n2p&6fhGEQj~UqQNVf^3tJT89L}8wP
      z%)V+*nPELR;xr-~fnF>0ecQF>OY@D2SC_b*m5%dP95<+s-E?+`Kzw|Xr;A?gP^@Qd
      zehcg6|8QY=c-@APtvBi{*kZ=K2<F;%va{ktl^NR#c<XZ1synU|Jj6Jg29F7Jjd@i&
      z1>St_=0}n!2&Aek#jWvyhIu1ZryjaZiF>r%Fn!ARl2sX5zD?~u?J~1)C8Tn{KzG%d
      zv)!sbdqAHx%}QW*^Fc?mScX0cl?w?Z9-%;fiQN=PF0n@mwk5$E=~AQ;j}aoH#N!mm
      zrI?CYELThi3Dwlu6BMTGio_%ZvqGjL6dI-@!J6YUD#(*s;Cq}Pw^>`bBJmWVrX5H;
      zL&38soTlJ<a}pH_>}(aSn#BqgZHnbEnzL}3{L{PzM)X_S44ab$Ec_r*=T$KS$7Cc|
      zRS~+=60<~S!uqrd#xEqP;x{P=q+tejqvG?*=NN%$cv^XmM@%I;dS2bSZD~y<^+Faa
      z(Wj&rv*<@(3NPQ(^-&L`@ahe3-GU{SNi3IGA+b`TUt*QSfW#V!brN}rghX1RM<S;}
      ze4NEy*vJo}=(zSl{aGF{E9&bv^yD~ZvR>*Dm>ktDmqr|)XYm;Zc@4p|!!8{x{?Ez7
      z*3H!HfHNcN?-iQ{Z{6YPk{(Cnj!I|XKL%Mr^*YwGlsL!W5?)vWNopx-G4KMA?$9&T
      zdph)9>bVYmDRp)-efw1(>YW{;cRq^V`6PN@)#10A_5&TdinFFeUrT*mhrXVAzC+)D
      z)#@F{8)wd&Fvtovvw*X@4#eU)c@1}$yNs=+a>5uYm6OJ{QaNR8FO{XSqg2i%jh$Rm
      z#;(#8jI@m(RK^c0<42Y8m@?k0jrVEe{WLz1>ru>cW1>X*L&}53N#n5cC@GJl+T*zP
      zD07v@Nv_?-(_GWWDXtmAB$L%<vK3QJF*%Cq%py~Rwn@X|nlhf{Dvc)BZX@KHHqLU*
      z81rO0muRJwQA8O6=X1T+@KQNW{1vA98u6bo!tA;t<bp;H5J^PH>l(3$BqQVvjhrKr
      zijX%oa-N8ckhh2!s|n=VUT-TTqmZ`OI|^B=kha&m3R$m^?uh3-g=|nrIzrx8h*U@>
      zLOxK4X3j>)hYIOcHa!vYkwTW1cm)@KVspgs3D*-GTEKQ}#SY3l@jZ6oPmJI?hinpi
      zML%ckX6zHAoUjM6U!3NE^>IL4Kv7)6gt*M<dKHJn?;Ngw;IR0Mv-LX0Vlgs)s-vhM
      zX@1<TCd3eT{%#|&`4?RJHx2cbA#%yK4DbcMBqs0`zUImfMuEGs<AYuNk$bCzmhVv=
      OuI1ac==+Vf`t~1C<>|)&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x6#k}ZlG7xGFcc_Q5DW@MdO<|Q)*Iy_l5z_d11e6Fp`CUz6DJdDtB7Lp
      zen;_ww+A15^zz_Ztc6eZ#pQ4CC%F6t;<ryGHL!3kyH?NH`<uPLz0W@T?ELok)n5Q?
      z!8b{?8Q3uH)dwc6v(|v?mn_#F$m?yNcg7DYR_OTN>8gABP(F!v13lWX9y;zo-l>I0
      z?3!N>O7_mWS9Wa!*|J@7DwbQYt5#rzeqg}NH@Gcte4r2pjyFDJpmW6cYN6$Y$1S&R
      zD|8qzHXB$n9{BYtO&0tWG6rBE<JBu;cCbgMq_EgPJlCJg<w#YvnSd8IKbZ#Fa(5a~
      z)3!ZTwq|MumY%w04z&qC2v00nrL{ild*K9q5|v1ZTa{{sz+(M*mlfL0NVgeC&G4^p
      zbhNKrX7*+Kj8%8TqfRBVF|epq4+7gO%@k%TW4^0!yMfrr`3tOz<Av_XO<(We*F*V}
      zEq={lJW<d3+-4q`|AYO5gF}5cs623q8M6?~wd+*ti4TrV+NF?HSHmUO@tp7>M%mbV
      z+(7$?U$&EA<+C?ml0v_M4$ra6vySar3WHK=zX4eD7wjp8dswDvUb4vdQl7sO_+^^j
      zC&|oCTR|va?l+LEI=^1j$^$g3`D1=)b?{b)Ggyi)1xbj^3Xf1=5QUu-NUgAoSqiVh
      z9ztYQc#Mz`Dm+ezY(kaKV3|-I5Gb5cI7Gp%hYCk1RIEVZD21tMM}a3NGO6$ch0-kJ
      zvf?q<sVY24p(dF;O<_8iRd`0CS@TyF#<WpQfp;An59$*3Oa{v(>;#X@uq2zGQ<$U=
      zV>1g^I>`!V?UI7Wf-*i|h&HO~D%pV`3VbOEW}xMehD;)$CTwS^G8LPUsL$~=NJ4Tk
      zf#<Novt)Al8vUwOR(OHt%uYVf&q<CiX0QTXBE6JBH@cEw``z#+q7F%7?uJfizzRzh
      zmMJV(SfS9Zuu`E%VYR|qg`7fMA*Il%kd+W0WpEcZ@VVq2&px0Z?NMt?W`n8c%5f`j
      zM32D4ux`i{V)!hBPteQCg%b{YxHtbl=Moz`J#L4bC{gz>-`IQW{!bP3u-fBDIz9g}
      z=KAF&U>%PV<B(j;g2j=bmZa7O767RhJx#r{MPEcc+oCU_&K9R{xAdpp*)V$NrRbek
      zqW6_8eyeET)1ph9)h+rO>T6r{b<}e$`g*LAdmwL&Id4QSPq2vxnAYb&TP&-t;qGF)
      z*;gpW&4EHOVQwiDljhb!QJLEc#caad&NXT7DEx$>rtyPf{ID25D#jyXyjvUZ)yDg1
      zyg%D1%rSGcK>CB?aacSG;&DtoPH2y!_Bh2=nNM-;Fi&$$nHJZySt66&WEvMHN0_FB
      zsj|T2(>7r~%Qb1%xGJ;GwZoj|nlfj&rp@QcbS~aVDJ?{40_U@fuHofkjQA@|^&;^f
      zF~k(xBji<$>?abBkk>R~6G=qK>l!&nBpD%ZXyiN*6(MgDF;@}DHoe{wBrQnO>uo{S
      z2-5U=N04=bbVNMw3bJ01RD`@Ih!P|nA@2*KnKKdcfgp>-rZYl56l6((CAjnho1+aM
      zb3Mr!25dziwo%@WZ?OY^VhGnceG}MibaVD@!d_#TqxS&z8P9O=2H0=RA#Ys9sPP@A
      z?o}K#e&^8r1BZ>jICHOKq^*sNmvt2R3FqT(G$97K^H&}5O+Vw)f76gxhR7w;Fu>=y
      nLd?Jy_>wC-82#MEju&?6d+v=RG<=Wga1Gz~1>di<)z|+3r=|JJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7>vI!T6hF6VlG`LLVJT3sAebsG(x!-r*!rL?MIddZTfl${o8&g#lI)hvZlU-<
      z6yNU$_<rCxqaS^IaE2ND!Z*ji!9T(AFA#s{W`lvj89UQ^f9H44Irp4<&Yt}C_vK%S
      zXe)garxrn*%1)4-w-&8z#VuMDmCfmGuQTg<Rm-<s=h%XOY-Bo4t%AC>V&L1AY|gIv
      z)2ikMUQvw%PN|{<rAw-4SFMVv7A(*5T~CmatNXT`a@O=c+bItTY9Do-nr}J&A*&K7
      zNo|6}7D3C)o*OJc<+{D3lpqq6a)N3>dE+`HNy`L9GXt4S2Cfzq0&x7sks+uhbEhDA
      zN~seiYpEt^#nD^FP@8i-|L}FKq?RXK$De~utQvx-Rb8lpSf-E1EMGNlx=m1`RO+9Y
      z=wHGgqA#ggE2#K0b~V%y)KLsPPdUXUbE#TzE0S(Uc+)+27TfVFqc<JiAt*93oog~{
      z+=YbJXSN_={0|Nc4sPff>c3G&#zlmTmq4(cN1IcgD$J{*k7t*|#ft6N{zJH@x9^ak
      z)={^l;)JJ9-&`e01A^iuw~BJOk_I8vR2g-)B;AAe@s)S=JK%ePPX?Cf1K+1HG6TLJ
      zC90{@3?E?ItCtE^$!$X|hf}nIIwf%wV{TQ_BLJo<OBw-~QJ$nRfCB+c$2G7eJ*st1
      zOWKF1O*msuxfHErPm?&@XE~A{0~l9}lBNMBEO?p$*i`^PwqW4tae#dRl#ghDnmoZe
      zoa9pgrt&2n2bc-~3ILNX9F_pa)ET~YHbtxW);Xj#Z#l~LU^*|TZB{KRuP#=&gDkud
      zjvTy%Rq$-ww1D8NmJJeLMsz-K<^X*SD-0K5W|iHV4}2Q+swrPp3+(?4E^`Av(84n~
      za@@u6=s8Fwbw*1Z-}5P2O`VKhNKqGc#_9Y`-$2+9aeDcN!q;g@D<rLyv`W%yNnMiG
      zNa~ifPSOTR8A(w|2}$je(tO3m6x~Ie@Ok8HM@{OFbjB+1EHLyOIb?Y@%OM#X*8P{D
      z2z{2KPpA(M;?LP=*}mNWoI~j2WLf!`AYrqw>g~IAyC+ONoW^Yqr~5y~+5k5`ZA2;&
      z48>)5uqeeK#UZs29)J=}auRZTliUG0-6SuEjOK=I7q_O~(JXpLQS^?I=zUF--CF2(
      zH_3d@x+Zx&<PA;oM#z~axrf$r9pE>Dn0u)Y8Ei%Zr*t0F5=qM|ba%eh=r{9GBWvbk
      z##S>QH@2C1X>2$1>6oztYuwmr{!Bv+<p){$VOHM7%A>5jTPyF;%6p-_Ki$rrBgTXY
      z_fu?ffGte6ILH=<wMAZA9K|Y)C$Y8}$FL?03v1FS!jo!vDzhh>J)K}rRrchvr<2f)
      z88xhNBfu(+Q&`)KC9DbKX{<@(S$H}dt%sCkM@bOp(j8am#e4+(O9=H9@ITQILTnA0
      zS2eRAOf+O((~JTW3z^q7a~4cIWZuxsIWRJ0-UMT;1(9x8y~RwDnTFNd%&cdoVf79(
      z8<}Yf{k+Re4>O67d5;;%OfqENXGVKYh0F)cbg)i)$b87mauZK*;YTz_3w?z32<8{j
      zHtMJCz&q$$+DU)X5M9IEjnQt=g|WMt_K0Cj-AURjj$`P0v|pU3oVZ96;(H9-%QPi^
      z$GrW64v4=nZm-d3OA9=HtZ(6;Y<%4HCZsHO{EAa_^Dp%2zhUrKMxjZnu0WsD7vKba
      jNnc?_2h#v{)<eNA{D8flLf!VDzOHWDdfoPGt##=ivSsO_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>$}+6g@A=%)HD@!q5Z=7!e#4f+Q0}L`+;D3j$ey4&Z<aJu{D_VWvCw^Z>yH
      zQQY?h+!rjX@T1EItEj>+e6#!w{shZkAfET82L}qPOjX`H_q==0y>IC|zx{prR{$IE
      zZ2~O<Yi7J!?wE7J$(8-0Q&zcgGwtw>`a#7BUEe!A7ara{oj{vFk8!MpZaFvZR>Qrj
      z>eqsz+E(*QWhIa)siIqP%C?$w0w?qX0c*Uj?RYaeI}BWJW>BDG*!QZT<AwX3a!pCJ
      z3yAds3ugkqHb<B1@e*kP2&BDQrJ#Z_Q<B62fmpUbo6S;cPO$(lY%Ey<E!n#S<VmHD
      zmz?>kz@kI9tf4yV2jPM1UMXWw_+B{6n0O@uF{d(DA+f+Lk2s-fWV%ftSt|8SO!Uq3
      zkJXpdQKwc8r`<~ABhXo_1%dL4^Y(nD;Fl%t5NI8(7I`kN7nX-_TD_C2yQfE+;u^`g
      zqZQfp+%f+L`UeJ9t{&{W(dL$mteHo_YP$|K?|G_lOcg_(yBsQ(UC#|4W}daZ`vuyD
      z{gO(6XP>$Gnk4!K5+i<v_u)$n(6H4EFWQl~mj^Vhf~%K^?<3w*bApigeuKF);s<y~
      zwmPNZgF5!=#e!4v+j*HoX)HpQgsy`65|0v4TVfjlbtOg!C@L{#fGhEs@i`^2lT~Xm
      ztu&s-Vy!gE#hs2Pv72B_osif|FyT;XnqX^zfV(9_rN;?&*64iD0A9)y+DC8lDFR!C
      z5=RK8Y6Jy>NuPoxf)RCEXFZz65}kFH+hSJb1`ItW(9X;%sGDV;1oL0L#3hd>!4h0%
      znq%=Sf+RnU7^|2i3=J%6c!FW9q#6>R;(f6gRVirw(@e&SYQ}h$OROqddY%?bGnTIJ
      zg*29;OQRRl=tfrp=WhB4q6d+{D>qzxot9W6u~=e>#8QcFiDeQ!61PjNl*mfNB$5&x
      z5*eN1LK=5t4Zn|Z*He?`E1h-<x*1rek?eN@SKAR8A2RPRiB^1`#;54zfrPUzpKR~=
      z|7=8j$Eg_=vV}yCeaYJ1TR-=tZMxH#tIO&6kG|HgA3j!bE3NE`3wU5L#AzjHwSWhJ
      zWRsnu-O*%s(#|y53u*IlGqzhlO*8Ycn3<PiW?qSzmo>#Lr+-hAt@GU8WUrvTvdLaW
      zJKJQh#&UfR)NN(WYthRctm6hwnth<9H6yR!o_w3tXXj&9&d$fJ4R$_ZZM5^!+GOW5
      zaceWjgtf)~8G{YyhqUt}+Ig#X9@fsI#(BGO-a+SGnGUVoYE9UbpVAR~bcC%V_UVWN
      zCL(Vl4sn#$lN{Tv!yJ>A!!czQsiYc8Gg`^jO2@TQMJxGQ>1q1Ltt!WaRpThFlN{Tv
      zd5%fz8ICFIIVzor)k{igp%jU;na(SCDc?%|WtRFX`JXVz65Ar?HN)&86N{MF4Wr1!
      zBjydmoFS8lm^Te`mW+&;x5!w_Nn{#PZ)+x{nMTw*npvTlM%25SS*4lwNasDxtkz62
      zV&2z`)J!U3KG2L&PDjj#n(5R&9TD@9W)|8!g7ZJ}akSuLjtAMlfQ{(GCgRQb4qNai
      z262sjH;z%!&9=J^+r<#O?j&}IBW$_>c8PNs7Z)%gzGuU|j4AOu`|TgtBmQE$y@uhI
      z7Ak&XvgqGze%$p(h#Y7Bj3c)07ku__8Tu<j6q2qx;0t_7PT(ti&5<t{{hYNQFYNpe
      Woa<Yt$L=%f>alItW4|$87ykiyqUa$2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYE26n-{olDA1(!cw4MK`>P)(x!-r*m{AMVj*dzfnq>~O|nfFlHIu31?vr|
      zc)wr3``r(Ia=d(Sh8g@KesTN_{shNgAU^M#4F(2h>`dQt&hwtzd(PRD-~PVvGk`7l
      zGKP?b4HetZ95+rHnW|GVs%9pu$fP~zxHZGG9Q&y29G#htp+iHTQuIBmn#o!XZ^mpm
      zzFRVP`F6Q#YDksMl2tRRd9!Y~hUd5%^la0&VOKJF&$aBzh=#5)$8LCr?adlh-xTQ7
      zpl#N$wBkB`ohn!C1(F(|A!+-yqUlbklmwP&h@^+o=`>x{O(tM_tt(waD1EaAamqAL
      zl#PXkhGj>tn?qyXalJ!Vv=U0rIkq=Xn`kXyB1WxVBd|nWj~kxZigbg9_yYe1bGgBC
      znc0`kIm54d2drA4qoKRxyRK=M7V-<VqEi*PQA0RuTC9s@d)2XPZg1l4%yhQRt`&?g
      zTHC)ay_s+3|M1Z8@W|lRGM`*x&MXD9?K#r^=IP>bv*fYvVzgAXY|FccaW)RjYUmhq
      z%4Q6#ed^ja2@GlI9QSK9C|z0<7^ZsGw=IF&Sf8BX{`wX9+vzoDu?N0O=?*&H>yWvV
      zDzlbtO7JcgD*wy3wc@2k@6uu?+c}!VGV};AkI=X;a35)wbQfvP5Ez$~mJ_6V9fA8v
      zXDRQcdwP;CvPmqLE~W@shAr>_nK`p4FhizhxB>^r7<DpyC=uE}NXGK1d{{B;$3s%b
      zuLwLsreW3vj*)Rno<Na|?VJ=~Z^ImH8Fem+6*B5PUp;BqzTsLN-{UOQgjsY0vDz$;
      zC$DS`v7L3-s!E|wM>&}Xzl+EuOG(UAthzo)yPbZ;Z!q{{vSw!8GiyZ^;&FzUE_qHM
      zK1p%Pv0ArJ%TAf4rYQ4#CW)2kk=$Yuz37SI>^0v(FcUF6e^u|Bu)s2b<pL`NRtoeA
      ztP<!GSR=4bAT1CPhzoQHq-2QmN!)@B{6w;B_>}rk4;V$c4|KIlW?3aE2VitmjbI#M
      ze3Zlo7~oua^A@LeAp1Xe5l1;uF+FaPVBS}39Jv0($Mb4IO;|FWzW-QlLvr@9o=*vL
      zF)m@jB8XCoQ3`<tK)g*(Q0{7zyD6vI<fW83-L&nMBdREeMo~6JQMN?URc&^wso&Qo
      z%Q$P=<h7L7waM!#r`zOytd@PC-!OCDhylJ}6CZF&y#t|eN?gRPg${i%Ux?_Ld?BiD
      z$rob!)_g(e+wz4}RNu}srtirAh>@1^-BS5psk~Dvk4fd-N_me`o}}`=RG0J|)^mBf
      zpOzN;rA1y^9F!J^ltn>V9N{VShk17DM|s9|gJ(i7(UaNoRFR%6>FI>@RFj?@>FH7G
      zM)d~InC|lw`YE2B`U20m{shm2{uDi(jx<wBNJj|*XHwl4@oXVX{5huj0`VU(!W26K
      z<VA(-BN7RamlR?Wi3Z5a3OP+A79g)E<O~rJAg>b9R})CJtX`8yLLx1z*Cn!6A}y;o
      zB(h#2oq?Y>CDJdEc!0bm5h0O8fV?dc<vAH3??|Lu>U0IjyAoNNX9>=I&*2E+J)VcT
      z$AGOE#5VHV@ilhfPmJI)cW)HCwO;PtP1vK2a`#SQQai@o>tdgF7Fq2)a@sdsycaO7
      z{m#An2li`!aqV8lSSUn~@2e>CXPX~)a|n?k<u5rRn|{KF|E3|oG6W{crUE|3C&V;-
      jiqCj*f-yuY_1Lg;-;p+-(6l|M!ZmF>uGoIAw7&QUiNxyj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yj+b>6g|^4$!(IBFqBfT<yBtgkrWXTTYOL+B5jd|f&mq#$&dz;NlhnUeYPp$
      z3n?N3Dp0Geh2Jc%rIywD-Q|awKj2Sr`3uB-?o3Kx;aavU_ujL!&%WoJd+*8b|4dF3
      z(R#Y>rwWBuri?=Ln07*oW^xHFqenaBw97b}%V#w+oih&S3x~UV{8Xt>gCrKrbSB!7
      z9x%K0fm|V<(6<(hWJXsgoYWKPtd@!C{aRi#b9sf-4o6!vQqh>1PaCOLg{s?g#(=3A
      z=6)?x&;?Z~q^wnFb}FAM^n)_vFDQhsA_|3!Lbg}W?~pMGngxxfwM|X@X^CKl-LE4O
      z!z@u$g#t5_<qC<Dx_&&V4Gt(Y=g?z=8tBXA%>y&6ptL)4hS>)nU)EiCwQPSDz%2Ro
      zHqF#aJ3fIOlgUVDXJin6NGGWu)e0GNUphO(S*Q>xRFf#=^SY53j16Xca~VNPuz@{f
      zk61TRv9w`k+8-e-Q^?cZ(_Q9T+I6Ku3up3-w6rW<*1GOt8@VSCJZgimYY&wtzo++@
      zo-lDDqAih08)@@7?6azQze1JmxuotVls^3E0SanSsLncXP20oPq&;Na#eCPAvd>s|
      z1wF~%jak#y6tFw^+yg#k{bEfDdJ6Gd=j|dqhf3JfsG2p-Dqv3tdWJbSpjotTVH~n<
      z3woBZF?$pkl<d>YYh!GjONRexd^1sn%03sOIaDj?1r!uJAwEG{c|8WtJA$@3c+nmb
      zw1d~YGw_#qeS`ND^s?mhUV=I#$GT}3S-mSnb6NcrMt_1L*f<lPbsf=Ty^q&dtO-^}
      z4Sm)*>o;D%>f+X~f)4WfvVE4-Un{Ne33|if-{O3a@Om7Y;PmqP8tPmWl;rhQWIHP8
      zD6cPoGs%(lg{Y1rJBFv?M8;7tFT-_`@gdU*oCYw1YcAvDx(VuMFBvQJBqPu2%mCZO
      z^>89)>qN<tyti2W98T)CJz@_#YH#DtIMLfhdla>kalFe+na2a{eco5*Q(_G<OJ;>w
      zr6*@s4ADHQ<<+SW)l;pXPCxRB-HYs}j~}|Q4lHPnpt*wT1kDpvFKE7?20@DiEfus}
      zkXKMZP_>{iZ*e(9tEd?dyd!PsU9#=$(|WnRsj@Zh*Yat$UC`Gi-%Wr#bTvfZ(i*%S
      zvoDRO*4*(wTPxmQFr}MlitZz=Th;vdXBvpfe!C;h;WYe5r;hN0r6owkgFZhC1@n>*
      zmLFCHp#T&pvxBg!%j_E1;WB$RY&<FW*7N0;Gp?GPaVT=ek;r*|nco8N8_MiP*o(^S
      z#jux_*-fyQm)R?50iOeOJ&1WVtw9EBk-$lr2UU2&Vv5$qE7fQ$?p4>v;y!glEbdn~
      z#^OTV6pM#_>Sm07wKaB|wv@=vGx<d(w=;P=lXpt;E=k@Ea%Z@jl|Aa7807b|M~pps
      z*y8|u#HGg}>G3*7p&rIqrD_-hY64?W)uEIsDWzHII4fmYDaT50veE#!KDB_+ub#vx
      z)Ip3@>N^+%>U$W2>IYC7_BtUovQQ&{k#NlveHixu{|KRe0{j+jL7bH?@~K2Rfp}fy
      zGl`@)7Z*7rkzpWy7x`QwBS3_UoCTsT01z&DjWW{6NXhFQBa0a+d40i16C+iw&Ur>w
      zFcNT)FBuVx1YP6;BSA(&F7g#4HH=id$VEnG$54VxH*q;C=xdAz(fx=v&^p?P^(MMb
      zo9QoVrTb|3KH9F-quH;fok|-TeHZOgj-bisX}59;4gMl^DnC+}GD&-sKhWC$q`k`D
      zXzTZ>y`ln&-^g9~XB&^(xr7wOj9+r{uKt;>JP3nd8M!VYhd|e8446XS(KtrjV2WU7
      a9uDl%1ZF1%$G1mr=lE96_<k>0Kl}?-qOMc`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYE26h7ND$=f6?VJW3x%dOnXB`G2zwxFe4MA{;Rf&mq_$&v<=O-(moz0nrL
      z8&X6-RG`*j2ESQuqn2s??)YK%5BL)te}VX%cQ+w0IAc3~-*cXQ&Uv5nUQU1iXL6c|
      z*3u7ts!(Wo$|yvSX(zO3CYR7MdbCqcJB_2cd{#5lIpc7?aJZ-4Pn8NaNMgZEXQG|y
      z0ducDkSpX9`j&!`%;*Y*lX@bZ)iN=?U(0J|F0YW<>EzaoR5WJh(?+UQq3VvDF<@$j
      zxnIi^bU{@LDXSHlnabx1{h*ZM1%>b_qEN^vWPA1ecBx6w4CH89-PFW?EfLJ{`*kQW
      z%pyfqC{Us-RY;uF_2Wrxa6qA1hn^~Gpf8s<50qFz>38J}vkx)8tZR6+Y=0KO4EcGh
      zX6nTipTUaBWTdMrGKe3PlhluDg^al`oh@<ZD?|#_BntVwZX^a{gW29(M$jUKDy_Tr
      z5cVr=n3;|zJ}*(o)6@P+SzvL^<qFL&RT*h%S-7Ni&Eq~QPe3|$2BK>Zm6yJ|_n4kA
      zaUP;Akx3hAb2HXi(YzmGI&w+fPuTeIlgB5hMWH(DqBU&~Ta)&XbszJ6Ysx-n-52yM
      ze;c!=ttnvl@b>`tl=X`>Dd;)qw=UWvh#V?n&tuQ5an1tvgrFCga|<~~tUDNoth<6<
      zWNgeH1%^!aS?0AdHg2D`ZsT_vUnZ)subV?Oi)sbEjPt@u&?jgM+hd5lCupmKLxG^}
      zZ1c*%v9mtw7OyGjRmtbI1a&$btisv5Lo}PSzsBfK$O!gcwr@f`?0sxsvnK2zLD)l|
      zb;0_L?blu0`c=?Dwy)afIr|$$`+=ah9R3}y_XykL$O%p_+c&V!BZ87_Uq`j0f{wC%
      z37kn*))%5WR(1>z#Zks8>~n%LyiZaeDxKid5M<!M9i5!DpJSv_WRu_VYK5bb*=Es`
      z-%dDe=(JDU!yNw(?uet-9<fKQ+s?Z0^14#@BkX;SmHLaU51A#afHoP))eMDb4%M<X
      z5~6yl_0yRr-mH6Z{dD%R3+ljvW(k@ts7}xvLG^;>3ThCvK+s}AO9goa1q4+K3iA?I
      zLbQUK@tix;hTbik%s#D`o0%#b;eIWjX5R&UZStK2$V1<S=o?yvw_^6C@wA#d|7Rn`
      zdkdy?6D`nvlyxhbpZ+WZG1*<Wr&&(JfAr-DKTukPQatGDGq7P^^1<`Ns~~Iu1<L#&
      z{OU5l27b8Ap9vpN2(k5i+2xF@C1)IpoN**_o?8|-5B!EQzY+d|GJhfb#btgI{H107
      zGMdNdfV>`PUP-G^!D<w6Qr1Bgp0JprHStO{8jE|?wXwKQT^Eb{)%CHsP&dTlVV}AY
      zqhD=}-K9-M@=Hu^XL1LVw=sE#B=3~uT_AUbt2whr-5o>vJsc6^h#rnOz!7m7aY#nI
      ziBYJBF;=M>#(<i@7*us+N)<DuIn!~@l;uphQl_`T^{E3G{b~WDP)}m4QU@^x)b}t3
      z)en&Al-H5e$cY*O42Nr`=ycoz{3A&H82BC91f7*G@`*&cfOuWxQ;DRw78m(UBBy}(
      zUF36#3<D7^at??(4?wsW^#vo1j1;5JGqRA8V$>)jO^j5zc`h)rjFEtge94GlB<La+
      z83{5Ha*?kXsbQqrMJ_QiGlng=d>faeg1*Lh5Z#Vw9j&4Dus6_6+DLy<D?LPm_t7?`
      z9?g9v?NHj#*t=<`as*91PrH;eXy{j{OZkzyl}XyI{DD^fC+$)GMjL-f9TgSGcvY^#
      z|D^G_ol8hj%=o`e-jzSow~u7-D<d}~<Phi@T?eMn4I0CU8%z<*%)^0Qp1|ys;KcUG
      O<($~cQtbDVHU2Mn4Ww8A
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S$9)a6yCRKn$sjL;ZmSrD?^zIv?(GYwxCi5kq$x_45)CDT+*A|+*|JutTTcm
      zqT&F~TIIn<hX>bUEqrNtarqnk2`+zu`0bOM7+JWMU90Ep{oTF4J)CoPe*NqEFGRG3
      zuEnTDqxD5QNS9<)rY$EgEh9aqwgdJV$E`@;bnH`}acW{RMy(q4D8s-vt@N1b`G*b9
      z3EaG~JFp9up;4+}<jsn-GRCxYrSG^J>0>o+X&2KO-!<*xutpuDj_vu<_K!&`Fa))0
      zq;1w{VbOJhX_z$p1tsxmP@|+BRC0#9Pvs<N0XX_L_x17r&>(i`(*`oJ{kn;+QM_TY
      zRwHrNFv<lv<7u?$<Q<dprX1Hl-mpq2ecZAADfqNiLLn+E(-i;<)aO0YH|i1ZLc|&T
      z4UCTu6bdM(V4RVG<sUIC4V$|)B8@upf$JJ}ekL<h$vKvwRT@QBx&hi{+P*b<+t)St
      zIx%^$$*&%AJ&t5eqsqadq2V<H%__>yBX6_?8F!s*u6r_9GV(qSLyY7t(>DEGh_a#o
      zm`1ImPQi!~x}LiI>;w&Il<*wimN`S3Ra4MCsJa?Bo;Nq^7Nwwjaaa|3^Wx2mMouc^
      zKDZR6SH>NiDwhL6_iNN%2pm^>1?dZV04mtrl2qyl2(7u<YE`<>+tIFFNm@i*f*wL{
      z99z(CNE}qq9!MNc&^|~UM$jXWm|xJNkeFJ~7$jz8zKJ9)X1>R8tj_%9`O76ihuJ%D
      zs)CL{vP%JY(2Hn3aG3mYfECj~z!Pj}NJvjW@&X4vcnVU^af^aZgL3|oEYDvOlw(WB
      z0*cEJ^~!UzIYDOtmJo;Ym`c(T&ZC6er1Fp@Su`qhvo@M!ao1p2l_6mBD?nbL50Pn@
      zsQjD|z<Wz@mR_C2XA&ga0IDG2oC|i{<QcS^bFb^q!lG6|J<Rh!xQ?RZhjCtH7OtmK
      zw|N<XxGbv%aCNUFX(@HFbRkLI)D@%GZhLy+6^zjv|GH{5SkNLtiv=wav{X>Hpk;!3
      z1g#LXTF_cSQ9*G*9fDFE;^QQ3pnmjm%(RUOH7kzD9M2?O&9h_DHCYeAwh?vX;}oGU
      zlJpsE!m0RECLT%u*#De|csXdTk4Y9juO%D$@BF~x88syLnVe3~e~i~bermJ|r9?2C
      z7ocHLYJ(Po)<S3i#hdg5^o}OI6MCviUkDvf2EN^V)zyxxrgj{P+HoXmU)JQe9QHj;
      zdN1@9P5MgctDE#b=xdwwb+nw%0lX39ypcAcg3T!4tg3@rA}Mi$2C}VsI+Km+TQb=;
      zeQPEg)3;@^Lf@XrrrPu!SY!Hd<|o=&H-3<fA7<lGHr~s|`<3wlWqc6E<Eaj2j_8va
      z&>v!t40{}9kK^o-RURjm$CFrvehO>5F0sb-Jl2G6fT>t#GMTB&OciEwnCWR|@?hJh
      z2UuhJS*${z!P>4rhc&LhfHk4N1g3M*T1vf4)C=Hzs`CcDnvDQ|9jU$v{72e}JX=HL
      zErpB&iH68Ug%r7#5P4f6=YYgQ<dQ<p0}&ze4iJ4gfK=V<T}FBtse8T0$Vx`)UY8l^
      zW28Ogd7qJWjKo9a14aZRi4ggakpv^j5c!CaPDVOH<O(ATGibrpA8<KZ=o73bF#U+O
      z(g1CPyq&Jm4*G+J=@y218|~G)G152Eer*H;eS!{Xr!mf5I;dU1Fuy|M+IKXeU8hOy
      zHw^OM>5%p(hWITSZD|4Hrz#5n*5Yy3E+M6{<L8&68-J$H|4D;i8HFy%ngM-DUjftT
      jYnsK18%%@P*$xMG^?U5K5^BCjRk)gOYs2>&W%cdf0H7}_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YjYD-7=BLDG^cG^!g4EEuH{xPNf8mD1(k9Ud!eu`7*JuGY}0L%-MHBlD<WR-
      zeiy~N!i*pM;*81%XPAKxR=+s@27iL%FA$$|vZ;Z=88ee}-uF4rdpqad_qV^V-vqD?
      zSK^2WY{<Kn^rSUyr3+rxD%j}(y&ZPPJ-=uLj^~~(Pn|aV<7g1*(8NmM6w(7uIXGsQ
      zy^5c;_f_0n!4^p7?5tC?3Z`AMd@JyL0b`)*+j8@1Gw>ZZ-y_i4=egy;a)aYmp<+uk
      z35YEM^Ygw}DUmW~FOd+4{Cq_q;Z}-cwtrA3B{7dqI=6Ios(*KiJN1&yRNSCOF$9|D
      zDC-2|S=*k<Su<sU1*h(sRe8emgA;SC7Of9@ZZJWc#$qVMtYWE1V4gnSZv}QO;ysL*
      z%cTYfQ#1Uro}4{yRSLm~Q=H?hpr?t6-NoJX(3Y+EzU^jb%$eetSCClEV$CUDn&SqA
      zzB>-r3PjER{yMW-+zkRN<|<8fcduI8v-NhJ)n}PLZ--$Qo~keZ$k?Qv4frUsH(PLA
      zC)mq48@rARH1v5nJB}3J_0Bhx=oW|%**W`{o0i1Av>x`{oL%syB<^F0qkMcN-%pv(
      zZs*8)fUIAy1k-+?PImKT*kO}U?o}*r%nPh02<%N@0TxO;#M>BRckJUn>`CnBJ{m|I
      zRJX+a5hhB15|1i^BQc;3Jmq32fkn#2Fe#IkD{+j%xIHE@LZN8+5-c!kl_)&MN{h2s
      zCnZi&nw-5(`r}oJPx7RqRq_&ND3tAz#25u{ieYmUTyI)poB}&v1)fM?u?jrN>tW!^
      z>{Ui6uy6+VtC}kiV+M9sqQttH!|Znq#BZgMfhuKs4g{JQE3j3|OH9+A5ofPy?P+QZ
      z8=gHwjj^?+5_mR&B`SgE1fcZi6KKc6I9|M?>%(V{<Kk`4TZJVSNGy_AEU`qQU1F(3
      zhr~*WH4^J2ViL^~trAHU;==?sqKhBIfaBUj`ZFD|#?(A8^ej1U`Hs><u(4NnSu>*e
      zG=Yz?nRgvbIBd+Wf&V#+*sU#jJKz)vTYB-vuDdsNv#AHvK}V(2@gJitrP>>-SxS_H
      zaUL%$hDK^}Y7y`P&|IgtP;af%+o&h&^!e1;zqD;vO{jPFgx>iydgqhqeQBNDGV(j>
      z^ySo7*6FLLuc^~JsjsWk*JGJ_2l|aN=S|qm3bwF-v$_sMqDgrJTQdzt+RVg^ZDyv?
      z*luRx#tt(hjh$vD*=X$I8aH~(YuHmGKd8tLD{`MAA5i2&ntWK3`$-;5wkpq2<A_Q3
      zN0o)CEJl^Z31yMd7N@ku6I`Wnnro9`acwrTTw4sAp7J$Mj`B36JQbBE@2;Mn(w@rN
      zQ$>3^t3A!o)45nRrSr<sc>))bZ8z{jCQAGzrus7RAF+pdHiXD48W|)K3z1hfl2^5a
      z$ZHxoM<gC1uWRH25g8(H5HXe!NY<?0RLF9L)U4i8$SQ@@tlm~gr$U-SKkq1Hy+WEp
      z<XweGg|vjodkSe$NFqeuS4f*eT0`Umh0Hg31($wcb42hF*OMGmz;<lK4$3?64R+yA
      z^xzh!Y$Fbcc23z%I3#*GWruKBoZ*o5(JwA?$X>>v_!dLrI*y3nIb#37QSlci>@D;~
      zBJ_A!M*-W9A9uA0k><{cgxIE^@X5bvsILs6Nuo-?XZW0$z!&(ED?1n|?uy3;yYxNx
      UY6(@_Q5~*o+c0PQm1ceY4<ZNdt^fc4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP8B)e%^!l6LH779V32u%?YvGqo|SZP5xTnwmilI*spP0ooYC&j7=
      zD&EB#iucQd4?cQ%aE2Lt^2zZx_!As|f%xs6lNuPDu`}I!t#7aOt+n=EXXUrQul@pH
      z8@@@RO<?1+SI^Bl^G>ep7oD=oO_*)moAQH-6S}^4x>i1Ik0;SC&}R(mp<B*PxV7+z
      zs`>SxsCL)AQdtRPN~-8qoU*N|PT+)oAYe^2xE*ggXNQ67O^*n4jrm?JbiDAmQ?4tC
      z4gs-6VCi(=*Q+#H^p{BUXh0zC)hh)R>@zt@ED?xjhqBo$xvGj8cwzI%5@^fbE+Ee;
      zHCJ*LY68nn-7<;Vj30z27OgssKIwbm41E%nNQgU?YK6cObG*k1RWs6U0;y7IXmWCB
      zfqzWDq^6vDIXvoC7H!rDK%l!=4+7;C7wm;f!7od!6NuU4M|nN27na9vIBhX+Mq)W@
      zvRha#|A&W$hX*!{+^BA4y+tO>dtj<Pr&<d>RG3x8khd;Ji)Ghy!v`3A)8KJ|_A$St
      zlHko}Zhj<*A%Uc)N~%2TNDQ;os^3u6oWxzce?G4k@1|G_REbviFvhQ!R2YQ%;9ee7
      zl@agbeb)SfA37bpjnOogp+`dJK}v~-D3D!ZHwDs4?4dwXiG9pcQ%XFdjkNHnKJyEj
      zX(El~n&}{+S%(CVQJ7K%i6ay$4w-nzF{es_^%9wtc$~s)oyI4Pz}I*}+ssc(JVl|V
      zsuE`?_;U<apy2uQ5+w@kZXI<hjTJiT469<)x(+kT+hX9rC}md8;HoI$QDk_RQK}Rf
      z*JTR)E-03@7?Oms>oo?O7wBO4Q0Z2ec!r!z!Z*sZyjvy`9X(Ht*%(cy^g<dd(W9jc
      zY4oBeiI;9_`=|?&xOl^BH(-fn63Zo4NUW6Tl~^UwC$Uyyy+l?bE|HSxlE~-~AEt2!
      zHu8&@a6NU<e3wU^g8u$3GdqqufvfchOpKbQOCg3&)A$&Je9~~nWuFdC{Lk6L=IxwT
      zA*V*v;VU)`-nz$Awi!tKT%Atee~hvr-R)S%Qeqs0OL$>%B&a2+wSgCaREyq8y{kp<
      zrk-ihmr`dx)3;Z5quJRXX6K`rolj!+RV{w2Y2VkP_fucnq7P7Cf0LeV(KleVeh2c#
      znDZtKvVzSl;H;?wZLy5JhCB1^)>b<ow{mtqVQsVXNo%{Em(~tDpGjCdxhAb$_D>jT
      z8sD#tAJoPVYvVC(yw@1-H^$>MK9K3s%rR@yCjBApaaeoU+T)n^IAJ{U#^V%MX+6oc
      z!#d41WjS0sts<FJlWAHrxteKCGgTIueA*_gr@1Dr8dqu6xpr7*xu&cIuASC%WI7jb
      zq|~p8`U#xRbYH`Z`55t+nd&RVf5Zq=Y>$vv4RU};JVIVGh$51Rkk<`zjz}^>-Z02{
      zA~HhWBx0>5kZF3orICJ(G`-%|$bd$gUY8b;j)><Sjcm|1sR(&jBT^%s5%Qi!IyI7x
      zkoPsxt&y$>`9LE}ZC=6UAJ`mi_=xLCjx1n1wqgh6o%j~J@Fzxaouf8^y`q<sb~E;i
      zQO?<e7#C+aW&<1$7cn8OU{ZX?8G99n#P1xjf8enAixc)b#@gD*c*R7~zjOS!8%>BD
      zcmDJtzWHZ-@^2dYD?{XxZW!P*d`?W@3w+6y9gHFF+Kvx)`Frk-5*oh8Ot^+``=akx
      I#_H>T0EkiM{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6S#uLd5bn`AmSiIqFou{Q5SIZ<CWH`TLjpFpWDIK{f+Vn(2JOnyu2`)g&P7N_
      z$bE+#<UXn5CC5Xms3I@CrSco{6H@sFA>WKvMxjVm_Mx}?oBn!wdV2b|zpwpDL>uTz
      zlmd)am+fY@Vw^FuRi|iFMK-5?d+k$>TQfY%u}?HkpV*#@QixH%a%_55HJh^<-XYO&
      znr>0-XxgQ!V3aJ0qE$1hx~Lnj;W;iNE!T=|*yXJ5xt3iXX4F0E*bUFHy(31oDL8d8
      zV(S^rExS&$4wqRzrv#QVj1qRUHYMC$Dkn~J7<HxBr_)23bUKZAb%88wuf41>im2t4
      zjQCk0rc1_5gVDU>cTA>XI<9wg)+?^;ykmPNIFXvKgpFFg24Id_9y2`A-t8_%@fm!B
      z`Fwt`RKht*;*`;>dXrXd*6D6WG1JV{GL4LpdV*0;vFW<PF3#vPwJE2{X&IwnPE4a>
      zmhDwXZ(Ch~)$O@l2d};RYDT>)TD2G&8X6wFrQ_^HB#*iv?fJ($4}V~)B8nbvf{zrd
      zmTh_45P!|U5k{d=rzE0;k|%G!I8H;1q9RqYL^Z|f9^8RQnK!Q5H?G3GSD7`#^^|!Z
      z?o6a=H?F$VO;;iJV>gi!cEuBLe?Ym{T~Sl!2+AW;4byANXkEl;TY~1%d`=G`r!h-X
      zb}$O>!FEu`0Ok!B+Ae^3>;iQUz@2sl+CFF#uH>L%A>H&;#PI|zkP#<v)_sP}=@1m%
      zoaQtM1>rcM0Ko~@;`FdWDx8i%IViC72$cN}l*gd#ZkU`-LP2a!Q&1)a6x@Ai92s&t
      z1!&By$b*;(>XqA8kZHxR<u+CHRl`JKz_GzW)f$}YaHzXh70rN$6Ra87-b2Mt3s?3W
      zr!$~UJFaUX<;US%ZlYkE&`nV&^1X3-3b-ef`V4SX(^kf_FiK`cuE?aGOVC1@)CER?
      zi7`$u;-4RrD=#IekLE||mD}En-!f5p?O(0Yf;r9Ow187Dr-hvQI4$DT&uJ;A<(yV>
      z3Ui8a>gJS`TYQqBH8g;yl(TFxt{(QJF(n6xriRZE!?mRCgOL%{p)m^5mkIiu)}dma
      zX`!hHa{qI9q0{4K;bH9f&!KnCz?~mNOji?amnGBb|BqRikxzq`;V3~&(m5ztm?E&E
      zumXevP^`m_!|v{|dtfI!?76Vf>frXt233D_jQZn})E`%({);+zi{anjVK0Hbw8Kup
      zUfyA+VXy44SJ7g54~QE?&TDBMPOu&aIIGS<fnbtfr@=x<%j$)&wm~mMw2gWps%_E>
      zT-&S{k`ZkSWK<j0f2OT%=Le<pcIiASop(y--O72da^4T;e6m|c4r&K<gg+=5x?~)d
      zjH8lKP>kb>@hBwMPC#~P24qYtLdG?LNac1UOGcWOk!muMBO{%bks9!gXidndb{3Lr
      zGmu@{laMj(X~?*C4w24>TPZy+1HAy?VzTEty<7+ae-){|4*VzDiabL;@`gh4K*B!q
      zrb5c{EI#s<Le2w;`pDY~xd?>&$U8u^#Q>6R*1Hl}B9S)hJ&B|w(q_Fck+ej*{5Y2+
      zvPvQ`ANfEcTq1EF`A{Npi6ngFBZ>4#q}xY6mdIQkCAj<}nj=7;LLS2qBicxVv<doV
      z`i8d9pEOK2F^eO#ll5T|uch5=1Y>xd_Og>0!Y=J+7chb^QJ!6)adwRku-`F$|Dc2H
      zFHGN?G#UsX;%90XLi^!yx0;Z$_%q<)wZG68x6+WWjC@L><v?H2*T5K3`W6x$Od0&8
      bA1>_j5BRr^(Bd9e+qJl%S?+hr>-&EI&HMQ@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXR!Y6#jP7B)dsk!l6K^1;L<Dq%DYu*m|Q}L|PC+!GH=U$!>bm<eYeNPO+lm
      z1@9tW@%re4k6s>}VFsUka{LYc1jk<>etYKxBZD(`rhBjT?X|wO_Fn6({QB3`p8;&g
      z*D1sVHdWnlyk;-j<8`lW*VXv6*$%pMp5L$o$8*oL{4>Sb6nX@PjbRu#_3>$^6&zD7
      zFZ9c5Pv}<aN+4HJWv5}+3#w`RcHsE})^wZOcB|usz<1p0gh1bv=e7dd4NlngP)YO(
      zh^+$4tG*XDX>!9~A}auatQ$5;%HMBNl2|5?$dBdoc~UhM6L5phktGnz-zgx^DYa0s
      zms$cVPTw+z*1YEjCvR9~j6UPJ!90DEjYvq?jb?+uGIPAw4pb-7Z33A}Wprj{bcugs
      zOuwS$?64jjcN&qAKz}*(edU&y3QLWWSC_b5AYO4?K8)iA^{Jaq@8D^1_HdV9CmOFb
      zv~hiYD=*FeZDSLo-5T#(X2N_2raExC`@%;`HB}Dy=yI}LcU&iUh%q*goDk@l@+v9?
      zK78)x8cFazDOXigy=F^n6G%6`NL`S)hYu98yf)=~S&NphDm1%Kp!b(cDp>RbeR4lf
      zn#za|(4iHUyuj{dH7B!JfdL7f2}va$p+J6#JrqbRv6li_CH6B<%_;GiHqyf5`YbGI
      zrs*tJY9_u|yk?W&2?}$nByo&F!}cYPQ?Q#9cw-_pi6<%4LK>ek0*msLwppx7JVT+S
      zni6Lzcnb_xqTqUq5)}$;Zyj|mi&Z-6Ja5IQp$=2ydoi$Ylsc1UaJsY52}XAqq)BTA
      z30s8uVe~Ripc*CZ9MGB3JfkeKRE!uMJx7gUjizHipT%knXz7J41~HJrOE-0RRPYpD
      z{#Rk!u*3?9l@hBYR!a;@tdSU&SSzt!A}^7UNK5od<aCG+vbYPI*!<Ius}7q_@VH&l
      zU%F+c#0lGXv>t)UNz-3x#PMksA7g~i5X?Jl$&u;*Ic3<VnW_pnAEIVnwRz;$?VK){
      z(X-#t=?wqJ&>GW?jSaj?oFi`;A1r|+wG_1&_y9<E=^5&MU3x$DT$jF_Ivbb1gSzd^
      z&PFghi(+<`#O!Oj{Dx>h+@<R{YrFJy)Yo_E8>r{I^o<zObs%q?Id8@YZ?J_IIA`vG
      zSUe}M;qGFOHCiYptnorIX>BhQQ`U|`QCd3-#az<b#WiK^F8qjzj`4%q_+f4Qs5YL`
      z#`}!%0b_iS#)oo!nmKOG6i9zWdmPms1?@4bJx&^rqVYJ*Ra#GT?X}KuO<OkCj8!I+
      z>M&I`lcSjyG*jc2OrBwS)-bgUQ)rmZk!dN>PAQ{_G6c@&`mf=|Vx0H|ruqu;A27ib
      zdm`jjgB&7~h>+I|qKG6T<f1{Ah@>Lqb%UHIA|vDtBGwRrT*vE8jbt>^@p?-m>on5w
      zdRrqKG}0UKyrYqg8c9dUyBd)i$wbI|8Zpe-2)U$@er?kiA@6Hsd4W%G`Fl1;3?Fhm
      z#n}Yxz$kW7-i2?l8-HK|*Ev&@*e3=#Qn%oMnB+h`jDzAV=c$iF;v%NS70iflIZUtO
      zi1>}O^miN;e{z&w$5bpv#*a)C{e#SpyWNBs=g!|~B)0s7PyR_me`SbVvTXxg!Dqw-
      kKF1ea*})j&uI*T`%inQtU!m<gYr?gCdv5rCX{^5b8{bjkjsO4v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7X>(Im7=BLDB&SJQ!lgjLmaS|B+7uBHTU;m<D@_r?VnBu4<Tkx+a&Nr3Db@{9
      z-1i0C*U=e2y3F7VGx&vXj=#a5;P?x~=bYTcz~GFX={fK7oOeCvy>EW|`^v8Xw&R-^
      zLIRtLPAxra&YS6yn>R~VdO~mG&a~^5P2YB%)7AOYW8*Qj3G`^ins1lV6L!@<VpZLm
      zm$&xToI=SGNENKST{cTut73Yl?|K5pMBTUP6w_JXvz_9wK*y--RDIL&kDH~MCDAS*
      zwh1gQdTy;km8QK!l1GCANvBqxvb-^!lf)wW=-bxUr~Zcqxf53`X5#n_6+<B2RM{XP
      z&sx@8!Ca^cEID<{q^dKn=bvb5B{a^sjz2@2XgLrfX1P)(u}B~9GkvQO@is<W;NL(d
      zGf*h7oPsrN)=K_SyWG@SB>;iWe9iMLC%=$gC{MX1iM0Zu@*Ho=cKp)lO^53R!eir^
      z7PCggO#-W$H4Y99tyw=ja3f~jc_z+#Vai>nS_?lkHEZR4zJ?shmu$!O?_r$H{l^8`
      zM%{uH1Ft=G^W#Yj3B;<`E;|LYC~-SM`Pz4Na0hS6x2yW#PRe{^E#E~Y_Cg)p&4X#r
      z(g!0vC|$ek5w!DG?nz<^x+Lyn1}cKYUP{Wn#6IRm-x6aK=vd+b#kiitgB0jdVuISr
      zo$@uA#8Tz!As)_}bZ|szSyK{6DU?mxvCyztq42O~W+hHin5|Ly5iRgt9#c9s7J7z4
      z)v8ELQE=yc2|jSxapxtbDX{NV)R`ofsi?Coj8SW*XG@fL!;I|Jk)uj7Jr+<Ah%mm*
      zF#Jy17?{ewmP(Z7>4TwbRiEGqfp&)XE%gydJjpXA;cD<S{WFo^=vg9WqmfGKxg?gO
      zOG(cs(T%PcF5L711bq<0OE<iCot9W4u~cH2#Bzyli4_t(600TFNo<gaNW>*NBvLBG
      zr6e|^pWnuW?O2ogi#=*ismWmIsdAhbqHsV)M|9i85yq!Ue2lFu-k-7Asr?iGb1JcY
      z6GhACJPCSy+2;ORcX>RkN7b0E(&_n+AvdV{9cx)im?Lr#FD!y6QH&@AUI5}PI6>Ue
      zf;)**EqF08JDRrLsvGsr{?I!gMelqPy{~AoTS@(%7Tim`x&^NxUe|*Ah&Qz0jaaGP
      zfquixc?-6(f^96|tgZv0a7tdqK(5V5XLAu_do~v}c4TugV`nxeja}JXDr)TJ8Z(Bo
      zKVwfr`Cg@bzfvAm%KMe_0j)f)l@C%mlj=~O!^WX3-5*vKS!HodS)5Q7Ic;%DTRh5D
      z8mGCo8z$Gdk>{E)EP5(7JlV?Aobpswp4_IV$Eh1Ns$646jjJ@ya&0#jxW<jAxF(Ee
      z=;>Ufo>H%J)Jx)gs`Dyd$c4$j$W&h@{}c8w&$fVhMKc*Pk$`zsGeuQPz`UlJb7W!x
      z^SWlvlaT@Q1{q@|iB!YtO~v#oreXD#V%8|8VfD6R`V`Y1_<2V$8x<1|n0FN;6_W^<
      z_Y{**Ofq2JS4^j3Is)bc#VpS93NHT0<_O_Kt|vLNfE^gXPRhIREq3Ei4C6XyZWQ}P
      zH%IOk91tU%xRV$cXE<;@926HgZ!aMuzQ?4vf<xkW&e}h4Sp3CNdmW>p5IugRqo`jz
      ze%$pYM4CH)1QFTt3qJWb4fT~FFiF-G@EJZQC-4Qn<jM}lAa|w52fO$K_j(C++haOh
      N-L|c1`<2%E`X7Y0??V6p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYD-7=BLEB&SJQ!cw4M3x#qk(58rp*y4p!5NV6BTnwnNO}6Q_$!^?iiuHyl
      z-tQOiejT0hqn8<+VFthO&G9$*6C8hm_?(kX3=GcLnV$1L&v~!sy!+<2zpwlXU>m-P
      zqeWn2!L4Ryt$8a`^m10w&W!8rfIIE^B`a_|_jG0cv^f?>t3bC_tOiaoGwxJ^BX-5B
      z`Z;?~)y)@efpp%^IVG!T+GWeP0?!vP#%sPUw~#Rd-*F4W0_~%oTL~;TIBpfIwnUqN
      z*ebBN;Ct0FRT}mZDIWC-q}*z0%J%o^oFo>}N8i@IKJ`B|$ep-sGZQzcs~7@_hRS*Y
      zdDgb)^43B{V9BXlCRLg7{NO}GE2;5>=LR#hiIqYjYL&_*5{vZlUMsNc5pQF}1^x|8
      zObq1nEGKVITh(H4)G0M|RtZ3$BUkl(+s!SQ3#BQqD6vMMWlr6e;|9gin-13rM9i^+
      zO=k6o8wFN1Y8)II>RmTHa3f~jIVR3~ValDSnhQTPHEZVrzJ?sh6&=?J?qQrw{l^7b
      zN4>lq#~>f{=Esv55{Or>U3T+ULE?6T(zWku;11qW;8gU%os{{;TE2@)?1dV*n+Mar
      ztq(?cP`q~8CurlX+>^o*bV}UE3{(V(J(QGtiM`B?z9sfipks*#6yy044^p5<iE(Nx
      zcgojf3QLu*hj=(^(ZLa=Wlu>QrBJeH$3i1knZm=GnUy$6VYW);N3_6qc}(e4S?C!G
      z6}v1kMZud3B>2D)*PEA^rog^eQD;(ErlQWWFh;Ffz9UiO4KuP|L#`^x@>xJxAj<d-
      z!|>%>8JNm}mWq_->4TxGm4M(0fi{K@Z1oXHJjpXA;c4(R{WFp9=vg9WqmfGKxfGV8
      zQ%TRK(1p%8F5L71gnbalOE<iCjh0v<u~cH2#Bzx)i4_vv600TFO01WNN+cxOCDJOy
      zr4%-ypWnu~<Jyz@i#=*hsmWmIsdAhbqHsvYMs(XH5W%M@e2gtDKA3UXsr}>sb1JcY
      zlLb5AJPCVz*{1$mcX`6pqiUa{(&_$>AvdV{9cx%hgd=hhFD!}}QJkm+yZ|JcaFV#a
      z33m{uoA6>{b~J6fR5$9K{h@b0ir)DodSB6Gx03qZO}K}6brbF-UfYEGh}Spa4Opq(
      zfqo;*c{8@Kf~_pztgZtsk+i&ufo!XhF|$!)o0*Ln+s$m;*kNX+vD3_^W5zD7abwv0
      z8N2Js_bTQ4mGY=k9#hKuwekV2e2~f$>2~EgVjME*{;;wzmBle-aY9*SwZ$oI@hDem
      zoaWkQSX>iEj%(7e>8Vin<S0*b%2P>s@*18Vr*6!saE%*PuF^Qmwar-InlPT?nlzrF
      zr*qL-N<GR^4~g^Xj;nYf8zKK9Q+=8IPuR^oTSMj*%}kJqhRmy)DX3aP<~7ZnBNGpq
      z*EMsVj0~AK$QUb0r0Z61DyBy<b*r}&)2o=e)!T~cQ%qav=N-jtP)s6Z-c^iLOfqEN
      zQ%q7ZsgQYJF&&C&519`Xv)JSnT>O#E(Si@Tp5({^wqpQ0DDT9#*o8kajO(1aF^q{W
      zj@-@IFGe_VCviZW;lTBAP+Z`=y@UzzJtoB!91_2C*8YLR;xCTc>lkfmp~sJO6!nY8
      zkGs}{$Z+S6AflUp!6*Nwp}sPNCaIbNKEvna1irwRT-m`G<gWDiU>ASjUMrzydrXI`
      N*|s)pztUP?{{#P*?_2-?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cTXR!Y6#jP8B)e%^!l6LH0)cWXm!^n_(Bg%1vCx)FxEN63G&!^fl9QU8fW-@f
      z+!P(3a7Koa7aov@Q!X+(%mD9>zri`<4{-bi;<tBBYG8222Q!(y&-(WI*8cWdd#_*q
      zdiWT?8hjN+gTS&;r;<8uo-|YWV%E%CsX;vrILC^mg6Y~t=ZI?_85oYDQJ_ORR$M!u
      z8nnyqUaMTJl(N?5ij&J*0*RcJwF_oGZH=2H(=C<+jKOMb(-}>r-IDE$_6oH07oD<e
      zI_?28U$G>b1Vp#M^wCnWGESE%zC@f$s|4asr7&WZwrNcg(};Ag>Qw)p?#|9mh8(vj
      z#BpmLhCoxzV~Kz~WmzY3=0sUw#^D!ADvuRQ?!hUqW^E4@9e0eJNFn$Ln}zWLfoXbq
      zi|Jam4PT=Et^6f(x#SRk$qD|5<*Z|7CGYOD3sbK11!7}k8w(rDNi%s`pfy`5l`JPa
      zk)9}w6!Q`b1wy}{yT$C;j+^g)ZgnwN2Zs07@oE~Du|kWJwPSbp^z^QN#$+C{JP6ao
      zBeWf^PsFZ~<5t#XZDe0IZ#%a8I(J##bwHr8znHV4V0{wLmr|mK8h!73-+SzPlfL)F
      z_wM?WXC+=1nCW{rHS(Q5`L*v|^}YN2ka$I)-S@8flNWvOfnItL(ADaz%&qU;W)MyP
      zK~rAS(dfqb+=YAn=zG<rjamTXFq(?5M(>G4AM3Anp_})l2?DRjF#~N9Z}MDJEU{UC
      z+?3d&Kdwn^(;v4b-qs%v6m3TwGZk%6>$<MvQOF&=$*?{O#d33w+?@E->TWH~(|Ygd
      zRUVp0WaXH%Z|W%bG`^4b%=bKh@{$De9{0WL{^YsZLEouE=zm$_kdDKxulnB4I{pnE
      z=UsvMwFFmH-Oynv@3vB?G`z2sUr<~no5U-1t4DRdZ|Sp8Pd#x&V2<)vrC@fSSuLrA
      z<>HuyHuZHZj@c@8V_G>yvTjx7$2C&Tj6#%mK8|*@Md3X6LW7GL#rQK9unJ4ekeDek
      zOJcS}yTlxc4v7U4izJpvge77UEfNW}#b<FWM;8k@Xgk)hZYcZA5!JX1-SiHaC0p46
      z80pjRAchbw#PK;+@-4VyHlI${;D2nId{51zmdkb*Ji1xSyI%b4Vrkt;x7kWg$G`O8
      zZuJ1MkVgrzgHL0^!idm{(rN$`fLNW~OuMDdZl#^5v!~PMlOVTU-Elp$bb4mt^vsgz
      zc}^W~F8w>|?0K{o)Y(bei|Xu7+Dq!}rI@Sgz_=l5UV)W7!73i$ls*R<LJ9c@t22#8
      zDxC=%YtosBu{NEF8tc*-X{=9Y5)oqq$EeYpzK=~c=Qot|Tgtg#Id4_Y+qJVAqeSmx
      zAkm^Chm4(Rh96RlU5c?sG17{$Uo#GBMuwv_4s&cW-s2cEj&N)?Oh(H7Z;`BURnn-E
      zWHa=MMC&6IG9ltcO8tQNJ#3=7#sDd4WPnIGK*}1)5{U$es}YMxG(ajEIYC4Q$Vno`
      zTmp$2>y$#~DWt~wP$5Z$)L0V==~PHl5a+Z)mMSC`ARj42Dx^6;K2}JxLgE4Pi9%Wx
      z(h?w_Dr9<^DL8YNm!kn^IUZs+0oGzQ*718iZej!eKrf!MZAY+Gw6klkz;@Bcrag=S
      zaTGg52|LAkcI<C4ByM3?Jj5>XD|U<Dut)sK_WKn54GoNVPVWL<KR)j2B}9s|ARb=v
      z6VCr5L%lKtlz7zv7jcQ0z-4^FkvACKoRuF7cIFP}>Jh5k{d&79w{eR5rS`h=H}h<_
      AMF0Q*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dYi|@)7=BJ~d)jWxGPF>jz(To|OIt)lXhEf1th7Z~E-t7r-5uJ2-PyXG1&bG?
      zTon<&D2X94Ca4V(Glhss0(>|A1~b3F_zT46oSiMx1`|Knr02~0ocHp)?|aU>zy1B-
      z5rB30Jc2TT6@yNp{e*eSY|rFUX2xpo)mx8qJeSX!uAOs^y4KO2{s<}rnzdrVwKMI#
      z_K3UB8p##%DQjE7NoOp9SlUY2Su>NchRwX`=JEnYZ_&5u47MlSyzLBj3e<JyoDtV_
      z+=FJOU`bR9h&F+lgZW%xm@1R@5>Xzl5r{g4?0}WusX0l^Akwm?rG@_;ZQST`*dh_f
      zEom46)g_H(0`jzFolKjfBLcIIJd@JMP%iHtn$)V*a$nAIhiFrk4L&N(>~NOA41K)a
      zbgfdr`AmNY|KjO%ysxh>KFU9)l(vqWg^au3&Q5AB6sQ>*+ML}y5;x;#1nN_TeBN?W
      zqlwY%KrSP(m;wD;p8xF_>t{P|rhA&gQi1ZG{(T|S5{nh=(b9M+@wSeR&b3oSRwBhz
      zSSTjZa3oxcJp(7Kl*{hOu2jZ$Y<DZ8tZY3fP|=-BTM@8BvFXi}=n!c1y-U9Lo$o#N
      zy`OyVk?(oFHzx6%KKjL<xaxa9PCa^Fph<&czIVg-?oB;?K^xxjC(ila_fwBv)P^_o
      zk*C*i#LWWpeeb@;zwjrnX(nNXF75fg?~PAmTMdD&QOrVv#LK)plPO7T(_)Z@#CG1j
      zFm;KYS|Ok-@v2sMN>So9UYKdLBzm<~Kt+Y`kD^h9e_d<e)Evp3wR|kWX0u>FXx5B0
      znOX64KQD^rq-(EEztUE0UZd|__r2RC6Sn9sza`#KmyB(hxGZs4Grs9hup8t0^vw`L
      z{VNi0>k#ZS+r?Ti#Mdmd#4&+|8sSkf3UPkZ)g47%#TwA$FZy1wCsg2#m^@8u&uj>j
      z4O<=8R^RB98F7kFRj;8aW}`uUorq$Ns$535pDgG`MJ`>PU-kF6grn<0BDZy2S*_qm
      zc^QtP2@MhCr_G4qVMO3gc>qONVwOas#B7N<5=|0wC7LA`Ni30ACQ&I-BT*+2Qz0%y
      zu@bH9Z?ElG{d%PBHwV<{H1ya#Xy$Dt2Vhl~eup(E$H!4z#%jJrcgW_`ZSDP!W1H`}
      zcF=M;aDzubdu8jhpM6b2&+?tNqSO2@zXEM)0AMjwDd%s<3>K^sRg@x>%D@7kCM4HV
      zt_#Walw%=zCS|@j+BT`HuXnao?`){v*%H0a4cX13esf4(KzUI}j#FL|l3OS*3(3nd
      zPxXO*%gK2aRx^V&OyIQ617+ng`4DT96-Ij^S!t|GB&&?|iDbmskVr~nV<H)=GB$CI
      z7@diG*iuq{Nh!agl)IJk4yC+HEB9#S-Bj+2)hW;A#-0S-?^PBFWpO}R98wlZZE-|f
      zyv0=-N4ZuTCf6Dx#kJP3=xOkO^JG^RDV<c5vUHt`)jz~L$#UW&q*@?;7hA})B0x@Q
      zq>o5tfSlIIpvomc-qnarBoZK_8p#on0dj_jF^@p3Wc8jx7AT}-^}a&l3MpBAppX`Y
      zR0n=ORLF9L)C9;`g-C_e2FOPWsZ~fcK+Y+oULkb>GNzE336|je1TRM!E^<B0DFdv>
      zT5RC=M%=<C{E1FH;V(fIc8Dg<|5ex}x;Xgz(Ibv=+~=`dT;PQN5`AJE{o(=kh~GKb
      z|G-}H7iaksbeEOU<0TyhyncM##Y>2G?t*ybs-JP?DGl|?5ST=Z3it$9i3xm)Yg~DQ
      d(Z*frv0>*u?!^>}wg+^$qHV>b?Ppr+`ac=45=a05
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yj+b>6g|^4$!(IBFqBfT<yBtgkrWXTTTm$vfwl-KU_gawGNc2^q^1+FKHC)W
      zg%lA16{uC#!f%$>Qp;-n?()OTAMhu*`~~7ZH<J=rxR&k8z4z?wv+p_Q-h1-<KNC|#
      zw3cr8sY0RUDKj5EuAS7P>1;wv>(LH5?KF>Na~aJtvgQ#hb)<WjpDGn<ki@)Yq@x{1
      zzqL>A&*pOpeM{a<rgeqFNj+g?v~*1G({h@X%_*dI6ty)o6^&Ur!%Vd*RNbC6`z_71
      z4ruATE~rW&Wwk;xQ@L!u50q(tK_Pq<Q7B~QGd+54yNpTD3}`g1ZffFBO9V6QJ{^&m
      zR*9l26qu$gRY;uD^%F^LpkJX`ho2Z!e{VKt9h_zbrQMk|tzP)}GVa2wW%@DzX2`F%
      zYL;Hw@hR+>Oh!68BLnzDI!XPQmQP#VMrN8bUm;ScCXvtObTcs!8_4uz(}EUZ182|~
      zwr`<ghH0hSA0sSL$g^+%zB1R+uFDmgKb>c!rDfrg)-{jX$UTAJQ5%F^d$>ILJw3<u
      zgoP6kZHcsD8rEj)v!eNcLY3{=r0yq_KK%Fr3TjcP&c0wzIYah@Gicw#e9xYA&f50`
      zJ<Z>Z+Eex<u)Fx&2R>>4VowNq2Jzb$oB})tOW3ohnmxuUV2=xWjyX4>S+H+o9JKEU
      zdY-XSX9O6OoHNX8V{D8|hW{yiGhT(tZVu5bsulDi3W}W&pP((g9);&!L0gM>!5I{^
      zo!7iG@RxagllK&~OY(UyK^>A~-*O79-W8(Rto{n4KS2>}oQcoAf#|XB=Ji#3oYhf7
      zpMBo`jn}Wbxc#f3L%hD?oMZLZO6&WA-YD{KbG}D;JqAs1dU$;ubuI`>^7<OG9T9Yl
      z*B8N=;K+JIRL7AW$5Sar#!)aY&2^ITA=7c31~8LrF5~373F>1n87uT8Bgg8@0NcX#
      zC`QcI$&w{`Z?XD$oYWm>*cmFSy^T9ljNU0YBdDE><6UOTJRV~2^S&~l5^IoIGAqO?
      zJvqBVh~`i&uTF=ko@)Jc=CN1oUSvOg{K$nZ!h&WAnk}eK&>TVag60Zp5VSzhVnIs<
      zc?AUoRSOF97FR;Ff|~KbI}B6rl5MA3>*4mM%GP*5%NcCDps!87n*e#}T8O@-Rd_pA
      zuYsr5-0?qKE8br)rCVr<?jx;R(fs6R8i>h$yWQY$8vdhGNBF_gBBbI$pPzw(dC3RM
      z537Pu01A}ZLD<!0b`9)snLQIWo)moR`SQydS53}16glHa<UF^`Zyxv!Wp*R%1!eX^
      z*o({TCfG~M>}52M&jGp~#JrMLA%oRO;FQdRDm-B^No(SjYBU!2s%v9$pSms<_p9q;
      zaiMOA#lt>zBSyd48oNWAO5_)q{1TJfnY@k3J0y9hB<}{fGhEHe9(7L)@_X4M#vc3G
      z;~;y)rN?3E@j6DK9>G|pY8V4*0%K6sp_D2q8LV`Il`^c9Wu-S+sUKXQn#br@Phk}5
      z0LCiy9gG3>J&Zy111Jr7iy<|#P$PihaLpur8214G2%&xg{5EYuoRu!}sYE(~cwOW(
      ziKI9e7db1DAs~Ji`CKByK!l5&1ES6Y5H5L*Fw)3K$?H5L3mGYSeZfc*BUP@>1xA)J
      z5^#|(84-*GUF0GoK}JF@@)aXBj8wbGB}Qh(P=d?1a5*aIYmA4`{fO4l8d{I_2D(8T
      z=`U)f2Wa>{+NRW_*{`G>N*fw|7wuGzqRHoIw{jW{{t|U6KT?-6L3@-x(Axi`y~^Kc
      z>kp{Cq5_KF$X)nn8;`qq2`P#hzvSdy`7>R87zV#Ga$Q120$rz3U<!RlV;FIRDT0}K
      aIIzp(n2RYCefP`lioTW8zTZpM5B~z?5v~;g
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X>$`t5Pf4=(pZv>SS~|MFqq36mI)yQY)HTyCRnyX91$dem9$8UrCn#W!ci`A
      zK<@h>A@@O2`IzHFs;DAAAeG;cpODHg2zfJFDGEiZ@?mGX-*mt3>FMoX|GNGQfGzko
      ziVlHwMW>cJZ(cA{WjAk@t<;3x4msysuVVVP>zwh+XQs!a=oIMFhBe<VrzY&Gf7GhF
      zH7{@NtvQ9VC6FvwdAnkkGuEu>nZD}@7!wU{(<!DhzGpkd5rOV8*QxrZ<DW3gHA|vP
      zKnw}YFM4immL@HKi3E=}2_&3aC1-gDbWRfU$T6^KU_gDtL)@v)TFk`pn<j=ptYxxB
      zK+aj#Ou?*I1s0sXZBo^e>-i^JR&lMTUB@rcCsGN7uvwX{5SXWr_nE%cjCcowq|>QF
      zAyu#QG6n0LSu6X;>`KexPFj>oJ1aY@{iZ-qzUFzBldos$m7H6aSSb*iE={v&w&Rz_
      zZaH18PRDuL@@ocOC$M~V>#jq?!y}tl_qXc|n`ip04ijH^y8Zf7x${=u=bOmUeA#wv
      ze>cOdA3Pz@Ip!9uDEKbPTc1#3m=&4eOBG#-y9B}$HOHz-+)X%bdcKnH;RB@Yy5-Hd
      zWu@OM5FM}0SvjTbWWc@ZP`i!NEo0`)g4+dw-3ctfLW%pC31dj?RYHxzJ_@9lIG_Z(
      zE-_Alq!JHMAfdzr1#&5($pjWDBGxRl-(jB}r7&&fB#u$olOqxDNk+OoNMT&XIHd)?
      z#zV?R-R}_!>_~~T6sBf;i5!JVmplau`|PR;b}oU%Dp-ltU@(u4=Xqm>^R!YX&fKfS
      z9g2)@GsrCK%=iTPuY{R^5`8U}m3V=bVG>oJ@?!#V=Hat!6_QFkPJZT7)5?=9H*;zo
      zJ}uD2)Ec%b!DkX!q7r;gpkq&3;u81iv^seqfnF?(;-y=Dji5K8c;#O`(10ZtNGy_A
      zEU`qQS7NC|pTr7@RT66?!V)owZi%D{@lgWnG04A$4{A;7fBBf1Q!~TR^X7!<*-8(<
      z$f$0`7()0wflslKW%5flyLWKnf6gnmbi8Q!oHRk-FJ3=*`_7ML^bk8>t91JQWBd)N
      ze*i0al@N#LJQggB2(>7+4zK`-wdrx{-EDdg^<<kqpE`S-zP+kN_0I0mJ0D5!d=kAc
      zZSz}3`@S}PIrSB7dO!75ZTbN9HEsG@EK~15-Vk%%fQ`JtCSG7p-vb??q`ZO6*-j&s
      z$%c(BnQX+^n#o3uZJDezwr8@*h_Qof)ELS9gk4SJ`;_q>Wjv;g_bcOr+W3$*K1}0u
      zvRg5SjHwLik0=isM~sZ}IIcWSYLBe;IL%cW4|DA@&Tx$xCfB%;CzI7=Dk>&hG0iBZ
      ziehpV)1$PF7*(!OqsCPlb6mTOI@g%-1lPFn6qzoD8!0`jh@K~KIoWdqFJ?o;UuLSW
      z68{mqm||yuyrz*fk#K;#t`Un!BtYKK$VDR20C`g*mx;&#d5eg#j6kyK^|nHmE2Qc5
      zjzans()4;)Ap;8O3V7aA$XbQO0_1&#NQJ}$<cdP#3P}XW2MXy?NOypIsF3*?mf-3S
      zY>p0m%=Hup8n6|cv5oR}T*D6hff3x~9FAbW=;avRfP-R`Q+N`G#90nu4~NAi&fqIZ
      zi|;Tgu4794#sU00j)*@we{W)}ql1i}=qO<O@#k(dAyV80@$iP9@!3CVsJ{$>OQK<b
      pFYqNXfv@m2S9UOlxGOt8*wyd3H?Gj|J+8wwd^=md*R<6)e*+*!?)d-!
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&$TXz#x6#h=rG^c3_VSrMwNTJ*c^n!>8Ehv;bO$$u{11e0Dp&gn`>SO{2uOL|O
      zck2ZO@A7E%!L?Z8OUsMP-{4Ph`3uBvPm&T@xR!79;hep{voGJCv(IjR`}_K@0M_GL
      z2vrKJhMj!JY4eQPk<KQ~wAIn;Z~L56SvO;PcGfxJxhDn(La0_~@(uHzo$lzhbKZcJ
      z%jVsrwIlDO(w0IrWhL#5nT}gyrfYgxSHb8l#x|Ydj=1OA&TyAPeNWcOd8XqXG1GZV
      zqgFw+E6f>ov-vTa%=l|W6rd1s@|hva-R)D-n5}TBWnIfX{p)OJdX_R~@dG$snVO++
      z;hs}lp`g!N)@aHs<P_!}zv~_3MzXGVbjGUA*JD}78=+54rX&Q-%vgrNZ2x$t=~?AU
      z?^6h;Qf;wVTY-PPy_9vz%%{CUJ2PW*KZ%TtY{_iNHJb{vl6lv)oMa(h$P8uE8cP+b
      z27B2gw&SIH?l@eo5EvZb>5N-B^D2b~`No~?ot@3gyV`EcOqV2a-UlhqJ6>6M|IleG
      z>9P5AcQS1|wzrM(SGOKfsP4(8tPt3M(K~xpqf;Sx&^%|l8V@Mc`l4s$Y>fwb5;xP+
      zlNt~4Q%sGU?#-)aX2{fdSS&577Q0qsi{!{>c+kxQkz5H;%f{Xo!CcJKc$8!qTVsa^
      z=RA#_6c}D(H}g!5GnmF+20G|V`+3Sh8vH(i9xo@c`XZPwu?`aIPcqv8&2L`G4`~b%
      zib)MDH_&J2G#>Mjg2pildnNPZ6b3DZe3EY4r?2KUP7>NxAcr9lMp<-<!U2>1rzmW9
      zP02eFL4)KyO+V%x)kw2}B(cdl9HLB3X^e$1x9MnbFx14%!t^8~c?uyCuw6Mg!vm7Y
      z<Vomh-j(pkd0CpB;|aM;{X#m=GA8Me>+?j(XL^$Iiws0cypd6%bs>TULhB-przWN*
      zG+rj>sfoB8z7jzr=7sRu9nYiGB_X`=uWl&98gn(~Ycyyq&}h_HsL`acL}Qu83XPyf
      zSfgGeDk(mTU^QC#a(ZpY>htH<pgAOC((p&@5!1CrFM&1Pep7}Kz?TtR#ahz#Mr`(R
      zYw!OY(QNLzVawxiExmw-)vb4b1L3$ow|Cn@r|CZ?e!IK|EM+MH{=b;b4;DlXwGg!`
      z@B<)Rq1REbuh3^vk5=e&sI%4S+bC`7?`#`?=RNs5uf*RMR`@NVeN%<LnEH|my_x#5
      z3cZE;iVA%t7Rfy@Zh)NEU@a?H#{$m!b)YH`)i=<Vs5Uy{iJ-AQo~SW4#1kQ7V?3da
      zP4Psu#@Ng?WOT)U!q&3!BVxQ=jC;g*ml*HyjraM+2WT9N)=T7o(I02{L*fw^kHg||
      zR6G*C$8q1|39i~W!L`;fxrU7-*E+*uq~UTTTOy50q>Mz$N~EVGQjWGYMxJZPILlQV
      z1+KNmGhD;Qb6o3;7Z~Y$ut@1833Q3Tcy!hcyqX9Qf1Om{B>p3|l4o@ZdCNy)M1m#c
      zZ66tyT1v<}K60K&sD!-hBjZGL33-o*v4}vl?Df7Niv=lreIQ7)AZ4!)1!)nawiIVV
      zkd=ajOUOrpXhG^q$j5@z2@)wGp9nHbkopqxsUUOW`~;UL*&J2)oa-@8GGGJRu#xg6
      ze1pyS6J5B)aa@C4s*%%p4fd#Rj^aM-Qzx-sxj3LMat==*rmmq+T}QwAokRE!98!OA
      z2H!$YRTU#%@w3RU89we}6QYAVf8Zdv=4X6yn})nHlw2Z31AK+Ai78V0mMc3L?cBwV
      a7k2pv?!^*{zK8vEMc?Wf-|u{@@Baa+Qysei
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cdv6p~6#w1b?(Xe&Tb7|f!6Jq7Dvxdv5upW?LJ`~Y=<sl<3e(-89oU_%(^;^-
      zQ78@ZKNCNJNr@rBipEGnKY;NA?9{}MVEhE)@7|rQE5Sq)H`#mV{O)=D&OPUzpZ<8X
      z0AM#hO&}t$b=)myu3FcvOreys3U+2lZztR<C9i1tPRYGg_AZ?sOrSxaT`QJ-r;r(P
      zru-3ms#NxJ_K~uiFW3U<yq$B3R>8C<Ezj~xo`5k_^=-N18PoS1cf41ixxeI2`IhUS
      zw+dxjqESF}3oIY^O65taEZIw>c(hX><(7+Mwl|<TNi3s}&Yhi|>fh7No${njCazyo
      zF$9uJDw_r54coq!x2C5AR*XKA)YL@D^DiuEHEDUc<oXk|i5J6<m{puC5?H2>k6ON6
      zi})NP=JT21;mkCDOeb$&vC0MitW#Xld7eb9j){o_#RK%wk}G?j?dGP<>Ec+aAhAIp
      zGQtDHas5L7Q-_-bqNfK(>db19w+gJ=)UlLpcTZ36u1)nKqvpt;*F)#6qxJcp8oO%e
      zd=^Fa<qD4L_=gx~Ti1DkhW=9CPJo3;KV3tK9wu9vt9%{Ia-ElWfmakP1b5Z<i*y#;
      z4rUe~1h*t!;z{LR<-y{D#LKK?<$iFx@?&LQSxX$CZWRgcNc1VoJHbu*z0(MRLn*94
      ztNMB+g_UTPIHKa-4`vv5KDaA!lrr__Yx01OtvD^tNW7+51`A48ad};_yd8Y;%jXh9
      zir4*MHlW_gs@K`zR%K3kJ*`;HEk39`R2+HbN%ckE_f&poRTgu>XF7Y0@V1hQQ%&Oy
      zWkKtztoUC{VO2GgH&a-xGI^V|u6!?XS?%8`ov{?!(3(L0sTK`Ol)#n0m7)qutdLkK
      zu}WgKM4QAKiFS$g5*sBpOT;9S63r5672<jd+t9`C9dcazq<&Lptugg>4gK!VTb`rj
      z5RCWfjz}Vk_fwe04t9k<;joFihW_Q;U}rUr+df}>*nX?Fbv?TQlcpXf1CFB8{tsiQ
      zTeTuKFqJ5W*fL&N3~@>cN)hk^kgSuNC^y&1EtJ!B@^Z>-Fxs}M_R>4cq<0oc?<|Sl
      z*VNgqrG9&zypHnvI=O@L#yYu^^5!~u3)ZSS&~KESw_^u0*vSNL=sXaKrsZSo$~G7o
      zGaEB@o7uRr$IK>-y=GP#`^;=QZtUlpFnZ00IQU<b52u@z=cw_jN%#HA{W0bKxN?6&
      zxgXT-hqe1tT%~b_YolRuO&aI8HW?QfHv7MM8jV#cy`?B!qH8PN@))^nl(<c*<HWzk
      zK@w;PkqM0)CK3w~M<ZDx@esMHkx?Rv5V@uii--)70uf^^fppEPsE~CEsad%S=}<_`
      zs-%!kg*1kKCKa+pA;}PVM<G%nO(Ehbq)8#E5Sda)i$a=1#8=32lUGolXLCewgX=|3
      z4qy*<VK2Y;;VbONZ|KDn4!<~#i8c&~?Km#_IPOm3gt*Kx=V4IX;)wea!{Q#t+asJ3
      zKXa`8iZkMO4zwrek3{J4T^$8%KR)hi6C%T15RYyD0q^}qL%lMDCaJ0dKEQ{>1U|yY
      hT-m|s=C1Tuu<|$Dt0`1%&*^Yg+lD3EPqfy}KLP0T5R3o-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uLd5blvIX)MV`ECvj*!(lFSSSExJVnYHpCI-s}7DHr`z(`t4YiW0t)vk!h
      zK?vl&FUWoJkjESksiKPffK+}%enKk0Amp3T$`KT)%7c3P`=-06d#1Pb+ut{SC8C{l
      zJw_o$n~S!eUJ!MWt~hy7G160NnY8B}*AkxT*k}C<XJ_YP)WN7v8Ty`CNl%$I?}Slv
      zd^c|#^zA~$V3aBtdD9XV-KYvzc#g|Rn`*`ub}_Acu4xxX7<G*~cFhyEcS=-zgHtCX
      zHpFOY(RKVPOcwn)C9$=gQPTFUoZ(KWoH#8(jDhU~1M)XKgcZ1IAQRhbnP`mSizXWx
      z@$-gJE{H~r(XumlO{!LMT<`RvRYKv6V|yj|M6E!H2&-y=SfaMag=e%*ya$IA3h7KH
      z-Dsegf-x`rig(hq7A@{&M2x!gzUvxxzM(g)oKxYnj!{R=*=*sqOxvrB-LbuaQFwMv
      zZ*y#&xEU|9VX?@e;o*@Tw?QP7N7}d*B;0eRz3iFXf|2*|7JM{cF>TY^k5je`o<b^P
      zPQi!~-XnGA({UPR)Y%Z_T1nVB!RbC(vfo1Y1J#TcdH@fQ$CbA5gK(|l{sY&CaMFTr
      zA;>6hx5;+mcJ?P}8TD{_1o>n|nbSc=p>dznI946aGJ%b;lEdjyD91#D(-G_(fyERE
      zy(DCm=_D<eQI4r7bxtRsOc+p3Ldgi16G{yqs6u&6F^Dq<WwK#&dR!@ZnJ1-9y~ybt
      z6y3m94$4f~<5Yk$?Z9gu%D7RMr<RhmLY}&SiW<VM%VR3g=Z(565Y9%;mT=)+WfT!r
      z*8qu+By7ntJnWhcABWVN8aAJXx2PBW8hkD=iq#CeA#w=&EPzw?n&5d@*-le`0eZnG
      z!$@ZIVv<%;kJPRtsh4_U^zt43A2dRYUcK$Xn>43ooR)K1!D%I@UQVkx^>JFmX+5Wn
      zoFbg!oVqxr<PjeyX$uYF)0i@CV_JQ%Cq+&U22Bl>Q^GYR4#?=J>bp3F>5C+NM%z%e
      zS2EG6gH!)=D4~B7MZ?2537UMxmchHXd0bbMYQmK1^!>+-8<GuA>rhG<6LJYIEJ9JB
      z7*L3C0Tge;3E-|a+zp&+!%KnD%JA)#&8Swihg$I{YQ>YNbyb_+YS{O+;eOyXZFnv4
      z`ZhcOys-^$qSf*p5I2mRx6(FLupI@QS9MS*oZ>fWN47&t>)D95Q_n`VU3xaA?bfqg
      z+oNYwQEe||OdHXErhP5rho$iWX*?#44@u+0%6L*4ABAxy)g>c`wHY1Zk4q0-ddy0X
      z)6yfWJkBVOCm^|Y7P3<lkZ~;!na~VGDz+k-GE!MavScJjMtVv{s=+p@`H(T~JS5i|
      zke%8yka6uf$b@zgkuF7=DfP=h{U9!<x^L1;*)aH5km_sTf1-WJvm;<$S4;*>Bw*f9
      zOi|VnFmEd65|~)Pyrr1SV0gg14MtlHBGvMGM>74AX?eXXnYEH>dA%o@0m*a*ao(5A
      zCdtGD<^#!a$s_{iL&+p0lMI-TB-1UKu7J5JnWZ|e;M$L9ju3qUIfscww2OAoZs>dH
      zI_;%DX@qWJ-bU#V>&3j?N{87f#_cpsvU8ZWE*)i8Fm10=hJ8=d>;}!S-!W?cpyTW>
      zOxjyC778Kar|J~>mxqtL*@TqFihn_hZ2g5k|2GZ!l~Lf5Y#Pv)^c6TpU(+{`=wKSc
      cD(&!K*M7j-ETQQ;tBz~>b}agStE|5J2lCA5fdBvi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7S#uLd5dOxtq_HF$u^3~B9R%Vshfj<lHYC9uA=oA$V<JcbYiW@L(#nxn5a;B|
      zLGBZBCk7r;l}eR!RHce4^5T>qQvMBj$PY;67leE>T3L#VRAnD}y1(h}>F$~C{q67D
      zzX0gOEgz}`)+g;k`x*0`*`CS8&5YGPsFwrw>0CZ*I_aE!@?84l=&%np0?k^n;G{F{
      zgXsz9h&7Qb<m1-vf}O}%0-=NzPiM_c)EYPQrjyGH7=uOMrk!k$I{CDn>=URP$k`K)
      zX*;84reI0b3W&`Di<9|WVVo-S_7XvEwFw06LUzo`@6$0!EE1@VY>q@a+9Ht%{f%3U
      z!gfmAhJaUZuN9EzE$eK;oSYC?a^jxBOr&yo=h(bfK+8ip+ey*Jn{^qFnH|p(Sfsc2
      zn2uFC?LH>HmtQ!M2oDVng(vwjnS^!PEM%OKbar0zegO#7#|!zqWydF@li9IcMq-sf
      z^&gkMWwFw>lNngByN0`?!+R?1N(ZkOXew5rgWsCIEo;gW6OS`;7KJf4oT$wF(AXI(
      z?(iC9e>{`6)6OoQu%UHSpk^SKuzX;>Lkn+BqC+4slA4{KyBJQH>99nXfZqkiOv+o!
      z3eM~_fo;4uSHb@Ea+b*UGBPnURUq;JZ*Sho+|@}!{Y-TrRhYXPwo@}V=59LST2^gW
      z5KGV?@sNOLBo*$W;_f2bO_t?R=vK1(ifj+rM~dt=vX2(oUb2HscVJjM9S<a{8Fw
      zO@=!qj<{@>#E8pwORzZfpA2u6c-&=sB#yi6Hi;)(wpZdQm)$OL%4K&*jPWfg51kzn
      zi4xEAPM7#Dm1Qc3MitN*U6z?CI~mT-{KOhaWOTVT#QICv?17P#md8wq@$xpSFTvj9
      zb?I$Yd<mxvsM<@M)0g2oVCf~EDXTa$Q?z-utP)Snd}m8M&kk_iW@o2or{*p&lotgW
      z7l89&Utr%Y+++MI*-JqzLxbY31kr>BA6{9|r0!Go;kAD~$s#PVL}IB#qr@_aCW++|
      z%@QjmR!gjv@JRS2>Lfzyh>wHVfL2C7n6|B9JxxZ;F*UUeJ@H1(d|Jsa=<U~?;YT&T
      z2;wtrVs|*HG@Ge)@PAHBc32>3Ih=KF8#Zoey>}z}qk4?)ORI32|6>5Rsg}elrc%xE
      zy@&<#z)Q(TsR}Fr{1tM5a$SX7PdQW}FQ&|XqHU9E0lo6&>6MqFS6+!;msi-Wpnh|O
      z+(LO}g&d~5x<ZanURxor!wPi|^jpoCH)0br*vtgZ>pW0Z9g=sjC01j!M`IqNGaB<6
      z-O-rO=!wRp(Ho70yv7bvpV1fn5j#uD4=Uw{mGXd6-m8@NYvlu4`5={tLUqb>wQ(p)
      z_lK25R9PHV7RQuDOk14L7Eh8&<0NUVVUqfdIBCGJ=qXw9lvbY3Do<JEDW^O=tvpRo
      z*J~6=ea3lGX-tyV8qbmXjTcA*#!K{c(NhemMLB9Aa5+?e2QSB}iNDHFuM+<OI~iw<
      zi@dIpAtD|Zc|#*fm5YnKsga9Bd@k~qMlKVPF7h@JV+Daw$?6@2v?!!x^{zs~3MpB=
      zr;vz3YF$6?D`cHQ{4Vl=LZm_hF7ly50tyMb$VUpPS4f?UTvN#6C`)ktdp?dTd_sDh
      z!w~4k7W9zs#Vzc>pXkF~&U-KRiY5;Gjo2^xIq8RSK%C;3&*PxD!Wn-JL*g3@i`zIP
      z<~ZPg$6@gor~6$DR8`UAr}`B2KW1|mA0gVg@)r%y#-H(dISkcha7}_m1$>FGhzWd+
      iDN?>*v~g8>ys+!jT#G3bZI9~XincZLwl}oa&3^zt^fNF3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXz#x82wJ#CZ|bS!f-2CpirQcOH)KdXhES|L|Se`!GH?WWM~JHNlhnURlI@s
      z8>Mn7RxGtb^{L=PT`bXem(QIye}c<jAnxyECIl9)<wMTN-m|~kIp;g)_kZsGN<?dD
      zEJOi84c&G=e$qH?#M9ZNkv8M)YT9L=$mTMJV`c4Q{noKgJw)Y#YLzhWSm}7X)#n^A
      z`?C35(%hQ2Q)yFBEM+FGjFHyOUL$8X*_<G)z2MuhyW_f(v+V8`K~-&8yU#If=a7-k
      zo02L8i6%kQyK~umFC;~KNl|=SB`9j=GhJqGhssIPH2A1rRbS7)<|fR*y(TiT9bcje
      z3Ku0y1<5m}c`9Y}_X(PD^s!0x^<;C-;i4*{a7Wg5dSDaGcz-I4Om7CnH1&C#;h28J
      zClDl+ig$Fx`}<K$$~<A@)6PLFQ&cQ~qNitLW@BHSA*ec;&*e-z*{}C!y0U3Wi%{zl
      zESY6H>9$9{fiLUSx0P7=VH*T3SW;IkwW+ze<zcuQQIp6Xi-Wvp9xbhYZ`VmP>0nD_
      zYcg%wma`dgmNy;}RNj_NnIXcq#2(#2NzK?1_p*D*9dWO^L+&j}Pa-q-x_e>j=Lg(V
      z%njoEh<n4=JzdZZ0Z%CPHA&APE9eTgqwcu-gRkC*=<e9mZ{Y4sP5NvrwgZ|0_s2>S
      zv^h#MXr`p+1ceGYHAvbjsM1dd5bG8yWCE~*!F8l{72tUmda(gt5EOY3uz~%zM`;%O
      z-^0owWI5@MK)H`0r#9*i03PrIPP*fO2iXrx$EJQ!1XeVNpr}I9i=4m^uO5^~d@u~~
      z5`zowZTBL;E9~+H{KE&}afZA`w^ZU?3`Z0(fv+jH9EA9$O8P{UW^>X#yntTP2*??Y
      zOFD@|=I4&3E%Isfj9N9Q-0vmXyjjI6;AdD;FV0FKd3Q(>I=p~}898jP(&r7AbecET
      zs{orf3f}`5k-=-6fme*0J^pnxjytjiRZf)3-(<&w?oH)joOk7|D9zyl-w_np(jn<R
      z%=<d{%lRnP(995h@JOS3M?FLzJ#?fCw4@o5W=WbYX^x~CNpmIDN?Issv81JvDkOy^
      zRY{6*h^tXrPK~$&+AZ7Mqi&{yMi<|Jnz}s?899rwM+RF}XN9SZzKPP;v=ZIr^jK)d
      z#`gbt`=Uc5-KK+k(`)0|%Nrlx$YEVw$vZ4gr}jTC^CoU-T7*){@DxnLf>lruC<GKB
      zEC7W|a0Ixj1XlycO7L`Gv><G2xK-4Q)2C)^lA5t4YMxtSHxK&S5<DMxVF|7SUR;9f
      zftQxxWi*fX0e;Jn^9ovt3Ra<jGpY^>l*QydTAe7@;(DS&Tcam}+FCsk($?t-sjb%&
      zv7ojAV@PY!f1*vk_*oWjVR0Lax3hSs67MRCcgL#ObD7qm!~I^i*v}R^TXeF;VP%m}
      z7Dq8k?PZLW+A)k_&A=GZk_c=1p1RqS#hy;Fr%cgP7TTcpD#no3hf!*IjFs9MjA5-G
      zV?=ucp3YVjQhJ*my$j-8tok0kpC|+WAyWMq{2kha6w5v46UFQXQ{ge6D#ip8^q9{S
      za~4d<V?I~RIWW>=z5t`m0}=DBzGP-TGrrXYX6l&ntp=E>XQtBgbCH>4%!EB=kQvEL
      z#ACi<Cc;eAV=ggM%}kZYTxMpvjwQHq8;2u6Ll}?XLL^#Ct7#qnuctBEKz~sS-N)k)
      zr0t>x@4^b&DO&L)?4e!aINpLB?H1>$U0kLPF^&h|F6|Y6;O766_KUx9<=>~aKmZ=E
      zsVIcwhvqIELW*M+;44;4((r>cxXZ{hi53KOoxTMpXoPNH#0jP*%&fzPU75gKD4}56
      PslpX(%Zs+7O7-2pn$*2{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6>2p(66hF6VlG`*b;ZdMqkwVzY(zNW@f=XBf+9HI-fC{h4BMBrgHGKh#8x@e<
      z6#*@X8_JBsjLQeHGw656zrjz?kLq6_{?5ruhz!p7KAihIzjwBK@44sKzej&2qE5Q$
      zry50bQ+6?O&^&BLviXFWwIV&TY_bpJ3pvxt<n4V&)BB=*eyUZ}B8EjLla2Ib2A%EJ
      zV7^#LSZj-RGHWRcC9OmzXJ%v8fLSn|d_j@XQ;KccsYuKzWb9OzqK0VR9&}9G*=1&n
      zmZmyIs$J3eR3Tp+fJwz)QxLxvDhk@gT)$P=AT?<kr>HKxFdXh^4~N5uH(;R(+bRDx
      z6#3-$Y(@HrWgSYILxYMY?0sZ0gXw(1*<G=!7ri%cJ8Ag%axU<ixq%#raq@ee=~(4#
      zk0HqrzTVzs5}Qa`2h3vD*^$XrEFMQ3vo)P&|HeeIP_XR8P;4mIpU-NVp~&;+FE?;h
      z8QaN5ANo5Bf1`czD!+2txr&-*l@6h!qifcpGDI~A)Qsamwx+$+d*0fA&`LPC0NtI)
      zX6%f!2GQrW?NU@5%_l8C;Sxd*-<PHioc7q2>tk21k6pf@X>mopd;6HCr4Q86^O}}F
      zP;Z~nw6db!8yV5`L`A(jdQnq%MZI_ORvjr?6Ql{$r0FRXCdt+UNSbvFIKc*C5c(Ma
      z3A$N+AzTkLr9gc_n#h5kRpf2$9J_j2({_f71@2(DL?AZrZCxtxIflyw?qRrG;PVVu
      z2z-&@N`d<st`gV}*x4Zv_wVg2Wjnx-v+=glL7K$X97H2vH)5M*JbGTRE&Lh51Hjmp
      zU_2n$TomjufAW^#!(xA2@XNw~BlsxuKV1|2D)SeH1;37S1}>*Q=BkpN>w7aulexYV
      z68G%A3plQ~1fK(Di_<}BrY1j~edrmvE#;^4|7x8Qt!aX$iJB&9nyjf=(-ciDnx<=-
      zscE(*ucm;e22CMOaWzQus0}ZyCu3WE^4@ot{XAC;nMu3MLWXsh^mR)I2gpO81?f61
      zKo>jd44S^J=YP&LyoCCc<zO1Q&t=lQwnsmhKuiYRh76a}@*g9zou3ZPz*amMu;XxG
      zUh+ZnL#rVi00pY_dgu*RdL#5ul|CLi-U57^xs_!_6UmCpk`-4X>y#?LsjzRU(x*Y6
      zUZuA}pIN1cq0g?;=g?HX2gLQD=J~V$J6MPf9FcucjVGk<(4u&)5sAgUMrSPUGnT~S
      zeq&iIu8kG3c*tk0g7h0*u^(u4+4xB|ewvM=Y`mV0H;VBlG2Q~>-cSQa_841Z2)~Uz
      zV(hV#J$AE4Ts-!Q#|x0!*aul>n2-S@0a<TYh?FWv%5bDZ94W_<@*L?Ujx-2cpHYPL
      z8%H3uF$7s>yaE|8UW2SR-aw>bZ>gl?9Oxv7Q=!H?bSCZre-5Qy0RKI$MxC`T^R_U(
      zV7xB#jxZ_Si_5$#%rF?g%e*JdDKOe)-Unk$1raKHeZb5#X3Aa{nQ3LF?DZitVP@*w
      zIG322!%V<sE;FN<sdt$x%+xazbeWHsX=J9sWj<zRd<;i0@*SF^hOR;G!CWI+LW^h_
      z@Cy2pR?#2SMfYi)^3i(LjB!1mHmYt+>pt3~_S0rnpe^bIX7wfNRX3?mjnY>28wU07
      zv`zhmDSe-!H8qI%iDV(PA0Bt92`PeAf%ne;kv@G;2EQ_LU4kV8`kcN1r%=)jNOUl@
      cV`V#B*vPk7OIs-U?v!*T-`a}rS7P<`Kh26fuK)l5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6X>(Im7=BOFB&SK*hRas4NFgjOOVhGL3o3=Ov?;=6F`&Y2a!D>EH#NNhiyH{Y
      z?uvjG#0_P}VaDZy*cto*j=#ZA(2tJ4Kz!bFZ$e~n#{1!%=XvhCopauEe*1guS0d`9
      z+d--kG(TgP;)jeQMm$$Y896iFucj^b!9p=_I99>le=NIyb6=2Z1vM+fl4IrK{noIv
      z!yGP@iYaq_$xi1?LD96CvhqewH;0U(;S`F3w0<|XVQ1pHQ?%?%m!SHdf<5dQwzJ#F
      zl}t%>f<(KZ37KM{Gz621zoZC$EfN&5OZh>w*sE%i)F`MfwkQ_sXphBWh&N=S3fn3F
      z)&vFA@415HQPVt}Hb#a8P2BgyVurJYqO+%B6;?b^u$?S?0(lSkjr>p^LZkY<!EnrS
      zwx<L&jNnTo66tiyMtoRG+B|5Ka?VaGU$J`{#TYHw?3(-<#A!&Cibc~-jp!r!!9q^b
      zEJ41_eRHs7mhI$v9{UR&e>YV5mDA4`G<lA@866#6trggYbSV^%eL=cO`>GeeZSatp
      za&Qu|JC(C+%UOr;t!=vn)%Fz9W{_|i(Z>%?Qiq_>__dqk*Kdwrz11RVNrm6PdmMb(
      zBR+N!e8nSv_Z;}D3V$#<3cjYo?~h#u@2>C%r|-1Xk)U-Enn;r*J&VfRoa=$yY}kz2
      z`zlYb(m2CrAUF0_^_Qdev*yJch|pw?_dK-D@#|+L?EqS$&`zMG3h_QHQ|JYt<qGWu
      zTA|R3Kr0n`8EBP42Y^;9G$_d5*`Z*Xp_}C(Lr%ks%0_4k7jX#fg{3Il9OJQz3foFQ
      zr|=Lk7Njt)6KpOk?67|Nj>1Qj{YiyiRr+@dA7lNO8w$V9`lS;JzlqxeTuy!5qbfVs
      z_jZJ)a($;%-184EVVmAj_yRCnoQ+TuO$yTa$1auES3$b?ul{jmNfRYamNZ4uR7p*e
      zrb%j+G*i-SNpmInC50r_ONw%e>k(=t^l)RpWt#))_U|+X`IXVs3$@!QTFgB$(5>1y
      zL_Yc=LN{q44#de?==`?+|M|k<I)pQ(gSW}MGgDgIo_uRUx_b6{EiR||KOW3>zCSbz
      zOYz~kZN!H8DF7A(t08Ovg{pWMyuOMzfJdwN1aRC0_%?9|s~JtCW*nB9aU^P<R^>Mx
      z_RUp%2KdY>-U2?mipRj`R`Gc>ozDSreW-Z>EyM~IVF5?gI;h4MmG@|IvQ~@hNx#;q
      zCj;72JsH%N>q)7t)RWPGwi;tl>(YOswPoXH*!Vd%?qTDNY`jSsZ&Aj5Fiu44IkHdN
      zrX&1z_R!g57klhskEHV0r#xQ5D7F0<>ofynNK0W1YbGLP%8@LNbeJRMIZ}Zmy~2@(
      zVH?m&7=zkTj8YrHSf{;)F{HhLF|56XNGJSmNhdkbX$WVc4fp6=(g*zlO1%XAM_P+I
      zYdz&%r6i#EJ>@;6WOyx}^1f0|KnZ%v2TC~uMS9AIP_*d~qGhj-Sed~}+3PYZEv%Hi
      zK4vAxN}U(y3M=zi33<v@RwOH7Pr1fQn3ag9e8NftEA^i8DJv6nY{BRcXpS1XfpIV1
      zHKL`on3e;tq_1f;{YhQ)kT!?_Z4^z^D;Cfu(T#U{fVPMOv{e+TPn^OVeT5R@HVud|
      z+9rO-`}_xO7k}Y(en>qvHHi3`%0g&ATyD1sDUMk{_b>RFK7UjO-!k%CBCY{_Nnb$|
      jDCrhPbTGAJW;-0%==Yf2CAhx3R65tUw&MGZvikNPNY*{g
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`I-*XdH6vw|eX_A{CZPV=!N-gpu6xvdnA|hf7D20|n+CsM!L)EfPw&|A5ZryCa
      z;txP&Mikx{bp{+>bjBHn8Gk&8oxwlA@o(^{?W5ygAf9`(Nn;0RbjCc~d(LOiIrrRi
      z&%OEO&*h&1?8EyZ_!xHQtYUIOyR0QmJENI;G9{-GYtDA^nrqnB%+>iBbvT3?hIVOK
      zbPY3^G79d5Ua*T!Mn6`xvZl@u&*~W?ubHa8s5zQzI}A#y6kD@$N!4`>E7#9ZJ7`-4
      zSF_wH%`EC1VFuRA(2#TN;v$(;{5fLusfQtE74x&YGbD53sAmW#dJ>7g-b5ln@fLN;
      z!g9->6^5Yv+`+)F==!Cswp3tfoPKIDg?Za?&sVIXQXjP~cb<HLc~1yv`NceedinXd
      z=IZ6uo}opS=r=l=&C({a`kYoY-AN-~v3QmN40V~J<LFjqNnOg%+9t<#+S^Vlkzu*!
      z;D&F+{p#@XDzEZ#yBV5ymNwtl*WXzYyC{teB};XnG@GWYH#<JNpl4jFJRiuIhGn=%
      zD12wv6hqCRoz+92>c=-86h|MGdF}HDYxf_lefAZ{a}{;v(RGgJ*VX0Q951Y^k8W|i
      zSW#E+-Q#$vqOL68<rt`_t2ZBpsW?YsXhf5cUXGy|O&rIl__WU2{f{`P4#Ab>+fp8q
      z{FanYl1$;Hd`jBfm2yh(n-8TtChb3v@)^m$k@AG#KYbzPNx|>jkTMk|OmcbYS3Om(
      zF7mq&LrW>s*J9WtGJQj?@bT&$%Jia?KOtGz&c@J+rVz3ln$J6r5a#|?_Y&r4<Y?w-
      z;n>8{%CVWFontG<4vr3v07rzQmLo2fxEw<#=<MrLhNX|mTQaH5irc8jn>?jChR{72
      z9FWH!fgf+ju!KF-0`9y)9n+QimoEXeQ8cH!bcelOYw7HIdbdSX`8*66BAxbscvyNx
      z-(fp##ZS*tJryi~AZa1ee4qj#Ql&>pudUMSNRL<P4Wv^ek#DPLBRSJ?$(asI&U7Sl
      z-dyF^M)vJh`WDi+R_WVF-%+I}Nbji9ccD$31I6`I&fVBUJLsVeT#@^L&mZTHu{T|#
      zB-M04*{7z1%6>H+QVytTt{ha;@t|^u#*osl{(!^(#rSBvRz&tIuc#D$P=r4r!Vin^
      zBO?518GclTAE%KkXK4&8Dvc549F0-sJT064-y%&1N-4cAQktRATD<NtGHE|?ol?ya
      z{~m`aff|p@OLCM*z$1nvX(B<7EJ!j<B;=7xl4wM@M@%A08-aM)D=)|vLCRj1Aln2f
      zd)a~{1POa_76sWQNW>#=3c>}6dc+YVDoD&D1wrZrsr85}NP|ixD1JxH;lmXgFVG7D
      z?8jalAo(D^#3B5SemtRvE{GGX6+^5W!)yR2*%(IHMVw*|PO}e@VxMA^eT^};jB)lW
      z&amHbmi>VV_5_1IA4Pmit|I<#=yI2u5J{TpF9?C|A8~a(4ROohxx`8acn9wiV|WkO
      hXrvBCFU`V^4y^bs&801re9y_{O1?D}-|N!q#$S>p_b>ne
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXR!Y6kfY&lHDXN;ZUGpkwUnYOVe`47F5bbpe;fQHK4+2a!3QoNlj0{;;jhC
      z-75lG5N{|m4l|+;VrTFNIQ|BopfkQW{sQq^D<>f`IOBO(`&-{xx4rh>>({@>ej%bZ
      zy6LAXMe|d3A$rg}Y(_J=gqg9TU9xPk59IP$(@E#-eMblO_4fIxT2Z4I7Mye@+La!1
      zc3MNZLOx-wFWAY9r6`=V66vg&iCKeY-gI(#MMhUKwrQuLF(;q4Q|*dsJ9GAsW7^Jc
      zGgGiM)hJReiYBJ=xxye!%Kn-{__bJ3$S!32t^6jbNz(*HHIc=UNNY<Z5<$E{3su-o
      z>9?WCC%@+^(nl=oP|_S8QZ#ArV~ZIY$mN~BvQ<#@?wsumz{i($f!E9qW<gAl-y2NF
      zDrI{DNrv%tcPEqBMAAB77BWt6I$O4Q5^>C?fdTffOBC{X%T5f(hO_;-jHX$NJUzX0
      z(5kfUWI7-D3*OV)x1qwXly<(N`Z>iWw6?Y{DMM6~K+R|eveoac-1GMSgI2=90qBlI
      zCT*vkb%?&8dAFkK&Ro*+6AmH#=y_>sMYqSVTpz!Bef;tbO-sw_y*neCmOoU-&TCrv
      zP`z_T)9SK%e{@vSQ)Ttu*hNhpW%d5aTQ#I;U5F-8y{2c-u|Gy`OTP6*EXmLa=I?Q)
      zO(h;_o-1O>v9)A_1YIs)jNTKX$sGN8Mc$^i@vEmb?PR!AU@yaE0?`p~({h0?FkB&U
      z55tuLUu3vS;L8kG3*66ejlh1uwpM{jhQ(|L7;-k=>p+O6a5V=}BQ__t8OCGh1>3@(
      z5j+Tt%?ZY<g3U$24)Z5(2|g_L#|6JC{C9$nGXL{6!LKua;h5kz(R|=i>Je9!>|Ed5
      zA)3ndoshU^?_WT>-VuBbm@Q6+sDbMJboP<A<=!(to&VQ;D$<%JX_~BQil(WW8Z=GQ
      z)Tn8urrDb2YVv9dXsXo|<`h>$w1ArN?7Gsn)gwco*X-wEW5}S|ZRXRgyQHr}u62Ms
      z^hJoS(;{4LXCRH2(A@Pu2OXYAFl9LyQSKX>vY`3#uP6|c>9;A(<uv}s+-%|ZM6<9J
      z52o$}G|WprXntr_ga%NcLJvZ(t<dYBhb#1n(D6Xv+rU>@R$L-kaagkANMxN>;Wr)j
      zjTQO~=rb$yCg`&(^a%9175Y4y&gX!*9@M;$7GVdAv4JD9532Hn^<7#LuQsBwxYuZl
      z#eK%ISln-{h{d(BDi#m>j5UycqdoQ`tt}Zp&Bo8NaVHyZWaG_ZyhV(+!MHnI%aJ|C
      z_87wNV2>Dk>|&2T_K1teUh#MdQXBgqYYY=IU?d=ehJ{F}QlvCTI>eE(94W_<Ug1bX
      zu=N=QNWXCeQX9jNHO6a@0pktGpz#(W9rG4TI?jPkf;bhfyGv){9`NT->ILvW&|1`4
      z?K1BQ(+$S!GVckK;=Q=c`@$Rp<9C@4ggFI9yUd4RjOif4C9jW|nZZoS>moBv%#^%7
      zW+uW+jT`3@GxL}UxXfi{G&4b$xx!44nUKqT!b}}AwJ!51GZSNI!RT#Vjw-qaxd(HN
      zXc;Y`6~L?LYg$8pQae4M4a!FwRRc!%LfWi4Ft&SWi`q|HRi3t~6ByT*s9W8n9yLbW
      z)o&Qoztax&7pC+B>a40l#LpxP;riim7cU`2u`2N1g+I~f56j?JMy^Y!Xh2`mSKt&%
      ix&etBOf6X14hJ^+J=WqDioUxfUD3C??E8&aeftk?0!lyt
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWu3v|@gng8yc|8p{dA@CnbG6Ml0z$6Aiozaj)!3TmsA}ENUnMr0yM#2nC5(wd`
      z42srTwZ0Mp8nDi88|%8OE_JPT+wQTVeMnthwR-HH)8p2<-Ja9Owx?&A{eAcU&je5P
      zO#a{f?!Djr-rsjGr_a9f8WAm`Z<-_pP3z7MEW9(hGr4eEvcG5H>h?7zX@Y_Z)tk(A
      zFKp|)Gu_oM$Y{=FGyScCeDfEq7o=U2OQrqfBRfDk8G@#+%4E}P2DWvk^EW3ud((od
      zR^_^qz3Y?t439me*58xq6EuC*-yFO|ke*DXIu;4C=WklEX~l{a3s&ghl}h*zC#KSU
      z;6rX&AxI2j+?N@`DT0T)v9~Lk&*Ljr;+OGgWd->aEl^v4g}&Z2P<r1$XGhj|5Tvp8
      zR{S=CZWj~THqgrq=(~62@+nN*i9Nsxs&H9iI_v$|wje;~(^POVs7PwN)yF@O%Ixge
      zk<VtaS)adh#e$VObI(U9fCow@Amjw*EDl<O-?jMdz%LJOlHfunFTtn_Kqp2PNN>wQ
      zKWZEH6Z5ewKn-*;W_Jwa`ZMV)G{g%tsWh`-GT4`6f?3eAAh;(XtHskXY@6G%r7z9O
      z-3?K-?fD$`TKwtg&Fz9c6xfsL?twZ6JD?Q9J;OB>({Z)3HbBei1}qv%!N@WTGs!IU
      zs_p1Wg1i7NqcfM!Gf}NCxfAyDWe2tin$p#i%=dL{Pv<*a&1>_O!SsAGl>wFMUAcj5
      ze@AZ`!)$lQP&%K(0lLD1?pBBj0Xq8nA*%A8Wo&R(P%1#1Xfs1w0yKq9=2NTWre(aT
      zKM$ht39U2P2W~2|>B0Vv&P@MyrXK|0GL^}uGTj-7VCU0)9TRXSyL|$l=B;p-_hz<r
      zdejvmy{l&+3ns13Om~NSlG(Mp!(Ha<+O{22u7k0c8iSq^jNKl<A}K8^k%j`)PXkz&
      z@9W8I0aLDztAN3&gHS^<547njZ83<$j1x5T>HeKbnAv7~dPviy1Q(ekrQG~*fcDT{
      z=*3+CcgS{wFtY>S1`BMhY>us&>4qBRF3^y>*m-y1T%*_H&`Nbo_*mr@sA^Si7ovF?
      zYgBU$u7jp)v9AZ{YqS~G<q259*WHz3`#lk$yXg=^!vUH_VTO(d=&S5-Q#d)TV{L43
      zH&vDqI0Qt@98ya%59aM$e-GSD!M=W0z0udxksDy+X0rXO(%J6*9;W?FfbL*E43^eq
      ztr(yajPkF`4dlDh*Jn7-S;(4=oG@t)cKJ9mX(k|~Mf^1}T8OW}SC9TPSuX&Ph+R_C
      zM2o2caKK%FZzV=Hd#bnjTUf_L;*rBMD0m>Q`C>+q=7zL-$7ocjWL%3nMo2r-7Se)s
      zd*WKb5RMTZD}4goIJUaS%~E8RkVVZP-%4S+3OVd*ieh{zEmLf?;xHUVRWu!6hGqa_
      z-s9v@2$UE)50DRZ7DCQy(y((r)c|LJ@mkPzr9Oof%y_fy@!W6@&kbefzs&tUkNe12
      z>D@1Je-UUCt;V@)0JY=HcJOu+biNj+uLCb@=nA^!94VU1QZ$#PXa?`ol@!esQBwHm
      zN>2&{rkIcd?&V4GXUJ#a<b*E<&Fe+Fslm}3V@5syH66pz5;4Ous%GEqX!vu2Osz;*
      zsX3TTVM=o+O-w%HO(tS6nC=*D1zk8gM19`TChgRyWJo~LBqZ&EBc!1FG&t&^ODF^V
      z-w9c_(#@E^owljfYh5185+|t6vs(fhawSeE3;IC!cA5*>HP~x|l32$X*D0$SSaTJ$
      z6@uk#u5g|fURSmyYMF3CJ8t-5R*^0YK@*nihaoMKj2ltM3K?)kBUraDZWJuxSa8LU
      zfSVL?u3~o&{_X|)`)C>+080mH0o?@=_rWBGlvp<?2Wlyc)lxQOi!vX(V@uf`FQ*GU
      zcU-JYYQW9w=|Tu&L70nZo-2%~!<b_(9}P$A!x#G+Ptp7~jcvQ>Vp!D;GsBKszL>vA
      zmxru+$L~pKWY}>2gco?pxaE#R79_S<Vyoa6jvo@gg_&@ICzO>PZLIXnWb8MAH=;)o
      z?~g;eCn3!+Of~{8N8!$+bQv9^Yw0)){S=&f1es`zy0LZ#om9MUhD4B{teJdSGkFBG
      z8>o5Z?3|GD&;uKMDs_4WkI+h`Ed!@6SK6{*?j=fFe$Yl!;c82M3pSXFPHE{Z7SEie
      zl8_xfO4o(V@Zpe|4%xxk`_hblbd;ve3LoCK41adS^`g)K1ZVF~$16e=jOV|Ym@|VK
      zlgo<qtFX5BaJ*ucwl7{8GD8)Q9wmIWJ%C2(DTNuO>7mL{1-9ZZ)1*ZV1?zU>#7hog
      z-?_6Oe90l^1Sk2^Aw3<}XVBu1o(b9h1If4^*7grmE~L-FNdbH?U!;yXSQu7TfAkoR
      z13G*di|6>$;Bl!pc2S_l$cB&|?ss<_rD-^H84$du$fL{LkwS!YunM+<2kv?fhHx|S
      zBTzljbBL*LBi%m__kRI~e-TD{35I_KF8wN9L*IpoUPos8A#J2L-~d0O?R1(3>22Ci
      zKc*w}4&31kT;=C*iFZNm-|1y~pMF69L2uHB^fUU1KA>OFXY?`sjy|FPrB8*AeklU<
      znW&~;iwJ!#=Fx9OJ^hckoc^Gk>U+o(Ff_#wM)(g<T)9#`9O4S#eBdhRLHkj{T-+%5
      zQV?i*I8Y6Fvx~6nO6=7kjqO2)%ea%sXKGelFo6R%0dJilmQWM+np7z+gL77cLJN3o
      z22=s9`~o9}?tt8ktHgY3IcJ@PemQgZgtb%*)lzFb9M?l|h~NP?i@^zOn{Cz-b+m$3
      z^0g^zF{YlE$4p**)d9y;roM}JM^4ewxQ_K99f7Tt9Bs7p9&g)oPI`-R5l7L~g`j|t
      z6o%&K3WK7;q(#C{m%$26qLNmMDYRBhrH#NP#WZCDH|6y}({2UsK^kx?a8Ehq^&new
      z1=dj=xMFG0*k(^>O*EUX2afYMdT}r1t-~5lIC~sT$r9InF%t>Ap`5$*OxzCHM`9HS
      zX9yDuI2DeWh*dZhT-vyLO_Vk#kcgSlTE|K>#wwjkry@16s#4WBqhJa(?Nqd>^p65J
      z;+T`!|9Ut)iCVHn80v|jC$FQ3m;)8fg^JFHiY}sS#5}qV-y6hyY8MM=gNRZJZq+Rs
      zC?^_eP%KpH8iME$tDFb-&<Y3--2=z13s;CeUa4n@TNe$g$-^DlDFc*4_G5KTrCzUA
      zM9@;)h*=voX*I3FYz1=ab$~-y-wp+@0mRPMhLLJ^#Jg}c?%dAQa&6Zd8zNe&@oBOp
      zmz9eca~O#LU!au*P$@%(S_O|f64M=hn2umRl4^)J`YF08hDypl=y{)GsBP&uitfgO
      zUb5qUUo23hSjew-!747{1}9LiPUWePAN9%43EW=@2qyrOoW{1zjfX@2Bv1K4IAqz6
      zj+CAS-qBs(j+`i6K3TK2Kqn+_AfH$Ro3)W6)>6G#M^}hjs6}j`8^x`3lh{a|;x<Z)
      z&D0}qr>)`++949uhu>WyNe_xn8WCMI2K+ZgnqCrH=wGn@`yxX>5_i%&Vym)i!PO?x
      zpBn~e(C)Z)J)^1`+w}}8BZq;HeyS{|!3%t}9ylGz=OGWO2c-?*+<;AY(XE&@&^GQs
      z`e3VfQi5*7tc8ZEUDZK9WsyuctOBqw?vAd7kzS?pt4%dQ{|Q=96SPiHU5$Q{(CCcU
      z7*FFnW4y-XZ*V+VRg)SI`p0X6ffGR30D`>I0&pG!CV=@27~?h51Twg8j-S&5u16n6
      zVgL^-yAUF~X_^?K8DbAri@nGu`)H2XPZtO@OyUqVh{Lp4+(Va(dufR{LapLHx>npz
      z%f(k{wRiyG^B}_KYsfMWE7iJJjZNqRLr|iP>^ULg;}B5;E?P4J&g#Z}&B0(xk!IF}
      z_qIkx$X^>yG#5#aED38vE#YIO&ub@xI?7iX@dRFvo+MKYBe+N4Bu8nw7^U;XF`6Zw
      zqB`K_i!sGT)ICWlnz@)m9pDG~5`At0kc8nYm09t|gig29HG}Mgak+UrixxYAAlpAe
      zdGzJD6h&fYkqo~3nA*_Bm^o7V6Ovq*yVN*()JtPFT5{Xb2M;2s(0wO3=z?`)R1J?W
      zXxN5M?Nh8U96dD@GYeM9u|`X8IOZ@tR9;e~0%|~)I<ZLkFgN*#QAbB}@8~fTw=%GB
      zY0Qem>>{1#SdktNm55o69qEbL1+(Os$4Z|$8g%Md++>EM9CbDt(U{-ytATZj(g_|7
      zQ@}gj-=?m051xBlcpN$+@hpO}NEKq7rika@E#HQBJWun)3wRs)C%RO;hyZ;FUhy)5
      z^c3AJz5|bV1vTdd%81t}D_*A|@k2T&{*4ZaH|QSmCOsfd)7QmY^n`euo)$l*lj5iJ
      ztayiB6ldraz~2||(Hr7@`ic0EJ`f+FtN56{5TDQ=vH!2)m&!&jBOqa^a&kV47PdzP
      z(OJ}ew@E#V+l(8;e}&I;a-M=jycLj+GLZqy0gIxoJjFy4zYcdE4&5kjDjcR3Zm*39
      z+7SHYAX0n|kd6z)Ao>#C`v9oy0A$kBNEp1=LcFa-3E&-XA!YOd@}pY{dyviVE3UuM
      z6PV{0yNio-K{VXhS|4tN<2l+><V3hK@}<wa*U9mMEQLo)ANeN3LS4GW=P=I~2#fzl
      zF#ndS#P4CA&yhR-q||hodw{A}I0>CMUsAb-U940h!Fq&tf=M63V<xhgTf_PxqI=a&
      zVuk~^x;EnSQdJv4xt2w;qYbsEX!j&T{3gLwkz>e>!RqqC)xfw(wz`~TtJT$kV-OEP
      z-f@2c!~B4;I#}nRx6)ZBxC0}!Vy4FNc7A<WwFfpXgIbC&$$Q<%Yjf<FdnZH%`gn4-
      z?cDxAU4Z2j@IRFTGDy?qGz!Tos+Kcoj&x|T3{ec@tK>{tDY*e8+Tt=)cD2<?DAwU>
      z+$UXETV3u0R;y&AL9f@NnPzth&{Et%*<Gfi<va+;#4qkS*c{m5E{tvbk2fe!4Wrn{
      z&m|3xcASE^O2REpQDFnZS-lhlaRbCNK{(M^zUcpMvYOWLUOA6+IiIRzlxE6$nu~9}
      zY)}%pPcaQ;i5kihHIyZ4C`;7fNyH(<L7{`wd+1)5Q^9g^D?AjohFZhH+520fwP-{}
      zm5cCWMWl9&EC(+aMl{kG(+fWFWsDIXrbT~)MZyd3bx<k7DI`^-RE$h-1b^U;$I;#1
      zdGhkJ7`i4IBTdH99$f*sucUdhiK21|T`8NXMYht_@+xYRSJUlsDQ%V4D1Eq394Lcc
      zM=+#hXA2K0*|~J>#I=Z{WG2eReSkETF78+QxDpor3LpbrTNp`!Eo}4ap{FCX>&l1P
      zJ*P%(i5dJ%<)-(&F{>buV`nLpjRx09Anj{|?AUt`vSXVCqvRN)rB5d(+Z<~$^jyi?
      zq4b;J*K1+*b@1t%DJ*ZH*>VG2C~t*dZ=@!Sm&r}ET5dkax7*8}&`uA6dzPG^z}z0U
      zz3d6?W#3*=_U&txPZ*%ks{GhQ#}ijxZlQcQ%JbQ`@$Tws1D+!}OHjQJ72jWD4lOAN
      zttL2i|8VJ#H3o{VzeZ=AtkEzqpqg`f0XKlVNXiu4dkf6m4S`b#<O~GfN)g#hbuvpA
      z$s8?^+m(=Rh}NTR<E}*FDTv(|Z?a(OVUMZXU|MFX#@8IJZ5*bl!MfTWK&R-D#5h~0
      z^c%I8b5j*3M7aw*>?TXXZ2)tkaL=j1(+fA260S0F&SMifU;f;61+mfBig2ipG#<or
      zo;FN)ceN1&#nKlMcspYKk(d!iv(SQqt)mk-MUUg+=s{6mBfmBTqD^Lf6LO+m-(*Ic
      zEMF@(DLzqcMH+`oe~BEY#Xjy7s;bc)@GrvY!WNDlj-<v)Ulb|8Sf7U*EB&F`;uot&
      zTCsIXwS`d_4M|}`wOMV2k?Ofq1Eb3^9Rbe8K8fijkZ&@pZDwW$Z>%=4{z;@O19b}n
      zWQ37YC#V1zF8#JxTCduq<FwW>j?-Mo7*#@!pp&wPajOXzB;GF*j@^bPF$}>1QQTb;
      z&{<o-SBi|5e(&hOn$ZZ@SBO7DU5S?PWK5jKqbo^xo4k)I<oy(sUxl083paTPaq%#n
      zFCU}%@^R$+C#YE-rEBFeS}u<xHcn8xJW1>DKGiA5X^VWGdgVXRAijs>3v`eCM|uF?
      z$K;E2Ouj^8@?{#AuhL8MyYwCT8oerCr|-#srMKh{=tKDi{Yt(`|0Pe;Z}9y;`7HkZ
      z;%#BcpNLBNGf^$y5wqkO(IDRwi{$&F3E!pi1F>9wC~m}et^7!AkRL1edQ!cWZJfwb
      zxD9!=91uS^BdTyyVwdw_eT8y&4Q>6^9uyWWc+%ngeZGj{4UqHIa{P|NT}`y|wg;`m
      z{-=PmXdNCFTqr{gs$sTqAF4pJGaXHMHU5r)3P(5o>B0-7X6)wtQ5CGK86~?$-i<fw
      znp1Q#HE9{QQTR_Km3w8VQhal>euBQ?QCjYW<kW&FsYra5V=^&G#?KKee@#C5xgzDp
      V-&8OD2<l?B@V}4zor=f5|9@uj5QzW)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>?@t?L9RED+U9UaLsKCw57M#;*+tby7t8Rm;)YWv>VSq3!i=oi#JS<l%SF<;2
      zG&5?VFMOpei(|eJqf3m5gG7@hzV*-X4^ThP)3Y?&VhDH7_xI=XdA`>_|NiYRfKzzY
      zKu92U#p~qOYwy)^p5y0=bCpur+wA!Be%q;S7|;YpRMc(d`T_!>;+%je3k()p-j-kU
      z{KZ<c<Am9IkkLv>o=l!xPr#}?pvO4@qu!cxwj7_GssfQI*K_@Xz>)L=^D~PATCr7k
      zOoTBK#}GyZ!s*PSv=7JeFpdz;My>tMd}njB)%KmbidPLhB9QzK!c3>paN172kB*6>
      zNXdqY7zD=S7(iTLsN#Cg#m>g6(_W~pHXVWCN^7mwT&%TSX$MZtf7{(+RptMbBw3A$
      zb^%c}^ZeB{XVZ77oq?zNMV{?NB&|#wkK+k>vg3Ff&#;Xo$XB}DC7z4pSt*3x4wPJ@
      znw+DjmuE6%lYCCg9(k%wPr01obg{~dS)P$?Ps@yRaZJgK0oSWLS7#e?4Wtr<I0kWu
      zBDNY0KAR5jQZ)JR(sDe>#@RSUHuJ4cd(A1iQl!y)mguAu9*?n|TnUX*>xj@YXoV1^
      z9qY4AW>9?<<7~cl=JICve2CT(;~~CN*?kOW?LAoAFzj6n{Enk<+WSb}!PqaV`cXa)
      zshJm8Q$Z51;~0I1yY)nLoEAH&c_by3X6yug8m%YQyf5gHxF@o|Vr&oTsbpes2PdSZ
      z?I9a@r&9@Y2hr5jF3hg$Wb!tvLXaqqlO=G8&m|(N62UUYahcQJLI$h6KSv=u)}0g}
      ziz3UfR4O%&VNCE8QWz)i!#Evi63g0Q`|ci|I~Xm?fp`0e$9lwLcpfh>E{W&wYx<YE
      zCSYCi8Piq*vUZ9poXKmJ_AO?!cFNNBaW=0rX?h!lfV-uKZgw?dg08Kk>Z+z2O<%Gt
      zJz*~FVn{j;8XlmYPz&%rOngAGKIGMX#B2GOAHX$C;uD;~r?`O6Fo(}6<(IgEuN1=q
      zMIz!J!}Wln^u4GAl&6<?;tvKE@G?&tJJ0YhLcSsS8QiOch%#GVU^N@QgXz@Rie#_V
      z^Li>D*+s#&B9n3_Caj31?_e}wnK!Z;)47>U&{ih%hGobl8BlI3a{F3DutK}_&mW-!
      z=4aK)e@!gkko`8-{yLG~;2PcJLf%3S-;vYzWb*?`_z|z+CtPIC5`I<+T;|6_q&)?y
      rJq4;g1*(ApCf-0%DUhI=uP6mZa9(K<;iRZqI)imX!AUSGm%8*Xh%x|@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}?^7F96g@B5ZNes@fi|%e0<l&a5+GGts`8^kBsH4aDFGaYaoQ!>!q%{1l8w?Y
      zwmMcFryXY;$MKU^E#l~>YMaieQ@{I1spoB$5V50VUh?jJ_nvp|x%ctMpT9f;@C?rT
      z;1P(eS@rZ){VhFh8Fo4|pU+;X+naT}U{?)&!v{s+sB>&q(pj@?8`bu60sms*(o7+f
      z%L#Pnoxrkgt)-c6T5A&mp-jc9*}7#f>E*iNM~9O#;-+{q^8zC0C83ajC!du&O+b-E
      z=vbNMzO2`5W=$5$re)gG0^Y>Xl8mX8j1CAygE)w=z`?v}8L!nhR*mX{zFIaUqe@XP
      zFX>fN+OG4!qzluNXcA^+?KMpdEotzgFNhu-mH7QZbRobC?RB#zFp&RG$yl?uQYYc)
      z<Ix4wx2vX2c1j{A>(J)5ipHjGQYRly2prm#J9nXVB54c-@g$CENMXc>VS&TDaqZ-T
      zcnYJuBC#?n%Shp*^c<&@#dVD!W70e&;A23}xn8WwurbN{$`yW>4T~))ahU=USEBZw
      zO57=&^?{uT@9%gJFJgwxS~Kj~YqmkTqK|`Ene`(haC%|gh%XkJ(-1eTVx`2XiJP^!
      zRk7o>`sQY(Y8$0^#fnSq<F#uw+t|=Bh&kDv2_Mc09N*Pp(Q0MPxlk<uW%rCNc12xn
      z((*Y?D6>|rP^njo28WwHiR^y?qY|CMQyGq?iX&VHX!&S);3o?WftD><h1%>++MG?s
      zDsqPS>tjwg4l&~}t<&_&zb^GR|FSn6T3A-X+QQF>+@sTjC-|-L7nmc+7%!JzFqxz2
      zLY$*V`U1(+L-Zy+4-nf+?sQmRB<Fbo6&!$QGaLhmGmVLItOzFLpz!Qz`V?A&4#V3n
      z{8Vo^bO+(&eI$NDq=DoPPV|PgJLsV+77l%dBkgAaY4kRbPWJwT&@q+|tWd%?D8ePy
      zq4V-0(pbkCT*V~bY$G|<B00r>SW;$5a`ay$XGmCT(2-1eQ;!;Wc29w(d^WGGw*hyw
      zfIHZOunT-@Kd_i_x(#gijVrOf%hP@1>JF}_BI?)=ybjpl(zrrg8P}G+0a<=3qD0h)
      zQfgq_mBy=bA5oRd<H`<3=yZhZ|KH%GypcM-uZoBo`}(hUV}$(@U2dYZ2)tKxmcs_T
      z!{%S-z}+Cd_iz$7aTXuoReXqx_y`O5m_4|KGHzoFpD_AUp5EZ@Gkng^U3}pPHqBm9
      zfR<p}u3*x4hCPwGZ{s=cy!?EF=ebiT%1yk$o$7RKV!yDk86zK5f2!Nxz~uSluy<HC
      zZU>#O|BAuo?%9WU>Gylg1|Lv2vP6)tAxcExTUK?K-tRa=-y?<}9j5UnVvA`%UUr{q
      t068|<L$p_zv46xToN;Fp+q<+UW^;n>BZvpiH9?0|$h}5TQ28kHe*+W4NKOC%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g@+syR8+<f+*qx@I}SCif@Y#1QE1~W|3so#7x(r4sLgw?Ns5X_|2c7
      zkciP}{Opf1-r2U$CdT+-XLIkId*<9bXMX+u`UAju+&9q0kShmudyT*4b|92JCsujg
      zSF>TDM4%RU@X8m_Joi)>Z5Zfg$i`5g2W5Myv?e@dAjxoKhv2W34E=9{@LljyR(M&w
      zR2x-MV;Fc|+$D2VB!hB+Asu6un~(;guB2}-@Y-ufD1w;No-YHbZZae$aw`nov*9aY
      zpszz-gV97kLn`L9OO>jLft|1{S553|ooKIBMcKsuo$YEs;qcD3lB)zCVc6dwThCX+
      zNb!;{@;un6aH2lUV6`^AN<AO(ni7$TqYQnm{CY{M7(CXVtjcvtroeD40|Tak6Ew4U
      zI_<ruaSAyD6Rkeuy_qQD8?_8hW0E1sYeiX83@0Yqr`x!yLauF`8dflnXBgZ)XEyYG
      zx>FejX&i^0!8x2K(&^^3hbP(ycCm%rik5yMgA~%#R#67xQN2<U(XyToO{Exm++X35
      z)N!0lBY`WLKSS52UQ6=BWbwbPNG2HcBEgmD^czFIDKU0v(^Sp2wZA*z1>NP13~u5U
      zxymEca~Y75eeEQz**!~P2D1k4FbsDHUDT#-K9vmSaF@7<M)AO--bXsSY6oj8S7b$K
      zv+E)K?KL=IJ@Ul7)MFg`*Xum1t1(9Rkf5&zT}W#u(MwP3YoULFqCLpa?p}&Mpqo~p
      zm`#00ubZ&4j@xZnj@x4mI&RV$a$LhY;JBuB&~dX#>kzGmb%a*a8g;fX{td_7O^koR
      z$)7m0jk8;r`b2zPxJc`D^wPRO3Kr?a`{>65455e-Jj5s-;Ut!D29Gg?C%A-rxQeHQ
      zUMAEG#hL}Alibl%Ytx@muIKbNF7F<bjFXKL4J80kU5ksaqd*zmYLVzPVRjQ!lb<pD
      q9>ykae`Fsi*O1#w!vS0x(=!tOB9<`JsA=+1HRegEma!1mE&c%)_DJCX
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|Yfscb6g{)MP_|oO1$P0TJQP`872%874TOLgV#5+vSMiG(y5l-nTGDL|{3{<H
      zh?3|xO#D&C+v&OmLPFDaGI#E|=iD<hfBydX319(B8d3~nO*b_6`6q6=A~4s*dmcK$
      zw(lJs*MuYN!1Fa^7>b>g3u_G8A>~TZV#r%6Ck&)xTCx?C8L~Cmba@c^f?@p9awVQe
      ztg2*rnE*W%+mWsemKoAhr8+}q&1(n^y$pj%^;O^J#}S1N1N{c_&>6Zb3YZ1MfPpS_
      zXK@on4F!h2i{cFoVVJnKs_(XUs&95X(i1H?+`=6VxBp{1O&Pe0dnArG8VrT0xCe*3
      zO|!bUPj;0{ZyEY6>58rJU{Clj`JO|~4_KbfojUhrG*>|#Y4lTr!3Rm^O<33N1KHDS
      zd#+0?8(cbq1T41&M8aR~Y?c#CYo7g41gnjPFIug3Tzcka_1Tdv4g=}A<x*Y4Bia{b
      zj%s1kaYU0lt9~;)5N^;()iD`KO^3cDLlTmRk|EXN48uwEA~nIJM-CL?gi9J|+gj?F
      zF^pd7r4$1?&J)v<Yf`Q}QhLn`eOqjhV+<o#9q{?c0lE+*l`aOOt*6sNqein7dXS+n
      z3!Nf4imXs9dWKG6?4F?S8*Y4!-oft}N#XSuT1w$Q{rgn8B?3N0k;;#%m56}OYrEJY
      zjf~=5(<c~9pt|Cy5c7(H8F3QEF+s@;5Acxwks3jn85#>SXUNT-L7V%H+$knW+0?J3
      zV60`0uFE>zis!26bPQ}4r4lG%S`ig6gIOh^fH}-l9}FfQQzW)zK~Y;YkF3bgoTDTw
      dK2z+x122fjBIYf{T8uFr)_j|lc30sR{{gmk3C#ci
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>Yx15QbkjA6r78CFQd~TTrW}J+L6bfd)~bs7Ocw4v8uxPL4C(xNM!s>#dr9
      z1t%mV_yPPV#MlWCsz`*x+B4qq<9TQ1`;RZ*06fA*gav{7iOJ(*c`9Q=E<QLJy3xBQ
      z51)2yp1If3$b@W!qQG*9Nu^2Rx7}k>E<#yg&7Yoyt67%D=Why>pJ}7rbAdvA=TM;7
      z9Q3Gy0xnh&VNqbIr47BwPr76~vYV1Xtu;_GJ(N~^e{xuKeVqwxw*H-MgAuAv>O(Wt
      zWLywJJ%PRY`&Q79k;<)hqgau3A>}3;`baD3s4<QSI@``_lQewZm4h=yL#GEOi*Qw7
      zdj@HW@;h3fr20}Dfvve-7g&_J>vu-OP>DY^pXBmOTbt}DSIjrbYpW&XUMQa-^<HIJ
      zPL_+cUEi7O%?NjS3}y)O-JBA|RcH@#tLUZneOjG4D-S#e_rMM3uf&5^<egj1>jm~=
      z-UaWa-Os3eVq*bSUd!R|F)p!P9S7htme}LT!xfIIvF%YS0kh9u!T&vv*b9h_@y`ju
      sL$2X^zzW>JO~wh_`XB86+}KszX82!H3tw^PBPTm8wK-GjT8LWz2?N#600000
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5PbuMDppZM!S8Sb4>o!;RTE<TN{E`McrNV*7jbL)f%>oTr19Vn@JAV^
      zMG4V^hn?A(oq2EO?Z@ZaJAh3r>qrsS+A1<TcF#7I2+boAHay4f9(zGpcS7kY9U5Ue
      zDd^g&ZJxC{!U=U`39Csq5KiRF@X0*)WlwfRTeyQxLUu<g8SW9%)moFF?R&1sA&m(G
      zI>re3hE(D-x@!sl(r$GHp^&gQZC}RmcTx*)WI(7i{u$L`B0o}uVzt)zJ+YO;Ear3+
      z`FXhR3GZBYU0(!&fq9e&Mtej7Liq<N7H6c|(y>5T83J9YTjf2dShj;lN8HEC5pow^
      z<U8V!RUwrAYP%8lqXM3rPlkUb#h#^MJI;~Gp4eyBUyyrFo(;CyB)Nr2z8ixAOd-z^
      v{}g7}#?5v1akKu4LjRijNsxwyGPA@mQ_Ko%bH-xs-4Qr_2)D=;DJ*>fwpo7Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%s0C7(F*hN$^}C5NJc7W8Kz<z?zk{TT3V{v@p^^GpSV&57lIn3%D~5O6&?&
      zb<(7%f5Tq))R#WA(gxBhO?%!SvOi<nxz|o&hS(-czP~=7bH498*T4Vy%dY^g;(ih_
      zfeYKNUwmRcwTiCviYwBp%jU8zo%)J&_GB}OgusA4cPw|iSlN6cYo0*=PB-!kdC(FV
      zT-8y&XFJ6zV;aqpKspjuwH#kEuxHM8ZEs#6o}a7=B<?oq(tv<zB89Wu$d}cA|ElfE
      z2mbD+Y(BC!9jO=^HOr}5O<S$Q&4jmO6Lezr-}5LLh+{}G^d>RfPAMYRKn7+nWt=y0
      z20dyvY9fgq3ToNkkY1Dp`m8z&)2Wfb<$RE~F3v-*X}jB{lRJ}D1wUcpJzNwp2(skJ
      zUFour!%={sx+Rr<{A+p8DQXm5;LKB1Nh;lzUPKJruy{~*>vCVAmM2fjP$DKx6fh;w
      zD+2`!TEnsEP(>0Swd)k&PogN0?;2vE*|Y-Iitkmn78|}>Z!PWD<eq0YT#B^=MWe^X
      zYBO}?{v(s{kO>J~iq<DA@F}TXH}NSx6G&>x%GN2xWgGjCi=ltg`4CiFV$IqsC87M=
      z_4JC>+Tp%|Sq!N{&YQ^Lwsvt@Z7!Ht#9glUe3tY^RCZX<NJH9<KDkBt!JVO~q2O3c
      z3hAjSzH70=gG?c~9hI#mm&Q|9%XrxEn>D#?tLrin@kVf&uc&P3L1OR^5aUCq>luB{
      zF~t*J5WWqruJc@QOcn-=BfRrQ2lnx8@Bp~UPiE22nHhv(0BNoi#MuzyF%mj<yl{lU
      z!dqlEaz_~X8RsJNY!`Tt;lLc<^8~w%G2GDvBLPTA0F1NpW26wAT?nbx8KbgF7k<LI
      zsYATWF+0t%3*V;$?or<op_VoDMDS4uI*s@70U-&54>?mMxP;3g$yP{`5o?MjcZmFN
      zm|lB{#QOAW#>CLa@2=<(2-3OF)dTK+$@QZMXQsoM!N)qC7$X$B;=FnaXZC+_ZV=-!
      zIlm%e?LRr&dCuUIFi)RVQN_&ZJhNd*uboVH80S0bj%p9>klNvFm!)uc+CUbqh=g1x
      z?Oa&u7$e#eZqQbN`+lGclpC(S#q7or=2n%6L)^L*pMQzmlv<5b567$;4{>Mx`?we%
      z`|+<ore5<q)e7Jun+@#qeL&u47{+rt=3BP(Ie&xCFoW;3wnD%aYD-}n_h=IS{@9LX
      rHb=E)LboZ--OuUGK;;ZaWtLQ^?p24mNAJJT=)na^h3En+I;#9P$|iS6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$$w~u35Pg+ZC(&qJqaO5@h&YJgCE~>eg+aj$Ja)!5wv0V8=@I=a#X~^B5AdVJ
      z>Yf-+9;T+MUe&8t)nDK5p8z(nR7Q@_=<3wJ6OY2z()dUBqAL%DzKMu9Llgmz<X
      zq&5SPFrswN2pvkoV(>3Xn+vzYNNHtu2>E8~l2F)<ucZe<rHU#>2&HX@k8*0fiXuvc
      zTA;K%PVYN1ITxLXhtz{O6w#$fl#N}|Lmn08Gq<Wo@Ve3rL=x7T!BF|dX~20cL!)Bd
      zZe>6ubk{%W+;NsQdizhIe6V=0j5)%TYgVy;bTUMEP?|&`Vg5gA<~fVgB$NlrDqh)>
      zHzJLGMGY=@AVL!-&+B#qmU-nozXo5)?#*7Fy)u7<QI34%*aDRg&{ZGa8^&Ha%%R5C
      zbKoZbH!$I{Z0tpc&BPv1T<v4>udU>gSxYr5K;6yey)n(CGu%{QWY%feV$Z6`(TlZi
      YbjHzkV`npTz+o%q(cm7!f~#Nr0iK3_jsO4v
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TWnNS6kX@eolZNw6k2GZ%(UfM+B=lWt0+uCT6v5Xstgoq5uL{^UMVwmIwRnR
      z8iRh}BgSA#f`S_B0|^*9C2BBg{1C&3Kg5{$tv|*OKa4-rwa<)0(>6?U=j`)Zd+oi~
      zJ~!`tc>};&4EkUw1dpb2?a#!Xi?yemY<rKJaw4hWTsE4`II-hCm<sdtuA6S3vY}wO
      zDTUgeS@yOlc;dN1g{IPO*Qu<tJ(G!@>dj?K;5=9Eq!Q_*n>wmcQ#d>nOC4>ebFK-F
      zlO~SpSMbM&(urgHoLF*1p)BmC-0W6`MJ**4Q^;*;?Nczj(@CcsHFR<y+O|E~9f|m%
      zu)snUY8C9+Z_XqkSaT&UdvnL*PG)~BKI917bRss?7t6RZFD{zdr(LpZ?73G;xA@^f
      zKv)DBUrTFW1z9y(@S@CzB?=AyXLQz_`O$=c+*oeGhjOu2TBv|utW_2&VfoOi5GbMK
      z1_zytlbn(sArP{#8f^-5j>j^`qPgMWbSCR0HKBfiYPT>47PCkd6qX~b!H$y&XE^Jo
      zQzJfXm@16k(vE<4Shx>s6}&A2U9HTz2M@@~CW>aDOTowGNTjgQDH~Gg^q>@)PCP>n
      zg;g$oCF`tMOY6+42<Sr=c8Hq_iq{>II>_oS3%fxaQzGNg5^3#|tUY3(M^2j~?(;m@
      zguNDe@hDwo(*?aLG#5oNRfMxTSJ-DEiv0}6O(mU^y(F*0((yK-&%!}G&J3K$xLL+f
      z44Fhc=(jK+wfAP65hp85`sMG4T#@*P)6|fP)5<tmS_yv4nm?M(WfIO#SLC-~TA!|w
      za$_kA=V5DmVTzn+86pxrQX+b!KseS&bvgQYqY88RKaaBqdE4MvZii~BCoumiZ3A`u
      z_v`gOo<E3%oYxi3VG-&%;|=YPM5VckXlIBfY&z@-EVe`AXt2LR)1e709mg_z^*C18
      zo^dqWp>NT04ppH%>{0m4F_>IlbJuqxy#hxV(^C|B3=0sa*902jU?T=KpCtuPB|aTR
      zKJ+flLAFXH$#EUAOwQKph}Y3l!r#7zhCDW2qFso%Os^l)=vLuO5nYfr%|PnpisY_B
      zkQmGT)1jW7lDLWz(Fz8)S(9KJ%m9s&s!7mF4H_iF@O0P{8rCixE5TM4VR;o>u}w3p
      zWPP_WPYT=7HQkjlmk3@!)zek;D7@+ljWwgVF0S+F4hKfz4^*4@5I+8g17DZ#m90P?
      zJ7sM1&<ckG#sw^~O{wcOEX(8Jb493SoUh1Z&lS5ZFwZ}M$2x<?d)OnV+C0HL4hTpd
      zhfW)63;~(w<pQG57(-bwkn9YepZr~}@Ds4jrcClUTyF|pB9X*_vB_PWNIAoS&zL>N
      z&8klF$8j+~>4ea|NNQSyU9C}x`NY_rzXe1$!&$7P{Ss6BGR5^Og>;6Ae+|p=I#%Hg
      zgzzTi^%fKVHo9?^&(S;Bhf(auyOi+zaPa|B_y{NQF<!(cMEMl2;1X|rj`OrH;tDR~
      zD#q~zu44i};0A8t8~lOq@F%{<KV112KPoS7DhofUD%?_a_*n~Kw=|2YFA8B15vAyg
      zJ`dwbErbxxk;P^T;W85u<7W~*!lvRmVoHli!x-|u@uoZsFK|Y2An55}e^!TT&Giiz
      zP*!VRI&G?2Gk9_GFXOH->-5>%e1Lx8bMPywahqxXP4nAOz$pnesJTcB1~pSdTXD9x
      QJRS=*XKB|Y*9|!T0fkMZs{jB1
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T}$IY6g{_1n>I$RTED-wLRGL`5non(P!s}1g^Dje#W?6_Iw?siKI;G3mj!nh
      zeDDYOqr^K|vDHEenK^Uk%(?fT`}+3$0^kQ$Or!`KSE^OHaqrxU5^?3kccrQa-mQq8
      zM$<2SK-Fx;^*9u6!-PQ?N%%6TIPD8UHolfosY;lu_0s&w%pIv@yh~Ut_ol9%5sdxd
      zQshDCvynm8LK^)xObigxWlb2YNhOY2jSCT;x);764A%nB_0QZ;>hnj?(B%=TJu`MU
      z%;o0U9qIp<=9CV>I=J^lGnRphOpJFLa{PH?VG`3OrU)~=?65I{A|d1XK_v8>IU6&&
      zIfL!KB$(y%J;zCs)`M2)i9@MdEPk8Rh8_vQc9as~zVAkn;AV%q=7%afndbRZp`h(#
      zl;Ph*j^lYoTS)N-SZnKlc=-qWH=j}%<TcA2kV1j6tuZVNVVHNe07YhvGB)@$mS}A<
      z(yZLt6Rf|O_{F$W>8?X5_o>9)cPVXuRhn(rWHA@?0FxfO)rc_9by2&nB(l&M;rEM4
      PT}xQz-AXb|qJ+XbjJ2al
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;(M}UV6g{`ycFV9rX^T{ZB8G>GiCYrGi-ZRnO*U!3q^2)CE$akEw!6*lEcics
      z0Gg;IJoo{Al=041OM|4@?97=v=bk&~-e13Oe*)OSa~lPMdm3f#C;!5CBdOi@p|7HT
      z9Gpw-4M*YD7#?MMl<B@sq(8J_5gK`dirwiOLRp`wbgM&X^=7HQVdkESl-?(7wr5jc
      z3<y>?{wU`_n0HV@S)hnV4s0wCifuz!?5Ri|X2TPieDF^~NvQSWzz+w0qRjbk&@#^>
      z?98nAfMtGfDG1|~b;aAyfgEWSN2!g+g!;cmct?{PfhJaMJRz*j>Vkv1aZtKUlxAhC
      z?HMa}`}n}ik?6-+63BPT_-Wi5%qvru;CN9alWypzsbpuh|Hp+6_pQkDrfStRkCDZ{
      zjS9!-7`;Y;KR|51{Lae_oUeQ;V3F4{b3j+9GIk7xz!GY_vvVvktHIdf({ir0%gC@Q
      y+utC5VC7Cpm>P5qo4!n`RmN&Wc#1X7oT%lI_2~%bw^+G=4Lsvr<dvG(MD-7Uqn@h(
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!O-sW-5Pg%zL}RtJP!G~eZ+?KmQwuG<h@O^GTJ3#Xm$;H{V3YX2JQaHI2l%7J
      z$tsj0WngCCo40RfzP>k~0PfHV;SnwpQ^s%dUB*Tg@$*znq|McXwV4g!6B@3UN|VHn
      zBm_fkbTJ~dFU7VwE37uj;A&3r@3R*bp@yS64iK=1&_<2R)k4`PxkweEC9<VV=hEs5
      z|B-(2s&hg|>|bd>sIBs(GWa)|5Y4jEF4d!UBX(}Nt>ox}|MT(SO4V+hLq;Qb96)e=
      lv&P{EzdS^oBgghw*~c;C^IsL}IAO$koTA~pnv6W0{Q#vzO{M?<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~pIQ6g^u?W77Zv3KkI&{OFfd1VJqLAcHg203%=>9z(mdaZ19ZsrnQAF+Sjo
      z!i>!5yFbeD-c3>}!b`IE?z!ildv^EtpC3N~%wk1DOklF^w2SYp4_48UezECVHR%;!
      z+D*A7TW;H{N)2&=@rzIqLLk0R1p@u1BC=gYP!dQi+m7u&7nskO7cp?3w_B#Ex|aT}
      z&Q^$b)vZY#JxCeQU<gcI%yY((tt3H04D=!)Fksq_+-M){NpHv6V~IniTeX@M%d<HS
      zlX1Ucw}|{wjnSk$Qect5^rh%CHKe32{jzh|_P2dcS_cB7nQUjyt_@<=*FII{p>MlR
      zOG8><I5M-m+1b%>lPIDMwy%pr#~5z0Q4<1#nNAl*mDtTBX)&c!_ZtE|nQU3d6z*!6
      z7BIRQ4cx<h9`p?Qib5);!33^G1Mq#JOo?f72J*-V^!hHPG(3z{HZ7-KEIYpR9ILtJ
      zd9J6UfFi4Wq*PQmer#Y4^Q4fk%c|9G(Mc7;2^7Ol!*f6KiIqb4&Sf<$2u!FcSk}7L
      z+;_bLStBtW?*s(VP6obQilT#v*@R06xc~L@No}i_!N!u){EIHg3`?N5MWfLhBeVD(
      z(kf1C4Oi%!r05M|YCo0BpFqzQzN7CerDGVNZ@=1Fq{64ru|yQWWB|t?hA0A37{)as
      z;}tiE(fT?@=s!w1ZgxX8TA(^c8K)TA&3!}P3C52o4mu^&-iqpA1h}w+z-{Uoh@DgH
      zK$7c^ap&`wa|AEC2$CIw2grm3E)lRB>3|@6WS*k1dxDwuLjD-D?+U+EZ?@-2sBDC$
      m0?L$mO>?Xh=>|=<+2ut#Y?P$jA~{9pK<FhrQ)){};__cX&=uAI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TT@$A6#h2kQVz#*E5%T%l&U2ch()B8R9a0-i-dq&QmNNNa)3j_Ie2oSw7z&L
      z<AaX+;y5@RXMFM%9VIg|qmRz`qttKjlVnIuCzE~l-fQh|efwK$?Z5x|{SN>au@Od#
      zz_|^(oZK=#Fp{?EC5w(xFx}*|RWw%?Ga0oCBOq|LnOogOptWGR0w*&H$#N7zN+5K_
      zvMp~)U~kwr$sjzIE*hnh51-0B271YJO=J6(VHb*~n>O;BW~u?B!9H!|J;%M*=<&!Z
      zniB}5or0;M74160I1$DZ0{U^%8amJwMrUoiN?1oXdIZ87rYFS_I5iyg*%S?XBS|in
      zy^+$OqgMi-7U-?s__#fqYlFa(I)VrZbYv{s%$B#;On2E>lc3!hCvOyUhHJ@nbu-{?
      zS|x$=O?7I>6a{b3OJ)5u3Pc(NJ1)9FFfSz)h&RP$jvDm!^``*qzR&_g4cHCNwPdg?
      z%5Je<7F8)FOJl9%6w98uBF*g-b<r$2Wj9YgW6gAH%CUBavI|6Y#1N;19~#BG3x>Cu
      zcD8pM+q6AuH`EmKc-m88j0g-iD@7@BEtG}?k}|>13ycppW!0DwU!+<?L~~(`3G~z=
      z&&=Q0&6_)(<=8Au+t^k$psdHshPHK8bXwiL6vk!dSGkrwt5~hTW#_JGTlY=3jg>g5
      zBZYB+wvxGHxCZ+}!zH{d>9Zp*G|}Y$6&=mVGuL#yf>&jAIc3{ZL8xl$aCAmmuj{xW
      zo1@J(cYWgt+!SaT9n~;{*)U!c=zR22Ix?8!17W^jHi`smXqWl5Ei><>qIYCN&B|dx
      zvVNUiP-R_Hv^irPOFEXZBJp>vk}Ls|RcN<$yde$kR_VIsG74V}8Q_kNH}MvUvKZ5b
      z?bsGOQRb3cwN|eM<(6BmSLu;edFv>tH=v#Yfiph2X6aF#T6SHQryoP}WaiRRUI8(~
      zzr`0Q@4F~W0c}aOh<~74e(DeKsFas)I`7H1UGUErhGQ$|eC9Z|arH6x<nBN$o*0P)
      zBEbr@*b(&ANbnFRD>(HV`hKRp1rd%X71k8maTRB94gK7k^3QWUz!i~j7Eh^o19%#P
      zJSq3iVMv`Fz<E4_fZBVOvmia6!-XoFk7$u>Be8e|!*hwh5EKVTNUX*Z6^tI-76%GW
      z!)acO@2dLx)cO^T8IH5iSV%guv@W2JNtZMSec(FH2wuQA!-mj_7df`@$Jc`61ib^a
      zT$BQdWzNIgd3c0NtMOm(QUzD$V!xs<n>fVPi9qW_@Fz@ho}LVKPe($BxV4YY5$SP=
      z?7n{ieRU)fs$f1la)`x!X#C{9m!=0n(Hray1PVX?`)6<92aGGAAb}|VV}O_<A4nk(
      zYW0Bpd=;|j;e3;~x6p+x-oD6m*c9ExWt1?9G8^+AmT(^{v>7abb$rU%1AKx#e1^~Q
      z6~4f?_!8gYYo**Gi-q^EEB6p@E9G>2gLm*QBX{w{d(^O%@%D(hM$P(h6M4>pj6H?|
      QPlOmHu4XdnrsBN*AN^Dj-T(jq
      
      literal 0
      HcmV?d00001
      
      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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
      b6$vF2*)-__zccwt-r<t$VI@_iNFDWGzr?EB
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZC4vb6n-WImc$iGY71zKlvYgw?b_CtmLOGAuwW>bmterRC7C4K6E>X9Ms0tA
      zKfxd2hk6bT=h$<!pZ!rDpPAi+L_+<tGjr$O=e|65?*9GHAAbV4iN^*a0y7o2X+5@o
      zv@KWqR;_NAq-U+#-u6arLpJJ7uP6;f1upf|YikG$O4s+E2u$QOR?~NCMAb-3>Lw!)
      zb?pNwkO(wtwp+0_ea~?#yc=3@T*qG&SWo8qISK;G>F6@20nT!o%F}JOUXpPP;B^x*
      zj4<Q=E|_qLpUTG|aL&XahSV-$!oaY=XwGrv!{))h^tSB%n$D$Ov}<|WbJRH$M*XVO
      z5V-b=MA~&znFl3jSg+6z0}~jjNPopWZ2GL6v=0Qvlc^wir*3s!5IDZ{b5S1pPTg%7
      zxGZp96Qk7DJ2xu3w@r*=nrmPGCsi>pBQX7c<iv0V*G#;FcLfYKK-p1s8b3|YGA}Z5
      zB#}0d61Z@xZIptENz4jZ$u9e+&Y`vI90px=R`M~{DJR{EUlkZgrdHyxaMQs10vAs?
      z(nuz5;Wk62-KO)DA=7G=l=GaGp6`^MqU}r4dNrBa3!-VrV$*Z{CsvUPR+pAe>thpl
      za93cM2-<_dT$o08>xT*G_tKM@ia2B91ANFHAqI(HPqx`sZ<UgafqMd`PAL>A0zNbG
      zIkIeleY+upr^D6>qHbHpu!JuREDK!j$7zRm6A!S$_g%D$RhDJ;tS$)}@`3G^YSPOp
      z<&1LirHLHYSlF^%^y_Lu%=E<3W40XVWQMU$0@yuqJi?}d4T01dLH5{dw<fl*O>@>v
      z;89reFzX)ewznXjKBV+BBDag!QIq6rfyG|*GY3;&pj6(#E}w=bPkUc+ed)P&ZOQZM
      zOuc|_l%H>PFXq+xdlNsv7Ko`~nYEh@64KLDTUD?AlNv>tu&*@kiPS(*V5-wDYj&+%
      z_YP!<Y<FgYfFSJj2}^yoIA9_U^(MQj*Au^*K%4sap&l~FPtb?$$#+8q!JiP5<IgC9
      zgc`QoCDf?pI>?(C;{3kGQ;8Z;uIJLT$1u~^pJOyV_Z(xtQx?H_eiQos4(;yJY96D=
      z;0?;tfgLX3B2Pr%u$v&N+9^*Fy;HsiD4oQcl)Ob*l&4GD_W~tKKaoDd)Jt4B!d31@
      zTX^porGfV$t#MC#Gz0C>BMHKFN>moNL!?+>f8&?m{sVBo3n113;0Oo-RzrY^o>0bG
      z_~<397UoX^8qsCV5pRtNs}%?Wo9N&!;FA#dSC&H2F#iIJg%0+o+>NQz5$*@eYT{uF
      zUmYX=EcXJ1!ZG&N=4M;?ZfEW<opcf@?1v?pA}0706WHe8V2d|9B%{DFyUW42rz4sU
      YyoM2_Nl6KkNViB#85NyvRoBS*7xLgNu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>YuW6g>|H5Q;4YDOT%OwF+Z&;#MjPjT(}PCRACPOzF#X%rMgogK_WQaiNLC
      z#Dzb=A7woE0WCI@Zr<E?=e%>y{rL0u*KYt%V3&|n*!82S^U?d{Igw7CF!qjg;tcdS
      zPW3=f;%PF{C0GhO*|<4EAwNw*g?0Co>HWa%DikMaqP?*~bN(lYoqlvOO%F_30HKcj
      z^jJaldD#!5Anhr9XuH{RVvEeKvDuw-hF;`5Bn%>dk&#M7KU1^c87f#W;v-!_9vfAx
      zp~g03E1qd}hGi(!t0<r-(UmGnxFpe56=hTuHryc6Z>HlzoxJl7Lrt_BkGyc`C4t-*
      zNh>`LCJOg1sBqbM(;ri+!rle=GncF^^2SEmOk%Y+9FMQlmG&#N+MUcEDO6s59_f=b
      zh@(jfcNH3jPR954^p8TBgzjR1`F2M}$PDc$)RxrCVUY8{tkbJNdeiuS#~uqmmy(;r
      z<;<fleP&dbF7sQH9`kDvv4$$o%e;L-&Y)WM!=G5UAI-37Z(B1o>}Fwx=66DJXz|=4
      z9q^QAmo)pNd&XQ3SDEe2DX@)eyn*=Z*r9+#H*k{-5{VtL)-r}H6N#k)k+*Q0s5{Jw
      zy<KC?VI&*{`v)4|7|e|nP4c-BmMREX2y-Q{$Bfjq`ndV^+~e1okMH9_#^cTN%5LW4
      Iwvp)k1J^#=CjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZF3V<7(F*^vXCro=?f(Yq98PB8)6ZwHnbFCV=CzjEe$d{)$R70#@Xy<HXC1l
      zil6)obw<OC%rNl95B?~|b9a-FEn##r*}Z%3eV*r>^Su1?>aXVj7Esj@6S!7$+W8;M
      zAI-cY{k-j(htkXM$cF37y`4%W_|~BbTpo6@e?{PQ({p{-a&3X}O5o5oomzg^_v%iq
      zAdt9Ick2F%z)zX*SjD4#(KcJHFixTJmKby*%|_XD4sGcbP3uS&B0eJLCDZa<@0aL}
      zLbfWP72QLb#3`f<=s2CkS&Zr!5it4!5Ric}oD)dZq`%##G?~f1N$Ly)CJe-p5E!l0
      z9l6<V97ykxd0<PWf@_&})%5D>ySu6RNA;G#^`T5p$WGBxmQp9oia<I-dQdolxTRzf
      zm>cSuv?3aX8Vcy&hhhm_jrfjS?g=Vzs_ikoBay2LC8gStEw}AiL~yH{-@)`}hob7)
      z6qJzH419nqgmhrGROzX`8wM`o9kt3BxP;3|%wk^0oIv(}SBilgZW1~%3OtO~-cXuv
      z=DC~tZox*33aW@cROPfFuoCs&t-wJYBFaS_Wvj~7M+R==V`}U+rBierM_PW}bp$T<
      z3b5BU{WC)N1fS{nRN(wz9ly3Vumq-Qj1q9umyTbNPR&1}Dw*uMGG8{Zg1ZdME9*|P
      z?T6R|rh8%QZhqjPpyM7f^~05Yzo~k;4=RaO6b*c?;*N&p(R7`bR2`_J#CjW+z_0;&
      zWs$@h%1YXGf&I)|Dkw6j{!8)h`3WxTS&qU7Y~_HCI^0_O*^<prc+D{ztm>rI=O%C=
      zlE>GqNj713r4>Y-Xa$2yU@9~?5tu{MldV7(2G|Yyr&L$7WAel(xT&CVW;0`)-JC6I
      z=x`O|nv;yrGyH0BH_rFO?A&}Vtvy9@Hm!AF{E6}3gUgeAjsz}NXmFQqRx!oB+o2iG
      zW13%dfD1^|samlC8Ah$xfPw7<-o+JYJbw@GhoMD^Fm&EBpW*D2**|b~j*sj7&+tFq
      zLG~%~8}l99+RSyZxTx`YXDOb0iPc{*oqK`R4(=}|rV?X^cKkQQ#c?|RH^!e~?FqT0
      z<5MK_#j!YkERF*(CG6u%l<{@&jzJMyA~kUL5*`rN7G|)`*54($Dhk-cG9IIZuL7$L
      ze8b;9f8XI-90VeiLjrvfOjM|`puhV8;TXLxV*{HMVTL`kMgJNjEZ`w_DBv<ujJ6%v
      KJR*`9_WlLv;_$2h
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}YfsZq7=F&!s2d$u1w>#DyzGM1yC0@}F@l&z5~fQGpSp4!C8H%>XY^lTf|6+B
      zR}+7f@j0iRn*<?C+jIIpm-l_oyZ-w9?FWE+cw!(WFyHdK*1q$>v3wa>?ZDZUp|veL
      zK{s@zfwaK5j<y}YWo<S0r5gzh$2ft4eHQ)gwry*n8lg`;-;34+mP!|3%MF3_^I%uz
      zFoY2k226pWQn`_Zz^I7~h6ToK&zG;e2Td8iahh!@Flh&_({4DSr}oLqbhPJn1QyS<
      z>{Z9?@+}!D%epR?-6)l9U2aFZ-O!6ZS^a1&$2_J@%wU#zD54A_@4e?bk)+phsl0QF
      z>k?oMplVsnVcx(sfrWGXW?})0?7SZ+c0UDyxl<PXSk1t7f!Y6MudJ6$EaQfN(R4bJ
      zhs3tVa_Z>0XN3jaQk}moaKH3#?84&I`DIkeY)0`yv_O_EjK_p{_Wj(Bs7WGTCq3Rf
      zq+Z&Imh@ZEo*tP^Rz~!uf7p%cQ7D}Qfteo53#@?vg>x@Hy7Dmc0>5M6p}>^xp@MDw
      zjSv;j$hxP7F5jD>RfSC#IT=IzQ}M{um~v%sZQv5`S?<=6;t$AGPIy(nApe=W6vlWT
      z)yx{wct-3R6@cj&jR{P0N1j#{RGY%(MAIQdX%;JAamB9w#7N~B`D0u?`i{c8cwMZX
      z;N}rQvDG9gDwzy6X!VlvuLkUjiCqTsD4|RnHVw0h-HP5*N%ZxG`3|US4O6dEiN*vf
      us3uG+VP;fLr^!15<V;NFCuaqBpgujTu=MjTKUbVcnx*-C!0VAN>hT}j)fE>2
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&#-A)rh7(G+A6v_$}5hw}>f^4^iRaE?`A<-tpi;4ym{}Oe&9m<ljO?I~s9>By~
      z?|leOY)CZm0emRqH?!Nq3dDHjO~0A>{?2#i%=YK6Z$AKB!`&1T4C6JoX>IdeZn+|`
      z>J45Mp7m_4Tvn?TG=_|F*STA>9#^)79WeCSb?*CNG()!BDL|Pe=?c?}45<qD1)VbV
      z$D*WbliNYV+h>@Lxz+<u@STU;t=5IN62?$?(&qM-V91wGfgH;#$zaOLxQ&wVf>NU@
      z)*DUFrUGMOH(%II&k6ReLm$O=-*a3iSZ3HWVxW#r^$!4IHDUnUgT*3>xeW$Q0!oA7
      zoQ?quF}(jTP>ur|C_AoLZSGWr_mo%aMCD+)Ve|S1_Z+#84z*y*@fjvhqbbrx8eJHZ
      z6JB8GGIATeH1W8OB)a8lQb!6say6x+7iqb=tfLQl3bPEON^vJ#VHz`-lT{6d#W-)p
      z*WpN=ESrR3Np(1zj?Du>?8`Q$jx*>dkvDdQ=Q-6-zUi6>9<;TbF>-Nw7<$OBM8Yr|
      z^;J)XF5Pi!#VB4KsW8%7uPvX-D&J8|9=@_Dg%D89HQ`6PZI2T#d(vZQ=THw>;t_Y9
      zP2tnK9c$xm22P!xy=S$36sor;c*27%hLKq8eb3|jWycRFFde?66-P>-zw@zJkP~QA
      z#9$YFV3NqlyQEb{-lVd0kIK?5DoZqzO;N@GMKPSEU4?RzWOXxNn9pii?Er&cXrI7&
      z`c0Dso|6t<V3<}n!dQ%8ly;P*dNQ?=U1YS<kHVxh1x@uEiu!$uP#Wd|vSz-8i)L19
      zVZxkm;gVTsVcPtTnU~olJHV9|a)($Z2s!YI>b)U_zNH!7VF(;qnqdyM!ndp#Fgo~*
      z4n9L_S>ZFJz7;-0F{M#e19{>sNsJUQA0f5K%E^-ES4@1SMMz1vI^0(6^e`Z5$FKmI
      zBxzkDE6GT(KQs4K=5Xlk08QX3{YNnR{4e4<<uRiAW>l*{RsuO*>%$Qgi4KY--1=+g
      M#}hMe%PzR{8_+I!MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs7(I9ED2&RO;B=s}@#bEs_?Cqkqmm%%1O=V(gCFj?>sC@)QaTg=ke@M8
      zh?*EaN#c((KDRAo86%Q3&AqqJdCqxG&;9fF$1ebjxUC|>kZ;)?eT#qOx-C52a(Gj?
      z`kRf~rsoR2y~^#TCER6hw1o<VVbm|RxZTp%8(YHg7_<-E@ErG(U&Jt0^GiCOY3Zwc
      zxBY_eR2c^Do3`maV2I}Obp~bGX^J?a7}lU-P{jp?<SASn8WOT#ln}Y6`T7tTE^3Hj
      zfFV&cZL!wbZV2}^Z&-r9)Et9bb?%ySA08@R+uUU+*3LaAsg3exlVL6wj3SNcbz~)&
      zxtgy_krNswag}f_L59qSxGtBf`Jh$zkpy1XFog^OcRB>D^Z}m6^=ZYRhChK}`v0OC
      zUY%pKE@ldYX}6At=;udO#T-NWBuKq}4dVv#Dsl{&GiyRmH55=}NEsABPxLlo(7Rna
      zhcbr29oO+3!?9#We0u*sgjj}{A@fZpwu87cOrC8b#UsAybX-HMm@;(}y$bz%upnuW
      zrMyPzvN1$tXlWItH3gpDL$q6lLMtFyI6%Dc6WY7M1B`q_@(UeCFh=hYzd?lx?_m^6
      z7^gEW0O1l+w9Dc$u7nNW6HP>(6@O!@@D<78KGH`R_m{{0_i^oQFTq13@CX?^_6br!
      zlaN4CWHC(?S&I2gNcEY7#fYj>JVK1^9g`hGqi3yLBH}~LE-7h+_=~0Qn2%sdDVNfU
      z<WDPmgbhZVCO?2DG~z0G^o&@a)2*ms7V9YECGKLwS9K@gJ5f~$Rgngis4_xdX0Sj#
      QqJ&RF$4%egMW5-`KT`xS5dZ)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOLNm!7(F*}BFCs9F#%Ent;-{E93U;FEhRh?NE;dwzz`Z<t!xXU#F308hezpy
      zKInr@H+0iYH{Entv@^x&G&Ak4i~gui&y{3ZaqMIm&q&tQ{mys3^PNxk-~ayn3&3l5
      zte{0;cit=y&uNR=u&F!41uLr+h9~7Ut(O+{QrgPS>yCnmz~*3A_?1BW!o7)wVu4VT
      zO|e`Qxod>`vjxl6a{}TDAC4HN;T#iaO%Bco#7^JM>P5$}Ok2SV0-M~NhBZ7f9lQ~U
      zj9EE7hE{Z`=s-+CTwv$=xnt-?R|i;$iZ-+hY@9SqeX6{W(MuP#OhFfjyQR-)B||>@
      zixKCRVGHy(FE1n&3+ziy)}(SPKbgywblV;ooQW}gm%Qvy@e;PNmW*Liiw=1^XBnm=
      z(Az9r#_g1Gy9Bm3O)?>~bYqW-e#8W#Icuz>YYqkL#twNIRFT3EwJ#X9qnqTAWQ>54
      z(X#UeE6>hM2z2IkXM&#axsz6MutqHOh83&a>neB7DzO0ek^q~li=Kx9oNZy874JqQ
      zyEjz4iMQCCYIqPh$iTI`T-BMiX<2C`I%sva5e4M@(%Mil9L7;;FM2bQydpI{j1wwO
      zVl-5*XZ-$kiMiI7)typt2&V-GlIxV>Mhwn$FzY)i-bIuhai??4GEF_}xC2C2Cf31W
      zrETuO$?RuUyoZ?lH?88FbVqyHEEwjzoQex76q!ab>`|*MP02oTM5Bg1=1;6@>rUFb
      zXe{VfnIDDsS%>TNf@bE2FPV0^Sfl~;+;mYdX>y8#p^bt_d)xvNwmTDcB4;H`%SrfA
      z3CDxAW4MfKQu*ujkneIgLE0%9W}ZVtj{at^6#*r>h72$0Wn1^H5Jg5HwPxOu+@8?9
      z5vBJTAiWnxp$LxUr5EU_Ix0*`!7YKUH8H%+qh+Iz(@QbTp`c)%z_lG?1<kfqEZ`=~
      zVZJGCfg@_+wt^zR5w(pTl!_AAZe>v`l=W%G^oOOH&dkvhBmRJfiN%n|wI~(^HYBcA
      zt2`=K@2a?m`*Ku@MP0UgUl_3}wm0%2M877^Y90?H#K(1!O}SJfqxe*yC2?IMJXE1e
      z1$x}RWp!gwA1&X!$%DtZuSfBvKyuCIW!%jPo4Yxu-mS;&ULBS|w=^#ct>JTxTkF?i
      zX{%hy>f?qy5VlO#pN0EnXLx*aJa~+@@W->n{m1Fyy@zjjC~<uQpCWux(aC?K+%I_V
      zN-beyY8l<LOW5=bJ->0S1zULSbP<m-<~TOu1h#Tb^<vPA7x^TSx2-}R=SmCT#)#aP
      z8meG>J?1H5o@VU0i@C+y?PD?yFC#&0eiIv@A15n`uB3)qD|n>_ElUK>viPYGtP;Q~
      zA=q8qyHbt}SEPWwso&94!ESjY^#OU`UO}>!Cr<Lf1%8~;l;t9GU2^j!y!aqrub+>Y
      z*o%F{7ub(sUZwnd-2y4K_?1td;O$%kW?eK-=oTMM;8nN9D<WH-)<xcE7<mA%`#BHz
      zIip^U2kSFuL-Eld^C7&wO0BDY6Z)2Mcs8<xBa^;f$14~ciaf*kPz~G@>=yfN(2a9+
      z&b*t*>wBM{r~`3K;EYR=hr+6qXIug4XOFy_u!5-+lbx?`PLa*IO_@vB1UpnzPf%2v
      zjq@6D$QPy47v&$cMV_|SOM54T(ixy!3Q%NQW%JsIa=t$JK`6K_2%f=^PvMxaW^5Uk
      zXXBj1tAE#Z_F+h{n2#U_<pzBv6Mqo6;~=plk>*&BLTsv70w3a7LpE9iHjkUI$?}6E
      z+2jIQR<db?^?gG&{094MX8n2wmXV*0iwcZCU@pOlmn*pAx2%GX;-B!bg3oHM^S)kB
      z=(r!S3r|9627(rR-lPRzG${JVCPjbcx8PBe7Bs^8Da5AMg0G*0&Clzw`Q|y;{L+xk
      Jx2^@h`yXVdrMCb8
      
      literal 0
      HcmV?d00001
      
      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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
      PXF$0+=ik*m{;U51nzE|S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n^g5*3lK12yDLL6oI_}6%^lwL?N1(Od#2^2!;>ccHN4#on1@(E&c{R
      zXrjYN;>#x!f0XguwvLT`u}!*r?>Xl=&-2`~-+#V-1F(#B2_c5rhUuyY+M%YJ+))jy
      zrWtBcd`njCHFqA@>o#w<C4?EKx@mnehHy)BnhfJbFTv2vhFWrL-E0&XqHDUTJL?RS
      znZa<jLdBa_oy!<PT!93IVJMTWNEl_9K84$I4P(dBO^4f0-qm=^(JfQP2;#$FIHw?j
      zD8pD$H~E(PrpoQIRyDX_B$QM%TNnG_Fzht-Hp6`Jzm$^%sllBcPvJx+J1BxQ^0%&L
      z5N4mo?dk!qIfd+=OdKyMm_ky<6<n1t&5$_N=3Av8g$oSK>i01KVTd)gc2ij88T3pb
      z%__K#845X;k0Bw$kUWdL;p#@6+cI)kkdW`|?ZYdW^SLc4P;rwKA8Llnw_h>L_1@Y)
      zMS~v5n8%8^zgP^niDCL>S{&U`a2NN;Ag$HnW}RWN7cQ8QK}!S1g%}<%gwp#0YJov6
      zS*~5<Pjzv%$-yCA63S_?sXq-k`6$MMRuNhgGx`qGZVw@PfvMav<oqwhPcX83jIr;z
      z{AVOSQY1u`6sJ014PmTP?IR?xfk|xQychEjFhM8c5xG&qr~e3&K_AuIQ}^5_BtB4*
      z4=d7uZ4XBA){y{)i3tdb%K^z${wLUbM23!X9bC-+0HdD{E+2LAMm@1*5?CR5FM8;u
      zy7W>=<C;f@<|XK`;_ZQ$px42TQ$(NPeh<S~mm$qbQ2(6z3MDfqnBOHUvtO`yjOFoL
      b9jyA0tK;`+-9h23_-YUIOc#31ll1T}xTx$D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O>Yxd6g_Wd9DgtnCm}8=p-pKDj-AFpKKKX$3DinftagzqQeic59_f_vj5Qu3
      zR{bH}^bcfHsRXI5=(>d+8#XN1lm)H2VAT!nxzAJEN-B|s{qDQ(-gECc_s(x`etZPr
      zJg#S9DJ<@U-P+gQJ+Bt(q!vU?FQ_%-e<Nz%)k(e84ra~09=5y5MiOhUm4%})VUql)
      zHuRw2_)JikZM+?JRbeFg%J0mcqjA*_{p6a$digM!hl!cnWH&dXZJmdL>mrMh0&E;}
      zk;ABhU7p*NmoXO^j3|sY{7`?^ZEflJ3vVmX3gd?MrWgBiPo0i*tgw8D4i3mh!g&hq
      z2R(dtP**5?a=)qDi64cXEZ!ZK_4EEq0n>Odi&F}x-!7|*65dfb+VbMN8{Kw0iW9wU
      z_}-!*;^k4Ui#&M_bGzZU{6s;qmrSfXI?3Uz!U+kinfpu_B{QA>kP4W>oM>24m@GHU
      z5(HkjQ{!s*;m)eyW|~3N(bDzDE~=uoBb5r2`<#mfoM%Y+_6?zLZ*}h|ShsJ`jCCR*
      zD-v>1A<K|@eXcGzD}0XbFwzcmNYOT;Zrs$L`ZA~E`_^?qdg93IVW{Jqf!FD1POP|p
      zi7~@kHopW5<FW!ku_#MIPoBRV|5=FEIwK@*v{HS5BbA3ZTA6=<;`ek(Dsap^KOxAk
      zOnQt7`bvCb3XWrvr&v<LA|$87^8|ekZ&Rkk1zL)pT;&H8_i%ETb`N{R_@5d~w-=LQ
      zD!gwfNQ?7nzGd&vd^VJ6^)o-fX=X^~vZ(~90i9mS=R-88aY{qsL(H0DACc028cP&H
      zXcT_J)R*ID9-{n<fftc_s4s@vDfHXniX6aNNhzh0%n$l2Fc$covwAs%mg}P}{Exsp
      z%#j&RIX~wbmFga9Ytz<uI8wD2$MDZLyVgLr5+?<`;&lF?LVvQgzX<r+l$z;*q@^5+
      zasi7*$x$p(7@05E`v93WqDj;FO4Y7D+QagoTu+z3ht$sZ)y}8z0($WPXhKkFwIoYZ
      zoj$dPODoQ#^DQ#g?xZuQFwQvO4P1_9Oj(#v8B=Ykm));cN~_88UN&UJx<bo_ODTk)
      U&{!p!g{xTODc`H&_jwKY7vi)M9smFU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNr+6g_wC)~%~BV1ml4FlFl|1tomZm<Z8i0ptT@#_(yIMXIGGTc`dFe~O9B
      z#29{nKgxKX4%xy?;6wY|=iYPAz4!F?_n)8V0M_u>KtizoKIk|f>YwUP;6{!gHtW8#
      zqu%>r^P?M8Pfq<peBbLtr=4g&YPt0j1G*p|XL+GB7!l|mQv`*b>xrKVQqi&3F09gc
      z<^^8#T(DidN#;#3r5d~03g5XI2rLT*QYJKvSV&`3pcP9s6&bUTL`pEa;|1>P&Pl^<
      z9n>4XD;SRluhm<gx?ebT)v;jX1|19w$BC0oKWvlSeEFs6o<?36v<=)9O#G9xx_22d
      zF^yRRGlIqI)wD3F#!4Rfo%S)$&n+)v9lcmB)lAO0Xki{p3=|JHl{C`eQ>6}#&XFK-
      zxT!!T1+oPOLDe{M8YN=FBVsh)4cPd8*l9K0SDun6e`Qxz)D%>^8U$`@%dfZFF2x!f
      z+8`{jn8rO!U|h)$<Z|i*(W9O;)R!@7Z4;qzqjvcWS^EcW*_AWozR{&pfe{s!DI_J2
      zj7(yJzDdTIf;?{XRF*1{ASET@IYpn&+nu<?1}&i{ZGT6ui+g=;Q}M_g44IF4tsd@z
      zS1|V<wlbL%oAhZ?${|Yw6cjFQO{n(5P(yDyQarQ%E4^FMroSH8l`ii03CGzzWSM_q
      zku#StB6du^&`TSbyMPBQt|N<wSdJCo4h$81L4;B)W0$q^c^Acgsh$KYNQ*NdZRWB>
      zCMH$_a&Lx+-;kKC^21Tu^2}@(<*U?BV9I(-ZTFy;)V-dSmRVFdhw3nkN3=BBE4(G(
      OV3nuZT;ad62K)uCkkt_Y
      
      literal 0
      HcmV?d00001
      
      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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
      Wl%o6;pK)yGEYFBP=iK7>1@J$nm=J9M
      
      literal 0
      HcmV?d00001
      
      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
      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
      R^0uG0M|n@sUgqY<{{Rg?n6m%?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~iZh6n@^Y5H?+7L84$m3{{gX=!&7(7NsRvFbsMjieEP_$pWj%Zf4oE!%gp)
      z=?~~lXL?g_yuk}+WMI7L59p85KIct{DOa7Hyr1Ws=i|Kj=i`UJ0ZgNuL_)#d3YyMK
      z_h;7$yx3_(VH{S%no|iQ&spS94jRpPEsi|5o`j)rM#uW0({-WH(}*L5fmJECRe9+=
      zaDTbu#_pWlggXkVtYFmL=#@fmC2R(<!l`Dk<8FG(UR>IZJznQm3XB@4gpJ*D5QlQQ
      z5Jm2;LNfonR4&VH-z`7z<9UYVJ6OVUuCUGui(%DEp$BIyoW>Bb^M!R2XEB__IR)#O
      zoFrK2MV|?UVF~!k!YKM#zUBp6@wS{_u#l3Y)2n{q-EY=6yy&63Q6tg8)v)5$*4@aL
      zef!Xew|(lI(yacUoixV~n-$Xk)uLdsAAYR`M-gQql(&!+LPowUsuU(Im~xP2Z>kI1
      z99I3hFV2e5Yt2R@jAE~<ZFt5!2}?0=+QJvGQYhk^Bxabe>DJs}%em*q+ZJYVlSy?y
      zV6*b#yJUT5;S|#B<c31xd5Hnx<|aovrqCZW>(Vbe&>ML>9!VHGul$CvT`8;x)}qwC
      zBNbP8!a7V-oKtIIGpcw?zF0eS;>BGPYRD44hfmhv$FAuWt<W<a&@+3*Ii(V!4d6_+
      zJYfUzCC34-A0fdH$k>M%v?t#qbAS<<&mUmy9WN3X=Qv0h;A@VTS?UUgki$iuoNXnO
      z&IETX!<b7fon_pWHpC2L6z@{@dyMgytL}5xs@tb;CUq^V71gelWg`pi3JZ)DlBO-`
      z2e3aAOX-VgD!tJ~$m|d@F~vLDimSNRE;pt3q+pyRGTTKY(IMh=q&%e8B4t8&h@96L
      zw(Y0fJTqP#Ah&mj>jU`o>we;M<+Se89D8t!)o*tpOmrcn+uZ)p{RE1~2!EkBu`f_^
      zP#rtMjakE<9L*Sq`1Y}e&S>aNmzeYVL6iu&$d>=a|M3$0v5f1utKnxTgAg5)iufLL
      zT3C@J`?aM-Qtc=8QJlj(R|cbhVBcHM<|bpr2;C8z%1?IW9#igjX+7>p7C&O4U8GK$
      zLPR^M<?W4|zyFD(`3A=L5lSVkZ!hcqMuhBJhPGZ!%hGj>;4yVQ(J&Xa&AE=I9Ca@d
      RXoOFGo~s_Nmvx1^{{oSp@Y?_Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix!A`<J5QhIPg-S(HP!#l{(F8QH@r-&Q8ciBaL`giBve7kVmn^OEvGhcui4WjI
      z8K<QI@t~KPot=OFd^`L3_4Wba5StbZhV6S9Igj3x=SUtp1Fb^ktHAM<=FYh%djZ!L
      zOor-2b9?Q!L(RQ@+GfZd2`R!8hD^QDVK7^&$8BVgFCdE?L(vtIUq<~d*Ee1_;0z^K
      z`CicRw215U(hMKOkYUIDAF0W(s0LiNl$6{Lg^~>Qy8Dx{*_bJ(N}9D#pM5@v$A%V4
      z4CQ1{DCgp8(y_3@u=@wf)X_#6mH4e|49mYMXd#(M2LwFB6H~NRq<wxS;*Av2Z63rZ
      z*aA(_F98OfXo(apsvOFUa&~Wox!0s^Q;gd{1@jaOV*%v_s!S}RNG40kneY;uV=_1B
      iCjXA|-TnxxFH{(qTGbM(%2<?IksRx&CIq!azwr(1goH-`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g|U7cUcywi=rTw1%XmT7Vs+q@ue1G(u&EJMtmE#W4mO#+w4va{aJ<w
      zj3oX5f0XggwulLm;6BXVIdks0A9LsDukSwqY~q!M0fvo6*l|wy7w&{YI_)@;krxHd
      zXFm{5F$zQBNk0k~UCE{Iz2%Z?7-Gn#9sv&<&cX2saTts`mtrr9Tbwqt<&+@BsdQYw
      z)eZ!?_D^>h#sWVSu4wa^%P3~Bdh}G!m9ZZ-h@|g&MDyhvhQXCWjbW%5)rE#JhMAky
      zbxbhKl}e>GyI!{|m5SY^&u%uiTdnORvGe<tYF@*g%Njb;51ex3@j&R9WEd!gI_{A@
      zOmy6*pogJ<Y9Nbg6Ek?oklF1g^?K!c*0(_lH3KFdDY+a&{zjF*GTSNCM!;a37)D0N
      z0>ilK;Cgb|LIaCf*098oQ}^iwJW1MIHXXN{NYVNbM{N;HUnC~-SYa4#2-yd_49ow>
      zp>VwvmBOkC4LZX_nc~0iw2nnw<;Q_gcc_|J<FT*yDQI92>#9zJ`Y4-z!mw5T-+7}+
      zFx;pUdt#4fk|JMC<+>UJ2J;<_X<Sq_i$uc<hNW8tQNn-58a7ooNDpHGy6Q6h>8jK|
      zG6I9nM``yd#ejtim`B$51+qt$W!<%=&hg+JvuBvI=D*?b846!h-zT)@NC`M3)fy(r
      zPN9lv91;Ez^Ekj-%2ctbSN%8+Sw{Hq>N%cXNo7*7=VJB<aIldIY^LiLo{?2D4A1cr
      F#&1Yd`O^RZ
      
      literal 0
      HcmV?d00001
      
      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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
      L{CN&|v*7<P!H}5K
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fvg|6kVrHn;Iiv02Nd&6)<UQBNs&t-~*#WXM#9fIs<QMIW1vAQq$D&C;S1w
      z0$*T8XMFU*k8<264N&QfKAhV=`|P!{*3Pfr-+lm?$7>lWhJ4fSn8(gX$Mkt*w!$C^
      z>VaoAT#uU@j(_O!P=>@XcA2xcZSO=OcTSRPhU|*#yU`j$S~sc;(t2>n6{K-PMFv@h
      zLEH8DyUt0Chr3SA;|!V|)E%$tgswOzK`A<N+YB@I|0!7v13`=X>w)j{dgKN^gRa}X
      z94+Io<5ecTRo;B6^OktlmZ32W#}D1WtZZH0C>X&V8KVqpZ&?+0agRZ6@@OMyM+_r+
      z0^~V<(<EhFziH(#&Hx1uFd^e1!%$qJCqu;~rbs#dq2qY;(W43ZIAyDLOdn+#2RY<P
      z)JD`2WM)*%Vy+AQJ_re#<gSPtU4?N$>Ma>3Vnr1t5z7+MZQfA8P*!2$DTUfRA`=-7
      zt|`_PtcRu5AF1?*`XfeFP*_kgfJKJ!3x!075pa(cGM+Ka{=@I9Tm?&577g`+;r2D+
      zqU+L~(4(&Cl1Y%rYUwC;N$V#`ZLkw`!a5g{k;_RtmxWcBCcV=1n*b@=Q5VxJ(`k`b
      zau%7wIdWg)YlUWo(f|t*R&kSdYB!12TXd30he661iuXi6F7=sa0kK>>!|-P5C-jmw
      zc82?3Fj**S(;`aa5sk+*3TJpi%lzqgEbSN1@%)sYrU)3Ah|Af;auXVMk;fk9Xf;qp
      e8T&DzsV-DPh(PfYuZUy@3q*S*{>s(3;@ThTR`+B8
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)5-*3}a7(Lf^5)#Zv2?0i1C}V7iT?jCsl>VTkw2-X>rj`ikG;kaT46YqH4ph_7
      z5E8H3fG6I7XI_v-r|p41V2}JWdz*Hy6SW!Lx<$&p-@W(yb<TJE`=7tP1#kqPr=SQJ
      zH~n_$wsqGk`A$@7hCvkAfmdoo%~IJ5>^l{|*^cI;(6N?M&;$zq?tgaSQjfQQI&*PW
      zKvV>_Ob31|vizuOd2L5!`6+=+-D%mO+l+#czDw4!K*A2%ek70_cYQaS6c{PYZCGz?
      zE^gfoN<Edwid6w^I;cAtsL1Nju_X<GZ8|bYN^850%}5GtopXKXLVKy^gbP;9bLcY{
      z*p^qdLRX%<ms)hoZ3zr-(98Q=jS*5kY6|S#Ac%y~PjP*L{67LA3=&^wu0oMCW@eUc
      zry02<GlhKuxmEBNS6?K&{W?Cz0fB53T7IkHgww%N({m!?6W20y_*6#$MJANl&-3rd
      z5fqA5`Dp4GmX8VB3tEoMcSuJ+1~NE|qbVHet-B@;9fQ~-osa4G5W6?y1Wu+fA~3k&
      z0A;5|8ForXT8>26tXx<u7b~)tNtyPvK#Dh&isV48wHxGYu`Ju6Le!wav+6k{QFxRN
      zg>?Ov+cms^Am@X2Xgjm6oNxa9K^>ADVu-b*EH&&x0!f}yJSo`3m2Gi_)K0upIouQc
      zQ&;r-fYu_TWqhAu4*!C!hVq6cm)vV!D#&x)#^k^RgHKX?qsU?sJ9snH3B*p8mcKqp
      zAJa;UtTUP%Vh{Jdywi9Zic7v@oWh%$@iRVphJ^BpMoxK-l(B+OX!mI^k*00LF9%mp
      z8t><`&Zp0Q#c_W6R~ew)V3#sdM!Y~i?wa;!cB+%g=zqm39Smi54NQ}q8Pal&9af0#
      z3-<RV_Td8d;}T4K#mUSQ;bnSOd3%MYtN5BE-M}|7<{h2RyO>RkV2r$QfXp<$4(S9@
      zOQdPTRL!?5m{@B_1_AY+r0G>6)0o1UZqn21lK#P@a)vIk{vZ0xfx#7&PiT2<J%{=K
      zCNZzAHQizHHd*w@qE8l^WHBW6h%C0r;yskGjN|y08u^YK-^T*JCx;JE!$UOiC<c72
      z17H=f+XYNeWIh>l=He_ZmHAF_X31EC{Pfq+ai2a?z@|Yyq*mTwv}=ub_X(pvyJ>mg
      zft0rTH)-!?V&DhL`bXsO6J`4t2k-<2p7u!G>^7RC&}SJT=$EC4WTOJ-nL$D2FOw5D
      AvH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKseNz)x6vm&+Zn8;?@}i}HMyVAV5;SeKtrD~;Z*4R-6f&72ePOe1=;E@Q+1%99
      zKNx2G1pMj8(CKKW<M;vkp^VSn1V{(UKXC8fbI$WS&pDHS-~ICzz-PE;pidyX>9ulO
      z=I>_Cvt_Ok_|mt0H&>U9+??xMPs%OXXvtL>*ygqYU0~|}6Ba7Vz2O4UmBsn;%7TEH
      z6F58XdrfJ2vTC|5TWh!5dji^Gc}XKqfx)wm=g4~kx6`FlHS(p9*YR_`YWb<EfIja(
      zwiD3MpTrp?1^P>lXMf+?uGvAwthu(pP|3GUw`vBCx_3Y7@;9d`aQzhFV{YV0|5!Ez
      zuAGuZOH`cSk^;jga|=YC296|}o-V2;5{rLWc0)R}%fKap^9St~%ZD#<2wYC$3dRKn
      zWMF#Dx*g2>+YQ%NmBb?za5afxe3-yBOd6OFxNuOY*S91_@QHwtUY{$5^1@<%k<hhP
      zU7&BBql@rys+wTQNxs!Mur?B0p_>Lir+!%0HNDN;>P}PI+ezHQ7XooJ2+SSJZ|n$U
      z(w*kRsB&$~wq(9|!l#fx^XpXBT-&3x<@!x_q@@*rhI|sYafc?Y`mMmSmmD?I;bX(O
      zp_njEVzpg;>@k8UZ$@~F@gDEFC-@4rFpN0MQ;}IJ&&Xt_U*p`1Flm5)6D$SHFg1@s
      zp2j<27{Ynpn1BoTfJM}a)-zgAYLx%S_)X{SVkq#8XC*L^`3tG%&|esDVr$yKUS%z!
      zSJt8z_bU(i^3k+ryu!yv@{^<n3M@W{7#3M-iPGOv>N|=oP~<*`{h$YJ;t*{DX-pAd
      zjD2R1?V?Q|L;Hqks>ygJt7YH5!u2EhPWQ`{{vnhY?gSo6#Bqa#xglz$jun1Mla<Yd
      zgPv2-jW@9weN<PCkLr4A5bfQ8*q{5nL{dY!-Tg}T(x@Iy{f$qR8w^aHU`Lg9{79xp
      z=*K$U{|Q&|GdX_Y7XFH_u@SP~>S!Ob7P_qD!Iv~fwOqhgJn_eatF0_j^Ww7c?Z4C8
      z=vp)q4X0M9loVc8i;^z$8Z$?Zjd4?eI<+@RXmfm9+>|HW47bO@kuFu7%1T!`ILo{~
      G+<g!H#16s$
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U2_v<6n-|@ByC)v6v9W6mY{%Xf<*kFN=t!$K_s-bEyWfTw#l}vlV&r?Mmx^n
      z)KR!#ywOod98thQ9PN!GEi*EMz3}_aj|*q?g3<p0K4%ls46WGC?t9LA-gDmPob#N`
      z&$qw631BBCeQ+sAOy)|77xkC)M9#1i`GRFzX)BwUu=9y7YbswbibW%n%;ih=kX<nJ
      zDIZh?(f@Yp9v-MUt-#&W->X1LDp=8F<%+hRvq$u7$#4_HKAH#j9~BV_{9XNr2L^kF
      zhI+bXXGVdyH<?QH42rfud&VfH3ufN73iO-Orxke8Rw-w5WnA0fZo$a&vK(F8&75g>
      zC}@qQ?hCdp<s@%fi5l2#Eh7rlE-PdB;l@S{0j#Sh#E^ytctvW`u(~X5($H9zHfvZ5
      zuYy%6GiUUbrpArJus)t8uEvy=*0Upe!4$o+soJN^qJo|G!MAJ&+L&j?W}chw<H<Jg
      zoXcb>0?TH|{MgP6V?|ro9DmPr+Q{1`TjawI1#7BR>91NO??*K<=P?Bhc0tb-CyatX
      z%o<XBWz5e5PiS}&yBJWSALL_5x1ud0Vth)&(_-|bvsTfNcx@Wil&iN#LliB3?8Sbc
      zFk=zHBKb7L5Er*D4Xfbwp+`ZmO5TAAd8>eZIG|v?W6$cj$pjf}<|aE!W|pYxz_eE-
      zvsq(O&qf>q?T+}-i$l`x6zdi(7p}&YypR)p8u~FnlIi)pkz)<R(PYb#!<Bp5#A8sy
      z5QY`h*;W~Zg0<15E<D?fLo8*QHHseVY)MMhMkVbr1wQU1lhQ5scxi&&J=Q7a{nV`q
      z>h7$;b}J@<aXL<%x+`QY1uLZ;Lg>3KQPWh|rXj0TNE^MT&@{L#-*!j=5#dcTh<<E<
      z2VQDEYA)1KudmU?{y>ecQD0G`ucQ}S$2Vk_oRyR0tehifB_o`b)5KLC&L3}FPicxM
      z1V<<q-+mn%Vy-y^<rR*(=g=&#$d@#`@F3qo$GMm9Jp|Rk3->WpC-)EFA=)G5P}qX4
      z)EE@o@GvhDiDYCHMHt6*JNHy-j|d3mCQIPr>W^JR;ygUASqfp-MfhU#c${)jy^MOw
      zt&Sz~5w>x&c{OG}#)`7Ea1o8M(QAmP8A9gXZi&%8kB;_GB~Yu_!|F*%jsl<HB?QXJ
      zUPEWYzVdyoa(-)QHWpfqg;%8rp@zL&C1^EX8Dix8oxix-`~|a-jHHnAx0%ljpDlbA
      zWW7qjp*ifnisl>W9=(Cy(Z++<@r*dn<M2G5y^bT_EaDH%(yLtavre=W>Cs1G4Dd5K
      z$eItM2_v)|W!*>FiDNj3<2Z~La0DkX2AxtGr;tGr6PU&%UW17<$l@GwcoPM@OUnh=
      zxPlTs$IF;S9$(=V{DIT>ljv{J;~%_^+c=}t;jGi&b>%Kq`g;U(#30m_t{%O&tK^6(
      z=h?WpJAQK>&n+e;P9O{+jT4lq-6c&ulQ~`qI<_R}-z>5)xR0g#KdOXxsaM&yc|5<%
      z6Y#LBexXo6os9?7fak5@H&i8{HeI@Nt7#Eg2d4>mo8^9onBHT#-)Ff$V7WhJxi1j$
      zMH2Zk68MB4<}3XEeu{Q{hA!@>SV+mJql~bcQC}q^qGnsXPEq>UCNFc@#{ZL)R7PCu
      zl+(iq{Nyjm{4`Gs!Q!zB5$DiZk=iTk9#XY#Iy@sY%*hSkJGtL-YQN(T#P^)XA2_2w
      zvTr{*kjs-BuRvbIkBm-G{DtO>k5?e4mjN|KNYdkA70JC*vxuRQNdmv{6Zb32`WrUl
      X_Zk8OD|grN=Rf1zt-#=U7bgA%QQy<~
      
      literal 0
      HcmV?d00001
      
      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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
      I<=E`|2eDD$rT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8dO-sW-5Pe(IB*u?atLVjhdU5gWu__dl2rVAGZR0kiq`P4=5r3Npe}F$qoCFEM
      z%M9;h9y9a(^Z5nf2Im1r0#~_d<W{{aX*9{oS+bce<%TMGw|WlX2~0Y<R3?|{daE-M
      zIL<XKOx4hmoK`!5i)8lL*$OKM!mU7b|B>m63Tx^B`vTM6miCH3%z<e`gT%{0;!xqp
      zxYo3C%G4X}p6r_z@RG&sMIg-Vt|~P#vzN5QSgoz&eHp#-A@nyi?`_f2HZIc-MaeTE
      yUwqxJ=L0;$Ujlr7z!*N`fRV>NWG2GFKjsieEc0g&cYT7BuAjD;y;H6uoc#izo>`Ir
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+iuf95QhJ;-I%zBl!TU+k~W-;L0DXYR8#>0Bvh*)HS{8PuDdBlj@Pm`h}S}*
      zLU6$Y@KA{HCWKV9;bKQShyCW?+5P$J`wsvQamR*1@Q$)k@FDsb1({GmUPvWlnFa%u
      z2QPYWUuXG9?WsaULmL)hO;;u|c$K6|6f<dpd8l&2W;hqPMOacrl$8TfbmcHlg%Skn
      z6KYSAEK%EpN8W!B;U5t*?YHjk6RfU06b?+BcTvX$!m4*hZ5^z`#R6*8uIa+YIYJ{$
      zGO;@v9*CkB9i%L*8Ok_H_oE`I{7KMK?~{_?&zCtXj$kAiVfj=wgjOk3@1LPqUSD5o
      zkVZ#@g*cTZD>A(*=)C+Ci(Dl#D{XX`FdfO8X=V}Eanr^PLVNC$RF`iva!-zmSn$Jg
      zm)6O*e^BAA4v)&@uVe7y$+1N>H?~!@4u|uLyz6sC6<PA{e}(JcJ4VAdk8$xc#|*UC
      zHes=S%9Lk(>Ny(d;u1$X<8xTX3VTe@eMs*vV^w!v!<9*&ZT2fIHGlmC-O<q<J{xN4
      z%D8Gutzn&2^RL5Iv^lrI42!)@t^Tpj0FM6!jc>R{_^W$N?(tpUX|l_;Tsa{VZn0<J
      F_HSL%x4HlT
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+iuf95QhJW-I%zBl(Yoe5*p5_i?Fz>R8$THBp{-QM7_wJ>u!pX<F)KH;<b>d
      z5M1;D`cR13O<GzG;bKQShyCW?***I4{Sd$d+;vbPtnQ~}@FDyd2B}a%mP;ignFK?X
      z1<(3#w@a0ks;6=hjvUy8B~u#9;6<D$k)O^JtUZ+xR=QJ>8-zKPhiNes`Ia1IiBN(-
      z148v-oW^RCu-^F(qI<03bpMUj9fG|j_k;@z=RMSLfw0*5S8)xj#KR1#de`va;2fde
      zjZ^Wa9PNs{AMPeBt<jZHnCygkto=#QR`272ur^)j8F@S(St>&F?}7;Pg;4!JCS!L7
      z=3>Jn+$YRLi7Z%@)zLxs`KL%^Dwb*Cpv{EixxCyy$;{#gZaKI~Xia?=eg76Cd$P<U
      z!OzQG7JmBz_ch;c^SCVjLKR*-J+{!ZW2>VzxSXHm-GD1}WX`|$6`sF#fVyuT;NoYF
      zRWQ%C0h{e3rab0TPf*8GEO4YfK8H(avd09|hs^FWu9(h?Seo?NWM6Bk`pakNu8F?l
      zv#$-cIj%aPR<X>g`S0N>TAaJa44b_bqki3F0N4M5`ZruB{L(!pzvH|14B6vauAGnw
      Jx7n-U&QD&@yTAYd
      
      literal 0
      HcmV?d00001
      
      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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
      DcN7o_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3*-FDe6g|@|ZJM^WwRL~+LG1ztpDQkiMWrs-()TouainHSl8T?D-~vAQ0e+Nt
      zC)OeeS^~*Ecg{UI=g#}b>l=U#ENO@^tUB({ytZyF)8&CV@MIuu**7nPf!XYw?cdpa
      z5D4jNh%ppHo{;9@>G*&l>2ZG`U7s_owf<B)9}yc2iA~{(V2hzvnQ*4sWr*#`3$7!L
      zj0S^YWum_s$Rfv}J3Kh%zHd2Xbh=V)g<<-Z>zM7p6Ry+H5k=mBh5|#W^838nO@T%Y
      z#F1dgwS>!0hBrO#b*x^WL<=oxTm7!(357?^Sa2nLhJR9y*Ga2MlhN-@F;vOvL@{Yn
      zZ_A-)^QKU4@;|R{U4_Lm*^koQQwWuTstDB@lJrgyIwBmQZ?;x{hW>)7TKx&dhmcoN
      z{cw7l_&dm87iH>|za}t)Swf1Vlo>s9m>=nyAqL{LM-=ag6oHacG~ghVF~T}Nl3`c~
      GS&N^*8Kph|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%}(1u5dJoCNN`;ezzxv!zaSEeV)abb3l%L@+9HzX)XT=%8Y5#z_J*h8P^3mk
      zJ@5cLRMpwtv>@=I2YYAi?{8+We*d}z@EYq?lo&R`Wa1z5Q|>21`r|B>X^_VLcRBX=
      z`Ui(1AE!w!s<0Ru8W!^;^uG*`MIafhARP$?w$D&K5qZu->Xy3Kz@E&aB-|n7h)d2e
      z_a;gr`Ie#C-oFd$3<$VOk~SC?9N4Hcw2P3%+<G@k#OKM$P-J~RjCGbY;PHTGk?Ln3
      zEqN5>44d8mntjJc84pyLCPTU18O&3-RR<N!sp_GFDr%~F<X|2(+C(U%8bYIKGdA^~
      z{w~LDckX64oOgOdb}yY|f!K>w{Kkzt*j8Jmdm~x8zcO5vfGSt{>yzB+tPsM+J$gIT
      zeT1d)HLtbBE^z;xzLn6Rw@oMTp4cC-NYyig!xEOM18FIJrYq%8(z^ATZcM#J|6K2a
      zp4JpA-qsXr-m58E*B(vM01gOwNW1A_0ew>cs{K5}|L14sQGRA3mCjWgrCbb;@nq)g
      z)2UDu?<ZEys4(N0sNb}-V*oR0hNm=~S;tNC+K*f0Q6c$xA-Q#%92b&bXp5JB06_<j
      AW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95Iy52HE~Q6QW9FATuPvcTVZ$(7a>EXN){lR_JQ)^nk5*yyOF&{{1#H7
      z5)XU;ABC7TC8?lP?St)|nLRUeW{!XS{PrEdeXQEB2oFcH@IOQ!BVP*bk29rJtWy7-
      z9{cOVms_vGKuIZLohaE2Qk5riv?0fZ-qe|h_H0xLizPf!{(6#XksS#WX7&3d@7^P<
      zg{LnxVBCX5Ci)TKY40q+@J}m8ni%xA36(&-6*Um*E~=PyFoW|hY|IfBdjCZ=!bFPa
      z#on&ShS6>+2(3`XQMw&viLnoz6+@En_zayMGfQS|C6drSwjDw>=J9h2Gd)AddG;w5
      zW3!gr#v);U!u-V~Vpv{r(MG3+C0w_0jo_Vr4K8lrCRd6l3Lx}P<~SA0z`-rtw$UZ5
      zoLF)Sad8J7UVW-Ys?c0`Qx#b(SXIor{kIzL8o~s3gXNh8X_V)JchLG*qs)Sb#*(LI
      z)9jv47C$!5vA@QrfNc}6d#hjIcxwl6KbMyp{C3P`+Cr6vXtLcY!F60fi!BCW9v9ii
      z9hR|6?5nV~P^NyuCt^>-JHTacAI?6me#P=M{hX;xulYCHVJ*HXOSr!whb1hmZ~_ZG
      N^!e+Q376mjzW@$H_LKks
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95IvJiO&rsNh6Y+F*FY1u!tfkafvi@lWKl#*-(9l}i=5raUL$@BsZfar
      zK7fxx%$l~TP^j7m+dDIRX6DQs|N8yoCx91Nb5J2{j8qYPia*DJ5+;~r+UP{5!J(N1
      zTYGQczl%bxlt_%!su!j@muj?Am`P!FO(x>8gBoGE#7iA)$<&DKe4H?6KFYlJoUk5U
      zzSNL$FQt-ZgRt4Z3NSkD<$M>z!9JlD>JOp;LeoPXb1tg5?!m!4VX6OrSSylByeY;9
      zBHN1(QbAaVbP}igaVD*O;;dPkgjZMSb=EwYcvTmM(4E~8p`P#-xQlAvl5#h{Bw}K>
      zlRH=<bWZ7S@0>*}(>op((QRM__Z{3L_?O>>hX;7bm69_d5C#|1oN8w1;xV2$=n+;g
      zEIEaEc#1CXKh>jh67H@pvP7`9nDyenqI_lv6TEF!X%?n&o(o<>XNFXn22YKpPwlo9
      z0G}%SIJn0C2A@K<ZM^BPeS_<-AH(}vUTX2%wU=pxIvt|TcDDpKaRUo%F$f*pWFNO!
      z#%{5%#@6jJ^=m#6ds_Z6mi;5RN4WbPkEZG8ZDmUNZyK{8RawIO3ppuK!73-HppOB6
      K-7?_{eBckLr275<
      
      literal 0
      HcmV?d00001
      
      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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
      HdVzlf8C$hb
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%SyvQ6g|_ljjh#cwblB9;-)GZ#FbQC_(CCQ@dYl^IBF!$lyo9~lnY%I6#M``
      zO1u+8Um$Mo&As=WGl!F}@Appt>sT<6V5r=Q(0Xv597}LzH3O-nD}C!$HLW8@-1s~&
      zkz^=$AeU$MxeB=R7@rx^Tb}UL4uer$x?)J~$s3-9flLl5q#5$IC-_PD*x<p1)9^V%
      z!IrM$UpaxN=XjY^_g;%((f-#_jbZeTt9^d!gubfFKt*pK(^@vU*potVS9ww}RI7Hc
      z^V(A1*hP|L_Tbs&O-*Z=m}HoUh@P~LPdgVAC5Gj{4IW<9DW9%v7DY_!7|IOegH|Xj
      zBMf|U-DgT$IhSGJ@<UIDm5YO3(|%9^vFQJSD%1H=HEFV_GwP}3Hiq8lBY`YceFio#
      zOf~llpguxV5~Ik|Mw3^mYn(Awe4*A$-Rz+nF_mEq<Af?iGL%##vQ3T>w8?y+c)ilb
      Z)a!uMZX{Lu1;tVX#|&np_va$~{0~D*jc@<}
      
      literal 0
      HcmV?d00001
      
      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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
      T^dIQNGhg6c`M~cgnD_nx=;anC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<Yj4tE6n<V>R;kS01QnPd-neY5Q{zn7H13u(A!^)$(S0gVw5GJA6ys0uFZj(L
      zurDSC6F=++_@j)^3kWRJeQ0~mdCz$+=k2fGKTiOx<AH{VK>3~5Gd@@!EyJ@zqZ9a{
      z-|$_d6?Tk+FtDw*>2-SHFw~$56#hT3d-!syTVQ6>@tp99z(%2Z?o_2ZP~iB+)O@8_
      z6Hs^jrmaIkERHB<1m>!aXFu<?>vnKx)m>X)vFbN0w`K*7%tu8veD8DxR?p!*W3M8h
      zG{cTS_M9ntWM9Pb1QP#LP0d_elURkKDWLCtYS^97@x88wq`=bH>5K763<6i<xQ3L#
      zd>B|>w`B)Ae!Jt^Aq|SRvLO@4JQj3ZM@~a_8fbDsaV%m<XLCM|o46$qZMc4y5Y)nD
      ziUuEQiWZKxi>B-=%88PI#)@f5y-K~;qQ9eU$y8+Sx0oxgO~b;ap98-aH0*sxu0DBY
      zhilRva)eg+lL0Cp-Wzj`k;$s8Yo+qa4_x@hFan)#onK&sjgN7WQEu3VIA)n~0GBXF
      z5E*d`?B=~=iQmhtsmu}sf+i~xDO386D_;<e95YDwvAmg%d?jrkH`2#EAF`&%2W)Zj
      zDPnj=+-)SWixl<;Dw0F2k%|S@ZsQKQB==pOo#x)64#^!Wm6h^IAB72#^bb_0Kx1QT
      zF_f_~0xg{Z{Y=m(XY;2Fl{3qItUgi`>R(q0b;35Z^@_F*X{*N7yha*tkj2qJ!NVcq
      fSV4ZIfGk*}L1`ingOS47S=?hJSG>-81o!^{Rg1|A
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TW=CU6#fRb-GXQfTdCUC;-!_FY<#i_UQ+6f1jX8h2m7?prLKY9%`&Ke#h=l{
      zVB$l6fIrIk%`OEJv=1|L&e?Om%gp}%^XnYIBUE(61j?uG(EMzDu}s&NrXP6H>v%o0
      zD}D1&2Da624y8YoQLIA~DExoo#nJoOc7eqwj_b&00=xOfrDN4bsKN2fS%7MxC7|tl
      zCw3BXBvM$wqQG*)aqV}*e%lU?tai^9$TYl;)oWRSqw;Z4lb@V{K;;tRd52Yj_=)rd
      zwk{c?P1WZOr9k%I!UYz-29BgQEninIk}tn?Y+pK_JJ698FfRPoo0BgI2;4~FCT<C=
      z$iQ+3T|3zK`hL$=NaCYv*hpao=_GC=r(;WC^#W-2;!?=K;6#V3PA&Q4TA`KX^tSr4
      zBcQWV4~2=gK<v1t0JoK?ZkKz{b}9ML8wMTwm7}hBZT_w*iWxbg#`!}58W$gkxz4E0
      zs;cY7Qu!yA&KSm!<euaSJZ9rAt}x0)ZAjrNGY;SymI<OFI%PK>7zWQ()--0<LxKZV
      z6jHkQ18d)*o$*{>A7OJ!l?gRHW&3k1VUKXNkTM$$PAJp3gS!M)MEB;1_K2d062(%y
      zbUwoUDM94rHNoG^04FBE2|Pf447@W3d`e(-X~wLB(#GZpg(*ek;VnHhNpnDjA3~~P
      aG&-R&##Dquk#3Y?10_ar3Mey+;o)DZQNoA-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~T~`xV6x|n)3F9Cb@uP)e5CuZS(TcSuiY+Q7G(r``VvBW>T*A;{CQc?+`~A}Q
      zKJ=x1>QBHf4X(0Q`_``2AJx@;XF@;?s}IcO-g`dw-uIl7fByab4*=)zy@nQn;gVZ5
      z*Q`gD>B_(?`(EG`JjW~*)*L%;Uh`a676RLIHM9vFX&BzQo!hw+*jMprE)dU!7LMhX
      z%=y5#-BL!N&9&AgmxAYWIgnEs8K1#@$?NvZwrd9y0tZJTZv}+$Gs#5({l?>hEGqyN
      z4F?4J8whS%&Wh)+%OXu1M$B@}D@q-$IA}n}ejSH!SVND1(eR{$fg?C7pp|4WWjjRG
      zGm?BAdJJy}v<#R!dhwQqK7sC6=^5z9aR##8qI^8JB5=4)Vz&gzYzza$Uht|;(H#yF
      zD>P3Gm<iiWL_#NsNk=CJ73h<DL|Ifgh71g2M4+Qm%~wK&m36iW`VI(;8qm<L{7x&s
      zF+Sl)b}wVoz&^AKbmeSU&Q{m+(qFLhN}YJlD_G8=<=bjsKWqzD?TSD$e9wlsdsh&j
      zy0z*%ssb9;>X}(Rp?U%$OC<|Y$<cTuxu}8HheC7PGqZDzhgRgS7>J=m$5p(q;XQ%l
      z+lA#<-N0U#=KQMV%VN&XPfMpPeFKxY#*$L%M<)Uonmt#eLiY%i(QrfH=&Q9bS+$*_
      z^kevd^~84YE&oZv^@4=sSw&e)Cv;rLp!&=h_z*dkzEv(uw<s{y6viG2GAhKZfjL#e
      zvA~NOO-EV<zlz%i=CQyV#Z&c|z=@{ex8(}^Fa~y8@5>dc8aCnO*Ej*v38GyMWfU0r
      zUxE0@Y^|(Yt_DOWt#!(^-C^n>cP>aq;8O$d;*y5@tk~xBNI?k)#x7SK%Xpv~#tLW0
      zOLWxiP!OgirT3?7=}_gNrZT*$az@pbG_Zma+pJ!WlJ4SO3^oS|j{@liW5JU$CrvLt
      zH{gH_+vUTm<*+4QngMg6ewpMwMbtA;MnT|MsVXZKPEZwSfpMmMZ+(_yG6tW(w=+1>
      zEd{F`2=GWlm8o}gH1Gv3GHYa{;|adf@Fl%>2<1Gtr0V2rg=wbAj9~ArMB3={Uezzi
      zXc~4AS$*!GQPGef_E!FCs6WmKexU|SxUvViw$Xy~7A-L9yH0fRzaM#{ywanoO?0Pf
      zh{uoB@aC1imS54ih0djTViPC+991`c`ySMA>N%3(uC=d*)N`D9O79k&<+q<Xfk7fT
      z$=E~a;YjO85~neWOGxoI4MZAd!`nE|9rI!w7l^Hk_wV2$BMDV&yKtsMoWC(@3+?ZZ
      zKEvg|(Dsz;nHQMIrT#|$7Sc;wxV{vh+QhWFs3BX!%}snn;M^x`xb+;DmFsTnJCQYS
      zx2<=$427zhWOSBO>^!=Ovxi7cqRbHIBvCFCr{Z)ZLRRP0jal5q$K)ZfgnO?snV<rK
      zUfrWLe6oe*B?W5}pKb6g(oqlNUE#}2gz=5Yz8+s7j{;BB>-|JarOG&C6n}xHLZ;%Y
      zHLU%N{fhVtxErbX!|<S6C3=R+4=?a|<F42UJ$soUjXtteYn1;483Q-SeTo$`P2O2r
      g%-|HK;yK(Tj$0wFi1&EoEywW<Yfkb0Hstc%e+!%#eE<Le
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(!A`<J5QhIPg-S)xqA2Rc#3*QD;~DirG@3M;h?00LWrIt~E-9_?vGhcui4WjI
      z8K<QI@nF2n?CkvW=iAxOueT2X$JjQYG3@qaWcS@C*OolAhk*)}r+mBT^?lK?FJ0O7
      zd0;?is7_V)w@xbzxI0MO47n2_MR>-Lsny#IdQ)||i45`uWRYViIYRR5Xwc!oo!jv_
      zgXJjC_1kVB;yS(5!$&b<*mM2^)nF*9A(u@hCHF$1Btxy{{G@Eu=gOIqX3g_wj}POq
      zkpYXLoD2$OU)@YQ238sN|Ad)&nkb_ZzjvKs<u?Z{B@+ccA<q%T94!?E9={OrRto7x
      zk75|?fTrlL0F6$xNQwqkHf2URdoaerYtl9;#%;jDBE`Z)KzWHO9YvJLWH~t#USe}f
      l<{I7P-%)-z9AoW;3Jo)>N@7)+h*B$(V*}NMU^CHgeFNe^hKm3I
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKnF$%&!5Jmq)P1HifQ^dx_I#`Gx2my<nU|p9@!m=CIiHEcB03J$AY}CePnBx6E
      zZywLv9l#os1Q8)Mt`)VsO5rq%CV2MBTTwDMV%u`59al=S4+(~Z`J1%T8F4(-S}|c}
      zH1C2w_n@>F!Y0i>RKcNgCOa(iKX<<38DU!ZHYmNXtR^ge99DgCOdt%p7Xa#%Mu__j
      INjD>mU%3K7PXGV_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq-A)rx6ouEBnRaNcw1A?*DBy2tiPc2X3&ez?CQXVYVoD4*Os9u-NSUeAQ%xVi
      z*DxmDcw-{bc+m&&p^WQH8x0Cv^!)6z_u6ZJou9vc3;{eu-i9Ht+6wxmL-(y)3ZyD^
      zqfmuj*eSJ@>Xs@4B{!nT9lVrp`m(1gVRNt>`ASAMEP-5H)^USYX}fVKJ!K;)uyT&z
      ze>wuT7Y0fOO2F8w2$<clCm^Z<$;W=+t0w}9{9a|bE?{kjO__#?Yz7yQV{U%Ao`S%1
      z1~w-2=~4zMqy@4yKael_M-3UhavL4VoLcC)ow^(O`aTX?s_nB|xpt1_vl*<BKufC4
      zk^h<uTB;qJqWMH5dy+FH-f3Lp8LDY4V9Cbf33NMyo{~oy+{7(`l&f)jVRs-<$k+Y_
      zyjDFWRMl{jjsC%bjM%>;1A+8T*pEE<+}E=&oIS&R-2qEPXY!YT0ZX&w_hD(0@h(U^
      z!`F+vZ8O8*o-KUCWTAMBse*ZonJ)|(xXg8$g}?^aO$t24B%WcGk=aohuHY(f6o}jK
      zpT;%Jjl~~u7ko<=zG7<lnWvFvGLCM=I@$;`#ySG?$T6a=J!1B#`lO?D+_}!-c28As
      zaDA-so;fC!%5i@#GtKql(D{Ig;_wqJXWcPAVqQP$x1#BM$Bn{k9-VzMaQ+&eqd{Pw
      o++2>^V1p)#kXS`4wy-#A^9M#5x5->{Ucntw*Mr=pf`NO#0sAJr3jhEB
      
      literal 0
      HcmV?d00001
      
      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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
      TAh{}jFNqeq6YX`L`f%bOU{q8t
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cU31%15IxtiEyq<!$OoxOLYlS|N3kOc6eww+)M;o-#xR6QA$-b?ny9rUk0X_j
      z7hZVbg|8{Yl;J1v05dq9flhw_KZ@b(mEC3(F}(1iyL<1Ry}NtP)n9-AaUZ}Lylx<)
      zFu&tR_6_HjWBYDsce+6sG=rAC8-^Xb76dmv*FaWbREM-2f5(2Kal>tf3R&N2y9#6L
      z505s&uIKM8E97oDt%!$4GibM6pV9g4pzU}*VI3#jrN8Gkqb@_#7Q@_6J6_k_<2`Y<
      zDD+zPsuQ}*l|S$KUih+tUp{=*|FyG~ymw)frPhLNw}>H(n;5}_!cci(a~KMbnaCk8
      z)-e-CY&~wG5L+`QhGXjq6UEp%ZsG_`L7Xsg6ptv3tb4v&kJ=5l`?k|)=}87nr?u&H
      zJ@NaS*>Kn6Tu!e4Cr=!evEzny&B{c1;qYh_3JlncsVUN|4cHl`v)U&}lDw%oDtLPv
      zeU{icc{<9YOG4FW!VS3}+;WhwLKwt4D6-pUO)Bj<POQAOl~R#`=M|=s0=gJ^t!=kk
      z#955X=bVX`AWCpL9oOGhsHQ04aQ1$hWl6CjDX5{Da_!#(3%I}$EgwH6?XMJYQK3jL
      z9?XiQS(SFm4BFcbK8c4^6mu}Up+<CFp>$~UgHo7qBZ#_9cg+*VkHjx*Nd|y<j%$c7
      z)4+tNi`Il_ORrRxUa2d+QdN4Tru0fhag~9OV3glS>D@zyiUcawU5r_aJxp4a9;U2n
      z4<)OV?P1y~<$9R4Ci6YaStX-~`QI3y!AX8kQ^UYJ$l^U(?=$}g7{`Yw;Umo9V>}55
      zi)i2!quz?|;ofO_yiwP$v?U#6v?V=Ae-(Kh%qy1kk<*rRB0W{)b+B)Rr%>*9Vsn*j
      zIqP>!{z@Y*F|RkT>k`a3pkIQ*LMnJF3BH*Mwo<{RB)F3bUQ7i~C&5uFxRMH<O@cp9
      z1y`}eDG2ok2R8RhVqjmSf^9sV0-jIa{ADVbZ=w%ALyCne!^&p&@k|o_)d9HifGqwY
      z`tbXtR+Lfy6KCJOix=uup?n`NUaO9-?Bo13@u$R}zJu}V*em*od$VH9=)G45d(+z3
      zN9|!1OZ*E1UsJE&a8Tdk7{24X`<|8Drt*H^3;z-4a0eIg6RzNAU9A;Y^g!KpT%uN`
      W$vW0($tzpKYq+dizry_tuKoj-MNFjt
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&F$%&!6h!AoO*A&*AtY&BtWyd$Ml1prTCHJO6T@yuHXhEx19&KLqlk!ww!{24
      zynnr&F92p3dT<DVR1M4di8Cb(D=Teusta~7ret%ikC|9;#igh`bP1zJv*1dy^*$G=
      zAq;9^o<+hWh=1aua6|Cr>!>CygZPb2OqD4aZNH;%_Xpgf6Wvs)SY(ADj6W2n?Tkwx
      WbnFKJ#~StEqBZl-w~5thbNF}8+*R%X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB^T6g^YQL#Tj=?~QJ>RAb{>V`5NOL`^^vmqVFANoh$t)!))YV&cLN@S}`(
      z3PB?*%p`a2<D7f%nfd&B{{V1;oh&ql{hlA&1OCWuUr2it1~PC0&+bb(vg@Jf3SYY1
      zi?Yxe$_dWne$T$`41^;Ya&aU=pAQ8?rSVg4%Fy+Dr&J&DD0&LQE<@(b^<8<+aA3|O
      z=QFi7gI*81B99ad134@+q|91-2@E9zX=IeQVjznQWg4z8ZsK7_ge~6jl6?Y)du<-N
      zDxM~F*>@ubv++OKq@d6f@_r_=YS!jgoq+CUO7qPi4jpmrsx`{LUh!DH5cX*86n%k4
      zhg2jUX`nkrl^m3;JVg&wSGbb(hJtlCM$tMNqx_N(Dr76r$zG7H6X_B~Tw#?myAv9!
      zSfhv<Bx6|OsX-bISjWb6j7_(yrL9*KpUKgvF$kuTjijM50Zbb*Y%V01|B_n^$y>>Y
      F?QeiMek=e0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D-ERz06#t!ecBi|hwW><d`YQH=j_=a?XqB=xKEkT-Hr>6cVRmLSbJthWc#wt=
      z9;AsN9%Wx7G^)e{!ka(9pM!IEOWVYQW-@c`J@=eD=XZX;^Zn<?PXM;#gpNAG?oqF7
      zUa_y)rYEFX3ViA3eb>A!Wyw6A%bgkUJx}DN<9nTFeBbRnE9{a8bZCS`HO;lXQS<c3
      z6%Nu7B{a`^&z3#U9&rUBDla=>=XSz2YhnNE<=p*_=g5PEoymnJr-ljIfL{<X5E>2W
      zXo#a8iw(q(Ak-&Sz+%hs#Hn&|L<G57wau2Fx7}eoaMXUrsVNAA?giE`(=f(SAC$c~
      zmZMF_ih0dDcQcftXkaB)5tii3K_EPtbBf}m<GSjfT<1^>?O3CugV43G4jNdCb%dt;
      zUm_KcgjTCcR9QN%$sM>V3YHVf-Z(a3qmE8O%fHSIY{F(j!>EvhP7q2COQvc!%@IPc
      zjuavF--X7IM8?1tY$X_yky~~s&xfKwpel0Hz&5aa8fQ`Dau%Ov<J^~>26ibvjX)Ir
      zYvQz95TR5=?=jGgy{v)jw!@`r$)VJ+0@!1q7yH=}I=5Jz+~2I~??D5H(87ufW<=gk
      z=$Msr){`O#$|WfZM{ndsNeu;I(Hz3KpgbY-{}N$YG^pAX+l2TzzZ~Snprb}+>HO*I
      zQgtxIERSO_;M!p*SQ%Q4%V=#XnP~>YZv>P`D7EvT*YO)eoV|;9wTt)46HjN}!AQSH
      z(_}Sf34fy;1G<4`UK?u7SxeEvmaq(o+6^=ct$OeC^c0MX*4GLKKcKZ=?WVAL8tcCx
      z*`u{-Q%Ki*UE}sz(H&`x#3o*#QTe8^qk@E5wMM3~y8`XP-}HSie!W$jnxkv{ALl<f
      zxkpz4^bQBw^v{2mnQs+DGv7W>as&F1g~i`XaNx4lF~$$rPT&dKCwN-5bx_bpu!2#J
      zL8m*2(>R*w9uMPPw9|d8rw2&0&9L3V)})8nLyyo$k73aSPIAsAdI^^*DAFs8(QDkM
      zH@HiaxX<=6-}{W-R@<89<^j)V+S<f&JB+PNNIT1W07v-LL<f$tFT&nIj;+Hn9B12H
      OjY=}A1}35%L%?sjv~H#V
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      NAC_)on`uA7{{SLwTQ2|r
      
      literal 0
      HcmV?d00001
      
      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
      zcmd5=4RloHnSS1T?_~aNlF5WoP!ORi2~3PinOzAY5Pl3K1WhCcv@l6-lEKMLoVmlF
      zD^eF+w^Utqw-qZ2*cyLXY&D=RwXM6g{?vBsmbU&?t?l}=*1D^uxU}r^-I-)&NN_!#
      z({p;}ocq1sci+G7eV_0B-aF6y>9KDEI2#|kp$V#c5}DdH(Y4Xqgk{(Er;>KEGa0Y#
      zwe9}e3tC&3&5zpF!epv1YP(?w#yG6Dwcf7HzY&=8=eD=3YF@aiZNY*ig36VR4qrT)
      z=&5b7Q?W!(ouH(td1>nfEdtN1&Uh>lvu6wRs_NweqdwVXxnT+d$I5w7My{4j!h-;b
      zrX-0ViPnte!59*4R+k4SsFmJ~2V+SrOvOAni9}1(_Che;gbO7eoWiBWQOcjHn5+&D
      zCX;B2raU-}#N2)oXE-YxJg6eESXrIw5OEK}iYL?K!I>mltbPy9BGKGwdvFekrOCA(
      ze4fO7t5aExm~f*+P~I3zSW7c~9agF}+7Y(|!Nz1~G`>8Vim7>Sv1FDL5g&BanK&0-
      zH_j8B?1Up@$Kth%QdUorB8mEF+)8vQug|BoMNO?f%tgH$^Qbw`-Wuz(RwNUaiTPL{
      z@b_5u(2}64YGi(@vrCSxA<jA<W?_+X=K{frIiX^X>g8&)i%l#+BQwj5InEI&1^R|u
      zu5)846**pJF=Tbd`l9hHz<g*zozixpiHks-m<cCr*|&nRS&fchHlW!zgqC6V#?pdm
      zjh`CL3Xk0mt_3R#ccx%nHzGXqGTq%)D!1-<urOxDyOt%>F*}w_)a9aA0Qj7Q5A9g#
      z#)_ik48_C5rSJ+|opCFgQk-8fu?njN?sPU?JW3;ct6uIy2fEzo6r6DEamiXWVWC^#
      zrIto3(PQ^ALRAe)upPZ7Vpv1u5E0qs2Bj}<q7MlMCEDN53<|=>$H-{A>_ETLa0M}2
      zRsRXmNF(D04OiwpukVefqMf#tGO-rx2qNZXeyk@(E>~4ULv_6m8*rr?8wC}4sfL7Y
      z^(dLY!Bv#8li4~W2yv$)@>iz=@2vJ=Gp=#ti$xeLN~DRuRgo)Y<mOpDu|z|n%UZAE
      zv(?14_&dgj_;v!y%EiEK#^0Oxk`nP#WI>|K5nx=q2qTuWf<xc{i*fJBkUNLvk&)z{
      zyA`qo;|kzj<RhW0cSSb{q=AMu5IP)slNk;reX&GF87@g%ok^8O-$oXJ=I(BKM_Ab#
      z6(3KE*WQ?ACGF~urqYx-Z<LG|_^?cI9SeA;7&trg!H=yz+<~2L+*uUhB0&?oRJ1(w
      zCl^~k?lSRpe1lGR5(#s2sASgD7%*`U?j?IH-Duf_h(c_A^$H)W#Qi27z=Om@`tn%+
      z(qy8oH)dPu{%9w+a>6KEX;AqR{IiL@N~}zY<z<xn-!$<pJgm-5rX%g#T1pcUI1)~Z
      zebB@{?5Eq-6`5$9feaN|ZSGiOb=q~x*E{f-iN}X<wIG#BrgD4VfCDDJjVHK6CkX`g
      zF=}$RXV&-cn)n``RN1BPt;u{%F2GS;L%m{7<KIktU&YRhr3<&&jvttK8qW|!4knx<
      z#>y}k&zbn4g1E`ba8Yz!7BouJk4*d+|4yKE4V}t*Cz$Pc!Nh;yrvz5+dSR8T%0;UX
      z89&1>-1s?To<F`#QJa<MMZ82m`l9P|N4>#~R|FIDY=w1x!TL_CUsYQ-e#yoq&y<ak
      z6Vm34-P}DdnMrh|huMi4Rk78@d#sE)O8rTuuJEuG;guY&zGOm`P_Hw#I;vc0JDQ?O
      z-Kmv2ivo{hOrZ7mk*FtOvs@M4fx~wy-?MV7axrub<n!nRZD_f!dbu0_Etrz``r<@7
      z)8C&=*;ZF`zm<xrXbkVuhYvt^{RwN`kP5aRv{M*FRi6tEb>S=8BR{1J7g<4CSTZ`T
      zg)!B;R2KJyXDZh)iN}id6&l8>PK(r7)%$St!o#1s(|w#h41-T#eZX@7{&pi++S2X{
      zmbbK*1S?wF-NDM1c26+W(jF)Yp2(*=IIiVeI5}V{W<5Beg%T5$#3Uv0IVEwrl9=L1
      zR67#W`1Ay8`1A&A`Sb<P=F=aXPE9i&qHPU-#ph&t1)NVW=U^(w8r0+S?37xt05<7$
      zsKZ}7+@SC5#&SDY&K(HXPo26CGp9a|S?$5u`!Q!97CwRo&YRlzq4^Ok%UcRMd%l3r
      z#TdgTX(AdO&1O~)T5&P;36`UcPew^UkGv+AUYYtZ8U}HR8m0~6vamjgX!x5rSuF(I
      zgXlSD5SO=w1K~j=Ih?8n_0Gdr5hENj0={^_w;w6zy_)vtr&)HYo1sKpd2PdL45h{u
      za#iSW?Zz45z*$O7$Q9_?jj{QeZ#R6oSvcg{kM&ufhP4FzN=->PR8s5>r-k0k9CAKj
      zDt>o3<Syptbaehw#qSA+JjMK+7V_u)DJQ=Z!2pTX!A<dqH{`t?!I0OEc*B7j<;Z~A
      z6JyT(dIPiK5nnjuD^|~GUcF-KkNCqOe=!rMd8Qhs@9G-nYRe$53-5KnrJ(pcrt`Ui
      zP+W;}_Jd>C0iJ=?gk+SE?80pJa!u&wn;vvx4dHn?u0#S`k;L`50{@5<zQ)zv$lzWA
      zcQ4;Q#-`}IxEjx~KY0mX#5=f#wP7oc;9Bvs#Gi!gWD>SX7+;n;TrZ1pgItK4Wd&}L
      zPL5q1yE(@26-nS$Nn^WQg&nd5yJQ=7%Wb$z?#0(-FK_K9aJM{<d*lV)H80^l2izO8
      z0M3D%P{uZVSplBZ^|*nDP*FGHA6PbK%bmChHxu+*<r3UN%7y2og8RCeCFBTR$3KyB
      z)7OXa6;d90W#g-)y!7QF+)BzvPinB8l%G~^V?3Or<gK9Aa=<lFkNC8RpBcS9Vyfix
      zSTUu8*fC8#ckjpD+hI=SWFPK}_(Hz>m=e~CP0j#nfh@|-owd`{Jj=ev0S7gysj*tg
      z`$>fe`-f(FwTPidN(XQ<&snJSoN?YkJhC0WP-(;%K<SoJ36%!ST}R&x8QM-L01e_%
      z*-KS^rRtM(@5jH)J`P`C=01EU?*%y{B}!qjr=xJWM{*VIM``jL$LI(~*MJsRG5O5f
      zDAM?64rRo3oNbK~rOyycg^Y-Q03}=e67q-4-6&^@9pL@z_M`6&;l+vXfXo;*Y=N3%
      zvpRcZx{hJ`tWg`O*hxl(J6_=G>c60%sWWYac#A#d+-4!(T@K}$kRt-VP{|N!hIn~8
      zuLGqaUY1X(l-!A*6hPqrPZ*OIDGil6m19yqDsyI*IhRZMxUxY!OWgz5s7J~|Wfj^b
      z)3*4;DL3jCe!h3LS`N$_b=5c8YVn#Q9^BL$DGStuN_WB&DzhUw;~^S<%BdzhveoV<
      zd)rv=LjL_Y$O<!n^1>;Lrw8NkfJ?*6*dvG3D2MeLHR`o4an{xQ3cTvP=jgoW=)70!
      zPG6-hWdR2US-AJ{3fPZIJW9<6a5|pAnf!KX<tNEyc#0R<4|s(=jrDkj*VVJUqJGHh
      z;764HF^l}O*ohZ#H-5?wyo1<-Ur@`7)bJ9yU*^iIycB+k|HNzf5U-2iSK`K-Qi@;m
      zV*8Cu!CO*;w`Drsk=b}xmf$^Ej^E0qcwc((JF)SBtiwmL8NZinaY$~$A7lqUmV5BO
      zvIj@xQT$P!#GmB*I4aMH$cv)Ot76FOoWCn>`9QpKNPKcwN;N~uG@q1fAqi-cC8*U%
      zr8Zs0Xmcc_HOYxui;UIUWt`S6CuwOJuWgVC+SPK3wpAu-yn?lD9Pg0NY4^)%+8&vr
      z?UO3)fK+SG$W-m1gteEYMteif)ZUj`?XaAs9g(wjO{VJsnW2x7h<+mHljK}|iqz>f
      zGE1+O^Ys}rN3WB)`a+qfx5<3HLl)@0vQW>+BK;a^(65ul`VF!~|C%)F_sCLxk2LEK
      z%QF2jxllhKE&6vjz91LtugN9)JJPOyC@b_o%1Xl{ml~CFnQ@A&GESEc<1FbkBGP4?
      zE8WH{j?L0*v`NfZC2?boTyDgr&$vpiFg8od_^PCh2gNp?l#Fpu)*7$KI^#{*V7x6?
      z8Xw9g<73(E(&QSKE?Zm`a;+;U*SRLhmsB$$jr_jg6+YBVka~^zXEQ<S4g8A8JIMbO
      zw(;`UWd|Dvhtdve;Veab9l@J?YcQj4Whw25R+3w@*@8Gthc=llibFAK_h%_$Yi+g>
      z(VEzfIV}lexH(G^Y0I+BiI(Q~g43ojqAPL@%MygM4U2X^Z8)t9V>&rY5&1{)Ywp8K
      zti7A1w8NS=OF?&y$8S_)gA&&`B3(5$rmK?v-^_EhiQg}8lPZ;`hbZmn5M{Js2OGY3
      zQEJ3df&apLC^I(aTBb5ai~oLP+asPt&G~MtR5z0*)5d3Sq}z^uH2wkA{y3jX&IgR#
      z$l%_@zq4;dh1}xwc&BDXhtk5Mo=Xd<H|U(kAOD~EWK-KmF?B0V-9}Tl($wvr+7$m6
      z$(gcfSbb+!6zpok&ZCD$>}eMb-9<yYP%hta3{A}n4)3XAcuy6%Jy9)w%i!uX_C9`>
      zGdauIE#P?^AMgwCf1VhQUI{rM4?5aUAQyRtwR>2;8u?!E5q|$EH9c}1O^5jDsx<w<
      Iv3&Ud0LS!4$^ZZW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95Ivil8`n4{K)Dqtt${RDb@E(_gdz};%tbU*;&J1w5?9V{WN-RGyzmMV
      z6%r480Ix`V4r10sqLL*G9`-VxIp@smjKBZ-`VBxI4=hv|_NQ_gobXc~NTGv8s<et!
      z63nz-1kXpK*Kgm110|)1bgZP`w@_p7^7w?yY4B=%LM{sphE567lck;sspE)il`=H+
      zEYAEMsfQ(?g8TtP^OPrkl!{44f@R<V#TZ4NWCUwGie;=HGrTJW6&3$gV)vM#Hc%7M
      z1VhV#g*9`#=%5MPMirMFtm866wPQkCVJyYV<$NsC5g#Xlp&hD-C&xUEjlKF<Gw;OE
      zE6bvgv)`wJ-Ko&$o`B)76aMYmkxpYdJs9qm5ubw-VLcT*nVUQdGz@E8YcXGF%9RZn
      z>?5^IBk?RYg>4iP+&2si&XC3`9V9%<1OZ!5Wt6Cl@_HfkOie8K4151G9uDrC7q+55
      z^NJodph~NbiszY*0AAblgT}u?YaI@GFVO9f>?)nD?!z;<-Muq--7jc=$^);^Zs!21
      z3_q|zwgFN&uHqV<4A*gEMHQ~7+|BxX*xk?YKF}}ok)kRvOpP4*GiTY#Mcow(;Nm7W
      ebH9sQxSccI$&p*QOQ%gfqYJdLO?wSHxc3|0NBH;v
      
      literal 0
      HcmV?d00001
      
      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
      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
      S7*Cs|O~zB=@ijb&ivAC7iNWOn
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB^T6g@+c3L+@JpNYl=J{#i_bmJqMG)e?XT$VCoO_^!R)c8>@bY-H6AK*tB
      z@6<-og>LTcz4x3mC#P@k&#wTsv1lU2u-p-mb>rMRmf*??LaC%Hed}7Oz&dtB+vlN)
      zG{ejn=HlG0tB^b0<jjz%dcsqC3`Tji$&lWcZJvXHY#sy1FcfW1@YAT<;$g#S`JAC-
      zOV{z6PUz`5S*F#s*JD_*|F=|OD0H|w;8#xMtC|c|{P+p2Wx&P06oR|TlY*gKw)?GD
      zR)37&NRrGQ-nl%`w4RA^hOwCFN$ce7>tbS(VdF1{jYf?k`WDV%0@FH)8HUl{W+*Nr
      z3VrhZ!<IHvmr>~QBTwg*PqN<9j<5t`(LV%LrX!|m(qvI*)Cbm{F!)FxDdec?Gq8gp
      zs`*a<^<kRQD4<9iP2QxgamGmPo?1V(+DA1KD#Hjy2~~<^D63dxmmH;NlYPO&<@yt*
      Z9)3w3#!{1?phSw`n8jTD{(OvI_yCSDk8J<|
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g^W4#aaaM{a6rVBA~JAR^x_fG$FcxR9y}*fs!&M?Ues=K}=lu0e+P6
      zP9ZUdg>iAu+<WFe=G^)Gdj9}$j(rOT!&zS@?vPKoD}{2$QK-Uh7`Owa#_pZqJrTu+
      zv-2hpBO#RqlcAJW1YGvr$Iei66@w}HNHCO}KUXak`Lch>ke%=#q08KrFMV~*a8zAP
      zTV!e;wQYnwVIu>_K^_H$Ott1MfuZOii=6gW9azW_)AXfyNJbqIwRtB<9}{+Y;PJ@U
      z@tic(z>gU&n*UW!LhM$UL|t*~>+a5cKc`wTh4)g5s1fiu7O{n0hJ(K+Fcf}m7Znne
      zq5m<+NFO1zIzmR4hZby;_d*#uuULP>a{YLUmHNpPrB|X1lnKi)3EPAo6+K}E&sZa-
      jGAqM6HYlP7=@{L-m<}?iev={tTiB-4rhyDQ*hBss`D}ut
      
      literal 0
      HcmV?d00001
      
      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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
      L-Bo};Z^QFnwt$MR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-E$LF96g(ClP28?ZAobx`soMBrX|n<ij+WGXqy-Tg{cF~;4JAjT}ZNZyLHe9
      zM;$xk#|%$>sUMZmagY%n(6%_J=o60UlfF3W-{N@g-IxXgj1Sp+_uk+Be&?Luxi@$J
      zzI7YGE<7KEPr*>Ww2(Y+ylf;(rkk8|Y}d}&h2*U3&Ly)}(Q?h{tXaytv+2^@f_uVs
      zOrscts-Q)FWZB884F#HG77eRpmGb;bfs#?s;F$BSW93|L<+Oru&MuYAoNL((Nn{^_
      zVDjY2<71WJ{R;f1J)^*9@xw^=J_r~RoVLdb_Poi;vqovUV3yzfvG^2gAGw$_=S1oG
      zAX=(v9INaoP{-_PGXw>#8X8b9W^EcC@n#(wG&F|c$2JX}*sP!~Ckl$FZVe%X!|27M
      zLG&qz|8H^{9uuj8j#)4bfqqlgDw#(Yisww{q;ammmFBFSGYV6NV~O|jqUz3C^9uGn
      zOvVQ_l4=Ep*)2DvU_5qTJu{~tmiRyYIUS!8vh-_+W3!NBhlV-?#B8UAAnJn{RM02;
      zRxnEWWV%o=^G0FB$uAVml3VFOnEvb!^Rqn~HVIh*MdPCMkDuOQe`v#Lx*--%i-P+#
      zJcWI<o5Nq4{fM0z6*~$JiJcM3%9V6F&b`37g_#+Xfxa`N;@d-9vS()IO_!5`v^w+8
      zU$Evl#4_=W2+C-fz$BBic8G_?Du@n<oueAEva~^Oov;_2oH=fZW_3PD^c{jedI-+X
      za~Ob6NW_^>2qZ^3NRD)#9O*VW(tjN58A(m}Y~q{BJk8j`*?F!g9Amn=hKRn3t;=ZS
      z(7ul76@)qKT1Strtf5^zx^6JmhsXKsVr5{2I7aF0!)V1MeVsucp22p~dxE=~mz(b~
      zzJU$aYY^Na8j&fb-$X)Bh(bMU7|<gGl+@enSX7S$*043AE+g6#TKW(T-(c6Nn;80@
      zZ|@_>4|i|i8e~=AMP|+ORL%1IS!8-19k@XKio|XsfjJD}CG3NP18^nQl+-g-!J1;8
      zMu|U#y;5;vlxnL2EuN&_b#f*Y4)E~OO*QOR8RKJAhDt`3QRlnHNpcywr}5LnzUapk
      z{M0H2!X{~lxIREqQ9<eow)`6w^<DOeMz1lO*8z{|E5!6FnZCyEzK%A$!7jW>7H?rE
      z7K!p59K^fq&wK38CCRi$dMHz7+J<fnQw4=_4dt0aE~y$W2dJsw64Dd?#O-w)+<+30
      zLM_SktzJ+?$Pf)O#(g2sNKMkeD3FlxESXjd)Y7>qrC4D(O7eC}D3RFKxsJnoRbNCc
      z%fVHu*&9(;uuZBMQ5UOql;()28%RCT=o)-L(LSOrR%naM=*K4*#HVcaXT*C2NAWpc
      zz*U^V7n0R(4`qeb*)l64#}UdWggJ|G&UlqElaN#;XWjrcoUfKSPY}J}9J=n&XzJ!T
      zu(X1DF&^Thy?Y($QE#_H^6RZ(*L%I<2wmO*Uy|HcB*&wKb)M6&3Hlax;9EA}JGS69
      z0sm0tgoz5N37%ci%I%b7m@_{K@S>_A;FO&pTr3Fqg{ygGJUi?`ZHeC7yx}U>b}%n+
      zhZuh(#-Df}-Q}I}GjE7rs_dheF*T9HG3m};@vm8fB+C_r`I<c>>J4#^ZN2wKXqBz|
      el@)*EN&TIt`VUt9Q&#hCsOEAt1;?e9&;0|_uB62P
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWjOA5k341H6z)vDmiGgJ@<ub?0Zf}o%aSG9)PQf73TDqhWn2k=m0>efvj?~}Z|
      zKhGC{Df$6Cg>h;soyWIW8)AKNmTh7SeP+Js4P7fLd1g<Ky~~(ffTqIWmo8$H>h&?F
      zghfh;=hiS8UXe-ptk8%?ONExBk|ZE(C+uEd5sVJA+6}k1atST6Ld4-;+oUe?6=Yo=
      Y1{zY{f{*%%0PP=k5Q?MFmFc1P1w1=7w*UYD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OK%fb6#i~Jer7^Ka1z{*rX>%O;V}^2B!ovG#9*k(!=e<BCidV=WY0w7an=3<
      zwk%nJSRoN4Dq)b2+HEDatobXb=iC_^Gnpi;?wRZJedjypJJ%n-eE1i@5!^_kOJJ;G
      zH}qBG4@0+2PhWE#&nY=oeZ}+E^qXdV&9Uod5{f{dOsX1oMgL`a)hu}eYRy=6+@k5$
      zEyorRdA_pjjw_|)ludzT&8*jr3Pt^euQazj*Rm_K^z({ol!--Pys(9wB|nP*%Cb}b
      zOJKk!vm8BduQfd4GmRSkoS3t0%bOSYbt<3FZ>;z|MIx!Ei&T4oTFM}XT`GE!6^Knu
      z7t;_JR1rslqunZ!e)NNilppO;kw%7p{ZU0XRE~a9(SscVy#>oQZ!~JlrhD61uF5ev
      zC8Jt2T#LVhOT}BUXhsuT$!}RkQ|PUj-t}(`BBf-Jy#L0fBxQ0}WM2?1RE;{7$}mOC
      zy6n{S#!>n?finV=l=EE<ris}{F=!)iM5zqz?9n7<1om!ULd7xY0x2p}G^!11O|gwy
      z&|%(g*B*$fo##@gRh+>|fo`H8K)}*NUj@gmw6sU!uQGmK#W~FRBV|Mf!6m~pTLj}#
      z0{nS2Jgcg6?kw{ysJMg+J|ABOd>N~L(=1!Ae2`@Dy$mhZl8R|e(!;XqmtEI!DI(n$
      z<)ayD*|_1^WNtYPw`49_yn#KfO*+I67C#efjQ%zf$nus`l;s_lCvCVqX}{%3+bvJp
      zZ8~>Ap?A_p_?`6i5?zD?CbjqI*M^%I(DpPjq>VI@({f4^!&)xh#E6zlG%@-&Wp+_*
      zU@yHR;0|%!rFZljvEIWj{Ei&%V-ycCfrpd>Ecxsh!#I6W9jR8xi1l{Kh!t};ll&%$
      zlOt9gml5kuklqQp^;PS1GDlo{i-C0td{LYPJd%Y~KOrbAurCrk6b3ty;HgM(E)4!N
      z5=_pM79REt>12f|lAY@-SHt+n9r#pRxrY4#zO(J&H=(wlbb#Y+@Bti*0FQ*hPb0yH
      zz!h2fSyIkcrAhh7{&zSWCU_wU2K}VA+i4spKiR7jIJpVcsqhqDZ9_GSxlO3fz7Eag
      z?KV{BabXjxi{S?U*@o&e76YpDfy;yJ@=kI18G5vLxRQ8|xUwD#cl)2@^|y7fZCk$0
      uHXpEMnIjo+rJf-kTUWwdpE|g*ZLX`h7AWi7pV4rGpF6-`_opBydi{R`CWT7?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZurI}U<C6rAS=(8|Wf6KLaVZEq+{OeCRS;RPX^U9vnpoP`JQP{zf^#%40fd|&U!
      z6Tlv`7$d^2vb}2bT`S9?TJOXa&ZwJ6t1jHN&UT!#F4?ErmWF+d31RU~7;P(czBXJ4
      zA?a9hZF(jw*QcMJiLY&S*yMzH=6YZ7u{Oc9`rE!8f)Rl*4krN$V^c%}LmY5~<O3s+
      BHHrWL
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)3%Syvg5IxhTMr(c4cYT3~P#+lFxbd~{K?^}etKc%mYa5C8mh?vaC>OdC6#M``
      zN}L;mt%BfYCNp!+xrdYYkC!(9YnZi>A<Wlh?A&;Fo+E{Jnvv4VSE19;y4i9np1cZ0
      zWWyqqzCmXv?x~K1cblFGU7LXn^fn<|UOXpQyXs2hkws4dIdl;Q+(3%M`1VpnHSaPM
      zgdtb?UU=?Bftk~#r5izuu;Bi~(*~ixF7%$b_To?<t4JrWS9z_PLhdRlg|7o83FWfe
      z>3w7I$Jj=)WPbnN7fnNJ*%%=VC&WNG)uZo=jWNQ?-xi%pt#-^AwT1H-#e|8XL@53?
      z!+B-nC}iJ1Y#B4BDvo?{5SYLUY1pgA5$3=w{)^yBCS$HPPY!qDo?CiG_Y;3)kmqX7
      zz&d)l7QO)7`*^a@j{)8o@+x<Ovx@Zkz`c{Z)4{b;E@2QwMhzu899E*T#g;O>>3PNI
      d#qu-8AAd<z5~;B-P%6c6OkyfAFrDCMJ^`9Ckj?-A
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOLG)e6#nkKdeSs`5@3R&AcO=GM&u#RAWA}ziAe@Y7|0+(XXr^fcDh4PHxKcx
      z3peg`k%d*RgmQ&iHKB}UxpLuO@js~F?e1Y3DjPFZx!vdao$s7``mcX}{T;v&e4!vA
      zaAeW;^UL~eJ#QOce${n6r{-9cxcPC%wvC!+I`+Ov-92Yo#<*TvG8Ci)x&s$Ww-@u}
      zg=Ja^q-#<u&_5OEe9yG<=k>;tr!QDWQDDo(i8E)%E}fe#RVM^QNnk58G(6q*D!Szx
      zNuV17*;6&kv`z1{KyqlfB9Iz)ZZc_?K;I^TRdk|9LoYOe%&EY!gHg6=NFyWAHD%hy
      zjK8vAxN{PRK<|`O)2)i`n({pmsz{=TiM%DVA#il+e^bKhl8Xj87#a$Tmt0=DI903;
      z$H<VJMnuv<ow!>wRwcU)1-o0tnNGe`exi}Zy{KUTdjtlf&@s-7QS`V-!AopGo2XdQ
      zEcUa=I{T>N0EQI|321?31XsgB9Acwb%7thU$mCEw%dF>`_F_@RDDnypKQ#!UPQ%MM
      z!d@7+eBC0Q{hQ&gN(4tW9FzGJ=9AN<;sj1AcvWEk<{gmGV^gW&H5BOX+qZnjV{4zH
      zC_=gkcm=0gg_G_ua}lTI5WVpX-d2!`ioG}^EymcXsG`WZSS<}xe*kASOyHbAr?YC<
      z?aL!D(4sKnxve9S=P{{(mtlLn6Kx9(Z)1uv$x+E(^*tgo^c8^}t(bCR+KOTp=`6~e
      zM>bwX5$|ZYh*<`x(a$sHjFnYcvB0r-U!pq0VGYKqRe30Cm8#&9z|H_^Br5yf6I3eZ
      za9NUcMWE*yk|afQsA{;1ceyL>xTfrwGIVvU6wvn`ZYa1OzXt81H0W61=(2*F^rg>m
      zNk+S=!I1YpU9+49$EOpE8kS(PdSVhd880zhQ^i<`kt9ALk%$3&*CJ`5b?Y_@boh;M
      z339MSRUolkXDdRhVBy8C8}E3cZp(!e@D*p3&h(3-x44y)>{>N0T~hp1;`TJim~ux&
      zJNB906ZV47z=^Az(q!GC;XoK@lV-`CWf{z+&N{wZGs3CpYUesEVe_Jt_!V%+Expk&
      zxT!u9*thxZl%==5={OntXkZVQGB-RDP~~Rk(*P7?DeZ`)Nxp4?M#)x6^0btHTQ<-+
      zzmD!-(DxHx6X@rEHBgp$PGfr@1>N`!c;ZZkDNi3<$BwpJCJ=@$(v$|+i5$;iqS?iu
      z&+$1$&GQn2_>p>v?%}RAZ2K8~2b*}|5A2;D`4j1pN4@*_KG?*_8V33F%FO6v9G}@h
      zaej0iuNP7q*gKy~rBds7bNT_U&}4jOw28M0sh)29mMx@vr+a4}<3b^`fw}oyW*wD+
      zl01=pfUP+tmrnL)n_z%kx`}J^C$fp}|NT3sG*JuUW>Q%hm%ua$Y@~_$<&j6k8WL0w
      zs;aP-E9k;J`cNft*Vu*Y7{m=6;*C0v1)N14B`l)MYg2(q?J|GwV}-v}IQW3)S8(w)
      zJbVKm-|}3;U3`ao_yP9=^1lrF^)T=w06c_6FMfL2Wt%Y)IK$3|PivHhPlMRa47aE`
      zPMM1av6gUw@qNn5n8a<|p{#;&=DWvETt^|W%P>=($nJA~RxpAOIX78m`6#IVV|>C>
      MWqyHA@i{vF114Q9mH+?%
      
      literal 0
      HcmV?d00001
      
      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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
      Ch*Et3
      
      literal 0
      HcmV?d00001
      
      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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
      XjbC$ANgvDc8^)j!^ZUeFf#3cQKt09y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~pIQ6g?XPfi!@Ev{fop`Ra!fQT%|SqeakS(HU_%gKr^SN;FNFG;#E&$df;S
      z7iSbyW<+28Q4V+0P?(`J`jE}uz4xAb_T0OF{{Hw0U<L&R62oZC3G_F{J41IYS6|#R
      z9EaN_XFKrMe2*J-1v0~67(o704hG5GVwftolFepvLx0JQs<C17;s>8chy{kO1<SGg
      z2MoE)f97N>4DzB|<tjQ5)1W|O=*VO%Jz(h5(1|XF{<7up=Rtjgd#^-MhJmtc8g|9-
      zEMZ57vcF|D7_OB6abF@T)4i)<p%R0-^xov#zU4X%1&PyAyl8n8Tx1wKtHT<%x#<fM
      zkqRo37}k)&WdgPuMcXysT23vj^;*Fw!}M8{l5O*vVIK#tk{+$fDn<}faTVhV#*WE}
      zMhfYR!R99SG)!QUq1&*jn&Fc^$xJDG(t(r6LJS$?6l57D&eCYpR1Jg33%s^y*-|&I
      zGYl`ffn7~IuAdgVrZ+veo{mOEMI5^5>kWpX2*oy>nohGvx)ib%akrZqZef;0s&SvX
      zL+pz*O&j6uD6egC3h;O%uqlCwF0Q$OXYyrB%ts>X#;IWrWv4emMd)qNXp7mRokV*D
      z-L&?QwM@1|e>JyHU;Zn4KZh~>wDyIWbC6M>*ae)Uvv@Na=P^JQ<%Oukh;+L^z9Bl3
      z$%=>QyM!RBujIa<_cxLskrcaMNbcd%4q^uwS>H$cQ2s_!EIj$|n38ZmC4EAtw42&N
      z?*ZcL1K0L3eVFgq!^|$BNf7LER2z6m>mwvk#3&wP981vg1haUGJ6ORyp3&)Q$UNO-
      Z5-}ggByLj-qxfOm#XUl0m<!S8j{s>$1WNz_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fvg|6kR8z4U_<Kt5v+TD3X>+<jK)GsAXiPGgTgN+UGQ;_BbKwqzUSa|KO)M
      zqj-7n1N<m;ofKLg>c~S*&OUqXwf61T?;k$_>|n=$CQy7GB=#HU*s%i{+Iu}G2t5BF
      ziTg=>7)PFSWIz{KNf88`_XuciPhhh-3U`O$1G^o`*y;FQ{eA46a@GX0k7OX@U4e>q
      z!I*MOK;H{rc{xmB)`S65V9F}DW*{(cB7>~JLQ@9bi{z-|MK6`8z)~}G9lzy7QrV}E
      zdfbx(f%WG9DrTmcw=94}y46rA<et5Ay?!jiU|`^~!17r;8V4g!4p*>d;Od!IwNsT}
      zPr6+%GI0&p1*RR}XKISNK<aT9#>ko?x@n?_5=-S66tw<t=q(esvB6ZkzU))nIuA{?
      zYqQuy*?=XmaiLL}SVl$3PRy^|V1JGsKVcDq_iQIs5m=oFXZH@nByzodsYX+nuwvUP
      zD{ds~<z{lN)LePfcsDT3bB5MFZH@n2<tx9fFPQt3VitJLr;+!e;{mY`afxsFAsUNV
      zqQ$tBl{vGz75Y~Brqjx&>>(MHdP)C=!t?6dBK~~%c!C@4>Iv4{mCu-~e#adR?XhT{
      ogupJ(#}s@*!l#^CJryqw$wuNOY@tfA4ENwJwka=QGg`yFzj$uZ>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TW=I)7=FGzO}ib=EVV$Pl+$(#R1}L+K<U!rN};8+U0T#K-OjcPyEAommja3)
      zDyZNQQHlv6@uDQ65d-BEB#Mz}G{gkswLid1ZoCkmZ)WLku^O|P`A+ZQd7t-vzu6!E
      zy81PM<rq@n5}4U%WNUV6yR{l4Vb+BEHN()8t-98$TM9e^6YVn|IeP+A*Eck-Yj0}n
      zu5WK_Y-sHcuWJzy5rGL|(@1ADBh#TJv$`9ofPfNnED9`c8ugOfOWQWJo}^yCH>2lV
      z*HNcekD2r@FmH^GmDV#7p&ZvcB9!*`P`N%Ek4uF>UP0P)wxtkVTH^>wYokKG)d?e!
      zSu4;K%$uR2WMq7-W5mXT7pdwH@PrwSA8rIxOu-BRcd)9XnB+X9q8NTTo2jA%YB6SG
      zj)HQ5%0jLj!)9;7=xeYn(^?nHBuqoaTvQ17S{quLTiXN{j05IDojN}%u|UCmfw}+m
      zFoszb3$aLGvT1D6l5x{Y>AewSAe#}`FqWP1(bZLr180l_8%t0{m2?v@jdmlY4GhR?
      zkV(;E8Qqd-t5qz)QUR}}GwlNNga5~J4VEi-SYX;{l=*T{@dzFjDAJNiGp1#9<{=m<
      zFq)UFlc{-3#RN?BqXsKgJdP)r&v-I1K-+~#az!K&*Qr>IH9XgL>z3AMhm&s6Eos-z
      zeWM>wVx5Ag3i0JDQR1tA5LEuy2DM(rBuo~V)RZvv&Dm6sZna73*q%)cD%qh~3AxT~
      zdNTcqw7~49e{Xg+iJD3nP8?y4@p;mTeKhE?cp0!MgWJQANEQ3s->@g956BWsD`>tS
      z18;~(^XQ2rZi|XmY^4Fxyh{SJbCJ}HzMAHqoq8-&SAup#6|hAXj^-)$AN{6c8#-C?
      ziFEUTZrEIQ6=6Hu$GMy;2DNmBmXv_^R>YEKTJK%v$7Vby`|f#GS*~(z3|li68>+6V
      zLuO-#3JpC1#g?AZcncVPw)Kb~y@)Fy4bDAiYi`mq{VMv<PZ?6i+6+o&q@A5Ab|K0A
      zK3S`?9M1BcP>@9_%^o&Erj?kP8eqi>lor<180kt_D$<~g&$%82HWoBuLD7!uuB)KH
      zN%8%r)vZ=NolR!gjJvT%!61vIFclBVsn{zsP?AWG-U?FlMHMf}eKnEJx3N5US;YZ)
      z<4w%;Tjt<sdB~$zR2<6LYBzY>$CKuu?6TJ+DX%|3ML~G7XpX4Zh&N=9<by2`adNSe
      zY3Rwu1zg+1WX+7n?F+;kGqVP1bf>c^COl>uY}1U+689vvG!H}<rFq+s7J)f=2jkJk
      z+}m{~L4Bm+Lm8`otC_W8dSk+FM<y}<MO`Mj#XL3#KacQYCLbSH3Rf-^@!|Ktp7U#9
      zkGy*9k=@SGP1z}!%J(#`e&*WCack%jriZF8qBOMRBFdJ0g;^t*7j?$P(Iq1YMax}h
      zP&}mq!|;^XdO`uuWh}dh6`>1QF@oACHx5&7)y|`rvGyXu=WVAAd@tjN35dXhCW6~U
      zI4zigEttdRo{u*EkJyG)=tMobxU(INlwRS$!UjCe6#?2|34103bJ?>9Lw8fZ63=kv
      zVNe_C!$lvkSDR&!u6oXk0kMcsTRK;HzU5eY1#JSSFyR_DcTVlPglBJXx9k>*$~-q+
      z=Ula3F2f_}K8;1?x#?xZobBq_0q+PBQ4TxSln1=MYaNMH)LrXy*DAv}D~<7y?1Tf#
      z2wqrKR8};C>?xGUao-RfaoitJhENg`<a`)4a_8U>7E8quyc*?LD(6>l*afoh^VBNN
      z8R@p+y%{Y8=aZWR=ab+ZffPadBuHQH+JKi+I|9b(8-`MT>R#7<I{_~PKgZ_=87)Fk
      zRFcDxm?uY3DHhsm7i2z9VG-Zml<L8B#F)oEe(C!WLJ~_cfR(VYo)=9ETeKa6%<6th
      z9)OO6lsd%g?J!=(5xj$AIF9#mlJ7G(fwTAoU*a^r!Ke6+W%d(3!ySB%-|+?hzy;jJ
      zCH#rYxQA=PhwEYjZivY^B&Oq*n2jHZu-mSkRw84z@7E4zZ{a9wL+%}8ov?N|dz&*i
      z@!lm4AFEBrb-c@&j~K7wJ>pV`@&o>k)1HuxNzE~p#rT*PauFnpEuBrd!a5<qb=mh!
      zEC<;-)i;OXtG;>TJf#&j?*i&9Ad7NzIGstqz-^xX!Zy8wQvAw4XScB!zu7UV5<h~u
      Lm;^qyHBbHxsSDd2
      
      literal 0
      HcmV?d00001
      
      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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
      ac=&geS-;E|NT&Z{i+`EcXIYmEulx<JgTwv+
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIoYfx0@8Gb(43zwrP0*Wqz*T8~7O@gf?CW0|tgJ1zg#3U}e2RvrkrF#~lY1*WQ
      z*e1Q0rnjImsfm?dw9y)uRE!wY^pd2Pw3BwGo#~HWW*R%4{^(4n(;sc0_nh5j*#$fO
      z(P4JaIp6ud_kEw|dEfW@mbd<O=?Z{#__-T73RV5#q51><VSjzth}3WK$Nc?K|3LG8
      ze>kj%d;^0aHyjGfQZoYf8#8mNg3F8q9@Jwr*)q*$tFJ9-w!@mys8DQ#6E4~Y^{78)
      zM8XPck3xxI`et~QTV2DKj^;>E&xgVs4Q}Kq6tx&(y>)1ySC4l3dqX-6w?qQ|&@O+}
      zkmtmpBevf#6_!trD;ZQ8Rz_B8>am$3a8&Q9*~J)p3G{X&Y{WJx)K<4-^I{Gf^&NUh
      z55ywT9nr|J5!9oNvb5mtg8_X|pqg%!D=e_ql5}5N>P-Q1u|z{D%G{_>SbAe3-KbPp
      zIW<R*)$a)Tjc^i~O}B_xfTdU_c9$!V%UuQVV5K~-Qn<G|jhER?G^Wj(Ia7#I#JNd>
      z6RrZ@)oAddR$+c167DnlhoX8@h#6pn`xUCm=M3!G%!zghStv=~V1h=jnqkR|gew&G
      z>#<g5*08>Hiv`*zpx0?wk6RQL^X)8LNo+M~U~fQ)(0ZGOn^CW@gp2HK;DYH25W`}F
      zDl~^8rk;gR!up_wjiQY+AXAuy*7Qu)Wab?jHsMYMjd|J;=`;rP$PjDJQSFl)%j-=M
      z>?Y}9W}(6zN!A#cof4aa!KiMUjme0q=WKP|C_--0a5oB=`G(1Q4ZCp<Ny<)r3tuoH
      zTv|?V#WD$fn}*G}SD2b2DkC03a7FcjNQ@jTnr#+KDQK7}c&k#x-x!7mAJ)(+EEgJP
      zvrUd3l)ySQv<p1vLs7%>oD7f#n-0bFrlGz*DPm@jLZ=(u3f^q=t&v!_9!nWc!@t|c
      zzgNS3xL=`+xz}!ioQ9rBl0uTDlz85!!H-^QZR+8m!rGamoQ<^_AFIHO2AEulDbvx3
      zE<H28@%d`Dxxt!UVSx_$!~ONXa8N(kHWX{?Yl;kogJv4qK0&K+K*LT@PX~Rn`IgOW
      zn|eq3`k2dXtqjl=(!>3+{Z<y3Lm?U6MqLc?MpIGUPr-)pkQ>9v1}fXult>y5N-^d$
      ziP#9)X(W_~HGCA0D7d3~KxacxsGpg;WIbfjPwIkZOl&=>!L(rU*_2ogYj|9eCvU&s
      z+#HSi54rJ#!osXpu){CAqpbL(hEL&1!t%>>sok2MCVBB`4WE(d3#}Jz7B4dXISof;
      zJZ~^!8nS^DU<99+_WcY&RrfSeA-41pd{M@}MD}D%h7`V{;aRJ*^y>Wv7b+anP>cnV
      z_s<D0ClowMHqttm9WGnCEO|l0SFwO3F!99CiyB@M1a4-sv^p94nugOB^&CrvK7y}n
      z_(pQH#nM&)eM`d`oTa@%>0Qh_K`>+P$?TT}{yClv*yGYB*+nU?zoX%T6xKYto>o$B
      zTvVt`NnyWB^vqPolCD8Z8-?<O`D`8-D^rt+6^O8r>oGm(#sn)iW!o3d@LhmQcum6<
      z$qmggcZS(<BcWkEn1`#x-06=p+A6=@iL1hqSXFXD0T$t!DES6!H6e{vbRDrMGuqN*
      z2ybfmK7PQsXoiuK!*p_{x|R_1BeC`tsj!%y0y&K=%dQ9SNS9$!xMEg>yy>-=R><jT
      zV(aaQ3`GO_Rzpr(i<0|X+8OF*p@hdvM#f`i4*z%>u<m$d<8>b9BOj7gg?y^#Rq^Wd
      zz5?xxHEk}xUDjX=ig>Tt6Rd^cVkR#~Wbr1;JZF2CT!eN$wYq@gVE1uimt~>MdUho&
      zi1iYN!onjf@@^q#JNUfFvibnm$@)rf?Kl>DC*bLxz|!t<RC&j-;v!ai9dT55O}Q)P
      zVxWi1_R_?CJQLiX=C(5Bwi0z%LpMqe4Ez=dw^`3XA@Q${V{II_X0p(m#zJAj7@G$g
      z5+>3qTz!r<b1+3=f7)VaVzC1ousjR4m=h)P>_|Q^h0msQfJg3dnzg)?wMGh(N#Zt+
      z2#LjFZOJIyxnpq7TOY^mnRZP|8cXA=IK@{n?y_W3JT^3CdFW1fDEG$Ed<=yX*h-B)
      zG${^i<M4T>sIUb(L;w%d(IeFRV`&b{Qx40~g6$R!t!T?~xFJDMzD>}MGzT_AkJG_O
      z8bkRB!%9vUTr7I8PZ&wC+>t5vlWFUd3@h14v%=ZU`Vxjc#NTD%-%b2`CcU+Gd_8eI
      zFlBwNRgFg(;nVc+Od5Po3cd#c1g-dXLeKK|Yo?r={@OGAd5)vhQ+wql6jdBYVMXl~
      zPw<qe(Z^`^Pv&oMcp6+|C@FJzYfD{B0OJY&2FHj?mAX6?`%eD*dYR)at=c)ep2ZIC
      zS8j|l!sE=V=TMFlsKE1Bg%?;oC$W}WPXkV23$Jb5a->CUvN}wA3Q0R2M2JWjEe4pi
      z!c#jUyvybK<ru_AShKfq3ygA1nhp2#EW{CxNDo_<ftcA9yTi-xLtP%Z4^GisMv}n2
      z&5g4R>}B?ub6AY?R*+S;u~d-Dn1w=j3Fh$7B0)+R|3BhC{$Gh7XWXwc)=MOQg2Z1Y
      z@vo8iD<u9ZiMvMP-yreVNc@|#5dYZ!NIVZ_nZ&DMvM5`|>5S4AvN!ST6Ql4<V5FP3
      zNBDV)pU>{A7{}Aw$513MDlX^o@eA8?8yqz8Wog)>QWbS^9CtK0#;{<c(_6~X=e@an
      zRqmWjdlCo7u&|bsPx5n$pRqW;*)@jwwc<&h_r>w;F5a9!*QL%e{$}jqAIQmzOv_g|
      zA}#m;wFllNtMBm5yHxrYSc3Pk0>9)|@GG+V9&W{N*yesq3%|oX_&qz&AJB<E(%PT6
      zoxG1;Tt`3tOk3|WZLjk<^cOPrSC;YLSQLM!w|}r0{+Xu6=~RZDPGs0RW?mfQjOs3y
      zxP4c`Gu5kBK{R6@zRN}{J0O2wWT|n2TI3VQg$y<7UdN?TEUdeVOL1Ht#heK&>Mouf
      z$Lo{iolM0VoWkWO%6K`_$}d|f5nyhq^KxEm?V32g*CmRrDRq=O>&EfJjjr4V_cYPU
      zU2(kaXmE>adEQcYO0_(ymU^;16<G?EIxT%loo5K?01opn*<r#I0E#D9m4hPXK$&u)
      zO1a=w`B<Y0_^$!}5?6Ei3%dy0)dIAu66{tB`Rk_~2b2e4RRL2i<*$iK99GLQqE_H3
      zwGv0wDjvpH;91_EP&eU}s^O8f&XQ%XO<ziu3yD5UO7UZEI61hJ>GBi&lrptb0{d<a
      gj##}*`qX2VR8A&BizT0nsC<@aZX*1dh3?(|0QQ@8bN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-sW-5PefyqiOv9{_aJnRSbe2q#{U*P%QPJc;CjQT}cy3Qo;Y^MGyrK;@KZ1
      z&L%-@ErOTbo!PhV&AgqD&(}8qd)P3LArxC)*S-;V!uFJJS4AXRf#_7)!t<niAzkT2
      z%J<IXy@4!Ytq1+{y4JaM3ByOqQ_(TuyjcGxbrQ1B4sVrx(hQ?OI8pLeG+mi$mFokz
      z{Xp}Ux2_1;ihnIl3}Mtl4kn>8NaEkL6LsauMz_<H!KJQ-FkSZ@;a-VA={QYhqqYhO
      zrQRa{u&Yck(#8pU|2Bg#62|8H0b!+AHR&<6hLCT`s39VCCr_({q2g9;6oh#T3s@v%
      zoHk)|fc|f%3@j50J-^V`p#BUKOIWoqgIR)k;dcW^o+|BIp%0u0B*U|-hk<8~>*Lu2
      zGJMKmm{)_N8fSIhC~fb&VB|3d<asq22<$WP02ZGL2@GQx=ZGI*0+URlPg9tVX}PeJ
      l_JDVNmoGhG?j1|dSb5+u15K^9fy0>AN?<81PkD@5{{kM8)c^nh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+int36kUf-85pPZf-RQX3u-M)ZLwOfHD1za(h0F9Dk^VNdMu|-2f{#O{F8ox
      zFTOO<n)qOR_M?pJ3<M$Z_Q0HdHfOE1*WUa4k1t;Vtl_qan85U2&@S$Khh8yI_2MJt
      z%Tm4iX6vBgn=k~jy}zn8F9@U`_TC5#A9}vp6%ZAH_#G9f)?I;>d})Ak0Jqs8(exXx
      zTPc(UjLrJ4v@nEIHcZ$8i}}*;MZ4e*FbRQ_jbX$EMoTJ?kJ|@3viZ#0@uk27O?ZCU
      zYbt&3CXH52g#t5!_4Qlc5HP#-3M>u2`=bwmM57+6mZ}GAg-b`FddC{#Va;nwwkPpg
      z1#Fbg4dn}Ei<O_XF^eqKn$nkEC{4@@q$As$!q)b~w^iBbFq$eXciK#FMT5`VNaKP)
      zE?@XZrz~7V-o%o?>|a}IqktSMR^fI-(uLL254GSW8w<#pSmkj3YqlD6*~TQ+BFnD6
      zU$v3JnuQfyvvD0aDAx{r?i%+f@49*wtf%#MvnusO1jhRZv#QJI&XSJ1D-hFzXJjxo
      zk>EGU+dgBH=a{p+Fl9`}Kf`j2PZ&97E{0KlQxX0iEZpb)0mhhHCl@go#{^FurE!{!
      zI-0~3kvhsSGNR}VmE(-3k?rbk^3?B>&IxAT!+3EVT@4m9Hz4dXQ)0PKNC?;+P*+&!
      z9y6njY!RgiGtNhh93kb9_}mE==|yKg@UMP9FG>4~)mQpxGd)@^8ecoa=x)tL0?+AL
      w3(S*v`3PBONK;ef8&-G}`MYw0^<Ryfh|KR$XqR<M((Lt#&G*D^My1{Q3Hj{Z`v3p{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+fEZv6kVqsI?xUjC^yA|fJi$9DvB2bAr>{(6skgMl&5Jsz>qQ}y%_xnKR_OQ
      z^~DzxD2W<<_oEE!97+LeVkUFW%)YI)*WSPXeESJt21`0T0>fKwHNIoLwc@T*j3?c_
      zYGtibvaQ|aZOe7-f(}ifQw0<(cPpOG?%27C4xhkyBQ19lTaLf9t-O^j*opTQyIw%R
      zmn#&@c3wcd5%4&!KyON=UId(H<bvZml|_Mp$Uh^Z83Ap%n794#B4{9hP62NunrVYT
      zw*eik@~g){8~g&nl;hf~)!nRJT9>RClPcz{LdGgN^1p7>D%(z3U?lY)DM+wIwIbku
      z{4QtjRh*(*)^SB3)aWPO@c1!=t2&0yd(Y%Ga7mK)Ipy@8O-a}V)zPRtg*t6tjzmhC
      zsBUiBrTJ*m&+e`p7{REHh(M%y0?SJ4y7uR|Od#k-3{yHLPYGSDZeSX5fwq#pYjFzh
      zmf}RjA<P&U!%cP{*+@tZG0YmcjXR9sx(E!?o=iqhMs~3(HS^}njH!>j$?MCi-nbYW
      z359OuWyhR{NK)suVzrdBpEz=O{mt7sEd}5%6NPUJJbbtW+;5Lu0p1$z0T?{n`IlA^
      zK+rrwhv_{;ml-=m=&MTT<=M>yV2<Z33*1Ks=Fvw>9}}5|ehl!IU$Q(&$}!S+nKlVE
      zs9>JaB53I`574zwv;%}{2%8!K|HfJ(;fKUYAcRK>OOj=79gB;JQCcMZyS$~ZUDo{w
      z-TN7u_JsxyBzd25K0Q~Yy-{Qg*P3X4AZ6L^lv%_0J_6q{@%jkSU$Gj@AFV5r^<)h<
      z7Q>$qh)sIKHQag?K7$(~b6|z%D)o3y*cTYa8h2%#E0R$(%oBiyZd2^x9%=T`GDm$q
      P%#a!{r~y7utt=h`crEFk
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{f%}T>S6ot>tPopult-29kKt&vMTM?wT5QxpfG+UX(p-zbt$dB*kN^s!=_)y|a
      zP;les%sqGJ-ucew*ZT*63mkZ`2#0Iaij91c!st>g!+2Jjx{;=-JvfAMe^p4c7IC&w
      zc|#c8&KEbUD0xW2yLr4y2ow^AzjLW9T4nPOmxRHUHoCbc*vBU+!I_nh%7=|%fNl7^
      zD$+(R+viMGiOdQ`*o(?s7OAXs=YN_`^Q3FSQS>kCl;Gc&ZI!Eq?$%8H208CCaA3w@
      yERGBp13o==7Ph#e4u^GzJEHf1d-{gpwSTh9+6@3_7_kO@?P81xJBDVpu>TFxgh+1y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TT22#6#m9*+Lo6}%PvSzc!`!CONqb=B(cEop|{ZnozmUVwck~c1U>Wv`ccuD
      zb*oh~7G}@P`7UR^-H*?=cK`?248p^()iMV99e?DyAx*tnzC7g?Z}oV$W;XAI6@-r=
      zIqC~bA8#`FWcQ)Nuv__6A=FieOJf{bCR~9b*lcsd5JcH_QONikT^jWrc%Uc^X&p0M
      zWL)rn99*awqS-o4T{3S)7+x%B2w{;SovF;YqCH5q9s)yDgC7A^#We&m#}KJVLsSRd
      zhUi`MMn_PmVm5iF&U;erokO41mVGiAA8smYiYL_)){O8NGMTJP;hzu~!ldIQ$*@Db
      zpAYQh-=7Se%)>Qv&})iwsV<V38gE}|&~L*iH^4&=rD0c;1--r02_a1DJne3%uW->^
      z{uNp-KSU(AH$?2&W-QSfhmY1nQaK`40TC3jOeg6P4=YH}judPkW>?C|gBX%nb$oPs
      stDZmig2)pU9w_mEeRyIEY9oLn7{eM;bfSiIlVg+Qvp>iT>$b(l7XkpnCIA2c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TT|0e5dO9l0wF-<qC&Y8K}=hv;#~_UR?s@-GE=ATA)G0ZHtD1(BmOF#(dzi%
      zqYwTl$300}TId6lnRDI!_S<jw<nO;<zX7b_t%3+)wrn>tAB|HZV_QyUFTY<D?x}E#
      zj(H+H1yRCOa4Wn_=M_OQj}6-v6~aoP3#8L57ue*hwMv#Sux{Cww@FCqS93|02<rAH
      zQ`9`mvFi$k2@^gaCY#@H-w>iX=SZmN!>9%YV}w3ESsDW2nudN15XK6YE%qAKL*aff
      z4l9B%UT{pKQZigi?!&{VcWl)O^WFR|=)$RtmxXswF)TY!N+w81=*bR0R_uZW`>E^~
      ziXvr57TVf}a@M<K4o#(YhACy>{M$~lBz~Q;D(0}DV4e{3@hXO0&J@q;o~UX_U@_oZ
      z6lTM<yt7@yHp;>!%(b8b`|fK7B`j%J#%+Sew0*e_9G5w;xOo+KkW`=(raNMGV`xYr
      zO&B(hg?Uo2n2*h+((}oZihIZ?SS2i9rFk^m#~NX<<~pa=k>s9gahHAD)~;T&Sig!e
      zJ;yx=Z8?#Lc&y+Ncj{%edwFPhf~VX%PECaMZI^7RXV{<&tzxNoj;w+ggoVrTx=b~!
      zBhIz0`(>1ZZ)$jnSKKESchpu`@<}~xlk<wpml3H~3Gv{nX9Wo(0dkxEVy}MlgSW_Y
      z=%UkbO|fIiM>2V#^;cy^{P*A<;J*lSkgtnZQT`MR@_xwQF$^?b?eIy2XEpT$BdPRv
      z#J=(_f^i;4eT*!7uCvz$Civ`nV2w#k@s9m`d?MnT8@wmn#59i*JHs>a+@Jb}*cV;|
      zumk>K&WF<igAk4|gE(7tQ~b;)G8z3RW((;*7*3~}xYfjpgl*z(6AyM%JU(k;Lr&+B
      vX8hFOaRPZx{XJqRF#ax<u;)il1h`@JC_kkwyk<smj39?M9G9@|^WOOnyG>(L
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%U2oGs5S$BXOpNO!riAiU0tJ*f2#ZH(g+Nt{0#RG3C=a~3=F}dfc9l4Yp9K;H
      zi3ffFKMFB-wo*4TvgEtlot>SXyFY(_{RZ$9k1SLK+DGv$_!xc;gIFcO?qKgAi9X5H
      zLRFxV#bp{~L4m3|IUNhE4bQ8X-5-Z4&L9KkHw3KcIE-USXr};WgABEmWpi+CQ^hKM
      zA@HhO0GIF<vZYkLk$}DZC6cG9O5&-7Wr3?^2Eqq>^9<+MN<K&%m(X-jM@wL}J6ssn
      zi0h5&Acun`)b#F}0}Gew%uvO0cXo0pC-1_;u@vxzNfeGp;Y8_k9;~LvYD)5p!sjN_
      zDDOz73--~oZm&>LVg$#W$~1RTV7=(uf1Ixyf5czNe{SB7<P6Svra!U_#~xjn4N
      zuXcLzE;);Rkjy5L+)>&OcRuA4Z7koLpxr=)AI&s7TFJG_uMV5>E9NBNz~$~eBf6sL
      z_kW_{_s`(@kI%63jj;;a{Clhfo{{f4>o?HACayEm$?C9*8$6N0bQET%dsfiWLsF6M
      z6L8hJCI36TuiRwhH4}Vk2%QX&6E<-hcNo#dZ-}mNb^ZPitZ9kVS&--&DcfwigJrxn
      hZ0)RKF3;6(ihM2H$9m3N6t%J_>TQWAfd@wV!+(gU(!~G(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+fEZv6kVq+9Vi0@3Rn~oL7<%q6~zk{(6qs%rlC;~qC8E@p$sWgGM#$)1Ajq&
      zz!zUkpd@Pa-H$S^Gn85`iJ8o~?CaWVo!@`H{RA+JCmMVLqb0kR+%?~tN!zL<^EG$B
      z=B~PqH1{$)rftizhJZki7g09tQZirIl|@%WP++2&S3HTWCN~_*H49~#{@}_+0fAt#
      zT&c<}0r5t_U#YnQgE=qvT+0+=7cARymjs4lmxsjH1p=AMmJGp<u#QgjuxKp4-T{F=
      z9U9uzsb5D2LIUBOWy_V?UO_r*3K(N@m7-Z*Hyume8^(aUV^syla{r@)5Zk<Q1VYR2
      zi*nz!Dt1-Fut4N=q-?(F31I}I8g3BKskfD59YYF!(5mM5rR~i@irU_hMIwzhC{W5M
      zLesVFZRw=q*$@Yu)NvDI8e#&mi#lXH#v2N>pqWBAgaoEF+&%?-wz`fPBn3Jgxo1)d
      zyX1jl#{_0|+{HcKOOgr>#WvIN6N%1NNU53c>lnuaj-sNdn7`^21qLpSr?;$z7g;h<
      z@MaY7ZKlcaYNh5B<ugm^7HuW2G1-iooNt*W__x8wj}L(F+o$B`9-zGwI@d1V@?HcG
      zHjdG4_>a(QB#sdI>Lm<t?PCHk&vlLkQs~A425A{&BGYgMQSR!b$`i8^kiM(5saDs#
      zHqU7hwDcQ?=sjS!LqzJhZUorye6ObjoMxX4B3Sl%DX`3K^b$&DS`_?;+?B6O)%^s`
      z{~3Y67aDv};Deqs+ft;fS!5iyF2MXqiyAj()G={@&hMCdeT?|8L><QB@Q?PD#B?2Z
      zHWYdu=7#@u8X;(4g=?Nvydc<@BxaSuuVE6eJOsu`?IvY0!hb}B{ru+fn7yN<E=7Ws
      Kc8lH=OMe0P8|mi&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6&u<e)6#m9>;&`(pkRK*LoHjrxUOUC5rO@K=BQ^<aFbPsBOHftS#vVIUHoNZb
      zI)qDmX)l~wsCvn<9NR-BNDxTj-ao41&Dd;WCy~%fyF2sV``-87_h$b4|Mf0_3%DCY
      zgyC$>X=Hz}Hms~8-0VG3=jM9do?a2o!@`>7INX-&7@`cPL$`9%;w%6Cz6^243d9Eg
      zzFJ{mCPQ>%y}ZUST5QWxy4wQJG4#v|M+DaxW>Uq28T`7)u5g=|1J}Ffxf`Owy_{*3
      z2)W=^xP~qq(-B8ML*|3yjZz#8$8~h0N5de7V;Evc98OWk2oel>jRzrZhPhOGMMrfm
      zXSDl;5IIR<R7VWG3<E{s@TJE3D)+vzR&CBOSai#lU9vnO*R9QHuqJ$lbM25vrlu18
      zj@B`JaFZCu1xa79U7t4<kW5;-F?6M*2-^H+nb!m1I(`gi7>1OBG)d-iXo=x0Rj3TM
      z<<zqCp67bKI7gdHZZIX2@OAD4yrN+mhEy}nFw!EbLRJD#IJKP2IHE|oPF2(z9?#ou
      z`5~ET98wRAk`(j2jx1&v`g|VjnR{15PxgSJ`;jLCYV+v6cH|!iJm08RX}}CqB7Ldj
      zb9_OiR{Vex?@i}EPlmD7w})DcMTv1mM-H<L{VL%tD_G;Q6o!c-!c5axq-uPxOiCvX
      zhmPR}!<oH~nofmpE;oYZYTj))6+djfhU>`7hECBrbE{Qq36*1WhuTB)yrj<R!cC<n
      z9ae3{ZFptAAmjuddp}p_Wg<ENCfx>J!M1##lh}8tBW(xfy*tU;aeL5ZLmBAOiO@qw
      zPW{o`(>F$zI5c|q(ds+0OTVFXW(RsY`4R)^^edcriIe}TpfP$6B1-Q%0sTmU9<6<h
      z)6P^g6cb3&ia;=lj|f=)$)phs<74uQ;1ume$#PmHy-0D=OM8Rq`-7kCAoZ435y)IU
      z%Cf2O^`=(~e;66e9Kf2Roe0In(=TvxVjG|C(bkmVC#w2q1(#?#hIHfjO!eu6oH??!
      zle|hhA#i3J7ys_y_{$NXmvEVQOVF<lfZm`kNKjp}&2(jUxAFBq9k@^S;p!n-9anLU
      za4!(<>;c?g30G=lB)2e<%<TS!fypiOO=fnJmFMVtgX{NqF!xqvO-{BY9aq!w8-@Q)
      z;yy(`o*{uhNXS1Gk#rL{Bx1CPP%;#h$nx(d{dG~%^H?B~a<a1Yl_Gaj(t*z2Z7Jxc
      XzTGY82yUrP+=fYCIiL)SC}Qj#edCHo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBrXn7(F)xLc$gVO3F*9Xwha9Y^+vo8`{#Opo=MV#K{a)r?VtCVRhMMb~jA@
      z0se}9)Q|eX84He`q2K*cj^}RDg(To~c4l|)eV*r>^Ss>q&%b}40Jw?A3B&}hH=S1D
      z2lLP@IF?&@VjW0h|G-|{a$8<amiJ7@k+#}NATF>NIo8@1KaA-17Dzf~U>(Y5jk<s^
      z1mcJLwLO99N*7o4aR<IAFtltrR&ZZnDO>61@DHrQmb7IpaJ?s<duY|AS2Xl0k;`sf
      zrZ9j@8j=_l$iH>GUQI&a9SwsRN?`(*6POf8pD$6v6w(4(QwEW2fpWGxql>Fo)Vn<+
      zkfIVXts#M7fw79^$c@(iuJpb&cWo&!QE_XgT{S&Rtvj3XV9)XedLaLYoN4+!<r8@8
      zLJ7=T9DuUz`m)^xrKQt5fq|@QL~8YUO&$c6>-Y&=6POIU$cZvGBTE7wFvrkfn@+Q^
      z>Upj=jO*OoaDxR!BKM^e$a)Hk&{aos0#hBKVaQhCSx&R47^gx}uG6rZEl-wgxAr4V
      z9Et3XUR4dfp`m~!fe~K@r{>|^$W!dl+mj}zboxv+N<Rg%)M_+1W4fV$KGX0CK4qr9
      zS0nG~fS&Obn8`jp*P^d0jJq0&SQZ#nd|Nd$2&BqHVD5r2!_e0$kCbe6`h4gFRs^n{
      z7SwR+^7&>f*ld*CmQ(km%BS!EB~{M_9yPboU`3dYEge>eBfSwG*R@AsGkIQ9?bE+z
      zsS&*NX0UE3BAx+*SAtizP2ZR7_1COO*O__aE->DAiSX7T2XCJkAD+ALkE73Tf|evw
      ze2;MTJ?+YGGM7Jwmdm`vST6S$#$V#fA7Ri8-xG-QeVagc7<iZKB4)X>&<@2MGF%Y^
      z^SDZ2^`}T<xQut{6~lYni_`LcNP3HL$}9B>i`x?)9wYmjs~8m5P-s~R@wK*B2S1KH
      zmin+Bawo>PWbRK~nLENqr?OL_VU1aT8N#L8j*;9XJ`U?NuBMK*Zjtx669MOsaO<}o
      zjg<>PKgSo;tw3-0fv&I$3RF{S^8@*lBi#AD2ltyZxLPDu!#&(5?oHw@_u>9bT-75z
      z^8!<u{K+pEn}30k`TR+y{wqda;lcJX9=;A)GxJ@fv*C1XGkk~5eTq?hhcxHnDxQTx
      za&6#9h~5!GGL*w6tG`G58(`9_SffZaSp|MolLtvU)?2%J2;J`QU<W$JHmNE23I@Mw
      KKn2!O!OVYUbc$>M
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95IvKd8{;-@N>j?U(6r43uy_vQfrv_x0#r(scQ;+p1=o)3q~eEw2VRPV
      z1mb}Y;G+=7+q6p31c5B=&d$s^yJu$n>-UeJ0G{BHg_L0JO)zxddZ(Tn=+NEQebqYY
      z`xY{S(xtn1>;-}HV-pu-Vja8_?6zlO%N<6W=ZJ)>A;`tyFzP8mbsogTr$A42pa;(c
      z^-BBdOX9wEJIYtRK^W~v;i*1SQKQ-w*e~AqRDYnuAhxh5ST$H`YrVdVP(m|2QZ~|9
      zc96%4AYG|;ZLDI=!gYcslyzSwb#YL_I+4k%1kWq8r8NHMt%bG@)T`mip^6T?L!SjI
      zw!@z1cfCj_=aDlrIM%UXea?-7h5o1lf`6`+V5d@@@z_M_cnceO2sRyLkt6$GAmc4G
      zpe+X$7TA%F3GL}b;Nr!IJx=-}a9W(KsOfugtk|#$$7-VX7wP45lCcpHtX%O~s0+5|
      z5KNAxpfEM4*rd`l|BVzs$~6`ha8EOmhfV)Ao-#Z+SfaIOasj*c4TW0$JBnWn>IT;(
      z!}WpLABp{h4f;yVXEtu)7Wc%ujXPu$-glR4!s(hbkga{iy)!yeNa%8O1D_3zW9;mR
      kMp)+iGr$j~!DlnTDU{6>+t}e=<Yl|0sxq_2{UJ8~0PP_K+5i9m
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Sx*yD6#i~0EtHX^mMS1pC`&1ox)C*~iB?FEf)9{Je9#QT4GbA(n(36to4><9
      z;0q6$uq2vD0&o5(<9BCDX;=&oz3VyOa?b7i`TO%XfCre0A|%kiZddc0`nI08O((x3
      zEopeBW6#T-xvjDlMOYwPzcw~>+m==(Un!gUSF07z)eWyPN1(-(`r6LBaz#MQ3ACBE
      zCtX?b{FAUrOo6`QC8Un42&V-?#)iO1@giwJq_0}C5a?iV<hf~^-b;Z(=2{v5VID6D
      zgbU7^jG+mg8Z>kXG-bw1tq{1WA%-@!>ekSLR)LP9Y0Jgx)~a-ul_r6B(J^$Zq`Rit
      z*ABzphRIqCTt<9WXF7@2iYqXd8NZenU)@}cn(k^CK#CY<rKDTtnt$^liXnnstYbm9
      z4QW|&jZL2UY{;@|cnpK+RQ^UZG$SIA&dgmcBT!D&O-{KI!#F0Q$O`ma*;frY+!N3$
      z{sZ%=S(UC+r&Z6i`1rhOr68{%suZ*Y!H!FVr-AB`)?Z=pARL!E+SaAFsC(wNoP8q@
      zTXL$dA!kk1mhK?ztk{#PB;i3aHSv!SMo1avDx_#R$5n$lcdC|iZegT`8ywrYTVb5a
      z>&PDRH?fa+Hn)$&4<3b(<QOL;Fval+VV*MS8E)|;6{O)ddblHi4=?<cA`FqB7kxFF
      zJZE*+oZUnGI~M_X#6NuD18PA)4RDYy?(jruob|zgMD_svU(xmpgDZzf9}#PKw~p2B
      z3wll01&Wzzz)Un?j@B?s#0)Vvc^<QGAH&%*g@OIIM4cz<0uosCk&{7o-F^~dthO>4
      zt?S;Zaiq_4>>+W0%u4Z?4kjl~b|+4b7}}#=Jtd_u<j+Bgk}L$UMA&5tC^70iZ%YmK
      z(lrr^`qbVR;;FV~uAp8x&eG^)?&KRHxsxLrR{SZXnUltdKL`B1{v-NG>`&y^8D-!u
      v=TXRpLS*WN$kYpQpI_ymfsNfyoYgky{$_)f<^YCY>4&T$nEr@k2#@~(?cXJ+
      
      literal 0
      HcmV?d00001
      
      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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
      E03xfSrT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizU2oGc6oy}~S+j=1KFT&)U|ZL2G##ws;|3Lh&=}IR3Wka%ap`8(W=NCBNh^L9
      zTp@wP58y{3j+?b=(x}|TK0dFX_xQyA^Y`a(0FQBKVu7K0=?z++`H;6f>9@MV6;9-<
      zGvyEEg-|E`z%^ko>`x@l756;hhOID=GkS*n3+c(|B}1-ZpEDRo{)MoRL!pR8<QbMb
      z(i86n{hm-CdCwILYaQR=?m1Ud$JdKSbR|QETIavzwHZo&AiOs`;+Kl|kK+0m_8N9)
      zw(69Oc3a0^9T7y*_d*kEL>q0QW}LjAWK7&<*h$oq0_jd!C}BgNbCcnqkzt<IvbJv1
      zl0Lzi45%HI%(8W^ZQ?G&dZG%w9$Qzi!BEtk@lRxEX0mh@uX|ynxD$=F#NJ^jC)nd$
      z%-`1h&6ux-LUn!Ti-;!Owll4|Vn#|%dkpoI(~K-Ot!vZOk!jMdmTfmJBBLh5R?=u%
      z5L?*V!s_}1<%qXZU&!+K;M1?*P~QqvK^L1|50IxBU1<866g{Pp(YV<Bfu-*>S%5`f
      zi$>rH3_QaPniXRajW;P`xP@g>tkB$`X!RPE8>tGvQ2Io;^>37paoP=dK7}ewP<K$C
      zhpK4Qy)^1oCh9)6=ApJVs+vX}XQFmdn}@1v)P5Runu&UV#ypg*Q3q+%hfLJNQAZ#B
      E1Gc6fh5!Hn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yg1EK6kUfT1j6MN3W89j1vLpmihWr^vGTIP7-&IWw$(fi@oKm?lU$HG9s4`%
      zAMlGG=u8bWb*A)le^jUIoO_Llp`A`<a?jmo-*whrd!7B)-@pF>U>b!WS_H-m)<OJH
      z<}eetOgp|V%ZIYOZs#6LXW?PSvScy2Un&OS7r0c*%DFq0v(g2ON*##6g;c`{>Evqt
      zAqj!@oXvA`j?4>)U4hnF(=weofr&_}`N&Gi<grEO+vT;geQ4%oIT76y2rV7uWXUmY
      zs}e+~K%f4WH6>STI|BX%J1;}<p~pZwLP3NDM*fRn2)%eu<@O6iBaOAx7gDDd>9j-O
      zoPhvZLtG6RIFDh0URJti77ogCzDS8ps~`}G>_*Qh(=9QRElLlVLUpH1OQsL@v$DLQ
      zb_BvHJC`YLX3C~|_kw=sp;-~Q{QtNLw3R#=N#+bDX9_ORQIJkL<CuqXc~QU@i6)g&
      zmkeCS6%ym_S}|i<u9cLB1V$s#I!@Awzmt&&A&QA0Vht^6&NJ{K#^{?p)5;Xhr?RZi
      z*P6!-1kt86pEhs}lLCQU(XPlKK6&GaV#X@O>l|_3B)J8Z)TFtpXj-6OXEe9Y&(>|K
      zoEZZN%xdR5>-L7ZFYN<|UW+7^G261WX18W?%A*2fl%m<&4fl>}2;4L<j|JWdv$9%}
      zmM(NRh$XhF`Ey-F-t$YX!Vng5OBr}lQB4|HQGh|SGH)MP`5;oXN;6j4c6OwrQ|gdz
      z<CbEzYG6%ko0SFAQeFGjz&fr|s)}@ymPdh%%XEm%j9%O|FbAs9SF4<jbqh`eu`Mvr
      zbPM$q3SkSo2JYbouQ*-hVJjNn8~8yT>XWLD2Lcz}I%>dPCu#-gS;KBiJ!@Jk`T&8!
      zI#+UDs0pQac;$u~*w)Q8?uFLvgK|zTo9ZTx{L3tuQj|Ds$&y32g+I;&y`oR~<YZNI
      zi17}-`I%>+i>qy}TlgG|O`M=R_8PrAu@m&Y!a&Sl#o*Sj+-t!I|HI4#W{8`h%(FO$
      zFY!Jj1Mc^@fQx)15=QX>@rAlQ{8y)Zs^5W**l!r9V!VpTONL$GR&D|}HJG8-9Uhp#
      zRZMyiX%C`@5L3^IRK-Ux;3q+vj74?f;|8M3jIJ=6LN`sMh`QK49=4yPCiz9995)zI
      zY&v7USD13ye)d*_F0JkcHMmQ-%{ti58tmt|-UPeCh*CMM5Qm>5=zD=c&$TMPc#Exi
      z1ME`Udv&^oYr2N1cbgVr4vJ<2aWT$FfZso(E?@nEj@MY+Il=O&Tf)~ma+{Gmr@mRH
      zq}}*9d;E>N-1rk)cl@(gtJs<Gd%HfhJ6y$gL;mBfcVpuC4M;6*@|60FVTrD~ub+>}
      zXd63FPq*2d=;!)AoAZE;$zljOx<xYE#1%Z^EVWpt%?eAzIb!R6q}C;(l!<eMJl{<?
      zM0|oG-=FaPCp^`Pjq2_^^AsDSjv1|((k;t#RBN+Da6K8<S^@!8*l~@Z>&Bn!S{v{H
      K1!<}>_Wl7j9Qft{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O-sW-5Qg8WZBx_uRX^+ZL7}b1prDtEAeBO~=%Lbk8W+176G_s7|H+FW3LeC>
      zKT4cUgF-Eem))7!*=J^F-}jG~R{%R$(~uyPFWs(rW%Vr6m7duYeoy#K&%PF6wPU%i
      zaGJsqb|^jfMBHge5>^Iod>_|uZXH7UK)NzKB%Bo*Utqfr3(VkFnn&#*^esE=qph|h
      z;#!r)5Vq$lZl%~FB&*(q&@qBh11ac)>aY_3#!fV(D^9yNZQ-A*ZV0)CXIoCo@}=_Q
      zU^48;fUrH-<gX*E5VZL5gq?p6gpdiM5Ab}#(qLsZ`glBq?4<}#tx)zv?U*o9DAq?o
      zm@_bs1wz8^5H^R@|2ZuUi-e7VpZM`e^(i{?ST-<?8G_#Qy1p%HQq6DU4<T(UVXy|d
      zPu3!kU@L_*uNr%Gj;gp;+A2RI^AIIudDS^lNjHsM7;LTg(=di{_V@xOFv$>QO(7Ry
      oxw#m-$GbYqmL4(thWrzj?%7R1p;c{QKf)UQv>3~ZkFr)j0o4TD0{{R3
      
      literal 0
      HcmV?d00001
      
      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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
      X60rY$2>8}<3Ha9;1bkc7?VbMt9Up*~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@-%ry}6vw}3jCGVc5OjjTm_NX7BR2S;CN(BzhGelB#2MbZa>K5cmb4v-|C28!
      zW+pxup8cbY=e7-QbC~dQd+$Bxe7>jWocrtdkDmbcv8SOx*gXw~)<^fkwE`Jhz0mt4
      zlJ>w20^#?BFT6yC!8`F;Ly@pG={siboSplG(kmIr<Tc^YbgqzI28*ruTv~7XaT2*+
      zlA+zcFLEv0nZXVt#kCv9gkn295jy6uU|=3Pp*>6D#@HoC2BJGW>x<}v%7(Dwgr4gk
      zyOC7q{IZw~WK1xplDw{1HbKjOo3MZ5QV_~<TH7!pY)on9hO{t*#Z!@V-9%o9gSUh^
      zv(Z@qp=#hB)(8b}K-ig~|8Jc%+$Yo~docccN>9f+HVtf{#;uN1D`C}a<N_ke$H&%C
      z=OiXz-Ogb)TROJ!(7+=+=2~<1N4_hA%#;mLoq>Nt89L=*>)3^<;R#{$e|`p5afh%r
      z2IB$0%7c5P_rhW1i36$nUb}YmpQ=&j_rmq%cLNl7H;)pp8lO6RtM0XCYwtVCUsH!g
      zUUha<&#Z)JFnCwb+;9sOK5+n+u*?v(yN#6;%Ngg`_xx4y)#f+cy~O$m8<*I2S|dCd
      lVdo253Q#JQl=_0H&w2kcRjOu@xl#pXZdrqQgk~Do`U6{e55xcf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy%TB^T6o&r;NVU`(-tVXzF2=@%3&pSyV`3!6h;d)*L`F+%ppf`ZZcG#t7e0Uw
      zWjxaog__`^r*r1~^Ua)p=JV_Q1HcY8HN*({TeoH2S#8U7rDs+>`(F6vn&rB}sR~Ef
      zzVzHv@pw{ya5N+cEB*S2gb=f9giNJh)k{^RA|ZJoUFnwyrR;y=NIlrnYXqF!6(Ldf
      zZiJ3FQU){_gmSj>(~upu(lo<ntZPSfyDJXFj({*`U<gUVctyJ6tX01jjY|a}q${3n
      zIagLgs=Pay@N2S3*ots_dyhKGJ|rajL0F2c>TQycx)uJJ<;%7>J|e`kxf31pSk$mU
      zSRHJ&fh8>SiJ5TjSket|SeeJyl+E>QD||DeDC$^6M#CCm`FEGUIs-G9CFoVJ)v(2}
      zR2FRvd`jEug0Rje$N4Q1f9y2J7>_j!a~$F9f~%@-<O^GG(DQ{?j6MgdagJj_ZI9RO
      zBZVR+crFv_F^M#1yfWY_zJV!B2Yfzjm%qz@RZHbxFxtUf2P;pU#-Q-YpmZ2ujZoIb
      K5+7WtHogI2*4CT=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZF3V<6n<_Snh=%(tyHjWi~^DuZNwJ@QwpRdxEh*jFxn!@CfTG*mrW<TLHy#M
      z(D4`e!4Ep4Guk>bRzLfr9G`nPllR4TW^;GXJ@+}!dG0x9`p>_A900h4N*EIYa}B4R
      zd1yQ~GLF^El<%x=8;)bzVT1%uD!XksjZCrf(5!j_6ZM*a&;=sPRoikbZ$)4-kt_>@
      zR+}|53V~x9G(-f#a$8?>1x^$!$6Rkes+g_2M#VM-W(v)!VV8}TCBHkyspSq}D4{3I
      zQA}b+!wE!=67)F@M=-@G-nK==GllWAvjSSf^tx#XTuJn~nqFqZHY}&qtnQee{%F_E
      zCi}Mg1;|G60v5uU7g*@U8U@g>h!~S*)OEwN9-H|!rHC%2h)ez_1*TjTP$1S9Z4`^_
      zSNrLb&xW;YN}lIS&33D5c5dhYm|u|0UlF+2WByDm#Zcl44C(QV_yRWr$y(0NA*rS%
      z)mH^B1W+ABVgb0cFta`(2T~jKr=r6otA2sInY?8mR?kb4<Qu~zgOEtFPV5nqLH;Cp
      z%r(87%_6a!hQN`8zNK0!!9~{5RSj?BGMlc_^$}YP(=rXV<Jp8>=yq`KE6>ce>vgl0
      zO|ng+x1LnZUC(MdZWuQNW|boq(~I35wo@ViKn7pcu#9Ug>YB>|aC)q#z_jF2sv4eW
      zwp0=e3H{z!UtLeWFEF17-VK8e=X%3OcWUO7V%sa$bIrC>bGytVC<rVz>vhT(PseT3
      zX?WZ5l{lHYOa50BI@V<y7RkMnrkZFaPx8$A0)MC>kK0sKp5#y*&y8*3$Ks2R&b#`u
      zWqE4ueX60XbaGo&>Y?nn4R2fN5y59;nbNn%RN!+BTZ)IY^Y;9%mz7Gy?o?Zn(%>cD
      z%_Ju|r>UHcd^?2*!h8gd@+-kd{)K)=^cSuZIL_ZFSKvNRUd6Ps${kLr&Z#`Vq(?Nh
      zk5j4n-!R)dJFVhfLkQOy;f6Xt=X>Kc=6FitOD>YZ^ElJNyv%cgd)iZo&D0*w?&HOu
      z`Ry~3-oTnd(|kYX_A+e}<6Hp7`7s#!0LDe7fW$}!U@*lI9_s@buVJafBNKq}`WTGT
      z0LGhmi<cy12NO%K?{u(o)Wz32^($uQ_i&}BwSP}L)WB9~qdLEftb~=#NxT(ehqzwn
      zvy7X>?O9|stPI3T?;-ait^GIfbwHdo+){DaAVYETcyA<*!}|{rIkvF)Abs#Xjz5LI
      zIrG6j?);UKS*8~j_ptF(H@06>->_=GWgUN~IHY`pZcWAT5lW0rRNQ5CNzG#Tm~WFb
      zvgw9+l@F8uC&T&w5Rm_7Cx15PP@Jtp=YMZ7|NF!F|H=FhnE&4a`F|0Ze^manMLh%_
      I@OJ{nfBT{ZL;wH)
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5Bhyi)zF#Ii*Fyv%(4Fkk14#Js%J9RKpX)FO5U7DfgE
      zuw+hRUb?=2QdVkm2_pkfdTI$=B_o5BhNcg8Q>+;oxPtRbi;`2_GILTH8HC}wz~<|L
      djAmnCU}Rthx(G-Etz%^X3IIjefg}?H2LPI<Ed~Gp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%TB^T6g^Wa#e#w$|9~zWb&GMK(S)Q538wpLnZS@T(@b09Z@DsY;RpCp#yiE3
      zn7Fvlb7$^3_v`!P6TlUQ0X&AmQdfK}wt{PAc>FX|xeVYl^y+3N^pa1LwM<Kf=8e*-
      zyk%&N&SD1t-YjH@1`azoK$D>xDJ`F?O(N}!NHWRLk4!4ESXkxi-=<%#RKYNe{#iYy
      zZ`~4xyU}0V5u0rCY#i;`rYoVf%nDxQiqB<6B#oU}vsDXe$Btt7@S4iJR7Mv8`lPmg
      zOF}2pJwj7+Q`uBLDo44!yTOH<#3e{9T?_EYNF>z(Wt<{&o%46J-fB1`?_l5>ZStMn
      Y0L3GKwQ!6sb$W#O6i>(olzTY+0lvRnS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG5Pg%TO^wymRuTW8RWNu~yof?1+CwE5Pn)>ZEio%;BL0>q!Gj;*M~N>{
      z^d!s7o0<1u-t5Qc+dF_G?09elyNjX@m+DD{g|T6BHP^Y$DqDJR1;dueRj~+X>5_9n
      z@5B_QIu&##(?sB&**oo{gS7#==m~<@6#BY;NOgIm(p(EhvCUMTsM0k3&(N*z%}THr
      z|Fiy>n^vtAfj_y8ns+&k*qlFS`mr*$Sa}!;#;rwKk7mCNRdZXHnZ7WMf#C0|!$!^9
      zX`g=pIIL)!*<%+Hh1lJHMgOIxeddM+4zSKV_!ba10O?~B0VhK;E^&)7X6<163zxS{
      Aga7~l
      
      literal 0
      HcmV?d00001
      
      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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
      N?IWeCWp|fa`M)(rQ^^1T
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT|0O6#h01gvLlq5k%xB0;VleR0Oq%+CsJ1ff>{?%2Q|;h?Jz0w2Y23{t%vg
      z^A#DaGd}q2_@5NdhL&c=OCNT-**)icmp$7bzrKD0a05>jNDTV6RZYA$_Kk#P+KIxB
      z;kdk#NWHD_^yzwRkr(VDcNEAB!+%89qv}Bn?IqjZt(F<2jWm7Do0eHwU>MhPt$>oz
      zJcFDjEENHq)1W{jL_PN}%w#4L&8z4{SV4$kq!oaME<_kQw|OP!k$i4!mN;SR(T#Kv
      z3>P%Cp`9U=GcCSS-P`0&JtUH|3q~n#IHpKx<W+V|mm$_tS;N94xl*8v(Uut$sTMuo
      zi7A=6>~lffO{%)J#hql+8gUKv&1iGCah<|cXN|knQYEQk2qOxH8M@DmZI;w<1)~fB
      z@`z?Vno==_2?gW+@FtjsYtR|A9m8GYdj?&$we97-5->3haZECFlx^3nn6~8|WyR5y
      zI7*P^de+Cct{_O=c}u}fhJiDRf03eL2DhpDYJO=glUrS982Z2T0C4hC2)d);F76SV
      za+PHE>1iK_rZ~^42|?z*h6Mo?e6h0Fz>-Xo)6)cOdPtWSutj0tsjn&n+oX}AQJ_Ju
      zM15vgodVC8q8r1$w>Kr^lf7BX;!e6`xGtymQR<Hk)6}!1iDpSOF0CXQ3OZ;fNUI!V
      zZzmj!YuXp6v3L#VKcoAT7uiE|r<Y%(9F7pS&`W#0r#ZNYKKcT}xP*SHDC05)>XnZv
      zuZ_-9A2CNo2Nx!5xO#v{oIav*v4-pGN0>g09iw}&3n%YqUe3yq*$)Uz_Q*BNty5U?
      z;N<%e<`1cg1i@v(<Gf3i_eepR_&9{?QnT!n(l?mHF5SXAkK@cK`WeR*9^fHyBSv^c
      iL!t@^q_IfV;?S^!jOWE;5A6xE^s7=l{TpBz{l5WG?KZFg
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}e^6#h2ZG$dW1g#-~un*z1@fut>n*g$Lvq*4PY&|pC=OS*+<*kFD*`rdJT
      z(6Nr=Xfxvjj5C=!JRnnJaTLeV2gm=x>6`zB;&*ogi31J~yL<1+Ip_P%ch0@}<DVaP
      z0bD}T4vPfevR(+irM|0%^i(F4Tv4+*Egu?rKd(j2b@!N_%-qqkcE}RW9`dYsRh%T8
      zNM|x{7uF<L7Dl)mO6jS5M8bJr{5YVnKOsSm63YoIPAafNA)+t-f0*G|%%5<g0jKO}
      zl;AxMK*4D=NoZKs@^ORYth$uei0Sh$M6JNy-wsG{E3n~&gvNME*Cq?AOIo(#*A&kr
      z)pSD5rbOI+aDF9~lMpzzynP+RlqSiD&SN9!shDcs&YMgv3sDKyRrNgy(m0<KpQHpw
      zQq|1{h+?Atd79}cE%9L!+A9*KRed=m`Zc4yQ_%FJ7WU7dgdagW0uovbnGg9W=)tpW
      zq?n9rd69qIA9Yfvkb+KhiTFzjE~8JhUelNJD`e>NlU=LXxI-CPmXql0GrPb+xlz+$
      z!EU5*_pX)=SKBUzv10UBt%8skRWUHxX)RYs=fh46;))$FNN7G7nrcb~VGNNS`)_b$
      z84+By<HcI{Dwu+6pnA%Rnw!>ERSvSgY{bnAm{A2|qUgG{OfHpAWprV@E{rcpa8aZx
      z(+YP7ZXj;Q%Mv;c$Q@CHf(cAA?^I%JIu@UrlW?Y*>Ii=p9l<LKUd1%otrb{Xt8b(h
      zzAB%S6lN9N1W#IXL0?tZ*2G}NGTC^gb?5%W{AjpATotw4QZO%=I&Mym?o+j-be^Cp
      z->UfRx-}!n)%;r3TFk^urjSi)v6MKHr)n;sUZEEIFs|!bHkwv*IgQ81ZVr4F7deYO
      zynI{4!R1QkV@Dk=4w{>|7gjwGRFv=G43<$pVU1V^<Py9+Zn=NJ=C*mhMx)!-)VzT@
      zx2*)(6S*f#Zn<Z7eeX%YBQO3~_Z?hDNaudY1GvnH`oJTxbjzR49t8dQEfFnf;rj|N
      zDBuG!`Va~};_hR(@Cn**AH7@;;xi7~=eUk9*!eGU3q>TkU&U8=ijmW-gzV9Zr}-7D
      zHng)g1xx6FhbRqL#2K8W3a4=aUan;NxNwdu8%B9TP1^+dm^R)%=rZ+T7K@>uw_Vh+
      zy8%Uf+xw`3b-1GlNBaZVtef&CvCWE{`~vGl*f1D+&G-X`UZQj}yNevp;~9DjybBe)
      zEWJg)x~;<{v;=}3JMdXhMsHET+_Oj>!5v(bu)g<K4Q2}~0ZM#7L^HmDo9j+&*5G#^
      z;CHk7exg}ex2W7gJ)Xlr1^)@rMJ~031ZUy-NKYBVMKlGuiOP4%h|O(de9Kd-hR0B2
      zKz7ST*gZwma|p_qnk%8XCQN>enJs3SEABnq#%o&yF$KF!A%JZHKVmb>XvAYu++ovx
      zLLYv{5Pm@nzw!wGh6MfI!0$$3{U*_a!c;8ab(TT$^m&un>o94w)XF?vhS)N#w+-Y)
      OdI939=6@dB-1aXtS<8R`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*+fNfg6vn?P3rm**wP@7}TDfR1z>0WHjft$7RGVT_ArT(TuujV2GHbS5jsJ@8
      zzVV=mkwg;{U;UrFoY{`p&?fNE?(CUwe&;*q%>MlS^*ewi+%=J4$Twx%-sNw&Exo{Y
      zcX-$mk-hRR5>97r!eBVpqtLqyBYqIPYQKKQw|&8o*m4+*`dWRJfzfi*31lncGTPvN
      zTMPhyelZN)^Q0HuXDAeEG1%v_X*Z(Klg-LjZ>YFIOec6LEDT^gg%P9}#%rDw_4eMj
      z2zBmEEpWNN!9!1Z(Lp2H@mdViwd3lnkXe_@KzanJ^F1mi(`$vn<i5vSf|wJ1tTGI{
      zfsD8(Nie0$>+Y=XTcx;Z;sQzf+FEbCc+haFRSQ$NWa1)2`hTC+ws(aarI5#E%GMN-
      z<MWoXQz&-%je}HE!lkWTXQQ7FhA~3ax@Tw<id#++3|CVa#1Mle#oLF%r2&KtGyl@`
      zp=nXYM45)$x3sRCHLK+oN?1@+U1XRm96u;^9h9Y2c>+sXM3%0f#FCa<^nEN)mPXJH
      zUGd0MS3BKheNl~rAyt)9gmJ6Yg)k4BWNMC)r#8~9M*@cGC9Ni5Vwj@IIBHQ8>Oxaw
      zlvY(zE4^7N&mUmyQ!Gl;zeNaOg%A!-(JJ4OA%h8eqXRgNGXznqEY6aezFM5u*vIs)
      z&S%R%kb94G`3ojX^!tFpfqi42b`nrohGN2#I77B`;xI!N)0m0(XECR_Ha%6&!O~}3
      z`FI5LG{&gPNT4w^0~Gb)Whz1KCBLEcymWy1qk#1;K=Ke^<619ZNdcCR0yg^q61Wlj
      Vyop=%%utaf!rexWM$T{txxXGKBK-gW
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZve33yc18HT?znVEzT!vBRWK)|qE4Tyw2goHIAYyni5K*VhbLoyH&3<(nVR@+jw
      z)?K@6?c&x&t<_kxn_9K|Zd<#n)o$8al(bg+{TKT5d8)~i_nmX@&AI3P=R5b#Q*S)<
      z2!Pp`P>4jpxc08T>Rs9W+3K!*cXeAwwr5|ix4L0(P0jp5Bm*kn_V|ka-dw}ca|6<y
      z-QBzU_68)jH3SsZw{_;b^1Vv}3aX~H1SA`}cjSg3U}y<aNCymW&UfWD^zGT6>)D*$
      z-kA$1Ywm8#cD7`D^4>nynXZqADS`#0j!md6z~aevX1m&}H}&@9yV{FUfRQCA#i)R)
      zs^<ScT(|A5UDH~8K4VHy?(-RXbpFRKo9yk#?+d7Ce%l+5=TR3>ys5jdr!Ci%_vshM
      zy)*sFn52OVR9{ur?^d4@C_<tB0)_yEw<4)Nqz4&rDAk%wW?ECJOlvxwX)P?wv=$X*
      zS}kpAS)r+IMdm$2Y=~HF#o|yKDwbG@ILwBLrB*5qx8b6GL>k31D-%c92yvv16i3-8
      zakPyV$JiLL+{(qVHdY*G<HYecUaYVRae_?{C)z~uI6F?Pv`TT3O%f;DWO0g35vSTz
      zF|tTJ-i{YfuoJ{8s}iT#G;z937f-Yk#Thn3JjqTHXWC4$+N#A_HcOmsv&A_!N1SVO
      z#d$VQoNx2R1-3w}u^MrqEfj05R$OF@#5$`J>#bf~Y>UMuwnSWNOT}fjOk8fu#TB+f
      zY_JBg(Hg~-wo+`eCUKRm5?9-5agD7J*V<Zfovjm_tyx@e>%|SWLELB?#gpx1@f15n
      zJk?GWH`yj}vuzeLmJwU5MciUr#I3ef)USA&ohELxZQ|*6x_E}2A)aYxif7qb;@Nh#
      zn6<39-L{Ku)+X+-9b(RM;!fKswp+W{VI5-L^5QPrCGNJ}VyAVAdu)%`WnE&ob&Gp#
      zuXv7~BlcL2xX<>9z1A!CS)aJy_KWA*x#9skAog3oc%Gdno^R)i7uW^jg?6EMkzFKS
      zY!_!*iAxxiZsHxp>+W|FFS;*f2=2>>XWj2&P_Bq~6VJKd!=U{@9Awa{5$|PCu8GST
      zR88Uv2Gx_el0o?*-p8Oh5myn9y5CPc=DwPE(tQo_y!%?>arbo$T1(=3;#Kzz3`#d~
      zBk^(fO$=Hc;${Y|5AgxwC+-gt&$vHC9C3e`xXt|$;%WCsiJ!VZMts73i#ERdRtD_`
      z4Nkn`zKub3(@6}f9Pvp8Rg?G>E42rSPwS)mcH$2A9mHqdcM^BI?;;*{-%T8He}+LB
      z*GW3${v7co_vaa1<GzQ{weEWvUFW`!QNsNNMpNDQGbG(#WGHbzz)<dfkYTiYfRS=X
      zJj6&@*Wire`X6GX%xW?W+SSA(3`#8VWkz~35no}XClT>gM%vND*BH%kf1Oc<`%y-5
      zeI8>}@9oDKltSVg3`#HY1fzHzo@AsQMLfkw*(ScpXs7#IjN<Ekn~`=R@f}7=I`Lfw
      zWs&$EL(2VqhGFg>FpPEokYSAbM+|xn5kF?o9@8Q-DF0eS2JIUyDudEY{ESgtkDoJ&
      z>+=gn2fhCpMwhvN$>>V=uNYnJ{xzdZ+`rMK+`m<q`*#e@?%y*sxSu5syPwk(+|O$%
      z+<#zbbicr`!2Kdajr)%bb?!eg#P#|!LzB1v!cgY^E5l0nORS9V^JPWD+kaC8+<#|f
      zT=!SBRNnrFmfU?<k#oOFyykw5l@r}Z6e0H@C&%OcQ_=ADzZ41g>xz>5--?#|4Mw-P
      z-&FK7_o4Wn_?1{9UWF-QwO)?1P^B*<TQLU*F&7VF9$vuwP>uy*HEO~EEDX1!Hav|*
      zi6Yb`7NS1UfyIfNu_W;XmL>+Vte_Ul3;MC5U;qsTgJ?|FVr8-)P00bQN)BRmsupWf
      z{aBkCz`E2Rn$xvdpYF$o^Z+)d4`XKfh-NS>o|(V8OaJ@2Mx$QlLH%XZ%Z3*`3_gGn
      n)9*#`{TThf`zVcH_?uCT77$zFaY~N<7sl#qfR8vn9=qZ{1#2+g
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      R%%5WxDs&WKcJd)}{ta8@8fE|h
      
      literal 0
      HcmV?d00001
      
      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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
      DEelV)
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZwI2Y6Iv7RK@S&YhWr5Xd>9g%BW2_%J~sgqo00LkSRyhKY<chcG4sA&DVDVnbbb
      z#ol+Z?AqI|TR>fnEB1<RFZQ|?)OA<ILM-TeF8J*8><SORKldh?`R<+b<?cCf@BIME
      zFgybx5BZHPouwO+Tau+M>DJPQreyo(R7YubTlwU&41_%te(%?3cXgzy4}PzQXme}p
      z#?Cemp_SDhGOHSz(=F+a=^p&zl6nu}>eltCUhvR68xcf3<kY5HQcF5FtxL5pPp)fD
      zdC0A8ZAdoPC)?9@eCTAfDtMVph=<6b1?75>V6n}~md4V$j`nm*V<!4@4GnE$xa2JO
      z7?_Q|804Y2xb}a)wQ}YEpDL-hwGGZjzOAkI!D~6Rgm6bwdb5Xu+V8yy!I~;PWYx8H
      zwl}2arR`F(g0o}ooiTzh?DJmpF58v!e<5Tdga17A0y3^cnCB4fQ4jY;65((>5sAbT
      z(P%u8kr7X1X2uf|6&^{3@K`d%&h(OAG)uB*Z|P05C7bq<KD4j&r8$yA`G=|~&6Ql*
      zPx{gR(w`2H0d$}Yq=RG-&67MjSO(L4$)`hP2rZBTI#h<zVKR&km*KQf3h4+LL1Pl5
      zMN&jZ%1G+O(NQvr9wvv;VkxF2QbI?|XnMFDPLGfy=olG8$I4h*Dy4LsjH6{zM#sx|
      zIzcATi87H+l1X&3Or}$03N4p%S|Js5s!XMoQc0_%icXVhbh=EZGh_yxDKqITnMG&I
      zY+5bVbdJoSb7d}_C-dlhnNMq^hAxl=bfGMyi)0b4m0G%37SkoNgf5k(beSxpN6L}(
      zC^?GONgZ7-%V}KVv|j4z(Q-6hAuA~V(qrTpx>8osRkDh%meq8Ptf6aVEj?C_rAbNB
      zb+V2&NCRCj>uE|-^f)<=HcBIHk|vs#G~FN@=tkK{o28j<l1;QlT4<}Z(l%+M$IJ1w
      zUE1kp*-Sg6gLX<M-6C7)333A6DqCrnbkP&#M0%2(L{FBJ=_zswJylMn+hkijp*T(P
      zg!OdASJpEW?^=JLc*A<8;!W!h6|Y%;q<G7Emf{`jcEx+vvlZ`K&r$5Po~!ti^*qIg
      z*7FswST9gKYQ0eLnDrvXQ`U<WZ(A=>JZ`;I@rm^^#b?&b6$h+8R(xswiQ;AJ4#n5j
      zD-{2*Ua5G=dX-|o^=icp)}Jb#v;IsAZ?RsZ-X+#+6|Y;bQ+!~(Ua`-5gW?P8jf#h?
      zHz|H^y;<>B>n(~GthXv2u->LcV*R<|cIz(`yREk??z8@qZ(;ovzhwQj;&;~HsJqy@
      zQ(ds0UFt5i<2%%ataqv#X}wDwXH4;1b(}KA-Rd~CihI;?h85lFICqMB)p6GO;_5ih
      zd~<cHt-IB&vfi(b^UOu73)cIfy8d?jkh+Q1ht=^nf#MN$1=dH^!TOlGD(mCwIQ<+N
      zb)0|2lj^uj_#vuWZr!7fv#oeq9j9LLj5_WR-aK{7tbb6)Nmu+)9rpu=L>+g8;?L^1
      zV-$Z;$34TFtd4t7@i%qck&3^o<L>2$tgg=btUB%+eyHlWixkhR%d@_qF5CK|y6x7N
      z)SYR4S>1WoSJYi(eO29Q*4NbEX?>litZ%3v-2Z>7|DYYeseUj&Z>j%?9ly<w!upQ-
      z!5r^Z|7JUWSN$E<_td}5`o8*iTK}c7Vb%}S59a#c>IXmnAB~mR`42S~e6AmH1nl@@
      zjRn`gPh-LT_(Y2e?fj=&G{X9s;&bcg8mqDH=LlJQG&b1!1xLgBrN;8DUuj{m&%aje
      zvf~5luC;!{(U0GOtewFlF`Hh1B07!_$1)USJXT-=wqqjh!6fX(WG@d>yc(2yTT$WN
      zimBdns0?MIDpZbXp(acZ?ZAxClb9Lm!7RT5v;8hq``wu1_h4?g0`tOMm>=#&O}GaO
      zA{AH|>B6E&H)<n2SRAdul4uu}M!T^r`YB4I`%!{E!OHB>-S@l4H5T&`?(zJf(YZO{
      z-Oz-e+pq3!3>du&S$84tzZa7mJlErV#@8c<mogBE;03b}{y2u9fG^`=Xz(V(z6D&-
      BNUi_?
      
      literal 0
      HcmV?d00001
      
      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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
      ODdEcmGB$dXasL5$!$;)+
      
      literal 0
      HcmV?d00001
      
      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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
      H$cS$M<;q3o
      
      literal 0
      HcmV?d00001
      
      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
      zcmZwI2Y6If76<V2ro0rQoO48wrVt!VKo~+zBR~d1OK8aihR`NqNCrX@Q&3Rsy6(DQ
      zFIcgIfC`8x#k#tJy^F4EFRZ#2R&g!p|GePm_o*qr|J*w>Z{D4I-g$cu?Rb!ga;Pqa
      zd=7Q1ZD<QGjxURc8<LITn!0#%OQJO#Y04cwG=%~V_4?E2i<h@1BJHnr$gOW|T+-I$
      zkgqD@P-<aKeX=3hTI7&FE4$L6K%{YD!cTPQpz$5}`6qkygYlzrwsEep+PKKL!dPQm
      zZ`@?uX1ri*HntfL7-t%18Rr=18GDTjja9}a#%0D;#<j+c#x2Gj#(HCevB|jG*lKJy
      zb{Y>Ej~I^|PZ`e{dyJQi*Niufw~hCWkBv`_&y6pP1IBLSY2#Vr8RK1JrSYM$-}ub<
      z()ikV-gw3M#`xBF%h+dpl|~L#WKfV?hdP!f8xm96mR2X4E8^Al35T?_u_j($8E;P7
      z`0%7#=<Qi5#T*JA-u)_v*sF~CctdTtytO&mP@76~vEh-X0jQ63^3(hbnn?>B%E~JJ
      z{Ywj~{y3FgY3Ej*K{a-69oh@$@F@gZ>yj-F^(g(*iu2B?z@hZ=#<u2~L`l+?lJ3n8
      zv`?nqI51WZyV=U|$VaJ^f`5n7h*ByjfH`tEibK1Cu|Oai3kIVx*Nw(fQlhcc)M$)d
      z#)wlGV@_q8N#it_&grlNcYqn30gvD#;E{YJ?8qG<exR^GWrauaQLqztf=Bbwurqgt
      zUAPN8hL3?=xhw3(-C%d_4tsD9*pqw0WBFKk93KaJaWB}Ld&5l5gnhUVJf4q-A#oQY
      z`f^`*0-pf0I16TTHtfg!V1MopPvjHf03HAb@<15oFdW2#U=HWN!8{la;URD+4~4^c
      z7#z;S;Rqf9b2%60aURU)d|1E*u#gMkNFE7`xCoBoQE)VmhGTdPEaqYu;RqbdW8pX+
      z2TQmFj_2`k0#ASwc_N&|li*~Y3`@BbmT?)J!c*W>o(iY&G&r57!x=mSmUB6*;0hS!
      zD6Hg4IFo0>Sv(8k7tZF{u!^hT9G(N`@?1EN=fU|rA1>epFwSvU&DF4mYv4j&2os!u
      zi+B;N<yu(Bbuh_ExR`Bsmhci-&-HLAFNF=<02{dxHgOX?iBE#f+zeZ|1-5c4Y~wb#
      zjF-Wa`DAzsp8}Wja=3z5z*G5Dcp9GuSMo}DI-d^D;4`8zp)-Z<u{=v?yXD!EiQ*GF
      zM>0`<Lgz~8Qp@usM3(1E$Y=Q%31LTtE|3sPP3W%@LInx^O+q~^FO(1}MCk7lV#`$$
      z%CKB5p-z?;NeHDbbg}riSY9HTC~Kih#s7rmWkQ=RFBjTvd4<p}%PS=l6(Dq#&<4w^
      zg?3u5(R7Pzw1dU9>V4RC?Qy;0x)i!WabXJG*gm;dXsr!z653>Wv*Lmkx&?ohx8l$8
      zHuX;b_Vzd3(H`qm?78)-7I!KxX`GIF3)?8J_t~2i7q`$|imO}bZtY@mkGQB8EKOWg
      zjL;TwQ8PkY#YNQ!-77BYMrfP3s2rjD#6|63Ys5wM2;DC(>PP4SaZy1+JJkCUcZ%EH
      zhP%|;yWQ$--Gk~)J|r$$h0w!Tqva#&ZP26I(?*Y}_qG2+z1KXhy=?LcMMDw#r)F9_
      zseLT=sJGF3HDsfww6Dd}imoE`jAmIptLQ62&nX&<(DT~g;sx~z<3$}{qn8xTMd)Qk
      zcM*C;2U)zTITo+!V2jrk9Y$!MdIj``qQ?lmDRjH#zl1hgz9n?f^51xy<=cuTB=nBB
      zqb=Xn5f<-huEqPBXYqmNTYRVm79Xisz#r>K8-1ch7W;LS#edX0%BPCHB=ngUTYRn&
      zi~s6ai!T(tN$5*0vG_{d>6TwBx|GlX^@{X=iasUujiONreXEl#4r-~zcUorge?_wr
      z`d-nkgnrOz7C)+Yu%C2>jSfj@t>w=szO7Wg*}IEH;cDsw2jPB}Ls>MKX3-G3fQHij
      zG>rDsaHlJca3)f&vz+pr^_1`IqXJ(V75egMq%TQDzBM$;w}(dizNaz%d@A;@poo75
      zjrAX(ae*+E1nOvfU>!{ed_WU}J!w)fN|S@Ds5H2T%3L2!ar0@a+d|Xabrg0tP&QS1
      zXJ&WXnZMp)sSI~r2lHL}>8!wRnjQ1&obv57uiq9b-$wD@7Ng#+IEveHC3VD7I#bL$
      TU`G4fX(1(W7>5>lA5!}ZU(KM3
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      ZDpSy&eqrh9|BjiMrLRdaJN+SZ{tdZWAWi@P
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      L`n(XGd&<87de975
      
      literal 0
      HcmV?d00001
      
      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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
      abP0}PDvnX^37^Dz{NzehSWb?~xBdYu)bXGI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVqsn06ekl#5uoD57*|rBsW8MIbFUsc9eqrHL<O+8*eTGE--!8ejYf
      zpA0|XEAmhiAN&A6z|Rr)nHHvrB0kJz-_}}tpM8G(`t}__8f!8F3^V&?D|Mj1)l;Tn
      zrK)w^cDS1=Zg1``E-ozXrl;3=)v9q@hQu)WM`FHH&`o0KUp7p`U11oHmo7@qYC8;4
      zo=_D85mwO$g|PooP$-C!NXanyM(eP`?U#C`!5N|@tExA4blVVi*D1Mm!(q@$|JhlV
      zAyB1)*u{bwl$tk&l4Ug+Ui3)Ky?1%8wYSIZtY0st(sgRS_iVVLb9;+Bt%jRbFoY2q
      z!wiGx<MJU@+`uS9aG$&Mj%zsuF^tK$)tl~<sTjuugId>}Eq<ueNtpXy-D^Q}Tg4qr
      zF@&0yW4MN8dZD5SO^eVyhM{<|M{l=-FlM01h%=0xOZ-bKDrS)&^v#{;TZPhQnPK9x
      z)?;{}Vh$-1(ri(Oqw#zXz2BENr7@x7p^8U>CH!h*{fs7HP$$Damp?u_*`OtWd!jw4
      z46H&=j!t*mYS~p@FvL<t{N<k$4bwo2rpfJmLw6kR$e`_>ykxf+<nEQgJV*syI3Pez
      zANt9b>2D2^=LyXwRP`%DU%ZSf^j187jj}jYvPU|3xQc6J0U<<iolqnUAlgOyL>v;u
      zGM}L(+8A6(wsG?a(F7TjQmu`<<rCaLPL2=Y^uxzCl4T0aAD#X@LHd~L0uanogbf@J
      zR)hXb;%U;ty}<-rXyl*AJ5SMUhwEHX1{o}n65_{WJR!6YEz}~G2q}Q49)1?f^i?Q}
      J;TcvD`weXI6Ttug
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%Wo4$9R9}Mu!+4TB_SrwgYZbfjzdgJQ$lTCF>x@Mq$H3?xuC@i&Q{K@S=*I*
      zD^h#u<4~chYJ^(#B`!In98Bq<m)`n^@MjRd@ov4YLV&~W&dmPid(GqD=YRbTU=lZV
      zganS4?0V{B^Aj^=TTZIDX1Y~bOXZgqZcR^5ow+qRI%^l5JJQvm35@J0%z6|2B7r>_
      z%eHFg1cu{<-HOwRWdSWq)Cj`pGSGntv0pJEms3-^3zjYC>+83rd&9h4mI6Hmr)ZX!
      zP1jO=e^9HfSyh2V;SHUo1wutm7}#B~Kv&VUJ(H9k&n8v{M3GNcV9*y{HtkYM<*_91
      z)ummO>BMRj2k?%Let}psjU6=x1~ACjRPYyT3Ok?3M!@_G>_d;5KVskz4zs2#?NV(`
      zARJHR1^PX?I}m9{SbSI#p$ev4aGZ+3m9~79%9;AzyV6Yure{8_Nq;aAj4EMjN2uj;
      z7iG0xuB9W0V@yXvptrTg0i=N>#;LL->4#crCyogNDP^Lw;#94g<=AR)QVqT*u%D&_
      zMqfh&@8bg<QvyRRl9z}va2nGTQn%O5N=0phoZ}Y!qz?ZN_$9Mx<wIn2Ftor*5QKrV
      z;9fS?%<7_CH@UU#Qq$9F7u8)ba1k@~w6Hw8m@6!-2pkM-?8bJ<z$|h^snnTIe|)Ch
      zdawj4pNwM38@Qrax^B*2`i~}L*#dn5R}empgdGLk_BZguzmX-U?iOXvQs<{TIOh{8
      zWLnMJwsf;)vs#r^9ZNiyuQ^5nx_2;KoaDX@^KJn&J{{P@zRuPK_Cx%3jwKD_2|E8^
      zJA^3Tk>>bkthx__{g_vWx3HHz&OkTbCW=sp!ACpK8if`e+=uO7(V=aIH`(<76(#UR
      z8(6dj7DX@i`(S-Om`lM*@@V+%BgDp%Lr)P4p@E?dbc8oQ4~e1VQydiddHb0bu*7H%
      z_>%9hi1{`8*gk@9nyiOBycX*yEgT_Rh^P1{M)}q7E{^&9Pgt$OntOyyvVr60hH2_I
      z^d{Lkq1|cV<cjtuPHl}haApHNZNraoertUA+Xk{LtexA~{^v0+ZxPB1VxpPv1HymD
      z6u+m4A9&SlU<40I{v+@IpD=}Akii3F@q1JHm?xzreGXSqpis)gHOv#alN(Zn7-oB+
      R$@LMg^Q&$wfkoWFzzYFyaUuW!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBNrs7(I6{v>U_CD<Vt*5tI!aTR~)Fh`@kkI?!0eOih+D8>ksw(hdDD`~<@X
      z{Y0YC#IOD+<LOoiff@MF=f0hLp7Wfi?VrEje*w_2s=y~OylWq%KN_Emv~AVX)jh*$
      zn9X!ie^JS1XLA)zK|rAY0-(?a3Un=4w$)q|@F$Yn0)ayPgQ+4U5GF^;<w%jETOiir
      zs2TQdT5md*y{n>!D63IVSx!pJWK=}kw_2G~nu_bBuNh6t=KO|$ug38v_lheUSuLmH
      zmO!xZvNatL=&m-HvgF}!6W6Xl#h^flM<>hSGifTM91&2go&8jcXjCA2QhiFB*K*l8
      z757;lPs8wIJc1w+0*OTFd_nnl7q?tbq9w~VHxKrAOlQm3shI+@RIeJfZNstLwYM2)
      z?pY0ik<uj{$qT5}y4^G^oA5zT$Jy?A&B-U<D##Ghk?^%%S=I~1B7LorC*IcHiH3IB
      z=I2$j%GNppqlx5yu^uR|;IY7X$Gj)zR<tn>9mXuOuC2LC%AuF8k~RAZN<0viJh_4r
      z4;{t=vP`1a51gvGZn?cWeH$v;l-qHENYS=Ur%*E*4U^6(r_LxI4Km;h!;cII@Cl-e
      zYlX8ftr@U2A=OyVPlU^U8PUrDc}*_|WlS%3NvW3=*{hdT*{7FdU9z81k#R;<-eC;M
      zA;z%0%h)aNF-GK=evAj-$nQgvaT*cEJi>U2D3;KRWei{iLnvSrtHi7!jdi;I3>$b3
      z9h;cojR;jz8z%9Pqd*E%p6+#yKJLlM-$)-K!a*D&=syY^akrh-tr2+DV(M$7Jtp4c
      z?`E3k0yB8T=z1|jhuj;XADAsq9Aob5IjT2jM1@X8&9krz1Pd;~;(3Di9SD5%#8tdR
      SPh4F-x*+IHoShf+C;kt~JrltI
      
      literal 0
      HcmV?d00001
      
      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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
      XXh(YLT?H2hg%upO54d`2=r#WW%X4BF
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZve2UuIz8HT?jw3z<?>jmC;0=6t<3mXBR*m!}L46%%DEI<YsEIAC@WOg@Q>2A~A
      zbf&vWnkJ-4x|=lJBW==j&vehUp(D-rGur2AW50f1=~_tVoO_Qh4?cPKeE?!;48iBH
      zv@bUrJ(s?ij^?uYXitB7XgD(x-IqMnRbOA1=!%EncUbncFWNaal4+j$0f*pVK0h#e
      z!NJ$r>=1718O-LgBU>E`s;WC2{LT5^Od%YKOAtWNVODE4mpM3kzB@B?EZseraqwF6
      zJ?X)Y^ibBGPah06O}<SS;!wm<MQl_Nj>>b8$zczsbA8d|$WS)d7seciLcVHh=wZy`
      zxMm)gJ7~81d?XQzcO8z^)<$B9L|qsQ975BF!&t-*$qwhIryj-<z8#;>yv4Gq|DGO0
      z7|U(i>5*(M9>z*et!J2@-8y|>_4JFgLy=glHjFCHd1hH7@rGEUzCMf^uGb)cdYwa{
      z=K_Zo#(FN<<bzs=(o5M~Z~oG7WCLd%FG2w}l%Nb79jdBY|9AF{o&SHRy2IAIt^}KG
      z&5Nhb(e%>#NBXnF4wbD>dva%n+7)l)M3VW@p`J`j*3Q#^X3-U2Z(~3uKcaw_l*0l$
      zw|wM77$N@S@&Tcn;pZ^~C)DAdK+5lLPXz+)sbH`@6$-Vd!r}Im1clEeBz!Jmu_J|2
      zNEb;FT`a|PiImW#Qc9Oe89hs8(fmWJDD8<y&z9Nr9GOGUmAUjhnMco;`E<FI(-l%d
      zFOUWFLRm;Jl121lSxhgHCG=8RN-vXTbfr|%%VjyeLRQc#WhK2zR?(|vHN8gG&{a}J
      zS4%ZrBQ^9|Sxc{zb#z1`^m<uOM<q(vN-Z6e7`;I@&>LkV9hW#=Cw25D*+g%a&2+ug
      z(+Nq?4bnh2N+aDQP4pJoLT{C=^fuW>Z<p=#4%tEPl$~_5G}F6e7rk3{(=F0M?~y(9
      zUfE0UlYR7l*-syk19Ypj(rwa4AC!aiAvr`Jmc#TBIYJ+mqjXY|^f5U`w@W+SAszG;
      zas_={j??^0pO6!Dr*zUM<s^MdPSL03G~Fd#^cgurrzK5yOE=vkJ#?@1(izFnXXPy2
      zCw+9k^wU|%(&ywHJs<=0pbXOI<vg8}9G#aueL*hJSIU+2kPOkoGE9%i2t6vJ^hLQy
      zUy@7oWw}g`$ryc=Tt#0kSJT(XHT1P|Eq$F_M_(`3x2F`(Al7FR>$8aU*~I!BVtp>L
      zK95+RPpmf(>kEkWg~a+IVtp~OzJyqBB-WP_>&uAs<;405VtpmCzKU31O{}jW*4Gm2
      zO~m>-VtqZazJXZZNUU!n);AODTZr|o#Co$jzx8eEcm*rou8voQ;vK~LPIcTlig&5w
      z^{jX|vED+g?@`AqLGfO7p7nj|xEmGkSI4uj_yDnfP#w>K;zPvxVPd^iUBG&q`X063
      zu8!BE;v>X*hdS<A#Yfd~Cn@e!-~HCRh;>{YuR+D#>SkL%rjFkOihI=Yx>MY%j=M#1
      zpE{m>#mCig-zYx8FFxxhiS<*&`e|bQ46%NeSU*Rs_p9T#gyI2pCDzXq>x1gbtzRJ4
      zFRGho{SvW$nOMJ~uEzRRbz=RRy4}{VtK&{qd_&zP>o<w@A!7X&v3{FaA12mE)Nywx
      zzC)~!66<$~^?T~L^Az7#$6crR0kQs2owNRkSbt2cKOxqi66?>1_2<O;3w2TJW9mw+
      zza-XQsjIO5npl6MZoc)m#QHm8{k^)i)<39I>mSv%SpTH1&H86`o2`E#*2jtUuf+N{
      zVts;Gc?0A3g5vMQ`VV6LC$auZUDo=fx&iCI)%QsI?I^l+@|IXa--s1-oHxfhRPm;K
      z9Gh_i>Twqmcnl4$9F1--n%re<akpTrdl=h%VQlx+V~4LFJAF5y+4lf;`6jTtAc2;G
      zG3+TA$KHYo?DHqE-#>-}{&BSWC(ss1;9y`3hXUg`9GJk7U;;;jV@L+aaV+>aHU^)-
      zI+RY1%x>LfGq-Cz#9O%I@xB_5_t$%&sRD0yGUfN?CQ|`#elivGDw3&?w=kIsdyA92
      zcY90ekXK2Ey%lt!w~8+E*3iXXHC^JZrAxgCUFJoTcOq7E8;b5g{J)E{A09t8g(955
      zEOcTHPND**umq>MY+b0v8AOrh(siQ|J=lR>>_G-?IEy5I14*HuuR6zP1CtXgnVJTd
      OxSsFpxWx9GNyAgFc7iVe
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZve2V7Ox9mjtc9*4`4|NlC1fH(np!ecK{L{t<+eL{Sq;$sL;;h_wb%<iTuU1^)H
      zbR})No1|$*lXSN>N%u;+(%p2AblEoJcR0{|+6I1nznt@U_nv$1`}{5sJbBOk03z6y
      zjua0C!^!EgQ}J{0vSebsY+xilF*!6<)*kKZtE;Q7@2g2i$iwPq{iE$OQ$wxp4Ia$s
      z`1tARGagcUTRr$q1EYy#Vyf9gYEf~IhfwSI;7}^?)Ds!-ke!V*7!SD}iR93}>9PKy
      zi9_-J(IF2($M`^ev?o51u;aN&(=>Z5AL=2KOAFhjg}Jna9%Odyqw(Z$S#)Y5ksS81
      zn5%J%_py|RO!SY1Bjt7VefuNj<>5$ueYKA~u5o_e#|j=dF*!bW$v#$j$l!SXAO-H_
      zxzqY6<O$*v@&3eskF{LFz$6#d5uZvVTjplh&%Glt5sp;U`q;>8o!`@NO+%!<j+4b)
      zLtATSOE?m#^0A4dmS|^JxVF5`N0_G=IAd4sqm0|<ev5d>IiE-lj-Q_lS8xw%d{lBb
      zpV^XdyN~Mso@vWODr&Qli#iWQMIHaUUyZ&0KULgg?@~iH8tq-ma<_KwW`w3j5|bVZ
      zJD&A3F@KSLHI3YY==k)+z|hWwy|e$h{=S;cb`2=xDfo#Xm)lPRe@lUnbpCMnf%GYa
      zI0y3(@A|!Iu~4WxmX_8XGp0M1p57hv{qC3;;YiYjWAVk#WJm^?DVb!JWRcmDP3A}r
      zxj+_>xsprri&RlEkbqn$3&};Yh+Hg-$tALcTq;Y+WwMOSlRR>{EGJjU3UZ~aBv;8Q
      zGGFq^0x2L@%WASv3duFHhFmLa$#t@hTrca%4YGmUC>zNlDI$xdm@JVJa+7Q#OQn<y
      zOPJg&o5?aMBg>_nj7Ws6kP5O=D#<FTBCDmEtdSbBR%*#QsUz#9o@|f?vQZkzCTSwK
      z$QH6$n#rxQmE0!V$QEfKx65|2Ra(g%vV&}sHgc!zBzMU!a<}Xz+ohe{BYVibvX|_T
      z4zg1^$$heq?2;~Wzw9Ru$N}=893-O>B@f9VvRk^z9_b-3lgr4%a+u^dc|?woz0yk_
      zm80Y_IYu6r<7A)oktgH?8J9TOFa6|z43L8|NDj#mc~VZ2!!k^c$OxH`1bIqMk*DP}
      zIVz*%n2eE0Ns{9-PM(o7<XJgOPRIl~DU;-sOp((vO`el;<as$yUXTmqjLeXi%jM)1
      zas_#%TuELfSCLoC)#NpDO?OQ39LD;&jP>&v>*q7pFJP=+$XLIKv3@aQeJx}C62|(a
      zjP=VH>z6auuVAdNW2|4vSig#~el=tL8pisyjP>=5_3Iex*E7~{V61Ootl!93zlpJa
      zGh_W0#`>*{^^J`6+ZgM&GuH12GOga}^e(5H6gSz~o89o;PVaHL#p%6H?{j*;(+AXK
      z+c$oYvHp;o{;<<WoNjfx&FOZhk2>Aq^f9M9o$hkF+vy&skE>Z>PjRms-sg0`(<jsv
      z*cU(PhM!WyqELKV4XZ-&88s{m#b?#5v;LeK7KY;UYFHVHFQ{Q@C@!jDZ79B|hQ*<H
      zKuwADgKAhFiigycT7OAR*!s(ASRsn9s9}jHzN&^bqWGE`7K!5PYFH(TZ>V9JD88wN
      zb)xu|8WxJ;+iF-TitnglsVE*+!&*^1qK3ty_^ujOi{g9kvcB*11E(K4J?iu$HEbBg
      zkJYea6hBeJmQnmv4SPoMGc`M`f3AjIqxgjywvFPKYS=f5$JDTK6u(l#&QbhY%^vID
      zsA2CYeygU#`gdwNt$(kE?W6dE8upLkk80RJia)7g2PyunhApIc+%4}fPJea!o73N&
      z{^4}V>7P#ja{9N^6HZS$Jw@G)tXpTFayjI6SW8y&c~^xZRO2vea4l+a7wYgB>b+%X
      z@OGooyMQL|7HshzMstdfttoZbmNJ5tlpC-;<sw>BE@4M%J=#)duru{;>`J|a-Jwdf
      zhsLlcbTjsb9z{o5K04EmV_({h=t_G8`%NAWm>3S4>k%~<QDGiLDHhDG%s!2C=bylM
      zoKIzs^D`xZNN^v5SZc5+8VdzWqOr7KSu|#X<<VGrureC+gZwBT$H8hcJy=8f!8$S{
      z*g$3mMPyb`LT1}TNKQ~nE(kW0xj{K8K?SKnRrF5Ol-!1_J5c}3cJ*K}7jhVxh;e~O
      zun4`#!%^hp7&r1biqVHMoZv>r`A<tfS}=fJ7(^$A5XDKpYnXpA!chXJaSCTKiVGN<
      Uz3gmvk!Zpep2I`)>{e`j8h9se-v9sr
      
      literal 0
      HcmV?d00001
      
      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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
      GtoS$lDw)Ut
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      YWk@bePqBDrLgGm?-|cXp{U4?E-<+kL1poj5
      
      literal 0
      HcmV?d00001
      
      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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
      V<4Y>JcmaB?TK^kiPJEej{|#|3JG%e?
      
      literal 0
      HcmV?d00001
      
      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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
      K=Y{CpQ{Dvg=L`%0
      
      literal 0
      HcmV?d00001
      
      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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
      J6utN4{{hapKNSD~
      
      literal 0
      HcmV?d00001
      
      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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
      BQ}6%)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      DffY&G
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      F{sCT!RTBUJ
      
      literal 0
      HcmV?d00001
      
      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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
      H?+$+fX6jP{
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Qm2ULo^lE*tijF<u9dKt7lK=n!
      
      literal 0
      HcmV?d00001
      
      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
      zcmZwI2Y3`!6o%pd&Tcj#1ai*OLd|3m45)<ALqZLm04hl!qT&+PWFaJwg2di?@4Xik
      zdqeCU#on<Ch+<bzAU6EZfDb+@Ebo_@opSFmlUeiU!;b^Vho1`1A-k%!DQ`i1X*{ns
      zS(jH?9j|XlH0Di<SC%%_FHAO6ry}g&|L;a)n;R3wJ9lu1)YR22Y+CH#%_(+BE2^wX
      z)+QTAI)rljlsklr>*gmyz>Yu2_8rExt>Dl$11X3&WR@gr6Vsa(%}dmm#^==}9HJ$4
      zmGPSLczx2Acdd*R1xHOoJBRdt4zh!T1hc4#*H-1tY^+b#R;43^P8m>SIppS+{QK*|
      zIsaYNr`!hBB?Db;P_1{)Y1g^Kjn&Bphn$lCy%@U(Q^=vstZS;TOiW1HL^5}O)z8L&
      z9G-#~z)ob7=T9Eekjj4!t$@^P5av2WwyDFTDHY*xSw%`pSw$pLR*{-oR*{xgRv{7L
      zlB5ckB~5HiD``d3C7rgG)-*#hXd7um+e%xSDVdaisEX34L}@!|N83w#+Ce(dj?$5K
      zl1?;BvS?@NOuI-I+Eu#JZqki*m+rKO^q|?2O?~lcj^xmo#Ar|HN%xRFXfNqSdrNP+
      zr|d~{C71S*KD4j&rF+R<bZ^<4?j!rqe$tQTNgnMl{b|1B(*ZJo4wQj(kPM=OWiTBg
      zL+DT$N{7iXS|9~<xD2O-Qb>!Wh>nmEbfk==qhu5vEu-le8AHd)SXwN_bexQ%<7GUZ
      zAQR|BnMfzeBsy6p(<w5APL-*&L`vv1nMS9}bUH(3(0yfJx}WSv_m}<YOqoebrIeOQ
      z87-G`I!k8J*)p5*FFimGpmSsnJx~s$2gyP7U^$r1mAUi~IfTX~PUp!yS}B!uzRafy
      zNzg;(P+BEbv|6fZQj&CmET9WzA+3=bx=0q$TB)UVQb!ldV!A|@(0Zw-4bngxrI9vC
      z6J07x>0xphT_($DvozDg<#2k096^tiBk56c6g^swrpH8i_bQH6JZn8p@tpN|#cJyb
      ziWjXXD&DZ3q<GhQvf?A_DT;O0Qx%_CPgAV7p04=ZdWK?y^-RS^>sg8~t!FE~vYw;Z
      zWIb2$we>v3H`enN-&rqEd~3Z>@xApT#Shkt6+c-oQEahZs@QD3O!2eza>Z8b6^dW1
      zS1NwBUZrTUUak1edX3_D>$U3h2~u3AxZ8R?Kh_)gvEHb-#d?$aG3(8W2d%d#KD91a
      z+-bd)AM0(J6KuCaalb9!&P}X$XpDCXHvy-Tsydbh^-G%N1m$9k{Ec;_hY(-`j^
      z9)zd1KERLlL5+FVl^Rp)LmJDpuF}wx)`vC5=UMRxhhlw{tE`V{C>Y=4iZ5*W3B`8n
      zll;;86fc4GX%5-?jK;cHpH+9h^*N34$>ZQP7O}2YtgyboQ(0eBzqfS_FRAq<9@_dc
      z4`qEt@s9OXb$kjHuc_m6sCZrdcGfr4Z*P55{chH`)aUOy#oOv<S>I8=v-MrYHtT!Z
      zYmIfSVu$s8b-eQxAE*ni=ZEUDZTTa0{0*k~SY5vL6Loxg`Jbn5uJtqZbFAxlNv-SE
      z59Yl={opvCs~_yYk(b84|AJGre#uK_-NdO{zv88^e$A;`zu{D^-*T$f?|3P!-*al#
      zA2>DZkI~kapEz^tX3oI6Me(8aXU@#}OEkl>RlVTu*`{9b6mI8@Wb0eh3+|?0)eAQN
      zO}*eSzw-vM@BdKmW9y&l1&7_C-s-aZ(B_`tg_udtMo*f@S7U$VA|JCc0H<Og9>O4O
      z!eEz$A#M_ex@8#VmZQL}#c(eTh2Ag}dDR%<U5b(33mE0KV05SeV?xas8(M|pPz%O|
      z3ot(1j0xdYm>6!sq?7_oPHD!JlvS9T(t?sm0j5QoF+H*pGa_5iFS3;*kYHr?;?}=k
      z))>cEx#Rk1-)J=S7}~Ey$G-QX%>(GXdme3r*L^9{QO-SQ1;@$Qxfi;jJNI_z5ga@F
      EFLX;+oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%SyvQ6g{_1o0_IpYkj{ET(mBX)n!GHq9D`<C<T{kGPG0TL?%hWztUAf!4L4G
      z#G6_{T-3$f*PMIqnL8h!ukQdF*f5bHZ1+^+4BVmXC>c6l-_?<bof{nvr7!eu!-PSY
      z8v_DY^_=VOKzOl<JYj2Gjf9tI89#B49LhlSgn#PAGE{{8u~afXA!KXy4#8-JzOax*
      z(T0fvq1={ATqO@(q3_&oAPALq=($11)iTW|MI-LZh_KWCM{1J?>4fK2YxVYD#Z40n
      zgw3fG7AhzbtlKcro;c^n5K2F**iRV=_JvYHw*ohc1dA%4DK7{ksd|?p?uWjOHLMc~
      zkCO$mY!)+hY7+-w<$QAdFBv|(9L{DqI$}@kb9*CLFXL;Qt(C$k4}&jDoZH_Z%%aR0
      z{}<-jrUZwKObH5asN9cGedajBcp#tF$@<k_nDl3{I7TgDnZ3ohlmWb)6}ATZ)h~eD
      Be)|9b
      
      literal 0
      HcmV?d00001
      
      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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
      Ko!8`F;r{>~zt(gB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%ry}6#nigbelz#Um`LP0k<(^;BOp)Y;(y>0}04Td@<d2w^g<l+YY0N|Addk
      zcVCg1X?*a}2mdJb+%jm5fIjr5_nhy3=R04|?T?>dzX6y>Rz`qfs%kWoFSK1PY3OFM
      zRMRY*JIT$B=PMhTe10;^OJ<o{G9-qvzhId|cpJpfwWu4qv&0aIsi%Qc@dAUCA=WTD
      z5K_>IFma!8AeR$IdQ{!utIbA{TTiuOoip^RW=X3TG)ouzc2II^y3G((|EsSQL!d<P
      z;nU?Zgv+i8s%h>pJn;!lzjk=KS*dU<<((Ivw1aUkdStBV+gj&#v+ktA=*OUp0fxR~
      zvph-#moUW8QRNP;v3Od*hZS7G2t#nkv~@=}4L6k+sZo&{W9X0NeRbPP!WhSdjB5-d
      z$E8k?q+k+LWNbsLS4^wH%Q@3hxlwg$4C8<Bo^Y7@i6Sl|=I_UIL%}o>3`$M2*Lg#u
      zK{2YX`ez{$cSFG}lGNB*;qiJ-UE5+9{g-=D%qzHwTg0-{B$I|>8DHmKW!LDqsB%}q
      zJy9jJxtcvH6VS=T0k4+#1!y=rOhN3+`dArQk)AXS$cEXpN<62Fsq8+wJF~)RYB+Bg
      z+{)B7+vc_mf=A9AO$NDrpD+hfKz9`g(9?-7+ROCz2$CBKPA3%QGlCyo#5r2SZk!XU
      z0)_U2hd6ZOJneuWdT@bQBwR#qo9z?TkSLe^fQ3X0eM^z|=u6PsWvSdkWJ~&jtNSx8
      zT;D^lFMNQR{h7$S7Us4HdwcKK_XFJ7C!PR=l391%Chi7RHA&4&8fXh6a4>;g%D<v-
      z_XZ2trheYKYNro%9IMUZKINIvh6hLybCCX9i+D(^0W7(-mg%(Uo4y2Akiqb8#w#s3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6&vO%19RIvz%eKoRwWYE27e6eLG_?T%f29<f&}cBW+R%2U7iI~Mbe(iJY!YTX
      zadG6pMf5}+2EjTwV-J->6c3&}`G@dlfS;FLvT;fo4!iHie&6TUdvE`J_SfG4PGU(%
      zMBrH2X{5fgZdfVDc2lJ_%d5$HYN>d6wwTT5$LE}qdsTWmG=W1q%CdfWP$aNt+IH;v
      zjKFBTuv>9Du`HlviE1E<9ur+Ki2aHMxtv<EzhFCZzOjBqdY7y#6)DhHa7$KY+45{P
      z4koqwnq3n(UU)5EX@N+I<wLv673e8hj&G5|<JrWjfGF|F3JeFbE0$AEsWgi6dP6!T
      znNF<k#alS2V^AR0%3?>2i6IO#G!^=6U18@FSp!VZ#GB|->kpYYj3cb6NT*z16NttW
      zd4WM+?hZuS5jG!|7*xTG3$9xgxY&`dQkiL7yC%JKXgc$CT?Uhha8?OZr$KF&w<v3k
      zN<D2LjtLzJf&TUmhma<cn54?Gq#tUfoj9gUq?C#7s#~+`w(F?LlWOukfde!hG6ot9
      zoW}b)&IpXONnRqx#0U70LK@DxRjsN+kaN94kkpa?0l#E5t$d7W9SkkB5(Z)7EO?U5
      zHLJEL*DW4wr`+<i+Cz2cP0S)gPYcU)i@CzWiojTCV>h-7CgzYMO0~g!2IHAd>){rt
      ze5Msk-o!=4(z7&w;RQ{^b_51Ot}uKWiMk57<7?=LUyY*M@JcdgtJ|~h#T}ng5z}bi
      zaio{6Shbq0=_v9TzVZqQ=>DbfaDrzx%6|%=@#(@Ij&=6Va~xsYJ&`ocKhXU<`w{Hr
      z+i1;y%c@&2Iga^t*oQYb;tK3XFHwZL2m#s*YZRI>+<Wt9bZJ}BEslIV#R%N)z%trc
      z2KsRzz#0g!JnB`7$D?N-AvTd5d4gC3O^j@yE4uYfM2sY#U`*h_^QT(K5~DZZJHGD_
      z^Lq@ie-uBoSP%PnZPsx*I7+q%FYwzKXRF~D-U;}dtX5g&9wD7<;`q#H@6Ap0C)s~j
      zyV}Hw741))+MaCUqYd<ROh3lC?a9$QO=MSC`^m=he;(u0Z6f(OOtsRzOY|R^;XS5#
      z9|!Rh#_*8ro7|~ic&vU!8h4SwZ!P5$zLK``96m#VI;jqyW1h&}IMvE9%Kk!&>kE9z
      NR{g647I6tf{{f=eZ&&~T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8BH5IwhFyDk0liU?Ie1+)d*QVOM|h(HUmNr8tI!fH%imJM7}w`RA6Kjniy
      zk!U3G)gNV?ZC64Hf)71Ad+(VuXJ)p)et$a$kV931hhg-{>|{S^CtB7Nt*m~mS+>#6
      z?kbHnrBbU&@G%TuxvunR41r}~iuMYFH<{XF@KsuehKwMCysM;Lg#m_mSD~qyM_Hw9
      z3G+xsggC-(rG=F)$cQmS*S3{fV?UpnPv=TSI=e%8HD#w!m@j06b+VKzm2xufGWff~
      zGVU=1i9q-1T}8%y22aP9F+#R#>s$H4qKpT`)<1Q_Q3gr3-PG~EdWE8l$5f9TU8+~i
      z%a|ZF&DMn=wJGY8s>yi95IGg*Ve8aR&&}rM7DMnN6^0+v49R4@zuofNt4GefVs&8}
      z+ntXGhV@!IXc`Q>-qN+^o@NQ>-97ZRkA=-JUcYfyWtynoGTWLki9G7MxV%+&ZROM(
      z8kJ6@M9<cB9EOl-oK_8;Hfk|UBvb$7x}>s%0>jje9w%LH2n#4W^D5oql!oN^*f9UY
      zhf5+KFK+eWazj`~kxD47j-?x$!dXG&@5i5U*2oa9nWkY?nwo7JG&AX9CXy?HS<r_;
      z|0%#nKR*KWE>U#ejez&lT#m<nAf$SESW$gEs;GV*SJVLKiYoCzMU|Z>9^gZS5+5d%
      zd4e#=9}<T67~ueaL>T5z2qS!wFv_1QXGngfS{}?0E+I--MhGtv!zu=`h7qh|3>8eE
      ziWD}G#U@SPORQIPTZf7*G_Zr`lo=-H<QHjV=*fud^yc(ZqNj(R{+XX(pDE}SbXo<J
      zZt_r%;3hkR$YGA|8S<DXbY${W*vSZf$AUV2hQ%*^Qu~*D1TTCnk=rW*%Z|WGzred|
      a1Uxhj$MGsP3~-7TNNyboT0f)FB>n(dH4o?j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5-%ry}6#nkkt)-g`iy{s|0e^JEQHoH9LlQS2S+d|m8A<VBmfDP(*(Lj-|I7Xc
      z9`tF6L=#{Aqm1Wvby;96KD4Lz-0ytfchBkl{pb5n06Jcah%hYF{jT=W{%mW$*VLSI
      zyVZ6(TJ`v_rW+yzhWTror2&W`zU%p3XOAJOW=<G{QuBi=VTv}WKF8}53^PG}!}jZ%
      z*=c!xUBWGf7$I~+LW&_(Hs9v-4P(p5RZC`WQ^IWqvFm$IKsU=U<+Q8+mUpSP>$ExS
      z9)ld_i(Xwu6!(*eA<dwwm8+_Sch^(gbgJU{?os#CncF(H&l)a+QfWGN<HT-xd>tl*
      z&bilSSgcHFSAjutntsRjd=3pgjJ7rGTp@ERVuc{%$;{dtvs5mNc+Bu{EQC5%%jdUu
      zYPyK04C%2TKEu2S^+ugw#>E2>*~yT~0Yk*0Bc%r|9Csobh3|gZclpd(46AD9Mr;Tw
      zh}d9QxzW0Agg_Y@Hu+#*Ff2`IYMGCdyEyRw!$k-p7cVEf2!S#T>~I&aXeg6hoCY?`
      zX1C?IhaUf-5`){c&VNa4fUXPOKR}=-hB&Q7`g$LH0okk~&BT8|wxUYXv;<|^v|`GP
      zX~h-Av_$2OX-UeQ*~k1hs)}HN-b%n_Kt>)Z>>`6bJfM7%xQP*qSfWV2@hDXDDMl!_
      zzV-{tJ*X5`dswFMq=z(xXFbeP$n=n;z<P*9FN6!K7*#A{8YNQNM-Ih6ac;mGDiS}|
      z@SL<5A=X3fEpp3!$(PWqY^)Fc>yVds11OKUmxu1RupKgNQ{Ol)aS6l9Muk4|S1FE0
      MC=x@8LLjvJ7wMxWJOBUy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEu$6kUhgj01`tTWj%FwHMGLprBaPDhNtKZPHPbu@7W`DNd_HgHZb!edZf{
      zXrD}K+N7`jsHXc2<0UGjA?$t5nRV7)`*QyL{qYMx40!<#hS93ojC{~OYZ23^Mal<S
      z{a9~Ac6V~c*g`rhz{N0h>vN_JWAH2+rqNhsa0Wwr46aPAqKoKZ5Q!n&X7DofTMUPq
      zS&b--x?xsD^fCy9;Sdpi2I)(<*?3P^N<?sv2#nHEI5roJiWs=s#Y8-?cZs>BMG+4f
      zdMxC8Jed^n=wiE=NXA7BGx$ynvr;=b=3I1plr)z=wRy)c)^t9>;J4%y(?&IGRt(J)
      zF~uP7nnszDqSIaTNUML;D-xV|>Vq547=ppV&D2uwZXfa5_zQ-qZ#R!hdVNPL9qPng
      zsFk(DJ*{r=y?y9v92mz8<Att$Nl_8XHM5}^CV@w771ujxw<s0b7ckqg%}Q}y$>eDg
      zq7?GZh<W8rF_}y(6=MSC7y@^K__!nm#5=~Z#;HK#w7@Xjks?N49c4-=&@SO!`Ou`8
      z`pJgQn^I?(3WhpjZBR<UGQ(t-s5VeS3ah-auNcO<lr+!V$yH>{|4?CrNJXZ*3L7XP
      zjVxD@qn312v2V#xYR!6C&l!B6dU+rCi<;#_i74n@(o+Xq^moHUdx2J8trf66EsOoW
      zpO93i>{C>i+^48+xnEH|vaG0rd|y#Tc~DXNJ@OD)K@N}=<q@(y@)%i3eoWRYPbz14
      z@|~C+cuscAin0I+N%*mhDXd@}tJuUEUQ>2K!uUuFDL@F*<QZo0!d7RJchK4F%x{ES
      z2$GAmFhMTXLVz4=VSwCx3qEp*7TnHL*D2j-N0+T^bLgXZBiKS1IV<8|o7Ij;{8%J?
      zjDAaaX~&M!U9L+yM@pS`o?+$NB`>cYNdJ|3=~Dd~<=3ulg6hn1-gBghfhaa^QoOxJ
      M;k~5Tv;uAY1GJY$O#lD@
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~OK?+V6#o9?=IM<<O0Yc2TW!-oL9jdu2uTx28yW~9r4+1bdYfKI?yY$^iX)>=
      ztsC9A5;l&7nT{I=J5n8WaN`EYg)?j%ALGWA8+Xnyj@0i@(j?^}(`nB6&wtK;zVn@P
      zlJD<*bql~w<Q=dGY|a|xt_$f`(p`pbc4a2gg`!sKI-QJ+?CcI38FNf4IG_k@c)%xA
      z^{qJxxP#H7BjJJG=#c>d5f$)+Oruyz8>Lh_SJtdd3L0b4WHJ`6IZC4tSQZ>ghDYLw
      z-f&{%_>n|E<3qf<w;<peeXXR$3xpxCGFAr>T(tHGEH4+e`uTXeaFO9>1-yo)jTP^^
      zupiJ3y>y86v^O4Gth!cFPxNd@N<ay*c;)b$fE!k{s%XJ#fldDt7l{l9J5nyJMVkZb
      zh~PoEDr{ILJvOLtNsTY6c(ST(QL!8=r0r=HUaTN7G2PGx%K1^PkW7!}G`<-#GwEC^
      zUC`yZW>iWOdQo6&?D5ScUzQAg*F3s>wo<EfK4zMe0)0&tONN5w@o}xt(}<T8*Nhzv
      zYn@a%LJ6%{&Xs!H=)z71b_ldAp{5$G;yLURu$k3vuWE04t=`7U8_!GEZh_7wXbq41
      z!fMcD?!7AZVLykepyksX1S2b8ZSRP>Z~%uKI4H2Lj_V=#RlI=10?v3UoQTBYg97Ux
      zUvE%F2)zQ1$#O~3C(zm+dKAP6jyZ6&nVtsYDxwm*bJ8s8CEYaKh@f9Z498hSRx4FX
      zk!$l4#}&UX@Z*;SH!Dl1IE5rfC!fxZn}xhK7BLGk&B&G}<UB{4z&xaA5*|THCTG1X
      zmw4BijbN{&@T`hqNs#OG05@4OL=3-jeIj^K#Ry&!P$$yG#1itksTSQ3@HMDx)XZtM
      znq`*OblWs;oK&-*XLTc;3&uG)x^cqfY>N#4$B0AEPv$s!HEy`m?o(#DkkKM~WtEnE
      z%WapP#||zZLBoz#ZmOLp2Tv9_d3H6O-B^Pspw{m_+*fWfeZ6vrD>2+)O8Hs~R?^c)
      z?Q6cIQ1<&fJ#AOu^sbtP;#qeUUfVa$A*&@hq%8k8Ig4eLBh?|rlKcWs`RU@C!<t#x
      z=dk`JHu~FcVzd0%`Wc_I;2C~yCnO-qlp%P~%k*JvB>7!9irqMdgOrEa$T0f&*N<oE
      z?XSW?J34qGFj_hZR%%bOU`s`lC0Xeiz_w~3mOO7<{PMO1=COSs;Qt&O=dpW`a_bdr
      zqH&LH2A;q+X`DmPjeyrPk0XPAD-n0jBiyab;yRVSZku<&XS;?;pUoS;2A$%>b+jm7
      z;^cm3r%##3>A}^`8+1LR%)mQ`q5I5z-FBbdd+uYnDdG<a4ft#_b--trVoI^h!e0Z}
      zS_jztXf0q$5zKo2>ca4%*OJux9gFB3-*Q&=;XLk=tSm|uc^My8<P2_C<Q@D~k=0gx
      zN|J$-j7yN_BxfUqHk`p046!Z4Y~?xZ;>zs9C>LvtP1SG$7chv6%ri~PMP|yuM4tJk
      z@jB&Y7?{E&KETV&J&lhjXHdW=DB=da=J6_S;S#>1_if()NO=cu;Acku#yo%EE&PeM
      ziE|o%Q{Kfp_y^O%f_E#Ua*6ZKhA)l^wKStRD%3JWWPyzbjay(P?jJDD@ll9;Es@IK
      zy)1{as$J&xRJ9qtT-EOId!njMaa$%BVJG@UO@Yqpt2?xZndE@F{G7JUOE$pGE8smY
      T+4~j9azW`>gDgmz+?CvarSJ*9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~7(GL`-DN3I7eOpH0WU3B+5#=batUHFO*R^{K(hGIEM<k&GEJ7P`dj)N
      zc+e*ji6*}Kqm18d*M<OXcxb<!nKS2{?=pY>{`dtTi%l6l3=_w^k^X3Xw$j|Gr>iHH
      zduDs-z1^KkHm{dtNDQMlj<;JdhRB-39dCmnlt}I~NZa)zTR|^_LJX-ELmxxTXQ)~H
      zIBj^Y!;cm8GsuJy5Cww_>ep1m`#@J}L~xG?oWs*pb}_T4V2GjDUo9=KW)uwnU#{c|
      zc?Ay`G@q!VJDyjwOZ>>OxPpfa!+YGRlB3qa9zV6*Pxg_D5XPbiW1Jz8(63u7zQ4I8
      zavRhgZog@q9@_4%by%}WR<BpB+P>vFVjXNs-idR@Fr{~`YmpMH*12anoWK)-i>n<7
      zN?c4H$avhbO-5zQ*e;i4JSE9n70brkN}-Tjtz=~+7~;2rM7s+z<~r*5<M5Kk;W@)t
      zM~ZBop{Gg-#aku3Eg$MMx4*oyMPFQo*+jA<HUJf6EHcb=Q4N494fV2UY>r{FOG(S3
      zox(+l-@!!yA{VROT?9ZC1r&vgHEKyW7YDu#quy|<_KqV4s$cX$yod!cl*oYI6+Klz
      zqF)#hTFdms{VyOhrztV{CsZ?}MGaHZ1`IQ-#SAl|X@)6l_YG6gMhr6+(MF96#J|(s
      z9!$`GoEU&Sgx5i=VHWF1ViRd>VUkXwq(uCf!Xt_d)0k;%Q;TVDVg5H}n@CW2(!?}{
      zXHCQ@B%2tbz?z6sm~SE+I+xDrMoU@qb17i}I~d1nq)_q|M_R0bBJtD70%<bxB<djY
      zUZ%UkmwJh;IVW9U>06su)CSP6xL4cm^H>QOa#Tfu>$^mO7(y3#ah>Ab6^gz##kw!F
      F@eh={G{OJ?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmai0YfM{p6#t#}wwGS-wo<qoD~}BZ3<j>-IvK(Sla5ZX17sV>KIrbs1*)YbeM}{B
      z65}^b782tJH9^IUESl(+fyNjgAB+i^$vzrqrpeTpB_w_@K4JvV|K3829j@u^dHl~g
      z|KEAtbaDCPPXX-5qcUuSs?k{5_oRMa_r)S{UwBMUB#o5s^r_$z&DEW;aD3QE$dCv-
      z@@xW@ZN`Y;JRFHdQf-9ty3j_(t@Q&0DZo*s_Lr}JEghW#6xeZ}3I|la<$qj*LE*e5
      z6p0x<>G5+$;*@?aY7ji3cvz1P=!uAsGfF8n7D*DSL-$Uvm0%0At#@P81jR6G5sJqr
      z2;Dg-MHM>IBO^wlHS6E;Y|6+e>$BR`;)?VW{YEk!O|>f6iV_*y2t{i(%Z6039bQ7g
      zL_8TuMdC4ny{^7XK^ZD!l;`?nZ&a~E__z|rxXulUjfyKORa9XYyN?<vGf2RN8tj%)
      zODJ2r_$~ld)S;dc^bU0P2SdGsgo=A7)F5y-5{m1(a?;NfM4;cR!iRkfWFpOQO6odt
      z&9b$#1K;p);QJN+xw)b+<OftV;Se`{T#t^#6XV8kFrEk*vC-5Rp>o}Qcge;q_k${0
      zz)e@j^kn~Pk<6l;5k)zoqD`diI^A>3%9$_!j$sh^Ym0Cbv}_5oz2b=WxJW1GG}{$E
      zbwpx)ah@~k;wQ{cfS+O3pVy;lo@3=?Je>#|!H5`Y#oWNXqBV@PD;6^nfvBEL8c7+w
      zJgXazH9^j-B=#|22G1WGKMpuqmYM5-WNMT>4W0sz>q974Oq)&otC%O>!iAgI%<@*t
      z5?kPANt_qL!*L`Oq1cLNzr~Wm)w$NN0Ih9~E;cTpv`J!VXOly7xSyXzjV4KNqwp%K
      zTU-t03)nNb-St7E=9pf<{ev&sX^zfljzW257Ok4($hR!S=N!m6Ib}LD7GjFU_6wG1
      z`g=Y5HODNjYYxwWS$wHUa$XcZ^1lO*^bro`pkSEIuL)>}*DH56IW?!J{Vga=4&?hW
      zUi-=gxAKhU6wH+8=-DQjk^QR4ZqKA!&VVzq%5HUX4Q@u`%+qA^vCW}dlbm@Ou<H+;
      zxVpX$|BbY+GG=<q6YJA!DabUT;4>8PWYp4S?yV1fCLO}7CY`~1CY{F@CSAmjCS9V(
      z1SOr`G-Vsa<lN!4;$7uvw>jodJUu`2g#3n5{EkZe!FTx4$kc~FaR`6m2>wPV{=p+y
      z=6n4ZU^;{q@FL@BB0NWSyhIL6laulI@dncwa^VswjLVO!Oy_A6KB3Kw&yTN|E|MEJ
      zs0g>Hn6dhChv^cPkd3@lOr=yyWz<aNbet;a1Xa;V+Qqr}>2any)zAc6yg<8Yn(F8k
      z+@{y5k#qFZC8n3jNAEI!g$|mV@e8(znP1%u<{skB5^srX2;dm+jf39j41>Ibn^D5A
      z<sk2gk85FZLtFuio8kId+&skVTi7kao8gx5l*N$_e@0i#J9r!qbFD=@ixcrIPQ<e~
      z5zpd8Jc|?YOwNpF>27eRx;UN_OE_zBWaG|sGZy}vz?^u8gm8kX!Z{Lp&<F3oaBSlx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|_g-L3`dqKE}VKGe2Y+NHEE7D22KYZ@?FAX$89w#x>Vl&RUa@?ZKJ
      zc+e*jjV8YOql|akO(D>t5AB^hd+s@B?%etP=i5&J3SJBFF~p8|D}7>oHqzX#r_E!-
      zX;{tl-tJaK6%b$;zwxcu#V~|cZEiQ$82s_XK0}~bKeR-I8G=-vqVhWo(N1~I;74h#
      z>Dc^8#1MmMS5H&QQbrXqa+$4&xa(!PY-U-+=w+4@ai3x6%;tynvqmbP%VZQ056Fc1
      zsY~>b9FVRm!H<auf|z88$II9C3m<Q8x$Z~GHn+B0r&Y_@HL5j>K`z%#qqc82wwrsK
      zf#$K@V3;fqZd-v|n|0naY);52&%)L2dL1kz4g|~-q(7Hd+0crml7OcS(|sW&ZKtBD
      zxs{3{AU=?Xu2RXr*%Xkx9a1L9bB2k&Qtm(~c?O?JXNq-O*zZUT61UFYS|-hc!!Q?5
      z48(e%f`BE4*@3F+ya$wMW|!TI&HbaRbepb;P5vJyJP?^!x!r^Zl%Qgn__cb=F|94z
      z9TchaS{B_&V~CVEx13_lXf!NpmC$R2;4vTrdNK3@fdKu22vIK3>ZG#*GD%sC3O^v}
      zemSD)0eM){gK|{UL$a*tf_zWYMR`oqqak@*yFlzK)%q|+|6{}kY(T;$9$^a!yh9rA
      zX$?e3g}5<|#}pZ6Fze}Ziay#~T=<2#HsTbXv@t`0wGpH6tc_6$i8dk>7TO5<&jaUF
      z(N&c@=h((Db})$#NMXC9IM!wL6p5d{ERq%@Pi_y~GiRw2uCMTSD0=b&*)Kg>w=KZl
      r74zYq`8;0SBv4&~m)8jn`Vja~=*X<%6-AkRDnz%27+o&II%0nTQL`rS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2hUW6g>k=7Z>^=)mrJ7t*tJ!WsBNM12$1?BgsY|Xq&V?knOsmV{k~ei~g7W
      z4Smoj5*tl?^+y@+EE|Fpun%x{X3v~+?wz~8|9t-mAdjaiA`B~a(K0?-pDjc1reU93
      z?uFwSM}phU501$_ui>ar7-p|=${jAlScwbn?J-34%rS#frjv2pVi@m}Nia+WG7U@A
      zjjHEzQP&W~coH#8FzCA3|GN18`j#}AG`VozwmzLX?xA(oa2Qf%)3zGNmdoWj+*G`C
      ze!;M6{=dp1L)>l(&*FkkEQC>dn-UgW%$%y2A<AIQYVBpUT&bv-Wmp<WsZ`(93We?6
      zT3$t(Aw7_Eba+rJsF)w>L+|rDul7|ej;5GIdB89?)Fr>e5V5J|bf?vWN@mc6^X0W8
      zhr(resAq<9LsC)2qoLCkWDkiN)}YG)$S^F9=z2w7yG*e!Zjd4*QHsscDMF%#4Hz=T
      z7TwyY6sJLqYP03q&H)bw@1H5p$qB|5=xd;_3{dD7!x*hqdfKI3MwrN^;?W<_+DLw*
      zWdxJ-uMq;z2@9B_r(}nU+ep!hVH$Tr89^wyx%FST>q95F=VO`RzK=A)oR4XO1s_R*
      zB_FZqrE*CpI!>t|RtXb$fqCp<6Q#g$rlT4<l0KHPLSA&^SPi|O(OFr7c7?T*tlGxo
      suU%bPCQ$B4uXWRBu^uXHQ$vC#Tw&uRt0-;c`X%1<NF=%v`M~JOUwZi@9smFU
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      F>kn-gWH|r;
      
      literal 0
      HcmV?d00001
      
      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
      zcmai#30PFu8HT?*3_l|x{QtOt3tn8oh=?l)ZlH*YxQw79E*X%(C<0+oiCMa)c1xRd
      zvwM?nNt-rJ(lo&)w&{|l>7H)szPIVVrVUM-=KBZxBv1SFDSW&y=iIq-&OP_s|332c
      zg^K_xQI>;9fUv7~xZ-%~RH~vk-B;1kof;VI9IDu#?mgCbda!c&s?|A&{;yBfjSO|x
      zkDn1hdiwfK4EG0!wABZQ)pqoxd(%Vf17ww!wFZdR_Z{n;fB+NokPQh?(3I}&Y#u(@
      z-Z`)@)!x$?Al}s1k?Ltp4Wzw&sZ(k*UlW4{$U8kgt@81C#RF(&<~^z2u8PFaK)Sap
      zhAAB4In$3}8t2y0@2A927$B#kKXZNzGct{%<40!kv`b$<-ckJQc$tsnA`4+2@=+3?
      zw6y6z2d-)R@2;{|zu<X!nC}-naeRR;T~~CdJ3Sa+Zqxr;|C#`~iN4{1j?RX(uaZ9J
      z;+Fa>P{Kj7cuND!@TKK{5yX(gzW@_}oSPA4A7sn|+@GC{Mq85E*)2(tmSj#&OEMN~
      zNvbGYnxkxMOuc7<P9SqNmz<~*$vn*?C+Q?IU-QWVEg<<rni?6`I5}A-lT&mGIaQ~U
      z({vg+U8j?UT1XaY5jjI=kTZ2AIZJ1evvoFEti|LUokNBik|kO~&egf(Je^0**ZJfE
      zT|h3>h2$b#M3!nPS*B&=VqHvLrk9aRbO~9m<>XRbN>*qExlEUlm0C$I*X862T|utY
      zmE<a2MXuJ><QiQ=R%sPkt<~gOT}#$z4Oy$T<T_nPuGjVC2Hikz)Q#jO-9*-D9a*pS
      z<YwJWZqY4dgEo*`bt~DZjpR1nMsC;b<PP0IHfa;NQ+JZh+Dz`!UF2@vP43Y><X+uN
      zCNx3r(|u%%wvesbO77SF<N-ZE@|QfQ2gx>VBM<2z@~|EzkLVHds2(LR*UQP2rpR_}
      zCp)x*Jf_FUPVFSG&@0F;?IOFin@nq(Jg&#d6MBN|(H`=oo+Nv<m+aF%vS0hjEA>ip
      zKnKV{9VCZzh#b~o@|2z;PwQ#&jGiG!bcDQ0uOiRtS@LSVn!HA@A+ObI$?NpGmZaf%
      z7T)fDz6pB`FR+li&hSDDZgRiK!eaM}E#xjTTyG(FoZ%%Fa?csgS>z%2OD*J1F}%!#
      zV;f#>A@_jc6&7&S4X-r0-hG3~dH1VK&beQ0a)<jy3k%&hSy<$LjfLFthSyriJ#ToO
      zh1}hS*IUTv$M6OV`2-oxo80Dpqm^WizsclAZ@<|>?moj?Ea3e%yw$=y_uDMwGirFd
      z$p!a2828O4nd7$@Zt?az8TY#w_q!SQdl>h78TYM>`!>e?K9h^?_cQL>8TSVm_XipG
      z9gO=!jQdW;eHY`tn{j`bao@wZKf<{0W!(2M?oq~l!G!g~@KMHnKjVIYabINIA2VV7
      zFnrwPLHC0unfv((lgv7P(u8%y@F^2k62qrWSW65KnPm3CXG~a63=f->x<6}D=6=M4
      zRmJc*6V?^O=S`NlzhF}C{-O!1i{VQq749#aWcJNhOe($osL68oS4~#9zh<)1{dE)8
      z8pAhCSZxg7WZaLLtZ{$Kq{{tmlgz&Rj!EYJf7gT+#_&CpP44fT)VY6P!a8I4A>;m$
      z2`i4_$Bg?YCagV%pPDqde`dn^WB9pAqx%<(`*FtoOUC^x#{Fx?{Tq{Q?%$fQS{Z)F
      zxPQ;M|6sDi{YR4~_n%C5y8mp_?EVYme!^sz`>!Uu-G5`;Pnzs;k1_7Qn`EB1rwmVd
      z`yY(^pBCo3pSG~T{V$V8Tkb~gotal+9(e=ikt_LfT!m7s#sRFsIaJ|3RO4~14GK{c
      zG@>>*gLT2JSRXuw4Urf&MyjwW(v7;vdDKT9#^%Tvwq#YKA!`I%vqsUFHHK}`YHW{=
      zU`KQmP0=yz%&tar_6T-mk79TB81_gt_R0tnGKzij1XjqCD95DC%>31z|L@l|&hix=
      zu)lI~yg=mvSTZX<IgyOUrzVow@#%@A#ETNiocPQ{G8UhmxEFI4--X<JF!$NZT<Gt8
      sB$11QC_o#g;1G&%7{xfk1vrW_q_7O_nc?%s2g3p^<T(KrWu{d646=V!XaE2J
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZBNrs6n^g5R#rP+Hoz$;<3(8qy7<+h37wKG8IXusLiXvdyBS@&mfW@k{uL%F
      zi6(y3#2;lmx9b+j62A1F=bZDLm*?L8{rBS+fH$aWNHOg8y{I<em%Jv2PVLiC^N7pf
      zoV%{*opcAn4x8RZ6rP4s@S%n@L**VJ5b{z;#hc1z$hp2fVlu3@;wFw?n@X%RWcMA<
      z3Ewklm5$Z1%r=Am@yZq#q2qgjhDQv=F~4~-i7=!aeottaV^|x<t?N)6NXf77Os*r3
      z1p^uu88XzuZ0ndoQF)daN|niQcQ|#ktzm`X$++;;;5wF3%z;u2WRPW;Z#kYgj)q+!
      zKl83D7z!=l=5CuyN8!Yo4$qx{;Z^INln-l9BF*~Ufm)8Jsg6aM<V|qCFTw-Q^Fyu#
      zV_2$~qm^9l^%KSG8nzkA@iwu$;qo9j_QOLz@_G|Z)lx4F>|m4bfNni`1_Vz1NZR7i
      zQG0DYJnd`M1sf#I481j)SLs7mifj$Dbmj=93F$D%@+hh@x2r#qKij><{4EN5zp+Ai
      z`AqrtV&CI$D1C|RJf&}eDgbY(LLCd(#}?jUl|1E9Ev(@gA*zb!Sf^gfDwCBW-Uc?4
      zDYA6x#8q=NC`;unR==Y32N`ywjPH1HL(UXb)48~~MQb!@i4So@V?;_C(mxVsoBshC
      C4$ema
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}Yj4s}7=8}0m9mZvaJZ|}IhD%<H*X)9B(OLoGD(~vS^QMk5lTwCw1?^bl_m}n
      zP5c4=DC2v|Wgtry5_-;ip3B?kZTsi%&))!c@lt`0VW(krvMv2w&pK@*`{Af`q&sd?
      zH%)$8skL}rR663UBaVf`^|pclLvn)Qa_5{ok~j@#P))nur!uUUJsZQ$P9t*+VS*Mf
      z1b2t{%@JOf3yz~-jQ2v6*?q$@M4n+KF~Uwjl2wM#>#ucwCJfth70fflhFz2@qZ5X}
      zfqlwD@MBSfijaaR!^RMKt$zp++>+oWVkb(;stShN8WaQ-tT3z&+0%C$!ZH>md|kr~
      zW*HXBhQ;4^+BNQc)N3YZh?ecTZdP^2ko!R~Aex5DkSR}0;D(t|PO4pN4O5L@pA^Hq
      z%SFMmY@y4n7?uW^n!44<65FsExnxzg{!qgsBpBwtIELW;+xrjSFA|>e*T+PoefM!q
      zhMCW1$89qB6H?!gjD|FJq*I1W8eC8o-jgANPJSxN<ezGIhFv-q_Gmifb!>N>IzKdI
      zgxfa+laT|$JsN|b-UlE3XcpdzMo8BHozSB|^|`@LLzq@|I`Pr<ek$F=Lh2VHClQ7o
      zVwZ^1Zuunj1MwbKFR}KWU_NZnf0Rf-jx6>O!z*kdk2_R}_oc9jyR;)wYG{j$1GL(n
      zvMx|XTB~HSmhR%gm4WONC{pJKW5Vi4SVa;k5@s^nDdD_#0%)lo9!v2qvRB$+FQG$f
      x>J4S_*3;LBLHL0_!xQ?V&`V6Uy@6Ix=Fr97H>&kRnDsdC#`wVz|G9^H@elY$0<Hi6
      
      literal 0
      HcmV?d00001
      
      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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
      QHDyjVLDXc*@~J8R1MaMjmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~ixn7(H*Y5Sm>mPy)p&HnvR@2#rOoSfJI$exw9yO^Kf~&Jwn;W!dc{o7n1|
      z<DGY2>ex<aobkpBozdyUjvcSO=%497P|y4Bl8ptXGQ++f`#k44=lR$?`TO_B08ZnB
      z1Y!c|4YygiWwy*hecLXWHQ#QTzU{e%3--Ew!(4N$1T=v`W#X9bM&a7pEvx49s$tb_
      z)2UkZ2JKf%?+A#i0{unLZTP0^S52pB^)QtD69VzAnU=u8vO;S5wo_O(Z_o3-HM1qq
      zyI{Mve~!m&t}37vy>%;zIED=LV<3S;0z;AK6|=EP?<9sXbN~XQ29nU_?yvy^x{PDH
      z)=G1G&8jOE0>fpmM!F_RQ&o7W`I~k_;8^*&X&_TATaw&*ZaU@$okWSWH!Oe2x+{>$
      z2Ew{hG@sjjrQ;Y*BygO0iquevfeg|VPdEl>$<#^4&t_ew>voeSC-(@q+d5a3@$v?8
      zm=>7(e?Gfm7<5Z&JW#i`y_Ti)ruF~}!p#_XO={^4tOfL%=lZ7YHuiV?Nb-Ecz${)D
      z=xb~?{dMm%ml<!^pED8ciITKfFz_bM@|tv5fK)d3@ou)#@GS#x;{rL*up(1Blnsla
      z8jn}=39w;Dq9PPM$6;Tym30)cARm_vTmg&RXZu#&^u0P8?LRoB@P1y$5|$Gvvt|+E
      z&RYX3xJJ^hb%#twb`ZKdg}{LjMK7YldJ7K6p*>_0P|_k`m*-AM>1PWhD_*l+vo6^V
      zlQ__s=u?s-(wvq!M>CEW(1Tu{5<JDw2TcwW_nI6fu1UV*5b}ADr|a|(T#rmX#Ngy3
      z41f3#BflXPZO4A$>lnuQ93}{Gna>iPuQJpU|3P2{fg^a4Cynqgh4719W4!B;@DWf_
      zT~=tissKg<qY!}Rn83?)P2;FiCYhe6jfB!Cf5q5T8?VIhGmil?DH!;q3rz2T={Sk3
      z0?T2Ns|5R$vSqr)36`45w=osR`w}=$WVw&H4k*KQinMSTH&uwEfpaIsI8Lb$1XRId
      zWX(@N7_6IlYH#M-`!Ek+(<tE85X`4y$vmT&t28X<{|be)aXJ?22)2=oQ6?2=vISbq
      zz#YcBixc>wOHQUEClkt%Ih47RayZQU$T<_kPlWC+#Fx*JGuP?ADSFD%iHK=X%dZtg
      z&{-m6mX;rkki{%l>6nyxXoEBIEQxQr5Rx5)MVt!}eqbJDPR<4h=LP;mvCR5h6!-)2
      zW$rEsti;b~KVmSS(x%(sFJk2@O{BE^;|Kpd%}4z=p~mf7cK&x5!}o08dpM5!%;P=G
      u;elc@8$=74^kW)}c$Zwp_=&rY_n5#5&QAq5$Scj;RgQqh_f>LaRsRJmYHkJq
      
      literal 0
      HcmV?d00001
      
      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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
      Nf0boFQg;=8`WHbr=*|ED
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBrXn6n<_<vrE_(2&JtpN~&!QDNPDhs|J;nh8hYaBms<liJRm$ZrSX{n+*dx
      z<BT8t8UBX~Gk|tR`>D?Oqa4rOO-RGbjFKTY_uO-ybIx;K{{H9pKLAXjrohJ#uUW15
      zbA3~fi@FilD~_?LJBDq=@AGGR%XE^5lKghl;dKRmh9TF$)U8@PQ-01X4nv^nJ~P}{
      zJPGY6OoHK3a;}hGOBT|Z<x(#7Ae}GdiluBOS72ai@{!EDw^BBj$)<9JB16c7cKzlZ
      zVOTYSx$p)|zL+nhmP*UXr4)lYQ!x$8a6V_~i%hIB_~+~@S20AcWr#6KIMz)#*06=s
      z5Avd+A3+u88LpkAcQh4gb3wxZf((O;hQ*g#^)eR)y=-zBvt7~6HC-6;-WCRC+`xk9
      z!xas0;VcE`d}}lrrWXHaJ&1w68m9t8A`}0Oc^U6j4QCJt;yqkfaIL4HUYRxA!21jX
      z1f3Ojg9~SyN*g&|fVR^&YZAl+ZYqc}40rn^Z8^Ngg@#GoqS`cc(c~m!7(EFzErX0}
      zP@pQ9Vz}4~BrM%b31JHbcX}SZuDI7S%qkZuJ|s_RYg0FkYB-2#+?8a1e2ULCsqv|X
      z1ZJq6^+tnRRfbz9g?EgGw#S4D>NYh@9$S3UbvY{mlMG{#^l_>>X43PVhWn6h>)2iv
      z4Cgx~?Pd2i?yC5bineOWo(em5*rhY9Vu4B~?}o>A5Q|t=u*48{36vu)c+F@!VmmGy
      z)8V=HRYL|@uizaK!}wv)J(eAX!~k+AD9AHhK91kf(y$7ezJO`l8?6Sz_0t)ZUUIx{
      zJ3OJ_tM>dIT}(&kFNm-4SivJ2p3`RMs7XQSR@2~?qu~k0y{yw#)6uO8S5TtFyZz=(
      z^SmwUx|7<f@P^!u3Ur2%uF~NHO{3lvw87|qtUHgQLwbi48rxvrZixz?H{_ZaJ7wL*
      zq!0g9nub1F+J2~VZt0gQN5eg7SGgzcA3FO;s^Ki@pQGCyI_2L$XmA(9p^;sT{z_LL
      zF4Ffo7cxnJ^JF@WOYRHEgced8AWo-*I1}B+<*sSK6?!I`r+_iMO^W?^2je6m@9YXe
      z%cy_eLHIBH7#cjlyAPwUu@XH%WEZg=#D2lTOWZEL#B?$A!9G5U?%|WrXY@sHd-!4x
      z_x3UW=lY?}gN{y`blR`O{sj;001p>$?qKvctoZN>>r0a_)(=qJMVJD3L0J!BmOf93
      zz-@ewZ`wR8V}ycSA?Yenw@zA*h@Z!l&J!Z=DQ4)LCG8~2)b17PwlYa;sA7XYCbm!~
      oG#fwQJNyL4<uOc&Yp_UD7G(p2WLG6xw#cU}ppSlYdhy}ezj*WXQUCw|
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+fvg|6kVrn2rW^{rBJ9Mg#v9r3aDr;<4aMeOh+Axy!aH-LphKpOp<~hz)$$-
      z6VE#0ZAL!8|M1CwQ1=O$fsQmY=ejRzoxN9n{`r0mU>Ri<5r&zj-7fAMM@G?YiDIK^
      z7T2Fws;xsSx5;;3xsK0G-*HvM7={A3wlA#WmS}Nz%kT~u5-#86F1JnYF^s;cT{=}9
      z%c5xE*ky(ue@}S1C5G`@H$>^RCT!t9VOY&~cMCBjUyr*-+%3M`*{`mbHwxPfv5M2+
      zaWLG_prSW{DEc+Tkz|PG3)?CN8HTUpC}V~-DCkLG1Zfqc4A~B<A=qnMn1<)q185Cn
      z7-#5fa{uYuL&x=bgF(+<RKYUrrsPINC>O3TOdPi`q2e~fR0o!9M2#CB-{dww7Isq>
      zTf-epGAO>RKEuG3ltDwv2}~iUVw$1<@`-^-!whB_dOdTGH`*3w7z;^u_Vc2M{WW3p
      z7wy)LZ1Rru9;`X0VQm|(kmv9+CVR>-*R@q08lv__MT7j)-5N+@l26-mYT}46*#-?k
      zqe_u(+wQ{v?rFF$d#RWfH>d`Qy3=+|{!B=cS}5H``FJ{3ZJWCl%kVtzsVEWhe>Dyx
      z$oZ<=F-c;G(q9sxL5cv9NvWprCXNKz`{?uzF=<6fpFe}9f5A<C;rs^%&M*{RRZcOi
      zf5K2oSx6}>Uy-VxD2xv0@BjY(h>V{7jO>RX<s8iu1OOZmoI!FmF^C4z*u^ZZOV~%A
      ztUAFF7z(tLUkUSA2uPN27mGwWg$#=1uMojyBtx2eWRXwFMb}P|mYgyx->^bTm0MOn
      zVJsuJ#O&84qY=sixHS8esf|(EPvbaXGIEhGWD-F(KxK6MfMOz8#Y0+UnHV17G4KyC
      CkPN{9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBNrs6n^elDbykFuZn_#Y(v>l1ZDVwW8mgc!(<8g!IbWb#jVA*Bk~XQyD=te
      zV)PGaV#G*d{Opf1o_m>NV-j7`_MZ3WoafyA{PpcSfN|VX;bZ7ow~CPseM^rx1v8Rc
      zHzIQj@nm5$ufoqTRAqI!v&EgrvSk{&>t&?0#2>1tXJ|Q?gH+^i>iH~pT+_CelXDC#
      z#n2SDE!Wd6FRSN^Tp=vt#~6;J6SJAbgY0a2IkBg19QnaeKVw>^ca@<o7|JqeiKhnN
      z^eCgNqMaHj7hd88+v8<3gFkNPxQZ@@&azXfhdXN<$vF+3=n0@1z2qBAhO!!tp<l&u
      zhJk|tON+^jZ9L}Qyl!~5vmL+*oTMJtxmTs9nFT}Xe?`YM)L~GRKE)6Z*7!?!v1E;2
      zppav)su>e=X-=CKzg;Y>ap#`Cmgfv@Y1^Rj>qG*{C8ghcWV#G}=_+O`c#knCIn(jB
      z1+e=y2=<Vr_Vpq(&2^W@D%##xY6#=3icx}79!l97z&VUDG|&*`GDwb7DxwU-hv6Hd
      zjl1g*(SimI5u6ueyudISJiMnv`w*OmaWQ~NOfjee$f8)(&PoymUZEz|!niETO*3>?
      zuvT_R2`1{y98I|Au$r{!E`L(wmLce(Y3IfC7&`toQ`&cFE{#VqNU|8B|I3Voy(&=o
      zw+d#Cp}o3_w9_4PJ;%1z>4L6O#f)8a3_fp)B?^@O4#os~BqlA3JMp~kx}2H}RFZ)~
      zQ1kRC@SzVX8tB|eciRUIJqT3DP13I!Eo5sY4?lUfp@UA><QZrU@1k=>*+F;RSM=>*
      z;FC;rn%)`(0naG-Ifm#IpkNBXFwW4IVFbaNv@Z#iO4ewv{|iD>N|)03;w>6F&@`p&
      zA`%|$qEh3#2(Ji-2_apY_V@ZfQj8CxY9H$9{fe@@#!<XMJKmum?`eZSNE8!Pf%2D7
      zh*JzR5?K^isC9ukimS3g6(L+FokI3m+^9jDAzx9A?KfR7Q+=)|MR!CtEL#3kij_;z
      c?Zq6;Qdkq1mz*q+<ikxQ>8p`GLQe|#4Yhh=!vFvP
      
      literal 0
      HcmV?d00001
      
      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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
      W!yslR^Yd$%M6DHzU|h26ul^T7_&}}z
      
      literal 0
      HcmV?d00001
      
      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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
      F{{b)^bJhR=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3+e*Vg5Ivi;O}oanR$K2NQm|Gq7R47ukYYgyK4|HC+AeW5-9pmncL`p=2S31%
      z5@$p4`p`aPc4l(s?AbH#AFpo!8d$erFf@D>J2&2)=Y#|4^!=XW3NI3uLWz5+{I(a}
      zR+CO!4n(L+3n_;AWF#KR!1?;YkQrUesJh2cbtlsv5&l>zIXYq3s!cPn-C;;IhkcO)
      z!;FnIG8`smZCJ=Nm^BS3xKfFWc+k~qyMbURxx=0pbi7dNdfZHDsSNv5-23PKq}vQ*
      z#Zkthg$l#w<hR;b(hAd|wv~Zj4dbvUT2jla{4;!4o6BIID<#5a;6;%jsrlb)zy_IM
      z(k5B4sGXq9pwB{<`Z>xDsMZ}`-+7|&0{bDs6ewm01Dv8r(N1!XIh3fP)gnJ;IHXhK
      lvh_#sXDocr^Mv_~ZfpJE$c{M-EYp;M6|B<96P7a8fKQIWl8gWV
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Xv;zAWFG<lpMke49{Zq_;4L|%Z(n}h8
      
      literal 0
      HcmV?d00001
      
      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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%0DNU
      z1n0vCFz+c$n{f!~83$0uaAuo5WrU$TT!i&Uu)&Yzedw{*%RNOHbp#vzXqb5fn-pey
      zCwR+_;GP0Z@RsYb52wy1Q66j#bx-j2<B<W`O6A82z~>W6%oU5q)6JpnqVep&Y@e;O
      zlV*I*2EO!Re8bEE`{yWjH;4Aj?8n}L{d9g7mLN=xHAo?=$IaNx3jy1)lNXh7H?J$>
      z^Src-FW^N6V>Rb(Bs_2(LvTILp=1_Xh<23tw$f@FfoW%8W3;}8);qBt30m*M-L&*D
      zPkfZ)POj|2I-YV9da;40+=9K>$Ww0PIk)2wo2Rg%3nTeFoCD`DzJ+fS8j-z(m+8?g
      zuDybN1ZXZ(c0UeiY6NkRHoQFBneC$PLGJSKJej@9*<L;C=j=tEa}eL*Op%jEC>PlM
      z96N2$f6F%keTN2pq7CX2RfN|x(sgC8<GcGDti2A_bwrq06S&d!7P93Iuv{Uqd=glp
      z#Bl|hs4ur5rCdY0ufc+w;1O-F9AGbb2kOf7kA*H-zIOnlP|5VWl%O^ek}iAPNXNSv
      zUKzoE>^{J2P3EtRU3|(Y@@`&M<T8p}Mv?b0Kq8k><T6@hXyHFgKxqBAhqHUBwS^u$
      zNDsPM1RiDq=%FWD(S*lIl_%)acG`J@R-UBor|8i$gnT>h!w%Zr#huS_XD@f|;m*Az
      zOP?k}8#AB5w}~*G+50BmB3P9qqQK8|(hwffetEchjI$=j;|F+~u&%XNJv_l8g5nu6
      z>*wA_ZTKbY!}uZP`K*73ds$Bk<}h&#`fxxK;7l9or7V^@>x=Ls&4c>#*HM+@fzRPV
      zJu`fh;7stC@uUNBl|(15R-RLVbl{V8kkViiqN-u$Y`+}F6(NLw-*5%MUi1yrmpeZe
      zE66soVhlMkk43nTDVt^~w#IJWW)q_=BQTB8?ZkB4s>e-y%Dc#S;T<iPQRFg;yqA#?
      zeHleAqsaG?9U_-e<T6@pN$AS_64~-HrV_X5OxKH<sFyJ@7ZQm@Ou;Z-qnF26&ySNO
      z1N8ST+8UsxH*hDvZ@P)?Ba}T&WOvY$XYnpQdXKz$pB{Wj-h9LpKjs}j(agDv93X1B
      z5^}&UAyaJ*70`or&7lJNQK(CZhn`45I7H@j@%K&o>!C-dXf}E2hf`Lbwb@j_^My_C
      z^SMXQ`uXg$c~wAOEzflmcUd`Z_Y#X$PA^&E8`MiaaC%9%Q(ycJul`THWbAN_#Qz^Q
      z603ncpJTxd`~wH@Q?lS^Y#_g&mCsnbf618tis=8E4dgdO?sLZLcWe`XU=jZ#8^{-|
      zGG8)h|HN$lk`3g~MEx&pAb%z5e`5prJ5m1!(fg;XUJONDnDD<f4rv#AZCs^YtR&-y
      zsTb-fk@fMOy}DjZwUN6nUoSp#P~GgHYB;F=ch!Q;Wy;VlVV4B2{wA<q_)RcueUNX0
      zD*l0OJ_);$-Q3jUTAj{dL4QaWf-OutN&GE%Os{NV8Fv!fY6JfQ|DcVtlm}JHhic`=
      zd=<a~H3C<wk^F<!D41$A{~|O7YgGtobsBDE|J=m!A$2;s)p$IjCZb23fydNjY*kZO
      z3yZN$or&FQnhVz6Tr&6C$y~)!FKwUz)wvX2kW1mV+^k!t=3zd2^i0xqtDZ@^ZgZvU
      K$Gm9)KKVD%(Lb~R
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      z�{{)TS!_?Lid1NN{8Xn^2FH{E`N)po>);NBPyDOyxM1|I<k%Q&%=dXVI8!oyOYa
      zS-iDmH^Du?t%zZe5N^W?998yj2u_CfX#?x<cI7jH^@J_aBybH{6uAU8AgMg3ibOVX
      zw<HovK8w~FTwC%PSEol9h|w}GvCvmkzE2i#IZZz@j4iabHZp@v-O1DpIu4)0>h9F}
      z?m09JCT^O=j-J-kG<LO~Kcjpsr~L+=TF&U~<&2Evderi7j(>fwj??P|SMOl#?nD#r
      zBFnqU>mG$Hh(b$<td?i?;TE#0r>$;ggJnmXz3AhpiG22Ru8L#6tN2^U#$J_;G$Sgr
      zQBMZ_7oaC+Fpx~GZJx!gPjfl|w@i_|kEZTtkRMPWWMFwL1R+O9@LoERqxUfZG8OfB
      zKeZL%EFalrt^*-RFfw>XGBu0adZ>V-t(86>=J`jc#VO^pDcE21X<$eZui>sVN0Q_)
      zM5QOKlN4*{X(}<o^o*TE^BnBKIphZU>7K>-EbdI)HG>b$;G?s+_dI7m(Yx^iY7-Ck
      zoWhdCCle2z#ix5(6H_zz!bx10+8RwZMrZKlt<{ayFQGY^Y^+XveFl%cfXAnCN`0PI
      zpHEEV`;6?V3s{;=rWo93<a&x{XCz;_RHEEVV!)%!=VQ$E<7nm8cP&n16P~~pJc+IR
      z-HxYlGoE3_r<u)J9L70}U=Delr&3<Pz4$2}!i#*Iyre?5R~7bDF=SJCj=MD$bOb-d
      zj~J@$v=NM2`F47qb|SQ%qOCcm_yDfPk2$L5nV-;h&<-~9S0*@;_*n_Q>>|L+%I&IP
      zx#%`RI2X9C$yOZZr-r{5@hc_6K8}@Qq!wOIrq1EF8WC(}XDC%@Aj4OP<<E5TYMG;Q
      z8NR|*>4=>*bR>JvMdhYDbW<nY{52)3_8k6Rg-Rc<(Z}no&o|0^)D_9p70LXIgsbrH
      F{{c^zuNMFS
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^-E$LF7{;HIY)G4KX-S*3fuf-WNz#u9Dk=dKYKxJOmZr3PsCApHWjpCEZZ@6b
      z6{8*h2=2V<ZJm*Jz>)Ea3;zdix$$pMe9p<&>QF~7vf1;V=e+OlJm)?8>z_}b0XTzl
      z7y*IPYj!=mZfqJ^cf-ooOn1|Cv(wJTs%4v%>8eqy6&#~tx?yMnF(s@T_FC3AB@nJE
      zO-*3<ZsC=hoWP+AmTh^L1QMx+rtVo)ma10GvS&GVF1;k6O*<7cf*^WygrN%rQ|YBJ
      z4hsyZylTy5*EJp#teV$@eni7KA~4vQ?PSz3fI;T0SzntfQ$B)T#AW6ohEw_UlFX3M
      zaTLb{x-8Fh4bO1};;FQcG2e{mdT<=Chw+*~v{SD&t0RdMOlzB49)VgJlv{JF>)d2c
      zmLJn`5~o<L?AV@R*)%QIG{i4W-;v_eI#N;`G%6KYJfmYA6EysuQ7fuC^hYV9-4Mv?
      z2;q=ict*!ryv2oUCShXSs_$HyGy;7Eo^r9iv1+=D#%h%&MGH>Zs4f|<CCAO6=H0W1
      znJ)atUg2SP8!PRei2JPU91cZY&EAq0_%!X~r9_iwLN|TWEx$P%C|4zNr{mf?6PAF;
      zljBRvZnUw$DZkAn&$aBeoZlAJ(##r}*(#g&WlPq=m=#EN@+(Qv@n)U6U1`f?zkaME
      zk7*W^+g36ey{6-ejB2*Aq1^4HY61x85^=$-Id!*8&FI0Dw&`VWE)>{CLEO->fH{F4
      z9&l^1j4$da%6OOC&Um<CP;0e7ufHPAA3wOHx^FXfeM8<1c}c^#)4Ge6lg-cl&4f>N
      ze1==xk`JmTsaA9>%ZVZ1Ir_8G^pe{DtR=f}_!S?ZDQO)}u*-w|d<p*8>U?T^52K6E
      zZjS!oSVq6f>?86MdT)<EL7%`rV%PaLEKuA*a`FjA1kP&-?KuV}651X{A0eV%-dN^j
      zTHw*k-!c<>nEV;R$CwJ93+*7D`4LmG&_pb>hc|ygu(TZ#v5*Wt`~KyNA6PVixA{EB
      z>jzvVNFGsKLju<^f;ry$dEUtzc%S1dSmbjFCE8Nv|9#xTJ6v_C0nZ%oa>Q-mJ?h!x
      zSiyPZSRp~>1ze;FClRCm1J;@6m*+!VrXiYaH>y73T4~ITGUWjy(zLPQ#T`T?@yOZn
      zJzU*g-VTV7<_><(jPK)<T`mftk6*<ZE|S}ca}1Ub5wssBj`00B))j8Dk+zLHh61<6
      zdx>KTC_o5yBO~%`wi(y>pOP3uZH)Qi<a2~3cYQ1`Bui<R+6Kc>Ws6G&j|_DTVv}4h
      zMzN(hGL5`#j#Qf?+2rVFhMP1xNF_Uwd0Q6U{x`O}2e5tqPqv3-`-W`al5Lx856Sl3
      O|6==sYyyVb^Xgv+-?+s9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(LS#maZ#e6%@ovRkRnR-cgI7)`Dp9ilDqL?FvKIU9#PJ`zOBn)@O{?
      z#0O0z(Zt{5vwCK?O2x+5O?GzXyPb2sZ~FE7`wsw4U`9hk;QW$P%dMDC%$)aF=Bk$W
      z#PV_l*Kw?}FJ0$ujbGkv*R>CCKGYBs=m|n?(^<;RE_;?)5r~x;EpW8dF7tgymd&ca
      zkt;8tS<j>|oh1RWAkaA`9qEq?45vz)lTUeWZ8hI=e9!k7m`~5KY{9KqI-=NWAPzka
      zfo%pfba5?7$GTa2yl8o|=Avy0BuZ}CwC7Aus(te?<}b^tK)x;T4aEPDgk(CF6h?tv
      zEhs}}Lhu3+Ns$sQ<|YY&s8^$K(Nua)q2FVm1D!hdV!wuce@K06afR(MZ~*-z{?wGd
      zj)OR?;gG=4f5~oOH~KXk5lFT3Z^t%{A*2kXkrC*6<XM(2tG+;Q$fV{=J9pXh%;zN@
      z=XDHYM8h$G9YGWSG#kj_IGLIiO3~Ze=a5-Gy`U1DG;j*1$*?M4uxS)#TFG(Nz^Eb~
      zcU)gSdVblqHJlgNw=pf#j&FHhZPm9b#b;$}RZTKMS7de7^vlZvnN-^*|2>`QIaTqZ
      zfpJx_GptBNYGgZjjrbGabaty?;3|r=thkc3VyWvYRA9=$wE(RAg-Jla=hnQkH7V67
      z_P5h|L~#)?rq%5$*k-kAaWZ>0yCTU7QDTVj;jr-QiW+&YF<N*H_};?ZU3w`$Ba<C|
      z$9MECy4Sdmpoj17z&6VG)AT-v?L0dW`XhlI+%Xb6(aUV=s}H*vnN%ax%)cHW0A}ha
      zX5L`n3%WB64AwC^U&kqR(m*mJ-eMpz^sw~lHICApo#)!XiP$T2C59R}lU=W)GrRtg
      z{@pKsyk8>(o#3_;(h*FMnxc0#SVQ0!Xa(~08>8nqJtqkG5`h*lNY5mSjGV*>rkLXz
      zE^=R_e~FJGX#|93nk19BKwBu-WRsAd$r3cdj%}9f76rdeiSGoN`sfd0_$8Mfv_r`?
      z@mr)t;#4PtnHc3)qI~AE6PFseQb%l_RVLTyVNmiu;te?t1Z|yVzWcPy)AE4wKg1p^
      av~U<~R*qnr6(YEf8v!2vr}EmC5dR5%22Y0o
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVU3U{z6y3K?n`9U$Z7E1g_z;jJU;{-_OhK_y45WY*S_=wHliPG4ovD*aDF}iH
      ze!i#=3cTqHuiCDacFBUp^3f;$3V%S{cV^n8r4KB8NbbF7&e`W{pL_rL_pe6)cH!GF
      z>IC8itDL%EOc*I=%uJP}Ga;Q+k8N2p=bE;4qRgFh+_sBhgalT4nnlAZq>c?=po&1K
      zWL}X1A|ntPGbYdZ$H<5yWzj5Ap)Knfm0h!#I^a0Q<t)W%frf%(m&XOx_}@LylcSC_
      z@`uz1YDBtoMbk3f{Q~vz!~lKu*m)TR<IvH7Mzw3v5k_MetLUg2Tn$bHt7$mS3^cUj
      z6&-8QF3{K=0Jp_!-1obVX%*6m0foFyhlXWgtQXk(qD9)WxN>1^6lksnma$w}kdB58
      zcvXe6nX$z)i2)_ps^c|mW7@9m2O_X4o_Iby4KXB?aZ+GMZTK}=r=K@dPIjO(jMo?R
      z(KphO!cKwZxw7L(%k_ne{rl3ig6Yz+8*i}Y1?e(pS5CS;MWa;8+D2YF0&5opUh|38
      zG3?Rt7T%_HX=&^B+N^4gRSq${qa%&wWKhX995;-80<BAMOvAf45XO6R=~fw7((yie
      z$O5CJ$SANiex{~iKDE<9={+-#vtb-$NvfWD>|)U$6Aj%sq+0T!O5KO@?5ZjOs}Adk
      zAS%$5H7$9xJT@$ylg4n76V#Hmb4GE%a7=X$gbj+gC4ufU*_Y-ZCrOwZ>hY0^kaY{W
      zqb4zvFAPb9Fk98{O?rcx@N)thC4I)EFKqRBu;A7Z*hdz;eAud}r`4dJ@#a6H&Y$Wy
      z3p%ei@_F*7mM3#vJFQYRbPRi`UNTHq8Rm6JjL?vQD#J|eU<Ia1Z&Zh=95gy|%$|^8
      zTohQpaDE-9JnqW;!O5H)S9c`KYY3$ON2Y9k-Ykt9Zf>-Cfv`dGB{5G~X3i+7u?xyg
      zYH7T%KGQLXkJW&X-!5$4By*_jd5-D=+g=cnIdO_Za#B^V6<2h8uG+B7;Hxkpd+f61
      z$*<}70@nqi(khQh$8gEx)eB}RxHA&$UJPIAnDn~hzYMLlLl-ELSN(R`$;n<*4aM4O
      zmer@IQ}shYS_yB;LzymGNBHnJ%7eCtBI$oX7wr>Vz+YeWs9cjgt(HO#Y)<<wun
      z)89PRaUF?FqiLl!jphev9cpQt!J27wOrhx^Vn^z`?_+1O;{jqrQ{b{;sAC43D%diE
      zcz?2^YZlup*j2%s+*h#omJl7uN54IL@&MgK$yw}wj1OkeJB`er^i+o<{O|N)ImdX<
      zGdhVjjA9+>xCs}q7Z-65Me3P235#Dlk)_RQ+OET4^x-H^>#+yNn4#dFqaNgw;;JMK
      z$r&84y7Se17~NOE3G`DjN*9|0<K1({?JP#sSo136FxHY6#~i>Zuf9<XED6xO7+`_`
      zmlgo{jY=vi2N6685*nRCrh=h+=wl0}(EK~n+=R|Eu9_}TG~b6KNmia#Ts|4RkG2+3
      z!TI|L4f;rTpFQQKzJlCiHq_TE3?~1e-vj7HhGq8~(?xQC6A;B!wBQ=r$@(r_XR&Wk
      z^A<I4vjsO<yYF~CeUB0RFyEXmG_h@Cv_DJw`MW3^Xb0K#(uX3OHjDA>c1G${YqY|n
      z?~km}PxSrsJf<RY856V$u{M{8&Jk3j6<|66W|GXT;PON4V0InEzB;IA+eAt-;|gxf
      zvGQrvXS>(HU+Cdi=6VNfaF>I02MOGp_pecM6JOE)Dw5PETpjD6h<qDgt85rajK6OX
      F{SOELggyWO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZY6+fKqj5C-5`P*F}rR20uAZf$&orYu<L$+i&hno1f1scljY59fss;6oW_32laW
      z`OW@2o$3DketiSLGjvK&V9=SwOL-Qo0y+Jh%JVQ?g{f?($s!pik($KwMG!CMCD>um
      zSjVCup2*h6EF3QwNVa2nmTKw#3s<__VZby7wd~#~h?ZgT)iJQx$fG0fxSC}aaS9wj
      zay^GDhMyga@_<3p)y%%meaqfD(ecC>>Yirn{C(@hU{K9^_=-9ZeN3DsubG>og+YV6
      zuF~hes_421+BhGrWewg)*2aNE7MIMkqLyV{2KB5*x36x#<}oNc+#5P(mSYSmn~E3-
      zyLEX_!JYDT@QRx(({b3FMj?aNzvp-oFR_O|8^k~ov|$(aP$g6W_R$B#WpstOimnmY
      z(Gqb3eMsCy9}yp;Pl#LSQ{pppoA?}cL41k6BECl75Z|Kjh{gQ(#8upq!NYpj$3HT*
      Bb^ibW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc@~6#k|ZTFL@apeT4j<kkzcC|-*<su*ICL<kX$4+~7_;&zMM7RC6)i;wu?
      z1HXV5A2gAYXkzpQ6MvNPoY@5yFh;Z4-8nO7zVAEVoca0d^H%^vxEFv=Ah~FjlS}%F
      zp0x8uvMB8pX(t~}jAu-}Sj-mm1!<4xm(A{sKA)5K<!S(afn#cesauQ5$+;ytUlORz
      zX9^2)R4+<_aCU!vs$?71Vp^b?60DMZS@IwYw0TlJ3zT0oVpvA$hCrg<ljFj9X1u$i
      zGXj3r5keK}HPoU(psGJQQwtKUp&B(j3Tp@;DA1TSEcu|EpOf~qK4&WBg?Zha(QSic
      zchX<V8AXAi?0;HCMbwpYlJ(3fUs_dk)Px%OysVo<(dsSLaW)-&93sglHJrdHfxbUv
      zc+A+_BM>CANqX&r=iz3MEzjgC+tkI#?c_J-TjW77rx$Z9T3I(9LLZ_5^dC5N=NL3}
      zqlYn~OjmFw1zP%}9!c(r1u#gbeYh`1%Z5oE7DP%wJPBa{=lRqw9J0d2h|X}vMGcp5
      znFQ<0%hFm981Q<sn|efnOO+1dDsd$kDa}YDhX8gh{0jgzrFhB!w=~3&5C}~b%J#e*
      zGq{J^j^3U@u3JDGw=8L^hLyzt?h5q&TT79>yY~;B)D2a1fqnE)KdTXSGySV+r54;R
      zbrj9gI_EXUwxPx1TQo>)q3NUA&`jSj{PbO-uSwhTXn=(ln(1`5p%oE|2mozFBh=_P
      z5&39L9plohQ8v@0;@=@Q5Q~3<n25zbp)o=4Haa%Y!eJAIO)9MRzptW)_V~a$+Eo!{
      zx{@!TVHF*CMb@rj5U)LYQhRz*IE^#JuAz&xMhL~ncf-{)O%dyf#CK2^PgHPr6I$X2
      z0{%_-J*-YeZ#)c<J%$L*DF#AOTwF1Ay36p07}$+oE^-I;{Hvgs;kiy{rm2D$&G^>#
      z>ugZE*2(v`gto4jH3!LM7TirP%OqtpOV1Y!%!ZTO7;<=q!&fR8W}*tNg|E}Nf}0;G
      d(J|90>zxO@#|8J{w#phshW^|o0(UTm&~KN>OZWf)
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~E|N6g{)MP$-23ML<DBzT9nrDk6&O2S~tdEX44!#NbPTVX5i1n{JoryZ^v9
      z-+b~F69uEm{s4c8ze2s!Hdt9S#7(+$duQ%B=boAAw;x|>0B+!}gapG>(W&Y$%zab$
      zN|s*X-ahyAm8JZ=ZB{CVYwmC_Un<+fORr)X2`Pr|pvvLCzP@6_CK+VYaa`Z@E!SZ<
      zX9VkP(<$n!zGpeb97E$h%dz|i47to^I3MBUVyk1A@pJ@|Eik0!-5o9?i53MC6o%{>
      z;j)EhFtjOXKqEuiupGWzEp2gc&D^rN5bbW8cER*4@g5~p{+?A~m^S{$GHN<i^=zt7
      zpXiv}D4QO4e6sW}-OD7lN5Ms0qH;o6bLV0X51ni}8-t15lF-M{b#f;jRd;u}C!-hr
      z!oVw}F_X_0WL(9Ngh2)+zQ+oNF+#5S?!rr-dyZ)@x?YK)Gjj@|0KKLlgDmxDmdo7P
      zVHnHQE32;!RpkVNCJ@FLdNcF?TsNUW7uuS9H*A>vs-uc<8JI;+o_4v&{os(r-IQ0|
      zs<+J-EpZOI>u<t@u!Nk+I}Z1PYF?3Whhg+=$AY2tkGq5c+T0}FNYW#YBSk5CBs5W`
      znWE=3D>90zjU7Q&$3LO<1HC7ZrvJ8}_94~Hq6Kqkr<@wDM+YH_pMvw~Bs39SKo?bt
      zNN^=7ri&9Xt<$?ul8%_P&*(mdY=H_FiTH6qHV~E^lckTz(h*s+IJgnT8<Hj{X4KkS
      zG_ZrO=zZ2ctJe08aM?)Se~%tb?VCKrz#&FAw00WQjn@g*r`F#6{H`5h{D6wX&IidM
      z;0g6%P!G%0;Zq`7p+mX~jp8X3VghFZS)f%TRB@f;bfKTVf|G>Sft!>K-PUOoPBo|>
      i(fXULF-UF(fWj_X5Otg&A|dG(rfC#6mEksKApZiPcQ!}>
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT~AX%5Is{0*Ivtq6e<E@5jCv@uOvQ@RD2N$O)4bTknp%%ma^L3CEG30f2B`N
      zAn^zIqX@Hm3lxC|UuJjqoH=`DXaAm`{sFLxmjN<_<z~{2zKIhNnYM~L(ws;WefeD5
      zkcXn%vJD-7mv&RcR-2yzvV_td<Qpu)$a|G2`++c2uIv)BAN7F@F@#(m!x$lq*Ht37
      zyX}2xzKZ>pBuv(IELyw5D3|vSv-U`J2rKpfuvjJJV<Ux?sVBm#a@{*_iKH1dtWim`
      zTC1dIiL_D5<GS$Ek60dCrISv8NkYMwDIL{zu8;szY~KUdwIK>9y4D^Oig(`T9^puL
      ztZVd^8ODyaVT@{w_s#n`T(&S<zF~L(s|I*Rn7%eNfQ4AVqO<j!Z(s#B5jJ$!#Bx))
      zH=n;}%5R(+7Qy4=e*%u=#>O$=EaH`T9e&-zgWtT#Amr#^;4L0<%%=oiM>!*mVVqeL
      zyw7s>$jfZ;-pPk&DC{lI_b~m7vq7zQUaOR{`dZA#44!!X5VM%$3T^~XZ|SddU4|8N
      dXIR*q>!I|o{F;|9rlc$RoELQ+E_pjIE&y4zu&@9C
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>J986P6#lL)?dq`@87yOA2<DZ@#vmSvNh~1v1vdBrwvln1iL;ijq$RSX?5+Si
      zk0#KiNRcuP%rLGfl0s(igtVD-Ntc;SNI{h<zaY-HyTX>kLo>Tqd+&G8`Of*yIluh-
      z_z8d$_(Da4z}{T3lDMJY)Dz~Sk+7tBQ<{m%v5{fj%1cXyPaxtR7xZE-F|lw%rfmV`
      zj8Qb~a{`U=&Xj;}pp=mzG$N?M4@F@6s8N*TmBj^VPU{N=DX?R-l-3I=-87u<+NRIW
      z8<xPn(btkl3T(?sdraE-QpVv$*74CzQl`un$SUChlAV_VXeP6%;l2=dBC4WApxuRA
      zGF>qZdx=oX(sOdq$VtoA(289GVfq*;TDD$HlkbUo4^y^j6m!W=&*{spBvr&n%=KfG
      z68%fI>@!V$X`*76D>f}ieKCYK1Xb)2XnT$u)NOq$q#bWKS==WOt8t*YdPuS}rDDH8
      z>t+f(g8h|jR+=GnAQ-|Sys6^wb5E{%TN9<>EyM*>hCQw?GUS$cEkGAsi`lW(rQry=
      zsk&Y+%VI{L`_;**yX(<OIu?#O77~;pKJcQC4csA|&~Or`1e!_eif)pY%?es7OI8W#
      z&DE(sP|z)l#^1qd6+Hq6H)?20tj^^rBUjYziYYa`i}zTIv_4c!mogM}BI_CwI9wl-
      zXZ%H~^mhnJ4QFuHE6PbpyG6%|z|JlC^GpQsKKfLg7iij4D^)Tw8u~H7&Y7OQGQ@aa
      z5?BX@G+b~b3fLu2jS$)~tYHL~xOt0}EU!&p5Qx@Ouj$sAa=@b+#+-iiXA2c8@9a!y
      zxZ>`l3nhy^+lEOEQ<!G`+og@7B{62Z-|3%}h8bL^_?2=-w;85CKG*M9--!=2%sDre
      zjN3>4_1aIxJhQPG@6heEEZat@NV8Ow{kyv^-mO*1W^Y(ziS2!DuL*=apYx>($I(6y
      z{HnI2%>cRU9=PV4;Q#j?aXxFIl4aA>@vHAGB9yXIm#oJfFIJ;~F!+qnj+rhH(`e;&
      z1~k{td#1E11(FpMudyJRjEFmNSm9YcExp0kQZHq#3NJa6^_GU)SYjY~4nSwzy0e#_
      z{ON+eyv&45l`3XhUND?#+q5ykk2x}6KM3d42j9E`g>RK#39f>xziSnN@A;<zA-<hs
      z;5fp3YaW2>Hhu-sgzennW$_Pj8uy;<h&<waUqjpMDt3>pp?$V{6?@0m(7}xZy}p>Q
      ztBQkFbk4+lk$4qHXZU@**WcKqte_?4i}|C<$wzqGLEKS9REhbY+*|*f;LaMjw^xZN
      zKj7R0G!w4Wuqy}?lX5UeW4<Z|tGIZyipzY)k91dYwTf#;s+jFngQo*A^+_afA3?4w
      z@J9kYp~jx@3ffzF5)Gef#`>3cBY|i*zoefI+zE?lI2yXQ{;W0daHa(xK6JD2C!XS?
      zT8>QYVeCof;4E`;4!dxkgRT!<Z0wU5;G`Mk?hr<~&ajW?aS;;3SY-QthRgVho%uD!
      z@eL;MEw17_OyWK}@d2i>ifi~0Dg4Iu58i%?>-Y<^t{%%?&hasH`d9Ef7LX>pCj5#F
      zJv5NX&&VQ2sXOo!@-W~dn-$!^CzL)(-UYHyh+RgJOcnY)ixSFI^#OYEDNF>&Ar6bU
      t5FX=zdm~KsZB#t<Sse{-P84c+^X@}(sjr>+y4q3bXMpE|aXYBb{{vy49Torp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IvKdUE|O+^u|40+Qu%e1rNLg@jxX+QQ)DiBEbuClO;8B*44)DcYy?r
      z1QH*>M<HfyE38T%@WXg~cFvqLv;Ot_`%eImv2CG3*ci(!_!ORnftp0YRH!qdf`d2v
      z`*N5}A~`-fQ6d~!s1aIuSsco7P@n{77)L^;uaap>X!rjX9HxrNJwoGIB%|~>!Rs2w
      z2bq-NaV&ZUR#LnHp|+Qdgo7%sxUk?7)-EM`g9Q+-x~QW;SnNkqyv-)ZLLKSe+E6kK
      z<3Xq*{au2!^dy=Rw)+1yI8R`!(kx-wusa`t;7&i7d$7}_n1u;l&!ChOTDZ;=UEI}+
      zEQ&`$*|<qqGA^L=Q6-a(gLT~2%eX^WF_$slny%=$xQF|^^zigl$Pr=ZveJJXmC`*M
      z4++FtRcyLg#hUK9NobBmx@TOpbC_gmC|*W-$*YFf;<wn<qp=a<KHyl<_rqD0a|<@d
      z1^#-^xIS<B+cP*meM8fK#Ni8L6)bXWqsDQE**+ZXG8Ul4NT=Xoi7WKe!Zj>&SDme}
      zQiXFiU+TQhb(!@8>+jk(X1L{lMe`hY+YdPSGi>nd99y56U+6aSUQco@H_tnz7NI-u
      W8}NzNtm}3c$xjV(eNOgr3I7khp2fWY
      
      literal 0
      HcmV?d00001
      
      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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
      V>JIK~LDyNb^pUOtzsd>t?H>>S@A3cu
      
      literal 0
      HcmV?d00001
      
      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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
      B+RFd{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O-sW-5Pg%RUrDqd>RmjkNYm=kB1lmv#0a(oJZ{pZZb=hJlm0L9P*Cs(_@l(h
      z>Os7?usieK%)FV|kI&b407D!!U=R)$Y3VJ+MtJ#3d25+(WbQrOO~OpgLy?rS0gKSl
      z8Hq?2-hH%`aY1NKg6Zr!7~c?%{QpEQIe!!<Dpkc5!8|?*3D!89OB)2og^MPkKGN|P
      zQ@bu|s1w@0N@Y;4BAL%blt@C)&tj2;B3BjGqzw}e>lIIGO|Yj~naA>0RoUI&oAj$C
      zFkpF;KY%Byda!4(*WgQNG4dE!$9V%iZehP*=b52_HovwG_Sv4HquDCL)BhA-uqEbe
      Zr(1OYmJMLxT$j1uN$BbRggq^_{{@cmO&I_H
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=OH&g;5dJy|B!rbmLPUAS2bc%2fcOGL1*Iw_$N@|h-Zo)OmI}LZlThW=qyK=L
      zCr|jQl3<A<mN)%RmOYydghV~;PS14r_x0D)^Yi!TLjV(4^uk5x&ln|jQ`^>5YfD!P
      z!rB&=x@PJ5oOmdnd*LB;*zTNWWYm?^rbrhFo~&8mC9rhjS}j_-k(ps%-n7_92||-u
      z%nIvtTm^#TnrC%GFU}Dnkw%zA&5@H4O)~a^xgq>;qg_EOItcDaG}!`XP|$>CX>}>^
      z!Y8e>3R>VNv@hv~cvRX-32RMD<%F!qOl!HMX6bV89D0gby+9aT`fo?La9>s{WMv^X
      zeZr3cguNI%)u>806!fA`mK$cd;#o<{F+r$SZdKb8i87?%A}%qinc8HUqFF&<O_69#
      zKb%f`5hHZhU%-4x&us`x!i^{x#Tdc6t>sE$<tbtKZ`6&*enc@Y8$3~0t-~Bm`f!zR
      zcv=QtQ*a$OSf7^93uA*YT1!&RXdrRwoRJW>B*ZkKFOq1~Sq=1Imf#9UWWt<GxKl?}
      zZRJ0ye7MI&M<u|5f-8s+{HtckN{dBZPDTG?Lr-gk;(}=yJmtD+ENh0A5!RS&GQvDk
      zZhkrP<5}ZB<fPdv&l#^C{#v1M+!?mAaM>qav3<0~;(O?f_3a@T8{I?b1N&X*=6^uO
      z&@R8TH)x@^Xrp&H$LFz1F3zKecR-iTNwy_fUA858-OR^h=CDq)M@DtTKBBXXeqKUl
      zTzIj|XBEa~>8E|0Mb^r(4hzZgb8udAv{X73{|?&0So{dIEHOuH+{-)YmC(Eky|&4M
      zYzAMU$+PP|;Tqr$fezrMFHq<!dgu^C^bO;5gh~2g*ATAo94no|FsmZ&<1oM99$ODz
      zmQ&Zdtrt)a5M7t`d_sI5YGAUADc%OlxEYwK*sS|@;4a%`%)hUb|Eos6dMy9G9rfT3
      DElv@x
      
      literal 0
      HcmV?d00001
      
      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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
      bc-#D)J^w%m|767fD?m!=tQ1luyngq;!BHd&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+jA3T96eu~WRrBIP})jBDrm7S)TRYNNg@h0*p#GbuTrnu%}29!vm19enSz4?
      zRn*}@9T{irs66Hwb!zcJ8GZB3f5>_^NpFtMl%3iA_Pd?m`JLb8&%b~96~GWm3Yr84
      z=B;vkL91wSr)b1o=~Sc>pRx>HbG>2PvZU@Aww2Q?ZC*OvLka={yKCo7&6<y2oLk@t
      z1tEd9&DHU;WodJ!6bPjZ%ka(!H23yR3j~Jkyo{n5Eh-d*1zNL)CCAFeIq6K+Z?t7?
      zT{EXO$MENk#ei2ZT!F#t!?8`$u2Z&x^p{W1?kL*Psi0$<3zG#$YIzlpVxK_JHKi<(
      zXzys>bOihHn1TZW{SRYT#X)olD7tA#%OmZMY)zW7XPEI3%`JGoXUQlI;RywY1@`{O
      zwu&dwP5mmGS(e1u*W0%RW!N^&dSsF<cnZA=dIZ`xVK(<w^x>#L*zlyIdA1|axeY1P
      zSSOu+3@CVdn>G_yTu&BN#4#waM=v`LJ(@I%GG~~k9}$Liv<1iUjDi#EDNyrs9aqIk
      zoT8qVT=YnB-S(E`N%}HBr{Xjc0xkMR&izZcvyP)($r`RlrYW3J@ccI6Hnvr~fEQ`d
      zHLf!M$S>ocKc`|CFL6FENu#4T(@=9O4+ZB1j_fGXQKT`VB7;$Zh~cIeONJx!0>^rH
      zmZ8bfzFD7ERz=RI6>?<JuCOxFxTxY4zcQkE!)=J+3p}o30+Y<Dg659Zw4`gZzI4+n
      zX7Cz$xVl!67R!`@sOL(}yLx^n70e2BZPsYUV&t82$&>l?qAp8*nJaihpl@p$S&f+I
      z?7VTAO~F64ah$wOqatlfKoC6O=NMzWB~RD0fQ2YbzLcxEsPX*3&U9+@9bOOmS}-L7
      zCL0rxGW_+I1bTJ`MU3c#U3PSN-tarq!T)P=1HS(PYKG0v8KybcufNu`rJJ^ESo1mQ
      z6>Rnk+mF&N*V7ztVqJL*f*$hqTTT;SHaX5B{5!!>a10*(8PR*SZI$0>?N|{3Za%`f
      zT0ewcXyuH>xDFuh5;)4WyMa^{ciORM6?>~tW~#W|ocaN=6+C_)M+9=KICicIz5hOj
      z1Rh|2A{Yz)gl7|>Sm;th`8^g|K{Aj(6|Q117U~GE;OqmW6OmZt@G4&Z2A%cA3p26E
      z3dTetQbjP3`Y62C5&m}VubA=&jq>{&@n02KUR$mrG!sZ2SYETlkC?hgSAuAv1D9Bd
      z*Re#(OSn}VyYU6S!s~R|cfG<s36wZ{k2gHtDAVZ*+OWtzeU<I;eRSg*dhh`Y;6pZu
      z>qNYP5!}QDe9WxBg?I1?3iuR7d<GY{iLk`mH+kzicdpUe=eUC}@ilEM^Y459`7)1F
      zR!Z5Bxe4FlO}s_957GYHL~WvF2O8!m`f*G_N1hx{V+;}rgvj9}E@Pf3Gw31%gE4N#
      Y0x_HLE=-P5qWSR#{VDPrV5wUF04%iP4gdfE
      
      literal 0
      HcmV?d00001
      
      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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
      UQYOdLR5?yO=^!SoXZ^R}C$rHnZ~y=R
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVP%U2s!9R6+yon|_=^o8J)T56M^O>L{TrD7qJHi)25qLfxUNiJd9$qb!Lu=uL4
      z|G?uyH@eY{^-&KE9z9mi(Ty(LxN+mgjT<*^+<1=1-@P+|AqfO?I50E!{(j&0-QR15
      zpZ@*o7J!HFmVyw&iM&-xT+-+Dgi|mQMefXVCoyRmS-t3v^MdX2q;8tsgQY@YVJvfr
      zXWf)FS8^v@hwB9eVTLy8ZR%D&;Tb5{#IRGY8n(YCoftN`vqrJ|AjAHV4e|Dp%L&6W
      z+&+eQbb~&zG($LP=XeARw`owYSw#!BX^5bWp(QE|wv8ATA1xI!+&QafOwO=l#Lntw
      zT6YZb>@S9eV1~YpQLhmuI>i<WS8l+zO|Dx~!Z`-@)YUAXa}C=nD(DP^EH$>g6TzLh
      zTfton`!*CX4fo()BADk{aUz+7l53cWG-b|qdIjDd4fkO$8O^y4152schy4ofucR_y
      zuOW&ULxh{Wz%94mW!N1}#XQ_V%6k>`Fl=9`1plZi;&@QQ0kkt{8SnUM-7HbKTkOoG
      zWr;y3hRrfq3$Cz=#s(A|Vb~hLrX3ZB@rZ^;afsAqXu(I7uE|-Q4o0p?1r&R)6eWe&
      z(X%dhR2;`+8v1aI{Ij&``>TR_&@Rb}AcR2$1C_W)1aD78KL$0N!bwVPPMZ4w5dkn{
      z+B$`b{D%~zsMuD-%PkdW@PvjDoTe(65yrl^BD_<U=bKXS)T*G;2G0xaV;I*kfl&&T
      zVO4zP(MN16FNud0JhLilVn;<9QyR`;l1^>XLQwR?tnGNj6AGSNC0cH&xPXfqbet#A
      zMPVF_nb-OZyP|cfgZfb%jG;9;JrGN625HnR+wF4rm6GA`oQe(@qCcr5c1Hu{MRUfm
      z^1Y&CS%x7rP1#TgB$bL$TwCm!8TxB->Zx$?vN1=O=x}V9jA@0@HA0ikFuex%Qd2U`
      z1z!k(`dD=5g^z|p^%;B#WGl`vd3K2ELEc$KBX9BCfGpJQ!6iSG5g|!z(*y}q+mPbc
      ztZ5gCLY=TnPL>ZDV)C@t%-aK^U?@f@%i>Pb)Qd%d(O!QFql@NT3;ni&wY7<HNAvx5
      z`i(%P)h%>)6e0Qn)OgQLXz?X%y+KbQY!_={hrNSV_BM9VvqnB*btiVwmGXghvJiM-
      zdg_pPQ^Y0k_QV&VE#eMwnOa2Gx$woC=qjUoq~|-t%Xr{A83k$Hr9t<eq!FM5;L~)H
      z=mZWD0i##bq2>q=m+^2l;rm4RK?B00IMy8D@iI<S6Mjg9A2lF+94DJ2>@OqvSyf0s
      zCc^6t2#0XGIl?n#41Zchc!LPPXh8TRMw=rXE92?vkS-D7mkkKdVzN2HbQ#ZnQgy;_
      zi11be!fBjuj_^Vm&sU%Ddm{Xy0bvH&8p5RLc@p2bRv&)8e6mf#ko_o0ycX|VZt)y=
      z4Rjxk6w#sT*XWqqF|&l(Z>z9=4hXJ{3o$q@!<2oTL!kzBoKVB-qW&UL<DQkTa0OM|
      zS=j3-gH3m0@a5`M+Y!05p8j70v8d>0n8TGC)gl%x>#F{3jaWD+%2>EfDg3>z!V>1|
      zDqKHXf2^UflC2V6s6lO<tv@B||I5}@EYvVH&emUbWAS2BSbx{Wda0=#{Zkj~<z}!b
      zf%RU%ui(|1cs1<KP^-l9-m;bI7Tx1e&xp6|HMG^B_E3$Bal%%<4&>MfsR3d1K`p-w
      XLU@f#LwFr;&{ceCF#6}>O@#gf7maAc
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW3TUQ%Z6vzJuLIcy3Qd%jPYJ;T`LT%{97Ufb&0uqd*k^~!|+DSOT(8&y)%+OMA
      zFFyFHeiB{Pxa?Z`?uT-@&zVU`&7{yS)~w7qbN2tYZ?lJg{{8bW0N3zs5FHFN+lCY0
      zRrl4nRng*AZtZg`UNE$>TD4br#k6@+)%B5-Q>h$eOS`;mXB~Ubv2(V?)k+WnhCXSo
      ztHyTRJrTqShI4XPGrc|6is6L4qg6*H7)CS4B2SUYv}S1bEJG}MOq;P)hCtHX<UL?G
      z6+#f*3OaE*gdX%UbVkL2(;3a+%TA@lt-M;&IYWQOEUWseYH4EaZ3cwH40n!)ZkH$u
      zBlOtPY@RSpovQ}<7hMxxDDzLse9zWQqZ-5z!`XV;(%Ht79)$5$5EmFOA1h}eyp4+#
      z<~}crproQ>YkGW@%4b?rJs8HNAl_j(b67ghu@FXZnY_!d6z0hr*I3rpJ20hS6k|a|
      z>xFMp4k3ndib>tvoY#4U8#com(IySIKc>c36>{Od5UwK55ZqUFhiA7K1}G;@r|U!p
      zwolg@Lyw!o1DmQ9h^EI@gLt2zw<!vGq~IoQi&9UDLkW>(maf|-cT_8g>3X7NWMWS(
      z+uTwxg;`;FM_49><w;3QnU3s`Kr|(o$$IS4+<mAZfq7v&N4OLvK^iXTrb<Z&L>GkJ
      z5_R37ukx9KG%~_$k<1ntx}{m#u!Fe!LVak9ZwnW*SP|!M)FaB6#<n0V2?BZClnwDn
      zK>_!KL7o8Qfa_Oo$FvBs@q$BgQ^7jE5a+)XqPfEyxV00#QwpIhnxt!CE|a4!=`>5b
      zjYeyl1Jv|gG93Diu2Uhpq0xI_n0CbCj~vb7n+gW;P|)=MbqdWF&Df?+A+Jje9qS2d
      z6cR~O(FJjf+ND$H^dh+dC8+T9nlie)j+c&jGWAoU(saU2av@Lo?yTAtxwoY|)gAgR
      z>t>aDOUapzRptwt7z+a}<M65|B1Mum3~nWLwOSSI^KFJCA~c0M>FNUO>l4F>=5Ie;
      zJy2-(B;8G-gZ=;|HvStzu^M`Rp;ZUYh&}OyT|pO%Nvjaqh~2X|N57Od4A6=5bRVGA
      zpwzoZJ3{Y5>={DO@aC_G{Em0MMfeX~q17Rwm%Ia;z$tbOVRl_ogeKX06md5}-waAH
      zuH!}v?>@1``C&iabKES3f2`q_5A+s6ZzIAco1nuD=rBP)kkAib9XeGE|5U?_4|JNK
      zGX$MI0{Ri=S|Z(`DpIx(@sBi79IYYc!%Pq}NmDu1#EdiojZmNqGSH8)=)-ig+lHAg
      zUaH{}ALb%4)5KhA%luR_mwl4E;Z?K^Gg}PT@R<*DnV4B(-fhct3z|dTC(f7VwotrS
      z!{<KCJTVKzTy4uN$~f12;yj{r*NfqwYq;+NT_fl^HPJ>B)UR_NV7w*J0_}*`WvJ0a
      zDiOTJxDV_B!Bh;gQWI>b(LF=h1eXzRVY>x3OZ_Tf%5w}B`*&*C{hL<qY&k(zU|UV9
      z^|>M@Oa+FgYPP7ZkZRzist=`V%sticwXQ1k_vq!8p5YPQi3z#oQ=y~%-)rl?+iMo|
      z7XOb{b=s&_Vau#Iuci9*2-W@9QvI%t>SNE>C+KU*z&KS;d`Z~hhrn%z@1>agnW6ua
      eywA+Rt4RFdBhi7UvhTja*P?G^4#W5c9sdCZZ6Q?v
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7I349dQ8UMdrn{0+8gm5I`SS%_Dgw%to1hph+2|`dV4O(@xJ0y#noiIBa0kxvo
      zR;_JqtM#a7)nY9cXw70w6|9JgZ9S^itA{<TO6$>TFI(yVd$T(`S&rHtzs-B|zW3ed
      zWA{f7JOtnfbyxre3Ws(lQq8Nv{o!W2H`bgq?S9j4UY3YO!bxYb*=spwTR0vMph%%g
      zUyFwm-OY=-R+$kefD(ned}KdX=>Zs=YFmyKvEpr3BI$$^PEw&LVkHs^hc7sYK)jwH
      z-<XwXQ7Ey^WGe0`R4>REOrVw)QK8uCOQd=gR6BX}gp)no&Q~bxHzOWu%8A9Bmy@z(
      z6Sc6<u?4SdRV=D7)}`*V4wY}8%X>wZl_L8w?uD3@vC5*9)0c9DjuoRqqw~P+2^U&2
      zJC=w!Cnz*d{g^5@EGN%4D{2N&h)D+O5h9bR4a>`*aEO621QjY5#1dvls<+FumxjCI
      zrs!xz!tv!{J0{<m!y>0AMx!6p+Brv3nYNEB<pIpqK3~KSp0p-n_K5?N0W>O%^Mc1^
      z=7B|}=>{rLDZ3d4sxVS^pENKUV-!Yon@%no6dI;Bd`v6SM8tKSw8XK^Fk@pJv9%=m
      zP7L5v3Zt^1_C>?wJJvuoMg=e{n;O0_3gS3S3gCE!;|~(gISWsjo9gXd>!y`owjgHX
      zL~-?}|5u>oXtju?N7-iF3@6Ru#M*FD0CNwJl$os0nbp9__zWXh?4`5GPfTIr0j%a)
      zwME?3ZeT3Ni7`$wumB4c$|zQ^nQ-PXb4E{X&)D5pR9XU9q%bm<(yf+7O%g$L;4}k^
      zu|&b>a?h5B<0(csb6`a|mf`dOsCiA+U4EGjoPkb-^7HMOW4Zw0?|R+Oy<xdfI@7>e
      z_$(Re`xyzCeN$I7EDzwEY)ojxww|yZjyR?r#MuZN=mHB%S%jxK@!Eu_X<#L~3DZOc
      zO(?bt#h5~cPvf-?bG!%V8Hj`7S=Pma9I;j*W*O+q5o_gz07$PgM`cNmWjjHvhGQUw
      zekNa1PI7dX2%R+s)(V}V7E0p;aKSJKv?m<1Thv>Jiwt}Y7b}#;5<WuhLg*3$mkOa$
      zO^7%FTsBOr1y-Uvhz<CHfiL26Y8B@}PMY~b<Vpiy!c|!l35J-6r9(pKD+azQ%!`t-
      zb*9|@nt`uN4J=+6PwBc&GnVz)vEG;y>t|f36}%h`J7Fd$+l=k#+M7-KvHOItTbhGt
      z!;J>Mg_~I0HJTeQ!;mNJAK4fBw-~5JU64s|n}OSLJ#E1}@(~d}cNn-+_|$kQ=DQ#X
      z^c@2=s0`q4h1vgiA@R`)Vk1suFUV8{AH=PPi*+x}nx>X<exQQ*eT7gq!`%CAmTjl{
      z95d=wM}<H#6^WQhwwQ8rjTuR0$A}*cOC1kEY;m7~0i+41E#}f`!;8&$pTYB?EkWFm
      z2Lc$(HWZfe{5uAQBsz<AbPBr%4Ll^(ZLH75ewIP(z>foXm}Nq%n?C>u!ABHoGc_c?
      zb4XS{O0b8!Fl;A#!f{XKQaq+GX{o(7<X9msRj9`dM@>7_m2yHW!?Cy-oe{)NJR#+O
      zw=Vy_<aX>>qPxXczdXV${}OdSF)#-q(e!5qp2E{~e#WrFoL`@3S09jOeHPCJ@N*g|
      z>v1uw?}~xvr9hRkjYg#gmEsqSbD0=J3CjtEBj=gXAR6$J=<sr0#bxw}4z9Sb8n_PE
      zm*ZE$@z>cX@vN$O2Jsqx7r<|`P@hYdwa+#1d;Eb3FS6vUl?ern-;xRH;dpE~e^jXV
      z9JMUbyN|2hWVg$>O33f)saZk1jweL?KN<Kl-ey6Si`h<7leMzH)s*60PGEkrW_CIX
      zS-Ri)LLq>^WZj@?xW;Qu#o`Q^QoPStV)0JJqoFP{<i$eBS=(n)THBn(P<Rh7$)CR)
      z_y_*U5jot~XC`Q?rv3FnUuX^E#i)1>9~$^K{zJz*mJ4JF8>V8$w_=r-_z0lK+7tcZ
      zcq|&SO($h1LJ`if+DP){eyCO{*OtuGbzb$!&ts0F1?Cz?l6S*5l@VANm7%-VgXRS+
      zZ<M(b(89cJt~t`9rS0mOjyEYxf<lgnB^PU<GtH{pC6M_tm{oJ^?vxBQEO(=)Hk|1*
      zof`nO*>S4cP@_~8OQU1WvF-3$O5#<0mU=bDzz7($shqlRmH@Z&^pm9`Y4SNHw$f~c
      zUcI5lOZOXT^O@Ff&WXoQa!0GAKqne%l1x0oa5S1Zr@C6{;1VlkN6eF1Vc6mJdF#!P
      zOyKC#&bOA`77r(rCiNP7fB}^hd=Ou0z+`&85Ctek070&Np77mSfN~gmrLubEjIUQt
      z_*@|~wO-lxxE9E~uU8I|dSzGTTFqZQ#*@bc?oQ^t0<OWvZJ5|NZ2*(E@~Z%!;NJ>L
      z0S=!<93acE2vhhq#=VV0aTvddr=?Te)#Gr&rgB$A+6|iedQvFiNu5W%al!zmHI6A7
      zKvU!N0W{~h)#;l{iG4b0o<Z)N?BFXn3!JGrA5D9ZlE=Bu<6NgT6)o!I-J_+hlXnkk
      z@x6{CGrBf&6-kR5@5AIR+_-9%=)-d~6T`ibVWMypj`k@vQ!BNQ479=|bIfC?XdJ?E
      zo!ihdfMbR*yOXM(kR$HeFiKCFwERjRlX{N{yG=e5bqAS<^m~QLF1*z!GN;ixfO&<p
      zH)6LO*QYUm2RhO?^?3bRbS@7%#@~o4e$Hze#L@x|FE=$kjE);HMxVLY2eCpRmlASz
      z4sv!H=MEw&kRC#Ma*&=hRt+K{kPbpt=OC-oNDktBfgDZ9x*TL(8W#>?y+G;+*>D3!
      zWhB^;#^(odMIoo$f_f1=jW6H6_lQPC1Im?MFk~6T)e5=r=+Z%a9u3(`Lt1<tt!4<?
      zbZ-hX(T`S6<Lw-@&%y<W;6k2U#DAZ|)wr1baXs$AC8TyK$AS%b5|`l>(s+~e^xL=s
      zAK*%S#Q9kQywNp##yK@?)8Al7De@Y?HMo|JI)b#m$rO|*VCT(u9Zt!_M=iCOyo=6|
      zHH{lq4B+N1jcMGPA05|FscRYQ*ZHEO){72K!27U>XIRW|S&Zj$^J5;TZ@Zj$wxzLf
      z0Cx>xqeSI*b9~)gyM=sjW5(Rh+`WS_xRE^X_Q^2Ali{9yBNWqUEJ*{E^O2iLn|&ns
      zVAh2~;d|JWQKN+GOx&w;X#o|H#H~4K5=jvR?qdNQ(6rqmRFk1iY;2|hCAqf@6LhQa
      zD5zxNkkYZo^}`Q4nyOAsV_U{8KVn7^(9GYwG`7pa-!vV%nGa?Xqje)HJBF~cvwBz4
      zHaxzaj(n1EI`*d>O=&z+b=s{MF@%QB>KC@*MFGFEaQYyA$>+!P`|+F8UG&#GtKT5{
      zTifgJp+vw^{=|r)-&p>}Z6(egg^rCFIjd+0y#G#ZksvUKw%&+(IU2%yoz;Kch7ZX1
      zZ)yB%8$R0Jv;$kW>-&4<lV$}@;2b*>3z-J%x!y$wY-S3$MQ<G@^2QF7;$cR>BdoGJ
      zY1&5_+`EYNIMZo2F`vR|c$#(i8NSV*<&*k3Cf)N`gBM8gMJCkCxQc_@ot!T3;=HmM
      zZ;<|5bkZISa($4=wG;0U`(56C2d{Gec@6Jt7p~JiY){68Yf!3`DxfK@;{Or2yVXoP
      z=~xAFmf4lEKNqSZYS)T#Rjf+5>%`$Iph~&B#5>!BLRF?y^g&F??6z`52&!_Xw^GKi
      zFmcQJ0ps~YEwI}evhfTx0!t{aw9sR@iVrIo4pPf*L2=Qh!c9E!_m{msDizttRTVUm
      zOXVou7Aj>zrHF+*m#sRjRI!ghnMa^fRb>cBmlFb|S`0NZA3x~BFZJ+iJOO;&QH{<=
      zuJj=nd&py1TV3gW$e5O=x~kbP@;F@XA-k$eUv9d0xZPCkevxbGc9-)4+D)=YdfqW<
      zRVT}|w3?8sO1cHBi3o76t5hLP&#fR;Sxr#IbMbJ2nk@X)AxZ|IYEqufaGAn&BiBPw
      F@LzW%&&&V-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3Jx{|x41G@0hK4|(K>1u4P`@MsD?we5m?DN2x+mp;Lv12mlKw9y5CcDeABFIx
      zNR>d5SnRX?{QT_u{CfWYaE^T&2I1r}Dg5VX9{Fk}{Y<F2Q2t#aCsCFU#VpOmC@*3g
      z7UAGGY*{DNFJ&V00m1Ba#{}yty%!ElG+fkBCwQSu#7!}ag}RO6sUS4NbP`R+k&-(8
      zNm}`n%n0r9U$O#%lZjj_9Eu0RMJKG*7*y1_Gw6;T5H?*j;qflaS@KyKGZT&~I`v$Z
      zU@ATPumYs%S>`A$)I?lMy?N`;eNVM)9J2<K{{}Gl#b;w{bL6up_O;$CR$j`o!&aAp
      zK33Vf3jq5yjv82p#~Ix`U^0V!z1M%k#<JTfvp$bGD;Zh~6t=L<XwANZ7IP4GIWn;K
      E4FNKR(EtDd
      
      literal 0
      HcmV?d00001
      
      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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
      GvhF|P1>Wlb
      
      literal 0
      HcmV?d00001
      
      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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
      Hkv#o>t$M^Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+6OA5j;7=-7qw$X|p?p%2TgIDmmbRoKM_cz3nQc`FW!K=CO03J$AvvV~MX1>q&
      z^#-uUL?9t7OY3FD50;%)zBTSCw~f7<(zonPV+DqUSsc`COL;0PtsEiU?KhVrfo_Cp
      vcyx}fyK?RIAkaa`&y8=DKA2h)=6}ppkITXr{g$vmiY%xIDZwaq<LL7r&|oOE
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtYd3Y4%9e%&vY-Y2WB(NA|wbU_!kb|UxV7nk~grI>Cs0kpU6egQVGPv1^v%8U?
      zJ#6v5s<kbqTI-o=t>V!I1)*L@z0X>$^{&-gY1Kda^l2aM`_1ezB+J7e<$1__^ZS1H
      zJ^RGx59|hTJoYQ_2~6%wq?<PCLwZxvh^1{aHQdya=ra?Bf)arV&P`lT^ffK--e|;9
      z0%gr@r>t*oYi;fj2)7mPJ5sip=$j`{vCv8+Q+gt`N{^?FAj$+n&GEj*=D4XR8wJXj
      zHJ|P>Xdw&H>ZdjV0i}KU`sUM4A!yQC4_j9(*#_sw;%353EfDa}s9hycve4==%0PS-
      z6{r-bYNOii>49#;?$o>EhSblB>G4&%ZOZp7uynq|CImkwt2i7J$ST!uCIyacJD4*l
      zzr4>#wK|5y$a%#KkB(W>4+hCQc7<&XnLUO*uhxT_H!#$)DP|0&OnOhj(E{}a-`YlR
      zoX&4*O$^Z>iPEXt)F)4&;24494h&<v)sc?%)AJUi+CPxT4bf%CsyGT$1!Dh~8Aak$
      z)G{S$*h8jtTbZ6yhXEbTx`RpR`eVGK6x0dS6dchSj~jh@yxHzc4;YDp{XsO4OID1w
      zY-LBM*1o(`>o&ARIvx+97L790O#;<LEUsM@Vm-`OFzbMfcf+dU1k8~sVw(d3ht2R>
      zm<_z7K2gP2@il?cxRK~f^*c%08Uzz3QcNvlU@$ct#7RuLyi3OE9mLlKjw*hiWzbCi
      zIX@PmUno%Pl%t)Fr7U}TQXAB5eZWW=c5)ng2rW28!D4~K56q-o-l{kitt@Z~95n3I
      za637%Y$7?Iq*G>`-GiaAog|&7V5z_nh48ulIyr5|Sp^|1!Q^tZV}*j{42**|mW7IM
      z;xrat!q}8*i5oKLV}p<_AQ^;C6)VBkpbY73J<EGp6W(xVF^fiU2^xb~!+z8#^;)aq
      zTUf_v>VtzuqDNq+mrpkA<N0JQn<rVUSFu4RPB3M;_)@`c6)}+A1mn!K9#6LRB`n)m
      zs3%z(MH91267{O+12d{DneI+HT~=bZju%h4E!e2y48+}j#lSg%8smq9>OU`t1S#`9
      zLt7ifAOY(%t5-`64;m6+3rt+6_1e~eme0Jk(&ChKT6&DH4(juquYx#>3Aaw`*OOYx
      zva|s`F|6rwRv5_;G&IT-*{tGhoWmARtYvgrHWiqBoCRG$d{>}yon|Jrgq6~It#qPC
      zw)gL=I2S))2-qqY#`Pr8C*^Y0nQ0D?UfY866`V)*g;aH}R9t`y$vQ{hX6Z~^PsSIx
      zxL0)G#Y{hkSo-Qx*H@NJi?V%Kf-e{Ft<ysI5w22jWiI!}GE?zmT+Oh@DK)G9v_qs}
      z!Jwb2_?e_udM#VlsqFgKs2IV|<;<r)tbsumDaWFxKM1sV1-RS}(dBcq$-{;oy$;ta
      z_=Uiff=7!Ws`w>taH{*P!f2g7;}8<FDHX&`jAu+w$e7Fj?DkIRgSdsGKYKx-9*Y^t
      zq|p<^C^M}9H{CVG)Kl{AHip4_XQoVM;bwXDYj)w7o+b-T*K$Kj8#1l9)8>NsjX+b6
      zWw`0ruMZhb#->3lNzn<79fVcL4J2h~F}WGJtyre^T`IQWZbn!xBnzbgfd+2?I{R(w
      zEV;TIurU;%3houq3NCg6)^4R1%L>R3d<DNf04p~{9k+O}wjYR<_YT($57zwx(+U#v
      z7p;j_8sWOkZn164R<M(PE1-5{_scwqf(HeTE+DuI%Q7R?Zxxhh^-Aw>;<I{74QIG;
      zrnn2k*lEFO>p#O776>>EgwGf~!HH3sFF(gMZ1Y_#!DKf}*|UndeKFUVBz0WhyqP8J
      z!EtLs&iQOF$f`27c&SRcC)_mD!=y+l5WkG#l1W*tQnZ^6)gG!s+^PR2?nR!v;*lp)
      zFH-Tqk3}jPcOp&qh|9-teAtOO#e+F6>byV3b6+&*#L1RHuG*Row#_=-`!yAR!t3nc
      zPGig07&E43My<D-6mz_6R&S_y6K^rnWUwN)A$4-#kp)*iFAFyT<ji<S#k+Wq!`w_Z
      zCzEDhLRRWx&P7S%G0~-{<t*QY$qZeLb>`(*Oevz7Onq+oSuMg|3YQ~sHuBr5!%EvR
      zW3eeec*@;xw?<i1+#FaA{J8StNCZ&IH-&FL1o<99dH!AHJ3pZ0XBh9QFo8D{`PRUv
      z{1@~;2>-nZ-_5fRhw*QSPjKQZI0@AbRNnAYDofeKr=$(kZO0J>GN}Tv!XZ&z1Vktt
      zDC6hIm&jrY&!v2RncY#Ua4Je16GC<M4fi0t12x+Sb(L_r^*P)$7Yox!E&qjZoMW&&
      zO~(vUNC{KNODNex2@}ZjjJn5Bu@kjx!u8uRb5C6cUs=jOb4Rk!sD#$%aOOL2#A&Pd
      z;4F~Ph8)f}<lD^L+sV#d28*I4{<(^OZg3}-tl5sXXxS+4i<I1tWdgs$@zFpeAaCk+
      zpkq5$hfmL-iz2!*_;v>RHK>jRq*f&xGBDao<_1S`u1gRO5}j9F<49IDL;@L@(bD=z
      zDS3>bB~sc}t!z<5@Mg@8l!XVfGQt)Q4vRB+XviQL9^zs3PH1Z)Wz=9hHtivpCP;<Z
      zW=Fm_wK_O*C??+-$3#R!<nz4@ei$tmQMKWq7MsxuDtHkYL@M|vd<p+ZcN9_eGJ;o&
      zXl0~)FRCKt690;5XcVDH#SZ)=8j6Hw?!eZl8c}CvaP78e6&c?sX(Cn8%2BLz05=x^
      ziyXkM1;A_v@T&r##sS=308DfMcjN$GzwxFjQklV>6t@SZVxQPA{(*bslcjW@^PGr`
      z^Q^%R=Q$e>IL}4w8&1lLMl5A=pU0FvpY?hHCgDPs&qYk^i<#t?U=}XLiMR|4a5+oo
      z3bb*<T!kyqg{#nmtFe(g;Q+Q`5Z7RsyWlyvmK?6bDEF{?aRV~A5%=R}yoOux4xu06
      zHtfgk_!sUFK5jYXxKkX4yTp;$CZ==un28Z_BDI}QP1`u`S7Mh~~AL&CztViO(_
      zXX8<^6_1JAuvcX8xOfcv#6CPJp2kz+RXii!!n5K7JV$T5AU?rM;@^0g9(l#*!>hg!
      zUh_@F>%K{N!*>+k^wr>P-&DNoYruQH*?8YK2Os!O!iT;^_{g^yAN$&|-**~5@om7T
      zzJ7e>w1zj>mssAp*1%J?HSpxN26?-i{`6xbe-PWlGAyB2ZoxxrAp!bfDIVsj6a(UO
      zJi@-I@SEsAcodJZTMmm)u@{f?M=lHh#XkHVAzJ+zp1_kRr|tj5Q+OIGJ@6u)A&&~$
      zeiNR>bNs>T6R3C|FQAIH%F~NHO>#~z@if&rz0A`b=ky1j7CWa`c-lZcp2r{AtwVCB
      z&o;IaHq~8D<NS!$$X2+X_5A8G|AJ90X_zuAgFnmK-Ce)?dX$dh1pnN?C~E4f1GDyG
      za-@V$d3GxE?GcF)-VzYi0aD!X#p|Tsw#6@|H1H*}6T8^G{<4Q6+-^LVBLt!Z0TG}J
      z6oduGj3~nt5yG)T<?lEZm@g{%iv~XxnMCcxTP+TELbSkD)o~vgV!aa%E<sG(_wiRs
      gP&hR{pviuOF&`h|Zw!%!Iwoj2u>}6^=<)IY08Wd_Hvj+t
      
      literal 0
      HcmV?d00001
      
      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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
      PZ@b+=1-|4{8ov5Jde|uZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOK%%h6#i~J_Slo5N!>@9lC(fWn}=h^lme~m(j=rb)Ok=hNu5AoY~R|GPG;Ph
      zaat3~suB_#BzFA)C<}yC3QbZfSQd#r3lJdQ65=iPz`0{5O+tvo;@-KBbI;@Z&N=h(
      zU+;eiAdXjL)G_QUnB~}vHmAiLo-5nBTZxTYhMudO(hc4gmmx7UdiREA7GfjW8J=@x
      z1Q-r&cxCHz^rXP^16Ojq<m#5$n-eobz%A-dTMrpaZDlRN&@iVNZKYNF4%tq5X3DN^
      z#8SHBl2G8dZtCs{hIsqd`Zhl87-x|BtvnBbOsS9&6szqjLQoX=utP;Xb~5<dg=j-c
      zH~DaRHp}gETGrqU;gprrjB(A@#lChZiRc&}*wUA_I63aK%Y??x_KvD!YXGH7Wfe9@
      zMk~XPd!Vo01hJoCZxx@YW*FAxbj5M`?5J&(xb0RHJct7_9%9(No}6@zTNQ11n4!MF
      z-IX^C2iw>9lXh+0EF{*tSUXa12puxo39x&v^;wp|HB&_=x+n(HTRUOcwVB$<Ai4<x
      zp&+`FaM5Z&3Sz=}N|QDDR*f%&NAReO!wfB3C6J0Ec#QJHunGlk6H;puK%7xvv6Oe0
      z2;m7FlW~-xRcOo^n&Xr-w;0RwY`GBYw`NP0$xT;90>??^=tyd?Kf|!!WBEVD6G2d3
      z?%6E7<b2On1t-xbqqim!^RjxqXDa&f6r~ECGMubIxL%IWaU=0>%GR7zt2EIu9>ggI
      zmQ-*W&&U{D53R?viZdQ_j;q<OGoiahAv~mF7$XcJr<`>>Il<@PCRtIBXOWh1mSLNh
      z6|04+;+!ZYe~$9QmO=HTdIBbQV`FDi3dV3=lpBG%X{L+|%~L9#!}A1(md|gHTZwT}
      z#tRHho^G$As_EKS){Q*3gU~45YZX(rji`cYoEKAG1;+)VRx6dbN!nXBi?608Azl<!
      z=$K&$x>nW3##*iwN)QHvOmrvb;~wQy9{sQwdjAidQ=9QgczR_oTG7UcsfRG?Ly~10
      z6<SWx&}k6q{*tN9Qu|WUR@u&R(b=iHjjp!Ys8B`x44Njl`$Z{mQq(YD<_ycBq8Z|D
      z(IULA3PNR@U$D7TL=Ux29}Pe18XH9~1scPmlhWU%jz&FHy1kE9N!t79+tAr{3)?y)
      zx6s(Rgz!6_;4YdK?*Tc8Pq3Tz;vtEn347?v(2Tt#aX+mk+O-I!>>`=;)5+W6eaqB*
      zyY52iTE@ZaI1`R6BRX^w@tb%&oQy2u$;e$CiG&9h@$`w->j*`pMWlv0-$UbVj53JD
      z9gJlnOPIKg$vRAske}U<l6Nqj3BS06Y|A2Yizp0tlc{4;P4z|p2k>Ql-RX?fETtDQ
      z+bn&AzyexU6gEq%8n4x{g}>irH^|{Sh>)i#IN(zR@ENw_bJ~4@1Nf49>{p25YifAk
      zP>cE&z4#7ke2)qIfDC@b6n=t%pJC${yo6uzDt%wWZ+IQQ;|=_QH%aC#{OQ4Xnjj*8
      zYA^<{fD$edfKBM5_m{|%D7xUlC3dDTiZbTt%)n7xrduD$9QNcST3_)zuaHea7v&Xw
      NfiUK2mdM+e{{co_F`)ne
      
      literal 0
      HcmV?d00001
      
      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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
      bi+Nx{kPwyl5@NnsfT#Rhu-EWJS@Qn?ci@bh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O;6iE5PcK7HZg9KhL2K8DYPjKR7%LLQc$G|wNj<@Lki;VI9s#GtfTcBDgUY*
      zP!R`y06z*b8(D42A&2$uym@bD=B;n<u5SQz@y<tuu$ic$a~hpTom|9)mS)oVsk5=r
      zMvA=I_2Clg(|j7Kr1N8VDq`cqW937YJeR3R#OPCOWTpt7IgxpDpPBu6MS9FUkV=}5
      zgzeUR>h3YYJ<LX;3c}+MJ{AHvsD-GaPH<Y5Q0q%2z87ahp^u_rDhQ2!7DwrEq@|5Z
      z(6#Lmw&qrBcDX%A7d*~#Yq$T<h~5I$2<tpvJJyr2$=c(;=CyyZ9Rb#{;p4@BCJrXK
      z5oaM@Vw13#2va&fA?&nfY7C5)D(TIZEg?cM$O;{cFI<Bs{`X{U+ae+Ss+7=&X_V)J
      zhpc^8ahm0P+c#lOvXPG_VPoE_gxIl;y7pnP&u%-s9)aq0YdZfx6<$>Yj4tx&1IHE#
      z_TFD2-1~zk7gNqti%m1ErWzU?hpe&a5|()<tYEdg#n!Poukq{(&wul&0(*mJQCgZ&
      ad!^dJt0`*>+q~OutRBpK&0iO9@b(_lDX~TX
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvg2Y4LC6~}jM$y&=NTQ;}>p&3F+?(CB-*~Va4UC}MN=G{Hng21u5J4t6<<BEk%
      zF}?TRd+)u6R1!i$I_V)Hh4fxXAi@0K?3E{>Pv58A-+OP~ym>S8X7*nH;Kf%IMe&Lk
      zI+R&L*<-9wTe;QVX0NPdQnhlnx_zaQ8Ov6x<?S6xn^3x?E@v0UR>nrQW>Qt5xCWw$
      zq#5uf4BZ+Q%A#<~#H^OHg|Q7n>GBl|m8xB+4%xX{MpfntWj2}#rIQ-_jN!NyQx%uP
      zZij`UO3#`ZR+R+~xlNEz<_`r7Q;$WHre)~S0aaNfl=dEv*Ru*;Y0*T#ZYF(tJQOfg
      zWwB7^*oE3iwjz`T{o&Z=pl*hm+GX%Nk}FP*W-H_9-5+Q*+!HaTGicQ{7}Ac>{LMCd
      z!{fxby~9q!qoE%i^=pA}Q@bBLma|(6X*-icq-MZ~2clL}eSlCpDw%RAQ$Xsv%uNZ+
      z2sD)k!E@!rnqAHy(->Mj9N-ZhDwMg%XepPGam}|j$EFO%4d2ztqB9nkPcyCFrfX!T
      zJ!My_y+WB6O@v$Vt`<sLp_W6eof;c`A4YG>(IWyx(R8#PF`|2ffYDJO-kx<$<>82c
      zdVvhNA#IYYk3?=r?Uwq^!OdDSZUln*7FFp-e-o250*V3}RS8g@C*3j%ij6!;MF@Ft
      z6pkO#t?zMkgDu_q9%oEFy?u@@+SEaWh1;Av>2(t_1Fx;Q>uSw_G_cSF25bgsy-;qX
      zdb8ubnVZca-3Z5Hv2Ze^nITm<2KveIY&lmd7HMT*dIJ$Z4a(6U2R$Y?lTXW0HS~R}
      z>iQE}`aaC&JTs(uo5~a|t8v>6iKC)HJAOy&Dmi9qwR+u}x++^&LE^OP_4d?Nh)_C&
      z1X;B7fq+rh6tR-3*|AI+@{l&9HO2>SA4latOEu!}ty|YHulY1q9b}DePm(fp30b4R
      zlcfxOVMkG3<hpSNa2h&t6636!rbTn~XD|y&Kqp3-^wuLd8*$0hAb*szy7)Y-dx*V=
      zf~=jcE<_X%LKg7#CnGU`Kvgb*ER!06%x4*O+2xR>su;1V`yzGORgh&<dB|eHM%!y4
      zD~`&x{l2>04b*l76Q=r_b~lqu+6A;Nb-UXj%h<@(-1wl+>`lfszpC7c!IUOa6(m%O
      z*E-^R>f*JSH48mS+xy|5N*yf<L;^{2;!O^DlXXuIVF_mP88><Jy0>{fG)JZxUhOn~
      zl+shlp*pBm7!9SzCm^imD#)2jH)Gya-kv^3@ife`m7<hDsTsatEMZ`CQ*nL{LD}Wh
      zXt72KGkk06@)r?bIYrBWl1R2N#LPRbUJ=TyJSyzmL`1`Yq^HlpwwAY3?uj&3^`dzH
      zpg-6nb@=DhkuSnWX$1Nn)RK8VlN#1re;M^8RVkGVV+b)AGpt0E>JNqZI$Dhu%hg%|
      zbHAja8wf-LhGxYY19?Lz3+q<yu}mRTwyQ-9sl#ugV#VR+n;22Lf+M5DFf~W?9U5c>
      zUg!8jj^uk7SQ>{-hiSwe$q!*uDVL<Ddb6KMPiQ8cn>tc6pM2u2In<wHHsBiL>?Tzl
      zQ3RsCm|vcVzl4Jlg)*<9LsM0G2Og=7R4tXN*1Bl5{vGxZUl@y~SxR4jL`>2bTR{j{
      z28s1Z<JI6N5FXGXs1k!H>3>7_ncSG2rz$}SKxKybpS0M@CDi13loUGTrTksYH{|Y$
      zU4eZk>9823>OHh46_z8$AEGr9)o7X5*TMf0!8k1y_>4I#NG=eeKv8rQ9SPd?t9w*2
      z8{TT;c4d4uD$pESaU`9CcUo>zXhk9+Z=Wh~b(vGm=f}PB1kpCPaxPp#S&aLWCsp2F
      zsun$Ed(wmDlDDfk>9_Q*TF*>zpIO38PlC2-JD;}dI%d2`C`*|!P0YHcb(dyFz07#=
      zRL^#$;BDG2HCVh!GlV@Lv!)8%gJwgCj-~{fG+QRP54CUcAW)$!pBmv5PjovX^$Oeo
      zmQ9ImirIef2CWCRWWkiEbU&s@pN%`Iz{F0CM)#9^7PjHE02~Eov3qKdj=T*EmDXiU
      z_cv~g0_$R-*VE%!w`P^cyJ{8wuc27vCgXNEO?GeEc~|$YS&wTb{xGFj;M{WcG>?7o
      z4zpzuZ9w-WX^d1S;)(t+a4;~8GH`4^ayd<J=tG)?D+L)WovOpGi)vQFz{QApm0Oc}
      zWe%l^JKVG7Q0fp6bGqL&Ema12U@#jVQfSI(SV+iBoOjDqw1;^PShP~bo6VDjpuVF8
      za<zc%0;eW)Ns|O_*|hsrL8+N$<f-AlU9j^Rx^GiuiEF00IcE4(fs5ovtV?#KGFdF+
      z<k?GFYY8iq)T6-|h7=pp{kR9k2M0`5;HG)d^sek$b=;FJj21nma&cQWohf@t6Jw}Q
      zi<`b;hHh#WeZ1(109Vp|XL3?3XDfC!TP%2JKh)zkVphx-3#($&OmUZs)nbZnmff;1
      zqy%3{_3dp5WzXr|AS>GtpOYCUKA#p2_iMgE+=in5FutAyD#AzNOWC>Hh@G17jN65D
      zj_!fG%N~7b6~&iOzaEumkid<1pXt4((5R5fc}B8@G`<b7#%0@BG?45c#=4K-{u9<C
      zx<xyES3`|2osX(_LA^}24$@^~TJxQ|KEUzejH^Ep3?dgT-#d5hdcV<Fi^ihEkyye^
      zMglYh-HfOLi)C(8(TKulXt?a*YRe39kgFtjL*7V4Jgn(aZZv^nCxy7QIFo~2z?>9N
      zeX;r*T6vmLKe`qkP{oNj!bmikt&YoH93Rq(uC9(14w<GEqzG$MES{v*tBOgSue3CA
      z?`a6Jq%BqKfEg*=S@}8IRQh7kpejy95~Ma&Ea1M?g|F>EbO75Sqz}OB>F_$99fQ{e
      zO-&@=*AvL!SvUpqnRK?6N1shCzP?p)E(VJ)Zd#|#5|um5G7{Ln7r<q;TtoI3a%E5p
      zo6ug2G>+Q23e=rO0GmEZtuSr}q!mIQ7^JC2(M1>Z&PtJq!%>Qydg(Lp^%k{|Kq#cG
      zFJM@DQ1_t(H$=_Zz-JjPN?ahMX*2)wn`;5NZJMsf<)9^@Ng|2t+WB1~Nng42?T2rL
      znH9c%#IGKn%4G}L>PF=3;6sLx9bYk>nTw<GR+m^Kdg<+Um*{ie?sSQ@&fDECvCetB
      z*Cp0FZ}+>zVb0rwF0sLRd)OrocitX#i6fl1$6aEh^Y)}m9O=A0?Gl#>tnUTkY#|e^
      z<wr7Q%O1&LA{K><s0TxKIZIp@cAB{Br!v7TS#&jiK=RNJL%366EXd-G%5tS$nFHzo
      z%~DiwC*yhGF2?i0-HaE4cVoOecnRaB;N^_>0PV&2W8i%l?+f0a@e1&Pj6V)OnDHUt
      zPcZ%@*u!`w*vq&FyoPZvcrD{~;KLYi03X44BlsxB8ra9!4-PUO0PBp828S6(z%j;g
      zu)){_Cm0Wbw=f<CAItbt;Nux5!8YR&aGG%jJjQq&yp{0;IM28ME-^k4Twz=VZ(}?O
      z-p+Uj_!P#cf_E}L9egI^v%u#tJ{NpG;|stSF}@glDdWq)S1`U3d^O{1z}GRp9(*I?
      zo4~g)z7>2s<2%52F}@poFXQ{b4={cZ{4nE3z>hJ09Q-8Xr@+rJeir;Z;}^g$F{bgo
      z%=pvb&oKTh`16dv0DhJ6m%y(v{tEc3jK2o{I^%DEzs305;O{bi6a0O~KLG!T@sGhj
      zWla9wV*E4k+l+q!{uSe2gMY*Lx8UD1{sZ_=jH$mrGp6|d!uYS?zcc;^_+O0w4gL?~
      z|AOCV{6FvqjCU!^@d4GWuVNOsjd44;gE8u_VD(p^{t8xq1?sP0^;e+&3RZsw>aSq+
      zSD^k1R(}QRuVD38p#BP0e+BBV*k7z@oCo3n@PUj`f5kzJ4+bB?_)svb#{%_OuzD;|
      zj|Hp80`-_qP@Fx>>HL&WoSyQDvr|5Ca>^&pP5H#BDW5nq<r62SeB!*6Pn?$W$?CK~
      zoffQ43)E@B>a;+e7OYMS)M>%$v_PE}tWFEmX~F8WK%Ew>P7Bm&!RoX?ofgNkJfTjD
      z;}{<gPBK0LY%@mP7Adw)(%@0XW8f^~t>7HvJh;fX1THhKfNPAmflp$*9egt5Q^2P&
      z-U&W~@tNSW8J`0_kMa573mIPozJxL9SsfRo$K6NH>*Xvjv_7w3OzZPX#<U)<Vth6D
      z8phQATE^7=I>xlVuV+l{Z(w`?c8V%)6gS}tcrz}gZz^qwQ4#Krm(}6f-2>KeTbni9
      z-tD)B=XA%dr^GEYDN0b>Hj~1H;*Mzwqv7hVnH1#eo|zQn>b{v278DOmQ-m6QJT#Mn
      z`gmlT!fdp7Y$gS@c%r4~9;BSmK-!>q>Ir0QmUssLFI83`d50<OVuP{-&*kC>WpA-j
      zS&3(lI7(TIjU2*r5SuxUO>E<t#zxL!1Mk4|RBYliv3ak;^IB}+o3L>o#`7_3-lwr?
      zU&Zq^Y}_}nVc){@ZEV_iuvy>5^F3_XU1C^ti!EX|@e)dxTRcmV(R_;MWQ@;$2&EC1
      AsQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O-}+b5S@asf+8sRfr&vq5RHkeXN(C!j0X&aC0;z0b+RcbUEFO+_-h{g0sbiC
      zbd7+K#6vq@?{(f}`tkYp4gl9sbs)vyFi^%F@hNv>^i3r6%<bc=5fR1?tT8AhHOW=r
      zc84SMwF6lOwMCXI6>6?UsNCk<Wl)@8G!}78`Ih8y%%FUB-dWI+WP?G@6M^E|M9ARk
      zFXHCnn==>Jn?KvQC3;r#C_v4i@{8-~NT|Tpxo@R0$a|rQe7qNu8Wny<ytINCRQpD0
      zF~%nmi=o8D93=Z>N%YdJccE{_s5HJ%m*dr#K59ZxdxB)9TpDU!{|DL&rSNB#(CRcj
      zkHOJu!XTNOaHp&5ZHZRiU^YPlWgpvvhwfdS0fRK14E=yKZP$TyigFaCAW!iIY=Yf-
      h!CJ~~C3g`@WNXCSCc8t7GC~D*Vb8kHz!3J~;0rkQs%ZcK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^TT|0e6ouDm3xyIWRKPoeinO6pdGRtu1Vz-DPU%oB4?d;kSi_W*NfT!HS2`o;
      z_}~xlM>(#O9D1>J1|E{kPR{=J+Ux9--+zAo0<enJI3faO-SKk=*0Ggq$(rxl-bv1?
      zd3Mvuy^&tYZ5~P2JJ}50#1Rvi4AwR*r=HuX9>|&($FRU$FQMex$96;3<$jnc5Ob_U
      zDUd33(#xJ}JN3N4(6QC<`Ehv7c5H85AezopnDVN*FB6Dj!axFJqhN6ZqZkoL7Hmfr
      z{llts-&@s20B+W-M#XY%73-HV@3Y+!$QCZ%BjwDb`$c9d36{TV;2N$AjJIfw<+3AB
      zx-76UDC2TPM~-N9G4N<<0PTN@ZYxD|0=pN>xtu0rUw*RuhF1x<C+hl+z;rs(FGlUn
      zJp*x!B(R93I3Dy2O8KPa$wLEaWCX_Qow*WtdO_g>#->+EIE;C<O<4o;SP)2*o4#9<
      z+nhv!*}idJQA~l+vR!v9&v&_KyQ?(~4BxcR#=n!j)|H_LdOeQ?s)+I$LWD<+w(t%$
      zx<N!`7~@xi(Hd6>J`?75jGN*V$*+tenBskc4B#1Jc*5K~QjCmnHLhTqks{4#Qi)lr
      z+GLw#E}vm`uft1`1U%Qg7f50wV9thlnn?m~P^k#$H#PkuwJ0@HUG(f3ZuQ|`YWx;4
      zuLJyinApZoX*^-L!$Qgc?w2m~IEdM(`3-k@C4b=l7ZwgJ8RjbBU6&O`+X@~{&3Mbz
      z$_m3=J|#rCYIYc*twnCm4(%&-S#Zu$HlJI-<E5#)WGV|ZH9Ls<fz%4AdtIIPQx!kx
      md~%bWo0`AKr|NFVJi~HFZrCz^o&2Plir`^zUqLQ-KKct(Y%uNs
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1-A@xi6vfY!Ld$mf5D>o*K?T|^QbC`D5D5{8Hi*<z#iyl=bxGNhWtW8iN)tij
      zgRdt3QN}Z~BQ3NhNSf}<&d&YabMKtpU%$Wq05FTW6cPe+RX-~1x`%GzKvtr_3y%tJ
      zCG_fkVO54Dv$PS^_hk?sE$JsIBnA3)OwIMHg_qmAvJ$4yB`|uHv=MlRUQJfzP8=za
      z^xZuvFi>oSm%_mFtMdY#hi)z6!>$F-_rgVij%=>XkmdT0w9tWG8x}GGeMQfg>(Sn}
      z3|_n2HI1uR+*;WUJaumtli^42K;Uul|0|@JtJzkGxv~X5u`!Hm0zC&Z+;9Wd6Uu;z
      z*4jl}E_r&N4PV!tnrcJ+m$F+**@(c_#bPd}&EAn8+^80o)nRqBA9rk|kXEyC8{J6r
      z+=9p#7|P~ag<6=vR0@*<!)LAX*J?Jh$O&YsY_4&gz+{_(+Q6Ba7CN6fw&%P$x(7Dy
      z;+}w2sz*UZuF#wG>_3e@qa+G+m%OU)hEc%HD@`RCaJ+K*_MG?pLQ{mX`r<sssiuSf
      zP9*qa|M*HKRQEWhxK5+<YV+<9N5Qev`HG&;dRrf_7PkXWki-J|IkV$UxPk%RDZn7F
      z3b3kE02u{v@+TO2)4=pn1+YlWQ-&;Q)UZZp42prcPF+fcg&PLC$v72h$I$5$+-#vP
      zllqL&E1EhM??0v5hN`6BCO<(k-z&pkGoo!Le~eK_9AnJ+#C!>;;$zj%*}WIkRBTdh
      zx9}Bp<WzOSsMgf!cGOp-ZjxHMuxeV$@Jk%ku?#w2F!~Mmi}{~Ob3RtgH^dLHEx=or
      z{Enq>QSkew0tQV1X*SMLZSP;AXY(e(1jpD6Czx&^yYwPI%DO|UOEY>_z(YOG{sG*F
      BK8pYV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?+fLg+5QhIH1`}h>lu~Fp35g^itcn{dPDQ0$K-waKa>1Qrmaxb;k`G9It0Hlb
      zxab4)p%DK%R^nDjg^QitS<n3Q&8+`CKKuso5pyQG1eO~?;#{~_t`kWw303^lalKeI
      z1LsJ_JDw+_NY#D0liryy1cuUR-whhhkNSo5ViP?A(|>CmhU!ZBvLR1fnF2kR^0F>N
      zfrV;EAe3i56`W3?mgG9)H&meFErCL*ToW+9G*6|40{U$fVF?UYRUp47TJzW?p}<JB
      z>A8N*4VCt@OCvs4k-$pzHGQ)DV(BHA<ysK}V>V3mk~B;LdZltMHS5R11SU<q6PW*h
      z_co^RUZ6k9zW_&2I?<CT^7>mg%j1_(zP5SmsF{SG+~W%hOg!@=tmq~%$KDHE-CWQk
      zpfz~r`_T5$Tjj35byx0TU-Qs~0a}YY@QK0e805)r1z`xo^t8YTtrpm0q>i<;KxOF`
      zqaBq276&$|vdxUosnU2WI#be>G?s>VgYisrjWHU^s@!1IxWilVi(Z~=mpNZ^WLBH(
      h1Ew>TZDwdPGo`BhE3wb19ORJ9Hj>#!nn}yfJ^>(S$43AF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pj3eCXK1BRja*-#}?7xxy6I+7KD&us{v1ClP)DCO&~UcpCujy1wX)#
      z5+|W2Q4ce-`)20t+xPkP_5t7mM><M`_9D*grF@k3g9@@VTtC^qO6@B#(V-C<MJtl=
      z!XEoe6|8kseqEaL(ojqYb>R+Y<I!v?ZtjFT5QG!w&o?|7WvWLo`au-N;rfzL?sPqZ
      zHb~}5M~!g&|FQ`Sbqfvb5-R--N2_z~{1o2ndQ}kiEa)&;rW3}>%~t%`Tj@uN&~%bO
      zMxIQ={JsIrX_BRZ8io0U!LFR=ylepr<=EnA=Y;Gi_fdt(b-VCa;|$c^VcnPM6+16z
      ZJ~L3lK4+6FaK_?KaZsQ+L8~|&egkxSU<UvI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&yH3L}6o!ANX#%0NP$&{3TN@At0aH;2AWRVhMcLED3P!1eazXG|OqCdT03Hf)
      zoOXf?Eazf>=RcRP?~hLarx@5U7~Div{3(11c_E@Im*pFuiJV_~_nwNfSgOQ(jl^>)
      zGiAeU<YVG*8h8flQYu+a7+S+oz+hfyv2f7BdIxP-3_V{eaaYZ$<3l)01w-G@qA(4@
      zT<U!FXqJz%U^w#sKkJxbF!bxa(oiLQTIRIMcogXNTe^LhrkWRtZutjeaHd(6N8(oM
      zq4t}uajdIw0Ft3|0tQ926j__HGxCgl+g)Joz5aH{I)ninCQh(HQD+H}-=s_nbjfOg
      j36Yw$+`|QWzZK4jyr>oSmefjtcx<Cj8VoyBZD98Yv#4u0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+fEZf82+XQwv@`DfKtm*L3;pJR6J15Wvew!D{ZMEn2>E5V6n7h*&2NeZ@KaT
      zyg*`TB1Z3hDC0l7Ye6X4ba!U<oBuofv;F<&`%eH<NJ?-p4DD2E@}Bx$l@EETrfbGW
      zxyW^SS;=O(y2W(~uBIS*C9j-=S{MS?R$^$G)he1X&)^PiEQbpWu6T8ed*MWz4-z~K
      z9VxBC)3tpf&#T2UXYi-0CAC~obxq9eMVGOw9Wsoht|hZ%#~2)1g>D<m3=)whli`Bk
      z>k)i@24{79n}H>1ROSTi3#H5yw5pt}9Mp`Qp>uUVW^KAHHuW*|HpP$|!fr9#35A>J
      zvXd&P<r*hhUgblH9~fG-awuV#p}RqwX}oC#74xAJK`%yePr}$m+_^j-?juC>`>Otq
      z9wF1?C?Y=eBTCLfVQTUOL(e}BC6j27crgxH7<*tM3xf2a50CJex}l_3HZzIMoU*#6
      zq~i+1a1&?tL9v`kc)~DvZCgx`pm^rPbIdSw#WU$#KD!prD=V9YrPLac_^o`)YGp^x
      z6!&<^h<P!MS)p=H^eA~1AkLFWX~Bm@Va2WULvDyxFN+uk$ef|>&=I6I?-;uj(*fs{
      zmQ&{jbt6};=_Q`f#EENfocc)-7)D60lYVacUflGggG%>Sn$5#O7tj)k*5Un1BL{qR
      z_nNCSgpT0`&2L&Lw4;M&gr}Z%Q4LYcZ`aDhMHk?SMEeKo=)PQSfv}5awTOjlRP)%?
      zXfJwgE)Q<eNT{Y0Ycu?(HgLIqlGMJsR&9`KFp(oU86=f1nhlv5)QQzeE31)j7;&HC
      zu6UjzJR5X;M%x+2*Xx-4WiQV4A7LnX1nC4*$7h&c51!zu`-f-U8T^#5BX(@z<|B11
      z9aB*&&PlY<I88(uvih1#u9A=}#*jl8YnVWR{>a`y!3I)zYnm9gMA;#AVhM2ygwdXH
      zte7D&!bh*zS*I1z(tuFnx?smv7W~qX<v06KBv~brwMB{Z3;6{a)U8OE)C@1oy)XX)
      DkP`+m
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq-*3`T6vw}Zw!?OXxv6u=oXq(H8YfZrpg|V{)1;AXMhy>JVk~fFU9cojmiVXa
      zf8fPLUE+h$SN|yEIi*64=u7Xt=brERobS2)@$<`90C!MKBSl#21jF)?ckGo1sx|EU
      z;rnt^^~=>KFB)EVsM649=CnCyC(a>Qe$ZBL{lE_uf%XY=59P2;SSh;osCw56I_16Q
      zk!ppNgKDWk&}+T6vY=t!MjAFDS9Jf8Y=V%rVPKB1Q1=71JAB7ozVez~1}@cmEw9_~
      z`o5gwpdKFj145zxe}5H%7J41-+9eprVp$6Q)iNQif)+R2CZrCk?69kXPIyRIp5;*d
      z+5W&yjAf%Zqm|?sE2VvleXiNKf&wAaQDIWA6-zwWS$_T~LNHlakDFtWD<i&c<0>}z
      zp<ece{g!&_%iJ=*ANjV}#X7?^{xjI1OqzFdyiel{e@#BU=BUnV*2!zPHcw$W`X^*Q
      za3qBViAU<YoPQ4)Y~d`&oUsCnSmKl9oWpspC%X$+W~J;dVuiKBvSZd8W*K~EIr-Ji
      zoX)T*$BI<<xu*vaV{4o_VOSG}g&fm_VMR1?XGJtUqFst<&$xoznc|FQz#g%w?Fd#F
      zCr)7I1ZKvDOysc|7q0OtW*43BpcBkH-$0*nd8Cavn4DUbz1Mh(I}t>tz#=ZV&MV3P
      zz+ZWTGOu!HI3JOj7LkVn+=SSOJ0yAcSo}B^XGMGhLmN4#xHhdae!yLBWshOc6V<Yl
      KYB!jZ!p&dL<FxMp
      
      literal 0
      HcmV?d00001
      
      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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
      E1t>+d@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZA1TTc@~6bJA#6zGL=zZMYj4qm7zR1`$E+i4lx?$+(@Mto^X*^rXjCZ#p;&97v9
      zFww;L?1wV`XC>rlAG-aWIXg4w%%s15fBQj1n^cL@fS}A-yPrL;f2e0K!bZQ_?0w9h
      zhTUvIx^Ws5G!YH8>g}_vb8;RwdV-R^tpe#*4NH(vf=10w`=VEG_kwz>AI2~@2^ujf
      z6-$|hryN^{4g|$b$M)n~PxBL4aaCY=Qu8NXz-ZNTebbW#9a<F>GwfsJ<sHY8Ml_26
      z6(%W3SLa~+sl4)Pcu(0S9f=7_JD7sUP{p9_Tb3Rl5;W=LkEH3<R6*LFDyqLz4I{~w
      zMwFDqw9@v=(#7_o&7?4`D=kzL$eN>~*r=dHRlf11ZALXrV8c}zRX2%MSUI)8uzV?K
      z%KE>VyMo4|g_OyPm_pmp9NRPUmSpj1?90n-vdD~}@c@N5=qn4)B2gLJEHa0MO0H2k
      z{AZyI4o_8`+*XdIF6vZiqj-x&mvBP9SKMKtG`4wl6<B;(pGvvHA}eT>@0m4Em7`Y8
      z<IT$@)H_+YiZ38<uhD9@o4tK>b8S7qshFM9FhwysOp_vXad<BpPm-Y5X<DOo^uTJi
      zL%aX}B<y<ilUAr(-D%WYLA~45z6_?Soqo3w7MnUFfg8S|&jTlqwQx7CQ-+3U7>et=
      zMF}{`oPtM~)9@(s7(C8A0Z%gP`KFks;Th&xc#e4<USQ6^i_A;#GV?Wfg<03L%6tR9
      z$$SgG&3p&G%X|+;d(n#w-DmL!@I&TD@CI`he$2cHKVg0fZ!vGfIp$~Z4)b&P1@kVv
      z$NUoBXMP1AFdJ~5*~AGas6Z0WBC5;cto3K)JH?K_Qt1mFeFg`}!gneflz47XIg09k
      JH#_>}`~e6lw^0B9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(zfQw25XL{JX#%0NP$&{3TN@At0aH;I2oh2R5=Gh5#0o~KQ{@kW$6~6)zyt75
      zh;v#o00YaN&;H$apY4y&w|4-?=-DtB+(cFUF?<SnA)+dm<qMBR&M&<?PeoZQRpLEI
      zVphsb*)SQlYF1|a`u6*P!8(^pmLrBne-JR37g;PEG_cx26Ba|qmrC4J(}~FM!$~R_
      zx_%agX%Oa8*UL?_e2@jhf&YI~Lxx`8uT7<)O8B_U$@6d!=<yqRe4AWNi$st7g)une
      ztjZ&CCAF#Dzpj0#yRZk6p?3oeTG6E_+EkrTW|W)m94oK&u|v@z4B#+vgf&{V77*oi
      qs<c3xq81ntsaeb2pQH0r;gra;T485FEft8zCc30SUqammw!Z)-jbc6k
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVOYjYD-7=E@%yJ=XU1WG9Z8!nb41cE3ilv^4K1_H&lgiA%-hBXAzq$C@lqF7Kt
      z1w=qm;Db1hc4U|ll%^e+K|bM(f4~`kjN@~5x9RpK3?JIvJ?FhV@AE$AJ^Ab3hmQfg
      zf?F~wB)pW$7Q;u><7&8|C5!pA-Wxuo<-?m>+7fD}sL60js4@04YBm*a?K+|*bs1F>
      z>L>M-;L_DpG@}*@5~P@fDal;6py!K8T|2~;{Sq8BkWiJ;vMK$rgv#S0nFLRKY^o*+
      zvX)Ke4hheS&SpBTOJ~#i1_JQMV&m;Qn*#|6&L}<HaG+Mf49sRie;`o}33C+4aEZ6M
      z3Z|HE^AuFWE!JLApqOhu1yeE2jfGewqej7EyiAzMOfE~9v;2YaiG}|X1=CR@VR}5B
      z)pi!UyR>|V+LbXX%O%xJLd~bex3%ch52s0yFFq-iMia=vZ2ttM1`=-OTrMi~NSKz=
      z^p=ylmd~o04#6%<CihibHa@4AFIHQorVCMfQ)tY#RMRGI^hCz%66PD-Naw=My}B03
      z=hfcUqTW-~+x5JrcDu0}wQj7%IvIr6FliBcC@U?mU_IEi$`j&C!WzFxA*0)aHa&}r
      zKuqM_q#y!{VTztBV`JC-fzD<bn<Xq9(NQdu(NbzAl1~-8wJa%0YCU>7mvtj5;774l
      z!J8mc)k0TMwOAm!kcG|=eaGQ^?u2MtlfCUDt1`Arm^sW<thJniJ;)VxQd2Iq40cq_
      zv`gohwYF?$3qoogX_dQ+ZJL{`C>p!iLqj$a+{3RCs;t%@v%@z}GVR@ExCJ4nJqq>;
      zW`%EydGOrWkGExX{$G#VG?jBh!2!I(K2RP!u8aLVjL+()$oZ~<HgUdWhUn<+VXZYI
      z*-br)nUbUK(pf5d^!YPan_PHLf-*d~e12c2433t%5ha+0&Bb(vdE7XHjEtkB#+zxO
      zpc`4DF@{nrqc+;rU=e5M(n8=y3O(X99usWax@GML5-zY2?%g|MiI%qZNZcnpiVBY7
      z1P`j()1zfc+p>vV$3?TsXc8fM6(n)Ug;Qi{S6eI*>1gq}@FD4l?AjHNMI#-t)}2PO
      zk3_OQ3G+saVH7iD@+`;60iSJZuNP@P5ze0q=l$cWAI9Utd7=pU4D!~y@Hq#*+l32!
      zRJ(Brmt}k@!8?9foLseHO?bDS&M5c_S4jV1?d0ZScaH==bu_O2QD@QCfNKKe*JD_m
      zv}Yrzuk(8G1vsAyx|-*iwO>V6c($%RSIj51Eom{*rw(gvxsVtZP{<DcRiX+WamnzO
      z^@xkbc=D>@vqD@i#y2k)<D1t7p9=jr#QA?FzXlkmlFw*x5VL~b8F+Gf0ChocO#`3x
      zeELq;_-;dX_QUBIfHydA0P};(2GCINe2VG8dS?j>o?zhs8t)rP{QTcYD8L3dv57ZZ
      z1hr_!5>CGmHuJ|o3uo#Uu53ksR<D`q5yVn{5s0`c2~NC;0xFC*QG&yG6Gb?U5<*r9
      z+ZjRZRR_I}kTi&8BS74S`*wzj8_9g8VL4fKIa#&1f@v)wj1^YkX5$-}6MR5Q9-zLD
      z|GYQgs__Xn`tCAm1w_GB^Z?q89D-l^SUDsXJRC2~9kEv_VvTj)YjdtFJFlG3xo)iU
      zfeD>oCAnso?U}t}ox3J<URBQg3rQ3Ft|9EkKe6HwR_`0c8}Z=M;1JdbIV>$<BL&cp
      zS@B1Ra<gSeh-+K+g#Mt<{JTUU!-qxKX7ObTB*oRE{1KBOTix8v@t4mriX@MfC=mN`
      z16YvlW^#*?>6pb{?qI~l6v9rl@-4*v?!sF}w>aA;sJY=DL)cq&YQmb^(Lt--v=s{5
      zW*m^cR`s4>35gvchxbZHXbAgCI5-m1)Mg)bc!o#ttP$Iknx`x^4^%_fl@yxLu#g%r
      zKMU-yR+fz~$Z?~23hy!8L`<LO>IJ5~NTx55>C0sA3VFLqrmvCd>o%r0J}1*%Wr5tW
      zz^{E#@Q)``$Svajp15xl_YcJVBXR#k+&>d{KXKo&;a>ZkxOsb-q)TgwTa1@~JX)O4
      z>uzH1Bc%2%9YT5#IZwU>y@ZqTeniABN8|0$2Je>*e8Qk+({0q*1AJiZ+tz4TU&3k6
      z8E*02Tf)blbC#L-zJW%YwdXToM%{V77{W!%tRM9@6FN1Na8=;6t$MyOjYlN9lEV}b
      zGP_5K-scVS8wc+16yO7F=Phs$C7i<`)iFeihj@xd2Dh_KhAeI!_#5BiJMt&thH<2B
      F{s(__{@DNk
      
      literal 0
      HcmV?d00001
      
      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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
      T?1@Ei4{1fxhY&KmDI)EEA;hW`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)T~ixX7=BK&*$}!2Qi2Fc0kt;S)Kb(&ZD}o`RzgG3hGA4jr%SR4TSG#3H=R<)
      zQPI|p<Bd9cE#CCT3!M>k9H&3P-{Bwd4_KdbcKK@Q?ChTRy!(DW?{jwl{_oHG0LD>{
      zBO)+dZ??y-SvRaP&#tsx$6p&;w!G!Bg5}xM6yneXdXz!KYSzc*maf?qKMq~s=wn=q
      zv$p41b^C%-w>@7#Yg#L|KyPU`O4)avX8nvnhfG#>Zt=Y+3M7^qt;&bNK2~Y9n{*d5
      z0{T+BR<m7!$YO!J38(4!=LDY0JQ}lD%q}qJRI6%tB8ol(JxB^fGued%=wcv_4k<lt
      zAc0OP4H-BTNNEF4pu3a0VFM%5&v0$e_NQ7+-@eIWx=T*ezT93}vfX)WsiE3xRjkH>
      z<vMa7Dm8!E@dQRokAY|#T_Vtz$v)bIs+V}^?bWK~GmDlf1ofK+40Oo~j~jRaCy1Hv
      zT1~Ika#v`dSuCjj#S(!dRKgL6QJGzkE-xE6hEoD@X-2zFyn@%_cy-@|%WIx*uNXKD
      zR+q3`*IKKzR@Vf~y=VtKI8)qH`?g9Iptou@0>?%gc9V7Rj;~s-Uy?h$x=oEtcCjEU
      zn=)_#lgzhjRSRm?QhU+Bn@U@^{VTTDZunALG%zDa6H}uhHooOF7?fLDP+w`Zn#62B
      zvSD?koM$&`^NN`y#d`vs<yPCR*cTl+&aUmzoRDnQMwu_lJH|_s%;C||ByZG8)~J;e
      zQ7gH_wVM__c#>Yd+<k%w_rS3EI}V$<P4t_oO$?anO$?gpzdAONGPiK#SDHjH%I6WL
      z0sGcaWTF`o@)8cCgh5>9yE#0=w`LF$&*C}m7+jSmlq8FbC`pzli;v@ISj-q#X%#bn
      zL;o)nf|R;amQ`pYFbG3)B6yw}*~wn#fuA38e&;~vLkBt!KJ5JdfzHQ}2{V6A^rK8T
      z&a$(-2X9}$d)9oHn@(#}X;P`7`ILO4ReywGQc6X)klRId5IO@?czCMlhmAC9JPUQ4
      z#Ij005+v9`be!#;WO{?xjVnY2?OzNFnk4=b<Aj-u=I(FdrQJjU_zf~;MFs8;40i%2
      z7`U5ZWVlm7IFVv;a_H-O`pavo!SwC0!@;Ch&Bvm7J)MkgppcW@rjlAR_6PDi{U&31
      z{T`BLE|t`;vj3zmF}a%8LqV&iHy->G&1*?L{S%VPEQpg%>QzSC?c+3w2V5t!T@1h@
      zHGPup2B~+GUyU`K$1RfdBfQ16hL7RkQ?&3IuXWY;bkNaG-|J!D>=F|pMb~jwQM3zf
      zoTH>Mi-p%I#hB{@1-#_uc}xaKF_WeSHNZ1dC~c$9%^S0POdsFnbU$MNcli90J=`UO
      zzvAG(-ZSihu(lYF*CjQRUe2LJDZ*_0#DqB=W|YGoH4`LTbmAVmBxXZj2oaqhk^pZ!
      z_;>#q4%qe$lYh%*zC$0^6u!p@e%M2b(XfCxQ%Q~q{%U7=%H=P2j=)0G<X2Ix{0^#>
      SKP9#D)6bFw-sUrcEB^z!-9{$>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK=ob6g@8_^rSNo(m)U-d;=sMVe%m%FbHTSpCOYEB;?1pGt-&r*wX{uJwOly
      zMK_i^SF*6&Ws8<Y)Ktk1tK7JE%igU!%kz5D1cV9JRP}xDynD~P@BZfZe}4HDKpQ?+
      zP$94{>l9=2#!VyUndzcy`3td};pJij{PY=Vzu+z?s1(=~=-7snjg8FCn`vKQ{YlHQ
      z{8Iw!nwlpBDtihUQ^h(|M^T0K0<|g2F^7x!S<@XiW^GeIOBK?FJz=<(+^>L@e$Mg)
      z8dGogBrZ^sHT|UH`G%7wVZ14|>era>T240JT#hI?WO|;FH4|3W^!&JrI&4;;z4Epa
      zM-*GIl`kS;USLa8^Xs=nuuY))R?c$m>xF_X$+kza1MiZ~yiqi4FPU`;uGwRF^mFT*
      z{G3tHAh4&*vnN-nccMCiJ-p7fuABKxTYGl|`vla|_AvJf8p|`Cr`1q`S}OKSrbDYt
      zU9Ax`zr@tls-WeqOkJ%ibjfr?K=E?M;Wo+BDo_<{B4}sqxNM8yD64}j1ziFSWnMZ)
      zO-b1)DUYvEws&?ZV7}KdqKb+W(ug$}_|egQRKb}wji{pHv^45jG3sn<SJ1nr5mi(q
      zq|pE$>9c-Z1!o0zmU+>*)KHO>7DKeivA=8uBjqgyq=t%NX>p!0%V#<jj0@~2bHh-g
      zQ^lCno(#14?&-C(`RFOBeJRl9gRiWm&DUN=bqx%p70e18DC5Pe9Ti0eto4Xz+H>RV
      zFkaQv%p%VUY+LQpq~n{eW7xf}TX5wSRuuC=w>d_h^J5OSoFDAFH#Q9ijrMvsau~U$
      zSG0NOq5s+bbd;lHn0Ipc)P*fx^esC!X8Lgj<f;qY4lp?niL3BXEkC!SxQzuq(a2=}
      z<7#O>#+zqUe2jYv?(%$<sHb4t9G_Of@uK(y_c<qvPQH+_=7OQfJJ^3K<Kl%kD+B1o
      zUZ5gJw>Os}@v?(#8Fj2sbkk;^B}eY2mj?L}=>_(JUh^LS{8q?G&Aq~12c@8_(w7kV
      zo{I{o{Hm0|F;t=(HC#nYN|YP8tHwsumIx~L1cVS%`fsQbkM$?mG$>NKR{sR=e1nb4
      z*g3s~U8zOUpliE{JwjC1_J)W1d3b<_(6xi%VN-ah^YFdYBA)Bo;oxwWuEm1IR$Xfg
      z)jLA<PO2ZH`j5KS9bzYloh0_1uDu^(r-^+)>?>XSFvJqX`iR}uwf+!G5*s9z(X~{F
      z4HFwBHmYmqLTrrK1!5<4Z6d^`h|Lgd(zS~rcA3~!Vp~GKnq`#uTApD?%g?wb@CbFw
      zn49J%C$NN%p0+$@yh}NGgo9isn3G<nub+7tU^bGd$62O#ki$8}bPnMZ2TDIiFv{OW
      zoMV5UN1kKjCdP3e7w{z}@HHm!Er-J*rtt%2uuRQoxP(7A0{+AmJjYf1g=_d5hN$2$
      zs6krPBO`XR*LBQ^4)%8(mKeain1CJBNWH8XF~z=i=;sD8hyt#&O19$$+)}mRDRpGI
      z8O!h(j^bcYC^sjA+K_@(AO-U+1@kBcQzr$pB?S{C1#=<=(;x*SF9m~5@e}T>hV2B4
      z6}W{6TelVq4A&hrutytl7cIDlcJ||O2IdSNFl?VPc%Lyy4;hRvUX*@>VS2zbzK^Fe
      HArJorZmd><
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ9IPfvqD5XIlt7ARJ&Qvcpf;3Dzttu-bj8V?u`_O#HIQV|RbCi>BO@B{dvjI+}w
      zjUIM?**BB7Z|3`F`32w-XEr(l=ULf?3;8ZXt<tv6n~!iV^*oI3l-4p+*LkLNW1}lD
      z<hDYVS$Ll;R7$EP;BC}NQI$$2g%aqN@|7_1gWF9#ZtA?ut^^$OMVx<9$Ce*N0{x_@
      z(wCKDwQn=o7!Q9OJPP#uDbprKkx{G}hcX?(bW9z!(yC!EsybQ~&kq!ug(oVfCfENk
      zs}U%S8&_?es+-*8_WsU&VZzgpWJRY(dvj?KHXN9R^x-nM*BoGn-vjKfxyKx0pLqa}
      RIl>|H2*>0oa6)$nr@x`NR%rkL
      
      literal 0
      HcmV?d00001
      
      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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
      F{tw3);S~S?
      
      literal 0
      HcmV?d00001
      
      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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
      RZM^Io2yso<aJ?G7|9>0M1TFvo
      
      literal 0
      HcmV?d00001
      
      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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
      PpW$O%9fLj_ZhP>*r%glj
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      KXwR|j-Twy7BdHJo
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Z1qMSTu7js7n4^}G4Ti!#uQ!c1{|f?eUvdBd
      
      literal 0
      HcmV?d00001
      
      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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
      D{l@Sy
      
      literal 0
      HcmV?d00001
      
      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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
      VWi%YKEkgo|!v%7JOi66w{{q!GMZ*99
      
      literal 0
      HcmV?d00001
      
      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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
      B)D{2$
      
      literal 0
      HcmV?d00001
      
      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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
      Q`23M1$HAN|e#?*kAFS15rT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%TO^vCo5kEjgs2*Gdd#VUU5f9Nzr1x#QBwJ!qb~l2b<w@}12l!Fq
      zMD4YgH}B279p28@_s1uI3mgRS2*-KVh?RVi!m6w>+P#WZrbHoaA?~?drfVI*Cx|V^
      z2W73y)veBzb+e^hJ7oyHD_v=KP3VkI=LG+zUaCHJ2;HJx9HN8W2wg;k!*TMPp_ElF
      zQfG9PPun-cL|5vud0r^<Bp0P3#7UjWaxRT-^?%cMg|>u~WJ|`)XQqTOts9f6JKZiE
      zYzF6T0vv(!@_oRSlcL8Mu$sVQ1_Wnu{~h5QQx5~ikSlP>#tHVAMSnI7F=9p7XY>&N
      E0QQ7g_y7O^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<5PeQVQqn*nh!3b(3Ii6EU@1aER7`;-sJok3iK{fJY^M^R#e~Gb2k=pd
      zbIaW2-Fv<}-@E(y{rU!QgR>AG!>DXJz7!k5jm$f(>^ooPl2^i1{AD)D)+&V0!1t9&
      zV?-%us+7h)7GiCsW(e+8qwE7iZ+tmt@Soa3_HjshRZJrEFo<!0nBjb!Zs*scDS2kK
      zYRakW7^bR`uia`P^_y7Kk|9akT-0-+mDB%^zO9sDxJdUo+%7U@h_bfRxqMdcyTNY1
      zYd0MukTbdqC^9k@5Qd~~;SmGEtEB&l=!2+-Bf^NHO9!~aF|l}8h9OQ!F`N>5Nd5rY
      C1yybU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<5PeQVQqn*nh!3b(3Ii5WVJSjFR7`;-sJok3iK{fJY^M^R#e~Gb2k=pd
      zbIaW2-Fv<}-@E(y{rU!QgR>AG!>DXJz7!k5jm$f(>^ooPl2^i1{AD)D)+&V0!1t9&
      zV?-%us+7h)7GiCsW(e+8qwE7iZ+tmt@Soa3_HjshRZJrEFo<!0nBjb!Zs*scDS2kK
      zYRakW7^bR`uia`P^_y7Kk|9akT-0-+mDB%^zO9sDxJdUo+%7U@h_bfRxqMdcyTNY1
      zYd0MukTbdqC^9k@5Qd~~;SmGEtEB&l=!2+-Bf^NHO9!~aF|l}8h9OQ!F`N>5Nd5re
      C6;*Zs
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-F;2rk5S(>P92`R+hzCS8fr1kfu7Z#d5tX4aN`J9W_C<~z-JOwm78Mc&58zRV
      zbwZtHcIGsDJG(!>U*7<3a2CKLOp3Y{EBPjcRatAadl#!riBj59JkR5FqXYN^vCpQg
      zm4%w?LRt5a%Z*cp(7)5QcK3wd^m0M)ADdhaaL9U{$02$cMmRu3IG-ll`IW2-kvgO6
      zV%Bwx5?!m8cD+>QRW2(<7$;38tA#YW)BlgYE43wDB>NI>7nu>lv}sMIo^<!!aJS!e
      zHysmjGQJDA5(n!u2CQOu%z)r(JorTT!PLVMW5^Y_Wn+wEX3@@u5l&bUP8mIn{{Z6O
      BRd@gZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)++jHAg5XQgb$aW(uy@aHYHV)7W@ukGLl+q?8O`JBZ!AYTkFd;L{DDsJ|j4gX4
      znW;O#3;ZMS%md88q@gpwGk+ArcO>CUoHBiot#i)qZ};2Xqrd<8{SN>|JWe7eP^dYb
      z!h!jfS@5LQac#d_IIv`)ZhG~?hV(qMChyrb>G`Wwv+YYa2~A*b*kQ<St8FKd5O^i9
      zX_!u}u-0ff(%frEfutE=_%>e|jT}TR58;*s5_fFJ_Ll{wGnGDc%Xe+3wv^o#(AHX2
      zsbd0Xk~l4J=>_12)U<9|e#`9|IE!-vshaf5j^~?>#f+9t!oOseI;hydIHm-0nU{1@
      zxu2=nj@;}t_oVx2Sfa^F%Q73=rfaKpw5j=Z+Y>0BK>pu$sq!_en`V>xCP%BMV+^w@
      z?X<vHCc8aO8Lt~i;*>z#Qf(8M%47!|AMG7T%U??2GOi|ZMd0cSsy*CB18?9>c2GJs
      z>U|*naHuL=`}H7pSs}9qa+nu5r6ys^e#-Dh=<->+YWiGinNoIJnJyS8;2Pz1qLaAo
      zv^&0lC~?d(yQOkDG`yh<uM5O>d5~!B?|V{Nl^L}monC-2Ar&CITT%h;82A8-bg2gO
      z--FUozyHLNZQpJ=UJ|PU>EZhjqIxzuRxqpM9@dk%FK~8XhP$3Gn+6`>p}@H5x@OmE
      zwY$Lx^{t|kmq)vxBvQs+XP;@h((5#+EY_@Yvcsx9mK3YRY#Ml^njEK<lCN*II<6(x
      zZFMPUhHhMR(HB$#>>Bxe;(TIiF8JvfhsH-ue2S}8?#I+_F8>V1Atry}B8F-H>cPPV
      zoi=fv>+_)@Ud3x%DbNfq1Yq8q2)9lfh0}9~xR}fThPgiPG*baSXZRiZelft*drUn@
      zlKoW!7crLu3Bc5Ih@IT8m^;EHfxmE>+5Svom~DdAz?T8l2;Qe6s=!;Ak61VOuk7@Y
      zlM(po7{MAK{Fj$N9@iqmTBI<g2p5m=b_{)qVae(&ojo8g)svUPJN$I36!N$p0e4ss
      zjY&)>V171zgm<+OWD^FQ0GSJod&mhQ-y@0u+{F7q^(SzPZ>sUPu^5Fprkr1v<F#{7
      zRDK)FWZorTBWWcVnjbh&3GNhoRlKRCr?nrEdXANyLzMmu4;W-IJ`*3y&rWO4ur{sr
      zi+v#gJRz=&b9l;8`Wjd84Hocikj8QtpeM74awN0ZlUa;prr6*QDOe+60w2*%&3gsu
      bNct`Q4>Wy4jFk5~4&?VI%Kw-$WBBA>W*cy-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g;P)X+xk8#0N0ZGGG-^38@GPQ8A?q1a)^4D{+-3k?mCCvzU+=_y9f%
      z@d6B;y4<_7&*!thzCS(zjB(<@VK~pqhOfj%a3hmOEBne<iR8I3Ie%8QoX^HrH*u{z
      zxD0%Uc`l6+nVhLi8hf9L+DgsPy;Y^McMP53Xu;q<RH^Kt&(PNtzD_CJM+f@>_7E_f
      z4x`^Lg(x!~Tdm4$+MXLks+3R7dMWjbSQe5YjH*Nw3!zo3{})}GE5k5~cJ$nS)Re)G
      zt41gCQMIAR+nbkd6P$s%(|>^`qmo@hkJJPXF~GYBd++eyh&nhR^l1XuWSroTSny}V
      M07s<g4nhav4@5CthyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g;P)X+xk8#0N0ZGGHoEmLeoX#gsA-)ZI<2#8sL^wo{4EVnSlz1NbP!
      z3ovx*a_`PQpU?jK{`dqi#)$`q;XErFz7iY3jZ7M?>?>a-lIOzY{8`m<J{#X$#kKO_
      zGVmSdxim&(a;7qA?0qU~D>Xy+R+Y-$F?5Eb1%vxgrLu=ULtj()I;C(Q9qb3#L%?u4
      zjDEWmqRe<~wJNh|du|Y^Qa&~7rPMECSxAO3suEEwgjTKoUvzD*48the(R2GzQwBe-
      z8lA{T)rKB#Z(g=da0cp5{{@<iN_Gi7QWH4D0PiB~y~BSa>fnITrwLq>ae_l)!JiES
      L9Fd|s2pxn!H<4X<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#19Zes-SDZdZ`Gac#2*ky>HVc*%FhoyAk{>Pl5+Oz>g9q
      zDn0h{=DnRa!`u1#{`dqi!d?K6aF|z(SjZPCtjZdr-K$t+N)*x-A}!?T@;qJY06syi
      zaXu((Wv=dYuB^M6%cWC>(7n=?cGrZ?@OVn_Z|k}0VUrNpLZ0&K5FKnq*g!<sA11#s
      zN?GM1bw*eDq@5Zhx>AqL^Gum1IV%+*PU=jSQ)zUo{~vu<XiGRs)}&nhXF>?mx-pr$
      z*X_pss&m$6zyUZj9|>HE<8>JWR%3X~fZ!zVy(4^M>S3EP<O*D{ag08*=+A}$c32U1
      H89l^5b&Xj@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#19Zes-TO-c&P}Yc#2*ky>HVc*%H&TyAk{>Pl5+Oz>g9q
      zDn0h{=DnRa!`u1#{`drNj=caL;jpM1F_$k=Sd}+MyH_#Kl_;exMOMmDa+xi40G}Y%
      zI3JX?vQT%rP}bed<kBfa=w9hsyK6#ccswEaw~LwTVUrNpQl9ea5FKnq*g!<sAEv)C
      zDp?mIb4J(2xSblLx>k?P^HiB9Ijs~SP8YeXCer9u|3CV!)Ru6Ru1UH2&zKNqi^k;Y
      zUbh?jtIk=Q0SDmBd?ausj@M-jSS9e70l`V!dq?=j)WbGo$Q8I?V}d@j=+A}$c32U1
      H89l^5h%;GU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#19Zes-TP5f>04e@f5v8df%o?vLz;EcO&>&o&*nmfFC7J
      zRC?^?&3ij<hPU(e{qYIl9D4yg!eL%DVj*9ouqtbecCTWQDN#sUh_sLwm!ov41Na27
      z#`&PEmASgpxw7tNE|*RjLib8n+FcVm!{aHzzpdx0hfP9Y3wg?`Lv*keVFM9if0+En
      zC}ow4)EQmnlXhy5=t?~{&ogD7<g8SLIH@yPPNmVU{(tmcp)KJkS(9@0p9vvM>&9g2
      zUbh?jtIk=Q0SDmBd?ausj@M-jSdHN^1A>#d_m1$5sfTUGkSj1^;~0Hr(Vq<i?64y2
      IGJ1%A0FHfGW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#19Zes-R1YIaLHvJVh^&-nZ$JY>8>v-3We`C&7as;75rQ
      zl^%O}^WM&z;q82Ve|!QM;UIuVI4<f&EaZz6R^^S+?o}*uB}!>ak(DwTjkA>w;1k3K
      z=Yz6V7V1tH%DS7mTsdV3-78&dcTMOFPp1U`b~#r)Y!d=o%5z>FqJy0XTZjmU!}K>s
      zCF??D&gi<Bv{Qpr*Xpr(o+<MrXO$wv=`xqqR2tpt|3}}I+7eFE4Jp_EnGnKk*_d42
      z>vm&*-MMHp;0T<Vj|8s7@w$uws{|f1AUKPA?+D+Rde~(QxdNALOweZ*{n;?U9xK8=
      Hqlfqhc(hqc
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-K~BRk5FDpzQbI~0hzB5qR5)O9pqC;f1mYC9r0U&GEyq<zD%(NgS)7nK@Bki#
      zSOdNGGCQ+7UXAzb`{NV9B@SZ*3@57T_)5G8Ze`gS?Oyq+l)MtQ;xnzJDb_kh$iTN4
      zAEmWI$$Ro!ce@m8Ck;b%tsCub7<%KgIYW5YF696_41MPpC+J}}MIR}{(K!FjP>V+K
      z!WrGDsed!dbt9j;=Y=#gv8W|Ombay-=fY^O|C^z!v}HKWw`AOWX3CHhZD&gPp#8$(
      zW^myX;24yb?gOfn6cJ%e>IwldAU@9q??~Q=1{e}1RQ))@1bf8NKO08aC&h3;7$Exr
      DCAC^M
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%TB{E5FDqWX+xk8#0PMq<$#4mPen)w#3^tIDrYyflC45g*-jCk#R-W6AHYW;
      zHaw)BdYPSBkJq#Q{CfWYaE5~bp1^TlHFBX=N?M&YhTMx>WLg%=7V@zmQ!eYeOqUeE
      z7mypwciLK&>l@0obyst>blM1XFQ_7SDbN{?rUL$TJ=Z<-1^Unb!$Wki9bpTRz~M0Y
      z$x^B+m#H&U<&*Z_AfZa%H%~Kd9@MPV0&!Ajs+=lAt^RBJt{^KgN;c$NUuq%{rgdX7
      zeM{}o{q@7sHVKZv+4;Y~RdC2IW58+*j~Ni0#Jx9!uS`AcFos-#b2g5#%Pjh}VSqhW
      J{05_k_!~wtVORhF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG6r7i)O^wlNiXY&uRcH|GsUnCV9)brWy>F8x-I8v?b|d&%o&*nmfFC8k
      zwO)GZW!{^&^JZuF`{(luz!io8Ji@rtZL$)tBH75iHOjsvt6V0H(Pi?;<LX)HqF!f>
      z3g8nad*qojkX!v-AsQ<Up?9OSvbTiJXgnwQ_jMurI3RSF&OJm2hY`An2xp`8FGwZ$
      z?#vpc%bD95q)N-DcD<11MJy^wh|@Y3)m#|m`2WziOSK_frh6jpzGy}Wv${38d{EAI
      zxO+TtX>bnC&L0M@oEkmGfY}rtcR+9v_dgK6bL-)VG2{wdvv7)I?xL*>1Dr4;oHBZd
      Fe*r6eVF&;K
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g;P)DIrh@;scmy8ER3{si+bHF$D&Ky1R)LTqREAI!JsL6A}X-(2qhq
      zQ-)4m?%mn<-aC8!^Ysnj3a0@)hKoYCd@0@pU&*XB%D(euCV69Y!5{C(&qC*Ql{PAX
      z&oJ6yPF=g)_-}L3SZNr#H%cozW9STqa|Zve&Sek#q^o=!qJx77dx#j$2FYKDQqbPi
      z8l{V=>*yy+%cr(lNb@2VrDTYcIuqqw80GZ;p>JQ+ieZ@S2)O;4DMOgnt;ytrazjtH
      zFGns3&Os^Zqd=8W$Sz?(Y66cK5M0K+PlO*tJsc8-RDo+UPH;pl+St&?F)7+X=pp_E
      D#?4%O
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g;P)DIrh@;scmy8EPS=QxOsZF$D&Ky1R)LTqREAI+ge=CL{(vfR92v
      zQ-)4m?%mn<-aGsI=kp7|6;1<q3>T&D_)@F|U&*{P%D(YsE_rKo$sg~NXQ7Lx&RP|~
      zXPE3TXRcjt{I`W@tuze%Yo(RFVd#y<a|ZveDdYhAr0XIH(ZfN6Jwyy=qx3ICC1`JE
      zjnd`JbqrIb<x^KLq<ImGN;1T0lZ$FDjB@(_(6_H@#V}5H1l)ejj3LaL&gAkzxuGZ9
      zmlKx+=b)7IQJ~5wWS=k~HHAkE2rlEn2f}xv9u5gZsz5@<DUOIm8yki=CPh04J;cAw
      CJ6wbS
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g;P)DIw4j#0N0ZGSosMQxQ@HVhRidb$1ghxJsPJb&&WhCL{(vfR92v
      zQ-)4m?%mn<-aGsI=kp7|B~Ai(4Ckfp_)5GAzLt4slzro?T=LfFl0V!fPeK<>owX`}
      z&oJF#&Ro0P_~(Uatuze%Yo(RFVd#w~3kLtTDdYhAr0XIH(ZfN6Jwyzr<Mb~?C1`JE
      zjnd`JbqrIb<zrVbrFj<1N;1T0lZ$F0jB@(_(6=vY%`i!K1l)ejj3LaL&gAl5xuM6~
      zms6JnXP}hyQJ~5wWS=k~mB1qg1Q+q(1K~SS4~K*yRp5$@366+G8ykigk)j=h9^zln
      Ca$JZ2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrj5~RMLc_}f?X;t2o*sTPtijoy>F8xZb>#_n+SfEC&7as;75rQ
      z>#fksoA;JCGjI0$=kp7|2uB_q!bNIov6Qb;tW;cEUA>8AtVC%|DrUM=kN2a?tC=)O
      zkw>NW;1Y&gTB2r%TKjJkSysvt+Sl6X>W0u7oXrXDU6H5`x`eLf4SB*Fe6+9|U<U!=
      zco6;t$|PrqDyvO8ZTfnlHtMO)7s@`%MWzV-u!v<gmsU6W|Iw{p^ok(DEipGQn-ct}
      zsBNqsbTj&7(=u#Q;S_uae;~LL2W~TZtR`@n0p5AP^8x>zse?U6pDQqC;{^N6g0&4j
      M9IzrBGCJu00>}bnm;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrj5~RMLc_}f?W%(mx>^Yr|6-P-nYpTw<MdeO$0y7li<M*@T0_u
      z^;YQR&3nt6nK%3W^Z5l}gd-0Q;UYD)Sjtx^Rw}NouHM8lR-&{f6*FC`$NSOM<xHBS
      z$fHtwa0$aLEm1Q>t^K!&EGuOR?Q3mxbwg+k&gKO7u1Hh|T|(FLhCJa7K3dofu!Deb
      zJP7{+Ws);QmDMJlHhsNN8}(G@3uT|>B2$EZSi~}$ORF3G|L9gPdPNZ7mYAEDO$mNf
      z)HYTRx*2`4X&E-Da0<SIKM-7r1GgDHRueeP0Pnot`GEh<)WII3&lMQ6ae{qj!P<r%
      M4p<Qm86EV00lKDShyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fEZv6kVq+^x_nx0-}IWMC}DzQ1J$$6x7tTHK7VoG;!KF!XeX{W@c*OSA6uv
      zS4gB7C47J%W!z^vmJ+;Vl9@UC?7i07w;w;h9RZlZau7a-%!bj(ZmA#Ctj((pOE^2(
      ztt!vfEn_2FmKMIE8k$*K)YQ7etsnvnqbL14-O6>r5L8`f&M;Xx4evr1m!EQjTdHGP
      za}3=zt)$k-KUQ#|byc!EmM}Kt?YuCAv%oNrIDMU5We6;p8jrw_sDdzh82pLkY7l1`
      zCjL(!K`)|VFq~7+g>Lybpdg4)2<I6_2q06ncIu9qk-{@IEwicGn;C=jMsNYcL0qH=
      zS9Ze@dUnawbzXIZY1j%zFv_6Vl!wk8(<rKShS|<6o>#WWd9EWb&ysAJTu2I=lQPE?
      zj3Z9@%6d?-JfOCZtVM4@7`)V|Rk-y+t>|t|&8n)es+N#v&lqqvh0QSihyMJl{nU*Z
      zH#UgEYacIjt}%2a^2zmFgld;mkV2YtwA@O3+sW-XoVdCY>p7_~WHf4?iRG!g7PlKZ
      zrQ?$Ty_ivO12-9>!p>8gLe+&WDX6EfCBdwM+mayKA}Di5N|2Fv72LyphOlu=8YI$u
      zUQWY2!_;4<p&)9)S>bARlWUK+tGq6|M}jL-xI})a;F09)Q8lf#4qgHQ+f6@GHXBxz
      zKM}ItL!JBJtxZPGM_`=f`)T)l^w6lee>7<H4bT&YOz#Yx-jkP)z7wefD5>x0eRY7o
      zeZ*4fee|ckAQl@;f5lJ}m-bwY33?9_BJhlG7D#Xb{U{=i5-z)UE*d6rg-(Pk$D6nq
      zuHu@<Ss_NLt$#T12|@p1Xm|K9R7_1Zk(k;gyN{xNv#bzTne@Iy6sw3~&1D&H#kX1d
      zF@@`d9woL6vV_3oXn1@zQYux&Wj;+ze?%ljtWDgKhO|F@)Wn_72(0Z<Kp!pA80Joh
      zcthoSOE>T6rb2tcJ5r6eMa1!dsAZ}&G#>RL;YjMR%hbfeaTO!(g`nzeb-;z&aA7QZ
      Ka5=XoOTPg7BPdn?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6ug&)ri4Htzz49E3K}X=mLepC#1t_Q)ZI<2#8v7<Zi2*TF(EPV0elqV
      znX<sp<=&ljKHu}_*ZT*6F%CUAgki4RXd#|Ow32CSRPz!oQW@1o=TTCK@zuqn&{?%i
      zYURNtj5hggf?WG=Gf_9v5W3e&tLBE#8Jx}t?p>A19<~YIsu1U#@1ujA09yzM$AkE%
      zODXL0jZr$E+FSitY5CAD=h8fhc_|5DT&1F%38Sq3J#?Ewtq5oFrjmb`niBk^YE3Hd
      zmCZf+xAe&N!3nrO{~CA_SM4%-tR`@n0p2j|y}^HF>R^}A=LuZ0ae_T&!P<sC_E`}Q
      H7#)P)t;Aqf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!A^rf6r4w~R79(&AK<MvT4Ez!YD|oYC*na&?_1cwHWbJLCVrMD6AylXA7y-N
      zz38Erc{7{Y*?If<_5K0i0*4MP!Z<6tU@4wO(8#3Is(lHTi41C8W<i{bX?XQ0%CuU=
      zwQ^t+CY$^wL9YF`si<423H@tTs`iG^8=cMx_Fa|A0k#QFlZ$iCchSR+hb?%7<5Bd}
      zr4Z)%R;x0bnOnn1mGYrmEu?-Di$W6os7gdJ7g`zpduX@0Y6xf1rjmb`ni1T%>U1LS
      zmB~H&xAesH!3nrO{~CA_SM4)8tU_4K0B7tE-r&A6wXn<R@&qo~7-El^x3*!3eO816
      HMhpHo!GvIL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG6r7jFrp9PB>IZnMMH|Exgo+@7r{KXz@7rWawxpY|O$0y7li<M*@T0`H
      z){7o`nK!e{&d%G<ulElC7dZ6b5Qe#KqlI`D(MqPRQO!%VNM%$TokvL_F0aOqLTA-7
      zsg(zpFxup|33Bbf%|zWuL+D;Bt(qG`XK*?rxOY`1d)Ov;t3sS}zK;%e0&F2591r53
      zE~T)~H%94vYH#&prR77roJ;d0=A|Trag~a4CXBNB_t0$$wIZCwn@av&YD(~vsx_&+
      zS2p+P-_j%72PfeE{A=JzT(!&Sv6{eP26)4;_Xhu!se@fcpC>S8;{<!mg0&5O?6V>q
      IFgggo0mv+1b^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!A^rf6r4w~R79(&AK<MvT2dpY8WUsUiFgpx`xZ8^4PD3rP5dlRCLa6%Kg#&9
      zUi8q*yqV4H?7aQ_dj9}0#jyj6FwS%vEX7&`wM<&0nwMai$e=Ph3*uaa)2k<;({dG8
      z%7IOoZ1Z;sa^t^CMb$_{=-()<np;9|bUr88_hl*v*d;i1E-pFWMGt!(cHj|CN6}B0
      zLUhkJM(J$U-5N$p%g1)Lkmgw|3Q6#zG7-gG7}e?DL%YdUO}L1*mHfNZjNry)YZCdO
      zy4;h0OHaB!I0N_RUjt9#s(nU>RS1h2;Eesj8{Ai>7WNrkp1?I5LmV*kHZ}}#$ck{p
      HXu<ymu^M1n
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6ug(FO$mWQDn5X%1*s7dor;hU5>v!Ls_t%L1y`vPxegMa)d`7#58$H^
      z&y=N0mwR{i`F!^G&*v9_8w>+@gmJ0cWF_82vXOaflzmTDxl9_P%Ve%fX<mdb>UGwr
      z06t-Iz@E7Px${31qOsBtdUr}Idr#<$#tVY~SQoO7BSP1@^bj2!N9ZCVT#VAcB9-8~
      zGi#JCXYR}(Ra!o`>!mbvv8*H^PU~D$3t^Pg|BJqTRU5)}dZ6O|i)Mr{t6P)HC*@*?
      z``Z)O2AAOO{9)k9t<hr)SWV$E1A?o#|ABDJ)WZp5$P>6_;}oaNqMZ!`oUtODGkS=B
      E0bL<sL;wH)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrj6BVL_B+|f?WiAst6)@3LcEq^EO%1E$MF9CKW%+li<M*@T0_u
      z)l;FDH}5TPX5Q@A_s1uIOB@C82p74j#aynWSgN#kx_TA!REg4=Ts+UTD@tpNM`<#<
      zNJ<^RCk(f=B+U@D_TOf*tdt|PueH(D4WTtSn-Kgvo2d@Egzn4#h7c|6_OOE<;dl`L
      z1}Y?HNGhjIK5qK@u{P?VUQCsHlG8#FqS&Ugm`JA^{rBisGrc5;cuUO9%f^H-v9(Lp
      zy>3RIY+8m*Dx8Av;12{>;=pajfYk^dGaxvRI`0VIn0nY_47mbVY#d>qS#NDa9|x=m
      Ihm0PgANId!XaE2J
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      DarZ~h
      
      literal 0
      HcmV?d00001
      
      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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
      A@&Et;
      
      literal 0
      HcmV?d00001
      
      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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
      H;hTQ}5_tko
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O-sW-5Ph4*rpC0@_|dbsTBM;DJtPRC2tx2+q~LLzEOARr%O+9$S)K|C{s4cJ
      zI9nx`wwIZCvomkr%zpoTd;u7tXTe}NP4mi|@)zzEBCeDy-@Iuoyh5hlbrjw6*GQ&0
      zFDoUYxwK$13^sSvwU-H>mqIZ#1DVV6f}znr88etyvqZG8O*knE3p)(MRXRPKp0$9Q
      zk(B7(*oKX^gDo^|G|<)2E<?}{mpf!UPrayAGEe<*J@IW#x#aV;tZpcCaaTQ0gnHnU
      zOfb0NEausmE2;5+(k!23L5kNfZ@!t&U`Mk`#o|V4=HBXAhgv(1L06%l0ePkuBx?~0
      sU{VBh25##U_TvK10-blt7}z6glLyYw#yMPyoWE-9<A4yuAz1@Qza?0OQ2+n{
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95IvikxOGfh0tE`CH*QHPFcrK7kSat`N>oKP>KhMRXXS32tfRG45xxo}
      z5SIr&fR94V+9pz+NJT4aJhL-%cITY^{paT|0NbeBC^2k@YUrKtGw#JA7;2e}ypuq9
      zu?)SpV$|VMzY$7ko<w@5%Lj?jHY|qK^CiVp2AikZf}!4?gg6x=uT?B+GL)Z7C6kv7
      zOSN{2(Bmrf{6tF?HtUBB)~l#19L%8N!p5wF%UG~6&+uqEND*U~2XvE>i$z>vsDvVE
      zsW{;(po6}chWX!zp98~H7ne|GSZGTn_J{o=q2KYN9`&xaqk#7gxt7MygI01ZV}_?w
      zFfQPLMrEH4!hPOPdrypt!7+oByeB_W#(J%ljdRSgZ^#x0Ty>*<I@rDZ^5cwnAOdfv
      z7e=Is<9>&0!Xoy43O6rm=Dhw8h(RJF728;2cyeAXEp<i*>rOTwm(d8rOm-q?kYTx2
      zFW}}|%?j?~zKwef52veOLTWA^V1r@y9|+CMkA^xByV9_=Qj|?D{m14W)&?;>Lr;j*
      zXy~Rtix#PoB6H;Jp+pOqZ)|;o)7bhB_baNODN@2U6Hlu<RC_@3^|3^;>sbZa8|0as
      zn^*>;mv#%c3BcGD>VJp!EV8Tgt;3weAU-3@$U2QLsQ$nv!zc1Gv~s%hK1Fe}tQ>{L
      Im1foc0#?i#_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$T}uK%6g{JxYnvZsU(Z2=3A(MYeV{~Q1d&CwA@vmFI;>;5%IvPu&+17i=m+$p
      zqM0r1A$z%V&*9#4&%N{U`T7pP!lsS{!M5i|W}i-|889~zJbX6$E;9q}nU|;4Cm!~0
      zoQ4jKp!9#G!#$sdkzkE39fwR1r0U$~;W0t7xZ5VsnxigDW09aB0$LtFx`9=mSQWcG
      z>{fLw5gh(iR~}@wDGgj-G##sLJ=n8JclO?q5_Jt2$Y!vBlz}AjDqAL~7hCaC1L}LG
      z6AJEowbuL*=QGV%ucrLwTij<?(XhkBE$s}L^xYb{bkL@PEBr%hVUGs{J9Cu(9<fGX
      zIHO3o?2IeL{O^4$$}6@Y&n3SG@+E2^8Fh(Hpver#l?v%M823|TrpUcWCV>^j$6dCJ
      W`^e$|1<7T;JFtp1i3rx?>Wwdr27#Xd
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$+e*Vg5It*SQ)4e$Z_k2AEwnKY@j{DODuNhAj1+y6ZMvje+q7(wil60ELBS93
      zqr}}P^`Z4;cFtku%$eEGueT2X7PfRO5bXFtZ1(7wnj!OI!J`+m=P@(nzIk<KKl7-2
      z>o#;~1m*uLUG4`oiUn(Q=qO@>AYJDHk4^|urM(t`)*N<N21^7*5z@-&$qTK@*s9u<
      zLC4myOmH--t~|(UQyRFrY`Rv<dbFpL?(O|!CF&V4kjr8bX#*(~RJKA;FFDCleH!?t
      z8wnoxHD~^ai>YR!S5tlq4iDIMJZLj<N85cSeLF*s_FGhNg?~vc>hh3acaHMx5o-j7
      zJB)?L&bd-7{N1;zykZ;jT=HumU!oS0QJ3fxn#_QFxtMu}@i0Mlg8Zvw7O<-Lq|27^
      W0683@D7oxU2iCAI5y3`Mz4;B9w1KMt
      
      literal 0
      HcmV?d00001
      
      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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
      B?iBz4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBr9h7(F*eHiTF;RMA4KwF)62SwU&RP>}+r!Bj1wI&`egWpfRSVRvU=n9`rp
      z8Gl4)I;AZ$I)3qkKg#LZ&6<XY%=l&Z-e;eebI$WT`{wPxF91wpSwlkLYSRkzEx99g
      zPZ@!0`n&p;p>)q|>Z|pIJ8Jj7G~J4_lq-GPtvjZMq`>5dqk2OY8q)EVE6_J*TBd(f
      z;8<?_fk1N6Zm1Ocd3QaT#xV?Ja2y$dGr3v>s3onYUiV$oYL>%@lQq*)cZ2N><*vz%
      zmJ-O;Y(uslNY@PSu`%gynx4Q^?ZX%kXI2(ShY(HKGJj+Ci@9nWNJp7^D3Mx~R>R&V
      zBn_VmoQ|*tzS+{hm)_<N(n(_wXG1Q1DV!5HMI0r=-F1AsM5d)$8lPcA!|=P<h-cOE
      zRa3bce2y;!v>n+B)V-$yXLHr@E;(Yia#-VH24CV5^>YGWV5VEOdmCHI@XK9+v86j#
      zY)av>z+ewZ$F-U%j0z0(d{CBQH`tMW2;?#tN1kY9)MH9Eeu(JL)UICbor>}RCQ#B)
      z6c~HIPltwNpyR5*aZmYy!`{byBju@jG$I-!y{LJj%87HMP6>=0)kk(+`kb<jz*n4`
      z!M1OALpc~Lakb7Uc#bmkg;vw%%4}}mm#*Aa9P>KOvFsh!o~dEI<zEfu_@-@n8g6h0
      z5AI*pV)xC)`^h_D8s@0=!KesOd$75#2LPqOt?P3_j9wbE7)W7(Yu3}*_IH6ok61@B
      zC6~G#xQ4oIhWj{t_+phpq?}cbD*rs-lWjyFpBit|Nbm$``D|(r=|6Z(-~^v(zJYl<
      z-oht5W!i2yiBr6BdytJ&JZH)zZPWW0T;Ic)yT$C#@ZUK97cM-Uc#VN#_N$5TT+Ck4
      zVsrjaj1~VuA%Xu3j-sDQmXN|S*XuThP{9RMaS1CJ<vWi%xQ<!`Cf_a?g9%woVk!bS
      zjcfEuFiVlvuOqgn@eM6A%$}srY{Yv%23>gvy6_q!g;yy5juZQsUC(~IhxwPq?5)B_
      z(wL%Bz>fs5%F`OD{KUV?LtMc+_w{E2eMEr25Y8ja;W3Fm>7rEWP^#c2zKbYTI+W%+
      LlonYdfu;Wdafg{r
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp&q~8U5XQf4V^d?=YW)Y^yw!p(z38DuD1smak**XxZqp@hscG0G6(7q}LBR*`
      zp~Tr*a<O`unQxf=@y+b#*V_kx4h~(E7<d%td?M$Prz*^i&R+N=R6NxYABg^)5Ci!v
      zbQH@hH%cVhg~QPP`%y95AIl_DhN05avCb|T%B_<jgL5?-t131bT$9SvBu!mxF?4<-
      ztp^%e`6$3-$Ra`y9%?=|Q1MVk!&ci2y;iW?W-8-|i_GXa>IUoCHwALZ>soh>K*#Df
      ze;O%sFGo|w&<tjwoDQYYR<D{)_NY@by@ven^|}n6nB^u^*V@95*53HcZh&LZ$>^s*
      znb|cdx}<t=r~>NkX7wH3!vg*S^;hbYutU+K44k8e3pA<nf2OgEJyHz&6iYbx29U6d
      AqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-lnY5PfOaZe9DK_3P}(wg=OK6=aK06j4~btQ0+_+ptY(x01~&{wz-g1%H4)
      zN}SXW5Q~?Yd6UVTmzTHq=T`u2?7GM??8iyQ$Kqb_R7ROr=8=yh$x{{c@S@i~YCR}3
      zItxP=4ny;wVHGFBWLoxy;?79TQ0S^enG=S5z0qfIPG>_|#46!onz~qH;D71tUOMKq
      zG5lt{>9mgR<;a7FatSLac*vt_t96EMJy__Uh=ep7t&-RemNQ@ea4z_KtE(EQL|$dn
      zfz;PxFp&(kU>1o<Uub3VSJN>gl`=GzFfaAXXYj&VrXzW-7No!2Jg|zf2Qq{H0+gA3
      y7Dbm(7Y<cGrCBS!z`LEJG)Lu$Iyr1m^e6*|D5HZKRi)2qY+{QL!#2enc0K@xWqg1D
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T}uK%6g{JxYnx_S*>g{+u&(>CRw$7OQ6v#<NIk{44(ph$GP`T^vw9K=`T_l@
      zXlDC>NP4+*@8RBa&b{;Y{`?BS#<q?W!LA>~)`-ri6*4atJbJW79<xI3Tkc8QZqy%m
      zG`w`%Iy8dnKh4|^XcP<99?)sT1VN_710Ed`q|22af!3J}SQg6!B@t3{dgq0<IkRhy
      z84jr_g><YC?Eh6zR^)^wO<bIHT)SuAI_|gHwNpP(#GU~I`5cyzF_1<<WorbjayQv+
      zOar-3BzWLAyNe}Ge>fAqrt)0q@_?Pk_kAX=Xn)KIirtAv$2}^zs=q)j8uE~!vVeKv
      zEt>>}JBfwIj(I}*>(Vvl7(0-Mlm7(y61A3$x~z_%$qZPn7PBufZsy3%vHB#D6xJ1<
      ZOgS<(kjEa163cx~U;~@7BG^j0OCOdKgt-6!
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;+e*Vg5Ix&QQ)4e$wLbe~TWDj1RHa2M1yKwlMv6YkHeJ%KH7%Q@;%E6(Q1Ao%
      zC~-GlKrFt@&KzdWIWznA{`?BS!lsTC!L}d7=8#UQ88R;xJbE;T9y3Gko9;<_*KR!U
      zXmIJab!Y_Df10@;&?pwH-KUd?34+BI4|sG)kS<rc1X^d@XBjLJltf5tlRGc8YE!Fj
      z*TMm<Ng*A}1p9v#lodH)N)s1n9oOnwx3>GOc5Uw*C}Pimfm{{~STvAEL1ilht+JEs
      zHll&tClWmHo6dZR(;v=+uc<s293HUq_`b))743}}LD3m|bkwDStNIJnq5%&HDs!0U
      z-m*zxxZ_xO?3gE{zb;)@j<E%KIQdVIFHvjBsLSdIn#_QFwU~K<aWg}9hWwL6Qdm`Z
      aGG)uyKn{B-N-X<1fi<klieMw@E`0#6<%H1y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;+e*Vg5Ix(*rp8{hYJK*}wvfi4(MpS03ZfW9j1+y6ZMvjeYg%%t_*p&`6#M``
      zO5BYX5Q{IfGl!XT&dk2OKfeMnv7sVGu;ux&F{D#!gv^Zt9z7aEml+}V4Ckc1)7X9B
      z(csc)t567P|1@*Yr%@cRcArin77%1w+~?6DLAp}y5-6Q<pJlN~P!2+>Pww2%)Td_M
      z(!&AOg^-FRg2rD3X+=yJ!o<Z{$1%I+t>t{HU0d4+lGxRtA)mtnG8)n-%50gSRk4%Z
      zM${MkL;?4`rafQc^oKLyYf8^WoBQlMzVET%iuOi~pk$9-I_lDZ%lZpcq5%&Hs&km<
      z-m*!cIpa8R*)dN@e_gsR9b*&XaN?gJULw~LQ5Dq@6p;aiS}FSi?PiAD4236wq_86K
      aWXck84|(jPB(U7)1Xi&oDuVT-yZiyTlZ4p-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;+e*Vg5Ix(*rp8{hYJK*}w$R21@j{DO3ZfW9j1+y6ZMvjeYg#r*#n1Aopx_7i
      zQQ~gAfLMH)ojJ^$b7uDK{rMGug$*4kf-OIY%^{sqGh|*Yc=TuvJ!Xd7H{FxAZS6ep
      zXmIJab!Y^&f10@;&?pwH-KUd?34%<E2Ru3?NLQ*|0<AOdvn&<~$|9uo$(<Kk^{Lgc
      z>*0XbrI3y#g8jb=%8HyYrHPBPj%#(TTig9sySBFv6tQQ(Kt6{BWDKNHRM|2?tKuZP
      zjc6eEi3AV)rZZpS^oKLyYbwu0hX?FDzV9({MSCMgP;$l|9d)VTs{R7CXuv~)>Kx{|
      zw`>v^?l=}6JLU=LuS++SV{AemPW}_*OVnC2>ase5CNrQ=D`j6`+{}=hq3|S;6jl_T
      aOxZH-B9A?kB$oS}z$(^cMX;W9mp=fSY=pf4
      
      literal 0
      HcmV?d00001
      
      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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
      LfEBo|;4J<R)8cP2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TB^j5IrL=r67oJjcnY&#>&D(!wN7Y1Qh~CO<0&qxgo{cCgqldUvuFH_)*4b
      zZJOd^H90eL?m2Vr$LHHSfEtc7SR<THZBL(xh0y2H@LW?Z^%uF+J6*Z#3)5{m6KQ0S
      zBou=sOW0GrH=apD5we5E<8!+=xNY1Ms6)uN9DA;WtsaEs$pp&~L3_G5zY5p<7K`Tk
      z-PZ6j)=ThOV|Z7KwOCS{O4WAUSD`xBghZvv5(Q}+?5XdKEz@9=gp<n6s{d$Kua25*
      zJY=}$LMRzf%D*Vl@S9WMtADDDn$>@WSS4gc4-v|hKPb_>&iM@;&oyM*v?QUl68V{b
      zQkqkRA6XKINFmKA;|GX!#v3u5Wvs<;j&VMQH<98v3n=nage{bUx{aNn?qV;f`#A7_
      JjJdwX(HGy}fAIhS
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPxe5X?5QhKpT2BxW!6#4~gSEXPDhdnsaT%8A8YL#ezM6#(;6sV=E^KCs|Cn#C
      zxAO(S0JQ)aLMPTvY~)FbBS+3Cn~E)`Vlw4)DU}(sW+Uz11jrHUPh%o=EEekxN0yM&
      za>s;bw>SHVp*2d!Lqh(@)*T3q?n`x6C1NfQ!`_Nej9=wG-u}eD5byiGqa5y?iFl+E
      lZ*2X6^&e*o1VYxo1!O&E9tAvj0~DXTgtAu%6+bhm-T{UWLoxsW
      
      literal 0
      HcmV?d00001
      
      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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
      XcTshisv}gr^OULu{=;(i;J^O|a3Z=@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTUQfT7~O}96XGZuZ?)dytwPX*7OR%1EutV25ecGTTYE?j$;f0T&PBz4(yqSu
      zRbRkWRxfW|?T_l}J~Ii4TvpqcIdi`Ao&D|adj9(R=U)MQikAjD1TIyaF!x-(lsR9O
      zLeC0Ta?5HZH>p;prR9w)M|m=Ey)jwhcf~-Lz`jV`mQE%2VDY&s1p>RSTaFdn6zJ^h
      zpA+aBb;~M=PV|`Q#x8;0g5{{Gu(qhYS-EH{fmFdQNqbIumfkmnT|w3I1#*S|MJg|_
      zyP|>##}A}aBKD2GLW^QC@GPg2@81D)Vza0DB=+Ngfz$_%#waEZ;t<^<WKG~;U;kD+
      z2^?V*%D&VvM@@W;V+2w!LTURG7030|sPxJ4&~_Xb5;zgv_6?lcF*jx3&)qH-Hxp0d
      zBzh7!Ljcd02F~pWz~kIZabzpNSq*SOprc$(pg+E!)uDWyEqN>Tz|AhJm2A119e2Xp
      zcemab7%*`Wy#i)UE~{on63CL2@6{6++zFJYSF**K>CK>wwj*m%!EDJX>&{btXtMzS
      zdwK;DES4!^veNc9Qy2!8ohzy!Z{Qlmk*P>_SNc`Tlemf={mGlSjvI7Gmdl&67&k+{
      ze<6u4F=F5=p0|KTUE5}_SgzxnxP?(RMd;Mrvb7X-0Bs1Q8%43frcq!Ud#0vJ+6Usg
      zYbVIE9mj-$yTok;YSflK&E3PKfU)Fy+HHaJ+tprMDMz;=!22eq@IYWMLpDn0ffwpI
      zATZSTbjyYIZt&ES_BPjciGUALG%zD@qQ!6<MH91l#GZE4t7ZiWT=>9XGt_My8X^Oa
      zsl5IC*wX6;<^|5Q$V@Or6={!nm9VCq;Lhuks_Tpycq(wDr58_wTcKr_m6yOb0)q^V
      z>r~Qlo21z$={o0Uy3!n=X~zxH>?F(9^KLku!~&k_>G<8IDvGi5{c~Dl(L@QXvt6=Y
      zR}OzJ{Y&aTV8)0qV97*953NMt#)nBffu$`!7szY_*A~;+s^`Aad`ZWE&BANNU?VsJ
      z-6dPTc_Sc7Y@N32aUHRP<C;0ucC<~}ImX3n2BS@D!v@ciMK|<HYRuBF$MMZ$qVYaO
      z!wRRt{^T16bfH5(K-?SL4RIA*yEAJ@yyH&?lKdvQ0>f0!V>kcISc&T%?s~8ny$ygr
      zsi}2k<_~m>x0zM!n-qmi>hLN)`T=Gpb(}xnWA8dn&aWX|_zBlCsnbo_S<22+b}p0p
      zB$An_zW2yblFFnmMUtLWPD=*f(nw5hnC5{ok{hQV6C`+#v?g&F1)RctWZ0lXcz~Oj
      zrp7~lXE2W<p5amC%;A_Y-}}#qvxluUgv)g2C_cxPhFczWbX*44ag`jun2a15ejGWb
      z7rLMqvepZ!a(R!NEtV&v_(~+O$Y7Pou8b2<IEN(+u>P81O`s3Aafh~&`kiRl|B*S;
      z`MONdvBE&-FBo4%;r>Pbbgp9hcg(#ltmDc2Iu_<rU$5a?241d04XmO1Tg3b*-`V9x
      z#9}TEF<r*4&Jz#E5HMOH2Dxf38OD?LP>Z6{jYDv#%{j-U*YSc##~2|GK4pS;bT-0&
      E02pj&C;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      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
      Y5H(R$M7KTuDiBw7UR)nCtp^|d13j6ItN;K2
      
      literal 0
      HcmV?d00001
      
      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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
      QXwE4iXD~O!XSVbI0jqz5VgLXD
      
      literal 0
      HcmV?d00001
      
      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
      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
      Xqa0T`g7YzRTX6CRp+Blk=&k<(j-f{C
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      RqW&zbaWWJ{Tb^sD{s;M={e=Jk
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      S$va9fE}Jnf@I9sd;{O4d93wIS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~iZR7=8{3Y>2C3ib#Q~Xls)I#;WuSwFN~=<-;09(0;f{4q;*0jhkIZW;)ZE
      z-t`Z(qf>7>ZEZVVv@;TIo$1)=g){w8ojzxGi6Q2q7jVwL=Y5{{>p2Jh`S*`M0la~m
      z8rlR7mu)|{YTPn%Rax|1)7!|c$&H*_HF8t7e<?qHL2hV>3v>lemSLB3^MzGe^fYt`
      z?AZ<toD%{Ewwq1clkT!nl+|3wC?ITso|(XH-SAd&6J~juUS;Wy@lXovEXifVx4iR?
      zO9$Gf1!7gt6-b4!AeFr5ns%9xj#H*>dS?WVrKeldwzgmb6%l1w6oZXI3N%Q)%G
      zLMH_F>CmxL?OxW=iKN=~>)3&$!0s8-mUI4kLAsZXg2jweGfvU477W)^-;puyt(aAT
      z*Jl1lpIJt-EWKH$<Xb*Lz3EKrq?63!u#Q(T$mEHb6VSPgTV;n6Tv-?B-hwuEDS<R=
      z<7mS;lXj7Hmq?M$T%VxroUFLAXn3-u0*vU$;HW@*dOA4nWQ1@SNvh|BhT{T*FIMGy
      zrj-l*u5hd4Bu1GJ!9hGuE5G8n-kh<{mhB~Xt7-0``$fNCnZ?Q56~~sgr!sn5$2(gk
      zPjck)rf*p6)82FgM<~v*%(WfRa9YPf3?}g&#x=apG+GHx$Gc$bV@_dpySO4MHpp91
      z5*!S})Gx{lvL;Kyb3#ojt$d(k7j|p-P$2tar;MU!I(BY~rMgZ<y57ckU`b#`V3$RC
      z9j(fW;ToRfCNYgUrOx@La-$27SxDj|<TYFp*uVYqjTd?Es%IVBa~;c)u8zyNLcx@r
      zi>`Ugw0P&Jfs;`W>%~1k46_<*98}a94Oh243}G@FmUwl7BpTE=;hR=TvXDj0CGasT
      z+;+iFtAkH<e1;pGtWl{*n^}!CPIjx*hGB=Mh<Z#>6cj~KV4#(<wj2|n_QY@kWzN<<
      zeeAYUh^gZ|MiW@0O$N3_tSj3Qfi@+xWZv=JqCC%*G5h-KcvMvyALO`WXhS<y7e`9H
      z7JOw>>aF0~t=<u?Un)It-9eu&>>(z_ug{5#a~;S&!b{oyd(h(d5%1qbPj+|{z1fjX
      z^!>*3HVp9hentR?9Y>y=m&uqX(-rh!0sXj&S9qEY`RIFqUt|vAi(scRYYTQNw-|Ha
      z6^Sy*aaCUJ*%}W0%1s!uBQRbMsP)hxqUOtnBebY8Mz|_)EcJRb^hN_TR)=PoXB&nH
      zQJn%#@JkVNX0s2`Q^RmG&2j@xXPqWj&)|5JK|<jl<5)9(tpT5?<N1sdrxJKx{zLRO
      zgZ&0@dma2{3vdl@HG{us3Fd3oB643d_^Xy+K3WmjW8Y#-|IpAgw8tI{{RQoAuz3n?
      zmaXU={vD?TYB=+NUg1dl(82xJ)X6v8-Jz21QkmaUsrQ0t2SdiFPI6-cXBn@XdOL^7
      zU{bsqQ3ijLM`>z}(WaiE@C4IKsSA%V`xqCWVqqrx1dB^Uk8mw@y@pT1=^CjL_e1<i
      zEr-V5uC5wZl%amI8lLoRoz!4$VoF7M-lS}B#lGXU_<@(|d+fuH=*4}E;wQ}GXWYOq
      iDAKl!2SI5)VX9GS`{-k{biw~|`1g)Q2slBTD*pka+v8CH
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      SpXJctcB#6#NshWKiQ_+3Ns4a(
      
      literal 0
      HcmV?d00001
      
      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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
      Y2W4G}r$f&0|4x>k`olENGb}jyZ<ZmzmH+?%
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu+e*Vg6rAlXHO8v7TJQIVwnEZqMa80Ms~{E?Dh2UD(sZfOno61q{*|I4DEI+>
      zlz4V6iYS4-oSm67XY&5>@&>@fyn+D3blq(m7uJnsw7A{&9RJq1zO-A$(SD)4QnY+a
      zL5QJGA{v%kHx8>8-1Zq%i8w269d9utOMhh!_loNbirsX5?h+wzy3G*H+YQHc{0)X+
      zDqUd+6`D1!pod}bUx_Gs84{+xsITU-x@j&g=hk#nU(rn!8u~TFF~AVXcSHwMr5~$h
      z-*ephdb-jDlGhMMgrT?Oxcs1fRps8XRc&yFc&TYyjf&+t;@&BSQ>WYMii#jcMGsX-
      zjB8L3CC~o3(_)zYXXxMA(fpwrWk_k&xxeGuG;57&skF#KEjQbq&37GPBK94)E(X91
      z^$XH}3SdO|mM3aXdyv*HsPx_~|D!+wJ+IJC;<0D+Js@#Ug#d<VRcQyZ6qSyotb&Mf
      z40q_e^ezx;<{2ZIg(r;taAVRy9wBT{!%fK_`a)v@lf)AGQ)GwHH!Up-ONP7y;mjk(
      Y?x^r(B|>GOAZ0Xp4tHcIN{O2L1Y6U2CjbBd
      
      literal 0
      HcmV?d00001
      
      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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
      VuI0)HOccwxmdDUvp|ZJL`oFZzh(Z7W
      
      literal 0
      HcmV?d00001
      
      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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
      GFaHlKRk<es
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*ZBr9h7(Ev@1eWDRBvM-tY!x9vsnt?jlqw3EmKO!31>abb4J>YU<7Q()ZEZW#
      z5B<_kr(YbMPV3m2zKk=i(+W=QfS>xIKdSAyyCDe$CPVh_eL43$=Q+<4{{H8W6#xhE
      zaTsL+t+RHndtSexcV~@6&NaQo?u={CcK7R9<LubT=`a+5dVhnZbAEJY-bi?1R0!<a
      z;%IzKx06m<K(Y0-A<!^XJU;HZrajv$P;J_#XX=)jHIf2iN}ysUmr5C~K-tB9fpR;!
      z!1*}mkIJom0+Ei5K%Eo3=A@G}RFq@8hB`FzY)9ur6$Ex@2%}PtUeHhlRgPZNPz_C>
      zZpgHakz9JlaL?;AmQT}3=+=bpn({qAsd#f{R$%wg7O}3$#E2R@IydqoJIS6R<jLne
      z)9N19GrgS?D(SqUVGni-gtCU0%SeLl8fs80pz0pAn#p+v@2?Ax3x@?NZDYafU-U?v
      z;ZiVlU?E{-JkznWVeDsOi=xLZ%b3-zaZmS*!mcp71-iBfYsgHS-k6~$=8R<Fgo-X~
      zm!x0Qa0pS_VvR%G_6*n7ErF`FDUuF#T<i~`d_%)w91#d}CLWhLD|d2UC8%1R?Raf#
      zUbtx_<t4{t9_zz+TcD#D#R=Ed7vpx)SQyQDqp5x;XD71-a$%ehXe#awjMkqst)$^r
      z;v_G3QYor@OvQ2dUxOM>;|vX^XEKIO7dCgqH>NNT(OZdksCt`a*t6c8e||`w9~RiZ
      znJ+h3p@=g|E^U@n*oQf%VGOOr_MCvUiatqD;DUw;>F27HX<7Z2lenhheN2ThDNtJs
      zby)Z2G+e|b%9=K9DLh4vtGI&cFs`mE-|@w)XQVagm?5q%B~3V)MS*B(5J8dm#!G@&
      zoAR?)5lBht0y%hPg6W{mEA(_QsL_+jpbrElRXXT}Fy;mJ6`5bKv$;&haXlkBnlW5m
      zy0?(gO3+WcT)&sJWu<r9%xs(O*!$B?(oFePs=~xEwh0C!SOc}|F3m~}T@4v&y&5wc
      zFYP!i8upw}!g6eu(E8fV#~KDZ(4HdOlXCBf<BhLzE>M-t=ca}nZm778n_<~tDqJI*
      zvnYu=?&RErF=)yrQ?u4E4oF;OHyM`mF9d}jHY;{!MYbyc$wuWr*$?=v<qFG!ySMRe
      z3T6BNJEF^Ih{m2E5-op%rfB(}l~1tqF;~j)l3XV?aEfOKiF=wTXAnUg&HkE?fEMiH
      zo7^iIP)a^q^Y?W7??5Q}J0ibwQvh4RX<*og(fn~J4<pb98I~k@HczrX8e784lHlH`
      zLY75(4I~EoKZNrP`T_%-D4|wgpjMB4=<um@B1+U4PgU^Qg#-RggB(jnjilLh57p1m
      zHMxveSE<gyN1P8>*HUaLU6|EUhs!1G8w>0Y<MmDOPmre+t122RkF6}Brx=3jFC?g3
      zvV?k7fqE6*WFDoe?13AhMV7%=5PCJBUL&bDytRy@t1b7SJZ`>^x|aK>Zf=>5t$dFI
      z&(Jsd496!M`j>I4c?kmz@g=<5A_pTJNOA*9IJ=B-3AmSkJ69e+i!R~3pMdfn<p+%V
      z({er85>b**@m`Ni@J=}sYmO+>k<e3Ijwq4PbdM69<Sa)rdz&Ffl$HnoJ}wG!1x*ac
      zq{{QmjYYeqX)Oosti+?ZjsduIP6p?YWe#%eMK_Sb0#7V*_buFE4Sj_VaTg!qA>V$%
      zC-@DY;wjfx@R=`iUm#gQ<kh^$lo1J<T;^((36U8$=_$i6pF7-@;wZ#q%wmq;(xrXe
      zBloM%U`{q%TSj`7Z>2u}yd<$|;Z7Acqmqfu&@%zn|9x`3C`;gzFX)pmOW;a<BI`YX
      zJCcVRBQ;qdTT}bm$BG8KN~i@`JXw%K&C4MuyO+l=t?s5`odnf=*N0wT-DUEZKW}1%
      zAVKwA@)ZTzH}!{aEa{;sMSAE^@t&aizhT(lvax+fr#vjVvppY<kd3wE&JX;oUFD3-
      zS}RL@@j1khyyh=#i^=B_Zav3sHo{o3Wd)c0Nd13e@&8QlM<sb^&0khY^M1&FDEMzL
      Y|1)Dd7V<}!p~{vMge+)GX^=br0p9sCK>z>%
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+8KMsO07{%X*NEH|38604-@d`v;9UPr1X$Yh#SXv`jbMOEj%J`v^>-+P2@AZB>
      z0c^1lhzRS-2HB{alD#g2tNkE5XDhk4-nHFuYJ)4aKulPEQ%13QyfnJ>1aS?@aD_0*
      y@*QDr_1zbP*F7Q5@^e8*e}qGAG-35e-HgD5z->MRL_9J@f^ke>#tIWh9q9+sAS><w
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O;5r=6r4q15djhKTk+zdB*w-ww;D}IP!mYJcv{*`T~fA9*&6t39{d6RDC28E
      z2pSJBlgzx?eQ)09*ZT*68?-rc3~gU0_E@|Ldn(-|R%UKTvG(oWKxi+VaO4^4nH~tD
      zpGITp8jd1EbIslcp_XD4NQS%?6M~l2>96&niIw)dq$;fpL&I8#iBW<5Afj&PnW3cR
      z%s6vH?k%h1FqH3Ru8fQd^^{|m;bQ$@F9@VBf}s&cuDUq(7_R==r>`c;45V;hrMGf0
      zZ2x>ZW#HC})9a<9RE6g)_Fv4Cx15x&ZP4T>kRufeZW_SvtruB!IZhca*Ry9~J%(nO
      zL{S)<jd9AuFo|7xuhJ+h%Nty$UJ9IYp(@bvN^}&C64K*rqnzOmDx_9PEh2{+>ZCQ$
      e{KK`dpY<Q$aEZ+fk8r%~%@dwbozYu4oPPszQ-{I;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>y-ve06orq|G=WfBD3pPXtu3fgVF0P93xX+PpeVbWTB%WfD#t<aSWJ}|cmN&>
      zah+Bm0Sn9h@%?;!Y`=fJz5y7b<HBM%iL=sw;E&udL{uuNpZ$f(Vn2|n)OUhMb1}Pq
      zio`<8Jab_)>{WEa3Hll^IF~Y$ddyJk_Cf~xDxV1tHEcFehr`ecWF~IQbSl(6pC*E#
      z9pn*DLawCg*Ne8E%YtDL{KwXaq0<e%ZB4Y2Sv=~6#=wp-&?H}J5t~DQVGQ0RFI6ON
      zq_K7Q=gkLZ8;(Fa^mu?p72S)XOWhe|M!DW!V&kP6dlWswfK%86Y*E!%L6o<tGXhPD
      lMqo^&VV(Z*60M&K=R{sq3I{7{tw20>(IyT0720iK{}UJ`Wpn@l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7{c{sl6g@8q-H@gf0<<cnP`=DZn}AADiU?^-iA@4D7_9|iv-_GZY<4r7UB}}1
      z_wcLE$Y9k$ezK!~l;e4u(1te7IGugjy?fui=bm%k_V0gweFfkWq=tyVnWhsIp6K7|
      zg^n}=&+<15ZO>^IDho@}k)H0mo`#sfssG3;>K%D^rMjeHNZ@E#$kw@k-gX_SH*6`O
      zRTdsqZ&nrsQsv!*n(tXob53An-gP>@?)Y`x4rCm|0uyYOH@wZZ@8%Vne9O#l=$(zc
      zqqkV_Ky7hxaUqUF0^<WRJ5rhgkrtQt%ll!gLWNRAb~<`fE?7<3@rh#Sn&nvjb%AI)
      zQx}NMyC$)WCJ@C~5=SsDa6G*qzRDdfTaK&-t%mgOcPCDjT|>9)x@W29UNGiwSRH|L
      z10d~XoOlj&q#v|NS+8l}TXvzMx92kTVVuI0hSQ`jr1Q<IB+lS02WU!P;6gvxJB=sO
      z@aHmp_<JD@=LHV$RplT^T@s@>97l!%b~f~xOS2af$YDmq^g!2ywB9DSw{(N1*-Rpj
      zg1|7*ltO(CDmT}Us^@^r073?7G)&KasNn;F^Z!fKBtAllM0%1`YM7-Z){3gg$4PvG
      ztCT!wo4QX_T6(QmDk&)wx=&j+0$)<8(JozY=%pyhz%iv~Z_>Dx1)8Mmw1exGZ5M6V
      zc*+8c-x;#)TeP%>qQLZisG-<pt7Z8sQa3iFxwA!qTS#INw+P!%2T0&pdVp#w@pcj=
      ze9kG%(85HM&a4%ca^)l{YTThlu)Z!mI-+G7G>dMUE4pL4t>UJdI+iYG>Kayfws-X}
      z*|u!zcFiX-JGkPwPc|IaKdsJ)rQ6msX(n(FV+zQZiq5+NqQQ$JA9||~d5jVVS9hJO
      zDDlpgj)uoP3cG#7&qdYsYeBp1dVU`%>I9POA<7uoG<Krq2A&~rS?berxbHKSSJf~@
      z0;0SQaD5jV;=Dh|?_C55J}3L0M;N2S`EH0gN08!rluwr#7yQ+-sbep3{HJj9J6scd
      z0W2~7HcNrU!Zf^x6MW)V3nzOe{z8m@z-lg)*urE4uW_z2y^S;3pK)OuquEsY7i3@H
      z!gGwP&=xKVJjZZ$x*N`=Mta*WS7)}NMSqW1Ro+Z==G7Li#IOr0k6|{d5KNV`+{HL*
      zIEy+8Sj82rVIB_%`5~6^2w&lG2t3;b*8@(Nn8P(fSHAg_3`MwW4A(ImGWi*qiQopi
      z#F%q4<mf5y6&blM`gy?#FO{>oEi4JVz_JSST8^q^FXU9%-oywb;jSZ#W(aGnTe1gh
      z1e4)N^bGEBu&y`{2uU@bP#v~0@*D20rfM(o#UCngVhi<1A35DlPiX_20=KA>)7NQY
      zhkyxEv&s$vU*l@8lSh<F!^wf2auX-_2+{53u~&z^e0m}1BYSeE*Ca)mWe--SG!MgR
      zCh-mLlx=zT8M(o?itI-r**YU?=BeyU=&vEl3elf9`WE>#Q|?D5MWC$O1+z&lpV8yr
      Y^B=|!eS=T+z{DAAkQ6nz5$-kr1#4o$Q2+n{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TTc@~6#k}^Zrv{Tix#yaqO?V+2r5a9FJMchqA3Q2x1k-&lI^bU#e|>YzrYtT
      zlK5)kk1~GS))pzmhuxVobN0KObN1Ko?>_)6VnstlV5V*dxdZuG<~&smT+=_yeRS=5
      z?oDO0SddlUaSt^_1%{hBmgLpzy#rPCHN*s_dcUryy6O4up+M}JX`B9YfxdKRTOhjX
      z)Rc}sBn)VX3k;P_TWto7J>|ZYdzKOyEjv|dZA;e-<Mv_H-#0yh*>W$}d8K)QL|yqM
      z+w-MeCE#+p+||A1yQW>wXD$OORis^W8hIUKn9wl(kLlLO1}1TpR*2LP7*A(<;p0dO
      zL>jda<+_0zxJexKDUg;|s@smMR;5Q}6BjAl)o|<bmb_XkDqFddJ<*Xuf;z$igk|e7
      z$?Chx3oKt?`hR`};w;*xY$%p_<gcf|H?7>3^79(fJZ>^H&(@{4&vPAfNQAF>1NZTO
      zU6!@lIbW?w$!B(T<glpWA@93DtBz%HkW9z+3_QXTCnB&LPR;z#Y(F_DzFnq{ns&uI
      zF>Ad~*<-B|oE6An(6^kxt*U|<4%hIRkzNQ@;5Mk5Pe1>MK19Q*WORkm5?8^sKYIfG
      zD>o4seCu3+Crn+z0Cz?!34<77l*BMb+5i?a!`$iYPxOnU>@h|+L^(Tp?HE&EkT^wZ
      z=Y*Y^KVnV`J4Je6jo2>`LlFtAlcU6ed&y>(n|zZkObVZ2?f@t34ra-i#9iELGZ&Z>
      sN*_PP962%@P15YU>^CfQ*#>DCcu&JS)V|ws6Q`$TJm#IC&rsXbKUw(uQ~&?~
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{QEw7K5dIbpDAz*}sfrf8)>=8Ly<qz!wOSMt4Y9@=64R&SSn=v{M~=N}e~RzM
      zCm%GiHqoT|?2j_e9+)DM__DJzJM(=r^X<=HUylJ)VWtpcSnPVCxo7QL=78H_;D`gW
      zA9!8!spWP2USpqoA_awEF3Jgo<C;-$yS>M4!JrNNFtGXKu-E1R1FJKrecyNg1eA^?
      zEQZ)FJtQ|A&k>sp#d0%(b1h;TBGu~k-MZ0YQ11C1t|E?88dPM7c}lX;N`v9Fh6IxG
      zc1A-A$rR>jpcCYWuFJcYyA^c99?j8sWAnand~XKl7^*=uq0Z%q16^3JxZdXCHRqmQ
      z)#*)NyQ#Mi1Rv=B3tdj3qJW}o>cT`*J0ftrZp~<^m`5pvw1!K#%#g5M-{TC0vhnY{
      zvh4*8Ge|RJn~pbH;WMl4Qc1q)+m_q10!R9zpdwy61BRvM|23=8wuj0{tdo_DmQ9ph
      zE_VKsE?zcBqYTBLjOmvm|9&K)QZ}TB>agm8Biqc4eUnwmf(05YPX8;8ycCCSc_~d~
      zX;!idWvG~?QzP#^WhTh3S5}UYsmvcDS1BDLUsR6YVwTRF{tlUMC_K-fJ;M3#m7?+m
      z7k_{f^-ok6!y=u_5%MiUsuA`Evbc>BHmRFCxI*?C?qUsFbSI`EAC_>HJn1jfI~%<u
      z2~oym&vK4+sZi8&8OEq*ldQ~7R6Zm3fiA-)l2Nb`k!Zt&5eY+OYH@zD_|eqj6<jAc
      Txvg<#{o@4l_SE7VQP%2jN+8D?
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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{-fn*5GL3$utfwnU;Fat3w&{vE=7qT;OfLIKi
      JK$3}p3jjYCMP>j1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETXWM!7(MGaD9B3FrX(a3f+>ai5-^vvTue);aUiV-Bo0Xv1_s4m98p>FNOFe$
      z6!-&uY&+AENttQkweS5qZI2Y&vWqnn#xt^3yL<LrzHk5f=l4GVoW}zN34sfByH$8<
      zY#RknR$H#=|4?YU&bC>TZlUB@maO`wW0$1sSA55n3yr3wASrOXe@~SQ3f)zerYSJ&
      z1sen=^>As+H?1DTqQHS`rfvFP3gk0;OS%mD(e4?p(U87$y<&D%KrKJ3%4WdIQ;-rk
      z*Ux0Z-Zm_=cEhSWRI}CS?(S|ANS2(MR5672G$<HR@cvscdlcR_pbO`XU|b+)JAT?o
      z4{$14n07Xw(nb|34h82;2u!pUTZUaPRD9R8>(r)V42LyLVOn6cF8v5qU@DUx?BhWQ
      ze57F*2L#4+)0T^^#-?;vj7^K?kLym=uvQJ%494w`Nq@`q1m^U2&pwE)8RWtJ`%aB|
      zrClerThzotF`t-K!<U4(5|1H+(sSHmjBEv`1Wxrw-(NP}ycK*Za40H5n)JP_>88g>
      zP9qyck`oxpWLHy|#aRVs`j$s2Xei*Ez=+9OG{}v$-IvNj`+G5k3z$=Ik^V==c4jqv
      zhR<1pwtVLEpbkP<3U|XwDJr-uFcTxL?OqC3aZLdOiEYKUg&Mv9yKJ~&_|+|eld+z+
      zk&D@lz?iQz+`!i~#;Dc)SFvrH*^NNxO$}wt3n*KLw-{=ol^e9lYo9N0BDTLfDYL9x
      z>9s66(tBS-QBh~Y4E*Zpf{vq{6HZX;p<}&9vX7$5Th>`|mj|m~)+-$<u?4qGZi6ye
      z)>Bx)s)GA5p+(?96l?6)I1;p8AU)8n2!wLgiqmqda^4Jj{Ag66L3efU>9YY@Ui6HR
      z7e4(7E(yL3@twCG5;(|Fk|Pxw-=1(L!T*nQ`5lbr-(c(oMqfc)AOBznAO4xkzsA^0
      zO#X%=zi?FoNBNv2CUBF_GBM^kzJ(LGjbq_lh=v&)=ZLsSbB<Z@?PSmCpM<CX#4iC>
      z`4vvD?;vw0_bZO<A}_G`BQj@pabDnRayt12m!4xPKb?GyOS`y|z;mdx)5({(zQ#o*
      zffxV&J^M3(_6W{UDsYc-moR|}iLKxw?z4H8P{LYBbZ+n9F3~bY+$PNtrnP`?h%`<c
      zzlBbNj`4Q~i=l0Ii5r>tt}>Q7GM08x*`JJur1Xd~9+QMY8Jm>xh%#!iGQQh~jP=m0
      GjsF0nQy;Sc
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTj$L6#mZMx|Hs&AS$q;;4RA~Ha-|1x*E+IpH@Snf$&(m1B@BAWZIJOuTT?7
      zB=HCMql{;!WXsl=_|WNG&Uc&B{`&pnCxB;o;-Et49gZ{qb9fs1iHI^S(=-1>$ER{6
      zwEtEdgqcdWV<n?A2Q|XNbY*@*XoX5`3w<n;M8;#n@~~7lISUBQex&4BrmqOq-ue!q
      zHi$>U!7QOW4SRE))rE_ehc=poM&A<5fN;Y@9SuTfD97SMcDyh2r*K~h!u&9fLbVfW
      zY1VerMHMX;Opjzj*ckqAc6Qx96loEW(XV@@kS4{)IMa~`)=NhPa1bjcqLgnbaIi#J
      znoe94CN37yGQ(XDE4as(6^=%Pm9lIB3Cv}>5!*<tjlcVF%_5<G!d>AY-G7=*IJcw4
      zffmUTGw0#nNqf0d-^Npu0&CokDt}tsV$&0z)p+LcLzv-}j|z{#>?Pd23wYnq`NGQz
      z=6H1N;R}90$GqJ&MBMEOn0N-%H!g6qfHmx94)O8=EZ`Ow5^m!Tk4AZy$&ItQODwYT
      z^82l?=zK?a>zp@p{kAO#Sg(%`URn>UIp~Uz;kb`grff3l8Xho`@NnXA(~7ci+1<dB
      P<?i?wx^nl(N<aPs*rv?v
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{-)|B@5dOBsLQfP$i@)m{eSn5SQ5$10Cgg~1<5@{jtdGmxa@~6Dk-deaf0j=*
      zn&`WKlyUAvYhzMhzS;R^c6R35`TpbcR{$;C%VU9IHPqAQp_qwgBK@gR_NX~A@k|BM
      zG`I9Lj~qkgbi6l@Gb}w*TG{6ei`CkIA?L<{EMS@Zt=+c;oM-q(2mZStpS2nrT#YA@
      z97}DL4tamOv)-!nSKZAz@Af-&zL&y&V{_vvccrmvq<mpz!i5gFyXPf!-g~*T&;64a
      zp9p)vXChL8u(6>GH;y9dTNUdpk0(S+;=5`zQgVG;M$uSk{y`pb5gM5_lRc0!6QK+b
      zrIseG=3o&Qia3Xh4ArWa2@we$Hv864|LyL-RBe#QB?f-Bun$@eN+_qLuQ1%NdS|D%
      zYXb)>xRytS{_OOBbbMbXi5qKc(!os;*KvcP7{ooJW-5}Q3>Y5IyZ`geC&5mpRlD}r
      zEU$-$q+pw&<S8w8r{keCZ^ST?3}r9&MKlmbrT(1E*#ni((El5Q!Rg0S<I5M+7ej$o
      ztdUMb?e1vO+>Jz%$b{CDmWb9AWEp9+M3^VfqcbC0St}PxW#<^hFDSiVJI3WtxccrR
      rMHX<Au#6nxL&8T`#uKct7H$z!{B;|*aVN`N&G0TbS%+dJvUK|=7-rj)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Q=zWSn3RzIfvR|hE3%@hcasU7T
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZva+iuf95QhIPY3!b8NmC%<&{7UcZftR#t2Q{uf+kWdECCnM#w^yB?Z$F;Bl2oo
      z@Blm%Vw_aOBwX0u`Ss8E+nM?G`^QfJukp&k7Q<Ppt$)pD+@FfX=F-glsZ9MalBwp#
      z=E6aR;b`GdT&MnEd@T~=pvrK(QoCxR1s^NHupbA*uoniy(YxRyL+$;_6`5S>w8L=F
      zo#?6I+QeL0;bM=WK_Fg|&oeXeh``J2SjoiuCgu#gQTVpMEa>7cLv!7m%NaLfX|6|u
      z55sOS8uUiPi~gIzRX>O#7x##FBTc6a70qu5yWVR5k92P;jLl+^%dZ4dYb`z2NabJg
      ztkaH(F8H2^%t*SDgNF>~s|$xpiIl60JheAMo4-beokiWE%M4YUeIa~8X<fEs2TvGI
      zH)=$NETsZY>+@w87XPnMyQs>)7g&yoT3wypvY*_tm!{Zhe`459irE!Sp4dDQJy{I#
      zaJ2wlfkM+}xI@o2y&G`g(s_sWXbZa(@0a2OiVsWi5nS4!8jewHQXMChd7m;X^nE}|
      iV?$};QOWa|JWV`ZQ%-TVraZ&>n(~}HAnnD1^W`69iLbi=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXP%}T>S6ot=iw9(eu7DVs?gl6O5+EsrD1T2MCbkT*3<7G&R6G&zRU(JON;6sTw
      zS-6O+%Y~0~zVrR_`32w>(-=L%wRJ%q^t)Cyn^5KcL)E!e*)F$E`%v++d}R~kh%jlf
      zLOZKAF9$ZBFxbwYp3}{CJ%1ojMi?ziS9|UJqb>qRQbdHIWuKPSoA%j?5X}++$Lx$G
      z|J4vKXZPKLyJWu*R0O){ev$mA#b;NB%5a(&Ot|QbxM|}1;)&J^S2#vrzE~`KI6)*E
      UPccBVb%?X}j&R;=z_?{5zfGD=c>n+a
      
      literal 0
      HcmV?d00001
      
      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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
      Wf-d}81FE|Ms>=r@@IKE6F#3OUpk2HG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YfsZq7=F&i+~_K@aZ$ViDsDxncg2B<Lu9UiI0KOw^{~}Z)3vdu)%Z({{sF&w
      zNx(?rR}+7f@jYGLP$Bx|TzcNi^FHtM_WO@7UjdxOQW7zSk-8J;&-e?j3$q${mj6l@
      zR$Z@Hb%*<bXU_7f?|QG2=wRp$?QHJU^~JSkX4Pj%IJ{vBhJ8l(7WkH}S4_XauxHY8
      zEdLrqJeOZ)=qS21Q$ZYQ6-lI|hvk?HL1WGI?(;R<WXKwBmD|hQv*bPc*x|2R6hCMD
      zA5Kb~uA6?z5k7aS6!cQAi7Z52@jc6_7xKFVE48XFDCj|761~3_-E>#ckNs2-#cDA0
      z=JJ0hklq6-4obVU?;7q)(<^derf`_}s0l6&j;c6@K}ujg54bH#b;tEgX~odD6X?|x
      zhC^>5y-%n(i4mf?>HUXKvpt3UY7)6!dt4JjpQ%(@MJqUkbPA(Xn<w~~%rd58Tw+v+
      zPR|!BmcOpx49+ESmSJq?mXNQ0uQJ^V8!1RdH!_4@2rgUQmQvIdD#bHJV3VkZ|J@&k
      z6t#JwDZb3F9<=1w35KgG64;Z(Btxbx&N(jDNuUY}NXzBAiW`#0IIq=YX*X3|#ufQ8
      zqv9532^PIf+cv{M)Rizx(Y0-w0LyiVWd(D%lSGNS(9YDh5Gu+rNb-TxaBJ4nP~QZC
      zVQ_m$IX97*T7@vg)=B<7+r}%ZfRwIO+`y}vvzDBmzCQ^cmryW7OvGv4$y(Aur#NDA
      z0_jU9-Okg_XisRHP(IKh29;KYb`S|2n8aQ>sZAqvVISQFWG|xtugOx{Ue~@M!QN{d
      z$d+k2P-cdfJ+y%%Z=q`0p$!~=gRU){da#MS@eUa+OID}fAf<hVZj8RC5Y5yYB?o3H
      z^=-miLK=4{T^U&zIDvWSSilu5VhT$kwEkv#s^kLsWif_}xJ2M4WFsSxPsv7Bnfr)|
      zZy4G_fnZFPLtNKZ2*LCQigLgG2@_<~MsqOa>>;g>sQAa|!xJ0<CnVJtF<taWm?u<{
      K<waU!xcd{s!bVyE
      
      literal 0
      HcmV?d00001
      
      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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
      Nyv_WW$*#ap{sY)-&FTOE
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cTXR!Y6#jN{E+GvNE(L-OC{k$&5Fm=!a<PFHj+UYglwmSMISr?$r{q#kPH3YQ
      zc|dTyJk<M$3i_ZgUeE{X$VJ{99LFbTc<{+5{sE8bw@*rlP~MnK&R%=%z1Cjq`@X$@
      z`{(Ct05;)(j)1@hyI4t%nkUR;*~(R1$EzmGj-5PKE+=<qG8xA%nqI}V`pxlOrDIl3
      zhawR5_vg)`o!mb(YUMl~nn3I9nT&c4KY@U@%_%zG4uN1>`+$HV-C+dL6oHPA!2DjP
      zX!TVJLza8M9Lie)3wujBGe2Ouj-1ap6>r2T3vBG2{n!UJ&?(SlTV7AeEtsCM+pogl
      zp;j@+I_k9wENSb#x6RJ>Y+6UNz|w4OjVVTwX~#B-o@HBZr;eoptL}yw`MhPD`7YP4
      z6s)4xJ(07<Jf~C)Ato?~IM=`pV+kIS-M0udHy)euT&HMvwh!o7ArSWyJEdg0>RDZ`
      zYgYGHys?VMU6xr0BaWsycnpv0SS7Ihepvb~+bMf)HG<V>WfS|l_87Yc`@0SelIg*W
      zv8S)=z`_1*fj~Abv#p7s4ebKzIAuW^ls2P%AdCdo>sTkS*e~ZE2qM^kBq8=n^&({;
      zfs+|G$&8x?^tNo;@RP-5vZn+V-36_Vk|h4FyQVbKCtQ*<JN{gxB!UE%hYpz~PFB`-
      zJ_t4D(}pU;!xocjd8=r9BTOO%L9yQ}h-|w3{(?f-MTiQf?c_orc=`#;EtBIg_Q24w
      z_kY(VQ!RT|A%f@dJOyA%4s)fks=(St+Gkod?mw&sS_1o|TKZUWo57-Zi^OsM9sctI
      z;Y_LG=Byq^-ksQNw|Ikul~N&A{HuHp6pp-o{LbMl$x(1r*G?n+1C0P8{A#{4g}JmN
      zwGEhu`JAyyEZ|oLuj43#1Ijn@+Yq_6Au>>pT!=-rNO6;8=#06QxQ@jgN=ylE-WOAp
      z&3#{E-l5A_a(LmgX)OQcGUA7)u~KgM5swB_m+*vdDRoP&TUyOhxM$rZtnE-^>a{Ie
      zOlj7l%O?FmTG7b``1j<US*USVUx=x}X6+I-u74<5Vk{_i(T6F@_Me=AX%x%Z{t*H_
      zh$bB6$`BUg7*=2yYcRq`+d(Hr(T(HSj{**&ge=Cm^Cfy+OrVT2@Gyl6&S4y1(DN0l
      zxQLf=4X@yLOyVY9#osvTQ!$LNgnNbxX~nRGRW(rwPh%^qT7ergR+L(KhQ6Tht63Ve
      zbfB5Et-*CxwvAR6Z(}=Jsj8zmiyheM%jQ{h&5-;jS0u@|6Ty^E-vz8rDAH6?7Z6LR
      z(o|{AOK8&6Qs*((CqFI8Pv|M-j$^lUgtjMIP6tFPx@@9mNXnwoiBk=;P~+^>j`)>O
      zhmvTazT!WjrzL)L`(-2!Q%=+9?NA?XI!(RG+`*Wd;Q?CaB0H~LiIZ4K`!unBozMRn
      z-o~@MI&TpFH;La{d_CTQK_>h0F4ZtaG~XlRQz+tnvN}aZKfr7FkP#md@sIiYgnXaF
      zcO1XRr?|rLDn7%n9B<%r{DJf2{sR8uu3Pxh=YMaFi8}wcsj61;WZ+x8K;{BGWfCva
      c3i7ORpI3z^9q~1xGS7Tp6Y^o`_dCn{2R|g>!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~`*Raj6#j0L&8BI}qZH`!Xan*{XiF%9KmsUfsYd(2rVm0<+@wpoCEe7`2HO7Q
      z=!iPb=s4<({{hbEsQ73*R4u<b;~(Yt-QAFe(oTO!?!9O4Ip;gy`R={{{`cf>06kbx
      z(I5~nSe5vUeqWE5jeNy6orQSWEX1eE<#=BvlQ9dH?o@2!=J_+1dP`GAUWH#^m+Mf}
      ztwMY_H)G@-6#;?cn}<r*g17+$0+&t8bgl~cqOoxSzch#7LsJ+kf&x1SOv@Om%;pSx
      zRL>O+ftG<%UN4U8wkg+Dqu-e}%K|+Eo2T8ff}}uG!EpLZ_N?xt`&<}lW;Lulfz-eX
      z?28U;tTP##OsUu_uz%9~#t_r-lvzkyj!`h|q>B9l?JpvlGVFNY^^tMCSYfUEpvhVf
      z$Q<cSl8mc3B(TTLUUAG~{F-g+3j=1^3E?2xrEdp`i>71a(r_e<qj-sh=u=YydpCo9
      zOT}@4!)`>g6i+QUh8uIZ;>=Z?jAI-6YzW8D6haiIRKx^2wya`;GBNBhI?*MdJdi7a
      zOVzZDULQ2MNqg$aNXF7K@98k&IK$33r5ZL_q09GKfs-!snncsqeZ6Q--Oz1))*zPa
      z^Lb;=F-um6!e$LUI3LC<xFFCdwbrXw%7oZe&&=qwU3wtpl#JDNVBM<X(z6z@r1Wqt
      z1!MArc*jCY^979vG}siTpJk2+M7ATq+nHhQlq}`vYJ_d{0zcn=YIg_2_SJ6;*haZh
      zbeMHA#aKDL#N-{G_g1ZD95G+Z@qB&q+k!xqmF+3#{++xSHlCfyR6VcWHIWQrNZ?S~
      zqUItwYOov`9LtPGhK5HYIU{0KibdJG8&cqJZ%{HdYFdS4jAw&fZ7t3bLnlKaj9^TL
      z;RT~aiG>Gc1UJLT;ucAw+<8)tMq}GGCy3hu+Js%Q3K6p2&Hi+|4T{_~jp9@Y@8Ufb
      zcQ!rqZtMCCdyFSI3>`VDB|mNC@1@JVC9CY%mAqpR#`)-WDC#s;qag^oHhaiM*3sMz
      zqaZWwu4Y=lo8+})hB1SC0zqDYRh_kxgcl^NVpgElHE+1#f+*F}X1ugy*pwZmZfxFY
      zUbGEvQdE?skF60nvUR;)_qf}~11=EClqz=K=r`pnaA4C1>9j<NBcKa^3ZFJVM?NI{
      zZ{#Y@QE*gFEhF@plLmzOA8?HZnmG@98?XaAx#IJN-Tar%T^yxzgYu*Nuk$R{c{bEM
      zTd>FT6gLT_i9Yk4PtiKKihWt7%XfAeZA0GNFXsvWDh_6qWgJc@n$o?5$b_b7emTlr
      zyUu9*)|LpY;#hVWClWy|s0CJVazYC(p*x{If|h7pMGrr|oCs+lt#JwGCbZC+rv5@4
      zgSd@5xLC#A&#HhAi0ebnK0-S_=3W1g1bu=F_!L+08D8bshtKKx1;+3ty}zPxzouxu
      zfsJob!FO)mi!KxM)w)?F5=b(mf-){+FEj3@46ooSo6?S3jC+-BiQ)!c!!_>e!#SjA
      z3lO0Xy<Dq|{cJYKm*qP8*+LzycpY!B7c*otjW-cumbWlaWqE*6RaUjw`45^U5iNtu
      z7+zb&NVansqY1wxb3&5aGP#0xyj4I8wB%P{Xn`e6KSgnH-E7sFha|hoGj{2uDK5K#
      zHRUf9v%aoO*593xJhx#K6E&Vw)DQ58$i62(Kk(~M=)li7fyd~^udMtxGV?oY{)3ee
      z9#(iOJwXnutnyFHV$J1v&ehLijpIek(MQnt0N!Ue8o0B$IvXW-W!ikM&6~9`qC-~w
      f%zn{jTVeiFxbO0wtum`{m&dF;5f6yG0rUR@Y}0=O
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      KDkFLD+J6Bu;qj>e
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Cxyly+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~ixn6n<U^SqN*3*i`6;)%rz}LZmIVC21?Pw4?<JO$$;~T*5XiO*V9QgGFuq
      zXszF07wU{&c;SVkcC?+5LhX#D<ApPh<9O|bKgIERH%p))bb7&N-}gQ5Ip=wvbI$U|
      zf4}?+pcS7gs1S&z&3trHo7SSXp2}N>GZVFqbkwr7=<#Gn|Iq`<*1^`%wxp3ZH79TB
      z3VZ^OmcP`g*?Q4Xpla$&%5D{i^prQ3F}iw_9iwiPQ5hyC;Ex-o;p`KrYzhqu_zvX8
      z^=i}#DE5Tb+`8+j00iz+p<s<bu&Kw*J)@cFXwtC^GaZw+*7g{t-j~mg>DCEtETaq5
      z_vBJqW>B*Xx%M`F&V*qLwB9AbvLwU;Scmlrf&yDtVw=$HiD)+;hqRQFvu0F0hz5b$
      zwC*HK+tJJv^NE$qyi6XhvqZ0M+ge&bXry)9VRV5Fl7Wo^;ih}MBx&(y$NRLb%f<@Y
      zs<B024K-<YWow>pZD|Xj5|7A0TLt1}629lqwRj9qD0p1p@m2V`6QYVI(M0i0H`{eh
      zp_MWR5XLqI5rNQ3my0D_QeIMtW`X@>poGd`S;b4NhWtlWRKYJ$ksTL!vdraj!U^mw
      zC)Z+}^0gKkl<{_|cnYoZZI_Ctv0I>KDnFJnQb+X}fyM$q#TM>gJaThwR}n*8ATVVa
      z)0(5ZS2mPhDW1ioTKiP&$1`l=R3>M#V(!%7*x00=l7$!sJC$vuIkG4Z%39e@V_SFf
      zQ-^Zapl%tbjg;mXIa6Sh$9tJHWpxI+&ZYDzX=*D-u(g(IG?B^ZX)V)XrSn<cbc%)w
      zj<Tfg9AAd%=+<d1rQ7ZVTVx`DZuH9hss+Ruj)=t^<;3FL5ZJsTy(LOQg9?rdJaN}h
      zMRS4s)4Hi!<XU?72IonEEh``;9U2w!)M5ZbDxSqK>EOKR&5h?Xd5)-t#TLkF&P24+
      zNGFIgty`2}1kWpYj-<Q3OU_lifKk@UnBny3X4;u>=W0SKtf?47ibG-Cohp>EDKye4
      zCDm1&1_|-&W{T67qqk|KGvOYNz>pkH@~|l}(is{IAOllDmh`ROhAeCqIZQDIYn_$Q
      zeHW?=by<QV=1qXoZ5iHDVZ&jmCbl0-_6uzEoR`{41jLffjdvOjITft2imqNh<h~$;
      z_2pypkmhTrWiihb1ugmdcr6h+6~GDfDmYh*BN&qTy{Y0NE|IZ<1A)UU&@UEgtb78i
      zg1?M+6ud1^=W3sKj7+q{va}gn#k+V<DtI=pWthBFkaC@({8T`G4wov?%bX~aJnrhH
      zOo3!BZ>97@hWvDHC_9&0qys#{uCL_36C_d2L%zuo#U|skhO0L23;rtM`oJ92YkaN1
      zT0R5(1&;Gd5_No23ud?<^;}68YdjYnw3N0r;mAB5m_uW!ljj-j1=q>?f}!U`=CTQ!
      z=|;NS=(!tUzS3PVT>nsH4iASTH}I&yJVLW*S#rI`g*C>D<NVg^%iITx?t^k9(`^N<
      zwtMa`aV6cy!;zn{!*xyEa?v)6Hu<|}7JIzIy#fn(Y!*A@y5%}L77)H8iw!QNlemv%
      z6hxL_Of<8TVwhT%QM{N@9G&D(0_O1cGTK2TQi7VB5X0d)9JtCwK?J{h;4BlM#&hLE
      z7Y@<tFl~Lb>UPyU>46JIZsW+8sJ)5q;W_l&3P*@-iMx7U0bV96uTbmr<nO|=Y?t%b
      zhuw7U!!h*VHP}E&usx;0E;8692D{8)Z?76G?gmSenk8f>Tx4@hLRRnLFa=t`zzy(&
      zbRDPS8|#!8>#8$*x!=M+D*7TnWY;m?cM~JSzUDbhwEN_xM&CTnv{yA&ZJNi~C5j6Q
      ze#VqOM+3g#bp47=@ikNU#!YiyA*@Gx9Y5`POf$^}MA65$3f|a^mvD|Mwo%&|^6KMl
      z$?eN*IUimn!zFOU5cg&Koo8lkze}M`P^b&HA`5t}SMDv~$PK*iLfp5x0CAUZ+pj_2
      z*Qlzz;zHXdp;bxa#;SR|(eD2i{-Me%js75!o^4kOOP(+B67-Rn_UcBZv3eeFU13@s
      z=%KjXZ1fTKXg7Cc^LM(?zaxn6x&DEg{m2i}Pb}@L*okY{g<0Ob#hbTT7{BrMpS=AS
      zM)5Z^{6mWVbv;a>R)Q>+|9QNR4@llR82FHsRnY6OOK2s1_q&Ap=sE6@*F#bzp?*e)
      dcyA-zlXNSLw8?wRbHaSYJvr4rX2c47@;~Do7pMRL
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~ixX7=BK&`5>e;1wkla18p@Sq>-jAZ7I}*0$rt4lM2HyW85r<Wii=}`_Yn4
      z)sD7~S}*F?cxmsv@uGTB9P3oC{ZZ<BHX+1P^&;my=j{9SJnwt*$DhAE0WbkM1Ruks
      zX1JLx<+_rwx$0WFQ_tACma%LlQz+(Me{Hrnu{=>aUDP#0aa@ZRlpC|=I#)xG7-F7d
      zMKQF@)$$fsoe+Wy$DbWiZpH8dFa$5?hVINT_!G%x21#5;;74Z^A%qzYF6stfa;s%-
      zT~o>x&d|MRs!C;9v2<~6UP{iUZZn))e0JLZWirLksc~oCw5p0DU-HV4DLXe*DyUU7
      zLtkR?X}(j*wR{M@3_h_x&oH`YAy+C~Qz|)2bF18N=C)N{b9B=PV}PN*6*nWYsPU?9
      zQ+jnXf<6oi0frcQ+Y=TYOE<Ks<Z=ivFbsQnbTgB$J3MDuO8u(q)Le(GxKfQ^7@Zv$
      z!O;*#84mAProc7bcC307$3*!fS8@yTY^ji2DN)x;t+tnn^1@Q?+M9(r5%R?-UP6K)
      zaD(QA+94(6<g)lMCO)JXLW#A!+`LOiaRM3A)-hW(3KvhY35K3MrCQQ3blAItCc3?6
      z(ikslRj}-CY;cPrl@*iPexzaaZ%PP{3O6)olYxn@lGaambuFLVpDBzB3`bWi)6n9k
      z6?YBWt<_A+;p_1YZ&Kpdxn)y3BbdP}Azb{&Ybe%jhgYM>Ay1qX(I3^U)fvXxTiPTg
      z@6RqoB%O7GT1tiM^s5jPi`#C6E+R$KwNyT@i$^i~pYQa9(2yp9#+rTsdifIV^uB2A
      zpi_o+Mtfjv2az8M_z<Nv=v|(~0m9LS0lILIPQ(+3Xcf-mv<qjS^n+O2JSW>ceJ#&!
      z^fWx#D3u|K`7rf6p1blrx>g>eZ?(IB2Zw)qjN#QC99c^Lgt$NZ2*(AGc0phl1U(?p
      z_wgrZq;#(o>%S$83B+z4!e8$<58<}M?)A98mmHJnM;L$TF$j<#FE<(Fi6O8;H><>Q
      zjcR@igHY(Dl#zytGg!w(Xt;zeT*f<i0~NBU5;EYz#Cv$xV?RSG62m5YfleYz*#gvx
      zQ|P5^J!IWLgB0&HMfOv~^O(e0uTAF&drGqr@)CO8OZl^&EDvxjB?%~HA7CIA5HLWn
      zD-{$lnEeh1_9RV(veNFwl+ZXlof^91W7$~$b^{1yVzKSpZKrVi>GsU<ui^7jYG^?6
      z5C4qm0qG%?(`fmt==O+q;v@R^x<k`;mqz1bqVp-H@fjBIIb_^N0big*``h@E<hoCC
      zeT8k>Z{llwfN$^#zV(DV)u7rE?jB}IE=Do(B>Gv(dXq+Qj*y@HqL`<zVyYLsiZ1^R
      DB!!Pt
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g`u#ZPT=k(Zr8d-CB!{DXw`as1d<b3&HdQHw{VznQVu3%4Sn`XNyJg
      z7x|!11qJm@@JESvHX+8g)Q7ouX1M3vbI;7L-(S7~sA9=Lg5jR)N7f!c;8rM{D3I#V
      z3Z-iWA-A5}kGG$#+0}OS^{OphpQ|VkFIMl~U+eD*$3Ti9A0s{PyVh2BPdLgzhGFS+
      z&c=u&CSb@sl)hAt7?R87HbY8ZXOYBI4hAL|W}DI%n^CVTf)?+3f}zmtJKSsYK<e}G
      zGNs<gkl{h|^tS&WrN%Jj3bo!3dR#T0#CjUkUic0v8mVR|EjN!3Tq}3#28s-cPMu+r
      zyc_tWwVtS@kpmG%o+5Ix@Hly=UOtI2Fwb!7-xq552i%jp+dSYsp+xZXtt0l8?E4eA
      z#xURT_akL?50wbbjUBsXZf>>At}y+`^Rk$Osr_AGD2|U~t3dj0O+Q3hY66C=-H!rC
      ztV?bE;@RKfj#h{Tka@Jy^utn==@}_b(#fLCD5q~9A^Vv&3FIhd;>#UO(>^ySzzk;T
      zM4t=iC~EKuWerZGKk7J!d^LtljF1JKA0iu+lY}uUKX74V<<khBB^tmZrM;NK9Fz?y
      z2!IkU5;#qDmr$h0a2Z#Iv`wnk_<ZFjroUqDW#Q@(u79um<)4Z9-jNIMiSt9;qcp&b
      QdgO6~nDuCjv96nc0C6qGT>t<8
      
      literal 0
      HcmV?d00001
      
      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
      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
      L5O|%L*J0-Wct6ko
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-**#56#gdJWYaX1v^BM%jYtJenub_{C@rlfr9YNaiY8dZdJLO&*lyYE_H1_B
      z2C-D+!E^W{<jof!&<E-f5BlsMrQX@3X{6xE*_m(d%$<9`@7~E@fB*Izz$C872rx|Q
      zmY3g9x72)tYo24c&3wbq^G-v}mn+4OE0v0&TdM0hysU1|*<W!@hQtu}T};)|^Vez{
      zTytfF8P2@?GNp5ee*r`Il3^L{EJHAzS!IxfIf@{9V~`PHIKFIHe8sERxN}{tnVex@
      z+16BZRdo!pZW|?c-DofrmR}zBe>hAt^y=JQu${W<Dwq946pG6&jZ*2P%P^E)ev#>P
      zX00S6!4MGh>kMOuClu4<x@s03-K%rUo!`;;rfb+%1WAS-61F8}6hjyhTt^ua-4QCT
      zV_5ohW>v-;3@QI&!_JqQE-yNc+Pvnuo1ROjxLS`Qh29>V!do)N7)~4&q0Duo;X2J2
      zPK$g;t`--SxoWw1qe`W%Qf;dhWpSl={nPTixa{p1-a(onv`uY5noDUVvnn>m#YUDv
      zPOp`ewk;RKS>#DZ*Y0E|TzqjR83qqU>8K#ecxZ0*4OJps^KRef4tdv9o9cP8b?8;R
      zg@?&4-Cbv3qG;5UFBWaBlsOtH0&)%2Ro&1cm?1h_+-Xp8qWBO+86W+pt1Hch%j+?e
      zFh`YBh4`Ai*<={+u2-9bax|FGiSoNcpFy8VNjtpZnJz=LVtbCp7YxzZqpx^nXN6Ey
      zTxw1FLiA!Kn(1}W*h8y4&5Y*I_&%aP69^ziW7s#I!!g3K)&cb4IIV~s`e_u-6Eq9w
      zfb^3XyF4#;c?LS30~l<1vN1|SB=aEqCtkbyBl>PU!_duv;eDL=;~7#n_i=J1_Y2+(
      z7M|ja0MY>n9e}V8B-)>NenHA5r1<bXahO2-UO)cXZ7(8Siv#mSFhP!)+*3?E@fn0j
      zkayb*O2iQOj4YoM%P%PBFEN5!)ch)PsNn)Msx-%C=vcx!K7m0eHgJc29!z|Ly3c-=
      zR3wIN_5vkwj-rLA6a^$G+92#U8lk(+<2~A0!W2b#-!Ib#xY*X~6nP1~9%X|CUzW!>
      zos|TX3XhS@h6D@|?8}A)3>SXDF<;UtA!$}FNC$>X!VsCsjy?>qLVS3q1%xv3_|9I}
      zD$>2$n@#;5nUb=jNhz566|+g{38m92`4tQhZlD(~{ULeOZClhD+eD*@8QjGpzJ`Kb
      zlyM(bnr~r`B-(|AZ?Qx3U6STLzQgx;=nHqgMYSW`Ba%8nLMZf#=1H0WdGup}P>}p$
      NbbrE^Yst?@`4_jjbQ=Hw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVO>vI!T96dLEWJwpH;aNn1iqIwvA%&JldAC$z(-sL7Tja4#mUJQAl-&(bo`P=_
      ze9oxMI69*<s53YPXWAk&j^CK^U+^#Si+b*6o3u1I=$G8R_x|qhp7T5B-kab5`sG&u
      zF?{TYPau*p^U+h<SuJYosk~)4qfy()L@is39!Ty^8W~e_@|NDIrJS5K>PMx(d^bF+
      znVD$s;3+-j2vnKcux<;?OSp4+$H+#Ly3;05z0EKUXNN#VLt~#nWqU5I2T*|;6@Dmk
      zg<<MF`Qbs`I;ah1b%9_am(sF*nq|noH(2Qm8O$F|{3p2Fzb2zQanp7*GsWDk4F!NM
      z_@rYQW~Qz22|43M@@)Yuz#=~u&fs2Hu3|BkkQZ|e3oLACoV|fuU8iCho@F_*x|wl?
      z+;YU_#B(a1mkDZ|Tq1W)x7syZSFn;9DM3U=)T?*_s|5liVLA3;LoQ!bj>v!vU!!6z
      z8U*Ip`9a%dD5K+La4858$B1nQAkd^Df?DdqdhJgpi`*4Nx%J5DlpTwljjd~uu`w0R
      zGPYL6cC{yC#c0BoPLLv&Oybp9Kw*4O!6>y;g(_NQ4ij%yQHAONwqlzf6t8}^+C!Q>
      z6y3)k&ygxx(CP;bR$H>3oTvQ)*p8YS>_)pEdj#f|0ywFn1AB?daCA$fw*?l@z!dk!
      z+iLI<;(qKSsZxTeSrsp%OS0C_^BByOzi>F({OA@~@_0G+<c(}vw-odegOr*&Q0@d?
      zkq6_z6BO=~5eHQq0?$&lHZr1{X`bP7W|$>_w<FD*z^f|yrRx+YS5QZm>WGThaFmwN
      z(o8zTVIGyn0a=XWDo#KX@KcK(mp9M$fPxe&<T5FmB{H0DRv_&#YrI84h9!S&+#b>*
      zvDWnpjPi5MEv*Vpm!I3Pd7}cJ!E!lUV$A{MaK?`jGAqg0p37!=ff+f|R$)QjV0m*m
      zmo`qimk(_su+pn;(W%~1D)xESq$@pV`-YfhL81C?h-XIH*=I<POq-f=5$CFh(=vgA
      zivl8|;4<s$RYRVKt19N>b%D0BQa|CC#JhFd)-rmBk<o33M!YW2I6KxZ-S^W^egN0-
      zrZnSQ0^x=-m!u>eeQb}oyyShu^v~L-TtVuVZs)TsO?{aq65O<#*pK)53j8|<c_a13
      zj<*zVr2uZ=retzUAoR3MB#}Tem$y=Sry<{^rDfj3b<#>$#jC4=Zz>na`-@*y@X6<m
      zBXii>z*fl7&;$ba_~C=f-vC=+Cn~WEbNQtfg76IHu~$dIYrO<_87UL=h903xjD^M#
      z?BdVT+g@*ZS17n*9IFa_`MGo)FS=2|Mvi|8B{YffSSYxz*jqm)#+b4IWh*xY4iHL`
      z_z$55eF)+(7V?^?!vN}W1gmkB{~C_bjK>N31olBgH&WA}_mb&G=Gh|eWDokE%vs5?
      z(fio+2-YOFbUnoO{t4_%gdSj*K=&QgH$6b7z;9U46Ml$9f3Rl)`y=B>j^pq+1`c!j
      zn85A7{|E;MWj`ED7n+lWW~k7dDl}QQnS}W>HgVGu$sKN8O%fbo?az>)h2?Ot26?pc
      zy94LZg;AE_0%>0)#Y@QGGE7`$#C4Zwh-3md%~ew7AnE6EmQ?Ey#yPI{G20^M*hoVx
      zlP{`QhWlJ6Ez%j1f|S&`;Oe1<DyQ^vRaJwRCUGTk2hUKpD~YhH`a@jn4_8d!jqaur
      zrx4Kq?-1L2{3CJ$D{zwtZXt?Kh~ZOg#%C1lb8`Elh@U7tp_+*4ZLSuK4SHW4<nS)D
      z`G}vdyodiDBPIU5u7&<5{u}+_34Aac{#S(dHQ|3l_}>!#cZB~vA^kx3KN9|3wBx5~
      V@b{L1U+ckdFTxl2kbr&o=pX;euK@r6
      
      literal 0
      HcmV?d00001
      
      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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
      E0QUJTCjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}G;7(JJ4*br7+(4YZhQ~N7{XsomtiJ}s;gd$qCp^86P$R=3~2`(E)XFA#k
      z|ANl+wbOJu!*tq*{;+}3sngE1FMa7>(x<+cp1Zq<4t5H&yLZ2P@A=Mm&UZI|{PXxJ
      zfVW|*XcLH+YmM}xamPrnm<tWta_*%Yj#W*M-E+*-wr$)~p$O>iimFj7r_awXnhTCV
      z@QzV!m;!CHV*>5Rt(xVGGMbnjOBMu_T)k+95kRK~6`DXGkt}pTpi4s#?E*WeteQF9
      zSeiHO%f@__Ks{6S1*2LpY)iiTLB*+9D*^|m{*Pu>AXGM;f=5b8BqgnoQ@`ZcR;?_s
      zJCU5)D#D9qRqW-A8@B3cFE~RDOgoG{=v2`!uxoSr0)d>(**?T%Vf#6s@Nfy>O=gpY
      zFbj=qcohc(I!bkW$#C*DYPKhl&*xvlBaA-0uHg;5Nd=c>9)XCD>x%C4O%_5(Q1W;@
      zi~*!n3{udos?HfsMZ-ZHqTEYXO}fE!dCBImM#ql`bUO73^X{f7QM#4S=U&R_9So~@
      z_XX>{Z5oauL(8jXt?X1>XY(P92#9zH$N4xU%NdpBoMa;;a#D{zoYpWV8$osJtJb8#
      z;~FC9CB%wj3-mq{(o5va$?1AS3i53FIVWhluz2OUii9|-@?yvIY<HUzi@fG}jj6cA
      zgj>>i8OIu>lJx!}I>RX7BNa274dB|4s~EPi!1mB^1y|W$^mg1TTk<$asdIAcH4WEs
      zg8~`L%Vw=8&`$}rvGG!6<%V%`pKp|8oh5l+F_%d(C$RUwca>04!M5(+DuEqlmL;_a
      zs7SBmvu%Gigj>WuEYmJYo>VOLvPRps)91@VZKG)26$oFdH|z!TtR>HG*R#*XAxVh6
      z#ya?wp%3!7a}?xQMTqwfzMVxI|AFwp8n3~hu;Y8awP7dkUGC1qP;i86hoCdo>#asN
      z@#J6FMP((}h21`8noq&G;J_p7_>Kb)uH6kDbzwAbfe*u$BCtzHG?`8k`~3;_Tv<bO
      z>IwR;46b3{xxlEzdpfMF;)_&F*Y(gkUTNXARL@(y>v}|q71xm*cGJcpK|Q{X^hkRu
      z+AgOvdPWY0ip61d6<Vt27^4qW5mEI_bK~!TjAmtmSVWy08V*H5-PpLV$D8Q#hxfmd
      z+p^rYimsFw{IrD=E=VNU-1sfk!l{P=Jr+@#8*_s#<hF{x!9xZdr|u_M^eELj$)k7*
      zF`mUFa!6wwBRGQzIx>y-aD$^FpEcy+;C(#66h6Z_e2(+@nz0}80oK?%kBRXMF1w<Z
      z=mv%JMGfI+;+>_e-FQT#3EHp=KXC6PeeJ_HM4hDABlv{alk{-{HZx4KOJ=$9JYy<u
      zlb<(wzz^L8W)0CEe!)Du@Fx*uSIs=ZMcQ?FL<tNBS8+0`3`Bzcb3^LK`p)~hzK#!D
      zn4Q^-J|Bw&_bJ6M5soS`x#VF`Fw)%kHLA35b4$PjObj0O4qRn(UgJ0II*w7M)3{0E
      zS4qrpMHuzyV9tG#7~_*}x6QZ(%VwX!JQgTI2a7#JnH6Y!N@0SG@yEh1?pv;r#bx^X
      z*I`b-SYlUH=~--{>N7qld#kzeS5)Ds%1U2gzn@Y9C8Cwdz9PR2w7!BtEK<r_&oR%C
      m!z9--E9yS;jL*ECYo$Q}VkB9iWZr|QYmhwF%iPt5+y4S-q^?i^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~`}b6x|mB`RJ4ag#ry|5Un9VW9wHfNFmtTRA|~#L5fu;VG;(1Nla!+`|cm`
      z#Rnhz;;XKup-b25^1&y6l*@hQ4kTcF@FltT%sG4S^L79F`?r?>u3$fkE`_;@>u2}O
      zCuX)`mHfKxJ<Ix@?PPP$JS*py%T~SMdo|x%_v)6(kch%i;BHs5?Ozmni-Ehs@M_@T
      z(xZhkPlpBDwY^1!?)3DALS&`7V<n()#y}JX4e7kt&#l_7b=Ti7TJ?u!(XkW;SF0t{
      z*)Z$2+(To;+qD}C+13A*z<dJT7!<--0z<eE#jwKp4tfoYU{oPyIu6M_su-obj+w=o
      z!$ku<=%si`(KekGvu2i9Oa+x!=s93v36Z$@v}DyhyXrQgNF5QgPWi&|7m@XvfhoMM
      zVC<TW2iCqxP`47)?U5Ahl7Tl7BV46kJ<v^(sA&Tk%+QVP61lm~aw(~(5KV9A@~pQ6
      zW(~ZBD+=-Y39h_+ds{%?QAle4js;NY+Rm}R)pEIEk-FEh+={o$ycr}E3fB!xU`}Bq
      z-C2}SeQ012oRj#DUvq3Jx>%PCEQ9EgvSZg+vJ(Ko#IdJC_{hLb3GQhyl%<Y&RgP>>
      zwxOdC$8;-MZJm#TeHjTF-)7GFwzFf^6ZiycQLHNTw>%2PJ*(syxP^}sDByk+_fCA*
      zzy=;*o#lOEI=)pXvsr0fvw%fo%!f5-BW4b_@u|!uH(<CuB-A^-5yNNPmDF}h@7eW~
      zggi2^jn7$fvsSa*9qx0d*fs?kF3dAv{X!tVJQew$LXRS2FxmFhV-c|?4cIYY$q>a#
      z;pmI8BGbb`m<?5(dJ{U&0<(0jgVqMcdDBzQkzcR+^^$eVmUki9dS2R}qRY}VOmgbF
      z`Os0NtR_z}p1Jq@jq~;%?Mkef0fj>(e&)FgXZf4pKQK?<1@!S`Xg{1oKW~B|7Qx8V
      zQ+&^64l$5PzQFlkG1da=3j{18f+dD52VfU;KnTWABr#67N$!WiZ?6z8!uzWM!B$8x
      zmiYx^O-%lPD5>6%Tk^Xm(wi-^L56|NNKjQD?qHNNEb2Ak*fHT4W{(Ny!aS;smFT3V
      zxjgZ_#WOQL(Ztn%5fyL-_Xv6)7di1ll+h5!L`f38O9H~O*yBOoNxaWfH?0%67LqSB
      zPKp@M%yiGZY~q7fPP!8t?Ac~pF7acEcu2vuXTNk$<X=b!bS?``-1q}SO|1Mxqi%3-
      z;7|-8b#n(oNG01H0<8r)fvMkddy7@S^8$Ad@o;dni7k!&c<?Kpn<$=!uCzf<h0tB{
      zW{1$<Q;5vwHH}kRNDeIFITFdp(}f=q|MOd@e#khjX@?t|v-(ip%*>t`u}i_2I7Hqj
      tkIQb?Sm19sPIXM9fvfOXazD_M(ww257~gz5oP-hVaYJMuz7C4y`~%V*p&tMM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95Ivi?busS6ty>6}(sFfzgvA3FDNrPuAXN$%QHTU@j<a&MI5t|ZEBF=u
      zf)^@*1mcyCLd-f=6I81&JG(n`&Y3+sfBt^|3E(c8CTa|uQIh)y!C~NMJj|s~pZ#2k
      z*za)pmZAxRVWr5&K@#~d2M0V<4D*jfBGe8;-D~z4jNNp|E!1(w#vJAumU|-MFY@t#
      z%QwLw<_xR7Gz{W?Aca1cmxdaNjA5&HdKYbiha(<-*vod)BvUdE6(2I(^D2NtF8xmT
      zbw7x6-tJ9X-&ay3QCqibbw7ptqY}hrVwItFQodyACSf`x*fGF@iwzU&mCnsd+c<~w
      z42$CbmdUU8793pAMqOlB_o`cDht;;sN{}t}aTaNBPdt;sDII$%qP;}%h)do3RU6lE
      zonay3s<4Q`^_nyI$q%<p+@wrFI}X&ypR$mB`)Mvi{!Hk9wL6nZxua{1ZBS1%UZ9of
      zQJ~eNlTVRRoNFCn;VW%wuxQn3J&R{)wI>A>7wOc%5|*iIh4uzzoPy>#(bnk3X??@m
      z7uY}Gyt{pb#;+;mQlWpJ${!H;VL`ny0pSuZ6PV!G#1$fKV5>spRVm_<$o6mCI8Em<
      XJ!1!Jcrv5o9_zTJ4#O={t-<>T_Zr6S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pj>IxN%LArX`f`ue54igacO)m(ogz2o8;c#BJlO+AXeKt=Coh2Y?d@
      zi4%W-b0rEA2YvuQ3NgEJRf&^NJ3BM)&6~IT=kKrI03Kr1gTv6@O^axsAMq#`aiOF>
      zjtVW4Xlr^X6(1+!)p%dTy7x@vT4l#Vd2ksPEy6Yq<$+K`p1)<NYp!;MW>_0kV|{Ee
      zdou6!DR?4Nsh=|JR7O{wvOZ#PH?xUofFTIrq3)xGW`H@g7;0<lBU4!jZ~=9O)<CA>
      zWpOYzdyxYSok14!WW<#;_cG}k<qVH1syKI$wyvon^|6er9<DH~R&y)BHC$(ym-*Ra
      zOsx1fhUsR2TV|QYBrB^P?l6Srp{D0=%L~01l?~fmCStNRjm4psS<2w=WQB^wHl-Ps
      z{`&zB3=`S+JWYk#On9CP+P-lnMWIg?*63$B=olY?cH1~@Ga#pp#Xj9$P>1Pjg&U`s
      z4}aofc>fgblM)IvZTSO{yd%(iEK;RQAc9~Cm*_N+8Q~CRm*N@mkWNOmZulMTAGrJ#
      z%~^Eg8{F3?wzfbFx2;5wOqaSplBiFV{Y=bX?5tqMQqFR4m%1F>Lyu11&RE6@I{yGK
      C=gMsW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DX-^YD7=ET~X}fNL7DS6;MJu+eQt-f|C^1kHNEHL69EmZ*b^?pb7WXjl&A;RY
      zi6s62e~drD_|CLa(+{R@vUBY`$9wFLU*En1n8Iuf5r**{H!SY)_q^x}EA;H(s2B#e
      zQ!F1I*dE_@#Par@u!0ygh5>cY;qFfH&uK41R-PWV;XDj>i}S({yvC6vVCbJOFFaqX
      zRNqt=UzC^Estjz2AvxD@{eZhcjXR-;k|$vL=Ld#ZdE?dMN_mALRZ)t{P}SZSUWp-5
      zZ&C}7;clfn_qmoGMG&8{9NV>nXAC|0LXAP2Yt%&yLu9l=PRAgI4P3xQhTfSLNXu^(
      zY6&om7%-3|RK<41%W!{Nc-3aW=}N=mPK|rE+^a*K09PbcmIU)lN;lZGeTICOL6mg#
      z;JTzp#c+dR@_%F3k;6@i&oiuct=g@-W=>24edw2YyKUeOCK%$rwJYkO?1N0cvz}G%
      zzb&a`MC-!gM^yY)c^UNbp(PFio4O>1dkp43`fP#Qj;NmjWU?O^m_|zWOQThN8UG^#
      zkMV@6X>r#Qj%tA|(pqhVo+TEDg<+_p_a~$<gR$tk!kcrr?+Yqh;;g5%F_P<{H%em$
      zF~n(|pl*&p$B66^TBl`RXpYj?0i@_gns$?fkdJYS!A<Q1=RYI!k@gW>qEV+ASi(8X
      z;<7pgG+F-^dRnOhadQaz2}V1S>*QraAq_&%JzT{Y&5|SA;&`oG1Eb~%u9>IEZJM+i
      z|BAvVWXvxpWRG#HO`Ik$z-hF|MxDro5*SuiM_U3!hoVYDib71$w<#q{f2<07mc*r@
      zq<M_{Qsfv9*V`g}Dk}#h@{Y3S{S`s7DWGYxwnWjUji5w?5zOEz&9VV<^gcuSH%v1X
      A_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~%TE(g6vn?xUt_6&BNTZFwWw`@mhv`KkrXkN28mTPCYnsk*bcT+oK97uQR6#q
      zT<g{aiD97|OkB7%@sBcoGbK<035kn)@0>aJe&=_;bN~GP`3pcCQyw%31oC<{wyHc-
      zVih%4H8gWQRyDO^Y`$!i6!Qi@J#Y%N*jtK<o{wG4uBtgxz@5-^&AcGs2!)pgoXPTv
      z>V*SGd~m@n(45wEb+KB?s>XFCTT}()bUCLKmlZ>^;_aVKv!GQ3g6Ts+rm2}%%}aW&
      zyrSv(MWsZ|woodZ-i6DU22;}#jxj~WXwFz)Gs{s!c@({8UrEAo0e@ZU@%Zq$om`th
      zdtGkrey%dLlWgC6P^swg?VNyAQ%}tah!o8+)JnBTm*o9$0<Cq|$P~(kY28J_NqTv0
      z_NIhB0oSc4xg?yT*3v>U6P%LJ&)>6|#b{ihkqWgISrywt`>TXgUW5?wAiSr0HG_N@
      zz#w}@w@Snb9bln#I_g6V!z3uGdfqJ9t+r)Hd>F+Th1CaDrC3Sj^|GNRm5SYv16Xde
      zmTvdUn<-a~oI0;r52AVZl|`){A^_Il>ja!=u$~cP52I18f~za?1JZYXG{DQ*%hgIc
      zF@{Ed`D&ZE9%a;lCNysgeB^5FofPTLuUtnsEI}tn4@ZzA%n_4Y(i@OvnX^xB<?NRI
      z>49%d)k;R}!ZVC6q7O+PoWmK+^YCR1B1ONhP&|!sEZIo@T3MVRj-@e<PIR$!2fF_Q
      zuE&P!wc!FbTyQ_!9hSLEIE8Ro!mSWaC0w3x1;VWoLO%rVG|$zn|3Wp(xtYjsxE!02
      zEu3B8H1yeu9EphBvxWF4NY2Ctx+8LLEpjnxipT*wa=8;-n>!9p*v)xD>z}f}&j|7y
      wGG3q+FX6{4^x`%8@diV9OW1dq#(SK{hdSUHUZ9J5eqOATPFinc!q%Vs2eKgY{{R30
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3!EVz)6r7EnCYXezg_c4o(8@wd4o!o^0Tm&kDiM)VE|eZ}+s3P8i?go0cBSw=
      z9DCsc5(hqjk3x($6;KHYWO@DGym_8CZ@>Te`VBx2yA_lK!l}u-XYxXJt(xSi&KBJ~
      z({XobGBs7{JH}zJ0$<>+W4Yo;oA)YuE$!?`o(rtJ&_-u38MKCjar;ETKTIMOz{8Ci
      z%2*L-utmMe=cg(?mZz~2SQ{l18K1~h7x@+FXESXDo{auyssn+Wp)`qE%#+;i3y9%0
      zq(@|M4S7mrEU=oYd2*rpainb4H(9z6*ldk{`=hJS;Ro$;09vnM6ZdG#>JJ><YqhCV
      zR?E)yzcva4Z<9QosDUorHvib?ULhn<8ych1!&q9Y=(*81lQ^;3OpjDHOQH&P1a|+u
      z2kdh|k2eaG_;TCKD~yie^8u=zt#JDbs-GMq;2AjPGqSiH=A9)EHPo501Gms%t%#af
      zb?hqEaGN>;cd&k?@QRf}v)=iPjb`)_W&hH<Bv7IR+#tYnC$X_4{*tKUKDPK94-XuF
      T8xQ#{c3sGVVvl(GcntgmTm6!{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~E_c7=F$+)=>%@LsU=^5ZI@b2`D<EkOktBAtA#NxG|+1N3nLKA0++~e}cED
      z7l0;e<if-sWqeOt!Y~+m(R1F9^E}V{@%zu0ZvaXtONcOxHZ4!x(+)J%;ksuV?mN|U
      z4O6XJE^l)CCEX>&7*c+YsaZ{Rb$gHNE`wZItUO<ORj+O>F|aB_cco=Hu4cIn&GdMb
      zSaujXbWPvo49S|0;DfJd`(=j2ylxtn;XY-EW^)aOSf#bYB_tWfu2wZxialEZWb`1d
      zpbys=;`1R~JX>Af$~8K{a9u$sWI=CO{Dt>+o7?N!wn>80wU(}#4b3)$?K@>eF(|+k
      z665X~4k@W!Ern{44n)bTuNgAgpisY6b=NkmW;xg93L9JQ!Z1c9j8NMyG)BQaj8R9L
      zoLW554i@zN0$AvhFu~A!KB169#yGMH?qEoe<rNfAB;<XMkmoKzZd3VxE~-@v$`UO+
      z=L}1wDcIccOrq#(i=I_Y1Ibn|YlqM}tzZVTv>0ydjDfN*q=zgrO*TurrC9__n^<po
      zw$7IgG1pYcC02J*=wnc-mc{LgsW}dJVk7ieEN29R=s=t-$+r?@)2`4xh6K8xP^6oz
      z8Ojo0>MMFSQ#_rD9ijI#`ahB{f*bUg=>%qx#1wA&UJ;=+3K6F1WaRJ2A7S9%XA4BP
      z=sy$bl!RNjP3M3ZTnO-<1PjTfPw3xV`APr$3GPPl1LL*AFZAV)k*Nu9;RLxTHj1Yo
      z5HFs7FC3DNIC3b`<02;gGtfNbSG`8jIw@VJIvPZ~fehB5V#^ma9FXEZy#!?qP-KcE
      zse~Hbgve4Ta)!L30C_MaALGF>9v+evu!$}MZ`#U~@rbxZe9r$r#uGZlV0-8U(tiQD
      CR{F63
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiz+fx%~7{;G3*|13nvZ5eS!Km0K1QTs-rC@DA4h8~RV6fDSx+EX4OitZwEa_Bw
      zbhI<Q=}c#wUYD8P)|pmn>Dc@JQJp^DW{Fs&olKJVJG_VI_w4@l_wUaDT*QnHpTLRL
      zQZ2o1-Zj%znXB2BQ%~0%tB}4qH#@0A6ENJvf>~Nk-&kIkIY%Ivmj$_MI#M8(-Jf5v
      zc{ej>mh$D|ut3Wdt7JJ>1<uC*?{Z>MK)Y7X%P{<CjX+04z#mU6h9Gb#f&f|s+Ot+k
      z&en>{(q1r^3ml>&Th5t<Mboy_+S}BeHLEJn^OBxTft;>&RXUkc)iFysRyq|={O5fg
      zT>@tgkUTRsDNE8eow6N9Ct7tx1rEFT+>Y1H>e`H138NdWVVp#-j-D6z&eyAsEJkn&
      zF(%RtTb7&!t0-rzLP3ckim4#Z2pr=GshnM}IOUYWohs&2RVnkTc3%YN@Cq+iYV>L_
      zp8dCh!~1s<`?p#VN577QK<@#1J&PkqVt~FWm+6Jq&s9vd!-+*5DS>m(rx@SJ$%<o@
      zOBsGF$1)4nC(<6bZN=?8E-2qG3Uu$Cd|}Nlf2`bPy)Yk!*VUz<jyD93yreSK7tIRK
      z8oKu4r{{umiYbn)kO}y1k8-^s(7A^~b4cC~mE?vqT6ZKZ2*huXHbxkU;3}A@b0?Eg
      zk8aCyZDmE;irk2f34wtF$Yrgf<;+Plw<hz=M$9j-tW>2MF2hAZmR6lLF6si|`Et$9
      z$q7q6?jiMVrj%-&CJH~_W{OZR2P2IU$#5sc)dW{Q{)hXw`Az<cw#Qug(9YjOZsrIx
      zuJP^|4DNL`ZsRaIxMH4LRUnEZINGQwI@u?{vj;oqT-wI5=^b?Q|9JK{oER~Je*~BO
      zF=O!F!|xWBw3u<h4FWME?glL}BjyHr%;<K5V9YSwz~EW15$Q2z4{6Dc(^2gS&fe-z
      zKE<m({Dijb4$dznw~_vH2V#k;Ui+D21@RFaT=IksQ5tZayVDdk!@*~995*n4n{@0w
      ze&+BY_e{)V9Sh7{L=Ep_6Cbz`E>T_(pLswH<nbmhv&&K3!64pZ7n3-KFidncqPv2(
      zc`8`@9sVlp3aY{$>QDNU&z|7j=hVaQ!5SM_dx(dc#6xsr*ef^MC@1cac#!3``hP)N
      z@?_6bjA?}N=$1!*NF(~ofd>1oz%G179(_h0enuXDMxFtTb{$~2Ye82)d7wu%nxMNT
      zuz6H-jd*d6_90EV64jI~k6nEcK4Ih3_dOmpZ5eg--sQ;#qfhxv-9s;-_Yw6VK1UW`
      z5bT$<auZd2#nZ3x5cgT(0e-+Y_z~Z_73LZ&n#8s|V&sEK+OEKFA;ZYe9-FRt8avfp
      Y^8&2h=bERpY8X>APb24PX8Dl)2hJ&x8~^|S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU27aw7=BK6b|<?Xo0zXU`KVP>-A$WpTC2uvO>3jAD@zh$48|{<-JNWv?3c5%
      zZ32oQ+JYAfErLp0us3_-MHIRb3sx_@DF}Kcf(YIOg#HHObI$CN1~&zVojLD&&ina1
      z@7de`eD^(oBRHd@O<*urtj5n;=d5_e&Qx8;TZ>mcCm)}4or0}H6X;Z@d8?R<&!*4X
      z8BZW|+$lQVlt3UFTNKcyOIbUD0Kx`>2nlqgoT5EbEu?LC!Aj?Cfv!|3W91hu*O7W-
      zQ}b4wiopKVy=q7Zbm#1%?OL8aZxyqpf+|g5Jeo|VRBZ*zTZx}?a>=4+=WI6-YrU=G
      zeu17=9y+?4eX8dDJP~vu96=}gWLx_L`l5}5cNryOi_*k2(2oHD{hXDr+Ox|7X7t5f
      z>X7zB2KM7YfpBHTS@u%)GEp_7$$NM_WZ+>uLXS+TP_|rqp(H(8cN$B|90v_NipK=n
      zE7i2;T9UZ2-5grSkx^m>Mr4$LmCXh@IPz(e2V(}}>Yz}{O8tm|qe{<Zlzz;>6L^xt
      z;8f<^Qd;ufU`}JBuX1e41*a$=l1j8zDH6B7)}`<;%eO4>`Yt`R_WPeRA{#kr;8}%R
      zp_=!ca(<0@UA`9I^8%5VN>w*wpLXP2M^sB=a;SKvh?2r5K#3QDU!8iKtKb?O*+Bc(
      z5<W!umB+wg?BUn&4Y=M%EsVYB;0~R|1qPC^-?@p-rGfspg87^1TG~L*26`toQ;U3y
      z2m0$6tmD8{?Az8&t&ZV3qSB@ZhiFyDXjm-=zQA7JuyHP94EQmwVb(wL_2Hc<R5WSL
      z*ewHZ-MA}oZL8MQhG#|(*D*db>N~T74pU==kAIGksjY99$PBfuGW+#0nn5?^r_hTD
      z9K<A^#uR370!w%f4$fc|FW@4QxWwHWX7LT?a03gtg_rRYUcoPT4Zq_}{DCz7CaV(b
      zV?LgYIzf%dGU|lF{|+-GnE4hb{y3!o^ZtfsC~1n5sRk$48KIq?o05~E!JVAwrasaH
      z`~)$d4DH;APSU~*Ndzezk`!=ldTdj)hi;8S3EEJTpSY=S>nes+$v=N8ln*gaYMAzI
      zWv-wZlp`@N1>ZuEpf^d-*Z)&yZR?^On00pQvoVhz%5M`DkN+&^iQp<uVvQWUgE#Ol
      zY`l*uKEwyOfXn3N8a~38_!wW|6S8s%KjKr|#%K5$SMVp^!(X_r7@7Cc#3>>zpG{0t
      tlDA`1vDBs{$&$QYn~EikQI9H?f~@5S&O?GXsu#a1zI1v&Pun(}{ugoKj5+`S
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-*XdH6#j0qn+@A7NNEaTQz)R2L?8&-LIb5OKWZ=#H5iP}IBb&Ju$XSb{=n8T
      zzW870gZjja4?3fXV@KfGzs0{nJ@+PQ63vV+d+$B>obR0Tedq2UfBp6xz#I5bLx|yc
      z-3c;}t*2JT<JG{m{hdtU+l@?-KMA-~<r)-*Iq4wnYZcFTt*W25J)a@!_1zd|Kh8_9
      zhUL^VImhR9?q(SxS8d1kR~VFJE>)uCMzh9sFiaWHV30#Hmy<UK^0ve81zQ#F-nS|Z
      z&M=d2R;@<Ka&2+$8x{YN?J=Cl|4-qRJItLL1Isa}ltg4#J>PPD9bwFg^oPkOnJQ_B
      zGaUR+^*WBgG?2hNgZ9*F1iY|GTu>hqI^9Pt9XFsNqTvLwF=UL|`jpoMUpf{rCqAzl
      zcnzm1xmBYAW62S`Lgg{9`q|V+!Y^qcg*1`o*`E_1RBKL{&l)&~^Hh}ITytG(has69
      zWq*J%!KNW1;98bL#5AazUTP`ruu$TT*_5x&N#odf!+mfeVN%0ohEt=&)%bQH@C%#k
      z&A_R7x3;Ui<=ah1!!pC+p<~f^ZKu8-*o_)@qqs_AU^^6hO~)0i2x+eWi<e$RHdPWH
      zYX;VFgMzG9OKO}LuW<}M8^tZ+>g<9bQ6|_B;cqjX8zp{_U_^^?7?Jpnfp?Inx%ZpB
      zOHw*HIu3ml9ZR5@S7lS8lhgz)bY$?Jf%j1)&uXLTki_F?eXccpz;I{+0)t*`25yz#
      zw#9py9z5Fff@yl<Bq2R@dPrg}X&0frhA4ga(P<S5LbOKHVN>Zs|B3b?Ow(7F_Uq)k
      ziv4t+>-pgTUZE33;2>erkdVirKH42Z6WO9^GcgJ6F8SV*XbU~R5wux}Hoy%@T%(7}
      zru((G(_O^ozs4mq@huW*^>-X8hs|Gcv{+UWV)+Hfo}rvph8NPZv5SRr7blk$b5VVU
      z*|-u@$-RS94`S;4!$mcwCcgXo&$t8;)^uEnD;=C6oDN=pi44IEsacjSJfvnTL_>|}
      z;xMsEuae_59^o<?Si=@J;E=Lg_yjGoKEW68WaNqzqP^FA8-wQCl2jo`8yAR>FyUlL
      z#EX>cCXV8gl#$_0yw#`NBWi^IlKBm$%yb8f-{Z_Kmdd-hQl80nan0;tb>?OVx5Xvx
      zJIHl$_eJ_=95XNeNTEHw_e(`SgMn>Iy)&Zu(q5rUq+U;R`X%)XxIil-l!yR){=*)g
      ym^0u@i6e9rlh>OadUPm|Ma-XQL)=Y?=nmd}iTlHndJtcYKuqmHlqe{K2mb(;h+IDa
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM+fy4=82=p-*fcCf!=*y723iXVP;85r8Ynkgo05VS8Vh(^!UBt%4U=pb>VuA2
      zAJlQiOJ5ux9G`sYgU%>eJJ!d}_-FWssK0Y|Nfz3w<3rBoob#RE<@>&Ke*g2Ay8upM
      zT|=Ef_nK1~+Ay|^p|Y8;lq~o9P{p<Ep*gFtX`5NA>}m)Lw5t%cGqGHDOGe(6djb*D
      zHVdZXmIYdtvMS0poVB6Z<qb3MrUe>CEXQ)s3AFXyzn#npgr|xtW)vYb>d>GIg!+;>
      z4Tl9DIS6+MT+~sI27%_R<(M;-!m?SKH<oQvAeJrW4LfI)EIIcV!|u98ZO5|z>XTYE
      z-;BgM$j$BE2ROJtPI{^{Ps!o5z}f$F=3yvj1g8Hdz{4Pi1v-34RnDoRZL?BV(MczB
      zjYyzJL$^R{t>Co?9mjB-6)RhBGvBOJMjkk!qZfT_1<N%{hFdJLUHXz9zoN+a>*+?M
      zFrcBI`K`h4?dllBNrF4(Hv6h|4<Xo1^88aedzXpT){XLv3Z;%k0g)$dfV8HXl@k_!
      z8J5J7(1EBua>j(#Om4RIWqj#DVhtngp;}91oE39>w&KpNP8KW9O8NYD-rSTqjDVfq
      zWb<kyta8FEY`WK@NMl^K_QZiZFz1#mXN_6cFePxLhVE@lRxEqPEJbjhm&lTYqfty^
      zTn-m?WN?Y=#^$E!tO#`Nm%R@m9YL1)8c4{pDU2C;d{$sE*jsyY0*$jDCd%8_BiXO$
      zn8Q2^?iRg>gXQv}1nQOUC|<#WhHJdEHIq}eQ7-FPlt3C&KVua53cQNfHN3X(>U&^1
      z-oTrT+%oKnIlC%wBB<SeZGx5aHAJw?()UHcB-JGo@}0RN5S=SlN_q2wCEtza+FN&0
      z>SKSg8~8@DP32p|fAZnc5aD=;vw7~;@!Oi(MKl%u6-_^(IrSr&L;Z6<aJ>$Xa*QF&
      zafIVJ=omu_#<>QxduKUs<%}q3;~GVh;fT**kwGemD~9@g43a235Fl!&NZ=xgE|F-O
      zz*%(SvLZ`(FjcZR9#dq5Mu(CjX*+$|cNi^2_bA$i2hmFQ`oREur%F(c=dO``flQ0U
      zTS7N$Dea~_#Hxaxs)8P00r{w=o!nAOm#^g}=h9b7Y0>^ci<H#R5e{fNN*rL7%oa6m
      zkozravZ<+nBpjt{*h8=CN>z2Gs=89XF6rWNDhw-yy037Ag%sq8DuseQP%HjnmG?4F
      zRM;|Gicy|pw9hEL9`%vF@$){Wkos@q2?5V=Xq2-j1!lfOO#1A)Q6~m(BPlS)&yc`Z
      z(7WWu-EaT;qekx~;9b(c$6kD&lpoN*4Gi#m4j%>zBm2_p!!ew}Fa@<R>S;VfbDcPj
      zXYrgW3?F`9>;%8ki0b%zs1Myz{I|H|HNNNlBl`Q8-aiR=Z?1Yji|2i~Pgw_fnKBaP
      z9-8hTy$~DS#n^B0uc601Z|IfFcQCmSdtnzB;yZXTHob$(sU5t;|2ueD9+0u|)8AKx
      zco*X{3i+H__=4&FlCRfICCIylnX3B?uF|t~#;47fc2zkC`W3O*LGEWPkv?YBsAGBg
      ce-|b{lu;vZAP86<c?Z18_gCGoDv4`<1F;P7r2qf`
      
      literal 0
      HcmV?d00001
      
      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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
      GhyMrEr4&&B
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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}uz;Waj8Q=jY@AT?ceFP$^e%
      zerZv1s#|7GDkFmknz!^ont*;_WMBqjR$#a=0sYC&z`+3WFDC;RP=t|z8zj!a0{}JW
      BS|R`d
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Q5O#x2RL-`u1nPkKFMri3VgLXD
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      JB8Q7R{tC{FJtY7D
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn7(F)x7Lw)t#Xzyvs+bTU_<~x%Y6G;TrAb>5inQ8gvn5NHgeIFB)V4a~
      zj6cDle}FH1&>01h83(`mGyEayxx34Tm(=k?LhgO;bDr~@=iJMmfB*J7fVZ%&ARy4c
      zk}D-vwZ~ebXy~PaX>TOTBf}RGclb4NduG<K4BgHbrq|Xj1wnxp=d7jWRubvuRmK$5
      z37kESpc@4{aU@$HY!-_pqma_pjG{pEjB~zZn^t1hu*U@I#?72*Ulgc`#^wcr6Zwo0
      zLJb;KG$5p)S)jF&b5$#5nHNG68XF+crb0oz#5Hq9s<gIj6y~&L%V1<CuWQ!4Rxst-
      z+YH)SlPm^i{(tYJ*r;VP(|#8Mwb7-d<QkeP>&Cim=5s{_X9U_Eo@PEVo%SONUS_=)
      zmm8imi?*3tDVfErk&!Be(2G}O^N}!K#cK-AlR-rRcCX@fyg|W8OQ19AN_u24W3f+3
      zuA;j@U@3Xx<g8s_)v?&TEY~l~MWtp=9S6!gAkga-@Lh6~nYy{IS<F^2B+w_b$`u=F
      zB|9s<G%UR|>>m$d5W_0{_cqzB81__7=d9U6FdAD*hVd@mQ!pa%l0)KjITi2Y0|AAp
      zQYV3qXsjCHZg=xE07u!x<jN>%g~%a>W66oUC0);nj)m|cK2ktqc2>l%#EU9E#w8lB
      zlv~SZ%m<FkI2(a;o?gDkJ(B)f!34Qi1EsZeE1x^nntR_!iB6EFxT<0r*LZj6fJ>Go
      z(0#OKg`{JIpq^jfAo7}K>sf&_C&zhsWqDXZTA=5+{7%?=6GBMgmWtb$<-PWmoJ>hn
      zugfZ`OU9q5n8$)Zy=fZ-jn9fe*I|ky%(S;Z7RDl$6wtwK6^Ra`D(+&6hRGRaz5%`X
      zOvUH&D%2T|N}5%axtfY)=(I^zE2enNd05yPMRo6|<8J?cGOQP<VB~~pd{qR*I(f^7
      z!*$)ze>@(iZ!<j?FiE1r#XsJw?8I?$Xf|Ie=*DGJzFd(iFYu7mf;y5eKehY><ip43
      zT;Xp%l>82Jm2~1jOaCs^{(Uqp?xN)vwEo0c0PXy4;tAjig0xUGuAze~mD$WeC%X8T
      zHxLn??&j|xS3M5$b^Z=;r@jAYwC<yKF}{nldpH-sLIphJ9Jz%ydPD+uxhWnnlhKDa
      z2`NiN`7J3|1CCV(o+t3a3xVSv@BoV*=l+AoJstl8y_;y2EyUdtTNvl&;3m%ceH~zM
      z2MNEsE%f-IJ-j2Zi&OM^P{&S|IE=gO^`3MlAFKPkF4_^gX<vslb-3Wr9mSZZ!-%s6
      z!m`@07(YPrM}oRjt78x_j!Y};PiqoW9>g3^%Na%XAvpNUGjT#mxIJ9qoZ=Nc*9EI|
      z&_fQ%Izlqy;nvd+*BO(;n!ydXg6N}rWUEgpTIxA!YqsMDNbTU}4Urmf#0?J|pf|OJ
      zel96%r?d*UJV_aF%rkJPWXh#CComeM(%r#5+z}weXzgHk?GEm3qBgiKx9<x)|L3nQ
      z1Q%+y*<}M+e}xQkC_8^$oswh?JmMe<JW)a`9@BJR(8Fb%#|C2fl7fFt??0iFo<YYq
      z#QByePl)mzBi}n(Ty(qi2lf;XutE)5v5G85C#z*)a#e#l{yTn1lpxW<SmU0&pE>df
      GApbAi(;J!q
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_dSyL2O6#nioL*q=NvWN~KxFiG^WH3e(0ZC*LQ35IiRMglE4KxljIMZV=i>Wfp
      zOO~pb6;oDHNvg;~Dq3YAXjOuF%zIw*mLHIpJSO>Wch90TVp5f&=;?dzJ?DJ)`_4K2
      z%U`#C1h5k?D{u(}CL)R8ly*T2#`RDlW|$X)v%8!229NX6p~uVtJ*<b!Xsl;?Cal0M
      zu--Zx)*=(Z{?RG!DaaS7zB@#Sp219a0iO|%C-hjKHm%16*7aHr3DXD%2XwPVK#eD?
      zaL$4JRwH7VZ320<bwdK~j_8=~MIP3w@WQ8Hy+Bbq#6c}S$uM55!`d|vC{dxHK)!8I
      zu?7V)p%Kyh64Rr4Y)~5w>jK5S(U2A%(qe{OJ4UxTX%OCy-v2-g!53;{V?C++33zHp
      z+9hmn*KA0iF^y;>uAqvzEXYPQ*wdfdQLsgz;r{uWI*qt#L?#kOd{Q5i^mtK?ZIXuy
      zA09%Df`^G9O$Lcj@d#?k9bu7zTAS<)&06YC5?opl0oO?TJtqgu7_+w24asynWV(PP
      z&B|kiat;VoItfx0bcCKEV@3<pTft6&8tFBgE-@`(PRcrKl6BUUI_^aicByy_yNPZ>
      zH@hMs%FZjeYwJeZeRv#u6+9uZ(E^d3PDL}QhC)}#lR#;0T`s_W+n61I&THwMmXfuw
      zDH+2m){bacHUt%I@!~18E7(uo(&VT2<0?AP$;wMarlVuVxK(D<MqrD>SE~9Qkg2tT
      z1H_&yDDhF#fpn{|u`(Km*$6*loA^DUa5R#|h26Wn10%{R>Qm8=BLevhzdsxn@MnTd
      z-^!{ScPKh@k&&l0Gc+l%{a*c3?ay0>G*hROf@cJ_-L0E-EIDYLqh1VRSjBOi;LTD}
      zboL2UBz4Fko4mn@ic>gE^^JJf^o&V-933a+&a*1cLK7%3Og*M?m<g06gIS#SIQAAF
      zLeLek;)>JkCwEnh<1lM6qR(>DRAW+wA-gPJKcCRTap`+bMcBeHsm1%OV}ppOh|1fj
      zX=OV56r4{^1FM%((}3|MEi96IYBY;e@?-ID7ps6^ORJW}(VwOnURq8xyBiu;nQGZn
      zhP~i22&B{oayL<u2CKuo1JOh*q#rQkNcAVh%=~IJN+z+Dg_g&E4_y4?aOOA2B}X%V
      zeYA6^^Qm%m)H(-L)Gwj1{x;T~SVGbFC{DkY-msj@_$-E-&jWlO<m~T3ISyeXEh>XC
      z1UA9XUqO2X(^c}_&DCZr(P6&3Xep_`iQ?O+J`q^L)@5vWVK|+@YaKbtM8~YaWwwhG
      zn9is}JwwVA0Y2poas_V49e9X=hwmG>(Fq*P!v3Lyy+3dV)pID4R|wcC=Fv)H(;TW&
      z_gX>IA|6fMZXV^St!3;HSV9)Oa^&+SBUI`XHsCa=JHzpN7Jbk%;P$6@=qC@Y7TkSk
      zb9mTot*Nif_5+?=LDzK#bwMhZ&rLwjP|KH6tNQ_Jm9DPV6iGdofwClpvV>(~tJO`l
      zRx5~PiY#L6f`~H3%zabXx^?4U=~kLcH#>b!-R!N^bu+13g1TLxZqHG-i`4D;47i!P
      z9dvZ-$*EguZrv{B)a?*U-)@0%k}G?w<~9WTx3@RI5|CxEjHlUOT$OTF>a5aLVfXVZ
      z91E|qN?zmeemw(rjU!|MsyHV6R(T!6fSuDN2M5QA*vs-Cyb4d=Lf*c-w!jJo7ctcA
      z7R?^N+v=7=zk3DM&7OG#rG>4sQ5KZ6I(;JdN^Dz_=w^=%pHp@Y1@3+G*kc>c2sG!<
      zqspJZj8Op@S@C=P$|5G5gN1TyO5p0>zu9P}{~t7@&q32Rk7k?C2cY4>qBNR$xQ8p}
      zux9fdJnn_O1rk{(>O=!e+iub;6aaXG)$}H3^;?|LZ=(?JP?{^G|6NY?_t;18V;4R^
      zH$LJho8wpTDkgD_wf6}w<5PNmMz7E5bqycmOMHQ^FpsbC9lpUb7H|jO;#aPI$94RH
      z8~779g&T`vJ(ff{mPI9QiE7#!@RQhqpRIBj=l6m_C;OUjF~o`9CmLb0@?E?~0}&)x
      v5@n){J<!U5=@%uKWiNPmwwC?y0*BCLel}jDO%Wn#V`j(3h%fQ}E?oKtPjt|J
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ@TT@e46#lj(oEVQa4Hv}=2DQpf0w}GDS|lI_L6jgZQf&`m6Ap$GOin1)Uc9um
      zwb$uOXME`RW*_ae1gA_d)6VpvKdRGjpOZj<;4s79XYIAVwbr*T@b7=W{tloG-)h(*
      z(3Y^W;TdDz2xnwGn>Ov+;f0RYlVQ1FhtFm0>68*(l((ak(z4AdQ>Ha|1R7sp*1KR!
      zD`TdtL!(AAD+RVhdjxh4Y&02)_H+ttzgY}V_3>_j3ZvjWBGYy>lgY}oKtl<Tm2mr{
      zCDTUok})eYgsoYF5R++>Z`s)ig;PD?q&#cb)8TG25w&cYkZBtEPREm`W!h&2%IX_N
      z1w4_|q}1@TKvl{3eW(!F+TPO9(tfh#Sce}0ROzV3PJ!~%d8Dd(*Im-E65*JgHmyWw
      z!{}BpMjc+13+xy$E$Id~VoW5-S#Tf~H<F_Uqvm&B=&c{`RzdlD7vgfxCdC;I`$?9Q
      zjhPBZhgM$vC_|l!WUq#U0{b^cKPl7Up5EbMY4GO90o18qhjko5Jrhq;E^wf}6z6$U
      zr@ozjG@@BUlR)jJP8>}gN72H1o0$kBx6|3UE$M<pU-O|=AT(<vr&8%zIT<S5dVbWR
      zO1V3x<2X7<d_vj-(n{FV4op<Ny{6-YdfUdg5hD>v8kvlepVHB(<mIkhiO%Rai`Q9o
      zit@c$$$T9)onj45%*eRisllhJ)vbd!W!R&m7w1_B8unUowg~g^)HjTGYq%hAWFrqH
      zyVQ?9)G6ePI<~^E=pWQ^2}1<S+%)GDX0%~c!xe$bQXT8ZWfx#X$2REHx2MgFz_Az2
      zNoj7`{F*GJQpN%c)RjP4(=@axn>UiI+~%5Yj|hkffdJ`RvrGKw!rMCDQAO~^lPQax
      zUrnWz5Q~SusbnjbB$k2gT@SN%1MDi)xx@~zQ|^$G^nzCL=xSiM?ObgVSGhZDCY?E&
      zK~lp_&h)B=(}Ox@F-4LYms(MNq;N|EYaCcrbfI*l!6Is;HY<l{bGUec<a@HXO<gk%
      zVggk@%yTY6;~{6Oo>8&|9k=lwJKva_lNLMmXfa;icq3juBf`Fq4>f!suxFFLzG|CE
      z9UtK?r_N4YkP9v*S>nQqY((z#;XYf(GLt@h%*`5Fv#Q-???nEoiu~cafHx(e5U>xQ
      z3+!GCT2%crK77HyGNJ2=o3C_8RTh6Nl}*Rxc~dRlJuCgUrdwN7p-{(pE#qHM4{Fr%
      z<}Ik!f^%|+os+Z3vz*fHc!~Nu_|@iE0o#`m7z+lMQ28@<{lteY*v;R5p5W%v(T+Wi
      z6g1@erhFg2J^ZRwK*HqROUd7jO-l$Z<G>itLxasZymIMi4h@f$i`ubZcnNKPP|*GZ
      ze1*qX16@zBkHV9WQQgS%^q=Tj#5w2vDSVBB9~3)!$CaMv37UCEPI+oPWr5a_#%1)4
      z)p(W=T|~cnY0qJx*u1}B9#ZDsC)h=k%VYddzLqe&h*;iJY&HFBOcjVQu^uwkhYDOE
      zEm0goKbmk6tr+62xWd~oVz`Po`D5Z5hiDvGyoLL?jz_qG?_l72OyWmO;Wujhg&Bv=
      z<1S^i9Hk$Uhc{RqL0^kR8Y9USct*T&Rw;#pMD#h7U&r};{knJxT2?pyf^+{MppG1F
      zFsG;dkLVd++(MQ+TDKgpx@(d5Dj3@YC8`_3JQbRkF#YR|=ZlQJE5>oAwb3}X-uO;Q
      zV>Wr-_#rb?o(Gqa7z>IV%;&I{U<b1~yzAz+Lmh!r&vEA|yuo{v2OqeP{W*LR{LH<_
      n)cq0fIefVqM72ZoT~y*8npu_;c)&8=EedLIC8Mt$(!Tj0c!-$j
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TUQfT6#fn*Cd83T09%ySXe}f`2q?Bi)M~hBFoJ@`2D}Yn2%}*_lL<m=wYF7z
      zzhAZOa`mMzeP~xT*s@mZTi5E3>gso9MiLPEl5=KXzy0lfcK-SIk3Ru);Cm0s1X@x?
      zK5|i=QzJPona}FxLS%k#dsjr8HzQFsrzd+dM$XKtx?$!#a0!I}$DwcD)Qp^-F?Nos
      z>AWUT7V8ywBL29`P^`C`>ZB?l#sq3+RdYJ78O3Cj#{|6llWE=1&4U8v!O*CHt0yz5
      zc~B)#zh+P`Y6L2Fx9x4)-PP97<wGTE71W_#V8ebVQhhLP6`WR$RAj`=>PD(NG+F^7
      zRp7=3fvUJ}XoLBg2`zg{ok+6~e>{^^)1zuum*0-i9UPBJP`<wTq&91^Zc_A=K&=&C
      z&qQKF%Nifbu}vb`;=y)-ZI7d$)UuJ@zTsg_<;{lxw#lEJ3Z6w13(rz6up<~+gH6ZP
      zBE8#(Ai^Gm1fE_uiDjvv1-k?`={cMBeA3jIf<%vb(I&8EMomv;vNPIbVD%*U(1==@
      zs6)YS>>=eT&1C;l=Cl<cCUtuiJSTM<s5_;mr04|&UD(IIQsj(C9V;rfV`$={mNdIP
      z*w3LTildoKT2l=lx^Ym!ixRdnVau#AvU!IUc;J;;dKC1^#MR8wXCyf>lQuRF`UUE&
      zurnOENK{Y73{y)<zWZ=gK}@=NIqS<&k142tkNlg{dQPBq4ffZ4FPw0XX6NUuk4H%j
      zJ0-AvjUX$!FQ3LlQXsItp#_k3<#TFUz#SZmg+}F!ot87E5HGuWm=jG3PS|gYy(xWO
      zz9Koa4u-~~lEkwL1~KHp`A1WnH}!Pna5k$h#Pyu%!#Suj!-Vv)Qg&lffrcs8N+@}4
      zh_}tbvC^hG-LochT6*i!B=&gQL!%pU2{RtBq)MwzR(hFPfq@LmRVO*3D_*cOGNCcq
      z!&f90Qrr+6a1g9&v;~6E#xU-~94>n>q+njoq&u0;7<}s0Hm>E&B-v|b>^;HhSuw88
      z_VD0!Qe7NZTO7^nY3nIp!*vhd;94nK^rY2XPQjaajl8iFgX)at!`ry&!3{zv8rq>`
      zRksA1N;lV|x=Uzu;P`L_wO+hO;DPag9E1Z>^nrp8@e$vnIy<Wwq_MR$oa0;Cw-sfO
      zxGVTXhWJ#Vab<&78hY_L7ec^U=~n75rQcW5FSdRHFTUa22hPeww-vl9x$%u;^4X-;
      zugfJ|zj_U|NuIEsb6d{8v~o1a_05}KZUXD%+vO?0HbSA@CVq8T*1)DER3`k@i}3%3
      z&A(Dnh9~*!;|Z=Q1$!7!N<l|1Zr--??&4RY3?v#D$W6(uaLXc|UP2(jbI0*r1w1p@
      zT0rw{nW8b_Z(T&>uhxAo%G!TGh1BnJHMk1sblpXBSl*t0i0%Ro+{YpL6_u7hqQ<uT
      z3EptIqv>?tMg1d>z5<Ti$AHwA@hq0mj~c@2A-G=t0rsI5{e*u6J8=}vTykv~Kqrpj
      z0FEQh2mdmLpkf$P7(oUv;W{NZk+90|v`eJjamHk^azT)SN-W?6PLh;bnDiYX8O^wW
      zQ@lxv>KMo7J3$-SpQ`X8M#EcKNw{$ZTt6LvasHm=vOUMp=dIKM+if{@mDNZgL&>Gg
      zu!2B$IcXw1rOq9`heJQ}Vz+aHC7iMX$_b!>6Hu_iJ(S3qD0LoK?R;rXXKoP3`5uQ(
      zPRRvkKJzzDF5z6ly@(6(mL&ueE{W#>l8Z?Fj*DeD&F_Ib*kUOq*nt}lFk940pXzo_
      zQmTO5eVma&3&=mj+%L;THL-qRmV9JUjU1ZTf>z{N&KwT%?8Rl$zhL3sY-4kZuI4xl
      zQzN<J3v()%Ak&hX_9a|N_(cI%AK<M;yyJhjfcGW-0zUSCX5R-2_`?4+?*)8YL{w?@
      W>MCEzHFo4`31jWcbl<V?fA=3aSzmhq
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>e{&O66g@9(y6L(U8cKnRC1?Uk3fWSuQd1G~qnH{RX=@-v#BKVTZryA;n+;R_
      zGJXXeC1LE0@}Dz)D98KWZhn*o|JmL5_TF>uIrqNz&%b~C3E(y?1p$U=-EQj##!EwQ
      z@mkw4-5>R%<;4}9AGvyVv$)Z2>~KfHI79M(BJ)Qsw_9e@j+PCp%^3oP9K*%p>6B6-
      zmu8r-B`(8kQF1p7cVEw#^@8p4I(H}{v|6)F+jQ?SjKvdWhVg83mn%5KaA72B2xl24
      zmr~2ArIpmuq6!Vu8p1eFY^y%fg}6s&8FpRYavjsIrxWE#5T=G8CK%2ZO`Ch7w~ZZ(
      zl!S}Tnqid<#}sRSGZ?RCL{Vz~sKyUn65dkqKErvb#%$_^QvZ*NF?=8@xuoJMt|^Ex
      zTs<vempghczq!c``qJ<rJ|fKyt*A$WZG@M8inKhfB8D3Zt~1QP6I@1Wh$BI!)VaHD
      z)TO<J5EiKThGFeBod(~H^gFL&4$}fUr9sCc^@Y;>9?!%RLw1&S4tUK?D_CNf8P!x_
      z^T!$#gh-gXZ?+h&j}Ucw`e+&yZr7;&<VB#Gp^{%37DHr2_6bWEF8d9Cd%hB7(Us3d
      zS5%rB(&Y7=;Zjf3+bPs+3d{HE7>_5a86hdF;Zxid7Uc!p8qIXPaM~Ba7{iwu?&E=q
      zb$q4Zu7;wpG+48mHceW{ZF)0F2KK5Lo>T>2)0vXi4sB=JrbVh%Y+_r%7LD*AB5N6~
      zmWFSzK^6*;MuV$(f{KEt4Ce-c9<PRHs8S@k+vcS`>d)|b@f$qcbN>jbC}BE;@2D}6
      zYDBEQ*I;0WhRirT<TkbK)-Y1<<PEvxZTVVgmP^<b5ah~<%y-t%%M5`gIuLm-5KIk^
      zgmQJO*>-At%@oIZsz2H(As^SMg=2Id25?#20Q40WBTDZHdQL*6|L@8BQbYk~j-ge;
      zQ(c_<4Ku&eMgX()ROt;G1dT4%i*gr~NM~LG1LL%slR!Taoq&ob7rMBz@EY@vZgvn2
      z{w$#9D&b@oH~&h~)~z?V{R(#m9CNa~`&8xw;>!?v7FUqN4df+f#KXlhJ|TQ!5Q9m)
      zD(10*&!`enQJS7Y&>F2p%_<SDCKpaHO-ZDORCR$YSeNLtUUVN_l{PU#yN54)Or740
      zFoVh8apxEM@XVQzn~x=o<^}jLOdJQ=5d}RVVInz3$(g?~n><FWB9Xetb@1>NGU87M
      zg*R9qfP1x;shX$c@UtP3Sf7N(z$e)tWr8Gnj8Y}cI(YmV<u1MrKkwj$sJeq%c#pn2
      U*dK6s0$vPZNBh_ZQsxi;0Uzy|{{R30
      
      literal 0
      HcmV?d00001
      
      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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
      ZOa!nuj>90=+MlJwnjs~=M~^)G`~L!a66XK_
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~T~`}b6y28uCQOH~0Ih8;4Tvq!LRt_i4WjbZMgmlzv;k>5B$qIBn1o~oLH#AZ
      zxP0<eml~?9rH`)Vk5c!Y1QIAL^KkE-bI-><`<!$0_dmb?0pLEq(NH6BC*ye0ZFA3z
      z7G%oHTkb)0fB4>LRPMXc>3vr^X_=mt2Tu!TMrsHO^!=Yf!OA+_E2iy9ftvV~z?H<?
      zCJXVYn1G)1^0{n5#?u9X=7bN!b1gfXunI2kLt`o1ax8aTAkfphA`qO+rU|1#p#5B*
      zAv6ip4-O0u42}*AJ<wsG#XuOX0(E0$PwhRWK(^^*qDyYxax$^rm3q*pfm+lFG$kxY
      z&U-r>GQVtY*vuoG$fitt#mrmkyDY5jS({Lx^y&SS%(+avpy9eetDlFJjm8&FZgd22
      zLm_!b!%cykZ=+Akd~|AhaZ#E)>FB@>wR9PH58X^WPq{!>PwzQomQ8)mV>)i3N5gG_
      zjthhMng)8&C(vLOCW+k5dns2k1c_b^;jX~-9n;>-=67T|!bUjmfu#e-HTQK~LyLx}
      zKwEXuoYyj~N~dE0_f@vKqIJlChLFNFY+wWrSc{Bwm(7eHEFQwBz~xFXMtXAG7Ro4Q
      zU<@Cz8E8~)t2WZ$$MtKtu(2&uZtN01#-|!S5ooN&RB#PUV3M)SG}Aj({jz26s){ph
      zU`By!W}Im!#YRgfq?2*C)a7FXadlbG%aW8eaknh?ZT~qHxp0Ko)S4_g=X9)15EiQ^
      z(0PuNQyoFWdQT0Z;#VMYv3{uy=-8HyfQa+7XWA?@p`Q>-+~H#qD-);VIaW0!NmGTw
      z$*gUYU)A0Q*6;-x@|>M)+S>Gop@gTaJX955<qA~<te~4M%^Tb1IC%9GYIw!hqEgtB
      z@`PvE{zz;fts%wntY}QyW`U?AUXWMjH*fAp9T`{}wurN$SaM}x8?UKJK0LXwDR8U$
      zEjaFms@5u*ai(6PB?QtLh^$4_SI)pLShqSem*X4BE~xfYHmh#ZQ@QvK*_XTU&RAZE
      zq0B-ogfH1Rk#z;)z`(l7Twlt1`IMZo)Kk@d_SGIxETEHv7~s2KgRAP1<0-7Bl6#PA
      zJ#^k*^8Xi<7SM16BN=WyMDx#R`-y@YT;{5C2S)j>4&jO~1r7PE`Hqz{!KZ<aL><Ga
      zF!{bahj{l09ZBwyxw}Pl&i5Db{<kW`wPcvm{yzgF!M-C5BoA@#R}B7u5vBI9_G)br
      zA2io}S62N{srLPXK_!3q8^&w!tUahcre2K%+k<rb==*>Fs-PW56A?@>;Yl=N3aywX
      zx*2ri5pLr#207Hjm_-Z;-ppYE^LW8^i}GE3?q@h&$^xHJPyO=Lonw}bNK<=(dAG6@
      zPpBQB&si*Di7dp>k7degsreKuTot*4+y(cLO5zQk{m65P*E(PR+>dCKbjlHhsxc+X
      wex5OuefJSwCc~l#^9?o+VTX5$$SR*j6vBHv7qNfV_j;A@?i1f%`3S!L4@ofch5!Hn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~6#mY%W#~{#Ew5^e1w`!w84xg0&_oDEl13L`7qD?CH|>ydCeFi@y}!bp
      zD>p1O@j+Y=-1=Ai59+zop&&?NCYke?d%o|S@1FVb>)RoKS=?2j5GqYO(07g3hVF?*
      z;F|uP-d>owr;E0)ueN<*d!}Pg)(tBVD&mApc-AuPrv7YuS2TQrD(r@{BX$VN)-s`I
      z$+S)XAt6!PS}xZK@fH56A%?ybRHO*8Qn{`njeZq9DP(Y&&o(T_7KFi4xptOeF$uyz
      z3JLTO`fH{wo(3<sg}Y&FTU?T@ISs?A8?GtiC>i%#rbn2n{r`B21g$Cj)#G8}rLr8S
      zw`F)OIYHR>8qennFR*xS;($y}h*yDOG22k-eDCE=4HKADas61kz&9=Zk?R_JUJ6Cr
      zU;$YumTHsX968T90k{j_S@&JjZl0B>lU>wM#cdT+g!}~)KWEw$rlAx1eCLU1ALETM
      z`^st6BS@BG-3i==cx+0U)7@>Dmi-Y@Yql-i70d8E;i;G>OkP0!*Dmp0hueg4zSS6S
      zA}@%%TK0O_SJBJwBu6zU`~aECS7?>$7hF0*`ZKa0Ij3Nd-)UJ-3a@1x{gl8E=Y~5q
      zY)3fa>JVFU@ajd#I$Ppz35k3HC+R_I2qTa3fe40>!xhfRwoZyaA^U+7onAV{>3<eq
      zMLsHaxMMl<cx);5;61YWOtDpAoWk6Tr8f!{q<{GC_s{%(7kHSv01fcJItZ19Fu=A*
      z!y(aF2Q2DR;cY5ll&RuOc#S=U{UXL9@(qrqpt<UI&|4&8`;xAD1Y&c5@e|IDuzBVy
      zAW5UAgw1t@&EY0)F*2cqa>OtnGJ>y*5i|D>P&q5m#3_NaZr?NEw6nOwRtqubuz=(r
      D0f^QS
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@U07S?9sj)~a6&k30i`yzrD<gr3N*B0r%-i3(l#p)3`m>O4iDiJP8&`zIcfQD
      z)4EnSwQh4x*ZS=~*qqzcwE@Iw-S_O~uDsgyZg#Wh+1+-b`@QERB$Rf~11IPIzW<Nk
      z|NDIW*?S)V*oD6-C=u8`W@Z8>v{PCjt;aJd!<r6E-Pv+?K%cS#`*l-KX^CEKLQgAj
      z3sl;S3C$b}L`F{NaZA7(88{G%4)=ESgakxbU`<!jOk0|14Qh#u?xHCOR7Cf6-L-qS
      z%_fh8fG617zf2Q|dbqWvWw;|4jE4IAC67yBZ7>`Sbqz$Kv1Lx8SQ`q4hx<CB1BKI4
      z0oMc3uoNpJrf^@eB88x$q5a|hflxFQ91aI1n@6D3l#bD>ZriPlWh4UKM%ro@DBEk8
      zhIKD_>W4ZT2B|VM71t*%gT5))B5;!}Vk86M$nuSVyDK@Wd*Q-16}RFxf~s#ARPY6X
      zn~P1DC-qTj$cs8`D`$A>Rrs(`!482ftMf6crvkxHG^%TS^P&MwQu`+Pwo^p_Ei|0s
      zrNFlOhVC26+xcksVmDe9+#yi=|2b9Mi9L**k+u_>%ET?5Cg{--5AG6JKcOX#CsPyp
      zsK2;Qyr@N+#K$Ps)H{*23#Q*n8Rl5KjK@9s_}L-vNTsxCCmefmpA`KP9jXsE3`(q>
      zD!LG41&!&}fHu~Z(9%p9QG^xj6S$>Nk&c1RjFDiNJUAdwcU_2We(LeZr6RwP_InXR
      zn|vHp(TyJFUYnfMO}e^?7*;uu)6Y1D5K+;G`&r6X(lO3FGXvK`vSZ$_VnF&)=J?^o
      zAPy@yBv4gg51W=grl(ZIa6~{kB^xMmoS|L`B*)fXfus0}f@AE6;_6CUDu(eOgQShp
      zixo+5y0*RHh=P$7?d;%}0UuSNgGN0BYM0ElPUUnc7#AoR>hwZGlN3CuB7q6E3I#)E
      zoSi`H?)rwIP6bJU+a<=S!j#c6*0>xsErG*)^szYN#-x_;!j$SvM7&5NqkuEUX&zIz
      z0%1NnMn_Y6I<4XqPIGL~TIY1`OkktzS0@A4@G}c(OsklY8Cy%K1Ict=mx6~GsMY-t
      z2?xEHm3U?m@!(OK%a|w4<Z07yv4*7AkE!^&%xh)A>u%i~v&QA+ITeq~%W_^irvmG`
      z4O8#UOpNHM0c|9q3siR}<62@+OBs^R9lEV?gN1&*e!lK}X1ghRKI$%ZfWX!p&jM$b
      zP{t!?plm(?|Bcz5(ZPyJ=q7V2Wpbi@nn6n*MkCjm6`Gl}#`Tn38e9mhGC_ut5x&TZ
      zlE-wbI^QORp)0HTMHMf}c)8QYj4lseQSmBXqo`qV6In^BTE9XxoI7VTyn!Do_yKhn
      znjwFy;zzQi-6pr1R6D2QC-^D-AtKo!EBZWF-(HO2XDZ&3f~E09(&S+O1>RQhOG*?>
      zbR`oBE<(8&RJ?<CSqT|)A~|Xtx3lSlc3W-`7QD^XXyHKOzog=_oVm)lmhL4~#xB9w
      z8L|bOnzs4#UNL<o2{O1RnFKH1#|H|2%>uK**)!M9iHZ+p$t$_&%YOYxj+o!DCyNJk
      zem1P0UmpC9vGNbuv+@seO#V@zxmY$o+*ipKkIO$x$&as*yrI>+qz8YYpMFj`Z+|kA
      zitGCf*)&zfOJ}Ea8CyY=T<u;i(^8a?Qb?7+L%O_(miHA!v|PSxis-eZ*A>x~q^pYP
      zYSK3q(KnN>DWcbtzNLuXKnz^(#Nr|*Zf??>Nx4bY!cU0*C0><ZMcEzm*t%m0b+LKe
      zei_@B&=6~!M`KS@7R|lQS?s!qHA|?CRey0FcYo;G<DL_<@~*9P343Fu^SHOI%vYL4
      z#~!6dslubLVv}TFLMT?fe;(l)C5ta-(JQ5WHfMAJ4=iG+1c#(t^iARd{$oG+k;LB~
      z{@+pbe}?Z5<>>eM`>C&N30h1_$FE>)9)_cC4p-&bi8hbV<Em^KpgE6oBLN?>A9I*<
      zP{i{xFE}#gzH%ue{r8nK0Bv5MS4v4+X3T!4>Um6N@lam$XigPDEFhJ|RQ{sN(OKcE
      za8;HO#}Z~^zKVH#HH)w1dA2Nv=@EuW3PcN$+HncnePs@7jay!xd2o-r#?6GBef_h?
      z-eD9<@C2XlqKVHQW;VhK>ca-y&rC=8nb(h<-2c0{^;>ZmZEU|Fj^H4Mcyp9{^B5lH
      z(!Rvidlkp=2~OZsoW$RG^AGOAe<F#0VG{r53j3TJv4oqi98+Q)ro~3g2tQ^;8+X_}
      zctqUCHPyr4ew-15I4h3foQUIbaT-sE89XVT$J62soEL9lP+Z2h@C_oKajFmB#FM00
      zhj<F(tj-PM6+DgevR=gnJVS05c8PQNHmlo>Hj%=2cvi}hJ&tEt;bk}|G<=u83h{5o
      zbJXG?(pG$rZ{@^#8=j{=FHvpA3p}f!mG9#MpMKg^slSu}o|V-sqrQlX0<7w8hj>|_
      zXAVZwB3>7`f}{NFT`qjL&)w`=#E(nhWUAS16CYvh0&eA<L$W%ucr%~&>g99iq|xVI
      zz|Wm`TKSd0#m}E><k8zi<>YuLF@s)I5q~X_H{v3{lwV{%Ut+djhQW<Bh1YPF_vbm(
      zWqey5uX6FN!Wm>4EjbHP^lpKg8(9&HJabW31n==pP6vKnI*~!IJv)FpyOo)sr3GAJ
      orB?qoi{H!OWbvo!t9)m37qH412+Y|SRQtUyhe6=4wnv}*50NNkKmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrYflqF6o%g^mo4jZTW%_XMJu$$c4+|x%SFn~YSVteG$F(fOBw5uWlQ!#>c7&c
      z#Yo~0@JAWXY!_&t@@1~)yz|a8Xa4;C^&3DMZzY5n(pAgTj`cHLb9lwG4fnHFUz}Uk
      zc-__Vj^lBA!*scA>8^3ci~0$7By=()?nv9NyWDb&niVbUrpFmV`7MUA!tIn&ek;q+
      zWeHh^c$<hTFT330wr=_kC?~v9F%8Rb*BClt@iIf_X6=Ye=w%pbdrlbr3_Y3DVk)zo
      zN-xP!FsMMq5JUG$pfnOI_#{l-s%m?#ZCKT8yxarQRM3TPhW>(K@uGKf$nE#~p-FdB
      z3$==FmUY_@^I)+nc90XM<n4NepSpyCsEsoW`SM0h%a^WpWOQIcIJqz3F~iJl_iY)-
      zn8bvz_C$e%FadBs83b|uE{N?PlyFMist~^;daHvR(XDdVCr$T@#hXw(*D$q$;ka3G
      zbV9)lVif7tnxGhlFC$y=Nl4Mt-=v!J4D*QFGUkwxkS4Cz5u2v&I11+RoNNU?WGv#P
      zgcl40*MZG*6)a(yBF{vrl|C{|w?1O&@R(QJY;c8EV=|H$3}c1rCvp%Gvo!_lcunP?
      zpPq7yP$XNGF3aIog#>pYDoNyo#O966|9ZI03}c(PM?MIJT?Mn^=JH<6vnzbZ5H&X5
      z{@qf71*WJ5I_N`(@IcfkjZ{$()OS+b1DW>k`5#_H0lgPc_SL>~41B}zS6T>Rlv<g3
      zV1d3x3S<5%D3Pkt7Zzd+4}GB`jYX`Qm_5g%#04hzX%P8=scW@9-_j}>TEieQ5sIVD
      zEIdV&X2Rw(Op_|rJYv)elNo;wgcIK})j<3Utu_61(+;rXD=Gds94IkCEXXg?xgsul
      of#kl*8qj`X;T*5jYy+!J%?)*n#trP;)PC2Z9lg?i<2%Uz19v$uW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>?N%FA6x}y`Oc(|!X|YnZ4Hnt}ZBkII2v$QfO-I56lYpjJaR}3NXqd2)Nf-5H
      zd<9)9blJ7k-+ibq_nk~&<iq@!+<oSrefHV++<Ei%&%Xf7VqZZ-;AYKjr*^FuR;p!J
      z+fB!NnL3!iw~(?Aywr;Qa=m5MYz4gn)Bm$kKk#g~<uu%h4XfU^1tLaP;A;MCO2No3
      z3XEipoKa5aw@OCNOqbV-x_~eQhB6Je<yo%h)AUd#1cuFmxmDEH*0V;sY!plx76O-6
      z^vafQW{kB*dT~`Z%QDV}MzZO0`pk<SlFNj2uBhwX-R#N_X7pm&mm(?p1frQ@N1DX_
      z+|(_zRWS1v8B`d|>Yduh!6-AI2bKwppVR%0-ApYzUdd}ZZjC-fm#THgb-V`xJ&CCe
      zf!<7Ghjxz(jGpUV6gLG1=92TtxrOBHyoxv`HQd5&f&Qg{X*7}d&$Dj1wNy}QYGZ&-
      zPHE_q{S4<F*EZXG+jg^TZP$5Tv3#Ry)i<oBBXJPyOKdJnQL27Wwf8+9Z%aW+;IdEe
      zG*U+4_>GDl%t|G9RD6ti1)m7qINO3WAgdRPw#Ai(PjR0;H;Du$WVH)CV~Rf!iz*hd
      zsNi#f>lc#yJ2fof3z|~1y|PvF?KPtKlAZ2Z^{0*Ip1l+Aj<<>=CMEN-h735kQDy~$
      zd?hgza<j0#YgauAcz9uV$HyxTf284ke83jHXHH9C@|^b0TsDq{V!Kt&0ZoZ)E>rsp
      zt1b{fCpoaQ<Bh-|b$6TM&8GD8O*+;nN6>3@W<=n>y#|w`pv;?mdZ3ouPMyV7Y~VWu
      z-*Ti*c4X>StEHiWB0HfX)7rCDY~qQ6?|E%cHg+m#_yJqo$tK%&;i<r_@cagjhYukT
      zrlN$&D7NWOd^0Z5js_bf=(qOwZI|xd4KoF4XPJUtI9nw=lN8RW%nLPiGoyIUql!O~
      z40{^Bk)5lhM!Q+HA3E}S4Ruc?DZ9rwM?-!^1~DctBv)fl5M^|L>j+fh!4TGnheG%r
      z;^7d!L_8A0G2+W1e1&*4gx@8;8p7`pkA?6x#N^ykOE04z;yRVxAe!}614FM7uf#q&
      z!o+V#{OU`d=2N9~;65~NobjXb^UY5J<9CUBiIP6iPb88CB&KJMaBt=n=2q_<;<Nsr
      zC3UhAdvJuW{+?zi{SWj%kUOby&9}>-ZC|tA3Weq=bQQN@`ZePnUKo5Ye+ll%v#!b}
      zR=Fp_bpdO9%7#+>7yR#={vEkrxQIYD((eb?eL}6XAs`g;a2b)wCQHfWiPtDqV&V|%
      jukiQ?KgO&>R3+gdYO!6e4^cnO{W!!uam?-d3L5_c10}9E
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-&0#f6#f=M?j>F<rcjzfOTgOlI}`-vN3aD_nwmljh(biYNtSSFxJi>61fP9#
      z#uulf)0sLx$%_v<+Th5H`s^R2etQ#vLhxnx?Cv?=Ip;g)>|cNX_B()E*wauW(3`f4
      zp)GUA3>9Run75q0(C*0KSV-<Vp@-RwmE4=j+65<XTDGIXBhd3d29aGy+660XUtcjZ
      zMJZ4dofT+_oi$mA&Q1t4=jD^4m6ws-96ec1*`a`l3N%^vrj_{b?tz)hS$0}LpG;;f
      z+j6D^YP-5u1Uxg@l+^Gl(W<)9(I`+qG%zwSG&V3i>O%wk1}>sWz&lw%YVL};6l6?0
      z9a?ho^fb}EQV)Sk2I}AyxDc~!IbYmP$o#UI$S^g3ESoelD`wtO=gMVWSA1Fp<%{el
      zWzHcJ1r2Qi7hQNO8;UL*z4%azYbug}hM++E+2~U;ADWFUE=rS<5AC?7me&nj#~VyM
      z&wGK+uI?)QR!rS8O!#mU-5R<CuAS?|)ilt9UV#RyP%e5g=}5XD(Q7*T1zNYw%tki9
      zEmOhMy;1O?6@KMu&|q^7k@K{4V$x1Kn=V3By}fB*M7??Wwrr*~yv0Jh+-#f9W@y?<
      zM{P%@Rkk-VW?&rb5}nGGerjT}$CX-0Y{{fEp&`spi%<J7su&u@Z3B0d7o9!p8tRx4
      z2w3)xnXyvAoZHsH<WXNMXAuK;l}#g^MeHPdDpd|%b-_IY8gwPyH&73q<U5;IL7=}1
      z_2-TcQ_*A@nvCRgNv>9In=7j&&`|~Jr4FEdjWP<Jujpn=y;^3<H6v|-%gku8`kb}!
      zDO!EZoNRdxSf7_TuS|!AI0yT<6y@vbqLp!5bsZmT_=sb3tTB@@3k3t8V3jn`@4UG!
      zeMlgsfjKoEE0&=QNNiA(i4^4mr5h(_v{Lz#%}@!<hc)<hSgdz29<2Jmgq6-?0~wHe
      zFFzJ(v&s8U;#a`V;#V@{NUb5OAaVk2UD5Lub+ELTg4I5=unvbM4X!J&9RnXIYJ5xC
      zVm>MFTI!E!K0RdviY9ch5o`H}*CL>PCrW<RpYG1?<X*?shgYa)@N~=71{x00u<E~X
      zfY*LT^G|%JK?_$OcW`VB4C1nT3mWoY;{6q#Jv_B4AhALq1^;bN?*XpXglnb_(Y{K#
      zW84$)l+Za|7pN=Y#xv!rb=BW@fPp{MO=wixN4%`!4R}i!eulsyMpu>m_MezMz*GtE
      zg!j?szIwi^_B^#;!JSsP&6-l3O^s^J+Vg+D?`eC1xt^;p5IxRpo>>65Nyi<I?KDp_
      z%xD&!h@cO17{)#3eIH@G%bOVDcz_h<@fjZCb3DSAeE$l|_y+IcIaXYD7RwCKB1UX-
      zL7Olc((pAcb#hjZr&yp=OMhPw=@A*cLcB#RF_JLP%apwI{+PHrEd{ZMxT<1>xC`!e
      zJ-=Y?2MXmPdELu(Hw2@sPzgcc{i?>%)5eLa#_T%6DbE{>Sa}{i#M-J~l<?uNFb|OS
      vZ<es7qA9`lKPk&mB^M}{Q2g;INIx?L(rCgazf_AHr%(7CJPP<z*JAfy`6B??
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQfT6#foLm@tkA0o2&4!BXWS2}-qs)>bZRY5*0)BDFe%A&i~O&}2rjH|@=}
      z+Sk6hR##V_eCdN-ZG*~MZJ+z2+J0wdBp{*f%gmX5_Wt(X-@eSBe?9vRz!5x9P$$q;
      zu)WMJ{kEPd8+or}x_2|n$NB~`#<H8a=vZd{?wG!`WZH$Yf~Y|Ezo?HcyM|ph9lK*%
      zw>(3jE;}NyE4SHXB0F+YAYKfS1$N~85IonkGV~`ePvtGsHr>+#k<PAZf#|R^Zz$L<
      z&{h*LjvWFGN7KjBM+egV{VFsxYe=9)p#D^d)YcjJv2?qTnRH7`>txq-1Bj_1hI$!@
      zX&d8San2}B>2ns7NaUQnZcXbYQ+|iSSm*4J3`!kc&KpZEb0$463AFfWm`)};v38>(
      zg1s`5-3s;#?B5*yyiv-Gj9$KM=sc;|hrRM~K*KBOVB#gp1rBs})nGC-^$9<z;vhN|
      z91_^Kr4wIMLl?RQwwvW)M(&opylc<}iM|%cVS(L6-CA%;MPoj-u?JM_L9>F4Ky$TV
      z=k@X;i>4xtBQj4lj(*mC3k(_LF%8G@Itx=U+$p`_d(O&>0S$wY)#pXnM6Jx*_vIID
      zV(ylacbRD#Z)iA;H)*@%xdJEFmp0VeY*!QNAkJtQlJPXr?Wmn+qs`|GyWlR$m_{^=
      z%F6~`K9`<DR>66;O_haV$FdljYy}N(;{tohvy0BWx!^Yr2@*(!L9X?A7|+_bY{fAR
      z3gWE0yJ(gLdTLaCiwPxhiV=j*;hP;IH|!6A_8JfydX9!s4kNv#wpI;#jF^^T3y3Tk
      zxj`d;H?Z^9O>o!{M2%2^&)d2spqb^eXOx15V)K<fzn0Ixcaq-8Ks4eMb<=)+(bric
      zCb>as&4ZM0gO0p{Ir^xUhx}`p2M0PrM*;_H^h=HI;QR++Z;UDKI>Gu7*w~-pQc-Y=
      z6Hsm2Ks@A`mOtSZYz0MjNL6Fl(#vcd2a7BsBOKR@hKdisy}}AMRTTp$4K6%tl3CA~
      zSorUJ!oXCRXpUo<G^A!z^6NtlAK_!pB1>u5+ycGpnF-C-GqWKVPNIoVCB(fKEW;Vx
      z+A@yM*rloK65$IC1(~@z>3F5Qan_WZw`Jq*NlOmU&IyU||5b;i+}J!N<hbx1<+A}Q
      z@3;B?H>m||UxhZ4Xk0<l&uIOLf;#NvQ{@{N;7_6-yL>5V$Q|tiOEAGzM<DT#?o?_#
      z>+V^>%d6No!*^=za0Tt-y%oIrP`cPNlc2Qs_sH?+D$+A6=o^eZ!X2qJSf8w4r*>4T
      z`En(xRPb6;{r4e&e<Nil{(v?Z{~tOH$yhR;Y^dPW)wZbg^487c(Y7d~8vfz$2i?io
      z6P*1OxoXyP%nw|3F$|*-BWU4f+k>;{z&RYkdGsMmJ}!`#9L`{jr*T}u1ZHs&22Tzy
      z!^0%*VG3X43ckfOzQa{KqTOT6;3=;8Y%T<h(RzaZ$Q|u3k<mu{NQ6mp+(MfvB1Gs{
      zqFg28efS3N5G6+cHj%Edyq9=4%acOiC-5#Maq73?I!|(0zK0up%7PCORo1kz`xoST
      zp5kU5$m3&5f{NEu58Mp0+B*ZywfGvbKs+ur*@YqAIAfC*9jh>B5~70lpI~VPw-a|N
      fxGQ~B@JZr6&lP<BqL&5Vix$|2UIf1MWBKYI2K`od
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~`}b6y28q3B&MVC@n1tq1GD0M*>PK0xbyv8wmvYQc9~1;Sz?12~H*~x_r^U
      z(Fg5YUv;U$C2OfqKKP?t?mH78l+c&C_nv$1Is5Fh@11}D`{PdlBPjY&ClJe7rRbh<
      zXhe%LTe3~(dGu&3HXfBnPISpO4-H4o%jauFBPW-nZ5Fous27O5;neJrBdwxYu<ooI
      z`H~c<OC<$vq%R-Iq>>W?O;*84$en^s*Y>mvrR13TXp*V99pH9+$B{Otli9p!na%?N
      zU$}o=pnj&XE&XT}=&Tt%fOf_o9UdDV9UmUKr=bNw9UZtP&^TF%)EV}2<_#+sU2$yF
      z%1!jIH$mXKjs`Rew53f;E|&JUq`hiv<q0#GE@X}Tx?!7YT`@L<Hxmk!HhYwn2M!4!
      z!*2_8xFwl|Xex8IqrrzBh2*9mA%Wh@=(nXEP0lVaOM^2Fz35S&cXiysdo0|hUEp@O
      zzXq+9qb~as8s100A7O!>E0egMIwBYlXfca3MDEz7tRtC%L_ZE-h#2>cJe#yHw?j2`
      zp`jZ=l`W=IT%+VYC!Mska?Y+BC8hR0)G?;^nz^@X<Yw|lv8e3#b$q1kjh<bZKGrdT
      zNzzG^3ou?}o5QL8s&-|z_GH$X@PmqIy{H`3z-b+R1k@~{qX_}>=IojbGg^bSH>;jP
      z^h+yCxsj8)%>+v#%>sQjB3)=55Bd&`yg=w`Pp?w~I!j$VzYIZk_hM1(<`fonWUwUA
      zkj)n?it*a1o2%doB_72Lc6xQ3f~W1*{VR(1V~uyz%~o|05+yV5%I|Y*`0)j=!nudr
      zI~|X)LTVInV_#}`f-n7e%8PvN=w;CH6~3k?xhToZj=<gOdsjhS-P;N<4XX$Skfkz1
      zo1wF(VoKSijveHv8sp$VT5QZvb<9eD%P}iek<3+?D#YGvC$B_vdNKeuR8weNdZz-g
      zsEW{274bmFvf@NrDU|H2oHNyfajWK)8CE2rkNWiSMfTyQdT%%jD%rXtMa!{)Uk%Ol
      z)43XPy@8e!v}^?1j`7wn==_-*b-2N=#u2zr*AaBNR`4KS8rpAhUC&jw3M5q8dRo4Z
      z3>@Q~6ZCFy>{}Qt<M!fE8Fyc(6x|!a!D9^nMMLxl1Wq?UXrKNO8jbf}per)e-c`o<
      z-<bLh4_%K}2t))IbZ|YJm1q4+bX2>>D_-$)@DI>NKyg-_Kr3blJ4w*9eDvlpfKL#^
      zBTVB{EMOjMSfu(gc!tmLEs6h*7FBS>D~hL+T(LZ!pJUOjC^Et$($E15DMs<pI*&BJ
      ziq~n5g5&kbuXy+m+SO3T0;_t(U*1pL@d$2oy`H$abniqZmmrc_(c)gT_|?&jn$f5u
      z##h+3T&zIs1gjfCQO5f3*gS?2+$v++1G*c0=FORAH@MGv8HIDyt*&Zz*!mm>sd>ee
      Nhdy?O{u{SO`+u!u<_Z7+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U3U{z6x}!dnCUpRZQ6<=lz;(}6f(40Xh}s#KQtN=X-l+Lg=u;T!<tOGCKFcu
      zEk5w#qYt{&lm%;n&;BTv`_7Cs(CEv(H)qb-ckg}9&0l{%djVh$_cbI0&NsY{^~io~
      zTWwkI_)hSHb+B+{$&v?wwIS_x%UfyfNezPnx&KLBI|!uLc3NJ#X1g6JkSMJRoG2eJ
      zsg_m?0>gfYEg(t)`f}ZMJSVszFp$aC1O}r!M+K()0_YeM7@5y6<mZ?2^K%AFOqfVw
      zlEBL`(sZUA%5rV5VQmJ!<24G|+6ahgVhF<mV`ayal}>Y4`djv{OVY`5t8TkB+jrFO
      zI5?EqDJoLN+Cg3J2h`Zs@V>xg2=BD4QuWmr0|Pj%n7nJ?49;pu37k1DVNd$j>e>eV
      z<;lc3d_c`~WKSTiZtG)PToSrlFmN6hHCzyw`A_gL(?kYYn$nQLmfZ;LE$Nsg`KIkY
      zX!%XKms;5<M~yac5)%qKZ^FVA_Jw6}JEt<)9y_bMk7PY4XqXq63T<fG!9%O)G)i6|
      z8`3v8UmuxRP?zhD7ojNcubI%GYgpoNyxE>&$8jlB2j^qlab4N4-BdIu*HZ=-6}d&+
      zF!2d)Qj@*EFFiVTDpTs^7PUIYqEm|~npgp+Q4d<tN0NR`PCOm#LGaLN3ta5uf1gJ|
      znws?Ld>&+x*eTN9$F?hw>Qnw&`vgYmY-GBcbOX0h)llI`9(l6j+U>T9FBNl*=@q-l
      z#0_j|*rY#4i4l7fcfldm$e<&u4+Jjs&VSsn<31I1d`;e|ozUQKl(#zqmwRhtcaGQo
      z>#>gSs6WNU*lczDx?FeEV;VaWm{)9Zmi-^#Urz$>sRzi@gc=6!gIq^o@cUcgUz5rL
      zMxVpnPQHDJ@!v4@D+39<!`0vpT;rRc!-+5o7V^o3zzR%okQLA~UZbGy=VlLaYW68+
      zZeQvmJ#IWv*eAD>xkFrfnPcqopP1|7!#{8}_dBlsh-tNrYfoT?2jeHqsDkHM+)iFU
      z#IlNZ@o^Wo6v7d=bD^A@y!RG)7BR`mJB?M$VvXxM?%~srb1LG+=sNk4A>*Hsw}Bc;
      z_?$`vzCf0%(qVBI+=tY)Kl2b7F&qXfA)py0#DGE#JR_>O!mCtqIwUW;C_lv=N=Say
      b#dfSC`7O^B^UE99n?2a+SJ>Z&S@-?{kJE6f
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrYg5xe7=_Q4OF|5{aPtCKv_e~K0~JIp7b!QZo%RDxXBfs0A*?k_NSQQY>c7%a
      ziz74s0DqL@yJ>(9w=c===6%neefH$<zu$iV%;KGd2t%gg`1+x7V(2w)`mW`D(d+Xw
      zi#o4+`i{SU$W3p}_PFa9o^`^D#u2YcXlF>?(YIOmxKp#LPONO$K4*yJHyB0=*IP>Y
      zjVwclBV-v8H&k4h+2#&+4Lfi^J@S%iTaM+eFto)JWrp_k>H(L~%`kN1J~Db4x-#kc
      zbY?L<yP!ZtzX}Zl44q4%(onn*ps)?6qVIUF<y5kXau-NbMF%<=dJC4ri~i9*cRv{W
      zHl0l?R87M!8?Ghh;bKR8FDFbXn{|^PdxV0hJz^LL<gKcnFI{|5(1tPL<i3Q*3{%(L
      z-^f70IL3svCn_Y!1i<@j5yZK>Al`DL#8cvqNdOP%vi5R>x5B*uH61XXXj1V#%hn54
      z&C80tlPabVr%JEdB*idzUfIe|LYnUWD%PBD*$3QJFoTSQSps`mv2Gi+nu-^APPRfH
      z3g)pO;Uz=gWnpt)6|b;Jl_w%=rB4i#t+!YTBAgA6&}vLU3jH#cC_vG@sF<y&Sj8L4
      zgK>P!9YT?6RXWeZwTOggAu1{4gv9!l&Rad4cgol#?$M7zVOzztIJvS@^<9&1St4Yk
      zw_IFWz`z8hppE|N2p))((nu4Lpm#exyP(kbd%-_1s(|h@sJmLvDf+%+@Ea{eFicN{
      z-oPCF7-@_ItDr{8WgslX7#;>fMH-7*EjfLP(c~G%cWDs)iHS?Kp1{&F8CpR<K@p0>
      z%`QAejAp{-Gfa{yr5<s53X_>&4#>$Lm}nsJmDZa6I_V3r6)35}SPqq#Ko<5FX<tzn
      pJ40$$V-4uPFn5aATDF1ZrskTqLE{Ftu4=z;(T-hczYQGZ{{v%6FlPV&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZF3V<7(KUdn{KzX4Mn7230fdYAxkP%ODdG4K_a2CFH~zp-KMv3al6~uY?$Dm
      z@h|A8X-8(%&-^IHb2mFQHIXm(ZJ&Fd^PK10ef9d!zW`+My@mk+v+g#{XV!DeY{**E
      zw}TgEYw^~SDO-WL+1!05Yr!M=qO>R7z}~l|uVF|a{gz9`Rv_Jm?YVQ?meZ611Ep1g
      z^X1+vmC|ZXVEo5!c!pQ=0<q<qW4m^6S70!i+7=ipczaUAxWKu-Kru`Rj4osrGYd<Z
      z>}?$erVPY!R$yc~LOPc$hlM(pTQ@fY-*)S{)b=QdX<!&50uyE1m21s|UFmOGyAH|6
      z%U;cLwk_XQ`{-~uS<Nd_da+fLhXHGCXt*eFHiWl5vs8KWMaLlCQ%v5~aT!-MBm^$^
      zmar#%bG5j!AuX;9ypIo9v(KHtoXXZmzUWG*a!$upT-R_-VD^8(!$<>3q$o;V23uA=
      zl(!VaJntP?&c5d#$h}0rzU!F5l**DZVB!{AM1-ir)5%nqvX#&@ISnx-?S}@qVllxF
      zc0(ZBr;xY$jSkVITVwYr#o%+x5lHmGI3<R_B*~q!EeRx3)x1vMFB|w&6);?LJeMtw
      z1zyJt0;da!ETZ8){rg|%<eRp`q&f;HYM{d>P9h49)o2)afO{lQCTrG#)bS9XYbcT1
      zNnj^~fk!AalEpP;WnbW0w^1WGyA_Uz=~%&33>E5<s3z2I-M|Jm*<I`KP`VWCW;arF
      ztrsb(g(iA}FE!BF7kf<<cIioAI|jbOj=)&pJ(R5uCiS673%$s>7^-~IiKmL)Qv-LE
      zB>JY;^lS2gtsdBgerC%kiExGX8RV~O02kEr<SMSb#CeG0D0F@w3x8!Q3K)M0V<&#*
      z2$R2I`d1zd;2n-SXW(Q05wbWRo`M(oAVXjUCg^Pi^b^x5sAPKn2$$xMG5h#N8*|#v
      z3VLQIo<72jztcRr`46&xVBsXkOh|8qH19KCp6CT!!YZz#80JiLaB&-p#AgP4#1be4
      zX36XmG7(t99gd2}B4@#QEd4tc+Q>26FWh#@83{j?Ls+8|7QqT7FHaOil?fF@>Lpfo
      z;-ZcGF+MxO<M>(|UntngJIC1KI{r0>HoiGYa3<usj%j-7D%QIarQRg^Hl*|2za5r#
      AaR2}S
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOU2q%K75=UzS&mpk{99wY3C1C{WhXAd&QEO;66a6FB!L8_CX}$2*S3NzxvLf6
      zgr)^TC@oD3v=1pTz%bxx%M36R+q8j{pBWyY(<%L(zICQ=eeY}A@7%p!trhhlebC;!
      zSNERto$q|--2Lp|zrF(CRy-d^jlzcMd}-j6{jfdYIgfe+yFJg%PLw=na(}^{wY@#1
      zsVT>eBdV}g@5<Tv>4C!&r<{xzN3BBp>hs}K3bhmZxI)`l`S4MC$WQx*hq=e4MW?9H
      z;_oSW+1$Wx*R|)zvPF*@67~uvZmP3SuI#Tlky5bili|OcPlSvdw2L!$*>f~eU-WF(
      zqt|=HmxAKS>n5EkyOi@JVuf4%a}^wn&e*P<@f<hBpY0Xg4FNxbd?cICdOH<5dj3~<
      zy=jH$XkpSxAc8gv&A3q^($kw>10J&wM_n9WR%p`ntPVYaPPECsn=GtBLS{ExxXzz#
      zu+WI61U8~4j;|=RR_E73FOo!>bMn*PjCP$8L;V)kq9MWAW(x!Ost`Fj83d;=)RVeq
      zMkLr9#<F?mP-%9;agW&(Ida`NR>;`7wC!f)-7H4EnJlxpacs4E0syPjN2;Sesou0i
      zyG=M865u;z)}pXx&UJj5$?CQ^ZdYh1(`iJIzzEvpafgN7*h41fN}j^@aOQkf4~KGT
      zR(h{qlH}~Qun+rbiquiQRZR8X7stUBIJ$CDdC!@4+yo9_8?on|M|?dqL|Y3nGHcIK
      z557k&h_Z}p?YTK8U+K%Qr(vI;yDc2TJxp*I&B~5Y7!^gRn2g4&{wDGJtJv}PT|=n|
      zG=<|9zJYPZR&>0*<=WHTMq$u6x@NN{B;vygeN~X2NLA|xqSKhL&7f;DCHF{y6O|Q}
      zjruH3h|P=?_Gmcwm85Zp8kJfZ{XZySW20}^$$Q#=({wdfZtF4ruYneYc&6kXv$HuV
      zn4E=K3{h%ieav)$SSIJ#)L<v(EaasnMT_(Kj4Tu_c+xSV#q4QEI>o~lEY!<ik6M_=
      zY08~QMeeCEHKtNT*N<8FwwS2P=DoC?D`_*|v2Z<Z5HpWkcmhunq*u^gUQG3xG=(mg
      z;RK$-({Y?%b@3dXFM7_bh40}RhGfevktxj0D<s3&H(*jBL9Z;ajqo5N@b4eqUn>l2
      z-xV2_jrz)<K%zv+Yone^L7U=oYXH8YSQAGJB{$>j&q@>Q2#&1kY@4M|p^G#}_>1v6
      zsF5py*K>`ud_A(^>ycT|BWctl`!`3(HK3nL+99p9^6h2XtKqmWxr{F*`xeojyo}EA
      zWvpAo`tr0ZsTR@Qw}e|R$~KOR=+mQG#-;_-C2P3wE)CW2djUvlD7z443tfXfbU2Fj
      z*ozJ9gMG~WZ8(TsxRWbm*uwp-J_xQ4@{MqGa4Z_>;RfnHS`(=Cgtc+JV;NhQvAygv
      zq5nKW4c;9xSs$3J$JfY%Z}LWCa)@UXO~#XJ6U!K`G<Gj)k=Dj6f15GZC>NnIagnH^
      zG_j-qQ>?p;5mLAF(5C+WCG0w$yo9bzOBg-A088dd=A5j*i~|xtO5V#(*D+{dlIEru
      z#Wb@uL((2X59@L}t51kZ`p$x=cHrweDgq##O^nCla}0NBov_^*m}&ka<h9a$-%HF_
      zL=t!j?abwo5Qau=-zAbFEqT;QDa2-L;I|b=ag4SV+uyy$N0uHU^wE)I^y#EnFAL?q
      zB%@E4gKedV!8Q@YX?|dwp`*vp&UPR{-sGDJoOKvyG;M+uxAz;jf1{0Bo*Fj}w??%q
      z=3^+bHMW2ru4~5oTVk7Aq7NG0x!Sd<CALL!a4x1=V*OWM`_Es)sIO+nm-XY6^pk8-
      z=U7qa(Z&|D8P8B%=PBoB$@mX>dtK0h?DT;Jfs6-%jMGNF&d4~v$vTbj{RkdlE~BJk
      z04F(%X?7npVcu^t*h%2b;Pn+qJC<NymB;6q#}|n5CnWBtp*(g5h&rh^haQB`DdXt@
      zlgDO1kEB5xuSlS;l#4|9Gjj1FRrgXTdCh@`X5#@YWnZC6Zg=DB0wWjA42l@L-$e9X
      zjv|}eCCtuO&?MuFtRIQHo6Sa=RCls-RlB)acfwcse2qN5PVU~Ih!*%s`*Y^z7sT?*
      z5VpYp+n`3o&n|Sc-WnLUV$Ed@wgHaP9b)479Zvk-R;w4^)&~8)5Hki9P6gd6#jvE{
      z8hE%}evGMOatRNWOTh0~mni?mP;MFmbPdGscPxII8%$daraEKttqNGb3c;!iVDaWQ
      z=TGVwfi5{8AsmkDmr&r)C4;p2ieBEXMSO+i{)R&RkiGgN%IRYg{7J}JSK#bhfwMnS
      z9KyjFT4xT03f*%^#jBEOz6&iJbYeLYiu-<I5v9n;f~Kw1A*<BiBOl_x63!exr<5#}
      zSgijL14Qk9fRRO<^<Tal;doX*uDpkHWw!m={hZbHTZZsE+=AZ|{ukJWKTri<;5h!o
      zO87I|(O*K@IAg*Zq(Y=7MG@b}4-A`Og|t^H<nJMN$_jaw?ZLl#!-q?ihyPji@CE#+
      S%Hgw>hyPXe@Q<}rp8GFrl|p3z
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!+fEZv6o&s@N?WF*Kt)i>Q9QI&sb@tfC>4?>1Wi;tL@$Q2EhA-yOs9(XK87*g
      z5fd*oQ3;y(06vZnp#FPy9ma6M1?}2<ul239{<X@_-`{=!IFI=xVgkc8r&)Y%y|9YD
      z-1LjHRzuEu(pszd(zATmOCm1N7jcL_3dC*t2@EdmdX!f!&#LnJA7WA<F=acpKP}Lf
      z%P%pi?5;=yZAhC)B9+7efze&UUEi~v+8#~{odPgmqFaS!1P<qP-n!+~iaKgCztjPN
      z9uw_I2y`ykj$CZ6FH7&9wOp41nFY6M)t4;KR_E4b++VdDtYKjvHP}kB+Vni>_(3m~
      zGzKt~#GpWSxBfkqn;1sFK&mGFinAg&1=^q4Uc*<>$4rc1ETEOu`Gkp+%J~4DXJyTH
      zS`i)3+<M)8Nnxm8u96Q@7fhVS8Il_zS-q7FN-%Dss6cUtgC&2%Wrw1|KMpKO`n}+O
      zIG5jNc=5WWOTB91GR9Pq6N(*JlP0EAmNbEL&Pq_M%06vkCg^#?lP_$ysd78a%R+VD
      zk=E>jwcDc@$4F;KzSPdfUAO5~<-DyX*t=&*$CdW+QKoI<YO`fEd|D~m+%JB1@N|p!
      zTp(l$+b{~>VLr+n+(y?I9QwrD7!LFEU_iJ;&k1znI(m6$>L~Q#2u}h>(cdCo;<q9i
      zh0i#&gRH;@o-`>Dyi7+3Mo1V539~Iik0y)?JkZwhD9a!dD0BC3MR+|S?-X+6s2(5E
      zQ)!S<l<W@jF#^BhY-wP(GTq}M(zuN-+zE&yI;urvJkIf7gy4G&7ih(3UxeycWhwGo
      z_1&(re54U=`F^Ct_OQguVas<~!9%*yD`CsmLhE|8d0p;fHva@Ycp9M(h4f-5!26Z}
      zGn&qkl(KKpzlC%l!)x(}$FYIfyFb6Skj=h9pMENpUJJovDtL;hb%FB-mYKfF?U3Ax
      z8cSH^7D$}H8uD1j8MxGFgZiwaghoWsnNZOg+z1pk_#67C=uN2kD@CVSwwiIGaQeS}
      b)RW)jKEDd6z1l0JCb$)9(*!p|jbZLD3DpFT
      
      literal 0
      HcmV?d00001
      
      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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
      UVDv6Vvro}XBh5_a>cF~x01j|RA^-pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO;5r=6r4q96~93INIZKeF|je~$&+G;O*9@bUN}9<QcBj+EN_j!&4WL{A7$Jw
      z4SL{$huz8BH<>q^d0*cjp8(Er<f9^RoMa}P&>Mv;-#P3~^(*nM8I7d&Q59&oo}w%X
      zp9T{dvw%l=F0-M)LGbX~?Xga?<huPL&|UIAXSx|TY^ejoa@ZM@rkJIU>>-}&lSR)7
      zoh}jTNBy~$;Z%k9G#fus?%36!Q%t`KI{zBhnn}KsBQlB?E(9)13oANrCCkJvg7(VR
      z1pL_WGo?zP8brkpYq64~1=fP1@|4UH9=kFUsQ0Eu$FiF$DbW0z=UEY!Ct#U&0f4%V
      rw+0VI%r*EWu9vt`V%^~;wj6F_$Kfs-4x89>*uuV5v@2on3J!k&g&C=g
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVR4RloHnSS2Pufqi-B*2(N0u)VV2xt^q`D<eYP32Ewg8?i|l1mt!%!J7d1zW1E
      zl<I1=b^WO*@>AN_mbO@Bf<~ijD`;(Nw?A%mciXyW_iT5&+wSh!b9#E(v)SkU?wvam
      z5~{l=XXf7d?)UyZ&-=aK``vu+f1Vowa5;VvLWN*{Z#uu|mc;JFqMW@aw`g@H+n30-
      z?o4D8-8nnk#!n)b$%fz;Txh1H66xMW>$`5TyK^A~sh}j>lFMb2UHP2dGfshE>JFot
      z58F8_-7BbEQ&Q-REfZYOP1|kh9(#{K+5}S)MWyawFiQvQ0YSwUK8|>gIa0O7(U{LA
      zQ;V)k4D4K+=%>oSHLI@v$hB0rSunXZlOD(=(z%XADsTG;1O&n5$#gQeQs8T7>=5`{
      zGd*?$KFqREh3YUa65s;PtF;h9Snn>jU}16y^@3?8h;oxUVXlQKn98WvB-8e~d|#KH
      zy)n_1vNh^VcOuo1$R_o-JLu2tOfrB=*Sse-7*o7qJa}8$CW>Dp66&7bYv)>0DUYM;
      z?Y$hG*3ejnS-YKErrs~GFbR<eW@Dj+MTiliTkXAk8p7q{BIa-emthvcRTD+J#wk}a
      zR3#@`<r4*~++a)wdJ4uT(fhn-%UrL^lF{hC%ED3*9v=+|E-44eN!f`68C}A7Ex6nP
      z<Nx4@U=nR@%%|5R`;xR->Dn|2p?Eg7MbLuQ5Uw7xf}Di6a1B<`e#%bw=60F{Y@38@
      z(H6pW#IuxI)MVkqxSr;^GwEC+nI0gSf@rz9)=VnJWtq&Rmo+li!&!TmB1R^ro<lNS
      z>CR`fcG~deuB=en{+N>$SN=Z;F@A5f(2g4!N1~@kP(2a;n<GrH4ht*sL9TWOc$N$%
      zY0|^8J(tKbsRUarbn3i7cPf+SoT_5FjwN2OO_%DWf{+`QfwEO|x!dB}WiGeCwy*=N
      zJ3%cmE#%7I(AL;W<vWtu0shqVz1r?grd>Rg*j4Es_g9#|+*^Mtq4WJ|R!sFWW8oI8
      zVlf#VCF=cIdv`LEC+gt=S0n^ZpIfSSZRDvpk!s2I=KILOsy*FyztR@QZo#bn%s^6q
      z)h7q)Gx=P7W=FlLc@Yd?kH)$89BAF*sVhBP6ej0=cDC2{mJI!gHcV6?wzM^Ngz(8?
      zcACWPU>aqz5$waP5I!ZCS@PX6c6C0P>anw7+)0~ih!wp)f;+HBzYbXVEbh{E)!%QY
      znF+N-dR)PBbu0_xFF3VcQ(-`*?^Wr~37X2&rx@dTwW#F%7Cw(J(4$<&nSXA^xLTC7
      zzqIh6A{pqhyYjsn>PD?jk68F39;HA1c`cXcENHD^iq>PrDroYsEuFJ_ZNhaBhm@Zu
      zoYd-2rAI6r)g|s9NZ!UxWgos|;W)m`OwDClve|^;veD&bY*r8At06pD<i$K|-#d`A
      z`z(A7U)RN>^4*z!>WGzN<(9g(GOUV2<XWBhhJ|n9TU24EY|TJj4b@{gawRmVr!0J1
      zV+beReN*v!#=<F7Q$<g{uixFqBCH_Wiu<#>y_e+^3-c76;VpXRq})<+{@uzhp`U~R
      zp0}_Q30=`67GA_l#B#Up=IeL7d&&0_pan0h@OL!s*73QyObxwa;R;--cV{j1A)yGk
      z4Uz8EW=*`S&kV7fAJ&;keVMH7!86tTDu?325_;PVwcNBPNDM(kIoWPRjyL6P2+?BN
      zseeqNlr|k>fS*2rg!1|`U41`dHDn1dFCMd8qhn08nS2twW#Qxa1Vc3BZ)1m*rPT|Z
      zU#0>?+B5lVx4k;4Jy7j=+RTLtDdx}%A3p&EQK20do3sio;^xZ6#9Y~bnJe2YUN6Fh
      zm`0gOGd3Nyyl3ym?-?Aqk@D=}a8YasGh>y}Q>cmgo{yYDUCj3aW}m{Gr;OY@e$Sv?
      zpbdUpPfKg4buFS;hxc*Ra<pJRF5xe=aH(q{MGJn8RT&F$HLyU{H%*{>8)qgMPZwLn
      zZcImy(H(Q-UES1#21c%4S81<F{d%X-DmIOXxt2G(u{Fe=!JIRw)eArI<}<j^yDy;W
      z<S;Jl976L+>ZyQ6I)$3Ryq=CU>d{{oVS^VT^WU|z$+a`zu@m)lpTT7Bo<?TV$l`O2
      z<Y{C#>aeHG$b8Sp61?9vvW-SG(0PuLI#2N#O!MyJ1$^M7oNHnqO?;BMbB8f8!%^d*
      zIS<RRf<{F94%gT#j9)psK{cPnBwlI?_|OSn<16-8h=FqC$e0InYMaj@ILIubOl>o9
      zUDp(U7ON|8aP$q1)z$iY7M`F|2jXT@2YiM}e1OE=MFKyEnYfQ|-%ol!&r{eJ2=D`R
      z>Ori+J-7}J8~2@LxWRM(1}5TKx?RN})-f$BC=tPWj%hNi#0EE{t$d=S&Tz?IyMWH!
      zP=QUc1qFPh<d;MJV@$9^TsTh{oAr*QXLANN8OXv+lm=STCA5-WI!o##XDd@%6^OCm
      zIq7#6S16GF?aK!-ODEMZBQ1rfMj_fSQlq0IM@RpOR|j|<;3uxQj`8;rE*IcS#PK+B
      z{4#1VNI##%LVT6EGl*91h}YvAWz=tV<Cx2oxQSRP^=u_w?_Z_&O8o}4IM)043Rzcs
      z5CPwb{S~A7_|Gu@cI^|G!a0WZLHK<ogqN7|^lf_lG(A2=<_at=&#_PqvpBKnV1%f?
      zh&W!tV!X`sJWcPuTgLtdkBJQ)`^#PSXYiO)WWUqn<cQ138Ye1-pf~))nY4|1B^L&D
      z<zgxabb-YkI!0>_js7zwI8w&J=2Aos2d^=r?~#q~v$+0{EBXzV!XKfT_gCSsu?#;g
      z<6w;&!9|R=#KC*Y)iS$IuD-=w{afbh-@WHt-HMxCwpX&Gn?gDa>12EgfhjFR_-Lt&
      z1kIdxjDDxkSGoQRwzFV6dB4Q018xPbo~{CVN*Fmhep9By@^r9gadoV6bxe=>PN7S`
      z;;PLzMwJuxf6(>+WcvPBnab&&%A`mA0;<*!E6P&Papw1Bk`<mL&nvDo&8}ovUC{EU
      zTFn07$p5KKKJ3Zg>d7y1<pY%OI!9QfOgP{Pr#vJQ%vg0hu4$*%{XL2ZQ}7HImR?76
      z#K5Ea#~@UxOIU)KEFn}$7_;SqGIMdy96L8R)`wkl8)BVQ=HKqvQhRFqsG2Mw&C$w!
      zvvkgwG|}f~p)5Sgt&Wl`YUlH5u68Rj1reFb7ah}3FO`@lReXiQB`Y&=jYP|QEG}`u
      zF3-n%T_0CFKDu~xJ<e@Nv*kRV9V>cvUbGy~E~aO*F-_)RhRj7&=F`JVahWvGyI7fL
      zt3C9x=ylP1$1N}WY97NBT|)}maZDb@Kxbus2p@YfR^zd^(xmku>OJsy({)_;&gd8n
      zm0R5f-gZV^|BIX)LC}d<?Tw}1R9IQWw``X&kY-#gS75#@Mw7fBE93+CkSxK6`MX1|
      z!gg7Pv@FLiS!sfF+Jk*=kl=~vHg}I;8|#Ey@i>=Wh-4ld#y<8mx36=rOZ~nj0pF5f
      zY#4WRR(^U2`{N@8e5Ug50`4i`z9Bp?h(j7wb%0g2A?kPU3wUT#ygJCSi`^0ZRlvi8
      zm>l&x_YZC2qq^$A!UfgAg-1}^G>n6tdOw86Repa!_6KDUE6S!FbEmmOrI~}6F-|@x
      z)w)pYMvfs;9b7=%Z*m6?<BCCCGR9jYJx;AV|LEwOs^BnUB)R1OL>7&mU&f;T0uDRv
      zc8uHmVbg%?;4vSK%rRdhr|}iSt4U&jXsQkraN;E#Ea2pNMqeFJ$)ltH$Ugh&Qqz8n
      zdnsfM!m^ghy$&;F1K(6`#FcU*R!Rron{C2Ixe48}6@Btid|bBU9!cOn>B583gJZG-
      zr=%Cdaw}e!6n;qAUrImzMY8xe$>9%@7fZ4dl|51~x5+&Dgfz)MS;6~j<x|owpO%~D
      zPU)5X(#LDR9FW~|m)y<kLvoKiD)*YayUxj|V&2I?)6la5^3G}U!}0(-g&{7rX>vDv
      zf*}^UDmh^G&j91P6VEbJwKRX0-Gteb<P~PB_D8>Cvo|bQF)m?sY1J@YH*Y(Q7nrcM
      zr}0-#w(_7t?w-YWg;pQhRAgLNwwp+Nc!oM_EBlX(KBqj57#_Ei$fZsyDI?pTk1P!u
      z7NY@=NQc{~&T^&5uJY=O26a-MvQ6n@OGCaT;X%|!gVnkX)s1YAhN{EOMcTts9d>Ac
      zCl(FxL=}q$dAKUk--TI(@DYUMi!29^vhp6nVmXW!Il{M*$FN0?^Ys1|?BLS5mDgSJ
      zByN|l;ePo#9+49`%Ik6YCZ3UR;W?fxUXrKqCa?b>Pvh6}41O!841HT2n2Yq`cX$=A
      zk%SO_&8Fye?weEbE4D^T-z@wMeqiX^#dFDNJ_+D<p0WyT41=U@F<YiLDER`lX>+7!
      zJs!LrN~tfvKOk%1@Dtv3yyI?YaQB}}D33&1d-T|;D=F&tI8b?CQweROk6+60dS|td
      zENItrY8@BonA2*EUO`^wj`1Dt7O!xZIK!fP7VG6z+$^sV&DV+M_lf2Y3_4dj9((9y
      z*$_G>*ergGpAel0U)*T?KDNSJ4JLjQ^<FpX54t-{C>ECjep(_}Pdt#H^Z!k68B<RE
      z4tb_Rt|`Hrgx%@X4iIMT@tfJrM`M2GYo{;X?tebg>8o2`z|RNyIv}8<{&;&pM{C!2
      z`puJ)U8lwPSN`|wH~cTqzq6+N*4TH>XU(4dX0GF(&@QdvZHB2Qqh|K2`d_39eb4Cn
      zw3y@ijQKUD%aZ>t3yc3#Gw&BTjb%*{tk73&u8O#dPo(0HMupS47F7uQWi|Bo{|mU3
      B9MJ#(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZERCj7=BKB+iu<6XuEZcb#+6gt_3#+GLg=Kt00|YI3P?gestY+D~uM~4nbpx
      z#zcb&#y@-o>4wuOnFbPYd?+C?euTt7CdR~=7^Bg@8h=B5&OMjAx&7eB?m6e}`#$G+
      z-{-k^H*a6P4xk;|J#Yv#4rj*N_9PD^+X}|PLR)V-V|3??<laQV$R!KeoCn&1r0!(?
      z|49O_)Mz$i2-LJhdQG&^WM;T+>);+ERfq{_@$8V{g+RFuFDeAwo#{-v&?V5^(t8&M
      zvB*w=MUq(G*uFs{w<9??%9{ec*;I0LXEK+TXDg@`M$&nKrFX>?aJEEtdf`MsGV+y^
      zTaAt&YDqTD-UY&{5pyi@kz_8JV))KjVil-Ey$4GKLbKCbkfy^0H>Z;=j7Uf=o$nju
      z(h`sCb^^Cc0wTq~xPT{}kB?^aY)orOM0Rs29NN#5NN`x`d}7GRvZBZeEkmJ9{s~DU
      zs$)4?1S*D&!p6){A~R$hl<^03w90rH<92YRPT^Paw$xZIXJiyi+>3|M;lUb#>RIjV
      zUUWQ+wJagd4wI6kZ(hAl#{*bJTBVZI_E8=8AuM<6bu_5mV>*`NUdbn}<8f>xpS;CK
      zb;{PAMrMeOW;myOA(<m7hh$c^KW7|BXUFogx>v^**-a%`bQ{CzjNQ^!9X+xoO&UtT
      zyFELWOBtKe(j&DC?A$6FBqiR;mjEc^juP?d;b}Faf@}FTh+WYcl%40n0i92o0<1wL
      zpSnsy6&CTtJK^I~0k9FqTrBoq;6@dDxdLmUVci@6mj&REuY?8A&rF#clmOA?7g2o$
      ziv@0=?h>kJ0jo^<odoPc4c42WwW`npB?Lm`#}`FvVZlFb!PkZS7%w6a@;CX5s0an_
      zDZ=HP)~0RB0b+xSd9aa)o3NOB*}J->&c3A%jc77&q0ZJVz1A(hkgryv`|9SSEB-y4
      z>K1bBnS<=Jk$qT(W)qpNvXBp3$gz-r<%S7(xfCbS%4J-gN|R^``TH<|@=)OZNmPgY
      z?L08Cy=`({i?vi9=;wvoIHK){U<dW-pF<{QlZjbv3Oc?;krDrp3`G~7s3}uKpi}Ku
      z@S`w}UmVlw*v40*;WActspBI89a>Ne#ESSP?5ir`M%Y(54)+vh?D7s**rylK81@B=
      zSQ2fRLFY*vo<h|Eh{~WwXrH@S`b%P(I9V2tquKnW!yR<<S9EhBVk{ceX3%vCtERA-
      z=;Nq2BZP07bNdtm3=?<;8%|1U4f4mJ>k7IZ7_bvV6QxG`FzcNobONx8w%$$OJcA{8
      zo?5=Z!42{i8{&`+Y`}|j)i4s+!?EvW<|s4vVFX#8Ucv#cuVFvlLJmif$9ovValDK(
      zIEW8%2-A24m+&esGwV7I<6FFmA8`b~;T`<JiofwJZm~*wcC(Vn64T50CevBV@VzOk
      zgUr4&-R2~}FYyE&t&!DfRyNZlXHZX`&E_|t$Cm$BB|mPd2|PJZ{vYnh-zVj_l({*_
      z2aGEpn3|neC^W}_(#;igNpqawqTF%Ro^%HV396F?LZv!f%2Qqz&<($Hp$Y0uAJv4V
      z1*)WvC_SsYqhTt03XATD&seKvvr1Odb&M#{-Sb61TZ-6JW<`I4Lj#Uc^y3u$1Vum1
      zk-pEj>I_z($p1SN=)_sX@d3v_iKp-p2JkVS!zZ-EIST(NW&Vu9pU3OCfVa6nhKoeF
      z#EQ?EHN)s-My}v%T%};w@Dskk&lK!WoWj5SNZMjkV)b$MGA>0F<nomzb~_Q}r^QJ=
      Y=Pa=Y@UAJbiyZRgro`@NM-FWJ56dLDXaE2J
      
      literal 0
      HcmV?d00001
      
      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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
      MT%0ek-q1V#1rGF6v;Y7A
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW2ZEqVz6ot>&jva58Hcpzh)DY4az;;SaX+xk%1Br`U7nc{c7(qUuu|09Na_wj{
      z20rkU_y7{55=i_2eiY)&>~_7e*GNH;y`J5BpE>u;y_>)P`QtADx9}*3l)!3lFseS2
      z-^;32KkDie?R$e>eds@zdUv$HulyV`0t+^xF9*Hq=j~^zqjSg#Tt1l_&l1SCZMwjv
      z<~TXP2jESCGhMYWM}57cwJ&fh2(&uP9j`sos#`mdzU*k_H~5iy=wFYXk&xZ;2A<v)
      z$dnr87B977S2;-IoQpG95J;EGtsE8wE+ngPP{4T;>*m2A7dgxeoNIam_1WloTlr6A
      zyRQTmo5POmx1{fxb$BzQ54<CRtId-}Oq)oh`9oj5v_v!nilte;m^!lZ@K6o90?X53
      zo8^{KeZ|EJt_s{pikQU~5EQ&P^_T+d37k`(h&=;ok8>@7x7XMUkR$E&s}JST!DD&I
      zdRVZ}=2Fy_+M_vh2EoPoq;PZCwZMa$#)GOcvsRv}DQYv(Vc9i-^-}GB6|{7u^!;(C
      z+P)OH6V`W%el535lfCaE4@Y3BmxR4t3M)AUS0L9J>8H}`o5t95v4wlIw66v|ePCyx
      zVIF+s;$ygMMb^^{pUrjpN^<z}6cZT6xqd0Z4*bN-&g)@tho_Sew`n$d;Nm_$5pbRi
      zM}9}uJu^WUr^n)^nMqusCux4>km4WbkFTecv542RywBO>_bXgIMuty-LgfX{R{lic
      zo8k*B{f^~dZOTQPkmmO~12?dM4{(XA3qcZI#bvITjv`(o(x6`t(RIccv}4h03Cz1>
      zZc)~~7}JTEjumd0D|jPh?ncbtu)KDR)vw1o9lP5OdAl=s*KnO2!+SI2HJM|ob1JiV
      zb@Coq-f9pT(--iVjkowoS@PQ<xy5znKgpkx+_dCM5Sd6Wp=|4NP{Eo#)D_$a_c-B3
      z@fhz+x$y<}_;Q9D@A5xZ;Kq9)?}QtPysyY>&2S^&#of4#J0W?SHJDz=R@evYlV|oV
      z8+9+HG8;LOwayxq8|=KGWvjdjvgUYZ>%Z_v3Z_l7_U3mMW4fCGAx7ZCsNWm3Fz9z4
      zxH<G=+%0yGu|27&%U)M8O@&BPfjt}aI^PN0$c&M3&}=y$B7f%ZxGXOwYd(^-!##rh
      z4Mv;%yva`|$Qf{khcQS#g6yIeLgL0OPa5+>EO~4U-zj18L<RN9{GVd^;|d<yIvf82
      Ds0*mY
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O-~b16g_V`IM5Cjp;ScVLlN4cQb7|F+pqy#Rb0>zB{60?Jn3LNgJni>tx^91
      z`~f#CG!Y4!;Le3V%6RY0AT=$p=zH(pp7YK<_rCV`pYKNiW^h-7A~3S<`1uX<m6`WF
      zyOv*Y{Yp(PI(}U?OwV>54XQv-0H~SHdj3&mLt37O3j+Nov?hXpRyDUCx(z8HRt4e|
      z%~z%MLaqrYaz@~CsV%V}(6wx@JErF|cc?w8SS}al2&%|gfeS_3vAsEgnM`|h;gocC
      zMWApBCsb%p48LQxI`6K@IATcYNTOdLmdUPkf!yhcBf+ODIxdE%t2(;SDUdALj$HEV
      z71=18)MtU-l53f@6|-S;93@q+YHtaQmCl(BwITgK|IOy{9TVq~j~khcrnOj;b?JDd
      zOHNj~{+l{9bSBV&Ngda5Lm=VEZ7%`}q%zsCOHB`hO6tgDX-09nU{b>^fzgv`FS*OU
      zRgErK+_vN<Ke0G+NU_Xq9T{Zl$t=5m!;%kd?ohhrNlx>H0t?0R{Z{?C*3?;}#2D2X
      zqfZA^DD0Ph8wyV=*lCjVogSRKDNplkikX*059LF|CG-;VBgHY=Q^o=MjH!L3jody4
      zjMzQ~zfeAgAzIU<2s|TIlhi77vxPpa;TmN}Lq3KvLJ{4>FN(DI#1$xnXhw}u6r#HS
      zp}1PXQ=^ruItpT-VtmEm4mxQY-!o`U|Dq~sJH&**4m9->R4R3x0lUaCWPm*g_HY(n
      zC4WrXBel@u1UUn0)YUq5$fe=FL>>*?!xoD0@EEW06x)GkJ*d1Ac^)O+NrwFiej4N<
      z?6eVhdLDTiHojqM7l|LpJvqSi&!E*@>LKz1pNSpT(@Wh3-cmj9Xm0PRn;)9Ahg-Bc
      P!`ce{Tk<*^so(hvU`iZJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`T}vB56g{)~*v%$3ex=r0t(88gh)XL7qKHsZsHFN35$r=@vK^9<&8%!@Mf;oj
      z(CUMr(7yLaiFd{&hJ9%FVQ1!^d+s@N=I{OOZvgMG<icTC=&Ce0<>x#|wTyyh|4d&t
      zRoWK`*D_WviVWixkGSdvhn-UqY8PdO#t3Va;4w^FNX9{1B$7w+JMTn-!INsBxe95!
      z*!s8bHg)fWkyKLeG8C3qjv0y{;%~wSL%oJ^)ELS;7OzlgvW5zLf?86EgS6if$<d?e
      zWGfDNbj-;JnXpA41=MMt?#Tf|wJY?ep|PdqmH%6-_xRv*oQP&5`a)?MLJq&sC?zg*
      zR-_bYR6e<F7YlUzr|1sib{h6FPV*uZXC`(Z^Twgyj?*L*AEimJk$;<YGld?K)Zw56
      zmv%2r4D`Guc&MUAl`%R6gqyE=2X=CUXV;kcMMnoy^!F{eMe8P}ZPg$Ya7Nysl~KL4
      zdV@xuwu>V6EX}kV-RD-nf*HKX2E4ThP`tv#Pb*+#%eJ~dlw_DC_m6(pXf@NE!jD}4
      l(TJ9lX)(;<RmOZz)(z9U!#v&e^`9L7>j>W)@)vE_n+FQ(nY{o2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GOH&kA6#gy@4743VM0}y5i~_@B1m6r81EP|^7)3E?9yUD}XlT00Ob=?Fn`Dze
      zk?h>K&?*5dROwEuTxFlc<Od{`ERw2JDv9}SPtObrRSpZL@8jHazVrGHPyhS&A%ISN
      z9!7~k<D`>`O&jw@EaO>r?20sI29wh9EbrDiBRw^2%tboG2nkgCLbl;d#?FsVOVbOZ
      zT%e}#bkLJ2!*f#tm9~-g1{^PSOW^p>s|_fleHn8`dJ(nsU&g7%kvDT{DrOw_hBNFY
      z1;n60xi@8{Bb@>Vi&XFH9FZQ?miJhW<((8b)V$uuEu#XVem5yALDzNYcuhkoYISVH
      z7J<^{mQjs2TXk&1c7cis%Sk5agg~lTTdU&GQY6S#4;99pIx112VHfs<v0I>{xMbv_
      zrK16R>4#yOGM$bb6u4ZhA2}8ABJjs6(TM$FL<IJ}5}=L)*g#CPZnEFaIG%E|S%;<$
      ztA;E`CNi_*GIhxqw<VJ_<eG*(YNRZ+4-P}BdIa_t5!p@_Oocfm%^B97Mwl@j2UV^$
      z)0T#FAtN&~j4pweLL>CMj+sfNq~r08HDQ^CXSvS6O;gUPMHq)!B86@m@luvE*_W~G
      zq)cfzisNA%d!gU55;{(xTOd4d*co|#LSRetV9U_Udg2-mp+^;Duaa1O-!fW(*IC95
      zdwUy{>>E1z(9gCo=H{fs{%T+A(JDOwUf<k+QgKG0el0*N1<&ai#G8z$=VpBpsBK=;
      zhfefp7{>W95&}nGSrk5Ryxajg-o^#e$fWeLSELJCTaPkU<_Io_aY>+UJ@0gk;tGST
      z7>r%Few$-DuBwU-rEQlb-iUW~yodLh{&AluS-!Dr>r<=ImFqeTj57g@iQl0D-Rlg=
      z3lyy>2XnzKW5p}V4^J8CEbEaFuPQ>E($TJ(=EY=Z$4ESk8G(jE`y||vj5#%6%USBn
      zca4T=)T&;0bc9jCdQHh$cb?7np}?L(7Yy3AoHXna&+z1m$8)Gv-RtSdU|wLO<#1X#
      zhJDdjBG6eZuVtN$t4W}ZxS5nG&sd6RwyiNaI}|Jdeb8}as-HtKEtxkxKjS!$$XNr9
      zX}f7sz_9eD+@y|A@fkB@<;Q7Vu0{L_og1@p@(@Q3|H=^JKxa_+3&r>TmxKsZSF0Jt
      zeL4R&qKeYhTwUV35`K3_TNkh?x`fTqs8~YX0(L}OAE5p|_AQ|49wkc9!rvO-g0ggv
      z`k!+D9ilwfsgGLFiZ)-CNe(Q0Nm+GwHhLeMsBsY;Tr~wd>i-%Y%jg_i#-TBF@c>7b
      z5U)A8h*JfbMVwy5*(JR7r~qY$@5&G4`ya6r&(MXRNIuVS20yQWbT$u(gE$LGl+&3q
      zLQ1wiMqTS7hVJ8HBKv)(_cogIcCVFoB}#cx*S?4kx<lJTk5Rrobhll}w?BFQ%NHf0
      zz99VY8<dH=g?)Wj;`a0J{cxzz_4xt+l>z*X;rbn0@dqOKlSAxphV~!C@GlPIIT^nM
      zJv=)l%E-p$xF{;fIvU&cFW;|oOfazreyNp8I9rOTBva7012`G1bnZ=D;Y|dmf>n%V
      zkmQRH-$+bkV}f3ORhp_;1C#V&$77U*?v&oi!`D=uh&uiQxOGK%s{$B;G-m~>ru|w3
      z+H$I%V8b$|$Ch9}iYnC$n2oB%Y*1)i-Obza(<&NiCqmlWkImu$c8Vr6iRKk{+wykZ
      ze5HLA*gYNCo%QX`(QfKdkd-mkTj=@%_62(dg85%WIw}+@-Z!cH6&1fvb&)tiJV%M=
      z81WoOqd39Q-Hj6>&J^{mz;!ynRf-$FM>lbc-x|hl7fI(Mu2hiK$;bQ+@${4b0RyM)
      A{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EQF9Yj6#j0~bdz*xLqZD(VgnV^G&B?yfl|<x*3_m&4FvJU*)}`v(y*z?2B)t+
      zIr``mGmdZ47ao9tpw@Bp1q8<ze~{yMc6X9A%?#7YWbeJ_-t*n>eCM3|^1oky2QYyf
      z8UhMuSM7TCmT||()*Y*yy<r;b^Ci=EEN3%k)YcY_jS;a;*H_j}$DPjFPIXg5k3!7#
      zD;xG|_UiI2bH&lntB`1+iMM-PA-HaCD#Y`hE|Utq&YD#lnNS$d?}dzbUbJk>xuh_Y
      z+MDZc8ly#po|#I?j6h*PM+DI*g4nO44{_2@jTU9+fDR2|p2%Caxm3TsY*w!s%VkqS
      ztE?F1qEWSE?HhX}G=+0}V%JicAx2hB#}i-SbZT@@K%x-c7ex63^xdU>1jjI};SGi4
      zE0x!gl)%GF*Yo)=7G`g9O6;Ohu2ZrRoYe59Lgtk)ZPldXEkO+35e&lBd^m-Zsoh+=
      z&}VqI`4uT}QYn|*NqCJ_D|vKtHXlV66B<tMDAvMe%`tE5ID@xox7y0xa~$k;J)wel
      zS4Re?c%AuW-6%7&U5|bqWu=_gaRf*E5W;!+T-0$KM+M`Oj<a}AK~?xC%|S0#xBZ$8
      z!_<YHO2MgG_G)MHJnN)}S%rhGoO<Tzx>YWj)hMoDzkG5!=J6338yg#@T~avJEx0zh
      zcfd@BktfS3L0S@|s~rG7m-giB1Q5?pbWCGLAzG-^t1IT5CH-=!%TqHh(J1Kiwry5t
      z%0{hbQsZdr0b)PM!hKUPOqGNDhY;X{#<m1vF=<?`!nF56=XW1h3p^3zIFKHDg8uYV
      z#L}53NIaw|fI)uyWm|oRkopD@^(}^I8**U>a1e*MqO*HNfRKmrnh%`isJItOKSuup
      zPCU3?F{<xf7~#MJK8%v0phZ|s@wDtE=$v?j*Y817ThL_H3H3u8RH6yRg7Trxa1^Mp
      z@OX?9o&G<y`G=eSDUAC5pOK0P6!-lXWu#UoGA$%eqX%r+hlr_1F5<A~)zm1Cv@3m>
      zNf_fy0%XJZw-o$<lM>?3822xG4lTHaeg3L}cfP()D(#8crZT_rnc8j(BiRgt-Q-{J
      zqaQ|Y>`#R5VtVWkgcj2coXh-z3kvtzt{k9=P4*l|wlL&h?U@>wx{FZH{UCo$9><t`
      zsAuHy7j*Rkht*4D)!%Hv7noE3w26^xijl)*R}38&@IF3pgJ&Q3T%{%@Wyx(^x%m`x
      vLbHJn;|mSA>NAU6Ht=yP172DE+eL%`K6R-UaE)V}&?9`>uQLmZvm)?6d|J0D
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTW=Ck5dMa1fz`GswOXx3tHMG{jK&8sK1ggNp>t_;{eFbj!Nb-Lu60tNKuz
      zXyU7h|G~>IG0r*N2uVo{4}0d!<(v6t=Ir-BpT7dQi?uXjglf+VYx`m-YN2x6+8ZhQ
      z%^m3}M;$&B!QQ4gSk<;CVYe?;8VSOZiFSq8tNC)*AYRE`=}WIG3CW>wLzem0DC|XN
      zUv^cUknrROMObf5Q&i&ucfdGm5>k&G&ry#F8>O=q#w?oJKUyzC8Or*YH)7N*w>f!Z
      zup_gGW7a|rbA)?SXD+uh;Fc{Uk<zz|7Ba{ZW?POYpNH={(%%vt*NkP*6>eMjj@Bb%
      zLhU&LA>NmVJizywEMa+!?u2FtGd-!Eddg?a!%}&wk(!knY(2|#mn~e!3KQUrOrDdS
      z*<Bhp2oI)N+o(nsMXc)C-Xb(gQxTo8Grh9x>p|#u<%Xk2x;Wv@uImN}R@3vO-*80`
      z$RG`yQ2cKToPG4*2^p=JQDKEg73W_^f4pcufiz}}<aM)*aYPOlpXXRR;K(G)yj`iD
      z;Jm$djCs3|IL3vKCbpn`NB|TdMG83zF;7D*u>Jli5|^U<c`R~8GKkB#!j&{uv(Rkv
      z`nl;$Si;q)`Znu2s$hS@wN~XDl63S1#kY3l1UHY^5yObU5BB~<hJG=L--f`#DL5jK
      a#9TxmhT8^v2PKwyjv|y%;qpbkRe`?-t`)if
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CTTc@~6#h=TbT6z@t6bEg0tE{uw7?4qhJ+A_n^a$l7#^p~L`Lh@>`qPakN9GI
      z^~DECFeZ@r1N>3OGs{K_Az8>~=bZD+Ip3VypTEby0W9IMjRIluP1J9^6(2>TuT{74
      zT8ekUo{Y582hT;a|3ZAI8SGi4<Ab);HY~#Eng2#7(Xj|MUlB@rUnR9BVWySKy2kEL
      zRiyMfVXl4!|M?w)wb|Q~E(pUuhEVcQ#0?)dZW4-h<1o@vk$l;I-;wdQ=yWBa(&~kx
      zyCY&{><qL_qJ(Dtv*(KEoUKHCVpe`Fa507n8{>qj+-iN?#$5sh1V?EZ3*CzeWA*vg
      zSu2AKU$ZgEEzIStEqSQop{f57VdV-vJYS6Imm|VZCh5#xU7sMoecUmx-RsAp+)`#5
      z6PN7QqG<ua528rMn_ZD4l4s)&ZXKFD^CE98mCI)EtXcfqa2R)4TSb9Cz*~6olaF8U
      z57{bU#9-;oSC0FFGTT1K81xn@EQu#`Cu3P=Y3`hbBX~y`{m%L+M=8a>4a7VD<L}{q
      z7Qezdnt1mF)m={F!H)|BhXVxeDM8u66s9wRS(b)i$Ruzv_;VU;sw`k8J!_a{Sz()Z
      L33IGf*=FP)h_2`e
      
      literal 0
      HcmV?d00001
      
      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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
      CK5Bsg
      
      literal 0
      HcmV?d00001
      
      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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
      S33QmvnUlwDdpS2xZunnZyoTKX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8BH6r4*7rDY3J3J8MY2hx^GK}1msiWUh;l|%^y;>*%rV4-a5b{E8d;xFhk
      znn08U3_O_VpYa!nbGNM^@xeaqp1o)8IWu!kzyJDj2w(`$eW($*xoSFzb$v@uIJS{X
      z6fC(?OiXP_(@q)1f^KKlq~(KG;F1f<>E>!;Zq1T<R-iFkfm9Dd>5HH-f!eo@bfiFQ
      zIq9~Uv@CrmZ4_<h>yw$BVH);?fF}~27w|sIXJr5aK@E)v2-GFryq`yxG}NNbhmb(a
      z8S6jg0%%51;aWBLP%qGwHca`_*<6;^oW7hRjZiwD(R1^<WvFlWFaQsNs$r*wE9esN
      z7p0xj<!0U_o5)ghUL~(;xTe_D7H!?KnXuQ4qCju@KOCe?kL8#F+`?@idjE2Bc6nW9
      zYz=*?xOZDOY^5TqA%=b)6pi;}O=o7*@f{5VNYE0C?6#Dvk(uZ@*UQDmd>EqAvthh)
      zOjF5iz#xV-+(5vG5lT8k%$T;cET>@0?9{uAEZ9cg^x;9(=IY$@+hrGpB@jN>x7t9>
      zv$_=m?U8>$l%35O*D!&{RHkRSO0DOS6%o-T<=3Q!r|uG%dD~doQPL?!vVY)p-mx<B
      zxuM1yzOb_cN*b<nZXRxX4La4{FzQr$!MB%BKh#_s_%%+1`n4WFEbc@5gr);DGiv#S
      z@GcWIXydcdEjG++qX;8`b~mH4+|x>_6u*SR#`bYJ=G{X_Y!BUMH9~9+B>9{mfyW5q
      ziCaf2-$D;bgE41Rsd&hWN<{J_!iz7CO9(R9!_5-B3vLwoaQc&hXAkkO7)-}cN~nvU
      z9QA+3U4hc+kA>3dH}><R2_f904N=5dFV0m`?*vAu=YB<FjD3M=qGovG1#irvg>e_=
      zxT4cUFA@C)50P?t_msI+c=yrfQRW13$|V)~@d#rTEvxLJtnOA?(#L$#on%?YlYT|K
      v|Kw<wkUARPL0|{}k?LI@KpV>g8_aIfa+5>YAhE(Z1H18zO_hNu_tw;JL!ALh
      
      literal 0
      HcmV?d00001
      
      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
      zcma))ZA;rw6vzLkjZKX4sk1)RIXCBA>kH#x!$D<&17Xl@qEc}0(s<WJ(q!a8@LT!t
      zqA+0}U>{0$?oH`x3EKj>hkNh&{m;|=b^qfhfLC~_qd-{i1gU-QTsU@`c)tBT5?^Ec
      z!1Kkv6N|G0$4$cMQin#EQC_|ibnMUVbKxdBN`$ph_K+1sBm!5&eVQ;EU&e{(4qXve
      zntvf1gy}RE(F4NRb$u`Jl6Qn+t==MN@53{pV~VhuSH(xs<=j;rLpla#2rw~;vV}*O
      zBb0Xgs{6I(|LZie{8c}WlgJA?jW6}qI0*9=bQn4o3AH@EL3f9;GO>WF%x6L>Jhm_n
      zgL}~Q0`V#BwncQ}w0%J+H$&I)TTbN3y*e~eM3tM7eDh+$Ms5j%ko}Qxf6Z(rM`4%{
      zR%`WtjKh%Q$ehjNFpXRxH3^kb=`A@{JmV^g{Ewl4s%!^8xvDIRt;VZ~3BI*>_kn%n
      zw{(ZeQz}mvdzigN<qiv{JuKZ~`I;{aSmAYExxQiaHKy<u73^RU+jycpz=GVrzO2ob
      z=Zvw<9#;QIl+<B{SeXN!a<&p)!*gC`PFrjxtlgk;#Wo9{u?-b2W3>Uhp2seavU|Dg
      I3l(AGH(Sch$^ZZW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Ph4Nn7B?83bd5Z(gtuoikll!5C;lKh|nShMQS;1>?PUCT}NvNiT}fa
      z0~ZcZ2_$|1KMFCsjYJU~eAthfoj3D#-u(Ra?FWD!wq2AM+7mSokN7(t&U2ZBGcDd`
      z;WL?t$2=49D>8)^DiT?<=fYuV*w}=tNw_~g5>f7=!mw(+GPOv>j|FAOg=VPaQ<*h)
      zsLr5hp+2D=N+t704BJ6*SZl=K?544(f}!Ta#d!~9)O}RZU?>MBpgxdF?9GqILciwY
      zL@=xj(ugM`uBEXTPRGz@=oYTt>>1iTio`5u*a`+`8`3|uY}1ChmTJ;(9lE%};GYfi
      zu!gIK?X^M~MkfA-kDIu~uq3l5Qj;91esBMJNP8?vf#tucP>+m0=HGvmT##b$hUr{K
      zMm>sH|KAwgHz*?hTq&V<6P{&)8dZO)q9o1eXD>xQO=A}=hM=h8K04^qXhl<*#58St
      zL@*o9B*W#P_2yrm*dc|>w9bJw8b)Xu=n}0eJn}Bl?E%@w<Fz|q;I~h({Mp7_Fh2WY
      z&>yfuwoe%2y@*S6Qc<ifvb=ypb%5G;tQ~Z^Cs_ZA>z~L`f=N`dz>hY`#%bUp2|=)d
      e+xESNO>7aOjHX52!Cg8HQBxL#zDK)*0PWvz<KLP9
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<U2D`p6g_u0-K1&ywc4$&U2Ut<T^||*1!aq13-u*_V9SDi%cj#cB~8j?BJ^MR
      z@la6k2l%7JJCmSmw`?GD=gypS=bkh3>-YDc03PFkjT+(MC@uWc@Kfj)Do*@!DNb_#
      z)n1mK?1s5G-VY;{$qO46VadRfFdg}Cho>S^HX4M@tK@fFLP(KDBCptl<@_R7;%sb-
      z&<Un6`-H_J7xF)bvlAt88mkwCdbc+qSbN#Au(3esO_woN#=#N+F6Pnna0539jh(7!
      zzdO;=%VDl0doWg@UxJJe2TI22sDIQO%!1JJV8hX~TOMZNu!bN`#hc=6DCA){Oa!4B
      zWKoz5LK*AaEV`&;P4_a#iqywACu{}N^;E{POK$1x`z%w0d)?lIg7MA?jyAOfy9Zez
      zBe5UrwptTczO8Qu8!V>I{|stqYjyl|+FBb&i$@o8yz6oHnlbw8{J{JNYA)6<vHT4y
      zRc4uN^$P=PxXokBz@IYx2^R32*PdaGUuD}Mz(v`Qs<h9M?+i1KE^+5yiH2D$DP9Rc
      v2X`6BPGFr!-PblpO}4&b<uk|f_>#M8jw`v=U+%_r+|{ex;9BmcIpO{v!4|u4
      
      literal 0
      HcmV?d00001
      
      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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
      Ozv*MD@OQ2KoBsvJ=ADoL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTA0W7(LU*CdO!OwRY{=b-f_14+g;tY{dr!pQ<kFQqZ?F&eoJPkz54-m6wNt
      zf<M3?CHu`JtXJ#?GT(eN=bZVzGxPX#_W)oOiz+e<OC2vZyViwe#*yQi=K=o{n)|%x
      z2bVim$WQkyJEFM?g<)LcT+8d2hwU!6BNaJ@`M2z!q`?F3**r|y42AGAjCk+G7DKi9
      z3A4eFk3$~3VrW~o>v&GI&5*6tTMWvsf67&iF)R=0<AsifaR%rZMbW?nCK+;Dsp?Lx
      z`TshNq<-ngQ4}~{r*Tqm4TE9IfC^2_z8DyWM!hs0j~~RnHV=MVZI?3?o4#$iEh}(D
      zE*EuVF(XPEq0XW+CuA5{PwFt)r6(5u^8JWmwpJhDt|r_~!1|FN2R7exL|x_gm%k$J
      z33Jp=mi{4RP!avnE2@a@C@M7S7@=K*vVFpcuX>NsV^+*(`zYL^lxB*|%GU(QV4B7$
      z3127r8pg0mYa5uM2U?K`kSIBlN}Ckv@-VdA$Jb|xoLo#OMgl+;-v~%n;5&_?t`&-c
      itlXe<MKL)(;r@`vC0yknckUx@`7L+*L+-phVc{>7Kfta4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-**#56#gbjvvjj<X^T}`P!xe=Q;8_bkD$^NDri#B&|vZSuuX?{A>HKcZmLzE
      zeDX>E5g+s%+8*WT;n_dR<2SQwvQ4An%g)T5d%yeL@7~!z{`~cK0Ozr4ASGaLc-_)N
      zXWJ=tL$_7x`0_zes>!Xkzf*AnxqgQR=}WIE0|Oa>Q-i(>YeDEc%`o98kadHVK>7mW
      zzJMXU(064ZFkS6O-*ke_n$s!M`Ks%=;d=s=eD&Gclq0N`<874c#P>GJ_X`by%wl_8
      znn+{J!YIZCuH+M0qxyz$9s*Zr7&t00d5E)#2}~*UX@PXU&=`fla~2F7QM>0Yj3BFa
      zFIt#ImI8S4i)FGBn5ep*T<&hIN&l|1)}m#q+HN|nhU2^H92+y?rc1fz|BoEhvE#5&
      zAtmsfEe)-iClwMfqs~NhNS^&U+T3(o>kM6HSWxe{tR`Rh?6AI!zVT&Kc0#x9aT@Xh
      zr~BGO%2u4_BetR*wtd<2HDEK#AQ^!pI<Zc8Ic`#tY~h*uW>V;Lsu`xhs0LJJQ1nM~
      zM-`)*^`?claDfWZR+m(0GM@yesjS@Iv2YQWs9)fIMFgsID~Bt%YJgKZ)-RR*7TyIX
      z)(G1RzVGY^<nu|vZm&I*&9Hnx#Moxw8XrQ^Ii6n9+mNAF<IF#+krYUAzHZ?LmPnSd
      z0tW*BCXr}lY@$1rP!rRQ5}qBBFcB6rEHqTck1SMCBLss5E+r#l_(bHtaTwWlT3zZq
      z>hpKAE#tvU1RqHIiG{i<G#hzydLFd8!KRKff*r4^cVp458gG3z>+P=JluNF9YjeZ@
      zYv)vF@e1cC%^zb5Q|kTd9bYup9B(*Y{N{KH>6PJn+%C@V!?K@XVs#&ryEtZ_*u{*U
      z*~JS#>*zUtXNUz<h<6c_Smb#LbNB$qX|*F9oWM&w5fLwQC-m+l`K0ttaY@tqDo(`=
      zN?euKi2WEdKXQ{IB<QA$H4SY=4l#5Fui-Sk&hS3No3px*9!&Z-6n+|jSs4mb#5}{5
      z3KiC+_>Dh-Shb6a$v$2mMEP8!%tW5OI>%AcYG?4q5L(yitqPeX=CM7TkCwN|@fTc9
      z;VIr9%pwz9XL}_tkYmL48W9y&OF<R)u=w<Fy;}*UR*$L0PN})b;3jUxXf<|2%}Gw9
      z&F|sEd;NBsI#I}B>1x1}k!uey7XzxHTGlPj;5P2W(3O~|858~Z5c1a?#BUN*%^tGZ
      zqk0$9F<y~0m6W1SFdC9?6N-tRVk`e0_}$RJMlbLJD^MA;w%~*4r;T*^o<s9P0wEix
      L7P!Zl6h8e6T@${&
      
      literal 0
      HcmV?d00001
      
      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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
      XQg|-L6B4fh>h_82zd{_zg}?tFN=2+W
      
      literal 0
      HcmV?d00001
      
      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
      zcmai233yc175;BB!wkb?8%Q98WfEDE$ufc#F&TmeL86eL1Td~lk_Q=>%*0t(Tx!)Q
      zS}PV?x3;3#YHC#!l^JSU=n9I8OKqjLb*oFOwRLIhR;B-W?`7r%0>YPhckVs+EdTk>
      zx%bV!FCW_lV7eOQLY~6JRnb&nb!crUkV=Llfv&i|G7)Huwd>2{;iMjS!J#n1SdWCF
      zs{&1}tM#^|g3}OGn6U8By^E<qkL%GkJyENW*Sbz&tSJ<Z1?p2PWwG5<&UIHJ)tZd!
      zx`H}eVNfs}4JYdqW|kdQZ&qJZD%q7vE}@1{XKnd11;<>v?m<3=YZ!tN3i)N_%LYTi
      ztHB9|JX&F#;WE9k?>0ShqmZ#JZJu8>%Y#uED@uwKDlB&n*;8x!VE{uP!qHXq!G&Ul
      zF*(E<qJ%LTip-10V{tboC=?p{eS|31&ON@)a3aB{2jehF4EhubEQ9@3i$tl0V=!4^
      zupl)zlu8h~O1pG(M?AJJ)Ed!i%WdxEW?h&{7y2ORpAZkGpiEpSR~VIx*~*p)WQ7J7
      z+%8lpOzzXNG@3|tb;aUIy?ve))x7m>dRH<Wiz*CX7>??Vsm@kC-YkwW84F`=p~$jO
      zJS^X>Nk_6HoKWyBJUSzVR58jG4om_PiHsYOUCc5qKP4=inq4@W&tfA?=^`6~{qjhG
      zVe6zogzbrDgTS6_$O#u_D@-xau~k)lsBI1Nyd)Wm>seVB<`C;XARC&p3qsnHH4KKw
      z!_iy~rwE;g7*-ePp>{nk^Yb;FD)S?<-dMFKscg`2nk+h3MpB6m1y5Ee;l?7eEI4O<
      zXT-Nwk0+R@*`?E~k1d^3Cp()oEEXO*jU6&`riLY=%N5nvNj}|Js&Hzs<dmkl%`J=P
      z`J^9MrhQ9VmNd^><SXq+CcA0^Mt7-Bq@vYrvCcqyvfXGhmTWb@m)5zlTp<uFsjBjw
      z+PKs=Hxf!Dx<bhgpWsq05LO%g#%F6TJ`Y-OjtguX#fKto6Vq@m&SU7|#L|Qwm&RuF
      zgtOhafZc-S!<r1S^CUJTl6t4;Y}3#VN)74?v5m3UO)9f0$(Bo-g<3aO5h-6h7E8Jj
      zmZ5YsH`d57N{eoEQk_r!O%n?-4PCfUK?}7eVv!VC#8?$Z_t~*my<ne^Y|s%$Sws0U
      zH`a3GtEwVu>lKCu1sMxX=1$=v4HrwM1{=9M)9~t2@-=A3otrP?oX-~&w|&VCUHa@&
      zH!dgfOAReoYUma%T2{-VP?xB`TEoVidI8jpYiW(D0-}q%TX3C*Z{d3Sxklf>S}iCm
      zKgU)|R<9IoH)!}aHY>OdGc=)4Vl|#4plv|#9XTsHLtO!$6{d%ajbzal8-9Zux3CWc
      zJh%<tcj0^ePB7EBh9BT|mJ^wlY>2k&>zh^{q3bq?mOC`uiLH#1$5q1U^lU(74Gs1d
      zYenV457{_!j5Md4V{7zi_#!FVyD&*U?$OYLo9IGYEEP=}>j{~^SHn+)9D}3!dUINE
      zx?jTsLV-bHIvY*8@L<0~#xzo&3P;!%+}KW3g2FssG}Ot&dazB5Zo{J*b|6hPp{_1H
      z+OAM#KRT=k4iCywTq`PeYWS)6=T62<c{h657J>n>$8@;NvSB7v0|_8yEDhfP#7=BR
      zDBvgfL4mvkgDW<rjKm)T8yl`-X*nbwg^>nZ=0;)(mW~uDkyF^K;k&p=Mo$PwH_PZr
      z4ZlTFDEYL8-{3+SJ)_}SA?MJx4&ue_jZ{hvEqGqT@9=_{VJr&Mj||Qc$VpiGl(MT2
      zz<IU=L%@YU_MO5uP|VZVg9G@JoWg7;e<3tJwz>m&MN;?bA&31@GA0)-ChP!qy75<<
      zm2zQi-i9|dyoI-!sI{R;N*CTwwa01R@cLaIEGvTN-!;60cl(NNUX-<<Gu1PWUbBa1
      zU;5a4Qp5pqi~3Ann*d~QjE6x(8d#F1Pm;6`HGG7Bv+!5x<j^d8ESBQ~m_K~VjsLO*
      zM^h0VhysjnWi0Mv`|?e5;}f!vojZt0ZhS7aMasoD$f`8WFSyFbK_=ha%1Nc@P^q*h
      zr=g7^Y}TG7u~fWGpC6V>&~WLU%Z*!hwNwX6h;Kfx=K1i-U6muRT($VjlWPE<!zeKX
      z8b62f+deo9sh~fDVg8C87}<+aEtTGa48}C}pt#1-i*YU9@fl34aTYm?9BGs+FLLho
      z_hL#*RR+^`z`vck24ghFppsUqsdXy9gZBmpPUonJD`%hx&6td(lv#!V&O$9=4^V0W
      z{R3e+7Ss8Zk@&5Q(F`0%jiVXO@%S1)1N7M(6`>F_aRMz&W;C;KB6lg&U<BoBxpxqs
      zLDU&BHgPQa3jB^8IEjJQ^KYL2QTWqXu$>F0(}h$4T)@v2bUMVXtu)<cI4N*Zf#sxP
      zSVuRM|J8=VG_;zA*3eLdhB^l@lqVOq!y{77Rz&+H2=Br)8qH|VFuphU|DJ|9z08~*
      znZ{YSVYnfAKBs!18RHe%<<`B{)Jk*eq(1QuoA~OS_#RBRn~#_)e$LTW)cQ7JS{iY?
      zSjt+k+~XscidKvz+zFzSWc(>|XB~W4k7?Mz6kN<aUxNAgI+=9^S#%{6bv43l*C|}f
      z+3Rr)HsJ>Tzm*q*d$1V~;zp#|*mvV5?7_`=8n@Wc-fyKfPp-j-qfH8!{F!3lw9e*t
      z1{;jIOLB9$AjTPmbvuLDLbZ1=#dl%?wvw=S*^E!g8s~*;0OPk>#!oX0ecd$l6*=^K
      zzaerNT*1GqjE&a}<e}ea2zS%Nd-$T-gGsm-Ww?)p_yEgo8;j~8)MGmu@UYF})3P4(
      zayNj->sY8#Eho}29VMGe%+WV@Z9$=UBPo|DX9k;kFiNJpHxA^W31OOrm%(`Kq;rqa
      zxn9=$&utE!n01Ipx8;z7E*RCXrn5&#hY=ivkBch3H>YuH-GnW;u+lLhjV+6MaaT)a
      z20yBCNPoLKm_O6mgVSaF<C;PK0;h9D2KR}Vz1Y^`eJF#6iw33fh@kvP8X3#;YzW@R
      za<OzfRe`g3>%kp8aOMY#@24YXx2Y#~z+SfI$1xmF5dVFAGk=oocnW?9C7)q?dlqx>
      z9N#{kht69?6fcnC`*As5B<Wu=AUM-#?pIk5_^}*6BRGoddDh5{OR<a8&!e5S_yt$<
      zY2`fp62BreRcy__=A4t(>Ug`^ZM06_cMb)T*7G?Bl=fhPzu3`-Nxx{-!Q$HwzL~3m
      zi3ap9bLT7M+N+H6HAeY5>)>S`Rc{y(6q;JC2&mukJC6lD5WlXaHaX(TN$x#CGpi(-
      zhc3<TfvecLVz$99o>`Cki!<1Fs5@^n*mnrVyF5eQqdWiNuOaV~TOSzi_z4P?Tkbds
      zl?mu58hwC3<#ESwYa}jiwt%voI7)QL*}JKN{NIB*KYi&>ATB)BpF*6G0`UmXq(Cah
      z3&flFmHoGZtNR=CXF7UNR8dvnn32YFHBNt#(-3;R+o1{^RlBwxe9JUAHfzwHog5DH
      zF_PYW%;bE+o4}{2z-K&ZKWAV40`;uj2HrdxRUVpEKF(JTzMJOpx;~iiiXL35hTv+Y
      z@$x&&z^l%TG@HInB&vCSZ?aHoB)-4LABf)>?BYT;2hL~Hd69BXqQ{rF0Wd7)njFX*
      zdvTz}Ild!<mrMYLR(b!N#>>l%pvP}L_)%3Fuhlp#{ER*+rE46C-q&-b=&z9SEpqI{
      z8?0c_A;p`)-vsg8j(>1R-<ddIQ>tV7p+;kfD!@oph_QT@s4<wPiV#raFiREVWHlZO
      z)CB%2FcGWOB))E!@Ll;B0yo(P+Quws8?&Hov_KoeBkrH1W<D=$qb$&-@n-TqE7U=_
      zc!M4Qw9$l2h}SJ>m~bTxzNj=lkPF;i9Mg+ni_ysbLl{ghJ>vbi4~<WE3mlaeY=+!t
      zHo5-^X}{!0k&_>z6pvL~3nXu|RJ<-nw;IL(RSqW$V~DEY@1vFcfwKx_sv0NoS<5Cp
      zSIxk=>Nv#sjH~0ZfwEVsnKrb#vuJf^(ds5z(%GE2j6W6##oW9em=r5S8)>_nYk8D9
      zyq|?QFMVW8KHG+QA0j6jyYtj|HtY{`?t2M16mOV{f$&+Vf`(f@b9>gUF{~D8y>ep}
      O7kF!6?Xcl1=l=oXf`A49
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8+fp1=6kP{~8JIMLdklg`Ov2TS#A^f+6GEagkSGYbsFS9r89Hftrn-AD=!5Tm
      zfgfO%FL@BP$|=j3Dk&dCzsYj#)5B#N5SgO)%sG3leLH)f-u~y8-vEpupF*9&P{Au_
      z9-8ZBrW`tMrsUfzL8f38y_L+(DL&`S&{?-{+qR!VLZMZwx~5mi+**EUTcJWzV6T~_
      z)uL}JbllIz6~+}BCoI?Toba+j{ov4|LSm|zx0|4F!axI(jc6u~Hd>;gG)|%|h1MEt
      z^BX~EuNi1Z2Vri}%x9ft-}E;Wx(4?doezD-D~t~<rb*vrpc{<}&0;<0<a3s3t<uet
      zS;w>I%4^HEzhExATxri1Ez?~zeMf#*7n2j(>on@|yn)kb6wW>aF9>H^b6Tz$1Pmx#
      zbtp!%|2vyZOOwYeOh0x4Ch^c1?uos#2F{^h;grr#j+wN*Fqe1yoGnl>E<6&#Uh1n^
      zP-qK6(+`)-&{}0$=BOx~!v;nqkDWD~W<D>xOnVR(OL5Ev0~x{8`r+Ga#dSM^@gRhe
      zVTFN1YI4xOAsyjs242TloS9^~Ko^sz=8?@hH>{g(nSnNxJ#I=ImkhikxoNM7LvJf2
      z3wAgoxbuhjGIY=xA-rth3MS&NkZ9MHRK&`(pFNsZw^EkXVU^R<k1e|tIz=x?;kv@P
      zc(YwItw*fQe8>*k)fH!M7`Tb6JR3F9nXa2-I_N+vU71>S+`MmlQrSR29~hVsQ1=0l
      zoD!l8JFv`>9TiFta|Uin%&ie3+7=VcbjdXxPobsk#ZmJH76esI{f<I}OGVmwc4|;A
      z6zm|J-|#FkcE`Y7>7LUy?p2j?0kt?TRvgcCoiFSZKH*5&JJk!Te(`hZPhtAZKu(xi
      zcC^_V>_ur-)4)C5qVvVFZ`n5->G00jIJ+Rc9D_Vv9ES=$GKu)D7mY~qpZ&>S6O{7T
      zTK^RFKO)_3RM1jE=O)+caEi}%B=~$2DV2qxW;wgY@SNTiRt}9S(*x?)alL!^XY~Al
      z^xf?574(j5eTU@8*0W9S$=qw#jGbCW{N3~m7^js<YFt4xWf!h$8;16-8!zGvbrfDg
      zf7RM0O0m{3Qo+kl_$4AsYQT&JcSj0UFja9L1Kd{_L<gS|{v_oN&Cp)VX}!2apY9w(
      zHF_x3D{(4|RQY45Ue(1CuddU)6fHS2TEWG5biU>}6KU*5m&6-7I-*#t0Wv7Ob!fWY
      zjuU=$gkuq*Vr}G<h-3S+KKVTt_GkU;V`$!GQR{Gxs08Vz4iHYq3BNglaHov#9Ygqj
      zobcQKBy2)<H_!|{l*VWnu3$D!^F-4`XR`sfnQSna4-W-@6bJuQ1O8Zp6&Be>@!VV_
      zt@x0rU@3l{er5Ha?qf<+&p|>4!#<|_I?G>jMb1;-PFsE|ZQ0DWoMp2<7=0$sO{yeu
      z0xeW*L93QP8$UZ`?k6>{MXf(byTzS9*~i;_1^J7vY;&^wz0ak-$R*VyuPBV9M_wzm
      z<XEHZm1|#1Ue#Li`qh$`rIx&@wB!}2B?l`LvU`BYz?&ep!V4v~!r8CUoaXdiVOhsx
      F{R^qV*3$q0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fLg+5Iy4<OpGZIdLdAXxwVO*Se5z)ty&@~A*CPz%KOGyB?f05Id;Vt^nd!0
      zR_a65=YCYxSwo`&uB_de@ti$#W_Ex5{{92ND{NaZ2s>Ss`4{4o@Ut|G{6u!;m46_D
      z%QWHbEah!;99l35b2&N^s_UP$FJzDsCerv)D#A*$i0$<7T&MRK7pg(V__ab@qbHIh
      z)sa`Sqp^LF2EG4te$;7=8;C^o36<tuU7VcU4^^1HB@AkXCI3n*O#Z8<5O8{UE#iLV
      zdW&E-;*PXY!n}hSR0yS7y;TO`p@RubYVWZF3sW{0v1Fl2SS}u4Ud6#Oo^rcE6f4Oj
      zwfg<Cn)8{1GHmU+4yNG{W}Bgs$63EElXKCI_;95e2O?^TB-HWEPc!X>L&9!htK%nd
      z=SA?0?Xx&b0{J1-%nP@HyZTND&XH0wX+&Z;ltT-3!g^7sx6cyF;~#LjpAtV?lNS$<
      zcj(dOmfOuOH_MiI&ENssS@u4|U_9V@-!SKGkFenFjPS^N`4vxoVsV5OuWF94`h_tD
      z)_7ma+4s28J`eH@GrdC<@3D#ltaJYLH6J#x$q_T>dURDcS7hX#)}-~i`U;rKz!paa
      Pp5p~u8^m7?9;W^PTSDBI
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^+fEZv6o&uZ>6rmafpQW=L~Vyk0fifg2{f2YEX7dLgkl2IVW$j~X)~Rwc<oE*
      z9ar9Pp@~Feq7UHP_yX$Mn=%|iqFl^AuWzmOuhsti{p|;UY0QP-V;HO0&CH(h(#SMj
      ztD13mg}=@$8Row0&`@w`2*J+~lW(eqUCFGL_qgdY1RCO&A+wqLH)Pyn&NKKM)*H^i
      zbcV2L)D6>e56Oj|*VpyM+*Wq+`C?XI-(YCZ)@<@(yG5hg<O;<-$`C)h-_rBhwdIxN
      z{JOY_F$5PZ+j5^UD9Kcj++=GzJPHNfDmoDhp_d_jlTagI=u;6uP^<=2gb)_1Ar%pX
      z89H;8&GXHJGI!REa+Okw=W3==EgFs`_N_y|yK6NV#{WYm5+}e9>Ov06p+q^<IVX*$
      zlBxf&z9h0zuhkiRWvbNVO>F~al^YIK$Py7W8@mkC$(un^#VFF44B_FW<|!ODTz;S;
      zgDHlH;W);jS*ugJS~7RF#pd;Ej&xDku+3k|-eiatYE8%FPc0#Tx7TIzc2W=-RNc0@
      zldT$!2B$hiyhoU#Vv61g$S+8vPt;h>RAHJ25v7@-O`fT=Z@;kbfUu$7q8DAXDv&*+
      zc|iMuxE34zj-C@FH01>Sv^&AzCyBX5V?sK820wCyTtOUp^kWsnbf=y|FoN5(14ePD
      z<zSX(;h;_XjQ;ls_>Yxi+WH`nL3y=y0nz3m#&EZVn4^pZLM22(VEj8XAFnWq7Z|F?
      z821<(6t<6Sh9zS|LQ0h6OzsTI3KQqh4k>bpB-+FfUPyT26wrcqQO@^pUk3KTlhYtO
      z=|)-jfOdf%VuiPi4T-Ri{```{UX^s4gf$4ajXs#9%g#0KeCS0|))7cSYbo=NEJZhD
      z1)jdaBcwD+ZZH<xrrL=UD(DK$2_>zFM_)0arA38>ltPA*pI-J)6wZShp@sq~)Ihsb
      ybBprbqu<3o{Q)0f3APMw^wg~<bhf3%2)gNAkTmdNMwaLi9@8A9fP3hhMffjVg(cbm
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`OHaZ;7@Xx%1VQmFzVKqwUTipX0)*HEB@yA^h19ZXi*=jOh49-v_yhb=;@71l
      znvi(u?0lX1W;6Ts{qYH)hH4HehN>%O=ER=c=1ls5Ipr>2m@UtqT4Kx>e4Imup{xXf
      zEnKtrI^m9FDD?)<qh4p!><u38`V6c^vsNe~X$v{DgBec)%O!*6(6R<OGP-4uDDxi9
      z`HH<TWMfui$oUbO{4qmXH)vi6!tkxhJzvo1Mz<`Z`_Dz|6cupcN>A;u7>W^>T|1Hw
      zwsdHCt#4fM)K>rN#*iHDA4gT+oVvC!<SF9bm+knLnwK2%w51^&FPyFf>vLQHg%tYX
      zZ0hiiA5abDUsd16Eo)RIs5<&qkcCE=BbLGziu4kB6cE42Hi`;M3GQH5@iO)l?&Cn=
      aA&wLt<3!<U!YhgXEYY3gLS<g6tg9b95_|&y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB^j5Is{K)rz9v3uVEQhuXNtm}nCdlEw{&4XX=W;F{X%rB(baR~i?7fFEU?
      zTXe^Q)tou^bk5A__s{1SfO8z%un6@@n7H@iS-4580$0n4oV(ss=uSA2b2&2bN^9|I
      zBTHzlpzg}2M2162$X}>X#g`1~eXrB#5wc!1k`C6fVZ$MmQ{zxYspEAr9!p(70h_FR
      z(c+O%;V&Eh5?R|p2E_t$*d|o#3rQftNjmC(hj!{(^i?QtlZS!ScVZCmW+guwil8U7
      zGW{Q!ji+ixX!<K0nMTqkWM;7@SbdL>QzkJ2bqG#3O7u|PC}UPx7U!9{2{rHt{u|&5
      zz9rAqX5=$#c&FL=z*_YkTW{Q1*fAVe;DkdwMTt>up+p(G+?n@1?5Fb_9N>`EyaMwU
      Gj(!1kW_pAG
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZF3V<7(F+yWLapfHA!hoTSGK2(tv^reZjW25C~8yM%z)xZL*Urrddoj4C7z%
      zlgf-=_@FaH2Ay&I?2i)9y}R8kos@pqz4vCHd!F;0=iHlr|NHZA02i?pM@XR5?DWeI
      zj7LVf?^x|}*KC@P%j+$pTj?~+$7VxLx6SYSW~Xk(5fK<y!EK|{EZ^OGVAh>DVgj?r
      zz{GJvU{Y<h?DDqRwT!m)gR$2(1w>CET^+&(Q!Wa`j845}cNtd^2)E6SK%#B*oZE&|
      zZwbs)N2R{Ep+0kavTHS4&c5Aq?sqM-v1Rux$Fd0$Te3Qqvm%hmAC<gPs0l>Y?S`o#
      zjJI^Wfh0NP3$+BuS;shZIXj~x0qrC*I2*?dbB-=X$1LWUm^CyVQYTPFZhu?HDHrIR
      zj+4*@#;R7wywl&`GrRX)ktV8k-DuYg3P;hrA0tl7qIl;=N^nFIDM{3ly(N)4o4e|;
      z#C)Z&F6p1wQA8;WynIP|4{d_StzM12YACw9jNP{%v1xJ(S5djTD4?}%`@1!>MPz|o
      zzEUY1$7xYx<sVB)Cj|7K=~Rb3oy(8hebCfGO~Vpa;#d}#eogmvT*D{iSZ~`MQl88g
      z0*!XfyD0Tv({UPO31Xg;6}i6Bo3Bus<>uF<qN)kjaKmyoIt__b(NU0{jJ4EH{7k%6
      z&&e|MU@nEE%d~B~->sXQmOK%eBYL+WeT6wv4kLsp;(S8VdOXk}=^QoEOKN0IYNSay
      zp5jBTx%W-Z9x|S7#@XU?Ocuifq>7~hri!H(m=+jdzL*&x`#U2-$nkv!F}@cN!RO3Z
      zrd}72<|Q(N_wf$D%(-ZI7kRFTt5^v&qYgw7(pg@1)61SMK0|i;+vN<$`JXYF`4Qus
      zPGw%;y%2sybYkHtAzTU?N8mDx{xFa->!-|0!I>aVAD6w97f8`9_==(cjLDR4x@hES
      zcnBY3AaGSdOBjZF(1JC7;KAHf$^*&bj-tLxm5xSRQD{j;Jn0indPD^-9gF)5MzLHw
      z2KO>0a?5VgA+paoDKVvf0?nN){{^wb>6E+7G@j$5-xwIwdXt8^9?&}Hmyq*HATaMV
      zx4pdEyrh>rt!1itiQhOZ^R0l)nlJMe%J0(NCW7oXUHJzV|H0A#s|1oyc7XMvFHfuL
      zw&?xOki@-!E-9aE3ZJr<{QtlPHoXL8wFaURby&A+g6#misL$@Y&+Z#?lcJ_2ozgSh
      za2=d_f)n!Cqz=>jf(P_Vq_7jvGVRk#d-OCOssrEN9O>H>^UeP>(h<7>%0u7Y@>>$D
      vH+#4nUj;S~>#gFpC)QQ38?oZ_E0=<+*4JvcYx0<1RZLw+QuI5@Rd@dfRD^7r
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!AiqG5Pg%TjmB!VYEM1%B5DH$&x)6V5C~o(y>F8xU5OjqCZ)gSN$}tY_)+3)
      z(?g+$UiQsA-n@A`zklC90Pb<=!697bx(?sOQiOG-iqObhuENP&m`G=GC9|Y5O6MM2
      zLa;|_rxN*5OPxwW=TT`@JrM>s@!G!-Iu9GWhv;@na3^IZeY9}cMH@b0xUJlFYxKQX
      zY57vW&!l-3vx0Z@<1!V+R2XIZ4e3^MwIE!_d*W`Q5L%1MSg)OwgtoF*AW%f`ld?9c
      zd{%bzVCO`4b{r$HAD<VD;9qqZJ+2~VE$@wk;TH}*xpZ*Eug?gKSs0+p)u@r-7$@BE
      U0D3rGn|U}xpVfqO<{e!817ziJZ~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-5Pj38jmB!VDtO4DM>X2ux#Gcs5C~o(y>F9kx)L|IO{9Ozli<N0;Exh#
      zTMtDj;$_~<<IS6o&#(6n09QD6(I5o5uER(1BEq^-MQCI$7vX3oOr$fpkXce0rSsc*
      zI+ezS^LK;oP2_Vebt(z%Yo%3nL-0@I<&;9`JX|*&MrUJ!Gb%Ibp^5DdTJV19*F9JI
      zZmhJtub(E;JcvoblX`KPiefB`vh@$?R5LXvT*m*na!6>-D?>Qhv@xNj>~{zh5xk_V
      zO)Bq{-NN7Sx`90&eXut_AB^BT+l($}5wn(e&jbGrTd$lpu*1<~1OgUbpu<^zCBrWE
      WxZ(zMvA;BPaeyAH35U!#aP$pQqI^;S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=6r9%rg@S;n_^liy0tXw<8ZQJB4ABUNd%+DXsaw+)!_U&h#KeO?z#nCN
      zizG_qz+vC)zMYw!y#4%o{{V1`k_CfM9;mT1a-Uph97)d!#6V1(cH^i%bc4p^F%V%W
      zePtm=$WLjWs|L<ZZzTE=!RQYOR42p)a|wmkFQ*d)QVq@srY97$nuNr;R5H5YR;Aiy
      zQQf~6HcaF)NFzhYwWJc)<A<II?%bXyw4vX3y{;QbeV#RA(NKnj<JMByIYBb=f6@@v
      zE7kuQQy^?+U?EAURhG1^c5RmB2zJLG2YqoVbzrOAIMFj8WSUBepzgV0C_)PdgyQ17
      zgzWsZQDS40KS{4R5?rCfO)&+V(S)H##=I3iIgG>@ue~Ar!W#p5t_j_YUtyK^nySqT
      zSYzZlV1w(t_!Y%xzWgh`{V!(cG`42qGNYl5`Q`1!FY9XqJJY(0Jw`n@!afdRe*>Kx
      Bfgb<>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O-sW-5Pg$=q^8x@TB}w;gbJ+(SI>%<P(dgPt@hw;6PI?|m_X8qh=0nH;K3i@
      zj}m92-U?;ec{6Wj-tNrT_s1uIQ|#HW2>atO6;t^nMLO4kh}Bp<i$SmLPGo!+>bZ?P
      zp_UZ{G8~H=Z>oG|i-bnT>PQS#tYx5Iq!%cH<xdFYvg6IzxhE9QH7i{Za-Hsokawd8
      z<sgS@1!YtS)xHkZb^7S3`1V($-j944j3n!_<{z1#Pjo^!=r8&58KK=-TGSmm;HL@B
      zFiK-zU25}rd(b;JV-YG>VW?s^kV&Ev8!bX}@w<f5|FUqxk~zKwSZr;Sc+-RxIE)q_
      z9+%@)jszny7LMMr_Lik<Y>OHBigor)DHouQ4S<tnG?+2Xhm4lVar5TlW|Owi%<LAn
      M8O^wa9qgj@1Ef)Cq5uE@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O;5r=5Pj1E)mi}&Q86(lY62dto;6+wCL}}+81741aY@}K{V>FT<;lc@KfoVl
      zoGl!Q9(LaB+j(zi=KJUK3&14~99V?Ism}bFcolw@s?d++RL=cD_oS!O2ccpI1wu7{
      z4~3rk_v4uiQU@hMJ!e(q4`r-GsNTdll!W4wij$N;JwhpwL8K>~Tq~{88-m?xj|hcM
      zG?6ZBls&lEAXNHF%e(AlEaS(8O|2gVA{+^}X4@rMNS{?gIO_l1^cCT_^<PbU<bqHp
      zxWg!m19_`V_s*buZssC*J*{Qj2}P2~#KAtHvHDjQEtiE0cC`5vVR3Y@#)~Gb=V&p<
      zv+~_z)@LNf;@Jl_-#M{R;aJMaIjWp{ivnz+21B^mX2yt587)R5uCErGXA3)dY+#qs
      KOiS296U|?ChiRMu
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-6r7iSMAO#Rs`c~WL8bLz@T_<#6$+(FD?NDIwoBZSZe){){vyww1P}fI
      zf0Xz(2qN@QLf-7o%zMnfukVjf0OvSx;Si1jo%%EJB>Xf{p>Jd$pZ!7Ss4wPndTXLb
      zX_6Ngc|t97g+d4Z&3Gm!2_di9MX2}wq+w!|4lW2qEd!CTO810ZC^etDOkXOkk}IZ~
      ztr1UXM^ot`hiVxmlnK?I(z2h<$I{%1ahOeyCL$aOqwM{c%qI^jCY<z^iO*?T&E=e}
      zkp~Vz@P<)pCh}U@2=1VBW}iqXceR$L9f~-Xv5P%IV{rmP<=+Z%$a8bNc>5Pn<O;Z0
      z$#4}Oqr)HXfPEFd`HaL^IDN<3TPD}I7A;wL#X6s@)efs;17NX)O=fKKF{5KOZr)nl
      TY-I<HtZrk6(Y~Cpi+y-M5yNy?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BQA-;^5dJ2)<jnP&q-t%oRYWXAMNgkA1qmq#!AKfX$lE3v<E7U<+1nHURv(Jc
      zhyDP6RO#$B(3kX~EIS{w^UcTXH&4HQ`~+}@9Umpa(M;#jT-~cEw{a2~p7BG}@9bYI
      zlX3f2nRcSGtj}4VSRWptS&$Q@XHjoF=ZPg$Z2E;YVXwPfY~ad0&AprVLXP#69|&|w
      zSTk&Mqc7}*p7!q8D4QCoj0n~9SjYAQq1-wc61;Xg<p5<gLOerQ1K~x88UjM28*9GG
      zzmC}q)Hq?nYB!yzWT;H+^2MWPZ{v(`{Ercr{#T|wZT(ln!7z}~8ie3enwtrKjNL$f
      zzjNYTBZQY)^B+q&^YNCjvD`Ak`mzmRSLDmGK6fjqN(6kY6exBGmgI;<!h0^+xnv|5
      z96q9cSpJUYw}P`OvF=p7&+xnvYJzL>=K6$<b-V<c5T%WU(mTPD)GDI%>aR%EH7uH4
      TxrEn6+{9KPB<sW*Y$Ny$Jl>5Y
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}+j84f6kW%5tVB_Wo3v?5dLa~wFKNu37MBv+QG%)C8ryYn3lzncjXI9(k!2?E
      z7hK+W;f1#jw9qCUI`9E}6vH}_lW2$sUZk_O_HC`bkN*1m_dfx=hPHx`z{QR|Oy4)Y
      zG}1%Y>ZTpDWA3Iay1v^q`>xfq6+{H)J%_GgchZL+1S0NNeN#Xb1j7B^KtQeN8~1YA
      zwMw}rFq7}u1J|(Ky3rk)VU`pEQzMUDMH*P%3(<3xY+jd^aL{s7T3FrpsbotVp3lUA
      zC0}clJxlb!QqETNl8jOWre!I;dOOFrG))RjdM3TJCh^okP&J?R)2Jg08I-d%=`%g*
      zSg#iDc$Kunpz^5W8G-0^%eLGb0;l7}BcZCUW7(Zdp^&Iks(i0ystDs14VMrXI5oyK
      zQJ;c9Qo{tI^0cf$0lCc<E!!*&ceYKZW^8vU`CPHrG`e-eu_PWDBkmU#hp<%qpNVET
      zuAM<gW;xa^HR2>KId}o3W4bkO#Nl{?L!KrsAAVJdHqF7n=&+%a@x<|D3f>in9o4wC
      zecx=l3a$&BII<ROmpkXE$l!()=Y6Ubr)UbY0t-iezMi>ZyDgnpk(bVE<PuNRC$TP|
      znU2$QR{D<Fwsuu~fDaY0>xJ=hXt;?YH=8UxF|Du7)*+qC<EC?*po$X83T|=oUZ1YH
      z>!wFZ)_cy5;cEB@6>dn|Lju>vB)%I+>`RmxBc`NW({LNyrl`^Hn|6yEGA7;eSYNY@
      z%<!?y&=6RR=l{bmjJq1%!BrXYsfN#Rm3!g#{0VS8hSTAq&5vnZAT-z(I1`{0oEuj!
      z>d%MwsM;GkO>^Cn3mpsmaaN?3SmFhcS8x^~c^`NR$=ks9SxoZHo9Wq9;^_d^h-U)$
      zIpWy>juD>-;5p*?06s~4Du5S=PY3WB;<Ew#JkeqRpCdjWz!!)w2Jj2SO9A{MBII!i
      zFOkv9JhjMET4Kr6J}xKEJwYOQ{s~f#JhoT(ob$eaLsh<oitotod#uo&^y84mt3=Ge
      zfBfsrDo;|ukav26r!cK=;;m7|G~d!|BKa7J2Rwuz%SefVAH39>?=VU&@b=i?)W3s&
      z8XL^TVmit7M;4J>S0jJmS|j`nnFf0x@As<3XIO3QBeyxHKgC9A`AX_3Huq57T8^oE
      z*xFi7?&FS!_wdO>=J1=oz#Rd8=0tztR31|4M@ZpU>hK%?FOLH{t&Ygdlk7cw&W;w@
      TlYwn!TH?f-jFCFEyxitL-ZgCn
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0-%}f96g^*l5D42+v7xjAV#Sglv=K#$Qi?#Sqzy#@p+Iffge7cAvN73o@WuLr
      z&NzK@#+P<Rr=t&j;l-IIov~vd`{0w~lYfnP?j}-3wmQsw-~I01oO`}=&+hQsU%xyB
      z(2sHe9);daz8t@)-_qk{+swv`M#k8R&rV)6v$j!8<O^kc&Mq2yE&!jxai`F<;s+ip
      z_>8SWQK3EQ4mhk3C>n*Vo;DO(lMYZ;&u8L<H}e@jZb+5a*9}5QP_Rl0D#3%bzFsnH
      z1|^4wLZ54gi4C1}*NiP=Z69laJ!j@k`@F(<xYm{Q_gA>0%}x#<q!?M?EhnrsBM2{E
      z*3g2ZystZIWFdeyg{Yet?o@*ap<O_aQ)hS3L}Z}}3a@B5gu@bbYVe~$qE|Hp(5TRo
      zH1o!laxP^Q=k-+9(b`Ju*#*65%DJBO*&8MWj=bRV2gXYsL$2yk5xQed!5fYwgh*IJ
      z6B;FoY6zk^h(4SN;IzV#f6rV)9H%&-tdY;y8&cS>;Vrz)RGQNq<IsKKL}Wsgc}K$_
      z&eB6>X+h7LwT8<9yh}OUG@hND*6lPwhcObsIfXX&Dh=m_Loj35RBf)DDhc)XHE2S8
      z2;(x52{H;N5|m%?CN*5d2MYe2bWj)zyQ;Wv%EPV&b&A80<t8>tXt;#S)X~WEa-J26
      zIfQ8qSJ2E>rZ`*pe5m0g%#zPKU0q`Lp8xMIw1+US;bYLjjkZ;L<rI#FBL`hBYG2i`
      zgk{Q~vu@EsGKFQqxTfI~Tvs?;qENPJmu(}Fw=IQJb;Is|qhEmC?*(>uImz5-bpbp7
      zQyz*TDk~1*P);vy&Xo%Vt7sckDG**6=Ts6wj%-828!}0i67|L@BtINnX)Y#BCap~h
      z$zRm!Kb3kG1m~=BF>TQCylA`2hwqHomUS15LeWU;Y>d~~kGDVrJo5fA^2pog>@>f#
      z)B4U%A2~bUSnhuQvIR%DzQj|RXCL>@XzVdsqfZc8ig_R7SOq7deHC;>Pgl_Ov-9(A
      zu5By_E^|$y71KCIb97*abbx3L2q*D6PlV(rqK9oH5{e!t5|UnKsZ@=En&(rw${*23
      z=zWGBZV?Hqi2aB*iK0tPE&En0h*a_B4pS$p7`P9=XXgoqmU!-{;yrGoq&}9Ev(&_@
      zxNr|wV~;T9<&vC<Nw$ia`olSPsA6$Z;71wBnLS3MQrA_*N`<X`Y|5js`2m_l-hVhS
      zxG~bvy81wf2&QijO}LJB?C@3|baTB#wSYzOHNv=t0bIuvZZNY7oqr}$*g_iLU=82F
      zz&&i>CuVn$MFlzhiaegd!tW?JT6fnJt7|=lyTnLQ&kD6p6T`#Uz}cF@{HoD^!o~ZX
      zQG=7&a?rHe(>j{WW}O+a#}505xdyz0{)befip-!d<nug0OUQp80nbDDL;jsu$F@g>
      zeBaJ*`&H+*clZ0<Kbe(|&h1Y+hWwmZw~6)zKWty33tyoZU(+?W`H#RIhsXI^uRRA1
      zP=T8cw*hR@#Nwa<D$-0OjR-kLKF0l2r<pDi=2o5g2%kuOQ#9s{J*}efoKEfPcb%4P
      TwW7V2P4$)@6dn2{*xd0qj{oP@
      
      literal 0
      HcmV?d00001
      
      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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
      U+4G>6xW31pEZc9Aa~Hn<AI?Tt8UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixX7=BK&$&#>ziUn$sPZ5))lGfHQsMUh0M){J^@X@MW;1Cv*4YS!)M!itS
      zo6htP)C<QuZhBE?8amY(z4OA~;BQf%bCQPC2FJ{7&b#NlAJ6-|=h;90`uSG?=kbY&
      zkib~ptE6_FTTZGHxP_E2^Kw76l%8{f&7HJYDN5f7+>&R)5ICv*3XYdgEo|({&A>!d
      zp!+ELiGVhNQ~Jm)rLxj@or3#?vr&)&;k9&DKx70?%#^%x;CMmKDO6;bxP(At?#kM9
      zTD?FZG`|r3n?C`gSn?ShDJp0J{j>jpe2VUJf6o^<eT*ADBCfYr2?T~)y3Fi2e#YC9
      z`*MrEQMp}k@?{;wJ#JibJvX>4a5>R3d?`KEa=$rkCX>t&=uBx##u3JVg)<l=J&9y4
      z#@2@|JcGEhUa)Wq-O75=LJxYC^^%3>YNtsHrx6$EoOL}pUny=#f4N3<*KBFiDdZfI
      zPvYyFMzG_uk>g<hd-80)bH^#qk^FQ)7Nr+3m=M?F1aaQNE4U!gQTNcnk`8@|*`v#n
      z4Sd(jPgl0Lr9Y(tU&ZStUK8kPJwgj_;7tK5F9V%0Q`{>EthYw|B%#MvZ8?nkJ)cs1
      zPFd)}voXAdw@q-aeXX%+Ko;J?6|x|`E#A=UnRd(|ZQ@;l!B$aC5G`EAd-^Wl;$1cp
      zndG`EnX&MJ8ez1wy<L{PlhF;$mb$;k@F>vk$^D={6KXAyY;vvXle3Gb_c!I9l5p9?
      zM*>4fYMn1-D-?Ncs0}wY)~tnPToZ_?3c6!<#{8|Cd(5GVTd^>KlwxDe!a7m{rdy`8
      z-K{tlF+eogQpMktS6%fP=zaP#GojF7n5n`DAp#RIY9a=eyq({J5R^tvG`)B5y|d~4
      zBz>qF?aO)UmD<rOm7`axMX%Hk*C?Me=wpTFY2DU!fkFEr`t5KPL-u$TBlg)UM(zG8
      z#_VpRio{PkfzAH`f&`XeAWNXj=)g6W%~6soJX^&$PcO0+ro>si%vD(mlF*g{71EZ1
      zqrQ5BO3utD6q$8c=jfySqqaE2xqGxiP}QS)_lB-w)jaA|1eN*!qMc)+FVt)Q$tnur
      z9s2=>zQ<QK*AYIWe8%`B#t(6^ib<N2zhkw2GWh_P!V^EBQ*CSe0EY1h(;=*=43E!y
      z8+Ofj|K<T=G{=maifxiTbbvNHq$a`o#*c^?_rgaEjG&F!Tuxz^%zcJ26p(?3GD`Ro
      zd-xi@?yslTLt_Sa@F8Z|p}-vGdA7hTit|N%4HR>V?}&YfrTa9R>HfTlut<Y$D(0y)
      zpK?c~Nit3DE-w^Y7=46Qfx9rnB&6Qf<o#c;xb_g&e`}QLA{r3AiEoJLTZ-blrn1RK
      K*&90I<9`6Ex~Lcc
      
      literal 0
      HcmV?d00001
      
      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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
      X>ZeraV9Zc7lHyP(WzNUyv_APSJS{=H
      
      literal 0
      HcmV?d00001
      
      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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
      DUW7H}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUUvnB&96cA7zgY{S&^DANMWaA4m=>u@ZJS^+qBM?aq&A~7-N1&d!orZ<n!fkV
      zPtd${eCkUd>P!+xAN&CQ3jHp|b1#%I4#_y<FtB&;@7{CH@0@#i`S+iH0a(Op03LzM
      zE!!>pXgo9uu4A<eeY0im71mcax<8rrlKm(EO(1#38i9aq{@k`~Q$TDAggS=P*jaPi
      zZ2|uc%eI`G9Av7So7uX6R_Qj)Fuc%p1n~wZGSzH71c8VSAN+Fkrj7vooT(9X&FyTN
      z{S9NQP5fA`+c4U7qi@Og;iTs5Si1tVwKGJrk+MK=*WIexO>>V*s{+xM>D-~fj@zl3
      zcFWlj@Mf~F3&!4fVbIlvV)`L7k*cy|^cA|<EKgjpzH&!eQ_h}Q4dF6o1DHA0bp@j1
      z3eF4oEZNQ!-oab|?+VOJ@?cDuj`#3B<7iOpk~46>5~k-_9XZSk=qkOhZBuTN^-7kR
      zlBVZ!`IU*v$M9)#pz}y!2&5*ie(i#Qr$NU>g>w3)^U!E}f#YL=i+pqY_U@{+XEq1H
      zsFqEJ%zP*(vCXz8m6!i#GF6$rw`1^tgl)I8ZuU&WA+6SQJ3R)Hsi}+7Htbg6uG6>d
      z*0Q_3ZT8FAdKjPKRscNfiOFkp+{O}nHF`bMZc4C9_B1$p(<SYN)9c~8UANybS1oxh
      zA}7~%L6YM`CQ3Kq;fI$>jd-Q_463iZWnqq*tZRHmbIIQ^mAiC^bGg(ZqQ7y@gBX8f
      zs=i2+tK4x75ft$j=W~O7cpGuP5djIDC#oDtMvodvPO0MpE)E&<e9BcG?YaC_9DX%(
      zUE%73>IirGKkO_|+?m8BV#zLlp#~qHbMyHFr2atKgPXb35i%t$u025{f1lIZgF~e9
      zFT{(HtZ8M~Ele@E7?#-HGA~_)cWp%x76+gssdLEV10{bB3n;L;DNHkpMbgK(<0|o_
      z*}P{%VcT3IjY=nD*PbGoJHWYpgp$$lQ|54h=o7x|!{>cIW>!M6R*Cf`F~8!UMGdo9
      zQ;HG;w2`8;VwZLo@zId;^Z>q582=8SgzLkdM??=uEa_rN^Ok&ZU+P!*pCLUT*B)y^
      zIa~7Q;(mI&FAJf^KJo1MRor(Hc3K_54eI|EA>5-g-(d##>B%NttJAITm5wh4T%%r!
      zBX^5KcV$-}GZinf7UbU{-3<}v6OMeujHvGAq5l-+VGp;5jtA$X3rDzd@8qC|m3I%w
      WYK(aq9PtO4euXFkpA*r8m45(T$z%Nh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TW=dh7(KJzOPwrr+OnaLm^QuIPOuX$=HfPxY}2yfrj-+n2q1Oi-6Tunb+q=<
      zBJr3fUU&smDfFeh8nteLhyDP56mVv3(pGXJ%bxEx=X`U%8UOvyUrzzd;f4W4;LK(i
      zm%eeobxUz4*e*r>rhm6oTUu@1_QOTDal7Vk7*GW!4yhAJg>h3rI0AYQw*9b8XN}IK
      zAPhS5G;)r!mahw_cFXfekittQ(m2XM&dJx)5EwI|L6_EX69$e5WU4{vFUQSwKU#Iy
      zw|!=+t%kc@ccVc1gP_{k3dnb^dPs+ZlT-wbwBvOr^!&R5>89IhY^^4{zs?QaZg06!
      zQtf+{p#`<2>k_1rKQx=h1hNJu50o(hG4VQ1325z(8+8PfFCDpW%ETENPWhoH{c|SH
      zLuXkaPce#%$Q#HBoEmog=lVBMz%(b(;E@&xFNL?I+;5mDO1aHA3>uuy!W}o_hy-R$
      z-jX*3Mmw!)>y97UZksdEa`sx@mif0$yfesuwzIRJ55k?8_)|j_d9EQ2!)Sh&%s?PJ
      zwEBN_d7IYxCA$bHOk<9QEe&?3dU11y!se>UE#7v+&C*II3c}6Bcw@tlD*5^dY%CeL
      zA}~I@#>7=zqc$#&5qc8L&L0FP!5q2a6ItgRSjYBSyp|^q!Vwr*X~j{)zZ%G^ed5J8
      zSCoxnmMW+CSQUQwI1-CbgR6|DA*V1(%VS>UI#!r?0<$pLL#B}J;n?qtDLBF3<4L|q
      zloEH%BE!+X%y^-{4;IGh5dp7|M<kYHR1!;aO2(6Twa+M;+$a0!6&@io^9Zj!y$?-v
      z2j1zvC*v|woTqg<vC3*z*+be=m0x9j_8#=zl(1B}sv=v~e#4DvR-d)BTUqZ<Tu@Nf
      zr!B2-8J2Dtdngd<*w2`f9?h9QP}+m_%zJAOhUkj!t|lzaQt$uUo%upSs#)(=4`*k(
      zY`ibaaw1L{NAWHu@jfo#0}4~YJT74gmvNoe3O=O3A0fm7Vl3i&UVtBP1wXOk7dW`b
      zng^_Wh~-4mT3?ubNqZ<0T}s-+d*o2a@*{b4N;-#Kvgs7_ChFwWIUtW!mx-y9u}JQD
      z{u_e)3xi=_BZ3@DW_s+a$5@oIKE}tNKb!SPlCJSkD@jA+{qp^WGWZl#f(bS)g;@R%
      DlMYM?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`xV6x}zONhFMl+F1E2YOBo$f{4;;6e|I1T9B466{IpGmoQ2um`n<|Y#(a>
      zgnhD4zW89*lA>KMmwoL^*Xm#B|ES&fP7G-m(85aQ&fGKS?0xpWC%^sm%PRmqaKi`)
      zbmZMi_ig)YySw5!OWh@zm#f`lLleb2(oHYgr7#SE)*XTb0@+1=&7=iFj$4*)SwKt+
      z>@L_|c2VYrrJMH{Au<d&@3@ZF&qXYgo{mom80lh8Mi9ha3yo;vgIFd$)c}G07Q)!2
      zR_|Ca5fa!t?6~r3r7$l`6ZZU)WXy0eYcEaNB}d&?9~$1GLkvfTcR;PEr37}BEAtsQ
      zCszqC%MUpO$w8ngFTD|BEmR6`@dsmZGSD0LYW+roCOV;u&c?Q^s><m)GMCyiU~Fha
      zbt@I$akl~Q<5(CUY^#V)V&OO<0;Z#gMcBWXg*Xxddo<8dSB`rn$IS~I`){<F__UIs
      z(?SCxjp)M3FuJ#~O&v>%20JCtP?p{m#~X5U0*ALQR%1>x5b|=x+fKT=^pq}KSkrU_
      z+IQ@k!u+v?vp7fBWvRm@7EmTjtJa*iZ~^pVMC}aSt=LNx-;AZxaXMJs<Hu3-2P~wq
      zOTenQPL_tfv|^X&T7e-8m+`4UqgNa*uE<i_F4LAwFzx5hSoo~EKe@d8c0Z8qQOAZ2
      zYA#8yQgX|eoz=G|MQbPtgN7rBgA3GgtL=fU`&r+m9UGHTb`BP7dOzY;3S)9v+MZ(1
      zRyghsdg<Aaicd!{h3jEl<Dt+4WXX2(-Q#OzPZliP0I@gNrINjtEiSJKBx1vxQKR#>
      zW!6h&ws^$Tug1Ym3*(reQm$O3VB2ZzV^N^}xUef%%FaD%K&>ZaVVN0n6?JK?ukRm#
      zfy%;yETvRIiF_Cf?Di(c`WOp~aG2AkhRVxrv6*zd4t#wqy%{L7kB7G3kBk>9rL4T{
      zs2SE&H*LFAd7PxNf}GJo1k~W;DxgN8zVa0Esy>ad7`L0NyNon=ZBDdqU{9ib9s3f-
      zOLH9u63=iT*f#kSHv@?B`ydm7C&ENGlbpmpp3_4(#pgi6Pl9*(MEy1MUwK@uTF}Z2
      zYSl&{3S2whtCm-ARa8h-d-a4Xzg9>;J)?6gsEnxP?)aZ?pWX89!#Kixiuwa$QD}M+
      z$<Ajux`7WLVt?liE(s<%w~nKoPycb7?0kU}0f?tHm@T@)7ud~y(z{5aX~Zzd1`X-r
      zhy4OI=soDgX-%gGXV6Eo0X1H$fL^nSO0mI2a2-kAk^W$x`50Zvwx~Jx0v`p?XC$JA
      z+KQT|H<0=PX7EXZn3DzpC%-pE)NKFp%^${QE01&ff|JC==hS_KvR$PBqd0*th;xk7
      zZ3F|D(0Kd(`Zc_RHN1oBhk<At8Gn(hAaitRX$|Zlr%(9I<US{2mCb$LsrGiYwmpJr
      zJR#_P8g46Bm!4zLe_Xx0;@<@~ar<_=PWRqG6Q(Kp3_5YMuCHA+oL%JBs{7i7;i}z6
      z$kP|PlUHS-KwVdSgWamLNT8N&l%4V4d_e|bzS*k`(q~W%tx8`=bs3?@Xh|fahIUR<
      z)QE=W`V30&_|2bDbCZZKz&u-<r4%`mS)f_+{5@Wz^bUoPJWT}+<%(af2Bo(qKyTGB
      z1cNWN03p7qL@}5(K_Qg@P0Xs~Q8wZXtkU?MJL>GtCVz!^i1FlW2&$nJd4wT#H==ow
      z<$+go{p~N!bJ}CUW+SLKo?}w&@qROo&l1fB2L%n7+`!Dg370rD%5+GDAXkvY8dA7N
      z-`&R~zQHwos|la>fz=4lVisQ!b_<<!i^C+qw|g+B2`8z)O=@ah&9j-lMgxpd<0Ya`
      k%+JVO+Z<WSvA}n1&;woVpdVSQ7Qt=YVIF}c#syIL8@R|VL;wH)
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV&vO%H7=FHF)3jlsp)`dW0!0uuX{3Nype^M`Y%x-PwWZYxlufcpmL{7{y1|Mw
      z&N!n7XFPg=gWyFShC`i!FnVw}dGPB0BR=1^X<BRA3x{Oi{k}KP^S;mfBY*w#`yT*~
      zBOioMU|+$h4cs&Dn*%l1E)7(zg0(y_IW}Ecu$(a`7lbAd-NHv8=vbeXY{wGlnovL`
      z(<uy0xmDXK4D-j?qLp2kmpAj$ZQix2W!o{`N_9y<%n4|DbAi8Z8?hbR9Tn&?(*FmF
      z&(JYd$yp)zu|r1)ojfqo@tF<??9|bLc4_U>5kQ-?B07R-7wDWI>(yF0V^yckOi9IA
      z$(p4Zvuext#-ZjGZ3fggu|={Jgc-Fj)iP-(XDu`Qw7~9G;m*l;MTY7uS?;*XPczhE
      zxL~<g%w@Y=D^FNX!7U2-jW}@vWz)^_?Sj!VgjCV2Dpo5u+|prk?1}^!j?YPn-qG<k
      z4od5Y4g&`TIuyPaOTcy(Yp%e7mPqTVm_hmTMr5&;-mAQ;4AV--+i#l1mRub;h7&;?
      z-?TTC6gu8Rl)~DwSljSEP6aV2u)kG>*X69^G|sRevsC;7MUq{X@&m75OWF|~XC-Qz
      zl`olvr4Y_Z*z*G6jm<BwF6v0(0KH3%TKi;)MT$kw78$;Hz>h7^TeaL;)ma+1m#v)F
      z7b*pdEy?!al=S48Myu<KZ>V%So(?gut2(aXI@QXSDsq^+jrh7Lyq39VW!>Qr=jy6#
      zswo}QxGBAhrtNTSS_jcsB<xA1Q8wkolm&e5g1~0Yq&5$yOv}~Ei>$A)E(&j{T&(5u
      zR&_W&6T)rG2XTkuY}DTK(Qy|h#WxohEhi_zQtOlY4;;g)Q0zUM(Fug6Dz$3X8n@*R
      z>0H~9M<qEGWQts@e)!}DqUDqOM?JZl`0U^(gl+WGX=QmY{UeF!OKea0Um%=FzCf3>
      zx_{+`4?X<uAsBFq-zWLw)9Az*bYlp+dD`azU=MovMku_6DB-0gL-5fGVQ+)5%y&)R
      zZ6u7fAUxY393|m75}sFt2@haP!U$r_R%W&j`y14wq?W<7C8A7oExC|7O_A#Zh2P_O
      zHSyczR#yr2;Xnf`$)`-w=YJ-@l}K&s<dVYBz1t=Rw;)fX;<Jp(Q~Wu?j}S`qCtu>w
      zGxa#U2Id8I89OksiOO*#6iEdANUD(E#Ziw$lt>|q|Fl2(90R}Mqz|L9uAwK`#rNTG
      z-<LliD1L^PTuD4f_d{HYg+ouUS9xnW<v*xJwD9&P2#A&BN=#XN?!-4dl187gYQ&Wx
      zBvjX*IPD({NGlSkV{}l9MYP8f<LiJ>=#ju(FPw<-s^h|sum4W2h?S;{8Hxs6XN%sz
      zPE4|wrr2YXlzy6jAvc-h3`Qv97(T`&%yD0QO6wL(&fz`WK?!%UgbeN@hp%AaTjcQ_
      z3V4Jfexk=O^pJh~AqRsBHB0mqtBO8tD7p=g*%D*aa)i;0)6$4|gsjrKj}yd*vTcAg
      zK5CS=*%;bdExpF5v}}yatgqJ?-#2PzB<r~H3de@DL>)I?!9Nt}4Tw4>XL|$vy;>cI
      z9wHEXwyyEK>8!F%m(T^5b6CS+#wW8JRefMIvoxAn8qK~jsA!bz9UPTe_L4@F9%}lD
      v%59GNdJ&#ym&pNY?++iU<JRoP5qdyHzfi2+2(>p^+gXn+Q3Puu$Hn>=D}@3@
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc@~6#k|cTFO?iDuPfbUa(hIL_nz`mjG!}&;Y?`G+}9{?P|Miw!5VM2>*jW
      zfCo$nL?3+A#2;lmGh1r|r7u2oW_Qk<^Igu_{`&pxJAi2{``}_o6%AW`uN`WtZRusz
      z<VD_4x7T*7AGon*<X;qCn*30&+VxG%%9VWZFhshf>{yy<G4wpu4c%H~@I*7QJ=#{Q
      zc^-fpy$ZYtFbqaBS&3TKjH0?@nYvL-i<|vf-QZhx<$#;J+CiB!gtFC~R^HQ0UA#9B
      zJyuDtGpN}vTrSd2Gx+QFLB`1Q1_R453>3MwsWtS9UCDBzXq6b;(HI4KD?;zCM0pqO
      z2(wz!Oj(NO(;Y8tuSwI=v98fR3}VQKn+)Tf#I&I(7{)CIg*a!mI`Jlklojn>U)VmX
      z;2N$Aq%j5K2$4Q2vTWo^RkIfpxZ}fZhLKMAO%V$2Vt~P`3-3hAq=Nh6q(_rgWT<9S
      z?<YE{ZIeM=@Kruae;L9ZZ~t|Uc$WVu9X7dTn?`+IZ}7a+E?I@sBv9Ah&{!3SUt3sO
      zB*H8I*}_aL69B^~0aY}b9Z%k_)X1^ug(+UK3k7b{Ec-FX;Cj0ez+)`<@Pyc%pLpl4
      zf;65ABWpEo<Qb9|i_!>n&LuBhRnj+fc|5RFwapw~*Tu&)cIl@*B>)g1k#72X0D9=>
      zrIngRPtWPpMY}IP!p`9TLXR%=(HfA)3A&hsLhpmlH3V^m-Y5b67@#7+RfL+wlC+Bx
      zm-|SpvW@@(R9QoDqOBS<x^yCFd?Fei+Ea<IxWTZM`iVe1kvzl5F`b0TyAwqAQzy7b
      zzsUY)c$3HMxCJsMi_Fmah{(($j5$ow9>Y8mSdidx2cQL>LX_fyTncfz<)Z9K5}S}d
      zr7+c`))M78FKV%)C>0NynXj9of~4dW(?8%1AGJB-IJ`_Qt+Wvgwg?7W1cOb2px8rl
      vT{Lorq&nU$5p~f*e<Cz{iuqUPd$>-*HY9@6Lw^gwk7rn<DvZWJ^lRx4p{imj
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu9YflqF6o%hvOK+}#<tmp#MQd-g+*F`Q<to)836L6N{II1<yV`D>?XJQ9<OfYi
      zNi^{X_@j(xrpp4hpowX^vvcOm^PY3&%>MlK?FWEa?0Vo}2$eK5^<Mrcr%Xewq;#dE
      zoTT=*4r?D2ZA&X2m<11945K%=F}PP$O*K{-T#;-vPs2v7sQBT8PeK>m3_UqjQ(l?X
      zf}$VFg^I!u$kmSIN?z7gKDUf6qpUU<rgAr^wSr1BcpGLRs}+?K29{;$Eh)yXe4<v(
      zYEIEgMw!7GiPD0vDjP@TLqUEQ>4@Ga%ep`*#dJr9{jFUNNk?y7^<e-*9t>VvE&-7+
      zjJph74MWxq2FKg1541x<H+nc>TtbjLxP`+kH%&?iag$TgihMpL;XZnZp|<j;v2GG8
      z)G@rv*)e#kpF}|z#yfhSr%Hu8CcFrlA7xxZ6n$iED8`Oz&@nKq{ckyWuN2K{o$`<5
      zL>E?Mt&}=2bX6;@o5#nBo{r`{m}MAhUsfwcMfYN!VI-27y3(|h=gsldj~P7TZTOgB
      zpk0LU++$I~5|*jxa=lJPW*DPR?huiXOnb3HO&8@GSNX;a!*nO~wE(_zO~N`hsE>_W
      zD_@5GNV{g*k1ag+V4GpEy#%~MJc1pD#6LzLib{P~qnkF|Awp~2e^4{^BV}6^xAjVK
      zlROT}fEtp%B!HX#bj@k*p|@2y=ttJr=o!3U>CFK@J^jKOBhNT)(R{Gw1qrul#wm0G
      zhynECj>SsQ$Sn@%XZ{o%t^*_mLu#$si~#z`!lNj`C87%@PSGDb#R!dKd`#}q+k|Dg
      zx0m>0gS*9sIRr3|2`mVK$ri*G2;l+3LNtVjh=>&ET3DhLOEml!(O5ijhS;CVi=@0n
      z%FCCO!?tqRRu0?B2~1nc8Onkm2D_+tt4^6qFlNJ;4P!PeiIfG)QyTmPgYoZ}c@vmB
      s!ve2Y6Hfx^CZ0C&tclIn7fP*@-NZO`>cz<hZM7h>ctLE2m!jCY-!W2Wr~m)}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU-%}D%6#gzCE4V3Pfu$yz8NU*>v<!oQv?%N$9h`BdhXt;%2@A9CHuR_TKlETT
      zMl(J1*h7C*)42<SnhP&I?A^WRp7VX*Irp6X{pZI|0ISGLa4;-YH8b%+`KTmJL#-!t
      zUghn?yY2nvG1u~1g||2@njyi(Fg?VV!J%`8*}@Q?B!hcP)l?(J5DE|Vj1(EX+wC%M
      z8ER8Ikub(EXAj-?VsPb}74C%-<1!>nkRhCp6g^<LE@K34hKYiz@waB9#PxlpR42v$
      zLbI&Yi;Av_eb4AJYU&BYP>mO=Ly7sS+}Neu8fK%wwW?8LaE2p!A?B8h0D?UirG4%q
      z4rgTC7KfgOVw7w97VUd`-ds)51!<dCk^_pjD?pNwp{Ig1Bx4>63?mjRL*{=O4?S4K
      zl7xE$yTp<v<37R+<0YkhZ0NM?8MH7g+A7Xo@=AIUMO;FRVZp8wE_=&(fMrUsT<3~z
      z-34{jh^n<rgJIs5?qYozq{gRSaR&8tx7ZA<M9(2LTg7a&DF1N5ny0#=RTF!Lu4>h+
      zd340}WTZHXCqhd)<;7EMNub6F*gMO31{xE$(h?KM5Wk8__iP_am2%>_j0`p?51}ek
      zuM5VUKz$)3<_5;nAUCP?rv_ouT<$eZz07x1F+Rbo|B7Xy3M({qPWsU>dT8{l6*QHj
      zaKJ-57oB(^)7ML~IOshVb$-XSXzUw&Uuo-rpVn~;WQ8DB$$brzWD9iNaRWDLM}ZcB
      zAfh=VSOL05Z($jYp263_)ED~hBDyX6x`iZnefmf=ie#~gpZ+&~(>8t<cY5({((NM7
      zkl>HSJD5w&e#T_{40nIQD_$K$;-~DiuPZ=V04d5cO<89!gDjzKTRhP&R$pfb39G<_
      zPjy+N%)FHQLp-vowT_LRiUT?kr47dXk2}~ru*7tbj`<=TWDm~E?6(N=bU&{#fj0zJ
      VxKQd~pEyW@b_kr&t%-uZ`U}rBa^C;|
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUOHUI~6#i}>^x-JALPdEikIuBEP#&V?RZ30Jf{74FNL&o<r5$Kznqf-n-*Cq-
      zaN`0KsEG^X+8<>+cUlV3(v6F`bMLw5eCIpgoHM_EfByks1{n_=3}Xeo8b4Og)Ogj>
      zN^z4HcrE@uvum7iJ!=>zsUlbN9=I6#J9siUOwKTv?ckGS@anvvTG|=8vIB;$B~90?
      z6^7Ap$G`)5kHMd*<#@%?4E@xD`wYYFQ?<MpTxlcE{cs{6!H0)r2ye=JJ}^9z;6|6&
      z^-A!-%g~+GbiQ3JA98b7JuDHyVAjZ~r9IWu#JOp7Sw-!XVWJb=mTFXRpunvywWgJ;
      z<t*0=R*}IOmNyxEW!1_RcWtx}?W<20RdZ9%^BT`5@5r|$K$3FDTR(;|>cPmJAJ7Jo
      z@C?rx+_{pWQ}I1vIcqmXN!1JScZbJ3XC;M{;}Rw?NscyuhSdLZKkyMhS%QKHp=zRD
      zY7SC}_LZtdz0tP1+u|^I${(A2?&`pXQq+N#dF|@TSIZSrC48&W9m~}8!g}@Sh?_}y
      z&x<+g?C`1|3t05v1w-gYmD|1&Ug8xsv|6cfJ<kyR7nD9z`&iO-0ZRg5S+GfW@N;5S
      z!Wt4(u^^u+m581}4cT`WHqFhBQ8jb?wI-Un_wUJ`5}Ytili;MEf`c9!3|b+^f>swj
      zKKSY8o_%7F@PKv)WDyYo#rX~0O5_SbW#9@uU&-b`h}NJTn;^Vdil0L_=JA;9BaJxp
      z;R&4x!OqC+oyaLTJVie-5_zKZ7IzNk7qQyNUAAS>Mw1%1Ewlj)l0`&*qCA3qB3j4L
      zPYiD>mk35;b&Q=OMEjm|xY<Q4dWrBA!m*2{DSE*!TA7AO1z?$2t)K_1guRAwq%esM
      z(kx>$P?~jK*OMU5F`HEaQ-~91FE#fx?Sx)4NHqEBbR%k2BEi`@=Jz8F0^Y#rXSf5)
      zbtLy~#&xVj0<t*XXd5EUfH%bMEoqgd+1-MSZJST1f!b0;A-?OBlOatp4s84Z=zLz=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O>fgc5Pg%RG5Mfv(h>@xw1pOuC?ev(g;X3G6^P_gsf}{u;3iwgjlHfM8>Rn-
      z8y5~B6(Mop2k@g1v+EElkp>Rl*`1wv@9oU^$Ioxy0X)TH0|~-&TSkpD>z&nzLdR_c
      z!WQGk(SFAt3TgWOa8C>z+25Xc4y>>@cr5~PDBTMKDMEQpK4F1##h5^C!m=&G18eMf
      zk!K2NhXX>gQss+O%kK-qlIckCCh|^1(6LTj_7qLOXSrP~aMXF?OoanyMA$Xw5dTAX
      zlaStZq!Yei@=Ckf%_50H9*bDYfUuIs0@8$xr(WC9bZ;v&`C0=jXsaiResgBP(Y`KO
      zvpV-SgWFg!uy$=ZHHa?fc@z@1W};mcLomDxt)H+yGy1nOE<r!?&Y8Mm>N#*NX*Z6;
      zz>)S|bb2a+X0=O5_+0e0>mmr*V?PRd;-#Y+SNdy!o+xNSzAdE)TCO!3iIIUF!p?uS
      zk+3>z0<p>MO7b+bKGiecrT8;&gFPAE)!7o;MDn9rk>xe5Jpwu2=i^(pH~9oL0qjwk
      zuQ)ovHdjl2#d59u1;x*Nj3E{^=^0ZF8Pe5Ir8s;FmD7S0`6_NrKo2=a$t~0_QLJC0
      z^d3h21OG;!rqHoEUqf!j!BfZr?%=LgTtFH3G~qh#Pr#pP46el=oiSK&MIX0d@>Ifx
      VE?)v$I`IJ>vduCWVH=N-{RPaE@ZbOd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?OK%%h6#lNCu{#hG;!u-5lG2AAr%BTk7veM}32E!rZJ-Hpn?5J@wLOVF4&!l2
      zcSs=qK^K(}h*cM`NTtSAK~xn>Hf&h4<QE`zP`*2M9-@vHbLY-^eCOPAzI*1^e}8-q
      zU<4&UTmnZ5W^H&`zo!q^Y@;-6$%0%PzB)5sS&?SCQdyajMZ?Vb;SuO<V=CaXq`>}k
      z8=Is+hbarXZQP@&SQPM$8>V4T2=qtWIxfZ*1cEbbS-EN(6|?HcYXS#bhuX3d@Jv^7
      zG6*+98UlEOf@mtX5P-m&8ocnSU08!39Ri(c!<1KQ<t1s&>q{jj*p;qi_0ocF8S1+!
      z^w>qCDsZe_y4z*ri9-cxU)I-*a;=<}X2C8BxTCR@K%lJK+2XtdcdPaBr;ECkGIMfG
      z=90SvysSWyv9?-OfrA>}MsEQ9c*l=JyY|w7({LC^1ib9KTw|kBdvFXfKcc(Td`FrZ
      z1`ubfN?Xh!!=kBF>jZZ=CWB1vxP~DNGjg_6G1-CcXe{kev!t7a;n}5SnYEKDnGp>q
      z(M$f6oRX?zozn2G%Gy`S=d058<Fvq7Yli%f+lQNMcg}u6T5{Gb-47yxkSg49wInr+
      z<BUqIs2iq0U+aD~fs(OB<#blV2biRj(`bRo)=oQ%(6)`SMRm?;4Ig5Ls8w6HY+kz?
      zDJ4Fy;eryorJ1ABFjs3-_O}Gw8BxGrzTZr6x6A7khE#T!b<)AN<V*zKW!u{H^yG|u
      zo|0^>!B?VI?aJz^v;@Xm=J3jdY1su8)RH6Qpux+VtCd&D+~^KY%-NP<7N%<XytI<B
      zg$`U-*X!(f5I1nkkDCHL+XUKatl>89@Gv@)R23V16_vNDwJ*7P1G++3Qt3>$v2!D*
      zK_bI~sO%?8C3dXB0kU^DY+jzZO3lj3bA}p1J+BmMNF^nprA$*=(<QxHmBj0AMPi)b
      zfOB)$yZCV4afO<8Ts?dO2vW1h`63`*=WdY_<q;ZiKSk$2d;?tr`!>-1m@*f7xOO?d
      zBg8vN|50?}6yBn|ui=Nii13RDPDJ7CR7{lvM-VeoaR&KTI+yzgwK~W?M{?Rh(;C_>
      zw0+o52|Zmd#%Io=d*BJW>NqeFAAEwo{m*dJjWN$)9fL2>Kjv+2G7--+oDhgRYcAo7
      zcxfH>-A(u-UiSw2oOSdkB(8`3Px0PZM+5f#7jTaSB7sOp9b*~3JrQpm6A$r#`tFDD
      zigkA)_y~E0Hx&*JxxPh4?awv#mzwgMLt$TTcGKu<bZ*H#4KeMvZIpA<#*x$J%b*Ac
      z9jE8ty?hYys>3>Ib2GYu(TI1wnbF|7Sl_B;-s!?P>wX4dOyB^{;wUCL)uuR=rg4r_
      zB#jwlxXa=^RyaOBLkgecBEG^Ud_(Q`xQt(L1;1eye^UMzuHqle2_NP~fSm5aHK$jr
      zjeczQN^}$FqUs-amx$xy|5YQ_5i%r<mqfhC9v;Bo#7&bW3H*VNsP!?k-|;bbe&+Qv
      zqs=k@EFNQ?x&Xewr}%{0AWykKiw2WS;wx?q#JjH5v6zWB%Fz+(e*|ynOdWSKs-^Kd
      zvhh$%eQtBPhtYvsjCY&dyn{oyix_n0R6PyU%~SEmmPdgxT_`$LHn7Zhkdg$S6$JkS
      D<-jiy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pg$4apD>h0!;}8+CvUW_;7M)r7Be~Q7e$r3el>E-Zt^dS#Z{9V<Y%a
      zTsR;k4*dcBQB`M6=!t_5JG(RU-kY7By}A8!4Pb;_7bU_V(pm6Hd=){KsyHw*lHY=l
      z#}~<Gsn5hxh96AwMVj<`cjUq$3=8Am2_44L5US}yt-3?5H7!aWGwV=kl^zk^^orB^
      zmjq{$gt898hK~xW9?E#&!^K0wUU8}J`ubxl*_bLV&$8uAnhP<DC80G<<|4inMp=Iy
      zbZn!9*M;xf9dV;IrRQ-LN@hB}N&kvKb6yjIcb;TsE>D!L*!ka3-rC6#{P$W*Gl|7&
      zWn~)2teC8nj!tE|NJ1CS3B96k@8czQxOgPf`w^b>ruiR<g^q&r)UfopU%btKZ;2s~
      zrOdyNnoT<!K9zX6sByf`rvvtFWMlB^7rX)ehW|4MHQ0K2icp~%n(X^bVkjP=#XI3K
      zo~&i|dABkp=ZCeh?5ahRpEKKkvumbBY@*HiGPZL3Q*?OuIASY+^`EhIu#FdY<vP*m
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BJx>Bb5PfqT9-JtM-<^dfVBx8WmBxl>G$Ck|P}nVZ8(cj0%-)^RpW@H3GO_Rn
      z_@j)oKuICZdpkQbZzgYke!so}9AV3YLpU7hJQ#`>5#*VQ10x6WHMqOzCQnj##7IWB
      zCV7@7d)vJdI*O(7;1X)%j#%hHaMK^kFe5CSDXp?|LZQ*@5!_Z1NgoB2D=1=tP;DzM
      zJNc+DO;_||NvOAzP{ci9l#QpKZuY2B!f|`vy-o=wrNcOnB=@_GR`Y>y(wJYT+4Dgt
      z6a4!mH=(>#cG>M&o*Y;k2$gHCrD???O=ap~gV6Zz_5^S0tGmNf3w#+cI@U9eJ&poq
      zVlM7~qV&NJ2R@@s1MgU5tV{}+mtfDcj4Dv$7KVw)9<#%hR%B(ih)p}Fk8u@i%+?3O
      IIyPPZ56YT_#{d8T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{^Twp|v%N<m7+il8kB#ScU&MWteF(f|Q$gtw)gl$Gslv)vW^75)St
      zeeuOa!APR-{wU*}wh;t^Y_ijtx%ZxP?#K4m@9#eV+(k}9fG}N=e)^61)=c}JWv5+H
      z5qs&?#dT*#$R)EX$}6r@6R!7eWMz3R|N5mV%eHVe1PN0Y4sAsdG*@^EnJ`>9C%QqE
      zA#}`H((>jB(PW{a(Kclzz2>==tYlI}LNMo)g^o6K8qi>HI?3~J|4pc+ih*=oLXU=S
      zLeEJW1D6pYbb3y~*%fZitP4VKGId&yj$ZU>h!PV2OU*z(t`b6)^opkKGvb*E<`ra2
      zWj4sAOXl;No2g<Lglh)c(V^iwA$BBq)t8=C6^nZ%QS&TEYPdn@Ke9LLw%}WKS-2tG
      zBt%}x9qH`KM9ryNdx`w>*@TV+Mipg9?QR=LBE^j`Yc(Ougo(2najF(Aj*NmBH*iN)
      zFyuK+0Xl{-O6V?FQY`t^E#a=4TQ=7qQgBM9T{K-wom-bdZ`-O9W-i{=<8#V06qG#0
      z3jAat*rqk|&U0RrZ?vOi`(?p&!DKGAsjC0jz$|76M%DC6+sjhqwoRAaOZ?^t`kLdr
      zCGo;i`UlSXY$g>g$LFQw>9NgvUDP!^BP7oml7HrugO8`gB_$qs@ETB4z`FqNxnaD9
      z`ShOm%AOsg1L))X==z2$*?8asqGN~X-Dr!qwH;vKE8-t9c!;5mLnJmL!v`2)-&^|_
      zJHW)x&kfi~USo=adeKf%bWtC-vL7QffH{gG&Gtl-3{(7<qMj`7;XX_0;+qGUZist`
      znU=ULp9Aa_9{Ym$;65IG;zIz6sDoWV@djvL)9Ej07#Ym5J;3nFe;!ZxSLYkTQ!GIL
      E10FIlPXGV_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%Wl&^6g@Yw>(+H2w6vs@M_O92Lxo|%0#XGDi<guZL`xRgO`IWh>yE*(5qt{&
      z&<zqVv0%x9k3!sWBLq^UgoVd*XYM)Y-gD>YuW#Q0+=6SNMA+`B+&>g=gr8?o?5DCP
      z-}=uV>?cQ3?TTaBeU>J#WSYI(c%h;&>B{?Y5*|GksvFDHf<d@BHp2i#Fgu!ru-+_`
      zW1)I}a3E3<W-|Rps7{#Jj#QL22%GNcbgxA)0xr`=8Pg6dIE347^M7lsd#x!DW*wNA
      zAj~x*C3o}Vj!gGOCzgbTW)h0HCDKU8gF_=bi28)a_;N!`<(4NS6~=j2GMC{7Ufaep
      zDi+QWs-p~Zu!8f1Qu0z87I>pA)8rQ%T*M{zTE5Oj%(6>=d;PR?D8sDowFwmR7jR-Y
      z7@@tF<Y_1$M%t8>VGrkqE}7swQA(ykEc$)fw{Vr<jyn{>;t-!u<pGuXDRZ}aO1vxa
      z-ohlWQye|wxWxbI8hwFXyZ#9?ABv<oUS~Cw?!ctGu&IuDK3hIb#~Cbe#K3}<8^$8e
      z4oKUaqeUyLU$L~a^#k);wU3zjjMeurjg#^T-<6;hY|TauR=8KNS5I+&*ekePv|uv(
      V8ket&T`$mAuu<T(@+Pjq{tY_v>;wP+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;6NN6g_v^QYZuHfFoZch@+Vq)Pm>=C6PvjWI~LNvyj!J^D;awEqQH?vvc7O
      z(UluEBp8hget>_)|DfKM2`fp)Mc=#U_TF>eJ@5Ve{o@qCDsI^*5FU5K)O{n~2{%nt
      z;A+{G@7)(qTG3k>?uY}~d9I^FsgqvyRjB-^BR!GGZlslrw?x<pq_$xaRtBc&cM%-_
      zoQY7_-6RY>RG~^X2v%)(v)(3{9t%1!Fj|C-BH=-;`M*Nz_4Wt|<3(5)B1|+@D0k9>
      zJ*it_FOY;%Gx9~y7FuPvpEQ$w6%)L{<u0;koiMCIKS(>03C)^Uf9;@*X&YAwlezPO
      z2)nMgFSPIzsf(DwEWz%|q}4m*17<zj1oHXwn62+yk71TpY~{-+)xLbHvUz6yb$fR+
      zAwqFG45ju05yvvNQ6<y{^^-7t(TG@NgAIOEe2<yS92GdWG0f`-qi2i@ypJ~M8=S`S
      zSBxF!MH9S^XRWjhi*CcAJGjKT@>w}9qr`|Cb6Or2lbGt0e&9Zn|5fL{<H{pr;|ogj
      zjT4Mj);_^9k3Jey$>8bdKfjD4t}7r@o6U|#E3CH4YWFZjYbbNPME7&$#u?|iausu!
      hXGIGOsNfp2*qmA5$l!P}=e>?4-W{$Y+`vsZe*q2}%5MMw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg7zoVaz}8d?aH@YN5YBnJ!!PDLPU@lh$N5TrS9+d3n6!ChAy8<Bs*
      z59kF61meIC;71|G!9pBz2nX-(jNf@?=e2+S`u+pJee8O02#-@!MsL-76_tg~BFia%
      zh+aJ%=I_`Xs#6}nwD}p^V!C@|bdrxbRt2ZIoxV_JoU!%b67DSwsjCP}NzEb90ipF!
      z8(lmixZVBUNVZs7`DkDzfQNwapgZ{ACVRcnG6-t{nrIQifi`?to*uIus^g3a>w`Q|
      z*+^Mk#dXpxPV|KEWbt<MjoFjI_GM0OlB^uFAl+`<d*kB@Ha%P=Y|LEGlu4ubL|K&-
      zYy(_Fhv21L45w#u#i~Z^p+ugT;J?mGoA5JTU4L`lXS!Qa3BiFeY~xH#COq-5P3SIa
      zAE7;eBHR`?8}jcEoXS!;Idb-}B<r$7&n0$bU+L3V`2EfotbUq_LRr_UQrbe3w&Bwb
      zE=aEZM~;hFmq-c)yCE>bC0wqdaSaVS-_Y)V#_C5j-Sft|$Q@MRmIy(2{sD%6fg!Hr
      VhP-!hbEdx~GXTD12wT{J{~PWexkdm0
      
      literal 0
      HcmV?d00001
      
      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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
      bgqY5=cqeHU=?>C^N$(_`0p5Km5BUBA9??JN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_gd3;pW75;8!CNoT)0YWAaLKFmHvVmHSN&p265(^2N!30?*$s-I*W@0kK;!>@}
      zx?5K?v|7Ps)JBUHCY4x4+k(5+T9?{ZwAQ-Yy0rcE*I(1`-1qV_z<~aK^pE7-dGFqP
      zzH`oZzI)z#=D#~118^L^@*+!NbZay*X?19AXi_2`j!fz>Tg~;87E~{atudo@QL}EP
      z7jA{3L(Ed}#@gfIShQ0iZ_dD0^=5NC)={P4i<+&WczCU;pc)l&+d}c?Rc0r5pSdd3
      z!RMitmauG~kUb?F4acV`j0o0PTSY?A)=3NF9pPweRbyjGy@GpYti|-hg~0}LFoZXP
      zH6`_4<S7i<-?|?|kuTE%3a(&D{U9g|H{e0Gj0z2S;q#(M;iyA6C@B3X#!+4z*>58a
      zmVwb2L+H(%Ha%{^nd!$!j1|M<_#{{}lgI_jcmop<RPfW~>WJB9M!6smOmnraX*J_k
      zCDV&hYM>0|+#zB{TjQ&=4>f{(qJcs1DGZ(yj+(WJwkES<QK%`x2<Od-HHRYgp^mWp
      zwr{%QtHR9A(Q^*rrB1eFt25D56KyfqGg~!8YUh?IaMGLRJQrk#qn)NCUxgXm{=8{6
      z*%Z)eE6McaK)P_QI5@?CAK8p{s~Mk5PP8T3=I9u>F6!&+lTe;!U^-?f3^J`aO6UV*
      z!hx|AuAFXQD#~TuECXjqOx>N~^B6BzTbR64^j4b+tsgKY>*g3ZQ)au`LY(5!)K!=s
      z%os@_iVmIGQk8MSg6g@#{i>2iKYg5UU;!4=gHAI(I~=c$w)`J<CT|qZGEk2?1w-St
      z3r!xJZJ<FO`1>C$sHRupXnTUu8<P=px>GFmwheX+iZjmc_t1~!2zjyMpwgiOVW0`k
      z1kfCbMVX8IV8-kzm<Cp&l~mKVYZYc3W&#?m41^7=9@uxD7ZH}!fQBrLhnm;;u?G2G
      z#1w|=Cz|{-VzG!Biuw`7xl-k<4R=u2_!`6wB(Rn@+7q2D+3}gGJ2Oew8>mH{59g7P
      z7x-}jzT?G(`zVg34hAm5#f*k|ZXy(6;bjyMQfv(_G4MT!u&X`RE?_S;@O@lHVl-I}
      z)Q2JoDS}{0qYqcm?07G(QW!bl>4HQw9&R(M*EgG5<bAk?iK>aN4MoB&qhngFMz4$|
      zqAh-0i62NXuG<fht=>}D%W;E&8*zdr9W_Qcd9#5{!bx}3Tu&DI;vE|_IY>4R>!Ohj
      z#MQ(VostfwAx$)NhNwX<0@+udY#q(Pk43ldIEcchk=q6I^(kb<Y2skq)~8~XaQkip
      z_aG@k-q{&$jn3+bwec*?%*y_n5KULO&%pio39Ei(IND-6x-|2`G<091Cx@&>eFCr3
      zrbN>26BIuc6x$S*9j0aKZRRsYn`34MH8E-N4xPE!VH!KIY7TAPi|zYVZA~=J_J(Kq
      z!$=wE5ncC%qj9?kJnf;5P@6<3BoXR0@F;#k67mG9)yzDK@|4-xeqOlnxPe`GLL_Zf
      zNDh{RQo>qN(kM0YO9Q{cuh|(nvC_O&7?;uBjQ)sP?Dt|1kM>N!_MPa*ZV|F)6w1GT
      z@;GO$L~F1gPvd#1?H3f<GiTB688Z|08#6gWidi+g@sfz@ZxoKpY}`SsLoxtf_ffm?
      zTam$66plSe1`oPiA;;=}?2ag>Q#5EEh27*~UD#p96CKgcS>g3&i`AZJ+MCqm0x9oI
      z4-WU}swt@vj=pK&b-W=&4N--niM9o1yBUg08%8B^w<OxydG@BCJ(dj5NUU6Gb}%kJ
      zyhF8Hvdo8f<p4N!vLEl^eJ}n>>;v+jzR17__>jj=sJ-2kUZwoN-K)|M@btA5&G+!J
      z?C^=ent6zME_`O-Z`jMy6ECJmcqnJZ=-7xfa_qA=1F$fb=x8=)g{1`^n*RDSQGCI%
      zj1vVOZe&UG&rz1N{`$&BT3^|3@;ZcnIWRc?2#y}*J-K^&X;BYyOM5Z2p$EfuprEvP
      z2S&ImJxLUoZbv~cMm7|c2Rtc^3b=c4bPC68^r(QRJcW`ieS1sYJ5ccu_sPN}{y$n<
      zoJ%CNv{#1!=Aj7laXhcn*b~mgLLvso+BV<Sj^{6;z_)M$k;&*pRB|^Ni67$I={Sia
      zH%4GQPUbuh@8#eW+mklVcJofa@}#`q2XQ0~T7h0x&;N_rfS--Q>=*OVsNs}a8#r(R
      z4x9kzXKOeC2Tl$q+orGO69E%UGhML*Riy!jWd#3kMoz^ZcwI@j_YKrY9e|}=y^Ls<
      z6U_<+E5vuGCXL8)GUy-*I*5V}qM*D;=l}&ZHVFb>1#E1$*kL(|S*+-S$K9PbZHjAJ
      z5~C!o#VMS+3$7GqHcTzr3eTu18(m5#Jca5leQy<Yb2BTaM{;w(<ZIbVvS$@vG{QKB
      z-Q@(1PeddwfG62-<=t+!&gU4es^KULxtuS#lYH{M!v?v@23hHVbY;N!ZDPFZ8(?gw
      zwR6dgPI51fan#lE9G`%7X&5VQj5)+OS7RLQU_2rXBimIQV~Cgqbx~;<Nk7j*>eoLO
      zb@S4L#RI|0)l<)BUM?WJF4TrcTg#nX7Lj#JxH-4PIataNKwfGrb6MXZ7Y6|<LPJ%1
      zkW*gks&prjOWVtKVR@~)(#<C$x>&Sj6;hHdN#xkWRh1rVRd&GB-HSCW>9)z)h1tD`
      zHUvC9XiuSYv8&RX#9o;f@R9|SeTBX!;OfGJLLV6+K8l?b)>V4;TbaZ?GB--wh1rEZ
      z*(`}03w?PTQaHa0Qwp<F`0g%5Q`jhLogbTF1U#GVGRUy&JZ^FMp||LgExO=kB-|9I
      z1AraTiz^%QuI|CLk8kv<fLGkpOdgqrqtYXL<d-*W$Mx<NJ8->D;!WMIf&5)b2?LK*
      zFE%m@m$EJ|$8cQ1Zyr}+46Y_|uOVr!qC{Pb({LTheLc1023GNnEQ^~+zni&w6aU|e
      z+t7u3@k9I!Kf>eu^#*RoN4NuDVT;PbRy7KDs)@Kqos1jQ8Msd^!u_g&4RkZQ)oMJb
      zxzkQMlMDUa;mGC=M;3Pmk!!b*MJ^0iXW1izzi!o%IZ`dKN0q9Qczjfk8Z{Q1i7T5d
      z{8$&Im)Kt<%G>xnOI}EA>VL+4r1(Q+<qX*)xIGJbTke3z)vXVRQbxHzjs}sE$!?oD
      zB%HfUqP~u*<LcI@g-q1xc&S)R(E%x-5ld|*io*=qU^Zt%@pA_M5vt8jOhhkE;i*-{
      zduL)7&yyz@iYIlDW?LZpgG3qaFR+kPU?Cj_7xyZ}R@})V%V!d;(_|t~L<yk?J>Qyb
      z=ijuQpRavA?Q4B4vRo_GzTecv%9SA8<=!s>JJZ-!N(Be@(C|})^EAJUJ%b>grL)fw
      z+VeanUm(l&P#a!Ob9BDr=zPb~`HrLWZAbHYAX|>|TaWE%F~&NM@@t9hXoQZ+*^#fy
      z;ojPc-SC%JXy|EJt@HC$hWa(8=ygi$8_2_(8kco`<~z9LT(uM~-^S%-h`TjQAuoxx
      z<+Ev5q_u#-<ryWS+JgtS@#5;igWLGTB88t<;4K~^d$m1FQ41V<1&+M}Ck_vhL{_U)
      zPb=ad1+%<j7amSw$3DAfa~|++nkTu=&biLcxz5hHq~LADoh2`tmJJnVCaKy;7K>PK
      z(qwVlh2be=i98}D!cl1oJ5zXU@j$U;Z^x5+FjypQHwF8t9e9!w9dNr>*j2L?V+&<c
      zFP?6o3%z)_L7w*D*&aNX!i(-oZ=uJkxJqBZ*99v6wt$zCsh6ej^5Ttd6_8`YD#8{u
      z5ZYP{BkcD{!4F8m4{;<VDo9y44xg~zK1DSf*4g+w52(-CrhI{RUOVw6*5V(y82_Y1
      z{)-a%Z%W?#xEue`K|IF_g%iZ26U3ww#3X*Fy8#zTDpe@;c!?&ghwDt6rnA{czDiN@
      z(pG_%FX?Ds!)11AC-ExDlVh)9K*g<$_GvKE@N$9!hVK^k;<ss3)U8eyvr}Vii+k{U
      zYMUcvlCD2U<`_~XX$!cEw;(%-qQdMlN$UfWQx<R%gBasv-#Y>K0F2|=FM(3;Rs5u{
      z-29I3;TQRAemVD|Obz14B0r|79L!P%McIcrDpy0c^sLT-T<65E&WT^0?p|Ch!KwJ8
      zj$aY~|A{5$Vdqn(BPl)hTPzu?3?3q3rP!8~(O>otzPz`S@Z|kDg}*FzO-*8g+}@1b
      zQMbciHspd7K3dE>1*0q$m!<IO#w?|qN3G<q^lvj{DYqF?BJ&4c1a#A=@-R#d!w8j+
      qQWd}{9G{_vqfw2}Zdz5m#Bp;8Y4$n62KZ7Sl*r=v3j)r<m;VDyi3p$o
      
      literal 0
      HcmV?d00001
      
      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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
      R+JH~+DK!dwM&2U)_J2j)9^?Q3
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~ixX7=BK&$&#=NrA=%NktS+Q!bjSQSmmQagc2J-1EdzGGcL&z*0LKW>{@!?
      zKha*<@q(LP)R}@G7ybb6z4E_^&pAm0&IHC8CzEr|p7-l{-{*bLAAkS$JAfOg=m-d0
      zt-F5yJM()p?|b%6zG>C1{d{?Tt?|%u%cfhmbZ7#JbF>5kI}HI*;9=Vq2;1(S<?iuj
      zgCA42YkM;SdZt(?Y-B3}TA@+1q6p$m15xzxB2&y(A`rM>pa&6ox@aJTusp>K=m-n+
      zm2B5q_MJ_uxn^$eSONp3M%CP@m`z)Lw=Xqs+h*u==^Vf+tx18NJ%6+4)~tO(EeZsQ
      zTcE#gc}v9X_)f`k>)tj6nJmRhVD6t5L>$wrZm+3`4>Dat7Pif%iec3zyDF6Dm!y-)
      z?77ki-o^Vm-aC^C<;1`>Bm_dXOsW?d<aA^OhPu__6fgtB7$H?vVx9F`d=#Rr{g{C~
      zt_v6{&lT5_Mp9nLl3Iq@^{Jlfiu{y+mRffnD<1;MuG+7wKqjg|;P_Zlf6Krph%mhG
      z+Ew<<>?5<u#u1n_FokJ>UawJVJhGYvbC3NH%CNr_?%M`FYs=SncVEkOg}@@mf$9x`
      zD^1Juo9^C%y>Hc8RI4IN1v1VA<6A6bH}Ty6<hm&PDd?DNyr}CtWoy?mJ%x+irqz6B
      zmpo@mYASa)gZWjjX}k3~e{0KXPG&1nEMY~*G9h-?G4Lh6BBLg=cWcsFA$yiPmZQPg
      zm(P|*R~vq_YAx7u>Mopq8^&aKTqh+YjsJk0TAl)OX4TGl=HA196us0lc-mKbKs=ZD
      z8E@ob+9CRLgNGQ%B@c1wCuJAs8mBj4l<OF6^XO-!7$2^;css6Saa_g~eo5W8k)Z#U
      zRhSXvNurR*;us_jji)5uX`>k7F7*T23%ODU)Rs5nDuU6Hb|MV@2g_SsEw3U)Uo!K@
      zL?cn8hDTl@{VP5QU?!J5!st`<jojyz_U$3kBQM2EDzzZBiZI0jOyeSEn80leVO9mo
      zwVZVzrdXVt3U&$~GK~PO;`pdt1dehW#-Ef(7*1kf;s=C+FA}*|7<i68xnKGbx^@69
      zI6e3bC0_JD#k>@J{0lyvNwziR{x8jRTV>`fm6Ix8Q#~=yu2^7A?;wjs!Y*?C0wvtV
      zI@gC-IhCT*Nzqa12->Z%2oWZ7laIt)JH-M%Z>M-RyXCGN%@a$Dqa*s%S)6f6(S#P9
      z2*pCl=LjDlJsi`XXhP985zfWJB<`6MM4p7i!SP?Q&`FMI)${AbRUyi+F@XD|ZG$iE
      zH|*wnB<g{}vDk{$$#1+v;dq-u*^hVF+d=volMg(pi_p&^Pa*p3W97p9fz`X)&S9B3
      ts0kRBbRD78KgvZ?#_it8ghiE>$*I~@XyPra4w^X1Sfx*aHPw*o{{ZLNm4N^N
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dOH&+G6#nkKnRF8JG!Y32nGhHTCL|_?fT-c2=nPT7k)Vn83^&kWrhDw^QK*Vq
      zYLzC7EL>*iE*lrIibs`JS+2Cog+EFC?ww%}(u`K=qWj!??me&Xe0}=2KYsWLzyR(<
      z5fB(yw5#d6=0|3_>RH9KD;MQTdU|};S(f&+EKAdq3yCqu%ok;4!m<~n8%0Q<Rhtw|
      zdog_@e^(Yffq=Ix(4J}HZ%80)+2txPpYgpnx@5YOjIkmYcsJ_GlIaze_V$`p$Gq8c
      zhnY=SZiSx3yg+2wvMp~!;C8ofoO*pjzK4HL!uP`Tcr9*EP9QYuEXX*5IAmZy4hsak
      zdvYxhIBFn_h*}*t5JfDG6L>a?lLBr22x*@N+VC7vDij@C(n)tuW;f77%I7HqEr>^P
      zTA<U<-F36D?74i+czngtfkQ1!;H-fJ&IugI?>HAo_!hd;iw=C=z&;oP2Q!u}r>dpA
      zbY~Se1P*7Mf?3R&uBG;MWyo8yDgu{$-8W^K>VIjq-v5y5uRsUk@T+#KA*#d+2C02f
      z6OB9~9VX*=9#^8cyeIOS>jqxH)jE@OD+F%&ljq;_qiM3LDc1}PVVKFvQrTP8<e69c
      z5d$ybW$w#PS>VDRW$$cHqOoP8u462UQGt{nT#bvG9NTsV#t~sMp8EEckK^j~nt@5g
      zsn)$vnl}t&kfo+<x@Jjr{wa<s%x@TY6K@gH{1({+oc{>v(~<s}5i<&8Qa0ka)}mz-
      zRn8TTt2~EAzi*570*IW9*iP1QN%wF3EBSvWi*HuVKbM|doO9t_HH8ic#LPlLRw{`B
      zf$64+`j7ab=BTPj?;Getzd(G(sk#L@VW}B#bXSi3iWmaMq-{%gv}jf;vJwTq<g<Rf
      z++{4Vf5(3Zrx`ZLUsnhLHCwp~sL84&r=gY{PLyGu5C`5r$lXI)g(&-yn`lk;uH#5D
      zwT@%Sz70I{Gfu3dJ-LSVAJK7h6KB@ZnGCI?>wE34o9|N$0u<?@#Gz}`t%H*&<2*h@
      z3NCthnydw&?B$N3bb>;!REhz;N-@bG*95MXnlNamQoE-zSVMZ4vg;ArD30(srqmm_
      zluZVi(qmjz`!#fKVDJ%QBKsI!4b6*FeQS7y&jg=W`Mkb?sch<(KYvgCim-T+qWiXQ
      z5lgYUX$3%gs#gCK#t%SMdX2RKRp$FKfm`7qT4j}=@LT>ASMV7I@j1ru1?KQ2-osbO
      z<7;AZA08fP6h?GY?$uF<Q9p}|th9q3-)8LrdI{E7bNmz4bYq;_IlQA=JBQ(V(=Jmg
      z{Pr~p9Q>}4Xha`9)Ip8fwOY_tu<tjiQGM?wv|-9vvNzSYiTUl8*6fSgo~>z(v7B3V
      jt8<hpaF}ely^T%H#M?4qEg$ew047lYYg0xANW}jFF9ckI
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO;5r=6r3&93RXZw)SHPOKoc9I@uKm9l9-?-NVqTM35#`Wwyp7Rc`zyme}F&A
      z_*yw}B4+b8JCir>WA^)J@&(`!TMjIN<DpKxv3!<Z605*7G^7`=bJ-0aNO$OoWK4tI
      zmePZ38T+GVsACfb4s3yPrV6AUdbj;C`LV#_JtvY8IBL&R_9B%1fTFZInNyaZDXrpj
      zfs^__^o^c?-3$j*Kn}|;9Jm6xdZU+zK+(kl76nRerRgSl?33xH%>^p$(3e3^8kOQH
      zX~!cK@f>rFG3yR*Qn(8f<5Nqe9jY^S9;C(zxK~<}X$CTiC~~kNurr5g?E7p#Z1aLS
      z{!_uhTTWjNmYB&iYQf?I6!zXZ_TRAb%E&^A?_#F>fQ?ViouJHI?Jpavs4!w(R#h;&
      R#>hey>lrJ!ehr%_`~q5QnhF2_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc^F5dKbSyJcMgxp`NVg59F5Ttu)2V;V@BR84?j!rSTgq%4%(W_L@(pQL!f
      zhm!bUeD+5f=j?86Q+Y7kmz_PAZ)U!4=FG3(-+usDKtVx*VXbC2jRStnjizta4Oi5}
      zJ7a5O$2k=CmS_m>i)wb$va7GSZ|)Zz+jpJ%w$IH&1xbdn4)mq#@{_XV`3&jjmTmd#
      z3<EiRmmyhnszSv81~sIRW*9D8ws_q<st9+7SL%XcwCtF?zRO)puA|MQzi)XAg>vj1
      z3lzN3^!ABoE|!;qzN>=aiiS~)5g%TyGEC&k0qr`sYsQ<(fiV4ozQ>@Lp*##L@q$r+
      zhSOkJ&FS$R$Xu^$xPhBQ+_T=3vQ&bS+`g^h4(?KITyf+a)4@cpr2or9!99lMID#{z
      z#8JaP2}174kTV))F-^Ky-bQ$`9<K^PzeS}OWXN#S6rPt|VDS5K7*FG{BOYoP!f+>-
      zMTY*!1&Te^a9=9cX1K)Q^~11_Hd@v&iK`6iw$pS?v1!R?I^HuG=H)wJ&`P!~++v-3
      zp70c`F--qQ2T==NI9M=6y)!^F3dkTKCkCw*S{Y;+*;M`<nKSxHK&7ud20q{teYNlc
      z*~`H>)rfW^_yyfgkX7<?EsVVFz|~;;l-zs@Tug@7A{PX}I3~zRLh2DYTc!MD(4l<3
      zg=@)b3%7n^>T3|PlhT*2l!pGML<Nq#bojK8J?#O1>jI}j@CZ@Ig9toBR`QWz<T`A+
      z#h~Mn40Plp$SeUQB%Pl-$6PPwV-PUJJi>fen6~CdZ;oeOkOeGW09oqQ<Z~NBnLG(7
      Puiz<JIWK7N;ThCFKjM<x
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O>fgc5Pg#-HFXT7v=kCrpfr_e_^>LDK|K&!$x;9*t#avUV{emflXc{e(qF(I
      z;p@yHLgK&=;71|GONx@pl{oC|&iKvD+qdIizkmD$u!AiN1%lhtse2;MgqtR6;6}11
      z&)xRkVR$NaTaKhiWKcUugnudnPalUCiiD?mNv{}_L~IPY_Rl5QIvxJ46%)uKSZ69$
      zT$oTeVt4*n=|Dz=7p=U)m)X1yMRy?MeUsGS^p{GjWS8*%ac+LIFCvc{oXeo$<s#a9
      zZ$#qv8%I}to|R*kz;=gFY=(ifF^5G5W!xl;@~KR&(#T~o%`+EpL9=DvYan#beb+sa
      ze$v?PEP!y!K?(EOX~ltsYuRbl!2)c;VoPcHHXU|lbePG<=vL^9K}SR?^C!V#(pUUQ
      zJ6H6d)nRHZ_!&w{kJ5y&k()bxImQk%y$S2N*o%Ae<Q#-)<jZ}P5nj182+uPa2#%+<
      zjG6-x$1=9CN!a|4DI%1o=;I+vHOIe2wpc^9$P_d?>&H9sD#PLZI-fpFP}Mp;c}CxH
      zqrNuAQoT|fW4T@_jdA-MqYAjgc9pTfN3QmXb3bDlUr@nU+~w%5=~ZRF${yI>!<y+;
      kH602jwvPLTS=DeVnpnoF#2p^6S781dyxW{fc!V14KMq_8KL7v#
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJU279j5IwU=vo%fZhqZoI?H9B@xCl}ZMUa@-Kuln}36wsRn{-HSyS*#BcZ>e4
      zJ{9`l5Aa8cb5|c~i9YzSGxyBQnLRV}{m0ce057rO!y~*Jn>;vC=PJmpj)RoP{3QsR
      zQF6*A<j<@uA8$tK*Y_r|6HY_U^4R()6BY_qtjsv*4NrJv36-=+6IMIZ+kR4ZG<hS1
      znN>E=2-GIj!sdRz6CJgB{q6@sy^$D68#_>O&Lz=Ggt;g@IBNC7Xs;Q%kSMQrd(mFI
      z`|%gg1xp0~TxVJ&6TCxdU3sgGw(kg~?VSOk+(?eOiV{|8Si&8`d`BDZ=4V4rBQ=bf
      zu+&LLDjuj*JN!FXwi7L4cmFcgzn3NBzTW;n=FXrB!V00fpXBL?TiQunzHy!x?hvxZ
      zwlSPGVwGi_`B)=tOh3XOa^;RUuZw5$Q@78Gd^3dwe9Q{Ek6YqJkGwt139enkb-}l<
      z;d!ZAz+zGBxrGaJSx_LJ#Lqmx#NCS`eNSw~1xZO0NZX<S5Ae|S5b`65IP#WwPrM^P
      Wo=$dY537ZJf~Vr$8cF6_NA)LO`K)mO
      
      literal 0
      HcmV?d00001
      
      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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
      U6WG?XEoZxnZHR3r+X@8#2Otn6ivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVJ986P7(G{7X)UqFvV)AlC>ZiUk_CbQN{ETEQEVb&o;Egk!ecG1qz%%_S+9bV
      zB2`FDmw}lCQ_)bs446p@N(#Enq)(Ilf;6E>oOACQ#RI}k#-qJ=zx#dXobPeh&;I%O
      z34nb#uOlEZP;r{s&&@B*Y}2!AS=Xvqi`lbdQ;n;ZGwGSGr$ZCyU&l*8cdTnQ+pz?C
      zCKOc7bSl|N&$XS(5QB?Vt9bRYJh?30E_;?+w;j`KxC;VeRv>)Xc5H80pf_1~6(Kb(
      zpyeASD~cdG4Meb!hGZc%9f3g1KnP*E>oK6CL!fJdBqy8oIm?|g=W0q;qiEKqP1lz1
      zt47VM+T`Cku}*HP0!*P}p*dG@O4cIv76dl8lQ}DOia9E(Sl$V9(XKb^6P8o)ssh1e
      zieZtu=@qL}iuPi%EpNVRx{Amu4YhSRJ9a{X45ijRjbH#fb?kU;=M;#6x6mgLvSnr)
      z@D6tAcvoP1yMn9{W*~_an^vUOQO|EhJ_xL=M3KQB9lKeBm*>Dh7TXw9Qx%c=_8E9j
      z(uW)6@`B~b*j>_o&_GVvt#Zw*EJ)J_1`a8c=@hFCS4p04l6ptmDy-4U-s$zPRNVy<
      zZM|PqR3K1ft3;mdDpvRLNv)(RH=0g~_OJP~1-7`B*L0nQaeL7!`TbS!7H5fV<}~+~
      zS<p4ds@C%O=>P0_AytTS&W{^N;7zjCP0piMYS!o3=j1CF=V-HBw%noAbQGs>M#pJN
      zd$}#XkAbt8WGBq|c}wQnpUkIT2gfosm`mU5&!dx#rdzbeZF%*&*M3X(NP6~@+W83z
      z@Q+tl?Rasy>ik6@bKJn)EYGE1EZzSYMmqBdUFqN>bU&aifH(N;fyU=<qU>Q*7G2nj
      zO|%U7afqXrZ$!Xm^bu9=Bx8WP2)3;9l=v=j*779U@a$*o0rDIqPfqcq{kU~`V%W;u
      zWFGz4w#t~{D%Avn_vBOM5>}Q&3fJ&YTexgDEv$+7n@F-!&(jaleG}7znTOb}m43q8
      z0SqU4(zlUM#G*?GW$q_polDrN9Mo}6i)*pyZFwZ_C%SRn_v#)<zSyMHhR9t{aYZi6
      z7#t?S-ozc8)^b`f7glfypD(9NpLlo~`*WeV9uM6{B$(6gBJpiltUAWSSA23k9!}g@
      z`6aI1lmZBPAQt=PM}&mGAK`uzt?x^^CFq&E{I?^Iw%@`=X}k5p)+*R{*unh>hh~&T
      zJIXTWu@fKj<21%LjpHL6!x0ql36A3oKIJ%_f{D|x`St||-oq5G;T*1G1~+gX-{S&q
      z(d!3%h9z9Y16;ymT)`7qc!mmoMHRm>`gg8>;41z^4S#W!16Sr)uqmyEJ;#R_QcZl0
      z!&DNW*Eoi$CrE7@sQL&;$0qwI2Qx@5$C*I~Z8tc|d7g%-?HIG^<G5bu*H6aE>oG<g
      z|9Z5BNPBsR8f}N@7%SmNULd0!_|EiTW*LR22qo^VnZzjN0xo4PC?J2zJ6p+hwvy{y
      zO^#43uuKG)z=>6w5#mUsj=|WaWt^P(@80?h*O<_vV(9h#S_~a*%{ih7Ofx=!nSTLQ
      Cr^~DW
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTXz#x7~PXhE=?yiq@=c#ig<zM0u_N;Y^|kf!C)xRmfiqinw%t~$xNNhXnCnF
      z|A5csg+90zFFfd4fR_h-(&g%p68AYNB})S@uB^=Y&Ue1+-rqU9fB*U$fYZ1eK|sTa
      zs_l<_W`1do_?}fCaYa>Zj?B+4I-d)B*>TI$j&GMu_g)0LhQU`DYlzsQYI>rqL0i)h
      z`l=>eLAgMAdiGLbPD4EJ*iFy0y(P2miy+I;Gz4eoW~9hs!V{Kld6N`|3x&1xk_J8R
      zltm0dBn=!uFBQXu^imfzqzpt5mC|blLI`W<DO$Fe^Be2JT{PG0%$+PcC9}R{x|ZDU
      zDRr-AH8rG*uV|*d^KlK)roUdW%VJYQqAI*A=BCx~8%1GPy&4-BPP50ZhUt}Riz@c*
      z;f}%cHPcmLM0vcU!TjtM8D#urwY5&W@Fw1l;H{VPq09`tgD8;{mAYANN}m%3hLy^x
      zRGPw*s*HiGRD~?roz$E(a7r1OcB$sL-FO%8MQ~cf(N1u+b!6ZS&N5$#O<wR?MCHlr
      zvu829kMj|XY3NmhRyXbHi1ai|o^TC(07BejHH*UI{;E4;RV@`DpO$lE*&9B$$2ua`
      zRse%U8ut_n8iqPrKgX9*%?fj|+;vfL<d_CZWKzphQ+DRWCKC?0!t-6bdC}Sw<rdcp
      zSi#{T<t(kQLfASTPybK;3+Y0PgMHb+QM|!y4U?0nm;J^DIUg>*KykryExS7HS1Q6C
      zPcKDrm7Uz0j^esp*JD_~jR+Q5YG)q<OIT*l=EjDwd2w_94bEZg>^mOCs?0JG#Z9^L
      z+6EkA)BiGi4Y38scT3`;B`;@xhgas5OvRC7&wLSd1mw+@Z-cz+T>H_*m4TG5n|q^e
      zA6K>q&_jy^Ez0!Mxh67$KjC2J$P*mO3_U^LkIK8B-=sP}!z^bR^Bg@#F+hE$<%h!<
      z<c<+=MCFl^tR$dxvNl=g5MJNQnB%HZ69_(%U)BfONX>Z_*Jz#Y$0fbguvX1wqzLVH
      zgOkBgJ@**L5>s1=sU7rEKF)voE<d^NaWX46difWO1h6_9N}hXwfmG;cjNZqAR48%h
      z0V2VN(DhMWS+?8tcd}!?aON=%>03Ip4Q<0n>Gu)Q8DsAxv=!PxUn-o^x6wWH{Onuh
      z*0+tGRCxP&&ajem^woY~H!TDvi7PO}-7JwV;2<vJ7(OB1MSid0Hm<|vB>Gsv*I31O
      zxQT7t!Xw<l?=Tf|^F*EK>?5~}34Ex~+{Gk5V(b9^!jxhpgg<bBlFmsQ#5D5Ey21=C
      z$;S=W66O!A=VA+g>@%nTo4ImF<}TsmJ<nA#C#Ni)$>yG-@Fzk;kJ{*uu`r;DZq!tu
      z)@a4|8;S2X65nftp$JP<jaCs?_R@T#S_H-<SK%EDWGN8+Xmai$Ldk1SF~9r}M--Dg
      zh-Z^4Eln(&T$9p^p+BrzuQNk~gKOhB90K(PU+Jc*uuoMywqM~GskqH5G<?cV0=V-J
      D`>?Wp
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqQE$>v6vzLUcGOjHh#R_z8|YMEZgt7@L5zu-&XCk;%0}GNQp#N^c4aBWpdZ06
      z;`4kMi6;8)hccd9nn_&UOX1vm&hPxs|DIpJzx@EPiA@D5h84#jYCY?Nr42*Z(*o}B
      zk+$dCU2ebU9aC2zGZd1NOr0V9)b-u)8N))wh#;QjJKCFekK19r+G3Dj_B(tQv$(84
      zWhf?tnjihp8fB0{mSN7+51RWsyU*Vpywy$P5yP@^QCVFD6=g7k9K%+Ej>g61Lgt*|
      z`g~`2)aJpi)%G|;-sszw*Rldv#POjVcHIF(IT1KzTAe{Tw!)AHz95}*h8#`ODU_t`
      zL(g)k32Ug3a8t}xWRNP=mY8!ngB6q*RN=d8dG06D`Zx)esL|9XR@WPiYD>XwhNZva
      z%%LB;M_eD-{5W*`zKT`cQ*ie`OJeG0nHk(ig+w_#e9Z>~%OO$omFm>s%`k9%hn}j8
      zniy&ApOuO4BL@c2Hjo2ENw#{bHCe4T`@_KI+pc)G+|)B{h}me<$v)b6(3er`G<_9{
      zUO+~Qe%0EV^c9!JxN<^K3RlHhbhAx+`wDrA3zJM-!#qXeeu2(NBJr-rJcD?m5All0
      zyglNzB3@~dd5$N@H?T<E1UVOzKa=JeBA04oED?QOl1_2!3-V9o?<nst%BQ$9M)l_j
      z<;%!Y-D*5XA*$=p=^>pu)VoXj(~C50O_*mIO7Tq8C)ObTJs_S$`B|)EgE$NtDM{hs
      EAL+#NbN~PV
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)8Yj+b>6x}zOl1Ha4gon_AK!B1ar4cQP1jN3;K--k06e}v7B-3=tG>MZ54<Fxr
      z`~;W(z>ms;uy`!+ldPqG!N1^NaJla!O$L+3e#p$dckbC|pR><7?H~U<eF5M!Y#%%V
      z;X<(*U)Szv_u@J0e%UU?wMs?b$eQ=#6ODxrioi~JCvIxRLOhjS*K@W&U^<zenOaPy
      z<^@8tt?wDzGKz(SK;KlUSh2ODy`-5{-H(94Fx`#S9gS@|YAy1HMP#E?6zI9jbzb1a
      z?A8RQH?Px|vZiaiezME;MN2DIR!i1~ZqZ=Jd82699|(9OBTKZOD&_Scya=i2$3OrA
      zdsGC`>%%^QQ(KdmEtSeyEqB|69>iXRB*Fm|D*6NlW{sjgU){*+)}od*b(ybHPBWJ@
      z%aHrVp<=HY6@lYjV%XG#0qoN9`2|aN`4xypy4bpICPtP5IErIFgawXm9bBrcTbdL^
      z#c`Yv=wC?B+*(Mdre-pk<oxCC@-&STLFVG5iU>xS3n{FNia=_+q`Sn{@+HL-tj>^3
      zPpM+NT*;76sTh-y3@oHFi?4;E$a<h%q+ZHZ+c4vETA8U52+rKg>1COSiVyDyjBTAV
      zm%pZw4`&1pw>l(gntDMqGqz^y%}YUyBh-ttIOoIrY#!(OCJPk_oM){TbW$8{P;_-;
      zV#L*e^#)D&!0PTIZnJ#?xPT8;OrTf5cPW*=F_E73V@hCzVYYRv-D;z;X2VL}Gb%2D
      zHQ_B+N%Cw5lI<Kj&<-Mrt3F&|acwKhD&lyH5@|N)PPS_6Y@vbwXvqFvHA{CnRxG`u
      z+tS4~6)6mG4phr|%D_*N$&s6rvQ)3DNQ0{TBR40LNglGIvi$MAgGbJR$Ka6i$oolL
      z=Xq&$mB74|<i^yC1$&L0Os!&HZ{RDD27FG%3YMf{PI|jW1G1``c7R7~DhxR?6k9V)
      zA8vC(x7E#rRj6+0McY+6>j+6e_Gt-asz@$#9B2ZOZq4<2*C-o~MKDvUS~>laA?H-z
      z=D-<~EZ9Gkmw!FHIDj7P;LgXL2Y&uIE1fkb9^ZZZ#yQI8PVTPKLh!ve`WU;S;t_U7
      zpJDIvW4!SQ`+s%J2Kfv@;qx+|Nd#~OduTYs6SZ!PgE+*Uz?(SS0G=SQhi8Fk>;aBE
      z#&8QP=zLfvw@)09ef5hC5Sk$BuoQ@Oh8yhww?;VQf8bb-bak4n6taBVNx)C!DHE57
      zKE&?d(fbVJjQ-u1v5@}>-t*u$T$meu1>XZ)oQs7fN1tHYiyOSWKUTv>(NSis71=Pk
      z16Ah!4l{h0bnY>N`#6R#aSC7I48F!WeB;nOQg_>oI)Pctk=787V4jM3xMm+T(s|L@
      zQ$6Xqh6P8emg9a0>^nOCo|^pNIH+sW*VHDBOk4DmEEcI!e^hzyU-k|ydX*X$f8mJ-
      zQg>NMz>f}IU8epf;eOn}$NVnXlgn+$7ntLQ{@&P&4xm4~Km$$C0BhoA19Yhkbe*8G
      z5C^4LuUcX`avVHV!>29k^^`niN}e%`&mC{kx^>grV8a^`@fkjM2oK^GSF$TsptUg=
      zCxT2#FzS8o_j+r{wmjC8^`|TO!DjMTwwwGmyuVy|>XiJIZ6v=9^lukvr{r@CwuSyJ
      zL+@ee;jNONKc_@%&<`lBl<bohg2PC7IMTfs5(*BB9>@E59jz%wxG6@sDMq*<#t>y(
      zWnsvg;y){tU?-W_+{xYz#~z~K^zJ%)*L)cptzjc3i{cRq(b#K~Y>+h#5hSBtGE%We
      hutP*Yj*0<?RlP04E>`tnL@)RPC+JbYqE8Ph{{pscTP*+p
      
      literal 0
      HcmV?d00001
      
      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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
      F_%Clm(&YdE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZC4vb7`+ohH-t?oXw=qfK`aJB6I)xrrnU+cjf7$i1}(mAHj}t@$;RCcE&c<4
      zg1^8oe$aCiTR(XG?2qzzXE$ut9EhHi?9R?SbDw*k=g$1~_wRoIxQd2`guq;@-7P*e
      z4vfb|(>?6?PSNl@xnH*ri))5w8Vy<Xjh57q6u5MHY!D=nYDinQ3||V&R!)!ZA(sTs
      z+_Ku1e_LQP_dnu?gsfYxG=0lym*#5%$u*}T(-^_H4h_0MZWw%g?-&Hm>KMftfr*OM
      zmiM~*b?NRHb(^B5DvoK`HN&;kcW*N3e`R@0F@#;blvJ&mVQB@<H68bn;Wi=)0+)y2
      zL}3I;*KNoAx@vtZnS3%gUr}8wc74k(R;6D`<2+u}a6w?^KO3RrIXs`nOSq)rWr1uT
      zY0a_iu&$ntY0R)F-S)oIu$n;ym`GqcH;{Ueih!=VydHUDD!yaO=mb4W-+gS#j%uN&
      zVUDx|7M?V_uH_#V%k2Zhwi=uAFp5hdN1st$A+&Dc*t!KzdA86v_QW_Au&5y~km*Zf
      zUL99Z5EyAG8FM{Sw$W}Cx9blnyVO$>pVIJpnDmrW6SYV=>6(r=kY&SrZBF9`mNhJ~
      z@d1$-u#OeH$paz3=^8dWnmvimgEWdL>9~cr2<plM>3XzfWtjIOLR53Q6Z%oASa)>1
      zjdxg?PM4KgIe|*p@)-Y<YNb55rehtmJd(-+bgkk0u2t{)%C!?Q<0u<2s%blqSRFRq
      zm2H3Z*y5y;n=fnF<So>%T$$!<88$B;Uq-G_Nw;*ohceskN>9d&N06FYzpvv%YzvGA
      z>pbz@PJ<YIhmPg;R?GZ_;WZt**kN<RFoA^C=3{S_H=fnrZZ?@jKrrEmqY5_0=kaXH
      zlXi1QdYoo<Ht;+Q9iQV1)}rckT~lsY>S~#c-w_3+k>`zjcvmx(x{x^1f`5uLV;tS*
      zyjmY$So{s?h5WC`{LIe;CipxXEUj?kO{7u6InGUo;h4k}zqk?45LN`EXOZPjp>Bd6
      z{0+W?wS`}hIl>E1aPcRGhVbFGI{~a7hDETiV3tv@GB(MT%K_K#I96Pj^HZ-q#e4#P
      zqPWHJBEhd7;rjO!z|jxk>j`c?#qAO7s?_--toC(X2nw+d9d|K<4dnPP;9V@S<9&_G
      z5t(JKZ;*zLJflL5^hS)}`vJjgj8SS+q1wui15zt7si_G49=5qlHDl@D`#<P2PBWKk
      zmPXGhhGDt-7**`_Fidu9lo6Rg_QfmN<Pkm^1ga5WHvqaG21jHv_!yrAA~JY@y&!D{
      hpK?xBK7-FVr#eFO^%4$<{&G<C-U);S>O@Px{09gq=L-M;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQfT7~O{?B*Z~9MFp!RO4VFwq7|)*6%F2^@lru7(u<R10;7|eI2R#(=#x+V
      z2YvL(7aw%38dhsp``(|_huVE+!VoXiE|Q#Y&V1Ls_c{Fa&u@PKID$uU^a)HXnO^a}
      z`bb?Z*6eo6wTi0aXw9n8F3zY<O|5HlwrV;J%Wi6R98rM-n@9Ax3MA^9p)IMdCNN&v
      zJf>S^N?@RBShWYU`VWi{Wr6<Fx~aQo1P*5YM|^f(AUb2!wIm`KR4{<80+CF1egFd7
      z6vWUkFjUb^?Yh^jYWAF3HCQNBv1+O@uiCnN?ruiiW!(`de7J1S#GF8p4WAFkPGu?*
      z*`nv_M)8{3nvy*xFRa$ImaAK)6UQivYz|FN@-QfYj{^z{0bPZ4x(c;`u0mb6wVKQ?
      z2j8pU6O0MOR=8Vd<bRBGem!t%3-)0=j{O3IZw#Q|Qyd_wEzcD=(Vfmv&86av>U|cS
      z3g+$I$-cXl#35wk$O!D)eD<y^6y&gz#7bZjm=M_73vni!#0UzK?4m%fx1m|r*3G5f
      zhUS)SYekYw8e|Jc6nu`O)JDy-ZOwE`8|tHM$`ZX}3gSq_@daD;fp9cB>u$SPHXo^m
      zUcaifLuN>=>auFpb2W-*=q>K4=~a0WKA49(+P;2tdU_hPHAf4@B?p*Ra8`;u=D#5{
      zUaQXIwxPd7X0cQ*XBSIJ&T?MC1(ZUsvgvBJsTu-(y2+nKzUsFc4c4GxXy%f;OoORC
      zgF7ihb==!;<&S2VTjF$G!42Hxk=M<V*Jx<Az*sP-ZWT*yS376hYWs%gQaB_=Q=3ys
      z+`?QOvy`Zh$YzcTZcCD)4zGnc?l7_M?n|s}$P31pbvboNLjnr|(_Q(b-Hpp@BCR$!
      zb6QT44xpMyH$6U7wY1i3x$QKmOY4q#$W3A%i&9qK2<&)|tg`b7d?zscE-INU38|@`
      z!@Ff)kM`f&tB*oeK@B{bu@x$dQPE6U3iK8l3YJh2*y36thH`&el7C;p1CYJ`U=rS*
      zl5Bp03(r(wNk#@N&kZP%kq>1lk`oVv!P`jal<lnL*){E=F7Lx#UF3T1o`OUiY4RN5
      zKaM{B@h<f(9uBT?eg_~mwuRP3-vdbI)}Z9_FERAO_ubClt$v1+h+>Knr;*~`PWsau
      zA7PlQv}ATcYlr`C7p*9tNBrzR(Ux5t&Zl<ge!-q!k&fUFt)YAe2cKf-+AEAKr1BGM
      z`0US|-0$G<OH96ChCyZ=!Ex4;z3ld9ILqA`?q0wsF7b9NqlhbhU+JJu*w<m4z)5Bq
      zWgn;5zwG)nj&es%UF0fzj<MwAGa5mWV36y6LM3nr6MjiJg5YU-%izJF-!r+0-|>2q
      z0JT}-JO_CkBx*sj!7$l5l$hjAtg6H+CVg}HJ$u(Mb1FI-eIB-!^e4DW9v1zKlYwuT
      zQ6ZC;{I(QaCeLzSh4>_h%K*Pu_%_PDtEjwF`2pWZ|8Wj<t%I+A#>gwoFQmR+!`+Hc
      z(6@O>P~`W-MneH1_b7lWk*Q%D*J0E#hKAo@Ae8ZLgTsXVd)#A#eez!GBKdb$nnvV!
      z>?v-_^7%cF`^3@hc>QAsYPTOQlTT0xp0rcZz*y!oG#ZWY(}B*1CM_<L9kd?D#E#hB
      zC$FE&?GAz%8q2+q7JMlf6qZRUEF8c?6ky{R9Cqm9CJZcKg>$V!N86w3vVVMx5OyPk
      f-3Vbfy090pzYBYnC<O#WcvCqfB}N2XpIq->*nc~_
      
      literal 0
      HcmV?d00001
      
      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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
      KBKgvapZo@t<KW8x
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%Wl&^6g|^8j^mo7O<#lp<yEkQgvAB{smh~GP$i2>2?~PU#2JDs*9ON9^i%i&
      zx`iUB1QH*>M<MP^EL3Hc#dz+$bI!Rh`On{<zX9CE?Gok~t`DQkJ>X;h(e;y~cWLbM
      z(MTNj!y|V$NQ9pTaa4lFupmKh$fKdV-#?%ShEjXK^YTe&mtoVJL8i%IbXvVur`sY*
      zam>R^Ft9xeZ~0*m1?e_J!FGBK+D<$WCKxIfs#svqxAJ$*-gA0odZ}3`LYLOEg%Wgz
      zsux7!d3M+r$qU{ONxSC7J`a0538b%rCJHz&Mdu~;f&~L*%9p+kM$}Lu#v&OJ)3ayl
      z$e9Txb8c9;f~(Ysc%Si*a;@0j^hBG^YnsP^=8?wTGzp?1HD^0#aFb}$z)dRlO`Lq-
      z$-sb3jJ$Fpo834|e9;c%1S<cRct>WVwbO`c{RPzJ_{gfu;n6)OCqcJHw~2YeS>!!Z
      zXkhIZ*emT6=e}W4nnh(UeO1I2`c@S1J`o>c75C^!NqK00xmcS#88aKFSZl0*M}3<A
      zn9@I`GIkVyb%MsaDv)@pL`EfF#HCzwn=p(tmm4Qo{DI4#P(H!ZF?4djsQj`zU16Rn
      qRcnIBHKj^_0B+=34|1)l)cOpgwt0+V?bfu6cSfd~7sueJWQ~9QPosPQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D%Tg0T6g{0xk|BmiP<bd(QPGe<MpRsY#UdzWs)COK*+dtep$P+%nbbTi;y1a_
      z4O$lE2l!Ezw`Yb)B%tLYnZDiko^$TG-9LYQ{{dhL4>L$GEVe9PJK!Jqk)}J{j%RD!
      zbw#^rcD1@~cbZ&3+;+I-?%7UTI2kAma~GHNr81<S8kXU$F(ixgI}FOYy(_XvVkn0c
      z(hQ?@!xAt3c2hXpylD!C@w%;ZbB8;IjH6A(+c#VWt$s1>IZ9WFP|_1<u`c`5e9tho
      zP2O3RVzSSVbkXq)+j27)XQ*5Z-q%xHL;&3L9HZ%bg0zjEVPHr(!WBfG_B*@Wqt?`7
      zqgt!YH>z1MOy_V7lMEx_=`&%9R*;o2EQUm*N`>~`UVy-A6qv$ldHcj_a@TtsK`O-v
      z?oJMOF-x8HPJ56!=|V5e??z-*)7B5SjE|&^=0haIf#lQ7EJ|3&pv*89xMy;!rEPUx
      zPqcGbM1^69I}Y#acBjiwiaZXoUNsMd?yc5BQ~ubhN$=A{<eOwpcFXo1U2GU~_EYB!
      zu_CGQfE-KGl?Af&qpL%4hE|X0%j8b!E7UKvNCXL4`U1;P@C27=l?#*TJ4_Loj#0`O
      zqqRa&K7d-LNLH~PjAQ{;0*Hz5FoKXEmvM#u8Lq}^%Ch`Ch_yZyELJgr$pICwNs&Sj
      zYN<R^IL6dxT8BM_V%7tsQkWBqQE?qJ0kw((ZUj<Q+@w{Kc5h*JfJdYK(70pVK1=eV
      zPi`tEnfo8pHveiGa1Zy1Uyg7gQj$<Uo$2*WpNvE-qxf&TclruX?S_1A12!DeT}lyc
      zzHp+hDCL=HC0Y1}`DvwR$w+YV8kF{q?#=rE`f*qkYs$y|=VSl#k^j;_jiw`~N>6k^
      bLM7^7NuH=Z)^OU*zDAUYjnQL}cVg)`ip%Vh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~`}b6x}xj2EvpS`k~ksXlrXAl(YpErL;<+HZ1`w6<Vs+Npcg04ih>b1?orD
      zcb|OHKhPH+bS?XVuI2L0wfr;w19jh-WRgN;0W){*J@=e__Sxs~*FV4h4&WTV)({go
      zS+@Pms`0?s%oLohb+3{!Tvx8;t*uP1Qj`mxQI;Cw0{#DQ7#In(7o{c3h9?D%&F->Z
      zqqj^}`J52gUoZ+QvN&Z`3ilSwhtd^D&MFic-!rYug7j$AcEPkw@1np=YEO5&52F;O
      zO-B|yvtmySE(*jiGkO9o*r%fdT>_~lj+@@?05R)mMVngn=+MxvAe*+F^VjmyxoPAr
      z=G`+}DHztG;h5^Xx*7LYOeT1051bLzOgpZaVz^Sp*)W`9l)~N~A~SkO<QsVHP7Us0
      zR>LuY?mF974R?i%CvX(~ikJa`mek;4Cr;p14JQST>`_b|ui%ux;TNK0J?R);#hK{D
      zYZ%m!A~W@PwNo8KNHbqsZh8U-YaT4aE@$TRt1R4v!gNN*2r|TE6pI3fQeifYR)fnb
      z&N&_DF)E;~817u)l36S#@H*bq@CI+z5nQfVR;UYC$2i_%DSex?o28&`Btu}J8YmLv
      zP8umtN4ma6+XD>@SJ`A4Vx~%~;i#54&vYg2>8M|N8iVDG^+2wPnazS+SL$^&ObHwh
      z5^!a~cT8_9leHfhmRY<mw<5cCOotsk687>)P0S;%>f@1OtsOdX1y?n^C$O*13gha?
      z;u@(gD+W$Cqk1>{8fNz#Bat%OF~=%UOEq*#=n9!9Rad>Q;|6+JzpC&PSipxGZn6~u
      zj13jnv8WW$Chz-(<tA_o%NlOiL>(ArZBLe^qvH-fqEAxg%lVQLYPMR)Ml%Za3O><s
      z7oRfwb)VUfH_3i?@{PW#npJ(1*HOSFYFm|=4QY6uW9EHt=b%%ird7$RY^b5=JC3xy
      zXetJMnANb#>075DOYN2oi$m9wQRP)oOGg<iEGcCvBXOydijH;F)~&&bK$pK><n6lt
      zI#PG0viuFZ-qYd3A-|!SQnJm*9cr-MwC77Dx)%^x;;SgCI{2*Zw!6|Q-IT7U;(n>)
      zbJdcGg^KSK<P}rR$gXJEji{tBz}mO)KT?c89I#w{qsA-W8vi<w;CUxk%RE<h`-g^~
      zK_5y#L2^huLHEzxi{SvDJ&5x;MK9C5HG?FJdXPH<;XNF}VSdpAUSb>(tX@VhZwpSb
      zBh@(HRpU$!{etd4G4>md-hPI@S$-zBaa<tx7+vY%ZJZW(is2=$&I<hS@83h|=NKa(
      zb?+xS4?*<>X<XxTmVj~`XmcD^Ih@5jN6(E0fRj~#Netp`Ob|{lfnLBQJpmVSiSKu~
      ziu2^%fRb;yR+NmUdoFKdCWb$7J(upu4HLrrQ+)6}wD@DhTc2ZT8y~k|N#&5<h7m)Z
      zwG#o?i_oz|fVa?x+vw-}1iw>c{XAQ!&f;jq;wXxcgrYN@Qk6yOuK}bPfE=TZ;yMu$
      zcu(L*eud<ORk$1Y*F&qw|5~67Rr&E3Jy45v^of9+B6T90dbtmWx0M%3U9|F@3`jV7
      z=1_baZtE^rCc3a1xEc%1BS1+!z(xQviA`(;fs=U1JynAwKI5LM4JBU<xg+&2cBgJP
      M0WI)|{$lv*KT4oBIsgCw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}#_g7=DgT+cd`3cAKu#efa@xVGFyFZOS$*wiJpjMhd%<lX$2pX%doD<{z53
      zx-o<e_5=2##@=&UoO<QON#2j=dEVze=g;4tzX80#Mjmqv>%(ATjrb}5V!82Il!g{h
      z5;1oCGpiSgn5SMC<e@PvN|5FAU}*K6k#JLnV*g<8sDIFF?%8%{zs<1Oy@%R1L#f}h
      z4{tHEr`(?i2G(KFcU<2Kyz~P@rdA&?XwC3g7@&bBN?2sb?acaGty3Qqs8cbKMNUQ!
      zP2`cI8C@?B`;)OF;zREEq+RKTF82pK_GGS#1~PaoMdu~;i3uGAnwOq<3HeAvJB__y
      zNTRiR_y7LW>b8#OWGRZpt0)d#kt77w@sdVIVUpe`G8lF^iCxk1q>tkD#lDuB^c1ux
      zJxK;txdcU3xdQ#?q#xDMVPKwcCS@NL8d&}X_F22a!grKqm{s9}OGSJ{-=YG(CE|N5
      zVT+EGl!tC{Cf1@%){Mp#mK!TSP`%6l1P!}nqpA2yQ#4kTLE<Tk^l(_k)0yTw!Z6Y-
      jHNK(z6?)~_IkJ@(7izRLmQ(Gv5;UjKnIOZOLaqM;h`oE+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_dX>S`<6g|&&;@Fw2kb>!whSK0Awc8SCz-gh`z+^GR!66OX*nW1Wo!HTM+%)_G
      z7Eu8o_yNEV0MsNZm4HuF;zuFQoAK6c;zOipGVjiP=iGbl;(z}A{SN?Fp!?ww7%r7-
      zi97l|{eB{EZExC@gkG)6jhwli$k=*G`r#AkR}KkNFP9SO+#Q*>1p+gv<=N?#RC-BZ
      zaG~`*V_QbKloaThu9T~`UbeHkS(9A|2wWgn++~S3SmN|4$#}uA2y0Zz0{&vf+S09p
      zz{Q25gPUnwAXUc}5A^SxG|Gm3Lm(XfUpFIJ0pE0`AcOE?Ktm4(1-#)%HUNQVH3ZSE
      z-cD)I&@IrnV3g%jZ6hbG6+LH4m3Squn_1m5)VXf-*|&|Vz{oKnILb2c{(7p-WCXfP
      z(oQ+T<w+n9No0coCsK=iCXb<LLM9`}c)5Z2G3*xSh(=Icj%N_(FrsvNQDF8YLQ@4$
      z`3Rgn7-d_c0(TFgYxGcJTCe8ylhos7fzhLTuTEE&WE2r4NmO9|<YJ^S{=AzNOLI`0
      z1E~uHb7m!fH)DJ**?j}yh&z-u+b|OuX|vmWYC71o;kGY}`ess%L2&kdUT&%Ztorc^
      zyVsfMs?66c!`@D$%J+2BD9p?4rk@|La(lD}KV_P-q?;7QmQAN1#xc;13B2LQ>)Z*B
      zyAu+LH6$^~fn�?s`;hONO1>f_L{$(hrWe+9OA_YP0PFxQ@3p+*E_>pGz;V-dvth
      zflO<d!7N!fYh;}`g!LflA#nt`7v9$J4lWC5O4k{w(zn^kLEYvK%++jFhrWGUvkFDC
      zvc=J-vX(5{Q;niIn<vF(X346w75;k~-d7u`$FZ~sI%}H+hba(VpGxsBl2z^>XviWX
      z(CdC~`Fjj*RnPjAK$lTY7mI`!5Tx=}lm-Dl8`iF>G>a>;N;CK1Ehdwx)U3RmGt{~Z
      zIvpQZMe&W0(aYZvFGA=*Cr^H!Jm`W??M=S>)YjyGjc+~ZrAHr6Y5I8hzc0Fn{%C9m
      z&qT!zhJK~VgXj1hq&raHvxopnym%YW({jqaM!FYxA^=VkUhsSdXY1fMcuRo?ALHCw
      zG`5HHzwqSZst^IQ4J(KXc!@Upw_#m8h&Ae9h4*7wPhrI{){ezr%}a>WB9Opk#&Cu2
      zKAx^RGW<Z{lzbD>hZy=B-H$Q8wujgLj16`@!Zi>6!u7?mCm8q*Z!Xd{_6Sp6tVUzI
      zn2U}*rPnA`0=}U9UlRE%X7V+L@eOl(zzDu2-*>o%@10oByPQo8Cy>IsjOjELoTr)|
      zM!kSVS{l)g^L>dmaf>&}Jd}#T=q}Rx>elOE|HvGFVnjbXe46WB=Mz{)rjE45rs*J3
      zNag>em47sL=F*UF7c2W4;vo~<VS>8^-gCgmU4UjXA*|v<hcJXS+;SQrgmv1K&>?(8
      in~w>8j89Z0)a=r`k?2)gIBm`sjuCGNe9ET>pZy2!j5Ub>
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7^-BTM?7{;H&M-#%@U`XhfttnQ84YHtCkzi{<Xwj591A^_1vk8Z=HOXc+o3`9}
      zQ9u41ozXC(GhTY(ALaO*v&ZZP;)NH<=A69e_df6Qo_GKH`?o&;EMq5y5rM^etLr><
      zpSdrbT5!@1eaG!|WV6~harOeY)j9HmrVKV;)MPvK{8kEM0@EtqX}GPr)Bi&t^R@gp
      zN}y1QWA=^%|G8Uj$g;qNHLvA`cLYY~=Jy50HvB`G!6+szq>!F~z$+HUaX}zk@mg}H
      z+pNl9PaPJ>Rs5RU*mna@t<C0Gc<glqmMZ_R4oWG^B{c4af!C^+=l7MEyb_ZWNFB=1
      z^%}(I&W8$IP6Fa0RbAsXx7(p)I~ihfBv6Bg(sdbbMCUHe%?}NuEo}-7cSE=K4f|8m
      z=H0OH8qygQaU+GB1O4e|h~;{|^F_o6q}wzl-%^NKg}5a!(q_q~gJ+`8V-5l@l!3w6
      z3NxoLw!%C=hcVFt>Clh-5XcV{Yg|fUSzso<MA7zo_vlCl8N7$vDZDQ*6$d=3K9#l5
      z!Uy<}bY*3OH<@M((Di0HgO5;7VU>2q0R5MRH8|`%&+oWRy1RsY8h2UDYEdojSy;yg
      z@3Gr%%hsX5!jKLpdzaMByrbB(um~rO`@HJqqP{1G#p;Q|7qO{wY%*J?N~aT7U;x8e
      z+x5FaO>TK=F0Kq4)J0VoZgQYTIqf8>sp2m+Vw^O7PjI!yeZgnOKIKRJ3hQUCMsShe
      z7xl^87~{KQg0^P4XGPJN!mC^<QqGX>^VA6UChgKGriY?dDPb8Ilr?H53O6VoL;*8|
      zDd;5wePp27zC61$pfN{vz+I#99yPBg;MqPri_5G&f?qN4Cxk0+reekR!VvnFk^O+=
      zZA~vm=lb+1Bb_XrM|pY`*GwKq=LN>?Uts;jgps{U4)9O|BU{G}P^f7(hquk)X*zIS
      z0sds4_~_yFxKoh}2Xx^p+W43~d6K|RC$O^y`=v3qplW|3;!dhZsfRbuf+Y<&V(aV3
      z<5+{E-WB==6z~?_)=D}3!&1x-rYN0F(P4^^DY{JY>_1X0;2oWU(_>P6%RZ<(xAHrd
      z9@{;<+r!E!KF;0g;S>7xDIb+6alVw>Qk&Yj2mE!wLbu~)T-CGjlK1C3cJ3v6_dRCu
      Z1K%@0Ce*B$g0JB^KEvl)O+`2K;XmRaW10W}
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      baVb^Mu9)^vb1PnTSdA(Mg_cQTa$)K}m9wRn
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%SyvQ6g`u+iH)g^_5ChVOCMkq+*Mpy5DHZnO1F~6X)`q@B}sjJmJ2Dk@B{oP
      z@lLEeA%xtyH#u|enRDms`{NV9G4?bl4Ar4Ou}1cj{bD)c>o^W9M~qz_TIXKyJP?sv
      zp~QL6kYz9>&hl)3XkGV5+=&^o9v{%cIt;l`3|-3A*cDObh+)5*#@!<HsqjU7#&A$e
      zhu3@5u^rs=JQx-X%ptEM1Ji(xMTSgG0*YPX^Q*~YpNF@0-{TCWZs6En&klvGXCJdt
      zCPRAHUjs<$WjeN%dWIQWy{FR=)}`=y2K^?Ogbu$DQf=YS`9o<pgVFJQ9=1I@ig=`9
      zhoPM2D-9!=8p_lpL(`UT4k|@JldEY;^QcnjAq|8xs5(h%KyNhPQD{t2d`mDTiYj5C
      v++m4wL*}$^87sskv(*_xl^A3<wb7hn?f=~h{a3J%4^Omv5^ja?`|QyHE7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+Z*S626vm%>`8R5jKh7aTHr&8LhwCOrUuaAmIwc{FxQQ`)RcakwYD?Op_+9)E
      znrxb=F~0Ug8P6?LOnkvYdhU5{@9q7a=iKn?_tzf)c5o{J&QLqHN9u|8RvW9j`+n#<
      zs%{PkhO6#c&b!y9H>k86+c(C30#SyHSgBf?eXQ>HPYj)A;|!N(vn|W94Xtk(3~b22
      zkJ=QxZ4q`vxG6%DA?^=MuR`-{op}IvY4ttRHvRhy)!O{!^&UgC<-9VIAT${%T$B*O
      zWf^HKF+^(ho_KRbMgj{WTb7ZWWLITKlWaxCg-KSHA!C6d-7#(B>F7=0a1SR1<~ok9
      zSv}1)g`Q4EMPUreT+Yx}DsTTBRh|EP^`3+c)TlTabtnumT{MMZu~zTQIyLDZoleA>
      zFOd&7ghN#Z>A)Gey0K@9E~dhJuqC!K$Zgv;+?J(zp5Y}x{VdOGAVXq$hft<tBJ{)%
      zr#nc96d~LXM)E!w$@yR;-+@d<bdYp}o-{JFJ4@LZoPNM<W%CR<<qH;-OzyjMhP;wx
      z5J@3SieXX;lhseOlj9o26`}xdBgS`;<PVYMkFd=5u+AT&!JlA_*2r`worHB%f_>!D
      zl;Q(@MR0Xz6pd5lKjZpOYzP)og-{iQDu${kR4G&?p;klnAKwe&>k{8H<oN-r{18q4
      z91nOe;9Clu=uY{F2Af36iIMt0CB1`aP(|t+*h}R!u&nVhC`Z^37ccqIKjo(Wmb(?K
      QQn5{=xF?MMJeuHt0I6@`Gynhq
      
      literal 0
      HcmV?d00001
      
      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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
      b-m5b9rRTBVIKY~mj^$ev2iY;~A))>c#=mW&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizTW=C!5Qg6m5ZV<j*7KpZA|eOvN?Ur6+8dH46`~g!?w9SR-3FFsb}{y6d10D(
      z;Scc6KV+P5cGMdK+3-I5Ei?1Z4#SUM-@XHA;h=zwLG>h>x@X=e@3ZUE#d$Ju{qX!W
      zAh+wqNxLH23oZ)C8I)|CJMy9v_x<oJ@DqbPO{URtY+#NIvc2&u(U$0j=%(nFXj^n!
      zbVqbobk88y8@D*wg0n3+-GcKixPXOJAaNmaA#ovbA#tHJMqEf-NL)x<D0QLKg;Ezv
      zT_|-S>yl4S!??mmtNoc1>Tu|O7=_7!LAf?3wm#su=uVD<MHsv+;yG##vT%#2!@g6^
      z1}yc%D0nv=4+Hw>4M%~&a)07`qk%`EJ?q1qZO~wj<=-EW`+Pemwlll?f2HaJhx^~L
      zT{jGz50feR!C`1yb!1`I?V=bIkD@4`?#PSdATD6vU}fek4Ho|F8`jt%%X?bp&lTiZ
      zfr4^Dxu|rMSCvKOHRW~XlCq?{p<GtpRNhkFR^CzGRo+wHS3XcaR6bI!C?6|Vm21i;
      z%ChpQvZ8#ZtXh^zc3pT18NPV%Jf9|?w&V;rjpkRpXk23bi^Q~8^BjZhPi*jg(cZ(s
      pCTE}ouF%#BRjyzsoo_TRvHkz-41b@&uIL_KOC|o#qk}id{08Ymz3l)1
      
      literal 0
      HcmV?d00001
      
      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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
      F{|m)p1cCqn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OHdS76g>}t9(%@LiyAQCU!aLjL@_Fcs0fOTs0^ZDG&VDjnTDntyL;plBa2jJ
      znN1d{xXdPtY)Dl~l28>lsU($cHmORs*`>12CYAGgXwaCUvS4n%b3gCgd*8kM^!GR4
      z0yu^R4OIe%3T`PqVLh~F(>Z@`I`q;xd%7t7bay0rtz78&a~i4zwkor<W4VR&wXq4A
      z3pLaVG{gbYfy|YBJDf`o%7Pt){+vMVS=+V4E`bd#t-}J<-Ckbm*nngT8WI9qGPWxR
      zN>gLfAF{?ADPUy0oaGE#zOBwHV0Bou1A*pDeAl{UI|Y&j8TPqBXt_DYJkyd{qn-_Y
      z+bwjqR*cnm!SQmF<@7ssY{w1_buVOJ4w1r6>|#!gHziQl()#ix3DmO&mRlOL0~Kj^
      z3a_G(vE+l2<pg~N*Yjn!6_DeO|Kd2RVUIvlrL51d1a3kyf&BuBF~^%3w}YaFg93Xi
      zxiP=UO2+}^*v#(aWuT!|V0R^-i#=H#Ez0~gW;9u}=B>PjqwA3Ck8E@tQBKE5&bKGr
      zyd|9kj`K!K-Po}X%fS_M9Vb+TQvzBb{b}j)*_{#CQ;BJ|Y^39~a(k0(0~Xtt8s1um
      zZ8oye(WRU&2yA3mrya?<Byf>2_`!pQUV(j;ZXSwUqDu9sFny#P&Uod9^shsCsBEO;
      zigFtesL5GD*pa|>Mo^!}+D|1g$Qr7{5uP**2{cwB!WR{G=*X&QxA;QclH+I?5!heJ
      zV}KUr7q8<sl1aRcdm8Qv9IWK={FJ2d4(^j(Af53c8HCZe^X-la>{=VVJ~x!UYdJl>
      z@A>M6d<rs}AlI7WR<KY|TcKEC7Pvl)mnV#^@nukQc<15&H__zD<uJf2xly*oQ(Fpc
      zC!LjHrv{I3#5%$*TS1Yy4i`!F<EIcnWoYH||6*ERik+>aIv!$H!wmInfx11%;m))@
      zH%MU)^IU!<cgoA#<I$$$9UO+0C9uk7Wv8s31*(dqy}ewB=LvG@=~=Jj=VY%P?a>$Z
      z_ff?I`#|3OtKt6NfGV|udD_U+aY{j1V=h7ef*(~#@mHq=PNAB^w25D-vJp083s3df
      zif!cp;@2o3M6>w=YQ&=X6h^<un8qtl(eMd2FQaK>341f2;SbZ;7h?yA9U}INX&jER
      z7Gfr`?@XgD#*Pq66I(Qm*NHtr$~4+z<q0ZJQu&c-yb)ukiFFcNFpaY@)<x_bu}RZ7
      z9|!4<l|58mqH@4AF2~pvVi{s*Oyg?gu){R2#hy1}t1PW<(yGohh9fMwjN8OUGi~3a
      zq3vtj5qN@a%dkdx$O$ZA{8`%~%U3S(2kZ*a%MxEgEiNO8K9>3l|F`s0lYxn==)eFM
      z(=}?YV-PoRm%rm2Zx2J5$4$JCVSI>N_?WZ%DMs))M)4)?;2DSPM_T`kd-#nr`aAC9
      zPtMt2oXje6(ILeyjEh4kM(y3H+AW$nl{PtT5)GKZBpX~02UF!nGj3J%2u7FTGR^7!
      zsK*a(MQv4rom7I&Q-b|cf}K%<%}|2%SAvyRg2h#W)uZ?drM23ej93MHr6C_&i8XnM
      sM$F(KX3@qOYG?MR@h;Bc5v%tetMr)FSXh0k+?muqVlIMORq@CF0Khv_Q2+n{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T~8B16g@M$ux(jjK|utol@IL)vKWnt!H@v0vEegm)2MwQOPSEEbr*NHN)ui*
      zsPU1X;FGVKh$aSk^Ti*f-YFF@Hhq|xd*|MJ=FB-ie|<Xwa1+xSIK$YMQ!^{pb8E*e
      zdG+nUHB0t(S$JkTlN(=foj~ja8dL^DHknn+*)mr*DxwrH^kp8d&8?&}>Gj3TqxD?&
      zafX3q8M<lC4=g7rSk;<P=(QLF7f)y_Qkid3)ESg*e|(xDy3~fj3^m@f9Xpt1h{fA>
      zCJGGdg1afgVCdJOqdNix=XLa8fI*2T3bJxRM;H+qUDVNq2t)6Z?TD4y(+%O}t&OUn
      z=_R*hRSTA9%e;B1O2P~i?MVC;jA##Ri6G-NB(+^<QPk(_fuMOco+!>o==rNUMlr_F
      z6}YlA=XqA0ej6`lso{7&E&iWpQaexhwJI6FWhb*~RTv^Ux8{|^eOrDZMD|Td#~Adi
      z;|On|YWcqKHB2##v{9TvYr2kUVkym2F^mp$Ql?SH5u%+mq#aU0z%ZoRl&Q3O&`X^L
      zMQhZ{=^Rd`4$znUigQULb{ILpVDlXML{(1cK);;jK03IIFn@+V?qP)Pb;2S9Ttbvi
      z;4-c>(QnbDtc8=w&lvoI*hfl^!6a4i7iR#%CjjHE0ft%t?6w3T)0zyv6Xy<kbX7|o
      zl@CM9%B*rn{eYRt0d-Ghspyn3w7Z`_&5VDt(AjK1zo)Qh>gfINACss57?o1<m(cht
      z^zuDK`D>*38{Fk@k*2$4{;oms_A!l<KdxeeY>{?7z%^VaRl-OkP8KR8=o}IhsdSrc
      QD3-z`owA?d222=#08Z7#^#A|>
      
      literal 0
      HcmV?d00001
      
      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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
      W;@}X0G4l2N9Z2)Y+KAT;r2ZE%N)MO-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvT~8B16g^X0w$y^<Lli|2Mcw+a8=rZin;JJQ!B9d1J~Y$qPzQ$DW_OlQf0_^e
      z0DqM6?rfzEnC#~6{W|yDv-kI(pT7Wn!bb-shP{!_{7ZhrZ~Z8lj7{uEa{OH+e%MlR
      zbQM^~L7AbESNV$Tk$*I}6p?YTz_2!p1}fHq50qe73Bs>m+Q<D?_bBM}d*OMTVYNFe
      z?U_XC(LTdc5bM-%ZBDt$L=}%2wuq5eaPbN*-XN#qrSb<s*E{XA{^7w%`#3!4R<X>m
      z{jlLmOuTDuL?XFjC~JOAo$GG%e-s)+altcX?7lra<B{788J4Gsj+hkTn&pvyrwkka
      z&@v;HAJQyt;)GVJ((q|bCCVkaKe<qkD$7z!L&CTPEemwW$NSAwhFbeJ5@RDt9tW=&
      zcCC1+h_XbQi6814uH=xY-PJkRVc3~z94aM7T=fj;a92dXkq{E0=hv+yA{9i0)~3mI
      zp{@E>4~9keTPvi;riNlZRZWGuI1y>ldQPN!ah62lv$Qube?eZ(i_V3H&|5(Xn{ZI2
      z??pPs5^Chv=lmtq>ExcEf&BDVuxjnv)UM;H^*5&W8J=5z6E6tyB_S>l<`%Z8_ciqt
      du`<~_vWqvi`YrbEW!^oAyvGMZV{k3Y=3gl2$9(_*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9I&rSj{5XQeEQpA5KiWe`Qgo_PlZxBs3ns~r?&{HWR7V7S1w@X+b&4Ul%Lm6k+
      zjS`c#lXiad&Gh^Hdj9}0Kv$wBa6St&HP=hMQYOh`A1Pzw7fMtxbdgz%%F8&m5_N%g
      z0V=1%nYx?I$#{u|K<Dpu<f4%D#F0R2Qq+&_8>Ir>UjMeFGH;y<JSEyk$)!MZL3zc<
      zSG}Mc$^}k(Ps5-pSZl_3>uO~v_BIMri9La{QZyx#CD!LE2$$N~DU1Aa0+Pb=X9A~%
      zF0Y?a)|G?)1A|klz-CJB`JPfQu+i&3a^G>3C5EnT@w20U)?5@rGysNqZ?d@!_DZ6O
      i!n3U^wy@3F9nRJ{?s8@y?UFdC;vqVmWqm$tIQ|Crx@*Az
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_c-E!MR7(MH{ks_PKxN#a<18FEFvD=!K|F|iQO+($91aKOL<_5*yq)HSiBTJo_
      zONJNWiW@Fq253rVcmUpp7ic-VQf!BGV3@&UuUEUD&Ue0ZzTH2b{`Nb7YgjXo5}4WY
      zqRO`Y$lkBCgWg`~SK7|rLm5<-BiF6#se$xA#MSJsjN=4GZaAJ3-V``BJGUl~uKOKn
      zVw5wFXckT(lf`Ld1<uYkRnm%Uds~%O7&zWmwb4*7jW-=nE=Ri?GFY`YTq%%m`fb}?
      zvjayxCyVLuq0<$(*!*|?Re{rO*Y^lDF*`SucV%N+w!^9gZYW+Oqnu4<aTZeoxpou;
      z(hF;@-`;6CU-NCzV2Oe3Ms6rzZ5(Zo#^e!h6gqCD5z4?0{h(^#Wq~ugP`$Aj1a`0K
      zbVCb8Ojwx4jDZURFAlV5c%j^qK^Cv!qJZ(pb|bm6sWLQ%sV8CNUc{v=-oPwHw>uqy
      z!mzSQg>w%qlyKQVnfn7eb>DR<fa81JEUw@xi;lcqzvFCbr4>;cpWx{N)KWF!F<8jp
      zO<Xr{O<-&Qu0peT3+Dw)ClN#-WxJ#hdvIJ5x@7Lio>H2E3XjF_+B@=|?5S>9uN^Bt
      zsf#Y$-fzo2U4nrd0v9xauB3TR*sC-=3g~nQ(vLI1{>%*okD)9qV1o3b9S-X?4jW`)
      zNKYRMfudr-@5%0A(^^=<9RnX9!)^7tq1?@)fx7~uwsOAh@3ENDa}0VOu09PZhe8O4
      z=K2xM5ZnBbV*Vr#vhB!(t=X0C=BiZo@gzQ=Of5eO+H%QJ=V^R!w67{1co#5^cLHE?
      z#&f{Y;L`_4a|UEec{9h)V^}}&F@+a6TKor9vv3n*oMq!sj3dV<_B8Sd%rYZYZ2l19
      z%f~p=ESG*p;TIIjKXNrj8`A`8Bv9x3A8EwN_^kxdWTuz6M*(mS=M(I2672ay6p8&x
      zvz#*z@anI4{flxg*Pl)GXVXWs1I#@^MPR_;9192iGI5vO@9|_caS5NWxtE9d%=h_R
      z$J=;E^Le+=XP<nOl%*p+IdkEAjF*c^+HX^$n7j4evp>rx^G{NGpvC;F%y*yH&?;|;
      zHJy7pM(yXGNpfdUz<ZctR)P0vSPJvRP_|XIg-Zz^^AHQv=fgp@%4A@D2;EH3RU6#G
      zqTV-AOVI0dC2os|JXL#S%Ec>%bYbKGxBuQ2U(qaEL*I!*`_LH*8$)L(uOdz$ioB=`
      z%uwnn(pPIM_*4s$(G(Qj&;APqNeY|)JB82bPpraa{woDj=^xan&qS>0w$2)#hg4Fy
      JpqDD@{$DQNYsdfq
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      DX5QtG
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      FzW}Cj+${hA
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+fKqj5Is|{m5P9PziULoC9$BsX?#IVOo+xncrSGW#oCfm41SgmhQtRyz<<&>
      zOOW^=5!3A1%=XNgvorht`T7Q+h#d_IA=_}fM$3FOdxqsdwFA$v>~>T5M%B05jyS)l
      zq)MI}h+d!}Oh`zo;h1j2xT&{<6%dsBB4NKgPUnZhi6kFNI3lP))9$1SguSt;BMY3U
      zp4zS*oDtHQ3HaF>AzbqAL<EF*6cOk;LYRwU21!CFBMI@c?TYK}LtXe)v+f8&vg}!=
      zQ!{;A#>2y~G)l<-UG}?EZ1;8&m;X@A)^xtfs`MWv=oPQ)TjJ7|remWv9mwGjqF1gf
      z{E}mKI-;Xti?BOxIHOd8HXJhwTqwjZB+P3HDkGo`_i4E&60)Css_@5tm_N(W@gN5D
      zT>b^ITpx+&0cW03We)Ix1xCqd78bF@T406cp+cG!WMws%?_=fnY=!?TSR3FvHU>(>
      J`J32A@(cZTuX_Lh
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      L;DsgtaSr(}wAr&H
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!A=4(5QhK40=gn7y56|~CN>5=D29vC#JKT-S<hu@mg>?aWtXsz<%z_D58y)?
      zr@+DB#mh{m{pO#4`t|+s3E&)F1qFsyq%;01=3>D^lTXuxhiW>OhQCPh_9*kaMJT7K
      zN^}JdL(`IcCd16AH0KX`E@CzMjWLvOlvZh<q1b8%49;ybk}itat)hf7L)}+eK4p`k
      zG|yrfONNG@gdz@vQMTS(I_X%=7&`uc4fYtkmcKF>3mx%6YLt$8?Z6H{u)}NQX)=rK
      zz&{v+J4iAU%6nxkdE4us*$y;867+jOfljmz#R^qj%8YWUv&7E(>e;2}5(Zqr!6o+S
      vR9!=q_o=c1HHucCPo!nbozo@i+X`1iUau5R*3?FUcpRcZ8VpC&UBK}V+>2%(
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah|Yg5xe6g?X%i6H_l&-$Xgw5>u!@mXYGq7<+KBUlE$E$LdqgoN3ojQlJ80*uV~
      z104NJjyGw*I?P}`?C!mH@45G!?EUfk+jjs{m{p-L+^u^JbB`bL&!#Pp4np7DvxQmq
      z8dhwnNHO$BaWfEhLptG+xhDNXrzRvr`;6l`;VeU2zEEXIS$<7uxXz%LS3XWyAGX#u
      zR@>+BGx~mMxWO<$fm{<hw`{%5onz@}LzjVT=w`_0D{(=Wdv$X?l#W*~y}9fvR8?dc
      za#s@=o6?a+Zv@@PFq*GieZ5qu>KH&)#UN?(FYkHV7C~V7UMPLn71F>>++r|l{+e_S
      z9aq#vjbS?JzD2I{;Jh6=zE>)=a9Q2i6Lwf)=&CrLSZVC<2)V&`T)~j3_%?T|Tso1R
      zI8))S6A<bD(O~GTi_mfoc7<Hw`+{=P`J`|obX;>?ge4WD<c>+kzC|AFl3&LN#v{Sn
      zb=*fmMV?{&l5BR2Z8l3Ra69znk%1zH88j*#7mbh}8koQ&y%k=o&ATo`HW4T;X+=sV
      zvTSR3#GrC%fASkL%6)9$38v|JQ7%JY>$^yVD{M0`BG=Q@w3P;l+Ch!H=XTP|%ZSS>
      zhM`Mb_PK4+y@Ull-*sxh77O%GNyzf~Fib{L(GOqpJRvQY2Z0D^kf=WzDA39x(P&l4
      zTBb9jeXy9(dZA~G6Lg*-y;VFx&nfyhzfw%WZCX3y{8@Bh4g<;z?vT%D=Hf1f$jTyz
      z;RJV;vLf8<8Ai5FF!ru^ihIX+uvyHQ$C%nIexYC!ID-@&7oaI+bSsMlzH|Yu(NsLe
      ovl#sO1^8GD4Wv%-;xA4_3Cc#CtHkJ~c%8v(+I5PiX$LZY0G>$>?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F%W@l45Ixs2)>szEhy>$2oR<=01!=5=7zdlgV@Z~jj2_WAc0zb$Jf2d<HJ(Y0
      zMy|MuV#|VJ%YtIdf?|_Y<w1GDh8-I|fDgzAuwV!D9jk0zq}XQB_C4LF`*!#AZT<H5
      z_AdakxEsa*!$i|*%j^24{zx{wt%trVuN$UZblRHUvJ=@b1{p@VUAA?nDc4rlO~Vgk
      zh&%&r%QV`a<!{M#&)T$XvuUm=hHtqJ!;t^LY9*$KsqS~lEHURS$MUZ+oJsCaom^%Z
      z%(-jkFc@BsA`B^l5MogbW0WD3<b;@NIcBxJv1)ot`l@X*#8ubO?PcAwIPNG1d3p?|
      z_q{QZrSw8xo60$ooK*kYh*=5mFdXN-%Gs9b_=~#XyWUntsn)7@E4ABN7{?gS_0-=Y
      z4_R=D-~=YZI7#{M-IBBQRx65AIL#1lntoN^pmM}aG~ctF=4=FKkqF})!-<~Tx;|+X
      z=W&5bdf4_EW|F-X^=kT-on#p6ExWEN<*I}f!?9jtuAx-YmHZV6?=c+hwQG&KgiNQM
      zn(1wtUY~Z-JiVfwf{TPpoeTwarjz0OoeV|eUWU^Q<2*yrP8seLFvD=Nzga6O>Fo5B
      zgbx``^`|t-^+F||y)+|X?jRD6MDHS)u-;sj%EdxM!u%_vtdz<PwO*^K5*Da$irvg8
      zwxzc+{WH@_nuI*V2rqQElEp)LDiTTziG#0DvJ!4EoIeCJO;nZP!Xc<Z&#MfngSb20
      zPY3O<(-PsOc72h?{|Lc9&XO2nn#MDtxoyud7ik+ZL_4cA!yh%lvg4Ru@T^T*KCyyh
      z*lvs7Z^iT<xNDfAy%r*Q4QzCjuQyuN10=(UkamPlGlaP&lDhZ|(bNmP@g(59$#sE+
      zdtXJIaFl$w_AMNt|Mcka_D&S`S8xm1c<L#l@v->$a~yw;Gb;gnSA>%yyePtST<-SG
      zitw@suZZvi5ndJHtO!36;dK!z@!W3yg|2h4>s;<S-|RY9;<a7hTXBt_*<)(h0C-ck
      zk)glWFof%fVV;^fPmNSCfdyK*3rHY`H1hO|n#W}nFoz;BiexF_Cd#Oh+`<ifOz1O`
      z`%qz_f(;TERXifb7bIVzj<1OMHOV(<;9F?;j^ukR;RoEtk0d`~8Bei-pGmfH2ftF(
      z-*FFr;1j&Wr}&d@_y?b}5!`2ESlt@}Hr^S65JlmYEmH(O8Y~zQ5c3Y<L8>VBFQV)g
      AumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqVQ&&a5Qg8S$l-amg0;4`R<NiC+FqKN7=tkqOdAbilT(Zzk7GlZ9D8POkBGlY
      zKef@sA7Jz^8Ry_=TC4D3mzlZunc127@%!s{0K3>RkYU*9%h(xsBk!Z*tMLaNIs>0O
      z`!aUDC@_#^SV^Kz#Qj(aJ$4RMI1)Xs7;;a96#6N{f?e$}WSe1+=W&rCzu$hl?Ka$2
      z?iqe2zh8M=W+;%ml(<VXhKU6%S-5~J47S~xBnmv)cU-N6?AM>4cU3zEiVU0c%C791
      zC}24OUt=iSt$82Us~r>9v1VYEuxH=e@O>Ud%}{C;1_4(VZeX3k>V*eNj6}fuyvOh`
      zt^8DrX2FK9MJVglQ}1})9dKXQ8J1c?@^(Dza`ndR2ArYT3Vko=cuFL8>dfjx5m9CH
      zAHlHR=Q^2LGZ0+rSKL4Jq=<%XZ^%hru+ti1Eds~ox^7|%cMMb*w$8ODB91c!?RmZq
      z)!4#alxeb*Bqh%Bxm=C7I-Ac#HDTBO%bto-HiPMgvGVyIb(FfBF5gZv3o>6w$yGD(
      zqKHSdwzO`vzMzxQd~<XfWWA*SjPBK1F~1D6XdPkk8w&4hN4R>7m3Ln#mca&{ixd4L
      zT*6}-JI77(SyL@Gaf_@qlu%B&l}QB19^>}s6GoC12q)UiL~-w53j1%xrxQg6_b0Rm
      N*rwYgUV(0)_y_wb<z@f?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRmrj5~RwI@%4hpK2$C>|<8tdvMo5h}fJ*QIVrH?rA?{VY#{2S31%
      z5+_yk;-!~)Z+73zyqS;Bw|4+1Xu2pdv?n?bru>ON2g1xBZ5m943~n#`SH07r6h_*<
      zocFk}shRIZ11=)cCN3O?!zD@?D(6Zod%;j{?T;9oZh9}Ps4;laAnYDR;V6tfl(Fh#
      z1wKQw6&JRGgzHH#v_|Pkrzot)O3RykHkRg&j}ytzh*QCn5jU#He;ytCpfZNDcnOn#
      z`*q0HFwKpSJynd@`Trotg+m7aT5D;#3C}V~Gi$$R!Y*iEx;6+I?Ny=ZQr1R^7~mc>
      os;}@~h?cNM(IW&b33IFy^S@=NV`HJ&T*L;p2tE2M+Ha%w1uDyO#{d8T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r3%ULam}GCr>6GP@|0)P8bs{AsC7=!Ej&JO<hvAX4@J$=zsEL;=v!_
      zk21a@-n?*m^WN_Jn3=Edk52$6XgIJKP9vTBQ~t!CePL#gS>jKH^lvT)-Ck=Xg^}4n
      z&U##AiJ9&7hg=N1EeAHk;Sz%k<uj#KcFs_0?vEMlAi0wjR2eG$;YDynOI?((>R|;Q
      zL!%iMl>C_M$RA}!>8MkT)k3A^b^b7s=9W)l$xsgy!Q(MEs;C!_c6P5)hIY6F#XoHw
      z26vR?M#!Ej4($AI#c{!p!MoC0njq$BD(RxLFbKOKrQ|XQ8EGn0bf{{>q6}~j>Xmo6
      mZ<JbCqv#R>FVy&ob;`WoHq@{&@7bKkI<^R1`YYCNqxu6fOKz<I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g>k-ORb_+R<2B3phg=XtS}~8LNK((q=x-4PH;$_nxQrF1NuF#OkDT@
      zew6VRap#83J@?Ms$2sTg`{NV95gHas3@0O<`(ysZpM7Dbk6G%Eh4gPO`<?D_EQOI-
      zUrxJRWT~0%^dc^z&Z&h8!~Oz;4AnEGRd&u$Zte~kDnWWDZPXa-UUU&0&{79wEW22O
      z%g|_s1tmY>dgRBMQF_!a#_FNc@;ZMQN^{GHiDdA?RPbcLjVkK-V<o#+6NXl}0L4FT
      zZ3ZV!b0cI|6$iHdx8kti$KYORElrT{$wbmcYi<y>K}yMG5HiwKrD##rLWwfK+Vkvp
      nIB%4eutL!x1YW4|6|0oFzip^vZPv3siyk%z9r`QQZ=&`CJxy-M
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g>l#Lam}zR<2B3phg=tU13bLgkWfm35NYJPH;$>nxQrF75Xc#OkDT@
      zew6VRap#83J@?Ms$2sTg`{NV92^uy^3}+*q`(ysZpM7Cwk6G%Eh4gQ)dhO0>UkW3$
      zo}6{K$Wk-g>&9Hf?ZAe`aJa-EL*-m)m0d8DoBIO>D@^ZY6*Y!xH@*yyXsLrTR$Z*X
      zWoR^`f|8$bJ@WgRQF_!W#_EyM@+O}QrMct7L^60$DtI#BMiuqq(aIjwlp%<gp!lb)
      z#o+YQ+z8oG#etpwtvD|DF}T-SOA{u1I+b+MUKoU3kWz9Pgp4#*DB4s7C{YI32VV6Z
      n&KspAtWk6bffs6g#X4o~ZyV~^nD=bXqlYa*hyIH7+o=5jM0IZ6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AT}uK%6g{Kn>b7cGKJ^szU_~toL9r2(CW>o_hVSDv=*TuJ;~M!->Sy#6^w1CJ
      zM@4t77oitl?zwm7ew=f@zCS(zR8X>zV7M6RxjW%c{Mi*|F^xiZBBa~BY1bRoz7$4A
      zZMkT05rt-P(Cl#0Q&ZWgSE}b0QVhpyj5DM!l~&OeL$Z80U`W-%2bn>ZA>Zs=*G_t^
      z?(K55jU+Z5Y`|eCmHn8W8*n{x`;k$4<i*1UUuk(ae;i74&xe6zDEgt`!GIeT*ME<x
      zXsl)op1%gsRh=G#-4EwR$cBo~?EP=fY0Q$rX=yD@E#R}6q`SEl%dij9PVR${k-juV
      yi>fmuC<CmcV&)z88>I>4DB6U;3pKtXPnq-Eh61*hJ=@Dz#15fNfARWVWPbqbuy%g{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AT}uK%6g{Kn>b7cGKJ^szU`1^P1z`lGiQ*cf;rloZ>&P}M;~M#M>L2tJ^w1CJ
      zM@4t77oitl?zwm7ew=f@zCS(zR8X>zV7T!0%pLP5{_F}fpG2WM7SiqBwCj!2z7$4A
      zZ8>jn5rt;H*X(f7Qxn;#SI$o?q!<oY7-vXdDy^a`hGcnvz>uni4>E%+L%!L$t{wGS
      z-P^@#8%eA?ScAh*Dtj?KH{jZL`;k%Fug1d#Pic8KdmKu0&xe6zD0-pb!GIeT*ME<x
      zXr!hLRc{5N%Q~wJc0ZgMAsZ?_v-7_>$1zI=r=_(twSZ5jlJ4e~EW<8HJGl=+M*7ke
      yEvn9tpbW4MikWxVZ<HpGqi7QXFVy&oJY~*r8w%K1^lUC-5nF^d{l)9Ik^KSR7IuLE
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g>k-p;pl<D_15iP@@e--C#_xhF~bhq=x-4PH;$_nxQrFOS*Dp;=&K`
      zql|a(v2w%ao_lBR<DB#H`SuQ=iMoRV!{JEh!I(er$3U3reU=7eA%m;4-g)OBmcq!a
      zC#M}QveZnsx_vI<ZoBEA#IQTZBt!W`X_cKa6dT(EhEkZ`$O@_q)o#BX?%Ay_idgip
      z0FR;Gh%Bif;d&IrnNfPwvU9aaX?dC74W+r}!$dOpQ7U*c;6~Z{=dqOCstLn!GzZ5&
      zbu9)rPIDt<N7)M-|GTko2{L#WT1yiqd@_-AvhwQ@HbG*^X%I3}Ri@}rb%X+CfV1OQ
      oUg5q_TEG%Tmk@ZO#%C;3=6$!JhLu^*>MZ(LBXsG{u3ty>3u&NmGXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AT}uK%6g{Kn>bhlZ`P5U;gB7(TD1i~!h8V69Z1_G-gN<ynF|N`6tSAV2=m+$p
      zqPrT@LodGEbMMUkIOlwRy?+2WM$JNwp*7YsZ^9q>lP662ki_0ZNbmZ*f6;A(QW%-^
      zW!mK;iA}oO8*mZ!I*n$_LV@96iCKo?snRMrW60O{h71KizLh1E87jR&$3I-`wUI}~
      z!3rFPT0O{!c@fuRFHDTm<90S#4V0Ewv-^=WH+&RH1~-TWkA~c+tp0f{BzJ1ca1t!R
      z@{htcgB`{*BV<=)H@5%x<S3)a;9P1gjUVypRMJuV*D36PB$MMHWTdP}(W0t}9A$vD
      q@0Q+RKU12+Dn*+Rc%jButWoAH+EB&%yk}z`U2GEC^p~yQLirmiG;#d^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%SyvQ6g|_%rcI;OYFDlV7gf>VlR`zPl~QRcLZtiYIMgX|B9lbyXSotY{Qy5o
      zylDkpxasDeduQ(Bob&nh`T<}cH5)mGlaWrnF@NMwo-mV#B=W{Wde`T@i_SqHg^@{5
      zPC8s9k(q3E`&<Ow)?wqwhQ+Wm$1FqPRB4r*G34u80|u)d-O3_L4CQXW)!v=$b&yBd
      z#R6Q0THVixc_G&$FG!5iqh>Z)@s*ZW>HSce8$JvrL)DK24+q?+tp0hlk~<YMH2gVO
      z{!!RuaDpf`LUvSkWBq?m_A-hL?xoh!v_l@pl8!pRPGJKinH&cpBV`4OHdV*SQ3lxC
      q)#3}BXG(Ker05U=Z`AmXCCc1c8!A|y_N+`}6{~~}{blRdQ2GWnZgLj@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A&r1S97=5GW>bhlFo;n2`tf)o72#mlC*>H_u!}~Z5HnPpexEt-C)hX!Etq%QB
      z(YG4Zp^KOAec#OY<GuI!_4)>&iMoXx!|_BX?vy|BCs&yCA&%UsknZ*Q;G*9Oq%blb
      z$h6Nz9GP_28*&kN-FCBOp}=sk#4JPcRB08TG2|P2BZfjRx|JoA87khe+dEwBwUI}~
      z!3rFPdc)6%xgpmRH;9eWlTJ2S^_7-a$^BTG8$J#tL(Pu_4@cantp0f{#CK}OaN;k)
      z@{hs}gB?VP5wfqc8{7YTa+FbIa4xl$rWf+rOwv*N*D36PB$MMHWTdP}(W0u29A$vD
      qUn{-9ex@{sRf;wt@J@{%Sfk8Yw4sXidC$f?*04!v(_glJ3*~PeJaP>H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!A`<J5Pb_sX|19tCr>6GP@|0|!~@1es|cYOBZT|1ZpxCnHA`#cvpku2@B=*P
      z9~q};^x}of%$waeGw;pY=gTXA15_>K80w);y)l2_kDf5o`y}?pLVDL{o%7~lPYNTG
      zj+{2RNMbYHYIV8jt56yX1%}-@S{aJRN~`3AAz#}bFckdwR+eBhIIZrfzt?YHUfejy
      zW6{L|T!v~b$YgmD*P+)-jM8BvYb*y!%d7NmC{3RaBgs$+V!@*UH!7=t9t+7xO&E@X
      zIYj>XYmls7oEjmUDqFGf|3UUMg$!<6Yiaz5PbQLf+P`PQCde;c8<ZLODpItlsv}1T
      suy!h?XE;v;b6BG2PzK(K_<?0Y?l%o(tjsv8vsl3zWrzN<@$0a^0EY>4w*UYD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-n*S6g{Kn)7MkWa@8tmVMRR(T7(glA&SqG3|)`Ypd+st8K03qt5wjVAJ8AD
      zUlZMDZG<*%?zwm7ew=eYzTe&foS@_&!Eip*Gk?sV__HtUd=eRdETrGLZr;>RyHZ#g
      zHRZg<MP%%JuioOKKT<ZF7!x{3F&wTi&XB%PT1A%($?|@WAyqXGGJ`BbzTUd39`);u
      zyP(r<2QHFW_pk<!p;QiHdVa|D(C<c8>0u=vE(A);+u7ql+Iv0-B||YVf`>hBRb2l)
      zrlOIWGE{;Uh%W1_Ft}YavqIKXd}il=bB<${3|>QPX{#ZhP9@#VEm?+Lkalt(gpBm1
      zDLPc0Awe17927IJa9=1*AV<+91U{+p3wg@C-!>GmvFO=c#3Hr`UHXgHZzKByPD*-h
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah_!AiqG6r4?Clcv$eX#XJ<?NU)tDuRfD7`#O4c@vj(YfQp6QTth*1P^|IA0@t^
      zAnKu)H*em)eay`J$Lkw_5&9MkhV3-3`Aj^BC!Xj<SrvSiNS>&2Dm6bji$=Q#mvV8V
      zMH!XKg2^yg^5bWnp?#!sRUI?5g29BrJS}dejSfTS?r}%RIbFBWrDvJM4q8}sv4S;*
      zAP5^xJQI1!qe`nh9bfz(H8*>q%H>skA4`2L;!HC5VUdVzBD8Aw_t31SYR)hWm#F{c
      zcg)~KMXeKguA0mJzkv)Jm6RnppiDu?$UvK_MeGnJbwGE^w>{5yUf@0xHPEB#5CVII
      T`|zl9zgDphpBTdiRRf!!L(pi!
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!AiqG6r4?Clcv$uXu(fNMZ2`<p;QDB1u=Mu)bl1T>DHKpZKC$GJP98B06$86
      zK|$0*FK^zwefyZ1_m9^%07LXF7z}$!R`I!b5KlbT%c9KrJeE9G#Y}2`auyE9qf5EG
      z(V_?oWx-_VulVt^&d@wknJSMN8h(GuV4mi;(ngD+b@#Y0<btl-Xw$QdBL@wvyI8{p
      zgYO5mCZ38c;bEy&mP{`GkLsJ9KxOi(x{sv37Evl0ydaN7Iu%;g{CjAYGqqqC1S{14
      z@;hO0!o1S4JXiJQ-rqn5wMxp898jhpWMrU8)gm^ANgdGM_3ZAB=e)puCTgHV)gc59
      V2oKSv&iz`&COl#cTT~5fe*#H8Xw3is
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!AiqG6r4?Clcv$uXzw0V(JmG%NJS7)5QCRUJ#XTYZjDLUCTc&+li<M*@T0^R
      z6huAr^5)Ikw~v{5|9E`^u!o)ngJCDhDn1hr;)%z4QIt8K#gfOWm`cr0&cfm7;8HGb
      zv?#(tSuh#;OMd*UGc=D>rpjZ6hToqsn5X%zw9#T{-97FKIj8G3+Vm{r$Uy_EE>^I{
      z;QK+XiKik<cvxzcCF6_#qxxniP?@}{?jxzMMU+YgFUVt&PJ~u9{~ns<RLvO%!4mbq
      z{Eiu%Ft2nh&sBZ7_cxG1t&*}N2b3uY85w9&wTK<Uqz-6rdv<rrb6(&+6E)DG>JS3^
      Ugd=pRbH7%x4v!ea22}%_pH7Bo*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-~d-5Pc0Jvkc&leE9(fj=K<@s0R)p$p$3ZIBLwudZn4|%rwsSbebM@`AuFt
      znQ-6-@S_OT!^ViK8~f7rs$RWURae&+mjIq)&Bqi&J5yD3%D?b$QEG<TmeFY{qEzZ!
      zn5gqQc_W6O4A+U4K0Jo)N%Rp{OO<tstTfW*gHE4oD-6TTu2j<QF|=B-^NR|uvM8~J
      z*gM_vRJ+IE?U#KKU>dXYxQBqI{af!pnwzmy;$1a35#}R5DFnk}T&BF}aU&fbB|V$V
      zGls2r(q?xKu|tC?KBxu9Hev8Ti(w+qsm!_z3ul$qrLm&_mUdxS&V+qmSzTGjIV_F4
      zE(x}}ZDP+!MU_~n%;wau7*_w}AE~c(N05}2NyVY8H@h?7GdGpD0Y;Z|ZyFw*Z-%f>
      zs7J9!f3Ud~hU-s%qVa>!6y{uxe&7XW@e=bCZQe4mfcu18y@`-?T=W2oH9No(<($Vd
      zRz@Bl2s`iQTIe5#jp9|<Soe<e@09x8Xdew6)J7Y(^j}6ztdcyVx{rsok%vc<<@;mu
      QN7UZ?PkDyN^>9ya0P=FGT>t<8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#j;`w3H&X$faCLxoBIUEFhv%ZGtFTX^dJdQ4^Exc2XAF-DY=7sQ<zj
      z6Q6wanHNYj@$%w>KgxJ!+f;f<HJi-roH>{8eBasq_51Tz0INv2(ZeuX&??fQd@P?x
      zicu|Fx^$>;Nm0uO+>o{&WHM#d4JSjao8PwWzLl5D7B?7r@2Hw;B^eyiSeC)Lt>?K1
      zeRP(&>4gLRKDgjx7>TAuX{jh{1u0`0s#Zv(M95%T)%cT2DaVaHIalNifwZp3#jI?o
      z;#@a6tpn9$m``^DS8F1{;N@C@(xwO-!<%TTR@>xC#ZaxPw9BiB7L!@#inLWM=;Uxv
      zdMX=oiBpFeGPk;BL>m5F*7ABOAzJW0I8k`nQgzLAW0+ya?zB-Yr5(#fHBUtwer}91
      ztaNm1$8aGk$gtLt02}_jqOKg(1Zrx)i!n_2Fo`J!Ux8b;Uq*dPT$5}m52hKWiMw!4
      zBnX>y6E0OuE1cuu)s1kjY6&ezFe9{_Wf<<DWh^Vyp7-H00yGwSxkQt|z*1D>h*ueg
      zS_l^!kYiaeO~Nj=TzAuh!VH^zhRK$&CT$q9|08`n<K{mk_d>#|8!K&6cSz;K8m=?=
      ziT5T^7?Kxh+%C$dnTWNt(~Si$=yPymqivAvp!(1?m23<W!(2<D4!}trr$|NfozW|X
      z!go~hb@tajvSl&6^lKq`=@$c984X7-t!_Hqw9i1_LcrtqpTm1f#vTmN>ZKjH3lEaG
      zL~lL{Ax8|tPrFmh4|xpHdoS%*XzWD7ca+>kdnEn?V;>NVf5+Gv#{K?}82Eybmx0hZ
      z!rvAqmf}I@Ip+SB3)$iKY2Bfu4>5{I2+}@<$GC=F8^U@mbsYi~!Bx5wup;zCZNL%4
      zuweHZ!6KFjsDK*p0QJ4i0}x`HuJ}(3#sh?OdDHa?&V2$HbOoJfSU;uw4yqWy4ay;i
      z8K;JUXJp+Yv@hsppAf$yq_1t1N&7z3KpASF3^h=O2&Lejs@G9EFo9cy+(q?nlf4I<
      Fe*i^Xh@k)g
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDOTh@T*~9$W-_stBdvDR_zWzS%D6mbeMqMD(*f2_F0aKT4d`
      z(qk`g-rIRIyq%xluWtaiI1k_vE_2(6wS1LtLb>;<F2!1Dp-i>XPRwkRnN3=m06t-S
      z$U5In%$BmMwIg)zjWzWHp)(pU2>!fW>K=}{A-6k2bZ`>k2od38l(YdvA#E<w+8LWq
      z+o3^XtbS@<GVPvaR%k+;lu8y0=}fD4kAA%}8^Tp`DBk`jQ$m=QjZ^y3v@84j&P^MF
      z@4}h+KHy56uge&)n!sZQ1lMuz6X6F_52uVFSKy9~6ZDxy|27OTWJNe*^br36DYjaE
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-F;2rk5S(>PY>Xknh&PZ>a6%$g5E4Y9vS^IbpPj?L$oQ;_4dGc-NEAGPM<Ldb
      zB2}8%nY-E5?0)}zegU||i3f*pmRGG<$``p7nSHApBbJ#GnXU_E#a(G$pY*CoYVE-#
      zjCYx5e?7MgSvSfO`q#SB%?+V98qW#t%q*0TeS)8ErUvNYAjBR*!s#gPLWojUxkwtT
      zt9;tE4PsrXhxR#D_EDy#B1EytWI2~scY5>aHiceszIa!_t!<`+ATh1Y)V=P84!8a;
      zx*&WXPR@4%SK^F)Mvv754l}?zkNgh=?@S#WG6r0MD>hDW#4P-`VSphk!ZD+R=ogsK
      BUG@L~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%TO^vD5h#w$`v>sdpbE*hZ@D#j6df#rBbW2Rab}RZ>o&*nmfFC8!
      zYQ6UI=Dp?3%$xoC{`drNh2sbT;jFATVkMvDi%|Bpb&XglEtF}O+KQ=MyR2wUgpe@a
      z>HKZDTgcXFOX%I0+PGUnXEdG>!fCV6ee4ms%8!iE!G3}+62i$S_v=L^>rxcXn!23$
      zo?&ik{jhnOYx^kYl_sQlqhvLc)_A>r4BgVK3FrCFblW>7gt%xnR_S}=Cl3A(yz~)p
      y3J%PF1FjquJ;sPthJYCmU8MbY#BWRk3>agsz%?5)9574%Y#8E@72$|6K>7n$%2(n5
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ-F;2rk5S(>P92`Tyhz}r&gn|<ise+JDfXbpVN`E<@oQsTYUCxL+iwcQ?2k<Dw
      z8dIm4omtK8&h7Wl=NEu0oCNR)XL;F(wS1LtLfLKYDzR2tC{wSr755KmTAKhqVY16N
      z|Fhp^vUb`M`ZuOD?v~ISPZk7!US)cKeb$-Ygy>-yVGj}Ebey!SMIp;vq|TZ$pS3SW
      zi7E9{^Rm?TSuP7rh?7dmVj-<*^?%cME3+Y-C%dwBf0z-%v}&x<kEWeB?An*@dcFlm
      w<C}mhak4&Rz-kJQ84z5=gAau7Og$VhhFpPbHcoNKEb43+;fNLCn9)Q03q3?sng9R*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtZ3w&EwdH)|<(v{_#q_q+!iW5h9w6SHyPV;C}xeK-9q!mr<P^UI&hKnrS*lJ`+
      z)gy^vv~=AQN`XB(T2@|#hCzY8Vkej;Wk3s*u?Ksw2V-Mv*Fnb~Y%6<}{l9asuVhO}
      z)6Ku1bg$0&&UgOb`#Z;9fA#a{09>VF1{xHunaGxVZciLfoa{*!rt_s-&+SR8Cz;Mq
      zT7{mQtm)B0BA-uZC;BoIxk9=$In|d+<V#k;fJdQq!NNUy(QrPk(3r_hD6HNu^F8HK
      zI@7~}39{+g&!<)BRR|0Y-FC2VU?4ttgF=f<nMsghxKtn^DVFTXWs9XmwltE+lr2A+
      z6`HcSd?J<Nyh8J_6D}x)=>8f(j-5#K#OsMb-X<seGr8ok;q==q1r;YC4w2d(SW+zK
      z^SMIFN*&0hNZ`xmr}Rrh`nW>Fk$wgLb;(RRn=b99xE-A%3Z6Zr2q1(u1FIF5Y2md<
      zdoqb)(Zm|8RWK&3(qLkWJePNL)`}g#I;=MkR#<f*<(b%kjnoAh+1ga-?x^MDFt4Zm
      zCMaBC!V4c^?oVf}!Sd9&RXCIw&k$G3{#-JV8A%k<^4l5oUFXQ!S!b(wyw3I`0W_k^
      zL<d@Bzbz(Ouq=QcTxDRZ!q&R>s%Nf!iDW5Pm^QHu+i7-+9oK%5B-ZQepy_-)t{~8M
      znlQ0M-mWpR6wBo8S`(MqZ@nfiho9yxO{R;SsO5fX5ks%@WVPX&#w(s@9GiE!fR$y0
      zSQ2mwD;>FtR<g{no0d@Q?G(2Q>^+&Z@})Fm!@ypJ_1aBbx_I_@B9l&$+@&+X2)k0q
      z+!&8%GS);Q<3@l>+l)AFGVn%)%NOz`LlgUPfB<NKz1bvvJw=H+2&x%Fc$0yH3X!@-
      zts8_UZpJVfoY3<6JC5|n<66K*YD6Judz34e$S*N(O&>@w{iG8a24%r2mNO+rv#q*Y
      zvNp2_nbkUE+zE&UEDaoSbkpOG59Wr;$w@c2ROx02Z!s|@uzh8{mmhCcSX#Y%M`r*7
      z7#FusDy*pIo(zluSSF5wS*%IIYEPnEq%%jWsSiySawjAJd#kfVWz+!k?79V3E#|Fc
      z&#;v&SS6}!n7;y;#4*7_ZLO@UmCg|ZS!RQU*4CWfymRZdj-g$4Q^*UuI~2TR*GW-|
      zC>x*+>~!TSkt?d=mO1kxDXPw*USWLF#5CT<6g6RGtpd${u#i5^hr+JK;h_OLDCZUC
      zvUQemTC@Eb6Ys#Cw42MeJf2C@TGzZju6mU)HSkV_4O)Xb-8<3MSC}YIS=o~7Kn8x6
      zW~k8Fm9D>>&ZMk@A3w*6>4a~1vv_jek~lszowqi}!U5ckaryd16TgICrV9!|mNB@d
      zW8Sr^>Zik%0^f~yo48j>kH3_&w+!Gej2n2bLRZ~@<*s%tN#(DC|9(bz9Y?9;9Pv4q
      zo~fcD1tYrh!;LK(p)x9h667&!x_`Q4G1aP*EE~1yR_c0vgv=0%xntv^+)=^jVk4!_
      zyu_=pc@g~uyq{|V1n0Q5+upctMoi8eDWmmxR)8!}6v;PL<*N(156N2WRC9w>a#OeN
      zKG?oAyHoKIDPSKr5ybKU9>FOC%T0U|zr~<UW^!37d131@G=964ERlWC<uOz)<;x|z
      z7xK`*;sLV!jET?U(_GC8P$AftD~!@vh2Sw0j|)NTVglQn3_R(ite)yP87?uVUCRXU
      z1iC0rI!gfi38*w#4eVf|z#7U5K>xU6zJYR0;5t@?jL~^kVOx!#OVQSb)|#|?S9g_|
      zCxA1UlVtY=`ifniM*KL(q+V}DF@R_A+XlW^Q<3Xnl2+zRm3&hbwl%q{&T7W=Gx&;$
      zXYm~Cr__&1c6BwOMXOybg7r$y{~9~63y1OoMYyKnZo*b!M{Q8PraI|fi{r8uUXfHz
      z9~9SeZSQbeOII*PS?{9Q8kQ!>x;c?e<)$c{c;fGw_<j5V-6%O}C65i|?JizCSx^6=
      zi9Z6Hsi2<j%cdAnH(AGY-jU^hV&dEQQyxJ?yDm(IX-E7>|9o@dLRz%HG$tAgQ}e};
      z>Re~<sW5UWg1Sgt`xIY87Y4ptV`wJ})iQGpEe`hACccNiQMin;>~1ISqp-WWPtj+a
      z8n?Ze`-y^IF!4KhQDN*-#J(7_iz!$RWxl*53?_@NMU)p~Dxv><6F-o4*Gu{1448j#
      z0^9AOHG}x^1-c2~WqhCMB7NK`VN2|cI&7810|WRM{HuW<QLBr)02BX)f9JS$M>&xx
      z#wW75g0&|hU18lG@>T;sX5p%Exh3nKScme`Eb)Ng+S8B!q##4t%(QMJ{#!bT|6y&d
      zwxe_Gu5LCL^e4T3{Dc7!P8Y-OP651vab^YkXndI~>p}aBZYU3fUNE{!vwLf2zJgEj
      zAljz!4d$H51shSN?zw-y+0Um~HUt5yg;!UL`KmE=^k~syQVi&<&4Wc}+)zsw+i!T1
      z=llNh(W6$u1wwzx>B`45h5a(m%Q56YZeKc^$QUZ95MCfze<D>Y)(VC8D$9g(^QK8;
      z!lJZT*soTyg5TUX%9EE0nQFB(YI3w^S)EFh{Avw1(wZSnnC(aSsGeA$9=~d5ZgS#U
      z6LG0NB!!E--{=nSJ;}i3Wd^qkQ%m9Ta*2G(*%W`V57M_FhT1rP>eF`yHztac2UyqD
      z26Xw=m25s(L%Z!uqHgwJ-CWnKI#k3^opcQCih3aznW{@gDHlt4rCHZy&gnJmV5}ag
      zc07m3ueyn7(XQ#^e#Ps9;G*GtAv?iysM^N5sJ0WV<J<FySQm(gkojGZt~rn>@uG=}
      zkWO=%jmIVC^l+|RNLu^Saw8IE(UBgf-bGlq2<{0pr#13g&5zY`t-`m}F!+nM<a+}G
      z@W>ql-#v1}pr5>7&`;hj=qIm7_=L1={BGsw3V!p%z+YSWls~gY&0y6Tv_FYWkMnl}
      zuH<)sPw)`l%oF-%Ju3Tjpwn4>FXz1+-w>HaB+_si(MZ=Bbf3nK$ePo*I<odOc11#-
      z(}-1gwi7=vMLtI;LymVKd7`-kZ75(p4`;H^4x1~k!%y)S`D3@1S>E12X#~{<T+cVr
      z%?7zgAwLiL(9gL&9P{xxfPGrV2|Wj_>^h4Z6%It6!j5QT^xRntdN8=<F_PQjF4gSr
      zBEWZ2MR#i`5iaIZ7s^T;!Yvfv;5E(&71}_`28{Bpk(6)7Vg9NBxK#i&G*g@axjZjB
      zcQtl#=b!c<<~fD7n0F2Xhg)u&MIz=4`9j_qq((!&^J_mv`Yb<U9ucy``Gn>$c{t>W
      z&f@l%_Y_XfVTwOzk&F4FXHbY4YrP-AvXBw-&ESMkjM(pQm-jcu{FUvRLQNsR-mdBV
      z9PT<ihr18A+%t=xUps?en8CYd@tzBjhrEwbOi=$VxDP4ZNoBo{BjPjTSjF#;apvPx
      z$|JmXJVix*5)piw7Wpg=;&T{gFFuARxpD?+%%Y65<S>VO@HF|I!~Hmq2k<4X{xUwp
      z=M(q}XP)KvbNDL0rVTU09jH>*Fwf&xxSy!&dHgE<LGV3~U(-G!e)8*_^$^8Joww!m
      zy8H1PG|f8t_XoJ2kJuV%%3C;AaNq89-@fX;jiDD0;)7g~!cP1q9-=$kqxpS^JKyK<
      zYa(vh<HH<#+8y)YBg9}wUk{&x*h|N_`cb~vD)i~WZ)!13o4^s%L&YB8h=lI-e9Gch
      zE`Inq80r+3$m<L~@eCfRc(u*#TUFdzU2dPEQEYB`?ky_YN)}OZKK^auM|@8rK#bZR
      zX`8{LkIMJw9-YGzhiCEBd5+ttTQuFbc^m!b49V}%W528SY_<8ihT4kLGzzObjX&$`
      z{t#6zJ9W+B%wZ9NpR4)VHH**hR|i_2K7;cIqFpoi@+tU7Pr)-96%TA>#@K{g^|OPX
      zVFQWiV0(dDf04QI?--~r(DpBp>IVe(GFSYN;C{p`_G1k&Y;WxVTu$YFou0$fCPRA^
      z-yl~Ho62wUxrY!voEgvtC=s+|zt%|GEPgk_ko;E66KM;1)RtNNaV6u~ig}f^KY>Y$
      ztx)W+xX#XU^Tv?OESXxHR3{lRM=Sn}>TIMO0sMvbV8QYo2a9C6zjV;tPySLL+EvWE
      z<ykD-(sE`7e<e}x8I80>L*9^Q27miF`8Vpgo!8cCS)~j#ssMec87*oFf-1;%VYx=R
      z+ve(;uiZu2?xJj`mcOC3*sk$<_})e>zC=ud_r*GRpW~cVg1##4c@;f3=G*c`oOyr}
      zJOhgG_c7lo1UdBb128%C@(g|$^HI%Srb{NiDn(x@MUkD3SG7^mYbeTEgj74OQ0ov?
      zVeC{a8fv2!>qdKXSFAo)tUgz)K8p2{7OT$@%VfBV8N8(K!9ViNM*;r{Nk>3&4xRH^
      z)Vv%6E8<g#(Q*IzL2R7ED|VLs4`x{zpTU2%yvi@hwhHGfF4M}@P@DO$sSd1Do!HE0
      zmx^fQc05I0<WahlGz1>iP>n-1YA1aY@e7U>Edd+FQb7?^-h~_L(x<keNo~h+wWDgI
      z74AkWl-+rFl%E;gP8$cwT+##U$}5LwRZ}G$=(MADX-;+#^}C$>^ffzI`{{9ZJ@@Oh
      zz#^*r%B-l9-YCf~#S!uD3+?j;y^rmym$naisbxf=(JSeh=&R~-N>(Z0`&5hG{k5dr
      z`+tz~a#u<}O~jopQBu1T`+rL+H*Ss%Z*W{BC`q?XzTWCdP0BN~s3xh~w4k;J23>Oo
      z-Hgs#y4TONa8afWa^d1I%{oD~t<A1bQk3Qklz7R?$LAZFpjyrtW1(_7nTlW9o_+$W
      z)Z3XH-chypHdml+PBLha+nkCoI+^wh;wjwiP*AmYomHz83mL<kfi=LuVl7CVcRJ1J
      zx!r52$6X&rr%XzR6;x~O;NL}TLA8$2@Ag}X^Q>y~<<w4Q@4_<mZvNNzUaVK|!6tPd
      z6WMzaQ}4qdpEs-bS9#tc7ylurNnMZax;1TJ&D*Nh)5j$l@CK?zrtfh^;%h9@#x8zN
      zZD25Oig`ocpt>S@R&8cq#G(?8Y_YqG(|A~>wotf-?OE34h>~H?v$#y=dO{w1hBP}u
      z-m~he243RMOV`bQ2<ih&)em5)dXN%+kd^BpbgB=bSACRe`eXbj<inKk6L^byL`!M=
      r{Fp1{n47Z4n6ac4Cw`rj#V5wpPF7Ai6&+Mpt7~X8#cag=)wTZ%-UIkT
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#7_`g4=#c|RfJOTV(=2_eVZ)F)|iAfk?LQ05<K_;{U~v^
      zN{_v~d2i><@OIWeU*7<(aN@xsoMmMzmhx4uL}K3RrV`6UiA2}AGU7g$?=p>R?ZG9C
      zc3EeeiD@e9Mj1l)Mwhy|C3J?PIl-M(sp?^$8&8{^J~}uEu!n$fI*e=pQOGhAabt9u
      zP3+Jh(xrN6pBKtJ%0;0FVN@lum`kIr{(p3vT)z;`qh0Z~Kba8xxN1$J?zCOm-*zr-
      z2)+wv=KFvvalS62$7&3R8Q@)ny-)ZbOdT9D`doo)HjdF}7W~;Tz!59LF{6X<7yETu
      ALI3~&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pg%zrp9P%#D8cNTm*Y+5v0&l=q1woHeJ#!>n5xl(a-WEc<=-KC~?wy
      z@uZhG?+tH;H}m=R{sG_`XAuIzsI-mP$|w0O3ind`N^A=y3SDoM6N|=}*^cJ5ju8G~
      z-&^n2vi8amx>Ienza?~rqa`7nRcqD5Av4Q+V{~wo-~b8Xe3-Qngpsxsxp&%@lXj$^
      zX{#2^!%De(xiX57W>q20Qaau0pJwPc`jK#%{ri>)A<nDD6>6?`YkysO)rR2@adQ3?
      txDw~=GDfV%2$%uUMcR8q{K_=IF=NaXxMAZMC(M$)4Sft)5l$Hcq~BdHUVQ)n
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5Ph4}risyNw0bV|P!(J%sE3N6rBWe^5b1pzmvl?qluau7S)K$Bet;h(
      zPNH~~Uf#?b-aO{b=hyoOfF5=oSPVST3qBK1;+e<hWnN@_7E2zh`BWNycR7rXI-?sA
      zk4TYrE{2hV8pFX7OAPfhrB!jxV0ZV%47EY_ARBOrlb;70t3FoXGqk#4c?nO2PIy!p
      zrIUWS(F~QAw~NP#H1}eXN`@fJVv&x8Q6>K!){3dh8G7Lo*Oig_3|^EiOf0WdY3^0A
      z56e>+{A;bH8Kff5W$vKG(Eit+!TtLg+MuBHa8PBGvrgy`JBCFa;OqyDH+ZkqT393W
      ksKPoy-8#iOasNk#CN?U~W`zN^s0O69v5g(Lq_PR!Zzg<ikN^Mx
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%SyvQ6g`u~risyNw7M>IQ5764x~ljpN`)vwrTb|d+9`2TCW+{0xe{FX0e+Nt
      z(-ybV&AIo?oclQU`{(luz!7#`SPbovF8D;eh*ut)w`rd8Ni2D+rekUN!_{@a-R#|o
      zxJQbld8vz`%3L@M2TRm3R8Eyv`5A-V+8Z!9-SkOT;nByur4Jjc0ag$&)LT)x4^M<1
      z@qTWU9(Bs1TBNkRFP?|eJc?l=8Nw)yMKTaZm3;B&<YSdF97jtmxG>gX@cU_DVtJ#=
      z{{GDWVYv-MaI3X6-9%)Wq!ZK`8vjmU@cxd62FN~L9uyf_tq{7zPGC_6xcg!C1O7Xu
      o7S;%Tim=X6u`aMqJebQ+!^TXrIl~ZJ6hqS5*v1Y#QrU#wFS;*uMgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=5Pj1krL~Gy(K87L)WnTOy<j{*G>}wdg5kc@71q?2Y>OX1%ae%*e}F&A
      zI7Q`ZxV$%S^JZt}eSW=v064(51B-ApN~YpoKFVhinU_hPiu*{3NKeMfi0k%w|FF@$
      zlu?%*aibllPj@;SJ17zM7U(3DPj#a6GlJdR84yaH^j1~i5-NY6da$wVV+lT?)(nfC
      zL@bk$=;uZ!qgK&Y4RxZfrVm49Zsaglgdj{K84sk<h5mgk<zt-@PQnFNoFCUBc>Q#0
      zB6XpQ3EnJ){bC=2-%Ao@I<d?$l{u&p>i^Clxbp~62S>p9gPHi)GNZ%l7#3H6vl~?2
      r;JtEbVTI9ShSf#c>S2|&|6@ZHYctRK3<GR12kf=6i7mM7vKifPJ|A}S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!A`<J6r62=(pp8U=$V8AYT^bBCyWP)29s)34ELpOU`gGQZEN(iJehd#1N<oC
      zYcXC8mzg)4d2ipmukVjf0A1`kuo${io%6YP7B4(9uZt|<^GNbYEoRd2+w+UjaeH_z
      zq9Hlr_CTar&q0OZaD_I8+NshiJ7cgr`(uX6AbFH^xD3^Dq6ZsmKC18;nw_xNhQ~rr
      z`6x3=Py0nrBUD=6<WCc69>gS;3_+MgA|4B)3jO<7$!02LI0;wSZyBr4;Ej^pMDkJ<
      z<GnKcQLzkzf2FlFgIJ`gOdT{CTK|5);Qn0>El_wmJBTSZYJ?7{9xSQ==OC!R!+WFB
      n!aAWx4C@Xx>mD1V{iO{JY?hv_5(8`#2jsP}gI&1fvI*TE!sl{<
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5Ph4}risyNw0bV|P!(J%c&d1?Rw_ghB0cD78<%uT+>}i!`dOX?4}O3j
      zB~GGvm0sS=8{RzT&F9zq2Y?=S9as!J(F;BkPvV)!=4D=Fd=^U{tNBzKeseaAjyj_&
      z5syfbcFu>9gBruZ5=#vA6Qxyg%3yc*#tgMV_8=Q@iIblP8>>E6;4`$kVR;Epg-&=>
      z7^RbbxzP-jme-5Ni8Qxjl1hdk%wmy_g;6E{9oCAe${Bj$64#ZH`V3x_EleygRB7&2
      zu@B2r82n4Er5U6m&t>kQ#nArOp27Y58QP$r^l(sRl(SCg5IcrN9pLN-jW>9&)LK|0
      l^r*tRL*2T^I&uF;h9)*D&1QuGwx|ZAwXuyIxTLZP-ETopZ{Yv{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r635(pp8U=$V8AYT`zsCyWP)24giQ81BomfhBcIw#BIb%9Du)e}F&A
      z_zJ|U;WF>d?!1qA-#?#U08X&)!C`2P%#2UOvv}dszE1O$Po&~fPshsghstI@p^
      zvP+7jaXS`oV(6j7aI``lL-|}AonJ7x&4WHesgn*>1wMT&S_W{j9%2n4L#-JX`|w1V
      z5%1+zn^C(cs>a%=``Ob#*+(%*6hjoJQY3w0b-|a9rF^V2hSPY31((L!3_&lQS*fmd
      z(Lb2`KQ6Xm2ycv0wv&h~Q<;YvL;c?g4F2EoPzTwk%Yz~#t7Sru*clwk0PirWd?0wI
      o)WHT}KoO2a*%@M!c({<Eimkb3dyWxyC`P1pv5P(Uq;d)UUy#LgVE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5Pg%>risyNw0bV|P!$X+JykqdlnPOVNblRYv|G|m*`%VM<w@}12l!Fq
      zq*kxe%X{;dH#;-$^XvTszzOypScJ2Yo`)0hB%Z^>yv&L$oFp<#)NCwGcz<~npSJq9
      zBI&auZN<{eq%Is(2uCY45~}A)tKx!Sw+{w{N-ukqHMj(4`KJdP>ps@t6B_NP+$c<i
      z9))pXlpb}<u6m@jyqiyl(maS^DhWZ9B_bUNqe{JetQ2FF6FSif8~&cwC3tZ*H;KGf
      z<p6IH!Ew0`!N1X3nqDgMT;>iMgyz2^2<~5gXo3Ua@WD)cYn9Pq)q%wo;2Z|EH+ZjH
      oTG(Lpm|>-;T2pMY_J3@sV{75rUSNP7=77C6cCiPST{ffp4NWR`AOHXW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r635(pp8U=$V8AYT`zsCyWP)29s(`YPc_T154@_wk^@0<;lc@KfoVl
      zd<EjwaGCdJcizXm@1M^v0B1OKU@>$?y5JKr7q2`vZ__;GlUVXtO~=yk$LpJ@)9T-g
      zxKE0t70n7^q=O2>$r^PG)k~#Se#Kz7j|L2tUivI+aOq>&(u0jn9~<x)8tt&$hbKah
      zc$6EZN8Pfh9x5##ikG1@Phyxzh9FF1kqm@UC0{*O^0CSo&cihpTp8;!cu`uISl+6#
      zzqjyzT5iMO-)SvPFA-TLGY1WZ=D!md+`r?Y39?U@2Sr9!tAq}*3s{r^&T&xtfcH+R
      og)KslBCG;cYmRN={!)fIb{3l51qRro7?9S+J`UiL$|iJw0Sm2k-v9sr
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG5Ph4}risyNw0bV|P!(Jhiie5^Yo$UIA*J_iT-q&hQ#PsSMZd|D;K2{@
      zqr^#-dX!$?n_1q>yqW#{dj9}$gk1*~Lu;gGd?FsiBah9~G*9^?mONI|u{8Ylyc-=i
      zde<WEks@jIjhZI%q8m9VF&r#W%1}O4TIFX9c5`pQQ0k<2vI3XEU3B$eW7WqBe1=*x
      zEL`zK=n;={qx7g<)Kx>J<<0DVC{14s6Uh*SX)Ka~FsjIZA4~aIWeg|b5+487YcqIJ
      zIy14nRK*Byeu%@u5QBfEwKSbXWSPty)EMgj4xud<S416j1o{FHGupOH=up;zMG@fa
      u2bDK?uM}EXBlL)2J)>;BV4ZURM}{gk=9<kp2G}AFNNZyoJ8(&56T06k8Fz~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r635(pp8U=$V8AYT`x>CyWP)29s(`Al#R_!jifr+t!a?pnu1ci3fjx
      zKg#%u=+$tUd9#_f@4fl_dj9}$fNcjB!_i3Rd?N0}Bah6}G)wp-k~~t=u{8Yp^sIN-
      z=w6DbOOCkFe@JdsI(ATE*ju2Hp?s{g%1#*U=FWhj)Jbk+1ula#|I>qwWgkoM8EVb2
      z*oenMk9aRLN{`w_S2a{xUgdW~Y5HOqONJm!A`uUSQH7pAma?%*8Cu~28~&cwX7GAR
      zZX$WEiUHm%g8gD02LD29X*#h;Q<*xbG1UJZ!QlSohdL+#3LnIbZY>i!q*}130-W8T
      t@&@mfN((E59x<$El&u%6lJ<XWsA6sAS)XBm4dQ^jHa4*Zms~cX`we9Jc3%Jh
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^OK;Oa6ot<?kFniAA<*zD&_JMhkeH+muOLJkiW1dDNRF~#=eR@SV(j2J6!=%H
      zkXY~o_)&;!Clo{~Ro={Z#=7_To*BzOe|`S}ppF)Y#84TzGwsm)XnxWx|MMj9v_ng1
      zmOU8@Uwgf?YcvYoebeevg~O3#$e-H4kbY{rcJPcLSJXpq%`x4PW(2<Nj#|CafFarO
      z4ulMaLGA9hJJoJ`(AHHXu#!Ov8HVCXoy%sS*Q##2;??Z^Q22dw=m>_a?pdZYFnv4R
      zFCHd?u{~v|>Zb<yo47?;=4TO_E=6IGhmL2x(}l~xdJJnPOkEm;xh{pdE;DSNP_b+r
      z#!?M$=3C;W9VSwvtEhz&Fl2hJEBuaQPN#wrDgRv14F)YnzCwG~U`Wu)k!NVcYISGB
      z@Ice;NN^Mww&NJ=INs4)dpf35{3AIw8R~INI_5NJGNdAMlw;<95#^_qqZ%{+-q`$N
      z9#H<d;JDAQ6=!rq_!Hp<41A$Dwqnj;e3+R&eIDt#;CR5$j59;uw<nH>PC+@=9FJp0
      z=^uIXo8$|HJm|Zk{|q3JN+C@vr`;Zs(Q~C-S<lMfpni=?&d{n-DWno)sf@F<-<TI-
      z73XLNC^(NS*@Wr>E-sAM7RJx1n))G^E1_@hf8QFoq(#2DdEK$EyzrH9h5992#Wms^
      ytdMg8>-4tkq;3*7h_{HhiFb&1iA7?GSRvjc)`%LhPHYgjiA~}|;v?b{D8B(yt!2~z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*n*p;pl<dM4ojCi)_YCya?AMw4PpYPdh@vpiB-@>-03mM0Sret;ik
      z+#+|m%<gPvCp-K7^Z5nf6o)oSgySe#h^c&$uOc*W^E?&PP>E2_C(4M2t3l9h-410q
      zyzaIx2Z4<;p|kc1p>nPhonH{Fc4tH=_tPg;MU6STIk2$lVgoLr(e{fgL@bj?1i8^k
      z)GIdXzE0HrVm4OhQI2Cp@ccBC@kkn7@YS%KPjp5Q{@S+{ae4$NNEaqlH@dKPmVr--
      zLkR9&k|@)UWtOSTMuX7&*PLLlzJ(?@BtIHli8EFhZDwaEaR=B(UiAacJGUilF*;m9
      i&!|v@ZRYNu40Y@*HM>jnu*cP7t%ZFYpvEeTvGxm4X=_3N
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh)2Y31gzD(WDp?4ELpOU`gGQZEN(iJehd#1N<oC
      z6u8Ufy_wxNllSK5_v;(LDGptf2qzPhi<x|tZz8hq^DGgwNQp?#r^<@QtD9lBbvKaF
      z;JVwoH2GMkF3N<?+Eawexi&hxAUN&Lh*0h)&#H<Ve=HYzaIooP13sbA4ht_LmS!S`
      znbl^}D~9T!HtHdN87uoF$FU*=VG_xBB&{y`)nhrE>Xgt8*S5C`)gySrB)5^e)x~yi
      zk^H#uLh$d6QMMn;G*ukGL1_NFpWv>}h9)>VUmVQDF)NHNcV{SZ1-M5+^%LF)mnCd5
      ldd#2%6`Et4dw(fI9Xkun?g9hsF$b)5u#W@OSmiL*{s6psZ}<QJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh+kQ3F86OXi|&`hWk=iSW>p6EefCI$;5*n;71v!
      zh+gIL-n`A5*?IH%_5K0i1cx?qgyzu9#8^Jdxd`ILG>ybKP$JONk&4BA`>NNh-E?Kp
      zy=>OnVf6B(laY-)p|N%!p>VE^PA>>nz0oJ+JJF*mqC_bEj&xvQ)5Qi{LZ$9!`-o7Q
      zq3ETtHp5odR`#_~ceBYr#Sd~2DuU-nfeiaH)|p;C=F^c*2&ewq3;qRb5u9E$ivxA7
      zv-!?4|8cer!M!y`#hp+liAro#2-SaoAlR$pp$d-AcLy_Z&;p~)>I^xq0Q<-*zQK9r
      oGKVcjhZ!_Sffm?i?f%$M#?I2SyF?Fr%pQ9!?Bf6>c3F(2ZzuM0qyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*nzp;pl<dM4oj9(;j>6UKw6(WDp?4EINUfk)~qX$#S#{*fmW4}O3j
      zW!x6-a+%rL%x-q}=lAOyKnEu_3Is7VOEH%#`67b&b&*D59w-s$#Z1NG;qrRaZQc%L
      zFudwE2Qo=}Hj0Gy)<cByxi&hzAXu&Tm{1%<PpX0{p_K1)U}48a2`-`D^0P}sD9u!i
      z(pZ~mKbxuf+Nk^G^F+muauO<n=SP7I$1>KL-ZYEpOechnzx8$NNPU7cik5MpZgjTX
      z$zz{orx4sbV^ll{Ws<1GMxD_3cRj)0{0t3naDF$KIWo$OHme>ATmkl}SNVkV!DRuv
      lj1DvC4P|=A9&2}PLk;`6=O9N9hs+*(Egaz(Rd!j7)j!kRZZiM?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*n*p;pl<dM4ojCi)_YCyWOHqe(F)HQXQd1s<s_d2NmUf_{xB6AylX
      zA7$Jkce%{&Y-T4r`~CCz1>h8iHcEu!X`G9>e3H*1G%t%R5%W-qP%mc6h`Y;S&~06h
      zWH=ghTZ3U>qfF?my+Wv*>sV(O1gqT{6UzPMK~+&>&TbAYY`WNhOK7zH;tCPTcq)R-
      z=y=*IHtN2P)ouPbQRZGwB1Q20B$Uxu8eQ<!u$;|wN)Z0qw-s@E1Sd#x6RIm+SUbzW
      zC&eKI_a=^&=|?h6RcfO_X#Q(Xuvgzg6C9Es4X(r)D~vX?GnBXk>?5!G0q33D61Er}
      kuAo;`=ndP<-9H)X*jZ|Jm*`=StH)Xk`#3<2RTg9I7i$=6lK=n!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5JXmew3FAT3Xe`DA!+j|mSW>rSTa5Y}`Xio9Joo{A
      zlyM5&<?`Ol?wiSb^Yi=l4d592HVTBJk)HVz@g$!8$h=Im#GgdckJNN5jemcB*$W!i
      zT@iIJg2wGwyo#ZXBB8bN6rpsgw93v1R<qS76g$aKmQmr4#X<)b)?KW@CDfW>?!}LV
      z9{Ih@C_QTDL)B1ec{h6;Nb?{Du_Sn55{bAkjLQ4vV=)`6ln{g~+gpZe6P#W$Gm*Sf
      z`F3ZX{4n=IaBsAhrW1=am8p#yq5kiFg1tN&>fq>naWE6dEHT>LouI%KU>|tpPdFc3
      o7O=tSFoWJuqIYa^?=EDhVr#D1o}-5yW{<TNcCm*Ft1QOKACtsz6951J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5JlKHogz+G1G%3cUhWk=Cu%vFAZ87>U`VpQ?Joo{A
      zlyQo9mdktdHg9I<&DZzGCx9;YZIlSziJtp2@hG1B$ULWc;?E-KM=G64<KLcLguT|)
      zP(;J?UMrL)l{&XkCUjPABUDb5R{1HxYIjD2@*ugFRn!Rfa-stZ>n_&d5*qEG*v5~A
      zp7>#Il%Dj9u6m%fyqQ0YrMVO1SQ5M-i9|dSMiqMbSk9*^BOC=Q@Ant0PjJFyZX$W9
      zit)}O{9&;S!M)a6nn5hGOlCG3gyz2=aK7c`&;*C)ql1|^XNA#bb&L{MfPLUq-{HJ*
      oS;7XR!wh;sg<i4A+Wobmj;)1fdx0Kym_7Dd*u@@d?6MeZKSFPD(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh)2Y3FAT3Xi|(x4fmyPU`cIp+Zz2Ky?Zk8;0O3o
      z#wl=@%X>4sZzk`}&+peafMe|2C=rgvaW1CvS-yzSyw0*jOhY9?J)0;a?#?fRZtHp=
      z!@)(j6+GqAC>v!$XXPnE<y6NyJ0n=_&X7><Cl9KM8h<PnI<T<rVht{#(e?{3B9ie~
      z1ewwCxK|9-eI2XY{Bfkry&Oe~;Q2`?qoFjq=$DV>Y@$;_*I(J*GE|S?1W9f}b)}2#
      z&OG^H;f3Jd#IZ8{NT#VuZ8QkYfA<sY<=M~#N9T)!nK)*J(dO<1C9VMbz^i`3`QWmI
      n4Mv9<^o9z(W0QM#AwwNobItY~J?t=hthKO<J=9obG1mS74McE}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_D(pp8U=$V8Ac(4(}3FAS)Xi|(x3HPOLU`cJswix{>jVBWiet;ik
      zoFdVqT;7|vd9yR~KEK{S0G!~^M1gQRi5K2XJcvgx)KBv)@n)g)LN%XC?cHAVgI4`&
      zAi_bfRUc|Kk7TbOm?#pOYc~=~XDU|NIl*W&M}%TGxszpB1nc)t8wNHVY``H@8-Bi#
      z7m0Y{1({ayq?7kmd=<-^#r;_7p%_P!;QC1@qLI)l*Q>{3HdQI1?XSJz-)S9!9V81K
      z%1f0Gu$K`W=j#xh>o}IW8;LZPsfj9~_U{OSxylbUZ~z=Vn29efF`BH}C~yUsM{fBI
      r_A8eKY%$u*pl6im1>3Bh9~&yzS$cMt=wgrAWv_vK9Kd3i!DxL04K{N<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd_DLam}z^i0A5Jh%bl3FAT3Xi|&`g!@ugSW>p6Eq?qgPZ$sW0DqKm
      zig=dGd-FDLX6Mb<_s1uICJt@n2+fh1i-~-aFCvIvXK5rRff9k9ja4k}FRps6+D%sm
      z-OE<3{~SH)WNaf(Xsq2vD4c1d({qAVZwv_ePV}IPC=u+{L<bf&U2MQ5RO)`VjR>U~
      ziC!9OGiqmDWnUY0H=hnw+?T^p5j;N%WH^wq&h+XrpN@4xIPurs?=M!H;Pj$-9H?uZ
      zjdzyekF#Y6?yWH@?u0T)RAQq-sQ&u_=UZJ4Rd9GdI+%%b78q?-r^s;y*hgM*0q2d&
      o9JUx8X3zo!ddD_v_t%Cpc9x#qC3@In_SkD-9|tJ0%VI4309qSz5dZ)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^U2hUW6o%i!*8oMUXz{CRQM7zWw@~XB#z<*RNx_&bA+Z;lWjn&wbr+Y#s{hI>
      z6EFM${wU+wg>oSzg`0WanVj>^yfd5q^Y_<p03}oe0)$-G8Y;)y7wxN}JKy@QtsLu8
      z(T#pjI?9`!J+++KZ)$pTw=57Mq|YoTM4lU#;l3cGvJKB!F*U2JsIFsJ-AX;zCWLDC
      zk&Gfni0(J5wIaL65yVmgVI&CIS$)%1p3`!}u;lCEr;c=5TE~=xWW&}qv#mLXHy<yC
      z+@3KY6dGq9|1@odbBu1mvz&^-C-0cH{;?q~0@VpCGtQiAd#SE?sjd>%XH-lZd!gd0
      zJ#=*W%JA~U{YTjFPC!W1ElWBzQyUB<=Mj^qxkV_>oh?({Qwc#H1=57g1sbhk$GgZ#
      z)fWO8LV5o79n(JfU<`VEd#6%houJHbQPT$QHX-a&Aiq%VT|YOE0>y=LAM~{E+7ag-
      z34u*QY5qg2(&<af<p&!pfvtu1S3eImhd+kMNC-S4Y|X!a%Q5<<^wY;CTHxtIAzCN)
      z=<UQ<Ar1bD_+J79ScMVcQSj^lA%8uVFRUh`KN0`omz?7<&ZVHYh|(d>^L%Yoh-F;h
      z84$xoB-zGOmvDJ(yfQX^$<^GCXujb2rvCSR2SM+B-_)pX;u{_N25^o01GtVG%tI`(
      wa}cY%+f7!tnQP2D%)88c%=^qNGsi42A22tV3bVv4GaoXynU9%In9mUV2l0qjwg3PC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sX25S(pl)5d5uT0IwfXa#*Jda4LoD+;Lyk=|e9qkSd5lzfQ(EKh<5e}D)5
      zN8+aTZZESt%j~eTpFi&(01mNhqeR#rn_NuglYACo@-oX}F%6Xn^=zUNad*)Vj#}3P
      z84fOwTj%}2Mw!rAdWBFq)kbG$1gqT{63V^!K~+&>&TbAYth!i%OK7zH;tCN-GZsOX
      zXfy5>8+BhBb(=qqRB|szks^409Li`Y6J7Adu$)bFN)Z0iw-s@^1Sg2|Bve<ruy*Ew
      z4~jzw?u{`j=|wV4RcfO_X#Q(XuovG#6C9Es4X(r)D~vX?6O_0E>^-mg2IrOA64n?U
      kuAnbe=o{<I-9H)X*qCcJ=jdUJtH)Xk+t@*kRTg9I7lpZO8UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%T5A85UggAg>@BOMb9K0z=NYiPZ$$LjV6mR!Ehhe2@F|g$v%vJmM0Sret<uq
      zUt{bA?sBQ>o~iCs_1EvmCxBz@+b9r@MkW&z`7B>V5WmjSNK67H0zDh6SUg-__uGxz
      zo(y_dCyfh}4RvCpNNBA*MJSzVqtkPO)ocw2#cuSZ%Bb+iVxa>I>n_&d5^7C9_aZ`R
      zMxvj_+Kf8+P}SE)-DlIGiXY`LR0PkD0vQfutn+^PSWL${A+-IK?JYxf2u?rB;y~T#
      ze7iGGewce9xOc{=xEsnOQ5?TUsQ<g4U@y;xIygFC9L&TqON=&mrzmg**au$u9nKq<
      o1#B=n%%E?S=m(qJy9*hr*qUp$=jdUF*<-DRUF@O4DvPo52l4K3&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd_DLam}z^i0A5JlII^gz*4sG%3ae!+ohMEU8<vEq?qgPbMDx0sad8
      zBgQGBSGl}5Z}Vn$-n@Ukz5zJEu8ka_InpzKBJRbbADX9W8vBz_`k|VRrSY#ir~PK_
      zyeGomNvqb0;)h$6jBVrzjivhtg(Ia^dQ7nDjR7Iwjc;TTB|`Ccqyr19E>_?YD)k`S
      z$B%>_`Tf)=J!)rd<v?k9IlCK5b1jCEBzQp_ifAB=%JkwfpN>^RXa!3z_!q2AaQgAg
      zgz`*f^PPGA{cIb8d!e;7-AE*fOl(vL)qj5=*o)(#3Xacr2QzWd0;A395IL>@d(SJr
      sz<K5}hc!lr8T5eyePW%p`(r~H8*|U*96f9?d+fEajUANOWigh%0bPP~d;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*nzp;pl<dM4oj9(;kw3FAT3Xi|&`hWn$wz$5jQw8iLWc{1_f2lyxY
      z5yoxdE|-~|&Fp4pzkWYH0d#O=qd*W-vlMgrEMG(rzb?{9%mXC?y_l(3++SRcy3L!R
      z42GAd&4EnPo{b`*z3~vCe5Q>~&k0tmJth<f(W9!MN+{*~99Y<LQG!dTxBTo95lS-^
      zqcqlL+RtWczBcM^`7}}SgPeql;Q3J?!?BEYrq|74I@1ZE<8OT3DpH@|jG|>6sB4`q
      zck<XL*(n6~))*BJLYX8gu~8>9{#{S7*FQr89Gu?`W{!+9qs^*^0#|^2>{Z_3ym48;
      mHlxD~`bL?4u*2G2*-*o7?%B)H!#=aeUJC~}M3r3@WAzUSQ*R3Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*n*p;pl<dM4ojCi<e$6UKvp(WDrY8t#w!0*};|ytYO^%ae%*Kfuq?
      zyK#%$<ubdonVszH=g<2GfMe|2C=m`PaV}=^Nj{6vyv(yi%t9qXJ)bHg?k)$xN$Ywj
      z!(sol)gJ^l%7o6!D}>6qj&*iHu-cswq1;OzR24Pm?B>A2x{Ecqghtyht`L!oCnCs<
      zjwjt>qweci-R6&DW$xuTQUuRWLK%&u(FI=)%h^<?1mUlITM?&AaDpT^p}NwAwX+C(
      zR2)KZZ{k>)UL@00r8XLb=D+3yd-*Li!6Et4;7Xja!e}!)Ly0@UKJcn<a9+7BVS~}(
      k3i?8YzOl*N{ga`Nt%YWLfgX0adaSjui#^m>Wii%%0ibAXYXATM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh)2qgz+G1G!|om;l7j&EGaG77Nh=^Cle2TfWM?M
      zPJz2z-kaHdGkI^mem_0|9An=`j&L-LW@0R#<g*CO%QTI}I8Y+c(~&ab;o_>>tle~E
      z(78OR-Hqg{9N5Sc8Y@o`3THaf={dowH+qD8J07SaO8l`{=)l6di#51}O5M-Ah)_mD
      z(M^qxhOKO<?CVI~&nA6k9%VmN1kaBH8TO>nS-*VDrz4#Zn*Pf6mZ4e%ryI{qpssbc
      z-I*sp%)AiX+bB||9m*t8iH!=O`tN>%y*wML;OKmDFcZftFxuRmBF7bAA9%%gIB#6$
      nu)*jsgT7IqA8c~(E@UWUYp&UzqlX=4kF^$dv4;|?EXL9w$vAN9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r61fg<3_c=$V8AcyNOsCyWPCqe(F)HQblFfhA?zY>UyK<;lc@KfoVl
      zd__FVW#-Lh-rG0t>-*yqKo18lEQa1hFZfJ6ix(c7*Q`kSES5Z0*;E?-aCsdaw{M3c
      z9$uZcBWW_J3l|PUckMQY>bcUYxL~k5-4TN`NS|a4bq04e(SwZ*9~Jlv%}!Wu!xNz=
      zJSvRRlYZIN2$h!ii}_fZM=?$$LlCC1NJhe_Qm-DJVybe6lW^_*{$lkRyeM6mSl*~|
      zytfR0R4&8d-)Sw)AQ5>ka~Dm9*1sQ6zSZT>0)?legP2jyDxpj23>H;@dl=N-;k{95
      nVUy4!hUK7YRj@_c|Fxlk?WJdDi2-(r1M=F~!#?WdvI*-y3SV%n
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J6r635LM@<G^i0A5Jh)2qgz+G1G%3cUhWk=Cu%v8p+Zz2WPbMDx06)t3
      z3f$!~^WN^fmznqT`}Gar6o(EhhLefT`AocuHy)YyMV9bcBzdG3Q)&3))lJxI-wj1H
      zygqA(FS#(%L5ZQe@f1V(LTQy<GT5E&h@mt{o@E79`dBS=VPo6F7CeS#Cn&t|Sm+54
      zGo$pRUko(@rR76DA4~Hj#<67ZgCr91NElW0>&H?yRVhO+*x24WRG+~OliWn|Ru$Xb
      zW%A>~3xjvBwKRiRq^V3DG#Og|?q_h;XG04Voh}YyMls8T4t3|Sr~;fLzw!z9gGviE
      mLYEj;4P~p2I`!U4h6Z+)n%yP(*dz8yYhxb=sFKPito{Mj8E<O<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r635(pp8Uz?p;tcyQwfCyWOHqe(F)CES;~fhDyi+t%pM@?_${AK;HN
      zz9P}1TxQ;E=IwiLKEK{S0Gyy<!C*L>#W`PyC-KZf{j$swz6d1`)p9O1zrPv=r>&cj
      z2uFkS)>x}$BnQL5LW!ZXaU(<dLd7b(WH8&E2}7x$Jje=c2K)C<2PU>%Y{6xywf$lv
      z9*KCygG{S<)+_p|zKZ2t{y3F-ET)lU@cbkc(L`uf==EbMo2!(e>u<c_-)TJtCrEM~
      z%4<~&a8?l<7wa&%w{a|WKN4vwQwueQ=D#BttaW~9f&!rELComVGNDDP3xg`aI`S%S
      ra9*i2utVq&!>FTdG_XtB{js5ny_IKwg&q!wJ@T43L>)G{OhWq`)h}`v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r635Lam}z^r$2pzyllnIAJ`98cm8ZfpA~y3QOviY+FBmmM0Sr{s4cJ
      z@fGnbmzg)4d2ipmukVjf0B!6#uo&87o$;x75-&V7ud_7f(@^qI%_h?DyYtKbVg0%%
      z!rsMkeefJVsAS@xz|dT}jiGp|v`Wty>_&6QQ0T_@vV<~&vzX|@#;S)EcnsA>kZ;2y
      zp~t+R8l}gbysHu@EpM~Oku(D_iX?*{#G#0W!l+y?9t-J2B@9Qw()<0z>M*$dI5VNV
      zQu%my9=???!{FU$EloEPNg@*mRfgKXA5gx<<xm5Kr=x?IQO+WvL+S(;Re*Egm)_yN
      qQE6d~&?SbohoZHQb<*Ci4Haz6J)3j%u|@2Y*Tyz>P$rj6SpESb3vlZI
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^+iwy<6vn^9Z5E1F(c-PzqG-8Dx6sxb#z<*RNx_&vc<^o6j<9vz#RaVTU-@L>
      zgNZ(9;vZ!^yGwbHCWV*zeKR@doB3uo`{(bs?*NJ@3j_$+t~FARv=7=xRd+u1hqij8
      zOI0`eJ?W^gcJ`X3^nOFr8@pQqAwufRazf;(VHv|`gk+}fI;*B;b=Bt3F|2O6mTeP4
      zRr^pXh!T|jMx|O{_ZWg$h$D<RA#+;aw3X|$ST`*Ba`dhvotD-yB_UC_b<J#Rj^WP7
      zi=ko97!dOHGmn3gw#+&FTW~F>V(`g3rmerNON&4?!qO>c&bHlDSKL%r32UcROdGqQ
      zVoiJG=<<c(=81Wau<o9K5U*L5bgHH{7)Z_|CQoyVP?$Mey0X_K1bGxl5jN&%v_>8G
      zA|n+~2&4(6+1qza`}mD9=<)5HNP#tiI=e+x8w|GzVUGg2xpMD%xp@>Q%$56~r+wBA
      zIkztaHVDPp58aebUs^+cu(1-@oNNE)`;q4G#}M&_zyreO?EAMIqi;$teRQG)9?un`
      zb!_`@C&mgX@K?nD5+J}Tj0lf{X9oy*>(N|(IiY+-?2A`&j>j06f_^}upE%F+Rlg96
      zxWF?Yii=3FjjJx<^4NH3Z2X+7xgSa{@A@YH_x%MyzdhfiUpMhp#=Zeu<Ng4y;|B9J
      y7T7t6W!~*3s}<%d^EUGi^DgrqGsDa>^UV9qb*9QJGE2-Y<~H*o^AYn2qW=JCo>+1K
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-6r62h)5d5uT0IwfXa!vqda4LoD+;Lyk>0m)X}82p*(9Pr%ah>2AK;Iw
      zzQo?`W!?w#hMD)h{QLrNibDq#hU2Nu`CPn+S00(SMV9b+BzdG3Gimt4)i6A3-;P8y
      zy6&|vhoJ+Tp}Y18L-kx~m0d7co$i>y9wbk)hC0op=EB0JhYffP%}!9b;IYtC9%e@A
      zX}`E=1WL>M{COhHqnN~!!4Hy1#A9JpF|U?(Hd84B57zcp#OX7*VUn9j-l#&_Ed!qv
      zMi{(1t)&^nB28uLpvlnsSDe9FeG4s6NP0A=GRjybbZF|KLLJ~7`Lz$Y@6=YXMd(rm
      imPGu)Hg(<~4Grv+oZS+A>{0cJYhfP;s1wT~tp5U@Ic$6Y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh)2231gzD(WDp?4ELpOU`^eUZEN(iJehd#1N<oC
      z6u8Ufy_wxNllSK5_v;(LDGptf2q#mMi)Z;N-$Z2J=UF12BPAj|pD8OIF0V)3*6mP6
      z!>eBF!sHX3x+oJmYflj>XWHoOoZz%OV?ue5JgF*b{IOi<!NI1F4fupcJ1o42SemIA
      zWmcPMzZj~A+Nk^dWuok(oWzO{gh?dhv9!AASC8dvrc**UT-)9%RG;9DlH5k>Mi<+?
      zMe^gq3&FoLM%h6u(^PT%2BG=yeuBF?8=Bzgd~q-n$E+~A-1Si63UH5t>L<JpE=$;A
      l^q4^|DpbWb_x@6bI(8PC-312NV-8sBU>^slvC3hr{Q;ctZ!`b^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd_DLahQ-^i0A5Jh+j_3F86OXi|&`hWk=iSW>s7Eq?qgPbMDx0sbiC
      z6w#|(-kZ01GdpiSzurFp9AV!^j?kW%g_y}l`7DC?Wu8W27AO(u`BcT?rguJUH!cS<
      z7@Tz)y)b&Z*U8jIp3qvmk5D+#MyIC)tJxY6^8M&e6;UD-e@8m7u<2q0E}_=+vwcJ;
      z%|r~-Ser>VYb*QOsO!bUSjD$;94dn6M}Z7SGS-=1J?7J?P6)^T+6(>#>k^z{w1@+B
      zp|knUGXG(=4Z*!KM#cS5CW%UH)Cl!|e<0Ya<Dm|Y&vyqianJ&z&8mYOSAc!s72n{z
      pa+$*xqr(iUpg>h@vvz-MD5J9URF~*shuLGVg<b5S#4d}m^bH7*ao_*|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*pZLam}zG<qZ903Lk7gcHVtsL`Yt6Abr9eSt^nD`|_-&+=sA!4L4G
      zjN8IpE;Bou+0D-W{C<4{=;Fvhi6EwCDdzH3zKJk-Uu3bEhf0KcF;j_nyt)~kx9)~A
      z9A5WY1DR$$2W3KM;~|25p^eTi30Au^CX@&9v#O#-s1*BLSlIGVfk$YxgZvT^Ni!9r
      zEYW7#&u8j^HtJ#dGEvEsoJ5M?2XQE)u}pNX*UfS^(<z}FY<%4+QlH?C;$;%5Tb(a=
      zi`ZxRDFpA{7?lhnnWidr&>%GbT~Bb<KSL87oZk&*jtra8Vbw#4E5JGRtDkT`xGZ6t
      l(Pai5!=@ALu=Z9q)UjK5_6qc|&+N0;!T}CZW0%EP`vbH<ZEpYo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<Z5S*ozLam}z^o()<6MfNy6UKvp(WDrY8t#w!0*};|ycVOM<;lc@AK*tB
      zx5!;CvpbvF$<BWNe0~8q$DxA~;dGKL#7w@(R}q=Fd7g?{q(r3WQ)R@%^&q@x-VS9n
      z?01^|LFm9HwAWrClrMFn^DBbYYL5tZFMU!KRGG7z3k#bbHsBHJt)RF<#4?$PFgH4x
      zbc>Bzpc8e!cpfYBD95oP_(2-UcqEN3_-bh9Q=Jh+u=Z_5oG!r)(}juDjV`R+W#F^o
      z5Q2A?B+B$+nPn<-P$xA0H77W$Z=nGW$&UtC;*4cRhgk<D?f~b+uYACL=eC3`Mwct-
      i2xU6PHgoS!h8lL3n%yP(*yHN6*1|pxP-T_HSp5Y{SZdDz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5)KDeigz+G1G!|om;l7j&EU8<vEk^w-PbMDx06)q&
      z1@3ZrZ)W$+<h}X%{rU!QhC>@U!s%Gg{i%2nuYPFWW@+qCL+OWVHj&1Eyu9wWYPUTR
      z_O9Bs`-ylLBO7@_W9=zI;aq8zUJ$H$V?fAv<B=?)#2?Fr4lHcC*nmr@)Pu~69|=A7
      z`>9cS+{uQ@fzt9}{ydcCNem-N@ParL(LflL^{dBxI#CIs6|8M<6{<sU`tjU^@<wIb
      zokj9y=7r$iX)R4R5=kNx8x=zJ-~9x8bv9JN(fQ(FCXQKPw7F{|#}!~7dBsmSA6(|J
      m#pp1Dj!~c!Y;*4}Whi53q1j!ahdpMGwHEeqfD)@L#?l{jI&V(^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh(ySgz+G1G%3cUhWk=Cu%>Rwwix{^PbMDx06)q&
      zMLf&py?L8Av-9Tb`{NTp7yB+sgzm)5#iM+dFCw<Dvpf}#u@bSKO_ddQ=a<n@>v|~T
      z;YF_%DLYdpcTpyER&FCyPPNhb8Nq3HMuhSpeNa`@2<~#C2M6mu*5DHw?XcKJB+^Vo
      zlv`~k{i3TLYNKxFPh(~8<v3A<AWUPKjHK0tUOtxdsm=(;;mZ5{#p)BhD4p9_UFl-H
      zw+Me&EJN^bj8S%w$ShNtiw2?j?+2W3c{wz};rZxbCeB%5bXoOK;tFsNg6ccGH!e%q
      mVDy+lC#X;lo2>m`8|v6vc(xZ9V23$iuY+Cep~fzUvGxNZ_i+vY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5Jh)223FRPaG%3cUhWk=Cu%@=SZH<1GCle2TfFEU?
      z0(ZH*H?#X@^4|RXetiQt#i5N7;ba=;;z_>BHxZimd6tN$P>E2_XUd5Ci>sj9x*5rE
      zblGbKFS#_zMw!rAdx}sw)3MG51gqT{6UxKnQB_gnkL5xK7B*dMz$G-=e&Iz#GM<Vc
      zGdiC3i=n!&V|AB5Pn3C(lSmOfKM7?tmPQx->am>7bV}&@Yuj6e>JywG$xW!Pb+O%9
      zBtI^^5Zv21R%RH<G*zjM2BG=yeuBL^8=Bzgd~q-n$E+~g-1Si63b2p7>L;8JE=$;A
      lbeKWssL%l0+`CH|>eyLmb{FVjkJ)3bg?${L#wv@k_6O~&Z_NMz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd_D(pp8U=$V8Ac(75!3FARN)T9`b67Eagz>?CEZ87?@Jehd#2l%6m
      zQzUwn%X{-SZ+2$h=hyoOfHNGMC=f0t@zR@#C-Lls`el(N-Yk?}s1{SHy@%^wa9+P1
      zh;Yzt)rVRwBH8T)CW?gS#*Kv1rHWN{MKBu85uw;g9%UI8!TSBvhJkGdTW|=~hM#Zb
      zMIxSfL8etaY3F?vU&Zo%IUh?s6yrz|Tt5j#G!k0ndi_|;rYa@0{EavKJFQKygJh{g
      z*;n}hdlkWHz7D~;i({!fkw{aSny3<L|BfJ->-<my2f)#TnfTHYqsgj;0#|@};+EfF
      qzj9f?4x`Ns>Z3$A*k$ef*igaV%Co;h7YEEPdkq}o2o}2xM(Z2x({gzL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd_DLam}z^i0A5Jh(x_3FAT3Xi}5}!hNYLEGb*k7C(NLCle3;0DqKm
      zig=dGd-FDLX6Mb<_s1uICJt@n2+grsh^c&%FCvIv=V>ISff9k9PgE>=7gzn0+D%sm
      z-OE;O@EkqrWMU&vXsq2vD4c1d({qAVZwv|fPV}IPC=u+{L<bf&U2MQ5RO)`VjR>U~
      zi+&nwGj3;HWnUY0x0sDoJdmSM5j;N%WH^+u&h+XrpH6f_IQ7@w?=M!H;Pj(K9H?uZ
      zjdzyekF#Y6?yWH@?u0T)RAQq-sQ&u_=UZJ4Rd9GdI+%%b78q?-E#$ZY>?5!E4(E-_
      o9JUx8X3#wf)WbGw_t%Cpc9x#qC3@In_SkD-9|tJ0%VI4306L>_O#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^OLG!I6opUo>Vcq9H28`d6b%o_1R}n$ED4DfDqvYP6bpC5q=kv&3=V@)|CKAN
      zT=)b0H@eWB<?R{5LQ)mj^mn@J-qU@$r{>4sZ{GowQR4_P<ootmJ=8zwA63KsH1r(x
      z&=9I&4hO<jUv2MdmF!+yH`+T@jtE2M)N+Q{Q`0uRXAJ3FOFFBTZueEqb4|NnYv#KQ
      zk%n_16vP>ny>`7(BKHKsSV|&_Bt!0`zF8~jwA?an@pAmGC)|$Svjjt`<ruov)m>B0
      zCyNnpV2&7yty7PGoVG?ef?JT5GcoAoJ<BoPwuH^VnhYx^oH^f>sV>P>ml@VisF*dD
      zp%R)ib`9~ulz9^VBW%bMFeIC{E!>8sk4A#>@afasU?|O<EnDB!7{WAiWEeIVXtc*Y
      zd6BWYFF3LcmHFGZE$8TsIU3OI9ZQaN26cXmhCcGD3{jsPg@tnO__=B1C@qwGf1rQX
      z4=8saI5ru|^B-Ch?oiksJ=jEXY%R3E_I|9p^fAN&!SR4$YySN^t~s=XpFTd-9FG?Y
      z(K&L0x8oCq4CpJOe+dvG6-A6jPP2VP{PlRDxSCSFBJss9IYVQDN`aqH@C#>2tp$Zx
      z#yOe+ahykrY^1t?ixcCOiScu)mi<bhD1Foa`~Ifw|M<S?pl<4`OngJQLj56J#Wmt<
      yERk~<tF+s7Qa6cf#9PGM#5=^h#2hhCEE4Y#H;5{+Oso*^6RX6B#7D#@i2nl@fmu8N
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%}&BV7@Td9LM@_I^i0A5J-7iwVuCSI#As5Cv4;CnH?X8`$+j4M8GQy%CLVkM
      zAIkU@y?8QQX1>|X_q(58?;ikK*l}Pn9E|mxPsM|H<dJ!rWeJ}~l1FMbk%nKN_QQ7L
      zVj!X$HIsw0R{OAV(hnUJ82FNj48<d*Rd&o^H+P2&g<f(eODL13nl5atdRT$SP-_PH
      zL_8LH%)`tmJ?`ci)j(-^HNPK8b1O!%WblI|67f(NmFwTfLN-w;Lnl~r!hE$ZgBvDu
      z6UlRxH*gmx*w4pd@GiBMrWcDem8pXoL;c?t43$6kLmjj*eE^6V?OP;tNOfRQ1UP$s
      t=?(5Hg%&D=E-|cU6s;Gmk@kLUsA7HL*;t^DO=6$CHny;hGP!KR@;B3YbFcsa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PjPsg<3?b=$V8AdT;}Yh6H1xsL`YtBZm7@H@Kv3$+k86MSAsQ;=vE_
      zql{DF;>mD%GjI3J&dl5IpU*D<E$le37!Joe;}h{Do_T0qrfJM4q2!^OK1joFPR|GJ
      z#${iGw`wZ;XRUUpaiX)4N*ojz_>#2@#UrIvddy%qcZUpxUVJZ0DAUFKSr;}|J*>cE
      zs5OIpE*=Rz=7ZEIJ?`d3)j(-^ojs1Exf7#EGWbCpifAZ|%K753kUpq{p%W}Q<YK`t
      zgFA>b6Uqyf_i$%k?B^3Pcvo6W(~CrsNV1~FQ2)0JL*<W=sDo^vp8!QhD;EhJVh6A&
      x1Drj-^a1ysQVSJAmm;iJ6s<R`5%=aYRIxtOY|PNdCPkmLHny;hGO29B@-LfPcxC_q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5PjPsg<3_c=$V8AdT;}Y2@&G~)M!$S5yO3{D=ev7vMql6D><2X@CW##
      zj8ptbJQ*%;W;SnT-n@PPczpv<$F>8Dp*hr3J{I@lk%#7KlE!=-N*=1oNE&|GKIt{8
      zXI&9qsfp|!*Bi}hJBlA}RWfprW8e#RGvp7IR_PIgUEAq1<T~+<ETG6x_!;cN#<GVc
      zcnsxQkZI$Q&_mu!jnczb)>aCXmKW2zfi%}*5J?6<h(i(eg;81k{g_KfDq%PX7L@sW
      zWQ)P=#Zwc?Q<ZIT=Z@@Uni#xut)=NiB1vT8pv+MDcMrqLA3IS2Swa5+ij0oV6FOAw
      z!=emucKyN&+!>`7RtQ~+u%3~(W>}@#`=X(QwK->fjy^Uh`oy)di7ga~WfK-Z0X`dh
      A5&!@I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PjPMg<3?b=$V8AdT;{?(FEf`)M!$S5yO3{8(31eWLu1WmM0?zKfsSN
      zPKy^$hRd6o&6}AwZ@<2mp8(p}cVIDeCwjqW;#s`#(7evmn9oAVLp7gD!|%>7hn?p2
      zK!o>dE(aIw&PlT`lC<lfz`)mRWhk90t<p0FyLB*PDD>k;Sw@ASm``<KW5Yuc9z(qq
      zWU6>1^n?#nqx7Vg_0$5T<?Z5WEX{)$N0Px0;!s2*VN_QCJ{HocN*IoVH8rlz>oK^)
      zcws_$rLq-nZp2Y0h{3zjTAF?&l0+sB>I{v4moQZSxQGVG1o{S0r1McCbg1gWq6}~j
      u{qj59H%cv330;b?K2Wlj*reK9(NM!y&e_h<#|}lGxHfjNhYGQ5!paYi%XXmv
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BzfZzI7=70wg<3?b=uE<Z4qm{Jm|z?Pj3&hxYuJx^fg|-wuEpq|<z(XEpqqb`
      z@hiGG8J73HcX{8>`}}%+1JJ^r1B>Bkq8EH79>gP$%+owe_$-n<QuC=a{Q7JVwi_2i
      z5#6Y{9QIr7<3@iFIw&yk6%!eXCrYdAl)-N9j~EKQ<W81QCQUV6*jV?l29KfE4DyM1
      zEcAqjnNfPu%`>Wj((-C?KbGcJjAO~*2T3I2kuWOPzmJ7%s#1ndu;PUIYF!35Oco}R
      z=PGaDE>CcnkHg?yYAsDK7HKL|2Q`NJzbzOlf9{7mXkq#Q5Hs4hNa&F2z@i9n4*b#!
      r+-C|cR0v&SSnnuWAJ`!6{n${&=F+pZL?7G4K6!2IU>9X_*@We9?v!)^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r635Lam}z^i0A5J-C5HLxS-jYBUyO#Bg8A2A0$<*%qVzD^DgK`~m83
      zGQI*APln6Po85W)KKAqH{R2Q9yACXdqoJPiv3L|uJT%XfH0I+_@=#4i((v2U^KPSh
      z*%9HLn#j&sz0s^*kHm`@ILI;ZC36|_$4aa8gu$-u^%!#PcpwWX(#8B)7dBQstiWR^
      z*Mh7s9tl0<-P9;OY-LHMKxuh1edtSbFZz*W@PjxMQBN3^>BV6#9jSz&87$f4V!#%I
      z+l{9tlou+i;m&q(kafi1U1=>%I}%AE69;96%D+_@*8VIK70?>!CqT?-<UFB6>JS!1
      xfV1xx-r&AcXkm@eC5H8dy!DNB(%#&L5;kU@%^CXGBKFB^V;egtlFKG6{sM4`c!2-_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PjPsg$klo^i0A5J-C6ysKIy;HJTJ-tl_@Y4J@hKW?PJYmM0Sret>8F
      z9pe=7;K^`#GqZU!^XBdQ*XtXAHntpC4ErNJ<rDEB9(ib<k}T$vQ1VbEV`=#H$yv~8
      zUi3wHqY~LaZFdfufi#KKnS%lYU$B{>c%-z-jv4IM_JE<#i|=F!Wd>(H*M*Jc3YJh|
      zsJHxF8IOb>@gOrwkGgqR%~x7pP49=&+=^i&89YA@MKlmb<@Nlrkd0N!aOf|n^7q6p
      zgB!$C6UuXyFL7sf?B<dfDwkSI(~Cr!%G5!fq4Dn;hUy<L(Eu4ip8<-DZY~l!RPDi{
      y3~+Y5(hJ;YN-b0gU5c<iP_#a=LUrYbh8k99oV6KxSf}U_*Tx1mQ6`p6SpEh-R(e1H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g|@-g<3?b=$eEDx^M!Ch6Lk6)M!$Sv4;InCorV6IBku7mMaq%et`d=
      zpJKcPHm(etbMBcrckW|8f8IX;w6JHvU^pH{8J~zJ@yrALGD~AV2_z5HY%DduJ-hJR
      zjjO&0?$k{7&s*(I!+*?#mKF*Oe8pUb;)#k>ddgrn_XiAxUi=_SDAUE_SsNzS9jw7&
      zs5QO3FCL0$#QjvOXw=P<s-BAEO*S1$eJ_TgWN^JW5aB>*mFwkUAswrPq2sOC<Z{3+
      zgYCze4&<fEYuNK$9OfM{IM-1mbuSc2A`=TWhWfu%7%G1ji8^Qv^b;UvG;)#9B6S3V
      xBEULuOK-4WDKt<aw25JSp=f+#gS4}-p^DA9XKRiwwuxQxn%KcE%H%Q$%fIe2c>e$Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG5Ph4}rirQ5X!Ts^p?Yv>K~O3lY%2<_h$+2q<I--4N!X;KpXEvL;0O32
      z`WND)isDInc{8)TnR)Z}_2c;kKodI_42GjgH0LvMC+>NmACfHQvq17dB~z*S)oIUf
      z)z1eaxK@cAbepZi`cSJRl--_hp}@eGY-cDQt4L)h3}$0@#8BwOH?jnq!Ty=-z{IMH
      z6}Sx5Mn6}_LlI55pJ^3M+Ie54uOfLlza2|G6ys1bc>OpK;Yete*WZtYY^qX*c7I8o
      zzh|}?96z4xK%S|5jk7RiKNrQ|UPO`9olvByOf6IyYX2@`DF1O3HINzfC7{UY>LQ^<
      z)d3930Bg@HJ;8aT)Igcgp$Ov*MdKZ7RJ&g^RIt9_Y%I{jCPk09CbqB*n^-2H{RuIB
      Bd#eBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5PjPsg<3_c=$V8AdT;}YQG@XyYBVXv2;sie6_(U3*%m*3mM0Sr{s8}s
      z{sQ9^@!-jDc{8(lGxO%{``7CmfI2oESPXjuJ>es9FCKYlp2lg+N1^1Q8V{x6SI4KF
      zM)kZc!fQ2_?UQ<AzuJ9>Z&fmMkYnI;HZ$Z8l~(BygI(L|G2~kDjVz$Z;LPT_u(9Z2
      z0UkrS7G%nJB=mrHQls>snRS%{rRC-1t}jhj^drgO2XQE(o-it_XOFpbs1k;QU{004
      zCpH<}PCPN8JX6^ccWTE@CW*nj&{~>SB$7lX4$2Ibf7dW9{qYhNkP-A5pvdUvJfTC?
      zE-cCbXWK8lz<s9F!V;lN5!MIt)+d&!_I_w6VP(o$ouZF5iav2|tYZU3V%dbnZ&z-5
      Ae*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1+int36o&sj95zteDq1{MTNEt^+Yu@)6=S3nQ&KQZAzXMjOt&y~oWTLC`WAYj
      z&*7Dc7e0UwWn6QxiG`$roBjQJverNQUwbmY|NQ&~Acqo%#2|N#k$j@OS3bz9^|3!R
      z<r7uNs@CrbOFrDKHuK5-hN2#6ebLy<<%=AChQx(U48f<Gp$(rg#8Y+KU)B|)D>sLh
      zW^_xnbeq9nF^@$EVTOhMM!B+nR6DFX?})&MxhMjNGNdMTj~m*4i*?NqFGp`X!fGiU
      zT`<JzrmE;|#nSA(_s~D=X#<8_{lXCcCofSZcP_T^SR{r}M>o|sbzv~D8pG0rlc(Eu
      zwrh5_>kMlXD#nfNXpyElvQ+Uxvr|Q!YuT_*z!0q&hOjESG8hO-HGl51?l5dlnKN0g
      zHW_@hawHhGrfxSz9ecpRvLiT>48>_pc6IagwKnL{RR2kiHHN~pMipf+EHDHda%5(h
      z$DT6}S~=Edn8!g+`J^1vJY2!?h+%u$7)@dIg)wB{p5oY?;VjK}BgLXmDCi1~Ery+G
      z&(gBAzAl`pgwHg`&J3|yr>1+$+*3$^zCHRs0TQVIg0ynl9l-BA4`;H=vCt1hzB?uJ
      zv__~D(r1LEFIb@cs#}OfT%sKi#%09F##UEw)iYl5jGt3A^&^zY+P?AgzF)zmZ;o%=
      ztvmA#dA<^EP``wmxJ7)0Idb-4ncjAr)CzHxc$avOc%S%ym?EZ$S>i+D22m#Fh<V~;
      NVu83#EE1m}{1^SLb1VP=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%}&BV7@VcpLM@_I^i0A5J-DL53&undqe(Hw8tzNoz>>Np+t%n~c{1_f1NczJ
      zujs{-;WG2hX1?G3{CfWY(7}#_62s9%=X@rf#50e~%REc?ERsA@^Qkoa_IwZ?wyuUE
      zx>IvGyyzSsw9W>hgE9kOGLgYPQCelE3|4!0#8B=h53+(PX{zbM!m5WAcnpnpP)x*Q
      zp(i}djM9@{kx>tnmN)t1Sekn=jwOR1B$0?m!l*+3K9;koN*TJrk`orI^%&eR$xS3L
      zRnfp*oM68ghrzqnTAF?=(p07n8Vt>UTQJoA+z(CA!t?<kX0)$O=#c87L=oWZ`IR@g
      quN0P0BXo&j*|04KYoxs&8|qkJcs3U3W0Tk?uZ1maqe?D|u=)*v*>Z9K
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeILLM?(-^i0A5J-A{bF~OK9YBVXvh~d7}4J@hKX4@M5EKepL`~W}7
      zI0Y`A43{_acHivGy#4<9`~uLyu8jgiccL>s6EEVG2j(qKBR&fx4^%vrhTmUY4Ubwk
      z0}(u^SPm{b-NV+o&c-USQDopN)-se%l~(B)gVo*}F%<jJlPse`7mH^dSXg(l2A84H
      z_Vc-TDD;F6Q={~xmlxH1rR81rJeKBBj6=!b`B5OkkuWOf%fn(iRSCn1zv7U~1$zw6
      zFv?6IuT|c|nR{`NPsHHfYAsDa6iFh<iUvdT-!2T*KSrVnvVndA6dA2tBD9Geqd*y8
      v?|bDBIPa7eP$hII!m6QU)v-a`UC2;FeXiM@qlYbu9%(IXV+R#dS%j5eNON~6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5PeILLM@_I{5X<uKo72%Xp9&SphlBoj2P}qU0_Mwl5O$hXL&O5;1BRe
      z8K?M>crskx%xvDwym|Zn@%jd!jx`$@hJ%5g@R7I|k329><0RsvK=MG1htlw?=4ofQ
      zdfpbnwHnLzNqv8(+6<$IzKVx7vJ8C2Zid{E(keM-uxguKhHNXkm3b5x@;`$eSeSP)
      z2bZB-^HXg+6nelriBWpcNZU%j((-b0*OTT(^g_wt`B5Okt}rUCzaO*7P{j;~{){qz
      zk8ChFooHeLd8X1W&eW0ZR1<@Hp|v!vP{gr}ZIl@*|L$QZ{;?AkkQMYFpvdUx9HC9s
      z9x{{x_Li4_f%8mh21P=LBCK`ftPLzs?S9cv!s3*(G(``~6g}cvSivd^#IgtrpX&5^
      A)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeI5LM@_I^o-$v9$Ya&4;T-kMw4QU8175mz>>0Uw#DdYc{1_f2l!FO
      zY4PI8aCtMcc{B6o?br9mCx8xiZ4?-~6TRRw@ho0=U|!=i;<G^VK*dvO`2EGz@VIp|
      z5W$0r<>0b&a@6XJB<<QLGVm2!8Omo$tMr_~YVVI2iv8$GR#0Uq<x?G4SaVT=%g|{1
      znJOL%J>kRDC_U+AJ#}AcdAFF4rFj(NP%?Oa6o_ynjLPcY$6`8F3B#$sqQ>QUJqBkO
      zEleP<Rkp&(jX2B%F}Sx{OVbZUlE}nHgQ5BF5{B9z7tsWnK;Hn0bUw<2HdS2|C<E*R
      uuksG(jnV>YgbqbmO_Z%YtW)hSX{ci(=WOQaVT+<iTnpRSL6uk*Vf6<*`*mXg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%}&BV7@Va@p%&39dM4q3n7E?B3&w+h(WDq-4fmyPU`gFJ+hX*wJehd#0emRq
      zSM=h^aGCjLGvDuie!YJH=wQ!Af#GDT7kn<B#4``gOOnNW9!egnWF`&2y%+|^&8v|J
      z?^Gg3gU;zub1)2S6dCx6i43JPrB!y$V72zg48?x@Aj_zbrkV~cth-o)%TRCm`9wSt
      zddh>$C_U}v88u&Nd9!$&NOLbHk!0}vI26%X7?tba$6_{9DMQy^al(AH9)lCa3lqvq
      zl{avfCpgT<VQ{atmZl$xG?l51Iz!{%77W!t_d^4;Fns`s8SPslv`KYQpa`(rUil5q
      qD}@DA2_0fsZIrA7Y>;+;Y^Y&#>DgMMhizhyycTw_iwe0c!pb+B^m4-h
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g@+cLM@_IbWOqnT{z%_m|$Fp8jZymG3<vjfgyEDrp2g#<;ui`AK*tB
      zZ-I>~!{(fOX3m}anD3v@F8~ef*vK$6hkDA#;#s`#z`Rb9h>ruw12q{*!|%^8y9d?l
      zjtCyqM0PG3&3g5AB;LfpMwWpunahwnRazxy3|4Ko$B=DD1DQvGF6PfVu(0Z41ujFm
      z=BIt}Q0O7=CPwLDD@`i-O3S<HQ(u}#(GMkq=SP7Ed%~zxFAlTGNW}~%{*p~D25d1n
      z-Dqk8d8N`C&TJR^X-5q1jn>k%LlMU^wozuN{9A>g_-B!*fYv}i0b)iY=Ll_5$H-6w
      w*n3|71I{~z859W}VpxaBSw~nS?apl|VSVP=n4yPFVvoEQwy=!?xh%rMFCC$GLjV8(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeILLM@_I^i0A5J-A|`#(*9~jV8qyYq&3U154_**%qUp<;lc@AK*tB
      zr-%nnhRd6o&6}AwZ$H1@KLE6`Wuw4wG}2Q(5l`Zohvp^8Vm=8a4^=XjhTooD1pCda
      zz6kGBBKzm<!@Xu8O(Jz>qsYJ)Y-T8Rl~&m)gVov|Fcf?7gDj)MV9)0|u(0f62`)pu
      z<>$(HB=m>}nNfPw$-8R4((-2dIF#mI3?s?l`Ee+sfiNns=a0o~tWt(!e?gVMCw3T|
      zAfB2~UaEYFGqYnim&D*+Yb{ML5@{+^8+C@pziSw(f4oEkWCVQ%C^EXaL}*iWfC6QJ
      wz2lYN;Ji{=K$Xy;2&;>db%GVD-5(liSe<d!X6Rv^qDNc{8`wmJSQcUB8|+7U0ssI2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r80<p%&39dM4q39$Ybzm|#4J7)^>X)^K0y2A0$<Zd;>2%ae%*e}F&A
      z_zGM+87?z#cIWN;*zcduF92=q*(fk{#yaCu@giP%Xx?UN%%`E`p_)yk;ddAP;JA4`
      z5aGR=$-!m2bJPr;Ghw8SA_HGBm!Wi~v`Wtztk(XJq1cNbWf>K^SUl^%!n%t!xD54{
      zpZCQhp~pN(jnd<8o>cRdmbcl{NSX&RiX?;Q$DxRZ!l+y?4~ywUB@CzjicKyD>@qk(
      zoS9Hwsl0|W-^F3x5rcc9wKTm*B#BIH)EOH8R$-|AStJ^uHPBChn9;~3LYveH3KRkM
      vfmi;3^G;y_RYHdtRv#tn3LB)|g$*@q&OKXm^sr6rk=Mcwc2OahMOgU-n@V@V
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeIL(pp5T=$V8AdT_-=6NB*}U^FRcEaAS?4J@f`vn@tH%ae%*KfsSN
      zPSI#Q87^;THg9I$ynX+8eFM<Kj)?-p$t0TdnRpP7JkU=`7V}vkd7zT1)coeW=N~pM
      z`y#kiiR^b<#|Mp}R!JzkJ>Nu;fiKz4P&!qS%FY;!=I)50*op6C85V=}GueiLRR=3@
      z7-~%~SI0vUO}L+F6;0ZCU)58Q9L(>>QV+#AlnkyH2O=B^t@8T&v6xL&%Fy<f)cJd6
      zo5A+uxenxo%GcNnQ}%OF49-;)N!<xWn#$BfjiLVUB8JKzM^OivL0<xjjIJ&bnp7R3
      zKp9}}x#btw&y*HWA+#yN7@%ZaV~uL(i-s!J7o3d+y4a-X64$^MwqX&=AhbRK-adM5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5PeILLM@_I^i0A5J-A|`#$Y^%8cm8ZLeT3{7g$oaWLy0BS)NQh_yhb=
      z#wp^#li~7aX7gs|&D+nf_YVMdY}m*!91Qe?kHn*R=7D(`ClMb7k_T!$l!jlQoV9nW
      z7cCLosIhFF*7tX+ou{a;;-QT!1D~^*A$O#-N{$(<+Gdv_+l=mI9t8$_HrIiLMHdTj
      z8Ok+3RmMZ12fUpar3a0)tK=&!uO<&YX*!}8N(Rr50ugqFQE5GU%qBw>GaUMJs{B2%
      z!Qix`i3#MnN|!iOJGN6v4DO}Y(lkR6$1=82W~ltThN1Y!OH@Ec&}V=mqnmStHdTAb
      zPzKmrUj7ZvE2S9}2_1^CZjrO@utc@{LqiG6Q_jj1J*-mnh-+aD>nIS*A}o9Z1a5gj
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1TW=Ck6ouCrE@z;$RkV1kS`;l8+bONk)*2(Fn395N3gN-GVS0qA;|va9)qmxa
      zi4Xn&|B*ga_grjZA!*>{eCtg1UUSwyllgh}{Re<Nb~q#krDG126ZNC|Nzv@jy@92i
      zXhPBSURT)4;clg|p4zXg+L7K9^}T#?jU&jAytIiS{9HHn!3%~&y5{&RhH7?{#=zFi
      z&Q3McVhEP4V<98LFt=YXl~<0chZXl7Q3Nm(LkKa3^tkR(L&tBvrkmpR@O@j@O|@+Z
      zhIq}=RHLQZy0iBm1_xce&ycTO8sh)tJCw<ri(@<zi9v1~miDeDOa@kESQvBiOv}l3
      z!^w7&VR=l&sIe0*+OUSUCSK`Is;GM{tIi1+VpY==cG*z-eL<;aFI?6=hK&hxrb?9t
      zLx5I}BtvoHc5~Qv1{^NAf+NMSHL1z2VV%C!`(2vqKgqGoP?*%Hto8>5hLB5+>=g6Z
      zbLT-T$I2A*IOwWh)MJ{5Cpgv^HYbhI5Oz<P0|xFZj*ThK()ch`ZTf`5p5Q1lY)^WY
      zrmgo3;Z7xTt~s`+h}Ar`yj$kJLK5`t(f<jMNQDrlmDBD3LHBtin_G;_-w^%kmdw%`
      zrBX=0AWOe7NBbqO5c9Y~J0OCqh?9+@uHm|Gyx<$Zq-yGioXt7DiHp8x;L;!0H{sQt
      z`^vtrgj>`v;Wq9N-(ZHE16ZWD-6eIOxI}zFd`Nsmd`wIeGsGP632~LE5c9-!;!|RQ
      LxJle1K11X$cieQ8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%}&BV7@Va@X|1AF^i0A5Ij~^j31fl;gGn_eHQblFDNE{>Y>Uws(dY1F;=u>-
      zp^RTq&vKdXC-Y5azR$1s4*)$J+9)w}V!h;Z@gN>~WS$mz%IA^fky^~8;Wy`_@VGg?
      z5>YrF^qPZFXrs)~UjK%na;mh-&ls%M(S)HqOz&hB4$UOz!osG94R{RoR#5ohiO?|*
      zbE9<JFD`0<((-zFKb7WIOcTlA2Wcddi7={|f0yNarZR?Zu)et>P@lmK)1`^zg(|e&
      zRpw6Ngu%PiTAE=ZvP@<+>I{v4)fuXP4?_bKlb#K#j8awzZJJI{q7Jaze)SFRE43wT
      m5xP`?XCl5}n>z1@h8lKOoZS`r*rVzb*TOyy;1J6qbiM(RWNgd;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%TB^T6g@+cLam}zbWOqnSvV=i6~+XK29s(`YS<5T0z>MQOk1O0qrc$F#DyQ=
      zM;UJc*Rnb1-kEbB=YIcuegW`tXrsj7Pjt>_;z>O7$h^$6gwG<$BQ>8&!|yIG!)|MM
      zBcgEF_gj6Pk5y`;%+OiCjG=O-w93vItoG4}p*%<)WEC~~Sax(^VbjG1T!uzFD7N9T
      z&=VeJM(IhfD5?ia%iH{MEX}<b$CAMdl1RiOVN{W?9?RKOr3@#*`unYH^%$Hm$xS4$
      zRMFm9m_II-VQ{atmSzx(G?jFK21E1T0Swi@%b^J}Pge&qBcl~Uo3c}sC<5$`SN(wV
      pPGJdKgbp$AO2Rj6Q{*mXsAFfL*<GNAJz|fv7WQ#~8mTP8+Aj<kae@E<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r80<ORb_+^i0A5Ik-W?31cEegGn_eHQblF!jifr+v3MR(xWF65B>mu
      zl<^hCt6b*2x0$zZW<I~(KLE6_Yoow$IMOpd5%=PeN9JjoC43S|9;xYA8h+J14G-%5
      z3lW9=lUBVOCl9wO9or}}G?!mwC><%SvSS9Tu{U5S_L3Xvpv>Sb{&Zns)x!!rhH4|o
      z74cZ;5f3w?^r(}sRRX2u<?L=K&9xZDlEDv>NW=qSR6hSc7PGNR8QQ_}3jeHi7~C+K
      znMj_g{D3=;U_Y0`;GJtNO)nN{DpMO(hT6X;$l@YD)Ib4H_MpnhYKhRMsf_}4fZg<+
      sH@L6V7O+O>QU#ug_=0unydN4W*qC!R=jdaLs!v=C+t@*wSQcUV8-PJ{E&u=k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5PeI5mRd!t=$V8Aa&U!&6UIb|29s(`YPc_T154_bY>Uy)!i$LqKfsSN
      zPK%!9^4^=to5{TS`u_L?(8ZCB62s|KFZo<Nix(c5*F~1_c_ewH7Bgx1{pD5IYmIJ2
      z6pk*st)WP>zKt?NXY(nB>Y36iJ7=)k$76=_FnN>?Y7CWPp$iLJ9xCt{8tovzg~viq
      zd6*fcr-OW^9w;sEmQNFD9>gS;41SPAA|4B)^7^+~&SolQ=mndfw+=O6aKmJ2B6+Ry
      z?QW6$B)^5hyU|*jVJy;ArZyT3&42eZIDc<L6BM0Z4q^(8DxpnPA0<+N-SM4wxGRz+
      mY!kY~z>17-*dgVuZKz|n@az@nW1rY3uZ05~qDC%@u=WET<ZrzI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r81%Lam}z^i0A5Ij~~l31gy&!K50K8tzNoz>=~h+hX)*c{0JoAK;HN
      zzE(ZUW!^{TO=jNb*Xjd67l#f?44sKy@|k!N&pa|Oi!9-@Nb*Q6rqb~H%RzY39Nvm3
      z9A0#rSA)=j&Cp)|hM|0>w93vItk%(p!R{xIvVtnjB<I4yriTr94E0u!`{1$A6CP$p
      z=}9lYs0B*PyXAZ=&4U=nlEDv>NW>#yR6hSM?QE)2hT~v;b9ta1gBvDG6Ul3pYr93}
      zPVR)kyU|*jek{^drVi>1jepe{Dt`|{0~C{<4XTV%mI)o2PEn!`aN2(54el$oC2SG8
      jRDl%{-?2@d_d`PsI|XOAKp%Tled1c!#{sIuvIwi+tR-z7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5PeILLam}z^i0A5Ik>6D6UIb|24giQHQbl7fhA>2w#BG_<;lc@7d`n=
      z#wp-gE^lUb-^{!>-#_mk0DSD*C@}a#J>z5XD4uv^o~K#D$C2cbnvSI5_ZOGpQKNe+
      zqOg1JH*QAaMGR~d8Ct8iF_cb~R@oVY)ja4i6g$a4mQkUP#Y6`d)?KW@WvDfSTn&$f
      z9`Z0VN)Ow4Q#DXp-pwX`X&yvBmJD8yL?Z49qw;$BSj<K$WjGF2*SECQW^lq}W+Hi|
      z^6}2x{9!JJ!M)a6nocazRHim+4E28(FqHo;hdRhST^$q|87&doRGpwe8DO`(@*A92
      pN(<N^bSMI!MEt@gW$uE8Dz@gF?Kyhbq399U!Y=kuA(lm0`32(nah(7F
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5Pd_DLam}z^i0A5IoLq(gfUT~!K50K8tzNoz>>Np+hX*yJehd#1C0KX
      zaf)!3%X>4MH?!}}=g<2GfHn?o6bPNMp8HerB%b}qyv(x1pGMM;)NCS+e|K>ib{c~l
      z5ru>Eb|aK#CUs_`NNBA;M<|^tt+F$M)jS#!iv8q4mQf+t%asl+Y`WNhOQ<!2+>aj%
      zJ@&)QC_V1wQ`JCec{_g`Npmkou_Smw5{Y;yjLQ4vV=<ekl+X><H@FJcBRF9)H<7$j
      z`F>}S|2TI;aIdwNrXPzmm8p#yq5kg=g!1ZmsDtD4;lWItw8Ut0cY*>}fZg)SZ*X3@
      oEMSY#VFtcf_>FC@+&>wr*jZ?H7wBP+*<-DReH@^|DvPo53zoujTmS$7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!A`<J5PeILLam}z^i0A5Ik>6D6UIb|29s(`YPc_T154@_wyn|6@?_${5Ad#^
      zW1Iq><??1`_sz_E^ZE1s0l>$;jS_=D(m9`qC-KZ9^D@m6K8Ylc)O0Kjzq_~$k6Qg3
      z5rzG8zZK4MVWf>RLud6ihRUhZDm!Da+6M!MaxZz1Rn+KXG0}mAbr)-J85-@NP{U)P
      zM?B1o(xYzCR1cJvxB25xntL&fC4(0vk%$MvsG?pzmb0-+8IFV1^(}368JsZ5O(d^W
      zG2WS*KP<#BxYt@s(~Cu#%G5@Kq51CuhU(wt&;*&MtAipVqZLA%suPqb1MH4heS`B#
      oX$c#I4n^RLh~L<x%w5n>$JU&)Jx32a6g}cv*u@@d#Igu$zg;bI8vp<R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r80<X|1AF^i0A5Ik>^77mSG_29s(`O1Lj|154_bY>UyK<;lc@KfoWM
      z|HSx;Uq`vjytkRRZ{ECqJih>FVcSN5VSl7&d?N0|J&(-8G)wp-k~~t=u{8Ypv>Wc#
      zdzT^#dnc`W->7LU&$^+FB13cWNruvq(keS<uo^o9hGHkVk!3gx&hMu#EG&Cig2zy8
      z1i2?33q9gtW|SVa^SMf(w7i<#4yEafVJsQ^Ac;gg5Ju(w_hT^|tCZm|Slr^@acu@S
      zOlBsM=PKXe&QsXU{V;eJT1(T3MViXgMwOxV?+%9YPlTv}BB1y|%;?q<p-tTZ3RD4h
      u(=R{4eWbF06+)L7cq8FER;lv7WT;?mu34X>j}2m<v=%n81&34?q4No6pLE9n
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=6r80<p;pl<dM4q39Na+kgfUT~!K50K67EY~VM*PRZR^L+@?_${AK)L+
      zUtxSjILl?`z0JJ0Gw<`~{R2Q7`!)&;ow3gNR6L4j9-5a~8uMu=d8lR+Y548=MbK&V
      zuSFR2&)SW_Q+%(IiH#ydYxOyX(uvY4J!P<(2SbKpFTRsyR2b~VN(UC!U97=ns5SlE
      z508W%^B^@!kGuI))mK{HWDg^024WOR2G5T}5e<b=dB1oprW2Jg9QmsoTn6hhI6<75
      zP+qEhzcbH&n7d(cue6q?7l|a1iH#aV{ofxL%FE-S4vJ5Q2Qj0hB|@9JV-%<Y?3P!4
      rgY!yd0ULx4G4MsgZ){TK{>f0q)?BkaM-My19%(J?Vh<HkS%j5eu7Go!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^%Wl&^6o&uFZR|8q2sGRZG!SSmZQP_Sw;)6siV`(NNRF~#=eR@SV(j1~6nFzz
      zz_YMIV!;FOP>3^*2@;J|yqWJG>zv=`pRxS&*Y_U)DyVTp7>a#oq8%D<jdz;qy&sNU
      z?a&mOX$=R$)1L3_>eXCx-!S!Ny}}V=$eviwka%c0*7y-aCf}CUnr%3JO&@!f)33D(
      zU4~f0JrD|12DQ0gZ>&rEB%)YIA&wM7eqQ5oFKM;dwjA+n^13Iyj?uFPL%QvnhTSzh
      zOYVb*vGKqfF|4&uoPU<LMoFdzAw7=;VNiOuYrbj=hk>;imgWpy=*n0ZWUPw}t8*%j
      z8_QHl-JN)*cxuT&N&g<oasq}_%W;I)u#M43P$1>+?ObCh|9`q%eOG6Q(#nx#sD$Zs
      zCOvtWiMlU1atxax`gd&i=%qCp(DZ*K$11}{2#<y_8gDbieR34TWq;ylr<G$pT=u<z
      z@xeHt>{G$9!B7n`w=TS)aK;QgP#l}#CeYtZ43EBw#8hzHVb}^WLC3R(w(w6tooSBy
      z;c|42-02naKp_kIoaoO2L`cPvpq0~Z4>A9_S}ZN6m2XIX^-E6Cnxs<TBNTkXX;LfG
      zLM-A8?En>LktQ3d&f$Duyc8HerfS)*6id=K^RMq`di@vQH#4o9`6_{L1ed5kg3Gu<
      ze1QdWj$)bKc9qn1;tKHw@h0&W@is9}ED%e?HDZ~l5i7(haf`T3yi2@Cd;s+~<)>SW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjR!risyNw0bV|P(@rV)JsLErBWe^5b1pzmv&3sluaV~S)K$Bet;h(
      zPNLvZdU-Q%c=MPypI`4E08X)Qqrz}9(>Y&=C-KZ9^RmnmzKA4`)N(Ejzq=fT-S+rK
      zMB#YQ?VYs;qtHf`;b@gDhT6H(D!X8?ItLSm>M(hbbvVSy(1nF{4{Puknw_Ayg~vkA
      zc$gWbXZ>QM5hyKh^T(+)_hK4L20ut55l@6s1^*pZv$;wcy1^>v6`}eJZkXgIl2@v5
      zcgy6*#Vripwbs%MW09sZwb5i~{p(K_e{Vwz6qTM1s*IA>2yJ3LRHy^&L%;q8_m$cT
      mHV9p+urz8`f=%Myj|>fLm747mee6*6No!#jdvHi)5jx*EQf@i`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r80<p;pl<dM4q3#<&rK7mNuK4JOr?)No(w29}g9*|v&5%ae%*e}F&A
      z_zEN*4VQUucISP~_s{1SfHNH0C@`FlbjBy*Ma+3<-ezgcC!yq_nvJF5kJmRrtI@v~
      zVbJfk+82$k&W0+nQDit-r;wp^skBP37_8>efT7rnpJf>p`dIdKU}4k623&?()6X~J
      zk<cR^q(<pcCoih{O3R0AI+W%~3?s?l`Ee+sfiNoPtH)wGRtZDfUuVPBX&nY9h%*z)
      zTa^!R78ac5>oB-?T1(T5M3P7{p~g`EcLcTg^AB~90pva?GCH<IXcKFrKp9{kd*u%}
      r@01p>Md(n3^@@@;$2M_yDMJ-I3(f8VJ?v5RNNZsq2dI$BBCPxZ%};Xh
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g@+cLam}zbWOqnjd3Cgy1<wS(O^=INe%m<jxeN5$+Y;`=_k1|ap4E}
      zQN~+*Ee)G<?wy?bI`jVV`UYSRn>KO`&4Hfsk+>E2JTwoJH0GmF@=#5N((udnNzkZu
      z&qWw?j~mVXT04sGZd5X~k!RSMr<9>^sI*Ft7_9nMk0IZQuVoP>hT>0G2No7xEWl-`
      z)ctHL9tl0*L28s9w6e0Yue7|Fj{DMFiGCy*JU<Ra)DuQ!`S)W!9jb)kz@KNw-}71w
      zP7qH`C{I;3!kHPdn=QoPo@p&jClW~_6B`wV>c2y%#h;6)f=r-405PL;3xqahP2?y7
      w>}{|30_T~+9F_<jVpxwTSWj4{-2IZFjFp*Yb%q|+h&|F;SjPrRq_PN0pHUxmoB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r63^rj5~Rw0bV|P(@rU#!E%eqEv_?M0(%GrQH%YWs{12g8q#s!Gj;*
      zM~N?~;8A*+d2gBbcIJJ3e|!Qs#Ey*;LwBs_d@3Hr6OYXEEKB$_k~~tgi8TE7{37hO
      z2iGDB2WMUXxZM|N=G!PU>@PFNP(4vvWv2{QXLra@?kD%MhB`x~Sn0sRii-+dhGr+o
      z{qR`mF%L7N^thMLGy<jN&HP~`&7By<lEDj-NW?>7RNntSma~aU8IFQw3@(E87@RPf
      zn@C=&e7{rVKgiuMxK~<B(~m`(%G5@aq4n<%wBql0Xo2F>=|N1vQ6;pg^HHJ-u=l*$
      sJDfKvOIRgzh+(~;YQ18OdUqj11M7umqd*Uv#2#raY+)O9QdxxcAJpG*D*ylh
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjR!rj5~Rw0bV|P(@rV)JsLsTB#64i1faVOS>g*$|e#04gC^Nf(Jjq
      zj}j+Q@F=~!nK!(7%$v`z_YVMv*tSt(IGE^+&%}dx<e_<*r!k*}l80(Om4@G(4T4T<
      zcqPJMc-rY6way2DjWWaDB3lfVW2IGk!eF&`MhxYCd?%}@5hp_j7M5Ks!DVQ){rnal
      z2|eLKYLuSz@{PK$w7kyl$I{%2aU>Z$KMqAS5=Q0xcUVrRDq-mOi=3B->M=M$oS9Hw
      zsNCHtlJDoYFu0dmOVf`;lE}nHgQ5AaKUw^}4NXu~dOD~wN?IYbiFHw;4zPE<>KmL_
      qYD-ulbg065M#Xx;DslHmhC0>?&3b_zHmG`}wXlgT)JSC!*1iE#H*Sjn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g@+cLam}zbWOqnjd3CdHy9Ho8jRJL)UY4Q1csC;nHHn|ivENv6BmAf
      zA7#7+5|@U}x%bSR`#Rr0pI-ouuxlg7a6HgcJ`#`OiHGKSlE!=#N*=1oP#S)JaTzpf
      zom&wGo%2TXq;@kDFQRWF&v39zAw%I*X_cNaSoOUwL%tpNWf3L%nD=yGVb#S7T!u>B
      z&o<(b&;uT%M(IH-D=Pa+%e(2gC(VQCMUuhu<4{ChVN}K!kNI?{5{9O~%!Z58S`1DQ
      zPfaMVR5rkwS#X%G!{A<PEloQTNg@*)6^81+BdEonf2e{CAooF$(Xj<Wn^+S$$^d)c
      uD}KOvr!<E(LWd%(R}`!_tP^+VGL*3~(`?Sr!xlx4v=+9pgA%DM!qP9Ji*pMA
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|__rj5~Rw7M>IQAHdqwwsEeMX3-)h;%=VLpvp%gh?v;Kl%Z#1Q&jQ
      zA0^(@ic9I{oO_3JUuQnQ-ah~wVb?~1;drEHd?FsiBM;3}lEr)yN*=0YEDgUszX)25
      z{<R2${#mQtX#~<FQfD@b3<t|pGL%k~R@o_o)!Z8}6npW#ETh6;FPb{Au<Bw3E<>&9
      z=R5I8=n)Sxqx7hoS5<wb<;`q5l;%zhBgx?TaVVmJFe=X%kHu`PQihJd%!<Fqbs3x>
      zo|#Zys(gYoci}MKhrzwlTAE%Y(p084Y7F&%XHbhj3sDDIKpy~NM%R`IZOYmxPz2cf
      vUil5qD}@ED5jw=Mo>8)1uui%ABSRG%bIs-)J!}zsq_wb(9aKnV5mvqdV4!r$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-6r62p)5d5uT0Iwfs3I;_>ZKxRQ7S|cBE4_p(r!sNb(4txC<RY~2Y-M+
      zN_=Sx9;KIgZ+7Q>&G*me7l0$|+9)s_4|T@J;z>O7(7a63n2$rrLp2>q!|yIGgI1$=
      zBf_9}-fEvTg2zl4X`{$+uuLIC=~QWzo-tU>y*@*+8$ZZ0D)ce$>A=FOixs#GwWgnM
      z#3P}HJV=ew!%kjQ^_7;l*<>Kiy%<E2!Smx#M15gY&KHlxbfgl7w!h4Vi_<y`P7r4%
      zlvgSr;LI#I%-3OXueFw@8;K;5iH#aV{ofJP;?F<SK?acfpvdUh5}{43jRIwWz3-Jj
      s;Ji~>z#5@L5!Ne8)*IG|yK@<;*qCWHXXs&zqDNW_+t@*cR2E_77au2ci2wiq
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-6r62p)5K^sT0Iwfs3I;FT7-(AwNfF9kkb1$F71|>luaV~v%FaF;1BRe
      zi7!>`QF@tqZ<+Ts`}y_$0pJAtCJGGgag_0?coNS%&@Zzz=F>p(K+Psn^ZU!5->mm<
      zMd0@@nyq$ypw%ptS3TcEk>O~ST87e@id1^eU^EVf48?BzAj_~AtiQH446Hj?gTqj5
      zc==vD6w#RbsaDarlh;)|70J8oaU}IXj6%uadT}7aq0lPNe;<qKL?sNT-YQEj59~15
      zew^t*UaNeDz3}2V--yAvi6W`Hp-2*$n5Z(;{+&WCmPVomvVpz<#EkAO5t@{>P@o7f
      v58d({_A7-2Y!KSSFy2ry=Gdg%`H`W5t%YWLfi8B4UD6uZ#U3nD8HCn1JIQu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r80<p;pl<dM4q3#<-CP7mSG#4JOr?lyG0_3QOviY>OX1%ae%*_3V!_
      zz9Pn>;WG2yX5QEA=hy2SfCFsX$T1ua^^}jry?ErId77j#ABU2MYBG|BU!R@@jav6o
      zghBVD(QMUv5Am%^MmF*cdy7;u6poZu=`n*<-{~{tJMoPyqQqd&n>w(t>|zNnL#6I#
      zJMl>9ArDfc^st>(m3^h<)%0#4O-~FW$>8~MD5AbFD$D1O`E;ZbhL*p`ioeIT8Jr-V
      znoyprY=Sd$VL#i4!M)I0nocB=L?$*W4Ap;UP>VkcQ3Y8*9{^%T*A@tE%9_Yg1lYS?
      u@deH^g*mJcI>fNvQLsL+O1b+ZLm6u`&H4;IY!G{-wXlgTlt^U}mc9Xaf^`W1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^U2hUW6o%j7YnClqMT=imi=ySDuq`e4fiY67fs`7PC0uwnY^Shw-Ngm0`mek)
      z@xmYAk20R!#io%a&ECv&W^&Fu=RLF8-+zAo0<eV!M}%QxXwS4`@mYM)4EO7J>S)J?
      z)C_YxlCJh{cTcb8+6ThW+s$gN&JknCURc49cwyS+^d&<k-}S^bOV~qApSq?!Y;+2J
      zhFHrvlnRmzsrEs$Ri+Edbc2d0mQsi##gIR*c2Uk#Tke{+d^`I%kZw;5EXk1WI)<?N
      z!Zp49{4h2hnG=Re_d*M2OgG3*Fb_|4!3~2lupHw<SK17$!?1Er+l9Vo?1pFTCd2wU
      z8H>W6FI9JDt|8x;o+Z_Pj*8a-O|4_w(rsB{GLd9SJ^M)a7&gN=%r*CPhA6EZS%&R!
      zwf1b_4K>m91CAU+EtJBp<(wRulMzkwU&yh}Pz|Nh5|e3-A?}l-7<LA){Ta~8Q4TwU
      z{gL=44rvBKz_H1&6RLY%x?^ci8TdTn*bdu;{%Iy$`c4u-z)@$Yhw7r|nqy1)lSrP%
      z9M8hK>76*igYtQVEa(HH-wqI=D2@cJoOb(&`RB=EX*I3<fco7}xkRf<sfY?F(E%>g
      zel1AEGOo}LNa8BeB;!TbaD6VkG8cYD*;EguSn_l;|LY!sM~A*{CdfP0Rpz=8+@ksj
      zZsQK|J(fs0idDMpE=Bi=Ys3e{hr~z3$HY9bKr9hAh!vtn+#*(qJH#6C3GpfMIg)<?
      DgRfyK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjR!rj5~Rw0bV|P(@s=3PMGwrBWe^5b1pzmv&3KDVs#}vpfkN`~W{d
      z|3;it!K3u@X5R4TF>l_#Uf%#5V%tW6;b5dQJ`oS%k%#7Kmd1P%N*=1&SQ>tN(F<CQ
      z{<R2$e&^`)xY6kaHi`^;i)=BJ&XiW^IfK>Q888&P@x3ggLYxd8SXg$k1ec-K^z&PI
      zB=m>}sZn~=&Nr&Q(()#o4yCyh!$>lCejJKuAdJfS@35GTRl?Bn7dbBv)n;&lI5VNV
      zRJpq|Prjeu!r)$MEloEPNg@*)HHP}X{$%m@Hq=2;>FJ=#C~1k%CU$}Xb%4F=m0#dI
      qQ(M3ap+gnc2TIl_R*AbmGE}iP*R0Rc!v<B4v=%n8g$k)G!pb*o+HVp7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%SyvQ6g|__rj5~Rw7M>IQAHfI7KDmWi&7zq5b1szhjvPwlu07`S*`>Zet<ur
      zUn1VL1((vzx%bSR`#PUL?;ik;uxq2h&>HECPsEdW=An6+rZJy{l80(KmWJP5Tn5LD
      z{*4HOez$dc(&*}Js1h4RhJ$4a8A@kLtMr_~YVHjfioN(jmQkUPc~1uxR$Z*XWvDg%
      zd?OwSJ>o%Xlpb~RqN=a7yv-hm(%g$-BpEzE4n;H&M&*3*SWL$%VQBlyY`8eB!{7vQ
      zW<q(T@&V4wg2Q|r2KQQPX?l@J5=kc180!Cypca4rp$;;D+y_NQ$Ce0fVr>*C1MGdT
      t{08Th(gM~99g48NP_n+UPTZZ#P{qbfvpGW#TNFLgTG+-8Dx|UqE58E@bI1Sy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|__rj5~Rw7M>IQAHel6orali&7zq5b1sz$977blu7F2vs?)-`~bg1
      ze?q*eucdTz&b`CAuQRV7&o2PBuxca6(CF(iABtOX&qMPtN@G3@B@fkTAPv809S7UB
      z&Y1{<&e6{PZmku?ch@Qz*vK<%OjF8GI8a)phYVJIt;>*a$5*n55<~H)s{;$OE@t2|
      zRO)`V6_14O^B^@!_nTQ+*;iVgk8gU?T#8;K89YA@Mbs5WW%>7GJ{_opVb7mt$KUgs
      z3{DV_O(;)PHo}=0v6(Hz;GSwNO*;}vA`=@GhU&jVsKuX)sDezOKL9bKa|?tvWewyg
      x0_=6K_yp&X!W`xZ9b#B-C|K{9r`-LLp^SxzW^sZZmWVylT3E&kN~E#~OP_}0c60y$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r63^rj5~Rw0bV|P(@s<EeI7si&7zq5b1pzmv&3sluau7S)K$Bet>_Y
      zA0WP@f=B6P=DlU!+nM+A{q_#v5IZ&s4DGR=^Qm|gPdqfwvoz+@Q1VdCCerZR^NXO}
      z99)Yq7@Qp)cba{Xq+J_DhW%yc7|JI~tMrt?YV8ggiv9RrR#0Uq<trUnSaDH;%TRCm
      znI9erJ?24blpgo8nVPS(yqQ0Yq`4ELNHTbS9ExZtjLQ1o$6`8B2}8$U#^54YkHHDz
      zxe4W^%Jw^X{)5a7gL|d5H2p{<iA-$N85;loKr8-^hXyD<ogTy#9A!eAx-JS-0rs9(
      td4=;rWdW;%4l%4xl&vqUQSUBfs9`<VY~<)+lh`Azg)MBON-B%6`U47%asvPW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjR!rj5~Rw0bV|P(|EY6@-eQwNfF95b1pzmv&3sluaV~S)K$Bet@5(
      zAWo{_QF?hZZ+P>VH}7AsZvghNX`{f<8tIHr#DjR`p?R97F`tBzhiW>OhToj^f_9^S
      zCBmS8x_@-gIPV2EiVQpRY%!FMl~(BqgVo#`FciD-oh+k5oD3aUSah)fm!a15^ILc%
      z^oR$kQF_$LH>$qU@;bX8N^>iQk!0}vI26%97?tziVKE)6grV)vb6y^*!{7vQW<q(P
      za(8Ezd^f*^!M)U4nr<YLL?$+B4E2Bg$>Q&AsDq-?(?OL{(h{Lf><|U&0DIdjzrcB>
      pwtyu<hbpWOl&nuI6L)`PsA6TNS)HMWHL4zIEv#b$6;fG*m2Zf@Z({%e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-6r62h)5d5uT0Iwfs3I;}3qnQEqEw6`M0($*OS>g*$|e={UwINd_yhb=
      z;!9ibD80;kvper=zJETy032c0L4lz;)Kfkd&*Ftg=5>-Kd>lz0smVwh{&0B}9@o2f
      zA_}_~&C`?m?MS?dfdiZ2V3|UO;+fJaJ7=&Odp!oblMG}DW%`)+bYWrD!wNixY9q)u
      z;<3;}9%e@AVLLCX1WL>M=~G{tN70WZgC8W3h<n1QoG%{jY@||#R<O*5i__W+ZkS9>
      zB(GIIz@1ren6Ja&-DoXMCl+ZcQwLRs+P@>H#h-tufeaw`L6On1MM8&I3kAvmXWuV<
      sz<sB*fHgvwB5Vsq+r~O^Z!SXx8#B%341H`-^hs-B8#^eI$|5ZP0&Ayn<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-6r62h)5g?lw0bV|P(@tSDndojqEv_?M0(%GrQH%YWs`{hEKh<5e}F$q
      ze5n<W(#y<y%e=4I&#(6n0Q=Z-P-5tebj~N@Nj&q&yiBu%Pa?@9H62UC?=CLGgI51W
      zL}CB@@TAiUrI|{dIj|Xa7pY_@pDL}gGX|@@Jz%hV$%Cw*%HYhKy0Eb9VF?~Xqa74G
      z@mS~)4>P0ms9RLk1Eu9{{y3E8UJPT&;0H-0;(;)#$mfrCHdZOaaj?jWzsGeM+%U;a
      zB(GF4!JWCVSM0;!U282(FBWMkQwI%(=D#zj#h-;}f-Im905PL$%Y+VPM<`JQI6Hpj
      s4el$2CDaIAV%Q$ab`2|(dp|PNu{zVN&Ctg>u}@kH8`wmZR2E_N8z{(gqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-6r62h)5d5u+IlYZP(@s{7KDnRMX3-)i1faVOWhJTb(4txEKh<5e}F$q
      zd}#|FrI&eccISP~_s{1SfJ5v!C^2-#I_DGdB3^l9-lkc?Cz0flnm$Uy?=CLGqt@U?
      zMB(7Pb8_4YpL1cP1Dj!gnL>v0snRMtW3bx0Lk7E_Jje>F^fB-0!osSD6?hEwc2I1@
      zW1+`9%#70GUQtvFl$N*o(@2_oF^VOFA0&~8hr+0WFCOjeQKbysV3`dUr}Y@zFv(3M
      zuT(L>omp^Dti#}4Yb{Mb7HKL|2X%(#zayx{pMPkA3?TPGk<qbbLWfuvCCUJ2&#!#I
      reW$d9HA0sn>^jPJ1M9@SxePUI%ru)b^sz<JC#{8TG*Bg#MOgg>=QMI-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|_#risyNw7OFYT~rZ+PYM-5Yo$UIA*K6i9NH;yQYNYBXSotw_yK;D
      zcvHnLrJHl^9nO87`TTnS0C0d!3k8PLftvUu{=}dCNWYA;#2-b%kK}kLw10ou4i9Uc
      zTONg-i=)PIt*hlY7FX@ig2}KqPc1|7Oe&e3GZ^)q9)sCR9z+Q?gZ<amfq_LA3vd}K
      z^&sENkGUH7VWy=TH1oQ0AeFeAJobg|@_sBByda5q+~Zp2`R}8d4Q0yE2<BOGc3_ji
      z36qJA#I?+4I8!h7^NkqX8>NJ9#XL<#YN5hV{dWqrm>G#G$Oifb5Hq^BNN7=Zf&xW=
      wwd<AM;Ji{;z!ITD408)ba~sQ)yFW6Nu`<=HPSL{}u}4}1>)3!zDudAe1_TLp4*&oF
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|_#rj5~Rw7M=7tRfC-6`>+%Q7S|cQo5hUv7HhpWs>^%ELVaHKfsR?
      zZ)(M*xH;$E;oR4mkI%Pv0J~UsP+({d^n{PZgLvYRc^+p8A4QT!YCM#N-<+L?d-cwh
      zh{De4{!z2ueN66DI&@$&Z2zZ{p?Ivc%1#)p#%7PfZYQ_0gffFOYwE(nyoWh>4An-E
      z@5E!F2RzJ-(t}oBRSA@q*OU9cG+oh;C4(O%k%)W3s63xN+SyR042QvgR{S}x#o&g?
      z#6<E!<rCbg3p@Ef4Bn;I(zIidrZRO<WvKl*gIfGrh#JTO`T!6!y0%E@P<DU<MS!#A
      umtNt%P*}hMp-T*V14X-mMasQz87f$sYL=(yV};l!t%X&rp-d`^u>1u;s&nH2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^U2hUW6o%hnfmtY8MT=imi=ySDuq_|8iZN2Gfs`7PC0uy7Y)9C-?&7jo^<Q~q
      z;)VD2LjRHR?1D`rB+cH;b7peRJLf&K*^@ute*oA*og>7sF|a1ek@ivhr0CA)k!veQ
      zx=?guG!%~VdUsDPXIclEuC^MLohnC|A$@KIL-eU(8SXQNRJP-ZE2d@*6xDSMYfx|J
      zdJN&FeJEta7!s|6Mzcs46zPUIBrGKmL4qN>sCHh?Q(NvBmUuOJ-xp3->zjfh*|Bxa
      z>}ihS?PrH!cW8_mN}Y2poH1P|JJWf1s&j4_<i2U^?>fR_U~Pt#1#Rbgp0R75vFi-$
      z3o_<~JzsIvo;bRAX?T|6{&SSP4rpp^%Mwo0)W%~$mf~k0=?=qY5Qmw@p2{H6%8_QM
      z1go_seQ&7Ih97Wb7;1qOc1`>EtuY?bB>#mR>kQ>UDot(d))*o_Ir2eg@WP(~tsKRm
      zGuR($U$jG-!8G95WT*z}UKP$rSS|yfMI4o&U8o->nnT}7bQ*AMGi(RyqU#tVQ}~mJ
      zoyHuGgSzP++tUZ-vj}O>2S&dgAVg6FQCd0e_7V2aWBI~rQvQbcS3l(ft#L|)^b@jl
      zf{V0Yn<iozmuLsXa2ZLG@uDlZIul-*2|uT7s)w8}c)F?ob$@|NzkS`*H1AYbp6P~g
      zgX%-LiCe@sSR!Q!t909KitZBEi1i4TYmiCJQfSRif?OGJgZMJyAm#2WDtafkQ>
      FvA_NxV&(t<
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRkrj5~Rw0bV|P(@r@=&4evrBWe^5b1pzmv&3sluaV~S)K$Bet;h(
      zPO9KhdU-Q%c=MPypI`4E0NOZoP+~Zn>6|ablX&Kld0A!&Uqq5eYB`sN-(8NvPIG)C
      zqHsLuwmZ$iD0E;moUF6OP(D{$Wqk&#bu?kHhslGiph}z!U0B%kumO*u-U^Cacr5gc
      zhnZ1&)+;t@fzt9ef1FBlFQ&0%@Pi~0@kAI^@ZX`G%~i_K3D!BU2-Rb7!z4G6yi$d`
      zyGnjq+``~pYc0(%7HKL|2X%(Vzy4(L_ck;@QR(TR$|z}>&>_}Ei8{bJ_A762U#Tr&
      ni_oPCyN|Mcfo<a6j|?^JtTekT^sz_PC#{8j9H2@ni?I3)4nS?l
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r81%Lam}z^i0A5jd25p6UGFIib*vlHQblFfhBcIwyn{h<;lc@KfoVl
      zd<7DZhReJ+yYs&0`{(luKpTe+N(^Tco%5M^5wAQlZ}TkSvq<tt&8O1vhs&$5(;VK3
      zC>-{??M}0=^RY@D*bFD@6f%_0l~&mWgVj13G1!CTNmfv$k7Z967B)R>z+<Slf?^{c
      z3q9dsW|W@vilSPew7k!s$I?8CaV#19Ac;gg5=Iq#^=M~Pl`?dLbv9g`)?;wPBsY<~
      zR>c5!VZmv!4uf~AwKRiRq^Tqm>I{v4M^KAD|Ih##K<<Mgqhrg24zVsulmX7MU-^Lh
      qPH72Sgf2zcHz?afY!mmEGSslM(CjYI#~wwWv=;VpfGVjh!s;)g<8pog
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|_#rj5~Rw7M>IQAHeDC@w03ElPzbl}Ptv9NQ^zQYNX7&vGTW@B{oP
      z@ut3((#<*d4(GnkynnpD0cc{|L4lz?(lb60_u`R9=4qNGd=g0>sp(i6KIoo=t$P1l
      zL}CB9-E7snaq@7h(y;@ZVQ-OAhT@^pDm!AZ8aqP<yO-R^63PsvpRO(}EPGgj$53qq
      z`Bpp@dc?!bC_U=rWtBi_c`>`YmgY)a$CAMhl1RiuVN{-fKib(?r3?qbB0K(`*I{tO
      zWM(3Hs`3%;+=%^rAqMYEYiWA1NK=_Qs4~?49YQVsTtp3I0{sDq8J$}sbSP`1KoQ{V
      v`lT1R&lDE0Lg*619-wGnVwH05ONI*8=9=|6`q&`$No!#fTPTytA}oIbCU<oz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r63+rj5~Rw0bV|P(@r??5QGXQ7S|cA_cu|<I--4o3cqoKg*Ng!4L4G
      z#Ftd?D80<Qx6FGx^S-`6J^^&F=b*&Uo#+LhiD&V`Bl9}X5<ZJ0kJNlB4Zl6V2)nJ}
      zwTQyuS+CP=4Mdvt9M}wptIRP}PLx*JDTCGCA2Ha2<WW{pV<;CZU07K2P=?3QXa~6;
      z9t%C;VP=$`^z)f|ptQVMJdLHf6XRGi_(2khcqEL<``<@9o2r!II9SEtGFYF%4U>h5
      z<fY2@yG8z^+zo?wrL{DJSfr^;9W)r4|NcNL{*H$xC_bGY#1tGALWjB@N>l;PfnR-x
      r`$lC6>x3>b?0Zz~2W(L9EoG=<v(Ri6=wqAMC#{7Y?4m|0i?H?ss*!NH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRkrj5~Rw0bV|P(@r@=&2%TtyG92M0($@OS>g*$|e>4EKh<5KfsR?
      zCspt$y}X$>ym`!<&#(6n0B!7hC^4K&%!1FvlX&LRzRdHK&!pl~&!@`ryNf~GX%26M
      zjECplcBgqch&{LrN2_cxluxzM`5A-LIv6py{q#XqP$f==J{+tESVO>2Z$-r|JP~HX
      z<J@X9=@lEbNE>y#cpNKxFUE;t2%}VrWF)LE`0voor#fTkM5~-vgz7Q)ak{WlUFpKz
      zUnV~;Zea+njZwCrh%8f?hdM*!Uw^Xrdm9>{sPuGDWt6l`=n?CpL>=HAhLtz?uhf>X
      mLFiM3J4V@+*d!kO$WX)9QnS6p5Ia;u(mL419;&2r2&>;IC2ko2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r81%Lam}z^i0A5jd25p6UIb|24giQHQbl7fyKHd+hWvz<;lc@KfoVl
      zd<7DZhReJ+yYs&0`{(luKok283JfPBJ>wJcEM9nIUZ+{YCz0flnvSL6_ZOF8tKPd6
      zQP?|gH(T|av3L_h2R6geDuoQiQ>9gQ#$YuL`V4kA8OjpM^s(sa!os?THFylwMv!mB
      zW1&Yp%#6~bPF_?Al$Lk1r-3vNVh~FPKS&}G_k~e8Uq0H|Sfvc@V3iG*r*#<IFqxT1
      zUa5S5JGbCCUx&fF)>@iwEYeh_4yp{be@9S@KmSkz89?rXBBNuAgbuMb3X}oPp<nud
      r`%Y;A8-y-J*pDdMF*b>N3mGcdnrpV_=wpYXPg)DR*h86A7Ge1pc^`6_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-6r62h)5d5uT0Iwfs3I;c)=NduqEv_?M0(%GrQMQl$|e#0S)K$B{s4cJ
      z_);q#rI(ramU&;ZpI`4E0NU7hP+~Y4>zq%;lX&Kld6{PkpGJ~LYCe&M-(OyZo#x<H
      zMB(6~+wL?&Y35RA4s3>_RVo?EXG*K=oWW`x3>oZx@+d2)GC0eoE-b8jScAt<Zw19p
      zJQjM)!^|i>?iE$FKxuiG&qmTbh*2yV{2+-$JQPM1`SQ`uCMsn(4OUt4_qZN|8z#Al
      z<h3d$xC<AKi+vcp8?B}3$0AK->Y&ch_;&`i__GiVkOlMsAZB!Jnb4uEixNeEbLdyz
      s;J#8=!UmyB3_C;F&ap|k_aj3MTMNzh0)6Zd`=qt7i#=3HWf4}t0X7zNSO5S3
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%SyvQ6g|_#rj5~Re60&zR1t?(x~d3TlnPOVNcYn?v{T}wP7=|D{*x=gg&*KY
      zi8pP*rF3)dJu~ON&iBvf7l0P_9F!Q2M>^*d@g$ykWL~CO!Y7gBk(!RB;kV}(VY|`4
      z7E#zg>$KX9@G%!gI<OfImnmc@pD3-eQwFQKKVYzX$-S(gN+0u{E-b8iSb@i|(+rA@
      zcr5gYhnZ1&)Gdl?fzt9Oe;7)0Cx)?P@Pi~0@jw_=@WrE@jaACf36|M#aaxzb4U^nN
      z@=_H8+?fSO#X1b$mDbYqVv(jYb+E%w|91qn`122SkOAaAC^9;>Oz05nphOwq9Qc(F
      sxbKvfutw-og#C)L{f2eo-du(nHfEa58T#0w=#$pMHg-`Zl|@+n1@x?Q7XSbN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%SyvQ6g|_#risyNw7M>IQAHeDs0bB7Yo$UIA*K6i9NH-{DU($62lRVf2`>Bq
      zKT5o*Vwcj*Irk3dzRrApy?+2`VAn!{;b;`k_(VL2M;_{@X_oLwD0!%+W2yP=c{ga*
      zde<ThdS|Uhv)0#Y8p(@pV8LWKSf-Ytc%ovJoiZ5py#a&SN$z9`HiP}w)`5Xl7b|cX
      zDs?~Ki$@|J@gUPG9<}qjvae!!GrJ#3-50}1GI)LxifACT%JbhxGaIXv;n-hh$;E+f
      z1}8{nI+T|xpW)2CILtR<aIfN6>P{rmRHhax4Ap<9P>Y3;sDf;uZvZi)dy9k?Wi1pa
      x0<3+n^akgZ!UEO^9b%ZzD4H)=r`-LKp^S~WW^;}nwun8_8ra4TY*HD7_BRm&b;AGv
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g@*Lg<3_c=$eED8sh{aZZIZFG?-LlQo??yBMhl6nYKQ@LVv}Ti3>l#
      zk22mO#-(9%&b^a!UuQnQ-ah~|v2CHia4?E8J`wlgkq7!|n#Oz*NFJ!^SZaQKdgiz4
      zy-N}Jy_0scRqsE<w<;N1Fd6n1sbnY~sYs>A3`S#Tz+iUc8(Bh`!J0R<VPM(85*&tV
      z!^?N#p@>G@Pqm6hoxG~zsYqUBcSEWBVi-yW*NX!Y4un>DK7TaRu}T;Yy+v01J+8xG
      z`*EfNd9Lya_RNL-d>;nqB8sH$h9XI1Vxh`V`*#Ml__Gi-kOlMsAZB!Jk<g;7jRHl0
      wwd<DNV82pWzzU&F4D%U9^98GvJ3lg1ur|}I&(OsNu}fM5o7h5`R0d)B8%_9hmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^Z*S626vm$mg<BXpMTh^U4n@bGK?fU5#TXgRK*o$o2`_wCx+`?n7E5vJxAK*V
      zFZ=+0DC23V%OWI8-`wB1H|IR}Jm)t3{paT|097<OA`Dw2Yo?rNpS3TF?tGoNwsN8i
      zMK>m6;V5tS57b(&bEN5Nr&X`kI3$Mbg%u3(=Z0mtFBmfUo+qxDnl(~X*D<V7vs)N2
      zNNxLA$Vf1xI!CQ`nJy^P4M{|?l0pnAhWxVHMLADxwP#r3&Fte)IDKts3Wjvg)-`jW
      zIfl0n4kdSNOc^S@3oV>8-6T8nd3dS|ZW!dDY3m<)!eU@uhP5Sa7Y3fO8=kS744X?b
      z7KJ@uN!6Y?x_E7PmXiK+RJ;yoYF*0`PTSO`Q$d!J=O5`F!*&>lxz>To5T%tP%diu!
      z)|w5yp~hQ&z>#C9hf>%#?bG+hbWD@{7jkSe)IzDWwW(WYi239whMmDHe+IO2l*7*8
      zaIAgPj%fz-fMc6sH&pkka3;cX8F&zJ?1b$?{WQ}Y`cC5WfTO|C2-QX3F(#()Cy_Xd
      zIi7}f(?7N656XiGS<nYYza1b#Q4DcfIqeQ1`R9pZX+16fK=Qkva*5U?r9!GgmTI_6
      z`;B=bR&j-PKmu2hCK)ffhU<awS|I$AvZ)?&vE=Dy{?~1QOMAX<W}bJZD+js}+@ksj
      zZsQK|9acy=igmi}E=Bi=8^j01hr~z3$HY9bKr9irh!vtjtP*R)U1FWMM|?tjhQwbi
      C-e4#I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRkrisyNw0bV|P!(J%c&Z3mDhg4Al-{>-Nw>sJ*`%UBq-Rfp2S31%
      z5+_l-N-uBb4R0Rv=JV_Q13(YE4r&ZM(F;Bk58{!>=4oDJd=^U{tNBzKetSNQjyjju
      zA|9zkn$FoUa$qwYEV0B;KT%p0rwmqiZ_Hp1vOC#;OPu^XSXlM30-vGP4a-Y-Ds;l5
      z!YG~e%Z+BJw7gl|Pox=%Nh%qFFpEVx7Dko)cW4(=l{56hC9W$Y^%=Y<TbNj0sM6f4
      zVjq^LF!)zmOEXACp3B@pi=q9mJ%juAGqgcL>EWQtC}*9}A$E)!b%3)UG~VF7Qd`3s
      mp+^<=GwSvW)`|N+GBmMKX*MeiuthZ>t%Ysuz$KMM=zas4m~gNF
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-6r62h)5K^sT0Iwfs0uC?JyirPib52jrT1-I(k*dQHi_u3Qcr>he}F$q
      zd})hU>1E!V-FYALzJETy032c0L4~0c>w-_jlX&Kld70)ZpG1;JYC4vN-(OtzJFV+m
      z5e-x<P3v42Bb7O@84i}HW2l}gt@1MltGzd5uzTr)tih#^c}ou#R(-6%XK1v;avz=u
      z9rJ!}l#aV)Q9V>z-W87{X$E4HNQNLxBasY+Q6*nI+WA;z49DRT3oeXx8N7a4m`Gl!
      zvcEU;e^_qA;NNI1O)n8yCg}tXhUUK$7~H?(p$W22mj^{gR;z>#u@h7%1DyS!_5tsm
      p(hAlHJ&LejQMKQ&PTZf%P{+nhvpK^6TNDG*TG+-8TvAzt?k_HAb!Gqn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r81%(pp8U=$V8AYT`ztUN9aY8cnJ(fpA~yT9(u;*%m*3mM1?B{s4cJ
      z@fDS;;WG1PGjHE}^ZE7u0bmcC4oVCMv7YdexEGH+GEd_?<)cXQNR5Zm@ay(zcfWCd
      zDWaZ=rD?R2^x;-zLkBj)&K#W#<zuB)e!^fixB3irC%ussxD1uQPd!*z^sxY+q1FtG
      zop>U2%)7Z!I&Kwh)lg}9HMtu|(-VV4G6Z27iKH)#D)jH8oex#Ua1_q5;_SE<gV#+b
      zCX#2WnBYxQ*e&*9@GrEMrjv*)lbM4WL;c?w4DKvK)IkwY{vc*_Y?;s@b%+vGfU_M`
      tUf?}bS;7*bM-2NFW%~`wr2QWos#uwNR;L(XjW{5$g>`JeC6`6$egm@ocoF~r
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r63+risyNw0bV|P!(LN^i=U+Q52#GExm8!l5UBcvPnfh%ah<i(4!wE
      zzNF$+dYO5%%zOLheSN>Z1L$JUL4~0k>jj^QNAbiX^E}T}K8qxe)O;!pzdOGe9=ES<
      zL^M*dH0^=N@}2{m;c$gEhT5spDnDbeI{RY=dywACI$VZoInjfKH6K;@49!khY{L_w
      zV?NA{(s94&X@pA4+r`5~nvs|!k|7AwNF-xnRH1(#?R=^-hLdoG{g$!%4BjwZm`Gl#
      zV!T&|KPr}C@UOL&W{`+1lbM4iL+jrU7~H?hp#=(0X9qFGMvc%R)kB3Uz&Qx&ukc=|
      otYDqcBZmEfn*E6l(*Dwh1~yC2R*3<&i39Rl*ugGba#@7#4>rbgp#T5?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRkrisyNw0bV|P!(J%c&d1?RurNLDZOvwl5UBcvPnfh%ah>252*hn
      zPNH~~Uf#?b-aO{b^6UKrKo9#4Y79Kl3qBK1;+e<hWnN@_7E2zh`BWNye=&?sI@h-%
      z9;rl{&gC$2U^5)8u*6V5Q(6`03|9AG%wP|)2ibs2ocugkSog68pP|(a%S(7Fbi$*;
      zD4q1njb^B{yjwg@q#21xDj9+>i$yvXMwR?`XctqJGxWk0t}7$;8N4W4m{?w^(%h?J
      zAD5>v_%~WhGe||A%iKYWq5ZEtgZuY0v_V1X;h@SWXPwX?c8VHxfO8l$-r&7bTf+vS
      lM-}!Gb^8;W#Qh%`n%Jr|+Z6`bp&F3Z!Y=mUlFA}<zX7ysaRC4T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r81%(pp8U=$V8AYT`zsCyWP)Mq@Q55bjIalqGdbw#BIb%9Du)e}Gs0
      zJ;qlcUJaLdZ+7Q>%=`R#{{V1=T?ZwGR;;IdEFQ%ZkIeHVPx&~KJW`X9H2nVjqT6a*
      z-HNEEVrd#TBk>}J4s3>lCF&T;r%J2*jKON|^%?9=I+PW-^f7Pg!NRJK75EIbW?1aQ
      z6QN_?&5hD=yC|xLO3S<H!$6vz7$lM*2-8R;ePL9=7ms#6QW?W>xWs}BV{Hbnn@&w6
      zFICasoB2O1wqfwEwU(xnh%A$tgBnBq-w6!v-|<if*{92cA|tD1LWkH1N|XW4eo%RX
      r_eyCAYlI#}*k35y-&iN^&t<4$W2V`hVSp`)0ckC4V+Ss&EJF7e1pak_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r62h)5K^sT0Iwfs0uDsda8J^C<;-8l-{>-Nw>sJ*`%VM<w@}12lx&8
      zE8<J7UZt0rH_N<z@6G$y>l=U$b{$k0juSoO6Y(G(d2F7hMaCzw<guELrQx?{=h0E?
      z@>;|Ll}OWyq?t-xIItNGmS|+Co+zz~QwFQOH)OE;*`2JxWpEaMda$tSV+B4#qaBtT
      z@l@!9M}<*3>6KmeP-%HHyB|q25TjHw1Ys77bSR7}_2SVk#wus%hD&Vtds>gdi?W%C
      z<%KE-c=HGj%XJw1E3KvJry|c~?x4ZY{C5O{`<EY@pa3X*5Hq^9O6ZX4qCyqm><6_M
      rc+XT;utw++!~Q_k{=_<I|Hp<pHs+qqIR@Aw4#;a^8#{2xWf8jH!LD~e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%SyvQ6g|_#risyNw7M>IQ56gpT~%CI6on{4O83(^q*LOgP7=}2awWL%1N;yD
      z4Dlu{Zl#-Z@0mIGaqj2O`v-s{>{_TX^kP-`Q~t!C{Ybye^3<P3!jI%^BD8;Zei8OM
      zS2sKw%2?=5_*if)ESL-jOVlycPo<Li8H3T?8!?!J^j<Vz)5pA}0|TorR^T$Ux<R>*
      zpKulXVXmc$`(;rxkV@PZ4`ZQ+e4GddFGwSvjJTF1Up$)mL}m=f!4eBDjP)6uFfDW>
      zE@j!@sr(<7+c3D-N(ntkc$SIGLW`mO?*s<>?|5i~?9=5zk&)Fpp+)QjHOc^M-)p?V
      rd8M?5HA06X%rDf<Z>$q{=Q1?0QE4_S^sq(IBdvjL?7$|KL1_O1f7f;Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG5PjRkrisyNw0bV|P!(Jhiie5^YegZ7kkb1$F6m0#luau7S)K$Bet;jN
      ze;`h()T8wB-pul5=FRN;*XtXA18h5}Fmw_<<#*yiJo4B)O^S@)#gfNrGM0wloc5!`
      z*2R^G2P%=KH85(D%Cmmtz-HK6pp>C{th6dl7_9crkiqU{x3UJ8!JT*YU}4$E5`2b6
      zJ1kxCROp09g;6@`mUZ<|X?Z=pA4xM1qf{~kVHS&YD2yue-$%O`tDNB|T)^YsdR+!D
      z%BCik=c*jx%?`0&8e;G-wU(xriaeLOg9bzM-yyW+{EBFTjzC`kVn*9m2_4Ehs89qr
      vyFu**-ZO<2tPpy{us=|>Ke0-=|06>kYctLI3<GQs2c)&Ii7mLKvIyO8piy|M
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r81%(pp8U=$V8AYT`x>CyWP)Mw4nxAl#R_mL+9Nw#AR1<;lc@Kfphv
      zC*v!kSHorI&1T-d_vZcU^$oxQwjGohj$%FKBXKVtd1Rg@dCEtT<dK>TrQtWHXWhfb
      z#g&M9Dwd|vdr0q8HgsS!>@Cp9P(D^#<tGeQbEnT>chXx~fy>~`|MXyC*~b!mhFUW$
      zHsXoUG4JL^>9}2VRYRra^>jRtrY8o8WC+4E5=mbeRp|Mnoex#U&<YpW@b|PfgV#-`
      zCX(l>7~st!*e}*$@GrHNrjv*)lbM4WL;c?o4DMfksDlEa@IlPz)-s_(s)Z6&fU_G^
      tUf?}bS;7jTM-2M|W&0DWr2QWos#u$O)@K-CgE%0sg-vY1C6`6$egoNlcYgo?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^-Ez`U6ouD;z=0I4qQ$?eMbYvjjnLvBjw401OsV4-h70cw=@C+6f&r}hCVHXI
      z;FU98_y9hX<4%Irk<N5-bG~&ld#~(uP9{Hpeg6TVf;vZpp)|0k+MakT-f4#Wel&5k
      zJws}SIT}h=d$!rqtGTTmVRX%bbU74;?2!!&@%yH2P9891@*U4xvxGg+^oeWQgL=Er
      zV^EsTu1p}wpl<Cnn&oc$N$a_aC>BzPA;pkCtaIMX^IGhfwtPB$-Is1x^exGd?l^|9
      zdcrlm{p_JK8Jc5;a_7hZe-qa!OK=vR>0A_sMBj3ZR~>0Hur|ZeAyXH6Uam7<uColQ
      zhg8fPd$CmAnYxC2Y<h`Q|0>qJ2^dms+m>$A663L?M9F_H=n{h#B44i2(ix((a%35*
      zp<3-}-#gHF!xtPmhK(==o0hZx(i{)z6#qz$Rfb9!lcpF?Y78--9L13NANl!d<tT^D
      zzdaNm#4hCz1jkK=^)RFB(j7^A!oX*WV?E>y`kSe6>GOyOg5wrLEzAsE*Bn{WKZWFh
      z=C~U&N_XE0Zj#RwvY_vZ{xd*?R19%iIqkNg_|KEY(sDZS4eD3F<QT0gl|uQ5gz^c;
      zX}=N_Vi6~32PAP4X|nOuDV&}eFU^b}QZ@A>Q7n1Bng4x1gDYQr-%L<<;G3BFMsSY$
      zBRG!>#1~i~=O~uxZ5K&hCaw^#5U&!i5w8>T!~(HIyg^(eYQze$O57mUh_{J%i1(2E
      E4GCLlZU6uP
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r4waLM@<G^i0A5J-AWB31gxJqe(R;HF#d?2G-Oq*%qTe%ae%*e}F&A
      z_=;XU87?z#HuFCB^XvTszyWq#ln6&tvk(vRNj{6%zRdGfJj6=GdOlND+?<V~!|uhE
      zjPGXJCi65+x~HSaMVTO0Oe9o~wbA(r!RhUe3FTpWuWG2X=9(THtof+GC$xKEF_B25
      znTja4+Dr#UMk~}tT`wLd%HGOJq6k5l#xfa8s|)@6Sk7lUBlN=+CoEPQ5WFZ|*jSzG
      zqJg(O!G19g!M`*{*<m8HOl2<GgwDS$2#r7YLkGMte*l<?_pLIztokT%1h{)a?G4^5
      phb1%^J!Vvzs8(8Nvi5&$XkmTn*;rzLP3C~T4z{q3I=dXk`ZpxVcBTLT
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG5PjREO&e3I(OR#C9;ycy1x2U`S`>vSLZzO!aY?tNo3cqnKg*Ng!4L4G
      z#7WzWC+X$QyxliDGjG3tKED7QqUE5(a1!a9PsEFO<)L|-WeJ~zl80(GmWDrEUJZ^q
      zH+Ld@8Y>gek|ge2=zOG72Q~v=v6i87rnJh=8LaN!kiqUJ&$5adT`Zn;VPVZf86HEk
      z8x(W#Sm=lkGNW|VD~cL{((*o^j-+`MqgXQdK@y61D2yuj^3cx4DrGngRvdD<V2{Ba
      zB)JLYwJLhJb1x2xi5R?Ft)=P5B26V((PU`<+l8V2$4In6HqcLiBBPZngbuM|lqdt7
      veZTqv_np!b>Vz&ulv}8jcd<^~TgcGB#$2;GM;}`hebQRk#tv$vvIuLx{^NUG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-5PjRUO&e3I(dyMg57mQ<f*@8rv?vNugi1Yc<JxRlvt^U|@v}S$9{d6R
      zC~;Chz?1ayW@dRa^XBdQ$Lkw_9jv=3Fzk<#DIbe_@yH|lG|3DfN0LWs5=+Z3yT|?A
      z*6F#3u485O#2DS`YV&Zb(%40jfzR2^P(D<N%8nSE_U3@0*fTe>f+|DhXRrqc3qDHl
      z85->{*T%I-M!cU{m5e%hTRl{XyqMk%rM(hEEg6E)L_!aQReAmWSj=LTG8}|+%KSaD
      z!{GJJ)JF0|<y*X&Bip$q2LCKcr0r>urZRQWU}*lkhoSbzPBcMQ(0_m;qod1&E>(Ld
      zPzJbLLFEPBGo=O82tA4@ZJ=CgVv%b9i-tOuW}M|223VmO5ZA#f)=(vuLs<O;t<!!8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeHq3blw<(K87L;NS)m;sN79qS2%plNvlPbpuQ4mTZgB&+=sA!4L4G
      zjML)9li~7aX7gs|&D*c<k52#t9J;753}<@97vfpG@YuXA^OP@Q$z!#gOT+KZFQVhl
      z)s2WB=E@|?G)+2Vk>x`dHUr<Vm7#j7w93yItZr|@V2{&BSwo${DW`g{u;s&n&(P|I
      zg({v1J>yYsl%9=>o@S`Dyj?v_rMVZ=L^1?n8jEBij4JBiM?0UZjNv5QP~-Z%5rY?{
      zD-+90RjlwzBaR9|4F0v&(u@<4WioToVrc)ngrV`rMYKUC&^Lf0osTM^OVtn+$^f??
      u)ZXE}QCdNR(4z>ahpN-ZHr4)`h9-7O&TfeT_9zC#wXlx^)QM#g)_(x)J9(D?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%}&BV7@Vb)LM@_I^i0A5J-89V3FAS;Xi|+y4W5^}fhBd@Y+Iv`<;lc@58y)?
      zzoHjUhRe)1oB4kC^XvTsz%lk6R2T+xUGSxN63;v`FKM3eWh8l|(uFkq_G}XNyO-A@
      zx?d<0r%4ib&nKaSDg$3Lk)d{?w8~Eztlq(tp*l_;WE~CCRMUlp4G%UvhITI~C*rZt
      za~|eK>G`P4Xa!2ko8oaM&7GLVlEDv>NW@cNRH=U-tNB7@48vf}3Cq<+3~rbdCXyGb
      zY~Zd=a8!=N;9Y4g%{UfWCNl?ZhR(k&7@B|XhYo0A`T!6!+P6mNkQ$;w5#Sv9^*6Y$
      p6jsnAbctd2QL_iwB<=m!(8AWrv%NweJH$SDE$m_s4RTq8jc-5WcJ}}P
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r80%p%&39dM4q39^7c6F)8sN(P*s31cT?LZ0M4@CEM1h|H_kz2Y-M+
      z%J>RgJQ*%CZ+7SH``GWF&o2On*tJn&IGO02PsOu%;h}k*WeJ~#l80&*NyG2YF9t`Q
      zt6LF1M#{vqB#ApWk$4kh8)XK*VlG3qr?kq>7_9EzkfGd9#<GSwT`Zn;U}4Qg1ujFY
      z8x(!<Sm+5KWJc+UUnDgHrR81zG?L~)jAF^)1xYC4p)jh@%foUOsg&U~Sh30FfIfpW
      zNOBX(OI6fx=DRp3I%06IwU(wIi!_y~jTS@u-zp4^KZ`^gv<CVK5HlLNN@$ZhMu{T8
      v-uG%BaNa2_p+V>nqvE4l>0zC;yRe~&jk#xYjvls%J@Q)E#t!P_vIy(H)De4k
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG5PjRUO%qeA(dxO-L-pXIAR-kH)`~(DAyUuVxHMbhCTvpC&+;UA@B{oP
      zaZ>BSll1atW_dI7=I!U#`v-u1Y}=?X98L6$PsNjX=8<{Hij+?y$s?7;((v1}VR+EJ
      zycW@YtW1)nY0?d)$)ql9R2le^%?$MurB!jtVD)xJ4AnvUARBNP?8RIc7FIme;4!p&
      zL8*)<LQi;D7^Nruva1y+EpKLzV`=WhIFSr~kVYaI38Tt-@mMWll`|X%ORD@mvCrU!
      z>C8m(LX}J0xgC3@BnIzFYiS0F$a9(7Xft&FUBl4)<0U#EBj__gk<ra{LYt~XR44=N
      vUBB@L_m$ELnuIPz)Xq__4Y5kK_d`PqYje)}9DQt1^oeU>6I*bIWf3~xsP=s}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r80%p%&39dM4q39^7c6F~N9{Xf!Frqz2DR-N2Hvt=rb<&+=sA!5`p{
      zGQI*APln6Po85W)KKA?P^9#T+_HC3H&L%qNGw~u`d1&5}EatON@=zsHY54usb#T(T
      z9f<I8s!Wu`anuQ(b77>7G6P>Tm!W#0w8}0StnR^xq1=z3WDRw?SU&5(!iI|qT!vQH
      zFZ$w<&=VeHM(IhfNNV~@%V9nrOY<Pck!0}vI26%H7**)iVL6+sl;PZ8v&q$fJq9O;
      za}&xNRn%}6yErO3VsP)YmZl$xG?l517DM~rDh!Q3i$oi=2KosQGa9){Xp=fci6X#0
      v^lBe)-YG1hLFf>pGC;L5#3pHXX+slR3(xifJ?s#B<h8JiJ=Do%5!QbJQOSGt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!A`<J5PeI5(pp5T=$V8AdT^tO2ZQk-Vl=77qy)}O-N2HvZMMbeXL&O5;0O3o
      z#wi+&C&T5<%;wF^o44;DuWtYjv1_Bma5B*gJ`)e(kw@k!%@aP0B#%@&m4@G)_rs(1
      z)s2WoQ)S{bN#gdvs5F)r{m@34fv?!kP(4*z<!205XK%<*?j`rK28Y4<ne4*CnuiKJ
      zhGr)y)bUv82@i9l^rTz#H3FsO?P5NbW+29~WblI|67f(NRn*^)<$S6#hHkK;&fhb;
      z3~rb#Oe8N=vBq7Ra!`n3@UFF%rWcDWlbMYsL+jr~4D~;bq6IR8z62B*U0o%#sX9i9
      yGQi&VYcFu0DJ`K+=u$*wh-zhob*jBD8XDMGayFOfV~e6sTnpRSfkP~d(D?+XO@5&O
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5PeI5Lam}z^i0A5J-E@t7=!U3(P&bQ2?US2)Riu&yJTDZ_*tGzJop3r
      zQN}6a!IR<gW@htd=FQvBulElCJJ@hhVAvn(2_K0^@ysLpGR_PiMUqEq981fuj!(L~
      z&9e&;UB}8MV`GwL@5$V&G<H#B;Bz)Jln<3w*%5=&+UzqFJLXPSP-Spub3Hg%@KJ)#
      zP;Z5~GM)%M<lW3FJ#6P)wNPn!Ie8dJ+Y^ICG6bQCMA8>l<@M~bn8hk(I0)xd`FmoU
      z!RwldjpV7ymv~b<wsT1g{<+rDb`p`MGIddBX#Bf|VeyZbXn>5M&j3Y6H<t-rs`gNz
      y3~;xC${V~_N()#d^eCcqgL3H>OH}(mG}N#><*ZCGz$(RnxDM8^jw-Pn!s<7{4t;e1
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1TW=Ck6ouE}c7W1W(c-PzqG-9;j<nK?7$e0RNT;?DLKEMH=@F)mGdK)Z{Z~Gj
      z_}~xlM;Z5AY+@m4hL`iLGueA_);=fv{`2z}fHJBaAqJ^ujHFZLv+_k!t*-;ylulJ4
      zsoJ0~Ea_->ueF|Q94P8>U$gXqY3dvihU}$H46)~$q1i7OGI`nYmvqJGNiEybj9#@_
      z=rBa;=81?S!7$f2sMS}G8_l=!(cz(-L>MzEM3G|1PwE~wbo}OJ%@A)!AG^Y8D_vbM
      zq-9f8^p0X_&ffnRvHRMPp)6k-;{W7T%H++(F&>M=5bx@y`au>318XuYOgMR=<7B(x
      zWV^|*GNEGJ*ol^GnIlUTuQexC(!G{7=L8I?reO%Ht}DZ#pj5LLF6$n{M!=l8+Fpwx
      zOe;s0VKZ>MG3q)4j@4Yjkz?2nYO<@FXYaLPpQidxa;z{^f*RG8p<Q8!y5uNMF^^a7
      zJZR-uonjvQedU{SLi6wh#}kIFpfOs)8VJK?;J)J6nBpw0Pb0;mClvDp$0oy0(6h8H
      zZJ-NxDv5K=u`@-i_L=G3GWQj-ptnc=Pe6!N6fs&k?e-CIzbA^N#dQ1!lHc8uSz41+
      ziYUF5Xb5w(U-k+yk1MnT61a*q**NMNuKUIdzVS<{rhdeWCC4{&(KiMj<*skWt2_6N
      z`@SLEqW%zW;|}p1X2>~=Mf$b7q?U-w#QVet#D~O3#5}P;ED;|Q*N76aOk5{EC02-A
      K#BJg;B>n;w(|(Wu
      
      literal 0
      HcmV?d00001
      
      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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
      V8>D|BeUtQWr2ioOC+WXY^FPnTyC(nu
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!AiqG5QhIrW0S^cV+3Ep)`N?nc&G?c5QN~tNblQZNjJnzSQF95@+5fh0emQN
      zqCND~%l!M#&J5qo_s{1SfHNF=a0thR=|m}C<g3W+ThrE}%#_G<vr<+(=+fj;RcWI=
      zxP<Ap;`v|CO)i^OS;Fv28{J+L29xQ6;Lht@`4|y=yPg_gfZY%~2nk1%q=yidG=)f8
      zt4%Sx>-)xuHtN26S}OY}mz5&KNu9}RA+7HHI_b76{mg*LHo}c{W`rQEJDaIn-4Bg6
      z{!V)mJ`khxp}<NEIppZEyW}jfj!t4fiarp$vvIJ;F<=GG;o}1P{0jdIF-F9WaKO<)
      F{0oJ@UKIcU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrp9P$#9xrqgNtBKErJw!3SJ_;Z__2+5;tMH5&bMrf(Jjqj}j+V
      z=&hGG@9n-B-pu#U=NEumTm<k4SEXsiM!v{bQP{V})nZd9QRrr^tjLvZlyP~Z1Nel|
      zA@A(3<zXcor!1jA)keE}LN6UH2>z^IsR51&!FD$^L=Ptsjt~(p)2xdiDrriQJF87O
      z>AK=f8}-;eFO_|g%SsWFtS)4=kXCp4|Iv4Ay(OgCp?v#YCWJ7rTU)5P?q<gOubVCg
      z--cuJjlh*SVV^NzHHOCw2(FXC2f}xz9!?oUuD~4|$2ema?QDoKWJNe<^pN}lle1iY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%zrpDN6#7_`g4=#c|RRk$`3SJ_;Z?{XjC2rz25&bMrf(Jjqj}m9A
      z^w`Ur_jcY4Z|D2x^9#TgP9g+^v%<DwC12#LQ0}d6DzQ>pC{r)B6Zvy1oz80$Ata1;
      zS*M$cyM?S9?Fii)V@-2Q=nO|QLO87!x`%yktT#Jjba0Sh4+-IPnE3#rl(rCg<BTmP
      zerS*xs~_5@xpt3oUTQ*`RZ5mK>5SL^k72VkYr=W9E8g}e6GEI<tyB8m_?7)_=hBDZ
      zyKrW{54aNN>oP{H#t4`J(M8((K>W@$z#(JI6}V>O7=32RpA7>Xu_7EZ21tJaS+rWZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O;5r=6r2U5wHCpu2|oc$bVDNXfH5I{B*ex`37(f_Qx;3RS&GWf@?_${AK;HN
      zzA85fmznooX5YS<ukVjf0394VC^7IjUGkZD7Oz~|mB}+clZs1irpof6)h1Clx6!>?
      zJz8NRqa9QjF19^dYmH9heiCO^=hJzAB22C<L-kUpI=^Blx7s6y%5^qTE_NCGr<c?G
      z_q&N&xY#3w97_*n)O_q<pP}6fi#vHD(wIl2P2=8R@PAh9t%o{Q56k&j*`XLGiXjLy
      zDUy+}y6D%#N<P&KhEBN6&xR0s3|^EityFiqSl-;AIV+B(n8^sm4Pr(<s)P=8J*pXT
      o?Ids;Zlf7^@9^JfP(q#1BL>dlql*Sr{+}2J2&iK?BrM_R2g#Xs-2eap
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!A`<J6r5Kog<3^x{D;E9jftEvCIt1=cq!q&w41V|Zkwew`dOSzJoo{A6!8^3
      zaN;s=W_RA(+4r;i`UY@|D-RAK%1tBI@=d;r)P7WTDb}eHsjgPain-NQp&p--q|zQ-
      z!tj`Twr`qdvZ|FObnms%^#h?34HpD=R%WV)KA~Ul$7X8dql41`CkP1FQQXE5g*3TH
      z*kbZY+c$`{Q7_HwQrWp&7K#wYWh#q>w7S**hi<*n8^S0)mhkXD6M~<VjZM|FZl_)z
      zUf#4(ct;$bcLlD*DZ7jwt1%pAfHw+zpYXR#9h@=xT!A|_j&aT`__JYv3s(FFql54l
      D2=QK$
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Pg%zrp9PA;$M)|gNtBK6+sG~f|r!ux9OT}iAmUQ{P<Zt2_F0b{wV3h
      z3cdC6=DpoF!<+f}{rU!QgL4lK;WDpUv6Qd!U1a8?v9(xcN@Thzlo8Xn`dP1vw9y`1
      z!f>B=^4IdPkd0M_(7)4_w)ccyJe(2SNxe`591=Xc9qOZpqW}j82p4hEMG&Q|a*<l2
      zt9;ybg^8}zQ~NSkW-8~UB1B1@$#N!*?)3koYYV+1#L2#VyIsZvKdoDnsYl(-40m7G
      zT@1br$L1S>D{;a;qsM9lhZ*2qMT1ZHYo-p48GWw6EgMHTVHRv{2yx1aaK`8$+5nyt
      BT#5hy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au};G<6g;P)DIrh@Vq#(|444c|MMww<gos#zx;x=1xTH?yIu-dWCL{(vfR94F
      z024w;Ecfp0clN#a_Wtq;Ai;J3Pe7KYkyEu)kFv1s+|_bgkbIz4o|z`si)(5x$&gj9
      zwpX)x6~O<?lu=>H{WJ;mPqfkQRG>H7p9uKp^&Jhc$`|VMn-D#$MOZ;3uro@#K(bP%
      zl$o>Il;h4cOtqn#W|ot^Re41MaatFunkcI~{e9@Wd%X}y(tl1i76`Mtu?1b|?(yB<
      z7jW2R!yb4PUL&{)j@@SrSRKP-1_TH3;2Gf)QxEHmAy?pt8xw3Wi@w@0#3n0&Ek+OV
      E2j6CDMF0Q*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7i)jmBz=KOo*zw2Kr^7C{OHF?gx;zF8l-HO-doM$Bh<5<K_;ew6qk
      z9?fOu&0`)jysz(%PXOl_CWr{*$FfpO{i0u$@%1`5wKS}rxmMR@mD|mnjpuO7^-P=K
      ze0{T87YSm*S?l3{CxqU_mNr}wI!DI~LOgX3oT7v6KDy`;2AM7Su3F{n?{!`<VLx+5
      z7YpreqyLt1c(NP9Mb;YM-use}&RyjV&ukNL&~6<yFTo+Ct~?9E)YKGAM2&wn&^>v_
      e)|)IMq=Kn1aEcfs?8wv?o0x=mg$a9t5e7eFRb&MK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#u};G<6g;P)DIrh@Vq{<|444Qp6)}JWLPRV<-JM`km(;FY2gqkJAu;d)d=%nE
      zbVAB<@6Nij@A>=Z^9w+N-2fg#QtFz|#EW?2g>4qj@L3`GvuyZfWnQ1ua(XA58>yug
      z&e+@eq6*+M@XlB!3oG6K5JUf5Y2_{$dZWV$gMVcn<pAppgM9T+h#oc~tRZ698>MY2
      zUI|_D%vq(&aT^<^O3V9to=f{6@=7wqsVPJ?5mvQ&b?CdPS~8rboi)3*8#9ENscj*z
      zReSw@m+`pmhXc?;^qru|sCu6;Aaw?h7!VxAgAau7L_KU0hBSc_GA7s}7X8^U#5O60
      I9YPQBFVmfEy#N3J
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-K}rKb5Uk#8vbshS{6TIinn6T7C>|67;^HNe`($j*#LZ5a%trTFo&*m*z(<L_
      z;?d+%)zwr}MSp#Nd;&N|H$g-=eJV;d)l2=VjIZXwsi|T0%$2&z-OHn0OonVchg+@&
      z+63pTo7p^15EG78p8j`2XkFOChD$<YZ+}FHuiXQuXkfFACR&6}W(&S6XJhvFdYm(1
      zH*-ekBkgUi|CVu>*ahJ%TN%Hu`8gpSy3!jS*gB%O&fKpbgC3-^ybQurR~1Y|o&0K`
      idGL;nH(5kT1yf<*5Hb4LlBq2=F$r%A6Lth6bbbKZJ7%8%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#u};G<6g;PCQ$nB+#KOi_80vQDRK!vVgos#zy1T{-E~!(wPDMV835kIZ;G+=F
      zf(f<Dy?fT3edn+5k52$2oJ0s128F5lLTtn<m$q5CiZ7(%FRI~Fv3BEo)!ZthtZ<dR
      zTdv9oAp_s($(6Lq{WmdmuC&qanxWOdm@$OY>PdC6$IzDkl^8ATCuk#KIPGUX4lji%
      zc<!t=#l(AhnKtU7Ue1+$6!TIsq**0JITKd<{qHbz&w9-;%ywqn+H1lP=T&W`y3zjb
      zv#qLuPlj_)5BfsTqz32^MzoC)5CfviwEK?ujc9-a!k8v7B;g2$#FAebdN`tu;g~Q$
      F`UAUDXSo0X
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%Sr=55Uk#8vbshiet_UjMKkz1C3p!0B#W0w?vt_6iJP4;nU(Bkc@jMM0e+O&
      zD<0iTRaaBpUG&%Y$0vXb>?eo_mrq5h7W!3hl=0OnIJGdWUbs>ty$&~1HlD+TtFbo0
      z`RZ=D$`izd^TxUVMhKmuEo`_Yw2n_^gm~m0IYkTGU9{05^fFuUeYu>of6()s2?v=o
      zI-hB8YyH=Z!?RrzuCvDTjj;!Wbm~fPcx>zahmFpD{SO>L!pf&0Om#@XMAX%<2HL0Z
      f*m{#jgj6sU2F?(pj~%JHViS|_t}tOwFhcJKGNWP~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~8B16g|@xwk!)s6{vvn;a5wM6#)^7SPN(x8)IBk13WF;u?%c?o876Q{tBP@
      z6`B|!V)Whr;+xOnozh?;@G>)Z?$^0z&iwrI^*exRtZIlbOjf+QxnsYx_e>{f)TD3j
      zINaRj4RdwPdd?fqxW@xq`az*ub2Y>m%nLIt?gU)^pTy9<Bs?LP8KS9li6OS)mw6l=
      zWS4oUBZ^J~Z7>-6Qbh&DbZxI<S~3t`C95)eio)YB>eVeCytcPo&X6ejj_sE0Kq$L)
      z8I#*0WSA;mi13`5vJAc4t5Ad1sGJ617)+&`SWam<9WL7ehARg8&`-0d$r#v%h9twt
      zKlBCH<rUktq%HZ{p2KTW_+A`?G>qrVQI#faSG?zC9Rui8HLn@CjuD1#ryc~{Q$$)6
      zK-CM%J!W7WH;B!^_R4;hVfciskW;*n4U-Vo1OBS%&FZ*?I~s1&Bu!A~Mj1#U&CucT
      zJ(+JvPUN+vHuLF{jtuT<m}D3_!=)o?+dNS6Ffav^0EzGow|85)8!C6&z<uS?MQHJ=
      zP;PZSYhVr!7!13-QxD}!dOk^9w^PqTx}@P@i^5aV!y0$gTqm-!$Wlx!8pvXaaNBOh
      zrxM#lM&hh;bj)K}DeE!A0JS(9p|lm<s=sB3Y~~5A<<|p;KNU)0$#b+arKrRhL5R{9
      z0wQ#3Lp!Y+S#wPr&?XY`1L&Wc0bR7}<N#(Va1PycGAMz<(1S~~$Iy#JtHcMgRBUeI
      zGcNC=>j(quiK_<~`au`N-{M8uMl)Y<GjoWE{o~)X-P=F@m5Cl=<_Poa8S*b2;L%5_
      y5rOJGjySCg)NPUaWRb)&Mv<e(SfbZ^f*ItSnEFrpwlF107&-Ei_Q<blt^5Vr?+0T5
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKs+fvg|6o&sTfk3DS%2^SMsPq6vp&kpU97QVQOc@;XDuz8ZQc@;K(LRbV;oyxO
      zWyZs;59Rppv<4LFO?LLqI{fQfYv<>$FJA%N#1kE-1a1`FiuuOcv)-AuSKSTD<{Mj@
      z+p=mdEEWpV_GGXst4o$0l)dW8&TdJECNR;|>m(O}wrR(8f?0u<WNJe|n=fxk11;!?
      zp%rZcXY-CL*D5=&q_=LpDoKHOzHD2i4a;-XzHz7puN_}tGT$_P6VW+=9_bdDWLdh>
      zvjSPyDR4WPSJj)ov@4zyR84<Z+9pdbaLuK{j}e-vIL0#;-`R3EaLTT)BQB6WA<T-q
      zXO*0-MzqL5M~}eJU(my>6yGq_(I;@}xJ4vDsWZ@xffxpHo`8#CpNKY@dO6pQA);nD
      z1HBklj4uiFCtuFhYb{xB(JTa>;}&zN4b_K{7|!4<y_F7X`yUg5bAM2((NIbRmg^W#
      zAax|=e97|t2Gb_M4U8eBBgv5nd4^I$zZlZUFt_7B@_nc1s<Bw|$~)|AqlJgIxzvkJ
      zOu*D}U7+tTj1j>YZYXdD!7aKr=W$E%oK&!;1X>9zwb71S0)w{Yjs*$c1ddIDP!rp-
      znoyt&bm5M2xGT_mRKyXsUAP}Z4$}f1>I%$T6`#{Re$;yXwO4+t%K3vPEadQ1HE1@5
      zE4ZrTp}<H8CYsm78H?tNy{ANhf#%cOb*wFPa<(aL^q=0J5TDbpIon|!{}?MO=Ann0
      zjYyTcGlg=+v*nVbZun4>yLw&KhY?T^|5M<T?LZr!I(JiC1=rSe4ecNKata2Y23Oz~
      zG~7Wa-(qzmuBW-v)O6G0T=*{7HWlgx&z0A3<_Egpqvrs<o0;$E{)GPcg&HpIr!zGq
      z_GwYiaV8WrP2U*|U^dLtSC7!h!&tbCQRdcEyN+f2zzD63mmQBY%eD6yJ3#kl<}=0x
      zYPh+-c7U$Uc(#Vy_q9Q7;uG#YAJo33GvhVP>@#Wy`p}OD4L#Sm2Nw8T=IIJGtzrmy
      zYFMR)r@Sv~yadleo!NTcNM{z0Fc&h)Qt><^4)9m8fJG`CCCw$q)cE~zSpCXxWFC$2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TT|0e5dIDX0-*veP(TriDD(nEq<~UD1qxOwI#UJ*cnay65-2IADbk<9pK$Pn
      zjxyur)gR@!Cn@FD`f_gB{r1~$ck}1(_a6Wz@K#10!(_%RsQcQncB1N5@yO1p`#M(-
      zcu`%Br+AvDxNdQKjTcum-OgFX#Nkm^hQu&d)3KThL*txb8ukK1eK54iAT8z6TtPjW
      zJ!n89LtD}?`Fi1Sms=a!Zk99nk~v+=Zfcex?&U|x-ZSzHQ^}g)Yx9mVbaFF8aaOs>
      zEzK@x$1ojC3Juge*9(?m7uEa`*Hy|oMSCpde5?pm$&c`q_=(PsY$IppW%wAvRbUe4
      zv6eN`WweTej82Au8`3*bUH)Zj8UCt96%K-+f)4a}(2M&dbH=F_2^<XVEH<H!o?Ju)
      zUFa8L4={8GcNX1@vznPvQ?_N8nOJC36lBnYR<sd-V8hV&KV=x&F9j7nBFHeTx?)z*
      z>srXAtd`H0m8~JWf)Rvd1SyE4szdet?mpLT55kC0X8cn@%ThaZmFsuSBo^9k!5CB-
      z;|%^AGFQa&;Hl6|A<g2ZP7RqBQa%$RO)@l)NTJOpOpyq>W{%ha8U<>afU9TVfENQo
      zBL!Z}2%qP-h+LD^i&+n1m}6)bW3Z$Z^3>s@*J*F;S-H=m(=SzVlDT>nwOR1sF`meH
      z#V~lY)2^DV(qJ@dM3JGVcKdqoRD_(21EMx`tL#<qsr@D6z{%s5u~0?5@(^uNVI_tp
      zl`B{}Uopg#57eI5agibhL7eE11zM>nXrxu9+a&Fb_J(i?O<(Cy2ZdIJc3=t;X3#<>
      zk84ExJ-SJvx5=X2IWwx9fZC>a;ng4cjgC`vUZ86$@(Ug3==MD*;o(_0QbOR2EZi8a
      z4xu^noktHAoH%|Lp&W;>@CZW`TM`w!6Y&cnG!R~N)JIW<Pcd?Vj;+Wyj53rkakhQ|
      z@0KrG!t|`vD~+Aw#m8RhXE-ui!u%PbHp7o@ye#t>raQ1q>ngn_h|?PSkR%Rk#Nizc
      u%Q}t12Zv|Wja%Uv#cM1&8byim5+U}`k75~dVmL%<t`Md~-`_adC;kEMQ<3uk
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au};G<6g;P)DIrh@Vq#(|444c|MJz}l)QBahyPH0xZd0c+4kG*&6A}X-z(*lo
      zfC(WamV0;hJNw>ydw+QakYG1}Cm;(`%elH&4>GsS%2jfnlUz_EM>F-PrXy;u$dFa8
      zve(O18NmO`lu>TU{WJ-5&$Q9*T%a>J91Hjt)s%Wz=ZnSXHz7LMh_Hr8U~iDNfn=#n
      zAv0&SDTb}7pK3!l^>RY?R!vG0h|?-p<ycwW>hD9}&Gel>lKykDp+J~bwaw{Lw~z1t
      zzJTL48xFvu@EXBYaO^H)!0HqpGaxvMd(Q};n0nY`47ma)+?ZgCS@hM0KDJp2>@a$W
      FKLD#7Y6$=U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#K}rKb5Uk#8vbshS{D62<(F_ti8N3Jq$>JrF`()CXiJP4;&Wh`=JP96rfR76H
      zibwZS)zwr}MSpKUzW`jKpCBR(AB$40^oxE~##fu*)XK1W;z~`H`b{sUY&?evS7U90
      z^VQvYlP8D?7mbJioe(-BTi9?zXq}wS2=T33aEcaoyJ(|B=w-Ix`*J;J|DfkN6Am+H
      zbUxGG*7|Q5hoyZcTxE^%&AqP)>C~0p@YvP?N6pqj{Sq8Q>dLbqOm$7cMAYzC1MRa9
      f?7Yh&LMoUF1Lue_z@AK9v584|Uzl(p7@_wAKe%Jq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#u};G<6g;P)2_aAjVq{<|444RYDq=wbAtDBXy1VI9a7dlXB#3+#6A}X-z(*lo
      zL?@&y_wKAa`<}mlKED9O*!SQF#JOo?p<dOS%xt@=D_LYDpQ)7(x-bhx<sG#*WXP(z
      zvbW1s>A@9{y|I)sOZESd!0<vFU0(_e#>X=O_o`Zuk4*vJt{)08z*dM2gaQZSq$?#$
      zWpbI;R-1g<#YTxXbl)uJWFOVMB!MWYGF8r$)tz1+y7iNO5janJYxZq76$sL*u^C<K
      z?)t+%<7w9qN8p9{JHb<M^&z9jY66ED;GIPN2ZDE|4z?Ksp1>I!W9%>s|7;jxmzBUC
      Hql4%di9c;=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-K}rKb5Uk#8vbshS{6TIinn6T77`zApaq(az_sOKuSvNajoE7(3o&*m*z()mp
      z#iPlks;jA{ivC`GegQZ|KS4w|e=IAN>sS4zjIWo$sob!7=33p`yqs$;CTu*1Tdv32
      z1n29U#j;2c6HeBi{&zy?jBIJc6`^%-I3>i_Zq6xM*zTf@4xyLXlJBa;jQxY26-?OA
      zoYBQpd)w&0WgMRD3*jPL8^5XfB_W--${QZrCStJ3JZv6=0i?3L48qh@6--2({c50n
      h^ntB+Swu($Q(@p3F^1TYsVg=y3GWIM_5>sJegLPxW?%pS
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU31e$6g>+DIYNBI&L^ZrftK2_K|ov5;t<F;0VlL^8fwCeBJVf~@=BE@z<;A}
      z^jEYm_OzKP<+VSm)4P%@+l*nR;~B4{z4zR6&po?;|MSP60B+&Af)fna>moFc%$MeC
      z!}42R;2K93H(v0TQQ?-)gU7tJZd!rsw>BG|qaekg4}`xTR`G0x(+jq+gGGjux%?hO
      zYQ?Q_6(=#G;S^3YoG;sgZ-<Qo?(doh4rj=eUCVU#Oy8F8-H)l@&~7pq<^M&p#4yH1
      zohoc_!F@B}F-L|wxw7PLG`SV}cF;1K9=8l?u|jJpA8jT&B#jZCy7t=QUSPYTsUX8J
      zHw0!=yfhuV)<sJa6pS%k9*``mn!wB23MLpP27;1(1yc-@Q9;KPb)ypawx}<Mwo~JN
      z8W%~sP`nWCE1}cabP0Y}S22khDfTA}<K3?NvP=0r6_+uqKxeqn!+vsb#H~QX6<lRV
      z*Lkqwm`$2MHW!OyL>SS>l8Vpqg@S7|%^pCsr6GqrgF^Y+W`l-1Hjo}SK>3p>Xei=3
      z`Ni}+E^1`QVO-;(_0jJ(A3+!zZpv!uz>R@bjADj7Cxu{``Pjs%_y3F{jV>p_un|)j
      z;)6aOu>@UFhTBOBJg?y!d`tcDpF-0iAqQp=t6j=JQ$QZO7^yfE>kP(mPs1YalNCwT
      zHDS?#BDqqz{Qk1sUDB{DRnTa6$*H^K?!$(PELNon*2qA){pCLX-5KQf(%2y9g`ydH
      zp6ds^)@LF*zT_x|sVH%XAPl2@n6V~g$5_){-xN)UP9G`DaQlO*e(=~S*k+g=RHb*w
      zk^`2;cSLk&>8aFVM?*#GFhV-4yMDtARQ!N>1#}Db`8;kvjUO2<xx#7bzWGWv-qcN>
      z>xmXBwxpHRiW~YCU$^B&HJu#HzI*Y8WSN=;5uv*kNYRfjI(k>=?Mqr2t*7QXNdHC;
      zC!o^5N-OX+h0fy)J!x?et!L>ig>yJh5f`FoQaXYX1S_-V3h$78gLL69jQ@I!(dscK
      ztC{HzE*0ANw2jZ&m}}!k2e;l*bX;$Oa)AZHxkoh?F^&7UMysqn5u<i%6FzQ7v{U$s
      z7{1TqXF`&Vt`;-dHtxK^)gGO@L?>G<{Eh_%`hURC!Ag(fI#DcsjNckYut8lvq-j1v
      z9_5Ii9@k6wt<wHxq}M7jeMAgXcucW9rdyF-hxA?QRm?mgGT$?_vHJ_o9%HMTdD=ns
      i?J%+wA1ih)s=7mys9=hG)KjXMFe!GKFg%O$_WuQpdDqbZ
      
      literal 0
      HcmV?d00001
      
      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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
      K9evc``~Lv>hv4}D
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-F;2rk5S(*N9E>4gL`OpxD7XYERS*pl2w~9}rN5Y!x!|0w%NgNkQ6W+A03L-{
      zD|A4b*_qSM-t2yUy?+20VLyN;Fw9LY=jvI#$jmmCE9E>R`9zIO$yQ|CEj8C<$SPOb
      zn?+Rw@CD==S7zy#NuYbKjdm9Tox$-`z`raXsE18~V7dAyL<d_DHV_FM43ajIER@M*
      z>Z~^Tq;>TZZRoCE%*fuWSwRAEQf8`{Dyv)l^XR)ry%ac0)};J%w~0WQmbK03O1IMw
      z|GB|wn+`|dZTOVnDmZwTF<>=@#|#Kg;@%s=SEe4e8AGnXkQ+zXVHU00(8n$-fjveK
      F@i&s;Y()S7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%TjmBz=U!XS??IMa7#fwl7gO^C}+jY>bX*R4IF`wm0@ZbmdQPPQc
      z6LWcQ-Y~;^Ghg2yp8$?AP7o1JAIe%S^oxE~#y3@PYGGJCaienf6_+7r<2l@LGu0+I
      z-&`-NB0)?z>e&3dLKs}w(uPYyZ*PA_h_Bo|r|4mQh&~2{QD#fNt(SB5cY0nhVLNk1
      z7c=c`tACquc(l)iv#i7Z-{9wjG<UT(JhiREPREgx_AA(h1eSk6nA)I%iKvqw4fGG*
      fvGyj72&rHy3>+fH1RGKfWlV;IH-!mXf)Pe5MoDFb
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au};G<6g;P)DIw4j#Kgo_7%&-_idZUv5D`mIcQ-r*m((e)Q<2YNLSo<p_$b5+
      zFd>A*a_`Q5XWx5o?=P<a66^%<1Y}`qIa4e3D0AB^TqS2Y$$M&K_E0NJSJYgPA*)<v
      zFXxLgfd8k7a!c-~NuYbGjdo`Oo#DYmz#mt))WbSoEI+>q(ZNQ9HADit!?X<~OJxd~
      zIjc=EYEAuA8@jINQ?fT|T9QDVR=FxC%Ia2sANuZ2F9nkHpOcLQ!mO%oPUpIPeDC)K
      z9JSf74<3cr2(E%-cNqg#C-9g7!C~BcM)<_k!zN?M6*%U`1Y69auQv2CU?s54=pp_9
      D6^m+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG5Pg%TO^wxxKOnuSXcsA-6fZ(S3|>-t->!phO|x~~i21CZ1P^|IA0<x2
      zqq)2{Z<yh|nXm7UPXK4wOArwz4`rp6`c=Ov<Lh;BYH3(Kajo*_N_)=Pcn-H*Pqhio
      z*Eg$mksv0VwlDs(Lg-!E(uONS=kRDwh_Br}r|4j7fG&E3VP;Fdt5ys4GrcI7u%9`j
      zi@El;(SOZ2JlYq+dDd><n)`x~=C1OFr?xRTXg_h>yaXdiTzM9Rsfj6=h?@LrpnLp|
      f{ze)RQo&RhI6;gtwxt@#m<$Q;2orV%BMg54h)ZNL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#Jx{|h6g;P)X+xk8#EQgL7%)XJ6|wLoM8uM+yPG}*mo$l72a%t}gv7uP;71`|
      zfC(wfy*um9zUR-c_YVLg?09elPSU)R3-zpCWMb;l7IKl0e4<)Tj4m^}x{mLuzNMUu
      zvW2-@mYD}vK(^*$N(|ZmA%X6>&b7S|=nN000`6rorylwOef#s$oK`+MSP!s<Kwx(m
      zHML}>@>Irb$<uL@8$>#%hiW+^Gf}gQ1j49DR5n#cH~R0;wU2rwa2mDtY~61x;KxN}
      z61vgN{d=v>qoyJD!8`Gnf~Vl}T}F@9860MScNq5G;J-3;u)*l_1diD_!X~re*M<SM
      LSP5)1Itaf3XXS2L
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#u};G<6g;P)DWOmZVq;+|47f$=RK$V=LPRX7y1U_#x}<UCIzT>)35kIZ;G+;P
      zDiczcdw15Ieb3)NpI-omI1Jzk46>q>3-zMjWNNFGGjfrVe5OiHUd@wU&+n<arGl(-
      z#@;Pgc>rHPHl`9vExG?8f%c^?w7U{$^-re){<V3e4z>jXw|OT-3p-tGp(}9IkLyY@
      zS4AchXLXT{>r^k+1wE9@8QF=N<s=ZrCRO=VSzYVDL*LEyTHqpXY}v5eSRhPHX;Zq<
      z_3g(EzVo^rPQcsnSAwVD;%&x&)d(IlAUKOU9|+%>de~(Qc>)7A4zb6qyRo5%eO3Yo
      Hj2@z2o_TCh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-K}rKb5Uk#8vbshSe1YCnG=nH!6fZ(RT)ZUYJ{emxakCR9v(bH)C&7ac@KIu~
      zcr>|Gbv4yg(O=&mp8!tLO%M^zpNdjV^-{ko<EwdaYHC<LbESqa?$ItL12&$+9anvA
      zg7ekwY@R2G2`4Kr|2rYHu54k$HKB2EI3mP1?txP@u-QfvEkY-=1>cvmG5et&=S<km
      zoYDD6dt2+jWgI4ULAc0P#;+-UNk|8-^oIMkPS{)H?bTnwKBTbx3&K<v6--2({c50j
      h^p1@;Swu($Q(@p3F?!gNsVz1!32zG%b_64IegIBBWsU#<
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r4?CQ)9F>;s=O`RnSGSrxrm3=^=WF^uFCL$(D2z){W?Ac@jMM0e+PD
      z7CrRR%X>5XX6McB_s{1SfGZqC2pCQZ)AFTw5wBd@x5m|cDHUG{$)^uOPH9l(jgAm9
      z9B-78@^&E_rz}HvqK$Sp44vWGj3K<M7pjMChPWixi_$yB=wK(o77~WTVdmHKN|=J@
      z&T3PP{l$K!je2ZXb7h~zyiyElR!dRMgw>w^ABL{f&kU#8#&GNJ7*mYAZmm@J+FS0g
      z4=;TV9D$<K2Z1`Hh+V1?u@M47Ky;q=J`leX46sWzrVd<_aD+WV$)5~;42aPVssYkp
      D|4&&!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%SyyR5UkF|O^nfK#4iwG6?AZMPb-2b;vwrLviI4^kewwj#zge9JP98B06$9X
      zpx{lsR96i(-PQf^`SuRr6uTZA!hT+LVkIBtlTh}#X=|}kT9i_W+nH3e>v7r`5AI(^
      z_FZPOX|*K`&rN083&LP@I48JQb*6o+6Z|FjJT9|wfB`l_tRW=qjgo$}C}fq3w6&(n
      zr~S7mF_pgS%7wP~a#3hPoYYDdb7@Vle;(a-X&wj%$v<|O5`whutkO58Zy5cqchYCz
      ygK%g*47d`<8!~#VCUBSm-cjtoB6wlyV3RT63Y@WVf-Pp@w+#`tSrK*^9mHSf`BcOJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5Pg%zCdO#A;x7=P3c3jCsUnCX9#Sun-nW}2-I6cXr0CD`BzW)#_@l%L
      z3f{!aoA;KtGjHbO^X(nLIrcp`gu}e*#7eH^lTh}#X=|}kT9i_WyO~t8n>cNZ2lp={
      z`>rzCwAvDe7p5}pC1Ef=o)g^bI@3Nj3I39Mo|ai0V1TU<8wd#p<D?%g3R&eMZLO*D
      zY5y%sOr`I;a-r>mTojrxN@^vGxwNL&KaXy^G>?R%<R3ds2|-$SR_R;QH;jJQJL@y>
      yK{zxY23(2b4H-RF6FAHO?_}h^B6wlyV4E@E3dC%jV24@wZ9{}zR)jr92cs|U8&u2y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%SyyR5UkF|O^nfK#4iwG6?72HX+;o4JY>B@_C7lqva{sHn23IsC&7as;75ra
      z6ugO->Z+lpyShI<-`)Y7V%LL1*e~i{tmLD763RZeT_aXXi%KeSJCka5on)=?;QnP~
      z-(@b_PFuqG+|;JKAdDu5bAo%-<l4tN!C!LE<0?-AjIa@64IyD~k`ALqDeFRHoi%ka
      z9lk}Wsr6l7EwsIti&7Kfv{AC0OKS%G^XPU<^FTOA|FOfA5M)hnmA)}U!{~RtlOY2i
      yghTUTz?C@On9*aEz+nb>N3s8k;DxD!O~!yLaK^?2Tg<|58zOA8BJ40ah`#{wEL6|{
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrpDN6q+j5rRdlIX5GsNw;vw~5r1$M+Nw=g)SQF9D@+5fh1N<oQ
      z1w9pdnK!e{4)fmk&*v9_5e_^!gkhT3Vkuwbt5Ei>tO~JITCAiJ_fx4JO{u51qqB>+
      zG#*^S;YK^VuM=5T+7jBACO6d;p*0xJ2<}ah=nl3C-32F~SWaCfoa&>6od8=12>n6S
      z)DW4>QxR9z<msgO+>1=EAL`Xy+b22CG$D)%C9|2drqTb8ZnZGagyU#q!S#J61V1in
      ztMr{|V*Bfc)20s}ir3(SfhTd*HlxRC42K!u9fh3_`0q>|>@xa1fpa#F(Pb9=+0ert
      KE5bgbgYXwf99-Z4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrpDN6q+j5rRdg*_FBL%)@sN5j())I^q+8M?tcmDnc@jMM0e+PD
      zf}RS!%$r$ehk5V&=kp7|2nQY<!Z6Kiv6L_JRVe#bR)tt9Eml&A`>9lqrqt8h(ZyL@
      z8V@evaHE~w*NH4EZ3*p5lbh;_&>9S91ox&$bO+mn?t+s~ET^s#PW92kPJk^0g#I9E
      zYKTncsfa6U@^sRC?nNfo5A|xU?US5mnh-{XlG#jJ)9C+4w_2EI!f~{*;QBrjf*%*P
      zRr<~}vHf+!Y14-f#cS}vz>~OYo6%!6hQkc-j>66d{CB1fb{T!1z&RVo=rRlbZ0KQ+
      K6=9#zLHG+hSX|Hm
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB;ui=Kg}N46FBPE((nItT>3zFhk}YXcwu$Ixc@jMM0e+PD
      zqF#FFW!}v0>@fSjzCS(z^l|LLA)KW}Ef(@wz6fPsS5+w%N{gjbV)7tWG8y-;uacGV
      z;1W)^df7Uj%T=W<p?zZtQ{56;(fO3%-j#FR!7d@lIJURWWREj_w6GUo2La(Eikk)^
      zmqjX)%9<h_HBY;-DfDB#oN4<cXSpVXaj9fJmDV)+|In>6vnE9G)_NOX84>)XtgX`b
      z<~MWW_OfZh+u{1WCGaFJ*=F=u4dE~Yyo<2&4*!j*gMCJyCoo{+5C_bHKO4F@WJNe)
      HbP)ak?Uz^H
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB;ui=Kg}NxlOGPMx^boy7df#rBWJ{WqZ6f+vo&*nmfFC8k
      zsFxmknK!dLJIubX?~hLa7dZ6b5KgkP5p(%0Uxc!+%eoSCrNu%jF@BIL9gi;K>vU;6
      zxP;@4Ubc>Aa#?Fj=-!yp)VG9AbUGopchyYyuuTYZjvcIWIp9nm9qa_yLO?i*lD2^;
      zWSNPywx-O6?bCi@O8wX@rrJKqX`u;WQYl$Xq&2PnKXmKdtO!xEvEJHOh6F#Y8msiZ
      z`ORFrJ#U-vcDO!o2|S5Qb{RcZF&t)qcNX^E;lD9;u*>N41g_W^V~<(zXG0(RtOy5;
      G4#FP*f>-tc
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB;s=NzQK*a9f>05PAU#Ack>0o4CE1cDWt)h8mM6i3AK*uc
      zFY2X-Ugpj0&KqX;>-*yqz$FenIE2%*sKs19%NL>S>#{1vTxqe8N{k<*O2(tB>wdB{
      z9$do7MlV}OGr6p^CA4o$VX9j~D>|DH+`Dq7JJ==!8OQckne1_<j}~?UY#|^VMRC(W
      z<g!RbQdv`^!)CP`n?gU<i>bCxa++&G7?(=s6KPGO{}0_NGb=(AZ>+cWlp(=S%GxS@
      zZ+<h^ZZDc9I0o0}Ujk3!l5Iwh)c_7Nz&j5+@9^K4I@o3Oc>;Yl4zR~8__LvleO816
      HMhD>!0bW<`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB;s=NzQK(CcIaP!rNDt9Vr1$N1Nw%a(NE6Y|@+5fh1N<oQ
      zMZNUU%e<N0dBf~}eSdrc7~<H0ML19LMl9vCd=aX8E$c!ol@=?h#PmU`csdD(qqsB<
      zY{J=AFIy)IS=PEDbZ<;<>RUo5xR?>_yJDex*d=%=#}3x19B`(K4)#3kz$2UlQQJUd
      zGEYQYS0+!!?P@<VxqfU`b6q{jd8P?|R4AFvWMx|Ye`wdKSrdY2YrT!9j0tXBG?mi#
      z<~MWW_Nr}yQ*eF$CGaFJ*=2NCg|L_b&ZXabhx^9V!ak$R6S!t$hy!NcpACH+vLYNY
      HTJV1W>ql48
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB;unZm1zm*pR1riF57A3X@7wK?Zb_4{ZbU!Jli<M*@T0`H
      z=%JTh-kaH-oj3cwe?GqeT;VW6KsYI?RxIU<d=<*RHLey*rNv4r@$e|s#1z`*jfoHv
      zjyFnKc{`Vl)0WV^HkENVgwEh>N(k@jx$a?`5HHyE!g<FS9qc67LP9tiWPZFTWmSmW
      zSyL5b|FEB#N<X!$nYI%-D>Wg_Y9-65w8r!Q!_Y0vGvPGb7;gO^V~&y6tyTKoc*}$J
      z%S)ew7sJtcLEugtvCB1LHbTG%h|bgA2jX{z0d~2@+<_qrN7!SO{K?SAJ~N)dH9-0c
      DG)Y;E
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrpDT8q+j5rRdf;TsUnCV9-@~>J#V*5vL(%iHL3bpo&*nmfFC8k
      zpk4~S%$r$ehk5Vo`{NV984dz?gi%`5Vj)-ZMJV@LR#q&O7E7tb?VVJQnQ?h(ZJv}S
      zfKNEwXlM7;T$Yt~g!Y9gOm#_U4M$Uge{JWwgKa`D<K&a)|I`pI>~yh(E@3c?n;IgQ
      zMJkfYnIfGupZl>X^nJaYY4;#!xh6!hRWhGSXBz$Y=vSF}A{@sX3$E`oA%uyoozgd^
      zi5;vPPMbb_C|-jP2A;%K+l&FLF+65Ka1?dk5xz0?u*(?o1kTwwMvqzd*M>g!SP}La
      GJw!iI!C<fe
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?Yj+b>6x}xsopv&%r9280qzGsq(14<%#YZ0$BBdZHg;G$blW967oe7gkX%G}p
      zLH~k3z)ybAwWPInE%mcM%H=*YLmHYaJ|r{uo^$s(XP<rU{QKXZe*rj!A2lQtj^y2P
      zdeK}qSJIYWDF$A8(X!J^rj@>ATEjWB7}&msq{7aZoM_Az9SzN~Azd)te0sFtxwbi1
      zuoapJq0l{12QSbW9v@QB%^>idxpH8a6xt^wK)M__1%@ut+<ew?o!}#d-Mx`5jFIIL
      zH$T)jt&kk`a<+~pv>QmFgF$=yrgd~;mxi4RhZ@Fa=yB5uJilUKH})u`@^+AMOM&TH
      z%sbsE)+?%Lg~DC~8d@~$SJ<&x#09goz(REFL%Vn#G|&oN3Uyq2vb;2B`%@8DofDpA
      z7N$+#k#)S83>F;Ha;!dfeS=6=(lwWuerG*X3MYE&L8@)oLc8#~&5}MU?CR~SfxA4n
      zXj_4_?c9oG7X!z0OB(tVj)paF3SiO;vgKmY^8-6qbxmOaCo~*a*w?TvA_)V>@P_b}
      zmVTaOHE}blqLB6~yd~zN3T?KVCzoU1xZ|1ya?sm1J0gMJHSiuzQ$aZ=Z<hi&^S*%(
      zL?Wr^%vHN&2Xyf5Qn|pF#Ow&eMYi*Hz+@)42o^$3Wd!pR1H+&gH8PiV?voxpa?ent
      z3d3=#CEF_dPEbi-v@1gqd)2K{(YDgVg}g_Hg{3Q|&z5n#vfQSgHJnp89CBGbk#U#J
      zf|Dawl}HWe6;3vEtB0<hN+E-b8a{oY&}sxi8<@Z)g;vhNxaTjKtmfs;$0OH*%cSG#
      z@O2%ZA*<o4LdRz7BPRn>xW;|^ZrLo9GI`hY?NPHtwi*ucO%2x-y0)T>l$}D(_FFK+
      z>!s}8alLzP&mFtcGau&HqhlJgA_7C+ZX5U<U$B{Gv1q%wQ14q2hia7^r5Xnr5(v}4
      zoN&+*c#%=Z7-n0*yt^sa!RTrnWa|f+2A^!3V-|$fynzMLnoj!8xfXAvTndXQXt+a#
      zhIzb@uYo1Fq_9{f#b;_Sns~PAr>!>a*h$1#G;mkcyp8&`1KBAV2xMfEa%VCI(<FCW
      z1juH~y;>CI@opK|Vt$oA6^uyk*NQn-FT*y{H!YDL7<h>Lge}JwHK(9BPFnBmNG20G
      zJrSozoHIuV@aE^~lHpsy=338sW#6*L9r<vybN1rz&Y-Y|9!_r)f7_5iQZ8D4y^?a3
      z^4ZEas({uuu5QpT!ROxoHEi!6_yaqhqpN=d`)1bA{Tv5=qb-5g_}|HMz(xLF;^|3r
      z;W7?!XHRsVF%NS^B)pCzL{G?t6Gxfhs)@GtD2jwQ-T-`t;ImBd7PjMd2;LJNtAe+O
      z#VCOa%SkW*FF?Y-$-N|3y<u4yH1i!ev;j5K|2w+Y(Xa3i2Bb2s53FHu4X1vkOH^It
      zZiYdH8y<~=Ch;~-b4S>k;8WP@h#=olnCM@{nSo85?P0?6WIE3x7HSyki1Bo$HiWZ8
      zO5#I&6eCLniK<7)A1nOARc&rdHM!~4+(s}O7vIe17{<dqe`e=}@2P=xT;L@=xr!@4
      zp=SeQGaHzm>AbOqn~`Z1w^s4x8mzyCmChV@sk3!BO}HMV;wi|BnAhPau&IdstOO{r
      z&VZUOvzlebzlSVV!d#=~O~tt~8~QAVRZh`sh507s0~0fF=4A#Lb~BPrU*G{-{;(kn
      z72J<egbndcNzUEt_^LMH2<9=H^Q5LRscM2Le2s4iltcxOVnETP2)|7L2M!!u$KzyO
      mW=}a0&qB!l$hivHhHt}O69C`g`!KgQJms6r=Q9E)@WcOp!AKqe
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%}T>S7@RMSO--ZK6dyo5*b2J#;He^rAP7+pmEJeoC2q-2*(OpS%ah>22k@c9
      zZ`Df=z05bWJKr$7U*8{}07mEs@Ce6Q*@(G(kt?C>>!Pm2Txn5AB_8jkx-Og4Ebod%
      z9>6CYZ8SUYOfG6|3GGW$n)-^+8Vsid|E8Mh4z>y1igQopZ)S)Vx)HVz5e^24Yanu2
      zW@1uXQ)Xkg*-K2RADSZ7_DQC>Cd5glWImPFIQ@U<*Ux527$zIrtv_W<2q#rzmA*AD
      zw7-6R=DOez+@JpmJc(<z83R@q@R$L?N!)oy_{P-34r9m@IA`MsyUe0L8+zDdMc8Nb
      G5dQ%3@?2#A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r7jFrpDB2q(4Bsw2H1h^i&a45QM0QO7EL=O}8Z3vQ7N>S)K$B{s4cJ
      z_<}tZdYLz~%ntM3&+peafB_CXID~#$RAMe)<eNzB`=T^ro+y#aL_FTh<T^92&w4q#
      z%NLmkmvFSv&hD$JT$IWZnismz<t3rf>rV*ojhU(zwh3*+$*1uu)kgz60k#kjy1l4w
      zAu?H{Vq98Xq@((8C(?y_sPb6ZCmCmo5Jo1E*+g1h>(!%M&h(OS5^e0azRrl?k4<G0
      zb*t;x?z-Wu?t??{7JM)8B(B<I^jHnyFax~fu=NT5gQ<fyqt6pKXX607%z}R#I@n`H
      J*k^PQ{sDH;U)=xz
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%}N6?7@TjrcI&!YUGV`#kX6vwLr)b!3WBieq0)PrhBamXNVB4k<w@}11Nczl
      zx9X*bUgn!gCX-3NzCS(z46q--BOGUCBNp;mz6fPsYgdVd(xQ+`Jlsh&mP<FhE$Tdg
      zPdHlZW$X1^)=pbO_tKQcT@gCT$&}!atGVuBlMq%Md#2jR5FKnq*g!-$NYeIxk;^g@
      z6K74CjoO3#)Rg+ZDQ4O}%2}=naat*vPo*`j{$KRnlUWjybZxnnhm5$#q-w0vH|95U
      zW%s;of<th5{v+@tF4<)aSPkJZ1A^1I_m1$5sfTUGkSB1##sPMiMSnK*vCE3E$LJyc
      E0T=dJ*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r7jFCdO!M#2+AvR6(~rc&Z5E2MAFQk>0nPC2mQRuuVjNmM6i3KfoU)
      zzMzL*dYL!#cJ}SO{r>s<0x-gk2ZwNw6^)q57x^lbeXHtH%#;>$sl?;GRM$7j-Mq>@
      zxP<+cPBvbqvZ}Qubk9v;>I*_=a5N#fS7oYwtP}i_hn}Q*5uk&O5NiktyMwrWTja9H
      zL{eK*WaIW)FE)jKXy#LGpX4;xgeWeR%qP;CR{uBM`q?Z9hw;j2OG}IiK~gqW>08rI
      z>@S_2wkfa&j?I4quEYVmj2^2qILrX=IPyObyfbyM$rx}2hHM;Ri&^+*Ll1pcgl$F#
      F(J$mfR)GKj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-sW-5PjR$rj4nM(fV;L7O4?jy{Q#J3PK_3q0;*{E_F+~DftlnSsq02;1BRe
      ziL<euD+6z5cHcba&3=7<d;&PZu7wgqccODX6;I-shsn!4i}^H^d?rGEcO$~VY#w#4
      zbUs$8g$hG^DVw31J*u>G%&-?MW%r1Fp|r{_8TPyX;2(?_D*gCD*1@pqU<K708l)nM
      zA#Ie=bYQ_{XmtbQi$_9F_%KV9p7cz6Gf-OI=CiR(?!`Eg3|<h2A{vQAnR;<qF*X?d
      z<wGqNL|*J+oF}2YRz|h)x4<Ja27@!uS|<HSq^Ts~>hD_7CL?9~5aznZjmao1)ClWT
      youfnnIR4=qY~OR<vGz)J3G0M*@peX?r|=Amx(se$v*5G}+`=}UcA;Fx4%iQH<$THj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pb_sOD%#ZejJI!02)`XVoZd@grw>L!+ohMEGb*k7C(NL2V>&FAK;HN
      z&Nko`Gs)YT-8V1uX1{+vzW|(J-$I6=HPUlF5l`ZU`_bzx3HijAd@6i?cO(4XbQaV*
      zLHPWr;<1GsLv1CWA)ky@Tt8(v@K&<hM88m4C6^3`jeqc)1BP5Te2@h&th-o4-bRtZ
      z9xldokVVObg)&36;Tdl{5PHP>Nu>0sZ3If5((-mb9m?ol3<Jqf@j_n&0}&}xFD`S&
      z2*dH}vHq4sew=<dk9>KpjBatc#uGCLgWJ<uM%_Tfu_S4Gxm?u9PL@7~mCMGH$tWz?
      zgaxY3k)Z(G*3mnhR>l3m#v9ccY!W)@TZcNYP%$j(GPs59lv7P{2fK7Ssd5&3V83~%
      BfK&hg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-}+b5Pief!n(+c;>VFl6fm)R@FK<wi3z&u0mHr221}MM*<FnOEDy%SgFnC@
      zWo%bHV<vf>Y2Ta7n|^-1e*iefj)NRwf1(#`${+a?6Y=vrjo4I3HsgZbUUM;+&BIoo
      zC+UfU0-?E-Oem!fDrp@Nc7vtto}r&9t<rPCUi%;X&WKRxNB6P<!it9?N@Y|DMPX-j
      zkw?vg1E0`n2i6q}xt_3L8Y?~NS#>Q?THY*XV;SG^aVQD(AQC(r@mSgV_p)GJ5IW0e
      z`dN>0;tr!lEaZi<O{;&~JG4^}yn)s-?uR@{r0HACc8aEPkvE?~zHhDA%!Gro!HTI)
      ykuw2!-Gf)S-MaUN)fZFeux8NB-mZ-D5_QWmDvRsb$T*D*H?d_-H|w0oHs~9w<a%NN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pd_@LM?(QejJIYh>5FLF<wv;lB$Oi?n~L=lG2j482woujEM(-fIrGO
      z+vpiH$=jLT_a^gZzrH^{0i0vcMuBiJi56lipX9R$l9zcFi)o<5Oa|iNP6qwiJZxRx
      z_%@1!=29wQHG9-)>x{7PEoFC^eyJm!T@eo3|KJ}F3B_JKR%H;@T&!TVgbKkLtJHyo
      zstX%6LZj^&M<SHbMEF^vqe<6jtDcV3{bDv!$v}=mMW}mmAj6?dw5fkDi^c=tX!%5D
      zHSEIi<3$pvTWwla{`PiiW+1rzC{jr;lxeECtHlyDd47vOfoe5l!eksaN{nT$E>PeA
      u+|J1xoKD?+$NDSR1#B=n`P+b%KI(?WDubKY$~lc3x3R;glXteT3;F^5YIhs}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pb{SLM?(QejJI!U`<@Tit$2XLachgaMHt4Hf6DFNhwDCS00Rs2Y-M+
      z$~ar`jG5%^%<h|)d9z>NAD;kDuxlg7&<gdOkHw>S;z9B}O=CU|B%g?Y-&~2HJDEn!
      z%aM2yLmLH##!@zem5$V`dCaiqFJ-rhex|fa&l&bx|KK0=848_vC`({ib+H1gh%%`>
      zWJ5a0qvFCwm7(79jV~Sv9r9k9C>^#<d&O5;Ue6~3ncRv&BpGUc9Ehkd5@qVeWx?2B
      z@Rkp?SP*$}dht97<b^V-<-Y|UnK2mLuGTW?L}E6RBy9bz6%8_yrw?J(s&Qj73L8bj
      z5>=<jQ2?%Y_y)(Tx$jter8<XoLMMB>r_MXn42!x9ZeTOx)HB?|Hl0qUoW~B>4?v)N
      A)&Kwi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-}+b5Pbv4F6$zQ;>VFl45G1m72}1(gk;r34EM5B>}KhbvKakY9*l_xe}F&A
      z*lxfpW|G&L_RY(@>G#j)7l3o@JIE2*V>M?Hf95YN)UVStVNod9goo_zhKIe$G;ZF@
      zNR7CN9TW(Sm3%@meUh{08Q~yU$?h2XrBpJ#A{@5<!9N-h3f*KRN+7KJSVPf8nc(Wh
      zm>%+|_;64q)LVh|#$v9<te<MB#vLnA38WIY^T|-?2R@7ip%x?|j|W^!TQ4pP)(GKb
      z^;myPGJd>%GS{KFmR7gCT;r)7gy8p-61p4n*-RK|cez|NjGess7^+sSC!3jY;2JEM
      z>H;|vfZslThu5z8AJ}*^bq<>bz3lDLbPCig%XC@X!gj`~XSjo1b9$L_9($l)FQ9-(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pbtkp%y_DKaNCV_()v6it$2XLQ?gB;l9)jmXs~o7NbAQgE8^o5Aa7B
      zXDggBlf0eTeQz>v_WS4a3%~`A9png|sa}eie3maFFt3X=7PCN!xeUbptqg|qMbsK8
      zvrsy9P#`on(h0@%DNI`DgcE-wyU+BiP>1O?;k5k^erHT54B|&s24UO77K$ZQ2u|`h
      zrHeeO9vsvNjka%{iAd_H7^NoE)4tVL{ZOmB<$R*dgPcT)Q1|0NMq_D0Tdyt))(4@t
      zd8+k_*o`}imnKj*p>11P@9@mdLGXrJD>H~>k|^%%tTu}#d&%>sP_1SS*^I+MiLuPp
      xC2|~q*X_N-?bf{y?7VTE!!Dzny~V85s9P4REbd`H<1{inz#*S*);W(O&@an4e>MOB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-}+b5Pbz?VO?ZJ@#9D&1~IXE72}1(gk;qNhI?5XELpnP-BtWq9*l_xe}F&A
      zI9>6KndEh*ee*JJ`t|+s3E&L-4hjsNiO%>`Jc$Jl&C5KE`81S#CPIFDEyBTU9<_&$
      znK05piJ`TU%}`DsRMI|WI0#m<dqlrbTBVl^hn;`$k46loeta*hU|9FChH?cpQc3b5
      zT@+FG;J{~Sb^_~*M?z2dFf~d~dbYhDC@pWY*;tx8F^(idBZxy0jf7FQUS5{04TkRO
      zp_U6GFYYkTOen9ERjvIk@WhV6;0?5vrXPtUktAIHT`O8-q(~paeBZjU8HIxiVU?<L
      x6es|%d;A8s+wk78@k(_8n}lxuwxG^uG%Sm{EN)>t=QMNN!7iO{u3W?(*bm20eS`o2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pb_sX)S^%ejJI!@DW|Tit&P)kW@WDxG!acOUjnC#pq3ck_Thr!5`p{
      zGR`)B95Iu;o!Nc!GH>?d^X(nLF?KCv7}^uP;8SrY?zta5%#)B$eaUCS=Qmfv@6F~x
      zeGsX6AkQ!Q7IF-=r40=E<W|M?BZfV1DZ4}TQ>9gM#<1V`2fsOF$aTZ9w860IVg>mE
      ziVSv=&N-H`gDgreER-3l4bQmafzT7)CyJhQj6%s%T3#<^BN+|ED3A;lFZ4w)6p=FZ
      z_hrsFVK`Vm*Wa4Rk<$+skuNWm5ib60^3Y7e;P$kZQ8y5AEJ@q`-7jk7C`+Hi%4K8A
      zWE2((gf>+t$WQ=otNj9}RdHXj_DppK>x54F_C%eJs2CP?8Qj2T%BiNfg>5>WR5^<s
      FurGedfo=c*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%T5A85Ud7dVO<1Kd>o0y@JJlJit$2XLbB=s!hKjr7_vJ{b{8L?pnv1Rn0W95
      z{3zqh3TI3wHQh5+ovxnmpU*D<XE?NwA+#oH!Djq{KQS+Qo+lxjd4dJpW4G7b>j!hc
      zF?<Z~WjwWzBh=T@3Hf9y<HjlB$X(0sYWjs#GPxuiH~+zJjR?73cqfV=Y&zILzJL<J
      zO8%y_kww{og$kk8bd59Sb2VXuB$8^<HTtqEmAF|1V-XGc*cXJV8+zOy@kp9_d6_dl
      z2%Ys)tyZMn*n@BpdE!c%wx!h$Ps|(yr>~TVdOnY1p*vg4&7!WoWc8;|rD6=3OoxSn
      z#-gsyk<kG-?an*wcGda7)|;*~*w$#LZ?9VUf~sL@mBAhCrkq-ed)U{fop#RR0Q3vu
      Ck$-pq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TW=CU6vzKVDMJygVrjiAwzXWOThw}^Hfd3lMyg36O?(_+geA)^E{j#al`n0g
      zi66iZW&AG-KD0LQ@Y{3F&biH*ncshY`~pzKwnRuE-LeNpM}1abjE4KQ=Q&2Fp^dI;
      z81MI0W3St@B*FsA=ep5rr>T0Lb_F6^rfquL0;x>J&uLi7ZW&e2HSJa@dngbtJ54Py
      zC$MySeRp75P3=Z;L15Nl1BDo(NW?LVh_B7ZaS4}ML-l&vZVD9sSL00CQQDH9;z}F~
      zNC`weC+JCFA(K55Lf;uA1m-KIt=|p0b?w$v-O>WdiqlZmp>j>%9{mh^ZL`k_Rn8sJ
      zc#<U!z*gO1qSM>wTCC~}+=hN*`lS-%pmpC<AiihY+AUkE-`9PKv_NKJy_Fq%Q1^R_
      z1d7CpKyGr_uH_tkH2ZB%YOG4E39L;HEvvq_$paipiJZXd<e*ots{%9pN))Er*W0%G
      zrg#M+fg-Un)xHkQj@?w+;=abJ#3O<1<QA*i<*oAs<VcfvGF7Y9PXp!hJR^Z3@mwH3
      zxn9jRdzKy!X6~OZu{Bk*wIe4uJ~`6DX>h=N^`H#<FN#vq+NTwwOyzze`XL!RK|Ftq
      zi^oWwVDUQ_LRjKAHgwwH>nY+Y?ZqGn*KnN{!*K&QnKFc1v_iOzJCp~EyUV}#$TC?a
      f_eq9iNuE3)>%<^M@{l|xo8&2ZMqZE-c?t0swpT&u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%}T>S7@RMSO--ZK6dyo5*b2J#;He^rAc#>9mEO0TCEc1o)<o2|@+5fh0emR&
      zi+bsym-%LP=No4C>-*yqzzBU04q-pZYq5||@>wYRQdWgnC@nIn#NCZl*K_$Q<EyMp
      zJ-CFum1g#y$Fi)nCA3dXZmKgvYcQM=+>0XC9jp_&1?L_<{AT)Sp&MWg0byqlH4Q{6
      z^F&N4Yw~2=Z1y6P>)Se;X?rhcsV0O`p=3Ih)-?M6(5>d?kuZ!_wp)J6nBY%}+A4i%
      zn$Z68^-<FWyWsx(PvA*hv(4zSI)TFs@D9SxJN!4M4mKElp1?61N7!T*{MpdM7AwLw
      Hql54V!-ZTa
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r7jFrpDB2q(4Bsw2H1hc&Z2@2trh_())I^#0~jkn~44_Pl5-3fImun
      z!JZ1e%$r$ehk5Vk_v;(L1P2}*!Z;}!k;+&3CX{`z>Qbaii(D%4crVqHNsCzO>@Ke|
      z4=&+oqn+K?v8-xs3EfLmnEHy)8I9)z_oj?>58H%($;qd7mFlB|od8=12*Xj-wh);t
      z5;3c-DUxaXcMzFEKQ#G5+h@7RG$D*iC9}D-rq!!Qw|+58!b!BT-}*XJf<G%8tMsjD
      zV~6X8v$hWo!CUaXz>~OYm(gQ&0f!mj9f!S7_#aFi^cj7gz&RTy*ku;{+c3Z$E5bgb
      GgYXYCLSKmh
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r7jFrp9PB>IaCISkScxPZdD~L5O;Y^uFCLaZ8$n?MCWnc@jMM0e+PD
      zLOm6FnK!dLJIvdk->+`~LmUS12uWTxVkY0@QYiagyGqQI7IUe@^P^OmwzV$Z!@Mp6
      z_=MAqZZ_XeW$m;jbgxZm+zp|VoQ(<oT{YD`Y!jl2gU=VM&=4K$MA$+^I8M^GgD7N~
      zi_BS5=A-s$KQ*O(YUUGdU*x3FggC8~EXLBBR{tOR?$s;^gLGrPwPi+xFsmA?^u1|Q
      zkJj!l+BP@=ufTr=p2S7Fi~*}Fc+7xc5cfV2elYd0%NX(mF4;K59<yj=Lm&IB2nUQF
      F;y-A<US$9P
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%}T>S7@RMSO--ZK6dyo5*b2J#;Hgq5f*?daM0($Dm$)T=ZWGbR@+5fh0emR&
      zi+bsym-%LP=No4C>-*yqzzBU04&gY-Yq6Bi@<k~7T2_TvDlIap#Qm*Q@l!3WzRAke
      zgG)HtXlCzpA<IfzLi^I>rkW61gW-(eUKI=7!8V~=aPH~qH`7N8-2ht%2nU0xX&_RW
      zCnBz_$&+!j*^5lB@9J!>?Sq`Bnh-{XlIcuZ)9C+0w|X=y!Z6y{Zv81^f*%*PRr=aA
      zq5bviv!)9U!TtH4z>~OUo6%!+0f!mjorIlt_-{-d>@fN~fpa#Fu*)p?v!RDQR)l><
      G2jLGSI$WUu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r7jFrpDN6MDOCI7Ip2xQ$-LzK!|!s>3zFd;+8ZC+eGwdc@jMM1N>3q
      zi+U@)%$r$ehk5Vo`{NV95IY_m!XV9SF_X{oMJW4PR)v@;E#^{*$9t*9)|8pPzKQSV
      zW#+*p9IW)S{W6hdr7fX-ZgNvy5L*4i3BkQ865YW%p<8hDarGOU=!K6KHUg|6Anf*|
      zriaL6o{E?)c{*x7_ac+)hk8EMb}XlvCWKL;WHyo3H2VM1t)9$+a1^a9xU|rS;KxO6
      zmA*Ai?%tB)q-lhG@FILO@FXtVX7pH{!C?k?gRt`s|Bb1GO-7$5aLUFZy3B$<8+zDc
      KMc8I^5dHw`{$P0k
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG6r4?CQ)9Fm^#jC9Ea=*Ur-~qgAVfX1^uFD$>6RoLwwtP-<w@}12l!Fq
      z3-wg!W!}v0>@aVCe!so}^l=!#V@R^H=5w(WZ(Q2<${9YFiWfri=SLw&ujWNBW)DS`
      z2k;qAH@eAuI~A2vmZ5#EOYLqLTFKd%!M`(8)xkDHWGMLDtwKYzuoGbm5yNqkHXV2_
      z%8U=4)nztlo_14Rs;9b`C_569TrtF{ks==ps~i1)=)0L-F!a)m_12adFoZ)>TdD4K
      zlX|pvf6=tT31|iSE6`+Av`rY0x`Iax2zqhn6X6F@54(gRP2iG@ee4m7RyK68Pm1Ay
      H&_nzOb6s9>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>>vG#f7(JUfc4DgyxEGQZ3T*@AYBi9CP=||iDRpb7p$=gR!*n*vq9{nRMqYQ4
      zSK$Tt-5I8tzzi*ac^Te-;jHWkw{iHR)$V?~-#O<y-~RQ_Z+`%o$94__0yo^SZSTvc
      z^1ycD!$>#neMi}WbnLBq{oedyBl2>{2;4j~t}dO*u8g#b1+vRt=;_Y|1}CSs1v0D6
      zT{VmmZs;J`n_tXh5CscEummnm)=Xa8m!WGnbnJz0*&G_Jd7;{92Rka>k~_W<DAt;e
      z^tWZ~nR$0HqxZa)z(nm#U@3vJKwgC|udNcDK&6|xrJQ!`=|lU0IxKg<q)V+xId;W&
      zn+(_sHf1aWMT!kBCn)pl2abxg*9==ZToSmRa7m9>!>7{sc6o6cm&02ExB7;i&eL;h
      zTwtaz#{{Aw`3kx`F5{|^I6DG?cPw1PyW}r572auUMa@P#T-)07?YfN0!?-SRjX6pk
      z3zS&?k||h8OSj}xI=z?27;aja!21H0tMrz1YsrQw<Wx^3tD#n|ipvFjh^ZVV1<oa$
      zPqJB<#taP-wONU!UJpFn*;kJ479w#)ccu6G?$R*kNUk5`pVVPX$4UkUv2EcN<~xX4
      zi_Qj3PsAsZ+G)+Am`1EVlHqPMpe7#+T<Mn}iq((afw}#*g++WKFhV^xlT})Na_ajP
      zqx`29?tso4q?iI%(|l>4nI5aMd8pK9_#y{(&G-qZQ$ZHKL{?xZRxPE?ffWm@SYtlZ
      zaBPvTkS8kBqj}uLy&S$G-T(Tm>if!-ekFF>feLkMGYeJRr%lMDu39bWvh6OuQrB*W
      z8haJUiZTmac&%wDF&Sqg(=GJb%xl~K*HdI-wgu)+D`j4!{$@A&dXiWtdL4KMNAnCc
      zn(f$8cRlm0oKGK!k`ahcB5&i<2n_I#4a9Gbv)joW$W0fAkC1<s1f1hH&kdl=z-650
      zpTz?V!zkY1n8BMUGU5XNvm7r{Idk3LOftkVnEexDKcnzFE<ZlPl^3%wF}5-NE8Z@?
      zH}@Pjj`6`DzD?${oR@m$A922r&X<m{EWp4e6MT%y0DeL7PR86jo_UV-BRqKVjL_Eb
      z9e$uG24KLKP~f*hNGk-qN_cDR?sY6MVvTO7<36Knc!CZ1*h~m6bbxmWk^=YZ3F&}Q
      a4-=A)8T&OUK4F$eXix@$EoK_PH~#{({<H@G
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5Pg%zrp9PA;x7=PdT{Zhr-~qgc!*x2y>GWmvL#Kzb|d<;JP98B0sbg)
      zqJlT^^5(te?aZ5b|9E`^aD?pu9$`1HS}~Uo@=+-J)VNyAl@<%B#Qn8g7AMD9V*>bp
      z8E>Szn90UzOX#1O%D8hvZ@51p_?Pue53ouI+TyESh#uA=tRN!n4AXA1C}ow4%vn?A
      z<L+0Sno8fci>bDEa$0IalGaL=6KPGSe;$2Tm?dE^{l^MpLYUR9Rr<<w4ddVK4!aC|
      y56;YY0axO9ea3**2p%&aI7kLB2%njHSZ55m0;g;oVS`!pZ9|MrR)j4^56LIS5mep)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTc@~7(D}(E!*W{xd>j6o7k4pE#L($m=wf_mTFSP7@wxgWLey9H``r8|B8RW
      zXA(oBCZaDs_@j*9Y-_CuzU<u2eBU`|&i?rM=?j2GtSRVXm^Ph2-{%MXP&d4~>sR%C
      zL+BN5=r6aqvAk4rEd>#VnR9Uj%kOg67al{;s^wVz1BUKIa)%+ZQQZ|$^wL2<C6|{}
      zbR(wW0yKt^L_zk|ZSI(Q$@eVB%*jgw1<Mh|pi&mz3tqMbL%dKmxV^(YORig+5r5CB
      zG0YauCDs;@V^D=-QrRtH$B=Jzt_dUXEWfTl74=+`Ona;53PaD^W|aVYmFL{!6+se9
      zv>mckHxCWr`c~DcDHvgx3bnMaZ#f6twsxs-8>iqBL-tJAzkNDxjWaBqsWGJ36!{lF
      z6{EN!P44Lh!!->PxK0jmpFA!Hz982InrZ{zvh{85=AxKln4m71W(YF!xiU`GF+`@q
      zNw>vq6=RsuFpC=uQB(Luc}j1bNWNK*;U<y_5)6Hzz~6;6q%coua09Y^rSrj`mG_0=
      zw_Fb+(Ar6Mq@uMYQ?sDqBH}7^EGo!SZvSLw%eIBd?Yw6O72)`8>ohE3nS>M9ZBeUn
      zlh_U?I_tMmCk=}c%eSJ=Fmx&iG8>d%S0;d*n?H5@znoA>i&N9t4oT;cl^HEn1J4kT
      zESdTKc6u{XDgCchjs9Dpi)Qq;^i^neJ6r=wDjsb>JqiJR^i}Bq$PsWA{WR0)0>LnV
      zK^h~{O+pOOyobhNvOtzQq9zd<*V5lG_71Vn7=7Kq<&*SxjHW)|YJ4*N6=TPk{)oA5
      zyh_cp2GZ{_Sd_qpV`Lh*b#g?l=8&eh(y6p0lOj4mo?5IEfemW=5aZayB#m=;Ot>e=
      nqCixOA=y-uM2jrZA)R+Z0c*I66{?ygLHBT<=rR&1U0MAFJlH$D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8`Bxj)8NCk+M#zI5WSayWw+c>b1lTep#fjzO2n@CyWE>zQf+p@D#$vD-DKjH%
      zoH$#PCTX^|=|;M^ySpFvv=wRTY0_W%L;t9r-uGrK$soHi$1_iF`IdX{_r3YgfB*hZ
      z00a1=h9-f5yj@N#8>_~ZM9x_&dBwzX&P<dH$5?R_BZXq_(x_EhGM)2s#`H|b)esVR
      zP##IRX0Gg5-dZA6$QL<STB&WDE?ELQ3dOuY*M!<#_N+pJ6M4(dCnoqdouoh{r|eIc
      z%$&d@6Ai<0x!5omd5Si6of;cYJvA|NVSI8blbR8T`W_1gJxzNK9dcLOXwh~(!}ey4
      zLfH(XO`th7eeTGBK=?$iVA+;8%#eHHvjU;f;-VQr6ni!75!kH~Q07JphU@CshYkTP
      zZ+hnli@@HV_;!~O+=ng=odWmW2>>1Yalb$-4f%)&9O>C^DKOp$!Bz--PDe9Z80Lg!
      zo9D_a3#Kz;EEE`5bfTCu3bTe|$=|_b%L$ch1Uqn0#{<~Se7z;h6?nKY{&$lDfxXAH
      z$*FnT^v3KQaa*Llp7{I-$sN0rGfSRD;5GCL>`^#a#YB3tx)Nam{W`vY!vY<Ra-ScG
      zAb|l5N9n3YgwLyvK|Cx&c)n~D+;rY9I_9Y1GWC6pY|Vx7MMh`1Htih~xOc0)k+M}-
      zG@URWqtUW`$u3^DV;76gis8k&BN#$bB6i{q=4a)OVI3#&xIl|hDw#IHINT_bZ6pVt
      zlVK1zp?savF(!2u_KJSC5yX+ya7N&vhJ_Lkb!u$tX_lkuL~t4hr9z(2p&=YW29p}j
      z2@Ezoe%CtFaUM?!=#;AJ3)9wBqRethOS98DX5?~&%TJhVa#2pt>UbK5SZJJ16P+yP
      zHO#SI6z&9dDKTQ@)3#@_8|e5lo@G_7%KDtVDA3t+Hc<YSok^M41sz|3LDgTDxz^0E
      z;RJwhJw;8*5OR`2^3vQhKN4q9r*Tn79!rdVxoFvj;}~l!h6tDCpHgy*uK}{Eyg34g
      z?piBV3RoYz{T5e;nn<%9`Lh970!`K`AF68ndP=h))!IR|*D8{>H(b>U<Fgug=BPsV
      z_7iEFuv&}N1}*p3)u4-mtP5#dpwHLl?dR{{ktIZ!wuw0zpAF+GEwaH5gz=(4x8(;A
      z6w~oo(JrjTjGXKbZcO!I*$H0K@x0_lGyPVg;nn{y_9@d~%|`GFa`N%IjyLc%A}pm^
      zRTsPPttP!y7g7{&>3CZTIBW$Mgoctd_O6ci@V-F%lHq39T+Tbzisf0WCKW>Q&&jjj
      z(D6;F@||9BWX&^EQb1DuA4;Kpo5>KObXwjkEshHHGpNVUiRx)upr@uwd~{U%>}@Ox
      z4A(apbwMSAy7^2T%6smII(~#7Q}mXbR<~qsYYUxRST=KBGCrr_Cjt*hiB-QDlqS=w
      zw}mCG{!GWu@e6iR%T2kimAB<BH0~5v<c(P;njmI^c^wp>;Q#h*%L+ZWT%f=Ys>Qpy
      zCvv-dyk@G+GlNsiaJpD_a^|=t@5io&pEyTka-@z7^HXUDy5#lBQAjpXzPr#0Db}4F
      zH$msGFm_=#XYS$5QNHCrJt`__{}}iF83+Ev-%a>DpAo)+VV+GQre?wYyo7_(3BKj|
      z=H3l-*N(NQN&krMZ@`0ih#Nz^IuFrkj~WZ!5Hg4X&PX#_Z&a_K?<R-7f8Wrw^6eYa
      z>I@y;YDly(XPNt}ebUg8j}Y&RKB5M(O~kXC7|KQ;-N5m_3ceIg@lnC(2F5?x#Odq?
      z(wW}B;A{mG!~T0}DC7^GI^Nvhf8dRe@k|BJ_3sM>qt51kV^9Akvf0k&4J>f&23mIf
      zBV2)5OJN9Y4Cooco~6d-_;E0gW4t>~;#r)*b9fRLFvYuJ9tKP-;3{&s#<>_z4g1Li
      zDKjltippa+i)CD5`X@1h0#-=-89WA?qYy0~MG+;+AjJ0M)PdwGwC6b^Y2DxVFJ#uS
      ztGDk{Wd4e?H?VUPE^#P-Qlm0TBcNN24x@C{MHe!(4&OvIwEbAcWs)deUa52G6I^0|
      zQk~uX0WTf>(KW?Oo8%?>f+V4rtX!*k?qC9-wN|DOg^T;)QF&$MJ?2}hdhf=|Ojt+{
      z3Zf<z$Ktj){zgEhK2n=_CEK@w*E0PTe6@l%hlBS}NPLQ~lkN)MS%>b=esH|GcM}=1
      zd|+Q_1K%Q6wJ^I?k*zVzt7yjy1n5PEc#SH5i9EcF$MKp9+2=A<4LKEr+=@r>9ekIe
      zwsZgY6qj8*{e8t{j49vZavdMlCFFDYdI0QTpRd#(tRpN(H>1~y=1<qLcN5pMfr>Zq
      z%S`{xTO1PxzsR~2ByY0F-=aR=Mkn53eZGrcyk7_QU^VhV{0cV+b`Q`08o%K)gx^vS
      ienT1LTN0tdsNi?CO7M&MLuJ!1=5SzB;P)z;Kl~5Q*j(EH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>&rSj{5XQg4!s?2kC??)K0wxyxbHZ>@OiVVKh}nBtnzaPlO<4>+mM0PqK7bEp
      zoC5KnUcAh7+TVQrrv3PQdk4@)%}0)*mFO8CiDxnAv3*H1!$+~?sjy-)<=4H3o{r5>
      z>7+N0Wtu6YeRvFeu7fMXZ|}bk7>bultE|hAuQwtF@5&5ifIK!!D4@tt36++2v&lf(
      zM==;nhH7YHF^+^)u3m3?*^`<woQD6k)?ujC!=<&c&<XEnmYjDQku$O5Oq9vnWSY2(
      ze_;$k-^^?*Z<Mok_}B0!t_w#X8G1t?M=KhQqEFQsWk$KsTwvpMc^ps-2m?4gw6I01
      v(h8!yO_dWUQ*;7dA{|?79xqV&sc=r@#Zuv5MXeQx$1bX*K_5fiIqZJ{VF+g5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XdH6#j0qO`3F}X(53c$`1u;QYD3Ai)|^SA%(@zmbOFzXJDJI>DFXZH(R8m
      zri=qaeR0M|86MPeWSr@P&WLryfp;JLXM7jGyBm@K5Bjh-_uM__JKy>4Ih#NK`Ta3~
      zqnHiCCvd1}t)`as8~V*u!CqT&Dyijyky_Dhy<AP5$<EFi`l4Y6p$J5zTdJg6#nkk|
      zvQcmZ0@cc@T`&ZES0@DgE0wB%&;&x4rnG!^b}pS0*p{hSRY$j+yk1&0{LC!`I?^*U
      zIW3c(*QTfB5t&3X(^K==_vWw7&15s$q?VEAeu3c3td>vDXQfFNficrEopEOCOXLNV
      zOl8ps!;hGXZtMs_V7H1k1mx}&6+yHMbmmOUm|86_81}rrP$J*%T&19w^15wGyMCxR
      zOC}3Aocmvzj0&{%U7bke!_0I*#jDsyI+C0~v@h2bYtFGvt2inh58-eSuRkZH_f|z8
      z5(4c-!<krf46;!A5>nIdmw^Pjmh|d{ifzo;X4!Pi8`7V0T%p(!z$|K(V-yXWTJ$A6
      zfU@o^rJ8R@KAgQ-FjgFsw-dxsfr0<1I%^dwi!7uO7Q~>yPPfh%(4``8sTh(asbtjP
      z8OAZ3kQcQti~+=?->8Z)oD_&Vwr*8Rx?|+na@wL{IpznZVM{rr8WRaEj8jMlar$}v
      z)~b$CRxyDL`%brQeXUSgSrbUM-htP!qgsoa&yF<NMt-NfLP^X<TK2K*=#pWv<+v7|
      zB_5sUW0DQM7r5mk1#gm-M70D5Kylnz2+z6mF=@)4+uj(bBT_W%XZ5nF1AN%9Tp`<)
      z>u!YjOFrED&_P>mvA5CQ-ePysj<ncajAr9t2iKiM$Pz>Fw==ngXi_}HuB87VdVY4n
      z<6OI;a6Qg-h@ry-KY=|wQN1wqVlOQTxvvg6Nk|{h!Y*Y0uh`#2+wK-MLbNfWoph06
      zo_8IIac;p>kW=$o9W!0W3?+$o@Hxn^8=hv36D@F|23&}6Ny13DXB5xY;X0E2FIVhw
      zoMhNpayi!m+R*^*XmISu8+DE&1eH=olE0vb&#uScp-tKJZ}Q9ssb#=@pKH-C($Mcs
      z9HCc=UJAVi+{+oFS`txxgkzVf=J72I|MUXd#TGQRj^>lo^&*<M#{9B@ew6&iB*FM?
      zAqG!I_V1~EjgChcxV(k8pCtEeVdP!+_2779y|;E}Sn0y8Uiw_<jjY$c8V?OC{-MAF
      z9AkJ)iL|c`D>20jxQ|E|r%PfFUVng)x4WYcE4Kq88tDD@>0b<bfPfpi@kjee&~@nv
      z`eVw*Zx~O;@5B^+gDuz-Y?hiwl*Heq=$FxnD~RDL+wOfF#C7yT=ZB+!5g0g)A~INl
      zhGpdNA?8rRD(xC9+{Q<^iz>c^gZn)F0XJOf&T+0NN?p1(e2+8kymaCor$aV#KjY7G
      z=VzXe*$^79XcFT%Prm^1;&_L@{Ku3ZD_)qKt1>M)1P3Cg;<flUvJoQd-mY!43s1al
      zU^Ce4j=e6CPYC)c`|dMNRE<#UBzB99`*}+r9;lNgJj<M9N*^v@s-F51iOSSbPiEeo
      pcMG+9PydcL(|Ln^m(Ckxf0ti`FIrMW8!4igcJ&aLA*c@*{{^{~YRv!u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>Yxd6g@8<+lev3xN#sj23ksS{DEnpDG&(QP9W17$0R0%hKf$?!I{(<2WJ9J
      zMF~(^q_#pr>JKOq5}PdOhM=lSyY5e@Ds|r<QF`8ZVjGD?J@UMdx$oR_&%O8k@$WC2
      z0N%$ZUUUc?te7jQ1?{HxMXFR^U9xJag_53H((2mca%yyJ@^am<^tu;{KtP(Ms+w6z
      zP0TImB}<^|QeK@No19AL1cWNEJzF!EEzPv1wd#uQq8}l!EnO(&)NHz_PUPhly#}%q
      z`Qq42@!C{jEUTVVvvS`h;4Mt5)9K=vT+*ZGlwlgyh=40PFfE{DYh~RB7vAz?2Lb{+
      za)znrR~F~=dQqFJ>H@)Bt)x|_wYnkK&Zc6`8_NQRa{nvVVdCDBQD=;bYFc_luM6yn
      z=IrPfHETZA`Y=2&oADuxh!_0=J#RAcV=wkmsX4>S>1M^6x1&)#XZJHk{(LxqgI>HV
      z(B0Da0^RuW9u6_+l5SKvL`MfkrK<ryVu({!tCm@{^mM(ht;)|f6M>{3hmj(f9YUdQ
      zEE<+^lge~ORaKqM(2S`v1bW{bkPiY!{WyjXC}u@B^}1&1YFRfe<GLZ0@DRuG^`Rff
      zae}_K?6v}QN4HFd{Wyiw0=|WsVQP{q6XA=_X5?dY@fmI4!PY`IOSQ6LR_L+n=+;@P
      zF(0Nyhz=P>r;THi8N+!m&b?NnQ>)9CzUap|SeRY5?^11vTE(1PwpH@5+EC-QEmhW>
      z(D<L@zs!G0CTqfvf=rC7TB~@@E^TE|py<aX@JQIIYvyv5y5)4O+|o{_OJ+(PAa{4E
      zwqmk_d{ecRdPzTL$m;EGHr!!Z3)s(O*sXxwaKpoum+m^y$#qxT+Q;>_wzZ$@?QQFB
      zo?ulY!1qof9OWoDx?>v%{%k|`@a-csFbIX|4{_#i7@-%txDo{I<68n;B@t=6JLXp6
      zFR<rf5BAqy;+;oaL^qIl&Tk!%n7t$pmPrRrFqD&|FwFhqHhymd!@(ySj__V$a%BlS
      zo~mRc5rVN;xPJqKvB(C7`ji(q+49kCi<Bm(47!oFv5z%QHL-&ju>~O#&TuB#2XU4&
      zDR7XdGV~-^ty#zO4I(J~7Kv{rHb48dGaq*)UGdGA7)`j6a*wlQi$u^iK2N2`DUr%f
      z{m3Q~Yk)L~M7W=!3j*U~&SW-2$Z_Vf-Jf>c|48>T@Il*sQZhKH#9e*L7Kc7%iv%|v
      zBU0*9TAUi<PcV@M`oD;`F-c*k+5{SG@)~UN8gzKcQn+CAl2?&rsE{phh6Y0sq2L}e
      zTnh*GJw++}@Fns+xX5?y(U1~S6e(KL6=T|_0{iYhE-FLrXE=}yxdS}n4JjdadH%~g
      zkBi*7dUPl5(&T|#gxvDzlUILoTPfQg?$hSE(n6!dJCE<~#NYC8E8G#5IB<oeW*OpD
      z^y5=RagEiaG1GGl>l!Yj%tyy{7+BzQ1E1qI$FESeWf^Bs45=y0TC;A}oVw|!P%?2Y
      zo(eg$5XHSrzY5~4?<1VKDHU%6Cz%zlWW|NU%1`hF&a8*sa$H*vd*t}rdf@kUer~kP
      zUYkOl5X-C$i=Di}wz)}Xx7Z@9HqA!sgqt+OBqHyJ4tXOxPXDrL05jph+Ebiw&yQ@?
      zk%&ytg@h{-Si93uUl~%Kp(hbi!hz06NGZ?XW=0edQfT_*)jtWD10EnAg>P%}!@PZ@
      zXdc|-RdJt{{WS*gfVK7wPIDZ`w-oI=<ncWv`N57rwj;SUBbc$9QSfZi7PW)cK4-Rz
      UH<pywg#?o-<&~{EV=H#$KRj}fp8x;=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U31$+6g_J@mE*|$aM}<EEe;g071!b;K*6P@N#kO00uy(VDdmB+yf_NB?2%WU
      z_^0s73$N`AO(}Hx1Nc!4XC=oqA00+BEA8&xbI!f@tp51(w`Ty}McqP5!085&dnoVA
      zBi9SZLp^X0J>?F=pzGe;-K-Cya90MMLBBQhEo1~Pnpk(FyeRbb*ln2)H4PE4WJeCQ
      zQUb;13H0;u7`Ksx*91=8_rtCq2#9Yux#kDHzAlh1mG=ZPn}d$ZA&tC^dE~M<W57f2
      zdrHdT92PAU1XfQtrt)KouXlHD*QKWi;n>D`To733D%}W1S_U4qt(Tf{9zDrCTRQZE
      zZms-(dgmeVl8rf>GG8y-u#gov)AR$i6ZP9Fyd&E^f)|<tPxkg?=$rXuF{2Oskw9fi
      zG8O#7db2<U6|g?)whB}zwQ4EV5tu7A%J(*M)Uayfb-Y0hN!X4$(i>x~$TL^Ew_&Q7
      z4Wj;JNi<mFP>rIV7Dy!kWgCtG$R_|Tr47XbDyUkxB5>)Xy#L)o8!p}vm=B&4TO@8Y
      z%6k^xW413i-t_yv-c`~&P@SzKPYty{pbO^OM!ba&1kT0niL~EyKbNC}Z8^+g9r-M-
      z3S1^?H8E?|bh|onMfC?YzS3uzSood^|HMWO*J!9=#FVej_WY~%q4IQX#s!m=^1qi%
      zIj-BdfzRkl<5Biyf)xv-xLWMkQQV%K)HGB(iu<sbz|AJYw&q$iv8U?3vCD;j-m|L7
      z9jokbnin<2hn9=KXgIzz+~JMjxWHM1`-1O9=P_)jaQauAeS{?^^9aii<3q1-EbtJp
      z$?+EQ*y6m76|UIHQM`(aoUz|{Z35dStf4=@lKBZ%`f2vT%G2z&Q#nSl@__3p7~CaF
      z1HRz+B_%b9y-n<$7`vF9pI{RSm+>ai^Sn22;q6#9-8<pyQCo^wMdueR|A?GJ%43u`
      zTUtx6J$r(+41Pvt{~_Z~6aNzbV6z%pM7_hEeeT?47T?AimJ-aVh9cf4GygZn_8d(C
      z1L`!H7JtY3-N*QFyHfaQ?HC{L8}7;ze42uj{#!MZtiNM3B+jDEN_b@K%w%1hVZ0eL
      RX0eP7cEB|27THqR`U_ZPIX?gZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U31e$6g}(M$Z;G~+>#Op5&;El$6)9;O&Ur937#=7V^g;&{g{okam2_gkF;W(
      zztZV@Uty+g+J+&Io#~J2^seMcnJJyV$lBfGbIv{YuKxP_k5>S0;emk+!{vbtn@{;O
      zK5kn6{z!Svr<Q1rd^u=t^d5CPTfLEEAj@z;gPMV`Lf=vQ&7OV{T`p~JNDu~t+kB*i
      zU@+UqoGCmaY{l>uhEuDKbkrKdRJGP;DBK@gVx$~T1_ow`A<}ZWHsSIh=y+<=3#FaF
      z49qetMkpy%^C5S4J%1?dFS_j$n9~ePDN`pL?g)RAa9kxIhU|uCivp%lF2X>*fVVJb
      z;4H)W<0_J5PNY)A+c?K?W*}5=KTu-Wl7ZsVqVg|QYyTI(G#DyH<Zz1NblZ_4_V$?X
      zxI|EHdlq;5+;{YPvYAzTPQY*_p-x==yI&M=S;ztLZV4%Tu0&4=n;}<i)t;;yxI`w?
      zTw1Ox2Hd^t55l34X*7Af!!U1A?#dj7fiic5DLp9(tej^Q*+pE{kzHdrTWzO&J>@%c
      zuu|(6sLEOqbu3erv7e3@tMz>)sFGau$-3@+E>d7%Et-a%aF-#YJ>EL*Z!`s+&~+bq
      zj#R==T35hLlxOfhJ~Z$Fp^w}3`k^c0BYey-EmH>uIcT+NeFL9RJJJHWRIxJ@iBKM^
      z40S&m_3JX4B6AQ2>-pv$4=5QSO)=i%6qB$ExQ(j@?l3g|!&BQCI;tzUwI|Y<rdvVf
      z?+Tw`HcqQY!$pnLHEtAfPx~)%+m3J1B*ttIwYJdnLf;abjvk;=a&vF!s;E&EE!}w<
      z3q5o6mZf(Zc4RP3t2~_+P(%rD&}xl#8T}UP2RKvz4R8K}`4_a#V1b^ch-sA=)-Z!R
      zIIod09v84kt1Oma(vIc|39Xfv7JkI+Auev0FCXB_(Zb98!-XG^Ydo(venqwMoFFm%
      zBH02qh~yqg-6zAFn8Oy%;Q`UNA~`droX8P58n{k^Wz6CRn#7dVLpQN7rd5VGtIL04
      z<`6fx5Ag0${b$TCPc6Ut9q(oF6G~qm;`VlV<p7@^y`cXUF;7Z52wid|imXFCpVLW~
      zP9BqXAJ_0z<YzACPyAHz8M&Y@3+^T^zMi<Kyxzrn7HPy~!UEsW^IOvUj=X$-LZ_1G
      OR45;<!zd%2-_}1&7hTu@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g>llE$u?32qNDC6<SJH6c8;EQ$7S!AW|S9JT2`&mn^%R?N;Ge_%nEw
      zM8OD=MBe;S#yhhGYB0u!-TAuroO{ll`T6VHcK~CUQBcDW+q25rzW!c6)bj3;<JsDN
      zo@<V4?P&|P>y<5i>A*1+1Q@zSm{#KXvTJxpT24&(nr;>BgPdb9D0)G6JkA+<vv*Ld
      z5z`Fy(}rbuGYqxE@lA%ntX<$C)FP}xK~O;>(ft!61Qp>1Fx*p7hx#C*3|*9w@>Qe+
      zUuxG^kScLr2;n~36tpt5N*!g-Ftu6RG<n`LY^$W=0oobVl40$c+_SA^-C>v*&dO+0
      zCqq_u_9-}hcPH*|Nk~ddi{d&|bfSx-384(p3eZiAkR8by7GEhJ>~MEo-!aL#Xx7f_
      z=BDl%VqMt`ctxYcFm%_|zx9gTZRFM-A?LW4BjpTr!`qqorl@LAMGXB6O?si=w=Q$!
      zaRLtrj~HsUGgOwJzQPYZc`6bUDn>+NgLS>DV3a~{-I;e?+YKQJP4w^yLwmJ%>qXc8
      zAT*`pn+l#XB(K|hd!ytX$r=ZSx5o8+kr(C<^V|{Lp$oH9-reOcF_wyU*(|Ks-lFa}
      zoQ_gAzWfgq*%S5kz2O#jb&qWFJz9!yXF_zNUZ@xrQiB$C#&?G;F@$n<+0F9>L-grh
      z)#FGB59mSBWu}Kk@Zv(!EI@O*%=B-d)drn18haCG2qn&;Zk?g&3nGcnh(w!fFM?mu
      za*Bs16jFn3`bP->7^nXvB6yA-OwkAGg@i#b`e+rvBlK4&ij*lzXcw4U%Rj_0a*BcE
      z)iLUmSC=PruArG70>opGV>Q<_oz4)~G(CmalB<m}2(Q8=W{)vMYysg=h4mwGib`XD
      zvc`|mxN?r<*60~hm$xO<5=n%_jnUXc#e=>9Ir^n^Nblz8bdjRoq6JxWVGe^>l_m8_
      ziLslKVt6J?Y9W`$F(HeYB)fdq-&HILcU}aS6UkFdB|j0RPt_!$a#Z~~C2v&0hi~A+
      Sc!{)BtVr!OG@q6TuYLn2%_|=O
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Ou9#IKE-^13{`g-|srsP+
      
      literal 0
      HcmV?d00001
      
      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
      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
      T$Qh2@Dau(@MUY3*?vMWmh=mOn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+j84f6kW%4Bgb(mb<&nzptq1Zc5Efkv`t+oX|4v>37APIz{`nzuoWChqf4jh
      zr*x(t(HVvSoq^#c4}28Ek}Rus+Uey*I@;QMpS9Lr=luKMpML?E!<vSaK&5R3`mTH=
      zAM1v@@A$U9Ybf0_+xqhQH)?-Vn(msilq-GPZ91lgw7^`yM)#BvxTe3K6df&DY)Qvg
      zuE5A$(=z=p1&$S_w*=Blc1vY2Dv)Y*vN(pZ9F8L=aJo<r(db=iwe_a&npV3S7M!e`
      zmTClhJIeiD?sSzvzHS?`yCq#S{EmZZzhim=v-Lj2ccWDm$cFe#*)^ZA_vJ#Z2O}Za
      z44JC$q}8(b2uQ<(z^Mpn;G122U3#4d(#c{RXF?_;8GJ<0L{aI<T4{AE^(@ZgqJ|6o
      z(uicu@>N^8Ied&y1hhx88>o$+1<n*|(*s(>Y1MFx%Q;-ZRch%3zQFB4$u@R&mEl(h
      z3ggINuQ-&!BxM}N=(tupgDGx599NcMw>XSZ2o!RdMv+)$G+pX7o#_4262GW@y>`?O
      z)iKPVqM<Bsy+5M2l;ogeR^Yg&{J<gJm~A9GC6C;paWgNPoT$-jZZsx=i*FhtM=pID
      zY$xy)Ei>NB9h@dz@pZgg;sei7hQ8Qs+q8XWZ&SK*Pto8_hGWr_)FYPRek+d+<@ly;
      zc^dA}rICM<{F=qto2^%yCuJJ$3QP{2)(Fq?I?w1377aXVS6-Jnl$OC)l*<WOcv&o9
      zEQ2M1iQ&=rehZY2sQD%-NVaJQuAx@V@T{JH?PXF4@zKdNGH)dC$uVPuPmN#mNO1*d
      z#eC)f+2>rQaDvY)-@qLvR`CH>xn3Gh;zNG%Y#|@Fc*d4##^zsOeER^W8|D1j3%}#s
      zZ@Bbu<`84${I!{IUCw{1#o^+wxL*DPr4(LnIE7I*xd*Dn!?%dDxQ|O%##O9fiti#;
      zaRX}+m|}0k7);1w4xdE;=kYnSQtVP@^k&5N6mBtco88mQS%`Qa#-JO0(4|9MEB%A&
      zQ%vyn#Z#Pkfrah-y#p-%UC!Sxy(gQSk%)ETctGhk$Y_(-(zlpIlV@`avv^2E+Z6W)
      ha^A)geq`oP1MC_Jy9O0mj@UI4cB=`y74k}9^?%4<qND%-
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      J8zlPE{{c!Rmwx~N
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DU31e$6g}%Wks?F^2a=|CilMZ%<$%gpzf4+iAYkGqfWefeJSfW6QBZ87$S$GN
      z-_f7IOCQ>q#$o78hbJERQB2QDCUJuM&<Cw{@7{avz2}~N{pQ6#0M6o}hJ?VmdZTTx
      zIUVPT?FO5zuxYQk(%xuE*Dm=@_tC7^T9v^qCvetfD1$05G$aKMs~FpN8g+Ydc}=>Z
      zh7o~$WZjT%JMhBI80Ly!Z}POdz6V4g;dQtyl>|nYRi>)<R0@c)fc8jk#;1`>Uc(E&
      zp((diDwp#$f#hs+MH(2wVG|~f2n^-&H3MTfszEn#4C4aBuHS4B>}W1u*<WXI6aw#?
      zptst6U}6-8+GR`}fFW?G;x*(#dwp33cb#RQFsVw@b^MwWc<S6UCc{;4L*PQ?{}Whb
      zg*nxY!L%Q#HV)EKmtk4;m&+?oOdg{F#6+-35@XOf|CSp)Y*xd-Yt;Am8C#1QrUfQ;
      z+mFqqw&$<NKoNMxgpJPxbfV7s&IY>~+e27nEE+h63mVRonO(5x%EU!joDJg_C=UZ)
      z;42MZ?h!|v)x_6e*ILK%+j8+IflqSp4yJ!ry&en{Frx^f1djEG^zQRD9hWJA>@Qj6
      zS~4+<s{$iVt0fyN0;dPX^kv?|Nm0ifvC6d>12=F}0~t@hovytj>UQY)_B}2p@|YJG
      zr!)tYuH!q(dpfFXQMp<=ZVNz1l}SofCMn>aDwsph<jU_t^hU+9zNb8<v-8y%9X}8>
      z`zxhTZMFkf&Us3pQ~&i;&!~yv1Z6hFZ<uRR37_vjsbnAhDSG}#cuyU2eUGQ7NYDc~
      zX>H?>Rd|Jig)UMrG4_mae+v^<W($+n)E3fz(kp=}uH(c9+ezXYCNPH#t~2uud`PPm
      zqv1HRJP|jlf^2Z7>PSR8Rf($8j4D=j++^Gk|GFj8nQffh%@)VpAx<^Qkd6IzGUySm
      z%Al)f%?tvk@Nus{n}2mTZ2g6aKe&loP$U2kBS15D=mAo(_>>k^RDbZ~@B4!51A}t|
      zgVXzi9}f(sbb6V8BOR(j=Wi4qSY4d%;_P#LzKu(%Z@ajnnt6p2>N0hWMs<FU>%2)-
      zxOB1b48y5g>U<}5pX}mp>VCXWtNnx6Z<mr(G`S9^`!g=%3CZd773u8IvlQ|0<G+2_
      BMJxaS
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK+iuf95IyTSS6o_}Cgn~jx7ca1ctJ=YB#KluZCWZC{L%-saTmuSv7?QHn!f^x
      zs1gr+03U^zwL>C85Qqn_XJ+S|Gnf7L{mWMXk5J7*W2kw-(C+XL{LFUcs2_!P#})RV
      zFI>BMaIkyCCGUwy$YY9Rp);(gWV_1)&wkbF2sg?i!(hhIfpCY?k46dpMb`_-YxjO3
      zVaUH1qd_DE?=e&wKlSY?xG#yj{+b7;VecuWN8D?Oz>C@p#l}p%9z?<uk}@)VDc<>K
      z4BE*ydC&a7kDfC;ss4?80o%#8=`iRo!&6Z}3YQElVU;0OHJv;d)(m8kQ&!nP9tCAx
      zHgEw3!*at9#Nn{l60*r#UBR&02wmQFxb&4j3F=YXA24i9i~EPkQ<IPXryJ8LP=U8p
      z6Bii_Pel8(*>6<MX$^mzzQQzT3n&q0(F*dEb~M?7UNzMo3diA4x?;yylPLf8m>wz`
      z+@|tU^rh+4)oAHy>T0m@pT<i6G~HAEbS{(Eg+>{`nsts9t2Rc_+8m=~ZH=-1iQ*cr
      z&{-xFutS-<#8xNt9*Wq<Rf<{(9@lW4JYtG<S!^j~Ew+@ls%!~2Cdzw+OVM4<s%^4!
      z+?=T;m^Z}Z#0r%pZ>o@+D&*qcG-9m8y{nFF@|1eo`i$a7GLjZDaqw+SXe0>}LWT|8
      cp~yVAG!OO{g74zq0`U4gc(4$BKd$e=4^5@pa{vGU
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=%}&BV6ot=}LZMbr{KKU?iouDxL`lR1H;5)E8&<<ODJ7*Pr8V+anrKX1_y9hX
      z@wR1S;>N}NoHOTsb7#K3KRy8*W8Z+r&~*HmPsO8n;xb&$qkvDP;)}VG{Qg?V)00~f
      zikXU3I3Uk}&ajchxhH&w-;Ae9Mg|HDcIqyaj6*kCW`qmR2}n(5zaR{GKk%hu&_*4G
      z!kO#4QJdWQsACTq^vmEunaE+?LJ4JtT-_d)Ko?suP-Lj|TwnF$*;s{lV(by9+6$!c
      zh9Yzmy)yM^;w~6??_W=BF%%sY^|KE3x}EfB4uUw8s_Q0~)&BUHqvZ8CpeA!P@-+0M
      zSNdp;_9d7!uaWAK)@U^w@30z&Z>YSanN6C@R137I@|-H#sFK>v(%8Z_DXL4UjA%P_
      hmN7Z4jL!0nS5%&9qanc+Qu8XsSXp3&Vc1JkwI4WpY_$LY
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<YflqV5Iwi8ZCREUDn3w9@Yx5j;sb#iAFW^-n?h1U#KsTHaxII?ZnNDg{3kzX
      zqBfC4KbrWXj5FI!g-t^?cX#g0oHH|L_RrrRKLISDm_S6}O4IIWd-@0cKr`IKmgi{i
      z<)QY%?rfA+U&_M-VgjQa*DT#`YU|s3((n?96Y>Pgv_0v*(+%0ydPsp-yCn_EtDZ<?
      zXOL1SvnUXMWZI_pSYRf5dTMTyNXyQSR1n38iXo%~qS@SL0;54cy)J7V%i3`KmR1i8
      z+44-sR*=TX5CqPuNFXVYu9~*2b@sQV`%2%oq(G+X7`nBoyC&ZQXUy9*+XB<o(}kir
      zlG#SNQL1n|mjotHn_9sHCV7C13UzdaErkeLdb|D6ad!kFjWP?UTOQjbfs{%5>O4r<
      z>Dc5I6@js)^eQ1g=}}?&tcshsB`{1m8-3nbHrFU~cveLYd4U9l>wXyyl{j=q#T@1Z
      zR0=(_nvQFFyZZv;*_^+gp2T&}HSK0GiTkty+PJ_FrLQ^ezV0RQkeaWp*T}1ochxp%
      zX*88mcRH>i*GyJB)&I%nSt`ts5>Yy5=wx_B^p_^dCTZwBOt&|P&;y*$ccB)3WB3T^
      ztuDrX<qO}C`9hHh#yL(Lz#?K;B8Fv*Vg=_=q{A_vfxZ{$#&@nna`G~QIt|1L3#9W$
      znAj@JPIYm)i>dzw6rbb?Qh4f<=6mUV(loAOn#hQP#=7Qbr*R!O`~hh#L7}_!<*a1>
      zD>C14`xDu{5#ql8xzDclasqb2dm|4E62ccghwznwcv|jYycWjS2I3d|x?F#bc)0&)
      q=3W?DKL(BVTYoSBx)_GO9td6PcRd?ajfgPv?J;DeUv$}5W#u2}RMe*c
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~ixX7=BJRAt8+xBBjN$8j99rL%UkAexzcdlp3L}QxvB%UM%4>Yz@1(?AAt|
      zah&m2c;k5GO)uIRTRQ46dh0*&PgI|CvMk$_880|z-}k&9&-1)5`TNOldjQ_RQXUzB
      ziMAKnx1BrAUAq-@w?p6lLU!#dUbG@xfee>qH;=5qkP5Loj@P!YuiuufFpmL&VeQ?K
      zttfEAuFYTpgZToPwRwR-r_=WNvbiNtUOuR>5(ci<ZU_uqa6LDi6*yj9n}0T-wknXl
      z<Zs9#1df()1VaL23~e?K4?eo=dh%MdwJw8?o%N1XZT*(hS#<(e*|9SlZn`@Hlgt0h
      zy-|dLQPuf4nN@46gG4e`LLP-8PQuJ%{3&f#x;vrVD&Zx(tmp@U({1_N)WfQ#5cd>p
      zq)F_%n!OeiB@CiSf&5#yc4R0Znlw7nYloWxrM3*`4x}Ba)>6e2af^()?6oN024$?)
      z^hD@e^n)!YETB$CH|9QNUHN6?bSTKNLqOI(V{`xM`Nd#am9sv_cUPbg`n}G1%y6Fl
      z!=8`a&V~#MIL}F@x2v*NDPkILD~;djgAh}xt*VGd2^a7l(K_4P(j%oaX|(&H&j=AW
      zZWQo7fwI>eF6F`HJh?x7JK5hTbUXGZJW4o+1%Xkn+9A>wu*e0ke6CP^ph8az6j%Hx
      zXvsxaE!}XM;8`UFCb%~S|8mHntk#GBf@L*h-g)|upv3bzTFZ<vco(g@QQw=|#q$qn
      zWiYIKyn&0%n`1Um=|$oNjL=f=s<O~us&+<K9*Qe}$I3arnbt0jS>_*whd5Cmw|>P5
      z!+eYvt+DJwR1TVr>fj}0ah33{VHDRfj*oQXnO>o!v6(bBaSD?frioYhrKp&iXqGTu
      z#pxK#6mJDIBkrqH(;Lv9o4SLNL-~8u1YSdx9wm^?TfOBJ^8RF*O3o$8wWRHtIN2y$
      z{i%K`)kspOpi)%d`{a`4y-@!P;z#6+dkVl_{Z9yW|D-&zan+dp1taR&oSrhL_0tcA
      zFm=Mu|NfJ`$2vXEmR^C7`bAXf4#w~me^~BPxh@%hjTwA{^ZcI2w;G?-!;mPyfU{bW
      zNv_!I9DarxoBVZG$_urdG5Q<Y2CBbf`eymfUA#pwl}C8DJj+7?dyI?9yv*YfuJo((
      OeM+5bqE1uu`0zjUZ8baq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuOHRWu5FMAcfdXwQzax;az+#<MK_FGM6e$u5SQ#@iE{PpE4r;E(f&*|U!~_sj
      zr3>5g`&e(D-#=d80N@l30%$NeQl{iH@gnA2x+?dUKV!v5S6B^|L(I_l8{vEvK$Ahg
      z7V=aW#itK5l%7G;hzuF*h0*wrOuW-Z#l&i(Ni+z*$<phTPedL^w+uQLbBVdv))WD3
      zGB{qDWHHFEfk8KSR$@_1XbD9DuEX(4|Hw$2QJ5cL9Icj3ORwyLjN<9y+-7--o?c%I
      zqdNvYg+6%_4j&Vg4(sW|=>CjB%VAMpNmdV**wRV7)G0X+|5tfZ7u9A!din@}HZ|LV
      oHq;FVuuk{}p-nnFglxg~64Hg<m$nZ(OUwXv$w|LKdjs}A0U*tO)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+U2hXd6o%h%K5U#N1Un8ieAJ|&O*SbDZ6PU6`AP!?oU~HXpjK_A@n$d!&e~e9
      zf%K{c?)&izXv+_v5;#&T^^yyIRMmHONAWr_QZKx-GkfMa=Y7wNU;q2pKLE~PC5@DT
      zUG-beU3p(VblhO85!Ri1YRkE)wk}r#r8boxE<JQrBlPNi8vO#3I@W0_w-tC{6u2yX
      zS=}8uC@>mDdUa=21)i*V-^)r(2@JTh)#O+xN8fAGuR3dYg8Bpfxg;>S;Q3y7L7;DH
      zdR?G@vA&_Q=)-;s`;grSfddxO$Z#xszFKK*R#dPSvvcLTD{JeL`3N(M{ox(2DKK09
      z|4La#VJcDIY8ZHawKTo13mMaejIz)T6-uurklPzcUwiCN#B~&Fk(sIr7h_uvO-=U<
      zqud6I2v<Yt-dhW#8<}$4!ck<iDB^e;Cj|06JQX->YGE(Fh#7&Bn?}y0MoehLq(G`c
      zr%Y#dMeoJj;t5cJ!Ppuzr7^a~JlKOV(G(ljV?TLBy2Kin(>NnA))5jfUuoUGt%58*
      z#Mv}H5*X<Od|tV$+|a@~%o!_dvPm8JF8ZQgEM@UAN@<*@ogF~*$-)90fizpOA~)&o
      zX^drXkz&pl_2jaJD_CUPWuu||4IZc-9ZvQxSvT|cVadWNI2l|M*k39}*I=Vq+0ytT
      zmUNCKW@}dHbm9nfVFa?P^;Y1jtDe3~<2~=`DXk1AcvJfL8{jXcFAOhzhVQ&Yd=7E8
      zz;(efYj4A{#Y+tT$yo{`d=7Ija1s5O<Bm%>$e9&KBZoX^nlx%i*SIUiwIO?E8-<>z
      zG7Fhw>g5PE7Ka-YH{uWu6Q-eW8R*xH(M61Op!RH6kvWzJd}GMp;sCyj=*4*74t>PX
      z$%>57vd3}6<Z(D^8wTtb7=F%|*nz=l(Mu>F*ip_qXEt9qoAdPWm<GI}ogCVDyJKct
      zXOq>2RN5luegd0MU?&XrOBSIGEoklU#M~i0%(QWGH~2>y@QB@c%ziwHz_GoB9Rmt@
      z7w<)t@{aaOG2NYFW_OC8nBr%q_=PEceM5>_ydS0D88<0@U>~%K`M+`cE4z&k+L+(Q
      zC%Fr4T%uo}awx}%M`v<Z^<w1QXMDRwq1QXj7{?$vPkHcuW9Oc-cfVr-fAHVnS)!VG
      SBlrl8;RbF-)s&-#F8>E4rC#I!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fo}x5Iuv1SCZumGA4FnJI3)vT7nnnLYxTWfG|cu#)Rb($gLJ>kk(o4;@uUo
      zlJ{K8ACND|tMg)~LRDT<m2b$mq;h5@0TIHcRHfD&b@!ap-P3>n`^TREZemSCk3gp4
      z){TeOmi5>u`HjucGrp1yV^%gMD!!C8>4wu*DfIk?hM2%9<!LyUTQMH2Ka{0V;OLm`
      z+TpmskxX`3AeQ&aGKnKdq|l3_0w;^ME9dI9b?Gl!>y8vi7rm0@EL*;<&Mhz&R_#DQ
      zFCLapPN1(M!+FaO8xsXL2rak7<hL`$U5;kx+ioS7?Vhx-S7nqZmqZ^<Ye@f3X){X-
      z{WwE?Oj#4?&t&)C6UQq8J>{y(axR5e@f!2UM|H~y3KiG$W!?%%@k}?0?8XIwp|0x7
      zRb$HD*s$e{bex*yn$j&xKZ)~5#BoVLlTO8|S&oLw0#^@8ao4%0oZ7*ID)=e|1^(u!
      zhU)^CyGE+N4Rc|BbSY4GUQ=PZK%Dq+U<JJN&4Z?BC)A{0-my7MNern321%;~p%ZAh
      zDRBM8S1%ULcK8Sq<m_6tXpr``n)B$(pzd%m58w4YlQh|$Bn|Hi40ol~*^UKSlJ=G=
      z&MhP~j2$G0ajhQgM&wk)otM^r#tT@wapgRDsA`+ij~Gp;kh=#l+G!9A+>V%11&;G&
      z&9TOOk$vq+uZOl{m@>?1_=s>+`Usn`f-3PO3P`B0`zg%f0T+T*E_Y0Ob7|zVYe{?z
      zQ^NxP-%XVF9EUr__S_(aMJ#c7)ZLm_wl|_p!8-&lwI0t7o7OwrIr9ZpN&9s3dG001
      zjgd6Hx?hshw%S8y_rCwumb;<YU=U=_B?-jPqt+PD8c%Q23ff-%IpV+ZM-P(xPSOIC
      zbk5@#f2EpEw8wc$-~>*#68u9?<-4i>g<kPge}+@DqNt|_p5g2-II)fMtIu(<_$%i1
      z^y_VGkk}i<#`N@+Hg=6zhFC^VXWQ5iv0-BUdiq9$9oxnTvA2ptPkCpP>o~c9#gAcu
      zvP|+_B+DfXV41R4pyLy~i&f6r8e91(y*|U|{A}P0xcD;CH_+6;a=gP_$5CR$C>18~
      z-r<$rBC`)Vl;()t?oc{T?86SF6U6czN~efT?^jx*QkP0SGT$WEM^x%lX+WhRdDp3Q
      zi%P$y(#O=<pwe#`@$Czhp2I!Nw0i2Z8fqv;woxF5+1aR_#g(Xo%CKq5uusacH8j6t
      uezzwVqv84vaeUAE{Xm94;sSoc75vO~`6ObZW-5*hyR^c)1iPd<y80i8$MmlN
      
      literal 0
      HcmV?d00001
      
      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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
      Ao&W#<
      
      literal 0
      HcmV?d00001
      
      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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
      E7gm<-_W%F@
      
      literal 0
      HcmV?d00001
      
      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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
      ChZ;@*
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ=T~8B16g|^cTG}E~0TmPl6-(9Kpz+C%q|j|>C@twijrgz`+F?7e-6h*ur2k42
      zjm8ImfIrH3cZ;<V@MUK1>^bM2d++SeU*CTKScRTMjA7Mw1O1Sn@Ke3z_m7pQABn!+
      z?&u|Xa3IBoaGWl8H$}f_`$BYutCC1C6fUH#@tzokZgXGt8K%wpZe!iB>Se1@td;6p
      zHN!L+a@8=e?r_)EP3241e#tPg?zuh1UDf1HAW|4-n4w(Sz?|0ZXh&Q-_FbFd{$|lC
      zRm$axVQm=I>Q=F4)!){PhPB<OG>bciwQ0OdA<M9IPQd%%3ZG=;30Fd+iWyST9l2*%
      zj*JZ(B3&i?1Ktuny|l4C;1G_?#`g9YW(Q?-x$5X^(ykEN7CwC)dnH||-Y~@TD@}&P
      zy4R+HW{B4Aq!GuBET(Xi>dT*RL`aydN>|i^?!NGM_`V~;j(IKaG`TOs`0O&FI<m*`
      zyn5kC{x?bTm=mr|S<DXiMcWiDUnp{#UwOaAkTy<R;#f%<ND_;e&3ts;L&7*{JXuWQ
      zS{e`WD2Zi;`9J>jo@fQWRDC^A($RNm$s&&xN=&by%P@D=kbhemxylS2H$+dUFwK)J
      zCUBM9nqJ_yL|KN7TDbJ}YT=tpED|wJe?bDba0O!&B`Jy_MR9s0&JcpsBP10=dz@~j
      zkR!%*ie3<h(Vi^iroUqL6CGnD0TPMPdPq`7n4?p60K+_PQ<T6RED+*ubY{30i9I7s
      zD3&UG#?m)D_(<o0T4)gPMwC)RrNYq6YeI*(Oo4sD<8WE}Yv^iJucB%LGIuf}l{u4Q
      Jcp4?tegon_`pN(R
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      O(cx6X*>4=hzWpCX-QS=9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=U2hUW6g>mTQcA62Tl=B5wSG`)ccalKjS1kkAyC?|Es6DkOt+I|?6Tl6H057u
      zqS5%^5Aa7B@3PpCioVR=vwQEk=iIsb^Vjzu0G`4$5M$W#g1+^hpYsdLRfDeXSZ88j
      zowh97-{o!YSHz&;DIwY-&;}9=`H2NZ-V@`g2VCg^!<@5!R4>`h{hemLP<yk#SF;_5
      zAzKYQT0Rdv%h5^(-b;p=QYYwX9_R-5`yz!YhGptyMzT!dd!ZiljGJ8*cnoWmLesA9
      z7WN9&X5B8856X7!uz64~HwuS#vtqwZArtwVK%s;yyOKN+nLOuOm}Hw_bu#Bsv05%g
      zl(W$U{!iII@ueFv#*U8}79ziGu3J`7dgVY1Pbl)7d?f>^Uo*sWn+=9UsdGxs7Z{9@
      z-8AA@%pi*;hWXszV+*Tht1=L^e)~kILw@3maK0Uv`wgySh(|9Ix+QxI+trB|IQhm&
      zVpaqm@jET9#Hk}(B{T`mZN4iqr0ok=bhV_5GjRW3yD`2OmjzQ`c#y#j+)U#Uat0nV
      zto%`C^@Q73QV*=YmcDgFM+Te7Q)AkeHZ8_z6jvuYR5cwbu8UqMHSKiz$`v~@9L(Z`
      ztv175OstchIQ<t1Ea4iGgbYG4qzI?S@HF9>F?^jW$OPraDazs&Rn8H5LA8vYMm{_L
      z6}LYP$(HF%(+9vKiWXKV%0y|ngS&(hxQA8BSR2L+>qD|<loOJr@}IHs4G%w397D(!
      n3I+Tzrqm_V)}@%|BQeQ5`+|+DT0W3rHO7z}F)%zC_SyaoTPgrC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn6n<_RSO`n0K(S(9QspHC%u2N)rna`c#s)}9tp)pbNv_Mb$tJVeAp8XX
      zil6F?z|_uIzd7TNa(wP?h-n(9%}jRhy*c-s=bYy`Cx8F*`yT*ip$tR>CT+KFJ(YWM
      z-zs<qRlj0AQwLUY*IFvA$g(VLs)BO%lxH9+F#Q(e+v?z^?I~4Ot}h^N2~1>P^X<64
      z@_v*BRkIdXbDpy&eZ@;@f$nRL>-g6NP9>)92}BnvMHRy-^qDZwBQTJ4T(w>=?<nuC
      z+$kx6!EB`<OZTMb=zZfb>hC%=fvN0Uke;N)$T8*G^qpaNI!y$Ct-9}&tTkCpYcR2;
      z{er6cPQ|Sm7#2u&bl#eL^Fj|s1V(9}3agt^C0my@^-QL!o@@8v97YX%AkeQ1)r@Q6
      zL!4(ZY(-EL4NxWN+SbO-Q&sTOQz6dQBLf#1D{xa&g}UeX2UcD$)TVTcm2xix;wCQR
      zBRclnqQLpkNk{8+55_{qJ3#kT!KpfAnMnjBrl=YN69QxJ!na0}FwuqX9wY@Wl$~15
      zaqW21ZM@+&PPZ`(VMeRq6M?g>mB{-ZFNF+ApPQY!uSott8-)VHA;mebLgm%g_?0#l
      zw4UfJlZ;!al<B%*$Xa(Ke53B$l@>Fd)n_I?$5raL=Bp}OAQR)^oQW?nD=<X2RbtHV
      zN>3F@ji-DAUkO|aNDH{kluF8$rM%D1Xi?EMfirbi?N`aYD#mO2=NRTOBM@<1-De#k
      zwr3K<O)MB-V~)Lxy@^FE2^gM|#kE{U;9R1iyR!6mty_+rVME)>qgYm$-wBW9u)^`g
      z>{K7dkumYD_7kO=@9TrCi8ZVX^ztAlJy|Ae;|<r%IaFh=dP?Zu6~{)N`*aLBY#O*D
      zaQQW%buu=QKZ%-);X8b9fXzG{)VdA7iTl{%5Gq%Sxynxhiw&K%nWaNzwV(b^O|%|<
      zF!2BnNz(SVz)0uo+U~K5Cy)X?S|TN;OYQJRq)gew@|C(*P|J><dc$pVIi=HKPqU>t
      z)p<jA6<1NNIXL<3<<8<;@ZFU>M(kHEA~5;v4i4wh&$SsE;4}ufi{cF4qt#%rCbfYZ
      zpFtu#`7}8_c=iR}kKj*SIK(AxKW=Qt4>6hi4U>PN|0RaD2B(fO{p!DnBZLPmFvc=2
      zVue~*CAdt0U?lY2K)@(S1;C?R&Ax%9*uautv@5^RDL<p(D|ikkr;qW)^Ou<48cZMK
      z>sLGtvpyY^YMqn!4l(3gVkerh6S$5WtVl$6?i;axW_@(I=cbSF&DzXKuFE>t<cv=L
      z1y=b#5iD*C9AV=KcMq|hj2_~Vc;19E8gTW1MR~{qKVq35GubD&3K_tPhhdtq<{GfN
      Pa0NTO6CuPx;H~&CsmS$i
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZF3V<6n<_<vuV1OT1q8|P=rF7mPAlNT0ki;CDNBbO0g|kHpykXWwVK!4Ya<$
      z;Rk2<1<v>b{Dh8e2kVI6obfmKTh!<7rm=)DkeTeBd-v>f&Uwyr?*8@9ufGF0if=W9
      z1o};<mR>UM7|ZE`yHfGW>DzK8U0h6Gu*Zy&Vdtb%l&*%bz~D1nFUys)rYmJhI-Y<S
      zCHVMb$d=<t_m)wR)%5vG*;?MV3VdfoAacrbEbolKw#2}UK=@p_C}Y@$4jmez0^7$e
      zM^4sCdFf6Yd0Pr}kCzLEJ!80*TGuzj-lA0%I6VH0M1z_bHzpmE$QcGFWWvujUGpqE
      zJz-QvR4TCx%LQ5Stg=(p&?As+3B9%Q#tTvO3hbtTDj+r`ZBsFtx^1K?u48s!7j|oi
      z3v?=$8gX^Jj6I~nluYVSJt^C8%=A=#Nfx}3fgsPVTN?H<mJd^vg_>)5E9smv<W<8d
      zmP_pr=+m(uuM*gGiUNBAke1#fQ5+0PZIQYw3s%Kqi&GW9gDL7o!y$nK&(Uj@M?yy%
      zB2grnM9HdFEywI@fc6ETeFTkR2ZodYjtK1BN<+?b`A*Ot!{Z`f^CbJey{Uf!Jwbo7
      zZkd{^PVjG-6whR$wL&sZp<E(#-H}AM?Dka6Gs|1tR8g<%cmr=zx>ZkBDE>^0n<sR<
      zg`)yH2wP!}xkba3MfSy&o`zw8eSXLMMrLeVnjAOJ@Z=T=of7D(IdZwe#>-+~RXvX3
      zB!&b+mP38CPO-U?4)o)!j!~QwXs58UhHI2aS$`rBQ)Bq645WrrJ(rx;9M>Z;T)>!y
      zivs%}>v1b*9hZ<H4=RYjt~!3YWO$3|QOnHm2r#AVLtfS~zUe!rGMv;gwYf2?SiPd-
      zDsq(U^z|u$-k`rvLS4gk4II`UpU$S|I^M&qK(t!Rd#+L7Or`2#YI5A1tLE((u3=us
      z4ZKh8@|HJFQF)90S><<mLB~xPlpovV1>-il;tR4ZF+Vymquwtl9dqg;iOlBKEgdEZ
      z)2_rpT}+n+;!n#gqhU$l;Pc2a1`8c3W=V$wf<{W^Vzzu&;QUk2Thm%UWu9ci!iPFs
      zP(9JRJZR)Zmi>Ne<}<2~H63?UA479<YPqaq1t0N!Rk}@?abV{7SA%2HYb8%wDhnLN
      zT6N(VD_E`*8k*-vMJ#j2mDQT9&d1jJZyr$|<hgRqEy#<O|Mht6<Capg;n~QR^25mZ
      z>U^RVrp?a}ukBo=c^AC5CD#%AiAD%IuMvOqBsyv9fdgK^cCNzc!i)6k_HCX5K8(j8
      zA@01E9PHlt5HE%B2VPmlJ}wW`m;I|aocslc|3v2ocFcAUtYh%e{}Fqc9&nB^E@Cgn
      zI5(G=T*l9!H^8oEz$i%hiHB(&eIl1)J(mQd9s7}>{Ot~I{<SALxQ^owHgIybdt@D_
      zA8|LR`URh=Nq)huFo)ch*oj8$1kT`XG7?gUU~_D7g8V32@2g55;vIoCoS)dTcy}^b
      zOb85zhkizO4b#JI@wPS0b!j)dqV{jm;YczbS;Ge#xHcP(N7j)a*5aD)D!)f(TvOii
      zhkyUxfHk|0+r!a#^hjJAT7$iYN-`b}>{WQl@G9=cqYoMd9`{R{<8_{t+#tydr1B<C
      zqe$u{&nc6Zg%XyiWgGWseaCrIGPn^G)*#}3orq3+fsaX6h=^5uLTejw7x5{rFwqzA
      g8Lc+P$l`PQMi}J`zT}=p^geuruYEOs<7avAKk2w`r~m)}
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_eYjaao6kVrDdP5qamS+fPK`cpHnj(lu0sEk|u@6cqg;2EKrl)BjO~TC$v?3}f
      z`1k?N!05>Mg&Bt#5v5f-ywrgif0W}o=cY}A6`jEkIcM+l*n920*FHCY{Q1j00Ne4o
      zfeL}G$xI=7$~<dMMHAL^&dx?p%jxLYM6@$gIMCH^rOukR?3U98+yb>vJ*-bv3T!De
      zm&(}E8aER%A6;xuKuig&=}~8+lcqfpZA&F%Je!nOvw$maTLLxCcG}D&qepBjl}U1|
      za&Ib=viA!NhnBwm?5p7+0e5?LO!^?O!jCFc3!Dtap55}&7L>mgJ*kZBD@=|`YtS4`
      zOBH=KVWx*nE2Z?}qT8NG<psh$Pc22MZcLas!(WcSqz^6xR5<Ge4*nnEgol<fLmT`s
      z;AIFoOO8v+l4A$67HdkEF#+SOnJ&mf;{w}4!)^Z^_%dw976UH{te=lHnwN=!m9nR!
      z12UN+MW+3D8Fd2ddRseV?IQ!N$3_lxjr0%1hFS+ZM!GxV0u{q;213l(ypbn~exQrQ
      z?Ke}_fO$^UJmJGuL{ygQ$-_{1Na@@BXhc+?n)^Ic%CEo+Ix5ZM1$d?XW&_&=>i^Yw
      ze|P(l-9`6Ji1^TiZ3bQy*sLw<7Ko+OGHIq;tz=<RX6%lsgv{BgY=(J0O~NLneVnNX
      zg_kCofR86SG7A5gfF~3S54Wk<_WH38?5Ap}_e$7RY>us^0@Jsfu-8DVz}gZ@r%~Gq
      zsq~n%yl5BLcr=qQ<Z@ZdmSeTr2|KxVTytbktq(2eQ0YD>u)64PamT9yw4lq67~W*}
      zo4K6K5dQ|^cfc(=T=d$kZuI!ki#`Fbopm4yteVfwqANVR6CE_{;Gtm2d?8KpR?0I4
      zGtFizLv?8MluX#o;S;Kvj`}fxBUSL=m>;iUw-0d~HE@EimU`I8r|jsd@^`IhkM*-B
      zRLj)qpcY8_56@?_>brORSO%YgQGv)j!AdP+CKNZKozm{NvN>tl)2({N3ubS5ny*b`
      zUgk{8w6m5ECOUjbB4uELWiMxQYl5$LzCD|<tt=^M`Ed#)oPR8<xRN3%6`^)6#T94M
      zaooJPUd6BtOp<s{lE;TE&KTgEwP?$^;fDp5#7io-r_DUYm1RZMi>zq@=M0?Xn^dx`
      zxBQq=q%e5D&zzKAyvyzhDZad?7<NIuQh%dW8S*lI(~}E5UVKO^4PIPg8K?F&O?mM#
      z`4fpWHa14QxWdgaUn0dN-;r#=O2~su3`x>i{*i4|V6lm%b@Asx1!~mG%Fp#BRcX!!
      z*Q?;?_#8D8l{^JhMcnlb+XC)cEdQQr1)k^V;|v_;JU}xb%k@#L#42jMgw-@Hw6unj
      zI$edelw4X;j@{Z_b<y2rTBzh+AQCjL!>GIgchGUWE)wwEL9pa}jdnIl=Ls4eBLInY
      z7}r4dJ4P0O1h5e=XdnR%NdXB!K~g{h8j@Q}3X+GJcoDTlNE13!KqTVYaT}XlJFa8p
      z9Ja=15su8D;Q_?0V{>St{tERSO4lI;u$~EV5>>-6L0VMdJXbFuh>IGh$}%lu7wR|*
      z)!#+0QO;`56ZsLrTNE5am3r~YqRXCQkOHq`Px102hM)o)41UWI+)>7%*MdboQi`Fu
      z_XeoWhwui~;2d_w=g<<bX`97?;0!uv&^?Po_Zv!B>X;_r3v9qugm4Y@_>uv9MHFA7
      z6W7tlc>v#NtPV2<7YZ_neqE3dF&$>`6}&kw4N!B|gnIglF<s)Sim9poF+8rD^$+2>
      zriBOa^hO$HF?bcLRk9j>2LJ2K;P_Q|+&5h}dB@4!dQFP&Sc+SeZj;_WU<K}wt1}v7
      ztz&-yV-tpPlHOM_!ng1?tqAqp7xCPs9Yv!!eU3av{~XMCO=1@ECyYNpx`zpEiIWhS
      z8Q4r=&GZb;M`rOpr<xBq)GOhl8a|rWE>mEd?_fmPEG2rE?!-BE<~>y7F4=mYOn-o8
      tJVXnAMH}Z1&N2K(c)v4w_c4e^I;b@c$YM}y`5FF%9izDQsZPvie*wKc#`^#O
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      E0)x8U_W%F@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9349dQ8UMdzlU*j01i~SUf}sUTLda^R)NT+<1kDx_B7ty3v6J1&W?*-AJ2M-S
      zDq3p2sET4y3tD>E+S&_SvH{ZqZ7sIep7yTV%W7NO+WW5c|7K^CWs^{o-_E?_d*Av0
      zzVFQwFF$%5zy+e*j}n2`#LY}-yVkD_gre49+DV0W=z}5KN-qm_uJ2gZnz9`~d;$$;
      zrdy*Au8do{p43f8prVh*xYVH;mcUtSCI67EM>Ce;42HaoW&tIw+4jzq6<gIJ5L!D<
      zgss^Lsf$!)Wya}?n7yeEE7fnrbc@H!mm8+xtPm)ztM3x<U7CvN3QAF_VhR+2>a~Wc
      zw`Y<)y0t;;N$3JKYg17z(WP02oO_Etr_Znj7L1oa&J|K;-HelMgp$dxE@xZDF%qFR
      zE!`~jP*x8_^|WK8OxurHlew<YW1|NGm`#7t4^6pXG|50T?a-RimKm?W9Gv6F*#ecW
      zL-Rsa%*8x9A+A%S^E{0bni&tR>)EbHo#y(Sl7<)C$ZwJuaOxK>B*kjHQxOKxn9V
      zEf$cmWyS=~DT-ntb#nmc3Cx&4?{+`xxZ?^+YEECM#fV2tM~~~46w#n!F&YI#yTGiR
      zfFdfgZsK0jux-PP*V=uWrN?TMsaPhFu@%h3`7+oS2+S-rywkBr&1eL0;lzr?rTEvY
      zSmuh42XK+Vw7itKZt9liq^tnK6CZE&W4XXo*DlwuIf)9Iu|mZqcoX4B9g;j<SLl9E
      zF-g~=;!><4iW5YX)90c%62N6NC9g-HX7|<hX3VGrlY&;f*^h|8+%qPMiZxg(5HL*J
      z(ab1Of8j)~8IShDY-^V8X;-lh9aM}c6gc<)oCsjOz`O}CkWccaSdSkY1eTmp{o*{A
      zigc;)BM`u5+Mf3fOG0g)b8Sp>v>wf-t%~N*?>!kuXG&KWWv4(%l2EQG$OkVVj8iVJ
      zSze;LZMX5K#mTR|ZoJvDEJVy`DoKoagv_yVR!OpT87H19Ad}X-MTLeQ0>pN7`c*^}
      zF2+>o*d{QYY}3@f(*-({%+gta<8=QR)*^|79@i3`j^^kErNbZ~Gp0U}X3jH57=4H3
      zuovgkY{O(}m{`SPOIW^hu2`?zx+4`%sVGCatgLTUk%XeaM#c|Tn*|dZUBppEzsv{4
      z(zRGVO>7LP7{uEI{BpUigRq{R&y?a4;K#L0PS<|7=Cv{{SZozsgUSG|=gC6Uv1c@8
      zY~3=oq%KS5ZWZsq4MZ{BDsWL@E_n5^01lH^%m8krXP601$yk%*E%Wha6}L#+RMy^=
      ziFk_rtuLvd6MIy=3%AMSPNjBa80A_|ZoX*ei}L6^fIFD^6GXqRUY5B#WtqE+6|+!(
      z54;8XZ|Jj9J7sTkYv0{015#sKOE?Pl<6b}R5jZ;^w6T`#YO#?`OvQb84`bD9rIIa7
      zsAWr8d?yfD-`%2M5e`bN?x&e`k?s~*ZQsj4Nr^H5P5ruM^cuS5$NMJA`oiwYZYVDc
      zm*)$wf<rR4A7nxl#+ICACk)_2#Cp+2djJoOUnT8F$FKHF{vT8EaZDE|Bg`{I(;<9P
      z#iwwXPV*W7^FNpe<+$sMf=}a!AD>~=Txb>(s2D<4U<#qpk?BboQF?wHv)m4?Z}#IT
      zQ#2o%32$Sg#0rM-sEQGpKR)u`A}h$}R2;_%#v;?DB{Ecfl^3_-bjrb{c-8At#mmyl
      z&#U+XzDQI^Q!JyOb%pnV@wVi)a>jf~V9}Y48KqY67#>&g<-9eUC9<AS@m1Fvw)&3L
      zPPz0o6<^0U7@cG$;TY+}pg_|kCQfS1etb)|=Wp}!Gucsz>{fh7#dq;NhR@V@t}^1f
      z&Dv2<lk+x><&JF9p@`Q9a-_`__yK<8#}5S-zN!N%evGGO=+f+DbgsXyyCo8-?~;6;
      zRq+%2l$$Y64PPCzPuAt1tN4X`eOcqjFDEO;MIA`NbEuS$U#a*tenW5WWYN;y0vw#o
      zC0$b5Z&mybzvls2qY}DQQ*8C)4@^-P|3)elSvT5_xVe(`lI<(TPXa?rupO7nsu1Co
      zM+`7&axgso6z|u9grcA2dPkaFZ-S44GnEZ_o}UsT!yh}W=%i4)WzfA0lyq~)C!<AZ
      zzREcAxTV{K+oavI$i4Cdp)-}SqWWcq{NSj}e?&D&A7MWISjw-j68^KLx+C6f_%7oP
      zKU(;#;4H+qkgE;DP#<y0s`xB-7cWIM$7+rMQ!$M*A8Ih2OlP=bdRMX$H54Yr-QTdd
      z=B#4~mf$4L9m0H07kbl0L#S^!g8Ii%If9v6YL*Nmbb|Y@8{1#X{iXT+H^}|PHE;B`
      zo7);sp|UZHi?djHz~iyn<<WQ)mk*(hysq$wJBP55yf)@}ZIX0j)~#^u>frMV%)@#t
      zWFHM-16E)oR-=n|(M{;aW*FGQ3&>V>|8DHTmADI6;UKoTr)zWedS0RBq}@tSbz>!e
      zSJFd1Qg18v6k<GALQmCEzpEeSfPZsxFZVg4Vev4chey!6rKWEf+fQ({1TrR7uEZ#2
      z^QJWqeXbU>a=b>hsKX8<sD)47p7@p_UQQYrVx>V0!DO7%W1h(IGzp3nL6LTO=Hjh*
      zJWJ$lksMBocgeFnF_m#oEY8Ae<6~$02(H;Oj9uZfU|G#|jmPlzQf%VzowTzpi<@!_
      zGAO~aEN%_^9>TP6nTv$mgJr|mdtwBOw)ld+ntl0*AH}<eaX=E~HXbP2C?CNgihO_A
      zpO+mV|M{mdEf}czfE;>S1Zp1StbTO%Va}G0&OQ<>_s0HUAd80^g8nQ%AzgI@W)_c}
      z#BdhJ!c!WS1gB*2*|3sZKY0?5WpOH8u_Ra?lxy`_d?kw~gB9L5tOnJi_-440b9&&Z
      za8<A>SXmmZJbnz{_n{$YR@E^)BiLmR4B=-Zc#ifwAFd8oODDa+7bU*X;2Xk=!Ro_|
      zqJl6k#!DU|_F)0znqe&ZxpOV^au<<t9kF~psdlsd+`vz?8;R$ea5djC+)Uiuf&spF
      z;a0Bh!Cqb;@4;<&5Vx}d-@&}yizjg>o+8?x#y-4=yYUz77p1(=&BeW90qzq^cykNm
      zfM~-((ZyTYRd_(ecq21-vym0!BsC#6@~Gq}hsrV$M~|Buis-=~(MUvx`TG+y$A>jy
      zzBihV2K<?8Wwb!0^uKZx69N2<C(5Y#OZYoS<<$Rq`~&~wC)-{;<K|z0`tHWRxI2aC
      y2Jml=6zXo^KO9xif_3;WM=I@T#mo2~DrwCntbqbmv}KkkA$2vUKH5<t%3c8rzZF*i
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn6n-uQb_okq1S(Wot5y>VS*0y%gVuyBO$uajH=!bGx+J%orD2oV-L&L`
      zZy%ic@+<rYI=-~knf?HOl;gP@2pI^DnaSPz+?;#PbIy6r=I?+0d=B7k>`CZjn6urc
      zx@SGK4%D*OY6Nxl0dJ|k*H}_bV{>VZw^Fvp`960836Znx)0WS>O*btsXfaHfdeK<X
      zO8RQaNaZv7MqV>bhVgX~P_0?6t(t-7xOS3ZWTo!<f#n8UR;|fp3^AN1ZizOlgkY3-
      zU?m!!Ycq_R*_5GWN*j8nxL!16C={%Rb)I49wwBk7R6#dnjP<r6ha=gPnJujr^DBj%
      zo|iG++cHa*MN>0Mxr~-C<O<s|CVN}vjx0A*rg>L4GBRH3ZP{Qrm(|Te>BzE_Nz1sv
      zaIr^14a@f*)xAohvdb_~$Qqi)Fx9T-z7<r}v}5PofZN=on)XxG7%r`!>alP6HPK|z
      zW3ppZCq`9ZYYg&ox#qY|@Bv+q#kUwDEA<K=AjybNe-v?Cl`u!SgiSmVRKYwJ7^H`y
      ziTZtp>DZlkZ+b&uP!+t4S%$H7$L0Cv{x0_l)^3dpjnvClZOif;fe#M{mqTVUt`jYx
      zh$#B8q+k*6Figfy%PQm_R2`pT{&W@2R63PpoVzx0GOL!yD<&^{JfN7d_)eN3svVSh
      zBXCHt5~xnSXQ+D~Iu}IJA1Zhivr(jxk+8yW;ix^T&&y5E30i71aB6Ci76lqsDKJgR
      zKEupmiYJPm3|S4g85`W^fe4dRa1ocpZcV`}m=(JX1(!v=2b<xPF=Wp0*t=zCbTW#M
      zU`j9;W{*<oyiK~5rl5c#O{B{oWgMIPRMB`W-s#J6`c=!Xs<{pB`<BhyrpaO4#kPcx
      z8Lk`!`OgaqKEaO2v{A7F5|k9%N#}C$E#c=g1)qbOJXi^72u<G;DzfM(mfJ}S*{~FS
      zso4=hhT+ZsNs}(oWcGzJG3!mQ%vT+u=gE_A(}WnG$Yp9uKh2ebX$)YHkVL2tGT~?!
      z9wt1}g+~dW>%uP(ez6Nr5T5G7=Lt`D;Tf7cnmmdX5h@9vq>=DR3JISiQhE*$m)Gz*
      zF}p%2LEOYAI)OKyBK9j1zYyxfTjDJIZ4X1ZM}IHkRCr(P+`U03jLxLF@oP_T<K#u3
      z=mp_LrEP|H@m}cSCX#e@Iovb69}-z48{tfz`wh3ABK0%v+cZQGfrBnja>vu{4jKKB
      z%;X&V9a*v55zD$*ZXHvbqWpm`X#JA%`wC<D8WZ@Y%lTx-c^*227FGI*@)q}!L@xUW
      zHuG1B;mydxbfkYe^86XLBA7pQ@)zRUk%edYl;H_V$N9`qU4U<?4UaL3?=XY!X`Fwc
      t7wwNBjqB}DhcqZCcByfq21%4@C&Y9O6>t*TC>C%ZHqm3Kl0_e!e*w<i%2WUV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+foxj5Iqx?tb`SmiwKAy3T(n<MY$+Jkf2tj2xu9IT6tQMsm*AzN$t)m`56B}
      zt5ig*_y9l3vL^`_CFZ4PXQsQ)neNm3>-Udi0P{%b2r-zB8(44c_x6F6^QskDw%+lo
      z<$IMSEB*4tQrh;5n?=E0sY7F!YVEz7O4pqk!mGj+a*d(QjAj_L&2pYc(1s2J?Fch;
      zr-aLQg3><scJ2KlXXr_lb9OOfdqV9Shng%1pCOiN4SYs3&d{4Hmnwne>4NR?e46Jx
      zE*W;r<~fosxeM3X=Du$`JRWWC_B@bI`J5X=<mo|<SEMMrzK$N^*p%WHuWmRV=OrrP
      zX@Dw3pMfrPcYxuVfdO1+U|aN^QoXQBwk%i);Urzj9qz>=7{U!5!wkbGD3;H2fhT0u
      z3Zy7ndt?lZ;3m~tdZNTIWH!$g%_bD;n1Ndur~Xi{8AdO@+NahlAt)UXfjgMgF~Kl$
      zLf}*|=N%19!DQ%g`G+UM;XV~UYMzz!jC8^F3s$mG^tx-j6EV!_m}Zzb0cjavU>0*E
      zwV;x>B`HWZvx#Ifn$dBWp|4pX6~a9O_pv}>`36DFq>@BnVM%FonQqKvHlb7-5-!8!
      z#nPw|`Byg-=5aqL(u@BSaZy5HKT(yO^c~73sBfw!G-IcDEgw%pkEF|im*dZb8lT?3
      z$8}CUpE^tprfCO4^hJY5R;QgsE2FhNc8E)#Yu6F7>KfQWCt0KJK<j1NX-ce=<Vx+E
      z;c6|-M@rdFC(E(vL-cOPzM%g*26t#3{f65s+MqVuHhX-8sD{{2Sa0ay2=fewSp16q
      znNJiNf&v~QXdq2?mw@(Y9x@omD=gx5jm$zFra^`P@c<8rV3_`6D~MB;E<~}4NA%hO
      PjA0GyM491n4PoOCFhN4?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ==~B~B6#i}rL`no@Q$ZFNAPq|d5trgtmzfR)9Ro$Dze0K^jkZZAxk36CK8nt$
      zh|cf;K9u9RZCR8~|D3y>bH4AM^PS&+ejWl?#1j<>2Ho{z^S!-m@0m_mtBSz<z-wj{
      zR#!~x&FdA*j>;AfcX_BnVVG&}y_vHb&J10vp6`iA3>|tZ&!9XDiad!9bZh8D7eimp
      z^Z7<x+2P@)y;J54{kg!g%XvHW<hgmNh>{mE7`gVqCp6Ox15Qw>#)4ZVJLE-+J0TYg
      z8+z*;S)bfJ-(BZXWV<|_YVGza7H)9LjUoAB&*4?!1%9NWpE$OpxW;Qw-H`JN_r-C5
      zEX1IOUi5W?VOYZ@TxMWvw9m<2m=#-;%#7z|eZgHGrjr=KRTZNQqem!a#GN?wM9qwa
      zS2nlEXc)sd)mnsJg<(W*ohwzyNYqIU*KnQsL%n90IQ#2}S}%nlbwC7eVp_!%!`Kml
      zW5Jwu)Gz~`q1)#lpL;HksPHNMq@*XLOLkN;v(2J6T+=-;FsEXcVd@B^ZGeV(ERfXV
      zYS9*?AXP79ve{H##Vv-xR)v%ZOB!xtnZk-qf{IQhNy5a6)aG4!(X)k&RBgiZ8K%#c
      zMvln;x}mTrQxlxjnkZzb3-X6FF~`wuze2K2T0tB-{G}&{Vc_54Tacfjeo?z<c7X)#
      zXpG3JbTVmWw00W%IQOOgoFprsfi?7y)fx`8o~M%{rAJ9F)b|V*>uEkwN`-EgjoEz+
      zY#U!O^aEGcX`T3v8yoX;9dm~VNGULW!F;F8A7GJTA9ucCh<&EG1SIMR;Q|)fO+wki
      sF!GqhHkR<V&ctY7G?@?@?%_VM>%}x4AWd0@F^*L{q^~kOs^@+D7oim}{r~^~
      
      literal 0
      HcmV?d00001
      
      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
      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
      SNTyZw4tMH^$6p=xz5G8ArBMI?
      
      literal 0
      HcmV?d00001
      
      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
      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
      NBZZaYRo9mP{vSm}2*v;a
      
      literal 0
      HcmV?d00001
      
      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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
      IsE{iD3-AWhmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}Sx*yD7(KVsjWP<9f`}X7)&&?)L=DCS7Yw0*p$50aWLj>9!P3F$)L0W=eQ<r&
      z-@t<=f{71CpG^Ew#xr*cX=)SG<=*-3cfRl3bH4WXpKsp*OyY73A%P*QQZqKpr{*)G
      z<kq)5$9OF3M%CS#HVP}Z7i2w#ut2w;VU*2^Wh@srWXX#mD$t{%RavUJwpTY)a$F##
      z!nR`+q-&dH`?*;xO98PY(4SXlo2IvJT(hnDiYG1U&hXF@h+eTPws%#)NViXGAI+=^
      zgs(emG64<UI&}01Xz9#q2LyU`bRgmH`gC+6A<&h#D{`r}S(NUbfLJo`l+5y~NwOr`
      z2!_3NyDBh}|DQf2uUpcaEn5y%Sl{IR)0u#&(yQRPcEy^B;}}^{SAhi6Z&pfVyhi5f
      z%)@Jp-H=<ZESa8MOOWh{j^j8f5J}Ig;|@aR9GAMqafWqPX73WpAT=G>Yxl3Je#R{d
      zE1%TNGH=t@5Vpz4nal&f;h2uINGD)mGKPsg4_hkg$Rg)wpVyH=nmnB1hCs6Ew!w5z
      z6Y6JryjQ`gxg|Mg`xDR^Ow_nP1L0xT(GWreoI|91n>dy!-z2VaglXgf<{aeHeP(D}
      zyRu*T$?YJS9o<3dGeaTt^E=6OV1eI@EVM+>G7d2^6u>Zm!+c@^)kdhD-zdZegE-P?
      zGse|F(~?I&aS2LCRp_27rw7N4a)KV6VAc?Gp?FTHf<QDI-o<chjYmy2qWd*YwP}C4
      z6>2v@wS6cZBOzZPgR9RxlKp~YE4bPOj_iYJU>k6%75t(tm~+qozvPvDYo>C)5Ye`C
      zKOsJ<%@2r0pUvnl_#Xd&UOuI`J*S=`;cac3xIpAVM7e)O|6X(VhQ`08SMN9u?^XZ6
      f$EgN+cH`>;8KfxwG`$V+KZ-vX))2U;s$TjFl4;gn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7I3w%@68ULRqP1117BOs*(wV=Z`eE|X@Rj{Q2s%cu2wp!V&X?ke`X;P9KUg|`h
      zb2@c8oeI94u5-F61zHqedx6h6oo;Lnbr0v}bEtc`hu#02d(+fXoTk6@ob%o9eCIp=
      z?|;7Y-8}X2LyrQOD<(LRBT&&5Pgku8uMcmmiX=Dn8i}g4`lhN>vUg!sDA;tGzNsl3
      zO|H=6dNOPzl1|tKCQ9|HSUBEQ)!4B{j~Grk1dhuXs!HjRbTVpeQkLpRn-H+Y5?umC
      zeq|<YL}OJHbVX^-&sI-X3)s){1sesXnmRpUqr0j$+EpJnbo05bG2o-2<};|2+q^R9
      z<7j+CV_l2CCDiWs1y(e#6!4g{m7^ge$pvURe_0})GQx4AH5^OpE_k>fdR}R6zLFcS
      z^b2S$Azyo)Z+T6Nzd7W>5dzakDWy|-Wv9M6oQ@eOt{qxg6ZF-!TQ0aT?NGA;fxH#I
      zfG=3n+!%CW`k@*`C7%li+gp9X`sMXLY8`c`)_Q>{p~jZrGGBY+^7dd&psukY;0w{s
      znF5nXx!IeH)9O@fD;fWWArkdAzz#y0jCTsmFcBLLU`R$%4~FBNi5_AnV*GL&f+hvs
      zu$$J8^dA~}71pL;U<IeSPKv~$@u;zc%aoM1a^A8;r|!mF9Ph+DfeBeYEsKRyDGl?n
      zK)~6h8-Z|-&h3_z9vVtFPQZyyEE1S@I3j6S46dI?LngBXDoYNvWEmfeiFt(PWDQQZ
      z@~{*&PMkt-)N-RZsUZ(;sa+!#>oklrhjqC;Yx0xhro3LmsW^>WTQAAixLTmF<Wy_<
      zQ3k7}u?7tq+!+%#DLP$4KHLP&AC2pQbWew#Yz}wCh?2*jh=gOU;bc^fEurHig}fU!
      zv}$NZrL=LThA&{Y?46~d4CRc7(H$j?tA-=_nX&<~wZ|DD7up$G9vvRWly0QidMun3
      zs14!X>eAM6h(LFOG|SHhjE^*|1_@<jlmupvjE|XJsz(Oj5;+lN22p0lB&*!pS`8&|
      zOW1of#E~EoI--VOk9Qf}ii!17Yn_JUaE$DcccoH4jSWta-Lo^S9ute2SXY8cuA8<u
      zVw1qQNVgtY+Z0ZQdnAz7Hbw{4B;ROhX{!_G3QSV_QR%8Sk%;Nxcpf(6d<|d51w^_z
      z*upF~c?5qgt!gJO{KRZ4Pr5n#VhvxxB?1n8T{;}2XGe?$@L6tb!KE6$CQ))lt>l<T
      zC@$CVbxF6}K>LEZ^Q7cT4Odx`h4be~$<-RJu_PxfTqGseYPe2H9D(+^bLP#LqU$x>
      zkP*#Wq~>kauq`86aQs54b+d+BEYZ9<^A|aBo4~9rEcLON-W873B)if*dff1BjOe{a
      zG!b{<4uR5id~H0jAzo~y<>FL#IH`9Q_ar*gv2?1K!7q-f=(}+%zAaC~U8C@@Zi&)X
      z7rrAfGaBbPjdmX1kfhCbHF%}V?y$i-rXy|WM0tW4rD67yAG|Q?hVKi(J7#1gvp1Wo
      z%e-rOpbIl;Z<ylNU0Utty4yAMV+T)KW`g3LZs<v_	}%=9-+kOTz%}r%&C9lwsMF
      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
      
      literal 0
      HcmV?d00001
      
      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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
      X`LRI>mJ|FqJWNl0T~2Tf3nu>q@h9>_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dYjYD-7=BK!Z3u#CX}Aca(3V_UR$4A<0ZD6%vG?=>B}&<ZZMu*qb+ak0qci%6
      zU*L?W<M0i~;R8C*ip*3UXJFJ{;9dWS<8wCKq&T4?Gk)0Jb9vA6Jn!x74}X8P2H*%X
      zUN{5}W%DKFin^#SDH&sV!7M0OwPmGfEF4$HlcS@CzNnhofVS*~OCYqVv1R2E*eT(Z
      zqLwKcy1A@WF$BbUfu=!ge_l1`lpZ~s$eUVLGrGCCDBwA%=XLY6Kwr4F+0(2>rUYEQ
      zh0B@`0?+v2!#07`{{UQDgrwUxsOPoe(tKJoCe(CJ69^0zGHPy0HFP<*7hUF@UKEH7
      zZW_>P<YaV)`DFPl`QXG(>CG+y<*B@hO!=?}d%bv0plws?crIID_U7jO*e7|mWahNY
      z)lt<@=Zp1>X2=gO>g4EvAN8mc*d0ziDJ)*J($30yPR(bPL@uXg)m+@jmgcp**|(I@
      z7EHa6ufriC>-j}Br(X``ttf^Hvmq8@XhBkIre+j<XhB4}9~IbPyKljcn}(jxcFQz)
      zEOSOU_ykb`Ub2+5ky(L`aH{9OXQCd@qtlBc^msjj)ml$#S-of)%YJm>sKBnF_}N77
      zOfr6MhCa-UCKFTfiN2YEzG(qRs>h4t0`2Q4H5-sUHLB`HQoSbYIOD@HydZslQNS6F
      zOl?6oPI+-s;NUt;Rg7%pgbiSw_Tw~O7T8W8f>o<aV4oF&C-rT29pVD+c{QtNSb$eK
      zmH-^LRtk6%S{AP>tC?*5o#9CB8Yx>aaXuRM<t6%MvV;?nRFCv|z>h%;QMzXBJubZr
      zS>wLx=IJ_&upDL!2JahcPjF&r#ZrzFkM?Fs&9O)xtD=$g6)j_SM=r=VoAe`zad~~5
      z^P>;_K1^fMiwgpcwJtGf__`lw(a-c0(pO~nSIgc;rmyClC5AA*@j}VSX#Ki%RXld%
      z9+oH3Oh_jmHyjAap5xsekR8Ww9oK!>!ndEZN!qyht&hgqJH#rse$I&l+xhnK3ykqV
      z63=oJEgKT3fioUKqXi~MJ2;Zo^=RTqQuErhDV8~Rb1z7WRRm-0Ut)K(;~w@$ce(DN
      zxk}h%nO%ejm#9yrh&16c7WvUKM1?$9ArDr_gEl#-EMKKxJ{+`VyifU3VmumicE((t
      zQp%d=CIZozyHlzW6mttLu{G~aG_EhkJlx~*)(2>r4z#Tz{B>1u8)<+dNlFxZjkHVH
      zkGIf@x6zJwa2)UA4BoRGXeyIe9Ec-E8$pB)9JVFSF;Y@uIO^>B0*bTiCYm1L*z_t+
      z4924O@sb1IK-{sUoRLy!Th3L$%FPE1+eggK$Gm<&*}xh`5028df&0C9g>3v)qTgm!
      ztU2J0-o^eq6-W=4fln<MzcqH-;)Sf$8i$+zefVz8!>=M?AHGh1og`8Ae8x9$fR7}V
      zPlN4vbOo;st;c^@I^ABSDOb#Qtc8aN;SqEFJ;V8<MO!Xcr4n!jBN!!gh?HXthl7?5
      zdn9DT+M@1rRaVYe>=E3~+p%vUKC}i5{ZNz@JaGd%WT@I#Ftvj7H{f;Mg3EcDYt0X_
      zXK#7CncJz2+k0;lw4AMS-TXwFpIPj`U@LxQxBNyoe&>JU51hcC6#Lf(H^wS%jNuJj
      Zq|`>7!VEL&;E86safxmTHjU&+{{ug-9aI1S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}e^6#j005D1}2K#J5VEtck2SqoZ!q*fD5Ya~E~76);LS+=*Eg-wE+4Q<|>
      z@xgazbZnn|Q!CC?M?vk3Kc1ZNk8=F(vIH0@+J{Zfz4x5&eCIpo-oO6-<yQa~u^2%>
      zV9cyFwKaWHzoQvWYs0N;>$0UaoQ+G`!hE^hT(vD@TDBqx35*=;>v?quoK$F9LmExT
      za$8y(LO?7D43@m(s_s^_yk!<^t~8~S73jEZ)hzdlKp}Co%j4`O7X?C7^_wz^AbMix
      z!U+NGv4E3{Q9OZo1bzP{QqDH(EVWXNp<m_cHY(CsFYAt8ZFE84$rvK&6zDBkH96a?
      zu1e>+zG_Q>c&Tpa_M+}sYVB`^+=|r@NR*CMyDclF6SMqGf#JmR(IP21IyO8)?9U^d
      z1R|Td-IQ~;1Tu-`eDePi=)ze%7r`hA>`~rt|GYG<hU>IqIEOKTp_$yZ;?&A~?%frR
      z*Gl<DzQpBpfs+wf&PR}7?mdtrCz4ZE)-7jVzpdJ9L~$M|)!(#0Fp*sB#sz2*j0=qJ
      z!R&KUlU?)yyyzI7$3-@VKm=<`DsbAX{}F?njbKvXtaobbHB&3vwlsA+=a|i^tht3d
      zhTL$idaV;L3WTe=X_4myUQ#??<~;aw=*2F$j#V?WszYL(-inAJaIP)>G4$E`kSSei
      zH<U;o-Fbm1Jqk4idz0{qVsbgJM9amH#}sRq-r1qrccK1$gR_k7M1iw(tM2dylX8&@
      zM>d)^7aj70rfzd|4;47Kx+V=bn|x1Q#pxK{LNUrqF%!dOycWeArXwf|3>@_=u&4Fa
      zHFZz+#rE-7x?52cq6_t=W5}zPx=?)w->h*JgfmPQ<QL`_R~M0wUkB|jC>q^dNuG!J
      z-<L{fb`VQvenM~R!jBmEj++4t@;B}|OfztXA+vlK=5Uhxsog*f;VG^Nfng>Po^^^=
      zz_V1+AgwMu?Wde&oH~oA(!q&zXo6`|>F~s%oF}}PCDL3b?)zT8!QH5KzBo?f8LyaU
      zG2&xa7^kokso>=II1`-w0)r26erX5EQabfBG6DP!@!%mQmf|n$;L>mOJy>Of6>jn+
      zyG`WQfvgF<f-(B`^ZZq0nN6q``dKw^4TMuaVBkR;QYj65<iW%|JM5DexPsUH;EzdJ
      z38bC6&tLF8f#<7Y`+e@IZM-q_C3-yGZz|rI{WODYFYpNl@F{ip45Rp*55c_yJ<{5m
      zX(-?-;YXPA8Y>FWGvHf7ji*oQL+&b4<LN&U4sNCYfVk%wRBtB5NqPG&`c<`=ZIre#
      zdl%u*R&a|EyJ`+|T7a+E>91+sM-RS1FSf|>TaTB@PxLmgalC_h<{sb-EpVO!w6A+;
      GH~s-5i@2Bo
      
      literal 0
      HcmV?d00001
      
      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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
      aE3E`sMjH#si)5%ulnBX%5K`(z!ut{m@l>J!
      
      literal 0
      HcmV?d00001
      
      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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
      X-<RB1ZH%1Z=R|mh<MXuBfUo`qVD~iB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN`)|`$6#h<{){Su=l=3KJjFnd&ErG7Q76v12fQt%|BjNVmx)n7MZ3-XQY7
      z@JDRY)=ER#_R}WqkD55g_L8g$i0zlyzCP!EkMmvUufKo!6~Gm&TSyVIO}|}yrCzHy
      z#d_FjnV|T+?u4%2ES6ngg`H((RK+)8$3mKL@q^W?p}XT6_qC3S3F-CC)e3>Cgt4W-
      z-!;lN8_H|zAqLM7MsB&jYi<*2*_yx?J;j)7MxaYu<#?@aT(8IsbgA|c;Gm^L<Lcc~
      zZi8``f`+y+gfRyhj1z8VtN(K|3zLM|9=WRL>8A4ThRybl_D$tYUAK%I_@kI2SblJ(
      z!Cu*zz_dUgB^(_fEw^FgIA$!IAf&d+4o>1T!f@RSd`+0n=K9=N*?y(#rj!BUa|frT
      z#cHXJ7pR7;opJCbW(jsH{Ko>q`A>3c6z2#|J@5?+nKzvlTXq3i3l|AzKf!7TIphgL
      zt+pZD7$CDxMKaTVVaXC<qUQSgaeHT5hwEzFV+W>cL0x$pDs<&JSxlRk?k*w!VQmM(
      zS|S`u)UC5P*|s;wE_zx9CO(8($si?Zgvo<(VVzkS+YqkFV6St?vQ^32NJG~-ZG=kV
      zfE!3!Rn=!-7)7g{QtrQSw!4|ywQ!4YBqGhbR#&=jY@YmW;jt)p-#WO9GM}-Aexcf)
      zSxy+8`UoRto^pM{Oe}N&X$~akBJ2>xo7(X4m6*gv{yU+Gl@gw+gYWQ=z2XkSg#nou
      zm;j5*#WOKAw^bHRD-Krih;z-aR^zy{K<$gy-Di6(Xoq!u&y~<j9~l27@r@4$v*E7|
      zE5$HI_-gS}3Zv0|27+~nSKcDc?}3H<WM+OQy$@&ZPmI08#OBoDeH{5MKevZtzvKAN
      zI92!q<N2TP#njot9?n1eG1{-dzo(<U%RH7PjA5CNcm=b#$G+U>PwfNDam`|kf_Yrx
      zC&oh&mzjgyUBL-vCU*<?Dq_7LhntzDWYh`MtNbMO7Bk())gHVZHP=|!qX^20%Mz#z
      zZr~<Ye9f(Cep8BMKjamGoOlP?+{ZVyLVgc-3P12t3ZiK|;_-z2ddiyCqK%KmEv#~x
      zD@Iv$h1KwPp0(cRU-5I1YlNj8JGF-gy**_L!1F$mc0!W>37CAmLy@miH_VJ4A8dZv
      f*F2mwr}3m~l2Dgs>e&;c`hAVmMSaSpDXhH*#$u!G
      
      literal 0
      HcmV?d00001
      
      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
      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
      Lz&G?6z_<Sbh{FcY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOYf}?f7=8{UB!=Z;6cjI*V%1#GRBNjcODhN%1w}+OVykO%h^t{Y-E1tWwYIhP
      z_7nOC{HilG>6DrJu`~Tqojzw1LPUbLlbOt(J?Fgdb9v8u_V0iG_!GcU{Nh84KqPAx
      z<9GG@`f@yNm-3Dkzb8w!VP@lF(sqnRBdt4f+;r@c4<3O-O_$Hu#**O}_p6HqJaeg;
      zaRHGO=oquif}@+xyq+t{R%Z7Kw5QkN3xuW=hIm1yi?-pE;%c%HK|-MIlwlgqh`_b*
      zn-*8+i;j_tpCSCj)F!B{yuu+1iO4)bk69TRKr6a5w4+;KD4hJC!F&h`47jXvI^|5}
      zax$yuPTSeyk~E$1<+RK@hGqJ(U7*vnLJfKZuob-u!483*8e2EWWk*><s9PY=r(p{M
      z>S?!zJ=iM{$lI%Q1P;6vYd`jpwo}TJ_B+_`!+=2l=3Z!c7Y77<S?SDipTPETq$*M)
      z#sCf>;zL+q|68c9A&QtlYrg0RoZNu&>j^f<DbO`#nDRn#>9(}z^xHXt3r<;SJvXo0
      zh8ovidYn5(K_J##qV?6!0@TvB)RkqbrUbgz7Y5;nBlD_yjw|mzpswMhs;ah(OtY>8
      zCTheCOVy>GG)b41N_{C2`A<*+_3|nBFf6dmb&O$?7wa<t7RD(B<e0KzM8k*pSYXd4
      z5Qtsiw1!a}BfTa4o*ZjntfHLJFpdclrS}2{H}Gi#S9~}taI9$&OzXKt%U+V1^VP;v
      zC*a39GJEx8gsPP~iQWLFanXkh0y|d8uhUe+3@))w$sv<8iI?^yeYi~Dn}d;#v?Z6<
      zoe5wTSCou2vTseih7}2#9KbbP_aVh&xB20j(9@1(mozNk2Ad#tOuD@>&GJYz*RyG3
      zti?+x0H0~NiCfexD@|#$NE?b+;Kat@YlbyVz{t0e@gdFTzd5zKaT=s*5Prw1_A4b}
      zR>K__JVZHlP0UI?eMe?oORoEIk98@R9a|4&cq~G?6Ov{oWG#mBdMRh=T-Rcll)rl7
      zHaI;3UiMVGq>j4_vau5}OHOiot6{RP4>vz()32G&Q}0=%W8_|q+f=4i9|%=h`6gBC
      zS}{W>i{KTf23GrN(`?+;Ax+g(W~vIQ=KVm!S9r)<fbquNNebr)M;1oa9q~xRH~5yv
      zVNKJ8(EuJRZ@(9CzX6)xzivEUJ$2jx4562rrX|@PeS<i!?I!-fWvghX<%FS{bWa0+
      z_haLTa*-b?%)rlu7WBc3HjaGm$j>*t`qYO6-?c;Ie+NfT;NcI5ME!$@E9i{<g^m?$
      zO$E1A(DO1Hdx4$N->@s#A1fnN#=)!4-Ef2a-^K92Bomxvz$AKbj_=MRj42%EOtcyp
      zM-b<TDO>=;eR_{TTihq!!UWu+nr;o!agNlgwy3{?_t)|T+#NF{aLJ9YC~#FR{uVat
      z6I^kU?>w9tQuIV0pB2i&3Ph@c#8ixAqGfzUI-jWLV1F57(}OPS$y6{|!TFb*pBh=g
      zY%039g1KSO;P1FP?2Yw#`#fcQN=2R`IP6`)WU9|whOV}#nZ;j~bPRG=y@@>|h*Rvi
      zGi(MeP=bx1i~m>P$2_`m72DZ>`jNr_u5*5YlHA~qo4ibJxw~eO;b;+A{yt|fP@<l7
      z{VX7dC63q!U{YRwfH3YpSj=>k`|~8-%2+43&!z;U=tKbyrJJQJMcj9*;0r8sCuMRY
      zC^5bCdgn7fQ~|5<0RyPSRkgh}wLK`&uXSn@u5uFC6IF4_`0@q5e#%>a1w$zc{#^x6
      uUOsnYwiD3fT9%+&CndglK!F}&Hy*hed#kZ(8M}z!2mHw00zbJ3fBqNb-4Nmc
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G`F9gl7`?AeJMA!RZCT1%R@03rphANM+6D-uivopEP^ZmnJCMwT$pk3wyW+kp
      z?koD6o}<mdoTDCp@f`mZ{|EKHNt>o^%E6O!GMP8uci;Ejd%t=4>z`kK1#lO>*H9r4
      z9J8~b^X4V<N@&ELNPAA`f}C(Ido0xLq|&a;WMm>@d+vmWfWY<zqa*eunRL?9j}-`<
      zhz~>rL{wmLw_|5K)Ak0<WL8#kZvs{Cvuw-j<o?0ff|vs?0bS3MnQ-$UF}t0F)KQ7W
      z25PZHpg9=5&E#4LEHkhibpm?22rIDdwg76-AW&;2#~j!4##1#|DWLU44#f_hi0D|2
      zH5wWPw%kS|2G(MoKxI1X3G4~R6!W2^NxF}FiuLgPmFD?N0!w3-E&H;mVd<VQhm%sE
      zF6NAw$wAY#)cw?Az#F$R0xb)7IY;F%YYR3Hs;0ImmN)5SZkzh0Q?!H}p#%bvslqKM
      z)MI*P)Mh)ZUz(|K^Z(gOk6am%Y0siTG_(lR`*aXB+FyL43fQ9RX*aMPI|SC<VspRn
      zI}N&fCmR`)Bzb!olFLx4VYk4}1r_WylcSECl8Ix5=_r<0gL?#4+fLKS)VQ#jrlM1H
      z?7|+!-d=$f<qBcJVce%-AN@Jk3kEu|pX>5s)=XxiW47bUZZkvv%R-&ea8O{?T$HY?
      zl}t#t2HoT_YiF|QwBvd*QNG}gCLIT`M|~YKa2Q9Zx|vQ(J0Z|su7P>xoZ2s}AdVV1
      zhL}K&=M?NM&=4#`zK%W&Xy~6Vf4;8_+>Zx1bo5vvYExFaG^*i*K<mPqNl&_x;YD}q
      zIF3Oj$0>ov85@;Egrm)a8sY+*d>*r&l?+|A(xIq5nluSl5~|}gh7{OY8lXIw8l*l9
      zDGNVj;9=$7C50K9eq9PwST>6(&^W(u&SRBSuU~ddSE(_dE3g{bq$EgXN<p<RJb=CP
      z2vP8sJ*x7y6o7BlvD(S9Ia!OPtzHBJ=0wsl6B?Ml-Y<&{bWM2jpzE3w{aLSs_!QEL
      ztBZV%2YrtDTG~9D;~rVycy^+TtV+BzOR>@ro(&qVP=o0T)GMhpK*wcd)d}#3fk*Ke
      zU8ET0slwSRX*y<QyznACfu}S)Nug$nQ%?*$jc4d&izYBV#}!yP?PQ;_=+rt9p2G_o
      zo~KkZ2-8muyoi@bfi17l!?S0hfB3u{@xmHj7TB<$sr~a+$2Gia;5EF?@hoUT1!g=r
      zmjP0w%6iklTX>uOkDHl3zXDFt867U(HSiub5sX%_GUGZ@_`tx2xGu2BbBdBG@tTLa
      z6qg?x_ynI4D_t-FjXcyve+*|w1vVD#Tudz$ggy!+9CZS2E#Y5{Svd=+Xa>`EYl^V*
      z8dP(n7%jn@=A8NZaVP7J$U~MoC>!P+c{`L$*u<XHe-qjaRjB4w<6Q-65a4effBas=
      zm3~H5@LJ!ZwdP>7{Dh@-^>r&IvFg;1e!_ZwFY%%F5N0px(18tHTUkiMMl|t`0P5ce
      zK`RKZHdo*s%oDsCEqSbt=dd}4tuv^)kI>1;{XU{mh@C>L<>`0_BZACVB{wTXv4YL0
      zMlR<e2-q5HWx*|zXj9j^`bmU(+y2DjJa)zF?#|)f-`Z3!9oMl|E#+|_Ue}dFPunCS
      zlZdJSCiiycaXj9#K8KSXfjmyf8v{9<>8Q%1FWy*{!?}*?*2d~dJlOgJx2}Mqq!UZ|
      z-Az7wunZBb!67zrnB^YfX&vSBqg;*hbBwRd7~<$fg1;Oxp2dLQ@R33*FfmN58a^8#
      zne+wDF;;S?KDIqd+AEpA0b>{^6$w&p;XH|Om~(--)m%-I^f_eV59U=7c_5Eee0cyl
      zII%q3IED6l^SB&u%VDCAl3%@v#|1h9H?X`ha1+l8{ElnwlXykly&-V@-@nP&J1wn~
      zc>ia7G$Y}5iVd8kG=pfsDKc{!t*mt~uiZF9K8D!uS-;!eg<7WMT|{<1!{_X_0sHU;
      czVvzBg|F~6s}AyS<u~}&7ybr!sK9ss0mdsNU;qFB
      
      literal 0
      HcmV?d00001
      
      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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
      P5|g=8h$-}Jg_!yuSePix
      
      literal 0
      HcmV?d00001
      
      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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
      F{{fx{%boxL
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      UMh{{Z=WX<$i!N}1v3>aI9}8t3f&c&j
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%T60H6g?&(6DTP(ybAQet5vd@QP->@NUITnRD^=c2APQ!nGSYjdw}%Qy66Y=
      zqbjZ^DNRMXI&-e?J?Hq2fBpXP6Tk<&4=}~B)l*q?&2RaAl$b%^>FApn7^!+ud^r3F
      zP-Ix}Em6v;-oCmPiDQ^QY<@k7k3U@=G)^0r@i9ZS^|!0zyvQCyWnU}nxN>Ja%|sb9
      z4C~|>4&B0$TiE4}hf<N#KeFvFr)A7BZ1gfUaYSbn<#Fb7qtiKWpB$7i?`NLc^trWn
      z+H@I;spbUL+AwtHWEvgu{$BlzVYYdnh`y7QJirpeVty~FqqzNe!Z2-}HiFOyD=0;w
      z=4Xpmey1Xlm?7Y)<W^XQwOW15sHw6WVYqkjD@wF-Tq@h}-3-g4O!>M;i>zOeX3yK~
      zPC6aaZb|D%w7|P`y`5U?zdyLCoEhZzEg5m6Zz=UeXTOk+&P*ac%9NTae_lrD*HU62
      zGkQ@4tYI1@Vga!!l!?!d@n^&<WBfU0{KLWvnyAu5k#LbJ%TFpRSfyizm!#lv9UD2m
      Y!s{I0;BAhZ*vfGmJETXO%5%JX0G&y<xBvhE
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%TB^T6g`7z<)wh)d*e!KB8>~(uq2uoO(Y?@kX4zCIM}pgm=gFk7k+>rWxP|c
      z)uzTpXL9eH*G=!o=i57ga~xU7F*JvM=#1Q{J9D_2k9FX@in)^h(7EX<Id!$TUDOux
      z3{``4JeQvD2P46?g*ArbzcrR*hB^;??Mi==s4_H~cZpz68{4-1#84Ru{S#+r;QAeV
      zL7oU6DyioVd9@jeS2HfgS_b~aLWSWZa)?0>z7jl`3gr$wGg^!$*KzpE^)$mZ!;*qL
      zGSuSv!ht6_DKnJK7)g1Sp_iT^hSMZvlP96KGU%x|F}iIcRlg&3gwkDCzc7?2QBqxG
      zDBAs$CMU9EIPzI?S_cYNqF{;2WroVXA|_w47lew7Yv~Dw?bN!p%x|OJVpySXl{U6O
      z`)6StW)BM}Qny6iJl$pLY+y5bsV)&U)T4R}+tJ-v_II!w)qB_{Hp2m(IUIfg%ckjy
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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!6hJTtu><<8TisuOHdS=U{eUuTb!C)T9jE*sh<oqSszK4HPD=bQdDzH
      zv6w^17|k$72Cm@z(xT*4x6B-%tA$ZRMi1l#U@$N;Fat3wFl?EDLB-C%!2k*}P6jS8
      R&CS3AlwoAx1(Hk*d;onQbG-ln
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g^W)s}(^}T$;E8Osww>hK<q0SapHvekfxdZ9Am220qIbi3>l#k22nA
      zi3^PjH}`q&nRD-ae7?N{I6%vW!EhKRx%<Rl_|y&3**H_~vzVna3EdkWJ*YGmqwBJ8
      zF%85xlPa-cGHmD>S1R}F?z_QYoykOIeTGWA<1?7&Y9t&~uv|kG7DL06iMY+<p-Auf
      zFcJ(+PX#>kc`9|jD4N-$oG=`F{}<O|XtljUT*PUML8h1Kb$l&jP0Og0x_A=mr+>j1
      zoPo;IKwL^KZu`$0?CDYLfVk+GfI$&$NY<w8h&&@-?as0ETC^Rq4#9wZm~{OWifSc@
      s{3>OdpiWj3^a-i4R(E%f#!rS5LY@{3TP142KzOX9NgVV)G;Lt>3*#tkUjP6A
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZF3W46g>|~n>1{B38k@=N-J$mLTM0Rp-_ZcBpN6h45X;Iq-$8&?q)Wd4jJT&
      zFF(Tn;0K-2X2#CwcYl=Qxx3q>CSB>5-RH?Z_ndRjz4yuA|NQYMfH&}E0*4e9>vpT~
      zjlQKnE7aU}!*dExjkasr^}=nv`BZ;w8LRe|VL1)HJ-3}eTwy*k=09f@hBt{}Y$&L8
      zZmyWN=`Abdvc*y)!d;hCu4fv}rCdcJzT#{cDa3GCLjp;Kqb1We?zA=^8}2<(r;si=
      zHQlP{t||NQ$GG>zY${xcCfYZ>B{F*L22oW}A=T)LQJ9N{+M}8A*<!9DipNFqn8HZY
      z@Ptf!h-cSxl@TbM(lCT!g{0Zs{T9pS=u%AI;JLHeXg0qNG$%!vX$_M&oxp1fXQYS)
      zOK0VZmSxm+tL*8XvHGlLG(6L>lbEG@K|!XCu%;=@U|w{-u5dD2>Oqt}=>eZ5hMa~e
      zys9u{NDGklW#SY@YmV*drrq?_9w?!8F|D9s0q1Fb-S8xoeZUH5bAhy$XIh1l+4PnY
      zcvInouh;+ay6fs~`6A}Nt>GQKtB?@AKEkp7_!KVUk|cgvVIoZ22U>AxUQG=1`!7Zv
      z3bXrJGYA>OvW6vGp;NkL>Y{wmQVxP^Y&u(hSFdQeF6r*;y>G}(Iq?A-#dCt1D2(me
      z;TJosR01C<Wcmwuqh(qfhMPo5;dp<?KTn~Ed2xMB!-u#f+fOuniZV6ojfP>f6VFGd
      zzK1^KSxVwFHvGbL&}LT!@xCBFP&m!jA8?}=$JSRb<op_oUv^q<&A4gGc%SN*?RV6o
      zWE!7gv17c<I9M`HTpi|`_XM9K+!gs%z9;gN3mv3><?;|TK2v-Hml$#xqg+h~$8ZEk
      zxnls1;W$BLmBtC4j&n5@!Y*?!@x%Ga4o>!?E>p@iA9Xx9)kPf+QOA(MD}z|SW1=7H
      z7O{#ESduVJlM5ikD)@U~DE}KKex|@6SvdxjeHhJO4~3GH%yk%ipB6|`nfx}+{DjdR
      z%v957JDB?`f3AaUPg$B?01xO#l^(5Q91r&>%yhHOAdhptB2IKjQvP3(#h&IPenB3Q
      z<SUZsFCn<Vzq6p?YmAd@rv|dv!Nn?ld8>o>e&K<@nt<kO($q=wWRFEtU5hx-2U35v
      zA9j<lHesCz_1Ew|ftB0<2O_x9Z;wZU774Z@2zLGF1#%#Q)qaBKB>0vDFCqwbGvMVB
      z5<Ck1pW8vPn*O+h+xZUeY~ybF9v{+|+o+_gTyNuH&#-a!Iq)5a_Iu9A5A5h4G0VNo
      QX3(;8-FkfPSMQ5|0f8I4OaK4?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYf~Fl7=BK&AtYTuE&(dEM7)$Flvpijfg%N48w^yTlbMQ_E@2A`o88Q2!+@8M
      z&iEG`ozWjaKR9D)M`!AHf0W~M&Ze8S;fuqBoZa)D=k~rQfB*Bxa{$+HKZ%$?Vb5t6
      z4~!$@xLEa0>b_e%G*3Ls*(<J_zUi5}C8yr>w|vhuYDs7U7iDqLa*KB?n+1_=fkf49
      zI=+A?acx^Qi|ejM%dz|=9-Jz_I2t*$P|8&Vv{iT4Od}3mM>l!|M$a$KRg&lvm{dTv
      zL6s%jHuntsmbcfenT~(^xN6pY%XPZZPfDdBTWdD_?2egrT*qOtZyk}V7lV>(NFdYV
      zQh0Pq^9#933IfAAlIW7FQ5^|%3G|gM$J}Vvc1-WSv16M817){r*cHRG<a6t#=I>h#
      zfve^Jk?w*(%yKB_+?WJ(WoFYfs{7`yKzu6qnLvuou<Sqy-!S)d7(pY6Hw6a6(C>vi
      z($N(imvA|a912O~qjl|u>v#>5X<S7yi5Y?3cI@khzpvwMT%(YhRGpYAl_Y(lYP$`_
      zLNOHyKC9y$yvq*P4DXO%Q>x!7j?->A7?2*hv(>EEUC)=sG`W|i!bKeu$V!kU9rKvv
      zTv?K6dnH$r`z!M8sz8!&0`mAy^AS_rUXh1ZD8hZj=eTW3fu7kgIgeW7(5g!zYq>RP
      zZC%>fkhp8=O%9*vSi{F;TVtAAZquupoOOB{>AVs%G7<uig_kPEKaL4k19EWqeSx2D
      z$h^~B)mbI$F6RqRabf&t^!$n52LrD>#lT<r@h8aS<4-X18!KYC$p5b@j9FsN5#v1!
      z;(d(b1{*ieJs=yPVGQGZBCc#Hx#UXn$GB#ME%qDg8R*OZjuCz`zapWX#!p!u&~>S!
      zs|s3I>%JDWkb}Ug*IBD^=M80NiS&|eh+uD>VM=03?A>RWei`*{1a&Ax<!E%E&Jk0h
      zb_b}}+i|2>3#`-HMg*-pM4MwoLC~|TleMCKI54-V4h{#KVQzxC%6-9XU!*myo(a<t
      zP$fbh3&}a49aat)kd!f*Kf}V0NW@M9Pd69GV!xm#|A1j>583juc3eTvw`uZo_WTR<
      z<4X+VE9!a}(LUMY?dSdnE$#DI?oe=(?UD*o`9i$#{0z6+L_r{C1T+-}lER0$tpeZ;
      z>j3?Ugb9Mq{>N5f{8DrP&TwZ=%V_l3t9)jZ(Tvs>5I8-c(?dG7Ibt<jfy3VmSBbhF
      zkc6UUTcSvekJNO_)m^UQJUgUvki%IzXQ&Et806>Wf$$^E6k#)Y|2teCF-m!PXIidP
      zk0(OE-#<fnS@w3~4EL6m--#b&V<#T-MD#Kr)9wlFe$9*g4P}3eX?z#y!Axj(hSok+
      KJ=jzjTmJ%_BRSy!
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO;5r=5Pb_s0a3mbMGjseF*KerCI&HSLMV~S#e-SON{Xc=%NF5h8860zKfqt&
      zuQ1M{(SvL<nVp&UX5P-ef4;r}I7QV!jKLfSkvZWDzBFCAnyJuy5G&~gW3$KS^T$w*
      zdNNePRbtc*lw27|FyuAC^f{sI;e?6|Im>BZUpSWCy=&PwU5BC6`9oQO5@R8o45>5M
      z_X1CyGsJ840Yjn{jzk9A*fEf0DEuR3v5OpovEY6r?0bfC&8lzcod&V9*g}%jbi6=x
      zqv=pchYx+hQ0#;*_Xk{hI{rx}Mc~qOhU40ILoYNhx#D)DW|8VEDfqN`+tM;K?WHSb
      z$_s<JfkS%TS|{Nx`?o@<ei%ttTzPtAb@K)rnn@aI0rU?H6)l-=F{EISF{CMKkk=<u
      ph=05w^NjoxMKKh0jyzxz?gXWER)5MK_K8!bI6?k^tg@~heF19;c_aV;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7+fv(B6kP|5WrQGLNJ>i!P9VV-z|93hVoE}}v?k`#LJZ{A3j1ILvgF7z4ZqMo
      zXnvqCd1z)@JJZZGdCN>^`b(YeBgr=c9Ud&5bM`)KU)I|4-~ayk7l7;dNkR+5XwE3b
      z57Z;|MLc627i=?r$d4_}$i>$!Ew9<y5nnWH>sW%1Vem|6$A>}5SX{L=(^yb#&d{9_
      z$nlb`>2YzAVDQgqhGx$)+zBU7T2p7juUlq;TeilFiAb8kH*aRSj8=3gkf1O`2<&{9
      zC3G=#HK!$`6Ws!-hoLnbNw<TcS3w*6!g5i;C49ormeEavis}nT+{AU2y0o@?z%zD2
      zT=`VNXBc3R3$<(+uAVEe0KT9As;;R;8AG@%A;d6zj*1jq!7xKd#x!hIGl~!RF~h}h
      zLxLN&U^5YUB!I6fxQ0=xGRJL(Yp3~rd{ssSF$q!P)9IU2w+pLa4C6$q&W)VC?{qII
      zA<l56?wQneo>TQXD_6>M!(M!m;RPX)0IoBP6sjr<k<B84Ln{wAHbeXB5f7<G$ZN?2
      zZVG;Gol#plfGLK~s`$pUq%}d^w1PXh%OFv?n_8a8BYKxbJu?cv0;y0sQuPvF+Y`Xc
      zjl6no6HU9XU=Cl?-9m|)HhoIdKJM8mPz)DRn!#5~`CV>ps=GR+6HJ*IRZpvyCidQ;
      z&)(OHr0M@tPUC3ORQc@V0>QB)EyKx3TFk}+(J?v*Q1Np@Stq6Il}LG!$9&V^2CEux
      z8eRUpr0N9Iq%Us(guXWLP{L-DOkAsiG`8GK=5@755WUp^j+mUogaFu4u#WF!nx@AJ
      zQdkjO?U2AsXUs&y>ca9OQ@p%-$eRn0YceZJ*k!nJ<}9tK`kra!d6q^;OiJxy09k@I
      z%urQUAy-x^Zpz3(lR$!Zza&l(DbvU)IKUx8dqK5|TpXNeR&^LjgPq6=f(*gfa)cCI
      zAYaWOJ!;wJkP<A0p?ck}f|e+0wLVQmKDD*6JvDme4YOor_>v|R*W3JApAfLV%hc~y
      z`ct4>#8;12ep*Qg&`CS({-K?Z-cO?g;}ytbAJ7whi_V=2F8qPuujq=7mC^SeowSSo
      zj{e~1WeomOUyqa#eu>VvnAiz^S;38Wj?*MPgJs-)gG3qkwq8?!7R=Lg0v+_6q9krZ
      z#x(kI7sE&(jv36-+<r^XRoufiy`SJd7RWp5CWu8W(T-BZH{{2hl_;sjS<&~I3KgX#
      zz0zjMB5eNXKn2V79AxKof!eX?;9qjRYWRK+p9z(EShvVWM3k#N82OEMZcTp2vg%+d
      zu9t_!sFpPkVUpegp~G#BXz59a?FNXB8UziE2l1E!ih_osWqco_Um4pk(boEk_K#xk
      z!RS@SlUKFOx*Y1Cq6^Q^jUO7S9jaA3ME!h50s6?^L-0S+Z6EDbM;<>@mqf@Zm)0^y
      zQn3$$ZgnS^ser$8#1eahy$W<!Fk6n%6vo$t(~nVN@HwFf{s)O4AWPhH%4(0S8d(n!
      bLmrbb8#0{oGL-3ms0f>o7)o@v1xNn@!xkEk
      
      literal 0
      HcmV?d00001
      
      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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
      RD-ni2pOV0z>D-0C{1;GYqeuV%
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      beyi9r$^73GTNW>!KPk541$|AOo$LPwsF$bV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_d-%}e^6#i}q34}CMC}=FSp{7cbwz2-UG*tq$-9i#dpp>Gco3MnfVG}pIw9z{L
      z19toeeDu)=b+mM3hCX)2Kg#jDH^~Mq)z<MLclVxq?svZPopUz7|MA;Cfb&=n!Y6RH
      zV!7$t`i_1#UACKbr<VTgj-Jly4P)MDuG)INZd#S;YNckI&enDieu1OXJzdqUO1e<G
      zZIqoL0s_fHfwaR=1pJo1Z3ql4bfJol%}7%`tJ_vZV0@tim~I$lm*Jaf*D<T<#ijfe
      zx&<zpmg!s)7@2$$C2@l|GqnvPgdPlrF@U22J(JQrxL{gF-rX)4_Of28Di*b}UcI5)
      zrrfuUerL;U2&6q0&!i7|9h*!%$)_IzFNP6BA9+dM%)L!p<&@LwQ<7Y0?rzzrJ7&#l
      z1TiKsq4e?c*Q_1AYHm<d
      R5DVfYbx^(vZl+ePvMv%Pj0v0)=%33iF0Xx(n_iR(
      zbUkI@5Xr^EIE^R?7*>V)Xo_M;cUY8?>ljqRe}~OLhspJ<rtz21f=IR*dfF7XYPOSg
      zH#ZI2V;IC4fm7W=YvfkZtJ8MH-8L-8^XtPo`W0NK?mDsB=4QiiV!4&#ax7n1j+Km<
      z#aoWK!;+@(x-4l}5`QC%*YKu5pW>BR&xVk|U<mKvy&&HGOS2Z64ae9H<9%G9Ai8bq
      z&2p{YWa}R6pjJyyX$OkfF=?_yKGWi|o@GeWDkz!)LSsW#shzXMKC8K`Z$H=0alkej
      zZq@0-ECti7e@U<pmp!)@=2LVKxEh8gvu~G8&MS$ymaJ6}3j(Rm5P2n%<IM(IQ9g3G
      zy#h!%^I;SuV7S!>EiZvc#c*bgO`S=|@e?@7F7H4eHlMQLi(&L56v7HtgP?N9|KUOy
      zH*sBHfN?ad;pkSGgBdE;T)S*sHszF#Kkb`zPPUeRf&qK@>xB<~IcWUG`DA=P2WVlt
      z@bn0G89se{_9k}``ANCGz%`_dvvi%q5ci`kCk*2lcXU^vEH$4aZKyP#LY^gm!RU{C
      z@j*fblu=VKGOE1Xf)RKLQF^^ho1Z7g6{9>Yl2Ih}7{Q<U<x8d>;FT`5A^HM&t_9|G
      zop+WFP>gsKBX||3h$=V|lLw+CRFplH0`ni~{SHU=kXjo$yNmRrWNK{u0nT3tjPynW
      z`=3Vr``=?=4~ey1y!9v==!yE(!9%>w;~z+*mE;NP0IU-9CI+#_#BL#ub)3ORoUo4-
      z!K=zA;}OhY3Kx|i8J6LaN;-oN_|`+L3_j$kOf`dP+Ioq38d=(;pqz59vViyKBfa8d
      zojhh_9^;+eTsNyL-J*;V4=C|w84+xdpMfz{6whP}&*K^Qc*Z@R@itF^Yo53PW{|-A
      zGsv6!Z}M6sU8B5pO7S`6wJC3d@;d*!yw@miw=Y{MJ%`Y_zYF~ZCH;~@-y_qnDD>CQ
      zE41G)|B+a7Z&qmG$Bu&|=Rh_?=VYF-7C9HK_LyTHa^{9PluM5hN<PH$uUL}1F3E`M
      ZxNq2>_et_wMXoif!``T_5yXdEe*&3U*c|`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvT~C`(7=Dg+z`D6<bsx1l=UwZPl3ja6D<&tlu#~oo@q(N&L@XW%LbZQw7ybZ$
      z)Zz;+9WlKihv$8t=ly>C`{x0`cO0r%V>k+Au3w9}xYxaOkz}zxyAwJ;^A|r;ktCrE
      zj3|iHFuS@@QDfLFxOyaHpxeK$eJ^8ZotfvZY4u0vKgQg)+yV}bu{q+#fT1z?uW+)I
      z0v<DL^kaFO37Jhrl=~W96ORh%K9|s?61p>gMm%ouF@<rb#$aM<c+0T$f)~yib{u;$
      z>YJ{8>W&QS#2#9v<7jx#u>FFaq%vTrNpa(otle2vTrHF#wbf`pJM%1z^r1+OJ5z?b
      zdGGm27E<{tJ~AAZ&E5K5P9s|AT+T%l{-)_Id6eyrCP~uvMUQj(I$Xu>Kk0Jn&Q+Xd
      zz5MdhPb*Tb)O0R-3`#DGI4Zs{d|SCR$~q}I#nvi8>Q0=eo_`uf)bsAj)pm<E6b6QM
      zx{Y--@d^qdmCzbA!u1M%LwKWt-$5xZ16wFAq=9Wx?vS!Z?+3Dc!sm*mSz1~pcW>!Y
      UC{Gjn<l955!rrI<gR+XRPZ7nb$^ZZW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=yG{Z@6o&tSh1C^7QEaSi4425nSZIPFQKJ@aY*6}PovfqF>}J>%cq}Ut3m?FT
      zGM)iqp*A+>GV`7PTs}VE-T@q<<|4<?3U$Vx#EY2lz)X`g=FelnZ{+k|kBvwYrNhff
      zAd^(Z+J(cgZ(%-?L1t7s<=0Y6Bck3i|7IDAr%J1|%aE@(`V7uR{2)E#v06d_MTUy6
      zw7kuR18MHWAd(DKKMq9H7e?89`RJsNYQ%8h|6|Y&L#^)52aSXdc`r4zN2k%Z{Wom?
      zGL1DHg|_D}jKS;0nF-{TvQzE;eT=rP!yZV8&I#lwqP@tvlpT?0<O|IiR$k}d9$Akt
      z;1~{0utrg70g+#)%nFprT7fQ+mMu10GgN*moDq3GSJ+ulO9kSwi7II@Y*BR%+h5?t
      BZRG#}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU31e`5IxsPuwsiq456hI5=sGEkQiJ@lbEm6B*erGEe>Shh2Gc~TS1nBBt!F4
      z+Tp#g6lQ=SGks;+AJyr(lCUZGg%|Da{n&fX?pgiw@7uosoJTc{l)$-`+bwR%C-T=~
      z!{6Bsz2c*%vbd^tHhj6gZM&^Sr{(!}*zPRLM(FuFX$%YO*EfoebX&z+n_H?83XHh2
      zqXL0_wP>#!+D@^q!m_}gOSWr=R|JOgg}Va76|bo>7(&)W8iu}MyK1f5*;M|z+;o&c
      zuI4qQb65Jdj+4dVux&GcsrI>u2_f53Vbu*n={A`DT0X`Y;jf22S(Xcf(^dynqMX42
      zOr&w}e}#w>nK*<mNRnAQ0tfSjPoFYym_>Q?bXuxFXF6iyYaC@R^|&jYpxSahUsYs4
      zq!WXX-ZwBQFd8Q~Uz#&;ydTb&44mkNrHiu$PLe+l`}UUGl*&otw7}%RA}%h~6TTUo
      zLe_vKVDc)-Y&)u{0t08`-1HfzF(YttV5;@#%JmNtP9w{@XqD&&_XU(RfF<!&&~+%K
      zv!Bxo0fWt5i^VtozTQ3gjY8mi6C>D@#=O9IUz{s4Xj7mW%pt2kmrPuSR;g?@KdOAJ
      z@p9pQ2G{UI8jIZTC#rak!x6AOH!xAbbt<~+cD$zjFp@9d5SU6D*~69Sq8AIK+En*}
      z52hypNcm>!Ue|A^Wm^x&)F4SF!#Sf-;W#-DamIO36Q?(Xl%6%Nj57L;R?v=EuaWta
      zP6{T!8CqZg!zg1fJu^OpG3;Y>82d4vB>0;r^;v1X!-#lpy+UqP)U4c>ukh9HIBn&Q
      zMb0rRHx)S(R_>d~F|FLUbbiCwE>7KhjePA79JO+V_nT*;&Fn6wxmm28dCo^-a0`S1
      z+#t9WGO8krn*_PaX{%upKO&Dc{?l#|{!duK&x~$k19d#Woruh#7%<N96u7dEQdEa|
      zT)@SI)-#^bb-DQhv+q#Z#T-#AtVX=b8xbpQ$VnSA(uRDrAq8znfaVRZzQioE^zqLS
      vG4KnqZ<0v^6KHbk6;9wGEVPKKO%2+(iY+X|=`~=Ct4mzb-MqnX3M>BsP#R=x
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7ZExFD7(F+2<1TT!t!0I>c3nm{@=|8T>tG#&WGypGw~3TUV-k|<+@_vfJMv4l
      z@|*Yo64g{bpncj0eiY(d+c<?*2t~1d?|q(gp65Kr$sd3I_B()E=;<g4ERFocd~P4u
      zFH9#q9LIsVZ#!nkj^vi@=+Fc%s8iFk{gL^2=ecxZ9c6*VGxIDa3245(F9qg$lgxe`
      zy8h^nz-;0VW#}Dp^}vqy1m5lajbujBNkTV1H1~L7T3a%T?2)|hj${-wwHAko@7S>%
      z_T3+eFD!xby6d~~7Xp_Wr`ehV*3u1zvVtjGG*H8wz*M6-I0u0@4Ct5<INx)9`6$`n
      zk>R$z<E3>6j_nQX&{gYvQ;YZ9NZ?9Q?OA%U$n`VoD02S0!{(sEx-P3aXRBDoijFG+
      z*Z-G12CkwmFr$>q)M1~N>hm1~RT%2&x`A`3u=7Uqv{nK-2cM;ulkt!;Q@lo}IZ&mv
      z4K&cC<U9O!7~6Q(v8?RueRXzIp!AFf<zRO=k}+lWq%SZXO0E>bCk8%J@=rTn;1l|v
      zMP$aJe3gwCjvU8s;72;RUY%H|s}dgtaX%T4gODyLLe+Th8u%2q71Lc-LE6M)6`FDf
      zotO_LiCxd!vd4Ft107v~dWv4y&higz&mBILhXu5b4S|(O5tir4k?r+k>Qe-faG07@
      zDb`dn%tX@L-KK3*zkScX`au#pa?@1?GxFE#roz?g9L*HJ)4XcRlYBchHL3K@+3{ZG
      z4qd^h^IUDB#1Bwuy~Kr9`v~*Da8<%3UT28{bQ!-vj7=<XwU9;QO}xbw^HLTTOU%U_
      zbHo^xx!7vI#M^7HQEROoV@co$*IH{wSe;NTuvFj)uiuiQk9lkp_`8(qY6enJE#_1N
      zPFpIGPREU$)Z|?dYr6F-=6~ix)<Zene3}9pSwIfRp9?6xlnN)4ul@9|<R8vVrib(7
      zE~%7+RWh$$K1QpANrRR2$e~Wd6eiQJS~OL~8r~z2P{z*zpHfYYfHei!URpkeshxt{
      z<1pP6vXuoFkTpWyA`}7e0i#rHHGIe?WevVLIn8a}Ra8aM9OGkgiesNT`zN}u6w>ki
      zAns?()`;<WDx%FD#Z{-3)?Y#N6z*%xw=;bHu)e}Fr{A7TXD%&0q)#J4#8|<>36<(O
      p-3$kQkG2r}2l*0Tkx&trN!G!A?rq|0)*<i!7WW0d;kAT^e*r4&FiHRb
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#h=Q3?x&zwN$_=t+!l&v9?ufu$9sxk&rfk&`@tfI3z<SGdMG;<#+hT
      zAMnYw+Lr*bmhF?S<$v(6sNb0+gjiV1hnzX*?0xqB_O~zj^Y34O18@~jG(-f(OHS3;
      zHlLVJjiR@^6SzjjEE@BRW^v9e2ClcOp;Mq=X&AQYl#Kfu+p-vF=oT1lzBPPVta?_k
      zYb?o<<p<ubK=-ueSivoUj(B2KpmWyUlu>jbrb9!IKws8!WUgA-klu>9VM~F*tXnkg
      zRnxQ7xpCPUlr3N2O1A0iESzb9SV;yM#}7=WNOML!+d{n@c$QO2Cr&q$VYulihHyc{
      z`L<~5?{o~~B4ePDiop4J;#JG)^@xs9r56j_tox(%W=&uA;0=MUGD)3ODsSp|3*!P&
      zqVxiP%?io_7fwUEuGFvScpLAKOj|l7rAjh0O7NbJ_YoK9^{X4?o3SY~nNxsiND7Rc
      z$zBu_n9?vwikmvEY?e*GY|L|M)PjzF7y{|j@E$Y!pXZrH>HB6$-nB~756E%?S5*mo
      zD3FZ*&qs;X7_Q?Z4L8mTMP*RO$M{5`$Cvij3Vnrat!wyH;9{#1GEN{p$F%Qxp6e;I
      z(>gv2v+I}@R_IOKR`5PQBP}fD!B?}-40+P8+VnYg98+7Rh9yRDEYTeOu%ri?WmF9;
      z+gO&0n+bfO<1X%L$WS2!9ZFRWs1e0HVliZq)37LTuBAYsj{A5(4;JGy*|`G4Z5}d>
      z`?Q9oHb&|-ey3{Lo6?ISkJ~YPg*6Q-)|QLrdmRr^U^6)KDZ_1VhWc<|AbC8}@io37
      zG3L&WbT$PhPpz6(V%lJYCce}0y~<2a;MRpI{tX>P&|HVP$+fL@8r~D@3jdalk}3y{
      zMVuqlC@ehIu+2BEm}Xtu<}|Zh$Jb$l&D~dZD(<GW70w{C$_d%PeVnF7lO3Pgg{n~+
      zY3-|5#|deq%xn*xxNc;V6DwjV3QvfdBvTe$cB@`d&RJ?U_Me!@Qwl#WgB<YJ#bMro
      zh#IOq_40I$U%_uzav#y>+(e*rjq(em(TQoC<4&(D;WhN})XUZ$Xc+h<GzjFAf1pb|
      zOV%*Bz~%LY<ltBhm-fO-wY^-!yGnS3L?L;A)IL7Qrhdn0>JZli_AqdSn*|;i%|33u
      zNIj#YI+!WMxL+ig9J=v<r#t~HVFb$<!z$ufV{1Od3<@mkM<L+hFn~O}b%t-R;}Y&*
      zmXJqO$26e-M2j7i&KzKlu;vT<_%fS3#Dc)$&lpb~Azv6A+sE?6Ayx!lVyK4o8osT;
      zT;mm)-uvgT)B(yZsG|f3lxf%^XWRTMcub17$zmmhHBN_}1m(b`o{k&X!4HHp#7XDD
      MCuo6yk_f8*0&KzGqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv(Nfbu6g>+iX{#VqR1gsnl=LMTpZnC-I+KCo45`cj51ln#G7HNllWZ93r}^Lq
      z_)(5GTZc00L+0e}J!j9kyZiIk_a6X0;K0QK!)Bt(;ELb!yCBY|nMs2i9tYu&$1Z9N
      zt5qvdTqnWjuU8^Av^4DY$A^Qn@vu7@oP^yYhSt%X7MWb?q{Fb>Pjz9qHm6*bqK*c`
      z7Mb}o8=q|aYcVA>B9~k-tc*^+9QSF{kK-sjAJp-fVf!zI$x9uRV&WI_n_#GEenYVC
      zwf`5vC6mbV7QJ>zY^fzp(DG*F(nu8ydDdy4GBgKwvB-?1&@P@a?AnnE5tq3%(;(Eh
      zT*=9ynBMbTykOXwPaY~I60Rac`R+*!PMJ+;h1|VfW#oDny)dl)oQX_CL4j&s`=ZCN
      zl#4=8Nnxp5FNC@r**-0tQ#)3v{%6?PwRBwUGwjd9^egUhYN9gB(wq+LL84}qmU%2b
      zNkzLgs=M|pp~FDl^fnf-i6uBxxwfiP-F#3#LW7>hGFDJMktbNSxP}%fo|3|$9oF%j
      ldK;vyI2(9raSN|3ZsWDZ9lWu)i?@HYHNrjm-dX4OzX1f<q00aO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZBr9h6n-uO8<IsODi-m*RY{^opruu;6{$)jfE5ITR$Y=MS>5cy?nXgtYu{h(
      z`^(r)Kl_!oGoWRr&eWMY(_hg~{TXeayGaBanDN8r-h1|*bI<dfd!Ego|NQzJfL45`
      zph{p%)+)p=X;-wVc-ons@a%YAOUL`P^f4{%+0L|rYJt^qL)_G?Y<ytslAiVy)Cz1U
      zyT)BTU2qI<I(|ye8m{L|3)EOzUUvmnC4Jw5XPEIp-Rl&nJ!n{lcSvAGOJrD}y4%j^
      zL99T%iaG?Phhgdch5VTA3~6JgE)Y)IY0Vtg97C>4#%eETF#fh=Ig4cg@WfD7_Y#)t
      zX;zxi;w{CLd^m%iV_4bF$kI^~<e@W&by%;U@i7{Tekz_q6Cp52USMrYq%yMfZdS2T
      z?hAQ#(!Q!Y-I}Whu$d&~NcJANWvhy9*e(!cmX7C+7+y|b-BOv32JsAbD%c^gbxG(w
      z3&m3r#+m?Hc#>T{DXJod-7JHtTUmJu%aD*M>{SuRK7l&7Fvc2^7MVd}Nla~cRzbVK
      zj*1M@#zanc;@$pGx<fLJ=L8Nc1*ekuQiQ}2(@tM5#_3e>yg*aMVZ;<4=<DhZq67Qo
      z^*JCAX?e1ck>LOi3Mhq~=H}YlBm;+3yd;aTTAwUvrkluGwxi2pDd-Z|xa9GtdrIzy
      zQ6Ip|<h8)8+S?Qy6KG!Ag$0ra9+e&mdU*MKuC+r!?{XePeSJNx9YLHxeF*(HsbF9^
      zI^>mA@d{1}1YF%5AJSdVukomYA%XP^ot&^d-LW+DsN>j<3_Gl1#J|q6b%Pj0N>Vzy
      z%spi5hAXc-(G=?^u=C04Ko3WE3nsH{uJn)<_Pda9*v0)tQE4c5+9O%1g8*?W2q<8W
      zH!O&btPh1Jhz#mw>*Q2igeI4lR9uG1^R-N-%jBe~bV2>7-L`2`=?vTIjIif2uvFNX
      zAeY?!KTe9G=<jPoE(8|^1q4*TkOoswaRpb2!yxY(wN;?;F&v4KowuC=x~Nh`u{lyO
      z%#7{?F@;nJui<qCH&}y(Bg+0N-oQ<&lBG{EhsRZ^l&K8zmWsFWj)Xrkp<9HsXK{a)
      zAyt&Plm=yS3h$|SU*4F2XBTsnd3~tjBYFK4Hda4V2;vibs^AtmTgY{RU020t_?)s|
      zu<~}s822@vY*F48mqUI#N>cQw=mJ$aegf7MbM(!nYE$&93<-YGt1>-&7aX(;PFg=^
      z$gj&Pc1%gA_R0h)#4IwO8a_dJrTDpAfhzfRq9w#tJ4eB>COQZ8Cr+xclD|QYz#&vq
      zMpkjA7B^uv8n~*HVq6R$;(kEj$LK@Uh?(dt*7oveLvJ*^X%<^<BM`ldr)Q$!UH)pD
      zKZ(p@PcQAQ$(ZjokB(Gq4lm4zWHj74ix+QW<vb3j=5Qo=2QATXciDE7w&S#|jfQ)C
      zTWB69XiFwze_%uG9{L2nN5eb@Q(T-Dn8TU-u^A>^1U8CB&U*<giCQW}2m=Il5=|7E
      z%@m4VIL$v4!&KoB9KabIM2hNm7RPapyI$q&JR9f&`{yEWjfR^@;}$JHVB9BaE9oE^
      z^ghe6gSK<@67(OY=LOE1WYZSO!{5w9?svi>)%*L;7<-8G^T-g-crtbu*;yDPF-b_C
      z138cbVdqEgV)7o?c71oSDK?L(RCw1MuI;{u>jJZQa~AK)U0i=aI{y8Ou|EC<W6=k9
      zP#b-4p9js5j~e7C8{m`o$09==sHbg`Z(XueV4<&|8CS8Lcq5p`K3pR!*NNvE@!TNp
      iNm%4TUXw;fT|*YXz?Ve0A3O0CzNSs!8@{c=xBme#D0}1p
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=YfsZq7=BJyHW-!5fC-MFh~T;*^@50ksN8f3;srw@#7h}v7Dqcrr|2K>vmgEB
      zAMk@F0znh~XyT7DKBt>w=rqgPw>|Is+|KEbpP#=1ID_dB6oJ01Q#97i=jN7?DZI>k
      zuCZZejGJaA?c|Hzf>*H2jSy6UF4<(*t}$!pJgZQ(EYPrOXRS@ocCrFuNgzNBf!JJ4
      z>@>m01cKwXV|x<<=Mr<jp{qd0{xhsE3aC@=sue~6hcq;xNuaYfjJ_B`i$IT0ku#mF
      zF<;E(Zo9Ta6Ej;GEAQE^6Gk&45~z*h6Z&EU1UfW?P%o>)8tM=fXr8kjYreR#VioS0
      zD>+LbGUsN@+@e{q<#YL^>OHYH1^R0{I2bL1P;7@}H8WsJS<B;uKs=$>#`_)TX1TE^
      z@t;1KoZ^yCO)U8-uH{VbnaW*W^_`~$!j)7uL(m1<D!X&5vLaJSY3N2gj8iZ|7^?2u
      zKRFuuG0@1vb}odoJVXCH5E_PYo_34*RnudzYGP9A6E^?U6iO^lrqg;_vR#s(qY`vn
      zPF=37vOlm=T%*I~NtW&!%RtVe+wg*0EMzR6Ttc@U+<_r!54|)L;Af%m$G!F|?mq89
      zt~4ObYa^c=uFJmeWNH`M;CD2BLG%4xw0=ttZlgV^ZX^29pYG)Kh>tWy#A#y8pcS)-
      z;yPlufiA8eD`BxO#wVi6M9Cy8$*!>O!O=3e!Mj|mOMXK82Nnt>i4+Lj@d33`Lm5zz
      zKpK<6@3LFrJ(8-{oTBD^xe=)Bc);sJXm~`qkA2i=X|f_S;)|1Fj-#)PKT*aHCSwO8
      z2>Y|^jNoY%R<ME<#0lR4zZVR!_aqgl#7y|A%`$2)Ehl#{IL>?YE!twrJ2c4{VsG|v
      zT0!hR$4YUOOt?%hk9Is`dW9<D-ZF7L-;Lk`i6rspU&OB|qK=rlBu;h5cW`k;Es;k%
      zRI;~7_EdL=x`#0p9qOL~UNFHelDwp=SH6JZ5@5x-jtN{LJxOqtQsnOFxW+2L*|;xH
      KCNb$-oB9PXUkknf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=?M@Rx6g|_HR>}%eunG(H3$Y)_ilU+*Y7w*vf&oJ!B<fO@y1MMv?XG}t;ZNT}
      z6M>+K{xtESjAyo`Rs_;?=FZHWbIv_?_Sf&P-vJC^B8HGaU&;2h*ZMnsLo2$QWzW&p
      z^rH4yFV6a2+4tr>*U;BuhzNAcEX{PZDbw-{xA9z{dBrRl70<Lw0%B1hOcVii`atvo
      z;YS6cW2S9-;{wC!={@X5)X^huXBGq^6V8eeM;ONyG^16Z>kypGLJTJaQUQsj+a+zr
      zx2z|QX|s;WjiOQZOvjF+4GD?VLHX&-LNf$TDv05jj7}+NLR6q_+O&-se{I=tpX$q&
      zA&{7Min_I+yQW;%HY46Evm(%ca0&bDr59nx_XLs$`#`HohQ~_+z3I%skb9n1YKf`z
      z5qZ+RkYm%r^kU%Ts-?4WP3x}dv7$)2Aa~<+Ybr5h1UmMbRG6)wv>=DeF$~cBLtCw2
      z5E^Un%PV>nK3{crNI?&J<G6<FF$@cI?h!P;0tFY*&quY)e?cIYUdk6JPZHmj$RqOp
      zn9LfXjm!QjOIylIM^_n!ErVso=N;cI8hp5{u5+LJgOU~J*yAw2ix7WobP%!ioTEHx
      zMx0{{S2oXOUQaf+17+YRTE3y}*$&!&WCym;nT>2A`8l|Knqzl>^ni$y#F#=m9wLcH
      zP*Fe^&(Bt|n5S|@RA~sAWF*-`j8iyM<JLIKv!?79bbewGf+Udwfw=%ssV39_1qozf
      zQurLRL!1-2M$I{D{wp_u2s55@d;tY7DOV3rlhvDbnTbH06muRIYWU+d{AgDF$AWlp
      z_YEzu8nB{utSI_|3WV%4b1zXrgqZ0-^->L0Wy#5pXqA<#A9j%qf#DT(8&~(sFH_uG
      zB;b;w(m<)!DOKFSO;Sk8k^d-N(n}jsRmwI=nd|A@#jQxd$#@&1`&rk?x`7UCvVZRb
      g)@&7}&YHp<jFXedxJ!Q7j1=xM3Ul{9S0Uv805>2E9RL6T
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      G>Hh-NS?~1#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9{Zmxu6@Jd{-4E8Qxfn4TRIo~277&F5ZA245Q`fAJ0FoeWWPue{mtC?SDsBBr
      zjbqa^rcK+4{g}k*v`p(SNh(XmSjS(QHnuZK)9<lgKlQKZ)IR6k3#jctm$~;n?>X;#
      z?m5r<oO3U?{(bERfUUR~fJaa>nl3aRi64ufXdKQ?PUJI<<MH9f1AF7SvF4_Yv8^Q`
      z088NLvc^<AJ=)kcbR;pH55O;Ya9-Py%A^zVp;SWPJ(`#lcm|>Z|4`xZ;Y3zv?E>F$
      zrjX7Hgcj)+RK?8xWTvrwGM{M6X5*7xh5SSz-;>WK;^R96p?oGEPj$H4_R(RgX^i0s
      zHpLbWzNr*EefU$&|KFD8`7QaeWNzaY!MX*XqRv~B>12MFV10PurL}zmt0Oa#D1)HV
      zMg>-e;Kf=S4`CfK3)l9krP@XSL6tsbqYNRHHriMMJAh9M)-DKG2sK!%J8Eq##WI!Z
      zY&-x*@IWk?PIMN=hZ5P|(kU&EWrpLazIZmNb606;;){dpGK2Z=T_o)VL7Ai2j@rHu
      zgKbhUR)z2gS^{|V9@6zp=JJVg8{4p5P!?CJ3}+@tvq-o^qPwWMBl<s7QGG-W9<#9n
      zt%4=_%pB)<FyY#Pb~W#^@i?9!Q;%npc~UtL9%zqpt3ugsqa4da*o`Lx*t2N$xCFHE
      zS?pEnYkde-glqphIQ72I#)DW9LQK8yU(~zHRfe7)i?gKsnfzEH+pj1-qbQQQmNJu>
      zGKJEgBCs0=)J!sNSmfje+I4*l&*^#=Yt5qTbq6c`=vKWoX&-2&$U9|8@;bse3lk%8
      zMb-)%|AJu~BTz+}O@}~*qwZOZ+86`3S-IpFXlI2)^@xtzNNL6RvWZ+GuNkFn4C<lD
      z5HGeFAuXhh&l*XNCUW^Q6mUF%V}dmcwG1045Msw^i^UEd+|%8)r^m-u$)5#%$d_#7
      z(5ir(Qt33^6Ic_f;3&gMCC3$RKf@}dOk77@2M8MB4u4D|l}Ix@?SkWcT2H2s9Zo!%
      z)V^uEop-YqIj7NdI+5*2#dEm?Yce?7k5SD-_VV%}2#>Z42I<jeVMewJGqM4gk>zhj
      za@UMx8Q?hDfH>E^tT}pHO({pe9*$chb<=n_GJ`dda>4b`G^!%y7On@Uu|DFR#)ioI
      zsOg`<rfGyDWz&ef!%ZI4^S+J&5q<dNF_cLwmdj35$}UvP<EWD-(7-h|AE$4j&1f|H
      zNLM$2e=sSFx?_>L8Emb;iYjkJZz|n*56v9ct7g4wHc%1KkpXcC7x9@++QJRqh8sof
      zR8xepacKJh<z_6R<0f`bqm9a_tBe-$)J?>u5uMMXNkNo-%p!(|WIw{v$&%_~^LZK_
      z@(iAmZgfiz2BjCHasUPCGnrKrKt}Iorcx(!^k6%7p^FEk$Hso(X1k5KDiTZI=j)J>
      zE8<VTZ6Hx7{c4nhcR{w)bu8#ckL%=LTt~=}^|tuDE&eIADPk4Ax(fd}zcf3mPPkGz
      z?woR*6KC$82Je}k={o0=3LlUB@|~aYh<BTy>SxeP#5j+cdBbXJ2G8CDS46odhj`$F
      zSS@kFHH2+4OsEF2oBA#p!68ZD1vzZ8*;|Tu4yG&)(t|>g#Q-JcU>2V<fT{F(N*2M3
      z;dvg6j~PdCh>{{Sh`5WyZI?WwN)TQfDtjaS9IQcQETu>&PClrGWWLOlILu&ZKQ-Zc
      zuM<?#7<L;n9d?|zuvTre#46$lr)>>h$0=g`ezv^8_L0R3$+0`-3BfTk<~Vl9Bzx0I
      z#N;%3<qQVoEDp;#14G1ceRK|nQDiW|WVWCM^hOwZS+rRLgJ}CHB}&hJv-6s!atS>;
      zIMoxE@TgO5<f=iZIyKh%F7l>WR9C6D5v>@7q%<?QsGcCiIEL$75K1{4RVnAl3QT_U
      z`>3hA@f|GV%C;iDxPJ-_j&nV@zs_6l1f3v#Poc8z#--AVI&U4TaC~+#$7p>KCp#lW
      zoN1URdAGJBc^LtD1?BQ8s^lUbk=IC_ZxFNB@vMA{)cH0sdxP}(F5CF`a8};Ld3g)3
      z%MbB}{0KjgDO`~s<Es1w@5vQ|ZMSJ{*IaC?un}iX--+>CO0g9ZXux1AI7Mnr7`)H(
      zyQw5y;dfI>x=OTPbkBfq9+zy-n_32{?_$gm(+f4@4-hIP{^fa=JWM~3x7kzPfi3Sc
      z+n-{UuvTUIt`e_yBlhT9vGgoYnz^u1%WIW^)Xp{6L!GA7E#9ZFuc5-?qt;jWSi4&7
      z^OM<vzfZ%OzgNSux1_>abNNoO@}(6xm)z#}wpdfRwbD=L-oedWUS)(qn$Mr6GBB&8
      zP*Nu2+x%v|HEW_Uw>~(lq;TJQ->iwk+<M19t5xZ~9douh6C-lwLQ-jd$2lu#QfqO7
      z*Mt4um40XY$qQfa?YAgxF_Mo`*hoyksWwu8(kdebDLF=R)Eq2{wA0Bvi%+47=W~<)
      zDg7Kl`3089FWCt`#74P=7Woyw0Dny;e~9O(kIP5=toaxj`Gk!AgiQV|-jv_rGOwci
      z9v{gc@EczLls}5dpTx^+mHb(n<zs1;+x)`$i}cA~`8D-7IW2#ei*g(KRy9qPl~a1F
      zk}bGk7;mw%zCy{v$S&YzGRcc&@}g;_79)Mhv{D~q+C-i^WT^*Vr9Tf|!Phuytq8xN
      HUIqRGXpr<l
      
      literal 0
      HcmV?d00001
      
      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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
      H-vIvxbeS53
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T})eL7=FI5r{|QWxI>`@abuNjQp!&UWd&j4fH7BoL>*!(7v|8Nl*8K7*&Y^3
      zj0}Sb8h5eX&6pUk7EMevks)Kk{F#f>T`YRxjTahCc47S6<)ZcdT7Cv5*ycO$`+nd1
      zz2Emf&vVYrf3B<mXhOdN&Tt@ZP6j8mGul)zmd>8GQo*Da3qE^X%Z!Jb_YZ^$jsl56
      z6=}hQX2yd<V-tGJQXn&wZqD{3Ql_qrC3FVIQ_n;OdtV5J8CV}faZk$3Sej{#Xo*SP
      zPUr8+<#P9E@e~6ejWEd8xRKd^kfCZ|ryF%p=3&D$tWLVRf9KTE?$Per5eBIzby6<^
      zLzxQ?V3!j%cwJCY&S3M`j);{9U2vgT!9!Gav!C9nn10$aQf7qyhGl38V_Hx5rqijk
      z1AD0T{w7~SH{;g0&&c@9l;sPzI8lkcqPma4;~&^8cEU;<X1t?z#DQuCcYpJ?tt|o-
      z@yjvn8Zb=#$;srHo*pjX=^jYMw8V&(HblHODGAINYIcNSgF}Lj_csZ+yM@<G;2Sgu
      zdp1E6r-+Gt|A%Nq;AxKuo(WEW?S1_fB+=nS3l1qLc9FuGodj*G0E2jyPa1JOW0B)0
      zT1LAS(1ofu@rfi7dR$9%rQ?%H-Ly8aci=ICYj7J{O<^b6u{VzyDTy#+gEW#fvNWO$
      z&J(H0bWA^H2syge1l=gkqcCEcdb%f}Wion30YR{PC()6d*Ixwqs3jW>J3T9*z(IZy
      zvBu$~K_UWFRmhCyBpND8D8mh~TaYOm_&ZRyfYQJsJOQ=ns&fGq^(*R;w^6)|%BXwy
      zBC1v!R+RPlVG-NHk}Yh%gbVc^`<$JHUM<7E8MQ6DB|Mm&-4gq^#lCHE#kN@87CW}a
      zv#oOABUE@KuUrP_i}OQs67xu^<DFbm%&U$DTS%>#YLG%D$i1wpQ)e6O1=m5YoOjO-
      zeVB*p06nKsMX23^oiCt>zmF3BF)H{Hs`(Z8`7)aMC+Og-=;PNACHp-86b9J|{u#1l
      zr}^i2jqL0E3tS}oCcln%$-c+G#AUKe{044NjobVy{J?MG4*wc=`8T*n@gsD8C(%J<
      zpay=j!mCAqC=^~Dc{UuvTc}3^(b$HIXe7^$C89P+G|H4ovMx}I=P0t#&hr0I8>lCK
      zH=A|~P4Mri>Dy~ff1AIIH-B*X#%0R$O5#+W-lDZbj?i94hj^Ds-voK7fc-K;*U++v
      z@CUTQA%K-d7XLn9*HzfDQMV0`7OJrtYC@>-T-}PQ=Ec??bst_t=W0<aiA}bJl}l)^
      z^C)x5y51bw`@`8TujI=sLT)5IK0adzS!k`&oXkA3(8YDHG+&TL<11lVx$218Xrbbz
      z^TSbz991}Wkt!V7BcC7MY@(fT2LBNX|B00GGs^fc*u(Fjo&Sob$sgsvVVwVtB>w|v
      z_@9{Je_@{A#Tzsy*ga0KCN;Ow_&IbDr;NTCmFT9%Im(bl4|x*GaWv1fOlw_vo)wG}
      Ylt+ni!E-NF;y8vU$cir-qw0OYzr-<=od5s;
      
      literal 0
      HcmV?d00001
      
      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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°
      z4-P_>H~cbEc|wwzA@gJ=_R8y?T9y~X-(=#ouKVq=#G6G!K$4S%8yW0#g~z1CO0s#Q
      zl<-aZJ6`7jGPznwRvx+2K5`Sa$fTO<sBp?NXHCs<ZYYo8jV(@*<2-)b$h+fDWU(MJ
      z;1%ic39otL97{v|#9W@3N&T`EdDBema`YBQ4*r>BqHyweR%kYgtEhq2phOl6wbJ@r
      z%la7JshjPXrA+No7?5K;yiyp$d$Yz8>NHu6h-{LP!<(6mY%vAXI4%&mm@V>5n1$96
      zHq2xc(px1=1v6}7viWaW|D;UjZ5E9-xE4|;U)o&9g6+tVxbn(k_-Km|dDf-8GoB(p
      zaZE?L@ROn$=Gl`h4ffed)Ge<<ruTp0-}X60=A3Vkb6mC;Gff@V`<@in@i8$a;Xn99
      WVk72t-2Y#WKV?5cHu%3F?*9QGjv1){
      
      literal 0
      HcmV?d00001
      
      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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
      K!L!|vrr!bJeBNpR
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7DU31e$6g_KM{)!+pV5o`tO5MaCfT4C>N<wICpg1_8G#Sq@X+4n@;fN}dN0vj(
      zV~0P`KhRG5lGk<yCJiuYpZODI`a{~@T?skU<e?pVckf>9-h0kHci;T=au2{&JcuI1
      zkm^|d;$wAF-70F%pzGSj4SP*5)~dBA!VG5*|6Emj`U0JcBEoQ-UoV=f)hX6Y+tSsx
      zsWZe)wdYn%Tl<C~v{Ge=_B2OzwRMKbjA0q>EJHrqI1pbmy6d`Atc$BPv6-&tnhfC@
      zC5+)HgQT^!1SA|&kidHkGug%v!jkJ4R%iNu1RiY|mcH2EXzR|hhkdMJYpU5)9fR+E
      zXV_ggdJN+SBfqQIG{dpJwWd4ffFO9-872>2IE*91sOJ{MmyD-WLslmR4yjR)FxQNO
      zA+6vHPElRG03$eu3sIbB$o!Y;Dwx0r46??xV>pq`?W^Yf_G4Xhr+JnS6}*pBf~+ZC
      z_YqRWT~}T1$aBYOiqX^EewPHwdcZC#C?dshgaZzEMRAp3VyIZ%H1&>Z&N-d_hHkmH
      zw=})$8n%_d6_j}7i#+|u3gU=y>k|c0&-zrsb;PK@j7=(*!4PwG)mgKjSPY78iH7!D
      zFrHnh*6E*X^74G9;09(BsNz->HIi+JW@*rK^$i8Lafg~%bsTk|+1-I?*5N6?F7<<@
      zs*7d~83aMH`!3<KY0x83*7PAD4q`#UJ<uzV+Wkiii6y)5X!;$4Kb}~vTD#1%;Q|qs
      zXvhfBk9gDD4e?6Q8l^!(&{u`5dkE7>Af6vPQb_M$^cUKMFeVO##DN$ZI8N4i?;uVf
      zNjtiNlQ>0TxJ4R^R3xY$c!5sy`^kLaImUN!mf?4tBRjK$$$uw#KtaD0Nlto~f+R^~
      zDIL{<_nRNOB)C!9S6~nGJIMV^c|6P!Is!CBC`H(DKNLd&7ySU=6KRfZG5;KwXk>oC
      z$SYiVxPy;=%k%x~*b9^ct0K*8V~qTjahk4;mzJL~#?8v!Pf&z!@5jIY9Fm$4g<hc|
      ze?>^XrgzrD6jmv}ifgnkpuLamqK`0#45q1$oa{`1^#&p3oJR8O1uA?h4-*{~k~|`v
      zJEZCQKH4JzZE9Jc_De+Q2h2+qc^hdWP)^F6Mp7;nl5%>r^zC=c&txW?Wuo+!K5}|x
      z=~6Phi<>fN<rgHHGQVPOh~%`0Y|^}eG)&}R(JQl2M^~Vl^)d&#&f{|`5+^n<NOL*n
      zahH6&8|Ud>N_6HV*(u`3c-Q+p-qN0Taf_pP9lI_U(kb~JB=U_H1UG3H4H;4;vW+u@
      zI~iH!(36o8EoE9b*$7KU_?F22;l((Fn<uAB*!qNjlVo~=Jhm`L>mmju@KeF@u7@h%
      j*a|qd0*<YKW6S3lqjp`S*fO=qlwix7_&)Iq;fsF&pSf{9
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`H-*XdH6vw}}X__?MQmmx4v_PmW=7%(5r3k4YiBuvjD6MrEbjHnQn{2b$l+C8J
      zj;Q0*-}(T8sBg?T!>i8V6vU}M`QU%yf8d)wiQl^kn`rxhGftAbXU{$NobUbIbMxz8
      zKWqRvfR_Vk6BsC1wdA6@tga+Adv(dFB+He&p3F?8185i6z4dfjt?Dz36X>oMjRohd
      zUNEYTZVR-XPYVR9nyoroQJ`beungy@Ks-9VDV1g{6?HqAO`8?1lyP5D+1R{5dxp7#
      zPy~G1LM{X!wkZgrM_@8KEyX5H)hZ-s9ow)9ssE6;XWFpz)3tI=x98NHN&UUk6-_ng
      zRojs74QIPkG^zrFn={{slM>iov+}xau2Mo>yTHE93%1&$Ku_K6ZhY2wgE~Z(u(x33
      z6^zYyLSUzYL4?V*o}df6uqS}s0wWJXS3v}O1^k*>u~>6QG}c1%Om0!voRqBcsDeK9
      zhiHvT?wvdlr>Hv85tWWdn4_vYwIv=<v@Yy%1^dy@evpE_eFcyd7;c_e)-?5kY96->
      zwX$wGCss6l$uTNc5C;T~u<0T>*$a^>nM5?zvMNp_r$<cHF6efI8Y~W+aeJjDHiR*Z
      zOJz?9gtussy2c3wesstUKCK{7w~i=Cp@V&EEQjz6js?JG-PTk*qdG+e&*C_@S~e_h
      zJetkMvLR$}B7o=E2F=*nRo;QJf+;*N(5c$Cx~f%{R^8@rMm0ERH=}1_Hh<93RXbm~
      z$Xdb>P;|?^m@ZSMjh;_u`HjuXv!7A$0!~Twj1C&snS}+O3#C?S96LGQ_b7S2HBD%?
      zQnNLE%8+*;NbqA)Aoh}tkN*yB{1BCE5fq;R{@4ke579b>b~mmw-rJQJT1WSHZs>N7
      zAua`8W$<fwh*qQ?h+aI*H!#HxgqcQKY%;eLJF1a*hS73;IG(tLfjbxy_!+xs53gh7
      z-$fRfs^Avst1t43gt3q12v9bBBlS2_yJhb}oQtpHv2R(Y4N`N5J5h2|DfOU6DuEc{
      zjRe;kahdonB={Tt2HkftcCPn{bv*e~TzY;CevgBmb%?IRJ`M-vaCk#T+{WZ>q?<b#
      zLl*@salC*Y*pzUAc&gX~hox)m>t&4NB975cW2Hr6#*=u`lUQ!x8<j<W!Ju#QCc33P
      z=$l&;Vo;hJH}3r&7u4AlvC}=`H+jgHpx`Z{yF>wRV+8NC;2mugl;@V^$w|EIz6PB?
      znL{>;$r=N)j@<Jh-yKZ*;hXT^#L)h5d)WVaVu-`IoD2KM-@QDy<`-c<UlTX({U(=5
      zQ$FSLVfm6LFD{in&n5l;z&L?!)?TCX_b`C>k>oRl4|q#I#7TUFmuS!7W4wY-kjJMe
      z(k|gMcXvnYy1nKxahe|4Dkjdj9V)FC>62H(WUhX;e;-C&3VueO^(g$oC`qA2h5tK+
      z#L$C4xJ(FF2;p-=xIze53E>(cd_mz?3E?{C@g+2T#k+GIi}<<)Ldk<r@*tEv2qh0f
      NX$uIm+;$u0{sy;5xi<g+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVTXR!Y6#jN{a_Q;8mO`r7O2eg?CPIW@txciQ3KA(7X{nTpHcd{;f%K%DoB-tk
      zmFeh%GNTWu6uh9!^i^ky6>-ofAN&PA`R<=EetVxZ?a)5RIMbcI_TFo+wZ3nC`}B{0
      zetraCC&ohX32d0K%gOWEOW7;QoHIS;7L$|3yqWADIv#>1uyOU{zHG@nOurC<0_)`U
      zWFc!$B>M|R+suv?OaXs!d|W_e1VXuD*>+7wz<0Wj2d1492=-XE<?a=T#|Bp9$XQe8
      zOedM?D-?4V`qd(x=@=H!`k6G0Mn=iGjt)PX3>a7^&=VV2Dr3-fEPEpT1c4g{EZaO%
      zo*XlsA+P?XfnqLO7|uGDTvs<W_ncJ{XjvI~k+rlyW7*D|PGOoQc(n^`TX|tMi~<eb
      zwgNtAT_ukjSK+6YtYf$i0?!%Phz;b_yIhYbHixiDVC#Qj*1#5Q6$s>H?*!JzI+ihc
      zbnLvDbJH@*HUrNhtka4~&eyOT?zyZhHxhEAg)vH|Tb^QbVqRfM11};hutpYK!xX|U
      zfz3<Z$`lIbM7FTcnJ7=1w!8mI&YW_sq8-L=fi3cCv_vYRCJ)SfDe9q&j!AK-6P;@A
      zlqI|@5LrbBUNNs22q7$yqz%+Tm)0Hwd!bX9)+M=o)j&OT$zPv=e!M1NP^|J<sNx0c
      zVyF8u{F7P~7RPykuxn<WeDSiaBZEUByg>yhaAnsjB=<Q^cDiI>0EbD~xK${yPmI#n
      zF)W!oYM@c(@maQfGG&)Bi%gq0m#5VgR;dSyuX(XSDt?9!E9(}WbO>(=v@JF~Su%5F
      z$8x8W%4^WPSSAuv$1p}DQ>WOhScW*{&KUz|ae_#!YA|WqN5{w6PGV+Ni?%*kEIT>#
      zfF)mem>-E95-BzjiJv3DU!P=|9~htHSk0uAa~%g&L$9Z39fC$*?#7!M60HkZ`vVs~
      ztmm)J892irXAz+l^&HWRr@4}Wp1}r&kro9>Zyy7<R0AJYB><6lVjisz&?fL3qO{u=
      z@ciRR#+h(JC23YkBef(EbTA#8As<IIbc&%>+J_J$@dd=cXANG>L3MCJg)%&+YAAsh
      zu)P}KPel-5$LFzwqx~M%JjBkCrqlvn`ZeyqkFL1f{v~`L-O|wVJ)C+TY56^KL^O}?
      zmKjlzTdgy`N@}R(HbSj;Du35*_42G$`uX|O>wkcK0W5*uMV^2uYWyNAb;w?c;9Mk7
      zMhchEiOV?1`53O?6s9qWtIIlIR}m%nGWL^q!8>UjP#q9>y@qmxoJgA5WF5bwUX}9`
      z4$6wWWv`#hrLvky3vi9Pc^3_Mk7?fL_w4#IGTUlo@=;dF9OW%}Pmd>Bw@0)E99fF!
      zN$3L#<U<u@x93@nA|-Z=Ll&tkC{l1b-sF&))N!1kG@cJWLAH;W?c@KIZ3ri-*t%7A
      zpz$GwM>G;g@t*t<rym#GC(Af$tfKSD4~iE@>?V#75zYEL19P}Rnr1YSpmsz`b|XGA
      zkFHbND0P>*{^=06x@4|zFe)c4-x-|47Mk6W;F***syt|?)}nIl7I;`c6RbpncPf8H
      zg0omBJ-v%nZzbrJf}9D6NPvzz?pCIjde*JJ3pWwO=V-?l{Ks*d^7@j(`ii`KjgwrD
      z;x0^lOSyhWY2L#P+{7*LX%OQ<4{5E(v$Y=2;%y~T@=)vXEZ$K)_Tw|9fB?FfMT%KI
      K<x$4-A^R@@R>(g9
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTYflqV5IwgP`d~}3(27tI6tNHKir}+|(gtH=(GOq~LZaDjZ`#FWx7lt5{4@Rq
      zO-LFfQ9t{mjB|JEme|H<OuFsdyEEsUIWztK<MS5)%P0omW4Kf|+VZ~gPC1fQ>$qu~
      z@_||7@@BCRfS+M@@auxo;#-s#zzD;HD3^7`sLMs&G`LdLIm5`BW@z?0Lnc-315veR
      zgIjW`pquL3qI1ZX(iH}Okx+veWf<aWHH;xdBm^+Vu$C(Kc(!dzGwS(&0FIV5gTH7W
      zRJpa|3XGLaRnaSorHOO*(r-7k7Q;+G@-JKR4C8I1#x4DrB)Hlc7W)eZ^~ex)ubsxX
      zwfAHcE0N6uJn{(Bl@Mr95~eXpzPbRTNMbgC%M1&D<F14&m}3}L#ef(lQ|WVVzO3$Z
      z)y@l+s}kZ!geh7Oz6WU{c0;kn#SL+BkuX}^ZZ~N_DOXrl!c8O?B0{j&R{%Le>rJer
      z>%6Y$8&<u2zzuuzNaamiGmRi_F-%hnId}bX0wq@!dy#9AKVdB4wqRaih!0o+u{1%O
      zD^|@sG#DgqI5>_DhEQs+P@+$|BK*29;STOH_%zD&?G?y-jruU#Hbo{C*Lbg36g-iz
      zE(*fiX4_KvQ%x*(kp3Gv(HQ2*l_7eD>HidPo*<n<6g`KZ-T<LYESybtAbp~P4^jFK
      z(=V`tAYNgdqB%Da7Z9Tpm0$vs1S29E1!en$?_J<6$`<wUO!fp*r<h^*h9t%F9bEgJ
      z<TU}kaYzIV6?r6aTqio}TC7DEdd2C5XwSfQGaW2`q!L&22&Dk310^|es0+oALb?m^
      ztP7CHoFGHb{0BtNu(TVKJ6QhO6F25`+`uR_lC*ygHQ}MIdZ<}q7VNAC;L0)16*8}o
      z2HcgyX)a<iQIay1O)ka#r?@wa9*jE)3u9<GP^)gbXHpao@X+CoBJWIsz_3PlVzf~_
      bqB}pmrxp1F<>P+JL!vzTFUk!P;6vdjAhQ*y
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh1=ayi)zF#InQ+{p6y`f|7jw-29YOeNV^Il8n^6lFa19
      zlGGGmpb$F)3nPO7NTq&GVqUtwe^ORzatS*F8zX}>4l^LyI2aiuF%={x>wEepCNnZ{
      t1?QI*C8xS&=A<$*h-2ET2eJ}q2_pkD0}}%)13S?13_u<ykYr-u0st|uIxzqM
      
      literal 0
      HcmV?d00001
      
      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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
      L2kSIFx^U(nG8k8M
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWmO;5r=5S`(}78F4g74YNYK`(7Qdy-O<jX;ehB<g{bvZ=+|Hl-!#PxIgp@JAVE
      zYXpMXZreBW-pt$CukVjf0Jww`2{H&x$4}IWHM8cb9leEdpuPrUuCgw@CCDLEL{jxE
      z-%*Xxgxj$M8wh9rWVRbV^GIbaFR)*<6d>fy{&inRsCJfB%s6s==L(^u1^zU){CHq_
      z3726Lp+;quUmuF_p-?{N2<5KP)`zW*q1_Hm_NdFSjnG&pk3?%_>b{dA!v-?!Q0H}$
      zJ3}byJ?;MCuFs4f0<tX411Z|p|Dqy7!`Vo}aoWFd{?uahTnvPGZu2m9$-D$jgwy5G
      znCEfF@=RfR!6JnjB$3T;T#t+u)6ptIL~}&Q($3SWg9I}D7es3)65d+DCBo$uTp?VA
      e-35P-aBT(e1Jd0cz#%c}R53^22JNG?`tc9@VRU-{
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7EO>Y}j6g}6mV`nlU#jQgVLMTmI{6RgmDFtei5{Cv%Q@ThMsdU5G8Jr1|8EZ0A
      zT9zn+EnTqTL#PXA7a)OD8kI`WHUEM?0-QH9j3bf-NPhNxckVss+>i0^fBy0-fYZ2?
      zM@BH&b3<d(ykXuny8f+x;2B%qx@BBhZsm~`%pCl<Wo}!S8JEYf;IK+J9MkO?OOEGS
      zX2-Dvqh1*F!=UAO-46tr>n*`>({}A(K~OEP?8EKa{SC`E+EKz%bZN9JYl7?&i3%7K
      z40-Q&Gz?)}#|RDyn&p)N^=jbTZm;n_fX7#C*Lo-1>RA5OSaWg3>zdA*>D%g_IJ3cq
      zy)AfpKk`4FY6uR6?z-hWw<sajE;zYA;h-7?<FPv`eAWJly^}UOe?X5?!phnRC`rdO
      zCfL^)U=%YrmdCS#x&P8#9nayoAlFqh6C5d5_H^?~XVdBi4aG92<0%}~Xq{Aj*Eo@2
      z!wi(8q8yXN*tUYO&jFQVVW)J|aa1s-1gCZ7@uJ}PU}9~@v3jPn==Z`c%MC8x>{|W6
      z_S^!_2&Py<J>JN=LaBGuBGtFq9}Nc1D(062r2|$V*6^~9S5V;Q**7$tSB)vCYMMG|
      z2?~K_`s?0@u0Xfkh$s>&7%5+GwfU*6sfI4<Sil7Z!$`5!5{3aSk7tv)>((GwwPaDC
      zt$Lx~wU%x58Wi{@)m6>xHj{aBJQ*c|Z(*K?Ev09a)+J;aK~J@)*QR&z#813r@Fc%A
      z{sNyc=~EPG9g72T7)N+hASFx?Mp>K|qcgN76X45?R{5oB?LMX+;u*nX%+Q|Q#fg8D
      zd`8II5y?cHl#-P2JfE>}wK)m&d{h%@A3?5FcTxV4JhA3sh5(;OP<mvKBvAYZKrI1y
      zHvyQd-p30(v)^Fs5sYia)4Q1etxC_i2YB@{&i{<YKx&b#0={6|zGUTJVHRKS;h9T$
      zUQ2muj8}SO01^wlvnP>%W>G^$4LuQfj}seaVv|y)cp5{|*F(IX!_c|hT}+=UWp}bt
      zo8HODyn0s3?c`+s<J(tDIbLV){Po9xbAo8Vx8(Vb<GG77{B7V~q+ucENi>iVEe>3X
      zZel4Ks<PgoPi;vP7wOA#>?g2HOYPO0sp|K5S4>*9ru03)TLTU8GJVel`61#x8%L(R
      UTFR@XyjseuCA@+*@iTb)Z;@X#0{{R3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)U2_vv7=BK^HVtdPBn8sS_eZ*I2;V9#1rjMlLW>kyOO>)owqaqL#Lb4GsCWJV
      zW%NQF2f2}P24`TDfZ~*Ue~h=@iO<<xl446|vghoc_kEt{ecp3U|N8fjWdQr(C<q7)
      zlq-$&b^WG(D_yjgYECs>(@W`$UN_F`B?TdYZn>Ja^h!BBS-5T#nHLe*v}Rt8NdiHu
      zS{6v;-Nc4tT4{bLn*_*nH0%+9P(@!f1bV#~7ktXG8N#)Wf>kZvm@;oOK;#6XqeaWC
      zn9dlHlY`St&Q?oC3_W;LL9akpTVU4G>va|D5f@O(hBM)^tWOTE=80hgHYwOBu<>;|
      zRV2_)Jp}TE3+zp<M)JYeDzpOvZ>dlarOdopF(w*|1;f6m7c95>YEieQb=#Eh{>R9u
      zUu%3Vs_7Vl*r8%8Iwkfl6&;Al*&Y?^pwb)XnpqdvoL{p)eqTov3<>nLee=A}G!_;N
      zI|dCY$*@h%(kk|0zd%H<)r<<8+n>y?cGJroiQym)D>(GZrtz><9KqXc%1zyB7?TSE
      z@nmi_4iPlGD=Ci(46kLtD*Id18b(zdlbw$`RgY94P%p5-uS=p`(rgYC!;KX?b*pI9
      z9J5-fD|k;}OWUEGWf^7NnsRi<Xhp@4#f})=Kds^nIt9XY!)eq=TVM}*ef{pnIH%V}
      z2B#I|*{U|`rAoa~t5t2sC{5N3TbI-;(9dEAMd=PtMxo&t#O(4)X+e_GHb}~%>xQ*(
      z(WrCEQ*v3Vx~Sq3SXL)fo&A~isfr|XbD6=*)M-}un9IoM%PLObq?~=E;$vJP4zB_N
      zC+9M`+@K7)ih=_D)$T6U9b-{N5e)6nZChU|R%=TF+RE;E7sp6$MI&B*qVbY*K}8wY
      zSWctjvML^HPOe>7aUPutETXQtt!M0NrOd0R#0#WlAG=z2?~q8r-Pf#y$eAVA$FOBC
      z%Ek+m22WKRcF`C&<(X9dBeGXEDYT93LH@#gCgd^Z%^8wM&K-H+IIiQ@H_*wbF23#K
      zDF4)6(M0!C^!<u~M|=-pGoLYzz+vVbz!vwb#N$!(vnRPOBf7LF*scvd#!fBp7`xj5
      zy$lD&_&h-wCrO)ef%?2OBr(W!0=ObsAIG>4zQ`gZc<LFnS?xFMe1hRT$K8Ru*f7+c
      zYGQA9RK8z(iUUo&Gc(l0$U`Q0+CA!V)_j^5>={z!R#2yWYL&H&;W#M;C7xt%h6o|P
      zWnF)+@QW0Y@QK$wLw5EFPCeK9S*X^;c)Qp>`VLIc-$`_H3&imOHsQhw)<mn|1l6cM
      z>-(!%M}5}lGn^&cx#z8_BFq7|p6rHaVzh-BCHJI@$?eBc_V*BxWJctFjqy5bQSqXS
      zCABch#}ZV2!AEe|h9K9r_k{3gG#@^8A3fRty`K6G;oyTW0%D*?;NFYBLk}3`d7mH>
      zu*BzW?wwER|7TQtn>*)omu;(u=(9yIfEj#9z9=@jz696-UIo5_e~2UT=7*P$gtY!9
      zW`jq<_i<bsj>f}H%uU3@spYG(LA7tCq*PEYTum)M#e8bnjpBL}#$7~%4`!%2EaKsK
      zC|Z&^rF$=aXCF<<7yN&a#VOqI%Q#9KfiEfMEAGoXH1ul<{06)5J@()SM*qn8pP2D8
      z#_<a`*&WQ{A#bBcZkc1A>{f&3X|`wdJSr?WK(vFXauy`V9BNz*@plfN@EHyXc}sIQ
      W3VFY|Bkvrle7Qw$aBjP%*Z%{W`PwG{
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZO;5r=5Qb-=(1N0f`2BS)9@=>3Bp;ea6p|WD;6RqLHpO+@v|EGzG!Om&f0S|B
      zCPECSN#B{i&$~0<Kc8O!a0TZo<Om$OA~xsrjV??ld=I2=26Sdx13FVdAy7?PCa1zR
      z`_nmdB!SxCy3?^9ZYQl?zkN5ctx*@n-g3~Ep(orXflAvKk)%QnDUX>3r3`0eAOk_h
      zl>5$$5qTesfFkHCmb%_pXQp_<L%O0{jUj<@cj2%=dI(UVO5kFNw>W1m<+h}f{Y_y)
      zJ#&qv$IW{hG!vUVW+0&H<CbML#w`McSfrAgNtOx+1TNR^=qdDti+h^kV^=tZkVOoG
      z=Jf=iMT|c`vM3Wq7~J;b&|x<o$ETK(JsU~%A_4pb?}96W0u-^T_>}_<R6Ii&HXu32
      oCRDJqg&hU!cB<_BQ);lA&emaXrL&K-hv=QS9K%UUI!y^@zpRvaV*mgE
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=-%rzE6g?lb+Zg4?rb7`n#Gl*Hl>wrHAvmLCaRGD$BQwUbl~I}PvUUcH@qh5u
      zXCHmgM8PQ0cmF8$v>OEz!$Z6K-QIK0x#xcS_50fo09nig(IF78noae&_EOtc%Z;77
      zW2tqmqUMWB+41bebP$rj@PA8knyoKu6#=Q<Fsp1-I4DzXz1(aV&W_r2jGDUqaB*Q)
      zAaKht4QEcEGnrZ?>W)>>L+BO=8Mft-h0%!~1wr%*#F7P9lv>lws#<g!hFP6Wt%lK$
      zXb=&Bp<~DtoWMze?yBzOP217TvMw-^OdTt*3jzZQWCR5I3WljKHeamkjTLRZMs&1b
      zm9^Tc)-c?2J1IGvhRx1?-~U?3(PdkAnsrW2YdLSSl*{K+rJPGSqTnn>1-jO2R(Y#v
      zyds&%yK|mbZ~+(j#niW*+>WD@D%gV3z7E6WtCXX!*2V_=GpOli)!8J1G=+97H%*VU
      zjm!&#?{1g%x?@<T9fT^7K5+6M^^Y2sS><{wG~Ne<kwMm7P>565dTnDxw@J)}u7x?v
      zH3ieSF3?M@PBwQqP#~Ev<x*?pE?Uh-S-)qvp7tDEvW&ZFUPyN0#pGD-78uEV$i++-
      zqj}~9e|yu>@E(-(SM+^B>=QE`IOXO&^gNNb(SsaLGpDo=7{nQ#cx(J_W8Rs$!v+Db
      zc;N_8_`qSr`PG&2t}QN;{)|N2ebp<|QcT(p&B#2(2IbC}Bvp2CZcuiEnDlmKQ2t0{
      zOXh$#)_qDW@R}}R6b~?lqQ^Stjh$(;f^J{JWlvQGNmh2SO9m-M{G;%l<|DDo5QbSN
      zvvLeqSap?k5>FXV@oQGQRwl-V<IkkZWCVZSxQgTN(fu8n$9ow68IwNv3ZujVYh);~
      z_Y-!1>ZzM*b@A0De02$5UBXuvX{!^Mz+~IIX)1A7sHFS*BNFyQyO=uUZTY`-#DB&2
      J|AwdT=3jOU*DwG8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7QF9Yj7(KVU*-gVrLnTTIu^@_R+BCG-iY*|v6o{lvrKL3#EZbxowxmhSZlF<o
      z5_Oz$aB#*MM;{oTc&USqT02fBPd@ph#B(=o3J7Ya-MxGF`_6a1bH2O%^RM6Q0Q#_`
      zqeY-IU#upU%<JY#B3r4I-BO}#<`R?VMyLAbXZq#`bf^ORo*Fb_I@Y9_6Hp4Jyg)}v
      z!X&D$T}W^vZx{246z^7LSiqMp<*ckgEVTudaI9>#V!O43W9JhU$4rckkIiovW|IF{
      zwqO@+_XJBsyJiH`QKAI!9NKj36ln7b7EBfzEtrmDAc$Q8dfsv;%w<bpceJZP%8QwD
      zE95jB!1D;{*e$T<S%eL|fENW?3DoF7pf~zYq)qUrb=(SpumK-5(oES!YofZmU{$8g
      zg#vlCr%G9~Fk@D1`MkNQ9rJqi<0XNe*0L2ZU&}gu@#}rP0|6-5Z(tt|2!x(SL~7$+
      zwH<*2O@W_bs5HZ|+-g};JY?WCMA_*=p_IKgWq(L=A{jsoJvzDtqW{+|199{U?4V-F
      zqT`yyERo{TWLJ~UfBG%?95$fCPrEsU^glW`l1z5ZjRf#I26YSw1h*}psyVK;Y~T$X
      zWdmlVV%D;ya*Z?gs6y$5B`fO=Cm(TdYb)6`BRd^3FpOgYnpKoT$_2}^s6dNd<VCKu
      z(&8dT<Dy^{^X^ruG|pFJyl556sTTOkS1o$1^#<#tKwxYoYn5HQRCIKlC9y3vAG2n*
      zQYz+oj&dB%W`ZR4j)8L?F`gWcnBTDqi_@0FVmuEQ14!dt9g_lkw}7`r_J(ru{KOgQ
      z%z2)39)*92;;Beu+Q0>Hlv<0{iaSzsEzXlqib0(O-ZPNFMGl%AQ{HH<w|~jt$E06I
      zyl>zX#^maX0TTgcQyeLqx}35+EvbqqQ@I5~3!8sSlxeC|tz@m!wmceb+h2fQ=`{`z
      zPT>cu1s(D@c`MEc?;5YIkmYvp=`io|$7mO8FxJujGxq$%XPE~^weUK|$Pw)Ic6s4}
      z+R7f_dzr7t+9SWA^U1_Ci%oioMk5R_;~>KYUTH!MZ9*8a*e`f>9bLa7@g&YP30!yt
      z$7teELZZn=R@tV`dw*oZKcsf=3#&?G9Y+Y72&-#&bI2$0BRRg+!agOe@wd)^u=XRf
      z8try?LS=|_5j!!5FfNhrWh8LLtA4goVY51G;W$oso%Q1_L_M+kagr;A7;(JKw<=M>
      zl<x$04x$aCTxraq<%~bg+A5#Ucs+d17-?1K<2^*Snn>1jgT9b&wMn?0$-pAh@+5qf
      z&Rp||$`XWW676gf?Q9b5Y!dD8=&8(BNH0n>ffUAhrLf`#pXJ;<@NWb%N-&ttsKMRo
      zj4!x9oza4a(-}Q@GM(z~uB*A;4gdH$CVJK|wM)f@e}ey327ULj91Ho@Fslq|_c7TW
      z(s~E=SdS9Y*DyDvhV-ynzaq`K3!kz|-{J~)Xibk2=OUy_m(+SJuE?M@T)qpxvO24*
      z-qJ)!>#pB>_#n21`9E&K$M3vvmn!Z(yrZs?{!M&|+tjw<?hHa~ql^eXz#&xVkAow)
      z&d=BiovJbJBQ|{#v-lV}d_q}2W#nhv`NG4wjXU@X-|$+)_xKifnfn92^8`QNkZ4oz
      z2)@PwvSe_GxpE3xSm~xGvqJpi#FvwC6gOabf}i5SU*t+7gEKTU%1IM6R8FS-H*ra}
      A0{{R3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+inwA6kR8oiy2HVE<+P?f!-3wl(>Y}rnz7xfvQ$b6x9(0LM0~lWHK<GvBqNr
      zJn+O1@Yts+Ql-B10R$qb6!PAm=r`~KP1hM)lc;qqdG@*Nz4lsbpFjWp{T+Y{Skloa
      zaN6<P`McJA>p{L2K5RxozG>C->))+bi#im6@t*f9R?A+u>H_^<;1HxD5%TTG_3}J$
      zT;Iu880~ODAhlTYT;Gi@GdnwTT|ik4>b8O7IH4mgFc{Z*7Hd{LtJO+l0D}U$V@GRN
      z!xlK1o$27mIn^j6{DOgDe4ryEF!F!B(>MuJ;242AWCUij|3&J8_ac7`0w1QKLL<$J
      z>)UJX#+Ds!SX&->Whz0<@~&H<EBD<)Z86rG!nlCiyjN=#4fJC&jng<IVD{=SEs1vA
      z7R|2obUU5~om5+P)NV>rpQiB{rl@Vp3u^bO?jzC>WgS_8j}PrEd!FrB-g4-)8@3-^
      zeNeNTksJ61rje73QXC1#%^77kSIXs?%@u(@*XKvBv|xLi9l7vq--&kEj>(noS_|z~
      z+vBZp$*k?iIC=-CEMO$vS~@NX<a#RmAq;$n52?<PCItqH$Pv?X8!qvUYS0dA_BXEd
      z+=#uHl^XekNuN)d?@x}1D-|i|{F5nnUogsFIwM}ec#WYKIQ5+SK8)~dFalTj43{w)
      zpYkI;=~jQmds(mNGGlv~_;=woHe8Df)15S&#Yar%01}96U5K&VOMIg4;)IOD0>9w+
      z8%*Ea!_596>_DvLdt^{0i;W}DV+r&*e9i_^+di{(#w7_^P$pz({)8bJJDYkzF_k}3
      z^J;%V`xOJDs;NEEgsD8;Ff~)zJ$OH=J|jTK49OX|K}|O?h+7!PCUx9K7C+)5<2>%f
      zgud-G?Gj>poX2dee+hX^#g;D7_$kuUIK~THDMT8>9P?B@T9bHFyc75m(&7U9D%=%g
      zS#P_tO5+oE3d*@B%7Lj|9LB-pLPy4=sUA7}S^8L{k6-UgX_~1j_1%NNO!c=!*knw2
      zo2?x>yTi%56m^#rcd&@Y5mBW?R4EZvN<@{qqEuQjAB)N`YmO_GlBN?;3vuVge*pEE
      B2}S?_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?+fy4=9R3c0Zdev5;Z~@%t*A{FAx)9C3bjfsB_#z)QYcu(O|pcgn_bx5P<i#$
      zcW2r<<6~dzWk6*{XB@}Q_(wT@Cl@Fhe8`?X-~O)O?~=d%{^eHy36vEy37juF<@lzt
      zV|)?Md%IhK8{aYt@dcwWZR7*j+f~pka9Rq)ZNn+X=X0B8K2UH<V6d(l_sx9Svx43D
      zqFJ>3z}ppQag37b3v{L{y5+#K;~6uU5I8kyIact2Kqwkp5@=4k1ye-`?HXF4N)5{~
      z=gOs=>1B<aZ3;xvZr-q$49}AH8rU3cShRmJU60~~1n9A?Xa*_A4-6+yYw>6`q)IxO
      zz_Xm<M69uu6nU6X(TjcseaC31>S;KG0j5ABC4ru3?7x<!_E`<DNx8PbO}mdxFKPH@
      z7_SQ`<hnrrQs{z)i+DpIY&r#h*$OrUdK*Q$Duv(F@D|=Cm$vB?r6{>f$q!KtG3WxV
      zemTcN(6&HdG?i))Ss3rIOk0og{xzvNsv(ZcG-+;^4V%m!^Ik3cL~J#TD>bcg1@FGn
      z1jp&0O=f6y4DDfDV{}0-ui!m_GYyNCol2^>E@dYLI?R$eBBM%->?B6%gq?CilhR3I
      zZ7H!fuHuH&{)naUeS1tnQedE=t4t<6reaD;Ps_sDenP>_Nz&PLCZXcCl%8c}EZ<FB
      zPF%UF;I6>AhW1mL`HF~&G}_y+fJFuOPBJgsOG5@(+V)L*J!|?wrIf1*I2rv%Q<riA
      z({l{_mgl*iH2XlqN~QJWn5nprPvrDG{8!cL-A!X5wwj!zBb&94thi_TWt*PQ{?8OJ
      zL{8CMb*Q`Qoqjmhtq@=?3c?E31-g!ge#Y=OIQS||w9AL3VN>>5h^?=}hNFP9(|e?l
      zbZwg}#&R8BgNrS0gtAj|3)XsN{Ao+zLTxe*{nz^Y@Gj7_!5;2@W&6|u;XY6^ZrRJ5
      z)0SK=oh(9a*Nw^`IE4(3zZU*fnGv^T2u*T15ozOXjHlq)qVGfdjxSB<;8W!ZOrRN)
      z=;WJL6~bwB@iu@6x~m4n3}vM3ANotQh!^@EdiF3lt4Gf5;rtVH>mfoz@-|f1!=+h~
      z)+57v7<md!k0ki=1RVz$TiM5W`Z)@E<Z2zePV9YR3wmUtj@=-3lh~vl`LK>n5&M`}
      zRFB-MW4DQ=i1p}^I~A<$0BK@#>ES;yIQ%o_1)ieo0QXmTSr*vG>Tkm@m`64LC2kQw
      z=9a=K%#xEd`f(SRFvq1dPi7V{jeC4s#46i9k1QOv?qe+BODy9nJiym%>u>q>IUeFi
      ze2U+(R^hU*$`_H(=p%+_#6KsS12B-QvWjmgBg=B<d*ojtc>t5a7s)Ca+gPqJC=YTa
      z57HwKG9nL>AP?rv<0m}&0eM<E%5Ah#_)X?zGp`aeb-2@A3}Fj8w)uDJafA7|iGVro
      S9M->s=r+HBk@<W!A@~Q9mChLe
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvT~8BH5IwiucKd}uVSz%6g(|j1Xt9V17$Y^HjRj4LAmKrl?owBm-DbNb=!1!g
      zf51OrLSkZKe9*+uM2x)qXZ#1^+-<X%z{}jZcW2Hyb7p`4{qYOH3~q_=FvMy`GxtK?
      zmk)AP>s8%0b9GtCRVw9z2!SDf;pd{<P#?<*ga5W>X!acjZ#uKiAlx$*HGm*xjfP$b
      z!HaMNK13L#beXf{blIroDz>E=wFTbNUDgbBwYj&WT5Ix-t};Z+W>wbLWlQ7t&ZA&I
      z*BT5X<qP$2xeE-whH5wKK```1&<}|rxTBlZmlf?b;j)s5L5A@&86{m;YqGv*)tY;%
      zVJ{t2)w->jhKLx$;8|T;Zn3H9ifRQg!qBf7`?9VnNe4gKAcFa12tx?-FdD&SB*`7Q
      zURMpWDV{E6&W+!}Ti_kz5u|X1Az+(rGNMSIZ=u=&gvo8%5f!JmiltI!tH|Kd3<^B+
      zn!CFcb(J3cROTd1BXgRD(<QdMN(>=);D(4B4A~34-LOofM$1-cV{Su;{-0UCSwF#4
      z%%)XUmo>h;AYa8aw+>^p2QU3;fIu0QQWWWS6CTO{F&hoE5c)=`2VE3HbOLv&a1oa%
      zi?qwojUKu&^tuqw2#!NcWxpf(0bTs)#py?k9%Eqh7(<)U;TGcj`3Q+4jJ0s}<c#Q&
      zqicx(mvJ5U|0A1n$tG}(D7fCwq@SO84wvAeuFMIN@G~&)^UnD{p(o~({E{Fj@7Lb>
      z8BY&S|HOP>si!^IFbM}9(vW5JVFfX)(z;hLg+~tegEoGLo0yPB#u+e=EF{O4JSHjg
      z5=M$NOQfj}2~1F(kN$~4!jc?&rjeuiJn?bYXB_0W)aRp@)MPxdEhq)D>J6WO&vJ<H
      zF=jSfD4fs;+h1JKQ33#-5aBuzY+w{m9kH`*C|7LC6`OL!rd+WD9kGno&h41{2SrEN
      AKL7v#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(QE$^$7(KVOeN$s74R}!6z!<De($Q?|nsuZ@kP1Z9fEcY{tlKmvF|NU}Gsl_O
      z9(d}X*j^^2NxbY~)24v{ji<frPw*Ee?S183CxnS*k>c;(>+d_?Ip@3bpZ`4i9l$#{
      zBQYj$*b955Th3R`ol-OYx|2kuj?*e_R@Wpnf!UF7t4`Ow;<N<DgUAy&Qdjk*Ug8HO
      z9(aD}mFkRcToK5uHUmHOlQYcD7p@6tYf;NJu?Kr4EP=_iHgH(87C7Cmg?*S5ke-`d
      zcG|AM!F-{QpXO{NG2tsFrf@(aOaA}Y+rmNE0uu!4lMz_V{}*WhK8pMV1P)oyVUT9s
      z58cbXcEgP~okl=j*?QD;f@@CftNq~6SWUHNFiW{fqiJFsM=cz|F#&s2cV$Sj?RS-n
      zBfaJ%=%U_rlU_#=I%(le%u!b(h?=)I{BKA_)Fko(Z@jd!76h*61m|L}*LK6?{GF!T
      zN&F}@F^{6+lOaD2n)AtTRcp1vR#jlk5BX3lBf5E$9k~eH&`Y-2j>+}G+KAn5FW_6r
      zfhAR+E8&x4FH8|-AF(E24*PZ`J`gC5RCqm(LXX#}#la2>Ost?t%)oCed~+k}#ZC8u
      zubj`&lSQSKmzXkmndzPy6IVJiko=P|cW*PQpOqEA!F-7Qzu>i>xgWz}K21hojaTt3
      zrqfeClsALwWxiMSvY4HDfZVHvbvC?|7Fzu@ypH2c=OBg<mj)0s#b0qkyNA6hP6_;g
      zJ&!Se;{gg!U&8K7wS0suu9C&Zzo2J^&<l8L!0s8dGi<l6Aj?`#h0eFwuVR1GDr>g(
      zBy(C{n9Y5mwU)HIWy3bU!}NGr-iI}<+j2(=ZPS*vc5nCZY5ga{^{pw=9N;<?evC=n
      zz$`wYsx6$tr+62iaX6pj9OFeaQkqx$R0cFjikXY4E9)p>E;V|c<Cr691LrxoIcP*I
      z5N(k|JB6cI;+cVE9Kd^ANmehT%*yx4MB{EH9qAuLkUXiRn#$UOtu0Mq_ikAqFB|tU
      zv15oGZP(UcoPWRjmu=)yzgOt@>8G~w<0~?^3Fz~Ka*JP#+c<<a-4BuDx`+-*f63NK
      oD)VB$^-yMID6=w@SsBQblu=1#P7z0m(}_P%!AhpUYRcln=ea5l!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv-A)rx5dKcP+bwPRD=biGv4CI!p;VwIK#0YFHWoA~f`kiMx=USMcAM>%pch{8
      z0=|HT#Dv6nA&G%RjNJPcK7nr_&e=A_2sd-)oSpf8X7=ZwZ$AK}a94tdAyPCe$(PEW
      zvY#y2uS<@VEGcSoHJ49G5E!D@eqK<@+7m@(@XhI_?#wfI6T@o^!hK8C{Ai%eG0Ld`
      zya<LMBE%pka-1b;C}uI4cWm7(&hnP#oNj6>mECR4URAaYjUk+~3W~9&*gC)09tG!x
      zUS{aYU8{%7on;Wqno}t?fT1mfcE}73+lEzmmDk@8F3U>jWaz(?ku?mhs2CZ$SlQJ~
      zXK}xvl^oqNB}5oHFYBsu7b?1;YPKIe4DGtPrx>~#ck$z8BAAH>(1jomy&>E{oTj6c
      zN}5SyiYBtdSM1mDW_d?{2m`pu;CHMl8Brvzwoq*cf;4T~5fvvk7qZ#m%>@RJZc^Zx
      z*V@^kXlV4{qcS&PIt`~{x?NJWE6Wh58!k(@!!UB~Y}akeEYh-7+E~3IK>yDa->i>d
      z@>azzXiGX@UISmnI3FGQXb)cc(*S`oDy1mVZ5kfR0BI!bKSkh}QV$v_2IvItQDFv6
      zl!dBgXhsX&7+UKP&k2r0jE#In_&pl=(Ta<Y=siQn#u>Uc!riBc^5+x8PSAIX!ShR^
      zCRf)Y0WRS-9{fW#Rwo<6Eu!FhKaqZZPH?yw4<$7%$ijF3jOb1Kj?fYjWuGhv>bung
      zALHra#qWstg?g&Sx=A?jh)m|thGj&sLhD|}7#_Ra53Be!Zel_L!>+*zj6inBGJ#Rb
      zyo518nq|_|h8TvZPNaXLldxoWJmW}G{RHvxsi$1zW9s7yGNaMhmY`13sNSZ9XiOGV
      zLETD=N9Y-qMfX`2J|K98)W#_$&ksZ<i*C!|#V<0r_4z+bPf5-iy0K2fdPc-+n8Su^
      gX}(HWx0I<{%G51o>XxQzmO3%$8sXcWcDd4j0i_$_lmGw#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%K~KU!5QX2AmP$n-c;n_xh`RAC@nYoE5E2cXmv&Ru)ZJ!n4gM@oBp&<${wTvN
      zF`hVhd2im#Wb)1T&*v9_8}wrYgmGaS@hsouMr7{2s;#JGE|$)kVlMMso8n=UsjAl2
      z#0Uvzepi&z6yk3{Xiv1!^&O#gF<KD9dz-5SEp)nw&?fX!ZPcuJSt<7<SEV8hQk%(g
      zA)WU5w;9%J{Ytn@{||LbNFHtDGBwry?(iV`wWr287?6JlJ9#kHn3LFNAR2FR^udh)
      X39BCiS2$+v?(2yCgcISEH9&6%(9BTf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvcO;B4^6vzKJc}XA*0x8iJs9>!vq#>b%q88c;5jto92PiG|175;Sc<}NPUtY90
      z4r-;2qbp`Qb!UeaZkZ`|{1|lC(Ty`MoKctV-MbP0?<FBroy>jr+;h)8=iJ{pH$VRU
      z^&Wt881um;a3X7zVk_!f>djc%Tq{`lSiv;1vEk{&SiWTXpa^tSO=3lvE}5FOR<;>Y
      zi}ID}$tym11&-Q2V!Fz+2|aH}HKj{|7TeF%)#-(oN9PwNhG$2o$A^;w!DP*P#xgY{
      zJ1EeQ$QwmVHLN*RFUdL_5je%j(Q;Z*JFTc{rZY?{x+>Rta;hawP1OaOt5Ie~rmio{
      zjNcd)5aVuu6GTzK_38+P9EUv{0^T9b(5y=W?yl}R0VR=NV#H$tzDfi?+-MD;1#JSM
      zuK%WMpK45MhMX+rQqr6)UpJV{r&WDUWm>#`MX6ZJ8guAKRx$oBX#(&RrBy1BP9<K+
      z()8GbS{Uq}JA$Y2j1Q+s$st$W3g9%(@D^EV37kHh=TvG%rmey5L#bC(J~a6d7C2d}
      z!MLu=tf~*2*-}m#*67W&ELd9Js6&L6t<dc>q+BX?s-1-IM>ksQNjDZiBbsdKTmVNA
      zw550e&1LC)00U?u?o=t0k*1%U&js*2LIU*}P1i^Ce0tRf-aS%<^RFIDYB|lCmTG!g
      zE*+#L;8!iSO{!!`l5H&CvC4$rT&pS8d6h%sSYd%JnIl>MfeRk<&#;rya!j)uHBf2z
      zs0{^AF;O>%hri?Sp^kDrAB_ust^;T|SU*M`0XTcSv@;U}XZw5$Li|3?)p^<p&c1N)
      zi3d2o;~2K{>*oe=4PIQw2}*&o8J<K3R|1_*GISvxG8rFrzn=~IzrsluzDL(Y<RKcq
      zLHB&{>;v?C7j72#wr&^EaM*og7rndab2O9g0c9Ia;rob&l#sGHyP=4X!mX|SKO=je
      zBf@?6fM*+RJs~9$@@#lSd^Y5X>}|nIea-rhs^R63r|d1h$RqK^f$DO=Th=>YPc!z{
      z<Fhq6<UJJnAl?4(mw0v?%C#L{_-FirUvYt0Y&;qA23{kU*Gc&ev|@ozVG%u05l4!>
      zltzN{B$hA(Ny{vM%P^qfO|IX?DsCf(yVTr69y=&tkGdaVGE#|=-o|fu$3dTAF^IQ<
      z-j;@Nkr@T>6D~2jixI!TWlC<g^)bA_K2R{nCs>x|nb|OP9=wN_D!N;^QqkRGK}Xmb
      zUV7vUptl60DO_D}I^-{&<6jm&a}RCf)A0O#^eKy*tYDb<dToRpeGX7t{ix>R;r)u-
      zTZ2!Hvubxrap30>!^KV8Nq?KIY%d?(5W-&e?``dywT=xtnAVx@`$X{p&fpf?`$J4&
      pgGIVcm>=O2tP}ai4%W`{wJKO$xZ|J^Jag3nVn2)*d2ts;{{iT8a1{Um
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5PcJeIB^Y0L-{JD6k4G)NSJa$DnddLAf!+tQuW4R<E-4R+;y~GN913D
      z1Ojp32k@g1vu*%OR2<f`^JeDl%p3ps`RzM^J#71^5jGQDL?>b{-bb-n%xo6Tj83A#
      zc=Yz*<<6duI-%p@Q7RaJGdYp5_0izU63t~?7-bjH$f&tWWg@4~VyiMuXwF5tqs6Ht
      zbccT_#?~mE>=PPKlvegB;Y#n{@a_?zKFFrB1;WJ;KAHhMv_rJeA$UEP&>ku+4~o-?
      zG>2l6mJemINRNb3&R>Fcd#rN8*6{zca!Z~mxbd~#Zl$5Kk@o{!$GVRjgpJ=cQDyjS
      zCXH1x4{;M4gq1|vktx9i;of-zR-X7HNifa|6U!GYBy*fC;enHm5Wdn{nn5b^T=FpO
      z=Q>WaoRxen?Qu5saktXhdCSB@R?_2h0o3U_LHReR@o6DobcJt^*>_0LzyBFw{|hdC
      zEOS;JRz|p*-l5BW$TbeVj5W5rL|k36JYwr&&Hg8ZUvcdN-)nFj4TqDc)Hj#)9&VLc
      Uo4C!^_2U@8nOpp=;||t;0j#H-+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4&2G~`5dJ3X#ME(VNK+9?D4{fM(gRk-5yYVpprWXtrZVD&<E&a&W^Ju)R33w;
      z=(!RI#DNFkRXFelEwf2P;DTytcRaK6^L^j$kBe{L0qkJQMv1U-qzdmOcpsd4q5hEO
      ziI-}1<n@QI4)&jK4AV#{scl$<n#uCwfKOkJPGp$ds1WM&=s}@WFp4F?4wFLVQWI#G
      zP<b4wD1Sl_-JVad`pH;25Lk4v0Ee(Nh?Lwf-i@R_oYvO|Nf^X_pd;hYf>wSUWrWSa
      zRS-YoX}VAgAT(UqxK?J)<{LX`V%5g2e+V5OYZ;7P+(wH~&SEK32HJhm^KGmV*5)Ml
      z3@=@zxg0+|4P}}~i6Zp6S3}kF9Y(ZBaE3{tL-{N+a#g2lKQL1W?w*mn9|u_`GaDU3
      z>wk<{?b$7%&AkP$GB3-JX1)R?qcTUT>^)>lY|GnU;GXkO3D<dd*g~wr5-lvT?@p6Y
      z!wvTMlK(XDCj)@y_M1;ww%&gHjO7MazT)QD<*(Ogmp?hX%2f^Anf0zS6o_?HMF$PB
      yg%#2MYesWAqXq_fcTx*<*fO38$o3p$g~JA<0ceg(xHs9?ai6VW$gdfjaDD@tA(Zd{
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      CM5JB-
      
      literal 0
      HcmV?d00001
      
      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
      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
      W_f-Te=lP!q8r0>#sQmj9b^im(YxN-j
      
      literal 0
      HcmV?d00001
      
      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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
      ZD;Q1;bNmLw=i+TJl>ZV^UbUFF{tsmObh7{e
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}&BV6ot=4ehP~GsfY{X3)se;iK`05G$AdaMVDkK4Jm16ns(~XtGVz2d?@3f
      zF*ZaOv-swod(O>y|9E`^aD~$vN`$jD&y5XxWY0#Bz9do@Ny^uTJ-xMRC==S-nGrMf
      z=Poy4APFtow`QhqyUt?h&K;l7o&2ginMQnlLud{K&m`mWp2c~np-wngVfuHBo-9K>
      zl3~hZB)A@koGWW>YI@#-I~!>@AoO?S3Cpr4k*)}xAKk)ohVICA?liOr7ym5iArHh#
      zokb{n=ET>~CG>X08H?2ggON2h=M#VNN5V0oGWW-q*Mx>A@-zs?Q5+KL+qU#=1yurJ
      oPt{w&K)tG>nxYak#f<{*D{dC}P;tA!9mTx@A1N2Y$(L9E6PNmECjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8{dW}A8Gi2WCbMh?2n!++kOdJp8<LbSOB1kVBVZtj6q4u~L?^p9n}N;Dc6OE!
      z6m2P1u$C5~QfblBue55hAW4X^!G3|YA3yZ?gTJ+>=Xm%B`g7@XXLpn3!?wxUnS0-R
      z@B2RYd7t~<`RL#8O#)bjzi99YEJ|DX#=XXV<3MB58OpkLW7e_KjXUDoAKtQBLqK3j
      zX+~pCCi9Nz4i%=vjhx)Evtz4<N`bk`MPtU`(w2;ENuxI-1$?H(M^9W}mg!2za8284
      zvGbNIAX)_iIU~cSf51ozENm;qnL<K)V{5ySY!;|U7ME=ksN7&$ru&e<z0v=&rnZ{_
      zTI`h6Fi+s_X?(j}$F$P%yqQT!Cy4n1T4A^KA<V@B9o482xGUOr>yqZ$?kX(AVhxJ~
      zYCaRKj(f3$u`OeO6wHg(-tI^RTB>6i?&EHZY*tz+f%-c|ylrg}ce8SFzm63uRM52x
      zn+m~?1v4N}t3$_3)vD7m10jLgZKfqV@&mon=`18C+-4_@Ot;~fs$Vn)+<r4hW^X69
      zOcp91IqBxJ0^uU)ylZ9}+l?$a(y&Hgjz^wneZ<K1b0mb-Sf|K+kQtBGb_cPZER)5C
      zg6<mnneK+{zGQCQ3^ZYb28JoP@njXZ?Tj=m9UH;a2Re6lZKmwX_$f|kuELiP*RV-o
      z<}?Tb(9wd289SS&=GK>!{b=uAnRJ`Wd=)L_sVka-*ut=7u(Q3gLFrh9eMCnqs8D}e
      zGRBHK#JGb;4MCNtb{$m+YIsy&*|hRnGZ~pSGMk)qen498<^xHYRi`M3FOwb1j;PR)
      zTvjH{K2xSb=)i&?Iw|;DAZCqRZqRm88h9>zJuN{zE)e;QNe$9U+9{qA4NnMEPs1t6
      zEP>rRp7dnS(=-r50#E698V2>8kyhI6_mbQi1W$HFSLc@c^=gh(`R}78+S5|ott|aI
      zOzfqE$yj{ImDJw+a@q<3n`?XGL1YA$c3Jx@d(ev5P9$&T^4YBIxH1(f;cbd21}Kth
      z*aERTcq&VBXTM_)D(zFWL41WJsEiIJ#(i?AVZdPFGL4K%QBH@8yg-$zKeU-S$#W~7
      z2x3s+a~;xj`=t{pF&(i8k}m2?E+T`{k<+<SwPZ-gL9C*jmB$dC#d8`C-BeAdGOpu!
      z#dnBAwaZ-2NXsC;#*<oxSxIrK&Ng@zQ^VJ9Iz_FPE7Q^m;V@p%@eP%*plP|?MkY^x
      zM;W@;NJXZcL_8;I?=R_?h1m-8%R0WL)@h_@mw8aC(QoVc4uVX6Z@#Zjxfggv$4Pb8
      zXY`qwOgv*J_i6Yp>(I2AHam{Zsi)PZzbCMgJMnI!Tke@QbHH?WN+a1XQ&Vh&a0&}F
      zd|zO>=g_npyQcN9xhUVM>Ez9Dsnp)QC$ZTD6-*T^qU2^ac{7+$if|VD+vQMuG5chx
      zlvXxNYGe5;lT%Tu6n<W^@UJKg{SRQQapC~$V40sO&>ZubJU`_{u9!a#HB6Q0|A#Lw
      z2u(T8Rqz7<H~6R6Ul+o!a8bjB(n<Gd+2lCJ5C#7(E>WH;hs<uYCmyfuRtX=~!MYW~
      zWxS_hytL9Q)Vqdqt{l)Yf%nO)q5LH6?9eU8u~<%9%QjvzwHEH#NgY>|fGQlx%SI{h
      zH#&Zc-w{VXn_^-pK>}(mPXB|BtGLF&l$n+}mft{>RfEejN<XC8<d2mmw9C#rNx8*T
      zA1GCYo4-M62uryyKYtbc_o?lXB%iuHy*G=q_vXFoy?Gk=R`aVdhtDv3DFnCzSRR|e
      z+(h`UG2C4@j(bQKBBNM7h6iGGBZ$U)BZyt_ysYFi%vHc{)Ucx7i#@mxPobWc`2}BS
      zKqGtfs_t|~Vy)rln-|e{l30mLY@fjD#2D7LuMB_wBEB$=FZ%IVU3l|2w)*e^ws+KD
      z!@Srfv|U4Z0v(C)jxp@K6009UTU~fpaaLDTMNP$3?5PVsR<tCVDr+jQVpdJ%D0)V*
      z=L|yO-loc7ggi@A<pdImnu;-`R6pGm7)E`QrUG~b>>~kcKyAK88^gerx^T7xsVPts
      zxQaO|!`YfZ0q?K}(K&;e9>o0~#7l^-9LE74h7nfrIugp`Git0Z{MDkf!v&mrOpP5O
      zyWDE*Y|+n)o}U>bIHt_eaePzY{on|W$3}5Nc_rXei5hJbua4ohD;Jp5LA;2Ua0Z{?
      zpZFBdinU_BXy#e*K_%>UJiup?#HTP15)t$<IsK^PUA7Jb{Ccsm6<M^w;T4yo)n#u#
      zy$;dqGk6(?@EV@OkNF;ECBB3s7{?2^#)AA;M*bU);$yx);ml8Q9M@S~|AkkCz)4Yw
      zQ(`s?>3qB@A~-GXXX#waI@pY}Vk6!V+i=bk&q0cXvM7m%tsmelMH3V)#DA7MiHJJ9
      z!9DmH$&Vkh6(Ew+#nx64pr>xiE5RG}N5oo5Gz;+){FF!II)(T%Vy`5oZTLBU!PZ94
      z_9jP(6Av=NTVyG~-f49>M3%mk(EkxjT*9%C@gx&64{x7(9aR%JP4S+;!t@;XU&cF1
      zsFNFF3$>?Jo<>yH&&P;*v`t>dnCdJ%A_U*ZsuvtOdZP0tOZ9D*;FLuz;e7wbVeDX=
      za`-h%6C28d7iDrB9|SxJaq#y7MBsmD81p&d_~PAb)V#%O4xi{e;unjRZSvfW>qmTI
      z5!<nIH_lHV><)gTgM5X_)jecu8JUWbt5tZD-=c4!3vVNhUs4t4nf-UDjSFP%B4@v=
      z>Mo1x2tMTdV~+hDV_sfk1rCdOjdIS1EKq_ud>nsd%f~fK@DW?8H2sP3efaZ#09f>=
      AWdHyG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?*>=-b6x}xiGPal;hB79B(#8tLOdSohB#>a@m^70KP^cm+w!oH*Bm<!nr2}pM
      z09N1on!Y%pS*xp0?OOeZ{z}_@Wji*B>4Pol=-zYp-e;eqzyA64HvlK`qk;~B{=8jD
      z+|lpr4-<yFSoWPn*|qbDiOJ09h;I0fyQrW`V7pwBDC&H5b^eZN_zE@&>}zaJc&1Tt
      zEq^gFY341@cNYaVowaPsKQGWZ5Sta~8g_DK7@dfyP!JN>mbPp&Qz^}x?zBE%GzFq*
      z$Iy$jx@*bjda%ncSf0R<bmOd70!<1;@}{4%JzuvC<~uWxZo;1OUCYiVV{3Vum;=VC
      zN!`vlrDPaA*rj0SOPp()RqVzdGGV5Yz|Mi##`GcV6;O27Sa2$?OtoLd0UTs9^Ik<S
      zda1naxaP3#5#FwL@UDl@OUYd0jDmiFgY8*gm>eDn4(LN9gx9&jGD-^G5IEd^Luz<@
      z)U-`kXGOy}DtE;MLY0zk#P8-76bw@0_FHGhb)#jkhKS^KTtz~P5%Hb0^T2c^r4UY%
      ze0iP;PsQb;(<;tL@?loQ^}Vd+7i9Qt74P6(I;3dYdA|@iBqd+GuOf-F0-L?cJWa%U
      zNtIG<bPnS@K2-35K<@_B<dh)hx_wn_#|42zJF(Ziu;wYbH^t3K1;YXdHsr1~$I#ft
      zkyBv|;ga<7h`^zN|49{_4dXJdC`h%GXPx_6`b`4fL6^y+WKV3cFoknXuTt~{`qqwJ
      zm#^Vw)`OHXdWnAP<ek9&wJjS-(-CYSxtblfqv7w0Zxs_$rcX^~7!L3RvCFzwU|h1x
      zs+h!77}J=Ol3W+qTNgZ7IqVdR92%BmC#4$GxT)e}+#)7Dms{5fwfT~aT@T|EWEJS7
      zxuFiSPM2AydXXbAU@Bm$ElqfYreXmUF=Y8Q>kI6DiB+l|CpAl8&w8ncDpoOPvSA9i
      zD`^$iL2b;G*$8Zu6*#O{^ZZ6~75Ct>ptkvtC3|^n)XB;d2)2UzEUsQIn>MM$+gkP&
      z7&*5Jc&K7gHf6|nYS1LEPgQ(|&uN5$?qvc99LN;+OMIo^F&Q-xH_POyc!IAvq$_sG
      z$yp1*M5dsuMQdH9E9%|3<`RL90`1dNGj6L<IG{T$DM8DthDdxDp5jO|%n?g|3%0j(
      z#Bqrb{h(d=>*m+16CEr^h)<jObedPeYqz$H@GrdSfXe?cui!xG!Z~c=omyLjt=Pt=
      z&9cpE3B(>I>|*Sx_9wc<l2%1@Or*8wYgO!f4poaD;>|N`T}9vAG7hJI#*7v{(uf^p
      z>`lflXwiX2Ok?aAV{zt+M^997>KXbqdGl5k?~NZ@!MRL4IBXR|bMa+dOb`Bn?!hH(
      z1*1!ZQlpUJPy|v0cLkd;h6vK6GLBwkpy4W+PjC=^gi&@M`wzD;LmSMZge*;W4IbuL
      z{F`{pZhL~;fec!WDzl}TdkY>hUxq>yu#*|nJh?=HCYZI8BFU^Zm4D(sDd@y1rsq~L
      zyNqjNfeJUW0r4Bz72JM-c>(h7(^gTKi=J4<oxvC2*YbDtRN+<epo$w=h8_t#|MzdQ
      z{i4bC5NitDCCehBM6nkRKUHPUS%+xv1?YDZLj;%b4Zh{t!-(NKJS9Sb@A=$;AN~Vj
      CsztB>
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7FTUQfT6#fnbCx)SF#0&LOv|hL--rA}`TcBdm5U@}v)?N;iA&gFD;>-jAvG>}i
      zw(tA_U)8P^w5-+DCm;GV`a^2JGZQojw)SCW&g`>q-?#VK=g+@?`yIe>{HUQ$V1L0W
      zr?1OdIhQuP`BLDfed*ij-f}QA=uEpBVgg&$e%h8!Aw4{G-82G$&C}8dT+cFnfgRa!
      zzZ_V!^E^49wfrC>5brT;%dvv<0`+a};{vgMH*aca6xhCjMFI&l>39usflWQ3;bt(n
      zjs|SfkQC_t_gqIjch<_A-awezd;;6h6vqyMqqIv!=u!$@N)lblBD_?oYLhD6DEJBN
      zLW_poYY>ml`+-^1@jCVhG#1Q&VM?YK%nO`ui;#!Rj0T?N6f)~2?dwGv_6f8+=OD5j
      zb8ncAwP1R2ydfYK6WEIbijaeZ@M@vPmCYd?hjD~8a?H6PbSlu?wm}*Rw4p;o`&zsq
      z4jrA!MT|eiIJ#M6#i7c0u9ivVA+6&Wj<aUw&9byrKh)+LHB6@cs)mySyF$!0eD#$r
      zn<Z0z-qP_l-VxAdrCm0Mrv;8|<Y+yc37o(g#nagrVpmJjJ|0Jp!0yy)Q?F~36F9Hq
      zUA#vSvQ#piJbSG+_Nt?Gv8(B4R0@4M`W0vKz>V}1xPXfq1_ZV|huv>W-`DX028ndq
      z^>VUk3LO5AXrUFOT)<@=Sq!lg9rM<p;|J0)Xur0+Rn9dG3#2waGlMVXB7rM9K2!y*
      zm-)Qvr!gHLfycLLM*2gpXNE1sI`dFpRfqOt9g|8wZn#b$EyvgJiNM|$F!xJ8xG-m!
      zrND9>4WA0MzMzqFg8{ef<ZHA(U!xV_4J@f#)M&}ITDEN#q}^*6rtd$~ViB^IW9G`m
      zDbpL1Q#M&kW?e(t<I=O#e^nTB%O1fU%l<#&IPV$^TP`dpx6gr9JBKGp4H$tspTl!c
      zq!13wNa5MhryDIAt(;%=Xi`UT#-d^COY&K*BMqy=DV%`<=QeDqR|LgYOTg3NgXzYt
      z!1N@iy}-`ZF%srJSe0iQF^f43w}?H2zGhd)ylU8(nnsPt;kJ%Nl%jN3J6JjRQpZ=S
      z%`~=Ij=CIRMbns(j^!6goJB!%4ROzc^U!*xU$(j5{t}YbbvxNgjIz*%Ibf+yXj-K)
      z9C0|nd#9e4q~O%&<-=7y;?VdoDT=QkMmg}y3KEmc(0|326>Q^b`{iV_c!ZrpT~9Ez
      zg1wVn$^FY{&E3OLcLi@&a5S6j>Z~BOgq{_gnCyInQ_DD=%v5l$g5E6u->=}(AIP1J
      zJ;aulSOp^!_pp_Z&L_?%HbGCLOHUtizoUYQB{W8>k%<RPYXl}{a5enexE6j(_$>Se
      z_yTp9V&dc2!FPs5K93}N(TqMydeOoWwvSV$6BlukL#hXtXqltGA^IAo=PR%=h7u+a
      zP+F$$A|&q8>(4j?gI-UOnk4QZ&rCoseV9gp#I>--GhEei){nu$b&`4wI&M%eMkz1;
      zh+f+8`lD?_$1>~(TtrDH_yt|WXsiP1krIk<__rA@(+cZ@pQst5teebKa5H-kdpaMZ
      zEI?w1x;h?Xp$@t3Cur!tPx&2zrKf+1`!t9G?PsZhIkK}rW^Qu?E~1r)4pP?1CRM>Z
      jq5$}sh(P^A_y*rHd^2$<M0K><gzxY@Q40JJ`o8-QU}=CJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&ZEw<06n-uP%G&A__u|WZnXkMEcc>VZZH{1;kaUv_ozZWXQlU#}vArzrrx^bP
      zeqo6wel_t&8BYOYHXu#U={@({=Q;N|r@#Mv{|TUgrwSqrxt81GhvG<l=B9t#l^zd7
      z;P7%!wyW+(ujYG4cGL2Ageg7$SV5HGLYU4S;kNke#-U|O1#yP_bfD@CB!>8g?b>pS
      zVJ?+EV2D<{rln#InhpgCh6TfRt-W5SVfk-F!?75WhGz=rK=^jJ9tWecZ3hh8n9e_g
      zzQmxlELn8}DO{7VH&e#{Yt^N1yRA}s2Ij<_N-8d4Nx|YNaYiUQma#(DBghWJVk$k!
      z6P~`J<7$|vN$+j9YxxxsSP86>I`#cpm~cbKP26HosbXIS?`+v-SejP#2L-ohHa76P
      zoDk2-qGAnN0{0jamHqN=ZueC&Bz>SGg*5fb`qUE+$$W}%)csPL2(t{u=?yS_(djgc
      zyh5H(Cy6s5ah@SoGs@LH1?voj=}=uq*e<Vyb`pj|W0>z)W?Q&+KvE|sg(mgtUe7nJ
      z9Xp(-)w3w$DbI(KK!T9?^v39KiIAtEBs)(lPM(pEWlo@e8*b}l<HKM9=jdA>CEz?3
      zXhmazi)6#YUkNNizLNcg80%*TNDgq>$R@81aQzFkA6R>Tf;;_e^6milhk*<Q9#SCp
      zFTg2K=(9e-M2HH=KqdPOQ9P$IUJz{wE7+ik*`x+;VI41NXB%aD!t$0!C5+3XV(<u$
      LsX&G&L(Jk|qn8eE
      
      literal 0
      HcmV?d00001
      
      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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
      D_&7DF
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVQ>wgqy6@K2$COd@Tk}V|#Lb$aw+0flq@m6Y;gi=zu1On88woW#aWMH$i%+5kW
      zFZ5<_w)CczUTm$cr8jkp1PCChT0v0jrA7Nm{iOZ}-o@w4Y<4!AB~*X;?arK;^PKmb
      z=RNN^XLII1M^6B_3LiueQn;))ol9&pb{YeTq%)Xt?L^kdrV?!_%S^j#%w(UDwzB;Z
      zgcYWXS|VkndlT!rwwXycf*OTJADlIlImdDbeRwBr_$Cx4^^aOnh^`K7bh?g}?p>xZ
      z&B(cZwqxx!T+2?kuTao3j_uk>JEc&YHJzQNv)1T0De!s5bX?2K66V{=xmGH%#>mi6
      zgwA%SOh+N^y&Fgry^<voNh6i&GLqX9ZH1dvzCNK-CD62)YPHhc^hzPLwUvG(?fy*4
      zbh)(JqEMZ64e!2Pq2?MZZMoMfT--E1rsmBG;WoS5tVI=O>zIi-3RO+bn<qhGu8t@!
      zlDm02X5eDETc9HXO=7ar=Gt6;m+5RYx>8&>y4t4On+?Yjx$rRT_E}`$^3@+|^BCR~
      zakjXdB=Wj}q?r-Avk^3N{qt>NQI8ZkX4Wh<QfKZoQaLix)<-_gbT8elY1-P_EYwB&
      zjBGm>wT#pTGn?T;d`k*QW382KEAm>COYd@w47nz<y`9)v^6^m}3B)7#n8MP^F}8EX
      zUL#eEsZ+M5=xr^QVzwCiq>fMFDg~YHk=jk8i&<%It+&xNc25uEqH_#^+a}%!@-sR<
      zE67?Od86;7opXC_4>!HHgbY7DXEZgB&jn@(HP@QGHo0)k?hZeN2Nf1q%A67d{vlfy
      z!Szg);M^1<FAsPnW^1@Xq2Ald_-N+G<v7Q8*o<j4)<&>q%sKYYppJFu;NF=#az=`I
      zH72DCUNmnJQa0%5L>o<v32FVh4h@?W8Y(TFbsaM3_6ht(9iJEYSVriCr=fw#(Ol7n
      zR|Dd5h*_1aq*o}!;1_g!Q4H3P@u$;MUrucexA4GKGTCnobme+_Oh?QZI=aNn%rR!x
      z7z3@IiiYmO4h)p>>KMDSX1Y6T?dDNe=+V(Db}kuXXM?e;lS-Xb(qM7lEBTYLQ&w^?
      zp0+b7!%Dm6fGY;K>qv>g#xVvvJl(Z+hp29(ss?86q6y6!N!QxxIhoP1Lu}5eXmh!z
      zr$Nfgga*4UYT9YT85BozI(CZDc@>SWDC%k$xDWwG+D;Gl+qtaR-L2!+^AoUqR8_<6
      z3JWLjx5svN8BVvD+@s@8F}a|Et1ErAPBZD4$w3WwPwXtUx+NibYQ*xrI=(EH7gn&`
      zVPvyyfx3qK6=qd(*fDciZ=W92@sL>4Xl;W$^!sAQuQicwi&a$~M)_WHy`+OmOL<hs
      zBxo8QXHAoXqv1)ZarQ0^Ut=rlq0eU3o^$8^DTQI5j;HYqJE&B2b6t<rfc6T-tQODV
      z`3Sx-wulU7U9(@u3-~6xz2P{<VA9U8z{N@nT%nG%k1uen`s|lAY%jSK>u^|l6~iik
      zi~YTMvxaX|PhK}QONHMrowZ(qeNBgsDG|J(P$#4&Jk%;9+sDbE7O!LWWPBI-2)@T&
      z7%1?ij<=*aS0_`Z;b{22!hANIxIYW|#Z%ZLxmmC3#M@VhsUaPQaF~RW{IW_uS}?~4
      zs$p1aLz(%}Sx4eHrlVFi?FVu^%k=y~D4ymdB&s7iCX4D1D|kFQ=)?;HQ3O9$SmI^d
      zha8Dyg`en{ifI~7$+0eTrZ6tWyZm`6f;vH*(J>u$!q3lj`~oj=w=y|*c`BvhmkJC`
      z;nzAA3*ohf%lWS>=gKHo?Tr@l`mBza_qx;0IZ1P+B{R^BvS~Cfk%Sjey^5b|=6P7g
      zCr-6t$$9Te8oety@~%t|@5+e0EB*AY9L2mV2Qgk7Xn`q3tCvtR5aJ&&D|VQlsv$JQ
      zLPKbbwG3gtclQ=whOm&|vr)tEwS=#t3pbFs4jNuhGaImoZ)W<2a49aMM3bJwDjXIz
      zxZLG@7Us2yPe{O+CkicCQugEu#EDQcCGlIFP4G&NQ5`#ohBtZRJ67X8yv1`u_Z13G
      zC|t>30ij@N&rC1f2oqf&JA{usgUQFR^rpl3_(-g!VeTP(B40E-mE;2^<LDu!z1{*b
      zA6ksE9#@lQ@v0unNU)Guk85}*8~5q|dHHM0m+$BDX)bS{XZht5EZ>SYI#EvD{9p;6
      zI=3QqD{!3;R+|`=#5G(bY$XX>H4<%aIfTzW4UNy&=c5|~X>&e$Qy^{4M{f?KFXf}j
      zKr-{uzChZRkM;+WosT+!<mRKh0%<TGy)BUL$VcxAq<iww`vU2Kyb1zNGx2~ya=M$G
      z-b!w6!(80X6upBfxQ7+@PEONzp%r)IdfdYlzZaX>@@~d`NaB8uDi3h9c#!CasQnd6
      z591O3J%zn^7LVd(JcifsI1b<m9LAF#vHrmrE~d;daT=*r#LgL)oh|fF(n$p;&)=ne
      zCA*}G3I0gME#4bM?1P^x0aq8mVHtG&Eyfj|KR{LVv2y5(CD5uOltb<~=o978S1Lj|
      z&W?kAwH*3JMJPwu0#vGn&=e}!TtC!&2{KglmqTj-d1V1v6MgCkzFxlWPzk!Gh~|V^
      zK%alzqb0~-UCyBwM2=KMa@f2e@|}uEj*}Nep00@G)ObPUyA_d~3NMI!uOgBYU;!B<
      z;kb18padEuA%FLdJ3rgmEvuOrb#sqvSBF~~W`(Qf9>KG-!og1ab^Z5L`vbe!A3f7c
      zeNbV?2`|?5x?)|gE7bLBPGT=oL)r*`K>z<P{E3VHnJ)b0JT8pZ_K93j_!eF&cR^Wf
      zKT@*KvQ;*QUceM-a?zI$<CPIUdG!?PV#n}0tN5Ekcy&K?c{q&kun(Wa)>upQz%UMm
      z@HSQtVK2oafq0bS@jyI5@$G{6qanOQ@nk{#=@3qf-IiheEQI}R6G{{gV(%$TibdZQ
      z(+6>MR5(iE#HetB!s%0}ja41j#LOZ5%AZa+qBI7Tv4>Lz@K=`8zwtj#f2Z^hHv50E
      z?f;vl{G9x@zy`%%zbb@`s=^)>#=|PYUksD5Pu1diHJJmq&Y^k=4ydU(qNZU)O~*-9
      zhchb5k?tbAuV#4L<CpQX#SA%%-*DiPD)e53GM?tvN_|>F*WYI_KD)74Ol=v$34V@B
      z_$1_XFm(lSHL^iLHS%AQ^DsrtM}t~`1!^G{t3_y0mwNvAqt23oKMKF)Y9ajYzrz}c
      AYXATM
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>%}&BV6h^;+LbakO2>v7{vV&r%#+72&ASNb_(LmS_rNWrnlC~&3mMan$K7bEp
      zyh9se5EpLlooUZK^L6_9_5K0i42LQb47GtfHlFwkpBR=u9fh6|@W3&ep8F{Jwi^oW
      zh;Z7PSoSCso~uG(C`Ei=TVtPIMiXrsTVM?7E8&W;!H_Ihx(rIw>)RTVSkEAZG(*-D
      zu6;Lt?%95a_Z*ucXL=TQy4)9XA3s#Wp$HgG&Hu%$GZf0EjA=OB9T@G<7w({5>B<P(
      zGQt)EBXRCG#GtPj{lRsHzV|9K#=e5|<;gdpQ&(~fTH71@mVG1Smmd9fyET~@CD5(W
      zF9KC2Z;Pr*yL0M{dP<*R?Tr=*XjC=ozy%asVuMzh2%^48J1N+rDg_N9C7af(Gh~+y
      z*F?7FhGIm;2I8@U966*bAG>ZToD8Yz)sq=^mu2@f^e~qlN7zE9#xfd35qoqL!#;@;
      GIQRzsdWt0g
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%}N6?7@V|qx2=C`wVnkJwg`rvdlFG7C<+A+-eQ`rsY|ltr?ju;!3Xf6#O$_+
      z?0QPR$z*1}`TG9&1TaEBMuXrYRh}-`lC3B=>)dH-na$|r+Pk-jn(HT{mvSadj21ys
      z5NXC#N*`Yrf;)mX<4!J_69m1%efjR4%;*El$HQlW?(K?;+)1r$j1Ix&#>)!sjdbgc
      zTVW=YlbjXA-yZ~>oLRe-Zw?B*HrL8AsVqT%>sRKPIwMs&9=;Gnnbz+<CpfDGsss#N
      zpU=whNh;ipR&$wpQ>Gv||4+ZB(4A^;xVV#9sNl5L+f}h|L_p9Ctpic0aR*VD<1n?t
      g*$zk-yA@;)`xWE>hZQ8L=^UZ=mlN*C!KHzd9~N$S;Q#;t
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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~9CX350dLTR47#SEDn1LQ*U|<9~jg^57
      M#A09vl1vO706Aqw#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}%}&BV6ot<~p^7Lff<G&b8z{!cXxu<Zj1gmkE`+cj>IBA=mb6pF$8tsD!Uyo7
      zjCW{53>p`1?w#A5^W8JkkI%Pv04LZpkzzO-c#-|cpZLUff|s%K?U0AAedD@fz};Kn
      z47n%6QAcqlt|pEcE9rYC42D|l3WXB|QoY2!i%1QHr=-KRZf;=6Hl!z2lObKH_85#y
      z|3T!C#&RARWEl!=>502&)E7aQ_g%rT+4ddo_IM!moP0FYP=*ZW?f=BCGn6WA9ou%f
      zH?TV@klvtP?dc%vI>;IYeGrOESMUF!WUzkmf75k`f&Z-ICeV_G78z1vLc4zzGUPgb
      z6gZ+K^{o&8e)(ga2?wBeq@M_?OurvhlcrPZjC#hJV(FC*Ddec;r~`EvXkdj-`B+4K
      zl_m{XqpAT-Qfh71s!dT?B(z9*JtLH3RYD*=Hn2$y%_=6W8w#gGnpW*-imgT1J()T)
      X*nTXV!^{LmR+O<#s~C0&l)~;8g-4fT
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)(&rZTX5Ql#Yg=$4m5KvEYgJNuqH!)lcBqWWALb#W@DQjv=`bXihJdt?t0emRq
      zENzGZ4qj$<+Hby@Zohv%zW`k0Tt$YV>3Fg6V!c^&!wwd+$TvbObd7-*aVHSbqBpns
      zEE2w_LSbkmWXSDUzD(F5HLNj){GISb)MdyvTVn?0-hbvAve+*mhde{c6dr$wUne{m
      zSreBtluh5Z+_4o1S*H(`XevSm-Td!@9foStlnWZJ<vGSM3WVo$T4Oo<NDePDFjAJc
      zA)2$J^$$0i2L8L;F7;KVuR^{#P2I^cXhS~^Y~C008|&LQdL?&719VgLLqL(q8=|OE
      zbwim^&go0+eb6BTjiN>wxP^ia4(L=!Aj*eSNkNgK6m*G{Y+i3KQQ9>0i0rQnwS-Cy
      x#N!xca!6Mtbq#1axumMMFPAvkls!_@(@J)cU~8G0%BU4J)M*sMDTy*T`vt=Mg5&@I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=y-ve06orq|kU%IDD#6CkjUTCjxupw&DRc?y?iwpGO6|&VQ2SU+NDMpx4~4jH
      z5DQ{JmacuSzI%M^kI%Pv09WY82pEQiZqg_I%vY(f>!mYk&Fd<in!FL^y%Z(as$Sf#
      zgj_mhbc~Q;(DJnuja6>lPUJN9gE2&7rInj79Gzw!Pb;pAG<R0%VstiR2ye`zOwhqj
      z7h8xJdYRI4+AQYMKJa-Z8Ty$Kyqa;Vy#8*6u2eO{W%j?|BZdyQg*W{bhat&LV}-m^
      z{@Rnj9zXPx7=Wzk2SGdY(W%CyCJ1N&(fP$IwqNKJAfcLUx?>`*u}k{6rO?G5DdMq@
      L-p1>IRDi=T34>~k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&%}xR_6opS=V01)K6yw$%KZz4#bb}#5qpJxUlzpkqP&0N&r(@u;T#>l&0emRq
      zEkj(W3pe+t{q8xp{rG%)2XKa#j}k*C)_M5EU-%*vW;wTMnDHzLN9i~hvxiKY+l7#G
      zt5WU5W9SuVCPi+PT^8^#w==1&65Mg$0}RzGrIj5pl-r#NgLjiY$^d0-*HA%~p%E!9
      zNBQ$qntMJ?BttVw1y3g2DA#WeJv&nwc}M@=wa?IMM{d_J;W`e-)+inKI}_)==iKYG
      z6gRPR{Dm<D<1{xy-YK`!@gJXY>V|LvQlZZTN>tI4DEic$Q)ZMa-4(W8*Vh5XfH2?!
      z9xky%Rjq(1?^5Rk>J**8fJnzyyS)_}KNW^VUau973TmT3JoeEf4Tb}nF5&PCBlm2F
      
      literal 0
      HcmV?d00001
      
      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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
      OFMEvt?s387ckyq3@I;OP
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=%TB^T6o&s(N~;w?tGIB-j!U#5MmHFuF}P~nVAv03f@A8G^kU$#T#>l&0emRq
      z8NkG-8#n)%GxN=VF7F?&ZveWeyRZnIsV;&?@hs*+lrCm@5@aHagCWa6N6AF#>0lno
      zS*{Z8!X`A<a3-T7Rr%r@{)G{oOQlubCzP745y8GmCelL*+ZB}I5Ne^)@~(Iq%k*B1
      zV@dGCBogsRq{`%*OFMs18Q~=SM~^*1y&0MwgIMTkFw9dPq1PIj`g^8+l|bz3|Aq+O
      zFe%bV-YV16@t;dLHQs1|hvPK@7N2-1R+qCgj>NItUSjKI_3W{Fi~;Acae*B^Rn`#4
      qUCxX_mDL#ZnKZ1^?krLJ>2Ss5^~&LBO>G>Q$3A@aARO>-3x}UKQ)%n~
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      S>JkU~O-dSZ&M>MHoc#xC5`=XC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=%Wl&^6g`ti9gLecZqooICFSX)5L0L+L=b|OfGQcf2o#B~9NUDc96R!(O239B
      zn=W7z5DUbbk3!suojz1xGk5Oz-gC}<_}B06KLD&^T|$OosprM|p1E%hbt^a+M7|!H
      zp{sZ3coT6~LXKfpeAivm>*?FwJ;#a|rXF#RM~@k@T78Ehx9QuCj4aM6$YY9O#^9dw
      zD(-ik;I-Lx9R}6#Ez{jG11|jZF&BN{Aw$jhzls(^Y2S3Y-R_&*eQMi*6H;1PGme#Y
      zqJVq7R{dQ8B?k6H#vIBL=1<8_f)p&E!XR<ac81&U{{gf`5$1$SJ<CK@+i`!uu$syU
      z9V-rabfCW^b!N|b#(Pc}wd!Y6WmIuR!V<&cxPZTBDyU(ZA#b_9M-80UP9i0PXbGfi
      z3a;Y@&BPuPk}j>jyCLHi>Jl{Km^4>E;)!Xrx|pwm238nkQAyGqh6QbR<0Mtu*#hp+
      zxSP$U1f5~-xby9y<qRV3dkmSr%}`AWJ|a8a4$?`}i(OhGx#P!y<vizNKc*)u*A&QD
      z29eR8g3gTCDe@)q?vrI?^Np`4e4$GQGMzG6U=2B}<2>DzB#7)Zc^6T{ObYOTA_YLP
      zq0Ww=W<DaHJIo%^OM)bbfQKhginu@s0_74GQxr~CFjg8PT>gpb2v@)1rtt~VTlKcF
      x@;RYE3C$E%C27DWy|kg?1<KeOQ`E*)R&ba8ND@WfJtCr&q`c(DsAeH<?GK4Y)8YUC
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      H!@K_lj)&u+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=%}&BV6ot<~`LQA>id(}DFtPq@G#C=2b=9yz*$-ucV@gYArlvfWD-stzfDdK7
      zLx~HG3pe-9ZNGEo-1+!?dk1iaRs{uy(^;H)&-{gFUZ|D}lX#lz$a~a6-9$?8>C(@n
      zHrmfZu`n`;D{vUvxk8IDRnjbT&4`5G7(@A5#?lNJik<G5!MRPQ!bK5VHIz_hXaq7A
      z!*o6o>VZ!p!O#qnkVj*#q@6b(9rGkL!+G%EpnZl`C$K@ih{rQ;WR#3&{qER?*tH?*
      z4Aqnt9rF45_FpW6J4#X&ihF7E9sT_(CsvC#Xj^(*pg<?ul4^yf3+jw|skcJ)b^Y6=
      z>JkQA!od}`=~T-h>N_-9gF01fFd)*h<=*iMjh_y8MEYxo!<^bU5RW}H$%A2^)CC-T
      E0aZeCQUCw|
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~ixX7=F%@vSFJ*n^tPI)<s$x0(1pItEFnfheku{5WoU6j)%=LInHJ`vmX`w
      zCwlFSH(t~kH65Lidw-PUdv-(2lw}+*vU^V6_kEt{{o23&{{2q?i>T|+7_62XSzq&~
      z{MfSnlWyo)0S_FDyPkW}@uI*gpPkkmDcn#;hT(2{P~x#A>^660(9to<a67>cgdO=Z
      zJW0?SM3Fc%jIK&ohVL_s6leDsGHYH_WO12ctXzLw-`{$?+b}SKd=5Is8D1*Z6r$yD
      zw`Da#U%IV_DsG}CT~UuZN5bFXM~+}9)I6Izd)$}m-v2Wbwq?MuSWC~~!n7YU<dx1r
      zaty}Cu`Rlx^xQzlB*WB2nGXCI#(fcpVUR+b2UWtA+}RdEm#|1VRpNl*s(8wsh=*dW
      z%^gR$EwYRj4=b~Wl`$~9mcwnl&XBdePS+73S=oV(DTd|r+^Pi9;?5w0Mo8ELZCOk+
      zTsucuoHbw~ZxG>34);(bLdu~pG*cuo)G2ECnL;g5H=n}-?o(TM6t+EIe#=#%s_UvP
      z=lW;hO)TkHWLQX-p3;`xP&zrhg=K~tGT7seZ0`8n7FG8v&+o)+7Yqv(>1~F&v~HD2
      zEX}yI<M^T4JRoVxNSOq&&8)7QGB8~)G`UHAl1)=|xO7b3Y*Kv!11rd9L1S}icV~0q
      zfq_T(KnIQal^4^`;X{<EtSu2%PC`M`Ihi)&hm|bWXzI?YuR61W4Yd}V45gHip+fJp
      zeeWB!2DB?WK4!QRtB{_x>jqJ`>-nK*Zn(DBq<tFXP4h-<krUEr9n%0Lfd3IhDH{zh
      z@@=sx)f!%Z;RAACF=L7bYJ`55=u<RGZyi~Bj?rxe8l3>WR4{tT{Y*y<6ZACb4Xl#;
      zBV3_VE^)(E6zG=0HG<G^Jw8+GW3V~8DKPdgjA8@ILlCrTeTW<X2Vx@yg5hP{Bm$Ml
      zJiQf_mib9N;~Wz5>QJQCCuevCub$JtO+`{!PnLect?!Wk1Ll6=jUMitmU_7RY=ApX
      zen6ed_!;4C$M};;WFMa}FpCl?($pHCWBP$As4$j^Y3@0!?-kj~e&L-S-aRd4e#I?i
      zD7^O@R%<_EVk<UQ=6hH_oqI;8H!+PFd_=gaS2J-1KBt~N!8rCw&lBp*0eO8vwl7J+
      m5th)5b(V;kc>6l1Nkui*xkOmW=^ifQ6MRZ{h8p>5*!l;CDU9_1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g^W)w=Ctuih`(E6tEw_3W}mdq<lq^0*1CI@HA{kI%d1u>~0bKC;kGT
      zOf-?yNFt9W{wU+!wpM~A>cj5dnYs7uIp^N_{^QG6024?l@G)q6W?6g1_xXXQ+lM9B
      z(j4v>8aFNTuxOPXE%htP2zy`H3j7Si&5LRot3oeuQ#wTj0fvDZwj=biE#1Q!dWL>c
      zOJ)enNK?AA3@y>vCWC*$%8MY{8QM~7>uX!9>$!}I7IcK5pp)TJH0>d31~>P#jB87C
      zFX`2FrKKs>%Eet_XZfxn7{X~w=f)<trMIqc`rU$b7$(xq6`U(O$<X2PY=~n}mkxAM
      za;0TD3NAAYo~N{t$IxjDN1O)f7W>>Nb60E#r$k7^I}qKOkL}DWxXRFdR%;N~8CrAM
      z<*{iM{kY+|5@G12nr6PVf#GHdw=hHw@v>X6Z25+JoL3e-ht9$$6^t+>nkh+9wJ=?&
      zSIZlkf`}5(SryTkiebb(b_s@flb)UWb+%wzue}~oBUOw+Q!vgj_Rk&4xzY&X4kpM4
      z>1=XC=Cd}}#ftgTvWr!^=giHv=g-{`?qP}{s9VL7AzW$!+YaIZ)vTD*9hr}aB9}&l
      z=kwG)$5Ym!;1R=6)jnxyInybZN|x=4{F13#c^b-wK?F=y_1^k+<_Z0PVWg)2FSRsv
      zYQ`$tx>%OpNcWt%jN={w43dZzdRpmP`{}D7NbfdUO~FSIpv1#!1)+}=`p`vhmA*g{
      z0nDJAqEIaj7Z9eE9~TM2hn{LoK2*UHwDQ2%Z<s)JW9}3LYe4k=55!^<2!=jf`GduK
      zlG#Em782jk%09%8(Z7`lU#no?2!rp?wR()<t?=#93SuYmPZ<1+(YH|J{v%9MHlw6!
      z!u<-SPl$bhME2rg-Ih2R13V=IR_G*6Cu>CF8Qq@^n#(LEk)v68PWdmYgd;U7b<ISI
      VES(|LKD6U8W(k$y2_gD0_Y;7ePILeO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?&rcIU6vw~QA1th^ZBc%<U{R5F6*i&=rG-Ecv{Gmc$ia&lwo4h@?wZ{#fr}^q
      z3B4E+6ED4Zsm6mIP5e9jJH$8J5^V6|VdlNJGxL3)_ul^e{q-AwJ1`VP7^Z7Z!`SBs
      z{LnDHqgR1z_}sS*?zqlT-EH{B(y8|>5VnFCLsDKhZ0^*I%Fe!J1`It#;fP>?A)3o?
      zGsKqNs-+@|J`Hj7FeJ*tu{Ij@9n0I|JGRBpUv^DyZ*xz`xbra<><OR2DE}8!fniAa
      z+uRn_EsvX4$=P+iIuC^FFbw3%XSkbzC!AU#|6D~1mlgDP71KV|a0LTYk!?A(U@xqw
      zq+$po3WgcR|4p_@J(K;>Fp302>OjJ*)VZ*is#VYOeH9ED4P)|DJB4*$T11!(&O!H|
      zXO_eh8m{3wgCd-&by(S@M(0X-qDx^?!%a*Pwz<c>C7OslS!Rd_?IcVvuo5kk7JXMY
      z-G*mct0J65*NkUmzc4|-QTk6ndqfVAVuhl+WEt7G{u#ZW$caFuT_r0IW4MP4<Z10o
      zWG_<Gi%Up!1YUFm#`GVEN1J*J$#;myn)(+EzU?^aCOv8kkB3?Blkfv#m?OCYNfj}O
      zc?@IWuViBw$JH<yb-9!5JE_Pj*1M9mv!-zJAtXpHwvdgymwvSP5u<v#g&XskWcC<+
      zndIy6(i_Io67~4xSL_UKj_LxI3GN}mtq|NQrGA7FJVqKNOyUWqu!h@M$1FAow}M5A
      g*YGq1&$i)^3&Ha=-8^(cpC#Q}^eRIBbl8fSKPu3~kN^Mx
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9J&rZTX5XNUwX#r70Q1Rc*quqGm<cZLNBsCZ+dL(PR){@ea?pEd1Joo@UlyO?q
      zuzK40<(qH6+1an}k52%&f^!W@1TOt3rE~Vm-l?0cmNKS-i4beHSa@C9$Me?gPPiWk
      znXEL}B+$s(X~-g<j-Te-l?3W{J;!+*Pt4h1WLpH9_PWQBNf7zh*wl|BAz36JSeSAh
      zDg-Vt-T2KlvRth5Tw}?Ec#9Lycn(5Nplw=%-qgOI{mIc`n?Q|n>C(L4BT$)+vKcJf
      z)L|FJ;=VM<#Nk?ODx#l>wV~A?JB7E6;}%|@yRksGIhqvmk>d7(1j)IvY`c(86t{Tc
      zVMw6r#A)L4LH?Z9zqK0Kw#ozuY~a^u(19%|BWXw_(2=VO*O2Q9?;tl6-b3D3xP^S6
      R@F8+X;bTl8aGGbG{QzpAcRK(8
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      KuZ*z>AN?QSuDqxK
      
      literal 0
      HcmV?d00001
      
      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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
      aGS(2MKL5z~T|7tr#HccNAEwU|9QiN(k_mSJ
      
      literal 0
      HcmV?d00001
      
      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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
      BFC72?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmY+BPfx-y7{=eCvhhz5Ma6#?PF~h{_C(k~k|hu(dL(t!Inr!o?Nq*+2S0!x%J_B!
      z7?&o$KF`yqef#_O{R05^aBDz;z+Difbk0857xk0nLd8@vDd<A5Frp*9j(HGDl`IX|
      zCs5Z`Dp(ZI;p?3Hia>4D@w}Je*q-(Vu0x>VZatn#!YFt^Q#X#JVv%}gBIPEO2(+=;
      zT6J2w)5<!n1(WhKPG;6yC^&(p?esbm_i4J*VnUTbm2%}%l?7%5N|S-Ug5%mI93ifb
      zOG7R7w^Cyx1zM`~o$k<E=bE^&$_3nyC0gylcr9LRlCv;Dqxa~z?pnOsB;`97f<W1e
      z)5Pb!>=lijNm_b9MFIr&@Fxst!2uMJ45R{>$mJYYkZU<UM6T!f82Kc}r^shHK1Xil
      M_!3(PTxVT3|I$%%;Q#;t
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      J)YODO{|^agP<H?T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8cU7=8{r?7}**P$=?c(QXSY3#@`w1PUT;`4H*_h6)<ZFpMxbogp)`2-l6q
      z#7i4Z{R6%6qJ@MelGw&3n)n<1Eym}ZneI+)CGEw``FhU#KJW9s@A>PWUw;Ge7M3%p
      z5xBVJmP<Rvp0Qst{e#`mD+Na2lmdUZH0#)w8?J<&Z)KnfG)Y*=G2E@vM;kkq84A<~
      zw!7t6q2~(pExnMb34u)6-W&-6Q=nx@*(`^)Q<^t|?PX*4$$1z$0-EEQUkRLvU<ubm
      z)lHg??b_j#K&rp6O7N_=Y1M;7b<`rA!5M+(XY6Ouj8+|I(IAkXR0iaoS9N4iCubcx
      z>QR?P3axV4ts{$91aeEZYh5qj+_3zQjSa_=tUS|jRt?{l>v&TOx9x!BY&QrE*Ceda
      zUwA=fvUJx<dF)`uvG;iOY=0u~mC&cy6NPmdL9dQJ^fU4;i)rXh;-cJ46cShCtqcYP
      zF8qI%RI0DKp?{D?0fRd77*gUYmn9u<N|$Nhy6H)FDW>u1+{6?WCMY{(Cf14bHg@<A
      zLXS*Ok)rCJ+0{+M+_qM%Ah2a|%_Jj?-7K7D%QDNp9UjbjZfNa?6NOc&+JuftTqc*@
      zGP#W<ZN?HkE825(l<G{&5_+FS*S{cZFQv*=EO2Iq`vS$6;KnMo-95vxH;u3w@pE%e
      zPmR7sCH*RJIvK{3B6$h-87#6$PpOKhr4-1ncxB(TuGz8)ni8+XuxvKG!75Jih0)kI
      zY(vgEWoxOCjip9*6i2zMqk;HFu2xXPKadwk$eo~h?EzYj&{mnXpCHA(&Lec)C#(jq
      z@!v)l@-fpeN+Xxhj(2e$!#Jl962(T39gK1m+^-#=m8yxX@;gZr)9RWYfzYG4kKuI{
      zkz_a-Gi*IX?oTwFK#<RQvgP`oawsV^s_5r=djU;YtWaTOxDZqMo0g<9ONZ!MyZ-wj
      z+KR`xIIeYQe;}jXg_gS9eFuGqXqWqsP#CZ6s69sUXS77v;TzG}@QtCzcaa`?{IL5M
      zW%CN=Xm^gj<rs-Hz)S$2(BnFC_>}qhjI2J#0KUKo42)v~AMkt;Un;g!5w}<YvZTNx
      zWZsD(%KSF1F7k_JIgXc@O^w#t@ebve2^qtCail+REq97C(s50NI&_S2#s36_weAO)
      zlIsqQfn@l9c%Q~I6swoldf94nOlCXe=^my1nyCrt_CS#yAO*UqkS@lg<=za#lf_lU
      zEUu{ZT*bARV89buu04|Aa-52)yn|BS!H86v5q1&U#nO{wlGH6~_6>9YElcti34NzX
      zwJEnf6;eGFQgfJ(34BkCq@GXK!tf(3EdMvfgZBtc)3vPbbBsQ!@@gO4=IM`o=YB#5
      iZnJFfC`6=8zCt1&lW1mVj8cypB4s+|OyENm*wVij2fOM3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBrXn7(F)x7QzNBg-Tz5zF^G@u(qPbQn5grHWETL2uAG7vRRUaC7Ve$2!8PI
      zIOF)i&S(*tseW_DALV%N?i#j32K|uD-g}?tJm;L}+56Yuzr6-<3uOfnfzficscq|f
      z`o3n=4{ENXHS~t9HR?4jJD+=`AS&>dJlAZ!TGm!Jw@t%U&?RvGWOvbas;0han*!0w
      zu5Jii&Yi;LzLs6qjah-NdsfwQ=U6>)MqF}@aEngKjG+T@6+P$^=tv~jdO%Jp6m$#p
      z=d7xkZ|-iI^;Mt2K+Z9Adrhxfavf|&-HO!^xO%$W8*<65w`{uEYQxp52IWjAawjqi
      zZr!SuXOsU85_`CBm^IgOstpAf1+MuHH%y~hx7-8Y;{uIt#l>(LBMPnvjJ0)+#$|NF
      zb?OHyhA=9i{Xb?c*Sm35ARZEzNGiB4aMRP*VwQIbO`|ezmmLzV?1uPV!?^6hI|4)P
      zO0UH*jCW;3LLk*9B4p%hrS5zqyEB_)8pCB;OrS^qx30iIC_XS=pwp0(CNP*thK~KA
      zoK^6i!1zhKys6APZlPJLId#`8wZ!z|Hl`K4FL1G~*>X%(Ok#=yC?{3mdYeIQP0rGT
      z424M085JMlu7E<@3)Z(}%6ZMka1V0|J{A}`RW1yo;uGBG*HJR-)*f>^6WQd(f`SEs
      zbDpfGYuVaky-``#Ycb3t-i?R+)(AS~f4ozyJGEmT@ZTkfZp)}gDjp+CDzzq+%!FGL
      zICt91Hug$=ODaA<j?D=`JVGQx`3myEoNKLN%2xMu+bS)Y2QBMKW2dymDL>;Ql70$A
      z8asS!P<+R(UgLe^vkZH{D6uba!#_Ezth{uZwGv&Cwr(u=?fOc^IyTrY?qsvxeZvr)
      zvCh_3!=zh+zIEAVwd__HR&p{{Rkt}62{uL=!Z9g9CX}qQ*<eDf;56%onX%+$*dwpd
      zDcL&Sx75L3Cw~!nb@2}F<{RgpJH1?GxQg&UmO6x*O8<iXms~|~j?X^k0&|GsJ~QSq
      zz|{pm8s{;{74tk)fduaddG<E<qQoBd&~0>i@#CpqaVeMn6GO)sE)I+x<64mgZye(0
      z@5d0u^dXWzG1ISmiCMrhS?5`I1^swJ+!fwcpM^M#BaI2hbz&^wAmqmr;-GmP<~#?0
      zL0KsEGy0EkOW+UOexqg=IRk4RzUsXX1{wv2@52zPuj~h^j51>;?L*!Xc!k;JW6T#1
      zv6!D6crft_nRR(Md4x|R_#XW{mEtF)>X%-P1T`!Nsz<2;cuLow(aGl+#S5NpQez2s
      zu;nqErdrl)xj#c!o)D=IBlPBTB3)n~3RtD)39A2siXuE;$CrHi{f=^ny_L+;9qHFc
      zC`NJ8^O$$KjW~8fUiY;s_Tg*R;fTr^4ls*>7jX~s%1B#C2P$eFWXdxx-hzw=kYLfL
      z6ffz;X}~kDaW9|;Wv0Eda#X!0ZVH@?jNd*t)V^4&ea~^XJpz07BWw9X=OcXA7QytQ
      Gw*CQ`nckED
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~iZR7=BI?NC>M2s8$K0pdv&_{Hz~ATS3%F_>d?TY1Peg2rHXSy4g6SGwpOb
      zold8Bz3XK=z2K%7R$Fwc)5~7;H}qHZt~a&M*(?Et=`=IhJs<CT-sgRv=RNz!KfnG4
      z-~_5+1O)aM>}u+v{zzX*8BVS2mQoeHVx=lhIW>OeY8WAbnA%QRx?M<3<sVAJ71()s
      zEO&n-J2g6fKbN^XCLl5bJ4Q=(#no+hR=27$$RIHRO<9hQ&G~lC`Rd}LbOZwPBLbna
      zV;6`ayAC2%kw(=q-CC;ZnpSFhX7XB^X4Rr@2pnmcHLxoG)a?n~xF&7s=x)iOd1TnI
      zOxtuX2?YBGX6Zj#T97RecuPYRtx@d3-Z0)4i2p}i4g1h3&{~jg#!JhP0tfmB8X&gA
      zs)BTB(6B>bSJt%UWVM)=&MiG}(YrlcGIVQJcT6?+7n_HDtj+!NBbkBOD1zwKZ~$%U
      zu)`X5VpkY_0&N}*UR|#1m8A*29K{jzMlc|7kclMg{3TUQlB!}!!z?dJCu!?N8No4D
      zLzflhGo&Gj6zAnCxjfgOeUsqy)|G*+OA(w9=-f84X)nl?C{E!_7^l~vdkV_ft}IAL
      z!#g-D5PqbjGPNkMr$4hfgm0FP;5;k3DTbd@-YOZ($%^^0j3SMTVGO^f(_F3M%A$r#
      zcvqlBcO1QDl*%=M#5T!hwx*UL5fNM#=-wK7S=N$8-IZj~3S(5@5N%#>p{=rvVg$YF
      zaaF@LT&E@#>y(6#$D@^$rais7OJ;>)Ye=o3_szXYrMD8xgb#&u+6yau7WJ|~M?I&_
      zYN36Q_QXq}ZOC~0v!m4BjD{R;v7c<Y;*Qi@DwzG0QCqW0pa<FZ<EokFG~C5J3%zbg
      z@J%WRd#`zcg?dESCK5b9qDpXInLi-;O7JXn3mMF7FtES?(&6Q>yN=#0rKTOzc5|*H
      z^<p}TMJ$EE3**3sU^A8_3%ZqaS%$F{LzZ2$WNR?-kR4dAd+WyXEk{@VyVo!G8z-x-
      zv((u|fx&e)H~QP7Giw%2cSh>Ql3Zv6Vt$si3+@sJj;vHIQYuJ7&n8K2i;!d_8}$C4
      zNOXwiN>#^@S50-7M0h(VRT<DjKGbE~giijOISX?ZK!o#_H|D(kxYwyJD9?s>i{}|Z
      z3~lsm=j;sM>bE2GGV&B1&$0U{;y-aAfc<>#^n#t|!D$|I2HoC{+NC1=BmN|iCa&L0
      zJVQ@H{DMO-aAfWoj!q7>_qQk3FnDLE{dm`NoU9Me#bW+A7JC`F5IPpz7YeGi3q$Si
      z?F%WR#0!k@geyEN@iPt$tzm2f(@7!$`znNsOgY0;ZZOGlUUgZ1=q7L$lemm2u1@1N
      zZsJ4Cc(_m3QPSfE{fU=8tzP=~=-JGi+UPw&?;y`O$`e`{V=uo9(|)Gka;}PhJTRR2
      z9nr)@aCjA6DvOC#M4sd3H^cGJ_pknrx8c<ful{-gF*g{0hTD(nQ?F+q5v#}nJYd8;
      zX){PpfmAGEH+9^}cORBLya`5QEZp&E4Dc3LC@BW!p^yjY)$NZisOI%ip5>1Ebv!}*
      z2|CvBKA*u;#PsQpT&@F&dPZf!`KUo^4?bYA>bm%j!BzOaIFnNx3<l$CxVMTulS5CS
      zuR*S&)gLYoKIUm5ilvQBtKMB~uzH+sPoJM~^)v2%PRL(y_e+ZFD;&nxn~3Ra5Yq?S
      aOEiRDl>9`)C=+Rrern`!BvA3PasLGae+J6{
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      QiW+(Uj*2euRs%lx56!nu`v3p{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_^34B!5_5V5NPBN3pV~rp|(1?N|2}DFugQ!UW9VGz?ivbmfWC$ZkCQK$Q)_rg5
      zUN>;5#U)l;5Xl6IidMy1txIdwx@&E#m0Eu;wbrWt@44^IWU@g0{r`Xb%)9U1<=k`6
      ze(t^TH{Wf0l!zvo8GaI`{TiCvN>2-~3a=@xi?3}-#7bMkt&OFv@s`q>xpOKTqmkx>
      zpL|SX`|s%XsEX7r4>w0!oBWi`w6_bdHB#3Wk0#c-5NiO|?aX8vV+~9rXKBCEwnVhC
      z6cr88=7!Q)C?oNy=+YLgXBz5uX$+&OCJ{#uH1T}=s+oqnjZNXi^3sZEL#R0samO-%
      zb2)w$Oo5hgYwPM*9KgoR>Rv(`w{ROq&++;w@Kz>SjDe;uv;fameM;3NeH?^GT{9l7
      zco>j~X`c+3{m@Sr(y9wFi9{oShxEG=(0LYqF{Tl9%VVvPW{bPhs=TowhH`lmsOUCT
      z#+sK!>%oO+xUpx4+<16(O{BTLCVF}V(2i#s6pyqthSyGyBqDW*Xbf2LBBq>Zb7iaz
      z)QK|%V{M7_M^?1CDqP1@u$x7M%4Z#eRb*qF?Hd5FXv=biwYy=J?ywx4&g(v)&I;49
      z;pX~A9X`JAtScgGOGC#;)|NNKBatSoc}_T<Sc~a>E%9bBb#!`2X_|pneCEupRxATY
      zV2<W!;z*FWa6B02tBlo0f^;}d^-~$>V+GDiQ)MG~?$8l5jmh5-NmPfMK*T)?$M==E
      zARR^JemWZ5+LgdMR6&)XGyu60%rvpEFC-6me-fWVOfwwvQvhhriZ(~8+nSa};`72w
      z8-dr*S+Tls<AQKJs^4B^_7Qfi0Xh!Lg|Y_8&@6|Jr7EUj{ms6>oc;ax-{?$p92!ge
      z=-XU}4xmDPo9EDYw{C$$MYK<VP6S0E<rCB*1ZfeS<fp|<h22`@NxZTxlWQ}>b%|Jf
      ztwSf%DNI8^6wAl*P;+Y{++2tCOzRK5G;`CYXczLJ*q-XpBsxgnmO3<<4hF9i%cD@<
      zv3<exwP=u)0ZP2I-GXM!SW_2iQLSn9({iSLcV)!V{rq$qj97{q-4eMx+`7E9YWg8T
      zic+KUV~V2L>`;t?V6Ivm==kYjohvjwNGl05LLmlsOQ&n=97<3dcmM)ctW89)IA7uT
      z#T5#7wL@!YE%dUjr9PYhMg4_~D?*|13v{X<Idq0j6>N>fS4H9~+FE^<LuYGspd}tl
      z#Oh*=T6wNR=g}Ta1J!^xM;a@l&Gj&|I>!YLU8wVC*GC&7t%)FAOh5M1B}{wuU9%PG
      z`LN^;{e*ssITEpoaBE}=_%a-r^`lif`DG5}P%ubW&{clAa+f|vossK0Y9Ln;hpwid
      zVTx#4oW?_KQ#hrCC(ZSYp;L9PYaP0dt_R7Yt>ul;RUlr!+OkOdu5)NT-3ao;K>^HN
      z6KQR=hV`f)Cc$YWYCLBMbDoH-NdS?X>F0jB1$J=PnD-jw(5-5&)XG%VD_4WGfo}KH
      zZLo~H0Wufbel^{}H2Hsv^V~U8l}+sq?M0&$<6k;-w-pJXP!pQ2jrTY-n)cAf`y9Go
      z8+~XzUYj0pXq?;hphH`<DHlyHJ3>}clMW4Ydu(;+p;V6=E4FTrE{BG@JsxrBQQ8h$
      z2>qJd+t0z=gI_n(;|~3bo?vn?QK;MPp*f_@PdT(hn+KqIcG?qa%dZ`JhJNEJTgY{b
      zV|FW5)-mcTpL3{~N)*QP4!xi-ltF+Ff2r*+IW)m-|Gh&m(;r+a06EVu?tU8UNEOVh
      z4o##|o#u}Yy{=$%jk*X6N4vb~(1BE{Z*M!aw`<Gabts?q(7N{>8mXEtO^8QErS+w+
      z-GXuCrEn>Ai8V~c>5hFBtCx6UoT>?gGZhW$w10DG2n`L=PWr@8e@E2NEvacA-XjQe
      z=pQr%+F1{ci^tXm=zm}ud%`UoAEXAFrH?Nh`jY->gPdrhGThb*buP)2^LfkTvDNA|
      zr)C<V?pnq1Uk>d_d-&<!OhvuSzC~@ii^|M!v@uejw*Mee{W6`-I{G!;gxt*-&`1=;
      z{d$kFhN1?JHVqzKRn$XpQwaU$Mp|3onlN-oWL3Da4Mx9mdAPAL(%gW$Y_+kAE3g(e
      z4*O^yrY!i{1S|w|w!?l^t$_$M>q9n_OhhBC+LYsPkQw@*O>^3oHb(2<$OG)aPxYuO
      z9IvnkIy{I9p(J&&rj|xTnF?cw!$TDYg3r1L%;}6(8m`tw{0w0`xSQLV;c*CvH-sD0
      zf>NWnrdJ-|;Y@jbmI<zN9wBhffv-xh9Fo!2n1D8b5(t~-H?NL|5ts*Df4I29&!Z8h
      zce_?^>fSSgVtdua-~nymTo7$7XpSWc)Kj7+QXk||kT)K~`}=u6#OD1kOC6Qk1&7C~
      zmC07_B$fyH03PpW&@I!$uWe04nj9|TVk{^ekB8UR#aiIei!z0G_R`ZZ{nSuKD4D8)
      zuLnM~T9KNFXn;$>a}@)v=1C48q&)Z6$7V*G!;L{cn5X#pkQ5HqUzh8wtqvc`hXL8h
      z%C>MLVhoKW0A`V&5i$1-_N<_$^OX#q9RUf;<bks5a3$JNT<+(icS|(2a=@7Pf=Y8G
      zVkVy6ixOV;mqCbb6&}C9&od!0mdVjrX=rvDEgL34S`pG<iLqtNV4k42U<`!5DO_jc
      zDw`1DyCuA~F&3_$Ww{24@&vkm2|D6ag}x24;C?cU<1iPUo>M|^gDxEwLK6Kv7v4FA
      znNDY^4!aFlSX3n36yy^K3_5}5JG{WMaWzuFh}N8l8d|GwiyU5T{UZXa6p#R)oR)i?
      zt8hG)8*586#O!hnUNuAA?c~6gD<Ku|CDoCJ7)%XTc*5*C0fv{zQA;)fYOyT9%K+Pc
      zMw=4>Mu6<oFVLXJNL`W2e1KP=$MR?c-jK^?H%02BZA}49d6E3DMk>`~*xc?+Hb^Tu
      z?jQ{Z?tZm&k=dAfSYasBe0$OWlmKRK1Xe%50P0J`+pJAm>+tF7M24ezKBC}e1WV<x
      za9*CTX6p=x&*ZZpv*<ECvMdZEqFE#emf`lhZMsz$n`Q?296ry_=k7WV)@}};udK{z
      zMzCjv%+D8M3!;C!;YveA+p=Ymc#tn3jm-HHhjI}d^9B49hkvR`ogczG5Ad|^GKVkM
      z39?Z)V|I;JUFq;uR(w!3yT;Fmk&Bi08J@{1Z#np;`w4Y614*k&fUkud^z;#`!&h^q
      zLchV`bt-__u<b~yLHcEJP!*^%?Z1m4A#+_*{d_aBs{RQOYKAtX)_)WKTrEIpkZ<B&
      zIJ|*x10BJo8l=Es<Vilr!g1Pohr@SrJ5WMn)g0`tj7X*Lz4wHao`_u?8lZ0*9U4dj
      z6vDj@-=~Yp0)*K$+P2A|JR2|ZW`_p5y|y^qk=iFv`fI;VhxS$O+{6z#yv-5@Fu)0I
      zeAuA^#1s4|)1FrQGB&U(+M<p1k$8X~12ua2*s_99GekaGU(jmTT2L6|N7RHq!cRE-
      zBtM0<hFe<Ts}aHVrx70TsR4c(Iy1f?+Fan~fCsb|#9`nO$0)F86c_^437Nje)2Y5{
      zmIA6HpL6)PN($t6ZhuwR7aV?3D{~XES+UiTcqKAFRk7bW{Cj>Ga$5&8mx#<}8ux=H
      z)TD!7acGR@hC7iR^B)oRSVCGgJQfLdRk$U{uTf)w-^8{Jq-vrYUrdA#o-%Poc;c~0
      zj`(ed-%-poR8DWLVI05b@caBH7$e9X(_xutc@8$i(|9$Rl<}$p{OA5>4+Z$I{kOE_
      z@<;r!pZ~^mKp$o3f5XG!os7uYr#lu13O!^kDL{s);}<B%e>nUpBUB!Un57O`Y88HA
      zjSZ^{`)a412YRf2(d&rtxL<Uj!`7dqy7~EYDEtrU8syK^uYJb<boeX&7lg+8HLI!l
      z-XeM{s=9JS;d@wS_i7CC*Zd!~4BtWx3PT#|`1$)?ArtDkJjG*CkiX-f;~~ZopIQz-
      z1hXCpLEt3Yp+PhNq?CXoIjYfvAT>41!|_NxGM#t?J0Ke**AYhsz{NL2nj>*YwQdcs
      z-^FTN8S1r+sTq>x>D=Oq-SzA}KGi$JsPqfdrUWqEGRTp^N`LhgSS(aihB}fbd%#AZ
      zs;woJ$Z6soh4842T?Fb1;_#w=S&b|qy-Az)AbuGEZdleKB%0sc+Sbw%izA+xp)LcW
      zmhK6Q8J4p=V|LO8ZxU-|Q5&9rYouwue>h%B;OtWO1=P2rYugnlmlGOYvpmh^?F
      zg5NLh=svFh?!6TN8C(?T?xJ@uv9n-*2u0N9$vB5b&>jInsxYKiHl-==1}So+SV}Ub
      z?;xg=cOiWm#`l%AA5w#@L>+7eC?FGI*{cpJXu|PMI8ldm=4wsC0+BT>HZ@Yj4{~I(
      z91Of*d|D!LO)sH78B9?-6%a&ZBOp#`Q;l?YB4Rfip5@A6Qs$S#5r=nMdJJ=9svxz<
      zMHHF{W6KZR({M0j87cF;C?H4nGePPAC?Lo|a&)?h8V({WlL|*F)j{dD)EpP{wSJj_
      zJvl`oBW}`Aw-he9aVf;FRJYzLy^nw#gJq`{QC1L?>2TOGU5<mLlH+0IGg0;QJp=ia
      z*M+hn!ke($c~jwQ_uO!)!PNS6?pbnzPK%Udct6uZrIlIp9GNc*pnBNxb&p~uT7-7F
      z-qd{F(alu9oQS>J-J+Trk}HekB)=?%GX9|c-V~0UET=%tT?`S&7B2o_D8d;k2c{}1
      z!j3EzByN_w=~F=6La#(vA=pPgR*+gCX|99|h4?LZBr2!D#y}i;#VRQo%ix?><(EcS
      z1O>TLnjMMR856Ne_zj!s`DG>IeqDU2HQ3(%LwUTRO;5PeCNU_j(&iUToUu#b&f&-^
      zL3X3LPNg1O!QQ0;-R`q2>?p4k<UOr&`hUmWle&PMf#lTN>j)RPp=U~-3hH#OptR7e
      zfSe79YHn+6EJ#Uuff{!l=+y@VnULF-9@*V?zMJXI_mn&%2P+)!mkXH=->q0=_>h!D
      zr3nV{P(9Yu)Z*O>N2b2QAm`S*>7G`D{Vl8O6-MdqVf5BLz>yX(CG&*ZlL#i)9q&?~
      zcDE{6$txfN?m_O7`qW8oj$9=_^UKw{JtM&x;M_<<v^9aVH@QZSdiF%slIb&Mmd~Fx
      zZ^`t~F*9oBEvYWAn&Fr0nDVVqTA%64!@SsvNHY$T;{mw=+X5v)xmJ$T$BmBMq+ztp
      zW^J#4+@j96K0Hmu?p8;Bp(iRq>^a60tqXC0t<|?Va=Y9CLxVG=$Qn)KHFZP$u~OO{
      zxl1$roYuCbz!$NBuJCS0Hp)GSVHIs`3C*4xns;nf4dmTbe^-M%;Z-pAVe?9k(4m_g
      zc|eEm5vray;~0#q%>WRP2Z0<mE+P$j$UaT2V24BdQ7|B#ptkOCWSp^2Q-BXSvP}Vw
      ztejmvGc<ih^*rqC^#rS6km~KPV36tsn_y4Fdh$6fAjs|pHig$LwK;t&h&nAOzmg~Y
      z@<b|?ajk)SX~B`FWCt|7B^+;!U~{dPhx1lEJ`|8&V^7XAA*!!!k%DEhc)<ZZraGV?
      zW)Cuzb-!`sSv@rwfUV>z9AH`QwFcz3Zrt3%6(e<;=nCG%wBQBh1$oIYFZRH?A{J|m
      zgqzja{H}iwmzgVhy<wAIke40#gQDXsbwMo9B?RPE_XMjCHffdx1Sz22Rq4~E7w-b{
      z2Ba!u+*=4l`t*5+smeV=DoC$X_k1-+jw0SKSlX7r1~BqxPh?U%!8rRX2&e976s!)n
      z7Pz-G0`eZy5#XFFVVT|g0oy+Wq@xv;Jtgt~0!~o=EPwUOU;48Yb@r&J)IBjuozlyP
      z@{#K#yU*v#`iUO;$qzkvp^C;>-3k{f?AOO&fS2*Bkw@k_&RUxEaZh!urmb#yIv-D4
      z^q}md#$5SSKJyDQ*}h3;Kl3^Axo))&_H4SvL@&hn<x9AwZnx{IkhjGoUtr@vkP#VJ
      zu%LV)|Hg)he1jmR-*xv71uI1&%Fy-i?Ot+*t^=gO8OoDJuu0heK8<emK_kB4=lmwC
      z#{q?V@ndEzj%Yhg8clp+2sB2x`k5Bm@>MvK^6rSFg*BscL@&|LXv%ht1ele!TUbsM
      zZneoCF6&7Z4AEY0$kU&jfDgnT`Wlz0?k%K!GXkW37lJXqWsTv6bk1hYV9G>ba+k;b
      z=2!i&AK-G9s`R<jODhg8M`YlT$@Zx@iZCM``OxfzgQ<Qw-6z+z8K}K~pck5OvSLOn
      zfW80s0PJ}&ayV1qn0?I{xQo;d!tux^gZ9wH&DhQUW}M%Q-R+_N@zZB29tXfE>X}d9
      z%r%WTdQQzT<4v*O6uBm}=XF2Cc#)>1jcZG%!|>U|FUORa32;VpXDpa8w`K-TV*0sL
      z(|4F9Zz=Yw%z;dyem0$YpoG-453&1!iHrrfALN+Hijsfk?70ie=T28X9HKKJp&awy
      zW<o|lH=Dx{?HeSQxAwz#H`iTUu_zSki&PqG%fSDKc6*Y)oAI_?k-fr9b<7b4@s?8;
      zu3O%H=cK$J+;@j@YFh_R#ojs58*xsndxK?e1Ti_R%8Gh~WxKn@sPcm&4})C!Lp?7E
      z*2LQ4b&;7k3U>oF_ddr&HImp82T1&~uy;FBFSFsMspuUaTjDqaCFwT2EwKr2OKiK@
      z65H)4MehsP5*zWh#1#=+;v$GGaaM0j?3LIO7aVMf>kYQVWffcEUWzSo6~dO-legu*
      z9zNJ#w%>>YZHYk6mbe;c%W+<RT#&QhxE^OqT#mCPu6@`N*E?*9`x&;xB@A2Qf|@OH
      zJq=|ZsBs8Q0d)?=*MTVYpEHz`bl6rp@<E#Z0KSE0;u%CqbRrIb=Fu^>me3zJ$-L1C
      zwCnhyqM@NqI=*OVbqCEZ@^#P&MW%yl^fA9^=)$d3+d)f;aC#B$hCL4aAX-h?xZ>r|
      z3Q)TdS8SSa#is>yTZwSC6&C^5*m)gy7OJCqjPX$f7zi!1?~L0QSP4IldLL@O?V@OH
      zC#{%Ow1t|I)KXPkVoDxO(kgtP-s}6!Uf<_DdJ7FHM#poEKJ2LCB%QyNF6y95x6<XP
      zy);SJtfNHw<A&;@2}!zXEB&H_?$p=2I%uPo_jb@GEjM>ihnAfkv`x#0l{_dPQwpJc
      zQi+7}=?;2U%ing;i(3A!gI>|{wGMitoeGQ0!vTd1n!cr^+@y~VeQeXmJNkI9o4n`Y
      z=!fWBF#CL*A6<YAy$exu5k%->F#QrbjDAc<<C0u8T}rid8HjlWh<+t*>|KT4SEKf4
      zbPfKyiLRyFaZ&9ax*m6@ZlH&09X*N5XwT7&^eX+F-o|CHKhZDfL)-!TJKaW~q4!sG
      z2mOcIE$fP0rg*Fi;Fipv=mW5GFna$Pf-RVJ8U2O+3WfCnN*~6emk(_O0op<zCF$dK
      z+_>(dhT5T@cG726CE(BJ3rn`^@;}nYSNg~#P7yBxMU}Yr?F}U>x^z=AMLLyaKV<%E
      zAf?hj6EaD3FKX_G20VZ(Vw)kI58|F#2kc4`7gjr=aa(Z#^dX?V4dm>i<3OO<^a%9j
      zQIK^zokEXUG8DK=@W_x0%km9Kg!~E&`j)=4dh|W|yINU-Qn3-=J^HlRWZRl2GxR|`
      zXpGK?l6vVwjwL8WplA!r-2j7sakoHUvbL!h<>I1Rbnu<p!BW)8S(`FGi#s_`m8SZh
      z3zh15oC~s7Pk>;4zHq|!l1%_VU_Isa95#4U7w4hxuuk4n7j+bt5K0sFNStsG?zt5}
      zii+sBFjFt!ZuE=j^?UUC1Bm!4&8OFBG5ryDci*5T^cEKP4h+M)v<lLrrpT46b3GDZ
      znXG15XDVPd!~zH|X(3lUlK1LOAejKu0~5r#SmCoz(=ZgTJWT_;coY!dyORsHYr_t*
      zMUwZOk~Ml*R{fOhVOb9c%KXKnhGn0c?>ED;w(>abs1->r!Rra@=xC6GYCu$|INJOV
      z2Wr)#)C?YR##QrbefD**zGm6ifWBty>s9lTJOMAyCi%d!K)ydeu$3pTSF8>PR#Q89
      znxgZ{4iFrLJLi#QzIK|S$N@25@u+;C$@e`9wA!iE?KL{dwo^e_R({sw)Ub|n^0OYJ
      zhV3p#r{-sMa>e$1-zE?+A4>Q!&j7hp2hOrS=I=PD{sb*wfMx%LRsISr`xm^(*EEg(
      z4U&J2d*|O$736px#P$?6xIW{<UE(Y{le2ME*H4$D?kdiq_3Y5?Jb>=!L6qddv;$YE
      zp65O2O|b7{9*LWIqv%T>P2cd|9N;mQ)fcEg=G+vkIhT*ItVSIl3;ZC>cnjgp&=X`V
      z`+f904fNhVOx1B9^@cS($j4zs7FKdEACI?etf!r40kR+Ft%9rY7J!l33xDG=8~uDd
      zryn7jk8ys?KN*C6(G{XMdJ0h&pHSP$HD$`_H+ImOS`?3RIg+21?@RJL9lL{`(L%qK
      z|0x-ouQD`WTT(JKzgvdp4^GR_{K07%nxB%P7gdI`F$d&wUOPqev+TSJ6`Fm^6xRQ5
      z6Xj<mxmG1|7s7T@4`JiMoR=21tKsyCi@>;I%I8Tmh9}c_K7<az1+F8w41d~i1de>B
      zQ4JqOCvycY<4PR+Pp2~g;bNXim!a-Th{QSw!)-i|Hu8Mxz|EzH`9uiXVtRp3qSyIk
      z`ZJ$GpYjsi*IZ0rbC?D9OmlFvC=d6EhVf}U8n=e_<3>J^TdV-K!2E;7X#t#!@oH;O
      zmlnXuo&X*~&92x%xIIzi15<Bs8~?*g_*96~I`VTEP_kLlZ^JT#Z7EdCbq4cLVlEm9
      zzQG&~MFIWy=W*SpJdWVkunDcMx()|q;x<5B4Jxjop}dxc^N;K*+#qVCw+bIe|N9K5
      z0eT~T&An$h2Q!?98P3NH7hr~q`kkRAJ;OoX8UjFm_Euim4bQqY+$&O>?qV27W7w7+
      zKhYcS%i~qO$6lE+*5{2Cn4C7yq-Tiec#*^zaCB>c$;L<5QGU_j!5Ub-gSsD~?wur`
      z-A+L_+IpvpFM#r1Gz&2yU!3G0Yi!u$l^c_MseWU`6<VHy?{*qhRbmZnpv2l&z8Yrx
      znvzbwZhLW(udgam6FUi^!AWVUw_yg~00VO?;hGWdM&Aa>zY~(*PLud<I-ECBIp0Ge
      zzL!qGJ)x6$6QqAL)$@ZCWxdayq|*`pc6-G$JSt40<9R*bh#60&5!Q?eosPe@bN!>}
      zo!j0t^7&zGkuJ%hU3^n50)ShpN??+1z2wNz>uF+9Ns@2x;Jdu?ZY}TW;QPJr2ef>!
      zgOlx4J9-Fxe=7}ld(eAYZtdW%b~;LZP8UA{x@_;{$6*M6mB%}h{Ocq?i^yVonJ?ex
      zxhP+^i^|RSsf!xDp4S%@ff>mpKi|nOb?_fR`HzzPYMHN#UjwgRR~MJZZ=m|lB)^s9
      zcNgmS2QCBMkH4sueOK+^lKiZP_(LIm<%jqap@r=<v@F|;bn>%x(k}iCfWLq#g^T99
      zlKiE8x!b;U@z?6l`TkD+Ce`u)Ub^_ZS{PoTPT?}Yoyu<~0Pvno`TnFxhh$+{wB#Z2
      zGs4SFeX-EyJ9U2i?#Az8owR5R#%<vT(1t*an(&@P`3`>PBqfMw*ac+8Fjtpz9hPHd
      z+Fg!hC1s#4hrWUs+jac`@@;E6P@`ttpYQh=;_sH}+<d<RQ{QsE_SjV9>y#l7%`5~}
      zYj6*E2EC6M;TstSF*}RTMR_G|gZ)PK<o6|8a?;}e2~CB``Yq+~OEj2&2l0QIM)9k(
      zKfg{T{1*PC>RmdDKcJcX7pmrusFpvW75ooMpj^ZM1JVDS&f_l-Wqe83@>ekaU(;Ru
      z4L!i$(l-7Me+cnCy^0XweKGWR@d2Z3`c?uQ#Pyjx8OWn#5Rb*hlqtaeC>hFClE;g1
      zCuKP>UWuD0=i)ZW`7)BPl>PY;8H)|t{jrJz_&FKRf0P5Un#uezE**R!hw!&DMRIV0
      zn=56w*D_V|<p>!kN6G{V$$?TOhe(Z8(+x;}pkkhy;!RW~v4<!VWu$1RI+&KrC>zmS
      z%NxA6(>?d#!`jXk-Bs{mg{x$5(KzN?8o<?30EdzX7qmq7#ak5}EMsIp80+)Xt<TxF
      z{n7e9=&9x*TXH?fegws?)6zf6#dZ4L<^c}TQ5Qp-)8@g|a2e}q`Zib7kzSSf)oy6E
      zn%4bM)e~IfI3X=aa=-+YBM2abTZI`3oE2sja4XQN;T!RL3%?Hhwn50dk}|$pMH^ZV
      z3o8exc~B@ac0wv(*7^yZQo6m!xRR+mK$B?-ByTp7;)`TYtWIOxYV3)SECKbG(h!MI
      zzAUGGWd#*WGfj~=9V!VrQrf6eR?%!ZgIeWGIveFhayDHe=hC%uA>Aq$(MGwLHpx#c
      zhmX~$5c#6JV}Z96hv}CdhY$5kvH>ne4g@z1T}z|Aw@W-O`M?KUA@1e_ZoOc)!;A+P
      zu-m~eVab#7<dBCTLkL^r?&mb`vo24L+A8H$B~R0kE}0I3%<Pn7XSLHH@2jL!LbJML
      z7Fw!7r8(6YUz7ESEUY!fHMPD8H4jNGtYdLfmUMt2U9_`yLQ+oclzL>_?Yw8^?CML?
      z-wi^K(MpVIr}7_!gih@9Chj?@U7)+7b+p!<0iT#*R`KJqVjVI!#jE%+S>fSDXBR(C
      zJJ->`qT<JBr(#M?s9Cv=MtEImWm1|_y-(<p7VD9)%((7?$r?DOJo%C5l;q6q86?8K
      zQg2M{^l7p{JTJB>fC}JQRsi9mo~A-qRL{|xS?>FJaIn|){CEJYCQfovF0kbjX+xRB
      z-*1szMT6vO+FP!rv2q=am+K*(>mZuz={UKOjz>8ghvfBgGd0RBbe3$O%j7n?P1@;h
      zxr^?TU(&;}k$x@r&>!VqdQUddr?MFa@j>><79K7gJX(@mi1X-D*~-&p8`nw~FGaab
      zwsR8>l$%k;<#8CrU-8vAE?y^3^X)hg-YCxi>u0$Whq_P53ow)~@r&|%s}85bY(Q8&
      zbvPITe-V_0sgkC8Z)2%eF0mVqv#C^m3^g*?R!Q~yHI&jFaW~fM_WPEi@>97KdmnKs
      zup@9C8WB{rT!y+Q^$m#|OqkyO?X5uBg-{?EVRMd|W{xyde0g$tS@veRvMkUg*VY#2
      z$@QJGt}LgWoAYy$vff4&a&uCCzK*6LrOFySEh!s(rzYjjvMe*j-%fjNmR}C@AB6Nr
      z?p;U0{H(G-J5Rd6&%^wi<^D&1@%{VlJO-hNTy8rAeAC)_sD5v@K+F3Dx(|kS107hD
      zpVc8-d`Gs^YZ-vwZl`AyP|^ab=oe7IX4%>eXpjZe<(q;u?Q##&R-pJ+JDshN9<h*y
      z_kxt&PGN1`Zd(`hY7G|U2e-=Ox&e$Be`xh>l&dek4OHR^`_n4;Wx4uc!#~mRFF)ui
      zS$?jKCP3<E)_-@UtK`pFC5IU)3o7X6%W{iGt)oHtxk>pw(kI~V!)E9SZs%9}bRONi
      z?-a-F`dXi^!+d@E4gjMxegiKD+8u4*6sMiW<jLz^ZH}!Nk|%F^71_Qi1F&Lb?!z$8
      zmb3|YTh~3z>0SM<tsdZ3ccpv3uhkfjngMPS(t(&+E4Io9WdrjEVw1t8=ij<yXKkl^
      zVhK0!A^8W>ltD$q25C0a;bk)j;m$6?9+KUh?vgLi|DOsZPrgdZ*Lm_EJo5wg^?E!t
      zBnJLNwFATy9c-;4zmL|vZtHZAt}vqmmSH=*nb`qOIt4)of0u3>TAehMG^T7&{vhN-
      z_}@`9bF+b~Q+JGv=QP;4H%a6z^2yuemv_jK_u-oV1iSYET=QS3Q2t7j<s;a=ofMM4
      z(?a<NEtXH|6nr<~D1Hr&*3XnL;hw*u8|2?~i+n@($hUCA-_aKN9zprPX@?Pd3A4Uu
      z{Pb6YooN%KZ%i(Ihd*6p<LAL<5btFM^F%X*4>x%nGQ)YU*^?KW5nN~TxxtL&(@-{>
      zQQU%~*o4`KFF|>!e8AV>-1H7Jj_<+I=;Nl4e`gRZ;^1?qDdulYiTKO}8DUCgKQl=R
      z%|SBJ94v>ML*ytkMUFFvN|iZW=9#Io*c>5C%rsewa+x_=R+tKj8w4U|x~xTcrkN?{
      znPcV0CM1`c<K#+|*O)4~(NxPFX0F_4YUDvPPqvx)@;J(;%mR7doG7oDT6xbbmcN;$
      z^0}##Z%n-zU?OG@v&`&g8cd;CZVoh2Gu@nKLS}_I!8D?^*)*A$Sz}tvkMMq`X|=Zf
      zZ5-Rcj;2B#Sk!FTaoAmR7ARW?uKLUwpl=~8y5FodIe7Eo&o}Eq?;xzOV-lcx5F2ST
      z=>X#(==I}lq1b!-fJ(f#A((pr`UPljv(yYUgOD<WsL~8ZT@ZokD6Td`D3|ZxHxSTi
      z-97xW8EW!Sx0A1tH!!b*V17B|s*ncAeKZ;C9YzD?dCD`xG4CKq&Shp#GlB-1Gi@Lo
      z#7?y!l-K>_WeDheSeJX;^b`&Ua4NwD#(@Xy1@~K2WN^?>W4G(1Ylj;Rb!|2Idf;Fc
      zSYMHt%9b58S!=dzHKXjgMC$d$cI@&%2N4R}eC{2T?<LJXdZ2-tt!BR}l-T{*R}0;~
      z+qT&hCe1{=y`i5So6RKm6FWt^Mf_|@(j1KPMX%hr!|q7y&d2fI5f)nC>Y|%#QEJAF
      zLZfY+(2KU!#M)8wQ9g^`i}<~Q-y5Cg(4;BrK6LsCHn_;Fr7Uwg<(M--*0X4&IgiGg
      z^XWiy5glrNLKWtxG{;;)4dyC}nV-=rb1hwHuA^(rI=a!^NVl1rXrsA>wwVp|xVep<
      zGPl!<<_>z<+)1yQc6!s?Memwl(g)^l`p|5oo#r0;!rV*$GWXGc(D!?@fyHdHqFLaw
      zC?%R~%#mO{<NtthjXBC34W^3z^&M*TEL8Wrb)!w`7JeFgKwC{Yjx6=7d(Ua0f;3wo
      X$sLfAq@Bjyx61RTVN(epVy6Eevv||H
      
      literal 0
      HcmV?d00001
      
      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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
      Ne+2&M{^EcA`VW_+c&h*a
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbtUU2hvj6g}hEPV7u+2{FY$N!k)>ubVEReD{mSX;ZsSB4HGvRy=H+m9v$z4(oN)
      zh!-B<g<ruB-~l97NIdWZ_)&;+XRQ|2L;8R$?LBk%p1pU@objK3{r(4lHEhiyr%>;Q
      zWA}-7>^*gR(aBLfbVuH3;Etjrx9j)DQ4pUrhhgkLjc1WpI47m<zzh5C&fXKh7b_GG
      z_qV-6Utyv1{AD+eg0O!>VP+KUE94%pE2xKD_FB7=l;_#VKN@%^8-C311jCROj}%Hl
      z*c^`8G2*(VP#%usXNf`(Zh1Y0<<5VP-MZV^WaA=vrgn}W42}-ud#BNwDXk>!CgsJO
      zK^Vlh6@IKuZ|(7V`g_!By=a*K@!m{z3g5i1Q_OsGxbK%SgEutJ<4tN@tM8Ve@Rmja
      zMM29NvzQZfNu!jaw>8QsdPieEMKukLGg9Yhyo9rYu4<f1(KU^iu^_p3HC{>4dm4+V
      zNbY@&S5e{Fc7o8~9v|-c(HGv{z_?@B^9H+K6v%p#%*O}8NTG4c4l^#~$(H(lyfyLM
      zVy!-XG(3EkbXyygrB)Z~<+-N&<{6rUzz<{bpRBrmbnHj6S~&1VpJxq85ot-y!q#(F
      zGD%;aVRGjm)|@j%#&MT8)C>J7yCB~XWD+)**zR=t#HTWow4ZRw-QhUu`S$~ndNHHf
      zHMy5q=JCw%=4<4{5kxuhgNby5iS&Yrbb^WWfr)g1iS&SpbbyIGe-nB7Ci3hVg>xRS
      zv0oKX%j_eWw(}cacNz&UI9C%aIjadSI@NrF%TBeBV8y8v6I^jBvkB@>WiCO(sg@F~
      zI@NLl*Qw4YSaYg6!S!GGwH!X+^Hcg0xQjfRbo2&S_vp#{?7N92JirQCXrRr1yNCD)
      z9o)heE4P{5!G~mimrllaA9KYSjWWt0(I#h*s3Xd?<*u-oAW^7bkZ2@ow&ku+Q9+`U
      zDA<;}!pQ`QR%L@kt$Bk)FHQ6bcVg6n%P9Q|&ab%eGeNr1qDgkm&^j%6HuMeLWQJ1z
      zi@cO2e`zJ(vXU=m$zNH?x2@#MS@NEhe8);&$&&k4@@G8s={;ZhDI?gxN?xZ2rpfgz
      z`D-hA!%A*s$;VdmJ$iGx^J;d_-&o0;R<fHVe`_T_py#JMuVu;KTgh!J`FfW8gN3Yk
      J^TfoRzX1`iX!!sD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GYf}?v6n>V31k&XuN=3A2i;{3LB3=;CDqd<7qBb@d(~C=3!pf4QyBmb>PTTPh
      zbZk5Q(&@CFIvs_X&?z(O=!~7|zvv(7^f{X)glZWLL*CnYpYxpOocF+A|NQY7zyOwl
      zs8O&#n=3|dYYW<9G-E9loP5;QY%^+Gg=j*z7IZ7&<Sji2zk+5li<(+48@)1hThBNO
      z>TM&JHFYPSQ_wyBT2Lbjg0?Yz*tRnYTE|_?qGOoRi<&(<p%vE89miDQH}jb}1>4GI
      zRj$P<lP~5R-BO^$6x5AoOe1GFrxf_YktDC4%}?v~;AIuH2n4ZRLCZ_tLTE*sinr0E
      zATa6z$enf-LDb2tLq$F6LhzwYmhY$t;Vqf%RiUCmLDRUA)8obYDc!oRO_{o|&1W<-
      zsab}sy-mL}YuKb|<ZMUFWoQ-&M_yC05Z$%WQ&xB4`kjPs+eSVYJI5Hqk@Q#yJ?IOf
      zcT<8Aj>XKV=*K}SwV;_r{mP7j9pPA{O3Sj<NDznUU?aQb?Xlv_jBeH8F#RNA=lVm4
      z;)qCfRB&EKi6rZATtVni<s-~as2B#b6)^Q&)|qv)6O)6JDo){jDWT$&?Xo3@aO_q5
      z#Pb;yV>nA3tx(W&(+c`tMd2k@<se1`;k=3q_<$*J^5p;(Y-bAo8#Zlw5L0mpVcJsi
      zu_Z@m=6o#L&6Vh>M|}<ZjA<+|r?uhqSmdT4Tot9Rc{@odvxJK4_=rHnRB)i0e)&0#
      zRFm<xf|yj$wZ+4d*LgnYSW6)!ky0^%o36$r(Ta~%d?GFbmOh^sel_VacV!n%a!|x{
      zPG918##tn%t?IGjh{;qlT4q-F3Q<8c9NX%qo+(;}vvfAk*ShG8M5sm<Mi4B9$QF@p
      zzNX@~BqTubSd0>!sbU`NJHA4Zu?)RJ&#K)1zrvzhL6Y^kyr-D74xih5dfy->1&x+&
      zi$qnTuoT`1qQ%JZp&HYgvw;#y<cn5DzhFpXX|C$X2c>SYkDbBCZeGi-#3sktE@@ou
      z$hPH<>{lE^(ychw@uv|@yw}WC8a4a|x|J2Qtf4iviXAK1S()uxgO7W=SFp#og3d=Y
      zt)WwKBhCik#~|U3VkeH{U7WxH9ONig^2@gBIU3}saIdz9Xd5sg*YFf!&bZgqvJu{M
      z;fK(L{T{%mYYA*$M$4aQSc5`d2gsW1hpscB)#$2miMKB^zVQl`A#@|`A<a=Kp)#<H
      zPXDbG!}=YO%WH_HwhgReaN99obEv0;q3IGvOE}Hx=@QPBaB;&;8zI2DX}~1faD&f1
      zg+rW6<Pt&yiC?CB`Ai`0IsTjEM74zPWbX^admrCNY#Dn}@n>u3N%gMc%CLVKyW0IF
      zeE1Z};oA1v7wBxSE#bz=-QQrxGIq*YdeSpWPxe3m34#9SPj)|`IxTb=Cwv@N-Lagg
      z!z2XE@I1>pFlaT04wzJ9o_`$jOkaVivv3+VVm!ZwMK_EiZiopl6C_RaPZ>xJEk467
      zjvY+3#vuK~+J`A*+#A!-y>NfvT4XxD5o2EoGhUbsg{!%8ENe)nI#!XFjrEuw(M5o&
      z4iaLJ6((bK?cL?+7i<GxVh_F|mAg2GdoJ}JQli@mbqTM5q-1Z3Vb<_ghesW7Q1l4@
      z$ovT5=z2OPg!!=l8HFd;^iyQxlwPKj?S4uh<oA>QhXib9;YWBif<AYwCi*r1fw)hL
      zZ|U?qlDbdbzpv6bS|J+sG_EI_C@UH_Qf-^W`nf94fCc8D{C@B8M1l=(q8wjmEb6*+
      zt3_>Mwz_zyi(X``=K3?a{=!H5E1&KIbaLK}-(0SH>4|<ST*DQvogP;OcU-i^e*tmp
      BJ~#jX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2&rcIU6#k~WbZJ>Eg@Qo+Eg)=!jWI+MKx0IblB$O`J$Re06Bx4HZDyy0o;dLz
      zaKU)z;)O(_@!%ieU&3Djz8RVrZ_Fn9-Z$^f_r3T1x%~ATz%xAYkYkwJNqXTP-{%Km
      zr21W*h8fS|FjL*Ip;IN^C0g}8xC~>aD~x%v6Mk&(iAXaHcZCv(<S_&L#8A+(Bbw=^
      z6oj`K^6N5@`W1t_SX*jQc$<C}MK~DsQNS$*XK|@j08#rGLf&NKK0FK;QNfgl$^S$f
      z{Y;CFkK34LC`Ua-(z;2C?`0gz%(86{(Q3G&V-vu+U?|mPB0lswZK0aH9n)~*^)%vf
      ziz{jH;L_E*hGn6C6GzraPHVGwjlq-In^^7>F)c(s6dP$zMPf@Dt<pamSB!&rKx;ZQ
      zWsW}D+Gez~jUZo&R39PKCns_gmxCYht6wk{xaTMZg>#foF&j7r{KQ1{sDhcp3aXM*
      z<;>FDrT;y84m^j8RU&_ZQM|+?)-j6>JjH9O15?)mxKBfwvy6v$MDoC6%nioaA_jAF
      qC-{!i2|V`{6C_KheEiiy*ZD^E9E@t-_SP)BfBkO2&M<Gg7XAV$H+*{l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+TT>EY7{~uFtP-$jso6>MP$pnW2T!HxM3c=Llg*f1=tUu{x(O@;OJm=uE}E%n
      z=%NqMhidviFASiYlNY<}`y77n|2Yi5|NQ&~-~m=c2q=snl<TPvxsSQylvBzb*p8dB
      ztWB$2se4;q)y|bdFcbzQA|<|#Lm}YQ6s9vLvuiplWeKb+dRd`&#VI@9szNe;&YVP6
      z!FcW#><EI0nh3#E2*wlHFckVs^q^OvKjW0`*Y(n#U45I|E7}SJ88@FRW^+|X&Ml+i
      z9g5t^%>N3e(lD!aicJ`=vlM#rMYl$D<i&B`u6T}Hu7z;5yD^(>PZZZN62c9IsdKf)
      z#AT_=DCMe0{E1tMtRTisjEX(XDHMuM$?+5vrNks|t6r(NRnIQye(W$!q9kqF#1w|8
      zIKG=sSYk<vCC=nMj%+ur5TeVnn$DCs?{PTp{(jBo6}?5feBd1tP_=0gz?_MPT4C+T
      zsffaj#D>_HOgzQ{6^cFm$+OvCRpzt7Ms2zEYTjOVWFUhlS87(;f(gzr$W5du86>|V
      z{0`v)-(jBCX%C1s`Ge2Qcf`K(6hJ@UeL8a<1{N8+gp0HdH=}V013U>$s8oYN47Hed
      z^_i65XGSzx5(BJghN-^;Eryc8Flv~7gPto|*HViSNq$4DfolpKT@kI}8RODjyhxij
      zikr-q>eBpeR;MXre#$!IUY=3e1SYkLTe#igwJS4DSN5t)NvAUIh_A9a&6JL7O?MPd
      zv)**EI#qGIe5^HEq`s)IW*SHYe6a1V;-c-bMKObBG2BZZcAJARh>dCN$Y=wzh7Y`>
      z!O3P|8ystanT-4FpQwxRe{hn!q-4Q;mz|pQBma!vaYpa|*^_xJ_;_o)Nj6^hWUPV3
      WAinU}y@rJ|dh!IzdN?aO{^?(+CDDBV
      
      literal 0
      HcmV?d00001
      
      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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
      LYk!*HdGPk%6_ZVk
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cT~8B16g^W)7nUjrh=?FxqJ=7J3nE&?1X852P!s~u#KdhG%93{5Y`2CdAC1pG
      z8sn1>MiYa^NFs?pz#nBivu!}p+7~xDbI;72y>sX0&i(%5>o))q+}7X|7|7aXW5;}A
      z?iyC!%u1_Zr1M2%ZfPZMX9}Cr(cl+oQwk$z+F2u&-jNwsATVRumOCrZ5E@+<@Xu4M
      zqXEr9G$J6-nzU@WT+XMZvu37qQlLFq$e6ix)3MaNy6AVet&+e{vR)i90X-|-YE%Mt
      zsP-=lR!%NTlhMa&ixT!$p(+}!t*V|E({TzN8rlVhYestHF^Eo_7C6a(=L`9wBTFT#
      zV0*brC{JgC=*C%r77FGpYRWcK%1o|mI43ap_aiE?+`lt75!KOyK9%Y70!#lh6YClV
      z>IV>=)X|SV4a4=dktrQRN_(+pwH;n;TE~czj@Fklf{>D4t}l(~2rH>kPnwL=>$s9e
      z>q{AH1bqU&t!;sk+7<LmF;Z;(TYOYPtoMNQo}j?9Q1bUDT5=s}=8c4Uv8l3KEW4}T
      zO6-^}FI{ufbWJ0XNG(<QaSgXTKYy$%=NpdY$`#Ww^D*_x_4sZ^7G2hINyCglhu0U_
      zGZLx89jaCfWhW!m#n}grTFJOl`v<{FX9ogDp?U>Jjk5__LEAXCkEV|#KIj~ET3`x(
      z+&~Liup**8!C5m-qP5~cbW)?VpTl3!_Kt+#hl=smd&%DrFS+0KzOu1P6Cl*VHsL2W
      zi6-J9(MGHg-NXVhK+GJV=fPNbAH91A==azl*^tLBkd1ik5?RP&V`O2EUD*@l;~u|C
      z7V+2wSLwHM-zaYe#Cg&p9^)={unZUX@Dyu!jt#tET(9s5uetjc8GM5D^3qkgJ0@|B
      c|1%5B*>wmu?`dXE;3n7nv@zlqxev2H0h;cV6#xJL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivO-sW-5Qg80G0|A<2k60@;=vE>;<?g;qELt*Q0aXWm$;JbmV8M6mM6hOe}F$q
      zoUI~?2WMc|cjjUCowxVbIe-)NLU@GT%rxRrKFOKTh0K(;A}OZg?CSPnma1v3tqI{1
      zwtq9D(araq5S(hG>mgxtKX#nRrOCv&F15)92NQySZtqouC9JlvjDXONwNckik*M-c
      zCb=T?Vw=i*B1`S`SJST_bVb;U|93ecgoUaqzQHZ~V}lTlZBwS|QoHZEKQHV%8ap6%
      z=z=)eCfAVF5FRHG93H)3<(Xd|BCgS*d(31XYpl0EDYUT8ig|3Hz1Y=Z<)QllB}7>}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U3U{z6x}yXGD$j=Qrb!pOZX_H=|=>$3c+gACU&q%u&FJjN|`j1W-v`^I-xCo
      z04joC_~i1@U*Ll-DIhL+_r-st?mI~nf(?tTm6^G7&pl`FbM`s&*FV4i3E%|2SKtsh
      zvRo*KF6&qHjgYybFB@htlwMg4MdIgTX5N@I^o&tb;1p<=Mxnf3SPmuAmyIP$z@5&{
      zY_1vtA|<eEyjWPX^nx|3=gUS55Q*CsDf6ndI4j^yXOr1%#I)7~oGI->l&>`!qD`PH
      zqRqs|&S{BQaxywL5uIL?268h%FK5hxX^jd515=Gq*Q}DEuY@#-Tq~@Wt(5&D+&?Se
      zi*76#tCmSv3c3XL+62f?OV)N2JST9tX$op~1Uz2M7(TRMzluG0UZ5q=Kii5Ia8N<7
      zK;JXrQsKuT`XcCzfGe;N>DN3sLi*#yaz0ZyZu#YwKWC?X*oRK^$#BPLQK4Qb09l%a
      zWwP`kfS`i@ZFU9Hi)>m(q@2wfB^3i0WVrQ`zADfo!`b-@HJXK`mthqlyeQyVHmp>x
      zSYmmd0j)pf!AXJLiK6A#{S<{iOH~k9H~PGI1+OX?5$LcpyX`btqGVLOhEo*9lr}Rn
      z6<v%bCbY4HKxboo+tdypR&fTeGbcrPT410`x4~(+Is7+NyooVNh48gP6};y9xBBx!
      zAgaO(pL}{tMJs%yHDwlzM0q7`lxFmFo-*y2DlX~yS-oV+b@ipw%9)gG-&9kb)LSJi
      z;4ljU$DdKC%yLGzbe>v>P*dr0mZfe?Ql*x3JpMHGC(Bk{{!awgw4~i3wqRy3tKeOM
      z?ncFK+o+hsd3HPVIBgVI3nOEn74QeD>DSk-%B%=AScF?~0q-eT5IA59qKTb~_i?cz
      zv^g_l<?L3{<l##ybh+ha@JYj5&RH%F0Qnp7v22ElES9N}^^$3^SXGVG2iN1%pdlY}
      z9JCb6l*KcrP}XrpU|+LT(xJIRFuj#xHQ~ytiFN*Svc*1BQ38eJ(eruAOj6j#7TdAf
      z(!Q+X3V7Nh3tMT)o`9BWeqd9@ReZ!I-~qb{X#N!cpQ!j0*O*VeRMIzPzxOXhT5$uP
      zEBH*{SffCiC07>Zi|R0Anw2%q4}0W017~I4oon{W%lDlAyb@or`k=^RV{dbs$}a@h
      z+eW@rv0Pd*WNWc68@@-w5*ZFr67mD#!hZhUTq#^R;DJ*%I-i}g&3W&Eie0t+Hrnrg
      zY~9Xtf<v~0XZO<D&3h*Y+&(`4P0vo=7lZfE)86)nCq6Lv00$gsZ~F<m9-?!;<M2Hk
      zeKdF<#}h*>TNv6CiQ7Bf^BpJd;iX4IzvAUBoSq8~xwbHRvlEePcQFwhYWLNbv0oU%
      zfk|G62^okoXpAH#(FF|$aTZ50#rYh^DI_t5X<pCcBIdaZ1S=3}^)^=oOWQapc`=Iw
      zEgd`^#yPyhbV;JqRiaL=I&GQ{?F0hjlIGwRQi-7lm=_pv^1jHsE7*zjUBrT2&MsHZ
      zom0A;ysT!pxO6l48)CX7HL!(DoyuWW0!R~FhENO!&ax6YegaLrjt>w)-iANQj5Bl%
      z{y1$+LX+<<)6T)ur)j%F_<L{?1=h|<PeBy<<f0{~!v84!NUu^IW9@DCu^Jz2VPUpl
      z%?-K;cS4ro_7*ng2HV}Nn!GELM(zCov+(f)Tz8;OsMi*lMaN|d=n8tVj$_!s2sZig
      zxoVT~SAy2aj8)0Fs}*n%?oE8jtCZI$ttCiz@F4S7kK`jA;5y0Ou)TKMYj@478@DKI
      z&K2C=+1F!=s`$D^U$>k1`l{;dYkX716=FPD06SMd^PwV6*<-*R+l^W=s6rC>cE`i9
      PClCLy<Kge@5O@9qyDMET
      
      literal 0
      HcmV?d00001
      
      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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
      Nil@XD_(G-q*?;kc&Z+<a
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eZC4XV6n=&TlHiIG6|F565ru#xTJaS`<W16&h=iAdZS9gQaWUDXyPJT0{U82;
      zo}S}}Hh%E5p7yj~`=fgL%xoG1Nz@NLoXyPKd*|L~?%a7UfB*B_9{?`nhXC3H2D4Tv
      zwxgHzy_lKTvxZrSZRLxx>BLf8E|(2GW7w&p8Gv7)Z@-~aG-La%1Uk!xl_}UsJ#Pqv
      z7v+XnPPekLlxv$-c3j}_Ou=$o-E!CTT*(L`B;dQ3TonkE4cjpbRuCFRm!g*ij@T;x
      zOip(k=`x5T0t18`RY;;$$WcO$?uRVUZgGPnaO`0-6hWu7y>0GEgHR%#m|J;Tl=H4#
      z+jP}|WjG23oKmq^uw5rb$Qj+v@EnGoPZ+MA(OrGMVCQvLKy3P$R0y20bk{5!&8)nf
      zoNH}RJ0{&2d#<gw@<LqaS{l^6NUMYB)pZ>N-|InYqVpj4x762S3G^yJEqoA4e=B{>
      z2aSRg>6~eq?j#FfD6%HtpDARF0L}{>Jy=RX3<{h`m}$G<6t>;Ib(4j+>-4b>LcEBG
      zhNI{XVuVg)eFQN|r<_S;OhZ^ISz;koL$c_DxWa1jmV2YSp1V;h<c_Nvj>#R@y(jaA
      z`dk06g5<WF8jhn|&c-#ILWi8)*6^M;yQAT>r@gD;eQ!3Sq1V&SX*lD}?rHeY)5bOQ
      zp_>n5(X@<YDZgddEBaPWy|qGG&#mdUDc4nD$ArqJjGEMNA4@!7YUOTn_U`iRqj+*@
      zb>-2@#?l;LYW*WoH!|J{AC@&NA|=G=P~#hFl+^pEKKFMMz1fuqr-`S{#(j;FCi|L*
      z{zq4;Y~9Bu%Q>?6j_gWW?8+MMtl^|>v*?lp1uj%`UUJP`Y*AjWF&=3=Ul1F79Iu}N
      z%fGM8Lhi_^Ej1FZcf)9D-I_Jhd|Yv>SR#R)sK4R+TRTSD9gl31&*%2ihC<{7@FmMf
      zJwtYh`2CtDfGvUZijiwg#8EWqwFec#<FZ50k<nnFpU*O{+fM?>lBQawY2M5k3#tcn
      zVjHF`#~p!T5A5rf)gsz>WK9OlX~@ff?Y7|<ZU6<cQOk(6Q_<e^a#P>Ns;LoZGkHgY
      z>OS6%gV$jjZduO>98a@<xYfoQSDi4;=NoI5{{!9?xq2OWJb*o~6TY>1cVZV`%fx-d
      zOKM15LknllNQxwD!;;OI6_6^F?6e_oLZD}Vm*qbOiV1O+3?n;WH%YD?9b5&tYD19g
      z&bsv>t`FC(ySOGz)Ap2PWHpj!)kxx0;|cWC{GFs7X;jHcqG}|Cs*wb$#t#nIlTMYK
      zWU59|sTxV79NUTUEczMY99OU4=P&Tk|2qaYeBleJ7Z_^y=EJECfA}H=(W>B*6nsR%
      zSk?L(=QqR)+~POEZ<5~>ziEE6{O0*B{6hC__?W-*3cwgNTqWmUBY^7|!VQdY9>p!L
      zZu0jwCiypwJG7tTzG);egJsNO4RhF}<tNIc{O@D2c93UmSAz1f;czf~sDhyiq7{sV
      zyDCUjaKl%@tqLY8n5<xmi|GnxE10if;UyltMmWvO0T!5~IJy}7C}SOClpZ8-k~mJY
      zr}ScpJ?R0_FJk~H3}OYtSj8yuUBS9Sr+HYYS*1Tg%{qT&!mo2|<LC>2`ZEVFF|vNZ
      zqsfEyc<Sm_8dCm{dV$aIIdxyq#?RFw<?bg+<PDCD{003P+I`PQ{)C>m_$$(am%DxO
      zB_8`He?-T+Z<4|%{J-TnHy`II`e0SV53^)Jha^0Nu*H)bw8*kUKc<z*a@k?993tEy
      zA&xOW3|WIXf+D`6*DiXs;m~U@VY@tvkNbkvnLr6;TFETjrbcEV^a{Hh!!PmlU@q*s
      TT!d<YLikn%68Mgr+wlFri7WOa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eU3U{j7=9*AyKNdu4dJ7ruu#A@EsY=|5Jc#gL`z$34HgiYY^UkKW;bWELG;?=
      zjhEi}2fXmx161uf7W5oE$3Nh|@%YZ{Hc8XOR`m2VyE8lUywCf*A2Waa_46+PPQW%0
      zVK`E7D(Tz&F29$SMP3lnP3McH^yrn@tQubRq%S-JQHH*atLi>87{amKMd2|Vo@xm=
      z5v<8D#FnHjE(@-A9BsX0vbs!dlFpL5jZN9=GTPK}UOLjhz;JY6Y9s%0Nv7+3m@CQ5
      zV2&X=Mt;Q5hMjSABi;puXX0o_hkDx;hk;J@wmXh4#29u?Nk>dqih1G9^Smt>5>u|l
      z?Hu={8i$ine_56pj<t5RjtbG<<$AIp9qvn~FzdN@WvK0zE-)l5*SRY^UjtqdK40WM
      zXZW<y|6=$loz2dyFUvG&q%r0{EQz_2u;h{yUegsiNoKjni<!X&gr-&u9Hc~1zNBsL
      z6w+DS76oo!@(PuraQumTmMHnsbvki~;ba{@lRJy%W>Tib9mn;}yfB@LZI8ro0R1X_
      zM<`H%-+`ey-y=bFoI9j5u7x?W9mWh@Qk8?!Lgo0zIBaG_A#5)xK^P7;TU@6YQ4AwS
      z>;x~a$AUpVb;#=Aw-u01j4<r47rH@FhP?&hkBcQ<u^Th1&`7h199w9xEs_lTY8)E1
      znrKSm-|9e7`#?23hMSFeO%u7%t?Z2Ueaj-DJ`<~EdD*}#RPnkTsQYGTs$UG8rDSW}
      zPuJ@tMhz(w$9cTU&}}UX>rNmKL)*Y$PPMDo;<$)Q)DGQ>U#j@3OV!G6CVyL4e#XEU
      zb*PP*UDhcX^vM~$H9$5n!O-85S*>r!Fpk$%DPCq6Yt*zA`X>F>bsfwZc;lZ8*Lr^p
      zSxhOzR~YjD*>Gc^t4Cwl^>Q)H;4K5Q3}#DJ!t*bVw=qWvK*=1=FgOFPPllS9nbwPH
      zj#CTXia|!PeJ73_u2M<_M>oSKPpi`ZTN<5MU^o;iV=nWu8MJocnCd8(+?F4SMe6Zq
      z(BF+w+=$~nmH6$J?Ut!>dxEU0wb6Fnxv6_J25~*Bs7$CV7`E-dfko=;wE_yyuQ{Ll
      zqFTJ2SfXSIiblJ@o#5!IuOo89LVqVD-7=<KlW0(Nnt=z@l4Emj#j}LU0O}AM?_?v&
      zJ`PcFx6yU34N-MTp|_~IqUa}GQ0Pf_H+7MrbvtOZfC&8oyHi6e=t;2$=v6-n^^^Rb
      zK18sGe)kX<NZfXe5y&`pVggA_Vz2(D0k98!G$JTGi~R)8@Eo2G%`9p{Kyv5_jN#w0
      zV-*J$66OjHud(lFPhh1-Q@=)ZuOopQ8a+jHX<rpRiK941sA}#73~2I63?fB)8HO+%
      zTFlW{3DG;WZtZweYaZd3(F0#wGlM-<YrR!#z1l{E(9?J^v~iK1%0{HlhYp$pKCVNH
      zRM8@uvHBjVqMg9W5bZQQm6Ds$KC9EY9!+_zbbbk^Xy?ncw}YOisS;FZ|D=(M8c(g@
      zT<Sh9Ji_R?XlfPX3w_by6-=ryuOh2Pq|KWY@Dwde(0}qrOsh<|kKQMGqPH(PG<^Ia
      z=D$#(JF}2@cLmqh`l3JKIzuf@QaZ!FBuT#_3SUzid_xq!#aUW&5kF9uxlbAQ0Jrc^
      zyL2ibSQUulW*A(K_i2@qgNMQ0fq8n*6Lv(MY@x$Za{sh;_ZEdhNqbDW`WU01E2h>$
      vLad;$rsi}W(8RKusBsQbdySYsqLg|}oPVXD|EBq=Dj~#>AH!`LMR4bD24R#w
      
      literal 0
      HcmV?d00001
      
      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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
      BTOa@c
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_d-)~c87=FI?w5RO~j7iY~lfgvV4p$MGvLZq^#tPdy=-4O~*janF9@ZbTJ%xgi
      z7{WE0cqK70dLdqFB1{>P3r$QkF?!*ZH(c`<?8^Ckr?cw{GrO=&&iCVezxRE<=l${h
      z^7n%u0PM$mDr^EBGlfd{vUWwQhK;;7qZ`HWRDLepucwO{Jvy+zM}@McR&;o@rdSei
      zO&MlhE6<h%Y^j*Qrb=1w*Qd2g&K$07i}M1`!$!d{j|hwehMw)2HV2HHKB#LMy%bqn
      zDOQ*+E-Rf6jteM#1nhww8@zC1qrmY0=pi`nhCr(qDqMD8ksbt|^TGiqZ#rZY^pQ$_
      zN-vFRQ#oCrZK#;ma^qUbkn815#mpKcXZIRcT46jw2B)(Ed)Clg%@CE1|5k2bO2A&p
      z<QayH6<>i9fuYsGFPkM@%ZFn!7h;9EikYxBB0)<ptX(y0c@mCRrl<9ip0P9u*>k*_
      z*5^#4SSYL5MRug!Fw-d(uS-;Pl7KbiUf1)G-928sjJ*P0;>kpff0L+d-GEauX(s4J
      z2weg#<ym8HtZ1PX2(8<S75G=Y=*D*5(Wob#2e0Ba75fD`*SyaP@m?Ij>jLVGZYGTD
      z%#f{t215Idyk01ixrhfncvHn2Od*RtNq1f9#Ub<xxM^fiH)gUXqZtVH%QJ_)cuUG$
      zluZ~JGuwi<aZJTg^0=<}dJ#n*i%60!;0UCm!I%rj1^j)*N-k5_Yj#Lcht(rGGMcG%
      zd(eRsvepI#d^JA9Ijt}gX2uwWnMiP4#Yusk^@~_%d7YA;Hv5XXVriHaoAV%sA!%lq
      z`~+hB$%Ao$uBL+t8qMjWMpe&^YUx=$lhE>WIepp42u@2QXUKsxlCrFfJ;Obr*HZUv
      zB3mq(9waa>Pfkepsf2XzK@uqyY*)S}3}>{msh7NX2Nwjkq)CaXPm~N(mU&GkkX`0t
      zrBoV#Mw-j0zmBItG+HzY=F=s&+EYZuC4n7H2v?P*2N$8q%S{O+o`SU!g9g{NAT@b9
      zUqf9nja+z8D`&0yGQhI;6a@CJvxf)>CfAk~3hJrN{vp`J1m6vDl_4yrH5P;{6h-Em
      zd{Pn=U0W9A*l^`ulzUZ9(rjtlSIpM#&~QDfl&P|#S*0;B)X9*hr_3}2h<&qUB>>Z^
      z*;Er_>=lV(rIgm?TgE41rMq{_fMFL~6CV=T_~#>H&G@!hBTF2zb+vGHlTw9aDAcuY
      z9^O#<J!}eni%p+kTgds)leD*OjwhAP>f?CQ(YiB!4{hIAHn#A)m1n`e;AAgo!BMo~
      z7=o;GpR`xAN}cDqlIs`Xr%yTChV4WpXFG_<&fRvr$eo?sb8_s!Zi&s-%GXe0T$F(B
      z5L~G1K3*aOIR?17?>@rA{2aV}gx|>R9>vGMa${1d_Beb>d-kEb*V(RQdepl}`5X^j
      zy{<05>w6rr!RPo48y3)!Z0n!Lz$1H)`!2fuPM_PS`jqUX-{o^VvIjO}=|*j;Oj?Up
      zSM`IB$8Wg>6_wAI{<x(s`P5IBzFa^o+1g4-ZT4>YRjjY0dmg8H)dh?siK|@-<}upq
      zT0kO6Uj%5M$Jt)D-{p6U?{Kcyvw(|9zv}nc#XKgz=G|?OOqa+MaGZP$pcN;`aEzRt
      zL?=#>#St7toN+i!jWgUy;2g#<g>hstf%m!kkmE;O-=WSINZ~6sm<Jpm;R1eQ4gZWw
      z_?7eDF^R{}@Pwyj6mMfAzl-%KE+UPL6|cXbW18qX@h4{J$4(r-!Qf0GnjdkQGY2s(
      zU=}$>HA>5Q?y1BVM*&4fUZ>_9_uRyB2=DTiDiH)whDqsTW=sWFD1AZ{S5dWc_8Rfn
      GaQz=H9J<*6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_d&vR2%6#j1Wl9z-4r6ow9l>#D3iVae&*g(;?lm=T;NNGvSkG>?Y$)ovElNSi+
      zIO^cS4SN}999JxKfiu#oWpLxlKfnzeXIMDSuyEyu8S8gnN|OfabYU{{?!D)nd+v9>
      zbI!fL{`1pA0I%Z%6-@#i>3lhKRlBBDLPkzY>qa4z$jyfa^<*KX_YZX+QK77B)jv8`
      zH7p7^6NZ`7N^>QFrs;^l)^bT7)MvGF)*P*h#gu^Kn2|TkK7lj-kr$s#pF>7gAJ(;$
      zUJS2q6v@vPR*a?s69UQr0lQ(tW)EE0A~5<to)DODL7>?K6;2zL!DIN9vh5z&;b6EU
      zMqWQt&L#BXxR%K30xctjq?Vn~iiTXT2o*D9kfD9+#8sm`Od4l10teQyTuT#;jsG^T
      zqf5Y6PUV=3l$B(GQ~r^)6;LvZx|Rz?WI;so^JOz;3Bm!(E~H&ItHl!PFVD{EMLlI%
      z60-YbC8^JwMj>BPu}`2?`VFzBBGFZiidRU$y2)R)bCcayJva!zfQNWe{l>FO>fA8k
      z>4<a_^q>=m1U8lCjQR0`g_hC{d$F?L<v|E-jL}%FJU82@Tg4H9{p-e4Bi@5I@TP#8
      z*3Fo4lNGYVUq|Smk<;@fG8cB^ExfJbC`-tqPtv`r^`I9d+C?YBx{=P9%%(puDEA!q
      zpik<Y)J+;GGqVZrpkKwitfCF&*Mk8JvXdm)0(Sp&e<0$-kbrNXP|l|E2h9$t>aZ?~
      zj+AC<U2g2fuxvPXytm3{D68euAy$l$Plp2&D&7;=vl@uCm*Eukq&ZN?7K)>6+pHU>
      zF)H1hAwT{Ie{$oPKxf0o7@cPIF{7eq$F$^}o{DL?`K-R;B#Lv=NsJswC)1Xf^8#%R
      zUIq!hTDp<E>BcxF<+clK3IDV_+Knk(R58t%8g`!3N~T`);1Vvg_miZ<)F+FEDO<d%
      z6UeOaP-~Mqkm1G_s$r>9jTMZ%`Fy*rJt?eW=K0vxw4@tXkdUz@1!B*^s_|cUbTvT@
      zCrwpRmrWxZ8rDh~D_$m7-aC1LgB!d*1Oy9fdyRtCvS!%|USNV{B(5`krKHAYkWHe<
      zI-~T)iZsi6Rz5NPlvOxM@+R9|^H_yn7a2`TG-+!zsm}>*Qi&J1sml#(qiE%x#oXws
      zfh=ATu|m0+)a5(Im!Wp4cgbpE$FOJl1UK=|x5Jw8U9m=XHsp=9iK|bkRX7HNorf0T
      z3AW$I*5LQp`UQ3c9S_`bTg$d+Txn^E#_ij%9KDa$?<^l)es^#$5T^Iz^wozJoIrrr
      z!4B!K>J=|xCs%Uq!!DjFXS>lxRC3l%L^eua#vV#KD06V!i~SN?Q#W5ij-pipx<hcm
      z&IKGG1UUvMd~E@TM-MHa=XM{z$8Ps1Ud3MNv3r&F%ma6?qg_e$sCV(9*Z#oS>+JM7
      zf5eF<c<o<d^Ah&PTTU+G)X%ma*Ih(?4zJ6rdX>zK&*^p9E8UFtqv}+du@=qF%EwiK
      zeMQjxOyF1%?5unoz2y@0q<p=6@0PmkRli*RYze31%^if>YU`3;#roR27BSMRE+HCs
      z5U*4$;%u*T3FC2sVFZhq=ymy=K9~3b@m}{5uEc$+&utTn(C(2cM#Aq+k_X<YDhAPv
      zla!qzt;3`+LV`zd7^66fF{b4#hHwrs{x9J?l9)gRllUALa0hXG!}Yh6FVOZOF5(wj
      z{l@VTF5`E0_+!lA56+)J!&4-L9Vsi(x3NX0=vksUOF?H!+wnJMktWLh_zM{rOmq-`
      z;wonfQ9Z^SXLe$Hge=o8i|7;NC{u}Z9(fd495X~UPnnBWNAW(2)IQ;JU4lvNQx;bl
      T*We<WEx68jWLe*^xViZ+S3STH
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-*XdH6#j0LW|PeV@?(+kLjs7TDG(41*g%1_&<2{ew6$2O!Zy227B)#I*+}7m
      zCmwv_!6$Vb869WP2WNDKY1BG8yg5Gbf9M}!{q6>nG#H05GueChp6}dq&Ub$7?|=RD
      z3xMNr6!Zv0^QBtirtyKXoUn^V-m=Syh2m0T*vgenYicBYT!FtUDxIBd04oB4({{;r
      z2L-aRv46jl=!>>vjar6jRZ`tSnbKnU8K`eoz&}J!RQM3m(2Ib;rZKx@jn|3`R%OOm
      za4dl>W96LT%o-J2zCSzky9K){u)m9;R)i^mp2dQ|!7j-4eiLl}H@MAz(qei{3XH_Y
      z*3(>dE0$4AWF+gE(o)Tx_6|~g9xh?rb{iQ<q-%?dR>d+sB%M_+Ea$8x*DjZ;3bqSu
      zmG>r?xXeUTqF@I@@0y1uPKCfu4ZE;gAWVPENyD*Rmz-w)x4)T^X)O<xopL41%sDA(
      z;}s2i5v7glEqiIE?1dr_e_<Q5Azrdy!vSn20d})OR2;-11+NJl=o)M*9~xrl6HxM&
      zJ8j=(klSNzY!BN-t5hYe^tc~K6dYz{dECleG^HAjA|VjsC8L&|FSr7}Sl_VJIj-S#
      zDGO3|)i&Ki7;hk{;7u0S3ngE}Nt|NI%S;IL#^%#~nIHxPB17exW0nrNQ7MXgtr|5A
      z*Ep&|$7$IaX9V;Hp9#k(<r6F?yOdA$%_=xcs+)m$x`}MfaqUTa*>Wb0+%3zTHi}D*
      z<t0qTAkNDh)1)ev;ZNQ%EU>5Jj$ztw6leO5%N8BNMX5F-)#lSuO+^Nm6<nfg9lBFS
      z)wL=b#*h`*mSa?|b+ux<vVj{ifx@$JTCLFLWva7HTHdsYCd+ooeZHmETS_UI5ZK+}
      z;kvd{F^(%TxG90@=iF*5_D-)lEM05JYp(4iMvZF0i<dc)Q>7$u$P>3lakm*khL`?n
      z)M%&4&i)e+ET(NOShJKlOay0{$nbxgWmol@B3R8C>;u^!epzDlZJwnd?y#_B^|hfK
      zPGU-y38@xIVarCN%G&cqjJY7Ns}s|fH;&7SR~G_%J7FC}atchBYn7ZOKPmhsw8r^S
      znMds7yzucm2lQ~q?*^X=-!eRv=SsZ)a2>(#J%GxmN+8&N0h~gZyJ!Oj4IB7I1#HA7
      zULtodVY7Gb7Hs9Zjb{O_I$oA0#GibVI#1*MD~M#}b5Hy+_O0O6@gpmUKS=ty9D9)L
      z)q8b+A#gVt(0ln*^uW)-fuQd9o5|24%;`!})z!egPq0x}6<rD3GjGTfg2Mfg@Q*k_
      zo9aVsScN{f<*hnWzxtBeBW#ZZbxjZHO5sK%tZOG`?rVYv$`@;Y+z+kkq0iR7Ud7;?
      zPg?iaac&^AilI3w1$=c}7*Hdjh$?=-=s<WC<8y~2VV|gD@;gS<LzaLA?BMeZqZ}kt
      z=g7f%>_nQB4<U{VIEITzViad_i6@uwHnNy!{}eER3a(%oQ}~eUN5p(e=|jxoE3V(*
      z9n>+0Cq&B(d`X_kVlx9zF^w5!Ab{V9o~1Wiv5KqI^3ncdYF>k%UVKaaYfO2Zx4z3=
      zfF6C0_qbE&*T;At*Ac{Nt~YoVqK^|WxKpWjlF?nK^&0jd$1{yy9fS#sxH|K@h&*vm
      QnBM|y;skEe#~$4J8@(ZObN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%lJ>7(EwecV>sJrO-hai*BivT|lP%aN7d?wNPLbO6}sBiir%&usgcUlHJ*s
      zYT}E1@}aNB#KhQWc<6(g7>JhWn@LUlm&9{t$wHH^;bHIG``vTzcfNDJyMO=t`yT*?
      z@xF={fwKj_W`1Jdv$srd!!Ed9*<9V&G^gFQvg6*F&5n$zPy~`MhGiFS*O3*0=%nX+
      z!Bv5U)O=I)j8}5!T-$Lg6U{-Ezg|87rSk&H6shQFMJ$d8q5>!9J>R`m+gNogOZIBX
      z73i2Rui2%%UGe1lAgBaIuPSh^NunbqP6)KD7X{8YfwIga#0mEPAAF<$>f(f23e2YF
      zpBK6sR9t(*w50BqzgY`%VPGO1;!OK~Q1`^l*4EeEitB_(lGSf+t+|_lSN5wax&%7q
      zy(X=*78^S%UJ>YRYD5F4L!dj3S8+z5t@^3Axl|6*2=pJDZ$8FLUW?;(oFX}|VV{n(
      zIH#hQCNw2-s8t+q;JkoZaD$xp8C~s49Z_Q1+i?9VOP<ithqQ_mZ4c{~IyH9V=*NIS
      zjF-&0UZEHWw5HP2^2}Rt49Pu>dmngCP*ib2;7sF=u>YUeT8D`d*>$7zF=bg+I^Tx3
      zaZyEv-Eu59<G6&&Y+_pN2t-oL*|epBCMKrJwUXoa1xdM;46`R4JFtgz7`P&{@-Z28
      z6U>tB7fkkt=NBf@dCBW~95;|9uc{mHq0&7`&{_^z${zIv`i|Lg0)pgDANE~CPZAYu
      zc46^%pZr6bH2V<x0@-*-tFGC!OWLT&qDW|2-tpjItHdWPW8^Ki*fhCvt+M9IS0>PY
      z<Y^8`k=aJHk^fpi3upWj;HYwCF)HI~|G?lbv|mDi&QT{2xIo}A+Bi$rVTj`dS3H21
      zaFUnESvyXJ*LI+j-_wjm`8DveOd*~?3vYPVKd^&D|F7uTL2_Ym2X8*Q%5m^fMtKVJ
      zuA%fOyBHpi7)rDl{o)&R%89yCUpm`R<t!5=uDGX<t38U7(YEoi5#7_qV*`oUZy00J
      z=yy2r6vo|-@m);**_zR}F_KUX-OvoBxRQt&dbBuN|0pY??b_BsEW$<m*2>~TT@b8%
      zzyHreZQszo-G7{jw6-#7Lgl!FYl+CuEU<+F0Ux4^;~4eKP?n1<{}Q@!nQD)tm)|~2
      zVg^@m3)hgxb$rBz^N>Xq(|CZJ_=>w<V-`Pf{v%^Q5w}ZE{=z$<WSe#28lpeL6j6e?
      z_IP53EIP5n^K&$(o2M<#6lQ(Q^Y4<?48FuXV^K2r919#(<ltbDF^z0;xQ+J^!##4n
      N!<hUl%Z1e~{RiLescHZK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNU2_vv7=BKZ?k1Zc^0C$MApu0v4_FZl*kHl5&<5I4+FC62qucB@S=ekk$wmqn
      zT<MHgTzI99GmJAjjCVNWP^AvuaHUsV`wRRN;&V1NNrQ11o9XU3@B5tdzVGvX>~DWP
      zd<5VauB+%0NEW=Ban1bLTs54MS+Je5u~b?yM(ljqvZqJ0Csc$xqOucHbznt6Iqi6k
      zKO``b8vpk@i9YYR_Lyy2b|uppl=GI$8=&4ff$%Ur(GWs3j&3LdTgM&Go~)IY?8>aU
      z<k|w;$IE%soii(r+;0fOe$lB49Oz)E8DU1CYq=<Jr~`7d-vm4V4Q}zDv{(U?0;8$%
      z%`{j2ifxvRoMb)ct<?OPK#=JTaE5uquV=)_)|Qv;ifsi*I;)*q&D$%!Q}(JVdIWaJ
      zdkrQocd4OK@iIg2n1=>VgTSshc4Ln~jQ&_trfd5?InDiVe{-H?uMU^pa%F;<b2HM$
      zD{<^Yk~XT>ot4>g5Q;$GbK97U@{$8_9K<#f;4~^k!yz12@tVNFj=?tb5l0HW0&2nb
      zXPjFMvM1HT_J~umy((#?$Ne~>Vt|zua4U1s(8h5ThCq~;jM+}1=nI5Wy(99>u{hq4
      zx(Ibw9Lq1pZ~|!+Z?d?aEBSGp#3`1%%!EL9Y9ZU3i(pV7F<h>>mUq}sN>wsw)ud(m
      z=1~ngPRq`CTR^Y#X}G3WFj!8GSIG3vsW?Nb8-WC8jftA;J5$c8?M|8b>$WvxmR4Ll
      zNSKBpyd!VSlB!gWfAWqIfxT^ajL?3)II}l>w&*a<%VVSR*g{qw(~!eO6&L7Q+u3Qe
      z>f4n##xWtVGta1e`%1;}WdqlB0>zDRnyt{{Wv0DNn%=airpk`zKig89EoD?(64=w`
      z;ik6JFp0}DxM_izXWVKj_I9t@EM2YZYrf+eV`jA&#LFDXsp1J74%E$2+-XLT;gx?H
      zHQ8>mz5fIRi)m*Q)+l8T6Tw*~a{Rx+S#@KHdF0HDRP!b~L3T)378$);U@?fB8!DFr
      znA=s#t0gkmyt-aot!X00S`ygZj%i63Emwka5ZKoaYvYg2KU1z%^0xev@Key7;zwor
      zu%BZh#LpYh#T7pne5%~#D3x-xuYX_-ksktp#-~Og*mVj{A;wj*4nrJUxZ?r5fUUel
      zu3p5p;M(oj!S_ze6ux!5Bu$7vxQkQvq_6)05)<;dx9>;ne}Gpfk32x%ophM5*YBje
      zb^gM)7sI#GimoWPzr<EuQ5WUXx`%FENvpb|hl{^N1|xbnY^9_3Fs!TGYW)fAXB?+Z
      z^)9xoL!aON)*3RuhSITn=t)HMm>$)Y;$lM6W5;Jdi3tjnZ=U}7N%W~6{rc&nbqvji
      zXg#d1;p|{^9mDfH#C<WehI4~jBAU>|PZ%4Ftz&Y2AQ20RHB8-SP+cSnxQZS=GYs@J
      z$r>UJXRr%r$@&NeaE=3DlntH3ySRV_Tttz(3Oi>Nm+%?ipHuf0F5@ny@h#uqV-^pI
      zevB&t`CpJ~64)UB31*03dEj@V=IF%^JR<fzCTSPeFi(%dw0@t~t}@#L_zv%LrO=Z*
      z_<$>w9(;-q@ev}lIfg~bqC}sBNtuQk_F{>$7=1}04~yD|OsI`zY9F%*3XCE~ADn=N
      GYkvcu25*1>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNU2_v<6n@_3W0NI_1-2SKB!EcT0xO~g8!XTi+J%0ErWQ;6V4K}03!9{qY@|4&
      zSIl@N+>TIOA|5SI+1R)2L-|xO2Sd|L{*(pLbJ}HW-KTVt3y?=e*}U=Q-!R?;n5t
      z`UJp9+*HsdkjR&6`c3m=b6IzaX5Mzn`a*F@AF*>~%bp$`KBFMm(Q0@i(=e<EgwHx9
      z#~TuuNRI!zPg-AcTzkwmExVHHY-E%c%Ns_$vjV|1k*EkD8bb(SfgR&c$)2ng7wpQ6
      zx!~FYJIBj8)15Udj{M&c2EBq)6*$x(P%FcfK-XeH;7A9{t+;9I{I~HY{G`S5nG_gJ
      zj&G&8>Q!vBs2h@XqqJ1>vc4eI>)Yw(ZLd)geYm!`Xjg2@w<K8g;&RSj@|<$1s-Q<;
      zm-MT%aK=<qqu^zx-mwl%I~4+ZV%Up)0^5kk%9yV0dF0gi-*}CZWiO}8Zn-kS%DE{S
      z<CPc=Ai)^bTh7u<*-u5F@3~{lM(N~G42RK80-R=ts5pY73SJX9+%ef!Jz_|rS3t?z
      zUe@`9N%kZ+u|47x?NXJr5^+C{D>%l^^0}3@Xli3P0bL+UCu6pgFL(lhWbcUFb25fE
      zq%K0;HOKM_+wdj^6uiaedamNfa2jXW^0E>Fq2&B<uMxqZKs;TpxmM|@myoK2KdK4K
      z^vn|~G@O-_@s5Dj;8S<aQeI~}Ii-B6cUHkUf&OM9{$4#xooi>DW!ue|xm&iCHH%BG
      z?N?025H3iU!%QV<7{<IIy^IL#Z}T!j1da9_zT<I7)3_w}jgn(xH@HoOfh!6w6I|Qg
      zX|w9tl^Dh`A+S5gygd6_#qs0_H*^Apjf7gmunA_WeNb9xHmNdYr{q05R9hpZ6if;1
      zYeTqY@Kj9Vs!VQLAo~ogP3_)}sx8v>hQ8)Gu0Cc~3x2+=k~~*R0!Mvy>oD$gN|52D
      ze?~RY9<qG`1q9n^cgw8V%sfs6Pcvcgxy@=<b0$YXjz&;+7eURl3B;WZmCKWtzsr<Y
      zizKY&aignRO(aiMYe8UdyUnI5@p!EGT_A9v-K>o^PJOmqtK@8Xh42n&9p5Kp)o_sK
      zLxA@h(8U$+3BDEn8I(%7(${~ij>u2Gfy%c^LvY-}ID>6mB^qXkVLSi00WV+&oygUT
      z==R<2#4dh!Qx@h|!%H%RSVPqJu-4bVg7}1d@9%qrgDZG-^7sn+?hOR_dHvo%NDGBO
      z`vyC-ka9yVt%sm!AgqP7VBv9OP|<=xYasFvX)Vm(Xn#EV3r;am_&aQ0g*LbI?K)Dw
      z1qRfI=!q+usztO=;YK{Fsi$V{s)B;hgY`e}M%J~+x9d+<F*FyDzJrg|xj;A8r|LLA
      z7+FPnj+<r7Kphtcqwz>QDt^Y;pt_35xnprPAnM5c$Sk|a5^x<oe5aW6S>`!J4$ff@
      z&Xe*qxf{U+T*76HB7-q}K*IC5f+ENIQ+_|E?mnjQCADAUDjsnCJ*H7d7Ekf6&)YpR
      z4XibpU!!h@%!lziEoO;g7gli%@3BIA@Cb866lC-tFwa$p7{0>$T!o3`3nKWCRT(9g
      sk0^^U?rGehEQ*`h50f&L2$EPpj@mkFXu+oTDeJyS?DDoM__;fO1AQ24^#A|>
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?N3`(9DYvUZeK32$vUaq+;nek8B~0!3KLx!gH9L-2ySf7+xE7-tZ&}l4&tJI
      z!F@FGn=vt&i3#!B76(LK%#vk(7=MfZg7Z1Iw9qOECEW8nzw?~m>vMk3{`vh+00Ynz
      zI0R1QO10RMc3WGC8AUCp8|7H4Sc#36(&dakGnN=o;Mx<Fn4GQyO##1A%9h7<Eu(XD
      zdgA}h@<Or+8{(y`QPB5s=~5HMOP+EzTh%QAahaR*M#->-1t!CL``mSXZ_uv5BJ%>S
      z5f;D?C%RMwa6rHrj?DWY@PY~jUMU??;fBY}YRX?+s(MuT;1}qcFiQHBS}~=Yb6TpP
      z^V&o?trg}q(~$dZrOV12Re@Lch-#+`Oxuyo^JDPi(e3UC+zn5(wytWKx>k%OWhbX<
      zR;6am+M1y@Tv4~QjAm)EWO8b9TW-hj$hPwzy)?dH8kRn-nObp37Rx`nlGZDhQ7%;#
      zoD}GmVa3R$<W%#-htoK#;Ece@eUL*%7!d&_Wh@vOi%E;5G|;Q!oYZ?$#<*_e@|J>r
      zfg`p%ZP}`GI5usp=!G#;OR@ZZyoT2m3<w-<tyLpG6>s28fde_+n$b(7ub#2<ChNly
      zyKb=^%Poi@1#y9+ZO#+5Y_@5{k3PI33G^<btar<{R<CT5zeWB><|S@O#d*BPV&)jR
      zodT&r)?EwWeOyrRfxwy86!vPjiUdXk+{>~{T*HeA>0%UP3NAIeQ_xDeShG7S#wE$S
      zDyC5)X|(jMIa5pXvM3Aen`Q!?^_Uu@5;(OV>M=$`(uxnL4c_PyAAq|e`6h6@9nwZf
      zzTK+vh0Oc5R;bAomPi=0ygX8_l{hw}m}H|@1k{37wPu=IPs*^0T7}PSG0D=Kxs((W
      z{8VxR$J)uTn`ZKXE)yQCgIbHrL;q~KW~OyHiCE>GhutqbidQ%~oSY#}xa3Ho<dQ?i
      zUO7*=I*15B<+p>o43QFlIJ$|>Xzw}>M$fIIJ9-Ggb-eh%#)srNtpOKkEy1}of=*mS
      zkUV&a+7opPID(_xN$fFt6t?s-V~`$?6XjrZG9Hd8>0A8Gcsi-say{}6s?mq&euz``
      zC7O3-;%-;m8+32$GjU(g7x%ZJ9{C3Yf1vMb-v(lj@s`usdL9Zi6q|T^up`v5fx!i5
      zTv@|-C=m4Z$2}p{8T1^)^RK>}>kX;DVc3D7ciYH4gk%H_pW6|v!L#ZWt3I)+h@cX5
      z|MYxw4gR|Eiw~GwFCOCwOXGkn+>%|QMV9Y6dT@h9`V?nzlc*Gikw%g&n1RmIEO%+-
      zkwXavEZo8!6mb`2e2WTxfQcVb#V<U$k7fLd6>Jdqgs7+Z63_6p?df}T$&xmku|*G;
      z?PhG@LrgF#c{+(JcGI>ng=w~=hxR@~gi+pMR5O%3_?+u3C55)`V~&!Sk^hX3Dft-x
      rJ<L<`6aNhs@Cixf#$ULKYa~}5i~PIJHb15I26OIU3^(c9fzSR0A+HRa
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OK%%h7(F+Bj31LnNnK*v(w4q#r-=y<14&7#(=>5OnvevCHc&dY$M&>-F&;Oe
      zMHP#vdjty>EMOH75>ipq2&gKMSg}B=U_t&2;oNa-Vnd`@^4#zH?z!Ld-22<#KRyO9
      z1WiGQz_DDZ7QLa}(pI8IQOoH@Ihra~qT{7>Iit@_#D`)EoB~Jx9~PgUts_kVpHa$|
      zCv`2OQ#m=c>w!cQHo`+$qoD8M(8VT<hur0CwyIkK;u4j!M#->71*Sv0$J}vzchHW+
      z!bt(=7(3vD1Kle8=n-&)!bvX#o>HN}Bc=T+TyVSCPWg*TQ=bYid;;B5MoGV1E2eaF
      zK}!{M9-AtswL(%e4XJM%omSqc3LM`hs~uxt-5uFHKL$T;-JXxYz0g$a@T!)nYsF|n
      z&T^(^Rch9}Z5e696?IF?XqFaDBxa_!<#r6WY(M|8OXrKGVd=A)sTD_Lw|wI(X}w|@
      z<x*9_ae-c$R+MZ?%rtkrIEm8=PO;uSutP-%VF4v&EE*Y$MT>-V(68c*w0ly<q;BN$
      zmV!ZngLXJ=*{ZWRI%}-xg$YwjvHw0ij~5gS2^?tcRii!?FXAPEo}6yY=_T@4&)9X7
      z_Mx!dx9Go~TM#1(VgiTSg2!vwY}1Jk19(+3=rv|ppO)>d-q{3yOZ<nE5;vmaEM8|b
      zbIjZ>f!rYNuKIBf=M}smaH_S0-NvmVjxhn(vYZmv&{AB67{`Qyi;d|Nv{EkGoQ{e~
      z$@1=sX_QDBEq!yr)Y3dG$^v_)nLt-Prv|A6PV9wx%+Zjv;tgtpH>Si3;HpTz2^?vM
      zv=Ne*w`$y$b>GqoHCe(962>eqkCkgBz8g|ZaL_9PYC)@7b4}HqGOVIj;Wb-Iu=Qpx
      zCB-;Dm7Kugb~5awnY^IOga_)N*5-24H(#!qX<a@=<l2s#Jt#+tV|+Xud_^2^%14Eg
      zQ$92H$`^%e2N8a#{B}~y5GnBoA{*$6^si%I<jgvHBl{6p$J6(1d{FMw8*rZ9;(VFL
      z(1i;KkO<GvdbI8V2XTm+#2#iuVN1_42O04QQ60=q<|FW&j4ig9PZuqlu1B6>HSz$x
      z4{)NsMDor|%;k)E0<LX)Cgu%zW4<=jBj2$9Ck$K}c!=oFc-i4--4FU3h7G(j+!^eA
      zh~Y&?Oj$!R=nr@YWA32p2)OrQ>+UBDLDd;>_jqpCwf>;`14cU#@NB#M5<!_yBZKXH
      z*5F?Ch*hsxRYX7uxW3x@W(~f2s0;U5YCnF*6E>;?vW+D+30Pt?-$ftZqjn9a@jg*0
      zj3SK$2QmkpyIE>!<dNeU0~T)L4vM%(?K4#H1wO#nsN!4hY@mk6Sivv&5Wf=p1RvoK
      z+{It`*dEX4=$1`xj%SlmF4^PR#G9C6W^#8Lm+dibVg|DuQXl=jg)lR{L(Ci{H)CGM
      zJSBy`9%F%$huMFRw<&p9!*@th^0AUnv50p_GZ+5E6<j6V^2}_Bb#*c~7c0L;Nw9KB
      H$m{<A$$=9#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OK%%h7(Lgo@niBRsY^^-+R~TpG%+p3KvDvAnkFtu6Oxe71`1<)>`d!d$Kxin
      zsA3UykHi9r4P_IFU8N>fAwu1-L6wkLBUP{<|AKPv_(5!l6ic4_ecwIzd!BoL`TK{T
      z0Gx)Vz#(uXSFFaaYqzwOm{HJjx>1Uy3gy^nF<r{&Gh>M}XBD^v4*x$aF*#jBngV{K
      zm@SR#T1KaGd}7A~$tG-whq6Xq-^HPeO&AY(O4)2hw*<r`D(8%%VGRpRhIfv+?fA~1
      zZHYzZ1zaQSfFDkDsR*E3z!{Fr`ylXw3I$#%?N#B1$IW)iUtF4cRruf+=$bH!`sHdN
      zrJHkFDzEd{L@BN1=QY!idfn)<mW+zP(H*kdHU`%1$S(0?@Z-_#`3T$#PqYrNVwt*D
      zh$ZDLr>a)DYR%e~p*CDWx3r9AX|ZH-YO*f3W4LAe`Hx*XUoZ_zpVmyRFeJO>A6-f7
      zWy>fPD+-PZ^vJYgWK(jgx#PoeoK$dv_3nZlD#C~eC@EvX$XF~|B&CBs6{n=#n=;0A
      zBe!HJ7!cTRhtrm=8jEAo#)_UFGqn`^@5ie+qu{i_zSdqf>QnI=&I)wrbZbU0lD~S!
      zuA8(EN9?}E{`K5~7*Y@yIM5b6QO#zXPW<S{o036qG0WPtY;U#BCiz?BKQb?ILn_YU
      zZ8kH<%<U4$4btvv0Po<uf_DW@w3e{bxK$)DBH&(@Q{oz4Ovn(U7*lYuF`c|t%*C41
      zQ86xA-c>e@B1xmAZ_JrmnukS6VAnJg=&a?`AeF$e-B6D?8j@DLL2dBHlz0K$Wyv>z
      zL+y|@Lh|xfjN7vATUx#<OSn$Ln5E^BQnko;LyAcbdPP9ZYZYszsd`d|RnW@3W{XL-
      z-pr+>nBb?J6FAsThV3+y7j&8MU=7sTTyFYjOI0(i%cqE3+jg@D<VbOZkB5`5h!ZaP
      zs8DjrXU1OnqHuK(5rE2X2ek~562C9{2%XWsb?k|rT1QWGFM{iM@qvvG$$feQ&eL0h
      zFVhG*aREUR;U!uR*F0c94p5WWgN!I_>1F01BOW5k!R%x{0<Xx}jy=q$la?*drgu<{
      zK19z$9IGwSC08cycE!Cxcio<e`+~l>zYVqN9}N76{ww_(h&{pUPG{?WD9|uG!W)Af
      zp^gm<E;!@L8Zx0k&^HkGgj8qHvj@-bemNIXT|rN`_jW^bQ|qp4eIfNRh8+lc>jAz+
      zNM_f_r=Hy!JgZ)@>JzJq2r5DM{pa7T!Cwn};Q<Tp!|!;;wmBf1YT6B3WNSY{FFs}i
      zui+#<Au5Goq><!!W}tI7OD&Bh<WPhG3pa2F1>B?d6-xLHWqgmD*gyr3x%)G!c#0ML
      ziqG&H@z3x%{=i-Qg)i)ZeT^>J_U6F080nHdur0iY31%mECvn*x>=vdl&9U{;-}{I#
      z+dH_*ydoU!O=d7lNujT&n4{!n1yAq+B_He9#5^TGtGSN_d`RNC@h7hEyvk~pvB=sw
      Rn46o`U!x>gy`<=;{{Y2<7&ia_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OKcle6g|(sv7O1Mq%JXSX-oRCohGIf3?!w1(|lZ#CL|%DO-mWuV`p0b7>|>X
      z0u@r|js+46mcS-UsMNH4D#QW_sS7sjDj~5(s>*_FDd&wpB!)<_<azhrci#P;_wN1u
      z-46gxKvUolIFv0^qF1y<Z8>V>wXALwqse?JI#fs%)B4m%{NytVTmlFG9~K{<tRhVT
      zzfs5(M|CZ&Q#mrW?SVuCHo!v}Bd71+&~O9BL!M$LQ`Rj3ahA#{qhMI41;#_$$J}&$
      zd(fuD!m|RdL3Y3oC)!oCphLhJ3eWl=@R$k(UMcNX;fBY}cFJE&nz~f@;1_5gGYa~-
      zN<OKZGg>mI^VnE1rR8Qd(~x@2=&}}!vOxDXS#25v>vm)o_%ZnL==OXBZiL3R4zFyP
      zx|WY7<SZvDR;gl5+m?YQTwb@dv}S41L}FsRCO2caW&8P$T{@pL4NITYOf5ekyX7BR
      zPU$7fC>F{Jx&=CAT2ZnoG11uZ;Ruc?ILdl=zz!85gawqOF=wPL7A+FeL63^#((X+f
      zqq>n@uoUzO?6t#bOIDS|(Me-j&yAQ`lKuDNX^_Py1omw0RlPnHC-JO6M^?9{^aA;-
      zr|r5)`%u{KTl8PgTMz>ZVgmb`g2yYFOv8yEy?8+~=tX8(otEvb+Svqu^ZbWrC2l~)
      zDZIpHW|_HN0=YrjU1-6}cvZnG0!O!&u-&*-#4#w~UXoMd8k&#G5JMPIFkGKbPAg=i
      zjp?Wul`L;BnMQ%6(Nb4uOfAL3qA0LqnhCU3bE=a{;P6hU#~ckwE8d_cczsH|0Pd3H
      zo4|o)NE0D>dCSI%tb0+*Rb&ZQNEoxYG+3+@_-;rs!9gzzs5z}{O*K?c(y;PciPvmC
      z!PcAEq!i=)l(GW*o5`@5X7YkA5gw?5wl<fW{^?@HOzH9|BG)$E>^?bC9OC2Q<SXKY
      zOFk-;T=JQ*SH37*9YnN1<+qhunn;P?6S;%7NY6TUMUJndGqM|jbv%C4#s}p-y@70S
      zVURD=8MKiE0Sw~_S`St|U@!Jjli2-?C~WCT<{%>;Aj-k)WIh5<$=Hr==F>*YhH}^2
      zuSRa6^A-+Qm&k%E9do;4-hjJiPse-#U(DZxy6f+6`5wLJdv7E9Bc5|Qx9$g9>V`Xb
      zzP~ltdK>+7&X}?WGuRUF^~F3v)fw>Y!lMs9nF*?{fTzQ|QrFznIvSdXT31c$398@X
      zv;zTeE!^h_%3SN&)pA{fXVoiKePUG+0VUx6;?c)z@K@6~bCYf8!5?_QMmiu{yvViz
      z^KA4*bm0=)`4*1hGEqsKMhXcIYYIAdGt^R8Ko$iUuy7UEkjD*bpQ4B_QNq`F2j9TN
      zPu%?(75qx?_wg=%!wP=qnFn|u4{;rT;X`|bpP^k2qA|h^MmuYda09Plj2X(^ah$V9
      zy@3f#a*$p0_d3GN_!_gBqU2%R_b^RKp|AUxq2y&1zu*l@KGt#%vy}X-=qt?OO;XW~
      fKXD!xNXZ3!#QHCi91m%|#QIyA!)3;H;O&0^OEn%|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?N3`(9DYvUZeK32$vUaq+;nek8Pw^l3KLx!gH9L-2ySf7+xE7-tZ&}l4&tJI
      zVf$#}H)CQl6BFXMEe?pfm?g{nF#Z<*1?O{aX`xjTO1S5De&;#A*XR76|MUBw0M0^F
      z;1D>LE7f9)+HGw)W)!uYZj@uGVkI_GN|!VG^l0Lo0@tpn#Kcq`XbSj^Qnoy%YZ;xJ
      zljHwymKTyu*dQ-uje@?1OP883Uh<T)*{W^{h|AoZH%f*zBrp-)-RF+$yMuNF7MT-p
      z4YL4#IMJmdfPDhaaAeL0ftOS$@Ji``3O77%R#X1sQq`lv2fskqxKYxt)QTzHoYhhV
      zo!7?8X{|7)nTFhNDP30Hs0zHkOH|ukVA_sso*#oBk8XEI;9hvVwRKg?)U{$PDLXk?
      zvnn-f#?}nB;flJYWi(5RC6kjATXH*wN4A~+=%w*_)3Ed@&D4s6vRM9+<+NV0jB=@}
      z;J84y3@b)1B`2FFKAgm91*Zg#?|~dD!iWecDP!KqSWH?ZrGZ`*XQbYnGRAZxm$wx3
      z3mmfDX-ig}!?7u2Suc#5T8icO;|;v2;H<#G)><|4Q}Gtg3GB=1*0f$Cef5l;H(4K!
      z*ma9-TW&!NDu@dlZgZZfWwT8qe)Qp8Nuc)_WxZRrwR&Zf{4MZ5GAD6^D$e757Bk1l
      z?G#82vhG>{AK-$54+T!Orm$PPRU|Mh;9inl;u>B^NEag*RdA`%oq|@%#hTqwF(ygg
      zRWXecNu#B2&6--8mql4%&omS0tjE+KmB5L;P>(Shl2&{`ZSY2y_yF7$$v1(c?T|J?
      z^6gfQFJ<1hwL(p%ut>s~<)z_rt;De*#UvZOET9&&sx{r*dQyf})GB;t3rUvV%%!B5
      z;HQ!kIMPmroivjVbcyg_9n@M}9{Oj>H8ZWtNyI8|KkR<lQM|^{;p7Z)!X-xvC6^pB
      z_R4v})j>o6D!(1vWr&pcgV7CiMtj$=KYC^j-O&RGuHof}Ha;ZJX$`nQYYEP!VRYgm
      zg5<#~)E=u_z#$ywPGXPHqp+n{8H4nAlqd(Ilksp&N#Ejc#?wj7rt7hHK#e{^_amIB
      zFVVa!6L-7f-k^I+pNac|zPP^)_1HfU_yc`c`_>VAg14Q{*7H!Hq1eDX10A7`bqvfq
      z<H{<=LV=*KKkf;s&Y)*MUVQ!CY;Q>Y4MPqDy<0}^BP1he_}q$M6`mEZSn-J!MFf?g
      z`==KhtMJ#2Uwp{qdhrBLSsDjq;TG)@EwFso(SsW-(q}l0n?$8Bgfx<D!8CN9X1Plv
      zj~q%cVBr?-pon`Y<6Bhl15EsgDt_U~11#ZJEMuLxr$jx&S9p$ZY){{#OO~|Rj7@sD
      zY&T;QA7PwP$<qm3v75GuNldXNJ+${RB8>75qnf7V!53U-C@Hk{0JD_5jQnSOLdnPY
      r?_-XVpZL3&$EPHf8-L*{u8~}MEb#9-+x(2$8_c<bG2EnY2R{E7Ray+C
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZEsU$7`~pqoxYrH;3%#Fg7VgNY!zQBZivz`w&KQSH#cD*p0=m$8GZBgbX&mi
      zY4Xv;Z^py~6O+Yn5ZM-$7!raX*l+PKh}Uzvc58LXPSbPl=YFo|e!ZUi#XrCQ3E(U=
      z1rC8@xl%2<pe<_4QKP8kbfX+i6)Vw^Qo5YclcVu-3S7IQ;uBMKpef)tO4;(5u4QyC
      zPLBV-Ssq9<VM9EWH46G34qa}-c*s-EW~;g-Ag*w6-Y6N?1%Zk1?ml-M-yO6gu-;h#
      z*Dwp<hZ9{Y0@x?u4EN6ZAn=L`1zsr~P~nEh&1%XgCRIHueDDi&jT<HXYOR>k%^59K
      z(0OdUoYo4nnrX=OmeOVAjjF(#yF|6!1*YxD=J_)C^5}MV1n!5&TU%GPOkFER6S9+&
      zHLFsyrftno8?LBZT1K<9Xd*E=u_d=-xMkb<k6s#|GYw0h(oC&5B#Y%ASx)N}%P5zs
      z3XThO%dn#4Qev{X<HJduR&Yw-_#ViiB8*-EC1uPR8H-7agf!5n;*8XLQ^uHX<noq+
      z0f9rdJ8j9Tb2vI>EbE0)Q%kY@e!PXZ6`U0~*jlSbek$I<y8`=ix|P&Rq_3W_^Cs)V
      zy>{KA+m>4pLkeO7hufUTYuRkmh#&npCkgZcqpWw!wpOofg3mnvy|WTGq~bh2WHED$
      z+)jbiAnUFN@DVO5_*mdnYYMxyTSXkh0`4W*C4R&6ap__NqY5rJx>L|fxoERHD#j$q
      zyDFwpB5Abr?HN-`^ROrj?3rc)o%NU+q!Ku>7wR!aL(+;Ds14re5-)(eBKan8v>nn$
      zNZ#G5aYyF8s1<55g#{AEEH4e0YbA~iDJIzHWdXIIRjp)m=}8$@QLFHp%_mrTGnbNL
      zoUckw;7B_ecG65<&?Ulybx><@x#^!S*UYpoClRZ>eX$2*NAU(nhm$kJ36~rxlw5Mi
      z*k8^QejP*vpz__pRfb53KN#6SXQXcp`y*%8&>cB|;2K_iWaC3}pVokjv=--F8b&8B
      zAxIv)M(we>1suX*t|aydJqlZToiRv{M~QMUIvEegl=LnBW;~tLY`UI!2i3@9bU((4
      z`X`ciWnyku%o}uX=`%53&=>Q!p`Q2$1An0ZTK_ttPw}49*}5MJG!z?nf3PFev5vtx
      zXG~eeSSS$m4a7Vl)fx2c$IE-)&Gd!T-*CZ!pm)p21B7G*4WC;PtirS66)QfmqKKdp
      zbpP~nV-^0o@k@`GTpym|8B61UEZl-!qIs6@26}LlMfw7#af_%FE+CBrTabj#-7HsW
      z<dH)O1}xmhT@-Pjt8Y=p5BLf{!o)AA;vp9CE0(ZM+%w$4b9{{#xMzF%9$m7e&1P)U
      z!xg(3oA?Cdj7siK;HurUO-y2nE$N}XPtnUL?=q?+B@g{2F-=LKt%sPQ<YnYP<1<P=
      s#{U4bl>EehgE@RoQn~RLuHib#mB&1PH`wOq)ZS#y9gN`?eLL{wzmn7prvLx|
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      INwewy1Dc<FCjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2Jxc>Y5Ph>=a^^gZCMKPQV4+bwtRrcHk-%XSNxwPQbLDPN?nCmotON@S?fg;V
      ztO>CY#2uK~H}iNqZ$Ca?UICn;>p~EEv8jT4`6%asPGzig7R35CxEzm0I#CB)FXoYY
      zD0OCBIE1$428lFruo@8R=i2CUK<FHXKZHq{YZLd6rUYl0-6#)hX!xk1PH2YOsH-ZS
      zsr*{b5=Cf*StOIG%(cbKrc>VOf^ZW4f6YF@O;u5_87um09fCK>sytHGAi-Z+J+(xJ
      zV`Ef4Ok`20!o@CO@6V?f0;{jUK8Rh~LmX_Cv&(1z!2#5J$In=Q;+ufS*|S~ohMIWC
      g2IKC61s|J?n2#+qSwmo(k-!dGT)l7gHacj00X}JN@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      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
      O4+=u@Zl%=QQ1E|EXFzNK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7HYjhlC8Ga_a*_~{rB}tnm=`BmIxwS#4Q4?%wdR@$|O>Esngvn;IJMCsS?oN^h
      zR4Ue@LJJ~bTeP$m475dBrCDGrrJx}G6+ND#9`v9GJx7l}{4YM=H<Q`TrkCT%*|~g|
      z=Y8Jiy?m2j|M&Gb0DJ=P`B9``RWvcyyiXt34>X%2dektJ%~5l>c}Hk_NWAVg^dTeV
      zhgU((>{WTw3cSN++)z;4ab2|ST+pV#cc+;!t&Iv+*LBRsOOKk(d6>PUW?TIpB5z3!
      z83A}us=*Jn1PbP9D27kLEgfdU=o%XtG*W%~ps-)jk&Ni^J$lL%@6MptikWEzYp%~N
      z&nzh}NT$rFnb0jW5$#DO$4v^LV8zYpDkw=&E{UeVQzz&LwjGEVqn4RWr2VKSxNy3e
      zB8R%&8R64n4NI_8L9v+_9kYZda$#IgM4P(@_ZbnZ&5z~z`^CCmiv~yh2r5{1L*)ag
      z#R?(dN(I%n@{&Xjgkt-#T0w9wPAJqJ$}RL`Eu&WuJITWiU*6IHR-s;4ZBWoKC*IfI
      zBY8AYkl7Z<!PP5(^|;NCW`fQo>m;v8w^dAHcaz49zn$@j8dj%~PBXO?EUc@~lbK>N
      z;%xymVuK+4Nd=XTR5A?CyohR%*xhvfgqmZWX(cT8=yAicxOZh;$T6)?Sa#txhY~}^
      zfi1~+GS$hHkCR9(+BDpW&ni&4*~zOFV(Sh4mOD3TxC@(EEZn(UpKvXE>*@#E1@smT
      zTd~dN)g{fcNSL%CF}Xv-PJ~!uF+JUv(i7=XJ!K>!lX6ABSn)Xx9b)?e;^$Ua(g{Dh
      z6fBnsd|mef=tPf@c^5g>g+c@E_Fw%TG1Dt%`V^G9GeUM22PIOVkeM>f-Y}$FI-@br
      z&PyV~K^CeK<!_KblRwVR8`t9|7aEcpH&H*PI#;jEm6)9C9<#cK+mmC7p|qPe0oJCW
      zVHiZ!=qlTdj03gu*7etiRM5=AP(m6BnxbU}CCl{z3}OT2m1B-=HO(;E1wJdaoC+7d
      zdyv!+$B2Te{N!_1^!M9qQew?0<C8Xw{o9kN2|YE`orp6&O22~nW;BsZ8J&iu+X^kZ
      z7L<*2Kp>6#aX(vJo*wbI5!K_HQ_-;zBVoC6sQ3yaD_saCl2%Yp1f?8#MNh{kh2xr;
      zw%e24noA=wBeH*{VSSxv#T;wB7NeAB>Kh8y-OyApnF`Lfd=MK{99B@)m1G#$A%khz
      zX4cy!wAUQ6Vs;8J%@uq{!+p?2IzOu6VUf-yjPXvxjK(Z6`k00zVpJ57^s{er)L`hV
      z-0~f>%y@IiGE%ygOtJ73d{4tdREphCX?R-f_9x_C?km;f@#I9Wp{F9GQ8t5`3)I>f
      z;M{3E;zY5TEpTQb+etY$+iK1X@`!W#*-bZl#W|&5Q(dUwRFg!-nct(Q^pUnXJ*s_d
      zc-Tl8_8G?$=~?#Rf;#UUi(6)odBBMG=#l-#P_I5R8aHH13*aP9i^~2HMPX%!WF<bQ
      zps@g>myI}XTo2?7ek?$y7*hc<AW>fA5m<n-mEFN6+&*dX8=@BHG@KVrv6SMmDN1hx
      zcmY2VcrOc51MPxT02lEyKYq#+pa65Xo@TH$yn;)t`v`TkjJ+w-5=m~)DTq1Mmg{|a
      z8noFbPHry8GH<FUX(p_>^3S$J{WA)d7BHL@B9V}<Y4|ig6TmdG!p+MHdgl<#J9Y~B
      z71->z=VjjS)YCEPx%^Tq<{6>0Z!N!ZPO*(o*k$O8$wFiAPIKGRLc{r@am^5W`jWym
      zdE)WgG9`l}K0^yMDe!?^xi>kMiWuUY<`FjgV|TsSj9aOkhu_JxEWS4RbPK$cPvuAn
      z-*#}ki1*Tl#tZ@t$|YzQ`C5eeyv~<fH*;e<0@%W>z#@A&%23WXZbStZNO-mj&Mo4Y
      zm+w^){zaM;@Vgpbf%Xo(7kRI_ie<-9-H=6XSiHW8Wf|N`!&7LIgITO{Ce~z7H#1k(
      zkws&;aT@C~xZ}!2no#*^u!SE{HrW+?7ykHp<f}Z?D|r5{MK@RM;uk_Mdhq!?2X;9Q
      zY=wpvd`ddN^x~bWC=U@KK(zCM_L6C|b~a68V;3*&E#6A+Wwo_fUVZZF_q3=}Xsju&
      zRM%CizStdoH9qIjdmmr?&Py?04yj6|TIoIg@%seZejIHQLG`qhOhKzrD@%&{4wWdC
      zC1S~cYE&+|+tZgtXSj^JYKm)oHU1hkgYFBn$1>P`fqZQxx)>1Pi}d6khVV=5<M(1Q
      zPlzCNtU&}#FzE3xRf$rY2nMi^hkP6{j3B{3i}$Y~iNhGh38bZJqYO0laKnC{YVMJ0
      zoxxri<oWE1UqF~Cvk=G7&si_6K0)*_6DWvB$tcW~YlwRfpZuuD?PRxyTF3ZwFUM5u
      zCwDPcLSJ~M@j8=GgEFD|h%XYVddV}4OoL|{L#Ht>i@|V3EQ5W_iy0N{<ekJk+|Oiu
      zATRdSt{2s`C%jO^r;79j*hqX~!6zyrk;4nf(Ff_v!8|OVi{%sl`8Zgk4ptvE@DfXH
      zXk5x9|8gPPVXE-3L~F3uxoE0`#=VSyC2gx1<C90S9d|5@@Lkk*EiGg)(RdYWPGBK#
      z%T5ScCc_mEWboBISr*X&;1LGm2&Fm7U_FNAcwCYQ+E6ZuT9-sE6GD(E!h_eS@`NM>
      z+-6rd8B{rSE=e2=S3H!#p(|qSUBQY2-xLEmITn)-@Fa`wDKdJRjE-S7j-#0gD7ubD
      zcZu&XQz+WE$Ymxq>|PU+{DAU?B^i8srgEq8$a!wHE5nZANlNf+UJT1!hs)i3IP!lO
      zI9h1nIU0EWCI%kIcbyP!a(MeCZzWg9HrulVJC_IMciH+~w*0Pl!1{R?*;~<&!4p&P
      z?e)kWHjO9GO9@5quX5C=kU4jWBN=AdYZO15XQ#roQ-SX@_@YXVF(mf6aTC&Sk@VYn
      zVAmpj0?#;LO%j|z%5&bwG2lIkVMo8njs6etL%JZMFHV;#{--ON_RGAABP}~C{$1;s
      z0WDr$kG2%^+J25p*r*_LT}ZW^KT)I`_$%XYMHVN+o=R_Ju|I=Tt-dL2bVrJvktTP<
      z>x?YU;*7n^dpQvHl;h*>44!ZGW${9oX3q+|m?wjmTK%GlE3e{0tD41hSg?JyM)fEe
      zyq=5wAgW2_H<a;x_VC}bD1OIo`g`1kKVTdFh`V|3#-FeoAF%)anZ5M`cFVtD2p_`4
      zU)jY!WZ(E3#_<t*-``ob|6oRc#G?NvPT^lTi+@XL?`LUIGB?&)C#S^N&+&%Ll$T_O
      z7kzySSDe0n8gKHcm>fK~inkaD-F-^CPe*t<+q0+GO5VmVm}_VG;qXhm!;Dk#E^Qa#
      GSN{Wrm4wUy
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      WMEyBOF4AWue!-Cp(_0G9FaHa-evlgg
      
      literal 0
      HcmV?d00001
      
      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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
      Xtow1uK2^SyFh~!m@_Dm>;*0(V=bn@W
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%O-sW-5Qg80G0|A97WCjv5b*<CdeBRy7pYPSDpY#k#%0}-?3R2;|CT4ggFnC@
      zB~GFU#fvjA>^t)?`_9Mb+dF_RIw3s5zP6Q^%4azjCX-qjC#Ex{#m)WTdN5DatTfJs
      z@Cmz%)NpwBJ0}De#+tHE*glMFPNdRmF)DLob?<0Q@Gsq?im-&$7M2kZ+Oe_fw#p_d
      ze~^<@5jwF;WIC3)sr66OFP}_7IEeq_vquOsRTO+jz3z_@LNsz!o~SF+e7JDrX^mqK
      z#3t(?PIk&QWYveq2?WO{uUL8EmxqXJ)O637JjWXAoo@;)tg~Vs8)!GXHd%St`T~<O
      BTJrz^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+fo}x5Itk9BqOgufPsK80YZqR7|XYi*f=C;xmzHD9L0KwU5i+YCDJaDR=Mzy
      zAIOvcBQL26xXP)@2jrttIWsF(GQkiYc6O%c%;`SU-ShW9Z~g*s7o{k!2#i;pW@g{~
      z!Tc#>*UXA#yP5q1tCCsYT3T7In>8y6O&~52nX2hjGWnf-tLzE%NW=>xpUZE*SlM1E
      z35cw~b;ETUp6Pf+v)Z&mbR-12JD}SuS!t!`c!#xQ>=<=v54}xnY?PizGehV)s9R;b
      zVY?3JWw+|qH{4x|<Yl*Z;5wG$8E(^IVBsI_U2l)!6a*rBmR;GSF&3a20u#A&L>J1Y
      zGslyUZO8WJ1wzSGQ9v{3EQSygI)?CG7X)tV=s`rz-q#WLXA?Sl{n-aP`p_?TKh$vp
      z{ZV{G;01nTm_|aLN$VKEAnzh)JJx2iwqw<wnmbj>?aR4kvsyIkwp_Q2nzv_D*W`J+
      zR5B?{H+Of9lPjanWHy^k6{Y8UIx@H~5S1p{1g-_QwzkOJHq6>V)mk>oo?EB8{_mSi
      zw0&rLOp1y`q6U4`s#~`YUB@%4K3?F4zfrX6o=piSX1!r~TkX_pN#$AFH9eETa#JQm
      zUIRU9$$|{4S6WppjV-G#_k5($t_leWRJIDExAI>bv&*WD6TRAe`LbsEI_T<oGMjt5
      zEe@*9itRMo?a_H+?owd?zL#~ZV3poG<I4UlFEPbiI4_xjw7D48k&EJqz|=X#72tJj
      zV3X}Y!3##KdhR4I9sD}BbbNKfw0Oc44LD~mMah~AI5b&v0@MFbKBW}gX1#1J+p;^<
      zOQS0NwoD!-*h}*Lh+!CEM7WB|#|Kxr?&?^}{c9a-o$Koz>u#Q8v-2#|)%vs1)tYUt
      z{%msfXXElOyO<9J$6>Cjj6(3APQS)TI)3#Cqv^;I#?ql9jLTtC4pZqrF<p9%<PlQ8
      z6MY3Aa~xAKKZM3NJBE9V<31mhPiUV*3XgG%7~N;b3~qBJ*vEHTo_|%kfy8L^@YSp~
      z8t?h#)oeKZ2U3XvZ6JK}7<b#QMwFxlj#<h#=w^{342)n&xtUk{iIy9Z;sGsESb_mX
      z7_gkpau(t@fKNGUWa`FeoP~*eh)1o!=82a0NIJpWXvYv!)-|HnmCr#R75I!$w)80|
      z{qwW9rcQHhk}LmCu71Tee>T_TX|4jfo?gK9#n~FiPIEmYSLvNxzQ!-l<{CfE^)0!c
      zU%<7%tor4cQJMi+2jjmn34W#dsoYUCeno|YiZWOV{^2IkVV)UMMRbg%N7}G<>lkap
      z+RQQX?a2C=dti@6YqM$g*%sd^>IeSuAfrP;6%An<1(ok1-g1Fe6l3*#jUt%@zEOcb
      F`xp7Nth4|C
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FO>Y}j6g|(L#IZApQ<s*ec1ju=YLA;vQwU$NQ*fFTr*2ZIC=x_K{qdYmW6v0S
      z3@(fAkPt#tz$#sJ0gA+z1R|+gB)aEMuw}`HE#bVeYo`>Uph%wk?tAatbI-Xm`Sq{+
      zzW|uVN&r5A<htE7ujk*(w@j;=Uze6+Ua!e@bLsNJg{(?s?OM~l;?`xp8h|E{c=T|?
      z+cE!nG+V7z1bmh)a5A^A8?yra)qH(J)&)d{i<D(s?wo)T-zPv~RY03}N-_jLhI9lm
      zEZ~nPR)Y{2(b0!~fpE^U<#MxHkoDK|g^Co2<eXx@vYM}3YTZd{?lr3+FqQis@~{Jq
      zGL^idS%J_(t0-%(<=Bk?Mg<Nk9ZU+GUFq(GNG+-(hA{!XA>EASu9V9Rh!xK!RtNDE
      zjt4L<Fu5-kbsWNBfk1pMlg%cw>iP+ln;>2(@8;>rniALP6cOa<uSnW7P-|8ynHw$@
      zp=Ox?rUcCY=>C%D)uPk1OOJG8>NtZW@stz_PpN-aM*ssMoWhW@`9{I36Kcq!W0%^C
      z;JS3%n56IBwOpmnOFCXwMh+IQ$>PR*#c9Zrf=ua1BQ6juJd{kGKBvP#Qbn)o$Y5UJ
      z0CC&nd)aAN$_=l<C3R*&$09CJnue4cO7SH%LqS`<|ImctvSpW+Wvfdq<jrX5Osibx
      zoW99E6@AMtJ2d=?)2tWeqNT=a^xxi~)5=5~XK6p*K_CA(l#HO{@qSqzirOGoi{1$!
      zWZZ>rB)1X%fmt68@ORilNI}CKZ=6Gfxx?J!X&l58e5y#HlcpL9?mfwz#?=uIJ<W_@
      zCT#e3aMbt-;d?kH@GVpA5+M)nJV6#bc)fkR1Ft|Q9s_-w1vDZ=x}eF}*gZV0J%)Rc
      zxH%8kXy544j$jhcc(o!piMYoif&?Q!W7^xP+Rx_^j+BzB#aKx?VeH^^D(bs~Q5B_Q
      zn;0=-+nD|tr{1`WXCFj+{T-v|z#4hHMXBCF7+1-mK+Gb>QTDivw^2LX`Y?v)XcRvq
      zG+~C3lJI#lY8z(qsU+>An$x{P$^+otJtFpXMSP*_%-(ixk(6p@hE2RkuvzWuNZ@9Q
      zb1;`y%S{|Ixb;d%?%;fEWFT7l;Ip(5-NtN8yV)x|;SJS?)b}F}%*QPH36A1ZoWL#W
      z_BsCve6gp?nGUI8s{R_)<`;_&Pj<S@c6INK&}K(<)1UIE+m0*Iqqi{>^WE9~Q%h~_
      z{=o?STf4u<ZezgD#BZ@4!L!iW<(Gu{iX^u<$zPM`Hzf5Pr}cY&7k}j2vQ5G}By=BB
      bc(8}C*&*y>ehC*zSR=_?hwvpL`>^~s!SG9k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZBrXn6n<`+vLP(xrL>izZGh4S+OnmsSfxUF39tncBuJ(8rAu-N3t=~IHZ7=M
      z)Y0+nqhItl_`y0#W@N_d7oG7(Ii7oW37ZsXhXJzZ-t#=qIrlkt^Y4GZ{{dhCj)D-w
      z#hg{r){RHTmS%1mId0n8dV%M(yYq=DT?7`mk>#{E%+OxFFR;v@WO>G>jSLrNkAR%;
      zb`3Gq-8L=L9cJi>&sO6W3#JypP8ZCf-X(_cIN?We3=Jw2MC#FqCIu%Lnnk*nH>{kN
      z-Y&X)Q$;gc7>?N`m*JE|*Ql;}$F$tE>u_UpD1ws=t+L3u(W%5jVss+0(An7;#VMRo
      zaGK$yM6FI!@e<mp)`CFFTLkWD_sLxf=cLxAS<~Xl(&h?x7LAoWC$3pLW8{|%#}v<g
      zFzl|GMTYoM9Sd}Vx^~ib%$#W%E-}qJ_9IiayzBWLWT?+^cbc2IHEK#YuJ`H;(Zp7U
      z7hKb}iV7|SYSvSgl_<z0DlQ>T`!j1iv!PpAzU5&oiPb(8mvMzb^(^3ZnA#ujU8<+$
      zeig@27sWMPS1`cP^?ZA%h~b7r5F$-sL!XpUpqUDhU76#qku_X{;S$wT(}PWaQPcI*
      z-bQL*<6iROc7apx&+KJtCD+Vry2~BIwH?~2(oQ-;$wV8&@%y4>4Msk1KTdPQ$*eK3
      z`wT6#&#QTlh8h-sK{*jhzGr6LHPN3j6?a74VX|nJVI;2C)Ku}pyy1|EJr2!y?0U1S
      zjg?kcxx=$^-;jWuR568V2Eikv3^8BZp?M6)3j&|v+|m3BW*NHor%#?ys^q3t$Lx}o
      zEe1R^gQS>Ra!G^qkk>F_kGE7TAWfX6RS@&qDmlH0O0BH(j60;@ZMr6EE(tlu-aVm<
      zOb=1PJ%;lEN%=g_8TqtpxV$1Kf@P{rX2mSqjTu%<_9lSSAH@<L2+8dcyhol(+A%3G
      zR+Pm33O-;sTdj$l7T_RTHcTYOQ^^TEITag-AX62%E=Gr|Na0EZxvHfb;^a(0zE0Ei
      z%=LJ1<#g{vkgvkIDR3+mw&;7EH=Q(3X}jcP_@pVWrM8-TzF$;?PLg(vUJ{IcX?E#v
      z1H$6crAR$J-9?CgfD?U}%ZUC0wY7BzZBHl?!dVfQ*@Kk(8r{;j&_S`&UIt#qEA%Ax
      zoWps-BSR8j2wfBl(^I!(n4^ebXzA-Hqo=Qo-o9UPbqCr{6bzCK6Uhjr+zF7hR7hHI
      z6R%2=L6TBSGUAgcl7#(SfsRV<DT1C3z$z73r2=~kuRjAjNQ6RrD1cZ;F(4U03sulU
      z6|^@nbU0dgzjP06@es7zcvF@<OpU26`HEaQNZSL6rb?ZA+8DL<#m{DRU!Z3IgBrL(
      zXOjsCJ?L!4G4YJhdlV5CtTjMl|CBrulStNyWJ8j~yrfER_Y6Ql(0$+1t1Lh_BmJgR
      zM4VY;#}8=O#msUUb5Cmx?T|r>P~isZX{=B+`o|a&BOM^{4E>OV2@6~#AJ6}V#UIhQ
      zi>2k(cgnc`RK))A1MiB!KJ#fR57<H!+i1f_#QZUO@QGC59o9u(K}fuXecn3y-;MWW
      zY2VAS0w%?rKBPGnlk_*jPsH<zcrGI=KCg<;ySTP2<ot=nGS+^>Rk5<+XYF8fUs)e%
      v0zRcn;WIShbNbHp1${mGlGJ>K3-}s?_y)uH772V8P&?_XWhhW~2p|3rYDFoP
      
      literal 0
      HcmV?d00001
      
      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
      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
      BmTCY1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaje*>_V_6vy#>I#63eM;yQbY607#O$TT}ut-a8o0v9f5=y`!+_cy9mNcm$L7e_5
      zpIplamMH2Hm$QJ1u7v|L!hcZw?R_q~-|WL(-_OZi`{btgoL~F!3=s{{dreelsJl?A
      zg_qq^?&+|<;ubu=99~}a3gK8XGBx8?PI#3jYB1E!w}gvssSr-&m%W9mp>;7Q>f~aE
      z%!Hv0ljYLMs#~hgyTzJUj}7pFy~ANS4-{oZA1G_6Ip$=uIo^&xX*U#-g~V(mH<3*8
      zT8E)lS<6hPBLA*-8LH1ZPW^rSaSjghy=182U@|$#%U5g<asO_6nEMagBiw)5-o^cw
      z?cLm0ZI5zavpvRr-S!^t8@Bgy-!#;SeTQV@TLEO}+W}<jI{{?xzXQnTcLT`o_b@q?
      z&d9KDZOg3hY|E(cZOfz|Y|Ee@ZOfbsw&f`<+Loudgia?Mng5Y(nSa){%>UT7%>Tr;
      z%>2~0%>2x@%>3N8{2E{2VKCqR8s`JZ4qpb4v0nv{@BMWE+2kAiM-NSB_?JD$IVX7;
      znNFm6^%q`EMLB;%P9|nJ*W?CS{RtUKNdC<C&c^wMU-9DY_e*|t9BaLO^Z3q_<wdWB
      z>giO7Ds<9NTih>sv$d7HSIM~fqGzZxUS4pE^KQjw2a65WB_DV9#Q*pF>@(DoF4rmx
      zp5yblw*QXS0G}%A#!JiZ?kH`dMp_3oL3Q*H+^pOJuU8Ji8<hF;R^>LhUAY79RPKT|
      zDnATAqWmcQnDQogv-0Ec6UtA*PbqJKw<>qTPb>Gp+myG%JCvV+dzJg(e&wC;v&zrG
      z1Il4|P<aR*Rvv+ODes0ymB-*c%6sAGmG{B>m0y6zl@Gu#Dj$R=lqcas$`RO6o`R>9
      zqi{_5B{;4;1J5ca;H2^#oKjB18Rf(9yz&t^t9%qbru;Jeit?-QYsxwJxUvi9l^5Ve
      zWe<K`xd1OI`|z^z3Am`d0+*D_@T&3~I9Y}dIj&Wlu&|h@vHt_Ay)Q@ZO<ef^5?;L1
      TxQ3(~=`DI2GV~6vb@c8(xol|e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyH3ME5S(>P9E>60h?0UXP;j`Q3ZjV;1TqgPDE-AbnG4Qcbg@x>iz*TYAHYW;
      z)_~|JXl7?_XHT>H{_*+-AVDX9M-aKG#7sWRmC$pUD{aMWp>lD3Ke)V+?n$|!t;}?=
      z%G9FN)&%egoq9m9_3G}oL1><9qst3IqkA+a_<cK7Eo>4HqJgal8;A(|-Slg^kR}(S
      z(rJ_TYI{4?M%`BPiE<BeQYb>4+DsN>>2$4s9{uuBF9}Kd&)hviII@+?)KJ%-AN;l8
      zNu3Ud;5GP6;7T04$r!LYgU1XAj^oxE;R{m_+l(Ps;FOICc9=!qHng$Jim=D%A^rrb
      CH(W>n
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FU2{`a6kR7t6WU%1r4}ejC{)BIl%`Nx%2%}?P=YC-V4$GV+w?ZMB~2i`;cI+x
      zhS3Kd#}{XO)X^DUe9)N|W@N^3#y9_gFa8bR)V0sKO-c=j&CEUfe679L+Iye=_Sa88
      z12}}m2m%V-`BF8tXy38#rQ9Vu@3`gE;w>kiI(PB()TNwViXf!0RSu+zb}65_Ft_OB
      zJcZ^Z``%f{%@=5^w8AFNuekGGK_NslYlgE5TT0cX3kwtFrCa5aQ}UJ-UU_z9yjafN
      z<Z?@H-I>mec3Jh@Vrr~XvF~TxW$%PS_@rBMy-|f=Z$f-bl;@om1hLIR8@4oq=oXp~
      z7HhkOh_QBB*kr6-7MhI}v(RF!-4<FAj$n^MM+2`d=*Bj|d)0!4&195uOV0V~(wtMd
      zY|j-Pg>9K~&Ms!{iYs$}G2|6o(%PH(4~5C9sW+V#I*RJ4y9%8Zhj_Va(e|84cgZO&
      zyXDfd1ai<qKT@QhcPM;kZ#rRwT9=y>5gbz3_X4lAWHe&{gBFfpNFlOd=e%--8B^o3
      ze$>Lqy7jDhKW^a!PEz(|_W@}$2WdIFOFlcfEE!bT|02dU-=wWv1<RhFudOkP-f{jV
      z=xqR}C8rbOcgn(9u*iZuEUf>{IdQFp8G6gY0c=qSxIDJiCseMu56UIaE-JK{rL0r&
      zTnfyE+f}>dxesiQ0;eZg)<QuSDgmf*Ewu6bvYqH1PrMvEk>s+4cSS<026{sROGwsU
      zCOwoW#2Bt}px?AGyk_BTyd&W6S$H2|*3MnO>v(cTHfAl@vJo!$?HS?Dv~Ee?VvaX0
      zJKkEmG91=kGgsCcx<m3?r@q#pm&(;j&N<^s$!}hJAo`_cu$Qp~`K<6wk@lk%kml1P
      zTThQ{JUz1Q^vI^uBb$n28xh#T{BGr}Ks3d%Kludh$>1tF<kKmi9rEdtPgFkf<WqFd
      zJi*>o^!%vt_VK%&QGjBE(1)Ekh#t1hK@8$Gu382e`|&zw;<eZJ`Z>J{i;@53H5rxg
      zVhpeDe>d3!LmT`b#bGwpQ5@58>@mLlIOr7#Dk7{$kfashkLB#g_9tf&TQzv<5d&O7
      zPwX-Je!)QIzzPm?-t`??lVVdH4#Qm9;V%tSwTA%}lUt8*?3=%T6_B21Km=hGrw+)q
      zRg6A!{P#MsVV$fo$~%E}Od^KU*oQMnVT#1YI6KE*23btw1DwYKXC7--gg>H_QuPV9
      zlkOXMlk~Fa@T~w*$29dRrps6g<6Jdm@h$hHXa=8RU?v)icZQx|@_3UF>1uk6Ggp|n
      zbIF+%L_@PuAGG4Jc!74jPGOgZ$TII&SQ}SKVTK`HV{WeNFh`AxT3!Z8XGrH|kfer~
      z2L?cDLpmRWxS;dg#=93ur->)oqJF?%@pOpib;5!sVbj6UM=V>$9QPOcR&Xi$HNub3
      z{xGQYmQK?jeLwJSfC2-iqHeHyXDR#~;>gkCJZpCr!<1PBP8wge$VdFhEp~xO9niHd
      zvPyULQ+Ok*><BAMf{L1;>Yhza-qaqpn{zb}7Cp$mqLx>Ev}vA^N^MONYG#_`u7A&|
      zq0yoNZt>D>4QQI6wFcPgha9GmCS=7rdOq}xjnH=pefOoI=Wx=GI;B|vQcOGQpoaX1
      z8qho(O@6G3321b=YvbjQ8eX1<<9i;ZB%*#;9+Gu$h>_}J3h{|XFxrP}Qib&^A=)oA
      t#_FioyutdESf4!y%e*~G{=qj;B)XB*7Y#|}8(xlYy!>Uu%LQE|?mq#@$OHfY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~7(K(>newQLwLDdVglK6iQ-d0b%82D528jhkUV_syty7>w$^gcVi3<}K
      z8e*b}#^BC{D^!9+5f{e9#|C0_;YvyP6E2M3oepB$Ko|3!Z_c@AzI*QNr{AxZ031Td
      zg)9LF5~&F#sZDBE6=PIO=!U5z$Ml5K6OM+{gJE;TOm~cFG2I0wpo9w*ZOT$&oKQAs
      z0rCkWWmt6rL|;{x02Vff^jwI@aYI6`0Lj<V!igQNMoMp+7>(-bPAxj33-Gj>F>Rzv
      zOB=j*UNY;7F)pC0b&K;I7myoIo1@{D#_pb88pqeyRMpo+gA8ewCLoLBY|C8dU0mGW
      ze3}NcOsXt=9boDUYmtR19#%J7Q^wSzD?gdKy1d41^l?jo%QEd`Wc5qM^4jJ4Te7<P
      zVXn42KPszll+wpblON@`?;kYIzngT+>ere}l`{>$Wc3GG(oa^ue_p9P8?BVpx#icX
      zZ&PD5b%!~Tj_FMXkD}oJ*sFQs*awO=<3LD)Oivf}N9e6U)#aDvm&krbFbjF~%%uth
      zNq7)$Lhg(V+pwKFIt1i97PVBlRthXF%CiJA2K);^$X;BS5jcxUik<KfFJRZ!Yz}W?
      z<K3Fgu}y3W)@_6~+BnZ^L0**41;qZ4r!W}_FsDkH8WaO!$Ws)MLZ0GyG8zdo-j@WJ
      z-N!wp4ik?ACC==27*g7fDO$musM?NH#Zcb;M{otjJmMV82ulu@2#X>2y&0}?b4>;_
      z!jgj}!W-u>fFjz*Nie9i`&00u9(xd`qisMF8qtMj4B!mnXh90+F^LGSp&d8Sft%>W
      z9bCX&T*O0kV+K8Vf?hmDAD*Kh^BA-fEze~2_k0(e^JSQ$Z+YnSbFg<kTUwoC--kG5
      z+ZqtPDD#V<+rwUz`x(`k7ZrYqgK0|KQ|v{h!|%8Ggcm-Ck46F#7x)~3e_ar?1&L`A
      oY$Q=g_YN4MBn(s_Nf``Nm-^>U#O=B1zl*3nH@~6Pv?dG6ALQcaLI3~&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`(U31e`5Ir|?knO4voH)=Jh-fLb6&m*g+JZx9J{qdlq@A%RCFG@weeH-kl1Gu-
      zhJVv{9@-g5IxUkQz>n(m+$+VHKwhNX)!uV<&+gUB|Nc1w@F^ac7!$bM4F=W6-ml*8
      zRe#s(N<XajgKqW5_4}({?3u_2TsbvmWoHolB5)?`boOK{AY3{Ne&EN80%qCWT6QZN
      z0-2StE%Pw&js+80fpc{~kn4lpZ5cJa?Vc1U)Weq7+wdY^`Dri{@A!KHv-ML8P&L*_
      z5byU1l4;Ww7~5JFFj`TIkunP~+|{L~qQ9W%r*aT@&%${WlvT1Yjxz$emg=S9KOxT9
      zw(Ru0ST@77!BV-dB&rT#zgK<Y_p7T(LR714<YD7|6ITVM-=1UP16-pVDX0>Ly0{f;
      zWiTdi@ig$`s@4X*9+S(JN0fJOC-Rl(bjf`K^CmtPn9$rkkE3hs@5OT0LKUA7z>6Yp
      zzZLfP1)Q`Co%O@^W7&#pZo>UqNYBg+<Znt{s?m|M-3;A8YZ6hilWH7)(rVnomnOb=
      zLyhAc3t!>3K$iRB2K@n-W}I@UEiwGyEn*y><CL>;*ofJDS754K87Vx8)=b<JxG*Aw
      zPF^1Py|#?9SmM~Z*0$=(*3+K1>oVxZJN8{Wk43Dg^;i`sj_Q<RE3Fr?X5l`*<q*7n
      zUj}V~OWdzF3P~Aj>cn>z7I0S}-v|d$ORo89*{$?;&8u2*m0M`=Msji0D$?SuQ}=|C
      z9K9yJ4BuI&bmQ_N@_*4DgT-f_Z{Q|#Z{b~9PLhYSI7g2sFhM+_Ev~!H&SH`=Lo-aJ
      z3=Mu!NRv*Xc!+7I^dkEl7aij{W?qpMH27^EzC*Ga;TAOMbaHe^I*Ch~l)n~SNeLdZ
      zL`7gbo6j&a=R6}i4fQ@!M*9G>KflJ7w6=y>3a(m9SnMH-jSq31=mH<1oU+^@hiZ0W
      zi2Vn~Gf$1Dj3t64VytUKE6Gg}1uB#;5qyhdP}P<c&Wmham1)cw%KIC0&K$KlDa%i6
      z@F9xW#0(yd6kJN-`P<<iw?G1c&+vIlv_u+3l+%hF;N~mXq<@bi+#Z3;4g1e=3N;PK
      r^-AIHajdHU;=fqjEPQ>4WmWmn0lqna`{xM}IwK+!ha!Bhv+Dl?)|V`#
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      R6|t9jP-;=A-mFf9@_)5Wh8X|=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwO-lnY5Qg8`uDiNc`yqN)Joo_(o-4hGim+6n(tEmw7}-tAc31khJP9891N>3q
      zWEBxSNMMq8=9$Txynno{0Gy#8BOn}TTZ<?8ESJI*QY+)c+-h+*zP?;$YF-&<V}yhq
      z&j_yG-2M~@(Ydjv8WDDn(gw&SH&3e4SUo(R62c4jpc1sO(Z(7gLMJs=jq75j%6mD>
      z6``NHOy*Nr8n3^TVfAPhgv0cIdqYC2SZF`!j|D<9adnxgE90-~{eITK)7S^M^M8PM
      w@)kM9tVRfU0ny3nE7o856d>W4G}!@@0-LP&z9_V@#fo`sqtndlvI@}q1W*lB?f?J)
      
      literal 0
      HcmV?d00001
      
      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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
      O*PxtG{z8i`{Pq9P)g>_i
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>U2hvj6g}hbxDIiRn+BSOO)14TZVa?EX&j=|PLn!yBSeZ(T=B56SDQ7q*IKWO
      zBP7xnB*Y8iFYpUMqDe(jc;|QUBl^^E?%GbJhOm}r?wz@F?>YC(?%yx}I0EnyHpB2K
      z%$V(7uAx8H`#Gznn}%iQI&Cxe+2;DX-fHP#1pY6kxZ7)gtq?RNRza;QgqEzf<t{6P
      zQ>90RQo5oLz1y!D9oMqk-7wB6TsgDmNuWZYXxEJ>{CFdVFd|{Z6)p<UTvI2&E!VNy
      zW}#;_>xL6SLP7hYZS*@v%{A)HJ*~TIJFezhEkmmb$T=+)#RQU)?1I9DRQdH>`E*4h
      zF2*p0x5z{9bc}XgVLDYxp9&rp&PQ;GOtqao*XX9@_+>dhqj3Gd3Y?inPHHjC;)+7V
      zwFl%BlBv^`^HD^R9D~ApF$56`t-NSZPjF$PY_*NeUTep29_l+yLm^SNYkISyJC^vv
      z#elnOb=j}-nKF3N=c$3a*I^b_qFL8nD(rhyQ1I8B8dpvJH@K5pO;`Npod<VBty|LI
      zd0D0Og7S6@bI1jc<sr(Thn3dA!12hyF%!G3j>5QUxJA2ZJ6j#S#_}_%>aY#^H*T&b
      zJGoc;ggIt9`d*hr1#2~edkRy$z?w&6Ab(bStT%hcq9&c*5RLAOva6^2J5rX{cFXQL
      zHDk?^yyK%cVovT2l_FZN={^yGR)9a=Q}{6Ec|4C8t$&95jm)L&<wJ~TkHWuT_Bo>4
      z&oQx`IDd#YvquM*OuT)7=>xoTh<E?W`fr@a@ptj5el{?$;{7Mt;J}Q~40-00@8<)V
      z$-s|KaW#{~wao9hYSaFWReeZtoWnVe^Tf4)aoolSSi}nQ*x-Dh^XHr^Si)EM6c(0|
      zX7o)@kOnf0mZyO%u9K};6q1?6`jBgWo=x&Y@-dn7CBO}i!uT2cA?j8$iJOP`BoqEK
      z@)Qf1_X%x;@}~m9F8F7YSlo|Kefz`D55*7AU)qnyM}Cn0@_sxr@<a4j_8I(&;We+@
      z1y(GQ;VKfii)pM8^E!FmLm4G(ldmw-JjJRf%&Np5BIao_FOY?wc9A&-EN*cYu0Hjv
      zj9xz_8tj^6n;h((Wb?7|8uyjF#T=y*%U(_(=}Em#sYRm$l&JITS-<qM#=Hv2VOB-_
      HQv1Qb*=a77
      
      literal 0
      HcmV?d00001
      
      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
      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
      TK4+<YR&l?xPE)*KT3r1<Pj<HX
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_d%U2s!82{ZoNCJV5DbyBGDJ?Bfn$T8hm51^OVJZwU6KIFp;t<9#ZAdUPST^q5
      zxOAzTp5w-i3#E%5Up;z`E0^y5SJdCVi6K0yU6^xn@ArN8yWjJ7zxnOY@1Fv=0ylzy
      zz{O&DCw1Tc$lgu4TXxZLE2-^rF_kqkx@2>Xz2Q{NZ7PQZdJigk+ivQhmO#wZGsaYY
      zIhPg)+?f_=TS*(UOSv^;YLTMEf;5pT+4N!hRkvIm6KJ2Qls(@r`zv;7$BCj%Aeb?h
      z1tKfyoT)DvQFKsrB{?FX<<e8L>D=1P!jx%Bn^C+VaGqHtRdC6A7D;B2JeY+*SY9v%
      zPTn~#jHtOhH>cm03ayL!VtOraWhJBC%ISH!G_$(Of}%Fv$S&vqQAjkKn<?3z$E2d;
      zg_2u#{YgeXFt{QRnyG9!F$laIM;I*;yh_uDs}aRnfiu}k)wkD6POstk4=dFNy_u@L
      zz3CP_dHq}*37m|gpC)CNQCyT1bCsuqadgVlOKgQIg>0uhxEx29JV*)jJ+oT3s;;lv
      zEpJ?j;}lLta82OEew-@52wrCum5_kZ%iB9XyXn|l5nLDOSDk3!$x|maq%^5Y7jMMz
      zB2Lr(f?IZsovn4JnwN=7pi~NWX~nL(lCKL}##KdI5yWI1<9JJm%L7MSc~sKepgQcH
      zPxSAmYP~+j((2KBM<vJHJ4W<Bno=nAH(ie~S$NKOPb7B~?DDKrAbM5z1iG4QzO;Vd
      zDfnZ9t9&)--Ga02yL`<N%rygKsd3VVQOw7oqnn`Jva1iI;GH-Yut)(Rw4vUMF2zf6
      zWTjrX>UfSX(Bf5gss#m(eLU9v6Yh;L1q7oBxMhwvRrdYa_6#gCOX2db)4AssNpW&@
      z78s6SAA!1>P||toxa<$PX_|^-5!|Z{sQ(<Zt+<Q#C9Z9O;eqGwkZfzr+4Y^W$I`Q3
      zMaQ3Yyh7Dgy%4xik9fy-ODXlPoUy^9cw~V~^3m-VxcLIxYpU|kxl-fQ!P&|$gqpuN
      z%U2!b_a%mIIps)oBZ4TUG139F;xyt-d^`CQO}s{)<Bhtf<sef#=a$+zjnvMO!9C1d
      zXJ}pEC33$a#1+`pqCZBhp!R9r3TfHA71oTr)uLtcRzz#hTT!hwZ)q)BH`fU1$LI<D
      zgjcL!qSt(kzHp5`Z(5<m1quf0heM=?>vWRz2o<mL(rZ$2l!6=I(suxFa=ps@fJr1V
      z!LRHr*E9^wVHNWzAcGGG{u2Km;wF6V4~g_KbsNlOypho=vlWz|A4;?)+V{}6hk-o|
      zC$v4>*uzLr@TZn1nArE8P<2>@MxQ-c!Z|)6X+2)Eg|{(9PGA}{jCYoFh+JCL@OO4j
      zcI;+w;?ge|{T$Pme#WSA`8#CzHYb9kp|8+G?xw(Jqv5Xb9(uY$*B&7pocJUpx<cfi
      zeu+rW7k~XhEkmH^Yg%iribZafNO%t&#Cj+0@e8xYIBoP}9V4vIRr1rU(L6R)+>^D4
      z>TxqRyo($o4p75Ho_hzYzKj*deg=cMh1<-iAMLQ{DNM~f^maJY32FxzTkHqiwT7Nx
      z?VCoRExZDF%K539Qp0(SK}zR>fo^b>z`M>}nj(S@8~M1&NU&if2#5JeBSqzO^KUc?
      BKG^^O
      
      literal 0
      HcmV?d00001
      
      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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
      R-xo=gwddjf9&dYa|35=xKYsuK
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~ixX7=8}<TH;nhq<n>swJIb_N~S|UD72OD0!{fYEl_JW$r2Vq67x}m&N#hs
      z#_3JlyXtu5O>cEZpktkS?}fj?f8al`K4&)tEMhXd=iRgKIq&m4?{oI|zkhiJ;2caJ
      zY6RNT*>Y^tcwkgw*0zy0tz0ahO~>YDuFq}k6n$_Dbexznx>3$<35W`>X<j=5o`O-b
      za*W3WYRg5lxKMpw74TlMvR3JufG<3?HZm1i7VwW(l4hPOvaA&lICEmHgG2%MXf9>?
      z;lg_=RGd<9njmjw%}U-(mdun^w7xL4+`5*ZTv^nT5@W9)b!d{=%>t*xaY;CqF-UZ=
      zRIsw?!N_tg1X@*i;FVFE3ZD~os8CQV=QI_5ydzK-x3cC;c{^bimW)Kk6bQz1Nh7mt
      z6fF5%ophHrtfD|?{6tDp;X%?V?c}+Mm|~bRN`^qq+K7NFSx9mwJQi7Ykx5Y!J}W8o
      z%2}%Cd0qW^hyP;qCkRjAyow9BD4=W`TjrR(ohvM*_JpUnND{fMq8nkEJgDLduCg;}
      zvow`0*+~&uTo8pwaF<ffQAnU6967F=f>CNuw`h`#MHRHXRWUP84;<}%7#C=ITk?^z
      zl}VWeKdxiShe?6J+ZigRaf4=gU}VbX?7BeL(Z<atHregL|G?zO7@8E!u+!RbQF=nN
      zO{s+|v7N|(Cg0Dgn8yN%8~MDMO$nSmy7wDX9OGLBJt((Wl3U!ORoJ2bO}wpQ2*V0i
      zD5+h1O|HBvS5BY2Qo%j;Sxf9_3hvXIj;=*5Zx*y|vt$-}$tSAqL}&*=p9PO$ptbyq
      zxpE<CPFT{VYV}a}N}=&S+wbCsz|D)M=N;1W_DI9qBkj)7!yFzn)Zkq{xw)<m^?*?9
      zH^37;6m8!}F#0M``vXqBMBPfTVIPgZ=}}i-JzjqmXs$%vP86s-jC!0<Vd%BPhhOia
      zMUVOpl9j{cfRhrC*#Rd*riY>drSCg5>H5!TdBj`jQEnIQx_cL$KM`dO`2iP+8t5ah
      z^Td7u&7A4QC5&(!M?cnZ8J}@1VE|w9Bs{`ZJjTa3!&SPi%oBWo5BWrv_y}F(E+d{E
      zR*+GIb1u%R%okD>JfkX7*C9RFvyZ6W{RUQd-LvlrxB)T3=Wwoj>oIvhM}srhaxfRt
      z_tAIALg%>#M%kNj_G1D8Ornuzqa8O`b(Wv<ISgWfxEF2YjW)KS1LQ;U14eWb<)tdh
      zEHO%yZB>*m>ZXV6KD0@B|Bay4_Qh@9?-0QXd9I>~>V<IEuBbVC9aL<i298#3)V_;&
      zYUD?$TKf+wD{EKuK<%%}F8XB;zj=Xyxa^}0ZZhb1^|<<$WZ>>`JAtRi;{@IwuM_y_
      zFgr(~!R#R5rN5lWM|)KxZqxZKe6Htk*DM_>+d*`|ed=S7Qv$6>;u=!?oA?~-N4Qn0
      z-0G2LMwm=magT~i9|(E8tK6QFnRLc{a740U(T<lGTj_a$iG9R_H}^2h>GnM=?qT`I
      zqp$8buUhu78vMkGLo)u9vCQSBj;VvTF*jLgi^j;%mf0h1pRWRSVTPm<ge6Eyu1);|
      D9>%2J
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+j84f6kR8lEyWdy<HiJNlDZ`Y+g0O~&`{!BO73c%v^1{4gi94$#A<EXW6Mm;
      z1H(Ig=`ZjFFhi3W!ldtg<bx>dNKS!<$TRXf`|PtXYp<ghfBk+8;5xom(I+sr=XSD>
      ztnaM-tW&r4Y^RZJx_jAsTk8d<ZmUoP#?N$Fu6EqV0!qd5Y=Kx_#>sX(r<PrzB_|M>
      zb6m$;5KvR*&XSof3Pe};%XZUq8g5&~If2V(Mt|kV49ks*9YqKOI#g&XVge(6wwlFi
      zx4o9*?k#nkTE%W@hzleixb}Y2E_-&R)=jpnjh2`6*if=8OP)-oq8P-m43-c`q=L%-
      z6)Tr6N{<m8Z{cnBVKtk!TM-ydndwu`y~H^U7uacXx9i#Mv^+j0kB<vn`@aNdhLI<e
      zIxgX|faW!V<^+aQr!(iGh+<g96@h{Ok{`tc-k1HQ1o~5^|D=ok5Xk5VBO)-EcU*g`
      zQ{S~)1#7p)0mk!<vQ;ZuEk~|<M#ZZ-ZGnsVGv_3Q!dWX`x5*&F3<O~b^zAGOgvzZl
      zEnVAc354qn*Q?T4vAQ%?8yy-Wb;s>U0Y%z&xgl9T-{b2aDW!`c&)i&<5}21=QBn#=
      z;Wu<kr<y;I4KL|f#tLV!XL}_-VJMY0L%>VYG=X&;8**FY_NFXE8gJ{kBaIOnSFEly
      zZR*%M@!MdDZE3ux<5Ovj%ENxazIj_m;l#Y{mrt@pg)MsZriRaXEqIrblA}O-vq?GM
      zFQhVdUQ@>1-A7bx?(~>X1jg*!tfy?RIdWcl@0L!=(Nix>%9~Bz<$#GoP~>glx}PhB
      zJ5lI#xXE>tmM57D#@Hd=FpgvD&$x7iXz2)prTEYx&Kt)Ecr*Ua0Y(pS@euDmH$u}x
      zc=<z2+cy*+{Wzl-VIR$ejYt3@h8h6X&;p<tvEE*P<_Hs|gfgVoDv7XCNkkHALQC`?
      z;=N}`|H^v$aFy>#oa1|%m4Ao<+<<|bxP^~lVixz2!w%+9!8}|n;3q6{ANV%t2iJI7
      zK2MOv6#JEk+F)dfrfCZ?R-Tck$cIU_+#m`w?kr}AB8+|=9}%g{kz(d4^5<fl`KQPl
      zrA1FN&v<__g5<lFiRTV6mx-x=XwR^C^#Gr+#fS5m->?`Ojjxij@1GXrN*R?51~^Q=
      zHRWNjh;U&BP$kR<P$Rq>z?k&7|FrNrOUtZyg)FUN1Z%j0bymMYUQGUOQ<!(~4ZD4e
      zO`oM?Q12_2YIwl&{F3s&$o~3>`PJ$5w?J>n;IOZW&!`FZkUl_(g7}5@U|RA#cr)Y_
      P^uWItU*JpM>#M&3c~@V+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+iuf95Itk(;y9*+G%c5MNoiUorr`1n;-wN&q=*WF!V5y$geAC2){^a1d=^NJ
      zka*w&_^7Hgjw=E|;bmub=FH65GyCh}$4>xHv0sKoI2fB*aH`JKmtd-l8tbVxY0%g4
      znT}fv(>0%>G75y6;DU)V<KSd?sz)io2~CnJGtz|J-b$MVs+&We5lT^BSI@x9y(F7{
      z4wKdq;a+bID*-+aO_;tQ^xJEZ|7EnwqB9^Aj-!vd0>X6<6}T>J-0)CEonW^+1IaWz
      z6j2gy+d~-+V|$^|uV&Msj^C=`gaxVhqLG>mR2<4Z4;JK>fevbmzxb#yY){yV35f
      zQYKUxa-}k1F9-dx(Un!W{b&}C^vh7FRu`LoA{!)lU1M~7JW)xalQQ-QJ8SkqaDV?3
      zG+7dx|CbF*6k^X3eSlg`w9GO*4<6&L@$CcW3v3(yqd7MG@2L5Qb8PyL=h*s|Ro~>Z
      zE*PheqH}_Z^BNn@8{Fb}Gn>`GZQS7-cgbd2nI}_ip0b0x`K*8~ajxi}W9utB7NmJe
      sg3i0Fq0nML-jIJH?sG(lE*Ee9UHtwZ#TFi9BbwM{>v9{yL$qLB0<ezA?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZEq4m5PtTc-1T};YAJ24Ra8_s3Ri8bCe+4+v<V5JA24YAcEF0)z#Tab(w|im
      zYmFcL0sbiC>>Y0@m5{KzvorI|JoD`R`TOfPfR}hHLt@Cc?SXM&4$VuWYuaX;ce(8u
      zHSP|%n+}$;-5Yo{&*f%UMwnq+xEq#ZoHs6b)0??wkeVHa&5G~QG3~Zd>X`k0#W7pl
      zEiy#BuU0?3&#+rrfGZr2E!*-=7%G{Co&gfoGE+tIKk(T)gL-<|<UP-F?7oaB!}_?F
      z^7-UO#wtT<d=WHWa$I-N^LT6G#SktzExrtfdm3aYDndwTSjGm!R_4yavUTCUsbL8b
      zhSiE?^Xj16;O+;r(czS+;xx@p-E=K+9vQ=eGX`T35A%~E4kZz`ac3b6n#=o6XUP5e
      zFchW*2U8ujEv8q@-X^pt<MEiH>6ELEcjgT2DMc!t;+c%}oMdK_Yj}<q404-$RkKSR
      zBr>yb<Z0RMqKYhXGIS#Cmb5hNAy4sN95;x6H|oT%YZU(Zb^{|p&La6l5Kst)hKG2>
      z5OVrWhMft4^Td#zYR<rI@-s_}ZzXsy1yLd~T()iQ`e`|d?KP!Zpm~P1xz~misU<{@
      zRiYnB28hRn(tHaerKx0Jp;Lrb4Kc)NU#EST*0`R##+tr&gLOTBjpR2!YK#73BByeM
      zCFKCBa)@oRrF@(??qi2e6paVirA%TckVBM{NSVP)5u(8RM0dh3k^6xsVf{OjKasim
      zsON4_xT5+&eo@LVVTyf>sB(gs^4`Zz2JsW@1or9kMEb=mik5JILt0g`FdX3xq<;l~
      BGz<U$
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-EI<55dID<-38Wy^iRN+s?@?lyH#s#g7Kz_i3!1r8txDDNVmcvSr+1*i9ZkE
      z&og*$A~ky91NczJISaAq;=0M6IkPio=KE&m?2n({z5}?0Lmd%@gN_{9XMDt;+dVFM
      zNA!gB>|^1Mgj<}5M&EOuI&JPbeOY$~o{+-Tp)sV@IlIec$9~*86Kzk&0>f4y+PnY^
      zT1#-rkg5M2rA9W%dxBxzxBY=^lBhvuax=P9I1JlC*Li8_(1LgB42pXydI)#rc;AtZ
      z_kdwk3iS*U2x6Im9W>4bT5eJqj`}Ae4u&NYm#~;X6e}iDSY?Qo%1vdtVnT<Zb~zJq
      zB-HMzi6l&hRNaxHG3>R3`-Hc;RM1Sl-{##WcO9iqKWeHV42NMPLq>rrl{w||q$_55
      zFzlDYnbv}JD>oA;;--!*>Q3kwnb<~&A>I+*aewHxiQ96i9E_;qStcr|lJnrgd1V4_
      zc6e*$W)d;%nz)AR3^A$3o}us`7Bq#5eT%oBF(f8n9y+Sn$;tKERYVxfN0RQ%QI`(}
      zVxZ%IAs;e+)XsljK5SBxqx8n0(N(7Y(+bsnUsCUZbXrXe=@IfvAx-OL(p=JGBy(0}
      zjEwaK%T{%aHEU;#td-Tq$ba(Btkb%xJdHPq87~kwUSiRBg(c%PHppiAnR6%*7WL$O
      z6cK-?a76u`LZVS-D(E!7Ll$K#RL*h3`i!-YNLEN@&rv3kuT;NcCyEOY8I{O*i=^?6
      slE24>@xceMISKO{Kmj)PC<%q8f15!xBe+dk1b47cGC?+mySRtQFMR4o-~a#s
      
      literal 0
      HcmV?d00001
      
      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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	Y`{F!9ZL#5ZhRVS#I*&P8HAyixfv
      zv0xt+lphrf!iU5nNe8+`O?|oO5=%kA<p->wvPjf<BS;AIbXda0ZosHKkbH;y@~;r)
      z_ozs|4+;2?M#;ZXnf!<<<;S4Mzi6@iglc^FUKuP0n+r=>FLLQ}5j=|(U0kFnBoUbB
      zDU0l*QSe{qz)JfNL>A#0hl4__6sv4%C}p)MA>IWY*!RBmc_<+)N_30W_2I)^;@m3D
      zH%0HDd&0$f<#C$GMC4GSNPGb*T?{L9VUbwlL=!zc7tiq$wpbAs4;5{zj1DSK(-)6H
      zVtzQd%H)94CbMZroQP6IV?8ek$0*iziWp*5ME}~Vt8`JUhY#QL=>;L}04Q=ZzI1Xw
      zxUq#^rXNBg`1%^Wm8F|&5QUL%Ect!osn9o$ihL7jn6HdR`NCA@E2k;Gi8ReOiDvsI
      z(;8nTHTq7axNiz=@m0|_Up3wAJCpAB&7=o?bLfz7Ha+c|M?dr}px1m$=qH%_hVN{}
      z%`F^<&|5Ay-*UP67X0?V0gacN&)D3YLXU{JNPwGX(EXwno?WL#*AMR|pGd0s@oVng
      z)36ZMvj=TSK-|H{v2005M~IhVRfrl*C_7FAN^ufWv_a;P!d(a>a6qX-4dOEEarmg1
      zk@jvXEcCUI=7Wv)wNkM!Nke@IH++_jw!*>*F0vDB8$A?WmIGe+c0P5P1=1I6kOp~n
      zPXQ=+HU$)*wYa97o9_lPe7mWy??y#oYtupQri1KF4demNrZ}ev{bXlVfh#)=z4Qsu
      zp2kc?C_c*^Tc%gH7Zd{DBg~#mQ+rN+NI}zc@+Ps_p8SsOb}m&k-vacy#ijLK;)_c-
      zR6iuXB<PU1LQoA-S(u$`IBG2J6gz7X1{W)BD?cc9L*0tRt&XOJz$RX)to)GJD@o}A
      z=H4#owoeb2!MEKl=xK4|A@NnD0ixpoK$%46A#HH-^HK;E`JSgd-wV{=ha|xVL+$%6
      zP4a!8>U=NJ1-@74LOg5o{aB%A#WI)LwCRs;o8B)Tz^Wy59!~l^2sTYZlJF3Op54;J
      z;u|*dr{l_G?_=Tmh@gYwn>{J`hKGWE9P;DquTR(lqkJ0<Zz#(Sr>@~&qLr@D6gJp0
      zW97HC<zYLyJ+P`<JPAvJsN>KP$9F%)zB}iKZz->?L1;(8-&~`v703+v^E70jd|l{f
      zpvuns{sEc%Cl&ZUp^)!W8m*y}srjfvGiZ|Lr)gS%rfWf3s1?v6t)Ifv@_#E`xn1eX
      z?J`?#LtqYPhdvM$zMk&H-E?(#7w#6RySo*k4-1Y$_JbN}J^%k_g5qeJGfL&Pu~eX)
      zOoiGwU^br0aIMfLC@d`PJJrP^S0?zeSYkuR{^)JkVAjNGfR!UBKa36d^tbe$N*T4K
      zYW;!M7<YX?sKh!Z_$v<CtIBJjWyq?;c%@~}v2GlvkmdBB=cEcz43a91-G2Gur)jP2
      z*%pMfVr3J`m19CoSl2<5I0Zw@gTL(Sjzjr)SS5m@BJmw4VUhTrt%{H(<$yvOJWwYa
      z7b~*l(CYh~+#z!K!2zz9U_JbG)<YhSResWQt;~Tx!^YOYU!=Elh7^fkvApK^_%3$p
      z6u&+y-n91nox9BcILrL;2<SD5X5l9jPQzD}ze2az*Tax|{`>~yp0DqUKdI}duH0V>
      zEkFl@^0Zd!qqWf>ElD9Q1qs<mrP?Ks`%7uA_C=bnT}Bsbms3>RMseIH@$QS-)pWhK
      zgLY}x&@I}vv`4$19@2KwquMTd3ipS#-E>sDiC)!ireERuhIR|RsqLY6wSDwg?RNT9
      zyHg15ZZSyPFUDwhD@oY}y#(JKNx_{RMdOZBJjfdEIK|^qpOw?1d_bRwKa0OW7Rzaw
      z?P=#znTjk8;A)Du#XIo6dr*YqXj6w(9tmCK`plagfkG>F)QdP4MT8}A7zxj~J_89A
      z@7WS+N9DHU&jkeRflWl5ouX%+ti9+_EYm>;LhU34rr=zW^JIKQB-aM=t6*v#&@DTW
      z5<mc<1iFfSIVa%ipHc?HH^uCrc_E|Ngru95T1Y=AK2WOQSE7r*j_9fZN^rAP!4$jz
      zRN-KmwFK&p&;wK)kz7F!5ZXZx@Yh-FM0$`hFt;AqLmWNG{s=uVKaU<vMKxnF<o`;x
      zzxMSQ^ngFV1wG*F`_Kbi!2+iOxeGpmw0EHg??DeffF8ULJ@^oM@DcRjW2)5tPE)mi
      z(_-yYs?h~SbxG@WAEj`=3Gc4d^XLZMPdDlT+N%fYHobrz(fiU9dOvy^_s8@?dR8Am
      zKhcZnH@Lo~52D}eA$ngQN+0UOh15p~O&=+S=%d6qeWVhedy%?>{f_Y9&e4T3TX^`b
      zUHHJARrqkULMO<LI7@sCDXzp9$yh%O6t`=YewfHLEd2n?wtkrKQkH(0^sKEPCaSEK
      zewZjXSo&cK&DIaDiY0_&!7crG*Y@l|Xd_p~n$o8GA8fk4Qmd-js2?I_`xlHnif5d&
      z6{1Rpq>XEX;@_H;w}o_-xN)sWe0qQ_x|>v>7Cwgi7Jy|Ya;Lh?+)bZFnm(5b^f}Z|
      zN4r~JKqK{qRH`qcN_{cS)R$77em0$>ub@V~PSM?}9yU32M=jUM-I^2!*xxldbjO`V
      z_kOlD(m}cTDg)5z96O4KFO>X4TRptHsJCgf-N{`=k(3~WmAm%m6zh;gR#~NW&;&QV
      z>XZgQ7|f(}so)gzIoWRycS>^~>Dt4n(_C1khY!jCng(zqVb);04eq19sK4r+vX2_)
      zdw7-aVSqOVqH-DtcmZvrE1*19z&;N_IO&_n&^J?G{ZbmJZ>2H%<#d{U1)Z*Mr+NBS
      zv`D|2R_fQ#YW>S}fqp%Rxf9B<i?-o<g}xgKa+4zNT9AooyGz{dAgPrYZ&&p!2_e0V
      zRTsvUt3O<9*8r7sw+P)6>)GixadkjDPWDG(h108(WFhXD;6-u(M1q5q4VcZQdNf4Q
      zE*)?bQN#8VWm}XERGD2COSFWXEJc;E^m`#aUxW1A2gJWlgZ29r5>~u4+C^ftjYMBN
      zr-xaWgJsCtUYu)lc`qkqatQcq=M1$fj+R61oPn9To`s&X26+<x<B;Q!EKx}W3hHIx
      zo*Zp0f&4$HK9AW)Q^GG$0a$xTj+2Nr$CdM}Ql8b(DULcxML#4KLHute+Psg-Fm5bA
      z0Qi=mPjQ(nSJx|Lg}PoXPf^$F<YZeAX0b)mU!gqx2h?BxAvEbn5QHDoWc@WdQ~wDq
      z(SJ_$`Y)(S|0P|fzYeDVmaf)+PuJ;xqU$mCR{b4CKPzh9i`8pDZvwL&A=oQVlT)x;
      zf4W+pj--Tz;1ZRTX!u2}dO20H_db(qWEI4Q*<9_?d8tk3or=!WdZqJ4pNG!8gqO}`
      znRFgj4wBm$+X;w!hfUlKlv2dqK${eCH_%o^+zoVjCUK1r<rzb$zcG|X8pCLeaS}~7
      zM$nl?2`w>3Q@t^UnvAiOGRDy+ql~s16?C~VnYLl<b;eW=ad*1J-RTl{r%T+eE^(V(
      z;?}yvo#hahe_RaA*bf%5apy*XY7@vCVA@fJ67$iatcBOVklU1<a(b0s{sNs=ZuKBV
      zxJaI5bsqWU%x*cizDUmRk_$WKqT8sTTQ0-r<y~^c5!Xk^bJ$0~ygNM;QDu}JldJYo
      zUfEH(s>(q1FBUSKY(S!y{9BGgFx+HK4jHB5kUS5iGyrl|HXt2T#+|3f<b{W1R8q)1
      z;{Di73$RX+jCINN$|!^nu~FDZ6GO%e)F(Z!o93xxzDqWvyzxkpY_Vf;nK;rdTkFFJ
      z%Ve_3WCag*QwQ2!W?7ePw;EjTVw-Fr4uHtJ(T09pE>qWM#GAIpeVrztTEC7oqlp4W
      z41#en6&uZTlF<U;Xr^&SoTeEGns2nxVq+tnW3<yM;}VJ(o2k**LhFr7X@jwq+Kn&K
      z7GoP-Wn4}>jH_t3aSh#Oe3|YtuB8s+I{F5#j~hGbN#h1OV(g}8jGO2=<16%%aSQ#z
      z*h_yfZlk{#x6?<)9iqs%ON=n?7N;5e!JT`=9OGUkc&bV!+zPmuFE52=qhNq%R#Qkr
      z1&{lvJ_?BGaw`nAM*Y#x<K~f0t85Qyz>L2s7sxL{zqy0VeJhim<mf|w33t!YAlzMs
      zsAU9=mzT?JcqaH%k1eXIUMjCrrvFv!U_gAAc|7b6<zcy1Ijx*Kl^VEoJZyJaUuT<(
      zwq-~I@2{5BL4!gFe$~A-PF{-|O}cwGk@CTzqhuJzsIT!14K$vkVUU&y#`9DLL7ilL
      zo2rfP(H!GNT57zkC}mZLm$@p+T(_LyGP^%%K+!BGI1F}=dyyLAwK2rKNMt1vCzo<y
      z`yNJdb+}$(Tg9E(BFX3?vXVQk)~wuVwPw=@Bc4A_{X>R|xa18Qa310`XZd3<XunUU
      z@d5QSKBU3MM>N9tJB5vpX`=BDSgn83Oan!6<5T>Cn^b69fmOYWcD;*sz1x<pcbk~?
      zZWD94B885&4BE2tMlf_DQa-ya3&!7+gA}(y$hc(?R*l)(@}6y3PXz%jNOWa8<;`iP
      zs+O!df()~S`k13>pgD>Ln`3E|IgZNA@d_KOFBx{R3A@;Y?Ut-TC#&|W4`pg6Rb|#W
      zZDg;Y9t5-;F8`;EWO+*(>XSKNG;7E-YpJh!HXz2)T(geGnCDQ~TuBpgJ;hw5p#Lv6
      zl;s|@#VjwuYP>_tmiv$-TdkXaK_r<EP4Jy&I{umqyPczT(<yH+l6NTm<V>KS)xD8-
      zvL23i17HNOcXRv;9=h?bb5@8?FU`W?lI2h!D|(#*!$Ia{_(jw!sL<SopWM8XhMC*J
      z%N?M|)pVM94b3vIr{(4@{7TV{)L`zWb>__;MfIivj-ocn{qi2{;4S>mvsHG59hstx
      zC+|fbZ_!3^+fI&tX)Ee0pRbLhNTS*}o$@}_$N>qyR;72)c9<p=FN#J!7UcTHulMka
      zR_vHTT$NsM(5R@JPA@pfROE$Qb;+CV+;9egc8w>J1OzIQyo6ge8dB`NbUUa&lW-&j
      z2A{8oArX9i26AC>MIHIUfe*j=EpVk9TzMK?IRdU6g@zrYspc~@!+e%z!Zy{I-v)QS
      zN9UX0r3=g#@w<sHQM>svZ8cw^Yt2{bcJnp5)BG7dZ2puEn7^Q>%wN%A^9_2&{2e`u
      zHNJ2DNpaK4JzjA&_7zuSUy=8tQIpBdN9;DvRFn~{HqH#XNj@MRggn<!i+m9LH;{Wc
      z4(d*u>+FmklAKNLhum9SU%<{tRNK0+Ev*Ncc}N+bgOlIbXJ;w$5pdCyrEt2ex;pXz
      zR7BK<RbW&SMqpH1en{dQo*h)kT7f7=E0Rw*QB2t(<+BhG<zX1UmB~s{NA+~R8)qzM
      z0P&l_8ou*W;LoGJ{(Ktj??a>f{V443OXdFlG{s*;)BFQyuD_V(`v+33e=ybghtm1}
      z;dFt21g-avqK*F1w8cM$F87c1n3-)Z$+y`gPiIQyZq77~<|+k}G#{OH_WwSRm%aXF
      jAe@wkKu#&2lHIrtLC-87g#H%D+=1)UxPAxM!zBL?m!ck*
      
      literal 0
      HcmV?d00001
      
      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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
      P2lz~R`a$ZX$+f=){8^t8
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#i~D={D&~F_c0}C=^7JEwEC5A*CQKEscbtq(rF?x=DAE?WDV%&8Aa*
      z@zEdSqoOc8Ipe4^(LrorDl_=z1Amm`cQ@O#g$Bomy?cM0bH4AK^WEJi|NQwFz-io2
      z5fK<EJ9T5xTrpP-$6T_VvQf6(W#cl3*<d~8)R!#J^ljHs5f#`ijg6{F%WK6&tK_Tb
      z5*XSR;u%kYXw|Oy0;vyku2(kPrLr;U)>?MPgzYR4c}$?&_9d3<2^{Tgm<^5S5G$H~
      zsUje<e3k{e&e@LbpBK2E?(Cl<l^M6XV0mMmjW$3+!)&I&BqrSjD***b4ZE;MKuKo`
      zaqPuD75${#F||!Z4g1ke-YaIcZp9%ms6j<{94QQ`I4E$uW038PWT1o$a9BgUH9MlA
      z2bw@{&UUQX`cl#I=FDQ%5=iFUl36X7o-NnmX4J3PHGz}4{~-aEJW^!6k998GX09|=
      ziZ-n?ovpVgMUQyU(Y*aBX{#mIS+P9o#&}LU$1=I6H7S)*s=77CNKCDktYs<Rnu^m@
      z;7&^2FzLaocwNP70>l5=1`TgW38)KJ&G+0-IIEbotFA{(%3?mj)|}NahBItPcrsPB
      zmMq6-(W8#F%C!2@J8+kt7c{($ae*Fb7rM!2PiS}nnzXp2VM@kU%a$)uRa~YPf<n}N
      zyK2n3`Fg1my0&YOz%-K5{T&S_a56#dCS}rBHO%4~?~la$$YIOU+0ISd(&EfKohrd)
      zqBLZy1a}g7x9*j!X<LeKaL13yDM>XtOezYW7^3_r@gi`9)N}Brnu9k}=3AcaLNBd%
      zbLJru_zda~@uEJmhQ1~S^b>11(8MAAU=zc?(<*|a9Qzp`$kYA?BNfnx_c4GE@Dg|R
      zRumk=%Ul72IF2+i<SfI}NH80rpTe&nYsR&}DeU2i!FiOcR{};k?nu9WeGP~HCMmww
      zF)E-7Qrcvb3=l15Tc%%yEm#bgXf5xMiNKpU^9+VT8;KFqAK<M9C#?j#f=z!*m{>c^
      zIgCFy%=vpyh52m9FcdODWaSHCo+&1H@h)OYLr(Y%JpKW(XoJ)yH>tI1|2eb$f_?px
      z*?xt6_<9RQs!f%W4>4|`mC{@bqvsK(Z$8A#Ut5s&>k?AGN$mOP$4y)ueSqve34R+p
      zpKSzb=Q~7Jz&9MfrLJz_0KQ`{zh~v|AcwnKIL@{8!Alo%yiesS^q(OQ_Iu(H_LAe3
      zoLur59$80D!FcL6lDa~E8zN<ewkbo8@K9+en>8B^^!_7x{X||rV+g<C2pUx8uhiUc
      s{CVHUS^R+uSi>bWd8gL{u7_KELax2c<J~~ZLmc13^`LM0Ap5z00RS4n+W-In
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5PchmI5DPiQ@)`Ts4JxbbrTL;0!R>1h-6xcR=sbWm9v$zM)o=?KMRS1
      z#DO2ck3!6*5ug?hIqb~N?99{KdGq7vx9<RY*m6-}=q9@4$6_W<xE52T6P~E-1Ajwi
      zZyq1We5PW#D`J!7AH$xDDnnp9cq*v;aFR<gW~iBoD#9)yM$19=85%Q@hIy%nhG8wr
      z@`Pv8gb()Lzk12ZP(|&T(#pJG*ljNh{|~(FBZlfA8_Nb5uK2iwn!PoBxTt$@u<E0M
      z7K78arOilbxmQj{GCvffR5G-pEEegJ$d!#3$*P?I!;>WmhCTY9L%;WM3wK=HW>~#2
      z0v|UlAMYS5a}q;Y66^mHX~(L=;19Ky`5+ZVA&FP>wT{!QAc@~eGs(s-9x&`Ir<IRQ
      zgv2kAW`A@nV>8r+5jrL|<976CDb61I^UUwXqJ5I*QiDtzd1B78yfiB1Z$&XNcB=jD
      zi-72oOb)GYB?zo)K+v+9*$kZqJbJ%Ox91ewx@PCmDg4gkQ>=8pBKR~fTqEnv8)%|X
      zxJt24jZ}_nxK5tgaW9~rlDBX5&S$KA!Oim+QzD@M!l*AW9NeX@3f6Ityd`E)K)4%Z
      JtGJJczW`Im<o*Bv
      
      literal 0
      HcmV?d00001
      
      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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
      Vd#1hxfAHd$vC6xw37vPK?LQu2o$det
      
      literal 0
      HcmV?d00001
      
      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
      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
      YTBfs`jVb1$Om5*lb>CY_*^=9S3%q=#YybcN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_c$x;(h6g@9#X$WBu5J4sZkt76K5m5=EB#c%B848MWL3NTxXiWO0Ivt8~?T_fj
      zEmk3vQpE?jbm_;a_a&_)Cee+H9^UP9?>*-Z{pI`T3jlZVOofYKG->9v1N~4x(o8*V
      zm`N>Zh>R9BvUb=o6J*HFo4GW%blVW73WZ^$vdbd*t>i<LIMguomc%c^FsNB>9U5`Y
      z&>t06QWNQ<77^J3QY$<n!nFC39b%}NHcZ2wVaWO_pdHpyz>-KMxD~1nTDGMwVL8C%
      z3dqvr{w)S2A`;vKHyXUCLnFib|EA&Jsslr_7b<EQnxcluS90kXw>I@yii*?{6>&Ya
      zrCWwPJ4VIcH?j;`v~qW<G?dEeitRHDRghj@Nd|Y!Ahf?a`j3(_)Wvi=zQ19-CgN<F
      zp;q7c)oe8`%tLP3#QHBK4EdvSezcTM!?_we;Bh;oqK~2d(!60?G^yd--X6C+=taM5
      z%>dE$$y(mRZ52Zdo#nITX!K$jJ_c{BF!H;mo+i2jFDvMzf#4C5&Ips6c1R`*crk(?
      z&842na5KRW^p!I%7E#PLA7M;J&=|UWk*c_QTG@Ll#u@s`Wt2>*7ZbQoOJ(t_NF9=n
      zDc`?^6t#49Jv@6^=m!jKCHw1?Oe%lm#T00SYHd-_L|9+B0@65%$Fe1~w8O>4DR_k{
      zlxs`HQ-;>d7SA8Wc}D(&NSV_nDp-XEIsAy0QfOmGQTUS5(?A;3Hj$qxxmK6ioH=9g
      zY>1o{=L?2hyzVMnG$tL<PfP2j>k3_vyGwT$z1P7*_j)?*L!qxgV_+oMa|UmqQ~8Ld
      z4|&{GX(xZ+1^KR_0qba?(?r1ot!Sf@#9TvrK0_m}qk}R?TPJSheH+n5c@_HJjUFfK
      zS2`<%+B`?^&KYh#ch9`XU~uFFgFWM?@Nf6X*9#@_4xV7Mc8byMH*QuizWwnnaDpZY
      z_=Gzytej(VCwPj7qi2{t-e$*?W0DxJ;R!L38Umyi*d-P^X^0cU1O~y$t`qVAb9hDQ
      qG^xuJ>D&CRZxgc!Q`A~S5h1jT;sr6E*EdHI7qFPG@)BinVfiQ4W7!=5
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+fEZv6kP|Z1LLSzk(<^VURo%OS5&H~)LXTJ0s+BWrtMIMv@>-&B}(F(KcX)t
      zK51e~qKO~iC-^byIx`Ja+L}qH`<%1R-fOSD_x$|*?FWFfm{rgwa58UK^i^Zcc&*z;
      z(X#V;-f~KM+A4du?Ml&f4bO6H1tEdq=Fq#uPx)8>xv*2<@IQVVFakTTTDIj)2+Ty&
      zj+@t=VqQ-=<p8NqT6T_vB$azkA!oXY)}WLpnL2I_n2OB{gpy9qRMC!I8WeO0>`hy?
      zIaMiUOn1)66ik6|+Q}M)dBe5jy0#heR;;qX>2&jaw@H%_Xv?fn$kycQG7xCbSVYHK
      zqqn6Z(3vs3?8>aQPQoH3pky6;&2&8h{XeoLVrePAUNBhG>CCE`^%4sD1$wr&XFZn!
      zPga(fO;<%94oaa8kz+JA--*LGs^Ew~f6LNnIELc_S|+H}OLh=B9)H>-Io8xnI>nM>
      zo3@vb!A@v6iBoI>qf|2OoIpI<$hba<dbYlYsPqsMI2cW~#K|;<HN-Je$J2XLBF`gD
      zXx4gejsS+xaaO?@fk;aQBv8XSoEO-!W)v!POYu?)F4BMFt)R1$j_sMRJr$R5MZsk@
      z=2l6P1*2TnFb?*Wk~cl6n?QH8F+o=I8c#NZOwUZ-tQA_pb%Cxer$PA@+!Pp)yPLD_
      zS4BpAWLSO&BsJWUp*uV$kXywK+>vc@mlIK6px`)BSF+lU96hDh5v)yXkr^gr`|0&H
      zcnNxv2w`ymvXWw;M7RMe-IPdQ;E;dTJUOD&S*PM=%{!Ky{O)aIJSufzJF|ZL?cf)(
      zjsN^?@ZHJP97246j-larWCQ9KAEEKB5(%V;y^r0rh5{V+U@up^fiCQ$7iopD-$!?#
      z8wdPIJ?IT0h-17b<G%flzQqj;JZzu%h{5>qS41M`su)~|Nb^T1_W^3WORwVe!n<}6
      zY`*{Vi-$v1jDC_K5%b^hqaLN*8@^D**wjaa!&d{NGdv-U@3^rTuVQj!1GmRR{h`kU
      zw?U>g&IEubB)!D6o^fEGV-PQx-V(-;r69|+^4zt!TIH(1r-XI9@@1IeO(wG`!&}^=
      rNbD?BDAWT+Q8|@qUxp=0@eosdXE&_^MGN-Uxi^hRlt<vP&u`{0tuVnE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6(M}UV6g|_HF0?BxP!JInElRr;79l(s3?X7QO)45OO#qE-m$6;4JKJn$O+UeZ
      z&<8(&2TdR(n&`V9WxTW9XrnKEn4P(2?mhS3b0_=r*Vpd=?qOX+f?>TSLi5CWXZ1{B
      zd5&nAjxBpNuj86Bute8<BEntE<BRcL6``jg#gJD)rfX5ev*ro6rG_-abcBY|aZTmP
      z14}x-U`UFdWMDOhv}`-w#Z`uKeaO_C6!gFmj@)8cE)5-3D>oQYJN_{r14B;77%~|o
      zF`*-iNh+ySZj7OT84c46OG6f;<1$8x_if;NiuZ~RO#!*OBlvFUHF@yTYPy_ZvhLfK
      z+pq#h*)f<>-7{<q+r^;lq{C>(?>c=&b8V~p)DL*o<sKK3NU5O%hOFQ{8G{UkQn~)`
      zpf)uuGA#U^)ULl5+U+=|+Ov5_rO2R&2_?{yjuOfYn(YfosTigX2T1p1K+k4Vc~*4X
      zRbr%FE?Tlp0}qrA{}sTH+4IA|=8qkvlpepW73D}~O$Z+BxK_8zsjck5%fkXmo}@K`
      z1U+I>9?0j_WXVd>%0j2xOLTfpwn7R<<s9S21@cDa3{&$*=a~IMcmi|u9glpf#P^U`
      z9^oosGZA+I^SDM9G2lAoNf7UiD8FLgAdAtSHO?^m0VAo?<SChb(sXq7A|g}esIvNG
      z3^#F$5JmAmZem+ed_?veiu)J1{e#T$Gu$!u2|h@va@Xq0rH@Y?_jltHMvVkrRzCm9
      yJBKu#4@s6+$l*23?+xzb2wP|lG`1brQl$2lu|m}(U`8CP^j82$sah*w4fqY}kMDc{
      
      literal 0
      HcmV?d00001
      
      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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
      RfyeMTuksHZo&UcI{11yxyHfxF
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B!AiqG6r9(liN<KPAE0<s4_!PfMJVVcRIu9nCSBr|bhm7i(tegF!Gj;*M~N>%
      zE0U8eJG>d#d2il+e7?N{xI`~Ni!jJcDQ0pd*TTrTHkp{2sTQTnMQU9lSyaE((?dM8
      zrcmqRR;Gn@n*bi6-|)z^U5Gn|QSCWaZlzPTed803|MXlgw75@ZD*f>#_}AL#VnAr0
      zolgkf&`wo|HufR}*dcUdZPcioC(1p_Bv*u9Y*U#}q|+7u7QNzGF9|nsW5$2wyds2S
      zTRIM*t6nGD<uq2(uae;uJUQPE@0$4V%#6FtM9qQD#Vf)W7FviHeU__l*=LOEx`P9B
      LnGp^dTR8dxa8-Di
      
      literal 0
      HcmV?d00001
      
      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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
      W|0$Kx-QbTB8K9M#$*>w~*8c$7a&y!G
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<-)|B@5dIdhR}L&nv0}wa)wUd<7fp;07#}pPK46VtXshwzxNdNfyK9y^Qva)(
      zXc{%~5AcsN&TdaF;m5=6?aa>i&CECR>-YDc0Pf?ifds?Do*&tLXXG5)zT*kMXZQU>
      zVMlUcOHbHMF$|vy^7y^swjX(1I-v-B11W|F^Pw$I>}tj_+ycYeSh|TA24l$ONVuG#
      z)Ksy$63Kg1i~MA_;!A^J;j!>V_=HNSygQ2=IMhKqlvHnH9@gqGq@D$b+(Z%=vq)o!
      zVPzVN)k%ZlQWgdl8FEeG^WDhna{0#T4yeR@GjN?j$B{zWu`?BZ5JQGX&G{0|P?tJe
      z?8c%qEKg~T0-W|=kqkHRM_h&so0UlwtaGkc-9C52Mh4e$!$65)b+)`&tl=g}JP3l1
      z(GkPOY;LtEE$#&&Zx~o-D2xp_ULO->+*U&0Vc43&HCd+BF|bMf>l*c7w~t+Zr1p<?
      zBo;^w;D10oc`7^5t&YFO?K7C|Ad)WM5o&;?8B@5YXt7SiPttdRKByg_GeP$>Ogb}U
      zy(T+J|4g-Zifpz16}itk=rWy4`e}#Y&k67XdGeLd!m*43Sp>uttZ4cSu2KR;U&OVT
      zzK@iSFIK-GSNn$51YZ6?`Jh%m#jTS)cA}95;@BXh%9$qwut&W6<b6xr@6Y8e{>xj$
      S7AiW62@6%7w?@bW>VE*nkP){4
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8B16g{`pF02(Q)T)Sx@>M|H=xYs{5Pe$E6hlIInwCkOW_OlMX9+(GUL?`P
      zAK;HN-Wh6zw&7(a_s%`%o_p^6{`2D(fHznVP$0bO=sfC*Q*jn)kt*GZy82i}xk)0E
      zswh@H`%&kqG{UM(2PhKW-VSM|YR@y>z?BG#H`<KU5K8ZqR(6|Es~^R#I7$Qy+P8*v
      zH8u_i#hvU}hM2(JG6GBzW@4q~UY@q3`6^n8B+SNHTO<d<C>QsWMf*+l2vK~y^r2}R
      zgvpj-J9LM^b7M3Sf_A1)rLlyy`WVgEQlDF0*|v=U4+!(aR>+-1^m<=}G65d)Sblo9
      zfTm0{%OgL=lK}JoUc4_JQpN(FvW$+j>?qG)t#4dw+V?I*70;YyON8|?I!6)C?Vvxr
      zGj(Jgyo?i;OIYx4gYV;142EF`!~HBbZTU&L<y40pe(h-S9K<Un+~I#&;F~wg=M+cV
      z92fX5ZEjs6yzuX3K0}{<&xjAW$8qhd3e%Y3i0e_oedb{0nCo*jQRFT_<tM6#TeG$A
      qcyx)y-IwQ_E8stC%q+W}b?K^pz*=FYFPLqb>zA>@Ct=m2*Zu-~1J?ck
      
      literal 0
      HcmV?d00001
      
      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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­=Olf=&-lm68IfChZ!<aGJ
      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
      Y_gMMwNg3S@{sNH!TB%74tD$QC2OZZ)dH?_b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C-%ry}6#g#jsFVsr5J3<{6t+&O5TDfeLPlaTA#rBO;Ki;qa7ovau0<aGTYTmL
      z6M;k%eD{wsez&V*!eU~R+uU>S`F@;p?$2M}E&!}xMaO`^>TZzO`_7?rWCu=52D|ot
      zup{jx^6jW4?RPD?kseoqq~%3UEW<#DCQwiq+jj`qZ0>t*tYc7M?k}cmNCC~4?O0%Z
      zyLySQ#SwL13Wx))Hv)sNWFX_$0+Yo)d8ImO*1{dnKn|lOhEWj66-)IY2;4HE<A%U!
      zRR-Qh(rS9qd#CApys3t+<JX-?syI8;;yu|GcwYVgF3|6AQ?ggVZZ)k*cf;V&i&))a
      z@p^Too}*5~NTBaI?YCh>cl5s{U{sD=??Cmqtz%ALwqHB{q!=vsfr)v{u-uHO;(IMG
      zh*^>rct^A{QS2kEkdI9)Vu3ZNybPuqSTr#NLuFVdrZBDJ31!k@C9(AFjj)!udl{f>
      z*FYJg0(sXD+pNZ@g-PUk>ryp-y5AdGR*c#_WpZ434Dd;EaQs8*rx7?>leae+tusUA
      z7}hyPtnw+wzAzfVIR7K$0M?+PLhL#w7)^Gvahp5!8Ms4s!H3J57z^CR40C3=*BISP
      zRc!7APx96o?jLj05g1Gl8!53e#Dt7k;2{?NN%QFB3e8Sm8cvbKs?ryvQxXO1E0(y%
      zE<Pi#9p|pv@q2g*T|1m<#<Pu%?NSfVl%)u*2AQ|C52sjKJwxf_JIal7JpIu%+G%La
      k<|lk!AA5vKU7=+ZGNCeY%CNYcNJsfo4^VW0b}IAiHx<&~^Z)<=
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7C%TC)s6g@YXn3|M8c(mz*mK_g?5f$nts9i)tt>l74Tck>CCe9Ehvd737qwrT{
      zh15#@fPNI}9otkQuwgNe`#N*(x%2nt*B<~oSo2XMyc?KY4CRF!3nLS424ZOXTI5+Q
      zvP8S}{V43F#;UR1myu1gOCKI#-qna$a=~G5s3Pm5PFTHzG&<K+u&N}~_q5UW17T`?
      z<Cx%e)4mEYh1mvt%n+KPHtHZxdMf)Sd$A(4!ZeccvCOoyE2n4A^oXz<KAwGturN@z
      zB>mZptTYin(_arKJL(jk|GFH=L`}FVT}rRWt&YVfIXbhBX=md;ppQku)+0CvXkpn&
      zv%*4D42x&J$n%a9u%4+?ZpF!Tk3P%GBjw%}A83T&yI|Lj2`hKww_OotmATMaY7%8E
      zVYz%_qD?~ZHO;d~?Q1u#_Cr5r+i}Ahc<j8U`TN!Q<bm`4ge}1*@j1PDjo_*XH+ZiX
      z&i8oA_ePn3IW*bg|Az(MUGWKnI>_KRT0h#}HI{y|RpW|VgpUQnZkbgfa6X>ld4U?B
      YjTc<ud@u2e@!ah-R^f5{O@a3IA4XQvSpWb4
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      DRI%qW
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+8F%E(-7=_=DNEH|31zcgF@d`v;9UPr1X$Yh#N?Sv(=HLN5l(CJI>&tuJ_uil9
      z3&0L5hJ>(fwd1{bh>2@yxiN|#v>k_=KM!tfBtuGA#{ySExBPVNWn&5K?u6>BC(Md+
      wPgrU>+1gua2x(DXYC`@a96Kcmn?Gt5ff*sJ!xtb4k~uO&8N(tZff#e-UuJ(P%K!iX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pg#-jmBuTM?XNV2Ny416fZ(gu?kA>leok!+YM|sqMzkS@ZbmdQR1W&
      zMDQTXJmx)ihBxo?>-_`3DaI)x!eQ+?wcsayR!#@iwpPtLYp>aHt^F-~Uh1HIn<6Ic
      z_8*mHSF4+Hp{tN$NI3XCz8;-&6&nBYvw<+YFwTTa!r*8!C&X9HgU&F(R*n=Kgi&Ff
      zo^{Jo`+F{}CX9=wVmoJVdcGFp@Mv1Xr1+=xb3%64biUG4(=Xls^T3n-3W-JBNhJ~y
      o$rE3Ko5IwJ1Ih6lvR4rz<bp$yfir9i=Bqxz4o1QxF2M+U-}b~@MF0Q*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%Sr=55Uh?dqwy8QgCC#}K^#2itSBl9`vv2qnM_z`!|bf={+fq;Kt4+B-AIDq
      zp=qk9qPlwZ{j~&ei;+T)aOpy&=jPMYI&jiund`U6*~~<qK5_G6f^i%b`h-y{)42&w
      zzrN4eCWQgv{I7ZIAq*TR!G!Da^VXZC=!2VFbyTfwY!<1|8Qa*YCxqc$ZF!M=5lV#v
      z!bN8;*;dh~MsFfMIHZk~aB62oQS#$dXwg0RkO*hvb<q0m-)xD<iYi*Z_c=?2e;VJk
      hnNp9iBeN?X>&Xig_5|$<>dPJqbBH5BgyU9$lOMzSV$}cu
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8B16g>llLRr2Get)4Nt-y+kD8-^8D4{5(2BR-#D3h{Kwq&~{@Sk|lL?LQo
      zeDc8`Wjr&xmQ|_7hyA)U_ndRjy|drGfBXz!3=iUH5U`7G)n1p|a>sU+Z&xZMd&yJz
      zHR-9<1+}{<U0GD#lJw-J@|9PKBPP(L6YP?7i}ur%bye`=Xcid!6(&rblLf!*?H(cs
      z#5UA!Mc_ovz*K#wWak`rL#;lRm9<5=l@VyoJ4ILeRZj`b*4sA~EEpYm-*enz#zc1P
      zg15Wnm+ibNc*<uPnJh7zrySSuvjUAnsb#8|DX*#o8qsN?4OSf80>|noN}vm!tq@3B
      zh@(ZIlY-Tg>gI~_p39XIRrch{1zB2_o}<6RV9Z~0Sm{{qKV8;pi$=M?@X()Srs~zH
      z>p5-V49*I)5MibyD-_T>6l4TFGr^3m>AZyt7@#BE$_7T6g2rZ|d0{AyO9K5tvwt_5
      zwz`}YZHKWk+8friRn^@P7>P3dqjjletu$@nDu$_)5CXTO`Jt=`VSVic;P43?uV)}f
      z&r_S_ZDn-!MR`J<saIOhbqhDNbIrkSfrPWFT;K5>MZf!h`fY}Lo(D(r5U{K1BNvVs
      z<gDq>Z3}lWNfwIE>lStYlFv}44O7U*aaW-IaCo_3VH)Ec0w*M=!hE^v71W%g$93SZ
      zr+idHaWrTbuO?nSdhYpb<-el=2@~U~VWgdr2WB78l|Dd6`V+cd9-!wvdf%GeeY|&Y
      z2QYyc3+luq`uU}^nS*0E&L@8eI2q#2lcRyL?yLJa^&<Tay?i<M1sC5i*Z>WfFdMQI
      zGHt;6gM<)_skn?m!U<f#Pzd{)BD9P?13O&9=3DB;q1GO%1RfH4mNaun;*p^^A0*c(
      z`a%i<Vg#cU!2c<(g=9H?>l%{L8pgh&DYn<R$9S}i1#;ygWh84H$yymVG0vR8|69iO
      h2{LI1+qFUanD_ur*r7wsX7O3X>h_w|_l$u1KL8bnXKDZd
      
      literal 0
      HcmV?d00001
      
      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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	iAQ*wKd{}a
      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
      CNbt%4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3*-8U36g}xScG1?lRz>hdx`4rFMUdk1P;IeN(6@Aqb!40=nbhU46qJI3J_>%6
      zcrz4gL8OG6<Rs^wn{)H^{rV1I6Dt-X4C@`Q$FIe$xaXeKJP2IgJZT&WPjsYe2qkW$
      zmMX9iW5^jEcZJvC_4c*2wS@#JjAjo~_l2!}^)OUmh+R6aWGL2#C2jT4)jkgdl?_yv
      zH$)KJ`RZbym|F~qZO3!;4nt+^q*99tRs9Q@LKKr3Br(MhEtXmqaty0O2gg0vZTOBy
      z?)L6&+0~BkrI5vB5)3mLSeRhQ)*MeB_iox!or<=3eZJ<~!fgrV7(6(P=_@A~b@pE~
      z$yv4|^>4Eb<zi|4#-y5lPubG6iJ|b<hiw?ASR*e{ia15ySfZbg&_0P2&1pjCgd?=h
      zm;1<6K9PPy_N<TTk8<S&`KORSYwk${*hLIgQrSZe2bjYlg}DnAXk8#=u&KmoETS-|
      h!$S<j%g@L^5-9>Bo1kN$9?E3GeS9FpuoSYEe*mx|r^o;R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZy-ve06h^;WC@Cq>@;k7xQIN2hyLCW96cG``0FwzOxC%~XJ3wBIfd}BB5H|@@
      z3+iCs<(w<|`0M-Q6Tm691GESSsVT%nzRGuDlo!rrBEF7pY~lQ+G%{5-z%rp<AtI9|
      z6;}@vmG}TFg#EwbyhZ3Fx$#mPN7y|a&-~b1ZPMZ3ju58GU#K#Y+7gZzL5=5BQdsRv
      z@e2<L0jsghJYjE<cRwO@8M#$fKWWA5j}~Fg`WNY+#Ym^;#w&g>Z||`hN$1{j`*@}^
      zRq2EAELCF5sn3OzoXgp%m}glJ<GiqmYRsK~Jx{6>9FMTXr_F!S=D-0us6wwItY;T%
      S^<2kBJ$vXgN!aAOg{>c*f`8Ef
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtWT~ixX7=BJzNC@c%X`zK8hT0DjLIb6(+VqR0RHK1ngF(cqOIX6zu#1}wZFR=+
      zLT@_bZ*cUcw{^w>V`ti4`)~XM*5~YQLK2d(ju%Px?0Mhkea`cKoc#IsAI||y;u}AF
      z0+FIoN!(Mn)CUPevlHcVDUr)%)B5JRX5}int@)t{9F`V|l4=waw^#0I1zW(Mo4J$E
      zq-O-e*}dJIZRtiaDR3Zd8f9BG?7Uj4XaRH!9Bc#@=vGTb)6(tr4FR9N%CF@VfwwfP
      zteb|wnQTjP^Ok9w1+$cQ?HDYuX_;I4s%8lscgd8sLWRf=6Et>qXw`K^H+1`&z}3<H
      zjF(fd7c80=P}1hA7DNa7Lg+=mK*wk_-wg&2A&4$N1_e&;X_6_Gw4z#?wu+Sv&9G-4
      z6tqp72Ml0HV5Hzk9Vtt#Bbl3#jY`>$tY{JYz8P70Xlvyl1~4oGy(!Swf_XF_#0XCM
      z5enfgoD%3PluSbtI64}wJExnsq@;N!gdT+C(`X0>a8Te-RyVY{%EpRjEvPFcI)}4n
      zK`rG~OP6c!rDCt^WuC3IRCPr|wR?)1opDN_K)CE^YoF#^E~lcc4I9COH4)2xO!7pI
      z+O?$5nYl_~eY#p*HDf=f1di=x#;w*=MK7^-f;f*p`E@CTxA6|^Mcv%g43_11z3QHh
      z_0l%LBm=lCAjT!q6^V4U3BYTS_5jlJy7asuFf^KJZx{gEMI@yC%@AgAi=AMbE`D?R
      zy{JJZ{rwQekrB95f2<m-mMzz){_1Ndvt2X3Mv^7dtYkVXFxP_V|AM}akNlVy=x?l>
      zoHsQ>xPzQPh$UQ|A1wP5qtWGdQ3LpxQ?hZuU5?1i3<oiRVGa#L-C!ehS4R~A2in3h
      ztvWxMAU?;Jetf~vQq4=ER^>BBkzFe#QU&JQO5{v!FTL&P*VkCxpeTfJ2#4hX7-kJc
      z(w8GNtyaoBO1wVg!n$SNm!l$CkG1#K4<2Z2uk|c#t;BmIkukP7XyiCtP%Y|R>s8J%
      zXC`vGax$`qT<*?k{?(cDM={DO-8_yp(b|m$ddPIwW(LE{0mklEn0EG=oM+Wy5E!h^
      z)*5hik3eD9wEmJJ5qeZ}*l^d<vEGvY0nI2lx5D1!FmyAK;%$(stgUHQ($%8rrM#Mg
      zIkRFFv|GBI;YS+l@tjm&8DU>_@DD&I2KnjY%FmS#0fgn{#pkfR9h_g@4bC2mfWJW~
      zyoJK_IKtH<qA2{0#ddHsHue<9;?FyO#(`%TSPGxm!5c4P@ohw2V&o}K$Ht%H>~9WM
      zl;6Wn%q#T2j&9swkxlcGOW_pKh~g$<64yn?7~)*XwPYupC&|y}JV}Nf^c}}JzDe+%
      zLYoPP;VO5e)x<NLU)sTi*fuVP-`z%XtYfMdufE&HweYlDD%IsS(z|%?34MIz0WV(0
      z;nVM8$@`K!M0HeR6EpS)`(m4nEmfZUFR|mh_^>(nyc0a)g4Kdgdco!YIGG%uLnE_~
      z#!pPKq%pONxopSP$2b%l8#*t;EdJmVLu1c>dG*&bOe{&3;e{RKsZo+D>|pT)b?hc|
      zFHh>KG3ZoBo(eB=XPG;9Sq+OgfkGY0DSYDCDa^(aJ|#*Q`e^-`M{;%_$zMsalO*F}
      zHXMkJ?c(lBh}k$xYUMGG&q;o)vBk^EfHJ;~)x`njMf?eIeT?3Rb&uUiRxqG*RiaEA
      z+%eG)3lWrY7B(4fIV>-@u{@TH>If*&Vz|eZk6uUd6;V3q8zhp!6ZaDB7GuiFPw-dP
      zVQ1`j9Ba<kw@#3dYv2`cFE;VD=X}v~?xFK(w?CR8zORGmsX<sg$Nu;$&CWm8Id|5a
      bZB$w~pKW%2wBK0~)a^b`EAW8dK0N#fh8FHh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YfsZq7=F&$br<S@D))=12wR!danrbkV8~1s3z!s^O#M=3oh4ms+HR45r4Rzq
      zNc`-NGQOt_X`&|k(4O<&p7(h#=jX4lmjFt5l0t%EzU6kbBeQFM(p)Rlg22%XLx1Ia
      zq1W`By5$G9=cXVs<hYmSm~Km}x}7#dk{r9M3=4Wc7-b6B*Ntw8&bE2v`3$Va@3zbD
      z1J&Jwo%#B6{h(?vEWYU%GhJyqwrhu*3_`w8XArl&cUBt7EEp6Sw{eF-s`OmO^ZHE{
      zM(Epat6Zzq3iS+mkIG0wN+ZRE2^lF!{5B<H05Zd%ZoAfQr+sMo`{toz5xnj-O{Z@9
      zHkTu176R__taF6-uVh!L?#oCc!_ntuWRW4-;Rib)rd`wNSad1m3w`z=ivpHXP#K0|
      zwH*hc)s|7jBZiFW`{r@e`*_Tt#!2lR9$C$>T#Gg3T17o!NJVV+-ZMOlhxHm)=x;{6
      zB_$clSYcR?!)!Zd5R_xN|KQ%#!8eUICu?{eziGX&dE3YSUeIM8L4_K2%QeG}PhL-B
      zz#OI0AKT6HR*A+U&=W~+P4I;P=%igB%`l%@bkfX#p-H|OB#WfKg&f5VlJq+A1y;U+
      zHIyMi63#Jvijhbh6D2Vc$CKa5ESzA(Xox2mH%>A6g`yLfrhhJCuta!8%+i2oA`7?D
      zLih5#C7&ee6?JL)9JA`o8Sbeg;u#*?;3&k6KXwVL#C44-SdXygB76l8dt8;MGG4X9
      z_mQG9SioX0(+1_?w$T$zHeL$qWuwB$?+8;D$QM78<%+dL{-E!gZHA_<^)OWO;nu9e
      W)C)ZR0rvm61hM6qYs8kH8@~Z?TLtI<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixOK;Oa6ot=??W9T57mxxquOb#nE3gm<7C|h6s6etnB2_9OK$<wy#+4ZtKTx~j
      zhp^%YWP=1kVu4`Gj{@$Dtu!h~IC92weSGeB&;0!L^&5bjSg)Z%xVoouZ(qC>hn|v|
      zm!^@|@B7bW5GSKYLX9Gs)L;{qwZ@Bt+Vh?c_hpa~=7U&eQf1pm2a-TNLiJv#!t6f5
      zZudF^ULM3F*?@)lCTeIBtafKm2Vt=Z2UWt7A1e7Ie?64RwirfibIOkc5e-BV>U~+X
      zvvHUbuKE9m?J~vKa1*Y#eM7Cn*y|l-vX}4f%B1_xqQ-4JJPhPP7RD;A;Vfb8uUw`A
      zGm4&AzR5+zY^}1_OhVnxbB-m}Go1{NDd)x_9qW9I)no47kMksuTcM7jb@C8yXbXFt
      zv$Od0*i#3{PY!I3c8)7`-ff}6KcKPkg>UyW7C!Q>f+hZ6G+*9k{T<fc#WL4c3pG~Q
      zPhSn=N_^g@afUrxT(fyyWrc%tWfzZE;y2F5CoD|(p=eMw#T{eZECi)7;XKy3q7ipk
      ztr6YLAE5VetjXqg5F2T;4{+>>b!=HMzu*a9^2e`cnB6I}3l|sIoNy7B$|kqCg(j?P
      W(-r)FcWhZu1~ZiPDdlA|%auRt(v^Dv
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>Yf}?v6n;(;5(rU3KpF&WpcE29jey!#E($^IV$^am7MV`ngqLKUWtZ-59PD(M
      zcE(@PFHRk2_(EsenO2<Iq4ukt{)_&O+Vk$NB-pWE_Pw9ya?aV8|NMFYU<}0w0)*a*
      zQOn&^@2lH6LpV9x)^p3kwl&ijROTZH5#sVRr>jOKce8X)l${8|gwFbI-rU?$Ew!YJ
      z2%2A?XeP(8G*#EWk|!L-c9%tA$>6t?c>*mEj^$0mc2vVDs(MW{Z91i;AFh6Th7i!!
      z`Li}h2v2E-=FAY9(ra^>A|aGF*F_XTbjA?J2|_TPVKwg%2I{O7T^AKqpS3ErO<_2f
      zx65M7VdQ3X69#QhV@jDHwo|GlQo6ROIbuEKn5l{JROx{u>?pd>BN2KDC(?y_=w-*!
      zjLKxD7{w{P8$nwPDfBbHvThnIwKJV*xb2xX*#g3QF&sx5p{<}9;zn(=B&-$BokYPb
      zt9nso$Ji}@Gvrh?n{cY|e>s|DKhhc3C-G%X)%n2@vOav~P86d!9l-~$Gg@;rJvVDv
      z>H|B54041B`^ygBVI`(h6&4}!Umb+zs%lqd3S8qA#xJ`I;wfo_ma<zAV#Rz56}}hL
      z*2g)LV|re`>6!0v1k;4BH;tdGZEOfDiYZ)_*|{VQP-HUZz!jS(bktwut6Z67M_4gj
      z#uY}~Fs*s5qB*jf6eW|FVLpjL0oP(!-P#fcmt9Xf-<Uy<jR!j^9~5G^05(2oJ8V+2
      z!K5Qs*^X^OblI#~WpPE5T@dq|>$IfEOT{pRmDg393o?QgLiby9&E25PbKf#70%!ua
      zFOq0Mly_RWqXUQ`A?u6hVcv_QoxcfQ3HJriKeCUG>_I&B1jnAEYc-MF$I0JEvQN?X
      z0;hh#z)x<NLH>3z0BDT+e*&#^mYeJxQgj~gyJrFZ_G1XcJj$5_WwAV_eaLg}8fYE)
      z83SJYANgtkGPq<1ns$T5<ed3?!H5fS#1FB;w<S<A`v>SdGzIr$tn3RA56_U@JB)Xn
      z^?~LPp*&h>zJX-&kYo~PT<-|unD7zqBP3rU9h?eI@1na$0`yL_<JC@YcqhEQ{ms<F
      z0QJh<gYRGc-BU;O>{0j!y1=N{aFWL%D!9lgFQ$(i;PEV^9U%<hJkJ6={}3Pf9RA|l
      zA?Bd^!mhh$qX&=B;m;l;64*s3v=^M&#kkz;b19B`!(%iBTxX8#K0#Ax?_rSoeDZ$=
      z>*PncWI&7juU<lemN7sp7^Wf@^lk39&#*|VSmwPiXw4Ng;t@QwQuVED#wtGM%*&)s
      zy3&FyiW|e1_LAR8X{G0wS`E8Is-e64m?=oNXXS=x_Dr@f@^!pzCmw%>*{8UAJKNW|
      z@)8hQe}rf@enFl$WaT%m-fQ*J8sdfk-9<a8=%O<JmDe#w0vBn6JG{c$RD4cagRYXV
      ns~wBDjvLIq0}Fnl`dR5sPMK`DPu+4`#1fCP<p|5Th3<a=`7nRc
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&%TB^T6o&udR;?(A7Lk>%6fjm3T_}c)(Zr;2Q^J0zlRBofrWfV4T#>l&0emRq
      z8E6PrOzb3+In#f>^UZvIy?+2WMN>nL;lTA1^NGLkvFVH0j3UppMHI=vx8oobH)BUU
      z$5d%3Ff=nk+nWDpC|yZk#ytk(&{8?m<GyR!aVUMa+Zr$wu7d}mBahWGiYPHuEa{8;
      zWHc0EpAS93P_qJudjlRyRi~SU_)$g-E$g4ET?TDLci`@n_{)W%y~J?Ax&IgjuS$Tl
      zm2XY?RvC&8Pa<L(OS24(MQj$bqaX%@ZU;%|h+C=d+g$qA$4VLdVANZEd0Nqf(X3I`
      zLyiVeYIi1Bd81VhI?eiY*QDeL)~K$}QYd4cD#~L66=En>HD%oqTlLV|oudghv#>Kd
      rbUuac&0=$ymcr;Lwy;gD6xK+wKNRa(>IEe)|4>vcrPv^;9Cp6}#IlRf
      
      literal 0
      HcmV?d00001
      
      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
      zcmdqKNw4GTmL+z=l`r1|op9Mkxi{>xQRU3EP$jmKh|ILXz9&VBjYu0PuoL@65-B!w
      z{|x^T4?OgshW-nl8lHG=_|rLY?mZDVZp3@}GT}<!i-<Vjp(Kj>zP0yWd+nuv{r~(g
      z|Le=k3-a=R{`TeH`t<V8vUc2-;Uk>4Z8~i4_j-F8!l8)m+jt+SHqN`-{kJcF^6BN@
      zeV(<g!#3L*QJKcWZ(siO)60MJ<zuz54YTydhw;$emScDen{-HT_fIdsiPPHv{{83w
      zgZlbJ_cR`F#jtFj$G2w!CK>QUaVg?(NdM~7%kLQKUoo6zpTKLVzt2TJAM@97U9`pU
      z-+g-dM}P5`?x&YOVY(#!?aM#@^zu($UvwObdaD*~l_qL&AE1|i=jGq~vzLGW<<CC7
      z{OMo6KJs@j{{&p?`Co$TfnNT@m;d;;FaHs^=5Ji_hpYYkZvX7%KY962KfV0hSvpAV
      zeF)n){q*uzfARKqU+>##xD{>oSAY4fJMhcr`>Wr+{O6xu{_*Q;zdoG1-MSm}@?X6C
      z)8D@Qm!Dq#{QFnM&2icfMc4k>%YXIqUxS-7bZ@T@ZpL4HzJ!lg1-<-dFaPX$GyeIf
      zm;c~fSMC1p<<CF;hW!`M|7cE-^nd#Nd?a3CD4Tmd3TcwW4mQJ3J(^LIL{ph$Q96~H
      zGDT5bZ~}i*l==GC#G1aWbb*vVVx2NM9->WZ%KU0(R!XKb-K8ntrfS#L%=^TcKI@vM
      z#7#11uAHrb3!o5(qi0QVQGSI&p&kRwdPF66)@bMTmrSl1rX$m8<+3&m-zBa#%mtqX
      zn>xR}fM#<X&p_sh;7yp+C0>3+n3<U{H_I$l&{=iOt3n_rm}X4Q<2}BLym~YRs}C?8
      z{IM1&IqR_6=#R*zQhtI7!=^CJmS%m`R^8S^aBO-###TQa(<DKDzAfnU`x3zWa-Ee^
      zHL7~MbXsF9PMf)vvfeH=wwXG~V>IuhCV?XqpCNvw+_ztLHe2z```b_%TDB`~)U0aa
      zr`H?Dax+bv6*pRrezZ^Y35rk>mN=c(PUa+KA3utU=5sd>1f-8Dx(dBy1%KeUb=QO;
      z$_RxgD9gA)qhNtKU4@erVXVo~l<80uF461+KE{kws1AJoCNsmcn5C}E(o?Q2lgmJq
      zA?X?HlZ0&ShAgsKw;_*r(J;}NE()RB?^g|0RPD}to`YKrZL*=oH5AI53e=xGp*E1x
      zeUMY67`c$h_@l|L7LPyH!{nc<^kCe0;b`rr@if6_d_LGz*0&DrLc4V)GjfL<j;WGO
      zyWCdIT_5QeuTai=x``&!?Y3!%T?4^U4GTXpW++?LZbx`AWSCcFg_Y$%ukLv}-1c7X
      zrE7JM%VOI1Mh{~Hb~J{W+Ew@|5AMb3rl6%}r?KoprGdudR#m;3#npyG=Azb=fx7x6
      zUwe^_ua_34q!a4G3g6mFw>kCBW=rB`w2)AID&dh}4qL*9X+!7RD=#P<19q22Q<PBh
      zCFN+e^jtUzH*xfKG9``jY3gzSciYT<vDLs%W5GuR9&9~iKdOk{ZwI|*CY_ZjmEXGT
      zPP{j81zk@E<?=u)OJ#AFN=bo0lcgO@S-e{w+?4(8a7uJf9`^C05zLxblYDn3vrKr{
      zP+%0dhjsIu%Z(a%1QS}aVt9g>GgmvDZ;5@z45G^St}f?QCwc<uQwM67Dq@;JwqJ@;
      z>j%>zO@&>6rN{izAdz)AO6QxjOT5&-Z0i(7-F<!zNPaKyo#2T1y`UOsTX$1Z*jrPS
      z4rxFhq^h`CcPzT&{=M8Ecr!WD_-vP^6*sWBw6QY<JFYv%bv8qnbk5SNRwybQ$O5%B
      z@MN8YN44yB*mZH)d+iMA?k=#co9Kp{#3-8HTbJtHR)*}Ap9{T_E{ORz&?_c#I{QnU
      zgkC<q{N<m${I@R~fXi9hrZ*7uKE3>_&#?PtZ2U%K_&sCF*HQHu@BYP~z5L6UEeMcd
      zl6(d9Z(;qf{xbO83-akV|I_Q`e+TG^5&->u_YU+lWmEb`!~}rAQ!GPgA8?J%H3o8B
      zZ5C}RddDuF<Bv8&JE4cv5)VMGA?moG<*0dL*fa^*D~74utkY2Bxl8Ejxx|rU^aTCW
      z=M(LC(%+&4%Pj<L!&Bx8^#Fc<_RsPdoTUtM8uF1aG#i{{IP`+vM|tosIZ7OlBm#&;
      zO%10fYSw7{%-YnVvCaap8`W59f;7GZ2Q>ih9QXx?XskAYV<2W}zl>QHJPB{mt8lYL
      zL*KfblSh<l$;BGoy@CF$*(SIL;3`W0L?5GO24L@G(B~5|a5=9hf(sl?htwqA>Lbs|
      zKm=T(#$A4jU#PnzLft&?69j&EL<LPJXRC`axlhC@)1EQ<Bz+AGAVj<Z!x4OJ3}trA
      z6X<D5ZqxFh)g4;FJL-%jYP0qFI2cbG2kwux>bFWRPFs%CqEZ?TIbY(kI7`sF+{lSO
      z2ZFfcg#2Qo#QwaDc7W`9-|;WgK^i1`RGFEtdreSKO;I#v76RXP2k0_x`MXsK60I2K
      zC|+2?H=S#FZ267L>&3&s9926}7mL{xekH8qoaN}DpO4adhlX3Fw;R&h!^oa{NGfXx
      zcT*y<%brzIk<-prFvp5|p2{n~n!9i|DC({|^=_DM5Fwj`AuqD&CY2&Mfv5)Dpk;H2
      z<8+DzfqXu=qGU=JQLiQHn$rv(YS$u^R3U~`h7XAC<G63BfzkT%SS(RB*VkTC&f9$|
      zxOl-wGVb!lpsT9JP!mT{p<Zer1%TM+im_muGQ}-TIUtY%Fkh+Uxlu$D=lINYI@_Q4
      z`zTZt&1bwZmxt0no|g@Do~22AdxDatvx)DhUp@JGF8kb77JPiZ7z83UOJ#!abx@~2
      z2Xzq06^SnD$4z?-O2|<hH7S=X%!|4PrH<E<Et~B`q7t*KdlCA48c9Rk@3%`(U1*e7
      za2L_m5F24$T2QxI9(qs2L$HUKG-ERRY%{~b662ZxS%bc<Z)bOi26nkV`Z-6mX}wM!
      z$J^*NEG~*Z28VIKr!SC~vA4$+%{H9L2m4i}jZGS8=YC-i{Nvz1=y_%JRuGmlZ%%j2
      z8@Y!NDe2kRb~dDXc<K9T?!(G`x{v1;<-2u3G+M^avU5<_3N?#4_pY)ox#aw~-Ow~Z
      z60C5U6?)`CWO*r@=Zy#x1<BBzCn5#IYy>YfU9}t+*0DJeNluq7Qtz+Aj$cV#y*kYV
      zo%a->2$>O+aNP{}={u3)cQ4qd-~IIupqPJ!;=}(Rp?LW|6tmT0u+pmk1BT*f6fJ%Y
      zilsLw&R(Gy<kPB&d0FN)mfg7#7s<loFoXOz-!<~S8-vv$sr-6E?YIr@$#k$yl(%X3
      z4q4rBO64ssZIPBd0mS1mlSHlDbWdfmb0oN^qXwmqa(A@+S@urnu;TAZ-8$YKD)5tg
      zrNenIZ?7_adyF9IX$mt}IoOD;O>^TBKA{YM=1&@5^>l)VZeq?N<pmkErOz|Fxgoq*
      zitLb#nKh>mWZ#11(68rsx=_r($nbjG7lH3H>Q#0(ygr>G#Wo?-AgPlnp&M`4BRT51
      z*=e~iu;+H+5e0!g(~y=E(8)f665$qI<r5*?aCFM;42Fu?Y_ej!-}*`|bNlRo{Ts%H
      zKxL0>(mFE}<EwBIcyklVYH+A^^fF86?L-Oa8QKKfR*7$kNXEkMR?4GU<?SKc()aUe
      zXMwzsBle6jFvrs%MLp7D&YdARd#&cChU5d$r#GU7x3k$Z%WXnO0t63jo!tDiJYr$r
      zH1NP&$<wfI4m(p14w{oM+cU%G5a-_A)2^zV%Tk?>@wtuI(<Zz0B@$IaH+My5+ZX;;
      zwpS%zT0R1wY(^{%e>U|FQmXBV9%6D6YplAG^~Q@+3uZyg*p`UDC-QJS+v*YIL!-y^
      zcADE^yoei6-O4hgWP2oFB`q6-UD!#{9UfrrVrU5&UO>5p^-AK>%+}G;(zb3Dd(pd-
      zUDwrsa5JR2Ot$1xi(1rpOG1(p{M)pric>B}?}duLg8Yv<d@NLWjnZfcR4SABOx`Tm
      zplP4uIkJyTebWX9QQ(ZjFw+JSZTgv^I*opN0%<aRjSea3yC+ll>#MPEWf6#45}lVn
      z=c&-Mw0})hDTARhjxx5!xQyAD<L7<gw(ZU0oZd|jo_wgdI^A#91B{NlAuT!>id$+9
      z4{^{)teg!vmLP;v;QM9QB**1^;wsmdk<{Haoq%SsGU%f{yEJbfR*Q$IQzQ}A^`LWR
      zj$Pq;EBaot2xcbd=hoR@_sr&cq^-Ss;5Pzowfn*r9#QAsb;*YwQQ~IdY)?j+gqCER
      zx0o4BmtNZ1j5^7P&x&o0MZ&r$dAsBN%{#iT6;c{=*+R+fhK+il;ADerT-CHIrk^)w
      zM!Tn1P&Vb^<eIyKw`FR(9v$f*A4iNPrm4m15F$p9ndE19tK4AsQFAqZ8CZ~eo^N=w
      zfze7eGZ7o|xYHL}BPw6Ec&y(%NRO)SP~+XB;-R08bFZHScJ7Y;O4WwCKRNP9!NWdC
      z*1ev3B2HxN(3#D0@a1FJfcHm0U>P9OeR`~g)h}jOly%dRxTGOua?^vErGy(-d+Dy_
      z&gw|v7)gS(&e?33o6kb<4ppqnC6r;fzdPlHpv9`LLNcPH4N{9zZN)Snw#)T;TOJEp
      z3+UDyt*cG?I0DTQBOZJ65sY?!J(6@QQdfKF2tjtz%VWqXd$t$`?*zs4*i|HrW-6<N
      zM)3<QLV3bRM^cL8RZTXx7B95}13vJu9__)#8{L788=D_NE$+doT}E30CtL9PBW<Wq
      z0E+&LUKQdcNM>uIRif<D!t@`KeclZ7;%zUq(PZDNHGlU)eEQA*{eujG)1P5z{!s=&
      zKR%FgPtwYUESq~LA2>j`sitRDt|%k%lSgx;SuUySt<byMqQh4KZ!J&COyXP|)Fv({
      zT=+XEWE_W~jo@ryphmfApf-^xfCr`tn5&u&1j~6NplCi7El?p5ITV3H&IDA}lgav=
      zB}||~T0w0Fh>UDCUh6gK>tj;{>QU&OXnPi<4(!Z4OP${9Q3n2anLMMN{7HVh8c>5G
      zH1w^@0axR=JeApv3nwVKge#!P80x)V3*PSw^t>_FIfp?FI{M!9Bpb8Wy7XCd{h%fT
      zY);3#)@14h6Ut+A$S6*=+sv*XgSemX>;XkKg@LZaF5+zC+%vUy35?6bxgMZu1GB<t
      z9M_FIIQ-44m&WlrW;&g3k=mchQM+#SH5<foXPF@~x%bOtuiH-R2^d=Lh3OitaGprK
      z4SMQG?e2cqr@XXD^BsS6^!40Sy9XT^O&px!I0Dr;brU%P#vvN_nXA!s;mP+aWzg>2
      zp}emBG1tq>+HdpF+w2ioJ%_Me%{y$29R3p50Pfjzg;LL}ypVD9ZA_^X##F5u!fd{v
      z^Qp69D^Xe$8}x|VUss)jPuOyLB<4ibn?@j@(Cd9^7O;Lbj&AD)WDNHR9AZo{)We`N
      z(d;dw_}K3^b>ff?>=p6nn#`af46qld{bl`ii%>r;Pq6&B>}Do#_LD*4jIFwKH!*MJ
      z*YR0RK_Hrda_X1C?iuT{;Fac0r0GOgfchvwt@iPWp)a5Ln#Vh9)`Y`XJcG__mN{{6
      z^oYVu!|O%?Vd+WLf?~ep8jUeummo81$@>!gdIh??1(<cBPQ>H^#m#+|N-BHX44N%`
      zwP%0YvVc2&;~P$ZD&StJ1n485{}aimG7&C0^)&b;o^3oDq!DIN#Heo(SyH9m3~0JF
      zsG)Mt`pJI0o8Bz?l5X9P)pATP2eR<(8K=BHBEzk8Ii_MGOTn$MsaVNN?{F9h3z~Js
      z8_0QMkHoaKCSo^DjANNYd4oM%6E9YKZe<0#lbizQfj)5p2o$D|obu9!6zrxsj*_R%
      z(IReRKA#?pe#31x4M`s(h;$drtiu434m}q4BT9BtXlAa3aAyQ+cS#|6nJaPHp-Gd&
      z<7E5SfIG){wsrISY|sT9gB){>Go$VBQP>DtBOO(76=%reR)H3EIccclye&u`r*G=m
      zYBoiLO<Nr$svD7jDCL}RtKRmrJPA{h0ZBh;Kza6ElJR#h`%l05*FOS&;R!nv^8*%-
      zuK!@*|C!;t+koNw8TbL#LtlbD_eNa2f_?rG?Ab`**Lb1kXQ$#byEQ>#9_vp=PPYL8
      zXH%=eYP0t|R(^G?{5R^d0dD`kO%tyk%>3lBMYzdndRkLxHrSY3j{0Pu#SIx4oY}YM
      zha-6CSTpPpDVDz@@O06sh<{LCO<@bOER}g11qsR`%xj0^Ms*{akN2hA!>*dMd%8PJ
      zw7zQx!GO1WA-<K%BiRSu9C^2Htb3z`4M@YlHpCdF>gzo6;fayR`M3)tcW!Yxnbn|P
      z>O|W3w|hxUlwT0LdBt|lxIxqyx?6579Xljw+7w&XIl4^~x=a-}JZ`$}c9nLg?sA+T
      z&t@*64y^14+zXE$e)b8dxmt4B&F~G~Rn7GnG^B)spjimoj7a!tv)jnJh6#r7V3~~;
      zC*2ih>t)5)<t#wtEvvMMFVBIz^|w^LxY{W0N&USR$pH9f@mFPs?9IcGaR7gaiRi#t
      z%t_cxAt`SydaqIU&!vR<T1L<%b$lh}EYO9y95~vh*jFwMH22<qanb-Z$ABL`QT*p;
      z{?-$BUQ-3@+fx155VU`kT7A94pr3N9U!+q%-eJ(sTkK~*|0bR@^AOPY%W7iDXo|bK
      z(O^ica<K__=lum)_-n9Q$PM0+SWhO=-ioKbaIEA3`@}IV#|MWvd5$NMp#d8Hm_vo@
      z->x3H*j2USn0!zQBYd#?t-{=fZhMHOeb2g6-P+Dj&;^EX(IxTey)SYD2@N*)Kok0K
      zzLaT*YktZmXLXaUG<vy+_vEJZE_&<8bGKz-=LXtpQ+dR>t(}6h1KLLS*e#=F3tDx=
      zIou;Bx$f8P2KK^%+0VDej~+)1TLo5C(nC~UQA?;VSraC;3uPEkOJtX=cbd8G5Y;=-
      z@$Wo?@(MncV$ybx%r3&)=&D@Z6@Qd*Jf*@ybBspsprK+xd14~C1$&~-929)-#Yy%3
      zM4tTgoB!=cc+Nkm{l`!3_h0GC(AD23o>P<fmXm<wJ^6^|X5z{B(9=F7y;KT4JLCY*
      z0YMBJ8>~6&HvR0HgC@(D$27tGMFIqUD+BtF03{mzx@|d-068BMpl8wp*8E%6^P2Rq
      zRQjIu@E<Dxo<@AoiSd^Y<%T5D5Xh3g>UVKG^`sHZ0|kT-G?OXM%!t}q-BjX+!~-}$
      z*(ECHVFOXvX^%FoZC%fJd6zUUpsoHyHZDiIyWxI0)zR24`be^^+C}x_(C&$|A2)u0
      z$I!-5?|moYQtVVK&1pyS-o))qq=H!Fx9wSArs-l5JF$_{xq49BGg2g^&WXhZg^uvR
      z-S;t$+SSF^U8`y}cA)4U-)fFM?k$XJkI8C*4mgW*7j<KZEk>{H#tD=|O+yq*Lq
      zM5TH&G^@L}w&YA6Iy)SJfC!T)Y2KwGQhS#g?7M~Lt8t72#XeZj9Rs8xL!Ur?_egby
      zB?nikbg)>o4Yl#uO`4vh!vIq|!s2(R=Y$Tkn{*Ez)t-cCTIhBw2U<mz;W2{Il61B;
      zB>=e;-Ql98Nur_A@Eb&DrbpADgH~Sr>PB6lgdpQV8P@A~L3M$8Y)VRf#cmVeHXubP
      z)1SWGd|_y)d~1}Hpu;WzY-h6%&-{xgzVcl!_*1~XX*r-*k;?B=WB%MQ1U07hMI!%o
      zT?yL$udEgaw#)hBns!9D06o$23FXk&$@w?2oH}B>bHio5E8RS_lL1B*wHYB{U$O`9
      zv;%AzUZ1MgoxH<^xxu5$yJ#0PSa$IERm87tH8Pg5zwM<=u++NR)+)5|kDaA^i+S?4
      zh3G!EGkZAIwt3#NyZsuh7we8%v7bkg>5kkUwDgwx=yp_@MJ03;?n}B=E(bLtu`SgJ
      zTsh6R)qJccs=mw0-9wF;pn0qy+Z*R_9d?V|K$R^t@*$yH#eFav%}AZby?eDKJI7Cw
      zo=<eO?Pk(1>$)FFX6UGzYdHGKn05@97rEZ<Al+pFfjtS<CTmfV(a)&ebdK4a3-w;z
      zv8~znoa7<#oNC}*ks>!<j5C4(V(AL#&jkyThin+7rYU=Es3`yYSpHX^e)GTo2+PGM
      zDKmvX%FWxqPb}9a>AkBy_aCv`N<1E5dC&*mt77Vv#DEfjqF>=T{0%&RJ*Elq7kCa)
      z^|ve9-v`g3k5%j|p08B?j^{%4vHsu@-<$iOsq5e~h4iY1dSdqPi|GWt3%A20dtF*V
      zEu3yRck{?uJMzn!NYzWPspmV8JY8ox+TzAM@9-PKdHcbhPz%l_Uv(-M)UOpJ<wue8
      z?5&h5;ph{w3i6ZKyRN~+2L~4s4tpB!FTP>6xAHPSH2BD1$`QWq`rQiM)rz}5Fm&FZ
      z=8?H(8>F0tkbcCByE!(s0($HPYHS9E7D6Rx^J``CO)jU$9vL9#v9=wHbn2E?V{x(#
      z1wHVm^Niegx9(2ONU^!#$AjZt7Oo;2@xsjxw;3<+3AUgOo$ZVPuR)e&n+96Zpc`at
      z1Z#4A<UreTVEb}(9V_|}BXBIS+8RX3DHzNLcY;D#f1EJE*_39oxAbx8=xxK0_t881
      zyPq-L0hkVw>yMaj5>V|AMS-j`A~8FU+MJKGBbkTA@7Et=I`r02XXxs!+3>`48DP4Q
      z(I)Y$PrT!Ay--b1@Rg9|hrHnjOo!e<{qtJ>8q-USc~dk3Ob@@n^s@`7&Q~#qTm9ZS
      zI^Eoo^oAEGcyMhQyU?^B`Mt9{Exp>P86D>my)y9K^$+~8vRAX|l8JFGHB7gxdK~ss
      zzKz&ffP}I0O_D^{W8LKabPtc`p5JEkeJ(kq%1H^HyXm~!Q<n9ZlX}E%cg}2XI9bmm
      zL?pLezPanVE4Q$`J13cEABnR_r9to7`IZxeU`h2$fA2O~qf6IOl1}XIdblY(<X=O$
      zCmT{HX3*k7yi3Gj#~m}%WYpW_np$UW(%M4=#KFV^QS$v=p^jM)tF=o(ll4Gi&YLhE
      z+mWptCZt@hG3gg3&G;)x7zxeYCD7Hg+73%uy5Mh?*b26|m=ly3PI}exgS;l&Y_|iP
      z&UVsNaeE@#ZoYEg$MwJY^qb8OaGmX+oJ+U-2-nN6aNUJ~MD%C1Q2uST&}Xp_&@8<%
      ze_%lkPgN0M_P&%A{UKr~=qEK4`=*BaAcmR^TLOgpn;6RfYL7g%UXaLA;TsfpHV5+q
      zpuU0hipzi^2t*K~2EyFY2f|#vq~LeRR-L!=pf65*7wCQvIDJpw1brnk{)NEll}lH$
      z$4;?&@XF$}sjkiO5OggQLUYY5m+Scwa&UB^HfW9Jq#A~5y{W7G-jw?tBRo*LZn?oJ
      zG+CORj(7lBq351!2*^X=MKyT?q)vURxO7ULZgrz}rQUh;(jc^lq4M^OiNfvDU$+g8
      zuk50d;<9fcdW{}_+45LC?qtg>v1}EN_G)BV*#zZ2bnLrlTs8i(W8<9k;;pEFdH}%*
      zHJ%~YBI=Q}@;k$4dy87)yLXbUJzjC0pK_PWrKGT9O-1Ou+97cjoGG35yGclo1qU@3
      zJTIMv8nT5Un_x<<n{Dro$3sjCckX^X4yfec3hioEoq^rNdc&o}<#d@eW`tygmAa%l
      zBJI7&8bBL`@fQN8Z>QLA{5te5aH13}=(YhtHUxY<AJ(G}SXOvFY9#&(ebf87(6>(h
      zC~*3oz6pA&mMN1y6a#k=*p$K5V(K=CSI2n)6sUZ6#~8l|^3|d|<gmbjZJV5b9j;2n
      zL%~SGpy_gHgXTeYkNpl&7CI=3Xu0vO3fB*JGcHnewThL#?=gA@m~ep(&!F3-L6Sj5
      zYT1j+ysv=f&h@qy-yNv%PVvTdk5Ljz0JefwX7e&&hWwZhd~rzi1<7m)G|ysn(-pT4
      z@aNGMG!RH7SY5%sjPPh^DY;gGc|5CSdh(J6&u$#UCViAGEskZ7k{t3x3K?|SFq#&L
      zx*x8aAh=k=U9&FO>S+372Ce3s6E^rM5t$q|ntjA17+FGxktT)P{($S-^Sn#$_hU1T
      z<w_>1Y3=w-&(zhvO4P1N5oG0n$m<mlzo~@%-OGRf>9_yK4*-*Y1x)-O2w=WSmVO;D
      zpOPhjf*PB>sz?6~0nE=Tq+bEdpJhl{2KI_J)0TzxM+Y{^Zkf%v&Cd6`4h?%!jLGBV
      zI#@Di>+bIPe0WFjL7x~D-q8m#Z7-s5NIWAur<%xeB_MxIRyx{Sh%N7@EivkN9J#{Y
      z8l=&fQS6Wh%0_tbaiI)>n7Ij;)q(x+eTOn1hYNP9yz733##}%eBo8wnkV>g)y|A)K
      zfwkBBx<vAc7j+ye&-rmL-@9oz!3Z{K$85S`hmM1gLul;k+_);ITA=5<6%-&b<p%hk
      z45ii1w{wGK_J*W8sZ}l7rz01qqw0Zz!W61xdc*S-J`!NOVso}y%f7&%ptc?iWw_G9
      zZVc|;_UxhFr|0#MV5zYPJ0@2OjfJ8Dr+Gh#`_@HfBFP`aPQY|aLih0X0R!f8%t_}s
      z!Wo_7wR)hBKqx-8Yvu{@85-R(E2KaO03FJ4iLVV5auKU*rN|*ibEO`_kJYdgZ+DU8
      zt-@mUZhvks?M`t=$UjK>*%QrDm+xM|8B0-=YjNxAIFVK&c!+^iFIpr_F$Y98Q#0!_
      z0*~A^I8Y?y?YwYzAos$xNO<mCvpXgX68xd4m=O_HlfhY!8hu?V8yodb7uSuO2f9`D
      zRS2LCW%i<i%3#)@7&$GcTS@EOd9d#1odO7XtZU=geSljZZ!m;KMk=o5(K`$m`~Xom
      z1KX$s2qdvp%Xk^lsWM7k%kq|ZP?~j;7_DP2H_>WK8Yi$=>u#ioptzW~pd<S>FY#+K
      zq+hC#5PtG9e8h|%3PUa<zy(QHuH^MJ{aS{^b3dQ_^|?T8@O>H5*D9m{y$hpD^2X8w
      zslxu)2<Q;lg{qBFTFG(K&PUp*v!OcddEZ6|YpW{fbV=%IJS)TmYw~$0@a^>i4N{6(
      zPWZ@n-uWag_2a^M3NfIn*de|!S($v%t^v@^6^|xN(SF1FgDR$5-zhD~pGLw%)Im@I
      z^;sy*{hW?i(}I><9Cx555ovZWsCXFb7+qE4MscsnarHLD837d{f6nByQ|2=fW9l`z
      zE6W-t_j7h=F)UjSjJ{aywKS30!Q!2RjK_I1I~GOXk2h$;DAXBf&nPee(8Bh18+6Mm
      zB9&wAZ|)MH#;B!IxiWnjB|^GsK?%FccRJ8~SA$x;JYqXrTbah*64n52i_OTF1>{Yt
      zonYPKWkxV)6kBR1Z@;*Nt(aH!C`6JmK*?sOf;}={!-tJufVNN-uVAaTFv0eUtT-u}
      z@9U*gf(7LPV`UPQo+El!>-SiKJO<2XA;LqWdYKFZAcKwviwn@Q0I6U3I17q;077YV
      z)%-ntbIwMyC2xgCl4m)90+olAGQSAidRZ}!^UBD1ESsP;%3!<+E|JNq6!H-g^T%>W
      z^pSgvsK7wZKwSZ0o)s>6)*Ty-<1TPqn$&S*FP8wnCc(90!d~2RhwgFqjYCf8AfvG?
      zASbVb$909!SlKDjE<CXX(_Btl1MX(w(rn9uTY0TNy8L#(K1Lu$+>+<K$yj)_zz5?z
      zsBnTT|Ik#SVr;KJ=w48tezW~SplADM9O{0OA#qejQIGX&p8YvjLVv+}K|qTngMQfw
      z?C>|eL$1jtP!@seU;v7uTC=o?dn2+`ZtB_8lk2#ClOjRd=`gA9EY}h+fF1&4AqW@;
      zaWWID3sA4T%a7OywZM=HnEgY+C(y*7XG%V@UUod|EU3EJw=RZmgD!?0FWTx5&to51
      zFQB^zGmcdabQ}^G1b7uZ0UbyE@d`f70N!n;(g`1^?Vbv&r;=z^S88}KndC~&Bk?&B
      zLM~wJ<%{<Sn1ctHYReq7Zlk6ip<wx}ocaS;uSFC>0nB4S>F^+$$4uYIav`b4xY^rH
      zu*L`UUNw#?%*Xqqvs<8kxvBBt;DRP<`w-;F=r>FZ<vg6R?KQiWp}HvwG-Y<{-pIwn
      zWKR`iz`N_VcJ>)h!bzgw(cJHB!B{;M&X5yiCKtGB&v}>iU|28R09nai!yR)xW&XZA
      zUQe`m_6S}~3f0-)$%NSDhA5+6m7p>7IGgfSl=JJ2%8ds{s+8_AiArOdfy{`BT{nKy
      z-DD74j|%65PNk7lBuQC9t5cA7&t;X`V0(hzh7!dY)IDO?heL+UI(7S8S5H*qp=mOl
      zPKv|Kpec^^LVUVx=mHvdI5GznnpG#9Xu-q~%Fh*YAIgBlYhS%Z@2nTnO&&|x&yQ3*
      zIULJU3Pfkwjm|ipHe;6hY8+(YIQR^dXSCr`he5bC&7rE=t7w7|xTi1(RD<vHB-sR>
      z1Plj)1a75_*H<tPZ>{V17RWb7a^D68c^SU;t||e3{TPIR<;QmF-aG8Jl)7_$Tuk_Z
      z4TVD}J*L@bYMHf3=+OH<=ZCrea4-U~D8w@_6GBdAb03U2O`Ys)5NN-^9kLwZ#LRXN
      zu{@pSyJ57DGly>9^!6?<k`gQW1dGE>bUIr|BgspFEF(7}D{gcdic6Kr;v`?*Id0co
      zyb4k;2`Xlm)10%#)Z^QQLw9|@OsR*9k8Zv1hZsoIA2iE@LVvrz!Ko+}$97rIn+=pl
      z0I?_9JU&b?b824`4C~G%9_#Q$LdI)#Sp7qNkcc?*9N~0kku{;&19!>s8wp)+`~L1(
      zXF?xOUA)atX|@-EF5J5tK(OxmC!ZGCgU{ZsYx&q;sB6)EpH5;v{iFZ+2cXGZo-N<>
      zr#8VWXpZbRK{NkIDgCjaSxxd&@b;ALEPz(~b<or!RPLiE`aI|F09O9o@&$v^V1NU(
      ze?PQ*ZRrD8a$mFvo>&Q5zJEAaKCx1<DL}2fPL_iKZSH$ui9GzKz5@__Q<qA@<vAGz
      z{c_$}(4QlYg{jb)$&^vV;qG-k46dJJcg8%QK+SRw$a3CfQ0^ZdBWdR%jV&^L=<dvh
      z=oR<T6;c))cbv7(8wH*F@K!pL92zAr>8nT5h<f0l+cl-t1@%w5O4o{k2riO1o(-3k
      zFf|8ikgjw(4|&Kn#sMhSQ#qFsyzqG<BQK!GK<>_1=-lpPs8G9`m2`#njyNz7(z9P`
      z9G6r%PL$Mmw}^u14VcHGVjo?A)T5<-rBC_|K=FMr(e@Rhyov&S4$QV?s+`rh*&dy}
      z*kjg&mCUNo`yIaW9Jb#);1C)R5h3I%272qW0t9?S4pxxM3z4%;1+MXdb_C?+Vpp1+
      zfFwy(686Q~?y}sgP%yd-3?-Ue;f7FUFrd1)n%sT~rO9?@gNGvz&Y6ReI-<z9x>DT8
      z@KK}+h8%d6gqlsyutw>-Dq#l?=lfff`}8OO*AKQRo2+1q)|+?6_ic-Qb6yrC2tWHB
      z2!HGr{X$0ly)F8+iW+n@OAgmr|4CASu~!L<yE?O0f>|rOdL=Hr@@Kn(r;7UII5SrQ
      z9t~_Tkk@oJ<9yg*_RpRTK#8GzkyWu@Dy5;1c^k-EeoA<ry44>krJob4KaH=xvAY^K
      zF3PQ8k@JoTmgeRX2-6mLTDX}iOgJ(c%F={^zR96;iUO+%cR-hHTpOkEA3L}JQ!cx;
      zyh#B@nWsDLw4;=eT3jB|-RKucn6+)Z$t=iJF4n5`MR~&NavB>)S2{=2y4}OO$$qLd
      zy&qq_6hBU@OK$5Ew`>`Kbf@^p93dd>SLpi~;z_G$SdSr(@;+Yp&f;V+>8w)I^)#Lv
      zb~9XkehaD?8mSnBulz<hB2e!gvx=I@b0i7r!{B%0!vQLaG-rv+c0Lbbv;td-U`b*U
      zb1H0I0_r~6SiPKd8#>O1s$uw;CaV4s`@6l7j5(O>uQ99C_DCnN;*?4V`q(aMS;N=-
      zn&_22wL)0|cY(L@RUmEAz8v5&yu<@x$wEr)cI+e<WC!VbMQ9EXFQDo6v?>5=`%A9^
      z%GAD?N_``3pDOAvohF_`sh>$(hG%)yAOzA1If?IdbZ;+lol^#AS=pqT#1p<VO@8wT
      zl~aSJHi?pXWkb>)p!K8nd)>-o73O@eI~DoGWo{V%VCe%gR+{Xig2`>~tD<iV&Br)r
      zJAmQ487iywbf0*5e<P4HkP!l3gK0Ylajwxs9%cL%WD$WS009LUZ9C>CeXTeotmZT?
      zwonH|6kOk89qcjqI;UiSrbAq$7iKT@GGQ>ZrA8NIioAR1?~#hgH`w}Mmv-6hAz^=6
      z94QB;6Ka9aq281dbH#BVODhx5@EbiG&D)AkwRkhN6>S4^i)^J`>fcEbvKTOn9RW(q
      zR!<gCQmO;H$&zUa^BuA;S9fcqG@wmbnNzR++VtNgZG}&N@<V?B<(ZcB%1@Z5x0GA|
      zLNoPR%L!j&-qQ@F(wNtU@*FFPfbOmh&sGk`ENoy$GWsABe3oZFjhdhbP?5gRP@5(w
      z@^a2WtmlLX4@AOm)+``V0Y8I`1GEkSKL&&f&!0aZ1D(I;L5=gjOgWwwG;by;&s+zL
      z^A8-jf<6(Rb1ScfV4jHX0)cGd=PD6&vpD-rAWBo9ZUas^?o-3e0T7jh<m)9320Nba
      zDT4aUCi3Yuo5;X!?$^~!WgXk(MX6z(_Sm?4#~joy5$J{^GC@>o3*wskp}8J$I!hEI
      z?(N=_Iej?=CE2hiX%j>NP<FxEUae}QU@!ED<lF5ikQ;T#q4fgVUNWc~E{3%ebD&)t
      z^2IUR*sI-BOUQPL7Tq3<I8dxYUCWU&r8%I;lWOTOl$0To-pnC3K~=E>+Ba~c0O|sw
      zjT0Ck(*nbk!iIacS6)T46ur{jYvo~qoW{55i^ijwx1)oek0;muGNL?thi^7KPcxv-
      z7GPkzgVykKY6f~MWO+C_%b*^AE99R=E-+NEK95~IHGh)D>&|n;29N_YXkxy~zCd`=
      zY?{+gHdqMC+t3DR3<D#ajyh^~Mf|)d-WEy*1O{NN2!HzeKyN<)a|lqYeVq7s9r*Za
      zIFT26;?ncIm1j1S$r#kTb>xH0hrO!!m(m97nx1!7=zyYW>X>Bb1|G`zvbifZESQme
      zMpdAO_(^80(bc>C4tg;Y;N@a!8r1=Tw-2i&kRoR%^W!Q5sTc>^pRcQorWoKgBX$WU
      zal(+*^}V}DBC><kP0NW7=`cli4%h%G8BA=deXT?0Jw3@+I@aY5j~^u&&i+O+c1*Ey
      z*J=%U2``i*rFZb5l35r#fa%>(5fz*58Vb6L*d`OmI<m60#ve?Gx1-NuQnMkq$|@Hz
      zaa50nz6WzfxD_pVHJ$c(f7p4jzJn&bufGdL(x=}HKT5yQXT$wYF`UVoV#TPyfr`02
      zZKx>e`4|21M!nxBuuXgDBQ61o35i!u|11Ot20R+)0!RwkpDm|=AC=*tfOZ1EgnVxR
      zt!@43xbds&_}7*(^lR(b1De{W;m>;=!#V(2fT;301@~O%&)-9mO<g`(u{_PIxJJ)E
      z8dv?ox9SOm&j*9Wj{|M~n{gF5pq1GZC0~y{Z_4-X3G}0z^1XWky>IScyD8thC(w^>
      z%J=RG6nu8``uV1S1@nVpy!Tl=h|*O-zC~?sWArSPt|O54?2$4zHTZ1-(^Qsq?dIg-
      zJz86Bod?R~1srIPEr&VK6~EMsmIeeNZIcMQ$v_l21^3{X$XuBuuq413)scOLjLJ+m
      z38_lPmJaS?1T51kFs`4UW&kGy?}lt}owA&0SkRfbm&T>75LBmX1O%_wqwm~kZUs4M
      zED?SloO8%7Ru8Bw9tfc77CGmZ>Jq8UsSZ!kG2CaZe?P*@`3eFEYzMe9TEHcZI1|ee
      z_Y$ZUB$Fr?s|yi~GAMU{G`LKZcV$Cl^&zf2ivoPzBkx12AL<wp#XOh??P0Wf3+;Pb
      zp=pixvtW|;NBCk8JnES$u#~#?+|iKl7RNOUj-9JF{lJGx>C1_25LLP|U5;qGNAQ4f
      zIpDQoYqtZ*$vjsVz7*DXS}cH)ETQXo1F31Y2I?-lUXcs9u}%|sML~e{yj74ey#=0f
      zNA{Lim}H1PsDubSYrP~1v9u2t@@i4QU5%?d7+-hV`Nr0BIEie5Xa|4Oj%mzRk6u~=
      z@w$pc>i9S83jC<t`ZAuOLz_MPHJ}Vb2ZPU8a+5))1|H3H&x7WO&F_d?cpbd5ra|g>
      zf-i^l=2hzrJ+|!u+8N=Lq!?h}>uE;NYvv4sY^`EMpUc|8kJnPdYN|WSG7!A-<;h16
      zHxk5sKfBuyzo&Gd6W?qbGRAuzc<G>(KP26zBX%|^NoaqJ53*#X0~^P^rp1I_<X&l#
      z)Zcu+@KydcNno?L*Z*&l!16;92)y_}6CTsb;O8Xp^_Yo)Bry1UPXd?UHwoNU_~BfQ
      zhn1Vl8wW<q`P+62=C-bRG^d->35-G(D7C-P(1aXVkK`Y>mSA=bV6O#(bszUmO*y>S
      z+vAlI^A$|Z7ED)I-FXk@7N@HdJIBL5g@Oyy#h2tLH;eYrLSzrz`Q$ArDWFoZ&7%gq
      zKTdNVgI>gl*vUhhj}gl*Ca~UF5{Mx9DAQ1<{RfZ)N`GJy_+g=ZNCGDatRCXo)zJaZ
      z{=+1Y-ZAzmuQPU)O>cLH^b-*-<bK?+b@XKtXr@^OcL6ZMTO5A8vCin-AL;&)5#IWD
      zo&<8Kp6!t0FpN`MIRzax1(IooA*yZrnD<0)pv~0-PK6mP1|pcT1-%!haE`}wLATjv
      z4h|>N7LLjJdMU<!i;yr{Yv(amPKdT`%*|d6?Cp4s_P!cHphN<VmU<M2EXc59O4@sK
      zNcQasi0XhT=T$QJO(*7Do0Uj&Y{kobkC4pIsJh6ZX(zGYO#-#QRT4;J(W@CLu;2pr
      zr2n9jK<NibAgEKmm+<^D-}wm~XE27f01z}$&3;A42_%0Y2?QO?&&U2vO#;Dt{(cfD
      z&ELBxe{2#sBL@j|=YlYt1nC0&0XRIkU2#5GJpwckom0oCk=v792<+L2s_Jntx5SX=
      zWCuB_HEoIOZN6WWsMC*TU+(4X5n=-7U4z<nnoF-x#tAdLi4M9Wf2nWYS@sT(j)1m6
      z`?=2!7fu2xrHt)(B1*FH*jQ(bI^i@YZs0pE*<|G|Cs(Ly!jpT<IFA&skdQWwLt-j?
      zk6NZ0JAq)clsr6ScngnBhycO<pd*|x=1$H6dm8L&C<O+ZS;!u2OEBl&IlNk}tI*cc
      zIc#Bn;gP65j02dYSGOiP`g`nhTyR0xRZ#%bIt`qf8`EVTP^936&g|U~-LYfa;7Q|3
      zpg-CNf>w-|K}<SN16-ZTB=;XDfrITE=akPCz?cRxwaq4-up_+dv%5&u3cp?o3#RG&
      z;B^_~&5H?a9S(C<q(x0sn~<NA&4H8WgSgw64T<S6U_gAK0nV(P@u=*FwJfWj@a7H@
      zIZQ!>QkSqP;bel}U3@CKM!Ikzk1Ep~T^QpMLfPP;T-+cCmp6WXRjZ||BVa)5FYJY{
      zw)2rw2?D#fH#8O~d^43bp{Oy-nx#6Amw>VplQV!y#0n@xIn0UpI6y~mmtigew!#&#
      zFd?o8+_0P(ZFacqYpbjsfYwgzr-$43`^o9z{(`vreSfGc42JGU_6}%mW`8=&jU#K<
      zNYY2zO%6csvP3R;ODF%ngdqJZ$$ngJbs-FwgNzT^50XIR)1Us2KPbPs?AiU;{3PGx
      z40(?dzi3dJuWq3O`?H@6^fZ*QJmTGa7?^mPGiX+U;gcsLba!+t!IFijqxOveQh{@5
      z!jPf~g8{fRteeh41C@sU08ULK81*0|QLcjm&lCYzYkD;tFEmh~^MzV~65XcC&rfVa
      zK=4{Br>6rbu#Do|F?qAJ8G+3vu&#M~Fc^G#g5~^PiYwLIc~4=+=M#1C?BL*!EJxq?
      z$>$I(KwcK;M@kOWe{P9_t9TwWUylLwg})kl<=@{w^m+qWp3>O22|;ECQ`+EvwfXWb
      zsBprXFn=)-+LnNest+7%pqRlkzpb*kaT~P&ToTaE0M2!lz|HbKX;f^k))?(gUo&g5
      zB51wz+PtMQ=&O$@v)>+EgGtDzBhTxDfGFnr^?4@fctQdAi~&<p$1Py^o?{AUpkhJs
      z%sjhrC;&5^vqgaS{n~{6x(5q70bev>?L<AHgyyOUn8m!HDkx18%iRM$6j-RiQY!;5
      zEZw$&8&+pK&@HaJ)Z5^@S&Z@>5reYPKDcI`D~Dbowq<6h!9rrdf2e{B8Ho6U%VSp?
      z4R%?9KTLJM%BkIh2^N<&qq;cXu072Id&&85v?CqJv4>u%fWtG=ke3ROscwsun^VT`
      z7f2W3TmIgJ1q$@`DSZlnY6G-PeJKF;M-grU!Nyw`gc89p)SD6LlRC{3&_R85FxX^S
      zynsIq_}qNpXrO&%W%T9et~tQS_V^rV1r#~YK9@#3KJWh9SQ7EvVGj$|S<@w1hu1PN
      zo>2n*)TDyR`}9NumfQ13iOIpbMgXy;Wnhuyeu4Me$(f`#IRF@7ojQL3HnYHxLu2T#
      zmM5TyULP#DmG*S-_(^!x|8(NpKBj^FM-BEi7%v3#9#13NS4Z1#41D~Q)c+c>3%xSC
      z&&vT@?Bfo5OX{Bj1Te$0K6jlDKTUl<=Jan?K3_At(n(Fg^lTZkTN!ARbl5#?3(Ob?
      zo&1>7gTdt!S70_d`xv!dl0jk<{&K{J^>(u__FGc_C9(Tcw+n?nGrNGv#UqCI5y0&3
      zbOr~`uo72&3qhZKc#}4w)uSMT6cp0j0e$U#2;8$-J?u7D9YOB2Q%;R{V=r_28+J7H
      zJMdBMN8acroCV*(AZ}DB#Ac-@9ptF)y0g)%BVibs5Z*v5inLGYR_O0arFl1W5Y`-w
      z^~t;(rwt|?9{U=ypCj)wyMWw6Iac}x(E#<>U2q#0MUb0tMyn(%K$&`n1C7oPB8>Uz
      zPsblcnEKgk0<C{=U!Gq&03yuYI)3Z^fcDB*{vg5}R|*W5e~vKiHzSPg!1D$Ah@O8a
      zctRi1^J`H20G>NADDV!R^ZR)aaN>V%RUqec%eM~56Fh^bZT9!gtwE%D7vF$=0K68~
      zFT^*Wk2$Y`9DumHuOkig9%|kq4Y$?U*ZEA)YcbJpMj8ZwE&m24z>VumH2Fio1e7FS
      zqRD5F_y8u|WW1Zkt^5~Y0&W;>2cG`gGXytn0omsA`$n7}$bLY7+$D|pA{qyQ5m-|8
      zFQm5C3w-WcXM%<xsN@1zM!~1sRXjJ85W_A()bpZ5@g}l?sKL+?;4<ulbfjXy^f5qO
      zB-JWmR-kF!sV7)d7K`_qzH6nvJ-Pvrqo!J1fN7~gU1H#Lcx-?jr|C0j;(_mpAhw;m
      zMiO*3DHLmb2W<#cgb!FLNp|re;=E4PgrJ50jfev<?=|GSW<(+gIazWC5hnwGfB|iy
      zfQYjJ5oZDsr}{<20mc5S0pM#Aq}hk*_*r?&v%xnbj)Umhd%6bwZSuAEbPZ%r-_O^K
      zlEUBfHO=`lI0DNAz4kGnFF%3Ba+cAjXZ$nt{63NA`#r^<BG1n|?qlSEbe6+_Q213?
      z^D*>%v!|#HckqP-<+$$EEu+NH_A#mzkT)J0y!aS;Xxdf*zjVX*_sz1MiuSnQ7labu
      zkMalx-M`gS{5kaeK9L7{|8f-2-hEo1JVQ@`;)1o_ix9Lf9(xsTJ48D=^y6yx>U0e^
      zeW&)4A3q+@Vnz><Jj45e^wcy`!n|IuwXvygx=GzaUT)<Q6<yPB9cS3<rciDb&ZN}b
      zaeF9=!unQ=`Ds{~Bf4n1Dq|t|ehIQY7`w*dz}UI7+-~w}FdTUR2I0ZQ_NmH$Q0FZa
      zN!5BVCYPOl5PD9Z{`Aj(6nf6j-XeVZIrIny5qy*3X6V0*;s&H;`sE3RFc6FUQN<0Q
      zz$@a9DQ>=-uS>uW7(^Hxs4hQ$FAn!gD}j*X0P8mXjd*{4mqKa2YCxaI{*H<pQ22pC
      z&F8ECk;M%MbW_zIQ`~$%Z_U8K?9;2X|26Lk=v#(DHwRI#mLl9o(D$KYmv6vV)4&hw
      zF%63C?}tnb>tLVYkg3tDdC$8^A8dt0(oqb3Jup<EM-JTD86pDYllN^c(`I`2g}ywa
      zz!G~<sV&DqtiIfOhpH$MxYR2`!Z6KRP!A->(!`CiYQpyCusPjw>m=0fc-CtAag2*y
      zkgX-ORZ;vD^Jw8z!8T?(Ag3*ZWh=D%c@}{3NlmN!63}SSjt+h$ainp<cL1zjtExvx
      zF^_}_EJ*KzC9RpW0DCZCaAaxh2;|e)Il7P=g5ljPx2b+}9;9Aq1blV2VizP(+IH?E
      zJy2!t6fPZ8VD!a)P=p-H!gj-5>^5+j$s}|PJv8e<^CeGiOpFD-E|du2@6i!6r?`B6
      z^-`VXRYvEJ{AuO%<`qQ6znDXIL1_fR7HG5%1uzu=TAd59*`O+KJOg{9XYhMBw&u@O
      zmT*?4?)@UFo_czsJDD=X-)bO?`@`V(9etnTq0i1!9OXIbUGh%~e`w;u)zYzJc;W6J
      z>~c4^AY+(&IS~Yt!AVU3rCAPLgkuRhku!zSD16nr?sx+B<odezuv!@&1FuxKx%4fV
      zdE97xtWogA4MKo;+{1MsB?h%@B%PEFgQ@wk1zl`2-&4CG1`Z2$eCiGt7$jnD&sJW8
      zXgi4z=c}X?VV8H%1lqgOZMpVCIAVLsIsd=xz1gng>f0xz;`?_W_%`}52eFgbaSlCC
      zvEw<m5kejkJGL{}89V?&2qA<}3n8w73*dko;II$45V#2*Co8MgRJCgFrs?mK*ivm(
      zxssIgF2B$F48LK%6HyHVR_AS8x4n*E&SLG(qb!&jN`v;G^KRlrNpam}f{gn4=^zz4
      zAA_ln<buNJqPBs@uI;xPJ%)o(V|UZbeymiZSvK=QVA)ncDD=1`NtmYwxwq2C=SC|H
      zlEIfii4&p)b!{eW7?*B$13}=!ULbBW&}U6`6Wy0&YkYH9I6waN|NY%zF^4(@bf$kE
      z7Szg|e>yB4ov`i=910l_wgVpOy-xA_{6%$AAoM+J`^9Uf^&$xSDDH=T%TVw`x<z{^
      z_~-1&+pp^w`V2YyyF&k6o9rd+`sG0aZapRXt2WtpT{8HWKREOJJV`+J6Nm%0gsT0W
      zI513eU#>a#YhXnu-YwQXIIO+Xs(zMJFV$3Qv9vHGhmgyi9Ua#1i{9c(Pr}>|?K9BY
      z*n>mYyG{x6Y?a)Ln~#0Q{Hqq)<CGch=IxK_FSXEyAL$_B_}e2HPS;P!!zb_%`H4Ja
      zCE)IEKn7r2Gs&$GZv`~B!5hV9CZuq*Vf;)S?Zsj0;yo!SPGH@T7K>SPVr^<)iq@CY
      zSes_zwcq&MDO$CewwNy@RRu8I3NRWY{o3L^3(OdW&~KuP?CkSA14u@~^dr58u_rFL
      zQ5rckiY=FXAPSUeP12cB%olkf-?Hhf--7`A-p1xrWH(g&1M+Y)*v^R{kMb+zA*5;6
      z19>bqAaM!icmr76g$JcLN@51THYZ7p;LrXCh|_>Z{q*3x{ZYL>Ie+@#43<uxo}52@
      za1g*XzBFHdJ~?k1c)xvc-rhD8H;-WO?So^0?khC+kUQC@F<GZ*T9xTirJ|16E;uHl
      z*{pWt?aK}T3P4L{0c`h2H?IY^#4chf;IskB&7`;i<C(%ZW=KZ|crGvxa7YS!m9J=a
      z=udzs_<*_uoNmz#LNn_x<oiBaAGJCRqP?rvJKY)?ukh$hRzV_NU7~2-AIYjcKQQII
      zBr&zT_1E=WSN5K@EH^L=p&DV3@JqPHxI0x06mj8|(-JIbl%r@0w5GE&=jO&0+$_L+
      z5lAvGuR&hiEx9N0MJEV_OhE3rS#R_kGz7SC4wxK$BOfhGKHv-1+pw%JQv0)ktd4~P
      z5UKWb=%84VE4+#6qjSR#oii`bRRG<A%rX1E>2Pi_rw?XTS-5=*MY?bR#>cuaR&Ql%
      z-p)B^Hs7Ygn$mi|2BfIJ0F6*P_1HOYx8sm2^s&A21-SzK!0^N&x)^res`)+sXZ_<}
      z|DWF-cmwhhcI4}Ur=hiFd`akKK<D@;{`b!gJp0_NURn!WFaP4edo$wrlO`SVdBpMU
      zE_-d#A@KCRcIp0VlMXuEFBWvK2OUs{b7#;+!e7Qgut}cR)cZ9ESL_h3-YN%w8L!?1
      zh<4Re_)CY=R-wa*e09)$)&BpgVTb&({XZb70e=6kW%#c9e*_@SFFJOA(y#;BzE3lv
      zUmkF8&NoewK(pATuQJ(;ZW_+DV}fjbb$=w5k`b;ZTO3y>q;V>)=oX{tcr2lb)>?6p
      zTD}VAZyK^=rooW9ALd;jCo4*@7a|lhs%GUDkTABgR>fFJ<EeKF(SAE^irQBKX&-1}
      zf$W8bprjhp<V!hPO><5kFRmQ4o)kD0^RiAOZY`_@++9X{0Hr_9H{i0s`DP=(J>bAF
      zZwOb91Mcp_s=@=ZfwK)<VMHH+18z9*tUo#6K0Yun)XDSxiTSG!%*QnH>v_>H9+=0Q
      z@AINxw|IZ`z`%j`o1x;%!S?=K+ov)?l^HO<pp*IS!FHcYe|4rIuZJ4zbehe9BwGQ)
      zrPo6Zx*$NS18=64ZG1Y@ps4dd)tMxn>_9zxaUPQjCEVtYWO?KW+o51S@wUuFc%Ab6
      zOap}oeaxhEJ;E5S9P1bVLWRSj_Pa9;`R-7AIyOJgG+=`@)a_Ixs&YV>$|WTqMR_8h
      zo6USId!5EL^&FRX*nHN{S}=rO06v0@br%c3S8RDc_d9<Q#6YbA?88+bX<p)+1P6Ar
      zcAKN%t~alwxVs*f6MZEu4vQGL{90<vTA$r1>*Ykrm-L80YQqCD3wf3iz{6?xm`8cI
      zljE1A<180VWfNCa7)8?W&ouwXKiY53G*%iqe#iaKGcB2;{g-DNXncJja}J?-nC9I_
      zIsk7FO^?SwMK#;7U^2<PYE>7n*Ixz~Am0aK6z`hR@aMPl@w;bfF@t##wA6-4CRmiZ
      z19y{~LH6|SVq<?GZw{p;$395B1J#B`-8Na5d*6ef%F=%1Y6Fo;=3f8e=kV!$*#Vq~
      zpKhwi2JB4^pBCq?lud(338>>2ObU$P#+|evYb5zsBHi!MEh9`!gco)`lg&qy)Vy&s
      zb0@{RxmAfR4I*v8a9C-pez!Y0T%h!Ah-q6o(wD)E85=2xRE#g++P&#BiZ=DJers3_
      zW3T18o|z*mmJ8R#)ir61ys+LfA)^Ad0}E88HAN79K$Jyv^-*^YnwDEfTjmZ$61&xA
      z%<Iz>#M)kD?FO;$Vjw*6s(9BOfyiqDYea~fAOu$zK`6YQPToEQ01Nu<GXUwwuOEW%
      zo&n&iJQDSH@$6wQn{bo?zUjhCN}U3%4|w)AjJs{89Wv^Bd>7v+Vt-7jtyKWV)HmyV
      z@;q~q<`PZoD!wxg3!u)u4L>}W??b()(OPjabn8nU{L}r)FJv%}`y%=v;PCt61^-N`
      z;cK*K-p#=QSb&*M8c|=tGhrWrc^sdwlnr41!P&b{6`Y^1f!}=q6IxG|ZBC;UU^E;?
      zlVT5aZ`m{V`*8sftvp*3J~FTJ@%o(GZY1wxce`mAvDU5XAfW|KO98VP_tz~Ut)1FE
      z1mGSq>CgK$=wKxM<cfgINQT{xRj}Kn?6x|@SYO4u;7Dti^Tstf@5*BZJgCiPfzQ#=
      znV!b8-@;h`(;xrzzkd^bm|}=N+t=vxg~0#NK6+0hA0E0-;-McS%<yo%h=;yLB1mWN
      zkqAy;2vKilsOF@Fo-QyT1(yNR49p>1FlreT^3fOfWT@p>f1p-^I|K~nUTEYnSbki5
      zxd!Ln&!qp^<a(<Yif}(e(VK|#5Dfhpnba>M6Ldt9Gl)+Nw9(Q4Tckm4G@jo52QFZO
      z{M*QcJVO%**n0&fmuK5_b?(48iMKs1xM{u+LHJIiojnsBLe7&9yGuJ4kMharkV`V_
      zbNdLgXG*vMQ;EHz#l-fi#O)=<$<;U&dac^pYlUQ|qhMe81caVO(y^6kBCAXyBk2^n
      zlG#j1kuTImXU5m#I%YK$N5@Azsxw>7M0U2(_w+S6wTCSBq-Fw*`xj339_$jn9PQpG
      zyT34|LO$;KTeVAJnrno2V=dhu5&8IxC3Pr#sG<QTf*eJ&bA$_bA&Y#XUytLt=7p2&
      z{Aue_FEm7!1$vB7wWHG(nbZd(Fvtc2eN)yn<>(~Xa%;46(w;6IZ#Gvq<72^T(%iB}
      zW<dpWl&;BX8gJVW=_hc?$st(zYSb(hlzA76<l3Qkg>j+xE(Y$L0>@C9H)(5j(t&1u
      zcOxsw*Hjbe^P(D){xqHwQ~W#)(V`xMG!(VDoo~_#t2m!7*QElEANQ^K3mMD*?8iU-
      zuitImbbxqmuFu4QroTj}(Dujk;;(GoSH~~dy2-G`KW*K>f#LiFI=>!(KY)|Ggx2X`
      zsRZqpM$4taf@6S5HG`$n9dz;TV*dH|KB^Kw0}JvtV7x?@Pq+6musrV$d3$?lK)$wA
      zUb4@Jl&_D1)rKI0O#mRjW?=5zc$evRgA_!$U8g9Fl#Gy-b5y#N0j8QqP-R55c+FEC
      zD}XatDY-lkv#<3UqEa-H4S#O~pxPDUYG(%vdBQ5kSdkLdTCwIiH|XoSVgutk3#9;(
      z%c6DH&?sJU3t_aM&X&2iMntc#f#cdFJ}Xt`3WTuo+iFkLUU!`NsnT!<aGxN2IMN<s
      zgh38oEH6Dv<TG9RYmcGN;)5s1@k+^@V8vQ1=iA0KCWdeV&Grst3EnEGo63fjEiSnP
      zd>(A3AQqz)bcLAHRz1F<**z2qU#I%mn%G5DEAD}otoB<FW>P6_f78`qeb^(i7pd!L
      zyLMGI>4W`QNG52Oc&WZ^capN<EG#R@%@POAi}4~c!2=E#Gt3yR6#+vo+Z3d3#lub2
      zCugS=W|vJGj@<PI;4XWy75oh7iQD!{wKAB3rimpf+L+#sl#^d0mo><0<dek~mjP^f
      ztkPPVZoV7T{O5ls$DgwL<<t7y#S6a7@jaDxo;m*Nxgp-{hY!A(kE9xbbo=KS_xWVK
      zE6cJ&mvlHp`=KEUNash6kHabZ?&6m@KHpRBqw#aJ+2Us^4|MtmknDrkB_De(AaeQH
      z8)(d@gA{_q?@!X_L5i~lUbMJHgA~1X+jU3qFGl7*(Q(lf+`Kj@RFL|(0VnnV6>jZP
      z(wljQUAW?$i5nEMx!uKTK{rTdP24bRg+)&AxcmFvJTuQ}%qo?kPQcb-%*A#*ruEg-
      zune4TkDKM5_m8x+#6u5`i(92lMHK<`>U34_J*V27+x4+1IU?SWV=BBvTPZ^Sy>t9u
      zJ_7)vy(7`Sd<edK2L3{he~;(=Fe(E;FZM?{z9Y|;M77vlEm}I2bk&Wgz9d!$paXx%
      z@p)zg4#hXGE>cSgjPQJ0Oc<It&E&~{fE=IdgtP)KVpe1Mu>coc*VnB*O3%oNBd@{7
      z3;Y~`j&?q-kJotu)gdXalJWci_S*;=b0Y^QSrgg>*4Vt^Vzb3ZN{cUd;hbD8`payo
      z=5{dM<rj4V_GDVT0P=9XHHr(;O<9baRnF1c6d35tMuCNO-Xu8!>6_sWL2$b6(Xp|d
      zs?Od80}ORlYrjnt!XN)sewQe$heRO;U!qhfze=7|5$wx*N`7o*kdPcSO3buD_{aDc
      zG$a?I%MA^KMHdT;?gdca%3!zrZ2XEv;+St_B9Xf-FR$Gq5m5IqdyTv1SrELlr!X;-
      zhs5EXE)()v5IiLMUowiJ${g_j6lh*QG78mxxt6Qg{aQ|AA7vJX0@+t-{~18_mwypx
      z9N=xT=kIr?T5$sh_I)M=h;#h$ec!8f+8}a|-SOfF_55@h0Fu_LF$^MnScLl;{45&Y
      z$-jNaJa9n=87x$om=J4mr%n^TnO)DaZ3sQOTAXZZcd|tqd~{24H$wvYL~QpB>5PC;
      zBx>n)u6Q8DzjemtWi8uQJ;N?LVMF29Nms^;PK~Ql6cxgwmIox@mWNSToMAI)wS+Mh
      z7+b8s-Cl15-fb{HL%kU~TUP~Cy_rW#DL63kae`lHl1G;PWw(Dpx_tF?4OKNIOlzSz
      zoV-hEPA2ir4~<IavMDkH8Sm2t?~j?mX7+SmH8YTWRM+Z^1Cd>Pu5t6Np=KyHFBenY
      zoVXqsGhv2LY}pDSv96u?7pSohROt}J=;H0RVEyDrqt%>RdmeUeFk;1Ps!^O8R4)Vl
      z*5S5)$VLg`N$#a3D)3MTrT%#0)=_on0r|>IPvhV2xcJ9^@_&7^<LJ?_<JR{bmw&Y;
      zDhT)dtsVEXmQ_LZ{mUIE-y*;pJyLMcTLX<XHNQKX-cxWm)}Pm&8-^bWgpUKC?>CIu
      zG|*_d3pRosjrP@s`R()mB-$V^a)&dZ&JhzlBV(_-nai!sqEQg6)^_74t9E{pb8u|j
      zTsO<x24+d_K{#8ag0T8^d+J9!W*u^FHk&HuRV2Kb+MTNH$s1#QVC5K~wbDy=v^8$Z
      z8^N)jPiN<)-XIDjnd`Jz`yQm_JI}Gvb=A(NWqBFn82CoQx)cpfm>^e*MMg;Z{ee4{
      zvl)Pb!I2rP;=cOX-k*0`>619via;WCeTu>)e!1y6T>=3HeG5|UqpdNimbYLALfZD`
      zSVJ1U4i76DKQr=ip|>*ystK^5^g&8NTG~;3)uqLyByY8FL!8CYxiA9k==FLw26-XA
      z++9v5W#lZATo}=nCyp1?sf*Sa$DXErB3ehxHf6#kHV6@!#BAe+;>>6c+G=~UJpZ@P
      z`{u_#{*P~-ch()cNck%zkEL>R{b_ALElB00ch5a|bPY$1-|(+$#h4hZ7f<CYIod<Z
      z&IEw+V=fESVfpp%2Nb>-31H|93QizabARUV%o|8i-j<!P2ZrIu&ucl&e04~yRr<x=
      zI#V@>HMgf6*h{qu=;!-Dj2q^%*4r1n9#>ER{|bEh#9jiH=%<_G<lOjv&n^~poC{?z
      zS}#a4V)G)7l39^h<T1(Ak&>~OR6p4kCnAiLhihiBUs?MF4PJ5wJ3rD<Qf&`HfuGIv
      zRI|5qWyuOP+Q><CNyjUAG(>T)mJA}Wj&lgXD*Gf|ZL)4NRHylq>n&aOwzDSGrrcb}
      zE4~dE5|u}VGolSwOAeG-X>%k#@5~!nx(Ycp${swd_qIAE30CkxnF&1BG4Bcj#h5!i
      z=Vuf)i8FFzd)8b)?lVWg{$r1yuPZ?A1=MomQu!Vf<mRIlGdD$J4OnY*6g8wMhU8g1
      zF4EOzNob{NuM%^E$h#Y8$fVBAUe*Go9-Y)|@$lU1pha<Q;z=ebAOH*mUufqy%<UMj
      zZ^h{4L_z>C-Z(GXX@mdQTXWs_wJeOuPuVf|4{!>(1xxcFz<a>Tt6HmeJ}4j!BFZW!
      zu+%yQd)|*Pe)HP9k>?vY`%gTjwoy;v)wy}DwNhNhIp9UeuPlAToOY!m9RhrA^zCVb
      zn4<%Iu55kka3Spwku}1V2y?A-XJuMb*MaC)%U$1(?F&{c$3&duqHb?3FlTZRAB3By
      z$6}!!&a(ss9--o=c}MI!qi4>i5(u5!73Xq0>B^Ku?YrQG2rUj=PxP2a^z%k>(mvuN
      zYY_#vvaNY1R1SF<Fd*On{t?S!EQyn=Rj+4<m62Sk8+gNcbUOpR`^nfjWX+6=G;cf&
      z>16IFfT=&bR5imvfEgu{n#1R<ra@}&acJ-1lDwQ{d(Yc=NDE>#9C2`Qa1~%o4#UDe
      zl108*${9TJg?G`!+_5g3WRtt7*6P}7%FyeOI>xs>P|v>sRHlC-tU3_C%E_~(wuI*9
      z{Xgum14SI?W7lZF;WRGbOu&-i5gCS_vr#y$U{l_+G6pw|N7wi+?>9@MgAWM@_c|dP
      z@PRgs-OueIj<rHh1&=qwAz!?I^V4R_cmZ_)Fo%Kyevnic=!g&a;$1Kvbhe(?RQ|m+
      zB2~zs5f6wpzPTUZphEbJr0rb~Q4;XU($g~41n|)d29#@(`*}Vz`G$~;yp73^F#Pi7
      zr>z!*WEf_B=~50fTZv|YcnB|0sN*2%$A;`R4Dy)BXXr@T-frz~rj|hQkicu8Is@mJ
      zGpq$E=q57TC;PtblfJ!3%81Z*J`vX4o(jU-sqIj!BhIlcQsU7@6;(yu+!@cNiKRL)
      z%0=cdw`-aCbi67p^29G@!qnAlX5|%HPZr_{Ti5ydSP*Vr%%a98cS0E{#gso`)(p5F
      z2NecBWOwxzyRBpCvOEJzfH)Bd+Z04Ihu@tK&MLd6!S3Q-BF&xgr}d7AQw3SAZXngH
      z=`m(Of7u~~d9%@$>m}`Xcrv@Tla@@2@GLtM!srj@X|gOE6X$l$T3sWXkZ9|I+cRn!
      zC<|VwihLa~wU_qxc*)dsM3=0UZg_m5k&7LFoR8|xIW5Ko&g!pTB}NX7O-N9Nfj#@s
      zOC8+DDR3Wuuz`&k2R;stFJAUS;b<jU$%w<i@uZ??rH{$6bN-cN^9T3hd$SM52cW4{
      zSJigB+*)0`*siSND9AIkTZ8CNTQ`9sH&#K~+3Auh^85&ry#Cgx<~W!`A;5Z$^2RmC
      zP0=dZIN5od4cp=8(y%Yt`HE8Ph@*-L74D9g4RyUn-F26u7AumNfuseXWaiW9DYB(?
      zI!19c*;xK;THc6oM>)hKW+TPl?u8%_PkjaIr)M%5<AP5lHZs|XW-a3KvAFG<NfIpQ
      zD}}Ak=Uce1j6;JpNjAp9xLp-EKnwRbW=Ut7)Z2TdWD!mG^{gxAhge>(<!suF<EYld
      zWCUh}C#ZHw-NP}PFUR|fe-MRUyd)NpOWv5HQ$&nQTwX3Gkv=&FDFMKsd^tJGoZS)W
      zX1tt+Q1fuUDeMlreD+<;+x_^*clLn{eixIb21dfi_y!&UutTHs8@<8U7O)@#>?I2=
      zbs3fT`yYxY#oh)%g9N$+VgFOb5O4`A7lwNwJWuh#xL3}|-Js8=`e*w9kh%9yy?-dD
      zo&8~)z^W;z-vK#X!{7cxpMhG|J4gEW_|e1tgY)5o0agP_A)r|SM$h2RT~trb!(GvE
      zJ;2u&R5IKuw7ub02O)zC*dqh#;n5{U06X_6pRhX=;@&!abM2RlHT>&92>g4CHLMi^
      ze7?W6SOcgHd57%y3yU?Z74nxB>w~PqT_^Mf6#horp3V2XuohRjdp1HkEVpcYSlbmj
      z+MI5E&zBGsoyiu_K;>qcni`Gnl@)Wql74%*5SL`y2Q4q}^{J{@<R$@`m+g7N<?)T=
      z7)kYu6FhQ=3Mw>F#K+`fx;bRfw)Jyy4K0f(u9~YfbLSP>E963?d4QW6l`qTb>4cU6
      zm_y8v3krwIR<~yt+SQ@j`?A=3%AfM#9CW3?<{>>#+i`?!&;s1+w8LR*p-jf~UF@7^
      zC%KBf^gtdM*0`vno+zD#F8W0ls;B`X%ES#^P1jdMm#WiQ<a#g8d3Q0oRqVRo&h{d)
      zNz0<n#+g@Lu^J8zECu_lz1epatzV}C^d~7q&-O8(MQpIkr7wQJnXy<38I2AW67}&g
      z%5&Pg{<hdFe*Dwvn_`c-QxxO%Gf6TSkd=V-p{PSMBuj%FDn)%_p*TEn0w`dB7tNcj
      z!*W1m^krHwD4X6pgz6ioTQIu4zvekoxW5Qs0G$S@AIPOV?4jY$P~;8p0O(DZ0~fG^
      zUHP~M<~cx!Ekl(B8=|*q84ta*ftq{oo|h<)u7+~66>TbdMkO9zgS>wclzyxPanJ8z
      zRQRQY$g{CA^fi#wVBP5!-!m~;=qzzf9elMro2L}~NLRo-vz=bKSW{N+P_k}lCW@Nl
      z=@jYPMdBm1q$)>jjcwYE!TTmC8O`?lr1j?{NH134=_cV!CoH{+=uRWBx4n((5m!u;
      zapzx<s1KY_&8>`&u0^S3Or(xi!S&dI$7Fw6j4-;a_#JRqFEJ4&O}XyX(0Q$zCTatX
      zV0~DKPgT?B1cHVH;<Z46GV@*`aSh!SG!E{%4oYLZ9iEJKI|T_V7#+OJHd>X6Pt?X4
      z$C!ptiRnx#NA(s2C<-0FI+7qG<tV+ws#zDXr8kkwi8oI+W`~GQ;I#r@hae`m?|OHA
      z&8Z_evjG2OOL&n6f*NE&&?R$DG#eWoYC;x3aY`l0Zh?e*VtPnsCCvC8pq?G$i5|<V
      z^X^7u9a+w(nSrfVg$7dmv+>SL*}Yo#ZrmmHaZV!@bdg3!GCWEXNg8v2n3|MkPMG@a
      zRxhUCxcu&a{Np?KcGe$Clj0Sq^KsWH{~zqS2TAzzu47doSlso`-|RXSMu>y{`TtA1
      z?m@r3@4D}O)e$CDhJ1#)%oc8(DAd%uoHpSW+Syd63-V!+RxZ7m?gfykpCmHv3fIeF
      z+Kq&GI!DavLWkgjMwA|m`1sk*0{OJAOvj6np0hXE3a;2mwpY~VIJ&GgP|=STLIU=x
      z(S$=#3)9UrRHhnC1MTy%Ca(#&Ue|Rel#K;Dc$r3PFp+X+x=AwZf#As8s440Mk1;}Q
      z$}Gk$Kej@0xvtX%I&H|vuU0JJ?5smZsl3Uetu>;|5ZVnL3KU1BzT_OGR>+y)b=EzB
      z#csS{Z!S8Q_uG+;7OB76PuI{xfVx7DeYwD^oI6sK8x(;#pBg8xXOZjeyj_ePeWY~w
      zWou0LG<Xyo-RRPE%xae0O1tz`?R15W?MdgJVqVU~Bg6?%UjKW6Vu%w+N*iK>fr*+@
      zpUiNE$$CAOnWjgVLXv-QlA%e>gd@Kqob?r0Km;=GjI+96S{NsO9VmvQi6=+dA-G;y
      z2WYE)EFSj$Z9H`mF5_`0onKXdPfoots22IIwAm??YiO(6#knRyjxB|%EG9dnn1Uh6
      zXbE$waS-7t!gWczQ_OxgGjlXF-I>eScy?ZG68doCBI(wX9%!fR+Y^17UN`7+LAcw5
      zvh*GuAzKt3^FoesF6%a1%QzWnqORGoFEu%|N^awdzqScaDEkat9SDZmF{nsP%M4gM
      zNGQ6i+H$6)v<4#z(IM(swfZh0Xo({E(V5){=UCAC#dLumdI{$12A?v!@h#>Gq%2eS
      zY{nVkm&*wlaRg(-tvzbAL?`@;RHl<L;fKsho_U5oz1e&QqFe&mFKM!%kdt!onw_i%
      zi)1=yD6krx{T}{&{PB-}_f0mz-m{7GYc>JOZl7ZQz0HzF&4<=;VL}t*wLc+2e?s!t
      z*bW424sWiD@2=Yq#Q(rNQ^1YTF}fF*1pplbv1CxZ*+*09T}l$JXQ?UhsBh7$z%!=^
      zC|K2iP86fHEU6&t4dPmN1uU*DzxqJnc!I}eM-2)wG`Iuajjmn*s<8%;U*Juj?)3?v
      zm%z!KM*|=$-uV*3^RDnBfQHYYwFB*b3Pzws3qV_3v+v0c{C-GFpb7MH4N?>G1MG`K
      zz_Z{dR-9HvOW>jY1bvb>7;;dYe|!BW6A3cv*5%X}hYXV)7@~uq2~<qo6U{N`stpPW
      z5@%+K0EX-@#UQ9ZsVRVocGeqj9$*~?Uwt5u2(tlGse<;9VRHa~X5yzc!4%Z=Wy<tJ
      z{~dDOr5*|~X8v+lSMVlm29(!F$EeRRFYP!ZR%k~tWt%o&_%Lhesa6ZMy)Tf;Ki)9t
      z)rI`RX!lDjsHaL{EzebknOHyRok(Hra=Nr4wy}Ay47;hA!OTdM<rR{GNCI`8PNVre
      zo~=~pO1U<9s!{iN2@gl`+KMd3t-#rh$d+y!lH*(EA8zRhOlapw@8z;hbW7mmwFmu1
      zy7<NOI8uAUyuzM7z1UI!negs=^GYa0zH};QfuH}zK?6?5JrBao?+7U%dw8GP!|KAJ
      z<#x-x2~i>eLV;OA#Saj_yX)oGdU78P&FCj8Q!=elmxFWA0;8gazNO|GSpTT8Gum`q
      z3QzzlyLhxlmh5VrF99@tP_oR3R@p7(^J|XFaUG_!MyOY3nEkFz*fEm@w`@jYab=1u
      zuE^Fz>}fVRYJe4s&<b4_oFa>gmQjb4Pa?GJv8KG%fyCztFQVmqtZ}=1YOjOwX-vfk
      zWd*bIJ`iJYUjA)$RQ;`Z1|73kj_0u7LHOa`R{576&+c%~|398FFBY-i#j^p<{vSS`
      zEkm@iK}9#6Xmf?8!mL@zL|_#Ai-8EucC)-DlYYg9W63&t$2Jdl7j5Fqm;{UjnX#g6
      z;v;pr2@QMM&QEl_s0qlNPyPY95oCW1j@3G>xr-f3WTupA6tD|hS;tm-tY+vjyNu?L
      zPpL4wUpJUigF@!vAlxYAIEwiYOJs8i@osPHD3}E}BIL|3u+@J_@r?Et?RiRHXKtH0
      z;a1-<x?}BvIT)x(Yc*ek-Ha_WGh_!=Yj%V!fFcKc%zi~C^U-$WWqN%RDr~l#f|+@%
      zUQd`_fXhX&I;35>0o}xA+QFnY5yf*PvXf@A0$duYHMiE=07U?2q?3WKw26^b9HCw0
      zaXT$`7t93@``vzN_J)Npi8U{B@5V09=x^iM`Nu#0%kT0tX{b8^3j3mkNJA6nbEltW
      z=<W^OdYFPC5QSUbewfdKilWW(36Lcq#o7bQcEUHo8-Ha;JLLN{FujVV$rVgFk3cJY
      z4yRxMDe%)oxFgW6@zfoRn6Hqx998B8*43(jsCa0r0YqJc{G+@@yNB@Fy_?(7T<8TS
      zfU4i3oC6p$dB=l6-sHPNmL+g!5>J=F?*z!&Kt%yZPk3>DA9q=4BfpZ0o;h3DKv%bq
      z0J0J>*bW-jC&Wi-P?){n>f7EiP&EfVkzqjhhPq+{G6#Nv10uG9MhB9{=XV({Ri0qb
      z<}}=6NCydS>j8`%(k>8O<FqUm-dQAqRG)Ldn7YDZ3g0mVNw)iUgxt-1{f?01L<bGK
      zJ3H^=R$;0AD-{>?ay}`3Jmd{a$WI}M6Us?A&~qlU7wz-Ax`}EFym|D!1O=%(<L9D)
      ziz~d?e+0h!kLnHPZOG#SB!)C2o`A6Ty14)W2pBaQ1-$k9k7MZ8N55g!Aa4nOw`FHL
      zlPTqJBZl7uQpv8ta1_58H!!ss;nTzeY>cyy%5sx#G+RM*Oz1=7Y9<-v{CHBeykJ`+
      zMw|B=_XxUrliV^yb0e1{3S04s0;+>jyeddjgh&cgqp(=1ISQ45x!Yn)6R)m|sk!Ya
      zWw$KXOgD>Dt!`)d>@;t|JG8Lp0(SP%h|H0q1MbM(=@0~KX&AZ;Ki^khWe0|$kkEbN
      zI6lDh&`*S>#;L5&EJo~-BsiW7TI_BKS6u9-!p2n<Q=ZIIVCt=`l!}X&haja!<p%2k
      z!a;@$Y<9{#O3#<p=E#p2E_0T#ce)9exqP`!tsBmcm#6urnemg+MpDaCTSlp|z!7?a
      z=?g%412Bo+EM^^6ptD6L$1r!?((ZM^bJuLz?ID{Mw8cbQ9}{wS{ti5U{qc`~`&|TD
      z4iV_|s&e$p2!y^-IQr)wfnNOxAp%9OyYqbn3c6tJUi@_l(Flg_;1j95%Or=&v3(nb
      z_Q2}}OSm<EinzZXiD1U`2t}YN_Ln0O@^ovZslOhHK&A5$ik^-4zY>X%pRRroiLfst
      zk?^`MAf66sSgkS-!#l*1qGwqdzl}!00kqxMSQf6^Uq+-i5TDN!WK1}C*phJq9&o14
      z)@ONPLL3zH4BkjE7}Ah@dbXxBr%bF2T@}*V?>5`gyDR~n7-a24ASyk%#>6_HYY<(-
      zxmxV^`6$!aDF<S~>~2pfD{-Socqs*&dQ(&0A*v^)1-v1g*iv0-VeXjDU^s>op?q<x
      zYo8X3Q27YZ3d1A5Gso}_+yx_`<&%Q^eMEZmou7OjR-DW7$iC%RS-A&)2d?HEYWf;|
      z%h$B;ht2+qNkE{_bwmXopLGHf>qKUxS>v%|iwNY#tGW0z#V5XZk<Y%!$H%G%NSA(y
      zQd$(};4`*L8RW3B!m+8NU;##+w>jWM)jbmkRJ@>IOpLRYuYy@b7%y8-8CPKqTtjTv
      z^oiq}HG=E8*&jB$^t+JM{B<9yUxuXqUsO``4wnCQNaAS-Nuc1iM(;=^1;#5M=jg%|
      zywP5gsHJz;cpu(?eb_}08Bdtf4UMZuV)SZJ092%bj?_Cigd~{UNuvItn-#(yc2)Yt
      zJ%CnKcjER#&jNBj*7xXgaCJwxM+ONk!18_(oIP&|<Ss%^`Hx6*gpYX*7%b#+eR4OR
      z#}820-jlwU&fem)5H`sBf=D(r>|CgX%~P^3A$?g~RSR0;(kou|^qRXmKXaYb0p|!%
      zv%?}_Ou$#ER3?3Gat$-{Av=oRhNJlT251ew%P>C-A%8V+mxIe;Mx(ZV^_wfHh&LcY
      zpXp@0k=wx33eJp#W{%9aGh+*!K0LTE`x~CBv9`ZVRl-v670QAuoV3H(C<@52%z-+z
      z#9gq7y_LeT0C|mgs9PXM^L82=^EO~m4$@4g-ps06R=4Dq5@|9xlZI^Uh|zUM5suFW
      zyV&HxO$=F&6@O|6%=uDD$;%Y-*h0VQm$QXeb<64fJHPgu1ZdZ9V^qntZaG2c7^8Go
      zVHCD@uxGO~d5m~$eT^1cqR%Q_5|L=;9`ehqzHTJ%%vLE$5j#q*w;<8zM)gg~+{#b&
      z!}xYE5`C+WRK_#4-aL#dw*@^4I#awQHG_8M2#bnUmECY#4xGycQ+PUHb#MjWSm#MN
      zTIbfnm^53K$VRm~VlhPN1^Ku2S@#E_NFLxjC+25;_K8*qVH)bQ{sS}q-?u(P8{ri^
      zXudw<(3<;MpLKNZe^H}-v|hN2WB+N51|XWBA?S_tI%G#**JyC?gYAfW0XXAO+<~Zl
      z@nHu&@I6qYrN6DwkfBIR<Jn)%jE2PMrNsJ_86_(HqR)|me)zKveP5%ch(A&9h1%cB
      zjvgjega5$$I_<eIL-+nE_79=xU7hv}MZs(Mv9KNrJkT<iKg9FToXr9Ich~WLTc@G9
      zKM9XF4;r$Y$&si1BRQKF1?MIa1dS#t%|M*DnFN9V1a;G;0(Zjsa&%hHh>?&7GjD+t
      zPysuP4PZDXlrksTMX0bfuIU7rpk@yP#3fR8N9w?X4)n4ocy~#Xg?XK1yb`6LbKgz#
      zQFtV>!)judn%_wUfAdw~ji}=aYC{CvJ~bR=5|NGna-9a>`I!|_dy8q-O_>v5NR0xU
      zwDK@xOkTF~MxZy|em3<xd8!?VjwcQDx^*NZ+x9YL=VLpXcRW}h<MT^s-fnc8aa+=<
      z8ikAGhBTRN)DsmT)3GQqceI$FBqu<^nXI0u#;P~_qRz){gO=s~*z+9=2vr=0*0|Kg
      z#<t1I`Nd&2dp7j*QFL3L(%3<a?`$*viy!~UzAMzYAru{6Ss=gA5@G0;eJ|4S&p#9e
      zDh<wBn8QJ~Vm!C$UEu%C&bf;beCTj^z%0AFLoDxzLTJy4k8}h4-NC$Kg1!>9V5|q3
      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
      XKC(}{%_B+J?B-Gm$j_a&`uYD4YqW|*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtT+iuf95Ix(tF)@aOv<;N|C8cRv;^qyMDpFMyffOzxRmH30EY22pU9Hzu`&aP5
      zMLh5Ud=z5Vi5f#6P(YSFvu9?`%+8E|{QUMEKpUQoIfhm!Q}4h(_D?*?wU;E3cckKD
      zG33hI9wb`%fqv%8VKVaH^LpEc#ZWQ+UgXQrdo?)Vfwoa(Sk2Ic2dNVJ)O)SOv50uc
      zhr1^MKhh$W+kyEq6!l0X^)^GNH&gZ<uJk@v;+^2CLo{1L3f*PsHvWTWZJ)u~iHE!d
      zhD$DNTyRi8*+mHzhC;(QlzT$*m+9evt37`ZafWIy4*Y1}SHheppk*$`usK^fZMsWA
      zrPP?^##(RM+nvZyl3wi7D9FP(Yhz+#nPFk-cxG{M1GjA4WLTP7b2Kh)qsFipa@{{o
      zG(XJQ2>vbmc(NUbx^mCOl8JNrajF9Tl*Y<XJGUJzlas-HE+tnPGpAA?GCcX`Dcfi;
      zY|Ii)`SWYSQ0j|N`Z`rq^IopIllzU4zi;hUE;QG*PM1bg-jzWVCqjlVxE{qr7cH|o
      zwm3YB-lP(n)WZV3^I(;VSupzl3iOs>x_gnd$C#rBaGL9%;5NVD@<%$&;fldB3q@Od
      zsM6V`7=tcgktB^8HS)Mhx<#jJ8DEPu<7Iut^$#S+OhtoPZ*wfxn5D8!EO*YatV~$u
      qo1by_4;nI=VocE%?q}Kq)JaweTfr*UvT_I@q?y^*u|d)z>!V-jFeUW>
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgtTXz#x6#h<n(n-TmLb<k81Syak4JwMIi1r38q)?k!v{l>b<d6(aX2Q&*G;8_j
      z4-iqGysf1yyf4AFsEd{5lMns?|A#L;y4+_brOm2j*%x2tT=uumzI=Q3{^RdoYXF|X
      zl7axksk~W9UDFn|rIab$l;adrW!qXba>7mx%sZ~F>F%gz=A44IAbN&JM`kB77tae*
      z0cVIdQ63gWk=I<2%WBR7LoipkD5?xc(!Md>u9jUZWtgt8uWGt*Qp2MYmHDEf6Re-`
      zWyizsZ^UPWZVT6kgbZh>Xb96~VABk(ZozPRPB8SQo4B<pCbHFf#xM={EQ1x@nrfqO
      zkBOxbv>w28Y>I&oSvk=LhMg+5K@Fn?yHsq)Zibd<Y)VS@stBT0?)Ixt5R$tt6>SJJ
      z>_{7?xKt_43p=aL7X?E{+S0Y+lx7?9T)*TpH4J@Qif#khlq1C`m5Y-VlOa5^q>Hj^
      zSf-=kX@*^r&{R<~^QmmXwr)tfZRo*K1xFZ?Tj4^*F+>^E1yLQy+d`B)a=RNdNaQ~f
      z_J<KiQbB^Dv!Sjwf>azwFGY~ECJLHEIf_NS7gLVVE4JZQQ?j0>WB+m~pFg3}&+;ro
      zdtR8rri%6{B<`ZInL!0783Hqd+wcNjRB(#;YH;Kc-zxg#E8)CwM@*eq&&ee9t2l#~
      zs04+XCn_1@%{a<r(jy*jjL4waU&erfSDOEa4LT|YF+{0wgyRr_WG)(OYS72k&5hu^
      zf^!T<n{b+0*HAHvF$&G5_F<J64v;OcRvzV@l2ft8q$j6vE@E6knyUNpC>57*nW4=T
      zOYUIR6;##1=**z}Q+n{Kib+Ywj<PMrHHSKjpZzehm{RZ>L&SU8tJO@E03{Vy@H)Mx
      z*|t{Itul3}c)dD2)aChWLU;See8(HE#(bmGDrWE|6|L^|B0m_0!_CrKk68Nrwu)I#
      z-4XVpuzg9G1e%I@=nT8p%5Gys4A+~ss=9&y;6pRW1}^(!Q_?A+;wthK?3z>b=MV+X
      z|Lx4o%%Du3q2d~7xNOs{5^-Ly>8AaEXdO8&+=7*(y6XYefeDLYpCjB#*(*!x3lo~H
      zl?0U$g*Y1}o6}9R)$nsRLvHp#j)G9G;Fl|H%g)-CFL)VlA?wsUGFHXb#W_QE`n{V*
      zS+A^aB4^B`Mm1E_9Qw^kX?<wp5Y3Jjn*JOea;VU*Lyi=0rGWxOB61ATIY5~0Xeay*
      zI@xp%(%KbItRND<kB)e91$*MhSFkU>hp(XXuBX#Y-@OvaKSYqfhc^B`+W9T);ve7%
      zlEvv&dIeA70IhN-y$E<a>4)^KOO7_eaXf|HBs)lVocuT>Jz=*=gWg~}<I9LF<1j6I
      z_$p#o>gQFY((E@pH%{k$zmu=D{DS8h#_ymr5_%Al0#ZD^inFU2POjpDyhzlNwK-+(
      zL1+aNK479HQHzA$xtXmWd7^eRn`o(@f{EJC$kY#sT5vAe08Z3e>E>oOxrR^F6uPLZ
      z_-b$X%Uk~9`!gpGj~C}IN!fAwbo!vv{!&;)ah-rkN*nmci11I)%|FFK{uz$(&vBA}
      zfj<5vF7P{;=3l|!U!%gm!Mprhe8j)QZT>y(@gJ~E>wW$s{^WP@kl$kw{?j^nY-gRk
      pZahR8CyAJY_zTx*7oeMNDiw!l48SGY0;ph-)-a(M{bo17{{i$``Ii6y
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgu-BQ~|6#mxUpx~&)r49rNGz6T;hN7fR(;ufvz$Agjq!bg=nl`B{Z;Xm8xsuF;
      zCum-wkI|Xn%=DrU(Ca==r)Onh<DsJo7wwH#yXWlr`@VD5fByaZ9{_H`RFGh})o|MS
      zPsV}qQg=k4`@XHWJomt=3r}CJ`GIGc!J6UJ{XJt}%&)F(?is#Nz!|ido2$YW4I>cs
      zZNuMZNbZY6hHR<p$Mg<cfva0iAiNibDSVyGwrjR!J{E@s2L7UL+YGGAFcj=r{`?Jw
      zrBaNyQ*n}!p*xmi1$P-L+S#tYRgk#~g;{j#A_azvDlQ<+u=8Jds!CTEOO_*^w3{{I
      zZ5uUPFpQR5)37UsXUTnZ$Yr${Zl5XPV@wOfl**WjVWd(>;<8L?f}qoK6)AaN#W@Vg
      zuW1zu&NC=hvt@6!9fs6{m!@b1mh1QmW*KHB&blwmwr2&0`nq#q*jAmu?dd6)W0)MI
      zUAbK9$%m1}bp_WL7SDpa3Jp01mFTwI@PudzC!o*=A*DEa!a@oQ_)x(j!^8kNPb#Tc
      zf=>C?-H`kYIW4r<&ychW)!e@vO7k~We1wk~MjFBq9yLW-n4X}xxR%>pk(qv?;x;}d
      zm|LFMFnnr@W0gc#;d2#VfJm*HwnZszQ9rs(hPgPPyGn#=7GJ8k8(#N?cObm3L<;V!
      zSjGx9i*OpmFot}bMF~)-w@$!Q<yP@f!GrigFmOl3Bdk#&ec}5=7ILTMVjXt%B6nGQ
      zrQ$J444LCf4i@X@*#3*^5$EqMRLUnp%2iTS!zU`f#wKBN92Aj(n$Z8hgW26(k&tYu
      zC}W!;-4MZ3Ulc>aY|x|%Te&Jxuc+9;w+t6dw@HkPu!x<o#lGf-2=?4M!JkD{#V)>Q
      z823fcZV_k0e%~}aqbZ2QRE6gng;kBK`2ax*ahj)N2&eFVSneeGp+Qu3+ny;NT5?2=
      zoq86QWQ!A0>kc(y(KdV{BGEB=)G$lKElE#f5~Fg~(buS)bU->Sr(!7KG!<3Sdxv)S
      z!9)G?`GrOP1|z@GSpx6UZ;Dp%aVY#U*#O4mo-DnG46X7@+E37ZdN?9$&%!;B$uAt?
      zQvMCb^NUBA%ugR-s&9Fe?tstW9G}E6pTY>A4n156BgynUWFik_FU%oH_hv9bK0YA-
      z()Sfy4YT-*G-Y(J@~?5}HRfrV<Q?R9<UTs<;KmVd(Prvb)cWV2b;WnO%e@YY9jwQT
      zH%d~z(7W+X^wnLScJN(4*BOc&{3_CX4zqk78o!1|{5l$3!!JC4qOz}|yc?9&4|qlu
      VP2f4@l)#TLXqB%t{r^A>{2$s2c-jB}
      
      literal 0
      HcmV?d00001
      
      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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
      PUfPbb3*`=!yU6-K-lo$o
      
      literal 0
      HcmV?d00001
      
      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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
      Wa2Q{c7Hp?*KOW@W{E#XC`u_l&3ZI<-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZF3S=6n>5iELpcPVhqiTm1<NV(KT(gZJ=o|CAvy*Mj{U5rwzH{I-7-AmW=t*
      zALO(%F|j6NTJ8AJAJz8U3l*l-5oYe*J%{u1Jm+QK{q^cKfCZFw93xz8_#Nwsv+X>!
      zd=Xmhwr911=C->j0;}MOAe=3UZQ<#N5Jsh)<vD)CD*Bx*g8razuWXlZ64IsN;^YX?
      z)xvtA#P_!2bp(NI!trAH{@QG{P`Y2N5Hb&kj~36@J=b@`C4!dDR0)xl=B9`vYJhOk
      zL;|M>v3$=YnJ)D?RKmdZ8#&v~R7cqOw23HUap+R`+=Pype48?1;5gw#$@N9Kv$Y|D
      zb!Wq4;E7VR?s!!vaHXu21~hyjlb$6^d?;5p)t4sX7-6j8W4BE(9yJ5o4@E-+gt@ex
      z8J50|i-dE1Mz-gPhT|22MrTX-Vex5Qv_iM(>qrxleY-C68y(l<Hph`=@~+SAa5qzq
      z?0L$QJzq>2xP*C0=Q3M-fKH|=Ei4mPvA|V!S}oyk5@sZYk7Ub9kFQO9gKLC%*z7_f
      zjHmza!nPMM&t?q~R=dN(J?3$VsnOxe&83H*6$5!J>G**#Hh^uX9f~azKVq3M;sk-S
      zQ*X9*2-!ipcQ>AhdYH2ZNd2qg;o&_{c<w$T<Okh)12%L!<@EeyqJSdd+F+m+&uO=F
      z1KHn4?lX}a$=hXAnw_97R$V!vhT7mO(uiQ%zApk5O0;#{CZs;Kv%I8g`?)j~x8XZs
      zC*Y`y13+Zf{IKJ?lv`fljneq@6Iq^=+XnE>i^iISTnS)oO0FBrF_uky#`dEut+OP5
      zSC2ro#0f2OfU$jyD`_GURZ=qg2mh(<VZ2g{>>*j%$K-SNIfiL|8hiu4Vg}FnNUc2l
      zdFW-h#keA@GqZCu2RM^G^BYoq?@@*NIiuQVbT3qd2^GV{Ifb7+6$6b~oX2c0YQQXs
      zqvoeh;_siI@f&cKkJL#7Nj}qzc$e|+9^pdm2$yP!%mL=6UgFA2e06~9Z<MX%kWdH@
      zIr}T5aKu@DS4hlmj&23{{abv;PgysMZ<#BaeSy?3?*qk@^6h|gv`1qE-(#`oe4W9|
      zW=-s2vUW$yzOLnEh1ay{L*(Xn{}YY(UTMGuDBwmfMwV$x07inchgkU&^l?88t17}x
      S+>##bN3d~+N2H|mYySY{{DhtW
      
      literal 0
      HcmV?d00001
      
      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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
      G)%qV}+}Kb6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TT|0O6#ljs5=s;)mMVx=1Z-0vMa2t6kc&5{ml+&X9vnlvQzIc|(iHKh_zQgT
      zL1(m`(HVb$Kg#iJ5<`J%`;sPm&UZOy&u)MH{{9odG}a`97&2w6roGko^nK0Zj#jOj
      z+OA#MGfLdn7ENwDclV2Y*D)%Vgb2gn;nel@LJ((&>H@$pQfNn-XON6)p;FXM2DZu2
      zHD_3cGtV%dZV%qfY%oNYD<vMo3G_-h$&hL%so)g)7<x*)TC@$fB8FT#(^hVD<p7b7
      zp&tnerx_;N2{z*t3?RuMJC$|EHmowkX;K!w)J)wfYu+lchjCUxHwGCJ>ErRtMmHGF
      zDTty=yq#AdL1ySJ7#4qA+u7pwGkweC3~{%&8@g?XZ+|i3yfLZ_*|sGIdrJE>*1?8k
      zHe%#vOgN7*<U2rYHWl~mja_*sY~}?|7-_+iVNhFi;2$uWy`o;LQsIe~84R->m}&|2
      zYMT<C#u;K|?mXhvs$S+2rWuk)_i(9Zm~?hx$l<EMTw@5Q1xF6o72Lp0nst45ms=%<
      z$>su|Y`x`0Cx3h@e8#+tS%%PTN>I%Ss@q2x{2}@u!vaIUDNddFK2_!xw{?e?@+ldM
      zG?6ynsW|*_L>#bX1uM8qEjIZcr}L_Ia%c)7mj*hA1jA?t2pTnN6kP?e^-9ey@_UAu
      z<Nm{U(3EI5F4C}t=?)7aE=~fy#l<<GUx^|#gY@j7uh*0z@&?pw9ZDVX2F|G2Zx~X~
      zeZ%k<iiB{1o^eFzIY*e=bV<x3fd!;!CFP+>Z-l;x$5mtQo6rlnYL|Sq1<DRlOj5Iv
      z21XC)WA5@Y8C`K{2fVa^R`O|u^>LqUo5+Nz<X`KP4P5@W_Xkk$5PeuBk87@o>cIn%
      zWZ*sN_DVQSLPeH@gz$tfyh=FHGnuNGXkhYa8BYlP)K&1hBL@m{pdh=vqB|OCczdz!
      zb_<yKf!xamuBcxz<ZjAL{8k-#`W*fMIX?dp(fA#2f#OSb%+zu3GZ|{$s^?VZ3tYxa
      z`Wt)hno&rG$bB<3tGMqAYxFB(QK5K1)a5R|Y63?Cu!ILKz{8&c7aq9S68zB3TKxku
      CK%kBQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ*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
      HcmV?d00001
      
      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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
      K=!0a^U;hUJ+!5gb
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYf}?f7=8}9EF@b%Q4p;c?1gZN+t#W`DAfeeXbiPb5YX05Si;g}H{Cr!nCW!-
      z4>}#cwck3O@msAk?NZwr#?SpxweP!GE;@nI%w+ex=e<AgbI$(#&!1ZW-p7W5CV_Ot
      zu4ya!n!c{thSWUI(yFerW-c18mNQ&wE}3Or8rhm@(UyX!z`KWYQ4kk6e}HWmQy@NK
      z+NK;8&{Bm1?Dv#2y-_tXeKP{loU>>oki;7bRDlleM6*pt%WiPdOG}2Uq7`id&AMed
      z+={@7RKBm!z%r9S1V>aTI4UrfYH0F*3v4Txwo$CDmJD}VFIklRXo1SGW^~tNIoyoO
      zWz!=74jDd#E<<gVX-Eu*z~CXB1Mmp-QUH%YSE?}@Ef9E9MK?|h9B&8)1AkV<Ih+(|
      zS*%s9fGfOvUd3B@o64&?o+(Yo7C81Q>OpcsocN@o7bz;pGVF?67Ko(!@(J`~P{Dve
      z+wP>od8RpX%raL^$+<KY?{Nh&kMa`^ZJr_baD`y)2xnQ7rll23PX^pcjIWoCDi`M|
      zxFpaUB=U@M%{AqQ#=!190z1~!>y%lsby;&M+vV3|j||kY+BZ;Ul+r7>DsVc;7_#-c
      z>*^bmHCe66Dd`&eY63&ZFdIjR=LFtN5~H}L;A4T-z;UM?71xm^uuW;Wx^!HD&h427
      zHu-Qrlf)P%6pRxKcOz_TRouW$N@W}ClE)RY!qV-EHd$IR$}*$imcW^VaY`VMf{HsR
      z3M49q9JkAKMi;q<zJ)9|^@)nR+*Irl0ZpfO2vfW>O*^TDEcZEv85Og*C!j3rUNI<$
      zSTWDG^C}iNc2YWg$OG7z1`kwx&NON+>s7r>6XeZ@Ds+^HQiQ5NcPgK4%yqV1RAFF=
      zIZG2*cHFwd)cy|39NgrvRCU7xqTtKzONpkOpWMSCmH8Fku0+xHy8q5d>1anBuK8?T
      zu^&muF3OPv&ixnd2ux#p7EKGpml!)z?#@?lB)Uw(Tj}C!MIDCPH1sK_=9Y~KlW)7O
      z+-{rUt#yI<gC08h5&FmIW5jO-&Gc*`X^iA1daM0MqWA-eflahOBe@A3^h^Z0A)41!
      z93#22Zj0lz;-88xoS;ZF7Mu(t=Ez2nuDky?obqud;-jbE$2&gyULfh?!mp&PhmQw_
      z*MiV$-6;$$=$rWgm3EPAqonx|mjkaWT(r<>FHZ8)zc4gMb#G$$&cJhgBrqI(g7NO?
      zbL0eGAYV-TxIG*j?2c`<w|{*EFTe3I8A#20rCo)OPoE$<%Mm^k_~GT|ppUs?y_5Ut
      zt@y*A(Av*$g6emiVnrm)vA_56#Vm`_^wwh^<zP+S$Eka2o9d{{KBGp8n5MI~Lai~r
      zS+vu0g7CdTGs@G|d<&Ow8#xrna*{0X;vVTrm_dbBHO%2#%;P&cl|SM>e!+tPywN%w
      zJ9Bvo3#*hZiJxJ^A-H>R1yy`Sd3y<37ann;f}4=EicnmhB~Oh#*Jvg1h@>X0{|m3w
      BLlgi2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_c-%}e^6#j1WW0Q2H7~3FeDnZdEp>&J3RU1TT2+i66%0g_$ht3i%aqF^)n++0u
      zbJX#{(dv_bgX05DYw5^XefE!XJohFxJ4zp%$<Expd+wee-*@gg=g+@>eGFh06$K|4
      z3U#Ng-7)vfea+#X)@s>W({1co+uYR(-1V#-t7dw9oqycsEpMt|Tio${KQ=l|t{})T
      zBAjTp>D0BN)81u>tQ(8B4gJO{L$N%BD0y<ZWEg#ys_?$7-zqNMUMexD;?F<~?U{C)
      zGccXuWN~$KWva4R-Ygmn%O4C2%UsR29Lt+$2xPJqhG3zw%_9iK!0?=k(>TKrp6jcO
      zWy*v67@li6^}McUD^XG&QxQTq0!0W(6^aldLO7=)B7~?A(kh||i?0_|sCb6qRM~R)
      zYI}E!yBp?~O?>0!M$NP<rfUgV9>x&BD+11WhQx6wdLXhYVmL`GybrAwWqPOKR(d%s
      zW%TS&a;D%SVIQPHw{2cG?M1iV-ld`{?$>zJvl@<qOO%v>UN2qO+m=m58NsUzlWpfC
      zr}2rCrYj)JbZt<mX^#r>S~>;|mj&x93}=pEovjFs*HyfMH|d(pW|KSH3@O3&DUtKS
      zBClc&Z&7}{Mh_Ol>CAskNOuO8Nv+Pkej2Grs2IbtFe$;MOm;Yx7{d~l6%-jpeZV^{
      zkMF9u0qTvY>AGg8)@XJZa{gSbZQbEDFR%L;|8qp8$)HHEYdZ{8zgfS0hf@@yJj*I{
      ztT0^hM=985tCjabdlGg)Qw$m!3o)b7c58gu5-l+18&3VHbx~N*jL;p2yV5UjDOhKi
      z`Cns+D(TqqM;SJ(x?_56m*T(ggDmjP4W)PH^9!@o`2m{T;e~NAF96zURLGsCgxqOB
      zkVagzGBBDHV?tQa6dA!OvL7YsYdRIrts}5%{MkV85b^s+Na^`tNJ`^UIvWa0DJ7*B
      z!itn8l;6lO&_%+i2D=zHs-Z4YMm5~UgmE8}_sI7NyhQH=;RN<6b_XeZiX1+pe%r&8
      z)DT)UB>SjJ#4SkYYHm7ph?jHcenDp7X+$#roS1w;%)XQ!5@b*M<W+DMUxIajxK86j
      z-|JU|fYHBF@+YaI(ObwO(gZDm@;t3+Vsk)TXr*XP92{Y$dIYT+pFPBD$%nZ55Z4Yd
      z|2ygSxFu!OZ;-~fgyuVBaF?Qfk4yMLqEmZudpAMfZ)1VpBL5og0z)YG0GXekI1J0f
      zAAQE5KD8(oalLPRl?aI<NOUn-y&1?ouFi?uSP7hcgu;b`e|clln@CfXI_#akj~r1D
      j0Ag{LdxV>RfIZzVfK};p4etsIvSWA;29@51Jm35qZEgnU
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNU3U{z6y3K?J82jQO=$s98x^qW2Ps<Qqkxd|(PG*nEro(eC&^7aWta)`QK=}3
      zqAvf759-p?W!G}~<byv-+;?Vxw2gi6VUoG`oV(9H`<#2`?|**(1He&yr=dk)XweSx
      z%f^cFFmFpg?|D|f<~l28MY{Ph>H22XEE~SOCLaXS^ED&{b}RS1W!Q`P>C&<+bGKa}
      zw++y^VOP8*<DNWNa4M?;?WLevm99W{F~qV>Ctq0gWg*-irNe2{HvO{#`}&%C<mLnt
      zV@^e;(2AWpI<QNiwJ$f9!fs?VbP9AeLDtcQJpvt-pk{?>3GD65HI2}L9_-VwS0J+i
      zXxgPRI`-ogfmC7Q^4*J57beb63GCSj6Z(xRI<M+@4X+EdIqImuz^0TU&;Mc}kkz3f
      zDUdFjwwwy?m!vyulq^YRMW<|7bB1fGb-bDImrPF}U)-i1TMMf+x1_!3FNHczDB^uO
      za_HxJQTmj-Zz5Mv+k-lWa6}-<?U^OVjcqfnz_VupEzVH^F~NNO)tV%e6I6IRE|w{6
      zzk$&#j}=YNAJuS7VC4TCO<@GbRac}0b{K(AmZoniGQ-=Gxp{1O_^NB#WwT~jF$qdD
      zxDAOdN0dfqbezTe)TriojO^I#59-&@B2lL+-}5>Osw>+(_9Pqn6pphPPPOVO*^|CA
      z<CD>%LWlvvs~7FE!vw~4Tm%(A9Cucuy~z;`9}q0;YTmmD=LQ9mZVFehQv<s>x;->2
      zHT>t+NnBN`en@*9iXM@1G&h&T49lO*YPimO72-EADFmj){!ifs<~7{hFh(K{I&R^%
      zfVN^-ft;>x$|o8%qfPQjVHS53ua7xUnn}Q^FpC8p21-=csMVxh;pA)P8dYd3ZR$LW
      ziqiQ~3X`bnSXANKYD%6YOcu)X-JtAeA1V7i9hS0dq202RU<Y($v*DG<o>4`s>39e4
      zs!knGf}NSpW*a&+@(FaDz)95-^m)kaKF>B>lz1kS+7&RL_L?iJCcQFSl3)wBlAb_M
      zWZG1AWp)BKTRe_8mYvoPFDN}nPt7=iTb7qhHG%eSrE^3TUO=C)ZRw6#hUZC7!#4tB
      z+gzfpFbBt)%>`0yx{o)gXe*yKJ_$81`H5@iJ4XP2cW^aLdkg=&`q!ZM57d$V8Qpap
      z_!YfBal3^Oz%Dw0MNZ%{G8o63T=hi9@D>hoMSu{VGY*GvI0nBFgZK9Tg5K6T-tNS+
      z$BBj02h{pN9Rr#C<At_`A9y?plnOzok;c`AAiZ&rG{?d)KhY`(n<Nf$GRzQ2uVZ9h
      z0W*g+y!Yb^P?a!nJp|Ol_jC-%DU6db%pGQ@ggCT`>pD(_sHA)PPwcMa+#1GSf=7&R
      zk@4*Y#)n=o?!kqaG4DtmYM6l(rS^VN$K{t;5z&PPqU|q;a*{=-MHlmJ<LU3$ab<oD
      z#mRL{&JV6(dMb16RAS&S>|4j|{J?LRTf;}0YjxbMqZ}HNL#(eH$}H8fOuy&L`&<t7
      z*Wv6>)bU`W&5doovaM{ieL}FoI#ypMaF#Lvl5JK+Cr3dymT&|nj$;{TaE}65DB?cm
      zVWR|x)*1plz+<?03NK82BuXw$oN3}yJYwoeJi%x9oYHmTAy0fk8M@))OIlUso-lF?
      RzQWi1SIzyD&$s9H{|kKJVr2jT
      
      literal 0
      HcmV?d00001
      
      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
      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
      Mgur(UT7}#H17S7j!~g&Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLTTc@~6#k|cwv+`*i}#`+Anl?o7f}>K0t8Kyh9*>NfESl`fF)(O?#`0NpW`zR
      zm~crXk$3-((I?`WZD~RArP=Jx&YAOl=R24Aaq;atfC;=-5MX$_ZF%~xv2Rp$iwoU#
      z%X-DJ_stS_^d;^HbIU9mg6D-HJa?6U^0+I8R=HcTEpo|}GJ-pXupI><hL|MM%Z9bB
      z=QekFQ7C9*i2GJgm}ULan;~oxzRJKd3~ge^bce<nrn4=mnI(cb(=x?8!%V6rhID};
      zv}BifI~clEv?Cft5Irh75N8Oc(gk_at3pA9JhG<6SG>JV?z}TL%bZfo+C`&WFdS3v
      z>&B2wiy_mBq?<}iiH0m*6||(%8;cCl<!X^vglSu@f<A`+W}#Q?yjR>=F7rKZiH2Jg
      zk1(L1pJA$nLaTU;L52>e*?sC`DnnYLNTNr<6NbU&2xMf3bDqd;E!v({avL%jlpVue
      z@l&DNu1i^(icvhJ)Lip36_m_!FdV*T?{ft@!$_0(z2$n9itPwq%2nj}Q3V?0QH-I7
      zdX-9Nn~2&p&PJ(;Q!4J^J{2!-drpzRF=hYy{x|All7m6bSQdAd%7*K5YH8wz3&7Bx
      zH@7XiCJqs5{|2vFu3dw<jm7y{43MfIy<r6Cp$P+GF*$>DO~YjGfJ)y^+Aa7VK({t}
      zj4tgIF)etE#8)~B;1+$mhzR&iu%ATm3%6+}!34n_+@+Pt?8*B9{fB6m^oa|8ARwt7
      z5%1a&66>Ll#C(E>hab+6Tsy_kxz7_v0>js$T_8aLdRgE~v}7aN2vUTT;^zn@mBcAV
      zLdH2k`U}FLgWv&KYx>)y2a8-`iZ_^^Azo*itTRQ<Fh<J8&;P=AUcpCd_}BvFJyFLG
      n(<+sOwG&JpUI){GELwoxAfEew(|AFvoE=7k`jWmgzWvo7!m>MP
      
      literal 0
      HcmV?d00001
      
      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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
      Wj0Lp%CEw+`xRtN3__E3JkN*Hlg^of1
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLZBNrs6n^eH_EPGAAw$OS6?H2}L8D)`keNBc;$S9)C5xZBQf5ilEqz(szfy>S
      zXe562M;Xs8!}SAx7){!H&$;J$&U4N^{r%_rC4en##t~uI?AX3?q7Agqifwp`>sm_R
      z=?%;y!%-@R<C({%u6c&)X`b&M4EshLQHB&pD3)e-l&bA_8KRAf`hnqPeNwt2!_+{t
      ze1n127^bWHhkL8dxAnuS%JAyrZTJ!;-7;;{+h!2*g(ius^p1=KrbIBzN|-~MAyyiN
      zEavOuVpPvD?M|^)D>Rc7d{@F0Vtkj8kc7xEQ#Wm6-|w~!=Rj*)q&i*i>6+El9FyCD
      zQ-pvl&$CRxo9M6DS0u!dAbH*=(<Mbg8))-7U${lxA|7Kkjwe)NsGgzg8C?la@r)s<
      zIgU2ed;KAU9G2B+pBTDVtc4nJ?V?67!~<oGV}_kDY}Bm6<afjyBujXXHC}BfZN<`D
      zw-|E#%Q3Er4;)R6sP=qEH+D>Z3E3M*b%TSbZq@AAG`<c6z6)`4qSEBzw~OU1nh1e@
      zBB8v*2ZVNW{3?OjEFTlHqhw7(qPRO`l_`opxgTJybV`VxW9AI=(Vt`rr<hmIu<(`6
      zBUq%bNGk}Dq8#@EFF&EF9kK0_KT3W{Udx?hNnZJe+!)PKAQdsn&lPZnOu#7NexQ|*
      zfm(s09^m1K^$lg@$jm7gTJHt<vQ^^p_JrjNJX-%kCs*oX6c2i@l_lvK^CJ$KV)&_;
      WX7U9Jzrg;Fi(ozAe1VN%RsI4G85dgs
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYg5xu5IvW)w3LWgE0u>@QKT(}fQUR=c~}c}ERUID$BrMIP(lrcq?0Bnf5}gX
      zqc}36pZ!sedv7c4pv>6LBsaU+J$ue(w?BV<Jq0j<r#`eX#LK3u?5g|fJH^x-rCK$V
      zif!%d+nTMUHQUj5^pfgmn+Fxm2M<FRk5vrSEGrq)-DB{)m>QpDNaX$>D9PYo-^i@J
      z+F03O@b0UIt1+-FLuY2~`Rd)mQto*s&oKJ3MbK2q&`sT$XON<?0&z=Q+nOKV02r>w
      z2;wS3d#WB1j^-L#@{X;W<zzM+D|ArsH5p#C`{Copbs0Xi^QS%;0dz84&grJM=I(82
      z_NKaJ5cy!vDyc?6wRLU_X8;mz@}jpGdj3_bR_eA4KRSr3^IES`V|FaNP-}=1&Bj`3
      zfDiW=1{<2PhM|>JW63VNdz$HF-j%e9qg$pAQHF3MuBQF5s~hyu{fLuJ*L-7IZ_P-l
      zF#!>WMqn-yz%UYA)hKo8AF5&n9-+t>#{@N7tyDB~n_+-!xu9f{XH3d?fGN`NST#Nj
      zq3GW!6gz|j0gIubeksvdOH&fS98x~e2zEEoIjB0?o{UGJ(dkfaTRkXQl>^$2W`*lp
      zyIRRfW}9^UanaZ?_yni*9frl`wEAeZ^eOr5JeIM5G{aOgSlUpl)npTcGxUZUzL%sg
      zkhfgBq%G@wK11hrd5njX*1TReRmZg{WWEWNL!?@nz4_$g1TBa}|16%xUcNj4owPUP
      z3GxXCy8HO{knJT~#wCjHBI^a&{5O6ARt#R2q+@h{L`YaY9*?lX-f#3$IzlL4^c*3a
      z|A^iXl+%WOx_61XBXlM(fEZo;4ZmpP>s6jojE8)3d}QDlH{v%wA#xsJoY>wchLZxJ
      zM_|Yp6dEW~sE|m>9o(&>n#7$E>P+8zx&ybw9l{r;=YC>*NPG`ZFjPFja4{G=#z^01
      zjD5!aV?6v$F*OZA!EPGYF-z6w5J6I~kZbt04pQxD%+zZ?q}sgSJxAy*K9l07#T0MS
      xs?`4lvx&nq<aU8TD=0i5j0G&#G2&F6^A7}B{0o+TfL)x|h9?3cgJp59{05)ybxr^P
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTTTc^F5dMbkby*4)EOJv+)OJA@ynxV#KuQf8$|dxYG(MQ6EM-aAlI@n*|Kx*$
      z2BMMp?2j_eS&EcI6N7!|*_ku*%{Skf`SJ71Ie=-*2hl;8t=J81-#9YfX}0NV^?Fr1
      zbZSS|j_GJ=({Zg`t8BPtVJkZ(%=DgN+4<(78HA4z5s6yWuq#@|ZX6JL^z~)Es4o|m
      zvTxIwt$dC!m%U+yBq6xDs&6jkR|x(iquMYDq!T(b>xH$k;!?JdVf^_w|4|^6DpxJr
      zau*0vJW(Y0(zP8k1iuWzEd^2Z5(24KNPj$g)o{*rEW47_^+Yku!M7Fo5eOkDj5`W~
      z2#Bvi1u{Ab-C4^v*Bb}hrjs|etK3O6TPqvYqTyJ=_M9>#+!aOd5n_L;by4cRf)K*Y
      z)!nn|giytFix=u}53EnX(~56W@x;x=kr9U)M1mi+t?6dnH4hYwV}cMi9LH#uYllsO
      z+D><4d*3X(Nxe<2OBbuf&*~A}*d?sBr?nJK-1t3(ep3pbVw&)>9XVY!>h)wBo!_Od
      zS`!1zBPZu-4X13rw!|CtUf+O85lv8Z+cq5!)2s(ELrDDdh!eW5tr4r3vnsaXHXN?E
      z+D1|EN!?hAh2-KikDtVw?pquXqY3cIQ^}sFm>-~LP|POVezp~KaeRcWJX_*7^%Yc#
      zc1zMJdQQ;iSuvl_v-<tt_)<DXU#{dkMt|-E10Ol314H~T^9hnLOoU<2D{gp~S`}89
      zmyi95IzD`g5q0D<Mz69Xf;BNy3iIa39zskYGRFrVfAJ+ckQnbF##*QvpTtpq^%F+l
      zdu0WgfN)a8gHbL5S}<We!ejP`re|0LAy(`d1Ep0-Jujt1hilT%8J<jhxQ@m-mu-c4
      p+9q2VDw7lh<S40U(7uEIo+sg%hxr^YL<Z;a$YPeC=#}T6`vs2bP2m6l
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTT~8B16g|@qwv-i0i{Dj2K-!{RK>UOdE5X>Lp@~QhJh`+(yJXpIc4rCk=lIM6
      zCVV84$h-f;=#w!%`J(a8wzhyT5YlvJ=gvLn-Z^vT^Pi8O0F2|Qf&jxr)$+78eM8^W
      zEG{(HHMP29Zx|KsXtUfA#;Q@)1z&ts7|ILo=)!gsgcxEHqnWx@)ru=?yet%SFvR_+
      zCk#{jm(371tP0;`V0nfPQ8V13F^18?sS8gLY}&94F~g8eodK6FF@$FA3hx9%kBUx2
      zqX?o`MHk`>!Bn~=cluN)h)_nsu=u>UzQUc?`ijZvI0d_`n<d>b<hmIQ$s;gKp1zTm
      za&(fA#Ww}RvsC&Fcv3%SRf=_C*p_a-)ZH2}Mdvol+z+`5ZZPz>wV$^aymD>M<m=oL
      zt+Xg^VL(AYL;BR(tGJCplB&w7>0By*&aR_KqF2EkhQYRf^3onfPZU?5+n!Z%TMaWP
      zHQk-}1*6MamIuhF7{y)E(KX)D4N+LS%Hiww23MdljI@atE!V5pZAWm@PI{N*YmrBh
      zMK4`GT|^tvu<}%tTybB;Ra_&P7i`Zd^B0CRMB@09$Vw!Gnzt<O%$mCEa&ktbZT-##
      zqiX5Ga|pZof1O6;*mIdapDkvlFhI=*=^sXbe&lQ*7L(qmS0AQ$7gQQA&?@I=06m$}
      zU36#m5z7R3k@!Gc0bHc9n}~pK1p7h+UvY_65=;<W#ub{G6p6C0(|3qgNuRjn7Xp%*
      z9pYWuL1H=dmYDZ&bNkH!l1uv-I`nzsNMQI_weJ-9fj;~^QZ3o4Hi8u4Wb@O6lAXk<
      zMncxvL;5|!p{?K+MH~Hh_!+;BFvVL;_YiL~O*EMz2gp)qV}~d3zmMP}4SXy|=N@n3
      nhiR6bgfn}X*ggSfJ~%+pASV622Y5)cv=}2lKcexmAAj-}lABkM
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      D?fRmY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2oG!6g|^~IGC_NDTVIx5om#=X=<QlSsGxMl#c?TEh-AC`s5^&bimk=V^>s&
      z|Frv(A}a0UKJdPOXSHYSv{Y$`gsR%(x%ZxX&OI~v`rnto0o=r@ff0e3mK$1c?JfI*
      z<;uY7bR4Vgdt0g@eQQzrfoiI{9muNmRdd@wQebLG#hPllb`bi~KuRD#By-7j8=X!2
      zot!FrjctL{J>{z4fxy#TMboid<yqzJK$gR1Q~IUK5Ul;K51p3ht6=keDPI*xE_w}V
      zB7tKW7)T48s3=!1hwp3Be{I(sDKJ{`>b6t0eWky9o5^5Pbp&RIwLCPM5+&3kssd*Q
      zDquoKwMbFG8U{T;jlg_vqx^$K`Ks1FuC<TFy{on(FtSk=NC)0p;47D0#&Y?Xu4B6`
      zE8Z=c5ICQ~1TF|%>ltz|KA^<FC4xoP(YYAs4b70giHo?bX<QLV<nmPmQv#>=GFM3>
      z*h`$mHJx~!@m^PA#X(wXViNfbrcn?$($;mH^&ocDG>R123H-1gWIyUUD}x)l&WP$9
      zH;r4IMK)_-Uf^s*=77L*s2tt^6Tjj&19t>Y_Ge^p7Yl^jvYk+_H2cQ1QhO`wL21C4
      zOw8e))>zQ12O0d1Kj@C#ZcDczP#h%ZkUu?ov}q1yZPU-%>hozlrUjp}hYzQ=fVQXF
      zzHF)w`rP;H;rUH)UIOEBsLw+k_Ch`H{qO<f7(LnvYkTPCniu+Y`9$d}HhzfBtnQ7=
      zJYos{AK{Ntl5gHnK9BP28TS)>8`FiE9hiS{If4wICf~qqq-e`=uCj3&e!>ZUu>dD=
      ziXeJ5iqp*2uww&Z&-BAC5VrIk*t0m-2g{N7U~fcifYh|;;+H?!JSLlpD#{UJCR(R@
      zM1{Urz3P7{K~G>~7Z=xekbSv}$#tr}x?K1N>0+UaTyb=!i`mhe3rTLB+r`{^;WKXU
      zpfr)};(iwo7m~&4iR2CznRcM+5o=lb<Qt_~9Am4e9P|?B^o$aobA~T4g$i<biThY)
      ubOo#YtKwBeeLkkQKjRH%ERlQ~YeaZXv8VWaL4*Wx?hs`uvU52a#LE9ne}v2c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@T~8B16o%hn+wOK*p%$$2p(uj1<zuZ{{Ag`xDkj9GBrY`Bc(s(ZEZJ_!c1tAw
      z82^Hn3y4PIwLi*uW~kDTnAl#-nP)ol&N*k_`T6VXIe;8WGKLtk4Zouw*hlsU-FHI0
      z-S+gupmpT#Ie}hr5BHs*>@`|}8}2t{L>NZ+Ufr|(hQ981nhcTZj$tq?8UHU-V36Kc
      zp3wMe-DHT-=<GQR(Ms9e&eL+4FAuL*cQ)s0Wn+ia^1Hz<P>OZW_1&;Ua_LNs@~pJ>
      z90gGo3}YI`af5Cy_O_(b#${b*7`T3;u#u_7Y41%9QN$F;940l$925?>H7Fe79PVm}
      zb5J?l*PwD3=I}tnFk*a`)}Y}U!>Hl<PPNnAb%Jes*Q3glMyqanH9K%Qi$xU@#whJ@
      z-)&Q-N4D2-XriYx19d{hLp+j^V@UK>c-#)1riRC$j}W(mz&@_G4v)zV{e9TlJ#gw_
      zVWY1#f0n2>46?{+>pjC-|FK^CGJ||CUhFdsc|2#x_ls3LyWKAIW$;)1vKsC~vXpAJ
      zIzioe?ed0>U-9k=-%hofZo{|3PC#2qeX3ldI7q^!!di~Ls6;PGUYp<!0Vt9=L?mB`
      zNR|+h+#n(u0Z2@88_>xJ`DX;9q>~`}M9hC5zkylF>(VKbCrAmn6%jBYU@9tLTELx{
      zfEfYzWC61R<`e<*iP(42le$QmR-}sw(~5R6ZCbG|W=u=&V%D^jF6PY>EPSEshmfIB
      zr3kE`iX~*lD*uNbO)uFTl`e|UE>53f@$z7dHlTM%6LXn}s;1|$OoA7+u2RSN@l+QJ
      z)*C5%ZWVc!o6^)7^rg?@LY~Hj8u?PJaE&}xdm33vh~K3qS@sN1e}Mh_+z?&}g#wBq
      GzWfc#!W?A)
      
      literal 0
      HcmV?d00001
      
      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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
      Tlw;&ZZDW|TjX$t(#ee=E|4ZA&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO;a3I6g_XIp@*S?$w0`5NsIxKnI2>Uh#`WBFcKZ*BMKpcF4D}rK&OW8ss5lS
      z|AN0j7h2_-MXVBHNtL*EX{if0Zro^<Ww}x}(R+J_o+&<3!=k%izxU30=bm@({qE`4
      z-vAiI2Pz^0!>g8`ePnDHn^{YGS=TLP%Z|Na7NwKTndLR<%=@M%r%l)E&3n=@Jlj#B
      z2qYMkEg9Boc5da7EO;uK1-gS--!n^DhU_B*V(WG>XZw~XAo2oDrd5=i0?po<>Gob1
      z=$~#}$Qa?qP0RFd31m|z0j3uPl$>3ZEuaWA#L*f@6iE#lIt8Ms^kN*RaYjYAfZn(w
      z4QFwVf;0*R=?3wfP*<J>J*PoMj7JwWv>+zXF>P9M)?Z(d&VsR0k^;$TyI_<S4aemF
      z>ZHOh3XGh<itsYY%&1W;3S=5}axA^5qEFyjEd%aZu3s+Ojwg$AWlj>)wx%`<vdn`x
      zdXW@}6i8yjX9%ckhC3@aDPibZmib!xHN1!cx<S|ckgT9-%A{7>cGr;`rtK5IVg(32
      zm2S`r3O^nybyd71aJiPlv-Z4SSeq)zb!mCwHWe=mq-(o!wpH*QhqlbvMf0IqI2iv3
      zlC1xxhF8FTuS$w4lgc+NGLB&+RZzb7)J)HF3C;Q5+`~yKtfCw06KG)@g7r9M(}adJ
      zbV|>1=u_MNFxW)(<j8e<gH3g%$6DXe@FvLKXxS&N{i%GTesYO*k^MEDmG&^kN~Sej
      z#~_bpHB4eq;B@NnPR_4)1g<t#f6O+o;R<?qbWg(+dgxN;ZQm)#J0=%R*MUwpz~Th7
      zyk$uzS2A2zQtrfR-Ku5YT(u0(cL=<2SYT!5P?sBT)T3Ktc!9J=>1pEj!(~rBIl@H`
      zBof@0=)avF4Q;fGM>Dh@q3;<zvyBe@2~O#muh6xP^Llg}7rvmS2rkh(35DK25%u>(
      z_ybPiM?6n68W9m3m+5fOm>jE8k5{Q<yXakdf~$M9Ug2sEFh2+Q?%?=X6%Uen4Jlfu
      zT7X{1#HS?nFL8mMjvZt^N0YJ@-8#VeOP!`<s3{vVjRed<D>Hq1B*m|F6s;izB^U`E
      zqT>{z7!JJi$PAV>L}ce#78&;$T6Zx*;ojKe8GVV)Symp9l{*-He18|iv^Ks+xNZtF
      zjaRFdbQ2fw8}a^5D}T_+pCtOPIxRz?mfIL0Jm20Vp;<vf-@$7iBhFDN54IvTTiPiT
      zfWIjh{vpJ_b$p4Ck4olHY##-20uxO62?tdXPQT9zRVgkX5o#Z9U^EQ%5{Utx()&Mj
      zkot>4P~%rHDw=Uq#OfqYgc5UM$SjpZR)biJwMc`c676+xHH5#8&Z=WWRroPUDLU)$
      z`$;Ld_^bFS@{{YOjgIeN37H+-sZ~jw7sXj<;#@#f$?mqQ5Q0^*J262W>#ZtfAALEZ
      zCc4D8AJd?|NJKzGqy(8f5;F5F$Q8_0Pe~Ik3vbag-{S5L-mQtQlw<u#Q^&#<j)jpi
      Xi-Gw2c#po^HmMO~iQdb>{QLg{Ny8$0
      
      literal 0
      HcmV?d00001
      
      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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
      NMWS$xe;%4|{|BO)`E~#R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dTT@$A7+sqL62hTiTB(;7YXO@CB?U@bgtkJYCCa51N(FuBA=!n~3FoBe!k~Y_
      zUtq_}OkaHAq3sk<nUVV9Z5+oZUwqL&;<)xnIEiwZ4#Pvv*=O(lt#7UGmS6t)_B#OG
      z_%MPRflCXfm%ghn>nmwfx@pHLq>Hw-Y~-b#&J+x3x*2J^#vLQ4yK?%Yq8u|Ew>|4h
      zTX!uxg0MidGEWzDb0IxBe^=(*2<ik{{9VsA3Tb7sZ6Q!=n0dJ(AhH6{B`cq?Jku4Z
      za~BP#{j9+Gv4c<=Ai|(w8t!F*{=~r`k~0F~jFp%5pehY9G{g`>T!V(A0-;25Mx8vb
      zA%bWO$MIqWF9@7F2wx2^;bjIu&*h}!>pn2+tRi(%Lp`DbO=E^BC%mP3X;16(1t}08
      zvvPW2Mz;<1UEU0<XbW69P@sbJGw2~bpBEV2KjM`Nx*_j*k_EJDX$>T2BIpn}Qz@vM
      zrsEZhmhH;?WKq?eVVNT<IayST7}^nM%3PMEz{tK@o|S??WKnk}<O)lY37=DGeqF;G
      z=%ORX_?V8k&C+e)wd=NAHY|^U44b~iwM6oeSi}OAP6X!!PF31z!kY4Oiz5ZO#O@5P
      zMQ~mqS-F+5%$#T2yfSX(Oa1%b*!3Z<#Pw@<6DpAll9ERg*~3u~LoebHup8Sd+03fW
      zpY+_xJHu@Hyc3WYs8<2>&tt6SAq`2S*dE0o!j0QY{}Q|1mP^*MN{1s|CFGihQ7|!~
      zqDLXwMD|cJp=QD{X0;-sG~)&o%`pvU(XCb!8ivu$*^t<IQ&shQ0-62B#50zsay6yl
      zG}_eariKx;3B;x>&(6uKhHCfLU0X|y;4Y;>K+Bq@v@-?WaU?4@TA9rCQ^ta+yPi#$
      zdpmWMc6Lnk!9$7j<pI1(Ng@7f`K(bRmVZ-mHPwLTW;KlYeS|*^jl88+<GfeH_wiKc
      z8k$lYcrF!M!?9H7*JxS8iAOxDK`Wneg!%k}(Dw=W8I3>3E8NitM01>?b8yYTmZ1mB
      z(9un_&u-wgEuNRK>U^6AzI}`DK3cX1sh&ZC=j=qJs*seIc<KqMJwektIv=1myc$~l
      zALdt8oZ<nebb!?7BLfWziDGtvSgnF+2q0LbB-%rFVM6r!v2z&=MXQHkCloEl>`OFk
      zqK|SfY^j~pEd9)dZ!@IpxcKnaCVF``xJA1b%1q)?IV3H_0v-|fF;CWbvO&_{RB`DE
      zxLiRO?N#=MX{{JEr`GY-r-&(4;oGY<m9QLPB>-Ejg{QRmz6!57z+>C((DsS16BtsE
      z_m!v;aenS6HJqQ@MQR5w;9?-Pm1KY)`1}z~_z5TRGdl1qZ~TUS{9Z+ID4>`LBrB>)
      za>Un~uP7}Q)gM*nk-+?I94$wzr)<7gQT|zFzg?94V+@LV#P2Mik?xxmh0b+ct#nC@
      z@W5Z}ioboJQgt_$iO{T6-OWRsdhe7eb?~he)iR0iKIEdhNrVqWP?`+yYBIi`$!ScM
      zy(9^%xYegRpW^yDZd6E@B3JEcWKXl{J<S-H8K3+uywA6qu7Y!6md`nV|AT)4<eHO!
      
      literal 0
      HcmV?d00001
      
      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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
      OJk0-X{@s4^yZ-|vjl<pm
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNYf~Fl7=BL31=1~5D3n`U3Q9w`q!&ailvZwnL<B;iC|E*rl5D%#;AYdp7ypER
      z!w))BmyXUje(;k&%KDtm!UhEDbTX5(XU}_ip67kvvw#2d+aCb#!ipdua4&CG63^2w
      z)B6ci+KF=6NbFgqmwHxOiD^TZrad!1`)oP2xSY1qMQKZ`96?av_62^k`<X)8%*#c2
      zK;y7L&jrR)72RO62<ip;F0h*}nPuCmWNeug2v6vyZchrd#gYnq!qiKNsRLV1RdP9L
      zjrXq$1gA?`8ATl~YiK}J;7U?A<x-`%E3LKkt|0}QlBG=ASWjEJ+Iug9c0n%-j3h4t
      zbG9<$M7HZ95NJ6Qn82ck*q}m*lx^u|e*Ax=(sMao&P&56rp@KbuAyg0vL3Ahp(kr|
      zLt|02p(BEJN^&d+t6-H`)amM~p%YyKkzC1IVkrfN&w$eJ!#?Fcu2S64a1-66Da{P!
      z73jY>Momqk=)p%3^a?Z|BlM3oe2hMU21^#xtgV?BsEhS4L=i(gf_~QH-R1bNMj8fG
      z)UYAVyj@TThBOQ#AyA(-3>M!eg|^s24Qn6Lcmo9PYG^{U^1QEM1fS4zuVSYPCCgTx
      zsk1$m{ihnn@EK{)USRN?M)l>cNvv3ptHcum*J9_VnAGqHkIB!HuXK}h(R{+VItxV1
      zX*O-$K2RO+YG2!Y0)cEnVD$Z(kaJeCb7KM>K9kdp!yeVMoJ^(4f`%^@t%hu6k4?-1
      zM5%H-im&i>1WTM!zd2m|8kVub2!>wNspHj?#X6$cctkOIT<J9pPr!SiJ}-~z6{K^j
      z4tV=k1@d&Q)j}csM#Hx%WBp#KtlN6YQ~<X%tfEg%z%vayNK^BytWLnYE34+uyO^TL
      zKt`ZSb<ER0){w(fX0}V!i$OpvFw>s8dU+*{5%T*?0VlTyFEkiR_)wX$Q}h@v^TIuU
      zdTV7-7%Z97_XVP<QpL*1IbGeKUFUouh7~v5qHc8vAcP1%IQ87|8s`5c?k4#@z%?8n
      zIE3~Kp8{y)f7E^ZkUo>R!hLJi3LoG@?r5*3kug-Pt6r?Xm?gxs)wp1+rj|Fjwlp;0
      z;QE7LJk%a^aBFAK!R?(l82lA?;;(VXefgt<dmBf)QTK^v4;)mV9X#CdarH4DFvUF6
      z#6Lq6v%Ik8a35dbA?C5b-wHchVIHZXImWz-&*>=?LVC}T(ItA#(z}jv9`m^wL7sEm
      zJw}gcqwHH0JO}f{5_hoZAo(YHe&#_{tgvge;wIIq4qnoL>Q*n<m=~;31*>zAYTEcA
      zwDZ%cDC;#*8oeljz@K_iUbv+MdR={!10J%FgU$FMwyMw^eCJ@-2iU=SfzuSm7TIm1
      zi|b9UJzV|j_Il~UxbCW=s>^HJOT6VJ?mhv3qEl@<kJ#)?bozuE=>bUgQyw=^sL9mr
      zWojgv0iLQ%1?XO;ZMO=f_&Z{o9=|HLO<#Qn&ks@bDYm-BF4EORJBp-el47w&%_Dk(
      j!)<!0M!Bl?4+uX}wVJPL;08Rns@^5Hg#`B8x_$pIo!~-@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@+j7%Z6kR8_W5<XP0txqE?!F|LQlJzA0S71sC#4NIxS<8vmK}j28(GeUJH20?
      zI{kw__o1C>4O2QypLpm;m98TR$Dwg16GcbbXYIAt-uo#3{QKui0Po<3Ai4yORLn;5
      zwmPRSBu&ju*6T*HW>x3(l4d2x3|%wrb9%X~YZo=cm{rXyje?;UgYXL+SY_w=h2o5A
      zR<z67Vm*j%f!(VFryIJ#bOPNcbyK%b3v7;NC8eaPSCi>QTT3^}Wz9;(asvLbYDo*j
      zhcya<2nnpq>ZUf)m@R15RkdJf0{z))Q8jX^rOUPV&~MM^b%A5qRfu%dn<BS@!$DwR
      zMQQ?DJkGPKJ(Eo9m5ga?6^C>f0vi<!V373ZEwv^v(kZwDcvrqCFzCK~J3$y*u|0@w
      z0y|gHcFooe1v@ZA4z{Jw3T*AfVLBZ~1iORSC9q+IIw;tKy#gWCFle+*$2Uhau@#w1
      zp#2ICAj<e!!=9X}TDFXz>>M9gkif8jkMYvh>2&AVg9?&3#Oheuyl$4rH`*TTwvB)&
      z2y{)SiD_xX+_WrcslR$ysACHHuwL>$uHbzf5$Gv3YV3Imm4!?xIEhotXlQ1|o*`s3
      zmI-4NXM;GyZd~%qNv<G`F@b=g&+5#)ak)`%_^qiqW0g~lhU2EE;s2G6-~$C0C1R*n
      zt?Ra4H6_(c3NAaARWv(@aprMoytO}!EIyP|bA|My8T!h3@=*s3$_Vt<HQOC;hlj+y
      zrXVN9hKg!UE$a3n<2eWNRbIg-nC2^{^s4HoxJe)I`ZXWh)k(IQS&^DOIR;OJr28}_
      zt-Ph+Q>X&_y+&+*zrvOvI0LRQ9t$qcl%?C66-EJ?6jpZ1kqd%#aXXihS4hKt6Ij7*
      z8F)u_ircY_a9{Fx38R8p1tzL2SxxTaysyMA7s6eNtlL(jXh-hLeRT!4+!u8A8D<D`
      z0^vxcG;=dwjGT%{#S03~;k>NFJ*oY^M1M0m?dm1oLy7l@(;6L%G2Ih^?GGcJPblfZ
      z=MwZY7Pn?;Wqm=Ogiar{L(?I$ZXG6XImv_0SCwPuopQ_V<J<6LwP6*t3%WdLhdR<Z
      zDDz?$CHwdr;P*z(7SC&5d$>A{F8%=B@x(KPf8$*j6kfy5(^2j?gSA`_x>4xGI<6Qm
      zhm#l*tKY*q%NU8(6Hh$Hh85t>G41&_xSkeV4>n;lVZ!oo_TcUkj7^L^@#ol*O}q@;
      zdXAmr!-<zaHL-7MIMGCGYPgA!zY+PBVJ`1MM`MQ9OH6c`a9M1_xRW&E!a1qHh#`J^
      z4>Q?XrhJ!bx_IA*BVPJZXAKO*f5*`#-eabC6DOKDy)0oj!-0>T1d4M%;HeU_#XPX5
      z@H@$q5+YDKx$UpexWo-KabZf{P)NqPVVbEI$madS&oHs1YbzZGrs(!{tU(?dIrKX)
      zjeWS$rY-5E4kC(=NJ=nvucK0Gn`~9;N0O1&rdX&g4v{9V4%6YE(Hob4>GU5s>JW47
      z_Bh5`9G6;Uh@=3Oh8C~^McP_I3>vL1;{@kNwvTIls#WilSMLChQPg3_YM$nvTgN@?
      zdu3K%6W9B1JPO?Ug*a}JUC-~ddEVRdoO9=)9P&`Q<D!Y1OIEtOYi+x`+jgto?pHL(
      z&y2YjDCD1^H2wmWJZqv)Bwisj!tOIh`fE*CZOevy$O_N*^)<057k#NF9<)U~=0leH
      z=@OfRED_M)WX!Pz=lL(h0^M4qgZKDFz0Ysl1Ae(4vXvjPq>mleahF-k%^beKm*gG7
      X1ir%8)V-da_YJ<K27&J!-@gA3?ngvf
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOZFAE`5Pr@UQS2!1CZ+T(v@W$Bh(c*fgVU7Mgpy(ije|>}Zx{KnFHz)-Bxe%7
      zl)uDGl7`N-!#8I73;Jt1-IIjvc#I+aAnA5*cW-y^*<Jnp?;n2wxP&boF^1Wy(=a#q
      z4&OB$;hUako7--EM^=Pu7HlaT|0Z`TUX5>xbV0a&vCe5rhsKcUp?Y1|qRM?yS>xU&
      zL;t4OTie?f9>Yjcon|(CX`4mq`FVy!Nmd>1H(bGx?%19WX`4G$v*f$dspc0*MVFq}
      z5H8uf+EroK^n}%LrN3wLhF>#xXJ=;2`}Dd?CM>zl?Z8Z*Uz1*XhT%f7M=%|EpyT`I
      zr6c_XhLy}o6gynachcE11J87DyJn!P%o_!*&d>_=ib#NA%)kJQB;rUJ7{qCYcqUs`
      zJ8u~{g+8@<+du++48uj~h&zp~b>Xh@b(`*LtXQ|WUFNP-bi~wDN*S)4ATMpeqTEg#
      zw@RpqEbDS>+g@!r37o@6IzD8`z4@gXNaJI=IN?+&3{vgoU#V1F3gnjQ#C!suAgd$O
      z8}Y|<4CFAyFksakU+ntI48zoGjx4l<>CB5Tbxbp4d&Ed*wka8y!6k+y)!J?D@Tzbb
      z&Idqg)i#yD+|sTuoQkO2YRcsYa2c~YK4Ta<UY!O$#}xvMCm&PN2pr2g=BS7RskWk2
      z2J!~x@g>!!Ute@xzDN1WJPd&vNUp4J2+PlByYO^;#W3E!5!JemMG7M9Pp_+J9R-H7
      zk&&iwtKgGZ!Z$i@P?HG_zHE5ilVac|mZ=b|TD|Ux5D#G|ShOW4h(9<MUF7hqkMFpN
      zCSLN{wj4!Pk_7Qv28y^%y^~v(@VxY8hQ<HUZQ3p=pDiZ|%PR)%;yb!0kIc%tL&cEE
      z_QYl=7Zii?tYlyf_gbD2Y_6Tiv#t>@;d=x3@dE*&Dtt9-<RfX(3@OyOBq!&h#&|5C
      z&U9O(ruzI`n|?lthxkdykA$RN#ng(@z|Z)FA>|30chutAjM2TPU*3BYW5KCyLP4UJ
      zzzwX!Vi=@&2!=Zp3)LLMbhk)C5HwA;<jMVW5C$Hh+DiE>!}5tz{%Z4TAjCGesBx6)
      z4c8Jkr0VUdj-fZLN`}E$b{ydrZ0-?wNJRx5{t{r4W<{L-EaDhbqk|}&s2KW*rUBBV
      zlOrQ)=mdM9p)*7>q2w?|i2ImmjlQYe)B#3wzhgXi;Q$l4iw8LKl=yL+rT3VU(KMW*
      zPeO}fNQ>hg;!g%Xr0_1@BZ{m9zQlr+@*<A+X+1$_gnRwbDgiYG89u;idMiKvAx$Oq
      zB)5;zeN67-{676BOuc~iRI#S$HKCqo_>|#KeDMrdV|b1Q;+;`X#J?8tzb2ltbBOCl
      z__j&hQFca;uzHB{As#5A#rgFJ6%}(Vh&e|-LhGkk6ByHy7}o|cqfwvI2C+)(d)g4T
      mv|;?FjRd&}qkIzOVhAp3^xsFf4H?+nz$Sf@#9;(68~6{0K-tRx
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G>sJ#;6#oqjEQGOGL<L`<O>KxkpipbYJ|v=2<D&*sX<BvJ49V(dH{IPt(Y|bJ
      zAAYR=gMO_ZjGp$Kwx9b)_4Ljr4I~`4`XOg#=e~aPyLax*-~asf2Y^Z3*U-jrByX1!
      z*Y%2iD`87N;dxe~<T@2IC*4HSGNtXG*6o~E&~M1-DQPFA>u02EF0W|d46zXF6Vj4-
      z-Iuuq-MhiiUd+A4us5Y*B|K@AUDIDloRyxZ=j91AFFk*Tv?vlor)TDEnPX_n&eE4(
      zFumvm!)PibTnkw8)p^XcP5(UxGxjoup$J2TBN+ysbaJvA3|j>v=!u{meF6g8=x(u*
      zOa$ApQ^O91-62E>3}BF<!>}A%GW5qrYH=;y&L_?<U6+PGqhjn9=s>61?G@0_sbPqr
      zH*g%N&bhARMz9b26@&u}1F?0E77DI&Q(v;=%t%H<lp(rinN*R_IexlaDmgACaqgBO
      zOTOvY6d+}itXy1@?t(IB=u0_<Ze?`WRNwVOuF}SE^d-1&t}sd=H*AmmA6$oeb7Z8i
      znZ=TIu}mN%4Zxm;afbcPbkExr-7<4$<Vr(N1C`jpX0>xpx@;7VTX~17wNPBA`zFJ1
      zvu>JdR`<)UY-n|38izGd*~eeJa0TAR5h`A3=ZR)A4dXAJPR#{+^K|c-2#(^I2I3*?
      zT{hVWybF3Enn&+2NN${JEd*@3rWb_k#s`?yaGY3sF$;ktPEfFlbZfyvAM^#+@g2jl
      zsNE=SD)^H)t>IKSn=MuX^D1NqUHa-&gz|AlAceCGJMz-bOsRHeE}I6msajWKSgt>j
      zO<GiF19(y9MzXVtyz>GV@DZW&%BD}L4sTOtsUY37(xgPEaY@5MIP=Lh3xNzirgy6P
      zYEYw%l4h9vpNwxXp-e0ytKk!dv9QE%FckO{pHUyYn5LRZgp#$vmhQYAR|T#?&4*kt
      zFQ`Anh{^~INDVYDhC<+6@=Z%%8F?}{9Gg<k&=t$hW@iHzi!cSQg9a71^&%ysx#^~T
      z*R=Blq6kL=^_QKSJbr-^K4<93OMl+>eBCz4*Vy{DTX$7&>5VdLv=0h04Nt&FnGouR
      zK~FA99pQ9%c{I=JnO64~T(d$|P7N=(#7%))SRwyvM5@p<LRt%dorxM;Mcfhi0$&n;
      z<x-A(QQ;DQHPP1s->A%RRbgr%eJjv~ZqoIgn)`N=FbuZ5A0-P4lA2Z|?UY?Zo;1}+
      z>2I0m<BD$vF>l+_O<KA~9gAU0(_az{Q{Z;`bHmZ61|#kI)L5joO`!p{ZdF5>zLl21
      z7Sex(b`R*ggVsd+&{OorpW)T`Xchf`Vf$0;ijV!b-SY^&NBQsAw>Ze3VffF-WZsP-
      z9KdT7;B|7aO9kWC(7_kb%`c;$FX8~tBFeAeAj#tdjl$p!#AsDJ1+y*KDWL6$62Or_
      zkKquuk!+NtT_hPJ?MVffZ6Pn}0uSP==v~EB74NL#{U?}vh+%a^zg_g(vnH<M!_*@j
      zUOQODxhgI`!R3b-Q0i4&Q5Lj3#}cXb)W1@#CRG%k!#X>v&Y#1rqB44@irb2>ub$%W
      zV}ezqVqEdem$8i(Fu^UH<V9q;1A}{5;Vy1-ANP0}_jv`s@S6cW(?J#<)ae<cOMXWL
      zGhA-$3{2F|ZetMN<6b~s7xa226SOkI&_Vd_{@MW3sSf#_Ac&|b)PuC)hd}E`{6uRc
      JFrUWHz`wsA9)kb?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FZF3q`6n-uXY@wSJ2?^HM)W!-Ml5Jzv*3@dCiNVk$mK1H#>IQCL+s(r4OQ!il
      zzKtJD4cMtO?M(a4ALV%NLLgA3_RHS8XP<MPbIv{Y*}wjN^ccVe7%~D3mur@%-PQN>
      z`<lgF&2dbvX*c$aDz~+qX>iM3)vc;i*YEL}P2JXaof5Z=9fR94f()q<?$@}<Yr4y;
      zTe@?PL23H#S#M{D+YFNh!KztCL(A^FyklNuh&V>g(p}Hy41sc%;ly5tu*$%0Glbo`
      z;mn+8$P`9!52a3V!&eN;aIZ3~q+Z7HU$ZP{(<O#ru2JO?FubDRB$Oy5Oeh#bf<a29
      zOXACvf)K)D_o@OJCm2o@42!ROyW8B}(zi`2GG1s@bhD(}hIsE9gQ7}?#g|BR=y<4P
      z+1PEGH$00Wx_rOFo37EY92wILXZ+qfyyDr0yRYS~J>4{_Yka?llkpD2xk1=^qv%!Y
      zOJ=P>UiIB$*cqCH!67OZ3!9wVH?5=7JBB{TFg+N#cy#7HR0JugGSUp{|3790v&hg<
      zbE`&OCf8BzqYRgQT%NkL7{xr!%g{!T^ni~-muP{y>~P1S&JtZJJ(944^XVeEh!16a
      zKs_E&Ua{|?;3HgO2sxhNQe~rO*l5<dT@*;F>tkGzLDMjbDA)H;@CoRa#CzAUcis#a
      zUQpoCDfV25{xf7{EHTWDs`EKV1vy+JG0=~OjUhqg{?wSdRnv;DZCEvmzk*d6pED%?
      zW1<w~@dd-l8h7)S<LXw0+BcVaK2$e)?^5(;l1MJ1px`>z873%>80;LkU6R2H=^NeC
      zv#E5s6S3!BA%J!a<)^x-;7i<~`zW-?7t(#<{36$MNz}Qe;3i0S!d|mVw4^Cr#~}^v
      zpubjd3qmjb3rIAf6v@_Yp+(;)h#(rp9egk2JBC=ltsC2SdBs(r3l)o44XSZ}$uvoN
      zsmjwsdG<TxD;|+Wiw)1N@D)P{TVhCr=LHS@2lAFh{WEokE)K)^;9mvPl%PaEs377(
      zJ82ge%1LWLWDUe(LT%|?pvEvx_*1mIL*Ik6Ce+y$V(K4=tC<!i)wvdu2V@W6G(F=2
      zBmIJq^aCQ&PZ*be#%pAs_M;{6I^Li+isEwz{GDKzh~-VP2JjZyq7>zAoWWVV>vR7}
      z-$gbX>LFr>c(0AQL%iR{<u*Qjh~>g;-`>WWw9v+eFio~mRK+IQ##b$r)mzt}s%?Cm
      zdG;g1nP*Q9h%Sp&tWoGS8b7gi%9y7XKsvyf^Z*mIPD#HZDg6#rI>dt1!d0n_tn?5o
      zw605!{1T_gms0GOn8YP)qe5kY+FI>4QKMB@LX=eb*B)J17^TO47^MT~h6#ZCs2$X3
      Ljr#5>)Pa8h0Zd1b
      
      literal 0
      HcmV?d00001
      
      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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
      LF)GEA_zL(Jpn1v;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1ZBrXn6vzL!c}^~{q!gj04_2xWS^|C4Cauu0DJvn^Y=ACR<C1J)X;|uJ!-y~Z
      z0Dc5Ng5!&t+G(eb9bfyQ9M8Sk!iqQ}eUr1llY7oR_niN|fByCQ4S;DhVmQGtwc)h0
      zTjs9$ZPu~8Y^&AGK6Q6??S|!M3r*W{ym`}Uv^LEr)~N28o)trwp;ts?o2IjoRh{-W
      zLwdEMRn=Odq^ad<ZC)*vmKd&<j+;Ek&|gt!=W4oISy3x*6DiVHP%Blfs1;_bD#K84
      z*@9}+)Q5%n+4BAUzXGdk74^Zgs#h5XgHf`|+T2o^V*361gIf&$<4lM4_}BUx)vFZ^
      z>P`2rqE^=Qd3BDVM{at+;qI2)ZmqhuXUVQIur-F1-Ktn-!}p}r^77*7%4~^hXSnw0
      zUAh_1*PFIudv_T^W8*6f;lfVCiX)N)!wAP&oMVXQ{Ut+VrGvrho@+ZBIc;rid?i7v
      zFK|Q<jUy)D1CE%0xPT8i;sO!^#yJuKk^(MsBn6}dWI0j-xPYr1TtJV28yr0XdIfyU
      z(JP=&K#rqNfFj^7ha#X~z$`~UqT;K-aSDSBeI?tm%I)oS%dML0O^Z}n+Nqn(71Ol^
      zOJ@=x+!yDbCp8>(-0opN;~2n6k-fx`#z|_Nw`sRz7imz@U9;J?2ycvyzr$RTsGu4H
      zO;ri>d#~kL+Z@ZFF(pjbHTUW}Pxlxy!7`WDx2(FC(*lEf>(a!0W3sZP#|*__m_N+%
      z<7-GXY>i_TkHl#M+ZLK;tCb5l_V+kAlXx8HPAB!9wp+J~wiwF5p=V`MEN9@F<5;dt
      zYPDkcn$G?IUk`?ee`ylBz2TT%+ohf60>z0+^2a~@-Q3I+i6BHTX5Y-PxBviI(!R7L
      zdud7W(vsMvC7nx45|@_LEiDOKTGF(%Bxh+!$+SaSC{0?@9-y2Sx+ad&^?DCORL3yD
      zOpK5Ztp7JKBYip)3ctje=QuC%{ct!W@uI}hh>w>feiZd_OkyVH<AlU3aUUloPAO48
      z^|a(`O3df$l5Z+;pKnS2L`nF3TXJ4W`uXli{!~eYy0y(H{CBE7)WLb(2zPK%HzFNe
      z(v4^bW4aORU_v+I9Zc$mLau2t<hxFWoVUm%I=D?H*})w$sSalJ=eYL^b>#%+==UZ)
      zCxA&$$2!iTjw@&&4+{%;j5Tav3!C^3Hh!S5AMpe~p^4Y1L6sRq7J3)E?Zy{0{0RBe
      znTe5?C}z&SfR;HGeu0I9{n7~2if?F8EqdZSdYIZW*99q@G#2G}#el_Ng_ydd7EuEz
      z`#WXHGV(++ze4+&KDvjAO6Q(T$h!*y36Bb1I2`=_5y1&8;d4qylA?Y^WL1M5+%pzJ
      znKwpW3}`WQ<`o`Xes-u7w%?}&Jqr*092qKCRG&<<%qtjwfc<w|h`K6{_a(j(5fsO$
      N`{v9L%}e;}e*?|t&_w_M
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      a`BYqHgiF-qMb`OyjN+!{``l9oKKL(CSHq0}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7HX?GiE6@Ff8v*k(ZJ#nSfB56`twj)B_(8RHE?4(4+b`qS}P0~`2rLi<&G^0u*
      z$1XI5CT-aYl(433ErqbtoI}+X&ME!IIeg;>@C*14gy(%{EO|SIe6Te$x^wTd+<RyA
      zkN^DTLjXr`H-aXCp}bv9U)7iOm9%ZR=}N^)m&(qvnKR1iNy{{B_l#j#&P3I;cqxLQ
      zz@h)|mI%TE`*(=-a|(n{n6~MT2?Ub;a{|FhCuc;_id_+C0-X|F+BTi^#HwpdRF{^F
      zvWDGwK%iMCw5;wL0(+C0{;6#uN1_OzT|)#NGHBZnS@eM^(>7+R#YLlhL0`0(v15v<
      ztvS7H%5(o>&@Gr1f%Mc4ytc|VLXL|HxWJy|_BdN0@Sui0hzWFW3sXw6Ps2mlE6|dw
      zmMl|Jmsb-SK8F3&qvTXf*K}-wu8n%A;?zRmVGRdyh=44^&btLAdM1h_QW5l1hlYl}
      z(gQMc$TEwjD-f+1?wnDss2b_yPBNS;JFb&;EI)jte@>Q9Yxp>h2<$fOO0{fE>LopE
      zx~p`ZfEn>99*baDAhm<Qn=)%SDhV~0^=oswRaJ^SuHhJtOGT>gY{4lLdT%l_yS?-R
      zk>xc`gZD#8K%*YBMn&q8$x)`{l?jjMxQ0=jWM*E;keNW!m5C@$;fV-NlfIJK((QbD
      zT6YT?K8-W9qG-~(P?9&$l2$ya;WL=xb+S+dCblOaV`pUSS%H{WaN7=|>(0^=Aq$8M
      z)3OEVIL{}|Qo$(CR!!GncX#?@Qgux$J!Mv0ddHTVHS@Oa(lmk5%@HSdl5Jh~kukpy
      zp3-nhy4IcFSpBTR*NQ86CW5EegsLOa@Hu%`uwp)M$e;xcIu_|Ok(YJXDGT(h4Vbzq
      z<6j?XMGi|5$iY_HZ}?V29vp?BZLCn6uC)xxpR<csjjTHo!PWn<`WhNWVZzc-1m$fq
      z*%!fNzjVJ9CF#<0(n~hVwjN2G6%8(`Y@UK%nNg6q886elitkXHcWYf1E|>tFrL89W
      zM@0$jIGyV~p=KL*-D+uV-yPpn=stX=x3aUGVyWy6$h6@WoE-aW^8UJKbB1~keObdx
      zvKwNuhc-u5yiSVXroiA1%Vf)qQQW{Q8eUa9g_+e(p%=w9_+jrz;P8%3zZnoc8ow_!
      zw<H*2icV^Jdd21T<jSc`sU04{H~FM(Y?O>;8F}40S<Y9Be1M-`$r>g3RA|Pxxq!XB
      zpD0!<Zer0$*p6*8+BKJrgl^|}?j{W0VdN4=jz0SMa1^iMJM#H?i-!8fskxYS%ch<8
      z$N762zApvqq+ktro&~b+f2iR{O3-Y5;fHP3FgP5$Hc*n$Khf}0{ESo0Z2tC^kB8X+
      zaPOXcioB)a8#p3E-<AXQOIqwh+xVU^vi*$lImW5-HRN;}Y7ur3$0@TSpY{z3a&|BG
      z&&j9r?=<`#e-LQTZ4DA~I&I?`Ur(5P)~S}W#uKJ|jo7pGb>OhHicf3~E&oD%8*Alf
      z1kL>4!n0#&;t{W=+6CT6^gXoQ<!KW-`9I1};4yw4MHi1WFBIMA;Th{;ub*bzPt%k7
      zGkR-?2Wsd`)o`GOM?OO9JB;=+hE;~qb=i9A*#<G>XFEr*vT|1{RKsDJGB8lXCvMg7
      z$@vDl-HZYzNNSR3PpO<e-hF;fX21weFe@J;81u8AL{LSwqy_>5AJ*`xMoN$H8LE?6
      zm#(Fru7#8*{B$S%bhnvK>N=ciJFstoc-s>D-pAz8pv2v_zdQJP4Vig$LOJ@>(LlUA
      zSi|%>G7lom9Mh~kgEpMSKAgiNIL~*K&nhItUX41EVIK+WGV;74G|acH^Ax2G5A&|`
      z#3e9`3;gaPb2nj5IsR{6m$mZrXMQvl4-I?(c2r>@B*9CZaqmi~pac(%@$^}N<Dokk
      z=nZ{<tiVSwk1Kw(Ixb1~(dAxJ`g{$}{LMg<jN|k1_Pu{faRaKG4yp2UBr;DLPm$gw
      z^y4zd@idQ~;s486!n5n>=IeCxSjIKd31JZ{if%vsTvc?(5y$iR0%?7bwY(mc@h>Q&
      zuCEi|MTOw+#3K#6NCCb?0X((~!A<m)Z9etj9rX1Eed;%6q)0cLM0}`*msObjPSO2W
      zgYH9|G9b%RInp<9faH$x+5aRzFQA}krU;rq>NGFnD?ZJ0KFwoj$5-(+LT-?gQD0Z&
      zxS04U=lB*Q<T#AR-as_gK90As>#un2QpdO6!|Q(|)9;2BVhf`Zc?~~^zlG*h+_zhP
      z8QU~l9(aq(qDXKye+W4As)WOMj`LJj;1gcKI`~o5euA-mxUD=Acmo|iK!*(|0UjLS
      zZuoJ>&#zPY8s78(#U%!>i#X`NST`3PN}*+PyvE;QE9~smb;S?Xiyy?V5L2b%xZ@Z9
      zHGbn4A7gR3P{OI$yZG(qd4GW(T~}GX^%1UT4a+Ue976t(@N?bpl^*i7jJ=8A-56Kr
      z^q{;VHy?*VvKW-d^Qpmi(c38LDf<$Yy}@3+Nqb-BdVYn|@G1srtlYDnvO{$kL%y=@
      R?DRj9rd-*7Vq6p6`7ghLn+X5_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTYD2#6kVrDJ876gDR)qbsHII?B8Z^0B5f%U32imdidAWvPTMI%CQK%^#S2~#
      zFCcgURJ>nNKOfXjQxrcxpM3D$7k`Yn&dem8mRRH=mpOZ%wJ&S!bLP)~e)$c+Mtq~7
      zLZD$ZlaGz3CQ_5JjAqAjIU|;}%n5y1vtpfwu4U{!nqioIn-l~EYNcn)NM%N2JwxMK
      z+E!2{P(L4rnaSB!K5c8m0#!r#krB-jSe9^rGP)V-n6kAFXStOQZF)wxw+pOnDC^PK
      zClKs3hqW*Qs8Lakg#v+w#=bCWQKw+Bz>+e^DwbfWK=p7wYv}2etqH7XXe=9{8q2X#
      z!3u%8SwKA&JECG0RttnX;=2!Zb?=O~cMB|?4deK=%5-j0aWifas5IqPfu=bnxt{-(
      zg+N4wf{?(Xgr3p5^GAj>Ykz9UVD5DZGo3Q}QkE{Cy~UtCrso8riTTLz6Dr$nXqi!a
      z%xPgf45~pzBkBbfr}gZZW+k&)I+t*Kq_s&!v$QVCX}O$kX5zy$whby`jx9ZwG9;|#
      z+60sd&63^%8`$%Cvg@@>+f18ApX={5@h%mcakoHdRI`&~re%}=hInH#jIFp=!96Va
      z|0Al{23Ea*SaGT{l}WRiv4-RgWfcIfUL}aHLu90=ro62iv4ozp8K*j_k7iPK-eQ!t
      zYaH6<YelEq{=9B$t=n4_bQE>%;I~^=YDxwPqa8ct6m+?5amHY`iam(4Wmz+)+fL(`
      zvSmJ*y3-~#x>rR4`^Z0A;;5iQuJ*{L_d3sP^h4OMAbFiBpUGFn0dPt~Bc|1tGV-jw
      z={g<u7c0X(tl}UZp>QlMXBrbkh|Vt@KfnS!ipLc^Ca}<%-x47z4q=crrG|MBE%Rp4
      zcapU>GNhnN1$!q9o^@`=N&sY34Dq82ET27qQ`zDWZkw~`21uq}N@FG2Y#ea7FeF1q
      z1XeW+boe>+pPCgqOR5;4NUBTIM+R&&X<K?`lxI{?eNMgZD#uH}R&f-0a_jGhXZND{
      zw<vgmU`}6oa=U*07DZ}>F@YKd$BH_oxtFo+qIC*SNu54TyBCTcuCY~~-cvZP;#oY$
      z<1#Dv&7r86QeOx!keSXzysLYE%bu=8qNinFa<|<7qKcDpzvApSG9kRoDUC$D(`Q>m
      z*88f8JF!u^pO)^g%?ab)X-p`DvpnV_k(`{soV)i8758C#2yY40&{8}CUE_HbI>y6z
      z8}BN3M_}zdr_uqQ5h^a?J?3Ydd$dWnI(a7zbaa+!dk7ymF-zpSF+Wm~l`$vqiKLNN
      zOjXv>M)XN}LpUV)xuf)RHhq@6raAmk+yOH$+g>vJ_@gzPH1k$k+od}f(5yFu4KfxY
      zY;S;{N`C6(&Bd3D1^iS)HeUYgp}m5?OQO?IqfG@Y`T@%dSo0Ise$V9!+{*8TbOPcC
      zVlQD5SjVU3?l#<p+xbKQ2cDydJ5cX|x6wz?R##gcEnxj1zoPQ1W$;_By4Y2YN3Vma
      zy51#B%ECk1;vuQgAF(!Az^2RC^4%Pa13nD3gu$z`97Yu}>e`-}o5v$%F?hk2!w8kf
      zI8+vc7qN%2)vKjO)>5mK2O0K()Of`Rsda9?-zj{D!{1*drIODN$_BSxLHofqRmL<r
      z_epTFSzBGeuHRAH9oQ1Qg!+~O9=M1V&HU}Yj0X$o{}}@n=)Z)JT<Sj&3@i(-`Q+-~
      z&9b`zhy8lW1)QWxjPo8kOi>xEC4&~2yy}i(7oU5Oa}wU{CgUYsNv)(X#JX$gnZ_`a
      zkC0Q1LJZKS86&g?F-m;Nz3VkbFBxy#>(}F+MAu3A{2EG>Dw8D-y5&*0hx?mm6yYj%
      zlA4@i#A8lwu431DxhYt~8cfE3oLDbb+KaVbs`Q#zGJ$ym9%sO3IRMZ30<JFwj4+T4
      zDCEK51-#P}Lse81keeyM9gCAb6;ydRa(CX{EtW9dAPYEk1rrCSF}d#wrVchw<H_!(
      zKgcM%@=QzJ^97vnJ-#FtS;;E}oboN7p_g2KefIL3p7*)hZI^LjHq!f^?Zcw2xqy#n
      zO4x<PGBt92n*YvVHO`WY*ZDI02473x<jdk)*nxA@&v|s?0{VGSKZbY6#k*9~MKbpu
      quY>oU7DU}Ly%tE+Pw^R>z^ezJ;|n%%F<Jf+m)H=2uNb!iU;hh~&=I!)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8X?qh@6n<};cG55?EyyNnQG~8U7B}kF4O%E|HBhK1b(-9!L#H!gGO4Y&;sT1h
      zxbF+Np(2l@KK6O^n;-lY{t_SGJCmmA;^2p5?wtL+=iGDVuYZ2~9l$nR)KDhSl(uv6
      zW5$Fr8Mmbu&t|Q7#&ssllyu|mmMLv-pPcHPOpY3MT55<0tWeT%i|_Hi;bSuCX{Z#a
      z53$o_*s1KOF(x;)IjJdu%HiC|h;#+6>G5sZrW0?Q@?@J&ZV{-+=1flt)b)f|Z8tNc
      z(oHBys%R6^&6<wQjKY-qUB`2hjx`WSQ?c?c(>A?(1gyFxqY1NC8bX-dLa+4$0+Dtn
      zC1WT@wT|Ve5h$;#A5ibBbX<eg0@1Ye+ASlS6<AqUAH?RP?h{*LSc~-<){(meh&ryt
      z27#(nE@PQVLxH(w*2n_5t8hJPHQXRjGtW?;%O23N5jP6N+Pe1)b@q02xAqFGnvat&
      z=ZCXN$IaNx@;ORXpm71Bfn*_-MNzQaIy6M9Akd(r3NdwR(y<J>z|}pbEqin0!_qxq
      z3|q{nrpHMd)_~!f>b*dWc%vo(+ZtAlMQzP4&}E^;+3nPCBvv7<H+vtHFf-qY+cexN
      zusKAfq*Zj>jynkB*xbcxwbG7jdZXh4JHlO;+{U6(OBHtEE)C2h9umS*syglld%ygF
      zM61BIu$-6DZqaZbBM$M|X(!#Oj3-n5uH0{AJziLubfp)=y=YU7-!9OxpiK&6AS{^0
      z7fM0UsbjawM(gMrGHl0Iv@RXp1zP7&M<StU`*idaY0O*$yLx9x7D2~!m?I;m?2?u>
      zZrJ^~VP32l_M=~=algRYrPHV%P%aZX4isJXC-!OJ2-tpQmtCDhl<qfNV_XuvYzzm{
      zuM7_Acu*NE_l-TomcOF01%{3UhK6)J;zvdxlrIg#|0lA7bZKNpU{LB9Q3fNueZ8F;
      zM#FbZ=Xk~|?icnLGfbme!<fL0bBm_ivSiw@THSPRoGXd<Pi8z$dkwrXYv$w<o@?6a
      zww!5k07c;ltk2omTqfhV?7`YGIaND*(RbCxVBxqbp4vo(;`swMu+pN&u?0^@4inrH
      zMkXWelt6Q-Xs`iWO2_lO7&sj)OzN1zW1Q%o6EJ!CXNPgA!x)a?I7@0+Y5KFIo%V<x
      z_d<7!lkjPsOM80^C-IzyX9c!|6ufjm>39N9Dg!U5Fivqyl_oHoYsr2okTkr=IDKrn
      zp9A6{4k_uza9Wk<<=NFkc0Y0VX1QnZs)F@3wYUPiln9tUsAuqojyDzT6&a-$#aV)r
      z_1s+2t346J8N8$8UB%aYzGX-8zCc+mOZFi?*6`81uaF=#9iQM+^&MbXIoUU|AkF`*
      zlV70ERgJ$`P}%|vVWmBZ7os>vl%A+vyi^oQldNOLl_Mq(HH#r;ahbKi>LN;k(*jmx
      zJ2|iTnKU0}4*RNXZg|#uEaBwbq}*+))wp_5G+R|2xyxyizY6|G)UM@+;3~Cg{U`S<
      zpB3aU$5s5lns29kNnlIEG*&d_vGP!}`fF&+W6dR8m&Z+)$!ofd`iADqX#ANfWoYLA
      z^)wIcp_{#Qu#X0Nuz}NZBYLqJeb`EF1GzMfIBwxnom5D|KdGR~{F4ex1<mFUf)X1T
      zq~cv@_yzTO?C5E{ggeh;<qYl}BxwtOjninoNOH$HRP(Xt9AbRzJ&&3h?DvJ3z%=@l
      z%mY64;2iakq8|3CN9L#xE9z07YRplSikdo)Wiv<*PQ$!7gJXj;um)@FX=DgfHjhWA
      zapDig8z9q$6+90x(?f*#FmAvg5qXfP9pRV6Lukjt#Ox@kL!8Wyz=44Y4C8qu@iJ04
      z3+bb`I>4ZSUKC&9aoj_Mgu3qmQe1syJOOJ8Nco{wlwWAb<EcEJxlj!1Dnbm7pXC^1
      zP?qmN4^#^dgqmRmv$qt?RyK${p1)YMQt4|PFVU_n(LPns{+qrksB?4%rwQ3h`)6=w
      zuxT2v^fvy9XfrW;y}9PCJl?K(Z&!q*wF=J0U-1C}T^GsYGa|Yx(yVe&uU}HKMDZ)W
      zvQf{^MRgmq0wIjzQB-4+U)NJu&s=J80-Fe09Ra(WknP1&Y|f{Vz%vB@q@TskAkt!s
      m9>v%AhIvF;z;E##aj0ffe~$~yX%pA-59CJ3|Ix?fr+)#Vnx4P_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU+foxj5IqBdC1C)$Uj(_Rm;_`&1TO&;!kq|6Fg#jI7?RP=Zfdik;2-=6UwBqZ
      zqveC;vma&IlSDu&q(C2bcc!;5r~7pG&tKoZ0~o`Oh6;x9gq79b7zf6oZV6Y<WK2En
      z*avb?IC|KW!gANd(ZXRoX;=v{mz5^{(BNShzK)@WYKDO_7Ddkt)l<@v?hM0@KT<|N
      zEYnHhM6=Qrp>legj_ulU+l&b(BW)`bh%tD=_MY&e7IhjpL$k_Wx1_Dl9l4a^{=RTH
      z>e0YZW0<BLH(bHc;a>?vN@#|Bs6-=&h9(BnUs9zU!2e04AtEiYo=xovXWQ5{31w4+
      z;F>YRk?LL)dfcSUFiez%aS7EShN_IJGQ*YmV9*W<<)$tv7xW@I#Qtu+{0!~>($)5Y
      z;TFeD^fI)TEVd%HpJM>s4BowL+LVewCB4IO7lXuV+RjLqx`CnPZ&vfciBU?HBY+?Q
      zGKH0JlMI#qz={vU7}0Q_q2a6(iv6N1&sC;ONms=h<9MJDRAneW6|W&9+&@!914VRn
      zl<t*4Oqow|JW}Cn;zrttOZP|#pKv@?La!rI22F{TP}P{?Xh(++GkC7y8N=Y!riNn{
      zb5wx0XVX1vCTvH#$rNn`Dt{S2=T^e0QOJvVENWO_(64FAv4mwR@m6$}VeB6QGpurS
      zqRWd2)-}9f2$q3xq3t*}&_zr|qmkF+s?IMtwh$#e>8wi~d<jn_n~#Bu;;t;P?2Fo2
      zCoUGHn$Dif7V3y<C-f7WmGo56dRAWzHT3q<Z37;X0CmB}3VelcX!r|md?Y~yn(6JM
      zFE9a)Nwm<Zub_-pw9$>sRELl&b)qVfHlqpZE;<kA??7kp6MAy!tIXkcFo%0N4E;cD
      z4x=B)un?#^?_@e3gy+wl#URu&cvy7!j<gk^`GUiVp&TB+M;F~fIZU4*e2fmdtejx&
      z81+H*n{xV$o^t>wGRZf0&XVjxHThhi#k@%1muQriF^Uz0v6{!zR)~3;^gOoFONba=
      I<?+XU1D0&w!~g&Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TXz#x7~Q9rOd1D}v_M7C*ebN?C7>eJaH$PcO4HIBXhjrAlWBTzIuj<7UO@2f
      zAMh{u=!34MLzk@O(ib26QQ|%`lVk#2eMxf8`7Zn0-~PV*``;gb0yu>qG;|1zSFC#G
      zZgHcym9Y#rQ>&Sos$*}+vf*TMrZg;fp)k8pbc*YSYdAFxT>>Ze@VT^AS}R%=W7gQF
      zaZF%f596u2G?_?4T;TW~b~)RsxlX<08fAglS!qf4yg>g@UIEWo(#}k6yT(*~b=7dP
      z!%G5PIlF8m(20FIdXNw}ke8M*UteD_oNL7u(-27J?NZTPDmqe~!^<vrP1XcX=Jx{g
      zJS$nETJf_B9NHBW??bdE*~t`KM_Ls^jpMLD_w{SjV-pGV<EVz0SXi?xa_Q9AmR#_y
      z<7K=epsm`@JR8F9?H05J;2HO90<R*a;WdHYW(pNLU{1&D7$A3>PO&PGiH2521>;`b
      zuu4XDxRs#g%-H>SL&uvqPBLi61_+EsS`@L3M2Ivlfgz+d3`fzmo^_01RG`N(){7K?
      zRT1bM8lF*3<2o`pDG)E3CY$OqasSZF?n!ze@Rp7wdX?upI!@zVdRFUhVa;}2<yqL>
      zQ`t}Gcn|M0Gws`}YXOb&6S-CHXLXzdl^b)6O=(ffy+hGlfqsdG(`UKT-Bv2~8x<7|
      zJ5+a9Cj^eR`cP`u3H8`5%j~Mak+ux2DN%5yb$p16<g{F`no<#$AUiWUt|+EsreRgw
      zwFL5**D%K!YHFsTm#bJ{CR46UveDO0c~Fc>^O24MuCc6&(IB~twuMgM=~Lwwau6+2
      z`F*V8hDs2x+BNA)+fov{spC_8Ms#K4d5J~nj_?{0o*IDLI_`iwBJSG37^<RI)MbfV
      zD60C#ls?}B4b)hl&j*)JV7Kf@ZpZ}6sHmm0=Ie7w!`+6SX}Q3$cN>NhrZQYtG6+)8
      zB6#FxNI=5YQAHmqt}4Gc9HOrIi!k*-y}LT<>Rt2SO)HK~fqkh|LqDl=DOKFIjtk(b
      zc_1LNaXb__{4ll4a_0<}ahu#$9b;8)u>dBcaT8p$P-?8xR#Olzy!Pt&nkd+Hr({e^
      zwQc)%NjI+e<IZ6qbf6m=|CThKxUl*80#E08-@)%#dgL+mU-_#8`}vvhZ*%myhyy$y
      z4y^DZ4)R2MHQ$V(V)ccweqxp`zD=eDV<ivm;K<zQ$PSKq7@SX!c{tI1X9r`y<5c=L
      zoKoi>J-odf9?tkbJY<(!C<YK`yvsx}L$p_zX_nRGF^)N$!8|#?>Z3~sd7J1a`7-IF
      zI*ku7MeKbTMUIF&d7ETSLG>5-BADTj!r<W&v!^{=_AvVwhJN8gKt{|rTJlrrfkT)|
      zs6h^cO@zVrt6-fT7L(T>b>I2<nJBj+QT8{ZP&{Fjn|`Z+L7%_;NQkW4!*UCnhfh4*
      zY5@$oRbp4lk!}r!;bS=Fv!J@gxeODX4B^Jo!b7nYD=1b*V8)s-Il!U!-(jy8pP+o>
      zF;?fEK;9UAjL+vs{y}_f#Dg`Kyyu}7Ic}&+7O~|&-fw^Wf|sKn9<_js`vSd32{;s8
      z4M*W3#c3SI2LFsUDS$2R`fW_(J|*$M2OJ1tF$4@O;!9r$aSG@we9e*%^85|H^@Z@A
      I-<$9M2lXpIEdT%j
      
      literal 0
      HcmV?d00001
      
      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
      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
      Q6}0>nzGl5iu+#kQKb8wRy#N3J
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D-%ry}6#g#VZz?|~Zt_b|5x0Vrp&(|HpbN&u0uO^FQ(wxcqhxDI+Yx#34>CR=
      zXdoJi&;C*Bxp$Q{>dTt+-g{2Z`ObH~d-~(&mkR(nEJxA9Fk81;>b`!czf~>6Q(d>A
      z9ys=)xobFT(QY0%hU=QPwQhKO_HGm*hCUvxHgv15u34=nLug}L(-`KoZlLm%_fji8
      zWe6YYjh4Z{N({Yg8{6wsl_%QvTA4w8)h%SKP-~c$>8&tGnQVn>6zyFjhHwH5gEEr1
      z$`C2|A?b|P>80#Brd7|EO4&-Bg0IO4BN9WD8`ot-5#gs1842_<^lPSNY_ys?hO?#b
      zG>Cpuvuk>zqB|zHg);#OH+azrhSdLRwM*TU5ks7~dV8iz8q^K1WVxPh)d)71DP_A>
      zfe<QfQAq`oH6kP?>|7?>rKSlen2lnFVIZK@k?R>v8TT;95Z4_?KdRXWM+{1^%gvpA
      zqvqvH0g?Z>NMwenV72*%;b}0<zlbio=2|bvP;sAOF$h;|=&qX&aJa<p^uy<v1~O5$
      zTTab*X7c+?{WJY@Jc0Txn{`X~S`G!R25>n@p}VVE$*<;Us3iIyL#xAl-~ifb*2t6O
      zQvnQ&@QEWkLbi-66yHbI7De-C{wr8D*)K_F7&yg{uu`Fru+rgg^iev&P`Mg9LArd3
      z;g6KlgHc)&v;#93LzZ6d<uCmqeud}6D?~n7nHf97xHA43lb!57!CEC&IbydU5K;m|
      z#x230GDQaxb#WV0KI&_VVT3w8GKgRA-qQ(~5G#Z~P3KW!d`x_g*)dsdwn@QdiRvt4
      z5|0S)v8XAx(b`(k`3|OO<qD~^^Gadm6DB`g0!4(g7)TELgyXo2jGw$j^73m*onW~7
      zLQ*cO1+L|~G<uHgY=>4GjR`a^V4TX%`xuJfY9h&$bL74w(9Yj^J$N7(E@DaS4}Swr
      C@jFBS
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-%}e^7(F)$YzRw9(;Bq4wHB~Rs04yo5Nw4=HOh}FEfw^kOR|OSgx$>kU>N@e
      z{{nr`8J~HmGc9#wMtt_kQ6GHq#TT7%9G}z|t)9DCHkksQi4WPmd+$Bxp6}f6`||a}
      zFTMmYjQ12o1jg4)FMmhd)VA`b?&ck*ny=Z`rcu%De9_vd*}CHxmN}=p>sDpfaNNF<
      ztJ|7u*$QF;NeRtYHFGV$uzE)?y9(L`(*CUH8r8gn>>~u)46~wd35b$Fe8Z{~EzfiX
      z+TC@-=^GL#%(g0Lg6K)ZG~CMqqnXy>*(HHk(W>YjU^FTc=u9ArlnNCm1frSjl3aO0
      zg@SkjJ$OpNlLAAn>Qr$GPcvw(T&ANk*8iopB*mOj(Sf)?_pD*+^WMg)ZeQ0{tGYmH
      z)+%e&CCxVEcQ6@~?g~t_Y)*L9G&!nODgwi;IXsbFQqV7Op^+swOvkI$EZfy93pJTY
      zOs<)&vR;#e1p1H?h?F-323wL#h040-%<EfBCtli$ysC>Tp2r~X*D>CwIh<zNb#mJ^
      zTi-M+kEX;-A2F24wt8G5RP88uLEu~?=jW|Oue?4})i-q04Yw(HQ6SscRkX~qXWQH|
      zXH|^bM)^@MMv;<HjH`GF@&?v)#x|TOwJ0@#5u_BbK6)G1P?B}H;JFL8r&)p(CsZlW
      zAuaLO6U?<K6<Oq%xa<UhXI=Y4e-rD^);Fw8X|SWaQt@jlUI(p?);uaMWJ;}hD@*bu
      zFQlQi-dZN4o>>(`7?z`X71J1IX=V=YlzI1-z{OUoRB|q=IFDXAx}jnQy#k3v%d^Y+
      zRYR87sY5&BpcE>gmP}K(i&f2WbY@n((e*kOjWttqJ)0CO2gTNB4s^@O)?B+hfoG{Z
      z%3m9w5!tWU=Tov(0Li56Z2UgPpNcN-lA}59i}2l(8@P||+yflXMepNeZs2pI@8k4m
      zT#Dc<pDD!n{GQa`knmfAzr!<}QAtEN&hc<?O!orn$$&b(i@xOtcy5pDb*^?F^Mj91
      z`^U!vJSg=7GF)e+AlJksPf6wOQQAFp?_l6lw8gfg+mCSm*rX{HYRZR9qdqgxDVaV#
      zl;Wo*iq4RNDMz6N9v36Ui0_?CGo-8n$xcgI^z0LK?qZbTUfPp0xn-WS61zo9cQAJM
      z<}OCKHn~S!nqg+~a$rfCT)@xd{e>&Pa^*LQ{=G>{A=GjOgT%|*n<iQ+Nal9%%7;kE
      zsA9LaBMn=QF%y74m<xXr@mCXHGUQ_s9f<7%KTcpuQhp?Zstf1m<3f#9Rt^cZAD1u|
      zhI*D_fWP_t2i<sxGx(Q(5fO}u7{*0=lf<b|VlfO^N|hlieyo*7q<&HfwF$0-@K<pn
      zaI6r(k4Q>!ya~UbltMOw06*hb7SP4xyQPGI9b9cxNrLncX{e&dC#q+6S0IG2dUhwL
      z*u&lkDEs-A5w-CW-@MB~bCC$2hNOf{9}1a!9OOI}f>W}jm4)7s8~6&>cJOvXbiEv#
      gPntOrcKt{gjal-=-^4q7%N8ow7nb>4@#o+D57JXe6aWAK
      
      literal 0
      HcmV?d00001
      
      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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
      A1^@s6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXOJqp4w7>3`kYFq2#DWqKt&W?g02o60#Z9ig5NF+^*XLIlX9!gAbP;h;Cf1c;-
      z{s6GSB0)r0Nj-?J8mpVo>_p!yakXY_8@6I+bnom?J8lw83CoZZs?t)N&K=i|5G&Tw
      zT?muBI1o~2N@rUw{cwK##y@ad{3AkEn!(n*Zx#ECpU-vZ#{@s_g@MQ`%n&1}BuG6W
      I%mYXE2JZ1UmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU31e$6g?Y%$Tn&)Cb7X_nl?afCq)e{AH^n#P}Eo;91}U7@$leLjBv#`az>Uj
      z%}akne?;Hfht#wK(@vQ__eZtdUAsiX@ZfspdUaNJkM245N`L?J`x^jj*pe{EaJ}b^
      zlo$4q{hi`DfifKSl|z4U<UVtJMH_g5;|0y*Lq|fCVV>tHecS6Px;HvtIIEe4UT=14
      zx@qooS~nSr=4^ZwhKyEI>)U!qGa5C0w_`PQjUlF*`figUN%yv_n)*m*NUM#8X=rNG
      z*r|86)TT;lM|OYYFffDRj9%Y+e6^*Td%DF?dOCXriE6j+dTy}J5Gj^g3{h?H%t;`Y
      z0>grgMPwP`)oDtuXrAh~0^jv|6~idCl9YTwMhx);Bn~dgkT^(ia79LfgCqx^$VhUK
      z;^3-`6yp5qx{Qx7Pj;HF=hR0B`;OnV_xq$TV-C7@zh(O_$6_;u2+F*+6^87GN}5#k
      zxr{TANmB5wJ7h>bANU4!v*-8>D@CL9KV0fLL2F_+xkQG?h51CfQk>oG6mH|LggeyE
      zkc-E|z&VidHSST%ZQr+#yMx1HhH_Zg&i)Ih8&r&t{r_!|{S1<*XXiOXHGFK^qM4O)
      zW7lO=u)%OEOr-Vg;jj{V`a9-RCH#G$nNC@Qk>7Q`ae4F7q4(zoPbH0(+w<&T<kRhY
      zAx3_@I%`YTE1PRHH4%D?rOk_c@BmtA=EO?lCRUm>vC@!H<{TdfAf4x<MmSDmc@}Bn
      zIY;P6V&T8TKfv0VOeFdW=U*Zx(8XwaLBPC#mt*Ng0Sf|t98YHjToUk8DV-B=Iq@e^
      zMaIZk?dTYJs~sDoV7238ELm-7jAiR3uKhyKoWp1IpBGhDskZwlU>&R2pjK?+Aq_`S
      zWbsUTBc~PDNPm>}<?_nqS16SWzhU*1ZC<#uO`Hblekd5Sbe{5YLp+IJaYrJ!00m!6
      zS%07$Mp^azIsE(mPjm%rQ*d|q{+ARB6n7{VDJm3MiVcb!g+_W$NG(NyVu@n;gq_fx
      ziOMU~C1S^2G*HD8(zlB(Sg4^16MLdgc~ZfoUv#~OoAl4Sq|nN%h?RfE>d)^;<6`q^
      z=x}T*GD!u0H9dTrMDUTxj&ZI1C{ljYuJR5&j$C?;TdSufPT1&6F8DzotO}JnDWE*H
      aCzWC4*SP-|LekzpH%H>QY!wg0s=Wm-6IJX0
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot>F6tsdM{>7bfr7oDb)|hCiXe3}1iMSzCm|#hrn*I=9%aw@>AHat)
      z-l;B(8#gEO-JCf&_kMi7y#qMFW*G&-_EcwLCg<{5XqAd23B^+!&4Y=GMN9eFw2UI5
      zZX6<%dMbMUOpQ~5-SSRv+XT8NRNY7?snqE}hMBTBo(PTHFuL@HBk#^VKk2qT4*DLp
      zJokEd)xYR<jTwZ}QJ{nLm|*Sh4G2XynkWYr>J?N_CDb~BR^9B;S8-qZq2l;XG?w8&
      z#)09VVKIFO62eaBzpV}l&P|lXV|5moG$-G+Y1ZV^a1Cx{VGA}&Ol7757MK_Ru=9(T
      p*h!`?>oWfkIRp0oD{3!!#0skk1e$2DR`R!vRje@))>#YK_yShTQvm<~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZF3V<6n<`#W|OcjG;Ki<WebYw7Q0YI&=fS}r2^aHxS7sGm|?cbopf=#$!s<S
      zhT(_!3;M+mQl&UJ%6ET-zr^vmn=}c?jGD~ebMM)6?s=Z`vVZ*b;&%WSv94i4Am0jl
      z)_r%^eP{(TvbtU0>V)lGuPH;TEPdH>BiXFE-S0Fc1&%38%Xfp8b$jc+Y(yGT0=bd)
      zn_dvOTfP)X`R!Iqh5~176{6w0-EPN?wymbz>a{HAQ8$u1c5G9i^|srkuYmZLhiE%&
      zKj2~B9^G71I(0Rz)2j{N3%ux>Kq9}mDUd9+n=*qL%xcI982=Vg#~jiO<kX#7WjzCd
      z<2p2@I%<1?-01CW$*|TZlC#?l*WYwQPn`$K)M^|*iv-@$@iwN_9q;PMAWJmSw$~Lf
      zW8(iMx1^K^dx3^C0;flmZ}=+zz7w$qm4^-4iM)1@#`~;8#EKZMA4<3R$Ozpaiv^rh
      zKt5#F@?&XpqR<Okg~iPb7O|wkB+NHur_|o*v;!GLI?m%G*3@zAd*zB<Su55m<$JZF
      zbBoyCSjwSmAq`7lflLC%G@6I)W5j45UwC48f${j_lPtUMV+|{>^b_k#GCDrNC4s3%
      zFANE$uN0WeFOG5QYYSP{`?8KJ_>3uMx9tiP2h@9!=Ub`)iNmtxuJj9I{)3#{8B_JU
      znQ6+hjs+d7m=@5yosQ40OoNR!7n6vH@_``_i=iNVsiTPNtRUkFl>QHbF#zN=Xm3?2
      zfwGPx&^1&AW=9<{wBn#dar1LrPQ0F+;hbcLUBh<FI_+NAkX27jXYQ5RURDv33k;j!
      zGs*R&ng)I*CR9gLCKVdW6tz>BrqxlNmMGOv+sCn=F#nX>37p`XrBvUT6fC?IYt<DT
      zlY!$Z-z(Rw`5Y(B#50^4`A#!DaEbPp8T?A@ulKF-9!~S!42<DTe-fy&zia-CQ{Q9i
      zS1i<XXP@JPm;0FCM?SYa`5O}Tgz40izu<y%fKSZ>e7*<69vEC*I=~m^(leCyFuQIh
      z3FiFESnMGk%cn#;gJtrmP*(Xr<XPnzY!(eyxhs<Ub(}>B=eRdfrbiVkxPfc9$=y2E
      zumKylxo*Ir+@!pNuVaqK<DA_ca9rViYfQPI%;2j*-YiO$w@JnJharqqtgMZtYI2yW
      iBMjfK*0^)&$Jd<e|8!0!)fmwECT)|H6+X9OKl^WlYh#`O
      
      literal 0
      HcmV?d00001
      
      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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
      a7-tjxnkL=$+fF~F74&aS{q0VNcmD-)OUEk!
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TW=CU7(K&MmTuR!(n_x)-db*DtJe5HV<M&|wA4P-kodU30NZRAvdj{Q@gMo1
      zFSOCbM<4uA#&4F561wTj%zU%woH^f_$^QQH{U?BDI8YH`D6}2VxG)Fi&~Ugg`hDBz
      zx!r-)<gRga*%PCqVWVR@ZGOT>eHBrL-P;&bV20SC<yhi1gObVC7@}{xO|D@c3o0~*
      z6?v-RSY4w$61?oSTHMv4;|@dIwC!%g6r5o_Q^{6CkR=TYmUPTvS%N|#^3bKK<?#33
      zWu3bp%(_jAi7H9kHPf|Z9c)HL$Lcc_tG6{b8%K#+w7Jt39lym285iAi;aX0cVKo!@
      zwkbVhvP-5JHg&9Fi(w})J^ej|632apg}!jThDd)(e=ezbz_8{=GDR(WmQ8o2;UONY
      zc*L+gi_q}|PZ`vKX?y&vHDlnce!&}}6k<R_3cE7s48y%J&ozn2>Byr%ftbA>cbW`)
      zVbIAn-Ly@?q)?Q>tdm5~<t=L{Z)&y&N?dWdV9?IHp4;H>EP12J8xOT8i4+CF>8%4%
      zTFoIwqe|5)L}&%f=ag&2udw)yiU{t~sL>1@AdZ(v&`O^Gv4T~qC;%h_kpj(9B%*wg
      zqtBKH0Ebh|$Ui2v7BKgN<6}8C#>Uqf_M0hoY>K@Vu<O*4Y-&5PeVYG;<PW4i=C6^y
      u!cJj~>==8eh5wq1KDI*RF*b4HYo{mtK%10cV4u_#Y|w9E;_kWc>cwAe_3Xv~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GX;%|x6n=&+A&y%_#VR$ms9C_cLA8hruF-&CG!&_Y5GF7%Bylo9aI4+4i~G`j
      zJ3XiMiyzva8f@+1^ix0dNA#!EKJUyB0tQaYIVA7A@4feZ?(^JxCx89(+a!Q3_|}0E
      z3EKve+2BxYG&UAYDn>Aq(Sm6`HLCV2dhlQ}u8*e;rN3QQT4NbQ(IZM+R}2TrBy60|
      zaV$O<OAaW<l<|xM6%y9XW89KeHQpw{F{<bpHI<Z57oNwyT~8UQcuI>})=d&BcBx6#
      z*e&6JH!M;KCe>81W!z9&vWbMEH~pVzzNmz<{i%M%g;Fe(QHezos*A_<MO|0|w*yNh
      zEHN+En04@Y-;feFWGq9K1m}Qa?AKzMjD%%gp9RmfGB=wlAz_6K2b>ZXht;IgmL2I+
      z^pmkZO_AUZr{Xa!8q-zrY;TqsgDRsn%$L<%$_cXiOj0B)FUpmKE#B^y`C`xJ-xsaK
      zTD;_dM}q&q>n3BJNV+@{3HNMsp%xn)SWl9Q2q<GCyreRwY2?EoG1cCX&E+hqUF6d*
      zRC5Vt>tw9P8WDVxj372ksO-<CHPs5Ta!QZqV$@=*jBVJ?JJVSsGMLg0ac5+%J8RJ>
      z;}z_XP)d6Vt4LvSTdJ%~b(Pgj5=y#TBuIS%X0wdl*h7(Y<(!)AFQ^$4qgBo<P_M7M
      zMcB8<*pCAOW-6l^X75zZq{ea)wufXK#t|~EsUs>umU?|5v42#?F%vo~RXn%KXv1-<
      za_!X17&B4|JbOlH8FL2EUsKqsQix@mQH*@WO=aaE2ceK?ky>;Lc3zXP+S)5xc*5?q
      zV7*)L7n*}>-k(Y&cpn$Mf4~?NemydJMQYA?EFFuh#yFQoDq`qrazH}Wl+I?~S-VZ5
      zQ2J%Wz-roHw|C)rVXN9M4v1i8eR957o1MDKvFJhqs;Igllh&vM+EgXevYjxDDZ^nT
      zg<(oaYw<t}>##|XHH@<|bg;q8)54E^S`1y(i7b=M7<x8tcrFOPb27$+pTqRil1`lG
      zZ1H%~y3#XZPVXK|I#07lWPee{PV9ByvV@h>!^=v`p2;p;!P^eJHDkP47Bb$!yJBX?
      zw5)PGF^fcN1U3~R(S=L6Dj3K(@jffr!#}b2p^T4kovOytX+>0ieX+C)=I0Ecl=Bj9
      z3OU(Ew{h2jI}+B;GmK6dswU$e?lXl!W$Zw9BrU-!Cf{r-iY4L1$1LVco_x{IdO;FS
      z0ymiqxlgELVvs)<mX$*Fs8GHNtc>hh;BiWf5_?L|EF+F_S0t6y<H{jbyeDer0<uY5
      z%XdAa@xPq^Zt<?+``^hmrzAfY@aZ&4XaOwo2PPob<*>NZU-uZxf8t&VR`S!0GJfu1
      zjJ@>Qhs9_?HFrFgA6DT7J~4urxQr@R;-(Vwo*Mg}?`SRJH2Uj)#*06|8JK(sM_{tN
      z_X%FEn}E;%3j#URw~6ELv7kOMc`t`8o%P&o=$uC5CkEgU;~&OC9KlkqtN2}w5D^{a
      z`{EeqeHaaBHBtJlTk|LzS^BS<C>w2*9;`qUkqe$yW3!ES2fsxwi)>su?D_+>KXS)n
      zrNTVzFz=8pOZyH<G#7USyN_*lTN!1!nfE#ouQZ2!omSw3zdOTX#WX{m53$}p4!heg
      zH?OhJ%BRdtqrfzX4HOdSBqd$^&2btv=!OqHOum;OVic;6bo3Vx(Q1RNfs785h@GU*
      zS~ZY}6Ns3?ox~|Sg<naa5UzvBilq=(Q<Fo~&Sn==@S7>rP`xg5cN+an%V|xmG*qTB
      z%rrE-h!Li77TY-vn~|Zq2HG)NkVZ#d&kh?r0pfKNyjY##O6YlpzLpXv%(MVcK8*ze
      zXAW;XGV$ghC@=4Qlvj9>S>NZ0>LPpKN`cazywaRHcKpqD{0hI6Lws5yt4^*Kcvlp7
      zE4KIF>@Gp_&{HJ3CNS9g6vJKYijlU!pKyvENY}fK97YQs$N5<A&*1|1Rz1a~uD}z#
      zIf3`w*K+tEhZ_%3?!NW}x9D5o^?;A;@=vA_Ze=NeBiM=S?4}#+=9}!KTU6jSJLwL8
      x65J)5cM#>!?7@8~cu=6kP+o~4e2UMQkCU8yjxWf^QkLbH_{vn`Ym?V+{sk40^W^{l
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq$w~u35QhJXqhrQ#NnGN-FNpyMQBR6s+z>-NDDfzhNhh|9Gct?lV=1WM!J`Ks
      zO013^RH8K9O;!E<Rdsd0y+6MISjK{m1Yx1>#ny#=ZQod)h^#Plt*gMlmQ@j0yEo3c
      z?bXGhxD9n^gdQcdT=rQ<l?&lSI@$>H{~)$~FN}iNiA0sqR*7ph5fJ)|4Ui{&t8g2M
      zLc_hzf(_}(Xp=CQZK}wX3EH+_6$V<+X(EX(LQ6JRHqe8#jufG{3E4z1`UuHteC0~V
      zjszi-%{9%C!~h0$WC-aWpre2rVqyrx1fy`Uf3{oNIoK)@`hH>>x^-2~sEIL*6Iy+B
      zl#u^*rBCHwRS+gk=x8T&7o{gk@nuB>Cw9f<+S5hfvE8yANM(OHwdh=igk15T$N2u9
      z+->97j{`^SNd--P4=$;@Yg6Fn@@(a)sbcus5RW7bUOU)2<#>Yk%;FQw{3}w6`A2l$
      wqyG^j516>)Py$oDrWv6AoQ4&~ta6jrFwLHU&*PZEEL#j}q)|!c*h*mj19mN`uK)l5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~k|C6kVtJxJkIBF;!|QC<-D8$SrCsnv@d51tLkHxi=XzK4b#iVmjf5$p=$j
      z{53u~&WNc_J34lJ*74g1M;{!&^{M~By3R?2jN?OLW@n#uW}kKTUVER*Cx3r%7r-0}
      z8cqpBcigsdqq1MQX}C_yXf|ucUZcKW-F6y=d9&rX&1&79un+be4PJpk8EVuj?v7!)
      z?OlNZ%gh(ed^wlQngY|A2d0Y)oXsX*EidPjD_JvVmosK=#a<N{N@da#r_8*aUQVZy
      zwplLZGXiJqe8IBKrE)4+UNcJ;v*Auo1}v3Vv&j@UEIVlzta9GGRxmAFz+>e%1cH*Q
      zY?n5eqHn)aYdZoW&E(BoAv;k_W*96m^V*5B4<xo~Rkzw&;4M?pqJTG5-*y7<g&=TF
      z$D=qe;7{~I&P`>GrL$U%s=E_Ur=!IngD>dt!5@Go!DBi!2?7#4p(7wcP=W~^K?y<<
      zJgp-n!GHuY9Rm{R5<H_rm*BJn7j>M5U#_0j5ynGQF;jJ&TzhxZY1oy`8kLA->RXjs
      zvC^nYtTsdN;Ib^?1@`0rGVdn-qK-kFVdbsYt4)Ex^?IY&Rd;qO9X)}X9^n3c66`pw
      z9swm~gZ!#lq@JCMo}@b=q+n`T5(xLHe$Z?=yE>M!!jY&n8kK{s`rZNM>#uNq^M<q4
      zil_V9_3swjC7`L4)~^d(?LXFQ=}C%~BCqLK1!wzGKUb<&X*T112^^6h7b9OEpHRrE
      zw;Nl|a#c2R@aVzL%0K}<?Yd4w(K$^G*EmBD@;=#6`QRy%Ro!tbt#*U!D}DLM%M&MP
      z??QZWjw8q}BeZy44m&{4Iai(|t~{q(c@DPnoN47b&dPI=$q<n<2ZV>^JQMr*L?Sp#
      z{)dU~sbAoo4<SmCM?9X}7`laFg+{zyg+>*6+~-qhOra<Jeuc&rdP>t2np9{i5Kt(p
      z&~(@z?#9k2JR8=+-Do2m_=vZ9IvBP}-VR2slCOg?tK{!s+$w1uOj@Nt2T`jO=GF`y
      z_YCV6=H6xMr|=wqC;7;M&sgN=7{M2a;Y-ZpD^Bg#u<;GH@hw{T6wj*@@)SQbz2a9X
      zv6uULY<lE2F2zRQ$NVw#plZN(6zqF`E`Cr9Lp;xTyriU+D=DsrImD6ZvA)R|!KmVJ
      z<jNawalyZhu44;<i!_<dJS{<6q%F}_X&Gv9NF``vv~k)bElQiA8HeJKQQgX8{GtIr
      zlItgO{Y<W3$n`6^ek0fK$lwp&`zKZSOWmh;v+9lm*9*AX%h;fo8T(@IVgBu-3;b&H
      zUf*F~ukau*O7;$4=6uRY9qM4NwC0K3EhS`Evz`lg@bb)Yx?MJ**rbR-CYkPW#Cnp2
      jA|iGNuY8QYGXHzdgRIIhhjn`S&qJ`xJl}_<_U(TF^uw#4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-lnY6r9)Yc5PkTT0gH!5iMfytaz{}2#X$+-qYPsQ({(<Z0X<fBzW)#_;<XE
      z*+o2fSR^pX%zI3j_ddSf-T|CqH$sCjn(2bg`GPN*7LHk~*t5wOG82YfEuGL-=6X2c
      zst^$ZLci=~it8D>o6be*BD4tmH7=KhRNgJZ3gMupZ=7rEOp!W~5nAU`OLswN9v)2y
      z!8p%E2TiQSXrn{uB~pvq;%O?(1D`5E7$kYh)r1>a@*gp9kJ1v3lbV13q&y>Z?(@Q=
      z;#!uz-QW628J!T{Xf4cGachN*uuT~L$DI&XQw;XtQ=x$nk>3OP;}dyY^^8><2uH7o
      kU%b#j*JI1ez$bbh<LVuvkM*iPsBi<D{w{3@Ti6NO-{K#AQvd(}
      
      literal 0
      HcmV?d00001
      
      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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
      H=5YTHu)>OA
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G-%}e^6#i}qBrF?}28h~<gbHmET0*r|+E7}GsYV0T(xTummgE+;lk8@8Hw@!{
      zq7ORbGY>jbz_Bypvww!;j|X3T@z+cBoXxU{CGEtA?A?3!obP<+yXTzA_m95$7Qh9R
      zLI?=tHjR4rzP7FHWDV(LZM%}KS?0E0mR2^u<4D8SO{1vW&X~Wm3y!oj$FxES3dGns
      zThWZo?9#@4S#m<?5lFbFbw{sc+4;yrAY3)e^Jd*}1VllgTQ|ybM<8hHA4`EAXG^!o
      zrUWv@PI=|XYeqM8XI9{Rs&lvW3Pqha%d!^&Csg!7RnUb26%h;ybfwZO3KDoWgl7a&
      zow8B!98OY}TB#&$H<SOxsla5OR}n&(-(FDBi!jqjs!%ZM(sFHH<b7BmTGS1>Sg&qK
      z>yEZjAqnF}v!qp4G)w2bcNk<{1+I21Pn+8&p+j4my(o9+?ns_Bfj-*bvgEdI)(Jgm
      zxSvv~bVp$bPs#6;WX+)pvqQ)VB%4*UXfD@FTltEtO2hHZLbxE1Zd%QoMyYODWU^qE
      z^?Q0rV=&)b!4w7*67r&o6w(SNd7HqiDyDInve=ZAOFC8Pm~pt~rOT)@Dl$k5^m5{b
      zMj=Oz47`1pRxWdh&Ll~%gm6RPY_q5C8g{)_Gc8A!mulR0t@(xVn!spDGYr#7QlO;n
      z$f})m%p~78@7z9BFo&C5*RKl<rHW1PWyjKu%^bIapwc<h8A)n5OIFQo8Ag$uyzq@9
      zkHJ05tp1k+iET@V#a~jffLqk!sX}M*nBE{2Rg-sP(B$|ImQ_sP9KYRFaRuid%h0oA
      zUEdWL>!ghtYfZ&9T<5p<neBBd)n&78mE=v`?J<8A@^G7EVghQxFr+nK(QI2%H^hA#
      ze_m3hEbE(w=F}}x`}XmK8Yjo5=1gZg&E{yTlg{+(Mi6nHA~fj(JVR)W^TYsRF&=fa
      z?<c#6`;5|VmFxnvj$|hG5X&4Oo|*U>Lwh)t>Dt3^W?~;BdpP|SnFKIK&jbYlexc_N
      z6yQgkz)y7cGsfvuC1`@e8Jwk+#wXJB<S>`Xo4-Xf4+!)DPJe;!;BMD09W`Kk+|R$Z
      zz(jo*YBmq%60Ho=$1tC@h4`%nqR)q*TA@Ja$u&p-lP)KVa$vA&0y{;&80Gyr`W|9x
      z^#Cs&X7=&&r@Wn{?WIFD$gEP>wct7lvyWH4^vO3g`JF`lgS7Y)!}yC>{N2K2+Gj$w
      z+J*_UdK!~lJ0`*MT6-psh{-=l5ah5B7#D%IOs-;-qVnzJz1tb!oIioW>IT<$d1>BI
      zKUEk+2q6(hzvyj&9PpEy^&xL~kTHVH9YL0N1CQhN6JC_?Vl8+vACH>Rqc}^^xlWab
      zm|Km{A0U6|%kS2X7;+I34J!|U?C}N)gdy-I20g5cZm%3+z10TmWD6U`XF~(QL&$q<
      zB5qZXOw=Ze%^p#hgcyM;k}aenKB-89RBVoB*xMfDIIUa*-6YuUW@$D0f-cd`7UXiJ
      zt;?OKxm?4F7bQ*1SjOJW#CLdSAFEB$$0IE~(e1q_x{)v+xKuyHN3`-NrGJH3r#Ydy
      H=Ntb52-QA4
      
      literal 0
      HcmV?d00001
      
      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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%0DNX|)!=BZu>Qrc@Uf
      zsfq-(+jHpXDd>M7t2tcKBe{4WxvaL4h%lEW@L?%4TE^#6M!B3f(UY)_Qa#LWfS=o$
      zS(dp;uBSQC7jhj&H|5A?4DnX0GtX*bei?e{r-$F2x67%iQ;K<0{xf_dNr{tFfwk0<
      zy^s^;f@lt(&EbkkEPRx!Wp=ziTjFFp2FFs!jX@!Xe#erE*cAsx#YBsz(W|xYL$#Q#
      z(fV>22n}A>sMUlue_vngs8`ig??rjoTXp~8_xaq5stIiEoxrx<P+}ZbRSuueAv=z%
      zo|$36jk6|)oix_xr|D}MZIf>TO}&-A9BvrL%~P>ESf9$+PDcQZWW^eybSBYmBGQfg
      zLA@4dpaq>oa5K*0xINp>^Abukmjc$K_=1h1hU;CdgV>2La?L}@Yw#t$2{(iIGT$`X
      zItgE~-*(XFSGg`IevKX++#hzixLVL!TQvsF^N6Qq7RbCcVXqBYnW`aJA67q7s7uuD
      ztWETG0V~?h4!e-PI@li<u?sI|9+$8OI<Shr3#Rz9+RaHL--I>NDa-Bn%h)9+x;dRl
      z+h4bHQk2R^y~btBT&aS`DXP{t6_LY~%|%R^TVTp9xYcFKfXkFal6$K#rBU056U1g%
      zD{#dZ*1|q!-l&l+VXY=lm-lSCESbPAhc34ZUA%D;CdA&n%Vy2)XTsV_>0_<0=0O}I
      zvZ1@jvD+q-y|pKY`zZckPu{DD7Zx~(gs9{gsl}ar($dl1{aEhpn>Lm<5p0k&8b(Ni
      zog8e}a4=oVwz-Z?yORXFfdspe^ty>Hc_Z8JX5PI=ks{2a1pO}3<wqpSK~h9YbUqsx
      zI8>nBA(wWt_I)<CjMe>i*@SkFxwM-@8$v~mzID57Qixmd0~c_ih|qaV0B`hq8a1ua
      zmq*-JK-?eph5drKZ&Xu!_X^}1N%t<Fd+~{o`)Y`H*!yw7eT1+GZF;P6pq>TMb1|Qh
      z?q<8(O;Yb6CGWurxR>bMM>6kW``*v|_mbWZ5RbjM0uK_=hluDt;`=am@veF|u@W?$
      zCLSxGIaWY(43FT4M3a~hJ85Dc?zD0B((COut{T^GwQ=<^0tZ(=5&bb9b#R46J+Tq3
      z+Jo|{&|p6E$MRJ3R2?zTMXU+%6SmoYUc?X3LymEd+i^RGTC@;%lycIjO8%)rkItdC
      z-#$W5WehUF%O`N4mj~PU)a-M*al$s~%<Xd5q>|r>ZW60#Pz?B@Du*X#YEKqv`--%m
      zbhOoJbT5?MJ%Ois$MMXC6PWB>IgX!o)IEnlJ&*Kf>q9T(@KVv&S7lMCn8WM!p*Oi1
      zdb`O>feM-bbqDcFwsfV}Y33#`CEsfzT^CpS@~3o@R$r-!#P6sq%V*0`{XvnB-_r+K
      z_x@Bq4zZqPBRofnJ<q$u3y9!F=JXQ(iS;s1fme7Ayvoz}HEhJ|xEyaFi8tBAZ?IM0
      zVmrN!JMfN;M=R+fB+cJCcH@uu6A=mEHhh3T6Vdsk&|mN&(OJjF|0{RBv^K|XVr^ak
      vAK`Bff}FilSU}?>T0V1>R@m-@V;=mS&ocZ2|Kz7!aSrhBUv%WK;otuQWpQ&G
      
      literal 0
      HcmV?d00001
      
      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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
      b8eS)D9_G77*-BXX2Bo`B3I(N;#J~M7-8!JY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-K}rKb5Uh@ICs`AXe+ZJjIC%DEKnw^T@`7=<*=!toWM($#*F5+DA0^HxBnKgf
      z?uMeOsOqopk52$MxKtPrs#bcvH9PaBg`*C^>R0b}UBg~K7-_=Byzu<aHSY>T!Yos@
      zHPY&*=PlP!p&(oxF<CkZ(f4)ahEQ0RHf{(fi)uv}MYoQ=lQvl_9uL-k;BECEB9v>_
      z`<m}N%Y^fN#OtgkOjaW7m)3;9LE(ZhKay>)CJb}MR3$}AbDBOhNOcuP$hF5PGlH|<
      PJ;5~HGVxLZ%!=_3<S<(=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7_?{8CO6vw}Z{%-HOyRr=#1BVQ@c0am_495oBD0lQqx5;i-s3`NUyOctATie^g
      zqEQn~FwsO4O)$|HzB4htz@m&uL|^+yspok*SWz&n$?3VD=RW5=&vTx0&i(VRUmpS(
      z#kvo>2+_P<i(fO>&6{!Ca^lr$F<!2e)(fjvC7v|x)#_FAy49QBC|f?b31KlcUNr4|
      zT(fIygqEb1N-ZoeYUh_UBTX1cJ-5RNf|5w-+I)IhI$<=l#f-N22tx^NF|E()iJ7!U
      z*uC}goR(eIE+&#Q^Jm3q)12*Hv^6_gKC>{-Gb7D2c@=#&E6f`kc+#nVR-f06q;`hT
      z+HAG7nEIC=BR!K|G6<e^vskkTq!U8g{L)-+W+ufEAq-yHQAGTcxnjXCIHw4%{%D5a
      zPLx(HKRiJY_9^Jbeu8&$Ys#Mf)b@oKPNiVyCv-iU3Gn0>6?owF!zbV+1wH|O0f!a%
      z1q1~2D+mY(3K&oj6c7?HtRN&n5iqJi5zr#w6$LE<!UB#f2n%Qxa6&<=09C+A1*(8H
      z0n-ZF;1y4&6||#+Lz^nt)_iSk#j2#ul_Ezkk}BoQV#cf#1k1r7T$mNdK1=9)+G!hy
      z)fGgro1^7iEmR4?E2WBVJ67JR@HzVR=nn3{hk1_Ic3Aad(aM{}nM%I4X4#H*GiQ~Z
      zLdo{wb;6$Qd5!R&t`&-0JAN$k%bH!SmCL1yW3Bec1nF_Oka~hxKw6w>iO}(sGet9E
      z#sviz!71uB%Vo=6C3K5(JY&5HVR1>pn|O=hcS?=T5Ze3yYr=Eqz@_TXTTZ5tww!95
      zxL&zO4&QKpbSGIG#44`%z!#`CZEvIMSZfOMxJn3^m5RBME0s40vE~ymtX#8l&V=4{
      zu17<h#sr_-(!v$ORI}Mus_*1lMIsdy6u?dEShKH0(X3V{nl|v*`SxK%uj6(VG)lEf
      z&YCTVWDP%VkHcajcQ4(xt%`JKRej*h>wTVH$Vn^OD+kFa<ZaWbRrvX2(|*L_lRHS@
      zQxnspTxKrr^5N;dq6q-3x&Ec*(wCa6UTQ9Qskzpr<}#O>D_m+WZmGGhrRI{BnyZ;t
      zh={ra)Gkre%wBFSo!G<czW~r>PICTH_yH&z+3Rv`qU$aWNa}IBB^{J>$m5aJE9r<=
      z4N2^i81<=&#F)fEzuF>kNMc;|s$t0^l3!MRYOCa<l8>o=Rh2v@`BgQbwo4wDJfQ~F
      z4#|^}PpKibQ}UFm{Kgx1)p5Ycy6ZS-WIc8C8d+~0eMZ(-N6g6j>liY!Di4jY;<2Nw
      zcyNqWppJ1?!8#^ch3c3x?qcRA4#_Sg_<xN1D9D8{xzSA?#K?<r@*zonT%Z8*6vPb*
      z;T9>lO)dDI!q_Cj8R<cI;qO5s)=2V=yLnuR4Rmipi|zjf$?cWGA|EIMFSR2?9nwQ5
      z+w*+9CT~(aiMw?1_uw2-TQ}Ir`9nPGepeg*e*Xu40=|*|;ClwHvy@n>EMols<OaWg
      zm*oSNk63Q8e9F>n^EvaEEVnu4cR1oKy)1n!F_s~g5tgGYV=Ut=lPptr9$+r}01Mg3
      z`AryI_mH`VH#TwkclOnY^$Gq=fexWehvCo>+@wCdNB#JaqWG9%_=E=V84cnK8p2mJ
      zjISw<Z)pVI(Ws1;(uhMN-}!kNZ#QCuIBO9jPwZzTe|)^4R}9keCS%W5r~@#uvSmER
      z0p_bgXB{)ybFSFK?4-!KIoH1X$PM0k(i_`6y7~aOvTIvDVthogfnbDU_i_CX(6jAa
      Wu%*uu%EE%}2=AcE4Z@M*wSNF?YA^c$
      
      literal 0
      HcmV?d00001
      
      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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
      aI?DX5P;x^#x#|TdRawgGoa6j6EB*(1mJ34w
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5PcJ;PU;%kgc4ey5TLY48{q;HUqK)hRDl#gqNs?Y6K|3&#t#0diV**Z
      z16)!GB#s>TQHWXFYE6qOWO<%<JoDb$+5PqV+YbQO(I}xnSRQz>wQcX%yOt*+D-2z0
      z6!<&R5rOqYxUT<FypKf~l~5$is6xxNy@B<jyDfU0)d|hxC~VIOhxS{sxb8b22>N~L
      z$>;$=Yc#hA#Yes)3}~1#Q9_w8-I1Pn9>42~;FaBV1)<vUd$zk}2U4xGWHB1bkd-^f
      zN$1?R3FXM&i~{Km2uqF5!A8<#yLmKK!YM-SaOHa3?~A}d6;mqIOq{_SZ_FNzgy#@i
      z|3#j%w97b4sO0Bd|5*RjR>bE`%wT~q+xUky)*A()FL%{^4m;${YGD)*=8pWzWVziH
      z-XIz#=kU}3;i{6W5R6Sf4tioks@ebL?3&Wyd&52aPVgNnGV-Z$oaEI_Mq->;*@N+w
      zKMF888jQdi7vI1M{xZ`doWwM*_)ek1Q4zRYsWD#oj_R8|%syNFiOJUL7^h#is`Ckq
      zaqbIOq|CL%#4R>(n_2Jh%<f_y_Y#$Q%9N=vCqEZir;HlvxWo*E%eay$w-}Z6g7$fz
      mT~9I(bDj%1&kI@STEYbAD>TO9fw#2#ajsk6?_NqYmj3{}A-lo=
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)6?NZZF5Iq;F38h+y-+(BBT0oi>L_rX(D1x+534)`J8rnN0PDq#}?Z6ZG2EKv+
      zbw+W<8TG#p<+wMg5G*aU({y)p_Uy;KyTAW@{|O+CRS8WDy(O!xzSArEmTGZNbzM{4
      zbnJ>z<c|7;yRO0e(h?#JZ33j4x>Zsa*WU4hC*e3lw{LZMq3jsmwwia0ied5+FJ=m!
      zVOtExy>-LwOHrWgp^+vCK51BnH^p!*aRhw-3PWVtF7g&IoQOe!97QwYF|?qKp*bM{
      z@vLF-h4RK4cb4@vlQSq;yP%sZx?>2vYK(|P8Ll24wl7VIHalgi?sTF*`+r|1WSplM
      znwFimEst+`$>pq8Nhhg|9Sr>qy0GUmx3OtP(S>da7pa215Ywjax-neBWd^Cly#;-P
      z3fiBB<~fE{nuy{G`Xux+^fZVWoN)|SagB=FEPD)NiQ1ZKEe95!VCcx0rDVo5bT_$I
      zj}R*(G6pE?YByxus0a2DGLj5k2a*L0DH(LF&euc87_Rr0l96$f*ys6nPPg<DcV_g0
      zXFJ=;pdHUgQ{xhDF{B!FPJn6%WQ@^JEIVb_YruSmVfYZ{11MxnGIZ92tmd58<|WYJ
      zj5i?8J6v1W9bT*<5f@IzeTMd&UI<QWmZYKF!%+zj7zP`#`e!T91P*u}*6?Vv83{8-
      z<RNgtGs|#BGfI~3l^y<XjE0sp;(Ef6Y@8Fpc6|f7EW^dnb=glWXk{!gv{o-@V93|;
      z@rxD^hNxzjodTbs#Yf)34N8iUWr)pL7I*xi<+NN{b`xTlsU4}nQg@k7)_P3QCW=3@
      z3a0JS$mh7XZWocFW!Ox=V_<D<VkgqNZ=zodqGW9)X^eDXi4F{YMQq?3PJZ?=?ZW22
      z5#IAqNRN?^u%5zc`lkcI*?@)h_)&mg178qR&M6mm(7A)2RbRcX^zX`pA$ceyt06fZ
      zl1G%$Fx72kJgiPAcf;yEB@<Ssl}BOqu`(A{=at-UR*QkmK2cds5T#EcPR~Vp=Fy3#
      zxQ-=^K*K#OQ!`fZ0;@3a99wva_jrX5c#V&EgU@)2A6N^u>sPg15n>VSOT;3Y$mlCR
      Q3NZ@%GhziIw5j8N0R}G(-T(jq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTc@~6#fPZZA!VMA{Rwm1hK7kw^eyCHAbWm3gr?Psy><Nc2b6HXUWX8%8&5J
      z_=M5KAK;HtPfH;f9&jGc*>n5$d^z8*-`{@%D8h|nfMKDj+TJnm@XwwS)-xvbPIT0f
      z4WYd)VT=@U#2BW!EuIlUTT6TD?e|+4CXCRMhc%&%jMQPJ%)qu7M%N-`ELXP1!?qau
      z(|-){+WK3+vbW2SuJ$lPu9}{2wN%Yg0;3E=Pu+rBU>NInek|`DzNxMgZh81MZQgwh
      z!!M<h_7%fmCR<~Otwjxyz!VkEw@zS&;Y+1;5{i~kme8Gps^2NP#k})L+9SvJtDR^0
      zezM>MQR{?TS(hR4b6SLEO3r(CrSQVp7N^b*SG*~-v%v!!>C=nSfo>anz1YKccFHRb
      zR}IJCT&0%4O=1vtQb^-2Lnd>beffGSTZ`i!!{UucS}G<nhx=W0hhaHWy>X(HttIgQ
      zOK~hR%>R4d)gYkL(+RDP!cgcG9%7jx)rj`B?8s0wMT6mapTiYZTohLWOKK=(uQ1xH
      zAB(`27{;qoiQRUqF7yGfhoY;5C?E-O5)#GzWXv8(L)8C+2}9D4+By&$v>L<6xdPlS
      zCtA9ql+bG-H%1sNkaPw~Ky(QVVVI&gMFU7+7D<d;#wm)&Fn$?N&=)O=TVy9`Vwa{F
      z`I%h$_9Q0K(`T6dfw>R4Gt7U(!n?0M)JJ5~h>=~Ve{B%{Hl`tvp-k$09$Dmiy^nh~
      Ok0<1lRGTAD(|-X`^7L5%
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1TTc^F5Xb+AE#0;pU_}MN`<+%~1-YoL2trk)6yqw%MiaBtwJa%Hvuz1{0Y8t{
      z2aQJKvoC%l<IJ>5AM^qH(3#(yGjnF<%-QchKYax-fue~n1-l$J>@9D{+qFZ#Zr5rR
      z`*l>^310e<z2fiXcT1aISoRkx<!ThvH@8j16#Ce~uF!&=4;$MGvEo`WuP{+KV6?1)
      z@z_~Vh%Y^OvE(={MJy&+ys#Q7kd|*PiYBYZBWI<(($dKKLbRTI@#*S?^@YOIJcXNl
      z_8%!Fa-~WT2K710ZZy44<t<iU`U!NWpfIFy48xRYuDxY&w6Na}ryd1iIlG)*PtxAw
      z8r_H|U^1N2Fc}gIXEhQGNrnp=Nrn`|WsMX=4?{+yhe0!3)zA#R4A(Sz8TuHmYxFVn
      zGt6l8BhK0l4GV`9`U^qm7aQ9fe)PoKsQ3y4g=)#Gtb0+wEXEWJ3{k1|&7elr?Rb@j
      zPs-G2`rs{0VIFr)(7jq6t=X&9{cVj!EGZ<tDDw77)z^DeWM>1{Hn#jyJ-gh|)88g)
      zDqXoGw)RRP-|5!wd-}k)&1FB($YWVyx-;Tp#jDk_9clbIV!tFFej4GFQ*A^g|6ahY
      z9sb*^8D}4=+6l^`S8qhLZ?PjZ$H^Ty^||c)1l_VhueoP_m?sS&Nkb-*=1U}vmPnc^
      zku*>uX_iFN7>T3_5=p}YSR*_-6gft7I)KA;&JjQj5%cfIXDD~zsPO@V?=d29A|`NB
      z;B>dZ8G&<gf%5_vO@T`SqX~huz!j^tZ%k<1YHhTICal)ZNuen#DSp#d>I>yzG%@11
      zu_jJBZg&%B95>#?dB-)Ixa7ErCen^;k!g$s*=!PIoFtKKV%m9+*>_Y@7jDx3IK4Oi
      z?}d#KT*GDhP)=bI3%HIVY0oi(EzDvUH}D2yxFw$KO&^6;lgPu6OEEK7PJBRiKX{xr
      zpzWkZH<9CR)APTLxwiWZ-6Y@XU=y?Mijn#1=D5mL<M>D18G9=Sa;mLp>Q4$u8sdBH
      d7#T{4&q@ub%tze+2K8^hE<BW&D=3Iu{RNA+Qg{FW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C-*3`T7(I6d3SHe8Q<O1(PX`^YVlrRAWn^NuSlB~_g!ojt%DR-Yw1vojrR-sg
      z#>Hp<DC2iK9DOmtKJ@n7d%n|i?)Uxr{p|`s8LvbvFl_eRp?YeJjL)iT1*-2m>X|nf
      z*~gZrHVm`o^ah?Cob*M+7?wCubqu$s*4<&BA=YeZ8beW=Q>DTnG~VveTR*5VEY_Q?
      z#zwoQwdy*9^6@`pl2y~OT|3w%twOO)R`v(SRuXXu3~3oF$S@?TQ%bg=&8+KzXS==1
      zVX>Ve?rj-yB$5z0xGO{CAj!d+j3g5LYh6YP62r1)yH<19?^@mmqw81<8Es%1PTTNo
      zj>Am}0@CCsII(@QFfyE>MIWU?asGS~Ht<};Gl~-NJ@x~uFJlu0hLquX#@HO3jp^c|
      z>5jUmmKjtIBZ2>JQDO!$G<5Wd;Z3w`dMWdFlE*B`DB=afPE={%F?_!g`TdRbEDE0<
      zngvN83_a6&XY;FEiH_Sg=Tb`D?zu)V^yoY)$?L0gPs?s)uS{JOXzXKqIo@u7R_b)P
      zQj>x78gDUYP}3J76aN+=i!gs`-@!VWCE)_g=U5HFomdF6A-ES0K`!xwc)|p$dM7qP
      zR`0|o$m!?Ee<hIx+^4rhE3i#%Ea5@8%TH)tr@t(dQEpXKw$?B3a8{Tg0;WaWA5rj#
      zdnf0Q@nl;5n)31T>;(DFdqKJCRJo^ykiW#!(ib|pwsEb-ZY-pzmC95@Ar9A<GEBL|
      T)=#j1*DX*KuBqZ>xR(C_PfYx=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%&rZTX5XQeLm1?b`@&euf4{nU!BwmarCRGm_?n~Lgn7T{0E#b8|nRxI4cqrnm
      zA;zPZ`DVWPli#d2pI-njaFie-^rp5^Z+fAZ%9>hLRjKCQEqG$Qdep_;vM}?SolOuE
      zx?xbUQxDI-4MKa!mg^frt3MbK;#)T{DO%Xeu!A<Cle0BX&HLE+S3NEb;Uss3E=SsP
      zsJCWZ&$uEC@_!Ot6Veyg_`=+CIC}gS_dJl|6appBLKFc;G?DC5^v5~-!0t+n2&u$W
      WG&EyeVPCRryO!ZVD#D?}2%T@{H%f{C
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~iZT5Ir~F#1TkPB#OHcKL|r)3@!==b&U&aG=Pdmd7=iG#Ic4+YM4;jr~M84
      zKlWj_b`92AwU0jdqb$4c9YZQaD^+uE-|o|Wy6?I9^!dO40Tl2$j*vjU?zW7#=Aqd(
      zT+25O4jiNDH4g1P%QM!@_Nr&r_bu12SZ>{a6Gucq{|;iM?OX1F-Egl|O{ZlE#49W7
      z+w<E?0&|t`;7(L33M3S?aN~GeINr_+L=ROBQ5J|fk|6n)cOBcc{d)r8+)Py<^02XI
      zB_WW~kj5B=E(iW-u3Vm}4w37uhA3jZJEtM8b{P!`wY#8U2r+??itSqKt^FO#dtvT4
      z)LpvL*fpK1>Dg?{!z9A^kt+>zx=R|8IK{im8Z?|DI{q8`fJp4LYBkHFg1MOrkKb_Z
      zhEe*>w@T7cOd<z8jv0Zm0d5Vm$WybX;}8R%s7&O_-%d2A!2r!M+-&&*nOwOvI9AS#
      zrkSW)esF<9`(|5RJ{|jwP2aQKy1<#Qv>nr}8|sue3*6T56BY%o<y2d}{-9{@Q37`a
      z#;L}3El}FFy2<R_Y#hrpAK85mq|~w<5@!<k@N*pZ1xEWLG(13wq$lOEQS0NfvGdm2
      z^@{_zBvHgKe03|Nh(YwL9Pz7$M_|R7&8Fq<30xl(dZPJ&HqEGrCp@DCp4OU%n<((v
      z2B&>0FxkDwlRXy`crGC5ZN!?MRkPcy!2a&ZD@b6;%|^@HwN`D`>G+BFHODYqA_`&p
      zGl(I>4}f+VmcLv{{BkAf)0$=-%av42Yl42KF--UovTQ`?3oLzr*ove=IKt>ZIKx&n
      z6;akWTd`C^Srcr<Q=`f{|2Kg{n56GG5rIrSO!f$LjAD^WUX&3WMUOZryG0h$AJLES
      zgMQ&1vijsZOdTgnOI~N`dyby)1o6$tL|FyH71<jlklhJR#jljo3S7mtpv)pgvu`-^
      z9@Am{Uu6I2;QC*Z5L1px??steQ;|VtLD>pHmOQPTB^3Fy4>{F?40Vz7U8E5pqg=Wl
      zJlzA1cEKd7plmOAsvn#m2qtX?;2Uxh)S)gqxYgfrp$8r7mZsMqpns>i@%1dEm)2%K
      zf&@_9nthMEM|ha;V6}tCYkZVfM|ua94%XApl<T;dy2M+Q>NbgU5$CZa3#&_92ntgf
      UY~lr#4r3lKX~&mXm7{+31(e=RlK=n!
      
      literal 0
      HcmV?d00001
      
      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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
      Y!BBBi%(0)FhC@&ezYw!!fe~~52GKL$od5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTW=CU6#fRVD|BnI)_Pa8R4LSM>$P<&)({(sSesz_;M=fFU@Ppdvr7X%#eY$g
      zTB8rfXMdFO%r31Z5Mye{GBan+`ObH4^YhoY?*Nvut|7+oyy0|=9lp!Eh9d&Q_gjW1
      z-Cesbq_HJMwaKNZzY@LI+~Ex&H@FqJvR7_<t!!VUA;FMV5JrnT4dYF1M_7S|F^0Ke
      z@DZ2{V?opQvr7zSW!T~$>6iqwW;=FJWGLqT1807lAyIPcA_;~G9U4xj5XYpBB+?A=
      zoKl#q*pArjv};1X<+YYzn5wuIZ*6mFt8-tNP=PU&PEO}A%PPEv2&fVa3%SalbXNmu
      zI}LL_6m<<t_PoF~s=|_?Hrb_KbS>cpw(IyBE-_?7V_#SuX$L*ysJLz61V^e#T){OB
      zR~c4MToN7Eaf5h!T=F)hVR=LvM)bp$QWt@czL~;J%xbvBU<|YPtErCjn4v;C1f_~I
      zlrR!nP1p5BxlVCYB3{}~z%ZSQG8y%9Ke>v=ypB8ylua59rEd$0Xy#D66WA@IOq@B5
      zhdGYBFf=TZkI?VHt&SxuGiXijZ;CFtq>g&0Ebi-gfQO26C>~@IO_izP@xZV}1Q}ws
      z;vPjg;En1(GuW9u@31@jZ8V_2Hk_%V>Y=LJk(Su7RjbdA$o#Q~VNu1*pqCv-$Wn{@
      zzDkwWe=d-rv5M1o3M`#g(?zdQoW3MdBps*S3S#sFQu)GX==m==^NCI|oK>>$rcTy1
      zOwm~<8znu5X<C`8I%!;>eS%IGL%em8C_FvC4}Bk(3kS&T(K$jK3lZLjXv$V$Mrdl6
      z#T?x;+{PXHSL`IMN-NVxJ3y{d_=*LFkC>p%J%%56w8xZ(c*uE*xBwnme;}5Urounw
      lEz|clPTW_pO6X5WTg4Sg%+TK&$zphlBCRS<jOOzh@EgXHg)aaA
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUYi|-k6g>m9OOdvUeX3aK6N<8}?@HA)#8x6U)vYz8iOCiwux8mMvkMk~ioZe=
      zlO{G={bb^gGTz-q3ZZS9_+e*uX6`-b-ZS^k?>}F^16anY1Rujn*{I9!)P}k*8{C#H
      zOP6cHY-lAe<SoIKiYj>NId8sD4Ykb0x>~eN(acqAx`Y73bhm4dp;FTr`fI9Cs}{p@
      zzL)I;k}b!a+gw-~a$eO8&3??_Pb7C30$H=fL-6B57!raE!+Fi%oAv4*7u)Kd&KV+k
      zv#9Djs?eNuYcpV1G>RZ|LImf`mtq;=Mw!?)xP6=`fkqR_-TY}nWCp-+IgCE^OBiLC
      zatvi%HOg{M*Lhjh6<f9W)BPf^*_vqtF-}PtrX6$g)>K{lz)K;FVA4tW3d3l^<?<jD
      zTWCf(liZPTjbY-nAS7I8SnC!4oT<;YZa;)5Von%whR2EjkkYxykSAu2vSdhkNgWqq
      zcfEB~gzMT?%aSn9u;glL@nT(Qc2mw74U(<2rk71xSE_CAwwr_mgWRjfnZ+2yBEuuo
      z(3>%<UaOhHwqgX4c12H9_oS(N(q}@1Fo#Kob0_Q6mUr9j<f!r#YC)da%{sR(|Es7T
      zgN|gE8Roks+BB7VvC>wk!}d1ALbvT}L-3;6;KFGqqHh~B^jS_QRCuQa={CP*y)QBN
      zcC&Qpidh#$zOFfqI&*?n9S@8vEJHYF7+hp^)v`D>o7Acd#Hp|R^pY|9sJUni&_BHi
      zG!D>8rrAAPJV59(ZTJwTvESWX#UTBMJp&A3m{tK?#3kBsoRyYceDMn+zc6@+kwRqb
      z024=nZ@60UA0k>H+$rS~8GFD(ZZzu@!3M!R>mZ1?38pba*0U}dqgrsN-jJV<=JC`|
      zEPQmR<_eMI0a8b)A6UpAM;@UFftN(^iU<^pVcR7c^W0k`1VnP&pgaPY#?2O8kVw*4
      y!Y!Bb3E{ZX9fNzaymbL%-eDV%;STP)QZd}aeS-Ai0YUh%f`>GR=qyTK2KWmLb+HKm
      
      literal 0
      HcmV?d00001
      
      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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
      Yu?(vy1}88@8W3@NV9ReF^Rm7AFD&!4=Kufz
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7O>-1g6g_WdlAcUjNG5;|9}y6eOcK%p@|8h^L_Q)(2m}%Xh;$~MNs~$U*xeIJ
      zm9E|Df&z+_r8`kUA>pHBXIX_i3#)YFPq93&r>AEs88D0Pe*NCN=bm%#efK^8_sKH=
      zyHQXO5jd2yirO`OUcatchNro1UMo2Eyg6k!+UU8F^G?zAhIC8M8O{kk>)Fo2j^I~8
      zOrS}cYI)ttX=f&{8Cg$3y}-7Wpv$lXV$){c5a<}J?9Dn01<%%8og`eRppEFR`>E|r
      zo#4)lK)p9(x;x$$*jr_@O48E&uxXjz5rHe!K38jB<?@v@(_@s@Z%-Kw5Lm0C0f_{n
      zXjajPq(HPIJtkMysZbE-jzQBhhKqBPhI3w@lmST&+F3n6raPwm4<=($x<ICi#VU!H
      zv&8_!v$o~wrbVFj9fOs`je3r0<ud7u32a8If-M4Vt4oTC6gDc@D$wG?nYK1?=J@rj
      zQSeOLVjzmH;Ydj<oCzdyhIiUn7|~7c=&Hr1WaS#!qGNgsTCh12M;qffdg@pL9q3e$
      z7TEG~x~w}DUFfEKD))3N%NXyi>F$*v85x`&6&hH8^?BQ#Ef#osY5=Vio4&MiPQvX`
      zu@~<Ms3o|5+nP3W0_`<GYe6X3&qDG;JEwayTA!I4usnk&HGzZZRd7gPQ(2T2#<A#`
      zdF=vUDl$0CL`*yOT%Yb5`$=U(P2YV9?86aR!tYUh$H1k&^q7KU0=vra*R|kO%o+>w
      z?CzJ%BgoiE!!jJ5ts{Y>XjbsPK(o)<XL3q+XNL4b0{v)?<0M-OF?&jAJw)mmmP-RF
      zKEP?_y-@T74py@)^_@&rh=ZB*%BeVpRyxSVac1T0d?U_cRKYnWq^z<ML@9G%xjq%=
      zaY3NYH9T1y$$+IVlM*xOF^M^@;zLZZ9&@F*upUz#0oO1|0W?o-)Uc?yrA7&HEo)5+
      zh<WC%q;**x&|D1jVNpeA3w)=;2J$~rXc^Nzk4Lkmgj}5~E-E~|qk5jq8aWy>9CO-~
      zN4>K;Gv&teGHz>WTHWKNd4*wEQZKs?5~Fs}$r|!@V4*L&V1mo4M;01S*nq_v?9cN;
      zF<b>~O}ooEUG=?3(ZS7!t?b}YK6Qv7DH}P^)FfLyFV=cKjZnGz8b_zOBg*gE&aQ`8
      z)47DE&hCe3xzDKx*7Lo_U%o}C8w9wC4V>G+HJadcyuq&=Nf!}9vfT#2Bm9@U)XoQJ
      z=~~35yW`QjTmyGD;7zVo(7)!)HzfCM6}lRttJsF^v=n#?J4)zcf_xf?b*GGe8($@N
      zK0^DrKat$Ih+RW+*j=}05xa+<V&6opJG$o)4lLo_-kATtEBvo3{m07d^-pnhVhMe{
      z%2V`naJ)C3iYHH`>K1WooTI^1eJ~nM#r%<yia*9k1S#b)c*EWs7x#RzH*qTz+lMAn
      z{*KZA9?kfH4faR0<30}HC!EC37{>!##Y31_go`D7jz{<ckMSj*5ak!##xp-amrK&a
      z0Nn`!v>Bh_A}%qs?f3+jIf@cn$49t=7(JZD#~jts&oTPB!b-TxKCEMs=`(q8WHH6$
      z2pBkA3NxmOAd}cy3G=#2fc<cVN;hIts5D7`z^_#L8)u(W>F-skZ4H^XhN+!KF7P=|
      zUeae<#ph-}Jr&30yoJ8Evoy*jwb8HeKj`}f<NYV+UvTv=md@W*9NIz-Z6SvlMxk^n
      pG=62N)=8iDI4D(Xy+8Sn4<io{Hv}*dT=RF$BF}HaH=l!z$bXALwr~Id
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNYjYD-7=BKhvgs0Tu@?eXO0Ae)0|hU%Sb<7wCA~mOHGs%AISpI3yK#3@2s-2F
      zIOAt$^n)}02Vq8=jvcLj>Wn|i@!1P$N<s&mo!N7C&-*^_^Ip$C|Nj0bfHSZZGzpw3
      zn5EQ;wx&HynbJ);j*%+b)|#G|b}Dmye!(s|?u=$?1!+%eIoGnw3L*l%yHy&9Ws16h
      zk}KJ^G+lwQ^h+D+4egEz?7N_wx;rk=oa|c^h)h^{siGPCV^9zkIF!~+Ia^v?lJ<hO
      zWJrN{+RAChqGs#fcla~n-qRg{voFtu96F>~pp_}<)_P006Un|?>F38|tQ7*U#L$9$
      z3fd{|iKYzAETpClLl!h6<7%$F@-Qchu5Ou8bkZTya=SgBb<NNp$-Ig-Bs^!23A87D
      zYXL;YwRN*F*0-qORe@vAry-yQ4onkO;CKk)NTx`4%c-lfoMC#U57jNuQ%CcXT_~+G
      znKev%1WsC}QSR1q9($*oB@<?CUbD4T=}OyCaRLc}ru&T5(SUlrRe^zk(M}!iF1sB(
      zGNdzA7LI~Gfzv+SD(<wo#=zw-83l{p-CM0{SJk2zAe|NIIJz8m?BZ}ybDRg3ogZG-
      z4HnlBQVNEdu087ZhN~MfoW>a@xFFq37|VIvDoWce3!G|{s`~6HI4f{|4?~SR@o9r7
      zc#EcX)N^*Z=vpa9V>8pU)O_gKr0>`{>{l^@cfD#lFK{RMKf0ktWiMmQR1|ET#Ph;D
      zqToG&&Ye;V%K36hH#mS)ypKx?E(#oeRw9PWnBaV2mP>MO`I$)1Ev?9$JJwepX%!cc
      zh+<MejClJGW0=NA957n3D9yaU&<kZOBsk_lq+^)DtU%PY0`>xJ$p)sQm=`!w6N#K<
      zF6)ITt_!pbdmk#!VZlqw4OT+~9`)|j|M4RJF{?H&m$i~nGeb0QwsbFRtbzP!w~8#%
      z3U0D+{m|-GYI?5P8!D1WDEM?&RXx2P8n^gud=|r9XdGSagxZP|=w~=ytU4LcB=$2M
      zMQ?g=UcB&35NKto`*xYdczs|vGO7Y2f%Jr*0A4D(#T%nN(Agac7O$GIN_I|q&BL+T
      zxD$uHAPU5$O;g$v2K!Btyb?|@oa7DA%uAO;(7Oh>i*V1Ii|<x`o#iUHw)9t^KH;Vb
      zF}_u<z%>eA#{uqQfe;Sj5WgZgj3XhyoDT?e_5X_aHV$l}EgSEs;OJK54;;@nd%rV}
      zsT2So^x0&|;3gq%)qr<Z!MpHU2tH0}kBGX76WRF53SQr;BJJ}j-SrVV0;v$equ+}+
      zcpgC)PVwwbpEPso`7B(%Tli;VU>iTg`!_H+Gq{b;{!NTz`8t=a;Oz?D`3><W@ll@6
      z4)Jso7qWvJ7_Z=i_?2}`t>fx!e2%B1kwj!0M{Cco1?QuY9mv6<M5KaD2s^WhWY*J&
      zFA{HX9iIdm72Mhy_#3x>ddg<tFWg?oolwows$gl09z~ehGCQdU5B)WW?jqXh*D_C6
      z7=!za$13GaN)_q*=NN>Ii*PUn7ipBBVU79^h)~8Oe1Y%qCBEnSBfi4V_!__98$8Ch
      zevHTc>e;Bqcmp})8DkX|ByBd)!Zj4QYbO2(?)f|(;W%`%Y2tI=&z(U|UWNo^1i3Z+
      E2ZMXVc>n+a
      
      literal 0
      HcmV?d00001
      
      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
      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
      F{sU94-N66=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-*3`T7(I6d3aoC3jyX1+KTv^93QP0_vapbv5DQDzjfD7ASchFoA^kz*zf$(F
      zMdRYLf0XgN4Q@5jM0lY0`}&=8&$;)&kDp(z0aUOjVu|6^!1m>HeWHJqZNrmY*OJH1
      zXkwlkj;v{_Vh>E)Xb#6#t~EL}L_`=?__%E8_CQu_f5;Hil%tMv#2~8+u~iA$P@78o
      zm|<CIpR{tF1NB7F7|QP#W{TJPmT8;bK7)`ibQmHH5*$Y~35Hb(Dcq&)YV(myUcGgp
      zd5&ohs?9<tL9_QHL=lTa<V8k;h!|fzkPt_Ls8l+Twm<9{&avLJ42HBi>g!fVcT8Rf
      z%_Ib@k_7LA>C&zf-SQ1u?BxrK8cX6ao{D(FkO~Q&x}GtV@C-SIgzh-{v_Be88H!<B
      zhrM&7?^T;2r@vcdl|c+-9iA~X!m#;i6c)SzZaFXEISLG~!+Z@(cin18#LWh`hIo!B
      z4M}a}JALD=864{$@hkCR2B~S=h7(X4u80yt{(mD!*TEx92d0?=Tlaj2)(0V7Ttsa_
      z*Zb9anZhB^FG{Fy@ZbRSq|5-REKdx*iO@5NWtx+yYE#8OrLSP!^c~?6D;G!y#r;T7
      ztVO@kD`AGT){V@trd?qDGa;6+LEkar0nU&OI=oBKo^w}73D+VPceXCE`FD^M5Qx~~
      zB1zywJetGbkO2<Q%&^{lCls%{HLj#3Y+hk|_fxRptps)>Awk#vV$M+{L0n)m&5Boe
      c`5o-vI040ga|gQ|K{)zDf?Us{9P}%{0K$72x&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJ134D~*)%UsQ&X&oO5CTC)Sw;nfpoCpb6b(s`Xb6}DFo41&8OTUTVrIf3F1YV|
      z-S>?sZaB&W1w~s$t97ZhwOVa!UEj7^muj_c@BiFqwrqpn_xrxLFS&P~=iYPAJ@@SQ
      zJihSb<4+RN6n&YSSkd@Zt(`?D2G$1F7qtc>Md5HuQF}+*+E7!lqo}sFs-ksOs5Mx*
      zroF{Y4n=$Q9GM)TD7&$(H4<DOk)etvR%HfTmKt25$kQBXZE6X2gcXfl+RscZQxj}#
      z>u8#5kHZvKOWUed!45_HnemM+fpEAz5NR%I3O01EDyrQOjs(|KnK2mc4hO^GP+Kdu
      z+Yk8Ee(h1R1x#{=TEoFcMbk4)scdcUjMN4jJ3B&=4GRJtfi=MhHX<0dbw<qm8JXtK
      z?~Dutz!PdMYiSDyn-r-fin0JN@jJJ%BN&JTYi)c%w%pcWu&Jyi6l{%@c1D`<U|paU
      z!&482hFU|BP@qLf7;X-%4wkpI1_4z_Z+<J9lnK$&hH#`K&=^V1#}>0d^++iWE|NHh
      zp6rn%tQms|gOaP&MgoyeAYN3}b4rq<YJ%a;mdKdoa`ptk$ZG_URl%}Qdvma(wp~sr
      zC)gTjXbCpec7`HB03EW_KrL#)z@pknN2qm`OpK3O(9srYYiw)5!0dn^Kf80~N@1k}
      zdsb_xt!Va!NYH+aiH<dGO(0cKCh{cl7Umf<4-+u4WK8Yi%DS?-%j-&KS5=IGNQ^PN
      z9Ro=l14$c`Akdh;(-ra3N{Gf`jV*F=vlQv^6BYrPGQiHF18I_*4pQV7Im^WT78Q{f
      z+*n&*TURkJixf?<C`%p<s)A%!cdls&cGL;^6y;a7H3nK11v*0VJO0phSbY7`%(7Ek
      zl`hnM51?|wA}?t=*rMrlh@xTR`yC<(7F*;bmzxd)SM^mRy_JE?m}QZhJZ?Ht(YU@d
      z5>zgV%ZnV5myV#>g31J$Uv5!0Sy?oP=DO*q%s}FdC#+^sB^?c=SXWiMyn10()pDHn
      zT)QVf_n>Xk0F`6`ohpmw2{>n1U}w>MI@V1K6cuLJQG%BjLFYifSyV%{P<MjRl;u+t
      z9hiw{drdY-EVO8m0kPJGm_^6Y5;xT=nvekvoJrc@TeOsxf#o`&TH4kq8eyL_l%dg*
      zI0kfrHRf%JmrkG+Zd$HrZ;_3nen(jppa$rhRu~u&O^B{@{L<MI7P$%9aYSFt;wL?(
      zvfN9Jv{DYbL5{rHq7a=ZG!8~8F?HYmcsez?M0oZHYO!by!FXh0mW{Te(Q*Fm7hlZF
      zqIT+V(@Ba(3VOXow5)ASI}~th#G)`kedd9L%WEpi=GT-juPUvtsKE;6>;{}z;-R%-
      zzJsm74%mVwf7rGL{>pOy#>uDp*M%a@e)|ag8>gJ=ruA6Gkl3ij`3)xq8zZv2lP%gv
      zr$FC?KoI}<3H`848b!QNJ*Qc8I&Fe3f)NG|Pz(lcXC%~8Bz774wx}w&HrP_qSH{y-
      zvyB6Y<)$+gP3?P(Ny#0+%zEhzI$I9+97R{!SgbE<?AXvAX)ChD%f=x2a9*G>j*~(5
      z<WPH2W$Vfo(66JUpM59Sj}yRn2ARgC%e3%-qVp`up<FjzplDi#4G!c7c<Fq)NOpMf
      z|NRcjga2Q5c&SB$C{Ol!xkZC1UwT(sG{o-x!lDAZca25E?A~=24YhkWShN@Ad+8>+
      z#Z5QEavMhKX@M=em2LyGt?LN1EAoll+icZy7}S@dJ1p9d_LtsW7LB2?(%Wp&-n35^
      z-9ua4bg!a=WQ~-!n>4-sdmI+sM<Zb@tLN7(pIcg8UOTt+n9Ay-1n>hEji8azd&r_u
      zl<%g8dx)6rd3d47AF=3B+6HSLX|o?H8VW&6Nn_ke5vAX4(RR_mPNT%-$>SF7Fi%8B
      zOq2DVuxMZMd(qov(Npv^T%e}l$^aaugbP$KenPsWCE+Xjl|`e;4|+zLL(rpznb<i=
      zo48BtXl@HbS>^Y|9PrxP#1B+(T69=c2``;37WE~IUKX?Fm;IE_tyo@OTWcH2(u&&U
      zQ)kRvUN*aIImqh8;74S}Z!LPQ$BdfV(tc;i;MXnsy$l|0gC7vOjD5qRKc<h(1othA
      z{v=~Z2;58q-?8Y=J+SSuzbR7>N$gKB_^U<l_88m)a<9SfS@eE7x|slfXwgUMV>7}1
      zAB+AjWBYEc7XtsZ=o1;ZZ=a)^R*ti)D6dH0+rKROtjFji4*iY(!lEx_bet_x=holg
      zuPpjHeQ-v|-&pjm3?A9z<oW~qokicv$l*Ok)|5?OE`*p@K0}V|M~i+Mco6s&gOsuq
      z%OFG29!xHTiZi$jbXdySV_<SCy#~51<&lB=*tAd4r`I^IrLxn<4FoU8Qn@m&=U#gO
      z%d^yA88jws(Td|1%&)1l<qyNBPfp*?5K9eBpCGGeoG{E%d&vaDQhOZjv((-)dQ{?o
      z(qYRv0UP_6)CfzBl%Zp7)NM7BKD-a^qb=p{F=LPD>}RR{Wkx{)os_>H$6~Cd#tkq6
      zoPw~tAqej%8PqEBR;+IfwnyN*hux|$?gaNVPKg2VDAj?MI!N5b95Dq6b5!9`MKCDh
      z^d;kKzgZ{@Z%s|H)KoPMS{bgHq9gxLoV7GPpYqkz3~1Yw>8fmL39bsXNPHelZpNby
      z#vr)M3&TM>3n3w~e_bH#Z-ryn;qOFV!>gvNL*d(~VvsbBR(i-T&bLyBSu{=^4*LR&
      zR_Rqos8Y8&5>`BeGu6XvnPA*fvsD=aBjk`mtpOyc5KLDJ^a@MOQHc2RR|Qk4jYM){
      zO58^GJP(r*>)%-@@rd~wnL33)3lcR=8~mYGKYYnm9dOaTYJxh{tq>h%3hZiw9UxPZ
      zQM~FHRV}2Nk2KBrB|qP08z)p9YteA>$;!0?qz-Bzo!)iL9c}9*<QG?5A<2*lGy6Ex
      zFk7gO6QBqY59%+PO8L;~*+jF_QbgK@k&;1Fbz5y`V{>WCsy5`)n%5-x3CG_W4j@Gl
      zM|+PGkbSWlC3{xc+R)b73U?&O{Dhxve!EowwkHD*nUqzQYE(hD!t6|G1v7Mv33x2E
      zQbEYvi%V;&;U(@N1CTbcBuj<VYPUKOG5emd8dDw&H+F=K*05BILWpgZRn4!hSPmz(
      zat;n6b0$x6Ug<DOylRDNlQV>WU7zs`(=pD(g!Z^JJaOLejUi;^K~WcoSL*`d)shBE
      zcY|v>TTLbp7)8`tx9Z#jHG1bHEwxS|k>|!baq#F>*vY}P&<rwovfAh-zokx5r^3|+
      zYe+J*r%xW&cnC^TKo+EOhr^Rk<H2E><YY~f8Omje?BGmGoh8b}6^>^+2V+ikuS~5M
      z&*Bi^KlG<@;%~vyLcksxH4FOi0!v*;W3ftERb@prWLs8Q+$;T?6AH&A!Or{UhQbL^
      zupbPEvbHJJXFHDZOXT#1B}X)+(^Af`pHM?I$yG?;^)VEs9jiLmAn}ouZI8MdIW$RN
      z`vVbwOAt9_KaRt1(qLY7r8-n7m`LrWkVu||N8JF!*%tsbk4f|*ag*pG;E{8y?QEB5
      z1u1hoi)?@+{!q7A>Q;3djvOIks6|ww38<=(*2mQR1hbmtK~*RmDalrMsJq<iPMCJH
      z)8rdV-K{o*6(en>9UXxU&;&iGlrX31luI&PK{|@bZQ@|D`QGf4hi83Q;yz2=Z&;$X
      zqGplglDx<wgXUs{Z7{w0!`0bp$Jf<y4cjZYj^o+uX=SA?y#pFZ7{n-?z1}#cIRZ#H
      zBXjRokHT&W1qTF`rDAHkTXn-b%{Xq1ZM`k^n0nj@1r%dB6u9wa2814;1;z7-+9|5=
      z2}Mh6QtWZg9v~-8rHxn#hz7^zCbi2_Pl;2K)e&41K#sk2m2B~smim<-o;Q2poH-RW
      z%NJIcSJcd@n!i}Qm1iw=p4udnpR?5SGTGDK7RJ3!TdO>L!BQ`(-@v&6|A@m>IbpWU
      zdf8G3&;%Lqs-=FbUc)S5ux1ml%cxp;_qwHiul^vZ(UwpnxMZ&cv-di4QEY#-)SK!p
      z*i`X!T7rwF&JDJ-w57a?UQ=YhXQ;O=^^W?p+!UsS4z324$zbr(1Qe;_IqI*LdRP4o
      z=NdezGay$uJsih`R4wtS_Z7|V2sQ>oYoS-*5U!o-w`IWJEVznC7Hl=C!c^+C#4kA!
      zzx;pe+CWRFX_7~MsAw{-HsOp#a6<h-inRIT$#VZR8@PDgAB)%hKjN*~PV~=8j@pdz
      z4>_fO8XvXRtv-e7$V4C`*oOX#rh3&U>NDZqw>;_#91k{ac3UhNVR`v)OMNB!EpZ08
      zK11B`pUm!b+~X6n&F&1f;AYsXzNXm%@4vV%P~XWeGoE5Xhb^)%6(D6_s~;@&qxuP|
      z3Cbb<9CvIPy^r2tKrZz)E8I6QZnDQ_#vyUvpgv)T#ZGoX@^F<1?StDyJG_|fWe<DZ
      zoYgapXYP_M&Snc!0;0_u+uEVg3*$$dmQOFK>>Dx}dFNctbMqkR!VG6=qiFG9&WAk#
      zU5;84S=bs{Ul&?qFcifBKtnAq;9>R%drJIH#D(0bjKLO%TkJDi4BNK?m58>!=6x(4
      z!N_J>fE_pUm2hs|GS5u>nnzpg=Y5gz#E>-MgQN{f=VW92VB>lJMAFtUxUqHe&ddAp
      zSa2feXYm0%!Oi0{yK-_LBGC~v*}Pz+xvk0KLY|0Yu`kjxI<$S}mdNS{Sv*NJg$^{C
      zy-&7yifpVvHr9K!u$!mt;cQF+f)H_r#WO|qx`cBg&Cs2Eh{cC;G4v|f30J5QoYrvY
      zRht)jDMK$$Ri9<?;e3RfajTmturPOOt&zG7?Lmu=<WjI-GUneyXpuG*)R@X;7MF8{
      z%`<85P^pno;?jn~gBR3)5NLBPt`r`X3$ZFg1vei9!<>P)lU7jX&$GB%Y>j7SM_`pW
      zgI+#beTF|gH;Zey&ds%%FC3H5#@NJJ$Z${*1c?K@d~QWm72@QKH7Gp+fJ8_0aTeF}
      z5=a9!B~Xp-{y94`I2iIA&C4u4UUuefXlvSFR}cu#EVp=tJa#phS_9#k28$aR!lzOH
      z0ojNPS1)E6fQ2x9B^&@os5!JJpBeDx#6uRJ$cV7)!W^56_H1sYF2^2Q;$Z}qgF{l_
      z;)f+g>ZI5!W(4Oq1NVm9Zt+PX2NE7F2sEw^#tSKGLnj9jICI$Ihy=sVIi+=_RfunS
      zt;OpkS{)R>=$sGVR9qW3Lz`y0UpC=nGGOrXdfq6y1(%j%GqSIlhm#R;JI&(LMTGK7
      z7c8i%EGw<6oL{}X9H_xJ;WI2glh4B0HwBGPfRciYfbDXmk^#NqN;jXAW>izR+D1#J
      zs!QV6ei4L@YrK3mj4F^hUy!*#(ZZjDLehEqS!<L`sPynfNX^-N=x>APva+RZoqt_(
      zu+<;mJp3GZFnkF-7`{|dS-Rfe)Aeqe`Ag3#!L#MdExtlL+d*;9HgWpG8CO~S3*n61
      z*`?))Yw&rcWpdKEHk{7aqADaKHSCifaP<&hZ}APXLP0q$+2<{&si>_L2AES?S+%gH
      zLU6dr;+qW)mDP0>HPxk6%PVSX=GS=mR#BT9!UzGwfmK1{O7YpeT$t((i|-Vs$}fXr
      zJ_^?%l?&#=X|G*SQ6^iy+v3f#WuAYGi2Ob9&-q^C*v)qHeerU-^fINmf92r^6!|+_
      zSGTsUYxS4G%T6zN^20an3>N#nyhR;~KfKlAhdB!E5@>G^O0H`}QYob6Q{%9q9JbIS
      z@Zx!!#W6-al?wqj7wo2f4VHdpW>0E>%Xlb^$Dm-sC_HFv7GD{Tv8_E4**brFvOrF#
      zC<NSL@lGM2v$U$BrcQ|Tr0B(6Vn7GD=k@T@I7USDjp8q0oq!~?!uGlRil24!Ghpxx
      zihCjI6fEA&&p}N~&}*w{XrPQbINi$=Jb!KR3;ZHHl$9+Z<jsbFW+nq*G<aMMBd_+E
      zjD6YSS4911HFdTlx`Kn?;om08&%(BM&cEZ|yZLpfTm!}|R|##5Do2a|z;8e~nRB1N
      zQZg<H=OTTW<nj1Ti{IiufuJo?fU!q~Z{)_#U4k*zGj21dGlH~nKSSD(6_OSIYVo@a
      zM=QH2m6k-%l$nR@b<-1sS^PeK=;jX+QqebHLUNTqLIr?L=f3a3fC#vTB%?mV7dCNm
      z2LG`5pK24lgyulFCJ}La`BVPP&HsW{>UDS)e=g?L*%De4iios)Y4N}LD{K?eh?v(1
      zfucE?cxK?tLDKz*=LCfG|FQTR{uWCbyx~p#3<{#?;U50Z;_szKA*;HgqI~({n$iUx
      z{t=#mAZkiG{dWG*$Q<3H$<j!+!26n0SzTE>x1!w3hih$Vhe;?v87vb0;?anZh9z`R
      zqwN^@BXEq2=FuJ~9gRo{N&ghXCIaxZM|SB!Liu=fHne3&Fw)u43a>(HJk1HYbq+LM
      zuQQk*w@yjR@79Q*%#}g1q9=a+G#h^RYVkbM#tw!@Zy*|0ky@YfKqN4ytz%6fm3?&U
      zA&L&jpe;}`lm@dP4l}vFNu$^rBsmP4INa9RAz2hBG}LOS)M5R*3K-e8awQy2bZj3>
      z(f&!3p5h;9JG&%1?sz~Mn81F~R2-w}AsB(3S&QEpD>~9*`9)JDqnsv8CZ+?*2Hqa(
      zUDMzsj&@I&+x32^5NW^~jflWNmUzjnIiO_h2(-p!qCrx4Fwh|kDfHeDo)?C^riyfb
      zo<9U*yhi4EK;fp&Mk%(|4Q+t9pG}yQHt)lXvU;c?jIp)^Bw1oWmc$I*v=S5cPow$(
      ze2K9vQGdp~N;+=}@Nh#CcoLib7!+f{ZX$fJlm?d+t0gZ_Ys>%)#oZ~njOoUSX~SqP
      zqoeS1|NiRrliX^wyg&$HH*$TKF(xyklR|`PZd=uMKo|DI4?xtG2H^*|0GKeWX8|)<
      zBVNQ@oJMeA^TYaqm&7_P?NKrdP%F|VCz&)egx>iD1E)H11JEnTtBfa&dOf!NiGdHs
      zqvzt<LmU`U>{8?D-#8Wjrk(09@^74ueBTOvw55;HRd(2)W^7RezGwU1<BHIjdR=Yl
      z`5Gn39uxN){~~k#z#M7Zy#NThN!P%=)3s8^S2=)xhmuE)GUR#c&slo0u6OI>U@=mb
      z0p-8*JCK94^b)-k9^CB8qn1}xmsgfn!{pf~l^~=UhqUoc`glv9pqE4MAc~bze_-7g
      zVoACOm-+wz1$;VS=>}sRI|A#BbrhgYmJVuoV;=c}!_KA;A748F5EaqQmJW#r0S`nN
      z){gxI&}sn$Ukx-FV7f;`yAKV*6){<8+f<lv+)W2~G^&jEjc2p{(1iH(#h(_fh$9Z}
      z5W0pf9nqbTtoUfT@9p0*fhjW>#q_*TPfFURu*B4AMD#jKuh$6f2f?eb_nU|@4$kb|
      z!~^60KCE%uwiU|9A;wiQ$WZ=vaE52791wjDhb4@AM(A^V$I~V$mOb1wB=Vv5$3K#l
      zjz8H`jx2qmDYwulNghWBpjJhnYw7d!`B0z6bqC5*r7klAVUyZ7^&N>@UzjM4H{QNo
      zBQYlwY-y_K=x75sduxriF(+g`;^+ZllCU{guCf(n;$`xclw4#w<RXx!5Y#z71uLLD
      z`QQRQmd_~A?k!)4nBVv;!nCMiHZ3ZBO^Z5T)1u1Pw5aDbEoyyDi%MV9qPo|#C_gbR
      zDsfGV!dcUzY}T}+$#2?yO`9)OyyiD*c!~17LQni24eZ9#1mInWUlY;F|GA?y@e!K*
      zFuF`r@z;x%P`c-$*)+{O#UIpA&#)(|F9F6$qy`rrII^2&7EatohZe$He1b~0(cy(V
      z=!p7mD&0n9g^yBMlq$B-F?O$d8`b6ccY2B)6Cb6;K1Ym>mlr#zvEJwCreKU#$!~cX
      zqt#KG9HqAWPUjP}u3pQF7;UJnH*;%abSf4)qh2Xx!>;J2v$oN>czAw~hZk<6OA7Ti
      zx=j9DA%CutKUWtzw$ZiHyS~u5)3cp!+(x$-s%><q{JFa@N?qINetG|3q3a3STCby2
      z9iu4Lk5bHZoKbpAI@@Sx;dXj*8~rjx!fS-?bRtN&8lT3rfJfHgWLiP@HW0F%is>XO
      zqYkRY=L;v$T8vmnC!;+Le=o%M1ec?|icUf4_NjC?+I#Tk0em$OrA^dLXV6YMlb)ut
      zXg8fruhKd6dpeiiqVwoo)VqI37oqO-Vw8Mdg3`-Nm5VM?S#-I|qbtmDPPY$_o}p*u
      zTv4(p+zVbnZ#O+BhmYR#^lNZ;F}*=A(2L~2k)u#L&H&Hjx6C{+Z&aK#zlqT+hBU95
      z4oLGm({V-V52gbqd((70QF_~S^6>62b`LNAX7}*+1G|?MrH}2NH%kAod)ZO?)b3eP
      z`rPj2MCsplFE>j6v3rA}^k2J|7o{KU-r%SryO$qT+U^aBDwo|G8dX_#uOO-{yEiPV
      z2HCy6qAK6+4Ueh<yXT9l;dXEDsM^Qw?Gsg_?B0l|+Sl%ljH)rx+X{l&;&rBx(W{{=
      zu7NhV7Lt7(<n?;U;|<`A8)+8G`RCHjR71DWGH}33x(yt2J2>JFoc5h`Dcyw`cjMP)
      zx}UnRt9x)Z_u`zk(Ca9-|1+L`3~u>?9z=caLpcAfIQxfD3JO%{5jBynPKvdXt8IM8
      zIv&_LNT~^;8B{(vLR7%zB7$n-5H$%hc4tgYmgYIi-Jzz}4^cC_)gimKs}lR&tVvri
      zgQx-jM6byFz3{KHFs8~OO?S(*379swTOGZtaECgk9uu!G>{j!(sRdmKS>*M^ZdD^M
      z7uMs&V)G&=_2OYbt;ZKgEoup5<xG6GvLsH^VxwPQ1U+BEsxO0{uR;P}rE>ZmRf8(^
      z;Nup06H@pm%={Z9=6y)ahjbZAxkbhKjV8Z5E)#1gOD$8!V;|=xdrF;<)ST0?s_fAv
      zO60PX)Z2>lU!dM+2C8L`ibGXuc@n~r7$Xq!vDX##QPmJt&E2XMnx{9kukcOC*J;r5
      zlh9659e^R4ybP^C8(jFPTJRh>)mG`mR5-<Sxn_gkf$6@7arz+*;NT>{^$7ttnqB~A
      z<A{D4QyZRAC#OK!x<aRc$WDSdtzQs3`v;NLFNo9Crueps;@ffpi)-%(I=1}S>kmqs
      z>`bnYV$}HLiumLqHcg;ny5dwhBefMn6;(iPHH@-RSuLz!AKH*4$g}&!=c?ZLj7*!H
      z!si@yZa<qTOJQJdX8(RCqgEw8`H(on<%+CD)%lyr>9}9_Mqxr4l-wl#7bT&j)AQ=y
      zlZ(<Or|`eH-^rKto;;)9$(Qsy`HJ3?OZuIBsk$t_`B~V!XcJfAJ}}w6<U^H$-EB8z
      zm^~`Kag3L*q=XC9<?4z!tYr`bfi+^{lQ)P$x)KWM7v1WbU4;{E9_?Yp^Tp1Aqnv6k
      z<*7>AM;&c&wO1OETxo>5mi%U=>oTr%eb1G4ruJg5G#@K1z)HtrrJ4a&x-q`eO-V^B
      z#*Rc-^R}y-HSF<Y>UO4nBz8#}o%53H(UpX=NGt&0_!It)@oswfJH`V_F|UpF3L2yW
      zG+Z^%Xtg434S#Ztd-^}it5W+nno~7n|Dm*fyOI=k$yacO!uKX&EyBL#EQjrLJ>?Wa
      zD&V|zkr%x!=%rxWShnK7ztBdx>Le<F-V{N%PjOgsjbZA6_!<u;*XY4}SEpdw_^t)M
      z>(XGQ<0~G#@ZLjeYj69SJsxT}4-C3Y#5rkC9~OIxCzoAMLwBf0U=_CE*Zo>|s~uax
      zo=<x2NW6GD^+FXp^-LFx>@zp0EfX<pcTD|yFl{;w|87&)#kC*azZ8G@%HY#~I&G#~
      zUSRa^V(JY5J2$5O1W!Gt{$j*J?DTtLr)?j6i25L=KEmj~FW#X(sh4Tp>R-ih*2F^}
      zqCWR|;2g-GFN?EwsITk0)i=dnpI4rI8&lu=yfLQYZ2V+hZ27Dw^Za+vXcGzK_$=+q
      z@#Q>;r%m{`o!!11jLF9HX@lvf)AEL|_gN0Ro40<G&vM#*kMv!pzbVE!GQl0=A+p9^
      z#W`3z2XLQ^@!sfW#dy>X-ml)#&0~sleYsH{7vlpL<4taii+1qTdckmdUe=23d~i3H
      z6gz#+C?6K%**>Se2cCnTjB&4s@liYY=z5<s##P-szj%;uka-j11-?O1J~qaSeS>1W
      zR34rX<G^A=_X3$1T<n<X>Y^N3abkR(7&jNgI2l563!s9K0Nsj1DT{HNr|B;8+fD*^
      zM7h&;5_a%<@t*GP=971+Vvj1$(lfm>tvSl4Zl(e`QJ?d`kp+$zZ<^`tqN3CpZ>AiB
      zdvR754d20M*LU-|#U6WxQ186O1+E)tr@`7_vch9f@1lE(;egwSUg*n?@x_Kq`7+Fn
      zb7^sQ3e_unqUy`;=Bsz554dhm1NI2v#{M8EVYJ;eI)Umf4ii86JQ6d?25&3Q^0}jY
      z`)0ZroS|R{M%f#=OEzM*>{%f~SDf9&cM0=!&9n+E$E~!lxTrgLOZ^bOzndQ{u!KQl
      z{7{S^F;1;GUHoV<LK2%w+kH8ZEAg9sIfzXMUS*ab^!R2qN6)l?#O;vcTL_*D-ENkT
      z@e|-2#5^|Gr{X)x+Rnd}O%+&XAI_E)g69)zMRAUvDXxMIr_}WL`Na?k@iygWH~*&g
      z>|E7FV|+OUx#-CYS?eWv<I56&yPf9T3vwYxxBv83V)a+!tLH#gUz6prRu|O?oT)MX
      zW0X5K(_mpx^F(*^+q>fL{sJfWZW=0p_`M<gvHckQZcmlho5^E*YG4#!cZ*>4_v<N7
      z(AJP4aQP=tL(q@h&w<gGLdwH7(-~=+uTc5|=L^L2T{NoLD)d<~{u=If98i@1YwKA-
      z4iOLkVDA!(-Y<I`Xgzr!<)1dwDM%Zr1@W{&7p)O2Ac>><PAu@+tcA$vQ99h`j%l7M
      zN^y4vHl&eB&eKkCp3H)_Gh7!x7wwIoOSa+j?5*VDd3--Vq%G6Fs&h^Ixz3YT=j(ja
      zPSZo3tDF(%I$jUo2<aa!5eBK#;1r)u`RWYvDMYO5EPO_GCKal4XsSAo4pryV5opWQ
      zMW`yim@47-G^nd6q<%qb)YY_6T|?)>E4oHqN4KjRsY~5NThKnBZb1}!EA3Ku&`atr
      zdR=X%cff`pse9>DwS~S?_t6jP0j1T0Y7lH^KH37cRryc{KMu9!Q&H$X3zR+zzmG<_
      zca7SPFQ*>ECq|E})nMXIwNssj;`4LVE_FTX!*5qltNYY1QTG0fdKUkCMeSB^p!E9#
      z^=tLHdO`h1y~Ikr!XEV+N<v@f1Job5NWH-`&>o`x$mQx!e3W_{<#m7NdFnkrPQA}3
      zs*g~I^)a8J{=pZjfATfzbG}i1!4Ii_^TX;J6kmMHyVZaBH)vl~-}7tgM}ABF#D7Km
      z9$c2snfXh0@OSLgiXGa)E}Vr&4`r_&!P$C0v|}0Ok8|}59;^@Nd|ifi4iC|FJWMa<
      zz4bC4sZZijdOh!}H}P0~J|Cbj<MH|`o}h0;|4u$gZ{bOLD;MdPd9r?kr|5Ths{Sia
      z(;uM!F;CZ@@(leI&(z=Y!4AbU99dlK7|e$`hVtQ#QGA4BA|L6P#AS}dx!f@u?HsOf
      z)bJcfJs;&*#&aDj`DjNgALBTcs~nrS+Hn>ya9qpBI_^UMey(#o%ZnT@@^Owgx!&;+
      zFL8XuOC8_wGN<OHP8T2V9Lgs+eZ0syh6Bz6xxslTH#v`le3$b|XBGN&-0WP&CpsH>
      zwR07>f<xP#8@R)HCWoCDaKw2rcRDXc|4Lr(yq7mPxAMu(M|q=j2cP2HiQiB2sm>Sq
      zbmyzQ$@vza<@_6;=lmZ&-}wn&;QTjV==>VLf8<MDUcSsVh_7%B<11Zz^Hr{W`4_JJ
      z@Vk(&b(Qmtu6n*%d_1)XSq1oP34hVGOb<hr6&^Esd+Figi=yW<c{B8QCVCE<;~J*-
      z*83pduXGL3Bj6RfARVXZk$CHd92}xYY01mJuJ%{gYCnSWchuf`U%emFu%9Atw^Z+s
      z4B}Uc*@--yr8EuGW6;Y{^>hpSOs|v9)MNEHc(>0&f`{t^Xb^iGb$UFPk{hR0peN`;
      z^5DGk^+e#D#q%74^nt*@%Ma6NeUP3++58%MMS3!NU!pffPo-=<6uoJBI(jqEo1tf-
      zw^%#%!TJ#Nw$L&?MjwiTh&QN6OAaQ-F;pF?O90t&)YEtRFnu_lEu(MrEIi9~ZXlmN
      zLLW(%%S*+&RL{oTvbZm9Q=l9f7kfVyfT!qIJ*T(-?EDL8lMPKJ+2X$b^A-L1&v27f
      zF*1(Eg6g9@#wVDFl;sGqV)f3Erg8Zkwe@bvScwt^^t*S{99ZUJrxTuGvCCLV7ffWa
      z+XoMt?vC+aV!ATX|6@$gi$4`xrsj$*yP``SiH8qfPd+#u#ZHHT<a239Odq?rOYLtG
      zWc=UF%7<Z>#B?1T@y+xw(&K9POt;Sw)r(?!8PetAl4`y}yaAsBW6K_;x|m*ZRZKVH
      zftJR$bb!1Hmd-#Za5v5L_#6dp*NOs<rwM~kT$~`o8rx(T2N<5>O9ikg!KdgZxTd{~
      zo-Xi+)yl%Ew!IsaZtr|qTV<^$2YaZ=><*X~J8fKCHZEdy-G#7Q{aRh0D+d2$0Nbl)
      zy0vUU$dRR<(rpMWT)SyjVi)c91%VI$jV=ey&px<Iu(g}&H6CgQTz62ULn0E#q?zt6
      zIMg8Y#1SK5qLXj*B&=cHC*by>4jhP}km!>XiMps|amwXQ_@gQ3#C9tF-wXlLV8^l2
      zB>XJ+@5w*_ha)!^zAT9$!EHkf{bPD<`~u`baYgV7;*o{WvWr}C2dcnR;Ld!w2%T?M
      zThs%*9wzS$K3fkpZI{k9?F%{&$`7ssKBR0wmhLVnox3TYyU54)ke~0RacB$qK01i+
      zr^);vs-GXCC1_9JtrX-aoyd<+J3mSrc^jR_F}jMo={DYu;;hH%A>K)k@)PtpKS|H>
      zQ}hZyLvQnLdXJx@fAaJ6E&p11`2{r?)r6y9bjR~c>R{9h&Vlh=g7yTI3I<_>ThN|_
      zI>3$mrrHF9d>+58E`(9Oj^9-`^ZVG{hw35zSZzlY+%EpRdIs(DsCj#tKUMFb#O+<Q
      zAMh72{9j_%|AE2(2FCtd^#gy;d+`rEj(@~A7e8<j|HOxA%}2nnm!qxJPM)t_yij|&
      zNoVt^XwTL;e2yN>*TC?1!SLUshx23F$1mu8_(eU6-`1n~6TP2SP_MaA?L+i9Jq${G
      zq@Jk9>jR;%i}Wl#847fYu0+2|Ptw(Tsy<Fn*T+LmH|c{-S|SE>12vg2S$dT|8HNfb
      z3q3JZFj;z)F;uw7#Iubs4h}j<7aP;zq{&e9r{Eb(7S8S)Tt2$#J?he@Vy+vP1`WoD
      zc#u@_8IzEu9*Qe?xB6I}Zr-}pKVa@o!wh^>MOT`+S?U|QSf7qdNw3Z&k1+{Zx;g;`
      z1|eH-0-loGPS0BQPMpH3q*AtttR?9)^qKL=sr(HtDa(50Z(w<xx_p5AjojQyHf&Tf
      zXWt|1|6p%ea{;R|4V!o_D9<DR`Gq((E8t-Z%*j!GR{d^rY+bxvpY!BS?=h0Sim6%7
      z`Ca5#ED0?9aM(ZUAJJzagM@sMk4ESVXe91(C!kHsg{NK9vc3rLSzoL#K`UP`9zjZ9
      IdgR{!3u0M;od5s;
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7TX!2*75<Jiwq$wi7`b+n#&%1R*19+m&BajLO|fD-5%`iuiA$1#HP(#fG4e>v
      zj8co1OGBZh=>zb>C4mxPt-SQ1W#Kky*Rpw{YxT$Q6DZ%A8IP2>W$~anx4pl!_qV@&
      z^x1zt-U09|-iaY1aI9iAavRzWZ7XLPZq9M4xw>7uVd{pRD;DQ3X_j8wj6o6TlUBK^
      zW>s=as~bkyjiFOuWY0h680Cg-x=s4iq~LoBbQWjNU7EctkeqJ;6kXf2Dw6^|=W3SY
      zYL>gKRU1Ye-2wv}hU1vV35Ft(P7v2NTmhvxJ3A9cuR#Ak3qu!(Zt7<QM(6hjw5~bp
      zxxxZrwTdxgRt(4G)lp|%V|aV;k?VP`RvT+;hRwseMo7Ue#W6f|Q{Uo7fi_d7Wx8i+
      zlS(i1{9H{p5{P0%#S=Ij$5T96m^qWc5gd!*sKAjgiRc2un$yZ|&2FlA8qWxHR}8n{
      z@liGeCR6(vOaGtgbwMDd;sE;M$Ov>4FH9eQR&I`|_zL<24$PaDvDnyLHSEjUYL(X|
      z=WAuHx~$ozTnC$qyKXuH&xF_hFPV^3MRG%|AoPZ7R&xtleKNh=jnf#9fhFqkbg*}%
      z;_LVZDP!uqr#)p~Ws~VP7J{u9`eiPYDw6)}c@>YNKZX}5$d<|$8`bK?nrXR)J-byl
      z>aJO{5;%(y>6}+FfWZW3Gb&~=C(vaXTW-EuD}SGPq|(>(((HnY$0YK%NZtNAdQzV^
      zH%<4Fp_SJSJ-mlH(Ojy0RZ{&>!jdIR+a%+UrP^}~dLoXC3?*zm)~;NwS^KO*CfHe{
      zt(31=PNQD0*{-24)eT#dDTgs7P{fEp+{?4+5|a|9#1o-~6T>xuCtG-hYSpM{)uOAp
      zMrf75RiDG}syK*4d(07$Qi-Lm=L?1Oat!RQqisl*Zfq?z+@-aAtzqd-8(Ik?3Fugh
      zfg$y_ToyEUT}1`!40O}9NJWasg#<QGje%8ady<Mx$2B%pY=U-Onr&;%a;@GJ$b5mM
      z3i~A`L*_N?e|~Fg@>@0Jm1RatWr`|^bByZRWxgIfOr=RwkEZMXJD2z9R8o0~B3Sg^
      zhmOcg2YE>^OTE3OqKOrnnfz@eP{2qxUdPX3xGC`Tevy5_^QGbqyh4dJ>N*P}y?-IM
      zR^;q06~B~n?$o`Pj^!=Z8g|*3Gi8_ehRQl2iN;e5D9T?4x>(B?;+%K!{~>||*J|6k
      zht0<Kgl9?lgm^Y=KW}7<cq2Q?8`+HBNOf@R=8sP!k%u^2AhzK6c;+JvXOd6e$5*#8
      znn|X;N%jLCMR1(oBou!0{LY|<EjoxfoZyb?yCa9MaV7Xyb~1o|m#IX!cRrI%CLZ8a
      z1pmZy+nC_8r?s5Q`~wsJLW0B8r|A9!XRm&QZ|-LLrnfPjVN~a~asD2Zmp&lu1Ou35
      ziTsd`kPn%`0W4w!7cqtx`K%Rbb(vOI7~rxO;-DW!5F!J@w=qvNLEpt7*yG+Bh$ffb
      zC#ZixCpUp>ZFxq+JYU46!1W}prCt0J6dC)K-ADXa+Wh08|1w^p-*;%M(7WIj!(!nj
      z(rJ=$-Xr5G0k7|J`Lf*Fxr^>SO5{3ol?T_9(l%Z`^<H@EAW^^$W&@L&HI}-9qgZc?
      z;&d3r_ptJ46yhlTJBe`Xktnil<r%t-1H-q`Jv3a(?)*)bt;9%IccbIVJuH4%ygTwh
      zA0ANj`zVihcqwovJ2aq_20HG;98d;2O5=)`7iY|CKpDRK`QKYI%zIk5m|Ts?)v4?s
      zFhLtxI5-6t<7nVHyu$i#vARu^@I#)y%Gqmd$p+rWk3AyJ`YDE*xJA5vkNjIiJw#GS
      z0I?5I#N*VG&6z^9W4z~(S0<Neeh-atlx2%3ts?l+x!Fc~BqaR?<MTbwNH6|GD?#7!
      zEzi*xt_Xt^Olr`(tjV-|h-ro;A-XczXm;mAyxM|F1X;xKP8(cT2-hY5Oar);0IonN
      z+35Qs`jrQf@ee}?8Iez$z>fmj1SyuZMOcJ6ejn1fI7oyjFSx_%PxnphN@?nF-xHpM
      z3Y5@KcB9YVLq89*(%=Dp8o?V8F?9Iu=l>2iC!(B8>^#8F6$D#Ta%-x!^#E_Oxw$tg
      zO&_)&9gB_ymQe~!YHeC6{aU^@wD&w)FTezP8S8KP{Qi!@`#m4wKVTTQk>Pj}cbMTH
      zncttVigzi8KjS9u;!XSozrkPI__`DDmEgV<lHdb;FyL#I&z0m*z9Db(t_W`Z7qgyz
      Ad;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F{ZkrO6g>|%Zh}js`LHUsCTVIG6jvMbC21OCv>_$hgp^LEAJYY1aTRx&WpVVs
      zYG+zZn@OiX_mArI-rWtZ5a|HJ!oI!toO92;@A1#SfBpqv3E!%S3EZmNZDYsWHxCS3
      zdPb|&Fq*EjZ`Gu0luE^tboZrOa;m%1+c2x1;~p0Fnhh0-!1a@9?~fK3tva?R4?NBj
      zm@5t@TsscV3yj>iY|DEfu%Hi-mnjP<Yfeoj5XYzn6`DX?&y>$W;Jk)27!epNTDIJ5
      z?^UGx(yTP3z=fhyH5+BqwfH_<RJ?7gC2;3|=uh#9N*J$8@3H*ZY&X0$tGP{Pwk=N*
      z<YhhcU6Cy`8m3)0N}g-k^?U;3m{9SdfIir$b-PXlu&Ej*aY-Oq3s~OaPY`jb-E2Cp
      zCu>pa1g7z^ijM?l2T(*ZG|b?Nz(vw(HP{=UV$<B?GA`(upo+F<HH@Ow^71OK38Z>U
      z8^v|Zs`!*z;6LidYq$YjK=qte*EJ8Ray@FyR%J(4z5EHY!Zj6Hk`)aOT_jmmSDK!T
      z_C?^PUdRm5NH&)`m{>ok%BE*Ic1wjpguZ;sF$!DVCn}a`NC(*2vpX0%fkoWp={&3A
      zmcWz`%bT!3mtf1S)@rV7wGvpy9ge(9gH1J*Idw%t9`|XXV%ar;v>vp90Zt_6{q4YG
      zARr2~r&|7Q7FZnKie<epyn`%ujm16|m_Ah{RYfyUF{`@`r!Mf6n2rl#M?x?1LwAtf
      zd&2Hf@lz50D5%dq%1(wfv~k~0FR(N~TDOPM!J|zru&H4V8{8+h@btLn9Jk6!2Zp`m
      zuz4EJlGAppa>L>iY^G<*A}96&GvX=<iPPy%`-4wG`o%{gO(0#*(cK1O^ac{yBl^t!
      zj^wX&7sD7`&-<CTq2MmX-b0Gk#)D{lKzRI0_^32zxQI(3<^p{SdZxU_<zMJKKpXMb
      z9{MO+@H|AJ(!04U6wSG**GR|T;_4sxB!<6{>BV^x!AW&-$RNtkF*l(s_!a&{zuAGQ
      zH&}d?{SC<@eD-Yq4VGV}k8rz#d-KQGLB-FZ;RPm8@;R;q+1-k#@Hrk3x<>wdfrq|c
      z>R%u4F7YbFn~v~q=HBs6ckn3JOZ+{7{y=B@k3MlWNbeG-Lt=u&I!TC8^q4OpPI73}
      z`Xn4ubIy>2nTUiHWl~`gIja6kRxzpc%GgE{7X4-H_%fCQh^~y8u8f&b1`*&Xz9OHJ
      zG!^WLl3FD}#XdoL=*ih^dOFv^vt#C9I_OV?<kCF)`CEPYH;99KsZxFiUk^@y(U(3;
      VD?IEY*>ne`Q?tp<Z+sc${{Rac8Z`g_
      
      literal 0
      HcmV?d00001
      
      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
      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
      I8N%oP0d)4^vH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtWZBrX%6g>|lYzcu9D3qj7!55l@LabJ;q);)1HW~p<n+o-9lWfC6*v)J<HRz0f
      zQvZ(5C{#N-e)dN>-uvvbSxBHTk|EiBUd}!D+;gAZfByaBF90`SD(DhORg6YzTYaiF
      zQ-)@z>h)@>W|>d*vSy|7`CQ&C?P&IjTCz=RFS}c-DhLQ%J-XreI)T2DY1mrR<{bhv
      zxzmGWT8q;HJ-2m3w-*KG;^)|xC<p{HW?2iN8+~CY2n%$_6NO#~41^IxkHE#8ZfL8G
      z-J)haP>WSfU?^vn)M`PsbiQ{71NN3)7r60)@NL=<`Ebe7R9kbV1a8H1ER~ej8B03@
      zRn@4Z^0uWLm2`G9(Y8t;wA?IdHCs20x`N9B!xBh0Q`t3dMnO~{e!93$SS~~eW4OY~
      zj0@z?qiqMuZG<<u06leS7lBCIJXL4QtlO-(OvEn$&DBhc=0sMYS8dp4rfSxyI$~2`
      zw4&K}wI^z$YG?G?mS*J}x~)-pM&gOb?N}kikyMa)p)Sith0MUZgfW9@f&Q`+<q&_2
      z0_PhwW~P<>p+lI%>k3i=)2B%9+YzR2dxI)SPSC6DGZ|u4-Q_ff;%@aDwq8x;^tzo^
      za8qFLxJ-R`8@Cj^Lw1%^-uf`!#k_!Gn@g6Z?osA(zc6dXZLMUdkBH@tDY#9v{EJ;n
      z3fys>>#tKbai)%7O(};v0uz!bpDPcI9mD+ExK9@F+{=DkVn4nwu=GFum?$W?D-iPn
      zW+|#;{iSl*((3gPGFahg_sCNnlPfTxY#1NlLsFAYFoSdxxYE|cE@GN3pFF!H0v9x+
      zTr+ipP{&&x(ngiekwPbiN4FfZI8RkVbQpdd#xNFGjy%ipfK>Bk$Yff`Qj$U#k64mG
      zQ8&uepjAFHxsoJgXG({Q)@4^`PJ}<Zb|HL@FBN<taOp^iU8-Sx1(oKgWizT_8oJAn
      zdyIw;Tg-1}fz6Y6bx!KMI+t1J$I{xJD5tY0hVhoWj|{F_h0%)Sx06VBdWI~xi~V_@
      zFYFG7U89q(6H=#;p}g6!O4^FfPuJ-2Hv>Kz<~Th}QBK|T9zq8oKbz?)OxFr7(04E0
      zt)PoOKqz@Y|1-a#{};OJ!bSQXkUP@|V1d>yVvxp0oz;jC9{+_TDm_Ao|0S9mp|Jqn
      zjY{+qMGDeL<T=JRlE0$=`ozpg-~h3oY0wGMLyLiX68xsK*aMGX0$1gH1TSGyhK^85
      zFH2$(yn<I{u-7n6t2muG`enSpGh90!V@<~3^qHcQfWUQc?>yo2+~70JcK?Ytf5%&0
      z_#5ftIFEcdgB}j`x|@Cv{f?4c%;$T`hy|EB6kulj0Pn3nM`nYsmgfVr(ZD|L&$faL
      z5jjww4M0T{MM}Kn6KBd3XG%)Kgr}q=U9@AE1j~^)QL67pSe4?CuR0L>j%cwPV#%5D
      zeXP$1qd_J$%hma09}lC!79+<8yM$@rGEB*4(b?^>iFs^dE*rwer`V9CieZzA79fNn
      z$uLMlQ`5S<T7GE~E6#q>lWQNJNyTOlB_ncvwMM19O+wy7Kbpkn8?wx|l4H`r@;FWs
      z#|>HHNta`UeC{a5e2Q&+j;d5TgGxUTlOIW?pH5WCVQ?mu2A7DH*2XGHIkTy#U&pCn
      z`*_l-mD5i2T0`^H*Aii?4dEJ9g--=VR=;%mcHQ0X_jMbE?b9);9WaiPSU(YfDz+=L
      GG5!M$eGcaU
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%We}f6g|#_PBR&rkc9Gn6apkEFwF)b6|tZyBGS-G1ZCBYGh-!gCw4TRDdme;
      zSK=iWd;lMXxE>-9QWs%i+4uUMbI<khkDuSZ1L&jcqQuafs6062$NVHvA`6U3f_bWs
      zWh~NQI1Gn6IuhAnHc#4p7iEUJtql^cCc*yrP(+!F6^6#&?3-LEK28L~N;Z|Iy+u93
      zWt(gh>X}qBd(QBvvplRjVkqzESX97p-iM1-4-RTRDyTC!9a~Tfr4oDjY%J2ZzZEt@
      z9r0wuQ)%NxvTS8DJY2eayHB#6G*=!j;fjmP44q{M_Hoq;tj78kSFxG$BVk#t`?!Id
      z468hfgfZ<W3@`rUIl{sYse{4(?nxx(nbc~#J92TGp?Ss~$(NcOyLcv$!5iv4jl@f7
      zZEgJXEgoAs27jQGNOux$jG)J>?W!ozMyknckxg~%qhrThGZ{~_Ka*mM+;V801FP4q
      zY4kBmv?}l@Tcy)eifzX0ZGM8^`+~L8qUM6l6*q)tGc+jn31hQOv}mVkP+zbdELd8-
      zkMKWZ{R8~a9yh<@+G&Au33rRCEN=s4f*W`&N0q%plf5ta*Nc9w1%H*)Zr~1~9o!{U
      U32odf`m=)3^4zDmOm;r_1-_Hg%m4rY
      
      literal 0
      HcmV?d00001
      
      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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
      K-h}uQLjMKuGvJ;8
      
      literal 0
      HcmV?d00001
      
      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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
      X&e(O}dxqpdAI@|1SXO4^2RQx*#XW_t
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~`}b6y28u5|W`UK~PISQfxIJLfQgV3#}49+SovAQ$itX9g<5JI?Tk$1i^oz
      zKfos+>RJkF*V5&yKg#94Gt)GotoCK*-gD2{cb|REx&Qw6=U)J>VLO5zfo$Ds<#zNv
      zeLrVOH`i>MxrSr!88zwTN~Pl7<lSYxy1X!5*lm~*gaw9t=c;qiaP1rqOASLHqSy3>
      zE2Y5Y;_DF=-i$!stYI1MZGliKT^0z>+cg<O2yqP&L?ajw7<)5N6sL(mdNF7iRG|rh
      z;Z#v^%$d4X&y`%qu<A4Eaz6y#($I@Ofzw69k}Iv<P3b(+H%+om6z!^RmUYKa`@k4>
      zw~eO2_!~0n(uk=INUKi#1$)V`bd$NI(v`d-cuvE4oMrAcqb{2+Z}mOzNSC4%xpB8W
      zK?=(Il7=x{q_n%#*!Z3#W4?QV!U@a;SvF<0<rwZk?w&lD@e^;Gnhjaa&6#zZ4%@pA
      zbVuKnu5?N?QxO6#?pI~QHEgRH!3P3YJ>A;j1#3??joPaK?XU>a0+&vVBApJmtiVWD
      z<CJ98kuII$7)LIG34y_G9G+>oifaN|UAk=&tYRwtYJsDer1I^K9rt=-8XrY)L*R^u
      z+|dsjKE@}s%Wqq{*(}s8+mZ8nlNz7cJR4E4u9I?~!ntgxBqbvI<WqT&{EpHl^%oi^
      z$GRwt#gM{a6zua+cJqWkH507p1Y`MUH4NQU8hoZ<PBll2$u3$|jzcYmc`Qb-KvrG?
      zE!Qw}^R{U!7Oa_uCETGrO;R$YYg@~DLtwhI{qJw?&^hP}Pk_J@Na#T_Y({llLBr>`
      z$A(p-$?gn*+CHjfLgdXy;8>%vR%)gjs>3)j*<;7A>qB0ryRM^#@@0~W5j&=PC=VJh
      z2J=d{>#V=+sP9ZAf13bte_$TUrgT+;WesbH3iLY4LgoDP)kcklP=lIJmz7^d!<SfR
      zLapGW*RUEb28cZ8F;&SI3cjPR9G?jERCv&5Z*6(7qQH$AjB~7Hx16e6GSo9O-0qIx
      zNu5wR;}YMd5Fce~t{y0^B3$zw<hP%@1%$Z*5}6~!GS8u{Cr%yV%x@U_h1MPn^Lxre
      zxJl1h4B{3>Xw&>Cyp4Cb3*%j!4G^#MuMne|Uomuu(Pv!yIDMXdp(8%pj=zA5C&wp$
      zJ{Dg*G5$SV<}Fv~+sFU=oDG%TPh=kEe=7SAGCyE2`v*Rx64wtg^&<wJBekBmd4$=&
      z6SsKssle~ZuPEB%hq$Zq4|(}tpkBZ#zh&;%$aEbUJVq89m_)_nlkx8f^5KmrV%f`g
      z3M;rzPFXT~fG>#okZ4Lj-%|28K5AFw22VQlTYXuF7*T*t@~EDu!DI6Bt2#$d<=d~4
      z89l_tagZHe_tXO!@g3X5`|%aNCQO(KJ_+E~xKlF56<qe*`9pkj9MC}w%?>5vZNNAI
      XH@%GF<X!Wwi$ii1qIHX~J*fW=@FmwD
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~`}b6y28u5|W`UK~PIS0=AkDAy6o4p;f|1i4C+iB^098A-RO1!%Un^5d0_l
      z1AOwKuBD)MEnU9)qg?Jglcot}wJ$UGo_o%|`|NYh{rA5={{k?H-4MD2(p9UG+0zg7
      z!;B@}OucSqYL0ziRHTzB6!HgCE310Buri<9ubCkP1qOWQvU5~(?Tk9C83G}_qSst0
      z1+L{^kErlw1$yQT%W&@q1QN-jKybmX$Or<6Y6u}5LZ86sn}NbO&$~%)Y;tBI0uB8t
      zJSH%h$Sa;1Q@5&_g6kMobv9Y-g}_@Hy3r$WK5tlZt+Br?ok#k%N#?P<UDnN_?igy{
      zGzQ&Wqb@M^hO9btVtRejsuF+EUN$V<WPXWcDXR!x(r_6UnSaHo%DT&2eb2knr7(GJ
      z++9zUobn#gFp8^8ai2OH-;-p-ch6Bgf%#^Zby;pWhI^E`Cy!?R#9O9%O_nqBX4R&{
      z?*0Sa(f6e*odV5Ngn&zjWm$6#+p34~fxv{PTPr+g9q6V}c@>})7D7^B<jg42X>&^p
      z40SY5L6#lq(kY5DWI`Ah=<megnT82W3TRd7wn(swiR7yV4r7YSx4L$WeG$P;d=$cr
      zzy%MvtsgXej8ABn-!^o!o~v56BNy~KH9oU>w!&atr{p1pbJ<RDN<{YYr}8NN9i@%y
      zFEoyic2F3NAc6ic*z3dW=y88?##zyE#`4c<7`mx6_)NpRYK{n#U9!p?iAn?uSPEg0
      zth@vou3=^tY|~UMSThaFxJ!BJq-09hwpR6;z|HpdzrVdl=Vo7c0yHg62|Y-L&8m*e
      zY4{xX*sy9m*_}<GmXB(g0D1EvIMryZm743C>M%}B`qc63`jFS@uIs3we3_(T#E$74
      z%A?wg!Mxt-I_GcO>N{J?-XTELADD--E?t#iQNsqp0^N?XP&xm6y;fl%)SzaQMder0
      z@Fg~xP@{R$ZCJGi14Nedm?&j)Ip0xNj!y)-N<8SXcXm8jk>kc}j&r17H=MFuHq<jS
      z*y;}Ur+QY$Rn8dU+Z5o#OwH8;#Z`!FzJ>hua<_;eS3oRvf=KE)w9VML6I}QW1HaJP
      zg+YGLc?h@YIfs7S#t?0qABDH^4tGJki;GRf8~iK8aOzhK9Ao$y*FH{<XJ2fK54Ym4
      z;Og1&@t;q{=g*9P57&6hb^7-3|2}6!W%m=A2l<~)|AW*I=uiKF52?hBV@&^uzUN46
      z#%`Tp?(f)bo_s3sJF;tv_Si92RQ>@k|0~oBSm(FM{RWwCB8A6DV+&I#d3;j-J<WW0
      zBl1}F@}0&S?vqoRj2_?%Vm>6A($BXPJdTfA6`A2ln||vr>kuIduuUH2Gc|ZjUVc^Q
      z>8X5sRWifJ*g6fe$LpSYAVa=mi+C@-!q<ceGQlTJxDD=<j8O%bzI6E*-<$??5JA07
      diD(NjO2BO|qbPY-yz8QnTm@*|A#4|_{{ywC*lPd)
      
      literal 0
      HcmV?d00001
      
      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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
      H!9V^B*7>b)
      
      literal 0
      HcmV?d00001
      
      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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
      WGG1i%mNJ(w(K5ufUgn-Pc;&zQ-n3r;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtW*;gA?9R4m09f-FJ2o_o^SkoGoHqgBdVrig)4HOAtvDG?EZj)(-8Jw9Qb>FS}
      z-WQ+s=%XGC*q)=ld5-^!#|QVV`nyS*gmgNm93PUId*}OY-*371`<vIl1~7mRRn##Y
      zPFuO?Wo=1Yj#|Qtx~>^rbnGP~C7ftdI7`AA)2x)6(Xt{O7mk;(HTtANVTc5XjtEnv
      zHBY2wG&jqz$;%jSxSydf5g=4!FGg~MhGlp|4AIC&1iNP$l(?M|O<=f(qXC;jsK;gw
      z6<ZkUBNDJRVOU}^w=gf98ExJa3@r&;*UVYXG32_msYuruj&8ty6;Tv}YAh_8(>aSF
      zG`g&dMbEG;SH*n{JJ$1_OeV^JCbVORiVlXJyC;leC+;WGgq5byNHoxAvR1&2lY6lc
      z9zd6h&fu&{56dzf4`Mfk=L*-QkjPx5JJ4VeS1{LvF!rk0!>~6nyn<#a!SOI63=MA1
      z@F=ptYKR+)8Q~-)lH%$?pNigKLsb$S`>>y(H7l-AGBTQ#7Q<%Rb__4Gz;G})#4|oZ
      zu_mInpHssfpjy;z%M;6<42hvPkgjARUICMqLpY-1Fhh3`W9x)Cj^Y@V9mO)CSz1~+
      zL_=bI(VaWoe|&V=6IM#3$ors4$E=lKFS>Iywa1YC(uIfkVhi<+#LK@6#QggP_8
      z9X~!e9>qy&PfJ^%M79#4(xIqHOh=O*8Ay}zQy5VZX9(YovmB#1&9Gh1*tRQ*1zH>>
      z!=|B8@6JVTw{hptY6vRVe9YI=c8qb1<8g*YP1mW!<&+x^tk2ppce``lvmxsL1jhs>
      zD~bmgPHsrCkHd|aV(75!E}dq%ammnWM!Q{<0K=3sFN8Ks%PE;;X!BuBI(7<Aa?Ii>
      zhI`Y(lV?InPduX;GzO0Q$<@*=%|~VJRmoG{!<gfE8t17nTtR0IjpHf+r7|4x)l>zF
      z70G*s<5^s+kVnmz+z@%itdvXN*Wn@^8pk|zhRs9=b;uG?N`=p`-;anIwG})?-wwfX
      z3F(U02N}lykJnY|yJwrIXAO?akO%U}*u{|~WqBZI2Kn_bO`<_8a9Fq0Oecp`EK<D`
      z`nXIO$xdm8BcpOSTzHkJ4lzt`D5_E+mv#FlBZMU^t9XH7_j*tK&>UCrA_JEx%gvjH
      zUdY(aThpj)sr-@BW8-Dn8m}-MDP`6NcIW&S>+&^@*YQS$3mWLBH^fDaffCJB^_0}C
      zSk_D`pSmoaRjT2-IpI*#G|)LFJ9Ce3@6>i79T-VF=jh_JAumO(HREc(B$t>Qw=Chr
      zP0gkApG0H_7Vn1WqDxmjT`}3VZSv+tZ*}xj(MbDE^mdHaawpW&`z8IYf`4AXY?XWR
      zi}E8HlpnB-)|_PIZZlfwNh1ea2+>OK3a#3tJ~l!&8ffQw&k8~-*q+C(6+DzjccQeh
      zg6IkkPOxurd{S=p_2v=VS4I!7;W4>b!<p}}`3BnNTF$QGiEsK!n|aKfP|E0C9ZDYO
      z<g!DlKd^=i^0fkeZVjp4FOc~dA$pjfV6Xgs1NNMJuHpGSa#iS6ytIZ_EAbD3SWtdK
      zv+^@Km0u86enm|A4Wr8MIIH}D3(B9!Dt}=~`5RZ2e{fB?iBFY(k*DWZM1th(P?3!i
      zXU+HwZz4-<b>btuRbW4iYj_(cC`%V;O1^`4iOo8^N3wOeiudUmB0Qtk{Q&q6Sdgh$
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmcguZBrXn6n<{P5}+$kN~Kn<w8gp!G)uL#&|oV`i$nq<i&z`AUUqMjEt}oAyJ5f&
      ze$hYVOo<&o_yhbA{V5&K-3>1RXQzxaGD9|d&vWj1&U^lT{pVi*Zo$nU#V}WMTl#ap
      z!*_L8gnAG-deirIY)kmMA^aWTFLBoj>U>*FtQ!l<V(-zeS?6v|WYEK)C8$3Xj;Qfa
      zSQ|XpX1F9=)8A{-`<gFScn}KT5T-9ehE%o4&>Pn6U}BnKs*-T&2~Gvlo3~v%yw7k;
      zJBwnqnB8RPDS4LY2g6$`GUyvX8bd1jG0c$GvYS#eqC!D0!%)R`#cHduCHxJ(<p`2g
      zJd-<{+_&X>=dee*!B98@mlJ^{pE7o%>8!V0h5-t<Xoj}u1{qvt7>{!mMbguY+*;$7
      zWxKUQSO)Jg+~`7;9hnHH=y>L~VgD?SVXrV;l~_FxX3Mw3J-zJiaL2adM8}ph81Gzp
      z1Y7ltmRVnLY949T8^^A^#&EsMd<;F!bAsV=3_Pej!>Aly)Q20C11h-zXvk%dWw_9F
      zZOLxdg|A`~Qw-;7A}qT>$X$~XlhrDbQx4UsZiGI?r;v?~cJ)r=V(r2J@|ey*XUM&I
      z(W%ruA2alE(-c84G0U)YrqYY49K~|Yw|A&dDCERP!)+BaxI?um>zZLqE63g(rbq&_
      zo09shiaFdnqH>#I{XbDLg&*pVXQt;$^u>N=o5U+3H7`kh$}n+?O{8)hE~#mFpyD$u
      zP$^s9qU~~r8dam7s}}o-cS*&=sHd9Uqd>|QReX*m2Gw+I;fCupe!K?NR8m95pn_EY
      zLd9~V9z@eCmPo;hidB3`G=y8DPNs|}-6%^j!j-8LDFR=?$Y4Er;C1P!*udB1en2Hc
      z-Am@QY@)#!*D;sJH!2?ETZYk^aD`84=pLCrC8oI(k0g6<05OhHitDYa;yZj#xj7(3
      zrAWgr_`k_i<1%`x;zw}me$#7EC3OOwPjb6-gj^9}-Ls+*V5+b{B{3F=u+^ls6wSgl
      z?(>GAJw+}))yU?Pq?^04pE&+cbC9bj?FZz_#eW@BGz_+*NT-PfEd|4C`KDO3<rW$}
      zu@dug^ihh+F4axR;Q>`3!(jLF#yD-ZH2n@pVMMMsV0c(Az~}_D00&5Zj^36DA#p>w
      z$$hA~KQNe^+Q<3dBj5%49F$^3hoVfOU&&*X&fX>^Qo%*~CjW*a6DhiK48tV5L}!C!
      z^c}p5_wfO);(BE472%|@-$p)siH|CiO6~>Jm$=!+CkNl}wo#C$lk{=Ejr;p3%2)aS
      z0*~THIet{ySZiZ5S^Q*0%BRvDmH6>P8(T*nUXx)_X3(qL!H9AfSCm=YROV1o?!i$C
      r_*I#YydICacf9V!FL;I;`RtItb=c&03eU;A6t?LMQHU80rUvj2l^@1p
      
      literal 0
      HcmV?d00001
      
      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
      zcmcguTXz#x6#h<<(`nPO)==c4Vv!0-ni4=zpm=EtrGd1BCX`DH?R0WThE8U}%%oBT
      z^#|w!k1p5pKe!gH=+Zp;;FG_A|KN+hx!h+aX`3Qhuw2WBcFyJ7XMbmZd+(Fq{{E=}
      z;3&RS5Mnr8w(99S+KP5BZ3!>!x@NlO*ega!IO&3LR)jODStYlkEsLR<!q`H-aPizd
      zy`ouVp&-H#?_hscn4+wCqEyt}Wrp3t(w)^B&GU|!(p*nC1))2_V+hS<7<kRSC{_uV
      z3;6h8n^;H;?Tj*Xc@@JQI>M03b@025x3oKBScdlzLpJ_0hI5(cQAx})M8@rs=mEp4
      zDtZu&B8=Bm^diO(jwfd2&VUMzE;)K#g@SIv<_t?r*Q-myDQZimV2I^xT{CAj$B^^p
      zVnkk);mk|0-7XJZTQRCNbEa-FL`gJJ^9<W^73^aeYzuKlE9JFP$*{^BFa?7Q2is6t
      zQ_5*(Oj}<r827~%>^ltmB{uB}z3v#^YC3DJXr@sj*|xxjnn!NJrtLyquZ)>xo2)9;
      zE!cw$2in{R&}VtZ8TJOiRst6axs8Lmkt8`NbE8P%u!0eW9c{;s8?}mXRHQ*^)ms)`
      z)^a_~(n*;_+?PLXQnsfHo<s2&O|)l3U_BbeF&tO$9z*iQ^HRkLywA|B>AG;;p_2@g
      zFO{7EmCab@9b<*6O;(D$>`4`;aGKIorar^2cs97rhC~vWn3dGesQ3_69W5%y8D{<y
      z6<s)9`r3&jr^abu+%|OL<&*kEk{V+edWMZ}vK20=r7*7IEY49Xm+T3{(oCx5_*^D2
      zm+8fMWED(OX|?IO(JoY6z(vY@lJuOVQ>m6H7ICudp&L)Bm_`?sW39avMUlshg3Ap3
      z^3<mEtJJHiDhenv^k|Nwt?G7-I#qIOf?Qg<BXn=H8D&3bT1#2k4US<}#Z_EmP<7J~
      zmN!F<)vi*ScPjD#G%C$+sF?H3UB52}J96Wuid$Hq$Ox-U-Gz8{I#E`KkIPbXAW<~v
      z3YI!|@-`b4C6E)vrL3ifBEyjA=rF)F-5o<&MFj>m$Fi`5Lz&V37ToQadChoq^7jIe
      z!WK$F2`sBHL1L&aQdAw(fZhL_%v_M4wu&0=QbW@1Dy3*M(1$x+dwdf)CA^AV^1G6&
      z!b6?P-xXfHM#bT`=e*`<RY4ChU2!2!K5uk7xlR4iPRM6D$cHlQxEjOGf9;%9P_!Eq
      zEj6H;+ZsleeF4Hmj*7To*BxC<81lg!*!I33mX%7%Wi3jlaZ__CF{!e*{aV2wy~1Jo
      z<r79sKFTzT$tM};@0ZUv%|rCp3zcxM(C8M;BlI0e4zHmv`2+fssWt3Kj;vwl_da?T
      z{f|iup9JS;(ZeUu$IoLotq=OX2CxTvX-22`KBb2N-)oq>yg}9>yh&?)#OE!%jr}-)
      zcX3GiXJ3;Ar@g;oi6<D&4fEt<^gY4Rb$rkokFMk6VOrj?j?5H&cm9Y8hG_{*HAWhX
      z%Hq%6Ysks@W8}iAMt}E%N5$qel4?9Erozn`Pc@$4Qgf1O@WqifaH`QoE02mJEqtn>
      z&_dHBFuM|bt_Pp_bu6yqwwyeF`_Acz+}sms9y=dEt#vq?A-+Ii0;hJ(FCoVB*vBv9
      z5TC(OUceYHBG0d2p3h>LU&TXy4PWu=_=exWxAgsv&*K+<6Hoaq{K*%5X^sbBZA#OH
      xKd^#NNsdGK9rs9x5dAp*6{|D~<0+x;<1-RDga;%>2oLc&eWQeD)Ox=F{sE?=L>2%5
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1ZBrUo6vzKJJi}F2e9l8_8=DF-!I+w+fm$gnk&4i;h{2?#D{OELLS{i5J9*Q$
      z{RsUCoxW&EGs&dWOkd|ib$ae)6?E)Ojm~)doxSJbo^$Sb`_Jn)0B&I0gL4e?wZ>j#
      zN8i_<MjA#t(rVQsPpsy?Sv9PPW?1`%wW2qwt!@3WF{8Ehw&8)3VNh5^>UyIVQ5$=^
      z3?m!)bU`hzsF_TzoLBFyt6G6!A#+ymQHEgGm8Ry4YQF1{VYsVIsQE%Vl}^M9D#O&V
      zgR5$(tlm$o#ItvM-}=t?vYI$%*G)N@%aYY#_e(0BO=~M^lEUWIc(R<xq}6QUFcqb%
      z>(6Ae|Jd<FCQhC%)2-5}62pM}(u?Kn=D^L?hGn)5S!@Qj$q+DGc|)(-nt+;JUz;h$
      zGgM=Sn-AWl#@<+^ZZ^#J5`$wlRAg`_npMLKmmdt5INrni4DOhHWO6ps>$ldn%tkGm
      z-rNioeRTQ*4j0^Bcm&LFcm#L_e9Yk$;1dw$@Con>xW?fZ5D+lW5fH!y+~nW_1_a#V
      z7!WWh;4_Xv0Yd^}976&W0bg(^0)_>A$uTS-C_v>1!Y%&0%Q21#hM|nvFtU5QTZUE8
      zx9SFsTc%mj>qXr%1xuwL4y=kIWEjRzyL<QMS&k8m3h!TYjA4|j*xoi<vZT~C_r6}=
      zGYA)FL+{WeKZ>~T!3KlUSNwxk+t}qOfdcq+%hC@j%_j#`-u^UmTRTRj9ZmOj?NF5#
      z&GyL5a*r5N{bqJ&LuVf-QLt}09-u64+ZQ%b*ITV<pW-M+?@nTY(6jez%{{APq)gG2
      z(G#oZx;W0j(~X8<NvB53gDTzo|1TH@m;Hi#nptb;?LCVkCHs;SnZ(Y1`=#jeJPm<^
      zwyLr`C0+wSk{*JT^aiA)@t2Y&UrHK!DQVuNq*0fWrd&!Ia4BiFrKGWzk|vrW1;y-1
      zNs~u`&x`pccGH`i#1!Ro9$?RCi0OyT{s~qJUT`=aFLCiXrX_ypwDGdUk6bohkvQwN
      zF(mP-$HqB{*S$7IB;HUCPcKORMDaMBGSs5vPZh7tw<X_Ed^SfVf3Em#UXr}51Z<8=
      zPAJ^bO+Bd${6%+hbTF-zoE==&O0EvBXeD<CA+6-;U`{J}JBVl{g;Wb9NViCWl($Lv
      zI*5|+cd$ev&_SF8?;xo?N9uPf);X-u-#fHzfC{adD%H@yH9SHLHLPMAn=r9MzdztH
      zenK5TV;8@mf!Ao_Ep()%7vYKaXtxu1Nb}($eK36W;!AuLzVrfX;W6h6<a#lKaMFo3
      z^>Ck7;`g-3o=RWSa<+oFCp&-Gdogc8v3I1^81i<c2uViYT;V^E`<4FbUdSz#&!j`%
      zJ#gf3<W%Felg2-uV(f#40=c7U!!5d@$ZEWURB6=_ep8BxUadJUyu$k2Zzob=M|JYi
      s=6GoP2vfQudw-CHU*Vg-!T#IMf$yYG9b3YJ>=<>-Se~R_iEG#X1=aZAP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5Pj=>I2hAH2nnSWQYa-KZQUNY5Co_oRHUdq1V!r6iMPoXvyS``6(N2P
      z7Y=Yq5l9?4@S_m3u|<O$_28M^^}ILp-tO-|-+uzw!L|;Kp)rt=b!?CA6HD^Y3If*}
      z`QBJK+_yU1A9H_?yRP@rlUzrZ;i{^&Tw4yTgWfUkhdS~M^$S?`Z0Q6;`z>GF^_=$%
      z`6oh(@F_#4R_`)oUw95TkilgWItmPnZ6W!7^sdMKH+IkE48^wBx81Jo3$;%Uv*Az#
      z3>)nWTBiiGsJYAKARJDczh)?eUMKX0959q>_4b*z__Sq!;f9GK$_(qZ^Z(~Sblha9
      zq?vXj;gY2V++u)%+qk1+<v%y$jwbG+%Ak*JH{u6Jsjji(tvOu{RB%rjc%KHIH)ywj
      z2Mo(W=tupq`l0%<nl?vKJTy^5ooup4BQ70=&3Rnsd`Q%hT@^HyUDt_X<ntqOqHZs3
      z2Hk_v@gl#^UkP=;rPL@}3V>DeK0{xQUTc;zJr0VOXlGF-8<A_A!uU!H4JO6>^l%4P
      zXl=#?SimCf$Y@-nsK6VP6<EuBR&fUTXa=eMLz0*TxlPpynQyQON?%gw$1~{s47!}4
      z4@rzhn3W%>95#PJZ+=3qxbzLnr&uknO|U*e<BW8H%7JGn;W?HlD^cZ`AR#9z60=G4
      J3|rG-tiLgU*8%_l
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7H{dZI49sfKn?M*M&0kM>~iIKsiX+r?TDd{%)22|3tGgu66E4S@!dTE-3o10qZ
      z&`t4uZs?}7MXOE=bFvLPNri6e+{QNd{&sfG&e<>iAv^m#_a<rDLMSJvxw+5teZDWB
      z@8|pdKK=NAm)-}k1OHM`A<!64W`jrdQGG0!H0)p|lL)4*)TlXNSiz`ajT+Vg<9Pd6
      z|B#-H8w!>Qtd!Eh1mA;QeMgOcTS2uzeHlIb_2fWiNFO#fx1<J+3sm=I2L}yHV0GBh
      zl{8bqmgBb3;w*;*sxn#AHUzeY%V=#i(?f<8m6AMC-DD<B`wIelwq8-`QZ?202rO$&
      z4Hzmau|mUgtQ4r+THhnzy&7&rt$-(P*sTdYlM%RaYrSjF0mNAhsi?zR1#7r_h4?hA
      z!+L?5fowWq_UkgvH3cOLkf_0@u~ETI0^WIwx-6zg!_Dvss4X4)dfOvy9nBGe+WE0N
      za*jKjG<*h|iEK(96=+z1k}H`HWsw&GpVgqiQv>EiLk(1c6=5@JM6x4&hILTyOE3y=
      zIMuHwdUVT_@A<`L_K-=Kww1$w5zk~k6Gk#_4>{O(sMwC33U<(sr4d5IZMdCq49{`5
      zIT24;rad$wa2w$+qo;)M#Y3SQ+<`k4d`=*Eokum?h211oq$|=cu;aQdtF+vt;qxH5
      ztBqq>JwZHI=kr%mhN1eyD)X~PLo-?^n$|6Sgrawpk9HCG-Of3(MxaeYJNA;R88e>L
      z?W`qh@*3(2lA-0;kGmCg2<$9_*j3DH2w<Cvu+-2gu(_Ouf<<zLq!AD_d3!mSuVRy|
      zt7M=gS=qw{a}FgAYPeTsxALB7vw}kc{&Jo={gjd}#436alO5);z}f}%m~VykJ(71{
      z*6<Z+L}}aK-rE+9%C%k%M~Z7yDcAZm^yk-l^<*lkfcdJwrbBJ}3;qlsCiM(yFpIjo
      zqX!fWFC~f6J4!ps4BN0WDvr7elNwS|VWp$&7~8=$om!wM?JBZ0WF5~Kv9zV&0f9|(
      z1F0jCFyeZm*@|aJjHJ!EWu$FWBEhk<W=<|@TV^uek~I_Th8{d9us)m2WYg)CWg7!N
      zwhf<=pLx4|D#ma^=INmYb?0gc$=NW5Z)o@?9%0?->9mm?5C~kUL`!DHJRewYV>qed
      zF+9%kVyE0qcCf-^a0)$dP{k-t5Y1s@OpcnTH9UiF@mM;QF=e#!SVw6ucju~<{kDeh
      z$mvs+;q2jz+m7cnJdf|PdlzfG*!0+~mRRh?Ba9=A7bI9O3hcWwsh3n;a~kDDuBLOm
      zG{~MbE<u`Lk(R<+$iyOeLkeCd98TtW%W&lmaSj-kiqlx3;MKyE=5{w(VHb8M@w$xT
      z2Xe-{dMV*<Iw_yTn;NDhDXP-)oCjx_gN$uu`)%KYDkkxkh9Aj&#o13JJvb+DgU_cI
      zMv>&!Bz_{*{B!}g+^ZE0dGHQfTF8T+IcL+dJ3H02Tg3&;D9FvblDQFTcn=q8cvMeh
      zjjq83XccrXM$3a)feN2P`CmvvzrTRTR|Ps>OHS7xufZ?zD+M3%aJfP+bkbt3HT)XC
      z;kaq$tc-Pb-5ce!y-v2MG~MLE?*ufTuSjWP6~?#+e;^l5_!jklvi3Ai%9&{ygXWmL
      z$}H>^&Tz1KbE+$Hp_EK=JC(JISK9ex;;tG^WvzZ=uPJXzb&EXMChg%C^1G6MRj9x+
      zdEw$ky;feg_^jsoa%lX%fp5c<tK{=0{|r9Wn8T_={)QY@Ph&$4w_Ly$f8zz*`VIvu
      zP|xo=ss!$)(lFI^Vhtj^T6V$DRiCQ}4QS*WRXT=+^Glkpph*tnyx}(;*MK|y@8Z@R
      zg45WQLuedTmFFs({5gEFlV7co#>>z)G+x9$fg??U%TPB2ayW3LX~Q|{b$#+XVMVbL
      z2jS%ut>rjeheOzi`>+Wy`g0gT+%M;!<ENkA({A3+T5M(vUG!=l@4?OJrq+#Ek1ydK
      z2SVO~T#v<S2Tour?{T<c8qqWG&Y~yAr7eVQ2KSxk>itt##m85tpz@(RG6QomgHmSK
      z8B_`RBkpV;o!d^x)e&bkJ-2Gf)y(46S&YVJF&6WFZ3bUw>K@MF(HT7PK@px70t3X!
      zfg!BmJl@D*x`lafM1q&w5r&sW2ae$YEQXwc4x5r$Jiy`b5Wk=0K#}RKBQOj;51R+C
      z;7RNzG(ukOT!`=yp_SnFlt8p=3OCbreF|%3v@SFwE;NjXAh_8kf^MF3c<Mvc<?w7|
      z7U5XHRds3x-#bsur73@eF+IwdPSUr>NVmtC$|vaGlcd>G*omj<*E1z4?<x8o$@{*O
      zC)||pB}(6?K3O%Ko%wjS)1D-7wO{1$(wu!+L%=CVx2z;tRW9x2=?V9=ut*q*#wW8l
      z9h<=`owJyXHO}C*NW*1#0!-E$0q>a{epvGQwp`4km&1<(-t*kgzq=(efl!J3G`9m1
      zK(4KmJZN|i?~)1LOF8_UR5*(&@1=|QpaMlbr>5~?4wolzSBakA=Jm9e)04yRDOPgo
      zV|vS`@y9u2BK*e|c!5a1h*d;%Jzjzj<7^%iEW*=d%*)tA?sVf-mgZ~d#p}$)8<d*j
      zuQNEy&!6!Y{>_Q^U%XwCy-)H86Hok!GMth45B`F`GDoZMH-7%^WbYreUx9!AAHFq)
      A<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYgZdp6y2933<;Ma^hJ3!fNk@#V_U&T3KRk;C4{!2p;fCL!fkSOGRd0EVEGyT
      z1i$#%x-|8%mipNr<?`H_X@WLnm8_MSxv#VL+54RP_dmb=0pJD>H1sjts#vc6m2qf1
      z*Dc}b&8De0?E0ZR5Vl?v_Mx!1#L@cma@DXZV%3!<EocZcWKMHXLqEf8j}t*;hW^{q
      zlFkxCI+5?OKPMYiVHaKLh-|XN5YE*PL=1x%(!d$cs*H3?*7emRhiE^0CTxx~7-kqS
      zOtW4#9KkS_*i7cT?99dx!U%_kQHDE-u3Jt+Za6P3QE+Sf!rnFZO+p^c69uzm*iwyy
      z$*@zEO@{eip--|T%MfWQH5lGlHxhf_Q-<MUqPq}LFidh>!W6^#t~w~qFLT5(&JaCt
      z8>Up+s@YkNIlN7RH|kC4$hyUF?!SV2;3PJ~RgP;&5Ft}o6{pG&N+dU9NFk#k%`n_C
      zDX{V#6**$cnsgMF&hf5d5NQ%VX%KA+=bm93HPUmeyMf7)O71<5ix`Vx0Uv01pNPC!
      z&2fB)k0_t7JH4@DR_eBNsx|5<QnN>#V-3|ll#SvxmNYCf=%+l&v5Y&^0fn8yI>U`q
      zBWqZt-t-hUsmb+C(-alMT(K)|O;`@~zGx`>2C&93O&P~Ua2>>rS2@RJGj7!_@_hvx
      zs&PK1dI@y*f)*WHS`}(l<<=(0UFCMv7Bz#~-KwY>$a8F?z;H%bP1hDVqhXY#b3~a@
      z)p+ObaoooPDvpNh&;@jYuU*TON~;mn1E<<3%8F$;gra~;97XIgEcCYRwbt_sEIWwD
      zxT@h(hMPT{JK?k{)mL2T+vk`U)GLhYe-K}CJXKN+l-qJdE%A+iqcOyab=NM74XG}b
      zsn;-qTlKm!7c-P<i2f0}{Uh|&FhI{Jjn-(skKQ~r62>oxrC;K$7c}m}S$f92wRs}5
      zfO9my;P1tG`cglygD4WCYhpZzn4>+6)-I)f!bA(xp%!LREnI0K`4<LTxc&nz`r-S%
      zjf-Ar?jH(5Q!(Ra5U>$Y%uv8vEzJLj?DrV@9V?GVb1$*}XDZ#oCoOCRcr@DC>!fhO
      zOL`SU$Wgnm;WE~d#>TO9GVOFSR18yu%COr;|CZ20#CZ86^cEieibo8KsYylTX@|)q
      zWlkyokI*>!DcoHmv_*vS<jpn_Dqsma9;vtw*Cw@$&pc8yn8xRL;;Bo`5{To{SkasF
      zv;Sh^JA_|MkdfON(%zrk*-K@9#zaRGpF)vr-6abjVgx0E*uyLy9iuSUrZ7i^_=EsQ
      PFbacqDueeu7t8+wgkKdV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKnI|{-;5QhJWnwZ#l0Bh04MJ=sFv{6vV3D#uDgFIxj33@dP58$E1O(EE5F~jh~
      zH}lQ&b$<YuW8lCdETW<oschs`6s$#6W#XdBCJ9*ypH;(Z&$sP0h-DG+Nh+CF4!VS4
      z%ZSXR;&@Iu&<<?E_|LXYSyWopf##6l$}B2XqT`&foJ<dYxUc)`540k9ep#!4cS**C
      b(GS&GYiR?7j;Wscn~b}IemlW6-GcW9oqkfw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8B16g|@qwk#`@7QazZinNP%0Z~B+i4shjH0?vR1|Ez{JC-He-DW?U#-HOe
      z510r<G2)w1pZr6{JKNd<z5v<mOy<r#_nv#_+@F6we+4juClW#ovo*`tw)Cdn(k$+2
      zu4`%y$8H)`?r0_MG`UmI>pX9`UMlBtNB3+;LWChMFq)}bHLbX@#VekKK88eK^*zJX
      z{&_P*4Xesq3@pdc=WQBpYMNmxf9k}G1Y0sJ!&_#^rq6)Olo=u`c9r*oVMswgWEo)$
      zD;Pk6A)L;X#m$HU2{H1>8x}A4^$qU4&^Js@<>c*(ZkBb&5a*6DB1&MGJ3WzZ=cp2C
      zQ+Erz<pt^2WsKscgc}T*Q@2CGEsRlNuJMj2QW4bFh!upKPiM}+s`tFaOI~eNc*8Sn
      z%at&}FxGp?f?e_}o2w?TbIa?x3F?yy(#Q~r8mEF5(z$b{myyD-gnJC*Jz3?1YKp#B
      zeEZDyt*YD2Omc8|-EMLT8pC7{@zQerM#FYIUM)6+R;ijUN=6pL^w`v*9-=MXMVVCa
      zK*4R?p+=N!->LBDh7drq*CR0kS%G9wa+bxN6;pRzPD+UNq~2dLYL@Q#4q;#apQmj(
      zHXcjod$8q2VoQyuKZ+22q+lQ(7aFJOj*@)<3auCD^fd4QhSaHD466HxtKnTFKhRYO
      z7ik@&K)@G*eWCydxI`xbCI~L$3hfM6ajg?>iBRG$p?*Y?{=q$5e~)NnJG@QScErBG
      z<J*x)iEbonGkJ}ZZ-l&30mX7a85kAu)HMpc9(h9?_i%UT)d5m#`%n+tS&_ulG2Y+F
      z@&hCIbtKzpH`{$A2q)Sw+u<EMK$hZ7AD&?Q`v^YP#>byhn`b)s3ED;7QFRZqJ14*_
      b0EfsL#$0gs5RYgV(qc3!k7=C`><fPZ`w~y%
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~8BH5Iw{8o3&sO5Ga14beE3>1bk>iAf$xGwmcM?5FgA^u60SfCA-_k{wE(4
      zG!Tu%XMdD&?zTuxG||3v@64S!bLPz4e*f|L3cxbf!x$i}RPCm5Vz$h;hAlk9b!*0{
      z(`Z@8!ZAw1X$hxj)<xcOy%~AfZ=Z@V0))8CF>0n=HL`ZIPKfUAmG)m1w+dOpYX1LG
      z(}ZBltThFJa)iNb@t`nM-pU_jON6zT{UJs&m6~N+-UdNQX=OrSyKyWc2*yAdR&g5%
      zLMYP>8BgVJx+-~&WmnU=oK}u<@EsLFgyd;VMHDf@P~Ngdu~|P7&c1n6W8R5;qhi*|
      zrejIlcgCP#Qr4N`#6Q7z(5F>|5n+1X8_Oj`s=_OGv|!q-M#xu&Z=R>LzNCm@22aCy
      z!d>^Y*mgZpS22qe&(Cxmvt4PNwh4MK)4ih;QSs8b9&N5&tPLUTbK84O*zHa0>ZkQH
      zIH}sa3JnW9`d-lOn(4af9wxu4+;k<^k(Vh}YBZgS*s<hfMt)!AMHx*{bG9uUA5*wt
      ztPr$+-di5h^?P9LN><f2y{5yZc6!)JDw%!+*hp_K^QtNQP?gOIxp{m_$Q=QOC*}UJ
      z9b{_|D#zVoYtxSbl3zfFiMXO%VCWnpfv;>TXRN?EMn7=e0LJ+@#$S+zIL+d&@0B<F
      z9J*+`Tsy#iRi8^<U_zh%gyc<jTr#5tgvh`kE%^vz5|P>5>+<k7n&Sxf@t})p@Rv9$
      zsDDKAonKax2}vid`Y^H`*;)rCiidc_9@*eJd!-;_XBa(vq3BnK8QEJwnYzT|`S*O&
      yY0XFDoa?rtyhnN$L+2QYA4`yaiMel}zvn4f^f3)A$qddT{?~lQ<5>0mYd-<@VK~YF
      
      literal 0
      HcmV?d00001
      
      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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
      I{0epd1M{-TO#lD@
      
      literal 0
      HcmV?d00001
      
      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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
      D-<4g4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYgZdp6x|m>Cd4U)6k4oSW6?^&BYmhvLtBBC7NI;$3$0a4NG8d&VJ1!{6#Df2
      zepkQy1N@*}I_<J+x%7)4{883@X9kk6fUYjqVlwxhv(LW!?0e?l|Ni(BzybWIph2KN
      zZ&VVO(o5;(grV7qa=Dl&S>}?S)vQEHvz9b#IyF9>w$h85tyyIS0fAN-pD3n{d}3<h
      zl9sU*1O@hPfizsvi$qiq64<vz+=ywEZL5;8wXA}$z`-qIJ$B>T%8BJnfm}3~WmzD&
      zP|4*qOQ2)IC2HtqVtB>YhTY{P0|s?Nw~q>Rc5fIFn-vI*m{~21MzpEehKN98cWgF{
      zcI;HpA+TcuWEH#6DbSp)l!|&LZEFI%x?>wwXvS_lso)8LNFC6WMU_<S!BYa^;jxn!
      zPfQ*k8=4eouZMBtl9EnT#WUC|&}7O~fu40o@*+25A@Hn<$Dj&qpU@3$va-0KS!dD<
      zMRJc!n3;5OHf`zh-CqpY1)UP_pLl3v>TE;NJA7iUZBn+S8~J2xHiRB>KYM1hZy=05
      zBoy?sEo+*vu~wP39Pyqi_Tzwnk~6JI8j|ka2(&8Ix^xQGheIk}z>742W@Ol6f!Nj<
      zHO`TGA67Adm)T`YTTIhNM&7l?nA}UM7{n2QP`X&8cG3Wy-D4YTFXNA?cojp8FIDVR
      z!L)1{pV~ZrM8$EOU_HhQ^sei)Z|}|1PpUYDF`nGguINUVCa!bm>g`Z@_YGUOS5D~$
      z%S1dmYum=#QL%Fa0=qYtnu)bI9y!XEF6K>3w+o8`hgg0K8`a$Gq1B{hGhW9T1u22V
      zBc`f23*PHS`cmM)BNq-s;GBx{viHHFX5{Tc7#HxCf;V}2)(q>NQ^ni3NM9HAMV%71
      z*PFl-S{fj&VgVT%Ag`?&Ai&sEBk<sX%=4RBE56Ljt0>3<p^{nFZQV4au`j8(j3U`(
      zHP6@&H;BAezHP!VP*Pylj<)Kyig!Rahiuckxl)a?T;%EYZGL}hc`I1riCm#Lk3E<<
      zIzh9-sGv>3%4%tDPjfujtGmm%CTH+<X;{y2jPN!&LBd$ZO%=Bgqu?c(7s7j_>U~F|
      z*W~^ODn69^io0JlLim{ej7C=-da=N?=#i*A)~707gBHT)0wNj0mjXL)MC-qVyxCTn
      z!=!=|<t|xTPG6?8SdqbN3~P_b`PXR5OY47<>W|3XaLTM$8EsUTlee?JocrPJm&$R}
      z6NrCJP|(cZ4RUz%YaZh7ZD`^D?R=YJL<65Y;&;&+?{To>4jy;#^zZ2UmCFryj{jR2
      z1RO&ELx^A)`}nrgOT+W%<{JTAcnU%Am=FFF^8(x(l;Dy0J@lULWr>56@uofpFU{Y>
      zE36a$4PEl}wu7T{{>!lY!@=lWmBn6C2d7#9qX^?9S~;TjU<`3K;Sk1=#DvQ%?$uml
      zHpu;PG794$BTkcdD|#_WF&eo#g=wE{Kc9jX0(UU;3!mQEgYMe2i>!M4KC<A6JGmld
      zJjQ65+adW=L^6*%m~-&PUua(scCH4jV-1Ys!Ur4h!CE9(ql5WK_GZ)k&+917*Pyhl
      zq0o;$$_2l(U9RvGJwCH02e~RW2fBmBD#0*IgAhUFTzId`T|Rt}dP@bRPQ2uPq5VGH
      zU|cw`s#u<KmuqMS*JyGY_}PE^9+|n1%K5vva{4}&&-dQN)ybZJ5bC2{ZuCXob?|=8
      z>ql~thxo+Z{H%WS3oiCL_^L{zpN#^_w2zH8-o)KlLKIhM(`6*Eg2T9qBe+IeUFY#`
      lxP(0u&G>|Y8GP-UC`7}3gKv4{Hhz%5!}qR<Zo9qt;eW`Ru_FKg
      
      literal 0
      HcmV?d00001
      
      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
      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
      AcmMzZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?YfBqJ6o%guw^@^J>owN4w$g82AcGfBNC?EzQZN+h7QdEB9Fr-VS(!|N`B&O6
      z1wZ%${88eWO$xn4r8_X3GrZ?L&zaeq+pB8;TUZT|BW$-#UwoGXc`l4{qSs5rnN0`!
      zL|G9lJ5csZT>o|yA0A07yUHos3lR{?kJkNBL&#UP(XK{VUTgS%!st{S44pdYpPnjP
      zSwAKO@6!`i#1sk<o*++{X=tN9_q$DHzshE!2=k4!C6i-mwa>?gf$QiVVYl%p)IY;i
      zn5>x*5K0rl_<T&9NYfUvv)Z&7*K^K$&RIgl_hp=R!%x~c51CE)yPi;xNjtULb-IL|
      zwe^Qs57qF)d8@<iRQ*>`rGRC;3h|O49vE{{X@u8UA%x@M30wc&oKTF@zHO<G+P}ie
      zJ-<fT&y9B=z8n8dal{YFd&pT0IbJ}1WAi7bFFDGg$a^t6-Dc$uo^rl4QX#@K&RCD<
      zm|+j^H9N^`?r*O>R_@>9wSdLUtHgaqT;(hWf**Ks!Tm;5o*JlTE>RW-V<N(vO!f8-
      D{p`$$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BOG*Pl5PdZ!8I94z{~uh4s0#<ho#MiX5D6+ovvJjlMeH!?k?u|qPvI3jf-6Bm
      zaO+t-gIF0|xYR|xdR<-BRj>N}^Z6CP7M4N;gzc8;Ms3wow~=8VITuGaHtFdrwo#3p
      z(}}5cZsL_Qt9#1xq4Fw3hEVF)M6oih=(N%1rVo)LOr}wtNU7B-)_1BAvn0FpSZCXR
      z@1k-@pku;FIWf*F<LfH!a`wJm4DUZ4UI>Mba-MCCo0dHxxI7@__O#J{pD?htUMFPA
      z$ra}@fbjxGQ6v<r+VDxY(_nl4-F3X0G*w(zGKoy_6U_K)?Fc*7|Lfi*<ZDUSHu*@W
      zs($TfvoBl*uNcF&94qJ8g;*f0{;dyT_}7N94ACi;MSxj^7!*DvzZM`bSip!NiHUOY
      tC1H{Hek8l`gt12<0VV`<Y48n`!VBLCn8I{=Ka=7t=EUdI@_8&`@C&(4h`ay*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTXz#>6y1|clg8oFlmZ0`<szm@(?Bh#ZB<$jjP`;CT1yo>ZKvt9(<CI53L+rX
      zOF=;d#rtJ>SzZ<o;F2jzSY1B(;J@(?i2IwFCMlLKcuAA_&e><5efD>zfB*Z(EP(C!
      z)CZS@Ey+|qHl|D}M`J0~h~;v6ER#)7YQt(ame7(Z#mHw>A3PG4i>R2cq>{1j!7+8n
      z@S#k?rbY7G^O{Z^AN&%wE)uspoyr;6{E(pzODG%6kBq2U2~{0d!IYMcwI4IocI$DA
      z1h=9mCB!-w0W1)2)063}W{gfSudG!|X~t6$_JtNien7yw9tob^>0vbhH!5T-L6F=+
      zbv@;futG*T0^-|B84p30u&hH%sa^SrK{b0o8Prt?!H)EhqW36SP5gEqdW=ymN44&Y
      z44Y~S^|#+wY*C52o&ajF!H4w{Di@GgMlCi<@GH7bf(Dtc4#n#hluQ6^mazp7Gd`0y
      z5~Jy?A>tGFj(<c(2z8W-@e-=Z|K70?8TE(?>~u~uv~-Hf&gU{`3V%*Z_9%LuY+e2B
      z9Ja2elE$btk$5>C#SR~uBt##`G%|LI(UrG#b$9i3b{|Xx2=us&C(z6a>XE#nb5>Q3
      zol0&-OWh$MO{<J2LBsiz>YOwl(oeX7J9i|k3f;T&b{V^|i?xUI8C?@&2+&N=$k>MM
      z0(zf}XN59eU7OITV>$b`?<!pxs_SnTK^-zWEvZ>wf)uA3yj&9G9QhREy<!G5g@lBR
      z{Wu`O$0zZ)ZIm7{-(E4P_##v76H`4TVXd9Hpj)U}dSryPsfdwI7+EdFi@ah^1xr8s
      zX^SB9s*IO0z`IbYuXFAQSDNC(Ai*p@b7R<Xy}bKsHUI?`KF}Jr-Fdv9wT-#cVI;-%
      zrCBPSQjD+<TZ9I~7?Uv$ooZ)9-d!V~qtxRE{prtHo2>S@$jit$BJzAzo}Ti9esR^-
      z`jF@Ni~H1uaMoo2ui=;vN9S!^J3_|mI8L}p;q-1!a-KH!R&H59n*a=)5IySR+bJ1u
      z;xwnBWHM@sD>r&y3On>T8v|2fHm`^&y)7e-=K^>aXMLEKuwjuKcF@pt8RzgGTNqW3
      z?#WMNB!uV~+b*TkT%ZX*&eOUlY75RK69rT3Ba>A}H0l-nKMpO=fp87mM|U|xyiL+#
      z4LR?c`Oe^Jc`iRVhaO0z^VuPFuO^oF(gKSHF-B~p6mGcS1>dR&itW#rY*6fe{uM8R
      zC0NSOW&G902(ADu3(sJAIC2A(;rbh>y3R)~tm0=79)2F?=Kxa`CJtgXpVZoEsKy%p
      zB7jv!vc8EzF00I1r_3~?MVUss%&d3dCf12!zoRlTd)dUMUhAugt=1Q}iE!^-OxCj<
      z(8wN)uv(IJN3j_ixAGYOgBUMi)mUKFhz7*Sft9WH1uJeXhgG-55~yMAs^8FP;<3-*
      zbzc=!$e<<o^hxi)RVLd~EVWw5QoS4r7*;{q0<Uoja!A<afVVo}L4jtXEo@?siM@ZK
      z=2`)<%*sAif)p$u(a8?dG?9dOJ4<Q$+_(MLN{F_uz3uOGN_nXs>(rZgzPG+uZ4JtZ
      za+3T{p@P@02B+zjGibt8iFi952BN2J=pu)Ws6sbo6yoj23l6I`4#Gve@^Hi*nKkiZ
      z(K7+-U>bg$wSZUJfex^+VBDIDfIHy8og<uZT0?1*p6gbJH8jXU%NL?E+bQd6OuW=v
      ztZ6rQp3PmLM?YY#i`aw@5yd5oL)b<yaA<Hiup;`|rf8+XYS>LiTqq8&Z9EbFDGN&`
      z4j09=M|Y)UbY%{<$R2RA|KZ@g%pSi5rEdm9owqRDS3iT1uE<~TM<XV*XmG+ry4dyS
      zhz7IG9-gnh1*0!=6O%J|quOKQq=_@lo+yp<R<-9Q-eGbH%KQAuiC-vEY^D&v7aYTv
      zocC9p;@7-1-|*^wOIg0-HTWJo@B@AJBYN=@W%!xIf8q7|)oQEBre2V2oU&eIV}1-#
      d*h>_q0*7!JAF;{p*ou#N>f!knR(0W%{{XKhuPp!o
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+iufX6kVseI57r7fYK{hQxdn02@K_uv^0biqNa(2dr{N}<fbMya&6=!)%1&y
      zcnYZm6)@F2&BJ^YVjssP7JW)2pW}7BFKe&8PyYY;?F2v;uLO)R%s1_h`d&ZK|5k0I
      zt+ra0`oVP$%w5A(HM42!?T%{{tfu3d?Y(^gVTKFbT(xw&sg~@{K0~}vtySx5wGE9y
      ztqc_~#}Im>6=;3Q*PN_vmDh`}->w&4R7x_1l09xRag&Lge9BEe%Z*`VyUcK|RNYvU
      zHw%@G64AN8Jv5(KzG0cR*<K=2sq`j8xajN}F+@Z#BqdzN6^3ZuHyKS;26AX^*R-3t
      za(XjPwxbdvh{hmrFfKvhAjZLzgczdy?Ye|>kQgpjOxvh-_IC_-UEi?`%2aV0y0xjh
      zCdb~Ph!B#*r@d#kNOk?RD-2gs>9aIA-x&#U+#{b<db`XI(h?NRG6;^lYudWy6<Lm9
      zo|Id!Xb0I$cAgp%gX;B!B#a*DR>z=(4=BcvYKnM>M*{w0NCZ?mY_*Mj2@814t8iWY
      zu;F|-WKe=y)^^?-jdrdasO$8I^rZqkTD5l!#h{ztg7nZtL&!;Zf;_{cV7#KGw_3RX
      ziQfqZ1@T*u<K0~1YKvUvWeN9@74U*#VqjQxv`%Ah#WbwllIuDygQz(jw_&W9yye%<
      z4t0h*lS;q8Fcbo0c;@_&r7q=`v&1k&e*%%^aXz8|?KGX<PJ;;~L|zE(6MQ_$GD-t`
      z9v8^(A|V4|T7klMuzE5P`ie_OxaxsxVGoRXU?Spy$>=|17wX}vRuA_urqv@oOln7%
      z{!BqeaD!Hnc3>9wkj72#lz*YS=BLaOVNO|4W~aX5*1$1J2JoFE?_I!cUIV?~f$Y2Q
      zQ7~?oImTV(3sRX+1n4Kz!_Rr>DSEEcbBlG8bKPX7%esX6^hQZ1(8S6#A~SeO`JQ18
      zd5>y8YsSwS=Z*KXE|3?GJlex_eKn+<)bm`4wb0}-9?T7*_iJEYG%iD&vOM);C_ZyB
      z$&_O}`xgOLfA}S0{IdIg9m>orTkK)6{vX2Ktz$et`5~?<)CW=^T>FUd7J*3u(Ni!+
      rAkqi*BP@0)NCM*|O##zXc$#*F?(_ofePM#~bLt}~dh1J+ynW>tl$~fB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~8B16g|^c7Pbp52q=i(RobE~6;Pr01(evN;6n`$`n0r@c5pjOcBcdrU;IBl
      zXd);+7@z%7#ye%96$lAF?9RuTd-mLW?(FYBKYjwpVZ}g%Ay<=4d(+u=c5KO&9R#ku
      z<$K$r%6+>m8e1+e^B@qOT=JyiJ1Uhk5MxN{5ZiTR&3?79$t%i07sF6%x2c3{7i6=+
      zeMeCwLqsTs!BQJ7Dvf!5o}s5KYSK|npEJyya%7=&Qeh}5Rb0+LC5kRp7eQ)@k~!t<
      znc3*z1tEocN*_<3J36z@5L@!9yax>Z7UHl>L~+qVF9sQ+>CC!`VO%zFiNQXZ$C=tJ
      zj9`?Z+o@E@0iE8;e<<vz=u0Q4uR2?K6Jxk$;3`ROI}(BxuHyz3<sE-t=44ubI@7^G
      zTlqL{A!Xn;LvK5p01J0;m*k4jT880&Vvj7>wMtts(9Mu23CY)*jScR<b~apUfq{}&
      zaolys7kV9T#<al<)8{oPl_P@_bthQ$d|q&QgG)s`<jb2lrtrW(j=tDV<4~i8X-qO0
      z6uCw{&k&b1gap*dhlzFcKh<Rlk1RaKEcJvwZeX5a?4;@K<~1>g1q)9=-4_v6ic4qS
      zE;5*9ujyC#iqHiaIqeosYRwE*QA+MFxlRyp$}3Tj71s-dtgUiY_o^0_Q6MvGTotQ?
      zj~wbgena!5oytPb1w`oQK;F>2hh`C&$)xUUnn&sBMIRvvnw1FCXGgOWyGUlgVIVv4
      z9YcG#vX7e#yBPmMXapI0_qAd*`!=!eAWM4|@lZ4-aF0fY`<M)wXK2)znf;3Keb@}2
      zXm!BU)j~dWFqlUSGnfq-=0k?$0mDOvUzpoN{_`=Oj~zV8kSB^~ty9nOLTd<_fB`Jh
      JI!4!d=`W|IPm}-v
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OK%fb6#lL~W*jqt5O5(-z)(UQC(cl410_6)0~9xoL$NWW35D_a;!GINxbsLc
      z6{-rTuN~{IijY_%l|tGoutP%Xwm$)N({-gveVjYC6PG?zS+?&v_dLFH&Ufy!-@jb~
      z@G2H$gcx>KEnl727PPCX#XZ$^O||aW3r2-IYB5(hHL2+`B!<2fJKbs2JzK45x+<<2
      zy0WK_9lw~FE}mdu8HVn0+j2e4@=BWN^Dt!_C8Mdfkx<MstU6>^hIfP^mCUt+t1j1l
      z$M72JoaWA{*-7rYT9qF+s@(O)21^XmxLx5fgt1n^YA6hAbB4w9eyz-%qE<FJLvPO3
      zHM68ShLBrI$(u7=hF#04{=MEY$|BM;3@ls!H!yM#wNUD0PV`dsJ;PKdwR!+KcH*ke
      z>z+YPk+GR!M_{sCY1UfMOrtWv8_RYwUS`-Hn3<YYRkNnatD0HxG><PEMX`-xD|K$9
      zIgk+=$cX3omQGfc5!blJS0jO)GIr2N{sK$EE7-*lu5!Y>yM;N(G*zDGI(52PMyE=~
      zZiaOom@JQ1xzh!Pq=G@D7-T|FptQt-Yz+MvR*=RBL)2(dfl?+1v%+PMLJTCA?q$Hj
      zQN})EWJiu>-N&4&U*ne7QTpo)n~LpP6Qb6HXWI$4rkQ38d$C`z;{Zdvv$%ri7*>^L
      z62(D=#0&l=aV_D^X;$LEo<!O3+$at)Y<Z!<S9pUO?QtTPDTCM>n#qWQ-c)c5aZzhs
      ztDGYCL@`cM-Z#wz`NYtN{i|^jr)0dv(Eq;(uON%J86vuATh!DI$$uD&$emL#DRQsz
      zEm~W%K}8A#;%Z94Y0>AdvT5sAM2`iCGYSeQ(hB<Z3e`fBOU`7n*};;yEGamL^K@AW
      zwvM=+9GuC-@GfR$%rNw<%%{+BJzi6A0q;=?&2hAbZr2;ZO0QV8IF<c7r`jnmDbP@+
      zN*(SBN)k&-0)0gR51MMXnktl41#_bDlIXMmJTI!bB5-EJ3lY;inseFrIPLq|7xt0n
      z<&k=Q2bOG;$h7rrf*_biO>DAc@efF31_dnGzN7P#hIm|*)}uHg>ZA1{u=JdTuo)4o
      zB1sOUD9K$Na*Qk>-Yc@`rqdCUg=ST1=pokJ4}5y)w`rH5SmRhn@=HxC^kO|pWRDGq
      zQw&Bo8|iLSpbHVXwurc)a{&r4eW-WqBDRO{1pSk#;irhDzQ({k$iv@Y=mAuc#CITK
      z-a+?w*gM_(+Cz*!7V4f@TlI!e4fT$-0v*n$pQ4{kjy@GWebc>}hdBN?B{YjT!6?_s
      z2bj2@ULsBYE;iHOL^_;aTEsgNgs_OS4Eg5$9SpY(1-AS>MAA#6k~n@JJs3%c`y%1E
      z^a#^^k$ltlBGIaOYUk2Pyi8z(n!Fz1a(Gm_hqzG3rF2}{*E4$KcJY?P;z8iA{`e^{
      z*hmI?a6NnD_9BcBI!vC^<%Eb3rk{KhyHKr^c$7WC;rz<bzQ9fz!vqaChwZe9!^mS4
      zQ#eYimqih0=`)QIF5x`pF@tNE#fP|vTd3eR5&TP3aTg{Yp+-Hl@C-J7fP)|5;yFD0
      zj0OCH>-Y^HF$LGzCVb4c;U-h*e+-|nNqovK;4@an=K*QXAPS;Dn>2JXDKb%)oulYB
      s(dH~$gF2BgOgZCtA1O$bxtnqxAp-r1ZIqdGYzq-QIFYwUHHP5-3E!#$TmS$7
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>O>fgc5Ph43I2c1q`bA10EtKMXv~DR#NC6~L0WC`Cp;aWr$w@Y;E3=LqJB0tl
      z0WN6;h$9Dn6k^sf#R*X_v)-L~GjHCE{OkAE9{{%TNI{H2?+D*GG5hAg5Zp6*J=^HI
      zPTy*A*En*0(KJ2Y+N(X^RghpPToC<Y;BnEj9I;k6ZJ#qFpIE~3o-xGre4Qb&>$JFv
      zI4*0rge1dE)e`)T|GvT9BeP)>B3*Twrd>B(OWwoBgm-N9sC4y$+G9-1RNCgE;~fX3
      z_vza3+imVLEa~~GY}OE#V^ltRyb?IdD(0}DV4h)aid(}XmZ*UbuGwYC=<h1ivoNGQ
      z=g@O4(P5bXTgo;?#~8g*9fq44ZXnCBu8*ih{bAndQwp~ku8lXSV1;@Km_|Y?zGc(c
      zRNTRug1Zc}lMx#3VVyzg%K;s<Cpa85PI%KRPvM{<2VG7r&#*9!c3nmkHI%SHYMb3I
      z7cGX3X`%l$9nvOkaxkPe8A{Q0dD|MujhO6#rpss@)I-O2oBX8}?9G@wn-YRmk~&U{
      z4x-KE!jV<zX3)vxYvB~BFZ2<EN>;jo9b6%+jRNSrN;gs;Gh`*WM5m04#Xm_KK|YQk
      zW9P_OTn~}kAySEdPn{wCc>?}40$0xAq(undqGGaevcQH|o<vt7=wt+)4bg2<LTZss
      z->MaVV(}YtZ;NMGJ;nXf5QQN&Yo&iV(@0S4D?;p1)B9M)>mdKiC`Xu|vSEvUBU0rI
      N9?+L$xD)jC@DEC0>gNCe
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~8B16g|^!StzTN7R8UMARuiK7VujLNog=?Lg)in15YmP*e)r%&F(Cz{v3@y
      z5rYYoL=t)TM;Y&IYg;NW4QaZwbLXCOzs~IMKR<r~Siox)0fuzR^7K99z^LgK7rN_K
      z^r~YYm__dBTaM=nUQBzUY&)hfxjWhMo)z3NgzczM7$TBFuNYQI&+YE<f>6=N5cRE|
      zFe~~$Z-$U*6?u(;Wf}TJ*>or88T9p@@>nA1vT2!Og<&z#BQ}|5P%?Ir4}f7v!vMlz
      z1Tm~(5K)F;BAJ&bBN|lnlgGMg@eOZ(mpfa=ZiQ1>>vqAY<PFD^`=(Kmr7&cAOXjkM
      zQgMpKYl2}lk?fJKYh)jZE4)@K@TxFv%T;lYVXQrr4SUlol-DYJpIf5k7RCdNs~BUL
      z?P(|)9%6#}SK^d<CXu~z?qS3+tl|;FL|a~2sh*rCavxT0&nmjDv>DX0;cobiqZ#hV
      zGEy35@R<7PnxANJWR{|H_`ZF>Rp<=UZQ{3<>s70^LyFH;rL?JIE%GqtFie`DfwU0~
      zr7wj^EKfAt#vN+*rtLWe{>GF#8SR<|U7$IMX3(;h#hpyWa9vKKiCuE77zQ@Yl4S_b
      zA*%BKVH=hUmuvZ|YFSyrI8_s*e+U8k(G3715qU@GqY)zeAT)Yjqg~qf0ESXCC%B$E
      zMI;qGLF@+|1#p9&*NF)DMzAkL@D(>{C&2{4C~ncpWY@_1F1;(Xi~GcRKM)X49TV^N
      zF=9K)dt$ER{?WTL#J5i|dG7N>5yRAlXoqC^ju9MnM2okgO(Q`#nfx-LWF}FH5tDK1
      zNPb30ISd|>wUK|H?@{kyinf?$5p6OpHkta*Fh`lqpLgNUI`I7sd?ZbEFEsH}w8~6E
      isX7*qy1>i_2gn-4Q~&H4p3^Ed$4KBW==svOzxoRf6n1m~
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~8BH5Iw`T+YeX3szpAOPqnSWf{LQ8K*d!W3mO(18z0D0ma?R5$#zR5@hAD9
      zRin{JeD+5f=U$4Gs1K%n=-o4W=iD>r&g_q$Uk(6F;Xw!;giP73>)Y0z^-6bbU$50F
      z`mR^qb2e;GU-jxW-`>d9{jI9!_>Ns0%Wc@M?`%4@x4OS;hY%oiifp}Nxn<pO>pO(#
      zvlU}4`*_7L9uj8r?HrIMoPJ^y*UZK2)Y@X!TqHzZOi$ijTh1;SeDs2`vfBDGxMx-B
      zHi2@4Q^xZ1rLjUb|J*PMb1&N!63&z=j_dfd1SOFy5CRL;4Lgir6oj)H&fz>k%`~_4
      zB=X0;n7-$@<#aBWEJS#7kA@)BFhT<KX$T1r7T}_WumBMOhBQQ=il-3`8cq|s@{VgS
      z*LT+0ervtLg~syLl2s{Ko+GdfMxo$}kaLv~|C@?K5lIbEoZ>3{EvH5Zmu<grXdYL`
      z_NmfJev?fk+w?AqN!$owiqPHS$v*eij)t4K#g}S%p0!`9?(P#(t(u>%Z`&n5oog}k
      zD8yzGLQ>_^O~OiRTGQ}kdv`9JoY63iyM*ah`h|*BtEF2s{XXxwJ~0d2zEQJU_e%C7
      zN8DD=pA$79G6-7Eb!|`b+O-h4$HxC_Zg>_>jwX9*I%U`L>mDEctVOF3mTAwJ+4TGr
      zx23}05p}*-G&8^}_pw~Lh2_fK%R6GC&w%be(Zh^`+~S?+;{0w#uQ@7yFTR3`u``PD
      z39<KxOLQR+kf>Lp{$Nm|0f{cDszigKZ=9$!5I2i~271k6uz>-ys5UTYzQ^!8=I+2K
      z|3`TR4Pb`)Feano4Nq-T$s*Si;JB8$Ht-3TQx`uXah%;Ls-+>QG{RFeDjDK}k@cr!
      zo#IJUsxaR*TyL`Kyb|vUramC?h93^as3J&LC5?8tp-B_LI3_qE%(=~G36tXu3>Tj$
      zse@uhRJ)|~e};bj?MXJyIVvl{J$t*!k>V4DfM|?TpK<3q=-+t??n%xxG9rWX2=_6^
      JS357`*<Y-ocG3U<
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>ZBNrs6n^g5)=|rgyo(~BfO~`TBB%^OCz6m1(4b5F*ll;?VriGITjqcAgC;tN
      zCVupTKgxJ+SFxFcEo<*RJ<oH_^W4+@`u*((fE8pFgc#N;R$V_e8b(vMxU1J{re1aI
      zhA44Ie``6sW}6LOdf9ZjRTH+AH_SR$5N1eT1H4S1^YR&@g?hQn9fr}ItfgDR*0Ud6
      zp7p{RO4t&XaJLyI;$1Tmd4}){yTn!W;D!bT8beP!k?#dVzlI2+3<Eh~@x%IAfje)E
      zg2@?%a(2-$^M)hj-VcV|6H#MW&t0S7D(SLSlUo({#4EqAVhj@s#u<jY2-9#2BMcE!
      zoC%j<Jf7$(P9+U@G)!TVavRcNNjt4!#*5TUQ6w!f*FJU~VO1DL{t}snRngngjAWV9
      zFpGJH1>eQsbH8>lq~ZY*3gQgY*LmRzQ$rFd2IYh|ck5?WhQt-;)D{>lqF|Avd+r3n
      z*}5=k##HE7QLxM~*qNbW6>C(|Gvuh;A?m1b%8PEMtEe>A<%Dd|xOMX(uOf}d8lGU2
      zPSdDXxm99V?3VhU8ozBaJB=-A_C2DgI=n2Ja@smI(6}%fHTBr8J4L=H<V;RoHCsy(
      zO_VfQ^nwzdoN8J{X{{he*IwG~Aw*w5O`g*)^%Z@eX&1r(UHd)c8p2qo+zkv;Y^<G)
      zo5UwSs>e!wVHhJm=PKP9J&Ps3ps$6|kF;(x%G$uD$E3A$d?p%IOj1Plq|;sIMUpMt
      z{?q~934kM)U>bHG+)?~)Cw@18k6q%)c^|(_t;*ujBx~V*Cwf1Cjt0>4KKeabCheY;
      z(l4-Zkot+S??}H(U0~@P57R9?Y9Vuw{zp7S{sM<|B1h2h3e$M)6`5%h`9+8lPq9s9
      RV)QStLo3<lGeU;&{15f$EFk~@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g@W^v&nWfG1jlDt+hqc2(I->s0dONgs6pR-zS@4J7qFkW@m%>R~A|-
      zKKKKC@WCG>-dTf26#6iG=bn4-*?Z3J*B_t10NBPxh#Fx%Gi7oprs6|lq)UoICr37)
      zs<E`md#Ci~c8EHm<69CfOqRSI9m>>&Xb@H_w2*0Om767dR!x<bnH)b)oyrZNITd=-
      zh>0Y02Y)Dr&MK4b5E@UFQSKSxYVY6j);^)Wn~!A+go`mkG$RCP$7rEL2ztJuJy1rz
      zDJLUo--(f~UX-Uo?+dGZJ_qaWKox|I!MSpItH74L`*Lq<VW(fJcOu-tN{E|(IWn9T
      zPEKOn!fnD*Cf%ORkEC@o!u|j0TA=;yL^RAxo648$AED))f9U-p#IKBzc2|p{kgTBn
      z!lXJc*uK}&9pvK>_Xum}sKO(5FyM0m)aiO7`46b^X(3{CiEmFh_ej)#aEiEphD*m)
      z&t;EQ6`rPV=yD$Oj7P6vnInHZT${5z=ICq9{t4nwxc-svHF%DO$LagRd~-e@;7--G
      TiZzaYAI|{pyvxrz*0J&vc^{pZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g@W^v&nWfF|GBxwKkSCf~$QJDuNURA!;Go_sM41PMOY@+1b$kD+NXI
      z!5`r7@WEdp-dR(PDD+|W&OLMQopa94*B_t10C<2qA!>xR%#_K2n2O`XNS73aPL6Co
      zRTF8GH%{r^R){*G<4Y1POqRSFAIQ{&Xb@H^w2*0Ol{-mxt(qz=GdX#ZI+Ytjb1HPt
      zh(k%}4*!f8Ijc;zO=vt)M!Cm?OZ|V3H}?qjoqQr&Ae@g8q8TATJ4Oo~LeTdG?V&RA
      zWqCN3_O%%6>Y_XqdQVv8^BGuo`>G(U56_g#tO8py_oe>k9H(EZw<BD^wGdYc%YSPh
      z%}j`K9XALInRL50Ka$p+5H|j&Zf^K*KcZ1y+EhMc7YQxz|2=;VA%1R*v^!c9g=8J=
      zrzX{T!6v?tZa<%dxJ_6+LtBiVr?$w{PT8JP#C^6n;B^kv>3XO6iPU(t5HY&IyN8^6
      zBpTfPfOzl`7v5Dh7d=*;a5sHJm-Co=Ji3S_j{JAAJe#t`(VsO3?-75(<+r@A!Ov)T
      foW9TXH)s6;ZdO$*Smo&X_zB?3Tl}qK4eLJv4(6!b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%Wl&^6g}55abw(;nwB>-JQhiKjM%U#V$mWbqzD#;AOtKX$t0c19b03&3V#Js
      zD-a7lfR94lnPh{41Z+I_an3#W;U7Q0eFyLmw<83E`%_bkLwPJ`!l+7=WhM%nAM3HQ
      z;&r97J8!Hk3N_xXClh5OgoJYrE;4DR;^pvAjVeNO=+lI)zE2vRi`|cvnzMEoP*^q5
      zGeSBCc=mo}wVAr?V{LTxgwX5!k-yC84hZ31K2|XrSWVEv8llnY4qD&_6P!WQS!sd@
      zD}?pFHtI!vG*tGL9A?V(k&k3HkXAc?5e%yXT@pn9zm~!StW^1Y7{X?!yWDP!E4UWn
      zDq;ICr4wAo4MKFFW>4#*g0S<?D_NE$#QS+|N9vh&Gq>D9AGiY%lIO-KyO+tbR6O$P
      zZ)ZlEch}&*BtYs`$yVwX=_BA}$DBXQ-djdE+<NZ|lHT1@HtwBb<Ff~z=WmM8!$Q1c
      z+Iy_w12#F*p3|^}3+!<LFGJpPLIDe0#HEGIBkzMHPFUdt8((qx6JrB7jV7Z2>FXxm
      VP8M|oY<pB2H~Do<6CdIh;$L@eu{!_&
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOH&+G6#gzV(8JJ#36Sv-^M+)mC(=M134$mP5=SS1LP%hhrn>{38oH<YL5;t`
      zU!V)Ea?K)E1(K2~ab;;-xN+k~t1Qcvy75tESz4ZZr|B62B(UiF>T|yHopZl)AN}{~
      zX8`)JAfbUFzhnpMU2RpXsJ7{=o>x-KuCr<xrmNn{_x4V^maSW5tyHu;zpLPzuI4+g
      zgg8TryQwA3UQ(wP@0z+Vp@|_aP6OX6soZ7TgCViv7~@W0`wXnW&}i9)S)p04o;CT)
      zme<wG&{I4Nr6Go<VavAs5r)3Z;aszG4DoTtFq^?}R7MNrBx2~0(TYxnSSCA{L>kXZ
      zc!uHPVOYs{4$o7{ny#Ck$m-DC3Y^pnG9)DU>ZFWjBsiVZGLkqW=n0#1e4k)wD_XWW
      z8LTXt?yR<0G8x*7j;@vFG}q$$@G#En%rJ1MQbiX}<&J5F!H~-otE%x#J#a1mT~!PG
      zWwk<**{PeM?3{!g!-bk!ZrEN>E<3Jo8dGI1D9f=YD!N(bizF0ukVG7Y1BYOcmNjqE
      ztdO?o))p9AXg}?mtCkZ`vT<AdQZm_tl4eLoj64Z1Gn}sJdeWH*^yP_?xnkOWWG3M<
      zL$+o$?$}frmrSlZhIPl%AJ20D9sE9rWDMg~BEDo2{amJSV3JAX(IMe=hI6&z7I<4t
      z1^(2XF={Nsi}*1#^D>D4NmA6f3>DOGiE>n@*6pP*qRw*76=#){6!SQ@&ai&<JwL>u
      z-jvagOMF$7aRrwcj#ck&hb0%n6vKJWwW2;vHyrJ485v~xYDUI2Wa(CBoWRx1s}|RH
      zde;Nh!?79Uf^D1bcuDg-ldeBedxV;2tR-9X1DD)qg&1~Fte)(8yoL`dn~@=$A+|C4
      z8WBf3?_PRr8+h;1+|D}{NTv8wL;E9S*DA&~+Rc+)1I?$D+&WUq1GFo-hd8#5<4SBD
      zCzRX<POanYCuGuqE*jGm1o)c9FDSs5IEt_6>=C-@R3>PG!g*YvnR*FX8hM!EFic_-
      z%KQUd+@iB8UX$?oM);=%l|<+dqWvOz=s)A436TcLhDT{r?i0QHIQuag<7=_C#{j>r
      zBh(fV>Wg6V0v2fDFdyy-@m(E6O9VlhBL*)~xHv)NMRq<_gLCR9u;cWlsDdA%WfKFG
      z>);kYQRXSmLi{$>bOW#4ySa%x{TtaLzqF{+YhgXA_5GeM=m+}qBUSJxdYpc)<I*2-
      z85I}L>pK=!C8ca&?0qD8R`J_w4YjfyA%OtDkT`xN?BD9}QV||?(XQOy6L|uo9P$I6
      zRFybwpOk9cSlA=gZVccuwo^SxWPsmk{DaE)Cr;omqV+df{DVRKTSsv;qBs$y+!v-S
      ziCm3Zrb1CHR_887?pM)C73US}58d}sBumu!Z!41V_aO9tilSMo@ZU$#sZommMu^l+
      zGgnU|-Cf}xE$SPC2^i{7a=Egn%Ue%!$>4ezB}=fp(VLar=a}5UbgiYUEm$Av+P-e@
      a?CVDQnib@4V2)<~fO2i$r16$GpZ_28K@n&G
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Qah-qF3rg@F-bcm%0s5COYybcN
      
      literal 0
      HcmV?d00001
      
      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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
      Pn2C^NFSuXe6Xg9LS1igM
      
      literal 0
      HcmV?d00001
      
      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
      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
      ZG}0^IJow1f;$wV5PkHNM_!OVR^FQ4gWm^CM
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+iuf95QhKFv2_!AB9wA0<<u60g}4MEg1teh+}es=OWa^>f>m4v+j4BgYjK6d
      z1rNYOA!eO8UG;{W-Tmet{W~+efBydZ4d5l7w^3u*JC6(fLVOe7^)!p(TsMkzHcV4H
      z4KtBPN!&(*VMAu<QxTu*_V^;4<P<W_95?vDy};yy{+Z=5upvX&Na9&8;@lV0BCG@N
      z7{lf=*BK2@Jw9@!K)3IdLf<rl6WbgPJ_ZY2%5{eAQZ~88J+4Z!qNSx_^<9^jj!lN%
      zRmW16eyysGh2K(WS8jd7;Eop@+wV)al`1~s$K1G#uU2vQvUz!dR>kK-@rTB|sx>*4
      zYFLhAmgb!*cw+lpUMU^A46Qd&9OZ8r>Ia8DL&HcuhZ^d5+`$9vGpt)t9G(_m$6@A)
      z@ib)EvXY6I`XY-YFM^HyOEhEHxBmCMuNgEqDY8j8h@@NZ>ifTtPfy>4Dxz=G#V(p?
      z5w(eGSRr0jSR-CjxI^4k_!{xL!W+b!3U3i_D}0@}r|=Ep9ffZa?<#zY=(fUli0>+V
      zkNCdAd(=ryPL}qE)X^*28STxZpLq16Z1D-L8YKar(15^GI(6nrIKUwh!x61DJo^V*
      CRhe@D
      
      literal 0
      HcmV?d00001
      
      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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
      S-(5#jn!5Qqk;DI5)boEQ@uUR+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O>fgc5Ph43IE2vBLO=LUOIz|$usCob2nnSPR7wFQZEhSk&L(x`+LpZz<zK-m
      z5(j<&KMFBkJ0@`pz1TC}H*em|KL7gt<0pU@*wv6>D39zwKjmY7uDhOTOT8Jm{--eN
      z3U6#0LPL(Bo<^Cjs~@=TVPHvf&oO2T81k=8+mvq@URK&6wQdWkA9oHKQD$*_q<1Ct
      z7+vzE+G8m0pBuuJrepgWu3sWDZlAyya!qF-ipZi=!ZqX>7TcyRJ_Kid;T`e5B^Z|5
      zj=`-S_slSlKj!3#=`(D$(-Wrm&|t_0p2@H<KNCYC@P%jdGu1-PJ3AqryWID`INpF^
      z=Y-n>OLPO*bv!8sZzZjvA4t*TRv`S2@Ligjh+35kg5sH{nAz1eE$Yyy&aC%i|5O;V
      z5iaCz39DEm8D7G^aV0sy4KBsV@xC%F%@9Ye7}iHZ?uj8M1I!P>upQsJ+QNUOZIti`
      zk0Y{U+rO|Cx)>gjP2EXeYgv5kc+vRN&wRQ^JrUCtGTz7)pm0aqC2ZmeId`bY8P?Ru
      z)5^bH$(u<pQnxh+OHSrhP)*kfJVUh1(1t5%XFU%+Lq8-LjDAcYM-f>V8EA1<K#`&&
      zI?2(yP^<4go8ZQGiZi%L&mz5ncZ7eB1&V4B4vV-&8C75j%fuQ+w{b_I3s|8jOGt7D
      zorN9tDGxPh)M0}4Zxlui@~XI_$jcEVA=hvZ_tm+E2Y5&oEWFj2@)hNwxO}ZXK{?I%
      qSuw6gh=eh(co;FzrNlh*(zen>!+%KI!BZljiBLgRNvo-$>VE(}Mm}Ev
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`HU2D@|6vzKh`sUiYw%MxPoKxp?ZQ3mk1TQ9n425YJ!n7dMLE45I>5`BpW0$_%
      zdFdxna1^}o1NfoDbJDa#o6ez9`s8^z=lst9IVbu4<Lfs7o7l`i5?Je6zWQ1}(vMZg
      zH7!ql!sC6<bIq3T84r%zhU1yGl|fQqal$Zio)%b+o=?UQ$hLLQ=-RGn^abR7jqTN*
      zZgth|p5E_o38atop3kQ%!_!e(`Y0oH9G9){nwII^6Sz~I4EE;$wWdIF+wK@yBv8mB
      zhoV5DT5HaL(#s=*b3B{RV+L7)f@WIAu7B7v+^2f0XON9%xAk6AcTHZ0n@R7LNdjux
      z8LyUflzpr3JC5yoMrW*#Vw58L&G2HhYUJ9+_rLXb`dRp87QQS{i4V+|BuHyH7Avq5
      zb=#x9vAX||%ymv?m1r?hgG{(_BAJ9hfrA)_h~59Vs2b;{2q<Soal)0Z;XRA5?tHa2
      zSv6|6Up+>3UmaPW{z_!`Y~O7g4^8gRr73Uo2ETap4WMqPe+m-)sM+beAaSeHGfn$B
      z<Y_!ltLL<zpl3lDU{<N0prkZTF!wodDAOn-N#hQUk0`)n%tFHj+POM(!$nkRMFFrt
      z7!k}C2_yxWOChF1YmQS?>H{n>qNJ?HaP}$X7v%kt;vEDWW#~8N6mf;v%qa#$DVQ;l
      z1?O-rj<_<Nct}Kxylo;nQ;0Wk^AzG*NOUNJ6lEhT^~L~I)>l#%k})dZP!ZlzuJ2I7
      z`+#|S=s8v?W5kpLy{u9W^m4Ieu-+tb>u7{@m7aVnDdh`FpJ*b1%g5CQJ_Hc1IT?fy
      Yfpu)q4tGJ+dG2@TkFm}wxk<S76H1_VMgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*&2G~`6ot<?ZbA~%Kp>?}`6*CJ;<gypMJ%ArDngV%HXy)FO)yIB$hD(B7D%8-
      zEO-DO3UOv^A_EhVg~v1FbH97;o$-&K-@XHQ0J{W3U~?EG&PR9Ro;l;l4`Sz;96KX-
      z5=IAS18*GrVNil8(ELZ0`(6}S&wu|5AW(X*kf#Exuey2VemF?QdjiFWe&ENC$ZE|K
      zwfh3*lknK9pn&rh%2*aCwA%eL1TI)8;haFN>j&P`<mAYUUbsgiPoUln2kxlvM!sBU
      zn`ZpMr=hLxB0ZqJdJ>!_<8c_p-f`-g(f3=b9B1SPLub~Jz4`v7@l|PjjlIwZ%OV9`
      zH?(Mh-F#Rt=7|melkmDsc!NYuq{_xh>bYzgRN%2DAg5cj;7ytTj)1)=PMT^Az4)c3
      z<;_-mUV8;9y)cOeUdNZmzNWj)_vH1%P2QIRpCvwqyf*wP<h+au$0}DH?i+kp>?tgJ
      z`zvanxiWB(<1%A`eV904L<e=QR#G)C;WAf@LxWVFBo!+e^N<=DS+%#PxMJ^Upog^a
      zoWVT>-ALs#XcbMY6Gnu>8w!6_hrg!9zajoD@$cr~H&kc-#NW#BuW80)YIb91ire<C
      z#{LP42xu-;d^^?8>|6NFw^Sjrzm_UQp2ZgKW|<tmWsytv7t}s+lD565HYW;grGgAC
      I&{C@QFaLN9Z2$lO
      
      literal 0
      HcmV?d00001
      
      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
      zcma))-%b-z5XQe#S}JWV?IOru6+vm2!fN7;!FXddsWyfb+lXE*?WQcjZL@4m)jKbJ
      z7B4iBka*z(_)x}gPS?7GMNHGP=ggUz-+X80=dbTS0Nll$G!hES9j|X4*l+ED)$?61
      zu(oAw`0nFD%jpGf*GnU*Fn`7+azCyx8@+GTtD{?mao@3zx}JinDvb4gS0P^$cgu4E
      zi@sa*dEk0(@KC`hRZriQn+nNC-L{j#7$$SbqQESra&rRo&LNFUvb&PQ1TqSfHP>^V
      z_uuR}{tJ8W(4kMQ+p-Uvw(rV0G$w<6_ef!-cA<I}m+yN={a&x@2Tq$0qp(&Q)_7=p
      z9c!d?>rCZR@}iWy#0QFx5qXMLPRC|cSdE751nf;Go^w+;D@+s<pdplNL?B@<h5Io9
      z5x)!Ml>}Q>F#k7;)H2a=f_gX<Y$eB{NJ}H~%5~ZbrSh<jzhjcw>Gu7W^Td_L&YYRl
      zO_?fAHV1_N6cYS#J~-_OnGSx(Y0o0Z^)gSpw2$#SX`Uc&E*zt1R*o_CRR>ISHIU?5
      z<@%Hfo*|DKW@x!F48v8-^27uhqx5c$poGTEhnP0clBZy<pJ2gU6wXEr=Os(tW%MiN
      zd#yR<FmA*t;2N$oD|2aLLhpnqg0rk^DC`t*`FvuB#C=A)Bp#eYT*a+_5O0UX9xF((
      z8pB+#oM6pd5|MMs7?lGy;T>yzk0L&3=DlI$NTq>4OhfAxm4?<U%`zZ*ljNFM59t=a
      u@+v9w8;YN~NkG~s-3C5ti1eHeAw;2q4O(OhqQO&NXov=XiVfb>Ue<50`~0K;
      
      literal 0
      HcmV?d00001
      
      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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
      KX=!+XvVQ@A4~zi-
      
      literal 0
      HcmV?d00001
      
      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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
      F{{f@Xb>;v7
      
      literal 0
      HcmV?d00001
      
      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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
      AR{#J2
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVNZBrXn6n<{PWnsIN6alGygGy@>l7^-t*pw=eqF_K;YHHA0H=Ao%47+i&DaE&{
      zBkK6}!4LKAlRv;2oe}8Bj9>huf5C74A&%$nCKS-26O);H&YpYEbM8IoIrskg_piSJ
      zIE&X61Q_B)tD0ESZ|b)aWyiGK#GD+3lQ#8|UF;t#mxb==mLcYJOOzBeF?9ILD=Vf|
      zOiX)rhPF4VddYNGZ<OUahT%*@!2Oqf_Y@&5+4(Wob?Qi?4I)kZ?q<H~iVEQ!sF(#&
      zsiU255N%#MduJr5kg@34%ereC+vgl=5O2aR*$zQ9yNhO}e~{tC{s4061=BL!iwq~j
      z4_F(?GBi!t1<?wIhcvX|po$>6G_<3eAsCKiRrKHy1&0|9?=0iE?G%JFsT;2CtZF!d
      zqYQ@(N9eA&v|M&q{dtDI@D%+bnVr6Q&o|*ONvRb2xP}wxWoWGkx9)j7ypK~PtKcNV
      z(Es9$iazwqBc5VNJ|IPV37v{$Wv(96z|pKA!jNig54+f=B8+~C7t^4iMZp<{k;d@u
      z^G!wE2Ro~w6{>=B4CfjH^T?(m>Ek@1;Q%xRBMe<T>o;!S%IK?h)m1T!^D>b{x*oq=
      z34O&)OxTvIo0f1=Q<6YIjB2=ur~LZ*t_(+ZIQX_1-O`KX<ok?i7{>&WP%ji1qB~Yk
      z*vn<x5|*3tc~y&9H!8SPyK}sWw7D#-ifLOa(s)Mh_E`o_w3K0{kx}p*L;IfdX_&z*
      znSDlIF^gtljL5xvAKS?Py$?z3Q8|neP=?YmTV2iz=c=AB3EE)BHuO?fcTD+RGd9U4
      zXGrYdw*TTJgI4kiQopo1ceRdx<x-8>{8h>NvgT^JKn*MVVL`)7vgLbx)1>Xpi;^&0
      zQJ5FbP1B%7VJt|B(U8OfLyK-0qT*dia}77q{s*M3s`GZ$F~p?l<!aX(b4J#Rjyz=%
      z!zN04r6MW{D5b~tB|8;i&*Q|P)Ls!v&91(b@we}BVvE-o7^GST=_%w0$nGaCAiLI+
      z)Nr1ph5<q$d6Uw2kUZKEqVW*G%H-8V)_c)`b#z2G(HU)_-(5Vsfn(7v^ySF*=sHf5
      z9+rA^9RsAtrJh*FAn8e|KfaEkEd+CfFcaIta4yC-@#F?B#G=1oXai4QBWpSrQiGeA
      zyo)K%LQ|)uQgfV*OUHQ4F;26Ca+a)n9Ocx2oTBK%xoEQ&>G^1E19Q@p&ILnSJq%gm
      z(*CoTi_0`-(M1XS5}a4j%2&|ISJBJgM2x?M5&kyP{9R=DZRGfS$n*E%@(=J1{}5|@
      z4PWt(@IC(+Kk`qo!9T_C{4@N)KgVDE3tS=WUauPWFpsPBmBAgnK=A@t!*yIEP1fo~
      zbo<#S3!^_M(_SKS{;^*64}P5lCGM5`8}FuKf!~3`zs5oS4Z8TZILg2C0&6~yA2`&4
      z8+f%A<WwyPC%lfIC|UqA3(e9Y_=D#h@T|Hw=3$VGQYeN3UL&UTkya!bCb>v5PSPZq
      IB)NppKk;szasU7T
      
      literal 0
      HcmV?d00001
      
      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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
      BbQS;r
      
      literal 0
      HcmV?d00001
      
      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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
      B1LObz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7I33yc175-1QnG6q!13^&{YNJg8lYr8SM8G5jI+y?@F&b>8Z!(WCILwPPZ%9y3
      zajR?H>O$43wTfDI%><0Qb+1clwN+cS;zCv2ty){#|GxJo^M)Xe;Y;qj=bm%Vz32RA
      zxjgyx-S+{QDr0>p5KQk%q-$5`tMuO5?qn=s)h<$hjpUq|9yhxx<{1eismB-T2_s%%
      zFSQ!URk2PZ<wKDm=t!n|Vu`NW`8JmiC4%vaUaR+5wZ<xgo7Q()F*DH|OId0^K~X|q
      zX$ZzN=gBwg5hGqFC`nnml}-r?t<~LRjwP0vf)Nh2U5}?J>gSUCS*q6E?|^Pu$yg+9
      z85A$i-@YMjS!RO!Ybo~*OFPYoV7Gj>MssDvY%qJt7+e;M8;gx-ENR#mSlYP*_T@(B
      z(GGiwwLF%pm@1guJbbIF`yL!i#H?9@+RASuSk+G3G@4PP6oNf9lw)iFg&414H|$O0
      zRaUk8FmZb)*+%wbAAv6(sZo9ipaT2(urJ-V(_?G+9xAzAmti%Voq9ZWtPyRcwG&-}
      z{VHuE*2Z-L!6DXF4J8FI0oCe!ljxltiL|S`gf#fz_oG%&$}>8CR|``$l&XaTXfrMl
      z0*d;54FN?x(7BRAgCZZKVFdh2<9IbaSi?y8)z>TyyEtEmXwcyIp+PV@4~Y&`{Foyc
      z8L?_|pbDTK)oPP@8b+Z^O~V@I<4{2$WmruKJrXyf^h@QEs&+qGNUm>dTO4jUtgWe4
      zaWB-cNZr1S+)h*wZ!7ggR4p#n(26#}u6i`OeaP(Nn(Lc_s!n;Eh$zpyNEXZi9DyZ1
      zbO@?<>f^kC*Kj0$%uv%i8SklzDT0=72hg3PxlRG^C=E;TQ`&>5%F8cAV`bHmZfJT^
      zlbe4id>A4MN}YnSl@6l=zlD(%3|HDi`N`0*D}sIyqrTRr#qHt7CMCI0{aNh8(L)U8
      zhO-|liN4NAjhVK((^dd09KUyK7>zM%8uo!XX6#_5o0p758}zPbeKkb_NMgJXs~DKu
      zGc=lsl$F$(Wm5s9F+RXkuGVlYj-x`N!r6d=9)~-$7CoVN8A;pIYXuX$o{pHwsFAE~
      zi&?~9gFW%%1V*c+C^fbL-Lx0L8dNK-Cuuktr#M<25y9S$*4|ntr@PxatG43P1fvG8
      z6i)EKyvC_GUAf{68o4seA7%SA&eCu;&S9*^Y&PQB$p{L<j%1x;J6FSbIG=2KqI0>)
      z>L6i7zEHz26uG#IhV509i#1#_NLj6JuwKJ2aT#+R14dBgu^55hZ6;WI>O5J<gN!t;
      z(C{l<$rJY&v99G-FZIq*TCUdcYo(=#$v<8)`wJFJ{-~AfG;B~SrRqdIv8c72wrGwe
      zj0NeH5hK~AVxJbblViJ{jH$UxEK;RGFk|Ntkr#dW<yMu6xD74A?m08&fsQ=FXc#|a
      z*#kN9jMD95w#Y~>Gm|S-wwmBEoVQ>%sp3tq2XH6)e7H-n$Dr$n@M*}P-wEWr#KtmT
      zxx-Sh2?IXdO$mEXPvy{X5ANlCjbqY!T-9;+cs5Jchf7oh->=~TJjg3Cd$byHhP@FD
      zTLwcnU#BbN!^5<m6E;Irib_Y1Xm}Klu_qv|vm1KTlFCZ9dGp$(Y)(>^s=yN(o>T?6
      zG~FH5Eu%gjr(Xz+y>fmTVm!KKcZYqhnanD7w^e&StKm8Pf#>pEH2++CxkldM!F>3m
      zV1Mt$2TNKl%WER4C!^WUuSGxFs82*&*jU6z;2}J(;RXDeT@zK;XS*xGAzr66#`RRn
      zE%@03<TQ8>I=DlfA1?}6xi{lw4S!Y8@l%7{$El+IiiTHJq4d!cZAP!<!{1rFhIfT9
      zTYvyw!^=Lr!Tw;FLaBPzxo(U7%zQJ#{`M`wq~VFSvR`Ez^(MAz_=kNH%XFHcQf$Gy
      z8s5V;!7lZUjZKT%!VBgtoxiZ5Rd8S)l5+Oi-Xr1slhyg~0g<4N=Iyr{(y=&8KmeQY
      zk%o`)32nDZHOmW^ZP%Y=L&(9SC-7KQ-$%6{|71p;7@DYNUugIe|5C}hyW2=GSA@KN
      z|He+wJq(@vZw5GfHPu7dwp~Hns*SfQ)BIN>1ZbMzf`x5M^UdRz0(NDpMK!HFVV@NJ
      ze;~{;Qgo!QUL6b{Dbd6yeiookI;zV|u5L|tcbiFO3zaE6c5s2bgz2CDm@1eyOdolp
      zhQX|)_g4>r;Q>ei)|EQI5uQd%4^!AiAEkqyd$^8a``K!ylbyy~K4i#YM`HGISEJ6x
      zxDF@yCbKWD9!;9}$;bBB8@wq@VbLw*Z!vr80@bCnG#03)+#cD6+avpKdt`HMk8Hf{
      zk!`m<vU9dac4qd-jtVF%Q!g0K3;DYncBhtcoYYfG5tS5HPwK-S)&1D3dH@qTg5TMQ
      z@Ajjr50jmFO?E!TneU&SPjlu!$j+zR^M1_eLtXB3X6|z~KkGY!jkZ8jALdryg}H?p
      z{7{X-<_s37kLnD5M8?B9CT+yw8T_OldLN=(i3XQtuv~qRB}SGN9l^N0SE3Il=_dC&
      zW&p{KepoF7NOSC2P(3+=UNW!g2p(@UpP0eA&;U;D@bjl1KkLJpp|Y`k_<5+X4;QFE
      z7gck!$)OA`bx1`nX-bY%?2@MCNF^?5x=kX(1tCQWjq1bYYD3eemz66`T)is9Z5?%?
      zF}TKMirP%}iqfhWuN~ZBc5YGW&tI&|E!t}HBxl--Bn?qGSFPM`gXMZaO88iUJb_|a
      zjZ!%d<75r0WGxPo;}Mn<_=Y+WOJyBa$jLZXPQgiXD$bJAaG{)zYvl~wB4;8aXX8;h
      z2hYg4ctOs?D{=w0$c4<C7cuo*%ye;yjFd|yDC=cUxlAU?<+86_AvJQP93WT8bh%pU
      z<r<kQzmY@bT4|FF(jnK&QE~&jup1>VH%U@%mL9o9*2t~0PHvOa<#st=?&R)wamPOH
      zlA&ZjIX01cw``OFxmWIyhxqp?xnG`>2jqEqP+lVCRe4yp$|JH(9+i*fG5Jy+#|^Z|
      zL=`Xvg}4#F<?ICs;U?V7pnOI4#Vxqi4%gdoyAw`q{R{XHm_8|kI}}nku15vkz6Vjv
      zA)3K`58$B;e&^CMczgp!+RQ}$#={4Fz)&rw51xi5&tjrHhmdUM6Z}Q{Ok*7#?wP0!
      zPvQ4G0q`{Tc1|Lf@?<5Xd^)J<nc(J4_)`H}y3Nfb)=hd0{@`CWz(@5jW$-r-<7+PC
      zYb_+soSbE35WSwyxW#4MqJmakGJ|J=Z@R=cXB3Sq%HZu8#i2X!&UL65!22EJiZ|lJ
      zeta7IEQ8O3UojXtX7HaG#T!sXzOS#tK129Mi+C8RYWBF|+(AZ5VMdDAV+0rM=+9Yk
      z0iTnQEf^!Oqg>t~ir>aec?+{-D;CSUSSIiA?YfPR!}qXOKHzihLn8Sj+$104PWc3z
      z<ukl2pW|KmlF0qaw*D-~uCDdV@v4-HdM(W&=0}J|-*oX=HWJ(Dfwkz7U1Stf>?!DG
      hES1r#1+pvsQb6SMY)sJw{Lh058N;M4I6}%%_CG|l=c@n!
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNZBrUo6n^eSSlz6;v1m-wL?y%mQZa3lSkY9)n3_UrAtj}6$qIMKc5s(2OA^2I
      zYkxz(^(VA5RWo&_KcGLV({t}a3r>fW!pz>w+50@_<v!=|$DhCb4&Wv%4V)oWciNe6
      zt>@OuOw+R+KeI2N!rQT}hFg!{7mo0(#=hl<hK3P_so-quh3(Wc50sr@QbAk7d;X*;
      zPcp3K|2uD7xhxUdu8LNc!Bljf<<v!&@6OPCMF}UeNY!oHqQ$U23`I_XwwzkY^?Xs2
      zJpMDg6<=YP8_Xk*uG^07-(`p;UUN2CW*Eu2H8BQ;iv}*h&=JBL2F4L(2qltb9W$8K
      zaEak^Z|S#PuO_@*tLnSnk%7y2lL)GwuzYdvu<0KK?->>nd-O@>d$9)!n+c9&b#ncd
      zfvdR2FxC=&7kMo)0F*3im}gl1zqhPo4l$YKb%xAqs?;aKY_cqCb;Cdy5e;uM+!{6p
      zr3@X5h)JfD0S%)X(j?j;n9d1A$5KF-F)#*Q!%c?i-kNW_FZ0%s+xB&=;60i7`wX)|
      zi8Iy<Ka+DE-?FLOvU~E<L%40=4pxIZ37`yDdH{i~U^!NuKmlgWKo;vH9IIBN)Ot?m
      z+{32p2*=L`TIl%f8a0qyRd1^oJNBV)TDI%x*ubWYc8eiQQj%_RxTj%<y8c{#26l0u
      z%z+AvcHORRks$ly_?!9P<B(#!Egx${l&5k$Y#$y7?~!%T5ENkEty+z;<=OIg$2cMz
      zlOa90)%r!mU^LWibmvR7PwT;4lbzgd)~KVTT8josvL|N))2{24L_<_*ICLhLR8&#w
      zpvW+4RcVx|aZwmf-Gj5Bko1z<_NrpnRt4#s*30rjD78I@WRz=It(ItM_=@4`Kw%T2
      zcg$1a&xxCyDnF`m7{>eNHOZOuM*k=y;Ib!a$7M&Um0AHXO*z--cZg1oV}hQO0Fxao
      zaX+P&j$x)wF_jvn&nrxy;7aNYa}}~J93xKqMY&HLBT4%uxqs&v%V!8x2vta*VWpA|
      zpW@vU+)Af@Me+n6JSOW##neNm`0y3Bm4#j{%MFpNR8kQI_$Woz_zCu;b)yn8jV^#J
      zX=(pOW%7WYcV*ms7GWO27#~HH>zL;kkmd$f`2;rkBnsR_nP0>+K85di6yNh{{J>}M
      zBfo@?iDQPULpdXl0<D{Piih|_+4d0)DnsuWed%lv+NVKEkAm<&`zM|$syX;PG`@fd
      z9>X-hu6!5)I`CnRqKwBK<{KU6FmahblM4=+SVRF_1(xA)e6F4qd_ilB+%SBJuVIq9
      R8NQ))k=7@)&e8f5=3i~1HcS8j
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      G<9`9gR7%1C
      
      literal 0
      HcmV?d00001
      
      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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
      A4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNZBrXn6n<_lVPU(_h)}7urNtDJ5D93dl$1&dMX5<af~oPXy(D+ib&}n<yJ^b@
      zb=0xd@$IA5PyPg*5$MQ_KfoX5c<yc@fpOA_o0)s>o;~L|FZVeofBpT(p8#ecG=vzE
      z6|0f@P}~*wQ+3C*ywti{rL$~`s$Ge$i;B!kuTftYmaJ;%VHgUu-Fv20NnQ8l499A+
      zY>HcTrNwY5+YM?or))R3>(Wg#JY_qkv^?RNw$;L$?+$P60D%ApYQm|QmfHfG?G7v#
      zSQAjMcgJ+2(+p#s5tQm>(=xp)4CApU=*9~SJsG<!`$4%II0i!p$I}J|FwDSX@q&&M
      z7}f9$!^!s2FWF96IxC{&+0M3slX#W@N{$qsyjH7w+rf8+bFo!=;@NiFE#Ed3sHAmr
      z{hWc*IK$BIO0Q*kCf30yUeIus;o|?iX&qx2S4lq4F!O{W9bsWQUQoq4Zy=0b4KFav
      zbrnP#J#<W9T!AGFXz0_BWVp~3Sd$()CIg_9fqv*3W*A1=E52mk&x&ok;pv#h%PR2;
      z45LATQ{tYN%GgAD(~?elRb4s9tbvP|3vMJZWjNJl5Xf@Eq84?iCdy{sKpK~cHlkdn
      zq}sGIcCBt()L7|&2~D3Zp#~zW-`W0$WwRzNmpV|#0v1)YR~f=YB;_W9YZ{grjvvX-
      zzzSX?alpY1vtpL75*-i6@h|d!$Dyb=tCo2J%2GLQG-_MY*%Vt<Ndac<lBgDhW2*P2
      zut&8e!&K)+JIWyjqw3#BYb*>O;(9RGR3|s;W$GwJ*9`-C)sv%vXvKE&vMNiSEa#<j
      z*DR6J1U3{CHW>OusU%&0TV@6MS}P<q~OI3>Aa`b9Z3v8U9fP;#plQ7Kaut}9&)
      z?=hV2NNa|{!=s)?dRw26%Yz}!pfy=fR3@&`zex{5su}4NQhns_)CNE#q9z)>bJ85Z
      zAg#v%rdn6o{gRm6K_sz<p+p}&k1?`~Q;B_y6-jn(2T?jtsB>%waXL?`^NTx}+6OO^
      zRW7-Y>0&axhnIHoN;2^~;=8zXlcWp9h|c%$>SHYV68bcy4g@k?O!WE&uO~<v-NmYs
      zE);phXc>?sspP-;nOvv!ii(^6fH40U{rpo5^UrXWe~u*o0(1OJEb<4)@rNkzuW*Nd
      zjgR;@_=JCphx|J{;@{&9!Z<<Ip`4LLj`l^|#tp3bvULmxm7#Bpexw_O_GXaMW)S{c
      z2k{J1&B1?!#(%;fe}obKv+u(QtOFmBJ``}XiG03^944&DujC>Gl~}Jb2qk=D6<!E$
      h`)d*J&^}IX7~aMEh!D9MKA?S!_FJ@1(taC}e*m#~J)Zyo
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&(d3;>eb^flT_hvMDHuhlI8si0wZKTmi!V8;a46?j}yu=DJG702q^ejI-o|(+z
      zg*Hp618GRpKns*5PE!I7i3tf<BRdY%&;ku)BWp>TG&CtmTAHLG>6(Uo=f3x5k!6|u
      zkzf4#jqZE*-gEA`=X_^-e*V{=c@n@9)e}OU!rYN`vFk>Auf4x3n{(5JuC4Od$*pni
      zRAwZE28FY|<@`Q3J<@emuwar_7P{<xg)V2WL(-mP!Of)m+<d`FJ2?d-v-^gjf<kj&
      z4TsgmLLrmxR%lGx>7<j=d!~#Cjh(t7Yp0!*LZWX{!4|Ifwr`c)WOY{79&z$cp_mOA
      zbe@61Ruc3JLBL{~oy|ISPDBcLbe(}mPnjZM63#ohy>8OUE1Ywkf9)#0_Is-oc<QjT
      z(=Mh8{*1!x$#$QWcT!HW;0%|yn>$nX-VBvItA=h(Cb>>8@Q8?ADCFFsVnL+2ux49%
      z#WVLd=j}x&U+4+;Q!gT7CY?GUYVu63pmr!Ukd*Agdz^e;R2~T4RV=uvu5C^}Q_Llu
      z)y4F1${~;N%4Et-yM<K>^{s6Kr0>lPJ7LsCa6T4=uu!2zqi6zh3yX09Q8MBbJbntD
      zt@;{WDVtF2=k3xX-EH2~1Pr<xq0nYw4(1XeeQw&>T--C{<lbx#r5uH5UnXg%2JD<G
      z@BXB@(iitJ|0sd?`kbBJ<tFpJne<L~q?oe>=iQUow?^68qXNs<tW>O3GyMjvv%|Y|
      zjUK4o$lCo$Co9tBL%5K(DSPM!$EHQ{`SOMc>ao;90?QQERo!)6&fep6pUU1p@$~9w
      z8;DTd7g@L%mnc|tMxw#J$<uX1>ke=IG7Bp}V6<?3jpqWrsZ8G4lBM^H;Dku)#<qbF
      zF83pkhpe7l&ORWaC4!Z>LgemlLJxXFSnWfoCV=_swy*|k6=t~kva0)w*=#09SE6>j
      zYX^koE!}N9<dpRmHee%xYY%gCb2ap~4Bbd~^!HtDp-=XOlbLkEcGGzw-fUqDwvw3W
      z72=IPOtr;)a@n`dLO<TjOH)<EB%NfVOb=Mtj%yV{g^a$rLTjssHxK)P029oGFkNte
      zorP)M(_1Y>akk9eU}1*$WLs#)Oqoksn1z-Qc=%E;OndRF0>TY;ewW7Z1YshAVT_11
      zb}1~YRcD34>4>}A21J4zEu4cEc}iJ`VYa|1Z6PBtGQ}IOp-L3qZXt*H)Ku0^?v{yy
      zg`!L}7PG^4!RbjcZ8Q{ixr|BkClB1jU)@Mj;am^qr^hsNSivoL!9u%IwZrkW6ag9J
      zw{bY-8Or64z-UT4`+PuBwu4p9HgRC72?oE5=+QP1#vdz8(|7BX)H$rvy=e747H+|<
      zjE)4Z4v@s<uor3-7FRn#ZTzj)jPUsrK}81<ocD5`!iUdz@!w}e6`lO4!gOCJQU!TR
      z3E|JE4bL_F8c1jR2tI(@<&yJ5_;Z4w9BNl*a>Gup&pwbTGFsh%+hyln7VgGh60D4S
      z-V!T>DusA+o9r}=k)vaTa4(CX$!nn65+;IsaKFg&A%z94XK(<|^FD0B!jv#RLPzUm
      z1?S{M)CVN)eUzEAO1$38o@^$~E!CMJ2tpM0q48y+SLB89F}l!Dp>xaC5j=>Gi+G<H
      z7fS;e=~(cHg%HBB_fZR<!l!8vM&I#;C9hZ3_C%#8^%utDR5nlcYD|ePqZS&4x5Ai(
      zV>r$VhZtv0XSrGslPb(?^~1D;1X*D?r#T`xfd@kPtd9d-@|IUacv2xgxuvSB)d-%z
      z{UXm(79wa0;cpc>CMO?PXGZX}$KhEEQ*l-Zf6p?o2B0ivhMZx!Qv}Zm0AIitLioHw
      zta_UV)OB{UkjWje@I`!y>Q3ey2Gg~BvV{ZQy25#_8~M-E%>FLV2Zl7rySyz_&~tdv
      z!dLKB58(mjJkL-Q6N!<&&a_D*>68=3HyJAn_E4wa3kcVjEPM;!CO!!R-l~Gi>UdK@
      zLj|Y8{W}U%gr7t>`du*_#y`>OGF2(|LwMQu-ayRNnf-zHeh=Rl%>IBiMiu7Dw(n-8
      zA};e{1V6-&L--Nv%vufaxA3p{H<lotUN>ZN?oEQL)cREMRKNvJCOrRL-0&xaR?We|
      zjvAZ>lOg=98lr35Jx)5$nks^y;^%UY*XWHjrU?B*{L;dI;=d@dC)zf5#2xOT^=pqT
      zGYJZ9&ozQ0!}uTO!9H8^V1&H}J3G&nX82jGI%F~@GJA`o#cEe+Ss$<5!d9@-isV_A
      z_)ZzrX>Xvgpg)jFzuz=fr%;7C<JeWN^7L5*%EW|o12Ai}dYw~H)=O(MjYn29qv&&6
      z+a}3rjMyq<sjw6=rdPx;IH(Z)TZP0G>4+nA&8m`hh7Sgf{@#?G&+8&osi_ug4aJgJ
      zO|#T=#kV<bz9(qtdQasP4!H9m&wr|TvVQmb(*axKbkPLoR#EwxK#refsTS2tf1x(~
      z0>3PV&#bX*L51a~V|=Q$%WS%v)EqT0q}bJUdfw()q|ElTT`h}pHJgZM$fH|qb#gm1
      zxjoVf%=g6*a93xPwen$u=_H~SsD&YQesxQA%05diQi~Y?1$w#-rrQSzMJu;l_bb(E
      zsWvHaBZS+4n|IlP%B|Whl~AmjB;4tO_5x3^Nwm?=W?dQ<rMfJ2p<pRA?B=uVsfY;v
      z=6H6R_-1Uw)pAQ+Bo&{QTlduLLv}j{7@F-QKV{?>vXgw%87m6kqu;10=xPD`B?_1R
      zcI+#y8a3$YdY!AwbnSq_=PQj4VtHelSzLRIe6X;pvoX^_Z5c&$j7zsz!em{~pMfc;
      zllp|;&+4R>&?9rW9$880kr`Q!?7sBK-b;_{y!6PvOONcj^vI4!kL-as&X%tg9H*1}
      zJj~~*=kl$Cqx@@(o_7oj9!Kk^`BH~C|3)~%c%0jJp<U0)3QKSP?c{p{NxOuJdWsi_
      zaOQ=$iiH~5$FL+`U&8XZQNpFMhG((s1Xd0vo*cuf72*1e8xLb%qPcNttl>DWtYd9C
      zB^H+V64q@$*r=Kt6Hk8R^_M%I#mrc^qlByOl?~*#=_GnK$HFDN=?V0#XpG0gvBnav
      zIf=nh>^O{YJi)Q!IZTNs>X(k<Ei%=?F&;mPw~XTYc&uR*Z;Qu_Q4GaTV0bWQjA7>}
      z+<3D&irxG>hCT5Tvi#*MYDlw(gz<Sa8ehaz<4ZW(_zGH#ui<>->u58+flG{UqKD5{
      z8!ust@hx0yd>cc?caSo^i+30=<7VUgxW)JZK4`pxJB=UVL&lHsfbl9GHhzMV@iTnZ
      z_&J_7Uc<A-FYvtaORegxw)_j&i+xlp6^s2ipe^-+^xk3^&WZi&^^;h>K|hJ@4gDn6
      zH}%s^_yc0=eC)s<;vF>SVl2Wt@h;*lMPBdbPm0C_{%E{m*%pU2x0ZN&1C>5lpXg6?
      z#2Ol+Hy^{nF}$~;rKuu`8NyUEj9F%*zQuBnwtS10@-15MKFTh)Xpyf4`W7wnwLpU^
      zf!j`zWG^L=+eG8-B0<ckkG_9m8RjBv&ck$bzLsH?M^%;~T9zSN)?~D-$*7h_G#S;>
      z7?guw3#grQiT%aA57*SSC-8y6F??{-IrqTzpEq}$z#W|YixTc6xb7K@kKw*i9O@wW
      z4n_Z}gumwOgM-n-TIh#IafAy;h_p|7^N$7dM>&5~&zDf@5X#RS#(muMgs}XZQJk!1
      z&*!IQ{_jTd%n3Y40Y106Bg}ut@O%kh_IQ6S;C;q3JEGs<UP^GXgn#IW{-gJDNWXm7
      zdwGU06weneaRT2POwf=1nfFeV5B`_LF}za3tJ@QDOZ{*HKOGF$kKsR#;TOTmQF#z%
      ziRgdxo)t9REc!MV(vpi|nXQ;%wqd>*N4wdMi_8wJH9N7%?7~~k3*neckuxvGJIzb*
      zKJ!xCWv;*>vl|bam*cp(3Qw6=;6?LFykz#`6>|+<GuJW;Zcq{PYBkI3Qwz*ZDsFC8
      z%gilmjk#5AGPkMiW`702>e>K3d=jr>eo<TTzxY3*V+O9rulQ7tL-eL!;s5!h@N2y8
      zVTJ*cxsrG?sEDCY@xhC&rc9dG=|e1UgMWyUYKt>eKn?Nr<B5kSAZ}1~O3oMJRXj>O
      z%#61)_*HbP!@8M<VP-UknclA8j`SDtP1e(@K^YSWvSYj;`z8<s;0H9HcsoZ?!Cb1~
      zP)V5_cHfKX98Q*0BZp^7DpHYerbG?%-3XaCGnyPkv-uv(F>kFpWNsj<YEq&+x$S!Y
      zwoUPpn$mt;omGb;oc6Ts1*hB4V7?y_^R}vMHwCQFq@qf$4K+hGpN8qoI(|8*WqLcA
      z-a)3fpMhyi32sEvE6S1{g-c1#sb=co;_gYADK%f6>oYs(Gh5zXQs+^XM;@Y@>r3ha
      zJ`eHd9#`=?(8pBgVX9oOD9MGKsHl7agDcDj&}2S{Y34(iXCB5P^Am`hN6=+Hf@S8T
      zRT3>P>ukANqLxyU7WuH}OSF^{iM7Lzp_QjBt0>I7+cC|_!+cm>%+!QwVRebR)Tdv>
      zQRu~C+;POlBbu0~Cdp-L#RMd88&C3ZK*Il%>?YqjwNhQqaW)<G3A)-Urh$7nUcvEc
      Jj#pyZZvcOlmNftX
      
      literal 0
      HcmV?d00001
      
      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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
      K-t0Q%?f(P1=VUwp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6%b6g`&~VJa5CN6{G<#zbA%7?&C&NS$CvOG;s3qFAuOXKHDnkoh~tts7S+
      zF8l%hC^Pq=i^i~+ML*8FC+D1d+V_vwHvs$C$RI`7?1n?*&Kr4uji@ie*bq@<RHCTt
      z2jX7De&6-F8K{I=NiqU2>>76a&hNy86}x6SMYm#Gt)lBXl~Ths>n*qVhd?F5%xNzi
      z#9kOTy<q4oY)XXrbG!77Ehn60$+XHX`)tBcAuQLNishQlgehk$G^~1~R<j+~EKgvh
      z2~$TR6!9@Z+1_aq)YIOLuR+054s)0%<f|g|t>JxJF5C`$4qEMXyrAjzg~VTnYJ4jO
      zgstj-w020)#UR-u`)-$ZE(qz7Y=ofId&7RmKNHe$@muSAvT*)RoS6$sW0kKdMj2Tb
      zvW$Nuu*P^gfpd&!5?E)PPvBYBNXgw<ae);N_({@d_XUg3V~b_JYfJ)csBrL;-*TTM
      ztgsw7KmluC0w>Ir0(wDxfL6#pBCS3tPkfSsRMN+5T(aU7t6V44bgXkQ{yXq%%>Mlk
      DGzx#h
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix!A`<J6h-fpLbW0Y2qJ2NuAmqj<4Q3sB$^N#V}f>Hu)#6dHnkXj%T*H>et;ik
      zd_x;-5aVXvOgZn&oyX_b`v-ty>?x2K>LX{OKUuHVRQG)D1UmOTz2|wC)1mDJ+;tSl
      z47DV2E4caZ44HH8@SwwxYBWs-x$8dIDpFX@B8?0~-r$aXGkG4^{+%@#+YCj+9a>}4
      z^0_$2ALZbYzc3sa|0QZOlpBUfq>n9Ur1t{~G-@|Zap{J*G{?Y5Rs0PxRFkdqSH#_A
      z(Osf$3RzBc|8NXiQV`$06paGagtE$@_T7m;w6C}rKp{EdBk>gMg9b={3?S2v21lzx
      zrxU7-YFZ1i@<tm8Dy=G2;FRDqtkEtTK~&f2Bm_BHg`h*EU^7}PM1Ik5L1cGks6<q3
      zARYx2$st^&Wv<Od*ENyGAFc|vVplbG_2{|c!HU*846(f^yQcu=OjeJuc`zjoMy(K9
      LiG({OlCb*?JzRqE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fEZv6kTUJc1j(=0^$v|h)Nl#6CZr4@x@D091O8Y;^XOXtjA1eCUZfa`65Ul
      zB%1gEew1<VDH;l$#D~sVdw1=<_U+g2?>_-N!-@q%U~LfQ?pL`d_uV+rVdm;McDr%B
      znFpDE9r;`A?5Si=`^thTuv`)_POJ(v&u5*KPQc7ll?cpwOmzbp4%}Wwf`g7gHI`}m
      zZI{3c9qR0*!1LCK7plzt_@Udm9Cg{Vx+743v+t`o(@~gOn5M!?I`~JU!d^wYs*Va8
      zHtM)K1%Wvm7HW)c*qB01V8+v-dY=#bD%qC(Kyf3HFM}PKXtvLsX7)v=0&TBEcG765
      z|4N={f$8y<1!_F9P!370R!k^LXhsWuqGYDVQf)+i>b136Wca(?i;RwiC4ttY(k@cF
      z!#Jp;iDe$iBLS~f*3tP>`2Q{SqCD}{Tg`)9EV;m^d?;9=B~<8l1qKdyD|F8Xyc2p2
      z^3%rXwaGHcx`r7-p9!1v&N^%B?NeNL)=vnxPcVN}L@n@t1!IFUzN2Ul4Q%2j`JGWD
      zZs9gr%)5iTl$p^YsTu{kM~JJsj|cQ+%??$_ti}&CKRM1Z2_9qq6b}!{X@DiG1!238
      Ou}9=H8G*+I>&YL(Z11xG
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Jho@PQ;UE4U@WcQB
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      P1fIB$!M_6)&Nu%DM%Kb(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT>iW5dO}vFt8a|*aRdo!3~nQEFmLCO=Q<7x9G+NA`2*@;_U8m8C+(^xun7$
      z@WJvDt@6zW%Zim3t28QNNtM3%<dZ+ZXW#t+TJ|}!H@2pPDz<z2^w;O>KHdHMzd!#1
      zU<#%Rh2fF1<?B1fZR3t^JErC7rfut4+g{<WUA0`UBErxw9Q2A|mG$Mq4ljBPU6pFN
      z%pHa^IeF-NW<?h^lbmw$EX~m2J0?S4;9_x4Ut7tNS*zOIF+8(sZJ8womS;HOdWPq_
      zTg7ULGejN!uFqXBIL<PhY#?Sl&oK+W$6eypa(B*jJqkS_v*1pvTklS_(E2^-Tdr^0
      zRmbC{R(qsmcm{*AIm^(UDOOC&^sZA9$?<iD$Q&{2!D&3K;tWGV)U8-CT-P?dZN0<`
      zep%1&xgOsQve$4H=crEkjr{7uBEx9zI7GS!^d1^I(ZvwUnHFF2cMIHEH3}7~Njz6A
      z8kKd!F~xVy*p;b~j3<v4IX}K0MF%cu7{!nX{Fnw6-9j7J(1WOo2`X#z?PeUu*b_yJ
      zB83aW@3MwI#Dw;^hJiqPLPLL`J*gp%7}dqwHt8wO%k=)Ik?3t=F8AtvH7`p&Tw`rk
      z^{i$4Ufy%Kv6~k4jxO9Oa$EF>tAfC?;34rFZYrK7&d0R#SpEJLZj`taMF!7_5<Sl_
      zmOM5EQPT`&HO%1}L$7T(F0Tjd#sb6D2Af2QTHh)soZ1{EgtIUd4d3OZL}4$HU2b?s
      zF^v}lj~5wIwVKFrqk<499lWiyG%!>p6*uc|C@R>D$IxktdNK?K(6$0oUs9o|0Q9!U
      zW!+XXdJ0C}*b=vSEuD3hxkp1zvzZ(}+L5#e=xn(@`Pq3nS;CXdH;+zeybhLYr8e3_
      zt?<^lJw*q%#PT{i_8OU2f<2O*7j3+$K|?P+93AB4x)C!iY2?NEmWC6EG7QuCTKI}k
      z=_qL3NOF90R-j56PT~|bY`*F{MSjB+!`k1nLNAN1rKOj(Ebh#Sl_7RlU%hdHPQ-Z%
      z)j^9niea$<NP`$yDQR4#Bz96#7E;o9N=YLrB@L;RG?-EnFOnKX8N?99e~7*&NQyu8
      zI}Cr1kq4wINYHPTB$V59^*cmHSV69%c(exmjOYo1>C^$nQWN{Qm^!<UWa<#9jRRcT
      z$7EC0o9a|kz0$mFRAi>SkBIUCdXx{*r+kFd%EuT}?m|~S!L;(JB#{WN#8Y^huBOXn
      zO+*H1vBZdE1Xpp5<TGT85Y=g!<$I(@$TD(>%mxv@zIbWkN6g$uZ0Qiw8}a$c1Kjxa
      z0r~gPk{dvlA|!-A#fS1aary!S%9n^M_b{Y<McnS;oN`}sN(GS{oJQ~xax&5&7O_N;
      z;?zgWxJBF<Ud9UjipuLG1@q3-54iX(DZ!Op!l-;BLu-LUEi^+Ot7K^hC%<k3{}c*d
      z!+Ho<Z@>AsQ1C0E;K_FIAEDq^L%~z+;6Fpb8=*PB)}HfUq2Sl?Mo7+YwuAo;1-}(a
      k`${|Qe?q|q3L!Ta+rS-a2v`A^5BfIBB%>52L;u^rf5RaDd;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmai#U2_vR6o!uyZvrME9|cMZ<s$?N0ph06(iTd)UdxVPy)u&4GwIFFCV0S1>Ua{H
      z>EG&1XPDulKY$;_^wlN}l5M6pyM9)$j*gDrBY*h#{vRURBsEJ@jIO`x4J&W*xA~uy
      z{z11lsC4`Nis<+CARi15qy3kiSt>DFw35nR-g{M%J8wF>14i>YjUujfJ&iN@oDmcF
      z7VY;A2YGMM&i96$X{<wxHauY_8i`cAmPwWAw5p9TDJV2XiE3)NwzC+cHGftllX@&7
      zBa+657Mr*j#eyd$<4PfFHLPWdzeu?@h*d%c7rgPhR8>){@x+c|r7PZOB25;iW()B|
      z6dGQ$Dy(s7qDm_9`;lat(aM;lCAAjSnA;er;yF)XM3c+3$T1kr(PmMXX;Q2{!)VEy
      z*^o&Qau#Ls29CF#+2qZ3W~9twnKbP3rx@LssBMRF%0206M(dumCZn`z3yjh=LzCI;
      zblPf3bzGk^ql!1<({b8!E|$>a)6Ouu=}k+O$aJ*Dn|xe6$7t0PM_ZxNd_p$!qg(x~
      zc}iy)-SUIVW=p}<LMG!WER32Za@2+SY^4`R6CEwziE`<)%CKmyBSYJm%P^qks?F80
      z$wgwgO2YU=62Rwco<z2|3eBXA1aSQ|PisL$JWG?X9f~+S@@xR#uX;KpFtId&wZEsV
      z@gm@VdktX!%bvjSCJYp+?N3`k8(j4?MKhult)lOr$*R2_0^1LsteWa=JAi)hlfaBD
      z3X_P(MUw_-f=zE`GmVXC#XLJXBfH4h$p>hOnJ3*|ckq<a^zA!sMkRYUmT8)v&ryT6
      z7%jxzUMCs;vC}y)`OaR4(Q>@MoA0&rgRbS{kEOxu?jZ~s|L?{7m{D2p4-a-b^==W)
      zyOuZXjf`s?`QXC5Mk^H13}_ZKMW?{09WH~<I6McQcla!L!Qn;llEcg3FC0DxKJV}a
      z@Rtr>1g|*!73h+~m%(2<d<A^fVY{E}4zGf5IJ^eF>F_P^HxAzh-*I>yeAnT7;QJ15
      zfGZAv3*L12JMaUCAA-Mk_y_PKhkpeB<nYhn#|}RM|Kjjd@UIU41`Zvrf+L4(VD4}o
      yCqHF<h_`?P9^lRJ4%Xk%v%d;U#CVn=BKjMDitnh2UvozyN=SkjweXyx7ykl1u$43b
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmajd&rcgi6bJC{7=y!)z|@2mCTUYcen5U;z=eb+ZME2AdxgDA*0YdAimZiNbdhUY
      zU`J7uKcZ6a8Jf20C6}Hm^^ju^`J<w~*`(2=J@n$;kKfFDZ{E)9H-EkYu!^rTNHJVI
      z><scp(c|bzzIPmV`uVum%e%eaZqy#MRCJg@nt_`I`F7Mf%=`OCt%E+pc<434ogF_=
      zvc$l)7|s^Eos)jl=_gx<s0L@qgx<F2?|Ft<hBKbu+;wW9G@hog>nT~0fnkog<@+`1
      zB&+8c($Wj-CbYmX>lc+Qs)h<&uhOLAJF@7OU0E{m70O(4lvHj#$-K%i7RZKQ3zh39
      z+13~)1IMdKzigE(Fl3dyubO+Vsy1sB51mSqVVxqLQ<wjZY%t8c-{XhsgKZ84-*5YO
      zkY<$GmJjy)AZeP$HWUV~>0eU6^xA9`tMcs$%Cxpvb%KUeW<iC%f#;|&aB3gat1?X0
      z>Cnx(EV)ioJ=jUQcNs?R#+|tTHPu*L+NDtzyWh6PFoePc@@8IBwYbyr2H)?uj#aeZ
      zZqa#b-GivT8y&~S@BU2pzl%>8a<%`tCU@ur@yS1zhUzVDEj?ryer&E0#Twng@j<H`
      zn?l^WUd!fY(PgAQ>6qs*hhdD6GNcsFkVh?#k;g4hkk4A4Bu`o9<c}<8$<vliy&20N
      zlRvRMOP;eVNarnIAb)E4Gx9~tpObTz=gA9}FOe@>zCylgd6B$i`5O7U<s0OimX~Q}
      zDf4}4f~z#a0zDZ$hp+vCwcnGGenG!uv<UbCY5a(FdYgE=2phOX8pUmFzDw{ItuzUq
      z3C=YJf@d|lf=_G2g6A|21fSP<B=~~Hp5QAQ_XJ<n*cN<ELkeEd_(t$`jZMKfGzx+{
      z8aD;s(zq&kNh2q?)HpAASz|`<ipG@SRgF=>-BS#wUk<&b`YD*cuTXEmb7Y}$38&QW
      iPpIMr9^z-T@e7{dS3JdU)|sB+OBxU840n<&cmD=gXUhNp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&QE$^Q5dPeSri8&pVWS%Z0%KAsY=P$@B(#Aj$`D$oNjxU0RgBWaB+l4=7EhBv
      zf_Hut;_Nil)&)g!eCO}(zWdJp^Y_Ou057m*qruP}Cx!PVI1WxcnTbSsLP~GHh?Uq&
      zqmSD2J`D#G8QZWJHtW!rfK7&t^C{=kF*IL_M5tE`e%G%{IgrxS9`fv1M7;0obY2`J
      zV{fR4)VRj;<cPuAO-J0p0<JB>MvGy|7YYAROhTR=24Tz@+I|`Z@llWoZBLz+`YdvW
      zUM-n<`dW=XgPoV;7`AG|=6fJ^1%+q^m%1TEWRU0IMhsWX7#Id!1FObTktiFlyn!M$
      z!a{M+$aTQK7Ccw4EANo2zLv##a}sf>M4IF_))>~$Psc>g04>~Q*f!NhY2+rUa!<K(
      z^FqorQ+(uxr>-CY_=G1a&?$EubZ}4WeV<{aWPM>&nn7zay;2OT^?eb`SvNF_=NC}3
      zlmGWg@x!#pBK}tBF|SpEnf9i4ct`h*hhTI=NNIWo4f@kXq4g?Rhp^}aTD_;ww$I>v
      zH;6@A9YO-Tgx$k++Vx5tZeWQlioh~%QWm{y<Ca0UaGQ3z(h63|bB9hXvO1>LJ33h)
      skMk3qPwn+HZ2Tsx0bQ+WGVPm6Zi$*za_|7IId`a&M-)NN(nLP~2Yt&3vH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+iuf95IvhqorW}R-Lwe-ipw>Zwx+z6n}|R{N()j@BoHs_bV(dJcIvFFluzLs
      z`T!E75=dO0koYLXtQ|E?%L}r!-kq6qX3p9D{pZU!09)A75M!ve-N5Yf13onSzU@lW
      z?)ObDrEgn-6lSf%{eh5;Ls#;lh6KZcDmESNw$0~OSG1&t8HS}vwB~rO;Fcpaq!@Bx
      z!uHID@NMqc?^K2%dBB~3{(5}^Y*16Tz0ELl&vtG3fML0GK3#4yBx>HCNF$E<3@%`S
      zAzmssHRueh6T02Nab9>NN%&8OEzy^@=cbS&*08tH<A;XpNy8F`OQmTnVnxwqX2DR%
      zU>0eH`MT|j-JoX)|7A3}UiVtuX>w9SO2)y2?AQZ_jrxDMNkUU?A)ApAxl;MOR;uXm
      zK}V?#H9kw@8g6K~K6MR|Zy8*LLEee|fIBqHly}ihZI@rCNn0s{D_B)jl?-m;7Eyav
      zcls{I07}VTpT>}0)P*74@B+Ujp4#df^{Mx<smxETQHwZYNJ68Xu6(5TmPA5%OOZJ`
      zy$LITLgg6Q>MzWF#o{Y{=@`r3E7i})f25iiF4DR}NZ>x9A0mZE#P=9^)KCm_F<J|_
      zgv<0-JJpNPNBYK{%<xS8E1!`6Kt&Pl426MuNTY^Q14cAV`8WpO9fMN}Ji^-18GQ2;
      zK6Qd8OUL*<>J}$VvHBD2J(BUG>JP9T#kM}e?GefoMx7)A7Ma!}83I|n4cU!|;Y4H+
      gRjd<#mdxBB;W658{zESDpOw3RYTSujGZb~_FTQKa*8l(j
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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%t>WrkizObJ&-9tw=gm=12HSmvy4FZ
      QvNLdiSPYy%l8J!}01AvxV*mgE
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK$xZ@65Pc=cAfPBNxFvEE7n~U531ebV6BE<}goC#RI%At*ATvD%{z^|K9{d15
      z%2=})Q8{_(THmX!-#=d8032e|z!c%ga(weaJc^+?aFwG?H5iyeYge^>EzNVOg|cP0
      zp@sInYw3Byk_M85(m3cF(3C^n7&%%D4WtNLle5mg3J_8!%2E21uwAYP$)+tF%WQB1
      zj#Z63zE-wb?{|bPt2-@1vexg)3=+uZU?5G%*Oeo0{9aqSP0_X`p%A9GgsTEOb|&?`
      z@(9QEf6QDZOg{?S54r#J$z#}Ie?jFiI^HuOYe`)bT3UT~L|82EjE!2eh37H7!8tdg
      z#|4&t#N$<@u|_C%<9k%R@F105bP+<P(f8esyyRmM)+e6rAZUyaPrNyvhCe|dd4c@S
      zuyw_Df~B#$xBr67Gpkd`@ta`@Tp)!@%(7OB(lCcSTMWQF7MLW^3RvW9o&n1-ZG~kJ
      nOBCpdMMRkjUAG}!E(*tVgcTIo6Lj<qUHuKcn+RPG3v7G>i%zWs
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B$xg#S41K1hDWz;>UnID(mI!eyLP7;3qzVp29Jo!xC=5!IYBE9XU%?5910TRg
      zAv|di1$yB!9^22)&-VMr>l=UrtT`AV9Qa}4K8Q!rbvs&x##Nn;D~!>ql^E%sMqbjE
      zp*it98OLW@N7_N2urXNj4ZoIM)9i&tbR853>%&neU-X2+kqVVLCTwmsEZ7Z1=(|mB
      zANsX^Brz&*8<8ghS=+uL<m=I$EFp*SG8_~MQw<f$%cR|s`dYLCNvNdo8=;l;vtZub
      ztC(=u`1iy$!sw$2l9c(6N**Fe)!Dvjc2F^4+?S><jPxVjBg}4X4-8rlL>x1{!<b9a
      z<_2>=^4TJaSSHNhWw)q`^cYoXuR$m^qeOf1T-nK&h8%3)isFM4?~Etm<6FzC<9Cd`
      z3-)ttot@pi7nGj)JAyL5CAPpB3OL6E|2FzCOk#>XF2FQqn8f}nm}NBU$9zUxWovV}
      m3O%vuQx?+DRZ3Uxr!zXj0v0)96@8a3{Vu&7TDp=pSp5Ve-l^08
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK+iuf95IvilQ<L7(v<U%9$~Bi#QxH!@ASgwu6arFE1c;YSvPv8|c5v2J%BS!R
      zeE<nk2_!C0NPHAx*0!3a?Gv)J-rbpVX3m-Y^Y`m_0Grs<5Mj96u|1>5_xQ*dxTY-)
      zb1*Qtl&;zIq%dk+dM>xB-0pb1BkKFM<Rc9+h6M#OED9LUn?2Ez8WIdkliO{}u?25h
      zLPL@v;|EN~s0-KRmib;q7~*@}^5~zgPJnePZg;jA68BBpln)q|i>Je-219JyX$u`u
      z%%^Y;3k=a>si7gwusWfud6xCUA!)+h8MVYfnvR`BhFJaDg+AXe*p4hTMZu<29gA2|
      zbg3CI<WiV{&M;p!ZBg_3P2s)_I!{-f7PlIl)R2<!GA6s`kl|kSKU^ij$&QeXz>rL_
      zbXqfIbosEWRQp<YbzH$U4Ogee5%`zFWfaIm@y_EG^)%&SFtM%D8=W*3Q@DgxMO9AW
      zI&KiP)9g*pBm_`M_6O94bb=}jdfoBdmUwEaapuo_FB@tYu{A0cMFeqZv`Z^r=^e%q
      zQ(n`}ES=u^89=Ulh`Gvd%zne->-5qgmVcBhUy%JoIT4(vb%l_?Lqb175|4@R39{Hh
      z-j79S&EWzr(qHXVEk+;d3@aJ_nd+B6Bm0q(0@?&!12vyUHKiI1XqfUd1m6k4Nd+Eb
      z?cfCd)iHeX2v63A_%>CG5++~y1@-~)=t1Qt*fYhpKE};4N)yI3Nd($tnjje+%%SVE
      m7XpSOk$F_GPW*FZ<}DH)q5Z}ga*6+>+~KiyCvpv6)a`#M3e=ha
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}G;6#i}!*sv@@qbOBGq_q-4+@jSg@dprr(x!oy4vfBS$TeMO*~HDRgLZU$
      z@bBnMpE`Zh84WWs(>^-mf8al3``yhZqycBzhfU7C=bZ0+=R0Tj-G?`S0+_+7hM2%i
      z#SP5+)<bK@ta-NUn|7^cTE6eurNEcwkMcnv>%J_{x320M5&}ai#dIvUVy>3%%Pn6+
      zufUm3pnZ^bu7KXYtqTknLX^O_9dq9EtVadA?&k!0uiLKe-(<jKGa{_BPEKwmm);Oa
      z<f~<=BaQ(BeK;ZzpG<FP7!nxU=T!_GXRXSXq_?=UC2PK2b#)A4K*Ldiqlc8%k-|V9
      z1dbcfkW|MJ1E1m~3s~iH7oTR|x%6Fu!Gi6|Vz6D3-cMG^kpihgb<1)#EYDWw=rZB|
      zY_si4h5xNNMd^8HIYEfL-(n<*K$7$}n*P3u^h1-CQj_Tpi6eFU8IZSpS*d!Ds6#6x
      z)Hv^0^*W1bj44{%EO+c*{-|IQX?ncYZe%-$n)Iv9C=Jt8vYYHeaPOY<bYw7~^fe89
      zi5X6`Za-!<&T&OuUo!9&F7r$tO7@kgkB)`QDU7cTT*WnRj8&^imlK-q+?dvc4lGfV
      zL{0-+J#mns?UbdL#0`Pi^tg^$+)`_%D{EdAToB0q$2uVtsm|iIfhn9<q?Z)Nau?Uu
      zc7KekO1v!~N&+Jvi=o@*v%=SGy&8C1a>-V^IC98Kd_i^1j{qg+)59mGR-PY*UfOJy
      zzx_OI(;wsixv5<knYZZQ!{D7=eDc@S9#S-py~gm=D-35EII;PXfiaxo?@7V{b4Xx;
      zpm_{ok@rjZ9LpG`=Xetor!mG8;c*7zEGcldU3!5rs<eIxz8-qkNc4veJiU#lxA7+M
      zS=5Rd;sZSj?*)OIR8_yg-4MnI?VbomknXuCIU6O%Q=&Vy+>sh@r+$I+2T~`yQ{6*T
      zxh7HS9~3Z7cI$h{Q0#0$QE%YFuNcZGGv2_(2Ci%-Zv2jk%pPX%q^|GcrgDvjuDJ&C
      z4J>XxkBQMJ_qV^_b6DT(QyJsnfgR52G2gsjsN54a{*=>uf+C)U6vvx1qVAIT4lDSU
      RB+nvCyFe)gz7HiW{sR<yWR?H`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-}+r41E=36%Z7^KN7tOB5pimOblvbf?OaZ9tWJPW0r;N&KmqzdNT3g5Aa7B
      zyR#TTxp<jQ+t=6E_Verg1HdWvEX)zgju+aG;z<ncfv-GmtHHn)TKlRKYH2sM&|z>Z
      zgFraaLXvPW2_6Gma;Tfno)$w3DZ>72)Wr`mA$6uarOye6#d-v`UEw+0k3~4uI1*~*
      z+Vy@{xUyPm6Oy(5y-Xv4OcoXv2>H75WFzc#q~8)9R}u;a-WI-!{82EeA5=i7)c-MS
      zl`#J#+|Y3T(Z}*#qburYvXfc~8As}x(9-Gq&xF-tX=22hD}sROEygrNj~lE_<wq-6
      zz&0TlnEh9J@c{_wW<T`1@>-c;r>=7n>EOE(FNnqSjU&r@;&+j~8}<`yt)ues8`7`*
      zokN!2G+W>jDO_QRe+MxPIpo>n0xV;NNupl?tBhvJSRc_=*haZTfnM0elqnNx7`kkn
      Z9?=mtu*s1~(YSQ$cj?{C(jC)a_Z#=KpdtVO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hvj6g}g_vFmQz#Q7`<;PMsQG;y0ipd<~%`80&2<ijN-KsU+OY;kw3^*T*n
      zc;FGFJ|e^qK%fRlCE^4kAs%=@2p*97dk|;F8)xhI0alv1Gk4~kd*{rZ{o|jXe*th6
      z>mdXL`g2w(bw}UQw^IejwA_?gD5P}Pb<FjWYowN~k1hM2HFoR>p;4e&?oZ`)E0>yI
      zzhi8;Av6g*?Pob*s6quATs<cs(gKZ^e%BC)&YmzWGNhFo76@+X`4SfctK8T$Vp^s<
      zD$o^ApWeKhPGm_oZf_b9G@wPpIYb#Jp2(hoK%0gT!gAE1;S3^j)TQApG=U4Vre(~P
      z?yeiolD?i-$=DluKC3&XoO{kj_an0?aAo%Y$;4xv%^B{v?ixAU*%4@sCw%FT=k;Qd
      zdqUhZr<7=WY`v<5B*{uSmZWk#7bR(?uPSN<-Qstt{Zu8MkOE#jwKP_&(1#Fz>?$kX
      z2zrr}I=;x8h*t#esKb%5T$NBJf)uWXa77?iPoqqsu<V+7(>0Bvh5-x;XdAY*WjOAV
      ztw>aq4DYB;lx4?cj>p<qhMQVm$P9<@3RzU?c&-SBa7||Ynm~Kpr?jVJA{)YpK(`;W
      zxMR8c_T=`4QE*M$5(vBYu`;g<bk>$;x@6`z4JU$8v_x1*X$_arC#Mq{CNafg)e8l~
      z+7#%CXZ+V)VfFCC5;3FUI$~0~H>D_Vu@vHIehJFii?=n*VV*wq66SBqGu0tfOxMC#
      z;G0r;EXh2U1^VhKa7vVud<1T4cnL2{6=&qp-qY{`VqvWD4b9oH%6%0nQtY-}vNro!
      z8hQJk;V>{SE?DBRIgTvaC1=B!GUaP(ul;lMOFjA9Vb!n&*$3q7<gX|o-=?yBnY1#4
      zb2!ib0%v)yH`2Bx573<K-bZWl@;=&=ef#Kqs8AQ#caRa7;La(sO%pwXR%Gx5y~zq5
      z-RR+rOe(HWBN;iMMl!a{>`6T3Med`OyBeZmk0t;as7bjN6tPxW_K5ihM2sGpbc$9&
      zgUKJ!UJG9HfrC}>B|K9H+`3y6Iae3_?0<_~s0)4$&)13ES)2AwT`=p!0}m<r0PP69
      zD?E4S0TQ(wpZYko>e2a(JdOccsasg$57A$H`p<p%a23ze_3$@X1`^+KgrOB*9tU`J
      z?<Q|iu0>fG!`^M4XU@PE^nA&(_{zuLQDx^tt+0zxRkpw*X4m?FKz@I*$>P1lw#GKd
      zX0eU2{mz#5?1X10X@6y#^5)Z?o$+i&+9Qmv9N>*)8DnLPmodF3^=KHBeWU7ws&5)R
      zL}o;KLuwvYeREUAgyiaV$<=*`*#q2&zEj3x&oN^e*)rbUV~~}-=<3N$4X8)>HE!Ws
      zICy|hu#3-V@8dfv^gX_z-Ng_14G-}re!|~4Qo6;ImXAE$?(<*rK0cswyXeA)90fSO
      J#nT0#{|huLsI&k8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<-%ry}7(JJ5be6(&F#G{(1(9tCm1uaGF<AyCiwj0U5_~YZ+peXgyPfSVfq%tE
      zpLx(1mq?=V)j!JkwUlijp-J!0?>pyw_d9?7{`d)C6;CvbFg&wmXzlX@erR=lM=Hzd
      zb}g=y?=(XtthV^bLstb>&FeZMSU=rrNHfe2XALsyQVCo5TSrpyLk*)0Pp_s(Fn72c
      zis~6L!{~EII_d>Ox>zsm&{Xr<LPrW?1~g<fj5Ewd5-gWX+p4>+u(@0H?XV-H+Bj^9
      zu5vt?MUG+iAObf#{K%A^GMmD5MG%;3k4tk^hk+XrW}cx?Yz!c`=n<q{iO6#eM~cm`
      z(-i(TZ@PjZ-|$-8-Qm6y?UTc_+H(SiwZ_#IU;d~ShD@xJfz_#g@hRjkp`Fw8y16e}
      zs#1C%y~M16+qlD!@|ydRqJi`zjA6_cs>Z1!o`1wJSu70&)m$C~#HvxuCht&DQ|IoJ
      z`m=b*Fwu(pznn;Cn5Lv^5O^(z(Az_On@=##{4{VzKd7Ri$gps^e*(p2oBQp=aXJ{v
      z2A1%cAxoUGO{nBzsjg!YV+{J17y2#n(uv!0&ZjF81zDZq>CceuGc=QXXuL+dcXU2N
      zbD=!bgFch~g7Fg=yZMP8uK)T*7bBRYF^@EjRZ6Zw$2z94K|e5knv4RiqOX9PxJA$`
      zYD+@#iee&)+|qBb&&Z^X%S%1X9MjP$_ylPH-jJ%dq-lEyIM)Zx;V$mQ!1rM$z{~L-
      zNafkrKG-N70v}=!BVMNx5QYbs`!99=V(Q+dsS9|Nq^`v;2^c3>+%11csfXo@7-|T^
      K=+m#nBCUTfqW?Gm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<U2hUm5Is|nr3+f5Dq5>zTP>~P#^{qYO&Xd;6Viv$keK*#f!p<(WtZ&UZRo$!
      z7n^9}5Aa7BXFm!nHazUky>n;IoS8Gf|NQs`;58ZsmI!;c8(Lq)xtLgEU%A>+<FO^Q
      z_EkUB(i+M$5jr}s4!uD*lCD1T{E^UyiQ7P)P|s%1GEe11cQ0HmCI$+GH;e0}fIZ=a
      z^5CjEp|Gc1rS}QjjZRd?a)fJJU1sOnt;7>*<yakWARO7+=@Ig6ZzxUVP%6Vfk+9NH
      zt~?G$ed(Wyz9R|MIJ_r(72Q*3UVl~rVZXDO=;DF22sh579-<=u5$1lJnCSF1OP)}&
      zrEUu?ZO^|TtTuKs5N$^U0mB;{b1X(&;Lbnq=}d}vK&TB<v6^SGTFsO+;T~rn1c5hD
      zTxOUV^kxcnwFNUBr$H?Pj|guUk0;(C>Cdf;3Br>y>ZlQlOd*yza&DBdi7mo1I};5v
      zePxGZVjU%d+4VwyAdgfe<Jz@5`6?PauQ%}uuo}GTdA7U>{9oqV2lnUK8oMuEUc&sw
      z$0d~cZ?Xm6qrf3I`BYEBa0@GZ;{;T2n?a&e6{{T0TyZyrZL*Eta#i}uCV?!(u9Fz9
      zoIIy+ECp)pi5SgN@6V@xx;AwU57X3ladSZBC)Pjie#c|}o?hbFJdT~gsZ1$6kBM&o
      E1@jmDaR2}S
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtWS#T6p6g@8qnNDa-(j*}ZJ0b~?jEJmZG0P-GhXk1r8Bt;<)0s3(X2MJlf-545
      zxZsMGg5`puQn=74AP9a~B^H1F_@U*m{`zN?Ra%~Y-N`f|@?%ZSJ7;d+_1*Vw&((h}
      zTn4ZNZv>Dhuri*^26yPY^*zCnw3)Pm=Ez7;x2&|;pS6r&%ox<O2`dw9H<M;&$V|pF
      zZLTPQ0)g3n%bZmxnH`SoO<MY%015?`-Z+NmuvbrHjpotF0tH>&T_J(h;Tv23cZN*@
      zg^`}-O<{VO)Y{z}+DxY{on37LQzFf6ZQ)Q~q^Gl|b%Vg<P+LdtSBY!Y*VDbJFC1#`
      z5zstIOLtFC_eM`x>Qmd?*|C9oQ?J$Yq@_OZo^6R=#5e+Feu-zO`DJcwfzhySTbje8
      z-n_6<<a+Z<M!orEquwTG*y?1wNAFJ<%zs<h>1Z&aC*#40e8OG4$zVTadpxzKZU3h!
      z%9?=$Pm{GyAiu7@mrZF+#f)MI%vCWDH?wVPyypdVo%Ov%d~%D502GJSsVH*ULKVd>
      zTdZQT%NkXvF1uC56qntm;wG2fuA;<c%T<)RY^91am#tQzxonM!sV-ZmqTFS7sHkvR
      zi;7B@wW*lqvUU|!F594@8cG0nvQy*tQbCy2CR0g6K^M!+So%nUob8`9klJme6*y<K
      z-%Q37@HkD$=&@MBXvkQmH87-rdo|gJ#dCtK0wu1K1}invkT3=<1^4p2dcyvcWu=Ba
      z`F+gDr<^w9L)6~Ru3xL|J$QiXzF?k{en#|58CF4z$Ja0PJPa}szu3)2!B8%dSXNJX
      zo_FMGky7b7LC;=xQs{Y3=1P=e*RyjxMpV?G)?sNC(=mfi!)DUx$`1D%Y47-I;naYh
      z=+)DvbLyqA82OmXt+$5E44bjrnMDGklN%m4tXADJ;;HmrZdF~q?}oG{^h|~qBtV@m
      zeV7*I*F5)bkb=jU@8H-3ZSZCmZx#(*B`>v#y7~#PU>Oyisp`Ll^G9_@NB2YnnAsK4
      zwtH|eV_5RSv8GB&nlqWyfXTvQzL`7EOaFS0V@gd5o)IX{RTIFoY*Oy1cP6=6M%ua0
      z&#QO=2Lu$xlbILe5at%+CA<>A%Y1!IG}=2yMz&aH!n8~yqvBP(#?#_eKbC|*N1d+^
      z-ah*z-Tga^0jtSv){UxRDUnn*Jz%t(&H${u?mgG&RL0jO_m1C590%3TDB>%$+8IO=
      zIff*12ub7!lE?uhk>f`qhmS;#9*G=05;=Axa_C6p$dSl_Ba!1qB8QDcjv9#^G{hR`
      z#7pFPCo25R#4Khz8_2te0?Ht+T!e@gp2M6onD5YlqzfEc>Wb?ncjb#DSENpZ<VBJP
      zB`=qJiR2ZMFO|Gf@@0}wlYE8bRg$lgyjt=m$!jEED|xNt>m{Eqd9&m*ByW{`rsN^X
      zXGz{sI^z;Lqxsrhk!XRoF%m7*x+Bqmc6TJIXpsm@)3$Ie)9&G_X;H3IwQXF>wfnhN
      zXnkBOHJ$4;ZGdZ)W^k?6;#_MqlWVQElk0SCIC2IlC!C1p+nCRIHWo0Tje173v4|mU
      zG*FkKAfe305`t!9DPgLOWrT7YD+m=fRuL*~G!drRSWBp~v7S(EqnS`+qm@u=BSe^P
      zqk{?TI?Z0@A;a}&Ea%$9H{UwGkD4(T9caWxtVRUwh+;GPupKe%fQj8mVL!4sjEC_S
      zp1=tlgw4BonfL1|-o#HhieLHt9mnt|-p1c}N95yOQH1wI3EmeKI4)}OftZ62#R8lV
      z4fseb#m8b5J`wA2QncWx2;r0n^Sc$FiWoi<JMp<l<BZsgFU3B5B@W`OIE-`R2+oUR
      z_*xvt1#uD=#c6ya&f}8!7MI0$wEv!US+Yv-=<@%7dyrXW9zQ_gLLQZDZXb%J^a`)$
      z57MsE)nd)g<)A(u#2)$(*o%ieUk&m%kgtg^sN!yDA%(z?(upd0zUM@6+a9^j^wIIA
      zzf53SfXA`VGi@X~A$V|7<86QQ*%o+V3)rds*W2zIZ~MoDwol@KXS>*on^$;hT(N)o
      vEc3>SeF{%|mQCz{lX01L@FEUH7oNp)=WzHuUL2Q#nB;R*Hs<Jv4EOrK=ug-M
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBr9h6n-us8{<|gDi!-it1TeLt<}D0s4XTNvJjR^VwABRW|O@pYnNRnyP+`C
      z&;0@YCGGSBGiAo_?T_m8xpyN(%P^Vb-1GLFbDn!{{`vQ>mjG^K!@!8Z{Z7=kUU<9S
      zp0(2pqSOj@b}TPVdqJz8O3Rney?&S`)=J!}#-aZ>N`tVR84ZjH%nauq=QZSBTHlXS
      zZ_mKEz@5{p3;>&6*q2MMY6}?d`c`$lRu)*SoepqXn?-@V<Cg7;<2nsnAXi@6+-f*$
      zJQ{Y>b{%(F;Ed}mR~xiEvF%mcWl6Jcm)70#R=w&}=s4G?IvYn?Zm}H(QII|m7@eDM
      z3XGLvU*>R$2vJ<<lBqldrcAtpD+1$-gW%b@n&Qg}y{Kc=NpjRFW|lsAwQ6zO3uSS>
      zd6vmnO&G}K@E-dQB2K6<r1E@V;;iz_a2Vg)FQmb?wts9Quk6>^h1``9(N*}TCeA7I
      z9LJ1;PB&G?8zxL;yvf*~rTj@ozB1o3@s=`wMgkJqjw8R2bc5$Q<#Q9~mG3UuNV`FA
      z$n~X(3FHJOYC$C3{&q|D8eS`u0+V{Crq>IUu8nz&Vv3XzBVkLs>ef}@|Ck|hp=RXB
      zJIoTh=*YC>rLq(E_607^%@0A8LN7^p^#)^HZ<_@!z2+Z~p98OY>P6hrcUI`D^)3vy
      zi4G<&B}v>4Sj8XO%xeRzSC8g+@sEOv2C4!JCqIuQ^&;Qv`L8`I11kdOH4A#qGK=Qn
      zpr*FyLLSR-)oERgI<zz@j4Q(}smJ|ZTUG+a`;`+O>@9`Om(Qi;_Y88FRx8GTgK4!;
      zT5^H3<i=>pCDD>wp(Qs!OI|mn!gw1Oh&D;>Z;bI52o51OCohTvT>cZ&T6s59-q*^9
      znevfVu4T$6TA9t1d95sDN<k}Drrg%bolN=S4;CB2SNyH83E(03e~AlRAx$=}Vg=X9
      z-z;1Xy@tEkzymyDL=&rcOzV$$iXZR{J|x=c;%j~sA~+Bq?qDp3bdAzx+*r7IfP2S9
      z^E$MLaU?o%CJV!T%?%S!#3Dh|=^K_F;rUy9H-IfrD&Od&_?;q~V_chl(Qszw9>59q
      z{g4(#^l@tG&D38{Otnc#mU@qOq^eFFVtMlr&gKDD53u$o%x^<56Gt6<uls!TA9$Zu
      A`~Uy|
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrOK;Oa5Xb-9Bz2m)q@*usc!U;cl9C#PgoJ{SN*_`nDu_U(!U3(5t=Y)6gT1cW
      zufh$9V-Ij45|uz)`A~?l>n7<#wd7sz?9A^!vpfF#@8>T74{%?@5W{2335+)1<$FfQ
      zla4ZEr(<xXJZT0>7%j2Q16%pVbJu+3N!OEVfAz?wA;~a57}^i3IZ9Z<YwSCU?`arj
      zczCf+%-rO5AeN8S8HS%oN2;d`$zrXvNz;nk5*Z{gszXCs!x+O{n1W$*$1-ZREi7&?
      zdseU`9JRLB6dfg9CygvaZa0J%+&~rF?Se=CMAC6NB;^>UiuFFILG?RUHI&TOr6V?i
      z9aDI3xM>Rl)!inyH@PRnb!<$kkJ4wT)-SH}g7d60q@olVSdB^-p8{?Z@<d`U&9-Q&
      zYUy2g2-kF6#VkX@HQQlY{rqD$hEYqX6;7Aodix9$#nOP&ip_nWR5kM1;5$^=<ca<G
      z5Yo6!J8jpjP=iDbP>HKxn5NKW-*=mmG+F}}Hy@LZyQ<$BJ*TRMB18H72J#hmTHI?5
      z_FV?#u457R7}6vhH49Z=EY&htz$ine;Raq)tjqA4X3n<kQYc2PPeJsi=r>5wOpQe2
      z2(8|eeTe3KIp0MlpZtQ6{CMjt#txxx<t}wG{`)&^4`G7F9FjCXBg87kv4&Z!W0EY>
      zM+i*OSNP;HgDWJ!!pn+<UXV{HlwJG-_8F<fL3y!@`~jJc;Fl;9;5Fsepv>M5fU`Yt
      z7T0kj0^dX-23MjrkjSxbJ=icAfe#TxkG>Nzgy9zE&V<gN4wdJI-of2C^ig!4fPRRD
      Wt@00)x~QCHr~!uFlV6IGH2wp45D0bv
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=?M@Rx6g@+sTS^ryA6ofTRN6vW6&0~WZCXt<O-U$e)c9xG4rR%*i@UQ3kK$V(
      zCSo-40emRq-RZX70P<sJ=FZ%6?ztcP=kL$o03KjnLm$Ix%kuPHe!vg)eaEn*ZtU;t
      zTuR5Nds664vCTbGy82tYUfmHwx~2AwhJJ>*Ft7*O5{I&SWJ!LgA<D3Fd5D0p#!XKY
      zI)NGbD;t$p3~S}f(f<{gXNXm|3YAh}vqZ=BhG|%ae9jO_XKF-Ww3{M^t8}t#OT;mP
      zq=st@BYsZ0Ck<0C+YN4t1V%B&5N`<?NM#sHXUb>&@^LUsByb%!7^3Szw1srr(d1T3
      zuToj9R{lIRQyV1k%>*>WVwfVmuH;seJ5B$7CV@f37>3J+B`V%tT{v63ZVHB^l33%8
      z;oIsmjtC|wE4gF13<C##S$#((H>`q0nkvEWYba@|-Vh~R<WjV3=ZImnld+;Gn%s5C
      zM<bsK-=hHCiiAVNutem$c0K2+*~tanqB;?<;JS9hpa{)S+vkHgopJ0<Ro6)s`hJ2&
      z_#x#WK6%`vOvl58-l*@2hRkO^4B`=<Xn4$!zIawUb?yzg--K0$tg6^~8Rr3cKggQj
      zBZ9@Nw&yg&Yr}8P_}RZ^*%v{=X$t8ZKp#?m%jthi`7Ne>fYvyM=ruvs2Ks3QW`BXb
      zPhR<f;Zux%LrR&G9dr6Cx%6R{)(Ij2UK02PhEc*KikQJF=9CABmc}z6e?uZ7bgyL>
      zmril3M-nG8U=vYP6>zTYhTBRZ0Wgm{MB<<B;vRW3EFc}w=4kidB1v{kTU%FDU42w^
      ziS~0q$B;pmZv1q6(8aUR?F*qfEC<kcN(C^JJwfU_^e@m(uyRb+bjNyn91_$nltZ<4
      WaTSt^;$aG(Ls4eB0-vcg^8Wy+QZGON
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO>fgc5Pj2xIJhotQ=ohkTA)dxSO_>7AyolNrBH-Ya_MQ4Y|U1VW7+E}{a0`S
      z#DO2ck3x(;nwU~R;<B?dJM-r4y!rm)>o))o(KIkac;x!AeIO3S*bYMFYg+|@Ewm0*
      zFV@l?$bAueI<jBOffCO%&p??_FBVM;cI8-ij(jb~1}guA&jGu_i{<8VQ$ppb@|Au@
      zSZlPCHnt~x*X}SW-*vJ`td(cCM}6T*r`aWxTcd$AQNpYR169I&TlsP)9`<CoD|((J
      z)Y9~>2vy?e!Loj@BEpmQf6T!loH<OWC)mI7<ZpN>zsYNnGhx=1x+S!9N8u4+snIMz
      zv^)_-3~zAGju>)-^S`|3qp0FCVQ!d6vym%BxX3k|Q8el+1|Jlrx|%~AD?Jr$lH^oz
      zoj;W#njqY?P{%T%%9yE0CRT9Uz$)v1+Q7Dh;2jI2w33m9JGe_&;L;a<Je>3(Z2eKy
      zROdIn1KHP3HjlrNC77L29QNf)mFT-z+|dV#9=zqmE5SeFjW4t1&EWGad)pi@u{GB3
      z-Tw^pBVT7=@oBOJwot(<%<-+BrQsar+2aB%V39$RTMbK`&Enuf4!glNc`McE1Dg!8
      zl7`-<a8~x5!?9Xe=19V5T6*bZ>E5ZOS8z2ieVnpj?zL;{pK#*~Zk<HfFCdtc=4&a%
      F#!tS7`+fib
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dU2_^`6n@@7fYLQBBu%BUwI8WMT7uS(s)=b4NI(gs-Gs{Yf>~fowr&=N-L37N
      z*WTCPq3Miq+R-22P5)8H=Up}d2}Uox*nQ8Q@AI5<-u?5<%Rc~oh^;WD1lBv2n|Z7~
      z(Vk{{eZz7xMz5FA9H(zIT}RKf^+%d(I(BB0Z=+}G`EJYI(=Df{S#8s>I{AS@7(s!{
      zqke`y3YNR4KC>L{X&51ak4}#0JFID@t7i}M5ICcjDjVfOBVWz!Y!)ip0>$#lj{a-v
      zD*}sZVJmw-yFGNTHg+nxYPn2azLBeLl?tlB)d_0HloDf!HY$Y&4YgP(Fy+%WakV<z
      zTGP}8W*?R%U>Q@hIvLfIFqavfaCz1HYNdz&U!jrJ7Mo@`YXX5}swNQ3b=!Ir0&@z^
      zVO}7#>dS-4QmS@}lD8Fv5s}md1*ZnoI|`x$>XL%fh=g%j;Ouxc5nN^CY*uXQ>9#*O
      z5iAmLTkmOo%^9-ov}?7xrb%8q-RkxX-HzZrVm?9hm|jvKF%~9m>EEaAU0ru%=1U3`
      zyd|ld3TAMIX_XC2uef_nz3<~3FLzs-S=0K4Y>&r`B7ix9<m?)@!1NP2lLDf|PIh!B
      z$6Pzz{xfzmnHp(j&eUw1oeWc_qV3UQ?r(Cx)e(Hg^7j0_I>INt>u*-tA7G9I9Sw~9
      zRL><-6K5wzMY(OG<8%E`_i(`{Ehe*_r)}1@yDdYuU}W>I`N<!*KT=wW;4a7GpKA%@
      zD}mT>K1vp$)BAGp@(K!A7l<&vm$x^Xr6{tPi=u>Y!uXn3%cNZ|^?EywVHysHML`*x
      zoIxLfqtpa8k|VwGu^-`7n~(LDvodJlNi_;Y)vnub>Fb8v-o<~p5tn7Pyk=PrpJ{}U
      zkbA_dHzBvkJGn#N$qnLpLC&amazc4Z?X!r{I?k`x2=WbdUP06Y2bg_<^O6jDWI~eD
      z9=RaNkVjq&|BiR-f%p}*9*kd8>(lY;YCRNxUwwfTMf9_e^OWr)LE%0YDBZ_Jif{bF
      zP*X_rUBN8hcbUu`u6mwdIn1MoOW42_RFR^_P29sRKDTint5DgyZED`5#sh5fspDI;
      zP{Sj9f@RM$SPm~7zqmEVnj$~6v~YmTFm}}AYJ{)p+075M@PP*y^$GAT`ruy$AN#)2
      z-Zv14i=VwvvWO6wz;~V##iIkh6Ty@|J!X1)+|-?58pP-L!Z%&!DMJv;)VS>rBep?5
      zY!E9%YS7vd+Z*GyKTfa}_!4WrZH_p~xUu-1SIE|vensv88^57AbTq>W1fCPRpEzI7
      PM;ykEFsM*t3e~>=9e?il
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZEMp|6n<{sQq#D)wwo{WWjb|jM-3tjp)xELp;$YiT5#WPn`=$Ul9=3#?XUP7
      z_Cdc`P!Rm;j}lMPEUVodA-VUQJm-0yd(Zj(=lf3pk5N;QV%Q$rfj;2}{7`p2)0VpF
      zx;mHAGlzi`x*<OBz>>b+3-*V?d*{BGB@|>BHs<S2YdW?RW8w9WY{?H5<QSe@EE01L
      zxD|-ji8Mp*nQ5DHhapq#)CRP)9Yd%{qo6@So}t(^Z80<UmJcn#Q0h7(ZVk9+hH;$C
      z$d9Ja@U(lei~k+9$&ft=tue3;xe}iOZV}%~wHuyax41plcZU-(lFiy)=x;?s31x<~
      zGn|B;&cGN7V<Fp|?#c0v7|PY!9H?z^-zQatFg?Ccx|M(a_o+GdxS7W-hGjeIOCxX_
      zv44hDs%!baGcrlQn7h!8nC7I_r!7lBO$B!uHqURYFS%`S&q#(r1r33Q`*^^RC)KEf
      zbna@cqhcKe2DR@5-blPO!|qfThUif!Lz74q^k!))v$Rrc>3fNy9i-?1a`m+-)UUKl
      zL8Gr4WuFteh07GL&QMrFks`w53YLk3?jGfs>lI-_uHx1&u+PY*kLz1gRE{Y%BV8gB
      zz-yB4k@%ZA;$lKvB&n+r@iknJi5pQ2q)Y5eLYAW>uosbN(LNoMFx<e}nbMn!rN+6X
      iw{a&f-Hxsd(0*Y3ef=BmP4RG%!=2;M68X)@Wc4o|*4|nG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cU2_^`6n<VH?1rpqARjf2sj0OJX$flmCQT)Tw4?|TA~UoX&IaDl?GV7-C6nHI
      z?S1_bUT8XF96S009DkGJv&#Z2VKQDgJG<}M^L?Ik&im)zzx@H=eSD=LAh6wR_fpUF
      z6a6&RHI25NGP>QAZri4D*t2D-A&>N4%eGP_(~xajw~bD_EWhnZ%a)CuzED9(V9oDi
      zWS?vIjw{b;c&Z>QaQE_Pp2Mo%>dDL?2LW}zR6ZzY@&^Jth08tsmweL#(}hfNr;^R=
      z=LDkVTs2p&<i7Fo<_5e`<Qa>Yw3`R|VM_|kKPfl`r&@ZunX0%Fx}B9Q*UjEj%RTvj
      z@>MtMEu(GNTLQs&qAC!|b{aAQfdvhVSP}?tdh$>_pQuh#^122EszY7VFx{u#&=BcU
      z*EP&QRj?*7H(rT~w+MQ-W7?)}*ec#8U@Wv@)%C7a@eVOF<%u*cne?&a^fX`(Y@O)q
      z8Z^A-P<J%U;)=kPg3*@6-tnO{J)B~NPF-(Rb<=R*b(s+avA{y@r-mgkb>hr~fXEBX
      zG^L%@ZQ1OY&)JE1!q<vyOSdd`LZMDkKc>aPzvN!4RD3G1+8NDs(i{wR(i<UmlRo<T
      zUY3jT#Kg8ospt&4zw@^Sx`Vx%v=h!G(zbMTWJ%j?Ez4UXCu3Qiy1^P7zBRb%RdUhe
      zP${iqTVQcwVG4HGxKXe3Z9*tbXNYz+JOF1)WoWmE2(nm+U=IZakGR~EmM-7zer+2q
      z!#1R);Y$?Re-DUZJ^~NozV3MF`#7b;XR>am`z^ezFo8&=(=+RG*Kqc4?UMUw!>N%M
      z90BD!g)o+#P2i=s?CgPiatqv(JHYdrGokLu`Q)kcnM0J;G5-C95Wm3FR}i)EIp$yD
      zszWL+x$KatORhNNTwh~V`5kZ8g0UNwS}1n2Qk#n1s?@@<cPlTEph(n$XShn)8I~zL
      z!wRKmSf%*(&x{p7lHWZyewx{Q&TYMqd2C^ct+|eE++fSru}i%@+~s=@kH{?`NBSX3
      zDDr)beKdGB@ewv$uV5{_FTBdO7$-n}czxv@sZrdB%dHW+$FAK{UkmTKXi=Z&en20*
      z(D9+?E9w3N!I=1ISU{Lepzb=+Tsr7E5lrdh3#Olpn;uUv4dFB5(eKR$PbUO%OpM!}
      z`fNj9*bvg#yl8uS-1fVPw)cpCKkgkbZXo>QSh3&xECa)0@8b*4GRqD)8AoH8SIE}Z
      ie?jgX4}V2|l)@|r7kEL?f8bcY@HvbQ9hTg%`~Lu(zQIEP
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU+fv(B6kW$QmT;5=o8SWJC220TX+Uk$TY>|1OaQkIBys8)PhKjFFiM5&>XHdh
      zed<g5D}89mOzAY!en3B}lXZ>+c8G_Uj>bC2`|P#%+H3ElfB*aI9{?Ytp&=!3yX!^f
      zQ|p=a-0b^~7n)ALZ(3pKJ6lm`o7?t|6}e$xK9GkGBg=Kd{gv3LAtP{U7(2k-^P;`x
      zz86~0HDm>Do}MKM*s|Qnt{&wU7+ZN%U41N2X`Bu}jpU+0c4PC={c1xXvtD0Y7dR8J
      zI<NcK+H!4y$tMk2g6Udb*KDd2V$RttK=Dc3?mYQ_B=kzhbv!3r5=fWIEt0AAw(T59
      zz`zAek!B@1&y?!r);LezGN3`1yBP!H@$RC59CQuu2uz&ht>Zn4w(VOxp^nRp==J<P
      z%hhp(>2{s&t_*d}z!?~F_kn@4I45wv;du5&w6|sZNwI}SuVc9_%Xg$k%9ukMlMEB?
      zIsubBldTdEb;{Yb!<rS^-JZYCYD(oHJ!`HN1e8;w&xW-}#D&++6TNlZ6qr);H~&LC
      zWAjN<*$QG~zl7aXsXVf0c{<9u8*baRBj2O(9yOvQI8N;5&Q4&5sy{5NNJ}*cdL4(g
      zZ4XW5m860<BOW^~>bN6t_O*gEEDPiZEvtK!%=YC3R1Mt4EdiY=75N;NFqy+WtZ7)~
      z9UC?N^?v``(BXA-?7+Y}NO>X=;FyQNT4|^oiP}S!&8??)CtQqMc3MFKxn?i&JNBw0
      zFU|Cb&%uJMjo%dt$ln;B89BcE*38J^RVzoA>#UqWwQ~Nr>U_>)f~Y+I{e%qPz{8gi
      z?d%~6FHn?QO>L*;R#)5E?B961oi4oFY-b9Wn(eW|`^^`)N~>t64^X7}0MoP|V3r5h
      ze`nAXN_@{E%l9qPsGx{tTt*dNpoRzd3}xj7lHjdOC@m3}qCGoz@ep%^I5}l)u+;ks
      zSB$;zp(>O9xPf`b5Lkej#ESm|>4Nx8rILiQJOo-Qh@tlBB#6LAN>i!K0Q$*E=yxNa
      z8GOomVo?{k$`n-O>PhVPL)c7`HiOTp$Q#(}C$Z5;?3dIw#@<Nsrn0{>d#rw3?2kjp
      x)N!%5v6vv2*#XHoU#PsqQhV+Xe07N0pI8}Ch~@u<U$LKug5{5ceXUY{^9nBigyaAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TW=CU6#k}M1q6EmFD+hLtw5!#@e!jTR1zYorc@GrF#}BLG}~R=oi*)W@i+8A
      zUnJ4Q#8-cm@yxOXT58Q^chAgx=R4oI%<n(ne*$=d%^2nwUi2-`IN+c7kuh+jr3^V3
      z7+fhwc047Fp4j7_sa)fYJ`~Q5aBb65(zdonCozN>)~5+3&J%F!*i!r`hA6|+%L4|q
      zZEkv^dMbk<`b=6<Jtw2kXf%p#hH%a9i3CDOrVvA%A=8wW*!B)P!rA2=Q!p$v?JhUl
      z+>v@6Y=+gobQ!A6%XR!W@e0FY*Rfr<E<|sVDFbUTr1#EkMm&;FVWZ-s$4xS_g{Cf=
      zVREZ)yzU%`uBsH@>wK=Ku!Jl_$nG5I9A;n)$-YoEu0-E<j!8zLI0dSi+;vG@j4<2$
      zkjk)h=DbC%wfdDf?l9c)TP~ckGj3}+NSq-@1Xb6yyOJXHrh2g!@SRS~q~T*wC5API
      z#}|)<tGLzUPH%Rm5@2|c!a5$3Hl5>aeYXbtl4?^ZHZ-`HLP>+O1U}mbjZ0t^Nrptr
      z_MEP$OFa|$e+}}c7E9NH$mxyH6^YQFCX2pTXtj$lJwUv)ypkUx@s;d3r0AQVKk$;U
      zbzCK@G{PZ`46Vom*Dy~k+FBq>qvKd4OGlz!2N7P;i9XA0`~v%oNa&=rF+}c!wnl-{
      z<N)kYpcYAb>j%q?T*kpNxPhBQNCm`lKwS3MKxlz|8Iwh66Zqhhq<lLRkT9$uKjV7)
      xysNy>^)BuOt~I}a!2A!azAJsheR>PwAvPvNql6Sy!y_^^ML0j!^2k?Q{tJpM6}tcc
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMZF3q`6n<{l0HNC#XcC*W*1lMU7=l_`Ux=|upoEq}+9fE{4{-xqx*4)C>{8oL
      ze)hXRMAI4L*wG)L|H<*WcQ;{+jL!7K?mc_XdCtpo&fP!%{_PI{AK_sPQvx?T&M>!c
      zJ~N-^`UBhXa(2I;Gd*u$?+raG*S4OR!>;G%47+W)1^+7sP2frxGy)Wz;eqkO@yzEj
      zME^H@5U^o(ht~RWQh}LTwYY1P3&n!Kt;!ozm=`!-|GMVK*sav6rQKqoR1}yUX^pMg
      zqk5o@7IwBP#cu?n^_>SB6*``BNrBU;n|oc0!5&v+ySc9EbaIBWFvS^*&8pf1x7&~3
      zu-N!&t7|*9w<ZutXBq<9X0L4}ATXz69&fR*)xfT$%bCUuEekqgh)e0Bju~HiTSvl|
      z-qCT&m#*s25s%@zz`5}z;<!P!dybWLIp201@3U9$yPp4<?e?5b)@paGI5OmJWN@GM
      z2A;CW{2%BzjWbfp>NtyY0%t3>V^xO-d)6SJCRORR%x=RR*pgADOdx_ew(32#U4iLm
      zatQ=PndEmYZ`1UwPH*sn1*J0~_BXqx>yrE!eX8aG5wow^gXzTaxxi`Jm75Kgm;)om
      zw+B_tr85&Jo1~-M<nVBB9Qz*Mlu1j^!sdxxcimpgW(V!iR$mY5{5Sr@DIdo=sZeFd
      zuqlunO|0yY5NjZpqNw98N&<1FQYEUjDJQUjxdiT^62pDo&`B4k-0$yrcGvc7%hmA!
      zRc=Ml>`4^@rF4k#fYFeqwzqG!yu3e_|7u4dVf2QBmUY*b*C-kOi>%1j_#a~Je5Sd~
      z3v!|PZ(5M+tWGYoI=RZ~<RbH2l<THWE*npYN+QK5=lS&)G`@k(D~M*~2(vG7L5i9Z
      z7o|9@#7iUX<&pME^mklqMpEw@O)d4F(VR}Djh9%WmeCGzf$BpnQh$g`G%WwjR8v^t
      z`yNXGzTmxEXCZfZZ?|w6C0xaQETf7~v5hbJY~UfakLbV60n}meX<`SvXrM*;32q^$
      zqJpjP_6LovG0znB(WQ$=_;8drp|szULQ~=9eJ@fg$)Z0##!bc$_=J&tlCtU>h@`|%
      zbnzRAQVHy<Ai9zxK@fr4EPovO**Mgj0M*DyK7g+9lqtyI(m3|}5LOG)YFH&>e%cUr
      vc^v!01gyXsz6!8;@+k8rQ+Hlrqq+183P;%b73J|jKZXJ&PkOH@hPM9!*#njB
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TTA0W6#kB>O|9|P)q2@ot3I_#H;62_C<Q5~4@Fq&78akTb&Ml1Dal0iU%Bjq
      z;KKfZ{ZWf2W2{#sWRf}a-R8{v`+xfvz&ciJ3=uZGAaT#cg}8M4kqWe{`h8bu9jR`j
      zrF#~3-JOS7+&mRgEVYdsVeNfl25nyjT3p)56Dm(#9vueigxrtA-A%&R*89?LX4)bY
      zwtKz`lx`5LYOTY1&G1+jFh&?o^htfQ2*QMeNlX#)+ZlAG+De1Dz6d<G&HE0#ty*V<
      zp&uOBC@`g^0(p>}cV%=ay1pcoT47K49TBN?Zi+=%m|#nNs$%xL5Po8Sue1rHp43gD
      zr58q5>{6{g3DERK9P?gm#vF)qmY9CFo&_wR!YKw#jO)GolOYt_VG{M^u1a&32hDvr
      zx-V%SK74Kwzr*~_r<>#pk>ha$X^Te9^{{vZ#{PhQmYf@m|3>K-7lts+W0Ai=0}j4n
      z##F&XZfr(x@Op~Kuddyo{F1lF#`}g>zDHr!L|{DTI1ur(fRCA0-OK^2MAybD4Up#|
      c@ZE?w=HJRh2%qrz6?O3?_2^CNk}+7m1LlRQ4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TTc@~6#h<Ix}_`^D<F!3@YHJR#u#5LBBaqov*}As6CZq-*2ywtnQeAw3H&RK
      z4<wrS1N>3OGs9Y-nC@mLdoJH)&dl#WKYjstj$IEWLMPIBa4b&6SujqOHh~(C17S?6
      zhPjc!aWV`J|3z6(m^>A6D0GyINP4IcUd$$#g7nX|5oaE%gzf99SBeugLg{Uf@H(6=
      zFw<d&P}>{DN-MKZC^uUJLZzF0ku@wbztnXQmVK<?4xzeN^sO~R>n(_RpFy8Tp`%V~
      zFwd=beR!xbBve}V@{^%VKZ;>235_rriFhDVWn-7Dql{(NGe;^T%$<rjca68W2@8=l
      zU14ODr01;CY+W<ZjYXF6Mm+B6i4&$+y-_a=*04?3oXjz6>&wGx+g;exBGmgyo{r=@
      zWesml20eYO௚UrVs=J>mBcg>fk!s|Tj%oaF$$#wfI{set$_!n6Ej>b1ml(5R{
      zk}DrD;0=7d!kVjq!94APVxN0UoUcB4dV%#TY~5wwv-k&xTfgkWJ!gaavB9Q@-v`(%
      oxY{lT$_@HDF;V3t(03%h`!5$Hgok)^3%WH8{rq3(V<)il7bXR{TL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtSOHaZ;5dKDxD&h-#Ym}Q$+;~P!3~Hi5E*KM!TiMh#r6ujwz`xRyi3fjxKgu{Q
      zHR9{!W#{?Ld^5AJZ_h6P_ON1Mh){LBNZiSL*%h5Ydq(I^M@VA=ZAV6lJKq-PzJ08W
      z)UIkZjWkhsp~6r)DzuO#ln23|z)RIN&7Nmu*Fui4_IuXRM<YURUwhgd64p2Bak6lw
      z=ZGc~@tkVk6B+G_x_={GRo%QIWNUs)<&nWy0TxCGlXdN>M%1=da4Bt95sFFrl?-%j
      zr_QXo)gj@a{*T$KgyDPXMoEt!e0dx<;TbbXqJ!KCV~#R4X_Vs!Jwj<?b716}E5ne>
      zTb$F7ZEi60C7!Ni1dD_fzE7o<9;Xr}*QvDA^APe)KMHQtDW8t8`sW>YV}|@Ah*!yD
      z@$ZNwZ<OCrw$9kju(Y<ecb<@cWOWDye)BAWW8`pxan{QHG)!QUEe2o;(_AFhiYRe5
      v4};mXY=vbU%M|H>MZaV&aW#^1g?>0KN0`GrdtyeP(1q{N>tCTuNrUBgzAUzK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKOHbQC5dMawaR_OF@Mues%8h4Oaja4yp#V~=h#rDC^tLuDv&gZd^%^Drik>QQ
      z=nvpWq0VlMNDIC6vh(_8=9`(lf4KVv-~j6ZW(c3+v=G<wMvlbL=+p{5913Zz(P3eg
      zxXwcHH4Bfks2Hf!9z~JL^Alq-lLx30Hl|ab($3Y$_Q$D}qX0F+$Cpt@k8KFG&pOri
      zkg&Pcb6}CkG!}iPk;a{gr?5H^y)2T6>TF*Ss@?2THBiA^69MXk`JPVISuqHeIhSFg
      z2rUo4kVZSZbXM(^&Iz5~e^1^ayt<J|;X6EI%flp|rR(pb)65BTv9euhRh*eIVQFi7
      zYT#}n^PI~Ej5(77Zm|4Eyj(~f?+I&soAzaSn6~tnX)AvkLZhD*CQ_%`tzrEi7u<L3
      z_$LrAkw@ZR;Uw>p-&wZ4uw7vp?CkFSMB@jmGidVLU<sU{hEu#|ZDRt%8_cuC30S})
      z7jaq(ON{10uu_(7vvjdai*8v=O4hvVn=jX#gv)Y-RlH@7WAv2z?(fv^FQ%^f1|NO{
      D3^lVx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O>fgc5Pg%HIJhaLZo^k7HE?KxRIHxMR}_KdD(WSr632D2a<|&7BYRyXe}`WH
      zr%E8fogal5J3%eb1C~6qv-{@F%$pxSzkCC*kH;=*gx$mx;h8uWvv8UzV?#BahQiuR
      z#f6pOSsI6jX&jARIE1HHftR4jSeeLdI5$?zT+|6W*8_XMc?tCw$|(Da;B=zy3A=te
      zmL68H+JuXSi#5WNk|or_Bw?hrOoZ-bNimVezMYNa)T-1puuj<KF89<pn232`QX9lF
      z&@#^hdn!z@@1co}lGG=(I)h8jArEPigR=ViKpA;dOk$ZGi&#s7KS)PHpNLGA@$%BK
      zrz$6O2mdMB0pZ5E&;|2RL|9Fv?F-f_&E|y7PWMVPeJ%2w@h)SI#Dp`p{&-(D+rT5%
      zZZR*x8>U4zlJ8X6u~+Tsc{v|%msm=!&YLbhE6VmJNAEeVv2Q(VU%+cSAF=io%@6*q
      z3*7$xnICG{Wb4CW`;rM>!^0bFp~pXPXOWB+pUSU=yST^Hg!_1~EU{O`T-c{i3|SD?
      f`4Tv+NSf7oWl2J4<KaK4+kdAXUz@s96$pL-gDjmd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g>mjVnH6F_}IAh5uCWj7!8Su1X&2OpW;}@zziu<qkp9<6BmAfA7#8P
      z7{SNFG@Z`5J?G55XWrglUI83n(?yD*7U+oIiaT-7N1@V|tI>!HYeVHnR`Ofp^QQ67
      zO(@UwwQ-SQ*qWt(Q7<pfIuF{4dl$~1q?1o)2Io*|Wsexj+pXA<YiT)|)OUIenTENN
      z9@5C=;UddWY$+|<(a@J+SNH?Tu-r0zG3bd<#duoG*c&xw;H`g+RcA;?p<*b^cfybh
      zq-_W*0~0<lRJL~}gn`fjZw$nEOj4IPZ84;lR_6Y9C`299vshzTq9AKSO0lLWMh35A
      zqOdPdRXj;)CgJ@!3c4NYh~5RdsrX9~(7H(I2q}61XLs)z-V^Oo$kXa2)niheV2N;b
      z!a@N>Lc~W2W%8ihP?>tw5=<v7vqz##j2tQg&BP?1?9)>dnh&c#q}A`z?yu7I<baJ2
      DM0kl<
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%T59@6g>rG5KsgZ9~-xz!G<-4NJva16Jq4C?_e{QzziuJ1AnC}6BmAfA7#8V
      zU=$w<Gnuyc_MCI?J$-$9egRO!k%brocfEj*#J!mFsaBrhYC7e@7_FSZNIvo%-u9jA
      z@Ji~wRu&Qr$6pDb;Qq~3ci|Z^w~+i3)cnw9NS-TCnFd3?Y=?^6lZKN>y)s}(wESC{
      zMjV+eETkB6w(?{rm^f1Rgfo^51=}Br@jz%5#;at)+^HEu&Hm?Lb%uDL6~p#=FAN!1
      znwBuq_4R_GSgtGqW8t~HH5RiOQ7yuB#DtpKUAym+k)B&mVV?#dGpmuwQdgr=>8>B>
      zp}bVlG;2Peg@({8QCIYD(2IpT8A0nNMGeI01Cl4FPe?z~DTXYq=_q?aj3%}yE-g{m
      zMvfxFV+VQCAooyQX;q_`DiqiQL6$;EN&@XjBpaRMD-oIzdq1e9@6_I})PtzN;X8J`
      BjWhrN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B$w~u35PfB0Mq^wO_XYIk8XNH#5hN-oF_(zou}7P+Wik_HdP4jwJqaHC06$8s
      zo{1Qji<hphs#mX;_xAqs3SbW_4u%MOUXX};*_A!fiF9Cu?sSASCem(Vl(-LFaUQxY
      zBaOOHaV$OMAWv8uEct?8s-9^*1V;886bP$-qmDl5355e4Xmdzd-)LB{@MYkM7Pk+)
      zS{6x+_C+JSk-n;JUJ>&3@KzO(!&nIpMhKG)9jIo~c2#sKU0)F@Df~)C+WP%q-rVV!
      zu;2Li#x=rlSNciH{A)^H!cV8OebemV#Dp<VnL3}(3!?|Z^v34EqIF-!G1EJYY05S?
      znE96PA7TWHgfeSUjja&XcBTZO*b0;AMxAQA^~?{UcI_}MH1Vx?0~Xy{J{iBG?47Zn
      zW9w{f?>wXU#NQ#5_${&pj#0n~#`(9F!7zbI_P793C^L!uRWQwHZjRYLZI!Lf<tp^Z
      jCZjB*p=L@~%F=y0!W`x~Vki14UHDmg{b%V?+F<zul@X=1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB^T6g>mjA|MDTJ~nOvgA>;nA|Wx6G%Vz?pW>trftHl1fxps~i3>l#k22o2
      z7{y0oCNrILd(OF!d3}3+0dS6E6A6Z@;|6>p?!}VNedTJd=5sEz_LUuI$tRx8yPiGt
      zm5CI?$yeqlYj|_rU%6T=O&EWY+8?G2#)Wc~ZZQ<AR_MrGsX3W6Ya@nK$GepoB$3U*
      zM4F*sDOdJ_nJxW+u&0utWO-vT9SL8BcpXgXJGEe_TmS8-$&d_u#gN}Df+6cj-4R+k
      zp1)!!S8Fk0DqM$mred)msY#rkm{B!*8~^(>I@f8YaX=gzUn5G9>3e}cmRBk)KO0Z<
      zENq<~g36%1MUN7GsbxC13AK=*1sL_yCuAP!mOzfqOccE&MH@SWD=`as6bKO?yC{+e
      s%?ahTS0lodp~N1D5*ry51iFz)F1jbzCe#%6e@H9erGsCkhf#u~cM=MLIsgCw
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%T5A85Uc@Y5l|Ea9~ZA6!Hp+lFsLChF(F*ma35e?#w@#Jm?iL6dNT3g2l!FO
      z-iJ>J*<^OQr>nZU`u*ee4Zs<W3?vxNZPzy+`HauaiIT21<z!-Vt(ENiT0}Xa%=U<@
      zsnBiDeUP@V#Lz&Bp}rm*gRF(C`P@L7;rMr_pDs6F{TR}h(v`Z!P_A}@V$<QSZCa$q
      zwVSmbL#pi!MHWfq@-UELD0HMNy8gH?)IIMzf}z;)2Hfd!C4)Flru0Zo87?~OHHRjw
      z8o0@@G2@OO@-Hc4$k}8M*TVMHf}vEc{gU5y_;gAH2Gw-=m?-xCyvO5ZuutL#k=2dC
      zx7Q3=%k$Mh+{$3Q%F;4U13k1-Mz)YlT5s?tcj(-tsD%W5K>DQqg6uQh63Ek;4YOB-
      zxW*R6m8c5aC{RT8*ugGwkSdg7u0|MBha!8Tl87ixN#HId$%pr3OhTigyacWMhgvJ4
      I2VsN5Px^nLf&c&j
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM*;3O`82%2_rj#gHHW8O9vUDRZh)V&5LT4NbIJVZ|^0YmaV48H&69yi|x6qs7
      z$c&d>_)w02(g3CH6*oEO{OkAqOaA`*^&7x5WEJ!=ELKfNJLE_FSgYH*DK))b*SM6n
      zUUH;p$%L(KSY@XsOqsRp8kY(J4AFM4OOJv$miZG?@?!--hK1f%d8b~tY$+;5ZaAW`
      zcAk(SxU8GHTxFP>&$+&u!Og0cCqQO3-I6#`H?*8p=7vbeiVT5_RS{wIV^D>H5W`ST
      zH^q)qD+#;6ONL;Gc;-cJ>+ahZ2IPU>U|7msrv_<;8%Hj9H+UCN;$e6IFSPBT8Ai*t
      z;8I*IE5mM!^LZ~woi+H8Wv64;!x+K@gHk@=c0<T8CNZVpF2h)RQ!bLIxQF`;YE{UO
      z+~zeQh0QSAqYbfc!U`TTOmx;^-O-JTu-(j$R6NFXEBv;o=)7=Jr`nCq_Xrlo4CWNf
      zG7NV{R56bjaq>#PyWfFtw{$4VlB(6|mJZ_q67F~;iGD9i#Sj)4nC2QjRcSw-QxAE)
      zF3bu;s+UJs5}z&Qn#7`tmoD8Qs-{Ob@027lcEi6?@!Hjeq}7`15Z*F`(^0=sD`7AU
      zQu=+b`BYagRrgd-h?-7)@+vt<nKCp}Rm(nM7`al{jKLcXnplNwcBr!<WC&WtU+UDp
      zx77q8Z#i~ZWOa9CMy?L0x5!i$Mter1Prr}=owRQB9iZ0-lK0c8#1qL=gn!Vr4=R1b
      zbOM_QB8!`Ji?+;g3q$lG2Mpsj1#xc?jF9yJMlt4x{YGiruv_uScoTPWXLzs|ZzB2=
      zPfih!q?*v^`GSrnmbMdrFy&e#ef1lXCw$!**j|#IBK@7hwV;iAJU&t4JWX5yF?_}v
      zzO=#I!ZKDoXd9UDV9sC`t90ulfba0$hnb?&rO+Q?m*In+h<oAGmfB~{D9toU+`?VD
      Pu6MeA?diJV;otlZYG-be
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRO-}+b6r2LG2q+4QAH;a@0w%cej6n>E2?@dh!o6U#)-2sk=@R%?dNT3g5Aa7B
      z-!2fpPiB+0^LFM<-}LqE`31l^4lTqO>W&KRdp_ke+t*SVTl&7ujnQ%#7_q1cZQlg0
      zk-jUszR=uAPxa+kbOU1{!Eo|f|DkOuBOIZ7b7lC<LXzS5cjDE`jv;v=l{9sRM7dQN
      z(AM;BMH+Ervapb1$hD;sonSl^y3dEMV92+<5qAe%%MdS%33DeW42|~x#;Y-`O}QJ8
      z4QnxE9ATQArt<Whp-`^0!+~s<E5~lSd@>=vMVt;FlVaz~{~krEoLUNd45jfh&Z@V{
      zvuY^NsuviBbk7U)NL<Tsx}(36KMSqt85xB`x1=Wxcgl#?bwYK-=mV0cr6;5x=@dhj
      z)^t?8Bt-)ogo_InHjyJld~9KxdQh+^EPGWWOb&VWK$JzJBo%>H)Fd07<I5&AI(C0Z
      Oi{GWaU#0tz!NEI>k)1UF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+e*Vg5ItLKQ)|7o-UWSal^VoHr78hI2z{yaecP^aCEb+muIOLsli-6N;75s*
      zi&m?Yz-DJMbIzGFdH;BQ18{_G2RVkbKw0;W-}47|sHHNl91dM>jFw$%M4A)YZE<5Y
      z4}Goz%LCy>>P7}ui@t+A!|`;GiRSjBGW@|ofno0_^O*JGi=UxzDwQ-%hP9d>7rP-z
      zaNDF$1t;|mL*9$}qJ$aDm*Jquu;fc6T6WMC`kHq`!BFv|9uGTQ%Q()Gd2=gA3>W@%
      z?TIPV3^-w!z2~7#c>XA4m=A>UxDi359~r8(`j0WZkdH<L;80DA4+vuQ*Y|A9A~qOy
      zRJwvjY(Tt&M(=wG45fBtbx&N%c;4L!!^hh?j0Mu}8Tm!J=|70yWE-7x6g82f2Po_x
      zyrA?<w;alJmXholb(~{?;`Ou&i&&zF>amO!!XU3v&9E9tObiwFL?tOufs(*g0#Z)y
      WGZ_fYj<r9n>yxeRe_J;bf~`+_S+MN@
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO>fgc5PcgbaY;j6l9uw_9ym0Og2fGysuFU=rBNwz)dLcTwYxGKId<5rqxP@x
      z8+w2f5{F8?_D3ORH>RW?CuG^)nSJx#o1MM<{p%dSYizivFuX~!!XNS}Kk>&(X4;qI
      zvCp+uGAgu~<%IGN%$`s|p_It<p&SVpRfd=ImH(=CxfTW!o@Sb#xTrI9??zhQP^hVl
      z#k;?%4E1f9Nxj3+-W-@hztA%E4Q;=3#83_LW6^+v#U@-VFn9x*iTz>}33bS$R4}v#
      zdCb!zuB3^}WL1BW6Na~g|82U@P@D3!Ac5tZ#>ln!TJV$vR!i3@&l3MbG!(J!cRm@z
      zt4*}fW^nRoXiVDX=3xwriO>Ocn&j%#96)Cd6r_AIArmfP_W6ixtX$g<X>M84U%+$P
      zvGWwF7te;)(=-u=Mwk~W7Vo7wrM260ePt}s^&pS**66BK=})Ij-+L78ph6E&-|GHE
      z;|HxOXwtV~vjJ7?;y%R>XDBSeqloZW#slJ@uF)>J_6TFRyzT|qH`JUnL%MQCsTt`K
      znE(z*{v(NpbHv^iu}4yCmiQ4Km&83A15S&5zapzs68LOMns)7!Bn(gR^j7J!o2AK}
      Jr7x_&`X84sya)gQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRO-}+b5Pbz?5fK&qKs|T`4K|)3B#1FFZio@#UZ7cP)<R0x$iLE)i3fjxKgu|}
      zi}4FjX0vT)`re!Ao7cDJ7XU}tagboBdph7Z;!fQ2u~FJ`H6C+etx^5J$~Y$tzX<Q7
      zIWg)^nlnAI!uO?dkYd>T%Kl__FV8wtZN<HV^q-*SM<IrEU1?<-3~OaKRODJ(P9n8R
      zk0I3>4P_QdEal)J!?5BiE!)9uUz#h?_a#HY9Swxv6GnycESa*`YQoTP|MSWkLozUm
      zA^*KGh9ythmax(rnJGiDT!{g`&>nC3VlpABLzuR>r4HA>-FL`h?bR~aVkkw{OH&<2
      z{#Mn8!3^2XC@=$gs=_z!&L6{J=od|t`lNq>rW@|$6RnFBHISeWNbes!A^S+D1ah=y
      zqimBH$5^I#Ge#kg6^aOtRjiQ)nTz5~s~W{rp}-yp5(}j%37khFx#*mniO{RD@r%0o
      NliHn2Eky;k-vR6EpfUge
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO-~y!5Pd^J7D6Z`e3o+H1{A`IW0eXCMFJtE2x$?A-kdPny4q|auQv++3QkBI
      z`UCo-s*b%u1jwlukLTmPd7kl~zfZpb9Ai7c4B=~>=HV|jRHJZUbZSFA7=+4NqdU3f
      zBE}}Xayd4URhGYVmZ_KnlnFbN&==S>k8E_8S~Ut#AskGv@}v=)q3-hOb4x<yn@+Vo
      zA?)t89WYE(8i$ccO5<h`$*oSpcE76<ZtmX@%B}t_S5d-34FTo|OKqL<W!~$sxmKNo
      z33Xq7ql|X`I9Rqnbw+5m|9c8e!t78bx$p2!tvn|2DqVk{om5U(h}pJeq;cQe5mxs0
      zCm!5NRF(;SAT^h&Ck<9#<;Me=!zaR;-yNGq<`&fG6&oT{qke9>e5Tz5Hm5A{$cd8A
      zKr%adiF^!aWrT9hi+3S@No?@t;P4UE2f5CmCTCSFaE1!bu_(8lq6{CfB%T295z9j2
      zZgs3kwdlv%n6@F-<w|wB7gJDHeCW#4)r$0(j<Ajmi8w_s(9O5dA5)=QzQN~zg2uIT
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO;5r=6r2TY5l|EqzYZR}fC)Cnc*3BD#H2|>OhE1nZt9xSHp`a4ztWS52Y-M+
      z%J^C^igGedcK5xVnYS~2|9E`^aEg5sDTXuGkE};N<`XMa($|&@LyK#zWIxhk))UIQ
      zjqilI3%hbCOk^02ev-ZkHo;t>I#XZsi3x+@a5?b$YX*aHA$_Tv44JB3>(SN<?nMr1
      z<O?v7Whgq*7wu@+7plwqo?s|B!GL=`u4G)#n;HEeM-1oAKRh)UR>s_mNSoOVc~|Hb
      zCo6%PGL)+|Cw5_Z+;^>($44W=n}lieAu+ZV?mHBo?>4g7p_eD23RRE7x~AwDa-ASj
      z192l08w<If#53s6FtSe1p}!RGlmM-(R5g*J4=|1oUXXjHQwjxIb4mA-7*|-Mx-vsy
      z9Yv}Lj}2^+2E~T*T&tecG@-<v2r?5gs0rAKNFh0==OW}0+kdE)-_*`h>TWV%?-N?l
      Bii-dM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5Pb_s5l{pKKYjsdu<>TZ5DAF~L%2Y=FR&?VO53zs0{==+CLa6&{wU+L
      zw1}dl$#!RU-g`4|K0e>x0bJu;LxSPPuzdZA&-p@kTxls?I*!hja^=WZLic>fv0Wu5
      zdS}XAPpE#J(2!!d+>MSgOH1*EhBU*~rqs90nsvxcUwG|UpCNrGEvZ@zm0CBz>L#}g
      zy-)pFMzcO-NOkOq$Rdec9vU(Xg|4(j&!3HiJK!TzFqFFXn43fH${>!CDK(WI!)<r>
      z2>%<<WZ0Vr?FIr{tuf>bp*ma%!*-Vp<yw8CsAF=^BLa<TdVEF{$3Nbq`7$_RD2`Xo
      zH`c8%Wc#-7j>Urv#;e3O$EyiVrVTT4g_@*o2Y)h$&V7nnNYDqQFD_q^eW6<dc{;OU
      z_MQ-J98g?cRpAf?il`n(C=v$^jB>=)2xC$xv1ck-5v3^!JccCs@ScoFXi!wPpw-{d
      L!Jp96P~hwf>tm;n
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVT~`}b6y28$NeI(Y(g3AcE!HC8D_Uz?h0@aS(by2M1JM+}hA@P|WD;j4U9=BA
      z`J#Wo%2JnaF5i@{Rjgfg_1XX7-%$6ROh^iOadl-)?wNb<IcMK}_C530KY#oQ;7xoH
      zLYu%;!Kx;<^}G5`qGFqtn=mVtgzmbwxn6aRgj20l%C>84B$DM)#WozrEL&QAG6Y57
      zY_oU6bIz)kw0oAT?}QK(m}tH0AXHW_Rt;ySo>)N1EM?{drqeG1a8e*NJ2#)6Sz#z;
      z;ZAB<Ae>xUT)sW0X#$-N&uJA_^!1`4aB?jzK_-g2RY+*w3jL28Jcx(R-*#>7MInW!
      z@<r1!-D!cqa6C(7$?}E~fj~?}4|)ZHQ~tU#oQh{VxN=HG2w`cRR?$(jUQ!XMSud;T
      zL^y=A0w)fiA&gg<!75uu7_X6!4P&#YyL=hqbm6{P31gV7<o)`}6eB8B9Fx|VisR@K
      z=t`TGk*Su}4cn(7nl9({Vpg|J$(}bEK>#rZb+=4Mp#82asenk4=z`%UnY2*0?~&-?
      zcoWmfqV71dP~4NzOZ136x9(RWj4J{?b(B=$_<=TAB>L9&`RICv<1MS%&5cr-%>_MQ
      z-&?-|twc<Kz4V=NoO0geNj93KI^p9z>hHL^wV~V3-JZ!Xu9K0blZ0?Xpu17Gltrct
      zTMA-U#T@2Y9_IEidy+{-FoReGDclO-Jzl|9cO+G*th#2=bWOuik;Wpm;h(+<`@(Qj
      zDSWD%W|r2sjl4TqtJl%<9R!*TVTrnFeaTy~ATZFH&KcX*sgY?PSCvOdXa*tF>Uk7H
      ztLT%R(6Ac9ioh|C*LoNgSxKkjnD-62=R*}a+#$cFYuLJ5wpr%7`aGYMKhKCC;gb+P
      z7Kk<?)>l=0iqGUNGj`m=`t>Q4)m&F`71J`(h6)3l6#bU&WIQK!0^$fb1_N}}Do_Va
      z?FHOYg>8WixLV|f@&84JK$|IHHASrhXK1l45Yft2J8#UJvJdvRYV}_K=2wGI__QO4
      ze%X-tCFz&#$Q#*=ypgSl<7wGLypbJ*W0=1a=%#m+Z~IXA4-}q2<O2IR`4D~5R6Mg^
      zn(dxBAkCm>o(Vn0E4e^)P|GRNb6T!FdS1%~qpxcZ5$6))?4gfqd+6ul9tOC&hcjFr
      z{f(*GFwXx=9;mDAm)FsYBnB~$G2FxjK2y9=vm6(23yXYmyf%4`o4A4rF9Hag9oj#{
      zG-I}LJ~%S4k3=I!#G73uO<B*cx3&v!c*Jl&iM+rV0&n4>A8Xuu2Le&?>jBsxCqZq=
      z<f>-}{2&5v^C&eg8?KiRyP7Rr6}*FYeb)(&G6gw{ANF;dd=)>ff=RMeOWWi-df4~N
      z7QRA?-}k*i9%bHG^x6~5<VGGLxsQe4aq}56jaW4vzhT9`Zi*N4v2<V=@B8t7p)A`O
      z@AAlF+!lC>%p$E11Tuk3%Fj48{upZl&mhucJ<8}K=-O9`;ACE4_us$A8YzdUX5d?X
      zSRYWU-yw!w^x=ET<Ojs@Bc-xS=6~|wT&$%;0bBGLq@+w1n74^S+s5ZCdN+npL`i-Z
      QaSj%XE{|R2?lx5Z1N-eeA^-pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtSOHUe66#kANgNV|CZ(X=k+tQn^F*O7=F(GU)#O(#H<86kS$;=%B|EgUz>7qZN
      zKg#snVMKhb+}!j0zVo{O?*IG+@C^qJmI!CApNJoFEGHt2v~PqCLm`ccbU!gl#7P(i
      zkx@f&9t@I^^37!sjil*5_#Na4hl>P{;A=H8-KlTn#6f}Z_4TYdRZn_}iklC$358Sb
      zYxA9OblkRB;Yr^WUGB|y8#7O0v?toZKzgci(j(+s!BCZu!)h50iiApA`>K<S`YO7X
      zeNPdpX?jma+S-{jZ|-zVXtv+Ejs{_QZ0E3bUi8c(d1<fn=wknbRacpoG|CO4DWP_J
      zvOv-DWE?ZS!#N!};sP5_;@Mh?*d^=^vt!k7(`(h|XC#!mK@ttrrM9~`c;l++srZi&
      zZ;~hC|6(OCl;0J$uGr48bUuCl@*AaJtS+I<Z;2&vjsh;Q#@gX54eO||#Q=Q3M<%ga
      z6*bQ0Ik1`0)>+zEu1Y^y%qR<~tCP}|XW@*Fu!U{**p42dJI|pvuR{0I0{i~~W(dEo
      
      literal 0
      HcmV?d00001
      
      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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
      R7TjAb7x&ngC|!Ze{{zLNnuGuV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+fKqj5Iu`X5%G%R<=Gh2U}Jp5kRXZ1(C~utzQCrgDcfedHSkyZWa5J#;71v!
      z<>CdSF-^8JvomMToY~j6=NAAc*tL*ixN=ow-|>4sumdfXv1Jh0+!!r8kr8$n1%a=P
      z=-HP-3C+oBauaFpIb69BcSUQGVIj?M`a9hB+MzOhU?IbB{F%c?|0#N#dyxoh6JiXR
      zGpVGhGHjNdxYqWFkliBU%B>u<8PavXCvup>VjdQ<3@eUQq8ar&LSOTaCm7ZpzstQg
      z*E06U!L+%RAw$FYeUyJFQ(>6DkNL+PXSgyfy28{+TG!V@hC=D!Q&QdIVMqWL<urMp
      zAU3|-j|a|Ti(${5?5M0pODe~r#9Jy)=`!S6ex$qNLdFv8|GC#>GxS~<NlAmy+ll|A
      zD4h%BRgt0($Q&L$A@@jD3VAwnNwh{4=U5`YILg8@R>-4#tYVEYNE8&tSmng04(sfJ
      iQbs@-3IdG;B%j!GV-OMpn=_@w@1-|CmTo5vcHRL<TE?sZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTT~8BH5IvVJZ7C}s<;#K!s7Q;pOZ|umkP=ccA*sC7)DRxX0-L&K*>3iufhYfx
      z!UKs$e}F&Ac<yBjwe*c9+dDgV&dixJvw!~n_zj?pHz^DVY&6}-_+qxrQ^WIZH#BU|
      zGt4mb?ZYUvj3Dy7mLFQj#*XJTEI+VYZcy(yQ_ut!y3setZ8tippShuVnnF^b)IaJv
      zRl{^5E7<B378q<Cln+(~Dz&>XT#pl#1%?AQ<u*T>hmIvMv0syn499evMqS-7cEloU
      zMI{c~+`nu2^v026yLMO+NaPC*0j=6PwlWaN>X^W!Kyo9#*YZ1s#t?6&b)=A%)_omA
      zNT)C>FxJaAjR(wGF0H2VNEu~`SkRHdu(TfQ&~Z;-v}U{3Zgg^J`Egg-TI<Mk8m4bc
      zF_bfd1hOO-ezpT@)|TTC5IfYZX@ylYw3;pdjJo9uUBXozGYF_#iZQ$92@#Y3-N(YF
      zQDRfvtYSM}q2l#oQFMZ@0%Lkp`9k06j5AQKRri3FI<cMo?YDtsn5nlS|Hyi8%i-tx
      zEwkECeixLI&mc79<P`X=<m3!^&Prv~NnLp+=^eo+qsRF6l?eG;{|T{|xWxDcrlhGU
      zb7t@ta(jvFTzyZ=KCEA0o({&HV~U=0%+R&?o$vuX;r|LtF%=7}vE(KfrGjZ}VHs5v
      z`MknAyydw@>#0J4G`LPNnF{j^(4SnHyTsB>-i-2oV0*g?H+>a_XR1Nj(lYYQAy6QP
      ztHz4z9Y|!wH&sd!OwtK_Qb}}WC*mXm&++0GwAc$Z`#?1qSdF12p0WhBneW9qU05wH
      Wt8sKMZ(|pGvF$!sK^3L)um1r%PZl-+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtT+fvg|6kP|9)*3|-74U{vK&bJ4D~MQ98YyA4waWN_DLuBqkaXG<;ngqF@xd9L
      z@m)X4ah;P2sJz)uyR+85oxS$SkDp(@0l1F&1iA#KYeCywb2r>gv(fZ|$n+Ww(~Y90
      zS7}GmY_%JWuo=m!`6R65L%;ewh&;den@ylcU}SgtPHIVRM#ZflayJv`6}Y;0)OM+|
      z>$hcV_IGE2gtN4gUn<NA%oP6XkQsrL?aWy@+p$ZQKyq$&d8K48@-bnREys4|1@<}i
      ze7;2Hg=H;R4!asfE4$>(trYWij*bJRy!~t&C8t(>FYuy=0^MWdWr3b-Sd~c(utE@~
      z>r^TQf#U{FU{IiUsuMgqR!};az8locB2^A*nV4x)SF;eVy1vYem-jPy*gyiwBu?@C
      zUQm^9R1K*-XAJCDo)HdHb+^)yx32l~22zT@$WzD-8L+wvzii-uqQ^L9;MMApBCi-Q
      z6gkP*cT&EUK~>RL4IEVTH44y@t6@-0x9Z*-opQs#A?3S8HKMxL+~vAspbtrbzJeD>
      zr@da0&5~R3r9i))sq8jAg*BN%H;z*>)@boa8*1|^@E>I;oUawx_U=}Rr>My&>qfE`
      zHn#+hj*agsk@ekHi>psC#&Or#VBimbNBktX>cO?JqIZ^VtLvTKzV%eT7`B_MGUusT
      zhWC64^v&iA#jC*IJ|r=u7RQ%tNUcd*u0>n!L0d|%Ew$E`x@t=iX?ys87)MyGpXfWW
      z`gmU<miv#2&p7r8LmHfn!D$W7#^9U=7h-TpgV7j_YcLUmv<7Aju4`~J2Dd-5Sr_i|
      zKgUA=4|%Jmc`Y9EGS6a|>_u1@#S;!~;}#r7EYkA~3wTPjjF<er!fQyZpw5VUx*|9b
      zUx&_EHs$IjpSUtH`5E_jnx@zs2+)gACyvBnc%Zdm0y3Cl5%o09)?Iv_!J|&uG_CS=
      m_lplS@f^LH+SKKY*xe~7c<#q!l+Zh=*}qfY@0n`p2Dx9(wj8<u
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNTUQ%Z7~O{e6T(m`Z7B!>t=0wz#A@w@&}xKUsA<p!p-?ZKB&T8GkV$7I2>R-S
      zm*s8wq<_FytZRX_OIM$K@X2@oi@MKba#?`2`jDB-cfQO1_P5VDzy0~sF91&Au7(zY
      zsY0m|FB<E{M!f8pB`<E4%W=c=95Y+-WZbQk%eLdmeEgc7&8$l4xtW?tL#x0@b8I7S
      zL2h`N&5~zqXlNIh+~2F7YSFMN(oNRN3bdx@)0YI!rydP2FYg!?%X1s(W~-KjKsd9I
      zOwT57%<}Ja&N54;cTpe|9bIJl89OgE91uABKMRC$kZDSGNk-6v!x|0=98_J#E1qe^
      zQ+Cd<q>dx#6^In17vK^&934&V_De+2g+3kqcv7H!I)HjIT6MIHQX!t<L`sFk-q6v-
      z4hRhD&=3w|h|Rj5QOX-mUfD-<bRaCyoia-@U0KUYXTiu?QlQ6&xM(=0`u2?xgwV&X
      zyj9Z`nEn^;A0-Xa-?px1s_OXNHaEc@EuWwIY7=J+?Id3_h9?WQvng<>Mwp*s#xh)&
      zJ{o<}#u^LM32iPBMw}}}J3Ha}qMfLt73gJX(sk{e$r|}4(ZzyFwXM*QbB)r5&JrCQ
      z*<geepVsjr&afwWw_;c%?nv|8=Ceha^Ae*g9XN+64d(@-`)`K5HPlSm>X^^qV}lw|
      zl`g8eGj?GAUXzYvklN`0sZW1K66USPuchG?4yPeyKWEBxy$F(+RbuY!#ARI7a7Cc2
      z;m0~U=5UQlH9hGVp6zfZwITaZ<^p@76Dg!MT&GYP32Li4=JA@^ggk3@%OId#&F6-W
      z=Wt4aTF~)^npDWh=T+t<9XGK|Ev*`E+E2pMVMTe~((xwVVs6)bpAw^aPMP1)aT^8$
      zJUd`88m%%G_r+Hm_C7WZIf3#2KrgGhl6`eIZFw~!+P$?h<>pA2M<3<Z<WQdh-C9h=
      zO4DMEH?D~ye{+fnk50$_Vd(X(!H7u4t~fb)*;Hr8(Y=>}f5P)tVNU+q(8BriMB+`;
      zuTCJo+xd*3ldC$v=F!S0F#G^r%RSvc;)xv`{Q(31=To)M;qU3vf@6I4GAS_2;2Ct|
      zDh6-`LrCDb?*XRe=@}%SBZv^~+Sqt(2TwPWM3@X%B$g#VaHQ&nXK;dc2H;toWD@l+
      zicxxV`(ZptJHfYF3-yRCzN)y|eba3}onBoI(h0<%LR7nr(8=AQ#eG95*&y_$j{+DP
      zyNBnu@xnLI?&0hfzou(n7q*%JRf$?B*YDu~HqeJn4B~^PDnkLl4!neygDStXN;`q3
      z9w52AgPH4N_i;%e9Xiwc9ga`j$EyMlAyVVpczvp^zwK8<V*PE~$Si%>D!9x`_1nMx
      zh{d+C@-xnD<L!sYHaeZ;+<}j%fR8!6Pk3W~%B%4+4C8Y${{=bzlKp;#)3jf}*FM&Z
      wRXoT;GIp5$cj(JggCZzkm3X`9Yof>*_FxL{!lI^5(7J{a#Ufxct_9`40bq<VR{#J2
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMU2_yg6g{0RnayS}F)<>7F)D=JB+DoQMi#*s2`+3Fb;D9(l~tW=*D`T-W}NAv
      zf<MJS;H$m_(UQuO5B>rE4SITZ_9G-#Q9jJ{%<X&6J@?$({rB_Vp91&*_biMETyFb`
      zvm+nMT_=oOUpsCXI#TP%-Ac4_;v@`%NUN5!p<1qN^nNYm1m=h11~HpzS2rH{TJBmH
      z6F7ggS0Ab=y+p;Uy_5oDS6$!L*96WLYbMt5q~CTLq~y0NT}z@}ǯ(o>aEQy{k%
      zv{V73n6P0XFECkieN|67TPoU=Tb>e_PTiX_a?O8c%;^ViEU;4he=1Z2jy*K=4g4Xh
      zti($x_IHPA3rw_?UXxn2gXodKOtCZsvF6D*CcH(Ty6iB)YX|l-HS##gT05pS<$kLK
      zPBCgVj)QHN@U6bIt5GDGX(f|2Wz$f)Qu;Q{+?#+wCu1%BmW;CIS1i0mo@t$FY>HQN
      zV_m>$yls@97Z@#;niF^zXDqxYaD3p+Og7G9K_KsH6-gaL0<ZU~N&%~xy)uC!7A=&h
      z+yJ1rYhww^?77c5dr_A=TRUo7SMoT|)}*==An?A;c|XC#I_L^lz=ybG;UZ`FsLofz
      z@Gd9J)vk(dT*gNNQ<U_EpLF_S3f%n9@k|Fcqtfl_VQu?Bl=WkQGp5eNUI#m1bgtOA
      zichGsY_$YthdJ~z-Z%1HxA7@fIYAF(Tu+r^XYLz>H5;Gf1_g}WA30bwSB?3mjW1AT
      zfDW=jDHgkf(LI1Y^doE*Zu7Lh<P<Sutk}58p`&c3kapb(NsI3b0t+uUlRRXRiW853
      zvqOOW(Io7MYsO?~vo}cGD>Q;6+E(kXxgur`-f`*0#laylKF4@z=D6~D;d`8aRoX|n
      zT8m4|k5TxQpChpOE^q~IVGOr%oL}=@H@t#L{xJYkc$FaLYZ^23CO^z(uw|}hZ**Gx
      z!les2mYOzGIJ>)@!SM{?1TBWqAoPtFL%%yBbR2KuR2I6=M5e_0A2|KZW6aeTpWq#V
      zE4iO>_GIn}&I#;8)TYZzdvJckg?+4SEdPb^^70<8+%q1$uz&jJS-HH2&;G>99@h79
      zYrtY5CAdTJzGw9wtM)O6fJZrmgCB5-w(E#fmKVEBP{Rfp&9S^Xl@s(W;10ed(>&Jk
      V6~3mfQ@Dl(Hq+MJrS}M${{kL4y?_7!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eU2_vv7=BKZCLt^z4WUpf$Y*UzLlluBK{TXk2~E?=w#87jZj(d0HQB`74Hj?p
      z)_e5_h>SXFnE{c(;o2L2g?~eRcC%?>8ipB%>15B@bKcMAecpHb$KSvG4&XI>5=5Us
      zwrn&K>)LH?BT+YX!%pb+dP1{pQ(tY^GGR69^_pqRQew7IvGsaIPS%Qzsx<7Yno+9g
      zMp<o11mPDr+G(n7CSx?J>K((@Hi8HUoarsKWok*QG^CYkMIo?9&E}_bnU%@8^x|wL
      zzaTJ^dtrem1x~7&`PB8)LfeD7vY1cL<#IfmTuIN(XEUn6@g8E^goe6eUCC!|tf*Hr
      z8AiR+BCtkzL0hdzfqlz42Z%&PGs+3oy<sf7CBbqL@WgV<FErQCr6TL5+m{7=qp>9c
      zf4WwZVF*MO?8l%$;F5RmAI-*=cJSt)f*?Z9?vR2V&D~21!p+?g1v?Q6;;6vh?u0@(
      z&hlAIx+3Exk2@ipB<7Z^Yo=zmkF9vaDAp<!o|WRoT3we`2qT2OhvYW7QGuZ@H*rIL
      z8n@P@w4KPu6e!r`?8X)B#vX>1(+!z#R9B_xK^@7}idtn!Gj*pz?qL`{L<y3;rdtC2
      zw;gH<h%Ad)mUf!4mTTr67IQS#QO$Hkvn&=fNSVA=rAG8W_g=L_xIiGPUTbaP6JPV1
      zE56l#<ONMN)x2Q$kH&fuXn=xF!*z1#R7<wi=Dm88@eWcqWm&bN?i8V;1Cw6(+x0D*
      z!D{BSCqy!YcSxLPXBos5fq^!2vIaqwrbEd|1sO~Ugcz5bk4xHY7%4=<$YLglYn(d0
      zW<j=IU$pg#Zj(j|a+oDMJ!CranjY<_npc&MleyJ(S+tYQ(r(Xv%TO|iIf04ZbM3hZ
      z2@LnfJ!P62xi#Yj*<d~iRWhDt;kO6$Tvy4RP_Y;UhtVz<@s>>mOAgR}OaDwdGVduU
      z;3kpRZOJaJnIuPx!mdu%JEz6>@nH}j2t?WzTek{U@Da@#a>MR!0uNlL&Z`RE!ez%&
      zNrA*IcFvk+<y|FCDaPTmBn|9o)}|FS8SAsFb&f1kTI?c$i~k=Pfj-@dvBO0x3;Gf3
      z0%5h*FpF|Zcc%BqbH9l0XO3T52FYJP0vK|}D8If#&JcB1j!<{y0Ofkf8By-a0mU`M
      zzr7fsc7$(#!p|pAehg9YJ;c8IIN)sk?smx8_Pg6*XB%+0hl5Y>a={llrWX8>6KbJ9
      za!M@(BCn|T5#tr@Y~ld#HZjD@O$_sP6Nh<y`WL$DL!8e%_VJl!FjqL~r};L8LCoL?
      zuHhK2BZhY|js=|MZvu<BL@uRp1CxB8#!bxfSHLogeBQzZoN+CK>F|5wC3l&=`gk4~
      z8-9pH+jrPKEfGHH>J2uf@Tv<K<q7av+7Ngh=R8|+_Z{#>#LuoPCy4+L0mC(-xO<;x
      zMBoja-=;dzt-8@e)sHuE(NjIc)p0>AW8J!+cj)>(w|*pvRI{`lx~IE!zwDtaoObba
      zuMkJaZ#44uW26dW50HL{>0fd6De`SwO&q@_y}s(O7xiM<fqB-j8OuG=wV(DT#vb9i
      zz!T(Wxw|2d_nr6O#liR^EDJn^$c^v!pMC&M{lYJJSQPl?pTEZ2E=S06;9LHiaF-nZ
      z4pH300enx&{6Nb5NXpzJ@;|xZoNKy78Ee!zMw;m?Fk6lUT*t>O`T#~yLDl&j;{@w?
      M)=j%c=|0r|1&X?{djJ3c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cYflqF6g|T(Z7IvEyaZGpinM51MU6%pA^}ve0ThD5V1le%QP+w243UnzVb
      z(dZBGM;Y%7+fqy8Cz^C;_Rc-$p8J^n{pb5H0FUrAjxL7HsuSvm=8<`<*FDP#bgN$1
      z%^>isau{&k59@W;3;2QlF0=!yZu1Sd64tmAY`bOOXq?8OGR(BnTvBX0Va+&k0`oYI
      z7{gL$uO?N|v_tN%H54%P?d%pl86WoccHb8^HyB>$uSN0-Lr)89uTLpE)q+{JIm7UN
      zUdYsK)2Zr)JR$#nPN_(Jk=vX7Ytxd*Rcy<#f>j13ohdS?>+S(hf+3}07$Xd^Ty(Cc
      zw=%^ZIvLXtM?&mwXy`#Aj!A~WcHs%!q#`<QkZm?If!maQ^Hng+Xh@=0?B+CR=wlej
      zTMpj|Yh~_5>8A2-#k7m2XNf9FV-gBdBsTbL`3&7hqInE#i=ns5gLO0DRo6SAf~GSq
      z6<xPY-=~7c$!Eu`5n|+@^QhtpERnEUG<eyAX!5d$G<uiGP+y4V0ul)wO=mhbaEKhm
      zIJWk1zTw-r0G%e6v?dKV^eX(7CFW!9zqdh-IA*Dq3jMpGVnQ^EZry}v6Rne?*m9*(
      z(;6ddKL*Hqklwx!Li|>KfR&VU44q+AY*o1(@BWF2l9HM-N^0tsafWF!kl!gr$#RNu
      zGR=M?co*)_b4~_)PS0l)GDowtf-$UO0c&J=i5FPLUFi)9OOqCfSS5TH*<*`S=a|3b
      zOG@iDrS(?g#xA^YPsS0cEFeuB3>hp&Tv_=JC@J=}DJ(`tpdd*!xmO|*hWmJM1)6P#
      se(V5Mq2pl$U7}Tlpqfm#W33jf8iiHqqquw(JKK)+J75_e%fz1i1(CfouK)l5
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eTXz#x7~LmHlQbQm4QZiN?oyl55|yhKs-Xl3rb*3|YPg8g^pH+XlQ1)3fxhaq
      z@Av~0@07JbWZ~l3<=^mcsQXN2n$TwP;Nqb<-+cGWKHuq||NQ<3fVW^p5D>^zYR%M&
      zaof0)YFK8?NtumC%5WUZTx>crWj7m*y5-2FRKYT3%`qIaUMtF5O=**<`_c$P0{c4M
      zv|VIs%~ky_P47ey7C6#fYu(j?QKj>=pMgMhu27sWrnB<`7jmy8+bMzGTsnVFpGnVU
      z1O|$kg-lV;-00x-`@DAWKATOcRpyPwsub9MHKz(mRgGFDrMnWk-6~nETY;x`@#-r}
      zIeNNWHEX6bEf5?_E(nBX>Ps>PfrN%Z3<-o!d-Bj&Ho4GC$xaOsL>0A5LvM?EO+&0j
      z?a|POXaxHN`ZpF6#R0Zn&E7IhCyLkEGuFCfmyL#uVw7#O<ZWr$a<YRxMo&K5w^h-{
      zHE7tPs0j^Qu}xrG&aBCNb9GT#UaR7{dfBKh7?!Cz>@s5rBEdqPWz!buxviifAhH5|
      z73s_vj;z$JyBx+?vSS)ERl~M9j0kn|#wslmFUY-VMR7`CZ@mrcNz2Fe<T~s*QhI4w
      zczF(vCA-dkfQkz1o#Q{`>-x8=+qF<|q;28mO<Owda9Q9GIceLjmrYi=)Nvh7dbMo!
      zXgi#bVRgT%Q&F5180=bZ1m`%;HUhFWHda~+TIV%f01+2uI&NVx%peiNCFCObfOo#z
      zh0Hb@mmRZeI;ONW%py-zc+Kf3<ic3T%)FU&a0-hnvg}N?2D`b~bw^VX%n2OrzExh@
      z5`mHKO-@^uK~(t(Hd#wbm&~O#_sz+?G|W^V=CKgLWq~bjk9~g{K2og>+2-d`>6A2F
      z!BzI!bfjfCb&DwQf$Q32Jw82N$BhU+5s0@v`ce&_!l2ulyhAj-2z{@qYO-Yw@8Nyr
      zNou%>3h&FZVdq^V?w2bBq6^1ut(o{q6RbgJwZUa$NxNBPgcJX-D*^#i<=5ffuYfVc
      zia<=SH?6WfZ>oKJ;HB@6`>60uV{-iKK^Vho@$sD-R%_2ax%AwVE05<cwUFGC>xie)
      z>c;@B<NW#yA^rl(Pa#U-$JqW5I}{ml$zerCU2;T`{Vk2%k!RRj3dZ;ArBM8!Uh0V-
      z(o5m^8~Q^eDH5gN8g@{&hG7cVFhc1Xc2j)#0b>O)$=^$E{Ap%$hRgXZwj+%poW~wy
      zu%FU#WT`icqx?IAJT(fG%;F-7{3;SbI+l1=a0*9UuV5{F9=yt?87Dw~czonBQth}g
      zmwS!9yYAWzwY2c2+b!y|yKmD6uNsbdz9!voAQ%_Ft``s{69kkBuDNv3b0TmYCpMX$
      z+-Tb9Vj99bc-J#M!c&D{ACntxzv!?Hd0|7C!s*Snhd0`O)z$V4rajvUFK!_G<A!3t
      z?ywB37t7n_S)SztRK|&T`YC2g<ByPejElb^`y7RK7Oe?<LsZ`D@R#uX_2NTLwS~_6
      zM0pSWog9AxUEmoCv!p&2$Olh^zQxYTC%7i?93nR{7&`n2i~5%#LFSUcy?_6nXonmn
      z?1At2|G<4h|9d3x19spi0_|rc@e3ySeH;(mbdI$`Vi_iF_7j{dga&UZ;rJP<gv$U%
      Vv5J~{vvCl0!bO$cpmqSa{sW~0ejWe-
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTYflqV5IvVJZ7IvEP@XEFA}w0hXEYWY2x5XZK-k)ZkZ2az)HP+>?1R83|B}K7
      z5{>=<f0Xgu%NA<sH=Atl?A$psXU@$2{`378fJb<iK$k$F>W0Q=>&QAb8lK|@hSO*m
      zRuFj3UKrShA2u3wFR%}cEvss8TW;0%&89B_O<<-Kd<9%{!$b4L4Xon?;sT4Eqb^fb
      ztXgRME6utBeH)wQkLLTWt<CN7+G~MVrT-vW5a?;i)$6l8w_3LLYPP`eZb_0eYHZFh
      z)eYnOZ8o4-MPbF=|74I{+OIjT6BGqv*<3|HTdg11DF~!>3}Zwfz7*YS+4Wqdhc}}-
      z5=csGTt^R*2}}wMw$n}G1_g8LLH=@FN!()3m#;FzjE)p~rFC0}jy{2blH=MN;o+X`
      zMNOtl^?j>Wu{=j=qns(kkS5vSlj93?AIU)ph;@P9svWFafnBY8CzLUpYteDFX8As4
      zOfY7{IwWG`pZiGXBo+lS4X#$+Q@eH50Y^aWMO?%#lg)LU)er;azO{~Pt{L0h>rSgl
      zf+@2edi(YpN3Oznhb32=%g=>V<I@cd6LKc}geK%fcuq=P)k#%(#_8?H0HX)__Js)f
      zEBt`iiJfEU3>j%^${g$diHV(9ddl3<(l^aBOw+-*Q)K8l#TZ?)-w5x*9sVz{6!3xt
      zp0nf<*QS6`6fuuw<oP_o3U8M2lGa^?0?Tu`A~Hqh>7qZrFm;Z(tGp@YearUVDctBq
      z6z-`8WlQtOGKWBp94;Emt9Kxl7GG5<Nia?)P*zEFWyhi<0{8LY8Z_Sy{m=ob!N9`^
      jy2w+Opf=O(Sf>T6MP)UP?(uc(Y&+KPfE83xD*yB^I4mCq
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-%}e^6#i}!k`T59!jA&gT5OB_jz4N?g#sxQ2n|02Xo^-BSi)jR;_jx?I^&x&
      zzU!M$){b^M<Ac(fV(rxFv;T+xhWg#R8xkNdPKROl=G=R}^PTUUd-kt?{`eEXJJ<`s
      zCvZKJE5>&9yZXIY!7_7B%q$dQy5m^pM$s{1cCk>%TaK|6Ta>#?MLlae_fsWn2myif
      zmF{KNo4Mj%>VD4A?}ZQ)7_5Hk5Nb`&77aUIiY!nwxg4Kb5g1Fp62)PG;QYe!Ts$cd
      zm`O~}2-Mk3FPB--H?oF6(|S@;i)Hm(CYDk=^f_&izT)H^8()8A9^sMAteG>NQ2~E<
      z&l>qm<hP6n$U#FhTF7+7+YfXnde&;Wb4Ei5VYzD8Q0uPFYKR~l!s`MJ$Ek<$2Bq7w
      z^lc}MP9o;=)}EdX;{wC&n3)|3bxA`VG`V_9!zr8=s85<XW4^ezVOU<i(PVy8&#vi~
      zDP>Z|2>fUwjI(3f402aiOh6>4XvT0RbjQf#t^3TTyQf0ZiL7qhR5Zjh^ZFh=nvd*z
      zl85mgvsFDf@P*rE1BczmdeGZF>G5mn?x|Y1Mjn){S6RDDrL(0buhylcSWDl9?QPp|
      zRE3yWD=l%`&TpE`ZmXg@V_ps?5p74$ZRyt08#5fnb%9ey(hFfsps`%QM2-R)mh6YP
      zh8wsh5N3FlNCcy3ir^-uLzv=~t9B(4g~F<1@_w3ztzibF-{6T+L43NqqBfrP6_$mK
      zU1QT3b_;kixkI4g5N-+dRln3#B@j4UUCg*;>Fk;@k64j8#8L)1xb;0rqAL7w9Tu<@
      z!Xjl>nwD@hEK4Z^w)v$Y&#Y)z1utLNbPP*(@)oOHYDndi@a#nV2)9E>3q;F^rCkl{
      z_?WOc;~u-^XiIw{%1YkR@BtLkXBu>D@E+{w_Plc95V*}oQ|(so)}Tb1&FFXb3cSCT
      zVHdNEF!=w}5b&9jR|RZ|IkCmAKqQqfTARj{DTiQ3)$y)oHa`_4!~YuowaaP5&quqQ
      zMe5B-#CL}rDC*5|!nfS5M+3bY`Rf4!d;&|)A=1GEM4zBlE<<YBCYNEg><GTVYiWP<
      zTq+%io=>G~qHm_2;3BOe?cYZ$&HHGheIFg%==zPIK6LYWg>wwJ&afk-5=Rrp(aQUB
      z4wLA_G=`AiZUPgS<?|Ni_*}$Q^e6<7AP2BVca)eu+Jn7k571kV5mD9^%CM^ZTHRCV
      zQxfnz`Y}KZ77H;C%l!@bqvBT;N|Ft76S$*5G`047AOdeIy`^ep*LRP*?o@FN;4<F#
      zq7L#cLr|@Y$9?Sz-+&i3K>dbJ`gR@n{i>?(Rb2CY`@Oin;4h5sR>n>Cn+i|gVY0j$
      zp63l#Kr(KQjy%U`y7wu@4>0jNCSPK<%)+g}cdYfd6?n}aUM-TWtJ`vq*|Ign8|r<A
      zd4U(0o#QGcFz>$-c!airXZTRyB}B5nCD8X2pQOGH2pT^X`2OF&`^zD_*vr5V{Ng@f
      zFaO9kd5AOkiB0u0DLi7yA5!+miq2&>BsQ@{pH4QS!PekaV=cFlp&*Uu!VXN5YsLla
      N(k|2foTq)r{s)#bH;@1T
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUU2{`a6kR8|Z9;NsY-tNx5Gh)dwB>?SP=jbmtwut14Av2!PLgAKYkF_IAGP?5
      zGV1sT_ydkJJm?D@baeF9|KZ<I*SWd*pbZb|WRmQ2&faUUz1KeHkH3EU6~G1DNFgC`
      zt>uK)w%nC_R>!lQz_L3XO9p{w*TX<re%R@_UZ9%RyZTgl?<wDHhk@-nwcb$*hQPuw
      z#vp#k{k9Xxy%fd;&W-l%18&N8sQlF)34!q|wqplZY2+)FN?}vLD7#ISK@wRLDWnB*
      zRohV;;Z9w7H)Xx81g5HPL$)`iXX|ymX#`ugFR)hq|7Dj1jx{{j_t%wb4(b#T6@iJ5
      z4{VNwtbm!v)u*9s)0oLubsMa<bXwLs^=;J%N`+gxq~j*0F(Z(4>)X1FLv8}umI}%;
      zP%YQHO&a;akW;xWeV^n~^x2R*?8NjV=QV2Uv`T557C0GcuDoThFY9t&a)DVwtopv&
      zu$iklB*;pP*c+OG;C>*Tru0V4ODTo30_R6-|M;*B1fDaofae9C(q$iR`C4boX1nr*
      zigqrTC~D^!IzK9n_RC-%S%JCHm92W7WJA|tZ8+y`tEMQ-M^S_SRk>MMxRAnmfuoUv
      zJunk5XnKZkf3CF8iisC-Ng!?Wdda}`*!P}bQA{P?FJ<u(UP<9)4#fbmcWR=9D};5_
      zUT{$Ic)WCXu9|oTXEf65CRTBcbFwA<jVOp6yv08HiU7IpMD<8>o|3^%hx5xx3EOnI
      z_#av#kgzqmA?zM~CJ>zVOwA3whFZ7v4L<$&Hz#^R_=u4fzhivR#`({efWJq$x(S0H
      zAYGh0d1@b-A899G@;AeO;7$6zg`>2JT|Z19#}y;+1SW~1ttndCJB?$sbS7TRIKy?G
      z=(F77?-2Jemb_nF+{f&FZgmq)FhCPY;eAs2AWAmd4e2M#;RK!}AV(W>G4OJ<29i_a
      zhd!9D4v-Ou8QIAggqIkn4uw8_F!Ym=p&W%cw9F>z6q7$={=?z}Jj-w1*vH}ks9Vr3
      zyYU&pc835bV=hOq1WjKn@IA}dx?C<k#5sXqFn@#AMS+dvCF47sSbm7h0>432mu8H`
      z2Y9u1#}M3nP2k?&e=ZHuE<|v5DBKqm;Y&(z7sv4xnSYG}zG2F{yg=VZbXK}4QN|im
      kpFtLHP*#o=X{}TA1Q8Y}e1+tuaTafLZSed$y%VVZ0}tJ>-~a#s
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR%SyvQ6g|_{L}Pu{_r`5i>fkzB(1IWa5o5cb+98glNtjHe{VQDwF8lyLO1w$y
      zyE_@?aqpaS?(6mK`31lMwrrFb+#t&MowyeRo@f;ru9AccW3=jKM)EXEl2{wr<Cpob
      z)NQT&51)++!}fRb7qNYH<_{wy1~x2){mGzDrH%+QnI3<HWv~uaq)d}xsqW=m9!bMV
      z)7|MXR9bOQIw)hd3LDc53!aMPMb__1eJ#47WLWm%8xeMdR=GWPR?MwR8IHVv)a){p
      zGp!irf9Az78%Wa<Mh3ASGSuojBS0vkfVV=CrbM*~b0PYa;L4AGpZXmI?ljgJR*N}E
      z-Jmdy&;Bzwew^tWd8+dIHYSXtXfh3!GNe64L(Xq%5S=q*HBq7kSi5^qa31MZLX}RZ
      z@E#N61aoAsjZm1!0$GH|B9=&lx{BIZt5Mh#VVOM;WF%yf6F4tKs>QoJ7NL5v`iHvq
      No7$d8-6#TVz5_R7qoV)-
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMSx*yD6#gz9+EPb_3d-V!Ym1a|7Zq`#Wzo_a22f&@40Nnx%CvT-sEN=19>oU}
      zjlP=rqm19ZGtff%#KYWk?%B_G&Yi#ie*6Y-1rK8A5V%=(8^&8})B0f4>W=FhPOWBG
      zzF&9N8oq6Kjasc*_wABlIwjjPx34j10;gO3nm#$Vv0;96ed|LEQGv1cRy(1VtxCi8
      z9&V=;=qeU+tL9ubmlYV#@2|eQ0!J2~6@xIV`C?&aHJ6>q3G_Cl=4^3cF%(C$OHcE;
      z=K|5irTIsB8XoY7fm>d*)+#oGy~xWpjEd!!4O3~D;*iZ&RsEsa?HBv6H$Jgmaa_lr
      z6o{nK%L3X|wPYtC(5K@lj<L3hP_L!t(#u`c4Csg<F1aBcT>*DOM<U=(={OK@!#Z@t
      zV>m0&y|<4z&J**hYiB%;xD>}lw(GyI2G>lb>XtKhscgrQCVWkW_lAq1G&27s9S3np
      zav2?m(JgQ|@3?lMv9V^?Lv)h)>bg}~w(5=qRS6S_ppUKkZyZmcb5rhufS4oxW!s;!
      ze7jt&e`G<abjtvyDwgLF{}^ow)&@O#cj?0c#c`Wu$gaH1&LVSa^a?D(y82S-w&U%g
      zp<L$H37_A#-F`3a_MW9B%xa^)ZcjUEdv-q_^&<EJIcR>J9N~Z*BVXl!9HOEep`sk1
      zq8uOTpafY_LQEQ^v<FE>Il|i?Xgq=PPl%Pscl3TkzhpJV4obFDvB#UzlTGRA=r5dE
      zi6qaND_Zh`xzd?Tncpx%DWh$npW-bHQoe=bRE&OQst%0toMsWgEpFQ+3%SQ_&EX`n
      z7{)9{@r0UrO6Tzi1<as`$K>a+0F&P;&vnw*xC%o>1l!=ghfPf~M+fE6k)iLn+{~F!
      z(wBtqmGV0pSP@nUl!WFgt}%wdb=(MJWz-#rB*hn+1jR=wBxWjzuJ}k8gnvht9$?#a
      y9pCHvu8pgPJGdLVj*-d~L~mrT@23`DEljInf@lS4TYN|N`hITXD>wn!*!};V89o~T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_d+j0_F6kR8Dpe5}MjhYx^yn{;G>&&PzN(e?uM5RfT^1*6Ii>;)=rrR=AW0lW-
      zjpBn<Gc|sI|KV>~u5;*IjQBJ@aL(?t*S@X2ck$)hKc4}d$9w`q0&`6-G@skA?AK<;
      zcfG)LI~~&w0^hBNfn#>VPN(e$&a%1aySXrU=6HeIumiX4S!=2UG=ZtjJ~r$NUbted
      zdV&2qfw;i*VAQ&+CA$?m-P~Gu0j+$mTo9Nq{r@zt3GA&D9xN8DYO%cVWYH>Ao|JQU
      z>3w)EXBG1T@%iEcwE`pgLZw=~Rm|tARF8DYhS#jx^_C;B=W$6EVYY0qX<AA{&pR9z
      zs<Mw@g~z`qWqqd6ay>Vg6^NxXOJpS9UUrfY7&WjD`<eAjq}S5L%+fY$#tbB&OX;A2
      zZGGvGfn;AgY+$4>9Wh`)PvDrquB|ocIKfz6+jDfBB6Gg;lAQ_2LpJO>e%7;BsL7DL
      zy4`gfI?gbYWw%L;jx0%QIDX(hm9yf=OiTmYu|rDd4eZ1&ft@ASbIRdL-SH#NQl)mo
      zZY|lqE2&nGNyIS9M1p5-m$6>S`4A9A2534#p3a+Xf0bQHXEwDZ-?F=1b|pbfnTaz0
      zAM{b%bX*sh2z@te|1jCv^{HoL>7oyhk{nHE22Q|k0_C)C9)c5V*tO*vv>41YX|+SY
      z;oNfNfF1tzrm6Me>T(wN8)lcsWT&~#W3tccW|!5?9;=%j<~=UiS2wxm9p~$Ar08W2
      zzrI4_3B36iq89svy&rKvikcF~r8um_2`R>vI4Q-15~uY4aI_Xn9k*&)>ZDa0PNl6{
      zJayWtB~oXtkC>*OetS4TKo8?Y^e{n450k|7Fh$V04@_VP7kHLcQZr2P8b@`WUwMxD
      zZA@YTM^HircW@T>aS8YECn~tk-yAGzt9XD#o)tXABdqfLo2ZM*GgvGaCMtQBv4;2_
      zKYj2ME^Wk4s#lxj)|K79J_?r=jgq)O7?UH2zi=h;l~vzBEG6Er7ZK+p@IpB;lpKqk
      z2wY`hedaezXSSM#157o{;zndT&0B^bqtjb$-)^$iqOclnBKNcHxvjSE2H5g{LKT+(
      E4)>p0jsO4v
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTYflqV5IvV}ACxLkpi)o-1#D4R1>aQAREQ+CJ{Fra_+=?;U9)WKJ_y9$;(t*1
      zK%&tf;Eyt%y<MO-{YIMYot-;p=FFMdKYxGx25<+D<LD76)NNn=r0?nbYSS@oPc@rO
      zRrfr{-1a>~b^T_u;dsW5`pz*mqvkuNcc7g(<4^=9+tFvpHQV3S4s1`~k0U0q&^_uj
      zRYkXa!+myASU@SiDz6Ewl+HtNnRzs=v?LJOENKFLE*rD!oBFn82n=nN0#>S}+jUiw
      zHw0WX$XwD1!&bM>%OO#yS*C4zE98;OS4gVZ*fEkIg%pM{A`mNt_eyRfU+Lw|r4-^w
      z1XebM-j+3<LK2BMt_TctGEd+t^V$vDNMMSV>sm_*TxUhka)UH8DfA%~ST|C*fQthC
      zCDS&_{_eKngsrAajhb#%bjJ)7lFlR|7-Bx}qv;An_kuYIhz*KaH@u?m8TE#9z)o`c
      zHZ_Zu?z$8+&X}^kOT_Sh_o3Pea5Nb%)w~<-*8J(laS{Z#0z-NuxqR1=4Kgs;xAv*c
      zoW!0icDL0e!=%>motm+31{;y>w&ikl`N2?1K2iR%!D#pqWrM-UlVjmI7AP!F>dP}m
      zZ$Acz8sytoDEtTB{Di1Rj*&h>CNLFgjs|8_nq#qFxLl2-C$y@Pp46(*^fm1W)ASN|
      zhz#9_7^VLZW4xIC&ZIra@qba4FR<(~sXWCHR*}JTOrVG<tm6S*;0d21Ht>??YurU%
      zqCt|}#E|L=^Yzdln;SpI+*$sl^uDD8n#5&VQMf7F4;sFOdFJ5v4mHfxdIutD@$Hmo
      zjF-TBnIt9cNSH+6w$wUM><qft3H{Ios<4}TVbukmK?y1~-HH9&hE>9{3hq;#)}Y$3
      Qvz^#4U9bWVWn+*20eu!CUjP6A
      
      literal 0
      HcmV?d00001
      
      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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
      DFfr6&
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNO?OjO6y3K?n<jmfmO`z3$d^jm0#Q&<L9|V&rdBE~6s1adNng@eU-RnAOA9FA
      z2lxd}V5B1*=}4Dr*|?SiWTb03(V_ksm;2tEq_1fLEC)?*?mc&(efHV+<d1)UxdY%y
      zd=W;I!1i3e7@sp2%?ojF-i{~6Cx!;&3D--T<3)d==!X#!*enC$wi_Q$&siB?pG^9m
      zWzL7uDzLHMxj<_{g$VSGxn3^r&gV3K>OksXe8Kg6GwoRMAleauP|>#?fn8(uh)vAf
      zr+IAqwpCzkI8*dIEAI<z7*iA+GoLGy<Z<g!J8%2P1kT4En7~?``xEJ#5{MqZkg*ng
      z+szlk=o08&;Zr?faS3<EilP}C4Xnc^f#z7>R0IMK83?0It{yhf4nwZC7>FP$uzt+W
      zTPKS1Y0En$6_eGv8Pl0EJzIV+Z-)F?yCAT$F5f^$DNMx7r(D%uf%dHJ6@1-TD#{bx
      zfR>Eo7OXHHtJK2wC&vS|v}B!PVK#~w`oriG*z<rrHt@Ktyk*I=eby3=O%ElLeNz%>
      zzkvblr7G!SR-kEmh)XxirATt+Sb1J!xDGxfgP)?NvGVO_<;GzKE}Aruq40-X*Rf3A
      z3&qarYsU<{fTIHI)Ojjh2@q$gi@tMF@`_g16m?T9;0qex&gYJ3xZ?&!kf@|f(eXSZ
      z2QF5-vV5zOBr$7xvgB6`jNw(bLDN~va9^@bC{w9T8Cr<qHB5wYQlN9iSsK&8Bu){*
      zcV*<D=b0BJLf>>kUYas+2CwrmP`;c$OKP#cq|AKQz%<?@p3W>2r%ZjBJxR!(RA>#m
      zMdiCtY*<%)-hhd7)v9O8=VG{`+lb?ue3qfuh`x|Dki$#`FO}8DVnm=#rBCL4$?0ta
      zj%=Y8KjpYmOWl<*wGPEbHQ<7Qcfh`OX!bHvM~hJ!R&ADt)uQEj_6$3^s)_or+{8r#
      zOCa4|4Q8g<Ju~B{?7VMzSu?}S&2D<G!fSGtvrE!_*T8$YT&=1g_hr$OQaWAO=~E*z
      z@_hpzNSl;hx5Na>CmUw0tXXvYGx9NLPGMXNOw>t>kKC~@$%h`r$M`giPXu<{Z#WwG
      z44+qsjo6kmLl+;b8G{XGu(mp%doVYZV)>J9(aTsPwj4s8ftj*jdJ;Q1w3_+X!p}}Q
      z&-gpjDQ6h}Lryh*cJq84I?#mm{1)Q3PHf=H;ZBJEH}?OG?*4&g^z`ptMsNSVWo-VD
      z`%T!&&mLlf4<<xoM{trj6GWWEHtzQ8`*;M~`He`}K?Xvtb~1O9TJ0hm$#FL}1vosa
      zI1DgC#*3ANt!iUhB{1}1If0O4Yz@RA#z=^^{-4lO!k!hRs3KremUIBEt%}CMw+8JD
      zOOm3rOSFNl+e+A13pmSq>_GkP)%x2J#}kT7JAdsDsPyeP$d#<0qjOEVLGDPEA}U=8
      zPuC`MDd>Vq)}sTf$s*-s68P}Ffwz?KOfB#tftMNpKS#z=)FU{0U*P9!fiDyIN<-im
      z74YEyVSJ6i*Bb(B#zRQloAE#i!?lcW5cp;T;Fs{SVw|kQc!;TF^P;kOTW*ywT8n&(
      zPv&+2Ia=*r6cv$A)S;ZD2PJY>*%sr?<bAq?H)<1n$+!GfAVF6(K^H32-@>^%nl#gs
      zW#8>7Ayo_fH8uGr034|TN60*_G|6D54sgKGyGyWYfxjj2cMXAO6|h}L>{Ty?hMubh
      z{+_@;Gz8Z6m`A=2<A4;~OK@v}mkC^I2<(w@2nG0SfJeC_o7f>|Yj3%e#TE1p)qy*l
      zufK9W-wkBwsEXZz3!J0!Encjn$!Y`MF5%J&x*mSN(SW}Pkn0)nN*x2PQk&kpS_}Lq
      zMfocL9P~%Ucpui8)`Myk@<)k!Y?hkvulFuKD&cx<iof{_@sCQOe+IhCstDYms!h20
      E9|-42{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%Wl&^6g?B0n5Jn<TUwswy+{k{h}S9=Qj<~%h_IBDAlL*uo`i{PPc#{~{Vf)#
      z5=eYNKMHYerwPz>W8c>~KKERo{{Ha`z*9VOP+)k{j}t!d4!vWpBgyM-v$o6kM9)h?
      z^HED9Tz??C=0J>$&<<>dyR#5=rG3v$%rG$wrQk?)x?UKHfPsBxDDKEunpX^Kl}7q4
      z9(r+~=gig3HX&Xgcg4_16^|UuGptUhCLIR5t^(m;ajYTNTHkB(TGHzYErNQWa}6ad
      z;7S<|mKm(dX1fFnt7(3f;Y+2Vbf2rJpKsfF)_Kl{N*m7)1<&y<qlFh$&x>u$TD}>{
      z4@QR4NHNORS!&2wyiX!u=!2A%VWpwSkhZ5~nvaXN`6@>Y+cQZox<Qp;z9;p_<o2c1
      zQ?tgFQZYDpLI)dX#!AKCxD#XNK!%oa2}SB3O>gcV3aw>8>Mi9D=twP<=&sn8=|US9
      z>Dx}#;68C$^qbNBQ(}rNiX2=<0dthul$B7XXrJN&y%)EBV&T&XmL9VctbC(N0c-Ru
      zW!+smXbtO>ujkXahU=6O4mWT!`_3&aQ}2xZcE<jKDvYLzTlRO{`JeSIX?vHkmh-7G
      jtBrgAD9yQE5>Kj>O=*f5to4^LHW9|igk0Ez4EXR5@X*KO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZFAd15PmLoBE?l{o8|>mN?b}pk~%gml$WHWwH=4J_$AnmL!hO|_SI2GmOSS(
      ziT@RRNjh|<d}M~-#B{nR$+0|irhK{6-tO(~KF_oI=k=ej0NlYZ8YUQSwVi(Ix%r!U
      zk`f&&l`U5?>C`s2dE1nH$81Vh3^YU-uBf1tZ945#x$&GgB}1fI+s`n}6h^M96qeK8
      zWVn=dot`uuSvT!I*D<ZaWxqk&el1_nVW=-@*$hTKUD(g<rc2v}Tt&xab)qiqnoi5+
      zf?<BIT&blqh1}Chu2`<+o|ZF@a@m@W8HU+CS4gvA^9t{{k`GIpx^Fp_++w(}vRbE?
      zvTln<aRCbku3?tpa=~(Vso!aEQB${77jDzE>!z@j9UMmFk=0{ZD*O+WsOgJsF7sa7
      zP0F~u@?T(9Lq~qCbS;`YY4WbL2r&(DhJ_KHc}H^Ln08JGS7`Wn%;|%j>05S-3mu;X
      zB%LIQ$)v|*GK!m6Ry}{pF!#24>MCN@z#48dOqty-cUlbVZwn2TKKAmaj&+8~tZnvs
      zDqG6HXSl<lOV^JhmR7=z2O^2$bKKML#hA9LgP!Ca17G4RAJ0AEcDay)cjFnP)$t8I
      zNQ5OlS%<*TL0}t0apyZ-JBn}dKm+MyK{4#B-{&POxJlwS@DOPR?U^e|W`|f^dIvNf
      z44YA8k<+kEN*j^sxeV;!J8I40$0MnX;}Zx&N1oxvxi;d*N8E`^F`xm9OE*qhi|hEF
      zl-ml%HEspk+lXQj%W5eZC}WRdT8%^2?DwdHM7V?6k#LWd;y1$#jZQUG7_N<aI4_5W
      zN)Eb|&gcdV`S?t=nvMq)eJDjRTn!1wM~8vY#ktV=d0Jv9VsSxJ9}Bt1#z0L>)$NNW
      z-?7x>&JGz3epepvq(d5h`q4!Y!z8B2(#V>CPIfe8UnKid$bOIPD<S(T-5~@pOY0nE
      zNYTz{pIke`{2yM*_i0rRfCL?*)$jxG0j`rZjSq2yl6*wp5%Mg0Y5t|6Ch5d}iJONr
      zx6ZJ%c8Zmm1TCjX7H+@5-D2Wz#60)cL-&U7E+$^!erf#_ncqt<v3TeO?GA$;QBaWQ
      z426wIEJBgRgIMG*di@@@@BlwhJ*w)vR4Z_RdHhJV9#U<ODdJabz@(@qX`iErXLv$;
      z18rD1@;cn2eyMg;y?q{a)I0>PQ|5j8nxG7mbb3G(JVb)BAJSKYfd2_Udni1n`xAKb
      E2LBnIPyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=6r3$cwW25pUgaiWESTs8L!$T*l139D+?Tp3Ys%J?qWmpSBp&<${wU+y
      z(f~2W#LMo^zL|ORc0a$~KL9kaZ^B@xdun1o@fSX|!;!Sx_YapB_N|DngfBcEiH;ga
      zT)E<U>Wb$`2FgU5p`aDE&y{B{3Jhr_rV&HYSyp?)FnHwyUo;sq=Tgb2MTEl@MmGwj
      z@|u-C>D$4hu#m!L7ADpia*kBuZZaB(u%}HJ@=oA#zt2OdadMfChH}hs;{10O3Y8j-
      zJ#D*;oCIR1{t|PAw;Zj~*P-`x=sbhf4JM&0Zlumz{_81^byJi<Dd<NS46GqTCxgy3
      zKdl>tT7(VSGu7G*)>~Z9(rU%Gb<#AjMYuF)VH-I@#K#VH$wPbP6R!?+(!I=T?P!L=
      cPqR}JoyBGcbK1hpOw33chtv^^WMrW94PkYI4FCWD
      
      literal 0
      HcmV?d00001
      
      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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
      HksSRk%xjmg
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5Pjn~HFXT3X-X45OB-n14@?Cof{-AhB2`GGeo2MXCfOugIX1E##E;^_
      zrAQnQXMPl7)`?UX4n6Gb%+8y)vv243pC3N~>|oo1L0BCI6YorX7GJz*ti0y_!JF6K
      z!B`z9%2$b!ac#$fNw}#oo-cx-x8FUJy~M&Cp`4yh80$5|@h1_9B#a1iFIAwDSA<;M
      zJt3IQurF=oP;g-38ll)$f$U7iT^SvTt}h9tcGwgCiHMYrXNP7oQZb>{zPiT-!Rn<Q
      zFxh&&{cpF8|4-bOg+;>h1vHWapI_$fD(Uxal(6LB7M7WMD3gvDGj+M{W|$6>NCm@&
      zjVkU~xP3{bY0kl2+#}4-dOHdUOWE#b3~q}+Ld$T`%~WQ77<CE8fV0(1_EN75G6syY
      z55q~+le<bwx{&?FCz_Yww1PlJO<%;ZWMzwQgPtG8{D${38HIfdE@9;=wH<6?i%?)u
      z-idgmKUWKrX)e8>;qKuncm{aodEyLS{QDfuv-ga5;yu6d9rm|0?Xa~qjE-S)@;b-P
      z6oeZna>N2-fvqNp7^!J1o4-)%Y_WM^Zl9xEHQAh_@|AN2*Mn<wTzZN;eL#Uero7Lm
      xwKHC3!F@bP@2X&hJ<Yv{hgj89%N1+vne5k6)<<~EyUlq01n{J+vo%r2#$S<|z-Ryf
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5Pg%lF*SxzlTyA3CD6Ehn2)0o5=2yr6k61la^SRamUJtBAbW%OQCzqb
      zi393^6F&+uYe%XJhaPrkXZFqW+c*CG=f_U~Pq1#IL0Fxpv*18{7GHuqQNdtq`_;=}
      zJ5lenij`Kf=smSz5iS@^5Q}sgY>f|Oq;0eaow7P(Y%s`@Pa+pO%L%RLDpmRgq1pHM
      z2-YB*NC!=vbz$QSp*>Qm+?*w2neU2mED7Eyi$uI9a%J*)(bD^>AoND3YYYi?R4QPy
      zwf^W|wc-C2e`w<(VdWT_%a1X?EZ9&oo;dKZ?BWtun0hMprbw8&)AwskJ33eCG<0wU
      z*KAxp;Zk+y;yP{+7U$Y_Gs1FR-JHQ65=a;uj@48)^TTLNaCWj;9?1=5%v!3?=aK0k
      zxWhD+`5+cWA=$I`>okh9g4Ml|dOw@kxJT%o=A(-~eCFrpzR#65qbR*#!iRO$<!3_w
      zLrv`o??OBV51-cp|7s0hJa*0&`Sgq<aa>sc4(D5W?egvz7#+dl%X6H&6$t0i=8T=i
      z67PoKEhC#8z57S-4$*l~g+pBa%GCyU0xi=`ze=WVg`P8UA8z7S$?l=cC&PBT>|Dhi
      Rjt<`$fd<**-NIe0{RP;|zkL7z
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Jno}Yc{U1Qobc_H1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4?P?Q26g`u#ZPsnl#H3d1cdh0_UHm7s2yH|Z7Yj{HY5gISWJsqZS=j6r@lkw+
      z{t;{o3O;}jC7#&?4YfsCn7K3e-gC}9vp;@*{SM#>9$82Ttn^2bdms<x2R9gMx3RUo
      zx#707YRRCl!fn;{gPw(yz=A1q2XfSRw>k%^8ww;ttpv*6Iqho#Rv1H!1un-GZWQW)
      z`%;egn<`{Jv#v)vd?v6|ITxYY7DzSxp0bg|yn`%qq^wli78V2wv7A{*8+puUK{^K(
      z=1f#}kVZxz@9B|x6Ae2mXvxliqKls2m4mhnv^h^NQ{ld*+*R*CJmCOo`93xvDSJI~
      zO{SQ2Xsy~dqHa1^#;pq~_GrY!C?o2u$Ht~W4gEu!kjFg-cMVV`8bxD8PP(yY5)}tk
      z)M(dOf8=nyekEWx{V3?F7uw8QI`gED4HNFrqa=TZ1PaC|MtnBRaZfSI!sdF3r?;$1
      za4*+R;ncn%zk7<pF^aYNF-o7ANMMm`k!`>R*L8|&poHhR!kfiOGnR0bC&J(w$ppV;
      zT%S^Gvc^!@wJ#{vPjF-B53U_&UQ>`agJ=K7vvE5fMbMs$@K*l9YZ9;Z54=^}pXz%W
      l>jiQ~-w7UkLOOMnJfh;s>}DR|U5w|%ac-(lpdME}`~|VNp=AI7
      
      literal 0
      HcmV?d00001
      
      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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
      B3c&yX
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtWS#uoK75=U?QjdqWjYqbyV=D-oMT<S7&DMtP%;Lckl5IvyuvtWFbUkX*Gd*<o
      zh!GGVKo<5u5>s{_l05N3svI6<3Rfk0PURu5dC5!u2gP^0d!&&xP*mlmZ}+|Dd}sU4
      zx&6;?zWy74LEO~PB5<-;t|o67Yep^Ul+0x2az33(E*e%<UNp)pmUObxl10OlQ>BWf
      zAtKP-Oe0@17d+E4JyW_G+69h%AEt(=z+>MhF<Z4fGiN&`!xLzK+$@{kIf2%m-bH~(
      z#$J&zv|_K0J%|bHpE1kwQnj=!oq1!~k^=D=yI@$0hGVMla5Lhqnyx@%rda^r74oD&
      zS5bPiM$If$OLLwhjZ)y(qI6u-F8f}k1!6BdrYC(Ef%82xwo^>nrDB-TitTvHmE`5B
      zSE+gd&g6_rLDIC7bCRA~<||5MGTpnV;Q@gMwnL;-*`+I~d}>z15gz)gmQgMy31*gy
      z>8fe1NGFP;0>>B1ZndIp%9U={_qqGJpUm#H!0YZ94x>xu@5cg%dICop&?b8ql|;9W
      zhj5$~Fe(*UUSU~#rh0b?ho&c$#=|-u!J`6E&kp<&IM}mWg|eOKib0@P$3gT7ocn)L
      zrfAV_`>7Rp<Ok(mplwajT%fag83eR2SptFuj*|xYYI)u)Nkzc4;ZpZFW2={Gju~Ph
      zGIrUMH7^;;PHGqtIIK7qG*>2@Px6b$9-(3w#u-(IQFcU=Iy5Bv^70K?@K_mv1E!m)
      zx}IH{H5_-<up~=!uu(f>8Lm6odrboge6;Ri=s=@p3}<m(1Dk9A7NdM^9Y4Xi!2PD1
      za$U1nR@}@vc1Z)1@z8e2O?n5!R-){Sg7perZHOT7N<jB}B`+(MQJ`QV^n7O{gtXbY
      z9hPEtiU782dbYDZm1WtR#NS{$U?X{V7SlSO#0=}p&>Y8D_gnayI=Q6dGOjRa);eRC
      zDt1|xz4`SDo$T1g;vf<Yc^*8|%*s62#0x~)%4$$Q9Y4j>WUG9sYFHdc+nTRl;%iY{
      z6By6WPE7>p3Duj4FoubN(ZOtLEPY`#H$FNzI5akq8psW#Mux{mQ^V=>@W_ycXSbOS
      z6!);*p4YL27X<badueVyKXvJeC6&GS?jWLA<|I=-s2FMq-VX_%K?y(ltaJ+#L+MmH
      zn;IB7P1D&-CNq)ArE>#AncV52@sYvNGieQ^W<V`<zvN}f_N0dE<g1^V9mQ2eSk+;w
      z^4w>-Q*0&YI!U7TU({iR`&S&Z#JgrqM!^9bQ9de(ijJ4m@X=VlONMH$!*JCI<0W#c
      zkse_pch9BzD2rl^T~APfnvQjl$Zei|QPxz!rg!U+R|2o;_!(ZO<1~NKa97osXx^98
      zO8iY7KUd=I6rVF!G`!7OR8Pu<8Y3^)?*xIC0!>F&iAukw`E6g1;a$A1;XQ#Pb*+Fu
      zjE=Wd*u)>;Lz=K``^9QytJVBbACP#f%XVoqs(10Rj^E%D@?5#;-&5hux1e~#E1BN3
      z+HQe!Cg2cDx*LfX<eXh~3NmM^+0gY}_iaLj!io_SEog(rf0Zb|c+vBDAHR}Z1=qH|
      zyU_p2mlo{fv)$i3hy8rl0|DHR1N<Vn(ZQ!uKFL)nw?w{B&j!uu2F;dD&4V};YS!pX
      zggOs*MgEAR_t1Iu9u8lP|L87`b#36m4V<`($Nt{ee{usoTVBO|oji5t(1it@z@l%b
      zFTe`z5EcEtZ|dz767)>HB{9G>2>z@Mg<gzMPx&9ahvBP2+{NiTJK|Vsh$FTc#~8*#
      zggmhodS`s1e*=%-#=dwecxh|>q9H5$Xc;In@vF>1(MRnJG&jBOL<U*n3S2-g#6QDT
      z;kWef^sLf=QO~fdfr?jQJb{Y=2E%G)#vnTODA%TLA;x9)bN+o!MEc`TZD8&e+T&O6
      z^v9p^-?cCC96!#62gaRvAqeSAT&kB_IK`!S8;^1!-1)dX67lyBsrANf?2Q+~ofCdp
      zODrp8?F~5bDj(fn;bktY@|^%;tf|<M$X9qZ5cSpi6zCgUy79NDO?RTP)aQuyQ#jQW
      zCo~seP^AH4v)s!ZZa|F*TqnI>#WB2w2RVRx@H(mV22SHmjB&!G@D`@=HlD&eSjI2l
      z;XV8g@8b{n5dXkO_!rlI;}iS`pW?qf`5$hI2tE`0adV5RqN84PzP;lYy+s@#+AnFp
      zgN*zY_f&guq6J073{Mn=Vhr=wvuulx{<7(NjAy`~SmZzZHo61Jx()VvV55x^pW?Ta
      L7W7P!<@etL)Py0m
      
      literal 0
      HcmV?d00001
      
      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
      zcmcImOKcle6g@Bg#&(j{BrOoTb((&haT8NoLTOS%oeyzHn?ll0S|Ks9C&^T<ZQ0{C
      z*+3&KAwCjNAw<;;6_vVSK@m+Pic-OnEutXtQ4#wBTM(3c-;BqhaS$6K#qZAZopaAU
      z_q>;U`PZi_0QO+Yg9d@fY_1$Xqn=ae<0UO!F6zcYTrC@O@uO;~bUt6qc;FP+S<R{?
      zl?^=`ADS=dMRhu>jZdG^(uRPyV7(^LaC$(Xak`4b8%cq{*;HvzD;dT7f|d~wrv%*n
      zdQLYI0<P%kfv)2M&VhVJa}i0P_wEHB1U3fXN08ttBb6HEq?R!~ryVJuoz{wz%s?PG
      zmQSnM<7!doXKT}G%;_b8ZDZ9A*6Xv6h!DEOc4f4zx<Kqk1w67OS9IrRW=a}0DN^*1
      z)pE1OoDU9cWpWXs9i^8WiS4!k8sYO`yFiqsjc3)|Z2VBMs4k>(8Et;NY>dw&^W|Ko
      zG&G;q3WlD~d9YJpb1i$qDC)V{WLeK<w4xVLf~WEaeb@no>%|1xqGR{x_jMiTjP3w>
      z5GRsqp`hhR=1?@%wI<mD@AG00DH|~xk`?yy`}+jC>s9y{oL+(Eh{}ETtU}u#z!Nw?
      zC5*h;l|XBBEuB6eI-#(B2Lo`y&C!zqc;F?)b^1Lc9g^f01qNA!A?b*u<p>&IQjU*C
      zMteLm|Ey-z4Cst@ogVPu8G)@e;ZoVGHmhbQ4As!=X?Ss1VEZA%(9RYNEfdL99UH0o
      zJEEr3TB+3I!zdJ@L4}eFhDKK7DrEG=Oy2UjfFo*>o($j^n3lf!4A8f93Vaj!axtw9
      z>ulwwD(N03N{5v&=rlMGWMwD{vM#hXu+wM_P=;TAHqp}{<uvfF5_7~>TG70W4cBG%
      z1N7;W-<_cRlW3*qO=d3IDB>TfKH)LqX8L5rF+z0G>XV3(I(Ql}nUQ!A$<=4$`6Oq-
      zZ{tBcMAaDiVGH?$h3r>ip>TbwWqR?PgjOU8zYXoTq5Wt_NH*d}m?DQP5;Tj5EtJP{
      zRg_K6Wo%I#H_#EfjF#|a_(S0rVk=kCa}%9YH?d<XxN8|*p(X4NKC*;I!yG(DL2QMh
      zB|N^2zFSK8GuI9D)8f5>grnCT>h)Yhr}7E<+uX4>&%R?6Cd_cdOE11XS#gVsN3^-a
      zSML2#8^i%L6Q@^5fD{SxDs}K0jrw&Qz#B+XJd8JS7;j+`7x6sa!5rSjd5T}gds2-N
      zG6D5ut5LDlsMu;$EHyZf#dqQay73e#<i;r|I7E?0YL&DGQpY?4HO{7aJ|MnV*ENrq
      zka)zy7UCN7tiiiZ=J|MC^Dy2&&GWQ{yw*Hxpg$+`e6g;1Oz8UN88VBAcFR1A|EGB(
      zwt4nmths0JYUkXkO~G`|SC(_WrfJ_M=X^uX`Iek>o0R{Kobx?7=SOnR9q9N82E`Zf
      z^D5^o+Rj;&EwajswsRJ3=PcUJQEcbzvYgX_5pu72NsP!-M;8k9(s2n*H!(UD99zbb
      zTio17gx&zYfSTn6ahH7e3pV06$%rp7zKYCCr~~6T`d?5J_oMz!sDBXZpLI~T<5@gs
      zp}tQX_=-#@OPII>=XFQ_H8e5LcE_=b5bYeUT)FpabwAPWn6&m2ystRv4yjE<A)7&X
      z;Sr7W2P=Rk(S%l7Bcd5QL<@G)x?gO-K@pV9%u6z1_3NX~`ApLP4tCVRe=97uaavg)
      c7c2WA1*VX0-XwqWEp7_vvH%4gbIv;XH<OUIeE<Le
      
      literal 0
      HcmV?d00001
      
      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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
      V#1k1rT%K9PlNm%@q0BE={ts~ZF5mzF
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVK%T60X5UjS>4~%&k5)34g$tgU<%2L9`*f|(QGP1Y;dyF(*#%5qWYt7CgIPyt3
      zM3Hjf1CoD==rKkhfrymLsH?hqx~pe?|NV6fppN$iWC))II`z-RrMU7F8Ky?rYhR@H
      z%nwBr^+b5#x23VFuR>vEd%_jq5$dm3#k#M|P*@e~hcd!^B8?JJAWg#jNoSux2ZWh+
      ztP?A=4Mdd6T=GXWZ|K_x!gTo9oKWk!mXC9~<kRsQg#4b;%C-ofKmJR6pO1td_(#?#
      zJ!otM1g{;R$`Z1eFQbeFLUnS{Q(>pm*$AdUSS+K2X~JArX?d6qd(s?>UL*;XZp<4D
      z1lwgiAw7Gh62flxf0oYfJm;8Aj!ZlpaZq{gflxY%QxnRs%8gNd;q`Xh7O~FbXZa&!
      zP(==TMujmdV!?UhnBRt1FvI68qhnS%{p{v;F6;fo+~(E~RKAaEmK;CMHc>>2YrfzO
      cbG7>lyu~sjr>XMIG>%rV%Do9|j52t42byoKOaK4?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7+jiST6y1~9k)x<>>Ry0`TS95=nnu0XC8bU3G>ySc(%KCzrGP9?ZGj?Z$r2=g
      zz&G&38_&F$E*6Uq;G<Za(MYze1S>DH#yV%8z4tjY^UuG3{te(NnhGWuZnqs@|K9k~
      z*wcI5^j*u_*A3t6=%!)YO~d>_U*)e2-}WludfjkZHg^?d7|N;1E6twg8fG$^Vd}2s
      zSl&H`$wG0PAyetLcn;GH%Id?lm1nhvib>39$U<W{Q>Y1wx@|aZz3#b|(_Ru;Cu)|%
      zH~gI@cN<32<_!5-mxym0t|ivtpBb-X^%(BdQt2M9b%{ai1hOlgu4Pi0E0WOvdM4u{
      z%ZRIr(>SZ(3`1$G*`tXX-oo1qvu*B0%t8X>T2)}4(=dm3DWu1}I=8v$@mAGo@jbG%
      zP!%3Ali_k;-%;6;i=o=C^V)KE4A1I147buW$D&7+FW|g_j~K3wSAIykhL45*W2Ap`
      zSFmX8?{XCjI42$j4aI~#GK%4Pir_<PQIn5L*)^In-)K{tucb(iB1hyd;)(*DS`v(`
      z?^(7U3?<iS(_Ldwhuvg2T`0=Yj>RphxPe;=Zc^jMT9z!Y;Wo+)(=-dR;&A80;l)(w
      z;|)q8lR2t1XT#VbV-{145m7Nya`=pB`91C~I`l=weXJ;0jy$r1ZN1;~_>P7Ls4&cs
      zM_X=pm%H9R!v$Gwbo)!&WU4$7R6N8Z1#1k&v9`s@X;>Erj6#-4Wu@`P#B+xevt{&p
      zKXu(!`ou($F>_Qr#-@Uev~DL;HEiJtSw+;NPYl_@%gPb@8zl^A&{-<`+u(a%)!Fqu
      z+C(W$9)u21irYERa6!d$e5K$84a(R~96-?UGHQqTMhETqb{qhpp3Dw~Z2DfH<i-({
      z$k><^I<V4<C$eap)VscG@-<7`Msv}rJ$iQrreGd)`O!@b<mfGnDS9fjx`_#T1C&eo
      z+#gVXr`HJ_qo+#0psh27WgMqBO@`qFW@(kdN#sL_6^azG)1^`$r}}s&3G#?)t_L7z
      zWnc(GDR>X>6HEpl;KLB^=Mb(;X!E~drj+U9!fz1Z^O;`<>p8K`iuF|ReMSUaq}O5f
      z1*!|wNatg!xIx$3Ce_)(MLdCyI-OsQ7_0JtRhd{_3Rso!NyutBWR)wu!R0=#535L{
      zo>P?<F|^zOEk|f~0<=%D6rw!{(bQ7@?i<|eV>OBQioE$IhNlkjRKlwUc%S2o1MDXM
      z%Jxx9qBV(~8ABUo_cTDOlN)j-?uYD@QvO*VUnarYG!vZ|m@=TI5VfxZuvbJr8Za?Y
      d02{)H*#qnt1RV&$SWy^3d`nM;?<i&h#(#4Yqe=h(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DYj4s}7=8}m3bhLB=H?Y|sKA7d&B>I7WWj5K(}ZRFd?-ig>{`>yoc~G_orxd(
      z0sbiCdz$L7TY{uHJ$;|Px92(U`T6Vn4*(4`6{Hx9p%WT={D2=CzA!`23O*V<3`T~@
      zZM)CScgAxk?8M)Gsi7dlP>=zJ&7Gm~y1ysPK*0<{F+%@ldE;3JmMw;2uxSRC>oCj&
      zBg-!>Q_=2JRa+FgVL4XNW>_gt8C%(5$aLI+$bsRU1_fCaY2-EJP+&-xr9-}JIbti^
      z?+b66_ie$TcU@9ohkKT^V=yBLFf^uXq0}G(X)h!N=F63CQoB|b7a11+X#9dZ16z3Y
      zC*my+ZBq6!Lvx~Bv3DYgimNCpxJCqzt9ESe`x>s}27@vb!4}^qzW;XC3p~piwp83g
      zNx^M~+QbgV$3(*&+$GNM!+>GEe3J4><WybCr|8mg9pANug6jY15_>0f$>Ki4Tmr0b
      z?rtlnGptVJN}h?}ENHARB*1#_1F5KBg<)-C&d4{BfI;oKp=XL`bdeZl$2G3Y6J^j|
      zI*#z7GZi$N`KOL)yFQhDC4!MVz%osJn${VxLO~8c-Tf4;98^Nj($_lK5>cy5U!hgM
      z;r!>wXI5g-9~r$0ootO_BszzA+KDk1;w*<z6`)=H0!?4kFCF2^5pM2A<~_YKZZ7Gy
      zansNnvB^GB))Zvr1*!=&k*EHOc!U}rV}qXKF4}PyY3fZzJ-{06l9lWc<oS@^85-gI
      EZ+aG1H2?qr
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5PjQ*I2gAjZYkxfn9@U1skH*!f`DK|Rj^8>Kv0hxdz)<Q?4n&ef}h2y
      z2qb<0g1>|qhd_%sWe@Xa=R-U1?R@+B`73}H?mC!b*dC}NJmzEmKC~h!jLbiTyvT=P
      z!n3T;lap{)717kU4k`?*W%*h4fze}`3d2x+D3#0~G0ZobJ%&o8Q&Gc3hK1ezH``Gs
      zj-Pg-m)+_Ud@s+B8Ww1Pz0tc&jD*U0F150OJ_^R%NL|?A&kVtkt27hF?zou8l7|bp
      z%+P4WlSwkJ24OchQVrVA{tq>K4t$1iCZd}y7j>+ZFI{1{*NA88ZZ~@_uHu@5HHP(n
      z<?1Afur|^vH##Fu9<JjCgO}<9BgZlm1CcU3m~#93Cuhk{QtH%ho@4r|e=L%`&9D?p
      zCH9L^Uzpdtp9uy()}&&O1TF8=U?m?)OOnjUioxyb!X)B3jmc0yzZp9vOQNx-lrT}o
      ztreD*jCO&R4TOxOtde!;_JVvyxVGijR^a;HDHgw=ez<jt<xg0B`;l^UxJh<#(%-@*
      f+$TXF;}*rd-@RDJ?MYoQv3IaR=u)mu2>8DMV5`kH
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~8B16g|_HR_ba?5rhh&Qn6hMTU0~@O-RL1Q`7|0MBk>{p&eXylie*Ji6%;n
      zf5m4Kiir=J$eTaPcxP!7B}if)cJ9pGIrro2x%>0i*KYu3@GyoD!(82N8XJ6z?--si
      zo38YC4c_z{hRH3f%FQ>%+P1Xo#rA21+citLnVA?O3`qqvEN<70=hY2i`Y}WqMguS3
      z_6@NmY~NTied*X`>G{GIE<@CBNH0^M+~uy4FED6Z+{$z+WSA<S*+H@4NK<rLAb6jG
      z*Tgz+TK@4%23BH-2Y$&dr_M0Y399-xo<0uT1dc9BTl$X}-etS2zZ3X$zE4zJ>fHXT
      zj9i5wQgmvf7YzLxVmPOE0~&e}SG&s^&O=kXVGS2>F^({<Xh>j$A)Hn4L|NM6S#z^0
      z+?Tv+35HbJAx<mYmFnDfM%340nD4IF%nUJ>;DG{O2zT9aH${zMEE{xXoD|8j63jxb
      z5=RCTG2CRB{EsiI;TE!_N>BJ}!Xi0}TFI`79il2*QbBd(W0)ku+Cl%MRKpaeNdg3}
      zNKXcYM6$0HER2Fi14GP3ZO51Ey9^;te2tvd1ch32nyx9HNX6~&X=604>L4|jY#NNB
      z#XV0D)rn=>v>cCAw<`RGQ;T7qVYaJL(XfC;O3(<#wj=ezG5i0V_!A1uRZt)uh3V-*
      zB$-rV1Cl8vwZM|l0!uQZKTC+71d?>Sk9I3`?jf7jCtFDA`4%qeqb&^T!;uz-^e;&7
      z2bfV>;{ldbjJLQ-XN_VI5@WbVmf<>Xw4?6P%`o|N{ea>fVDJ#*WQM|r$SK#W)gQ_n
      z!pI+eMl^r)eV-6%jAMdO6UYWO1eG<7D6Q{lTt1*5dvyLtnf8#wr=W_#pensx1?9wT
      d+@U(cxJ$SYW^s>foII*pAcZ+vBe;(TzXAUdY`y>h
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMU2_vv7=BKYCJ<Mewo)kuK?#^_({8Orgch}gBEbaEVjSs(vrSHu#qF-MyJ^cm
      z@WN5X3%^EXyy`VGB+ht&Gcx0aKg!`bC&@@U$c(+%^S<ZZ_v?8-&fow1{t&?HsHG4S
      zINS8v)@^&s-myYiZwF3v$Fkc|%c|S1yKdJ%vsSkquUYEfuGn6~l|gPkg@iyx8CtIG
      zHLdIGw`Dy_At`W7OYQB*l3UV?tmS&-_+G^cBk9RNAQ`osFgM58m3;+Y6fm}IH#f*o
      zV5ag+1f`bm)a3vI%}2GlmWC=Xfr)_!1=hN%gwz{TdJVZ@x811cL_m}U(pv7=uHO_m
      zJZySNi)ox(ay%z`Ti|YfpEw7OpWc@}s0PYU04NX3`k57K0*R8}kO#r!4Ww{DaW5J;
      zh_vFS3_J%zaW5Ho9)}cn%)lrzX~c2dz!**l#PiD0XvOj5wf5$^3~t)%t`r!r_-stg
      z4jgsw3lpm40_XNuh}^vDnXSj@h730RU{f{(j^{N#Ywx73sHs~l)Y8bqOran!{XfRT
      zz%+_12M6BYuCnpY=dN6pE~lGQOb`TqD~(yqrC@PH`mX;iyTRR>XC0a{>Y2$#*=ukB
      zX`9Fw*2*fc1p{aBCbhyLExDt#M)GUrUixntIEV9Gw7qJ|mDZWXl7S20m}Q0o${n35
      zqrHoZDJ*lwhf?iLgMkt*aiHnH=7f&!U?P7@MUUgMf%jCalb#<r8+Qa^HXEFMR@DVk
      z&H!v|jjM7X)TLAXO0W9upe`>vYD}h{_N>gR47uH9j}Jx3wZl-AV|2x<yMD;Utjeh6
      zH&Xae;LN_B4g)vw5d*aJGd5W1x!xfC=L@)J(+V}raV6sXMlh1es0{)#<7$62<@RXG
      z-O-er!xuNkZw%wKnjm+L_ax~FbGm~U%wh+V=1d1i%)^Nej+#>=9c0bl@bZ0a`3ldp
      z_Q0jY7kHI-gPv%QlgN<@oWg0I^etl4j8nE{KEPxbul;}-a!0zDsTTjjMDgJ-IHZ0R
      zyLe+43yS4;w2QO5INj4+ypWCE>uF`RTpRSYNV4%R-XWd*r23~KU91!z?IKxx^v8Wh
      z-++&R83c$ljX@zeuj+v>iR3HR;cFtf%bdT#0=~r(zQZ!UM+HCPWBi0q@iV>L!zO7P
      zziPxL5(-rxvEr_vOw8l_dlm09?h<`g7)9Z)Qa8prUnfmdOH~Why}>hq53u?eZR*%I
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOK%%h6#j1P*se3g#yF)3b<4vP+i^NgLti8WS~n#wP8#ag5@i9C@r^U>cn0io
      z+AP??k{v7%LX?M;b)_aqEQ&-Wgb)ZJSn(<dg!mP}cgMDpf<bB)bI-kJ&OMLseCK}t
      z=SMdHjN^P5eF8^nPD{UNtQc4HrZig(%Ujirmba{%hHWnz<|Vy+*>Y-y&S}<gs<v#T
      zC&CB{#MMRJHk_J%X7Qply)Z%oDPL<`_H?--9Zx@QdY0>ytfnU&*$@bM%T_aefU!&4
      z3O*??uwvM0_eJHmDR9qorOiajUW574MpHK3Dg-8coByn`;5tiIqi!gd-D2q^s+?3U
      z!**)|LtPgN5&iT@UrnRXl;v37w7?sgZC2EyfNrebP3f6#_sVVQWh(-~f?Jh4K%_K;
      z5mCD#4LcB3yL&YZKvTP64R>KMiU97@5W{YPKt^4Ul`Kcjx9W?san4w@r9h(O64{E;
      zu++Ju4642g9NQiS=?NkkGkmTr$i|Y}sLQIr-i%+B{!cp1C~8e+D^aAeFN}u;MtaiD
      zx6|+lGNfxwdTlZm+<Ki%7D#5YZT~)rJKTvPhkO{Lw-LPkPs14Yv*YrmmSMBlp-y^R
      zW?(XVA&LVy7{<83xJv4dNT*=}k1}#odSz*Irew9~ROJ<RF;mP|A~?+Ors0^<j^HS@
      z?j>V2g2&jbRoRSSN}$hiqnO5%VLZW>cQV*Y3Ju3`g5+k5iq*9ImIgBy6q*5?)G(uZ
      zA97sJT3V$$gB{=fe{EoFvraS<|He{4Sp15NR(4wrQ=YOEfrfj%D*IKc9NePAccNe$
      z&88&8u^Gp--6ltFPI}93HH>Ej4sGk@&``!Xrn$`C+j8p+2^?;B@{W2%{;|`no?kzL
      z@wl2UAf8aO<x5VMFF99ybo=<l5U2Is+|BabPdSnsT}L99Uq>=GwvL^-;ov%U<vzs7
      zHUCbEYt+9>zTq?M;aQ^(-o#$qPbu&K9&CFRv&<$)-3Ox^cxWzn9m!9j2d3AsC$A2v
      zgB!@ci9zmnrZ%9j;rUkrBBg%ac=xYcYgou94sDwB`zBNQ#F0&1$k%1^iDR3(fUisD
      z6O+DfK)DZ6N4bmt9#`jQ=RZ+m1BJ1hYY2_q{P-HHdL3`$D)YUH_k7t0Rqt6Oxqd->
      zzGSUm5wEXV_cz#wZ;|EsD83_yzefo_;5>fB3-}2ZZo$LPcp1OoRs4$A@Eg7Vj<+b^
      z#~(g!xi&T(+=voR;VB~5k9XLQBJ&yKTX7ms6U6|%tDenao-#@+g*lMG8LmMr;OyVt
      CfBIqo
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc^F5dKbEy0EUal#75Os8xHRtRfesc)<$ZO1(gu=!-es9?HsgH*U9F{)TV<
      z0OPZX)Wio(<jo&toU?5ci)aiF-I+6;ne)xeH|NLCFJA#%#d8G#hWUzJ*I)B(zN^=S
      zQFl#mPv>=SQ#ZI}mAJ8`ukDz2CD%GV;C9&(ZhS^Th#@Kib&J~-{YmMyFgyiehB4pD
      zcRXEe3)|C|49|4zyjk;vEnJ4Mw`tbmSLp8iu`bUtXxrS1w-GX=^Z%@%z^kHN00no;
      zV4G|V!|gy>qyA`J?0PGvu*&46O0TlXEvLdT*y(rAH<MF%(X>tP7Q@@bF>7fjKDzfE
      z$lI=mv3A;9*pfwtP|hif9x(K4P|z*4K@B}nrFKfg320Iq(Qp#IDuOtzA%Zgu!GsKt
      z<V{-?>eZ5P*LlgJcE$1zHND7PQ=VJKkQ^t&jpH>SK0|GcaGxSig}dRnRZ(UbPxw{o
      zhgq~N8I?^IRm5>g!9|AABiZKrX}F98v9uz*CI@p)wMqnL7)T_W`F-xLc`l7V+l>_U
      z%-Q05Dkd?dAk)F{rk4gCMBT7>Q|A_yJ=g;J+Y)4xFI7x~R^%GPP>Y#|hNfXwLQ@Eu
      zB%O+R+)!|xA^G1-*02ETol+B?q{$&Dt(s(~ZsN8A;%I*dlqOF!+`$r&ostyIn(0qD
      zlz1t_g2-vOC+QHj9naj@V+e4%=FGn)L)<Z{)Zo~k?WJ4RoVsg>6;pC)<fwOLN<yUd
      zerVH6k+XQMCaA}eW!tcv8qH``c$-dHL4jfRSZ{}hr+7w4Hi-t7X!dQYIl{j_fE`Pi
      zEaD37OptzE2t}iEv4Chyu9YuoseDN*MbB)2ei1~;yN|R7bnYTKno92@mYUqhKq|A3
      zq0~rdAH%8782#wSjL}#1V`-}F70%LGqZ|~8aZHe8IEVACtnbM)M7C_YfeWjXv19}3
      zcj!xfqU@hA)WFpS=13b3Hn1qIFACqKXy9(<-~+;$gKr-xMH(~2LP#e1G5`tVyey9y
      z=wfB`GC_3MK%7;OW+tXdF0d^h-UPLTAhh5~Z5b;BunTjz?-w4#L-GjV5gwCN=|5Qz
      M5JR56A*|xbFFsGfuK)l5
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTT|0O6#lliNQ|^rKtK^MRePaE5k#!_3f>B$IGs_SmUb<{G|@B#`6)W%Z5+pE
      zW~9#epfmdBk8(VlCMsH;k%#1LHs^f%opZjkU%!3$2;dmz6@(ZjYF1NU;>-N8-Vl|h
      zW4Nn2Z@P<mg`4IAuRPG_R}8CG^uMlft7-}-HLf7SkdT48$*r1xV_`{DTm><PA#azj
      zxVl&tmaAW=xQ1<&jD{;L;V{J9MWc~AN@tfgb$Ee6TjpjeV921C{+YoXZ!}hHry3*?
      z06g^f8FmK%GFSat5HM{Bvr68oJg#bR)2=b}ZuGt6ZIe^%v|$<US%#<SP39E<ckV+#
      z>PHrVdne8t|M?s<Wrj%6u8J-&?9iZKi(K_;=z=O&J2h;DCRYO*wxL@^7`rsYv6~^B
      zmf`V|VTsvheL*<4`GP4Jk|moOQRa>zzx~aKY%#;+<_eJ-r*g)*C!0Cp+_#;&s4@(v
      zy{z=#l{F<*R>+i9q;N>VL59JO3iSLm97dXyTN7?umqoi?Cs8x>q%&=NPtWtNLsBSg
      zL6&M}Kj5n>MsP$yeuL`UUK(_eoMYlqlbe)wuTS)s!6;<zsu;zXg5y3tnzs&((=d(`
      z3|om_&~G|Fow-+3aT2E#OfuyEOY9m7I8BI+UlF6}dqr8WvpBEd9Erh)Y%^-hMZ*PL
      zB<)jR*=QJEvm@!dGAxWs8m6QwVwUY1_g5K0oV3s$qrWtWBvh$Wos)l7nNFFvn@&Yc
      z8&XmOovxfCk|It1Rf{f>qDiAGsMPT(t76&>YSoNz7wxKo8w}%{x>hvY#4U#IMemCH
      zS^d#=H~)G+2A)6WGE>G;8lf;fQA836IcGp3DW}Y{G-IBn38R}hL{A(E^4?CXEA$;D
      zJDAO_BbgmpM^84tj=t<bWF7t4_ZVFBVut9gda<N8_5^$ATO$mL#4z@fW!Q)PKI$9t
      zjL=>o*TR9Bkz}TY+!Jiiz9aN^=xgCv3lp^J54Uhe?%tXGEKLi={Fk?g<-dGdBZwTv
      zFhMXAnDlH2lE!|S9(#r;dya1Qf@JX$DfS9E_8OyPPq8;1y}eWtqTth$t7%*&f>E5H
      dw679=7}v-ngzG4gRq3Bh2uNav-Vw}V?mJ^O(rN$z
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc^F5dKbY3+qa21r<c`QneRwQK5+Sh7}boc)>K0w?lhuSGT*m-J<*v6Mum5
      znZ(w_2TkP7pWuVH7=MOw&bB2M&_o_~=Uisyd^7XSeEjwH9e`7~tH8%FQL<|KL%z(P
      z=~YpvIflEU^O{@M3*0o9c;S)0@YJwM+1Bm`w~D54Vrc~dhKMxOO>UL+TT2f`!Br4q
      zIN+V~r>-uRh2`o~1=p~xoKba!B^-v3TQ;h(QF=SKt;aJA+A=p|ZG;S?xqn7*PdsyH
      ztj9IC9R+#lk{(>TVA$KXmVxTCQhUk~oRn0lR5ZA0ml*mw)vkKSq!c=DScZF%;dy+U
      z@w6Rpo&U|~+xi>ub{@CzCGre`tX&k{VA!oeL6=<hY3PP3S9>+=fF@V{8g`;bg&+Gh
      zgfYnAk4y7#&alLMt+FJXdwj_h4AGoT$<K4gko(qQK$ewZa(hXLr74wR?os8oa30uB
      zMHCr^;$BqxMm9}LW@Qq26)_xFaExJKOV)XM8crZiY%K}5$;GT)sSuGFdgF<ve~-fp
      zu0ssSbRkJOvmfyl6~j2GV5EcTO)U*Nh{7T9q{dAOyRQZGk7mdu7FC?an1VBO-(qNI
      z%`}WlWC|gZWmYkPNd;#aPW~UEHJk(GPpLNjY=F~>OJ?f=E-4_c?(Tro<cfyNm?F}X
      zle|$iyh;b+i_*-GtcI(S5+TcWjRz|XK2Ag!{8x2|KZOb<Il4K;^vZ%=a|+^`A^Ft5
      z)r|2{K&?Jw(bUMAyjm5M=kT;uFzqVUX->FhyQpBEVSHP2M8j>|A&+IE0<pL~BpA*#
      zYx&oSxURZBPZD{IQV03z3nCDS$TkBaQQ2gkq!#leH5d(FAAMm&NP8EpZqPnRav+(i
      zBbpqpqc=HH$DU+=ppJdXHyBv;Y!1+0^=zrW>=O>sULzl5i6I;!$#57)T3%n0W`NEz
      zsRoYD4M!6Vq+VcG@-=yXjXe#VY9LLkef|c{%hUVwAEapD%E;O)ghtlhuab)t#)y=V
      z#Pp;O62=i39{Y?S`+^?!m5A{TG4>rP_5-I$o?|~fc!ww@1fc~_uBLH~00xo9buVx~
      YW=O+_S==P4(wz(lh$2V-0OoM(H(-a*CjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL-%k@k5dQYAwongSD^yURDizyOxZ;lxgE3LWs3~FsX`*l2>(VYBcjj)dz?=V#
      z&m@A051PoEf0S|dY$X~nrVqQbGnv_Meth%&$LB8q7I7y9gJG%dMfNuD@;y5gP83MB
      zZ}UiXY=^sUlRIzija})rS9;nr?zLPI6qiy+Fl2S0?Q*YeuQ#`aqf$sROvP5dt8CE~
      zp0Xb~O8Q=1hDvxMU`VQt42w0wt`7vh%#iMKx7d>0_1g?%^<MruQTxS{*i25AcIubG
      zu-JDyz06Iqr`99&E>itk>5Jq8=}GmF;eBbqT>GGZ<kmO-cP8ZqLt@2miD58Yw2;D(
      zeqFLKjI@4@SvU_X4HK6wj9{F>Ea{+3U3%hWw9^#9CU3feAy@aQCk-A*t@n%xJraid
      zgB4j^qE=;iJmyy-*z$uN(PAi+;yUfWnXsx^v0QGXaSb<8xK4GPGC&J6DAJ@up&Bxj
      zaqfxI8y#k1*1|1aWYY7M+}dX_IF&Z}FFg8c!;b<-Je9f)6Q|L7LFYlldF~NWS6m*3
      zg1VAf^&Hm^iCk+!b^KNeHp9JvsB6*Q-KM?i#A|dyIflExnsw$Dp7{QzXSsnIjozel
      z4rVs1Spj5oniH`kM$o1kbVhK2yfXB9OnQRkXl3pY*-G^gxyt+@sh^NPh`lH1PRCIc
      zVH9wMbc>=X23Ijjl2#nkz5hb;G|5(|d_>MXisk6*wQr=39^q#7_ydyF<F5zgmcclE
      z06J5#G@zmKlst?X3>ig&n?;`Fv{8y-^Klx59xQ>Ngfan}s8FPVIaEoe$)eK(a+s$(
      Ifd$ll0vJe3Y5)KL
      
      literal 0
      HcmV?d00001
      
      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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
      AApigX
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|ZEw<06n<`DU_0D&D$bYbHmAa-HpVY1W=5wb7^Y<65>5QjmAiQj+)LU*_~;MP
      zL_aOj#2?^~GM?K)A*F*fz3q8<p68s?)4%_I{Q+<vr92FVyGOEXe{p(F-}Y5kHtn`(
      z3fpP<j{S^|s_b-wy7Gb-yeC|qN0y;99Wu&h$UPBK1ltVHOSS2!U6PG7>YnO}Cigb9
      zz9y^6Lscp7Gh}yElUvBZEMN{fhQ*qY{7tugz`cfZ(BceBHRU?3ea92p9yqhXXW=v0
      zGfGJGS|LF}(hN^$0B6-sM5@CjL#CwLuwM3E-U)<~ejeu;$`j+)gzqJN6w%Uc#Q6+!
      zZcF*pXHNKUhm;=~ibp)y6|P4ySIK5w`9kxDimz!-I_&iKxXVS4do&BGq)O9@{0+~M
      zep>`V7@8;NFq2`WRIW|bHw@E=7ASiR&#;;X7|W>SvCi;t`ZkPqDBOZExP>)r=+A$X
      zc6ZiNjcCICvEHe!=kixVZ_0AYdf(HXk^s$zei6W=n--1iJiTqhpbN-tZXM&)PkJ+8
      z(P@R=N0j*(^JEvJEEI5>EXv0M7Kwx549-$)iF{eI&V{U7WHEh@2(=)v6Ot98;DC(b
      z0#QWeoCvI?0*kmf0N$ae7BDj3^cnULNjAoiMl89EOEJ=jkmmOU@>44EGOonPlQa)g
      zkyj^?*<`gU6}f_I6EluGW<L^j_ft8pV|9Y#0qumIn)w@RA2yG1BT4mjjLM9McPkXU
      F{U3qC8DIba
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%TB^T6g>mwRZtY)Zx$qi8j4GUF)<jG2*w2CerQJ=Q>LaZ#NTpd;=&K`ql|Yz
      zLrh($n>**+oco@)_m@`y``An&#&FP61M8j-`J)wh1LatK=}3#a0k@9Hw27UFp|r)7
      z?+v9R{E~Jz)vcF;!BC8ZP9jQL#gIIdN`^-a+vS#4TP{~Us}uTC_3BYi<%Yp%c#cRT
      zLr7OkBg+u4Rcj{Vn93o6X@-kmWsByIdUVBnODb_W=y!#G&AYB(D6~AAyEojIntwWt
      z@J<E{_13?)R;QU1?~e*Zw!x5fL}2^!A(WnC$n-=w-af-txiV_~+npxMro3jy8~C<3
      zmAd`4pRZTdH5qbErG(#bc@T&og>{D7UngQnfBgib2)Yk_Dj-HEfh5@!u{L4t&+hCN
      z(t8E-8M&vCC{NZTF>prjIc5kI$5PCqK#YPghj~h*(E_2E0W4yPcnr%UyMk4EP14Z3
      H*f7iwT{y%|
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTTc@~6#h;vtR1RcgsOldi4QF*tI@Zr2|`HPR6_zG;f-N;sAIOX&FpUDAJ7MX
      z4L*@b!Vlm_5zlN}2r1#A^Kfo+F5kIaT>d);@D8gU3WP6hllebnPyY0iI5VN&(V_Nb
      zlt_Pr$ye64R8I$L$HqM!D*Muz8>XA3JF!h0<~a6HBzzhx&oBjH@}o97{Y<D;TMmvN
      zNz?XsQ>#t8K5A(;Yx{)aW*jPkdnlDLfl0!2OB?kq>l`V&CyydUm}|v>jP|9~P9GSH
      z>35wFwpwF>zR`T0Q5f0DD~;eLOob{5tnQ{dHr!+oX=PFZH94%y^COhnD(z30uu`q%
      zt=`zh^$O}99uwZ&4f+aQKdC?kPu+ADdDqqP8Xj(`?q)7_<IDzXTf6Bl-F_qMZW4rY
      z!x&{ZBbg*B@vuU8dpGv$R)^O{m>sz{ya4ge-7B!fi)ZSwcF5FmvG(fqYGvXS_y6WT
      z!r9mt_=OUFV~V8@9OtZMJYepmhnVI(PMTrKc?-;9F0Ul;h$R;>kA*?C_x$7hOJ}GY
      mtexV?2`dE-LJkP{lNT!Yod$&pSjxSY@r=3PKf-fvNc;!oQ}M+B
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTTc@~6#h;vtR1Q#YQ3N$2@fqARwHjk6Rn!iR3(9s@aC{P)-l`JW_Gsmr|5(K
      z0iQ@D@dx;$2xqo!8dAeU=i%JuT)uPpclPHmfah2XP$IOtCJ(>Kf&3n3X>Q`Mr(+$;
      zB$MH5CLdUPs|Gq!yEYx@SlM-N{*=3Z?sik_cFdPFK$-AzrbOcug!yf4w0lKp)H@ze
      zm`KwN_ng(H+nlzv+l>Q4xs}FB;0h{L%we9e*wIFP%zH=5?#rV@5tch?B$ESawbw_+
      zviqtt!n@8)pf7gcWEe*Fic(X+2@A2xBCGpOr-r+X60M9QP@BX0JU~LFtK4wLgw=YZ
      z==H)jCQE1rxI@^y9Q6d=Fsncf_xybB6W-KkYk9n<rk}dlOLH5k_u9{Q<^N~0=|@4R
      z?iizNE0I~IvH+`uXP1MY^g2E`Ug7k~;W3EU?q7)|-aXTRwa-jF7aLEWuGQvFaP@cL
      zBfO1$fgh;gCl*-R;y7=u;u>==UB@El@zN4Y-do@XmWxUPH(Bx#w{Uw@?FIjM|H>(9
      nhZ`rjd(29SgHQkheienPL#I)p5>^VY2YAR_@E_q3HzdvhHKp_h
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%SyvQ6g^YZ#<uYlwZ4^tpsivQ+(>;O6~R(PP`aNcV;xB+Ws(+u%S91f_yK;D
      zc&8``b)hbDA7^sUJvo!N_m@`ydswrPVmNB4uJ^!u{Lzb}t_r-i45Y`yn0u!bE~z^c
      zJ?V>U9ra`&^tyqsBb{8RyU2#caPTh*GtQ9lLn&0kz-kOuhiC~qlu9PY45iJwQRanQ
      zwY-}|OVz3jBehzoL9^8;5IKy%aWIN8hK*khml|0xOgKm*W2z|!HZp|Nr4m=&c2nqE
      z-V6nUTaSDmHn^6i{{*e%Ud9Y3^?zCL<zj{8E8ZR~8Tw#`d>~?9%T6LA#gMy+y4n}#
      z(ui96`HprB3xji^l+e|X$FYcQtT62URVR^rzi+EZ9*xlNlcI+#qX=UdMY=*V-gua!
      zu0wCxl-=^y_A~P3Vjtt>Lb{L1Cqh$j%^56;O`7(RM}R2^OcSzC%;t0kvy@F$z#Q?K
      gYMv^y+Z}8-O5DNzG@%RBrLc%4%DI7_Wvp7+4^2G1!vFvP
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTT2^36#h;c-MVh;{Z`xRgW#p&>Vppw5xh_cL=jSapX`otWHW1LcB4P5eQNQ+
      zAK;G?&uoGcB8bkzxy?D>x!ynA-T~Ocf`<~}psDllQnbZQXwzKBVN1m-6p0n#K9ghC
      zj$~U!^3<el6-%?^%ys!YmpYQBs?SpoWx~$8a9lWHa93%S?Gct&YOa(p5xN=HGoy5~
      z(r;NkBa{!*So-*Yp#TFIB#hLQmM3|uA<Zw*NF-srmPR5u6Gl0`Yb<9M$`X!h?<%*a
      z?Fv_+MXSivS2bZcmNqi#DpRQ@3^irenImCgWwmIkXX4L;uK1Y5w1+9e*6US1mDE8G
      zFoRi6&grV!W`cJ_*ye<9M&kDTdYYR^{#0(9^Dm#nhHIS=RJE4oFcH>D>){(=^Yx6q
      zhea6cJ1s1Nc**XSSmI4H^;oO2)!DtZAM5|{@o(YaGxgaKFzjeC%+g}V4FNu}#sT<@
      z5e9M6C`-<J4C7tc4d(8z{2vp4n3ot2MN;6pzzaJ6UAz+J3a>AiXYLo#U-2FOBMkrP
      AU;qFB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-%}e^6#i}!*syGEp%iODn<5BFEL*8sYoHjQ)!0zbRFqaNOLC3d3A^cL!xW!=
      z^UXIOee$(dC0M5Dn=`&Rjx+uP{vYahH-QjfaEcGR=iYPAJwLy5?yrA8+5+$rEDa%n
      z3q_}D-nCY(`)0+hIt6pZF4(43s#s>4zgg~P<f@&Q^PanE7o?{lA~3w~Mx|_<`-KJC
      zZ08fVA~1eC`=pizl>-@GPYFcF^CjD{{VM|Dk@$i@WZErA9Ri&O3`7G%wtq))o-%M8
      zCj?FwrJr%iRlgp9(sW1Q%1HeGxS|Yn8#t*9^w7Xu)o-<+;grDTBgfi7{ZAWcL%W7&
      z1g4IpC@1e#rIVMQiaClt0mCfFRkPw0%!<4h#k0&(I-5(!b|iJ2##sX~oD*mtZ=`y7
      zB&!N-mMo`e=6ug~imCma_=1k-F{EKo;KVNZwTdrS47`A0fey>_thKybUK2>{);hO*
      zSLXdxW|!J+Rz}tNc-D60jq1v>^ln<qCCTh(-Mm#=usmDs8_afF6`DBH+@K&89bueT
      z@empj|5KYsV^54g0`C}W+{BN-kb=)X^f!?|*Z^$D&OL#2J>ZrO+j}E^n9`JvS8z$g
      zs{*nAvTfisTxJak0d}##sRObdzonxGDFb5|7dSg|xN!~ax`Ae4Go_L&TBWpCtgcAM
      zzj{9}%f9V88r~pwn{su)OjYd?$3_%W0{t_tGwjDanRknh{h5r-W@a)mB9rqarehK_
      zs$y67INboAg4rbAH1HNOjL#~UrBe_%e^7k8(A44u6FG_N2C|stO!3|NAv?K|f)=Ff
      zn7|CtW3!2vfWr#3U3Fm#2zsaI+^UzC*K7sYzJmwpsLB*OGvheYn=V<Eie$N>+e1&o
      z2LcmEYX5oH<KR<H8%kSq+oiTUEw4m0e0bC$6O7h9x?6Y}IButp6hVEeHkEfP$6J{=
      z$4MFHOU7)gamkg2Xz+2|aQ7v7A=0T0=o>h8eFI(D#8z@^DYEn!J>Q}CA$r4`IK9|?
      zrn|p}=W>ZKIg!NH1_qLi<x*1ZzNMBBM))6~1>hm=eosq3pc6ID%?+OYh>LiHH2XA8
      ziC)TUNFfpU)rm_;awUYWUM9M%s|O^Ye7h*mz9y~veUVg<*OsW^#inUJ2<9;&_&G3P
      z)P*n#Gf;4WPkLR!XhT7S;XL43-F2Gh`j=gIBRhA;=zRU|7fhu}>O^?r8}ucqp?_>0
      zFMkE2v3&i(=ONM0&DPid{I!XR#Z62ucBgBYPOjtHI^M3~#!ov&d#MiijsM@#g+FkH
      z>mmFZI1#HGYB)iYn8Q5X2=Os_2k(-GkP9^3#CxO(YU$zmLPW>=q>GUb=3d|y>wlZ{
      LBhrsam!SU(4NhWx
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7CT~E_c7=BJyHdiJn>I4-9^<o1<^-?hy@gqTpEP`ARZc2N^L%MU8e#~9^gEY}A
      z6EFAy{wU*n+N~^WWid<7`hGkg?|b_D&#zMek8rO7gJJDh#`cNRbNY6uV(Hl(;R)OE
      zL&ttj$4(q|<EX8I=q2w7msemiG|tDIbu*No3MrxuhRsIneAG7SrW)-)^@PWR``Ume
      z+mavEdUKz_e4#vUp@eD;Qz$dcwuI#G;?5Bd_M9W1Gt9M=>-hUlAap!Pn$af_GCZ7M
      zVSLziQWT`k@N5Edl6fLhT`n0)4LyhTs_*h{B$Ny*xXRGXU4SP1An96!ujk168Kzuc
      zg*0ecggZmZ1BUuBkG6#yP|a1+YpYOb{zUN&ElQW2{(J6n(c=LvgPd&9y3+h!;K;Be
      zq9`d%Q*zkJu-Is}a{h*8TG0%3kKh@WiU1=Wgt2y29Ju_o&{wul^r5Y3Ni2hm($@-9
      z>7gs9xI%9mFz5%AS5|-G!Vh{gV9{wM*~irR1k)7P(=OC-ks|8H3}%Ug;Sw%WZH{s#
      zMOPBmRf?E?&Iq+2u$hq6(&B)O;Tln-cK!)`TL`S<`T+QV{<VNn`l`=lhE#HQ1ZiZF
      z^H|7`MvAO{8$%uzB5&Ykh8$>`<C?q>c`J|1xs`>;McmHqIGdP#AM^dWkmC-P{)6L7
      KA;)r}boVc(9`T6)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~E|N6g{_Fwrs6ZK~($#bxqbKT1_-QU^E0Z0T(nvc%SXwEJLO(>2x>zEgp=C
      z5B>mul<`gx1u<sR%*{R1d(Pai??1kN1Mn0N0(gYy!+ezNtFbyvY%$6QNu~!nQO2rd
      zRm{httlscgr`&e%6Q``lTn6w7v7;qM<-_Ddf1lGTK$Ea=PV9t4XjXgLwx1BXy-A;4
      z5!Oqc>*^KZQD<`6!(D>ERt&fW!o>&yrb9F^6QPBe(CD~;nV!yhYn1i5+);hQgxOw^
      zDzmFf?eMQl-=$4>G4bnXdL<S3mh%DOUZ;1iIh)e%O}17Id1b@p6uv!7`JmE8ZUZb3
      z7XNg4-54G!vt6l*e@795?3hou^M8FptI`<@KRY1M24N~Sg_W|y?P64>{7$<b%$*(l
      zW0wFSTF-MX*Nn23CA0g4&ZILG^6BNlT^UJ3&J-w)-DG4R9d02MdqL1Mc=7>Zclk4-
      z?iXA-66E2s*rvn)tC$rV)qaRMToFW=$5n~CCcZD|dad=kM)LP>iTAa{l05CG#}dxF
      tftzBTcMG>gPWp;itV?XUzW;~V&Z&G(#5^oYxQ8XFSZWao*#WdcKLPg3(?0+J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|_HmTs3)N(G@5P*M8<6ciOHhzK!(6eLJUcp^(X!eZIV?zWNmpl`%i
      zqVXsADhXoLL=*bvk22obZlORd&1QCXX74@co;&x>pT9qT0T{-N2M&hO4Xu#eQi{s!
      zq>(RZ+2ppGRg+52P?A&hTFmR_3@@q~-Y1sJx}q7|s%diF0~bR;cqVg-wvl|czQr@9
      z2X2P03wUSz8X1D8eoF;SQ`U2wp;6}<t`@n@5Kdo!Sh9bn7~JNjYV-{;#MAXgFTBQ8
      zO*J1e3`Fa9i>)xYrt?|u1w)GrA7lwmw905gh`|{Z2F+<z;|qoDb*?X$r3BOYjFMYX
      zbXBbFO_vCpVXSWU^C>40PQ9Rc5k|y=E{15m@?~_Rhm@$=i#)^RB@xV136u|gQO_6E
      zEZ40_L@mq`K+212xZ%NdhKbq%TmmGc4>##xGC7rNCIg!j$hT!g#kT7e@rks@Wq2V;
      zq`F_m00tRCl!diQwXB(&I#;r548760xf+Edj>>0nvr<V6-O-xn9^5%o;>#A1M7=X2
      z&i@`mdl{hI0hLNl#a4vP0~w>DMj8xL(Mg?eqnbJrjn&{LuS_m)a33Zx=>ZjO$A23_
      zMoQ2~&+`R6!=I|6m0HjC?x1jHkY_cG>(e>KFgO)r^SO?u+*5(Ufd<gkKo4ad2n0mY
      z(~Z#p7m4<hO*5@VEDJ!2C%z&O|AycJ?K*IU-fpr1UZRcOvh^*Y9am{ZIuNoE7HqrT
      z_#pw%I7H_mtd;e3i}qqiNSxwIgb(bX2YMBD?+JDiLpJsf>2Q*5B)&R-EFz5cmp;SY
      zU;6zM!>bhS-6PyTAUGF^^OK<;0c$P`Xd|(}F8zH&N!UdT-l7ZdEYdbBh=@%}6jqw3
      zc<~TpHvJ;mh*16U)%3BDktlshlzv-$5;1~ClQoz5{8q4g#P^<d_o~GCPsGt7+vwaz
      z4_DB?W1PB#k;;TnNlayFA#w(d4r{KKwog<aD1?s)VjrFOR7DxKDIIuB-VRLR3C$9b
      K)4hyoxc&htu5;G_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR?`zXg6g{`i8e6kfyZLkKHtC17!oofX!bH)@V592LQ4j~+Yx3;gNMGP3DgIds
      zir@$T0RJfQzNDqXpdu3PP0q_X=e~RI&tKnv0NBBO7Zrj((s^($CgNj|Cb^D+v5Hh6
      z;#36BI2|P>dm$$(lr9{?70V1_p+~{%;kgVm7d68A1^r7lDP;sl=?@9vX>W0*x#Y+s
      z6BS9*o?YO84R#5&$4aa03E{c_pI)6lUu!RkWCK+!d#GcDQ1v_gI=Dv<E-n$8J*DNV
      zd_0uqSPWxHX!Vj%#C>6u#nVG4J5wp4`<E-t2g#i*kK}Z!wlzZA@AMYTust2Xn#uLR
      z$WW?@G=uESND&PPoBrY9Mfsa4Z`U^4c$?%Vl>5rIu{xV;xuI=ancy90EzMpm(p07{
      z?h+m@Uf8^&Vo|et>}36C(8VU<(LXsI8==#&$}(wq3)bw96K9K8ROMLWfZY^li|c4`
      zzRYMJ6@Gw5_Zz(KgRf|QW>mpd&MV9X-oe3pR-B;4=z7V<D%KdWu5cxGyT<=Y&w$^y
      u-ct7qnxFWiw5t_|r-hAI5=tB9-oVX*cdN*^vCi)n>+Ue`9>)g97M$O`r|pdZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-~y!5Pg#@*|1#*q(DC?l&=GziUrzRs$PIfNTDDFfz+F`Yb8b-8?84HcMkj+
      zF1-|q13#cYs_Lv0sg2YN2hVssZ^mz){p<JR6M#Kz_$U$fJGviTiGjF@tm*3{>ZwFU
      ziM1*^Y_*P0I69OA70a{C3{)bsjXfV8VWy~wQlUH1Y5PjXxsM8A!JR4-eO0N{q9@ts
      zG9y$zE3NV`g!1Or1;INoi40K2ix57lgj!Q+`K{k;%j{gVQ%R^dO)Sz2k*Ojc9eR0J
      zS;D90^I12TgotB#ofFnKoBtAR3?ny8E6<efG`7B1@sio@SQB6#uY4?w%{+vKc#SuN
      zs?>?SRC$*$Kk7W*iyI}1RhS;XmO#1~^skho+X+F-^s~5-kEK}r|4Zx?b%gL(YndIS
      z!dl7N)Q)tV8p}hR$h>P3AM1qO=jw%BFlk;B{8vi6_?0-C<lRU1#C~G?0l^QK4%r3{
      zb_<V_Qyhmw5T;S%h{eM!+oHh{Bg^dl5B2&_%-!?0#BiYEO72|w$`CRtFYbSfMVI&S
      a4oj}Zva5WL74`w=3RXZJt86{20e=9~tF0se
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_aO;6iE5Pg$4F$spWX=@1Il{i59VS22ndI41p1Oyo6h-Bg=-749wb`y)Az~AA3
      zkT~!I`lArD2E+j_tvGo0&Fsw1^PBm5b9D{i3*P%E5We=*DEggb$!TQuNTtz0rZP&c
      zmC<G#w|3au6q)RbJ)<+33bX9OEp?)Oc!Z@VrH>WME{jmMS|tNPsJC5m)K63|iibw3
      z-a4TqRVq#iw8fd<q>{t$grk+GsV^1TTI~?L4V{WAikJvc!6ae(#X7EbDj>WHP(s<E
      zdH^3|gj!oFu{#<Z3v-wp_j5gTH|cj0Bb|RA^oGBrC9JpqdoC=hcPDr`6Drk)FrEtA
      zHS*6;YDMrfVQh}7u^ySO_#qvg+2`l|*$s^lw3HHNqn}tStdB*)+P^X+j6LiQmROl0
      zuVH~d7K$yLOl)}-cqCP}<LsUBt&4`u4<A1@yh{YlM(F~zW>~(!>vO&-;0@b4JhppW
      zxsMtS@D4HFa^xq!%GK<Ld^$A6-6%)Xj9mW^4MvVlh#5xir7&kz%8}#cGH2N<U=H(q
      LI(~!&{*US{@AB0e
      
      literal 0
      HcmV?d00001
      
      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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
      R9GkdK^ZjM=*~B$>{sw<)13dr$
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLO>fgc5Pg$6H8G}6+W;*s&`LcdX^Y{82;$NTDN@9jQH9{NNmj|W$p(2h2>4ZS
      zKu8?;0sJV$>?RVlmQdi}o!QwpUvI`get!E7;2w5ElnD0+dYYb!cjA3&CR5!{$EvT=
      zzA-92&a!s)LEE7;>Z8o}+`X-h&8K6jZHR!dRq*@`AS~OVGJAIk`<;cewAk&T(#k#}
      z*!n;Cbqb|quAi>ZXRYGfGhutfnLQl|JxDW~D?Mm6P6)x#q%SKVT#ix3a)c#Zi4kIj
      z@VZ_M^*?ERlv(1Vkub*RO*%@;C)06P<}XEeBnfMsNl%PUM6TR@ZVVi&ga?arb768!
      zamCNtaYNYtTT6uUTSpaPqX?Uk$b@Mz_SL!(oTHNv4x~L6RuF3S#vg4z?Vie><x(Q%
      zFYn36$~9cOuyc1@L_*xwTIQZ9X+qp4G!|Yc!pix@#SV{liGKmAR^5DAEAbcN65A`R
      zy<uyaWzyXLf~a|LxEat_#GgGd;WP3MFBtS3RlYY7I5<|Z#?oo)sCi6+tGMQqCAf|a
      t#t}AgW1i@MB{9B4pWMlQ;BuVhm5&?GUgvR3*z%}t++-Pf-&@=aegOvm1^NI0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GO>^5+6g|&&;>1xB#|Z_R0R0GHJEd-+EtG_od{A(j!~v%P0<@#pvZJC%8A;AG
      zEZMSU$(j|zOlR65!-8SmC2N-a3Kk6a>ODJ(KSu5%etP%ad(OG%eN3MH_xm3JuHr!w
      zF@c+PyHR+kAL@?^p3|_ag?+PX7OI|S7FNpTV)@AS_YBYc&TwaWzD}#ld%A5KRuTz;
      zG?x}E-L4l(yAO?upTwZROb1}7P9Ry42m+!gFzD}@-s}~DxwXEv%v0HdX`B8nfkO5<
      z>WaB-fyA;?HHINDu3;Fd6yliBFoKLgJe%9*l_?EL3{l3KX&W1j{awS|(swOGAhYIF
      zbZc98O`fY@f_o5{?_Wu~o7|D@_(sVV7|0e$=P+jQY7(yq<ofnS!)rJvFyuMpaFykX
      z)fC}e&~Op6<h-PKKwsI_BC`mjI3`=9%0t6)DyDzb%&pb9KBpni^+Q2@twsQeY*0P!
      z8UChY9c{XX=QUh|voC8XaCW+FjjDzYR32GdKV2yyiwtm0!*$#sfVLC@7-Zc!IyM;s
      zS0}N_O+hN?2-2QX{%FOqeb=#gxgN+|(C`7v96Pl_94QsB43{?JP`4Un<S0W+h#)?C
      z;5v0z-<Nn~mzq->ySn`?p|E(FBcQPrreE1xGVCg+1cSyYC(%jr#_$&{>x736)rf9c
      z8?;4UsaBJ-GGEkSrqO2U&2%<!C$}RIbLbEW`bZMox??+Xh4wm0gfc*;sD#qKZORq(
      z#YGLDT2AZ-Lr^5YXsPU2jOPUdFUdfPM7b5?j>(5^s_p5x%<lo2P^5RmUAA=3GpMog
      zwg(00>EgxdZvZiRq3Her=``O^noU!D1RDL0(rk+|;xta>=bmCL{~OZz_)|>gXXxiK
      z#bbDZelth_B8~we2<2ali5SjM{7is9g%|M>%?KsniV^n9II9@Sq=FeH@=q}K1k*H3
      zPR|_U{0V%DVMGdPF%rO@lLal<3A|1%2nN9$^u+{kMiOM(2{J@5`5Xjus)M5P@l*$~
      zV{{OlC4%XYF%umf2waNP{Z_l~3j}*HQuh^Q%vHRtbg$5^@&2d7&L88QUnnN`b&yRJ
      z`H<vvOLAJ7F7PgzPFxQvspLeWgt!)h5G@D+7DYD*@8PBrbt#yWfOxx%g#d#OCd-pY
      zO5puSzvfTG$b+;*el7R#>sIR^-Bx~m*z)TJQL|s2((Z=ZYf5905=~$++M#<Ph_FLT
      z%Av(ppSMW@UziS)?}vH{LoBPF1Q?7j$4Vb|*8;S5yFZHV<e*0<cT^`I_d))sEBPn%
      z(8y<Lj{EQC!S|uUrUwGW=)xbm7OqAY{@AtfF4mOP-lyiLpi;h(;Zw7Y4XPC=VN+rB
      zyjMSmAe!y6Gfjw3@tK0?eXo8EHPDnHP>v=)jv(LagZ$5~<oBY<pY<T$R_1-)2l-!J
      o$-jsu|GNkImx_F+5AuJykjL;99qJgq#y2#kXzS=-eB6ilA0Pj_5&!@I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E&2Jk;6#tFmWbN&Qnlz;(O`8w`*m21=AA}H>Kohs%;54OfTuS-qW<7PLTJM_O
      zb<}X-z=aDES0uy@p_U7v;;JAJ91sHWArK%A9QivCZ+6|r!9@zP#yj)g`@N6fdo$nt
      z{pl9~CLuJ$7-p+Z!?<j2npX_pZ8#O9CM(jY_`WpqrBb1^<pdkTm#+$MOr6gNOUO;(
      zX^1nV6wa_sr)sROUlvxNp@(6h!`m$oLr<_F{jsAA+2XF_<_LC7Ix<*bm`MK*T&Bzr
      zUveuV35H${4GA4x*vpYbilHm54E7eKBThAH>%u#0uG@m4ujpE)T{b<b&MjeFCC)In
      z`|vyHq8j49a4HO=>0$>zD@6H<@O`r?a?2_y{lpbZ)C1`{zJ>vY;ccP|wk@irT?))V
      z+_utikl|2=-_nNb1ue%q4q;fsVTPd&ySDfoBe;(tSrvf_(V&`%r-F__+|MzlbP3Ys
      z&A^;W;z6V}Jj9UMbu&3K7$+arhUqxMCilY^?o7y1WRX*$k8nJ!LhBT|C0AmD<7j(E
      zlY20Q84c6_Rb&gx@d##VsvI{Es}4hVx=_fJ6?l&0G0Zb)q3Y5lYFoOcI>zz1LiJj%
      z6L_wzd{t?*p1^SpPwu!3r7b@YHI79r5q)kWVAvlPX-L;N?Ma8Y^@Lf=X*j`fV7s{_
      zmQHoCA?=Fr5_pPX-<m^lDz>PM)S?NQAJLIVK@IUT`HjXYx`YutmnkcYBF73&QI%%B
      z9!}m6RT5<p-q;<nh~+#^b3BVP)SSSLlnnjpP6*kaMOnidWf!KtvnY;pDlx6D>a>Yn
      zt(7>#;X8Nw*67pN1+pe+?rL=gMotp`ZR~I-wtc+mf+aSE?OHO}B5Z-0YT2$&*I6&Q
      z4bKuMrMlbw|9aCVQ~?aUK*Q)Q*{1Ic8cE*%($R&WCerE#OQqB!La%2Rtt51k?xEcb
      zV)O&_@$4ty<2P{EM|6teZu;*b8{l*F(LWFOI`*NTPSiZyLskc9AE(p3$`_lXeGf^l
      zWxvAU+juYgB?jl?*(QcQASv(~Efwo6S_f%;NbBN2you4-?)}~GVs!jE_;oy>MA<3z
      zKM`tgVzLYGW35wt6OYD7lk3#9fH?&m`WOqJA%DK_<PAKn(rMzECRUp$ZP&Vp6lL=@
      zar6y(@hy(vdrad8%;85Y<0q`r_Z)tPgJ19pe#Ptf4R6r*P5e&v{DG_ZGvsN8xF!Z#
      zJgMDtI3IF%4bS5O)!&PE@B&^WuBNeom+-Rc4lYvss3TdzE8f|5a#17xYHI||Z`g<!
      SOfrpO9Tt66QyIN%72qF>`^hZ;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT~ixX7=BJdvJkeEQUpSgB0`%4=vu#PYPEu`K}u^=scrpQk`<PQ4c*;f>x_5a
      zdEtzA?VXM@j?+=AW7<JS$7}zF|3iJw*@Puz>!26A=RIfN_j$jb^X?yi{rnq%<Jiy;
      z6L@aLsTphLrg_uwsx_x<tlMSVD0`l5%oU4;;w{HtwLJSH%biersk3Z4*EMtq^h!gc
      zVmd3v`Q<gM<ZDO@47b4*n^poHj=63L^eu#@Mc=iZmApWA+44%Rz2VzchdbNxe7Cl4
      zIlf0%fkDl;E5?HD`Bd+6Er#rtEPhUIT28s@3TT^_>nZ!BziN9EPY6sc>^VoGCQsUq
      z?Vl3Z%=`zt_H_Q=Np^`Pnyr?tE(koLV?TORh+|O40SpPmGub5#!vY6Y`BXJdyRLal
      zmL!EV2BqDjI#TGC(qSEXAU&o-L#I4@Tt`<RP3qVeNJn+_pi^M~g6&v~we@Aoy<{#|
      zRHLdTv$ABmw%j)kJ7j4EPVBuvt>j^u<7T-mFqTneYT;gCyY2bxQa217*T63Jgc-|Z
      zbxh+)mM8$&$-#W~sz53v59{%-PRN-R%U@Kq?9XJ|`$jY>EH!!6r8WWEdMMBBB(2Va
      ziy<wKX0q4Xoo`=<re<EI`J#?fc!}+ow@tOWpy9N@_`|PL(_Wg->X^f;OvbM&MhIjw
      zf$!GhM4V|jD=@jIK-mXo7`BKk7>mp?RLN_2UEok#7NLfQa{{9g{zDZqW?zeAPOb><
      zTrmC8YCh=U!$>8I^@fg%C<=7izU7*}92^79)~icZXq>Y%Z{o5BUdz6afX%Nu-oh0*
      z)2y4mKr4BIftXKW9@lidjd$pc8K?+3BOBgYf()XU_x(K`?@M|ots6D7;>jSEb(Fv>
      zqph0WqVmUKK&B@)WX=LZ?K}(cNG026g8c!rThkK|Hu+6Pa*m#{<&E#(HTRFnyan`v
      z<5=!&#q>PO)4&0p-Sb#w^ICo$7~>p@^GR?h#pGb(A1Nlsl3F>u)XLGNRt_n(azp{W
      zy>cjWFK5{S^znU=yRV3s<oaxGs*e8L0}SMTLHf!A9I9g^6i0K@b&Ta^>KM<ZJL;Io
      zr4w}=`9a}l_#RijTt-%*hZXc=6^G$q0##(OLGIk(3Or2>dP5FVT%{zlh$%_t5m%Co
      zyhBMcc4;w<nMTBO)Ry{s?k9{)ZQ)o9m%}(x>f0tO@S*ZI5a@3E)A1BzVEgb4eFrr#
      z)E-C>aqJ$UV~{B&c?^84V00xX8Zf*>k;X@M8-EgM{CuSG#BSqHBaKf)8jtTb{yft7
      z1>_q!pJkFVy)<(kmCqJV3jB(fx9~~~zvD~@7?ku5hH!faXnMOAub~hDIwITC0G)4u
      zF6;*VlAvEif-d5G1N1XSD!E_;fENVLeU0JiEnE_ebAEB=KCVvP$Gf+Yn7PMe-nlz}
      z|0zOOqof${4gc+T`QQE)gZPeg{hrjkOH%!)+~)!p+cYs?;R6Pc!X(MO$`A%=Ym+*0
      T%4@`n;X0`fYDhAzljisbNY77X
      
      literal 0
      HcmV?d00001
      
      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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
      XA%Ek13&+26JizfE95-_OC)9rdJOlR}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BJ#*7Q5Pd7lR_q7@CJrAakb)vkfq*h(Xqb4AF*JDG%hHh?*g8f!Ws;5`M8ixn
      znMuJ9$d6)pC%ef&L$mkZyM24Rd)L3OegSxiCjmUci=(`Xz9c8fX;hjj&!UCSbo5!z
      zRdjf2Ri3Hr1C=3#p(z%L4d4r&{^hutBnWa_B<a^uAhBTMNZF6oVy248N^R^8sQYhC
      zrrHp!hiIb3#IerRDl?hQm7qH|X)>QCg?4<h6n%TFS^CxZf4hGzXdUQW+c$#tZaj?R
      zQ9PJ-(7?SAcd#i~TdIR8yR&EC*g=@-6J2VPPiiVdL8nlqnOBygpgB9Uirs_@off84
      zsmU`p_lS9)OjV@HZBNku_d=h$U1EnzXz*VIp4$YGM;u^{u}v276rRn!b98>x*CAu8
      z7WZ+BI9w*+Ha5tF<J@I*=I?bOpu5+9w%zl$nwNyV-~yeWy!Ge=UGDi2*72Ucab58p
      reRQoVI@DXe*u@s^)9JJa)SS1AheUpj9-+@MoaTlJ*vDfs58HnL^(BH5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%T5$Q6g{_Rn1*JQ;f>P1Him&{$1TIKKqU@oFa|@y&SIv7GBe#|rkack!QYT?
      zVB<y;7kmKU;x~w=nnw&_<D#qU+<Wdh_ue}D^XnAA3q17U37+jHS@cOAsD9K-v!oSu
      zOv^+cO<PCnyuDIZHIn_zZrZL^9Un!(w4+BRjcz0br6rRXyDXTQi?2xkRM)Cog5t}x
      zr2`Z&RK@^Gf|1xHdL!%X=<a*9)7FBqIBlx-mg*XZFM~z9XL^Dt{;!5>0?(CA-r5i2
      zoT_!@6zgQy?llrCD9lwGg5Y((srRi(lb(+W!T9x1Z?7`}1XE>9V@5FO)K)%Q&Om_`
      zfi(G1Xy8D#Ge(2WH0w6?D%Z;;-Ll~4&H+!TS>Pi99&g+dPoHR+*yF!6zwi@--}8LH
      zGsvThWY#cDJaxfB8Fz@t$6bt2Lr}peb7PDZiN<r)FZ6P53-doPSr13?_3#@Wg_Wbj
      zdRX!MF1o!$^r1fMa>wVt!xPdy+5-0}4y@Ap4b9dlz0USGP{q5vmB$y-m#u{4++&R!
      O>M3S<a|4FC+JnC`Tal0e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>&2G~`6ot<?zfA*88c6z+KoJsZgA`McplTW~fK~)T3ltTxbP}gEICgRD5KtAe
      z;3Ys}9TsfZfW(3a;8D8b2?)o|4+wRGERFA-IrrXg&iwfG?K^-~EJYv*6!uM5ex|n7
      zj@+_bvo1IFx-K_#LzC|_x~)3uj_Vw{&aPu?YBPeMz?`R-bxZ#DR3N;eo4TV2%r95Q
      zs=w=tD|-ULTUK3*A%LkkLI?}YRCH6@cAHhreymmvO<=ZS)l_3owRJBaZ3dkKy(Ms^
      z@_)=l0m))r`eY)3OnWq^qM7^7LD_VM0ZEt3D`kODTQyu#3C3Z=7cr>1jfQ5k?@L>E
      zv@z?X$FQ2$jcs;n+M%OcW-EdPfz;TT^3LQW27zoGIb;N;{C+oIIh+{VwOqTVZSg(m
      z=}9kA@Vemw>jQjNa3wFoTqDdBNc@0s{_<BuKQodL;~MjK*QqRGnt6JtLL8@<QIFG@
      zVGn@>lA~T9**nOywLobx@usWvk;)~a9VO>wN%VR>Wib(X{dD8~;P|a1a@^{^!!$KV
      zN`LS(`-!!~=>>o0CbKP4-XYChPP>N%#uxDbm+%k;Ji;|><2s)B>ilr_gm4YBNRdpU
      z;tV5+omO#{QGjlwk>So9CkCmR_r3VQ6VIcf$6F$Omh`3Ugr2t=(dV;C47y*i$iIIF
      zDvwJ2!SNph^S+HL4XhywjkYy7uEx>Nk%xh+XyOKRtmB1`zcd^@!7q;RL&W!>C1RfQ
      H4LbiDd-lcQ
      
      literal 0
      HcmV?d00001
      
      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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
      E1A|b0>;M1&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYj;%D8Gd%=%$%8%BTkSRJeUL&n&vVvh&sqb(i$KT3`R%{jj@_x=8zmSmpGR|
      zRJ2yw($-$ITG3t>)DJ8h)+%;&g|#XR+S1hz{m|dh)gRIHdG}lrm`K|Xv(KKr-`n%N
      zm;LvD|M4b(M{&_ai$eEIz7l^WwU9a+FBK~JOg!ghy!dG^>&B09H^j}!qE~i{CJcq`
      zO_HT~?=C@wz*An{D-S66x_c%Rj01&?Yr%(*4L<@3_m6ma_t{GBlv^B6oyxij8%GN1
      zRCXd&^yGi-&?wJ(C57IR|24#Zh4749uE#yTIPX&5=<b;sR@mA-(iHrd`)b9_r`>)^
      zSlEb7CLU05zEsXe1W|<$os1V#={Z_|h}N48>sy8sEY&<vuvx0%UcrAxNLF~_UQrHf
      z6LGH)AFY(<E9J3r(M{$0dx*|DbT;kIm%T#1WTHdi0l^@W!=sHG6I&H_-J8sVsd8$q
      zaSNSzSkm?gd8x+M?0>>{Y<xB&qF=Gmg|8B~hBKTm3;n}A6LQyMqgU=MeK$5+D3*ou
      zn2nv-#iAgo2fYQaL=2KST|Gl0vD;>~?oqgp5+~eJAzKlg`kq-+c-+PlNYo8$>J^?@
      zhsbJH{!2OC&48x2#iPHVbVW5ZMaq4J3gJc9&k3(H1(wI||JNJ4r(7#7=N^S+XYQa%
      z4H15E4L8C1J?&-P{7iXPL3wPnbRoyeaWxeq`oh8y95q2i(Wb)JVm6);`i+wJ8r%2?
      zj@ft?qeRGjNM8;2G?%vY;GqRKU+%YX9AhR<C~Rpm-;lB~j^`CjX)G^2r*nH$isqz^
      zZ(vek^FnPlRAXjkRX5f8Vi_FAl#LhhP4Yk^$J|mWHNzU(*8L^H)g&0+%Sf4+R%l;0
      zyqcViQ^J9Ce%-NO=SktgX7rjiw!h^H1qV1+NtB=MDbUnWg_ay+Yj0L;5JF``#MxQJ
      zIVtj-jUgn2l7fwS>7%Ibqx#Hj@FIYULPc%#4T?_1hJyvh&^<NSGhyQFx^Ufcss`7>
      z8N6oWb-}EY!iE$(=WM(wzC+sg;G&Ey)6LcjtW`5o=f^iMApM!LCtqK#G(+4|g91LM
      z(76uyRsV#)bDaim49wL@C=V1{)Wr9hiTco!!#k(g1^iH^*t-gCt5dA1%i*N(V<BjZ
      zg`eVm6YnW(s+(GC#>UU&`SPc;g%Tlc&=6!CYC{Aj9dC^lD#f%bM;ycTx9FsPLwAW)
      zJWPK+KEZ&=9bZJQCjZ6xRs8yUuOs+5H!ZNZ$~EvbTDjU)0e<h}KZbz&xr*{082T>g
      zzhO-p#^^Pkt<@i1qaR$OAFk;ir+y1{B7MtfyJ=j4Y22``@i*yPYixs#`~*T6V+hY{
      zqtU8j%_vP^GajT_z8KiTyN762f@_yR)nV=h%HkL3oZNXG+meR3O!^&T<Mw6jaEx$3
      zf7+MP?HG>#Ccl*EdosW^o-loh;O0Q<ho7J|Vz#}t@@69F7?B`_!W$AHU&6YAXe89@
      z_#@UH$GDEirW2v_mWo)kba~~Uk<ir!Gec<O{w1>fGQyZ<*eTZdDeOQRF=WW8izhLI
      ze#~MJ9**J_&Y3yF&SDBV?y^`wUc;HMf@+Ykh`pKw0;P?8nxaJ{Y0F1{1w4iQBqB_!
      z1Na(?U=I%C>&$Y1(ofUdK9beXy93+>>2U`Rau?z>?8G7NEL!A1sAcb8)Du#V_y&9l
      z;q!39AKDwZf=Bxz#xh2dL5B=Iw>Q)gi-w{B_rfwJrU#-F>5z*TmhsZ`z<EPOjEMj8
      z%0D_*IohS|zRvXxR@*r;_7>CnEo{Tve7C>Nm-!uHIZq7d7|(aL^oxv>u{5|iLOwH$
      zRL%r<i;i9J_=x;~#v?_spM3A*$p-Rtn!E?-sf*luWMCV%lKmN4ZjslX>z!rwG1-)E
      zS@I2N_=ZXbVjJgJNxgls>&Pbjv524lu3&#(hcF^_<OKePHpe704r}f?_d+5VlTymd
      z8A*9H8HzcfWt1H=8947#9TDU5%5Bl=7KIo7j58mjLvR0tGf7j_7Q^vN2u1wi;Plm)
      zkG5iMSXss!v2a{gInkHq^eV}x2^1VIL3}_OJ|xLM=gCKed=Zb}6ZGI0EXZGy>|c@S
      zUz4y)7{z6l#cwc)PdV%_vTU!Qh|id&-!ctLco)CJd$`7%&#CcyO8r46r&_2>jpQsf
      zlC#uE&SyF$KF0GY)4h+>I(VN+m*lk4_uEWKfKffBlVdWr-7Ezu)KN}_cUTS~#u3JM
      z7>Ud{2j9CpVT{YrgRAQcT#z~NgQU^h*Y2=df0PKw=O>ZCRhbIhIsRL;Vqp_!NPVnz
      zYV8|5y~Xp}^l^)~e_?yv#&-NwV||?Qf+bWPm$IujWmlsqyI5===%#EZ^ZkrUk$v&<
      G(SHE*arSfo
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-5Pj2Dlg89){62~WtA|Ftc&G@aP!NI#`*GhkOI=AfWs`{h68#&V1P}fI
      zf0Q_B6$CvfEc15WzM0v5`}Y3w3g8$!77B!;vCjM(aVzfpB+hi`Ct@;<Wazj0yso4O
      zrKz?0o!Cr7+Pj}h3nfDR*NQAuaYsdRF0SQj!s40IDm^C@>jwiusU3&XMww7(^=&LM
      z-w>IDA}THxuuRym2YGit5_;@+Q={~_`IE_eRRg8vWi}Z~(-Xsphj~Ff645{ymFJ&i
      zDZN$+;UxI)Q=0^*8)s%D^H&inUxqaD3liK5t)*#4B1vRoVT-W$hY?)&-B0X-J>VY!
      zBe4aG94*dHnI*>Zp=W!}Gu$Um3aD~)7=Z`ac*F|t+_?~|@MfB|SzN~kqr+!}O>Cq5
      E0a1H?MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#j0SCTUn87AP$RiBcsErJ*epFeoG?EemOi{b^gVY?E!8l5Rq>fr224
      zh(3tUIOCHu>Vq>l<2ZwiP=`AD?jPm&-Q8_i6#+ZFd(U_8x%Zs&opVqA`18?k0D5rC
      z505}s-l)Zvv`gAbtXirWxmZ<OE*JG&EHT0VQC-XFm5#*3DNFFfD-e>}v7%<=V<YoR
      zde#(Z98L_W0|G)7*f>x!s-|X`lUlK+H*{BxoPc*sok=y&Y%Ar7bYe=%g7Vpc;UiL}
      zCykVQ`Xy+vLGM8cXi@I;^-9nv;8Rnnl#P52>bDgAyl&`lZ;#a5Zp*#))F+qP1e&<r
      zH+Lwhj?0A|+)OyGv<n0mtq{iwS9O8FLZPTTqHbhMxq^|Wip|ZaW=fUpqGlL+u}Vhl
      zb*Zl!$%4rx-?4&GFy9bpjifEU3Z<B8lxyagS<$uSc;_UqORZ$}vRNQsesl?JsVk1u
      zcl_uU=y_6pCX8yWTrO2iJ(sBE3Z+4MTtCLp21+?Shz9g1h=4>iL^>yfIEa2f4!LbT
      zc1pov9N|ei$dolkW|N(25U=5wAMy1Q2IELxG4*6^VL`7bcpZ$<d%2>O1={2ZJKDdi
      z#pNw06eN%&GkM)q4HgX@QUf?CurpIK!<rFJOoSIom1T`U1{9V#=ni5(24x6C0^1xe
      zt=c1zObUr?f`F>vW%#6YM!_Ci8dlI@OCt(iv86W^ylP8h3iiSmzyz;#Q5jy(Hfi6S
      zE*N^Iwmh#_#<lq(bKaaTWwqj@Rw+pAEPBnw0yEy7{y#5?g!-yhDbW5CD})3s<|+c7
      zS(4T;Ut6dv{)1eBO{CPW0gFC?JrO$(|9aC_p;$`sCS;-e!AwV<R9>$8I#SLHP_O{`
      z4EP-9#?+xqiph&w&OgOa{j_DVpkM>?()I-fVdVW-7TEm^2ZAV~Bx`_0)@Rqia~T{|
      zRdsMiJ~cnnI)0@rQ&{JU)ivnwwfCuf)fMA@)JX1sdt2A^<Fdek=PL-?3F%!Bm(UYr
      z5noks9$FA4uF0^k3yeH1?7G<wc}x6R8HuY__ZchIDp_5&4L0rdR^Kgy6HrvPw#q<J
      zt5$V3r<;uWIf7wRT>qtDZdtYLvRknOjqnlqi986P4NWc_B;Me{3h_o4-bB3Fg+s(I
      zxNtM^78l-1yv>DMh_}0ND{-3(?;vV-Vd>9K7v4quq6_aP4!iJ6jEt>^v5_NZX4|na
      zn~pWJ<ybQt4(A4HM$kzvqC`H<``F`RykLrZUaqZ0S8*WJ`fFf#U)MwQO?CZ(qnZ5=
      zalAS34K}V}|8(=fDpJ2k<=O+Ba^};{oOb4nGoOwAjPwt@_nc)<dI}un@Hn%~Q<6j4
      zKEu(-G0xG>aWonVJizE(M53XPCG3udS}ma^8VXy2?b5h(=_elXV3OY%wD3F0OQ)Ie
      z876U-#c&S0@D4lg90NYj-y03bF^?hkgAwTX6ifI57w{#P@f8ewjWWK&MchRdKk_x)
      z;{$nw6-@Ews7)2#;{Eb(jW%W(S`+T$ZQAkB+Fjb3vk2#N;vPxH_tcPqpS+Lxv}DHn
      zE&TVfXvv{=3oNDAP@LY!-OO!%MmZ#jqrR(BTI45l+q(+m9`CWE?Pt*f*XYxAD0mMc
      z++d-+&uDM5JU(Q^x0vRS=)rCN7JkgAKfwv^$w*pkf1F6XT)&7sy%nf1ZrkhAOo~j~
      z)-{;ZYq&JMik0X?T=A^p-N#-uTb$hCgZhkoe@-v%SQZrftYg7L|D@kH=pP{ajlc)=
      GG58mg)H;a(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~ixX7=BJ5EQw1SXem&!4TZKz6SJWGP(rDJ7D-H71%gfM*Fu)CCE3mFZk(!D
      zUi43R;Z-~8cw-$Waf(yDQm0<|ht&7%SGJmB7$#@Wp7Xx%^SsY<&OZI?@e=@ZXb1=~
      zOjot0bXWdZz9*S_Q>#d(TyNBrij*tS|C%CK6hlBi!`W_|%!VrEniW-FQEQ5`nPFf-
      z)l_Sdp)Zl#WawYkD@qi7h=>SdfZ=da)s!2}`j%pB$XhjqVWg;U%e76}Q2E?_*>CNt
      zCd27s4+yiAqpDawloj2m%NE0hM3KXmR9)f-vq^jUAF3V$CybIsuie{L8kVYSrhpNK
      zBVLyLO@BqeQHHs0T`6g1v(eBEOR4yX0%6A(#=LwSRbFc}t#!*#<a!jN80T%8U>N>4
      z_RT05UKDW%lMD-;)j)jD1p9ZWFvFo|+Y?0`rvyv|33tGWn8pmlP+d0m);)r@%C`q`
      zhGEj-5U)2)EADn6&Nr)CH50`!5}a9*VbsN5leMZuLA0Jt61zB3BGP!7Jj26iNaT~7
      z0wjiX4<?w&l~!%PMv=iBuk{MU_;dPXmpd=w0(WHCP)x<*VV8J&Un93CdbP@cX)8yp
      z{9XnHq2sV?gJQ_^;$)u$xzKa3rdU#Gt=OZu0<MrvJcBJYcXkv*sRS@Zk;AfpB?i&n
      z<)#;L71zl6dPC71CCR658~6bVWXMLbh&htJY1DiZc__&|-cbyMFkI{?@qcGA5J#no
      zxFO)Wht@sHB5vYsYHm%@s@AUU!a{@uTobX54Wi+6eO>*OY|irBT$>`^#VvA`xu-U`
      zxeCdGfZGf+-43yRasxoPJKhuVK0YAE9zpM(nLf}i_GLsw%J_)8Qf8R%^de9qd%*4F
      z<S6h9l@%B+cTaGDX@hmbf4hGjRXp{2%)qarT@iU~Q>)kYrm?MXQR#N@J{lR`R1z((
      zX^OF2lTA~h+kDVFqXIOB+1^gI)8&m%8kAqml{!;Q5sW_ingIem(bt831)51TG8)6@
      z+8BI94<SV9moEdC@B;mc&ITHXXhxdiFzt%jyFzqX9kCPT&`)oHp>z8fEvMQTYvK5J
      z^dgw>OFQ8)XQP{tLhuq!P-32XvP<gE2sy`|Oto<G3k>aJxIA*Yjk7<eViPS;!3-}r
      zd!5!_O}B8dQ}#G90Ui*-hlKPijNxnY_cxfqw>Ffxlh}un#Os(RAaO*H#R7rhpe}a-
      zb=Bn?qw<Sos{BS9D_tl*3Q&&ubz*oEt2X643SF{)Pq;bqRj-+x+gnSVX_}bMhbO{6
      z;GNj`0}Q9#$IAT{O1Gx$*?on!mdmu%!kwu$KJ0YlgsoPa`29%C9%CH)IE9}uizmeW
      z7aQ$)G6>c7(XP4zMR3LLPlzJt=~~&M?u}C<?^KxBkjcAn`J9+=`6OSbw2M8Ka-JOM
      z9C3=|yK@wkXCONw{z{O4!w7!INjyaYe;`F8H>e|`<inL*5hFO`i<rkw7iiBBvD#^u
      ga}fSKP{a^aLJ`7U?9n(vPZ?@PjSf<sMjerV09t=@nE(I)
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOHUI~6#g!KOj`yhZ&9l#s4WbPD56qCp$gPA7({DgV#3f~+ks(*%uJ!Uk(C;a
      zk3={A2RCkN;=;K0M;XtZz95=toaD|q^PTgZdtUS7=htrlCa@r(g<-N_medVxM=Pt&
      zu5K38Z9{vk3UG1xe#Wvk=gj;9=f-fV$a9<XRym!sObLF5s9>pvMw~nA8$9Pq2-eVg
      zEaA%#oY76)on`RF6Ilj-%F6Qyd}x&+A;i#;(M`Tw+FIxKJ#F3K3|$#3rx{tz*2Q-X
      z^t(mfVVKJNPsT}xwgPuWLQ7mP6kRWyG=p42ALx0v$PnJvbklQVP~sV{L~YkqQ`XkD
      zWpdL^HnBxp+b-%kCz(zsvJv#*h=hKI&IYOOAY%YW8A5bb$}%jQ3XCV3aXc&;!Ev0B
      z5F=wFK;u>!Cq)EN!h&V<f^C(|ytwj|jMEsR*iIvM_o1}ux}?aC;f#zfbPDa9jHuB1
      zkdQHgQKIK<ZTBwCkU@&4=}BZIj4||zRO-{bU0;C+6sR)JV}c=~JFDCvCeM2<eJH|S
      zlrh-|E2hi9atu8OYp(Z`Oa+GSrm5aF8W}6op&_w7S{p~(p*Yc|W3_K&(Otg9(C=A(
      zOP0b!R;`kq;|sdjt?t8nJuWJwHAtH#w^N4ZINXtNlbZC8Yew99U&MA{kQ(fx6QG~W
      zPlr~VzQUxbBpJ!T$QMLDlhOj2-a!vsM;qyK)dB73pf9Qxo%9yuF_MDpi?)3tage%o
      zfa+^dY1V(Imj6iYMo*Q>+9^AUuG?2C=$#HIqZJ&hU{Hzm`bR1lrgOG}_~>^i)4_pY
      z1>+yFq6A}Wp<e$QiD;N)1s4>l3Xy0)A<`u>N5iqTV9iZnf+{d!6V!nKUD)i_I9e&6
      zXO!1-D)j|oc!?pr!YE#27H_bEx8Qh(J-o+LeDLa9s@70z4ON3nnDV;0kIT41%@o*G
      qOw-_mmL$zjH$1@%uF)We@Q7kxC!_^8$fE^wm?tUzC59AkA@mE%jvyQW
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNTWl0%6#mZaWwzTXEM1UZTm(hhLSa=<q>E@<ds$ctwzWj!!%lan?cjE%?rte2
      zyy2T~yfwbViwS{;8Z=Q7j2EhSi5I*j#&}JPl6cpkp7YP_c4>GZHkmzV&Ya8lopb)b
      zm;QO-B>;D0REI{`IqA$MkC;czW69E-?Mx<T3g$#oi~~cDW?c7)ZYSSwS%r<mX5Myt
      zX3J&QN#|TgN01Pcz+}PXumj^qtXx?~*tb^Fi7z3%+ji{o9zvkKV~h~&b@Nsf0n{7N
      z5h1M1*p4+cJ3Vd{N6qnqMQF^pIkPZk7HxU=jluGiT_Wtt{7=v+Lc^q07EFVdJvmiY
      zfYJoRw;r<d<takljA=W{jnLViQ7p~5a<bQ*o^c(^DW{ff14VOY%FdNi>2$|f6t|#B
      z$6CUwYEZ?&Kr>nh5iZs17Th9pZ0}ggqiiW1w-TCa=drh@@lmv5oq^l1o-x{`K1X_!
      zS0oPC;dX4)aR*^VwY17<;7)Afo(~LnKgPpZUQr;o8|c7h##X9gi(f~Z;if!xod&jI
      z8@uL<=A2B8ptq;_Pd>NeE`vAg9*^aI9&&-u>a(nDgttTLW2zoIaG#EQ32SRP*SHwi
      zDQtDS)Lopm@`84kfi4AM!Y&ksdFzDwZUYYp&CsF2^k|<zdC<T^5*oEjBUXXkth_k(
      z80b}wJ(=#_eFVx8R@XMAGGhKTNr*3fstl61h>r2YdqYog{*rmr%KIawaYBm<snD&R
      zA4f(<+}UEz>bGUd<JX_DZPEi?#<b&D#omHhDp@5R!-Te*+;=`mHQOR<j`iU6;3vdq
      zKFALrH-4*QEy<EthBiNs=vh`Y82lSn#%IyMy5Tus1y=GKFArAnuLN&pDZznQ!*eWZ
      zLr>L&2CAWrHxqjHhM{q+_NoR47@f{Vn>!b<rYp4N0$RJm&EW+k=F!l34jUHGb{bJ%
      z>r8~QYl6XSBCNy$wsa<RRueJ#Rj;v#=Mk%0a*0J*4`mZdhO?euJ==7)iR5t4D2|-L
      z^W+puDLFQwa<ZbVQjvqb(yS<>z!OiwS8)uAUYAWM8S(ts!nFl}3X@NaPlSRe4M?8H
      zcEUUgRqj%exht;08W4g^q4AMP8qTij)e;l7ilA>4u%T=$5{oS0{?mBcZ~JjBnBum3
      z&6aK`R(>;Xklf3oy!_@0edgndYPXhQSCf*d$fQET#|Ln(3P8b?FoEq;Rs)kT8C+$U
      z2J1pkWObNovNBAiREDWKAT9G11y5mNKYzsjG*wd#Hu{QkRn1^eHDcu`u=mVk*oQA`
      z+r4aUB|+FvRMR6p8w=~)d~b`@;;B;JmNbVr%hEBvjO~0bU*-dIfsgS;K0>cx9bV=C
      z1+Vdq`a1gY1`gvA94z7l-sIJJ3ukbdz23$Zyn`R`F8;=Q)PVP?1s~D|d_+5Nh0^$#
      z9>*v2BtE4R_=29nmvj<e(J6dQ=kX0K;#>M0-_cckuLbd=X5gw8$In_De$i6+RXd2^
      zv<dvK9mgNqN&Kmu#$VctxTamizuF=}`+zj<GYV)wQBb=^p+F<)fhLNmi($|^{QjN7
      z*8m<ypIk$%^<#i<A<+hr<{MA6y{rWh4#cq!oA?Ga0u9JuKlen#kh--F;2_H==O8?S
      H5k&q2%%JQg
      
      literal 0
      HcmV?d00001
      
      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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
      PK27LHv}!KWc^A@uT)zoW
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^&rcIU6vw|)`UA=qkRpPLA|ke>veKfWK>blb(Sk;h#EWJr3oL27O}iB|@vK+R
      zdNm%!L_^fXizX%}-u-KgZ)TddZr3&*c4uez`@Zv;H}CC_-=Dq!7{`(iE{5o4uB2{j
      zkF;I2xMSot)qF<VP_w$FWz=M;Xqj2#iME!}SGM%5?t_~l^bhr{zM+*e)*=rrtGx_C
      zu2wS|IVUq_PUl_>t@(nH)e4Wt8HQ4Ien~T97Va(F)r)4Skk+TF`dIZb&fqWVX*0Jj
      zeX0`@RVO6#P8&JHN-(s9!mAAKq`9v9(SmLT9q44}Oc^<SsgzyQ3o8<@J7uP|%&Jx}
      z#Mb3Yx3y&y8OBoolQCj%FY4Bv%65Yxv0qi&u~f0osqm@~hZzQ&rNNJW9OcM;ZD2U2
      zz=u`_mS*U(ThgMNwTlji!p*bHQ!=dJ1cv@%j`7t_D`?}Z)!4?kKB6FG)5p2~i~_$+
      zALshB3dXoTKsi~i93GE|D`@8t0Rpdn;W6hGOw`2)s*4Jgx){MVt>98!j3B$LAW#=0
      z*sdwK!ecyXUZ)H_<)q2ty}h=rr!6{8|J-g`&s&C>EBbJqVc1sSOQyA4%ID33rLR|{
      zek|aY4>#$os&Z+mAc<MBT^6-IZ}9f$t?Rro9!6(FMNF3mUby)AQzN_h$%v6ME=J0u
      z7%4Ymr2W#^L2*>>bnl{>N+YAu6WPascS07VyH~uNKo31DQh<Z#r5VE^^wFIM&%sU0
      z0)fb9^xq%d$B_>hsG9i2#|LEaP#E<}aoLE%a2$hV#dxiiEoa0W2u9vx;5+<;b@B~-
      ze6~j`xlpCss-X*3=uS1H8?n<BiOy<5N0seBHzMi6l5WIK_tcSYv>{#8PWO!Ho;RVR
      zK60RoN;*~2MeTGi9O=dz(#7m_FNy9|6FTZx2fCP~J16O4cDmP&bQc=ZP1@<+65U=C
      zI{G&_&`nCZDM>eJr~BwgH`9<VVW;~_bl;lL(O<}cE+OfzO1gxd?x!Oi{aUDZ=BR_*
      XWI12g`Zw%0ziMnemF7x`7F_%T%baC{
      
      literal 0
      HcmV?d00001
      
      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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
      U^_5tTf8d|IBL)8=q5}W^ABX{l2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C&2G~`5dJ2=ZL-jirVT#@LI{wgp@wr20-_Wl1vr3mKnP?fOXJE}OZFQ2D)0ha
      zdH|^rf&&l0Lm_4z2O`uSa@d{O`T1t{oB8$o$4>xv(a9r4c(AV`>%e|*A6nrDSM6I`
      z9%^f>C!W>yCyuM+=%Lnu>qJ_Hjk&3(qKOP_?fNQ@454HYEYIfr=gxr~>O69Ujo2D#
      z*RvK92xJqg{S%$L>~#n^J$A#!9l}n3nf^FCch6O>zE61DTrTyLeoisB282x4AIVkl
      z?*$4d7LZ0+KwzDaZng%-vmubjiqWb9t5_kd^_kLV(ZrF#OWW}zq1^X}wl}Z?*Sr&B
      z#t=YwwA3F?8V^&Fedh+DW@<t?^wo%a7~A1fKaf37PNdRYhx>h1L>AWsuHY)6sCWw!
      zH=)vO&1hH{@U98JAyCJ4Lg9rU1w*;#n*UViOY(1TcFe2^;)zl+=z4Y-$}o>Mp|i|%
      z3F~v{g>^!W*-i7w@?A1?^LCdE*(^$CF#JyQ5jew9XIXoL6f!I;?d>Vn+TU=l-I?<1
      z_7t06*`C6AzRPjUW5(?=T8}gLaDnZ$7_EYfxWq3;!4}s_#oA@oOfO7gQfrSTv2Uw=
      zjLLV^2%oszF*XxDn?A}Mv42)G7sn3bI%1ZW)FHz(TTK6bmIkx_7xN>3BgStKK10m#
      cS^x4M^6LfUdV-w7%{b~7nk)-3b_?6UA5mlZG5`Po
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVYfl_i7=F$!u&_+I6=(~TLa(q3UGFz)EmEpgE-h3P)V8zBluq59t-G_d)vreT
      zrJsyZ>lbf{i4s$j7DAi&$)rg?Y5WKN5cPS_%nk#KVq*w1=gfJ}^E~Hy-}CN+Kkxnw
      z;8A2^h$sv!IHlAjbJ4t-DqgXjg_LVubyFAJTsAe5&!uh0njd!Ef}Jk8RxySug(itk
      zWlhFTrY~6;H-;L8-4z(YwrPtYwF<3zqn%GpTLs(9+V7d^tfin#g*{{cx_yXIX@ywE
      zQ>1XNZ;K6EEcb7*u240SpSR-RaSb%1MWN=1?bz;7h2j6pJ)_V#Mq?*RxwKU{<GIi>
      zmd}{k8I#V?75`)Ga>34-g=-3RMJtnc<~fcdik+fqmqN6!f2NKaI}Ow!E~DKB>Jg`W
      z_o7`?I6U?+>7~uhWN}T~DF)e7IOH8Tobn;<-?}gTbM>gkJ_9}ICBI|lnA?`hIECs(
      zGh33y3N9+%yOp~hPr^VF1Jt`<xq;LPauQ-!pO@ZL$+feoQKyu%3Z`r4ouPUh#v?JL
      z6xwtxZVWJZEgn;-cX$UzvsTV>T$XJaE>!YFs>Txrp2SlMMp%Qw!A<P)1%(l$w)Tmj
      zXAL|DTHkolERN?3mQT!sFuijMaWlAo^iF)`(hkqqjRzo1LneRuT3`u7dwu=uE_e{Y
      z%Q+Ooi_}ta1E=lW<*XHsjAIx(<uPjD1YT0uX3mG&!+*&hi@!<~DjcZ1gO!XtQ1l&(
      z(d!aDk}pYS=+8+>#DsxYF&4uqg<}s>@B7OgE>t6NOkzr|*R<|34+H04ii({4L#p~|
      zMH5SB$|~lwi`FT#pv$e!E*`foNZ)0ZZdOYAp1on<H4vayibLw2-O(<NzFRW0Qdkr6
      zc-z1s^wDpLVI589ONESe!j`7HqkQxry~V>)0IcSdj$;)@vSzU;g|@vM81e|cM2{ju
      z>-igkCTTwWNokVS!*@OB2DUM#fwMVOF$QQ)+(&itR+7)et$R?jiR20zZ*e7p?XpfZ
      zV3E;RP=l*Px<-`u(W=)p0@^gb#I|#!xRb5f=b7a!%Gk!l3U(xtchHd-xPz{r_{k$^
      zAvEv-pC3}-M-+EmgZFsb(2YG@CxE6=dL%Rv60oQFG-nwtG(Cyi=tvH%Vs8{Tv7NK7
      zU{)Pns#;=<$6Ldlz>N@BPr%iK{Wzf4dvK5=;bPAC6zgtKt7slfuA*OI{5y1#aFFRu
      z3?>Ix@puHwc={&D$M4T5-2Cg05OFuN1ANTqCp^Zd^y)Jn<a6xhJc%!~poB*d2pYr@
      z?QD#4p2txNYUZDaj8fDKIOa>6<BH^@;~s`*S1>Y`6hD@6T;5&sUdya!{8y;O*Q}9m
      zuoK^gvfANu*D{kY<0SEwv{j$y0$IfFE^W6y^7z1gG-$v5=|-mSS%E(=jZ5gjk0IN;
      zf>U<k6>WPx&sMgb9mMC9Q%lNPg>x0-3c{ub=QpPHw#GNScpqQMPm_-|%BmKu&U=`g
      zO?ZGzr3c8t3Qn)d_bTOX2(mMPJQG+i&;l7z8+ZN^+8GIUvQPM8ru?LJiw@S*>k*c2
      zi)blNHmlqR8ns=gyF0M38?)L%#S31p*V8_J8{x#YWxV+%>JrIiytNcvbFM*W^jCI>
      g-+1$X55czu@NGEj-|%yCRGf#&x7_(j{-=Sz0bssl6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtWTW=dx5dLOu@7nIBahkX^1qVn=>lC-96av(}(7L2`ak-=r#1q-rn`GO~Ze(wo
      zv_kL_UU{g*4*-e61406cGy<v5s491axC?|-BrXC}E`kDO=IlC`st+KdWM}3(^UcgT
      zXXYqp|9<rhfUP)WKqKrP^QMYNtYg+pu{rH{W5vLp35w&vgj=jkSY!5(V^3FVzBgdi
      z0>5#5ebu+>?55TPHxMUeBtX%%n11ib5xW)`&?B@JHuOyrx|FZu7Z2MF$8wz$)`)8p
      z^c{}p1iJ{aeBTfuUiRyD8Zoq)NFhyVuR5N6&(y?--FP5mtg8Ao%N?>f3P*^*crflX
      z345ylb6X{XIc5h^^+QfQ7*};w2yGE~z;?#Q143%jay;cmDCDbZZ`O2BEc+9azGr(u
      zX%XAsuqMZyTC-HC^bMu425Sv;6FL@1Ee8`<;~GMebCrG9ZxB}H`xfIUtdv3zt}}2g
      zVdX*qwPNCW^b!&yu2nnAw{SU8GOssr12%Aq=0b|jWz}=mQdnf(L?1S>YrSDj%Owzu
      ze1(5xxd#QgpUr%Kf(cZ_Rs%N?HcC~k+n;o;(c*+1SZ?u<e5<~HbdOgbux;1G&Da)h
      zc5hhm`e?Ju$ZBg3RtD{+Kh>z&B}sIviGJaBse|%@hVSmP8b=S0TXlb0wt2gWJ5=qX
      zj_VF`Uka;aVu!Fgm~~&nnXnqi%f2ELsK(Kj9$4!Zd1;K$xwzE2D{d5;;Xm#TI!;J8
      ztz&jQx;1S^RvbnTtD*-S>GbX^&D9n;E$+FB=h=<2Yc-p8)4<(?E&r{N<-RYQP;LkA
      zUT8?b;K7fx#S_Kf6>M!|Nh}kaPQ!eO6%8x-n`Q|-!_Lp5oi#IbLIxddaX+GyzY<_G
      zO9>FmY<Pi1NY@qg;u30Xf!g(NsPk8(X0bZV8hZ*llAP^{!W^#Jo+!MG+#J>wa@lw;
      z(>a`t&tan&@nQaCx`!i^wOnR3FSnqU5utkM7@|7+E`-W-Fe|}GR@g1SRcvqy<rY`m
      z*U<BD2hOSAOQ&(8Dk>hiNsQ1f7eOL2Yr?FN9;JxDFyES1Vk0V05=%8*EEP5zkIlwn
      zg?VgQ$e2m8Lvk@?q~|j2k~A4c(naT;D%rjSYiDwsEJk2x$eAod6)(l;(g2|$Xj&qq
      zqM{=sLR)cHu#0R(WNUk7goz9boyRS_G1*VQ9_u%rLvJCgXN|gWv&OLKio=5Mde)$<
      zVLW~5^FmHwt|ya9%;B~|j*DU2<b07LoiUH?>eQ64oSNiqosa@k!-<R@29P?L9NFC*
      zcHQFGoZ_bvILpm>4sCb?Yw;!{Z}EHcHU{wyY`ljPcpp#V10Jpq@d`e|>-ZR-;S*fI
      zr)1y@O5;mv!&lUW^OVQev=iUZ{rHwf@f|&iALt~0r04Myox#uaE`Fi&_>I2DA9Mj1
      z>3968WpPpK!CxA`$y%9W+ChqIk5EGMNY@^tq&7<_HC%(?07Y}jqlBH<C3DN#Zrmvk
      z0Bd`&m){Q2%B;nqYmZ|edXeCKCvg{JI{k_~23X_&C$L|=0S8cFDQ^tnAgW0H19son
      A6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNO>7%Q6#m}&XB}sgY<^slf&;XnaauQSX$U0_h1Mn1!UUAi1R+4)*jsy(wKuFc
      zaRLYl2&jUB1cGw~5^(7SA%&<1xFd1n3|H=45%6Yq*G{D#fJmA5-Z$U-o0+%%>95;A
      z062@MR49bGT5~J6ZfqMnxmMe1)^eV?<K^mJ!_E~OM$KHY%yzNjG#8AD=eWBQi;jc^
      zq#{btg>TL_*z>uyb+h8BhzDpG(dQ-zBa&-5xn<L}4BL9$ShGz+eBNqW-UUJ=Gqpm9
      z7M!Y?L<D^rdXOXxl&q$?xYbxQ-4}e1p^{TE>=lEfaD)JidUdNsm@obRj`9SpW_qIF
      zRjcaNWl2RsUjSY)ty<k9^lTbdQ_=|8Oi8w7w7p!xX>2-8v+3o#*we1DS+^>!e6cvS
      zlEf&Esu&{-cAP?jhI?@zA;Gx{j_tUFq0Ce_j>PgwjN<_n_Y)>XfbfVnZR1+5VS0w0
      zdseI^$Jw~ptS*?Qt>Hl&^TS@UjmidLA_#kjvkZT=xMa4REw^HFqESp}cnBxhx78_W
      z_>OM5%DmrHM#B_NGPUX&ZE;@&HB;n2u|1BghSQ=7T{hSBT*qFn8&#(*Hgg)zh|Q7i
      z=4Hd(2nnNjSi?CP{F-IkOZ>(NRAK(%!wC<bw`zpp?pAobe7Cg2|9qXaOGvhiZL=C2
      zwBDur$4pRm1leNZvOJIlOFY%FyUoP3xCwqa#b(oV3%1c}nJpCs!t{T8iG<!m)5X`u
      z&kqV>P<dXXZ1FVk+RN5Cmc%l4@_T6CvZA1$*Cb0|g2|H@U`_K$&@spsKPU|IDgvBl
      zDFQ_F6Sr9S?r{m7IpiAYxQ_fA*SWj8rf|g18hICSBsg0uyN`S3V%Y<v_i;R%PDRuD
      za5)v-$D}Z#WnL2Hz|#AKsgHH+v2t2J!t4+VjQ~ygL?2~eUx^<^<BWFl>4O|A#z;!U
      z40%Ira2=8smA(f!C5w#)JHpN1Ne7S+LD@nTg-bc==MMBBQ2_c`N5k}C@v;_Cyj0Yn
      zcu|z7bcAJq$)KVifpJE8Xkm6A90|$~&zgG-;`aM=cGN;hlJ}yt7m0MPN9E87CL~w}
      z9S3?^9}sDSruAMnM14YrHERJTq|ZCRG#{i0Hye-4s^8#PHWg2)RpFcBT&znU7TnFA
      zN-0(S;_qLxX#sQbdQWU0XS3<JF#F5C9P(R{*btY{CpLX>jOoX_L-I9$selqc#YObt
      zc^t(OGFZlWT*Wh3g@G5*#!L7BFXJX&#dj#<HrDVns`w2i{y>cquxK3XGy|Ki;5B*$
      zF1gsEU2M}0wCN_^pfB+zeTBE^7T%^G@ecih_vm-LPk-XN62XT`4{j&}_((a$at0qO
      z1$?5c;#0-OXNrr@<tQ!r;}T3E4-RJVh?r8=X7Q*Pch=71G5%5rZH~1l;z|Q~%p=A*
      h*6}!FaYf@EFR;cx`glT4{FAuIQhZSemv9+9{{TG5uyFtY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;6iE6r7iYq;^aQ`GBTrODP<n2Mkw0a6m$e6ww1HQjZ(63Pz4CIS$Z&Rp5XG
      zQm>WxQHWWCkd<<Y5BokmJ2QUIk5Bi10c>HVgq&bw5RTn*b)l}@(WM^_+(cg`?pZPn
      z+|E!9bkEn99WM$Gm6t^E?-B}vs=>Q~BKl|lTziS297ZYJKn1mKmeKTfcq@q1DHSrf
      z;;tY1$(|s;w%!vI4x&?SBM-;H2Uvo+t{>{7@vyJs6V(s2VU9c%^i=Gd`n6d|&is*J
      zvpe0l&{JiglcTKj#@hP--Yp0k4rWj+VL`Axoy=-Rz(x~}pibHD#59b^CkG`X@>#Gy
      zrN|_mjkZy;kE3zy=|kTPul3$WH_WO8PA3d?d=RM7NOP9ujA^cJk{!!*o9AzogKg%*
      z%r@2;^L)eQ@w8dFjKVnc;|}F(COORVET+u{D$Jc10On9-WnmsQcFg5nqRrE|LH!?Q
      zAJF`Dhs9geS^r`Gg{xwWNCib9gH%&abI-!Z_n2BKQ=3d*Zqd3yYm%u+rUf!BzA@$S
      VHC0=}H^v%un{>ELg*M}NSkFDm#YzAG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%We}f6o!B2(o92WgL{K=X$z&zxTT}AK!Ow&fDntcEP}E?qLP!b5?9l)I^zlD
      zRZt(H8#Yv8!2|G6h+_w-RBYIs^ZEF<{U4v7zrOzfu#24<N(|vJEuteimZwqvNvFfe
      zs#6<{>~Rte@;rKJvRGwZ`#DiHR2Z608YPm1@A^k-U>T<NbgJzOhH@+HF;rfeSk+O+
      zbOTjPG0b*!st$_dzRKRqexew7#|&iBlbLqwKgEh2>6~G!^WTQr3=N(4WTInlkYS<K
      zx%Ahy8THc+KLofzwo;RltvM{zFn^_wiLQY~EKxJ+q>u^uxN_B`Re#kj(u{N*t2DrE
      z;@DWL;sAFY%Y5W`g`t`ovK3&>OA2Z;zyso8X3UuQAxSbF4+%F3b($+1AS8t;EHTx_
      zGAaCL{nHXdy=#hWpx$Wroz1_7wBy8B15Ja543vmy3KVO!iYPP6RdIpftKY6ublbo-
      zu2F1E1eCASY8o?`rHVUz<}U*d1#f->|AL<2H$ChNzU<+(;CDQ<1;6LvvEZv7Lc#BQ
      zSQUKT!;;_|9%ck@d8n4pE9dl53C`6r`2wDT;~Cb`#uMz}EuP~e)h?YLLSTz@jQqQk
      GkA4I0U!pkx
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%Wl&^6g`ti?YM3l3<>X2+Cm#!!mt5BN{K+~rdC-L1=QWd9+D}JE$ngWAMg$2
      z2iSDOf`?e}0elqVjtNqgMK^cmp1Jp&bMO5A^Ya&g2iP)DVd##M!aw52{KU^c$YkUz
      zaiaXOn#6vX=l=6Fi$wNXMrv%J#;|dIc_5OJ8Z#_x%S5UjhW1vV$^DoU^?}Mrq1PQS
      z)Lx{Kuuw(AMjZ<#770^hnOIoDvVkT;YrfG&3m1r6yf1j1&vCyT9*I!(x`z!gT(ofs
      zZ3gRYoN_hbaUmGku8GUkJ`s^DCMK>j)JZXXSL^pdP0N8y#C|auitH61#?;{iX~^RN
      z&!o<0pms^(UU2><&MdCSP(9|c=9?dho(!3jK^e`>^M6-|dPy5LZexx75{(|kI!KEw
      z6uVNpY@Lz1rv<2%6zPwF3f*YE6b;HgQeL6+k?Vbj={eRn*q^ZI+F#*(#=7TpX24Pj
      zIG%H*1RAb$jgT)T;dP2@FeyGJ>L+NThYq%J3s13$9o)w=JVYNisG{>v4mYtv83|L>
      zDw%2Mab~98lqP|@Zs})=6}R*;McXa)r?A~0Sf8R^J*}M*O9k3Pvm9{`4g%c4Ua4mj
      PCoxgJN++Y6uHO6$hQ*^V
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7B%T59@6g`DuMn?oiF>c)fCN>0JD25Hu#AKq2G3?9OK+QbNwCMbnD-suefFEVN
      z9f%8c<K{kk&pkb-{rG%)2hc~`LxrI~OBei6Jd1+s7nRPqk%i%Nlf*pInvcUUkcEmw
      zd{sp9$*3&#;4tjj6|ORVbN4-9a4%J=%!r}d=}s7&arPj6RIyn{4K717P^r9KBvYB+
      zi)kzwT0utK6Ok+1uMZtFSDIlE{9D_Qq1_2eZLuITp~=b9usg9TcC3m9gO^CH#jL#j
      z7nH#dvqc`sYi0Ev{_y}Ob_quyoAi)Cg(|W~(W7oanNhCwme_bL$38`$V8AIHoMDTq
      v`U*sOn>tI-plAt3gtS<<cf3UNC&M`*FG_}k6>7~uc<iD@9P~M~UBUhr`T%Jd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%Wl&^6g`usI1Q$S&<BqK0SY8dTep-~Dev$qgohMV39*_aqt?Z-Bikuu&mZsw
      zuwf00Ac52mV9f#q2qA$4KLMOcqO_%v=)yB|J$KGM=gzU;{eH6yU;=jxL<G`vZq-_l
      zi*m^d9@*}k6{@Asnh(p4RSW_vo6p~sexUrJ2?J4qtvc0mBoprx7F01but~t$AV^j^
      zPC*tQ3T!%KyLNa^pd*!@6^LfNl8U1Pn@t#q3H0P_SKY3b3(CJI3yu;<<h-JEW~FcI
      zxcM>~&f9@NCbvNXLle^i-9ae*FdxcLm6aO`jHDj?2OzH;YW4i-^lTTlqt8I^nqK4|
      z2Lv<Gj{!>Zss!!J)mvqI)?MFrS<Y9oJRQSM9$ZV{bTW?J*kfQ&V0)WGCiY^VKxakc
      z5IEI9u3rLSd1<7jA@=Lc1OH?+uBn+Zq%#h&->Gcl$Pp7M-EX4~?zjT6psAJK*l=3}
      zgw1D0z*KIj)!G<FHLr19gbFs7RMC;X3~i5vj<nIyPMLvY0s||)Ye>FSwVjgkV>ltO
      zWfiV&<|IyO8|~Ap(<Y{IhK7@s3aJT<wkexlSGNhz`=Uo9BX!UVCNAO<I}~~i4g$TY
      z^+)NjSjG1$$`2oF+y2X(`<;u@snXN&yjS&$>Z+{`-rf4v#`F=ka>jL)pLJvqD4M+I
      zid%HNfY*IXh4Ws?z)d!BgT^;;3%7aiWofhZ{WSbKTIpGggYM<i$sa_N4?jglU0h9a
      z7MweWUnBmKiwI1Pan2C$nao>YY&Me6jUGmHI<|4t08a_r!FlQx5{Vr(?CLoC0x1TW
      z!J{=K2Q$mj(sOk4#nzD;4!%Gamo*%I5)s^c_UFS&(F0@!@qxDeh%Mq1`o(AL6<?4R
      zUt#gxDe<jNCfO+1B*W53W0-W}7()glq)s=q6rQZdsMk%5)nKg@Y^eOsf<IQN>}si;
      zz|p440z08qCQ1G+ChsSXzsAW-4O5A;94Kt6hVyN(fAaJAwTg7IMLLNrE)$)YxWZM0
      Y_*WT4a1GZv$GN9>fdpnaMsWkVzs;;+t^fc4
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!Ae6x44mz&eYRHd<S+ON(xvAf3!VxJ3tl{>+t9wc-3Pm=_S-!80e+O2^`cPl
      zlE5T0naStZ`v-s-E^G7*>?R)Uj$Y|#^IID?R`@7(EBj!5&UWG4Bc;q~K_RTjztrd(
      zTo-~3r0Wl>9eXjj%0fw;kno<P0(Z^x@_%i|L8)DuPo50M9M^x?Ra3x=HTyt`r0t@?
      zZL|En>m;e$`6*I(Bi9|0=leFW!OcmAX^|Ni7*zTRpwdWZ7@$O}asJbX80kbUXzgMA
      E4I!0Q+5i9m
      
      literal 0
      HcmV?d00001
      
      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
      zcmb79O-sW-5PcJ4qp@18sAq3}fNQ;`^imXrphBegZCuioe8}!b^S3++9{d6RC~*?S
      zOHb~=FmLwFn>U|d?;ik07zXeN=UG{cNBJxpVPABa38xw-7Ou!eYOR<i$(=M-nad_s
      zPfk~50H3hiP6%Cz>)XE%LT{`~?Iwi1qqrmFk_8iIST{PJ5&UWOphB!*y^mG&2!mLc
      z>ZUH{%G}F&t_Z`pN@YHiMz{F4>AQutgp2sUW+OsSC~IZbNiUfqgh^GKR9)$I`N8tJ
      zXYC9QLF~GH#KG1%2aG20IDp>C=^NHwx$+Ql4!dr|%rQ0?@BgsS$0j4@V+(^$YnzdW
      Foo_{lWN`oh
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)3O>fgc6r5)#v74qz2=s%NGz}opv=Ua&4F#!Eq|!7TQsuyHZC2@qjjbf>(*6|q
      z16;UNYC+=AAJ89#c(x-@#f5{{@9oacyqUfG_45|M9-cd}2rq_V?2W{^xbSA5R5<jE
      zyfEIG8EY??&Ad(&n!dTz(m{?;O@N*j414E~WMBySbD?8NsCECI_05!-_6dcy3Y9q^
      zEN}mN+!_#ahtUUFgpI`#9Fz$5c5AQzLb-%I3WQ2mg|ZiqeK|c9zD|XrK<I&(s-&N9
      z=FFLz5nA2<bi=dRJUGD}N;AkDu=J6ORi0WIp;b`CV{ABBzh^tMR>Bk187L>Q(5!pU
      zUY5*$>%EHx!HImWCP_jC6(&*yIwBPNQ9KP~M<tfZe^P##goq{wVDlRhtRw}lEUq26
      zye@Fp;ojnZapwnryEj<6N--5)%jwNm$l*0(-=NBSD;XLOP~(p8;UTl~Ab5o3Ip@bY
      zXLIKoOSP5nSo?xXT5odw8E(G)6?wb8@r?;ABvLgN0p4N_$Ef234fImEt#pLuTyCAa
      Qt<+M3?`0L?Y0C2KH!9$R)&Kwi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TC)s6g}5=ut^Pp0BLzc8=)kXu(~EfRFxv3rc?zKBzBW9N(MQ$aK^y8f6*`K
      zh7D35QWtyxABB3yjzFlJE<B!l=gfKBxqtX`2jCs5E-XT=AEm*$xD?mH=t@QXK+9_#
      z4D>JzdZSU$iX(j@RezveID{F43_`)U&)sv`(}cpM2vbQYx1Y|Abi!0Sgo&n#l-?yQ
      z)c!rLcL>gh_)HdI<Ao0wKEbZlJCh(x`zT<7P-?449;CyrOpZl2%!J~e2s<KCrXDvP
      zJy0V;qy4{e*qqJI30`07P9A}^_dUF1+fkehMOeflmR&48%bjQQv4T|w%8OKlEc`5A
      zKAN5SsfTrr*p0(8hN{Tu5NMxJJc`q#CtJz{Dm@K(+sqJ~oZsd*B3Nb!yt8=k!sB(4
      zs}|Q5|BH>^{Js5&soM-w;&nQ^xeEt-jD3$8?p1O$W>Myf?_rKv*$L*cFy{O^=G<!h
      zz*M>N3$MPxvzy;h$r@{U!{J83ZZ6+2iv^>%l==GzA8qFUgjF2iHNK#V!%VxuPJpek
      WwsE(S<y(K;RhcR85#KbtZ~g*tNrm_T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7>u(fQ6#w0QcXxnxVJU4Xl(xWj3als=<x#cJg@y7Euq`N$>2}&q*%!OB?II>7
      zCdN-1!#6$%z7i5c5DYE&hzU`nF)`6^Ch`aP%|v`9#>em8X?JN^qS@@+Gv}W7IlnVs
      z|NYUY05;+UKU@OsqnToC+?X&*vBIR48I9Ry$&QWL=~OIPD8%~A%&0x)hex1RO2twJ
      zWeyCDn@L;1J7J`Xra-u_a(CFy)67<Z;7BTK*!_-#hzn>|;h>pMni<;|rII*Cn^qy7
      z&Dg#B4w)&#wkF7)WerwXJ~Q286nN(|OEbhaD`VN+0+Hzbt~>e#JUg<(W)N;H*02am
      z1l-Y%{u&4@)eu5ZQp+@G4%Mik#-WyL@WL0s3ISKH6hsSJ{a7_8cPBp$ZD<$pTbW_A
      zbYSEGfg}Q0!$emH5T!vg9e^&+l61dLgC7CuVuOYl9ulZ26o(3`dJHp~NOatvS`ZIo
      zlOK-=EUHvIF6*q}QFO8BIU`>%73Tpl#XUV=f%!g;t$u8oo7&leZKgGB!*&+T%;#ys
      ziNVUo4zjH_lQ)et6`v5OuSDR~q^D@5hRu8cPtj^JTTBgS*4iy9pe-#ybYq9?MXjWI
      zHN>%t4K;E(Gczo(zFHse%YVkhR%s%kVGs5S1njKiUSLVIYRUHDfFJt>7OQ~grlR2>
      zYT3t}%r2Gj<B-70N@Dwq=^-;8&*syH-CIhUIorx+So}UKV>)+7jG>f5KsITl`i;CL
      z-)EQ}d(0{btm*qd7$aibgcHZb;y)o{a==192ZM=@nzLx)FcVLnXuKmXN9mM?1qeuL
      zNW($|cr~Q(;wj_|hFeoG2{8vbQi=FbtU-sR@miu#zA;>HG)|Eqt)13jVnk9LicxUN
      z>6obXTLr?}V%w_1@0c9wyhI4Cd7_DqL=Z(x`Y|C;SE+3xW1FKU<w_Ds0W~M&N#rFt
      z$cM8<?uxi2s~d9G&<3fDRgA~Y4aW5)!Ai;_k;Ky_VXRI<T%82CI$0idvN$|Lw7@~+
      zvknkHDShCseiLEcJ%xyT)XPVM-Z_OP{RW!C&C^)9T~Vt^bt`HusV<KqJ0$7VLsRHn
      z?z)6V$#gHD#`-Njy}@@28+maV=bL%gs(YkmDL|uTf$-*xlF39o6l#$|5hWDy+#{t#
      z_C~z3BK3}lcfLqemlv~s8wWnXV;`gYX!yyS=;@rs&S~tPM&EUopa<XM2RzN<9cF1J
      z(9GvimgHF$^Epn_aV*9OEW=5(;uO}wz-A0l%fv2>pbujhfQ2MZlS=cKVL!8Y1!wRo
      z3OElN7uo&yFo|n8izz&h+c<}B@FKmwggbZ{KU4Y$y^g46-NiHL=NlVB%RWZfitjMU
      zm|XP!C61ADGlowPRdM#<I&@NAN^6YT$6tx<b*PJF-t96anAdTq`CPmN8-00MuFk6@
      zoH9ta!0Re3%@LRhODdlrhm(WXC@m*(lT_~Iqu~OA?QP?|m)YbSh+M#ecAh6CqmD$q
      zyyj_)_qJDjwW^tXg9*rBFR|Qjq7iSQ9dDx(?{MS4tKw*Je3i?yiA4`E5-*b&Cgmbc
      zxX#4Z&36}L^XY9<IC-6vlUY!4uTtxMWp$||RkrGzu_`3stJyN<+qy+tAO44}F^-5+
      zGdXCoW+A<88smEVG*T6V3)R(UH267Z;fs6H4wVB8$z4Zd62=nFGVKtj&M|*)KO<Ml
      zSv&pwRvDb%PpztQ{e0y+Rh4V1DmTnm{;`U34PlaV!WPX;TyC<no^ATfstL>O(yfQp
      zX7T8?TsvpFymGnJ>T0vxf<15<yX8tDN3Ifw)1?+jo$gkP!{N26jWL(EP<QTp1MY22
      zR~SeOF>9AML0paaFRbsc+yuXIUH;B3@CT*-#A^J-vHS;{g}_eX#vb9tpzz~_s6k3B
      zfGuiK6k$w?B`Wc5Cpq?2Ch6iX$g;ou3b6ny6tZhMAQI1R`Y;rpJ@j;x8$%*n$WOgf
      WsyT>lx;D4NqM=Hi1y_!AdhTDQFc2C5
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOX?N2`6ulE1OdLTVP}5LCX$ZwxidaM2uoN5v4$cBGDNUe7wg+1vORgl7(2Xu%
      z`v>|jT27jt(+~Xt{ZT!=BY9CUU?Artqfy?w@4ol$o6*1j{rwMsllUc$9)SyGyRJVp
      z9vkbrw`SU9-IwdWUh%7zUNc-zy81P{z8E~sNK2Lt-*HFj6TXTgCZKnP@anai<NA8&
      zB(R&freQ5h*E1dac6LTU%nIyGJGSQ=w!dsxb=gan>PHA{_baA1dP3lAu4}ALy3+(W
      zZ`!7RQD7zYRtULQR%j+aGd;E}5KB8H*$3vQA%Xq`wqa0%hP?tuQ?CaxkTY#LU#}LV
      zn>PxU6d24oMV887!MJa{jH!YMTzZ>i+TCMeL`h(zJ2m#EV%Q~1rk!e4+P*+<YBfE!
      z+=pSjAIBkq({Irj4Ttf8zz*hTT``J}1kSvK%JuwQE>kk8y&I-K8p<e5uL8ZMRmG2J
      z7{yVxpprMr3a2ZbrY0?CP0u@zq)nV-7>gq%aO%yyHH>3|Wm&68mt8yeW&~7^eU1V-
      zd;~p?<COXvacBZ)IDwPw7RSi-7ah-3sBCjKfzvn}#~CK~VlBU_#2OA@ic`d%XO+<7
      z#ik5;R?`BzLTzNKHUCLa{>d(Cr%}d|N=U)nBr@woSyN2CI4%gJIvA!Ip)5;W+$HI^
      z%oDhT%W-@raIC{6dW5y(X}AJ1PL!pu5)Rmoq{dz$yHVOqCn&LuhO4;7+S2#3@4IH9
      z?n@5gu@|{7nbn#lTV^CpjMK<!n8gi&fv{qsRX}3)WhGNI0}h=W=jy&X6ShPN`m@bf
      zL-4Y!YT>!gu+1h2XpI)yCB9Zn7d6b|rod=dUO~kEhQI4Nu0S%C4cO`y+omtER(6@4
      zR=Bq{+yW((3~{$u1V}N9Cm<zOm7Zsmg9A|Yc8g(4a!X3)WUS7iyBh9czrZ#QjuOUK
      z8t%go=zCxmm9`9v|4WUn^pQnTLkTKMc5X43&G7yij1XQZJd{PBvsi{1M@3*yo52;w
      zv7}*ZcnF?XvHY#u8G*eK=Y|2>U4;_|hwn&-Hapd!p@y&72BTDJwNpte0^DHL`6eu^
      zr(s1&D`7;mc{H%za<zBH<~5KA+n49vubQ;3;jtR{nEDvt+*9$q<CGY>XiD9LeZ2O*
      z*YE>|Snrb03nsDT)ZL=IYO4Ee|F!1FL+g9uxGE5n&)T+h)0W|RYOea&$MB@*H9;tT
      z3iR+C>cw{M;=yjm?%nF5<?{~yYS_vD?BY|Jmdd_=eBw_Gj8FcBJ%4c9gMIv);0k02
      zG=q2elnnO$T=#QFC%lWH!1e&%YXHs@PI)EAH!!e)gA-gwHt^vFCO2{FdF(84XCv6j
      z7IqTn@G&v>;S+pH#A#y2xIZ7zzQ<=3Ww;q-6BoxfF%u1Ty&Y_j=D-35ut>rSILOIr
      zCp6p&I*c6Vf}ryZ8dm6LBcY*as7Ou=?J!}zmRXh0Bk)5l_@Ng3Ei5(Q?+{)!pjofU
      zXbSn~u~&(EH^4p|dbO~VjCqons!Mn9MbMR%RuaFm04mB<n8YeeH8-(|FMq?%$!91$
      z!-Gv&kp#D}aN8^n1#-I2&KEF<A`2;z!ULS*dKQ%kv#A!dsYcfQn1GLZ!0hqs>1C}Q
      zIjpV42-P4;sKuyWo&<UUzQMPR+Ui_YMS7Xpcfa!?l(m`)zzbls(4axK2Tud5AMq1c
      Mb(IMomp=pl17J}PwEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU+inwA6kW%$<7714oRC1cLqcpPWeUVC5U#O9E;t0?;EKFdC-%V}7{=+$xJ112
      z16A8!;35GMAmT_M!8?DzPxKS2t}_M)DHm1YVdh---fQi>_WAVhyAJ?P;(8nrfzuVY
      zZrzo?%O%TyV7nD7P)mVT4emSEqV#;_SrcykMmWnUM^$7{^WumK3~y?*#-d%ITU%Im
      z%_=C*mX7^UE;veHCxdWVRGx3w+*?yQ0WmGGEn9Q_K)OLuI&~HMXEI;<{OE-t&>mD(
      zE+`8e&2I`JH<ud~=qO3Y8Iz@Z0wWvTpPZY?kC$x{yJiRdP2^cxEzpV{+L$4MOZhD%
      zs-HGZfArIS-gfQaqQF3M10ajdglpibqChlTD=PzS=rNH%FOeiu#ZCz9HDO{~9Qy<=
      zd>1MMeK??<9~78RZiV6K|DmEWA2zWQy99RRZC72d-(OJPT(ka(e2q0KN{WDb__7%d
      zs<tnX*%Bs!SeQzI$!4mx=x!=mR^CQ<H`Tzru7)wbR8orpCF;kK66pG>=Be4%i6%N^
      zVmo%|%>H0v04I2J4Tw}xpZ{pG3s12xDk>Ov%d>ZMY6|MNx^heGi|%A9Os?ffwq+sk
      z*qx&WM(|S{8G%#li+?jBCVs{lf!$T<mL0VkGIY)TFF3!Ar;(1}oQY8_z}Ow9?pF<5
      zz@<2}lGk7ulVx2_ou*b+OkCD94bq%ZzAq~jbrNG*cSO_fg@xfe&}6$>Dw@b&b^Gc@
      z<bz;W+?uDdRp}K}z(-<UAflE82G?qEJs503qfo1RC3V%-?@sT;*XC?JY$r4y0dvZA
      zm6vs-?<<P1v(?2o!UDJPiy_Ja#?irfCtuSD41R1%&Y|lcjubq{2=64&#eX+fztA?q
      zu{XVf-RYra>`A{z-|h6!3idDK(Cg6P2>%I&0RG_rPloslJ@^|(xzp1$$1(JCMMq&+
      zrh{TT&a*-8MY&3b;hqw1j60e1@G{crw>UJ^z%a*f-hkD>X}xOT>{BGpMc*TNdvCOX
      z^DDUW@ipD-W6%K>JVNfkL2?Ej)8!L#ea6%0JblTauPBo@A;6Jlz!ty^vdGaBL13Jj
      h(d;w0iU~p+q?bud5pV?4+>hWI@*EA`@8dTE{0G3D%0~bI
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVKO>fgc5Pch`F-c55DTVS?Xn=eGZa5%B0I8~isFa37P^1<iu}N2ni(^Oj8p7Y<
      z+yh9hDuGn)AP!tW{29b-YC>B$<uGgS?96*__s!>DANB!MaZ^Wx;cm|f%q{+kk4*oy
      z<@8J`M$+udfo%@C=L^ql4Y+MTro^(8p4ADYXbD-U>WDIARHtck>U+}J5?!ey#xOh1
      z2GX+4x)Th9$ED>u3~WfT$`F%%%P%Yud1E^E8e!bG97{fAs1>ILDYY4*EAFO<gCT7o
      zjzj_)vIdgKF=)k7Tb-OTpyLEpG%QCngF#1lPkF}{47rBe<#wBUmfDBOsJa}(y(v`{
      zs&u(@pZjaBC+fBs2uBheiP?zbJTB_Ez;I`}XESgK3v}m~;tfIOpEZuVN7PA&{118Q
      z?#0r-MLG%$3x7Rsx~-tw4}0pPt{5u26Ieu+A<=RJuPYu|>cQs!J4?3|6oawqIKo@8
      zx$g^-m##Zq+x2NA*M#i5n+7Vl!I13<IT^$zAE?r^e^eeHxf+(pK#gJs5gK~(5y)he
      z)3nnlk}&A>B>gQ@g{n!HE4xUQ_mC-TyU4$%R0OlMrp65l>I(sU#c9f^W@^D4&d`^X
      zU_OL<KwauAU)~u<Y6s``-(n`Zt!-2K05Uc%`F02@KY_Z8D<RZ#qEt|oqfm3SRjB24
      zV%UhjAhEaKeZ=DW9<F|xP#mcKP8xrZAwLgMRYEEa*T&V?QKWBzs1zBHLy6WX4PE&+
      D6-5Zc
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      IDv??L15=l?00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM%Wl&^6g`udsbk24hLZ4T1EJ(a-O!c=0VGrffpE$qRTu1>bd<O_cCja=d<y@-
      zqDWLc76>*h_$b63J46ABL|E8!J$LRo_i@JGzJL4#pn+QoA`EMNXQc0$2j-#fzp$LX
      zF8HC)2V!XJ`=;k}FR<?m;aT00;2kbX4FxfVv<%X1lR}<!_jpezNHFAr-I1_tz2%IC
      z+%tvcIt&Rhu>8_0@fkA{HW^X}rd{IGfD6WnOmsGJ$8s!jkD*=u53aw!R(2R-o9-^3
      z17)K@!6|8FG|WL&5ye>zNz5}u%kpT-upGWM8g{w2ZFX(WkTu+%Y44bxCBMg;G1(P{
      zjoI@oHDp%?rr&lw-m>|SJA#mi{b>?$T-1<9fg$P8G{<g+`En&JZ)$2yd3;I3C0tf;
      z<(IK`Xy#5|MG4Cat}zr&mdV5IwxQuV%9K!_i-}Yo^Op>_%TtUYU^7hOPrXT?(j=Vf
      zi$0SO*(rojY2=Cx0{G>?_YY8N#~pb+{=ky6$Vqumh)B{avN8tkk>hZ0(>8sdQ!`U7
      zr)Rr9^`Ongz};1Flc6!Qd^N0NgQPOun=NxF8S*~|^81BpVwKbtr6-O^IxXb}q_a|N
      zba$ilB%zV_G+B2M33gJ|+A+>l>&Hk}-y!>kToL5xt<nlQtfGf=WXV7vg$0}s_DLyY
      zsC8PUPp!U1`U5U7yr!=ZB@uY~QwZt=fy6UL@M)Fl6+?tY2BY=`#aGDGKBM>^SKIZk
      zh}Vy5M-$)z5@g$y-VhnMB;0*c<8v&+56G56z%iL5t)NOYd5Wu{9#nrLKwE)Mt4cmu
      O1dydJ0x|m6t^ELp);!|?
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT~ixn7(H(wAB5$jv86yu3lv*OLQ@0*0YQqP&~AW|fZ|tN!VXQ{BuuiQ?Umko
      zucN(mbo7?m7F1>&yrGUi%JICr+hl3%IF%W8-+e#MbDr~@=gnV#|Mok8A$;nGM__0>
      zUyj|?cD4Jl(!FecJ7((l&Db3?XT)~2Vo5Jr<5|-zW;e^Gp43f0>IE*<97$$#JBIGw
      zD9|2HtfV&53#o*fo=v4z7q73S;^|~OB`~bMa^Oh;A35oHQ{bXnL%<!HTLV)WBb(2f
      z(*kw<1M33ybA>HE2!SRA%?J`~%35#WRI36nd;%?MHm@(0bDMfGrEMCzKu9fQG-F*W
      zX63gv8AKhLh-co(mIRb--K>NbxZH0siy0cVT;9B^XUxfg+9`?AuHX#Xg6PC~KhBYa
      zOv!yvK^HDC6SI({{P}Hx)BSENdv-F2ZuI)ma{|F$Q*cQlG@1pqa8EDJX(cM~I<EL}
      zS)j8<LaXeuS_=9xKsnsG-O?WjOt{l?;@gyJ{Ud?;D$-0!og)hT2sC04?S5Pp=&GSm
      z*-xiY<Md}TYN%E~0kO-<TFa;0G?%oT&a!koSE_7gjaWQi&gn(X%og&Ls}7?IhB4yD
      zIF0zqKI|I`Vhj_~Mf6#s|9?2y&ZmZ&v}vPW<tlLYB|BN`l5Vc*rGl}muQ*N7YZvE4
      zCER*WO8kJ9e%?f_)a?a`9!Iv9W6<&1)>Z{p;ELN4j^k_VHLxyqpI0!4cLlt=no(wV
      zHD?Mt4=PwC*_}5P+=41_qNsC)vg~>`@}eJ00;B&~v}8^*j0Ij}6?7UZhy+$--DYH@
      zRRu}#D)MHGLY`z!HkXr$+_<jbJ<Rapa3^k&-B2)#>vGSB3Z~_rI+jHsm@Jfw8GSx0
      zuaGmct=u%OO4n1z#eAMUX=tUAUP2E+>Uc4G&>`<4jv#x5&jvmlAcHjWYnVIaU*jRf
      z#sQSaXnDj>4^HvfY(b3k;1~~#AY`q8M|tBp05QG==e^+ryjDHxvnK5$ioF4+EgsAO
      zZJd$O|74(gzSVH#0A~}?XYfa!!5iI+?4x5J7nj0=*8H)Y8$3eyFX%fl7k+~9F`DIT
      z@K;1V*b{peNlAZ#G=Vsy&U17Ftyn}m?Qj7qdRe<ZEF+2)yn)*o#VW>;!VK1Mll76Q
      zhHY*RZ?Z%T*T`Jr4RPcl+6YfyqfG34j_s^&@SIe&g_69f9%5`mruSBrSkPM5SeT3z
      zsLkH)1oBebDZEWEAx+?bPIHe0^@Sr(5v~etV|`AnFI-r@3TYqSVZkL9t>s`<YewCw
      zwCtLFX~Dc$GxnKtc$?WuXLUvXK=(t0!jU6%vsTdq#D79VI3fpCej!W5ujrw#S@v&m
      z9^YC4x^0jO&n`<y>7*`}N{TD6P+_cE5(Ay#eJr*HzK3#%#0K?U-s8;eBMes4uwDBd
      zP5uKT{pd=k(}^Zzr#k5r7|BY<X#h1sz%~BApNJkK5Q*;NgGd#;)AH~hC4Gb@{7mr2
      pOzR2G;pxAm6`<EY;tBrd(C@PUWD!4Rk{*15G~cp~#`p$8{{TzB3&;Qf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT@a|6#h1l#Ob79c+2t@DHjt>?S|O}G%eIh;-P8AIlvZ<b2!I29Lyei?)Nk!
      z*7VS05B;d7wGRi7W(0d-?|oS7Ti?2T>-V1@KLIRY+Y1-NVo|Tg50oS2I9~av>czOl
      zkF9vgDr@mW#jJ4CzGoFpEhv^@hDsTw=!J*DFP!3<LM}VG1D>}Syj<gDuG4Kg-4SxF
      zZkJ$iTS}2(;vDmh%vL%?0m;y36&){z$T{W?VRC2%=-W5UyqeQK?d3J2!V3)SJwxA7
      zJt5W5Gp3T~40GwOg(w>Zu2teX9Ym<dDyfywJi~l<Pf^Zh35D;9s;ky2!-w$yI$t>T
      zNS48qB(6R%49Mt%UxFJ$G6EQ;!iOVS3D<GMi&2J|j_qm{RK`t=F-S#jHM<cGcj-r?
      z8G^`!j7#Vdfv05LLa2@<`b<F>rq0D`j)Fj$mf^)^aSO}vLGmGrSubJ?p^k|-Ok~`_
      z9F1$<&@FphW1Xv-tlMpg{wI8x$6YTLXk@xhOk3Y&EMkcYU$AHhr#eSWWl{+V_wc}r
      z`xnuuGn$sE=oK3HGB;&B#3Lb_#wUi);m$$Z((G(1_(i&p?pei%Zmr0;ie8dmTGjb>
      zwVdN-M#*U;zy7q5S4bnKD&EdVkB}I{a`!-Og|>GTsZ3JzJ>J+zLybL<6l)+=<#x8m
      zmY|iAaRoBN=)X2=dSPdO*D|?MmZ<G7WNcuQAy`uMg2s2NhlgUNkd-~WkuLRZ=s+k_
      z+BK?Xp0BHR@@@3z#0WFUo4U@;q^49VoQmKPix-o`)=k^H2SK4Dx&?(2?2~jrr$?k>
      zpHykU?-#<Sx10V6pr8D&(d!Gn1x_Lwt05TuhQa9UDMo4-7w2RRx1+N)%tTKxeuBs^
      z3`Cu4>;&=eSgs-QmE2u;Ouu790mu@eZ4%>a3iAddcuU_i2;&`A>EA)JrEqwHr*w+j
      zGotGvQqM8$kXoWQqyKuMo*I%Zd|?OV3BO=t$#p9S%Y(HhLefD9*a$>9C}^Kzy#>~5
      h=UpZ+o$6wo0Sq{RF1)00F1$jTPKkoij>i@}e*sh~_WS?<
      
      literal 0
      HcmV?d00001
      
      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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
      aLQfw{p5+RbJjdL~?I_9~=C14u@ckb}C8c2i
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g`)IY}+gXg%-sx6vY;h^&?SYiAh}~fi!At>4Pt3S|;t1?F{ZtrTS0&
      z1->c|nE2oi@JAW%wwqY14{S2CGk4BC_uPADe*XIY1HgSev@k{3>ZrbRB;JdG6P|dg
      z;}|(GPS^B&=U4=x44j@mlz!;Ea(AkYs#gAow?m7CBw^#c-ik>qqzMaAEXUJMT?U@;
      zy^o^hOTsKi;%!p~p{Lcs-VTBG3Dd4tp%Kb7h2NJc)*XFBNN;<}GfxSLQn^V;y3C(L
      z0<$)3%n=q#u3H<1@&zaLvUMcerV>GCYMzoW`n{G68l%|xnr?Gw!2(!IY)qQ27ZRS-
      z&YR(6eJZRf?CKN3YUw{p{x#)r370J_aWN)^+qi<OgpAR36L6EbjHU7z!^m36;5xxt
      zIc^^cBXYQb6$>~2q8kBi+`?_P%XfX@hkG5R1L=y8+fW#n8nc$)WN`;&3njwbA7#(9
      z_N7oZ*09d0HeMe*C(MtDiUF0#`>u`62$tHd*6NI-0U<wzjr&8$)pb8;%Uv(J6otu}
      zZbsobFK#=J6ptlX$nZbQ*J27e9>f=5n&%5_d4wddfXrGVLEkX*b%@II93g?n?7f9~
      zUfClY7Es_Fp@_wpW1o=`wzz(Vi}`D3SpJ0UDONuteTt1Qd@_ZIF+F719<mij9x)sH
      O!ofX0Cw_Jj{=sjHxz{uR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+foxj5Ivm>8&V5GxCwYc6bvD-;$0F^*npq`t4QF%w*{ucQkz}foe1TN-=SZD
      zmSU9;et;ik*^^BqlvIkX+NtT8?$f7F_x%3z^A~_Q6f{H#`HEXJ4y^aqkr5o)ZpDz|
      zNE-XH>KJb=KM=lA_4b4l7-eh65u4tj>A6z4a$TKjh!L_EMQ}MpLkFQ><uh#0C<))T
      z9Q%WUCiHMNHn)Wz*q*z!Rv^$zLKkNYq~*$O%c+Stb5|b`B4zfNEVd=T?1(C}%@I2C
      zwrk4;!bG}#NTFQFO>GlmCi6`qij<CS^bv;Ardba)9E*i|y>lRTCA%h|Cozc28iojC
      zZRs$!j$w=tk`*Bv<OuU2r4Y9yeeOeUsy)kQVVxjc(V?S@aH(j!Vxv~w5q`Z}gjCVn
      zWkoI4l_hQ*#^k;o5EhCTZQOaSXGNoXa*r_Ho~KfiwG8&XLvB`UolX7zmo$k<q&3{;
      zk*H5fi`+V<kRc?b7s|xLln#|TBVH0&%xai9gAhjOFmQ*@#k-p21Zx%7^Mz>zJbweN
      z?3!J8lfYdyYO9^NkB1r_5PDBZEqR_JELX=PJmxCPn_J6-zLts_4!H#870RYU$?JHk
      z+~X^Y#S;6|k!sW_XhRsj;4ZaZG&u3_l)Re1D^_gvY=+Nk&#Z#O4IYjt|8Ybx0u2e?
      zck<(jAc-C|Gxa_3cwge19=0|R<69t=iAL!MdNb3h{u2y*$LN>3?^RyA8577cULL(%
      z$~CqI!zf(G7+W0AxyKoka1*y0*dN(PMb1p0U}8P1fTur0&!*;h^9kBl+&j*uo-~cz
      zapoIFk2xR$m39Ojye@GuCWcVJC|)r1D$;mWr!W?R|D!O21w7-_arStQMMfcxR%qs5
      D;iy9C
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TT|0e5Xb+U76YA>YXQZoAc{?kL=Z24;-!dFr(VWFXVj+yoGD>KqDd-@&wdFX
      zeex9<#TjSh1Nb%k9_pSpKu{jYOis>a_qYGuv-$b^`!0ZSOzY4H6E(MPt%<i{(+W0h
      zw`PTMGqhI2b;o)w{6PBFy0;>oz;e9>QG2ZBI+BFZ<NK{h9VZAG6~(eWt0H|{IQBcS
      z<VZp%$KYjE`ho4ai={aNJtCxwo*RV14XeVb%NACw9wKP2N9cJ~ZqOXTiYuYd!e<C4
      zZrQFK&Jy}^N1U5gLbAvSq>w<jfp+u|`g6r%4E1zrO)iHsX0;83UIPZwgpRW9$|v>p
      zCFw6THFuZ2WtJ>hIOh;;Cc{-bAWW8zUzxp%vi6oneK}|@CMU|wtm-(!mHIbjLihj1
      zoMf=-Z4gG{q`kyq_R&@f=W#*D@F9Nl%)mvA5L!d8DTMDZXT}JTycDv?88DG&hI~^O
      zPEe}3o-d0c;0r!7qnB+M#h8xEgsy|M?t7jig=@gV6)wsAy>jINUv?~HWHF=MCk$Lw
      zcFBe3i)==lhwBmL#|JjQB|@s=)%|5TZ>zTJIOyjwB>+Qw;|YFSpkV+yT6x~aEvF%c
      zPSprJSLf~M;IWfeB_#P2Naqs?`i8E2;VUwq8!ml3wzD~KlTlObK8=1}^)(%E5~p~@
      zt{f`OIE6hOVV^Z50GT~(@&~dn5{1eU^jW6gK@aZ6=$U<bhUsS;^m7=D=o_p`=`s_y
      zKVhJ-gQ5HvWU>=Gxby+~HVRwsHOi{J-H(5MZDV|kjWrgo#H-(Mj>mcQ;vuIn#|=_y
      bgdS`{_d}bQ#5E47VHnqOgTKV3P^7898=V24
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtX+fN+V9sUmNvVe!H4UP@5CuwY8fnDNUTpO@43wCh9c7lzIo!S}L0mj~)A+xg>
      zr|CUyoW@DhB)zPg#%ZfImBIs!%vy@oq<OK_^gn2;^trE9TUC9i`kgbw?m!|{QITfO
      zWq;>){eIsWKKjpl?*n)cZ^cj{&@*r6lb4JoV>y|-V%hUa&s_GB3tl#pTr}LA=_a#I
      z+RWsVHisA@0*z8SnK3APa^{jb>%~wduubh+PIA(8EhA$+W6Wes3R44@Q>L4<9Q(}J
      zh=4dQP?vJ-oM+hHl#$7sQTikQgh14DE}OPM^Y~^f{Q|Lzvl%C6rm5qcK-G+88}3yu
      zQaqRU=T%Eq&hm2H922Nsbj>Bp$#a<)|15FRR@H!ITizjo?VYLAC!Oh<5{RUjl3G-v
      zO~ZDy3siP?P095x4ZES!{=Dg>GDeQ}w{~`gl&H;qDSE$#&*1@@GoQ{I849*^hUEPG
      z_II6&VXr_#IVGd6>$uhE6nH4*nuf>1>9Rn&Wd~zUcg=L(PBX{4VW;_nIXA~*SxaW3
      z7JCqvK6h`jH|e?5)ZaB#1A$%*jcAgyq=sgH_Miq0b#!H%`cCAtGp2jmFLd*`Gs`*~
      ztTqcDY(~5Vi!n9$mAdFGny%qFu0XviS7;+<Tns8-ZRJuym6^|T(tf{&dNdF<s{E%)
      zMb+jkJAKqO%@Yir5ZsXCAa}JqKcwOFI3Q=k8d5kw`#CFP+Oy`7OvbrlrlpZl4O_8I
      z3LVq%m=uaG5yxq{b6mq9h=mI0vOrBXpJQ1G#28KxALXj}=^M^lnY793oD#Ta%vMTt
      z6|e3mfQ_KnVghmbn$&O_X9xgeanZC1?e@-87%Cfd_E+O9ai@3c9rEn7Jj+h#4P$1#
      zh9MYj*6}2v+M#zz6&EyI#8ZT-=lD{a(-^1|&{(`V$IVU{-t2-*%B+U8gl=rs$&xDA
      z2?BE(=4B_uvQo-q?W3-lGd((;TX3!j><zoR4)2hwp{ivx7<ixtHWp)W1e(f;9(J6J
      zY1kT`2Ei0L{luA3wpd6_AkZ&Qdm8dmEPC|F_$1}TvcMMCq}N#{+)T$n4rwhbU(XiX
      z#jV9M+T`n5nd+~QF8_!B;lph3WqeH@{JKEfr<YY4QF0gP*bD&^3SxsUQmH}`(Vwxh
      z0rN#wLrC;Kub~C4vIH+^81TXVqK0pyJ%*Q<oAV*PL5{2OJ%NMk09D<mJBrYI^hMX1
      zVIN=By#-V6$XGeALuUc=nY2D*>UnZ-LXYA5q=xgKjaaMkn!uwY4q3{Rdh`xSTOB%)
      zrED3lYh2ZxImKeR9$!S+Pq1eyaiJDJ#E)b6(T01-&y<D&ZgAhH(y@8lam|#GBQtCu
      zRbQB-%6@h|nX;d17?%xSJL%-zS@S5lfo(1wOGsGYKFU<`i6Vxbe5yIG;eAyBd76YM
      z?=DGEY9wi@k(8-MvWgm6AC3)_+>U$r-oe$Y)EnWLh~LJ}-n-b*Tg1K1qKNwnsJnwb
      z)6E^X(e**RZ4Eu~_BG1&uA%QYJW+vteBV!Bzz&YERjM&VOS9MolXuD-I@yZ7SinP+
      zi2GLXu=0WS@CdyV{3U@$Ijc~!{ftD$NwN(5OLCM_(fBPKT;aqwTctJ^m1@lw2viFR
      zKJLii_ETCOuH)gJ#-6tjjjU8|R<ayYQdd$!whfg0j2=nv#^OaBzJXc}M+%6F)%f%+
      zj6|MV!w9#I4*1J7mu&^yON)IULKILhXTJk8I<_jOt75ejMV#dWzQw{l$D8hXmi8L&
      z?HAC67n!)1=>N+Y#w$36*OZg3z9WH?yP4E4sB#L4p1|E(1c{8<rm@63obc}uA6aDi
      z*TW~yC&8ziPamJdeD=xIRIc#UNaPoOqGb8+U}C!Y<ZV1I)fMqX^HdRET%VukyofJJ
      zfKWpi5N}ZLO#<ZS^!1l4@UI!iJ2;OOT;eDJ;aANrC7etfL~xm!Dk-r;CY+h3Q{6?(
      z47L{#<CfW8uHa5oQSd!>#2xm-Z<&nud53;Le1E8n=)R)B2vstrbu`n!#Lx3B;jw`B
      z!0@1216$&iYd9!hBW0l1D^<T|c0c0bKZIh~Qi{Q1bUyO(K@8o>^#WStc)5U@caeP?
      zRqrCV%2388dhR0D6Ks@H*sO~6C-&2y35kyhiNA!R=`KanjU^S$ZYJ{zXEGXoTm&u*
      z1<|z1YBe6dsgRgxjNg<Qjg)ifx6)rj0kxI_;>{drTc$SI1$}q0JbfF_jCWIQUlCtE
      zE7cd!AlC%QSI@qU+U~{<Ib+D*D1+Uv)!!J^-`Vf~AOroACI1&e_-|#~2X|j!o1d2W
      zCR;;xKfi?nFa8*S`?@q1fcr^$wHe$g?n!Wu@{!;^Mfsk_XB7c(IuZ$}AfoX8rVn@Z
      z!~X+))y|><eIiOSuR_15#xb!4W1=3XMH9brw(+KK!8MNM7Pwx@_H(5;2UOfZv-GI|
      zO%lwFPpg|~4{2%+G)3gC8)WS900nLFh{W_QeCIBjsP0;UOvY6a-z{TY0Z;59x$VVP
      z(Se<!Go-$)q@G`0f%=cx6|z?|)J49#zJ6)EtS$|;_saU-tK~iNVuL(EUX*>YQaLDB
      z-M?ZX{F%Ccf<+OpQ|R>~en2va42IhOAej>)iCWQzZQ^0<5|8jdlKt2x4)9}n07K#s
      z9utRgTnzCG_Xs~-hp`}1xFkkZTs}Qyg18t(Ko3J?$)6~Ch{&(WAl7k4Dw(x)1M$D%
      dv(hKBI6<#Yph=uWi#Qd^V!65Aq^=6w{4e@75sv@>
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7CO>Yx15PeQUmTVUi+CurJK!Bu0bt5<+1#yW$3JMgdRqxK$O19dpBd@ou#DPE5
      zOAiH!1LDk&Ld-Zh06pa}YtQq%H(&ef_xB$FI(QnOB+waUg*;S8>O|(pNj8#BpEx;o
      zlT=QX&9#+zF`XLg<R|YoI{_*J4W`Ic5n*R|sACtPDzNI&!X>HfnF;ZgGghGL#!24X
      zreuQ!vvrC5I>{3EM&M;@VRn08pwcr3x(0zO5dvHeQARyN4Gn>Eiv#L|B-0;@$xz!p
      zHB7a@^1#F@-B&hYe-2i-34s@j7SZfb6G809LE6t+ga1d@y@<5?0dD>?<y~iKJ0aF^
      zJHj2@6<C>T?wS55GgkLhPWspX)}N8O?Y@9e+}DNF^e_|%cTHhq{Vw6|mu8FJ;#h&G
      zpJm$iQkCbL+ONOO;?(3+$_MSn<{-cm0lDB-u}$kJlU;&nG<YlYLzc*D2nk)H+bi-J
      z2{$&+5p8_K)iWP+jWPei?9W&xKOzpJD_EtIMt~c0mG=}`=7`OoSbI+P6}L{wFM)Nc
      pp7+ITtk2@+8mxH__x*c>2Xtedb<cc=M|5(XoE5}=Oy3Hcz#qK#(=h-5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc@~6#j-5OScO}?&1xhAT2G+#e0zip+=IH5W14!OS8}kt+u;lcPjW3{5cxH
      z#0TH?QU8JZ2fRKS&ulMH9@_G-J9B2{eCIpgIWwRBz5f7U7K=W#G0g6oCGENK(m2qZ
      z{k*xW34S27oG2EwJ;QdmtvRK=J<Ar_x@(5!eDE?%H+7Q`n?@m@HH2j|ToAdu6Plrb
      z$)>LL5#!{%kT>&UkzsT4+}_EC$*t%s@$e>tciGBvKNtck+HpaF2c0T>=wcY3Yz-oq
      z%$t0zRNUsaZfqAgLr>D$F-QbEFYU^rR|>%}f8Inwb0kC{WSExus%VuQl5(^;F$SNL
      z;kGSH&|gkOD;QMfw6Lk#l)Hi<4Eu12K|5z*R9waYLwg0@Q*?G^&QkBX7z}+m!^{?V
      zT6U7dvk5b+8+10@MA<}v7r7}aByXq~#TX@2G+vOH<iF9P|Fdvop$M!RN~$rgVgffA
      z1~X;aWx5%g7Y%AdlLAMZ1U>~Qo2x@q;29<wGpW*G@Ca9-#>Y>^VHl_vIV}uZ&;dVX
      zG_67dHH=~iD*JXx@YXs|-r=RHOPY(gA9J|n!+b06##v_-w<U+6L~32%$~@6i$;^_j
      zZ>&CgswXn(gf6AOtKy!NK3I{yngm_YeQwj0Qqoq*-r<k)@_q%%PtvsPI0kjqG`YQ8
      zFdRpw7fhHt1<Rp&rMSphS<KMw_R!16y1V5Sr<s>NA3A8=PqSsTx%+|0)De_O^c~bU
      zwA_Xu{S_L?l^j2!n`Q&99l%BOkOc(Li#}TOqM!E4fJ<acFMs3^%G5Ci&%%AC*k4Y;
      z`D<`~T)|a>@!}e;SKzjYo#fx^!g-G|l9IFNF+wN6UG9;u#P=I9`|g5|l-+9Jy_iIp
      zKov?mf+?4Ev=-(yotDDH>cbo&wkB8JV)m%KM}hCil^EG41cqH@e-QXjBJhjy_>B<$
      wAd0^(nMfJDMkZDxGgcwfL(j^6s+P?50TF3K91AomM48bD!hJ}8FZE03fA)gL@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      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
      AO#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUYfsZq7=F%HD2#F&G6q8h)Ul0A6>sRkYb20x34zRzn3yt-Tgh(eI^-Yu#SfYY
      z1WAmaH1S6npVL+tqMuBY^|a@GpWA!7A3r~T0dNb?bc6)5g-XNRwf3xiv;Nku6iip{
      zyJpcXm&}^w)TLwA8?{>1aZMI(xDHE}D(;F^t4T+PCeWjr&635|we4M*cLiGQ`fFAQ
      zbT50G4c9K2e39i=-S)Ry=j@8@J`xD0(m4U`d38rd5Qbr(4ehGcuE^C!d0RT0)^<q>
      zM3<|1tCX`GTRjIaHMeNj1?HFk!v<xA3zE9~Q%h-Iv1iA3n{9`{B?B#Jjc^q+Frf4q
      zc}H5V+$>5O(=jN}dlm!}k_G8R5Jy7!8KyyE=Q?l&BRZ}Mbe;>wKrcoGlBp(kKg?{i
      zpx~8`Yv*G3bqa*+9RabVd^F(%F49ZNN6LV%e8iD4Fo8*dHoM~HtWtvka}sQhUhE~R
      zEzsAr5g1eh^>bjiwL|*YU#J7)cMROcJr>p)%zC!DFfi6c@Nf5wvSO8`jt9RZ_m0=1
      zRWEW95zNBSF?Vin(~)XQ5oBSg89p{}Q_V24QEfPRxnQf~HE{8KPpctmqwEOtiwW`K
      zA@EiVk@r^a@UZeX!Y7k=!Fx;Q2pu22vd*9gm_ZlUhF^eg^zf;dS2SpT1)Nahpz
      zzC$NQzgnIkzLhw_&@nED@D*bpSQCQ6?eavu;5--5fkh8L=3@l-M8kF5AcJB`223^9
      zC_72QkDoD(PXrY4mC0|2OdcZr4qEvADPNQdfmQOYk#8M?*zh<<e6&-}Bsr(ZHAt1y
      z3?-y#DsA>^{L`5URP3=!;f*PS!!)?6<V;K*<8~M?mGdbIQtPuMeFc(OZ_tkdMp5(>
      zWPGGk1!K7HDImJ%Kg5nfPfM8I`Sk`G)~P`aERi|E?A8$;9-xoQESK{K7|$Hy(Vyfc
      YS}!Ap3WiYi$o-Kf0&;;T1PtNnFDY&m+W-In
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVI$xZ@66s(331P8?p7hK{^=U~Se<3Z!as4>CaaPXo7bg;=dLuMNFw>%IN4}O3j
      zWvpf}-o3n6)%~j8^7Z}k31ADWd1M53+F?(2{Ad4FCNDZ{OQT+md^Asi?D}z{Vwv>1
      z-6%FPh+bqZYWhY;VIGb^*~(<#Q*_bjsHPDpG*nxMH61DeaVn5kVJl^0M3+&bty-Xz
      z7(X_DJh!hyZ4Lyo>l<|e=P+uiBC;5FQN)<Qgf%(uJvCH(>o)?rPuWp|x*u!HhmVeV
      z)QP}u?O#jnvGMxpM!f)mSr-N5EShsMnxX|4`4m-Mj3CDqy8^|Vs24ZYv9?o{eh;*1
      zZ-X`JvplxLOaT#3GR!m`aJFI2@Q0f+x@6nTf_cPyN9k?wJ;7LH8E{0q6O@VEv<Q=!
      zBC`h5jMm_uHMX{D4ZLa}GhWqs=%eC!nY%vb`&j(5t#CHrjFJm3eM##pEaH05qLSJS
      QThI_ooYzjbOiczWKVYkH&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRu};G<5PetL2123G!oma_6oggQ01E;MDME-=-Q8fdMrj;54$W^dAu;d)d=%m=
      zDz(gbIN!Z{clXZz`u_L?(8peY8X=lwrFfCAvJ%ByXA|L6<;2v@QjtqrC@YFG&y95=
      zHFNRkq1!4^xzi>KP$wMtVv$NNeJV4jXUjaHd8sq)t_i*4c*z?$%afuNWH_~EF2|{g
      zPDX_Kjd@lf*09k+15H9Z)|q-JXJciDo<-=yCXwk#TJ7TnSa(xh5U%2X>=Y4*dvsRB
      zE#wj!i7X2qzQ2-ODkp>kQ`$t`X|J&R_pQ$T`ZxmdTK@1DzZ=_tqkBd@9`sJn-m(71
      oZVe&ZkZ=E4O<Z7;y~AG`TG--<3$TqgH}T#McA3rEIjW)i1F{W&fdBvi
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTT@$A6#jND1d>p01}jCIS}!3;kEKwwlwN2-qY+dP2XLGok^?!IoRgl51s!!n
      zADwZ0)CZ^28ON8-h%>G2=!ozBD93N@#6VkL=)>8!v)8xQ`qsDh-~ar+2jDbbOCX{!
      zy5WSzrunhCW%xI2XTu1rt-z=RwW?7!J>T*SKdjeXFEFa^4db2A3atcU3f*F3R83mU
      zuWeeTKta_M##f7n0$g-IvYbiUn*0j<))d;#+m0PvP>AM+mK0)F+_IHK6i3oXB9%b*
      zVWZYgI-t;-MjUOjdLoSk+GW+BMhDszx{9`A&4sl!%Ud+psuph--I7^dGCf=N&BItw
      zv3-TH!=<TtW10!upQ+V@ZJpanlJ1{L<2bU+(zidMPo_*3qGq|QFp)c)lLnVVOG!M3
      z7ZP~>fg&wz`+-$U<3;2YI!w<qw@YrFf#h?=hf6tG_@ASK0O#>i0>l3Shk;!+E(?^O
      z#t2R^i*>tNRmkO5A4PcdM5?R8LzCIk3^`JcLd2o);-#u(dZcc{q7)}`g`vkGFM(GW
      z{XQQ$xq?%+w&ufNetp^vow7f(RkG@V?K<r^r_eL!23gB-!;MNd5H<TrOyIm|bxI*~
      zkllsAV~0&j+HtdDnG%1Uq&aLkg|oTG3b`Fu6jIlvF|$@fTZ%j+7u?V*S+lk%IjQw`
      zO7g-9iZ03rKt47DM@TE^nT?=#v_OjY(%ij^2v@+-{5^E$yD$BTuDj^TNAIFfhRm=0
      z7r~Pp`-uk_i1Bgh#3*`khUW&3@-*GRz*89DPT?2^oA~3L1wWPl4Nw1oc<grcHn$DP
      zHvQ||0f<x!;sl;;K&V-!5u?p+{tkn>gPy%x7?4@^!wdOkPO)nY_-A~}qs)&e$~4uy
      zl94&eL2NVS`#32UnZYu%)3&nGxN_$~yo+MH7q3jk2P<S|PPWkz0qfZlAkOMOhDNv$
      z%Mqcj70y0&Z;&itnlxP{jWalj0(<REl2^p*c#B1t!v~nhI^KqlMSP0)u!ALhhxhS4
      zmT?m+_zA1{1s`gz#&jumn_Q6@BE3wu4C0?=kt0MHV~J$7!`3}R2BZ8x)++l98I`j1
      z<@3=M647KplGzXYh*ptBwX8FNjRR%sYn5pnXB%b0CU1-CvLqvO?Ap|zka7!2A!%@Q
      z_YX`g_r7`$lYj9}qx`+Ptk<be4_!>WAEEY<ZQ!)h%i;o4;q%Iqi#jQVOSs(h`x$RX
      zh&e9)#P>~fYG>2pOuWnCsAxj3lvYee6q6a=Z3Q!+o8@yd^aV2blF#-IhVT`+`&tLp
      p-*D0l>NtbFsySEkz&Aq~;~imDa&D;YVXc32fW%~r#2FpM?7y;tsr&!{
      
      literal 0
      HcmV?d00001
      
      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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
      K!k;yofB8S!{T8$U
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_d-*XdH6#j0TG-<k645gItt5}sZElv4RP+LW*LL;R`DZz>mHtjauHqD03hT@E)
      zjQXICIzGe5_yWA*3~e28eAF5LD97*IT@q?w#)1#oyLaz7=ljlg&bj&P?_YlhZ~#{#
      zXi_*>C{@!7=2i1ry0UDS3Te-}=B4MorDD2lx)sY!SE}W*<9g|$vz(rC7OheQA%)H2
      zlP;R{n9MI&GoC_tdERm@g`?veiaGAgn4ayFh83cGvkH#;v4YAdgcj}6tU_DGbIB~T
      zWEL1bK3+#Ys}JbdIx}y&fq@!TXc@6fw)ciYbFw$fK%>sA6+<)P2A)H^Li@N~vL>oa
      zdCQ$L^F<w&G>Tc%wPhcC40-c*Md9$q64D}()NnGhF~^z`z1dbMY&Xz~sJ!hk5Jn3X
      z&iRV8<N~Qjl9|zG!ss?&U=sz)*}lA|NxDJcXM%XqKn!gP6Uof~9eSUE2%;>1uHHC{
      z$&In~tMxQKz1ax*6o#Iv+ha%}-pa>-fwaycZx!s4^rd_~VBny9-Bj^R*E{1>Y#9+b
      zIc#7^P9j!m_M!Dr1Fy)pHhz0(OW!%yS;~}Viq(pJl`Y=pIgjk31<MO2rX$(gSo0`2
      zKB^~zH`fijKXNe~!*Q7<&RRHmVN`}JYL?5ypK{o*$%c5xt8;UfJKUR%v7b*G7{*8p
      z8JvpXU4_nncbso+U>v8}n|@%0{>HGwjm!fii9RV2&Iq5;C)zQ7UUO6EdJ=0U=Q)1n
      z5u8)l*2vc`&RVX>a^AoPm}Y&hn#HO$Ij68SnQ25Hj$sNHM8c26q5+voMRAE0*e8aU
      zB@t6$|KkiBe2-T(8x1jI;4DU>VEtQ0itMg#iC2(#^9nm3NA00|6blNm{%$j0=`K5!
      z?kI{1O#=f_l*o(S5j*Qt-5KkIEf;7^57K}rgT1VAGyi15TzPTvjd~!eS6*pco8(T=
      zE3Y4}a?9~%=5sT5hqx-P;nW(Q|5=-D;WI`z;1ohQjSjvUz7e*flRF8pjZX<MO-mur
      zE&)<IR?wB|UqPZCD$XFl`+QCj`y5@fI%K!+7KCH~>?B{|(vDrsq)Ef<4q%GhOPr26
      z%+3|;N$p>U)kzJ23$(mQtV_hoVGAy6yp-=>!|SNwbx_4kI^hnD+^msbcrr2*?0GD*
      zMT`QG=ZS0+dEq}Gw>2QY6d+&ciR6=5m-EYl+>_cKT9<i3*WMxi72><ZuMpqEc2qTo
      z!+xY%_K8~d2_&hzlsiEk+H_SCT8EI<p*LW2izia(G0o-yQqyaYN~i84(Z}C?kk|hD
      zZg2&Ivg_AphgNW?zB{slBlQm1&5i{=A@@&N`_G7d9ewy5ui^`w#FvkB%UF&77*9LN
      zjC}AK-=tf3(FI(W8BxxL2-(&06I$Z0-{Wh~pV-S~&kcmtz0?C7n-2XJo^F;;=hpC+
      z$V#JobZnw{fKTiz%JVga`37-(OF_TG4t$S6{Gf^XlQ9$!Q+ONi1SBppipaXlhival
      zt>VNg#?Ie`(I?+lF>$`Gf<GrW$owY3e`I}bX#mNML28-r!h4)1nOfd90n|-aM)EZU
      z;t%vZz|=Gmx_&`+4IjoYt|I4y=T?!wixD}G&+>>yQn*#j#ceUt+d<hb*0x7vyTmPh
      g>)QCEb{qR}hu8mI4%{6M+U-X)F>9JQq}GJ;KL#LiivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g|_HN3nvU;sY1D0~St*ON~ZJOd6{!G$gVy1sWJEZPSPFTP}!+3qQb*
      zGTtd9EOg`M&bg0s&b{;X{qYH)iE0iCLv!dQd~CnkGagNaH{`K1i}@&?xID1K$O(Cr
      z1c4vM-1Vp2^9N228pDR9aMvb6yEk_FF+<)DV&QwX%fPw}+Kcc81WktQx$s1M!H}t$
      z-Fk<5Ez&7K#kv6<MFzE2@8}>|13Ba+DjUck%TTg}=iDcgo)bRWJ=dX*<@as3V~0ZK
      z%c2&KM8t4v{rj9V2K{-px>hsghJ^<|3H#2CkdC@M`$S%hV_Hq6?^Ecd{RlC+@v@?$
      zK=~SFPc$LtN{x3Ijq04h;T)T9>EIT{GBk>p6tCzDu2Dn_+f+GP(6ECFWh9WwvlQ);
      op)}U9x3p<fuE^fXM*YLaB%52JS!8pU+Ef;_Up5T;B&Xou2OI2U#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1(NEJ*6vn^XZj_B72!f)ZB8uBUDlkA9EP_HLP9=a-QA4^>Sz)wGSA_V?U*VHJ
      z@xqG<N}>tA8viKtyJZ2wTYXr2@7ei&_ndRj>7T<N2LSq!(Vz&VR_qOZ)%aj+>6J~(
      zUeP^s%hQYAdPy%EZpC!<%0{{DxSn2eHfi!a)3r5(1RAAEFB#N4&##&VPateN%Vvep
      zH`zc~DN75~j9IqjWdugz{{u+m1VRsqib6$Q3>snrYCMsPK;T>qVblmTWG&l#wy~Z!
      z-323GG6kBlPQfVU4A+wTsxjmhEhaJ?ERSk=n2KgBRcoQG8(yI(t1=M}Mw>H@Wk%_&
      znYQ)Obkm8&C@!K+!zF>SK=nOCis3S@2-L5bo==}B@+4XHnMAM%eRVp54qVf4RbU`c
      zRK7Zf>*(aYtywlh5Hk^UN!U$+{y;EUZK>^!;Wpv|wNBZy9NQ=nx~L&3kPgI~mCZl3
      zRWN-_EqVna$J;0p=#vem3nb&&lR=pGT+UGXlx3mlI-9bw(utggeu3r_?_(ZYzv8*3
      zu`ZAab^~W_mYt`RIfzQxX5L(+g5i!Xlv2tEgGsA1te9H@EvE`_oFrq5&N~}!!JM|_
      z+{LQX(kBaoPR^*x?~=fIIjCGITx+Q1Gs4|8_X^+9<UW5r-%$V6_i5nsoUcqHgmL<2
      z&`4YBkvC~g+);;SQkfYppry(@q(YuFtB$Lg9SkM+P~R~y8t!TTj@HpoTWAmMZQ(uK
      z_>9=LDz+7|gGOn%^$B5hm!=LWIr#GTcWC$NPb6M9_4MxJ&M*J$6dvI&hB4{C705_4
      z{__d{&+_b9<~K*nJfnTV-hGK~yh1PDB87KUF5y0XCXpv$8B=)gXZDyX#(bRFECw*h
      oj1+pNSVx8A2N>c?CAW*55n39M#69xD<kVplY5MUqLXv{<f8fle0{{R3
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVZF5sa6n?h7$)(}e(wGAA1p%Q=(wEzcFPH#Y(v(({(30C=MeW=)OPi7=on&vJ
      zKfoD>AK_QNs#C&@%s7668GnVpM1A%qMoKkx^h5UU**$yCbDr~(Uw-@XCjc|JW1>$W
      zwNdlzEqB*_U^nkqY8$qa50t&BwyXAz+i1#$-Sl>L>J6nucUvmin3H#1ugZ-HL*Rsd
      zY*$@Ay;<6l>q?-%tjYrCvpvnuIddriqbXHWV8qw8JyogN3vP2$xuvS)b?{21R#Ddk
      zF2;_w7BA9Xx?Ywc^kdM%0A3-MSiETBgutsl&VwF87{cHHcxl1JF})kH5I|61C|jw?
      zytiGF4M&3!2xsf-Znfw(Dq8Lw8fvpb{8zL8gGR;~aMyg!A{$b5=w14gZkoT*j=s%u
      zK{c4CRQza{I*YT4>LpLff>fyx&fu(xw+>{jZO_6voEJE*>e>2z*+{!hh8&5-+lleh
      z+i|Q(yI|oWM#(Pm3XHx8uU!O$_i|mNOvD6cjwI@3)FF)NB#mRz#Du`vqpHfn6pk?x
      zS(V$ergS-(m=?Iu^I@i~9fFN_EL_670)q^$OCPf^)nVfwJEg0ftu$3?0Po|ni4O!4
      zJv|?IW#L04Sr5Bz)$?oaFBUuWYqM7@T-9nujUB1^`N+b@m=&<xa=B|yVC-)ab2u;Y
      zqPCf~Fo%q`$pIiR(YxQePW(_cgc}wXuqZJ6B5UcoSJML_7GKn5^Qna_a+G&Go?iZU
      z=nexOpu3wEmar^vI+I&+R@WAsTy|~Nac(VMUvV;Pg^VL`=|6OcfZ3@VqP!>f$cL-+
      zgzD#@5)jPEXm4gZg~X;7u0W_z_ZsVRzM?0{sly|5O6QlYM+Y3reHhl$hdbzb<ev!6
      zu@LW%Q(B=`AHO4sC$JJvF|_&w!;cY8j6X)?dtdz|*DwsOvs{xTJ&g!6dx|F~+mCS?
      zQA#v}*XWEu@jBjUyAacKVe;<bcnfdl68i{GwD9)N7|TyS$L>>%(Pcbo@FKF0gjVve
      z?PMStc!ud{poN)a@Da{MgZp^z8NyLR?^3?l!ZrQ9o(x8V&wu|lYP2x_ErxwBTKMGl
      zBMkY{56EjVYUC%sBbq*92j)o+kRwHT?v{xE76)2^|79yI;M?qpRkpz$*5MbFzQk9Q
      z*WuzGO4vggU*j&m!KTl}LOaSX7Y}JGNe%+kDsZP$u?Gjs<l_vs=wX?B&d_d=zW{xW
      O;xlA?{#Jd2pZ@{v6Y<ml
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM?@wD*7=8}D?QKhe4tHU5t8C04g_d<HUfuXHp)yxxjK~B9&A5dNl$5r)y&d=q
      zlLgJ9iP0q*AyLR|Y>Y;yiRjRvS(Zf?jUSv}_Q5|ze9kSxK5WV2hkMR>&w1bXyzlco
      z=U)3~Z5_aah^wd&I6Rpt#HNii##}5vo61baY;(?zP1!T)SkAEWrWMN<a=EN!I|u!i
      z*>7dX%zQp;sZa!hGBlPp7<e){ZI0Ojp7vBGWp@g=!cBt$N<2Gm`r(2v05?1WHNB~f
      z*;klJn${^JnKlJ#d$VIkdeE>^(%#%u?5R{<psn|R7uY7?&sk=!T(H32aPM}t1GdF(
      zy9*N&rq$Lo68B>V?ov@JP<Lym0CqxScWE;-X-_%bCHxSm4`3H+1S;)pe9Ex8EX#Pw
      zhr6*?#U26uj;l{+XJhefCT|-VJ0Cy@_b_L2=y>8(&p>}yyhp<1R93K4=~#El9x&}T
      zKlY(f#s2?@xall_1GtxEPMYLI2`8F{WsCO*@BqRBzPxGoZgwIM2jyXN01-slqmj#*
      znQ?(V;ds;SFp~iX1Bl^}fR~rZ=E;{goJfqsnNX%VEyX0T>vlO<SlOduBrYHfehGd_
      zmQ9#RUp{A0Y(u6+m55<xcQ*R6voy!}$*2@5+oqWcoyb}<hHaZ{K*%Hm*@87@9!p87
      zY4X0CReVrliv1+g#a96+Tv4VRRa!C5g0s8%J9xk5q5^)7@)$UTN{)fD1LrDQ0@bMD
      z$Y61uiKO@S$SQ(MaEptP?@@Qc)frt^#&spSuDeU{EVx8S8P(huaNry4j)q!S(Xfbm
      zXRVA%YiZ+e>8EUHN~nkid7>$0x7xCyjBolyT&uXxrF%lUuY``M=4;ixbkV#_qpO-{
      z5tW*{2u}$iIafu3`&Q93RDwSueVT?eRrf6Tgyz$f;>KlJcyxUQ!HCOQGJ8wZ>Ea^$
      zDr0e$5(L`VaXWnIWdDyNh%VIO3BH0J3i(NT^q>{TaFla55*(k#an2)n3X`0taROPK
      zgoOdj;aSXM5a%$2^LP&L<9RG$7)88*&+#I@qR%Ca;xdx>9b@<d6Alj(Wvn-OAnN?Z
      zJ>>9l6%X_F3RZOmk3c8Uby&xvTq&$@4Uci<=G{pg#u0LR4$bW62s@f*Tsu18MS<OP
      z($B|?N4FTh$~Z5(zj14ZHAQzvU9Ca?3Vfuwga&C<t)QM3MNmX_RB?`_3M8rW(6`{;
      zD523Y8M&LLrhJSY+#t`=!^16y>5%3wN?nC?wFEt?sja$4^GKHlP1W4X%&(~wQP97P
      zospn_i))WuEvQ0z6*qppbDj%C<qT1nBhN1r(N~D&t3+`gjd&eloaL)nAl`3K0dEqs
      zx5(_<Wb7TX_byK3J@R~>Sbu<7e2CYu$f%F#y-cqao?IZ$pWsV;if_696F$Q)Wc^Qk
      zfxpPSd~eT`5#QqZ#um@NZSj0<i{~p;W0~il9md_fr^Vsa!&*BWPE{(0zwq*_MISk>
      z;61g?6#tLz-ey;1U4q>b+17lu^Ru`_EY^s@4^CZm<tV2b@TAhIM*cp!n5_cc{{qRS
      Bm=FK}
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-OG^S_6g_vGoaT|1mKI3VE)5!58x{z)8G4You+^u2=qJ+{^Qit-iwIiu1Nu?X
      z{cNB`(&lo{J@;|W{rr0W0C0?L3kIPvi86mC9>uetJgI2nr?Hg&MU-8ObZWsQ?EGPS
      z+@fiMtCBz@X?Lo^F@Xkz;)#k>+9A{r?gBmOhl00W4QFzcwg=5V!R*e*(m?^P2MZpd
      zwyd?;w?Qa*SV56c4pbyBv-_cpdtw+$LM51wMA#Rx(l{@g=~N|z-QYi0ZI<w`kY8OQ
      zkzj|vmYmyp7LVk)(kH$AEl1iH_E}zmKgqte#yqpI%GhRf17pFvt;07st;Q?XUbt+a
      o%(1kfIy`s^2WMF4+TKq)Hc(*%xTs>2m+5Sa4;Y-+7#XO418{g`wEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2hvj6g}fO*?7D8ZbF+BNNJkbZpqT}T{l1o32o|xs6ip^+r*waTWxl&-E~R%
      zLm<=#ifAHH(Tb-^JRrm)Li`leGrO+6jU9n3@66u0_ndpry|cgl`|}e3mvF;CMqsYy
      zHSGO8*Otn?6R7HCdv$SpV?|aXKe#`$D);LfG6+>*AS*C+SKgERv3otXhV~}C<E=oC
      zRF?(Llsgc&_uQLGR#i|E=t}|xX3Kt1i=je7?kcygg3#VxD<`gtRauXch^vn0L?019
      zU)U1JF8Nhuq6Y&Oaxe`H2}~YOX<`rqIS7ne=tZC2owQ(}Utp;0cxt_|x1)kD<&LZ9
      zQ}!#;-I9T$-<!s4wCjWdh0eOVE5#yDgeuwyd{z|Qr^NZP*3EXMSF<;x!0~FOl;w+^
      zyQ&hEbZzGHenr(I$M-@5uL_(`OGKsD{phBu_%+Y@MpawB23{AK>2%#})a!l_r98D5
      zXDyt@q(H{0>Vi8m6X?As-A1fN`>>fLORJ?zo9$9sA%)ot)4T->vzQaeX@KU$OymnM
      zO+jKW8F*9R)RBTx<=RKeJ#KhR%;S=t5{~6${w1c?oW;6Z%&BD&IDI6o))8Af?1bxb
      zPla_^QHx*8fI4w5Z};N^j`VI6)vwrksONR|da&;(88reG+TM$(P^)ppLJ3#daWbzY
      zE&}7-)Vytgvp>{s#c~k%fr$kS7+4e-OP#!!9s$b<x1{S-WyERg$7lbM96KKS`W{o-
      z^cz7%tvLEd45wy%UNaH;y6352$(3QKIHuQm<vXrlDvE&ZuL!1j|9bfO$?(VP81Hx)
      zxf=ZQKJ)wpcQ@!IxQ-VOVHF=^@YW%QA7P{@9%1Yu4>B0%a}-%VzvuH?4B<PR!~;yw
      zVkN<N1*iDNj$)D#Q{4A)J%iU`k}^qjGG_57j9j>Qfax}}Nk8BrQ~EJRoK8HOh>XD-
      zI2W^+n8A5^Q)0|@VOgL}W94F&1LS|;OOk$H3~(3|Oe9V%f?Sh8poj}R)5&M)e=$yd
      zE#3oD1RZ;ZQA#v_OA{R8Eh?m~ZJNP2_g^USQ&Rn!QfR8B(A#*YgTyACZbGjHZo?&6
      zKTE;%wqV}HdkoPXTqB$g*13#~zJGuZAAI!~3+&^^PvZmK>`&;V`<P_-J1u`O_|Fvd
      nSPS~oW1yG*5A<Jz{+rPMbb-!bnJHwjg3r0?2^6@7RhZ8Kk7tvQ
      
      literal 0
      HcmV?d00001
      
      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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
      E0q3LDu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM-%}e^6#j00Y?@>PX)6?3P(&&r6w=aGTdA!WphQ#JN(G%hEy+#Ty6k3lHy!-5
      zoY8UOgX6RRjH3_wqK@C)T|!`??f9_Cz2~0$o$q|-ocrs)Km82g26i$?2u!!_ZslO#
      zsu<F0xw5%b*;@H()iqyAcV?w&bbRS%kP;}qFkTuJ%dp#($Gb0N!_Pnyxa_#?;I?NR
      zRH}~cOWWTt?4~7Mfn3vR^f#0BLDyBM(cM4tT^7*pnYQWQ7nmx&(sOQGAXRmmGKVAz
      zI<goNNS5Zdvmi+w8JrUsuA8>p?C$SM_nEP4Nr4M>r(syzhHI*QWK8*crYA5{f4v4|
      zm}u@1$CLgcc?Ib^Omyrx<;cD~x1Gm0u4Hgo;L0nq*D;Dq0>Tm)IhOk&kU+un4Ywbd
      z(ykpeWXCrh+soixG8lws0sF^_!FxL1Rw|8jT&E#D&$Qb$+w<LSLjefPmg+~v-SS<Y
      zFUKumHnTcraFyjEpSJXsu(7)=P}A@YC6;3S#FZ`c;E~bk5STYR!Jb9yx~700_^eq{
      zwS&OZH{ueHc}%wzpGoX?ed)0V8Qc&UAJnIRTsJ*m33OA(B5ny>KP~u~H;FBfwT*r0
      zb&LjkEN!VCWA@6%tw9=Wud%bZv5bv9!!;V5G5Tdn&#SdsDD%fUJ_36#x!Y~A^PX3!
      zo6~Bs`Pe5l+AYb#T{PRa<En<<*)y4~qM`Cx(@|Bo3*I+orz4wdwr~31vH?!XPbHC)
      zcC%lByQesvqIaz7A@R?3Y~UeDb~%lNJyHBTO^4&7m_E_5sai9)<#gSKTsPIM4)tH4
      zMHPiTQnPL8RxQKxB>VkKzB^}6EQO5TEllxANb*bbOQ@HD@1D*tiySR^uGVQ!@IP1n
      z5qf$42MmA5T>|I%JH)$4|AtihcVyFl-~w%<p*Jq#E$(;^BSdAoYJ?-qYJ{0De~;n$
      z9>x+l0?jFa^q<J3{~7?y_W|>mz+?c(k)`iD43gr0DxiBOI8k&7-NUqqA^%OP{{+Z7
      zeHFowDqlHVjp1!FMJCDA71e7!yq`RYs3nlsk^$mW=-cP2qlCF2ijFc@39jcEC6x97
      zaTT^WN?udW+PMKR_Hd-6z_kcWU?BoqL?uSKMbI>1i;D8Xc<L8i?_nuUyNF@!d=TkY
      z=--c2#O)|j5g!DRh=vcjQgn;BgS&y`9KcxguX&Q9S0NB=VzP&OshDD;(6viJ=yK@X
      z4_&~0JO~sk;1jG6o>2IdE7hi)**6Hd8V@+ZfRq0t;5r^g#kx%*icG9n(*bPQ_JhSz
      za;di8KrP03hZZGLFaQfZd=?u3Z5BDLG{AUp0P0b7)F`N?B2ZKvfk&@ryl@8Nu)TzO
      nZ(@v3%+=%ATxm<lYBvMq<8zh3(?Gf}u*HA%tOz{AHgf*~$0WGZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TC)s6g}5*CfGFrQd&yNBeW?BZdI#nK}BgO5>f<<pa`*>I71lZILMEvztu%l
      zsS7@UkE(jdAi6-6SlH*j=FB~3?*9C~1@Hyi6<CDkD9(c)<0z0Sx=hq?H|Vv`4--9A
      zNwb}0i5}#cs=y{JUdyQrA{mc@)4{b0GlCt<u_DyE|5`mh5|8!><*AHvZaQYBcOyd+
      zN0U%SC&eKry-}gQ)M`ke3xe3!vCh5{TCJyaPb(KYeZIdl87dbgEPC*;L@2d(`VI&$
      zJ(M9#^vXj8Vh$?=n0(d4+<oV*2Ny303tb(nlYBf-$(bBPg&wnJUnbh*4@En>(kWrP
      z`y9hqzuTMSNvMvrVXQuy`q@}T@Q&kHC7np7sY)wo66*iwW#b;70u2^X;s-1jpWr`?
      z!U9=YfzAW6KF(P=yED&N<!A~EHe=oYg$4iP3^o7L49kA)^$c(P^%?3vxocs~%orYV
      z09&--h;OKh4wl6sR>gO$bKk#b!Ui@uGxO|vabLaI$tr4QixM+7IJ2;YcZ@Di5#Hki
      F+`rZWgv9^=
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2$w~u35Ph9}nJh+)8ZRC^#2g&-st6Jh0zrj@;I%X9#11_j>FEjjJN|(u!Gj;*
      zM~O8ZQ9KA9x?a_*rR&xE$Lkw_BkbmpVrb8F>_3Fc=R!@5m>m1Jp}OHF5@!G0S|i7?
      z6&E5<d1M&sbH3!h;(F#^kLMz=3>o`)FBlsApVWZb^z4KoyW}dSWYOW!6|x>fS?D+v
      zhFiJN4BkXcd93VcRh&DOTG}&)bo*dL^Sg_QC?Soy2M-m7T3>2$6^CPChJ38t-;02&
      z5jQf4zsQWelMzFw|6hT$Z)vcIO&~61GPU}Bh{Hr0?b*{>n6BbcB%(Za7+QbNW~lr+
      zAND|s=<r$ha%6!#R#-sM#ig&f?2r*him9(ko==!C+0F}U&*Y@AMmCp_%_lU-_f`d1
      T$A-&qI@`n+Vac^`qlLmJ@OyR-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5Pd5j#e#sKsGK|)gC1=3s_}vvNs5|4h}Ugdp=7%y?bhgz^5DtDgFnC@
      zWt^=<y_k5|d2eUm%<P-@kJmQ<hiF?^V%VLi)OiS{!-c$y#rVj%4do4w6A|y6OA!jC
      z&x9{6<QeKSe$O4r)x^2>X2RDDWj|7yG{eWaU|>Cl$|BQ`#zHbQ+@GR>jsrD0X0W*?
      z>ZMvF49zb^ssrg<@?_fQbCMKK0u|^}hFoWF#E|b&I~zIFDk!7EP;&z%uF}vG@sN9x
      zhBw^E=W@j3z}y$fyq*R$qvQV1ruo|-N@HJK1g2;8dl?7D2D$4gCE~8+Ng@&pn+)y0
      zJJWi8tq|KFH?(?l3Mf(pER-@_hE2%mkUPQ^Vh*9n6!u?GeI~MmI>n+%ww|y`+(=Ec
      U2AbLXS{B#QBDAye4Q!$G39);2zW@LL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-}+b5PgN^!xaHhQSstI<Hx~OuNp5zlT8SkV2IZO1xvbJ)9n)YC;kmjCLa6&
      z{wU+@YTzV?&YR9m-@KWAeSdrcxWHZk8HU4=j=gE1JTBDGh{2`z6sQMoB4G}0wUu_}
      z>tR@c!%!Xb3HKD&Bk#U97JbX$*x8F<U_L`u4kCv0)-t}S6-IOA4+Jp}r7+PILvF%V
      zOeD3|g1=*p)FVokbZEJip>FelYVy}oOM64zj!(MOz8MaLi!7=ol(5E7X-O^GanKXy
      zk@r-}8uq#BawC)bU(m77lEfY@6+0iEWVoF$Hhpm?6Uy>@LuZL%66tF#OjGeF5>WxW
      z42}P{KxB)(VjnaMeTPFQhdf!JfMSX(a8q1Ok&#a`Qhk{`k1&bkPTx^^BPWA(viT%f
      be?^V_(r*Dau$kt!Qd`G1p_@M6K?B7fwM~7!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>%TC)s6o&svOl~zvAg*b-FS-bZ;$Bu&t8SuJiWId-K*V;OOwvJ<2^u?9`V3W7
      z_3|QJM3q?Z0DY*6Gfos1fCP(~bM^1<ocZ_v`~tvpY~_(**zfC6I3B2w3)M5C`yxCU
      zr~__dVV=AjC&Fm1nq8q2*^|P=c{mK!Q~sHUitB#(F*+5UgrRUYij?d$y9~>%tMXxD
      zr0&0_di*6$#K6|`5s$^Okqo&vQp@BmL$<!tW^fwAt|%dkMHfYs7%DBP#fQ-#66T0U
      zN?7e-hpRR>(#Er-lYEjf!?V`?Mj@(K_3Ny6$?UX?VDMZlAZI<_MSki%a#28zp>#ML
      znT~ibEp>Um(tW!c2DhoTFb&1ySkOv07*=m*XQ<uq5ZI>wX6YgAAq=`<AyP{SWHWSV
      zkJR^oyq9Dd*@fUQ+&^i#On1q)`CsAq-%z30oi?G0C5o)T@=QQcr$ZUf3Iw|o)PlVU
      z9tKY*Sh>>k2?qXm())p;{}W~Z7i#|RR6Ce{KiBqBa0}(7=oZ+s`=g;UcuY|St5_pz
      KhhSL8CJL7T+?9#|
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O>Yx15PeSbMcAex&{E1*C`AGetl$db&=p9LR<vqMh18R?nWV0~cIEY!=4WvM
      zi32}?ABC88SIr4=u;2K3-pu&<_n)7?0KCSt4jKZZxhdnzT*s31%+d5s{3X}>(iP-(
      z#^${A9W(_7XYxYETAF#hH#wus3-k(Gx{Qt%=OiG;0)4vl<c!oGj8}dku$cyxAs>G}
      zNE2%e3zao*S?owocgxv~oIv9w5m;R^`?lbY%X3O*?oS1pS{d%uC6n2yGIN39GHLIE
      z+)UfATu!lk{i?UJad^a`=ggcN53<rZGJbdADY2#DhqN=R%iM5KRjURXT#F9^!@Bl6
      zWt4v}u=4!HF^`hiDfO^|tq2>qE3lUGY@f<}LheXTG><t<Z6@`xbgDYnWYeEk(`~2!
      zbG`EDFc|z%Rn_{}zw)XwRUjI(oi5R`D5&V*sle91YYMc24H$u6z`q~yYN5?L&_Org
      z4fF!utof+M)f)RXuGKiet&l&g&$ny5gLUQwFLs7;lcSiiVp=bM;NCY58o1AUyCOHf
      b;{nIfRRSL3QMi8`_7R>i_JVvHJLvueCq|$w
      
      literal 0
      HcmV?d00001
      
      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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
      b#}FPzxEA3TxW#@Y!Y|<g49fNLD@y-gIPK)i
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BOG`pQ6#kA{mRV*Gdo7A+VGq32qD>KmDFqghA#Nu<+Kutvn0pQXR;!>z?fX&D
      znX6b75iRDN^PR^x-<)}Se|`b5i<Kl|gq^n6b$T7`DAp~*%{`~y(O0aRY&Oa&RJvr0
      zZ%&oh)NGPS5LSKDjwS-tbGR2eC)`q99S(Z-2&0Ft=Y~gwcz&}+NEH1hrx3?@8Y37b
      zWGb%57v0Vcn`?EWnJ`oF8%o!daV;Js6XC5J5DJz5NIW2nu$4?$&sV-mtsd7el?k}i
      zYw&&O`rd&Rmm0z#i5bG;w~=9)Kq7SY4@x1d`d!oDvTNTpHC$%lPCY0>`pom#6txNh
      zmJ62%%fG*lkp1xmScB|UJ`jk>k$nnIO5}(qo7sB8*ke>qiM3_m91~*G{RZ)qf<zrM
      xLNYCJLQpoM*_X%?$F^Us#V5yg#F6V)2OPFz7IV?eeAJ)Ag7}nVWS3aR*au7*knaEh
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Gwf_ai&I)}1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyZ)?*~6vm&McFPvCt?TMGb<_Q++Ey?KzMBZzRTPQ{+ls#PHoeqna&Jk}(XZtj
      z3krS!Ka}_+Hf6XmUnKY6IlptB=iXnxzyAdA1P^Uk0=1zYdy^>i1}5^_MknJ)#Wu<U
      zJH^Q;7^yJO$~!hu5h1YnEYLyvT%gow_5_^H#8;y<Ai>76z_y8pIX96L@8re%`LRH`
      zZ3fDQE3j3R$cmGGY<!m2se=+$T`XXY4K});<+=1isfS)Wlu2^b?Acfs*u9utG**8p
      z{VxM!Vh0s$WQ>}?exqB&UL}S=2LhWewy;epiArBfJqT4S(7ZmiJ_{s5V697+-j1Wb
      zice)fR07qm@nzVPageQNo8|OVkg(jmr;FAf2^?NgvU5&b3XOTcCEUx@?Fl@+?9d!N
      zm-{b(*PzuT71;Y<EDbp^<JecPf=tp%(Z%EJS_IrTTB|s}7)4b}h5y*6r6s;Jz~XEH
      ziyUpP%3LkM;jEL-fsI!6#uO{9AE<n2O;P=Zn_u&^Tl}x)kW;3gp^6@EbI&D$X}E(O
      zjv0LS68s(E7Ef!0Kbqq1b@Y#HOp@2n>6?G^W^@uL<$zTz9Fk|Dj{6+57gOQ)0Ly;>
      D`_{^$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_aU2hUW6g{)cS7EV0s}-$^^$WIzjp>tGt4(PW8my)zJec^fzzEy0yJQ(a|A#-r
      z2Tdd<KKKLtQN}y76r0vW9}HRUxifR_J@?G~`1$QSfQP8Wp)nM?-pG3A_N|WZTGd8%
      zM~J{_jRbGJAMl#@){i5?kU6o(w$-=2uJy8Y!rLN_7{jt3bgju|TX9d%Go*N*yWA6p
      zw#ylE_21lMs_k{3Fho4H7ZKEiGS}}=h>q?4h+=HZ@f@+u@TPc?`@dF7P3pT#eUs3U
      zHIPP*K`)k?3!uRa#F3Ebih+d?T{Vyl(KQ395Um<8kYHG>J03qAxh)<v>{ee*?YHfI
      z(+(V&&lV%1=L{Lv>VNZ`97=V$kd}rfE*DD|2d8T}b7(lQ+dP4L468jM29GUkGMQ8+
      zn-zIUjU(%5Z?{bM%#e15RUSBF-q{a)m!bGiF4s!0i7M|)DpJiD5~n#y>ByS4aD49t
      z7d^kjz-kQ1V}BI1`Mx7f$^YqnRpj$PfxOn~i_$M6&8H`tk=Cn7#;ZuSt4O9(jL?_H
      zC1NcS`Tz|viUsp4GUoaeOXkKDm(B7ND`q}2Mc&Lur?~!^&S<zn|2L@*@QCVcQKzR=
      zX&Xy;hCH6*7ItVKw4!QKUZ9MsD{V|6sZLW!>eCgH3Z<@sd>AxK7PqlBQ)p3?%&7SV
      zE1w92GGc0RPqj0`1G9En+?kWhGqRq$d!Bl5hN{o0_wj%z(wPH_Qj?~CJlFJ<Vw&OZ
      Zd`1mL(k_*1C=rq~YA~^`ZfHYg<zKIr)&&3n
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U31e$6g?|Dmg6WNHY89=X-X;Bj$=X70*ymjh!bL(gpzpNfldcxduuBrORg-(
      z?OXpw|3e?>3<*;@)9D*C{HRXvt`u9b)53#xSF1heo_o(-z4_<WUjS~PtU_V9)Udny
      zPc2KYJ1xCfF0Na=#ci+rbDNj!9~>1?hM9fiz|bwjZs-rI`@H6<h%uaX+=kv;s!8PW
      zd4{NMv^Ya*YXI8wT+?n87{*#oom&hE!=tTg*W(?AGyci0XIlEE(P?fQZ91AT>v!qU
      zjwFk%n6~MyGF(fK(vI$ADkNi#LM0GEQo|%t43TuEG7gfhK}B4w<}{2W&M>`Y+I*+m
      zs&cn%R4pmqsTo$qa82<ZY(~ANNpk16{=Z_ReWJl-0e$gj)0t6;RMgO+PTQ#QI6h>!
      z*z~;ivaa`fy?k#eFG^hA)pys|7Re)qNwZVru6e-g8?Mu0NWW7(N|`4F^~h48NCsnw
      zAHS27y5KZC)3LX?*L3O(tVER}g~9`A)WG1Ir^L(*7i9!j5Eaj8NMIs?1uUw_F(hS=
      zgq_!rhfZcuXojodNPg!P!nF*xRNNq2hFlpDK>2h|&F5A)O3<orPbX6mX(YvPQ^PIX
      zCeiIKiM}1C3lxU@|L-*7SY}X4#c^E6iiSI)HKW3$1ir*w6<?jWh`vw__prtg<3Dx{
      zi<)!xl;D{sqV($;G|6bvt!B9V_6+HQ9CxmCsN`|i@Eo@wa(<xUYiv>E1H<ZyTYUb+
      z*)_+q=s!UXRhYmIzESaz>OXLM@Lj_rY*IIx0XyCNJ*Vr|_=YKN;<?dZQeMzto^p!N
      zGlnQ;#EqtZ8pM5;Gj*AqDP@{fdL}VNr>AN47z!bQ>Fi6)WET!`CYw9N?C-Rt;2e!9
      zq6C&{Tp_|c1YE^=+L`xZcn=rojR<5|CRZY`f+XI@#UM<MX7Np7&&4R2V{+%7WYhew
      z0b3Fu^pT4JGLpJ9480$MM*7fsd_)kD+XI?~cqQ`NP|$6O%=%yZDJZy1!lg`nEK?9t
      zuiz7z>Q!6|cpuTOLX5N77f8Rx7<(=j3rEQQjq3xEQxdjIbtzNjDl+7p5A27W?N{wn
      zECuwx5KdT<_vxpye`4YBOMG^Sw2YHG!sp+nzR0~m;Rvh0A}(wz4jj9H7@@x-=I_b9
      zr&P&jNTZ5H)TIXBxqM$kzONyV4cwOs6W9#Yh*^|m?nJUjDE)zLhT&|R#I;Y^S|MxZ
      Mf=CRz#G_#EUkoFexc~qF
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7C!EVz)5PcK7aT<pf(iB=sAfX%*ptUNv1tC?5kWxkAkSIO$v~jk^$o5LE-S)G}
      zsS*c1fRCyeucN4P1ri5)-mKrenK$0wcRzmtIKmqXCBmK;rOtI2I13dz0~PiM$J679
      zbQ51i7EHocfiRWViG?y@N5!6V^}*GZ_sa<7Pk!Vlp9zPZQK5XG+%%L?(i?pjm%<4|
      z<T;Zh_9L&?oe|8wTF5F4*fm(F5uDECKP5Itek8|fIG6EM%mYcNkCZEdnTY)?Umlvt
      zH~)grEUMpk(j%;?t4PL#-6C&gggKWYNOhkFo(QeKui&gd9Cl}!+h>{E9YXsbZgV!l
      zn5XB2(pjIOI%h~jMuCh7wkMM@FK{eE9;eaiK3sAIZNkRByAX*uxXAxAp*m4%?8+~G
      zwys9u8XRV>&<1zmXN@n90h8ygaJJ6b31<e!%3JH*`&(3hFfQQ{zpEU9A#+c#!Kjt<
      zu!+Z<aRr{B&MFz&LW9|v?)Fkwpsc&unQn92yv5U^^q5<G)zTkx>Pp&PN!!@Pb3KTS
      sJ-pB(*l02`ne!5_mhBEWW}_JO)(wZ;L0KQ2>K3*9^RfluwPx-A0pKLF*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(J5K^Z5Xb*>JWdeA2jH`?umEDb7!w<f7N`m4qJ@TjIX1_Vdzib$$9J;O%EZDC
      z;D<8KooJB4SnT{~X6H9MnSK9weFLzI4HE{T<pv|`-uJA2=vybD-yVoaI9f(0LW`|a
      z|3*JtgnenNSewWa=7-`|Se^)6>#{eL4rlX(Y8biJ-JX+n`K~AA4^^P_5h2rPb_v-w
      zcPb)-*%D055Gu9`<i*JE$>>`2JV{uzLq~XB5ve2|C$oB>V#2ol|5*<R1y^cY2Cg2Y
      z?|1lprKL}(H9AdudSC`}D(K650&!{aDjY?QJX6U~wduX=BugNaIzb?#wkP6P#wOMX
      z8-GnmDF50gHo=qe$?<<=`0!3RDzIm<5^JvYg5onf21;!6Y4R9l_Df#{m_vml{unH<
      zP2g?T1U52{iJc%%CrIOmT*T6t+-EfshMuO#^OUTA-HyqmcNMjisi*bJSYa)4hOmlt
      G%zOg=$b0et
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7>%TB^T6o&tSN=rexig;OQ+<+Gv;}YYB>c+|j!+t1}TGMut+JcXzD-#z!fDdIn
      zEsZ8+<z~+ObN=(qoHJkFAD;j&u&<)P&~bv;c=0`BE`7t4{z&@12qF~<!$Cgx$U|;N
      zA~bo#Rg@T7GIWgPrJYu1r3|GjH*lkChC$EDAxvq<34drk@dY<L9yrD%3f;gN_NNTW
      zNX~_hA}Up=s4^J6$v+V_%MHXh_Gcn|;4@D!G%aa!Z^}bA(b=IAJ-W{f-8?;OV#u%|
      zmw^ZwcJr3s9>}xcUYuUB)(%6(5z(0X8FQa3?OuPqXANBj?bu!ook5?-IJCvBo4mXB
      z_Z@=-k0US|4c$urSAaqj(nys_-H|F%ET7c1)3bNzZ>eRIR-LSXN!A-|(e7|%L=AOP
      uRDuSYgh_TSw8`DTHaZ#joMMtIHg{er6p$cG>Ct_PtFF=+j;58m_I?1xt&Up&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@TXPge6#hE5T{bI_0Rki;G?$R<23Qrm1w<|Z3Fd+%EO%jcw|947c6y!ZO#-5&
      zr9N1eWmy(wQ9f9fWm#Sx#wxj}RX+H@gFnjhbkF2MvgO0sx%79wbI#YN&+I?{{_z)p
      z=TJ|eg`v0NHFEPcH&>Fi+^DRLPEDMgFN(Tyq?bS&!xrgRa&rfY5n$OWLtDvKHiI>O
      z)1I|+uI*KF)5>?e${||wWJ&0?<?fU8j@H^|ZMQ*-Y>c7fu;V%E2ssQ*XYzD8L6{U6
      z)}^r?T@0y`V^=&GD5uD<i9oBPrO=8EX>?*EL-)}1YJetQH|}_1vQaAtf5tAjQEo-s
      z&D*}CpW~Nps_Fy`+s6M#7hPV_l*gtSGR-2cE_*DKUqfYWOQRhf`fhs~2_*I1jx^RF
      z#gM27r6pq6IFwn<5CKMw<{HpM^&~OmBXL`YG9+(`UQCD}uqz~LE3#<}VIYCM44YTF
      zA8$BrN%$%3$Fm9K7}l>uq^WD3r!36&O_dq;3@uAys&G>j)uASNr7(<xdVgNfJGjgx
      z?v_kGiI*5Qq$Z><_?TCge$CbmIKs8-D`|{?H1DwMb>Wp5_BG>JMH|<1NK?F;#t{rK
      zB$bR}CUKNuO)Bb#D9mvk<^)6E(Aer47RZt~$&gOzUE-5=O^onPypFL1PLp0MTRn|4
      zI%sFStr|~N_(G9@NlehjAM?25mBc)kJ`bEbf;$114aH@d`*fVd{v@WT8;<e7oGZPo
      zq~rysLMv}lH_cQ9*C&maqzJr0#S6lfUWHeMubrtq2NogGQa};8?MX!t@+vlJ!czo2
      z&%kG@w&KOA?b}5~s}zlJye|Bjqm(ES>H_uc44sgrpvxd!&jSKoqVAfMnutmWxJ{dC
      zyRMuw3|ANi7gL(EqY!1;@Jc!{WipVS67xE#Yo<g>N}A?c$S7#k>(Y-hx=#I|`D{fJ
      z6&gy!5@@Bk%}Y+XOj>w~3s=OY(#+bbU7jXw1bPfmP?|H_^~SiasMzj;^g7kLFK3;S
      zDT8)$H-RFGK?-)eE_ltpZR9A3xOgpDh0ckIMmn0V=Ch7;ZAHploESG<6x8ja2ng#i
      z96U?%*M!!ennEr*Ic9qoE9ZsVBv!l;<avwXsE%Utp!QK(62D@0SIg#jMOmv;e5#Sp
      zIjU+9V!lpiR+NkzvDD~;a83lmpQU$V;XA-RGd4#!&68=_@QdP<qX+2572k{fdSGA&
      zO|(|}!nC4Ak2<<*(Sy!hY0S|zL5NPI>Gv6WI&P3aD%;!p7;7KF`qf}J(Qk@;fzvb|
      z$Iwl8-R3!k&DcUudVMQ;h)47F#(Z~)ubtL<7WuM!AD}P0?*aO=o7x_LFY$L9<T>J>
      z##+o^1I`m;-o!c>u`I^wiDMD7sY_?pV=B|t_UI9gHgsVpcEy?GOlClP_BZs01ZsgU
      zs)JqwS4<Es0s-P6UD%C*CeD2;o$aR1dob9<ng6mPa;1qg)8B>I`R{l`{OluS#wqu{
      zC+PnZ!<U91W8WhjuwHzKm-TD9Jj7v*;P;<KycQw&LmZ0{{ZFuKImc*(=>Hw37-FK~
      zr80M#hN+V>J~fJ>!e;5aG*4}C2WN2?b-ZV)h#JC=^=n5BZy0@3`p-jD4{N1*w95B-
      zexhICLo)r`MK(>AC%Z&;mFzlMflQE9$!?K(WN(uxvN^IlWbcw`p7*Ws(3%Xbv!Qh^
      zv}QspA6gef>vCva4Xw9A>qcl5LaP*7<<P2z*3D3BV7a7XPo&LK$!A~@;m6d4pWp&M
      z#btbkYxo>D@CAza5@p<jgRkJ?J|w;-VZK2F-;yZb;T?QWg8YCF@FPCL&&xLWp6Oa$
      Jur8wo@;~fwQU?G4
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      XD8bVBr=5)f#vx!VV@nPyXbk)xp-sXM
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp%}&BV6ot=}O0l5)ijZgwaZ@zd7?&6&kq{RR8w~rQjJ2liB()VEOIIc?d;lNH
      zcw5RsB5rzf?wtG0ozt)Hk52&SXlqayj+`JiUwqG;OWzzye<<zP7eO=%xsy~4DnotE
      zG?sIrA<u9iL&scP*xB^&QHK1b8@SOG`3!3fvAU<<oieC51k{m3u>=hzhC^fW??Bmd
      z12K;MnF#Or%o7YXOWNF<^3Y9m)>NYh_lcpiiM4uUpJ7Wb0ueH_H+jiZbVQUqeawBj
      zv0-$rNB+!Bj|Yx9i9$DU`UNy;m*aVsV(&hSkwKrxIJCvcO}1_Qk@Q&tLkEm<pnd2c
      zDNren0;z3M1L`YO3n!K0={xkd)UiWfJ?&qUcYs~e&7}`zR7lYTs;CjAiaHt@tw)v7
      bS+2JCN<~2e%BQW{6jE9qXAp+{)YbX{a^Z%a
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_a%Wl&^6g`u~Nt!y3h9)JvN_pnhT8L#)7tkU_3RyG|v32ZGYOu$VW7A~Q6>Inm
      zwje=~Sg=LnqY!s&D@AFLD#XH`bMM@9ALq``U*En1cmOSf1Vd#c0&VKpn&~>)zUv$a
      z-|}Y}q?TMweeQ`2(hOzS8)?T6jgS>l7_!3kb>DIY-FIK<Z*<Mp#YpS>o+U=R4CzOf
      zu>3s+v))~(y6+l+!-c<lp7(E_#(*L9#5H*iN#s?mpuo_t_y2R@#$W{uB^4QDbA-w&
      zE@7QPb@bQ#kn5%^>={F{F8e8VEx~(%GvwZLeQ0wjlWXYqK=&+Z$Ig_0WK9@07F&&E
      zCLI;`Sa6S_wiq#2k!BaVLj|(qU}#%L$0RtJO?>W1SR8S`7w@VU#;w;I=XIvRD6k{O
      zfqx(j*Q6~n6v*|`vCka&$T8sFBwT%t?8o|qzc}njMeeG&hfRi6a`)p7q-J#$HC)M|
      ziFO7p8uu?RLd9)K&-LBFGx$?W%2t@a(;fNDutoWj^eOZu<SOWWr;(zi%MMn_Iw3nv
      zXSG>Mx7ypa)K{p@n(_t3<|)=b(M<vs`j?3X42ff44I}a$p-P^;h>Z<gCX4dO<|(&C
      zSE*hiMArx<Lv)>x%v24#Q7G39Y{tE4bV{bu{EXs90#WI7=p2XT)F>b>$8d8_ZpY*V
      zTVziEU?%3wtqU+umNIW$fcbVQlNLr@O4*;$DW$29%6Gc0AIQ_p_fOIIfK=;jfLs{#
      Zj`sIHOjwOb@em41ka|khwnMpgegleR^P&I%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&$!^n76g@AK)5L9P8%R2Z1ZbNHn^Gnzhy}DrmC`JdlD*?Rf+4mm*XaO4Z1|ue
      zF(@n$J0v~|ai5(+>L?2jcRKf+`|kVw=lc%;TX-ZP#E|P*1NGGGt6kevcWiUlat-&a
      z$zO7ZTRN8zVOR|0H0&+~Vhk&`(^F5jb+0&3$q=zLlQS&TUu(yj+Sja}+HxJk>eU!x
      zj}6OkpD-xJdH{XL)(0lH+}dPasZFTQsCxoo%*vR-9K%|%H5H=No&m!Z84}_Qsk&kD
      z#=z`w=RoW9J#MzH_1l_b2z%s=xUY;OhI|k;Adpl<?GuYT3`@b(e;OE)J?@HuHN0V@
      zi=|0f3<*klsvYqc%{@VQMaETJOJEJxCFB?~Q${2skAh!K9o@4-lC(-4#*gKK$^k`d
      zN!-M`gj)>RX*n`Bu<6tG1RI=Y5d;-tx<b{yc1WNlR3wxGpyN3*s<_P{i&==$J(rsd
      z8^y_4TqZAC)Fi01MdN(^lSo3rmW(B28Kmxo{^jZFY3*pQXuTQIm$H03I?zPR9ymIG
      zZiwZ`OkM{?tTGC8L}7ZO^n}D}(R~UdLhG0yPm-)A*<t$1<#^>Ay{li4`b2gJ^Yotc
      zVj5!TP_~W*^5y+}EFw)7Rf-KDH1Q`oh{_DIBYc&<A{H%wM(Uh?eBhYpeB%Mie!>WF
      zUW|!6g4{>S7UUEvUjB;JdgT|Q?7T9>4F&-?L@|V)Q1+`{pgP1IhW}l1L<krVsbeB{
      oN^;)PNZw%`@3DywV{(*H_c-m;U2IeT0%ma!_lW_+1CRH^zby$6jsO4v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%~Bgj5dKE!53vFy3v3CKfDr}_F>43giNUdhv7H!$Oe~_Ls2sc!TVhkI6}4Jn
      z`<-$~s<M?-4tan)LtY@KoN{uN%iW_D64D-0D$R8Fc29p_chCIw{*ONa+`{(>L<E)_
      zPDg*!wDsdwQ-9oQJ~=ZTuSmjv$1^;u<tRe}QGr~TYXWhBg_hgUUvJdaAts;D)-S{h
      zOt_|Pc;<1rb!-Y`_XZ=_wk0rr>Y8U&!|o`DAB{6Zw+*MES3K8p8sw04%-6y9q~UpP
      z*=Uk$ip8B1@+3u61ST7%_i`{>ZnYGaFS<i{$02Y@Ljp;GsXfav%bjM;bPtW1-Njiq
      z?5g2ftOv%ZcVe{#R`$Z`F;Y6htr4JuJ~xIl!j5swX&6U}YDNC#fGXQR(lF7pZwI{D
      zzNkTCdz$>&-Yde`YN^8Cmo=m@DUh)o%Ny#)tJP5qM@OS&8uj`=mP)D007@Dp14yZv
      zI5;uds@|VyxWTxi-rG}U&^6q|ErCR>Q=>Xlam5kGZ)mv9_Eg<)>eNyCmcm_pp1@}U
      z(*rep+xE<+hI`l~w)Kwd(g+?}O>^I}ZSECSWS0-Tui*<kpi%SaW5qL?r<7`!5;Kx*
      zw?Vz4RF4!2rKbCtl|DHz#$EsOp;hWcZ$!IVZ%UPx?hmTcV|Cj!Tm?>5YgfZ_><Pp@
      z!=;YWwYt!b;9jZwc&I$Km{M883yzuyXm>AI{66=bn9hXsxl~PI3>6Ir_=bvGX?5JX
      z`PAZpPxqdHb*?Uz<C)`_?v8D=+uWAv;fI0V5h6hU82!N4h}H;?vD#^D)lOrob{a?8
      zlgMBS(-f5<O{ZPZ9+ST!`?GS((Hd9Ae=tL`)^)%vE|ZqQ739e>99$R<{x>xEYH0BM
      zaPWVj!5@bPFAN923k|-8r4ZP~pDuD1)U*)J*Rc`=|4juSCyz}z=3`Z^`B;-zeXPrQ
      zAD_zKamUA&%tw7>Wj^MkAoFn_^D>|Cu^?xXK8nAbXI!V31!5X8k)a!z#gw>&oXBBL
      z%wkbo#)`Ot8zPSlQNTShr;z>7%^q}vaNr@ems_}rFKHkmO4=rAOi7QZ;ZY^+kROl9
      zCLWU%SJD%b5=weX!@=Y86}}Fb*2tUBElR;8X?ey=mY01gr8pu=^e5tlKBoeoEEb5<
      zB5}G#oR)}F5ldoupt8jPzu;RC<a<Ea8GT%?{f3wQ6H{yzl1^MxC(L%e&MOe-_l(Yn
      T;E<vt_!d>#*}|9OJLEqA`|)rS
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5Pg$4F-aXt(u97{(xw#12h>7b5P?Xg1!@#=Dddow<E)I4V<X2&LE<NI
      z0Ewy+2YvuQ3NgDiO$C;!DBhXbd2i>v-Cw_d`~>g-yE-z2O*fdDAIH8q3diO_IDS48
      zLA=AkTT6vHG(t74Nk^Wr7Dldl{LoQwA+ZxPK@zl?CyohQy^Bq<HZk{xlQ^=SxX)RK
      zkROTI_Iv_aoILRYFYXd*joy2EW}ChpxaLtDd4bz$_L+A-9El>bSTwKzgRt210`Yn}
      z9*XFVJ@f^k(hD8i@7s|l^Q5T7@4N}2-b<5nK{F4e#h*SXn*RnM=&n$66Sf=8%d{0h
      zST&&I3ZcNjgG6Yy(X`~=hJgZ#gaxVj+_^_7$_InX&a#?)=}O(eHg558l2TnFVL6ph
      znyE{rdyz{p96NY69kO34r2(PDB}e$uLsiq|?Ww46c4I0o9);7$5idOHeCh8a+LhKZ
      zs}%$y+V}0rM6mhA`O`w3^=J8?Lxz8B5x>ifw1ZcT>wLHTEphf(bpZKR`xIBdslIFc
      z&GSB}gEGh0xkpwiSmISiRn&OD%sa~okI5?|kZXO%%2y6DnA1E}H1bGpNNCDf!;KX1
      z`j>ye-Bj>RY$o8(tSHZzYOB4zaf+?hs&;~vRxNje^|_u3cY$6)r$dy;!V<kwyxlYG
      vxwa~Hls4wWZQN1HtGLTiR-S<dd&x{3HQ7z+Z%fVF#ywt(Jd<?(J_>&TS}M>>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TW=dx5dJoCed{J|Oq!-8ZQUD5>@@C`LQ@K{b0Mj7A$C%dQef?DoK5U?v|fis
      z@W4y|06bL!@d6Z3xk<PwcLYL06+(jl!YkrCXE$+iH{xM;&Y78SX3lqJb|3un%?|+1
      zpd3Jxg7$)0P24OM6N}|iVyIjiUe`@K0H1=rE84o2C~9UQF_l}<^VIqkbe63`;<a;m
      z>8}gtN<v~3`0R}}T|p#W2WD)`Fbe|;{I+HlbX!3*y;Fd!^q}wVeATiTc(T06aABEb
      zdReP*qhu5Wa@Aa}s8_gKpgFIZdA+Dnqab7(B|T$nr8OGISy9C<a~WDJ59v!<waEMd
      zR*{u;w)gaURq9JIZ3qeus0bjaU{BgG^~q`}r(0PkO(b2;YsERuGQ{3h`s`(cHFc!D
      z2<53lBC$)tF{b_>8bk$0RfG`cO%R%LIB_Bf;|UeJg|UT3c>yj(%{{#tVee6)qJ;#}
      zp4?)L#sy*QQ_+e&4mh<<ps*xV>=hPOlv`($z;R(dr=krJk|LO$w#sW-L9>mrsem4H
      z!sDWf$3%eEHA~){%e*jMQqe9<A;UDBnicHtdGrz%7JBExxPs>bc=kVinAxb<dP&6~
      z&M0Ve+eB13VHAsk{eWn}L94*}*%!{S<+i2XCUWn;ENZx-V4p{Rk-Ztus~E-w1wp&)
      zv~d7edB2U#ovbb`=~fUE%zj;7L^O<XObPUeSiPWP2JBnEwzj65izMGG<s&ROaR-8!
      z<wW#FQ-jml*_pA)(IBo##b7p?9h?~*&IU2hTkeY{XOqdabhysr_eFaQQ_I`Ny51Ya
      z4U*m$bq6PiSEK_ei8{0dp>beth-&jH#?Zm*%vF~-?K_pljG1!P%IhPB7`&FPFGs(i
      zhtbDOQ@2t@ty0k|0jwxE=`|K72%D(dvV$abyzNF+03`)Sc0$jNxwtTK?gmHMYt4Li
      zaeN?#m~V(tl9E#+C8tA54uX_ydnwu9QnHJsWXn>DzTbxqM%~X{f>NQ}75fUEUvSZc
      zgM9m?as-catvU|q!XfV3a2Q9ZX#__b!Bd{#W1isSjo^7t@JT%3k-7VBL)ke`a4%vW
      z;CLf=)f0Tm6Wrejwmre8`H$Kntcfd!?X#aYl>LSWSiyN*aKYz!Hv;UB`D%Fb%WZU+
      zdf+WK$=eS_@NeJOQyvkTYk0ab!aI!cu15p~1GwzgaFgxmW45jsBXq~&HFU<hYKX@U
      z)zBZik7sH)TaSB?eFVJExF4`pKV<ve;dk>R=J;6Vi8-;{N*NVNwzxQB7gF>V=jy@`
      zS7HeG6>_T>p+(rju}zH1BI-F?=?mOt<j*)LpUXTQj`wz+upA}P`20e+G5;n`#Ju$_
      z#^)pHO-!caVkYik`Wj{TC$wGUBdQY_4)8h7=TtnB6+U-xI3AgER_*b~i_R(>k1V(m
      z;<phIf&A}*+Lv5y|822*S?uDGSEaazTzwpp{D}dZr0+ieMqlGJzGE5R;}U-4&*LYO
      z^E0mE7fj+;%;GmJ;sI9iJ1qQx4g85W@z+BX+;S-h<8^xKJWLao7{3VxEK^3fGN@hU
      K@rsltLjM9lS;7tg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4!EVz)5PjR&Nt2qUNm`mv3bb%&EWqMi)C&a(DGCKwIdF5FRqD!Kw~k%fJ0AoR
      z5fTSJfR94VtfL%U3-w^{oAJDvH*fvt@2}qgUg22{D*{_nl{wc@=uG0sIgX>Z*QrcY
      z4TeCc@M#!Nq=2Ekh>rH)+`ICe&{I>#O_M-P4+T~)vT+#r?<WLjH?vem46CmL6{JT3
      z?twcf^gNFJERrfcyxs0Dnf{0by&+u<RB+Ei9qR(S{~6OC)giE9!9<l&+d?fzn-*44
      z6=)6uC5KrwmdU9%4)v<B?}Z~T2{>LPjr1&-32YY^%Kc+66v;Zhxu6EZ6)@v3N+trm
      zB4O!(z}i%%?$Wl+gZ^y`@}iTa%}n8Y8R|>1C>pTXJZ!jemiY2rz+0>@FZU(ioUupS
      zSLjEmpv`6wYO@vkBqQiF>8YbZb!&vaQYB}*_RjO4u<RFeH0_=-N6YS+b9BDbw-s#B
      z`@UulsrmykPtd|gY~vH<fup<!#a)W18+v#^6BzB_A$4HHdRSXmD>5`<O(yl)#iNBH
      zhfZdi_78Nv5y;0^b@H<wXXOQpaV<P9CAW%Xzm)u>l-w+m!&36z-N=_EWPyFX+|z$K
      CS+2AI
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      OrMV-4pVCtee)d0ZmX(_T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZEw<06n<_&3KR#^shh8R)A2IbsEI~r<_C0f39<zozI-cih0fC3l!E*yKWL&^
      z)I`7gqm1X4S{N+BCcQo9+;g7uoR|Lo^Zh4)JJ?d8Ff6z1o<8VUdQ)`tr=nA?R(Mxf
      zeeM>8?eT%9BFd0CGWv#Y8FowGuOIOSSz`?A(mL>?ZKK1xj?v(H`JWWV#~IG~@jcJ9
      z^gWNeh9_KxxEo|*SSty)rGL2B@M#Pj!)xoW59l1x*=C46Hf__}VYrq35C2?^AzBno
      zo<s!c6f|TQBH3Im0V0$_0!fB+$+UU7*Qs;&rBSyy-IPSbuxf^DN<A<}y|&q9SS`)!
      z7O_mXxED6zu(IdV9rds3xu)IP&XuN28ZP6iiYp8&GrN((H7pWYONjS9=VZE=<MMar
      zK$bF<gCRlm4g!Z%I5wZB7G7~GHk+Le4_KcVB$ceTjc%EC#qaN1YP;<#3)%51hl?Y}
      z=<<%}a}{}pjS<5`yW4Xd;d;Ee@5mi7h5c;M;EoiM$RW*;tcsr7;Jc=r)Y56|x+MXz
      zOe2m!!5OF|W#p`B=T&+&q{woXq+PmK=$p(RV=iC#iuuo^DL7B(97O{U5XD1^eS`(l
      zE)KnMfh74PeN;whm#`RMJ_#_j{1?m@zF|qhCvqKv#>ffS83WToFb&sngYM~v48iV`
      zCJ8ER5~DbVp@bL;RsxJwtWm5iGQ`MFVmzOLv5uPo#wL9wb0zXoo_>RdwY=~#WJ9HW
      u*ce)OY)nQ@RZuxKGE1Wx^1e%W5;gt<xi`ls{F=!8YAik;X5RF@ZvO?d!1^Bm
      
      literal 0
      HcmV?d00001
      
      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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
      BLjwQ+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2yH3ME5S+`)!5Bgk2$Vqrkx+0TB$^<a5F{ikO;GxabC^T+UF1gypGAd4!3WU7
      z_aN3L4T6GZXJ>bAbhB@tFRuVjux+8hu<z@XFT#LNO~@}zI5bnaM>v>EoeUP9oF&R=
      z3nhkK6Z!n%)XSwZ+sFK;jG=O_v`Q`*ik<G5q0}e4DpnX;sg7sTQ@2V^+xg>m@;H+=
      zidc0}hC`Ch$h{YH!2_XvK1w2`{a)r$bCs6EG@QujMoa?9&~S|>g0YBH#+SoVa;IX3
      z1NUE%dJOi+q>(4DRA%Wc!yjc|AbPE}jQW9yV;Ni6Vrc$h%TWJyD;$I3(}_U{idG@C
      ys5_%+HmM#K8`WpnPt+H%M%5-n`5jjI1M9?{Zyjpb$Tju6HqgwqjJBI-Vdo2#v2j}f
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc6r4@GNt>EB{Yn}_A(Q~I6KX0hh$1cpq)MSk6y?yH<E#=_j$QmwTJdox
      zaN$>Q>Zunb5+n|YGd~LP)^Ta8B2|{XvwlxAv-9@%pC3N~tY9UJ6vI;2jf}m%V|2W}
      z@!0EccpXt~+CeB>;lB`;=XbJD81mcZu4y=?+cloIw}lllDB=E&V3=v1lr}@(cDt(#
      zV@^Ur3Qf=N8n5qJv4q$aZWtI(<Z>)S{kbR*YvxWE`NYV!7%~rS*A5>s+^?PIznF1L
      zYmvb<I!q2}OsSYao*`Y+S~<*ME{oYSM;iH7F^>XC+ioa)mtn4^o!1@*!-5Kqj6|1J
      zWHBbu6&2&iF-$dWS8PQ6w(wt?Z6^-MvrMOD`nKFBKb5d&2MpEb#rab_8SyGI9qOMy
      zoyKSos~W|{yt9KyN_1pjSTv5F8T4ctaR%!$6HUb}+?Hu*6#u3d`IdNUOTTJz4VL9x
      zX}j*yRakS(AP_+o2E*)sJTpulk8^ZuaF;?!(@m2vrA1%Jtm2iDqE%KVpi<u@LLO33
      zXf5jBF{#&wm>v*r3{cV+2Pl7~QVNUoEf5{}J{0~2Du0V<{tgBH9#^TRk0@{r71|M5
      zEX`sh#Zxho@@bO2j-^C=k1EoRUjGI5O#g;bgWf}w36=?#zaUSrNU(Sat{kP0sQa{^
      z191KUdHxY){s|gk>8CPc{pUx=4OB^!<0d^7VqkI%iHisE9<fwuh?-O!LO(ds%1|fx
      b=a^dtN4*Jm3ia4g19xc6QH^1lhOqD#%m>bF
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah{%Wl(95Ir|>;yAb^Bz-}lgc2Z+w(f&n3M`6{B3We-6p0OzlU$rzIkuEIZN)dS
      z0ExB|NNf>Z01Gz!3}VJHrD`Lg$no5nGiS~m-_ze8KLgmnLmdf$CD$KWhkeiL27T*k
      z(BBQZvefK3-Qd7h!%&ANklS<i9m{ik*LvRGlO4*Y1!jVQYaMKLqE2pOyg<fN`*FBz
      zPa?Oe{uf>sNQXT&EUgR7PC_$aTlp${EU;akh_L^uYlZ{myY<VNN=rc7A&mwEu9`5A
      z%_50wCaxeakStePI%Wil{}Y@=0dw4CGSh+y9T{S@l`nTk{k9yuaN3>}$lF23@mkJ6
      z@i|UvyebWuw8lBlY3GDbxcuck1X3Oolg+P{?|ABsWJSv+?(!b#t_+<{k9Jj|?31PC
      zM#aAPnd;o}z(fi6h)(%kc_<(n0){I?Tl#KD1msAAajPb(s0n17!D!Ht&lE3b#`k26
      zou^~N_vK*6bB04X)Uhd0m|!DwoLwudlY2>eQb^E`OayW{{w#DgHG0Tks!mb#3h5}b
      zP^}$dx_W|K^%Dv&Yb&cKm_5S$d%`4eo&KkZ5!xwI+7}qwSKOdnk#ktUB5u-~qgz-a
      zJV&=FVhu&)<5^FrBB(Z1{ebyn+^LEQ1HM7mzQfdhL<3kRHN*o1yBd={A~GIiFxlcU
      z?!TkMSZSJ@w4V{d+!%DG&_Ed#stYzgrrM0oKxV9K<?RKgU+1J`Vx|PvB9uj5gM4Mi
      I4QwIz2Z%?`AOHXW
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtXe{39A5&q_U=d;gi=VF}Sj&U5<weK8X)3^;y;?%`)N?ONpW8*YV6S_XH?RC$0
      z&Ur6(097RdAt6BUPZT#oP(hn2O(_+1qZBozAQ1@(Q9z>N$3LW~NQer7P^l2KeDCeu
      zde1pGifU<Z=goUF^S$|I-dq3t{a3C6*p5^f0l}t;bS^PJol1;lrW5-z)BTw->wsfr
      zO(&BLBPfVYnWxM|%1lor4vkJ(NhgeQK~p9>k(k?&)MifBJY{8P%~Yb;x<b%cdfiag
      zvW}Rk$E>U%n9XDyL2aLZsdBVi5Sg1aouSO&WM)nv2L$Egc8cf-plEq9g8h08&DUFL
      z$97I1w#Kcjl}=i{^D}08*3P8qY=n{L2tg1|=CYh7hVngj+IIE|cC{9{*JutDsY*s1
      z8EG4)+a7|CpbYB_d<^RaWvy+)VQeHG{}%ThI@mj(v}PRQsX)D;GM!7M8dWwT*nkFQ
      z{BgnB*1^6d3I?65ou1g;He3n876X-tC~2#KDi}(-%|JD3lytj+RfsC7&A@6`iW{g!
      zM6jyQPFwxC=}{{?WR9jRo&Kbm8aA`G8t0WkXVRV(Z0`GzB4L`t6P9yWlUUc<R+ObY
      zjn!Om#K$BPLM|(*b*U0GFEcEeUcm;MXcEVIi<u=#IwhwSX=~n5VOcz0dS?|IyAA9?
      z7fH5G=FAig*0lN(>(=(}wvj5_i~GXpX65_YQZ5aA659o8H~a1EtkW}Tr^eL!eFl2f
      zObuuH8Gq0oO_3%wb-#g66^sT<Rc6YQnt8y$gKEa0QJ<Oj79m{+4fNv>ftpEG9vbL!
      zC<MwKXD!Z_Iny)rGLyAV*_qsI!TpedPb>GebU%=v%j0r^_PAB==Bj4aa*7m8&W$ly
      z+>se?6C8|tX&{}c!X{W>1vFm7D#eR8Dj%~PGdZc!@TdV3qk<}xJEmsn^bENpnS)gr
      z!+01Rt#FE{<!%8Pn7}0QxEXV|RB{J{Y|k{!xOOm;%O;gQ2X)I%z7ExK*g`VO5I_h#
      z^LS>m+4vh(t)|~>H2r3q={K8<Z>Sd2V_^r^(Z?E&77^4w?uuQ;+W0lB`Vlr9jaJrf
      zx{S@Q#o~)-jMXoqDYk79&9ODXMYP1$gci}NreZJBK>+RijcM0ibk>aumSY|E@vP`Y
      z1NLJp?nfJ|ErA2*!~@vI^?Ti*=%7~p-K94nT2k8xXi06POiOAjK`p7xgb4l)UKQ>Z
      z5_~JmQ0yf%{(yoDsaz}jbvVOakPj!g6FaC;`}Z3+U0P;5SkkzYXm2!bULN`3lE!yq
      zX9?q$<&lq<H2wtl9Kbz98Kjd9Y6D_ZRylf2?Y_WYRi3|>5L4=xv1<WQC0zk;k-iJ~
      zEC;O%u=$F)I&xp_j(WI)qa$i`u>A`5YYQV@kmH<CE}ulSJ$?l|G1cIM>jnJ+Duf}{
      zaZb6q;P)G&<A`#60YOzkvG~jATlnB;d?|Y;u#VeFvbHVO=@hFyMc&d(`V8ChBziE5
      zgUI0_%wZVwIF8eJ6raN=J`bDn7w|Z~iYM?*d=cmI6+F$+BEF7SFo{?34V~CdmJm~x
      zuZK7jIKToH`hO%ZJ&lcdX_)2w5N89NKm1V%V6vI78wgOkB?5RD+zJ6?bVUM`D~|v*
      z$S2%hPQ(oaoFxJ0NWiy9z_*#Gr%1qenV|2HfM-a+vrNiG67U=exI_ZJPXb;b0hdU?
      zi%j_sNx)?i@G1%TF;||)^LU-3pL`?&hD&yRY^i$OuD@2YeU9Ma<?X`_1gS&mv(I<H
      z)#~Ht7ySJt51?PM^?t2mtaYvPl|(=KlvM}PQ4i`A*QgjRZhxtM(lk7YkWeb_2p<t^
      zb(Q{>wf82y{*H(0AJB|H`r@|a<3>=QuU5f`7xz>?ZigG!?fgi-E%Sx&uMdg8Q6JKO
      zV*Km;c>6QsUuT@RdEo!WhoQs6(ClG2wh{)n_!S0UG2R@*--zKIV)#2Tyh9BCAclY5
      z1j8dMVQ_ommNERB7~Ug>{}97_#PDBY_}@)19A628dobQA7ZTt{av7>6ggU<KC5(2d
      zxCw?6SkG!ycU>pzL0y#PG2y+wba|_@4N}c&tkJ&Q+p^rNX@2#&9s=jMl9!E)vuH!X
      zOQi8L!roSYvQz!=QQshoe7ZTjjqk&Je$VF`$F+Q0d`|OuiqF^hywB=v3O&AnaFCZm
      zS=R;pRcWFXe$|^wwHi<ObwAZQfnWE6)&+}n=d~_Sr2Dec1^t#erHMBBRij!JT~gIA
      zpoY2@AJ)BU&FYFG=jzUFigqvA@iJ7ZuwN4jcF|n}_02!i)6L9gGJxQB3W=y+`Y1Sq
      zMxDK&)bYREb?B3gI3}BLLN+5U4LB){I3ru|CE1Fz(u@UZ!9}?p&r2JwN(`?{JKm6O
      z_>Cm+mfV52<xadSJ0vWf5|O)QlkAiRxkox=mu#0k(k)%mBlk+L+$RH+#-vwQ#yS4$
      zM)nJpLCI!U2#)C+G|K8od(s(CI_pUnJ?W|^z2Ql3dD6S=u>qd50q#-V%}VO<q;5~@
      Q<>jPjiD8Ph6u@Ku2bF*uRsaA1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_aO>fgc5Ph3CN$a?+DNRfGZuxQ(z(Q~<;s6DylIbCaLXR6~WwzM6$gyeri@1V>
      zio}5{5<dzt>pBP}95`_B`pw6iH#<8&et!K1;2yjdY7A?!D*U4~@kcuKw{^O!bDm4B
      zTCf;8Q^BW4xyUHgWLVKz>>u8bO5TLT(0nMB%pWlfykLsFt)n6pD&GnY_<QarT*ZEv
      zXHv!g<k{R~u%76Vuu(_bK?@E;=!O4X#s<TpgC)2OPRiekf#4&pl4FLtXS!Glq!PPD
      zIuzLpK1>9|a-bug?D0$*yK-9j8#!j^PB%Ci))qrUA1aakCFl37=+26#rNqqC80Ov;
      z!$d|qBZA}OaV}B=?O5cG`B=Oh?9e-To3ryaSG?@t3NA9VDLbsV^W<N5(7~#WYq-(E
      z_1OiPwC3P~q1&M@vPe9WW)AKj3v}1?i*>44r>{XPSA#{bHb>SxSqEsAUbp8u{o8lC
      z))&~l6D)ixGtbbuNKD`r+IUT`v5#f49-MM;7As@{u4$Gk8nlLUq+w8(km0&GPspM;
      z^;+pZr@zVSkl3Z5{~Zgx&$xPmjSsN;A1P3S5x2{vA<0Fh@aie45^hwb85O%(a&G+s
      DtvJY8
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)5-)qxQ6#j1dBWsqqw);`%tgbp|l5Pv)<75a{L8x_GM@4<g(pV!+B5C64t3Hb8
      ztN(?9+dx6z{iDQl(^w_VV3cz2J@<Uych7fDe*OOT1HcXFA_Rujo*U{zr>}QCM{jt}
      zj_;Y)U|_qw`|cp{Lo={FS45U!E|J;tx|WDML(TJh`r%D8qDaLv<O9R+Sph@2`NDW*
      z=zYWO>FvNLoh^oJ*9Z(sx@Eg|u+4B=X(q%Po*6op8*EL&CnIWyDDTkoBxG<-hJ;y$
      zs?t7{RP7YNP?8~HitpxR6fngw+q7M)6*>o&zi%A$E&hDZH2NLGxA{2^W`pPUfMG4k
      zpXvpboAVA`%V$_h0>)J`6v(ap*t2;>oh*`Jno@WZT82X}6Y125Y?R}8$LNRrV(|B3
      zL7AjcI}#OqMaEUEFvyh4DI+MqxF%x_*BK;xuxA-v&+Wfv$SCR)5h}xSvP%yi+#Q<M
      zOFlCa6x6x*>(mUT&3huXz0fzUdp38ndfKpU@&Q4O#545IL7*S?g=SXZU7?l6k$9)+
      zR;JT4%FEJP){0{N1T)(D5sKQz5z1d8%sjt~GIj{LOPD>B(8dDAwGk4FsL+Y$oyQXK
      z@*UR{q8(Sw5at4wV@;h_o|V(SqWGCM0=P^*3O<df<xxURUBbn)fvr?<H5FV=D!ZxR
      zOJ@TQQ^A+9LWOXjx2Z_(M_#KRqxR2RDT=<KPQ8s77DriQPxDdN==0(u7IQr!KRH)L
      tJI3lK%zTIPxG0`L`>EAa8uyNx@tz1i5b4MNL@HyEN-V;#L9_xk{{XWZ>b3v?
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ;TT22#7(JurrfXW3+C6&-FVGS}6n1$igg`8`q}OqsbZsxPuIA4wD54(v0sW}x
      z+f_;wdiaL<&YW}RJ2PM3AD;mBuqDCAu-P<w%D~W-hGi%hmT`B@omRP85nW5~3tK{f
      zVZP1#T+zANRIci6p*j+R4BM97R37(LPdVt2Oqmcf1Wc<T7~-XIZkezGL-1HLHRqHe
      zk(oZu)<}F##4!Ariy(w3gFln4g+TK}AYqmvR?<vS?iqDq-|)IVyh!DGjoX^rkHCP_
      z(z*=k(*IFuq_}Qb54}#A8=~9cs<^FOGVEkZfBCD9t(nb2b{dkgj8zFMG~Q&`2ogwA
      z;EpZswSoH_Q-%!Ts@1bqQPkWVsp+5Cbu~y+d_UC;72H>#)khUVm=KwEMe1E7oO?qg
      zmw!d<+2btG8YL}ofB+6jafCQ^$srqySfY+}o+~3a8hYe;Hu98nFNo#ek@De*s6M!+
      XL2s0kF*EtsOvW14>6~H1<8S@|B-)B<
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaKqOHUI~6vzK(I&^FqrUFt_UTx*k)`W@CglGv1AS6vjyMS~*ZEuE4=3&}fBz`6r
      zl0Zyd7}tI%;<-~|uq0iaxpQ8>^Pe;K&)v^o0N$W#!62*$@zA}BLbsPhZZrBEib%xD
      zS2Bq`IZzf%!qW@?(sx5Y4%}AfLUcKrC6tqX;C^}AO*@ZUA0Iap%#axj@KVB1$<Wo*
      z1|hpIW2p`Zi`B_wt<8-`Nl)aF!JLg8973jAYv;fy8y21r3Z9I`r(x6){WHH43c`Yy
      zbp5dH_oeplgQhx{147B0{+TQ&7YOBvI8f*5u;whD<E4cc1m}P8Hdat%g#-DOr<ziU
      zh)}6EYu?m_G&FF-MhRsez{3bjx@mH^4GXUbYg1W-85#G)6@i+B{An`mcg2a+TUdVl
      z8+P>wlzDj>wiz}<?~pG+hAoFYM`ro$gyROE`T7so_1Cv3T(f6jo}W%yy9X2Rx#I&C
      zI9422V-e5T<Gz&2ny|#VG4matq;vHf6h>Gkd}D9S%%+)xlx2^r?pcIYtZ_uEI^=4t
      h%F%?C5!Ma-M&<hi<>-MT=bs`6o7iFwVLPqg`3uuro4o)4
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@+jA3D9R5xTBn=CcLMita2#~hW2q<W|Xeq50(+h2>q$;}Io~Bzjo3NJ>yr2(`
      zPd=%mgD>j44>BX^jGd83M*k?s@9b{EwhcUV_nhqS{C?l}{Vu2f{`c440M6m7Bw7SI
      zi?*MumaN=Dxs<y(cxQ4%H@vd*Ac=%Pc3EH1tHI}r?zqx%b2rL{Uy`<W-8ZcT=|t87
      zsmZB{$>FJ)f<Sv-9m`p|UCd2;j%gP!3+xyw+peeE-mGr<GKE%wqf4Gw8OSO3{bi?^
      za~Z1Qlq=HlOzGwXk|V=|Gq<OPQ_utsH?dxny5~EAZA)cQAQMDh4|tlK0_+h~Vrg@w
      z!DEw7*^sVFd;(%lVA~bbHoa>CTe3Z~0*RsWf=puzIyCG?yTGozY0GiHG%uYQecqCa
      zY1z=NS=}+!KKe1?Et#&sf&2@UC4hEY-rpdkz{zY+6Zjj<csM;=HDtvzsb>;L1^PE9
      zDI`qA7tNyY=*qTns1*X;8g^i362~cP9i=X<MMo~2j~782$Iy}Hfs-0e;k1Bey3C)s
      zK$l823N@ET5Biem6*#^b$VTxsoWWTZgDX`XH2fs8b3L;vPENxsDo&f}j_W1qR&+xS
      z-q#)Gp$F$RTu`TX^Yr?!DZEA<UREG>-P_rUBNxr8bd|?T8eYd6l$0Jv!dep8m)%^y
      zgqH-hKT%g}L$_p9=R_@`9ADLN4R2B}Cc2@4Kv&ZgHw-SPF^Higt_vJ`iIy5}V3@v(
      z(z`R3pOQNJko892s*6-Ft4?ZsqSpbut!nrkfeYCe7`?Ds74w^%6B~OvVw*yqvKYF3
      z+UqtPYACyv7Tp`_cAz_rQH(1T69OGgBvu7*3)4wV3G9y(p*)S^)i8tG%onMTv32z#
      zn{aO=>bilWqP?f#4mgjt>6MDK7X;2W3%e=V5i!a(iuW~qpaQ16ayZG-ID&DG3&uUT
      zPRTe*7Rr{A%l^<<SA!l$;Jokg#OWsSW8o*}m!;udR)Q03&`lwyQOlA=-5PX?!RT$M
      zkpgGl#i;C6e)?VC?l(BdRS_)f)k=Jxy2g?$>3L3NpSq>7gykem_S(kGYWM^eWs~=O
      z-Qpx$m#sQT_PwE$NT|*d*t(*|`uf=)nTC}bli^eo8N$&Q(v8j~;qi`m4sP7HtjV%z
      zd(vqrkcNwn6z&ULipfyzS62!fpnm7Lx#*_Ig_EB{pg#K5IDDXC7uv$IYK(z(tfOnJ
      zhqpv}y6iiK95K}e&=$KfgE>sHqqZ%bAxn2%N%6MFCIc^BRt7KM1P)>=wsDu_t_3OX
      z)3N<_{>A|vd?PZxl`StJKKF2Ufp5Y0*4|a@eH@tW<1@`;zy#gjLMK;RXoUSZz#S_V
      zhiGw_>jZa40$2ZVtsoh_f1>LdcJ{8}SYZ_>o}f$p(py8OhHSL#ui>0pw!fOF;o=$w
      z3Tjuwl^Wh6l#xI3YZxuGzq^XDz8WTLn5|)MYz;>WXIAmyQwGhd*+qCQP=HUNmCre<
      zaF^T+LRzLp8Rv12RxU>1^Xp1LraOcgkr|=wU3^53bM)~s^=aW+$9#;S5fCi!oFcfV
      zT@q9AXJ~6M3Vo|6J$<g+&cNg$U42a;-^2p$i2~9A>>v$lRYoNUcn{8|fLG~D<)O6^
      zhntYE$|CS>;C^3d)NtP#xfkk6ia8C_v=Xt%^gYA&HMmTX|FnHYF?xj7-oz7BA1j^7
      zi#pfi9VB4jJEr)17Q+wdz>h3~pI8QuViYqC44DSS3@Nq|g}|ryY!jO4h+=0QL5g)y
      q{e3flP}g6m>#r>5-(ti&8$mmxpe^`30R9CY@~!?G7~tQR*#AEc4xu{$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)--*XdH6vxkn&@AaHSfGkkM1hi|w6VoXu>~9YLqbEvHi`UDVY9g;i^(pt*_8G{
      zAAHdVU-ZEjdEiAK9A|_Xj3W>J0sc`A-@ALUB{}OjohIj=d(QWK?zunm_diemBBDu>
      zN!lf7wC;9to2_Q9=CyK-pw*npEqbksrOU;<Yd1W9sVQ614U&`)bTl^h->3mW$2`BD
      zyLZ~&q1Y!UXkgB9o#4EnOX*^)?4oCPRQ1{79c#nNH7&QETMvB4tuvlXMNneFtH~7Y
      zra_aEWC+?<bX>XGX;r0PvZ_rfXsGDfR<mOHjv8xcB4{{mLH~jBTsLL~?eXrp(#LB5
      z2fZNEwOX=$*Ro}Kt)LkC)&q7GgV4GR^0qD8?G?Et=wLe2A8gPog7#Wr)aP<5MS@;6
      zX@p)Av>)kVy94y8+6kaIn(kL%L{Yl^T<JqxUPTo<YSNqZ7K$OEr`Sm*i7Ai0(){5n
      zQ=ndGSU&U&8WohZqk*6lTzUp6D$MizTHBy3&X672@T(wgCshM{dE1}~^t1sBa*8vw
      z2KB5uN(M~{GE{^b2^!Q<(Maj6Vn+-*7zwBWYQnuHn+BZ~wA+_Wc#sCqv#AY(&V^GO
      z&!%7)$Xah$ccGTY*=Z{iUSx(|)J6c#V!^G+O=PDt1%s9m5m;46`Bc|0npB`mf({_I
      z;Py72-7TCowW@99M7od(w{X>@59tcTFx@XU%<Li(BOnbaAg(r~Wcm0ssEqXnp&e~V
      z<VWvR%$8dEHEc)#E9$56!BK5?aE-9yia|HjGH;r6i;m#x)*RfJz;2WaOB;9u(6`%o
      z53uzXj>Wpy@ol;6s4IP#d$A_e6~i%wHvaeE$s3`BdK56)i%|)q1ip>z*s1Y9DD?>T
      zE;8|%!Z*<w#LmzQu(DAcy-52oLI&-pm!P7oAvzF7<CMTsl@8Ict}uxi6_v~mz1*e4
      z4`D_H2155-C~ig}T3pcUbVR4mLr#GhNFVFc8@+&e0A2_+hBd-A;4#1m{2k|DPB1Xb
      zEX+v`<^%_`0+?b9%&3M*b1)eO<_Zfl#=&Gbm@;50F)&#TbBco*XJD?gFgXrpoP)Uu
      zm|HP06B_1i4rY>psj)DpIhaWf#sSQo7?>#y^9~0y&A_-U%)1=SGzZfLOb`R3Zj(B|
      zXE>M{24<6md5?pc;b6W1%$G4RXEn?$2Q$aOe8s|?=V0bIn6ClzO$^LA4f8$+Gta<$
      z%fejXVCFfP?*Q|C3`}0bEYKo0OFgSQ9=)Y5eei3~qxS;~vx2uHO5gG5Esb>Pa_^(}
      zBVg{wz<fk&;h9<II#Xgg^MHk^aGfb}o%sncKgYn7b!R^2V6HMSzpyaZIhd;)%x{2s
      u7z1-n!`z@xbf2fUf15t-(r3MGeoO=OI}2oS5>-axPe?prCG7A_)Sd#q72E0n
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+%X8aQ6vn^Xy0+pNTGBSOgh!zzwUZ_$DSeTU)=e7X)=eKt+y^bKtY~ayWI1EY
      zNjI=y0}D2=U{e-sV8Jj$nPI}v1%Cj46vKC=ODXmd!@}~p=bpz;-?_Sf{Q2~E08_9t
      z*rhO954y!iO~1I_Y8D$|)1NLbw3<t+S1YB>P2UYK`EJt<!VFRhM-pS7MWq#vw%YaL
      z_DSctihbo2(z9ORg>wp*^OeN13oWOsyU$cM>@B<K+d;j!61KgdE_e!6h17g&-OXY*
      z26M>3QrKJZ0(ZIFthwz~yXLzJLzR|e`&GN`>9ujD!iLvT_z#qSsWGFlr?nlpZNBaQ
      zpjXHRcGK-_+K#(+v#c5V-iPcuM!~APVafOEfx>}&p+C^VA$GTQL>3CK<S>F)74|VL
      zk~yS4wQk5tqxt@9p&(m!p0zwE<y3W}BRRZ@x7dimJ&leFNkVJRCr!$EzhmKTzJuf2
      z9g3c2LHZPSJNl_ZR@#n*F?u>}Ck~(|-YWT_g-LGNei(1jqmb3AwVj5y<yx3l$k_3M
      zJNo7RUSxEC9uW(tDY!$6p}K!$4VvAHc83w~Q5YRj<4R%BMCm=V5t{={T5`R5gIwoH
      z)QD__0Vc$L+Bzm0Kf&{bvV{d58F{p}i#dFNC58QrD+j&uiZkIUiaMC8seHK*jj58u
      zRV=d<+xM3m7AD0+1;u(=oMoOt3kPCV^dg48R@-nLzTg_MTag{NkNt5>HA1m)hcR0Q
      zOC!eq_+a1i*29K{`<(u^HsiAwc{!<-R=4fAi=O^W4@<Yur2cGp45=c2dw7kFAf-Qa
      zt_HYT<toL0Yi#_)#IMNyOnVn{d}jF%oMG%)yg+L#j>C)C%M~-Q4==HbwuZ1jilz><
      zbf<$DHXWw8qoXooLoe^(@DrMGgLLGcjf&^u5K~;?HN0-pFR+{jv6w!-gEx8sO9Z?a
      z)fhGi{{S8$3<rgy63j6HW>JJ0m0*rZFjojuNq{+SVDb`7L4dg~!i-BW1qo)2Fx3Q@
      zF#~f#f|(Ft?usx)31&iqc|e$l2{4le<{b%UN`P4xVNOagQxc3vn2iLOX#?}F1anG&
      z2}GDP63i(HrbC!80p_%UIV-`O6JQ>RFf$U&ISJ-t!hDhdGizYpmtf`um`_ER3lhwn
      z1oIhTK2Lx-Z(vIN_~V=GxqD`Q2bX^Axo5r*VamANf6vU1?BGi8J@X}DzDj^uz_sX}
      zxh^SlLr~^x5$2|(%neDI$AtMN0Y=}z`qEpGU{(c~Z$+4@1hXo^d`Fn?6JXX1%q?k5
      zw}mnNAi~_0#&la6(@%tXk^pnZjOjy3nR|jVzlbm&Ny^-ll=+P?PZMD78)Y6u=k(!U
      DlOWED
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{lPj}l?5XJ9n+*ol0Eoqwo1^Pd=ohGIU&_Y6q^RIQ|hSE5OW>XaV;kd|Bk1W%4
      z0Sh+pVOYS%oWp_-z=z`WK1sAe9xY;zM)U6c=4#~p^Y34O1GtIDd7MzV+VKXJqn=x7
      z`@PCx*mD;v8-DLz<3YU|XlK*aJ?({g<P<JuR=%nlSGeQ{oyzm2)-k=5n8Nr<*XxFN
      z6z&)6nW7thYhZdW*Pl8+I2G6NI+fip=z1L?Q)(*Y*8R3FU<{Ks@~{+6)w`bF8T1Zx
      z&~Of1tuR&hTaMdwg08tvlDY7(+gF&)MmgrhvcgIKxu*k#E7=ELu`Ae~)6@NDPD}4S
      zsu_ZjX-IBrSlZEHwbj!7{<eOhaJE<)Ew=Es!h{o5eXm~>pzyAZ^LS6;G>=DChji&+
      z5K?irII19svUUG|t<Op4nx@%B8<%jI&3GWy?7DDBXwN5=@JCaQo1xv%!mPrW<A&T0
      z!(xI7-dgwlpxw7nX1*20%(EcQE9A}4f&R|I0)0GW#GGM^BBQY5$MIOPv~OXFI-YOp
      z%rqa{_yo5UW>~l8`>uAp)KH=m`!U0R%DLixDKcl-#tJ^C906pxX~82NR#4QmNU?k9
      zJku7cT(iCjnWb2iRhVP}m$v4$^%31FmTDHZSP?o0U6V5--Lp}{eT6fut$FEZB#y(i
      zoMe;N%DG}K9%#qLmv~4q-X0Z`hT*{&D1lTIH&3DA1pKtHNB_epjy;U?3WZ&N5VZ7G
      z*Sw}PqrX54=C$GKacusb<PX?e$eGuiR};Ky@G8e|t2}pO{!bMCV0;2LKMVW@Zn5?@
      z-e6RY>+mK{@royKnp!G~rf?>zws4k_>2wa$Nr#)fW2*AyshJ_(`JG|hU_45%MB;W_
      zl87t3j}MaLtCTY!7LU&jaUl&@CE!}5F`Xd12E0NTt_ZG5FxLc_EfMCr1anP-*(OXq
      z17<dXDM~OU0p_6yGbh26B$z$IG&5kz3Cs-%W?q2V7hx(A%)A8igfQP`z$_#%AM&4T
      zyp_jxW^ss*eoO64TZFldPe*rV@%#{<rFW)Fn5P*qOSlv5%oma~tAaD02(u<Rvnn~$
      zCrp?DQ%#&%$Hu5Ln?u}9J98w$Y;!4NV~@Q}n{?(u+L<2-^HT=QS9laTvnx5%5S;m0
      ZglS67G$dz!A<VBCFnftJUq`F)%}eYFqRs#S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95IxhH#2EJ$nzqpU1xV8ttMC9)tEzVaGJR;%yl>o<YvfDi*e#z0FRjD_
      zAHYW;W*sX);>gnO%=*kZXJ_`;?;k$_Y~w{4LxdGKOs%hhZ(T)!b)5wM8|yd<J~Tet
      zhvz503}l#;p%In_;<~63VKItb>+Y@d58HoKgwn1TddVK)Q_UVoc^o;ZQr@w@h+AR#
      zB6O{bB=$nL;AFi?(2k-jX<!&nOq8J$#%wQ?XKB!qaYM9xNvPP7BmAa_J(cH&T5|2R
      z32TF`bi1%acof}*GA67JhIgG4%uocfeIp!sdHzx9_uYkkD-1z*Wpd<8!Q7Lz^?sm^
      z8CG``!T{m9iCN4M#<@(j_aNckw9<r`Ue@}n3kX@V-Ic5s)ijmRl8I%kun>cLgkBXC
      z6-e`JjEg9Z9eL`hDO7tO*K5@kRv{i9-;rPDFf=to&K`5t;7sFPuWxK_J;3<R@eoX2
      z4c>uwjD3$0j_Ms8Mlr@2S700y%%Y+So@QtrlN>3fDyDLUZT_QB<$7iM9?!mU*byjY
      w$GaK1*@5Kbgn2CF<@-#hjObjxagW7bg9mKzFyolYE&Me&!)A!T)l75k4-gU4!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i%Wl(95QhILZtNOEOX!VzFKL>jfK^z4)C$p3sse^Z8?txYgJa|ia%{?D!KO$o
      zcmN&>F~>2bG{>@J&y4^1=kpo=`u*c4fK9Y@Ob{A=oZDZb&^}HgdyqxpBYQ824!Uoh
      zU3Vy6h9VMirb8nvRVvR^HNtX|`u53V@0{NSGeT`Uh=c4I;dRTYG~G+QT+ZHdKDwV>
      zJ9J~;KFZP{_7#<OkD$Fsj)jR!xNJd(L6~-eSiH-lzDT=nKNN(zlXz~}bJIZPWl_rp
      z!I03bMmcv9TZGBvBo--QwYuSqonXaoB!-_{PrN^TB?-p9hRLOdp!*^_NW}-jY^y!4
      zGqA|g0SinJZd$m7+k_d}#M|1*_-y)l#y-u~c(cNf2M+%ZoKv;*<eVi7%UIz#Qv3g$
      zbw!h6GOuQeA-itMcLQs@|E!3)&ZeU}!8}Ux)D!!GT-3t&Klo4{9J3H_n3ur6@FX<3
      zXwIfM>vE>?)97s6fAAgVH;yM@@!jMn@PxHbafPGKNQbMK=8QWqgKO*}qdKk^Y6G(z
      z$w_mVFDGpB8>!Me^@UU1_{!mEK&>cm7v|PTQkoO);BMLeob4ot!R;HTxOWk7hXHpB
      pkNFbeAK)Ux5MQe*n1%voUkTGx!8BAbZy3g@fLSYH){6sZ{Q+}J=UM;&
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&TT|0O7(EMx#u^2=R1_~L6p|K*fC@7(j$G_mt&St5?`er8PA*QGisNtcL0{^O
      z5B>mul;hbngG{@9X!Cu$=R4=@N%qg*U%vrtU?+<a0izXktS`Q2orb=37W>|&brkw9
      zYj3ItcH1e3LHxpVd?$#r$OtS9MPH!C1qxx*vd*`fmpB!K0^@sb;Kt7cUK!P)#7AMX
      zBlUNyAMMY!<=H{YI*ubZXen0Ax<KYIJauvy#Z?_yXaW;eH*nr|{Du?N?1twEOjX0C
      z?bYqbm3_LHiO<}&KykR0zC?Bf#=`T!i3Aph4_){d&;#3d+Mn#EbMn3-T@0Lv?j=S*
      zYdP^@=!N8-G0Z`rhB>M?B_aob+dAfPM_`g;GV1-92{k$~nU;;gX$2uA+ZU3vs+qbJ
      zTF~(T4=F@&pU{e8NFmKPl%>luQ_xW0fj_X~8VTiEZ}-^!%4*awD;kQ#wAoAfRUK<s
      z7nmkPCFpmcw9TL;caJe+RLtZYn>x1em_*zfB+4s}!a)H+w%l>piJDH?m0!}l`m(Ic
      zH_N1W2L8r)-*|oG*U0V)yBfO;pIWiBy7m*fAFM~9^FPNYuubd^uCXfiaJY^McAUT@
      zZjeP*Q<zTB8fI8YrCH=tg$?dVRJJ&Evx{5bS@s0RljXgHT<<|ra)G<JmySOtoiw6x
      zywt`0euMioc#v@9Qw#qM&e05`!lKH|lEO?`X=YhvW=Un{HO*9qm?@-YR$!z@yOfOC
      lMd@2#GVhdTEIb-a#+>hBqd%DwnyC*lQ^b=bnWu^7_CFc@9Kiqp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jTT|0u5Qg6mYa443teiXo0;LBal!M^FI8u=DP#s4~FTBw-&4fS>PMQGzE4{%P
      zFZ==iD98PpOkwC|I+J|6`|iF^H_6|BzyAQJ;&}!G0<)$Ys^^ZawmnBZ3LJYy-SeE+
      zjraAM*Z%&>HXOqZGDrzbB`SNWw7|6Io9fxBer4XZVFKxG%e8_R0&k1;#G!kh9!l@6
      z`muJZskY{t>OtUJuE}IdO@Y*|*EX`af!jG`pa=}rE!X%EIxWL*Xf4|i$k#nxvzwZ4
      z$v94?f+MRVP)J6(vWYE$o8Fmg_yRM@4Lx>&oU1uT=bNS*ho9a^g1&!4<WeJ`m`1Qe
      z%qIdP#Ztde!34Q$HYu_Yc#y+GJQ5hDHo4-RfVR^L1DaGQ_IEP_$+FY49OZhN(r7A&
      zX*?w(5??c#XPOvmdOCwdS=00r)AvHRtzb?d+v>$sr{R}%DoVY%>)D>Kpd^rKnYs+9
      zB9&2v(j=2BQ?N*Tl&hf}38FR1YQs1W6jZ4i&?&0QT(s|I)VxlMJ&n5MO1fEcI`BeY
      zH})<0?u_?;7EAJ3(ryI3bTojzszIdWyGPM2iW(H9=&qD23yZ&y{YmEm<mj5EJFr38
      zP3i&4kq&n-L=kmh7<XxkJmqn(t5z^VC+RebvDl$X6{*UU^Wzt||AUT^LAsmX?hemI
      zl6bhlV?2r5U(z@UqELI~0+ZJPcL=c7oiP?8TmnuIjG*5P2Q$mS?6WWh4rZ2vc}Fny
      z1em!PW}bs7GB6)mm@)@b<X{d7rkMa!ieV}o%mM@RnT1*6U=}!-F9h>70cJ6VQ8}1p
      w2ByuztZ*>P9E?RU#|bdi7-p4&Sz};a7UmfTv&O-62qs8?S&v~hx*yHve}1Mez5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~`uO6x}yTCY-X=wC}P{z>?_OC{r|(LMufoS3L|c(iF_NU@-kpJ=6=W)kCZ2
      zepIV{hgpR)m+Aqy_uO;#*?Zr^{qghbHvnn8ieitz#j4#(ZP#n5ic?R$b?dcjsd=Zq
      zSXjzuTdwQa4{K)KwB0Bo0%v;W{?6(bIOjB~sSnr7U5Ft#f&P1zZMo9|kK_5Cu=7s2
      zCA(+x?~E-YRWs~rYSnF6c2yBc6a^x4PQ{F&4+A=)&;$namTfM#>Ls&LFiJI3U?}gD
      zjat!YSaR<NBko(PDexC6yWGeK>~%iaW`k<~gS~)m8+Eg}X_U>im7L@d(nIbtM<7}?
      z-36yn7q}2l<keovbKmleh9j)qU?c{CV>*uGgup?fJTn^f&d=jb$HQHBH&~{5nJ7*P
      zjQ_JQHL=BPxokF@Ps|;G5wZ=b(r{K_pW$V_H+Lk%^ExizVuzuei&>W!T57qJu4Whl
      zW$Wgy)`wNfin3W!#{@3384Ci<E-8w_0_0Hn{5_Qe6g_V><>*ud`r?Uo4QT<b;>Tpu
      z>pE`Wrob3;vyM|U4Li_VNqAjgfHeQ0N8;-VPsNmuyWq@?@mLKwsu06s0YOwbQOley
      z4I|tTLvGlNVUB;!u9(}Nl$?e+N^y;nC1X;`LmdlvBrwd}oE@}KDTCuJW&A;o#B&`P
      zPjuw5L@*wQ!Bi4h*dgST6a<%Q3Ok!rv%<M|xnc@qMWfbYaE*V>ExBZreY~hZY}IKs
      z%I1P4Ux1^k2X0c18OEu(kDtAKA@?I9-w^KhaaZ6j!e1>parw#@#6EMq2RgrF`~{|%
      zdzUppvXh4c803x>IEX_;k*gsLd)d4Su4Jdf81*~c;EBwNC5Oh^IQktYKXKRT(eIs1
      zd-!@M%f}ZujWa$%+DC{chsN7D7c8IaDv$myzl6A7K0`uMipKJZHWERJi<Fr2Fh)Ch
      zT@tTQ4yO&1NQKE<ZR6U<fR-gCnOnFWCUf<88+U?aR!C;G2bnbPd1UUZoS9ZQ^Fm4H
      zfy$X_l{2qN=1mVW@}i|PGnn<IbzM`ojrpK6hLX%8t?x`?*EMD7%;TUl8zfWhL1r0G
      sJu=T!&OBE*^Il12RaIV4ly54_iz;IaDq~yJveiS&ns4k2Z?azg0)I=j1poj5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8{c~JZ8Gi2O?ryTVO=4(TwrL72q)j#(wzRc`Y>BjKNQ2uHNC+mB>do#o*>*qD
      z-J6mY5v(9ZzEnhQfff+0)u<_uWFq6o=u9)Cc2LK0bo{~J{LO!X`n>1f{m2(Ona%w;
      z=e+OpywCHVbASKwFMb8!PR#k?(Qw;XW->CBPDK*gbY$F4r*=gSX48iT568N*sgxDB
      zli7?Px`w*r<|#9hGBab5BcsPT;D=Act=ZgI<ni6{vgOOyR%+O>`m7@p5<Op@D4=0|
      z`Q-j=!ipvHOlB-gX6MXPRxWR*A~NT`WXiU38Y&XmI7!9UWOXnbpG;dBJE}p?WwW-1
      z`q=V>9IMJOXup}Z@?;)U)F<s^Dk4}oTw~gHE;%}B7v}hLR(>*NbGC0^GLy8sG<3B5
      zA1GGlZXF`BZe|al0zm@}*hE?_twUANu-U*m)X3cy1GT8rP#a5Ttp3ULsFfQuM^l#K
      z6E{;sW-cku?n~VsPZC`7+K@^rkYBZ#NJv?w0vZ}xoC+xM2S_|K7IpA!H}EOc`_V$#
      z%8QgaVI`zg0qj7q8f|FzBh0du&&k^c?m&d(m~2@R$6?Xd5!NE3Fx0PvKxMdcf4LG;
      znLP$>LcNB78IM~Nw$M<~SE$@NP>l|B`f)cSEgv-y#Xc5d%u*2sPfsukWl(Fn415On
      zYA`q&%d*-|oz}Osu0$z04jAZ``GsgQJwT{E2JS;|3F_L_9+5D82JXjaHLPRWB5kU=
      znR%DsXB;KpVRIrXc@7)s#}TQQDoOd;rk1srO8K=6n;});C{hj>7{tRGDwFIu)6TN%
      zHWY}f9_e%6N2~D&hW+>)Jy{aIFlt}~kBYq36q|5q>0J5!c#N3U(lYA>a1@_6@C7Mc
      zopo~3Oy&E=GTEHfZRRaWIcgvdI?6w8=KEE2>Lyf@%v09O1tj!)Wue`rT1f-Pal%no
      zluB@7TEo4cP^p!&FH?jjWH~yJHjpVeN1QoirY32HqnI#o5-g=JWo5?fapko>4PM!3
      zDDkGXRiYncQgJt8P376$!&HK5oW>J=oY8ReT0SxGB}rc;j#da{&6f>4g{K)XsVdOW
      z(zgmNLM3LFmvAd3v(pTf)+ur`ZL<3s&iV12hOPf|S2plGzD~Qua~4-hfeIpNIJ&I<
      zQqsO9Wm)Y=h>k3UymU?>den~>HQZEk>Hb{KJnigYFCZw}$}0xeqrMv7#H)UMOT)JE
      zO0FK&z_;<5n2RQKwjr^3`8s(^``y0e<?6vWP0w(;wBUII7ep;RpFG2DsVZL(jjyQD
      zkRKN{G?rJJXZpb-hkK@EN936sz?*nW&X%`j#X#$jME$;jcku(tNe{@5NwG`4=e8sr
      znam`tDREb+HMXyIKrG>;h*sjq8a&B_G{UrjpGqUtFxepM)1A%OJeH*uer{k!&IO;-
      z+?CkLtW)xBLX)wN0|VK~TwIQPa^JAxYvm3Bjaw;M1$21fM-{4ht&^jZUp{qmaPkT{
      zy401&g}PE-UJd>luz~A0@@^O&#sO+W^SC+GHjBnkcot1p`O1S^_`jY>z-?T|Atvf$
      ziu;)y{HbNwifw#i0F_=-cLKn}yW4QPo8}m2%bP8s574}bn$U;XF+7jfSv1R=wgrSd
      zcw~9j2T1NAA{ayy9#&a5I8lmOw_qnf^(5=ARdelLl500}?Or3-FmpZ1T#qr=u}{pU
      z;nUdb^14DiQionfy^CJE1g~$J_xJEn3NIqS+x@&1j@Pg*6rRVy3o=E3Ttj_`<A*fN
      zBc|T!(+uU5J%j-7NBKWN#lFZRe~fx1u>~j4jx-|3^2|Mn9^@5RM~>cNVS4cZMPSck
      z4<2NRJpAKX?7}|BCy_NQz!vZjAzsGD@B;X8_8T1SZ*QB!vGefi(|l)YxNzg&6(ww&
      z;N#jU3Vw!|o}f*hWZo%+@U+4ba$*;;gk6yW9JR>B!&L$Dxl@^fC%230cYKz}y;7Y5
      zs$C^ip|<vUjCblm{TdpB`U2Q6o!+3Al?{65kiA$A_zz`(x6`@6vjqGcQ=cQ?=joOg
      zS;&{riC3_XV?B6Pf$wr46v6khz%~H}_`y^F-;7BG{uX-W6w9nLQY{|mJ1@!caCHfN
      z#3w&9_fTeTDP0wN^~*G11ED|ZQP7oBI(<RkB8;F{nWfVg4*FF2eL?TcGrHEGH@$u1
      zx;Dc=<=%Lmq2C~-i==dk(BDEc-r*PLySNKKB&|2-k1LAOAqPZ}l6Xca5tvd&Kz89P
      zILrD6a5rh5C8dpQUm@pZj7|6|$%!`4@ZQ-uUgL;ZKT5S4`D@Zc`W&8(v9(`dYriy$
      zmr45@%32K^f0;r`le;g&i#PsL>i2D^WT+YHbd{Ug46FGb6TMHBW@+{JNoQVBacmxS
      zsnjA&u-_q|tq9_~YS+=^pm!ne;Z<k`B>e)ur=etGpBnk4ifTBs+^8B}XYm}8UCN@2
      z@FCtDuB)2IrC&3iBZCv+w<?0OF9nJv4zM-PGKMA}7;dZsTqk>Aji6~<z&jrHT1QD%
      zC*ERNyqaRX8cOQKyNn;X@jfOtao2doJq|y%asOpJ*zUG*hjfbCUpl>^ptt^tG>@+>
      z=v%-~G|b^==iv+LGn+4PSLX25)rT3)lnr3I%z%4oJK&FGbDc_kM5X>jv;3J|@E3N;
      zUumYl;Q;=Q82-Vp;D2&Yz0S7(mty9aalFWE+}#{Jobeu&_Her!QJq%7xZO%sozXj$
      RX}!#`Q`u6g^?}l2_P=2)fz<#2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqO>fgc5Qg7r+}IdHA*E@ceDs61N%*h|2asAJ+6Dy3aA-pgxjF92b!B^zv!?tg
      zE?kPlfgiw+Ld-e_qBiZp_RQ=%&%C?dU%!9+1h9cM6H|oMFwNaBN$eiT#646={KW0Z
      z<W2Xz*YTpEdKHUAq{@UrSUgwyPgNx>%Pe${p9W*V(=<YLD@r5vg7B{ColEV=AlJh;
      zy(9m#@5X)_y89}N(r`kh)gu_Y@<7<A;Iab~7GcJVQt=^A1|sYFgIEx1o(%lB=Vy`5
      z%c7wUqak7a0xM%@u}PSg$EnB&D;IS9HBWF-KM})Eejq;Xz10@ZY=^CD4Z#kD+LZ}w
      z6`|5>^({0AW-uz*Al!1WfZK$5R_;g{3qRGzyRG<O2DxI!T=VRJR-f6!F}Bg{w|bhl
      z=wJ!U%;VL`y!r$lHxo!h_hp_1;&r4Cw=v=7Jl31#5xgCKrupVoVCcWY*(J`poEiMJ
      z+7BK+`VRXW$5U|lZSxm+#@gq&!clvq!&S_1#vQnZ>rBy64YP&X!VQk}q&d{f2^+kk
      zRc5<3e}bD|IUEhB7Uiu1?u;ZQoNxzs%l4Oy(?%?AUpT?N(+0QM;7-A)mlpmTY+!{c
      Jg!{$J)jy8F$S?o^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqK~K~`6vzLME!$eF;3^9WDuR;jqBiJ36NnL5jhN~|);;X4TPCHZ?U?RV^gDU+
      zf{6z|fFH{ErdyT3E{C@7z4^c2`_FWK{r>S2zy{V#OcC5DE4<HX;vLA;J5*`%$m_`T
      zRrihGiE|MunSXhah*V_Cgh5!IDF3Ib6V_xNc}I`K6VP!)LVYXFV)cyhy5&zKcVt*-
      z1DpPb;8WlwK^A%YDvz^hOvUXHj9qykY}9bkfeDK+<HwnJTciV#cY{G92n}C`LDCEI
      zSm#yIP>1o5uzrq}Q)jYCn3hMG$O)_Gbp71`!O4PD3_k{;c>ius+c>i&wy!k=I}&PF
      zrmR(jTFdQQSRk0;sAPk1!@(k!2=lDmkuniMrjL1B@!<>##f-Vu*#T~!*~1fTqt$nN
      znz!uW4px}QtK)giF+6T2kcRHdA`ivOSRe4xgj@7bZ<xpMmiU?Gn^=RP{}N{xIO}p|
      z@Yiau-+%BO_BW2F;PBh#FYtu5PjQK(_DF}znBj~&FpDcp(NP0eOSOe-9O+4OXjT(8
      zctxwsc4Ph+*S~T&8c;9GTP55XNh&zuCT>;j&l#tUSlqsNjN7LTZnMFilF_Uz{5QCO
      MRi+T`mNW1D0oX;)lmGw#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~E|N6g?N}Zmm^tg%!V1M3+Tv&<9N*#?{pzDL%-$@3Uo6#<Ww@ZNZ<VFPQk?
      z58y`;?{w>`Y#~i%?wy`{&Y64X==kR^0BcyTV~Vg8>fHMpN8WA{dwW?NJ@vXtyxH6K
      zyK4V!Bx9+wIxNECslYL+#;7C>y@O}LKXm_d5o#MstL!CVtL2}{*-e7nNU!^!#lG+&
      zp+j#cOO*~QPFDH^>rJvN9Zchbi#lw=jIXr(kjDd=_QW8Pgod94BI=7&nY=u-vOP5<
      zET3Uz+=q3-x#U30l-qU&{*QHnt3@n_Uqm23eSB{WOk9SI8w|k?W!8yQs0nkel}VtD
      z1y&aZ;ec@6#SPpf%yOA&a3|yD4DyVb9<(N_D+pO~IF_8Rs_7e{MHhE*kA)a~Lg-;d
      zQH3-Q$Jt5pG?4F<8AEg8eLXR4VHx7_@g@0nPQx-&<m^0WJ<crN?e^-U$3NhF=XeS(
      zuMY3PbH={FMUL7d94=voGp@iaE;EaX8n{xRZOn0Gl;+Va71sEVLDk!htB1Jujl+>Z
      ytvKE&$lVd7Bq!X$?Xvt8(-|W+m#-e;&PjtEHu$>WXqFcK8eCvA#NSe(dH**l&(;k9
      
      literal 0
      HcmV?d00001
      
      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
      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
      N#~Sk&kR$Pz{{fZ*TKxb3
      
      literal 0
      HcmV?d00001
      
      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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
      Zt8QdoaU-*yWSYy6S+L2xW;WyN{{uN=sbv5F
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!+foxj5QcjokdTCf2#9A9fe;Q0h$07paIlaHNI}FKEo-x^VR5s&m26PF(MQr7
      ztn$JK@S!aK$xdQ~-m+4ao$l%X@2_XF`Stt9Pa>M8^(Zw78Y(yy?PJl_j@+Vl>=*4B
      zZNn{Y<#w{0#k_g6X`4mU@uL(GG#px*@jTn~Rjr`bCCjn=WkK7iY^Y|#H7e42F?*t)
      z>YA-P1?|8uSx$k;j2;S#th+~MoSLaENiEbWs55Ih=57U;rJSC(O+npR*U;@ly=2K)
      zB_sZ^RTeZ7j?y^kqM#P{gJYHi4TdY~@Pd+#UNp;|ZkR9kpG$;G;{aXO2x>2w{x*hv
      zkv}mFUr<kK^m28K`UEAU$y>Kt7bijeNxDuq1a-kd-c82GN#!d(OovmKJs4YbFaO)U
      zmlGb!Zg-M&m+qk(6c@UUFe0WuuB$bm$2F;`<@K%UWiv((08<^%Kq`+EiWFR}NKi~}
      z%6dT^${|xSj;&J|jN;g<26~V|iPEbQLDBkFqQN>wlY-jny>T<L3(mWN5s^~l&O9`G
      zSX1~2p$Hx|g{(n0D1z!)1TYKI5`53D6fCE_rx)ObUsu8l5*`u(cS8l{f@DWOD;p)t
      z^JBDv=EYiwUG%B%3W^`Nm6BmTv*eGzpLuU5<)}1(J8i~0PjrPM^4&okMU+Dn!84W~
      z8=v@2v2R#6Q5@fKJc%?^O;G}?bWlf0YDWYGbx<c<<f;p<vN}fHST!Sim3mZ%Y3#_V
      zXu7-ioUVPvGH4(Xh-Rzi$)H4;3%W_SlzbI-Rcpw{&gu3=z<B^JR6Y6>!e77vzzBTq
      zb1;Jp%rXlz#K8=5FzbNX2!R<^Fe4mHih<c;VbUB-ii6n!%x(zGn1UJS+$K1;eYhQj
      zxM|95iW_Z$8SNE2+B63<!@;};%$pFHSq1ZmgPCDqbQb0@2Q$aPyaP<(KQK=?m^lXK
      zJqt6>$rl*8$I6$uSr)iiDwyRoWR^vBuunOdWd`OG3$x0>EORiQ0rMpUW<|kds(&YI
      Fe*g_ibOita
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O;6NN6g_t+)1j6RM?nxlCPp)iNCUc%jJN?OKngL=$o|oJmYTMYln(H-U;~K@
      z<JuoZxUV#Xk7-!6y&vbEbKmLvfBEMxfF;ySln8Y{?l~t>=yX-&?59z<?5wM3qqFU{
      z0vUGOGW{0HNXDrNgD_W!zCo1<Z&l(u#~;00oP7uh<u5@Tq+bbJb+?dsU3opN-*kVA
      zBjJQ1_MLW`1hL<zGQUeO)>Kzo7{C)7CMtwcH;Cm<FWQqyN9=`?P<53j!d;OBI?szn
      zx*r@88pW&JbEHWaRL8MQ2ycpqZuTeGv54g1f$-$dADeoM2Pfj~HHKjNGHt0OVl(UW
      zZh@cN&uwp3Fv+vOxMG3u(#AAi5yqJ1yGYo*97lLpf2ev_V2AB%nwTZj9@QmSZPiOW
      z*$T9;)BUf`qCO{Tyx0IggM9l+F!aCSY>2ZCX9j;OjrR*5E?}Ky2%Fy)BZ1G1UBNI%
      zjcXi6Fv=NEU<^;0MMqUU%g_}(=SVA!V<K1h#2t;Y8r2u)nEHpAQ_f1z8s)6Bn(^D$
      MsGOhhIz!D}0jx{RivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iTW`}q5QWc{keFa-3B7S|X`1HJVig`hYK15*5f@WcB+a|yn$*blBFCYKUj;8k
      z;(;H)k3yVHtWYIuS+Zwm&z$)@yMO-v`VC+kTLsJrlzY*@`Wgn-i43jNBn%!~2Qqx!
      zes4Erl)MVO(2J4+asn%v%CRahuqxx8b@s%);5T6=kl*zqKY1?jwrXdZ9!Phfdhghu
      zoG*?QI8o1PC9xm%G?`jQAh$11ydo~)s)+&&fmz#+yu(4*_2RbE4LpI8EnO$*II*wR
      zX)>3b`h9^)Hp+!b><C<zXOR~RtYsIB*#*qV3BCSj$Mudsyio*Ge?xMm5iojQvM&Qk
      z@A+zNT4-RI-Cd<9Lg2QEJGd(_$1*kIy@b>04iY+5s?*gPL$>UXTQ2BoI;zo%iB&vg
      zBZ?;)ZD@)#t$8{HQZ_jS1MB?ZkBpe3p~{VRTmCoh*0|eeG}=`;fnrMzV%KZ>>I|2r
      zujeB*Q!)x3J}1Q6%?qpU09RMIYIBw2*Qhr(w|=7dgYgVZzKi?<PpN%|YmDk69j;@R
      zD^_3*H|V0G5^fIF2Id*5P77E}J8W}DsS5Sd(m8H@XE<t*AEtMQ=H^I}nhV^+{j~fA
      z?G%W?^2RwHOakr^@a52BF-7<fxJ($qXH5rF*1$BiFclq4SqJluFm?vadJ40lgQ;p@
      Zj<hg!9ZXdRb4-{{223r5X$((e^B?mO^)~<j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)-O;;R66o%glgy{^OfS81+QA0vtfWU-=m_+gc@{te+Fkv9UBuY<DIn$)4o72-n
      z$VL}#bfF8~`V(B}h8*=Ak86LF$G5s07@6vGTu@V0eeZjpy7yM`_dmb?31A#<21f+?
      zD_$eNQ*-lWzm~6tHTOz>*00?!E*9qfpf=~qn)Jd9+6B&~TJBqQ2=w_uCI9lO-K2L&
      zOrYbI<2m6Sfd{!ls_3k5H&pD&!lt!t<z36G<X6JL@hX~~p*4Z_8NV#EXhWxo3=Dy;
      zg5$}hMy(`+qE&LGKu^K9EqBcd9JNk1+rz3;7Z^xKY0AW;z)}CDCj)^C=??qs0;Xrx
      zWPQuB<?5paMbL5@k}Dg5&Wa3^RFbDZH&oE)a>jREX@`#QO=fV0AgMV#u*^c>Z4>X{
      ztUx#8EUPo@VG5i%6m0Jc1H8wYrUuxv%c2+ORNDIlZv3yJHXm(?g_|5&GjM^~b-b-c
      zsPrzH7{DOYVwKCvVkt_}sa$IYmFp1Os?-QW-!m}6d0na;85k8XLb(%KfwT<d1u{<E
      z@yc??z&NA1R!O=BuF}KbQYlrDubKD&*Xby?Ew^EXtW8@^wOCsqLxGFwg+E9*8|4`D
      zT##NRtVaF|ss^`BoWki&+{JVTQ@m8od5Eu{x-JJgCO!nUGSrF_aFV5J=^+CrmHNDi
      zd$=E0SjkL>yfDlP4=|w1TdNQw)#FG??_(1MEK-kqhx7(DdaZIQX{z0(ZCh@IGgT{~
      zl7UYIPFT^_s2%UcG5%vFa6Gn2+~R~zM~!b_l@+t1Irk|V?+auZZO*g9S6kA+I*%jc
      z1;5ZL`4USl%CPE}4Lqk*Et<zt@qTPmv;qnmuxP^`;ykvA_qkbblxhwQY?ZGsOjK0M
      zc9k7o`OvPeF3fH74P&DPGCDb1A-m!?0$a{I>P6~peQd{6b<sz;HvS#uTm1&w)r-c}
      zF|LYSwe!~)9=SC78rfetKLV3umcPIa+TO%*&W2+<oIn>>^guVYL^SKcn~^m;hcgw4
      zeVIh~iGE6H>JRj;5AWiwzwqwxYrJ0=={diP{*j(sH1Z4Qm!fej8ZSrV6*cZ+V&oTU
      z#AIXW<opgfZj<3IBTeBfrg0u0A%_`^VHOjZW3SKC>Rv>DI%Y`dyK$K(yGcT!ZbU*l
      z5v_T0vfTO&{Fn0ce#{Pj1N&EH!i?tGL`yL0OrkK(D9SD~+%vn2xdY_b{b7@PX5W1Q
      zgNgeTQ>Rj8(4A*~aJU$2EXL!e;}}iFP>EN^S<=BQYha#gVIJyWmUS>2gt1a!9wjg<
      zI+&scMrvW!bTCC7%qC%8q`<5uFpqUGPc$&T7UokO%o80<NSH<n%z6UzR0s1+1M^A?
      z^O+9jnGWVl!hDqi^E`q1TnDqEf%#esQ_{g~=wQAf%(p2pRsv(=dU74E9o(k!F680c
      c@Etnvy%wmdlW;T=KTzUFt;8m;;Ss#}7l{i5P5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{kU31e$6o%goCKis$hYKNvwtR-zPCx`G4GmC8LJ~j;kfdQIy{TdgTU3@hvfQ-2
      zC>PwcH~l5OXm8RPF8TxdqdL4R$;RUxjmOfS-S?dH=$zgC@BerI0+_`{5hDtd&7f=j
      z)b_1L*tS}6+rMEgh3(a?HG4U7+U_IYZM#8SL_y(vuC%WjRk#>NO>6IFeIVd)G=<T-
      zUf{*|6`oY=+^9=oy{nVY+pnD;9m{uurnMPIUeFX~s@n>M#jxR)a0p{2iZB$8*<RqT
      zciX#ewB_vju0q)k>yE$eM4q;@$wJ)nIto+yD1)__S2!H*1#YBpDc_?HuV4l&WakH`
      z?tZiJSR)+x9HMKD!qKK1C%G2FsG&2QtW*!m4NNGEz0&>JO>`wFoH210pDG+@2wm`p
      zF-x`EjT!Yy<zNgUEYo*}(w~w%w{^PnCNAJ2)6r!p-IU-Y0I*@{H}t-BjO2D0G?&~?
      z-M|$E!>84tMJ3bp*0KdHV~gpu=0r^|SarQ-D>g9Aino)QRx(2kod-32LF$s0Jr%t4
      z8ga|Ob!JRs?CFWLG6RbKa-vr#l470hFmRFv(`kbuJsobi9q$)fhbq+_19ylYgi$i5
      z3psD%F77Furgk9=eb)(w>M1s1C#}hc=!MEoHR;Sl6AM^mKw`)N$At#bIRWdzDkd<A
      zv{{cr-{+Y#u&QvR(=)ls`2AHLX)TV}IGbPEiP)M^EzpB9mlney=2`9?3xx^p?7^#|
      zx5DF9+6=o<-Cg$diJcIxqigyEasM$B|A%><l~K?~p4JgsTeJ#%8@1_~tN)<%H^(C|
      z`7H4b%u#y>A8}MmbvTM+wCI83IKe1-RK~}NnoZ?MXF7%PEW<2Uw5nJupWeqOe{q;5
      z7)_?{CBe;9k_A`z44-H24;W5^7<8ZB$GKs^1p+Q6F~&254}g~lqxicl!AuG;D<aI4
      z1T!hY*o0ZjfvIFLRSBjhz`PJ)W+a%J1hY+;mpL$3Gni`<j3vN)E5gi5FqQ=K9budt
      zm>U_)O$p|f0ON`<Uq~>wB$(HP`923mZ(zM=ZsSWn^${7^z;pZf>d&DK9Evda@pa}t
      zuz}~!?&HDm2962S&4F3MqXcGIs?3T|nV&_N$5Lfhq{{qCm^V2vt6629NH9+Yn71O#
      rngsJyg87XwzvsZ%8O%DKWp$oOD#go14PP;T3~-F}ubAgaA78u&Fon0I
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iZ%@-u6vm&6Wi7P|PCyj@ATa2L+Mq8qffx~75GpU&-21NFl#;gBbglDa=^IRZ
      z;Ro<T8PDx1n(a1A+H>xnbDrNlr@wyx_z7SeO&wDVc97)GmpF3HMC_brarE3d5b<I6
      zgWFEMn0I*gF5)pyG94PjN~QWrRbyy~G;oG5{Qr6?8Zy*&!z9dJGaT7&W#a?k=hA=2
      zz3@JJPUIzl)5+2>2^1&I9)q?o&bWzdxNbp*!7%HF2|vl>K2N(|KjI8^SNLAk^U_e}
      z<)N0HhXaOIHOkmTb{M9`FySe~T6NJCKZBLfL<gTdpMN}kFDWK&MD$X_pa(qL7ZLHy
      z+s#RxfhCgqBrw5n&%!e9Gt5zu9Q0mB^Xcaq_1Ul|ixvIIaPZe~K~>U|J}VX;W0ibJ
      zJLa>gC{j4ndgRSc#c*JtL03pA8kx&82D2mb)aUI`u4!5QB|ej5BN9eCrWMe~JPl2*
      znz9+nx|C`3Hd<Rxo_>e<jp8X-^fc)Wyd>=_+@Pp6(%~j%DWeL^;TCm~Q60AnwSjqx
      zq|*WxONVXxN2>Hz{mv!sex-0^P%Dmii{{oyQZ{FJfQM!I8)_#(3@YEc#G`S*Jpz1N
      p^jItr{sAr#45Qzg3T9ma(^kT4s9@GrFvkSrR=_k$n9X7U_8*MR>%;&6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jTTc^F6ouD;LWepEA~!_^xwhppauX0Vf=Ey+F%)Xj7aiJ3J7zAXor>`{`JgW~
      z@xdS9k20<^om6N~)3meCnYGvYy3fp?zrTJ1SizGxx&)?5Ud{O8I!4iVjdI{RtHy!v
      z9-Y3)9G$#yEZ6daIAQ{m9d%7rufT*~DH#`Qg-dQ%tOR;@ZO;y#3cN~YI$9q1g_=y>
      z$$T_Fn}%b0B_kVDY_Fu)N#z7$&;6p6KsT=Gh(i<T&)A-ITyxK@%BgwoSOS9?zhF8!
      zvtrA2v>6M^c2!`eGfHy`I|4oag=bX+raQ}<<N~^9x>og*S+LGdUdsHo|3Yr55ztCj
      zu;<t%PhcpSY8Pr4W4b972?*TLF^;<e18kGy-3vII^IAZsxnz5{!jO^GX5_G{Cntj@
      zbv(cngD7qZnpZR_qIot6QXc!+vRNcwcQTdNFeecA{HolNF-aXMqy<K)-1mLQGQE~G
      zC1Rf51Z#T7lKE7Ky{yB)L;CTq+HXWb&*l&-A{Dfc6DVtcwKQz-tg5WIM^m}iIJI|n
      zF(_-;=J8y}vN70jmvmXbRw-DAwtW7ETVJbX`8;sG916cZd?))5lTR;KeO#S#72{P)
      zFDx$oMB)eQF6jJC@Cs~FyM^nl(hVJMpr0#tU;sDiBCA2%3e_5hSjnVej6?}5ydzcd
      z^x$Y6x4*M&1oVd6yP>(>kVNJJ_i#UIe?~hAqOpCUj)_*lJp%5B9wQOLf50)q2!5t9
      z6S-Z2nXO~~TMNvg5@rF5?J%?Bbu6{Qye3Sh1I!9mLzp$yWY!gvd8>qZq?*jSYBFbp
      m$#sC)h$geCg4t5Q<drawRWMsBnD>PF&;e#Ug4qdAWA`5^8ZBi2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTj$L6#fp>ZLL*sxq9a&EQ{Kp51K%XC>kWi7+CjxwmX)ZwnMtD__Oo{6CeBm
      z{wU*_ZiAcMZkn{`OuyTlnLmGj{RXg&hbATnYeAB`-{Q#as@Ofv;^?Wnui}H&k#`_P
      z_iZF&nPesm!qQmeC8|bPR%zg#Kl2ClhQtW9-7pEWmxRNHH&%3C`MLJq@xF+!!i_`{
      zxF=Z}CPBr@W}9HVQC(?c64xA<un1FLn8*)#+>vQZbRtQpd&(D4Tcn}x%S9tQ4SR(3
      z@lggQu|v3`&J&puR>u=AvlE;|#IkoLeEI44y-qN)8&0k<1Urz~$5ed|b=29$<|x#{
      zBEdZCV{8y^JGg_pglVSgG4EwOp-!H$z<OhpUm?l1y#d>~Dpp%tEjd`m3R^LJ$ZDg4
      zRAJ6%WS^)!_2s)_iwmO{?TMZa`w$-^Pnz%PBn*9;++F3a#ht-ltGV^)@lV)4xSoK+
      zZ=1isbH={Fb*`Fy9ByEWJ7!=SH(5njb<7lK3$t8lr#Z}*4%_@kqs(S~;R3h5bJ;hj
      y70bJYxYLJ};)Hv+U(#Q(oDO0!ed_`bh6C<#z}JPwd>P??z(o#2{Hzw9YySWSq}l}l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%Ur*Ce6#pHlTP;;^0wVrHLD>e<01uczj8imdst+>ve%IZUn)cRoE%>qU1rs0m
      z0DLIIxm`1rb!pO`bNl;u&%GCyf6f7H;&~MlgjHW<&d(@xdU50&rBS%$?8nhT`?Gr>
      zMK4hP`%p$wrBxV&rLo{4szO+a6W=-6_WqF^)gx5)0u`jM37_ijSl#{D%e4Kj`&}Fh
      zCltze4%38lm8>*61mj)YlNKg1Wupp{Fzp6Pe#xS)OxmIwN<z(zJrQ<966n5IG}5D>
      zPiTyf^8Y+`2{+;sB@@E(c+N0B!B!%Y{U5@U-@bm-Ax1XD;WdU}`Z8^Wfv*U&^~NaB
      z!~(kujj%viwDABB2{TO7gKnifpl+73(u?{iyF`#J`$NmQGEPSuE!lXAXKcjaYeuUj
      zq!MdBAnP#B5>I{z^ieF9-n9)q8nz-nM&2mj)=3!pG`YLUU7I_Dzh-l7{pD|1zqp=&
      z&2Njpzz$<y;TBiT0S>n@%^fo^gFCFEs~Ya+XcMzsX{R~N7Y>{JN299E+PyQ}Kjm^@
      zP|26~a&dbADZ~kn@VKDAVL2VdWcu0}o?H*u;(%{+jrk(N-+&7ohWJ^|Jy)&(lZxC?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTj$L6#fpBZLL*c<tE;^yDVyhK4=0VplHxk9$?w`Zkd#tcE)sD@Mq}@CO-HB
      z{87d;-3B+i-8AW(GyQHoGk^a6`VC+k>n6qsYoW~DZ%OQ)tHiy?lK7>2sFI`BXYYuc
      z_pwNX%uE=BrIE-RRE@B#($Kwn74+#1h!JYLk&LoE!l#BeQuI&-x%S@izWA5E8~ZYJ
      zPqQ?VVa3j7n_#?C=fcJ~ZaXkx5hlGzisL-#h_vN*VnL{TD)8gBpGLYbH;wEf>Jm0a
      zN9miy4q-xFNs$s(M-y(c6CCL$qWjek#M#M5onYv1IJw3U>`-KFk#-{`2{Vn&VW@=#
      zf_d4)*dQ!Acz}n5DW>W%A7nhCPM)#aMq`*?A<4GgKHJ$UR$E&wIatODTQPjV>S+b3
      z!ko{@K2>=dh!2rIjrrk=_CimGeTa{dC(ZYC9ELtk?rw3{;?CgJYHmGy{uA~OuE*f;
      z+vXK`&Db}%!&S3~!(B{r#|%tinpJdF$Grk=VTLR1G>f^?VVl2bl-aD$U*rCFE_(*G
      xVtcm`cY2UgobU*bOZq;`=^z%<x32MIFyH|Pd|PPDl@b02T;MRo&uZbh_7C4i+Ry+1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+OH&g;5XXBkCToa*2#D_o$|F1?_!g8$A`e}tQZOF8xJlN{>Sov4Y(y`5@S+DV
      zdhntbKY?Db%7Y)k4`unE%_K(XwX9T<>6w3b|9Ylpe*XIYgNP<+EkSL91}(Ric~)^U
      zC9jex2Nh>3lk+Oe8>{-tqHk2p8;)5q-5^0RK_?=$O;udbfahD8&2z<;h&#dwiqF`t
      z9b6Z5b6AfIoAZh_nSEM+WIQ!8j^SFF^}x4Xi<ue83yNjEl9{Ak)SjXQX@WX++cno}
      zm4fMS7zM`^)UA6(!^s=IEp0U!3(9s?&_7WA+Kp*JyS+`<^il19&<jer*vje?qiEi}
      zvmzOG)B|>@5u{mWFz?uwE2w99WT#N0eq=YKB1wV{rRXpn5!3}Yxy|zd_NPz_5NU9D
      zr#BN2DXYzty_`>8COVO#lXMD+Al{Z}h;d?4<9s?m8Mf7e=a)=hqceiqAId%}gcDF8
      ze2b#7T-OWQBg-^xs~l*QMi-UCG3F(e8n;8Ed#;r;t3{0_P@e;<1PjriYpkgSDMO>c
      zY1Qy8+iiqDhhwXRGmRvjaBkH!1&z$Iyt?3?T?)z?T}H-wj7>RFFRw+>Tn_bu5(uz{
      z-O#892GU6bX)wKB^gYKx>uWS8>us1=g|4}ZJ&|G`mFEQQs`{ucE(LNRdrOfmqlpxg
      zJbsnG8-lFo2Do#LyC<k0ZP<FJ8!Na4$#t*h7tKXm-mHV%!!aQ{9i0Ofe0SsJ>7$su
      zo3Qr4+JF_qzm^^y8~;YhuNb#c3cpGG6J3V(3hl)xUDr_ub;5!Nb<sXVk)v+fAF8o$
      z7|Be%$WzZSi500zq`MDn(ZMem))U0T>1$!|R9&Ki3pz^2l=~dQNe~V0qg!-*JKzEU
      zvtf)rh42TkA20%+0S@Lg1GB`!40151IT#%<s}V3m3TBvt8DU^<voNC^%m@dQ2h6<)
      zn6!c!<6y=anENbDhJzXBU>*R*h=4h(U?w@3DF()5Va{_fQyk1Az&wtCxu9S!axj+|
      z7>|Xy!oghPU;@C@B4Dm6m}w4XhJks`!d&BEW;mD^fO#1KBd@l+P1iY?SqA163p3Bb
      z%yKZV0rMsTW=_E@a4=a0<}C|zgM-O(Fz*2KJ_07EU=}%;B?jgL3$wz(EO9U&0rM#W
      jW?8}9q+2*F`Nofh$A)KDY=3+|w{WyIA74FuqE~+dSW&My
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{k&vz456vywQX)}aTu!RER51>Gkwh#*bK&ge&QW{7r_D70ArITcw3}-UaGc%!V
      zbm2x9Zgk;B7jAUn@f>jz&vD@&;2-7T``)}_&g9Ob&3*UX_r0Hc-<|jGe}Df&M6=}P
      z>42c~j^8am?Re!@&?&d$j(4TJ6m(WLSF4qd<=D49yJP!to^patXNJCr8WD6h2%YlY
      z)n=byT20W%oa?*syr8?qYNqN^(Co_O*Q<}MCsx_Be5bq-hpz81o>EOvZZT-t1sbA5
      zCgsTxbhzsJ_FA{ou)|HO;n{*lt3lK9YF6mVwRYy>wi^kW%tq<&#dSf$!Jco2f+n(0
      zynq*E`c}t|cCDtpwO)}31LXi+#t6zgcD$ynqs7u-oIytmB<Q3`uhJ<&M-VN0yAY!*
      zjcyEq3&p`xj1V$K`<ae$M`|+9n<ky6GsuJ3RGvxZ5R(~~VgPc%a~<EHbLgBUO?V-x
      zyqE<Q5F1n!G-P=(JZclhL2TU$!j>HxGy{J_+3+JE@h34Ww(GPJKU6GL44Oq`TX|#=
      zS5110-WD_lt%{$ngDoDHBs1)*=8Bb)>c@K~y-&FQF>DS>jWaF5K|w<5A^VD&0fTNx
      zK4t4X+LoQFM61@WDx_}E68hyv9cx$Cv24;ES`l<y^(63Y%TL`2TT4CZwbsoQ>q#k9
      zlU8XBYO0f*8dnYuD<s7zAbkih)xdX_?5Jtb26A~=wXnh-r1$sqh73dTIJ6NW{s9V&
      zLg_&$JV~3jA{+V!eFA?svQd80ro^8(6@ct%P50D-|4Cm@6F<@-X4`GWZG-T24DU%Z
      z>4@?QDr^MZuxT&5@^v`DJbjns*Ggw_14H;5#?yI{a`Jh>>L6B|Smp3*Oij;R{EG^I
      z!ahJI{ul5|^e$qr(MzzVk~n&q4r7HAbc9}kinK;)Ohw}hhb1!|qj8;K7CSO3KQ(&1
      zM<<@aOcIPJ_nZ<plMpQ~=rwv>AHNAX31Z;*bdTOh11<pYmeLs42>%007z{9-<zOZl
      zm}M5`JO?wu!Q2B(H3R0HhPlAOOfoR{S(p+BGs(eh0j8D#Q`9h191O$;uBpz#T;yP;
      zIhaR)*~x&J(J+^&tS`N9W-j;W%I~R}X|XWxU|5r(?wgs*r+RcPJu@y~9%sPJ(wv%^
      z4>*{42F7P$ZgMd5983h5I0NQ}hFQRfC#CguX0b=N)17(B!c^$)U}qKqb1&VQF97pp
      z2F!<aUv=gqZf4e*nfZ!^+2m$sotv4j0rO1;%$A;+8V9q@z<kTXe9XaYb1>fl=KBno
      z2O6f%!8~MOeqdof<zOCiFh2t3rwo|SG|VGzfOnVy{+Weoa09%<4e&33`85N^(gWP&
      dU|I~!Z!FB`988OY`2#S|GGJ^C<EZDP{T!jb=d%C+
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iuf95QhIr(wMk8H7PwnOB!xS0;+*ZsFK@qK^1}ImWxD{;LdTkjw>IKV~4&<
      z-y+<ARHQyY9||$+I$)`);AVDrX6M^)y}tQ%bq(MZwiM(Do3<Zo7oMw~2A(#KJomMB
      z7<li8N5%*5i>shOXlA!?Q5FcrJ;!&V146#jJs}j{1*bwq9;GrCP$bk0#}~)3Hxl8{
      z9JzwfFapbTPt4Gf>oi%2#?FM$GO~x<@z4oXD->oV4g)LpgdY*sI$a|OZSCuhmB`O4
      zx`HJ_`(ECBpNcw~Qg)f}wDXVi<rP(1M16LML%z&z$2d2qrskTytqr2k@ooKXrkhE9
      z9Gwd*(p9i}8S8k&#IZT~Lwxps#LoofY;MuW@KXscPenL!0-yPVAPz0jcjV`<XWn&N
      zx}(i1dHxr`k>sm!RCuNFNIWj|e&E43p5&l%lx5&07CDx0H}F{DRRLAhI3t^P5*SeW
      ziTWo7G-jO40^Vc*r4>h?NvDV1Tr$^q#-?j@3)nn9*NIH7V*SVV^;76WG>mLki<o
      TJjO<1SivUGay);MXtaI<LSd)A
      
      literal 0
      HcmV?d00001
      
      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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
      aKcAH{R^l=z@fsr$ghYsyc-{WZc;!F#Yz~tE
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+iuf95IxhTv1<%1p)F8uO>eoiwF*3d0*Ff~4Kfv?A@5GIq(;6(jzjxd@Dd~*
      z5YK!RV%D)j8aqNOdv|uvoO5Qp{{832PXPNc6wD9`9j|YkyN=QJUE?%#o%_at?;h3P
      znYCWcYm4*Oj&Ow+D##Glrh-SPEMe0RI>y<9))-}ykC1(0dv^GY@V019<vs9QeJNix
      zKU-fc!?C=MaS{f$*GbtaH3*qkep_gm#U&jIRKkL3d*Zn7HbqdknvNjkOuuD04J)u^
      z9B*dAQ@ckfO}BEfA63Gff98pRurWPnWS^jWmMeN)t0g{us7Vuvg4n#o5R{Gx5B<O;
      zY!yppdN<{H-1Mr78=U)zcQg=Ib=<;j!XmT0w*qcnj3aCpld2a5j=6hP1$PPg|LPLv
      zr9|Mn-H@=vRud(uSmzJjjUdw7rj9La5537d@gn4J+3bg0bh@_$Ba8O_i7uxV)R0PL
      z9Tn`b5~C-S3MolR>+&*bCw@O@i9=gno7L3+Voy3mo)u^Lnd3hz!-H=gNAn!jqZm-j
      zm7U%1(7y5B40L{LJOhsy`xuvbRc0jPa0LrI%he*TGK*a0a4kZsSmKpbTE<GO@Q_a=
      zN-O8C4{-Ar?tJBFsF96Mo<{uo5Eb(i?qMxv*pC^MaxOo>#$@`-v2<mWUO+KUf6j(v
      gDJrK|1}III_=Zb7ia1t=xUmw~xg6rL8(H4_3l8NJhyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{k-BQy~6ouD;l*Sqb3#}+B$WKXIAOg<l42&ZRjMeCc)ZV8hQ{v=@X;aX5@<MOw
      zj2AwD59PQ{8Y`yhMVoz2)?VxD&Pjj${_zvQHXdg&A+X%`d&VcvHBJN1I14>@$2bhU
      zSM|51SvzuV&-TMC6oI9&x}j=HU@_>ljmzEE6}SJa1g7>K-wB@yyw=UJmWM&BCzJQg
      zkJg1{xR&2GPQs4kw^Me?4FTn4aBAl;iR&7&Pz9z<$G6}0yr$i$TTRy%$eTgSavN61
      zk?VL<3D2Ca!0LFE;S}}+GQp*9cLY|(%ZKCwns0e__uOjPAKuqw{>X13x6}w^+jdz0
      ze9mf4FOTX}%u^atkb}To4GXv@FvBJ}+=GylY4$>Pm-Nx*6h8)b{{|M)S{gEENy9@d
      zGl$wl&U#8yN-`geO2~%g_6Rqrmuo6Y9OH%DkP*6uGAaVIRMq@sN-7#BsS+smRP<Uo
      zg5A<!;1Qj8Z`7%n!plYhLA%^Z(Cf79V@IBnLh|r$$*0Cake{Cn-<%8-dB(W9##Nmw
      zg;%vw-Prt&+&9(}(D<F>6?j7JQ`}%x8R&2m(_FCwGq^<;S>-Vssa4Fel1T*=<AiPA
      zk*aJZf4h%6Us(<UrlRfr$XpvpVsnA}co4Tgr=0{**<S5qF$s7;z!#B6F-G_YI8PW3
      t2`gBQ-LAl_^|AgX0dt%RQ^m$8%-TX9n@N~AgfYj!l=z<|VRoX--9JY81Tp{s
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TT|0O6#kZ$Cd4RM0r5^jXqy7DfHOK(M+C8IWE5)O)3BCkE>4<?{40H_Gd?&z
      z`=cDsCYerY({VCM_UxYXUC!?Q`TO%1fGX}wm|$3GdtLpj>*&Y6tDl6fv#Ia-ZoTow
      zFw7Qro;%#-UML~UusAlgpOs@+@`JX1x@8Rj4x=&T9@(B9K4ExOGRC6r`Bqnu*Nl(m
      z7gKjkudN@2f$g<ZX39;5?5=;z6=ZNhg#?*l+OR!-&~;lpXqYXBGvp25GM%Ow*dk6Q
      zv*C%|VJME5GT4h6!=!)e@ql4@d_`Y8gX)<s?|e2b{{HZ#kT7D0q>CH|sm;TEKX7SZ
      zN@XLxlVUw-cumFv)qbEE1q|0!+`vtS8A5q$2GqJFk72bm%6gvQfO=PxaGRm<UtaP=
      z6g!s1JDu13jA544j<}Ms#4u$>S)cfsP<U6x3RYu<;#BN}w4beRNY>L8j(`$%=N$E1
      znzN=L(^OQjMr2elL{>~G8Z{u!RH8p}sgUV9T@l&=8TS}6)OZF(z{j(+f#M3$I!zz>
      z-N54ewm5bRDR*i^cte4NX6T)yJDEdPoLh>fC~8oYrN69I*4BSO`A*{rsPt9n4?LjU
      zhqy>1EzZLwOjAS^n89U25u-e=MA<TCX(X8DFrP4N(~8JawEWc`uKmWXZxqEGxoG8a
      zgs;X~2|mLeEG7um1VPgBg&vlN%byLDOa1a9N=f-s5+tn1R9@+!JZ$j=S*%AG^KssQ
      m#dWg7=-EgUqo;^5QpHr$#OP^a-jSHYF=93oF<Vjpw*LX-=quv@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TT|0O6#f=U6JivsfZ~;kKrcWj@Ssz5L=jOVqfq;vrfZ1i;-sm_ztWdF<AdX~
      zKg#iJl405=RVS0=oZWN2%gN@~@9#eV)UYjKjA7aGy4q*g(b~SN9fz*7sqOmie&dy{
      zbBlZJrw(_y7fQ%6ER3u@tI9Jh`hlgLY?*zCDL97wecQ9chYT-D`bgMa-|PzZy8hny
      zWN41zS=vz;*q)WKQf@Njp7?F9U>xUENRSz(blc+xUAM)9hS733LqYdV!)Y3UE%IbB
      z7arRkhQCM|m`0sp!awnNKyLp-J%j2QF7JFaO#b%pxzLdEL)t|RgJkh=&ktONrBYeX
      zo~77NMqZb3g?iu7iUNkKDz4!=!!)71HUgSmQb%99lx7_yIH2LxCER2v{*#wH5yg&a
      z@=oU^KV_I9wJBFJZZk|8QPl^2Diq#Pv4rJVp*R;iA$`zRHze!X3R9p&-5H>s&2rWh
      zWEB-vtP&YD43Vv5G^GuQLzU={T*|_<V_Tk#4LSsd2pMFdCk~Y(zZ;l*&lYEGKI>On
      z7lu$Ib>nnT(7%{RPMlWCCMj!BmZP^^sjjYlgYuQ)F{t!Z=ndSZ+Iu)pQ6;X!1x!&!
      z9hk;NLJ?5`m!fJJGZYD?S<EF2+q5I9luF@p5A#29;|pamM?Ttl5aFwFRf5lO3kwNC
      zEkTefg<=nj!|jjz+NHDh6_k?pM<hsCk*U4fLwVTZGqSiJVa&yKeHPcq4x?*5ON^Ew
      bM$Z&e%MznyiFrd}4o8UDNW^SL^V|9Zx)v$g
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{kO?L}X7{~vYXhy_a(Rx>JZPFsDXlc=xsL~XN=%O2@$(0V18D}yn7A$O7*zh?l
      z*wi@|K7bG9_}|I2dXi@rnLPJ-`9Hts&b{;J@2}qghVd|sEedC9UbFC~?iQ+ky|5D2
      z-Ajd{U!N;4luC~G^0uq%+6&W2DfA^~Ze(>Sob-cQ;q^#mlU|#cLf3@jIpIx(d%04g
      zXwk1UP4Ds23wzZrxVBd-JPrfLs|lX`qC#rMuj&l8Vn-HfSPHv2fxh3YFYBOeFS}Zy
      zyX04FchL?UvyPpqaK&jT^e3Zi+KF+6ZT@Rd2MVW?3pUslvYuVnjaPO>KY4W55OhpK
      za+9O5qo%{6(=cdNg{`^#l7)i`RyFozpl~>gBRHzi%iL+-ceU-A?VSp_Gt148DhG0%
      zE%HlLZ){di<(Be`MzAl7lQ=~|hGoGXL6F4?imDlM%&gb}s}=U=@}0dc3@D^4tsK)a
      zpT!`C6!x&RjlExJB}lR@`)#xpCys_IWN{J0Y{m4pRs%w-PIxnB+HeN?xrNJoRV%dU
      zGlG$2UYfDY`Lr;`*JU!ys<q|oF$S2qpsS8;VS=ZqZcKWq6nS|qnD9uu7AE=j1MSko
      zAU*4$RSU%^w7MRmv7J?AJK)p89Q|Qr)6d$LzcoVn?JI4e#1TSTtr3imoB7yp1{FQ)
      zm@CrTdHXMzBg<35*8FYb$73H-=8AE(ovSieDgIl7L+8%_MCJ$WEy(hj;Xg3S+%fE=
      zHQ36-F6`!t71)ElR54aJRZX^q{j^M{1L%o63^QV~(u3W-YdG|cW~)J0<erGcv#pd^
      zT;Ujw$K{ihi=<h8WDO_U0jCH!9clE$2>$^O;xtwGoy6H#Z4*rY8gk#;U}i;_b2#4#
      z(?7I^3+*uTgefJ!3~*-*%q0nCM1XlH!d#JHMkJUggjr00xg5h>m0(5%m?aVBnglZ{
      z!8|3*vjmv280NYJGcLeXMVK2B%(w*O5avY!%tQ=xQ-ZlAz<46elmv52f@u&YOn{k;
      zVWuUR83E>v2y<J4nUP@L5$1gYOfiO;m0<1&FdsyiyAsSD3FaeVJ|)1+#W43In0W!_
      avk0>w!OTlAUkLLx0j3ng+>bsd5B>qcZHLbQ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g@)=Tgxg~p&+7yy!rrEzz0|a8j$!{FcECxH-~mo*6f2UTkvP;my&2=
      z{Opf1-n%Wd(iTm#-I>`l=bU@)%&*_yegIg&s)jCsiLzTUK0CHi@*LwZaO_26%X41t
      z@0dIC=!LBu<pvs}0%IM47pNXWd4AbAT`D%w{mmuNvue3kuqN<2Wp?D;@`@Ff&Y7R&
      zi8O5KmW{o@x7>1@m2^QMy6Kfv91-;D&=3>oGc8x`R-6On@5=*Q2_#IfDD8suEuPmG
      zqrstdEHKsCN+XAyK(}}5DxYHOjK8ohpu5sh$49cL-oJar23m?C<BSoAl~s`Ul_W2d
      zskGTX#!b(*RWYzUH>Y9vs^&G2aR`j)xPwuFeiC`h1)O^n7``NS{)GhY35@@<L2(RW
      zj3XZxSpKhuHkY<bP0OVVF-%YplFDbgDIL?85$Khr5(9R_fCf{o>7@&dPwU7aOA)FQ
      zX;)-GX+~0fCL+EHu54{1C2Flk;nbuCD3g{>#W288F6vmqqgs@Fvhx9*%7Y4vPPcQ|
      zN<>P>H6`YIs$&@|#7AqF_-5MhwbF5+@jb8N7uB}K$2{3`f9JUvjFVb~o^HDRQTov>
      zq1iQ>?T2$9mdVb}ogw~}*1Dk6f1KVRgBn(Fokkf#5)L=eM{geW<0i52D1locnu4Mc
      zD-9x9SNKT#m}&GohCXDfxcw7%GiSJOW)lypn9Np@%6_5mHPvM3ag8*d6aPA~Y+wZW
      z&_S}sQ+Lo$E@v@EDgyH`>S_ywVNY5n@vw@8260cgyd4thHAtOE;4x<E+c(HOn~l+S
      Za`xnM9B(KNv&l?z99%k^c@`Fv`vYm4Mm7Kd
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j&2G~`6ot=i+}IdHOG=YM`DrOsNeWn{3y@kN`U3*wvY=@e**WgWHL_=rV^bcA
      z4Vxmd-~swjh&zr|q9$3`bMMT#-#s%PU;O?32f!xQP0SD;hcb7+C$W2?68AJq;ur3L
      zO5S%4y+a}Mx3Nfs%uE=Bm8r^0Rh6)+($GEI3PyNWV1(*UB%|y#;bYUA3O!Iku6u8L
      zU;J;r8~ZYJkFqq9;e?r1mtgFx6Jeu*>kdp<ggGyg;!~dVMcVQEu^`ku75H)2Pa~a|
      zlSXzL4G8Pgt&E(+HeptsNs$uPrWag#Cpgki#NewRh~v*6w1ctTuyd^;*rCYwRl?eg
      zP-(V$7M2KRFr2bMxa(jU_XrJE?kN=uU+Tl%&G=mUdB%*z=6HivkJ*C}w$bdhx|+A*
      zU=@#;$E%Zh^$9#KCXj|6sXPtDyGWmHWBl4Y*L&p-yc>RI`PNln=x@W>HO@Mm89Z9;
      zji=9k!T!nd3><#jJOVFS`wBNWY7cd|i8;==0`s`V6dl#DP^c~3=16y1M7`{=$tzlA
      zwrh=Z-1))butBw$-YMYDP*TDP_wk@Cf5SL!#NzVhb3D9iaF-446^wdm;lIHptTBau
      Iu%hRae`fc`00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j+fNfg6vn^7O1E_tL~h<eu=GM%(FaW+M&uGNg%~M)@I|-Fq+PQY+-|`?OJ6YY
      z!9T!1%J|K8MM7uOq&;WmJLmh&%<1nxKYsyO#cCcS0*jrXZ+-PW>oD}KZtQ!Ht*y|1
      z)!c3D%Gloaq%VUwkDS0<rt(ZRDli{L9qZ(YbFSZoW&)$@Zs5kx1>Te!nN7Dsr?0%%
      z8lUZB+w$z7W9`S08+0@)m6kwmGdz?<T*4I-c^Cp?4L6W`eZMWErrq|Wz(gZ-Y_DZU
      zuFBKJT-<eg0;Oz}b2qUja5+2)WF)YVU2w)OU<S4?dq=h-58l641Vg7GxzY#}J2Ku3
      zgP4aFm@HR@r3PjN^3Fh0gupEmw{b^coTciTH)7sUyC1V#sXSb-X-V7OIol~+RZCgT
      znV81|T2X$%YDrV1G3OhZiZhOnw!ie<V*?NA-ep>sD(AN9{cl^Kp!O0ePtD3bUXy`I
      zCe*2f5-#sMT~4WiIwz}_#9XIhuuhBpupc>c$5kURGd$fZ>PdJw!P(*S^3PE~PK^+=
      z0<$Kw9Dj{!ZMpsf#qW$qVDh`jU*IXV&v2Ddb)dsFj4@*c#&MlpR5XDbiJAvsq@1QO
      zojR;?N2&7FiJ4Q}{Kjx#Fq$l{C(X@)ByBEm7x&Wg7i_0M43^hUasMLV1_56tJ*HEH
      z|A4cE5&SIZU=}qnJ6f2M4rWmY^Oi7;449=9rmTahXkgxHVX8WqiVo(0Fs%$2^-St!
      fYC4!@4a^5E%!&?XSqJlxFrPAD>M4wsjK-tCEU6K_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iTW`}q5QWbcH#VuECA6X33%w;NU=<!fYK15b6&IHW8uIQqE7!;u<k*y-1usS7
      zfgiw+LY#Hn78+ZT?3vv&bH2>@_n)7?0BoY8V@hDzi!$qL7+AwNv<}lScx-j!@O5wB
      z-j9c`0vXCE)u9P2RSHj4HLBvovyPs)|FrwRmq2aXkNotxz}uEx*|QtFnX=xpKRI6<
      zD{vyuI!F^g@=8wHeF1GZ9?Ci{V8(<FLtxhSBl$iH2Quk7gFp&2?AUdJzLWSWFAlZz
      z&>sn`R->HFVM|~-K8j?*u~q9&(FM%N3FYXs<I0a8-Y9^HKSOY(5zsxE?)oXC`Br;U
      zXJC<1mx4M3ZkV`<TLN<|Qsdo8IhsMHs@GbR#U=e{I65(0C@bkJpCuFbaGyTZp7U8R
      zDJpU1W@ZT4byC^$Lup`Dz!)-1nemQ|Pwt8fB@?J0#989XJzp)ZIq^k4QiCL$;KI2S
      ze$Ug;)ZUq0WY%M*@ojWA9z6Vk`gg`tF!`+W4Lqgx87?vEjCHt-S!S%j9Imj7iW<0@
      zs}0OEQceqK77m-dQ7XODxOR-|-x!V!YWeYY-rO8Zisk~hai=JM!FCG7VEM)|?w$wS
      tA>hlrN3%dU16(AG;BUDMW~BsXuM}pj3}&Sa<{e?|3Yhf*rj-w%{TCqz>pcJf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TT|0O9L3K<p|M6m?ur)#p%*R@kc)!cWvs@_Na+J_p=3&&CSlrC^gH>WFLlNT
      zKY$;~@obX8PLj^}&}MgY{^$S8+1=lNe*OZmi2XFW1g5J_Q~PY!v@_S%&ON)fq#d~S
      z%hDVDoo+R}7d6v19WRZPz(hysm8w@@(ydpu%jHU&Vbo2achhn#Z%g1+PVeY?;8vQl
      z`G)?{_+)4`!>MXVUfpu42`l-sKx*GTGc)MMbroqS0)4vWm~Wf*saY=>r!`YxKzA!f
      zt!&gSIS&_8-nrEf$aY3)&tgNM$GvpSy1-QDiYs^l)iG?dabZ-<;}1oN5c?dWON~IL
      zYI^&wO|2);oy(sn7!ycWf~5=u?x+~YU4c<5_guGT8jg&2*JCiJO^+VKxp;&83B4O_
      z-l^P4zAXJFR6N8a{rEQ7ZzREw#R7t+3Nem6qaNTE6=a!CLoP`3yov&51qP`qI^O?)
      zG9ZO0p=T;r3@|knkFiK6zKc60A+nH&v`e#j>B|L^8Or73(I{AD{2m38cwNO)JQL_=
      zQ3Q7;A%_G%HY8)vFmWsV*tb+{V~2gHjr7ST^oe83uge^{&3eT=wB*SiOSrZR@}zNp
      zd6xL=;kD;QmREzbYn+uhOYx}`X6NRAAoHE$E~xy^@CmF@yN(+i6#^Y@qK`9HpdYvB
      zB1Z!l^wkQ6IFg-)F%ouI<Qu6<7Y0UKxc!yGph2&{yy=^(fh05+xQF{;`3~(Qh{E#m
      z79K<acL})XdyIq#{{Y7@MHhibm=4|AU}jp#MPUvTVdgL&hnXSFLKNmTVe}3#SuFW5
      r%XkupS!rSITO^tHi7*@3jKi$Vw(vX(b4-|W2bfiElT2pU@45FE0+K=n
      
      literal 0
      HcmV?d00001
      
      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
      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
      V%qJYobq1#Y=U*Spr`}C^<6r2(axwq_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jUr*Ce7{;Fi-Bw2xoG{S&2Sm1Z1M0v;6NnKUs8}_Txr^O(+sUZupQUTX59Nj4
      z%)|>nfFH{Ep02^A>n^sw=k$4>=Xc(=fBydZ4WN!EIm|JreK*v<I=0^P9Q`72>^;5V
      zIj@`Vj1Pn0mG6av6Pr8S4RVke)@Q1(R9S{C&+qG(``ro86hnsWq2*e^bA~h3m}%Vb
      zx}nHFFg}}KOx-r!zJ4C~mfKI+(OL}BORvZCn8$*G9At(?!*coi(CKi$X?ASRP%yl%
      zX}3(@66<(V3NEZ6Lv=PvVj>3&8Sm2NKEvkhrYn91#Wfv19GG4H>EjzgF?AxM7aE3z
      zJ`Wn!P~i0#=2fjNV~s)X#d~=$+)+@%U4~WC9($h6O;?QhD4^+d!hl>>)aeMVP42@<
      zcS&t)En&E>U;_`ykZz|N7E=tVnSqh3OdN*U;Wopvs!b=$sL;f0p%7`Bf+}hZOVpO&
      zE~mt#7*ZsW#*wLKjgF-&c#Jv)kvI`lNeP+;7YEFrd!gUur<QnsO6i}-u6Uj_LV95I
      z%g|Srfh68RT3w@6lU5R4<!Wtv=O^+%sGfsD|9QFsPf7a>*Qu(Gb+~~=T2Tj<aFbj_
      zRlu!CEn}G~k+gzhoKUAbLY1o)R!6w~jmmLAHrhUn%$2buHfOkp`*HgVvJ)UOwU<VC
      zkOVv;z~jiH7$f`#T*D^0Fg(Im>^1>Y9zp${fH_Tt*~ZQ^Ou06~ZW87#!5A}ODl{1Z
      JvlnIV{{w#_7M1`2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBr9h7(EvQ*~Bd(Dpu%=V$~$5DQe${1(Aq?5!A%grq#|SxrB5!yG*h{reE40
      z)DP`U8=ZdW^jl~8qdGk|yKL6Y#`*!cFVAzH^PKbS<)455_!Gb)zKdf_;9|q-W)E6s
      zwr;nwyH3lzmd)F(d!+}3?LDVyTX#&^l9m%kOyKOuSU+k);Jn>#WM5pb1rUee1hkGc
      zWzCUwffI%AjeR3)8df8F+qO+<SUG`-n@y|fEDLO=3M1?0?OIpS%LO2cPP=I}B2Lm}
      zf!LZ|mq{GKJ310b3LGmmExFZgRb{(mR81)`U9fA0SvJ~Dwf7EV&Tg|K@CGWc$wmI-
      z_6tk4DaTu|7tk%EB|CdYO+I<Np*RdA@%kZm6(bODNN3${w*)Sv(uHWT)xGCQPQxs7
      zcX*P7z<WC0#|HvaM0semsht<cQAiC}eZ9aI#mmKUR^Z(K)@2hck(WD0*K~@$*+)|8
      ziiWtNazV#MToO3VIL~)AD60+)tacr?dMb)hg~*)<<XEbbE-Tyx9hY&1xQvR%or%C@
      zGN+*)<||lEDPEEXj=)JOKIDw5d0od1EDB6|p=-9~P+QJ94>qj2JP=^(8*21E*YOEH
      z6*$VPe6ypbtgeA0qt(3~?^K8WPJtARsx&pMaI#FbR8?1X+{T(~W=OhdGl#hMKSURM
      zgxq~e@9MY*&gB$og$iAY&~jKKC9dlCa1at?U(gYUrux{@aSroIJjCNT9tj*D@bnDS
      zQACMO>>FlRZtn=p(Ct8(!*@erly!WCd45w>_c1A}99PoA@~$ua3k}~;(mt*$h8LbJ
      z+TC_dt~b@2a3<<aysB7|IGyFsIDcZQAwI5?T=8|`$x-e~+{O4;%Pd^J@)G*5T#qpZ
      zj2PqZC1&MtjH`?rhbbKAjv1K738JXgNu26OYnb6mRXmM%y$UyYqoR_T=`%gd{e=&I
      z;m)lw(Z5;g<LhpehtIDV^B%&YhY-(9pYP$LpF`>SKziIyPa*B4-y$K^ipKQ09x~w;
      zH`wB4A7jRi3$%C@S)vGh%>PNQVD26m&-8FD+{spe%D7L3AJkCtOMDjYqZpa|MU)In
      z5i&dtqz`1c870F~lnl=(!}Ad`<UAR^^koQmvfRV1un^TqGI`wbga~-DywJmX*pmjy
      z?2aI_!Vy!RZ2HO+yaAcb{D%8~V=_Z;9=yW#@3^l{dU!I>dXm!sn8dd@z<U9nv%X<Z
      zebH8ltY#;XnRD^NM7x~+{Q%K~KRgMRaEImVDAg(vs{IgPGqCX6DAg)as{P24KLyBW
      QJ{dkFo@&qfU(fUZ04?jycK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95IxhH#27<MdZ9ppLZRdWScM0WS|I`jmC8kkhP-dwmE+1@SB_2jEO;pr
      z4}1V0g_w1$fD&7l?3wks?d<;k^Ya&gZ9J%Bj?nT|=6sDp=Qxg>VH$-`oxM2P?;W}y
      zMI!t}oDScHGLkB-!ys%_!Y8O2VJl92=j@sHpJ<sPp|%^SAbm+VXu6fkd$E`406Xr9
      z_#&K8DBn3slR)_;E3H1kcoQE>3-h>SqYjg>;08*5$fAKvdSVbtLc@(c5%xtA=)PDq
      z(qS+nbgH9F&t!*iAwE+wA#7H&CL18wN<?yWDm?l5(|a9bW=kAjV+f`%({32}im=>l
      z%>qrVvAfU+3xpdsZepFV$TU6dZptGXWGO3cHD}o+f^0dOSgw?D`r2s2#$DWFBL+_y
      zJuD%WSo0BCM{$;T@?D@0W4+?WJ<-EqGvcG<t@5p%hoMiDyNlfQxHI@`wmXj=|A6(K
      z>p9r`w)hJ?XY31H=Bho$;R+VGV+Iy+l~r`rz*3GjvCNfrTES}Ju+4uos@`r~JID2J
      zT#gND`SNZqZjT{_IN=s<7xY&wr-PVG@0{b#bighLe4T5o77_jhT;njr&t~p<|1YzA
      B-|+wd
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jTTc@~7>3`0(%sfopaS9<D9{tIRxdPx7*Ql1Rzjfk!W*5INm;W8vfTy!S9*hq
      z7ybZ$l<}M0Es}ONO}pRByx;piGqe5k_t$R#O*A!(F|72w$o%R$=CSXZC!y;+Hg|mY
      zP3wcT&jaqhc7!XuP(zMkAyay($}=qaLC-vY(!F9h?8cDavOPO|&hV~kWxDS8-AIOS
      zT3`4XHy!Tv%)>CSy`EyG)@I1P@{dIk<G5x(gU&E%*`C;o+>QuZyyFOllI3@~)8>IK
      z$LVA)JhA%>m28x&XR*mJ;h%dVU?^vIT*5OL9(P6mly}9^!CQ$ivK>N~8V0Q=!o9ef
      zsn$kyI%bMsxNYDL?lMe~TAuB8NT<??LNZvbj&>=GD5*b4npL&5WzItb3s|Ha(hlWR
      z6itd`x)iyk*0)okW0|%YQk8_uIR>3p+uVt0xk~4HCQF*7z<8DpZy-oK)))%0C^0ey
      z!o)3EO6uaF9|c{pYs+h&SG?03@*1#6`y8k51pOxp$jSGHMg<zRXq2O;UT>_e|3vWz
      z)nhQ|w@6RmDQTbKI#u;VhZ~rr5p`e+)8rzn5^lz7x;m<4(k$lEgeI*>l~ym^y1@K*
      zDwBYGJiQg08;K+}XSj#^Y5NPZlOQ^^H!kpC7;u{aU&bDDDZ+n13B%~Kq=G3cV0M)-
      zD=L_>3g$h*SQ#+ODa@)0rlNq^SHjd(FclTd5y7-GV5%uhT?IpCBiHm%3A3((X{ca6
      R5zOZdn2i+1j9-mM{{V8y4oUz3
      
      literal 0
      HcmV?d00001
      
      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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
      Ust~m**A#l8DHI8p0rAHF0J<s2>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i-%ry}6vw}Zm93U4I%J^u14PU=l?Hvl1Y$(dI8u#)IiI`krmJahO?S)qqj>QJ
      z5+D2n{G*KLcFj=79@?IB@ArJp_nzKgzkmD$u!Tnz%n;TCnK>tM<n)r*>8m(;=Ikf&
      z`}PO-Q!3s@A{J6rU=UWP3dgE4tCBQuhR^-KaR0Ih<=s$*>LuZz?oMUyCw`_|@3>#R
      zW6y~^88}BO4P|i2N~1$C-XuL?p@cab6_|v1H<aRI7I#J3_PUWERNch)qK=n_IxiLt
      z)ei@Rjp<e{=CDJUO@>mWJhtijv2}tiy;uysdA|63*wO|j4#UQ^hF}IleF=N2Pbk$J
      zEfdS!Y^WD35N_L8!5zW^t6Ea&k?tuTM>kVkyI7wDH@KfU7&DD}tI^S<RU2z~z$D(A
      zB-Jh<aUp>iXB{P3>Wg=w9%gOgmTc<7F`N&;&n(}u5)Az>IJ?4Gn=^yIX7llrr{}P~
      zb36l^-xhy?ZPvcPRgRh?9j;-XGp@jO++d21s#wU?CT?=1J1wGCblBn@t*SJuOJ}%s
      z%HgO%IbYt*;r2*UzzKJ8uPA@TIBmq_@|82(|KH#q8+@HJYK4UhgUeWF3gKbibK?*0
      CGrwX0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTj$L6#fp>ZLL*c1zhi3Wm%L4e9#19M9`=yB*?n&-7+aPZO3${!q3tdOnC4I
      z_@j(xx)sT8H%&U{Out*t%<n%JzW{7t*~A!OIZSi+EQ#G?nYbq^i8tLnnY?fBdxyDH
      z;%zJvkt!1gVQwV!5>+EC$SibEp9fb22h|9*?I?}ZE5gU7H&S&^2Dvuh^1k@rd^h&f
      z&^=OFl!g^Ms~v)|E02YZaoliV!Xiv~Q7R7dq${$v-;D*K?#aN9JAM}FzT7m_Nz@~(
      zjE-`37F&dC@-!70VR1C$GCaXa{Y3P>`hocT>4T0i^gA3~V+dv_)NZ7>nr^NR<1927
      z8Zf{H;huy0ctDtBk{<Dn;^B02&3@7xCRgaOVeg;eOckZ0edZj@V}X4bJK(cYL8@@(
      zv$2n4o(1Avq)(wyamCj4RM?34{CL8AMaN<2W905ScWv$rUai*J(`P?n|KNHI4!><)
      zfftN@iJM%t`Z(Oe1b589B&JwJS9RPj&=#h-(oQp&Egd%ai$<BP`kiy!{my0IpjK>e
      v7vfGIQi>BE;!#O|&2l=3#q_mvJRS_V!vWtE8nb1D{{b5uhWJ@5JeU3gVB6S?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+T~pIg5Qg6arHwU$A|E1tpeVLQiGT_UBA=Cy>NtX2aHAoF5~fX<GzGlSU*v_}
      z)EO`Q0sbh*_cXCn+Ed5Q(CpdnzWbcr4ZnW>_z7SfuM=n!7|FY3<Fr^X_PnBT5EKg&
      z#<Evj-FlVVw0!3%SSi>=+YJ(k2@JK2twqHJhCM%ToJ?AEicN9?@ma@pf;oZpRIa7$
      zvS*cL^_kqEd2AX5)6E;3f$z9^g(tl&5L@#0>?GQ8UPl6&Kv&Lj?bqevuI+D`y9HaI
      zJLg$uVcYZ_d5)a1;J_&f`~&4oH)aGnyc5^<dE5V>7tmd^XqS#m%YOHEO)@myhwL&&
      zAd$C&E&DVO=t-rU<B|}#qGJGk0-aIllII5O5_3y`b9+<Gsp)N*d|k&43^F;2ttH2T
      zYSkn~SGfmS&)0BUpnc!-W!@bfcQGPxQU1>LSO_?X-Eu(W5mm9~`T|MTjI^a>T1N(>
      zl$7qXlJ^vn&5Cm53Awa{70^hwa?D0(FgPGvn)Fh<>ScKbEFG9WJsKvNYK4aoEczwX
      zS+@7(blX$u9Sze|+mj9n{Y=LUW(E2ww&-~U+jJY)mA&5yNg~}?YA2k=yp9DdQjJV%
      zwLV2Bm@FVD87IW1Z)wPqwd7m$P>7yrk3JsR8rHd60j+31s#bE-EBlt6b>u5CpnBuS
      z<ci`JZ`{tm4*tvNLQK9?Je}idi>DZ$T4wbAgYQUwqumCb-$_1!DaKCY0<BCKhfXTU
      zkA{o5L=|au<8n1xLk}%ksTX}w1%po+)sd;7|0|79K3;XsR;BeYAd(iiia~lL-W;PP
      zMm#fG!L>%X1zu>es?Zlk)!^c|Nf23hs0K357zvWdbl<9AxDh2=hmxqF+^eC?^Ij4~
      zV>)3{jW8SRRIUz2tHEfvAHh6O!Hg+j-Y8)ns$j-cFz*Pn-2%plV8&H26AG9eCCnog
      z%!CT&Jz+kyfSHV79^*+g^13liRq*r+TVB60drFw++>~%*>c%uRSiy_NF*$@eYymTk
      zC8`K4t2(oy=!~m`d8z8mimEdu!UQc~vQcMNRWNG`m{TRph6-j)1@nn8pIgAJM=-hS
      HG+zAy04H*L
      
      literal 0
      HcmV?d00001
      
      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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
      bnEn4>+SFXtsd!JL;@?#9AFT>y?2n%Ti0`qB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jT~pIQ6o%i0LSu=76-pI95Ts37AeN#q1LFu*#*gASw)CQRX}eS6<bz35k^kg{
      z-qaZ{`~m(b$Fpe$JL&eK&DoQ4-uKzF**|}O{RU9NeiBm*8(p_=e06N2<2lB8;MhAx
      z#dF@&Pph@y%I2?a?r=9qBEhgavGlrXmSN5FyT)a?Jt7!aW0*a(Tq}6N@J_2vRIPaJ
      zzA!(iem1|DhHbiCqZas<+m&SW21DYN*WoElV@^d93d4NWa`}h8)8c;JY}uS4UG>_g
      z-7tMitfOQiIJbHX`N=4wvp8Uw@h)BNGptYUxQ1s?UDM&c3$xA7KD`wPW7{EgQNu9T
      z<w3>j3APTyw5B%|WEqrBluLo(o{AORXIQ4%W6!g>>52g#1vHvgKOmJQZQMd{l6r4c
      zJ)t%Ah7ep;@fd3)NU!CB8Hpe@GcZzBh~t!ZER$hT)5o0^<Y{7#s1R<tiUNuZ3)B|l
      z&Pi+}f@Ddgk)?F6;kFDFPf;QxDvlZDB}U`mVuMMdtY2Ml1-o=e0Y#J}L6Kuf)x5sn
      z<|mf;w6c<Wvn`IArb}l@zZtrBbd$ulNvj*Qs?#b#Po+@Y-1>>s4~nOt(tnDcz#i4^
      z<0eIgVI6K^o>tU>1>7bT5v6e_tX8l{k#Jf<CUPjz8&Q=kq?ZS{`;Ee(!EBg548_%9
      zNhHqj01u<~mn0`Z6lz}?;87g#hyag6jZB2_A25q`Qek+4jYw?-CO3fgJqB|kh1tZ`
      xI83fMz;+zwJ;78bz~pH%0%k`BQ<lJdl)^ld!IWh%X9Uxj0J9sxJP!x3_YZ5aAxi)N
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTj$L6#fp>-CC>Q3W!%wyzDMWgT81`BQ6>>l?Pb&eYQ->n089Kt@yL_1rs0q
      z0sbiCnQpThwoQ}voauKvGxPh;&tCwxaKDKe!bYfb?`s@+he_-mWpVV_+fCwk{f~ZM
      z3?tbS$C*m>n@Gk|XH8gy)mp{`)gW||H1tlM1pn#Qh!Psll~&nH!iTnBE54fqxyi8Y
      ze->Ya7YQAD2U)6gSh3O>5UgHuC>_k=f{P|>!kn+P+{@#kOpDnFEk6lFG!UsWvzCii
      zcBDpx&H5-6JF`tVmz-#s64vU8lNkuE7O@;1i$H$be{YgZO~n%!48aa%wiBsP6BgQ?
      zX`qc|b{7WWfN<T#4csKmGtF%IPR6@5%rjPc(4J;j2(sm9V!2qw85pBg7k6-%jTn5!
      z=wSt^!kSOXIY{y}kZ)DQ`Bv($-lo|f_9H$}o|bR$EG%=b+@0sH&z;3zySu*e=m(td
      zT+hJex5HoHDPy1EB3Iop4wo>;9WyYG%dBFm7OoU%8w*?+r$sE44qN=kpqky*)l*#i
      z#^u<cQ7peG#N9EZ6erxm?UMeA<xCKp>FcLhIUDdb2kaFZOJ#(A0hc)p@v~NV-uny4
      CmgIr}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{l&vz456vyvt(`JZKus~7yEn1S4HWn1Y0=7+o215%?NwJ_ZnM@{ACo^$6X$lKB
      zx^ROFH?nY}3pcXBh4CB~>cWluQ69f<=C$@DcNWdux$pk?+#hfH;@{_g5YZGpO45L!
      ztmU@zTTLfl^P2fa&~(n`=e_2_%FWV>UUkfZ={Q#%vuV0Pk`jVW#G3C|4GS9cd@J8M
      zXY2~fMHDoA$#(7Fil7^rQf%aT&uB}4>C(EssplQtwesb_w_S_TWGjLa1+QkNXpmk?
      zQ<5}6drP)!F1DLh(+{f>G*a>m-KprlEvr<@M9{D|1dYd|^!8+0(2&=0O<&Ndc(0uT
      z1f^ZQX>PQ1!@RRxlo)*_0bkm{)G`Cv{-Rqmw*(Dlvc(h$dM!<_)2JW~$Lc5vakg3o
      z#DPq<KcYrQ5mbkP^go`a6LeD0J~+vt%m!#>wH+YiSf<~Zi6<zzv7PWB=Teb*-cHjP
      zokkwm_T)LuI5C+qNm=BqV_U99IkZ}rBD6AnB!;DL*&7;7${Halx=>2Nea<R)j^}H1
      z7AIB9kS~H#2%%0wb!dYOa40l1dLO}zh7Q9a7#13W1`Pa2oI+!%Uf1Xn+@yt9uSY<k
      z9`=SjM*?Z;IpvlP_E~A{IheaETT@8WJY5yEA2vm|w>xZ0u`3c;MFd@@m<`)pOw$ee
      z2(fV5A8VB9G#n!w$tFn1&;VI5^_uCUk+*Q#h+d+k>O|0<(9E_PfkrF1ybV*z&?EQ4
      zwhWs^Z`IdZ;mWRQ^f4@5uLF&&{a%{x(<g!s!EVm;98-6Dwu7yIEy}VTIgwe5%Gc9W
      zB?IArz=z{n0Ot@Y!W0NDJFx6^qH$r;N#E<paYY?aCy_d8n_Pvm;k8VSnsQ5|7%f7m
      zjha<ayZZ&QZK~y!&5HC=sn%FVTeWKeR&Nv0I#P_Hg<4RQy|!<d*K7w_j>LSSC*{Y4
      zPNK_$_#47k{um|X7Z7iI@V0`t1fE)M{LIAfl=>C&0HyJp!jtF%Y%kKwkaCe7y+V8O
      z1`patuOf<+MreO%t<eEUGSfjCRT=VlN~@t<mkvFJ5QQHOm6yZN>BvBZ7W4)khDPE|
      z!CE>eb0bH(bnID=``j+~<c|BBbV|9;fJIiJ!F{|-Z}nDp9n~#_F-8^t|J5BuC6YYD
      z!DJbj5(_iV!DKm@+kjb)fypVDGaSqW15;sP@*K<r2XhZF_hVot70f#v%oGFjfQ327
      z!Ax;5CSd9@Fz+gu_c)mI49q$UbAf|7&%t<rX~n=?R4^ZKFw+c7z`|VSV5T{khk$t$
      z19L^ee7JKJcipC$F3t5`#xGfzYjnN;Hq9LF(n9ZT`U)^#$H0{6W_X(xxy~#xo%x1^
      zxy^NEiR;W`z<e76b4zt*nS&`aFyFB-cQ}|b2lG8(p2WbcD3}VZsy^=;)7>tu^^WNW
      z7Uom>tba^*F{TH-WBL&=KgGb*$PC9+=XS<ocIIam#^!d$;&$d2z&wqCSywyrIX5PU
      z8PhWs#^uK3aAW!nFx?oKrW%vS!L%5d=PZoR!L&G-KLPVs49tdt2{@QG1M@cv)8Sy+
      U9Lzs}c@YD%sbIFkf6fp80|CJ?ga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jTT|0e6ouD;(uP_ExryQh<<^!<xOf2(1;WKTMMuH%;ESQ8Z7@xkl7c_V2YsnC
      zKKKLtQI6}R8D!d%ho<MU_uAiHJNfhX*KYs|*iE2AAYFFr`q!$XAA423;#ZwTeaox9
      zKG@42m`9Ffc+R$CRV~*~ASN&x8GRWQ7ntyBW&L8QctukoC=h>PySD#Q;7vLoDZJ$s
      z>$3i8{=_^tb;oqe`o3SY-Lm2&QxJ$5-m#TLC$6QCfF{tBw_WRPy?SKTf}RBW@?Oz&
      z3TDlgJ%)!dzha*WWTR1999b3U@-AGfCNLJAbjdG}a?PrBc4`)_j~{Z9qOBv+%NPNz
      zZ223GU3LWq(wX)^4a2N%%7`Qc?xZk+y8^vTlU8r|bm*w=Q)x2Yo~;mM$+OFngQ}c@
      zEHs+JLp)+32DcQNQY0x#b3$FDG%6Y<*lw|6(!Vas85Mz!A|JAMqw=m)(vTHM$Ox}g
      zY61r5j4#T2UNUt5)TB$D=}b<;JQZnh;K^bNOL#2M&zPLsN~>&<LrIXNsTfP=GC|MF
      zDXic*g?QC2G^A*oi2{OZ-K<>*=BR=1dHg(>7|$uyJeP;zpk?2O_OVZA47PY7m(8w&
      zQ-S2ZSFaVV9oyktN7SF`oP4J^BRaxg7r*rDh{^AOyKe3dxQp>$%TCYC{zUQz*Bwal
      zndCpP%-9v?0NG|7ZlH%dW}p{0sUlZ>=ntYb3~(hY4Pq#)u)rG`mB{wpYT)*FE}I47
      z!SPxko@$1K;sW<@KTKbzoCMLBKHb2BR=`aH8iB@8i0~h9m@qURV=9<&1<bAzW>N(+
      zu7b%EW-kI}DuhX^U@{7r_ez*)6--72Qy|P?1k6kbGmE*<=PP5<8(8?(GNw;Tm?wDJ
      zJ|=ynfoH8_`b-!z0%jho!I)mCoLN&iV<}-?shn9;IdejoFA*^7p)(sQm`w$Yr-a#3
      U!ECBve8SWtV2luEJDA4KKa_A&y#N3J
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      W$QhwQ+TQ9s0z(Y#4SEgW^8WxycVXfH
      
      literal 0
      HcmV?d00001
      
      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
      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
      DaJ8WS
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{l%X8aQ6vjU_j;%PNEoqt-0;Q$2b)2RqZBrg8A!(dYr)g3W$I!Gi$g<+Nm8D?I
      zdCb6q4J_Eef(^s4fd$L}!_&;LVAwIkAI0!pNjO5jS}4AcbH4jK=bn4=_dmb?0bm?^
      zDI8LesoJgFUfs%7oO*7{ty`CKd8dA}czdyE?zuA!Q=hZUx@o&9Bov&EweDCY6`XS#
      z)!gnCBcv%2RM5MlTP;(;z~V!FN6%ThUCph!jhbDZRFJ%0vuo~@f`!at?5TOjXbHH<
      zZiViZk&=SMtWz=5=)q$e`jA#|WU*$OORaj@Y!vmf<<U5XZk6;#P0WMEgu7L1D#*s8
      zMAF3wdYxU{Y$!Mz@6_Q}pxJueY;Nm@xwcXusF)J3YPxxIQ*T*r$xqf`W~4hb6{$27
      zJgH$APboM`FOl&Xm)R`0Tne4fbbCpJcw#ep;&GX4Nt}0D!x=ow^XL;f?}EfhLclB0
      zD*uZwMfQ28QD+%3Qh6nb{h;6`Ra{`UHn}2*Ml@tG>Sy4N-e742c5xX9AF#yQm`q_z
      z!I|)~|0+a$p>xSi&>6!po6TG1zKZ7+^y%L8k-5)Zrlhmm*`lQa5#g+3v7CA`BLx-L
      z$Zv2i_+QlU5?)qtj5Y;3npEjcuvk(&%vVfg3M1atOlf!((-h)Xx6qK}cIc=;p;|xB
      z&exiv`YRsex{5gkY9&|`oUduP3EG~Z?G4AVOx=zYfRuHe>I6DaPh{48-rE|MuuMU2
      z%LQf3bS5)ZMNXIaVpJUW(;+5)C@ZF3S+*@+5p7jAG;ijE9PHf<_8eOJax2bmQ^kE=
      zPJ<&~Rjm1{><b0EV(zJUo1U&-u8Eni`rn?v;hFi8#r<s(l1p{jTv?tvha~r&b|2Ha
      zr6C1XB>16*A)Meg^AWuKMA>Swov>(1DlB2Nt>GP<;+y5wZ0oMEwN{whVa>DmY_c;F
      zpZ3Y7X_<zrg3IYur`0gb`I=~S!}3OdNi<`=Yo5ffmtR6a@qflij@UH0($86uvjl(D
      z?C8a@-=O`-@gW@M-!y-LNqSw!5stFH9ggC0&gg*w9HWXD4e}G#yf}X1M1~!lFwPxe
      zmC6pBY~zU^IP?!lddt(ExaOM#;tHO|sla`ja-KBZN85NN3OGl=c~4^~KsW$AOBhxb
      zp2N97?P>s%&JLV!Bl9ONMtK%OJn0V4C0RH*NjS?P_f*GyToz7F7EY1jti^<LISA(p
      zt_I<Ray!w+3*Sa^dshlG$qV%_Ka|^v;Wl20=Jo+$Hez6|VTLLSZeX?>Cf~+<6vmLk
      zEZ|l*Or9`{QJ5{l)M8-faL0prU3N_?l546<VOC|=v?9Bv24R{pFyaY_%oJsrS(9XD
      zR|@lnEHiJ)GV?BB-iv`L1({iw)yzFf&Acy#c}rF^_hdEm0bxFjfw>>l%mW$Bh6Ls#
      zDU2?I*^t3}Oqfq%V9EiE(W#j+@7jQ#fl9P1d>R7j={)Prj_Z8TR|d1cp!yg3v)MLk
      zzoIIp2U>^O%Ye@a^*Qyv2x$&>G#_<paEh9u^Ch#RREj=_FWJ<;3Wb&o6lhO<zXC1P
      z8Iox869FHau-%3e75kb_--K`uI#)v`(UeGhM~UyH60S_5C6V}v5<g2NcD%;6`!Akf
      BHeLV#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTj$L6#fp|?XIPA6IK+JTZp@h*r*SZKu8ocY6=ff_PvxzscC0ScNX|r`T_|L
      z{s4cJ@l3aF2+KaSbI!?ko0IwT_vSZ%H(04*jIb8Vo_Cq0-l@vGGo7Vxy*-tE3HJRU
      z(W&^9icCmdgGE>x2_2wp!ivgc@8Vr_OYp85!QM_}qIU@2n*K=DJr(tg`Ii4ZJP*Az
      zl(BcD^F+q?Oj;d+wX05rg9^r7)KDi(`iT?=z3fEfL3ol1!i=w?FztkSV)}Au>9eFu
      zcsV-C?OkjUs_H_DoUl5YF$hm^WtfTXk1!I)hhI&Eq3dvTgCW#np#yQL3A4@CFwOyC
      z-o+C%2ooiAS4quFVs7_8cdj{1ZFLO!xr-NAU~-8akS$%fI!CIPN8)p0b~S&`LwIen
      zW0|EY{8jlORbZKAbN7I|fIExNdVBrV#x<N@T#v!!zr!c+p0S&F$W^<K!vrR|V+N)$
      z%_^pv!J`6Q$1GRIX%3Cj!Q<1Qs_iR0{>epO-Y$mQg|yoTl+uK!Sm23?x5H=?!)~u%
      c;o04AANWEa3x!4>H3(;8k%JiHrNVLfAGY_qcK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jOK;Oa6ot>UPHc>!CA4XvJW5LwJ85guB7xKj(FYX|!-A$+Waqe})X0y@aVY#J
      z7O)8t3w{7U3USA=O5`|;#53b_&-w1P{patm-vF9;Dr1IWy%!A3FTQ7<g}!+n``)&B
      z6#B1Q@2ykI?Z>Y??(-m)Au+5>m0qce469+(GcR|XF~h7ILvhay-1r5<Tiu%KdK5YX
      z5x#4EvOn9VX9qp=B#zvmmvdsY8KlGTjH{T%bqz8UhB?a(_=kbt<x$J-dYqwTg^umD
      z?Z_4T^iYb=-9AHYI?DJgb{PucWxykbwdoaC@C;gD`@DZ)JN)$H8-Xy<4xtMTgWBWq
      zVd#@KW|-BDj)Dq<?2L|7Fx=I!jC%}Aq&x^ikK2J5?|w{!=?-G@Skxy2j1GDC$Gj!I
      zW3+|eiiSs6B|o~G?^n+8qhba|rZQo)zFtu5f^JOaDyUI!F$qMLp`nfj!#ovbpsP6{
      zIervKoTI?pK9inI4NuUd9MWcTYB@QR*rGf2BpgHzKX%1yQ_1-zw!~wk;n9PlUxB`<
      z0wnR?(e4`UTC|hss?-}Bn?Ircp!Ezi`d8@+JR|LM+@Mu`q{B_j(T*xGk6Yv-Rwdj{
      z)Cv}8C6X3VP7|7RN2ug_X=#W%-)K1sC?>~yiMckCq~;9w@gOaKNp=E6q4MP+9%cde
      z3Gg8CD5nVj0V`M|7ly}JPu<2~szd1CGcd=wFdNvMgsC=$*vi7ZBN%H6OpPWZV78OY
      Foqy*~51Rl0
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<OHaZ;7@Xx*sR$wud8p_O2(d9nJz%_`o~oA;yqT1;DK&kNwg~<r&t5d~;MK$*
      zW&A2AB{5!hcV=hj`*wCeK40Ge9H1s3!mzE|V`*xc(!jAK)055}OI9wX8Xx(FV+)8e
      zR2)~ACWqROB(%?vI5lj;KVvA@75PrRS0z)mb?Mik-RLpII?jNLNMcoh$dLO(mqH3_
      z45H5cEADx!&KdIcM#xg}UBlMfBBIEo5XU-0ajE89(CCR^*hnFVJVP>QucMAV@@v&Y
      zcHN=tOw_)~+u<S$mLVe>HoqQQeeQMxA(_gKrkXv~H3B>*WB$<a7;5srNwz5k|6xQX
      zOks#?vyKX(h8B@g42m;$HGXLXRddU4vLB>}J-TC*-VrpD9}+YQgl>rq_)@dldWXOs
      zA+(;c@`7}e=IqTA?L|<aG5xJOLKer^#0iST?as~;E)gOZlu;q)U{%EyounT_D1x0Y
      D*>jFA
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{kOH&+G6vzK}o}_8QYaj_oOeDr(2$>*ARAMx|bj<LOrwmc->A4I|&4cRcF{DZt
      zZgk;B7jAUpE*lqEm4GFdAHeV8S5VLC?wRSd&4Rwnz32Sz@4W6`|NQ<ZfN>ne5fZpk
      ztkly-<x;v(EvHMh^jx)^UCUGs>sA~QfvyAXb1hxcD#i42{y^%q8x!cSn#J_v3BBRu
      zdI*G!ia=l1b~37ITW8HOrB<F6XsbP`S+bld2=q86wl19;l_H-X*7GGp=ks`8tI3Vk
      z3~kDaUM-M;K!+|(%h)qyVO<_s0wO06yJu7k>%KrZIkG7bnXMM2f-n*)y3j4qnKdeM
      zsb0=Yb6v}qBwt<CwbG_$8vNVcj9B|dO<*v4ZZ?Rorzox2ea+N#OPWqpw3!@fhPx`Y
      zf;6Y&c!}~FkOSxZ0tBwAh@(xxAg(d!b%D#tri?dh98^y&;NISry?gD*W*n~yT=RwC
      zoO(1B+`wym>oBE9_s7%K#BgOP?-cjU6H7KizT^qnqe~g;AX2ZTlJ~f=j8p45&C&!C
      z4H<72#4%3o)oMD&VWz&fCrt%+kWeUllPa!YK*1E=jN`7r#YV0jWEF4WZR!P+${`R<
      z?#zy4*!P}_cR;NY(+&@1g^sS$Q6}To&qLu{H_blpsd#`iwV_pYP~w;s=xtn>S)M=A
      z<)LL%sqe#@u2UiZ*V?WeUCcz%B+Gn#kA`K3q{1ahu7Wz9ljqG(pIc!M*fiI8iBi|N
      z-?4YXR<MW_u4`66so6v2B)Xjw?~Wcf-@1wmPz2if!sbY_)rvcSZ1u5<_J&nspM<#=
      zoY`cfM=De{Qn>Jqk!7WMcWT+_GZh^TrN%zJEMztN;y}|3=h#82xQI?NAyuDAB$?xp
      zP}Zt-Q<n<{PjqMN&AQEr!FAFI(_a)Zgm}>Cy$f;7_DWIND}mc9vDqtKNozOx(aS;K
      z9{QE0RnQtuouc<w+pLeiF?(|o{q(=;7~m2v(=Qr)4A7UIr)&taIK$v}>KTSk@$xb4
      zhtSe^;L%W<8n0m3)tE<w?17Hd8E$Nkp5o?n47ETM`*49E-nWJN9b;FB+>pcwNeQGd
      z>Pog^A|yZ0Lk~~1$#ct2DaUl5E?}NmYBT_3g;M^J2PD=6iD8V&z#zBnq_Wm;6kC)v
      z&v0k^6t8DfCzx35?!q6@rCVbscw;K^6uqNk;l9WTrnlU!zDVfjfB$}p*p@gRJ;A%j
      zq}hQ9%JvMAab|B)seui;Z<9{8(Tg00@QC(vWVMUC(CCHGZO%!Dz~yYC^Eu4hisM+I
      z)P=}<n3DSe)pCGpo56=fE$|Ro`f?OmyUBorU7<59a+Q{Y3$;&bh9^IXW_}WsH-6d#
      zR-5_p7HZ93sB&PTHkw#36l%@iF(!pw^MH5@#dE?Sn}Hx(evrq3AltzpTYiu)2;|Fi
      zKzL9YBo_#>;|KXF5ag3!kR3nB*97v-IUxK}FvzEYAiI8$Zv#QJV31uu$ae(t{W&1~
      yR53`Ny4U|eJwxFaYDe$m@<SlV9*VAWt49W(qu>YmkwAVr2ZY~B2HCf7H2wp1n7;)8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i+iuf95QhKFv2`38(l%+Jr47d%pzZ;<X;q1qRzgG+DG*d{z;Ue9Rcs^22KrVY
      zfg(|f2jHO)vp&UG&V_fqyYv71&FuX7`|CG=Z9K^%#c*S2IMP>rBn?bm8jYprrrznE
      zI`${W&LhK6x{yE1(nvOj(rN!fRcJTIP&KWg^kr8GRDpycZ8|nXrQ^ypQ}V33wx!DY
      z9>d)Da%`*mivdH~i*c>#Tr-CJTs0JPK>rN6ea+D91F~#1dkmQ)bD#=Hqa;E^kzt{u
      z8R{!X@2l1uxj$05qp8TFo@{A+?Qdr6b8XD9+L@gw-CG{2_R+a)$%?I79xZJ)nqeOA
      zER9a~@>rpoB_-zt%!7_a<S{3pidBxf#!zd7KL6E&=T#mj+`Kpy_!l>OdDI!|u`ImP
      zsHuPr+~N1GQ;C##N~I9Q_hl$j>W7!M8f3i^$vSFGRVor|G_*j{Zup=}fiU`{ydV!n
      z%tK%(kbD}x?B^Jb<^|!V$9@-Z^|pvYpbqvKgs$mWih82)hc89Cc9TC2>Lg6lm!&bq
      zpMzRH#VOpG{AlLp)JZg6qm@K6qdD7}VBxzPcAdtYySalh{fk}z7O_MthGkS}<l?99
      zWfXCR>RIatY7^Z2M*AsDJ@z9WV(4)T>%PY^G87LKTUXdPYfo_dCu&m=!99FN5QnZ&
      z#S8Y0NQS$(M^+5?@xZs7=0r$wo|6bqHsonw%@-fg1)L|>YA1laq|$aGAh{4E=a!p;
      zG|@@`X~#icCxSe}W)es{UXiy1(whOo-<yL-i6C2XkoSooJINqhagYxL@^J<TZ#WLJ
      I>-NOsf2GI#1^@s6
      
      literal 0
      HcmV?d00001
      
      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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
      VV2O`fb^c7%`7=F92?gY-{|DGykZ%A0
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiy3s2Kf6vzK}udbys9Bjx-o%q-~pyC53AOQ@RB~y&xl#pn;tw2rJlC4v|mWhl+
      z6Fz_+%6RT=na#kEWw-a<bI$L79{2a3pJxE(@j^m`A$Q<(^y8+jH{7OfxAhM#%QIVB
      z9q*{)ZF?=#XiA7NjC?V^8oK4`VGBdzn{a0ss+>FcfF*{c>D1kZ<s2}ieXDIa2RcFN
      zj_iqL%dxx_hT(jFaG}Z&d+9bz1yNj6A!CpsnlDskkd%rz5=o>P;_r7hXG{EYM1_PT
      zL#kpq=9^BlX0~>Wnr(7zw{F-~qh;}Pa2fLstv17S<;v<Q(Sf$<ZS-o%1lfj*;rYfz
      zD=6=LnIDyn<GOj|S+3KTaEppO?@xKFXHk&Dw1hhhgXdPidnzU{$-wILFB3Yyw_d0!
      zRA!!A3Jen6l!XqfF+}#(CCpN11SOQ1f*I(%eGeJNM99TKaBvQfICz|z?C$T=YMTzp
      z)@`><Bgo;Iil=-8@qN3~KIAuxDoXrD*>*dvy18lbR*(AGho8tCPl^1ANslf<KboD`
      z(YWX<kwpeCZGcX1g$FRCokG=$CrD}O>n9lgE+R6trV*pHMC&5OEg^+vWa%bLkranf
      z+@LStaUDjxF^mWFm4Ke$<PcL4v8xoZ7GfoOtOS2r#9(|X<U2*w7@cm4oYw-Xto=Z0
      zqKn)AlJ&ux6#Oa#mV00scX2NO-@gPL6N$-MF<Lz9;z2*SLg3f`0c$7*;KBuPjq2fD
      z%<_zXVP>~DIYryyQ_OWS->>ox8Egv`&5!D(pM|f&yZ@L9;S<Q>3GJe!O%LXR@`A_-
      pNOI*a7W%b5Qf9kCOC?Y83$z%2Y**2q_tQQR?enFyC1OXg{1*qM$Hf2u
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZF3V<6n<`!X47OLG=W+~pj5>sX;}rVN}vd(U?il~)YkGQo8-1^-Rx#I8(w~a
      zzrp{&2c2QsL1r92@xdSE_}tx1nik7sHuvqE=RW70=iGn({p)W4U!bKSCUA1o=^4-3
      zwqaWh4qHacZ5y{7w=J*vzNaDaK9ic;k{Xf%M_g~yczU53cq>PN<YmjT{CR<6)735W
      ziD}rTvuP|fwq(;U7ghxl3-nGSj*JcsDS>R&a%8R7Zb)y%Y}isDS9P1Fy=r=vT1T4+
      z|FP8-I9+`&^Rht9YAJ|!E*H=?rC&4Kyy56{VaTBFdzQ0VPJ^s<j3Y0QQKlpsn(JKE
      zJF;nQSd!rJ>B3!s6gO8*yGOWGcQD-(b_A@#PA@)d%8qZjPFKSzfr;VN-B`LaI2JfW
      z;APX3PQV}}J8Z3ZG0rT_mYzD&TeM}H#sVKOs$s+EfPuyFiH_5l)NocH|35YYV=Bhx
      zW7#%Wo_A!$*>Fj6A7KBatf44y=D<qy?M9i=868J3mPP>?7T@YtS}M<<>y+XIGpEE?
      zi8e3jID;t-UkXefh#dtrii`M4$Jh9V#p-pXS7|8$QX$!}vOV9jjk@&98I*BF!(}Em
      z&_w@0$2_i*LDO}7({kv!r*?hGveKIDXL#yh_4SiYMBfbyui=Kk_^uGc-Rr%L4e6zE
      z6W?jL#U|P{2=CNU!S{q=K^APYOJeywat$_F)GBHk?l9n8fZ#|+4*4_|u&g@lL<&E$
      zE$=xL{uQ;mqT?q}kx8@Dkq+fNGu)|t$-dJbA?=_^YALKUD>F}&`iUuUPsefOQ+OaC
      z9;i!x(Q#e%QL+(4ODP=$$kwR4J+CQmTB`RC4<4a&DlAMAJ<e~0k5`5tpA4=>Ih#j}
      zKOk8w?I8UpXEEsfPY1h~=uyTYuE#?w97dKa+ABR0gO3FA5tb3Gfsx`ij{ZTT5Gu)S
      z;A#M)2lJ5-MzGm10dQp8!T2Fg(BdQ7Cpezu$A06#qB_G-A;rXg?At@wv4|o&3saHj
      z`N%U>+`-3h@aca4<stvn!2dH$NB(m`@&Nrc3hTv}V5(;KW2_Bf=mU&%j4x#WoY_!`
      zo+St4cZ?)nFiYp(;9|A(7RO63G4~cZH56arQVfAb{DlfPsK+VR47kt#hfKyJ=HA3H
      zG?=O;6JrLKhc%jwE+6CBx46da#?&i8Z=uu_(fN%bDLUoXSXd{M#ckZ)!BVx9`(YdP
      zwGy}1f=TY@{`zjXz8?(Rc(|K^klYrf@hgR5vu16ag#!aF=Fk};SB}VKN%|3KtBN*)
      HAe;XI(j<$u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5PcJ4qp?~)ix<I*_ysN^=%G?56}<#KH1xhnmbf9=g_vmnmM6i3KfoU)
      zPO67ODa-848{WKm%=gdd7l2FbdT<Cwsj0=J$VILrPMJt-As&n^)bMT)4n``jv^5@F
      z!ofmns3w(%7Gd9(sd&4Jrz*1ogx0M#y6O}5PJ&FnN|8&Gil->!4ZYJb!5!K}`B=hQ
      z8y;2&oj@D)SQn8hLmB0YupQV~=3`mv2LCtR>RG=Kj)R5vW{va+j!qh>ITHkbWa~0k
      z_qtiuox8$CGlD}9n<Omr6^Vnra$e=C4~HMnIy?V>|IU?zHvj&#d(9I!SZCb*V_^dw
      QM$E@1wpfE*F><i;3%|!?NdN!<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+ds7ov7{;HI3kh)*3j*b0Yps=B2&rPL1+@xz!N$-EVij%OB%82I*rl69?YHO$
      z=^yPsp;Kr20s5hwKJVFO2_(#PGD*($d4KP7-gEx_@b^Ceu3$TXh{EN%(=NQ*Z4?@I
      znSVQls=Hfw;JCZi^0w)jm6qkLm@PAbn8NuJ*OuI>mB4_)gzMD{Z|5so=7@sAz)jn+
      zTelTP)5RV0jag`zPQ9>J-mxmJ#muHcY?(4CL~+VM0!f9TqU~6v_HNnoHq3IvQW!3}
      z6|=Evdbad~!B}hCZYrdUC-NO3SyYJFRnh99P)O9RmL#ljE}iLGu-@`)r_QaZd+#dN
      zUdwi!W&&dhA9rWGvi3NfPJxpKCNQF4P*ptIG#hPZk!T(SIbuZ+BeN-6&l~szQ{2k6
      zU0Y*S4cE;cq75=i(Q@joZG~t$vnn!|3=Cr=h091MFr#qxFlT?CfebG4a2mnJ)6I6d
      zsgw0>7)!6N_Ax>f^9JUSQy2`lP{*y+NUWe%72*}Q?XaCP_x3EO>KD>Ah4JGMOKrPR
      zwLB61+Q4<(phs`StF;<Sv|qXO9!(1KSdhY*lGaTFx4>E(@Ix!)yHyUH?okOq7DeKY
      zfxB{e$(HM{7eAK`Ov<rDO|Q<xY^P~?LBY_e9zE8zB=u07q9LQ{eqK_iYBj8u<vSi1
      z$9Wx2dDdRTtOTRu9PKBcz?#BXuc5V?`1u3Y6L@mu*!>G<U;|H?8%t)nVK#YvMvm0G
      z9;6M=@H~MZc@+;M=qUp)#2dLTC3BazwuFTwUeWL^snA<8@Uxu3YlYeWX}usXCQ)Yb
      zypsKQs8(*vC~s0v?n`<`ZsfY#_A1tWTONq<-nVN`&|?>Pcu{`ieEd@U@_}J*kgeN@
      z@B<8FbNfjB$yNjge^Yw&I(OW_Y4*qbRXBqo_P8Er@ewunl3;{$=QtK)Z&a%m^b8Qs
      zb};@2r+m=?4uiIcprPCGKu}3x^~iL=bufJ#Zkcc^C%}CQNm=1DT;#7LdR6y<B#}Pv
      z;EUgnQ9bOUN`_Qf<a($cG0~`GAWBnH)2}<2J)UDpt6lKdg{B!O;7f8y_E*@7uzj^p
      z-cJ}o4rMa?9`ny7%wPCwAK&CUSnS~24wjC4vB9VIX_pt1Va!Q-<a==s_j_{rl?NGP
      zq>Kb9>2Uez6ch3T&N5)0-3NUFpV7&^;2~@wjh8xj))xzdXTpRt8Y9Bhmmr5D)%XbC
      z^#HvMfM)sw<+a@><CqLk=9^RL!kGziW<s2q!2dYw;{d0K$Apqv`Hc{ARpta@A*OAa
      zh;{jrrymos6IsUe?mAVrF%278{^zlynXdWDA=6yQG#4;2t~M*m{b@}n7mKfPK<Cmt
      zsgB%xl%zPm?_hHuTgBY)%MN~emJ?{*7&i4^2bII}^wAvNVwZP%kMh6JF0ZR}ask>9
      P(W|f+RH4Rj5!C+!Y)!`#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5PcJ4qOn?Q)pPM6et?SzdZ_eL(M!;S()%V^(hbQjtcm)!JP98B0sbg)
      z()J)oS$1dM@aD~%{r>s<0&tGq5FTNWn?}4<r6_g6p%9s^#GSE~8r!N;rVil~4wtj0
      z(#f<|?nc%!L_p|Umy6enbf&ZrAq3aj=z2uhJBkbWB1I`pE*_FXrS<T5Lh#2nQxR6M
      z(LsncLO0e%-8WUD+>=a7Mc9dLD$9v<y2Xp4Ur+Tj;UHdaalXiq;OVSY`8S^sJ=(^l
      z>Q=XNdVlvnYuOlp*cxG#zmE8_Lyqg5jo|SCf|Jt^MDLt==<plOs+Zhxg-yo$a~8JH
      QWyE}JqsJO-h>?f>FTY`8Bme*a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5*>2N76g^W4Eoq^2fU=aOEQLaWP<ALnxQ<JV5<A#V7dGRjCb-Ii(iDn7AP`7M
      zh#%o;cmnajBM*EO;y6wuP<i0tWM=N1bLZUao1eeFeFrds$sTkGjFxLF>D6i_U5OUB
      zETtFg)%1;8y&7ihys=seA2*|Vtq0u#JL`>d`svwHi}L5Kz=o?)Eoxp97#eePOTm*M
      zT?uOCwA*Y%wesY#8G&xSz8Iz;u(2O0^a*S#HNv17=ELRXpd1Pu9W(!-TpLPZ9X9o2
      zJvImo<f2+=tyCAnh8HYUm__F5rJynsG@|(24t6&mMaz64_g}S6(rk%l1%xZmQ|%a(
      zYrXVhhrnjj${2ILYu+||!*P1Ci#FIE*K<tk#vk!vf$dq-a5P8H&ijsWt7y1hBH2sH
      ztYed&vGro!u-ftcl$h3xmNPTHp4A*p_Y5bI91z%Q*?vazG+)c*>{%m|TpSV@=0)Dl
      znA4`Nd8TdsO&DeKE!*>_?V{Dz92FRhLvFE9upO_H>KNZJt)grAn#XFUie9_Kaq>I9
      zTu<wSPYR^mdCSx05-VvAO^5cEpH`nHVjo)Ga0{B=&U==9=m<1jH(WPKbe?T)bs;II
      zCBH}y-h9FE^QN2EJUtsz`O(bSM17@E3a6uZB!<>Z^Qm}3F~VV7$A1FQMR1;Y?%^(v
      z?pD0-`0((Fuju`P{?9GaX8xvH<kMUyFu?OjLd6yg@&xojVk;BHyKUG`b}AnCB()gi
      z8b9`N{0G*LtKFZte@n#tSbvM~h*{z`agTUFl!%8!L{x}6(I8fcRpL4El6WnLl-#N0
      zZYB39xlhRvB@ZfjSji(wjwyLu$rDPRQu4HtXOujr<OL-Zg<Xh?o1tOgJnO&6Zd}G3
      zuHp`^;XbY-z!VmdK^fCnLKaor#AD>J3=2<Cz%w{_LG!Pe<qehZSipPS#Rsb6Mhzu}
      Uvptu1VhdXB;pgHz@%vYP14m5%+W-In
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g}g-n&39jl0Zp-5TGQfgrNw5L_tD<qEx086lDP`CmFdDIW{;>=?Cx=
      zh!ra~T@;Cj#G)U-m+%$9u^pvU%>r37bLT$JJ@<@%{{C?Q;3lqRpb0G5?#S33IEJG-
      zJo-k@8yHVqZy+CSKHUm@<=Uni1{ov;PWG)G%Wy2$Ha0tb*`+rvu;}@=@%C0XsytF8
      zklwMJksJyvyfP1qW7vBPuPRps4+M&}De-z+AldYKGKU0ab!0Iokf_z$S&)m43}yuK
      zrgG)RXwZ@V3#;QufqB#GT29;YRd^pelfkwkjhgv?<C0s}mVqf<JJ^nzw#Y>Vav)Hs
      zwd&J`Nh!A{cLfAfXS$vnSjuI~LhX2R{bddpP|4up5m94ZbX-E2e)(o(Im4FidcJI0
      zLr#{8)C?z_qNPv*xh-$xcjcN2bvSeU6|aYNs8GHHS1Ob-RFS_!k}HcGJtt_bLE{JH
      z8sDKemcJtZnKuomxX-Z`xXp??thkGL-imQH7I2z3)<vk40tLom%o{ufW9h~h<PY{}
      z#dzt+yBgu>amE;jBj7AOA*1Ka4jC0oAE1{ah>u8#{m?3{>`%~Qb`LR&Ch~av54+-o
      zT@i~oM_hpt%47W3L=WexChmViAw(^&EPuoK_edr8-f5y7xBT-famc(#1%Y+$Ci`q~
      g_H}CeEb3W_(I!2ssNynvX?*u9?5@$i8nIsb3oj0`K>z>%
      
      literal 0
      HcmV?d00001
      
      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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
      Ilsq!{SM<{a&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_gX>?p=8GgRZWM(?KN!w}KGPI$K&?YlUrzsL3ftI8T45SN98``ukH<O!m>dj1;
      zrA<{tWfMX6wW8w2qD4X4B&C&ATfqepP!SLpj>rH0^c;`Rd+(i_o5>U_hnzEWzxlrJ
      z-Jf^4dF4OPJPV)|?*~z(&^VMSCPs(NgqiN=V{c+0JDj*QlN~nJWmCmrBU9)qrp*B(
      z7ldD7$zFY*K5E?`(Q|ntmrqQ)7Eox&=7tjc&rMm()@|OH93C+Z;iVVS*^EMHpKhiH
      z^n#(F`uH=I)lDOx;?Fu`bVSb#tj`qEg|v~E4Ot%8YUH!#J|m~Fuv?gm#(8RDU35=7
      z6f`53%jPa44^wWRIrX;ZjCbquhLPEz7j$#I98i&qQf4}nF05AYH8%As_}69!j4<jk
      zFNnDc(Q;=M3u!a4V`KN_8s=j*?+dlU%<go?*i;<uH*(wbev@`Zy0a<W?A3E=`R!~5
      zF0zD$L8~;Ji3Wv0V_#pNCAqLCP4i>j<swfNpN=qmSR!m@&mhB(X$T@Dt8+BWuvg19
      zgb`AxA2JFRqOzp1$@11I14oz5O6ND}!$y8YPZ^#2^&Cy3rx-&mo$s}Sn$8R<)MSkP
      zC1fa^QO?<c7IjuwsS%8;7>!iUAS5QKdK<e1ZV6M*3?+IBIWq33urmc~4&!YHMvRU!
      zYf3T|sx9m)v^GvbM=~=~Ec9fHxzq>HhS!g#j1hrxK8W*aniq{dojcs)ATCsxV;PXn
      zCX$=o1A$YAhKq19ZDu5Fu>~4GtkCsADwRXQLZ5_Vz{7(+U4zabE@9+Pi$Fsc))KP<
      z3Zr18nDB#xk~{v!rd?fOtjDE6Y*3i*wbbJ)4VNLwh?9OxvENLmk^_VoBR(y7!s`kR
      z-KFb22l54DI5{95*`#4JwkU+jrc2Ko+qaVEvI+>Oz&D7kPR%Km1qNb^)F;>JA#7tb
      zHf0wNI51dj*cB;^E72=ibCp6z1##1@n7)%tHuXxT?bI;S&a_<`YEdWX{)C24;!|{w
      zg*l?w3iDn^k|4uEoweVwt7|&*)7fFoVAYtKydJoxMFgwYDbcP_m1bF9KCRePMi{ew
      zU<y*Ic6G6Mj=0f}Ojnxcc_-XNRzD-GFgtG)rWSC8MN<=C>T!qd=V1*s(8w|8c7>V3
      z%2VBmhcZT<L$Xl_?kV+%@E$$Cfu*M?)ol4`VW6omj3V|2v5zIO9OoKFae$@VG%`bl
      zJywBC%Jt7__`C)ELbf}*-^i_{6J-Aj8m`3`Ns!v3=Q<fEe`B&~t(<&W!*#e`VMe~#
      zpSKF2!dxCscW($cQV`)UWM9#6GrmfO#??jLWEYw1HEMJJUM6`*Q(p+TQdTOPGeWpc
      z0U_K$9<3`@hHw`bt7LHx7w5|2K4QeohwuR1ZsuF`{DDj=goD(rkki?i^ST+rL#(ar
      z-(s{s!@5K-%aPUdC9z#EU*J{fl%?Hkr=zu`)OR%GK&yg-rJzNowhpQO3R_Q0#&lO!
      z&LgX%1o5asykb@DDG*M&na#KjOen&51dmH~`GLZPA66fNwN?U|9!whpQtmlU5bmW$
      zDU(G(rk5$ub^PTquM~H(^Q8)-GLuXq*E!^onN3lilUa89DQx_(y4xbk%AC~u!y1lY
      z%<h1l{T%L!1-s_||Il#oQ-cXS6U0#tecnzrwSs7P3da=IoR&Q{5=uSA)ABlk_$iB^
      z<-UwjNNnHQ9ma7yCy{=>EZrRKntH|R7p3pNq;S3?-y!CxQV~?sdOPD&%$bx>(XY(-
      zyfwZsH#nPRtVyg=Q%fd2p+9x{^#<_@n{Y+dCh_jzFN~M*D{;WD6`C4PSAw+PSB2`g
      zoOLS&#T!aT63cfDeup=Lc)e`?@^%0XC-J7j(y47=+F)S!0#3AfeTaz_=KSwW?tC}l
      z2%@D3&Ebqa%yY|fekG+?`m9$EQSHwf-Vx#9LHFfCw*RW(J!{(@GB>2<%^+IoWov~%
      z3rkq+eEd`+fGQd1`QBC~!@Tw6C~rO43auvx4(rJggwJ|@&%$g{NBFCeANli7V9rx~
      zR^beOhxr7Ol+lH#wF}<o3xq?}20vG93^BjYH;x76lzr4`mqn@B_iz>#@xJhAaCn%M
      z;pbj`Y#fVY3yxrEY~c}{9cws(Wt05o(MBM}n?tm34=qV!4)$8SV>Z3RTPzb#h+g%U
      zFT{p=d9ks4)rclXax<TDt19-Sd|MU=teuQU=PFm{7~<uW{zGMy`HGayE@i@zSsgo!
      zrRBt<9^z_OYztO6VpqBDR!WT_QLgqi9{P|=e=a^w<Iba^0+KddAOTkqPDnxS?T$~N
      zePi<&R&R=rVO_hQ-<P*nN2@2Wu|3do5_68>%AJv(s6SdQG2Z@M%y$GkV$ChG6Ag$R
      z{G83tGC#liP9W%i6n<XaJ*i(W=2F&m4C3_+#0>=AjhKg<2!fjl;#(M!ThYR2D{iBP
      zw^PSEa3StQ2kyefxSKC5_h2pV#ih6pSKxlWAv}N`yeFW%%(lY~|89I5Iz3j6tI$u#
      zR8itq48UOcXOVJ{5b{&{2Eu5Fw;ISj%~e2E$s|sWiop7e<MY*|7XSrf@gp!N0coek
      zW2ArF(qf){%he))4AV{kmc>XVUVY`fo*=Iuor2fZ1ibL#SYz{2y_DypUK5O0;UKDg
      zhq(A`cicCIYi7kC#*Das3}5Pw+`#Rd4nm9EB8vx+Xg-0a$k!Nf?k<kpZZGCX?z9(m
      zk-O~$8Tt=J?k!Q@Z&PzO@}RwJAfx#uMs+26o9ycquXs88Cb2(g*?gE$9Ammp(9)w!
      z#bfm3vsj7eiQX58ffpICm-q(wGZvKRv75C!gIDR<*Kh!@;~Km{M7>G0yiT<I0T1CV
      zJd8gvHg9u^c#E9hwWKVzedb1K0^eZdr3g&mn_N|K{Vh`3MX`ss#mBX=IGytC2T>h+
      zQcZ%o&N_UbO8<k&^iPj~T30|VzUv66wFM~tR{^WYRN;I0zALEOs$n(9@W{@1bIUj$
      zn-pW0q<>lL?NV3cvai7p9riUAt_7(z7Os7?<q)251gzn{SfVCDXS4mcM{DJ>RRrRX
      zNh(@C$(5wQQ}_wL%gPAD;Iq=Nv!!_gPq+J3yHqyw1RCTKkNS^d+=uo+G;jjpXn?gw
      zYRgH?K8E8vqyBL`JAoHuYtr6jbSUViAoDS-eEhFjH5RD=&Q>ABRSj0ETC7$xEyeBJ
      z?{pRKw7ejScUoQ$e{@>eEo!zCJ(BxjoX^VebLQJ3=I9Al3#p7J@e9X5X=-g&TYQ=)
      zQYBky&5na;whP=j$MEvbg$+^w$MMT{seye`CF9Y+IDT^!uZg!x9c8I>TNOo}T7Wrf
      zA?j5F=BcxA27foGMKouL$COsrlve!S32iF@{YR=M|C4=-D+y$)Q^sUfDr0j9__r-n
      z-ucK(d3U-gF`Cj$Q(9=s3YwCjDa|xxB~4lNk(=^f1yhbYQE9WIBEezXiN*YEO#dS^
      zfAQL5Bdvq>Tuggb(~dQWs!Omyb<&>ISgN{ko?7Rzsm%>fn;V`sH#}`_c-q|Xv^n8f
      P%5lXGkHX(9aQywhQU-;(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT>iG7(GokEDU2VNI-*$sGDS23}d1u5y*uQu*zDI5{ra=v6|UtX`G$e%=8fQ
      zQ~VD;m@0)TsWOjN`J=3yo>_(!sFXf*Pj`QpKHoWC&)@(2@h5;=SSq7Wz-xu6x7!Z9
      zKyUD~?KPve_jMSx)sx6i+bT4VQynx_yd-@S#V^Y!2~@Y`j@-?{Ix<dFoOq{u3tUK)
      zpT=q>j(n9QI&2AuhCu(E4z+n8aHcxBCQw?4n##c$47n&{z=6O!F3#b+z{NzFW!Y9q
      zNBV01g^U&5s|_1<zOF;HoVGVq{Da&GXc(?Xz6{o6tnI#gSTb8W5x7<VpQX+UxGiPo
      zjfwR}YMB0dwQei-0vWcvRUU_}*~y-x?>4rTZx~k!iP*w9;m*TQy*S2}z_n_g=dGkN
      zv9q}AtB%o8n3VB>!1PHaRx(8vqHt5U(pXyGBB+e3RPVp?U}cza@ew{I6FOOwfo?LN
      z)sV6^thwUiTGzY~$v`DO&DL<kMb#SK)5+p)M~2PC&}j4Wd$p-z6|xr`TtUsMJ;iRQ
      zHX50tF2(NQ`^G7J_fXoU+qS~l9T}v@7%$Xtm~}}>!#)%kJtZgaF5`27t4DGzr$Mk1
      z>CmXSV9&vA3=QCpz}+olIy0V^u|LgsGyUw_Iw?<#3{B!~=9hVS@89ec&F|nIX3F@A
      z@8amHypdeYVvba(=cx?Xu9tdo9#+~IB()D*oJGHbaXhm8%^&kU>`SuZuzicd|CR92
      ziBHj4jnddxOWHo5iMKrctk>8LRG&W(fj$d^tA4KeXgLpZH^+0quT$ISDDA<0#a$mR
      za6Xqs-a`p9^qs{;p1HX<hVd?U0wcK8&2)#~J{v23wR4ui-UU3$B1dy;H`02HVvKe+
      z9p2~eGCfP&jc2&NAzB+da)2xAwLN^u@d?NEeM}zZA7%vbl+`>VvUT41v<Kx#f$~$_
      zWHwvxLynA(qcU@lKW2dwU9$4>Y=JpQyPAeam;#^iZ+sl?4&!Xv%G6&NI>7DqeSGnH
      z_{*t1-2EAYwbJjn|LOqa>r?x9_?mt>J(n{<nk+&Q{wAs1A`O}p{M3V{QczYY&{T+~
      wKST2v3n$R55{s2$>=3~~?Kj;2<s^Vy;pb!~rrJr5PGiNTV}(vnGT@7E05r09IsgCw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r2}hqOn@P52E1FT5u6T50ze&dI|NQ^u9@!xFOkvHBtYTC&7b1z#k>P
      zR8Q5i?9Q9VyxHM>e!YJHIK_4dkI>6aBVMXflsaK3L}n{-V{E0aZQ4}I)FUVJ7DM=i
      zgSqmt%~Xhhuy0*1p3l;$)2s<0xYS11L&DBcT*xOWN@;R&n-nUo2fYcwzhb8d3s~tO
      z#1f$!Yoo?Zl_+;FlTr~jW1GryBAsseZ_}?I^dq4k&y6@6W<c<C*4q6ELWu5c<5D%!
      z?T35+ZsepL!y$;n5*B%@#FsNOE^{@6#|H?G`)`O|x$@BAH=1_OdEx@A%y)lOSVNZ?
      P>#>dv_TXg9JZyaf-w|y-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZBr6a6n-x9vf`QwgqoW6;tMainUxl5DQZ!O6%J<RhXqzzXW3<7sr*+pQ#g||
      zee6R&s_ER_HBh8smUGX!=RWs2&pG$^pC3N~%pv20i(#^)*QL*8P14jnnIoxal%;37
      zQC8NCLcOf$=FV|N@xje7)-g3>6e-2aFl1Cq(x>@?h0+SZ;9XL6)m&k?I+H$<KgyCO
      z>m_MBf20)5L?p-HP7;bAUFZ?vgTT<2R&^y)FXxr&j-1yNhCtdV$XZUWs@!*iZu5g$
      zW0+2Nq}NI$!QfJh9IA~3gRi8R8M#b1g=Qix30bqM>ZODq#9l-gL53clN`&on?rrF%
      zYN`rR8KuLmLhzg-Pu`L%2_LTgPxaQ^Zn|$&L_Y@n7{+xj%Q!>$68%zKK+&RP%BE`Q
      z#Da5rRnKc`Aw~6aFMC`wl`{7R$V=&_Qq^TGThG@NlR+>IyG~x_l!zM$`Y=QHHHEVG
      z*XoCdO4W}j;y%O}`kM)MJ4M{VECJFbNlmU1m*6=$tstp+7x#RaqeeFYtSu1%1pS!C
      zeO~f|3nSw+Ba#!az`*u-;v*4{L9O-5m5QQMf$>(6&Q7#-)UG5UV40!2;%K!j;0fWz
      z1*}rE=4iIeRY{7tiJ*WD+CSj;J`-`9PlIrF`21iw7Zb0%r5QbtP8=BgS)*PpD4Qyu
      z^l;k~oaG{6f>?CX=b<Mo&_@r2ylz^pz(qg68;za7|CLrQi1hEbq6>6l5xwMx?JQhD
      zA9<9|=Zi3iIf4$BWch$6+Cb<FCD~A33Ij_PjA*Sr4h+K}hMdC-a9ex5rx@Oge#40S
      z1Y;LLR$D-N|A9<&2Ju`1ve^#87@u2!EOpAVx40!n)F_AHcapG+V%t>SWcn1-d$fo&
      zAe~@-D;{{*z~XM~7Y5^jCBBTutpC7@ZJt_&PORDfx@8*JY}Po79)f>On!iB^S&U!@
      x<H%tOyNKg0=JAf^bstH*#|s=-WlY$V94$N)e~uIp4k1D7m(&7=G@-h%^%sQxI|cv%
      
      literal 0
      HcmV?d00001
      
      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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
      ACIA2c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5Yg5xe6g^v@2_Zaec_|>^11XI}L_sN_@)WF<nQB2%F>ON)lO~-sRry!?rOfDz
      zAN}Brf64Lgrc8^#43kOj-p9Fn_T0_yzu$iXn8H&DA%@|CQ_;T^ZQZuAWDfMaTh!Mb
      zw`i_9zU3cEXl58Xw<zW2O$lL!i0c*f&(k@951<U;dCRf<MTVa7<bm<Y&~3vh=r6Jd
      zX3kH<G7QbjgjdjnHWd<NhR&qrn5jxJYkDt@tZh=`q?<GBjNw__uLYa^k5-vsG<hzu
      zfI@;HWaW92Q`<AN6-<AtlC`be29<P=#~O;#zGpcFg7c#EVc9o}yr`4Bl<OP5<vJ;&
      zNc6fWvf-2}{;HF6^MqmOpwLdyt_RwKK*sdSgkz9>H|Vc`VL(L$Q3*o~y>*g7eyOs*
      zZ+Z%bF)Cq%Hmer|BC5EC>(r1oShkHaNfJGA3=vEyxQSa5#)yBtfk>$sN0dP#JU@<t
      zK}_&T#Qz&vO^#Sb#%%_+%L{cCcQ8dmHcBPaA#t?EAs-`7X&Rg<A!C}MwN#UTLB@UR
      ztI3$9Xt}2M0@vrEif%+@&@4JMr$Kv>T~N`(vyTY<j<b5A;xa#yeBAov@N2Y)byjH0
      z(0?971|{uQyqvja@q5_S@Ka2388Jfan&@qz-$|yIE--nmv|2=n9w0msKZ5d&Rw1bL
      zRYY`#5VL3}zc;8t2Rg~4dUW9u7$eSzf)@Pf!qOorPgjI&u!lyLQ7pv1@~`M07LgUv
      zTMe?c-VA*gKyIFi?7skV>r5m~f>>}x{*Y2lWcMbjxRU&V!Pm67TE&ec#GY#rt%}L*
      z_%HNnk-L1U#l<&rFEBI05aL1L&mH^ofxjqB6_4vu%m_lSNa_rUxQzkq&~NkxW7vg;
      tx0uFz%wZ49_<&6qNFz(xoIs5PRBO_;P<)B%_%NPf1*;@B!<rC%{U2@n7K8u*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5PcJ4qOscg2_k~WTERsMdZ_dw>LpZA>3x%|aYM2TG4bPPc@jMM1N>3q
      zq<X5BVQ1zIZ{9xU^XvTsz!5flID~F$YVlm;BG(a@OeD4tm&O+A+*G=HxmI_oR3=tF
      zT*B^5_Q)no@d!J%OvO__o(N585WG`ubTuSwcEe0QN|8&GimND7aW&W<6WlWv3NVMI
      z7JMua+MzaTR2PvdZ)KD#!dhr!nU7_u8~i(Tt9$)G=!G*KPI(y+9Gx_3e|!*v8(WvL
      zy3oyk+y9;8u-U>Mh^-Rl`J%*+9dljeZU~11@OlSt2wu5!(Bd3SrpLT-f@Q{AKP;@E
      Q&4~HvV3jr47$XPk-(#d}o&W#<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5PjpAnxrOa4GjefgpamKD%C<<kXrQsZBZmQJp@JK=r}8PBY#AWQ_9ck
      zp+e%o58y{3W;Y1ANrX7;%<jy*nRz?&^Vjzu0N!BFf<f30lc{?ZM{XnstVZrIjopt)
      z8jG$Ui(xk%iZg#~!6dAW{7c`B{3LYG2O|;W7FGzGX%@O)-Ub?2#1ITQBsktY?0{hA
      zU&n$#9m2|?Ok{pUs5ciQJFPwkf8Zu6D4}L!6>Ef2v(+zyQ`@j`SKS`iD5FBCc`^~*
      zX*>|wCw~xe3CBwVKkECLRPR4VGry1%!mjsU<hfrv6uIWs$wf@qDYn|nGns@3E$`Mx
      zaLWoena3>zEyYz%t^zU6WtvPZJfHjI<MXq>Zl;`xIK7-rYu249b(0&-&eGgv=HiJY
      z%rEp$@(8L$cHJJ~-4cF<;rxqnwa8fITA%Ar*($wsng!xistMH>wryW+3>rMw5}!LT
      z;HW|K);em;tjl~>VYBxh-#&9hiFK|04b}GE4c6ORH@JVzCIcHR9hfZNvpi<#392|n
      zoh^+S3=gr%FHWG#kiMxx1`!_NF~Ir>wz%9=_L;1ov8BPD+m;u2sbgQ^wbt9%(Rz0Q
      N+f*J#w^$lz{|2Zz)9nBN
      
      literal 0
      HcmV?d00001
      
      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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
      bO8GT?;H|9LsC5QWip37oiD+J1AV>cMm1B?g
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%Syvg5IvK`*2LOst?!NErm5gXTuF-?p;8ESp=6(=m-LoAAWf>j<w67(et;h(
      zPNFWX3%Sh9oyVCuGw&a-Zvf75ScgV94wFJW#*v7W&t@hjX)JD%G?wFZA{{l)>o5o#
      zGjHLE$V)<T>(6As(HfzXW}$ev2rAG|Jwa0wLfct}^a-_rN>qMD*zW#K+b+Sl=BXBR
      ztT$kyNzl8tYk~<hP{%5v<)}oCi`bXhz2`@=9FzuL<a(JZ{qLZWPt}}o;{3ZFvocgJ
      z<C4?Jc9u8dv>D3Wkx7_OD>@^Bb(a=dAcv}&|La<3<<>Z2#yZOiOS>e_7uQ)#SR7g7
      z-w+x<!0NrA(K~%c>xn%Lo2;8v?IjHK88P4vz|L1Sw$NdZaaC6$rp-C9-Nhcq3Hz)y
      G9DD+iwQ73+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<YfsZq7=F$ew3I5ije!>gL~&zt6;V*eO;8k_U^0U-#t+?AW|yudTj%9p=?6!m
      zi68yok1{@|9T}5Inx6M^-plho=l%WX`%eJ#*iaA=n6A1l<5S%+9J@qOGb&!)c;b3>
      zYuEEl-}YPuQGtmw!YY=60fB_qs2U#^%0Y$WWPyPd+qL~Qfzec<W_~aY$8@X4Ua4l4
      z{d{^~AiCvMEDe1a(xE^V7%teZwcDzfti~&|<X8f+f>$=3eY0UpyW@=d@9n0*OyLY@
      z;RJbsh+UCoP5}@Ys#^ZbR>`r;I}Ayr(kFt7e#3UFOqW5$&rRQ|%OKVF!W#_&V>)7p
      zE4V0-?3NGjH(Lh>Rzt&OOenY_FwzYO3D9vBlPt*cTaMY}IPo3;fitgR8Z!#6k(zFS
      z;7Z4J#03=Q@0xY8IF4D#;>~~P?hKONSCJMFZ)IRcM;5pEK<440<#Md-$p<>lIK@Ud
      zQ(lE3FnHJ@ZdJuR>t<Cf(A(@VwJQ0!rz3&5iY4B^lYJlP7?q&a<K*6l=`<#;Qox?T
      z`2R2nXhpBpC|lchuq8cfo0C*wiU|7n_jBc={JCJX2C1zf!Vegj%N#-bN-YANrxth@
      znX!a(w3A^J&SRJs<1vB@5Q3-?2NgLU{bZanto@BW`{>)7Ya?0sf$=v~F10argc~oi
      zu~Zv#uQR_emW}14n#}}f>~<*b1cDiNLwhk0ZQTFDk|D?(hN!O-<ObV6<brKt5|1#8
      r$9&XnEZ`}Yv4br<<M%umWGaNz8Kj^7W#kDs!E*(xtSm^1?6Ce9)2Z&P
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~pIQ6g^u?Q$n=ZVg=>X4=fZL6cx0E2SE_0f-^8Uj^jg`hMG>Bbdps0S^83D
      zbjBaxk8(Vl6k7&5nccnj?%i|mIlKAu_vdc_kFlX3CQzt3ZT+;_&>MDzOI@$JO?}sK
      zo7Q{JH7(z_o!Xw`2VUC@Y}Zi`7nmM+X5Xz^3K9bIu2<8)t(qa+l}G}KlI_^Rrohcy
      zxo&(l^oHTo^n*&>GK1pcu|Rx_a4Lo{szE_gAXT;<YroyBSl*FQX;=d3vTGWRW5cth
      z-wnotFSakRQXbgnl^qoYVs=$xUg}0*q-F(2hR0c8Jh#}Fau|5jsHlQOG-Qzx7-gE2
      zV&7=8M}^+D5g4@mbL#@-E`p@2zCJarmQ>nTFeNb2ujBT?yZ_q)$-s>cDwq|>_Ii$@
      zui7UkmZxGK_Y~X}80#fO5^K1R2ZUjFTMfgfV3`ZN!XRlq#G-;6#qR-xTN;)mSIJKD
      zR562Pc~6r`6nMFxs-(OjqbnL;+Y^S2R?BiI@N)lspOe3&Xha~?^{Iwi$RzPxKzx>v
      z>l&tI@kAwLNu35Ar=*8&+cT{lTfUds!B4v&`C*RNIK(l`e?$(xJ9;CuHWA|oB$o1L
      zP=C;hLF253(KTkT;~M>Jl!fa^(PKWwaDy0pSjcp-^w4L8r4GiwGbw^fFbtGJ7%jAi
      zBN!p1007qsOmgQo^Wt3Za8L=(vPGAz%NFy$F!Pbna~&+4Az#j?A9bLA$TPGW8tG@@
      p(!pA<csAs_!>)J9;SFZ7hXuUt<CO1mN?{5w@RCIZiYymH=^q;2{L26U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*%W@k<6g@4CG>JTMo;Fe5ge1ta9OXfRBPTZ4&cj5O6TcKEAuy6h);Q9P7>yi<
      zf})BQJJ!wz;G!xE*eGSFqKZuxtl01iEZFb|!08@g%a4>x)7`gk-+S)4r@Q>yKR^8f
      z;3672LITGZoJM-NT1i*z0*A%)yjxA*cHF8pZ7uscG=Xz(bQvj|o>}xQZ`AZn9Z`XO
      zuD6hWcDbm+$Or<_>$YS2g92TN?4r43rYokike(<kT19`LXI4NPap$cV!ssxdW0%0*
      ztnFC2Mzvsh(`KP!2^`3}MYA$%dbV7*jGAAz>jEdUZ^S173<!kmc^P6`a)I6TTE+GQ
      zoLz~rp6pimJRQ5aT(oMw?K*WG-2#W(eMTq7*SBNfrhzz)2p9{NpJQ3GW~D*=hY~$)
      z>8E_pb`}O=IEE8Cj+3<wXu+O=lQ<>eH41g*EYO`8BfhPUD#&T+{*EMgXAgn12F~GK
      zCL*kfXAT?Y78_N|VS5e}+NO$HI|Ci)L9dP^(eJcxAca1G&Z1|Tz7mV9muhM6a;wtK
      z8B|v!S!n|oa8Y0nQQb2=!U;l1w%SulE8$$m6&>$w(U{yba24;9bK9v~o<D4rT#rEd
      z6WfDqx9pHfLc3-l12*5NZ|dVF3IAUlB^-52C3*^oF@eZZ(DZi2wS2i*Gd-U*tML-W
      z@2g8ffp57uOn$_!->g`&O(U-3bI6x%->TQlBFhUWdLBxow+-Bpit8kalG&E46xT-v
      z?#eBV5~@nWxPcrd2)AN63w~JzAz&%ieA(s2;&~Z!(!i8#%mLXL&swtGMt#aIRH$0n
      zhDjZ)xqGV?ha07m<w=LbG0b32-e%RdM+P3ta1vsUDO#bV(-Q-q;8P+pYc<Q^HBId(
      zpPf@t{4*#RD9R#t`EEcmxh>gVoz2)xs!|cjaFk5Lg+__u-*%ybB1rx|&#G0(^g1!J
      zu%`wps0ws=R@GgyM#^@Dm?`=8?x{pO=t@8@27Tm=t*zGl=Tyu?R!>o=%NX{nHNH4g
      zZo?~Dw`}?Jb*?|g=Oqg`#r}l(i|`SbKfah;?dEI{A^ri;WbZ4)e&j3!gWs64_S5?s
      z_Hf-Dc%c(}xuQSzVLxM#FdXFGA=)&qx>VHfnJr4om1Gldji<s#n>d<F@%wg0qv=fF
      z8WJI7BAlO(N0Mu}6h=N7*P7^$M}FYJ0K^Fbl@KEsBB&3T=tDkQ!+b<Wa0#Od*kF)o
      z9oQ9I#|;9B@R=CoIT@*kXNL&sAWk#F5P_a#LBos^q30-W@+-+0;3zomC$3vfj5U#c
      zfr$1p{Bj*qR5{#Lsg1z7m0I8)j?f|l{mx_>#|OzQL){-=g^|jp)-WwFo_dW~>Q_Ww
      z{QLLMn3?NcLtfw&9^^P<Tj|@?M^_q~_&Cp*G;SRFv#$wrgQBYn$vu{NpJYw4Z__Mz
      zhNVv81oEWn0VO!c$L<kJf6Qw?$7}jTok|86Tlhnm#XKxlpfgs9vk*_Guz<4Cj*UKA
      zHuYKDrA4-ArS~;Ddr8*{^zbS)?Z&Ye*p;NEKbeyZWVBW6jcd8Mrbx(WaqTra;+o>&
      zFUo;MDrub0MEa87K|i*F3-Jgy7DLFd;!Ir2MCD=S7mv1F_QWIcXyDTx@DHBW1#u)d
      zh?-Q;ixllVMOtF3Y(8#_RK!!9MHLA+{Qu@DHB-Yae1<GM(&&?_C74(y9nb0UIcHzs
      zYudiWSBk_t0Rij!TcOtwN!*Wb;4)T-S-w=nhMDV`B35Jcapth7KMTj1$)bt{>Plw*
      Ef7%QjJOBUy
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-sW-5Ph4*#-^Xv`t3pSl2kB=q6fu`QYn;rXz9V*CRyW_e3Ue;`m;QU;K3i@
      zj}j-fLbV53c4lYiz1exQAD?gU01mOOL1EbS!jbhD_?9nia(&B<0_!@A0?~aMh-P>f
      zX;2v|eLm)v&qL3;vHQYFG-MfSQS4a{N6v)wgJ)2r%TR6orJONj&t)i+3x*YAK5h0G
      z)XT^fIx;90kVA<fW0<`hsDT1BEHac^G8FAmV2ilRZC|7hMGp6SJeFxZy;PHXIb_&t
      z{VR{U%6lS7yKnP=>eUQ$rngQK%g`fGWd<}HaEFjZIlL0F91FJ*M*)K|D{4xdFV!?}
      z8T3vxiXG9A69vEKeUQ!#JES>7dm+`HN~b?lY3HERO`c8-D6{~*{)$3<{{`h|iWDr7
      sEfE(uCdLUdPEn<3^&5?4)F>j}q$*?d8I%M0wW(jn2IUzx$tu|T0@rARg#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM*>2NN5IwgE+3GH|6j~@yD3ruq43tGE6$sIk2SSTTRUsiEInHhB$gv~G34yNy
      z2^5J3K7fxxoNHIXZ4)8!VBKYA&dfP?#=n05_zB=19;GoRkgvNPqt|o{$F6c|7&WhH
      zymY;$eD}r-j!M0jFWYU~bJIu)OgGG~X*i}^H}<LxX$5Jd1a5eK-T1g^g|WRB!;DkG
      z0!c|Eftm7YgrY!d%XaPHslfYud1N`;p4DkeHz>vsDuHji^<sHM{@u!3+4h{S^oxZ9
      zmhi%>$s7`x(2&KXKq6l_$bqahoW~3uR2c#*`Lihsv8#xAG0Vsc8q&xJOqFd{?sl40
      z>F=9WM=GM8WjY6@Z>#h1WimLj+XDJ%mZx;1IEk8P2`rBe83-egQzA#tbyDhMp#(BC
      zhl(i3f6K;zL)$eS`!j{(Lu<H+WeRoZOLClx3w5lD5;`NhrqeM4x;)9B$g;~9C|1sD
      zIYeHvDfKMb3fOz?H1YyVBkCQvrJ)PV$Gx`qUJtB_z?z12Y!JHUl?FAw8bag$s~)#J
      zH;}zRQ4QN5HX9**$`^cU(IzTveZEJ>VbkR*UdOlOj;)$!Vb}m}sL8<+StR(K<2S9E
      zkF%WOmxbat&fN#vlUyhDJ~Ull>tpIWX20@g40Gz9c3_J>&oF`KxX6<pMc@+Vc~U+L
      zxJ*2?yMjeVs@+vw3$d?rALV*Xi}K3q`Zvt>vGg}hE(|KMz@0FK7CA;K#F&~mfGZn{
      z00Osgn-MGAr?}ohAtbX;qKXWOFv05LdLOG_c#f!~Ld?Aw1#Lh<gMquDUE|O0epro$
      UP1ciOR(1hx@oWMQLfnUc00W9UtpET3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB^T6g>k-rA1H_e7`oPU}9rTjK<f(L}NnGfD*Su8DX#wQi}3fnrMtJ`~W}7
      zcw31YapB@ld(WJ6dhYGp`^zhUbu21~Fz5}ZYxHc(uw;!MEu-$*#<Ant;_{69%~GW-
      zI<9piJOwd^(H6hqhQ*zRaawB$(^n8@Sa!XJal2uL+FqMv#xF5L%yH|2AyfRxEfKcE
      z5Z{%K^!FLE`rviGO5#Hzs)%AFi3Cy%Q9WNxfbt}vV3;9Yl#VEM?V9k;dCmI#kjbqo
      z_hiub!I<Ba9fm^jze7{FjODu5-FAuFqSNN4xG0}6tmwt>O;mhOI*pzDAf#amGYY0D
      z=<l(U$RbChw>@zsd%<D`3>nml+x1LwB!h{j|N1LyfeK5siYV0(6@rb>8KFu*B}AjQ
      zBkBW0Ej%GvSbaqLKIDwinIbK)i5Rv>v5gFMxlcC6F+m;aLRUs^6ua+v(D&2|4@j>*
      fV={s}qDByy#=|IkKg_f*GYzwtqkD$=kiYN&$gPt^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3+e*Vg5Ivh-6QkAIi+6pJwt_)?5NQ!bs1!mKl;UgBZqqHfK$@!fSAtUT!4L4G
      z#Mx94+7}7Co7p+%%$eEGulElCN7&6kVc2*4vGL@&hAV73hDI;&j4MCz`2CF)4cbAE
      zn_?7YkYrdMS`U`tTE1gk+e6-^+cZNV2p!|`xEnKn@eGN;9x~+3Sx%iH-4MQr&KQc7
      z`E<3zki4X_8WLF4p<;=|D%Fk(a-buFEJMx|K5vgbn}>In?Q&Tt=vr>a3Wbb+E|bwf
      zj2J5B|C%Ig*}m{CS3Fa7hO&+|Xk@1!aw?%ZJTkfOM1$B+ixMK@o@}F4HD{+lV%lvm
      z4!gW5q`~t1P!Hv7ut${=v{JG^*&e-4ik1rLVS)adQ0N1++5~#-;0?JKiWIESzC>K$
      z6iL*H(LkP}(iDwV6euEItV(uKB>YtKgfNV9YOVH)+ytdRNiC+IlaY&9PM-p&a!ipk
      U0T{zNHsW&=TO`D=O}m1fZ+Jd>Jpcdz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~ixX7=8|f1k&ZBv_LIT!B$KHG*)V>1#0E1V$*;HLn)$e!X{a|*-euTrNydM
      z$2;%6a@rf6@d{^j>FA7i-gu=K{sRAp`kdXg*#?{`nRE7hJn!><ocDc)-~ajfR{&@5
      zc?b;xr*dW`zFjclhMwkUGrnOJ;+IXUpj}^7?ff;ZTrunr0s<YI>XsTeR5KS}NN;Kx
      zo(2W_tx_(2do1J1Z5JsL_X!F#TIo%J&P2WNxIl11H+B1>Kv!h{bu=Xqn6@^wFdEUS
      zpapFti$qf`peYJMXclNs=%$ve6w+F0Sxp<7RAgmTBc+yfxvw4u?7UtU7)m^guQaSV
      ztDCB!-=%JW9tFn`rZL%)Mg^@o&Gv$_e5c4gO<EFY<EdvyN;N9p@r*!tb~~dLZQU}<
      zAv`ZI@IS$N0`r)b?2>Ngs!T^CQD1btE85sjjZ>CoXsTILd4mDq`4XiKEy>{dIQ**R
      z6*+o{oj14W>c+gSl~mg*E!nC~^AAfFQ!SSBmYvYdoSk<)ofkNyyGSjmZ8HIe1&;ZN
      zXBMvdd{N3(3bGgEGtWm8estB0X4~@IlHq<?!E-n+SFb1-z+ebxpGv(MtHOts_vaM!
      zqA!dwye8A*bv{vKCYq85;|fk=P=Y2EynvHoyn#1ExJ1Wld035}f+<W3gcyd3wvZL*
      zj@<A^yb2qa9GnE^6ug8;Gu{$V)=X=lpxT+dR$iBPZ!0*37iG$hhj5i#HFchgQ<ZF1
      zD}|9jtDF`Uyn|~j1+`ez%ngCw$h2R%U&vLytY8GAQZyw+R|G~5DxQ5A<LM<uLR!W=
      z>Dh0YZfr=?8u6Zjb-d3yU=~apYMHfj<f$xl4@veR(jll!#u}M>r67Yr#+33&wZPZX
      zkPCsa_4N?XH5q;8*3dIKL5-`}l#hM0u4#B=<Iz+zm}tQ@o3%M9(Uy!-QDD@s;4%7u
      zD7i6k^^~L}J@1oQTl4Sni+I3hR2Zfa!z~e4;cY3lEyWIe$QnQEFCfhn5Nsfgq~MAL
      z7EHS-!ooU0t4tmW3Z1=W$*Pnx+MF)iURQm`J}oU~{g9cXiK9cdOg8>jjuyydJ;c=<
      z8u$aku{|iU;h)g{19uHL%(;!Sz&HY!q{KyZa@XylaRf)Xqnyi1SI|Yg$9bL@!Mm1N
      z>_@ckp}R&IcEzV?$h1qRctDR%G{{a12q9a5`(=R>(ND4fzbAOZmQZ)X`mQ@+3D%tq
      z5hHn7xOF$tC)gluJAoKctS~={YjzXP44ANJNfYh)E9M|R(fd7@c)%eY4sr~03~^lG
      zcu*a)#Gcvx1!JpRyt;?;4le9+Iq?V=9n8q(>|~!y#ct*ONxmMA<DHk~{k(%KWJs*;
      zA(?DE7x)hSU4d^99_<)$u&^>3>k2qna`5iT7Xi@~=zI9@-=hw$Q)E>tU32ikBW&zJ
      z?=&2ky$)`5+FVG@Tz9NH*m7`ZmkPbNPx48CG+oUw99jOmkjEu#;tC8bqQISno4AEC
      ze><>oA6xhm+xQB1@iq4k@e#hoC-@DY;!l2M?ws`kSIwO!{6Xvv1Gk72(f6o%hvEB}
      S=tj;bDS6L*_WQ0?pZy2ge)=!~
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iuf95QhIvLY=ry4{pktQo^A*QBw{AlmbFgL6M>oDJX~=B*(GBMvh%MHVO~G
      z+i(F=t4JWhB@z#Xm|cg~N~6*XduMlMzxiiofB*UR1Hcv@C`d4@_uSAJ4IIPa9a{Rv
      z&>R^rU2kAFJj)C`UqOmtsc(KT4aanQ#;Z=>wgLrn3@e`BlXu0PNjO8&3PuciWBN*!
      zT#jck%x!a*2TvI`3de(vpA_2+shZcdRV1;XLB%4G3dME?49gl6q=mJjA%nDnRfe^r
      z)VrbMG(GMHw!bs7?7e_{ZW@Y;9L@{W1%}nQidNurw^uE;)5tI^Hn?l=hJ%jnzcxFL
      zEy|*<IBnDCVm~=d1@HNgA>a64FR2CdJv(TI9fw=>E<>(Rj1@ddu2MC54cBplA-#7P
      z`zWq6nnE>pd2%v?7bR_d90vBF-WBu>4FyRbP7WEer0b|!+2Fbet!TK7O$OCDY{jVu
      zSEmjVw&pqEz>V4{kXst=3Z!Pm9F(Eug}!CK;G)mV@h7+`=81K>nxyXx641re=@si@
      z=Co$$Q!!6ojjT@;m!!2^8Y5dOA7H6eIe=dNh3t3a-s)$^IQO&iZ+B7bzEXGsm*}6D
      zz{g0TO4w~I;0dL9hRb+P5^5-6his57Q{W2LXh+GUBql8(DnVkdO3^~nLn$33r?gLU
      z_Mwk)?F%`gq;nJu)FoJxb~XaDgm?$!W4L)D?AA1_ITJ=>m#`w$5jAU;vhwFCWp8G}
      Z=wV2haU$%_H0<3>7(EFIyC+lM{|mwL>frzY
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}YfsZ)6n@^Ztx!4`Ll7KlRW935DvCES8YHM6<}eHwK)-a|>nLvR(sqdcCO>Eb
      z!APRt{ZYpAcB3iVqFMG{&gD7Jd3xI4e}4P~u!v;|5r*qktEnB<Yg)}L)3&d<`l0s1
      zvg^FKy8T*rT<%DSGNkwQ1M-N-hHrJXAb?@W((Bx9=muZ?s5_j2?J~#*dd;lpo@rGX
      z;*U+s^qw%pGP}Fk5<_&&u5cNBP!#kd!O)k<mIlButRRNCIE^Tf5GPCCw0NOeFLP&0
      zFV_e@mA4JOR?;0)+}p;ew`aNx)A|3mw8Ah@<zA~lhVe``Z#z}LJJEm3PC@eep}`xT
      zX<M#@OAHg?DC$3OOPHd{9o~ZN6`PHQ?RdNrME2tfsY$u&0e4(NRu@&v_Eh&QQbro8
      z(BvA!SSBxY*J`>|)ry`&QmzQ`6e7R<D!<9~3U?SLJNO5#6$vx{dd5MZjA_h?q5}+r
      zLK(+yaL4<^Fx!hlh}A}UpBo+(nrE2l7GRSbcGWUJhZGRCZYfw04UQOl-1u--tw2*m
      zlOcvlJmap`iJKedHrIn&D636P2o|GRY<7UQ-3&?76_vyDOT$PLte9>oG{bVyZaM~k
      zZi*2cJ^zv{2(nOVYWwKziqMaS*gw$-(=O4U)Fr=6rycT(xZ&Ih26O3S4CSVdk^Dxc
      z2vW4B5T*4gt*eyu3`1DMC|T528ZKarZUo?$Vg5-Jico=ZT%>)1Y*D&R`URILPejS5
      zNbjUBpWx~*y0vP>ea}lDUui|P@o98$qYG=<#|4t7nBK`95%(h`PcZwn1F;Z7Oa_P<
      zWZQ^>ZH|Ur2(nK6BD5#wzvHIhIDd|!>^rxp@Ead=ycHbCkbs8UM4i!h?GE`w^I`Z6
      zf){%K6aFp1zYD3H=z=Ez+{F?VV7Q0-v<mK;Ul@o9ExwQ;EUO+8Ar^@6pl5QjGx>eb
      K<cEHVM}Gkih$T`0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6SyR(c6#i~o8VErYH&hVCtu1KW7jP>`MJ<S}BJ}MxTuLw`oh*v}6Mum(KB%MO
      zGUNE>j6cfp+$2*Yi2Bgx=G=46x14+P{l}*-08XK*AjObx*nz&fV(FGyr^mAH@m2k%
      z?W~Auac+jYo^VUt@E!N5f(*mpGJi}7vY;7mdiwf2hW16l{lFC-Lw8vg=z(uq`V?=D
      zGGs5Cw&`DGNaymi44H9fL8wThQ-gwb1zil=e$`BJZ;9$uXz1(!!&VJ#$jZK^EvAE&
      zx^VCFx+NHT%8tRUS?-$hJq~94C6ibTmH%5MG1P4Fq$P@BAeRqCY@(V9)QMF?G=0;t
      zJq3FhPHZ$Oa&p|U7tKcCa+%vIQm~Jq*Kr%6t<rx&Pwe)S?f>Slk~;$$4&WfUWO~zl
      zMR-kah~g9Ol0D>hO{N^ua9E~jrZ>wibAhPX4HbPjD*Zpk(3Y#!<Y3f>@JrDg8FuEP
      zIa=Iq=vCjPn$dhs!4Sidb;PF~zak8$VVlpyLPEuHhQk|Et3k8rxPBs2g^p7SPX0~w
      z+*G+D_=0dXoW>c_Yb*)lQOs5<--PjOC(hx5g7XYrzs?w)FAW!QiA*BR3`dh<@79-v
      z;g3c~Ko9lDAq6!0=%|L_F~_k4w^fYbiiWG9$@M5kP6xy(V~5mwHhM|WkGaLLJ+T${
      zljqAzjAB=kT|5dJSO>wDG~C1(;oPr0n2>>68g9!#Td7#CPDt@(4O5sVxMn~~FD84%
      zvJwn7*G?FV7H=@H8qupdfoq78DX-z)KYlyH8-as#{?hdAVMxhaOsfp7>DJSK2fdBa
      zE~Dqx!Wz`VXK3?l*zykDuPK(oHu~QZ))%R69NoBq9*SvE4Yp$kz0u^ci?VmqI!n)9
      z><xR5gjm%3Gy3KW@3EhLgKIeQit?h~*|5*;KlaQaANOo02E8a?IP5AYDisY3eZYyr
      zTXYY7#Mu<SVq|Lg8<g}5D8uh@`DF_v5->w#?h#NW1UnG5hy_qHT*GxD(}OM)$&?hW
      z$4P7?>URPL)k*^WEdqVd(eVZoFOYqM$&a{`#>4gg%@O=OUHMu9zP|<EAH!2q+{H`?
      Je=ihJ`3YR`bW#8S
      
      literal 0
      HcmV?d00001
      
      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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
      Ycc8M~hDyByl@$(DSS<mVlsfHy0H)HPDF6Tf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pgu6x@pi23z1@3KT*JC2g=F;D(fzVjv$RByJ3$u>&Rj6t-$ajO>wQ2KwAT
      z(V0Fsuk_2AG&7kzH8c59P4`L~S(LQX8OxH+xo6Mro_qD`uRopxxQwr&XcHK%n2pTg
      zel=4yc6i&%*xF%cUE9~~x>nNdC=`J+d)k4PscL2=b8lx)FF6A3wxg9E3H0aPT*EP{
      znd_FN9pw$%$qIBV8m8ea3q(@sO#x-4R@P&PAg&^c&M3MC`rc3(gNk?;*iuD1Is_7V
      z!_?Os`#ZW-)OM=6Kr&w|Y1K{5GUU4-RGeMI78uL_w;B>t>J58Wwi#6MHik%0E0?Jw
      z<p~Li%%&eQTd&pS>Jb&^Fv@b<_>Lr~DksBZD&E03<y!iF?SP5?R4#oQi3=*a^Wc6?
      z;9|H@!Lbapk_}h*Aqjp_#e@Wpur`XcKyS;jJDR<_rjc3-Qz|Y=A@NepbTq@X@9IY~
      zJ|oLB|LEw=??gvG6vgEellF*o;)($0(NVYbZ;eA~e`_=NTm^)|i{jc$4xul!C48Fn
      zJ!0wHHXUW6nDlAl4K|!cPH##facRa?71wZ`IJU%@NaaGS|6P<UUr})rw^&(kuyQ`!
      z*f0EFPy}dL)Y)#BWt~PON)5}>O=rV3MyK$Bls`!KG~^uJ(wv%=?ZREGMUm&`Xw7e>
      zR;}_N88y>Zv5tEJv0G~!#qF>2xk8b12zlt9s5m}FA&UC~JuMKKQBee)?=<{&Qt_sW
      zEqq3|AL&O0X;<$FW(;NHcqs8c7wB%`xocyETEi;otA;#miPo23My|sc_d<l94{i#1
      zK>05(9%)9p_;iC=nL9K21hL6yP`96;=XWH2W~>dp{O@t=XQ5yY3CtqNnCjJ_4{z}e
      z=nwGbStapelfNM$ni$w>A;p*jme_YWgc1u-h69vqKC7fekyjIEm2wm3Pob@n<LwYy
      zGC;e4cYTe&vTr*(=K`dq$C#HdBTc;b0xAC1r~kzG^i&g*KVVqir(fXx1!YKiiO%Hg
      zW3&$`$KSWT9{KV0tK{r4!8~(DX(hNHy0L)~jy#0|Eh^$FW2+phH0uMec|a`3$Q-G~
      zu!s-w5s^l40rU8nqGyS;z^uZ$Ec4!wequ%nSPTR#%cpYzdynYgGo(1ar3J;!4k=A6
      zZw)C^mzuZ{GS1`t4f|^t#tzP-Ox`-Kpu(QJA<l~d=S810IZ)ReImgKLHrYprG48UL
      zobMp#b2gcg<DQXR0^R}R{M1XRzu=Rn*bq3T-w&Q*n@_CpoK3nO)G&xT&cfm_4_syg
      T9;(l5ka_7GKWF&Dt^M+Ec_4h$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUhD6#lLs80>)rh<U`Aq$x?Tad7L<Bs?1zN^onSJc`mpeGD)%rpA!LMxdxw
      zt48W3iYj%}s_LTMuwju(K%`d9qKj1Oy8R3N8EwBiGZ`CuQdrpc%(>@$=R4<~bN=|}
      z=cfQ(#hec=fk-A_jBl^y;<@Z1kJb35x*eY@=-GTGsq5-avOsyUSkN|o@Cck<Rkzf5
      zPR(cH(~GOxQo)BBftGbWV}MBKl81mhr{x7iO2G56wzDbFc{lA8@b+YSN?p?i1!}g`
      zTv4NC^WAhQmPtrn4`uV&!ic~?w<FN4{Q8<kv{_AE*7QLKjK~7XjIJ+hez?)7pdL-+
      z*&SJ^gTNUDKGgcqA`to?p3<~UK^^=)oIO$$lc>D!P!NFPM-ZJd$T@-j6H%_tS~5PB
      z&gQkL;@YC7&#Q|$O`s{gzNF?BR6Q%dEv2Whl4b3B9BbqFs<NgVs=le|0$q-76(tq$
      zZm3zEQAAdtPRgnLvbIe*qZQIxK2umR3d%>Xq2}FL3c>DFq&l%W7N=K19Iw!!s1vTK
      z+KBP8CcYx^Wzw=$q;H>s*Q9S<?zvW=mPRwr4Q?ptmj>Q@QX}Bw<^0ZuR*NAjN5_)$
      zNz-FNHk~P2$z1NPrc$kmr2J?{Qo$P-WxCqEqMBo6g5}QUoD4?pFi8%9K-jU&r4cyd
      zZFPQxMZ8gtYUv#)Rjd4L$CQE*ye_4;6$~IIaLEDA;gO`vlyn}K(mM)<rL%u-y{Io~
      z<5}5?XB|7MSB@{v)5*=Bm;Wv~T--e_IXTA33E^39{2FL=iqfC7^78y3`UIz=vESiy
      z@4^>*>dhUXIU3zZ^REaVpw$xF4-j&X>>?8Ou3Yo*x;6X@g75Xjf}X?^gy*OUh56z6
      zC^7fIEy5DuhkyV2i4k062Sg1n{qSHAXE20w%rMG)<G6`FBr(p%o#prY7{g1n?=#uq
      z0$%19d7=v!$z4j9n2!rFZr97q)J@w?bW`&1K0;J8!#GcA@0DEkD40ZQ4CRCoL@^Dl
      zAe?A|n$GjIcG0IT^c?~rBO7?dV+yUI#6GS(w(%NB0GK4DX*6KQz-=*oZSrlTT1#Ys
      z#7QGut&Fh12)7yG&M^_LoixJr$_O7ag31U>$3$RXTUDC0s?>P2N=<{6&?|&qCG=Vu
      zbfaCKM!P)hdJB5Sf({;q<^zO6iAs2#@CCwemB9yX_@E8X*|gvf2`}4!LN@h~eAaMc
      zz|-#8$JN*&Zhni4Qoh2m=y`@#Lw<%v<Loi+z2Uu5pa146_16Vs`0f+^6OP=cTwI^A
      zaX;sZ{DQ52pN;;d!P0E-37h4F+|Xo4PIBKG>5o|rUXNam#hXThb46G==(Lf&*X17G
      zMVri_gRObp;@7eFz$H4U<sAN9#;?W5`yu}yak+nmRy-t!uMJM;O+1@Zmt5?OCMQRZ
      znv3!PZdvhD<Rjw;qR}1}ZQ>Abl^(_%vv0~^12$~HPBmbqDq+(W><B^S==lkIh)D<3
      n@5`RqZ=?DxvVxoC#T2J2DgJn3io-9aScSTK48<8H=)&xOF<06p
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8BH5Iwga+fo)=SHKS_AR@MF?TS^QE!GbZ(xgBF(x@-8Elb&EyDht0T7Q84
      z2YmF!S52fQKKKLtQO3EuO+;y8n(UpqcjnBQnbV)YzW)HQfb|f33==i8t#liPV(1k*
      z>WZy)m6sc(O|_wg5MYSa)nipLRI{dRRq9&RVF=Oto89dqgH-zSy5m^7S<5qwtTavA
      zQB9|;8f`6%A%?j_$7$shrPJx8JDGITs_`1iLN>dkm{iGbsa1`^-?nsyA){GU4Nia|
      zc;uZz%hC??E`zYFo4QkA$R<jIsIQyNhDO-in!2x9`SbjeWrn~?b6<<V4@txYT%y8>
      zWO)b-V<JQd5nRUA5U%{yyw{$HYnWgdHdNawn)_OJ>ww@A#blAE$3+Z7;MTN=5eQ*i
      zX8`wah=_Q=H$}|j7IkU2E4Di_DoX(8nQ|IQ9xXGBCyIkY!blN$+8d8ei%@WvMx-6J
      zRm0}6XF$E><&&?&xJQ)vLc_RE6Lx1G!9y&Cu*fj`|EY?|B1d&<n&YZq{%oDT3<mVW
      z5H0DZw%Kk}H0y<0F=)S1iSN3sS~~apmjUNcC;IV$3+`)^bSAV^%hoJX*TBGkl)&Jt
      zlDHVDHtaM#mJFkbfkY!a&9+t5)^yHM?3YY)tz(9^>8C$XkdzRFKwgMEAHs<76_Xv~
      zB5+UAl6#UA+!&DBqLdK>n1BHNfcNq@T$EF%7)`};J&YIPfsYvH7n3qO#gr_~oMQG9
      z_T*GNu-C&Je@OY`JtXK=x-EajR1bGfkdYS1o+SGNqEe=BpFotQu!}Gy_k$m}ZuG4C
      z#pRc$Z-E#Bi^MHU%FPkiJjU>dx-DQDkCDI%GFYXX=O|(wDt+tNz*}tN9d@xy*|OIe
      z#T3Y+9x3k$_026l6Ca@-<0+oeBpKnYdNU#U(t;=|NaRO9li{P{pag#T%7qrafIc)M
      I5<F_{H*vTRs{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMZBNrs7(I7v6iNj}kU5Z7#l1mAM8%<rA)qEhi7bnLFs2)2bSbUrI@w?G7x)zt
      zl_-fXU;R<Wb32%0naT9SUHjZV&w0*0=ehg&>&sUF3%IW!B(PX=s(NkD)@`f6M_Knh
      z!>R1J-k!eZd9IhWD!%EMUJyJsoNe3m6oduNmyNfEZW~TXe^w})MPEU;K-Be00bIqX
      z)d5aw1bXZfD1n)*EUpEKf9aPI=w7iL%YPs+8}A@LkrxQBy4$9TE}YZQi++Kwcp~2m
      zlGUJ~M_?dpIp)*qUcvNoM!_}(2D5I_u=9pz$@pY5?C)9?fu-z!h(qGazTr8RQxcet
      zXPX7tdiY|~@G9n7t!TdSE!W9N)@mcHD7f6BAxj#c6^shR+ew!@HH}7{VylSZiqv78
      zkaY#?cI9?GcVC{C-TN?!X$4aPQ|)lijDUt=%m~c2ccUEzHc+YlH4U@4PW4Ns-+Uf{
      z^?$)?m9lYCN-k*SL~BBe)&e1)Y00+3)Rw+L#FUpnsx+@5EswA67`|Z#!pQ9f4LW9|
      z){7c$VTp6jQ?44-3R{iD6G5|9-Bm<!M_O~Y#hO1yl7kT`)?tR*f{@CVTlI?Ox+MpB
      z{ESyYaB}tLrL&~U>%bM^3d!5RKY<8WFQi3%d|T&!h)*?n1TC5Rh=D^!Aza{ZKWl+y
      zgppyz3I-Wns%PUOh8VFfK&2O)6Zvg~dtpY=0Nvrc#28C{z`!wLFH=Vt`;3VY-b39;
      zrjKy-+aa^TenXVA-gl5yz$$mvi24YlcoOuUtYbBLk0Fjk(778)q*yIzSH~>oI$^O%
      z7SG8dM;7^xS?Ha!xX}rVS7h;;EDW+JcE}<m?;jPBE^kvg=|e2_2{$*=KM;L~p7eJ_
      t4~`L)rrbW@*JkxgoReK>DAO6csbj36evIm;h#w)ZW!wwY&jctdzX9IqaMAz(
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8B16g>l_Tb31S6-7ZrEK<tHf+(UGBSBG;DkLSu_%_`R?UL<ootYZ=Df$C^
      zClO41@X-hVh401~V~kJ6J1t-%N`enF_j6{>x%bY8pKsp*n8Ga!EewxJVa?sF1a9CL
      zNNl)T@=&cuvf@4nql#GFH-%i}o{r>JdS0o>^SKtqyxt0gDhr_>@~{{PX(7fi7|Bxo
      zO2s$bvIwd|D)*jP=e1xzkD;w1iauvZ<u>?p?gl(8xp^)9urx<O?dw1=#L7~vGsJb-
      zSLsQH>D;l=(rxkEe(38v3^SSkI6tyRI2NL!Xa_@=gLc?9T5-}r2T}~J8I#bJ^F#5t
      zRw)R%$_oa1Di?V?SmV++_MS6lh%hW4AI4EdCyL!w8F@k}D&JD5w5)mBk3xpw%;EAL
      z_812C{Y_6)%_(J}m!YS*iTU{_2jK)RFm%$WjH`q0+qj5J76urSe|FQsATCo6#IqU?
      zh<kT4qUFMd@buisQ&Za^2W^NaFiiE<TUB9W1fv$R3{%JMx`Q!{6U-`?O000nD?$s&
      zFx&k4-njjx9*129pzFXg0IdWP#-4VNK-`QcmnESIc9CluX*(a)q$d`AGY5VD_(c<@
      zPz=se7z()%aHRxQr}v1zg#miAmA-C_7FCLN7(jJNK!9Y@Oefhbv^wBW{t42qk!?J7
      zc60}w**8dT*K<zM9;Y1OBTmz9@+k}5I75=*EPCkNInrZfov+{ZigbfvCDk{&i~bi_
      z%DzVWJ$j6w)j5{BvWpCbULv+lj)_KWq7j>HiZwh_<k`X1--!B&6Yz<cd`22yFodtT
      ti*K06cP!&a9qB*=!yZyXLmV4SR&bp(!*_;mX~7N5lC%jwqj9<k`~nFnQ0xEz
      
      literal 0
      HcmV?d00001
      
      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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
      JCo1S5{11CHX7~UA
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~pIg5IwgIgoZ*91WHv91#Qbmln+s&ILef<TIonDqmOBcB}|$yNs8sC_%C!u
      zMRdmMt3S$dZxU*m34`N9+U(xlvuAhD&9C2IzXQ09RS^+}#hTfWn{`7r^a}m$$*!%M
      z&Kt|F%P+U`Tbg4T2b!HTUEMuAu|x<A1AFR$DjTX<lZ%x-t?G*CW=L6f&4Y8)rhGb!
      zp~nv37$yrmz3GL9R#X_e@9U=St}#rd&yCJ(GYIR}jwT_BzBpp&XNaaV+c6N;I7IX?
      zBnrBzZ8qu^%`U4ILt_{$SXI^7R&AZzfm3jIb%$ZO@E@Zg+I>Nne)kLyefIvSO0KP&
      zHO1@alqXZ@oLt`AZ@49^VOKRmlyc3gw(she>4+F(NOp#n9=&QGi@3xv<Sj<G<b1Jx
      z(2FaW5HZd$an9W1xQa;zF=&F}@jucJ!wou+a2?YkrfBV9QCuq2g&!Qp4cw$A9IyGZ
      z)iDW%m2e>hWzHU<gbZdxWEs+71j;9pC!wEAI*wV)kz{L{yRJ4I(#mK$)3LVlu5G>L
      zqERFyA#=suqRn&;tBs{_b@uExDu!Oo?{L*|7N^!v=gy(yYIT0js9H8u@?lI#AYE0T
      z;&2D>UxFkce?l8N*ZlaI_j;bwqW#m&p{I+U2){V=wTRFYgG8QQdfOnId!+0U;@O!`
      zNPO^OF3@j3<pK%>JfMs<43ahCM`H*V$)Y?DmHNc6cQ#7CZi-1F<>4O_Mi=>%>_;SK
      z*)c9h@del3Z_a&2dQ}(`ej@n}u`%HXk}Ynf0xQ+}hUDwHBh0r5oRdk=<|E+5vQ!qx
      z5%2~T%hAab4B#mdc!qI2#}taR@)uY@$s@hwQ)rV`=##nNp(<FUw+Lm=U<u1ab_CP7
      OgB5C;;VxB);NBnaKyID@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_J5Rz;6#h=jLl8w#(9swNFvhDfVZpc<O-LFXH0*7;DVOwN%B|vma?r`d!5`p{
      zGM<)dkj3G=zwf+0zurFpoMN{OgRt*~iI@ex@Rh@6A`-29aTVO_r$IE5mYV7^3WSY`
      z{a_2<4n1+>Or*=%5@9=vJ@I(vicu7ZA3ULSu0o|R2xhx8Bor>WQxzswYbaxdP`6Yl
      z2T9<__|A5GNoZJ+Yx_exR%x6k3wo@kgahmU9eX@QX&Dfj?S98vUW>~`6^`VLKz%~R
      zliHG@r^nffoT=VMN$kpNl`Zq<{Nwa;?17;yMgE=1!gp{~VNb9nw#CCYRA1RKP-9)n
      zk|$VWzcvS89d(ZQnb>5VlDljTwg$bVdV$%^n5}s=XQqe-wwS}OM>Fqnl*L>#pO<>{
      N7N#4&(_0y8=Nm>`U>pDd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVt3jT$b}qFk(s3iKusL`6Vg3dQLRf+MA)qB3a-C77m6nmXXO_~-}V
      z4IO11pZzGum9#)dcrXt+CwuR+_FC)g{QmR(Cx8*m2H+7GD48{7w`?eeUf{B=)NI{Q
      zmejJgku`T}_KIz3YB>O}K+m@NMpg8RvY;EbW;LY+I_ERF%v^3gy}GcFd9uEeeV!2z
      zSply}DCQU4!-i^>6hi7|X;L6KRWx){x2FZ9SUk_-xypvt0)bW;KKKRN7j;uxs+9|x
      zl~W6b3sfnpMqaga=erT~Pc>kYvD1C(5z=lVJeiH>0|*QB9cg-8t8Nw4;_IfO5IWH%
      zqXQSHy#ah0CIkuHPF0UU_t{nPyrZd4MgT#Iw72xCz|i7<IZvBBx+&0grVOH0^|!Po
      zP||GY(gY&0_-PO5Bn##>TPxb>+UBNa@nkH%mKF$Qc8l7Mtyj!y07C-dBS*5!#~Fuy
      zT*hTwaXd-NNZ}>{I2juPzSvqio^=w6j9VBH@Yl?GD!^2hR)=sKcLEp_=x7>)y{fI1
      zW!%L*ffm)W)V*S5XHOu}e2L42ZE~K>HfcHv5tuW!BM?3I=8RjUf&M~6vd0lD85;eR
      zEX}6)l}gPjY8+@f*Y)qz4?AShPw^7}7!N|uP`W!_Bv&urEsP4B<5z;K^Y}YPKSBP$
      zod<1vhqwacJUfPVH_8|1<$U8@kr^)|;lvMgK1)TvBJvd%6Ui^=JppNRDNLgkGc<bE
      z1xnP9;S!<_BErsmxg^5QRk>}$xJt?rqy4znXsB>?sQMD0(Yw!0ou}UoK6IhwdO-tP
      z;5u%wYJjy~W(Hlo@5$T8$S7fAzxaoLgnSr$luR8UF&%vepV&{Pr04;Lqldu>Z%XR%
      zO3`l^?eU)U9Hf813Tfx))hZ&$qZ?1rix(vPlAT^b!Me+7tlq7`DM-J^ai473$ZZ0X
      W<QJjrDOc_wWISNZVLR<AocRkl^ah^*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOJ9HFP82<0(v76l`guIA?ilDIB5LQ4C2=6>3xFpCX!5}_ncW;sjvopgy@<6e$
      zv9YnSv9YqEP>&Fg9Q7O<&(X%l#>U3Z#>U1%{r@|Uoy<&<g<^MR?%ePDU*G@V`RU(p
      zz5{^6@Lm!U3<l;^yRcGI3W{9D%VNQ{WTjBDB(*9jn#xDCie2NXHMOeqBs4SVSd^Be
      zf+DH&g~{?FuUJWFWzeS?^M&Q3l|ogk6@nNB&8k%63_6Q-V97FMb$*CJO1I03Tp6$8
      zt+{GiyhgXJr)5>P&N4Wei-H<i>7PNf!&;T6p$WEUAp;!@nsWU!ZGetsAqgqE>&`-(
      zbJv@NG^7}8FUl&Puxn**Oi5)$xUE$rWkxb&dUh9^tp(X+Fj#zq<YBbQd2UUJWOV2H
      zqj50E;D%Avk}a7d{chY8Oe;aF6ByMMNk_IUv1yiM$(oA0347JgCOwt>gzmtnan<66
      zDk&wqY;w!lPh`ZJ#$-I7g<Y`Qqpk88NwG2h^yo^3>%vA7`oo2uyyCw`B=QoYi|mOh
      z9u=ldt?wZ>2}0@;6)G{<MuA8MYL4DumBMMjRSciD4KK)w$Oy*Y7qhJ>o7PYgUSzO0
      zwo;=t-C89pv@s1wVY|aSCL5+h?&PB=`H!9Coxzu6%{EIiidUUy&`x3S70X{B=Pp>N
      z^0IAFDLe3aa#`hu*BViOy*E@@Sv9#~UF36`feAQ~TQ38OKe`gq3T;Y54$hPMFEHrM
      zm7<EHa->wgEb>S#x=wCRo>K;&bKhqTt}9Z7yN@YNsk*lrgV(er@5TNYhhyAB4NAJs
      zRgYxbf@BIlst6_x8}<gur9xxKkwQ=IMhp+Bcap-)V%JwW*BLMZs+v)g6!{LOFe95K
      zTh}$i;y7Op#3(Z+ImnTm<C0}l5t2*XFtO8cMo_V_X-pkcF@0?uE#V4kVoqMcdu#&l
      zzEyV@sa1<KN1X1bK!fT?<Lir(>5%QLXf++>@9E*HX5u^`!`M)f`t)PNG^>~|M}$)-
      z!eI?NUBwP>M_1M@BrD#lH0A?C@Uj}idxJ*jd=?f!#(~Ul+meDMS=ZCf_#dJowP@A?
      zH&D5Xrrol2F99fo$k2}+d~K?iP*kC8j_^6jR_a*}8Fr5kGTiAHTwf2Y_9!{*gh$yO
      z^U8?56!9p!67<oH5;cVBoW{N!kt~V9^yWk^YF%PI@FhH36>bd0T4`Bw=5Fw~^j%0U
      zI8X*pZOZISch4S!t?J+#NS8F*sPHkFj=o*-Ujc_Gf%yG^4T`@O{O_a#6~8Gu={OZv
      zJWTO=5Z_~0;{P^$QXm1%c<s)wL3@7SKJ3UJyboRZ!TZqj1+FJxC;s;$BfuHlc@Ejm
      zLpxl6F1QGNxSDtH@B}=GPsk+fGI2+i6XK3+lV^CExt0rfrClxguVBaLc;lFA6^mnn
      znw-Q9E;Z&Cp2ih&n}VQs2^K~c1IUDre5L{9wOHhySckj9X0Hdpb%&pg1^0x(H)Fwj
      zeelN7N&#d&+I>E<p5zDcT-fYF09^NZKY|l*0F&E{Db8(?ZZ*JBcOVY~5sqV2F8r~&
      ztejd~f}+=X>C1>=jZ>n^gK!A1RP{me4A9h(z9-m7n-0lJz>g-s>;-tig>Ia}y8&c9
      zg2QmcMIJ%NNNTBvaCCMJj)k-MegL2HEgx^d@&^HA-SSHfAU}*no@fC1Q7rOg1IUkK
      zk*6AHtWRQ*LvVV_+I$*|JOgJV>KaG2Her=A4<R?(kz{Ld?)#8LJ`-enoNd0&GC0PD
      zMS(Lgf_GHx(Z@4zZ%YGXu7Q`~QY3<N7y<RiCJ}ro3^<*V2}D4&G!MrgkM`>=XfMMn
      zNWO0DHii4|TfyNB?7EhVaK%Ml!Z9vRf``CnY2xFr3x7RpFcI#k9|Hb#`(bv&Rd`i|
      zc?~*T)&a~H^=4$I{1|YD`Au1ZDHnJiuOyd5B#@s4(ou;Q2o0`jF^%YMMjUDkuKQDV
      z<Kgm4zz>g&!D|g5e~m@X;$U@3(STfj6BJRo+;9i$>%JSC9uvO@JgFZOHyaSe9|2@N
      z`Zs*D8|UrMSmc}VmK*(Xypo&}iLem=3Iy%hq^iB`_K4Jg^}l1Smmekf{{-9!wra)A
      zeHFMH$|-b?LTSwpJb<}yIR6EBTK!&Vg+(`<TlfX%2*OWE_>+h=2RMQ$sky$WpoKZY
      zZNb{M;LscJqkRJoPmi}7%L(fW@WkcB0Mm`fZ}Uh_`UFQKZEk_>vR%e2eJe*kI@!~L
      s&G`}zW|+Rf#b+uk!LlP*Sb<gXC42|oad|hc+`d4hQC<e`k~eVof45*TR{#J2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4$&S-N5Ph9E%VZofB(soYScZYYwgeUuH%4rcK#?pK1?Ap$jK`4|<OPKrAH)G9
      zA|wuc03U^@Zf7!(<iMq?y86AU*RT86?;k$_+=pI6iQ&YHa&s02X5iZtre>b`fjP=}
      zG~q!UxmN7(EKX`r7<Q)o12+R6dFCs7>N;5sRfbNSc(OyvXXX-KXE+k@nLNr89;NT%
      zBs52Ho;c@S85)5fxi9n3b`u6RWKf+r$iwKoRDYk_f$t0_3~lRT{3uKO$a~08Pd}!a
      z8;bMlsUP{-BL-a?4%e~k6@AR04C0B~Kp7nsE$lLsHGRAVhJ6)VXo&2JitQrnsZh}r
      zwL=w`&}3*?OZjiP9k@az85WFr;*0&FsAOk;%Ai^QXExny+jFzm%d78d`nvoAG+N%j
      zNt6pY@+RbGi>iZvENv7|@Z1-2_t#$fo^YAI2Q@$m70}D0Exe#l(-uz1NIu9&E>Nrx
      zx`iEDFVpUm<N-b7JK9Enjy>aWjsxTF99^TU%+dc!s1mNy+C!DrQ=0LZW;`KRpQ3|j
      z=wg6tbn<|D3)FSopeQn-gvm^3DalNzDa%agQRw^#Hy3J5iUMCTzM=btl45XG7GKCA
      vY5`abVL0AM?yr)qjpSRnP3?pae^1`~yfXRCM)Ju<^1&*3ypeoIj?n%9AsDx8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;Zy=5Ph?REUX(bQ4stDMNLwcTb!}Dq$;SjU`Z&->+CXwiL*0Rv$HDxD=(Vj
      z;1BReS@r}3i5Cwu{W0CIUw6;XU#C9+Y@iz=VCW8Ym3%H#qGU#5lvGZt<o!<iX5C+d
      z<H{YHPx_THA41d^ZjAUxo+z$|$=hrsau=e`(7N>QRa)~*35NPhsioUum}z$o7-~Ip
      zC?d?@T8t2L3=65$Vz(+XVfW86TB*soI^b4%``lS`$FgL2p8h}6O{!@t9ifF=A#Pq_
      zJvb?yC}J#n3c)asa2qQjmKmB?nsBlZG49|lLo^hQ+VUQT#datCCvelF+>h~K(ifHP
      zOU;%1!ksikV-=4=tTAj%x8N+-<&m*PvaL-a_Wzi|_Id7%J&EzyLpG1B5Gie_RBl_D
      zj4NU_FqO?kU;0_k`(?fGycpuwS_|7#yevf-qRp@}UH4+iG@9u(6I&V|omu)O0UcTv
      zS@WbNBpJ!s?sr6AC(kk6^@+2O2I=ux0Ip+!EP}sC?vdq_8)G!bSo(&0V?4YBX`x1s
      hJ5+g>YP}<%y}tk(=YRp$DJsAdJS7=TAfKUwx!;P7ru6^-
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7GZBrXn6n<`a$xD~=(n2ex2uf%Y3Mtgu7iud8YS9Q4C@uAM33tMFmR-8pbkh1&
      zKk7$kobi+2RXQVd#?I(>f0W~McQ?r<p|lPIckkYF&hwn-oO73d{{8bW0MjT$5fM03
      zw947aj+xyxcBN@pGMm#)^Oj+{(uty7py#3fSkIceRm?7LK9mJFicW#y7Pp1R(sFaQ
      zRVwdDN1)A-j|9%;TkPuL$5!N{vMjl_Gb_+;$%-p5((2F<n3kQc?i3|$kLNvVmUOds
      zSMn-G!L}@c(+%%Q$s%jRwrG)%j&obLwoFBFFmF3WFZYsO$u2mKT|HAM*A2^XZwOpU
      z`QbbTR$a%iinFgGnO-N<LZu*g6>cetet{DnS;NjQF4s;-IcIOl1ln*~LoeQ-ZmINo
      z9IT6mI1*8u6-d68h6xPeO%-H>DyCW))^(rt5#G`eMJz$AF%3zK3v`vFtIXB{f%^|h
      zU8UBYXP+#UcQ&Q7rf-^3pf7J1baP#I47Cqlw!7O#N#N{}T$pj$F;s+lp9LyMF(sgd
      zYn;F&E~p&Gl|(ZdjzJ?G(hgUTkg1oKHodNtdRN0mydx0Zu69Egdn%m#$yB<Pk|Hpx
      z;X1Ag#9Z4aD$uKZZOi2Z)Vgb!{^9;=JZFa~!1=ZLn!{j|L;Z}#$7p=Vv3I58J`or{
      ztS}+A{-DlAG0*M^lUSX*zht{BvS1f2<Eh-Lbz%&+1g5uLclTOWjl`7lQe&~}gBr4w
      z-I4`UcXZX#lYwjr+{Q;yEH+#dzA73%MxJxT8P`p=K|?bI1k(><SQ3~#8rPH+gWXlf
      z%;ADS#Mol#DNAGNhniFjpU$eTS<}#s9+pop6lAG1#!#1EF)qHc!95eYPgJ=38oF@2
      z9&VcH{GV{FZI#K4z?Gw2Uq(a?Wi`r0ftyE1Nw*GU^BtR5waZRH@-x8U?p9;re-WnC
      zG;$~xd8ax#Q!kYyOB=6U<ov8~p!wUupNP6&_^FAgo6K7|uHH(;yp@IEs?oj|eY88l
      zT|0LtF~BE-&uv`KWS-+x=KMYeGcPc-!QJpaMl%x!c>5WTBRI#u0|W%hbg2;T3HtFA
      zgZKt1z8&$yAdL)n42TJwCyaVh)FOoE1=vDhfzcwg>LTvs#>8`E_c2|ERF1&6<o}%q
      zGvFK7V7dYrp{^Rjshs9$qrBpoKQPJ+E;Wbyo|63#3Ky@1i{mooQc_*P)gasqSCvPM
      z;ieC8ZI92s9-ZF%AH7IQVA=$cdhs4^@QtFA<*Lp)6rE=0pF_?aHRqdn|8<;yIn;R$
      zACO<Q%(<Y<ZJs2_z6A>M;ZI&NqkDaygm*8HQw3Q5yOy9|@LyTL-`GvR;}rIIuRjY(
      zm#j&b#GRnvpJL?@_N&dQAGEUXiQz8R1Lq{ys&4n1oej^KRi?`Z9vtE_-R!a*a`_CO
      x2QI23RkL(vCiZc!-YI@<!!Tdq%R^uWn_-Go7>51IQ}S!*T-84TL;T%D&wnf=J)8gl
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8dK~BRk5FD4%Kuam@5eaUf<U+(bCq#odRDcLVTtm8wT%~s8xK+y2IPd@-h1e7+
      zO}KdNotgFQeE)oY0l3D*K}X;`RV%+-W_~Vn%A_JcT$8f5S{17$83$c~lSRCa{VZ0g
      z|M<S3#0rd4syLRZ_pzF1WO$V8&9q6k(~7wC+jt-_WYP3xS_@A933eEh2TXo4IwxZ{
      z0+;S=XCksjsx<H#tv_EZ>xX4Rxs~kS!BF6$=_tB+d(ifo5}hjfLGzj`Fe=D~#%NQ!
      zJ9AsxG{L}o<)0$GG6~(uj07gF)UGP8Jpq9|jvDB4i2LaAMZm$qwjQF-_@F|$9x-x^
      M5x+QYK06ry0^Ij@-T(jq
      
      literal 0
      HcmV?d00001
      
      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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
      KTOqo}xBVG*g27$@
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      K^oUt%!v6qkPcpIq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n<_Qbaa)M@v4XpMBIx|QG6|;Y>Wh5fCNLr$1-kaNokk1Bbb=@bNq^l
      zj6@RsCW$}Fcy8Mb+%%A;z4xAb&U2n~&eLDNzkLTVhoTILAycty+Tp&XRn025Oq**P
      z(PqUc`;Plzs&SSPW9Zv64h+pQ?25L&v&YLmL#O8(70!?@T?(}+JavYc%RP$BT^`X$
      zE`n@+NI|LgpyC0y{eokAwSDfAXV-#hoBkptxH6~A79}V+yIesBdQ~LQ$Iy|^Y;}Vn
      zsiG5I480}l&suGNhr92L9gAvCmYlL-Z5gg9&XF<Zzc)PwMsM7AHhtH$D-46_OzFIN
      zp;Z^?H&n=oi``8X-B1+VLQ2MMhUu#{RK*BJWlS=Rv?j>cOlz0B3MSAiK6h12;~sU$
      zs8+eX%P^C^Kq{Q5-p(_E(c{QaS5hBS0xKu5?zcchb^RYgL{fDc!{j;HRm<WP!&-7H
      zG(p=h9+r94Hyt~UZUwV=DCY5qVdx^+MkX3uPub;$&l_4HXzF!a?^;!&G}Cx8o-qsr
      zd`w4MU2ooqS-eo8V}T(NW(hRRkpG9Y{?2eI1%*bwsA3+E8I(<@=9c-2DO5Gss3iIY
      zX9Y6`b=9`HTd)kz<3zc@kZLQkC6W}_upmY0I_S?AFUgs{5W)*qk{zw$CIOZFuF)<J
      zi5@`7o}ee2J4XK(I!PE1HgO~Ah)D|=r1Nm-iJ=HjAxjtGkR&l0;e8@}M!v=DS6n|s
      zl9sVEBxvccWBf>1e`4Yk6Wb@a6I!Q|={mCFrjDsPW{yrVyPbS+g1H|}D#KI^q}S+?
      zmM|>kF)kILOUnT*Q3@q&(xO%q(I;e!(aqDKOgo}APicrxPGl481Oryb^J9#C#!zq!
      wiM$Mr!u^Pl!iIz_-awY#5|a|KSc4{QTwpODv5@d8h<c4BT7?EkOjw5U2i2Ecvj6}9
      
      literal 0
      HcmV?d00001
      
      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
      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
      Z#@{HZ!lzFE`8)o>RX1YcZ!Dj|{2w#pnos}$
      
      literal 0
      HcmV?d00001
      
      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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
      UyBy=3-K5=5cs$Q=d=Ihz0NicHPXGV_
      
      literal 0
      HcmV?d00001
      
      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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
      T#_J)*>)=V_^=nq33jF53glu|w
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~pIQ6g}G(QcIOm1r^Z>iqcky^%Jd%2r@7ha4c5D7el*K)=86^Zm{@I`~|-1
      zi_GYZzWbvb?<OTgiaaFQ-Fxr3=iGZYzyEyy37~*^4H1U(b<5S;4O4H5CO3t}^)=p>
      zbGFrT8{E+lV;I_VaiuWz_2tqlM@VJsWw@|s3&Njnb1R5v=zSn8As;cEnkc<9whdj_
      zx*uQM$W|B<Puo@Al!6j!=wmp!=d`pMSQuh+c8$kzf+7C0JULsQTUtsWic}IB1{lV>
      zu>D-7Vb%4rbc9teW-AF0d=jTHNH8rf*SBQDB<u-~NPmgMuegm(?yMP`CTB>O?5bf_
      z3`eMa=P)L>M2jI)>JlEVTakf%U`QR5%%F)@CokI|I$gwlnirL@IK$a}`>HFOt|T$s
      zXpk5Uml%fkiWN5c)s17Eq`h2Qm`-2}R~6m_L;gQ_hn0&VYP*u!ABYHNA%z2Vt{N?=
      z-;0J-Gr2?aFp(|UPTiZRmeJP#wNub>3YuS=4+4e{1nk?$xsRNmJ9d*ha);qchx|WX
      z4KZKce8;P@sNn`pM3_W*c74T`FL>3iTjC?H1%nmGEr!W0DVz6oMR`g^DcVgxso*W$
      z<ZVG?FuCPROyCZtHQc4<dc_ZsN#Y*v)5P=lu3^%Q42Jo3$YnR;c)(CNI%kbnO~WzN
      zt=P|7z$4YgnFGMVc+*|#(B4_9sp&n)j|!S7+pbgP3qsBJKzL%Ols87{ibUz@p+7_~
      zeQ5|0!7<v!XqP~eR&U57O5ed;e&iG4>Eoa2C$WqE+{ibizmg$>A$p(ioSvZ{CAxCU
      zI8A34{Xm?-S=tc<hH;L7)oKLiDN?1p(3NtA;v(dw<?_*8WcHIJyyFUSedQ$>^4)?2
      zS|@>m9qoc$B%KO2mHUCQ*ZK72U0gW~|1F6yLiniwKZPuEM4E0EuF+f7M}3u~NbZYz
      zd&N+-1h|Kh^sOBXnm<g@$<dMG&`2HELz)U6MzvF_O!{X28*YC>Pwq>)7%YFF@H)SX
      mhra@9Lte9OYH|~Ocu&1@h;l0=HxtOs;4x;2EW;Boe(o=M!(!q9
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO-lnY5PjKpyIQxl*6$wufYyU+5xgjZ6of+2LuK#THrAAEw(Mq${wz;|2Y-M+
      zN}SY!h#u5K<|XsyWhO7LZ_h6P+Gu!i7}_J92lufGCUPQ_)FKGEl0$A}qC1Js@>ryM
      z7sjMA%8lsi+r&eWp*H4I9w@Fy!F4ni1H(`>4->&q?|o8zlIhVYad9#v&Yg0V6PC`T
      zmgbzH&}@aoc8D#bfQpYrlo_f$8ssXEBaz<lNX>3d23&<amG(SO7R{Z^7>;{?eglnk
      z()@?46_&wJVJP>LJROKjX@}eVZrPzVfx+);Ez*wSStc?MTMWCun3XzwaU4g~v_PL`
      zmx~fbz?<X33>`SuI;vYDE+Axt?!goMN7^`8rdYB`cL!D4`yU0UVFeUOT&Ii`?-M$N
      YR=oPN*wPNxW^o-Ggtjvofo(M20qpdUjsO4v
      
      literal 0
      HcmV?d00001
      
      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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
      ROoF3q^`BP?{Y-?C{{lI@Dro=!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT|0e5dKbSNC`np%SAxEQLrsSxQSp9#ab@PZ3L_J!I?B1LzpzhBz4e#;+t>2
      z>WqM+Grl_Gk8<1-7%0O_cu3CK-Lt#j?)moo{rB@XfKjZ=h%jiTQ`7b;wzg~Sa@%sa
      zR@7~4OZTm+ldn2nt-{?@!R8h2_)E^)s*ET@d`Ew;Yqsu~+FE&s8$LtS(JP!Gv3zRU
      z@LkI>a|}|Yy2Wh<MfXWnuKC<!Xg@kx^DSFj)V*zAFWa0BD=s&xrel5NF2l%j7<kW5
      zJjlOs#&RrwmJ+1TW62Z=X`aw1Xh2+ridKe(bfzdH$&d`NpGBk~fp&4QgFMqqnPL+d
      zuBeEiN$k2+NN8lZyiBcItyRk0-4un0PE-xuF6yo&<YQ&j-?pgs(NJa8b)D*B4nvE{
      z{nKI@UZ%qY%4NcwN}UE4w@}zK_^u#<CnH4_S6wrpiKp*r8*{Ht%%TYcDik!wkfvVF
      zt(Jr;t3pPjf;$+NF?5D8N3>9(VT5jrzpLrCphNv_9g!-Rd97d!6Eemb`a%#v#a&D?
      z#B{^po|mHVW9bXm9>Wwdwy?6kS(0&|VLU|QRH3r#e>iQRf@#bM(mY_82z5vGBbLh)
      zMdKc-c!W7>k+H42b7I7Zet8-BkeF7iJ-$_s=`jid(>z1z;+Vovh=9vjWS9)ovi!DX
      zZ@Jv5N4S6jU7vCM>@f6)%1UhAsMcJA&s$>fI?q2~!(y-*)FsE^Zr;{CPrN|QbpwVG
      zB5eb`i&6S$qUjI8;9#X$r!^u-9;~1)w$S-YByEsKgx1dNAueZsAyJAqAEIra6odQd
      z`W86!(EpMMFU1g*8qrGYRnm1FxuO@>NTMLPPAM7fZr~=_ZqY7Ea$k_@7XcHg%<Omc
      z|G}HYZQ5iGF!%{A*&i6)NB<WrChnbR6NG2FM8I-^X(-+&Owj|(enygPk4xFXLp%wL
      zagrATd5L6^;VY$zKtLZ5^-BrJQW8n24ZTu3GExVoq)rs1F1(O>P?mb@N-|GMGVv78
      VsDucXgLo@grBxvfO()jS{U2cRzXt#S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~y!5Ph==38djGr9cBWI3$3wpi&M^#U-Q?Qq%*W95^7E#RQ{W@5<{S;5Tug
      zr%FBW1Nx(?j*|!iTvnE5JTrc8zWn#!pC<r2SS`XMeCg@Fe;b8<q7oS@E&Z+t)rGJs
      z)~#5l{YaYic9ht=BN@a!t?s2MB2Q>!0lr`eh3`r$yHD7yb+TaFp^T)qhx#&Z*1Lp!
      zE548=<S<pn1PX-N4ww70ADv5cBF;lesC42$gk52jvq#Rny;3RRYqq4XJ8g1WdzUcv
      zPB!>h&4f7-1TwL$D`7-nrQs@awfZSxdKegWNI0l<uEmY;L!o>Au{BEfn)OTxUk2<-
      z)gl^9;T;*FbR73hAb%(~r=|BhZa55~e5kcFtx%+?OpB-z)-vphck$+nU>n>l|1+>8
      zw=b4Ow!XpR0~9tke`E3&-#nC@&2db0@qzD)!xt!Hnk^Tb!K{m84)Y_PE!NKC<sO_I
      y<2W5~l!wu0jtV}GkbA6M1s*-VL7t6e_nwg+7Vv3+Ssc7y!ZPa;dkCMgg6e-ktk#<V
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#j0Lo1|eYH4s8tDybBkq?Axve%Mg7lp@iVN?Rf={@NzD>9(8Qbazuy
      zf8glgix29cJm4ETV_$K^)RB?#+5f{gXZ#PubGM<?gop63d(Yl`&$-|E&UerL`R{KJ
      z0SsW>j~0f(f>BOYih8P~m4vPtB9&EjEw4J7X^feMT`mf%XHu(({ItlK1w;ElSblgJ
      zjyB`?#D}4^B&?$5I3mxm=i0=wx~8Ud)hMK997{6_X$IdJ&Cr~)40G{`W}=Vlq9_a}
      zV=S8KW*pLqEJJX-k`pDFp6$mjhW(~ha0#&0N@`~G>h>~&cg)O-AUt?ZfgigWhMpZ)
      zBJ0QV3{f}TvZLv>bZ5;K;gZ>kJqY`;mm&3xIV;$Q2m>z?N}VCpNNEsJbo$Z3&|Xis
      zf&=Jc*rlsB5ttX1sYOaSo=Ie+(?JC>bW_dj@`CM_hhbkllSwq55x^k^_E8Y+I4o&;
      ziJ>>%xUF$UG82D{%w;Aka*k;Q(Tk*v)W_h7C$chfzk;Jk5gtQS9G5zVz451@k<J4O
      zj$@D^kTVTO)eM^<yc5yX!ZIC{PR#ppf+14R%(=3r=Y<u(DGDLBBo+%|2ro-e!*#)G
      z;*~Ima7MuhNWVU{R1ya1ynpApkGD2ZQ9Cgmz^e?0W11baL`kT0Q(~GCE6U3klev)A
      zV{WmBT|DO$j7d@gj=2>&h;h8;#|4H%O-M<>MP$fZ&E<q`_Y5!$Hzn_M1Ae+!QZ#QU
      zn2>mU8bP%TS&B;vrtl_RIyIlK-PSt(9v8zc^R$8)%rdkssrIC43AfTzK9a$_43|~#
      z7Os*`ZE8dAbfy&y^9ne8a>LsS-od-1lUm(I9eLdUWLrCsVfO@eyG!Nbg0N=Q1)buB
      zCd{0wXH`p+-?d4vv!oG(6U{W3`bJ4TjS+%@rhIpHGxA#_DKz6J`=%qC34!d~D$Uc{
      z3~lqQiQIOZ*m2=#iMtW#RE-`IMVk~w$=NR1`KRi*36b?Y`2(b-MphMA@^1RXYFX6@
      zve!_HM7>WJM!{JkrOcRRD<>{!vLKPhf6-BST^W>&VF+uCx|b~|%I>;96poQBJoKAm
      zXp!0=tA%Vo0yMVLmzTbRP-w#yT9xZRB>Ohe_5kg3efJS+54i6{75l4rA@t%VdM-Uc
      z@7yL5!`=;y_E&Lam`A-)Ud6FH=sofPLvx{%n>a0J(xF%AB_q&K#ptg%zk#-`-LF?M
      zN#2*gd-O0F^;U7^cSL`|oaZFpKqPq|b72Y_rXbh;Ky>CNXJIa9AKrcR*H3O5@6mf2
      zdjY--&JDD36P>(-F0#A%Dw5nrKX)+5*D%7bV}e(3nXls-*((1KE3|I$k8y+Fz)k)M
      zZqxWZ{~YgA+>1mJQ2`YTG)gOnJW(Yrfkh&(8=s+oB_cP8b!b>7DhF{ID~J%$pVGRH
      zB3Xa|lRSxH{7imc8b{njMm%RX5Rzus@xC9yllN|VSl5BOkN%Mh;o3qKr8_&;{$}?m
      zKnrB@Nva(97x3{fv5S9&F#j46vJdiG=;7aBfPYKL-$I(-c9R-%;f!o2H3FN!lICy<
      h4uNeURYY9a9)jOdvszGgPh7)w8iTZ-QG2bR<3IAmdsqMf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Pjo(I0+6dA+!Yw6j~rjOHCyNheD+)1gRowC4wU0wsDr!mA#H^2L=8R
      z7Y-m5A#vb}#E(LZ?I?*F4vnl`&+g2=dGlue{Qdb0zz!bh&<NW-H86*+WA^R7bZjNf
      zws7pO2yIW*JrxXG>2JJ}me*7EC+X`*6BbXz2Vpuw^~|HriL^pOI{es|gq`Mj;2Mr}
      zr3w$!dvBMJeQGN^+#@`y%>BCB=G1ksD+@^Bf&m={Ayuii^B`O_kU^HP(B!fX2X06D
      zuSLgUnx&>^38yW5J35ap)8Vll5FVb3#6%IUfLMS<VOg>t){liRtWf%l#5~>+3XNgp
      zU^xRFD})u#@5O=#VraJZ-;CXaVuCS}hw!}8oG9H2eOvW*tMk)KE8)gP&wvr~mgn{z
      z8Okmp7kWt&Lb+0%O`XGSE^7bqZ652mt7C&;&e?7Q_pnOHxZE;_wP|?+-;yuvs42^{
      zgSQ<qCKv}wNx$xhAdoELCSm;?c^Q7vC9Ls4q<HSRQ_)ngmEol$$2WPl_Mq_x6ly<s
      zZGK1b8=o{R@Sf!uWS;O#U@3{hC6xHY@wlA$QN|VaE%9BN<CkO9Ew=bAwDgx~pF(>U
      zqZx^JjCK{*W-uOeOvFs9eLaKGm|~=jF*IDqYK(hhE=Di^!-#Mbw-_r?D5<4fJ4Nv~
      la;3G;tQ6a)xO0}-(G*sB#7x8en12OT{udaPP{S4q{{WL;0v`YX
      
      literal 0
      HcmV?d00001
      
      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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%0D=82P3I3`gMUYh
      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
      XKq2ARXy2k@^)}jf(Y}ZFeJcKcD>V4J
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U2hvj6g}glvEyt=>eg}k?UF$4brUy03r$*}`Dhzz+CV}`fCB6F;B33zwbtt@
      z`B_L1BP#U=@PY&q@PZH$FGxuI1H>7Bb!{)?!QR=KJLjCa_uSd<{`vM9fCb1XA_AGR
      zQ_t^L?0nU#O51W|erMe=?RrVxwrpQ|vzw+@FBYX2#jwEHf#|g-((zlN0weyORhzvc
      zaIr8D*bBSF;2V}>`ELp=XO4^>3<&TpWw!<5Yx}0G`j+d|q8JmHcD-`*Ts31qzj<q?
      zyDTug;+Etn1YXc^3?p$2VNydB#|36Wq%@gUh+D5nk6bGLgocwy3LLLVpG!V-aMy53
      zw)6xpWC}s<-evBOAtf-k=lj*gyiz!?qLs?3=T@cXTe6n7<-TPa_S{|zR8gMNa2jU>
      z#z?u*iaZdwlqozio)~%CaLV~j-?N<ZQefsm@sTwBw&-&j&f|i>I1yI2R=a}F^a_5y
      z)D(MBVB!D8mZWJLo}qHz5iBrKpqK8~D|F75QM9E%qTupK+lFVU_x9wla*TjJSm0j2
      zbZtoEh%W@r4{iuLf^6!LuF0A?z9RNrmS(#5r0w};dUBYH;xemugmE>@BTKsxz6&dC
      zfn-n7JIE^8zTtJ12n=PETgRkR>ZoHUcv6*#AR*PvZb$LDz`3BO=;sZ?tI4jZ<H+H<
      zhD9(v@p3>~Dw7Qr7RNQ*RHkSD=^?D4o0Ru+cw56QEDOX8)0DMlyRU?_O>g~{dH@IX
      zvjhUs3gL`$(<%d|CSNO)TdM-s!xRr}3G_j`GgL0`3Z(i&m+O{Yl3on&(6}Apr8GNX
      zF&)Pp6jY|Js?mK753s?K8PzIl$VLv4k{w`f6D%o+_cd%{i|6s(mMnpjtWv)w#tLj}
      zcnw#1WqGbkf5fWwqHUS$<c-x1YQC(f;fONR)@lr&&~82ImHi%DR9aede9J$G;WL3#
      zose{UEzK6;;$oUSj!|L$<C|{XGu0P>FDE+jty_Lx2^G-R9Y=aAwo$7|HgK%-nLwJd
      zhxmaJlauOp<tWBql>ZToax~2KI5dtPGfqX$=((>ku3v6oLf0Ee=!q#lrghQ4Sv`^F
      zWBN;mMerj3Pb*0A3yz8J5f?vTLi~s+@e^;xpE1MrDaH{Jvv`S5HF_DBIL9v?viw)X
      zH~FrjM)j{So;!s89Dal$5WfbXM!Qg>$m0svc_HGJHdKx<+yT)K@mmu@Yb~}R1YSLQ
      z<L@CGBgzGo+?&69%&$5|N*&`VuI=X3;1F*#aN`@i)vxG}z@bvzL#42SRjL$N!|efz
      zhb-4HDU$kA+}Ta6H*jz65bqx1y#_w$C-}2Tptm-336l7*Nk9<naHJF`vCGjANk3vj
      z`p>n%8I{whp7=O~=C444qTS3s3`x*Br8MbU>OZA=R{KBH{~btAGNAtRruqmBDvF>8
      OlTX!}f>&V)k$(Y;rZW}*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0OLNm!6#lMpBBQ80%+m#eDGkISwkYLM;<OY3DG!rSl7@uxsO;R>3bN!%GC1@F
      zebMKpi_Wwgmdte5ja`}<3f*+3U3I3LcG(}&>A8~Q2UcKV>FVBlUf=o7IsW~>pC15t
      z0bff9F>J}3WwlZ?)RJD}hHi3o+A-Ww-Eg@rA<VF~<HCvS+^pYV=pNQh-F=1OK!0Xl
      zyRNB*X6Dri*VfH^Iuk5AVwq04$nA7uia|b6$?=k_)1HKt44W-G?>XdX6?Nk1bmLe;
      z55qdohHj~+#v2C=;Sp<=%UFR`3c9eGVMTvpO2%5OlMrRtC4?%TQrFf@XU?*V>g3Xj
      z+oM{}wd@52>#>2M$K*FonU1TOInFT9pYY;(x_CN*O$@^Y*DVdHs%J7qz@{1|Qxs8(
      zBI>lP&T-8x+Z4iD#1uS>Erd&+yQBU#!-fEG6Bi@c#<2J42G4V+Y`9BCBG}Gw@JUjx
      z&9!2Ra!9WUt8C}^lB|Rs44WR$^RcpS%yK(|oeZm{Co+@qIUmt@zl=EgL{fGw69lEH
      z9|IB+3~QQt$FuW1=PKBPL52t+F=A+rL+P()!)KYdnU;~lUI{A0>ZStkNFkQ*V~|LG
      zOe<0{*SCq+Nh)02uiyX<5}UPBiJP+w$soWx2wo4IGXE08#zcJ9;!fPO+_+ONl`Pwh
      zQ?`ZrAq8pSNyN2$qcUXlNuaVxdPI4Qn|11U5=FwR47&qGyljcWYa~s^5%kG;86ygg
      z;{+vunBAiDq-M?<+-5lK2m3h1{nV#}`7d1T)I~_VMjS9LlgFv%bVJJ;Jc3h1nnXNj
      znR9x+Y-^&}<J`6_doV8J49-f(Py-1HtHlI$jiz{`_!W!^WJR@{<&LA}xrB2JJA#ze
      zVfD*F#yD2>U;=MQm}KaEa;s7>g$oR81r;sRr3TnQua`*G+OyiviJs$_QE(A&l9vu|
      z%5Cp|l2~FYg3CmYdYy_!B8-R-O14$vwySeTHF!nOX-2Z(r&5G-Rl!@(sEv`U=lq)s
      z)B>NvXTRXm5^@AZYc#y#su|x(Jz^0MS1^Y>;XwhlpEB%hkE>Gwwf!FGxF%tq`s;Fu
      zYRP=vumS@`hLvQ~Pay+g7$ol>lN}ihmV%N1U-;Ud8*yqYaNrVLblQY#cK}>1)n7*|
      zF(u*p(oFK^UW1m@j50J#$I8Vlw<kpvFhnyJ<!VZ^b@5%_47&xL8r!zcQQ4fsX~7(K
      z!Qf7TbMiIX;!3@V(F`;RX@+>GB5z((<o?WM2)T0%!N9eEULT5NJLDD^1_Oa!rVG#j
      zc7zdiS)sr&NVXW^bSO}&#Wjj0pc9bv3ad;I><pA|D}E7`K~crqN-%(`guLGd=^qif
      zwz`>=lpr1r7_v%#r$BE;W3C$^Nc1J%5o+=Z9sEoCV(*`U8lGWeKVi*SGP<#f&EH`|
      zGP>1UD9LCqExyODMaVOYh|ffytKs=%6}zjT=Zn!p^r+%+4a2`AAL8Yqu2|P1j?C<-
      z;b;}dhQjx7c!+jdg?~dNI(iRsi<Xn5CDv8N>87?tjL+2Yx==WHALkjWm>!H?x{oU%
      zJVbV=JJuEJu448c!WUxUSl4|NLKujJt1t(mm&E(+A1T^yT&Biz20!2d9-&M-Hz?+t
      z=%wcb!nokwkZ}d;a1~qWZXdGPha846OY<p<li<|M=jbF)Uj<myBpl46f@}DI)*n*+
      z-$4=I(Al@JaThLGyMY?rc!UM~ig)n`-TV``@HcMLE=Zd!kf+m|^cJgk=oa%<@8NyV
      z@4raq7G?1={ce+$Flj$tUyUJ(kMJ>NFpK^81fSCCE)DZL_>5LH(*8NVpvV}$B%L9A
      F^*_1wTmt|A
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-Bue_7~Ll%1g0ZJnotU~+SUq5fLN_oNn7Q&(k4I!LK}bDAxy(yGD&A9K;OY9
      z@CCf_!mcHBEnQ3Ryzp&&0hjxniODcVF5sMe=lj{;{`NP2{{72u0B*vFBO)+fv76bW
      zS~cr>j%n1gbDrl|J5A4AsWqx`L<Pn|9*+z8r32IUe1~3vtNX@*aTH8q%6GSuOCV|+
      zHIupW9baj28%Ej8K3e59ClEU@s!e(gDX(nRuq)XO!m%rSjCwB{eCu}`X4!gfnY#j_
      zB+z@uvMukPKxHzJyVXp-UN$_dZs!6|;j;g&b%t{(RV0#y`mU*=2SYjra6#b8S*26O
      zeh4IW#L*{j7j^VQlebGc&iS@69Xj3+IG?v{bG2F9F`Z3gr>dx63)Q0GSn_wv81?on
      zmu2&z$())UDeJ4Y`aey4m>dDUVtQ((n~LL}$<&HKoJKhqfy<MrGdN)#dKUfBC0eeb
      z;c4_(++6h2pR?SJ&JbCQV@w`8mS@hnOLm#$?rzzZJOwWJ)Ml-Ec3XNlIXMAs>8NZr
      z<Ye7AvI5sTs%kYyky1GnblX#-<Ufexee&M%4v9g>Elf~jM7!>o&#j|Ad?Wx3A7eI-
      zPXq>KXs|aOIozQN%@<9h%9$ivc$Ie7cJ|G(mrIp2+{0&ad@3-Y612O~F^72yUv(df
      zCVr{>R8dARO3x)~Z*oN%ZsNX<&m~qlIw|w&y5V>lRrNr}L*ykSMWw(*5K=2?$scI2
      zlbnWCtjDoN(*Fgyveu?g$0J!z4zggnu2JCz%wR)qz`VR|=_q2G+{txZFq$rhHx;bB
      zx#!dmrHFIE+8rwqD;6BG?C)foB}%!sq2|GzXWnG{JphnS5tGxs5s>Qtih<7BM!o5j
      z&1Fli*{Ri;k^SQ;$?V}@3{fQH_VTNlkh`l+Zmv4Hw><fwBoXK7J;-0*A%b3><LS(6
      zyqTUlMj}0ZjN$a9=rKmp$=ESQU-3PHasD4wzVocJz}$<>vV<g-F^2oN%=deKE?mJ|
      z{Kc$zTVazoi7KLO5?7D9Nn}xVlh|U!bPd;A$fkKx(C8V|e&pc;=vAhNs+jISw~7h8
      zgB!HSrm{R`Xe|9R5<i84*8{<^cJRBH=n^~}4&Le-JlVDKNI1CEH8_QIm&&8zo}YFN
      z&R~knOtZx(lgy~@|KeSeT9)0P;Jw1sAGkR5;nWFke~*C-&%2qy*%K^ee1~OaxGN2V
      z*OZy|;phog)PpqrfRVzln0dn3!fSl7I?c=G_Vn+s6wMD%;6C~Tnx(dY3g@~<W$aTi
      z-%<lLWMK14P{(aFsGApza2eA?2?uzFL+s$CYVa0SK<I4+mGKx)Sf!6jD^WKQMkVki
      TzT&M!>(}^3DgP;>B6#)>W*Ns}
      
      literal 0
      HcmV?d00001
      
      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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
      PuSzAVV$O#pgOUFLw!jBO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TTfh76#n*b=E|Xrz(FZPTdUQ%C}SxdZ3}2S7CUr=7Fw)>F$~O^_P|_lE`}GM
      z?2E?4Cr#?5VvG_EeQ07K(WHs5{v3aR`mJ+LXIiF&aAxnd*Iw&e-}?6Y``<qv0yv4Q
      zes~myZdRJf&2lMOZ`90uIhmf%PS2b9f?4xJQ#iDi|2Utts!7MD;7QLbsEk5Sx>~6>
      z@|DJ7zSK0k7_x__*=bpY6#RwiyjeFJbk5OkRTRS6Cxe|+@J(11t1+d}AKiZ#TU5}}
      z)q)v97y5PdVnCrQ8e5e8ppIwp96^-xwe^MO#zwW)Fbnp1&X2<igO5^OXcmiR%`7<h
      zLl{CtVugcHIHIEmhZK6VR>hocmRHQ$wfsuSROriASM#OCe9e-*Yt$OIth&N*_CU&5
      zkwz9BAmk`?adXw&Xjo**kC$2HBUG8W)`^r8)A0gclvP5<D|nS*q%i(OGfu%t9j^%i
      z-kMA5Dv4ztZ*(ag%Y<0WX^D{{@w8+zF=kgQBz`F^VNZ+4IUN(?(QQ=<=H^^cS}in8
      z>F9<|@~Xumza^8sQYHRdj9;?K7MrNm*R2h~GZUMUfbZyd8yD##zBBY&EmiAwtFk&~
      z>{gi-;lV7QBo7PKW^L7+wuIZ>w!}t-4;&)~QH{ptc;VyD&z%PW?t_o*L$nd7?a980
      z&UlBt<c(*z`;bvQ{5>4sLtkPS#y8Oa#L)YRJ@zb~cz}`nJoVrxzk|#KO!NLF#>`-V
      zpoegoSmex(g6DCZJH`{0Fo%*R@$3X`8h0<*S-+q~(2vD`$H*?C6T{)2Eu4^@wu`uH
      zos5J-TL?rZwh?knqr*GA<)AsvT7fJ4US*~QBDjVlxXx^gh~WlXpR<u2b27Qe0*Lb&
      z3tvajhcT`^HpWvO7$=EWY6`{^U5SUg7;mSR>%j73g$G-O2k|=I;JFl@>InLe-7H{D
      z>KW0N-C`3FvT!D)8QNXU#S;-j+r!zEmrj#+Fy+>6cs)Nj9MQq6Ek_FW9p^OqUc&H(
      zL)W*_D~5K!HtI2321N?sCds;mVXUz&>wG(9oI(X>u)&6Ygn87kgeJW<?Fy$z5)rp5
      zTyrZF+nY9lvU-av&KNe~JXabcU*MmQ^(q-V{EFPhY-WIfgW71Lb2$CP&ZyIiK5j-O
      zue*cE^RzhaVY$QPv8_|lJn$(4+&-X1X#$fLaXfScPCW^6bbs8>_|iUqDoj4^j%br4
      zMU)<tf{*TE`W`oqfSroJJOJV)J}`mExzG`GAH>W1A$~=OUq1z+M`qdnXevN}@|1G%
      zt_PTmj4X=|wL;1pN%^)hl`wqc@;b*1pW)rYfUCEZKd#Yz8{Kr!md8_m!!OUZ+cq1%
      zo!dUe8`_Wm{pD$Q`K&#HzNIR@qYl647`jW%Y;nB&#L@6GlK6${`jxu+je}-~!{r`k
      z>2m}3?Rq}oa3j)|7IQ5v=2}|JxmpZyIJ|3XF-#U`Z7ue*MWRX{GX?DD@8`W<ccn0A
      HcjwCgmJ=35
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-E!MR7(MI%7}16}B5l&Nq_otQod_u9&mrL23Ai}PMNC57DKn}gY;|loNOBY2
      zffwKja>E6kX;KDe;GTzKIJ+{&u|2)8_uJj?=X~cotH1yG{Z9bzVK<40z;es&n<w3l
      z=?9)|b<J|y@~mcHdw#Wh)JY;Hur%iK?RIVRne7IlLqg!@Q|p;^GMdGf_x?ySf!LuH
      zSORl3>1=i^w`J}Hp5wNP0_o$n6WIQd)wBgfLm=J^y)#bB?RnOdj(srVkyv+JC)g0U
      zn^oB^l&<xfR^as9;$)#lqmkPul5+3RP9uspG`x;Ef$OhIliQzxz`TYeQqp=;!wk~W
      zx}xE=&|1`>AuVvZ=D7Awzx%}Y>JqeUmvB1!mgmU*;4l`n9be!^ZH(B9+>@77XV46X
      z@QO|aw3Z#HnbdzgV%2CiR~1O|u%bwx&*moCV3gx4TK7WY8Aa-oj$aO=bjPn=pnu?}
      zAA6iu$=`IFB=YbZ*O9A0CZy4Hdgg)j@QRY{^yW#^K9UphlUNmadqOPK6O};m4LwsZ
      z1!mS)9+fMldg)P`YQ3Ap`vRAgc!mWue1LmYivlE|4*-mcE4QD*M`Yyj<Bc?D_KAj1
      zL1q)S0xxi9N=#!4TWNfT&y%3&GXG(y?hXNK_yV`sD;eLmecx(PUj^Kk`no5riiS;W
      zu_r0qveoxVS7Eerz3ugmr9_IOwf{dQV%4N4FdL3?NCLYNOs5ZzM{w~jVw1Pqlj@md
      zozCgKUf*llTaMIj=As_gWZzgJiBbOIh+$s734TlF<%>`&--BBD8o2W7K>{w(`!aVw
      zA%X<gYexPhW{tubGRE>5bVHAwVZqSjXSn*D_Yo}de^L3CSm!=-m6@Reog^+{3)gtR
      z5$3`&u5-t%xPiA=Nm>$BL|GD7R9O;POj#0JoSrMVIY3t7DkB$-7g+cisafrm0AE0t
      zcH$JV<S)DpaV3=J1BF2gqXrl#ZQSCC?A7EdGsc-E^Xpjf?nrQa7<?P=ObOP<E7zw6
      z-<cY`FdqDHYH)UH@YV6)@1_RlV33(STZ|EYL3RHdZOL^d<a04Uw|0(q^O6g>&V9)L
      zQ)KgoJc*v;W3|7s{RavU3+GsWiPFw0jq<_jU(Xefd93mMg%dD1Kj3>#xlMIBRK-(j
      wpi7S)dH(@LcqqZAX8H=T5n>rCrGhW<6|<VuZ50ogwMe~ujhfQ+wi?#Xzwc#wF#rGn
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TTc@~6#l07mKCsoaxFKJZZ9m<y9K-uG$aKilp?+@Wm49(Te7=_`e%Ig#Ro|g
      z5>52oA7wl<E$d1NZFY8M&N<)t&Ua4x`_K2E02c5f3?IXA#cXKJT2-?hi|aLQrCzIX
      z(^;z>Rl^7{j9jw6T`#O2yAC0S@%Q?%-t<CnVYe@k7y=G&It=lG@YJfhS<$u~%P=c>
      zhR~v68qPAqd{UbK11i+Zx?|MMd}pLuBHWew0gu6t8w#T6W=LFzp_Zax=v5F#grTQk
      zn0%vA+viqM->-5(kFr%ux@CxS`!e7h8aBgd;gSj-m8ghFwM~@dx~2*SrNSMlUh%^b
      zrSvD&HHI)<7NtV{Nwu?5hJh2yaQF**)htuN2Ro)A-VA-May6r_?FtVoFI0)GHp~1-
      z$YzHz&M@84A8H}#PtA5cBbX#P7bmmX7^X23#vO)k*)11a!ClNU1SJ>Z)Xwegrdo=T
      z!m5H4($rZl=`ze-;ri~1LL<nMB-!k83>p@~n5POaIIL~DTovRnOl6X4>)f{W3XMPl
      z_r(azirqs6kMNiwDh6vsZ`h<%#!I1iXw^?dkMmv<|89x8EYhNBX|=-@fqKmdZos|v
      z@FJU!=NM)>C!kYsa*l1+8&;XWGQ{xpdIoAv6pcxe(oav2o_;a2^qURPHwqzg7oE1?
      zBM+b}l|F}(%6vo5DII;dNo%(>EmHUr1uP>@cM~ml^bw%=bYTFu2u$om0w3*fW3UaM
      zp|`O4BA>-7QA6_Pr9@L&);1c$5QgbS5Yy-_B7>=~==pLf__ZfE=mw8qlv0e5Z-7D*
      z66T|<7s#dK6K9x8rv#k;3`uc_XK4L|!Sx?V?9qPi9QQV|w0W?b{dFqS4-ux;CO#$g
      z+e8R&DCZVgwkg{VRFuePm;Md+B(D_Zq>QdaIXuBrLK`E=@>nD^m5`Q5P|=%bvbN`c
      E0hj7CRsaA1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~iZR7=BJZ2!yR*3>d)rjgp11)qZFjL@^01Hh?pxSZ+GA3EQyDW|!G)6#qm2
      zKz~7Ryr?rpXWALP_eVK>&e^ywA>&2zp7VY_@B2Py-+%b`Er46t%pf5!-FAD%QO7a5
      zfp3`|quQu$bPk;iQUY@WwqG~vwP%(agbpKgI53}?NAYk=+PgA~K&t8Oy%5ONrI+ED
      zZrgYg__o_F(`K{CN!xbwz-k4wjk#W62DayR1t!DbUSK;$-R?^BC@a{3ZP7ZiV!L**
      zD$ra|ekY*Ry_U*SK3zYi=~o>rGk7oV5Oc-bv$9Acr{N6F30(YK)#A<=1g11(Fe*>y
      zHH;xEPcs_Ep~=&nhA*HAOw?`H+Uj+hmftX&jwJ^}^v;gy+w$I5rh<K&T^H&Dd+F~?
      z&c^9C&D^Sm;S&+i+E$=;*?4ita><3_hQKV9Rj<|SaKchwwOWqpt04;H7mBg5MT?wZ
      z%wykcS>3L+r`CSbG1{uExb<nVxsU1Ms~wl9qU}yS_wB%1>(<;B2fz1=YfC9`E*!gI
      zd&X1g;g{uhvbCd@b*N~Qfgy116gNp<!Y0Wh&r#fB;L4TicBQfVxOO><ukmdL-w2#h
      zoQ*1I_zrgj(h3o`+D8!Qba7`C-wTM<EXuf-!3u$XOtP^ZmDI3`c@|}-o1B^1CZm?|
      zKr-r%JU!G<0UytpWOl{ub=mMzyj)}7_nu2ql;ivOq~)tnDE;X1L|u>|g6XEhJyIRR
      zMO(tUEiiwYHmB!C=j;=&=eMkNTe4N_GjLfpj4NbzlD{-k$V>Y3bCZ|kSCZ6MlEkOv
      zcZQu$(0h`%Kaju(<pq854bJLI$H?oYV@&HasbduMne;JcU(uex1^&+}-!;~G$lMiX
      zsbUH>%wZj0(!Ltz!bM!-jahM7VUs6`Dxq`|S5loMvXnYWY-wV;ifesjB}zeCa&r77
      zMF?O-sUE3fT4?SU6S$6fYGhLer3_8${~-VOK=5`fI2{Gwz|A4S(}Tf{p}`9%4hb#{
      z2Ja3H)`teq4hH`=G<Xq9oJ@%=rifr!b^j-aD~DQI%zgD5w-@CQq|Dvr|6eF<{)gq=
      zrPui34eoE1cvyQ{diP2VERXYiO5v!lDi;0Djkd{`eOeAsfWt9&pu=V1Lj_3>i$yyx
      bkq_(4Rv-g^#81q2otZZ9NHO$hwT=4!8Gn1b
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%SyvQ6g{_%ZH-my`z?x_R?*<XjTJ>Sf)L&K+@|TEBYBi0)%s6vTnR4x06$8+
      zGcC1Lk&tBW%(>^DbLR8w{R6-@mh#9DmhZx*)e3woNn_y#mL1lQBd-~VFg*<#ejWy4
      zp$~I==Gc#2K#s8X;6A#oUK*j!lU_DLZcm0X-RGHQ=U0Ohd2TABuv)n$7)McEn8;$N
      zh&&2}QAdX2ycyI)eCgJFK^RvJ{<RxRRd+Ux^j;=}6{k;dpQ$RL;CJS+yMM$GigzN_
      zW-p%`JT_adoD!y<VwsA=#11_cTE7aV`V%JF#w;0GHwqDJH>Tb4L_?WN@|gWAEe`ZT
      z$KOSAT6#uIC~18?oCNbCYQ~;8kt&JFK6hIxTdab`@;ktHorR%d<Z6(sePs9na_bv!
      zFkg9<L6N_v-rePnDu%h9Zlf@QQLY$|62_Q=v&Te-Yg5-ep;UNbNSi3fo4|o4De85$
      oL&9P)#i(gMH~3^m3)<100R3obQ`kK^sH=l8hj~4BK{qab1JR|ShyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+j84f6kW%$BS%%8)Jb}w&?_yzRuBS(IHXO38w_^hkTmIqc2FGERmYZ%B)8#L
      z_yJycpffZbU<TfJ-~;#^hIJ%WmOVos;&Zgm-fOSD_TKsX-{1ZK@BtnvNC>>swg>uQ
      zx1+nBV;Wt(Y9CZPX4ka6TDRX(kQ6vO=5n`DuRe<$CIv1%HJ%xVaTHU&yD>0<q-}If
      zg4Ku4(&F}wmZ@)T@LCa2Ba<sI<Gbnu&+6!P%k}s^xop{%w<1u>#c)FE^<K;Hte#zo
      zJw<q7igC#NE}5<M4onpjnAUI%GXm${1fJiWf<RV-g0#HNX_$g4FkQE7b7RomH=P}0
      zzr#|ql2B*Ya4h*98k61=i?yAvkBK^}J4;P>!g5A68?RMBYnz_mkDc%P%sP?F*8~(A
      zrKW6fF8>BS1dfNEej~{2WauC0Uh_=H@On<=7%t&m1(yXfvVp^{Xt;t4q-%wq0`t!u
      zeyqAxyG3CS?%0+*1!e<Tb*rcENe`zY)mN*BEweBC<|-%%TprFxSS#mk+aJ!zGmVl!
      zVp&&l4eu+^Uz3WEHO}{fK+0!AMq%cTVYhW+S$3PbRV?CT1s@5V8Ri@t7!B9)iNF*^
      zYC7g)>yQn9El?aSjU@r7SjLKi&p5ljNHGr$H*k{!Y<@Q|I+S^Y(&qkCv*lIt_hmu1
      zB>6RtWv&)*tZKL|NytX~Bh@q<FO4q*#EOb9QCIL4)%7z{f!b!IlZJ*2R2kSXUDs%H
      z%=6fkW4<77TN=K`Hp`P+wPp-lcBvHCYUhd5doHK95)6^<S2VP;AYWo9+SaHAa$EbM
      zWZ7WtVsh|RFxh<YFv^;536tHs5}Vuq9R)h8+r5F)GH+XQ>1Ib4>6%mp7rCbs{7WH$
      zIk~v}2RJ9!mS+k{%AxV~IKK|)k>oj3D853bP<n|Ih4M?xzMw6EdH!bo_nVAcW&ABn
      zV+|*1F9dNoh12{Z0?yzqqRN}hnDB2hr(|*#Z-*I6Jf&A6^^^Sdb4>b{bstwUllB0Y
      z`;2q6NUl0h`IajDf)hWF1=nN2sVMk7E`-60VX(^J*<W!{U>sp9hM-0WSMeUn<d`i<
      zguGAWAC@FVYZkM`Ba|hbBYfB>{e@H6PfJIr{D4f6XSq1DbcEGn;PAOLWY_uoBThGd
      zNB$mNYOk=dQRbz&SN`*bU*2^ramWK<7T74@9wu=g89bnj4_VP8T*bFs8iSrKRA6Eq
      xk2(5nY{K%ZSY*4%FKSK`JGevi3`*F=9?>fth`U5iFg8u}2Y#ErVN?PS{{w;1rO5yQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkS#KLv6#j1FEzZyc#|haQoNjoDV;Z196AD?J;^H_VcAT0A(8L)zgY0oMGtN@6
      z^8jrT2#HmQ?S;NnB9-b?f(j%=^T3ZnoO>soxb~=TJlOY~bI*6~S-vy>{QKJ<0M6ny
      zFWMMRm9$!7r&3NBrmo19L{c+Vb9YWDmStTw)vA`NY?i%nF$^_%US3Eiw-n8^96St>
      zH{~sPr!knq?~T@&48G0UT3Ico))@k6j!Tqft(3@`x~i2X>E75iOr^r_U7B1`7$mJ~
      zii9#k?b4OavRqUu^g>SAF&VsTvZ1W#DuZWA)l~BW!?m!8{XkCXYEgulY<>3svqbV#
      z$82?7@uM993CGaGF!HeMBKZz5^h)r;$EC+4bXd}W1ivK>N$9ks;}RrGdR)RI@G*3y
      zRZYp%Dr<_Klh?}BzyPnjoR@W#>xV{{xuF^iXVOi>b)*5GOZl*U#D|CUmc~_5OhJ#_
      z?j}9n9*(3KI?1?X4?Y-<w07Kb%G%TS66A2=TzY^50kSMN)4)&08P0@dda!p}S50Nw
      zNNPoD{`!ih@{^&*YJEbjCRVwJKFKHKPwo_zO-_2li>DY)wh)>)PZXs+u|0iwhM{9>
      zG?~eza)po|&*FJ6o?|#BSZzNb;XJ5+Zjlfrc9=jT>mzxNet~-ucU|FBB=5sZ)br5N
      z%1k;n8}ea>YuQ3Jms}uijz}NM%uVN}NttJ07yNh`m%O0Ld+tA<TC{VO@CqVSCUs~*
      zF$}pxbezBfr{g4-79}j<RVs(C&#YWCs8eH&iRL!+>NaQ3WaH$Hth9QfKAoZ48m(PF
      z)y^nfuWfF~i|*Q#35L_HjB0H-Is3EKnqE}qRZi<cN2-qV@-a$_(@sA(JP7hlq7Pq?
      z?~yoZi^NGgBu?5Oank<K*#Q^zrHjzrq}@iFu!f_tJ9soYR!1-zucI$I;HslPI^eEj
      zFgoC=V>mkCtz+aCVcHO){}Tc?M>!;EZ|5oEMfB2`hLEECF5w9p$|(6QTk*;NBxyhx
      zr*N8H=MvAnO-MZVb|LZXT|(mdyM@Fn@Cb?5;3f1Kif>gAr;|r(@9w%uhn1X1m=;9>
      zl68HU0HbFkWZ}gp=;Tm$^frQfP2gMu*lmNOj^Ms#aKRBAa|HJ{gI{+9k2!(|o54j#
      zaNH3*+zj4u1dls{N1DMEM{oj9(oD`$b6wQy3Ep>hl}61+d@mMwdLQRv)c$^cc8B&c
      zMM~cR3_g+roR0-w6gMa6hWiDNG~pfVzJJqa-`v3QSYX;#Iqc|?l)(ceVu4xiz%@E=
      zV8jYU`tSidxqbL3Kp-i6`WJr3L}6?n7w;gQiIb37jsJN|Q0OLpCGK0~yMhrau11XA
      zqD|YT&D^1_xI!Fyi^%sj#_<l$;ayDOJ<Q;J!hJyBrw>uUM|cAtL%~&4a191NA=Ibj
      z^%<_?3w(|*@eRJhPxu<Y;9Gj}JM7_m+{F+03qRs-{47QgwVG>h+&$XCEM>VzndGoS
      SS>B~B%41c0LoN&67ybj^=kG88
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+fEZv6kVqm3bjIkq9}@73iQeV-Yp^*(KIO-1wkZ6hjJ`q+9{b1w@>j4eDOgN
      zfkYF1_oIyKOlzqv^3a}h_GRt0*WQ_5zrXzeFpgOtTml0*b4S}R<h7D*Nxh)Wo3>#e
      zypZpuCC#i%7q;_0cm#Ut;$AIe=69uOmjjvvMn34f`hG2xRQ^&uqJU>pX7d8^%=sCQ
      z8KqmgZ4}KElT5uJ1v;E0Ew7t7ZOOI_Ge=+3q+uHNl)!qV5i?WFmN6P#{}8M#*H|RF
      zLJD)mP3ealZ2??BP@wm`a?zC*kZ%A!G^<-EfEM@#+A@YI7k3I9(puIx@=i~rm|xK?
      zL%l0TkG*A-1j3m*-Ord06==>^y5yi5`>aYJ5Xec}ncMQgHcPuB(X>D-jWz8HBqPyA
      zl>e$F;3L4IGoMf;vu;9NdzN9#nbN$OrG}d?O+%dmon-|zqo}Q_2rH$8_RsHU<+d7p
      z$%i3<!G=ZQ_Hp{$*J`96BZ&GCVK*xJ6fuAp;sRcW0f!h#M^{vEQaMHix+)ZES4u^U
      zVZw)TQv3^-epW3Oz)kd#C)-|-rIMcGT7+?1t;MLi-3{O#?hCZ2y`0l`N^CVzTW5L8
      zD(<Oir^-T?<vO);ryahQK(M@wrwR!O!gW>6HN3b9E;%7E)HuCH#Te{gD(+ZW`NU9b
      z*nP%ojjHC+&-Hcl=Y<O)wa@&1gw!_k^uoig1N2_xYm*Tkp21lB1g){e5!z$PBXl0p
      z=0X?$I~@Ns^JbVoi#E*R678{a9xkJsFCyRyt`b$<R7IC_Q#BQn9$c$bO!8Dw?qJJj
      z9_1oUj_Iibtf<jl0T#H9URo4cji>T?V_(t!r7k&BlkBY~-$36P$({Ad&(BQm#{l^a
      zvXF-$VTZ#<GE;&j<H6x$497{O^B9SEFvZs=bT52Icr9@Z?F6?Llf2wnP5wM|XotvZ
      ztkUp+Gm|wm;Wb*ZPR|?a_?AW9QCS@cWNTDTR{CLCJV1(Q-JItn9uh4~q$xadRGxM;
      GnfU{-2X1`;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+foxj6zo|7k+57ujEKk`B^Oyi#Y+G!xs+A~RESY|u-t?(EG`==*&x5-Klp%E
      z3Z+)*yMN;ks6D%piYyu*vY9>8(|x+n?6)7Ez5tlOoiH?kp@LH}cDHP!?3SdtWh`2@
      zD@$^HVMjXdiZs_{DU6UnY}4E^cWaRq*RqWo*u1o5!E~iS(@T#;pf4Rb<sI-vQbbN$
      zj^)k@+#L%-pDv|q=u<&JEmtfn5SlBl%Lp3Kq9Y7lV5B~4EZYo$HXV&<5@=6bj$E#6
      z<zy*i=4^WDOc(Q}oi$6Adao8k?uJz+eY$>l$|Qqji~@r}3r9Q(gg4CcvfOnA8pdL4
      z%1pP8(})T*J1l#am9bcmORABTjo*}1jx6lv<+f`TopKoG1%?CTAb8aq{2@|F_Ukx{
      zo)!#ZIE*2I-oUw<=yi->lrGJ@(h?XwCiJ7N#n$MrB#9pSA0HuQU7)M#+OSQhU_8ie
      z%DkJ3aD4q?Bn5g@m;T;L#c{1ISz{`JadjySFV}1Y2~6mi#1-bMuHc+mDRbIMzjvP`
      zvr#I(R#Q*;VIQpu2p$;?8VH8US!i;SL3-fhdn6{bE#)gUfLl6lpoh0X8PAvnRh!X~
      zQnkoxu~N!QenV96_CKXRzSnV;0|uB&13z?u4t2M=Qok@xu+q%cBWT`!OFVIaNIdxg
      zt?yXY(9UO@w>8Cs*AZbW9jp!baGXRZ-+&gJLKn%@N(pFO^P*Pi4gRaW#`powyye0t
      zZt{vV9-;07s)RyaIik)H8{$r{*JXwkjg>Ca^rhqP(VF;(0S#|{eoyQjvUc(Wu*f#<
      zvHf{Ac;8cq`e&;OjoiC{i{us<LyS+AgH4ReDH`8Ld@ubOiDw76w3JNj<MNZ_SE5uu
      zjqJyF5ak+p$ma@8XBgFE#*nRvC|cEPV(lufk)e&LPccdr5$DSPzq`Cy$K?wu=jh})
      fUFPe!<bC<4)^r^$n_3RFHmOytqczJ^G~E6L0Q_Gd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Tg0T6g@pj7!yVlqJoH+$U~C}GUdicN$EnQ1S1Pb1&dviv|+4CVofGie#L)q
      zW0e%83qQb*@e{z)Gf{(6N)|nH`}Vo#+<UsepM3oW;2s<khQMO0({~1K&*=rel5J<h
      z^#bLq=5Dy%QL?Fg6G?%kxAMIlj6(Z?>p2l(U3sb{10^s)7M2JsRAU9NUsXqG9~1p1
      zloKe#(GfK2M?=@#jvG7?STDt~e>2AsXV}Vhf#kDpQ)Q6AMGI+M5?CICw_Hy{AZH<k
      z2_5Avn7AO2t-2kx-ESW#za|en`jD@78`7&w-_`qJG8r7YJt|elFr6cthqAY=27y4L
      zRNfcJJRdaFyTI*sdM4(0cmH<yH&RbHZ(#=4ICAF~*``k4vTzfHNi1U7#FD^#jBeC4
      z3%7BH*B~3ZhcWG9(+OV@EjBrhmaoZ{)?Tq-qrj1NyM4c*c+2!`HoEMyk8f3Xg(A&P
      z@Yx#3Y3~{3wDbHYxzfn+e3H>V5gM1XE61?x$`P{m$`PhMF=ya1zxlA@K3N{H>LIdt
      zge%M!qdHv0G<TX`>xeMYN(N)P$p0*JN$#$PiVh=<O4-M_@sU9!6O}#<sjUbwq!!xs
      z7|k9t2CHXCQ(Ut@V~Q*L1q%i~oc@^mLmc)0g57O#mJO1=3`M4+@}WqIXC;)w-e~lH
      X<tpdP)hJgd<qqlh&XKztda(Kvvp(%b
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZF3V<6n<`Anlx@{8e5BE!GcKABm_lJ2`!YqKr~GmTY^@{&NjVGx3k&A-301i
      z@elZg4>BWR250n}AN&*k6UXP?UAH0W@L}iPJ@+}!Ip;a&-oO8S^#_2D@i2ji!23<7
      zS2}LlC9msBvsJ2@E$Ma4hOD$Yb^<Yhb3=%4HmYk+q|@~QV*>L><`eUHkVL9;?}STW
      ztmDc9>sTODRp^p!I?d8n*R`BxSs>bTEn;q4j@4ZfxR=$S*C?y)hS{~+PI=US)RL<U
      z#8%q-GKDD47)W7K;QX6dbM<iuOc_WZsdjH07)MfIvT8Z9)@$uaciY^vr7D1#*mcvj
      z)PG=%bq_6%A*w@Ky{0A$P1->jl=TfY3K&h<)hciQ)M3zQHdhfCr}1H+<8(GRS~v40
      zBn<lKYdXzY-l{w>d-jQaRW@wX)pBa;og^*_P^Ay?Q396*(!)J6a0OX*NdDL}Z5BG?
      zYw5RfbMHtty5-ys?N42+E0?`Br$P1iA32s<DQAGU+NH+|;g(g4QftQz*->5f5-18>
      z8W|+c8i#~)86uM?3B)<Dj+f#PUr*o@fipVaklethxIvUoW+>TU=5lrA{h303&RNM;
      zltJK@fiiBZLUjQGR|X3We0NS!K7}RRP2dho{Xdt=W|*{rWz4Z&HfKY6p4sGJ7O<iQ
      z^M=~38Cb`CHdtMN6|?72vch2G?L)WyRLxs?F!qU+8S7$Q_Rb%RPz+9;Al*!89>|Ml
      z5lQ_nkIv$#@&u>0+C8@+*DZY!!Z}kf!Btf@=BZ(nUmOuktGmRPW?J1Ou49O?-nV#a
      z@Nb`p7}xYd{v{?B3NN@TzCh+VZORwO=<`K#Ez$1|CUF-tv@iI6cn7omBLmLjU9zg3
      ziWt#56;oyM9?k_3i(C~dnx1&Z#Sb#3O{<#N@Q(vxK8={8MI~F}s$Am>zajnWkaK0g
      zIUYKnKh-%i>|8t5`2s!&A}=#f6?s-g{tHu?d9~@|($9!TpT&j?*&3jm4Rgs+vk3B}
      ziIJ?JOZta<rT=a|bG46aKK<MP{Zu}EtB;#`Ki;)`dQttQFKQc&nOGlR(9<{lg0maH
      zqwsB^kHwd`S1WR}`ndS#bDjM<Dr};!_)SbO>~|c8@7cB=Z~?n~Tuc<PhwEst$@@ef
      s;7c5$4vVNGqHJB5-}>FK^}BdLtRQxp-&c%KXWOgT(5<gAP6V6(0cgF2EC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2_s=7(FkLK#(RFg4Oy_qD{(2kZQFblBPz2l@1U`kmyyrAzQKzEOd7<$<(V(
      z{Vm?~qRupN#?G{Nz37kX^gIjQ(11=a!ux!_?|II1Hh=y7`gZ`=@O2PAh2@sn&+T{G
      zIoq*xt&^*E9nCSi=7!#EYnE%4I=yxf0fqA?Y9Cd~#izRI3<{<dGEcOp+WzQuy5#Li
      zw<-iot)nZ<m!&J$*34F}=2(W=$}5C={q45VEbY*=4{S&8h&jD#n1-{aP*1u||9Pt1
      zZMtyt<M;iaNUA|Zh3<|Xh97egoI+IL(%ariHD*Bg5d;wuYaxP}fpsQ=FhUA*Wy92~
      z{m!;-)wS)mJ1kMQ8=7T^KMV$(UBgyLmQV2ehFu6f?cuOo%3GLFh_rOa-BJCZ$LIaY
      zR7oMoVAbV*A(<NIM&T3-?t2RmujcI_zGoSZzHS%ICdt})Xc}@V#0FI5jBajADy+OP
      z8ZPcP^_~dI4&p<FD`N_wh`4o1&#Md}MF^{l)y?{Py|h_Pgpoluh!urdS1R5U5nM%1
      zVakQ15FbJql~Sq^!Zi|>xc~4@xm0lP`dIpIaNWt0q(6~#?QyMMtT6o<ZUyl<=lS=k
      z(x!(jf;<u&iiA{j+tykX%QC(YvE;=1GJ@M!SC|o*7PP)iURFjy)pxD#o@_op%KLGY
      z5_e~@6rzL0c(Zcrir2-x@CYvEeEM~TrEx8c)63#;t=qSn`dvdLdEpH*yD9`=k;3-#
      zZ;HPQqICZ6SP-4NCsodK8UZp8VbweI_TghSa3-C3h1vAVAx@{Whlr)m1r8B^$&3&0
      zO5Uxy&EIu?Eq5@70^-=fS>|pGZooObM^9?c;{xv&OECCcOHlY-OK=33zlcji6j`29
      z?~l&@%wzE6v>UqTJ|S?K9zLP)J`#+`06CtLn@azR)4!Z(u8cHKdCiLxn`0-NA53h%
      zJh3@`vUzJ_^A&u+;g*O}=3kZp)Dp)EF!DSzpFBc3BXjWN5&ILjGV>ovFnak2*CiD@
      z_M!=id6~GEd4Y?W`J0|AZO6$>bd7B<aJKRrmLIPi;nP=Gt!8PgZDs#>>2lddmtWRk
      z3k|Lr_=d9i7PHXkHM!m$N=-)!-;w_oZeo|;nn6iCK^Z0<u>TQy?D(D)HoZQ*Jv^h_
      qe#8NO!VfMz>A~QhaGq0G1tRECv>PZA!81zbF1{i~3isUQmi_?&!G{k3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTc^V5ItY%jk<EFpeTx5M0;fguLyz^FsUhEA{LFtxU_3sQ?_Kg1^h+6_#la3
      zqKUrw;Eyt%+16Sq`ar*L=bJfm=A7Zj&(B{0OkybnpF*r;*Yv%uvR-u^)7a7<I+cQ1
      zty*>|Yco_UxK_o^Zf%!C@GA@+$$qkuTi!8kx1JDGNWU?5jJ;MsQ{Jn`<0=GQ!zr1r
      zLNq6pdfBi``Xkq2{}}~;(QpkW&04nQ&M9PKUe;guxk|whjx+55?U8t%po^8F89@iS
      zG(^y?F!Vpvc)k+~y&6IY%k7kgPJ|V@bCzwc*0wfHXWiH=n=%2Jl=FsT$#)~@cVAmo
      zg+%U%aQ~E<Q-{lqk*N27=2g(BoG1VK+ieo)h{dxCoeZuwMD2^k+ci)KF=fe9wtv^L
      zTyvqiY!@g>@v&{m$tmlS=vGDFkPK%=l#49y70hiByBfln!dRQx+y|P+J!)o#F|Od7
      zosZxO;vvKox;&$s$QlwzDg-<x3jK}Ft&0%POLbZ@C+J@+8_$Pvm9X=35lrEF2-isY
      zH*9vT*<8a7Tp(}GyTYY5O7wjcx5W3P+@>|$0Tu6*{aQ3?RgRu&C9wY5sqBiKGp$1Y
      ziE=kR-i|^~UFqgrgjIy=Z-!fV@y%yWDU7$<+pZv!BabRIr(oW<WY32FxjPdg0Y<o`
      z9sCQxhdx<b{<rtZ(((+z&)HA#RpVEY8GfEUiR34oOr#EYOCKP*&zRH#QSW_@b@Qyd
      zhi)vOpYcS!4ySR3UqrwF&JtB_($VMLq^B@Bhrve26i><W1>eiB*CXgfmOWgp{@TD*
      zIFAdA2v?n_R0a|s(evR*@q?D)K(l!0*y8BX;<aOoFJhSdM%c*DzM~$8&zwf|$|R$g
      z4skgtRCw};en)SzXZR2)2}b2Hs`K|923Edc^l9o4lb>*NHO<TIjr6yDZ<aVxT;IA1
      z6LbaGKoC#Rg{S27jH*4y7+x^zCDPc$Gz#>gNDp3loa-)Rnl5B8i@QWlQ`b3W`dAUB
      MYYUzW8BesuUpiz|r~m)}
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmai0TUQfT7~Ll%nGi<73zm4PH?-U&*o&nBw5Xw?fJy)*(%K;z!)TaEXC@l$#oq6i
      z=lTbH=|gK<St)C^KDBH0N44E&GPxj9S*+pA`Of*iefHkx8~*<1x8DIA#dit<0(*02
      zF<x5E#~s(!wdHtf^zsGGc6578%ea<(TR~9Zz;*4WR`Qk=yr8pgoxrBC<mk-obn@!d
      z=wvb_&^jS^#fz?ykEe8ZNFZ`e*W9A5J8OfJT0sVfGkL=_+~WdGUEOm6!BbXNSFlN7
      zOFhvU%~@iyC{(nnXhT#WJnU_2hQL-8A%r8?E^v6sbqk5O#N2P$xwu38)$(yuTh^U|
      zmeHLS>_CTtX9&MugauT@u#-r%Y*wJXt8$dQX6EAO7q9CXcc?oZ!ES-R|0_dE4KsJd
      zFkRg?If~%frvSUD<&CW78kQ+3GE9A{xV)&_GumQa=kX@2jFz9%Y(u_#lTkFGRl&h^
      zB$3o84xm-ia#)3e2pM&k406AJ;whR_4b{|d)vQ35bai_aY~TTIh$c%Jy&#c03XTZ$
      zueVIaSEnrVnvpBo-YILF6vPEOq)?t0DHf~OqEQ~=sEX(D0+AWcoX?V(^SqLl;g?h#
      zli@bQnX0NgdP}o)85~sciVU_I&gF44lP_j<FQ$OVJ2qk?iUdZa$!N)NS2~^Uo@>FY
      zIH_QCja^8!ic>gE59_9D-==*ihtF8u|I%t>Dqh1GE;MKfjrU7n$C`!X{`^o2&SFBr
      zIjUYaW;Lo}5>wRE)JrV2y_%uXp9(GrY^!f2$j+oh*MjqyR*{kk!a3bNr}K`_k~nXz
      zmm=l)RxZ4x;<8*A;X<-r<b6z6t>!H~X<2z)GozTtf{NEYffg%s-g?R5RTXbSqeUFu
      z9jkNzdF+NeRVg^+5quUI6<L``S<;*-?}X9ny^x9vBG_EJ!JdwkqtvJ?ZDC6hc5di&
      z>MjgY*U+P?<T4cUbmYZv2-gT?JSfY{`}jC#axbwK8Qj(o^jR8GKv0JsbNQ6zPU{&f
      zXBv0(Y|ZitZVGg+Uz#cw3YP6QtdzbgskklsRU~7Xu4b4{6h*u(z5C8%?aQaSd#;(1
      zy{F<X=)vI3^lVa2e4ye(IT0Egok%66+do$E2|gvEg(9&JHmc@#!iIBJd*k{ks!t2m
      z)L+w4tB}&N-j^!A!q=?F<?LKfs8{Jk@kX;Vd&(->8GX!<eX_mQx%`iq*Nm{AouG-I
      zz5qJpXM!WhzQ|{Y&t}L@(ZaU{u8=={t5D}xu=!_fd4Mfjx0TTzz$H1{RUhuD41ePK
      z0QT~^gV}&#W;=m)9%vs%(ThR;l`Fs+{A&4?P7;scTwBiy_V=vf0Lyj$ibM5mn?1yX
      z2;wwa{VZx_51vDpm#-T=%-qXyn1B1wFHa%bh@+WvX3s+m4D<2g2p=yWUqxbm*X}(l
      z7)}Ixe!-zKP6(8d6i9^b<5(<I#<;*Eoab*M91E9mQNGS36glR1`4Q$5kytRM#3B!I
      z<ssgXTNVZG{rhJu_#-P;c<@kQoG8xnyyu910=w9^`q@@SaDkDFn8h?S&fUO_$In6q
      zv464<4CuJV(?;14avTMi<tmmqYGSSw<JZYdFIm2UJS&Z$6U#8k!#FjzP@ulE{8!;E
      z*i=}^HsmuEVTL|9yd_fc65pgV`YCR28Mgws2Xz(2`Q8=W`9reQyZd`IKft^95q^O8
      z%lN1Xm+C5QB?=(TN>`})0*<f~?&Hk9N>=|o%<o~6iuV(fJdeO<`22~O?)aDnHpW!O
      z7Xc~9WZz#<n(jmCqaZ&pdqsf?szsv85LFfj$z~nZKn>M^kLn;cc}z)E-*{QR{STXS
      BYux|<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yi}Dx6g}g2oJ||txM>>Fq$wqSBsDGJnO935ty?E8b>g&!25s$CvXQ-xcAb|1
      zAwUQL;s@jx^a~%TRHqV1@SPupI5T!Ou5DF(u;$LpJ$LTC=iK!_|Nik8fa}-@!Xq%U
      zY3-&C%B7T3wGF+T%2su|x=<<XmJO?#F7K3r@CgjIcs*LqEbh4u0fDRA`ksE!9LSLO
      z&a3eRLe8O6HOlFtKqMnEsgiDO(#tlj%_-g+R-sa)Ef8i_Im33$iY3s)4O6p<dZ}U=
      z0wT`<j(f0R6iT{nFlz5ffYYPEv}u{uS%LMKdh(StGnIl~<r7ow+5DfAd_Et~3HatK
      zMI#I^&S^M{K7mWGdn%smg1~tVL4>4rK|@#Fx~L&sx8Bsy4Ncx&($G`4Ml_s(CU7=m
      zTE@z5`Ke*A>Q75-M?{uU%IUT#_l-keb<1=FMl&tswNWhlUTXA#T)(DC0@|igRn)H@
      z?(ku6ES?tV=3&+)wl5ZMZ=JwJI?ZqCwqB?j_F{wPY+=hNGfwvjZCRtLqLN?Dbebve
      zIi*`Ug&EJ)M|9sdtHv!y#Wjj+mPr{g?zuV-DYKGVmmc<%q$|95P%w5R?M@Ky30!GY
      zF9l9bav)sK5I$h%r{^fdk-fSsXU4+#2vb3PEO17N*?mUCG-d?+DlLI%BaLRU$8!=r
      zCp~XcL9ui^7s4l$`p9XaGh-nvupftp6T*^!$Et*IhwU0U>6i4l%Zs_$Ffv#PVwpvs
      z<dVMcrmx{X60Dp}TQ(d=-=th8@u`&SjI^>ER<S0~C1+(`-*wo$@#d^ox9rNkRM%89
      zyQilD0adKc8LZRqHiP;S3>S5eoATnF$GE`{NW1FVIiPbmTiLY>#*!&zf4)u1*JSCq
      z%(3zE=SKj2a?1F@>ytC4R!*2&IbUk!bg7lI#kC7Q_N15SH@JHNkMfQsk}nZSjMorN
      zOw`by81U6Fkcj$g7)(S1H4G)9!5W626XW6gz^KA4GKVG3^liqxgDBD%#9iLs!x-rr
      zrQgGPd|bg>+yOCM#oK&cS~7EwvSjXFWy$P)%98o}l_e_(C`;B5BzlbKdIb|)Wi)SZ
      z@HZ~?<O1sGfl5HDUpEpEh$F!hS$vACg!&UN5dFOcyw(KvyWnI;aDOW}-w`|xnQZIJ
      z!>wt5(Gh&DBY3bCT<i!=bp#K!g3XTLcRJQQ&|0(A5qupt$jQ5Gu8*}(%IbxeR7;AT
      zWaRy0e3)eW2jtp2c8pnWhK_JK8M)QC8azTMGXD(z$YQh8@Dcixk=qTYe)lRFNz;CY
      z3(J3E^6~gF?!Cl=l?fUT*C+mdt_aWL3DsGb%90{vkNVo@zs~{Z=#U!zk{bSsX@AX6
      z*f+R|Z>jR{u!8UT75RbaAF+X-u#KOwgI{3dS5<tXUY4tM2RW?s#SKP%gvWewo9fQv
      MGc~=RE5$we5BCPfUjP6A
      
      literal 0
      HcmV?d00001
      
      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
      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
      U2C+S4$KE6kIazMelMlE52Lp}RTmS$7
      
      literal 0
      HcmV?d00001
      
      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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
      A2mk;8
      
      literal 0
      HcmV?d00001
      
      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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
      A1^@s6
      
      literal 0
      HcmV?d00001
      
      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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
      Zc7-}-n_#-Qek$JQ8JOgFRe3C-{11cqT+RRh
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIpTXa;_8U8kzWI{3tFo`h(2^W(pxxj#;LZetnLXC!SNeD@_(8<gpOqk4snG*`4
      z(u=j!YHwE5)>^a|(b`ri5^dJ<r7vAwt9`Ri_Qk&RseR~EU$Eca`^-LPW=?Lnx)y74
      zX3pOK_x<00+5b8G`NkhU1h5_N2eCrnwu$si^z2kBnzOT3Y$`gkzrXj4mA3cA;&vu`
      zu5W5O6+}Q_<7Dhi?Cb(71u9dSc+5^_(gN%HOP2RLH@gHX?n|bV_HKc)&27U1f$mJg
      zszMp6LkOZ$U{!xIZ4Jy!ja%8F*m%kk2+Q56;aD~)zdJt$?32lyKx_ZvE)cXjXW4lU
      z0_!&~z_4w2B?Rh1C`Sd^#3_tz?Xm4_a(u=nn<>3Hnu?_-qJ#W7J<+AiE&G?YQWlm}
      zKNmG{T|wL`&{X83xvc{f5s0{or(;uAZaNmXqK5`}S%pTdlhQT`?7B(nZNrsVFHqjy
      zvu9|JG`KN@O}I@UcqW#bu@0ONi29iJ`d7rNs|pQhm9#!5FtJcLJQ@|-m`8P;r^SoM
      zWU^IEXRQ;-vofWmU<DBq2$?-c4)+PHlo_2GpoVl^IV#ZS<7TNTuj5W-l>}DGxJ3%E
      zRp1sMtCH?vuP}z3j;l}3Ed`bZCk+)AX|ZXO_R@KkO9J=$ar6YI&`-0G34C{H0-M`1
      zfh%#Z0IIM9yQChU7uf6d+cBK4ULU`G0zmOTYp4uIwhvEcWRuJu-4q7xSk~@MSyQZ8
      zfm2@6>AY|S!J4s?sc4^VWn=8Fjw6M?%^yN97)AYpz=oo(;9VhgtzsM78$vgF1XgRt
      zY^|rPM1L|zzMW1${Rl+WkM3%g>jT&)qw__93tmTkqvKzJI!un`obB~rGSc6Rx0)z)
      zXVSKH*6xyZQ5DO#W1ax@9=k?ct}!9tnq!Wy%k9}q4980B$AKUQSjnobC?C5ssgxC$
      zCt@yygE&M=z55RijUMms8ysRpJhYYj0#Dy0OOGWZfZuOR^hV(A|1%LqZt+NamKAmv
      zZ>F<4gK?c30=Ij%nD|Faa>&#}Z#rS>_lP&G-OcI{_2#OPcz!uuv#iunf##x0b?@ss
      z9l;~AwjMQ2OKbBPYD-qhqc<7FCHW;VeUs*wmzl0q47Ah5x=+Tk98j$+D|@F8i}@XJ
      zcQP>JrGatp>%hd2kb&WGd6zdkd;?Q3OpJ}Gc|&KWJRPca1McpL*)j8NP>yNrVESI)
      zL^_j|6Rz`fo#&M4$;4;$G1Inre)m*e<d@RJDNgQ1saLQ>pS~H6H%Er{ZP{6g)11n;
      zZ{1df6xg(aAn~Kib6iJv;Xdn#GvE`t((PkQb(fDIRyv+Za2}U~DYHX8j8x_9SUM3)
      zWztkyj0x;t6714ZyL{{|efJt2WTtsOZUT2K5Ms|l2KWM>Wr_mqS)g<HNqkL)at#ls
      zJeHlb&mFc-SXl~2RZjYN;Ay0Vy|*_lclTKF6pK)vZe8;`tJfMN68>iCGiT8vP5LQ(
      zOOn1Q@Q5b2Xh&R(Woc%~9$B4m9TDhQhSvf$TF&mwl&;LXePo<p8)q9e`L4j)q98gq
      zwHD9e`%;S^2y9zai-IO39Sq2!iPOI3dN7-bTe%!dq%TduX4H5h;2eDgn|<_}R~=uo
      z^z4$r<|5C0muf#>z%D+aai*TI$T*NtopPln-ZR7@cKfmf<`z=;sX#*!1>Vqrui$4=
      z*vkUr%M;e4&4KYr4td`Bz@26DQ#5B=8H%!moe1LR?Dy`F=#JP`cpcT%_!X`M@dh6;
      z+%@@uBZN2cmVACw5v_NcgbtcRLmGKIgx}z|go`B-MUR%ws<ttS^G*ow;woF^$yjbc
      zndA!@_D8`7oU*J8L4)?Q_*sC1>|kal8@Ki)<=dG?pO;2kC40Uipe4R-B4_zBg;!0y
      z=1U%auH?5U|MJNX<?XYmdY2a~5aMTr`f)F6cpcIUP>WUk#t8sx_$fE<=IRx4b$iEq
      z2)nzh)UOW_@L^@4L9cQwNb8b{1g^&|j;+T@shqaf&!J(o{Tjk^XdLa_(lLv*kwCcl
      zeQXHKqU9Z~&<w+L2%PCFaR^}?##&xWwmY;HgS8&F;|^lbGB)!{@?DQMUP)Qjqn%d)
      z#iYYwVo@G>Z=IJ3d31KpOXDbMj8K?S+=`=$#zt+z&{(G+C5?3oa)pAF>PsQV9LV}S
      zWQQMCt+IKHkLkyWb<BfPZ*c0djc*nuPQAgo6L&c{4^tc|z^XayP$Gx#p<_E;RW(F{
      z?pUZs!V|q!24a=cQAY1hbUB9mX;^Ajn>XCiSzuS^)1-%Tt+7{YB2<g}RD=ZXXKra}
      zrYVh#bmJTzP?S5`JFjC;`xbtPS@gQx8&u>^Q_w7J=THZmBAiy3?b?RHY&0@8;z9H&
      zQ5x|OugZvfKl4_jpQ92Iy*ZEWX604%^Isu_wW`9-bJOEY$|soIPx2Mh1w?S(L!;Ty
      zXg01lJFXMTNlr=QutVc{T9mchQc9ye5|DC4%1iXnWG-^+w@Kz168R4E{aI|lMMY+}
      zHfhMT7&0w}OpB?M7NwKaqDARcu5=o72);^`An&y<OfXVW5HZd068FAHhA)xf%VhXt
      zY{VtS@Ih_UFl;ppTMffj!?4vbY;_ot4~B3=^_pQ8rjF?dzsp=@hZ*r?)GWr_T+(%L
      znYr{D(Jw1Dx}?K~P1xj6SmDW%9>$j(lqq^8)r#a%3NohvOt-Qt-0&u4c#Bzc#gi=&
      z0~j&xM~wRslP$yS2-?BNXi2uxrc!8~Ek5X1x##ypzs4Y3Rp`2rHW~CLgWhD&n~eBP
      zN&?wPkK@Y@j~<3kcAM36h-snA%F1RDcV*UX;RA)I4~f+VZ#7P^8OSy>v5>`ppT!Rs
      zv3PO;iveGbe_X_3azTqcx=OtM(;^lpamvwgAJb5E^f{!Ijv|~6Pb)36u9iAw|3a&O
      z<>?^*=8x|D=^!wP8OP>0ZOZgy5jZwGI-3LJSz_@c9t3}5R6bG`btCl_!5I}LTEbUU
      z^Ojd<aZWYTNj&D@jS#P_2(PTn5AS2*{hfFpE4<R8E5?&vop(?U5JhHOo$Hkp$`9rf
      z&NctwMDvM)(aBe5lCKULMzE1T;TXS1xkORt@T3aEEWYZ>uT%M-9@#^VHG!|=8;%Xn
      zIr)^b(aH1o>0&GY^0@9jC$~9L*RrEOLq`QW`m>JZJq)LGy=D&2>0+D3_lgbw$Kz~`
      zakd6ObSmw6{HT=Z3)&nH^cRcm{dXRsFBzgQtDF#Q>OXNT4>?_dv(78pvd~BAEM9f(
      z>z;Unv(BfeVe+rW4G;HxM$0MZH3y6D*d2rng^;<nX%4TC&f*vQ-#~3=#|QYOz;*ok
      zD6f7;LZAM-(}h#BgDB_!eO91a1ku318$_kYy-h~0O>C5XgsSARehu%bI9w;(3e5fw
      Dr<YbW
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~+iw(A9R5yscDLP5FO;@YN)-yW+ZI_t1!XHx%2q1nT4<qOa5|l~gS)fq?ktuU
      zW1<fx#zc*m5MzKC(-<*Ige6M6K49V>V0iU~C*!Mc=yzs@-Dx{r+sx&h`F`K|e%Jl|
      z-uFKO*p6%zH3FS;Rxz=VNhb<+-q13M(}%}W=MBpq&E(QiC<4vrwDVdbtyy!4qtoXM
      z-Hsw6uu<+V_zewdRVdpF)TXn#W}8`yhm5U&k9i-H0+B(}GVMJA55}wD`X&UF;p~hN
      zLkJBj>d+_<iuX;_fg)8zQ7h0iW?IIPVrJUNpVX$)hCquvC_SO&O}X|q6?@(+2y~5A
      zah}4|Im32>aq>crR6J}{pq`ue#gii5S4FcxqgfcYwY;558yUvOA(@I%@dg!bXeXUn
      z7_#lWIbF1Q1XoA2j8VvGI#;S$NLe#w(=~EwoA!kh#;lPyED3qQEF8;cb)!%)t+`Q)
      zNi6Da%xOG4ujMt}HuChf#^B+C`kOpO2eNw6mDJ!IQ&~4^%QVM>ob>YT_bwSlzrdCi
      zxekERIc<q^Jyp)A1c4`P6X;&;gbL8%_xoRszk(zGjw<{Wpg;rbU|gR!GMZZ*ODn;;
      zpT)#+nNSu}+pBrgHiqc5&LW;UWts9Ru+}a5gqclDN<=;>D?OH4(2bnTWFd;D1U9d5
      znT<N`v}_s4PGV6wq`e-g)3$`MIFeItrMj)`?Zxmk_C~?p^R>DAO~pQ0pOLg-&Drx3
      zxL?IE4sc6nT@A6El=x`ha1<i~?NXkfd4F-1H7czRsu;zy0(FJrbiq+Vczkp;P)!PB
      zva=5}Tmc^RP1NEjkL^j@$rw^NuHpp7DM-uZ3~NSUYmkxCpDVQ`YjH|)&DngL6bScd
      znH*owkgrF}Wea?NPQJfV%(}<DAdh>I(=0x`QoQT1BkLs<8m2h_?W`M0fmW}&{W4e+
      zift?~jx8%B@>|5T<X~XaPH}253%pMkX9d=+KznBsYVy)~4YPvAv&Fn_jF@r?uJMoc
      zZ8BNPCJvzxuQ0DxIX(HK&;o_gm*c6Ps}a=jABgqegxWuF15MYss=*rG8)*w>SHWId
      z?4u>n?xL}leDW{munPW$aME$jX@zwjcY;sBy>S0^G=0Mtmp0;TjyQCx3-IU!I<THQ
      zQrJ$SrLo#yLZ@;WVdZM*>N1W)J`T0a(N*Ty<#9Afj^<b}$uS>ELz(2kRY)3wNlpcl
      zJX9uG;!QZ1W6H--@n&P0W2rZF!6avWBo%Kql}VNei3D@Z_&6#;y2~7646Ce}RvFg8
      z&gdo7cQ&h+5Dr~cDk+LN7?ZVk&f#+_r`3ya7){uWEljb%!)4~BE=GgpWqtB0F7~WK
      zQX5QS2a@z6?v-Dqc7I0S^4h)NGY*$aW&m3Qj2~HU{92%K0*?k5Z(nZwMxgOyc-%9V
      z3S`&Rh~<`V`7CQ(&1~8y*k=N}Xrb`=B=5VC<QqFs++pgXd`1RJ7~CUvE1{j?Mcf@|
      z3zsmoGtw4m9=wdr9m;Q5dkd*E10nh0nVUGYTj@|*j+Ah0auL@F+fxO0(uKW4SWgw$
      zgbSM`toJf{H(Xr(;L|QNNoe=~K&M=2bBA&p^&LuEq=e@u-wcbkaMzW8*Gtc$1B<Bb
      zP)aykiDw=g7_WC3o%c9U-{+Y8fTQn2bm3!k<05w86AsN!aR8V2t9S)x@EK<CIbOyh
      za`*zT<4e4aukaDRCh{6r-=c&Y_ysp{8{gp%+`^yu0eA5e{wDuF_|?hXK{p#-y)iG)
      t$;)i>&A=?%Ei44)*i<3vx`%m~%x69RVgqiW+IHNbhBV~-&Bz*o^&hqyaajNW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~kw66kR7I1d>}+z+lxXpa=vcmD<*dXc3{J0W3s7+p3pv46!#KO>QjAbf(kR
      z>9h}>KD7_Nv_HTHI#YD0Gxg1f{-{pZzV{j~BusrE_k8TV*IN7I@Xx=0{SDv@?uQXj
      z=*r|PiM5=SDBC4%<`PTO$%%(LZ_jCSMVF>>MJtS;!u|*5Lo;ES`AlMV`GHQ`VKgcn
      zm(#Vq-4z-clyMZgll5%p9Z(l*M4{QVtU}tf3v}qOb*R``t4eU}l_~w2%IjrY=cZN^
      zS{*l+DWhle8Hroe`g2ECT_Rcpm#dNK(0C!6&)OFi?)BBuV2XC|uC>^MXf3t=1%=>v
      zVMRyKfHnjB(5}$X*T2vVg_wabnq+mzKr<q;I&2^cLt$Sso7Xdy+_EmE%w<c9aAwY0
      zFiTn4dxt@LHCt9Vk^J8(OP2C_&Gxc%vae45Yx5MDSWD}ooh{_cVVoe)-bJojMku4l
      zz$tW6yA(!r^%-~rE!1ApHjjmgLc2%8-*+S8e%iosbcT^&Lbe-ou9CO2Iqd@)LR$nw
      z7&h<@&QhQhb=<6!nXW;%ux{woYN_z0q;14iz57%_(WR%h(A8F`f-;W*J*;rlSM1%y
      zXcJyF%QKEhR{M4o7jQ9*QH9RE6X;Hffe&zA>_0RR$C%SCQ&Eg#B8)2vy*2*zd(pro
      zKH}hb14ng}uhHqR)e|ilZBJM_$C*miDWf-(BH_A$tC(Ukq}(Yp6U7W}gfUw$4ZC{J
      zz{euq5G<MA)Ot}%$aw=vxoCFm<&?D}M3ja%N`;~>+3O0Y{KfYO`77@}aU)^e;(M{(
      zU{jW*Gp03G%2Y&MwdMl+iGc+yO6!_AVusRIq3kfaYv41PYQBWI!b2U#vR5Uy$!_M$
      zm140_vh~U=*_kp+)xZ&$Xj6#H7b>N+p3KUechtVnLqZW<9E=A3g%Cu$yc~Sx+vVMG
      zzI-+K4a$`98{ujn_S5<RcNPNN(>nePt?_|P9E=Zcq9cBK6L0>(^8k+UH^#`oC@ser
      z^)lm(qYYPZl&5jmA8+9pcY-VU%2^46fU^<~!jQAelP;bGx$AZ~T;+*a8S$q$nT)GV
      z^bTxr?_#&m511l@Ym9c?!Hl`~9%hJ${p7@Qlg$8sUnvvM7^4nuB%fpG)-$|4Jvi_b
      zXBG!v&`LOj$ic61jwdNJvY;(kq?RQIuhZcW^Y9v(y?5~*BeYQI`#8r4N@mkTUgB4x
      z$KrpY_a#EXCtMud0%!lpV#5>OHKUdJ+lhRKD(>=TnKvs$zV9F#ZX^$x?OP{*Upbit
      z&bxR`^4X|DK1N7+yGsg-ab9$|mzM)zsvT>xb+d4cEPxz;^Q>3_hfu^}e1VfFQFGbH
      z>3o$F2btbGYkJnpLBxf+rm$VnMn}`SFIJ=)D_KY1PmC`8F)CDFqDwwom{z!OB={Se
      zj)Z=Pr&(IZ1)LM9ex=*+-OhM?O^M&IQNCq!f5#?&MBwkygCCH<j}A4r$wobD2UwC6
      zZaT6!?LNUvPP<+5NJa&JU<<bcHHv@sg^hY)!T;%>GSkvAd@Fom-Pt(j+;D1LS$7n+
      vr_!CRU)VFh*3IQT#&c(3m~j;|*z_DGry%`;Yq#EREgt*)o2s=~ajf)zwooQ$
      
      literal 0
      HcmV?d00001
      
      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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
      V{};8u&u0u)VS)b}d42f%e*yExv>5;Z
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Bmv;aF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;(MkeQ5Iv)-o4V=dmYJ3LV4y3hJr_X;fv`qUNUvAB)W&*+-8Jm9dXS)pKA?|^
      zW-TIw?cvVMJ#%K5IrH)P_730}H5~~;<6g}=^NH69LSKqW=XT&+2|tj2{aiiwrYe*w
      z98B+|r$Zwg#<KrX3F+{`4eDJ&#fhspVb-au-0+OB--xF*hXk$16J$Wh8Au_WMH1@<
      zbmR%ue@gq!VN_%q*g%nxoVbcW{RrDMu=S0JIicXVN?y(;BkA9WktYd7XF3+%Q21{2
      z{{gjVD}o(6?5bwGWA=JF^T+bSjk@N4)onkDCqXd!N=d)xi6D@Hjw+!Xrx#DTauL*c
      zktE-eOf!-tiumbRW1r#3;cS9^$!;x>wOiUN3_H0%!A>k-y>KRh65Ap)!0IAp9U*76
      eVOkw*Gj1&Vl~Bgcl3Q8YUF@;Xa*hv&1K<l5g^gwa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-ESL35dW=xwqvs-UKc00rKAKm@n@ZcQXol_mO!Y%Ntz}NB_OM3XOmv#T+I1g
      zg$Eu{#a9&`Kn<!w%U2OtNENZEctG${B>oWo48-g?N?N(D#KYar&d%)2{N^|N_rJgW
      z4qyoH_~2sbTQ#ehjkQvyVp~#Q%Uqbwoz<<1w4$eN+cFAOTl%0e1TX7X^h`-NS2MGP
      z%d%)QXr{g<8A7@Jqj_>MS4Zj0ey>bt{z_REjTJ*KGq5EF&lSB?CB3(7$rWRR3`*-o
      zy)@%o<h3sumFOVD!Cbqf=w|PjVH);0!$PdRS!+tInx$4%e33GrTwj)cFdX1`9GwBU
      z5$5PZH-kGCUsNYga(LiX(m@ViQ+kS{1Ae7@nj-*j07ua0!!r*c*Mx`TSwtCphPf;^
      zW>+X=EE~@%*M5%2lxqwLAL10K9S$5xq!>E%Vo_Ec%uf9;G~%tbtN6z_cr*1uP7E1V
      z4XhT38PrsU?pQYa5Jy$%ab^BILzpUQy_%sbXP9!Px>k_Zf?g;&tWk|$)Gb5pca@rA
      z07JBGWA{l(OmGzqVpWzXA>Xa)C2|bM?hD?e>1cdO;W@!^3a9rG8)7*82*i}r5lnK7
      z;iPhZm17F8Q5~z&R%ES|^`bm~j$-%UA99!e4}m~klI3_EZ|vtl@QytyhxRCB&2rTq
      z^<x^dKFkp1+VLdnSaO_&pN5add}ycx=NPEho^|_@v>qJaUC0Pkomi<?Edto>`~&mr
      zRjVkc4Ar~Ny+`7h8hr+yHBD(vmh?(RQXBkxPX~cWH_&tALr~2ONkKI+&Pwy*tTZjo
      zO4N5&q9B<C)%4NcMPC<rF$j|Wp<8^k<`c;}LWy7TL?Ts3Pa<7MBoWr?IFyKZ>NuPV
      zjx^AF!W;IwZjueF<7gt8x{HB2(znq^vODZ;AmeD%QP`_pY~Z=3#T_T^3HlGyKtNoF
      zM_h$pe27l*5e|rt5fPuDSA2>AaSds)iDB^>#>MBD7GK~6@*8(*$>T-5L_5mYsb1BR
      zcj{M|<kgD-&5;xa9t@E02u4XJYT#tEW;RF|c*try`6t*Gt|$Khn@;Q?bQj}Wct5p+
      zH0{z2y!<6R?wUFw-O&bKnNc!*N*>W7+F$5R-y@(L-!nVNZJ{$Xr#!dd(P|Ox9#WyX
      zh~_8`wKr29HFu4o^pH_cb4MAvpfH<Kof0?T6Wie8D|Cxnh>EY#FTNq1zQu(24rj#o
      z$cx*!D1LwxKjH)N6RwIHu8E(qDemBg_{G8Tc(d|79Jeu#1;T}66XywA7j-C)MMBJt
      a3C!V5k~Gp@aI$#|OSA^ap3(fh4g3eh(VX=F
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95Iy5u+@x-sb_q1)(o)irxM>Z~AS6_T8Yx_)R1xaiCae-yj)UxVRsMqq
      z?w^3fgN4KcAHYW;W*r2oLLTgMc4l@w=Zt^;`u+pJU3fMu!tO9kyz_D3#X3@Q?7eu>
      zc`l<^MfHbTM}9xi>X8}*Hu8kZsXUWjAj6^etbeKonvmD8Un#;`=U=MJ*TUgFLg7pX
      z2`5V#9%qHrCM>Ej8LLQYe-aXkSvDq!X^%wvfp;Y1QCDehvY^hjib5F>=!C2F$dBuH
      z2pgSwgY%{0eLwW|1Hz~=zif8o*+_df^q(nDnmu;naPm@>K&U!cL8Xiwt~gl5Iw99+
      z_Dp8OK><a>t~s!$?1qB{luT^PL3tY6cCZM?#Oe-~uuNF#_@R25jQc7&mi-`ed@_(h
      zPe#5u{|V-eJB0b7FD{jxDt9MIG*FLy({uUn@(;{92~Il<Rdg80I99QZeZu-Y*9l7(
      zei&@=_&NU3Y*dVDW)-73Lspz2>&=kWX2@E(tYZA*Gx4*EHAcbg3oLdDXt{eSF1g=u
      z*=?n$x%(-uy48G&>u#-(V$-b^Q`~f`c8XhHx!%GKzqid@@fij21|{(p%i<k`c#oR+
      zfKBlcJK_^|x$cN(<Zs|M8jOaS*{zJ3>5Zb6*%<N}GYSeBGa8JVmf0A0vC!m`1s8ja
      LWmZ9)I{<zIeO1Ac
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$U2oGs5S()yyGfl7Vkl`Tr9es(7wYm1LPEhvk?c^ZQPd*wa0#d2%DEuhLE&fd
      z5Fzov58y{3b_0U&5Lw>c@!ol6XMg<s_8q`eoY^o0jwX8UFQ$o~<*AZW|1t{CWtyq9
      z)t%{F={%afSBVW%pnfesNk5T#;=dVPt8p$+45IVFm4N68ROmvMOPvp8GFJuSfI#78
      z|B6c?U<Y9k1^od-A}&U~%itA*0v(&inxk9@nEB_Aij!IpLnHjhdXcBGo;(xSqLxav
      zOo;idfR%rUv(}lwUbtx*x@0|%b)3HtIB0J^*6R$3x=S;cNd3Np9o#OXfCC3j+#`wY
      z&X7Cz9o&G$)k6oh-_?<WIxK-&7;Dv^Pe&>p$WcPGG{V_fCPSIVjQ@NzS+&6NMlt_w
      zfCeaE%;xD>y^i^p)xV26WrGBqp4KYuCNj%ZX5&<#xycMVyuMuXkQYUZDASBZScGie
      z5w-}I)-d<C*D!lhS;JMjMP5(@JF$x7(h4`=uJTRXqGp|aB`oM|VwdtBRqu$Cb?ka4
      zOWg6k;;y&9#Gz*{@qk0?3pEWqqPRms;nq=fw^4E{sJd0SZVkt)p20ss8y(7Au?T}6
      SkC1^AJf>VGQh_J%P5c5oH<mL1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$T}uK%6g^irH@8jAwKB`H@IejQdM<hq1Yt{|kY2}au$6U$-8KAMJxI_)KcF8K
      z-LdFFkYVok+&TB$ukVjf09QCOks>rkYUa)-p&KWW6chL9&g+XPmQlSuRf$vydr9Dj
      z(u6@MjK!;PL!m})Z#b5ILP$>nMWC*>#GGLIzwZb|Z?*cGkV#&GxPD2fc<X-FRX2eO
      zl3PNxvA(Q1AQ<iGv&@2#*|4x>A&sI98xF&1GzU7fYhwc$ZSC7Iks;*0K*{^rWGJIY
      zF$|@KI`u_35K*B0zo4O^5?X5!tWw0lt%vC>@?|H`U333rUT7u=c2_AGwL=ldGB!~o
      zl-H5KC|4GM8jq0X)fs$wB9_qeEcGU`K%t;HV4wKf*k+w$tAi9Dpwv2FAm4h&PRm%Z
      t$71h|<0+I`=5%kzL)Pgb=k#&FF?-pmgbEIqbw^8C#W8D(bA%I|0zbQ+g=_!-
      
      literal 0
      HcmV?d00001
      
      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
      zcmcInYj_lA6@Dk#u$#@0WCsWY8wilXW^;oeEzJd?A(fB|(O@8fwoEodSlH}_-3=0o
      zR%z?4YFqD6v{tLAZM9SqZl%^+(W<pxYPJ5*AO6xG{_&50`uLui+1c6bZb6^N=Yf1@
      zX1?#7_nh;d^PPR=tt&4A*nmHKQKX=DA~xM}d@|aSOeG9`vSn|7-=LmI8i~5?@o;Kp
      z%J9OYpz^SOOmB(mv5A&lV~34!N`WsCkEaIoNkf6wm-#%DN<?B4?fgD9Jr<3Gd&Vgy
      zXObyn(iDxTF=@n7Nd?u`sp(WC+R_(^9Wlmt=*dI<`ji~jQ>kbqDcgM99Z5wDilwo5
      zN>4@NF?k)1Puhx#ry_je<-UZuttv-xA5~FnrExrEBw~8B+flj5wO7m!8L}~u-Z+pk
      z=+R^Gm;$9o!GhGGNV0Cdg5`aMqDLhQIwG-1YKwxQVBu}Kk-M2U^}`B0UGZ_F6bfoo
      zEX6WEim_5fHEI<U2kVEuSgl~GnU~xM`>_fu<?O90O5qo2or*F`s#l>}QiF<xmei!8
      z+>%;URKV}W1_g`fYnL$lvEEYsP8F31cySxUnb~N^*pE%tt~*p{SR?@2RV=ooP8CZ~
      zCGXy)q67;>+NQ#5NnI*@SfHSSoG}KbC&!G$Zhb6j(l8#@qr-Y4BG2|qkK{_h>Vhdq
      z^PCwg*T=`ZEq-n{!cheS!JElOVbxvnSc<glXQra<^}`bOUKM@lS5Ow_H$4(d_8Kz^
      zmbeXB71mxqT8dqGj~9c?Qz4$!xlO2euSCX^B7ObX4U*t}3YHZ*t6~rKO09*%MlxBq
      zQ9<k5Fty%QDOS0fRVDczRk08IX*d}<!90+DJp%n675CzRRIpukte#Pc!I+9L*cXbY
      zrrAg~=keVY_H;CIUwLsbO>wg`S*_>J=}2_kNceDw=DPhba9GOX$h;uieM*vIU{Xa4
      zah9w;HD$zztjUcjz14*v%T&9lII1E6=}W1&^^x@vv}5K%$Gz(@t>Tz)pqPAP)M926
      zEtwRSun=#OPHbm9zAeS3H#VIzEW+-}gF6RydtnP%>TJe-K*a}fKhaJY%+^}Bg~GY<
      z;lm97Hu3fW6%UHH?AR9L6_gmZ&$_jG#?5jo%)Yv8VC?qx1wmLxq<|Jm=}K3hu>uiv
      z!?Y8a8;H^RVIMwCpoTQ0X@)cs>$b@{G(DCShdc6VDpXQ+>C-*q$#!ZdyvR6Nv9@r?
      z-6z=9=tug}5l?*h0^#xA@$*BMb>;bS8jpK%Cf!&~diAi=Oc)7a;aQ=2Paf|1@D(Zx
      zGyYUI$ct=UKHqZga=A>tmNf%d0rlZ2s+*GgP*0fT@Qmvzolfw<?xSYwV{^}AsJ?Ja
      z+)YjHZR*P+z|D5%w=t2WuicAhn52SP&DyMBQ6!o5Mo$>5<C_fTs3h5%ZhAP4=&5)@
      zK|Z>=8*X}MdnumB1uwqO6lX5gu6Q)cnM?*F6|<NlTe|xPcaPlL*E6)6;j@Tuj{%&7
      z%5Vu+ytvF8FQY`dxr(cJft4C@fK{b?n0eZPAzl1M6+ggB(%w0E&2VrcAG3DLELDad
      ziK!p6LNlh!y`@4Dvts8p6}wv9{I&ax)MwH<ldhTqU7gp=COkm@h>blVjhojlt)}Zs
      zLEC>v%d}A`ZZCeNpspZeTw6IGN0Moq>Gw<#k=O-&;{ez(Vde5vp~|h_m)qgI_&xcW
      z=K~XB<}Do>>C{(<YA8OP2pe}rWS}Z{ehf5A@)W2&v6zwQit5Rv%;R4BCjx3Yp%wE-
      zML9=44s4VvWn42?4r^RBnKR9mQ>M9c#xz$>nC8m)(p))Rnk$D#bLDtwt{e`z7RhKx
      z^_4R7@_8};S7SNtzXMQ;h@ymVPK6p~aZBhTR)nr%)yPGxnMGYjT$>St88MU*8#7`v
      z#r4$CI*W}IH&MKO7Mn9-TgWquj!@$)wuG8yu{Bi9=R41vShw@<7S7Aid??Y1Q5tv+
      zivzD?W#CPO0)N4#z~8Vn@OShE{)yqhzn};HjcDL49Mwv2Ok05aG%vcTBLt6lg}d->
      zt|Cd4i%d!4EU`Z&W3jn!2YRe{;AuX~$==Wf)HTdu=V^G(HxcSU6W`o&2}5%j@jL;q
      z=Nvr6v$)&b*E9!x52cM)VT@=K7ZKsn=p3fzklK@RYz0#cO+%Ts2&%Ri0c{C_S`}Kg
      zrP!%0a{=#lfcN741gQulnN>{}dT|^xrVA%<pAGyUd=}bF5XM?sKlu_?@n4&#+H)Pt
      z?VPrG%&*lR!Fvu1t38dji<C?!Ob0%caiFb4+^Q~_!>Kb^n3mm6HS<>xwAHB8)?kTt
      zD^_T0(WnKnNvp?gS_oUT1`KMA*snF=pw?_Uxy6F&I5~lbY$qr15!=ZLd=wv}Q<a>#
      zKTd{wFh~Y}f?tKN595=z<7e%Rbr4)IoiS6UZ?3F-D&v%7rRFqL?%K=~kL09iGgEX2
      zQ`CkktsTu;2UFCEc5RC*MI8?M4ktw&PKrA4C=Qq@dKi!WACc}L(jFq+Nu<3*+DD}Q
      zL^^Ooq@TfOO)_PWel9Q4kSnI4hU}PrK5tCh^2T&8k&Y1QD3R_X()~nwH<8}+KOp@g
      zj@U6h$?Qulw}wV8pkvf?fSu(MzSPguHZ~H6ivV9HSi+Cyl%*yWuNkP&4x(C{zy|G*
      ziK*7o?Bu!C%r1u!tTA~g-Q)>;)kg9dnJJy4GaJbOku*1zT*H$i#SKFvo<=qh7pSij
      z6br8qs5n7Qp-wxB4lUsdRHp-~6W_2)rxV{aOQ!<OCOiqtIeg28x0T5jz(RUyZ0rxa
      zp5t>7w)3yqVYCybg(_>GV?lN3{cU{5))wU+akiG)T-|1%={mg1Ig~Xq(6sP$#)4n8
      zY7f$%hg^QtI#z0(7Eo)qfC^q`QuyM>v-qxUIbvI`$z!?r9DHJV=QECDmf1&W_EDGF
      z8pmvnW46XITke?s9-gz!CTLcG1hdWdH(p2i^EiJQ7ZnCurSWT*@k52@(xJ83b%qEY
      zXKy@<bzJ3!ve*@LkOXZc6}+9rZAsQo@Kf7<C!gg_DeX&_JDD+H<?bn0?n)h{rB3c%
      z#`Qd^r2YLY6D>>Cvo}!nbG%@yx}B?BO>!{=b6vO8&6?^|Yomkg75u_h;%25a8}jCt
      z^S!&~f}}b+GR%B6uXoaja=d%lr7B;bevQ}i0Fz!qU{B5m_Nq&p8<^Zv5}DuNw|TTR
      zTiSj%U)viu(Du3$`BrKb{XRy1;~f4lU(;VrO;*r-cEF1822T{>kN6W;zo}t2-UR*w
      DEhR!4
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqZ*S626vm%ZV3n?8NC%tf=0B#iY*b%kOdRnK37aM}-Sk~4H`rNP(-yO@W#U|-
      zi66iZWjq&fE(`U=y|?%DIlr9eocrtd_n!bBqpd<A?2N*ReL4>8B#nhTwvYGwZ`?Q$
      zapQR)#v)9+QJC_v9}PvIB2U=P%(yHil)YId<5J%XL_(<bPu$P0JxTq*?)%|KG3@(E
      z+94=WOrZCKLM%q&lu(%|12-JmhiUAGBUUY?AN-{8h*0lm)gV<*{LoLI5;mLJGSeaC
      zyX>h5!gU?X&^6>>=vcuTVe3DsJ=0N9Bdjg*qM?cn3AsVYHBCq2Z|W#uiLlC+#ld7e
      z5b;}g5D4iq^4!32V_)9q!Mt=yXlE9`Xfo`(;tq%N3H)t2VK>`I<BGUrI<orvIvUvK
      z>KR9<HZKk0_25K!X~*O_Dc&c7m0jXhHbFa#Cb1`8_|kak;+eH&7YTYV3`N`x+$0f+
      ziXFm6)`$tlf~Sc)-02)Y>^v`SH}8OoYtyp`4Jeo8l=-gkT0x2RtNhjDEE!q1T4yL*
      zt-?7f)(=$Qon!qB^)J(eTfCPf-sqxWJj1fFhfR*@4B=F4;WnS(BJR$ydkmFW&H9RZ
      r>l^MJ{Ud4ekMR;k<JFW>n<+0S8Xn*wa}+e0pumJBNgN@xunYVFB82KN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-sW-5Pj36#-_1N8?Ck4k3$8Uiq*5?r6?3q5tQO}TNjNa8%a{BKg&ZAJop3r
      zQR1eG2qhkNX7<gSVdl-p=i57gBeXPR2=<+r_GZ4<i{g+ozjrfqE?F4yuzlt~#?Spg
      z#9YL~;FfzDRKjj5|1XuW65qQ~`;bs`(khN6>%<jqd`hVArPDeig4&l8<Uq(9$YMo@
      zf;9sg3WUZ#rGw5WDKZU|P$nq8D+n}5uyq3)-x!+_ijFJz#nd13@S2T1PAEIUgn1(t
      zy2<|sRFka;`>De&t0uS9uYzef;pcABxA3d*!2^3@1Y;ls5BnaAA|7dI5UOd45lTx}
      zK}#;9$cvI`CekF4d>U4z&&kM<*^KlRyE}(&ca>KdwlYUCG1iOBWKfZ|3>C0i$Xa#e
      gtp-f1iA{+ci+&YUv9;jV7Iqsu((5uOkB27k1y44Q;Q#;t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%Sr<=6g_Ec-?nvp)oQ^-ky^n~aHqH_3Wc!>mEtzjhMF>ykxVM}vs{Sa!VmCE
      z{0i}=6z!&j`^Y^f$-O6EKOdg}PEpSw!O$3~i8~DgH#S=E(0#b^?zoPHZd^@`(2570
      zVVpsVp)%&r+zq%IxwrmU3=Bi|Y2pWR&>1o~-ap(kTB^}G;qgmsL}>A%iVQb0Qe7Sj
      zhO~K<apQ!c<}GW0&ZjS=lID`3-ds*Q>@%d=(NN^TP%a{ed>%=x6;Xi0kZf8)*^^3i
      zC!sI&J@*6Z!11C15Bgk7yPp?Rwk?K(rLQfjLJj77(L@i#wX`>u{<J%`TF}fLrG#z=
      zJdOovxXVyoHY`J7L2vBSC`tOI6xj;W<bljQW^Jrg?3`3(WCau{u2Ob}1T7%nI(kE?
      m^^VFb?GjigpSE1*8yl2cKC!Tgtr@;O^HuE3s*KPY_JCiAYl98|
      
      literal 0
      HcmV?d00001
      
      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
      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
      MElg1|6)PP721*m6!vFvP
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqZEw<06vzL!1G;vV!RpwYZay)kMOS@|`a%*TNtsJ9sC(rFuB@|MlD3$ADBqYk
      zmuRvNun%QCx2s4bEKPcQPygq49xs0XJO}U;o(_${9m<J!G77yoi3A^c@7w+Xk75y3
      z+rfz#G{-U#GHH(oBGi#%*j=cfl``ZdABmX3_K*1&?oE;)^j`D$s3VdFLm@c|;_4HI
      zEq@VDsh$NgNM0~(*A~m1E<>(K`59oiW<kfYi6yLBFi>LHxx%&ObakvTl;=`3QO0#e
      zSZ7$OIbFrxu#iWAVbu?$*q@AgB6`bvp<r0^$9*1lc@(I7X3VJ)86GXne7?a{vd#yC
      zed-*;dhN1vA(un1lSF|WHk__X?6!qFxJ!wV_CMX5-m&N>4d;-0q6VOHON*POFj##W
      zD-UFRMW{m+>Y;_23bp*#fx+yICsAL#3RLCA>ALKxFhp)iDWYb`<5<Kx9y4q%8Zh;J
      zZpElDs*BcBqldZ;luBx%WKmWFCjDQbuNK`kIyc<<DJ-{MI789>h4P0p*r%v`qhA^}
      z>0MNgb`N>`BUWsV8)UNxLax}tO*(;F*v_yo)4+h~en+ML13T~jkxUiP{shAwrj$yW
      zfH|d@xQF{Gxr*J4_dMen8SlYY3U`@UK}qe;Gbm$<GBT6~C)K;C)2V8wg~A^22R<Lv
      A^#A|>
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      W8DT?t#s-~*z)4g=@-Z1i?*9SZte#o`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g@**x-CT%s8B#eL~Z$66qG{IXcV+sQBy*q@ntDvS+m`3wu{26zep2>
      zL=zu*@CW#FjAwRBi<F2y?9QD#ckVs+oI5{$ef<vLI&MeNCNNsIxAmQhrF*Vn*WNg8
      zMZZ_ATD$p5)p5Prs<SDh2n!6i#;wUp)iOM(Vg%ZkOxyJC2!zs^b%F4GdgBNomOupU
      z0$l~umaE&94e72K8y0VL7o3t|tsAbX_H}32+cIkcV};gw$8qHZA|=bQnd)x(g!rPj
      zYsuP{lwK}#!tqh~xi|!3G5)#}=s~Z5R@ySHO;_3iBd1>u;d}yT&=q6D-6~BgfdQ2!
      zY|9-_c~b)MS_2UIJR#{3z@*WYo<MZd@!J;gPHD05)_7;^_)^+NMb@fDN$M|FY32%!
      zTh`ytmh?@hqARs>`FyLd)uVKbFYlCO)iWKt7R6<ObhAuzV%834N4kyhIIiGY6jud?
      zTBU4unm`&EfsV5D4h0c-p8l_HUj2i-AxtDNi4o3>q2`;?RQ$Oe{7WhFUvg}Z68h76
      zoJERMbvUddPs>uH(q1(<GK}s}x);q2%e2c3phxqZqUZYC-gL$<s#}I#)&p-&!=gZ^
      zk8R2f9v|5+I@@kZu9)h*B#%FUX{7~bIBp@nXdujwZ;ksXEuE`Sp7DKXpJ=op&c8ZV
      z&%cBJL=eEWlRKyhrbk`=z?3TK%r}Ua`#Ae_{4>rSpledC6MIO0K_AWjx~o5M4NiXK
      zouJMDD*^M+kY&~d3}O+Z$YB~we(jMUf1~ychH!z^H4eludYJ{dh!L)rXoYz)>LdHf
      zh!{QDiOH$(9>x~6ly-ogl*WBBoQ$N}Q_($)2jG%w`SYO3#JJDL17=%h=PT&LL!w+^
      z^+%lDJc)gbIj-|~;v;??)NLTn))5m6rr4K4oF(luerH*7e8ZO{i&<I`|8$P0ikB>I
      p(uy*pj$7<jV}JAX2JBC9RVszL7n+0y!aX}8T&NC3kXA+e(r=`lR|^0D
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_gYj|8$6<sGY)0^D6lZG@?dP|>LFv+9@C<d6c1sYNa4QU}IX;MHYGdIbUc`-9-
      z6Q1%0feKn4t$>zS5DOG+l9os*s8ta`TR}xpP*i;5^N*k6+IMDh(<GGd<MT&)&OK+J
      zz4zIB?REC_rT;#=7r^oOmxdyRMLmhW+WvT~Hk%G5GTq5^y!P}|DmJjzil<_std(g=
      zMl20(g?W=D3qm5JFfC)ntZ-JLqPZa2p9*DrYa9Dh>3Ris+!i~kc|&MpsNXi42*s^T
      zDipSA&u!t9LdBV6I=jjm$S9QAg0+3wXsot5n#pok-xSUEt_h_>aqgEyGiO-cp}rVR
      zs!rNp8cjsA%N1HHr*hyhW+xh&_}y96M)w=&z77}44U}Srf~&Hstpo~w10GD1*^ve`
      z6wAysPy$_MM;Y+uW^)Y~@F`4hjwY;@zId0FUK{F)F>>Y2$#5vv7D`9uJHP18_C|Tj
      zW5(`sxC}8io^ULgpt94P+dC&(vjZ_J(`#AT`l=}uj!$I07f0h08jevYl}tGaFi?pq
      z1|k!^jCOeaCJh0F8IIKH>2zp7a;2jhizQCSQogdOs!fz0XApKL@MMq0l=-=w3v?`$
      z=&4=ZwSnNN*Ki`Y3ixp@KuG9Vf;s~q!$}G!eS}L=g?+bE3<SY|xk8bMxG~v@s!k2d
      zn7YYsv={KFV<}D*XHHXC_7R*JQ&g{G1<ugWKo}J4Ib|aj8Wk$1a&jz>jyRPmoGEdi
      zF4$`_a5h%4sKUL`SR`#F6c&t~a$<W(_66bRh}n;qaMmPh))+Wf)VLE?e^yr4uo5$4
      zh$1yip>!PL80whVR!uD0LVXhlDyrahDq4_{7G!9Vq|HGJ*$;`Vow}*1q&b=Hsok_B
      zTpLNoYlWcdo0=xCO<s{w*Bkr8Rw^4!CNdg6#qc|fH7;re!nD$3;*!gdfi8p@bZcWM
      z)<+7p(>H}TQ=*^J6;3@hBx6FUbVNhXAv@%dORPw))VfhF<+Z`UC5X{*G;5_p*<@N_
      zW@X-pO`=Wtbyh(FDGf<N&aqY4m1JK^TZN<Jt5Z;)F_1+c&9I8wctd&|`v0bB%D`;m
      zgJ3&5&Yu#xGhpB{6bm@{favJPDRR3j4P1q*38mgpriG{_v?{AQOK=UY({QcAoI<HN
      z`E&ql;CkG^3wA{lk!YfaBs^ydfUn5!vgU5WEgEiCm_1o*LCU~qY%WaoWqQTS4H|AI
      zb*`UGJ{msD_rpQlgf~*G-D%)+_&o2Fk#adcM-CrQ1`}gePcjyEzDro*Zd%Gyi;WNm
      zZ}nAe8t&!x<SVu2UT7WnV4Hz2-~t9;US19NE6krPzpk~pAsJ8c)g~r&+=nlU=`Zp2
      z<4xNyytwut9@g*>iP?ds;}*g92p*+Dp%I0uNg8tT%wMKpl$Q}6d(6O>@i?F9NHW|P
      zw-VXa>4=qfd}F;#eO$v1qHkge>qOI&2A;xB(in@OK%*qg!)9cnp8C!YeUb&Z&lvbB
      zb`jFyzBH+vw`bchk>iBDhYgHKQamAP<ODB!3_L67bET3gQIJezb2X7l65P|68e5-N
      z_`NmS6(i_H`y}X4RyfV#q4AM&xQMT6#kdd_D22<4hUZREMb0}&hi&CdZYmTdc@-rl
      z*l}PW?M{N6P5~|dpzyh#LVX^q;sBY^XLWZAoo=+wv0G8M=-?J(si&=Oi(v?h&UuH+
      zUsb2D{6PcX#}9-L4@x2M9~TZX!W%>Myf~X|&8F=r9!jIRRW><4Wdxn@=9X9V(Ytgp
      z-eiktr*3h!(1h!F1HX`}d22$$l2<5o^9Fut;8%EuN#bcM5n)6s8^&|#cr*3I_>Bb5
      zZrPW~>38My?-XkCHD&W`LH{@`9HK=I{y`4@al*lTJ9ilKe`XHl7lCd3Jp(_+PZ+<h
      zzHWtCA7qZX;-jUvCi~K1Yh_e==OgV_p-_AF&y`~(vN(<v@8T~V56YxJ=d4V+b9-cO
      zZjbED?U8*sM-TtlIq_T>XIoHYpIT5of+MN}L#U{(8N$r!#Y31?ZMugryV~y=!knim
      zTZDQ1cOLZv4RB*6yZ<w(>nzMb6HInt^RbG5!1A0<EWkp3fus1Q?3s91WY5Gu@qK~(
      zcA!3)iI3tTJ2T4DLv=gt$-Q2y-i2BFF<pi|Sfnrrw`<ubsypV4pr*xD=N`oT#j@*n
      z??G)5_F+k27@ypOlZ()Py<7R+bGE<#HU(zqw9KBYCFpk5c?Pk-bc>kZlh?D9dY0$)
      zc$D8mJ#URdbx^2+Tc>lJx!68KS5^i+{61?x%1nDgf#xB!aBX#AZFO$#Jkzt27t4jU
      zg+T;X!;du#@wr%p^RSHLO0;4<*22R1Y<${q1INv1$2P3Pc69KeXvgE|#M6}8iwp2g
      zT!;g>$WFs~HV|H8SQk<^Lr7g~8CE}Ib3S#6<q@8jG%RFqwT^3UT1ru`B%~L|*lQkI
      z2++nVJ2mTRrHEEQ2}MgxlIu}gl4R|akSzAQ{hnc594t1A_p2Mt;ujFvs;=S|BmclC
      zx;sYD8!VCUJz#en)CUnX^*x9yI<_?EHNAnFypnX#@H~f&L7(Y!nciLKZ#8{x(`YqI
      zOy4jrZ<k|NC~SNG#lS9nnpST#ONMc)sH`4Sd7G$oov;s^gNEsKpAhtkuxXe+9=Kyn
      z#R0Q;A0ojL!IW7tf-OOvJ`!_h%aC)`OOTn~ysP(6osoCdoMvjn*eZLrKX01)DDD%8
      z%o@Q1yRm%`UQ>StgPe**0=Ul0-8oyK)eJ)8bY{?S)%gao+|>QPJoLU2EDg}nQr9q^
      z2u?Sr@5kJLSvrKL&FS{K-{-#A@68z>y56V!KEHSS`!7%%W9`kyWH&zvKEDiyxI5&O
      z^(*|{3ASvd=)qBlvH)Yuc^s!8iAEx#6_*kfX?Fb?;v&nHI9t+9xE2Gr4VU9yTtPfu
      z$*R1HFZckS!!`H@cVESIc%7(yhcEPdxEcS(E%=YLk!(J7+^XhcvpSm1;IX(vor*hE
      zBU`>!Y*FiQm+Ihn5!<&gd$cIFs*TvDF5`G5<!)jhwwe9a-FR5tk4Mx)Y?vOypxVLt
      zQ+Q19ugZ86VzPjL&T{ydwLA@RHi}(BL!5oh#=p#@I!HsDJ;z<r4`+Kh(@?4&WF<UL
      zya(8x?!yZt!8)A5I(d;b)5z7Y^WI)sn#)>zo`lwcBe5U1lh|&-iFvtu>6xr~8MAU}
      z?I}0NKRMy!`2+YCzD>=qa{LbU>UbMf_E|5ZScaGIT^Nj6FJ7jnUPi7R-xDor1$~e@
      z_A!dpc!fTfGKTZ1X_Za-e9v>lN<Bq3{q_?U6{IE^NK6N|!sFh-4+1D4gAM$12H~$M
      zR4Ao>XiIU$2K&2|W1Wb2u1>~_-$U`&CWr?{@cItoEysOz_QSM;k$3_Xc#^T%$^V3T
      z1}76qLCza6%*SOn@AxdyIZAZyCKC5bj(JCUIQk1Y=Ilp|gCd*Fv*T4n#w*N}Jiqzd
      zzs$SK<I_2cH#*9HHiDlw2g=qD<L!3WGG2oL@dwI(J&fPB%dIMg@%whSY|Pw`d8}DI
      zP*x+tf$~2UWM+y?pzK0>c^H3jxIM_K0&$@;vqvz;Gno6?%<n?xwwk%DVHTG#S0}OC
      uTF%@z;vibc*5|Ww<c<q+p62hU^M&{;{>FRE;Pd-;#;%C-e^9On|NI}SDuv$w
      
      literal 0
      HcmV?d00001
      
      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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
      Dh~C15
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKU279T6g`uq-E_M)+cZY4+E$~r*{Z7`eh^y~L0>|BND25j*-n!!v%9jHE%g`q
      zs$eWA_$v6L#5>bcSF#}ZFmvzB+&SmmkDtH3eg|+Lw=9$xR)%rrA4SqvDUZkdNgDYt
      zluE-vrbJID3l#?UfFE*S@_6XK861c}F;s(5DECqkGpu!|A$CRdPI4u7l0DI3sKh)H
      z4E63GpdN9=LwYM`e9SQWG>k*F&G35TUvSeP(>Lutk-j8y8)Ymwuu&tXjdp(y42uqC
      zFsr>K2NtT@JMUl)RfbwOjKxkC4Me)j2hxa60xtVJ4fXl-vZ6*IsV+)AUp-21CXh)?
      zFwcwf>Z$iqj7LJKPP-uOzo2Yf#j1ss!j|Rh?O+*e|3{dI>DW}3>$-IF4EFd;De)Ib
      z&1FK-y(CKm@ha5yTg+#1R}TR05ptPkunbpsf;?CE!C2}7*%B=xrZ|T@N#_dLhIfo}
      z-sS|ZcYA`mcV~jeCllSIy-8TW1B!e|y?lfPJjN29-~!!xC;xE~m*_-DhL;&nGi$zv
      zo&ck38JAC)1B%mct#4p&z0Yuez+xXTuiecrxI(s0t8t8LA1SOvB7nLf+d>W7ME(q`
      X*fJuTCs1c1T4>=05i#5}f7gEl8~)ld
      
      literal 0
      HcmV?d00001
      
      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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
      Ng9wkaxC`*({{oQ2!eamc
      
      literal 0
      HcmV?d00001
      
      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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
      a;5f6spuFgem&p1ZeoxZ^e{cf&<9`8jTNq*h
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~7(D}pmRbcX#a1rjy`{(^RRN25LDXs`Y6->|AC~O^Yqq=1cB}a6FVaLI
      z(Zoj|^gkKT%vOq)=tF0|{pOo<&Ucx9|M~eVfJ<14qDx?8(`_2tHOB~i(`{^ce$80g
      z^1Oyz@v1V4h`?B9#Hy^-9W&4|0=)~iYX^%0-PzolKxBzG<LE|T0zK#z=r7x@Txr(U
      zrN3&fJ5nH7_AJv`Gksfqx15n+%Wjaa+{xEgR21m39M2`l&Fle@mEf%-8(UHa#oPhM
      z`-K<d5a{dUl1$(j1_ff)mhDu1=?aYh|8h5m5;%hXKBk&fFqs5SD42*Vw*%$P2*ewE
      zf(}k?pI{cymw`aE>fNf>owowPe^M;JGGCk9x_z!$la0D*N#n^1&0^W}H;p$1%cy!a
      zL-n#)Ds}ogJ*tE8<!wvW1KV>OQJfLTwrSc^vif^oq`w!gx_&N!^B8BF%rJ*YjpPEu
      z|Io^mEzb>DH9Z=C3uj&G9w$STXgR7oy>*jaV)P+Z>WaPY*zP9#7kHJx*XCe0rwI+m
      zbT^IATa2P0Fr<>%@4nsK*pPk<SBPur(T`&Wvub$f1X9^foZOm<xRyW>3%tZcrCVi+
      z*`-d>5S_C&gT(}<afvysH#Y>*9k{Jf*1zI4eM{c8)m!Or5C4>sP7Ffu1p^WO_`>)d
      zrDbpz$}_Qx*asS2h;voP>bW1{ng|29ALbX-^wOg)zayjqo&Eyxd=~?cCO+cmH}p@c
      zJ->t0Cmg4lZn@H-Yk2ZK?}R)j$OOzHhB>0nV;I+PniZPDg619%@%Ol=F@jOD$B@Ms
      z28jZk#5ng;v?4q?t(E;?M2wz7s3@fcO<qhzQazd8OmqilLtW}1o&V#YU4$tu;SK?p
      znfhHMaSubZGq_L65-0Wn@_5J^me{DWj(!@_?g=im1XBtwP_z<UKn@c+u>$W;>W&m}
      zkyejBo#Lq~OM%D}WEW}zS|xwUdkSOp3uc}tFYn@NIY01X2lLPJ126TqgX``3CN=nD
      h_Vfvk;wjRoXqiJHNK0m%|716ClN18C2;PO;zW|n1PpJR^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZF3V<6n<`#=5=dpY_LlOD%P6xZHpDHO@TsbwHQjVCAA9bHd)fu&2DD1fuLU;
      z#~Je%_yv5`83n5|j(*{TKg#jBo0lde$cOAb_ug~QdCob{Ir-<`-~R+~4tK&B5I9w|
      zt6HsOX`ZXwmAj5x($<_($*{dGr(lE;6gb_hvTKyemhKr+M<BFf+NO6=AdpJu1cGZk
      zjUj-jf<c4?hO?$^Y*kAKhP$gDSbUMlI(gm7>8>gF&BLH~XjTNyWPAN}K*|UV<}Jsj
      zmDN-q)gAAFWmFCg!^@=mTz4YR#2^rj@{>^T3PuGY`9sqxxP~n-@#4n;oKWx*hNFx%
      zA<d`?PD(RD+o*Z+R27I-+JKnKK1MqLGlQ<-34{yI<#O42AmF_q#Ozo4J-y}^(AG;v
      zrL5--?dBH6OxAIW+Wp16R&Yw1EL3K5v-hm`M3ykNUdtP0&vfic7;gxqj@=ydWVgi_
      z!)>ca@TLI5cuQck)BjZ`UzMbaBaN9brUgbiuO&PMvzX&~(eQ5Ew+*-TL|`nH?t<C6
      z$;2@QO~C@r37p8g1{vA9+i>-wbjU(J=XFbiEC^sx!8@2BwRD;H7~aKF81Io7EiTr|
      zx_79p*UGMf_pvMxuXwI$7jwE*B^9SqT?qYjr~Tq+mTnid9bef8yrSR&*epX0z)flk
      zq*J~6-ElWnX(f$S1($I}Kr!u#;d)mLwk~lj^}*2(*|W*_ZC+Kdjtz#!Bp7yKP4>d`
      zLhCU=)|dQgF#bQBB(?L7?Xf%j8SpGY$^Wv$5g;}xS+Wa5Wu4tf?YL~I9rM6q&RM2=
      zjkG6vQ^uDCCr>_fh25eBr$^*&n;NJ4>a>aBqxEN@K(b4<RS8=2oJMU)coI$aNms=q
      zknObNRNcI>VanMz(lN~Dr9Syf(45IYkUx%0?!%NcuIwfZPCr59X9@#|@hh)^^N91S
      zG!(cFaR)h#cp@KvPm|K<!XFU(PcU+Q`WL+X6vMM}oq3GpuXvT>So3JCaWp>r6W=ua
      zoTMipg9uh=^#aCm5od7;^H}wLPc-beeJ|iOoTB##QaFuKS^>^rg6r#)g1k8^k%=-j
      zB=&k@ayg=g{>Icp#MRJWn0kbm8ahHsU^&`=JE=yGFwcF=hdn!&3?>KFn0So0)!1)1
      zPXkdka)itPRn+iPB-D^f;Ru%k*n5N_xjn+#0QMTeCgn2Iv=dUpG<2NV9FoNKA+c@}
      z|20Ou$%sC}B(^YzZ7kv@mhdrivdvuVvRiVLKEW;Qqkzv~<2I_egKzOUzQY&zf%1>|
      z(vS8V=7}-4vsG_qOP+l|pE6r@`n%?5wN9^DpAL0gr!?r_Zt+&uq>dYu_~%Ry+r$(h
      z%CCuQ2T|f2BeGj$$~Lj)ut!M{<37KV7js-Ce*%e5k4xR4RH1`XfhJJFup}XF{|6T$
      B^zHxv
      
      literal 0
      HcmV?d00001
      
      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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
      LOM0OY=y~%$lP;mT
      
      literal 0
      HcmV?d00001
      
      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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
      XRh>#*We7gbi9g{z2g08n=zsYiW~B`h
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZEw?76n<{v){UD%TMBFiIv6i=(t_C-8(SCyN;*|aOHsNC_<~&bk{UU7WZ!hz
      zPuYLihizhF+N5dwx*s*|xz}zIO4UfQ&pj{CIp;a&`rrTl_zS=%Xxb<VT<XMqZ_tfA
      zmHKh^GD*AMN<U3ytXBJRpu!}!VF}C~xD9%~+Vh%&UTR}f;LO|lQOuOUg;)N*KQQ2V
      z)YDDI9=HfNnff7;*`Ab2V6k<8G%BP$v^NAM?}l-x?y+L`c-PvtfVGnBN(W_}tYR87
      z0%f<hT><;3q5?<YWGjs2M!&lw(=C4|lC-pvz>l{5G}PxpX{o(16S#at#zQQz!YR4$
      zM}1!r?26mc&3k<nMqVq-RHK$FB0uhUk9S_lKrzB;4g%TJBxg3x30ymtv7vJX7x1Bt
      zMS;_!EGtPA5mjSVaS@jUD$VuHt!FRV%`M&U$g?eVZp%+QY;9)DU<wteW>P&!JN+(~
      zfF7sb?S%}xZYxPU-uJfxZ#U_B8|1sOwsu696}YI|s0o}uZo*Y8VOhWq^5rx0IE?SG
      z?;BNkxXI?SFz!TBB{9cSR5(s<QHdEq-mo1cv62JsTDh07FR?}`l8m1Sq9o?j*pp%D
      zZJdLuN1NYpxJh^PW>s~a@5B(B_)aQcN?xQu^01gg=eHsDyE5zff%KkiP;Atmvyy#3
      z6*y<Wj`re$sidt^_AM~)j#Hg$8&h~lVhRRbGVZjKej3QtP%rrWp^d$v>&8vCQbq|A
      zuqn;x+rh7c%|E-N<~>TQw3qmH>ThtOzVsVrf8nWwQ+%FaH1IVne8brLnCIzC?v2xw
      z^v^M<WCdsOK5ZXRXYsUP(C<*v=+>_||1;k??j*Iqw_|wL5YNI#xJ*0m8LslFYrJhD
      z0Wm5qhiHvK@WK=&i6O*UTq_{jd|QN>uD{0YYkd4Wt{<*v(}2};w;|XxzoyF!)|`Ec
      zTc(?7d`78E?QMKsB-rIyv$dcTtS|io_eV@E{S9~hPl#vBZ}7z^-<-+u9p|#mIXuNI
      zo}1hkbA(~;1?K*e_!HE8MW#!X8@O9!)R{H6rSebuX(pD_@?wmZ(h#l0N#0|O;56?S
      d7}w1iD9=3@m6wC;8W6oEG#4NOD<;*W{{d<ZTTcK0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(U279T6o%i~q=`w>Mq}gm7ve<{#YF^B{J5}EDXfi>lKaVKU8n5M!emzKfAT^>
      z5xnpR_@l&kc7v5|z_QHFoHOt9&N(x`e*gFh;2y3w;R)P~b?zUgiEoY6i?^9c{TJg`
      zlPou36l9^anQ5XfaQZ;LmwqC3?2l&$QD~cJkapR_3O~;Zk0mWo*V#N0=mnXH{SWs;
      z-wF1Zdo0j+qO`Kl1p0&H+rug0Z3^3{VWWc<HU(;f;j{%7)Ik%c1iFFJ(O#a;BC{`N
      zNqJBxlc_Yy#mi*fzEcZ<TfzVPWm&yAvSXuSrKMFmcEt*84Ti^S6j-PBbv{c}xH~UJ
      zM^`nmhBytKX!3DkqtuBu7#)>e^t8)PnBC5jJk@180`2l0c9d(YUwxOm?i}3UUDP<%
      z+?}{9;o~+qT4*z~&eaY)en5Nl9i7qbZ|Htu<lzken`D6psN*4tN9Zv+SE_LqTa3sR
      zu7YlT?v<WCXTiO-(N}aob5YtgisaM6rc(-*HUj5yff-lO9nKE+M3sF059$3SFP?yW
      dxstqu%hfZzPnBwemE@HZkZ)F!R}24Ze*oQ_nF0U+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmai033wFc8Ga{wO*X^PV342)w4gayR-i>lkjfDx62g&i1W=r8hGbxNW}TTO3AS1)
      z)gB(zsx6=uuq{@x#i)TuOR=r3wf4SGYfpPn?PY5Z>HE*W7Z4twJehCyKi=<pzwevp
      zUVrL1fEkJsLz#lQZabUoOIu0b)opK!<EE2MmXS7Wf5CR$wDeBPSdz6<zUkO8gcVfg
      z&-Z0?zbDz$mvLi=Dj0kEdhw2`V8T{?yWSUQk+;^b<lX!c1*#!6dW2~aXOmgqw33S)
      z%Q6DZjS3>Rm-71*TpS#bV78t%yo{bQlCAl-MUL$oeLgRQb+?;<qe}o=Oi%2n^HP>+
      zoBn(Sp_<yYJi5r~GGZ8`;7vvC?XF?88Gam<sM0VNqZLHw1=m!JQxNz3e#`KB40&X{
      zh6`{Z0rjpf1ywattEJoB$rYVj=|yAh1{D`kxo@O1mhKxWCef>m?&@h3Z|25!-8DtH
      zRZLM3Gwqa>?c$G%sn<+r9M@M-!*?g^XR>^+Q!p~)8lK^9HxfY<R7_J);rXta$uCT&
      zMca&i6_@gKmyt5lx|I+~)`>7v!KgwA6S`&Uo{G0B7@_;b=*;@WHF$0|&*_<r)t|`Q
      z&U15kE~Q&mVNFFt;DnVm63!MC^Z1LJ5{91YQNdW3nOwbs9;A94$D?Np8TsBG!&b3a
      zLAm4i7;djAHkQ!;93@mN<zB%c6<6_+$gqkQzNMTDoogj;GOm*{JkPYd6Q<1=WCP-;
      zSV^pulNN+lv6|ZLY`W8MRkQ~inf}07k|0Jdd3rb1uP3k<#Crqt+-v$hiCmgC37_b6
      zr=HrT;u;aEATBaLUL4n=GX|XmDDtStVoyT~WXGtiop!p+EkU+PF$I%yd<kgJmB!i<
      z){5UTY*BFDaG>Q-(4(OoaRRrPw$U2+*DjdEYHe|tq_sI_<rYJFDy3jdiHaQ8SsS&|
      zk~gfc+O=_nP$jfyG*mznY3VUpaMN1yo#2f-iYP{7yKZG!4+^G~Mj@!xTo_8rh#6_>
      zOBor_kh~ar*%3ro&e>fGhs&9qehoWtJqgvcd}Vvb=C&r1U{pyQM5q;Lp5ZTWyR(8b
      zbZE@kW~~)|->6{(Mk=VOX>r`{Wbdq0vdc*)TiHt*o12F*y#nvXt{84&DHby+{M7Is
      z+{{Yt7F?*R8Sbu#_IovWcvqaN->=~VxRspUEUMk^RxoE6BZlcgB};9=&Bi!x#|LA$
      zgPk%kDu}h*({Ly5q7u{YGWu4KfMJ@}EH2!w;U3(}IC|O6yai)xPItNl|0Ck~?z3FW
      zov6TG+#kbzBtS8fg}!uFYuE5mJixRuScR^?W_2@pkjqnv2l+ZGT~e{1ntFUc(~wN|
      z_V!Nioi$zLZ^qoYbCc`aT9WPgK`1<ZP{YSWUymBsWp&G|fPqhFI4G9X6laajW>bz&
      z;*l60&X12k+d{{&4Bggn2#+#y?W@-`6>6^ZK%=<*X$^<PvB;7IEp0r<junitpn%Wh
      z7KxH^$V-Jjhb+V9lcSF9p-_0m(M&dnSYHCCnBCk!qE#Zwr|;!*LWen9wwN5a<(6n6
      zBGkmnx+WWWijPRja%?V<{bwQ94rhtr?H9x#O^Z5sM#GozWt!lbI|Oh|ZF3A?VT1y(
      zpbsu^UA<qFM;y=MtK#PKl7d0&`MQP^cv?V>7s%hz@D99_L18!)QZ*u`KL?ybQ{(i+
      za1ERDLBU1R-ZLBAD&Zh!v;h2(h9Bc6Ot9%2uI@W7$4gCVM{droH&)<hcp-+LGloUG
      z^Sc^;ffq%PIjxwTJVKECTna>0|4PI6@dJVM8x6n3@0k4_-D?dlF)SQG%pgs;Ac*tu
      zc8lbnZ2*(6`i{)#nFi$Y9K)X#oL@|!Twa(ptu8SmU!h~UL7ZTdm7jw(ah$|oMLzy^
      z#+ObGRLq8x_=kp9@lO(oBhs)r_7cM~<s7;jRlLUR)e5Bl2&Dg>0g%^K!oJgtXJb2w
      z*EReRe<B0goUEHNmY8BDPB_>1?Q~%aCXr1clp%r`<v1}}`MEq=%s5Jjp3kSszfoLe
      z%>&9Yo>wUOQrU3?=Pj$NJbw_?>*^{eNHI~0$x^&Uim6guB1Nqf^-?6HNJ=q7idj;;
      zO^VB;m@7r26qif!b}1G}u}F$0DXx^FS&C&+ESF-16sx3YlVXh&>!j$AVxtsS2jVC;
      zpMdc=x*ua`%3$(&FQ)Rjh+$gHKsAvqOE3XfVhWa`9?h7Et1uVKa0Obpx*V<iTZ0wY
      zgq8eCT7|7xjqA{cKD6UT?%a&ExDD%YH`a4rbl?CsuyJl=-`s>FxEjZC4W7YfJkK%z
      z9q6p!PP|B@m(Ycm*|lF4Ur=ZyE|^GG242H9So{UrmX?X6jb;1;;&n%0*VR7>r|8j0
      z(gC~?hD}m90n%7`nwGi(h*S|YA#pjWeePws7Ur+*f+m>5H-R1=K;L0X8L22&!IQ!=
      zi5D*5g#)??Ja#ue1<HKh6DUz(-wj3k;=$?;68HKNtY`r%TEOC0gv3%d(z*&_?W}tO
      zH-v_;vy5Fe)DW%?*I!8L-qH}MuZ|qW`x>Iv(a{ZqxNUa4Dqgk^Bb0_%b+kb}h;h}?
      zP*r>o9}){y@$j{S_;7<tIHx)`ggs?wD6iaCT|S5dyD@$M-PP(4K3<01C?CK>2N4~>
      zrw)sM8X?0mpL79JK8i+GV<#r#Ce&dUE+qwK;TAOT(`PYmB~@-`>hHi7ex-Q0ivhZm
      zA-X4UeHUG&Qw7&|;xP;aVcv<y@k9`)op_ROA?k54ND76itp`Uj!~jkviJrnSM5!@`
      z&+siqotNj{F5|7wa!sWTGjng7NcZDhE2pjN@Hrxjsl*ADOWG^E6QfO?A~MVCpT^$Z
      zQ0q@%@A6|%I;I`L=UYVzhVVrNv%|;mY)4i22%c+*gl0z%Vp4TP>{dnd8Df|C+7P}`
      zhIPB5N>#Kfy#Le-iR#E8zL_XSa(a;3J@jWUNqHa1b3exO>uD+;U^Mq(HukgF_OXx-
      z(BB7x$Ssvt79!Wl$PLkl2utkSL@6V}QWls?f2J}bB8Fk2&BS-v7bA?<CHNlK1gSaJ
      za^Cmxo+zF=>EjO-EI){<X+!v_h*5~%{Bk!U;X_>cwSqmTUJ4!JX~~DNL<JsVMjvJa
      zc?1*rUV}#iYbQz6g0*!l_uo@z92e1wKM+9?10ZKbGf#_Bn|KT-J1Sp3g1-oJB<lz9
      g_sV|_;@^Y#Uon8PG6w=xqN;f{r%J&oVW5Kl13W=uGynhq
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^?N8HC6vm%h24$r%ouCty@uIjFSOq_s5fej(np7pSEb_sayKxyMU8}d9>_74|
      ziDpp}{q7%SJhvN*kVb2kE<L9`&-vZwobBhYZ{GoI;GqtUq1^VmR<Gk)q2yk0=*x~(
      zlhT*A6NJJOG76q?@4yvOM~dOfG5^RdmwRpNRr6T1LLCzfIbXITnSl2O0>c`HNp~p4
      zuwtv?-rxFF878(I&j}whtQHcyUu-a>w*3QPU<}hH(wJcwD-;`P5UdFulMET#@x;q+
      zrzvEeH(kMywfz=%8(can9wt-akrObi+y7w-0qZARdXCp-ST5Lq8nO4}%`TULsP$Un
      zedzdJRnZ!wFwk-Hl6O=xdaUCXLm|$x`uVVEK<C;9=5a@ze}N<i&JD&?Ka&25Iwf_V
      z!XlP+EHNy_>0TJUi8-v08}U<!L!br*a=51`RxeSEI3o`jjUfLIuNXA3$xw=2g4p&9
      z<3cU3I_0{FvcfkGdC1-9U@HB<L?ue^`CZu(JC0h0g$w77g5mmBluJ}bD@E71S}C<r
      z^aD!Km4-o?DZ1N%MjyZ^^<kFEUywPaNW)e7o}pUc5mi*FVhdS{t`FYEHOx{(b&)C~
      zwYlio4a%h`%0=oQ=w4~$OP`TB!~A}^kK137*YF9`FV2wLU+d%Uk5eiDwVb6*7_`nt
      znA?=8k?>P2;Ca-3aUeHppT~U^qULE7QKD-4XGjjRmJno@Kwc9_oj@9iK`O~Xtb`zM
      T3FIAtZ~|#12H7BYHEjL{psy*<
      
      literal 0
      HcmV?d00001
      
      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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
      G>;C}_0KPH+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}ZBrUo7(G`}5LaWY#FxC8nlvC9(%M)nc{4V)wx~%V_>!i{0vBDg>@v$@$zSL{
      z@E7z;KD09lcAA+^`z0UxqdGlzmk1TwjDuXBd!Oey=RD`$zyAL1cK{!w6hxQ6*sfJg
      z)JkT;b#$vzw4G97wYY8<WDo&?3+=lZSt^^lE7ci+fGaDmz)0%d!CF~&_Y(JOWhW`n
      zd(*HC_qM=jw9|oDmIansCyZ|NYY0LU=#Iv+eGnMb(1TuqQz^re>(x?DIvG7@vgdHh
      z&g*7YcMSEr5e&F{Mnz!axX(#GgwvBZZHoo&HqkUsrQH{%tn5kYCSx6nw9-z7aRy^S
      zj1o&bZw(({Tp$`v?du16!qlzZ#71sk=35K5$P^~ovx<C3(LS%?0xk-K@_U9^aHJ(L
      z`F=RvxTM;S^ijz3s?22#S5%pRC2OvVUKR*fjwy1o9g4O{z&SXQgAEq!rE=MPA>h78
      zG>>h~vy!EkWTmX<W#ZvFm&ugv>?VGg%O?tUDWQCmTwQICwMUdc!uM-=S#}NEsswS3
      zvMN#iHqF^(-g#F#$H&!-u50x9Clpg2=w_9s^~TZxO{{%ZL3}E3x;esowrxt?3S$oQ
      z8a~5<fR^)PSr%t$I(J8PUDS}oO?G|S*cZ4OZD-fsQl)p}wuU>1)2+HMe4ymrw6p&s
      zFz1xFEtjMAZpTTr39W4Na)?!~Ol7IwvQBI9bieXP+Q^xPwX1TQd>fW!=}I-9mlc)2
      z!+AKeD4EL$P2_vL^VEGYHZ-KLrg&|z`GM|G7uQa^j@NJ`+N!)CO$PBu;7k*VAHG*D
      zvT+ET0$oNij10Ebr6Ht9>rHFah-KA@?=(EY_oPcHrB&cPi!Qe}^eZPrct+9Hdv;6Z
      z=2UK8V5U>`7M)tr@nOh7s>I@n#N!8`Gc7N1Ps6uJQ>9#$>0|%ZgEL6mRVOc34D}lJ
      z`_J_?RT$TK^}G4H3k<2(ldB$n__Q$6$JGkD_y>fikNAnd#=tN9)rC|1Kj>vHAb>@l
      zO|k-LX74mkW0=2~=T#M4@v&*t{E-=|=fWF^?dew-h}RK0!o(Wa=icJfjQVD5@-;r>
      za;g!U@<SiZ{LEY*!GwqS4m;n)D3&mVdzi*D=JADxX0n0s9hwDPMbzUOMGO}`tka0|
      zdxkXw+?iFZ#TD`oGomYWvynigr;fy8Xgu^M<_<A99{K}wb=>#~eY4}CU-9{TU!?C4
      z=Y0GT5B`joHr_iPtmBr?LTyaN|FzK+bA^(D&L6}YMO?=vY!K`kVLre$j`;@ClsH48
      zk4P?!FR{r}Ta0Y;Z-)-r!ZSSfXcv9($3xH?v`L8hOCD{VQZ0M(=&X02<kjv9SIPi7
      z>o0ra>iCMQAaSLMWtGCjuz;`e4TTcwrZ$F}WmPr$36dOmiy`&Jfvq2+C-8DQeuM`v
      zx!Y=-r?kj3nnG_e&cre12|OfHJ|W8DjUH9vRXt|kAhSK3J;GKhKJ>Vb$D8rtr*-I?
      xan-es!e)Hvi5IS8_oQ2tIJ<1KhcOtGd7qAW-U4B^0U=B`8QfJ6o_o;Ee*lEZ5SRb}
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<U279T6g`uqO}nmb%vaTDQa{>mHtOP&VyaM!f*7h&3HT(Fb=qv%kFYzD^j|47
      z78Jy1f0TG<(#B0FKJ3n&x%ZxP=G^)H=lf3p57Eja!%#U4ht4SQ9U1d5If&xGc`c6f
      z$T1X-_-F3;JUn#X^p1op8FC>H1VgQ(QX}1`PLct4h4XHY!ZyP~z@^(~SnHf)j|N=!
      zowr;{5r<Tf9VUcQp3A=&4Pr_zZhN68pE10${zEg@dyYMKtRb6S622RK5(ctZHE{_A
      zl3+Ev%U~#)Siqu+$|mwyQc=~!G7N^*ju(o(VbBxtd*1U&a<LP+-0$+(Q~R^Soa}o^
      z`noe#Dnnd93aR^%HI?_TWM3ZpBIyeu+szBoG>o=^I@a@Oq^33FsEHbGF<2A7(i2NT
      zPCB$92JR@lyL6w~38}0>25c&mOa>#Fieso>pe`kzs`sN|?24D3a%zc$KTxj(>japk
      z7nemrSxr$v8Ld~cnbr(_#7A|PDe`HbqqS_GV#RKaamBtjM#;WEM&+xnUZa1Nuz<%@
      z`Gkhm#tODk!c$zOQ+v{nYq(B3LejiUM~YeTmDPx~t{QHfF@Gd=D%bb{_Q5_O;uDlw
      x-*EF6>J(NeynTv|FI19&5>eDdI|TWh$aiTBJ6b?>0y7oRz!oebVQA`J`!Dqi%QFA~
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      V_eX5_(wsA+K2-QOZ@BRG{{SpJAzc6f
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~*>=-b6x}y*EL#y^LXyTLKso?+Y@!wd6bxk!q&0!msev%GvMf8IvgFEgFh9_L
      zpg+*pP6Q}xb+s>j=tp&RUwMeZN%4d3bcTJ-+2{D5e}Df2z$bXBU`XIV)otpnnxhB4
      z;WjFsU(;_|jfPRRmc6p2AR=&ZP-NAr)g2=UWdx#*SFKvU!2bMWW5dv!f$iw>&UUMM
      zK77jw!~@H(*)FvN#F{|toaxxE9egG*oJto3B3I}!hFt=C>2aQ*=6j%2?7?0I34y7d
      zTxb}>KDwz|LEERme5wt|F$km(_{5V-?~E}Hfe8&Ghzjh<+pe|Ttd%T()hIc{JeK!N
      z!zmiREzh0H=($b^k<?ncsA3q?8m6F1QwKCCh%v5U-EIgR$`9tTFV)P@i0ODPJzY#~
      zBU%WaI#y%dvI2%MXsN#<IhEc&lsJ+S$6*aeaFhu**KMclTdu(DyDbbOtzj1L#~IUM
      zX(p@Tm^2e{tyUm!vjS?Phl)Je#%LdEmf5!g0j2C+s@I*T0>L}t3@g<N+36ZJt5G*h
      zOJ7;$HkbGOs{Z7Jsh7Q)E}5EJS{l3?ypcRpueD689@w7SP;g2hB^lLr)8m`I+HD8R
      z?};n;RA9W{^HtAm)+{#|#aWzFz#1m{pCvF2=Rt}mNXuJKT+8pOkjbg^8vwg6xlx?P
      zMGcp5SzyxiEw)VeZP7QX(jiN@gLYSfBpAk34cBmj%ra!gRb0oCf*a&=mq4w$5v=Ri
      zT6JH;=lDWkv=O#R(Quk%;*r!F2*X5o8mPagWOv@wu#8)zhwWB8_R)5&SBzr?1qELU
      z%ybcKrF@Gk8dhcFsJ)3%rrjEoDKPy%q#(CU&kab=uv_0|2nksC*ob0@J4d!bv~I8+
      zC_O4UU9d|WNL4<TJ(HP#BlK<oSmIcvSA>Jx%JfP=K%}i4rV>y%xcbvZQ-RkWOXL;n
      zIUu2ca3<frzTB)-EI)>liV7afKEEY*j)od!R4lgTGG)`LD}y%M%DEU6sq>xG;pEP4
      zSFQm(9bKsyXefhW4VRh~Qh6s)7O~(pebZXB<qS>q4ZL|77Cz==8Rq}d5ToGW<t`zo
      zCf5;u<B+3ll&51{<u5*_y~OTcG5#|TLzv`O<qDjk_({AM-tr@dUq^M3?@~gYdx8CP
      z)6X%prMo+HejX8AptFmi{$yJk2XROmqJ0TSy5~6T*!-S)686Gth<kItVde!sxXJaS
      zzp*DP*UTnT&oResrgN2PU(IKKqFx*M{xIOHkX^bDi}ZJ$qxuGpV<|*3+xF2zvH(3y
      zn1&Spz>kJFkK+W_1=@@d+ew)$u|T{sX&Y@sE6M0zIQ<Nx$>^Ur{Ug+5^cBtsoQ)-8
      zuW*5zcnCRrY$7r-l8lQ@TuH`XV)3l{3&xY`Ch~lrd4^af@*KC@G0n)UA21<LnT}>O
      zsZez*yQi>=C{~!i0^?a_90lg^E2L56z`Vl=cbAdg!)>hb_5n;hL=%s~*z4^Gda-YG
      zVrNv8Erzjg(8k>`M;o-V#tg{U``nF$y9a!gl-i)(yF@X|{5-<f%uX6vd;^0uzl3p=
      z=vfktjPBI8L93E8nb)Y?8(V(?yOV;cOyd3~zP*zf^EOexlSw=bPn&4GUDgs!n%GN|
      eQ|y;RsIs(nAHg!6&{UGDNr)UwctV#$X#EFV5=`Cz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTW=CU7>3^gWD6`%Tf3eW+gcaUu3Alu7)``9X+vrwmHUNGaqBWemO=3sd8>)1
      zdf}~!Kg#&+frUz%h78%6`QB&V@9^jE&tCxU;h}~EL#Zo<)~M%N%Cp7bKzcoE$L{e#
      z-|p~TPmVrlNHNSG+V5=3wMEx@**@eQr6J9*>Yt7RwHRwA>bew)j}${n$bHVR(2!o&
      zdcV=J_9Z<+XElcO6Gu4eDZ`REdtGjkxK4ptB$3yVL4hG@mRlK+B^?^(7>W%?@SS0=
      z&AmOl?S>C^Y`0~5j=zr%Q|gT~U|4RPmM@tqcDag+@cPvj!<yNcRG_ImM|5lD*`pjT
      z;F5-m<nI4mbzFu)MR28jJM15)r~4j1a7KQKW?o^)kel5gz{i(#-0(qq2nsJ~8#f^E
      zn~OD^k~U9vKU9uuZ7J^AN_w>{)pbqBH5gf#sAwotV**P-TwS^@_1=+UpreZ0<ZVEe
      zaJiC#VP*Q2a7xBC3e-)mYB{Xqt_F)CKf%(4PV;!5Va|!1Fc@Z3-{TG$vQ0VkI(*ad
      zTfG<;GMLqMABqxXk)(Bo)`CAIH0~){8Tk3-=xY-R`T^O>cj%SsR}??fE`hW3Umz{;
      zh!l@WQ6mCigwa^UIogpfpfaK@(Ot;gj+jQ}3yQy?v5(06pVcFrPv8@&LVlX!foD@(
      zBjy^of~$1T{1%+fy*|r*aRPTa;;vvd;y#c37An<mxcLLOj&O&~_}rf26=I(SjCmVD
      HUJw2OsTuDv
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUU2hvj6g?BK?Z(+OZAc)7rUVGZU+q!~iHZA_CNXt!6R3?L6ofX;;B2+twbtum
      zc;avH3y^p~AkhR-RFxMV_)&;6yN>PDmioZMc<$W2bLZT1&-Fk5{_zCBWqc9GguuCm
      z(=obD+weWpX@Bi{O=G*$+>_q6yD#I=1eQl5*7w>Buls{Yf#^fi?nr^T@^O5(W%>uk
      zR=4F91Y%b$$MUZWe3=>-(Dw~sRAsYeo4!;)3grjpL({NLr(sll&vF`t(im5|CZKIF
      zK7k0Pbi|<xlm-v}&*YO3IISa!n7~Zga%5P4)!egL_-xs&n|96gEOqWVHUGeB3!EQQ
      z-+(+tk7C~R1(wD{o?wC%DjL*#Bb*3K+0yr=R||U~N&;sap4(}Wv5IV&p6R=ufZq36
      z-w}DVZo3Zmo8y?O_}|*HeITV@NIwr-0_U+5$EyT4Dgqs^;5C6%Y6$nv-UC@5PCTR;
      z#r7LIUcj8P-qbOV7nSvvj+d~YthA0~=*#MO84C&eE~>7dQeO=nZ(~m2RQ<rR_dV$(
      z@DARM;|kkxjBdOj6w-5(j5buBRULViM{{J?SKd{DM7z(*_~s6=CJ^x?I~%XN%~r=J
      z&nwU2x$Jrk<C`mWW8dX8D*2a6>HF+uVyj!1E#GpTb{y;EQYoPO%=lK12U&XkaMhR%
      z9h=x9A5u*!2P^2sxTi)N6vqbwX9jxPbUW0z%39KK2OqM!ubkj-gZ)X3;vdbJ-b|o~
      zyQ*8;<TkaLt|`YyIzGldg0vjJC*nvd&C<!9<Ff(5oIOhqDQ>wOvxqI7lY`L{n1I+n
      z`5~-;lb5Kt9j`8nmYU(2!BAdO)lxys%D+oiujZbXI#FTtOw#(EzBu>UOzz^mmW<BF
      zj*!S?A7T1edM7Z$-_yaJ0(4x(SzKc#;C6V6=UJY3Kgccui;Cw><)h+*yR%C1&;lP7
      z&sg=9iVqM`tUWY85tqVOehjgj`3=+ALo9NCookuv0#}MFbA;So?w9_?Oit~LyZi|6
      z(Ol`dRzlbNxnGzstm8sZ@jC0c#g{j*gmo-aQ(5+Hl@(p567HZJ)VCDk=+{@q8VW?Y
      zj1*Z2>$}Dq6S%?r8o%5Ovj0q5@tG%->D=PHc8FVR(PZ>56o0@}GWrz7A93a}io3aF
      z^mp7oLU}Ew{h8Q}Bx8rz*%_b>S-OX5RIrFDGTd|cWQhHIA6>qOj_)$68nB;d>_SjQ
      b9yMATGi8bWQ?j2U2cKb=><fGz@N@q^p`pHW
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TT|0e5dIELuT;@Wk%CIWTU$y4#CsS=M?tF<FJ+kVF{H;fPHvL~DX;z_ol%(4
      z86SPn|KzwQDJ@t=9+I=!-Lv1f`)z*x`St_A5^g0i!Z6dex8<&7%7LfZ{yWFB<d;E*
      zdpm~D*PRwmLSncyoV39$*VKYAhas_I*hX-lAyz7HGDwf;W(F~&vxp<XFxD_^zP@d3
      zac@K0GC4!8;pm#Vsd<L@?m4BPWB3fSjbXeaq*R8uZaOyAc~Ckgxf$%5-0yH6sO4kA
      zhq<d6Fr?G;%4Km5;|wXiW0)<E+YH5%FUK&E#c7PCsoR_=Q^;aUl#y)S4TQJAkn#J3
      zXqd+oJw%vh=<$Fd*>WDbuDQz)oX}$9z4k%th9cUU#eG-Px%_&aOts;7ZFxu0<(6Z~
      zLQb__ANCD<gov5duFl=SaBM$`%M7If%wShG4z`AS{d6Jx)hw=|NHS?r50XXT4AcMN
      zN-gV-9njRm?f92C&Bb+SIar-6Q>c@0HByPPN5!a{#+GT=ZPG7rnt>OZ<E3&4D4Uwy
      zmLsp4f<lTr2TM+kHl1xx=W9l|mq!+@CVIvq$r_`729W5Xg{JQ$Su&kWcq;oyeI{cB
      z8G4Jb_`yc$osAOcJVjp+n?fFO`6HDSMHjz=z1_!|7nLtK`x9eTanA1{{}t!Sob0(K
      zBiD5G6Wxh$rU(hRjTG)s)w`I+J<LHx4J#pbF{<CkUc?1lB=i(YxP)=40?eRD=PX$g
      zMdm_gzbPX{9wlOw4+&Kl@=`utNEDKLxDxRafywzJfx!@JA%(|OaFtqLLk>?cL3RO8
      z39?Sx@eK2LPBW}y8I3UeO$6H~tn>&I6<jCMg0O-zDq&*^-LHm<C|DpX9!6^v6=PAT
      la)r<tskhV{`2w9nnpkdmFvUo%SBKP!^$0NBpyUzU{0rR%A{GDu
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TXWk~5dKc=*p94T2u-P*lD4!ICyr}+ftEPErb!z}(@R3qJ5}UkM@5ztS*9)z
      zyf6bD@(cI{eT5mC5<0`cOCR`A4BwG2O=^XX$I>}_cK3X{`|awVfB*Osz%i^O(Ib$n
      zIQ2rKY8L|EaB5}OuNJQRt|@CZ%c)E|wZN~Nf#o{0Zb>E)7Z~a`n3q-0HUg=11mccS
      z<*R?@k@1aDunnhDm<xP*D+(mWEyoJZ3JheskB1j%JV75CVo2*qLKlc-hZp)Fuw6$l
      z5&}DBEJx1Pt4q?KH<s-1BG)wR1;e-0z9ozY%T`SwKhuqN%kYS=*R)-SKF?<(4CjI;
      zwyZ5n85D;jjyGnZs1fpR6+%jZ-=iagy#gt7*|JN%bOa8(-9rrfbi9jQeN4w5<z~N*
      z1IkU@k&Qq}_X}vX4l33r!s!Oo%%(2`fn>?O;Cc2Ff#5B1hDB<G{7_Y`d4?$qH)gpk
      z&bWT1@c4vTD7n>ws(f*Jx?9#QQB~F^8>aLWt!haO3uF~ln%BIh;e4Br((kAzkrUXp
      z@#ageS+7bbNF$Fz5=RAgZah}NbbO3slviYM?Xe^Mwh8N!9o_`6eNs$g1SfQy#3wAH
      z=}VHkeKzGA6?Gv?xP^6FgCvOIl#bIlLS`8%;~K^=o&=fJ-zH|mGlJ#9WW)1yoB>-S
      z&7NboEEsm3Ogxg^gfL9>aCh%0z~^;bz(s+<Cg4b(3rt6JUbnx^d5LtzB;|2Q$0Vi%
      zbjztpKe#A4L5TWv1nQ_b-Yiw<^NNmXe9lBLWzs24sGiv>5nT@09o29Q4gL>z*#f5P
      z1neR;ry_jBJeSi$OtWKb)vXE7VAoPRty*u+TC!OoUR5#zgE}SGBu_RuYSV?KPL(^9
      z8H&{D5JsTKvjh%p(uz(#-3D%RuCgP@#I9+Z!~=qQQ+%;rE=xa!hdlE-gFeslwI{uX
      z``E1>rj8O=%tW&eBvy8!`<|x5VhYShuNo3(l&z&~9|?>`ux(2p%Fxzv7x$RcrFxkS
      z+7(voI?j+ex9*#A%2MBep~xhuW;v=7zyUyy{OWNEsLu#jasD}-De2>C3O)P*+Q<w3
      zbI-BuSMGYSgU{`u<v1<QQuiD^0K1#ocnAI5(Ju5VxZ=ES`TT))>duodA#RWShHWn}
      zaFy@(USY?mdgs<K_#E$ZIn)vjHAM$Uf1zFT_Prt63Fx>)-;>x+tVeJe$8jY@a-exf
      z2gyl%fI~!}Ba6e>8{+(s7CrcgKI1&es)$96v8O3n6=SJP;%|)njC3aP7e<~z%Out@
      zDlpd9M0+^Xw~pi7Ya!~<{6Ku5H=~I)e45dI$7gh)G`D3^>o^yqS|<4l{h36Di*-!I
      zu=tFJ+^*wt4;Gv84yaeI<tvd%(%I{jFJOSst~0b74EiR+xPg6`V_*vy#VrPZ8>euG
      z!}Jzs<~^q70Z$)tXP^QTD<oe765pYW?<x6_>z}Y3ChS|LhGBOSw%SUVl6`@hFk!2>
      zirFx+tGGrSiY%+daGhmVtD8JkBwFRIv!qcBPcctPiYQ%tNtAuWxd)3xq*3QI@!sJ|
      zC~otqC|9SIqFnwZ?%(eJ>IICM+|IjeSX#{Wm)Eeom{U0o7d!8V;x&BzCNFF{tuhpc
      cm$^6ykJVk-z|edvOpU3lQj0T<dWu`#f9=<P?f?J)
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yje{^6g}(MR-%|!3N&tM5e*dEd8oWfi6JzYxXoZvTBj-W@j=LIN39-=B$MP{
      z(U~@xDKq6`XUczKdRDR>$9SfAMwYaD?zv~ry;uLf`Ri{0SMZgFjKHOi-!*qV*Nj8U
      zkJ>@#na$P5o6>vcTCt42w)~bWLk(Gh5Btzo;F)fuaBI({A2%KUHw}4#(y!KYYj=b#
      z;>swUfY!F`I0*LyDvdtvp@Pl678%x4+&cAC1tz1tD3;!OOJJs<vYD>scg$uSI(~=y
      z`P+`~#47@erFW+-ZwX{;K}+hGz=;B;aZ+HSRNk5b(-fd#Qs6|x@#RL>dn&_C>!~Z1
      zfWWrgEh}`?dv7rtZ#$8|<uTdE*h<CI9T_(VhdNy<zkMtv<AVaGpc5Vq!_So7Myt~l
      zNILLb;6jgev@`=qRc8vLfD8B}RdheFyB<p`Fw58=?3g>(Y*W>}zf;w4QQ-Vx4c1*(
      zb}Y9Uvu)OPZTT#A0)G;plK7DoMy!t!w2dg<b7izGWo$UU9k8l0rtfnoDc{d&s8H^>
      zHcE1T^RO9oLz@9*EU17*T3tG#Z-aHLj&ntai7OgDW1GHf!xeB9*XX7%cLr7o+(}Iz
      zH8WLKP3t$hIS8*#;)cNW?|s!XMjRM+;74)TwPPdh&z#W?1J6*6WJon%G%b{tr(C*O
      zz!$hBFs0hOW_2U>;lgkeY;K3aj^geKN$2BmRReqO#yEqAX08_aZKu->EmgunEjbgd
      zz!o@r#P2~r2xMC9{JF&Y(eodv9u)}czBv~8zcLs-;YA&$lULa*L!}<ufrRU6Y3h!e
      z+SxH<xTO4m!5Ns~l|u$6)zI@R2{m>6&+?i^fxE}}R3{?CyIwiK@yh(4IQ2W<GI)>w
      z$H@WQWyC6D@8LAx&ZcOb;gkC52|HcD`<U%<n!F3{<tl%m_<|29T|QZ?Cp0QO0X-Ui
      zk8zGGO3(_?N>E;jDISW^lhp@|X$%R;4}|2C<Eg|S;o~0HYf8_Pt5(^^`NsS|IQ9~A
      zPi8J1;PR`NC_kB30uM0%koQvy`&fFhF>`%6t3bspLCd*fZgC%<|4_`mBBg;6hjqDk
      zoJ!*6BMSPKslTIRO(M34c#H~u#1ekOE&Plx@k=6jC6&?>oZ~@n<4(dl$LG6bt)NKs
      ZDqUY9>K^&CWYAH=eP$6@<54oG{|6=N$YKBh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U31e`5Ixs1HZg)g2uT_!2?P><6}1U%DW>5gBoMH}heIInQeg`tuq8&4A^f7g
      z!c3FQv@_+MAH{H1vK_?{(>_S|>fYV6XV32H^OwK>1@IH9X(SY88+KdYY&CV?HEi#N
      z<F@qb^(SlH57WJE*!8CArjb-Q*)^^^ExqZ9<<eWz_N$itI*pV<{+038*zCjec(NZ*
      zA^pOr`HuUZZsjiUE{llAa%i{GdebZ^9O~JauELpeT*!zsJq~*BJ>P7t)D?yUbG>QU
      z4ZZ5Smfhfe$~C=q(^ohZ3-&O$6}u~zZTSldtJ(igI2JO>FSo9cTy*MY1_L;*VF)7%
      z1KHgAAQVP5q;XJo;~EB$Q5Y&)wz=AFJvZGo<9XARoSd4`TsK@xzB`9W|E1+A<YI`%
      z)>njWn0~dV)JQhBUn?OprQr}XntM_66WRUNlGzc0MzU3y?%?)!NyLa;1_>VOt}q!w
      z_d9gT66%!Ia2Q8O%Cze@om#uau2je@ZPv^;zUA0n8bxa8xQ(DWr6r|#yVoN91r0fj
      zWSHTP8pmTU6l51{oW#Zd-F!`#{_ozD(zwVzjBCTd>|UknwA~uZJC9$ayuWhlvU{Lb
      zS^ZL+ei{4*;$Nl+arhC<G+e>&)Xncsu0knZw~$R3?wgusa240nxTcW(kH9?*HQc~y
      zYR-aJOwThK%(#G?lJQyDEo-=i+oUK%v}m+Fwr(-nHES<j=bf~0DcX6vr<{tqQ{znR
      z(XLkpg+!elKOH-8dn&>HQVgDtwTx)mON|Z*lMOKuM3%p0e*@7X6AHU*$xKef4%r3K
      z5>srk0X_$i#8DY<{*I5zaC3#sR<N?2xu*CG@mAp&cN<91lPCEd4Cf15IFT=IVeBK1
      z68MhqVL}3nd@m7jnGm-y!IP=b4JUDmUjiv%Rj`x53GTng=}s7(tK1#P|Aom9+=Sq%
      z;P7q$sD%a{K(;^5@<cc;&^p02CHy9LsYwvvKC^xhAdH4qJxZw{a|t|+a~-TGk+FUv
      zk79|O$4nfN*?uBVN#xl#h=}w;guerl%#(JKUxgsOE$*cRC6?fa{5JIRKbYSrh*CTF
      zxx#g<$k*&PF8zsdUKTbA+gRAaVx`E<(&OT%j|59nuk)O-P}vz43;2VlHSX#dg~{6n
      zQ?W3ISGa`NxQtdn_accid`GuI7IX!7h&alk-bI;+Go)R?D$nLv<a^Xy%KLy`2|WA?
      DGvDee
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      QTj2w4L%R(AN@<t>57G?FHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T}vB56g`uy*}7Rx8f*M$TGKDl6kL1|EiDCW2?T;ID1r8EvQCqc-PtfZ5&PD^
      z;hzWyYM~GI-5({rvq|yA_T|p~IQO1=&)nSpx(2X`RTnvi)t(v#r*RY*%~kp>(Q$BK
      zv>Xhi>a|pA^e{9sQ7#;Y@-aW*LBv%r_|!cXp<!@EBx0e+TWtTGbUNUsAMEp39E#Mu
      zW$*@CgyKl3P%y9-L*boN(!6J=t^KR3wccTH_L3vvA&(g!)0kz*udR2cL7VuPLcw|!
      zA1)p+l-g2>{bAe{`jB@cBC52LkVhS^rHv;^$Mj{&a7X+9vuXKaPngeICR&>B*#b=u
      z%c!|{%uv1mWFJrPl+KR13Hu`5RpZ95&TkUlc0cp++#=@g5ZSU;Gw1pT=q~Rd8R}3p
      zr9EZozAxFZzkxbo^E5VxvXz9qvK1uDfJF1CUZm&?AuO)c_zA!9`jVX5B_5t<z&WxN
      zIApiTZd2P1X7L7(C{rJ|VIEbAXh258GS3p_$XmeTgr-BUt<@SAC|zOc428<dXdKjS
      o@M2UPQ9TFCS*2OPE-m>1GuWd!A4#2N#_NygOn4byW?irT046b%0ssI2
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0TUQfT6#j->4O6j^(58Y?wKN1|q$&znT2xSKKs11YiXFlbVv|gqOh~ZyX05&7
      zui7V{eDQ&<)q>Quy86<W{(-K(^|3#o&$Zu~$pvUuyI9PeIcJ}}zx{oCpOatz{_!UO
      zo%q&+8VR9zI;Rv;NyRkObaqZRQc83&Yig-cL(gc2xj2|h$IOJD_P{B@U$QP_RC8V#
      zC}a!|+!C5Ds|#wu@?)=@8|8Xst5-t9`mLok2~O3BXC-Wj2p>w$OeB>^B5U?aa34;j
      z6K0<TN2qmzhDY^T%?AhSWYj{IP!~z0wUJzEMl;6LnWRR15k00RCsZRLzKfGib3VZU
      z;YbO=|E0>%UTr~5=2VkDcZW72YqckmYC5i*nz^jS1X$ldA*N*nQ&|rlm(cQ`l$4EY
      z@dO$@*d}4~`ut@yVLMZgYo>%iXsAk151PrFwavm3HH}0%?!!*(_F$KUU<E>2O=;PT
      z8q<{1BOJ<j3M~>mB1!GkoCKwq<QhM{c0^m%4f}h2VCl$cMVP>|>k6jqtoqI>c~Dy6
      zU&yyH84@dJHM8G{=TchQq>NktEyu(rqS-5B6MRG!is(jM$?uCPvwBJyVa@aoRbx*u
      zzfZ<~9ANxx;ws~_&W1cV$RHIh`VB)}6b0!+7rI5|_0XPrOo&oEETbNs!d0J)=kPpz
      zsI#*|ur;X^Yov8buy#boQ5+-pm$H^z5)M^CTxIu~DO+fA<B92MQ!B7SSos^XCYFp&
      z#-t&Rl3H4Vi;ZC}vau}P#Zp25HsTWM%iU3FZK}KzqcTq83}s*;THQ6O8jM#TS}SA`
      zkgy+<F)r*k(SFp><`M-ldsfCdF<Zx3QGix0j-MIwVu~F$Z<?7NMak#$9r=A7B9YGS
      z?r!B=G@^`^jwK&<;DU^cf@8OKC8s8{UR)ylLN@7zDvDV%verQrTh|rG^c>FuA7;R^
      zuLX<U89LTF;l;clLQBu;h8LG5G>*+{&4Y%fHAnS1Gp`!_(sSuqRrItMNw&Ccy(ecd
      zBI(?^1~<<Z3%C~<3Gl&y=>ZvD+n!dN$jD(qLajxQeZ=yxSX(YdGOO?_VVhM2)jNxv
      zC&lq6_+@Gti+mE4GpMpFmekXnW_wh6tW=oQwWnI5#9x!~GOmfzeM80`bgXaF^7$u`
      zSk_lO`wWR<XwA^lF^vptw<A`^+&U$C=N%dE;ys?a2~#svQ#W{Bl<Ld65Qd8Ly|wrN
      zA9?U0K~!3_v?}9cd?F4Lt0UG|Xc4DK=rb8_;imBPg^Vxp6-#Gc&5l@`cml8>9SbTU
      z)Z0w02f*Z_dd`Sxg9&lrY^#1*b_j6TOU@jqfeRjvAkHT~J^bhO#hFJqQur2YuJ8&r
      zf5$-$w(#k;CJ*9Kj)f@=;Kx?Ji3<T*HE`_Y*JGBO3C=h;Q{U!TMX&}xW5;l~{XU*t
      z#?wojx4ruK2KpKPh~>H2-c$6<-4;X^C*N&or?n&$=TkuK<G0xF4!8XPrGnM=dYlMP
      zSY8`!tFl*j(W^k-S@iW6t-bU$9sVB5Dp)gJ&Ijn43^-SCsK@2#a^FRZSPQs|`8aw!
      zL08bz*4VU+-c>wXgR?i>QotQ>-g)?YThL|aeINZj?r_k(G4q{Pv<NdBCUYZb#3=JS
      zjl&!dB8oBo39c^?D^ZoPPh)`Vg8yk8XMQ68X$*1Xpsy%i;K)gjCvcMDx)3B^5q`Pp
      zeG6laQ0_6V2sYi^%L}u}z;E2=;>>v4GENQi5gp-UqQ~i<3_6!_{x)R)^d1gwVXyzi
      zc55I%z|3Ub3TBu5aeKz?Pb~RgDveW1etn6mU#UpmWl1;5P*a3)o}ezU;VxnqE)kN7
      z1Bg*rjYSb>G6_OXk(!J}#(o=MnT&C!ktci?EehOSLysr1$dQA72XK`mQIb3^ib?*$
      z6_NJv14xrAcxAXOcb`zZNr>%qbh+-LIq0<Hc9rBN8Lt*)c1ZzO)18NZv<qThZ?7b0
      ztD2*>3j~>`ss-LPSE*`&aIO*DD^?<XHi&W}!(6>ih+e+mWLMR2rMIYRBWv^q6La#u
      zX|c3)(UJ#7F{J{nMW==BRNj^_d>4WCRlF~;>l}pr=`FaN_c-&pgxe4Qblju0-G2=h
      rq1P$N4gR{j$q3gG;?XB6&+f%=8Dkh<TV(sNohZJc2MM<<Pq+U8Zr`c?
      
      literal 0
      HcmV?d00001
      
      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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
      Jk+k>E{{RKFeGmWu
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TT|0O6#kYLB59DyT_`u}rA-SF6%`8jfS`^=oPlA6$559NCQWL(QTSInBQPT~
      z4$uB5$FobJ0iqAtvwLzb-}&-we*gLT3&0E(HMB8|SG~|WsJWI1Y_GBF2Q_Px*Xph<
      zc;g*e4M~RdzWv3vT-&Q!>pT0rA~bX`j7smpzmgfWUArRu;E=&A$8@>q$Ai`LIN7em
      zpf|*!%Nu)~3x=_n%#F+U6rJ`%Q4ht(z_0T_IK06yP*!k5;kZ`IPq7^fj^~IahWELc
      zvYYXMVj?2|@>>kaW&ab`k-!}TUFcy*<nmjcVCXZT;g;MD80dtqVTfVszf`PWn?}bV
      zhGp3ihRHb8SFp%dqXtqi7`n@j$3KL%9Ug4jJ1%GFDf<=M-LeBmo}133*mH=p$(S*(
      z=z!?E?eVV>k{GhNyrTMs23kx~n!a*S;dSBoUPHq}hS^xzv{IIRZ`Y}Yfh|)mb9Llk
      zYREHWZW7oc!9W2;hW3i<do*%i6Jb=lB@NRw@Xacb*`yS8OyRMleulx0qdpQJRd5WG
      zEqtYTZA!i5@YKLF%rc}ziw$BqreLIX^ValMxwtMKhM|l3uU`fobCS+^qA2dN&{x~=
      z!=S=f9i^NrQka$*m>{hs=xL`lEp<*mm9$j3vLr#W33|G4o1(gD=OC#(BjyRxX5k3E
      zX7LF9<|ziZizm2ygv@seYr`0=15_B8r<4UMx=2NqFpO6iC-2008M2df0!CDOrgjoQ
      z8#TO#EZO_yOVa6q0`OUZ1+wN3^dIBV8FJ-QOl{M#w?Iqg1lC%CFg+=Lqr@nX*L0~?
      zsnH5DctdU9Mu23SKvEb|^OHmg5PeAn<T+k6=bt4jL8fG@W4t`WT&qoodbOs?8s}ln
      KvJ52!X5lY*eSnex
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U2_vv7=BKgCTX&j8YpyID4>W5NeN#n5~$G9LN&BNKO*Hrx0{nRHQ5cD4WxdI
      zGhR63j5FSNA!F~k)fp{TW*oiY!XM@MoK4cEZ5XDL?%8wRkLNt^^S=A<e}Dc3;55Dp
      z!Y43TuxhD#xs-Ap!>Z<Or<|ITb$8m%$sqg!!=28{m6G8~Wh2m^D^`uAlANizm6|(I
      zHH}KqDhP;0fxyM0Rdh!M{ISLO0w3da38M=U4MAuEU9tE=4+LJ*(2an=o=nk_)3x%F
      zbmml0foR4yjnabQ6xDlk)9)@9s{#izoxnA~rv<vrl5H`><yZ&1S$DN0tIJZl>3E0Z
      zIk|PmbeIVDE5sp%bwGoTL4lCDTrA}rX$c&8b%ZV))UX%(dU*Q*73Q#pBPxvFBHe2D
      zut2!FiHgj32-=34<T=t62<Gf7l}c$<z<tF%Gb_d;qwW>kGRm@AF-)1dHO*x@V>^Y^
      z<FjTeXO~l|uIZ_%-Fv%tR8hkdbyHT{qHR@!hzrEF(zI!+r7r1gnum}OAgdz+``Ytg
      zwar>tT5bd>oDSlYKwtZ@f~VmO&T_vX-I>RhbXqQ~PAt9+X6qy!K@#t1co*-nn5H8s
      z;MUosV-!?E7V;(DEelGa3-4>VfaBDcp?DADB1VI_M5(saSg#oFa%!SpaWs5@%L0+A
      z>#!*nj8ctyJRaMI(4#x<6(?0PtU_wmGxh+FX&A><_D2J7t24bAiso$&+b^zc(;-X>
      z9B6jvi0!rLh-~&~2-hj1RauSTLu7*ZXa~_Mf`%KIRu_=&e3d*Kt|2fV+l{tuXJ%<d
      zn(lT@wVbaTR<0x+_S_cyroAfnO%1njTR<yX%;t_s4kR*mz5`>OINT`{a+t!LhIvq@
      z5td6@xpCFCFDt^X0PN4QH|B;sz@58?O=#MdOS-&ywX>B-a>eGj5>s52)Vv5(49*Q&
      zM^y9A7MDui$n1X95J<F*oTeD)nX^qQciXjF0_Ly_<u^q<+|g!J!n{%^sGeRJ$F&<N
      z*_3RCttvHv1o0VB?A#u!<@3@BAs@yHEHx@^ei=H*B)*_59%^tvMgonJ2n@x>cjsyZ
      zWy`IgrW_s#Bs+!N1+vYtu3;HPvbR*rb2z-rlv8Zht~sWhEUJ%AuOdVB<w<o>oZ`6d
      z;y081p*~Yw`T67LfIB^0O~S`NAbjE(e?z~c_gB98u!sL&^E}h^xJ27gMgaCVtnoUc
      ze50Qim9tQNAeu41rJu@q?m5Jr6ThMN8TxPVdEf>1B-Jyq4rV&U<#2OrxUqFK`3wCT
      z*#|weV^CvcFRtP+CUBg1&)}Me<VYjOCX#b_18)+6h8T`v(8Ku_J$!hZG5tJ=sT+&$
      zdG`o+)}kjag!I5aNIpSC5B!bfQ-t-v22KiG=xM+`ruS^%9N)tp?BqzlzrR}#i*=mW
      z!+#*n06ltW16O<vlinxj)5Fn;=(WTKru@k2!54_?0X?h-H!#zM>{Ilr*A2}2kZlmq
      zuO5kJ?0_C*@U0p=zyV^NA^w}>_ZEiuJcQf4;XFo=#aVoe^SFaF*Q2;gj_%Xq0pC7B
      z4hD)?LY=E`An_gY_yGm{NL~HJ_0K$2HT|5Nk&jI#*P2YKy)5G^eXKFZqR03ev)uDk
      zw8mWbSbuf;fTv1bYs|YyefgQ;Q|1p5?bpO$lKT-15Q(H_ZX(0{1+IkBIR7gxRvBOA
      zN<7EPooMM9${A8aP6rZwch^zLCZZGTaI=ZN``+6+9`BS(nISD+q{37WDH(?XaNC5N
      UXkIdmqgds|Ioa?9Q~L1b|F#Z{MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_^33ycH)&Du~y?53Ngpdhb2s<idF>a(ffXHTvtP-|>+b|i(NRo+@35#3ZwQ99k
      zt76^I+Gy3*budy9ZH3lqtF^UXE7sPf)-GzRetxwJ|KEA<oh8X&{eRE*@Fe%W?|ql^
      zp7nRmz2UikKe3yLj#M}MNimJz(9vDLrM;~_la6(Ctxu)f>zC(RiF9LoXPci)rm<(n
      zHpR9ad?1s5eJq|yrMEIwFZ|3kPjtu0($kniU74+IiLTZ}BEvMM#LTArbBqpmr<2PP
      zU8%NBi8N?mSc<9@%Nlb-Fk?_6old0}Cc83;4w*Bt<eYiMgD|Ts)t%|=&MZx*Iuq$k
      zGSS6UsVCNVXOeC8g?@}3+PHY`yv55;Up2pR`Mjp3v*yfWDt8CB#X2_BH)YbvjtxS}
      zoK#0wCf1Qz8EflK1ZWtO8aIx~H$B;r%pA`Yn_S}jMbaqdT#1oIoGMN0l$GH3ye;uW
      zXC?_!{4|1TYAF^L?FpLKCpUDbV=^T_m&u%yYDt91piwqeP!*FgdCJNlL54P2<O|X`
      zn&7ALOp`yaGT1bcLQHmdS0bGgpe%TZO+gCDf`{2OnQU)JPNXuV+NLns(yFz|PXTEi
      zZqpzd9Hb-YC_f#^R5g%}0>f-NnvP)#tV?#ZKv)oWRS5>q_MT1)Q3D<8r!O##9Jp$3
      zlugG`6pZTZ?rOzla-*<+$iietVsUr-x<q<;Y+YMIR3#OUwXKY$lXCBMnwi!lh?rP{
      zh$7i|CKSx%43=ry<dXW`l<H2$6VpmQ1FyT=GSjB4^wVsJ>p$p2UIj!Tb8VVOCxUP3
      zyiHChLGtRRg~di0qWN@^pBkCQ4dh<mu{JHBh2UCOBD11MEtn>iK4<YZQ&!4Gi)~s$
      zOAAZn)Q0KM(o6Jp1@0otY-*zAFdpxmbC)b)N|c^o%<B4L2QbhjOerakmQ;H^Ht^O7
      z(MnqFr&aKFr6kj5uuaXh2A+6BBC{CQ$y70U%EDB7L;dEX<MlF9dZ+p66g(;Jo|}qy
      zw<kI>VLFY@@YCty|N70cDMstikENGvh9k{QVH(kIkK7aN)50`7Ct*!!sy+8KL~&Yg
      z(*}ZRgdyG8-N`nwJTa6tqKapJ_JLic4N;O-%dd8uI^^hs<>-kmnWp5rHmoMQblP;5
      z>{5wc=Cmf_8&@UT+9b{;S~?P4T{2{p96V!FH*I1H#@kXbQO&;yXc@@B5WLG4o3_%~
      zOjZ}XdneP;rCfKxzf2pr%9J&JI+v*~$Dq6s7suZv{lZX)&Y|;d`jR+YE7sZBwlxF?
      zccD!e(Zx&=i6hHXoeLA25_yjTHxij#VtZJ}5p=0dm(k@A0r<8&fruQ-Ky8*5Yj#Jh
      zJ<-(}izn(&UW{gmlYmDh4&kk)RZhI{mu<R|u7Y;PyVGeXoA!MDv<!~*D|D@&u0a_2
      z>?MT<UuDYtC$<-C=0BgKv2h@q2KG!@DcW+KO<$wyUB<}~mv8L^;}8Rz!nBrdu<1s+
      z3Az+(Np*U*2zS%psHT-rE?N9$o4!G}AkHN_;Pf)H6Hr&Ier$;qKKGip*>t;*6o%F$
      zI$Gwm!rlV31L&hYk!ek}gy=51+fUzwYY?9G$2m5Ai+bGSdf*2@&-0*tyqxRP`g8^8
      zUYK=jroAmh_t67>x*v{2Z&KtQZTb#<7t|!q>W;O!I$IdBWZjvGI6~B#06m1IGO+Lf
      zJ%YHC=!mDpZ3O5s7=KGDo`D?dI=f;0@c`{C>g(DH1lS&+UT7e|V;9g&fObJ-TN7OY
      zdQv=Mdooi8BwW{$h_}UDz!RXSG(?Scw8X?M1n6np!*wKMb+T1}z7Nk5Z;54MbzLA4
      ztJWpj65>p;>a#cxAOmj1%j~o1hx8+;J!~!K2IskB;V1ifQSSkq=#Q~M&K3$zR5lk?
      zdBLWi&`%3`C?@Lq{Q~zq02-p_=p_MbKVw=}u$#h~ItI8Hp^y9q2CjiU5+~zyvnc;B
      zY<h)$30#bG3PRD`(C`s1z27kr=lTwrCM)a<)30g2pI&7eU2HQ0M%(ln{RSM3rxS2o
      zIi|X{h$9YQ!RP7eYm>!mYT9tb)980Ly+Ln+>mDwd3;8px`0O1$CGKOf0%~OPd?;93
      zA`OR7pxGPmr?>mqBmm^bM2o<f5WPjC{PYJVN6*r!i7V{osf~$_<k^XIh~A+;iqQY0
      z!$4tmPboxh@6catdQY?{*a6GZbH!3Wu<5V#H`t5l@RlX(T@c$Sk3O>LWBPAQ=;~f4
      z5l{km<>bc3V*2xHcOU(a4F9`OP-=ukhkw}gPl*mbH}MiC|J$Ym;&aN|QmKvIoub(~
      z4gur&nY}~1DQQ37jx2%=9Ga219{1To@rW#9d!8|2_Hn?^emIc=dxh^d2gOwxu@-pE
      zcQ|ab&4ZBMwZ^&@!BK1e!Gj?ftdTW_*jy&h{mHI*?VTA!Z02&Chj9hdsCcRa-Y7Fi
      zJV=x4Ks?jO3IOwc)Zc??B|@-Ezg7UD5MUl0<Vu@|3sMMn0Pe)vpbxUQWAjKJr9r#v
      zoRBqr?v0Sd0B`YVo5u*^@WTKk{7K(9o5xGvVCgGhFh5UZI!rj&zkC42NyOSEKgJ~o
      z=$H?&`A|L#{$q1GnMo8sWjeVpp&DH1vwx1Yr!|(6a)74*O08IaV%@PJn#DDuHnoCk
      ziv}-mO{X?Xb|!q~!}$n5*B=C)_Q@V>K9Y~Z>be90sOPTPpVXp+E}vXsqaYu{4St^5
      zH&*H>X7d;LSST3Qg-yAHCR3<NBs(%Lzovya%G3Rfs>3j?ym;KWB)`1PGZ^)TA)W4w
      zSbQUhh$C?1j@@rH0CGOzASdpET$^UC_T<MidA7}ScrL;u{J-bd0Ovf%FO?>lfwBS$
      zGP&m<cP5``^A~x(8#fjvwj_}i=ciBTHy!F#-*?P3Kc9qc#9nfH3>@TVB$H!v(X@cL
      zL4Q*M3AmU@I>ZZT6n^m%o0sy*;^cDA4x)g?oAx`HHsFI31UZMeNhF2razybuASo{{
      zKcjLmDJRDj9bMg>ovCyt(K642Klza$7Mr=Lqtq};nVpwd0$#elc6lrfNgZsoD_7`|
      zuS?eu4pu?aFe0C|!ZX0L2~LBW0+t~<ly+rUw=?FZ17Qh1UgCzzSPOK!bg|CcDo>f2
      z);m}&?$ya>BmJR`P^FOq5>rOD7)<NZ2Vy+#LFu^s%z|p<vLfwjFbqagU6QRO%^1e7
      z(@C5sjZK3t5A}u~_ZMmOjfGJT3An(u5hDXGUX^CK0Mpg&ZF38-6f0>A>LQ&AjXwuO
      z4>O%g;ZS}sN6;c_RV76rYe2ka5>O4s(Ra)Mc!q&(2rzI;uG=Yu92`;lM-}zM7XcaM
      zv54#<ks8#uNzKc}ss>8Bq6O*1`s5ZY5|=wjPBTe$K?__^(cf)$4U8VxKqat7!6g>?
      zJpB;fxU^37@nSMGj*>xDAM5RB*%;G?G2{A-8R&AbRw(a3aG3EWbgYm2!30-OIj>Rd
      z2>?M)<FDI%gA_Xk!EBdm;}PW)$kZ;6x7&Pk?(vDqbQh`~$o1sOEjHh(bHH?>J+
      z@4wyVI|TmOSWuSI^=W|$ciMaxe-kR0@$lrTR)l1Y!VuGoL!>L}X;ap^;x9_<G|Atx
      zxkn(V?coKz1E4<NYxB4HzC47VGk4bVS)L}Ngj;HdJ_=eqUf?-DVDonv;B2sK=*uAx
      zInlv#)na%hV-ZD=VD_ngNjFL*{D{quGP2BYvTG^)Mk2i_0pqOf3rO@DYo<UrW{2KZ
      zNudKC9)3WiApKYm8m>7Cj5n+V$1np%5a>v3)*`}aS71Qi{It!_@b}Txmgv}!fdT?%
      z3MA)eZQjfK@F3nAOV7d<QgNPx=NO3X@!}zkP6N3=mKTSIXQ9nS@-)(kOo%7&i#ET+
      zKLa{|Hn{aC7gM;UzFZV4euD5lfq!oEFZdPMHm0o-<OXFgN7&9yaQndE|AG<ZLa=z~
      zwyt{jS@Dt~{w4ofu-L0$k*5X#CEg+uH7D?EHvcA<`!;D{)Y#(Z-$Kjuo*juy{fcD^
      zL;O1Z5x@9No8RKMp&EFn(*a}daN#!0Ek~s{qwov|dxzik^B*AS;x!8+Z2qGZ7h&Sa
      z=^H!n&Pb;G+2+6GDw}gt?zyD@ML&N4Hs)AzVzMpK_t5XVq<(1gM{+W$<Svb6TK$Y%
      zt135bcK7=AiFBf+@6?YOSylxj%W?|*Djou?;pcxaO~^675ae6|7ek;=`Cqcyzwts~
      zatYi#(8}fI&k>4j#R_i~N2YY)vUFNg{3dNqs;$kH19<(ZGHqokAIc%%XX(kg!|A|N
      zG+R{SQxyPYQ$ePhzGf*dz$<J(iTW`mq{3>DU)i}VyWa>~4c67x^=){MBV)^KHB|Q?
      zvUef#nFaW!Du6xn8nP(n6_}xZd1&TWm53JkF)KPYcBD3UfajZ%@kD+UEEKF0xRjH2
      zA8KLVn?2j|0&u}7Ftt045I)$Q>M66tpLmh7kLdHXpvV|EsZ?mvQMRBN7-q$#!UZdf
      zr#iQ42L=4bG@~!e5x%{8Qn8P91u>vU-i-NLx}+?IQ*@=}H*N(6rQ@Ct44}hnN)$oh
      z1C-ESrc@v*QqWxS5DG#{@;g;qI(QY$$%Qi{yAA4aTh*&0gfM~0N4nPK!jXQ32T#Xz
      z^z*jWZ~d%I^2QhbuxJbKxf^whPV=9Ns@^;ytie`aP?8A3O)$;*Ou`26yl=54PtA~c
      zTOyXu(}VXT4QiULrpv2Lqceq99g^P{y=OxQw(rw1(Q~N%AzRTP=+Q8&<0^OIb$Y>h
      zY5Oib5a*>3u_kD<&<t*b=hzTyo0Z<66)kT<sAQ{owmQ+XQJhA4=G&@KAw%@RMbB!3
      znUs58Qg5^<)`=b9a8vSTC<bm0!=VOJCoj7+1^vmBEs!sEsHOd@uX)Z6?SEcWg6>jH
      zwpy-M2yeygQQ|Kg(3?51$D^TG&D^xP55XwVmto636$x0Bz<2jk2zi;;@97~2kzAi)
      zg6PyKwmLOe_0nc3rrm{lmpa{6XQ&u<5)2T-Cn188irLoa^-l|{xJvjH07-d)skx^%
      zKcSY&hz+)C)%7#f*QBoGS7+wJaS_aPgJMV}k-Mv;YPVH~N<rN2>ki~4ljjt(%{6d$
      z(lnWHmP`PtD1{XykaGhAx{4-dY}GBXI*>`Z!?9^<{d#a72)#X)M(Gk>R*D_Kjv3IO
      zzYD|#5^CpZ#52fS0)iR6oX*`+t67dCuo+`rH_EV{4<B%P3{ab4v8*n%)kW%J_-g2~
      zWHLwm|M><KE+OJeZFQM`4V6yd#bDgc7qI48ZW1?2lUUjhN|cb2rnuazY;|=myU^b{
      zz`4k)W_69NuI=+c5<;1=%~sdR13{qDmn-|qq-|hATgQ?5_fY`3$R2Sc7u<#1+J@jN
      zm|;;yE-x7l7rEl21x&^FPd+M>?^Mt#lP^YaCHc%mU-2!8zT*24Tu0CljDdlnt*9Ke
      zbiz*r?Mk#vJQ+?7S~sD`#Px{koiwt#<}n&wUGpf7eT*i__0Y#?N_FjHR8w8|7}eG8
      zrEu+|RBvW!>O+{LXc~SW3JQqMz$yu})?>#FSh<zP;0^agI+G5gcB-coO~<HecQ2Yj
      z$KwvW>eH}p$$6A+$q5WlIFn8&qIZ_i8_r<VC?acr^`kWUQJT{nHJ|aCxJ=5@7Ylb&
      zvb4y%t6|R4$%`HH`#t2x@2Bdrv?6Lc=F_xxJB1x{53TK?kYo1JsZ3GJv7V;*cCsC7
      z55;lb1V?=w_18X4$?deDb`K?^0Vj~9jZvRm+M<5P=Pl*)mh!nv1)ZQ?s?rH!sc6Uv
      z$#PD}$WqE^2!Otty|m5o?W3`~DBir2(osy&V}dfq2}XTpL%=aXT9=}zDKi}NaoW5J
      zt-3vQPL|Gd`?7R_G}tjQ@e)~PFTLnKdW^1cg5E>ZbbO9KOIP>M!x&V2Qp`&@!Kd<@
      z1%)9{-m>8B^d+J3kQ|L+C#-1<YZ}AN(U2yyhpG<7h&*#K)d}5AgPo8Q?4_^cOhL!L
      zm&!pE8ojjLpjACITyA^mRwXwWsh7tI>dNoP(w)&@`8`fBOW)p3ezS+l%OA|$Sv_PL
      z4Iw@9VHp|L%}1qa>t<G(gLLz8X$~%bLf?E3H(0S@h<Cr+yD!sE_sGzpy7`PW%e_%Q
      z@J0=b1h&&EIXv`ci32T&M=P9)EbWa(9D5%HoI!hOvJ=@$6L-;b%}#|A>80lZ9c*XN
      zPI@s~iJnR)lBJhdITczC6<~0xhtA8-?sA}0kjA%RB}x2<-G%WZb}aYK!B`JEdg<rT
      z>xeXv%3`-l5aL9f$~+Oh^edC1!$HPy>3tnia0c(CVUDl-ac3|NUeimzHEC63$adZN
      zJ<WhzXPMi%ySURC>Q3L|2;aPsPWfKCcNe_{P5*tgVi&#B?3C}MccYOWI#rJUXQ3@R
      zoTDQ+>Nu5U(JZ~+FfuYy-45<m8j+D%`cNK3Mw(}2>67SiS^81>)Ny+0U(lryPQ@;!
      zW@iMB;p}A9%NA4!D|6`P13Pej9?Wzz9eOZcRaQd`J_wG7Muu&t^F*v;Jh9?|CswWd
      zBBm5%!V#2LLB(DYt*UW+Vw?wCzoHr(_8D0oQDWtY6ValNi0EBsGe(Aepgj)6==ic+
      z<y3H%$M(>#YoF!`+i64X9-a`b;Ao^;2#<uEaF!?a(8N{V{V<-aJIXa{!RVmd5M{gp
      z6i?YpBjmD+W;HvJom}0^b&7iEY$x(CAD!jndW0CBxt&_E)l99{JWG@*%kyNZeK6k0
      z)7-cnh8o$!jnT?oyr6j}FM>LW9Yf8syts#^fW(7u7xuPW_7GxQn2y!aWf~#{q6{0T
      z{G3R$tO{$KHIY|XldL1HV>qhsXW)9S^|19AH@PuMy+^xX51X*c7Ffqt#GtcjD(+{}
      zx%l?)JX%5L(<!)~h7WSq<1?fbU5f9hF2mC+aQ9{WyOO?2SJNH%vZn{vd+8c_h_=z=
      zbRF%+H#9$>8)zS5=TD$XFVn5GpKimu_1ozWnDJ-YLGRNy>F;zm8}w}+gfdqpz8;xK
      z5AbBXf<2NR#7Q3E`IP0Q_}ZhH9_LeNH?PN68)<rmH{%P83urH2M*H|``XPS}pI>aJ
      z7kCH#gzp8wco6M}=_THUPa>Y7m-z))_Rr`S{5yQU@E+~wztL;_G5r>y^mix%yrHV-
      zO*I<rvGkUzrnl8p`n@`V-cbwaUDZr~P;2Q=z@L9q8|lw#6TPRtM1N5i(g#2}@2hR}
      zS9KeGr0%AV)&2B|%F^G}E|}TV^l$Y;I-s5d?s*>fFEOiE*;K!SvHg+#>LU&s6+FnO
      z;=#rw9%9s>UB_ic0}nN3a=9^=BgP`GG?wsi<7Bi~a)q&)M;I+!W#B!nv6aUd=kr+O
      z8XjkSjmH~z@dV=@o@hMIlZ+?%P-8D2X1v6cjh}P1@haCCuXC;O2G<#H^WnyOTyK2D
      zM;rg<W6U5=H68wfc{oot8~8Z$1fFKj=jrBBo?)&+yP1zS<2=i3<vC_I&oj^E6U~eG
      zi{=&FXkN=FnK$qP^A28U-ouN`2YIo%6YXAJVm`x5&7blz^A&C~_w#b|4PI@&%WKT{
      z_!RRaKGpmOpJtgHv%(y=hH{Hl!5g5pNox|fLu*r31D|Eh;EXksH(7Idi#4CmwwCZY
      zRtukJrT7AC6JKPV%a>Xg^JUhRe7SWaUt!(GU$%PqN@)4j)=s|0+RfKmFY`9*RlZ)Z
      zm0Baet^GM{W$ouxyc#G9eca4zU>Q@%$7`W$2F<i?^;+|=_NjCgaM@|r`Ft9m4n&r=
      z&g3)D=c8_G1IN(v!zyO;I*tQ<-Akjm1>=IS1{-gd)&qa;vm(5KTk&*1J`hi$F9>~~
      z$Y=6KwC1BG*T(H=t*2|b1M3BO8wD`#bbLGgFirPb7m&j#j0r=xkLFH14J$JC!=B10
      zsK!F_XTd^3s@iy%9zkDNO*MMB3oTonVBEqPv<9gK#y09jYp_~tT*%#^YKYosoCWJ@
      zr82e2SkIgAbf~(}SPNS#qjI&)SOA-ArD4$Xd7AnPX#4TJ1(ZhAOQ3NppG}oU9lo6w
      znk$S3I-Jkpb17oXq(k($N@F#+A>)P{d+Am_kI%=rm*_hF60A95yh=@cA$F@YUZ*8|
      z5n98IH)tVWjMfO_ZEEC8&~l9T=mfqLryOZEV_(^=(mWR{Uk1KZ0E|s>DKKC0`Xc5>
      zG)POP!WxRVC71IRRAE)%rNWo_N{Uzw_&bQJ(5kd%qSdBb=i+18%i&uptc&R={t91%
      zaaRI2Udvy_xE>nJ+xR*fZtbK=nDI4a4FUMjvx~5}&K=Y@ph?I*_(+6yz>*nNfjekr
      zO)p>1v>2Bgfip~8ZxTS=LsK2g?eo=0>l+f4&Al|V&anh#x~R{_oeTOLpP=x42c9?Y
      zukzhafhzwUbPHCy4U5-3&N~FW?>4_ln*fH5qk8#n1%x46M=ft}AIK6g?+1MDp%Z0+
      zatGi)62S0#B)|>H-`=lLs83L+1r!RL<<c`qZe4;d32+23eD{t6k5||1;RnquKMeF~
      z0B@T2yT?R`n^0Yc=-*)0xo5Q^Cen)<-0AaLi|h6s_^ok2f|Hv(eT$}mfwzz!@3`cB
      z)-bsFQG6#%=Po*w@1}bG79ESXP&4=*TEO3?<$NEl#<NrT0SNKC_<-eM>f}f83GkzI
      z9#Wjkc_&Qlak`Ov>2`hsA?SMuK~LfX!rf5u?;)f-1<<(%AE`ZqFSMSZ5BOPD{38zX
      zbNC+Ud3@jV0=}~O36JBS@??IIYtUcMFYDy(en}<~zP!W}pNV8)ASgd^HSffpiiSa<
      z#c|;8D`>8E941o0>7eB*xRrV+?-OYGs1srIA*j27kbE`o0$nCuOEEpy!bhmhdae%v
      z^<?dm{B$QR<|knm0fgN#IE%QDAUGr|8$1ku6C&nq@+d0Pdsr|YyaWVw0LLnfJ^i5F
      zU!CPW(~TLU%$DPg2ILLLRRd}94;rk9RW|N+s=_67J4J9o!ZR3`LAQGnZtz8X+iA!p
      ziZ3xaVvgEzU|-efJIFSlr2CqU>ZS)r|L@i_4qRd$h?rG(VZEDa*l3VeylT~LG*tTT
      zq>v9gA$hfMi6X<X<PntFy2L^dtO6=-%H36s7HIrolRL3I*R6X$!KerG>X)V}uw_44
      z{2ILO>ogQ7!r?a{vN!RD;4KL8by~!Kpk@3nJj$OSqQ5}p-h<HIhsA$D*Q4)Ny!E*U
      zh~pvtguciB0~PxOh~@84vrp+o{s%sF{3pG~|DuoaUdH4DT9wY0S_S*H5+Fc91%C+P
      ziYgJ5F%4A;(?6klX{g9xnyE!^LX<W9V}2g0G#%071qj>+1ebf7%s;(4|MW-j;y=;q
      z^*l|}t610<A8HkR8AnA$3<s+Y!m|~?l178CHp@TN{)ZeiUq*V540Z4>{$;b{-^ssn
      zADxOv`=kC{{JQS_oh}LR8<Kbf-~V2+c>WXeQhrbTU+t=0{JtLeSGgUH+x$HJB#`C5
      z?PNSO8+^O?<7Nk8{*$P+i$851?U*pJe@6Y1Um&TH%cFb%8~RaxP=@1&Pt7X7{0jBZ
      zB9s}dy);Ku_IT+V(nAe85eC#hBoFn&1*ktFYCE=oeO2Cra!A<4{Z8nq|C4nD&>uys
      zXpI`CuSpew=$^$tf<3=Nzk(3nppWPiDBTbq!{hNCST#@QnKaAule^(PNZ~KH#FhbT
      zZ8ZcTd?*c9<y3`L55tPJYB(LGM$!xg@1w@kNooQuRTHu6A+%N<MoBe=&Qvwjt!n9F
      zbvRw7j-YMoD7r-*Nw=w^>25&d@2CcPOdU&4s^jQcHJ$dUne-Ci@~_lvdR5H@oSqLD
      zd=g;rLcranY^!BFM9pMJoxtPOY@Vp*a<!VzGu25v3u6{y%yQMFl|G9y926`E(4cCr
      z{}iQ@u&uQE3B*CE590*lnDB1P)NnNd>gnSp8f5uUx+_x-PAXhou3?WKtBzKq0QLhk
      zmnzk0H3k5!8z9K-yNwRxZAbz9_+Z_y#wmqyui_8P1Q3LIVy=axB>=e4j#xA+*8<<i
      zgOl2m0*Wa}j!+A9<2rokSOnl+UB<Br!5b)9hkwW1ci@det#AwoAhn7DYBkW?8lbDS
      zG)A2Q@vVmVPSb2U-rXR_CaO~tfr6w)Sf?hz-GfbN9U_h&hd4wXik1nCQVtPIm|-;;
      zf_BM`<6i2fqg}g^EElzcdMOZa%}!NaYi3nlfjlWYl3E82#i3O#nw)X&0(o*qYZxcw
      zj8;cNdlWW2S{>tUcnUTY0>`-<j_ki7o7i#cgGl1Akxp>kJzKG760A5=?^)@tk>7Ki
      zw<kj@tGu0-%g$J3jJuQL?S$o{`DSsMwj4|%mBKz}fmLZxpV52S?ke71tY*+cZ-?Wt
      zgPg@DW#LH$E`_95Z6Ql-Euz+!r`CrQ8|8fP<#<?+D~Niz$66L>n^ZWwPde3kMTA&+
      zLQYU({9d(M%@!{W7vhpMyk?)SwbW(RT=*+2T33@*Uo6n*p7vrg)g`cj%U}_g7tuOA
      zPwQ}`!Gnc1wNNd>RW_L__qgh1vug1kx~o6MR~1nl&Qp9c97}(S7eReQ16>+xvufF@
      z0+lW&w;`puPA}-{T5ds1%IjJfKB^3hvsww<+JBQ79$Tcs3r5hL{pr22=<vb(;e&a#
      zT188}!}k&Tl>VgN0-@hpv{sSOVZowGteRoh1BE`NKS?`^SeO$!$v58aWc4I0NkBrX
      zwpXoX+Rm*&Y=Awv(xK1uK>i*&MXJVLT@)oAOu`Qm6KcSZ+{>$n+>hK#zufD#DZmXS
      zb_<0nzgI29RooY%{=Nfu3xxkut=^#_5DAn8@1P@)A*j<ZA}EFGV6R%ow1-YZe6Df)
      zqfy(FKD_g~`M}#f^xa)5*}PM26kJdi%Br?is81uya)RaMS=G7fk`PBi0B1W6d;qYZ
      zx)8j*)x$kh?Su=f*VZ_pUPi8xE0gQ(0QRsUhUpD|R$@1-Q`jxck?`mp2ma>mm0#1%
      zatabh$bfC$hs^r{gxl{Ri~cT+P!G~L^$<-|kI)(Faf+*6TCa8^v_6fO6VK4Ocy^)s
      z0Yd9@bdCBkqQVQbL;aK<P%k2^zCh2YU(k=$EA+DZB|_?dp(^!DRGofBAF5xYnzWz8
      z>NT!Xzu`mGulWe|TRsjIrCI6?{-S!5m*Bcuy~U@ixADgMT`j<y@RkcIlGA8Z52S(t
      z@uMZd6^@EiYLgDBHm_5gB}t$mSYr!X7Se{5YAZ5zAC2S1>TJxwpYfq~b`E9)P}3XF
      zPpWefNPmoX-sh?F(Rzg{HI59?hjb2VWo1ybf8wvOWn7r&qS7I03aaw*rxLCz^ET{>
      zxJM7UN@U(a=R=q4Tn(}iL6P%n4T3`XP_u=XxL`X4wPGRx^#uEx=;1t1>oH66Y0-M$
      z9W-8N)X0o=UK{n*LX|P?5-H*9G}=o>bv|8)++z^9wQa#WA&A$Z<c*#};C{294C`nF
      zl;N-NR3D<m@(~o_ziE>Cgbr7K$A8N3DIJ5p<JG@tjygaK;O`b2ikc0RS`CZ33?FSa
      z0(1fTFU4QDe8m_<Up0o%%|;pBX$+<NaQ~n&Obb+sNnlh?phzk_fuiLJ6fG&P7=Y_r
      z)J0mL5oDGk0E;F88C|ZffIt^eR14I?tH>eh%Mh&(#oS4{Pa+}SG`r$~;VLbj*$5$5
      zE{41L3gm$5!af=dm?Q6K@K)%4Jp5|Z!qcyblu#D%>9<dV>l{-zEc5=Nyj}wxV>nsH
      z2pWXsqTCosqm9ut(HKKD##nvU`R=ayv(DC(i|?B4ofUpjU9a=xK{Qo;UE{%tG*;b!
      UmPIu{zc-?VAgXS{ETy*pKXlVPN&o-=
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETW``}7=B)0bR0J3rW@kiM5l5XtB0u<EL+rUhKP_1Bzjp`#V*j2wk+(I_%~*v
      znTJF#P5e>D_iGD*q-1(g=zD&i_t4*ezWo4jACDyj2>G_&mj~UBY@3R1y)(?N{Q9tT
      zs9HwnL^bzyTeDAxl7tXp;aE9Q<c^}Z<!bX-ZP^mSgp^^noivs*kSC)Ev!<7hkS>ex
      z!SsqnLU>2hHG7w^k-5-2+aQFV8%JssLCnPw!8{?D$u=TjsBuV`B_zt4u2%ZprfSxe
      zW=AC~mW`IuX(*;9WKS8g-)k13Q2vjWFx)whoy(fA=c0C7RI^P@Zx<aN6Pj#!ykjN3
      z*SBj%-)yOzF}go!sXbdWbW6fjLUP=-_VmrjEa4hq$r*@d$ffGY5W{t>OIRbUU(oM3
      zZXivNJQ9Rw{|MhNug4&YTevM@gU9XXC02x4xXy9h!CfX{IppicSSJWi{1?D0GrfgT
      zB#{-%kmKf!^BFa$m~BYdBxL*m)`zFS2QZujZ*i~R>}ajhkysxQHZf1OTc?(-c7;9c
      zvLUScF0hB6K)i}MUl%_JVl&*(15GUP+SEhc67YDid<y)`h*J=kz-J%eCxR$zV*GZ%
      zvd~0x=ZNR>pON_J_*~-Od5#5k5W+4;>|v3mW!D=^xXcpAIa!$pt~j<8)`i(8iIkK7
      z1Lp{_E}i>?1Z{rBY7mveFU-(c;R|k_RlXznws4NjPbcvLR*>gH%g%oQ0!E4x3ZQYk
      zU=k&^zGUkwE>U$LZ8JSCFoKju0b2}6=wyBiaAXYk_<I-Rm<S%=q0^LY_6Xq7UuX|k
      AlK=n!
      
      literal 0
      HcmV?d00001
      
      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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
      V_#9u*XAqr?;!7e3eB~nD_!l@tn_~a~
      
      literal 0
      HcmV?d00001
      
      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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
      E125k7?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBr9h7(EvP32}LmiUPiX#nyy?(NZlXz9E$s8$g>FiuktKy+ClYo7rqI{)PSn
      zet}>7(9US+)R|8E#Si^aou0cJNJ`Q=nPhLCz0dQUbDneWUw{AhJAf-FhS4D~x@A|A
      z)uNU3T-`2jI&Lw!wk_=y$CP1&1kSa-&&p!S(mkp62!uRY_5@C(4>ndyy0@LYTP?XM
      zf$r-CyWrgvI2CKRA)aG_1=fk86UQ`!p$T-x;<+9O^l9iqw?KcoV9S+CF)!V$p10U@
      zFzpz+mDAmV`d<%*yzN3+;LKs4Rz?KWWmt~Q61N+88v8QdD@&HQrSwwqHf5TLr=mEC
      z;V@1SO)GN^pI}5F7EABwyL!^n?XBc$en%S3g`0$mlJ03mKca}A)o>1D0uf`oV41G8
      z1;#%PrxWK@+Y>#M@~kRzLBnUNOvsj1Pem^XM9YU1Iomcxn<U^QT*=XfO=rGTvR(;z
      z9}&%GTlMW^>qS{E>4r=`Sm832cHFJx%NZkSI>n@NPHJhXHP#wY4vF5a8nWaS9J?IG
      zCCaKq4catjmp$;WbPu<y8C}-s^)D!<+|{iLZR?Mv4VrlCtit$G;CN$%cO1u(x*f#~
      zu4(uRvjSQ^h~-$ErRm*As_UGF6t1)Dv-*31i?LRAtu0l0CvIxEg#_KI2f~Mn{#iTy
      zKLT@3hGTmiwSPX2s!eDmhsQ%Kab+n>b(eHni@T30e`E@It6*=b+y>veWm&phF$`H&
      z`HwgcS8ht?GC~st9&bPOK#WxlX)G&Vt8BijyVS*VGM?)<JP~VFK8U8mcqnkPfg}ju
      zscf=w1Zy<)OWsmZWU;P}4M7bxpS60Gcuwtjtl<fsk}$=Tw#kzgTWD<=)J{e4oU*Gs
      z?S{(Dt6W21s$KOarJC{aYRE#W#LXj#hgU#*Vt(Sbh98ijPWcMchySYwr;u?ft|1o-
      z>PGB6xU?^+(zwjy-^p8EU_jlWTy^ow>xGdXt`^b34-lQ)=Qr^Vy}$5Z2m1Nj=V#6$
      zggNd_u>xple>aX}kpGzHR~20G!l~E%i5aTr?0bmy$+zfD)G)M<(PggBd_ez{dNMZt
      z4xe&4Q4dW7q0gs&W^RCB)JJ@aop0k5<}ragn8X6E;Ts>#cpc#Znps>#%;y?I9AiG#
      zNhJ83V$BfWOe@wRM*dMoOoeWGC^XbnLvk)M68RG|d*~a9{DGMouD(Xk^ho4ae0{BF
      zsAmsj0sbpK{3$<eq<bV>!;RNC6A&3vkHo*;HS}DhYTyCr!!mVT!Fj9_?=q3z$0g4C
      zDl$|#ORf*eFN1qn#{)dV8aD8lpXXc~c<M9X4DcV$!K^bUC+5%l%uTAb;45UZ-d*xn
      zZx^{z9x(AO-zrC#_>QYEapj0*iQ2@8;~u`JRze-v`do9Ys-{0mlD!`=pdOsr${xBx
      zZzdD_xc`Q4o4u2#OAPwLZ1T?NA?8uCn`dpId|vNSAzsyE`aQDigSmbDm`)6A)UdIZ
      z7<^WPzLrp3YcSUm15f;L4O>SIQ=m9IZ1V!cuqbnprm&kJOxGbqX{Z8sDhMxp=+-~Z
      CbQNp>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dZBrXn6n>VxEQA#(5L&E76fH@3*;;&SX=#;$C5=D<L!rLRvRuM4o88Q2L(}n>
      z^cVQ0A8^Kk)fq>>=!`$ZAL97j4cR0VX~*$Ha!>9(=RW6o&bcRl{{7Q00N%qlD%uoW
      zEI1XtTC{cFGo12{>lO8N%imo#Jfo;0s-S1j*f(_Ba0>d;)}AnZ1yRQ+3Wnz7Q8kE`
      zJLQsL3jO{f&1nVkvakd1{#+fRS~C1yeXd&ac&?hR;|qt^4Tlbm9M(j!WE;L%bhm@c
      zZdi`x&nUQ>Is-JkrwJ&XXTGz%C4mUKHFTm!K_r#VcR)d}h8W_~>ery6U0MSgI*?G%
      zowFRVSSfA^Z_U`U$+tJ>nueV>JWKvQ-i-RYR$0NN5WB%4)RAmwUMcTJYzu$Mp}ipd
      zykS?Ehmkr3Y}J2ki}J1z{`6T2xn4nkG-c}BZcz`kU06s5{>>F;zKOZ2DN4TOI%O5Z
      z3Q~<yHziqb8R3QQ3A~MWRE$ur7t5~UU0fy?u}>zfF7Hj{UM(dRDORc3_l|2;ifo`x
      zWH7E`jIG*yEZJ$8z$Evn-O?jRc=Zqk7gFgK;QGmQCq{8a<MX)6RxmxmEbC|Uo>7p1
      z?AU*au6s-;@IF3N@qvP&x(ZFQHTAZJkMOaAm{BU(j}`d;Z)sa72IYQnC!J5=I&P?7
      z)sw+nulSa&&$_mJzOn%{+ytLqN7-@;w(wm?!APy0Tbky$kAmn`wjrCS95y9|IJ;^2
      zN{g&meJ)g~GT+<DZspT0xqNQQ0xerGlgPGfvQjOs^@1^l_MNb3L#O(LC1Vjx+jW@1
      z&6gA*eF~GtTbB=DQNukf1>JpedQLZ@o2FEPgXg{+PMYkTRT;jf;P!t=q-Ai(YxDBj
      zi!6pGc7!J!Q&7L5v&K<+Q*zkUu#N{ZolUB|Z+N_7)vb7@n78CK><TGQN{+ZftO);D
      zBIuDrl~#`&slm#D$~DFh8Pe}HT3cuf{QEOU=*o;e!@11(GxTMYXGng}^ERC4_dpOe
      zgD7ruEPsM7e2PBI;sVcxYw;Mw>-+`u2e?XLN#r(Kq<$t|QsVWU#G51DXT-ZpyanQA
      zUy3IgO1w94iR%!pC~@BmnEu6Fqz>8459s?HJ#v{yMw78aymc_~8%CcXG4U%#zeC5w
      zbEFkqj}OM5L#LtAH#s&Qcn_+|A*Ke^A93w~x7GBSBtu}CO0STAo^@MCifaZBFog|V
      z!zO0%kjib~4!#U{tkkjzb<5%w)s?zs=@$=pWU2FPpl_COQV)4LPb<c|hpEn8dQP!M
      z3*1+EdJnl{rN5<*)IyiZ|AF&AL)oBtPVyc*#OFs?K4{uYa&P4bUo=P!1s87ddmG&l
      z1leX8EsS6fV_aqN2Wk)@2|Xmiu02k~p^r=?Bax4VC)mal#G+4Sa<x5~z{6lK@|51q
      gjaNc1JPPaMGWIEKwFx^DVrM99oR|u}3gW;12c;iG?EnA(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-E$LF6#v~c%_f^|3xz_rC?Cp4(gFbrRT4fFLM1e$V6j3)aGPw~rOBr3ZlLw6
      zFa8f&#&MkSA&&MzM}(p?4nE2F#-HGfj&DB7j59L+?k1sWVaA8Od+s^+p7T5B{LcOL
      z@ee-%*pGPy0f8-(b|o=eDkeO~u-%EWQ%YPM$(}5iW(>#h%8r7dz?y5u4I@!B?8(IN
      z_%$={DF_Ly_q7$zDkhfC3xwUW;|-Z}F7IWRk7O;^O9_OIShnRI6Id5pZH$i!1W%R=
      zrivD{X^5a*pd}U`jexE+C<qI5WG&mwRZ8QgbHNxdngX5Ka^5J88jdCRb!E_-vIt;X
      z_J7hNA|>x9OHaG%keU)r)j&3D;u!_q1XOk=6F2+wi9)%Q$PslEJ$O#RCV}>qS!;M6
      zn^_mjGyReZY>361lF!ujsVKJM1qIuf)3S$#Rl|$e&H~xytjF3nJTxOyuv0*PI^&UA
      zLsaZQOhX*KEbFv6C$KY?U7ba$j?DKv;yIQ*nF?b!1A7b{p^Lp564=Ll3WjG~n49ri
      z;Nxw+qv8M#D(GK9o|-=mhcG}UnAa;tkxlA)M%m+IGStf&4$DwM=~+bzM-?1tc=U<q
      z_ukZS495l3Nz+T46Go-jT%o3ODe2=?$*dEr!qzj5kE%#xP{FB24`kM)cd;mkLBne}
      zEf8g#jO}`cooDi~6-1U?G#f=+ahbu>IHREpL#wD(58gzz2Aqtn!dVSD3=2f^hHDNx
      z1=A4_zU91z*D=Dx3#OYl?E;%c(^wd9u)MZEBr4v-B?T9mPlFh<Gln;nI5j)Ne8%t=
      zC*W%BtPkrcLNvju4Sy=0R`E8jD!9_<h2QyfxxxX|@D2=tR?E#9IkqmAj*rRXc?|_=
      zP%SrOPsm4r6SEZ)8YVGC3{!@i^Qp~=9}@_a_sh{<=2bnmv>f1K`{t*>N(;@x;)pzJ
      z#2BdlJPB-i#^X>Q6+R1rX+{W4(^;tKH}wgeW<qfc@^x}NiMX=s1XGanCIO4IFVUwu
      zQm#08bI|f%uoW-vUYRp1!=wCK<=ZEpKEBxjei5kDL@5n&FEwiKU1+_1-=pJO|IAvh
      z?Ys+eJ&2>caSWZ@ZK$2bI;`i8_k6DeMMiF@`3$(c(GG}1eLrL4f=KN4f3d#%*qGbR
      zB^m6!jgEWJ1(K~*(W<xJ!xn-2*pUqBp*?r7E2-!qJt&26XP+Lr4J!99z?9-kzaX-N
      zWECAhB6Z2v+{G)&h)(Uvq^hgBqKEGwGZ5{HF5pXfAp4b%wTG+VC-dFNucwL@X+F1r
      za97lm7Zy7&NKGwVagVMnVf1iB59(nlM7tT|@-0NWqe~cHKqN5GR>eWN^R=`}ZBS}A
      zcSpLTAAbfVSj8GCfAT4mKo!B3fwp?kNLQOzMQc~vqO1TPfm@FswJiDoW%=L5X09h#
      z$~4P;3Obv$3#ZYK44ZO>+990BSzP5{PxD{GFg%>YJhdNT1fO$gzrbaDjVt(u^Yk6^
      ztg(p)n7~6!;Wu2vpD5xHZ2SvXbfY5T7!>`O^IN?Lq7a7~t)^u01`9}Ono<Dk#8%!f
      zktVw6p_dXHzg={oj2Tj{AAjRI9E6DWFSyu8s-*D;G43M~OU$N%8zh#8<G6`gQfVFs
      p8GD$-d;o*_zenpsT*Uj7qWGP0q_qwIG$dkPTh|GE;8*U${{U=q1ML6+
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#k~PY$<Dz0u?V<uG)gKa`jTYAQT~~h^ZkyIxJ&dvfU-KTZEsb58C+P
      ztBHTdCp9si8A@A1BR*_*&UC)-eCIo7_WPeNUjfWu-9Ut4tn5{-!-{KFL&vpN{Vgs7
      zG5-9hAf+$Yxwq>IX&}mQagQHx%jI6#da<)7?9f0b!=NwA8XoXNs};l0x#W0G_=uq+
      zo7-lHuK2qmfev(=Fc4?xDLS6mtX6h}e8qQM!H_EYHg~tVbW~j5jE3)=fMKHeA42mC
      zF`<MrjAo0i(n`y(b!CM^TkMC9@8y-IL?a9g^fL_o6Ouq0g9a`!^taPu;xeu<#JO#Y
      zAQ-=+3*S(nYbJ(pz4_M+xslz-ZFgZ9qXtG!nOiyvLQyd>hH+w`Y8VEJ+Iz>hwxr{Q
      zrBDi9$;WYn%GI8$Bv}(VOg59uG8D4MK;1M#IbJz`o-1b&3EaZ8f!hpyZDg3RK&8g^
      zl`@jrCZ%$kQF}Az<YqA5bLo*v>dadna<@_3qKUh$=FX{#@0)ngYU{k(Tr%+xG;}9z
      zSYQ~*=FZ8ifKN;;qqhlMjAMm5z3F>W*#3c#Y9@!ZB9d3~tI`&0jv8CDeru+cJrr(u
      zo{%dp4+24hn>>A&sO8jFdSY}5qx8^Sps0&h7QGq0W0Rke_&|#YO#1EAn?G=Y*5>g6
      zB+)|=%?*0#REpM7iuyFoOQMg^&Oi+V(Kj_*{fJCzVycFlpD@*=P0}&oCuRSIe*D(-
      z>0@A>o+#)uF-yb@b8QkW5MCu>O;W9uu@*8iKx<WMPsrxmklA(BnHm<9>U%Zhzri5c
      wkCpzXXY{9)gG_x%;z+VCq*#K6p}Qq@rja^RPaVOk)?C0Ey%V~!G@c>;7mT77egFUf
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      GfBR3|Te<ZB
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0TW}j!8UBvEw${qVaTV9D<0Q?c4YFiat(!E7<t8{zQq;<q#)(rm5W1E&_6B(+
      zR;$#8mI7@^uPNo$CcPvrZPRddN-Af_OyQ{y%rL_MFASF{0|N}aGs9(o@0^uwrBa6n
      zdC&gmzkL7qU)DeQ&kx@Pa2v`&1O%?1a!QHWnOvge*}234tC-K7u-qUtf!5>Z2{Vy1
      zovFmg<Z&zG1<@q1ChtxugQ7W`*ynh*H@9r13#?wY8qDP#%bd(v0!E=UX=jJbLcw;X
      z1lrR|OU2x4XFNOanC@JX)@C-l*LE2!@6Ii$CnNRsj~wyk3gejP(s$CA*!jeMJ7*=k
      z#|1+BW;0en#wZ4{Y7rqdQX@+@0@`3cYXuP|R)wwNA%yGDX5f0X3pDlHj_vId*j&N0
      z7^N0P_qa5?!9XY0(9oK-i(XNnA<}(+2m)&jtiyVN=3@kTFn{PkT42)$oOaiG4PgT|
      z1+h_}tsZ{{HsdA+DU>{c9Tj&~^{a4GEvXLT7nwy^m9`ygxHL0qxd;97h12<rnHx7<
      zTfSF>jh=t0&-i6!er@$C!ZfpsB^7A7wm<^H<}bwpNG|yBteJv9xHfx%l~QHcoLQu7
      zOLdNw`d4RE5y?_)l{MVPey?Z3Cefv9hpvOzA<(hh#J-O`B|De3TpfMPz{zhYmNL^D
      zq)Fd~5Vm8h3~{G{UDz!UoU%L#l5|AsqS=lC1A8#Y#vpT+lNE^9gH=O81w~SZ+-G3F
      zjHY{eA7ThCK8}=uyXDO);ux6ZK$kpg)bysCi7{<p2*YHuXcbJ?<dh9gn=T757{VwH
      z1aa>*bMJdLFouK7%e4wQGsC>vBZGr=GSfjKMM8SI&%gxk=j;_d)AfpnZEyNRxaT~K
      z;^PKBA=Pz~p_C<`pEU4*oSqeSacLz;<w*k>kh9<kGgq=kjtN}T2bDIii;udEs%pf^
      za}ycj?8%8dZg3^`29aCb4{A!P_JbPL5m$|BXQf&n++T9)8&Hs~_GvZj<IQwkG|-HY
      z?CfcqGt!Z+yK*^qT9&Jj`4ZJWCzH=|o#~h(WY3!Q5;{K1Nm9pYZziYXVbYr#8;S4O
      zv2ADkHXV<Uze8j3fw93<O2-#SP=>WFTAn2BQ3H?RBxSafwPq!0btfSubx%p%#~C-0
      zN_8vAlLnr`(+poMO%~OjmG-GR983Gt(*9ZILk(sAoHYN6>>E0)>1wv~D86Rk>#}Jz
      zdY_Sk=MB7oGpvzJVt}+rZ>mdQH1HB$<_!mSO7<1ED)+~VOy2P<$2&MzV2iSod<J>U
      zTF1s^tFY}|{{!cLw*+?A8M|71-RbIYUdrKq9m|*8jFk-Hb%7hIZ^s7iTWT7)uHQ6p
      z0dEl_i~9c?wbHvme2aZj?Y1gt2p8p?U&MC}d{3^l6)f>+X)<SLQk)8%U)sfEajwX1
      zDy2=X<#AjDIzKcQVl27b#UVep{c0PpT>Q4*A~zy7vYi_cKqG=Y1!Q0Ie~BQUD`4<_
      zCEqmOw4jxz%hYS)v%g{21>AlW*G=@q*7a(=3s~K!b!ugFoJG?Gw0CM((AC!%<z+)}
      zXJZ*R9)7Grtc$(->VJQFiS_~9%)gtU^KXhi??xN9*jfzZMmEY8+>2hyliX5UsIkkB
      ziH|63jE)GpiAkQKh|yaBJJEwUGik$m+(MZ~O9KhqO7G2b5!B>z2eqXSL#7d3!0m)Q
      z&vzeNle#;m;v2pm?w~i&8$a|l-ri@N0B;|UDiYRTMa#rhY@Z14TtJet{xUvV#@+?o
      z^&`H0Ed4g_X-%BN%9uKoF_Mmj50!EFEZUUWA)3W}8~^6WS*)k!(KG0f3b89NsUmHp
      z-?TEamW`G(i7M6}Voe_=<EO~t6XfMdGWHZdSx=MWXSjV&<3T*DvTgVCz!X^owN1q$
      zHwC82B0naS?%`8%r$?{Ao<AI&S8p0Q_*8|z7P1SxLdiK+?|c=HI%X7)+&6HR{K*;u
      zA=V)ujlBbRxl2Oo<`OIVb``!5Jd|ib8=T-z;(KrrpV&xkjd!QSa5OwiTF;;@8vcwr
      z=;4PhpfUV8-h94{FHZCa&f#dZ_0Fy`zSQ3pIFH8oe6&k@po}MmdRmiZJfl=XJq^_O
      zGDVRZQ5jzy>S-wB8?Bqpqpe5lDdVh`mD-FHAL>~y#xPbB*3X#I&pBYfV7vYjU3{*^
      zuh`VTCNaOkHvE?V4g3zf@jmXs?{NTsz)}1W7XF0e_%jp#3m(N^aT0%1glr|rOqFEI
      z_PmM3OmGyq3bB{u-^y4g`SVZme4aAd`mf?O%H@DJ@!5iJs?wh3o%9zG!?E|UIeHl`
      z`|yn)V|1cVdk^8OxH!?NE#TY3amv3FU(Rif8q>ei*FSjrCpz#iu9tsfi)gIE8Cfb^
      h1m7nT*+vn}E1Uu9U1FK#7>Dr#%H-;~OpO5E`5#TC4I%&l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2hUm5IwWdZo8~4R;&0?3Kr=?tEA~8#>9e+CWz5C#MkX|#nojmxx1_QvrM#2
      zeDDYOql|O6K;vio0C(=(GjnFn%zppz^&5a4+%sVib_QY67!QL+68k~p;L)pY5(J0J
      z4Wrjm4Taiwy;!P`m9`u{al?Kfl!+{1Z5q~>!$wPnQNq~Dp6k8qOQ{I+N<>Kz6E-?;
      z-S_S|rHH3#8#=1}{MpMC)MWSrKlI~=gtpU}W*+$?5%{5KF!hw7d4X)T9>ID%_QWXm
      zxiAwsLP4rQT0+F7aFerVLbfIQ!a@d1HcTuN%IB0&>n(zC*~T2^3CkTWv6~E!ggSJO
      z0zp{mNY4#=uJZML;>^Zx{D`nS>+ZsGvpVDvinGYS>cSvaJtx9`TY5Z;kfqN!wVrP5
      zwv8LOX>rj-8|x@BZXn__T*0Yzv_2npz0<)=GBhpRLB+%dYjW-oZQMnbU`8VDvY>=j
      z=a;0~*-S@sAQR<@eP3%;{O7{m*Ng=FX&4IC3fw3XJjyLXb-Ew_SCDt$Y-Lg6<}<wY
      z1VfLFErWk17WiCbE6XnyY_?voM<a9ftrJ|TZ+}7l6JHIi@c)v2qIJws2^N)cg?*({
      zIId!qZybngxX$UcRbVQEZI=HJqP_G5$k$JBtNxkKW2_yc{5xBfKetWZODAQs)6Dq^
      Un}JQ{G2o!ar=BpOj%_Ub1V3K&_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g_vTU0f=KTKQ1K52}Hhu)+9NV?tVqCKU}dL?4IkSjWuHG_$*;{w!Z4
      z(ZnC%k22m}y2J+sUUuf*opbKJ=iFbvzyAcVgGW9*!qbt-!bz;dELA!@+<m{FX+3bl
      zBp<DdrP~uxYTcJs&&C7kVr8<#M}@Ff;>Kz$wK6i~7hP+Tj6sCzb7fTeg7A2=|5==f
      zNl_y$dBdTN!`|CB2QtZY+SxiH1TQC%9H)vYd|W52ST`y_34^(>^WTI@*AAtR8ezHY
      zqTsV}&qiF|qyc6yU&A%j3C*((LM_ZF>}ruDT+hcMVW&i2KKm<ShFZD+3%Hr{HVM7W
      zeu@8=2AwO-9e}V@!!lM_fkdX$I)tr@*;~_xg>>~k>%X7H$I=bNv6h5J-$p_o38(US
      znyjRsR6=-m-uC5VmzH<fQCE0H*to)AJj|iZTqO5Y-p=}e_i8&|4npm<G13+0NVb22
      z_omeL;wA}me{Cl2vz#-$-QW{!QxzV3zEwD$MZmXrob~u@wi|P&xY7QBg%9l~r)Ye`
      zt*@N-u*%>0oQ3MB68lYyxXrnxGaT+<jU#5jU92;&hkG1(T>Al^xuJxIXkqpb9mw?M
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1&u<e)6vw~MBw4)KCP0&rLUBS!z+MwJw1v`|A4x+32nUc7MdUbf2D50h8_lkZ
      zd+)jbMz2MJq86##T9pGoj;*Rz+^7nO8wk<Do3-OOiQBly+V#$8-kZ;S-}lX(f4=_#
      zz(JfbkRTi``X#5l=sBgx^_=Oki|0z7H=~3fUJBHrRFk3*1?r2zyc<T+muhT5EJaco
      zXd!I5B0d+6C;Xywe*TIqL<ZUjy@4vm8ADNaCX@=)Y2hz;QW4stmBfT2`6l;XgOnq*
      z9d&&-I!?%?-!@5Rme4XDEJzcZ@Q#HfItZK6nb{=xWEKo;CUoXqU!E&1&Pz2T<~>Q+
      zmJbTTn-$8{<LYEfblDC6$AQ*}$p@l{H(wM>gtO^<y?|Vi3qpl*qFj(mksJ8AOkT@g
      zjwP<?>C}~MWvPMp2<c{*o7jn62Hq#^`cDE2DfAJ{qKu|w7>Xjx(v_}YRopNgDc3LN
      z4D2QxYO=^$S9V&}UncsoM;B#~FtDK_vnG16S1;d3m`cY2ts-eC*>q4+1zFuUR~IyM
      zSp`>hd2`w%#K-H~peBS?sh!TM)YK1?7=~luK=Vzu#^@GCaFDx(Q!hJ)u&3c!;yznm
      zlr!1FA6n?a_I4b?#|91)b~m!YsxS*Sju3_``ZZ-R-7UlT)IttN2?<#y*bVs_+LP6~
      zBqHI(6q@veg<~4QxGI#-4$^a<Ss2xGW~E${uI|Frzg|=a^f3w68J{n!aZiMy3=Nzj
      z>}}46anG;1>ez|goBXu$1AQ;>yOp0Lw9f7PHHifO0Mot+%g)|F=QSQBu$A8(91Hr1
      z@5`T&q&wKgb3K*Sco$tf;y843Ru)i~teSHUZSkt^Tj-t3ev2Kq&_9>Gi2;6wzTu!s
      z`W}r!cRBq%zOe3N3q8PA9<OZEUE8J`X=FG(7YTzLpXDqqJlYu_;!6f)RM_@)bY92)
      zA2Cq<vU$r7zQacee2tDNJ-Pn|KFQv`#<Ae&6n9^RW(Pxqet}89B1OOPHSs&Q<R8e;
      z!<eYQvO|r?t`haJ1Z*MBLhOL`Y+qH`Mrv%^SF;`0Y+W(v?RA8MoN<{j#RUXCV!}U}
      z@Grh!9%G1}V3?l5p=WiJBQ?sAD&<fe<!A%S4HX<~R>9}Y_k#IevVyNz!M|C-*L7@m
      YjcvVx35>_?IEe}V*A^u<=xJ<z1KQ~T4*&oF
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW0ZBG+H5Xb-1)*hCl6$DfS3J7>D%K3!6s4*dpB$qUVq@>~PwOz`Yy}M@b&XkYk
      zn^V#F0sK(LS=xpg<3r44Z+3TPelvG7^X>cPR{&43Zy-b1>jjBD@THx^p0t|>r$>pD
      zC&~??vrzd$9lD)3R2Q3#u;cRPpzHQyp$y~*<xusmTqAd2p9|R+DzZm*j^CFC@`Uxb
      z?mJfN2=SO|H^W4A#K@G8f8_;U{F<;~H71#y&9SQ@@n+Bw{n!hGTBSwE)x)kRAd6`e
      z224WMs<a9y;+BCDVdakm6SJ5jO!q|Gyoh4qJ6*!ORcYunZRrL*yBRAl=+z2fg^2|$
      zvUxOVzF_@oJ<Q;)iF;%GanhDv$LVU$eG|)L&h>o}t0u}=Bg}9*4KEN!iQg9L>Wduh
      zw_)M|Hd)W{C-phY83x=o@lXRw45)`P@q-~kJ6B9pwR4G`Cv|*t%{p=0QV`~JEo948
      zo<5H*bMd(s5%wGZ)gm<lF}eJgiV_OLZaDOGBCEgcz+GJ-g6RZ-P<81>k%$cJ5w`y=
      zJwoy49>yB~q%5x+JPyRmz!b}yyz`Oa2iU59K%u&mVkX6HE$^gQ(sCumx|UlhtoLk~
      z!4AKdkY`fLv+<Gp@)PFi63g_Ni|_@HSid-g;xTsl#CX_v!XYy}jhgWc&spl)5nkXW
      GrhWiTE%mto
      
      literal 0
      HcmV?d00001
      
      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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
      D+$U!}
      
      literal 0
      HcmV?d00001
      
      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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
      HZ;1RK5qmZS
      
      literal 0
      HcmV?d00001
      
      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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
      C88+zv
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiwy-LJD6ot>t#*G`}{%K*kh=p1htQA4B3PP}1S+<>xLmZi%k^C%qEi1vo2N0i0
      zyc2E2!sdQ=&bf0rGw+|TZvalQ8^9w>a#P36O2>7jbi7DJbuhI?PNkN)sFXDUe8QeB
      z@^-2eO+33?Ts4_|axS5Ju8gWK2%W>DIl)ity$sPoFTw`8gh8r|yscMDS=@=GmV|L?
      zGok0AQ11LA`qhIf3H#}PdCmyo%+^IFua(=@bD2*b#aa-e8)IaVXi=833@|2){;VVP
      ze?JftaCrU_FyTTo1MXsGs~o>z^O*$?Ay;R^`@k0W(f0szyY>5R9bm`|+v_9jAp8Pl
      Cs#JRb
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      bmi?VNcDdLA3eilEui<?i?@#c)9{!&IcM7d9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j+iuf95QhIv(%N-R>n1d$<<tX(#A$1C0V)atp+X^2poo;TaD$v=l^QvAaMq|i
      z7F-YsBp!f=Ld?d_p)}lhcXnpJ`Db?h`_GSG07@t+NHFBuUTB?lTq_igYn{9}dRaXV
      z9KizxDTeHM@6g9E`_S<m@rWUrFVq>dXJ<{`6^`%q6wEPXKH8sc%kizs;mE^~+V@+0
      z4muVTTw*W=L9Xq!t=gBK;2j-{FbL^~f?>HjWV{X>Pt-)f?M_((Lt4iSG7KyEQOIE^
      zy5TTJ3R<i>9)A^f8az0%8!o4;s^7HTx*a&ujt^7f)afy-R?qi2o<do{3i*dpChJ6F
      zQgM~0vA1{c!H1HD9Ii`oHyDcl5f@30nikYpyIiQNSYuG%)^?uM_A3?H;)bMbGHi`0
      zQMvN8e7dLUlc0;Z0Fcu$M&U74LlPUZa6yNOBB|+dadIj;F5O!Gz06U$*YsN?SdMby
      z=AtI(3Do>BXz~L`4%?V`NV_ta{7-o|;7wcb7S^d!k{%(DqTLK;k$@6gDm2>NrxQl2
      zYJS6fA4^|ppTK4MYP13e6#pE{w9}(FWO0QoNy}WIRp?Y^Etx-&dsj@a_HiwJvyb(E
      zv2_?Y9$>RkLX4$UdYiWhFAHqZSBiX0O-QU_7TFY-O?@>cV9E%l5bSmg+l*mv2qtHu
      xo5k%u?wG0X$dBbM417KjyO_tP0d*~kA5rD+BdKyG+t?v#3G9-UfQ7rX;xCa($~yo6
      
      literal 0
      HcmV?d00001
      
      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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
      UcX02-r=-3agGB0E^sPYpKO5MiiU0rr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5Pg%RO<U6sYprK5l2&k0^dO2LLQh2xmEO1MQn#cViAm9arJx8N`~m(b
      zagr2z=*7d%*S>l4W`2IZz5yI#&xJ)en3+^OFG8`Dp`OY_M@F!d$;+b>*TzH~a?OQ9
      zXwBtPicp%FxSPyXkPzzAC`cE|6evP_xW<f<Sew}ep?s;0POb>M{^oaYOmJ?Zsj9)o
      zmIoIe!S;LODhLe^C6o!xp*HF^T})JbFDIeO21S7k$1>JgzA8G&gMK3T!~ZSC(ke+*
      z$Ru?9-ljT2Z4{+(pawdd+FW1cC|eZ!EYjw461Fp?99bN@sIaYaHsIW1U+aJJJN!WX
      zEypz3HuBCBI5=hO8CqQH7HDQ`bH;r+D>2&+Ix9}Wp7^iSe@Fe50}B~lIWL~)G+qH%
      K(eUAORQC^U(`!Kh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{TWb?R6#h;(ZMJdKXuPIcEk4vnA(OV==t?1oLSYS+4Z%P`rs<H3?9PVmq-mf0
      zP5M$$5TE@~(zA)smP-0E=Q8K}&h^jVAHM*sVL6W(LbYdx;wX;9p^Wstv^p_@g|x>5
      zB^u^9)bSuvEw=K=5mu&!pT!d9-e{xk7QtDqwh6hn$v!j86DnWip*$L=G%{8P1KCyL
      zW0O@E*9gmfYX_S`j7Fo{Xrq>-J+WS|uZd3|g0S0Hv2;-+6y^EK3UE>KFpKMiC#yl0
      zKt$5?L}*iOdj4fkwLOnAZsl>4GfrzMYuv+a+#$G)X6JLOv-6JdIJgSq7vSJtR#S!W
      zbyCxRoA$RS)eWtVM5rv=)40z@>`#qr7?bc4d7FMV{!*ZgY7XN)mA2$wqzL68>B^`r
      zQ=QrWoH^Uq2ZU!=P@g*rpHK*sVcJ#i^_cd;$<(q{pbowQJ~^-iPh^f|p0!<mGtc7F
      zpKv?nLfJdPf<w-C-1rTLPH^`d|IT2M--lzwIy`Kki04?q3zYDZH}eV=yvBWw@g{6|
      MfF-twF&X;NDS*(>7ytkO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3TT22#6#gbn%~q}L-a`b@^}*5X0&N5l1c3>$Vf8rKpcA{Z%QmJy^_zMU3i<*4
      zsOYTrR#Y$N`kimieCPe+<qbd?i)oB7tTc6-cYTjP3Qye$qXNyz3DXNDKi0iV@@XU)
      z)_w!J$`3smV;NG1N-J~3kl5I)GbB%fJ7O4PShyFDqC0p@3tv8jq9OT3jlvAZ8J1hd
      zga@2=I-O#tQVgOd-!7HP{QA7=Hd@jb8RQt!Vz^Tl85AsxVuE3PqZ(6lPv|ChO{8?w
      z`Ci$qXOVy%&rC5q4QGB_$2l8Lw~g|+D-GrU`@Hij?pW)9ge8TYSeQapX<2Lgw=%jE
      zw;m~HSA&M|>LOBc{#8txmU>`V{eyaND2E~I2JNUJPgP84eI2kE%Yzc=CUkm`2dR)E
      zpQh-FY+RYydPU~O&e~QV`2<Ta*2m;CHAXN^c4+`E!@@Rls34CW6tIg4>`{LoGla2*
      OM3}`KWeoF!>4i^?kEfad
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6VN)7c6g^LuUEFS?Vq#;gjY$);L}b<2)`;3t0x1cBR4B<#J~&U@!EIq-mL=dX
      z%GV~HDKkx{{oWtd>3t6>Orf^Sz`niQd+xdCo%jCu^OxTMY$2y%ieatlwXJTwX1(S$
      z_ml^2!?WnYgY%|iCB5_Sj<O|MYET$rm*xhIx?3r_^=8cx6$}fhLcUl!N@nxf{Nv+H
      zGL<eB8Kz!k8N&OOn(Mj2A;Yv8Ei)*o#;G#{h7Sycpfb$nT+hk3>nDz1;wLqNi{u&=
      zUMq9o74L(fx-Vfg%rPu|&tLPd9LD2yr`6;Y$NDx;%P=Agt7k#b+_S7srxWiyh&TMI
      zwY|ByWxafsD^|{&IuGM2gUaR1I%ctG;0iusxM$`BvQ^_=)hY(Q>s1ruk!X1aOIX%$
      zgDNf)N{EwlPkip58~7M2G;1<%9~ZOFp6AlXCHr}r!OUHTFcdkVV;VOF&sBy@pXWpc
      z68{%aZboqCw*HI6&>IPcYgH#mHM~~fbJ`EDnjz@}f>6w;*lwNlt^80H4r4f&B&XO7
      z->LB~Nqk{HSs*P**n!gx5`vwc?pB<pFltLflpH*<_R+w@7s*1Ybpv;?reTA@kX!0G
      zfkh725rZXE+@w(^(2JIJY-2~m1BT_%!s59X@a{zq1E1k@ayO}w^-i6xbT^@IW7oh#
      z>@m#HUq=paH9Ur^W^~*}I!x>fDhCXUW_CP5a53?vfv=DxJYoM7Z@1`x#73Ey&iqD4
      z9F)XplVOx0L?^y2&()Z_8MI1Yap8iA`i}1n10%GRKI4I~|Imk=GUaUlE9TgqQNCVm
      zwEc>cam5udJ2YKfkj5t67}Io{F<ckd2CWo?q0yJ5p*K$N;&W?G{Z+T8m4dB=3U){>
      z*s4~rwQ#`>r<pueT0DH!y-CJT27>>+gQ(M}`~!9EsofEzf(3U;xI9egM&=!Y`?
      zZkHw!j3Nv7-(%K}%tsb_xb_a$d-!D7;EH6NqGpc>I4yyUei?4zHkC7ciaUb|;`9`d
      z$~)*k(z8!em9gwdt#VOI4yUYpqK2|eInEnehbXdfe?8U%v5T$u5PyT4`S&pGji0ea
      z-!FPd>?unMEe~HTDZjs^a+O-lk$*?EDNyu?q9x3uOn2T3(xgnpUm^;dPSPt$Yp36E
      kK#N-AYosLY4H`U6i1S!R29HUO+obe2$V$Rb<d9GQ0szIGPyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgsU2hUW6g>kAv<rwuD`Kr}{iqa3H$KxgsVEVpO$-h1!!o6-`$3l724D0ynHZb+
      z;G+-zDC3=hY%7wrPd@C-&g{MSoHO^#{`~drJAh}{$soZ{AG)D2actw9+tz>wmggEY
      z@!-Qq7>9x9SZ3F9Mz%PijSMt~?YNA~ScdeT<yyf3!^cYJ9Y5z2h2wHZj7QuQ#@l0h
      zZKzL17+AK^6+xrjxnB83Y}}#idZdBGG<JFnTGJZ{9Z4+bkb=(eDUMP5e^4rPELR+d
      zPG9&Zyl)GJV#hPN-Q&I`*RxG6IJ3qKyYXu0+SDM$@|YRcVh)}fbV_XqsC;2gF~iDf
      z=nkla8*sZdi(+ktr9K}kD=<`IIb9lo*yud!$G`HfbdI4F*QV>jO9SZUnK0k?q{SKb
      zr&SG`yF;TJ_?A0tbUc4(_`>EB+Kc?J5|oXao*RfspxmUtoS0%H%{9*80bPiNxi4my
      zC<>PT+sxq})|SEWFo#v#VMx)v3sv{!75Re`L&luK%0pWS@;5=!+Vw);6fH}dYIXh!
      z?@AbK5rZWC1wbQlK$^x3tsENDH0P@|t-fB?%Bc%1eWr~BvNY;61AE9}pB~^~8jL({
      z(2CMfz)dP8-&Rmm(Rtj$Z3UK>ilM2mCEO)g&{Lj49}%>qlqG1Etg{8c&xt@&0dG!2
      zBj9WVoK+wRDoO`U1nyHwjaKVQAE!JCQmWSK7ucwN!PXDt<W#GF#m1%5qT>0A^tB1(
      dHSvCP1-KLem+%OWmEsbfV4DCLo)SO;mERYZZ%hCH
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6PjC}e82`Pp+1;ig)WD)3g(3p|gH8X0P$(@VAuWM4X-Nnypmn?1CJUQQOg1ES
      z9L9q)-aP5e8M*b~j3YSHj^fD0lLwvgtTTG|;tXCqSiiUFG@a5xGn4n;_rAaH_xry6
      z;h%5512BR+5;_=873_MjS+aunHOtIvj#;*Yv}w+A#Rx{Vnh_2~O<SujXX!$M@E;x#
      zr(81ij9IE!2KQjt6%B_N0?E7DeJyBdb|IK?s-|6-VAvfi+cihCot$RX4H=yb7bDTw
      zrTFyB<;0b%$=OtTZvI*(dp&pKrg}?T)bqwtp=jQ{XO--7<(+EHso!rjm){*88669q
      z4xbr6I~e2%N5V3E4Be4<Vs`$zsu%8+YmMR1IM)q_Wb9!OBJ+g?!`@grmC0U<BvOgg
      z%))de7SCoFI&LQz<ny{^+NLu_UVZ&Ja*37mMkg5d`_PS-81^Jh+ep<*i$*o8En4)}
      zK(efBR!*y$T;8}8&%0qHyvlHZqtJBmwzZN`t7y6roKMkFMh`=8(Qzv0g26_kG1M3v
      zDpw1^(c$5d;LX`&MlTvAO~w%h-{KZpyf}!XJ{-Vn3@7`ZNBQ}i{#++s#|a6?$>T-r
      zbN-U%VwK4E;UxO##gUY{kV(wWCF2WObuP}(mwZu#b{|Z5u?qvd&OwIhR-HTIF!6r_
      zx|BFYv&Jy=LZ9tTOpT`$49D%gsz%({g=wO}p+G`kKd0VHSnKzwDa|~?<W8V+W~zpz
      zHL0C9r^R(}Cx~J@M$?(#HG1Ps-Kg-ns!5<pII*MerHzr>H0F4PeHg}w7vnf5;Vd=u
      z_8IbF0_Pb-%diVh(QVWOH=pw10xpt5FKX3@!ylIDk8w@ZhZrs~NT!`Pn(3vMDj{Q<
      z!EaiYQP8a3Xe1L4hrAfWWzHBOvcE5}QzLPctK1|>nC^g6e@;S*;aI!wgqybRq?e-Q
      zx}C3WzL&v6U!Xb-k)*fK<IS}rR?p*1FDD2X7?sLQ8epA(W-)#k<I5;tMu>|{xn9+c
      zX_F7Dvb`~ec$tJaMWYX-fLGvwNRmWS2V|1HTjVa1cW;sXB-3ZX^^_67Uh>>Wl17pE
      z?`XI9tykS8q*cL_Ry|@`6{WN)$!S&Y7Smrrc|=AXc$wA{=%jU$f=^M(3-IG21&m-n
      zqBQL>^pLI>Axg+S`0v1Gx;Pch=w|Q06C6|nhXRM!(EAw2*3jQh;CEkm89pQ^@D(?Z
      zujPhQc!S(&s1V$E!4T~{r0^KZm$bKv<j4T2Exy90FLf<hjdCBd8sj*yzv)cRVi*`a
      zwT9D!t2i^&Bjm%v3Vs<>gb#%ERZNCGil@8xA^clz+DB0lw<*Q8Qc|RCN~x`s6?vOd
      zrbLquF+(9~I~4FM(kdbypCJ|?<JNI}1(86PBDSOfQf$~9Y1`~uK@UlumW{ZAJx?&E
      zDncN>hMA{|@ag*T75H!POMZ3b=_7)m3xDDnW;c+0fFp!dmgvrrMkOk5<1p^vINqdg
      ze2Zp$frx*b>^0oPB1t;#B9A%@yoV)xh$23sn@?cjAxiihHoiawU!#ieQNvGg@G~0t
      z6;1qxW&A-oo{{HYcz|`h?=pC&#mxqToZ7V8+x#?#d8)LF?5`n1ozsoqsoD(jc^E(9
      hI#unV8Xw^XokXheWBTW4YU-3zrISoSZn=GP`(MZH``7>g
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YggMw5WQ<`%NX&92r0BCrH>FBD1szSQ%ur2#!g9%dB`|XXiH_WF-m3GmE{0G
      zrTGK>+LCihTl)IkAJx-Y+1NTMhvtiRwVIhbbLY<L?|**%1HdAx5<(2ut4>Qjtl8>w
      z!?yMe&#F5rErxg0;OhN)-R6c<qP>JL!`wy28LwWmOwFn_Y%V+)MziZht+bU{Ev^<H
      z?B+AsTuEaH?W{5klrx3x+^)7khYZ7oXU20wZF!chYTQdR#FkClaxCv2LtipgW(a5N
      zd%PbEgEAtBN*HFi)blF2oRg=7OAI6av28e2Rr6fSsm3r$0X(<GV;EzIJT>elZQo#E
      zi!n^lvJl5xn3Rw>^Y&B8xUO;3lyMbrGenJM!D@O8*OEK!bbW;N$}?_y=~SQsVV0Kg
      z4#VYMg4w!llOfR?#}M9=@jk9m(B)2%6Ujh;o^3i+7Byd&At5GsvK(G))hgUA85Nr-
      zRtj~~u*-&PiFf}{!YsptKtA*v>liiOY#1h2H;c55;RA-Lea~wwsp`SO!TiC^`MO(G
      zZ!9b<s*l$Snz_$wMhq&0RB87=ju|Y9jBijXokRolrUP`e3HQ^!h1(K7{2zr0p%ko&
      zYq&=;KEfTUF;mocwbiwaLT<ODZ;(2Yg^Og@6I?ouJ}ikmNkI8_p661Ke%*k+@VtGi
      z$&k9xCom|4Jyzvjw(c}N*P!+~)jW~!QH*dhCA1$WhRtuvV%`|;p2w%?hs$l_kR;q4
      zM&H37P>SvGLlPa$MLc(C@`lh=Q^E?v^trw(or&%m3##%mK1F5#pW&ed%4@KvRvIN4
      zpQAv7Xc8EeLFtbLQ$5rDlNgHh$#VSrW2&Q=DSB)1II`Ff{n&iPxvLTyM&D8h`PHc<
      zA|(M%l?n}<Ti1U%p{vDox#4m8)S>|?29xgKzHY3}PzUEcjuGfGo(O89{M#1YB>ngT
      zUrG4#>^}0%JA#n0i?6BirLAoe@@SyOjzL;@S7eyNERxR@G_sRy%j2$LQ+Ks`%Qbo4
      z60<%MP}#g-3k!5N^wDJ=!nn8;X*Vt|3R)xd>_?ow571k~{|4NN{1(^yq;)+!5?y}@
      z`4mIC^gBlMK1I>=uyR?`Bgz#`k1FHZ&v^4MOr7A}mze(1$4JuiD#ZtuD1MsaFGHsN
      zFv;i^KB4iwjg)Um59<0EdXB6aos7<$Vn$cyl=%}Z9OLE*KJEn`@(Wp^fH^40`+?-P
      z8^PQqcZPce(k^J8RuM9M4EYCILlDVD{j-Mw-*DHLlulOng%4R}eOju7Dd?M=nVma9
      z?ikavzu-X#FEDtDtgft`VExZtiVC>`8w9gSDQ+PF&4-$52kAgjIQpjfsZ64TZGvSe
      z;}JbYFDmpdKoiQ9*`M(E1!P4LoA1znjGgZhJ%-UMsZC3n`ud3eP~`w#qKlWnUI#DH
      L#p8q!!qa~N&QkBU
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-A_|z82`QWw5L53tkpW%Wa4x}MJb@G3W%!}q^`EpR;2iWhr^*9?N<(m50hot
      zg*Us|g?BDlqS3@9OE!m@EOVLLt^1$0{od08Itf`a63%&^=e*C?@A*A%U;XvVZvgr*
      ztD;HZK(VqATP~Mki+ahL(H*N=iSea7cWP$r%pJ$fQ&6D@9Ny|=!l{-mBWIOsCD%h>
      zM>3nq<u4^tnN;T7)Mz3(lFtb=T}=rDE+i(V#uMqwBLd;{EqzgsmGnw6mUC>YQXCX$
      zNmeWKj$U!b_0odrN3(#Zum8C8Ol9hxezdyA69T^UNakFAOh7QUf5<3V70Vgs*RJTe
      zfRe1vm;nexg7Ctp;T^Q8*ewwHcj6%4#d{1_GAl)A&h<}8$Mzt$AtbOZZB@+7LV4P>
      z^ZInjl*LyKy)>@dmed<Y-;kSM#RmdyGRLxuZ$&Sg^EKTtV;3_N{Wu`dG3Pk7fmm#5
      zX{l%FXiwEH#`=4E`(hIp(m7+!EbD$8WCzn6gNA+R3Zes1fzGbCL3`U09S@)zM^qf9
      z$5ykG6HZ&xwr<}Eq6aYnZ*DAmDKF5K-pX%d+JhQA=#$m;3yjvQ+qCP!{~FMpoHJ+5
      z3mn|iXN{s{O{8c#E^%y~6Q~qN3AV!kN>@~}P9vhmZI@93r#6F7;%}QJeVJTb-vK%_
      z_JXk;bJ-b`wP_>EhFO!_GOvQU4{qvvwy{X-hb2y@f*1yAyIzkq<HyG&lT~qdutSc!
      zgW>{*K7cb4)}+9$uGD5TmV6!wVif1dTw_kR6OQaS6-{bL;S&|-xr!T1Px6FrIHny$
      z8W%X}8LMc~!`qciMG2DE%`2c9^=2gpHf`-~Shz6U9B!dSsX9CB1}WEcn~NeQxw}Ty
      z)$\LIWVm=S0;Y*Tkk23+9D%>Nn8YXD`ZZ<&TOsN%Xn>qh^QE*h?3N}_s`oY^E@
      zbX>)>z}^k7`qGb9?XvEy&yxL>EF!6wILlmh!8XiMOWq1CYn<$n5zxyk#KRj`!ESj0
      zQQ8d^ep&;Ro1jq-zNWWO=Y7L(URt*!%#%B)eZ>g!Z#WeARV#Qx&Dnwy3T6vlHCyn7
      zeA$BP&ldb4Y9U{UVn_{XeELIy>@(~PYtOOk8TS0h2u*mO&p2A#rw_-`j1$aw5<5w_
      zHVmR2L)ec~h?1%?oJK!Se}uEN^kc6Zfe#|MR@(?`6}0R)^aA?|;r-zcSJAnGL#ycB
      zNZ9JaFvez6bUg0{3fA3l6vyZ;m?X}pY`2GR8B$rn&Zm6Wi}ty;%xk{Ny6<r|(ZnVs
      z)PjvLig-y`qvg*--G^5()J+hE+rLKZ3k(!I;nS-~y!6BsPu%N?`@-6Q+U<FcvvGgK
      zAL@R9z+FW=!FDP~9zYAX45&1;N0gZr?0Nh~jE3<6rj)qv2@2g2Wi3wcLku#)$wxRA
      z@!dzXO^tZvw*ZaW&lrmY+}C4llQl(@dQo@1%>1TB5fP>R;ona-0A1vqfIK;MnG+l*
      zYp(DoY=UzsaC(#I#8tw0ji6rVOmE-}Zt|kg3BQ3HW@s@nhgsZ45fxZi#4X%K313pX
      zhbkVSh96*K1@rg`3;2WQUSY`vf3^;51AGFEjLTsuW$`Ho(Tv}5k*xBt%I|TBlETWq
      zW9AUqvLD~F^2@Bf6OUQDpF7cmZ`i>E<$LrgP?A5tlkB2SiAlzin-qM3YlZGr+<1CL
      rJaq}-=SjUmkvh#jqvdnf_=Q_-N8N9|+8_~-8^~CVY6bC-Bs2d3t<ew|
      
      literal 0
      HcmV?d00001
      
      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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
      K?uvdIZvQ_>gy1v)
      
      literal 0
      HcmV?d00001
      
      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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
      KAk$LBm;MLP%^)TK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O;g)e6g>}Y%LoxvgVQ7pfqo@61`9}W0|ruKFt`|-#I6&OcBl}ltwfexAp+U9
      zT{b@;StXMNTbj;<nbK+Y{ZVc2lU<;Rhh{W-U%KahoO|^C{Oh+r0F0w3po8IB#okf&
      zYL@a)v&=2cHS4xQljc5Z7|Md7n>EcU(OQ6yVdO01lv}TvdeN*kEQ2E$`qG7bv2;6?
      z&1dsV8<|vku~cN}xR+%J&ghnDo9-M#XCzu?@TKcpMi&^mCHN6w=*^k7k>9Cp8cs>u
      zw8&j3SJySGtT`s%w+;g{o*Mx&!^QjBLv7Ei#@1@ac0<z*<yM}SL4+8Fs;=9ZR+Qb{
      z-T3bHc-^Te6JulJ%H7pmQLh>`Er@;wVXIlRh+dqRa1QSiNs%0Ptyr2}QHri(+Lh$n
      zC(&{jF5&|Lm;Q%V&Q8wUbTsFYgv%J9VpDl_qnKS?%Pnq{)U`#1NbW4IPgqWh=)@q;
      zbBH0+%(E>8$#-?=b;GTi+YHe&F{jj#WC&LbH(j^4T}Pvi*p&>C?~)H+B+45u62tm~
      zG8Y-cY&$-AKODo-_K4$S1$qEamE_ws_S_^-Ph8y7jRx21wty(Z)wbA$mW+>$IaM(U
      zpW>>BQ78i94Dy?el`w{JhJa<*6}RfiGaJNpD$umOe`Kg7kRjUb7$PE=<n$-VqD@)R
      zGLLmb!W5>-t6tTdl*?JkM$;TS!?Cjr=Ofv6iem74VYvF=%#=tM^d>7@FKsz^n?I_E
      zN@HNu6k*#i?1ehz!`A6F>DB2?(_g4NhUOXs-=RM*-=?s4jTb$YcVY9sp}R=|Ifj0(
      zoSNoVm3gz$(vpZ3ObRG444zcmyaY0Jhm4PVNy%HLYdD%kawyh!9Noy6{FabU$uiEJ
      zP(P_=y7Cw<@T-MZegq-V%g{x;AK;@ANXT8ki)yFbT~K|pR8ajwK@G@(f+_?HYEY(~
      z9FS=#3$jRKQ0^-H3h@_0c0i(W!W*Y3!Zf;(gp3*VW0vlOISk+?KE@Y_A_WEWWIKgP
      zdU`xG4Wxp9^I4?)7@hPDAE8$by%*{`MEE5x9OBAJuybBXOB8Y$A!I#AQWJ&`@e#op
      z1^lE{Vw`5~()SYL0nN>X1K!!{DXi}pOFs!&UE>(Cig2P>n$`lHJRXjX9AY^33L|p^
      zPtkLPh#HzW#AmNN6TZ%be;<`t*#8QjCj#MsJoX$tG)=ugU>_^Aia*1pu<r?aIWFwy
      z$mDBZ!nco6`WkzN?y&zUH@-sK(Ua|e?0@pJuz%qB-%m~`DI-kD6^Z{6@&6Uw-(}+d
      z4&AVKiI8;+;~s9{YwFB5)PW5w;ajrS$Z8WRwqVdx#dmN~!7fbvNVuQzz@ulmS$K;c
      zqJVmO)1&V(bu~p)b(4<fk*2m>#`jpjB9S$S8Zva|r`RgRTc+F?HS0?nx$@S@nk!Q}
      y!ipL@#OlEvcHnsp()WC;P0dy}=){3Y*>TMbHF3xJNLXv-Ben8jxJ7myxcv`%fzv(!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQfT7~LlXCWNWPAT3m_SQUdHgJ^AQyrm(r(U71M1B1472-7f{3u`hF{3-nf
      zed&XjwTdmhJ@-d-b)S=jWL2cT%*;9GyX>>S{e8*b|NQy~fJ=CyAs{eWt~HIFYQ=bF
      zSKJNTck4BSFWY~<<roX~=6b~`@KZxjVCFE}gkP_^CDW~LwLAnylKGrjc#z2CGPyfz
      z=|nPBFa-jSG6I^pluBk2S%Kl~6Z@HMG<~;Xn2sM82wg8#+?wm(6zGdh6$OIH`i3(I
      zfe&=_V?e{Oz|pQ(!E+pXYB(woQQH-}RyIuEb8F=gMi?fOONTJZNEg-DN8HNUxiH3Y
      zT*Jp5H-#bLdG_;$juSX3Fkm;bZo?Ni7kkvgsY2)1pExByKGg$Vn#DDo5;)dHmaJDQ
      zG$f^A9KmTFpW+OIUT@!SJk}GSYa5>`%FCY9p&=v*a%)bmSzUL$g3W3OM6>mhT`Ah0
      zE7xjM!<4|d%)FzDS+lE7W6Lf%#{C>WLzotr*!2CaYlgACy*;~qdA9DAjrqB`OUBA#
      z)+}v0RXc=>M7N=89!3m?1Ux5jzKyeo)_4yaEut0bd0f$OnI4A;Man7bu6wrkT*qg)
      z$}1*v)|#1FT*{`_3f59eAeKEWLRVz*F#7O?#QCK_x`p#V2IB7<Pzlc8bQ}K%qT3tP
      z>}c8Xll5A|_iProR!)<8pCN*=DJl0b`7J#y$_^8_aS)xd8lF?Jcc|R`_EQe3B^ldy
      zb|^WvLpZfla<-(Z8XCT02OsFW(C*=VW69Klj+?kOgfza^aEA@m)hatkM+SG<e<dd4
      zH3)yS7ivfKt6^l3)3Dg-8>NdD9Xj$@5*XUDy@u1;`cIUOS{6chz-Do4YVJ(5R5!sz
      z(+MMif~@JoclZ{i#j=hSSOSBxo04|3!OocJ#ar0)>f5qII*qDuc6T*A5;)Zz7_A;l
      z*S)Ik@3SV*uQ183>zcMN!8s<mVqv6M4lKjlB@_@udb%gtfr%-qfHVKjxNnu0_CqDl
      zv3-Xro6L~w<)RJveKEEtTko)wMKAEe71wt>yFwY7^`=*H(ykmy!`*I}l{8_F6ReLv
      zGXadrna!^;InMa*=W`HYo)2;LgE|8iBie6at53^Y!BF1nj|}9kfe2Sxgv(GQoVOwa
      zk-_|H=zBO~4g8LX)fbJLRxo<ZwECkTnr|@n7e3j=#A}>=sS;1}IS-xBYfKVn%IloM
      zH!#8;7{e``#BH3RkS2LPg%riVz&l>WdF9Oq71)89B5c8(kqdi>S<ws8nO)4j!lhk&
      z-c5Ey-8jRPcM-)s6-aNnF-4s2f)H-BZ$8Vn3>ka{{RQ6v0s(=_y?l>vaNn1$ORL*F
      z57H{3`1^@D`?)iJVVaPVuW)wy7o-B@HTZJ+4eqV{i1FMW5?1v7F3fAe@!-XuQCuDm
      z{`rzIMo7eQthRGcvM#_wVki>-GEY}|`j|h3-xALnX7L^WHmoabS6W%y*d)=9@r}Yh
      zPwO>CJb_W#+r)RCG_IqhP;bDYm8|?KPozRv(5yARi|=17ix(<_)JF$Xi_<c9Tt<1S
      Xa!<7U_H*kfw{z?5+ya}79Dw^TlwLI%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ESx*yD7(KTOEp?DZKv`<pgtABl6j6wYf>o5og^++7mv*E>rZd=1i6lNK|3MRt
      ziM;7UUrbaIO^m+!dwe#YJ5!3rm}n+*zjMES_kQP`ukE)VA3p;a!dM7CfuS|4ka(Ci
      z6PwaB($X<(E5RV0tqnafRmi!S1#Y_bHX#HAYS!hZOqkMIOU$pX>nSIM3W56l?4+ID
      zkU6<(>H@(nUFPxvVp^agYg<l+n?PD_F@&;)Rd95L@_Nd)(yA`Wx(UNFoO1&Hc<&;s
      zC+)Nzfgg1m4x(D1dd9Hyxk7eT&n<Xe>SpYeG#6#gQ2SCc;A9NmI5P9!GRFnN8JW+h
      z#x9HLN(eM-2qCOctA<Js9n}!=P@9GW2#3%?e*0D=O<OwZNS6i;RS~qKTdC-wta!3_
      zQ6+jc9L5m=UnWKE`h$WrNxLCFvww}}^LXzv4Yi$&o)f71^JB73m!>9AnR2I~FW7&%
      zivx+=v<tbEo;1{?YWIe$CO)Wo3ux1prROG1na}I_5Jm;!|7s@5>|Ka98sO&}<O5|Q
      zS11eJNCVwS``k#M7z2DcZJw$jN-zq>VBaok-xBz6h--zL97R2`<`tj;job<4DOYv)
      z2`}?8p6PpsriqrCScafwWe-KmDCVJ0XkTJQ=Pr(YK%BWE4|@%p*%CNU9T&)L5>1#w
      zCobYNk}ioxuThCa5GT<`Rf>B*21<0^u*T0@uJnI}c#f(5FA%c>q^9WYV3@E)5!^u!
      zVU#esgI2;AVQdGrgq?()PhTJyDEj%7`E}D(;3_?yr6F@PVICd0hU2)7G2Fl<<}PEw
      z<=W=4C~+kpRt=J)h6(zuln9*QpM_`QcUCLb+aBvjzp;LWDiUfUv8Hs9tIOX@wy3R}
      zbd`9?D3eh)>1t9*W@5|l5mU#@>ik8eQ)QmLM9B9V0j0OB_AI|4z!KHoBJ0~!dxyWL
      zyL9><MzO*<NqVu0MWnb(!-NhC_wg8+UmVyjJFs1Lz$rQ4!?4?Jgp&k+>S~gwIPLIH
      D6ZH)G
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XyO7(EwQmTYN$kdT(tR_c!w5|X8<QXA4LA*7-N+CXVHt!<ahhOC8!S(YYw
      zaK;Cp%wM1njz0Cp2dy(?w2poEk5a$8V3G-#@nLuGz59LVe&0Fg-ar5P?GFG~u_?mE
      z5UHANdADAZpQ|-vQ?-qTDbq)__nNw#F>S*(^j3)`B0LPS)1p&$qi$$Lqu#9PJcD68
      zUC0+p>#1x$o4@^JHI>ekiVUuYSq9&dRx?b)zQy2<M9U1GbYoK=0>c?U1b7)na)znr
      z+x3cWmDEa&-~zdZrq;@;W$<}#(Yxfph!|xEeXc%Ncb#@jwXV0Cs;0|#^EC7!z!2WH
      z?dGB^@9gZ%?_8U2SXFr;9=|F-Sj!c)ZN0AgFhP}N@}+Dkn<+{d!K5F<ILB}$lH=HN
      zO*N}>(Y6e;n(SYRmWL3+1rbw}aT-;eo}5v!RBO+VH*k@`>+GtKAi2{LkJwF0aN|v0
      zUYKFETi(Fdlm8dcQNi9eS`0I%<{Y<0k|9{t?R3Lz*_KLDnAKHc-6jxEB+8YRh+6Gg
      zncIuu<{%!q5SCt3cZu6W?>PyM9|_ymckLvvPs;3SdXu}fB_hf&Jur8rXW+wN&eg0R
      z?_yfS9K+;EEtlI{Te>A72AMPJljwY06S2TBdNS0H_wYXHRnyI?z3sR+%fqkx@d0ko
      z4{ckuQZ{ct8%=Y_q#sMTNyf4pUFR@NM56ufIfD<867kW0b=Aj+AInHniAL+5*;K8T
      zzUe5lN0JPnIlAFPhI%(l=ctGOwRxDPZCyeHw|Va$Q%EG+UtP4!d-=qVPmyC7YUy^a
      z#{h5C`I+~lfICEi+HC43seK`m?(eh9HQ6_Ub-p3p2m{L{wFRd%e(+DKK(-ULt}pnJ
      z8R&vOz9`9EX>T!{@5AdAMFFHM10&xugC30@qFAsS&-i-4X!YE<qVpDYlZ2-GYlECw
      zY_u&+Up4qmHFo@n%=6+Ar>o6P7ccG3?>8C=@Ij=9*rb^X550lQqu$>o#qB959-*KJ
      z-h$#43ySC~D85l|;TK3hQ;-XOdQUrv2?DzgiQG4g8wg+#lSpEUJa-WZgt36LP6oZW
      zwR_uTXnRI0<1?=?q6EeQ;|B=7#Q6hUI@(~^sW?TOEfa9s0rGd#a2an=I>Xy|rw2Jt
      zUk>Sc3F#;Lc8l~nYqyW(dJc2xJW|vZo<mU)-VV#q*hee-GqbS+P<1io0Q33T4&n)q
      zJ0ZM4b~Y$<kVtrg-qG;)h|hJfxG081iuevwv5@#HZn^L+MqVMJ1ckuL0ajnnxjV?d
      zfHW8McCdE;D}e=tpy!9bJ5II`BE<MN7><R6UiMj@&2#U*J|bilV^rE2F`g$b3z)zi
      zVtSpZC?bk`kWnTr9uQp$MLeY0V|+$2RXjzVB>oZ=d=1SZ<B_A@evb@l7$rjB1nyJb
      zeIjNUUl5i;B1~Wh8-(Y<IYN6xBZ2lz682-NMJ5WLP_9UOTyjQS+o!Z&*IF_9a$J|^
      VNB(xa)0L%qOcvLnEEOk8`v)1C=Jo&p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2hsk6g`6%7H@Fu;(WJhh|@Y?Q`UBxFXN;o7)MBWX$!Tw=|eSMkMOq3f|hZN
      ze@gNj^3bMItu|Hro*z~9&Ol6L6DJSM%#Q9k_uO;u@cO^M{sFLziisG*d@J0u`|ZGf
      z$^(CgOTQD^v~hXR6?P?*zC38s(S*T}KP|Q-J8j=<`0Z{W6oO&4Tz4AH?@Cpt>OB5w
      zqg1Xm8w{}@s|?9CFYrTOK4h54=C&A&a%V?Og5gXGaU>X~Yknx4z4o?<ntVGTx^%7M
      z@nDNbzWN?sCe}2Ki5Z5=Kl7)&uZszJTlBiz6ZW?b9g|2iWOk+OuG;qg{(fQqR-qHM
      z?3JaZW&4NCTEp8FZJxwAhD60_R-3McX<SI*EG{zK%+?gM9q_PaH)Q08t>Vd>+}0#6
      z<6{$72yvQG%AA_N9r5TOg->vmayn(Fv{_-u)=mSCye(Roz%?Z=!>}=sH@5KNhZ5=@
      z$X&npJ`tmlC^DRH30dxhJsELoL)h9N$0bo1*_`UKMYejsY^lLwcreaI)r3d{yid*^
      zO`QhlNhEG5`m(6hS(Uygx@taqCUP{mW3lVQ(LD-QPA#VJIp!^V0oz1@Vdi){Q&_?>
      z^&t>pOYZ8Kte(Lw+&1y$yE2_nnZh01C33&_ec0tuPwWi5BAdpPo_mtSeTH*>s2^Tt
      zFm@UG*b^4AD5~zRy#q^j#C4>46~~LAzL?&?IMvLtHk}YpptRo``n@i?BHR(7)J{Ah
      z?;D-H$P*jBdWX}a5h$qK<Q>J)Ukbw|^>*nLM-nFe7$)h9!=M$oK9l&{awm+sYsBkr
      zJW+QOX5BTDbvHSasQ(V@Hwua&MeDo<-XXHPuyBv8xQ{eeaREhK!5XfT*BPu}N+W2Y
      zh&Smfl%CPe?7}NdyXlY8vxhkU5|<9~=_tWjt++(V9uaX_6Qu?)T*n;28E)XSVFd-+
      z6{YbK)~~b=L?-mz<F~NJ5tinSqHZb-MP+q40p(Oa%`GhE53#WL2lCG_m0$c5D=|FB
      z)GK7&^u0r@{yWl{*4}NB5e_b*PW<2Ke3=2$FduQ^0Ul~SbNC8hQ*MS5)i&rro_3`_
      TX1qA2zWJ8=*pd3Oj#~d8hJtjr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TWb?R7(HKZo2J{VCf?$u_9d6nr3LjNDlKB65EQJG(zi)EBwIGSy4@}MQ~DqJ
      zB6tBGL|^?;;+fe{YlPs-eD^cwd^10Pef<Vt1FH^lg0(@IdhbSocd7#aNF{z0dNe9|
      z|3-Vy!*rx$o7_=-oj526R;EqZHbIeSsTM4EkJYL20u>Ity(IR-K}S$}?1z5xRPdzn
      zZ@D`SeLD;zQX|Jsb6-$+79Hsd@|bnuz@?bR?*GrvKrrv3h>~ET>xcS9I_l~8wdw_y
      zdDK_IzKVSlkCTOD=${DIr(QC-G%BvB3*v&t)agqS1?8bS85)s-e51Kr!FAkpa6_;-
      zxmFid)VNyxHdO&BRxhviW$#$`lTP!{0NinL3w1tGlnizJ_Y;j9Nq8?x<G$YU%_^#s
      ziq_5T{6S>JpCni^OQe^l@1V?chS4j=rtY@NYhO@lwLf9*1LGVPc+T6}1I|6fEFNKz
      zxqDeZ@s=5J(&CEsuHY&sNd~ns{wA%dm0KS%_ZipD>1Ws_o9|dmH|rT=iqX!D;dj99
      y9BsY*19FC1`#Xe48QSeL6btA1KbRTcE$Z7Q#+JpdW%Cz&>$pn|hSiGYa{o6|q{of`
      
      literal 0
      HcmV?d00001
      
      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
      zcma))OK;Oa6ov0NZrnI7X~VOWM?-leA=H#D2+1-|YU(&u;+l3<O;W44a&44475pp~
      z6%q@606z+G#*NT)Q?Z$u@95q+caG-wpP#>oXp7!xq%dk6r!({GX=0x9BtGJKoTVl<
      zo`3rinO#1Ka*b3*%P0Jtn+Z>k&B6F2n&gbip5ym|ZAQ#xv}9-LS<cfu<jE{5!GJN+
      z`>ua@StS&>>3wToQc8@pT`LHjp)U&HQ+52kzB9A}cTh+R==rqm2F_^LvK>)WhMBm<
      z^=)r&<c5W)%|&Nl5*LMt39g8hxp<{rXJiC}!14}1xIH%*37;yXT6bvKViHL<7^xx~
      z%*E3*Lr_SJQPaCFN9$kZTjcgGPUHMNqfXQP->y~&TRS_7bSlwvgPza}Mx|yetPrD?
      zL64~{PA?5wrv?W1;xzJSr{icE@Nt4+>s~hDNyw+M;JK*gpW`z|8`n-z`~i%ukFwcx
      z5_My7onEM$;!~&%7>mGe&?+rZ8Ki*}S_D@l*1=VY4e*l0qQ55bGI&MeI{2o<x4^e0
      zz5~81@jdXW#P>mK5<dVxl=u<ckRxViBE@1?k@N=mDd+%i67Q_Ff6%k`+66V+oeOGz
      shon#kYn@cAJ*+Ms{t<!f&?_kGmu<93CI}Z4Hmo=aBLxPpK?-gC1@@q!&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQfT7~LlXCd4VmAT3m_SQP>&gJ^AQyrnU*(U71MgM+qoh+`O?B&^9q@Tc?_
      z^ra78)+)C4_S_%U)qPGvl2wuA%gmW`zRN!Q+uxV`^Y3qe0yu{!8bSi6tM!(#UGt1*
      zw&y;w1GiB(__BlNn~st78g@|PN<&!S%zmb+piy%xrd!+e9O)r2nl2X1(%n?9kSp9=
      z%cjzqk|_{+kQ30%<xD!4$_pIKKe3<LMk{bV!*qhAK;&}8bL(z!RbU`7Qx*uP8;_h}
      z2z;bt5JMUc3LNTrm3+scr-nlUF}3a4^{Qb8zFV(GFv>8wLN<aiMmnojpKz;S7owQJ
      z5e=X2x+x4P-?yJPbsWVpfg!t@cbfr8N<3)eRH2LOPn=4Soauuu&5|093montOE)}^
      zhGaB~5uDKRIZiU@<<9LU5`6)Bw#k{YyzFTm8X}S)x9${LwROiY+3Oy8jprK`+bi3?
      zE5FsIh8ckgnR#2)vToO$=B8b7j5`G`BbXDI+z5irONOzvwKczWe!k&Xjm3q9bH@Fp
      zyjj_BYIX!?1qL6>l1Gt%A@ME<Om|@Rv6}27qs_Ady@(4M&eLN*ok(ru-F4sgpX>Mn
      z7kR@}!CEtOOUwDpTFF|@2qg0RMd)cP8N~p;k~qH>$hL9rNkH;L11h}*8*Y=g*w?4q
      z8C2|8)d|v#dNc5CmbPBalK6lT!igCv_9)q{JT1%i61cJ#o3a+Z<JsHPZMXN7gX%}d
      z4xDWYj?ECwY*(C3si~%hZv>|H^u5t(;I6SG>V}T1xOM<pe5>Im+o`8i_K%JnZn66+
      zOvY;v{#ZZMUCpmXkw-zp66@A$HpPaHB9@78)ApN=+WB9MU8%4c?{Yl2bv1G(mEtD3
      zZaGn;P?Gh$_a4`>v{=z`AC|zdY^1c^YO*QL^n)#J_>C>u9J@WLwA<U&@Ic^r4}QD7
      zvJJmx2VKh83ks8LxSna}4jf^UC{{(Pb<Y~STR#Coq$m2K?U|U03OS4Kjr&e*X@8*N
      zJ9gkOWs4aK{akbae<;SzQ0t#_vf?FP*mDENw>?(aY_$A}lXc}Z8tHbzykrRroLvL_
      zeF<S)PHV2l<sjpGkk4U6d47OjKdLieDW?4%wFb1J6^<0G!PrpI8jA5ti}5oOix#ce
      zP;9vP8v0v|SVMmxW(~ySrWKAKHm$+<$L1T1|BcUfF!>s%UaG`Xd@e%g^AeLJnesB{
      z?-h(v|KqrZW4Ml!)X@~rXON-rZ}5s2F|EA$pa6GaW(ZqwXLR;05>|XRer5;ruW)V$
      zU-puXs2k^)@)qK_tpe$7H>OC^T@b>R&dulfmLbEhpugZdL?9qgxmWD-4R?LnwzRs=
      z^DwPaioc(kbC5fWvvY)$euYzWzakSNui=+-Z*Y6%CrlLHB4x$z?7+Mfo(P})1?82A
      z@Lw+(W0XW3!D=V>6zc-qBZe~Zukdu0rw{of_&xEgVIDv5|H8V$cA=fMgH00s5Z@{6
      zi?m*2#G@Fay-j@6q;VY;h58X3TFJ_<@<b|x1<hM?J9zwJMZ8cEq&{{rwK=VF$7PhK
      YD)(gDubW#(wUb-#<QCXq<PhBd0A#{4Pyhe`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OHUI~6#h;-)6zOpS_G+}z-~H#6IMQINK8qSCXFss7VK`Pm-doj2BtFve~LSQ
      z02>mBi3_7!f0XguI}Msh8aHzu_k53YGCzNP{RUtcn`IOT{wT`)i<8hl7oi%8RK=0c
      zL8Ko~rQc0Npga3&q|!-O1TrndB5ckC=`n)Mgqb8zkMkpSA%~nF5=yUBq|!aYj@vuz
      z&mwvqMKK#;{dVhsV0Gf5tfGkf4l0-@Y`eYx$5%jDaA2dPvxb8*<_NXEisYN@WFV9G
      zVi2<3Mn4Wjcpws`>uJ+U$7({@ohf(6vD$>HxZQ%_&LsG2U&7p2OvZX+LeXvU4NLMY
      z6Ct};a{I^PT==1gM*iEuu?*67iw|qZ=~yOugMXgc#=AI60@+o1$CW#*KGh)pD_D;I
      zjsoiXRGiiIp*R-#rGhGd?{Rg+wZ*aFEjT-0;CQPysCjEQs9$lnfJOagCY~|=IUKxT
      zrk8lYeJ@913CmpRIjuw{(^>_SJ;aL9Y~s;W)90wCZ0{PiOHOi`9J*(yoqS+QO<2X+
      z6#RjwHF0z62j~+Px4wgzMpJ!;ZCw`s5YC$mblCSkd*~SA<s5wLxrxVkV*IQdBOAW~
      DblJL8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O>fgc6r6ROI0^0tr72LLEl{E6Ls(q66!nq<3UXT^q9SqIB&)=gV;9@0$c6vG
      z4RPU;3lb6%2LxAs6k^s6iTIK#>+QaMyKm;r`1_B~UjW?0Z3~7#wI7U}S3}=9lfKuJ
      zi5CVAH<^r2mGgLCj@wMObz;F3SU!<w((z@`caAzIs+(9S2&~Sl&2V@sBiZqlK&~gp
      z0-_~Qc;E$Ivd7X+^;p1chCNkA4huF)C<`pPUZ4&~!;XsDS?`J)cBOwTBTt{FMKc+A
      zu|VBD_t3in#es|mnlNQ=l^{^DVWG&e)XS0diCEcj=MpkuyVVy0`7jx%NMPmfYk^WX
      z)vDUze*h@l==TK5&%#mERgXMv%EB*G?`lQ?yA=c~YWgycRczs=!1j66(L@b|Ey~F;
      z@(gHITulaTW#s}hhr7PZ*FM4iz{J2J*Fsvnk0s`I_5jPc$P?w_64&3GKVo(ANAuo4
      zo7Zr8+WeeU279j6zd^h~rT!IyFg3<o<jqNr-wbk*GJqx}?BgmPrqF9y`*bb>;R^4x
      zoOR~egs=HVcQ!JTJDTL6F{jB*G@mZKgJryjsd;Ct>+}J5LROb99B}kQG900Xr|AS+
      g8TM>~#&iN38@Nulw7?rF+6FecYtsdP$}JRs0#uTuQvd(}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?Qc_69DdH)-rJSJ%0>r6CsPpGjjaQ;3IlYM4J)MuItOLIxb1G*3*BwKz1@p3
      zF}{7!_!eU{m?#p(8T^76nGqx3{bu4vKbV;KS^fd_Ik#n<P#4<VbI(2J_wxLn-*e8-
      zfB*0kfF00Pv<Pg;o7KqNbTKlc6^$v)HcDoMFU_7W>ybkTwfQklRJaAUuVguFm!^$e
      z+L$gEb?G6{5lbc0W5<W%$$0Y6<mhm0WGpSvG7%T>?#&eq)3EmoxI*D^0e7r4rME(0
      zl^-4`0&NMy)RWcetZt2I*&@TWCrUZ3IIdZS{H`x5dz~;U0s>v<wHa;BDaF*L^-5XG
      z>5*eePQ7Rs=qcECc~2xVJ3BityKA6i<s&->2X{nH9!aEg1$|ocVjY3xS+Ngo==5U^
      z)(dP4C1l)4Q8V+Av~3w?e(2tn@OUe_@PLYq^jL`|Nln7YTADTQ$Ajo*rNhb0WIBH2
      zXkuh?EOT^3Ae2}sLWANVA6(cZarOv|)^Ikhf9QS#I<2q^Mnz!jiavLAF(eSo>vpVU
      zR%}aSFU<TXX}1}`9SX}<`^atX!no9yz`kZ=%1&5%QJW*dOTu#;95FJst<Tv*5}R*i
      zE~l5JL@O%71liR0U|qdS#*(K#KOV(aANmndF(44QyQ_W-VuyfI)XltIaD*9`=DYlO
      z43BdoSJ13sTNV}%$Gmugk~B=`(DX<;dN{4>K7_Dawq%b$XDHrGDbi%GG}%Y;nh+uj
      z^*F(#=<kL}#?@Sn5~-A?1l&s=%VAvtf*tWxc({3><lACB!r+tR6XWsASvofvph}Bm
      z6Lj~RF}w_UDtlhf*+VK40^yakeMeSX<iv-=NJ^f(vJFT5IELc_t(9t)TBFb;d-3II
      z>Zj9(F^sEtPGD_=yf{Ua*DXIz;3V&#vSw9uuKiC3;;qbm%8v<<6W5eBui^|Zv_`lk
      zX|Wqc!`3aWNJC3!z`pxBI8KG^r7vBoS~-2xkXPL5JM|C9OalJ6Y3f$2s8uSuJW+C+
      zDrF|#-vS%tRmqtLUZ{LX4!=yeIRd=_^+#XErKU1&Zz|&nD5;DR;FlWUr#IkBWdcf|
      zHT5lg-_W`Re(3`r$8knI!P!Z2pFsysG1COPaT=R(23xrw#!jquyg0}X)pL&!i{MH}
      z?@hF2+Sj&sEFyRv8y4|UBgq;EewGPyXvdTj$X|2A!+3=5f{C`&Lk{pQL%OfSca85F
      zP{mm*Ec10Q`SO_4YMb<-RY;N|e&O89mD|02+ZWN>cLUq^yP|Ga)Z>aO3%Jr3RBm8r
      zR1K<u!OK|9*Y3~3jW>est8~Mh9Qcz+I{6%<MgM0w8&sTaW~}|>{(3$e7m##E-9g2D
      zF6vppftv_rf=YXI5l`N#xo!?BLC@4hv@PHAG+h3({+c3!O84b|ChBl_l}RRQPe(Tc
      zc`jkSj3iSG-D=Dlw9l}EQXL9PScNjX_B__YB3v7rP~{Pup|)o63|>GAFQR~#Z~-sV
      z;}u%G%AMCazRCYvcpq=$Q@n%Acoz$J4_EO4ZZOs@e28Ch5x?PM{E1KS7cMz1I$k5c
      z-XgXE`|*@R=50KUVV1Ir_6HE7G}hn`9OTSRbiZSSGY{6`Ym9QH5a~xaM2srE<9L>%
      z)cidCr0TnF;&5gWN0R-0>}TqGq`yO^|Jn(0%}Ewy?@reh)XA{G7X)^N;lJe0SES;q
      p1Gl#pYzb}`&eq{})!}*xa}wv6wgnpFv>;10gNH`&<`7i1_g{jXF@OL7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTWb?R6#iy+lTG5r#@HCGm$osMq!kyDDp*l4rA;7hmBxxbIZ1}>mc7)?rkJ1N
      zTj`50c@YG`2hmr5lz3*dY=a_*EHiV?nVIi$W`F$r@)f{ctmse}?hU+=`ObCBWA4~}
      z9@@TV(!#^>kubM+d@r;%`M5(_HOX{n4245}%uR=T19Pu?D0-oeG{gK^wc)!*Jm6hN
      zFr-`w#K2k%YM+l8(vNJ<4j)rms~<3E4ZkmPP;uTs4(Ax=+O{WlM{ZXHohe4K?f1BI
      zzyn+6aZw8`d&scf{tp`)3>k|LElC~eXl220$$*ZGj4m6<B12Ne+Yxt&rBrL5*_)c)
      zsJ|w6erSn+q4?)E;SStBL$()nLv;MVz))jy`~E2Ci7i`pteA9L_Wq9KWiVQvCxV8<
      zheI*cQDvzAvv1OnKw^pPsWehh=wBeeG()<jS))NuK)VJ-CasLt)aqyCKT@Dzj^=b!
      zypICK#`FL#phy|RMa<JIFF&Bu@^XIl6H0|ei<a`62^D5Rp3H#c6Ob!dh(Q86t<s&^
      z+IO(`sH}Yh+qq4E67&QG3d<7s1SxHz(wE>DBQKleZ;Rw?V+E~<YiWuXa}hGG;#$PE
      zfa_#JioSuxnEy29Z%+B2{>HyN!>>-H5Lq~du6%%|$wEnrO$symDp9|8N#8Tl_Z(&H
      qqk;~qc!71iB-O8G^fnW{%|!3RSg%4aD!aN&_vP!!H@k^j$ov9YpTxQV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8+jA3D9R5z5?50bgp(Wh3Qnk{grA+~;LIJIz#Yma}sfB=2w&|K|*(ROM_U3q*
      z5oR1=eDTVIBch{q6qU<J9dX2G-<<K$2WOn|S^fd_JDZpkh#fj}_S}Bg@Av&q`t#r4
      z{|I0!PN}F92xs%tk-14LGNW7OxbB#Re1wzk%ugAS{X>PkliR1y4|Au&Bd}#T@qVW;
      zX=YO9<dkJd4T0upGLafS+#gHC68lF7`=bNHDS^7<F#+H1jAiCcXRkngC_EzIi5A9<
      z1_-S1!wW^AF>dCK#PsBtVGrwL7R@!q3mM%S(QQ-i%ZJKt*NlpQz=jEZMxS%@$?KCw
      zaZ1k^kwXbCeP|MB%{k80u1I8dcD8$Vdw0RkMz;0zY>gZpil;I;V^a5FjX*>8zqB<p
      zVyz#muuh;o6qm*$mY&Z>QjTrrvwe4;ghv{%0r#ocNR8#NlK8~UF<ZCi{kR`3Ot(Lg
      z9!<rD4#o#YhtmfK1VZuUEL3ss(@>91GR{_k!BU(xLFl_zgKj;XoLLm;Tvq2chV%&p
      zvxXBb<cp52vnu)QAPeBoiYFA7Mc0UO=G2I!n!uh~h{~GShNaID<q8j71(%z&?HF@T
      zpA1kNn9CSblCeb<VS&vxb@!FYToIOFb^7rLHf!iYL`Ani;Lg(e(Sxl5ie==pPR^xh
      zOp0&!<5BG3MJA`){f<m57LNMxn7~@ovW%>5wN@}`l})4}gq^ZByC@Qh)uN0P*)2u(
      z5WpIs$Yj0j&uO;>?hKWvtC<okk}@?xxEnyG#M}e~tKu!P-)URUHgggtM}{NHX3W?I
      zFKIw}Pt=I+UOk4Fq@Em`FfvY`inze`<w#z^Qua$*WvAf)5)v_=EXqMY4&g8xw>UjU
      z=8<+T)Ul-=%N?s>7$Yj46<A%xF-A^h4cm_+ILe1<O1Fy!&;F+vu?9Ln=Erdm9`B@l
      zA!QKH%OFljomzgS&PhLXsZ&3$&#TDrb*zR^VJC}enT}!W76omCLF~Bq2CM=^QfR5d
      zw4E^qP50%jKqrChmW~Ddv3%aJqn2JQ8tl=AiVVq5@BEbzSTEmVuDtL;<)9dMd3g8*
      zIs)nsTDo3Mraiu7+8a=kX(hm&8sOF!(30tZ5@<+XgLZ||b?{3aX#Ad_)lsfavWPmG
      zF-A`rv|t<$!@y?Vhp`PST`hiOsms0x7>nRZbH@!drkhqbH7_D~73&xAK-I}AH~a}Y
      zJcTA$t|5O(4G-cWstY=5E1T@*EKPc@Lc7el6sY2!O)b&&RCM`zP^w+(P%0!r5x;Ql
      z<H@a#&Mk}R=)8_Cd+U2W^}XKuUS$EFbq1B|*w(8C)j-chtmL%w6Y%0}(DMb=FfTv+
      zlaZ|DI7ErAk1!fk+-rI){mJ`v92*yq^z?dyisxjncLC8G2&IEcQ|}@kzgbdk3o1eH
      zxc34Ym)?1+I=7vlQAAK_x%khqay)JHQCA*KEhR(iq#@~|?`CyXg?)w<1ZG&<S**Yu
      zt2U3-c#+}0giUyvZSo4a^(vmmYe?b@a(JBudV_pA3kT<@^(Ic^E$-gI+jtij@E$(K
      z`}iE^@g+XMB5nPI5AiE5;y2#>iBItt7TgjYE`eVz5zBzRc)|tq7M?^uQ&~azrw}DI
      zR^boq<I2P6e#Zb;UaY|-405F~((~BQ7*%S=@C?6_^XDinS>JvG2hxieN_2I4eb<rv
      z4ykXE?&=J%y3e_r(XPu!#AVmD<k(o5PaEAvy2LQQLJ(h*h2QY@3V(^Nxe0WX%vTa<
      iXET%%XfG$=<9`YUUSI-s$hwuu!Q`yb*8z?R`2Gb}yja=*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BOK;Oa5dJ21;v|@+l%_y|QXZ<>G+=SzQq)U$C@5)#h>FB*ldck1j$It5f(!qH
      z8{)zx7bGMk4hXLND8#pRl!%uEvSxR7cISJHzkUDo8Nh8^caRg@?1y9T#W3(rRNx<~
      z#E(Lcn@V0DYwuw@3X?&H>5VLPU<($H)QR!}752UT?vd^#4hn+hd9@J@k5#O?ffnS4
      z20|cBLE)|+`pK@q+T1!2*p28=mto<wixSF$O3M%R-gwy6aVP6uYDGO29H`hg=V{SS
      z2L4Fkwf;-`j-WVDqk$n!6*Nl_R9!eIQks4~Rsm6~o2|K#%-+t{Gx~^<fsO@Bzh4VV
      zz0|SpM1KLG`CNY}C_jnDaZf++&1fp~@!m3=0=F54I&K7NG}0pnR|OmY=8*<6Fs##*
      z#mF;Yym7S|955@Vn0egIUB31a?t3OVEO0HP#XG1lce4jr#2KDw8fUrw-24H{lV6&5
      z|Jb~ObJOOhq{^}9;`Ud_YgD(tKnPP~yg}ZcSo~&?3$y_=XyG0%;C>3dlC@8D5eVmb
      zXY8yp&lJAm8`D|ONHz>fyFRC}CWg-x-onYfgKc<ctgD;@@QAD}PN7Zddt}&04Uba=
      h>lyY;L4B&g#TqVgTE^hz6m1PxxSOF1f66r!e*g*|tE>P3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7|8Emz9Dd%lz3Yy`O1BOMPNyQY8(RnH5C&*18&<m(=o}Qpal4(};q6+lH?~D%
      zl*|}oqQ>}(8iPa=65|huaZ@2Gzxqe1&wFjw1?r^9`@Wxh-_O_Q^Sp2W`un%v0UUs#
      zqD^3L*;z;}&D*J~x^2zso>g&DTy$@_YNk$2R2*+^lA?;B!2Zp2(_UrXGK$uG)i$Mt
      zKxd|qFHW9KXY<+osp;`_W^A%3&~`B^5I$zumScG*1OkcVlt3_3nKj!XuqA>J6oHPM
      z<(T<}`5Dul)MsqEi{&bYZcpj1CBGY+$}!)Kil{)(75%Ed<QL=U^JcB88)oWEo?;j=
      zfxbD<s~%0I78e(X77q<o+;ZyR@bH1u`H5W7m^0_~FuDYkvR|`?4s=Jb4Lbz(C34bp
      z%GRB7s_40vQyzVACpp!Q9_&`Jix!&!CBeyAGp_C~NAL)GS!+69nl5H1PUps^CrhWt
      z1QNN;JTyTb)eyjAGS5DN@p_&u5g2_~hki4>Iji=6Ni?}JDiAN5UZ&#IJXdEwobouK
      z_vj*+NXm9=#MgLZN-|8~cq=$%H(b-!mk9AX{d@zTlJxDFOWvr=P8(Y?%&H`6O+}In
      zZfSe6!Qpjf4Fecdv0os1e>Wo-LW-@oO{eV5`IO8`^#c(c#33FSbGn=MWI5SnCX8nU
      zx-8o^%eviHhoO(RXTj8vz+u^pX9c<w*;X8pDo3S?1g!-SvcQn<OcMV7L}{cNbtq(e
      zS{D8wXe@}82?%x~RO8j=Ws<AQiiE{saAbJ(4A<l#9V}2I-y*w*jhNh!d12;?X?UY5
      zUJ@AGjMYs-?Wv0zvdBrS!m=6p2nskY&|X`ZA<sxMiC}hPsK(vYa2As)_||N10+=O%
      z%BCB^D<H(-s_xcI?)^s>vh9q0K7ta`#A;r?f+{ZZNozV>Cl-5RTb}9aHi33cx=d|)
      z*&e8qUDb+}1=ldgE&0%OG&P1~Jb_5oaZER3>$RH6Tcy+$FwFNdz_(mrr+hRig%F0y
      zL74dEAjlc$kE(aIQa~+~g5g3b6jcf(CCV=~%Fl3AE0m&2w7u{Xv>&P6hKRI*#(9cf
      z&rv$hE|k!T3ygFTy?7N*;u7}qJjpAv)wkj#d)0_N##{t<I{WXSqZHd7>s&+pHg>Mz
      z(Pofse)=;EXds4J-%+G)hR5*)%>@JPX}BEXDqRL|L%YSbo~YvQ&26v^uG>Dv6x*;*
      z+E6PYK@sm$4s++;z$*Gr1V(~^kx*bnxrw(2;>s$9N7T3)9ln9BT#kGT9$bzGzo!9z
      zh5F*pT|6KB28ZKH{cvyNOlG))W7kdW3yuWiO7QYX=q7gGL825_Vo$GO<d2Q=iX!4l
      z?~Q*}8d3JpR{D@5)*BDahOT3WG?1o8eABwrgz*Bpsq7H(3QMbE3*N+b)cAMgvG@h{
      z@+zLkGEU(wT*f;D`(3<__h921EmpYuAwHnZr}zlp;bZ)OPq2#5@Fza^VLe+1tN|;b
      z!!aE96TF8Lc#aT<aF-F%Y-bq1;sr`UX0eJ4r4U(h4JRon%*eqQ#>r8^Y+mFndAdwH
      z$<&@Z$d=ada(-|iw2FyeaOP*68@zQ+-139PS>}aC*SqN!_=4fSL>Io|$=5{vx}R=;
      m-PwA&J)~<r-JV9eVWxBmuQ6;Jrs=1Ru;^Sh#>sNbAp9?edL-ij
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO=}ZD7=9+%e45x88>983ZHy&N#l=G{SWz(2CXlvDW2K&)q(ic0vs*WtVt$IZ
      z(u<c|1VQj1di6(%&ul^x6hUN}nRniqc|P8EfBgLN6~KM0#1Il#Z##YSUDq~GrEMKa
      z-*O$3i}VL4%G^Fw(%W$zztiBhINioz2xN}ssWffrw9UQdv1<7-L<Q!j*^1jek)CYY
      zO28NpN<h>EB3+Fr5Pf7hmj75FTv|Qgjf#7uk_h8s3Q1fLn5$ck+U<9n%4>{3vURs5
      z?E~pqdOuDYe#hzwY}EhD$)-TOBYPc99w@0LAaEsx7~(p*nnD6`idAp>(k4%?RG&H=
      z`QBW8O;@hpQFNI7^O(5p?m!^X3JRhc?q6V7oaDaS_gZSp(nY&Gt+;N$Jxwf-syUAG
      zDz@zPR4<02K>6RTlVJ*qB{~dqL=fUXLCc(>4Rba)*ax1b7@1rJ*GTy@(jOUwFvmF>
      zBp)EdI5oO}OUQCZ^_b_ZA8+usew;3ULN2q|;gWwdWMUTN$qYz(0&)!tV-SzG!+cX(
      z`wsCQg|%-GJ9i1FLC=t3nAgB(h#12#zX^Ue@bZlQwkT&CE2srrOC!877m;xtHv+Z=
      z+@uLD`W6<){O4o->WKg8Z~V(M{NbS%q7&zcg+9PAbRwt4P7*Wv3PHVhsqZ=Uy+9uO
      pD4>BNUSb`usQPe5Z*`)#I??-ZtT)7t>Z&gDz3!gw*=^iG{1<-a$Zr4u
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G>u*zK9Dd&Qa=Np!bsGhSPNu?WH(1B5$O^+zHmq(P&^f3e+gW$$&NyqE(=)ai
      z4MrD@7c@~54aN(i&JaH!24;lF7e5$H{4D>B`n;!g1veLLbKcweU7z3cd)r_C{P8CM
      zJ76lP5@^fjrX#acX5_qP8snO6<Z}^Dnmt$0BS+G@W)0+X_QVjk3fuzQR+I0s^HWA9
      zWlR-JU1|t4#s`zBq2oP?WFmQFq^~F5JCqWrI+YOc?a!D-&ak@$T%qu=fIFTa*Q+5=
      z<A(=cfx3PprzfYU#&l~)8#8IHp+BF|%wf$k<i339-S3!D5D;jZ)Xr<OPC_|tN-q|)
      zj2=0b<kE)*ftCr|E_6jAGcz+CGrKzSRyMM;vvWt}<UoHaGoepuKCBf`vrBoasKYux
      zYO!8mYp7pZkC<968%f!gk;}%GpM;02(S(N-Y^26&U`c@bjWJ8J=KOdV&CItanI1_c
      z29Eakjtr%b_6mghSF=z7I;O&fO)}0Ffxc3lE20p4P=iiE><OdDlCP?BKSyE$!K`k_
      z^SPpJX{<{w+s6{vG~*71W!Y8YoH;iv*(PvcB}ipeEZx**3G)&a9R-J;v~BCNc1%X7
      z_RePXf+THGL0F)5Mcu<?J}(JNwA%gHf>ssV5mC?~5cqd({piFF0k5g&vi5{S(u5S>
      z<;QO9;fu_KX7$)Iu|zm7-|Y3{3G5T7E>4dzedaE(E|f@wm$O7g3<nhK7pSlJO)#;n
      zZu!xTgY1ujW)*dw5z-Z43MYK%VS^c_sb@8_#i>IJyLehx5kg#&;jrU>x%cp}6zP*9
      zNB+Y)!Sy)CWYbkbEYn^<$&|_<Il3a~%L_&biKT!b3p_<$F>Gi#Tg*@xd@_9E#B+|f
      z4sU^srBjA>rYV?Q0fGm0d@ufkW0QKujwv`HuxGXAx}VpZD_a%ANK5E^)m)wOBZUE3
      z{pV%%&qz2|D!7y#^+Uq|lb(`SssiTQSb=tlodnl3Y~9jKk}QArY*8mbE=!Jk|3@p{
      z6EeF}P35PpjNWI+YqYVFjl6|AWDo-WL@uXWaZ@W6b@r=T5n?AW0{&_UY>-zoS04DF
      z@FCl|%fZbNXbUK})wD|)OuK!9X-~jAnDz#^Qv%%j0_tEo;0;s{eh>9KN>{-zb)a%Q
      zL#rcPjS^T5jTob+44N^H$DyN@@59)MHI5bs34hslFJlorX>7ZNx^zQ*L*pWX*Rf#{
      zk5ru0I^j>!;W;$GbPV}RYIqcnQC-l{=Ca8S&eEj&I@D{NOM!Zwv%)>P?j>DbC6wAK
      zbtn~*pom4TB{+B6+P5vDt^Fppb-SW&SJdN*dKYl9J?OoOolzyI1h#*U+MxFms^>jo
      z0R^6PUd9?u`>ueZBSH678saBenw)WMNio_U^hit5E?<+6K9tL-Y4ZJmu1l!9g-|-^
      zZFq7Khwiwe?x5E_8ucvPe?IROL2vWrzl#4j*+T0wdk56!pl96k8P-cn(oXN4%BlkI
      zBsNmvJZm_E8qBgfbEwA)SdSO62``}?7tn#1`LE*@9K@?Qgn69A>#X=2Fz_ZN-@<En
      zo4bp67w_Obem~{u0zSZPe2Aa%5q`(V_yeCf@SiRLTZW$y<0&MZfbZgIJi}7dP`)1n
      zEPE|}BWwdKMm>JPAXgr&#rrtQm6y?7z%d*rmkly3MJtk5LwJ^>EZz<3c{s;>-R&-x
      zOP0zz?-I8#oL<DqE_ai=-PKI=3HS{>$6d2~^d?R_+mR;swG-l+6WCtf4r65|wK}H1
      z;O+_;`6d5jd_}r{O%5$!55A$~RqVsJPO7_0?w3-Hu_a2W#>%NyA<7n!sct|E&LYc@
      Ut1!W!tC-XzXO$5Q^En6K-$8y~EC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%Wl&^6g^`*aS}{gN>iXfDNnUYz+%IusGIOmklP9o6~S(jjuKanU2LZ!8~%eG
      zV#6jIBqSsj2)29_;*1?7;w6EsnYnZC-1E5p_Wjdm0Jm|~h9S`Cha>mpFmR7$;2+4;
      zk3yG+OvgvcefUhtxWnjL7TK@_77yjIbORao-M#Li>ZLY{0?YGkD;gfjSat&?V2ueN
      zAld@OyME}W+XCjs<~}Q}=s;Cq;-rHzDgq0hAFAEau&d%u-n`^RJsIrF*w^=I(n<$@
      zB5>3D58Yb=rGZQanlj^WmmyGdV53A~>cvO~#H?+2a~HX{t<C2Gg(w{;x>)+XEKu%c
      zc2y_(3jnPf{joshNi>Rk>VdE4Qk_lqmZlVN+F_{TRv?o^B{nV#T>mG7RF^?vosLYd
      z0vEI~?iLqk%ghNzE>B%6)IY*`&%i*HdofGi!2)9^e}F}t;*E}Rn)}bqAFw?6rFr|0
      z%_}%FZGK8BgFWXPUm;$j*7yQJm^#-R6s(EKZw6VV4WLB}_izsPGw7APeX5H<ILn&0
      zv&uME_=<0IXEP_cp-Fa{a~gA^`E=qfY~vj)%{yaV<s5)VWc4_O9ZKIN!yf8*oGDn(
      fv1baJQw0vzaDmg(1}|o4Yq-Qy4_)x5TtVpvu1Kf|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XdH6#j0T?55k$rY!*~R;uzNY1*cM79k*(&|)-AfYg-m!@5~^(#7p2ZZ@>2
      z<BZBUjx+um-{3{Y2WEUi9H}FYJox4xrG9slNf?P89&-2W-E+Qk?svX(^Vi?M{Q=-0
      zOcgx>`zlT&xv^#^uj{sTRrjo_ljKA9Zq&@=nUblyOSDu31SYp~o%5<|mQk?QYPKmO
      z1V+;NTw&?_Tqc*vomp9!OV2MA1bQxI1VYCR+j1=LRe|1EyeJSzSFf6V5a<sh2t{Bp
      zYdL1Fu~s(SCB1ADZa7;tbi1g#mV9q*D#v{o6%m2aYx;G4!#|6oubK6lZkWk)Ihr91
      z3yiONUhP;ixxT(Wy?%JQ>Q<76W@Zj1FDzyY#;Uodhp=5BSdmB8Fo+#t3}C0gfml`o
      zCvDxSBnzHvIhE9tJMm&4MzLGPGmO}ZC&^9LD!aOSBaCM;#-q;VN-KrT;@Rx{%2Mg<
      zyg)3w6+(yOl!jjHk#&v>EHvxvN<ivq0sUTht5%(-*fOTAjFdpMVtVPSQ}<k*-Eb-k
      zB;F%JAQqR+*2u2$Zc)lh;6yhzWiMRQ);Gv-TYG+huSa5g=7yJ&#cA^!hFOy;t*eL&
      z?C%<Tx+UPYvm`1J#y;%VFomRwX@SUp+Zx6U4hkr?=~TQ`Uz!=|emIPm@G?IbtGYYq
      z$%AF$=@5=k<Cf#k&A89UIPHe1A%>%}DaQnM#4_EqB2kZraRMBGzIvlf>d2e#o{2vh
      zpy4%~QZXkm)Tuc`QYxk!MjEF%Q8nGIo7`hNx=<YFL1I{tRh{`C50V@7>zAX}Nz+oi
      zfNC_`Am!PW^d}oe3dyB_pbCO@-YFbo`E*&Ou=q3hOOwwVoH@?E;hOXzPJ@oQF2{J<
      z#E)~BFJChaFQsBxAhFe4wI#jRw=@({l7xl&Xk7}UfJGHo*z*oKZGDj*+wx3Tw|QpQ
      z<oTwaZhV@#I7C{Z+HehX!IF2~K)aS{nM@#@aU9c4+j_lja<YQ{cgmI7c$W+8lD8(U
      zAVN_2qpbMmAix!vh^W77rCv2(3WV~dU_{B6lnCF{2wy`HEnkW#k-q%T(0-zK55h7A
      z8rLFGmuX!f4<(G?A~RjW7%t;QT)}>RkK+)w`B7XXTdmyltVM8VWa1$POT$CMBb$ic
      z$F5C0*GV$qmtST=1H-uL1BIJmcpfh>Trknz7UVRa5;AZf+C4s-g)08u>SM8ib}Z+e
      zUI%0hy<(CSafNn>JGUnilbe`GJiz3uy|aPd*<kOiau+8OQRM*+&8kr~GW9(MqRK7w
      z-3*Gm80XH+9c<&{=ntUl;6ubpQDt~`6R$kFsfegDcITfzqk$iZ4jl2<<}#9q2FD&C
      zbxav0_@sIV{iDjSIC%>@C5A+pf7G!$1m(!N?4yDz`cWgl?_mfocEZCRG?2hLrm?|)
      z^Y?KQAK(-|M2_E=@eyo%Opj0S89v1~TyNoXpQOvaHg2~_A`y5U8K1=4cmr>euzvby
      zvB>5O;7j5ylCmLufjq4sw)4h0OG{w|Nu0xZDz1UuoR19m1eWj?SE;`Sv7`c{4^b>_
      z;zDjJ!9)Loi&OWO#XUde5c__))yW+M2NQ<y6(abWU%ut>zw?WpXacp1j^gcB(a~1X
      aA<A?G@380|=)~zknW_SJ1!XFzuF$_4bs6sf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U31z-6g>+92}*1i2RlydmZbRrV<Y?#Cjr|D#t_qDNCKtN^ue>1RZuGgBg-*)
      z?+<C8`r5iP_Dqv$-}@KxU(((cE^cbZQ_V=bclX}2_nv!Jf4=+ecL0m1%J4BHTlS&a
      z?^x<fZkhYsHM_P-19xBb40YS+Z<;oDUNy*)Au-Hf=AL)E9aFEHot|Zg2nPRl@dZP)
      z@-2VKRg2p#weC8m-O4dsDRk`vm)mZWTZe{%5W_@facOzw-s=4a5A&OatzwB`vQVqm
      z8_)CQYPtGkx0Ejw8+8WX*JTD}O}9+jbT{ajM6$^s6}tOI2!s<s7#}c<S4`We9(MK&
      zr@{9u$|qXs>fCB_#}xM2VsOoakr88<5t;TqLTuhK4tiWS)Mr(iDwt-7w_UfFRn?=T
      zqx8{oy6d#mrA%f~eX&!i>usaM70fV%+W+tt##MY2!6ZIrxSP00!^M?kGlWkNm+>h@
      zTt>DaxMJ=()SU=!;3k!uuWGyX^3Kyrakrs8Eixo3mm!=tDi?+yw?v+|8A^jZN0N~H
      zzkpsp+_rhZkh(PHJ&BPlVlBh<l;Lpdirp$v16)Fp5=qhYFtMzEN0Kr38P-QJDth7=
      z7VneThC=oNJaH4YYxLcmNHARN>qbvV{y;{W;m*j|t+U%ObQWY~BA7!ej3undSSHE+
      zSK$%d!zx42GVGSy_9R*s?hhh(h%9aBZSLe<QCK-y5IbuTtb@cXoA$oZuYEJvDl2%*
      zFm2l2{frNl6({@92x9@8qHhI;sYH2{oEQS0D*@|++J!DgR(g>o%9{#cU_?DL>DB3_
      zv%>Z6p`#lm)4Npf^)M}%K!&cNpMEnwTtfgsvSiOv$fmnVa|sF}xI#N)WO1^^b7La-
      zCan3TnkEHmS|C`{f^tohm71nZ1Z%%y{1<Za;Y0e~L5RLt0?!fT8o{h1iVaNR5w7Dg
      zW@#^u6<QM!;+Y&CSEQtvSebi`t6Fp_dhHa~k1>0S&(04R^C~D(mL&pt;sHelVRZOi
      z3MVF!JgXp0qkxo-G5#}+gCs@ez!(3Dm4>k-Ao7|QG32%2@o-G@AgyHQQuC)!Qzuy5
      z@UKcg;dUw}o#6gzAgaUyC&>AJ!1!w{XfY}J=oI-szL!``n*H&wx99oaB!+=!g!h~n
      zuM=rsVg^mz!dKLvI_XgJ^4b`jc$Sx-bc<F*-dPl>b{|EnRR1>dF-AF;X(kcUG(M-w
      L1d$c;^<n34i>r7I
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2hUm5Iq-`UAkghsjY3bO4YW|BHIsBwNw+N(2!6z7D6OGnA`12S79N`Qs{s3
      zLF+>kHU0p9lyUBYv`Go^fw^~Y=A4;1bNKz|`!4_+c&fn1uvE3%TDM-)PI=8b=C0MS
      zH9EL^)-<);-l6%SL^lNzLwr<f%5BswqiEHeHB%rMrqX($SUODQ3c14m`)n$mDHR!f
      z?{W;mU882%mivmqAB~k6q;%uh90S9R5CV`HCi0eT7TWbA(<$+z8qtOG4TIOp+_A)W
      z|54ucXcSB`%zfmiyz9+k^Saq;a>LZ#6zCd6m?3iFy3HL;>vTGa&Q_w~RJG0Z^$qRq
      zLB435m~|e+ZH54ioXM(~z)T3^xWlj#%?o0!#_g(BbREmCCa=H5%43+rT?O-m7^RcY
      zCT|@%+&K&39u^qnLb{MT$S_3nqkxyvCRO<HK(rTO$oASBI(PDa3B47#CsvD^ABh<l
      zBFQjaHQjW>Zn+MpCD_$0>FpAO6pe`;t0b!NsVrQ@@N$@lVg-&_<6RPVU^x%q*^szh
      zv+E{Bb84n*m`!2MmVy|=@=)wv-?xKgA=Fw3OIW7OlEK@akFKqgK{0y8#1e*5UvG<H
      zj0DIX_smW<7Bd$cZO1UPmN4x2K&*tQh;_2JpZ<9av%=$a3m^!EendrI91=xfaZ>)N
      zR{WA)kpg-pAnO%b(JM+&uLLJ${TtM;l;lH*;<5+aCbDNx@thp-0%7c621(3g7Yo=%
      z1e>_&At+GBzj7HW&*)`p^#>*@;alOU3rwG5_5$}W3ygamr>NL#B2Ifmp&ks2ct~)D
      zM|j+yAVH^~l+K}kp|jVd?7i(@!Ab)xZHBT|1ctJr-Z(j`DRfd+*Wwpgy=+FMRN#Q7
      z)jhIEFRf2T0L1acE2ba;jj|buzClsQ8>dq==L>um(bKQjTJcJ2zCml7Ue?xMw23UM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2hUW6g|VoE?u!yYHM4qQa@T~k?n`6TB-?BXh<l;E+G;h%yzrd)ny^eQs{s3
      zLF+>kHU0p9l=04hrAbNkftlIKJ?EZ#=J4zHx1Rvk@I;1>VX^LX)Lz3@k9FHR)IF=|
      zsI=+cNy}6VJNxGQc7={I0u0HkYBOH5VHuj$XxS!5Fid94C9SfbDU=GO-FNv+HdoOY
      zd~XX3p>4yq9Lsyj;EyM&41sL(&>RE9wJ?H^7$QZ>F-x7sf$3KC1Doig#ipU#Ro%7t
      z_ux|67Bn&@7-m1{$9hi;<LC{u-O>$HeO;ns2vLUEk>|CxRJGgfrn(!crdwCnS6A26
      zH+x0RI5Hc02sardnmL!(6htr`#yD;<EX9kQS+#Yiu4<lZIra4An?!XCv$!o|ju2NF
      z#my;N2d?g(gmDM+3_;P8Azr)+H?%gbz>j-eU5p{$S2uF*^#2lyC-9D}_P<076Om?^
      zs+(T6>9jppr&n<5c{1E1ia<QUA6X$+jgM8HD~1=NOyqCinzr5}W6wh;03wLQ?U_9<
      z&DANno?*6lJlir7l-rTmok4QXi@8%PVLZYj*-R1dh#*~hP6pZNH{%A3q`oYRVT=qY
      z9QM;rIp#BK&5moBd5b4DGIT4&TVj<0?x#N=!wgS3oq`BKrXO+9myQ6fz`}&|L#g=#
      z<ys(Et_7uXO_IwsIaIENCZzILC|{_^hcK;+0=P+JPodx$W#T!a*upf@n8P;av56Sg
      zaa|y2p^Crla@3yD&E)cTL~79+(aAGRonqz;cZUteh2jh~dqu=qK@{%8uz>pnXLx{z
      zg9%c!bIQOel+U#HMM~ms_X0L>j-{ueswIx0s<;@ZKs~un^72aZ49i0?3Y7wTG;LXs
      w#rkCfG6Eop$D)~x6jZ8aWcnJd+}<SZT%1q(#8=^8Uz&D7n(tiNx~SUt0}{tB6951J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs7(I9E+EFIp5Cjw*h_Jz2c`>LAP3G9hlCeg&EG~X9r8J}3bxYT=@t^#l
      z_<=-?KfoVld~Q1j3CrS#-rL?h=RD^*_w@Il@4o<S;i-fG!*bp3D7}WIoN1PMqPb?%
      zR%p}Q^Om6$4l1-s5Ezo9>N0M#Vd`bG(XtGVV3^LTrE=wMrcf%B4nO2G*<7W}5O`l;
      z2=D8bX`AjVhG0BVWe~E>6Jrbv;}L`)GE5dt+bDG!$A(kUjxC~#7Mr?eRW--t-~B^z
      z-=mQ*#W4R-JJWjJAhy;p+AU2tls6@M4I|1BJ9XXGo}zTS-Bfoc)pY90_U7i6^6scu
      z)=!Ow7RDWtS2&O{iP;DyaF<~%UgWHbrP+0*>^i1hPv1OARL3xndlD81G0G%vOwl}c
      zH0L~m`&eWUOW9K9D8~>ljsjl!nwAm7LoP4IkoV;c9XkELgr5KIso7>&8Hw?ukY<>v
      z8*a8~w_Qgg`|Wz3oOTH=#1s5>WwKNMROMk}csa~LZoXq!T8~^EB+UbO=_78}=(%aG
      zOwRRmqs24XmXKgr9g02Z$8}K5UD}A?F;*Eul<SU{pc{9|AnATHegi|PZ^~jABLfO2
      ze#|MreCBeq<LE}-<WU{>ol5a`*rZek>2G70<I$$K5W<k?As+hDAkYddO^H9{T2N4H
      zLP)KJM71VLYE25OweXaveuMm#iUNqxy6ORUiR>9<Jf|$YKoonJMH&m($0BwS!!~Yt
      z2wJG(U%MQ&XLK^X{sWV>=<VqAC1x%#cZmmA4JJIr8EW>Lh_fD1#D`%C%LHe5gq8jT
      zDcU)uZ~^%X?Y>CSJ3G9F6$V(k7OGm~7^;eU;}obT_eomcNM2(7N{mdUz!6QWdSo%b
      utWQP&B=N*+CLsldsu`KSMJu;ANjn!85I*zO^Us%7z9ua&khbkr?feD*Gbm~R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%}G;6#g#RWRoT68jY1!DwZlllmOC*fLM(Dh>b}VM1xjbmL;rBHq5dJ&U8AR
      zsSkbXjF0W~L8~*&bfz7Dbfi-|+SmF=wf*iU0<8=qGu%D*>^<K-=R4ooy!!k17XZ32
      zr=m`vrRXdrSIVX2Eu&=58lGKol6)B6?FB2Dal8pWRVV^Sw>voGRm!$GZkHEImW&YC
      zozCaRCoT?Ua+%!d^vF<pcw$_j?rKILa(?K_^yE<X(y%}*d(*gOBuj=<Opbf5?G*b3
      z8qyVK(K8%x(kLxiVblv~-CaE=dU}tidQM1yOs)zL#*WSJdIdt+;oRuNn1J9-;Q_N`
      zJGM6{5NJzG3MlEytQCPkJc=Mf8s0&pihTn5|I>)#UA#xQlI0Y=c|SfQ1Dm4Q30+`k
      z)^@DiQhCO5CybdAD~@F=rcs(STwCsI&d`8=zlsk88s!};KG}{@wiXu*(@I{*(G255
      zf#!M7Tj)zBmzS42mXCK-++wo3v$HFC<$QMBoVUtG7>AjM?RXjvqAiMMBm`R9-emAi
      zPhv8Hb{tc2lo8uCQZ_GZ&$xzrJBkh@Nm(|Z8x?5FZWp%E`F;%nbjjqp1xBjLZCP{w
      z+XDK1^XBbEfkWHI)YM7=#fz5bYsfW7zf&9`(;nlMwuBU*Mmo*UDK2|f;M7(GO7dN+
      zWUNq@>(k%|_!B~G&sy>NWop{+ifJv#xmi@fyAN*}d$u-G>xU&xr=mE4-Y`xJ?6Mty
      z0Grv~W?D;@hCU2Q9?uBuZOd%cQz_rGQ4C{*LN(_NcgT}9W)f)`JSKx#ZG4LY6O$S~
      z!Fd%~PU?pA)5I`L&vK*4AukY|wTm_}gKg<df>1#}GXd4C5+G%<Ww~!sMdfmoIF>f8
      z%G{g}QeH4zPL7!3Oq&&dH&Nl<<bRs~Y)`%ET83v4aET{#Th#Kl86-AQn4h_6nO?t&
      zX;QyYKNVyZEmy;JjH#FrII!`qI_o19w`_RpU1Sv{n|v813Sqpm<eJuqEk6d)nixAI
      z06O{M2=Jq;V4wW#(AozTVR|F9>!5KT-L!Auo?jWh3(~s_F`nGb-M2)Le}j7D53LZ;
      z>+=OgkLC+OHD3tnp?pCN=L=z-J3XY+)Ky*M8rCEEr`QwIo?-7(?0-yzI=s&{g$92O
      zQHS;D<&7t?htg?8KbkOr7Mwx?gGk~ux_SB|oTaB52YduBRM_j>hMB9NXZMlkI9Q0a
      z#15^Y^$Cuwp>yNH9X<_XEH=Zyb3RbC8iwQOVYuKWDXy~I4n8HM@&tPx@mWne<oj})
      zVwLq+juTIvlrcQjCsD);+8RBtj<g?L!$3Pp7;O3;JD#Jj5Qq(~;p3NqloCh<1F29<
      z>r>kU&yY@q<6*u19wK)Xv5H;X9J>cC*3hTY(G*u^pJ4w(G)N2yG5WIRyN78d6<S51
      zJ+8cl>Aa7A0-St+o_OdxBpTItP`-=Msr`m?@reI;h@BEHu2gfn6XeDJ^(Z2)G~NGa
      zb%W1aY!fg+NnK(CCn=iC{N1|3wiMXBDYW7$S-eJ0KVwU;;|y+K1P0kRF^*Y!Efg__
      zn_SDVu|(@@l<*B4+(iXHVgbLv#bYeuSHAs|=l;U7&;4AL)f)HY7oYkPmevJaWFPAB
      zlDFvWc@utSmO4ApjGvgRPO-FLl^I`V?yY#hoWmT64*bB(r)b}0%vD<QH}@LztSVxP
      zSaOh}&vCubzJ?o*E{jLL9>P3n)D%)x*%$PD$sE7(vu&=%t!Eo019AX~Rm)b852-Qh
      EU)50#IRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUU31e$6g`{BmMx1!bz%y%0rv~+IEnI65{QF~aqQsY*afEsL%$TEu|;J$qbMZ2
      zcKR!LD$@sEQ#ylZnofD=N434Xa+3^r($4fjyL(rA&%O8Dv-|qb-~IqFhc9FdF<ff7
      zJNjP7(H|R*{m}63uB+2z_)oShz3lo{%knm8Ekk0MI_YrU?{;jnZg;jEi+eDP6>8P`
      z#+`h*TCT2rTgn%T8+C@E2W5uHis{&{?dKSVQ|ShSROmjmqF{)r2qDZcTCrWLy3^UD
      z_{OF~aPdmlG@ORv+1&1LhF1iP42|LJBjd5LC#rFcj<vmIn3jIKO3Mi149T|dZ!PQk
      z?(Xi)?!rvhYw7c|vvc~r^-A4rTOA{UaR%8AidHa+(<(;rE|HX~aA@5z+?HPVJ=<+%
      z-`+_#qBx89WSsjKS~)uvd($(#Co0~@1O;6!7Ru}S3PY-L630jEW)%$M0?#kWPzv%J
      zSbFxq0*Ws9ZF`#`eWK4XRb&|wEz2)--EH49s1t6hM5OzKA*Is1(F!qZe&68YVz@Sl
      zN8Sg|a*RFV_E34kL8y_ieQVFp^7NGAo@s4yjc&_GGh7_#yV{rU;bBfyM#U$%s9+kp
      zj2Q;)&4#L&#T-M}vD}v57P2fyus{XcuDBb?zA%zx?N|y@xXkHaWH_BF4^jgUc16Wi
      zEEBBRHoUygX(^`*3?Tu+HT`BDM5$~BHFGr#tnh7iC|^pPff41*rq860;>1kPGJK01
      zcIXCG{}2DiGOcYsvP?fKV~t^46wopJwtmBI^|hg(gfeI6bK-A6&~!rviT%P+@xe_m
      zbv;5lY#dSH*uLc%4)wm?-SJGTWb>y$JEp-I4noZ%3g}&9IK$r$T7?jSOdms(tREoJ
      z2rO#R-<9UD7OOQSO|3OUa;+KG!nLLxsWl@SSz1`5r6y|%jS($c`xVMB<T(VD#(6O=
      zQG_dqQExRYV;ot!_$!#eHGG5|()bKIuG85iT*d-U32z#Rkbm+iQhtnf#wHIi+Kj&w
      zAL}9U0%v+Se-vy)lvJdUCB(5NfYiVZAK*iBXB6<`eu*<Qb4ck0lzp0mgu`O*)-hk{
      z(3frmow~$*=v0am#Ym!pzRqN3s)xzUOHAb^o?_$xspfEezK2g=4KGU1QO+c!msna1
      zB|_TlGn}I7>dy#2$26@nKOvToo^ta%nbSw+D91@i0nm>UOGp#X{^}i-oTFzKxJ@bC
      zA%5#*ZQvZfL=tx?!FyOllUToxA|Bu-zM{Wh)1Pl((isQei86CR0sS(84)te6(9od{
      z<*4KsHmOI~iQWm+kf)VI=vmxALG)#n@B`i4r!!nv>H$j4Ob<8r@3MV?6(PEA^+^sI
      dWzkLx3T%-@GVnXhLdAMN3$>pGT}aWU+TX4XzYqWb
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6e{&L76g@8ime4guqETy&XsrSXY+}+Tkwm2k8bd$>lPNk*=Vg5Z+b#=k9tPX#
      z7wM;H<BV~%Q~&RW>h!(`Nth8c-9L8szP&%rJ@=md=im2#1DMCAff0sy-RoH0rfa?8
      zuJeLRr{!7n;PQ1_SVivDJG?HcWEcoA%%0?(m93^@SDa?s)e#JnxpJve-O8?))=Lk5
      zEM#-}YK39s**b&qI9sjew@M5bi$C#K-0DcjwR}+*UF$KIQutnmA-rn4j_1fb45RVH
      zHbWrSdLhQZaLPmwp)gJ}Tz$q<zhqNSpZ_{PyZl=`)i>u-E4`CMGJ-RhG!SJt|Cw4Q
      z&f*-QvRloz;|hjUya&rA3apCs9j~5Ad={xfbl!x4FvIDh<B3wIxg-24-%+`u#g@(8
      zZSFhD?jMF$bz=s;A_^3$t{#KOn_{=kZDBnr(Q6pf46%lk?c0{Mx3`zxTS&M3x^-)A
      zZr=J~vskekqRGRE5mySTnpOmtaLvS*_?qG7kT!-iwmpV#aMQpIia2S+Y7vUgj?ewq
      zCgMmi1gqtZJWVlPJSpyYDKZg^Vn(5xWhnH}4edPhe-rApkPT;-A$elV;5O54ovRC(
      zYk9lU=QIhgULevXB?-h6YC$8!to`%0QU$}>FdEeyeBtsgZOD;ibbyu-<(8r=GYVfM
      z-?c?siEG!uw+uIi#@_Gi?#NkjwPcc3Z>bGlF>xCN+-P!1;CzOKL0Gv4_bcLMM|idv
      zvZ|ZCAmV=wcMXuDKG8zo#l$^ikIE1uB)z9$<QS$LPyZ%jhpQGNvqKBFh`btUfmj`c
      zbf_C*AgDc+7PJBfWu;}Oxl(I1l$lRiB~B}?j&F;Cmg||p;igpy%#kKX=}$L;3+h)v
      zZx@t6=^3E=7$Wrj3$k94t**pG=&wj^G*GSug5_E;RIY`La?J>rYvGAd`3=nI_&ZFz
      z!PKARtdat0onVQQFH^b|jMIRk$Y2Vq#KsyfV+k>2Nn7_wEep7)Bk4w856kBX9HW!T
      z<Of`;MK4FM9N_9ct{)(ITxeW(l81=`6?mW%nY}Qi2nOig(jBXg(qyTWfqj^N(6a|N
      zq|Y`6VgpC9v|;46pkl~tQMc8gnu@>a<jm{=zT3yt%v&tK#p>@k^#O~u==TS>|M3`O
      nRP*?R$k@UpD%5;c*NXMB^lMQ*!v9cXnZ`OEQC)@&jk5S3??j@V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OK;Oa5dJ2ylO{FIqx2D4C_Ul04~r9&ph_sHQX~rwKo7lbk|o~CwP|Ws?N8yx
      z59kGn3W-AnSAJB*>^drukRmR-GqdwOX6)a$KW+d##by}=!jn;)`4=aVe=Z_56sbyL
      zpD&SKev*D5<53zOh=EMYun3#8noS$QW}-|IsK@a~bs>iw9}!9~Rjkr|!j9WJ3T6?#
      zisOV0u#-;vkYII_p{$~adk!jCAZ)w6|HoHAs5`Jx(oxev8FPeMpknzZJL${ud(n^B
      zZZk**B03afrSnPAN<(!<XwQ_JT2hBl6?g6l?o8m+oP@bhoP~N)LeXvW?n?4B6A`N~
      zxxukG7k(t-k^i=TEC*?)%?q`YG?ZiQ{GVsG@h-{619_nIZ1pLNySkabKFjc5P(VYk
      zhNFgF4Bth5si4Z|JZF+~OTT*7&UZN8+BIt4`ZXF~xmds=pH0*7j7gp|WDj+`z<sWJ
      zIS@-&=1dD{Au^GcDwt>mt46Yg2NOx3Z{1~k-%z{aAeYIZ`-a-d8z$6*HLOp-AGli+
      xx3+$PK4Wp~Cx~e@)fd>-Rq-$3f>}V9$9~Nox`uc;2j6*a;UOLwKO4r#<3D!kuyX(a
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkT~8B16g^Y6-BJrk0ktAhK%rl-g80<}f+$igji#gtzAa@aE8E?s-ID5y@o)G8
      zjISmNi6r{&Z}B&%cc!&~G?f?AWcSYOy=Tt7=S;u<{PGpRG!|937@`HMs@007wx^rM
      zmhKp~rO``wUX{3(HY!fmD3(mVPD>RE!+5*=qg)2B;qam;V+g0uR+MD$%o	EHJze
      zr(f!OdQEb(^dhg6^gP#|XDCd{Pg>P6OfAcuWa_N=ZS$5a%cj0*0Liv_M@=RpIR<6f
      z-r_!V;G7>S{0wi}F;D$(>XBS07`pv%!^6;%HY}d07B_i$UEefGi$L1W>t;?b8)Dtq
      zRGb~7!VquU_enF5R*H~?VX%!*B<MED<`8(#U!61bZda`>g0LLjTxn#n6gg*8uSml&
      z`1GbI|FY3B`KT_x!}Gg2VQGf>x*(dVTLmralntwpOxxvxR_3N&qrIlzWr4K7vTZrM
      z=17Hok7{{d62_>g2+<X2S^KbYX`0Ex6Qh1y!H|k;3_)S%hG!**b$gdv#%o^oVw{16
      zd>BJmcqqa!(TcJJINn4gCu(AT#4*XxwWC+o>@t_QH1Lja<b@X+Np4v3a)(U1&LIk`
      z<kw+Li?e1J23nj|N1pZL7H%_iS~Lm?%g`T=)P+1wguyLgg}qL(WKi?<X$lEj&hGTw
      z8C(_TkGEP*jST2^#0W|4tX(bV`HCS7-gnZcQ-Tjh=uULdzaE)RTnvg_6sz#kvy)bD
      zDOTy-7mc~&LqR3zK7cP8^n6CwN15D1&u$5^2tSq(zyqA8z14ad!3JnW0QBo8P!SE_
      z0v#iwi?}3f`w*nV6}fjAgG5Dq6@)xgLr$UmtF))kYFHBcK(WY5L}T#-j2vQYBNn)R
      zfQiiHKBDh1bco@Nz|;Y5e4~w<2_^aoT|p(jj}e*h>&FrQQEC@>OlPeU-xP6rf>Ep?
      wj0|S*6!-8<_B2~RvDs4scW_tsl%SjhaqL9|Nz74CVfZjlUj^d@LU-Z*Z>?mzx&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVOK%fb6#i~J_Sh3A7zb0*k`f9fF#$Uy;5-Qp#tx>&F2sbGSC~vD&QL$1$%F){
      zs=A<?F1lgWE~=nXp-PpSf<&rP^|fsKo7#SNoCk#{s#Hs!IrsQHzw@2z-~amICjcj4
      zs%Q{6T&ga{mn-G?UA=70=#EvZ#`)5nd-G;ITdS4|6jUez$9A$Db!rvM7`H0(Wm9?x
      zv?TMn@xtZNOfHifn@W!+Q-yJXhU*!Dz{SzYsfp3-m6Sj@dq=;k$IE)P6d!kNt6CZo
      zXiC<q3yxlOCiL>6=|>~O4fOQ%_V)F3_a^#Jo$Tv7)!*GGBV}^+NPaYLYt%2`%cgQ;
      zh4TV}x&6aN*{WL3h=8XvIw7DWYcpm50+ArR@M(Artt$2jgkCNzh}ZE3!<Efy$(eKg
      zGt#jwh+PN??8;hIGq+foHtm8wT_y(MY|YTi6S{55^SaVE?B-YTmO!h_vFzes)hp)0
      zyl$BBOF4>u92RJwbDa6XczkJTDYn!btJ$S^Pj~l;_~gaxxG`r|bU%);gEGgY;UGGL
      zXh&3_qw`fzU)4k>0_ehV702kY(`@BDv(~h&+xLQqAugb1a)s1b>asv*b|=p*J`8E_
      z;DoHNM<89VZ`;0y{%b&YcFvr&AaG<ypA8a|SCNwGxYV+B&Y)UK6K;nAl+LK+rAADR
      z_sKbHM&R^zAj%2YW?5e*TQ|4Fb#OO_u^n^S8IrYWsb#~Qm;1D!g1L`u>w9i})i#YK
      zPN#$DL%$zq$RMlgE@r!&aXZCDQ^O!eC6Z?a_I75r8>}Spxgb(Vldi^`ZjU;$$xJk<
      z;XE#=V6!b-^iI-3HyqOr;$36~yfaqGqKCILnTgWW>*nRyje37_?AvzpDiYiht_xSs
      zqEwrmb%Rvqb(`BEu5p2lntLkLcsBS=@=Np^4cpWmlK~fLnfpJpcmbgN^c~Z1hE&`T
      zXx{2yGDO35+>)qHktW-ui%zJ}1rBU^)i*s|vn#r@IX?DRwuq!&CIiN6i?(5=EqN6*
      zZO||#BcPl2hKJX%f_?JVp|lSw{L}_0H$dY#_`<n~XI?V=%}ecWglXBr)2ECeKO>>Q
      zk6O_aYRngvP%vNgs`;WX<jWUTf4=As@f7lfD2CLK#-~3N$UnuNu=WglpJM-ajL?8L
      z`Ane6efr42M)Wh|0QQh@tr$WZhH(g|5yc4NID;NqpTaq6dT_vvzy}fBs4c}>1vM>4
      zpW|RLd?@_(8akff=o-4W5;nUqoM*EcI$m%C1?z6;#YwsgCQ0xq+l}!pLn=?OXO-`I
      z(LPs~d%;)P^yMPaYC!tXYEVWIzfjhw`SWPku{8{L5rmPp&(ZuGgGEnxWDW29>`5q|
      zgx8bsg|$Jo%kvD$gg@dBb*&(9UlEV7n}_2o(85iFDiv)JW#$R?Kf*2<BcjxUtZP>=
      zr6hchQS6E+8-cnXVu&FIzQoCh?=wVO)reRA7NAo59%GS!`+6zheJ@l0D+O~$l(vU|
      zKi)$0E(Zk^NUAFw;RI=Om4955988hpyM_)jJ%$@Z^(KdU3ukc~Y3Rh?z&K_w1rru#
      zQAP<hN=vwdk9qn8RXm{P5$3T98&9!-XIR8<wEKfrk^-}JT-VVj!no*?SV}qMIf+L6
      ziuXt>53BqZmnbQ$>>FIB<Yj$dvj$mv2fkwcelA4}U$Bd-lpoM%l9K$>EwYn3C$2G;
      zT&3W1TrYO5;pXa9vFb9yPs`iu9I5l{18P2GjUTzyw%7eOs|{j$z1rY<wSt&Pmd*SF
      D79JBT
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+in|G6kW%0YR4IJZQWZ6gw|ktk_;{oE>072X^J5iE>S2!l#cBad&1aL>~Uls
      z;TI4RM*IL$ULsKgeL(3eQho`s&dk_NohahPXU{onuf6x$d;6b%pZpCVgUtv+0@I~x
      z!)R7)W8bu`qUl;r)!<>e-#wDXy4k$jEZB{@wJ%rAf^;JY3rwEp;=u&^N!O49V{3cn
      zzG>KIwPbAO_hiA%@^RN{%A$bS5x6jCRV{a3U_N;oy0dm(sKsj4VWP}9o7xr#FFQpU
      zLmytyFn}R}sbuc|`wu{1L_<F=C~HhZ1W|$EHLEH&8kM}PZJBx7E66FB_O@BG)OT<h
      zcFR^>z&JPDDKV);%<R@6kUZD@M709ZvRN;ydIkEDsay;bcrk(-ETLC!4OelEGRtop
      zrp+8Logs5-M-jZD;U&Dx?l^8))&wFI(=C)`J%U#ShCJSeYuUz%=~Ctdk{VJ-lR7VV
      zof<P452(ASY-%ThDS?ZgGwI64l2yu8U0IT~7<9~NFz~v-K*6azGHY_n5x5$#^uV*J
      zTm-j!xmIMss+e|+<NT)Ldh4`*0P+0a?)ZE2xa<X0ZB*sItKmJcCDD>}mu<67t;Un7
      z6Eo>uW(P5gJ1P`M_Dn6A=KIg}!5^O(7O<pY87l&VMW?~2+y08MfxHX5vhGsMVz4+P
      ze&lCb^34j~;{IE&LIOPxozm%AJ!2pJ#MBgi<}_*rxoW8akDr>;8Pz^2%vs|fM+l>8
      zOK6R%9pM?~%K&2h9pu+8QDL5A>5=I4AJEeJV+^M!9%J;7w;_zHHxH4e{~R>jA=5lA
      z@;>c*;u7NgQaBY!c$SJ4@~q3a!Wir{t_3k~^Hiv4`gaVsas7a{AIbM#^4K*W6R-<4
      z?ScP&q80aq{uH8xxPAmdCZBDxh5qnC-!sl3PltQV{sUacJ&!x?`*$;+z|A1@Tb(H4
      zdse3uJXX9<k!azDvW}2gXWYau=<hpV<iu1PuO0Xpy@i`TMpqcUgVBkZ{?*URM`pUn
      zj6!BQ$PAHhJcpcZA+5LZj`HKt#$*ROtFHdSTnHx|j<BEz7doJYHWtab_;Y~iO8o$r
      zX|Hn-Hrcq3*`7}*&!@PBEzDq>d-FM4eV=>q1vc;{t*`J94^YC_uxK@r#}6ptM@am{
      zG5QT<9P;H)?BNN%@noL&2Jg5l^D*vvGLJFhDq9g^lq+mYj@Cn3tN4)CA=mpOtkDw8
      IPmRXLfAu|{aR2}S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixX7=BI?8VFlH+t?4(LXGCLYhx8P6e%DO1=`w*HRGt8<d7^bSxh!a|AE(D
      zna(&~INovNjEz$-I&jzNf9PLve9rDBrJ*w3?0NU>^E~f+p7%Zb^q;>U1GtLYVFUy+
      zm0DBZ+qU#w!!pZ;W7;*Hi{aegk@}jkm#>wqX2aZ-OGZgLVT1%GPolUmfj-JLrNG$g
      zma%K-mQkzdH;Y@c<mC8q)7+C~0Z|Y*HDlIHXI5Y~ejHj@Jt@_VTFqvmtT>n05C|>U
      zWf?&br!@><NFW{0|9}1f1V%LU;gpKTG=$MFFuZEk<a%?vDC>8PqU9dQE*aK_Q8(4Q
      zzZr6>W<x+fG2JmU=|sfno<SgfBK^o|1^TN-qpHp;5R51C5lrB<Fka;mdhOP59v5h{
      z{Jv>etnutiY)%xEz?6p9af#irovN%0gtrZ+RF#b|-V_*eb(@Z9>5GO#n`4+#kA#LK
      zQq(WXO}ox=#(n)RG?yrZkr6oKDp0ek&zqHe&5;#Zk01?Q!`rwjFi^6$cZ|BcYYUwB
      zReIpLL_UmndbJj1$=o)q2(oxrX}x!x??YVv`yIYJlnZWB)l22UhZ=I2p}!UBELcW^
      zhK<J)M+Vc~%nf21vntg`|6wT0yzxRaycvpM4htF<@v*>Q*={oHhIdcc#YK*=BO4CQ
      zEc>@-#LN8LOLnL1V@w|t^)S6o3G{sESU~yOOD?BZpc=_LcC%iROQxFk=&_-_qT0y6
      z2M3RTkpM>3m0>ihE)3TYzYHM4=OEuUi3)KYOOAvye?d#89%48-@ereba5sQ)_02`(
      z$e)3R>r|S>8SW=NCe9+tH-%G~gd3?`0XKRD=a_>X#|1xUma9VbC;!B78yEK(dzn1;
      zysNHx7++ne(f9fHh*sJYsY8esqNxK2DtT&?E%b%<gU>aGTpyNM{R%E(+0~AE{BGqF
      zxa?Q{MkkB-m8VnAJX5-dh_#SW(E(y>%o}@vzTiGH$JR6HHr{%G(`t>o+o64rlWyU%
      z$4M(ry2D8mdF2<cP7j&wBC`sa?I5#6UV8yK-9j?e#s`YWrH#oBc3N#c!u0@-5DqY>
      z1m`-Sxi;phIsdbd=~`c8n}9VA#!WWz7Ta~3c6~-W?%*0eXUo6967CW4B@qRDjjvGU
      za|hqx2YieBFz_Qv_z4ofajbqv1&?6j5L<YH@9-3sYyAovK~uZdKclK@`xvI!oE0|a
      j5^;G(L4G-hPw*-Cb{H*VmC+%80&7@jBv^+UoLm0_ny9Dd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OHbQC5dJ2y6B1lPl0qAx4{nZuT0QlV3aJW0ie%bDTMpbd$u?eO>=JC0{*>PO
      z1GrQws?<YOuKcK~v+IZ!Aw^tvXJ+Sn%xEwF{QL#rDb~v<5WG>G`IDo_KNXQ0ic}@B
      z&zDF)f0F*5m;^E&rQxm^$g~WLus*Bbv=MCP$|Qk$9Dh_3Ipp|&P<o|em2MNZ+}=Sj
      zi|BP6C+vaEblUp_tD6jE6-C@}P{9IW)9u|JUjbp!fsK-m8V<^sBh&&F%Qx9kUyk34
      ze#CYgK{620z8EW=Pm5L>suLERDR+HO9YR%H4M1>bV*eYJFc*rGP!CHex@}%xNgih+
      zVgpNVa41fNABlM6zwIB&LE35aPVFQO<yf1)@ys^fCE0i&ca<KmdEMm`-Ot~EmH0ap
      zP}d9MsIJ$;cadKzsPZ|_ndIEkuU={E2OMwp95rw49QAKpETG9}!!$f&lIIM0fknK;
      zU9NjM5KCC*ObcisGLe=lnCKqv8_5<{rjkD2y36*yqjttYE|WvI4YiXuOsNU0Set@B
      zaJMFIZCrr9pt<oI#59`fD{Skm_>XYGETGF{@34oiAzseGSDssVfQQD<BV*+8U-GuI
      A@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TW=dx5dMzi)UmVV+Pb$C2(7`FB#R4#i_?T$nqtU>OB6~Fr6=}@y<xpB_BslW
      z@D~t5=7D#lyhNe~`he0`r2HkscXroq>O>JQKC|b1^UcgRGydn_Cw~LTVm*S8z+}m3
      znEMsm+>^Fdl&)2EOditx?vXNAE$8lj!EV&8J+&+g%8ei_Fn*qk2NUQeT|)_stnA7?
      zY1+~$nd{rTs^I4MxMS_BqJY>ExG-ZmmOCpjn>-EOS~)M&yyH}vC^OEbHU+|q)uM`_
      z2QL_iVnARbng9R(Q3wnf=*0zXjTnfaPhfDxa@1O*vaM<xa@+O_surZZDQlMg4lcuP
      z*{Tbe=Y~5aCY6ZEP7MOdbKOr=E6`V#^|G#4peLEi$1sK$Be=m5y5%--71t=U`nDl$
      z=6LB0nNwSu;1vTe;bnHG>XubaAX1TTp{(i=yecr@@itt`HkYJJnG;AFNFhzU+;KI2
      zG+^$4a;dEdCIl{ezGN$#3sx!bxT>UTF=Q}hz{KkU(L%NINY>OwRp4sC(gn|@@)6wb
      z=2}t(t0L_fr}<6I_10<s0OI+--S+p!anTE^yQr&w*T8#VNBT<2U9@GLQjI24Cq~k{
      z%=Kd$cXTLD?3q$B&G(;cgFihn%wfU6B9;XDi`53BZu%R-{_!sCs=CWI6@$GQ@*_Xf
      zl5bY<7Wdz}6%y!rXqQe`=Ztmq6VpTZS+!9ssAWsfcl^|tPU-ehVU8OAH$oWJOG0Z{
      zuL#dDU!sWdx1V1-M1^^dq=%xDf51p*9%C>)_87y5ybWPgzj=rp{byj{4w+_gk@soe
      z6PFO@m&WNx!n1U&kY`=S6~<tvaV>~>o2N$grGLj@3)c^5`;mO_1&`hEF#)^K!yfqG
      zCt7olWu8Jb5zib!kjZBoZ=yGR(DRIQz|-L#v;P3sanIw9`~IEG$8a;q{8l@P_@32i
      z1&=lFQzV+Wp{*k%Rv9<(3wnDF7&$S~!fOXUCey@CACu9TOdFFSX7X1*FCUrhAhQ~o
      zZ6mWpzVRG#x`}kAg?F?cj~2$;*lB(B7iK~@;c$dGO*q#E&9yL3&iS7MOh@VmxJ-MM
      zgRsuVea!ZJLU}&LEo@*4o7|hv+3Ne;gD<d#FKK;+hj@SzzJ^6>AKUl=Mf?bbpEyRp
      zp^QVm{E1yW!8e}Fv)<qxcVs@sT~Fo_MqFkqLX2{SZOPMmNNX7%(mLdNe}olUg8Avu
      GSo;rTVxAEI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%W@k<6g@4=ku6XBOhg_AVh4eq5fK3ca*Sge+XCB3NH9S~0d1)*jTw!MG&0E_
      zux3LkELc$NyrGJS3Jc2KQTd1b3dQM}k>bd~#b)|W&pGGbKKJ%K`RC8S09?iG5CQ_}
      zvfa$wuUeTsX_+PIm^C}YMLG|5Rc76^^LEi{Hq1S>EQ`tsAt*3)62*lH^i!^>1jg5P
      z<etn}(k^FiZtbX|ljFy2^S&wxh=RbWS<^P1If1#@acE)fq*OO-yT(FUaW1|o5L~R4
      zR2Y3YZD0_?0;yR3|MLeSFlwM5r*t%KAcO&dku}p+8_nvLs^67cmV2ODQCgd_Zt8b`
      zGw4*zhCt@TbjQr36JgmsgFx&=`jOKL3{+&JqR%VP7mMe^n8Yg~yv!r?+HK%GF3@K6
      zZBtsT@$3t1ju*7Rw1HP~iQTC=6;&4qRi#s`s745{3k<uuO~<q{OVXjuQB3Pc+&}_J
      zlH|6dNfW+&7nzF}LP!goaRn$@$t;-VyzQv6s)vz6#=x7nDlk~ARd;1w-K`0n_f>k}
      zxp+Q=w|cdfRMD(TD~v4O)>`iz=lc+s|89rx&g7z-RJT%F@V<c@W@&F(Ig6HT(65PD
      z{K#Coo4Fy(U{0s{;6MCinKz#6g*QTB%wy5O5<V0dD%G0Iy6IgLHgSm)?5KvrUX}dI
      zGwNl2<|TbD`54p3L_AEdQvy97Iu=mge!<=J3e*#Mr`D_&)v~FFJ#uVjujn@N=fSz-
      zPb7dbePbAn>HESp$S;Ek^Et$~ZK8r)#}lLB^dB%1$wwGTOg_TcZ`=)FLVt4+Ir3*=
      z;5wD&aEAK{kBPI0@J-`%CgDapSHO*4!a3$($8o{WndPcc1Bu@;(#FMo#$G0mz2K@F
      z9>!M}dh&h#J)*VtWbzQAg-G%Mf=Zs+R15vV{k~_K!>$i2tbP?2vEph+Jbt(GNnG|T
      zf31^6{LIs7XP#=^LquCh>*xT{b>@veM1S8tGe<YlsW#qth|_wFx!b{gkCSTQvd2kj
      zPO8I65qae&uTBq{?IN=pne8C6L|%IiInzQS*~WXC$EA&_4t7RwJ;wC_jt~wouLb8j
      zp!qfysJZZ?kLg;!#Wn%!9E_W6<Sn-AHtqU^cHF@=e9D%8hGpC%;&UPj_!3{B!sjl&
      z!gu%@4<PY9iueHvzi_O6MH!D_;t)Id8{gmwEZ6!~HiD*ht$#{Y-S%-zvpK75%q8OT
      gjQaTH96rLw+}mZef;C2m{0XdMgOOkzdT?(23-4m5cmMzZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OK;Oa5dJ2ylO~v^N$4ZAJbH6nip7aXs!CN*rAP)2Ko7lbk|o~CT|;VD<)?7t
      z2lRqOg~S2Dl^=zeT}OoqDdMs_Gdtg7M*H*E*KYtGV6%!6A(-eqJUdRpQ<12#$W*FB
      zzC`x^tqh+j9Z5aO;(alaSrrapb6&q~Be=|!O9BlzexuIhnBzl2Wk+e1?Gm>A!C^Fy
      zXiw{uJ+PTx_kiH^)3L0hjO!k1SR~x@2mg<+fw1JkMa4ud4^=D>8j;fSd44>U(^q1c
      zu-#Uajzn@Grpn~AqLanygazlyUENcUP#2d25d68=zeXi2#Ns42!xGAVm)BR3?{bl_
      zfn`5B5~m_egr0;ihDUOg^}4)MH_c)>HRk_$W*aZld^(c*%8b{(>hiwn=WoDD{2fYY
      zngwyxH0$BJ%r7<6`Mk!N<lHf@fxG<$Ua)?FMzC>#<|i(e(B`vc8y+&rBZfT25}x1&
      z*MkCxWvp;!1dI^b$VioJw2Cz=*}=`3WXQMaa)ZxkoO4jf6wqBu?G+6(YQj1;X5iP{
      zZHPNtKR_SQ-uez=8bkFFu5(`gL%3)c(C4wAvWLDUUMawro;$dO+t$w=Yvk^4<s`G|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%}e^6#g#R{9p+r27(1!rB-PIBn#A1A<#C4q^5?1k`M?ww#%|6Ta(?)W-0LI
      zI6gVkzRQa^c7|75XQWyO-u<K0b2l_liD+gvd-vS)<2&E^?)~G>-wpvxVAYKdhT*cl
      zDQ(xP(j&R5ZOE2p=n}nTYp1SC*+f>ZsRdfPAux=c=Nq?-nx^EnTD@vVF!UyJ*?eIs
      zp3bJTckZX+iDV(q(D7-S!85B=HC?lAGB`rvB7=}HHq=fqba~-~i@}%CbTzwKTUX73
      zyk1oq0vSV*t3}z=`1i5VHEXAF!_P4AP<|wD+s)_%yHS@FRl3JJ@F2i2RI#l3j3jMs
      zZAG`PMGdnoO^%OGNUIB(yi!qXvIl((u4d07eCYS02X8W54P|&{sVeJbDQ}sYUXGo$
      zgo~XRz*}w%Qp9;gaXK^Fx+$AGUR=Z_YCaoZNHT;n=Y^dx8x!HcI~?2)L#hd`ZQHT`
      zo6w$sRnZ#%1>!^yF@|7SwGxKjuuPeTpqEp`w?!$0P?*nHBvO?xi(FO=bL}|fBQVvf
      zyiL5eG-n6cI;7l|x^2ZcIx)GesCBN+h8tm$ZQI!SW8t=(Ia8xvypLfK5lC)C87{tJ
      znSiTuO<LA9g~Yd{${VWb#W*Gy{FcE5xoBv*6*o<JhoQes2h^tr*BJUV-9A1;O@4;x
      zV^b9o!gW5SDWa-fa8bmEm~ms8;le*KktP>qv%&GiFv|-xxQ_FdY+8wmY|4tInhefR
      zdM&)h3*F>}ZgG_9cGBdP;$D2jbNQONT4{LrycbEN7&`fBO30fHI&WjAF&8SPvBl3_
      zEPN{eiPepd>A>5^L^Gsxt~CJyX|uu4@0nA?;8vPL=E7?`(z9})D@3Ui)P}0+38QN0
      z3~Y@ajUJL6Bj~|qsn?N^Vms8ye=T%IJLE6sjZITgQyRa2d?(_M@=i!8bbHZNO5@{q
      z7Oez$;HHPr(U(l${CC;!`dutJgj`8*=1NXiuH<s(N^VcC<ng<5KSO**P95;l|F9i6
      zP03~;(&&3IivZ@(kDD08EnLDhhHxF-b_D&A$E$Kl0>Q}AJMt2~Qs9k1?*W3(ap3@O
      zpA_h^5zkYxBqdJSiM-7)T*kW;&Ts|q9d{6=H%}=%hxik{n;>1b?e3{qp%qIfjl8b%
      z81f47c36ehoSmm5qhkjc8GV7VY~*kk-7gU;1tt&h!BNB!_0N2dZhAXj;KnX`_@0Ar
      z&K)_X1Yyd#k5nY+B)2_W2@1RL2A#r#$l)G*+%@QI`U+FRJ_flX<+;84`sO!I7Ia1q
      zfB5UyeGFt<)n|kOA@U0nD+9vOGeYgcw|I;@$K5WWkFYP2HIFV7;KwqJVg+MZ#SN5b
      zP;0o2&ydFFWW5gs51?Tk7OlRby~p?hPf)>kWZlC<{D`W}+!76rI5}pHuhO_{Gy4>u
      uAVbx=@HG~wu7hgikwuPpoFmI3?$M~9Ac!ThJ1DbAxR!0ki<GkiD}MtalkMmL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%}b_6#lNPEUrW;78}#pnl?3{!m4RZ6*Z*@2?+ubLW)i&y{<d34eT<@67{`*
      zMc(?9*Cw5*nWUrd{WJPs^rh{&3sG9BEzIuTy?cIq=R4oIzy9&&7{CIGG6ooKRL!<}
      z(5S1=c-`3Jj$xT9J-Bn&)YaT($$F}rC0fgn80IcAPB>P>(27Q*S=WUJ!&ow(E0(qr
      znOr7!_enaDOqGfZ13MW8->OzOOv71c@Ps2}1}SOn=|f-`_G1uUhS98H>bZ7fSGP-i
      zw@%@LSxe*fGPe!!-re-Bx?yAl7$&~s&-j5`jmaB&tI0K8eVC)A4?%{hn&UKARCRxU
      zKem4}X4zGBaejV5{dzN7)M|Qz`|v)4OhxA(q;d*IG496*J|L39SrJ;TbF-=z9osOg
      z@$);8@(?EQp^Pj4L91XVYwX(GKJ?=%CK(3ZlnmkQMGT*D8&}}L#{%6HL%M^mZ{hL(
      z8_?~6Q!`o&kqdo#G!bVARdpw6nJvfW)CaSgCdwU(A%!EN%?k0VJuM4qF|74tQFOu9
      z>->P2J=LA-;A)X#JNkhW7x0wSfu=WwLR&H-4AXsmH@f0IH5OFO`tcd26-1%Rh%sD!
      zM>7G}c|(0<8XD<uOXqvK?Z-S87y^zZG+D3=(@EGiKV%s1QvucK!%bqsFx?TF>gs2T
      z-rBl?Fm8!HEs;e(@3Mj~up(ob;qpH~kuD3|ZV5nftkOgnEurOPjoVyvbem)o&TL1v
      zMUHim<BmX>=_gEKlJMgzBpHUpz$AIQMI$xW3#nAIt$i_C@kmdMvt1b}nrU|s3`@=A
      zPZ=g4Zn0uS&&>%<l-6mYkaypfoo_dt5?Ygi8FZ117(oqnLjOH8DR4kv{MW$ev_SSs
      z(Q4b8o;Jjh66jHLOhBjB(}_gqBeg@EL$s3MgG?7OM{k_o#qV0c`-@WXNcoC1n6C_a
      z^A)e0ugJc9#TW4Ae}eLoj0WJR`?Tx0Ou<&5P%B5UiXhf7j&)qY9ZX^wQ@Djot_R)7
      z;$6BFfnc;VHuDyvmEe29u_J_D;qnnaI!iF(BHo~6DGHo+1Nl2{xQ0*2o#9hl?^Y0_
      zrwA#%g7PChJ0QL8-u)h5>C~4-hpcW0AF>L&<@`?TLE71wnVmbr%<OB-<)X*Wap^6>
      zmEhtLK0om+NiQ%N4M{Q2YutX0QSm7xiH~b1-%BhcMUQ{@^S2k6$elW^NE1@@XMFj1
      zLOOX#$-GElgZ>?mOD?<u?G`bN5(0Qc43>$#3TCm5+qB-mH$=k|6!0w`Q@ggIxnB3E
      zi3GP>lvt&4*DZPn_mH6s!_<fS6x%}`xsC_OQi&;qu!$V)6{vT4x(f;(y0mTm1spNR
      AfdBvi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQfT7~O|VG9g4kBxn>`)K(L2L9A30z+wcA#so=3gRMG*F&RiE>14v?-CyBD
      zSAF8O+O@z{yY!)N{TqGnPpI8zk^%+F>cg4IocV5hfBSrs-~amM1AxoeP|+d~Dwy@i
      zdbt!?)k?;aW*ZeV!kcDqRP{*eezvlro3$(-R44+2M_EtVm9mk~80Bh7mmUHq<LOi;
      zJ2#a`B~rJa%}m9ovl)SwCkX-Xc)nzqhCM0Z3Wetdlz3%HZ-qdcA8vRA+LMN<r|RWJ
      z-O6f<C5G!vR`ObDUb77O+}!kxJ7H9G2n3h4Rc+mYV`^o+R@L%)<Uxu*z33F^E82E7
      z8i}l}tqreT8Ln7`$mqz(<;dgv$xObemo+cCSQ$~L?@gyNKD49TkK;Hca4D3Ou_GnT
      zEJQN4WtfH7!JY7YD}p$y;tV~GqDs<}G!`w*+VG<Xy#i`8D?5@r%5#_Am=7*|F6-+P
      zm}%5^DE8R@4d}GNE*dp~{v&<%>LMl(DCl;)V%BU+V=v6Y3~9F+L<xmut9|4)zcMfN
      zB`|Rqk+Kt(UeeY{?vD5z2S<>MZR_iHOxEX{UeD`QDbt#Yu)xJbeQz}tykji68t~&w
      zT=ZcG5f#G%9s4`##|SP9cuKliu#1i`6DqC<bnmykS%2|Dw|p4IRoMWq4EnVn*KnQg
      z`J!e`*%E#t9G5mRKgKaZW!aU6bOgFW;e+z=QT;dk_y$t~euuPF*_H>86&ylaB0Mjn
      z$Njj4X@S<7ZYP_S%hb-x+kV^ud*IQkRox{2XG8IWnHzA}NjIlJ-8pId5%Z;*Z}dS*
      z^ib9hc8na7OaZ|XT#NM=0;dna-bpSD8s@p;EX2X>!z1KWJQnEr=S)y!x>k-nG>tsx
      z#hk7!>6RZ0c*1_#6*)s@D~4%LS(dhOIBnFV7vE8}hDo%>QeX4r^*Pvm2;rIR>2q2f
      zLb{}N5lbpq=;?h$agNMtR!tV9gIL>*nw&jx>Osrfx<y!_#6oyM<|xV>1l%1;9AJb(
      zmnJKIlu%}4<$#N8^%@&9xVNNi(W<P;Q5f6X(%oGZ70zI%lSU<yNbj5mYEvF4j^cck
      zd@pk`cA!znzfIZq7Jc+TTYli6(cYJ-)UCWeW5}6(V(+XNmbLJZQ4IV9kw7`=`O6J2
      zR4!uWlLm!X;9Q62S6|Mhq;rZpopXEAIggsosor$X+u=$74Bs0XwZPBoMaS_vgGJ#(
      zjMR>!6BFphB+lRldT||nxQb(r2QTu_Hq%Wrz2MHt{`Y9lb)M)vxsAYEoZiM~y9tgv
      z72jgAX$GEg0{I(mIEV9e7r1~gnjwdImm!t6@cqPlqezdlcXyAkvg6CaM5{~EhgKm8
      zN3=4hmpgj@z~DCe2evRc`5vRWZG06~Tx0G{Obi6vTNoSj1UwymKjK1A*+Mj`234B=
      zfVTdi8gOr8GN`z=aB~xFK_%eX!px(WZV_<zzW(%EzvIzMn_Z|;as$kg%Liz~9J-Jp
      zhYtyI9$`FY`*Iv~3mj8Vkib(~W%%?QOKhCvcdk)%6B^6MUEFh^>qz20VYbmeg*4%H
      z(R-Fl!70S)nPxA}Bf^MT<{#n5^dWuuM@0_B{RH7p`nj1gJMa$ksi6<AaO^!oxz2C5
      z@${o>OxZ-wP(T@Wy@U1&$K|UY`L6Ksr6K~#(1+Kb{@6q?wc`_2g38bqmLCO`k8hlc
      zqtuYeyi#MM&b7#l1~s<K+E>Vn$!|)9m9EgzqS|b7QYWTWVpw<hxWoEc;|?ELRGWNc
      n9mFk+cn#kZuZt{PV3ag*O(K9Aqq!K*$B3(rFxD8U1?ztU0hvp#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%}b_6#gzOEN<{eG1!pCmb9q>6;@46tEh=ZNJt16K@v=7GS_tnwuN10S)#u8
      zukfu;d2P~}nn^nP-an&%NZWH4MO&#;W?(O8@A=MmzVqGt`=9TR0L-Ey!^3c^W_HxQ
      zW<!0&8^#WI49isM!JYk<t`>MxFVjMX#4vr?&Q-^18d}L{wi<2*!)Ur#D3v!>bA?>t
      z!OQGwI#Vt&cwXcf0!v!MFb!vg!5fQL7^JkdqYr@LN)SHy8HV$QsTVrUZQU;O?S{?}
      z%3B(5RJd)3|0hBJk_#hagdy@hf5rFQR!pMZZgEXlpNb9w2r)$Kj?-FH)!p6Q<nEoM
      zW!KcXnVDJj`ICG}tLsf3z*Qn5_A401SP(<_nBjITFL2ccH*0Fiu?@49x)_O91`xp~
      zGOkm`Wikmd^TxK#?foEbV4T5ME<Vl_7-IR$^3H@!De&Sm!7j>>?Xv6Jb?W~Dx&v_P
      zMw?;c(wtK_q!_|A-AP+!+p#%Kz^r9SY=;1(SX>NPAw{(xD#B3=%l#x2`rCSg?~$xM
      zySWLj1qs{H_negAreyXsy(Ns<mJuhCeRJ1NJloqWbeam{OH3$8K$VeXxN)j65!ZQB
      z-82o2oVTI#9o-IM2D1z!jwRf<ZW*StYTJCDVXRLF)Mo&9$d`uco}8#qCrZl>`6q^X
      zF`>I8RKL`Uf^V=WV}aq?zZj7n*SXymY*JWaxN5WoaLM7eldf}{YmRP{Yht;r_?9TN
      zA`0CT9CQ7ADJrc7@vXob?qc;|MEY6~8Dtp-#6e2)PMeO}^m)$Zx^3->BbSPw!#|74
      zct~g6JtKyt=88T2iKMHBIJy^(5QD6BM=YG*cc2%|K(~k1VqgY+$z+VEhP%-JtW5s&
      z=yU%Ge8DNSUnyA~Thp_KxM~JZjh+;|$rW@>(Tz#N5|<OLBm^MSmt>=Voc@c?%@O}^
      zO4TbBtCFu+_4$iczg(=!fnqf<;xGOJ<qd7}AV|LxZsG!gEkdC|4`B%*EMp8SxQ=@m
      z#{#05$Do@*KeXetT!u(6ii}Qvz;HG6QE2oK;kUSUh)>T747rTgs91)8vo27un}(bC
      zoYEP-z^#)GlJpdi(pxA$)3Zy`@5UaT%awY$bgF3AZIMH}Vxk>3Mr$8MT9Z@LhnSpt
      zhv`D%=m3Ks5UYmf4)N7-!khHI!`BBG5;3m`E+0#GrPmlwgeCFr{sD%?yRg)K`J=?b
      zQsU^Rzy5fQNTG+cC`F{iuSh?ONXKu8fgcrA@!*8{3SHp9Iz>ykf-*+1NwPkpexF07
      zee-yM`}hudT37KBTQox*+h{<8MJpluLz*!4a?-I_<?zT=q=m<n=^^9-o=^=h<_Nif
      ZBK5z8Fx7oZF`WjxLG^_`WkT{`^KUN*)G+`6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTT|Os5dIF9Eh7|A4bH74ac{&1g196QFpv<(CTbixV8@A*DU1-REh@{55SP4m
      z`YZC(Odoh9=}ed@o%XE{{W1LsZTH9y(8R-ZrVl!oowK{&e&1^U`0M9i0gPcuL<fUf
      zb+^^Mx})wGj=gU9cEeR^GyE5uma1D-vg}xz>swXJE0Ilvz%YE4(}Lfq+h)<OZ#owD
      zVCc;h^kQjwLDMyTaW%J)$(D)?9nUp}=&b43uI<k=gp#Q;gOF*gTb*F&k`YFPp(k&<
      zmcCtIqx{C2L*ZiihG{ru!?XFlWsJ-QVMHhlmo|(YV=t)6HR{&ZreRv@l1|4cVho9z
      z?{Chi>hA9D$nL~Q!>g*}qoZT$(}($@S+nX!6n&J}{de&adT?GwH!d(-OXhhB)iK<v
      zTJ$~Jt)@S;q{^MRgpWmBCXcfi<1FRvHP7%~$oK^P41Ib*Uwu?4Y9+0lUDfnbb}_rm
      zkj$SI=7jRJgb=QBunC4-6Kq>P(*HGJAdO$Mw;0CG^l8&FX@+>!@-q#0%l8bD$*tx{
      z5uaiS$rSGbiD);!EgQ}@$vfAMTrQGlImR9le%zkq&}vzV?OS_(n!}W`d#1I?8+l7a
      zieaFw@4Z%!A3x@l4apeBz$rZTx`YvoiclGp_a&F<CmLsnIF?)WYe55RQQTm-V!OfL
      zlz7)d3A_0NCCI#ONl0Rni!;S=KB={99G-Pr#tewNh*>kd1)r0pr7{fRAPD~r-UmdF
      zMYG8S@0GT7f5;gDrwSMt3BhdoO!_EKm+4uCZ;=C6MgKploI+Yy+ptVOE#f|Pc~C&z
      z@N4Q_yV@Eu5*G0lXXgR6O`D{tvWSNaS5Jy>4u@RBqe#bc5*3c^Tb|*NoW;hrXIeR%
      zPmhajI&_2w!zfLi5RFE9!$%LD!iYkokD-%p-$9@im{dA{kt!jjt56XXxljp<g-S$;
      z6e?o0P>CvZQz8l-6;Y9BjVhgmpCG*^&ko46jtA=$Ww?bdOhX}^`;ewtF^hi8;d9I*
      zh1*bZhu%)%CMIw$@TP@`d50%U_!wDw2anKGiG397Jw*HsE*|2_NwV&sq%5V(Ax6~l
      zKyuR!pW-vRF-rJFtHcr7c}U?6qyyTUfFptJ!6{$i*!N2e(5q|Qhh8NEqW+{ar*CC&
      zX!sC=LvL|?zW*h<kC3c{ViSkB`CDjG*vHIJTzHFHli_$+x&8yX;=)T@*hhk{qpxs|
      zw&@=c*+&m|j0;WA?*$eY`d|J1`$>&6L<+D(IhTphA`R*iF5@v0ctVJt5|Phv1J8-d
      zuaU(H?qii+Jf@ow)HL5j+p39hlMr)3%_}6uZK{t)y@LhfvY+<5bP_1?FfzCoh>#_A
      zn@#eJ-tZ=pkFZ!7I)rxcgdGI2qQp(U#b{HNZ^%-EgpB}2qUm>xLWbT#A-7O46ew~B
      G9{mGZ$JGu1
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~ixX7=8}<*krT98VI&UY+AKV2(Wy#p(PZdX#%lnA|%F!j@D&alcmWfvuuFg
      zspFOX1$KHt#|v(;&XgH(^xhw(zGssHQ!<P*PG--?oAbOM&-0%1*WbVW0bmlV0(uyx
      zDrQUBt=E)owPtLnw$U&ZnpFE~Q&(~gGpAR`xUFYQTd(L=k<0?z45R1a7VSpe&<aMq
      zS<^X!p+A|=6^g5inOr8f^f<kkOce_ZJ&!UBzB#RCn1(&i;EF^`4DMuOL-&IrAi)DK
      zLtoY~^<1mIPVv?C8o3K*8=6`xsg}X_9iw;7aU(!xxVWiqtGiBNrdrpxnyRKND>+*F
      z5M&5fZM!+EC_6hl<2%#i4XdI|O-xKG4<BR;T2-&BJ`7M4^Gy9B`Y<S=7w<7#k7Rii
      zrKXw{rC?izSxKC=L`!~L#E^hXggB2hPE^)dw^Zw?g!eJbAY^jI)KY4dA(A~0c|vqT
      zgbSB>eqn}mJHM_hB>t;IM-aPeY%$z87t_605)7e=ZYLY&mTjq|k6B5R6gIhYN1|MQ
      zk@(i0lz8_s-04OsSI5$8>MqfI+?o!+X;<=X>$`S>XDX(4HNDB3cuPQ(;aXShy-t50
      zALgvZBz%l(BF3Ny7-x{*)>gs<CK<dn-K^MEr&%*TOfy_HOy}~1sa?j*&V30R?F$p8
      zzgoJ82ySv&;tYe4Ot&uKk#9-3jaiDJRaI-z<{V|BNd}MOgtz_MNfEz-)+T^=N!N1E
      zQboyA6%34Dzc(4vc8xxRK8-#K8_+CWwROU`=+5Q-k2a?g&#!Olnw=0p!3Ugr>Z)B;
      z?i!WO8zW*F_c>WvYMw4Zqa^`3hRY{hwBLqw!y-?|q7pMT!`3aeMtxCev@A_e8~pJY
      z>fWm3+#hL7<k0)baDhKQwDQ0Qfj$O5?Y@VbMj$Txe;3OxIgl^AWhr0w2>G&C_U6li
      zFJJb_w3EFuEoDI#Y4pkd{I3vyA!H9E8mF9bh9cZTfK-<;ivc9)shGns?%+erBZ^O;
      zV1drg;3lT=j)SIwxOtOLit=M*=^r^lUpe@0u>TODSGaJ94^D#hIwhqjWEw#%IgX?@
      z3|DZK;EV!()G2YCX71Ac3gQ9H?S#FK?fxmO`xr|XhfZDR7&;Z<M6ndD1+qLFiH#m&
      zB=#Dk^TW^4dxS{Y6`VT6jXzy+w=3@1$3`sVd5xL4H{_Kk_Tb$|o>r4DF+|htpD_?}
      z|AaXX40+l}vd8ui2zj3K(^qIawufH6^}FNlee|6^{DX&uJi{;ld2vF>8U`t~6=Hvt
      z*e}qdUc@DQPRy5xh=+)wOsuaF>yMDcm(-A7A&1BKjOHTN@ijF1ZJ>c~V4;E*417n}
      zAMwN?Xt`Z_hae(>l$~=3d`8;N6IlU#OX@C=FvBphh`U5r7@HJrffS9AuX{*Qe)No!
      zVC~*pqtm=Mr6VktV~6<k;0t!(c=ZwG4?04%#cq<tf(YBmC)~yz=OZEC$w%ts!>Bec
      G^~%5Myyu|+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~ixX7=8}<*krT98VI&UY+AKV2(Wy#p(PZdX#%lnQb>#q9j(i<CQFk|X4wF}
      zQ^za&3+#A7#|v(;&XgH(^xhw(zGssHQ!<P*PG-+n&hvge&wJj#{{HO`0Fzi1(8DlQ
      zF<Z)Ry{2rdHDg1yjfSbvq}tD#x{_;{4;x#CZEWiq)7C4xRitA9ZidnGaEo@MZfFIg
      z-mK{y!O)+~=L*Hu#Y`@fTY8dSOs0wjhMvb62H%`kGfcytXK+QLB?fo0v7!6H5Rl-3
      zm!U6fn0l^NUnl?SdX3BlvkgtHl~l{%`_7?v&M_lEX1KViZmYXaVy0Txx0<S^D=Rr#
      z`VeFYS8cmFt0+4=JL5ak;|;5#OifHoDvusy3tCmLt3C{n7xPU1BKj~Wp%?ElT#sbA
      z7p10}6{TQXhFM9RJ&Bh5xQHPEmk4nlX`HC6v2Ll>GYRiwm_f+oim9d4DnlfD9`c0f
      zga{Wd^Z3FH>2`cwSxEd>gN`6})!1UVaW1BNtt1#i72QrY%q`neNguP4CMj$(=Z-|V
      z{37wKJuUI-W4P0eQm&4r*VJ92`M5M4fK#qy+tzpO1dmiq?P_|H7x9*WD8sd`*n6G&
      zKEBLZi%Iwx*F=m#5irgmzpbr=2~0A0Yr0vnt4^_Ie3)jqYM9RB2~)X@H9PMmY_uOt
      znEq<%A|klSWr;HkMl#*1gnPav;WlQ;hgMasMVoV!i6$95juBq=ZwE#E3R;^0UL{@A
      zJxdh@PgyW9{`}rVOxrd34Ei+s$ZbHgbk)`g-=a5{`#;*83Ov8QscUvZ068CU@~NwK
      zRk>?aIz2|jGVXJ-vQ#`>oJLCmatxPGxM=r=bi*P`$D$H5HN(~|wMKPOXtXR%PaC{>
      z40SKnac++^CUU4hGF;%zhgKf=AkfF)r`>mO(+I?6|L<biB?t0lw=Ct$9wA@$%HDig
      z@a4-snRc>Qrll;%B8@)TpZ^u&FNExYMB|h*&X9*&2$1SBW-)*SwTd|m;|@N=Jfipn
      z3Kr<@3~pi??>J~0h?_U@q$oZ{C;cNw=qm@`4fY=*^a>Xa@xh6+UMHm#xlAL7CC8A|
      zhT#gX5}c94k2)!i)67k}UqL*exgD_AIlF%f>psTP!=YQ(IfiaUI8iJ`Yk^LlkHkg~
      zF%o-?(fQ#Q=siND><UgD;>MruxZ4%?>|-Mq^1Q}O+#B-B6MOLPBTuWzml&ey_Rkmy
      zxqrkQ2ZlUtB%R0h5D0l*@Y`2tJGO^jzV*A}?tS!~zWlw1g*?MA|M}^JkTncaXe-42
      zDzRUnre4G)d`8Tdh=@msp-il=5$lhU#1~YMUm}Mmct~>*>-Y*9{Wj3R*RW7Q3kJR=
      z><@VA5VYJ*y+aU@K+4WJ1U@Hi=ZUNUz9DrNNSI-mSj1hTD~wI@wm^!;$ksiiC_ZZA
      zBv`xl*622`P3Z{B<=7!UJ@}j*I97c``Gby7ZLynlVnKxM#1n4gj^mM#@5Cc@;$f5<
      HmwM%2{1ND3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%ry}6#g!B>nIb(a40A`{DB+b3aA4aqH{2_WUkR6aq+=iO0!kFZYf2k&;B3i
      zldt|rBvGU9zWEQS=iVV0T!>5BdwX`ibHDF9r~Ur((^mj9$gAjLn6A28daLf}&$wf6
      zaNlmYIxXCP-n8^m!>d#Hg|$)kJ=?9WQc#7$Fm)6v>o@AQS+?s<#}WvJ!JJVluinoV
      zN`=y$$N6k-Wwp%E^{BuQS~MNowf!ZA?nH8pLCG~XtR67*h7mxJp}%OmR%xrgZh5PG
      z-Jx>PV#DOl8ux7RycY~E$}%b<48u?OGv1Q2Twb>}o7}YYdnMY25M_whe80J%>)YGg
      zsqHJNhF8^Rr>AH1hj)u*vu4$K2*(*B?jiLW`Y{wnA5Jh_N)*Kzy2IV7-Zm%mZzQ?a
      zgJGOfF+zx=EE6^r?RAfP&%-#4QHCJ-MP@N1ibnwtT+V3d##uox&X8}@>u5pde+$ZP
      z_%(ZzVfIK&r!mPe#HyB`Yq*=f$Eh`LHBVjeshE;Tiq30fwfS^Sj2**`PJW8Uc$ULk
      z<njJYN`RbGs_k1XKO=Z*D=pJ%is{`{kz^R}h+W<r?EPfn*<=_OF|Oe<bQLM;`{Blh
      zF^w7Oh-0}`zb5CjAkwddaTV9-53|O-tS^KWlDQD(7|z<Re4pY6Gjy4JAQR#g-?B6$
      za9#9jfng|7=rlPD0hubs{V*dkS2f$}#ej6w`mayKoFp(XGN0LWnRMmIyK-a8Gp)QW
      z-mT$I%}fab<N{ToPY1(E@n+IaK?o{c3_bM3=~?{7BEc_OrCTv7O2DWDf<`5%8WlBU
      zR6>!U@d4U9O6o$G?&A`erebr@Fi(bDM-&SfLIxvP#3<5;V;09Gf^L-Y=eQLj!6-5~
      z@frP<=s<LE7qRy^xr;Lg2lPqCSvu@C70$^*;Wi9oI7e`X^SH35AVsSvsl12wmew}O
      zpp4!53#;s7X>us*lE6?_Ldy9<d*ROV#N^a2CMG{(YN<P|yn#L$Q$Aug9f$=Y+71S2
      zIkp3hmY!GW|BOT>rbN@bnE&=tVKHU&^{*cXO3smR;4W1zp%(@QaF4z%_mM)G3^PdE
      w1IciyefAzhVnJ3eN(IZffhA(wOD5mMEpnz0*N~;1LY2nIp`5gISt?)o4T&{$%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#k}cyJf9{MNz~{y<rQr3xYQan5Godr0xQ38do34vP{ZqyKS}$)W70y
      z@WIOi@e+OaM;Xsd%O#-_ADG!0&i9@3edkPn|M~V4zzm+L2r(pU-j3dB)b(Av?rzzE
      z+w^qW?BHFC>qe74=%zvk6$(T8wCG&WY`9L@ZM5oKAQ(pSrcth}=ZZ$rc)qcc%NHtT
      zhS2LGLv+EZyPg{?F$^SARR$&B+~R{^I1@t{5r(0X>v3bJvB~|4y;&!^c&X{w^{VZ=
      z;@rE8EJzv^!wh3@>|MJf<#=|3w_CQu^)-V&qlhykwu7KGuj_kzdzro2Ow+IF52mMQ
      z^p`J6WoMf=>?kf!WrkVFRf?veVF;r!oWmuCd&!dE*6X%c)60SHdbRAyn^biWV;EO)
      zg%GD%CG07=o4)P8i{UD+k=mSLZIp{IR!fDAinUsx&Xi7LII=mbVE{Kooe74OZk>HS
      z$o?;(Y)7!|wizZ*#T=iHEW^bb5Asc~9r!l&#H+24{Q;3E$&_fhMjktFt76U=7W)}0
      zI^y%X-64|?hfo6K7!r5DJ3&^|rxiL5Z;9b-t4J|S^u;dsCiyT}cr_KnT}+(8edsDO
      z|AL-K8^bhaD6!i<kWGsFs7SqvVwPdl_2iRE9E?+fjyqgK5)VbQ9{mGN+QKqY%=?L%
      zV^E#03t~X}YCcgobtdk%d*&_k7WcNe7sz+_iu9D5JHEqLT=BxrA4n4eni1JaG)2-6
      z2E%3XF6k?bC{+4m7^IU8g;wC^aO8((4Jf9igiR|PF|CMdT58m^qQepM3$#xZ6he&F
      z2?=~cWKW@Cp3KN1js=Wj5m&H;Yj}bL=5SUbXrYLMbOlP!=w@W{JBF<I`S{2_E`G-4
      zeOy0Ea86d7r)0}ST#!VuE(|wui{K2mai^ysL%X0<K12IRd$-7lyel5VDu-AaABwss
      zFcg)PayaD_K8;UKrS~zJp8AS(2=8(BJCauX!9M1G9TgatrkUixDu%H}s@G+rM3<tM
      uh{*7myb#5WlUMVUl#y2pv<mCfw2S|Rln-K+-ge8b9xFR^SoWffTKWqaiEK*%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TWb?R7(HKZo2J`~)kdrF()J~n;-W7qQNdOUg`lER#J5R0BvZD#x}7ccr}RJc
      zMeqVXh`#!x#523G2EpLV&UZQAnRC9KA3wi*1#k=N9twiyFiL~tgD^N!q1jW`#8JRQ
      z*>`Vr@Jv~&lW1EFwDnLDtWHB`FhQA2sTQpC_SKOJQftB>(L;Uwo31OU+&7W24+W2#
      z|3vks-SsGnVv3~NZfjRi+KTsd4MoiQ@ZbwJnmhkLKLf$Mk1{HPg`SD@lk}jklb5O=
      z(#KLS9;k3vCC26BV#$uop`bnWlF9YabWNR!=H91HPS_JvN9u6o3<`?P)=mwVaM{C(
      zU@=>8sG?!;w7;(h*2gmH+^&9`s*v)Q$J?ENbX%_-!8IRO(BRLC?MNri<lkIQ@QXN2
      z2724LHJqDtbJL;uhNy^diA}dWMn%RRs{GC{d(PbT{kFI98MSujBj(;SFJOV+`K)(`
      zb9XU|dst-cMvf=n5;IO_ypl!dae<RGh5DHPHc!{9wm)F*6E2=I&bcdD{Xxd*=a@04
      zINz)|eXocv@N9IxLrzfde1niFXS;fWa_O}Ahcnl^Nq<}9*vz==`TUvQ2CmbCQ?;6D
      GS^EW9Qpg+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUU31e$6g?ZumaT|Hbz;8Sfcph@oLc#S1mX}d#ttsVhS(Sk(_|E(+Dc{FqbMJ|
      zcKR!LD$|F&rgVnPG#z;BLw`(vLfgBNNho+So#}&CyE}W%z4zR+`^R6uz6LObdm;uH
      z)TX_u?zAm+OS8<Unrn7!m42H0tZS(EIvb{IZW%?}HJXM~qdgG<!^Cl*tlMdudev-q
      zErTN%Msk&MwYHosmW$=3)j~FxuT>cao)j6v3%X_6rn|@xNF?hFLay`Fh=5^GMi3!}
      z;gV?^<<0gQ#n;v>qKlR~x@Ofi$K>nYW@y2q5uq@gS=Y9-9j_`|Ya1I~O*hp0WtxT&
      zWr(+2w>z(@+uPge?U{7PX{ytclT+%WyQQk$GTK@gqZGIM@8Ts4<D`rsoMO0`DDe=g
      zrP)oj>N=*~%zU_$tVeJLAB#9kh~pIFDwWJNM{}OZ_yl7Nqvc9@wVYqd){6D~YO!3)
      zFXfjR5~bs4jwH`W2;e+VHqKD+lkKZV=D!kpt#MoC2E){`m_C-tFvOaMo9oycuA@<#
      z>}G*F;u4pTNOBiQB)k4yojZ`>T0e1llN`g+c1Z9;dwKxRvc&BgJ8p)jDdl%`qsxuF
      zAtK3ep)dAU&*O)OxnwCBU*dv<ub_%ZGbrzOS;i!$7($j|H{F)!*<u(o4ChSSyFl@`
      zu8Eueor%--rXeAL%e)`63?~!CeqP~GugJKHdE(bwnv-?8KE-5?A?T5C=f9s2X)Ee}
      z@!TGLOZ`wLN}MWSV5B`W>C@?>ID@)lXs$tkO}c00|I>(fGOetw8@ihju|&r93TSI?
      zOTB3}d+&;b0*YLnugNKWf+p)CN(|?Ziud1xLdPMd!w!-ZmgyRfW|0Z1olQqK3MPLr
      zPWLfonv+pCNeX%m=?s5uXcj~mB7F=IT73_JMqpNn{3bO5%3!4-C~~C{6f2F85~?)B
      zaHSDeXr+V{nku3q(HK@Dm0uwJOvnMqG){Zt97VW-LF%!Bd5j`M&%*-7a1Ebh5lLK!
      ziW_ux4wo^56CRod66S3_dCHH`&dB%yh8xk3q9gl=y~OE#oI46O<du}CkOf4s<Ppg}
      z44>jNf-?&EMX$s({W+!Z64D<1{e(l_-ko=_!XcKf2%WmfF?1^73H2w<xqK_*sfm4z
      zr(R)VaqKyU4v=UBqSO1h^d>MX>|#C@6JB9%HW&*ksUI;I6Q1MLF5<MDe1Q}6yZRGC
      zyBOxcnBXIS5LiqYd-3=0M>WoqD8PM+xlDpq>20pzEFK_^hm_GH67n%F;R#9k4f0sQ
      zZLHFX2ei_>nil<Rdo@ws)QknM<`rtkBGt!PuTwh$)Sw&4(kBq}1a2bdHQ^TV`X+fy
      zXSj*v0~8vmecaxA$o4$0FllqAr>NhRZ)v9m3F}@KaUXY>g^atsEaYAmbPI`j0F{3L
      DCE(Fg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XaI6#g#kvIH?nlaPuUi>*J%k7hMiTOmeMLM)a53Py>xaoMb}7Iv9s^TR%O
      zeD93Y2Vc}Dr!#h@+Nsgn(U;D2rVsT$YJ2VlF(#Pl19$J<J?A^$Ip;f<zyA5{1%RWd
      zDDW^GEL+R!TCJ+CXjOAbb4}Y)>7ltd>xOzhqt%Q8?G#81W80ZdyLQdg^JcAH6&?)z
      ziEJicxG<f{q%vn0XQva%LY~2MCB@*M)T^dtx>F3^=<qy)l(3hKE->r}LWYl_Cv93r
      zX1P`}oPt)W8Vr4DTi2@dnq%_!)}e1wz$oZt2;b0Fv^9~7MYJ1rO>br3M;}9^;=1*i
      zs;;iCj;|gYx1F*&apcHR_3~UguUCwk=EneoEK&}j2ZKR$<9&w1(KH8EtD03-^R8oB
      z<@nZ<;rT9vu}8sf^4P9UyqamV<Y>;#AogO2Qk~8e7xSsPTspZ}DCUw3(e!o*Z)zM5
      zz>5z!&j`b8lV`^Q#Q!g#=!IJ`8<fSiK5b>h8A4^lP1sh$bu{XRRi357yM!P`hk3ID
      zR9*d>c`h%8Q=O{Gd*K*WZH+42)}C+>dL(SuSaai?Tp+oo8+ESIhJs;+Lmho*S^{nx
      z^FoaVaS(?B_!z2!afZFGi%i4~t)^bIOr2DC!O)frCx|0B%FyfDT$wrBwA^XO(QYyf
      zcF2J8^y3)AfN6;_iewUeaw7DyYy=R+ao(g8RH{zS^8tK@n1YiGyEbtmapp9q!TH27
      z$pbVvaNgA%H&M|XO?M54R2xk#3@`9NQ#{aV&N9_Wq&(7e5TA3bo+efshP%%Mk;E)R
      z7ayyHw%nk>8{5daP;u;4K7jGz4ft<P1NZ{x6j0lHH&0CvUm{J=jpY(moOB{srZ(cV
      z#%l*M$SKIatG!#K5yW|1AUMZp*wqz-mq?6%&M~f=YXq|~g;tObas4Pz3tsoIeThWs
      z0!9JpuU}+k+G;A>78liDG@9R0o0F#TQ1qsL`CNBY>y~uL$)lSLjLPWI>$Kr7)QV6O
      z|LySH+L(AJ`j%NBdtWmnB5XEV(=}t%4Qt7;TyZ5Y(4^(<Wk)w=O@8@yx95GFXGp_A
      zX7n#Y<>L1>?PU0&(2p8SZyF?8f&IO{-vdRjlr2hfwkZ3uMW2!_D*kNI-|Nf%g1{p(
      z@*qg-A>nwEz+woH+Pg7{KAgfJrm!2QF@%$d;5c>)4_e6Lb+{yjXLQm(@*F+IzW4h2
      z*AaS*UF+EQCP24fJVU{f1UxH%f=xH<$A{$3@DUEQG8m^Phm;;8@H0J|Bz@xS+y-B%
      z?Ms&nSsms+WEJJ<u%BqptMh7PbZi|Xo~hBN7>h|^>BSxFe2!?bZ(<#vybMd;@!r^7
      zbn}h(DL%b}ZvNHFKc9Ljosb_O6_!FWS>3~dA<sSR49U_p!nubYZW)rBrXhLi0rm(}
      z!Z~y2?XTa-EF_cD{eOQYtC-Yg5R=1n{sf6jVfp2d=Pn|n-k~Qr8<WPu(lg9?@Mnu}
      zp7VV~3HtFpZsTIBFeMTKkfUVJ)0YDE<{}0#kA1j|2^6W13rOH9=I}MGi>TllER^sq
      zbljqEw{aam(CK}c_z^eo5LG-Pi)XO$2kQ76jwt$7p^{gvqElgUi6Zbuy`m@!#Kuol
      zuTTsxakz!Ah>?Ud#EQq2DaIg0zeZ>Gv4dn<qO)fR5sS;BZA&l+jZ1ipo*dUBJ>;v<
      SXtVt*8`|$_xBt4ZD*p#_Zco1e
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-EUK682`QNX-|9BjnYwM%4CSJmO?uQ7Ffq{log7l6<Ws1*El;n>kjr~IXhz`
      zF~$qM@xmLf^uj>I5EBz8B+Q8M>r(xj)ZcqrHiTs{u}RN)-lxy!@A*A%fB)-;p8y<!
      zsiH$*Z?&<QT&~xWxAmGeqdQi!k>pEv?#!FX(p=Ma%9K<n0tYrT9dnv>%P3j(`I;#`
      z1bQ;XLaBUlELX@C&P-*;GUMfvK*!abK;Zn?<kZAi{?fQWIDbpOttV@Gqna!^w$-Sn
      z1-dfL#)6|aoC&?QX!_A9;5|HaG<8(^<_axeKf2rMV*<YXc;QU>tbkyA|A<ku8kRFE
      z;EBd21e8p3#tc9p5`-5%4X>bA#SVeci^+p{6|XT|&1_ViIoCfY9s7dVf{?(LywxxZ
      zi}h*KF6+}Z_8HDM4ZSv@+m<}HmA(--zlt{mdS#Af7vzRsHy7r0!%SW%Q1s(Xf&Mwi
      znIBFjmzI_iONSFpyP6yt96XeqJfANab7o!lV;}omkh9RR8_^*85fd1QzKq<<n%G1D
      zaU4`}fF7F-P!26`P20MCCx`@+Y&};f3q<pqd94pTt-*ssvbG_CY^$~nn@<1NfbQU&
      zIctHHZ|?Jqresc}YC0}?Y@HKmRI>!zVFV=_lg!hIsPP_IWz7hj*a$(1zirm^W%6-t
      z5nKm%IT+h9mz}gMP8(k~%z3#o3o4j<--f=Y+uO8eEP*-^#8Djc<0SXQYPh@C?@qX%
      z@}j9>7-JI4Qv%zgxsApuIea>Zab(F>V@|in9NA?qmeFt)=TxxUo^^I-XrUX9X$SER
      z^5oNuRki5hjb?H&ntI*50;<t!P!4{>c3y^pOyRb0^DIiu*;zM8eO|Y@9O4Q$)@Zt?
      za+7C+-weNmztgZy-7y((k(P!3GmPf|Do)=r4JWPQ8kcpwfA=cWa1}QstWzY)2KizW
      zDs+Ke>u#-0&o=G4?yL=v4c06|sn^JXQghKZ%&aA^g6_2oGa*A@kQaxCm#u;w^4g)a
      z11kK~1}Jwx<2m@;xr=AsGW^X;?N)?o*~8PPj37Uwp}>z?#S`i*R+Lb%Sn;aGiZA3V
      zR#bnn;t%l@@`Wgd)R4xfKNKiF#<sBb1lu2D=XZ?If!Fy=q04>xNWxAWW5(myM#}Xf
      zjXsQE4^AM4Q6zB^L$rPir>PmjE;j-ngz#By<E&Ls)3g66c2~lC!h2US@Cf@?F}R+v
      z+lApQo6XVjoEs?Ea>HR9p}Sy`6rZx)1m7~G@(9~j_-+;Lb9II1e3dm{?h>tzOCMSd
      z%P8U(${IC)?vEc>#YmhWjP`ww?xz^8c*3Krc>8BhO7Wz;o|G@F4Xbg_6J%2Uh(8p+
      zhrmaQc!;e$9J~iD+%>FH(HBu>9%1JLY>_b{N-IcPdk<4e%J&eJctm*?Xz)JL3~~HR
      z9EtcoL#$Vgc;#;aDz)!%CK7O8F9iI^%hdl$!Q2t0@BZHp*AczVK>=lw>JmpdLE2pA
      zKi4D&Q{nioV1QIl;2KfA&Y|AGDcnRBI`KD9!VIQh!on<SsG><}3AgYuPoJQHyVN|u
      zJXT=iF&6Lyi};Opf6z)&V77&88+{^-^Dc>{R6voF=)|vhm$dS*%5QOjlETWq!9_}5
      z*7r4QkhKrsE7tGlQY7#NySPmGE`25`$$#AnJ85y^3S-Gt3O>cvN_-X9S1yYcml1wi
      l-fVNE#k2RR`G7Tk=vLd`@>{Dmi0O8<!FIKRm`Ik*`~$Io4=?}#
      
      literal 0
      HcmV?d00001
      
      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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
      T0)Ir?Q8oWHspg-Qoj?Bve8IT_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4ZBNrs6n-x2+EFLNO%PCY_%b$Q)}ektHc6JbktJnCyDT<-ST3b0HC?-uj={fD
      z{6M0{AK;HNo^}&VH0XzW&$%b(dG0ySIp2SL{sv$J>k?)d3br>=P6n=W%w6YzhmP+l
      zWO#Twv=luI9MA5OD?wm*a#e0U^aqZqJA<KXMF@smL+j|>H}!U>-P!54>WyYsXP9}{
      zW=Pdc*YTWin;}sw^%#VPe_+jm;aVC=hzuFk@vP2hux|xjzV8xUR`pHp_ITh#?`cr1
      z#WWJ;8J6GkV}24h<MDxYG~}kGyzY>jLY5(a7>2_wMH!FB<?*w!AK1#%N@YWNyQ}Kv
      zp*7$s+++}s;+|z>u$aaiZZWJE)reVfxo1x$ss0%$^=7e*+Y(j?ag|V!II6QB@ZdC!
      zJ6NS&>m8%7w|Do{X1{CfH5rQPRScIRS7jt{FRC-o(3;fwR|Ts7OBfF$Jamr!S;WO|
      zR2dd*D{S~4X~$_Ep4}qpL!uChrD)u;?vDb~YB|vyGnZRcj&wzZ#-5;+WLS!3PhJ8k
      zNOTxx>BS+?4Xn+JUu7d9Xoir~jHIX;qNEv8N;6XPqV@^$M@pJOn(jgj+$6FWkg-Mj
      zRFOpui+G6@Y-1Ih$m2P##|XM8<JWghDuPiY_xKAkM)pQFcaDWKES=--<p*<d#SQxG
      t6%jXMqVxoYHQXmS!vj2=c2Fi8Q3_{}KaiaiDaNt(Z&=|1`zX#T`~;JI-1Yzf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*-)qxQ6vw}}X_u|0uB)4!o4TKByUhh3#E1C<sZ<Kx{IOcmC-2(Jnvo{6Nr(O+
      z3W}m{zVt;92MVIE{!!xhrnRkzFhcG*_ne#W`J9vF=dUl{09?YliI_ls*K6C)ny!5y
      zU8gQX$M<X+89v`vcExF`3Y}%`n1~Cc_vC@JUFq%GcXswvEi^GAFgb`8{N}!F$sJb-
      zm`%rPhbj;dCGG-M^S!#>6$M7FI-V0=7cg@9szAKp*Hsb*#w{F!B`{ugJhjzs?x<F!
      ztClJIHR)Dm%hCH@FdjA>Dz27~+{T8$XhQ}KT`;O%8iPRAf{9TRr&xK=OwsjasME6+
      z#*j>68fP@$Spw&Z`Kk`gTbRTY8&Xf((k07Ot~^la4rwF*SRmnt4b>9J{F|m+$O#LK
      z)uQpKivJ%S&M~>|w_7z;bo7W*e_qkLt|?%ZJWsU>t_%Vdm{=27KFVYWpoK8cUJc#}
      z#Q2SHB3z+c=NjkDSHo<Io=q!g6Dx-}{*g`$X|5wt@CqjA>!Un?3{KGUE5Q_3{qRkS
      z>0EZ@6Hcb*8ecK}i0;fGPJhPSlMYkEayN$LvVFM)EcWCAo;LVQe)R{$D=e*khuB=B
      zw3dI53A!^{{>5t~;vIumzd$Bx>lRxrlJ_<)pcECG?+W&cQ5s8FW;qM9ILCfs^w0Bj
      zx1YB?fI=7G+Ft<gkkTBQr`{PxF*+JbM_#^x8T){^hU=p(M$_LS+Fh2thb-=60o%BU
      j3a9^oLwq=dTIiz|`ly$Cs4?Us)jU>clZ56UL!Hsz#$CqH
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*4Mg6#j1GAE}o$X-djA2xNnGNmJssgLG@UvMf!yNNK{FD9oGC<hoX3<~Wh#
      zu9<j6LV{QJ!b{5&uWXZ6i6MCBj{?qhN(x<6VadMN=brPObH4N0fBgB&Zvd9CDPw}+
      zYRlPE2OV2|qTAN4?pa+&rA7Ci_Dr?WeQY`n+Q|?Y7S3|bd)<y@)U8g>HhBcYOrch-
      zH@5TTYPq`ksFW`h8+C?>hh>J~nqgax<*hRWlBp(xQ0VTOlVCU(f(VHrT(KOpy4Tq;
      z-G;tn6I`^?HFUeFyB2>xHcD$gjEo4w#V_?I`oQnS(K}|pryHhvuS(k>q6~?)=k-=q
      zb$@?9vwuC)bzAE4;^LBef2&eA+Ga-&;w=Wz<1H%)V>W~-yv=YeS>eE{tvfBX?zxuJ
      z%DrhxH79Wq@5s1B5ohtlxv5w?uI@e!;a$WTrmMB>t$d~Ypt$jf_#(0xl9jVCPFT(<
      z2;hBQX@a3NtaK~|x&I63Ps3|led^=Pn2|Pe46&B!6}nE}b9I`B(<%}59w7+H6d$)j
      z{2Gs&Twn~h#_`Fg;hMHSAdW}s^8<WE61Ha!yc{o1DGm&?$93A5kz$w|8@q8V;gK^Z
      zDjmXA%qjQ?s*DUn<n&-eSi};8WSdUQYy09X2XURWY&rh-k?`e_p#7eyAc;>n^;w45
      zWO<w>c&ZyA+{7w@8g1Rpdz_SVsz6HfLAb6@S3!iz#;{|qgt7g-$qiLYWiv1$T(I>%
      zWnz?uS#%pjTfMvI8fMAj-_q1*cp09Yx~6FQDKK2%pC9c61R>MSFiCGZz4PmGMEX_H
      z0zyp_#F{2bHBFLhnjEZY!H86Q3FSFCO&~<iIX^H<U@K5?gJ`;mC{{6x94=uEab%Ie
      zGS2%E^dOIa(iN!)MwXfR*9dFT>FCT6VlQyv2=ARFnDQ&mQ?fe*T=0QH!!TUN6$)qg
      z03RNAkfD`B3NN7iOzW^n$+vC(D^?iAl2XX)8jm5bByWeU&|W6Xv-$MG5$4mcu&^Hg
      z0aLG$)B@4vBYgaOI`9fBk;DPQ>A0}#?+^du5XcIFtoReQ(lL>avr<foC<mCP<@^B@
      zS|$$>=7=$I2uY^IA!cI&UrwE5g|9^x6XQSr_40(8JBUz`Tf}`8=TM`c*=NN0JsR^i
      zv0ukJ8rVP+6?{&ky^jtwe1!-21`qKaoqdlld`j*Pn?0t4+NS6=pR#ATMJN-5{w+Sm
      fZ5qWoVdZHQ0zK<Aj@vZD3Y~3`jniE8NiY2kAQydK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%}*0S6#u<;x20vJv{1ByAKbRf$Ho(C4T&isY0~IH<iKs(4(*U-SKC<ve~LH$
      z04^jF6AwnO{!zv^vke+d8ZYzSn|Z&F_cA|!ef<XD8P<!)5jKZ$8lIm<;hBikKxmc3
      zAqSx^KFIJO(IVPYL!~GCqAzt34q<&3!nP4yW=kc3I-DP?b2;Grh){T?Vx@NpTYl%L
      zJB#Rb9J9Ew(`p_PoOUvhW#n<sLkSD)+wc58z68Re2NwmC)jSk2N2qjFEZ?N3JvlxQ
      zy@>7Bx=CL|hhnTuJ-u}FNKFXaGv)4XszoS^+Yt!<O!QyF66Qu?GBV>5@_v&SSdbr6
      z5wV53-#rm$B8)^l4Bz%nWM8+Myj3^RBRMwq|9NH`?~-)fm;1^LSikFY+aUNeuoi!c
      z9I9qXoK?+=IOh4KgfgG=Tpe@maI6K3^IKow1*<ox1Zy{_Uh{1ZOXkgX>@fa0JiK70
      zmssZeAVZ>#6|PL5Q6ifet(?v7<AK#|;Nes=<Y>Cw;4>;$oMbW?bk|aQS;Lf?u!^-Q
      z_&s+U;>N}g&?hWyd<QX&p}K_YT;=}|F4zsU+4mlMXj|fy41DXkfk$|3{XDTop8f`O
      CYqqoi
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwTT22#7>3_jP1kkvRN29Z4mWDhAath*5_z>)kqBPJxGpxb?uxFGKPw`Hf_^|h
      zD*9#<y0clBneXtv-?Q`e{r(A{g2Om8hU0-Z<If|P&xI@dB9Okv=@7wU?C>^iaYPw1
      zLopZJ72bf~_J)ofFzAg|_p#l*yJ0xB{xhjEL_INb7z&oMdJadb%ycYlhu^p8N=<sr
      zcBLnSIzyyb>X7Q%?-Rl%!`ZqS4R4`X4VXxq$iQHT)k32L7;+{y5MxMN(sNp~QO}vQ
      zMb9OgoaNiX?TCp~@hW*#T*FxE7>FRPZ1+sWp%Y{9B&Q6<gFl<tPE#u5gu=N{zZyNE
      z)(E}0hJA%Wx2)2I86622R8LaGsY9*g2h8pgsaIrQDAce;yAc*I>8xNo%z|VY?5xC1
      rsw=rsULs#Uf5YydHWiMqB8n>-R}c01-)=%uK+0bsG5QWD(opyTg)ef4
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      L>CK&TOn3bsCPSW=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-~b16g{^s9h{D$#e(7ou#!sB*UCbr#*K!=WR%1LL3g*qOZ&)lraoRN{VDtl
      z+(@E{KfoVlywf%+vcbjNGxyG%Gw+-`KYo7w4xoWm4>>}ulMK{JFILAKn*(+xO_Tt;
      zQD3VaDWPdwwxcbMTxv%i3WS@7e9S85q@%XmhdOc|iiGvlc9hjIpUC{T#OtZnMHxcz
      zg-MKiNyx8N_Xveo>4El<M=5}ZS;Aas68&z_Yiqm1?N}4aVH$C~$JS*1bXag*b3~|z
      z|7W8~s6<w?)Bl{0u(=lgvDb3eB%Nk8yo$HxEanL-UFZ6nN)3m@+Hj+m5ueoS4YmI^
      zY(-t&V;>bPdRVxS<K#mD?%=LuqdyHe7F(6S&oYU+S^enY9^ugy4f|L^i4Y{*(?@-d
      z^zQpNS(cYP68u&=u#w&}S=x)2cVEjmScU9Nt{M4>a)Pogsn?`af+RTe_#FP{@#8>h
      zaXf6`y4(ko7jOe}(n$iiB{d^&i&#!@zFc1ag4?GkeZ$g+bKF0pGa2WE3ZdntJ{7_<
      YAwC~VE=*`sNfE#UJQPvF@|d^s3q~TpqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkTTc^F5dIEbx<HqU+@vB{P_Y+a1@Xof6uE@PT4IV#<n2%nu(;ilc1!A$@elZ}
      zKR};JRDvezv%kaNq0TwwQV6L&Xg1kBGdq`W=9@X+e}4J`U<?a7>KI}hZpkd?9CL>|
      z_8Rx>ylc{jd(XFp`NSnLZRfTfu}rcKjbW&k!?7(xASZIGq97fM3~k9RzQfIuXFF!n
      zE_xP&KW@9WH_h-WtbUdi4wvUdahqp_`8Y*KtI97eJS&m>yZly7yBXKbQ;k$zb$o>@
      zl3~zh^J}6BJ_HQtFc@CcLYVm95F?pJFtiw`ho7M}X}cm-QoZG?j$mj{=Cj<%@PaMn
      z<%&}CHf`$rNX<T+BA7_gWd9j@YcN90trI^UMQ=S-I>Wj3lDkGBT#q{o2UaY>(6Gvj
      zYKR!ZH6b035TR+}M@0R}uZmLg%WjJ7vy2>RhN%j9ro-J0Gwl^@cf(5N3maxZIJ``{
      zqj^^jYAj~+t|!W#C8wcjzMK`?a#)Hw251A$^qo6cnj>R5KbH;kp+A7DxTa%>I6S!o
      z2EvF?Z){H#xR)<5bcZ8VElnKgtpH*e(J@S1A4fR+YhV<nWR3tcbRI@f<u0vmiL7Ty
      zEMo@7af3m(i~piAD-zR91GjLSVs7$cN~QOOBP$KK%g|%H>PiWf<Ruc4_eqEpCEBYH
      zEV);4hORTHku9%RmU6OHxz)^3vTTJMIT2@4p~^c!BLlOkHD|S!8Yi(4&FOrpkQEEI
      zT&d1en=vYJV1U-pN0%p!x!grM)zMi;1HBtbdP!%Uz8%q+f4DEG1?%_F6b<@6pm|pr
      zx6->sg_wbX2WZDE+DNxpaig&9BvAl*Iw`0;b)lQm$kTcBDBlhQaRHjr_2MEyk$)v1
      zKl#wWk^LpoX(WXdu(#wVt>V$x@E!)E@6o)ED-5Z32#)L{%J2=oNiC?whCkx^YiPTq
      zonUzL>&It=p0?lF!{k@;uY;_hU!h&3YzfNykmMu{@*_k@9><cZXrhwusG>NgFs&+z
      b;~wr)q&5s<hI-&5{{ZztR>Ux;vdsSmjUdhn
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU-*XdH6#j1WW7BkLLu!zMg(?aOg`^al0x881k~W$q(xjmQv~D*$>6ZMO?S_`o
      z2Opeq#s?qtNk?a7WX4y78S03m@BUHhcQ>K!KnI<1GTD3Yx%ZrV&i8%i{`uFhzXLdj
      zj}-I?oT)WCv8_fuc2}#LRn0bA%@_yGzSlNlOU(_l)-<YD@7YF)1_kba@krXOhN&0L
      zM!W8K2n?qR`C@4?nayYOb1Ru-DqSiH^xet|^e-frSIWuUQd%IGTi5PtvAWi*#fr9N
      zHfsri1F2SX!`7O1S*v#p9|i<mlT%Xy-ds9ASDF_P4C9;8>t@rmXSo}Wlm*<WR@LYS
      zgR1br>&GiNq#z^^c>WF*ui`Mn)s1G&UUU4j((#B26$b={a%R)WcN(jPRnk`LhRn02
      zYxS~bnR4ATdS{&b6&x2Bk#}r4kT$i3vC-CaBX&K{sSmFUjIG&r`%)~nxw#qLJRfaY
      zwb<mu#JSk=LawN<84b;c69Q^y5AuE-!&@pwaZ=z^_(hyvv_#7N2;;PZ2t8g#up~8S
      zu3DOPPsKRS2n;Uei`lt+`r1lyzOYyl2<KiFV3+BHA1*{?nlXV)H_d%vNc`7;4wd$r
      zxgijJsn7E=rE)?w!*;}DX{4rE%a8?|f!yJURGyzu>vyOsvnp_TKTIVtmQmNXsK=dt
      za2%W-VQkyjvJ)~#e|k$d+Ol&t6kHHExv%fFUQ_KHmUvxK@iwM>m=QQ?Hk}q6dq(}(
      zD!XoswvOS)G-f5VR|F1)v-=S)MV?e~6)DPDU(>9lEvwB&QhuZ{ry#>t+?9WdCp6tQ
      zEEV%0AfBpOGwI<8r?L^bcJ38W^lqV22m6-wA|&i0wv*%9XloXGM%?7z<X`8X`3ZtP
      zpj(D!8+7mRME?I!um_I9>bjxZ2?aN(<lSoJ`{hR&6^S8}3GH)Tq^#h!!0}zLZr^8G
      zRztIQSYusvlelSh5?^d}EZxYM@?i))ufnK|gbBVTF21)e9F}hpXNRG{M{7UleeiS5
      zr-pM6t%DfiPJpW~;pP{Z4fOx!uebsOg^D|%7AhX4Q1J%5g^J=URD1!h0^R_p0VUw)
      z*B9t7JjTJG{|Sa4W8`N>=)+Nd<IWv%W-yHbT;LrSshCR`L4ugf-~=usf?33H1(Q5I
      zg%mB5c+H8x4^KVIEzMj7EyJgu;#eg(7JOqHZ$84QZJgb`aL_4xj>XL*h^!Mx?Ya?^
      zb95IBf4*04l%ovkeuRS$Id+rwI<|#9zV01g_6<+Pr4LU{OVGp;=RR7#KRteC8yCk3
      z!tCg`7<`K9iYu7d#^pa;akne(`3ZMNL!Rm*j6A@Q+zolU+db<K@Vevf@sQ^U-idod
      z-oV6tOmVpQBcdVqH<$|gyL$?a{$Fq{MEE&8z|p<Y_Rc@^h>&OW{@-8hLX^ialP!{y
      z5;<8SzGWQ24I;fvK5pVHZjq(iWa0y4@FDV8;Y#CA$2zL`7zRFviLZJ7JKS+#TI>SQ
      zgNab!T}N$l_8xMCYye+jfogE^o=+LGK+wkU3Erp8!*v?hvB;d(xnJZ=A-pAK*VW}s
      z`bj;jPf@OnZ)5r44e`*S$wx)s>Jir^zfFrph1*VMV_m<U%v4q-`+%`}nF-b?sbBdA
      D1ZDnQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU-*XdH6#j1WW7BPbkP@U|A&Npmp(%x?l$K%)Nr|S3kTf)a*6n5|-I8oN+YK$F
      z4?Z~Kj1NBOla9{F$c(QDGt?1B-~FT1?`}fVflkL6CzHMRo_oJ@&-uP{?q7fZ_6LCT
      z_*g-oz)0O{CpMdn#C@${)-=a#SqToB^I*+LELiJi-7;!9%PDiMz$<WeFF?v^HBG%_
      zHrE=4L<kI~i-l78W-3?673P+*sdT1X66m{=6X>5$EiP43`Gt%?IKQgh*AflQswYa0
      zZCdqdfqm(gweDz^Q_&i2BY*(`_2T%{#i``v_|$}eKc6Ygm9Gm3dJD|x4bw86SpiQh
      zUJ>x7TQ#E}^c{o`eiessSV2S}^zv0fyoMum*D$QQv*O}&5_mL-Aod9y$eWf?Xg8M)
      zyR0oYm{mC6(zQlKvrW0~8vQfw{R&P949Pn-U1BY*X{@hlx{<h1;52|Y1fnaBvvxU=
      z*x1+@-MBE?vg?WQv9a@s#rb?mUoo0m04D_o+CBbN9LL*14C9o*>Da4my=sY9`Vqq!
      z1#u$w5={z~H<xYAeh|b6&XV|rLMb;_$Xr{>7YlO&vHV{6p4`(aJQ$TxCIqsbD0d}c
      z`oB7Kg>+WTb%AqxVqPj$R!^jEIBo&i8g;SiSxVs0k2e;V)u)nY{T?gJtO;D%jZvwJ
      zZ8Wq^*5r0exB$0J=-V+iooN}On%UHiHQ7At3N8tp+7)}P+gIC%C0&<;xQK}WW>{~g
      z<#u88h3-+)a-uY~4Hc7^mBd~ZI2_CErnW5bR1ohX%~IA^G&|+UWOMPfiVWryWZ8|q
      z(oge*raOim#C4DlU(KwWMEGLqTwJc*dj%A|lc%hLU9)<X5q1z;$%Qu8G@Jb*Zu4*Q
      zuk+9N1UVnjZ9{Vm!rMGi_&*Blprg3FYUs|if?EOyd)e{@GwOz|qJpZVk?}-!xiMZ*
      za97|&57=q@Y|CzH&bDq$tznWntwHHat+uTjSyR3Xhh8efQRxU{d`mohb3HgBUn0(q
      zKtX`ke$M-#a?OW^b04kyaezA^uD*hoUtl)W|GQfCga(RLZzx!-`jleTAMzKgN}yN`
      zgt!X%L!5?`kjif$)L(pxgJJa<2A^W+7kcQ!F@BTo9Z5zoi2+>V9aF5C%NW8mDVf1Z
      zTtOVONZ=~Qd3pkATE_9Z>wzDhdJ$WOu?kuS&pgNRYB(Bxa|>@h!RalW>s`3tO?!^X
      zT}K!>*HN$oBPr(z7j%E2o9-w_>C*cI2Oo3n1nqZi^E<HKZ7dsyr;-xGQ<IW3vA}tN
      zmLJZHoZZ6I2uYY7{to+}W3uWAPjBJMpPr=Gll1+J`@<1m?Foh+;egzY_&VEN>yPkz
      zlirbt?-|}n`Xm0(*h5TknEDB$5%0H{2&<hvg+}#PT#Jx?4v%nbr?;K+&wV1|8-DoD
      zmpzIK7-X;|YEq^q3*@(gqqs$;7pcc>oWmWebeBqeh%7!r0ZUwI{OMRl4WGck7clV+
      z&wr15E=@N(1axU46?o6BHaUAAc~UljuQAVR@bI3`=(9-DqWBaa(B|VhgB!TXm{z%8
      z;!GjEWk%Pj%iF}sdJaBEr8=^O#mBeAV^^jCEBa1XxQ_U1wAie0$Biu7!EHwtWLB~d
      O=&Ku<V2)DyrGEiRnf|H(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU-*XdH6#j1WW7BOYAtgw`N)&~LLefH$Qd){JBqf?A(xjmQv~D*$>6T=Z*=}hW
      zeel5<XMFHMpLBFaMrM3Pn4yk1`tBd4es@#a4s_5NCzHMBo_o))?>p!I`PZ+%0~o_c
      z3VH<2Hmvo;W~-UFt2NEK=9q0O!9{cKb&SM<wPrRfqh4rRjS3YCy#Hd6cG@jdFPp7S
      z(~uSd1DR5>T$xYji}~X0QZAjzR>}fBxAFqLbLqvUYPztH6$lqrwYyrPsacIg*|ANl
      zF(q&y)3(+e&2p+*bKMA_PvG#_#qsgf#Q6B=#D$5`$z*aYHI@|c7qZ3K$~6H&zkzAJ
      zX<DW;Bj6d1RRz46cHQU&qXglDU&Ub@Q4kRbJs&iPS8$Z>nugVIR$TkMG&~kW5C;Sf
      z7EH@1uD6yAyP_>OSzox&*0p9;vrW0*R{E#i_zF%449XarF2<JDGS)hpZX~W3DF*Pm
      zKy<}%I+qfOjg5`?#)Wv>ZY0i+j*cZ3=L%(g#b{{(oD>MI@1a7)Yj`V&A)FF8J^UhY
      zFKS}dUJT=mf*37c#<=9HU@qI5eJ_X+oF(AJQgNx6olRHr)$CHfSjo<2=LLofFLSfo
      z08=VFh|6RX0=aIo`+_m`Umd!HIxFUyK>VdP&v!2yD$+0<x2J541X+z7xp3&nI~<b@
      zsS<Gg4x7!a3tZk0SxJv=G__5(>CTwA2JYz4w_|KNQ!+<2yQv!;IZ$f~E()C5*Y@i6
      ztnFNucwGu&9LWHt1&*7RJDJgE4G?W|7^Bp!8!9F+BcZ(_aAY{YAMLW$(?Pt044YbC
      z(d@J%tIfwUDzcbWkmH2z4nc-DG~F@mAg+Oc`08fEq=j!dlaI;08&^QlyM@X=*te_~
      zA>k}>s9e)lN3%IO;wJwl|2qH7PZ0Dz-8MAGp!qs)6#owed*CQ7uNt~DrQn7@|8BMN
      zSyNF(O=8GoBKw4kRTbP8II(Nho&H?gZfVXAYpknj5;v_$;>+!ITQ_p1d>$gtcVS$5
      z!YJPq51(NVj>;E_(orY~P}@tn2P*e`a47qz?Z-i$gt+?>UVed@Q15SQ%@gV?)x4o#
      zspeBkHGjxoswsg|EfC@^<PT8{DIt~LK&ZF$7>B~@6AV1Y;Lr5XgX8?B+!!flFo8Z?
      zWQ<96%q0wBikM8}BrYR{86<E8=XpDc3^nKRs_TIt-g=f>mbnUQ2F^UiYqfAR{KgjE
      ze1y|mIJX<H-z|HV#a%-fdDl^}YerDUXfEjf!gjfFuF|FV5e_}%+D+Q;>gM*?dUtF&
      zH@uaSHoP?<K@$s<1JrzfX5{P^CPxUu%+R;!e~O8kCp@)<%YS%MUQf#R6YdU0eDy~d
      ze1L=UG~(+XZ)<;m-<$G|M0`*1cFG^|heq!s$z}3K#3SBskPNHcGlfd^7hH`Hel8Di
      ze6P2?@@GB~@eSSo`-@$OiWp$BWpYv>Ckw>4ietDzq!-D@O`O9mvUHnFe1IH2L=j8e
      zY5eI}MI9f*z~?aWHSd3iJ1$J~T>!RWA{2Pn?KUaBhXNt%!&jJNH+UH5Q~E3sv?xBo
      z`_%ck&*D1fnbRuI%ajztTVZzHzPw30+0VhJsMbcdu=wzXc<9m;U`OBDCaz0<hZ>t5
      a?zovnyLLO71zDAx1Nz#|Ot3~t{n9_drURn@
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU?{8C87=F(B<96MJm12<rgDMIwgLQ!IfR14;?WlIG(5|ffaNgZsyF2@1-rlki
      z{h-mr#1DSZPZ~`mlK2%NVMdI8_m5Jab6d8>EsKe1de1rUInR6E_j#Z9{Q1|fzXLdn
      zcNGi>oT<0Ev9)F+c28@VHO)5Ltr!Q*zQ1C`=2{)I-ZE;XrM6|4X;I)7IK3MrWw)EA
      zUNW024MQRX_NR-5Qu#(ISI8A+7P6^yrd$#jxSbOioK4LyR8sl5j6g8ItliUM4Xss=
      zm2Asw)sq5y((P8q)>?K&Yjh1Ch6Fr`c>H`^z?;t$X3EzD1ReRN^oH3o?P&p5Bw7)0
      zr`t7S5Ok};1Fs)1;DCaVK;YlEsCW?v>8@e4>h_X@&q?4R6)N@!4Cl?3QRp@o4Xdmz
      zHkeQ_-`2H8MYBw~?i;;R&ix9G35>`))*Mz_TGQyPXu1)*Uf|S+mjuE~w!LyG7F%6i
      z9bY{^-nQzoa}yJ1WAn55lD=d#H6M;M_3l>k{WywORgB_<z{$vVs<vCAl|e*sN<ox}
      z-6|%lls6YG&AP8*45tOuxk4#7Q^;Ih$Q8;0k^FA(%~B`*aA8~q8579%g4~gX<bQSO
      zRMK8DI|8v?G24Vn?S$%v?a0T{SejNn%PQFP<c>t8_WYz;f1kQCYXX;dqEr^fG8)<%
      z6}iz84!~&>`nHWVJ1K+oXV!FMMK(`I!3BX6J7TZ)`)cE`B<zxk*AVw%O5ljua=I}5
      zy!7FYY`idyUBiz_OiOaF2povyb}G13c}m3_NK?=Hl4hlBnQktc_9KHC1zC3ErvB4B
      zq3O0^skjC*;;ET+lL${For}t~bFYA+_cE1A*fFo|oUo19PY$%XqFHPjaf^SGf1Q8E
      zC&>DcZW)?w5Z>j9!vCqk7CMTH%Z6?z72IU=Zf5JeVSZFll_WBn&<^)SD+=xi9NUET
      zIzQXCnwq^)Hzw9FNu1VT=}Yadr5jmOJ`D%932|Jy!UP`_7hhc$4$9|<vx89Jqjiw;
      z0r<J*Ys0yR*1Z_!PJpW~;pP{Z4h;V0uet(5#i~1?7ONhmSoH?H#j4^fR(%1k0^R_p
      z0VUw)*B2NpKEb}A|0(uA!N||_Fo47SCY(DGj9?N&xWGFuQZtt@f+R_q!f{+i6w`>|
      z3eNF#9BEq4;fUjbAD((1TZXX;TK1oMhNIPBIQa59UU`g@>o~J{;a(^0876lPLF61q
      zY7a(I&Jr%@{(L{(agNfZ`!V)C;@At?>)2+uVBH&7whm7vB!;IZC28U==RR7#KQ(rG
      z9T&$)!u063*!v8VRaY>%j>~_z5^h(*^AqlkhCH>$7<q_cxf}BIw)@r};B_b5V<FE|
      zyq@reyn%@ah;z93BgRASZx9dqdwU9v{$Fr4MEW^A#Nn;pw$4BEh>&OW!QWqOQdB{R
      z!IoH)GHWtNek(YHn`C;P^|*yIxXmivVI}S&i+51K0#_P;I+jtxhcNI7-ovLHKd0qu
      z;=V(}q3cGEh(2AU1aCU3le4#wCv`*k3bRy&i}!s@-$jxa#z%OYHV@YsT*nQ@w#@w!
      zX9{U9Gs>PmZxJVTtv*AgI<}7aM>oYIr(8ZN`*y#8JrR6BONUDDI+2BYxQ)nEW+(fB
      NzWR{~<|-wy@DC~X0|o#9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUW6g|Udi`$ldVX@U(KNqlWe3fcK2pE!$C7_t}ZGdUnX1iNqx2ZqHH-A81
      zOl(YiF#76`GM-sTB{d;FZ0<cX_uO;to&ELu+jjuZV5SihC>?pBb$;SnXVP{0GH`s)
      zVvxayQ)RsyIDu-P%ATt83(`mk?93uWWdd`}R;^uYb!q~lA+S*Oy-^^&pd;N-#i<T~
      zbgS01E7h8Yf|TmMZC9G@2-8=RenQ1~=$xxQ`y2?Q_8iX%UJC4*jRSj@kBaB{oPooX
      z3mt(()$gke;#f0~#k#-~v+@7@dAhx6U;!ze<qa%iNnpu#JoP#}>8jxy*>!1k#rAvB
      z?Z}~{@#HWO44e@i&y>5i=dwUXUQHli&LmIG$~6w;XrQMRh?@oOKBeA=(xroS(>|7G
      z(sHGDWbJp4RWB$PxYVQ{4AfA&|L2-E+I~3X>pObBwQDw?Y65>GO7RVo$n#6-mnDi}
      zj(C0wXNYf1VFSy0rL0}n3uTOxn<b(bqC?^Y<4Q4`+Wm^v;^rlC#jQ(heCBBkxAa|9
      z@tlff7}z8C1vYtJ95b<n+eErfD~Tx6TCpg*gY8K3E_NoG7Nf387QY~O!DK8mrdFcX
      z#<*b8THqe;PsndstsCb{KOsJ1we$mmZFH+oNG2}ge;Y1F8>`dzD{P=1HO`I6SDy2D
      NfQONvN0E`oe*mXu!;t_0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3&r1S96#i!2+|(`0wBLe<D1T&2hq@R+2%W@>;i22O4mz=}vF?ifDg6arx&%?s
      zp=;0|6}?$QLP0vbnK$3O_kG`+`TBnU0C0*u0~$lA;|A8K=U7AT$Ts(7-?cp9@R8fG
      zuH1(@?+F!EhYtn@bcTZk4bw`7q!`)a-v5If*8bC3VTfKxSNfL>k$j=apjZ2C5k~|G
      z69$%vx+Yyw4|*-(-SCzp7*e&q&7CIqq&okCy5E%phVmlW*$GKK(c`||6$9m*;V56b
      z<3nyaoZh41d(!Px=8?i}3=A74mJn4=GbYxsP6Gs<RPN>|7-EjHJQ0aE`hjPQYpG_*
      z%z8Re-N=zZg#L|DkP59D1-%C$G0H63!@J@e;?Lo=NozC&%UGe@oD^UcNjgDUBt$ja
      zM6JlP#TTSLVd!I|Ra!cJMfwp&WDH$@q5_RbKm@Az3<;cLpLRu_n-EONv)IH|D44}I
      LWg6u>A;azu^!<`T
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Ph4biH*_Lue*qdAGE=<MUaB0Pz0s-NxRgQ%|^DH(!b?N@Zb;dM~Ra*
      zUV6x3X5I|%?VFvS->+`~w>S>r3Ea$0nXGc1EJ>>wIaQd%N=+*>Pad4JDl46QBIl$v
      zA$)<e20_ge=orf7NYi2=aFI4B#{axKf$)7}BXHg%sZCfA43$ytUZ8b(H4*Sf#Y{$M
      zVJ}7pkw7<9MvluollFx&Ed>tKVoG{KR#kmH^xdoCJ^M|j+oxdn=(#BER6eTe;gfB`
      z;Ek4qQ}A+pZI7dkfHM$chqK_|CAsc0O1M^&_Vp*?4+b9gIS1=uA6>@rhJYRpxZ|&^
      GSx0}2o_W>)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%}&BV5dM}@5U3!Ce^?C%qkw3G2RvZBka!|oFdV!sWdmzUo0LL$7N3EOiP6M^
      z58y)?XA9wg3GvX`*_rQWX8Zl~`30bc(>Njwm4Q34W+TU%a!2-gAU)Ueg~Mm=z-kUX
      zX^S==iKfHH<2a%WXB+S<B!lh}tHyBN`VYRbB-}8>?xZV&dj_pk?lMH1USA}k!7#9e
      z1Vg4JUD2M5dcuF?Jx4I)TAt0FF88InFN@J&D8~%dP4;W+(GaN-5A2~Bt3?<tO08!;
      z<(9+gEjocO-9h7TrTmltL*9Unm>P87Ko&VwJ2VhSj5eA0QjPgXj3MEu*%x-njyLgb
      z@gUVw`L*G$6&XcR)#&F%=p#FdP!<$bh2DqyNy;ob8J&9N1F6@ry-hI|7O#+|+*kmR
      z!4BP^W~PcF_sBw-n3Xr|URK|+_kt|t2g_X7=FvIzBT$;@5L+j`TO6YvY8My$m9~i^
      Q6hc3fFa=^Vn4!YSFOD>ie*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!A=4(5Ph>OyST1`_yfjxKoV{6s_{bNX=6+@+{@BHO=(T-5`N2*2?syGk1`Gm
      ziQ$5W&b)c^-gMgUpVb$D0Zvmygx=IvVmUWrA&s8Mpq&+78M(AmF`PMFswWwO@-{_G
      zINzh*>Ikj3jblK#DE>Fx{yA<4$(^=3+!GqT%Ml?Sx{1orK%S$8146sdRy|hpvGOl+
      zY!snexKf&t^m<)y$vDjPJE6bt{+;LX7TL3_e5oFEJ$0vh{VEp{XW+H??;<`;BpiXX
      p&cuk<<9^0Sa9%Ub{wEGU7(_VYnAGGIjv4100ov$rML4Nd-Cv*JX0!kR
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-lnY5PfOau3fjE)^9}-k?O(4o&?2%il;>crQk7bLmS=hmNZ-1pXEUc3jP3p
      zlsH*y>8TzjGkKZ!@+SHEe*Xk;iX9s%hQoFkd&6$v4R|11T+1l*lnD4RY<o9c^Lwtf
      zP@xTrVSi5Vq>sVUqn=>c^&{1uDv>ZZcp_<vbB4kn=*x!UYD8Y<b0&R6&Gfk9-9AIn
      zf93=3#aafQFZ-I#a$?vNJw5ev;Q#O1NM6WL>Pv=n^{7r$Tt_Y8AdQlX9P&1n87i}P
      zg)gFIZgfyaDGP>G7g;zomM=qb7k3*%J@Q6CPf_-xCJ*XdNwc4TmhMOzpgPap%=?o=
      z=OKz!Q`}0US)4gLF}|=z9@6x&7R3TGv;sC3lT5~vyabmrqoA267pS@-mO+ZgV~P)y
      mpT?-XVda&u6xL|XC%QFKJ|jjA>x8+#9Bg2db_`od_x2Ar?wct9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-$xg#C5PeS52GT&w@&O<&ECQ=%5EqtH1V}}_JLwQyIgVtUs=vhvi31<NM<FH&
      z61N^^dw%0LGv7a-UjQc9j}QnP7PgkF(#WMUdak^#taN15$`<mLUbLkMp}=^dmP#7M
      z=wr5^+zW(Ol_ap6{y$B<)3&%2h{#Y$mRV=%8iBix^`yKfXSr{1rLFeY0=?st8B5$$
      zbBfW!R)S5$0;7}%dZ^2c+_TC|D_`Zx%#_nj{Rf8rRlf-wt<&z7W6gM4)h?%d-F!Ff
      z;EQG_9DoPmTLo-=4A=t^HrNX`9*E<RGs&?*`llaA-Z=@d&3@2==NNIGbOemC!xdkx
      HW$pa}9<E+i
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Pg%TiH*^!^#_QESVe<p#Y@psD1y@av|Z}TW+UmQ^ly18c<=}Kqr^!Y
      z5543tpZngt+4=eX`UY@|;}9O9KeJ`B%uKRiqo?e2Zj(Y8UfNmmXjG=GduHcUVMF+Y
      z(*}5rBXlfhYG8OiC!D7ZjNw1-ju3uqWC&+Xlv+dx!M(QHJrG(K{Sm<*<Wm))g}oRZ
      zM1*dtts0iuSQW24Hi~eR<`Xs}E_7AbP2as~+4HJNbo&sZ9lhjbF;P#t8r$1`zIo>b
      z;{>vp+}RUrBM=XS*bz@+vY^CW$r6cGr+v9X{3(fteeuD%d5x~*@dkhc97-kMSfhG>
      DR4sQB
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Pg$=rD?RbDtHtxT0uk47C}k{Aq1hN;BlKSbtTzInw0vp#6v;BAK;G?
      zCtJ~;y0EkJX5M=<?AQ1ECx9*vYp@8XGo5?OIPw-EQd5zsM0=@>#8S_^LHwM(+>0!e
      zsji_+IN3t}<q_<=U^u!7`U678-y+y_zhYT0jFeW{HKBCY857F=WGWpH8ZKPeglf<9
      z>s;D(Q9+f^^p%!D9#3RC5|c<0+I|v>Xe?4yU{iEZLWBLXM>Qun!z52bd8-O`YjcUq
      zC$SJXX8RI<5aFnp!I=dcHNJ#8Bad-$8XusC6`VKhyfU=V<mi}Ym){HQnJR~3`#&*p
      a22{>hX#LBornr{4YXaJ4Heuh`9Q*(TW?PE@
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T}#|R6g`t&H*U;+RBf%bS}TR_sx*{+DJXqVs6K=uY+3Me+)Q_;O(rlqtNXL;
      zLlG+U2lPjk-dSS^3h6`c<bIr!b5G{a-(SB0yvL3Uhhb-=rok+UgG(OEh#Q%zK#Q2q
      z)F?R7JW05AQDxZp#xMEo;bea}771rqm>8}N!<(>#?u;8Fv^rpLBk@%#F=1$jmN%Fh
      z83&=97;4rIrIO|&L#5LlFjSAzNO-8A;iC@EMT=pz2vXlgWT76KXw<>5?8C((Lo1|j
      ze4Zv3LVw{Gv7k<v4tYG_TG~7-R?S$Fl2YlJ6Qs^p;%abbRjSFpPItb+BWLoN0~aqC
      z_DX!o$a92;b-c98ZZf>>lsS4Y%lfoZ6n4s06bsVV{ja`klveZl=~NHJCuyznGwyfR
      zYHX9O6}mMJJqxH&g!P!Bt<rCy{t~?%QO@XW@7}=Qy+!l<2JN4C@`Gv)Rwy>-h#so=
      zfEIdKrJ8?-!Bae=jA0GWGrnHNSHH#jIdN`W=R~zR=&(Rg&k45hDkIpZ(+YCfL*!8b
      L>Ey`mIsfZ_WUahl
      
      literal 0
      HcmV?d00001
      
      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
      zcmb79u};G<5PcUy1EEkTDl;QcLBvp&qAmy!QUpU$_iJheBga8bQsuXpkQn#?J_>OO
      zhyf;ivhUvA^Yioj$Lkw_Q}hFPgkfr{sLo8ZWTO{c>fA<78Ln*_T|3S)c9(Uco|-`b
      zpRoJLOOA9N-Q4{Q2%U3nbvYpn4&s(zSOlh}(>5I+&ItZRzEB}nu-?TgI)q-Vt-7tU
      zxpMbBH;T}Y^MuWeoo?`V(=Q)%K{$^8;d4v~GF23uwyJ;p5W;C*xkO#*=H0>Xf1Wfq
      zun!Wu%_7<2S#luN1fB%YIU2rT?O7@hp`2mc9SQRc8-n+~Sm<I?knpjEo@fxZ1$o%{
      E1bshXz5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yi|-k6g|VUMJ#BowzUtmw&h{FHhx4~jka1tY9bBMPi6}%u32`?EFeEi6OD-<
      z`~m(b<C)nFY$()1!tBhw_ndRj+~v>TU%vtDVK0rCK&9>Wj6ugS`le&I%&zUZhO``W
      z;I@qy((H6h*$5(@Od}z%_Q~v<gYlAKjzGE{lnLCc{U5w4khP@r<V(|SIhGVyu6eSp
      z@qO|fMq<p(OUw6qvT42H>hx9qhR*-;uxYfsj^X%5t*(O6Bo?L~*{<E)7uYUdMpdaH
      zka*^`tPJAFWpM?0fq1dhn1#UgERskG<Z8BSo%A|qmOM4j9E*{f*EF4mDQ&e64-?&w
      zwlA=A3ErWNRGe#D-Dvj$E5*`uZ<Mg*EYg@^sXt!2TAW^~dYvcPxN8ENA>qa5D&|5K
      zv&ayK%;#~o0``kxl#Hab2p}*MP9rU?7Hgx4>q^u0KX|fZ)b#~dC&nnC=X9$IFmpI)
      zTA$Ta`)L#f7NfIOfBJS9PNPiqipj7&<M{P3z|jeYiT+Py3zaaB;>kNLFH}WMLB)}+
      zCT3y$CEHaRP@t!AzNT^H)vWOe>T2~$qxBA)$}ID)a(9Fnzd)w^6LaOt4_y1kT@3U5
      zozqB<k-z~j=?QM|>}HUS1wN@yMzaW_-NIssX>b*cCClHj^py_*TuL84*D#8n2_cNY
      zZLIJ_3EF425|mP6mPTSS`t+DJuOdQHLm?^MrXpU&T8I@DvOX^4WTKEexI0P6`nZrf
      zg`7?iqI_0DHh2d?Qx!I(8Wtm%z>Rki5xi4vD*ykm$!@ol3tYER(#{-kudenS$a@V^
      Y2!caH_!o`)0V{T}OCSM*<uN??2NaJ)Z2$lO
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!Ab)$5Ph@V?$&j+T7N)9&<YyrRp~|0%OZl(d)kH?Ns|(@rN8A#@ZbmdQPSCM
      z!Jg_NGjHC!mzm_}_v;%#4@W5?!r8=@Vlg#hE{z_`pq&+78M&|%@!(xKdy*k2Z&SpC
      zlP%)4j?kK|96iEm@xS5b&v8viZnf2+PiUNX2ZZ>}ja7yQ@*FMf5ZZ;d>am;-m4A^#
      zqX?bCjieb!ud8}Z#^F`J6S~{xZ@!L~$evy4N9tZzmmY35uioTb;uyRXe_X_;iG(AN
      q)|nXba@@}t3C<PMy!gcK2ZIQE9Fv;7#6IJEB|sYoT=BG8)mZ{WZe{lX
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!AiqG6r7i)NsZBJ1<xWLRJ2RIDqaLZ2qGxGzqU(V*=}S_LVwGX;K2{@qr{iA
      z;Gs|t``*0Sncdm_{`vd@Fu-1nfN(Z-rJB#Is@R$d7bbVgYs+&tRd=q?-fFJ&0~Z2a
      zjF51+#<A29I<E`IfN+%kZ@Bz(To9rw<4kc)XdRyn3E@pX(Fs~eQ*^LF=w`<0`*JqY
      z{)tCc6M9)bW;<kW>Ul|q#j|-M^w-_L@<d6JJm#ez>swQwyuYI8zi`DkfW(u33}m$t
      tNd@AjlOTyH`-vbWy=K~{AJ}{s5MWDc)R5=c7Mv~w=we4E!fvDL{Q@NEYzzPZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!A=4(5PbvduCA*fUqFm8Xrhg0i5C-38)72iK0t#trE5x;@LQftJn#X0lyO-0
      zzzGl2nfK;R-?W?GpEZC7bP_ZO*E3hD)!eEjTQlWg3a7lbymB*@n?-o#5VUs*BEsbX
      zZLK3DpSuadRsO&Jkr4NdGvSHQ?A?qA(Q`4?DVjLVkl>im%8k>5az566$YZMsoxGT^
      z9kDlCT$53FHw!}Vkm=ro#5jE`N<YyrW_xFQuXq2!OGX#6lKd1&93ieNSxJ}^K}vGf
      eyZuJ`B}4<6oN-0o;Y{jmC%`#cg2bd!UHk#NXki)v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4xlY4C5PfSqF$song!?`O#2gk4hd?w)R8c5`DCjn36&7tAaBP%cfghluK|&x=
      z&?50sh}jqrhlD70uAP1F&Dbxmk52$rF>AwMaH~P=HEYVd;7T6zNY(={6pA;4s#hwP
      zcunZDt9YYf!(y2ItN){u!3Y`*J;hUg!9B$Zs~m+gsBSUjMAH{%(I+ayT=74c^fbLK
      z0~zfwm<xqN25Yx|EV3}s;UI%7K^J8pN^z|s!UJAWLMy2ITpjXI>ioTEMJJNfE&WOR
      zeRLvkukpw~5e+SzVSeHFY`-goqYN1O9HfxWVgN%n1{u13ZpFbcMrb^79&<&?`o4ni
      zS5Ac=Z6#1+4s5jPnI|0dpqEw=hms+q^qh&bY`GqXzSxs`0r?-_a7A-tl2n=W6Bu+z
      z8d+#uvbsXMr2BS?Jo1cu%6))y+q&)~n{E}Ck)zm28qkGq%AiG2ML%v5g(h*`JLDJd
      z(SL=Mc|*zQGi>V`c^xh;-DCU`ws{T9x}k0ZnxUU$0c(V_jt*>K5Su8F*Nl@1>L;U1
      Rl|+$?DT)l@pKc+|yaC7Jrw0H4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&u};G<5QhItLj!4Pp-;eophbd+xrn6_Q&fhc4s4gyN?kdQlsHviiwTK=2jHO)
      zXFxEpF!(>;|J%}c_xAqs3g8-}2m#@=ux+v{O|oU9SL}3UlUf<x*&>;9sb+?oCPGL!
      z+VGYW!xG$Q8<jgk_eNXoZV8?7WJw5T)k?+a;GmB^bP2;$TQzUXOw|vZ8ATYSRnBI~
      zwf6nD8M?J@2xsYkSf+$t$u3{3#`6)*$LTNG!qwUq)4$H-kq|Gcw$9a^_9TO!>8||u
      y@B}i3ECvYV2)^`@+!Cqeor`DeKYhlrsE>h5^hEn#52PLfAuzyDT-lgtfa4DU>{urN
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%T5A85Ug2V0;?bjz7-P_0UsMLYJ%}X;)&n^!@+nNU;;yi-MH)$zQu3gVq!G$
      z;0O3o#-4=`BL@!C(_PbDUA6oD^Z5nf0*5ge426#ETcf_RhFr-u_oQQ6u26hrcdQ!k
      z3w<hz4+b%W8IBfo2b~OtJz&UGdwj?(#fhozxzg^G8NxR4F+^{qExlWYP@&i$wBocy
      z0wI_tmJnx1Ri!Oze!nT)2i{aPk*PW@t{U8xx}JhzuPbR&sk%Vc%mgV&_PN*Uih;%$
      zjtlcD=aJ%L91QCwB8VoC!)6Q{4C(*=Ol)DB%!y~8E7FzyOMc(%iI!KMQ0<zCAxidr
      zS2Dzv_BIies5`#f5_d8%t+AQ-bG;9FQWBycXwV@!6rs5&YJ|QXy(cKM=w@_BN*_qR
      z2G7eBqXBq^70S&?15!v+1*{@Nh#r0-GQA{Mdc)euJF+i`gvM0toKi8S7XzAYCFr_D
      d5?54T2dw$Y<cu|kz3J8*_9-)H$3ei5{{>@Vj9LHy
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Pg%hX_`c<^#hOMNktoawg{yt2q6e91&`ZisVmzAVp{vR#6v;BAK;G?
      zCtJ}&p$j`Z@6Eh<yZiP1{t2LsgBmQt#U!1Di>VIhLaRg+Doev$YOzQsVVo6Rt+N-I
      z+>4@+d0In-aI!)1+edKk;{Ko;_ihNSXoFzQ;)=DMu~w-nt_k+(*^p4_Wr_4a@B;*J
      z2~Nk<>r8D2sKOyMB9+Q`HXX@)AVyjeno%|udMI*LVncec;q$!WQ9Tp9em2X;@>Z4I
      zhif-!J&C!%F?-njUxcI5h%*Z=YP<<`Mj_*J`5&N%CA>Fmy)v}W;OLoRo6k$^7?wl%
      egg-HH22{_N*!`C|hFnR4RRfyFo3Llb?Ee6AIbm1;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwy-ve06ot=iLjoaCsKkyC13xMjGl&I=DNrO(_uJMgMy`#FQ}wl&kQjIX9tv@r
      zX6jG|+xHxQ_s9PE{rU!QiEf4#;e6sMHJ@5FV{677jdv<&%X2qTeW&~3-Ut22G3wwl
      zB!r_i2@OZc-j*4J<MMz0ijZC#XW|W^eR4V=B)5L7bF{HtAj2l1QyQlqs_9UNXC7Kj
      z=$3xOcEG_bbYmv*#k>=G>zb~<O1kGyz6v9KXBLGIR)LFGo-qy~!^y{ytPP}1B*Tfb
      jB}&Oz-<^FT{}7{vLiV&ad)Se<SOVBZM-*YNruP2;zJg}A
      
      literal 0
      HcmV?d00001
      
      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
      zcmah^%TB{E5FDp@KnV1~4^*502`tVaE=Zgrid5A5Cbfbq$B~Rv^|v@7ao_{^D8$Af
      zapd6L+1cIk?C00}2Y@RaXNUymjqT;GHF8TvugUAqN~a9%Y$G4ZQJWzam~3cE(h!r2
      zYNKi|5L;@Mz^wdhExpsWxfV!RtmkHWqpkM00;AKj6|dZNYn5Y!qQD;Z1;(Ye>Y;Bd
      z<({ZAL9VOGtjOu1{v~7otX~99%KyCb*ZH#RU9Il*pq7UVE(eF0gKhBP5x)c}M<5GX
      oFk(C0&lyS11CyM;;oy})ghP&LATMylxcC{s7!$4preSLK4N@yhm;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivO-chn5QSe&#*9uTKX?KW7b<AuI^rhaYA^vM`<h7;J9K)W?FqS-E5U^a@K7Pu
      znte9!RlO>TuYPymKL8#u%8(E)m#$UYwN)FoX2HQUPI+y4>y~Q9A!zS1q=eCmH>@m6
      zJgru`4utNbaV9(wI@dRILON*{I!6a*1y0Z<3`^tmOS`VLf8)w(!g<-$Z0GDv><?iY
      z-pvQ$syt3ICgiV8>uddN;=STPcpu@?3kZt52603L@k}Zu{+HZ-;q+621i5G&19#|&
      P7XJ(4ed!1T(FDUiVfjO;
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-5Pj3eL}N7CUm$|`0lIj$co94W5i7k<+cmCiHn46=|CT4ggFnC@B~D_X
      zw;pzO-kZmp$Nc<$eFM10D8YbmQo2U1Dyx=k&4Poeo$}i9%9ZL#zdUjX+Pef1;dq0z
      z*AXJel_rdeH(s)`EH;zijVo^m@z^*MZVAJ)^QlPh>V-}*#BPQJ+l0I@PCqo&O#5e^
      z+0Le(vz@XxE$+!Eyqb5yX|W;CI=bvlCw1fJ`rfpb`FeEKX2cOBkX(f1Z6WSE2_(#p
      iASHh{yZA)<A;bWg)VL!ru_t}@FTg%>L4<=&b@&JQT~_b_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!AiqG5Pg%hNt#4ktAa=IAXU)Nvqg}iAe1096g+OzrLLq2#H8f6#6v;B5AdVJ
      z$yT(dF6`{QnfKld`}O_)380Td8wTNYo|ZwiNP?wE)JzmAOM_e{qDtpMB&*^<6ot%F
      z8x6wA7Va;P;M|Af=q4QA5_+R8f(`R4Rt@4rrK-3ln7y+Jp)t&6(gnfu;lm+V1Kn?N
      zY1c;+7NI>-sSL}-ROXSGCX&z{WwA&mB3CumMHePK_A8#$3&9;{Wgg2rRkJ%AJ6t}C
      zrNA+}oBTV3qk05q1{~OY2`xqe<NA0XpvM*5H|)GJG|=Yg>Smwc3v_gqL%sZ;m^cHP
      Y=PT^}%Pd`7OZ+tfT|JwyuWb%~01@O`N&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;yH3L}6g^JU1WKVayhacMPzDS$hy}zHA*7=2x2+Y7TnD*M)qWNe5(6K=M<H%P
      zL1pRS`#ksfT>JCu{R6-S_F@DA$C)kUbY$d&j2@ELxs^^Cn%YeE$Q0^<yjRY~2n7z8
      zfaf@Y7PF9_y{J_89l4pnQJTB#kM*}LZ~x;i1;TPnV1GHDfq@+hB<V9vNE%|PUGKEb
      zxKrmn3g(EewAKDvpmx&fG4oA6R1MUy*+diTtTNSB-4~<2a*xzEJdvdNfJ~2^F7tUY
      z^iP_v>ZD6HUwkH3(CFrc8>l;7lC~F{XQf^ofJN~Sgna6V*a9(DD!+<G<<}}NIA*bo
      l-{45HFDv!aH?&?k2+(F5RmF2895;Ue*upkv0y`CI_Z#IBerNyy
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutT~8W86g>l5C=?6gN42%};|Vb7+GmYQNK8nHZ3-dn<FHO($TCZIXN~?WA50S;
      z`~m$@jc2xPN+J(?=boFp=bU?f{eE}^@CgS+<OG^yllnKa(7%?UzLHi)#=#_*sG0QJ
      z=C*BZtVgL;MR)?Wsl1kcD9zaaGMcKu3KaT-Z{5y7Ky(FGI+01NG<GP%ROKlIfqbw1
      z-L*o%>woTkbv>m^M$S|+mw^(f_x=<2DQL#W0@ZmO1u99%X_c{wKv^0S+03OtqqoF6
      zPmuO@u4w(=CYcH++Gu+!u-SMn)NKxFtP@?SGV<80ppG{*-DnO=G{0TJ3SPVJT?JJX
      zXsf4<x=d#y6%XVn%-lzT42Lq-4*wl`cA{zdaGA^H3Dan~AEj}iF0`XvU5x*u3kXLp
      zPR3Wj7GAIl6kV8jNnBdMW#U&0xPqEHgS$0%1Yg&!vI>56tnpoE_k&!HzuNkVjn?5k
      ywpu&)czefD4m;VZ$9e(}rxZLR<vHGSviIjVe84Ud2{JiHUd;q^6xbumVgCta(1+Rp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+int36kP`xC^)rPZ$+xD)gp|xW8<U7gcOJ*gr)(};Po&)q0<aA1ZJB0>eu+{
      z!^Fe~KfsSN?tSWoL_&Okz1Ez4S?iqr{m0jD0QT@OgM`4|(2wl1k!PPu&pnc%8~9A8
      z&aoOvyBdZQcMyfDrW{XB^l=6$f&7U)m9{7Sp?xqoQBEk3Y9F-g0-`CfydU_}Q2Jp{
      zdXY-fI0$5F^+xr1tIJdf7>(x3dW{LGFs4p0R#e=lKH&$31__ENuD1S;>W~_L_?U8h
      zIij<oK0DL;`O9=H9c3T32~yG$*^%eX%B?vze;?Z&cQp1?m&Q_6PWpa8b#xH|i|eX?
      zGN~^8#P!|qsldl_zxl7`1xo){+rqpVEtMW!(0*{Fa!6v`#2Ri2B+HdvmR@1Q#4;{2
      zx@}?wX-0QU<Z+47wux0-W^~WQ6<lRhF>wvo1y)+FuiDXQpe9{8@buFJj`VtR;xhmB
      zF%=%WQ-MeG)Gl5uzWh!QO&ry5xqV^Y_U-aEV3Tz5>SW2Bfi$rUFA|oBXJ>eh_=OqH
      zM#(<q=GnZCWL-xxt|QsjkxWw*^jkxL;tfKdXa-LzSzl1JiZO0k>oGR1ofunIAr<4U
      zRWM>YE~I0WKT~D`7X5FLGT;SL=##!zq~JA8dqaKSVgv86jrX`u8PCqU;{kSv(HyOo
      fHI%g8ghs5G-Iw^Ws3#*<ZD_>0`9^k$C1C#q>dWI8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}O;5r=5Qg6^RS>IG{G_7d4QjM8defK~KO)-bLFK@0TQ;z!6fLdMn}5jzG4bFJ
      z@JAVEtBEFFh=*q0>CV3M%+CAA>l=VgtY)Dx)Y@U<Jahx+o(HnUW7!K;+V?x6%boo=
      zj-;2w;<_)g&>74de$SnNhi&J=yAgiOkc-4!A|ugaU`+-+e!LYV>kK30nUF5JKesN)
      zFl_HIjJJdz@F?xbu;mWNarkqIJVtkADC0eb(`vK+x5+;|YYm#<pw|+4WH4o50!4;Q
      zwbmE|!;FCuj4Cx}Ad8$*3kJrJSIROl4uhfK%21pqT~9<;+zZnAdp-{uJd!H^{;9_u
      z*=JZA5|S1`1LrS$N#u)TscffyZ)Zb2F)GB7q3!B06)GuHfu@l#(@2mM8GRF&q*x&J
      z1dZwe%YK1rFAgwmmj{@&*9VxlOZot%XFAoesA^K*BkFNNqu0sf6w^3E2`<WXzWwEd
      eB`i~>>J^FVXQeD!suYbPwbY}L7sCo=8Y-VLF_@|V
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<U2hUW6g>m9P}o|EVzr;(CoI~HiEkPc(!@wYYYY`*AJp01u}ocN$?ibl7x;U8
      zAWby!2l%6mcXq4xq2XcX-aB*eIp^M)U%$Wq1n>k-9vOzlsTw=eVc<-7AbqZ7s7x4p
      z12N>zK{y-*VtPCqi9B))wJWlzh-*r4Ocq1I<*`WJt?n70@M!|C_)x?n?g{735xLJ8
      z%D#x?Bw;)hdJy^ytV8vmr6MVM#!!@T+l_U^JxzBf469u0NV;P!-o_$kSW5_;v6g|;
      z6PiHR|7E<Bf$#B%P+Q$ARR8a>t!C}Nu!K<ZLZyY$X$#gxbQt;~V5p>o0avHaYxhie
      zhI3;Sg#+nIE&Se?^h!;FLPh#YT&a+zlSa$WrIPvuL%p$JFejZ(v(Jz_AjTrHxNV_|
      zO@`e?Ma}*S7`81GQ8M1Hh3hC7uV!Hdg*@(%PV*Y+u)0!x5&kP44`^&f)N#+S+-Jx(
      zQmBU(EUcOdOC^rRLsvw{+zse`E8WoJL7zv`#21G-J&@F|y?D}>eiMx?XTAhIaxWZ5
      zo_Hw@c==MwzLAR>^^m3iTBNmvW!ix}3bdC^V~M4v&9PCO*lSozY&p3H)={CjY(|ot
      z-$?Qp`BmH`{0;KH63Y_Vy4^a*Eqi;8EqiB<9lM&FW6%D9`ulU-o#VkbO3I)?`(`5N
      z1C@Owd7p@s6QE0yJv8b5X$lA%Es6*lkEp`X*3CN+it&sn(_lSmCr9^>Dav5~4~6;O
      AzyJUM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TTc@~6#l040%eqoR;Y*|ik1ag@ou~%gay;2!59b+yiK<gShC%%dx665@ela0
      zG4a74;Eyt%GpoderVpL-&CI!c=R33g_4~(902_EyK|#Pi3R1h@_3cyTdmWW{VZhti
      zJ=R@iZ~MBdgT&FUuOf3<K~Z4xM4c+zSHY3}sePi|M4%X`t`?YU@m1es<de9kTy1~e
      zCHPiglnSWiyhn~ptpSDqUEBNQL;j`M4cS>V1<E}Y5fy=rL6O5KQ=(#Cv_ws&lyBOw
      z%p2HCA}=^%a)Iajs_k>VLxHI{ZO4h1q%6tDC`^0Q-IcTLzU!wkdBg%U9WPeCAD-#X
      z-hZ)lQ}yCaN){<rs;Yt@BpE13pfRYKOBpsVJ&9lWofmk?2Z67RAtDdWXJl;-av7>$
      z^Qv5jLnt(xhbsr9`BvD`RgB<{#4P3oMj9&zV-Q%7D51>go<s$sjP6T}p~`4kVjPmu
      zBZ+JI*^0z<Oz_#N#3ZH|J(ifxv)B?ha=#6Un>l(WQNxtLM9T~GZrW|@Xg{CrbSrd~
      zf1o0d_kRzI$+5?C+6&Xj)jJ+Pf|;w2f1MvU7ODCOeL_ry8X*L3gVsrI!dPm-SZcsn
      zqHipbH<qXyOT>*O+Qt%TvcN6O&?@LRi#plcw2>&7td8{^bJl8xyVhEUMQc98l2tEe
      zcwp5^86H~oa)yRgt7NdO`e=qVt2UNl-KteHJh5uy8J>Ql%mqBB^(Bc6XcQ3=`yL7X
      zh2)H=YK#RWSVoFfoYEi08D61}_c+HEF7Se)E^<DUgS!PBqX)Bgj3NbtSQFOE;lWZJ
      oMyyN8AXbL8aCop3#fa5mJsln_v0}suu|^ILmNE%q!#%wI1K$!A82|tP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB^T6g|^ckXoby;&b7~2=&ppFg`GDOiWCOm}uA!WdcL`NJ>liEf>VZg&*KY
      z8SfN`tc;8Ho_pu?oHMsy-yfd<&at0|#&FmVQ+E>h?wI?s#}gTasvUU)5pegJ$BFcO
      zk%z%x5BZq8J`ekDyE_zK!cYig*!H|M9x+r}zvqu(BKjh3Dh8h{7)B!EfT6rZoCy&x
      zcPm4g+%YukOUDbHzejVCMu)+;k9xv{j&%zrN(_3v(J6po!@>%33RNuRXK2&HDhdpx
      zmJG#H8gxbc%DcW$5hIWL9Ue>7&xb}bkaW+Z*1uLpcQRk1H1@=URFcKTF3;4Oa6n0P
      z`VTs66^xLrVr7*=QDyX)SfgqY@}a??T6Nx0bdIO6os%ib&gm4@H=1jx(Yr=kzy&cc
      oN#hFZxJCsx*rKU3`ySiap^lU?U*%HGoV5%oZ=F1Msnf9c1CtGTVE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-5Pef)qp?~)!HdwNRx#>94-r8`K?ov5g4b=jq$~L-o22A#c@jMM1N>3q
      zY$`>t7Z+w{=FOYo&3t~ne*ieewv86yB+e?gP7`+`5;YX1$}^J|(MYDk4QJqO9m%n&
      z+OP<FxsIEzLey?>{ro6&A!igq`%-19ydw1X{TDG2ZX&YS4N9%D*z<ok`*|eFTzdy0
      z!Me$Z(!m0jJ6J@U(DhX&AF6a9^^+JRlCWv`Nhq{3`44E7BUKR2{QvIa5$seJg@~Kc
      zf0S}Lnd&3#%#}@Wg1pj^yi-Qr?wo@io3ZGDcro*cjkjZOb9B$B!R`Lx(HoXtIc&k<
      k-(e4&Gw}i|9QCF&bg;@9H((9jW|)n2Y%rUz!*~l@-|bv|X8-^I
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBrXn6n<{VOQBn!K-y|;)v7fFN~+dZYHMCLuy(Vd?7{$FI+t(>Yd0HAHdx1R
      z{v!R5>5R_!1N`paaXe>tn_i2Ke#tq{+2_2U3%~#Q%WnWaz)k@ff!p11RC(45DrYkA
      zk7VTcLx#i7iR#J9Udwi4t$?h+^>5^veD*3kAqdPgEvITfaoUb4AS{7P^?o>vWEkzr
      zV5FufDFo&cmbvGdj%&3YHVc8viFw;}y=|-Rr5~uiG^%a69#g4`iwSkdNl6z3rV~@u
      zwwW_WUNyU2f0WiTmw-u1%9dEPYyu03&E2WFp5^Uu2^2Unrhy9r`3<{WtJ(rNO29H-
      zt+}S-QDgPCL&aAu$4m1rXqJZAtnS!Eo7ap@YtL-(oZ1de!+T=3w!D3T*%#QgT3a>^
      zb3$k(4ofcxrfs&^vF+IV-1!uh5y?SUMUL#L;i>E>YRu-fRRS4yD{eIK!|u93;Y<yN
      zv}*z5*bimUP{(o<L<A3me&^`~UXc;G9F8K@><@a6M|32|zB-}>9|$a|K=o7@z4B=>
      zH8)fzkc0T7hE!Nm#whZGN=u$n4aG_9zcX{u_os?H^7sAFj~)oDl+L$s-eOq?2g|zx
      z*?Rv-&0q@m4BW-X0#l{s-Dx_#PYt|__gMSf!0kj^H}F34Z2QtcDbXGpSVoy`RRb$1
      z7f=_t8V@n9-uA<%>S$9APpFR>)NqfvO#`dA!`h~SwM6^cKm~WWcRy6lsCTFao;(cV
      zrSv;8*p&mHacay)CqDIEvj5+kq!AjS`i@=~KivL6;8tllp3Av6I^mGdqVBUP!=pfv
      z>+*lPrc{bB<Mu~`j%xbc$?W8B#2Sx?Motr_TfB*D$RSUtKq!L?gr_w;L-?YG4Z@c+
      zJWF^^!}EkMYj}b1qJ}yCl7=~cQNtYniiSD<RSjPw{F;V2-s>9Xc-J+|@!rrd^KWRF
      z`8PGp{5Lhs{I@jB{I@mC{977+2lITsG|PED-dNJ<#*z*<mUOnUq@#@`9b_!&9Ainx
      zNRqd6m;M0=d`Q|Kgn2_7<>&aQyfVfo<<&7hE8iI7i*hkL#{F_JH^zf<F+avv<zG?T
      ze~!i&=1X<srE2|5p)z<xziYH!po=U5T6_<)2x(z`8uBR(;#+EAKxGWEjtEVRU=w>Y
      zDFrP!gs7;vWf5!KbSBogZEj+NUo6FEja$#f8aK~p*Tz=b;wnjwkr6-fZ(JQSfFI(l
      aM)EbyD)1QFWZ~ibyXTMp=;_Asy}tkp_+8fk
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc@~6#k~SZOa1XQdAJ}g4iyV6;Tn2V5LBs6oM29>4Rixm$IhaHrp-1H~)<<
      zJYYgG@xfOTf0Xge^a9$J5Ffg8X6BsleCL~U`s??Pp8%$@Cc(iln=>owaUriBX?Y{7
      z*+$Xi+j8bmFKFuSdNL)fm~C6ee#O?eKbQ1`c~F$#Vwk#Fa3hAnQ^RElC2tlQWpHKn
      zOrBxp`iLgMIC*Q9D1-;w#J58_s#fFIYRV{-@}e?|a2QzzmS*skOM1pQFm&2`77Wv{
      z7a8_$O#DCSro%hLc)6I>{cxgRMh^xUoT2cJ4-7#WZg{wLONIn5x9-U3hU~)#MkU;3
      zn7&rkb{fgJ2S0<iAqGdiFT=+Vdy|H#Z&V8Vy0xwC=Sj!@WHF=VcQni3`}(2FJ~YY<
      zbJthgxs^!tuAFZ3F4@oulw~j!PJYskG&Qf8IW<L{XXc__gc#h*@z{3E2L%xclMEAW
      z>TOhV<ymDs#S}?v3iuHLek{74pOi~lMpxhS+)+QC;kkrql9n@Q>m*|a6AUtO7IJKA
      zmdy~jQi4GA;uQlp;A<IkJffFecouQ}VJpGVZIt7>WgO|*RjXK_J`J@N-g=S<r~ULy
      zZ)7ZDiQ1vu?BB%SaGPzrwT(d0)+DVbl$IFtiD?$WJEG;KsGAy2BukdpC&qDIw-1Ya
      zxTtV{s#viy`l`XZYOHf_OmTFQkj8-iwA={r86YdbCqS&!sk8!Jkj0+nfmRp&deBR8
      z0kXcpAx_4X@90w|s~A)wRSYSkRoqr07m(OjNRcxPS26aD{2h2e-(ityo+97SJS-C4
      z5(e-Vj}XH{x>stLv>&G(=*zj$o0G-aIfTXeIO+5;ChBa~Xysl(<qTsN@bo`9<<=R(
      z=TJ}SqL#i#l)OSvYgA%Fq?Buc^^^=RI)lEv1fBgCbb~-Q33RJ1=scozrUj~qD_Lji
      zcAhAl>11T|91AB+rbFZg>=J02g!)L5@1c*@OOb+2k%A;(tX{=Cvbab=EF&&NS`nD5
      Fe*oT<qAUOa
      
      literal 0
      HcmV?d00001
      
      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
      zcmd5@d3;;dl|JW6vYzDUO^)omIQv2qFL72A6rkCOgA)i@9Uw%uWk(<{NOEFQT1WzP
      z*q1_R0%fOWEddfcA?&3|p=E}aol>9#D5V2*X4*nKK;}F5J<0NdOXrXIP5UG7zI*Sx
      z_nvdUvtIeRuO4}vh^F!%y`-2bnp)Z`JDOvao5HbZLpT|2ZIRbR{l-XhxN_~%niaY=
      zuRR)Th{V0*X39S^yeV863%4{?o>X^cq&~@%WzT1tSo6)+o6VG+Jf|&E6RnGf<L59P
      zRnr=8s*Fcs;SQ{egM?+ca)Hxu=HaufW1}t6<nc_diIY|{x#zbwMEvBU9Fu(H_fj6y
      zv;mje7>Tt-;)%XX*0hE}n4fYf$Djby=#9x_Td1;f^XAQyH&34|OHG?HWoi#AWa<!;
      zf>gv5tdB>+$w;45GKD7A^e|~fG9GPdnmy^8QRpM4p(c6BV9KkBwnUb-H`hhtE5miM
      z2veY@wLTnM9gauk-RX2EH%1domEVx}jx0q4ZQ*z#VoMmrOw=dbJiWfMp|!bk85lcT
      zSnOZeQ6Fg&WF)*a2BI2}y(u1~Cuh?*n&74J0E~Q)xvWV?(YHWeQzW@8+#E@?h3g}$
      zPN`-ZGI3IW#>qmHOe&R6OnjnQAm90^oF;pzq8B7>Zktp|QvjC8+3n#Ncmvvc1Y)Ch
      z_M~;P@-&mC(+u!J4g-=`0(Kf)D-80;griNGMaMAZV8YxaWLejqj9|&(IBPG$aH0lT
      zVQIK+wn1QTUNRidB+(Di9%s_=^lh7v^lD6V`tUw;t&EeWq0~c+(`C?HChsNy9C9*f
      zK6Yq~wuEB~B8}npSW>oLXwo7&fvHGKeNlT1gYoDlt@A4)(BfW9N^Mnb5Cmh^#aipn
      z%2@0~lWJtK9KF~)8O0g~ErSrlDK0H)jW;{r7<4j|PoxoTj7Ay^It5^k#3Id+mSn~>
      zFRcW?zL^d2(+XNGTEB*=EK|PD(fjkQx_aHZNvlP}YEAM`mWcOMlTM@4ZSgLO#uLf;
      z8)52fDE1PssDrTa43jp{NKDX_uWW6riEN6*7TTo9ighN{%Zj-o`$$J}MYJvk0{~mq
      zf;F@b_t6Jn#nm2<%1}SS%4a|WlSkMJ+ztDB)G?_>9GxLBRfmQvEU!hq<gq*@0?b>7
      zDG`}6BtsGz6Fl|83xnDLEoX*sV6#ab1e<MY4mgxEt?7edVc6g%$@z3aq&^moYaGH#
      z_He+_Q!jl7#%)kc^k2vaaD3OK@6mZoh0fVC_5mOB?48<^(O9LZtdF+PR+Bc;Hl`9i
      z)}bAva9>-f%H?8oW@pm{bdi@X1Z4D4Qwx~%efk$Lw5=VgG%FL24jug|8-Q4YE`gq;
      zB_`~?%%scd3gAhzdu~d(n7%at!`BV4rkAc_nmQ;0)2n9iNLYA{Nk0%42Gb|Xn2_+%
      zm9*8M9l)q~YlD6Wm^Q^*+uID<g#)KQI>GL{k;!Ojg=^O~>L%bl+5r8JCeN7<=aP(v
      zqb=Z_iU5&Q|7qml!!SOaKKO?N5ejR42N2$1n@WRz3@RF<9b%<68gw^g8jmy@bT1n1
      z33wf*`%U@@J%De*2@MLSxtRh_8K8dl!xqlKxRP}rH0dFF7}(UJUJ-3>gOk?|X`#LT
      zz@JVUh~|b=4Arv?2;B>R9&SkqLH6u6X&>!R?Kw9+#&qle_!@kxp0Bah0c@2>lOS6?
      zCgeT-zgakg1}{CyWQpnx$P7O{K~IZU_^DQq9&3^kO23{-tNp<7&*YnfOxq@|tIp8W
      z%&!LAZ$J|_5bp<-Q3m5Ctv2ZAP?R`gmuNiF;HBr7CVeyQT_x~*mVPO;JkPXbU|PP}
      zS{aJ2!$41>zEy`t&=cr(eOhB}fadjdtPaQ8;jj!*e=(V`l&PjRq!>yu=xZ{D)No~n
      z-2c(k3>Ly3HNdAB^g3GO!m*f_e&b-KQk!dAsw-R1inK(xMB)bh7T$2QpWdLS<)3#<
      z`kh3Zz81J|J<FiOc*R?!#SXCEN5mM9BoGeP+t%#&*eVuHAO!jY%tw0*Oq?wBN0a`Y
      zJ_ZLih7(I$;}N|YybrP$cwY~)E@2f6j2ONI{;^%pfX76b;7Q7v5q$PB5Pc%K5qfxj
      ztJseYkx#F2gZ>KVooKI1!1RJ2typkq-!D=jokTQ$GwJWC80qA2941@hT!X#<Pnx4G
      zC)L-t#}lI9Uzv0SoYb+h?#0}C&<9V|U+prws#}tgrbv9Y!AMDc&EXDvNiVyZCJYK!
      z948sAk460K;w-?Py-c$+cS|ijz-}2`sgz)~!9J#fOx|eU1*^i@CYziiQML%}Bq%{;
      z=0=XC7~I4^!FeX<YiuDpJQ;o^+F>x#PLdslm>let<p^~U02iA)lr8wnSZnK9?QNn|
      zJxSA1UwaBWNp}ura0&3E<9K*>9$`{7#S9*WPMs-8=NOabOXoQ8=<)W5!4t$~M`JNb
      zHw}hP7-7IB9<EOsJPETJ5#r02WhTw0CTUfe6sI;nZQ)9h2ePm`>;wKU%%?zicJ)A(
      zv!_PUKlZ~H{m`~fcMW_5qy>@{Y+>Yrd+8Nv%`oXDp2;+JpuN-9NgvPPqhSl`dvpzo
      zz{i*zV(4prU$tUt8o;X#w9B9r4(^8axsd&0bLc7p;0%7G^a0M<9u`#w0SF0FxeVT%
      zh}pK@`5AAH0auA8Kq1j&BUlPRP4?VuyWvbL>8D6255(HVgu(`9Y22N`RNN3vz)H7n
      zjx?;uuu7QXk0$0ic=Pg!(99meI)wOn2`?3(A@g)ktcLew$u!$r>RQ`d8X^rceu|8*
      z_?iS4l3&5AOkOQ<t|tk^B@p8CT9a#af&@K9N}8!-DPxhr)l{m&rwyFGrXkbg&?Hcq
      zkj-as*vlK3#!ImHkLq70*Kxf#-(F=W1ihKZOB<p=R|Gf>A=Va~4+(rYCT&4)lS%(Y
      zCwMsu(P)Nir-@?JS&@dt;lxH{`hMO>IetEsW5U~Jrt=0<az`O;-y2B|tkMJUXz<`F
      z!{bYx$|vM3lA;FyY!@UY+6RhYvE$K55-Dp|BT7w4bY*6LAP3wiXarusfR<!9w#b=f
      z)P)l|02i)oGU+oqL0TOq{aN_41u@B>-YLTa`}rI`S9tYZrZI!@YF)Jkv4F8zCn3BQ
      z4%H5%ktQJmk!lWaH~9j-5H3Mm7#mj3Fw?jHX&aMqQbc<`9QOMr{|gB#5!lJ5VpM>K
      zws`BtXk9efPgM=A&B*1LN(Z-RnS04jmz#VA$FWm5oqQy+`6|A~%U6T+9t1*ACjUSR
      zd#-RpgM50O$vfnb`KaMKrL3iq<i^$pVbKpw-YG1yjqoWw(V7h2VDgPJXlK<6(~%t`
      zEp?074Za0Y62cqDWNkvvZFWy}i#B4?gT&E9ypk~o*`xGi%()AsC6V^V7DSt($%Mi8
      zVB1FVp|FFgzWV^qSfr&XxzXUC*l|^j^SaxPiBhi*VYx_4dvnAtnHanWc5?GZh-8Hn
      zQVs3`;@c2$N8&9$dY1Q@yq|FLY>A1TI*ah`fXR;v+jVfRtC~n3a5^MtX1L`X(H-3@
      z+<MaFr}$|oiALMpjM0I?HlTm%@o1R~%$Bn}WAe`!*;j!i3VPQys65q&<H+dC21iq`
      zwf^z!)cT+mO79IfIW|Itn+*O1INg#8t_(&Bl?S}nM-mA~wZNW#1Nv}FVeqd2l*C!l
      zHZQ;U4->QuhWYu|{IVE=S5TT8z-~kPeV8&0`9NEJHow7ddigg9(0dgVaK==v+2r5y
      zTM(I3X>O=aMqrM6IjmkDA+r#VV%9i*$7G%D=oJtQIO&^PM1c}Jzi0A&{Ju_EszGuR
      zSrB{&lAqQX>dk;{n+{_E!WFIU@p_nGxv2>Dy*rvLdQ78{9k_7+r0^dqu=qD$?mF-c
      z;y>KrU_2YG6EF)=F$GJz$t*oUxwYMtA1LUe!o5`dAO;j!_%~NCwusyaW{1!c8iqd8
      z{*X#&INpdx&`8W4g_av5qh)#i2wUZ&=jpQjG?r;89ut|C1q#Z$sB9<QkN2sd^%lB4
      zFtb8;?Lt=-Zg$+3I}qAO$A&y;%#lVG8uO&#Ew#K|w4lmB$71R5m0G?oT2kdl$5QFY
      z4xD6VW4S65J<Fvh2R%8`lM5nO)LI@ZD`*7$K{J@!O{@0OT5O9%F_hOyfl@24i`H9t
      z`zb6vR^Fi_pFY^bixyB!bQ0KkGWfEbis=*@Lo0D{vYMvR8pP*oX#v&JQd&o==u}#d
      z!gnK`POWHl&>6H9b?r+ijDlYsU5^s>PHLc=@O~>r=swg%AHwVdXg^73(o@u;d3~GB
      z#Wb&<#y1gg*^8Nt)C9ig(jI)<1UXGZl_iRA-8jibk}UuL3+THv7p*LuDoJOd<;B@z
      zl7#>i>v4)^^!c#XsgkY$9<89N1%25#b2Z-DAn&a-ht5V{4$gnHWFOe|ZqT2=S@OUW
      z)a&~pU_MUd!PxC!@Bj$7B8`9x0!bSI6H3dti#9z;TSD&AJ+yWYool)G(D{~oKW%r>
      znog<>T%4Zj?xIVdq$^WXua>FT_Dr1|xK5_-q6vZP?Z)uHPP<VUxWR7t13!|+njR4^
      zp#YAY0F#m+u^l9Cf`~gH;_u)VYYWY!b8#(m9$2^y%oBlbr_EsY`C!b&bOl|5|KC76
      z=r+1hi|=@?fw!l{cY9iVH>SmRog==P*zIPz1>)O))~#5>jkBOK-IulM3kVG7<YR4>
      zSymCaU7+r+2;3=8kE<$+Lte{$kaFBr(4LUDlkzOjLGpX>>Ir!(0-Z9^sIWE7R}r{N
      z-u)GUd*qp25x7pCrez)?FLzQ-sb!Y!qx-sOcPNKLxjj0wPP7H$4dqJ%Djq5b6j=G-
      z>Q0&|UAC5&2KHF6E$GbEO4b$1?WADf5vMa-cRm`*>7{#}!*|lC19WBW@L-nZJwQ*?
      zT0YC@rl+hN3(EV<?!X~i+4C&_A!nwG`_JpdrFtm;06kk9%#)R@{BHWiZt&JNac=?A
      z1b%zL@jSX6yuSmoyAx*Z$26Aiq6vU{Io(TB>3*7lvh*x^5bE#{EvAQI2!K=Mv>T`k
      zs@DzVbOAN{fEYlQ9;M6ZF}jW(hg_ead!W>N=%;A?3?;-v^ecJ<^{f5#HvJnN#@mPV
      zYx;;@L^<mv#KAAq-{=+kZ}cCbH`t&zIR{0w0KLV9^fnKncX$;2j>piuJP!SnP(CZg
      zoN{`Pr_uX7gFfIY`aRF0_cRWlgYgDlQaD7*HY3vauTW<NG0)V-!$o;qffF?WeZ@Qh
      zJP<Q7jK|UoFb`QY0{i|7eO~b33!JzKW@Is<^%v3dfgk@4ZZ*M-ti{gvqLmHaya|nH
      zf*ENC)h~gv9PsBEsRTgB&WB;N&B$f6Q0qiKICiYoi2~3)gMN<l<$<z%dKD59r-EBn
      zm_YGjU*VKuWZGQE1zs!D0Q2SN9oI=44$vF5Wq~)l>8)j*bRyLJ?T|b0t_7<B5c-F^
      z&&Q-0f%noK9_bht_#oZkm5xB*L#M+So^PCg9M<`0*O5KL@57!pdgkd9eT=tHaH2m^
      z0eCT-{sMRS8IbciuF3ySRp8Vdob?1a+~urjExW0Xv%r(TPz(FDgl5=uq$C8IKfyR+
      z6d2=A!Fh#MPr>^C0kb-R=Fxv*RO|!tNQW2iJG?j}lNY%l;-p@@2symyL+Q9QrP-R&
      zPAW)q$2%O{u}S|~2I(P)k2nv%a>=J`K(l~{(r~tD6qnEh9!`}!5*~dt&Ec`Mn8)Kr
      z`Y2kB@zViSi6d;1&q$MeMw;Z)(<IMLlRPy|GEzf_<mVicYkEjFvOw{1y(peIu=EF{
      z@6`<YrUA0Vm7s45=$l6QP^l6=8h6vj;8zzRnhfQc$?|K1Iru%m(X@mYWYATUrmH4R
      z*Aj=W62QV1<#+%kB}&})J9NG0(6zpYE?>SEge~hu*f9eWHa0CdzX(nw`4<Pp-r<0?
      zEy;r!l-iQ42Bk|tX$>TKG9<Yil3W2vu7o64Ly~JD$#nqnX#nwhT7~h`xGsa@^=XRN
      zrzt)yEy+1)Nlr;qjCBA1P?Ct2P*ln0Ga*UDa@-0@o()OHA;}~pxe1c&fFxTX$#XO4
      z`sXEy+j}T%uZY;w46`>9R^xidX>-WUArD?Yhttdo%(Sw!|J3%$>w?d6S9ycpofLAM
      zvtbzrsiL$Z@ZWIFUGyaapNc|e=f%Sz-vM^jT5d$RzHavH?(gHZPxo8?gOp!t`5k|*
      zonv-6{Jg!V=>!uwPB4+{s>*}+v~qMXk!R(E@+Fwa)xiXwp?sXekZ7U6D%i*VP{0aw
      zac-#4Dm+N#g<N12f}~wEM!E|_L&~he{amCd6x5D7Xbpiw4+XHuFj-`XHRKS&4T=7E
      zcqbviA0h#M5aT0dyvQm_kB`>lMUoK|7xGw48LzofRyEXqJ<55tgpVt}mUZ}WqO3j4
      z8g`H@<O{>J5XRc4C=K~KsmN}Z??kSo&xYOuw52vP*vJl=<-t5FKRDD11cSlipw-Qj
      zL&Ka{sic!Gv`Xw)X}B~bRvLj=X}I2OgLK)k(kjGCBXnnhHLTPs>7uT^JQYR_;ga27
      zWMv<s)Zn9gd3q;}F61g_G$^C_`cqKCvoJ1;OG;B>l^i;9u5hCu4VGa77He2K9)fDG
      zf!W)Jh+sSU`2xz}3n|DKQ5k<9m7$Ai7GFZg@n!hc(&aGcS5hrsMNOz0weq#JnXf~Y
      zcL&P5*V8q4UdunkZx(jajl7F~g!avR19kF^xZ3{_J;XQRw)|##gm0zC_%?cm??5r-
      z$Mj1CoG<X*xLdr3-r;)@#oR}q@lWV0et-?$%|U*cN1`S(j`wl}YBAH%p2^*OJn!TA
      zyq}lyBdA61<5j4>H1K1b;3v2P)s+iSU%8rp%Dea(z8STUyZPr>;TITv9<5*Tt0)S*
      zj#9&${1U&zFY~)7AiRg(5BN3y5F;O9&d2-$e~N0s-}x=&;<uH_@2DdFof^Z3RT;mp
      zj^W>{#ry}gn*XR8`D2yfH`TfP8?}}HsxIQs)wTSE7#7}uOFx)`l)*&HiO1CSa4NUJ
      zczD%SPCVvUm*XPvIJkrybqVh8jzgpnRNLTqB8bPzRE)okXu*rPv{J`j22#*m#Iv^`
      z9&1$-;hZE!+pI>jB!WIVPYu=an4hjyF1dw4+;TI2jyNy|hu6t}($QZIWb~nq{&FFy
      z_jUA_2YJ1#qrZGe=W(8g^$H-PZuTJ`3P4i3c|Q6I5$hDg88*=nL~uF05Un6&b`Amq
      z>6?iv`y%WXgv@IB1oRa_TJv}@`idd5={x}x4Ta>!b2VBP&@&k^ZWH3rPZ5zzmNbk%
      zL(V0UV+p8e(~;wFWnzvb!y^!096_{YM~RJynG|})mK`GV057R^cXQ3|LO#ik7(KjO
      zI?K9wd0GpoNa8W2$gPC$SyZeHvar4cE=BfgDd{0guwylnAD3XPm*Gc*tFS-OG~05l
      zEZfg(6n<lI>Y6}7Sr?zK%_Gi$cHvUYDK6j7>-B`brzxZYHH1c}AdON*G+q_!(~P!P
      zPoHKQH$WP=@St3dfEPkJeihR9TxuRrkpmVPwnJJ9V=X3jS;Zlm>$oL%C!vsHyC~FU
      z4k8|&DetgdVxW#7hCE0^q(>?@9?PTaG|NgWy0~#oxlS_0&4k>pD$fDlSli8KhO%5$
      zUJe=XSB_=$cT%h6w=H9~G{iERu#8g3*-1;J%eIW)hGjH$C$dOC?4p?FQbaq_xr;_4
      zdbfvto+?i#%2^*e?^#(@9$7|gAROSKBi9_@Q{gLvQVsH2hIq`gdboWFBuZ)obZ{i)
      zsZms@#sFnwX`~uY-@<dYI*R6~iBzp7(Q;KzYg7f*tI5=;Dxq;xD6XbbyP8HFY6fjr
      zN7H3$7G0-~p_^5R?or3m9(6oDq2|!DY5~2d7SZdfnhvWI=>s*BKE*eGR=8nP%h|0?
      z))M}q6j`82PQeW=DHEXx#H?+E!ua11(nt}g1lfiMqf)Rl5Xzj1w|cr$W5NwBxsBVP
      zWgZlEcJkQ>eX>x_*})0)d6A#}0D;iUz(ogLrSmf%(3{j+=0`5OPHR~<^0Vby%OpI;
      zEo?tz`LL>#g$~=uLVcnWz_O9h+cSGoem~2~O8a%&?`L&!dzClk_YwW1$8EoFbn)gY
      z#60I{IR?E!$nZNMzrFtV9M7NaV9e~KMV4t}EJqrGv0Pv*N5g51blDgyD&+I6T-}SR
      zgbA4OHW?M@NIm4pfnfGd@>zb*UcSik_kd=T7#+0+pjivR)Y4eB4#xRZnxamlkUAZJ
      zIhE$A^>m^-gHBc(Xq^hv2DIx`9i6G_sRhr3g6gUWU9L9L4iyDp&ZN85SpZBk0Mkl`
      zR3p8B@t0MC-carIj@sM<5EKzo71_hcMg$-bLCT#V376WS3&!~c2MlBBDQ#XoR7U%>
      zY0g4oc`IDJfZ;?qZZXXUs+C*e@?&rv2^iWPd@0iVZD7cGc*}+nK2Zb2gj1QS0g?j)
      zJy8Qh@<Uvr^#us_aseVl+ime6L*HCs3&)M8$i@TN*tz;@^w^@Qf%<#2WP;^;_%c`-
      z>e|m&Dya-kffcaF3d$jwYfCH2yZHJ}8j76X?$0fEr}}qcNyrnH?#QJ*wLhK7tM8Iu
      zolgO^m4>Npu(8`|vbvCFsqfPgbuq0}mr|{|3_`ntV(`#stE=HzzenH0ciYr;S{QcC
      zZ+lu8+j*-ajP06v@a?E3isy2{XGS#3-1zcz%`$i$xm4@RGW7~(OJUt9lP`l}{78aU
      zm}OC{H4e}{o!oADY+j<&XEW0aW@ZWF_+;tQ+~kGeCaUSMutl1i!lo2Ec_Ly>doUnu
      zyQow~A6?VQd4+tl9@)k2LcY~*(%%aCcBlDCA>ZjV4;ON$(|oOv?{=Ec7xKMM^XWpq
      z-)VLi@&iuuzCwP`Y2I4M4?E2rg}m2kUK+Sqw|3GjoXe%_z|V#Z?Oy3>%h<!+QVN!*
      zT{s4Pk61<uDm8(f&gT`v4e?yCE_MafXZb9Tcr3sE#-I8I3B_a1M>*xf41QuS|5QE~
      zy8y>`=&Q?mkaQ2~#iVw@6x=}h>PEy4H^Cg-3UhE9%}}?~@#+rvjvvzsbr*cbJ=CV|
      zgTJ^Rk=X-uiFydWVlUmI_R+oS0ClOy=_&OT{Zc(cuc|}zu6m9>R?pMt>IHVG7dc10
      z!o})kw$!UUQN6|$curTZ^E~w%u2H|`Rq8E76K`{qdWScucX_LNk1tg>^R?<G-l;y+
      zh~1(K9lKJ9MYQ$4jaalq-K9GC1IK*i^CgJerS>$6w`df@d?22c%ZM!eoyQuDVlT=(
      zlkkJyL-0YX@HZ_#hv_kpSq#+?s*jsc(R&s~#1BN{mbfq4`AZw^^kvF}d>z{9H4%ao
      zp!=hp9!{g3?ivK`^#2l2M<(?EO5Z%Gj{&Gp0H{v^s6PQv{{=w(8G!l=0QFY@>T>|<
      z?*P;n0MrrMqQ0VY5qDndV!8^?9WF(8y4>`DD~tBIy!4dIpyymZdfk;x@40g56ZIeT
      z8P@&6RnP+p`Z5Iyv<^FF?8_7==&vbI;1`$<DCoB-P@vT9fPx;eL4nH?2NWogJD@;O
      z+yMnWmjMb~hTFkAsx@wb3EgBvLBiDMBuvHgm)Za#wk+g-b-aboEs<YAA-~{sWFZth
      zz`w4o2zt8trBIe*C%v7t*z(%QF{B|*#|JxUXp=Zjx@@mA6v)9PBkW|Zm8CBrk&eGA
      z<D&Xr%X{d^ek-dd4p;^cORga5DMgg$DyE^Xp;Y3s=qOhSmAgjJ(XLSxa*d%yuCcV-
      zHG$T-j-q<kx2V}Qkvd$Zw9Qpcm%GM6USsJ7*Ay*_Mw<g^S={8Li(cF#idUBa@Jjv#
      zRL})(Uc|3y1udcN{JakK7NH#fDIbJ_F2g;bxE?Qpx#?Oy2ExNqEgv7aj9;qTd`B25
      z#b?+t?x8J9VhUH4K9ijUsq~qYb0)w1{gtyuEmn}!r??bJ&+CeoN}UPmy$>nQ+e|$R
      z`(-QFY%*NO>c#DxrdSh)@2OZH5Vzuh$h$bc0z>cz0?szq0wVC6G`SQ7sHJfHxyvdJ
      z(imhRhi{@`Wfl8%!O5+QHEs+SqU5x+yl3}e5{$U!lE*cV{I2;FbS<Qju0;^nVtpFB
      sP(7JH09)mMllk{r6+D15{+vahW<0WGVgE?v-U54Eh4UXUSMf*x1Agj-X#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kVsS6v`kKDp#?HitTV2P!OdECL&3bf<TcF-iCH8W9CAp1Hl*H{0RSn
      z2TcGIAB?{GQO3PbODlFtc<7vc_Su)U*4d}O|9t-eU>ZwNgal?w&Y^Z}TiTIsnMK_<
      zU5B^j!oFea+Rkb&FRj;>VH=LW_2IzCI`7;lA_9}wOTEYuXsJ{cNae1Vnh}T;je;dG
      zeRW0^-ZI7No+QDkKA{yD2}&iVIv;C{j$*@(NnOM)fm|>h(_a+$cx{wH4eA;OU<*pP
      zj3~WL_+Pn2BZe?;Dd<2KflQ^h+aQooa04xD^(cs<m90JnZHNhU=1j*}JGA!<Z%f~^
      zh<{hkE$G&^?wP!=IwStRSr(WJLQ;p`?D|Qt_L3o|VNJKGM<SKZz1NR)&C;EcmiIl=
      zDP`I)jFBkr2@D5Z_a(jx?&AS5c4W0dS?gGiC40&Tdcn{(xK$>GQKX`HB+$<d1A`Q#
      zaaTYgh?4ud?)d`oe-O)xTxwjw1jlyLA=j4&Z#T079cFpi@XRBlxZ=4s&1|ZXVWTIT
      z-i=~fVDu`+dDA|io1n>y(ak+kFoRiv-g3>Iz1(^|a1v_**2`rY0X2FEBC+G)uMy@U
      zX}CUt){7t#ugF@+m$hp6`)-jQ3yBn~V{Y=QgHTdl-aYgR#)`=UI@D~;CK(f^NTV?Q
      zV?_|>u_r6eLoZhvd0K&XDD;icuLCzJzLP8qA?Zn|-w;>F&d{xnpW(JTafaTnbRI%K
      zeS4@TFi(*$=m9NK_7b}B5(DH_EBP429ohj2*<VPD5rm}07{b(Z2zRTUXKCfAcJ&m!
      zr%0aT;TPIg8n(!zW!XTfgjE{|YS_HQ*#9N6fh8uPQBmgqiO@2)B%}C+sn6(P>nEn>
      zBWizSY<%b(k59rUHDm))+&4sLgCy8QAMzy8CK20_t!66aYH}p;6myb663@tDIg)rz
      SVumR{h71-+KtaMX_r<^0f1yDD
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+fEZv6kUf-J5UEfEMUP4-mv91C{J2IqXg5mAX+4bx6}4mhID3dIz{{xzre)s
      zVnQ(S!B-N0z`s$~nQ}AjgJyDOpS`;;Ywxu?KYo4t4&XlKOmqp%)V!v>=hp3AS$C>3
      zbbL>%jmnmCrTu25Sc-1zA9hsUd+VDp1p2q-uC(jYtJyEg+o}?pNC>3-pk}|HtJqcF
      zwNLy767!Ddgo^^POm;)Sc;;7C5;0t`V4_=~ujqJcwds~surAAWB`{F*E3&>J14rw}
      zMkCyE8UnM$|HGRT7;ZT34)f>^8cQm0c2#vb@LhqmOs8xdf(+?wmrmny#j}n}Vc>YR
      z4wig&vj>+kXd)#r-T`KZ#1@7yEYMw+jR>H?KSR>B(iTQA%AtDF<={pmn0pbO+S1sO
      z6=lC%<u#YYHQX?9T_CM{>F8u(3^&P0O@%rp3V;17PiiyS_6a0$8+T3I`D-6q)3Gp)
      zd!$~yYsxxV8_b*wZ>>x&yQv{%EllW|7HdYdugM@3NS<*f(5u-v1*G?*jSY_Q#EEdK
      zn&fDeS5&y=R|N!{NS6F&P*KZ{-m#&!&7RRojWKXhdE)$wbn$RSsrB$?QwqxX#8)K0
      zL_b@6CnDo4dU>~64!DRuY6kjoi54Av#AFG|!l3b)0?&DLGJOUn4>0g3{s|N5_yMjQ
      z;_B2PZhb`RSj|jFYTVe@270FBN56l@_8Hp6lHja$iHAsGp6jr{sXoROo*;*()Ry=x
      wAkRlbTx`KOhDbn|#Bc<oz?kW%=K^MUi_yElu4mcE2qhPlQxW`d=(-R70M=p-LI3~&
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~+iuf95QhKB$#v?q5DN4F<ydfvggHp4A{>N(3QML!N);jQ9DAEA@}Y8^5Z;Lk
      zkf2Ch@Blm%V%AA2WGOU4mhG9@nQvzQ-Cw_d`~+|priKFHK{py$qcE_BZXkU(m2srp
      zzSk3>YrTE#v@&b|<DsylgZNDn52Y^>4JE?Xdw1xL^40lNg4S~*KM)CF$C<BPdpt~>
      zyc$<F36)1OlIasd)BImZqfID1k9|=^5sL;i7=)tPXzL&>87QMdSaxJ2_6A``B>QeB
      z5QMrDdv4Hn6RG@3u$1;>fBp^SMd1zAyCQuVh)_i7bd|7bHk>%=S|9FvmLG@KbfsCv
      zIjm|pKlh2{B{XmbD})v9`YcTo*%_o_N++zD_CFe5FtCPoLRm(>7!k-O)MVfGk4Y>n
      z6W*yQuNt_7%Y;SQZygFx9!TM<_?CfdDqd~HgTxcNQfa$6^M>74mkW3JWQu%U38&QY
      zuvO+)!vaTiwsukA2dHj;=l9k()V{D+z%qZAvdSHl@Q`zxOaPCOW#csJ>~UR2<sB(?
      zCd_;MCth3F{)*ZW&VFWlOsr(_ry0o@=S)bfAl5meW_rxos*A4bH;%B82fX-e6#aM<
      j9T&052vYLRKwbHio5el>#fr~BUC*QTPC(trTHpKw#AN8%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNr+6g>~yI+znsR1^X61>B2Lh#zNAVjvoeBn}t+qA6R2nr=01hx{x}G$wxV
      z2l%6m=RR#pfsL?ceO~Up=bZb}zyE&!0kDeIB1RO<{a)WZ>U!p(?YSL0a{Znh!}fvG
      zwawivtEqRb*y;yG<Q3*W+lThi>9EvC!HDA(D%QpD8wzD72>jrs-RpQxpfF?k!M>&l
      zNwtx&(RVU%Lcbrhowr=QL-D__{l7kGn;pMvdZB4G#h7(spz+l0xzU<J{ldzsErt9G
      zzvGmU!$cXEFsYEMR9j<ExLQU5hQfs9_MA8U?w%9u*n6Hsi{-a%uVn|WoRiCZbl`>x
      zs~4<FT2U%5Fl8rF7)=^QiblmcZbTH=z3`JCbj_wtx-rnklJvc(Avu*cj@r%_X?R$~
      ztisJ~y_@U1skw-Gg(+b&UEh4Qof@RinoD7JAX}n@eiTpMVSb4!mT}*SvaM!7r8;~N
      zqytN36fw$BR_A2sTxEEq6kv*EWIiz>3X2Kh`I98fkIEQBi8y3Fi?bB7pAVz^5Lao_
      zm8qFN`^7Cw<*`D-9KYKfCS~HdgXFDOs?aBJHp}$8%+n@D_yDEaFO1jfKXK(dPa~M(
      zdt4)}A&=+GU>(<ZcO&-3b?)R>(kzN-(`1Y>>%3R;KZY{&#fF9uYH^4mI8eAn&>7wt
      zTyJAe3wy@1BytAiwFX&;jj0ZWJ6K47@8TYT_^IOo-;$-tRY(i9A6WdxO`Kq?YCEH<
      zkg9r!N)o(AZz+)><ykz=sibdrSb%q#(io{ELl<6%tEeSdSt0e)Lf#J)@)*m5gw#(9
      S`9L8bhX|3*ix5+%zVaV=9!dBB
      
      literal 0
      HcmV?d00001
      
      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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�YJTbq$Hbx@p<j(t;PUxn0G)RsT;=T$t$
      z_%*}0d47w}7?rgpj4uBAhX6uy4n21jAWNB!fp5{{zs<b(I!<B>buPQ53-KNP0`grf
      z$D8#0H&{Qs#hu^d>F?u0yv;QKL$<zugv;<_T*dFTco+Nd6WoHI;x_!8xc4*0$1jLN
      zzr@S<6<fOR;|KUPXW!?{Z`c<50Dr>oq=JpF>G*>j$MNy_qcpI?wE!P#8-g!uksda$
      z`Z(UgR#b>>rkIpVg3YF3c9(9FO1X#M``J2rjD~z#W=KY6$|#@hhh>($CbQ*DsgrkD
      zQokql@&Q{pzn8hL5;?^+UFNxFN`vcUX>v76vuhc@%caG2w#;{R$^uufEOc#?MXsIF
      z=1R$8*KYB-u9nkWH;CVLmz=K1K$&N2q-T+VBgG#gk?U?b*F+*6eT*Z*9!FiWjwoN{
      z+NUoh=7_njUHWPwVzjwJ(!+gjtaWXWUXDCi=jtT#eUtUxg>cIzj=a=(qnsyw9PLB7
      zY?kwx)E<`KA}RgwN&?N)Q$JUpW?%LKCggHqJj=)BLKrfNx8)+vO_8tT6}gzB3V97r
      z$yRckDsSQu32;;?@9@W{Z5&OL_i(cWIjVA%unQTY%+;=$xQM-g?Wl2`j2_v6U8r>}
      z#~CufebXs%i$s{CXF&A9n2(OQp7+-b*<?npL^T1}IjuP(am#0?>W4l%D#>C;J}|SJ
      ztb#{6DDP@amo=!9v#F6z6Q`Rj%2{imDQgWhWv#)HWew4H<pk-zL7S9Nx*k(H3s;JL
      z#U`$_WPwTl-aR728M*X1xr`7~2woU@)-7h&jmlNdTQuo&gPQb8H*K<kKg0J>XT4ZT
      z3;Q`<A)B#=Hrz=2Y0f^?k|=kp9=S%YHM3ohe1bOAjMl@L-ANxau-3FcD+zrCPq<&m
      z)_#ps&nn?{P6^E%NUw0y3#!E`=PljV<fN#{Nl}xNqQ;g&^nE>ncfXzd6%whPY|58U
      zI#a&IIzrYv`F}<XnhLPW!Rj3AYPpH7rs=*~Zsv&TUZ3d`7#2?Va_fY2FG=!C)7^KQ
      z{H!OGBi++b7C-)kG{%Jhs_&uKIiv5%_07-8ZR_S|<o0g<bC<uk<p}DTe3-O-ym2!D
      z{<Hp)DnE0qkX(s8Q!V%V2--}6?yty$&v4UOnvOot%0QkRE4nRzxr`?+r_Wr$_`DLc
      z<ZAx^PS>E7p0G&v;dHqUXNgsqudu|)scXG_(G<S~=bEVFqW`TiE0`h{Z)cj3QB1@)
      Q%xEd0GQY&@xa6t-1_5qhFaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>YflqF6g>mm7V3%>l$U_`K>83?d?LjMPem(6K@$98mUbvhmfdFEV*iSMHt~xe
      z)JQR!_yhb=#xuJcz=Ed9?47yyo^$S<JN@<h`%eI4c#=Sq!0ED6HELV7QLC8#hB4)o
      z=4ur$0ZpL&Z<jh3Xtp<A3!Ew(_T}mHlruhQIhKD{AeTNW?5MNMihwrbmShsm&~>!n
      zIMLFXl~xFx&=EsiStoTQ5a&t3a^zxlYfXB~=9(?3wcr*_d&TrDwT})pf5W1lt_H@a
      zM(S;m+ooMLeFCJ@1=lMZZ>|-MlDlOrQcHeeAye2iw@t$~owD(CZBrKgyi(YsqZ3_8
      zDmtU15B)@XwdT6EG#!EABajZmWL~!7EY2k`$g=iHrb84R=W#(GHa}HZniJ?akRL_l
      zRr-*QODaxVe*S`CiK6THvgQZvXe@^PthnrkSWuTJDO9uNdJwx$AJs@^&nj=w87tbZ
      z6Sn72RHmV?YCwYaT-9OVifYewb(O6GNl&gzPdY_O1q11zoLVq;j=3dYSInX`o-NYM
      zXI`oXkL$RBn-scja^}wbC!VeM-6h|%oHEBUeelA<(|iIP#jbtz;qi3UvP;rS;tq7R
      zOzD`$42RdORHRc97ztJWb@zwSBba;(*#Fp|>68W)+5?65umL2}^KTH9`AA0|lkC`%
      zTlI=^-cr-8M<Y9`s^HUQWB7!dkWvqWR!Th!eq;2o-&~X2tujKzoyhLuST?tVw(R8{
      zq(1Yg3GH0lp>e&%^){0x&_?PGo(zU*IEB;P5g?!ufu)F=NWl4zXx=klk&kD;qAl0g
      zUq|<Zmg~{Jq4ymUUoh~Aj#T7`<$7XtyhZC5T>OBzax*v7(@7rS9(3F%^E7%eiy_Pf
      zn(l@idz!{Ej5HOH7a3%UpsXA%{(;~!e<Rd2#N1I@sxchNNO6IC72o{>Vl_}*$5<ee
      z-(6hWR}>Ez9t8?I!<;<@-Bd6_zfhwZAulpUA@@e8x85NY0n>~%f7CwG8&(@)KRtlm
      zyNBJ&8<_~OISdi@L*}V^2Y%qr>MrgniaPGM&(<-oIB3_g(5QVmz}Lgf2w&iFprY^x
      DMc+J_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TW?fV6#n+yJB(#01*fH@fEVTh42URLg-$yK2Zt6q?bMd*>GX6uW#*h=dZyIG
      zhz}&j7cYsX2x^R%kQhub%GA(A9!-4rC-~rl2@jf>7%$&G=ad;*;3RwYT6?ek?X|wO
      z)}EjLz5OGAJ-Fb7L!cwCRpaxeVtl@=7}N1YrC>~#RHKmVpD$Oua0#^BZz0zOoQY&o
      zK%@j7>(jMaL(z<^Qmm>@LPNlp8R;D!O7sm&T~I$Zk{(VSPmf8Rw|bJPY%19=H7B)W
      zgUONfpwxJuvp78~(3)O-Z8tY7a?_!gdFsW2Rxl0<><B-|_Caf@NLIkrr%$SWIMEis
      z2DB419LYA(>5c%_p+!oY16XfKTLNf>$BS(O+h&wGC0<mtd^}Yws(GcDsN}09RWthM
      zb86Wr=$ao}(I&7qUC`8lYH32P3@Z~wl^mw^oKnmxm4ejmMVB#MU@)6kczS;d7_(2E
      zBejY_oNzd;SMu?Tdvozgy%Zl{B;Bc0BwcrHaAHQy8Qn6zSO8%}{ETO30J{(u@SfF7
      zuLQO~0BAKzB<aN-fnXgzsaF|*AG@(vviB_M3@0O5&zsDh{5+TbvW5Td+QOxKg1zNM
      zk3d%)(`GYcFvJEb4@oM$IbAc<dBdb|W#mj<Sto<eqN>r6qB>>T)sby71l*NEewv$(
      zA`JyA*HNM1&J}gdVs+J-$cn7UvNu^B3?PkTlGPKEfsF$GiaMoMR4u2<Y=%u5=gpqd
      zl#)7IR&r|m!~n(a$hgeQNB~2~(Cs;eowVr@_RPJZXN*cg%d;cGjd`|KyS+Fmu(9sF
      zwcJ~sqDOv=qfP#t3E(Wwv162SS=A=Zj;SB9Nm>nVp)lxiOh|+roelRr)XoP|>6|Rg
      z$pd+LV0y((w$G11m?1(*pOgs20A9ry^@-|~K&YWO8)Ia9_%nL7l2Z>CWTUOWzk7Dc
      zFj=gGVKw>?f*T%cUTO|gZ)(u}++Wk62dF>Rpf^)r+n@&#lrILcg7UpEXTBDk-5jh9
      z-t;)7uXvY>b0WHkP&9T6o1!~zp|kUAu0=THC-=9m9MR5O=(>(IOV~QLh$rrRO9Ka<
      z<nJ~*4;<vN9yB3=X7n=56!zgL_On2HFo36M5w$MH)7VapE|?ArQ<5$_Oi4QJq_cc3
      zESJUaT=Dbi?u>qqO|g#78lo?_D0kYjJJ#m<0Xq(OVr_0Y`?%L7<Kg$4HJLX{U-xhv
      z<amYS+7fn;g*+i&ZV}JiTvqap%6X}Te9a3VArSJlV&B45JQwm<y2sL+<;hk&Uq9D;
      z<zqCp;=py#q`STz^67Ovzl41#+Dr9Q4@aA|j1Dm$i8~C)O2-u1C=Vfk3~OWrTaYE0
      zqd3k&K8;hD!5Lh{IlP4lEMO9!V;bL}fbY0dqkJ1B`~)4p-~xWdEbh|!Z_M+b^EKhZ
      zMd8EiVgueVQ#vG5FFKb~N~srpOq*OwGHpyLrG7J|0kIB;afGP|2{&G*<fd=`uuzV2
      zKa4+_l%vEG@=dc+PoLdpS#&HxjG5`LVZcniHFquI_|1Ef%WeWLo1Sg7&MkX}4tjQk
      z`$E2VHu?Z<WYM+T$ir6=w81I5oi|)JR$#x~fZcu%yPXV=n%I0LZ0tX5?8{3SXMRql
      zWAc(3PLIZdTWU~7sV*03hPTL1_MI%!T^##4dO6auU`(1{M>rPTX-S)7!Kfv*##$z8
      znBuNK)>4p?jV^CvqwuyG&es|0<?8^vLzdrV^S#IVcpp9ZfXsYI?iX+ZS1^pLIEibl
      ol24%GQ&z-htcEWzhc9u7?}uz<i`~mM1FQ(vjAk;RbJv0L|8%Gb)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxYje{^6g?X|u`SfZb;2W%;J%S;Ky7)n#XO2b3~5CuNpJ^-8AegIMvNkP6dC+i
      z`V0D{A6lk$+A`DW=l-Zp&q|78?0ClZYWLoA&OP_8{{8Q-zX5!Pb^%iY%blQS^>=-%
      z-*w{WRx=EJ=>)A_;Kp7U6p$CFydARI??wVSC+Y|+*pp`sftl-G;Keru<_-IW^U|?;
      zvFBU1w--0ewm^O*+>ys{4DS@63(US9qGJ|wB<RRk;JC47rVzdpbgT#4FQgkcGzh$_
      zqkxLQN#iIDie}FC0=eGX-Imdov+YY(Vu!Bdx1GpS&)H@^e(voFRL5Y(oM2UXmdwEN
      zcu5*^IIYy2p=!fym#A)8$24XHit?r7_nesIhGB<M$9i?iwRXZ?Yn>i6){d?&hxc`y
      zMOD@Lp^lI6F_E5ar@aw4cLdU;N#>Ih&cQ6epjnB<iG^8RI%=r1rmc-ftL)QAdKS=7
      z*%x$NRAJMt+x8~o3T_z0vd_lQ%JE`YeK({*VvQ?b2K;65D)f*&YakI_KMYb=CQi+<
      zR;Y<%&vW=n$5nhGphfZr8Ogwvq&u6=SU;KKz}c01UB{Ky!*wnj<`b27L&r6+gVe*(
      zJ(K7;I-Wkq;bt6pftqe(boSESMgc1vx<k$BcC+XCJ2EPQCKa<r85)|ns|Mqq8srfd
      zGAOgHBEHe_Eo@#Ir`wgmj=+V{(9Ez&AsJ(%h;>?SDx~ie(!();1Fi}B0|1q|spD(h
      zrm>r0FLGteQ@3Ryn}max!9`UxKIKg2_yXZYP$SNj`W8^+PKm3#Je}hIT&<q_6WSF1
      zL2e)AU%54fdH!n2ag(=v1q*yWk%r?qSL!o|lQ=~%1zO2KTZ~blT5TVTwfgT^I>ehz
      z<g6l3>JsjaU}{55Es;u})UC=ed(4<7X0`Skmg-B(1H5-FUti4sfe(H}=`}w22{W&8
      z{uhRf3b&!-enN6NO&^j}VI}SmlCRg#6Twwn;ws0Sd0fU7QVKP~nS?uhR%MmnKs-)l
      z4Dcn*I^>*TB(O13RC&l(Cf^mF3pLys;tk>{#8QTK{pX?l6zcmCsL~LsgqygPKyeH*
      rs1?dq<cn|6d|bJ+kCwt5V6Ae0fCmF?jH`T_K<jBz1}(6a2zc~AzU5b5
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxVRI8z6g{s=yUDV&F{DDJ1tSW(iLfXtLP`ai2CJc1i_!AM*>0a<neA?7yTSYc
      z|BWAXMq9Kq4xjx|j_2)e(~vYX*}Q%CzH`qx_rCo5-{1cL_z2H5ObIM?gT6i3^X);;
      ziJ#l6((}Eb+v*2y?1h1byg>QQl(j)G6397GSD@0Kj5P#imc77>R|L+P?HA5V$L`0T
      zZ@0buxM6h!@~h#lJcBbhtHBVMeKW<tEaq6CD`SCqbKOcId?)DIPj+5NH*V+<c*}r>
      zvcP%sG!ClFT-yueMt^TdMo*m`Us6dsbRECrM4o!jHuLdwZ(rc@7|fUxRF$V>CYHt}
      z>B!+7#pWVen^vbtc1s4PF(XirFCD+{#4K)_?J(-vKi_ig-Ehy|pa+fh)79lrHE;=+
      zmCh>$-p2<5+K)jZMc~>gK$9L>O%2z`HZeCbuNn5KT8D+YhT5_3N$4?qZ{R~*r%IP2
      zz#p?|HFaEtt(4tNH)yKnhCwU`Yz@sEmqY!%kQRw`u6!BrN%<=EghkduCNV6U0@JP^
      z2B|+2S=Lxn)a<eQIovaF7wm~1$)98-16Q)_rF7Z`$vg+np4{&_uCzBdxNKO@)VT)+
      zR`5l_i$i=d;dOdGdl!dWam3reIX6eAFx_ovc*OBL;hb(i?0f#Mj0&I!1?43HOdTzJ
      zt&D7|ksfg)gR(j*W5d7`e8cPG^m;Pb6}Uc{ni)4qB&*mc;9ELsDWs<g>ANw2<60Bt
      zj{(%l?+rAuMq{_ae&ouQr|wN<>@wU?qH&Ycnd4sxhfEDSSL&;wz?~vjj~Jce?_8~(
      z`wRLMUL$vi((l}w!Z|+mB;4SAUq*%RZ>Q;)=SqF%a2^*3ra;RXXp1=tRIeRkp;rGB
      zizj%q37r+>ai0Vpj9}_ROg*7WpVa-zFn{3*jhNNiA6Tp}E*;?AyZQP;{uSQ4Gkt`s
      z+ZU!^!92u`-<XtAPfM-Apk);*RrFU9{ncTqD*t3ZPUu&03!fyktN4_w9M8?;Gu&q3
      z3eMtl+#xNYMmnR^WJJj<9YJg-v<|RL^G+DdB*^U%k)>hf5-Z<kT&Q8s5bqIBAr>>V
      z`@aswq)?k9P{kos5f8DNKyfTGs8tG3U0FCnYrFjAA-+<W2Y6iGJiyigI^!%m3AB+O
      M%Af^)NC<5I5BjZGGXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxTT@$A7+pI#Av7FX1VWpZn^I~n&<NDp5{fOi8V%`%nn=~wLvjd*CMTKXq@vIL
      z6Z+tcPt0^Wqt0j$nQ?sf%_pCI^H*5cKIa4yU@}Se<@>(9*80}ofByH|?*OJ?`r#26
      zESUB9PN^8*sc6<#e6eiiG;5`9<}9Pk2t}Z`Jz{yMQWa3NYN003liJpvYw@~e6yqtQ
      zW+enV<_y!Y<^}q~$2TJxCN7rqdH`N@sqjM;@P;FqGY~kd!iNrlb1B2r)AiDZUVWr(
      z6m<efm2+A#qg4$#cNZ0F%OHT^R6DwM{Djk~Ki7(N&0?K!I909|;$P0>;`wqZo+gk)
      zG8u7D7B#aFzqhfi=d6Su0|Em!GkbZ>sv2ftp}x7PR|5#5s|z7q^5Y^=xARvqh#?+o
      zSb9~n$`ooK>>glilyuh<T^PZeevFdcQHAENinlOEsZ4#x66kMMXoV;h99PkY{s6Um
      zTSXWV0sqsQ4OQUADO^tyZRPHeOh|q)6%&|bE44~RH}e7$ZYx{VNSw@d1hT2cRlI{K
      z0@~7QX`2Px{8-kWQE?6LQX;GDoOqm|i-WnjvT515G{Et`(KnSc`!A9l6?K!p8}&_r
      z3oRs_N-ipf8a%4Sl1;T~5-;5>H`~1=oh~<NAZfxQKe#p#@a2kS({a{`-N<Rxq;XbM
      z+{FiMZ_W6cxfCYp$A`QxM@G0)t!iJ%`xHPDDS1&=86QqYGP1xu75DLgnFXEp2y*!(
      zHtCNw6^mGs86T_2AS-$1+09^UH(f5WIRfkQs7~^dw|iP3P}OO9-OTCosyS&p_G@8k
      zCB0VBa(ethn!|+5_u`3)Pw|;88LfZGhIM*;CpMf8^R)>}U*zS{l%oxt>xD>0Miitg
      zw^%m3*h;vq%Q9|T#yvY`+9u5wrP>n7b*)^l=JXXqJ~@5u@5oiz8akTH_;m8wlTQ^#
      zK7J_}SI%&>0uMhxAiBqI>=$(Z#F+=@_<PpQya@#f#?G+<FyKVv4fJxxJi985DzCL$
      z^Dky}axZy+;QAiU&nnTM(Y=og0<*qdjE8*t7#8>g-r0^&M{IDYfy=Z0kP-{|f5nvs
      zqFEVnRp8s#e}|L?rhjBH2huR11Gfq14$jjlV_3o@mT{BwMOsuseCQm02r-H4c#qHs
      z2saoh=_WDDk(YIDliVBu_aly5m?xbvl6;@*9jvUf?gGyg(v>c~m&}tQE;+201#TT6
      zxjwjukJ8@j$}UDG<xWu9N7^G<#u|9Ik4GM4UnnA|41WLmp96^X$vu2>#O$KooD>CJ
      zrIcx2fcu!{e}a4@t831ghpd*!YJrFXWFonEm^FpRtl}m9adMH36Vlr*?j6QRD?|^w
      zvAT=kM6(w}`S~~SDX+L<YyYqJ6{8*92kg_c=*BvRSaSqfzTQu4WTQ^iLu64r#TPcR
      zVOvoT$9z6r6hAOpVcomZ9KG5ea;YO7z4N;m9r_M|SkFWQo7tG$8nSh4z{tMviXo|9
      ztS4gcwprtf?dKc?$+MX{1uPJ%fy;P?8O{?ZQ83en9CaYLkOPD%O~BWbk&c*63B6n`
      I+A@^>2ik?xGXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&YflqF6g|@ig}MkLF9lzyu%*%k5d_Oi%EM|YB3gx*m~A_hCGBpr-D3X=-~0i7
      zz(k9Y#Kic`A7#9=yFgnoO=oB3-h1vjckcc3_s35FW7rJ9!_b}6%Sxq?S1Lu-+ErqP
      zUb0l(3c$zEQEywW6io*IzM3y{GA8!aeO1Y;dQMqS@9~TkWoVkwbj_M$=#tNyLn#Jd
      z%*gT}ytpJG0ExjXhf*zIxGcesCWf|zrt@UEkmlxVHJ!H;85uR7QcX>q-AkXftCbjf
      z6ZI5N=o6J@E{LiYA;@yVFmuYs@r;r+3QCeFMC0+$d4>#ujG<e+VhMfcVu)?gpsXxT
      zyFAya7@54GI~mSZBh<i6lrI`2sW*i5W`>~2ceu&*3@6N+PQfbnTj*+mmx^kJD;r7L
      zMnl__a9^eB_t~T`_9D%ev1yr_o@3~gYxOy|l>I)20vKdyZ=@?>0Cxij)tQ{IAY_Ck
      zJirLmN7J*svc5wvDaS+c02GFvGb|@yv8?5@+!S$R5*}il;_R*wab0rkLS_+6h`LNR
      z^p49slnNq(DGAefLT#oNi(Jn#jMTQ-iEGWf*6|_v5zGjPS%&_LXt=~}N2=38T``u7
      zGWB0G78yK|Q6X+g!ZKDwtLfR&Tg}@25BF{1{7ga|&xt!VPENQ|=f{O1Az=+khL%z}
      zU2<QqTdwa<R~iMG-0scBl2gM6H;uBH;VYULn%0v^hzL)bb_%7bCqZJ&Xy>Orbs?=S
      zbXtLjen4>ei2mVkX#GMb587zGY)4MQhbi)%CIq0{@x~Q&(23$~RGJK2MW>6oMqeM<
      z{KH?-dPo}wu8FRJSsP~9aX5wXql=)0-H#sh+DZJlMmsOvUPm9Tg6;yH1zqVFY)il&
      zp}#T1VhvI0G=oGL1Opm4+;Y(-=_}AY-p^vSMLR54YcM>g7#`fl9UFs2#>MzeN(6=>
      z*i>;ZA-=yLA7DP*K2*i9=M(ym5!q@V`i{{fJPKFwSQw&J%pKZ>ff~brYj9BJ56~O#
      zcv?m50BvC}g|7OuRlG=q&qNQ}g-OthuF;#UqaPcXz#Am-j(*!v@g4<ys1anif|`*d
      N|ChF)4Z8rZ{s9<tOFIAn
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)TUQ%p6y0BL6Vee<C@rCd;su=~v}0Q@l@t^Z+SEwoQj~hBL-IA9t}v68OfbL2
      z7ax7;gLc`VcIoojALVj?Gt&^#^nuKooOAZsXP<MzzyJODH-Kx98X^L-HK%QM4(n#8
      zVR?_tHP`Vh+i7jIor-6>j)s`P`01GSPNOLhvzoPQ0_RFEI}3sLx<KNV?bzP3z=TnH
      zY#mu<+q3It$!>Xt>>i`m+^ReS9itjv6Bs=mqGJqcfoM&70+U8D8$i@8r)HK99?ObX
      zNP+BhBrze7H-=Fe_MIv{R<a$r**-jw&0XuDE{RieD^`8aYTD{O{4(Y}vReXk12BU!
      zg&i|8J=kXoQCw6MFR>LPyEj70vpV8PC~HoKhJ-*;9$EFa<&lSBl-y>`{NYB$th$Hh
      zCM7Bqhc_R^TRL9H8%l<^b-V*ZKzq>gnzmCDxH$yqWeNLL-SIQ2Y7Pq;^6bW+h_86y
      z({Tk?S;Tg#vQvJj=F$fl=4Xo|co)|-a6itTAgsD>U0RNg8+ebi-`&2q&c*0U4+9D+
      z`vV;xs<8ORN@<62T7{b_JKO}$X;2<2+i)qqDAKA+hv<}()yMnL!<7kq+|5X9ARuI~
      zJaoq^b=L{TaneGFksVkEbrDo8iVYoW_*5X(ln-T7Iu%J)vw=h%|I8fgP_`OYMVeci
      zGz;1LD(|k2+qgsWM;1@(qR)DGJXghY1ExGaW61P0d?9e*gmVzQ+P3Re*-T<vU_@!D
      zuG~nWj9s;y_g*o{Jr(h#j<2xKYqlB<=~M--^bftK$ty}0lK7gVSx`vdDx~iQ0A6fO
      z->gn?CcyUu$SQyX9iL;90`Iu(W<_q;>T)Ls&+)3F!X=`h{Hco|t<H^BS{)mo>Msd(
      ze<@m9h%pAp<nqx!a3+F(5Y5M4SjRZ~E1eOX<7dhbEMN+^Fv<7xK_Z_Q_(lkNGK5v|
      z6CwOQV-$_C+%cwe`Dd8PEj+{J6VP$i2bTHy2|2A`6stb?T#(iSAM?9V;A4It5f<R_
      zhh_d^ev-bW+;5o4Uz+LS&BYk)%b^|5XJWr&eld~H#MM*FBr;kT*~m{Ac?$DqB%b2^
      zUkDI%dY;9A4gNOYW>0r8hawEz^@(i<g?hx6a1$T-T`yq~1z(dTDpX(tI{(uw`OQsX
      z9v{<+6KjU8u5b(n@m6VR%;w>Qt&|v}1~T;=V&8A4i*>&hJ~@vQmI=RVxo;LzJyug>
      zwM@TIrxhY^5?3Klhp5FLkq&`r#-mSSPkIUj*t>n$(>?5Ie1?*b&20>^%j{MSXZ|_L
      o`{P^3*il8g*c-p!#W$*ovLDdy!WwL0-!G#F0AU${ichBcKZsqQumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxZFAE`7~G4UC|1<On75`$a7$?`I|Tuuv_+5tPD~AMcnM@C{iY~~5u->RMFLO%
      zK>tiXv@@+UG&3DO_eXWQCkfke;u%Y)yXSWI*<0z~|Nj05z%@MAFd?we2@<Qf=Uct5
      z6Th+=VG_j6ByeLd3^Wu4Dn|>}d)-K&;6xpPGwtJRw!qYFFYw}3fzxLDwe!ZYlGyXD
      zwznVKwJm{SBixlUn88OH41w9BB?e|OM}m%w1<snSS_a`eLC1Q$^IE#GtwZ3H0Sy&_
      z^X5q!6wO@Q3*<(!w<DwH&W<nHNjr2Mf6IwH^_))@<5%9kz|t7Z5g*u7kqxt~Jl>Fw
      z0zOe%7O2^*ZI!5P$-pG01g7O1$4{J?)TY@EqmK1<#kF?BJ!^vw*sYU$E8sH&7f{vk
      zIr&m^(&pE~gsL@sLEnd#HA3H~Cp@efT*6ldOw_1$-}{BE6x7mj5z9*8*PJ%jlrx$e
      z2C?kXUpg|bio3cYI~6UCd>Qb{E>!7IN`4Lkldc~IS$oG;Yh#Y8;PB`Q_}0J;d?TPo
      z@}-Pq;7Zb6$fD9qqZl}Qa=+`i(t5hVp<Vk~?XwMhhwoE8OyEMQ=j3`?ABUT9<OM3E
      z=4gbnSzE(BW@o55o4%iT{;rIs(O`&O^(L4)?qXfp*Hmd7@gN7PZK;YM4Ycr(o1AV}
      z2D<{6M@w_Nj?2jT>}j-VcugT~D5S?@03W!H(SHC?JD(a@#SgS~GfW~^HoY|RM{;~c
      zHH@o_Xn|h<rc33NBlXuX&6yHM54bwP`&@mw@DBO}-lK4U@*kX<z-eCfblK*MdK+i>
      zd@d`;S&r0i4(IVP!4zmE2W_%Of$H@G%-5Iy!r~BbHkGrABD*Nz-Uy~Xz|>QzbV<D$
      zIcCBglf<mn|HR_*;!+=<-YOpA;`V&;Jubb&mjb^Yp#D2cMuo4#Kr<z|k!>H4RB;(s
      zQsGrt^hpV>@=JM@0u8o)9V?_1D!#ddH9o7V@*%`_Dx;5^G;7E?mEt`bX{tQnE0b@9
      z>p}%PN4!Hkg;>hbZv8fppFuqtfhrB4N<51@DHKDHLp3N{ox=Pf?rvA^A7D*k_VJ+d
      ZsE?oecrvc?MG9?Xn{sG@XQ_bA{{cT`L)!oV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3-A)rh7(KIHx=^Z>@>8pbXfU*Z45%?mi8mM%lT9&!a6jE{%8=b1vg|5P;5+aR
      z+<0Z+!sx9JWjwQ#n6x)u%=dS`?|eV=`_J_c0NYsh;0Qb$B)L3~BYA$RvSaz)1bG}L
      z*?!s&(>)WPs#Ikr_23HJJ5isNj8rm^`@NGe$UKw<=89;Z=}7*|7bx%QL}%{=O0D*h
      zfV*e<VFe{jSK(n&pyul&?B;PVOb=Br3I*!E2~>2XQf>WV(9MqZnZT<5Ut@Lzyr3AG
      ze5);gbl}c-r2WyuEO#^MKz?}{$i9hXm$Oczj`=DU&=6=0Id6~i$(-p-n?zu~<&PG2
      z+6MxT*|rOf^|#0iill(YN-aXTa$xc_2tR0hmc`qyBVV#<$?*idFy92f)S>2WDW~X3
      zYC%1*_8paP1ze>p7r`yup<TU6z+Ken@d%iqw8dXZW+_+Jf1!SXrHw*0)_<bj-JsZU
      zpEunr%sIF$T{6!h7kDgN^O}5bFpIZnVh2yLTl9K$!#C_jX51%k2VB7eS`I5}c!))=
      Q)8q_~Xt~6f3iii;0eR+_vj6}9
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ=%Wl&^6g`uqaUO2m(xy;aN@)w^0X39m5E4X1iexp5pr8r_a-6}L$gv|oAn+%A
      z0UH)Yf>r_vl`S8IxMQpmg^I;^=FUCm%$a+~KYxAw4&W~K6r>n7Y&X&;BS)W%&2XUa
      zPsaX^{2X|F-r=Ew48y|Ed~NEE>Dqd`H{=%WW*L?}-`3yUv-G|<(k0vwLCBDC;;C%J
      zq$m`Q{?PZ$w=&yc$le#O2p=%4R;Cb5&v8gscy6QGC5<M@6_CcfiabgT=}NV$V1Z%j
      z9MwD+E~rqDD?r1tq!bu5L%94P8uhsU#OyhoFotKDPS^B>jFZhwI1mBDrt$wekn@6d
      zW|Cp$eDe%>n}-H>?QjsgZb?fUDz0Lkt`&%P<Rc?OK4K_WT2*7Vh7F0|R<VQY#3!u;
      zH`{@Rf}7NsS-OHML**|xu6)bw^GQ1j+pivZk=qaUCl(*eS~JWEnPXrrx?jhOe2YI8
      zvQ~Nd26m+ogW7Uk?l&DX2za324ps8sVlfn_o((psCutgUG*YrP^yJbss5P`xq?L^f
      zWq|G43Do)zXzx*~)lZ>)!QuyKwQtZ4>nB*E@DssODARX^1c5`MJ|mIm6u-b0UeYXc
      zu^cYq5=A78Ra~aS7}l_!9J&|BK(6)~i^sU~k#K*Mvy=g>SV@i7xkQN`2d*Xj4x!~K
      zn&ht?W9t+*j-Ilkm{5d@N+MT^Z#$$N2lH^J3~FZvHPlciW(v1r8@I7bv#bw;PCsbw
      EH$oW2JOBUy
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95It+Vi4y{)X(^Y`atFH-7=+XpSBQ%eDUuab1yzE#jk`@<IlGZ#2Y(a~
      zz)K~N_y9f%G3!`q5+okHGdpwU%-I?L{`2D(fERG9Fc?}xnR)pr_VO`LPrVM0C!&+d
      zFpZR~!eVGH1KRmGVW=ELGD=@Dn2vkIV7*hvq7D<a2G&qvSPvp8df8|ok`H_k3!({B
      z$m1iPMEYI^t@JdSFzf`&J(fiH47Ql^IO8eNI8LCFq4)V^=pCz(*Q36Ex9bLHe9FC;
      z%c1vva3;dkuVDk5RWunkE^=>`iUpSqY~dQiTIWsBZ!>HzRF?>9S`C#<MV=PYS6kA<
      z$BLA*E_tz#L>9(M&IDfcE48>Q@6$8%>tLv9@_*nA^+cSAM95H3k6ovL<i(aGABoAB
      zhr&DTk?XskNWhfSN?QLx(Fjx3Pm@Rv8Md6oam}K>jmPxl6TN-MB>{bvC86j<#p;&!
      z@l5N*b5d{8Zv@)6{wj2@lIM|SI<j{T`x`k1>U8QfsOS=%jTwOKWx6q3!8)C~I3R10
      zwZ7x(SF($>`$g^EEML|V65F_5@L9Nln^d7=x5zUo+QRLU`G7JyXa5BIc#fS_cE4cX
      zo?+(fHnHy#1H&EMEt&SoY9_<{vZC<y0*5i@FmMm|3yuePSaLiq?ts~Rv?`>%Fd}n4
      Jq9;Ww=P%v5x9b1^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZux(Q?~F6g?X|QLL(oaTD5*q+klIWYelpptMdy+c+)(HzlMP(icWiR978E@+flg
      z5AZiUzzjHr%rJfCqZrPv6vwgS8QZJ9ch5cN+`IbszrX(h@G+igm=IWOhh4k3AK1N)
      zlf1ASK@`P}Zs;a{6l%x|lujqC_d2ma&WYOsbItKsO<-!p5B+3S;DXtF>AZ66ZsG@a
      z(?3XRR!bni7VUZGa1Q4+7y>h=Qw+>tmIc~gA~0`mSSdu{gl+rD?n}>2YB~hoGN7R(
      zaM3)AgDf-K^h0m6yT9wjPo3SsqmpLiIzh{cefgYi=93rxfxz+z%qbtJDNn&nD~<}%
      zk;6NZ%OW|OR;xg6%LXPfB{1#1a)Pdtu(WA5qquGVe9N`>qJ4Xl4%9Zz)|Nxrz-7EE
      zRbDah0X`JaehQTkfoo>~jXPx3HC!WGWv#NV9(Ac%hlQ$!%CYMz^q74&@DZ*HOg@+G
      zr&_aa)pcBjEv4N|H|VM6Mq%Rh*co~`s)q)2B6=h?xC*?Gztk^NPiSNvWD>)o&Wdgj
      zg{eVfS=LBT<mj>aIovaF7i@|id(XYt3tf+8FQ>!SQ^OoO``$svaXou$lgpa*OrCpS
      zU=?2~UKF{gc%7Zk<|WZ~68oVXb8~nI)7_eeN1VPB&gu5Ut{?1q@igeclrq!Q(ZDy-
      z#-^O-Aulo@t0glw4LrfOJmhpbUbrW4eK<9<ZJb6{uQrYE=%*!-o=T+eM*xm%jg>zJ
      zkSBjIP{%rL-Hy7k>ot6JX-?gQ8&WWCax`;%hj7B=q;n;|8m75Z;OY^h6a1g8RC9kp
      zpTHaB4pID_TNAjzUtNW3yy`2M<MZ2TI_9~OpIKbQC4x!NQU=;!js(>!hghgo|HRS>
      z-i)HNiahR<z=I)7eSoPes&q+St_<@Rp3sO{uKa<e>e6x_@7>K;7xJ(1{+-DqT-~`e
      z`5NXSZv4iilzLif9R>}Xqf$wKRp~DeN|pI`{Y23(;}$+uw9EL6s~peG<8$0*;W?bg
      z7q~-OLXLArsm_R$Sv-Q+QMCG4p?N0^rWA5>NMvzPxyZ`585eTUGsJtulZb^3?f$O=
      zF)7s65L96RRlq~6DJTv_2DL^3vMUQmXzY}}I>gr!vyaE6tv<H<XpORLDQF`-ltByp
      Is0i%*4_&@h%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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}
      r<W#rJoK!{zUYL=3AeC&442%rSK>HaO7=bphGO&SI4D3LXiGc$E4?`zB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOTXz%J75<JTdt`Y^3|J0|ZEPqPU2N1q3#|>L;6S2OHU>L(OiIaE9?OEUq>M(!
      zCe5WSZJN+~NT`!QptN<`(w2}Q$MsrGvR0diKJ<aNJoc@>qVzj6ql+(Ob@fGaG-sc^
      zzy0lR?=%1S&tLuu;9-2Aphn=KRHhJ{nKEKCInA1k9W7*%Ryv#M)eJ*{S75{P{Ub9u
      zQ^05H`K&RmbGb8dMw`}Vs$4uZKu0A%CtSlG0dGc|(&^AX5Hqw)DmG}D=}b!QX=W-f
      z(CF+Hth5nJr1KVc>h`BIY3rcC{?PvzX|@0GFeCJ4$Mt$Vfb|L*1p*Rv%nsC>H4NQO
      zI<H~_`~v<XeFH<IrxWqPAwL9~R5TzUkof-*tjtRydLWU`=>3JMG2I-}#tfU9Y*I6Z
      zH8U;$yDz=gWSZ2pCYBeXM6fJWj~^biNR+Jto=|wWo~Spgs70Mzb*NC_ldG*N>ScmH
      zeOfaLn#Gu*P$FxlV(0cGW8>MWSU*|niO0iLBpw?(LwXov2SN&V3Ir<^mnF^Tw4@$8
      z-p{3qFd_nq^sXP95QsUHEvvTU+fmGl^F0md#4ZJ00_!RTl1fk!!<SgaeEK{=Gsk!X
      zcH_$m_6TgR;BiE}rUF%b1$)W5E8P-*0tc$gx)PAf#C`SMqu{Fo&1=`D0sGLcq6hm0
      z)VyvTGE;>qJ!7$)8(m^5QV$QyDjrnvMQl^>b(&NdIAogItfaw@M{rmcx|dvp;^ARQ
      z*bx;+@fcZ2=@ymE*Q={1?cyq)z&B{8jgL#a)mGt?4d}x$1^ohTpUbL*IUulYbsDR^
      z*5d?*6b!Pz?UbC>pUqqPl!_<8R`BR1M@hgrn$E@sI2J4p2VI+@?w-O)1)~BxJ{QrE
      znWUbRqf5op_$CXTbDU_&vqL5oDzM1~yCOh%Si!eA2rJl56f#zNN-ukq5S~$?VT`kZ
      zB=_n0yq2QJrcgE2?lkk`6vkzZXb`C;+1;-qXlT;Ro|C=aBSECtpcN2tPNkG)lr&QY
      zqaZEtV8zbydbp4_#&y$&v)qhl*nsKrjtO^|cW|m0-5q{Rf{ZsHv!ePgFsVR+oQh{<
      zqCP9@yqCu~87&kzjkR1(&rm&GYb3Us3l|k@IEkDe6PV&~NM<vZK0~E$SUq_tg<O{H
      zA>v#aI)T<cD_c^a#iniTsX;5wOly{)ODPMqR~=YmEXb?H9#b+J8TIf6VnJ6-S$W;j
      zQV@WX@O=kCxjr<nO&ZyZJW@@PJ4VB6MUb6;QN<7O%JTcsJ!9vW%I_u+wu#@=Cv;QK
      zBy~dHTn%gG@RIG^iC?IA4VTDG+R{zU%F;!1Nw@a+iM#JPec!+@6<j6=TVKm|Rm|Z{
      zPMwThyXDF+UlAU>t>UNnne=p3#XGphf=_Dse)|x|_DM25tr0?#(+0~zaG3s@;8tsU
      zf(iR^11<7rUTX1OfzE1nOA@YXu2N&j!&Kl6{9YdX1Emz|T}!HEyFW_1KdlH*F5lYd
      z>;O3?H&)=ax9NT`SiQk)!A$B$)AGV!U%G|lExt>7=64yL@cYbzMtOg8)hKUo`^meT
      z&pKK(K;`cj_%8vkZSRjnJ8xs%0ye(Kw>4<yub)rg5bylMc#x|O#}b<m<UhGDBM5sX
      zW7OE51FmO-|GnI6iY(xvNc0ZcBAs{89_hM+EtMF}^Z`6d%cG3*7}nu&Y((6S7je#)
      z<29AzHQ6~ybWQS$gt&yf_ngS$L)ytq??ygA+oyP+kM<9-z1z#hmPJGb_SVX+pf^yv
      zh=)Dst_#+Eii^RzPvDuucKO^lhxNg_kFn1=^R*htf1YS-TM-9tE#Z;TK<xq!bt|5|
      zzIp7BRsr849<2eby6b~Vu->s<#N#y>x!@B4U!eB-z0ZPmL1ht%8r<sk1%0=1yoiw{
      zoEi=KiZ~tgEg<>P5++8MFgd#6%mR!^5!oWlBBmE`?jvS+30H8HH;PlEVFZ|IANe@O
      zN)Mm~#}VO$8RN~k4<o$qN4fhne@|l^&)^Kka2`p#%Jn6r=qZhBIE!~-V1bkSZ!qys
      zK4rag)CpNE^M4mJm?Z-F?mV8e)o~Z!=1Qt<9?#<iR;&eY<3+x!C5|8CC47e(8OI>L
      z%bM_#LKnWrT^~I(;sU<U`dwqRAK+!a6LN;}S1R)}dXU;URj%3rNqZ|<@AvHW&ZE7{
      zX5Cw2JzB)8F56xa@U~vR_b(c>b$g?qVD}vAqaR~;w|5C*G$@tO-bJzBVgQH89RvcL
      zBgh#FaF!B(j$eqg{Q7#HE${+m`4ak>ge2x5QzEc3F{gOuM}+NXnv#whdU%4#OJO!+
      zyPdF?URv=Jp7hd^GtNzOhSsuSBTkw>7wDTupmPzg3n?Wg_0}9}y*K&hiol!q{_VL*
      zYX`H_JTH^3SI~xwXeWsw#;7!Fq>M3w>&!x8+)O;bq6Z-_Y8S=di9t5&lS{ZUx`5v#
      zqLQH^emfFv3>ERa5eFSx=YZ$nJUZI0!XItylsnRLOPgJUB5sac@Q5}^eY7!b?-udr
      z3dy@{MZLyKU&4C4PH=BvD=uRvFNY}JBH>p^(`EMmJJhn&1&MKhxrz9w=397=u(x85
      QOZGOGVmSqF+vL3eUkmG}hX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZux+j84f6kW$wVp|c3agw%4+fXPJU)qY&a;sA=b>i0Gq%8@7bQl;#J~-;gl1Gt?
      z`4ql@7am{+9NNw>edePW){%tmIDUw8E_<)F&f0tHpMRhK4d4d$Ge`-XYkNJj-*L@;
      z*9s5KMyuZQ?9lPO3^ak|leZ78FqDBOkhX%hz*6(%^=7{tR0U?&9nT3r7FaAcpIA>V
      zvllw9*>sM=YH3eEtNATChdI2Gfgvz|GQ_|<7D&*RA?b^aQVii*UfX<d@I=~SHG@|L
      z3a6=ckkUW~O9E$$)3ho2g{I@l?Ox|V2D{dQD+$%~ZOh%W0!QtWLoGaXjs#XGU`GD%
      zp&DIaOn&l}I?}kHgk0o9ilx0Ag}r8A2D1X0juqO6l4;AurXRG;A8*=b%kP-mbfsE)
      ztR8XMz?*nWAS<6*ZqEv-u{b5TG2NWES(uThHQ#k<8VfpyD<~N#qe2zV(PpO`{uJqZ
      z%)RY<q3qLgnlUMgL4m49;dCi<<Z)R^e%HWF++yVSPD@~YirUl3Nok|*7|Eos>8?+I
      zM1w0=s&1nV0yDPjd$ASK^Tu1EG*PCg6P37i10UhGfF8&nWFS3TIlmV7Wk2eB&+5pd
      zu4PN}(KeS+3G(>Vz#XuKNgW8BkHk-pXPH8OCkz}<O+<0LU*l8uYn=@_(i|V(?Ky5s
      z23g!Ei_<FV*u>|mX}*YBV=|nhqawBpY~ulE%<6WfN2{+TGj`IA$?Sxzn#Cg;TT)0n
      z3Tbx&AW?k!5&r|I%sm4&Y|zskzZclD?x-PJ7){1?#m)~5-^C9N=R<WqSDEN9%aa^e
      z_jsG)|AlfT{S0~vFOfe+;ddUTu*_dQx~}niuz@q&pNYe97U#HQB37_UFm^AN63{wh
      z6sTT4#`$vPPppmb<|8?EXt+-SjWJAph^a?X73L+po?w2<4E2!Jaz)bycw_78OI&$|
      zqQK9{q<?{?{mR>M&0EOQTc!C@oH@i_#Z_D*ZWaYxhsi9VMm=G2$TY*O#qu9mt6aD^
      zz&p3K%8K?EZu~Yuu>%9U5yh=IWk|7@P!I<1;r+;tMSQ?jnmHMKNLr1A9E*f@gL`FK
      z{sqK-L_I*2r5JI}G7{Jyvn)U4%ahOKy-)*_Al@OKLd+#-pNt%ep}re~$_=4%_zZU=
      wDE3zZRikW0zVZT_`-OYQXei79nuUi0d^x~ZlPc{9+K7`9Xo0T@k-|6s0ee+x?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)TUQfT7~O}2OcI8xP>q1Kw$fbCXsy-~wMB%AjVO1e6dl3<Lz9_wG6C%E(f`o5
      zzVXrr>uN)-Yjycl*XnQRPv~Qx+wL<nkPt%FN^&yioc-;+zf1o7_qX2xT*P+@ngmX+
      zndS6$A)nqZYR-B(tC?$KWi#g(mZ=~p&~<Qsbh~H^1T=e1pgVhbFC!4TW|)R^L*Q6E
      zyP<7r>9S+w(^;eBWD;`%!4YdkZ$S%M6{rGj2al*|LpuYk>5f28d_3Vn<Vh=iZ+Sz{
      zIhiN~I#np>5;z`j#6gB>&l;vaQ7$a&_Kdci*Qq3H<+S{qW*hRi|1jvR8zq6hI+$7;
      zC@Dz2Jk?RJCyD@0N-Dji98b(eNUdK*GeQDkeN)SqHHVSo@vLR9rME8S(koUWJwXF9
      z<Bg>S@Ro{GcvFgeTg5v#E1*0oIksWa@v9Ah4jWYK*|dAp_3T|0aU=*wZ>2tgfd+65
      zF1H|sa|#A&K)nnV=aCj@CFFh0)=fuhV`an>hZRRzbC(pnM;JHfZcaUZD&EIsffmQg
      zT3fn3qLqA*`hyg55g(|yiVp>%B}cQJ(!AlU%UY>1!dIPGh#-UO3a+tYs!%sAE3a#&
      ziW~Tdxt*Ds9c8iBT=x%T<n3V<H|4SBvEl4A&nY>}bo6ajC+n#`sjPyc#X=F|T;+9>
      zpDY4-v>M&7Vg{B59NhDHGg{8u4A`;{#DYx0eHD|KqDwSe+C1~5NS9c4(+XxNpq9;O
      zUN0~kVXzaz?Cv26*Mez0Q1K880xCg<9TvxOSym`3p~`U2y~B@4+H@04ewN95tnBJN
      zUs<BAm*mLED0n1r;^4d(U)h^9vX3+si}*Z>C3G^iw!W&fo^m?fJmm%1cE^;d74%Y3
      z%jxOK2`)2<1$lW@MGh;j-5gK7E~&=n>4#%^3Ke|82~y?nJ-t~r@+-O>MuBONw#B2^
      zfF--Uctn}a$rHAU5}2%zRxIi!xtwe0%@N@;VQezd35m2Vk)G569GMiKFFRucU#l==
      zBSojJvYpe%3_15YvlOxC^m!Q{7dTx4{1ad+%3;No;=aRt65;9-?l$qeJ(&u;K(q<3
      z5ZFb>PkhvbWBiP|+oK%TW9a7ZH@xHM;Yz;RaU3TICV{(r&@rBopwZ+mV#(Am=&Rzj
      zxpZzLh&v?kX$@v{A2aGwrAcx=`k4RlMwpn3$)C}e>g%uI^iVJr3;v2TL(R!l1p`B&
      z9dxE%ASsabAH+hhp`>2__qV$U?4TnSs^CJbnI9EgxuWza-y`xILpumP$H&iz@2Nh|
      ze=Xo1RNN=SN%UfhTxM_<vl!(1GUho`9+3Y$?y}FMGgBVFeHDus!7bOBMU2ut>Bu4t
      zAEN^j_cq3<shi(-h||m%!^m<KB4Rt=6K<+F$bAQ%5<#YNa0dgFd5<mn1A0=gFx@r#
      z0`pC{JNO5h2cP*CQ1)M<s_2Z%Zixtw(TZin*hc+Wp}(sbU@IoE?y5NL#n@Ldh|gRV
      zG4hf;o5+UU>vOtA1yWbXODsKfGgHCiT`X7QhIkSvxY%CpbnIhy(4lee3)#{>;&tLl
      z#E6fk|HvO+QamWT1}d@-6~P(>NGP_24>dw5GI;DIHXe56cVSA*3cl<rSFlyVSM@Bn
      QTxiw1<U<R5;}ZDxf5}}1-v9sr
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq+iuf95QhJa(<C*8rlAz*f%Czs1O_3&g(D<Hi4@5SDn*sb-Ns!~SI%zatV7;_
      zm*E1gB2kG4;Gqz+ww1a@LY8-DX2;+Bp4s1je*OaR98Mh-hRvZ&+}S8{XJf8UT%S*L
      zH<5u3m8_%6(7Jg3ZZ?h?YMoGq`Za^)v=14oZ`HA|VPSa%OQ<od`k@s4WHb=*M?Q!I
      zVSE+v=#a;u@$+C+pM(>JZU178q6UwlA*MV^xF(9@_$nT{UtR?6u^PF3D(m%nZU2-{
      zxf^jgbl(q7MWDSp))<=S;XRd5SsP7UH4@iJv$JQU*8?TBnCVnu8BPB;RwR)1$clty
      zSPCK~Ga={jyk@)f8>UsB4Tfa{|0kWnj>TsY3mFKiamz_lX6Y;>ABoAB2g2R&lj*fT
      zk$@?u&TsuEi&~}CfsR8tWLS5KZONiu0}p9<5zW|XQ~d*##DVCBW<YDju0J(u@r<-v
      zbX7ndGjEOjI$195%tUtQX#60f0-IKIZ0^-1T350J+AovGa0RQhnvXxAN)KS4p?S3P
      zb&l3|@`{94DPcFu$_bQ@YuHGsHm>6aePLoZ$+9TAiLIR9p%Zh~I0HMHW4lc6r1Xs}
      zXF+ceeTN7%2i(p{FKIWViuJ9e@J)eHSuiTNgS#o?9`5IiC#erutp{Zx-9n?RMWY_2
      Hr5^tU8z``Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxT~ixX7=8{3Y*@B{X{6TBFPmyUq-$-}+Mw1VX+tAOL6GW9X9>r2JIiinv#A*`
      z{UP3R<Au&Bv^wMT&KZA{<8yYGWFfgA?Ai04=j%Q1{`=pbe*?IIZ#9ewTxz*pv$yY<
      zy|xuRH5*>ja#pQ<S?jvZ!1i1XX@Ts?qUB!O7f4xtOCZ-6-m3~sEZVLed@69Z*m!0=
      zx6E!}J7&Y~1l7`(KzhmBlT(<&84ZTO^vMzf)0kmV$No{0r&y}1($@@RahB_r3<O>;
      z)=LqxW4SGJZTFdM22~y0F`!{i;9PN(G{rvCuwA*@-QSh|rnT#kBOChOvV2>u<Cp2+
      zsofE{atdZBBHB$e3zp8F_NpU=i%QR>(8ty!^<6PAjtPN`d~P{iD<FNb*zo+8`NPeo
      zx##Vhs|=@FAMNiN-qG+jT@E5!@*Ice*{qI%B1!_29oua=GVol1t8oL8F~!M+J=u^d
      zwiGG`-ojN43+(AAY!$6(;62<Bn0n%<d-BBPMG;sWp*|7BKwdT3v5ml|NM@%sJvWd&
      z_LN;XodRQPdrVf;`Q%9YNij858fr|M5*Tkfo*TtEv|BpWMRkWm--`x5#vK9Om)}cY
      zx=l&Ci&1F3a59w3PTOiqb6rhFwe(o!b=SZr;03214nscFGrFFw4!p=Nvn`GYA%mKL
      z5oWre*oq|$4|szIE~4Z2y0)_?{R~#vgG9NG`)H_Z_N5w(L^N^8r7cylX5cHVb2hDZ
      zTe^D!3(3-Wf`-+_q}2>I*oTrr`dT4zkWK&`a}CiS1E`bV7+As=OnbxY`b}B0)%48`
      zjnsAJoOg}!@>|8hQX|7B^`{}jH<NtY<n9>%&zCDNp$q(s*-GjqX2<XfsRMqvj*$C}
      z`(rrAUp=h7i#$HZ8(hytXK@~HazzyG%oABL%*6~f)+h$Oe1r?-${)Bqz?%-WEg_9%
      zs;MO~^**K^>Sk<ewqnemcw(HGh4SyX{15cX3lt7;My)FI7Y<RrldhakzrwpOaQ#=-
      zMe4IW1+4JP_>fF1)Z7ReZ$(&r#sc2Q&Co>wx9~xzzJL$;l;Rm3AK^BUgu3&wo^7s`
      z$NXOqJCP<$9AGLGbciZL9LR`FuVV&}80vb$biOYkPYJgPF4Ta;Bo9cTNOCa&+jC6t
      z*)M&Q6RZZd6R5d9YL0EY7oze4#i(mErA}OnP&3)(17+j>PPTr8hw9}aR<n-|v3ZE?
      Vfr*IbyO73+0Ad<}olwl<{{af|il_hp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxU2_vv7=BKZcGK<BmJo}Of+#`rA*={0lKMrVG!jy2YO(c#*(S%Z%yu`k*<i;@
      ze~7oe@j_=b1)XuYbH*R#@SNRkvTbwGbkCmmJYVm5_rL%D`Uk*ue6L|b;C#pJn|r&C
      zx!1LVr)I<2l`DO>71*AuAuW(Sx_@u4>kFhTzax;VpWLeoOfA{29egfurdWSwJ-5t$
      zU^`~r?giD-ra*exYs(qT;FJbKVD@N<fmzJ4sAvBq$x|%VROx90S)AdzBLjgqinUUN
      z>{xEcT-$jjTR~L^cMND)5I9>LCrz=>)ooWc`nx;Q->`NZa%AgX%W^g?-&X7RWjc6j
      z_XHM?!6eh6(==mX)%<arI#Rf(q`Vbc*qo-cw+&2UN+2VjTTb5!$XqPeJ-=iAc%x;u
      zy<M}xT&lJ4)~?_^4e!$6D6M7Bap;?U>KQ1aBrx5x-Hsyz&lR{FXP-<c4lQg)Q>w&L
      zs2F$$mo;2vJI7(GR80dP;JU!%6PLF`U}=o*L<A#Y)nuERflql%O>22>AotivMt|Ht
      z1M7OsRMhz7NIFR|FI5_<OWL8JmgBimkSBIa$6BW@Zs>T)z^Aw^p!@O%=}WgINp~@d
      zYcHGx<+9hcTGD)^8eT1JtE9d(@ELfksfQDg5A}?%XOjajvddJ9V?xMag>#~KiX{!J
      zys#tv(ZM@?+i6QbgRf~bEYxuyb#<v8stHKM5eHk^R26FmzQH4cTivd7+X7dUrSYho
      zR20)yGiWmVl0y1cA#q}k0333ipg#mqC%-eWjJr&@>Gl1VT(Q-domNpEep#+5yS!9P
      zlb<3^keUrXsXq-FzM1CJ26rd;f3aM730>e9%vVw`F+YJ<NbU3Ebb#FN+@HW%{_0`v
      zD)Ok|O|BQBvp9$IToHvki$qoo3o*kAYZQZCKEQ=?<xgB1;mwBH9w3c}RMSXc>O)LD
      z)Xl`y5XG23^TZ@E3*|p>>0juT7bxuGlv-65FAPw=ovxfqzry=3aP2qNMe4IW1+4Sy
      z*Cf+AHE)EBHzTYeV*wxHM(Cn|oA@YHU%<zFO7V=2PjHJ!LS6A#&ttBY$Nb+ATahMB
      z>|-VrG(eRhj$}lpw=joohPst7ogYfbQ^GBR3pEch$to!nNiHT}dkzV{_;qM<iq*iA
      z1Zr-Gn!{JP6Qc6&#HedDrA}OlP&3(k`^v`st!(W857f&68rk&$HU@Y+G7-_VLmDFj
      Mh-m~Zsl>Nm1FnF6TmS$7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TW=Fr5dMxYapG)(F(Kd*0<;i(X|v%{S{!K0rGTju0tpmcC~TaKW3bnWy(UR3
      zRlM|}7m3FRUiw(6;(<yfKr8i;O8rq)zd5^!O`0OhyK`pG`R1GXX3pRL{Qf6^L#Rg(
      zQ0Ol?O>?PQF_-2ocg`HQs`ixKa3csQ#9#j=eueOY>`~a2ziZvMmh@SNp2oaYw9U)%
      zaa6&uoaKD2XjQz;s-O_0OQGXL*(tjpDeO(Y0iaMwT~i31sm<6?1kr0CiY<glrml5C
      zVXJ`%I>p*%pv$wi8wjIAVN1U3*yGLWv|XRFrYmF`*F>&a^|GveXULr^Hxzc}U(ZqK
      zN}fz1TD9EboZUDjv>BNxY-_pNl8g9Wg&oO!tzI%0j}*<BTGbpU{n1=5Rp`cEydA+l
      zh1kaL2HwGbh3=B=%J!+{c`|0SNjWoQ;2@IBNxrVt`0ACMLSHha%V$<Br({mL^|DhM
      z?L=B(_nhm_XH9c)adCL@$gspaJTfvOIynt9igz&_!FyyP^0gl~U}A&<*$Yjp!qRN_
      z1oF0An!aln-O*H`6NlLY8cY}-HSoSL>>|U7x;<N767L5FJ{0d-R>D1sEQTUrVH5w`
      zI8iEk(!fXfm@zaDg@f%h{6znoda5A!rwp8yxCYs1fhMfFE1+i$e2Q~zAH234+C;BS
      z>dH=ZsEzKVjq*~g`5LRGC`zzmJA5|lW!bv1zRWx#FjwVsSEV%^J>p&OC#l~Rp_>$~
      zrVLyKM<G&nX6&U)v!s&DrE>D=x`7*DQ+73)(+%AKqFHWJ{()jyj@&ZvC2mt=5-quN
      zy3xox&^ROy5w=*VIZQO!Ui3BXH;jrN6Dh7O)7edq#hT;VOS~i6llM<^p4c9C-FAvL
      z%Qg6>>6cLp-nZ%soo>yOyc1Q{I4vUA4BQiuqm#8}y=b2+%Z&G|4eqd%owpkic*_M5
      zlUspSOl}PQ=6%7pTpnc2r@>VP0fhMOOFu_Xdf*vi>D|u|PiLN??^pT*=;yPaSio`a
      z9Od~F=*3BFW4G?0H|?FrP9(S@l8&piC6NQ#lGs7Ud<(n$$R^*iE1dof@h3FAP#xNN
      zT0<M&1|M2sVAI2~jfc-~dU!Vm3CEn(4Th3RtYltdkHRlBk>g+32-|b~_w(BUg={FE
      zN`zLCd5k^rL-ZX{(5tO_bxf}wAsT%0Gs3|qlFB25Lt^x;;&?XX!-Nx|MEC_xJob0R
      z+ID@C?Z~{qnQSD{k%$nymCiVe4CI;j1oq=HhH-_(pTtFuMxHZp3185A3)k7)1>8mv
      zci15onwZ8SSKnX;4`Aav%;F(Rx-2&-AX8tLYX#?VL8rdLB3#r3Sixtsf{dADoG}Vq
      z#8Kb6$7vd;FHF>4G8ki%J!Cm2Xo=jsZM-rwdXPULnSP1O3i-@m7^KOX<ukGDDke`3
      z1b#wyW*~HD6`$ubPr29Yfk7fkYerCIqt+0|JezBQ0@g7ESLd<U!`AG<o%=Kw-m&Om
      zRV0s2xlVm9vs{a`L+MwDrdM(EF?utvurovR5w_CXou*BhsbZ+5KwLNXGFg1ZA@~{x
      zu&kr^duXip7*UDKs*f?2V&#i|%nPiMZvH>ma?%j|$D~7^W2Tj>*Y6M7Q2W-k>7#BX
      zjXH<2k9v%6K@9|3EIo{G+b{y_7y;a+Lc)x9hmUbqufZ|b{n`<)JQaSca9X^2b$!2Q
      WWq;sx@uSA}<}vPLE2<)jE&L1i8pQhm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBr9h6n<{r7Q%{YKy0d5+geOQ%c59Y6Kktj6q^F_)|!I4EL(^ZHjr#2_G>@+
      zk&pTZoay+%&J?umOn*RsRHx6myFf(hWU_njx#vFTInOy~|M~aNzX6<sV<4h%V#RA(
      zt+lGvTDSdGYr<Z08|${?&bkfXKujV1x`Wsi;v3?~+ocEgL%XE`yxptTZ8<C|n6~$*
      zRCDZV;H=6DQJNGImn&YyzoKwD`xbz5IXABm8?7z7Nkq|YB8j7f$mZrdq416g10AyJ
      zG0_>Uj+uxfp>VWR@!W~#+LBwJwU?@7n$|?-?RrJ_p)uyKRvHTZrPp&5x_crpkK~%|
      zJF9Nvs&Hp`=FzinYRk|FtqRAprCNQ(+8lAL<=UDx!5oU?<GFGdPUAxZA1I^_o}2gx
      zXB4_tTwmO0AFY!%qs_>j0TXADWnyx=OK)y^T%k9c(;8Y;+gq__{CdS(DRv;wv{rq8
      zy<l0Jo0~(MBSRAJ{P6Iw6w7N^NqmAK1D}$K)Uf@!2@AullDpBgtJLRMP^G|Sa_NEV
      z_{Chg1LxTY8cY~oF!7l%>?Fgfy8Bb5CDzYPd?D7|tb}_K1q>LVu$lkuo+Q4+R|eQ3
      zeQ(xAdeFqzxXSpNqr%yCilGQ^%91Nf>`@cfg_B99x_DD|-Isu4CT`$n+d<H`1BcY|
      z5Y5@D9_yxC?O^Fy$n_ePR4iDu>Uw-O>lJZ5s6ACN1ZGZ-JFENCb409dy%u+>HILD<
      z?V0Zu=RiY?V8tXSWnN~eiy@qv=esRVayx_YHXEMxbL+0>xa555Z8Ivf5PfLZ6*~M{
      zpnC`IGSR#!ec!}_D4m?CHS3N$R?(BV*S|t*NCe>5h%o#rMUj#L<|-w_t=}ANz72Yi
      zI-e$YRYVZuyEp$5NAf4Pk;?aPBb^`IM(=O5N6^P-AF+T-^eplNaT(pLaSyKGIIa2M
      zKHf!!J0j`0O0OhxM6V=vlri7Ki7>Low|K?#za#yeiy%}&8?R|-GjIr@6;2*{Id$;z
      zjYBW@;}qeTvzlZmQDSTG54^ANE0-A61cU^Tru}1uLM)xj#C9<F6lc=sXd6+`yFR_U
      zsCQ40c!qfNxg_xf@t7=ncW|i?3qj(USSJ1om!F1SsWz``g~Z@1d{ZzoiHt$${X}jd
      zO(G>`KE>I;O_8TL{xcZEEXMHzzD1dqAGuq=B7ZLKqK13ez<sn}<7X`47dUu~Wi7@6
      z%f^KFinK+PTUy;MVwH5-TlkKvDC6ZYfk~Ei5f{Rh%WvEiZE>P@lg}hu>oG-~=1LlB
      zhD?Hnx=9~h^1q<&h#35*M4gwId!a>^h6<`&(cJn1|2=NK_?{U`bKGH;0qRA*1vL`g
      z*C@d7+Atz}7!hhC=Ss#V#JH~aEU&O(-O`IMgx?PC?epr^!_#0+K8K{))=23PTTxwU
      HlcoOvS-Y25
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxT~ixX7=8{3Y*@B{X{2Ik?MJHlkgl~=YlB)#NgEnL3I(aobe3>Tx3lbKHk+F9
      z(jVe2H(uzBhE`{s-Z|rsa(vG2l7x^8!k#_vdA{EB?!W*2`8R;;_*TQ1z~zS9HaiE7
      z*=btAGjq*4kgcXwmydnB(st{C?YSC~0_l@=E1jk<kg)uQK&EzjuPiXJWV?3oxxm?c
      z?YZ^BGTVXem^Hf<lndJe$z^X}PGJgXG#CQYCrb=WV}?a7`$tKhe4(mJ-!PEIS*{y0
      z5O_0REkwwU<u=Uqz2~wXlyz{&fQC7NbNNxy6#GogcI8_8U{Cs6)}BL-bj_<<&bH;-
      zY8}5!2G8u4KyC<TR7!N5WE`xX9k#0@feT8~JE4{BNlLtAU>p+yDfz;3+EzdX`Fzdu
      z8|Du;>gK+8V6HKra&@%Dt9VbtyENKQZP{}i`e(md2J$EfOtx&d;mE*q1+K(B7)&Y-
      zFKo-ERLLb!GH@AJG%T{Mqp(%FrhyM|oh^In9^aOyZQmAH8ew1{i@w70VBa<apE?<z
      zR`=XMcGy|=VmJsU*Yp^!sPf5?w3J|Qsx*{2=u2R{?s#sL=&9YpP%qU@4y`X4_!PGV
      zbYFfied*RE=`KXMb;1$p*)=!R4Ja3$sL1XZ_zb+})Wea;hI&TVv)h3e*=4->5h0{d
      z;oa=<EHc)7LBj)H<-U;!;cnY@_NAY~Dm!uVgpT{Dsr&Yo8j^v4;;0MTs$$*1*Vy2k
      zTFs_(_XQRQOXF!etuf{;r?AOx6co~9g~Xvc0dUN9ivActo&3hYGVU?+O|R|OWyMyL
      zIIqGT{s>)D{(0}1GrwLOGBrMYQhyp!d^5?XE$)u-|3b0!3cA40m@Oq<VRj6!kvQac
      z><F3PxIcz-{MEzSJILZoyv6lgbQbe?n=7JlXMxCyVJ>E<utqWH#Uq?Amj1xSKHhYw
      zZ5c_dP)%h3Q}1Ewp>8Ip<}Akii6_R1nJfN|i~m3`y+rO1XVj{+aK4M;?PO^_`5N!P
      z#I;{p7pYJ46tKz<<wG*9Qgbb2ycuEj7<2d#H$oRV+{8zr`W!yyQ-Wu7e1cm<66*5D
      zdUm*09<zTz>_(b2afqo<P#0x}*q0HR-oOkVG1QF#)7hScEG66`xKNW4lRO}WBFV%A
      zY|k;l7r*pOPOuu-89>eSP%~`X-4K;`C`MhUDRts%gqljP94Z_4chl7)JX9~cSW7?Z
      ZVylatzKMwDyO73+0Ad<}-B8Sv{{fBHlAr(p
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrYfl<M6o%gs5W!VZ@qVFK-IeNUZM~t`Dw>cGn#P92erZ;i;u_c`>!N(`-|2@o
      zX`!h}e?Wg!(=)>cD42%qGM6*YdEYZ<fB*UU3%~|WgXm+JEm~E*Rxatais4@BSza_;
      z^M;?)Dozl7hOvM5#X5tZ%fD!*cQe7zzi(Qmn`D?$?+eg!1UR+}JPaQO6$GI$_*5+y
      z0>iL^0Qwn5GN#3|)$#>*-WeAqPC_zv-YDe^#}spK(eGZG*9`Mrc{*K?paFhkl&XeH
      z6jjaGPEo(z%<BcatY=9^BAwPUSH_K@mkg_@zqz>Lc{d@%O)3~iG)%Il70h6kA^5?P
      zni!Vv0rgU}R1otFkv2YMS4n;tb66DCV^j+@B}x*^+m_2~u5{WhkqT6?$tX+HsKhOL
      zlO++_CVRpuh_+dZA&@WGR?~A&l-5--aj(+zGX)w}gy%J(Z-61}@Q>W#R-Ti9MO9|3
      z$(FH<GQX}Ed9J_B(lDXD7gc+%K*zdNNUbvWpLn_%*FJL{(<(AV)y`XJt|o%mp*Cu(
      zZ!RBI%~F9o1K1;@t6^+oUuZpGm}tst-lWISaw6hT!7IF`<}@l5ZWS0-J43zN^(ydE
      zQE9eutl%ZKs32!{)yeZyQ?%u1XRoaZrC6up`REg)dl$`2qX0crOIiuh=oEeQ1Hvl}
      zdg9+P^p$3P7@_yDJh=rwb|`k22*6}B8lxDa8J&|<vM##QV}7C&LE4M0e8W(DexZ(u
      zJ%4=0{{vIIfji8dPX}%rSolIAorw;hAW4uznJ6j6##)JDcz}nLfUtOk$5KWNPiW+$
      zbK`i5B}yB`AeNz$C?;CR6O^JIVKQ<Db}mKL5pQ6%t)O3$Qymr~t;`Y1yhQs<w30_W
      zAf6zGJle+RmYF6h-GK_VP$6vMg+$Tid8i~A5VoRs*ghZIZ6G0-btLOJ>K2%lRHYg3
      KQ5jM)_sL((&korD
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(Yf~Fl7=BI?NC>f{5h#|@n^lrf8f~#v!lf-2n;M}tlolMvE}LTrv)PTC4PwVD
      z9mnx6_(8ure29*Psm!RK`oSON_?+Dkwkala&Uw#!-uHR$`_I3B{0ZPqtcDQ~I9W35
      znXQVE*{W*JdS<~Y%B9b%a!J;lFhT-}=ie1yAmmU)Kom$8HAkaZenZ>TGKOZBG6lyj
      zo29Hk=S0~oJ5v-&7E;SRW{4hzz)LZ7;g~>wvhbpwlI+QsO}S97tVw%GTQg`Yk+*cs
      zSk~;ax;L32XT4k#IF*0iNq-R8D1zu!_WA^Z$<%Te?VpID1D%R`C5A8}0^KF)9H_Z+
      z3@uFFtQ%c#GWDXL6sTy9zAov(iDcfgOPSBE=$WEbakH4s<x;ENIEPomI4=-ye~;lL
      z2E%ww;GF;Ij&13(R$~HlX3eqdx>L5yZd|}{3`q<LbkVCN&E_6O8W+PDA$WW8V;IFH
      z7C?Sl*9`jCm-P9+xV9m6C!1PjMNC%2O>VpQOhVP7rpS>pq$v<lvZ^-(I&{M_c_xp7
      zZ7YWA81_O~w@gQFv3dNh(sV^2YRgZgEltKQaN2|2a{JQMDzaA9beXxkK+<(PxT)C!
      zgKkVmOVM4&@)|LMX=Xw>pG-w?gS7HP(KF1ZZdEGM<TZ>r*0DX2H|u4iDD4Q|6&R?t
      zYBO3sEKYJbidp1Ti`{O^baN6?%Ss|2!~0mEd97NNW>H|&pS=T7U!6Qw(}QdTcLV~%
      zDFyXG43ij&VCnyzVmzFqGl%iy3`3SQqu^+coZHf6RW()=_t4Ai7p%Ii%lWdJwBrYJ
      zpelDs0q|qNCg4XSfVdhQQgJmlJR^MRf|}`W-li!P;2BO2iao@BB^f{u_o&Mrr)rj}
      zK))x3<4EvE1s9gxroIbJuocQEqdn<8yqq3<g8uZyCm1*cO(4YQN$%5ByH3R$F8Enb
      ztp(oG1Sgd1b$|vqdrdPLo`N_X>EF@6L&Ed8(`C-NfH6;?3CQmahR9I?`;`Y8ZOXTg
      zR6dO}p0bG0R0nmoN1o!Wz|~M+=oenG$)!B%;=0_n)SFuK2YluAPdL^WQpC^b2=0V-
      zJYL$zBWK_l2GlX~H!eKI>jJw-{piUD55pd37J)_9^$sTR05e!c9v@->ACdDh?nA>v
      ztnsg-j3T~(#8)Wc8*I4Ij(HKaa=*<Kz2Qc)%`Up^mVFynNCj!*5ysdOA-=zbtK3ye
      zXL(mW6yJwfQIRO8*-Y)(t-AKSMvAxW#c>U96G`A5j5iS#vO)~_;`GW}_hAHD7y&lv
      zgp0u;YhwIHe^pHk<&j$@Fc02O&A}Mg!{)l?qZMzGYdkU4NL+6uZZ=dn&v0rVvnz@D
      zJ={|FUA&iA<hF~ujYOfbk9#Y7xc?XRyk<P_&e|hJ_9cD$8dLa|z5W=t@Ez;%J?rp;
      Ouh)!LqdssER{jH*{D)uw
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?e^VP(6g`gwHY^LoltNQzi`vqJUumt_N?N5w5Hy8SC`emdm#~DTn_XtJsf^!5
      zzX1REhtAZXGUNE4Gky|3g?irGZAe2jGf7_FyL;|A=iYbo=ik5n2H-l%8rlRdm)vUZ
      zpzP!h_RU~7x8(U{)3Lv?R`<=KHD7g$f$g~(;sU8RBj*nGeSw(imjwC>r_b^N9k*@Q
      z4n7h%lPT<(FU?#vu$^4Nt_1n)x<Gu^+qSyUg>DUoK+l^Y271uT1SKmFIGb6_h7gYF
      zmU7EmdsZ>X>kxR$fQFR7K&BN3nWnd3yVg>*yk+@o=9XhoNx>_c&bsN_@^`cu4|eT}
      zz(^BJYeOh5PUVbGHY?K+!+A++kmNJj^-hw!V4xix0txG-=~T^t95R`L=a+I{-zes`
      zy)u2@w(^UuMaJ;9fs42#<-Tj+GOh?{&ntm%yY&863!u|hHM+N|p3G~wDv&-gJ=|XN
      zURW;c?<bI@$l=azUB?K<q@r<wt5GFY86u#DY|&13UBje6zXERvy;t4Yv3wm9I4?o3
      z8+Z>l1iE+4%6-qbRBn1o+aAmFDFYwira-4_9R%u-t(IvaMIwG^U>dUN%>8}K-4+;c
      zLG|>rAtkob1nx)#cI#kf_J8AM4BVBp5`h=$WjTtT8<3>xt>&^)(7s1mVv#Gya{0+N
      zkfA63L><i_1~wi<jtaC@h(6fRZQ)71UX&i&s_qD!Yk&=7B8>v=MaOf)<~x--+tm2-
      ze$$p19vWE20|DK)SUk%uTBLX}H1|M_4%aMO6*(_*D@$DFW%XiMH?WE|C6<FCWZpVH
      zfycba?(5Mrp|CPp4NrNmPl&!2V>{cjJ)iONH9w={3BHo8YRZ{$$_S1f8BvslW`|5P
      zMnn~8Re6;#p8(AjSqZQ!0qiD#s8at8AfKF}kE>qQ=WMm*C>m@%UnZq$T;qk0aaL2P
      zoF81tw}u3FI=T9kr)~W19UY7P0=*5tBX)%3kKAg*8Gh>Oc!rboF8cVpKMcoNuH>s1
      z12{)837U#P=NThG_0c1wN5_7`&<S3TqBDy)=15?^0aLGI>WV6zk|Qg`6mdS0Af_|=
      z3PXQD6Nl)Q%dw#gH4IP3$I|hi@y>MnF-A7i?WxQWMyETDF|m1s+_aYNsNveT7*DI!
      z`!(F!I7EM1OAgm?d!u1j1%CI>Uums|kAGmk(1l6<#Q>jC>*r)tz&P$>3QM?y2Ux%g
      zcUNVn;u+UF*ifn-hJ5R)9NfdKa>~IcR4*NJ=)fEu8Nef!Vu2bj5qXiB+L>d9xCIt$
      z3OBjCM2CgEN1-Fch%1cbF~p{_qJ|aL?u2!R%J#Iu<7Aypl57@uE)?&u85W2qS@lI8
      z#}3gI0YCb_?nQ`dHlX&^QTwR<3x&$@#&6kT%hV_P<4TB{NNpZs@EA`vQ(qq8x!kN_
      ZD`nMCs$s90{EkXvgaA<*fftI5^Dhp1>zDul
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvcU31$+7=_P9N*uc)F-}VfNgKW^*|Y-M@)0%t$cIacNobRLroCYld2!WIB#$B&
      z{}p}#H(Wpm9H27{*Ze4kvy$qlc06NywfpY#p7-p#`uD%T{s!;~+9ga0EOx`bJva>P
      zLC;N|*gH|u?1x_BM_~!NK<(A#twApq(A>ByaJDtM<_OH(@IybjDX?I+p1RLmyPx=h
      z-SUqT$7&1c8&OA|!5O?(f*~;XYKVb3%rik(CIaWoZ7V|rZrHVV51vXdaVija-9QO7
      zf%E2R8dRG3mLJNU{^5a)_uYd)vXWNhxk1~Fef6AA>d6!TNMLCUQ*eP5=`5E))$wvF
      z(D0U0vP8wE)h<)n1q0KV5tx<F+@S9!Ol+F1DDK)nT=ncubV!Fg(%C+}G7aw-xQG>1
      z<9i0)#|I>RcMwH^bVGqlr;sKMvL2Ul304UvjY{oJ?OV?%2I^=COgHbe_O^IPh5dPi
      zqqbi*a7D%G`wt#6tmH*uA_qJa+BjYetM5fLNNjTyND9?hyb3+Zo*y0)dqEUtu1u_2
      zW5=Mnjpwc5O9P+bbAd`Mzn8HLJ;`(zv;G>S-5a`x@~G!}(!RgLp<_K(`_>Gsf+t8l
      zY}=(&&*|~>If?d?*bh}_o5jA%W}Ol?*l;JBv+4D|A9Q3q3!0>dQDRoGj=QQUzETZb
      za3IH6Z546Pz}IN;vbepT3_Ajsi=nw$lOpnL&MbClx1~tmD$@Niz{^|{>0biW&OHOS
      zafhbvMg7>5O<&!TYN7S7sABOkdr{*HgKMg_Ia1#eW;s*l=q^{M_&;B7Xn&$Ig@2$O
      zqxvhSrm(=@O1iwto9*B%pWn#BagHPPna6p&NtlAxa%ht=3R<ZjW3k@&9m^-Yxm3;?
      zbljqV+XZH2#H^%J>5;lkIkV3l(`2sHf5UQP`N9xyuj-9O{SUnRBg)V5;ZK-(j*os}
      zNKyDE3~Z%Iu4UUtNmgK|?hwh>>8GjS6<p;=<DLav!*!+<s&#V-n|xMfRbN0nN@Wc3
      z1<g9iIm1ZcUZJS!C|{NNu5(?erp}3L<SAk~r``B@BtJv#7Et98s*Ia-PodZXIckHl
      oRr19bSbtR8JVsM7huE%tGsNx?55`sQr)VSFl%oaqQvnbE2mL}&!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxU2oG?7=BKZ){QYGOQEb#7_b%WWZ-RlY$L$7HWUIOg|&;+U2JmQLojmf$aPq>
      z{g>Txvx`mIQlQebyGi`0Y0t4unkK!7b3Wele4W>R``??t0ep&<h6#a%cF?tZ+rHiF
      zIPo*P+1=ih(MmUPV=oLe<ONCxEAI9>kwDIg+5*QL<9k(ssasy)#dic|&Bk-*g=2SP
      z&$k=iPF%HG0{P`|OCG@y9Mxb5%p5E+FoR<(+VOst<T0(fDt*sD3A3EHWh`*QtXnCv
      z?*wgob@RD&<Ejqs7|<{$aMC<XnqoiJ@B*3ITz58oa+DgO>-a4v^3*(A%*W5X9f7kW
      zFbDIY*F1w@U2)W?jvUS^F&`u*S_O(bZ(tHr0@Lz^<9D5y+@{$GqqhCiRoC7Mx9ujA
      zsn!oSm&2lg3;0mOCGsVqCGKlsm$H?4%Rm_w0qw^ixkiCYhro{qXVr9E#AT)S3LTj>
      zm6PU%K`eVroB51Nq^C|u+oH~qF9SYlNtN#F%5Ftq()Gh2^*Xj|jpVDkix-*0mj-U&
      za{)b)Ph}(nSE}1c`>B^SY~XCmosQ#5`$?0-s`b4(ciX^C@Ls5gZF)M<b9g=PAr9B#
      z$O}{_o5Ky2u2wZHvy=8Ur^`!S&)<^KH10B_G-y-D67H$|?yKe;3L!(XTB_oKfrn`D
      z{ct)R8Egq$9xl!D8rP8#R;STq;+8^stdO3J0KDTGqkjjWPOcgF8s9M2wXhqxa>Y|`
      z!0f@czM?GS6LwUNUkWyxYFm!fPs21<3LLF-cY^;5<;rX50>7eI$-PE#0{<ZQl3$Kp
      z9RGv+6FAAIp48TH8V~S3=X2><%;OYiMB&Z?krl&S#<0Q~#h{mWai(1P3+MLnW)f`;
      z<k6&>)gerMfT<_CnVEWRGR$9iVv?AP<v(%mUufbbj;dj0;Y=SN-OTUd;zngY{|e?V
      zKK`AB!}8Z?Wj&#~mVykZ7GWoW5tyIW&l1^-xXMwEXJ&8>*GVi?PiI1EoGWw1J&27&
      zK_6c*vVG1eRstJC)`|nZBKfX!U#M=+5N{JtAr>;UTfYtDr%*o(K@|p21>C_`2^1S6
      sgIcC+MLxfWrHxW;7b^<0k9z4*AFF+QJF3!6ppEoU1}&JC%I~}X0gD+^vH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+fEZv6kP+;mX;AJDss18&|ZWQZy-ex6cnu`3X<T98OouI8D^Ssiv1ORHt~fA
      zBvOnfet;ikTxVv&rJ!kYW}mb7UTf`r_UZ3GKYjri!HXE06r3&FRlT-h>9vaCt?Tpd
      zOs(R^pepD%>XGLPnyvNsOe!4r<>_>#Gdf|~ruRTWE`3tiNoScQ1?nSbRV2_1O+yP#
      z5iOlribFxWh6tk4I;|mwC{GHeEsE8R72z%#E0&<vf>ScACBrr4K0H*tb(4BJ8yJHU
      zDYr#z8dlZtn4eA;9Jj20xK+|uoejN6Dfzj%OyQleY3P<=m-YFTccSFwrNC|toj9MM
      zpk57q=qJ+K700oJVJo<H0@87q%$qna;9?9ZR&_u!9iV8qgv;#6;;Yv)3eFr#4+HWt
      zdr-qw85WtHDl9NAR&s1l)I7f%jm5B?6^G4G=Hwj;3RNw!=Eok;hcyz?HOuRCMoN}r
      z2kki)m1$_JoDaV}H#O+EA=`6X-eg=s!WC=66?REb!9d!tr{)ixZET456{95dmqnWS
      z%p2L@F%5TcmqIrUj$H45;@Nu7S@2xbE^{i=hc7HR&Bwq=Jb$1*IG(PW)~aw5xDQP(
      zQyQl6h_h={D#Bh>Fchdfa`(s4LzsLE*nc(UxG4$tM1nnSzzF618$)J3(~!pm8@Aw7
      z-IAC!<!rYG13N5h;In00_<Wm?l&^wTQoad(BlNJ_Toc?aGeX9-XZO&W&F!Ksdwmzl
      zuRLl(2iFd$Tt~UyW70U<$b5z;sUQt!agI9z_%w=dNunkaaQZ`<&&-$PW7%(L%k}lw
      z(KW8-y4COK`H0vK2Da%)hK@+CJK{UybbLW{2UoV48|djI4=@Q056L`@Zal^yW_(Q#
      z0*-x6W4MMi6_6JhWQicH94-EP;5vUp)HTT5VOp{=9LP{{fqNO>^%Kgnuey#AUnIYK
      zxOJc?>N7m^6?6tU`wF_KV2FN24r+*8WQ;`a2~kHsAsGVGj5KelTl5Ci2H5k5uzU8g
      zdw3(`J~n3|#D2;=S?|D4++W_qq@<|hVaMY-W+eyhI_4U+FZ%dekQw4Dc<!qx`~}|a
      BJ4*ln
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxQBxCF7(EvfLgFeE5sZpft!)-6TWVV?D_RK9Vk4+@=+L*z<`&l3>}EC_8vQ3e
      z_T2|{Z0N|0Q(ya|Iz4xHAu(YxySaP!`_6a1bH2O({`c-ZfH`dDFd%Sc*Kb;_nrF4@
      zGTO5q$x!*xo@%(yRduCR4|B)}jC~xW_XRR4{u{6KzqAF0?z+Ak-4mEBofKeh5uhAY
      zRRM!IWgrJbV6bFv<sop!Ko&y+BNf+I>&@DZ3V)G1o+6P-;7D&vhOT~2H#5<m+Yq?g
      zQ>U*LvKm(V(re0yP^D5O2zRYNZaG#ps9EdeVy~^4m8WuFTAuWGt&N?h%86{vaKgY@
      zjOTD(U_1_JMy_X-1J7fG8~8a~5IEa;vlxc*S;cKc1r%{fw>KqFEG6JQxpva@6$78*
      zD)p)cPP0Z6Ho~e3%R#L!Lm34WeBz_@qkZzbjvG0ACUCApphK-;;B$OIwHrYg37Fj^
      zG(-DjRBces3H(U4m_^-twW3}1fU=7<t~}-Q9;!IBPeB&<SV>^Ct5#fFAnSO6pV-lt
      zXZAR%=PtJ68-w%vb%CSuoz`|(pb)Cx6-U=mq;xsyu@%p?FKen%myWU?uXAaeziC6~
      z4cx}}<h(Db?8TVZ$?+VTDA<fb*Wac2rS1VqcI_N~plu!Y$@Wsy^=RNQmZ(vwfcse1
      zTvupQYC$|?DTcYFBYrgS6R78qtk;!a6}Z_Qn$BZCgS3=AjGtM{)JP9C(s~cTQLV&<
      zuJT6!I`ff%1@PP!HiKs9s8v^=yNSNTG^_i?SF~V|UlUrZk1SVNUUY;zd9GG5z#mYU
      zKHxR;7f!$C(*Q<zKNDxpBZIq)T_6H5kwoJYjPZ$iF)EwV$1lbFlNq|w-1J+Vp1CyD
      z#<}@SG4lbFFEDk8;&w6f4<-+AaXwqjzQN_cajlru5wDn(l)exHEW*GNVV7|YE0`wP
      zS&F7<+)D}^)0jgECd=#3<}_wvl5_Zyt3hJiz)famh+@E^Bw0psJX5;Me4`~8J%ref
      zDYtR!0N-}l48_O~y95|Lt~|=hvwSb~xTc5;#M6lR6z$GSJ|vALP*1v`^2bnl*i>3W
      u(ccuR%m#E@#Y5cR9$P#>S!1@bI`*KAN*f!!EPsumjU*|B7I+*Jc=A8uh-5eb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYu};G<5QhItL(_&rp@N;UWxycDAcRzjDXNe_-QCn`j2s&UyY#h~kQjIX9tv>=
      zwlerX-*>kEJAZz?e*n0^C__RRt!xmR#)!?6^tHHS$&eC`x42iWC3LT})&82$8BgYf
      zbn2EWM+f}@cF-jZOKsIGGz--}$c0htP`XN*xomaJ|6uBC{Y*G2w`}Ty&{Jz^g7kd*
      zW?Z^<C0;Hov2=}?v0YI<%C!{1Ya^!47*%=gY%%#C6Y_f(+DhH(*iAo9corW>Pry^~
      uR{#kw?w<3EcY-5Da{7ke>rXjnjb-2*yR3uX1045&6xhd*DdB)M!QnR*gHmh&
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*Vu};G<5Pg@X4TM0UQpL>HGGHObqAsXRQH2ERz~-h_W0b^|aUj3Ngv7uH@KLDe
      zHcOZH?(W_Bo$v4e=NG^&1`z_na9!1+DGSkTq|3#VbWYhSLP!`KO0#BT3B7w=X*VTw
      zM&kt`d@w5&ql4oFUGxb3R99+VmrG?|<g!rwOlmS&ETq*wZ;PSJ^*iA*J@jbpCxob!
      zF3T173`eQ4Yw>xPiIpkEoDC=AS3>-3YMZG??M;$)^5#u`$nXlhAAb@EIO4q+BhCaf
      jF?X-OarCv5V@5A~@q{tiH!z>VAK?srt`g1}16*tY3Y$bi
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq+iuf95QhJa)7UkIhR~KnODSi&5*UO87mkn+B~qj)9EvKHyN$b~uAJS-v4h`$
      zm*E1gB2kG4;Gqz+ww0zvLY8-DW@o?ocXogO`S}aLQ#dAS4BJDQdf6!QvN2DNy?1I7
      zCZUp@R0euBQD<nK&v}!LV}?dMlwtCc!EoFIhWcxDBy1R1UcnL?46D6Rihep8i1;HP
      zM1n9q74YbQ$D#JiU_ChwCk#8i^EIkEd<IKQd6e>mNRHD}@zDG7Ebxxh$m>&SzuR?t
      zCw$7ih|8h(c5ots#5Zx7p?MbGQz@0U(Zm%kbB%O6ds@C3D4B>X$yHX-bjGnFk*rHr
      zBqYO95Gh#*IfIuq-O5pPyL=lA%NqVqI)fdH&mtBw5L9E^$y2iYP9z_R$(RSid*3J1
      zcR!JUDW~pl{wIrCm8ktB4&{(x%~@<q5%n$Hr?PaW{H`6BoPCwXf#`(#qSmY3f2>vG
      z37x^9rvvJo{u|_*WO+0*9oe11`awnwHjR2&zq1Q8t`rG0UnGy=5>{!{n?ImVA7G!N
      zdARj;hSqoT76~tM!fugO5-1<**vP3iuHqW)(6Q@e85F&N&63}y6}@Jif*sDVRi(Fc
      z`bLp6r&~n7Nd&qN+$u@WY1X8g@vWlp)dHh7XVkER+d1P7?v{*4xepkvdsQKwg+>|k
      KMm@+&J^TwFp0|zw
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~6#j-5O6!VP@lrv>D=k%5#d`rSAX=?>fiyv5%(5L}&33n0w%EVnqi_BI
      z9yHNnG%@<>k1~F<yS7+R)3lj6bLP98bEZFje*OyJEFLD%C9rqNsq2lZtv70hzpOv>
      zWW_QKUnUS2NdI{_FIRklxNOusfq~MWhqo9l2=t6wj^$4hIJ;Fsu1tU_w<1%BVVi~o
      zG=W$)S588pPeV6)1a_1xN6yx(i_)7n7Hvr(CD%0Uvf){39|hz7vb7?R>ELNupqfP0
      z@Xck(EXr}cCH>WysaM>pK1&IOVlnq5g+17pz}`(}l^+cm>=)>jtA<@?Q3SGE!<1ec
      ztA=hH&XWFM@uf8VLIOhq{q69yTc`3A260fsAq*4Ma{MxJiOK>Lm5?JEj^Y@Po-ewt
      zEe%ItWDCO0Y`G^at3yvgsXBd<pysj$qR5pki5l}HJDJ`LB+zZzt`j<KtB*|OI!dhu
      zqM(H98cyO&P@ex@3I-*`cAr!2?`4xr*YRb8f>NG*AwB7ss$&PUfxJdAosLnJD>cKE
      z`lDGc3t{6fX*iDyw6kh(A_xDG&zkz~obOrA5=S?i+u%HmvSAaPlD7IVe6w!Z73uZj
      z8q4=Ig>l?as&5MH4&{YSk1%p&l`*a17H0Sqj9N`P6@gP5Q(L9{3ss>PcgXcjA>CC-
      z_c{Q6b8WH^X=OvkabLq#@ByUe+`4DV8B4vQzSh$?t;jLVCdBw(z(G|HkE?Ee*%L;R
      zT+N`1A0Rcl&TsxBw!i1D3p@DR7u>vvI4(2y3K76L2(qygY3_J0K&2V%!a#)inlZ&P
      zHu?eE^Fs%k*nKsgiGRo78|=!&zhSV614D1o9bb#B<=aW0aCnW^Lh>|efeC1sB=8L!
      z!&D&Pd<fkVFoxqeL1NNj1ld5|7;;?2cy|P&$P-C$c27m}rny%p`oBOd1nf<mUdP#Y
      zE$*HG@6HCp{Vl$J^5l6g)L2G{6U0-9$q4OY+eQd=e*;vq1(jr7uLMx+V+1ut*~(1j
      l3&t1Hlk2#yFq@c4-)^GVM5$Bd;{aL<FGbJ-vw@cfzW{IVN<9Do
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>*-{%v6g@4p4D!S*GDd8UvRV?h<s};ka0~*6Scn)f2_&&Ihz5olW|To9JmxPF
      zoXWFb{NT6(xZ<jOKt3v!(>)W!R(_c2JGXD2d+xb?=bwN7`WwJ4$OIw+{p)U{u)F0H
      zc57CBqcA5Ot8RO)<xK9@`~;!`ohKudU!cX=*cP}{KD$@srmr?5PF+AO(~v(3#7At`
      zu8#>^&z^VaJm2ziZc!jQ;jPLfTF_?V0@{h5%`LWqyiCLpSJovHiNLyS!a%F?rA;K!
      zD$rK8U0G>ttw?{tT5%-LmA$IvELy&;zC&lUzG0K|l~X)U%E8hMxnnsEt4^G3w(R-q
      zg`e(J3#;B%p+cI)>FHc~)7r5Lj^(ZwW>+?4wO&-@GbRRbB}roMns^WI3nZSnnw7xS
      zbAZmG<Vvmh5ZMH-3UoAcjC-CVE!RX2d5X0#_h?ceb?kT;Ko-|<BZ2Dz?ak9AuR#q=
      z6mU}@X>U)vYpPAGE}AXnmQ}{vChjQc*wnr9Jh2m1&#lW{_Lf4PuAkkhdDKx%t1BX1
      z;y7|m$2OCOvJld@*EhHsaTq8{G<+Jds^htVzGu$lPW4A!My>C-iM#k*>046Q#AG$T
      zT$8?Zt5Wqfs}<SRH{G?i<aW)f%EH46&0=m@b?6Hdlb9my9gFw7?+x+11$A$}?%VD<
      z?_TzJ#{+LMfr>zPlYQVGZ`jVN^pluDn|eJoF^74MhE=OccU6x@^GvAHS@aO5Xy6f5
      z%P6F;71B4S075Qr0^o3p5d+_G88h&h%cy}L1UNb~STXScWePd(HT<faveodUPEN!P
      z#TPdzdkg<5QM9X(q}8qlQm-6Gy>b}2#`v&1jDL&P&xmMGZ~hP$^Mm{7$Y0w>DnGD~
      zu6$Q?AKia2DuN!qdo|t=a}<d*f{PeM3S->6%RS(u0118Q=a-6COjrsn#U-LG#YQph
      zRX+z}2{n}g8<FI9l6!9cPjn3S4;<j_;VA7?XvYS7qOb7IP<*f_rdES{-Fs+D$J53y
      zPmy?u4_?sKwTEuy`t>(lNE@#(xQ9NqrNe%wFRpz${3UL^V8)=r+tdY^;Jbu0?_vg1
      z$l^Xe#WZVvfN}O@4zpOq0@nE6#FDOjj=wyzKC0ZM79Z=%U3|jRs&W^f(P|;~3WhMu
      zO4CFr(uy%pg?f%sqbxIy(K2|N(-i2!Y=L^2*APoun*-d_x&&*N(%}#j%}N5@A8U4(
      zb^go|yA0V46IrNf3o}$0qx%!0-+zksFagb2%k${-Bb5T|>M`uzBkW!(^`*w<#SO7N
      zBCA_4`5H4zhnQ6<4)9gy!T}a(vs*^z(lf+5zYQGhsL}boay+5q|F9H~9KbqV;)bT7
      Ot}_#aGz6-e?CO7t+kk2S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxOLNjt7(ExLAr!4vTOXDBRw&l^tPg5^P@JiQtqS9eZk#l|(l{Z(G*tX4?%cWQ
      zLS6Wraq89|<#=w0fWRjA@qPE4^PPLY{QmR(Cx8nmX^07o*W9MjsyjxjVFv5QW6ujT
      zBnI{$GAOWP-gfO^K_H&ZJrPJ0y)~Ia9C{if*dZ`hwq3d0tglMHYOXqxFlEm&ohPPm
      zt97)Q2-fWlfqmsc?t*|;Hv?;3GGQWH_WYXh`jTa=d39r%Y=zvjQS8B94dVj4`=e>>
      z!-T+SO$I8t`ldk%)LNldmm8s;enf$!+%%o088Dt5Lb<e*E59^1O~WzWnz6F_Qd&Vl
      z#}qOe4pU_qYX-Js6g|gb(DvMoG^TMxKrcObSbh4uQmQI<x|tOj6jBg4mc{`b7q~ry
      zw<o;|T!^&v@hRUd&kbZNV8soO?ujMN9O-Jv((7KU7Coz3mu{e(oJk{(v-Falt-N-n
      z|1T(TAe;No|9=q*pTfB`44h|y8@5|>WZ=01C$fV+^~zO6Yq&@?T_d`c3B+8=o*Z5_
      zYgzLw6&_Xz%O9~E&u!n}z-8t7URtTu@I(7`^&$q+1ya6zA${pu>KRVA%W8#f;+l22
      z(J(D(JX+?I?~%$jO<!Ot1R9>jHx_u6z^7NNp1yWD+q;D%?()hEQdhjDZ^?VMY9C$o
      z<2jYgh9waj7tlCkyYZ`WWpET6M`pet`H_<tQv9kga0#RQrrQY|cXB1L3uFAM!$oGt
      zIF9ANVK*Ov{thFFt@swVdSR}IFq7@n2!@9+iTwoPOTobi@DVj8cv_#yf5M^9IQpRv
      zY9WN0X(x4{bessGcn~LXDkRcznln{0J0yaC#Zkd$^1pEAEmHYyoOutO>T?3ivtKd0
      zjSF4M@i4i_f*1K`C}IMo9{Nm&KGUJk(6Y;<pFk2<Fh_cUtGE`?&oiRzO8$U&`UTg!
      zOl`aG_xP0TpeKobg9riz%tuIb92HV*!0VMBj93RFhMQOjF>c{@gfSbgf%y2Hej(Km
      Qq<!!42t?2Tb*+nk0h}E&6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxZF3q`7(F*Y2%9w^O`F6d_1!FByM6JkrA3=iA{D4@DmK+xH)NY`hwL)TQuz)3
      z1N{TeIDXI>CDG1w`q>}lc<$XzLLkhrdtaV=o^#H9p8fZ~e_jB%2rG#RfyEuSXZCm7
      zX1`+vPt3bs&)u%{+*aUtZW3{U?D2q`{f;jXv-}-_+1mJCQDE|#<2pe};FM8&YCW^e
      zUf{INn$r!6xu!sT&D*x8F^yM}&;@3Whv=9=nhAF7K;X1d&4mzc%iS?=Z#}hJK~aOi
      zt2&a%3d|WNagb@!HOI9Zz1=O_zh`Z=Z7QjGEvwzMd`Hfs#dz?<=?W~5z#Q{|n&K49
      zu*|3+4KchXxh#^ik!z;NZCOVGlLAxrGppUR0;V>Mn&<DBKU{8^+up9(paaF~$=YIg
      zQ^#4nE>*s*;~l&!kbLASAp$EW0F678D{ELmE(wE_mA}frve%<<9eET45>B^aHK@!e
      z=N`!Lb2`q;4bACR-N*6@ZMl3ws=FA*H8otuhe>>JaBT{<&cf005k4lUFY6}^zD3?G
      z&kgK8Z<5}R>Zf5HkDiJuM{V2XlYYt2BgWB<Gl<)w%ml5r=Z1!kMde2BP?jo-C5Ez&
      z8(5_>-+pZSw%f9q_H0<3eO3IfwQF}fR?9Z;G&n3uM`HL~$4yieFV_5`;&pO7FFWuy
      z0^f0ETNuMd8?F|Upx1LpoWteSp3~m8{V9COwo%?08tS+!J>QV^KjcLOl;b7T@s*Ay
      zzUCpT)3K%F=Y~Tg+s0```HEB6q@Ov7^o>ONb_C!c*I4=k0D1B|9bceETQ|I(-?A%?
      zYO-UUb6yI@1(tG*-y9aB><o_NKZz->q&QmV?gZcId?EHXv<bXKY!8_~xHN%Nd}?a@
      z20sm}nC1LT7>?5%$zK|Cm?xM7%|@UV#z;^tzlVi<;Vms&IWyDb-f%PFw?GRH_
      zROymz#t8FQo=6h2l>ZY;g{9>I-nbesEX4Qm)|JG3Vju7QjA{9P|0krMV`Xzbu?O=P
      zWWw=2F8#>)??ec7ona2pL>)D9sI%D{xX!oKSW+gH4*8Vu39cxOC0s>OX)ECxM=_qi
      z#B(LGn`Lu<iqD8EWX(ssrBdkyd5BHLeSkGOe8gl@A#V&hkvYtqVdfI|h3tk1@jCG&
      zVk$yg|BaJSR0wr{2r6|5l|mJ_6cj5bf?A^hd36iVQQyqo-oqV<Il#T_{Q({f@Nksn
      RLj|pehazZ!M~cAr{{xQvX)FK$
      
      literal 0
      HcmV?d00001
      
      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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
      GXZ|;C?VJk$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~`xV6x}yp6XFyis1O9DR@+GePSt)`lG1_&#imdQ#zH^r5T;>VVJ2%b!Tgo>
      z5A?-{)>T7WySn=9k8*Y2nK6VAA2Rn$&bj;Sv(Gv6^3~t}0=NNFK}2AtX1DbAL0xY*
      z3~ygAdxq;ZA6nl2O3SW#mSZc335=eMT5dO7ftcaeZU~$!opu%i?@fV3(XuUXL10WP
      zJvI&vz2#YTy<|1LLbk%FJI<bY1}cUXyd^MvGDO7)(gM+%=?R?IR<i*_-LPx=`tD=1
      z>J?HTI~7Tc3FNgwR0jPgQ;(D^+gxiM?3(VDv0FEZQ*x?Cy<)hQd=LMOdHYsV;7T9N
      zX`#ZJ8Jq5}G=(TGN|IA7M$1-)NcxhBI1<vDQK29qkTegCddu+0MAJ%+ThpK1s_J{r
      zfxbqO3af+5kK(F|w{b-Z@ve&Zpb03Cnx1RfHG$g$fKH3pt83Z6NnLZ8Rgh;jeouVO
      z1D}dHTo*_+yR#yj(}Nm9WOs(}K5i=DkeodRS#q4ZY1k@m;R6o9*5-p{PDju6FrXlB
      zf287L85UnzER`9jR2|zh+Z+crt6w3C+i<AASfy1rZK6|AW*_ZA59cQEaX=%@zJQRu
      z^w1rz)*U<O$Z-iFMz(Jz<XTX;C{|S5!55UsHGeW))2^Cibt#aj?QffH9GK09Q8o3A
      zHJXL&j=XnY#a-MZ`9p*Ib<t-%IG)quIRR5{pf;d^3ceN?Kjs_+FSV@tp6MpBDWC=o
      zoO{A;*HT!=mK@OsZ)j#kMm$vU4Ys+}Mx$ZcdjfO4eecThhOC7ozGZi2CDQj2>4!dm
      z*Mrm3t`oEg@FM}T5@1)wS6HLQWvAs<%@s>-@c8Mqye`RblBg;_dl97N+R;kOrQ<1o
      zNyt4+(b_<aF+e7lkN$--5&VZ}KK9x=!r9;HjNlxfDL=4)2^4Xj?-zoLJjeM)2zoMv
      zmGEOB{5E4Gjgj0DCUg1cn9j{U$K_+tQRW90`23ul7BP$^AABab)&(E&tB~L$ejO1e
      z;71@#^AGPQ=_}^`z;u3Ux`TJ-W3(@ac08Yn{fTSyiF_t5PbHJcC>>;f#?Uk9zasGr
      zAO6PsL7^9z3s~Vt`YublhZ(Fw!+oFEW{{`LtBBk9#4oytc@%s}iWI0o{wllhsbAX!
      zuHrLVabiue(nWSbqo_-?6yE0Ygq4&SBl|J&0%F^*rh{d_5}s_wG0TLXb-kw*6J1sl
      zWVJxQkn0s9uMt-wPll+gzaSj~(~L)-#-4T+2(Y($uqV6NllT%PADiPCVz0AW*_&%G
      pu)aOIafGr=(m`c(r-Scg7HL1C-GR|x!nU7A4FJM40#%>P-v0^pr0@U$
      
      literal 0
      HcmV?d00001
      
      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
      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
      J#1&<@@L#pB)ieMA
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxU2_vv7=BKZcEfgQOB#!q603Z;NrY8F1p=ZVg<@>QGIh#0GTY5DY-hWh*=#W5
      zkMXuQT<8p>ATx}2&hVogpR>D7(j*s2&e`+6&)0c3Z~y!I4S-LvsbNZBx#@ST?w)6L
      zTXyus+KfWiZ?1NHCvpQ{LslSvwBk;;6$)hRuqjZekDt{9X0E%w8+|3PXx4Y_r?%CJ
      zT+gbz?Wk7X63E^T8gdr1IIh7Em^)fxU=H&vYP-Kn@|fi{ReHie9*f*JWhC&9xmHe)
      zJ=<?u8#}wwiE27{VnD-^z)5qGG{rt&cYV3u+1rufLwm;~N4_37wzp-6uG*&$v(Xc`
      zEl?VPIhqf>W*G$Q7DkQg$e^UeydRs`I!19H7?{S4Ku$ijy^bA`+cfJz*tCAT<XDYh
      z&st|PwYACSGB{`8L!41IKQdsVETBDZ#}_7WWdhK6M8l~iR%k(U0zZ;n=E@{S#ZY}K
      zph2<5l_!0EQ@kpTuWdMgfoaDJ{KVDRX?Y|`HAlR%3@#fS#?J)wQ2r`I={r*8o=i?R
      z9!=lglkJx6NbA8mm$mXE)py0f=lCMl!+|WudM4L1@hC{_a%Rm5A>_bm%_UiyWes0*
      zf(8zf)>|FdYsfH%TZ}9%)o~Nws$0IJhH@y9q=n<ID()J%2j(|pw_4I~2wWI0O{aHU
      zRZ3XP;XCGER!H9~r1cSiL#{FULjcwJgMk{ZGv&>o6FPF$Rg=G%v>v|h7nNmv!uiVZ
      zAA&=z#+57e(U9YlV_ZGt=@fsLE7e!f1^&Q7HS-D!Q}_p&eg0z{pzs&Zr*M+rdR)7W
      zA|Byg?w68YoWgtD5rrqqL{<z-DZ?sj6oXzl!0Af$1y%-lbFsFck;N}m^LPkT?_=t*
      zZf2%lmlQK%$22iZmFHOb7n<0|akZ>2pYGx8wQTiN_9f2$$%<j!4m~ttj>}1RpQD5d
      zs<G}8KE{PuZwVK<%CJX+#T>Id=V+%2e&SxaD!zu;9;ld&RrGL)u?^@Gn=a<DOE`DP
      zX0b1!ND1n)gnAEBl6$03B!!fK7jj7O<+HxI8CC<q5Ne^1TEJCYi%~f*De4AIsg83A
      sYA%0cU)i|1o&V+lx7EWQR`d6JsQ0ijFp<ziF^!P`q%;B#VlhAd4@IL~sQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxU31%16x<uzk*lalaZO5a+LY3QY~zYjK1v)?nkJ?J$Dt&oP53B^BOG;X$s^0f
      z`~seN<QL?H2bcke(ix_2%=AYw?3EPTvHcL|O81;SyL-;ji~s)q2fz({r(i<hO3i5-
      zokrd0G)@1|*z!Hwsg*6K<{y^YPSv+vM?qX5bvkaX)AR&lrdJb4mq+i40+UO&WBbbj
      z=k@Yq^NDG+eY<Xy?UrB6?g+&1x(C)2rf^n)CNO<EM8h;@1Qffq)@b@avXq|PlhH3}
      zNZ~x6YnCtYvc8@T!Rw||GdA}hTUEcPf;Soz%nDr4$FY+HX3Dl>Roabx%iA{h>lQVZ
      z-KtsNF+E#8M=#_4q1_U=Is`M$D2k5L5k{XIR;(h1OOnz;AZ6zaDZZv5fk}a+^~9{V
      zO`i;Oz3h55<A<A7<G^hg6<SnWA1^V6YZ|WLbt(2u4LY*4>rpG{pTMm#K%+(tdKU^R
      zD#(+5(2T&+RkuwqR1{z+xPIy?%+T;QZm`?+U}ge!>nd`%Db>D9NAy+cwo-K+-|Dbu
      zba_}Jvzjh#6YD$?h`+Q%hW3d>y=4#s2QMPx0*PwfbwU$I(y~MClk>|tiQ$fhW!x4}
      zJ?neRvz)3$_)Fo$c7nxl%!bu!npMlVU*WNs-IIB18dh*OAj(C^1VqQjv%$U_lH{)F
      zV?0mdGmc{`Xk8)nQO_#a;Pm!|ga|8byMADKNo;auPG_hn<GwWg3%M5q&V`v=IvKI8
      z;Y+X|lV-DNIR^rT!O+O$QI1jFViFJ8fviN@lSp3;0i4ttDSrYWGr!Sr4{Wu%<+i=5
      zRkG#s&4sC_KRwr_ehwIY<~NJeCpU&C`KKVsH)nX-=IsRk&*$<_p$hy0MI7O5KK2yn
      zCh#1wW2ArQ{RA%XR}Es9kikcIh0n8LF6QtmpNPVnc_PaSvr&Z-V`K$2cZ`d<{GYho
      z$D0ng-9{XD$Yx~#Q|)1@0dG1dH#WljnHf??A@>I^{~J=4$Nc=oF0L-d^K<dP@Wx`|
      z8FIUGi7wvy=@{?)#)MEtShhq-pJ0K0N-4`BV6SWe@8SJGN&z3>Rv@8(4|$3)Zx)Lv
      zlEebPwM#T3!AR~xMDGD_q~y#qh}}NLseob^AJfxeG8>pdg}@sF9%OoCG9*(ZxR8qz
      z6}iU}vPe2A5Ie$2fz@AoQYRS=Yz?5Md#GuYXn;iJNJXfdlqWN;g{aBYr$<soc{f!#
      i#^>^77h9<ZUF>%8bzekS=3!7q3jv}s0^bH?9{ms7tcu?N
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)-*XyO6#gy{Aao5#8XJ<PjkT@(NV-j`wT9T()<mI5j7g)Z)pP?lWIJSGmL>AH
      z_~e@}eb5<8s-1EA+`quT#__wmTSy5V2JYFt=YHoq-#O><>c7AL0kD8t1Ob7|HLI<6
      z4(ocSX*dV^W_z#Y*rrvxv+qcIt!-5tvtdOL5=g%3x!P&k0wKe$EeM<~o!-oQyNd$h
      zWz#a9+XCb1(i7vz(A$n#*Gp#0$!E6db+1vCXP{v$f_DVQ-gMCrM?xT2la9bdx{&c8
      z>V{R**Y}>tij$9l>@-9%E|5zPqcZHB3LP(*mMpgq_oTgL?A0Z4N{xz9-!^PhJ^L?1
      z&VktyxH<qcTr59t`X>gnjUk9>Mf5xqN@uo5N&JF_5rmaBt0980KvW(X^|s-VO*&m_
      z*fss<8x_6UIMmA&Dqk2bK@gWUypKytjH?<xL|P!S>lIVr))1i6LY~xi(`^H4o5frN
      zIcDS5#ns*0(=d-~3}RYU*;(IL)j0v_pU)JcxGn&Nv#8+)K4L%ArB!ndTn!3p<EDmB
      za7$pc^}78|mD-16xJtuvWQWbbQVnWD$Yz7eivlf1VRKPSHfZt$Grw!RJ+^0{HQ>;T
      z6=-pL#LbUurQWc-n)H?Mu`&alp@xIf1@V=JRjdibY`HIOX;mcIUGQ}3xN~P2hqBc)
      zDpKDl)68ccs&gd`1r(XYk-;gOcG(a2XTLZNk1^*kJ*0#Yd@FFS&)IXn+cxV}X-Bce
      z()M(pH`LsxW7xp9YSi!EQq^tcv7_N3eqcR~W>Z>Kf%%gS(39pZk@Hdf$V$yAq+Nyd
      zcmTjJ!|9BC>IB#$Kt=&nHLT+s>b%)#+ZDNHs#%^MKA_hWAzbI21bGn#kWd3iE1|}Z
      ztNKQvCNf5A10nhVscbIz7tRFm62V;PwRMbl|KMf-XZag*9ak`k&oRO0_q>B#&+&;6
      z+({8u!H@g!JM>XB;@M+NWpmFklbw5pi+#`};{$j3`vp0zVhn38_^fxV2Of8`P~dSl
      zj{pPkI`G5%%k!h$D`x-1Oz!+l7auHzXkYa0kz6YD99NdYxzvbSBdKsI(naQGbRrt~
      z715;r8xpDTL{z<9c-+OuzZ1<%d&*U;$P4^F6D(mCUn7k&|6<l%rjNYHJ*Gu`iX~Tu
      zBJx;vMJnPmT0vsm=4XX$C$UHwSD4i-Z-_foAWYOtxJN5O>=gA_rjSAnn4jeqy;ZFy
      zUqI}*nRfA|n<ZD4s?T}MRd0*&9<X#<C(1S1<2gy5D?}D*6#WQg;;RT#KKlJ%knjW0
      z90@)RJ?-fd<{7ZB`>in5!=9o>Wfz-m>tnBzlR9zb1vYk)o5y&df^_kH@=+H*sVK@e
      YXm?TRr{aa#b;D>LfFDLcx@7kM2TPx?B>(^b
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~`}b6x}zULl}XE(h>@7{lHEV=#*A#ODZZ9G&T)l5T(}ENf^@U3Nu-g3Ff!>
      z<eM*j(6ww(yOzsmU;RHW_nn!B5W+)p&&)k%pMCZ@Xa4!`&%XdHp_W8MV7_j*_0B;<
      z?=%hXnO<pETb^s#^;L7<am|gkUGpr*P9i3dKIyvNX}SV2!>um~oG+ceECjbV1rqlx
      z+wxWfCbiOY<IvFCp4HGxR?917cj&d|?3trbF_y#|0%Ip#RE%RnAX+y)fhnz+4ImnZ
      zUDr3O&&`@wNP+BBD3}z;Ys07vdnZ$mmn_>Xw-2hOyKPh(CUHtm&1mcxt|gztmoe{|
      z)e^Wi0CR>~Vc`sz7%Vr1C@x8+v#dzV?u?N6WfgHGq;*wA5(xptJTw|@!y_F{D>-gm
      z|KV0m-*XQ1GL<S6hieeUJ1XA9TT+d8Ra}E6kbD}nQ{c`JpwmkBi(Byrf#T+{kVKx<
      z_>J*}5AIYf;yRO9_MX|<+?Va?gAC)dMFlqmAaQQ0xP|uwMq01uOyGicvYs%Eur<f_
      z%nrNGo(yV0`I-(D7DZYO)8-UWGfrZ<k3l#d!5!x?(i(8+<%+a;9rx?tS!+0Up#5>h
      zAy#%^1mqS_qA2dG_yns0Dc9ULUDK|aWOq5xqvLOwZ5)`brcpEXtuoC*_K}SHOvO4j
      zSj3^hb-LuUAMVe&@SK1#7fu_}swBz+7mqmy&Z}*!v1hspz7ROq6MnJkZ@8AiLwqSG
      zvT{cIcBIEwDt7QSH`!=5O?yvZvA@$jZO%wtP_WBZEl8wqCDP*ofUpmzOA5IY;0Xb;
      z65x9k4^X1e6{qdi%neI!?d%z=cwI8W4Q@n~AH4`B<f_q{kc-As{uIdFOVQdwj6Ogn
      zmyiB|(Fp!VG#`6y9pT)syo}&H|5Lu>3a0T9rucjz2;_N@PlVu2hOiQTGKAlykEAi4
      zJHkvZ{}OY#g_pQ;44P(saExMDBd7Zq<7i0mt3g-~eB7@>f{*)kM3{h!AEx=2@guxj
      z&;5qE{Onv8Z!gDaUkUAaJ`?*L^UH~RCN9rpCXq>Yk-e=<DUqL`r1hUMnn^^blrENj
      zAy829j4xJ^pXtw8+XIp+L1RCbQ1(ea4wCjruH${&CM6QV2e{+wvyQv8qQtn1WfVws
      znxBw+wBp2@$A?&977cS$b%muZQR|Nxp%91L6&AQnZ`r2lR}i~?kzK6$1@dH<jyaF{
      z!c~}Wn@E+uPEGfCPLpSW$U^R6n4wI3nPDbG|MW*pgb8TIqc37Fdb%VS1MK!;&-Aco
      zP^4NCn<E=yZ<3RYn16+byXnm%Y{?{DY^T5J;*rcE?eA!J@$|TqAk7m$jT!)iX#@<P
      GO!a>?VyY$p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixn6n<V3vPoD0Ll(h)QY*~|ZAwwBq_!3WOO4PrZIph|C0WAavdJVHWc(N2
      zI(p+c!%Z*hjD*(CI9}<DKg#iWcb5=CrsFVV&+dE9dCqyxbKZac{rwLBlc*@@5jaz}
      z8=0LgE3;G8osCSsu~v6#rd?iW*hR;z*b0IIv7=7&JJp&%P_LCI1>(8mhgt9Riuafj
      z2wgL6)447%l*n!B+j^$qm{uld)}3s!K(Dz<$>_sd7*NnJ(0|lL#US1m2$T&+Kuatp
      zy%d&imov+2n?}*e%Ge<lacE3dH@`FJo=7f6A@Gih2u1{MB)S#)f4|8p2XdxuEH$>)
      zjM{yD%_2rDS1IaNL9dze-TxSLHq5%fSV!t(%=#qJb+D6@C;~Vu>mGCaC`8!Ddn$Sn
      zlGghw6wkV#B8-qg*x1&shVHPWL?TzIl{4Q?6*HyER%VIBW*56rCNa_~5=csxE~>bM
      zjDWK0jbGqumqf>jZ=Xfp6;4(ro>XxKoO{@`odQc^VVXbr_OZzceTa_~Op^q6=<cbP
      zNX1n-&X8r;WoILd839Q5Ybrhgr4*?jXjNc1akNLj6!ufB*p9J7;c!-+ypY^#h5U;}
      zT7;o?$Rjl!JKm^wMnww-w4b-2M3sk@=f~E2w)xXrv?{hYmBaRY%_chpBDcyV?~aNu
      zu_O?!8S6&Pu!{yEPkZ$3xVviWTSmRA7mdu_C7RjfLrMC56?buut!(RD&l7GB-TgTj
      zr{WdP1x|DsqJoE9ox_?v=h=p7m5f>#k6B%d{zMcjcq-+(+A(IIn`A+H=qlDw<UsXm
      z)v!y{TsK9uF@FRz8wPn46Eag-X4>dTaDerO1e;7iwXeWZ@fE&i5BW-?Rx}n&xy-}I
      zHuRG0AD6iv0p6GaUPIhKT7z=`+$Xn>Px&9AHU;`<ZPBZT&&gCe@Cs@V{zM=hY+0`m
      zqb`2IV7m9<+b-|eeGLD~pdO6!x8DW42@SJ^pToQSHtZ$E37q7cyueT4G$AGQh!1Vi
      zC&(}H)IQFn(t9|Un%Kkn)WtoFA7&qBfxtXHKWFSMqAg+ww_TK!7vDmOyDdwUxZAXB
      zEG{n{R>;c+Ne@|M87G@>q<+J>^vP3Aq-KJ&&--?7dNlYF6EmUF-j}!>EKMt#@*_fl
      zX=OCj#0Q#EnhtB>pAd?D{DNWQe_>2M{OHJNgi+H`EvkiohN4BM!=oXMDYWpjCbBOG
      z>=Abz1GJZ*Vwt4e!C7uZ68Ctw<w@8BWKqDUoc$a{a2t>K_83q2SHe?lKzAvqdX2Ow
      zXy688Bn1uJ<Uk|^4Q7}n1u9H@=2AJrEDN-HiTQxU-XcXw<Vfu-iOXV!c(Wv~fEd1@
      zUxfaBJfC%S!+rNhSZ16=NWX?yamj3A*(K6@j{gls?4r+Qho7jM!}dMhtaCzTT)=vp
      zZqluG(rjm*U_xFNKIl3jC1}bA%>Mw*$D|pRScDB6!segTyIrdm^|{4{tv1Y53o}JZ
      z3N9ws&d2=TRS>Z1Wlz1v%1Z3fKAy-Lns^o~HL)&>khV#?iEnl>^+q>8WV|h;lbjm0
      WQ0KI3ZlNlRVF`Yrf-T6l?Ee7er|qu*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuy?N%FA6y293OfrlRQ`!=t)l#Jiv7OfXMFLnMrA5=!mYM=Z>ky`4a59rMnN(gy
      zU%)^9(6tnbtmUeIeFfjb2T=E&3?xm$T1oEAId|W^_c`bC*T2920pJE)1w#Vqn$yzv
      z>$bk%F#KJ8tyN!XIaS|s9R*Q=)T`m!`wdSZVt6%y@lt=RATT^{IhMaDa3)jQGoBlI
      z%eQR3WHtRlwjvN+c6ZDXjNml|n!xC*DH=vG#sg}mFK{-qnr%bahEvn;Z||8^zo0_k
      zbqxwq0_QV>ILKqhN|s}mTlH<zdt_|eCY6-js$o|Q&yvsK%c#F=H3cSnV7gqOqA2Au
      zDcLJWMFek1CX-~G$yO3%c0of7!vb;hxnZ{qp9g0$CD*Iz-`%Y0J8oSsQ-5J~u(Aj)
      zX}E|t6<nsj9cz|d+opCFWdzfBN5c%R@C?g0J;Qfdk#m{Qsle>j@O@zfS>zPVQhf*P
      zB&y+ET%|h4+^5;&CkWkME6}OCm%XgO4Gr(%roc$k_bjJYp;$_t86dU0glj=^P{I#1
      ze29+(l&4NmC4nmgHusl5Ta=>aG~~h3D7!|p9PnoWHWe(8ZlE+!QFL1@wTgLsBFl7(
      zVlzeA9ZJ=8{9qfqqPI3IX2WH@#VS{}>F}GilnvBD4ttTIW~<KBB0rWKiGG`9139cY
      zGYHxZ61pJ}tJ<#9?v%bGvOTRSCy)k4@KD2jd?BEE<}=eXovKOri|v`)4<_0%>SnWH
      zR89Rsnae_UQ|_y1Si_@06dPwUU_3aV9p<}jlD+*AQdh9WA?$E&zg}ut_KxYr@inE>
      zpNxtp_(oR1kVD;NV+fP2$c(Cn9nghgqtP&(9f7OesiEWj-4vcyh=X^M$VwzjBJK46
      zoSfBn{0V^EX=~WPCQV&)TVB;%vE<E>?79xFNwK)j35f6#WlWAcSMsAE&Nm6J?l3yU
      z-?7<T<Ou2zULtac<S%?RgfskBgYW`xyG4xi`CL04XStGpV>piqf=SR+2)e=?398N>
      zB0Zb?4O1Pw(SXh^M6pBy%Uzi2DW)1wrAP9H2{HfS4wabev%g|0H+A6vZ{?$-bFp;v
      zPfUN0d^-9P(?@t)Ag}z0OKIf@89_DI^6_;11+M246R})6@dEExxrxz_1%CMN?_<nw
      zOvDbc_%pHFif2M&G~A`SRqFekx7a=2B4y06lZ$*V<6*#jE680xWxkG2sY|-CPHn}&
      zg>~HKDgq59tkCdifO?n6F<eFtpAk<XdW!KS7G{qBa_;d2c}a6_Lj6VVlb$AzAvOXJ
      z4)B1L>hK;8&VAhFX!4X-lDzIPF62aohzrD%h=~yG%b!jyXhUsvK_yP15_n8;5{ms7
      sLM>CC6rDcCla16@hj=P653rqjc7WXjeA~;?2%xq0rVv`79uRQ;2PL4j+5i9m
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutyH3ME5S&Y#n3zC9cy&m0HU%d{X+(pB6v;9|L@DSlmnCszpCj7={}vSz1s}ji
      zA@&j~pqbgb+nv3c&#(6n02erN(GVES%u3c-D(j`H=5j=3<-!r@FVwS=sWLNpH(8Lb
      z1lm`LNvdmsrXP$2oSS?~9-8QM(L!6G7bS+`RW_kwq$Vk`c$90Ej#ZJ^^UtMI&685#
      zAo{yG6mT<D={a%3u^;8dOuk%dIn6T}^R{p}3?2nqI?WBs`+oHMmtpX~tXI$z6=bwk
      zKH1FGYu`p?R4$b!c^`8b+6CT2zA7}`Ce}p9W^!&9Ij3Or93J3s#ikiuK1pW5+&X*1
      n)+-kcc#QVhCcVwr-83-o@U*}#dTZ`uZ_NYja~H?L*udd8D8*m+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8+in|G6kW&nI1|T7?X+&wHcbimlGeRpN?dv~O-V5+Z9<BZUYIx&$7M2hC*w4T
      z%L8iPctY?}AwdyRc_<P{tph|tdFBK73ci7|&Wz(YagcZzpFQX7v)A5hui5gS|NQ<3
      zfaCbc50}8fl2J>qEb8f%s%kByCr#B@(p5_vtr<nDTrvFc2=s1sy0lU?1w5)*IxY~&
      zw;yJm(-Y2eQowhnY?Q6D0=we*yXvx<u32S0oi8t0*~ApRa+Nu)6J6-`BP0;o>Y^Zw
      z9szervjn2?v4j&sSB+Bo>g-*uXk~+7XayaJ2%L-Wl+pj)lj(Hl%Z4^yTb$L*Np)7&
      zNI<?)RP`y<EX()CrpH<+F9{sl7P^hX1{-t@Z!bOwH~MAX`&nN+G1b934l3}%C#^#Y
      z{El^4K>$91fVQmaHMU0}9?w_IQu_YMVtTH!m>wsC*|D9uapM&QFJVZslu(dFO2B_-
      z$ui4EN#OJjf!Y~vC4Iuanf2p{K%d<!yBE&(#oGM5W(F~g{veLwgdY@1c)OQ^lQ>0P
      z=$cWo7VP53q<coeYdFn=;(}^kV81==cTPqdQIN$Mo~YHTX3Pofi|5*ta?q)VV>l~$
      zJtzHIs%g#9mY%;@F)VF`NbK=;KABgw!oG<yT1=Jckbl<G+Y+)NLFY_Lo-R`I8~nEV
      zHkgyAnraqVxZl*Ox>{sI-LtiMfjupew<IgzlE^Nd5H1NI%6y7^a@0j53TYA3eC`T(
      zi+aUybh1f)BiF<>$;uC!oVhWh;C&PXf~LkMYDQ6G^#>dRSL`uisEgWCl?kV>jnm8~
      zrscgm3U1;SYgkq}8TQ#V?Cj56t%_3^XGgrfgOnAs-o2Ug1`B0<PBR0bVuRMkl!^y2
      zhq7!mD~`4|nk|+dy4231z>!vuCKvw!l?|XmDu-o&dolnk+Y+GB%=Qv4*6dsvfU*(^
      z8DLq#EZD5zM5SgHwb8PiDt&FE;;77p+9i{m(QXbtjsjX?ISA~PV}PrCIv~I2PFgec
      za&bMJOu2u9;=(%IDNob#Zdj}6{e^BWMEM)EuUy6;-a;SW`<xKijXiv0FvPHz01_zD
      z0MhB>;Z7vEihaq{a~wzxKgU4w$a4&CM($%ez!iGtdG{TJFpgcgYNI5b`%RRHU7$pX
      z*d@v`B68NTcp+z&gDn2$y<VQJC!gU!s(*hSFOPU=4>W8q?ZJlaOT|3DB0l0z#k_J2
      zq+&j~cC2Bzu!^H2!I-~}bfz;Fkc$%QkV}_46MBN{F@H2v$E%rccP8x4^gKZ#+8ql-
      zd${)<_C|Z6UEd=d3&uL^tvX)6;mL#_^a!3Pk6-*14L?F>EEw&UCl5j*8j5y4e(}>9
      zjum3TRlM;tYjF6#O%8wwD3~PU@3Gb?PPrR6#V_y-3b=%6@;5_|o3w7>1KdHGzdBTy
      zDB?3{c!(0d<nGtp`<5p^z`#@b)^X2fyY6t-WP2Uwal!8CIxZq-cYGah(sDD8XT%&O
      z&wKDAF4OWdr*Ei^QFdb(Utx?r^)tUO@HVXgvwXk|udv6L@G<*5PEF-uvC}!qasrEZ
      zmzKip=W&fz7c(p1I;{|M&e3BM-OTzttDmC8D-`|>?)NZ5P9dlBtlnqmIj{y%u)AN!
      zwB31U9ZYehvNxFx*&oj`b#x#7SZ-1GK$D39qK*<l$hp-(Qi&t=H`GA6{fHu$603t|
      zn5M*{>2*K#JZ(18f%}9opOP@SZhTBbO}HU8PPO4U1sZTOw#4~QYz=dT-uYE5NZdL;
      m>^17BO5hfIP})n}ucNkEsgI$6&uvJ>wvRU;1#6c|Tlp7U^&oTr
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95Iq~axe+KyOM$kOJJ^-LAf&#yLI{*fk*pxvPzl~P?vlE4b|ZHk@=-hh
      zFO@*z1NbP!tZk)kka+OU>|D+{JLBJfe*6OP9BvI2hV_w5z1cYSW)rTDy+M+Sy;O!e
      zQnCh{p>r|colO#k>TV<>{gT0Q+(QQYjXDxdSZK7cget>w5J}Nb$3u|}_%Id(6R42K
      zhdhbQy$IU+I67t63@&n%HTVp5G39Z}HK908ppudI`9<g*sj=55TEEwGgA+dGUd-jl
      zdpkT4q4pbSW2J@;L;F1UTB%rY*}^KWk?6tx`!2&uskta1&RVFX7Big*Uu2|bPZa59
      zJ@R598J5CW$z0z#T_MF?c%7M`-vmR$fd5m@&`iW9kq8+I;@EPsl3BJQ$;aY!!b9P`
      z>yzudA4$NJ(?T}>Q$-Wh>Od!v95Jjq<!R+nzm7+=Q%$RPT;e}aX%dRP$n33MUdB_S
      z7SBk#MSl=z*XFCzy+)o#mYK-*8S3B2sh~-xNrRd$(b>ui$X=!!!xb#kX_^DFHd*^S
      zu6`w3?%m0HxAT0_OO;r|^$gF(4cw#-6I&<GqUZ)T3*=qOm|XoQ*oQORT159V^tHTZ
      zj$SA9Eka<pjXMR>4q1a#vA!%Qd{x4z%rPpsi+dTyeLN^Io@95x>O5Q&(k+e1nvdvl
      HM&<kkxx2QH
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?ZBrXn6n-{u3t>wm6q?XCq*aqpnj)1d&{hgmXv151E2zaKxg^`!>}EC_M8`kU
      z{sunOjs=w&r~T?b@{8khH)|3CI+?k9U(R{XbDneV&7Xh&{s(|z6jTHhTr61C%znwt
      z?3Z=7m|3$7+nU)gJ1Rm7dQKiL>8>jrOF_^qRuo*wo;;Rr<2-caVPwLv4EMf*!Q@$H
      zXYHld6@;ejyoe$QO+y>b5iOZoZ-;{O8p4Rk*#{a_M7WbREU{26?FeU8-!X-PuB@HY
      z&2`-|<l5g1xkZC~5-kzyiITBe(%oE9(5feywVgud`;lBGZ<jI)Br~4cl6(>xdU27q
      zIooo@zUxJ6HC50i_H?tVyJV9*18Z(Bm3^V_=^0bE3Yo>77b545M{x}ws^}-=X+bqy
      z#uXLUDYxfXbqzB!Wt%2FSt=DDQIW>UtX?Uu2serw&^nMrT1861xrPA`H4Ne=E2QW1
      zlcq^&k~K~(&`ey#Ed|{T=Sj!Wf5;jY;t%1rtkCfPxO;UQ(QpT!vCr~$u38e7yXfSF
      zGi8^`x}&?cqoDUh^ndrM%3XY+;&T?IL7<U%MZ*|ayHLe;Sd3J24wB*c*{HIa?&6+?
      z`*@(BeP(`Xb#r@VW>vORBMe27ja;_b63U$Hcfqa?nPS(gyJy&3K?PyQC=_`ZtO$-F
      zlMEEZnjk$+w9A>cRcnq@D5;hf_3o2wj;w|`JdU#W7o_Ix3ZjnK6^^iSvT3i@a^Lr^
      zv89(prL5;fW_f{AuY0fIsfI-?k=~w8#V>ih&bDU@yY`Cf7*>HTmuzm=+U~fDXDnxf
      zeQo<;)i7DuC^n$U;cE@w;9J>c<+8By3Wod&HS2a7-G>=(!#3IW|I{zBbcwao0^zgy
      zZwTp`*RTdYE729Z>g2>DLp~Fo^}BydX2GYBq4*>Q5R-2VXEFK0@EhR?_2wAmYLgby
      z?tJ<P9qGZh=uF>yi`dWH3ZRQ)7eXBGaeP3hFVTrfbaSV_=7tOC;ferW7{!~(Kmi8e
      z<Kl<;k?R1@M$^Bb^F4wuF~nKSn_ZWC?+_e3MEn)H<$iq?4jzOKf(P`hvFT+LV1`k@
      z!T@G5!tWhC_89fnBGeg;q7RoCUy-kk&*LxV(MALzV-8-va)_&AAsNx1hZCXq7<h^4
      zMA-XI9OK635k4M^BqE8>I}H4WPXgHBB3xe_V`wuGIYMSkO{j11>8}_~sIT8(;&q*N
      z+S7Uw8kP{pGT*QjR%n$Mb`4Lk&ff-};~8{pd8s_Dk*ud8{8UJsC7ARQ6?n)Q|5RAR
      zDNHl5IOZwMG$k6wZ9HPZB1G<>M6;~DBJZ0oLzXtO9Pwi)o1PShc;d;x?-Ax3%w@L#
      z+f4$;>#X8rHO+HH-a{XGfw&U6&qrN;g_sY_saMXrDmCnU6Lw!6yN?R3df4oBAA6R_
      olFij)Y_KRE@k4BNJwL>EG6v^|$hC4eJbbO@>EkQZQMT0XKQ5ujga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`}b6y2Avgy~oymRR}`f)*Q+v}2{VN}#nts<h#w1))K$9l|A~YnX|{1oJ=o
      zRDXjHxRwn|SxeiOKKP?t?wiTSkYZO~X3pH4yZ1i(oO|=nzkmJ(;2O*jx&%gxcEzaf
      zT1K^OdOOCN>6Xk*OFop_(v@~WhR`DrIi56EExQ6?SME91zGQeg_te}ss{x!x%S3B~
      z`H2~U9^2fN0_Ou8)XHAjEJ)+QB10ziO_%JFcS~R{5y<leo(vpF>x7$FBkQcQB{g*8
      zJstfxEzq5qSnG$tppIVjsVJf&gs{Lsu4K!_%I>CgSCtX`CFc}Ot6589vB%pf?Fo$K
      zjyu!LYT3tX!gAlVDyB!ML?Y+7MdRnmg0bc78jDnwnV+Ait2ZpuE*eXlPi4W&gm6ya
      zToc=KO?z+Kad(Yu$=)j2#XSupxS-=AVyvYoJ%QPvRh=HZBkL)|@nHyK0^{%0PaPlO
      z5-n>CLbG@Q<85M2EcathqT=*jn71rhG_4hnuFX{ovh0-{JB)<D8QY2PH)b^696$}@
      zNUF}J1crTTA7{mL=~hOKK&ar@o~+U-_Or7GG_mZkonoGmC2fJ;g5}tL$J(+Q&6((E
      zx;hRSjWcvzY0wnI8+(Y&bE3J;V@0yqTTR-~Foo$5I6x!qW^^=G#|(H(`s7a)(<0=t
      z;+twWSQ9PdAbO5(2yILRyU?&Hgjs=TTe`oTt!(ou2xE>VT+)z5QYrgJ$2{%`^mF)@
      zSyibT#(e>3SWv1Ld9*r#)ZS$s5AcwR&2m}VTLS5m+7+-bsDU15v8oWh<qeXUeX|5#
      zEAytXuH%sss8eA5056-arvNr|e5rou-mGj3oc%v8YAo05I^NEPRcz&oQ*jIOZb@Ac
      z(dOv4&iz$YJ;pc`-MnnOFsSYsMuX~>;k%c=a8~#{#jiXwRNg@H5PCB8f<gKPhJNEx
      z7vASHf*wAv^Lc~YZsIgP#~H4~{cRXVlwSm>)36VW6j2umKET-q%`^V0a5Bl?G4L8!
      z)aw;So?}==FEPT`Q0l_P8qOc674`WCM!Rrugz<dj@*yVv=5}9FlwiO#X>MT%cX$=d
      z@=s;1E-UHNv}9$F#ubVnHLk)Sf{H$2)Xmjv__QH#hx?QdF~z=+dWHCNgi|jOUpRuu
      zr<I;VOdc>JXv;k+xeuL_H-x2tEwL7VjQpRGqnFp_4fa9Va+4PN?$7XBDe71FsT#ic
      zwMEd!6kxRu8ugP}p#8W_hj}X0JT;)6QNAi*<_Ot*<f}v6%_-0tzFtVb#z^E|x`x~@
      z7)<fKw4NHAs$pe4<)^IGmukqj>x<D{H60o@I0D~c6hH8)d(3K{P`w$bb*3Rp!zA;*
      Sr<@2<%zj+2^~ZWaPyPc0W8E<T
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT|0O7(EN6mr&)R6i`&a3%y_?AYKUaAY;{;f(~_1cne`EVbUa~NvZ$I2c1!w
      zkr{pWM>&3*UWg&phirB?=R148^L?9NzrX(guz=MB`WUWPO;2vt47q8m?xFndHH{@z
      zb1mn?%bIN@5M!7+QX6Ws2Z~|1p*p&{XYegvw~PjN80N~6A=@FKLcs@~skypk{x`T3
      z0#a~%RX25ajiEoA+h&NZTl-u>KQ5$^g2XUX)=j?Y)%LjaMhIjWEnAvubab>gWA33|
      zXP7Sk+Y34{qt{>U9dXUwpp%S>XWN$J@_mM}te>%LsAg5JxQ=dCmE3L;V+^y0u4}Kz
      zvT&qW_spVZ)o9VQ+m`QJH3{RGOkjfS5U3za8dq?YGUe|*)gY079n{i72Qds<XSzh1
      zVIC4M)wx^Zs_QvqL?%M;t}s!0*3`HyDpF5imSHinlI<2*x6A{*>N%>wcLOEN;Fc)C
      z?U3G%F``zcS|b?)4b|}I%_s$_8qhaEV*O_9)atB1@-6A-8ZwMja@#2|+)ZNuafYPR
      zZO<-wxThF;k%y6O^2Ia~ND{fpkA1leli6H!_bUlJU>J{RGI7%+EaQ<d?J>h~FhgNf
      z-BvX&Z+2#6yUUxd5`E4&AEIFq8Bq-?mgi`^q>IZk7XBL)MK4fs>B7-3q>mnQmPQB@
      z{E>-^N8bl&CDWVHdmw*;^k<s%;UbN3e{%^#G*7nx7{&;#sBdwJMiHzKS{#rVy<GT)
      z%tx9A!&m+AObgNu7b>Q3jR@$sh8y&4nxbN~n(-;0lWL(mb&8pt!U=Bv43R$dNvB(&
      zE@=vPd{PR;9I`~qkRzR8`X>}86!)Zm5zw4EM^CMX0#S?P*N8|^#q)))m_M^l@^?4L
      z_00fRyvr3w(YKe8_xGZ>7Q$Rx#8v6Zl_U;^CERawDTEdk9XZAF4$FVRJUt61c=(An
      TgXMYaQ?{x*(w4`t;-i#5H=%i~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eU2_v<6n?f1O%p=+C@mj_mhUEMOGH7CfE1yHYH5MiKvB^&ENLLw#AH)a#_`4r
      zxzihG^iKZ)&Ja4tjCk#ja(vFa+s$^fNe9P^Y~Jj9&U2pgoO9kcfB*Bxp8!sw7DShZ
      zJvpP6tQQN(dO2e*C-2_mbGleA1QF1%<56ZMlPqM6Tyk#dk)Ab!=+V$GZ|hzs4L#*d
      zrK(pn49@s~-c*|@f*P5kUM**``jwJl>UC4YiJ2y(vzwgt*op5-rjpMr74+MBwNzM<
      zU?VPHR}N{9p*TOR8Cf%5GB$Od@)**&=R)4dn;&X;5_1LYK-Oi|iI%@v3xRlAL*Pp3
      zfgVOT`Xbnl-5R=M@pKRa8uqo-JB)txg+P-Cg6NgiU<4tAWpyxut%%5KID&16hPgT%
      z!4bjUQqikAOS63@Z|JkN;*wrj5aBiKnki*7g>`-HmjQD*Uu6`(%1b+?LL@RMkAw0U
      z*07iGs@v9)npH`-CGI4isM1TKb}Q`7wS|nw;{Hl|qqEcwGjA0%v}5MAObIiGj(1l>
      zTRL7-(&?j6-cb+)S3VuuP>6(#sxxYR)Tk9Lwn3f_a2kTyQn8$uMmS?pu+E2hvywM*
      zsWvK4*2^qYm9xi$!jtu^UY0?u25~_{tU3IyVmDnJ^B_2X2Yh;cq4Zcc@=x_j7#A@i
      z({Y){lpnpc48)ZPu40m@tgfmfOT*ciU*lRw*0I&qX`@^-?cChQVJe7g9EgpKgm@S!
      zObd^X*#>SN3(J+#6PY7+h!{--af2mR=WM=|oSt(fJE!6JMrbuJ4lBo$lIo7YGN1}h
      z9ou$U*aPOeMjD3vl65p>g)~;T-$L0)ihI5KN~TcDm^7JpXJ$uo#kQ`Dly9Hjk{<L^
      zRL-Eq2+rYyt@sRI1o1gfr%f6pf;8@Hxa_9$pMvv@&6|30ql7jRMXu;(tzs;!mYMrt
      zhqMSI_26OZGV*P0>Uqx1x~+)TTx}RN(I+RVFY^L*gV=<9Tr}Ks8?HwyRdVV!ukuz`
      ztv+9>RkHe9R!;al7Cr?H*JCsP4=69*sv;wIOFKvnm)<5VA7O<1*TS7e8*k6u$CGVg
      zsWqj}#HjNJ>ZCL+4zr!R`PqU1|8(&N<`Z)Ns&C%D>YH~jzqj$T9Xn{fldJFOCq73L
      zYuJ@|jsC?o>}g<cVzhz%iLnL_B*q&UO1#9O-)Yu`qkIlA1TaCztAv`wZcJexuJQeK
      zUhC61#@&Pki{m)KUksq=Xlf;dy3|T2332`zunFDej#wQ@ydaAg*x$g2y*$uB%w7&P
      z5O4C?rDEOS-;7xdV2*O!R2(7}lFfnlDn{)nml;JEganVN#+qPZwXr}AKUE+DmZ6hK
      z2xFwr(+lG`X~Vs%egnM%_X4r!gtnyW;SR9qqSNcpN#Y&b-%H1pn?>h7>3rFiPE>_I
      z1)(8D_0WlX>12KByob|m=!|&PStgx)8#-s$b)wGuIO|Vm#7n2>ONVDOH9XIB0>nwF
      z#D227HU1hG7f07{>4peC_7Wfcg{kMWuaR0DU&Hk`cVxx=Pu>tB#NO)1jQSpChggN#
      zj~+r-`F4f7b@t6u4C5Od!ncZ!)xUA4>~Z$gEfNXQ;x^`qGQjl$n?(9IjXN!5bKKd&
      z7&{ZAFLC#LU|(Qt{1xtXqnW=|-0wL~&s5OUmV*;?ryZ0aEdN&wA*&3Q2py!(Sv*kc
      zq@lNjzsEN+*-;gKc6{s=9(J|F{(&<5=t?;1#Ev?#qju~bR$U@m3FliP`X~ITHQ}F0
      l{+CS?F2d-LaH%D{Pr~KagnwnizipbZ72BO~l~Q)W{1*e5hNJ)h
      
      literal 0
      HcmV?d00001
      
      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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
      O<w~1^>3OO^75@j*{_O7n
      
      literal 0
      HcmV?d00001
      
      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
      zcma*l+fGwK6b9gbVCcz~{**&0l=JzZJ9yy@h=!tqAT&T4iSe*owooj^v_*?i-@-dz
      z!f;_?jNbbKK7%h|{JSAhFHF4H-^{Gctl4Yr{q5(cF97C{3ZltiV!wRi)Q?I|{kdB^
      zaPDVi)~!^%%INOtviEe$+sl;PYBdOJz(e<i>y+H`zO$J>^a?eD(CNi4gQf@DS}znz
      z#d5K>XwW=4l{2uJ<2^47gG*7gAYc$*FP6QHlcT&>*>UqF&mggWTyRS{w^D4ZFM@#u
      zKTQP9U=*zgDOK&DST&eh|Ic@xH;8N>pHvFo?PB8|{!!hPMkxl-)pFUZ_!WApF=>$c
      zXL5tsUoBA&Rit{ULygijYeEP?JqBTg-@_^fv&^@j!@HKFxm||2A){=SF}BH8CS;uL
      zlI)Oe?34+1$#y1X2fJk_Q?iRaGRa=q&9qFhPxf$Irnw{gn3IFNEQbSPgh4sZxSU|W
      zoZ_6E=CGXMn4IOfbT}igaY@cICa*IqZ}5&>;ysz+np`F28V6;TSLH+Am5;b3A9GVa
      z;fTz0K<+UlJ%;50C*(8E%9qT@I+x`sZ^>62lCL=_-*7s2hR6rMyHUA_IABu<*d8Qo
      zFIH?Cb=!w`wjXD90AKAOzS|-Eup=gBN6mm8Gc$JF+_Wi^u}Q@IOiI!Csm{L?9F0ct
      jmg$d(|Gp~F2wohCo^L=K5`Kbq-wt$YjQGd9(2evj_z$iQ
      
      literal 0
      HcmV?d00001
      
      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
      zcma*kU2D@&7zgnGY11T4v-Mf`+BxuT&aQ5a^Yy~vO+^?KH<$#2S7{AhN|s2P%67GH
      zGtfKnLJ-*p*oW|=i2q~-cO!U_Uvf^K^W^+bE`R^H0I-9mfs(?;FrGLk$B}dL(a(;Y
      zcL(&qPsc&J?w!6GCRx&r{PEa;rXVB#lkY@+JaqQ^qhOFJ7^hc73Z?gl3g+%03ga+)
      zsZefhx(Zr1`4Cj0P_t2iu2AoVaqwnx+z-;Xem@En8ogxTN3NfS`FJ|1?-p$=lp!`|
      zVX{?r6pj^Iz5m<s3kB;inWTf@b(nufu0`wQK@{x0I1bVxU%-UR3eA7^X7%;+;Q28k
      z&yj2LV0<dUguzRp%F!=q6!;=*KdW9@Lf6yert4MYmh0(q+w}~&<9eptbv@B#of>kF
      znzBKwvPUhsPixYmwrtWFY13JGK<lzaMYidjjA%nTbY2{~AP?!H?9e57M3?0;U6CiW
      zDNpIDJfk<{x%&;)SMIh1o37@0v@O)MZFIE`&NK(-9Dml@m?^6GI{zuttPbyr^Og2@
      g)c>~8^U3KF`>FtQXcP_R3m34+yHzY-!V1>@0ORq8ga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&%SyvQ6o&sv(=@HoPFriOx)BRrP@`+bO+gWgikD#U0@HM8BWWsWEA<t88*w3s
      z_y9hS8y6N&VnAI8F6Ns#XU_R&{_{F~dI7MGataE=eADlngSKZ5u0^k9o*obnM9`H%
      z#lGEf{e~P=J<;u^pfd0)aU)Dm_)T-aekGkAgMJ%VF(_w86mL47>$|-zhQz|6#h_L@
      z4VebRh=C+DhHTCC<zByCm%*{9dy*kv>o~%*MBs*ToYXcWnG6!(2F9S1RIlZB85V2*
      z{PPAw=BU#T9J%d=@9-b)RzoWc#;)(nAaW?lV~L^sr#QptuaVFU$t2B^nnG)IQlKM6
      ziy=+X9aJJ<@tNneo!}|U*0^rjx@Os2;~&H{UnA!D8?nIWh(*3koZuB=Ng+(~S7JFy
      znBwomX+E?bkhv#i1qN{{d|N%kh<c7$^#UvEB@QV*QEiMyRdgMWF#eZGJEMGZ=@Hp)
      c87)l4Eyh;?a>z#lg^1%Q(w>RhCoqYbPhwwu#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iuf95Qb-xjpH~@<0L%=$~ly_KuyD`&`=J6LLsz)6hp+7lUl7K*Fia;_C>hj
      zB`QEj2=M@1@JNXH-Ad&KiHrUG{j=V&ckQ3Qzx^Ph1u7;f##Gu0hxYDHVDG+j2ix|W
      zy0Gr{`d+Wp+^czEHE{d=Bq=7V<Gy$8zzw(T^;XAg510~rxP>Y9w!x%V+JPVXgJq`p
      z%&fzts@+X5MNDav5~ML@Ykugh4R=~zZ^LZ`9#g*7ZM%Wv_I%{SqE?C87!)VVq!H4k
      z)nME2Gfmh2=WUmmj7E3ZYkMm`9%B8qsd;RI$y^OXuNUpjlif`)75~{;x*eT_oSSS<
      z&QDfgQ(`gFDJg>~B|+X*YQ$fx*WXjkc*1Ea<unsAG#N=5y3{NUK(cgAkOB<EG$u^M
      z4B`lo1uRVDV0oYbi~?i8I4}WB0!82$a2%KdP5>u?Q)qu0{m#J7qIM2ef}IDZfeWb3
      zBn7jGbBGsVmtdD+^MH+b1z12Vqw`hRHPo)dZoqEB7Gbx5+lWiB3UCKl2JT|w9_&8w
      z0I>>t2s{E-P<xCAJ%O#lo?_w|tcKci*cxmd6Lr`N;3Z-MwgJ2X9OZl>V?X+wrm##x
      zWssrLw5Uw#s0@8nBlJsU<qKO}Ryp2OdH$dZysr%YtaQpmt7RGf*@NGKY`L=36LViF
      fd(>V-@o<TGa0BHiA2ldM9HlY28qxA`nxv^eZKAnl
      
      literal 0
      HcmV?d00001
      
      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
      zcma*l-A)rh6bJA#-R;+QOAjrjEuf+z0xBzrpCG7J6s=GNtJSNeZfMEUnr$)gB0ht+
      z#tRc;d;l+f2H(I$V^H+W9}>JV@nU{^_RP%LJ(Kyg`~D*lO;909Aw@%L%}r-(!*{k`
      zxShK5q%4-*pzQ@i)$LNfUG&{{J4&V^UUy%*j_)?toTb%uuhvl%-quSLg`O=dip|vg
      zMzhhGRb-5eRuq}V)^jgTiV`-3DWWJ<YBasY&5czrSaDZ<Pf@zms=0o}4I27=KN*=p
      z8H)^Jo4P0_r8@P7d}p}yKYu%|$Xae~1~qTKp+CZZH8rlAP-HJOn_ht4Jn1f{sPNCq
      zQtjX*<lLk^IX~H<o02F*F^bAi6qlDGnUW**ogaUQSB+4m8V*;g5gE~Fr5cmL5lu8A
      z#58e@6%!H~Ta(muX;Q4G8FsVYnT8qI1GBIf=3pKcU?1#<1Mm<$%)0&&I0%n&Tr$Vl
      z7LUUrcmfW?lbn*-5je`-5|6=CoR;`BJi{4@$Dsqy!U^t?{3JYQN;suC&sp&TyvV&0
      zUxJt670yX!8qUD0a2C#SUS_Ys>+l8_BvXVp;Vn4NeUiTo?{JsI3-B(y2TRP7zt2f=
      zku7lvmf-{Lm&`-B%n6BC;3HTO-;(tP7s3`NNi=rIGJevO@r!(8mtGsc>5EBf&{XQF
      z8B(uILwz<)_0`x>-;5uW#BP!+B)5L=LXjg+CHe5!J4zjtkLcw77JF|2byFGzGO&lT
      M^0ctMm-0052kmvqH~;_u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TX)+;5XWbe$lf?^6HnT-Y14bs+?u#4cL)VpRvf`vQYAT!3DhW#k~lbaYda<3
      z@+~;+XMna)4iB8eIq(5^<-736VMZ}^dEgu#q~Ff$?tf=zc7Ffsm)`(j3BFE3pMa^I
      z#zFRQzn(q3A9i-L>n{D>u+@%QljS2j+>eZU*ls6bK)}de_%O`Y!^Te5+1!h&9RZ1>
      zc#VM34b_|VJFQw{=N$oZxmvF^YMt8x`e$a>1PmC>ttbgY{}MZ1F5!fLp{TL7(A-|w
      zuGJ$6!vd1Z3QSK|5;AmJ-YQsuFJY9FY`thoI4z)0xf0G0J>odqISJ?4CSDMr8BVdN
      zOSnXvT+5|RSIFrr-Cvb(O+Y&Dlyb_fbUjnF)4U^LnrPGFSz;lOFi%v(1-eTipouIE
      z6c3hISd}QQS4g;M**tuWmg}_q4Vv@=-IMSZU%*j{$CMiiOF6cLcY6_ZJ@1il-l4s^
      zfK)fQ*fuDmx^0+#;E;w%N&LsEI9|m!)ry3IfI&S7JS$h?*epJ1)lzv0AF`V18>XGt
      zZBj1^z@FVxa7bZ=;&kp>c0s}&0ht$O#kX=QcKfu7OW?b@LFbg{a<1-~EPR)yT+cMj
      ze7v$u0x!&-zy>EK4*3(lueBzjLW811p@x(^zG9Uex=oIVUILdf*545@=6Vk0!KVW%
      zmhA^#$p|dYW{p$>bDg62j7GMTr`Yx>2PIqg%7Y-FnFb9K0)|zs5!na(n^7wWH|ul&
      zs%AB;uZ67|+g)d3Iexz>=!Z@kS|CZavs-Hmm{$L*bEwiOzj@HAMl1BDsbnv8*dn(K
      zmEUSKqE_5z5p~*^0>=MSnp)(gwxlkm3{f}J7QPmZ`anXGKB@t^pTGe5KvXhf=~qaV
      z`!Vg8GeY1=Mjwta`Vkoec#5In7$bpa8A&|HkT}5@#EXm+US<s8RYn>o87J^M<0Q^7
      zhH;KDf;Si$Tx1~LWQ^i1#wmQ2aT;G|jNzM%Gx#>+EG{#~@iyZezRx(1ImQI$85eMc
      zaS>M;m+%9|WmJqSXfv*&%eaOfV-f?#6s|F@<2qv+KVr<_$BbFL$C$%U8S}WwxPe=Y
      z1>9yV;w~eLdyJb{_kV)Mk8$Gf)BhHv0klUTwZ|~5eGBv2ckn=a0?)Ol@Q3yc{?xt~
      zsQn-e?YY>{9*KL}H}D|d4OA+6U&n=mEK!hOoBJ8sJ^2JXyIa!73*Z1A#sZ(m|3f$;
      MrsC~iz*jKwHy+9>2><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcma*k-%Aux6bJC{xn9?GU2~46B^4D2x<PLCQ%WRRkjza*m&K)rnB5)Lk#W{$cSRwJ
      z{sUhkdhem9AbOA_`UC1e=%N20f_l%svkKKi(8HY1%;BDU?>Y1F=l%x(6BzD-5scQt
      zR(5+M$Zl`C&9&_6662B^HN0q~w6pAoRc|{NxQ#{^tiV}!x7=*thPCWsdEKit1<9SG
      zRRVK=h2K+^zz_ZAw4h@wQxw=-z3O#C(33_d5`w<GA9@R|jj|UN+;ZRv`t$XQ8x-Bh
      zkH3$SiK+HBDRjU|;~0|Ms=4Mj1eyGQ-uadwwNh_I6>rv$&vE|fZai*9ke&-eFKTz_
      zvBwjF;eT!}=>2OXoFSX!ELjw{#y5i`y7&mXna;s72mEjzzwa(}IyZ}@ge{hmDldyA
      zr$_OWoYI2_<g7EscwX_9j3{1_ag|TxlFA^NP;-%7R&$PAQL{^~s+l0yR6dg%&H&@2
      zGtW4sGD@aZ7RYVI9+`0>#)_KPq^9^nd_Aa=KqbD%hRQP%s>zVLniphK%{%f?%?ydu
      ztdfQrpET7xAuTmRw$wPqw@AHd4<pTZ9le0PgM^*KkiCmDb{-=(k4bwE1-pPpb`iUF
      z8PDws_H6;*xc0l9jjK3Lmd5}7aG=OiVXpJS9{PSCk%*H=CF#QjQ1rJq7-+}i7^JCo
      J`4CRx^e@ZRs9gX6
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O;6Nd5Xa|%hkav_4kAi0F)AvUKt)7(Syo<LP_qKMSSX8!?oy$obfLRTASQkY
      zzkrF~z<4k*#)~)aUQA5%t_KfZcbq;CiFz>c(EqP9ooA;1X+JdHyaRwC=#E2^fJ>V}
      z-8|Uw&4XR1wq>p^u`W4b)eU>?!-5xVxCgVoQ?1593NW^veaG~jVAEVIZM)@~fW+ZZ
      zm4K#Vf#Xcs_X4k$70}$*ZwZjIl?^uu0$S710x<#Yc`tAm>N_PjTy{#nE1)A^DLcO9
      zgkBUMC1V-YCI!u4q~RDOxK(Y-s|x7P|K~eT2uKww^|0*DdC?r>4|ju+6#?lxLEwhU
      zq01gm3h4f4a{+CCt%P^TCV7{9D6+<PO^|>%UjmXGOoHSbh_A-ew@JI%cy8G(*!W@D
      zF>L&_?0A$&AfaU&F%6Y6I5)<*6jCRn73mzK2k9c?3^s^y7O9=li!{u*fOMYGhm>Uu
      zAk8oak>(j!kUAJcNCS+kNL`F!B*D0bWHLsu@trY>w89ueiZRBKRv8&RD6280=S?H!
      z_}MKan~{rr7<1aeyvA*nyQ_`lkvy)rXMAK`&;^Sc_f_2kr3IzSN*^k<l&&aURcb3;
      zQ(9EIuGB$V=jLVY@-fmHN1OU>J)|N>+enWXzIL*s5$JtX^gebq_VijpjjBdXqpo+g
      zuknP3zk<|D_36{BGhhJ75ondyAuDe{PL4uejzL9^!!tPn?_~zQ$w|>8vtmWw6nk<?
      zypYr4lbjKs<%swqhoMb%<2KP>uYV;lnS%2zmtRBs?{Tpxd2}SL3jm=*H8`%c6HYKw
      L>UbBNg44eM>T?bm
      
      literal 0
      HcmV?d00001
      
      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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
      T394#VGu6ddJ-mjgW$OJ0<+`0y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5PcKd#wO9$))qVpiXR1o=SnX{K?qW)6tCO3q$}yB?55KGEKh<5e}F$q
      zoK(?*2=2h_zM03HdHeSM@(SP_Z5IyVFwygHF-^n8OyraBZoqjUjFskKxx8G&a+a%1
      zyC@Nw58_dTsnALI-5^vhlva6<&^nHO2*cbcopet|gi=4dmmW4y4NyjfP>Yn7H}mOO
      znp-hWC7}^zu}DY4r~-c#OZh}u!cp|E4Z8$)Dy<dCO7GVu1aFwlO)RfeF|od8^sFEg
      zf@`g%>8HY4X<h6R_Wqnq@Yj9^`ylpL9O7V;oLxpeI2=IbwDXM3Cw@8bID18ve3U7G
      g&$#``LVzts%*Qrrtl^-}$iWU8e0wYPCR(U|0ITF}4FCWD
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-6r9(O#Kx~^d+{iEXfH0FJxYZ@p#?AEZH-G!T{j`wg!Hd@@CW###4(5z
      z!OMHh+j%o@_T%&I9l#YPA$o%IwX0S8YE@fk|E%s;tSensro7m06Iawe#6S>lbfcBk
      zZmpJ&8<ToLsGl0`QX}Y3XAgpC-lnGTS?;P3Bf+>^$#Rt}e_sScpT8K_?Ic8vwlx(d
      z)7j#$!!;%E^14jTZDz@dcW%4<CJPP{=S+EHbyXRfo(j(Xjl+X~0tEv4^ACVNqYV)d
      fheQMRJx(I*6Hp$9oc3_k)nml$5jlbrjDyh^ITcP1
      
      literal 0
      HcmV?d00001
      
      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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
      bLeN8aZvwsq?~Cxh0Pl<OJ{|8%DEt2a+8A3V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T~8B16g_ua*tV=L7OZIfz>masW7zl%(FYQ=rh-YE1|O$&QWlq8vfYx(uhK+9
      z;sZZ`A4NQ~+prH9!^7OUcXIAI=ia%z`f~x`EneEN1h2=@)Sn%N{_I$#2mbyS#(w-=
      zN5QF1UKOQ{vS9g8ohUz4(b(S`9_mplD5pP;wLm(8(uoQM^=<*`rAZKtHwBAZK@_C#
      z2yb=T176$lH(i6^j)N-h3L34>%|3&4yFsLPr$<Ab^wlt=RJ|LIR5(ycVCwl}IXws_
      zf_C?o<80PY!m1I!Pvfojph`0j94uhbWDgzKs0i$_PWyVsIagcln+64yG|q<<)OztW
      z8R?zCm|Q6~XBN3(b|P>(QKXaYP)#O!V&l2s@&Ejiv!KB`eU<og77uMQ!kA<%^HgEh
      zxy0-}Q3hjsO*x12i>U>dv6el5VCzRLvu@-t+(Vs}Av3hXj9)S*`$~)vb-i<}c+E33
      zyf<f9D@f~^`X|QEY};kyUPiv2w_TIF*W_;I+M>WCH0LrtZzH_m{l?l)Cb{F>O)n#K
      ea=@IBo4Z}}{y&;6Jjo=U;u&wVH{o_)pz;@yFpN|H
      
      literal 0
      HcmV?d00001
      
      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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
      P_bBClW^L#77;^pzAS#+K
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kU5dW$1LUrQ8IsK*3(L1@G9#q$!eMsxh<{<?T>Tbj&zyIs@vb_!mkP
      z5+D2k9{mFU!1!oPjC-b2DFK0(?(TE;+I#JF*6jWH@)f{5iW(Hc^eeF?@}kwUq?<4K
      zAz5lPq~n<Dmh2p8PzjTr!Z&XIiLj;BTeMp9j|g!`woPHxW!o{E_S5A>0zD)Ql$*BW
      z3frv<Yg2|>d&SDPXTQD^`rMbMlbj<AR}RxC@O{y=P4_-wEOk^tx=v8b%?%j=&o-bV
      zsw0Gi0RuyXp)RP)x!?g}71NfFH(#&Ic1`e#ghZv;VA6uAa~>S39yP+u5p#Q2_XT67
      zgD<4JFWXAf>pPoD`{=iM5eRBpru!~`u&xlnIb6_io-pN!aD26ai?~DxFRhdwJs>1c
      zGk`F1fL+xUuB=LzkU5cIx3=I3J8j@HCUwl<iiTMh?(m}-NFhz=H=R<$HMdxWP%6C^
      zK^E6ETn+5@{}ugl26D*r<Cn^{<vK6fd4m%`OmH4IG+bxhkC(B#l7XAJ#r(v^1|ik)
      z%1J}gYwT#Y#i^=UVs?gJZEm(3a>?{85$$|XIgcU1Shj81E?dHJBsY!k8>3T(N%nP!
      zKUM`32&0cP&CmMdanJ1hKLnM{KEO9;I9uRKg<~|6{ft;9yNkh(K46%Cb?=IPB1}Ip
      z!nwg9F2yLuI1<icJZO{S=-sK?nE1d^frt0TgMRm5)qhyFMSy)CP#DkbVycq)gxC&}
      z?-9*zBeR3K)$D%51apU?A*}QxrbIBN=zjB2e~0m)d6<Xa#vN|2;I2<*0rxoSe8S#9
      G0qS1@%{G$&
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&TT|0O7(KhR1kwm82ncdlYA;AcLFKAYW$f5d6oChyLc61J(j=3l4*V8>0Ixcu
      zBlzH>&iJDozfA*{0?8zMJA2OgzWw&k-yc5#%;Kp6&M@}D{Ae1c=h-4O)}rR-_UrOm
      zy=u8d+wv4781x8ao6bAq<=zKT2^F+6^qtvyvVozk?%NDq<!IR<TH;$`NK}Z9VJMp4
      zHv+frRE@x_k#g0LQiN$=wj3*5Wk_ewZqMxyLD8)W6>aF&kb+J^+1ySi7<x1)=wRqB
      zTaI{9uk8u{jk#wFS}D5~)7~+COOE5oMEKqc7$zDDmxoS%ly@SO))<Dfxyy}96GIw0
      zp{f|hsDhC=v8`c7Y27*qLQ&H&fNK&yu3-X`485ckt(P3H9&UxcFl!9=TN81ii`IQh
      zDcnRx!4$(ac?_*SWK0@vAxl|xJ>f9q8al1ObHuqF1$l<)i&$m)w;htRY?<z-`xW7Z
      zmg^{(rtqS2uw0|`vT0$4VfG@bZ6~OEp6iFA8d=z|n)t}H?Yf>ySs#^w-qm2>9?fP;
      zvQFA-2aQroc(!>U0S`1hlm(LvLemck7=*4T7nU?EK$pE04Xctv4@9`(n>DfN29`9>
      zpl-Q!zapdshE(H@%t+G=TFG&QU$o625P^asRa_M2nW7?C^Nqqd`EH{x2~ICnE?q}1
      zi-+1I&8MKz{|b#ZA_So3zoRQ(_=fbC2-{2lF5&<mLV^#YlaJsk&Gi$W(CDL{eAI}Y
      zVN%vw%=w8hjMf(NUy=Te4r&HJ=Z|px8wO=xP9I_H7&kZ$q3s@`gTBOWo{@Y6CSeUX
      zkU=hL^C(2^3~m#(w3eY@z$c*aNoafuy*z^q&mzyKF~je`;B%Pc^O0p4Dw&BbGdf5;
      zHu@?KK25>jDHnc0E%0N^a{SLh4-zD_h$LU494tfUD@}Pw$D~QJH%GZ(^v<8sZ_-F+
      zOFyCSEF9xLJIB68?CZo{L^prZ#IB#Rr%u_amSXd7WAg(i>^iY8G8Ed5vD_R&KOH&v
      mGZHD0$a4}Yqo2QM5*j!a>WPIo9+7d5$5^Ab5!gDOK>Y{PzcNAq
      
      literal 0
      HcmV?d00001
      
      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
      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
      bIfl0h8N;vf8?JqPy1?DvGMxg~-y!~gRN*{`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i+fKqj5QhIn<WRvAg5o*xLg2#2Ym5m&Oo${THhN!iQ)|k$DO(S(=7kU7Lm6kc
      zg-8Qe)9!rp@65mR^ZWG;;1Z{KWEkqN_M2_mLEv#|c68|aLh=upN0wnzr#)LZ=J4s2
      zk0e9M;j$AwyMEVm1BUa)Kr@2sAMOY3X8b!<oPuqJ0u}bhw!;}tmlVBAQxilN)it^w
      zhDL(xJ}eo!!b#twNh&jDWfK~%k#rMD*E4$}8uQSWt}m3n<vPNaQAq8W%ebrgVd6`!
      zsk$_I@!xO!5h)7tWGg+-Bg0whES8!Zfha=>S&|x|eyfY-B&ayylE&utn4z_RiKSiN
      z?28~u$aYhy_dZ5EP!mt`*kh>Zr&8c>mWi#N$~PCtCnl!!8Or2!TzAJmsr}lVjeV)i
      z_Cs>3wJ?#G``-~|tzr35IO4aiM=!HIw~`mC{Tu_s3av0;(1xxe2eqkr6m%@Y&~XhV
      u;>tv2uul06Z0hq3Z0Wd-ijF&|5?3QGOL3RTI`(zu0EaV$Bl<elS|@*6-{w33
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*Vu};H441F#%DQzHyfsGX<3lVdtQiN2g5~vXjY}a5#SEZLKxm1WxW8ee$D1>_n
      z0v12{*?xZZ=hyoOfNPxj=n>A>YNryl-4<+<se{xuD<6l1v8xrz<jMVN&6y<(bUn?i
      z-Z9}Iik}H#&i1y<nhhI!qiW&DQM_=2Mid{HiwR*QO|$Za+lD~02UV#JTdoL~QQPkJ
      zq_)x~pL7a;DG`>r*5Rx)mS4rr#m}yP2Xtjw9JKtBYyBqH`q6wIKM{s$*;E<d=|afx
      r_v)*?Z;v3y$%_C_p3sMf{WE+F93FKz#K`3VjvbyLlnHSuv4_)dOS@W_
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh4NW#Ii*F#DapH)DnHi(v-}6=bX#}b_Nzk1_7{CPGVlV
      zzJF3yYH|r914}_pVkIL3vxa6EkW*ZeUjU?X@<9|=aDHh~a;jTqPAVe<AKWB8kRfc0
      i3_wjlTNxObfd;cOurYuvV29EiAR4HG6G$>KZ~*{m9U)Hu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%SyvQ6g@Ylji!x#*$VF5`2d6KN<^xH65O=L^`s7QB%Qz{(U0*fTnR4v0se;I
      zXNb3{qTuG<IfwJO^Y-~V2XKf@2Nt1oFCK(19t;2EW^!gsW*pdrRz;^mCw@f|+PO4J
      zq>(ha%JlWcDS<8t-YC;~A#@Rmw3M}v`BS`RzjJW?NNH6Bg#J$W8#XSC(#dc)BG{ws
      zR=QZhdJ`@h+!-n@ugY00%|yhhBy_`U%9VnP8Gn;@ai?-ZZ<+e{@*%;Q$vhWH<^9)6
      zaK~9`rt(}Z(!HM_A1svE2JtcAxrG|)yd6dsR{6zFG<Y_d37E5Z*Z1~c;5}EG7EiZg
      a1NI)H&3Ld>p@S|X)}x1wDyz@P!r%)#7glQk
      
      literal 0
      HcmV?d00001
      
      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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
      H3>W?fw#<N2
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%SyvQ6g@YliKMN4*%n>t&IcG=S0Yjsl;S3}f*YCEp^l^zNha#&_zSKC7k+?y
      zKf&J+Z&Ojx&AoHZJ?EaeuOH7Z0JhO~VG)|w;#T<L&iH$0{e%0FyfG@)E^I<0A4Nis
      z{qF&xn#x3pXdsi6g{MdR1Ue>^yRlA<&}JZ_OcvfBF2eJbw<UtJqqH&sC$05<7KSEK
      zdfZtb5bSPzDLu?#p#%>_LZzp)Jjo_Qne@dll7xCM9&x1LV8&mhZLU;GXwSC(y`V#I
      zCo)aNIQRccCU{|-B_nyLrU|v**KbYLSOxK?z;zh~INV)E7UucIZWOtem<gD(xH}u0
      jPbfd;nhIAhX9M=`qRO~6Q=x`BBi5sV#e7$jk%iVLoxfch
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKU2hUW6g{(Sfl^APTH0FcCo1qD#aEgpge-vwzR;lIrJ2H{tX*cC{iwm;<6~cZ
      z(ZmOTfIrH3cCn@;^g*-9%)MvN+;is6{rT(r4*)e(QZNLzKgdg2l^=s@<K6KaHR}hS
      zd#;ML6wK?NVPHGeuC342xGnujPhJS*dX4ud%|^3ro%B0HOF(o4)|;;O1F3_7bV8K?
      z(hx`<+S(3|7?e7#VR;~6Hr=txAc6HPR*@0dU~%;}oSrK0Se`mcV6*Fvq%)A79p!&O
      zGnm-Ez;5>z%XNXZqSUUQP2JExSjcL0*jhkd6B!ERJvDVNmF0|;A6Po@W&%5<xkP+%
      zUbh(I^)l(JefvzyAoOUmy_9yi++O___=sgQY}11*_VJL-@$FBnohX&r(4>lO32ZGj
      zBv4rF)9m89SJtuv|7=Yl(|1E}q*`|LD*2lu@+x`-fow-><ux7Y`-+d#xuLr-GXJ5y
      zVd;_M`nEpnsbJ!cQz)|&OCKKxY#|4Z>wT;s$vwr)-~<}nIb}rF7#+jp$H}bh75Bd(
      z`z2=OxMpJJkmop%%qw#q?jX-Bn&r*7ZWP_cy_lWG77Elgv5g%fyW|;kFjq2SPOkD5
      zd-*gzW5v8mT#=DLq!)PvMzL05&it#D!y`QA|0iT*V_t+jWn|(RF#|<B=N{cEssehO
      MYrnutW+qC&Z#m8AKmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(OH<QO6#g#620|1qqN4TvYC)*t+X9MMv{EVx!l(-;lnaf<gh^7=g$o@WA2W{Q
      z(i!(`)kU4r8FlRsaN&<pzoZq?Q5N^!+;h+Q&Uaq<{_E2h0Eci@MT5Y`TgHNsHtzcA
      z!KsN6d4Jq@o!fFxuL?zAZTM&z_FVeX^etKRRm23gg;Gxz%dY9)Pmj6gf@#S)IWt)F
      zO~)39^_jNm4+u0SQ<DP9kTWASG@?a^iY9^9ylKlq`OdU-CyZ%J3dHkH(Xb{B*9`78
      zq2iZJPoN{e0>um+xMliVpG;MCB1|(X+M?0P1!?<f2AB;#G_+%*iVftl9O95=c%F_;
      z=n!b0lm4(Ntr-$XBvUsc_^zC_n2L1xoYAlaTU8|f`U)x3sp!~-?E)$h3&tG=TThn>
      zH|@Dh6LvD3$&s5Hc4M!KJ$2cyD(TpV{Q{cj8?Nt7nSM#2JsF`^!%AImMhaajI{E(J
      z<motoZgN_<?N<xXRz)fMrj@>6c%@Neo}ukVTE{^gVm`d`v==fBT;`(rt~m`7aahL@
      z9AzAgRbXF~TD5;NQNx-@!*QHcaYA5S$TiAA$0-D5o-Y&c#DDN2!LRH=MSop+a<(sB
      z+pw~(>$n>F&=PECbPVDwLk*gD$S8X()q$wXiIVHw4boK?#j;ezxw?J|;Z+O^v@JJT
      z_FhrW*T!VF)?k}gZZ830a^<*Ymqy{=9%GIaJ8Z6aBqO!T(3YXJM;?|)&`uk7%5G5(
      zbA(xe=ue<0U@f5MY+JhFa7a!=Yt}AWj>n!Im43;YVSlhdT&wt3Y2f0B^VZC-!#oAg
      zRh=K9y$_#t?pmn!016*h^R8Ewum-KXvG1{tdjRm0Ist4U9<N}1zUxc>B2rz6-a>Z;
      zn@=enN_<BJyWXJv1Ckv|tb(3yQ9*A7$EF@P{7$_6{bLbrh0o}__7MZLIsFYoU&Xr+
      z{Ul4CC6j<r4_dfCL=2DU_X%ZB$>JF{;5l~S1$rs#!%Otz74mo;vL2u|nblawZ~^DJ
      y0^V8VaFNJsu?r*AZzN6vqtsQ1(27eKqpT5^Y2Sb=80V?cGDsB=#{_qU1B^f2QDf!+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTj$L6#iygDO)NxadA}y5oIsRf_R6J5X6MIqRA3S^r<_HOR=_OI$h*nX`-0;
      zV0`vB8RMDmLdzvSw4Hu)F5fxdIluq@_z7SRixzSWqq}a~t-1TEw!F3RQXDjt3_pme
      zc?%}PU~=iZL96z<xhuG`(8DmDppoFQ^wdG^jr7`{FIr-I^%EC+$_s;KuHOt!+x4fS
      zxXFDtiWr9KX}lE;Eim*fdV!~w7)DBGZp)ht=1RCN@?f~=z(TJL0|O577-TR?+F+pW
      z1!6t^*c5WZZTf;?xE^xX-*ly?|GS{6c08g`>?Ao`FHtdMOq@qb<qVNd*>q_i7Z+J5
      zGK{CCtcQ)5@4OOfCrn#l;Tpq4YP1$a$_<p~>dqX;vM_ei%BM!U{xatxiZWK?4AnH2
      z6z_c!qqY{bsZt$q!<8+ejvZ{=#4QVx)Sc8T>9~U_+-4|{^>ab8NU^;V5;Ylf6-tKr
      z(z{Ic9g(vAI7*#yTCg#VvV{`ESeoq|LkAU9Nytd3PJvz`msxsS-qbPfIha9>p)U~o
      zopy0jbNU3Mt{z!RUC6>5!{vm)X>}PGC&e;_ox_eaE}R^kgT15Snf$-&Vr5BBNF$6T
      z7cXcRXw<XYG^1J3Hmn7KkV#JkjpD#+!2K}tf>vjA94x@5os**FMM}s<cW*FD({Ipo
      z0c>zsF9EG@j-EVhLi_0Sg#I;RSE}FORKBDCOJXymvE)X3|G_Z*JLIF$OBkUqwG0Ka
      z7)>w}S8x^AaU+QucB2+6U*WJrOw_C9A?{S^c=s1(x2m7X$$(B$pzvS@dRY#6W}=^2
      y7-hXlLLD9`b`#R(;y&gn@dH9NnGW)hP6i$kmcwHzNK+);=nIPSl-?#a;@Lk(H!@iO
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZvYPfNo<5XIldw2`#6wc1(*LGa)|FnF#Mv?3}&gw}fA#-(maH;`<s;>nNXN$}uZ
      zKa@Dx7DU>^&N8!aes5;Ke?C3|9AVvo#ZVveNAB^l_D=4)HzFR%B$1JFU^8r*w?qVK
      zEcLT@$`cv<Nf;`Lh$RnuBF<WFFV7g*6+@{VsYG+7dpt}<?uFZ5YTJKh$RA53b&H|4
      z>l<{))xhiMSgJvDug74wqkG|E0ZT==C@_?Lsl;_U>WjF``=MZ{`cXiZoQx@-7H$0?
      z6NbiwI<riZ$cm3l_lz&Y&YWrH&*$(!)23wQcA_*6#JMyx{rkGZ%!2-x(H@|<fgJL5
      zJCs>iq(ki}P%KiVMY%<He*fSdr8lD~Q*=#LQtuEI%IgyqmQkgQ^jN_vF)~(d%DNy;
      c<~g4=Cf1W-ZB0}&tc+SGYBu2-aV#``0cLP^bpQYW
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh20r#Ii*F#PSk-$K;aCvQ*cy)VvaQ1{OvJ0kBL?VqUtw
      ze^ORzatR{?M@nXKL1IaA1|tKrhGrNe16Oc<X;E^jTV_rwPy><)dLYegj0`}9K+6~y
      T7=Z?|GO&SI4D3LXiGc$EIg=m7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ%TB^T6o$_T3Rby^D0p{cU?XwusuGM%Doqf(aASrtA%pESX{YG3x$pseDC3zj
      zU_)HZd}sdi&$)d6e0~AI4O|vrgFt;o=d?@TW!Id{l33EQ&kB$yP)#3vDyCg$JY$|D
      zU_3ZO>%|$2Oq&3)2$XuEz!V`}>L)CRwm_ih_J<>@XWEJhf%3q4#k@YIjVx!NqWEul
      z%A^x<CM1<S6a;eZ4muh!laE~RAPETM+g8WL7)n>MR6su#g7jqxRZM*rTw215Sb)aZ
      z17@y;YN)#NL+>pktD$T?rrcZ}a~y{mgvruvEmTx0)jPJ0Ci>c-lgVP5stlXQk_i?O
      zxN6(0X|p*#>6vF$x2oeNHW1F)e;&qDm_#1C=RW>f`P<pGa^AwVfEsWPTCfRQNCh=+
      zC?aoX*g)RN@Gewv<s~SCT73no=~>gfr@5|qUvoqAf#yTaP0cOMN1Bf{pTKGAf2K~X
      J@jR{Z;uo(smIVL+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O>YuG7=DJ`0&XdlepjqtT@&CS#iKP%=w?Ytz)KrqxHMCkl+|U1?9R5SzsF-Q
      zUNrIG5Aa7B-x*pHqGpnLzvp?Ld4K-;{sTY@FAK;q?0(=^yveV1vmMVSJW$h_N+T`&
      zRsk-<wk>BmikrPieiY*qo=*CF#!&9J-=7EV;3Pah?G8f*)@4`;luR|3dcfmMI6x5$
      z`L~gb^bt9=Zf95@Ft~vl3l9!fN_YT|VU->i@3QHINY400EEv{$YQ*CKPa+fFC0#v<
      zQif{pzoZWtmVGXjyqT&jJy?iZ#IduGc}<xiLnRSYbtS@hEK(gxo!l_&)aD>oItlh|
      z{;)puNYSGbs(4H~(&!U$b!v6eo)>nWVe_Ap4Bn~Al9A{{M&J74cfT@<7)o6!MH0k3
      zO$7;E4dp1Nb;!%U&=WN-z`tL~-y6dLF{3Xx{IG;P*#bp5+Ch#i{WE2j$vcBfhj!Db
      z`g`9{`eM7vbbGe*4b2fY#f^C%9-=~#+2)#k*LdsLu-!#$VvBHHY-8sR;g~80v)uTK
      z-AWOkvE<%5x0K1j;23VevBlV$cmBaBV-HWL?%=8Ie}?B|4R<pGV(@})7yH0(_8*Y)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZutO-sW-6r63-uNZBcR;yN_$F_(;@umnOh}EEnN<h50si93t6G)T#r#vWF1P}fI
      zf0X!kQ~c~@cXr-;GxPTS<Mj=|4mNX0G1P{9!VP{O8AnkRx^^5n7WZN&2Zf;|iyrs;
      z#-%-UdJ#irBB~6mL)hmdXUtH!F~1wTq~iDY8L|hi??#7Y(d^7=Xju%(ad79TNMlh$
      z0ZR<&X3Hvoj5TDC6-d{RL!O~%y1sJ}k8CHr;<iT#bTjC2&*Gsg-ZN5(1}-I9O9K60
      zi*n@$d^`}w(vH^1M?n&rq1tTCTSe^#aoBTCT;W^!{ZZRubu=hyn!YuKl1NTS7rE&c
      zYym3O7YJQbhhU2B7ijJJl)%;$<tL(2sL-iHq4Si^Ga5U`5=>NyX(VG<#tOYiK-w^g
      zgi(qNYFM4w7<7wTru~fK1A#<5D@jWVYDvRPkiHD-#E6W0QVdXOxGV&AAO9%a{!mcA
      J6zZ~T;}hvoYgqsQ
      
      literal 0
      HcmV?d00001
      
      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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
      MjLF}XP{f=64MfXLw*UYD
      
      literal 0
      HcmV?d00001
      
      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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
      K!0l?a@c#hC+5+(a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUW6g>kAEV$ab)l!PquUY}M`1vF;p%m&ygvu(07#{{$aO%2C_M^V~m$VN}
      zH2MSlQN}w%Q;qe(Y%+6Z_S}2!xp#j2{PG>ZT|CSn!BE=c`@G6OMAfZ$GI4?ipYfq^
      zMI@YXz2%Bo!}lV`i^2>vhWs(R9z}r|#*x$KZtO6mI`wBwn_=m7TX9_OO{+F>yy+u`
      z?90w}vt@Of+YFUC;XfoPFt=52Jl*MaDV{WTdser{kZyE$EtyKMja=c0=rKdGRPHlq
      z4S(!pu*k6ZcNIEJsw4Ks&O~_5SjRcaKIEf!)4-=&9m^yz3xpr&SRsv(KNHS43x-t#
      zDWr3RE*Q9oHTqdQQq@XUxi2}F4P>B8bk#t1j@Aw2=4ivfDd-FfZIbT9?}twCf)8D4
      zo7wh9-0kx~$g{f4A&H6<x=H;mS^wy#avHrAAyvFTZ$GohjqS(5$Y}|gIDc}So3bSg
      zhUIxQXP1YeLsPxaP&}UM$spqY`3mUWP_OCzq_8TxLZ~2}tDStSom{J(Jky?_)xc?r
      zJ42_B&}apoWWHfxkTlQQ1I=8r2PyNsJxH5*`v8TnV1wi#iU+tPp{C#!2~!GQlQ6B|
      z^-q*5fg7~0Q5`@JD|n6~USR`osM;}V*uxImC@H37(+rQQsgsuk-DfMs&nO(C{5xGv
      l{RpY}NQExXiMXXqQ3!5hlhPzmRf+GA7--;(zI%9p!Y{?Lvzh<^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(G+kE|e9pfLO(Q#ZoHuegiMiNJ4^_2qD3@Z5hhwvRn58{s8}g4_;q=
      z)kG7KL=*K%6CZu|5BLL&@xl1b?%J;18f~&Ov){})=iBdm(@#HNzXfm@6AEGs+iz&A
      zT2Whbij(fr61PfPO)CpsID*>>;tW0B0bMhy#Vh3-yy7TGGW0g0CEYZ*R@ON~V#zWM
      zhhcE0&N{uKRe6|nj3HjuDmQ6b(nXCS-#8piAv;B9N<_*H$0lfUTo}SR$G~$9SXATx
      z_WmU|JWolM%tf9;8+ufz*v!zD8=hCt%dodmf@xjnRZX9;s_qIUdhvFJ*BoIQDWuWU
      z0fsFq6tv6LRuvuoYMY7_IvKiWguySnD`jrY`DIMcm=#T**DN95gJ9fQ7B<6<#-~No
      zrvi0&7Er<IY`d(pzuZ>k&XhDK3S!uq8*Z>hi^-57^dxb$0(S}fDp@RjstKd&73eyB
      zl@ttl$505XM46hM?i2QutLw8Bi*w@|zvT*xFH$9ieaY1w;S)@(YC;csuOj=9q3^d$
      zsAb2bfd^IOF`}TzFc7kiTFWvt{i0==Rtlr&k;4%cM{$g*DZ8ztxi%3Of{yce=awyV
      zO$v_%rE7{RI6*aN$awS$PBCN~LGR{VHl10wRx>S!FV-7}fsx{n?}|tL_p@YrYSwhE
      z3ZD}45)MRbJ1R99)M>+@8?I}%Eid<ZhMbp7>)Zc_Ap{P)i9OWHZS*8)Ov~P;zm&A>
      zY;UH%rn#N=RcxZMi{9=ahB(dH{06#5K0qmaMCTi%7dFuME<du4{(NB_1NnpN$h@F)
      zF>I%CCvgLJ33-pW?xPP6kikQWKf*pd#vtwHeO~OKsQhKI%hQ&t-L#5%F`1Lhcn|gl
      z85L<}w3o=gME`SI_>xI4_{5`D{R06tBgt0afoAZtmf$S*6P>KZahj!aCn;w>AQ6As
      z_OwZVBSg_z*B`=xfFhiHrdj`U2%M;cb9MbfpdX7j%YF$VV|C<k6d6hQYfB{ExFF#L
      zDz9{+pZqU8pLv5(a{kcBD;$20<L|t3#HpQ51}=1wS->}nd`A*LJn}6*L6BAw-8hXi
      Vgp6U#tKK-y(ww5mIeIQ2^9z#ci4gz*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8U2_vv7=BJZnkHSLO({^SK%kT)#YT!>7)07oB-jt6X&AV1w%aptYqHzf-5}nm
      zmwwzh<9H!g&Ujm9&;dFlqZeNKOY~1LzVGgFvq@9SMfU8T^FGh}yw7{inf&$qw?6=!
      z$L$ni0;f0idwNO#)GN)mJ<ql#=L|!-uDRZnbGK{3TnY(+LKs-FTU)jzEw4K^oK9gt
      zV3Nb{mvqHuHcjudQiR*^OxsFfP$}3uvaUDVQefDXj;S~6(s2p6R=p}9ZV0?ou`Sor
      zEzb{2KHUEP@8|NTS%CrXW7C~{O<-g(6dqJlro~I9WqOwd4&`^P7U}|tioGGzpmhxg
      za4>^74r>_35rHESL|Ac|K?fI2OD?xt>(Z&|WS>BG(Kbl3PQvM1O(s~Fz?t5}-DZYT
      zk2a*&Yg@%`Tb@8XU#JQk?-OuUx`tzJvBd&o`D!6Z*3_*=Y1MN~t5F_AP9SMCP2&@C
      z(xe}8WjE~JTx15}@1}58;8^ISyhrV)c5;RVeov!-=@g1&Ll_j)py3=|rAFy~Fj>~p
      ztqu0ZkBdsmU<xI+nYxx&Hv8)<>zmT>%GKSFLOnx?XEj{F>%_U`*t~fox&%%{8n#Qe
      z-?))32bc90weC>9k7r!u+Zrx%J;|oNE}H_QUEm-y%MajtZ|fkE_F}e+K<)Ok`{MmT
      zf{zot(smr`L8o<!rMrk=YnD@(qeIa#ziN51A)O4apu*<U!Qzh7h8}nKrXGv-M==-f
      z(#f*?1JK=HwH}CFqNCSpw|0r;LYDOVeb>4>bj#+$HMOrr99K?b88=f{5je#)@7)lN
      z*6<;22@Ks_TfP3#{93KHvP?IbzwQ1XNR7y>+HJ>>*Gv{S6zu&OPAQ;OElWC;rtZ3u
      zj{az;_V9{Dj&7ScVn~9nWgJ5q8JZcQn>q$<c$lvtde@Mk7LCwKmcB01T8ze_;`9@Y
      z7N>VG_KOcVO3#eHv`K^wjMKM9APObw2^s}n#w&{E9F4pdOKkHKj2`f3oCuOd1<2z#
      zp^ytSvVio&0}NzOJ`#^Yf&)|y@Hy%If-3sbCpsJiD<Xp76iyQbd5klPQm52RnVa|#
      z$@q5hF-D(Z>P~Sa{tv%DMt%n~PjNn?HA_i=uju(TfxjVj-$v5q!gRSX-5YpQrJMEB
      z1A_tiTb%*|2fm9qFc>=U4$2B2dROd4{t!WSyt{;V_eDPFi@c2Y6!HRD%l%3}!<9Sn
      z9nANp{y9RB4n;5Enj+xh+2dHex8V<cWYDMoMDvz-AJ+*ZP<?R`Px^|u@!|x(_a*oM
      mi>itlUlEY_6-&Ji{29R}lmjuWa?Pk=jYd9Q^rr@OB>n}36#RSu
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4T~8B16g_uYSlBMo0*ZpjS0NM<iVvEY8k1%X38vwJkCN~<lnD%3X35T$kKaOk
      z#z!?VCO-HB{1g5V6XTtwwNMh{%ig_n&$;)^x%1=qx9<R+W5I(%m^&6{qAbqSawznf
      zFvV)4A&pV{k*w}+-<)}H38fA&J~@rG)M*#CeN4z3nJ5v}WnxsUch=t$=pA7&jI~LH
      zPU|9S%H9tzf9*|)pDze~>5($URYIZGnUcw=aPhU$Dt$v3UA$K<)d_AGAIJgl)Brwm
      zK6)@5AixM=>^7q<uVP6<HKpZ7^JHHp+k)>(7_P+)mMmB}=dDB63M0&S5AM2oTWaA@
      zrXBw_W7~IOv6Qhd%A)10id1@8zKg32U;>jKo)TuQ1^-3|c!nu<CaiAMt6PNP|4bnG
      zTX8dK$Tekk<!*MnVy6*;b**I*M#30rJQUfXu1yd|I+FiB4a~6dJ^Y>=jH4HQoOxN+
      zpU>NEWdAO2V~{HkID5rNhhuJO`3r`YmcOF#DFco2*Uw7txzQCKavm^=p?HKbj)cc}
      o(rUB9(bnA082`x8f#uur!1XPz+u}Ny&QLR$<>+VZIn2ZT0}fZeX#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8BH5IxgY)-Ed)R8S}gx<Wrx^ns@}KCnu%Nuwl~Ch&G!E_ls$x7podO#D-t
      zm?o0=%!j|pIM<bKla25&cjn%iIcIL>od5pu6Tk~RHBca|e-y`JLwrg$ToD|L*iPM+
      zpKJ{d4`sBQL?V$#pAD1<c2*qr`e7i0#LiU`CXx>-wx1JbT3N$ibcd5KRiKhrgt=NS
      z>+RRugpwN`$TA3%7H(j|z%9b!2q+!P6@AfBzDksg4NMajMg?9^9Le##i7CujFfhy5
      zHKr)z4(1HpCDcY;d02bfSA91O68>duVIKE*c=z3o_vSUBk<EThr(?pxf~H?2$gw}?
      z=5#X5t8&-z)!QbDSkjEkgv~KV_i|~Dmr>>69KD3;mI~zCL9ZjD_oCxV!fY$-3coEP
      zrSJb9OM2CWdWLtkj936>FzBVE+(;g;S#-P7ms)2B{Ibs_yWt?}%59~2CsV{{dQ}9=
      z3j!IrzKCPJ`6f>~+F@EqnE#K4vBIJ%viPY|(aO>hn}M6`%N%{-v&4R_(fkgx(X5`p
      z+B?D2-qH}2OaBeGhqymP^($8v@PN-{#sGdX<|#*~jCaNoJ4Y24oIhh;uxaKstl}Yi
      d9X*20{W^NgR^)h{Zw1s)XK(UMtTQ}8;SUxr{(Arb
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+iuf95IyULnz)7}r7fimZGp7p0xdl7WP}8!l`KURsZ~&U+k|ad<g6pxDeze!
      zp-5EX1Nez@`47ZwP3<5H@?g)*&e?OuGvlwnK7RplADbo&hWZ<R%(wX4c+2JLm`An5
      z?D%r<WO#Te!o4`;u{e5fqQJ18p@aS)P(sDEJd|NNel4TgJ%&m<yK%<vQ1YQvGJeD`
      zU(aQ|Mu)-Le%BL&SOzLGF+;eN<ME6AG{;bIgIA&mhRZfCVA@2PVL8Pn<-2^qyV94j
      z6ht=5u#^J4K0gxUc?%WH*)TCr-1V1@P7zme&BWq(oAR`09dH8`Q#T?TOIW6Fba$V7
      z+fNyq*(Xl8=~yV?x|UyI5M!;$)#+rM|I1C%YjiA3VNEOEV0bX5=$;SP@iM7Aouh|U
      zYD*=a4f|aY?(?oM7-ri+kNX`SN*(_>Ea;8+s~r>ejTXgH!+xSlH<?EVd%-a5i5;nB
      zW)gx;Jx>PPQ%Z!c&!b2W`VJMA4mtrcEdFb^u|`WYMSle=m-QxTj~){jVW3D}fnp0b
      zc_GCbxzTKW!lh=bdV<oy2`UGL5w4uuk60L?I>PD)LK?V9?-gPLeiHjBd8fqu4RiR8
      oDt=&<{9BY=AS^MXhIO*q+rVu)Gf=0<Km$#(7S+Pg!d)1@0bjufqW}N^
      
      literal 0
      HcmV?d00001
      
      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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
      YIo?YWmx=NYBfi4%PkdkH_-EAp4=h)KVE_OC
      
      literal 0
      HcmV?d00001
      
      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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
      QALolOf4%NW*<~vJUq7^UO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TXz#x6#jNDohD7C4WuPSR7x+oVAF!47(`22B#=@hrG<KdX?ko2lbNoW36?i~
      z7k&1@XI^+f7Q$M(7C*qX`~~_8{0Tm=+~;I+X_7Xsu4Xc4_P6)9zx|yv`Qz1ZF9FQq
      zt_B}r`ksDY&*<N{ncTK0eZ67rPRy4|!f}j^vY206sjq4X5R%PctFmL6!gSlB>&qJY
      z2*(=X;y#CF@~)^94969wur>4(CS<^FM)wLDWy5`tX(?ZF4a?LJCY(Gta#b%^1!2e$
      zwxO3-h3zo#W`2P{R|tbS%XD1bbX8cea`)B4zn?7sPUv&D4QFDOaJbN*T5mYZkIx&X
      z;a(t&B)U9Lt`Y({Yg2^45fKbwI1E3IMi51uFxrZ#%aWC#Lj}VW*Q%8bVXx?{G9g;9
      zN=#d4@_g?t1|&Jwyt8zh=HA?x@Q}d@7hT;IxozFt5}SnMEi{@_Sd{Z%GW|Hge42_Y
      zYzQYYsbPXJ+@VSYQ<x?MSx%RU(|QO=q&1{^j!31B;1u2_Xt~RaxvPsjo=Mf+{uWTE
      zY?u|!L@<jv*6J(67T0ZSN7(LzTAPG(UYBL=I#YCQ!`#Z&bW<zK8}~%X?Xn`r5md4e
      z#+pL63&jT65^htbd1XvOB2k;p{`_l^Jeug91fE}~d*W3f!;kKP*RtlUs_7E^iDaJe
      zMwfsE;goD+M{XiQERpxD)G88>(BOYg5Z$yo8w@aLoe<~bxvFimX__%!4@bNnGAeD&
      z)=W6=><@{xPRm2cGJU4n6mmZ(<F#dE5=*=xE7eK|2}y8C-|hNrc#kqSEV<#PdI~S&
      zvLRf>l7<3d{NVFPMn`ZB%Y=~f_MMB%xA=VP;ciugN3(~avV2kSWK%s^)?;~x_)(1D
      zIzA2KCe}2tv8N8^T*pRm3%A)u`X(P2iP~uPH*{@7%4zv|!VKuqV!aAmB3!hpc1c_^
      z<OBxm=j@DRNr>c4ek<h4y5k5w^<vEtx4eXKf)4^e{{^8T1RusQfC#S*@*B;E*M^4V
      zDa_voc`b^={CR}$&haxJUk6g@UlB{CUtshX1sLPcuzK_zr~DSj_+F;tP`r-geC3UW
      zH@!3!1XOG?6@4r946$bz{|OpBLf=y)8Ve!5dBiWv=a^|08R7K6_sskuGx`CO{5^pm
      zRl$*3Qm-KRJUxvwT$1n(-t|hKQuo|r>IvtOeFJ^G2K?MY+Sed`7Vq^$KJJQqpVg|V
      z)~M-!+*b2tSL6rCddRbUm3sTAo$a439oN~)e$L}V#t<&xqxKvf)&J^|<73QwIT{^w
      z@c5@|2N#j+S^eLAsxM%Xv4l&#t5bj1>Yw}%<VaWKW#m2HGl~Ncc#11++S7OoHqdYi
      zpBNtYHqSv$EuMOT8-<3S2hwcl=U7=wHxovACxB)Vq&Xa-(-@^QEwaSD<UzLjIzHp{
      VK76h$^aZ};t9+aD&js8;;6FaNXLSGo
      
      literal 0
      HcmV?d00001
      
      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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
      Y6^$U-Y~e5Z`Vl^s6-2nezrP~%Kk&a)c>n+a
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxO-~b16g{t$PH6^#mM>8h5NkUX3gUMGl_CgMK&wsEm^dv@7%VenIz_`ye}d7N
      z__1{1P7*0b6BjO6_y_zC{s`lJGXu1xi<$S{oqNwc_uTvD_rLEy0SqH8!NbtLqOPlP
      z^_dk<F7w>etnqx>G>U5yybR6ux4fz^#pkmtJZDMpF|^uN&4{PDsi}EwL(S$nIT!3>
      zhMNV=(C^JmGO$^O#-yPaELFEMYQD(pM}GZDJl^`-Vf*I^k}vM&WeBAXkV!E3Mm1ft
      z#u@4&(F}t(X)N*p>JXH12u%!4DNW~d#nmh~?>bb1DI=%mGb+&|YOc|1Eo%ja&VxDZ
      zf+<mGiCbx2O{y&tJs6S*fT2sq5p*&HC@xtvO|DyXnB;3F>c1Nj`2A)}G73$?J@
      zBQ>C-83EoW;{<vLj{;rr08ZkRgfK(P0i9$-5G7FsmGV9k%Ub-Mk_BK)#%T;N_ys|W
      zXp_Q`2SRASWuz@r)0e2_yBPK?IM#%OVTO+V5pm2DMJ>O`P0^qc8E0{hfCQ<$S|Ig9
      z6+pI;q`ZJj5-w6F_rdH>GA<*|AW{6Bx=KwS#khpAiotZU%D957<hd?}Z2k#D*j2V{
      zcoS|P%WDW=2oqwCk_>I-A#RP)j33t-f)5K-b1^0&r)Av03{9xIw#M~EhJjiTPK(R3
      zx)M?0L%1m*QdN=8Wvjt=H`0$ex?PV1z=DiHAyOc16wMr;(!^a1R?NVlkQKc&RCV;!
      z!-FnJ@YBA5egqx_=%FE{y^m~kr|8{Grx98it@X+_S~hLh5WR&vFb^*l&`LYmaY7r~
      z=|m%ePI?P~IIRvq35UOs!2<yxvH;nd!E~X>>nMFk6~tF`S3?wPLL5hrn}3|31XrID
      zE1|c#f)^ykOB<ox@p3B=1ce-eJ6*vFIvXycq7a=Obcm&de&rLqn_^#Af}+H>&>h=>
      zKjx*=e%3yc9C$_2zeW&mNQ$@g|9D3k-lHEM5XHwbHp(6wWseOt+O2HCZY2=@fuZ|K
      p31><;{|$+4TnkQ?Fy+vi4c?-C3G>yueJ;~2yw|te#Lj~|{{bYFO-KL$
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<OG*Pl5PdbqjESR(|NlSW4~#BEBqD@}5Q!of<GM38*gDR@^hDzwyo?JGTzCL4
      z;tgDhS`$nNQM2i)u6nPl>UF(-KED9iz`O~AuyrYJL|WVi>D-01ugYHaP`Z_TAg@zd
      z+m>3ZvLmx+#n!Be2w|~7{+m>fnurooA-I|rKd&lB1$XJD8g`&O*F+a#p*^xBoQfnQ
      zwe*#6O48R%Jk9SB=z!3Z^IRPWH>klnzdnrj<F}1_LNvHgI<-!iC^Xt`ohrky9p$QE
      zmoUB52De-yL~`D_jDav{p%;lbIxuV@i4nqZ6SpoxCgdav%9Tfz>$3EVf|Vuo7d)G%
      z5IhUte}a*)SHkxH9kl-)o+EzZReW3StFXvW>!53)1OzMZy3)@%LTjl_%o4`_)rK(D
      z^jp6-0&^@y2MlzAHw)v4A<mI*UN!?(G8t;bKI_IB^|9^e+a~7>w%seMj~G~4eZtT~
      kjWEh*ltG{qjInQpK0h{&iCTWLc1~fMZCHjd!wp2f0gMUA5dZ)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmai1X>=3U75<(rTeduAk!==Z!sdW2Ik;JA5zvBx#I9{<ZA{FPbSw|{U|CY6v17WW
      zN%y2BUDAbgBTXCHW?>1~5SKupfrPH-w5R>izdh~g|MYK9zx!r18eBm*hndk^zWd$p
      z-Fx5ljsL#!CV;!~r!dMCmL4`I&35x~r@dp;N{$U>rh2UOM5kkohY?a(=ua1iD-{;|
      z!?Lo^N?A$A97<VXR4LpclT+<xGHK=W_K=;jog?jAy<aJdyVKT`^JsE(Y@DWS0z8_Y
      z7$3573aU$CLEg&QW@^C7<?T#*Pv>@p+Kx;*@0e+4z)Ve86?^{u<dXMJuKv411xFns
      zs(lLcG*ZgWJ64)|6_$7VEUif^?X(NmZf`!JP`SxY+s+n+@|M;Cg-}Ok*s8)}1w=q$
      z4Ah}fVNr_<lQPpI?R`$pPLCw^$@=--cG~LI#QVi}g=lvsN#Z8y^S3t`az<^ESym)7
      zS7=gcC}BiwRHV!yD<#O<l^}-*%CSZ`uBay4I}Oaof(X{3HH;R8Cg1f3b7pqbPUd%{
      zC+%D&P01YtF~k)jcK#vD98U3+v<CaaxJ#kY-&vU4F_pBk4$mTjHnfY$dWEVH%jt8)
      zugd$Mp%zLbeC{)FKOUf{Sxe4!RndDHXqRB>$c$$*Y0}xvkwh3DR9NlX)~n_UB@1h?
      z0UHg5?>!1-$*e;29OzP;sBl#H>NvHAcMTn8ywd50me&0NW!-U7`3R%1D7ZT;F|o}+
      z2N;jye7Act^)0Od1TQ`)XJ+WILR|@Tg=%wnxHse2hmHtlr-3efl&3+={!At{W;+T#
      zswAd2nuwqWyTa%#kPFNi*o}`dR+Bl4`7l=kg{@wEmCEyk=YY)JQg#|IN1uTQ<?QFv
      zfnY8vtPJ3n$Tc@6_8M4-Xas}U9|jY)7^7SF_V17k?U_h9cG6@9=L{UcLF!0T3WK+Y
      zFGfHq+qa#qU@7FkGM)0KfgvOn3@a@OtSK={LM>gAi&cfv!eGi-<C#e-sDZdOVqjEA
      zSGv;#%H}ds1T|8zl!(#=mlLf6VKBp&_@Q6)L2r{7NgK$3vA)2=6T=?n@{-c%NkYr1
      zQA!&O#tIG0pezdFlc>QYrowofb*co9Ld`UAM6<A^=1cB(jIt<NJfOxRrnaI>txJM;
      z$grKynoe?54|I-aQxS~eGX_43Cs?)%g~SEZm8i2CPvY}oJQciv3S<p@0bgYD+qA2=
      zQsK)6zJdr7OWW=-^J5}fPMm+nz^BA{#qwN}HFGA3O9>C-*}^RrD5~2g?9{N8tHL*V
      zh`RJ{j^HTP$m2N!-@$h|Zf3Jqnzrxqln?ALq*7qWgG^N6`wHPUeP3zN=LPQv%mS87
      zSG|(EenjqV;>k}8d>z|`$qNR4s;iKbah+kHNkJ;!d^b_+NSXP3qEP5296Qyn52CQ1
      z#j(229!Z<dM2;$L+|<8uqf4m7+ATq+HS(tZ{=^o-^Cda(3j;6WmkK+*g(WZo-o7t4
      z@%&|h{284rBw+uMEQv1sKOAP*%{MUDdAIPQxr<%eOercC%wy*JO8-`nMAb2MbL$|{
      z^>P?z+3I)&{uT>a$O&I;eb~l0Y<(13y<6kfU6QvnA@P0Qzy-WPj|(kT%JPxcX~*6l
      zCyZY!Z19tN?iJBoB*{FRI~&0)-js{~5?u}yoVn{*ada%Q|6+CMHOJXcU18z{T0PP3
      zHwNCuHMVsWXHVLGY{Kf!q(^k-cS(T1BdPJOq(;}RQ$vLLt$}Ju{77GBBA2vw+R}wJ
      z%w@G+ye6;CG<oTWvv|tOZ|gBu5x$)FLIv0d<7u(Od!i9F`lc}Sol(nqc3u2_N^Um3
      zquj;zh|dQ8x`zntCQ%iOE-IhFlGFSy!!kZA_4o*y_-(jrupD>rm+W7`r|eH?20%C#
      zFSUJ2Z(l@6F7dX@*Gf%ZfEqoZB-fO4)zVme2CHLD=g@o}YmcF37HxwwSbwR=EJ|;I
      zXXy9W=;={<_pCOv(gpC%EcMI~RBKR1Qy)OwGuY0zcwP}Zi{@AO5p?@_!0ieTaFuj)
      z-sZy|+osqu5+%aD*ASK0Wo+naTXq2-DnpU*B2ooj<MSk?JWcV>P~x)z(oH_;CQX%D
      zNtF`VL^}$bvBk5y-;;Z>kbWK&>Qv|=KHMEIk4<B1U;LEshHLT)L9Q|`-o`v!<9WRk
      zIF7}h$$6aLft@t4N?Iq+P%jOMI!nZ<>zE&-frt3N`yB3#&EVrj=iJlyGcEmv$N5(*
      z#@_<sE%C+c#~u%Rx93ECjNk+D^LY3i24eMiWE!6+;?C2j`40;APvZV7z`WiUs~*ET
      zo>#&0(RX<0wFUG;L@&Zds3`CrVgD0=to0#lJ;;!BBp%_1xkq*_iNA%hW0)6<U&h!p
      z#!oP97_E;L(X|+=9AOngR8{gXwQ#^nK@1`x4~OU>X_`DMy`B|`qk(Iv)#6;hL@<)H
      zD5{S5^;oDH0@zXCgD9~-NlZvv;bFf^OOjm&T@Tj8279h}UVJ)q9O2LjgvuGoZC6jA
      zvhC`n_*r~zVcEqO(dvD@fEB{$Iu`KtC7#t2)z2|GWASNx)sx}r({!MQQPfOB%~-47
      zZc?r1I8-BPH=#z|ffanOQ>$^eT7!gY#x`{)cB!@4t6FeCwFcZe=(}~0*)EbP=`lRF
      z9-&j>Xxl7~4o1H*gKtS5Oyk?p@9{yV&C@s*{h@r%;KzJT<9IPgTruxQlX`%EkMd0<
      zx6-wFR+Zf9^y=rFDZ@*;;z^;BU}%U(Ctrf0Pw6~PoRUcRm4KJ)^67$ipi*tee6=&+
      zQiJbO175+abl^4Lu#BAKh{7q>3Ae=FM|0w2Bo>{V#+l1_z3752(rQ<Ldc>!G4$~e&
      z7f)XhB$;O<nP)LONJTE5!;B0S@m$u!JSYow>QDf;7`vB!`8Rv=*J=6RqWtG^bsE=i
      zQrV@L4M5d-6k~G5dK6>4Z{%O(3~n5Vn6Kl;tNaxx$!bC)i1KCloqqlve~=wSnC1UJ
      GBJ@9srZ^b@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OHUI~6#i~IFt!Zz!BdM>pg>!Yf{Kd8M=6@rpiKm;aiJN88yM2gG&56Q@dp^!
      z>|7a_vJgZ}To~8>2mgg@<C*D{4#mh~?wxzj`M&d=$Nl-|+jjsnxFy2JFtRB>lQZ&j
      zE0f>QRfQ*Vio#7(T`lw6!<G7-2!SEhbkr+VUE`Y7;@h|u(aw;t-Cty6mrX6J*2|2C
      zTd`DKV+fnvP~~!o8z!9}6c!oS9fr=lu9=psStYq#<88{;uj=QIzuz*nTN|pGm}ZD9
      zHT5{cvt*oCHPyP#(33o3O_dmgyuQW*V2DbP&>4guJrcUm%h2ydG!n_$pwN=4@q4w(
      zDmPYSstTc(bcH0#B%IFfrC<wV7;O#QQlo~{?saY*twu7La`4C1jdG0~BDk;H!p4q;
      z+kV*q&R|HyS%%^NH_7&vFpLp~K)!f)q4;#6_=sA2j7BF2!@wbhIj7-yy{1_V{$#2U
      zz&KJOl2qZAPD)5)g1T8PSiC|tjn->gv($2?#1%_7vO%0fM#K~ikOTJEBurzJdTpw&
      zs3h@!h*;#NVyM;n0QM#e^_pkOvbLUCwhUEUcla+#n8hU$OB4((e#O;IQj!&Mr6Ius
      zrx{l1E0FXx{b-j33i&ul>0g&{12-vClb4B&M3aR^F1W1M429oT?WT6r-{6#;CxcYb
      zG;ZX}vT1TEO}B@=@meuN6Yi(44L+QLh!gZ5peOG`FdViApZ?qFt_vYr!*rS>n~(O6
      z^u!lL(i30Nz2gA-Xbn0hjp!=qr?W&La>W2n(#|ME%%z#6-M0DCpX?Pj+71M~_8@%+
      z$U&TTky9>G*hRb*`^JM64zLM~y4YD4+mYTwWDjHenA~m&zvZE53ZKDwmm=@xA95*T
      z`?&A}ms^#5aA^9RdW2jhpd!xUs-q!`d6)2sOBj#6LnPJ|_8x8iZTm<Ot_e+<Q3xb?
      j2T|;z2YVRAz9&}vAXeOs<wMR%aRGVSgHH5uEJFATszgue
      
      literal 0
      HcmV?d00001
      
      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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
      Bt1$oo
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7K3w%`7ng5@A@66<Jfsil;G82R(XqY4fMS&6sc@YTY0Re&$6(`9g1Sd0bGC`mg
      zvs)J{Xloznmez``mKAlCL;@{T>BDO6yLQ`d-@DyMyW4$qAFX{T`~S|pnHd7^cKQ8g
      z&NtsV_niOto$q<WYj1t}MF7{SyL~VeX6^~^4OfTnN>(?<qw$0fmO`H9MZ>Xy>W-d0
      zk=~>a-prMo!-FyMvJ~d%m4or>t&zlFI68PB+!Kv(gAx6+E0P!)jK{XOG%2W!3Nsqx
      zv5{mrmh1{gM<X8fWZ}E>-nVR2!E@K{!K6IbdMTP3PVLyxvTdD0c64xHcXE9qyk8-w
      zwPpQ=ZM)WY)^{sd1Da<!zq0zmi94KC*-iDGo7_d7o@luD4(`^_THm-y!AwN@_}#gV
      z$gJVP7^kewE$y7~#uJpASiBvb_3i6<vUh(Z8jasYqI+FyYsU`mGLVQwVjS0Zu3Oix
      z;2R1LL}JM>skZv{>)N-~bGzRCVJ@*6yX(2a>Y>0K8d|q=$1I+^tF3-3k5ersE&`NE
      z@1?mW$fCruc#46GTvFe<c|*O!;WJ!fH*{)EY;CM><-V%fTDxr7G6LHx3g#C5iGd!M
      zHg+~sgnsvzw?7;m-c7_t?}$Pmt@mEB0>>7%4u^XqyaHcuJeG{?ODY7@>$J6KL*S*#
      zEEi_2?u`z{29vc^ZTaFZkv`rRp@0`J<`8Y8jV2JLceT67Q{Hm(;;w8?t+z1~vxI7~
      zk%w6(E?l@EKU;0gb|%_w<jcg^*qBUgu~FbmY_%~*ChF?yWTMN4-<i0{##Ih=vyDQB
      zy2Zv^hq}$iJcqj7Mv-iA@ww+@gI*f}XCh)Fs3%^9OzgH%>`d&jF<(zy)DuHCu68Ek
      zHWoP4oi-La)QF7|y%-l|m%TPhor!%m%4CB2k%@QOSmaE+%f>Yhb&ri}9qLbPlw+2{
      ztk%I;q<wU#Cz9CaI9q;eyf+-}3ey4Ud@j>l-qO;txJ%T2NYs8GuTfa!@mi9*2S;*X
      z;;>Au_2B`9lC;maM5B>`aI`)#FgirDUbn9|GMuCz`|w_c!t}bW$;4o6pkZ_{+80S=
      z;UNWoL%452=lX^P+R8>2(96~=-Is$0@c}vMgIrPWn2-)G&IUCC^C%wi;bDc@>Frx+
      zRs)fQjX%eS6>^jD4Uv7$6S7Uq;>$OZgFa&8qj;1?79Jjs#OUNzS32>sXI&|3vhWz)
      zW`TBaLeIkEH0uT8z53TDWKw&ME7y}YK8X`tlZ;Pcn^S&8Xh-k?x#g2KZbV3^XKcI!
      z%Y^z%8>=9(&h<%)(sfyl_lS#U?GBH)Y;`lmDsOIXcJ6gjRC-44l`NO{DI1^0Imc!9
      zMiO*cceX{&`HYR_SfQ}cRf$CX%lv((v)2WD&WFz`%u7Y&=__q~9$z5nWSloH$aXd_
      z-q|eYe9^{AIma_15rl!OH$F5RkI|MGYrF%IWT%e4<%?UyKEGn)t9Z?wke#x)V!ab#
      zeIy%nC=+JA6SA^;5|Rrd35EPAU8fRQO%A?|@A&XnQwd93T3a|t@BJ>m$H+7^$hhpG
      z(iSryTDwOh1ZC`OA#X6&7uiQ3l0#&7(fw`-VdO>b91Tag@)84fvSZC+UW^&<*+V=T
      zhUHF*pZ(0n-{J2a$r_{K5$;nkg<Rv)OhW%h{KAKy)63Itpr>s7lUSLkqdhzn$-yu2
      zuRi?CC8^r6KO6ssf9Fc=fgSw{*JRrN6yOY)t`lbAKPbe`#2Rs;{}LzqZ^rv8xmns(
      ze#0j!2i9caw?g#jM}IGm{y`pXyxa|@9u*x&dbMK9GU2&c+y^u7^eB@Z-c(BA+P8l|
      ztI`b{ROV4-+R75s%3{6J<)lP&Bq?@txdPnVk@QEaRN1!jsT_qHu5g_5a2noacxhL|
      ziTJQUm|?4#ig7!KSLZ@gSoOA>ULr!K0;j|x%)Us!_C+e4w@g#Y5GK8B(G|{^3Yux?
      z`X;1GVD-?;y*F%aNcpow6?*6q9HvjHB3lJikY3UsjmN1%tGsD(lT~*C@TsdW$qRxZ
      z5erAxB@*#OmRd;R2kHMKBZJIOIch#WK;-m0@<+nS(L`913x7Cn9gB#2s6l>cy=s`B
      zJNaQK%VL~i7TC%VkuAAQ#~Z8m<jJS4wV{(w6IwW-Ye91;OgHxQMWRxZ<x=x}NEa;P
      zzarN38<ZQr(N<TfLb?>!^Q6X9%#z8Kwt9y|JO9)q%_O~or7ijC-#NITR@-Wg*q&_1
      ze4RO|)LL8B$#(hrvFUroE?KS`)jFSQy42VAk0c{QwrW=EsSGW4Z+w`gaVYcFU2kv6
      zu#YL0t^@v$Jiur!qHiQtwLwH`wN;y-_Vp*?Lpta?ViUiv6%~r7qMBIP^n^i|yr8z&
      zs#9%sZly(c1Ck-;rvl9tAEbVJ6OnK-;?|l9A93ZB<%3dwJ0)uyV@k9peY>4(URcgY
      zBN@DbNPMU|HF15@^r`y(ewJ9<*anRB#}h*t)153R*x1AdHViVA)nr)FC513kpxR+$
      zHP+;)Zne`VdAlf;MztMguD8`K>eeX>qAIlv(^Pqxh&gJP3j5UUnF)IOA{#%(PXq!h
      z+9uVfaP|MDG;I+^@6aXP!1OIyq}Y9ty@S1xhWKc#kB&O$O3J1)kFo`vS`$dGxlH-=
      z(|w|5qMNpA`aN*vZqYkMPOqGHCCr@kD1CRs;Y1|XyFW{!$IMIXQVC}xHbaWEo(T~|
      z!Wn}dqajOH9aOV)38+b*lz$FWS7MsX*%}{B^hTNorQglbm%2pm7z<g_m@wdhk5zmT
      z8w5HLa@nsLOkwk+&mlcex*R>Sz0o6^8$GhC(Ia~rJ+hh6BU>3gvXRjv+Za8viP0ll
      z7(KFg(IYz-J+fudBO4YyvQyC``xHI0OVJ~H6g{#z(IZ<EJ+dd!BRdj3vLDeSyAh5>
      zSd36gz6$=X%=lf!-%B!nSF`zAn(_NO&R>sZspoH?R#+W#UqdQYJ+hMIm@l=m9$6`K
      z9258ASc)vvVl8*5W3@a6i#*_sb5Py+_2wBgOrUuj%@f$5SsNYJrg3bVK$~WDIIPX%
      z*gSzw&D!R$wvS``1a=6^bU5AP=$^n%y{N)r-8zn2C$LMi!Varv96b~0)2x1nH875W
      z2@Go19S$oxj_3qpnpNenhQ~2HfrMry9oFbLMkjEWX6<)a2gY$=0(T2*HZD56gX1_j
      zfw5DR-N2vnJH{RsXvPe*u}|L2u5<^j@n-5UOilK2<_@%S)lC@1ZP>?O_ux)Gc@X#G
      zUOa&J<AZnv590|uijz2wGdO|Ika`WL@D03xAK@H+h8OWGyo}%Q2HvetmWHK?&+FUZ
      zi5`6)xuHO?m{8B)&(Z*M2ox%W995wo4mnHl9&J{j!_3o$BGf`sTutg)Ql>uSKKIIP
      z9^&EL;m{e}AK)nm1IMu-C`9l$3gz5`#m6zzZwckM9z)|f9O*uX2fOp%cLwhdoW+MG
      zaV-C1{0h4Cani*u{c+NM%lR>hC(ht6UJCiGyt(@Vd3pQBf_Yi{#)`*I<EfB+8c&DR
      zX*`>jaXHlwRm)dub+}s9BcvMG7B!+)HDRM#hc4BOe)9IH4Y)_O;9j*6_p41>A2&Es
      zrSx$)rH{iYeH?c6LFw@vHDhVbJnv|RP9b54<yj~oMv{i*sQxy-)7zzwy2@FWI?AVg
      zkTn<Ya-F-`{oIUiDo`zI4t^N^P$2)hgL!ig9LhfxqvR(rgN(7&jv4}@kV|z@LPupK
      zM_ugYi^IE6qz+Ig??jn;7Z$67SfcLHU=}#Xq`*|WV0bjfF+r#T>jf9qcGtwRL#1Vl
      z>@zq$UCIygun*~t9RtfwZJbSoO5_0}^g>dis%$EB83D)<XWS!>x(22tmtzWP4QE9_
      z?|E;xS-Pd$D%;ZSS+wOe&W8%E%dMaYUP^v~l0St!brPlOX-fPIC4M&JrmIuHs#CzK
      zQ^2ZSV4{WR2+_Ie7hQ;txLQ~tmlLX}oWx54rt&mi4lNQu6*S9G=mnfNm&&)LzdcJA
      zIfA5hHlH~Q>Lo(`EM}<BAzytSh3X3ks+X}`eKA9iD^hS*;1xz>(c=od%8%%Ag$5~l
      z{1PLE6Af<ES4SrfP2$V>6$kV34m`u9PPp>Q2I^b-09$XC>mH!+wYS-#>R?{hWn28@
      zid%d=wT0ZXzH>n#5n(!pUuJADWh{yz@5*9`3*0?@i#Ia1NQ=RD9Ihs+ISK|3@8YRx
      z4;$GT4|`HN_$I#PJgnx>nk30RBm%7Vp3iBkGy{%0J1VU}zSc@drALRtj!JXMG0d;D
      z_&vAM!|(h`)5~@Ic)T4a@D8)~1ga~Gmw28)L1l6NDUyfsZ-|}6>qk0BGhF7#>~Z)i
      zi+vsUnyT3Q_{DEY?%~$lmzz?HjO@>+?y`YN9L8LDjCsg5icnw#P;3OT$haCSjD@H%
      zO0d=_MYC}&HW?vw8Wrd<Dlu$SAxYld#&uc;j>A6W>cGQ3R7wN3JGc*jjqmd!H{b^R
      zz|9ChoYD~XQbS^d*J}+4R98O~Y|jx_Lk=wlpsDFHTqV)hsG|(^@EZ+SXf$F8X-RWV
      zxV%1vt11;PfAq&)ar+gon6<id#mv}-7GPe*XQ4iff{F`Jv=p(H<M3F|nA2@0GmOu3
      zaY>2!Q~V9LRPu(>-TGb~+<<n;f7H+4PU0WV;-8rZ^MA!eCr3E8G>QMr|Me6{+mvwL
      za5<tk{?5B~62D_oOy7OJ*rpLhsWF6gMhqKCi_RRMZg;U|<4wHfB3h+m8IUIz6*`NH
      zlgf~EmEKdw24gH^pFHJJjH$?0zSKTTsWNdYZ%Cb0S<|0>U&hm3l{@vc%5hOdh(gj^
      zK%TbSDqn%G;sj=CJHHH&BjjW78mudf$5F&lgmh9@z}=pkDXH<<Q^2ogt9$|^U{&BA
      zd9!=uTn$)`)W_*u&16xT7D4B0W1QzrWSlcMb<SJ{1#t{7<F#}Pat_~QIOnMQXv$2z
      zc)c|D=rQD$m6hc(>_1bQ`|wBLFSU<8idkhsXP4PWKZaZ>j?SpLFO`%$cvj7OsK2p5
      z6_@NeQmcpJL;WkQGP|^Y&q@!6LTe8xFDbjw>KEEqe3D0@N51$^3bSkYS<25Uewz4c
      z=jW!fLSLar<0$l&O;H|l9iE3=hvG7a;;KTg=ABdXy9?BUGpghzZsp{UjcgELyh0Vd
      z$}9O2t}$MtzkZqV<}0W*zKRXT*U({n9o@z^5HY@q2aIpyVdFbEZhQ|Xjql?H<A-?B
      z_%U8JeyUa6>8MPVGS|w#*HsxQv9H(FB2orR-lOUo9eXz5h?26wLI*3ja#9|2<A7RB
      z%8LkMta6tzv1Y3ZRq0;Jhq#8R7L!%9G}aOAMS+jQE?RB{mU~VhJFwg;TJ8z@Jx?Gz
      zC>%TJw>}PUaJg0G@q47^+T!;dLr#^IyX6G(sw}_9Z}lDGRBTI?wN!38r^=MM?RqB9
      zyZg{eZ;{_~oQussu<uZzH^$lWfUxFNnFXpUSfsf<WX~4HlA?gis4|!4KKxPH@s_1_
      z&z7pRY3^YI2jkbUjNc&3_&sJAZz9il3s;#2=9wmfrUxaa7v-i8OUx`>XJ%uSnTxfi
      zjb?Kuwwig^Y0gHEIR`_gA0y^f7&8lT$efEu%pyE#2JoyI#0%zpeJ{5#`crGV7A8ST
      zdIPzaNnHy|+@Dm{EI>?VAuqnmS&OS5b*TcFN*YiP|FCz=rG~IxU8nCVTV1c@mg~4n
      z8`nrg&`w!WT6R|5aD}jBR%dwRtdzOTN}0<n<(P|7%kc$w>w5`FfUd0I<@?TiTSFC-
      zYQ>HUFT?NCa&-X`=U>4bNnq(J`vfa_F4$6$R==*-%r&sgT4b4PG1IKa0<!@(a$IgU
      zYHUurTA4}<E46x<78GA-x`=*4Rf(`eM3h5wY-KrLAs{{pPsQ^NniYa(jZ^dnog|^{
      zu-ghcMThgtqgyXcvj(j&<zaK_mI_M<i-c4?=RG9SVyxmz5tv&jMkjL3ttc?J!EbJ-
      z_1uJoW;eyT8I9&nw2|Iy-imJXHd@Rs++p6Hq5h$ih(oT33t25o&A`l{R;7exaMi-L
      z5y-RRekYJ4<fN)uL;16<;O*|6)b6MVa_0YcC%VxwhbhFJC^Qo&Hb+ouj#7xd*vN5{
      zc~=JLwiM_#7jywuNvo(q^Bu8!L+^LZvF6I4eL;cz0$yeo3F%6o7A56BS!RV9JgXWq
      z^zE3<eT4WPLcAXV^Dw>i2tD)xR)h~`z^h5Yt4YBtPr+NozSZ%TC#X}YO6zFJHMPuT
      z*;X;N*e1=0YS~d){Ku&=Bk4J6{1`muW5_m-^Y7%3Gpc-ok>m-i;aF=vsc|}0VqFSn
      zU8)_a(}?9oT#ZJ|c0}<-wu^W#`GR<U#gw`x)uwhL_f$P!WmcM1FH&b2cyvW*p2iGw
      z60;cz3e2;#&rfAwn4iKhKZRkwi(v-;7lSlMf}ve?xESQMmBcQ;bE)=h^XF&PX2;K;
      zO}mFKfXtWmQBEP{caKtPo7(Pf_Ff7kMG?hOU0=j(879?DypY?Dp&)clb$5$PKXpd+
      zoK{^jn?7NtIE48FI^7Sk$o!E$sn*#oB~(a7RKJEBQUhwYj$k4FnP!i6rjWWrMYTdh
      zYDmS1MX7kI9Nxy&67hm=L|e^w1#BrSCbqya_?X}<Z@Q?}^^W;-MzmjOBu)eix=6D4
      zzdht-2j9BN-?|;?sYO$#>|}}5GF2r~*IcV>oQ1l^3FsQf&l-pI&LUm!ERuR>rqnwH
      zYFOUu<ew_pb5<pmTluF-HQ~uWRi+7V{;5Tp@cDgw^~3i+eD~w`$jcwUcPx$EG1@m!
      zX8smS&EKKM{5_h?KQM5;i7xXk>@qKEiJbBx$;9N87fGfur@Tn&MqhN5bbII~EafW`
      iG4nQD%NHk-yt*)7?IY#IF4mU&N%^Sn1ANL*@BAO}%F%}a
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2_vv7=BJZy3LY8sRRg6s8~vy27;nh8f>+pl|V}?feO~IZF-t4CcBx<*0y(E
      zd5NDlj*jC8*y@ENBeo7@DqcC`|L_-huRdqDv^%6jGJE#j^S<Xj&-=U|fBk!J9l+C=
      z)({ftx?#L$WQ=(?ld~(fGhvvPo3kxfF1VfE&Sj(SN=HLPAhBs{R*jO(_$q-Ww`|rs
      zPYE0v-Lz=%mZjZU(=y!wfx+&_8E)zPYdlwD_Kd7#^Xk_#DG<r=I|hLraYWIiqXoM(
      z>=a0DB6#$09Ie<baIok|!<9L^S~Fa8x*`ikwN{aye}Rr}`hOHaz#^;R34xuPmrU5?
      zOGg_LacI~p5LFH)b%e2B?IZ;<fna@1L4R9!d9JeRYzq#?aR}`KyGqhMXSl|2MOLNd
      z)&-7t=lvrU!zyLQr*Fujo83Sh+)`eS#L<B#1zPAu#cNx>kK_iTp#2nKPvvzo`cxd9
      zI3^IU&Q)BqR#{X41kP-8s1eCS@`A2492W@r&U@lWp_dF2Qh)}5!`+XiU8VX&94C<x
      z&}Rr}Xl`~^I!xylfj+qkt*^}Ltn$+uo)I{(nXrZo#PKYi6NuHNJ7F%!3OVj%4)gh`
      z4Wd<VG`LnZxNFq3<fXalv~;c*EF^)pQM+hVCJo0_-y53|)g1zXDro49V5hN9LdEJf
      zfd$$?KrHad^I2rc&6_iBneA1UW~uB7G&`kfFBa-*Dkg=@V<4Co66q;bWe}g3(eR4O
      z(~t%_4owv_Tx3gcoy%2>dOgQ+FuYKdHP^JQW{e5!ziPc}+4EM1N=wJImzNHAu_kp~
      zz_@CH3673n^%Pvkv`Sv7U&a*;1%cMBYYK}TIMq0=f*i*T$1xU*c8zhSf<87Xf176T
      z2Sm8;6gehlWSxXG%^F45X0^n)J1VV`qAOao=PWAqf<5OH<%p>=xVIrUClxYwL*BBa
      z<53{%8r})kRKppLC2!9kkZeN1c>svkRyC|Bh4^S_=6;OQKa_XyT}bu*3O$uhL=#Ob
      zh_9jTdV3<Wiao2?mriJ61qb?@)5&HLUcur1SSlG4%Cx+SqYu#4ucubf9S*Clq@KEq
      z^a@Vh@h<D*dX(1zpAo=K9K?t0@sHR}A7c=o;37W7IN#6HVir2r0$#uwzLnIEtOvM&
      zvv|=9q<{fR5l=fvDe6ftQBuJb@G>QhH)Jq`9Pd4eV>pN740aHEFic6OM@|`^0CA1y
      z)XC*=U!?aBjC_v$y$>+5-WN&#iE(mJzTZ5ygkkE=`?~YK?zE?iQP)FVm#^#cb^AP>
      zPF>3yE?jRLUB#u}d&B8)BJvwvjr2vAkW7aa*^#oha5oW+miwY=ZU5%KzuObhTSz>#
      z;nxgJX_fw&SVK^(zK*?IzaT4LGN!Mv8(-rHzC{;q;RJ4zxg~P&1M>J0ui+;cxPu$`
      z1y$Td4J&vbtN4KOP26K{*68IvzT^9Qtb5rQ@OjzH#xlL+$QrrAHA<?GmT{eYhxxxv
      dJSs0$-aADpO8pzO2;oh<#kU&o0&f#V=zs4=17rXI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~8B16g|^zDJ_ew)uMcq4?%1fp`s`%2ucmL35tTj5T2HHq)SR`+U3Kaqi?=x
      zB49M}(FcE&@yu+~Hrdc*cJAD{_uO;Oo&Npz^EZH5JP#uvFtBeQ*;)J8&E{&ATK%={
      zRNY*y>dF&0jG#bV-&gGFUUq$VUl!@@5=gePIuis!MFk=t3Ib7WzpRyHMPP8PmEj!N
      zd(x|>FBb&NqFpS@(uUn|C9~7*U>~Uo?eQX+*|q3Y9d}6}m@Z_txaC+cip#hXMna(f
      z!m1{&A}P?jC*6(wN=d%A4=b)fDxGN;_c4t^;F^hETo)MWVCf6gTw-fZRlYhr*p>CS
      z_HIQAB-Uz0yRv219d&LxgKpVr2n@CB`kH2=-C9jjjl#f);xH;;q%&I)a=Kw6jBaI3
      zn1~=M5GWo9giB82L#@HWs!fgB97ja8-Bdf3F7W4TyD6~(oifn_Gm2?s!<Z46Y^myF
      z+BqH*cQ8xlto6<*xn<3_pkVHqm{V7Z#tZ4}m0jh1pt_nDSng2PS74znlV5e+$d<x-
      zWa2R>TTihrZCB>XPNgI;rdur(b}np}PxplDBcJlI$GNMl3GzK})(-1Mx$3A%_W6j-
      zC{g&73)QNu=PGuiAvx6^9p`C@QEF*$h4_uDiSd6JSM%Z?P!e+warNR7qhhq4F*3kC
      zV*NmT@Em>LcnF}M->AM=B}g6vJokBl7{m}yOhJlwf)<}^6K<O^20bzB9K+VoDaNd+
      zQ;fGk6A1Epo!>VE*dUKh4L<6nwZLPzNdgKyrpp9qPwM^@>nSdEC)&VW+Oea-Oz*M@
      zCU6T$dQ@VTyGjgM-!cA`hS#c>T<S;;wUX1wG?TxOky0<uWa|$G)OLp3sZVTIn|G7J
      z&ls|PVS3wA1q>sV4AK}o$Nf_%m!(~XA<poyUA|Al);X{S5^yn$Bh2GO)0y*1wuH%J
      lv8j3<PiU#(<*`Id>7K_jtsuQmc?xj6E8LZk(_A?O{sW>=CP@GQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@&rcIU6vw}>Y`ajGwpK+~MG6$9MX5cQXlhKbL1|LaSW?eRJHn8%OLi9!Zzf*V
      zD|+^9qVY%K!9T!1%J`<NyA2kLX`0ErnfH0`edoJBe|`S}pp3GP7~%egwPTg6UB6Uy
      zHn$vG*nWPY)e@d3S36?i$;zPcl4Z9$!quS>GF@25ve!xvS2sk<*O4IP!V+SK@lm0=
      z^n76pmyqz+rI#-g=IY_)L4_-vc3axgzeAXx{g1ptlb}_dwip3n)PRoRB!-YSFoFzW
      zXjWZF*QG6%w>MXXyJE2tglyeuS)HckO0^GynrfU-JAU~i)D2|hq0+5C53wZMZDA9p
      zdZs%h;i6KsQfLn29A`!k*YGW$=R1#!IxY~Vm8#E5R`9U0BmKS7q1y(=afzTeYmM67
      z`XXVbJJf)zN)kCt>6j!Gj{S57rjchwpGsFea-A*V`g_%NwhhaCD;T!xqK5BEd#!Sy
      zZjZ0}MAV}Z=TAgW(N`-%DipY}?(DL@QQ(2IBiiia@Wx}|$>%DRY&hF)OWc#n3aQYW
      z^J->-QM1{{)sE$P!qYL&v;8dwVJwoo_sb%T_df_sfk`&%5dY(#Oh);YKj1ht_G^-(
      zCwO-gG5!I`;@lS)#cxP`<XsFWRZN|jFA+CiAj^A$b5!&cPV-7QgRy|J%uGc|6+gqs
      zp8W)qzG5OGW%(TDD`@6xBzYY*-*ky%2U!7;^D%?V%p_bnicJjf!`^51TW0Sw``rNc
      zY{<UBJ*&PcYBj;dVZQG{P}m+@J7}*k81dnsh!~39+H<(dYnHpn;TlSs#^rOk4(&HG
      CTuq<=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@ZBNrs6vzK(E0m2g=G18gamdg;=o;Q>W=zQ3)MNpZ;e6e77bqz$X*-mUrSTy#
      z(fC$;i+&vAxntRiFoiVD?K$_J-?`_1P7i;7{t93PhKd-Wwqx#_hWR=)YToXi=L$E>
      zuUeJ}0=wgg)mIy1+zrp_1<y>k>j+<kLP+;Pj_Gb0>zy58g(@Zq^FzGYXSC4|YuZ65
      zT;UTY!)-gruMo=3;lVKphwdteJ+fUpd`zemE)Z926O@|Q6$ub#G^m(LB92)N38V?}
      zf;=$Wv|X{*+wBN{!(;^rnWkr%PTTZtX%C!=yf~qL{`4nRjmpObO>as$pPHPzOIV0h
      z6_Kqj6|5H9Q@GCe95tyGnjzP81M@282uo7QH-<TAqV3q>f$`UA4L7ksP#f#Dm#z8}
      z!g9Zm|3p=j$l<n%MMCl1?b5J>Jgc~A`{IS~?Fm0TsBQC@u(S^ch4!bW75cWjRXtWT
      zGDl~4WTS}V=SK3M(ut7hi`w*pkdSP7J>L=yTXr-xoTZ8^gP=Wkc^qqw83ZCwagVQi
      zx;{d7q+;~PAm}GHqP@i;&sv<{2~avMM~?r!I20baBzvdXdVm-|K(bW+0Il>1skdy!
      za7p^)j{Xf3`WIx_);LCbFXIZYgsaF7C~M4=lvL?Gw9GYn2mK>%jYt{ZhyERkeuyNm
      zGy0D{F?$>}AaXpGafg|NyW`l5rZd<_%>K#jBWC~lCp(4$-!z6IO1x(HD~B@fD+*`L
      Hp#tR(wYe|B
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      YKc%b2-47gTKEy{{)fZQA#@>SV4;WDSPyhe`
      
      literal 0
      HcmV?d00001
      
      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
      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
      YiWj8`A32Ho7@zQztCRnU@hO7;1I@Y_>i_@%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~pIg5IwiFjV-aQh(yH?M9|VAMN0iDf>Oa2>c?2*!3Q-ocW9WBFimL1f8x(@
      z266DgM<4uAj(d}mL=Yu2$=<tn@1C=}CqI9E`wrkXmL-H3@*8Sf&8ZzbS28!ZOoJQt
      zNSUkcoetO68+OI03gd37x@B{Nw<LraQqIMuYOLp8tZneREg{M<<fY?nO64a#xXTc=
      z8@e?z$<SZ*f<5daozLioZqG7g(|-#H`V3puiBEBCl_6X*H68=QX&Dku#nFSLj2Kc3
      zJ?XL4IQq~p;VeU60JWPy#yJcSAyv~nCO+ZO0FPs;au_75MCSSS<{EFUsB2A5P*t<8
      zHdob_F7{n#Sk%u@2o`eE&WrYJsV(a4q4phgg62{`nByyM=^weqFnoLg3t~zR`-oE-
      z!&RTxp<>-whJ=Uk%xrTlhU*xWF!E<-yA{c}ftxg(EzVmEm;Kzr;j7~%?TRANn2Zdv
      z4D18F72&xhW5V(5h~1=2%BAy2N7w9z@Z@Do3s1D+2(}k@a8JTrhCy%6N3mqw#{-6#
      z#qD`>+t6qpQo2HqP?BF?tzmYIIDtHrF^f66pj*PH8|#j$-UzhEGUkQK!WNw{B)#sG
      zbxq@j2w9M^=!7(Mjbst8ncJ;8U(|(05}x8F1YribVvwdwP1UkE@f!Ny--sa+eGk16
      zuvAKDpMGyzllJ5E?WNr^LKFccGubbYGhdMy&+OsMXL5z0&^IBDl>#El6k^IW&XaF|
      z&gcp*;38SE8pI{?(HL>1o47!J5ykveQ96P$7f8Xp6r?VPEyFc0g-KjRihO1l@-Bvd
      zAlqHJCheMW*W_F?wU0ssKB&vTjJQ(4l(G~6&wJo`54`As*NChDS47%9%zUC2xit3i
      zh#di_5x@!tl-B_O#RE`0fYONoo*V^uO91Z(;Qc=VLU`)*y^IQ3F=R#>T>^dst7uAW
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBHCk7(Ewucb0K@aSK>lfzo1S7ww8wt1iB@3zVhXU4;cKzTmJ7+i8X!+?lne
      zG4;EDz|{D~FQTT2Sha05F-8rE#;7szPxvE@=iV7$8qsdDbKjol+;h))?)~}iufGK_
      zhMI;Jf&NS8n`YL$>}T`t`i5J#>VCOl^K1IHTh|a1=u#n$S+8ZwE0?UQuOT7Ot!8aE
      zJ7+a))3L9ZD~`orPYoBWhR6K*!i0dB5opi5b<a2J{(|W=t@!p|o0A`YQ2j+fpD&#&
      zl^09PDzeZ@YJ%a@<=Mhgxl}n_<bs?e)vn^?RAsqRUY;$SovwuQ<kx=3yue`bf6tU-
      zMu0#lnJS=#Bn0kp_YN<R9IrZd-S(dqXdOu}2*mR4s-;8Vegpj&5J-%N>#>nSdZCRg
      zM+_W5x9lA?&=d5A4fLX0ptES#tx|J+#cEUnxl%>9YB~!hC8T_6Qb#LBBz&I)$r!i~
      z?cCYFXnO*N?M;*76_*A%iq#U2V|ztw&9At#cI~1s&{4CZCJLM!2_$Lywv$ymTDkOH
      zRMPP%9@B7g$NxyKfyeO#wc<8KRz=gS(fIC>5K$G%oZqnPwOkTU3bdFF9ZzFi1Er4?
      zQxId|8BpJZ^+wZlc*35LYoy+C>7^u|C(xRi#2L2s<s?{GEzJfK9jPD*r2c(IIw)ZR
      zg5i3Uo<J_D%&g_P%|_Ka)2y#LcUOqTJ7H}!tg7i-t4S28NaX71DB%SSWr2gL9F=}|
      z?qJ|W%nGzgyVS)JI37KHC}LFCATB4tD+cDlnw05*rx6n(ZZTNkB?DPJB0XI)@Ul$P
      znKogqnN5fH`Bhfy9?SE#=h3|#vXgIBt&QL{SZ3v`IHh9VF+DGDdVVCr6gaRKvAe)h
      zU0G$p9*UT>gCEMxhk|zMbIO7#TUy$;-<xzo!t?ziB>!<FaR?f}R6@QJ&^b2HzB}&V
      zxHB^D;`rXkIE6lWW0~70@2hHgTiK@M)nl6=`a!OeK1Z)`U-=vU2I4|j;ua2nfkD}i
      ztL~7R)>Qx4=ZtH?1N;t<Bd|=4uaVsv@hzgS;|Lra!winANEyv{CERI>qZZEVnOk@;
      zbNDNy_wYIti?<QORbsxQ@_U15j4JlbQ~aqb9>T*R<|)PqVzy_#L^^);8sf3*t=HA&
      zl4e3JzN_GjATWdzII%y7_8%bc?E}&#t1x8J3{N+fxrwo2>eT2>JoP>XQqKjQp491}
      zW2Ex3a}C-J3~k-O;MOkNUfK_Q#P24B{1|C`LXMwC#2CXQrWg~a1ZOeLttEv5x1QlF
      zl%b!6L`E~Ib2oARJBZ@wHuTZ0#ZAN($!_j87UfieQ@3$}qb;R=C%RY-V0CrV)gBzB
      zldls@3Ynq$!1w(AfDZh~$Zbab#He5C@NXEx?~MKf!}wFt&Cp3u>J?Pk>NH}N@q(4w
      P8ut2k=LBm<R?6BxhnA|@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%O$x#=5QX1VZB<ajQ|QLxy32yNPy{_eY=@GPCX&XVv$^m99!g9_>ekILfA7sV
      z&)59{V2MG5fG{n^Ma1Ij;?z_pQ%lDYx`fH6uY@k*-Ld4%5k{G1;W#zg@y*w2wrRz(
      z5(Rq;W$f1EtdhS*d)7Hysf)GLu1@AZQ490EmJo&qbG8|;q+-IjU05^>A%W2GZvo`t
      MdkC8hk&glTZ+-_zSO5S3
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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{-tlI9G6fX;E^jTV@W>d{J~K>Vd3dV`Kn21?VLP1}313SsB<EKrUxz
      O-~fs+GH`;#8MpxZ7(|u;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^Z*S626vm$e-AcO(h#Ts34j3wb6tZ_3j0r&(O^7pYVXsSjg)XIC+79E#GSQj%
      z!VlnwGM>wt(kL?;LN538p5Hmob5Hs4^V@d-`{=635MG>`bF*uHh`Iyci%iE8LA`HT
      zA`G3eEBYtLtHMd_mFd~82vjJ9;)3Lw-lTgtJ{4A^Vx3S)_+l=+RF$C<MuMvm)}yHt
      z*7phRVRAUBa78mcPJ8BfPV}76Y5YfCb3{-EzAZEmt{G5~(~(8NfQBL=+mHteL-yg#
      z`D`qLW0P$ll!m@#x+61i<US56vT?$}zn4#`NfgE&vZB1@&(3_0ZR*>$unD!4vfu1`
      zDc$TfM>*W$ewQ~km^!YlV;gr>+#&2Fj;_i#u!DPq+(bl+JVLqAOsk38>FKDTrlLw{
      zCcs2MN>qAY4D6xK&b@a6@iy?!L=b%(OnE%m&Zn`k#k3qnf#XejmvvL~vmzodhd6(C
      z+2kr+>}4_W@|~FZbLpmj<evwYIB?{J=9Bh2QW3#;?eR1YTr&(ssNxZK{-;znXlZp?
      zEMa^3AVJ4hiz?4rmcMJDVo{D9zkpdNJaRfmH+c618U6rztNjH=>nrk~c$dL-8Iw;m
      z9c!A367LPpk<lC2<dv|6a!fg7rlb^FpJ9}4Qu_k8FR;5rmG}U(O(@zHHh9fz<pr{Q
      znHD1%fctpBP{PBj;F3)%;1z~f8D3#{?XU0*8r*9JO|*C|@vjQnc+4&G-v&BRegS+)
      BD$M`@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~%~M-d96dJ)<Pu&fAfyOQi-ppBNd#N1(o$(KHZ`=J5$G^w^GM#bucj}Z<WXVI
      zzu>~L8y5~67dQiS#*V0Ep;N!6YsdQS!o9k2#B*O>UML^qWRm;we)s&&Ilte1dHC-~
      z8vurIB?zBD?52K4Pw8*jsdUM*b<;A+{bTvOQK^`7MPuyhq_-VJ;K}e?w@a2`**nAC
      zZGqN`Q8xABv{9~@C2J}>E+8%n93W!F)-8KlFU}hcnWe>l7T$jJNT6Hy@_I=x=vJX<
      zlm(9EJfg-OX06lBnHAe0?Gb@S`-WNRe@>vI9_>M?=VwgIv_}OFMfVDbO$!9lrGn7}
      zfp!fV4us%GhlUn(?mXnm9EnW_aY$g?qvs{uY0PeWy--(X2w^;}vULj#?nQAQNRm*L
      z4{HdaIfNtV4dN&z?B=B5862ZOdZFMYuNf$Cd|S@_TvjF>%&|`{&EJ|c%9A?VgsF0+
      zJWH*!;9R?#0aXrx#2#MnCxl&a-LUHon7&~a3uVJfm*y>7z#olemA<%!1d;;H44y0-
      z2D86ORnb^ARZ+LDr!LRkH1hUH6T=5Jq`<al%9p(E?7X&}R;`*r3=14lzAdC`?PwNF
      zdofk#B+!tr(h*s<v`O{5IScefvsF6#Be5kLOsill(9$O$#;A38TQRPbOv@hmU$`cm
      z!DtX?1zNn)J4ZE~!%1>oP!VGq&O56`W#zbrSCQcf5=htVQTe-~SyzDjdZ>9soZGzJ
      zb^EI9xSii|^Xex;Z<OZCc_U-0W@+(SZ&1+`(6SaUaJr~hDh3-ST=#nW3y8f@f8as5
      zSBHJg_TY=nk8U)ek*gqAK1c-AtpHkE)rIC>fS(o|WJD`hGhF#N9*rl~&=ybJ!&CA5
      z2+zdtp=%92iTEmd))D#80qf&$nDCGrXpr|2l51#|>j=w_(a&cZK?#N97~m*y0#P^3
      zDw71bmmyx;I$|@q2mZ5azKUl*N6^2FW_PtQx{OYD9vS`&L+_w*$tRZlTamk4e;iJ1
      zevsJwglHjFF-^oY>!(H^6uSX5k=++$_7Ix<5`FS349Kr>N`8aWoS&25BF*QDZLeck
      z#$~JFMLds_4o)vlapouY7r0wB>UUScY)!$$gF64@rdaXqMO<w4yo>fFzlhZ2y|?wa
      z=Puekg`Z+5xw)bMlGLS&6=qR@E=)S(6s|hs46Zq2Rp&6hhWw5?zek6Bj4t^Dy5*0E
      z$e)muKO@EYdHD-6@>fjB-!Q}2y5?C|GcfBYWoz+<oOU(8gqK~-WqRNzm#AW!Sj7mx
      zudE|IkyIP+qb=#wCzPa!W&S^|Ft*CCT~%BDiB|a+{r?*$IM(w=z5G$Uh6_%%E@W|$
      Zr+s+cLCIl)V>{P;BjFP9!kk@3;6K{*^uYiC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~E|d5IwU?Kj@ZS1Vuq$0T<=Nxbb<3326{WHX9N)oA7uk1+M9~o3<do!tkI!
      z#F$8;i9f&}Wt`hB+lt~tr+4O_GjnF<{`~dr2Y}ajZlFY1eJ3tOQ@l@_P8cLY242+I
      zJ-s^MQ?l**JsHa+j0}ts7XA&*AOv&2bJ*SPI6H)T`@h&0gST8?1~Pd=D6g&e2xCro
      z;#nY6Y}haf`c`^B&Y`Le4LYILW__KD{;?Nz#j)=ZrrMz^{GN!U^3$M&GAf)eIhQfv
      z#XU;yG{}myOVul3W35Q(55m9;l2#tujl|$wx^Zj0XW=ns4Lo5Tg?=-NjX6B!MhDp_
      z2{VPvg)9Ve2@mrMPIz0DhjVs%MVQVnM?`{k7+yrK_g1P&R7d-JrL++2{eYM0_#%$I
      z*g)e?k=d>}`1iK4#4|7RBO%PH!SksM69#{TarT-hu>~sMK}R>RzF^`ryCu}vTI$lg
      zhGl-hWEy3oRyrbc!yM5zZtx(d=_;5}>>&VCm}Vf)29MaP%6pt#DbqJ!e#K1A9v1xw
      n&HR)WT^gdY42;J-7SgOb7E$LcCGJv5Ud9Ul)x#q^!z#?*v3alm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZA;rw6n;)?lbB|9T6OC-=gX>C6^oxMf`qLTN*S~i{CFGVyrU*1i7$vB^e4$+
      zf`UI_KWgmUG;6Z4?L$uPIrllwdCoca`;Uhw06SRIkt3{p5$B>VE~2{ady$Zy8&sRe
      zm!J3)^<*d`KhQBjSok|Gfe?&?cBi}Fw%-#LTmQv27`*EYq$i_2LVms0BTU%-k!ylb
      zv|zy?XuI+KB!{Lf6rd4GEf&{4JMFtcSM&!iVW#CfV$c(TRDK*Zkw=mFq7xYss{c@u
      z?T+OX&Q+s?jrA=4bm)7o7d6sYGZ4cQ>4c41&%_H<bi8B{nP!s|3$O5+X@_cvg!v3@
      zhJrv2VK$|={a+<{ET4}r3FY*1oJcS`{#oF-AEcVW)Oc;%N(jL^@OX#zK!l+i>Zty%
      zFj+BA^N%HCiASC1he4>QdGjd`13G_%N%rc<u?32cpu>BZU-9gY-5g46O?7Ep!!)k&
      zJdUzan;a)|w;U;K++#XT(^N1?u|@#Qpv*uX4CdIX${(3rDbqH$zF|Ji9u>Vo!MKf!
      jE{#wL1LN@q3o)yPw^(GB9CxWCFJp!O>b()(VHL(t&}^$K
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+fLg+5IvKNZ5$UUPzr4+_m+gJ5zj$L$ZFF_QB(;OsgH|mV3DyS+e!Hp!~=Xo
      zRjH9c;sg3oh*`&t(?a{;vG?qmGiPS}>+bp%z!u)<$Pw00L{C)3x43Etek`Q#hHLf1
      zv(KUQ<6X~d%SgsSsG~qwc$}J22u7o|x4+x6KM)q1|K--0yzO|>m+=lEzfo=z3U=_-
      zH9;s@uwW3h?c{!pp>YdEXoQI-`)hSi58QBH9C$8asu?)KYl~2-a{`*kqr`ggv5W|B
      z|Ka4X2H8=ur+Ot+HbzrUJAv=|aV^8@q39e-C#sd(CZ1zn#~k|@={HTW@B%Nn(M~!_
      z!t99hhzfxm!c11d4t`hV;T#>F5vH@tVIslY3%a4>ew1nw<HP;ES6&EK!{=q%o`@nh
      z(y{iZ$#mBYKHN5zc;<QjNeJ_5@cfmB0i7Sh7@w-haRf>?pf7!xKk(!`A9I-CXsS!&
      z0;X|}$pqz~Rys`Ph8ZbV`goe9X$nkJtN{U2m}Vl+2G2OE%AZ(VIny@Z{lsjRJt%sK
      nqH&cJT^g`b1?J-w77|qrud&D~Iqp(fUd9T))sIJ5#X5|8PVlgG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZA;rw6n;)?lbB|9T6L?=m$@od#j?+p!3f$3r3ftrKi+0>-cgg1#Frl+esI5L
      z3?@wQ2kb|UottJ&Hk==Fl6&rRp7WgN<may+4*=d`Lr0FV_E}try10z$w(mtkdTvl{
      zo?IOT(u;aBl#w6km>?`Yj!Pf}<FMW7zHi(6gq7Bl*an05oPqRY^p23<tn~;Jw*S#J
      zK`2_VU=Xyu_<oX8Qx*!)2&EQ_YoDL>-JmP_1D7z<@*Oegi9o7zoHUU~k@=!i84{}h
      zQIegG<rFT|poFc>EdFfhd#)EX(p)nT!&B*mjatvd3siKxWD%KRlM)LHSY+CvGLbN!
      zq0LYb$RW(8^tS(}CEN1p<cd&EFUN%hv*Vu!j(Z@L2UFv<?J6Mz>(JvJ+5-`WZm6UB
      zx58w_?B+j9#wuH#=O2SmQGWAR9tL!N2$OuOBgYXa-h+<sV1C21uYAm*#L-lj#tls4
      z8qeb_2erv@F;B~x!qy$8(=tsZlM-tLzzoU^WMeSLQFZ>n<Vu;gz4IOOY4xb-Eegh$
      lxasN$l`t?Kudo!eYFNe!v*dV6CHXbh_^tjo!W*o^_zi32tDyh@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%SyvQ6g|_XO^mUv^|2FOxTswiTu0mlEJDzQlKmu(c1k)alS%7uxe{FX0e+Nt
      zCyEsW7x#U*_niCw@%jef4Erux3<op5<RM>~FfNthQVD%Ld3Z`?B~7VaI1GaZQgHPc
      z-efb88;0(=RMK29v_~f?gA<qc!bck$0Xpb1^b=ZiUC%S2?|4=ShGA0Xyhyp0w*GE9
      zW-2R&!{lEQ5kqHb`7n$}zoGL*sf04ox;N2$F_n20SyujSS?gR}N_)TeBk$B6V+gJk
      zX^jhBRibjSOBDaIpe5^PI7cAC^gEzMMnb7}DGMnw+Zn&Wdv3-)c{_$zW0UgW3qWxT
      W_NP7c8{DAr+Za;xn>9PwbG%RVdSZzH
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV!349dg`Tz62GqbZv21p12LJ|mf*iGb;!vs-of=NKmf>l_Og)HQ9lK|0rV6j%~
      zeS@IlLA*tT4TuUt3)R-6YU|nC+FI?Y)}HeJKJOem8y4IDkI#pFXWn_|d7tZjuJ@h1
      z^yM?p6VX_0rAbmy?{$$4k<pQjZKG#2H?>7#P0_eXdTM`TOLJ4SsZCIJYcw8<G%StA
      zTVu^lODbmy67vN0z^kook*2n#k%soDakhDR>wo%KBL!tO)iygXw_<3epbW1=P~Le}
      zzR8_&6&TYH>1b|mt6m!y)IT|-%I=LcMb<{+7}j%5b8UO;jE>rd=)&e^U?)}xDpZ||
      z<B<)(G19Q0xgl2Du^`^OAyyX!xPi4Uk&6^1v5TU0Gb3#ghay2a-hirDYg-iD5Huu-
      zLv#c9kmQs*2H5mTH?g2W$#-Wny4^6ti@j4{JSW-#R%JV^X>W@)j9wIN!?@gGkyfz3
      z4UBJ{8EcKKZiv<i3QnnQh&9F9rV7$ZMlBVj&uFfTX3`)UY*MkHUW&sFk*2kyXEXqS
      zMMG$)puTm{)>u4RH_ZjPs4ddgj)?(eMFt5PZqWeB!TVLvh?@4s)zSE3o)Y+0HP=D~
      zB2Wa}JDq_k3W-e8C}dFy6#|jA`WOKANix7wFi?}THrh7B)r}d=?W|pxyD}4VkFjVh
      zorbw<x!)TFV3{+cE%9h=q%B&<NS<y{CS?h-{J;eDE2$jipVieYhCSJ$GpHPziB}fK
      zqfrpE9!QorFDORMU%f6`+g4%H6hS3P{!NR=BOR4Zb<s`p+uP=^nGWRYT4!yljkd5%
      zf&>xdG&L8uw%67dds?1J6?8UpWE%9n#KuZZvZyT{Yg$_|YAF*k!y=1%K!cmGnEb?m
      z=6)rk(yo(CnoILc!kWrX;<%^-O514BIaGyp6k&{On_D^rh5U0n1XlXcal0y6hXV0v
      zYkLDEk^x*Qn_8o7z$4e?5!(v8vw}H#u0;!JK3<BcflSU~i<S`UVoQ|QPf=1B+=1oe
      zNMr%-z~--Eh-V1Yh^pAy`nHWx{^c<yVP)HzoSZz9mebdnv*!ykODgei)KZgH3Mxp2
      z<!K#5%AyM>Vo?nvEMgE?5;cb;s9~fI3(IAgZ5dq^I;CE%wWyu|(8SA?jV%qQ0+5E~
      zYSpsBbXzR$oPwtKh36<v5^;~66=|`97@8uDYT^3y#MVARVFz?7nd#S$AS1@=FKATS
      zw@#*wNy~yoZEcIgv#=KRK6#Ky?SAPl!yL^US+h1;w27d*R;+beQ*E@htvNn_4KIka
      zw68GfV%X{=jg<`z(Y29=Y4Nq~jj-C@O3kE;D3k$9b*V*{Q7JUHB@)K~o^rEASI{@r
      z3TSNJ0H&Q{GOSvSuC(Y|Y<}{Z+8gJ_qVY()w!Xu439Sa4EdE^%6D8;xi@rnG!acRO
      z)WLe4G}^I%M#(&AF~h#zq8k`?fgiSQa=OhRh<MH2V$rQ^u#F9ohFBfXdAmh-up!Qj
      zHK{(#%l3JzMccSL1DaaX+!kBY!LM((s3-L@>28qht)CQ+J1&cM(7hJzqzfTNylg-9
      zw9lmbQ%#Xlu`GI!I!)RImy;eW1AHi{QGVN)R?JI-^oT?9V;1$HJjVVBi=LzaXj1;U
      zI?}q{;XX-|p7xuUZVr4F`}0iNL;Kj0Bm|YFRW8R;rY@3EOPS02EjmEYz--sWT3aG*
      zwe<=l$n^o5wrsKLg|%l1JZsT&^gMfhxL{8eocGE~(oW{*g%hS#%;V)Hn_z21EyPw^
      zA8V-dz<F8%>QkR|(;^tWhQ@J%@{?1f${pTX)?z96LYZi47-SO%Lj%VP3M(kYWWHq4
      z4_MKxc$C+Yt!u0gFI)5qFS0!QK{q`DHF0L_k9a8_hfM8J(;6DM_gUL1+3yG%;CD(X
      zXanmEI4*Z!flnN%<CuwBBgdM-x@P+kPxPKe?=$v+1{HQP-aoVG=kyEMD!a>bEZwby
      zD<50hxAVIBwM8HBtJ%r5XitS%-Nnhi>9-dBj%V$$I=VL2gm5~>=7RD0y+t1@Zo0!c
      zdf`|8V9_7>K~}V>&V2zqgf}s2+2y74zYd1{7<}rPM2dm(Y@b>5S1M#fbPLb%g++f?
      zb11ZuO!}uq?@%EN``;G*h6;J?mlmDiu^GU}rO|{WW+U>3&imxRJ!(k^p;<x~2HYnC
      z4trpZU$SZ>rV*wE(nO}n5LqS~>fsp`9%2bgAc_h^FKmxAz}ch(Tuy{D3ZaC67wMH$
      zcLg1DH#gMTbDK@kjrLVG@L3R#u8GDGEH6T~zzf^wW@pCWS~wTtP)OuiqOZsWRtQp)
      zufRZw{+7rW10ZaEV#DzT#z`nVw$KtqY{|3Sv55bneqxX%ip5|AVjgsxy*9Yic*Rq}
      zB$dfYn2|#*F^o~o@qjTHj$BMJ0%G#`>b;gJhKmwdNiix_-@O44B}_o8Vv>MS>IvRe
      zBQ0obZ)DiapwlcdnrF>wO!hO$V=Xa`*<+%g$8z84mYBe7$aMM~E=;n-WadJS10u--
      zCac^M6+A&N-vo9zrm%@@a<SnVrdr}Gd)CM%ch+f^m~PK%_o-QTh?$m{WzTAZNS$?#
      zCFa_*CMU3G<zRkVLu_pmM<9rEk>bo|MpRk!CjA(eLDX1czE}XMVx$e#KRz}5@T3YD
      znpkKdp+@$d2`k}EAZA1T{F5%{NtRjSYp0lGIfGhZi6yC^mcx9saLktK$>zi(E%mY5
      zR%h9+w8Sb-Co^KLi|U&<BB99;t3{p3{>YBRY?tXEK5WjKO$!+4(pYN@(VQisycC0#
      zHH#KctC=w?#m9K&mEUq+P^+xoLgc;<WNu(6GuZ1Pd=oU$XIeZwllq?)-U`-Pu@>x4
      z4)orIC9%UbmRPeTS~w{Ug1O6Lb#3+B2?|=dlk=pxDqYDG?P8-THb6nWCFBCM#3oKw
      zGElIH#1|sPWDplw;_CvvMho&m^l0J|OI$3@&k&a}BQHNSBYC{T7bv_EmKTh*W{7X{
      z>sye?dw8U9K*<44)dztACLu5?7iEZVGnlJS4TfLxgXx3F(3{8&Lh!mzINhQLcM$88
      zxK7+)it7<5dsw@{Q#CTuSZxIPZQP<daigI6{{d!Ftf!pyzYk$!akC|EVZ+b^zCp!1
      zt@E22kemb?ygE@oJ5o7`dZy|QL^F(Y9yH~o0j<m*f0lnLTupJ8pkj|Trx?cb?Xbk%
      z;vTy+;xZW1%yw9&>Pm_X_hE(2hGeCv!bK>}SX1m2G}Kp?I0YsMF3Ox4|2M!`9gASh
      zP>YJg)s|0LTwZSDl?I8aCqbUFcyYy4;Ejft)-FrjDYmj6Kg8U)58QBtwYZ}N@SW`6
      zhZ?M1YIzIeoDx^x?hLYL1JIUuGqTfG#ZI30NlWY&PeIns15e&+1QztE^;V5g##Iwf
      zTjFufEMO%4=E+?T6&bWgbXj6Qr-?FFmnF7|XDo4$XYN_+mRP3M)kW2#=PdC&Kg#wV
      zEmUDSN*z{Rv>}Fise@jw54|KlLL9NgQSn_k@A^nnT|@NLqgOB!j#=Wk_`Yo#7pVNY
      zTj=C*1+vn_OO`k!4g<a9YP9FJ;|R|zO@l+~k7|!E2J@aNp}%U0*Tl;lx1&ti2G$AG
      zD?|sQ^rj_#EPjF|TWc4Au^tQtg@UIh-nPV#D2uP&wZ!X`#Ynx$KR>m^&)CQHh_(94
      zQegQeBu%mdKO=k$ThI)9n7$B`A$~31HpK^^$Xmf`I6ruo5&W$se#p4{m|(+$eP4sJ
      zh)3x(<tRS3#3zpTWh;(qECczYB|c&xVm;se#S#eQktliDzQ^~Z=M1PaJ+p(Aqm`*X
      z#_?w)9%;18P2EeRP7#Vn{=*V~6JMC(Uy!e&%a_7WZ(oBrI8*!+8KL;6_|g(5B(jS@
      zq@@MfK{DI+z2frD*JVSg2uf^M1WOxKK6YlN)Mdbw2Dp`+)sFEkY09AOsa4Gz%g2q`
      zeM=oRa+zt#Eb)b%cGRFq1|($<OZMcxU|X|GyKG(U?L?f67lK|kE6AW7J%}}rUchb<
      zuSX+|6)GpzWFJfB$leG6v9$r)VC#9ep<oSH*f{Fy4s2OG2G8dL8^FN&p9IDkgnpH9
      z`S%;_eT7`Ny5MarZ~)}h9NgY1;p8%ey}`SnrFngntt(eOWU(a&%OPM2R(9&X2G4__
      z*)9gKC6L1`Ib0&AVApr@SWXGu)$C4Rkts`L$dt%5l7(RaUfmptBSiyQ)%GrsCBw25
      zyE^Pt+mWI*wWS*+Xs|1P4oA}sQ8S)q$<d5xA;8Uyu8APvI2qrd91G#BX^wAnaq+fv
      znDn3=kHxk+QoH_C&nMvZ_7=5ml@9tO)cjEYY&yk&EO~~kFl9OHky3k?WtIrhY5ed^
      zOHP$%L48?WA_%g5W>*cabowi@<TN?Ml+)d8FXgEvXYw|Q-W1)`X3E)+o@cZC3c)kZ
      zWwY8NL(Y=(EO`!lBXfPUgSVj&H_2*?`cu9sQE;~-Vl~a&NNYW`BvaN%>>rfKg-L~1
      z&u28Fcw5W+Dy(pFv0Q4(B`y-(MzmUTnM7{YtG%hQxh}Rw?Mo>YEOr*8dI3GIZSn3|
      zJy%%rJo$Anfva)YDQv+WTgMFexV3N|XE+ditKJ_dIW+}eWZ+gAu&Oe_g;up}U|F4V
      zgEuo=M{9(CkSXabDzEsjhIm4P9dAZ;)Skh8`zw|wSM<9trzxjg%n%S=iYb6#cC1yY
      zqi;X;6v?Mr)axx-PeYl1jh1X;N1yL5Zx4c7w1+ZAoccXV2d&+$fW1eX8WyFl40{AL
      zffWi{n0=`qEM<$@+XX~-Vs9b35L1?YT98b@CQG)<4Qz5QvgE}QsT<pqv<AQhY&P2V
      zCnaG`YgfP*hq2wTQwo~nGQ;B;+f5{;Oz0IBWpl<cFg*ZwQ=5lkC!#kG9pu96HkmsX
      zqJ}5y+ZK;BwZbtgmdtdG4RhccOMZvzlmh{1PDAtRNP}ZnQ*|R#UMFubCGxbSeNM+;
      zOWr7NvTGX-KfMs9`v#d;+ej*_H<lwrd5a})<wyqQ<O|!e8KmaJ3R=?$<*l>Lwf6?t
      zju@i>R>;{!n;(zCJ4D!`q-t8a5zsVKZUYyRkwr~=LxYON5GK1@zL|0>SGtAVVadDY
      zowjbLgU4g;wd5W0P9|grLaSy!I=;esy0?);<s*7aHBD~XmW)1EM<G-M9)1Jnj#6G*
      zlbx1)Kt71f&F1k}zJaasQ`)|-d{I@s<)b{+!*+6{EGmarFtX4qkH!`A<LXdGe`li9
      z?G=PgLAe_?zZNnqZftLDD{g9TD_$KfZh|bB_h$#?(}ISb^gPm3?An{+<~7B94uSXl
      zFgyWPo;<wR-f|4e{SbL=q=}~i!;_o%#cj>Sv9{J|!x~c}A?u%13-A2Ita!XR9+b~Q
      zxfVw4{X|s5ies$`=@{y&Q7!>S>xw(r?H!QMv)ela^88%(ya#K{3zj@0kAi2gMknzs
      z)i%3Z#iJ_0@mf0)s^qO&hI7o4$0ZDOX0l!;sM5!Cw?5@~wv$SBPKhYxu{R?eowjz(
      zCOCZsp5u*Ps7Jcn_jZvalNV#GmJf{Z3V6kmugcf#+|b^Q@&ze8Jr~E|fE%I}8S-@`
      zP4W$}!3#jVr~L3;{K%hJ@+}TLjE!8G<DPdc`7ZYa>fN%OeBY8kl|KWb^{5&)#9DA=
      z9~)SKqMiJOC4VV@g%@fOv~%8=Z$C_$Bacm-^=Mq^Gc)Cf@^_~Et=|rM`IWD3X~~b|
      z?}46TQFqJdvNFv~ToG%RpIGt_Z23&yVr*^&Zh_V6@QD{Qr1A_#aqT#STPZt|T#wF_
      zpUTfo`I&3k_%&Zni&I5v2NMN0`8SCah!4r&SOi4D`+r0HL3G;JR094}o&_622P9{N
      zJ~i_S7o%2W%Kyj{ru@>42^kUhv89nB7D;+5Htw@Dsp+Psr8(E(FphVzP@14;AQvrQ
      z$-i*XB-16HBdg*hYt!S6W$2EtY4#0)XNmGwCzp$6HK`+4Jc(s#nVkKY>R}}k*}j~f
      z*C1B5{iN%4u>7=aOY2Fj_F6Xo<XT!EPTG5S^Xlqsl~K#pY$ytN9!CzPsVrHn<2da~
      z{(;9eYgKH@qt-M;*0u(<fj}SS_x6T5Wo)3oIDu3j<qDeKrV3pKDm-lnH+#UeVZ(o6
      zw6#9M1u&yz1%eGmYnY`C)`l>?BP^Og6Zs0eJ!M?oHgOyXn=(8jZ{(uQ#2j_Dv4So+
      zGDa?IcU3mEw7bbKr<a+Y$80sV(GW+{eyaQ&JHxYCpS@wGh8!zbjRMfh`QC#}ZM-(Y
      z)K16hbf2CyrKL?|{mF4cf`uNY{PJW=3sZSeLu!-hRDq)Ls!Y01px`64Gc9qA_)d`e
      z^3B<nY>^j2?`-W!OCCgoC?5;5S)CcflG(_4y33kD-C2W^V}9ObYIC$oQ=5yFF_j+w
      zI7^$y1od_ZQaQdo0SdiZm8Df{HIQ^GjywvQ_mwl+l$@N*sKi3m+k6p&sV#tkaq)7`
      zODY=<v=>_1O!i-e-MHh&9Fa@rqUQE^ZFF{wj}G?qY~yJR7QU*o2`4O-5=4=MWF~id
      z;6=J^7CAjByB@vWG5#G0)tS02VQSc68Kp>JQ{$mAY+5Z>Zn<;@^W$}6J*R&_gRur-
      zpC}8bBMl1R&cvOhAbxQa5x>MI`BaPZG^#}qk5+PouI_WyxXbzMit0x;gZ6SxlZmqX
      z^SMjhF9FN~D#Q#$xEqU>|K;=+2^zSKOudtI?P(hJ6gnl1z%L_1IN3H*^$_lG4AXgi
      zJX(Hggt}-{@|8@yN^}Y7n4Mp<>_HT!Qrw{~M5p1G=O2yM29Ti9kD<dq=hbOn#t}}8
      z8i%pe4a8m=-yOtlX+gjaIrCovt~1|9g%UJrdG(QkyC|z51VB5f$3d!C-uuihI_nTR
      zrWcGWJ-WN}=poE)(s0F@5#R)K$i}%Z1V?l~o<2yqv<tXBgs1l_1o~nOCUF?RS2H0j
      zCVdvoc2M~y-e*+83YDrOjKy=LRdahc<uDFfsm6EvX-;YQ=<cwC%t)X?_#aZOjm!Xu
      zjp%70vk%(Rh0Jz84Wnl;;%Og3VF#gJ(2#0q7uQg6gwa9BFPjCs0nRU*V`&+S1DhC?
      zluZZFV9G}W?M26^2RAR!vaQtnAT3|6;a?Y>SJg?`{NONMaDY|`stPA3>kS<udIOsK
      zCKc09pgC`;iHjAhMmzWy;chk60`D?RXI}}bqo_m4G(cfAGD2Y?6ST%Rfvu_^fKk8k
      zF($*4R0gf1^#H@*8XR!v031syBUBn@aHUCnZE$}BxG#Ko`oT3)6TtA<ItI)fucPLZ
      z0Eb0k8azdiOp$R4z&4%?xCOdp1HRA!JkP;67z&p%#@&{x=nJ_0d~kyv{XvI*g4u{u
      zs{=RYz+DWuEFgwklm_ldz%5a5L-x3@fXg#5<{C!g$g4er7Jvr92#TB4swmfw6!8kU
      zpN1E0r(lu1mkPr#P}?@jLnF3Q-|%4)7`kCAWgVo8mUq!N4u$v9CC4a>n{a|I$NSTd
      zQ&z~t;@U^k860;#zmrN-Yt&CP@(esI5AeN~A8;34C_jJ~c+!6SB(xl_uFzNQqw(QI
      zoiHKjW9+6E>8sF;FRH^rRrldVYOFmpv=4afr7b+m-DHLO&{cUxg04p2brS=50lV);
      z)rYrl-byA2x(%0DK_)1;6PI@#quJcNKs&Zlf4(|QJIc*`GhBLr?$M}|MwY%n_id#<
      z{H*ja-4{MU4{(1k?&$rneT(ZykE_-9cput*S;nnfsoz1`vpkd|O2b{Wx7-Znn+fU)
      z=NOy9q09sw%-4^0l8N6#PeB)g2y3o`bgsh|G+OkqJ^T<y;Yn2B>6w%*rc%B*i;BhB
      zG*V2XaX1E3E@tD{`WzfFucQTH9?ogkVB>uOHHveoO)SI_zD0DkSc;%@83L#k^n^H%
      z_M+_)U&ryr^XdB{LNALtdP79%ZLx;l7i;NfXn!f{>9-<ApNMtzXR)6CiuQBSME~Ye
      zCu)&=d?HI+BzlWWMIlZ=3>TZlSe$2=jN=TI;#)YXavjc0T#r*AH{!tjP2xgvvxwt*
      zqqs#}BJL1ZVB2>K+N*FD=q9mE>Gc}8XK1IZ*SK=lA+GH8!cT3zZiL@F1PwQ+4KDgH
      z3~m6XZ7;o``hH9I(h*z*#Beywqx4;@osAgrJ%ZS=8gOXQUK8Ri^qS!FdumOjI4vlB
      z1(g2#j?1cnfLUwG67(X=-8R8@l^viTN-AR|)bsSaVV7A6^)_fBI<K=elRIy8It6qV
      z?@upKnmt{4$bvfERd8Fo>sDYTh(#FZ)7ew0S6LaWR{%>2>Qx5yDpTrJ3hfHO%d&Er
      zu=#I+%(rkBkXu{1Zin+F0XHk)X2mWl5D(E1@i2`Nk5HL-j84bq_EfQ(W{RhvV0)-q
      zJPjq=LyN>-S`IocK%lc)bWs#-y*L1+JBYL3&(dbJTf}p8n>a+<#bLTv9HCBRe|yC-
      zIv|eYfav$>Ib0tRFG2xdh627qucCb&xV$S~Q_3(Ef`M3EWxy2+9vLp}rdMI@HMsrj
      zmAG|$WYD3+ZQ$1yG6z~XByJ0twu4?at>YXaYg0SbLZ4nVF1!oo3+DE<PU^Wu6Urj)
      zJn>;F@4^U^2>-{Z*5=(1WlG-x@7^Oz{FM5NpM!tDpn<p_CElU2;sc)(80XP3&Qa<N
      z_~6x`NCS?qyFnoMAAm{|J)<zKI?@RX#imiOgFdj<;Q#n>9LK0Dr6H`8rKw5@!v&=*
      zbyTgp-sCxEsjL)wQxk$hca=harxrOTw1|}#J=fV9&1UsR)fa+pm9lQV!D#F_u@;T1
      zpJCQEgi*G(JxvKvkwB!xt<ABU5jBzc7##bYGQ}6vNBkY!`Ug%c{)<M7e?#BDggHAw
      zGbKu2Ql|ydpz~!0t(KV-m07d~*D(nvDlKZ3+0-U;Xp`(s-;lX<Dca2vD^KRpwX!eW
      zDEraPXm67RbeAlo?P%}8yt`yEJuU~+Q^4bZ9I7OAy3KJ%LIY{D(k}@)8OmU2Ffn1J
      zX&POH41f)b4yoaAprc>O=ni%v8NjG$UzVy#x`*vQ!7{YN_H)4=4ybZM;eB+MkE6-J
      zLPc(J5*czbS@I0ZmgNel9SY}ox|Kt3BSPf>3nzXZ@X53yLGLC(s^Cf@n3L1f;)iq9
      zz$zJi&cq#uTD^gwYx+V5=%<pBFndCoNuEQdtfCxQ?StFfK~eD64h~{5KxDdyBj5R@
      z4YiOP<%ZQXaKlw$O!6!LBq}wKOMv)N%9CHCBDtJ~$@6^t8176~1gpoUpZS4v&(5^3
      zVN$jQ%A8j*ySLHI@G&}DR3q%U0I?4GIDW2HOR(lh=`qT{dioG0!32F2()ZELPS+=h
      zky-1@Y^^V$IW!ND=TVhvZLKfIHyb2ZLw2>0Ta<dsHIy&c(qLJS;_^BwmFsDoY@ms<
      zkt$>poh6%T7M@khxT499&TAZ+4639*(NfUT8%Oy6On(72z4;ipL*4g1>Np3hI-;HF
      z1XG3MYRX>VsIEuZVS>s26!s4O>2pLxSpUD=A_X&l{LT|UW|lZ{QtFycN8LEMR~)c`
      z$S;OwUP8I@QW_vHgG4T;u-r_e(O)jVNz>#OP}KpdzLkcm4CKyi3nh}hLS-L0aK%x2
      zn<}9>RBg1y)hJkQNPZwK&gEEIRS3fVrbP4)rg;pyr+YLPfON#QeVE{FHU}U|#9ko%
      zUrEwmfg1SX{Ri+^+(`|e2WFGJ9^~Fg8S*BOdkYm{%WJT_gNDmHDI~YiSh*cS+(EPD
      zJuqSS(_-|ml$}&7AEx#45xP)5MH{4@I@*!^Mn||Ah}Bu70xX*BFk~zZbr>R`$E?bn
      z>Th-!GCY*P?tLiSB?5d^Q&tK`4(-e;ElY?XN)T9EpC-{)nXK%BF77AnZ%{A!3>C{~
      zA+6_?RBUwI^@F7;dJ48D1{I5JTuE4$z9I)#@LCA{avgM%_Aep&bhm%U73gmEkI&!(
      zT++V00g${bmxuO>epR+0M8P&X(-!$ewHT{8k-w{^jKx$IIv@s0+9&#TV#$WO#1LGn
      zmtEftAl5-Kd^xx?ayQacNdplx%)ulGmsM-8P+N!J09SrY{p8y;5W5mX<$E+zzE2b6
      z&*)6~bDEC+dGc3OBY#cHq@CW{D|5NGG8c=G7yyn8r9mPLPBD*4)AFdSJCFX9mPa^-
      ze@Y&Wad|ZUzwl@x^Jt92qcd;`9*wE`zwzi_;L(4mAFTX9P0~<Jqmi0U6OdS*shLRc
      zVEeR8s?oA&nbt#*^uO?EipQgO93@x@9M5zKJbN3>u$5p+iV`S4(I*6Rwgaj#gUQ6g
      zSE?`@mkPvJkvR`#8p8kis`aUY){hJ=A7mDS%z+?t5QVg2s?dhe3~d<AMgIbABrVqP
      zS*sTEk-5@Sg%zGE4EIz4-vKzw<w;1DgS<&tv*%Q0&4Qwq!1o~g9PIcUWZpZ<^?V(K
      zRZE)1UM34(23mgZtYJ^!^?X#Q$^fE_Myu9Fe*_8^q)i0+lgQL2Q*W)D^0g^6NIR2C
      za6Lww25H$2-(KsJJe0@bQz~BTCXEq`#A3`b2+-JnBG%zA5B@L6FHJ>$`F}^g2FT9`
      z@(Y0cLLk2w$S(o%3xWJ{AiqNK`>T*Y?<C}LcHcq18pPPKRzkpeSfTJ95z)KE+N6zC
      zL5x-p6xLC;)}W?4Db5n>1sAY{X!JmLK%`gzG!jAu=pj(qMb)SqEZasoVNFAC6aHVA
      z5N)AwLUbf2R7P358WVnpEbUs#)vl+(+Kn_qyV<8(BOO6u0%vmm_@6@o#AW;~f<qzK
      z)0o0u>=eGi^j(^czI(vtd#R_k(??$~Z;D<XeVaYN=~#D#mWFkYfRabSy2pH=eIcp`
      z`brOU3eMkRoUclU^FH950M1=Lz$fE8n0JR9W?TS?Ff;mMh4l$RB9Dgmi);7Mqj2lu
      zrtTtm0oD4Wl%ai>dZ5kLzDIeQ?YwOH_x1SGSKNxC1CA_;+q}7EIdk=J=eZs8B&SgE
      zw)P`P_;nxpJv@*-JdijJ@1XC-+&vldT(NDx*nU{toAezjEzsTt+V6qq?*i?26l~kq
      z_H<wiK30#vB62?%A;kkKepm&zFk^a$0d^NkjtTMLZq}GihOVi~lf4lB3do-V>(6{x
      zyU{$}7Z0OUAjG41%bt~c9s~Y5pNn_s_?k0Ye;BzvTd8LV=50?xJkiOu&MvVh$t6XR
      z4kM%^tkreuryIU``+MB#FZLq0<ymlu-<jpx&MZ@yTgOR%D!f-D9sy$bHyVj2wo3$?
      z%>MX4T<O9AaX_Mq$CdO)!w1B({xoACSB3Omz$BZ3dJYZK`_O569*x!eQ-xmO!)l6$
      z)fALPjsY9N$K-)cGP=1IcO2b};I;q4HY#>KSweh|!<k?i`d@Ut6{pa>V19?-jUh;y
      zxwQ?vjnxQXR6@P<5cSbZslQ%EMYtcXk5O3JE_Z~7)d=wF2f(Ti%=u-ia3c5wyTdhB
      zTQ*x}sGu+*UP&sKN?!F!A4t;!Y4S0A0KjW}3?Ik|KG2WWBN-JXjVmP7>9{ln{|$ts
      zWk<zsZKB>u<>34DJbhfbQIK!!6>rr|3>5OkJ9QJyd?PQAXC}mZTPZu=NQn2hQ83>q
      zJGy&|F7kA|h)m_^|38$iX`qAv6}}bb+eCE#08s9Oh=AJ~x<$3OV&{qPAHYr&x3(;5
      zkgSj%g@&x9Y`q?`SWg4=MjEO&QK{Zc6Z96U)GwqO^smr2&?<cs#q<t}>le|*`o(mE
      z{tdbn{rBpZ(F1@p5|FvX1(tb??(`Vl=`gw<%}|+vjxaN<G6Mq}fkRMyLba17pg#Ny
      zT$yyfH!kLli+kfP_QtU;{L;~dX%HD(g&rX+onPVqZxZ6e?iz8YLe#d1KJ!I?62Ai&
      z!QVC5;KZc>hj@hUJEaC(>}Wtj{C*n+I;ozEp{x>08w}1!?K`N1+Cadg7dVL><~%_v
      z%Z2(pXiGx;p*)x$JVrzFgOI2*z<vTP;ziD|QdQ`RRN>zPZ2MqihTAq&7rDKG?pEzR
      zv{SXV@KqwHKMvtP3E}UC@b^IY`)H(|K+d?IChG@iw*D+F(x0c5`XO4UAEss<S*U)L
      zuGGH^;qRfl^y737V6fm9s<m>TC;0n3!QbZzev2dc$+S#~+rV~br4o05R#Kk$6BNOO
      zN@S|~RZz*|t3>;U?xKDFt3}IylETrH)zA~xl>SPz*kA2Jow7^(IkjMr17<Qq`>NJv
      zoGRbwAA)heqb&U+Sg{Xb<v&(4+aAQV@`CV}37q-3tPudLsqTC*0Gt_4uPM~)*p~Dy
      zQ-&npfGvf+pcl93C-U^|Cq4#dFQ#HOiOK<~oTjMO#_BX)clu|*>ThJ}Ur>(zcgolQ
      zNrUu%!Ser`M&W*}{w3D*XLKe)cNUplHk|5+%tF!kQ$Uf}UL7Vr!+wMYx(ghU4T4a3
      zFT(&m_;V=^Ro}sAw!K3YRn<qr$5F^Vsy!AC?cxjlF*t?Kt2$5op0~<1$hHS+#t7{I
      znA`qv4BXlzsCu-~gG?ibvW(u;%gCiZMjz^L<WZ5)i;D4#(Y9AE8xJ@{{Ikmo>`L*4
      zkb~HjfXU)L11!GlIJ|V1`1|gI;-AaA#J^FI!(BrBXIVH`3f1zcgwzr;L)|8%mDDWd
      zv5X-=YbaU9aG*2-=!~S{MhTs6jPjv$hJ#WcR8o4OybEK(ALBSE?SlX0oXIW()Eo(g
      z3%g{l@&LRo$4fh0Xsk-eT%U*d$X}i_5e2Y&8VAX7YqQP9Zvya}L_Lhjlxv(pgVB~5
      z6KH}_q42Y_jfo!1CdxdNmf8JHM46doo{gxA3s^{%_?w@v!Z|+;&iVfroM!{)xxl#+
      zIL`ylmB4v6aIQKf&IPB$xlk6l5uzN(5u)}-(89ZM8w$44fCBv<$}2GLq3nXdJ;}}B
      z(&IE1k>mGjIw`-bARz}KqvCdGbtf)VXmk9;M;Mj0Uyek7S#^Pm$F2wG_#f;3K>X+R
      zxD@~6AssK*gbe(a>!AQQMy?!F4%e_U1pPYs**JbS!+FMU``$a9pN&j?ra%McM1JP&
      zYL_06lksi3iFOLUXbpDKy!_w+c{Z*y@-tqLv$oRMviyt#a*l)%9Febk*8}nm@49Dx
      z#$h>YudLjbguKN(k!Nl{u{X3=R)G)LD3@pKlT`<0&GOPNxnRFsRE=#reu^_O35n_#
      zu1XhiM69B4?D)>dk)R0a#%jtiYN@AD2YE-Sz*tLzj2I0w*3(F%kwzPcIE)sWY{X%q
      z*3&ejon{#uXs)r5s?b&&mr{eVnHr5Ns0nS{_$IX)Tc{0fhjArcWPFP*Mtiw&6<uk3
      zo4##aLsuK$p=;1yZ(K_^7}wE_Xm2yFr`wGi=nk~ojT>pFaT7gY+(Hi;x6&@Oj~KVn
      zqsHy@7}}?dJ7|w_Cq0dJzp<5`Gq%xTV>`WI?4ToPk73XLIJD~fXkRw&rB{rd^eWmn
      zjr-^w<9>SIc#u9Y9->c-hv_rpQToDo9JR<NM9_FrgpJ)|qVbfNYCI}tBWSEP_K79N
      zezD5v5)tEoXfh6pcH>!I3nCkK7@F*^U+i4tdt6=%VuL(iUV!yG45x_jXQsgOIQ5k)
      z(TBh8<Xt`DT^;kTKEU>pJ+1>~)LwW)r`x=%r@X6|y(@mh9(Oqf<tn^kU}Ms~+V5Sx
      z>0R*~_P8s74<B|3AP8}<aH_)T<Fc9k6mK|JpU^eRBAN6VT_GcKHBJz~f67{fHyO!%
      zO>v+O91#5dpJxN2DocD0{k%r!e}xSY*o%}^$0*a*;cBe*TwJa}?Ufs44ba!au>d#`
      z=R4su5gv_<A40ibhH}3G<$e{){Th_}bvTJPq1->Fu<;g6G~TAOjCW~<@gCKnWj|)8
      zIrCki;*Z7ILM_5>%338<!Jj`u%v><v2vXRijs6N!Y(kK1^I|+khW;387_OgCRT=|U
      z(fAWk{WDPg3sC(lQ1xfV?jb5n<e(#Dy>w6b#2tPXhOp~wg%WbzR-OeH4b|b&UEO9>
      zo+%I{BalH>Ad`9qEXob^r2c_kG$4@UV?v?FghDzDEylTA>`pY}isg#)u?`caI!p*)
      zr%}d}S+}Z91cqQHdqdO?5dt36fNaC@NA}0~2FrnUgF_1(fLynY41tJS#*fn=rUo&>
      zgJhxT5)3Eg#@HH=$_8j=hRRJAfNj?BP#$_PxL?7$?-3!Fg%1LZU{a3+lmoJFO9
      z89qYCIw<9#PS51=Mu{Q6fqf??^isq!wzMZOvJf4%@))O7Nvgy)ut0&eBhD-btdN(<
      z%N-C&UKQ+<o4fNW3SO;I5KiJ1e-8#2IoR}a(MfKP?3G)RDrF<G(T9lPAd(}$l^&5T
      z-4VGOh+LB%5qXtD1PYiIk<Hx^Nqf9ge%p(|-5SO)TX6?Ls*rO+UXA}7t4r~FEtfK|
      zrzU+nX10)V#3ZnbG6N4%7W{5@;2{Y5VJZkbLW2U2LfCc^WXD;<942H@e|Z~3i-Ysj
      zQ)!@t9S_Re?HUGuspZIOm!pew5kO}hlv|f~$-54r(jvF>R$wWIhlO_D2-C#Zhe_b+
      zJ$C5__qf@a+y;C-$z&V*1EdF@!5Vy)astm$-@qXn5;#ob0!L^H?&k!)s{~*hq`40E
      zM04eR*!|<Rc)GI0tfKg`%fUIRU*RsfD><XR7GH!|UrH}lajSd?Fc{Xu4y;O8X}g9K
      zMo{rccVMqkAn+p}ioQCIe9SpPX)3TtUgYEQ2^*~VI@}G1+`GZnp3K%<`DB-T>JX}U
      zNWt?_#B)vu_T<xnxpGgJ+{+K!P~x+D_Ng9ZGtPY%-#gU+&TU{N0QdmjJ=i6mQzARe
      zXHE+5Bc~EzpOHdOo;o0fL{CXj{phRE?;e{f3@`Er`%CCyVg-MUo=~kF?5{xfLxE2q
      z&OcDEz#nOF06BBuFEl>zSDG65jAjHrr<%YQv?TCPIzR9)st=r?W|OGhl(gBz=?}Em
      znI>&DgR}$fy=EqLV*Hb)om<%oyxUWO-74v0OSD^+b|g-xPL|(Qi9!y4IOYg20R?7G
      zmph4|oXP|q!xjMNw(5W+=Qq13BTvWCrCz>t;lrZRqmQ{qsVCATK$%2msMe-A#9_P%
      zXJQsphB=tB&7suS9F9LdJd%c)I8ciF@n$Ja!Wj0eHVx$-4do6E8FZSWL4!iuCzr6%
      zfa87Z92!1H0L1maWr_wIE(HlVwlvY`#6A}%Xa-_+oKO?L-%7dMqNHaQxu@hOnt3K4
      zy$F})2fF0<wiqY!jO{00>UKgBvG77nv5=Oi)+SKp?&b^%nzJa^oI{1?To6`C6VOgF
      z&!H)170tx6DvVib&R0avMKTRkJtCLM7uALi`s7PE{m7xhGWi1-P!0Bcidw%0EMbXa
      zMgZ*XA%BRc`0L#K-JZjOPa#BxyAmew<#IioukV#V;-5G9=g0i>c0#_ljce2CpZ&bt
      zK$SBgf1QvYl$N28A%6oS1-{|x<NUxO)pEgm3Rr=}0EmvjuZpA02nEbq$hD4!m{A&M
      zt^xT`kRPL2<~o{hHqyCf6Ijqp%h6t7wkTHE=j`0AOCayDVx`B5m5OW)_F%dEqx=&j
      zJq0`De+J8-wfrrY!+=|Xj}Cms?3aJV@frE|Z8W45#`Pb_A<_IBda#InMDMcj0Znl2
      zoi_k9BWbZz6~pWx-Mk3Gyp;NxmqDPHQ?a?3Lgtk;+PuoArDHq+j&U~xs8lnxAn+)}
      zxf|XdgJIM%JPiG2*FUc^yXGxqn71nUC%JV8KJiCo4z+Edl@+D5AV-wlPeag@?o@{B
      z(c|izlyeRk(UJBT!n}emEi37CRX}Ophjn>B^)w%#Jo7;sj&_8Jq!mzY3`#u;OSK+$
      z(xTx@H5&u*JmzPGd)_S|9i!9vY@>2>>TDytt?yXl$3<*ix8blo*5*VV=N*v*Yiw+A
      zSHw#-mS^zYP8x{N2|+wZ!)rnbtrtGnupePXV+1c}<pwa$TiYU`<?tFmMuYNk@YJrs
      z8sidLZ@2zx@P{8;41uz&e(#CfOR*Kewu_fd9UTNEQ6y2^B7s!x<8(l^2l3Zfx!>0J
      zCQj%~RA0^Alx6OLP1{QY%zadZ>k_kz!sY=QV?Kk7{vh=K5KT1?!vq|~pW^-=Ei!*V
      zE6g8K)O?wm%vb4R^GCGBe4VZ}-=Le!H|cisCv?C07CnyfUFN%V5c9A+><aDko;;q{
      z@(_sNb3GcZ^@U_Kno5^AS7FM*Ap$N3&7_Ua)f{Tk`lHXFE!bu_jCTWoioY@IXwyr$
      zXIa)1;E?6LoKI=_JE%YII_{xNG#A}Vr=xSg-BhMcgk19!=L6#kO3V7{I8DAKAo93K
      zj-8R;g;Zx39Zaq)70Q^ug|7V$y7m!P)$eJj`3a3O|3H(`&NTl>)#jfSt+q{Y&zu1#
      zH(|!vjsjrLT3_QN%(%jVhyZ9EK?9YcWV-N&lpVUbaK|>GY7kD5-ntD3<d=hpqE-8}
      z0XUk5&a2$ceD2Keq&|CS*fu9H(27)GkW45C;jHe}Nvdpn@gErfFG1A_DuN3N1tnDk
      zb($VD=$v3cQDg^aRi5;!v_Zg`J#&>-tfWW$ZKaK~;14C(AFsluRhKrDnR+)ZLF!n-
      ztE&L#g|*>)JOe_(Zm(RE!R+V5!wGHV&J({bOf#?}-M}Orv*AoAm`j0R9`y+Jr<~vb
      z>KiNsJw-GmIFL%vhS4`MI2iS*p>$SoIL!`@0DU9rT(pbPw=x)3wA#*Xl}GC;Z4{t0
      zt*dZcB?r>WMMhwsJubq2I_t5r=uY2kuTS#drE=tWIo{(Svqae%`;#g}*U0iYqQ;jL
      zTjYtt?I%7>Ew&HlGr#yhLbdklRhBO}n#|x>>J=PM{m~A>{m9@%g}-h2N*w%=^eViN
      zziVL)DXqqvxcC%GJ53v-a{K+jj5Ta-IH4hw*CrjN`%r<L#FsU>+8Lz@t%7%*%MOce
      z32h2iPOdi9?#x1`ye^@g<-S&W{KOBEQc<Bra31NwbI1x-0oxkt6P!;2g9~U>a3PHk
      zE`p{lp&58KC%8;uZ^uvmG+-@G-QY7ynxaidv@Nk2GFqE~G7L7`w3*s0ha!}Y9eU#Y
      z1oR+-(PoE109gF!e(fAiW?#_egOo5|CbV<mKf^G(=O!_>dAk-E*8|%a<p<Z%uwVnQ
      zZS?Ur<mpC8uGJO+JE<+kj8a>oaUpgb1>}doXPF)ptI>W9#iPs6E=T)Kv@6hl8|`@%
      L)V_`u#jpPd<YbY8
      
      literal 0
      HcmV?d00001
      
      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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
      D$a$rY
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TTc@~6#k~Ptd`|sxoNFR6|qpHBHlsNfGDO~B3Ki=PIm`7xa>B&+cv~s()|HG
      z@nT{$`e4GViGRs>X4@2ugomAP=bZ1H?_B2BpC3N~Oyi!02*c<WukjqO`?*E2!K;?P
      z<QP?N&E+-WdfZxZENSd$h%#i`%mv5xxwM5_a82PJ7QoQw30HEfNLi#~zgS*mU{4sj
      zDc1A3?H9RK6|s-g&tvKPpT0A6&PiMP^9&uC@ghTX!7)V~9q7>!M;AkHo&=v&w@boZ
      z<0VTlB=U|y0-R*%-ZDo0vh*0n^6g@eXls^axnYQk&oG?X4_R=wD~>H}e|CKRIEHXi
      z!!YT!Q?~s&P9e#l)uboGn%H`r_$eJ{aF&{t-lFs>7T;-BOs$3aMs%dZIAJS?sWdL=
      z7{x_~l=S`?DESMt3Rjw@uxW<NO5l=?j1oxvPgd>;9a-h>YPpq&hRZa>{T8@g<DP~b
      zLr>ed!fjz`m_BIB^OCa7F!Z;1tA^`XmSStTesC~NM~S-{ZXQ&7DQ(lKtI}@kxYHU<
      zUT&8Cx=<(W+n|{<3>>xuhWM&ebq%p3)!s*r*yxn1k%mjph~79u5;1fVYIKX>7=4rs
      zU3BVXnIU9^v59Z!{v1+z>5LN%c!($-p^yIbCJ85ypj#CE7-%K<O{lm$`vrpyyvlyX
      z=?2#5cCLY^1m_#*C*xRvIKg-WvFL7g50e3M1XBSr1Xlv239bf65?l)?WDhq2=oE4*
      zP$3<=BocutZazF;Q%7&mgSQyOd!)cIff6QRQcr>=ynzSU#AB3EfJ6~n#QuPH*bW;S
      UY8KsUh|0$-=BO2hyP?kfUtt>j*Z=?k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)--BTM?7{;HI1Oj0x5c!Y~F;+xK2vDq83#C;)G&E2J3ewh(O>%&xVHY<WDjgli
      zPMu!ZOK(KI@J4UAaYkT9W^BFD8UGOf4D~s?Aqg$Rc(I#v&Yt&ufA90Y=j5+{e*F!=
      zIi!N{2@J36Tl#>0#~GNAD|$ZbT$S4?OSdyqRyv=X(M^3-+Fg@d(sU+dR^OhJALnJx
      z2_hg+@7iW{b9LZaYF(zeS}D+2S{=7GHg#K1Wu-uaG-;Wa83u6O<pi3O?%up(WCxOl
      zd0S?ZM$Q=#sCJAEM$tDm1;n&K&5ELt8Rd`>JTnEY7A%u+G^%vgj9k~CKzHf;DM=}d
      zQNuKxF@dq3|7S8?+E$9(yC@JCw=%LC0?%lu#hDQNXwp!JW&wXs?_v<o9trbAvLUpf
      zNg1|l2%<`jp3_i`kQzO&p$3{j9mSEe`Hhsc7d$n?Nh_^q7j@fE^TJ|42_SHx1bIsO
      zPuEoGo^~rH7c7CMf+l749qCO3@v=ZiS&6fHE;p{{oXJnpa?>#^GlXt5v21h^_DIS-
      z2n21fg(yD<dX~f|hPol36?(?)7ltjXl2jczaMVj9y^Bi7a~g*53PY?)CrKu1-qZUu
      zLlCbDw75B_9y;zSg!6b!!v(zV`B_?%rd!16AgEAVDfPL$soJ!dcoi<OWJgH3$Wg;b
      zth^JqR^pbOk#-0daanc7l_%1kcWlF4Wg=C0Q=snzHz~Pd*)qaoVLRL!DV`CP`h<o_
      z#0jcrG8CT&uC>$#$1`LW0alIboXHruP2EYaxdP{upQ{>@nBk6`ahFcmya}~@O~X5Q
      zmnF01hPA~HO+ASdlnr4X*MnFP=qk#4N)KvS#1ik3BaEY@PcJnaLnQbZ0=2YE^Rg=O
      z-_r2DI&~H4tki9R(7ctm({jpCcTnUMmVO1ymP?qXw8vFfOLk_1>$&{qLxcy@&!++b
      z_|%!@ZOW5_ko(K?3e?xDOMvrAeyKw}-wm9Zw5#B6BpTa8IC_A_=pkB`574@YwrFGz
      z9nsdn9y)*K9v|ZX&F=mszULX?3L0@8trYDA<%QnV`z&7MuNo-^pF2_%0k8^qiEkDA
      zA?IrUQ0#Yz9n>76n}K^C#U4Y<^!>une7^n;6~5i#YzGzo-M}ubJesp^t~Z(UEoSur
      zX+C09odhZLBaK1GGP0o}*${dWB}XGV5hJaS<37X-WS<wv;)?7W1Y>`yu*bP}P*18(
      zGIsumiomYF1l2~7fpuP#w<-Dt!mt=-lL4$Un0OH;UVsUsy$I8ffdb681(->OYTL))
      zW1OGq`va}9eGK>Up+dEXxVRi1J;2x_wd(5jePQ(twW>_{Wqher$4+Vn<O#XOuy<IM
      zZT<t_#Rxvd1U@SRoh*V*VhV2&tA;nm+Z-v?66^@Co)0(=&}Ym8ogVdH`U&l7;@`(C
      zv1d6B$M-R}bl)dB+JE@>?-Guu*%vJ5J!*EJE%hbC-eZv-xF}K2bpfS{B}?Kx1`e^@
      z%N+S=QSIWXgK(n=HO!eHRFwyHvlP*5%&#cJLpOrv?JGp^v6)npeaMCaqbM))Y%Je@
      D$W!+l
      
      literal 0
      HcmV?d00001
      
      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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
      VuhMz}xmmu(Z#@g`rG0Nf;IB71Kmq^&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TT|0e5dKb@650mK9mQ**VB07K6>r5$Y0;?$nV|?X_!QbRc$}KdG(psV;!p5R
      z8H5=h`~klCSA15-JxQPxN8lx!vuAg|Z@;tq{m<8L0H!djL17quWxcWT)~1&)3#;L*
      zr;D{3cU`g8;Kh}tz^6ey7`P(ry0h6H82A{vUEZWR%e?6d$9`TZGq5KNT_wkMJ<Il%
      zt;PnAmQqh&eBA!^gQ3HFDctlVLyvigNP#YAge|=L4E>pZZnMh_YRRed7zkBI9Emt0
      z=+&X4uRSB+R*)G<Q`r33#_KiST(YP|hF;UD5nqc~(>Zjik`=?)Vbu1X196CF&pP*7
      zvMoBY?sz8aXTQx`p`fB6ym$HbxIzqPabCkYh7sBS(a}0C;3COVt`yCM#|-I{ATSKH
      z(W`ov$E)09$Q?^@FSa119o2COsW`@PS;IJKdFa7(WRPV@2zQaY;(Z`*B$Hi@!N64w
      zSHc<ke~&(#jtS%$VvBRt%4%`eoZEYcWAcdO6s~KyM%o`O<z81hZeW@rV%6&mnP9|@
      z1IeyR0dDEIEqm33JMYx3hV1aJj)Ei}onI&yO?o9)3QbdVqQdkbG)VEPv(c>aM?y|e
      zBABlU*$jhTv2ETgH7wVaMf+NFw7;fE(JDk}w-pQ{iViwy{;9LOTkZ$_N1)PvbkWTz
      zI!#lgLN<{zz95-1cG2_MPw1zwOb7dk0s7bFKNT3n5Lt%PI1`qbAS>_GEewAmtDu$p
      z`#`R`pGz|o=DH!gk=w<HncGHk2k8$;7+c8gU~(n!+zdQ-q{nDM3==^p9f&F#l1e9r
      olo(P<99bpd!w&kL86j*G<Cwuc0#<O}r}+R6$;N&9V<<xX3qD~&!T<mO
      
      literal 0
      HcmV?d00001
      
      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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
      SfB%R-@hM&LdH(w|!v6!!$zl-z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)-*XdH6#j0LG-;YNX=sZfR6%Rmq=jOszbL5C2o(E63=I}gyKUBFYkpv|X=ixy
      z%^4qfRK_PBeC&*%kUBDh`0DuM(Q*6(@UL+E?%nNXYs16dJ$vst-}%mW&P{&#_s2&7
      zUc&Vtx&#vI`i4HCZ(0*svtm>mW~~~8Um)r37mZq_eK?s7qFZ1<9h<d@oKZLRvUyWq
      zEgJ&yhWgAKbqTaIn-vfj1)?*xYQxg2R$ebRjlh{(fBm`jQFcHeuxS>o5}jrRx=V&x
      zELk*8nN`zzL%^q{^8)^vTEPgzhkX&m5EqEenN?$<Sy?sem+iEPx!Rgu&g-N?8qTKQ
      zDwz#3opUR3E1VYCuXWl_=X)S<Ac6>@(mEJHAEM+}AXja6R`L;>e8@ReG^{H&eG+A*
      zJ>0n9)DUbKR?fUhNdj6ntHS6Jq=&sbq@_FM4>M;*mia7YFg|VSWmYigP%Z1#;>6<W
      zy0K<Wr>|0;+UhzRXybSfc~mefWLVN0C8?g0k`jlkTF$DQ)gootA)o^7-RU4+rZP$|
      z&-U4-SuPm$FkZ#$LA=H;w>@k+5u5}ym5R)i^#(cb+Xb&Sr^7gnH-lhfV{HI+6v10K
      zVav0iSJ>>c;F!(q%4AcF;BB0v=Y|}l#g7F>JBj0w#HlQdDO`}kQiWZ5I_K$p2=5U0
      zni|N{(tSRH1uU`;`i&b#l>>0pn`$R+Pbx<(Ry&1D65>6Mkv8kJd#|k1AzY?(<M#Bc
      z%y}7hMTX5hJxt;+M=&Xc3+HOh`kHahly|Vt9rI&SW*p{B`S=959zYNw+CBUQ=z^R!
      z4mxc{sdt1H?-<v9?w;UV@Eyo(BXLiK3~&uI6u1sQKExm`8AK-xVL#sz;2EwGV2Pg6
      zcTfUk#_l8e07>~yJwU1rm>?8T<Z2RZ9Rv780T0>14lrRb%oLInFNl+3nLa*7$5aa9
      zCNl>+fHw%<WZ4@mbW?#Jvcp{P7@ng9vXU4M(dwdo7|%Otj;n8=JHsMA|CU}|q{(j;
      z@tH@5ZdZpFI!34VM1RpSdIT>zxpQP1V6JH9$Sql4nyW{>K2^w<r1BNjyX`41>J}Ge
      zaifZAl*NrQLf{BAC&5XIBMXl|gjkjZ@=0wYefNK5e&Zn;cgq}c+dWTFWV`#H-fEld
      zcO1g+IcE12pxx$vmu$b=<`K8emk2D|+?(mpVjJ`kMf!=u`PidCuM67iwzt=9?-<4%
      z1?mpGHuf{b*9iEw#vVh=OC84f+(BH*LNj>>0soe7%T>mn-CudHe&cxk&hh%glV5Z5
      zYdDHy%+|*{IKe5F<8_?>!uCZuuQ~z@@2J1x8vd11pe(;u+DYxH``gowVYeOpL2y6|
      z4(Q}VOf6?xc%_9?Kj6$Z&L=LmFefovcsG%=?G)|!2Q4hM@P51TwzN-poBtvGC!UOx
      LZpN!hjBEb^)HHXZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu+fEZv6kVrRE(6rk7R!Km#da_j6W=r>0woYjF{PAvEz@>nhLjfDsl*2pAN>K;
      z$Hr$~Ol(Yi@B{oPb)A`}Ael+#oVCw6d+oK?{{83YF97#&Ck&rJ>_C63XY^w`vud@E
      z>iWCQX3YpAAP{kG>Uv{8vsF1Ts<yzy@<y?|ntf7SFK_PTiW>rg|JX{i(YE!5UDE3v
      z!~d5bc?;RKLUwz-TzFK>mUr@x^IN-lKMO-3cx=^dQy^p-*1k#Jp^9a%8b|VMv}L?*
      z8Evzm+Xi1ev>KMZBoIz*@Jp8j0xJ|a0zW1dOduxUPo+!4WKAd-MM$E{3KSPjD;RUp
      zjDm55*h0=~82Qd&#b_1vN}V;Lxn@<bm-Ln;<Njg5Hmx=}b6)m55E$M!?Df8S3ZM%^
      zJlS>o8YNsFbTrPW@LyBLn~q*5dotxspMECbs~wWl)Z3=)S72nj*=bdcHA_m4oSW5M
      zsgUEO5i~c1B!XP&7$YBs7!RL|M-Y`R@h&Poa&|i8?DU6wn7I>(aJ|In137}+r?nr5
      zYHAO0ZKj7QZMKJ`77z5Ge&ekVv+|9T{}cf{XU!M%`z0pviVDiO!u$I!6XtN0k$f+e
      z2nR_mJ_kuPvXf~!FLDW7!}Y$J40riHsC~!ODS=zqB{7{Miu<5nMBs*Ja{OX)%QN|=
      zXL9ml@_WzZTb{}4#pI8k$@93~@7ZRP(wRl}9ADty#k_2vaH<QHFiDu~B0{JVs$B#F
      zr~b1#3CH&ny8Q_We5RjYkim&lH{o&*X0nJBrz2fX59BZLjdVRG70A+ivZ!3ty|XIr
      Q5Wb%4CN>y?=8S6LAKlfi?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TUQ%Z7~KcbOqxy$gnPvjZ!`px*m|iYrAoQf*hndaM6}ut$uSuXGjVc4;s3Z6
      z&s0sTuH~Z-{saGozrecB<kkqTd6;wgF8kZx{?4EO{Q5h9Yp@Lr2+VwI9at&riAt><
      zNJp*O^_r!Mm0ZP>R>?p>VA!{)T249DI_1&o+WPWNHuq?AD|3G<liL*#8G(x{u2WZ*
      zqw-d@AqSZyC@@m$3%SwQ7dZEQLpG$qc(y<L1AUwp2;Q<CTiq6zik)dOpBD(MxFs3J
      zAcjqt7!eqZ&F2k_3QYC@Z!6Ds%6A%ewIsa|#s!9!3%P_}s-G+oMg)^O!W7}Ov-!2Q
      zT+{RU^ANaf;yi-dcE-f3xI&0lttOok35;dtTOeO@YiCSrkEn^)@VY=qxviK2W3kgN
      zv=w;M#9JDPQI~4N+Lt=_RTE)c2w`4ew(K;L>{YVEsq)*Dta-NU+3F~a1tbi--Pg43
      zqq>s&CXz@ATqsMm>A5xOsUv~8vkE>{43S;Ky9TbanLTPVj*?~RnRpNHv$&e&)g{mV
      zhsBJp?uLmEag!ie-DVpy8%YA$IJSMZ7o9TMlis@P?OST?uqbQFb{%#vYdf-am$UY&
      zlu#t=7OiUD@@&0t9|ly#t_xiGk9hjU&4i&2aRQe*%TA9Xr+J{pyoM9T8txic7Z^Q5
      zy(T^ZN5Le|8}d;3O4FRQ8?Fb93iOZ3>l*Hv$l^23PN$`9kBOI*-*wPpT)=%3n|MGl
      z((}4AWV<O+>L|jO)_yvKZGmW)xoD}O2O%o;j7K}E7Q@&<!2qYJRZ4#l6QBE9Br}ex
      zvhFYN(7=}+<IaoVKGDpZ_zGXMLB8>}vWnm3JgdkCbw;>9Hs{K~W1{c1y!E)ON=sD?
      z?6G^jE3GxpYt)o1bxYFqA5d<iy(V{g;&XJ^Wu_k|yB^+l8(vYa+gd+UKHvSyNb1ap
      zQnC6C8^mRtLy$Xzy8(naj(iOKH3!rGgAd3>T3q7p7X<hL%kgIzivNblZe;8kCZ1wC
      z@Obw}OgHgL6SGac5nuQjbHl-<NbEV{8;L()CZ6M+rDFsN@tGz*IAOpTZeWq$0B$j4
      z(oc7j;TH)n&9`ES7RyNBW8U4tb*%E{E^qGfB+FYM-U5T$_=r2g(yxghd73ssMotp^
      zGQ9_Rx`L5*89(r5K>Npk!dw%pS^ZyV;?v_7e-};)C)uaih-@{HTi~LJ-QyR3`E(6q
      z6p!dPjB!~0f0Dv!;g2&nkRydVv?^eXH{*DS33^P@dJ09>Rl-#YTw{;=5#w#_A>uCb
      SmQBMDB);KFpiH{~RQ?4zpsvIK
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp%SyvQ6o&sv+r-9bW9y~0-WElA0juav5u_*zMG;HgxS6(tro<F;sn6v?3NCyA
      zA4)tk)@BnV<V;THJLmlK&)4_ICx8QN8_*a^Lq6tB{u(yV$HEJ5BN2&;iU!gQw%T^N
      z_t?DY4Mjg>$i7JCQt$yop*<@<yYHwD$A3hJJ1&DBJ~=^UpJ63N<4FYTCywWYrwqkv
      zB2nuyq+6qb$bw<f!W^<DQm`$USYk+3C6H@7p16*ld&2MVo+}vg?NOh*UG6(FpZ-is
      zF%0FTLBEG4L5ImY{;8>TP107Bisl*2yHVu##f2kf<l?jLNvjyFE6)>t%jH2J0t1_5
      z;>^PsX2_^Zzz%gz(S6A`1DzsZ$kn!`6_jc8&|u;$%8pbHnDxdx7U~n^-V~Fks1pM`
      upg_@5-zJu^LcNH`>a@cyb&%8adSimM<Z6xfHI!6bN10aX0K*2hp#1>gvV_S1
      
      literal 0
      HcmV?d00001
      
      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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
      OysEDhE&L|H?&^1eC#k6b
      
      literal 0
      HcmV?d00001
      
      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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
      CWz44l
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<T`vPc6g^j0%POiU^%3zzE71r~DiSJ9Bn=Y6^K?69WV<8Nt;WCNg~Wp&;75r&
      z+l^LIUgq4nbMHB4=FaEW`v-s>tfnwRSiKjIq9nRusj9tB`^tz%Y1+cS(7y7XQg8^F
      zsKgh+ZRxyzFTIeEJWzoO4+)9Q!ZpFE=!SHWz<3&?ND`)NDv)QLR$ZDaQTHVwThpHK
      zuZ2-|A19sgPPGYZwSP^N2{X4ctmxK*4rCA>HA86#hnxMjiVi}-lBPVEi|fmUVM(?$
      zNO~-r+OSWnR8^+kmm?I1D*eHlVS<|Y)j!Lr6WJ6Ue~{H?Px%#<@PDpG*ci~dQ9(m@
      zhue2SSWIIMS)N8WDrEEhi^jbK_fmI^C#%X%AwO)$+xGRHbtX*k#{g0s@f3MY@otxq
      z7)Oh57<=Jh1TL>Gqy0q=_AtRwx>v+F3HxcLFdbng#u;Rz{cMbEoVy6~$nk20_L<Rg
      iCW~9ISa{~Br(}%)GE&L)Dtaom7I`f3Ibk`fU-<^7CbL`s
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#Jx>Bb6r6V+963M`1dTB!c77xhYYZAu5)H9IudrLr&AH~-HFt|z_@}H)EKF=|
      z{71ycVYE=2_jYFI&Ai?B$;&H%T`YNU2&*^ZPPD|mZS{<{J(G-tJ$?w~tyM;Qa0&HH
      z5epr)zAp&XR3=KqflN{sUYr~e=#)_I8l769Z6M;Y%)NaaUOsjv1wwvLX=OWv#zz0g
      za9|UqqxNP%aJ%M8`k2Ff2|kL1N?&PtHXaRSaxR9kB-HvQ<VeB6jK4_NUaOR_Hgo;w
      zA#H*;l4&ZU%;whu1b<-0Nho`28npb!U+heWunyuC!F2^W<hgr{92EG(CMa?(G1Fnr
      o;hx{xen$Bz(^R<n8N1K32dFY`&Qw@HjS=fn$71HyVC10r2`PVOy8r+H
      
      literal 0
      HcmV?d00001
      
      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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
      Yibn=l8`m_F+ZihilENQp;lrQ)2TQR2hX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~6#njX%Gh?Gyit4tE%qT4RD89frP5?f#iZqtup8PN9aCnK&Qz3zE4My(
      z?o8adQi71UaN*J);7{;p7|)$fDJ2ou%$<Ag`Of*ibHDrR@An@7rjb)1F^oLXpXw=n
      z!%5|9`Z|wf%Vloc##)tUR~Frn0-0fKFKxvzE7nGPUL(fPZS$I;SC@IsHY{^VyT`!p
      zGj!%G({^;zS=Os{?*F`$`Sa=H&)*Ck&SS%lOcAiKSKsZKrn8J;8qO?3U+myve3?Pc
      zSrr}tK~)413c`n86)O4|`u71E%+dl8E*K_XsIRZ_+M-VS7<vm<nb_*Ynf6{#7Mw`%
      zfu`+(n<RT4ai=x0q9v-1$Ko#bSxWb2X;cm8d8$1x9l&XvRd9x3RA@guTg5q?XYl8X
      z*$49sk>fOA7-(Zxa&(86xWkY*l3_D9E#^9=;sQp3h~lDxafYt;yHXKDoFQb`MQ$6L
      zjnVpI@zns5m{4%ZbI<=3y4_SvBE=9W&X=^+>|B9lMvsu`;)vojt|+)nlRtcrO;IYY
      zVurz|S1Js#hFOjvmlkTGxUS*`Zqhy2VwPlXO=wK3$hg$C+`|Peug#O~JKPNN(Xq<Y
      zt&rn`C97U5^SmKk6m%^%DHJiNnrZS{uBzKMr<%PjD>WY}M(8Q{=v_+~h94cYQ{3H&
      z?r!lu=-&sK-bW{$bkS~xG9_9=iR3qg6Uklle02f+^c8SOn;4*fRs2(dK@8E#a1y7y
      z5|gxwGkFWcUuc!k!oJ*xmG`h@BM)2m+D{~QF<MA$BfNvi2ZWMaNbF#0MMSo7O@7gc
      z-4d~6tI04?g!Br2={3UA8w^QrF($o3QhM(;9(1)$c#Zw!(A$`$))MZxMDHR?YtR)C
      H#T?{+pC&_4
      
      literal 0
      HcmV?d00001
      
      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
      zcmai333yc3b^g!OGNaK0iID_CVl^0~5wa4qc#**fA<STDge3t6lh8qWz}TZ1WoE?Y
      z#CE9D)M?$-X#-tiH%&-gyRi)jFpa@+O<FfelQfI7Hf`djshg%v9J_WJ-2dG7^yX=C
      z&4=dBJNMpm|FfU_=7lRyKLg;MvMmHlF!Rpj!DL(VP@!#8E;;OkP%5bMX**Jxq3od$
      z$_2B1Vvmy<?aXEh$yCP4k;BHWOljMs>+A3B6G&VzgA4M7WTvn^nI3gYcpwCk
      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
      P)y!{fY~h40Tj~D+s4!?8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dOH&kA6#g#EOzYSR5&<VVV+0bR1xJZ71RQ)YA{s<QgFv25(+rJ0-J}^5wkG?q
      zO=Xi!c2*^+a-d49l1(b9$|8?N)=A}uBsu4H)7>*-DvK=U-g9rCbMAM(^Ozt1dh!i`
      zGjJ3%2(&Hh_w~H~ppw7p=?j+WR3>%HsVGPYG|O+c?v(O3=a)@`Zc_pWLJO%W(6D|+
      zK#Y>GK|+H;OY?ZBG~(K>H^f@~tig*xOUl?VY|9|SIXaxT9IG-caH4y3wBGdDo1STb
      z#E83KrXkR(;vm`ty8n~u9NRXHTaG!gR-QM#JNmqB3bc&7hHg*mp2g?jGErHwRs{}6
      zfNChBm~M4P-%6%i&QH3;U4L;Xy7t45&i|^`Go3~j#}wo!u8_gFiHetSoT4w8l^KD?
      z?w%rBbgJmuxt=A0S11MT&v}zS_ovZ_9wttcPNo&~3gn`6PpsLtjK%b>tQ+P^#d4iA
      zPNHWoF`ieUU=K@YRP6PoS5>63kMCYnq55~PtJv>LZ>Tune;rcMgl2)M|Cu?N*S*Aw
      zL`~smx_h2OfP#wxM|NemYt(l2N*Wh%naLRuNK#dC$*^mgN^;#2cfC{I;oDT(p)$#P
      ztksdA(kWY1>-!DQ)GOwQ>r~A3ioj<vCakhvGV{{q4JvOtR!39Re$<Gz8M~8(5q_vC
      zJNfC-;vyCL9Zz>w7hSI$vz#)W1=F*f(iqk2>QIa-+0y~IA?~jmDhe1*<0ft?m=ws?
      zGFSJ8iYeSC1}Zy`3S5l^7%$}*oSN$xn3{VA^OlNH3@f-RaJ=NK<wGnrof*JSV;ZeI
      zZpxJJs2H9hSwLMd?^}j>*<EuMsN)Ys$|1Yd?di2u)7#OBIg}_vMM?ve%{mh<a4hm9
      zwd&Yn%_YtN)oY|#mmKQQb#7={sh*ms5M@SJbkB5*4cWif(pbW>0xLe9Wf`fshefJF
      zvbtoiEa?=*ZFkKx%u!3uy&B$5F`YP0JU7xWNnPH;olgH2E!^jFr!JQ}^|;)r!{tu>
      zEqCf}+V_$DL9!BffleEwqtM=@b$0c&C)$&lRO2=deN9&lXs0zzJ8+$b#G5!w(wMJ~
      z3|^!Y8A=#JN(_Xxn|R<5P?i`>LP`uLDJ2G!k}!@0FdhWovf9Zl9Nna)W3#u9MOr#G
      zGl^PI2c+}6<a`E4F)M+cmCmyvuq<B2E94$Dgc%M4%i;vxF|aI8Jp#sDv;`o3BOPX}
      zplzeO?|baYq<+A@r#LygjlOTS&MHo6T~(ac`l{&H+7nfr)!LI)oYOL?Dh9MxrHa9b
      zxl{B2P@+ecY1rOFD{SJdjAL-<FTsU|6`aP0I0p~su_}X@@&SZF6hd|jGR+)BA!N4@
      zvRmMBE(s{ez*16=6RyY*&j%qsBrX1ydmhiN$(ro@L_ef=J|fCKmKcY94<W`}NOUeF
      zIu{b13y7vS`R|1=3LaVko<W%cp!q2-%xaH`;Kw+<jZ0q<M!){JPJmD3%c_){gO>%0
      zxDxou)6RNHvhS}q{xoKs42@}61;+It&XSXJyMXv2<|hJibypAr^&q~C8Al+-aBY_e
      z1|QXh|72I=>(r8d7k?MbfMO=0ZDCw&VPY^P<vUVVo??17lj45jwPTZM$|&+ot2__T
      z-QYH6BH(SZpnjs{|4i@yf?oWJi?s6?@C&sV7D17^a89P6h_~^M?6xA_#e1^big+I%
      z$T3iaj(PH{VgLs9Vv4-=Vu2(sR1=FqM3dx!6PjbBTPPjG-=Cv}4g))fWa3dO;>j=6
      V->Jd=po#EjjIUgnaa*!l{s*m}L!tlx
      
      literal 0
      HcmV?d00001
      
      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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
      Nl9N0BUpnwt{|`+7>I47)
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eYf~FH6ulxgubL7=AZ<z7kVk818W+>IDGAtxIDtTcl9V=?5w>hAS?_w*YY0E9
      zpEA=A{Q><^ot~=|wrrD5KGZYzSxHyto+}+`{r5kA{zXJf^kRgD1Wmt`Co(HfqwHoV
      zn{{1o<%%Pe5R@Jm5H!4^eI2a|x|CTs6qG0g6*W$mXe>oZ8WuFUrG53J-8fd^fjst<
      zpsB5(EWJY+YHr)kL{!%;K{HzeDRRZUpz%s5PnU~(svHR#&6MytS~%o9=@h+BlY+!+
      zd`tMA2}+*oN>qooy3(~eW(<c?w^RkAN8qYz&x^U3U@k=;GC_h<p!iHz!hT&gRi4Wl
      z<H1rx)}Vjai7;LH?u?oW8rijK6*V7((r;CRu;C1AX2_aJJI5^*o~SUt07(UhGLBhq
      zSF0*imHq@5jP5k^r4oxwv&cQ=S2_~~Js4o_32?MsD4l7iyR^JvMv<WH0pieP=8$Zh
      zqZ9ouS<DXaN1^s>g05O}Px`fN+-YmPXk=r9W!|-OBK11Tu0>!vZbzz8sLN26BNdkL
      zl~E8{qIV9D*%NFUn7poGr;JlOTM{Zg<rEqF=7@K8wx*(@I?-iS2>hz9wV^==zMz|#
      zg|2PR&sk3lY@ceWs1P)oK}$z)-g)tSG&|kKpQ8xemD-0m*TAMLHZTIPkijd^Tyf;b
      zeJ12GLgJ0X9y~N$IVZAbsCE0XI<pm<P1-qriG_%HP;yVOpr!xju`A&c!Oi`0a6L>}
      zo_3_Y?6z#irS0pQFQayd(q{VtRu&gmO;B1^Dm|jWmhKmdzBzYWdM98%#v(q{p5)C)
      z;ud1xB{Rh$<8T;6W+0J?+vqnB$ri3Vp3tf*8J?5y&A=|`n&7PmkX_KZO<)ShcAE39
      z;tM%&V`7T6$CMi$`y;087>ZZX@n)wV^-n;_x-7q{g+bfLb?SPp5O_FTyb=@0=0^3T
      zjKi=B2s$_9w42X55*KpW(@nS)fg6EuErk=p2VBrCcTN?(*?}Mkp5(i0(>rU{4`I&$
      ztAE2;aWl;s&Btebd_QQ1WwoJs*Cx-;X0CXT-%W{m!Zm=mB~gYF{EkC=1g&MD045jT
      z(C8m{7@~3fjsuBy5xPh3;VBgd0VmKB{PMyt6L_E+=7`0)Yu9HIGs!n}xu54LIG!1v
      z)i~DjFz*yi8}1Zc!4qdq(F~qgY>H;_lrT?M=>y0X{MLJW=8yU_KS$OV|3_y0kGMwH
      ziT_W0OrKc1VQ`*q8oWif4c?(oEq-P(V{yUYqUHIV?wa-&bkAUxzBIT*IfKjemBFv+
      z8-w4{cLu+wAFu*>tjZ9rK+lhT?Nz#O;vUeN#dU)PDq8%>;0DG0n-(8Z$@D+6_?Wg#
      qdz+pZ+<_ms{-5Cq#(g?4_zN8xd}`}@M!%Z&5&Z^@f_^tjpZ^O-C}bJ{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{OHSiJ5Pd})0s$uB{~ri!5*9>=6=H-m7=wbM05*vPtU93yjf@@HZICzxSDDR>
      z#DW9NNjL?fY(9bo%A&jcs$aeO`Tz67BY-t5Wza)dxDq#_EN*pqFA$we)e24DyHM?8
      zdEIe^mKhj?d_r=C*DfD4uVhPS&`TIgyvi>-GEl-*ccSS^CWi@Z$RJd{SFh|4XrC~|
      zx}g@HZU{G$>H9_V<mvCy2BFWkj_MWLig}e3mqvvCL)+T5Y<9*DE_0w>t68SyIKS<a
      z*p(vm{!*UOTZB}x)F2q9e=f5~VR8_o7$fAW%9FL|x+#O>*UCn!eoMFw!PRo5Z%#vB
      zs*q5qb{WJbH{6zbTZZ~|LQx<zH%KsxXWs?CaW+fc2!v@Be%*i*bvk~a<vC%w*e$+v
      zO2|5X6tv{7inlQPRqTD8t8te`0X#K6X&9J627Ub99}gN?Ok)s3ANU93+$Wr8Jp2id
      zBsx5Aju>Z!b+*Jdz48wee-g<lzOyV19C12_1;8m15+|QU{DaM5KCwTsz^{ZwzI#x3
      E0Y3VpRR910
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~8ZF6g`7Y3>ya$zDs~WJ{sc^9Fn#)A*BTeDk_>tfr9AU*o@7f^{%yEhpIoI
      zzo(T-krF9+MC$)&lr-;cpQ@gjwQS=>(Q5b3?7ion`!(~&e=lAESio8eT>?{w^0~~(
      zqcHbPAgc$uSj+ofNtf$^47Km2kQBIVZCvS<b59G0su&7f(G^)%d0CYO?dnjgn!v<n
      z)7M6)c1d8MP%o8Ka27M!!mP&B1YLNfJsmC!Br>x*0?E9;uN)+BDUDt@0{xrXQ%~xZ
      zf(o`}!BwQ$^o!Enk%2b*#?NGUpc&zGi|yQON!VLf;bZk&7wPJ1W;PCpl(ZZ!21<r1
      z?^miU6}fEE0@pJe8*MmSs9cns+P5|YPj-TLe3xE6?Bt9Moh*~76=1yPu_!tnIBP!^
      zRn_#lmcmu0)NJ6&?sikxgGm<J^TTOfsk*A7yin~s7{@i!glWPuQ51GUw!%Pr<t5WC
      zam06n?*ThklvQ@%21AZlr!%hetvYLXiLJ`}t{;5Ip>SE#_I5>OZ>d?XsZ5;tjKQGo
      zeM#2ca66D*t>gz4fthx<W#w0LE2R>ru4zKoqeMQTwRH7Q%)Y6L=4sWhd;3g&q}|gq
      zo+F+pR}nr;czpZ?uC)W=21~sVxR*vZE;w9$n#O1NTwsXaV#8q4Z<~jh-un6?jTCxP
      zc*xmrjzXN*!2>)pz5h}`HF|Gukhs$iO=n9NXSliU>MAdykh50fET!<3z<4vH7?Fcz
      zteA*aIcb?6%<wr|emy9vb)G3g&pqz*#$j@XrAzQe?Bc^p+7+un*@vXLWvIW%-F-?y
      z*_}N>`d4e#$FD;eutn4F(a%*nGQwqCfw?>fFlglvhOHdID6KdQ7$fo{u9Mu2TZ(54
      zB*{O{ON{RgOq^iqHFsSM1PsiO|7<z3kyXTD>@kDuR`1{jS0*9{H;G9wf)U(mMDVed
      zw~=YcSu3;n#LBsbyn}h-1#-B{uSwl&u+L?G!@?<gvcKd0F4v2v7|p)KgFW-#yy65)
      z$5=F~Ux<q$pW;vffAaf=)p^T$yu$?kVtns#8}HkyHrL2Vm_crEe{1Ulj2Zu@=qKOu
      gUg88_A4ileo<7^gzsd6tIsR?)JJ$4@w^2R*A35Q~vj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~+jA3D9R5y|5}GdMQfNS}(4vy0fg%Vhg=(87ZL}9mLJ?5wHaSffHW!jjk$3(8
      zUv+rrg$HyXI9$gUoN>ngz<)szuW#aab~nj3$dH-r*>leC^8LQwWq<tl&I15%Vl99!
      zfzWw<O&`@SS)<ccy|QZLYEyE}$jJcw0$c1$Q!f=p7naY<oF%X=d*)<fDLs+NCellp
      zcsh}o7Z53dP4RN6X6YqsQ8(+-M;8##Z0VEf)I7!2nGo1&pQYv|rV~q(r;<tMf>3%_
      z>ZZ9=%T=W;QEaw_?6gtJmoJS8^ec&sEwEtbC(HFxz9z7}Etw`pqBSLj{l#)#3JkPw
      zr;J*~)GyERoc9}!8zsXU7x0B6ixiLZI0zp?8v3zaVDqd|lJoWAvaDwHWs|11&6abz
      zxu{nSwRaEw)~Z1eyV`En6G=~jg0!-iE3`mYq^g(u)Ktx?8l?i^ha--z&2z>+rP5Xk
      zk<t~TP_OEiL2?E5h9l>m^|MZjnjvaV$rZhBt~Ves+;rv5cc=Pxs!z&Vr*1s_JkMEK
      zB(0VlbK`iv@gPfLpN2gc3L=7$0HOlBTWN0c<^XD1)$kf(0`c$*BY&ZLfsK}nRbc3a
      z;Rx(7YROi`W$KkmxoXM0oyN1Q#+tO+*G`eDbhZt<g&SGyVc>6R*n~dyc2vV=Yzg8W
      z91GxGR$7Y!M?u3FjtlhAezV3y9;@vlk1Q%9;~L(>`;=FSb9-XIo9VWKO2DLsIHm;p
      zRGG9pLSUy?$8$3lL=rOrOf$F^QqR4H6b8vH?VUFA)~XW!P{XV`RG4O@QCPJU(s>ox
      z0vjTn;?F_<k%qKtH?1l!)>(GRa;{!e!dVTcz{cD`8dT${9!N_Tnz1IcWtO>zl6bjT
      zDVJo)8dI$-E(vt!Rhu(O1n_K<`n{pH#>-Bl=7tqt<rI;gjQ0_QCuH`!$Ghi({uRed
      z8a{{4%&zBH&53m_?A26yISuD<FaQGIXH#v@gj1zjv-TD$(wPQ{FLJV?C<!8ukfMB5
      zgMss$YvfTkZCC9|^g4>14Z!3uXgf%mrYz{@M72;al0=W~3ka!-Eo<0{ZDduiR`tu|
      z-qVa;)8yU|7-ZBFYr0{oF*%XTNmGHA`8ioESE(J$l<U=;Od4va_BY$!`R*K0sQg3p
      zsXiAQunXOMvShgH!ba|UJo_N`y`H^B88(?M%NDa&0_WNXzZ&bbw1d0DTm{$e=xq#q
      zV~g$NGe~u?>ijrO!+_=p;U&Bb^*wwAgZBC=cH1ilnY|8UFQo-1)$4pJ2PbGr+3FdI
      zHt<FR;Tzm^K{-*;09R}W1CEg6K#5~N4)9)J6bD^XF?&yK|Md<VUwS}xxi*IQWk2L<
      z-XwR5#rfz>9Dam8weWwWfw!aL77mX*!jb4m11D~&l?TK+F{h+_zE}eZ{y%8IK4{>i
      zIu{LO+H@Tt_rMM2=38=n3n6?*qVAB4y9nbRW4VuUJU{{uF^BJMw0j&xt%&DIbszEW
      z=U3rlTIu5Z8Ju+^80G5ZiOxGI{K*r3w`)+S{&AIC#Q8dj``M$}Bu?NHeClf6BMd)7
      zn;{{e&GE7PHG1zNf95t;9>#t^z;_MZu?OSVuq8Hlhzu6K!iH-IUhzF0y!!O<;8i7k
      zfzri?iq}$`vO}yX;1?$5SH3-FLH@>CdV*p6ju`%6+MnPk{=_l-g-QI4Y5ZejjXHQ*
      zw9Tk~B-(Dy@(L~z?{0okt1K=bPdVS+NW27=ItUa#4-IVsIk-BNefN><RNnl*$~AU~
      U(*e(AUkrOR+w5E9r3>}{0Qs(Cu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@+g21;5ZwoXhM|Lkf+pTjgIqL>@fHonL<Z2&5eXnhOrp)qVdiL0H}>>!Ni_G%
      zQ~o3m=CY8Ltd;oWLsotv`G|Z#R`%)Xo^DoV`7qsm>QwEj+EsPV{PFKEzX5n1-x_EV
      z*mvJrvC`J6pT6u_%O#bsOgJmbbDgqud;`q_I|2>ca*F92i}z*T7uaLFdCP8KAaEe}
      zBEV6B)(gr}{zZXpgG2KI%^9~KQ`m+M69(D@w&#>1r>f;e>CIV-wiM{jX>aqEr}R1$
      zHv1)25!hRlez4szn7+ZG7l+dh!kcJ8Ya4b6?9#E1kc^RHNQQJ)Qs~7V1G|}9(W$2M
      zwpFPtTYf1$yI%2SdD?TArROVIG4V295$Iq@p>SQ`++Zz&fWKMaQ%-U8|B^7wq*4m|
      zaKONRG7=Xcqn(>Lh&};h$@QkJG70K$;3J6`SdD7H!zPa4RmSMZ)vQzTEhkU=T@g)*
      zB99t4DzH0toppTaIhH-)d9K%nL4o0$jxI=_@Ajzx%U6~!`x<lDk6~TlV*)*mqMc8n
      zAFr7hL0X_)cSy#nRv6pyr1o6Nb62&`(PVnDG{v?)W#DAgw7RY5T-Sb}d=sZ}Mxcwu
      z8J9~|)%L@UMEVJJrvHY(eqHc@0=*T`s4E{@rf?SLO>D;w18nS_F;^37dAaN>*U{Y&
      zcam=9SSf4<0kK9>5*u}Ef;RaN1P<n27zfo-s&YkI1zT1)6CA9CHcT+tdMQfbW*aVZ
      z<b1Enk;~$mfvXW!iPkfb!*$B#!>VOhvPH-BWX96PXjr-hfwl;r8OD)B4VL1Ny=!6&
      z8G@4k*}NyEGcH$DUNYQ$gF|;}*=v%cIj(Ipwcfa5Nkfi))U^%GI_ZSn7{Ljg2^&dk
      ztFl#;>9Ok4lJsODt5;D+CBaUP)4v|)OSV1fIzEH#-V&@9Qbiv^msTug>(<n=Nvo{v
      zbv>Lk>8YC}IHuJ=7*N$$b~-r27(~d#R?SZ0XLuY-Z`xH3&tFCnGZx4=-2(SaSXiu4
      zcHLT2<!bqsatiM1m|JxU45c?|H^ZZxhdPJJKtZ6h-sb^eJC;x~P^7c^M%}{1MJP6I
      zR%<;lVe3`Psw(&;Epbe^!T!2lJv8CzRclGAV#!Y-4^E?jDoqBnS$zozk5d?DRQD5P
      zwQgb#H&gf+j}1JE&ZK0WYQ19O6MV|;xL-1^v!seu&#H~$;bitvV{Fl(zt8cdfiHO0
      z*RyV@Y2qu*bUU3z<fdlbs+X6OO5a&~BCEu0I-(()53x|&cmZ>0^}WL{6V3YSqokdy
      zQ+x})TZW$^^#eber~oQA@p*}=8N9?Vv!;a30HR%=LLtDPgx9)Pe?-@F7<@kI-YGWG
      zb8YxJjt*~P?*<M%gZK$udN21Y`fqm+JjKwl4IF=l{@*uo;u+57xI7o?5V?ov^HIDR
      zMl(ilzzzDIW@IyrW|mRSpo^vI!2&O++c=CnwD<r6xQ7#L%+t7wb133%lrRYuWYNc1
      zyKo*C@D}j~_<fQ4g1-*D!)!GrJU7D3F3`KCrn7rI$ftX9cmr3yrzFYIBa->J&XK{@
      zRDdoRZ-g{L9F5exiRswBHIRK*x8;6~U;Yc4VTStO5L+>L&*N6`evg@I`2w@8z27IU
      zVBR0{sSA3CEa`e2VX$|}cK-IUpCS3X-(uh6tIXdrKcAxVglfrD{$hvx9fZ?cg9yvr
      rf&*B=Djf(t@u8zL!5ZkGqqPluw1LlJz*=tqBy#Hr!34ez+<x;P)(DFX
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuyYjaao6kVrDNt@m_Ei|;HJVX%NAXI#S3ZkL8v=`F^k`M$R<u<*fw}zx9w-os|
      z{sWw`FrzaLqmDEBg>ig8KRJHzE$UZw?Q>Il1aD^U-fN$I_E~42b#6ZR`;E5%9Khum
      zIuu41-AnF-yAn)HHU0TxZgsLzZv{=)uLrFdq6+;wq2|`B6ZyGCuM)(tL1EK+bh6f{
      zd+uD#i=j(lP!ITxiK5r^-I{+zMp&h#VcBc8{6_t>lTlD76ngb)ZapZwwPmmK){gGJ
      zo8RxbsSwTOb2f9F2)TmzSiUqZzEX%!=L^oce6EzvN`#x}D%*vUGa2HD!iGsZSF#H-
      z8dvDd<qP5D9))fV>~ygtqZTW#`Mn%0=1-TV*8+W<ssoalSQ|ZKhg17Gb<H1GtGgE1
      zNKOSin=UzJJMs@7CKT+Mw3Ex&1@7Qvddi+HmeK{yViU7<#Li`8twCmFot%-8WQLBk
      zGd8oM$DKm4H2dGYA%#98-p(FYNMyO=JCaA(|MhS?cMH4c)+-B*Cii#2uhqz<N@Xl~
      zesv+>HUzBr^T7hUBmU*KeT5VKddmx13Io~Os&aJbFq8ZxS0{^Qa%@Fc<a9+bv=QT-
      z710xgG&UYqF{H;b(aFZV7e@p$795=DrZ(~xj$ty6Q<#Z?-A&xFcnl?l-FFB!*9eNs
      zOG}Mr;LY2YE8bE-T}q$)x|dtNIOjD>p>j878x^-!cBy76xgCrK3qJR`ZGE42-yV`x
      zRW{{_U-yHf3X!q#vJij4!Z|!A#AhuWK|(y&!jqv_vG8>0c^1;4SGDj|==m0ohTcmS
      zGNE_Tf{lc1zaf>E*vv79&v;oXH!U2;lz4%KX-p|>*Q1$?<E*o9pOQ@Cc^4bY&5C#2
      zmy0`e_r~^1E3uO$Bj`XUV%UXYbR*7459Qkd3nS=5;x_Il9x(7m;!Oq~Bu*N5Gx3mt
      zhlxiFyoG4gz*~v88F)MK4g=pqywkw<67MqbZsPk4yodOH1CJ4p8#qP0*TAyB2MoNA
      zc)x)sh#xfY0pf=Y{4nt&27Z+Ipn(q&KW5;^iJvg=VRo8IV(*pcNL%VeTPjCes!CgG
      zN?TqTZK)z{sUdBt7Hz2&+6XK1n(_S%QI%)gK|7kdj_eJn?B3Mt$X&z98#uL!+}^8a
      z)K#W}hc}EOQ%}?1Oo;$*qYLlQf0rZgk^cKA>oHvpXYedh7y5CQ9xskuk@ljmQeaYZ
      zii<v<>W{DD#Z+V!=TjZ4n3LChD!Pgb@>-CAMS0ayZ{pP12%qbylUk~86)(%H^%_fs
      z#15jD{)dR-BWm|!?*9`E;!~3Q4BPQJ74ikf@Fn))D|Yv5-o|fum%i1+t&mcixX@h=
      z=_-po>to%Frkm^*x=E5gpBfduTZQj7;hWTila??}_6p^Z9$`A%DO87J|HJh=a{Yl^
      ze`KS6;*I$kTks2&{wvk{8x{FG|JHBe5dNSF{^a@orMX_=eI%bYSMfv(($b84Vf2Y+
      z<O@UQ5)<V_wI^DT!^_B*gU2AA=&W0NqO`d7L`!n>GyEmmtBIa^xymKRJFxOEBl>KS
      
      literal 0
      HcmV?d00001
      
      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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
      I6#w)80a_wgkpKVy
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%We}v5UlYdi>(a~ArG((F|S}R5c5b*fdFv=EVAGbFozt_*k0_3mL0TS6T*-1
      z8Hj_0gd&a{_yInGe?ZjC1}=!hc2)QEbWe5f_g`PW0=R)&4l)AeJ^5BP<$lt97_0uK
      z9JJ+u9w&bEN;}92%-Hi#MuX<l?q1MK983w!*{IUZogh{+RPSXs446E!ZYPLGN=MKA
      zEdlXZV7jHFQ6i(HBg1i!KNR0S{w%Hj5XisLqnGcP<R9?^fm~0ABSNhA2?csDR6iM#
      zXLgxZWc*Q}2E&ArqB;HJWOmuk9RH0>-ByuGHdwpv`;88Zwsb!zB8!TPMN|c{^+u-v
      zfwL}LOdD2naXe+`U6fLG(Zx*4mR+2{tjVjpIGHlf#T@2M?5c|e%nOv-Dhi&AUw4D}
      zSvr{6w(iNWBRMP%>L{2?hKeGp?f<V}or-q!IPL`xlo{~CKTBFMmr-N)EWbPoD8s=q
      z@&dP<L6MfyXkmm|q%4aRWs#CBQjkT;u}CpQ!EX_#h^NUuux6IH=6y!l%T92{m?f_=
      z!8xxw!3D2!Se)RJS2b{%o-;v%9^uL-Ud-Sct!E#$jvVgrp&NYKUC#3!+uX+zHnEHr
      i^R}>xZLBcAmNrEb*Xgmn*^PbLn%NDj3jWfj`pw_@R*DM%
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}&Bl5QWb`p{9T$2r6;oO29;7T%v4H{0Y$*r27lp;5DUf`lG%NE0?ZFT=)P!
      zgOB0bI4wjIjf>9Qx%1s~I`j7V@(N%d6&(pe<xbp-hIj}XXHtwT>H8;-L+J*}v2|#K
      zow#oad)(;Te(1W67s%0-D?Jf0-!LKXOHT>Ql%CIx{`oP1E(p1{WBY-y15;R`OeL;A
      zrcbr^DItBRY!$Q!$!g6cXl-XC4J5Igg@FuVrK@at8BPY$yAcCR5(-^s$OeLKxL#ap
      z!L9NMTiyQ$X%b4+c|RVc7kJ7ZH*02OSBmV41bxD@i*ao8GxGu^7(FNShO(ogA1VLY
      z)n4=j+u&(<xx7}Skmjs&mB12zEP)KiEZ-b(CeEq)47ukRS>b3f1~j4J2zfqb=MYv=
      r;3^U*a*PC8Oh#<FzB|L(Z-ow<pT-L1Ikiw=9%Zbv24RC=C$RYiLhf+t
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&u}%U(5QhJOgEI#xf}qkEV<BK7F?K>|5E2ZrL9cef4W2pn$lanohc97mMPgxV
      zV(lyV8pgQ;W3(_9JF~O-=Kpu*_2cOozyV4oVuammaU*KtR@b_&D@Vd@dE<$vq|$vY
      zv~1rE<wQH4GGP$5BG?sb^hN)K2-!gTj&N=12i$btJtoizA=C0ypoP-5aHlfy{xW-b
      zyC~fgk_|^Wx=DzaD>lJsd6&{c9Ls4~ND)?gj*_R-@j&`#V&F<buICNeK(Gzhi$_CW
      zIRT;4`{y)uLZLi|qiOouchsm}u|w}d=$$8+V;KZu6nTCRzCa09-<$eF*>S>O?fkvH
      z{jeX~;5m8sgc1@+ayGe&VTljxA;mGxFNd6obD}y!<}pH6I9iMWM=;PpmT&1fgjM9Y
      p3I*~ULxCofA)Bo3&9L@cq0Q!<NTE2V77EOxh;`N=Y;boBo1c%!edGWD
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}e^6#gzGBrJgf7AOTOEou`~sM22&3T`2RX!s!ssaO=3<Px?n32ru2{}6p~
      z##bLY<LIcxks0+tUpk}zf)D<9_AhY!?%e<>&FI7K-gE9f=X~co=bnA^&v)MgcnMn}
      zGzoOvv-YiV>%KRh+O>)@gn&S&);U(GIKI4fPv$*=uC-D@ZrdeUSaHjH()B(R=uV$L
      z7Z+&H%$n)M=3F9auBEdAB1PS7xm5A2l9#ibs%&O-Az=6ilV&EXG=viIHJQcb<?Mpe
      z5y}}~x0+Z<r)JG;LaD<7XMMG~nlLxbTw>LnPc6->y-w~~`Mh+bYk79LwBp)j*H&mn
      zQXo8)ckGhwO$#(fV>yAqY`MUk`yb0W<GFUJ7{&lotRAI3yjRQHz&Q*>Z~;#Xv`p2!
      z^+fBq@a^NVTq^`FMi4{`6G@Z2rRwgMbhFl$BNct+yyfI9*H*Gt8feC|%6BiJc{_H6
      zxO~UQ1tP`aqV(?A1#gGmYjM@Kt?K7jae1pE-F@lCV`RUT#}}ks++i8jI#aH?dBz`(
      z#!h_K8MDBJYM#adZ9G2jT6;Too=|$~4UW{cQzu<9*MN$KaZW(iap(6Nopvdt<VO}#
      zx_1=fo@gqSsspV%HXg!Nfy>8j>}O)S(lW__Rb(l(pQP=0(ls!F>x$tU0ztZq<wAHx
      zVC0nfs@!wzyyeNqOmE_P2vY)=PM!8$6RE0zPp`q!Pe<@PUN8{Ht16-?aI0~-ju~&r
      zlkc7FWMCGF5ay1WRTVv3E<5kpUIa<Z`=rguZL8{dwGCc}`l{8mapfu%!E1P(Mb48e
      zPipW2SN;d$6ZDhE`+hUF?9{p}xb0X)HcZR5=3HR#zY=3Z^KR*u6S&au<S{`Ew(V3a
      z?EJop^vs4AJrGT*s@^%Olb&NK$B{+LG2LQySC+iQ2YI=t=0h0k^pz^@TaI1e9rvfj
      zFvY4IGmyiOy2Kk1JcY9w=+QXoV}CY|&&k43WB7f*;<0fJP41X#o4`f-Q<I8QM@<H<
      z`ne8M+sbtl49abFa)fewo!mkBOr6|GxvNg@MnHk3FXg2Nz4Y8i>6(rTv>)Q!diVJQ
      z41R^-FLlUEe0S*W8G@Kb1UE3EcQ~olG^)9n;8#!|96i7@C#D8b1Mf3#MVm$ZLwF9C
      z^$d?9roW@LFE53bU&NUHj^hgL1%F8|^R2M{Mqi2<IrM;Uz~mF;qk^loil@E-J`;Sx
      zHMvvChnQF&7(BqW$-rmmIK)jYO-=?55nmsDh+F-E1I$bYzs2qT;6p5YL8B%p4$kYK
      zKjJEW!VG@KZ9Kvve!&KQ)rl>zPz2>CrdMfAywWXlrC>=can(%wW-Mcc5EuEw@K+mT
      z_YJHf$RAsVtg3{vSgR$yK?~(!aHQ?yPtZCN`RG$stlWC{n+JI7htZL5aQB3CRc7FK
      z*6I&>`V#~AOJnTyeH>#P#M^8JRkwGrS&KBTWmU(oarbk&@zZai8u<Ik8dCqRK4tw2
      DgJ{`%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O>fgc6r6P(o1{)s+NMAoD9}=zv?AghJ{7f6MN|%rBHG)=S(>d}J6hY6AH@MA
      zpb|*HnIDCCYg>&4sx0rv+nt#=@9pnD-+lmijBOhR!|Ex2$2<Hy?(CoO6Vc;SK9atS
      zrHE{p3=8SG&x4cB>(Qz3VjC92(k$BZ!$9znFBs;z=LugZ9*Z#pJ7%z+$Uw%=7)<xL
      zHKeH*jztA?s5&U4#xUo$hGme90~^;E>U|lAgXC-^)F2~W?1vurhg?a$&x2+>kr6|)
      ze|7d<hN_HS7BeC-%Bd!!fl9<M^m#0G+9gk0U|4or8DGI|S0}sX;3jU_xXo~5W_&-0
      zg$lU8t5m2eXriizyAJN*K0{d>@9`ue;vKiZJD8~OTwCcD)n-u}n^cCGOiFKKi(zvX
      zOpAUH#)rvt8Y(LH?t4#6V;KficT(Ic2wr`cN>n)v6Xl7$v=A%*J%LABk_=I!=r7T~
      zsQX0k$E0-`6&mMhw+Dkhpwhm8(_Z_6`X|~MxK3k@u)tG7JSW5pVgOdM+gQRf?Fg5$
      zQtoKbS;pC+nbBFP{TcNSw8-eJH25l|ak2|J4Rz-dypw|s^Iznf0@AodQhy1dtsIe#
      zw$dOgs~`K{(LB1qo$aq!|Amd8sh~-fc#x-)xf@gDEi6n5?ix9{g*qO>O%rORHrjsy
      D)nm1a
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBHCk6n^f$Fbf?E<z*2lQnljlvSnLa-?|00E9fEx6}n2XmD$~a9Wu<Uv$M1@
      zelYQ+UrqdGQbXc5LrhJ|Vr-)ItG~j;|6zRYodp)Kag&`nbMLv&dCqgrxqtri>u&%q
      zU|mB<pmW{WG&06*Ka+QAreD(#5$IBjw&AR0=8NlQ$=A>(&~vbwvt7qDinggCCeW)k
      zEH|@YdX`~ZpUNGg)YNCe^lFytT+hELAZ7%f$hl6<HypoU*mX1d*XG5`;lF<f3xs{Q
      zN|(Gq#5PxbfwrRS`|gH7)U(zqa^Z^QSpKAdmdNv$EYLOQmdy@?(XXQiPZA}OEVM&l
      zP{&DhO6#<auE2Uq$Em<NqoW(0On=sL%(?nT(exGr*4?vi$*>CsGhr6Z#fV?AY67Qb
      zkEoSpJgP=!<|lQ-rb}NU@M#e*o4i3cx416QeSDJ{TLQ6)QLD&QR05PB=DQ2NXE|$>
      zH<4^P7OZA9oEPXns7SDUwQkvE)029<pyMJg5opcybGA_<x1K{lYBAe^m+*>)m-jkB
      z@m5<pUd1@2=J`2egBoWsq2bD*?g*mln8a)J+>`~KUlkbrFA<LC(18rzkY&4iM7L&+
      z$wCZln&>hcV?sJl>v#)qQ*EPKHJ!4+xz<2?r;Y_`s={0|n2`|guqhJx<ErjC#&C^6
      z(y|LDVwk6h>7W()^&S&VtA13J79`%H#LGP%PX;dNI4AXtmgMXlt!gl4WEjQ`9UtIB
      z4Idq<Z{G1u&oS&N&vRMdW%SF($2wME2(-(&$Qkt-fzz#;ELJ@Cwru2VE4zbL4W&bs
      zSMVALbM~OO)U?mJ{zAQ4bv@rKPu(e*Ri8u6=B4Xsi{g*><*alpxOJ~&PFwPNI1yYp
      z<1!AO=A4ERLKGVRgJ?$wS5EMv3PGpEQKrq_YrZ+g>YGE%cN=$l(935Zzdlzuz+h?@
      z@zl@`22!VYFq9hJ!EmZCvV)PI=@nv3`tU4p3lZwr4uf%uL@HqbWjw>3OJpOxp2b<d
      zr6rjNWl1g}Wl1(+Wl25}?mxHB=1!B%|1pWHNFJXx=I#@x&TKYYSj6{P#P?aml_HWw
      zTwZO8MO<EOip40NZ))-lSxAPHV}C$=hiG_v>=DGZ)B_Bp`QO4Q&0(6uTU6=+hG-6L
      zp^N4S&5<ocBirF^BDCuE1*`QXb^D5ZzNSKVF~PUg?Mx7DpYbFTNRrD*oJWeDA=+a|
      zH`z_9Z=hH5kwjJ`1^F0RIfyB%41BBbWlzw*iO-7w<4vs37+LPkJVa(G)xd=YUi<}@
      zckz06u7N2Tp@Dq&Y+w&bdoHktrTuPTkI?SA*}(e^T)$7WAnTJVt9#7kdraeA3zM0B
      zCY;?SlO>*#mFZ(2F5RDfh~=eS+#GA*)*}>uS0p1Wcli+bk6hViQ~spD;{iYuyp3gD
      M#TrivR1_)eUz>58rT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8cy9&ZU5S&dk(I_a2*jgry!8*Ml2o{2k)g@Vik_RMb{5K0fz>gB|JS<|f13R-j
      zGq3mK31EY<3yZM4idKZ;F2kMV;>bBCQp7pC=n<x0G8bhQ9^$KF2(yf(QE_T^4PoI2
      z=l#DnB1}Y@>bLt#Be~?7u=0&g8*<B~vHkH;a8eF67gfvMJMUQC>V&tKoC))8)U|eY
      b2n1Ud18kMN4+pw|i@_I%8kNFR)57Qj2o**X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2oGc6g_T}HVuJ|Yy`?+urZ+B*a~RCfHA2m1qFp7k*ZR~lUvLPG6~AZ5I+m{
      zFbM=dfFFgpc1O|B9!MnLWBc55zx?yp*B=0G;bs*jhP8KmkGJ^8y!9*@weviUMnx{N
      zmB-=@FJvAHDaLt}#QjenL=^_Z*{Q>nJ>aqs3}&zWyc;siy$Uo(@_4rul4893kfGcT
      z0*3X;)&IpKFY{%)_q5AU3%fzL)AwKW7_9BFjN&NYA<;&2z+iNe*Oc50!|cC-Eu1D6
      zm(s!<sil;XuyBS1vp<#9Kt(w)QLzct9h}DkLuLCggwgPu1I4-MpbAT&OAcxiwB*2s
      z#V`{@vFH`=M<VU>k)&q0K{DoYz|%<W^`VV2t}6L!6tLkR(<NO@{x-@e)xAkmna^N{
      zNs*4llSm66nbU?Un8ESmSfm}vvrJ@FY%qA!F&*JE%pW&ddJfbkdKLzyN1Y&4SJi4u
      zwQ5V1k}c7C0uJ#{(k>?t^=(zY<J7S1&W1z7b;F_Q&WHQ(zJU$P2ROHn3kn(<E-Gkh
      zc=<E=mat6gvR2=Ohr3wB9V}rBP29r`JisRI6S|Ennyox&Mu!=+Den@U*H#z4z&pUo
      nUrAeEJR;#8?dna4xUNHy3mO!H(dnudUZY^3fin8n(L((<<jSU9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`?`zXg6g@9Vmo!GVrMlT|{+=_PVDYm<C|!q<T4X7O;-}a8oROG}B%SzY={^h;
      z{R8}?#FN)i*$^b~a^Jh>o_p@OzkYxF3E(Ln+b{%nKFAZ<mY>S@%WTpq%RHXUN>yy{
      ztD=lkS;kp9{CuozSOV({>;gEF$xI2<2Ax;ENTBhiuQ7>CkJ=H*(xYbr)<M|s2?X=p
      ze|xdQetj4YhP^`pXK$LsX<R-RFoV{JWZmp7<y;e3x!lUZ3iI#cL^<$Da?Jjv%Igrg
      z?xBVym(iMsb=(wK+B>JUg0MBJFdH6hI90Uep$<o2xgV!$F#9-B`A|+04(j)_sZ2&P
      zkE^?WbYbFdMS7181>rv&(6Y<-aY3U_=7xz-z>Tt5K2-<QOX3UmKdD9&@WM1zc{h<o
      zp$Z!<s$Z<&0-jPYEsP7MV_dX}jcRm8&1yXT=WzTRJY8HN&f{$eizg7&e&FiZ^p~Tt
      z<*!DkXncnln`gLjie?pBI^6t1tbtoReO=kbD)zC39v-2C+d5kzX!d!B4z(D3ukUVt
      rMdJ*2{!+L)@q&UvUAi_0;=UHj5<I{*X$(Bn#5-&PiWmF>?4tPxFZh-&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;ZEMp|6n<`+wrPxRW*V(iXWi6x>Z+d<973rRB5kUq28y3<>!pjNH<F|kf0pjU
      zK+zxIj}p(l9UT)ffqR~N?sJ~=_Urezp8y`?Q56P5;{#vtHvd$#U!~(tQDpIWUWk0>
      zMa+|QI{f@mRADk)S<zOUh$nNwP!2l%gOFk4T~BioE~o8~bma6IL!~?D_Xh#P_VV?A
      zi4;BP4E^YU!3+ig8Eb!%#4;|PGnAUGi2U93Jyo>Eu>N;83l~XXlFnwSw6H-~@*-Xc
      z3zsQQrc%^EjW{TyViT%6xQ0!l?Vn^Yn|>=&oEr|RuoT*IP+Ovg0~;2@S}&F&n9s%{
      z8}e~N18{rkgeMWtVs+O}8ztOP@^>j=)Bne0bT7qWoYMdo%Rw@q!4A`THW4plEqrDp
      zd#Yas$CpxM-Gt}4$g9|6@K&oi!zZ!R9n!jKg0yy%ilY7r)m4w$Qis}7e`F0h&%q)7
      zdAc1^g!-OVe&E8W<gSM!({;m9*}W7V!TSz2DjnnM5w0s}YIsw@vWB<5P^^L5bb6E*
      z2*?i5z-v6f8$3Y|+nS+Rw2hOj9jetJe{Fa3E4*XuoXXhxVMs;3)uG;!h<mzt3PBSs
      Uk}<HWh3``$(CQfd579>b4@^{;;{X5v
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CZEMp|6n<`-u5FBaX?3&Pe4BN)lUYRk<PbtzG17L!bj31d-X@nek|iZC6MvTO
      z!$8p=;ExhdZcAme2okvWxhLm5=Q%Gwe|`M{;4vO%kz#oAfuHgk{}|O?`2#(Q0%s6M
      zA}qIKH*&_VX!urqBE0A&_iWekhTTtNk%hvrHVd3Z^|%`ghD=9qH%*4(QA_%`+#A+R
      zV)lm57`Dvjf&N<WHjf+o^}}|v(>0Il`>hsP8UzlEB=qSd^8aKJd3g@`VdpRU+@3|X
      zIMH*4bfwy3Q0l%-Wi2u+UzVK1GKmhwm<K!(yY{pn;jZPoE?H~>V@HHJ6e#~3zu3Fv
      znFqr)4H+z`gjO}I;ReIP-c*rNF{-`9XI(=Uxdd%$$Ro$F)N(x0iBAS1=<<O}y)LwT
      zi@QA@ILTWYRitqzA-zjOsu**IAS;eWPDryloy?3G465nJfhArzlK8?pJW9I4pc$Sg
      zg1XDYP=r}jN&RdKF8Gt=e=QJgA9bF#Fpc%34}?ldt@5Ty=}yt9;tKg`^cq2-6R2dq
      z<7z)$STg%cVZ}T{@f%n_eU9sAC?!ylaN{%irf`$aZR#9wL^<9P+dC{0UIC|k@39FR
      zWmtHCH@GDuk|>(SG^<YfQe@BXY<xlS9Jl|_s`AH>M2=+W>ckOSQapv=9#J#0-j~GN
      Olmt`|qpyM;lzsz9B+^U(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<ZEw<07(KTXD7Ct+%qp8N+nfqhhJMn-#e|GHYY-AkFk~M{fg4us+S!*a{w&>x
      zB^vz!{wU+qTLPIew#mKcKKDFt=efUrfBOmGDV`J|F>HKrPMwBx7B}7mqh=h3?kI_Q
      zv~9Z+9`!z-@FHY}8*|p2(s#UsGvqtXx2DZdK5Pq)=lIixO=0}$3x-m+V-9VrWwsc$
      zGQxjSkwdxnzMDA=+uhE=&}<!;466&P{kr?EH!~}HW6$;7_$5QGTI(~&`@w_?USe4O
      zyBGy4R8HXYdPJQ~6qG4hd=_NKx)=D<I-g9rg6ouTaS<H_VJvP+ARRR1QBVn0G^}Br
      zp|CfrK(1P~e#*J6p$H{KcQuqUw5dUb!m!kKecnlqM?CB~Baigc+rilJ`cCMkXJJ&4
      z!~Hb;14>x6{voXBH9m49(*HD@1G5-ZJ4nJYf8~n6m*%;f>cOB{zR$yb&xs-)6|u`;
      z%qM$^Pg>1i0KF9wnBI&`HBtM7Drt*irv}AN?a?mLdIcKsuhPjQkMw(9_<?JKoW5)i
      zWL>uhd41JBhw&Y3kh{RmbKFXyEa06K<^|mNLcS8VXk8OoeUxzw0|7R1g2(uTXZVPF
      zf|W99AhXO(s#hX=X=nW_j0<cpLaE{+ra}|pYGgz_6b+CIs;E&I2|FV2BT59C9;3gG
      H1}c95WiPJk
      
      literal 0
      HcmV?d00001
      
      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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
      G`~Lt6Dg{9R
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5Au#Ii*F#PSk-@6<}yvedj1m(1dV#FFHU)FO5U7DfgE
      zu!5Y#ymWp4q^#8B5};5DR0&KABZG{F58R+skSTEEtTm$;8MuP;ON)|I-7<4h85zW3
      j+7LGBfi$x*GB7eQ1Kq~JzzDRMm4OY!Vqgc7Obi?Ve33F5
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3a8#Ii*F#PSk-@6<}yvedkifc)Z;fTH~5)Z*g&B6bEA
      zMg{?}nw-SEbbbG%tkmQZMh4*mgesUuMg|!TAGmR;AhY0xT5CozGH?awmlh?bx@G31
      oGBQZPw4vCi2hz{R$iT?J40I#|10&FSRt7c@i-8?TGBI!f02x>|HUIzs
      
      literal 0
      HcmV?d00001
      
      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
      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
      Q3oCeX5C0qAH2%;30rYi)A^-pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqNpI6Y6vzMLICbi}O_~-;Teh^JWRV)+hJuhn0IA68frfCNgi#pejFIg?;8Ou&
      zk&xgH2fhaC8P32P<2uWsmwEG+-+TXAzW@3B6~J}WEf@@?XZ!_k@Rw1;<vrn*Tm8NW
      zL)r60>v1OzSuh!@X<6GJKKGSS(QIiNW+;RrklgEvAe6p(ba0n}Jz!XF`znmMin`nz
      ziR_Q@>*H@<eo<l}dMd;6H3HpqN<6tqxm!}n=r+SzWj<N$GMH`uiC6@o4s0yh$e`%J
      z!5YKH6p)H*YAEkYB@Rc!o(MXe4$4q;{XPliB%AysXlhvuyK{4AkA0$Zbs(b2)gAI7
      zbzQGi|Fa%fgT_%5NHu8M*v175=NVRJ59{C}HW@5x)Dh!|VYcN%Uklw!T8<k$c_-<~
      z=v8AfTGurfv4gUOU4|V!<n(F>SFp#Bbz67txeVo4^XUjZjD6&fg1)#fwJbZnhJ8JY
      z!8uS$1Z|Ipp`iOKPPCo;D3s{MGV}=zY$1yU@~qg)6$<(pX`i8(gJoJ*$h%3E2HB-r
      z{R8r~`X{Wuje&Jq?KpKzjeg<``3^x;inG`t%Ww{xNt+vFbuL$XkNih$y`jAU-9t+N
      oeoyhal)r?_3BRB4<~x+;*}qe)nXm?~#uF;2lC@)c8#S2!014F73;+NC
      
      literal 0
      HcmV?d00001
      
      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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
      bqg0iPAk!fOU%LNa;R>%Zd(ZQC6<PlQ>-J_<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ&rSj{5XQejVG;j;81)rg4{ki~5#kBsVH55Z#!bn#CAEvuNAutV_)x~~wt)~X
      zon-pW@0<C4|Gs|!JYtlfL%3OqjmX4@%Vy%!)b3emQL;^NOc=F)mC$AO^19-MBaFpz
      z8H5v~)<(1T&Gc@zQx?ujUFM<FaJRxdofEDtE3@GP#%*LAPF$@mzp=F(jSKn3g!?_c
      zc0y{ldAhTmO2ztJ8l4j^mDEzzD!2x~uxjs}m^e$=Utx>%OAiWD+XX+#$~%t(B?k4-
      mT;3xPj(n;>*XPzn4^4gv`fWYIpslB|p5fdp2^aqDVE7L-+j4pU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gO-{ow5QU!$ZA$rVE5Q{A3nJKNg+N^uv8aS#IW$(}DjuWYl%J!q=m9tsVj4pM
      zDP7nj&Aj>a=6!s=F94ij5TT`TG^05s^z4%{y}HU@6H~6s^9Y*?2lcQZ&Xb#mnV$Lx
      z9fiZ@6@>w1S)g1x`{-D+SBQ_tEB&gShTb1?8s94PExj09*#McCH?45;Z=XFG)@2(1
      zLa&U~{A3)b3d3CcuzXRNoMqte<i=*is8N3}XB(bVVKVYMz}6zfb8q6Ra;itB5VOOe
      s{|WJQdATH}upzH4v9~4F2wg1G-9oRf+t{h=?swh8z9_|p{4Mmq0Q1s%oB#j-
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZF3V<6n<`clWpSGrs*3N1GI#a-P8sU5ebMj23-g*npkF-ahxT&BkP0>lih0h
      zDgFY#IF2$D96$Kg8Tk|b5{Bn))}(1H;ltjyJ?A{nIp?|epO=6B1>h{cG>{Ou@V)zk
      zTXug8%XKdZ3tO$03IgwbM{V70{{Kn!f!AppkOJ1gx7vO9sOu~LK!Cxqft0{8ZN6J}
      zV+gO~g^$ZaK!I$adY;?aR=vRM`d>Sr35e?gGu5sigsvZMyPX}CymIO1$G^V#H!qNS
      z<o1XuFk2rm(VQ#v@%*;hb^JTAg>YydKJbFVS%KA2^YNq^Aa&XEz3^j!^TmnQqXren
      z+7^)2Zd;`xuw){OxeShA#lSlP$497+W1BdNcLk>VWh$HzI5(Mrb$~(!Q#fWKhvNdv
      z``iZ&saV^Z+^Pu^GkSH>#M_wFrSyDtYv<v8)oZ$xfk3X_ZLujXTf=>PD0M9bE{@`k
      zXES~h$%h4A_)dkx=Cj42+GQ)PVn3I|brPF0#N0@TuezG;`b2+iS4rbNlnrbOti4{9
      z+S<e!P&Vnh(`bI{G;22n3Q^*RlZ-$F7DpI1LN`<m#VqZKEdR5u=vIDU;vC-3;6r?5
      z;3CyMq9GHPz-r8Tfulv=P#x6@Rht?tI@Y~3uHdQxD*5E=GmQ{Ue1a{iuTiVls?8d2
      z;He3jMs8$TMa=;1*WUnzH861vp9@U6Z4xc^C3<){`ykdm-pfE2k<xo37Xq;|D<fTq
      ziZpx~rivEdhD@Wo(`%_~p4L!WKO&nt4*}EhebuXW+#t}Xb3@6-4<v8+*jc1;tnyk-
      z@k>Ht1qP<MPV?zaAj6OME?V=}0okm6B)Ct~CWm>B3)}^?lbl!W(jFG=(jQoUj=a6G
      zhZA;w4{IBLW7<w|@p}}iz;OjBKrSIEvzU=N<m5b-<pPe%MV#XQ6Qsm|SjTD3dZmdZ
      zqLrqi2^V3-1U5Je{!7@u=@A+srB7r&ie~oz#?h#2lz5`4Z*tb2@(DH$`mXKsl>=WY
      zJof#DNSaaJevb2X`zf=1inV9B@DtuDJ;CK?`1EdR7&NDABu_KtBIc#VRP6|0sUIW;
      zNb&{#0!~EhI&Q>J<!H~kYlL5jxj)D9KAy=qOak@D>LzY+&e8q|ujOr05M14Xd<Dqv
      B(>?$I
      
      literal 0
      HcmV?d00001
      
      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
      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
      U(7l_U>DvHzX$;QNuTP=;4`Qhli2wiq
      
      literal 0
      HcmV?d00001
      
      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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
      Ya84$MxKsYUOWchse-+w|fA^5@9~~_7e*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%Wl&^6g`ud^DwO&2z?MpD1|02G$65p3V|XjET!#&QVFt}B-3Py;~?98Z7L+5
      zLWl)B_<?S^L82hB010;d5gWvvY1C#xEzLdmj?X>!VgLU7?K^;Lm^Bb#D6a7hUg4Wz
      zWkIwgU-o(PvGAvKaMug{Z38g|OS4?=wJS@FHPH+WBpC9Cxw6aKqT(pK)Ch#XA$*32
      zY%ws0A+BGOO6@Q~Q*ScFJh2rrOdh>CrVZjIf{=&n0qJeZR@kA7j*#sRr6<CU45qF!
      zjQ(FoCC^DuhPN0dO2=@@E7VT4*Agi(oHk)$B#kJ>Ok^?65G^Ufa7}t*alP9R{xWa4
      zf+1V$HMzUOeW~L9WlS~1kkNxbc+%n_F~<ffAI$Hlr~F72ESflhq$)UR;({ue@_M0M
      z-M-_xR9tr3H212@+a$}j=xj5j@AuaIrkIzikCDN}&8kH+n2zTOzv}WJ5P^Zq47tNE
      zFi0n<qYsWEwG*Wihe1Dzfh1WVg|x;DOpVm7#-TnAE3_=NHoA|{$>JoboFeZ!#p)()
      z&+H>-f5qr0&6yyZAP!K+8M3DK)5z-@3}<n!ukeTRRlRzC1W$K9AY;e(QP{<F-ny+r
      zLx*E|t4N_~TS*-!?I@xB8M%iyjGqd>;QYApYZnIDA9PW$hIT$89@~rVQHeRs!=W+`
      zY8oR@EzTlC_8B$soW^^BQM^O}uW$*kQNbG;?=5A%LzQp=@AWA6^z!QcQPhA_w7`Q=
      pFOrg4N1YUsv})x|lNZyTT4-E*YNZKcmMDs#44Y7CFwEcz@DKjm!xI1i
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TC)+5ItiY+!)h@N7EKcAv8b$iO?lVRSBgaf)W-y()A_1Dz`GW<m=G(C%UUx
      zu;UA$5~{?459n8P)z3i8wJd=_Lfv>gGv~~lnYn+iFRuW+#jFF1F!@CsiJJHt*V;1Z
      zRaU!QskPeo<?6>>6LDY@<}#pWEDs+7O_Wg7GE&0t$VjU&*lT_u&?aH95e7OILEI63
      zPv$m$R8QM~OaBP{@qyBnWkR8q=~3s@I~Az-Jz=<dFE`&I*p2X$%!506a53Pb55pcj
      zj1Wrq@J3nPa0)FI$gSStzKnJSkI1E4VVBhk*35nyw2dZ0IotK&#H?}Xvy5+7wjG+9
      zv(@>8`K>0>Wh!6A-)mW1J&$orICw>vHj_V&_V5~$Jal_)YmZR*pZWxMC+tOCxvq?=
      zygBBQ=|u3FK_H`sFSM50L51&=Sw7EoD>i)xDD$rS_~BR>Lk|7yIf?hASTqMn{%t<M
      zAZMPkx57w^?ZCp~1qus`zcF;4fJXW2niL%)M?dk5eUC{DMG4Q@5?<hCT4sr@$=Sa!
      fcE;9%;hXlLlRI2H<yx3ZP-RTBbrbd*%)q_@F449O
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6NN6g{_eD3k&Nf(i%-3^)S`BTE^h83sroz=Dr)Ngm^iK2u&zUq^81&L87K
      zNeGDxe}F&8rSZPfFbtCzHoZOXob&GKz5V_7=Pv*&Sn%Kw=0Au}qAbpm@~+g)H4zu8
      zjfONvorJRb<}f?-;1X8aq_ybuW2B`{It@1zA#Y@?L|B)xQIS5{S|`vpp}!VslL(#E
      zMc9<NuYXoc#c!|22;IqhWeU#;!#i!=I9P?*mrAST6=Ag4Ntfybw-&vXz2Lq9eDwL~
      z!f=294+s-?EH@!5);PGMwA^c+p2+x6@Tc1VQG<gEj?XwdbZtDsvySeaL%2>n^iC$N
      zf$m54=7nM@^`DnTHfj~B<a4=QSLwwBCOteM%-T`>Umaiy(}bSgjlHAewdy{haGxFo
      z{~&6{4Y{dovLIXcvTew4OKTa|LSc+F9tu3xyGtRAv|_jZ7tHVuy7)J9FpeC$8F?w{
      z$>;52(s!2^)6dKRqZh1nxb`hBU1D%?=?X(XQqc%MeM`|fa&(4K#sQmHiidc_mGBs2
      n*)_{tE$3cf{5w|%)^FQ`zTEP<nb*P7R5gQHu72vC!#v!7^WnyX
      
      literal 0
      HcmV?d00001
      
      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
      zcmai2X>?R)8GgRWgh?isC2Nxq$}VA&kg_zD1Sk+_2_}IGq-9aKnOw-FlbK=W4h1aM
      zx?626w6%g-TdZPhYoUceicoMNSa+>jajob0$L$<Ft><|3v_9{>->g6-XXf7feed$T
      z&%4}jc=^p2&jFZ=KLp@Yn6T5_ZMK?sIjucbG_~AJ1mIVw$y@D=4aH+oE9wL==E}XO
      zW7<)RdL;@~uAUuhU1ue1Gh**E`y*BWL51sOXHTmc4qM5j-ET*1XK(8={S>hXB<ZU3
      zS&5__i*D#zp`cbPjO~m?la3j6`pihmDn9ej>#x;6v44g_Wz^c^Y#k!#elxK(ni}f2
      z5(*`QRwOQwD2(sU3!+1zSfrB*72ZzDu_LX0R@jLpxH)E#9krb$3Pp{x`xN}0u>mWH
      zBGehEMoj<{(_H1K1yPT>QZPCLm8c403Z?}xRiPo{`qqRQAGE{CmC@aHA{HeA$G~(j
      zfS{dRWtjsJ^5Ht&6u>(a>NA?@&6Rt?R@@;cLCi#*#6`M$-FVjvy%J9>Y)1M_QqE_+
      z=ywL~Y^*s6W~^m9EN4}QsPe|y1yo5$tp>_bLD^)kY(-;%=<L2Ah36YsfEyJ8G`!Z5
      zL`=^$8t0N*Uzti0p^gA<QmD%WoRMM`%6<?FL78?IK}JSWYhV#-6pVy56x(g}#vFV5
      zUXfj5;ASjUC?(>xW`ayBOf105YVyjpLx3;Das!=Usg(+Fty7;1T^weW%21434BU!U
      zEEv!K)qLo7(LPoic$WY!H3tSfv}I^RkAYsyCBIzF=E5%}O4~zwg#p^m(p^Z8)NEWs
      zuFZ<&17>B>zQU9O9y$tBE~R|Cfjh8~l}VMA5sOgBV71nan9&`rYx;MxUl^A}u-U*C
      zi6B66@ye!Y>=Ih*u~j(QCdysfQLefu_ZtY~JyagBBA#-w9UZXtu<N_{8B*{K#l@6u
      zU?=XRpu4?h`!x`CNf{1_TN=HBj℘HB7WeQA(m?v%8uJ14+agdN{^)5n%5GS6K0c
      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
      BWLp3L
      
      literal 0
      HcmV?d00001
      
      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
      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
      X3cvR1|8@L^pYq!x|7w8WYTEw+Nocv4
      
      literal 0
      HcmV?d00001
      
      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<9$9i)9L>K`$(g#
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*UxeCHi5S%rdc;f*!{(xx=)|MWXVj)=AJ>w#Zz8B&%{+op#;75s@2p-ii#}2cP
      z=j{$)fVzhqp>t4)3e?pGbJmxU(N^s>#~$*8M&=!r-UW-zfkR91c5J5-A~bvc>~ot+
      zLxLOg$s|nZ_P*Y`_Y@h;67pAsQe@6{k_aWVf0CIr^w)&)n4_3OWqB)PX)bZd)BRDJ
      kTYoeA=>nHPaO5Yzk<|sbNY{HPW>`X5{7U8%s)9MxUORa~LjV8(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK%%h6#lL~iDPGyCeDMV32EJi#&$~F2Na6iLU3H_5U0>2E-{ZXcCNxy_DnQ0
      zE(KO>*dW-jN<l0MNEHH95{XKcKw{G+|AN1O5OD7JW;}kRVPVgmd+zt0bG~!Vok#!t
      z@({ooltTzGOyAOOYbou0Cza<$E$8s+)LgmDZCfu@_}q<^z1<KLhBHlvGiG(uG`Qik
      zBRo?G-3(I#b|<AtUcI6_AEbO<%8qUtA@neuc>KwNR;h7@0h?R8Rw;1HCg5sro`Eee
      z^kq!Lb~M9rk9Gb1m-^Y@@1Ot6(CxgZ+f%0*h8CL=5ZR{5d{H-a=Q6`+yn{VaU{EsV
      zIuC<kSVcb$MG(ZOiUB;qFy4akGEWQOp+()`OSNi=TPqp~$`D;N%M`js3DCRTR78Lb
      ziFWtx(#oI*H@MS~a7n8Y_i$V?R5W8Fwd`2Bv5^krC}JTTV;F2pUd3^oVCbr7C0-G+
      zxhMQ+(yYnRoLeh~xO8<;RY~6FNUxhhg_8%u#W{*Sfte7J496ee7~-^wQ+S#ooX;+;
      z-ps9J^VE25Li@+)I$=26A;pYYGaQCsJdtCV>~LV7+ht4N6s^lJ63=yzp4w8U9}z^?
      z%|@~IG*k#w4B<J3BVJ|rZJH;V4MCd~Yf-)nDqawE>eJkPYO$(jtVeJj7eyCd66Nrf
      z?po;<FFWa+Z%g(<q7Wgv7gfB3ISOjiGR36(yfGa0^>bS=Zcj&>#E>I7ePBV|gVYXV
      z1kcngi*jp7B3YUnxIQ;-1HYo;DoDo=H^kVild7cLt9w1|c5KdY_y)HkSU_ILvP5%B
      z3eyyh+55X3@hc}iCW;YU$4Usxbk{USqHa~OiWEbSF7KHLT?;o<yn!`_2sz5`MX1D!
      z!g;shj(_uXNk?S0xLvDIqX}8^bPrW))izmNn|7z8EwXIZtTMl%i?Qn4yRBzM)C_9Q
      zFu0YeXtvGiei>;n`)+o`D1#sZ=mLEaa0Fq9oO<aa5r8@{AZ|Qbt58VPL9#^Y?E={X
      z^z2Q}{EVUG%q~WLbODFyKjNA`BEk<bM(-+t=qOQ-)01HWPfD7z^c1$9<b4d?$K(&R
      z4nS~pyZaye@I4-W3QtM=DTxmxTalmmkRqwN=aZP0$XSV0enPwz`>7ABc-UE_TD>aw
      zTH^h}hirH~O<&u(Yzy=hvh|POCFx|&tl__(3ITjcQh!CNeeJT1))6ue!s0B>xzRs^
      zXC<#jdI{dx_!hc?_XP6;oL@^02LG&kd43n^9bEPW93>~fH}t<v;BV<(_|E4p=DCY`
      z?p{Vly4zp&?>h=GkE}#qr36L6C+lHd*+TyVEUYQJSlmXhSO#g?5TxD)J3iJ)uOQd(
      znq)0f@<O=bnH{{og^;ohC3q=0v4g@yqeOLaAEFPxQV;*;avrPWyljV2#GAz0N3-x2
      va>UE<wio?58GU%aKp*)64SRvU^ZyC{=s*y_P0B5RccIZ!%qCsaC_(uTN6{>P
      
      literal 0
      HcmV?d00001
      
      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
      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
      Gk^ciAul-H{
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(YjfK~6g```Q6q~qjq_?AwB>0#ZA}Ukh}-mG=V9VJz#$<?3n<FQR%=ThNlxic
      z;Xm+!$4nB)4DbnN_`*M8IFe=Ad0@{-tG#>AJ?HM({rlfve*-X$T?JhN1JCsXJ)^($
      zGRt<ul?7|xRuB{D59X`7RnDyLK9`0k5UWe+2uv2E6n~<fx5lrmK+k>CGQC-W?qq6%
      zSvh-8s^~^sgM!NfSBj=3R~ofl>8$I!RY?v-+t8~Ux?}p^;bhFKn6AKJyIMq$Mf%Fp
      zTeD5ela5bWU^JO(uk46$tvdIuA?u!LTdsmZfw74HqSW`Q(siQ+DuywtVC0nk(ks`K
      zH4WD=My@Pel19TZy;sY+rI&-2w2BA)Iup(+m=G9_iay?4Uz1MFbX_vKjMoLOzSKRV
      z637dgs~E=(zh5^6hLTNTO>ECGt#UTCq2f)vt>7(zYwevnQ(411c$W<~D$;n-uE{M7
      zA>B|&rX38RQ<zea7MO@gFF1O=VjAw8bznNSRg;#d;TCSQyQbS}W3c7hDiVnILf}0O
      zm(Zi)E<RB3eygRv)z)ph`obi_hqy=iY-wKZ>y4@x2Dt65j&>~1`cNNh_yjWqV^U-Y
      z-+2PpJ993urh@x4P9!O4wTdj_aXiFh1&;*Aqv-j34Ns60NbH-{YLL5WdX=1QJA1Tg
      zBJ8M7Hwb1^1r;gGX_&_Xfk`)T`2~#>xY5b{f)!MrLP5i)SZXRS8IF`zULKf+Wc7(;
      zYNze~7C<vh`z^Ddk+9HV{;5$>#H#PIHGx|l0?q)mkwaxX)m?6lqB@Ov`b_ZHi8{HS
      z&E@sr2HY7h&@W}bd1L=izIou9x5euIlZNN<6bC*lD0oUIm#s!7(w3|0u3Oi=O6VgM
      zJNQb&*Vq;qX&L4mm|C(Mjv?nw|1Ro_Om)YH#Z4NyoA)J+?z@?zZjO18@!89-4Bvw9
      zOX(x1KXT9ojnAH7avHC3tTh*)4_Elri+)_?ssWB;j3fe>e>jeDX7d<BOX)w+pFY9(
      z*1+Tut{>u!V<f*r`~-=uBi#A@CuIJDc8uvmeDpIiC&+U8L6Or_zhJft4~~&P#Nx^c
      zid(lQ?oJ(H<p)AHiQNk*&9c}-YIuYpx_TTr-X?SO*gQ|zB4$uP9!prDKWI7rSAwi`
      zK(d6-@Hz2jFo_b@DIrf0Utoh3mMC@;U$RHN*uwTXnTwq9f1{@rQOh6LImEN?8Ef(!
      cX176v9&TYDo?;NsFv7RrP#;6!n_#5>2bn~<jsO4v
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;e{0iF6g@9V*EB}ArE{~}{4qB*-C#u!6;^~2CKlReETvHV>oq>QNSa8JZuqfu
      ze+(4&0rsK9`(8(NBJ$wA``$hG+;i`}`uXh=z;o=Cp)qWI<fpvB&x*zoAB$E|WYK6^
      zh<wLO<237k{v^sU7}n;nIb^`&sbDDeTHV8dq58g~FfmWYjeuy9@c~6WzvCY>Y|n!K
      zt3zn3>-T)`-Lc<2WH6gy93@flhCz4h0|vuOKaiR`3`>7kGO<LpLMhpVLqwA_NyC#Y
      zornq;R&128V3D_KV-5Eh7Mj=8hTE<WBxc=48K(3$ZB$?~EOw$q^rn-M$ohN~Q?E`Z
      z4S77^StQ@;(}Ipil5~rP<hK7Y1SP#ViE>hSI-415lf)pMW}$c+N#g3w;qS}-80>bE
      zh|G(5o{PMU`k!mKnZQt)?~7JT6QdRDSeI>+SCg%&n;N5ABWvLn;cR;KVUPvf(huAo
      z>ds;?G@Rw&9M$h&L;V7G&ry@Eq1=rxgw=4LtfMktVi~WniPw0B7kHqe5<!E$uFxVa
      y8vR#xH@>2Jfrq~-EEPB)K~0sqIs@Xd5=tr9#tzYFc%q1(QW21NM#sf2YQF$?z>>WH
      
      literal 0
      HcmV?d00001
      
      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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
      CMu6%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CU2oGc6g_UzH4TAnEo^Hyz6Yd3qQEN?QdEW%sdQCSRjS~{ZLJa%l9D(>{4ChR
      zBoO=nehT7Cf@j3FI}L{50a>!I?Q_n(_t@`$ynYAZ7Ot02V7U2&@9`#oE}LCG6`qu7
      zILf8SHh0rd#FEP}iF@K%E;1=5{TDM)g2}LY#5!UOc$5o<V#j;16EIXCwlyZ=@w6F`
      zYCOHeV0CwU{hsId8E((-|06T;%Wbc7FKBt)9n#t!M`0Ywy9|cg7%-TvWJ2YgVp#e!
      zwS^@j%#u{5Jd_qHBt?}?vN4~DG8j%fC}P2;XvM)Q))*GH55-N_ZwwTs?w|xqMH>#v
      zuoxEGVJtfN(~(H~d=ydpm3A`b(SWC++Ur9b1}-Ski{zW@|HT(wynGyHWZ&N0M&>iv
      zL6WCqaX(bT)#J}|Lv_gD_;D=KR>ZSRWF<6yf0^S1hP8jaDE$Spkp6^$x^jV{n(9=q
      z)F-V4nr)mQoI|@uFlh$d;#-^?8kNOhXjYbkeN^9o4UGew*+)%<rViI%61IS|G}pEI
      zM=awr<@kgRe8ncd;2J*QoJJ`m`G1(nqnZkIUfx=Nh3Wy$|B|xx#WyPKyQZ$pfw-g#
      YCJHW-G^5iiTKFm@0X4yBxY$DNC$v|sbpQYW
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;U279T6g{)MX*S!{wj0};wtlryHx(Luwg_vexUk0HhCuLXk`C#}x(U0RN`IF2
      zp`hpw@CS(smfo3^){4l$%$=EY&OP_uZ>OKW0(gu^Wf%;bZ}}l_^7lov!$%@0icAis
      zg~;o#GC7iI_h=%@uozY^a2J>!Po{#Q)DB+m#SGOqk;WuE9W`UpNk>l@?9PjR9JYdp
      zp+5WnZ!Tg~I<LcaH+UB95qo!-$W#_j8BD*?W3XD|eKK^NVe#)|HWrC6IXKGYkS8`g
      zlA4f<f)5f=0mBU!CCoV#t+-glO@_JMb8*WL8$E?tb5Vw^q74@n*bEDiOhtS8ZXmL*
      zQeyC;F(v5nOscznbYSAH61_*A^22|0LYprRWKIn`oHdSx3{E_rW<&8@D&gwY5$vc6
      z8Qd^UMb=7qo{PMU#-FpeN+7w*snLX~X*6jQYpQOFYN|GUQe|`+v^$t5oJ+SZEZPCT
      z^aa=YrneCHEpI74M)fmT-#o$cF={Hbbh!S3um*0??rG)^Ea4|M@Cy&|9k=zbLQtpA
      zGX&(tp!dr5`bShxaOYCO(I3Cb(5a@b%z)U`Mu~zg)Jev`eJ%Wel7P%JT0XW>I|B!}
      BncDyW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g}6E#0iGB4j4jt6$&_^G_V4R3dt&zT1rEyqexL#lhh<eu7e!AsGkL0
      zR06>V@KK06ld8~)1+$oYX6D>;U-R?V*B=0$;z=1A!TTT%L`!_iTiaq3`FWnjgCdWn
      z%iCF;=I;uT#Q9<O@MBblLAZL#K4tbqQbYu^<8QqV3ANp};v^y+wL(@)M=uD*X7FZ{
      z(44*fM>O^+b>8l5`E8bdwc~Ge3D(*$iPJcLNzlDUk5$(vdz{xCVg7tf3k&={jz?n)
      zHP%We*}h0DTw%GrOuWx4;A(7`C{-ENZCuA9^VUuR7+%omNzP3hWmpp3wo#d(B^y;(
      zgt>N{MxA1R5M^C4NVp45domPBPh_z?tIH~M+?VnXIG`8&qdlsWd>l_Xw}V+XDIiqC
      zNs$esjaUlT&Q51l)=RL1G>x+LL`<jAw2ali2XxkfTXcS)`~|p?{1psNj{Cr<E^Aem
      zD^-^3WUKLh0XFk5@@dQ-ay>77$ECjR%!hr$al*doTn>-megpOOV_ZAJ4G9eeZ%Jq>
      zc;_?wYPie0%W**(T+*>b23E+#GXm}@hGg+nPNMpptH$@0=HeH)$5{R&Q<V>7@klDl
      e)twRXP$kbU@X%lx4NWEd2rF#m+zF4-Lj5<g&!2bz
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9IO-{ow5QWF#Cy)xnhC7rE7HqSsf)EQ(tI!J!&Lnc=*vK(0oQ0dP-~b#7b!wp`
      zVqwdE-)P>v`T70&27nuwrH}|XZ*hYXw?VE@+mOPcfQzUZw2fT8w4_))7H~OKu07iR
      z6+Kz?A>d4T!a#+yf!>3F&-vp}sXJ^)7S1^T<SH`xh)V9u4u&RLL#~qpxV`(27Im#H
      zMf=+MZh}j)6?tu&2M*EaSEEmi^*3BDAbWOiUeUca#GeSS_v3Ov0SA1JcsYWXkiyCS
      K1*d!`knI3-bzZ6f
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXP%?g505QWcVX<9-pTDI3s(z<031VvHM{-zgE%o}?9dA1fkKo1p-1{E}mnZ<Wz
      z&Y8#ab_XzqYoS3Hq~a_BanZqAB)OidT+6Gr&?NL~l!-hJR{K<jnqWmqc~qq&7@of)
      zxUuAwOchHN$&4`c{Ke;BauBf$zIZ~gS-%mbmPMtVbN%Vxn6=JUor+M-l8o*8zv)Jm
      dg-PHP{0U%i*cMDwp)IuQX~SVc=x}eK`vQojJ`(@{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6iE5Pf4D48}l!QVIo1K8gsD5_;&NN`({!kU$Ya6w>pOuG+1PEqR@O{Da;Q
      zXT-VJ7OAbofgjKxRWZ8?fpDm}csw)j&Age}zyB_;0KCAm2ZxaRC_ag*_?%YvL?pvv
      zz1@~ttD{iX-yYbI2bWOl!5VRt3KhwuAKD8OvRWoege{q96-S5L8wA=Rj50*0B1&5#
      z?8wab;Ns=CbNQPvn0`>YxW>e0uZ!(m<J@Z%sdSw%wQ@gMY7yK<{7w#osR4Y9_!z)s
      zfB;j3nLC7@xSAo2H(CB}=lDn_2Z9GBOg7^-3l=P!{cg}TvIvEHef!70(K+#6rnjrx
      zk4@F(m6GLtsfzAWRjAUh)qY%U7*Da_VV;mT<NqHWU=hy<nZ5e%W|L5SNCSfZChjC{
      zxuuLO-)gRyUW8yf;!`$4p|#W=iiENL8}M>&_1-)Q<ap%+{E8gRA%j8oJnIc*v*r%=
      z-{m`ua%POZSB!Mnj;xk{VSKgx2NORn=n;Q?n>yt}CzxhGU=l;|7&B}MPcYjpQ(<dz
      h?gi$4uytVgraf?WhwFB^4wft`hdf)~vI}?)_Zn~ny9NLN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U31$+6g`_baiXe8YB!B(+Cm@@M}eB~-MTF#4uKdq1Y)P8!%#N%Vnk)hSTe2Q
      zt&jW=UKnP|M-zt3@X8E7fd?M>84PEo#WqtQ8LhNed(S!d+$;b3=TAQaSjEjWMg*ol
      zk)O$eyb~36q_4a*QUaNNtQ7c>bbZxHV_e{Zj^8cFdR>K~d*FI*)GMr+ou>q5Le+7l
      zx2HOx8~C-Y4FORWI7yf=l76%&y{;PjZP8hs`6K(gK)OzRbvF`Ns{B8;7Q%x?fjQTA
      zBa-a)!br7h?S_ohM&OfO+!UBKZ<Dy@?Y2}y;FQnoTWww9Ex+43P#uBsEBf#?fzkZ(
      zo<OP;G*lXA1hW15H@)CaMfQSjWMLLL8yRFR2%ObV^8)kvSa<ASa_+kHWm9#E8gaTp
      z>$YRIsyxsJWhz0P{z$sSy$PnGkKK^w4WQyy6fKM*r`aC2@q}iZ3{{k{&{Hp#W#|NQ
      zgY16_VVZ0-wu8w1s5eQlyp3fzEVr$+3FilSI#4JDtv22CqaE%jLEvc{&)}kf)l^Y6
      z2)x@a`*k|MJV-QAo_-e3rLoFd`VN|RHlD`|0w?Mn#eT*039Jmcmy|pN8moz;M#(5%
      zvhftMB&U+W*qPA~ST>sedqV%7BJIOv8#Yd+aYbOEuQuje9AK~AsKy}+MO@Q8f0fhm
      zuxj?&ZYq8ztZiGi*yz4Lp7fiA-KgXG&0-oQ&TmXM6khMTUPE;z@VdZQTTiHkb-bb3
      z-sC_VwxI;hmhMa0##^Xx66i+FcR%f_O5iu+X)bGoZ5wZ6hhr|=ZRPVDIF~OQe}}*f
      zJA1c|cWvxqO<*Dl62;o5nvGMKVEcE2Zl|s`T|LKE?8-%53QOPeS$fHnVW>FAnTPGe
      z0)a+(jq(31(wN}$B!7iQVBwzb1E23<3e)j@Ccb~EdAT3wS$=k0Pjh!U#sO^S7_<9F
      zm^;EF-!eXeb6hRnfhta*hVy)~nWfhYc$9aIGjDJ<c~YOXoFhEutQ=xtfHFl6-~*)a
      zAyvv4=}dCkAZeyWJV`8}N77(!8*Mq~2Q2-9X~#Ll3a`QgERp8L0Yiq^z->C=F}sC1
      z_(OVgeZ4Q^6@y)7hOR|pU((peDDD&V>H}QTq5FK7c#x>?5&LsufAKH4z-w4DxL1wl
      z>@n8&GaE<P{1ID+xPFLt29UZ1z*j?1StHTWGiab3wo3n5-=X@xCBH}Y8}1TO3BuPg
      Vg0_7Gd+~Y$@97L86nX6<^%tSMdD#E}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7+fy5L6#jm>5C{u|Kw4?2)*DSiS`h24=>-c`qg+}ku_;u$kOh_rSxh$A`k;>;
      zedwdk^ih3ertORk9XnQ?@xiJ70qT>_Ufz9j{C>Y(mMu_6W_I`dF6aBs`OZ1v{y$&c
      z1Mm!%A_xeyFY9aifc~C6aK<t#b_5}Tgtxb7SS!xK&}alr0^RD!v<9Y(s;QUF_w~85
      zArPynWx=S{Osg`T9~BU<3$%?`m71+r?1Emd8{x+HA6Jij@IxODFZ0RsxgyYX%&eI9
      z34vfLT@VP3SS2HhAi6YkASTc;W>$=e`pTS9J?F5+$E<n1T+kT-+1<^My=2xH$(R?s
      zN+>7LmD;|SF0?>kp9T$W((2XFjy8s~DiBWP^D2%-!#=NqVlp8viUO_tNN$@+3dB?C
      z?Z8ojJuTyYl$UG%%i+}MXu8mJ@;7SFzbN`~D1z)}0m^!1abR4xmoyy40HataTUM3C
      zsnN6)Q^v4jtx@V0yQ)`eW!<J7C{f2iNs4H^Ti46XKj9{;04L{`jd?qlz998{QNv?6
      zAg!Ys9>)RZX3Z@#4JQe|gTUUc%=|q-HJfc~%C4G~MK;5x0Ls_d%|-As-Bl5M+o$Sg
      zxnxwM7{MzMFq_!c4JS$sr|~M`De*{IuQ8Rb2jJCaE{Z(fh=9G-u?3)xG>qY-K!pAi
      z`U*Q}0%szae1ORbQNvlh$(w7kDJK^M`gYUIr;3|d6vH?ti#xqdX7@Z@XvSMqb>{MM
      zd9|qF0%lkmeRb8Slmrg>X*PX!(6~x5(_vhc5O1?TQ+c=5c1oIS#wC(wuPD+v=`k-o
      zMjq}Vp$!cuq+Zb}t6rTqPMdO!qiSRhOJ&(1MCB9admkcbrrpBM4X}5G930y0UiEFG
      z#aZRMle^FIEBFm(HW0t1T)O#=(iMy@gjpnLY0f3=!CtN;z$1K1fN9>8cM}pI)Bh!U
      zZlgzjledxF0*n(1F!)|1*b=&7D&ReivkOcZ>?ehciF4^v6nQ5|?+!&l+@4JDF5p#y
      z+f2L8MAsDf0msb)?@&_6bUTz70TOV`T$(}B$g`#llel_=R)Ar0t#&{3>Coiqz|q{r
      zJGsOAqg}n9z>}``QN}L0V|O8nlAlj<15e%D7R4t%oR}9ypI41>#w@GR`S41#D^WgU
      zk9^K9_(B0XRp|7D>h!A6=T+e>fn^n1GrLs40lmQnyvg3Vr9d6^TRqTLPyJR;{XQIY
      z70~G$CVVn;up6oQJIGv<g-&lReBI>Gea(Kp$A16DN0;>IlB63{q9#c<$k+w{k#6?X
      z|H$S(<N1-<{N#iG?`(!V_!-hku@adgi<!J6Q=ygYrL`lEpGooyTkTgLQNqh3!5Nh^
      zD`(>fE!m{c;d#F0_^q*VBvH2iI|Q#I99-}J7Qu1V!r2C1`1CrblEhcJc!`T}Xg#>j
      z`%Y^+Q~5i8G5+A-{7Ieu^2Lz#V#p$gV`OY+g8Ok?#lT-AH-=fIEiiN!!^KPkry6+e
      t4#qby6)!Y!UdGbEZ2TR^PSTEDY(Q_Iw7tFmR_xA?&5+A3u%O~y{1@VPiOB!}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv+fKqj5ItK8Sg71Yyr7A`0TLUZQGC#NNr)OXBtDk1!V+vrDfnBONKAb21N<oC
      zY>SpOrpfN?IdkUBZ1?N?;}gIEwv$j8iUV_M8s@WS+&IGaxO-_oI!UMuIiDGtcF(x(
      z47lYnD7`MjM(a;<?wX^%u*Ro+DlFb$U?b9nykC;w#G$Z-*JP+yLNX!_i9l6tGpHv{
      zm!}ZJvJMRyhFGQA)<7OQ;z-D-pd*PThHOjN{A%*l;qJZJ8FFG;j%5zprYq!m4ys;X
      zj2TK1w_t4QRO@jsn1-QTsfKBhZW+>)DIGlF*krbt`#W~(&Y8FtKNGT@+`|3t%NxWl
      zwI8Ejq0mRu_z}%QyF@jlh)+}WK)gh<wRh;Xy%`1d8S<|LDOjPk0F~ATtw$tlB7<WT
      z3E2r`SVf6WRKT}kek6?)GFZd<+{U0?a`D<5vM&?_#S=bw;TP0{gn2=F3fLq>_P8j{
      NN5!}Qip##m)(<vxeDweT
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~6#nka(6MEpwIV9YL#;wvq(xCg9*R_wCa4Gmqun@^OBqsT%yf$I2jo8(
      zHzp=-*qDGOE?m0sKe%(_Mi;&}=(*GB13?p$nS1U%kMDf<oHO%w`_*dzy-2B$7{W{X
      zik{FPIEhIszm~JiNUsWoA>``wx|vJdoLk~qM}?1}rQ)6A)^cJ}cNWtQw{^#|8GI|;
      zcK9j-OVhzwGzyU<C77thco_y68dmgt#Ibd=uwdEC4DD4X7kG4G!7%wu*?}T_LxyQM
      zBMg0ARo^mTRkLSwbe2IGv*x)U4Er_s5fHlr8tS11AmgBh1~fCsUBWduLAh@fm*==W
      zqtE5JxPz6|^Rv2bh_k0u#0?pms>v%AB)*L~?%X!adBe<26$J)ii?SGnlx3EVcLj+K
      z4J!8eaRLz)C(CuO>4%0>*vFun_btP8D4}BVRfiH}i?+>8XPW1hNifuPWyYgvffUma
      zM>oZ+mSd!hYv|FCa1CoELx9HMoQksyt(7M2RY47XIM3j(=~#fWrRhnFiutmZWzQ2g
      zDKqX8Nk!8F`;rKxVvutxO^@p=Wm2S>wu*L^j~k*inpe0UL4uBH)8zJ8UN00lVFs_6
      z*}PStLSE<2qBXDKD#l1n1>QM-!!?t!*DVI4)mFLo+VDXnsT(rAb+k&NDL^PBW`$%}
      zObUH9K6)F_NM1qO4U?ZtG8l_*Ar$N0LOAvkP0vXs;Sj9>k|5^*dxyic(`ZlbID!^e
      ze-y_&sBV(NCdnIOb)$Vk!`|0KN|ne~w0V(3<Sin@u}!qo8`{M2r>Ijlb|HPJK?+xp
      zPNUgF8gQ=<)W_}+lyYwi?SEW_eWa^=s)4Dmz;vR^gLzC<64#!rA@l@w>PB2H(TfU0
      z&%;}BrF1^yok@h>P%%lw<+!Z8KvGy9L6x6DQL2S$qwauxMkD)z5c`S__6<q)9sTSF
      zO~y}`Uvr6r$B)?H0{V#|Lnki&AJg@zolMuKb~7FL7t?KG`U@c{N(cRMlahpfNyeC@
      f{FUhtF_dY(#3+p5GRXjGM4PG6xI(K!-}&foR4pca
      
      literal 0
      HcmV?d00001
      
      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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
      F{sTmk=ga^A
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~d-5PdZaj0^)Th@hx^E`((h77rfC5|hn>31-2KvdfV)Ye(9QGh}*3<#&(}
      z5B>-sF(w>5dE&ot@dps9C!1jnXuM2Kb-h>h`c+?Co&N;z4D${wLg9n>Bue6QT&jl$
      z$-$-!l6<Arl3J@hUsiUuvttJ~VKRf?Mw$~sPRmFMzbPZF!l1FSMxa-O{%RQLSOjrX
      z_=)WPbu{stD$g$oJ@LNM`DMaLE$f}lEOUKT1uA|)7+bgtP-qhDYWPm}f@gbh(dVKI
      z!yY``Ck%IxjJ~qL57ty5w~~*0GTIh=ONQ0L7Hbx)ob&dfZIls;cZ~guMJ#vdy^L@C
      zdlQ=O^9zNv$Cr|5JF9#ZAC~^am3#3RPaQlV%or#BjrK5sNrGE{U2oKPH`lisg#7<Z
      zVb0qyiCXfdGTH_*ub0eFg0~R_GOGGQYpEUN*__*ZA&lOL?|dYf<~4Nj`?4^OZuD^G
      zq}jb(&g>@rw|O`HTp8eOg^?D=zQy8q3@#RbVCXajjquk^OJBLsF&=R4F^QoV#TZAz
      pLp*A?S>kAF_8G=cI9f1#GamTX!L{353sWg-8Z#W-ls$_%*w>jI#xDQ>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OH&+G7(Ew;bQqd9;T2FLqZtOxm=Iq~5+#I?fe9hJA~A~1%+1i+bhpzz1U9aG
      zq_VKw`UBkfsPYwvQe|A3Dwi%@x$<XNp4-#(OoS>I-S_tG?>pZ)-{b!N&(FUAIE{4;
      zbpjpl8k<JixZ|hi9JlOVm3CP}OrSYBS4RTvw%qbpU1hUsmp9gANkB{sw0W{*8rHHb
      zd8T78WiQcn!m&Nyu>EDjD$9n4fBpIQ7k_;4p}>)IrfvEc1nQH+%L1_pry%2~N2`t|
      z=mM=d)0VRV_@c39NwUj1d4d}Z!SC=e=C7NcKvyoJ7*Wp%97|TtEyFIR7yOcG7c;}l
      zDonQu(-lWA`Ze?k3`G7@CBt1e^WLPrX_g#&L)yNM;}{T#o8A>^6fEg6B5B{$@Pt5r
      z<hlQIaw{)gpBac_5Um0Yma!%+B_J@ZB_q&i6biGBZ{FT+gg`>aGkBKiaHUG>iK;Ah
      zkXGrRa5h}WCaXD~Wa4y6>KI0f{EE_FbR6qF(`QDK!&T?-l-AGTl!oV7s)%*?Pe&Rr
      zFzxx0G<+E)QD8L8;bU!)sR0j|MGhgWdYsYmv?^rGTX*gV^wq#b5;EDWDu=*JI$p*r
      z0vaVK1c9Mi{y~Vt#h=l@LLZOh9AwjkF`U;iinGjiem{GU^-Prz8+nUQmd`ee>~6RM
      zgVjVHL}&0Wk{-|J*%l@nlMU~4JOqYA1zTw&{ApUIznwl{no*U%q9Y5=Q2V}d4bsVg
      z!2jcD$T4h`il`=uYRK^$i_vi$GniF#a8016raX}WXGK6SN?VrL6SKw!r!eZP+BVj(
      zK#2c#_r<bl6=dlsmN)~hx-H_EN4Ki?8#-2Slh*@Nw`7~|mu1eei@{V)E2CRF-oo3w
      zB@EY<c7gMmoDN&ACT<vjZ9R{7bQriUaMX7ygRYXA*U^9@oQwshT*}MKrn*O3B7LV6
      zV=BzrR5)Q7o+mlk-G^rjCkR;2+p-S#6e@T9(6};YaN5W(p)N1Jn|U(IRd8)c?V{zo
      zz@&}uI01lbh+z)x+$nP!p#z;<6+jo?3Sf?w%C;*tvWsI6(DON(_At1zizgpe@mc~>
      z1`+b~Ed-d|6~7RZ2zV->FVske=(F@wk$Y1=V(1ZCQ>h)C<TG*~Lu7oq8li(+0gv*0
      zax9|<n>EaPBj%j25c?iI8t9WC-iwc*ad}m3f5q5XtS|N(n)_lS1A{-|TnyDX{XtSc
      zVw{hu<P);Ki#~jcA$%6ZJ6pkwR3&f$uLT+scpc+`<^(QsS5MzIOyClE2u$K~$ZI<I
      zu4tZ8n)fiXLa|rxV~S~*`j(vQ=m}J^`X#x1Ma^FyqF2@DdWd^I%w^{u=2tovcd`5c
      zH+Jym4pys>s#AcS8mP`tN=gkw2$c$wz&80FYq#RY4_NyqB2_`y3lLOe)Un*^EpeNx
      LnyVQ;Ma2FE{prK@
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3C0#Ii*F#PSmTfTGO268ECSf{e`MVs-`=Mg{?}Tux$M
      zy1su>R%&tyBLjDOY6)1OSAG&BgQ$k452}8kur(tCS8#r5QF5wVW=<+2gAj_rdLZ>|
      cj0}tn%s^K#Ffan`VP#+gu^8BaBohM%04;+lTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}&Bl5QWb`p;$ov1b;W~z=g!PF>2gsFdCvn4GVX-a4DCRThkUzd@DDaxbOjd
      zDC4w(8gVmc?&Ry7o_YUxeFLzA4HF4MX(aANQ#^#tj<0lh?%5^`LNOk@LOab%dn9`y
      zA$_Q{3XcfMdZSA)j=jFLki<d`DWnO7w$k!qGPb3EBWza^%5ASF+^+Cd^qvllaHs-8
      zr9EeSK*%~WJoUxhQ1zIp)*C<6Y|K=Vsg7{ui5g2CC{Gh=ztQhGv!y9}B?Hf$gfYwk
      z&Iox|1o4`d@&nGt(_5}m_X(MS(!y1b9FVY@LoEtuU3(M1CtE7YmY<z#JIY~fGMD7D
      z0w#BS53VM^c3Fuvwe^C`6E_K1TrE~$4+i#;<u3OHvE~t-e-VXPizvlfMkUrIRAc4;
      b;jakG{}?@E<*(6zjhuNSUa-b%5?KEPcP(c%
      
      literal 0
      HcmV?d00001
      
      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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
      BUt0hG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<&2G~`7@SR<x;E}lXiI@mehVZ)BH~=&5~)gP1QJC#^nkQUR`nLgF7~D<FT|-A
      zBoK%L55PkqX6*>IQHvvI_xm*8?98lx|M~d~z%$fclmu!=@<g`eC)0YX;*m;qeAv;k
      z$+q{@)P*Ckngb#kAGY2Mj?~Zyls~AcfanS=JlC-{F9n=>x6$X)PDaW{8CL?h2nek=
      z`W^(915~geu+r19dOaBrRQgU1A|-IOmkedpm#Mb(tm&9gX98Qj|ESv$@Q+h{B8{R}
      zfvV2h$@o|rO`g7tCM4ge7Yt|Q?=%jmn-=pS>Z6UtP-bBv{U&a?sGYODKh2C92iU@G
      z_Vq}`Mw@A8Hgd@!HXQYFA|u+UBqmg;wK|`r^{}5z(xKYbHjK6Nm+;i$1%hrItF#@-
      zEK`|_M*^Fd<ifyd%elwI%e-VBX=CTE0*4o}$d1Qq7bX4xzxkbS?HiW9uqt7N|I7Jg
      zhxk{-?qQX^YXurr^4Z778d(Luj&*FXUMFI6#@*s7*sC<ZV(FBdf|hXZ-{*8e0hrNM
      zas7hfAGk3;99}qlhYAW;FL;!7<u#vtM#VWT&l8w4X1sr9Jlus1tc3fy+6UO?>a!#8
      I5RV=2FXp9}@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4&u<bz6#iz}1qxdMks<}HwN+vLfz_j?7ZM|psIi8Fw*e;YG|Mj8T`*q#dGY4i
      zBexzjk(hY!5AcsNzM0)<Yg6N8-kW*feD9m@&5xhoz602TlYzmow$Eq0&7Vi@C&C+v
      zKzh6Pr5A;p55$Y^c;aSYGSvS8V#tp~I1J<@lD@}qx~IV|_jcPmk>b0<V9d6TRvr!Z
      z#W2#9TdI7UA$?bRGTLV7HM_?-4xJ=-|L3IDXD~bdNaT=0!A2fMI%sxV{Uwkf8y3<k
      zJ7Xh*tjbnwEXCPb8#!bd3O(tGhtu&u1W)<E73v}Wkh^^zNVQK6&1g@C4C}G1lMSUe
      z=O%%i@ko%x46Msgl3~XmPk1DWug~2nHK{a@Kd|+T!J5VOY~;uGlKN)r5cap}xgCER
      z48=XEG?$N#_l6o0gWdH!5p-N0h9b<M$xuCE)C`&AN8l#el%g+WqNx0%tf<`6k-XE9
      zoTI2vdDw(srtCcojcz#guQ=sgTcG4zU!d&N%mpe=&03)PnQ#Vbw61FGOX~27=I|N?
      zyg>zTQO7%~0oySb?HjZMt><u_I;l*lGIXYNDHRPhRZ^@nrOhJb8ZIQt9ur#QuR32)
      zo};2-WsYSPt8-YX1M`6H#>&#V%LlDuCF%1=#X7OmRB;g-342@b0gK2=pZ=oxsA-f%
      W1V|oZU{j+m;WEXXzJ3KQto{N$Gr%MO
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8d%TB^T6g@*Ll~SdG@7Ib2LL#s;(YPU!kf0`L*iXv@O6p9~7WoZ-#f33(;RpCp
      z#yca%z+y6U&b{Z{bLZ>(;}bv|rw(!q{**uSCZA``feKVsZ9B04*qF<4^FEl0FmsS+
      zD4Slx4rWsFAQlYyY!ao_7HRs+R+m(}ie!{sGgNA;#j_!U-BBY^0K<j{2kR~@lspvR
      zGgvj<Q0hlg+|8Z>kv#rREB95%;~`HXjTfY?BT&4R8PzsLu#%Z%a39nx2}L*3iCwel
      zxlYUA^`sO@C+2A?$fI;4!&s$}9N&s;qDBsm7&ey|^Khag7Uw+5x+>|7Vu2QIVbNIw
      z^L@PxeQ}OX0WPscdR-9Kj9YKK!K=Sx^VRfhY0gwg&0bI@?2$&Z6>QVZumgYL(lD5~
      he{o(nFA3?tjnKj_wdb&hePhRrEoj66VH<}y{s9JNWI_M{
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4&rcIk5dLOaSZNpAf|Vcs1S_F5P&s%iF=+}Wm<<w&^=KaJi$1gNCi}LaM^4=M
      zOE>_DG4bHRc=C@j%-b|wHffBPH#6^j-^}-B=Fi_BKLKoD*?~o9d=f{ZDUOq7*N>wh
      z*b||wwS8Y|tqud(etVGJJFp4$A)yn6iBO@8^Z4O4p{!-BM9`D5R#Et7XNy3u2vZEv
      zi3pRP2>Nmy)$_Aozbk8miR7cwwP%E?H>{GCZ!us~g(`VLm|Gc%sP_nVCwea@!PQ+9
      zP%K~!(=J@h5N2<%hB8}*RPy*EyZz6HGCmOeZ^E<}`7B-V2RI&F+D0H@ZB+4m7jm*I
      zA7qmCbU!lrmsjd(mM={)=(Y+}^0k@AwI*>74;<VlESZ-48|~sD9ubP&&i-r9d$-r#
      z-6qujrwpOcjry@KUn(Q6l*wN=WeM(1$dm2_LTjlV)Ce;pM#L@7^yhX5i#(ArUOWp6
      z7{>%hP8!`Rm(7?`-{vt*@yl(Fo-@*7TU>2?Lus|~9hJ)zbcatvhjoG~`>ydh!ClO<
      p<<-FaAjLXc^JZUR;exG&jC*>6YY(^<9;c{9EU_)5>?e2%`x<bt&9VRh
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      JgP9It>HoNPccK6Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#mXIFd+;Hv_PfWYAG$bAZfM5*3?T#sZ1M)CLsu3>X3}-bcKn|OtgLV
      zU+5p`gFe(Qg{7|Lt9O5b|G;11TDAL}IphKX`T*z5IeUNm+uz=2=l91y{tVzE?r2aL
      z;&;u@%#``LpDI?|M!mjiy3?6T#qvCRvu<V9O2P4h>1t3r&9jZIPa2Np_}%8MV+{ig
      zXF2-4lqmu2y6xXjwc*QVy=gIwc$RCM^|Ix9cEedUt~0Qk48z%m<N2oJ3$y<Ju6#W<
      zwR8Vdh5`SM?M+``7|ZQvpQih3wqyIRGn|O^GKiNM)NG?_4T9mA4jsc`^kGa#1moRK
      zt!&cVDVnn#Yo)ohX}Kkn)FJO&qe8?@qEFxQQ04R(l09N~Yt@pLIFHsWzb#Cm!O_ph
      z;sWDf0l8gz5U23GhSLmFhs({ab-aKx4B=w7kk93AFJuY~(@ztHVZ4iC(KmgoX!#6@
      zBWdp1rn%1NbWGuF7&C}#h>?c-Yp5fEBtwJ(=3Se5%=D=-82VyyV-PPQrD5*K<`O}5
      zT);(2cPU>mHu5W_Opf8)5$Os?qWUr}Yq&&ZI9%1;<aEsA72;@Cs|>NA^A4_D5G20A
      z)48hSRn9V0UM!T1Y$nIWxu)YaP!As`5yS&9yiE0O)AMboCX^7aZ|cZ!S9M{vxK5q#
      z@v2bsJym$B9(CTauCmG}Idf!9g(105l6$u4x>Tih|4NiGiIS?DPAwI@oU{gm+FcY~
      z92<^r)hw6id`m};7e2I`a~Mll;qNj}DaH)`2q(RR<BiMr-We{w5k?WK8cH;1+ED{C
      zI?5uREr$#z@ve?_9xp_JWF7;Kc=Y_e??sRbEYrl<YHsaOfWv*L<2H{GrktczAlkBd
      z?*Nxg9hH_#V8vf-qv=+x8#bQ|k=C%D<AfM=!*MJ(TQ@zAmw%#7q;rJh3{AW~`s;^+
      zlh6>N{UH4sC<u>?@IgrX5L6O8N;f0)b(!uIT89$J?=hN4?%?>h!eN5`50DX*2RK1{
      zo$oP(XD~@CBlu?}#2l^sPJM*u9@46y?fXNAuiEmZ`5=A2km2VOJ2a*e-(hqc=f6TE
      z`3SSycxmkchG=_*Z-dM9m*V6Nev)iQJ59+#`33#TuZSwY;iU2hrj$Q1tNeva%HM*;
      zgh+H=vgoIu$OU8t_v=`cd}hTrK_%MQfeQb0WTLb(xq-K&=T#v*5d8^D>jBrBJ6PTe
      z^KS=Cv<34v-jOhiQjlQ|k=#aM8*Az}Emgxj2jww_l>a+&8kRty0&n0wk;D6kG5cUY
      hv%W}AW*;2}WA=bK)dNOBRb*h{V_L(4-wbL{p8yj%62brg
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaixJx{|h5QbkD+B7LN<wFceFsBO<T`Q1477`K?6=h;G!AVo4HcDLhZw&kZeiY*3
      zL?P<Z#pgS}&wcoQe!so}T;kY4hhexBA0iZ=CY&$CyL7P2FtV{ss3d%RUCPKXxQR5k
      zdad3HhLd3Y&`?kGOu|e~83v7L!WqumvP9}t*k~u5)cr^+BT_{fy8-9p7lzZ|Kd~id
      zI#q_$<)cSenHN-#2#1J@Ip1X3RZ7mMu4ck4?uiyg=L}by$W0ulN<Qa86|v4&)7E@d
      z8!enVzuw04EeX82Ugwd#OEXDx*^j>{f3(NIutVDcJlaDSJ(T-!(6`owSKEQLd)Tk-
      Yu#Q*0i^}&gvT+{=l#$_(&JK?L09c8G=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5<@#Ii*F#PSmT;F6;J>{NCJ7DfgEuwYJNUb?=2QdVkm
      z2_u70a#3nxNh(B9N^nMEK`JAIl7<gLJ4nb{6J3Cjfh#z_v?w{%Ei(tGgBxOi9!MJ-
      cBLgD?Gteyz42(caSsB<sECzNU$;7|`0A9!|I{*Lx
      
      literal 0
      HcmV?d00001
      
      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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
      E4<?YgS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO>fgc5Pjp?4Y&?XKhn~cuhL4isZ=*d6oeE7RVs?OB!nxQu%(OKHS%ttJ@Sj7
      zhpG|>egMCKU&0Y}*0^7oi)UxwyqPy|{qxWF9{`$oT!BY;@<DtOvG{D`zC5z+Op5jP
      zXe5nM!$h{<^e=8J@CnTu#hvu<W2&XLWyU2$s2Q0lkql&JRH|R^y&%v_Lba1>V}-T@
      zk&I=q)BOGA`0KAV!lXS=W_^b+*S#^#Noz6uOlf7G6Bai9gKrK9ekXk=Z-XaC2r(66
      z0<#e!%n?@p;atjWIpTCzY58h=IFwmm@b-k+ZaQM=f*0Vtxb&Ss!e)7V*@r@O{k^nT
      zuJ)|3vL`K}vGKRdQ7j72Rif;1T&``oHC7_r#S$UxrQ>WQca_svy?CK*XBQ#b(^_Vo
      zL>MDY1&;_bB_9d(s}a{88LMpD1pgf#mJwi*vr3-bs@0sA`PpYLtBl;?>?v1z9H$yv
      zr<iVRonhuAFPi6X=pb*1z<Y~2=Mj^*6bo47NN$&+P0Z0@LE{X|-}vCcHE{Fc?O!7Y
      U1=+*Byy`w4a13+$Lssvf0~0>5g#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      UAJ&S`;3Ishxy}DCd=&Bj0Vw3M82|tP
      
      literal 0
      HcmV?d00001
      
      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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
      O7oRdOALakQQT%^r9QI)V
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO-~d-5PdbwFgOgbA|DDWN;t5)i6ci{V?x%DU^ZNKUC+%@(I!KWneJ8mS9&lc
      z9*k%2#)H4WKj6_=Jy{oUxlDC+y;t?>^?dvD`3ry@Y{m!(^<(u`W$K;FdVK2kH0MWK
      zyMqB+s}FPDec2md#|Q~Km*DN<<V|7NxJk;mM5tLVwaWWkT3whI`_BmUoG{lejCIPm
      zzRHIj^$&i{e2pLfCQQ56+HO50EOjnTtHiaW{zMz?o)T8KuL9Kjgs@#4@ioZo6bWV%
      zOkpuaiW`LW|43t@El*tNXu}7?lS3|hN(>+@c8Y<BSF(cSqs!1sBs8y>KWW83-OI1o
      zom<;=%5j$+p|M@B`kZEJWW3I`d!J2WTYi!C6gP2;kaUY-Ip96*RnCu}>4Eo*knS79
      zWjj~avW;<17MV1YuyQ`+;#=dscsC`#Nq{v(n3gQAvYA@V8(N)1F?3EU^O8LhWFT?2
      z(fovkM)M5UKUSb6`6j+ZKM>J(EK8mWNuXH4szmbZjM`)peJyI7VeNw)0{8}gKIrEK
      Vax@|bxLu*{;I71^qHl=$@Gn*UwLSm<
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cYflqF6g|^7rOTs$h=PDG+VWVb`l$p1HAa&92$Cjz9JbSTNxN&NyNJKVzu*T=
      zL=sK>0sbiCooU@&Xg`{!^SE>F<D9v(zyJLB1z;Ob(}*$5o$@no@(-SQB+flwinrW$
      zyfhLFQ~IdGotF9L<WyK>O)*Ra4jRdj_WF(tcWS|z-Q_J|?)%NAkfL#*b`^#ccdWK6
      z8E%KjmT<e~Aw{P=9Z`O+U^}*Bd%Fxfg%CF?Vt6_frC4W3RNaQiB96%%#xcbZFBI!z
      zV94i?Mn<h>a~MOGVX|gB;<evB5%P$ibOd2)uEjfbE^W0R7!zLG?lH`ViKD7f>6w=B
      zG+Tz1LNSDms-D3h^q!VP3Ba%vbs3^WcuNZIiK^=;%^5xo=~Hz(u6#wbJC!hbpl-xA
      z6g`CNqrGO66giUI=`~&1jd&gkry->6v|du9^ePdOx*-O|Rnk~tSZg`H88n4jlp9wX
      zZGg^V8F$qs-D7A+NL^7ktnhyjQVkNbx>tI!e@hV!8FCGAW?N$4^_>RY{OqVA7_xp(
      z$bXpRxl)W_ImC{Xlp)zx5;81=$ZP6SXHt*oYk1G4aIBBIix0ARgmN0&42yxhBYG@{
      zO>9wl?_6J6;)SgmdpauWmh#3by@WXZlZYX&o(6p&^6FvGoFw}=ax@yWJ0?V&=E>3}
      zCQ9oUm@aKxVCE~CVwj^bj|7d+XxyU!`<Or#H^{Qmcf&kx(vAY?G)%8lq8KGuz^y?V
      zlV)|6EPccD7h3d#r?j!A1FDKtb^U;JjaVd$sxj(3bKSW<(s>DY2F^B8^aG5aSUxUo
      zY%U}&v3fnosSdK+2L_Z3+{Xi5m4Sy?qnarU3PesRW}t|Y7RSIkHngsEIfJxiniZdn
      WBK#fZXIe)&dy%p;0q4gW_2e&;!eZS3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm+e*Vg5Ivj5Mq{*ETklu!q59BT#0RMe;su0yffnDl>DsQwEF_ys|4N?}AN&A6
      zN}R-q5g&GE&&-*bGqWF`Z|?x=*sx$Q6z}+e*Z8BZwUzSjrQWPtFd3#2zsLPv?W%Jp
      zTx}uGu$p*7;YNYf!`gKq2htNg(LHjtR6axgK>AW2GUO^-Hw@;n>Ixe<j61L}%1~%Z
      zUtC5H9TBv7#}g!=sa)>e@Ib~mb(*>_LxxiGzq$t14kBt*s%(9SGa?%{W>B_JVkrL(
      zaP09gY%1OrfrDAhQEpG@)-crKAroU*_){_yqNa9BMS&~MXkG><T~;-2Lh#)8MUe0X
      z$u6AwuBSrj_b!C)tFDEWpM_=??O+Y-4AUg#MBMVo(`nJnXc>9~JD}0&jL`QPbZDW3
      z#^|+6mXRIVeu4d*gdMu=m}cz3q~HW$=bMB{6bO+dOw%0~sFIBfn6D^4ku``5<YS+)
      bpUE}T+#Kc;)&dsE+G#dW#1df>%UJyarJjcJ
      
      literal 0
      HcmV?d00001
      
      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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
      WZ}8h7%fsXcT|?iYc?|F3cmD_OHow~d
      
      literal 0
      HcmV?d00001
      
      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
      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
      EA8XxmIRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk1Ne+TQ5Ji89f-|yk;SF>n@d!vXG0p<+ThcKa(im(sUd@FE@KDBXRxDo)?^k_)
      z?+<_p919gf|H>ZBWl!mb858##%eaVN7OI3^(Mp&&yW7*1$C6-fciujl5okf^_^G%{
      zCghPNIX9G)2-b8FuDxKXQR!RZ!P^9@$e(ROT`~yvnagq(!5EH|t{J3x7W4Tf;RL5V
      nG1iBeDinnR1JqzDvUCROiW?<vDsGjy4N}i^(A5XRE_Ql<bBZyu
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+int36kP{~PJyXhdXsu>3zdsPtJX_tObFEkLuw)j+P6~}^%$Iq%%Rm6|H2r5
      z!f2yy;)5UH$M^}xJ;N}R8r#0inSIV)d#}CDI=}w>_z7SI>neN<i?8?&FYsMiXbPik
      z?j}pEmTp;MyQ7zy_5Pj;g(2f5mQ6!)Vd&k_TyL8pYUy3UI}N>S3DbB|*<fG~873&j
      zlH8CD-s$OqwfDb2KK=Y5$uK5g3M;wH5UYA!`mKv}xGoGK?=eiJ|2fSx7?iTv)`Os~
      z8bSz%;7448hDnCmLkN#v(FR4TG{9!>^|s!vbDEVQUNu`pnG<n}-A%<N#*jMNcyw})
      zYV3tBhx$D>?Yc|pjDvn#;I6WwBjmfnXkIahbGV@5Ji~%5!SUG|F5(g?)2wW6JZdr|
      zPt$>6dW2q0a;evJ$&fvf;vlzZtGlS-GUh`_;fjhS((=fiX-Ff(FfOc8ONt%Rz@N@+
      z1(Cxw6<1x${eM8GmxeqFG-0V+uQcutZr}tEv0K3n71v4i<3$|Iqv0l2i63vb8Pa{X
      zoYW+<MZ7FqJaWdVAS5#RI8-xx-Io49*scioJ(IU-GH4Zpo>RHQEz2%CIrN721~E?#
      z_tV4mVGaR|QKUN2cr<F;p8ow%$o3O-a)zQ+%Jk71&gQ-&lFc0;_SFGQ(bt9p&oND3
      z&G`>w2D20~oJGPdk*C$pQ}!_Tg;pPi*v=uW;$g`bF7}z*K9N1ZLN)shk$ogTA)MPo
      zb|1^l+^}Grcmr=}sxBh1h=z2E&p7-OZt(y$zlGaW-iJF5nY&n{HRO;?p$O$KT)#R;
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g|@|EL~P8h@eoQ$^!jR(FdQ__`oX3CXJF{YT#|!4mf5z+w5*7CcgXi
      zYcw%UB=HCMql|Z4-8R_-9%k;nbMHOpPVV{j`^QfJ4{^^#fnoOzf6Mpyd9wFPs$O{R
      zq-H-z_J^mZB05SUo`|z|CW;JBR_ulSL8ydEoLnWtbn;rp&I5*pR@RWhx|Dn@l}w&6
      zEZ1^b|D@h#D0*Q}l)x}+V+zwIt}(1-K<QW>AMlP0WFkduVxD0&EAadLOibo2%wfTX
      ziABP$5k(10ST=Ekp_X;!VV#3O4!lq$^vl@B3U1Qy-it&3*;9tbc=jtgT?;l=HT@cc
      znD}#UPIruXS?(&ndfS45b<McJ@MwZDTbk>Ssq%2HUc!7!D)D^S?}+Fn?*xKju@!cC
      z(B_fU@xRBSUNu8~jCZ+=NC1`^_ES=7WInB#ce^4GT4z0aIiZrHa2R#Pfz-USDdK&-
      zDhAtEN<?13<5+LLNt0$fObZ!SQYWWOR7q3@iJz6rT3OnoV`7GEiM;o87s>84n%`kH
      znw1OK#}}A8ULT?S-+sgO5pIo8`AU@qY|_0!7%;wI%J=}2&W!O9OU5TujL+C4ze+XL
      lzsx(hjXM+(2e#l)zxKB2807C#R6q@NvKGxmI>TKQ{s5su{lx$P
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|-A>d{5dKbEC|jz#i+~6#pe(pQ3VPvHjfqxBnry@bvIOtWE(bWK+iu#f=*#%`
      z2AY^nB=G@!DB~Qf-8D_zi_@7o^UXJNW~M)We)|sK0k%zO47FGMHQ(VE$<C1sPQr_7
      zD)xNYe>yll712Qw@kE@xHDNGpW@tC;^}|2}Ni`2;m`=`RT)odwZe<ZEu|v*BGLXq*
      zhJ{+r>($!~*6y3G=qEA^ViU83%Q&7K9cDfT!wpYF0Ss4dOkvtYiD4zfrscc5&pXnW
      zi4;UO$FQ6MydFOj<9-We%-b-rK-{&L^>zW*al^#Yc$@OHzdPWDK|<Y#Z7gGj-stYX
      z@OGauG)7OH5b0Pb;-*T!${@yCldIDiasJOYDPO&9LC3nvc#GlTSjKF)jyFn`r*qV>
      ziY*z4=Yw8HM2EcN3x>H?*yVnkM^f2;E)BI2|FmPmzR{vs!JwCBrAX${#X&fTx?)eN
      zG_xtewwfn{?FE5|T%X6W8uVQ%EE{wRWLQd-{K8_LmPn_+f|W{Ylaxls#0)ePNHfT`
      zV3QV+t&m%d=2u*4G%J@V9$%t-Yz%Sjul$0=Au2<xeI}%a+w@%}Ht3%)rN4toXGVXI
      rdHn+_`bVshzCoBp!V)v8*d(d6E!?3y4K=bf)X^YmQ7sHj+=KQD11tvZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmai534B!5x&OX%Z<u6qS&|SC6C|RtOn``DR02^5i$ONo!Hr3B2_uu4I5P?2Qa7wi
      zU2Cm^YpqIMs-iG}SV670@6~FT=X>2=7rWTa*1p#F|IWEH_fD87KPPwQEZ@GJ?_6K`
      z&r{D3(PZ^@h!oS{bE3V`hUmsj!^&8qBe^j|HdAGOuqBzuL}Ljz6`}!5hspSP4bk>?
      zH=T~P#p1EdriK~buei%JB<-eR(fA5Cm5wD7%UfqL@jRx10F%x{6PXp!c#m7sykYZC
      zN0xq;z{JLADiKR`F3qIy7l`L;%<*WVv%!otG1Y9;lr7buW9Pdav!a=(hXU|hnMwdW
      z1N1}JCEI(_(YCm2m|1Fuc@0x}G`=yqDZMDMEZNQEBsV794znnoN86K$#T!<*?U`f>
      zXa^az^JD3Z3jr{VGQ^3j++H`4lUQy6wp5udbA*cAFw>F6_Z6)2H*1=|baTNfY_9H1
      zMZ4F>+S8Eqx>#pVDw=@;nCg7obBnFO){^vkNCUbH5WfiG0mnoA-7U$k?qmX7V@GAe
      zJuh>%S$=k+r>jlY4wx28#4^oH*0}L2nCzBhhZ`n~#yB*ZjwmChaSk~&P`*VR8bpKT
      z+XRP(m~WFDs-Q|4JKCWtstnOFph=rUKrdmMOk-rxaSjcoYWa4&LnlxrQ>Zrvn~b|M
      zHr1gf85^VxqGeNi++C7PW<oR_qRJch%w(#=P0f#PO7>*JG>yiDvGrt!X3$Kgvb38q
      zQ?S5sz97ulf@mVz>86^-uL#pDniHbgOtpEyIZ@9}^u|)jL>I*7&|EqNkU9Z1*&dA-
      zSpsd18}B13vZ6_l&2#8fn$I*0pk}%2qCN4<()N_=CT6+4v37VtO))5D5&#y`;t(xj
      z8h#M9W{E?m(GpDi(EFIw=wjdt)-;I<mN`^QBN1TcBYZ5>MzTyiQ@l+Cup){`f#2Ss
      zomn4)Csz3Uuhd=-b7KUC!~F4La$!0mprYK0LZU=fOk<c-XFFUquzpS|+U06huBEmR
      zMPWC2;pjPs+C?UZKqf_D3t(65d>zx20AP=WgK6(e8N5&;QVJIDFE(Vs3lD~9cxe;7
      zafiAH?pqGxmca}l+zqnFvm_l#7qy*(sMZuBguc<5H9g!KkGq}G_>5F%kC^D}^V;2R
      z2^*yZLWXIA>biQ;nYu(WQ`hF!C3@oVFeM4bJeqpoNgiRra6Nv7D1W0v=g}qvh3;qy
      zko!auFQtH<3t+82Jt=ox!%8>0VTrrW#kO|DkMrpwLH3nC$UKHb43p^+hc2bd5O|^;
      z9sR6Z6Q<4d)ev2g3n_-=O$hB>4qZuC!73rYrEYsq3OUX5Zl;k1V(c>wXS#;24bj(_
      zM)*whS>(`lLR(e)dbfQ8a?gCEj<~UlQn~>Kk90CA+T9&@Gb>Fl6jE<;=<9T|QR?DU
      zvfE8%Ak8tw<ZbLFsDd!vLbrzKn_j-w$-SuAI&_-^k}~b;5<4V1Y<1{%x&z@<>}gXs
      z{1pMcwUq8c0_<!z_5fR0mr8ckMeEW!^3-*Bp@-qZH9?9B1qx@b1=ym*w03pFxGeg%
      zL*Ei-D}y!{CNr^ho5Y|VaA+HS2Wh3-6)zd-dx;D*<g?Ra{DNMX9&+emdW0z~Y$TKM
      z4KcC8oH`|kd!tzWC_Nsc$8x3-m~&`5J%MTgOrpLpT4S16#2@?6W0rcvShT~T`{)Rv
      zKH9!PnB3*iZrX$TCzhTSOLxbkn@nhgs9~y1JLJ#P4t<ZF0a;*SF?_>KrQD9CD1hLc
      zK}Kf9;Js3BX~y?E^ejCG{ULvu#lr*i`fE)H`MyIh2xX<c(Ri#w7g4s<0}$LSw>#yw
      zV+c+)Vo6UT12ij4ik*=_M9>um^gS$~Z-0-b<yD7X6X>B#at`t!lB`8<ICOxH5WjuP
      zp||NB;ErWn)GJBoHP4q$`K{h~Q#t*B-Vf1x@KWt)1+xzQP~x90MM;Q0%w;z15fV`X
      z(c}aAu|q$R)fQwbGX5`zJ`zQg#nK*cGWtIb{fvHYd_a^4(+>)~h{=`HFX?|n^s8Jv
      z6C*l!nM1#(-$1lbjfV|%k6SZ-g)sO#hdvfz4M@3N$zE56{@~Cbg}TuCXnG;o3)3g`
      zmk|9K4xr^ASWa~}wI!pe4qZ-qfy<%4(%<0zV6vqLR+GpSTg7yEkgH-#pv6z<Q-}UR
      zF(?OQ&y6SBqH&EYS3iq;e&*0&R4JnSKZpKJ|1tH0UbZY1?Zt5*8eg1@$J#gbL0W7{
      zQy4j4g_whE7F+1B#WrFq*lb1ZiGxQz4ls=kSiP5r1I1N-A&?E=(h!Gowk0yn&pKQt
      z@*kRV&+T#38BIiM!hi$cT<*{?8ZO@kIy{I<VMzLDuppY=P=ZsI{5v_sl}v}`6&5@@
      z%$9RRm@9ZFvK&|Y*-NPKsBRTceUyhge24_J3UKR{eO?5U*+U(!;aVe$r8=!?(5Lmd
      zJqQ=WgL?KS!24lb7vfRamnYAkcKC1}4UW2#>5Lu~|MUahjFrpuC<-U&3s}6<LV<Hi
      z`G#N;>N53m!6B-s!AZ^F8A{;1RZRN;T_Hyfs9jHcXBOr5BFp$>x`Csbp%)ck1|^br
      z))YzSQUSbieM}!)c(TI{I&^g)J}1*ijm(qf&v6bPqt7#Zyu&B(i4ahG?ra48o$h1K
      zTamW0CWog9K*zXuKDBYP!za;T<oZM&PFfI&=-_n&GRc`bYcS7pc(%lkL2$$w{&6<M
      zb5Wb-6{y3GpMc7F4!1fyla9bQdex*8uhhsLyYqQ5SVn*`n3}HDMY%Z>(&{y%Qs?tx
      zhfm`rpffI2Jyv>h4Xz9GGF}nl<+&6am~(g~FEnY|vufZ4e~4RY$q2#X*No{x-Qv?7
      zUd5|{7bTls88|w43z1sDfoB(0IR*l*h0}?*!0!cs(SQy;A4Iz1c85EpFtXD~!6?#r
      zor9CfdXO7UrJ|eKlidhz5zj%iAiXNJHIN{4LvU(n99@sDF1JHY`;gngXaQU2WwW3Z
      zM{P7vV#vo8D2@ziey3n`z&C?NpIZUBiN3lWK39&$0~78>?GNaQ#5aXex%Gq?Wca7p
      zoP#gG2{YCnMXj7drOj}!v%d_L?*zpu`I31kE}n0@Aoxl?EM!;cJs$~EsFBLOa28bw
      zPN@NT7NsJ@I9B+HwAdO!bBV*3GD>(yyuqUi2<CV)(6+1vnVW11=({BzO{bf3q!d{j
      z;>|ese;KJJpBg50u*=~BA!GaHv|y!n)~g&kghqt;n%p^1oFT|~!IltT%XCyfv=yvG
      ztdfR-A+Vq~^@Ri$tkeYF=+L256XLJ;M_|F05Pze80t;4xz+rixDImSDQs`F}5_Mn<
      zw}}UAVM_Gl0R^BvL-;}&HwB84{*j|#-MB6u<e`AO{&^@^=J9Zs@NjqkJQVIJ?y7}r
      z`r)B)k?@cP4<my9Tp%wIFphs8i+~GO6#$Y|I1YX+EaZ-2I^2G#uOXZ+jddoXnVuB#
      z)YNIqrcO2774gevPr*LqY0H*1HN%zhko5ep!x!*{IMMKTB|vOLfXKxxb8PnVkq<y@
      zP$$lO>kG$gul*G~L}@+@Hbi=<KcboT^*Y4pLo)B+Y>0PaE}!#rq1xeHlA=oBi><SS
      z$~_K0B~?c_mdKs(gyg3kenM)yDqp)f5TMfOP9>$ouTct={SH6NI8#=76UNW=v>c6m
      zAVCY((>hr*f8XI31i<hD09yHZBriJr(!p!A>b*4<zvA#SLbv7iB2}r4uGG%ia=wV)
      zboedVJ$R#T8_sCY#CqlIDs%5R{I1M7X09cUdQMNg=kWV7G0>mDHH2*Wz~K*Nrozn3
      za-%_jKX&*h1+%gCWFodMW}yC;!yn14M@nmO?tdKqnap{lEb7M90`hrjEUhU<UGWM3
      z(&1n6*`_uzqboH}FyB~O%gpVNb-!`=x3W(91Kx0M;lSLGSN!D9)e?&Wbt$0y!QtQW
      z$Dl}am~V1OIA4Ime~H_UBZ>yEVMz(`XNN{n9mIw@&7YBDhHnWz5~*~8-B!;oq|d>h
      zI{XjDNws`^G|>@v^%NNL!I;IG^QCA@=u4t%pcOxoR^<{mj%TmCEGg%>e>?mc?Lm{A
      zKX(*vw@@mBjTSKArWPk-(uk}KmVtV#sZ3d_B&2YX^xM9A#!&+Zg*l%Grd6q<%H&tc
      z##l#Yz3eG>l%waRL!|~eYOwqou-=VzuE(KnfU0m*rMRP1p(|yV3=VZvwG2veeTrF1
      zkE-F0Iz)OsqBzsdm)?!6Kh#k*!ik)6b6hV<m^Ec;q#6`bhk>npD9CqsWU>@OR);%k
      zv_cFh56BICjBC|JD7Q;T9Pw~~D7sGz+6YMIH2pZpwHunHiJ@D6ro|MvD9YnUAQ@^J
      zXES@&p?QVF1{|^zMY25(m`hay(@Dl)Cly;a75!$pTB=K~t83E`(si+PT^xa_E(3e1
      z!*vwcqg^3&45E-0fDX1^TiZmAd{0|VVQTzBbg(X5fC>)jcT3#$`f_14nKB`DJg%_v
      zVm6SDG><v)Sa%_lVb#b(Lux8AbMY-R<C(rYPE^y-1yH!63Ldi!hNf0@iNwrKa@5Ic
      z229n6#20Gdv>fZg-Bd#%_@<C*!SOUtjD-7~Y@ket+N?*tR*sW_5BKnK-uXpBhgs7S
      z?T+fp-<XTq7VaI+gG!gGR;CjS(fz2kJ+Qqlsjnuq(B*bPovIdu)cjx@?O>daS}0wa
      zL9z5=Fe<|D)`7tWWY8aI4j;T1Rw*46GZEx6P{S0JA3RXn^qZEr>10o;-JRJZ5ewM7
      zpr>ny!bwSfYK2-AQY(W8jeKZal#0RSbR2WkYK2>B30Hwprlv1~?uW@@Af-xCXE^Fi
      zbr#AgO?$Cra#Z>fK%!!mYC{vtEG))qShcB+kU}sqHs+T-^OI5BvO3CDxE&iR@lE%q
      zTI6J8=0IL9D)-&i6jtliIU$8ci0N<?!R@FG3U#Ff)SOaQdMs&h&@#-!E5`MHU4^;c
      z$U!JQODKX#i!|Y=rD_>sVybN+?hOr3{!0+J+RLC-%QW8OssHySyrpvRQE5kIR1b_Z
      z_i{zt%|jZi#s1}RLJF<6Bl0fpg(#mi_`Delt6sH9?$u(_w{9!vtJQ^$x+qZ6%$1iu
      zOix*6FLu-=fs$rE3Im<^kw#qUua)yn>T*YImNk_dbsW{<w*_&!Qwp34uX6F<%@FIn
      z(ot85Crh!R;rY{gdr0A+>c62f3$4B+E`x{X>W)6kQ8{>M@;Cm#oLd|i8<E48ADe;O
      z#&qEogejGBca=!ZsL=vVH-#hWu)M4x+Qn|FD~8u%aDS@40jmIBBkjPhu)2xR#lJ?~
      z>ZsckjyZ$%y`aC<k0)vG>a4+^L_8^_DiPcrj=EFb1zE3)rQF;Fp%J!Uh6Rm(ja)MD
      z9CeSQz9r{@ik@z{?Fo=pMw`{Q9d)0&ALTV(h=3y-Z;vG#7Q=xua3eR`)l{l*)G1$x
      zU|lDj#*+>Ys|VG?A@vXfq!vfvdPhAXSH+=j0TIW|i%NH)*zA;7YCwQ^P)I!vqV?VY
      z$uoOmam0;M^@JQ8V~MbOOhm_Or=zlJmnoH&Ct_&K&riy`L%2Jehec|Sqn=WG;hzY3
      zZUVMfJ8qum(g%Y_e0fZL&r#1Xa!zR`X<`KoNt?AC<Yp(t$^b^HmNllSUrJ=Y*hDx^
      zsRNGMr}kq>MqikQT(d{~`W1%`mwSQmQk^yC#3W~w8^f3+JVO|*2?#^SLl^0*s))lv
      zK4!~7Wdq`(nK`%y0b)o6pAx)nb0~$V6yM8mBcVXFl6P_Rcf5(CpLh>PKk*ihe&QV*
      zJTH^iZ1fWs9r}p|l76C3qn~)oLqBl=gy$u4G{Ey3VH?kB_~88?U_KJxwu2sp=Yq&C
      zIx50DX>7#WN#o^DeZ<~L6Xjb&WG_u#y^D_BNmJx^qs*L$!D$$5&eBP{sbzkoK1;1x
      zTCkIrZU;a`%kj5Sv-B0RsTGXQ1KSJnD$!!}yq18-<unfDO{B}|7+kSWr?1isT>a0d
      zt7rxG4l{(&N?L_qGa#PTv<74g`KNp2&%qiYKMeBEh}0M09t75it_AMvfcyFY%&-Sj
      zY~@VQffEH_p5?)u>4_v9sRv7E@1hQ$A5jz09e{UdKkzzfy$3H=6y7;S;5`g@kMs*~
      zl?QK~fyYOIBbYf|s(H@RhSdw7tACLO?xp1F%5!&7dY=fQw|)mr*-PiI#;Oambn(iG
      z&u^mv6QAF=n=W5C@c<2-7|GJrTgi!3UcZ}egyJV0py3m;^o=ZS+2TRFQ=m<Fk*Xrl
      za9+LJs5CM`i&{}R9ZkoAm}BWU{WNM{0vjcI3S>Tw70<wq_rXS=#g*i9GznvkxN)9J
      zFVY-(i5Af-w3J?jB3`3TdV@C5n-r(FD22P|9(=!m-i49;K#M107|*NkQtS}%Kp0w)
      z3Q*_L-E@yuJ>FXIRM4VDNK_HoK}!#Sd^{e9VD5b!TMfy^T0VeNeh5qZu}0@;&=np!
      zmRANmfD3^@&>jLv_rFMkBM|0;_<VOK-4D1=`W92EN&Y$D{sNZ&OStT>0<aIs!`_*P
      zodQJy`)I)Kg`(t<rR-K1x&HQ~!5IR&rv&fbEbYVNc^~Itz(({ZyuSAdJnhd20Dl4W
      zzfnDXN)5O=7Vk2=9i7LIR{+4%i<luOg=he1co|Ow3H~W~5QrZF&4$(Up9>NI#Q52`
      z1=MBfm2EU1?7xnYDOq}R!8V#QVGq5_w4Xk}e_8s`eqyn{;S;m;(=9X%kN>v!&@U8T
      zCMm<x-{J+tJ@k8~t)IWVoBp(50)YM<(EhoVR^aQu7V=aZ+rwhKpHH<%*axU=gq`J*
      zm607BevyXY;SA-$7nglw3ys>#6{{l^^wKV_np(1(hfN(YVnCKhj3~+SNC{#8tQViC
      ze}3O~h&)8^(0gF=J-odjPh%F>ATS_lP>5|B#3i_=3DGbv#d~yRbR;`84wuYF^I$rb
      zD`*Z^(mWnYr*So%#kJId@h%=k=W-qO@@Tq<kHnitN8z2Pv2-<$qZ>Iww{Sh(&Xed~
      zTy8$blW7O;GI!zmG#^XP@)TSTHqu+b{{f$<)wV>(@DDw;9gWu~j{sB!PdW^cS3!m6
      z(%C!)7!)$aLLSHCF?I!=3S4zi<J0Jf)bj*npl2z}6M-3u2JU{9Pd@@A2{&sYa!>i5
      zZkvkh_AsN{k)qoJM#WZf6+f4ge`FUQZFI0)2m4hB^b+)q4vvAb67EYwJPXv%h7RV^
      zQG5!G=XrEIpNi(vLdbnKEybGC`84pqM9ZoUoP%ypR)ew5$m%HUHnL(!+jD7N2`;6E
      zxHXdHV-MnWY;j)06SF+!Ak%%{YTkyJu!9>%9+Ty%n=P2z4xaw4&;JP6Cl|5Qk)EZ#
      z0!v*eh6>Aup#u2GoQOm`<#Z$63=(g~`(*Mo;#q@CNxTNHiJw8`d=^#l*)Y*4#M4F-
      zxt*r)I+}{H7LMVC*K=T=F*<`c&{|GVC*$QoTt9B&6kUktC7gzNX6Smr`X+DGVr+(q
      zKrEgZtMH1T5#xBO@WeQqhVu*rc?*GhkTx$dxiW2DHp~lG-Co>W1DYka)kz3BKs9(Y
      zY(YG>vfLs=`+3eDK7~=1<hUCqO5w|({LO%U1-Sbvjbc+Fm>5>)QO5FWlZR&xo`Oe$
      zC-6WQ9_)ER*gEF(jeva<;C?+27l-Cy;+-`Q<|GfM4F&mmL*gXyU4gx}x3_{%<@w&;
      z25)Z(2pQXV^MirSB{{^r09I{kv}xYvN?6XK7pZJFFWp8V`Oz2BlL1JTc}TdG_aHSx
      z{8GRSh}7@mHNKE_S;H?-2_Mi9OzAbigMjsX2A?TZ@L4b<L)9@JRgz45_Y?P}<&^*}
      zrFmM`!Z7uI#Iq8eR4&rKwm_1~lq|P>4+%nlr8lSAR%6LFI(h^$M4ucYksNBBSY5KY
      zghvd3Ji@XH=|dhmf4o**GVz(ask*uZAm>lC>aA+z0CyXeOq@SK;{Jr^_tifRafDE2
      zoCl$thj&}$X}oGCUV|ro8@BNS1f2J&hJT0<`vD!!KcYtdF*Wf|XfA(*5c>hG;-4Yt
      z{DNHmC4&90DUE#>@NcyMOu)X#6M#z&ULiRLB1l8n=Gz76i<@tic++_UW-S!*tF)Kd
      zD4CXX9KKb8qUjLrZv#L>7kt;KVFgx;N{7`;sbKHqWJCf?{ccX}<gl+|U5D`B5G6i^
      zXa0k#(U|wE>|uFT595ufQSee2pO?om+ru$12YOQhXl*^pCP$S7Kn~1<9GC}*`#F#7
      zSs+>*bdV5R#TV`7i}&;8z71(|(Z9FV5DMWrPz?&$(;yG_;d}+cfe}Oy;+0i=wTAe$
      zz7T5xaU>wt0%A>3h}ZG;MIhc##W!h)H}{1&9uOmdI35tk6@kcn3xCstcvewmT?u8~
      zx|6T;m363uTy+c}PoXk(91T*9REcM`Iw2t8pwhOYz83$yo$vTUTsHvMojdu4zPM%p
      zR|{~>0xo1&Jge2*esJ9b^Aud)%JWrVAi~bQ1?(6DSqKAJ6aX1CkR18<<;gDqDOBHI
      zK(zt63Lsba12RV?Zi3-p-x0^=2lbhEEo@I*rm`M}_W-g_mLGatBH|;WTT35Yb!t$Z
      z(Cd2Ohy`%u;wtv@qx=};AiGQ|l9BC@4asG$r-#!$Y{Tob{Nxb#9x4aE-3WTm3(CE|
      zB6Oxx2`Hf(rgSb<s5A{znE>kHd6ycF=zy>WZ^rGbhv+3Bl7eSl{j*%Lh0dto&lL*<
      z=|dRAzXkY6W&bulCw#%@WX#Ful*oiE@7snm4xR{@L*#it4u7EgWuNW{PSK<;fv7Hn
      zs4k~d)U~ugT}O-6jkFx?wN>h7TB~j&S8dU}n6hkLo|kp}s^-O^W&9dSQ<R%>x$SZF
      zZ~PWzT_=I!09^%!UKfTg#Yeb#1D}ofwBXZ-&pG&<iO+a^7VAj3hu@In1+ogl;vRlm
      ze$4QG{6Kz8@qYYJevI{g{78Nr>izhs{21u{_-_>`Pjs44_k(%BQ4dkGdYERY@6xI2
      zQCg@T2lLzMboC^d-$CnDmQrdL^{72`v3iOwQ%}>iYJWh%*X4zB9fUFgB4GYG?eRo$
      ziYJO8I2p}{9DWgbfJ*E~tVh7ANm|A$UWG5e7Jxd$gNg{PPX+?@fBS{{>wchq0H_~+
      z2~^x$d$hKLA~DA59IZIY!PP+Z?;j783dZJt1<=2S-Tw~3=VPi;e+bw~b)NVNkN7gM
      z@kbmFkU;oPd4z!qi$C#Wv@Xv;h=1hGRanG-;lFy+2I``n{E2VcTAtP*DzOF!I1kiC
      zy0<3sJRGT2kvTr&$c#QjzS7F_-+c`kdJZiP4Nm<}t#jO&dzATX;lSJ%%=jW~G5;&a
      zmf8#z;M~r=)^w{G^+6co|G%v?0nHq9!uZeBk`X04l#1+7p^|vVboqfUgBpk*&D(ft
      zeO3)=wDGs9u>=w8!K}g=8b3#1&vf$)H;=3?Svz9D4pn;}t(NDgl6Y;$om5jRP&;m?
      zf#%EfZ8X8cpRu*o_F9?Jn?`+`%4Gl(gY;&-X}X3dgn$fsvf7r>Z<AAv`dJOUk6JWH
      z1K>WY2y8^Ss=b3s1<_!@)zC`fYo~)q4G!M{G5Q7j$JE|V6?(qf?tmQf&;*tlnvUa~
      z8dzN-(|1v2;1^(*Sj~~zky%yeo6%MpgS;|{l+{4CHJJum$I?)13e{N0(KxG-POzp@
      zv(-eitZB5sYNqAZNpz;wLNRL&^;oCSSFBdL$~u*<vlh`^)?#|VT0+~c<+RUQNpD+g
      z=p*ZN`n`1~ePW$Of4A1Mvf8-9>f}+@dY)*V!zWoAc$U@0i>)M|Wp#6xmExq;%RQDk
      z;hlm0BdjDBe7IK~Np&zl#TkVcE?~+wr{vWN*wautQXPfkxs4)Vq#C2fqB3pf$tZnL
      ztl@}Vk3vYQ)df6SMN~Zs8CDb2M9-XeVn)Kk+#35{8YCUdDm6*BEVJt9tr$_0F>>rK
      zb=*E)uvay%j@0Z@C!mjHuS6RX(<frY-ldurpaZFzCD$H_j^boB6GTeGc@hrEWIY2d
      z?4u#pb2Qv~o<>^-=t%2TnryvJ$5`)BqxCM$u->CN*8AFlOhTHQW1r@t`WdVtAE9Qe
      z8GtM-pw*0uh`=NRoA~(MU{08s-Ip0ns^;w!-9XK%d0Ws!&GQ4wx1ks5bE8?w1@Y0+
      z;<5e!7XAnp{tQd`3yrcqr7_k&K>BB}l79uro}DLqwnsJyQj64LP4;Oj*8=qe$qv=r
      zCqCMyZZ|bdE<Uncsse}~(?k-IipwJPyVdfnI^DN$9VqR=RB8{=w3!2BS)R5sb+%dy
      zkpd`ATS1_m5TQ;KDDjr=R?*$6a{)Th=rCthmybYK#P$fXZQPsSS#H<RV7r!v+9LzP
      z$R!Kp9hJn@11@$btWk>&yHQk`v%);lA~-?&R;8qUyI1w1QLfJ0sZuiJ%SYFN_Bh}i
      zPgQnA<1%vcTetXMQ9Zb);VE!O;RNgVnRN>S)dStXN1e|U%zp;_6msn2Xr$d306)r;
      zoh|R_dEl?~6wri9<jMoon5%^vfbvaz-omFEpV2a3zeimlWs9^#<;Pd#hviFDH;L^g
      za5kOl?2{>C&!CC+EIQtvO;hbt18Qu_tFcL4s;d%PUJUezI>RFhA(L-FXIF@-pttYQ
      z_0kPMd|9ww(&svR39v4u3VRvV*vkW$YV(+CJxmqqihM3y?Mb&Ll2u>b3jcT{@~pxY
      zMmX{;t=-b66fy>L77(3HWp<Q?*ljf2ZbyHhGa%&}4<RdDdwUE8JcTCqNxAm9fz7_B
      ze2sqNZT2gP8eE?F(l!oq0f@XXz;CdUkXt@n1EYA(5u)oqs8iW}skk~oh4NUaK*^n>
      z;yBrb4-O-_sG<uG`?dgb&I=oFwRp&{S2uW!<dFxeH3Q?mqR4N|lO2>_Lto0b2R7&A
      zS0VosjfeICJX6BKDqK@Z9H^MESKWk^aPuy8OICdoPSj9y582ymwx9!s3x`OR+NuY$
      z>h=gk-XLyvfY2&44L@}^!|a_W)V)>efvozDFA#k-X}^Gof@ovENW<)x=`i~h8fBx6
      zXunQl?KkOI`z<=beuqx7-=&52d$iIHW{g#N0j|Q;j%d%OWvKn{5!tIp^Uc3za3oP-
      z=w9_0SlPZyJ-J)$$g160^|T*pjBq~+$S2o?B)Q8r^1&^Gk<YEx^cpz^U5iidP$ydN
      z@3RDR@=3x=y$cegTl~PKNytKewNWvl1&c}bEN)NC<duQRF=q1l{NxRR$uh~)FHEoX
      z)vXUk_HSXlzk>+>O0(_1(P?-tvHwoX?SE36{TU_jOxpjVl>KkI*!~ZF4bN-s&*_E|
      zrdvuZEeeyIbKPh3p%vmagrVpb^%8`xC?ank81Ya9DOvu7pHMHK5sp5oUj8nAnbJTD
      oxTI7=73WauRsHuh^*Wx1;;n&RB#Ae07C8~mH!<Ic=Ub%yA0Dc@ga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%Sr=55UgI4UD+h&p@|Uj;6;3Zi|1%AQ9(&WjOIRBhd8pC3A?lEZ+Q|t_yPJ8
      z-uw%(vk?{a(mhpEUDY!$A5YH!cCqZiA*|epTM>vm8-yk@anR}Y4(~%bvC3!<IYKiN
      zL_&{(^Hf_kmf!b;N+M$=qJfMP)?XeU5a@(Z>KL6^q3u9Ksm!0Pzfay?-8#YDQ(D<J
      zp}x`m@$K7K=}~KQK*)8>mGm)(g(7?u2<5KQ@-!U}WqcuqktEc*Cge!L!HmDioV`{F
      zVRh#E|8rUdZ!D8Uj53!$`2@dj(m0eyYMN91{S`Y?HP%498n`x*hs)h#<Y1mpJdFa^
      sA~S8~9PaMc_9IFUnWoIu&)9vQZKJ}tF;k(68Y9+Y5lfj@osomaCl?rGa{vGU
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      bC$Ihkny3Fz@nIf*<DbR^?qm^b<a7TA_R&KO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{kU2hvj7=_Q+YdaXH2_^|8ZPRsu#vg6mloaR(rLEIcZVhU2Y6zAn6MJyCtaq*T
      zIH5QF;sS{)Zn;8&3+@m|&`5yV%S!y3!VhRUvtHV$l`YvjGdpw6bKZI7zaRZ^55OYM
      zrVtaDyCyeeS#Iib%Xj^tT&+~DTnzlr9ao(T<n<IRf!Wb}1Sb0`aHQK%LErJc%hhE8
      zab94&;(L89J>8J*KqVfw%m4iQ-48zrq&KfRT3z%VPYcAFD+0+Aj_2r;0#?3SXz)?-
      z+bWGXCNs!jJie)WIt_uBGnm3O6*@|Py!Oem)KVb9GtHG3`1+L$(s)r|qULz&gF$y)
      z1*>x1RRY<X-y)$TC+E?krLQ`D0lPLjoGHL@^0oRs*`ki98o%b5Lc`G6hHj3y?GPl^
      zJVPg<y|3Di{AgQ9D^EgZ-RudBal<*;?UFp6FRaABSpBeKvK2EZ;lS{HWe{x8ElgHV
      zVL@PD$mmM1Q?9zM>PYu=&>3`<r_X-bQa#PWkKvHO?utKf+uppk10~zG;kRjE8^VP&
      z4&tz3ep6sNKa3qp)^*@`o#TZ@3P%K9d!`;yGni^`Gkcp*M%n4x($=P|2W-#RoODb&
      zd&As1EthaO4m^IGJk?{<@ni11&T!#2mXz(1WKF1L?!VBikAZdE6V_;`^1raL3!PYy
      zblo2WEw#cf6_|RaXBSKY<Y+}}#4w8llANW&*%<DaKH)gQFZ+vcc5qbV?iinw#a&yN
      zC>FCX-9`3y%>2r=7<Te^N2qt6=PqD^`(NeS%<v37c5%kj*o{3@G|F?&DVMgeceL^<
      zl`m7dF+w?qeN^NP;q^#a!3zCz$-k1dQoQ&ZX5xn~l`J!`I7pa5f`eZOGz>8l#{QHC
      zuQ2*&3?Q)=>)R}IQ5cIs-e94O<$laZmf!HCMYW}3Hh&j|TIm7C|HQ$yY<UZd_e=Mz
      z@6CK^E&J9M-nn0jAIToQ@%0pr`PKZlKR=<E3opavZ<h`prs1=IJ^J<e&!j^dJ1qB7
      zM3Z9o=5T@(i(G#fCz(g!J)DZT{OJ1TM{)faah(pio)%=5y#d@H%1xr&BFb%|+#$+W
      S+ln&(1jCLn1S(;i<^KTR9|!&b
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIl?Qc_M6#w1c+ZSdTTlWHE8|%Q~*1dF20ePFSt{cOy8{HU;iFn&yN=e(>+}>>n
      z35hb`D>2dd7L{N!<%7{gm<WLw6`~*g;2TlHcVqku#NTsosYNCF#U}T8&Us$W@0{N`
      z=jm6!e{vnbqe!{okkEWool}GAyctaB8QlnughGeL4gGLBqs4{?+)yN}e((_qRRzsR
      ztC=ayD5Uk=-jP8G(ryXMLwc@YsyTB?&CF`fIZySK*KRGkBzR-t!O+;~_*gU?o#fdO
      zna)5$<!~$<j+S=Bszfsbk-g#j7U{AptC~jom;`xdW=MiFrDn6L1cy*6=8vRJZCp?1
      zOdi~p&ZW(M2}=7&#}ucKp42KJW3?CcSXn{XCNG+?hHfPcO*OUAqGe}$2W>Co0lyd3
      z@X7OL-W2E8dGRpXh?COH{nG~qRg=h0nzv6s;zb>5C9H^~b6RvZ8`q3UHJ;HV_#%3O
      zG^r$udT~)PkE9C{S|Sf-m`T{mND_s-nxGkH`^-Scl!zfHV(4a2Ny`Vv%m6{?)u@(C
      ztNY4WP#6oDam?o>EE5N;7~SxZKr+c3r1>3{;Nj-5&7~l0NH!*8ArW-H7f)h`eIPVz
      z%vpXg<Ow;&6LOq`8%+FKD~ybqO9e+V87-w|b{eVKtd=vw#}ZoJWPx}<SL&j==~w-8
      zY9^iZC-iJy&+$wJLf9pO8sUj{n-a^`1hbt>ZS9!y;3)~!VZ+c3Khu@us^7vMWn%t9
      zVX=lqg37?hB-GpB1zyf*-B#@gBNd2X7pv|rTs!ijBt=m!D>*01Yl1Y<d(UA*O^8^i
      zGH4fB<9!ci*i06EBCuJl%b&BN<euLYIqzZBlw2vu2FpiIi6PFx1J+T~{h?V6$rj@E
      zRH2n<2EP=)I4w=+vqnN2Vw*~+xxZ<91Qlqd|DucBSPds!)ZEk@@Sp(|c&Ma%sV^_n
      zE2*z2)2r};=m6e*0X3+#X4bf68KRA7X%)5oM00Rn6=+;SLm;q(#!F}k1bnTRvGx+y
      zf5<%t+By25aE#Nd1d)@pprL~+_4a)P&`FJ!&}I1{cDnzD(z%45e@Dp@B}WvUDESAV
      z^ztzztLVdHMHG!5idb4**IbcKIq(tI%e{L#6(J}ToI-F?_<)D(py~+(%=6+g!aYZq
      zkD~=A${<^dfhl}(9w&hUas$>BA<yxqprzO4`T`pr5qbL}{Br*yYC4<xnu*uKsdvwU
      zEH%5%-~DyLAvJNnQ|7@ME5WBYF2IY^OxhV*KaKU&dvMnBBw%9{J#lkw6Vt&$M;o3X
      z*$z~a_RW-Ju5Q6r+dC=9doFr+s_`O6@Pz#nBsKDD;};D0wq3^d(M7Zdd^>GvWxzLJ
      zOUth!H0=v7VfaSZE!f&_OS`VTCG^O&FS>;B8(s1S-=33Ip5teRC|2X{$+NYH>6?|d
      zRm!>eP}}>2vMC=x73CMvgqN@mFEh|rSSPQd7q2s{H|YMG7{uGyh4YBv0xR?#R^1}9
      zc$bNJ56|PGMM{i4!O%)|cM6kM-K`@Dz1T~%?vk{rBn|RSw0E;ib`7SubAp!k5l10y
      z)7W8?hu^p(Ix+dbkawX--T{leKMQgr%MiFkc0MLMSIEv)#&L~4Une^^$j+x^=QFbN
      zIoY{MuWyl^FD*v;tz;)lj3oafBmN>I4)Lc--kzohf{T##Li|!JqGYke1HOZN8b$-Y
      zXE;RzzC)b0C|x(<?Y;?5gL1D-o)u*xZ*(rAt+USACwJ9})}y3!-;<mTiVzo^Qk|1+
      zal5Q7`q&J>*KCV#Slr+8|M@$5_dR3#fo*u3Jp4!=enJ#KGiSHS!JU8Lz>R~&R;gsB
      j<7{6CEsgO7t7UGRG0b<Ymho-k+a(&w$*48rI&k<8vD3r>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%Sr=55Uk!jRyK)=(L@Y*5D|QUi|0r@BnnCpF`D~i9pi+}jO@-DKf$wq;z{t}
      zL2rJP*lt7*ikI%Gn(FGu+xycqfE_Hla0sg-aU*;&v3_7e6Zt2Rxm2O-2rKq)19@$g
      z(Jr!tMk)-29{Q(=wrVWD{|S{?MoNTz8O5wWKkN|bh)`-99b2JoUxbOw$>saI*UaRF
      zkl$5W*%qO;-u?0I*+}VObE8klw#|j~kil#b9twnVS7~{ij0ZA06N69^s$COsOTmp9
      zf00>xrDDR`)b;<hngn+&<5&z+w_kG*yq-y-KpyZx2upvRX8W@WD<B>f92>|X&)H?<
      zV1{4pf&#}PGcD#E&iT!)N0c5?O_`&YvMsLNLxpjDs=^$qj98C(ETmpFMh@y9w2*G!
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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!IyOI58<F
      z)mk%*k%22XzqBYh)h#n8m61Uh)j4_~OV}707#Wy>K4D;B1iFrufeplBU<Z;+3>*L*
      C-b7{q
      
      literal 0
      HcmV?d00001
      
      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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
      TZ@txBV{W^c`{abeMn3bu*=Adu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!O-sW-5PchyMq{<LqW7W)KfutFLZz2tPeBh#?~`QJEo&m%P5fP+1P}fIf0Q`c
      z7VN?9z_9P}=FPnCpU*D<1MG+J1o|_oDW*3Y=VZwmD&~*U#1l<*X>Mv+*bu(Jfs<8M
      z>DZBX=}cx;pmnVZWk&+XC&~X#W367(l1x54oeKElGM5oHu+>I@h>e$Xnu@1*;p&8)
      zL>2P3dP${upj1nNUQ%YHr({%vm!xl>)m-3c&GMBPLxI5E!I{^n|4tQ%?#s$#a-y2m
      z-4&mUCMNn29HM!GD?p2T$Y=zQ3uv94e_->Se;&5EM~=N@<rUhD4;L!zV3!f=(LvXF
      J?J@Gu`vv9GY5)KL
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmbV}y-veG5QJwFh?77f3VIrf&~QScGonJS_$k~$wIqjimSv;!+PoVD55Pl3tbd3i
      zffPh{qx&>Fv-`Pz{{V1-d4K`oB;}e7zlm9~uz1eP7wb)wab5U3ehsikIBKDc^Ta$n
      zr*<iX<HX86i>qxJ6~4nu!sX)W_IJk{wePU-tV1esnb8p;VG_F}XQ{j;r2nwE+C8)*
      z+77XJmnY%14sL4n;k8Czh;aIyVVnOM`|%H0A8p%cci1M{G%hN?w2{knDf7)i&YSg)
      e2!x@Y5g6!w_Ayc&Gzw$Y6HGVyKwpRL&+H3NeVicx
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}O-jT-5QSflKXJytfCmu4g>GyFcM(?-T#UMi7pNKA&_k0*rxNex!UK3Hu{u3U
      zz+o0H8v4<%Uwu{e`Stz*;1X$qk;2J>I@0vU`k9#6Q`Ni}uX9IT?Vo7oOoB~?w6{5`
      zO8q!nm^mldRybbw`JP@Cj!MH1#I`d{Ui+A;aCJ6a{qt5BqA5F%mX@v4Q`>N+FfMFa
      z5x3qb-2EfsI!5+g6zpwPW;YTW7-P}E7-<zwmj#CI6-+-I>uk%qe}+8hHgHUey7hCD
      qTPOXcgAH7SVad1^Hsox{_C~Uj1UsU}L17|#7kj^YUv3Be%i%YF<CX6K
      
      literal 0
      HcmV?d00001
      
      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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
      B)zkn0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=&r1SP5XZlxtA;<yG_4GRpo3btL?<!4s6k;7XnTL^%U<ZN>^}SPXVpdM&>v9O
      zF8wpn>?#G(rNf(fGw(CsnR&0D&o2NDP>3N!*uN3C!W4Jf90)D6D{Svdy5^Z0%kINO
      zUI^Edt^2;5Xyw>37=&z4F%tIB{C*&$J?SbjvZU)VczMz!&?zC+aBNQtTU%l@m650F
      z?)%5K`9_EyDO>3}AzUn31f$^$WE^2EClN=2u+mnxJfDtx((Q`gND?w_r_T)px8Zn^
      zH1xId2$lAK)~FG3#d$@rMn}8K9@a{hKS0hOAWMjirRRxZ(D-NL1xko_oT=NF$I2gV
      z>+kQX_;uI;FUdbnC?J9;`xr+dEb(C-B-kc7bI6|9N6Is#9s^{BZJaTn3IjEy`IekR
      tSVe{-Um(lY7pODov(fV23~Rp?n%uk<DCFnVLV<bYvCbNV4XzGh^9!JKc!mG~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OHUI~7(KTwE!5#%P!zQ&NFPc86_tW76g44|SR|<~%+L-nILy@P@Yrft8UKK~
      za-$m-_$1M&dw+^QLOpk;w1_ma=-kY`-*@i$&iTISk6)j^0T{rI5PSkX3+l3(QdgW*
      zUUgK*R?Xt9W~VZat($Wh&Cqg=ZkZtj1e)AXLpA48lQRoE2q7qNY<GaE5|TP&Xd%=J
      zbnhNFX6S_(OSSWpE2d@(G#8f&1<Q7{{DWCTUAF9^!14PNyC+{G<#9JEEfA0e2();y
      zE={irp4E=z4Bgb7ivs>we44>yR-U|?1)~3hu0s=A6-3Y`pcGwQygOO@|9Q#m{R$4q
      z?8btj>gJTT>UaQk5ICry4q={6=%#jiX>mrgr=(`G5G$t|)2gk@_tIu?q*O**?B6=$
      z(_#1#Rd5&$68o5feNb4eGp|#|-YRT&cul$5=QL-_z>3C%=!wPm<VBlatmI|39F_T1
      zI8>t3@q1xvmQavHOdzN|T2c*O9rW5kK<ND4qGCHp3JmQ9eVc4v7qi~*_0^nKkd0mp
      z;j}>i?mcnWEH|fTU^y*>vjVMdmTskPO_mSBwBekBUc|x}#06>1@E&ED4q-$fvIXk7
      zbVpP3njJ<O7bVsafqKI#I_~fk=k<cX&1xc)CoNsYgDuBpyQSrj)NyFM;S}hql2k$E
      zl;teb(M*SKbyo@h>kbN^v6k$dHm=KtkL+l~K3O`tsGuJ{)PUbB&Jm}DpD&;6Y_37n
      zq8<&5Y2@2w1o#9ZHDA$`^}j<)CL4H%_RM>9yyd<Rhxlx9qteVDVWSPBl^?@S_Y}mT
      zs3o*<#{0M*PHf_6BKZ+r6^sUQ0w#!bn~Wyi{B|!I$I;C*=D8f%tmwgs5@sJ)!85Yz
      z*x>3h3c7n)7e(>TODLRL#JD4?GZ`&!jrvF5AVPr7!Q>~zpQ9$QzUC91-1+wE_fP+N
      z8MmFP0Xm-xXvRZUs<XO9_nxSSRc0H-Nwo1MA5TxAkE=im{ago#5#&0EGcJ!s*AF0`
      z;Ppc<pnSn#Ho1xO-zjzSH5$JlolSf|*Cs|c<XS1zBlMW2Jt3hr+WC}XJ=-Q<yi6!w
      tA|!B$#(EN5A{8lts5s$i_i|fJ{KF_YAaDg&nJRr9!!@_2>wNQJ{12?yt)2h?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)3%Sr=55Uk$lj>bn4ML$3g%*D}*ms~X<2suPAdg^S(uwmI*W+u^Z^WX>gQDX1L
      zO+*5EnrZ4mb@j*R+dF_u94JJDlPS+x^GncU4jdfk{@FNv|NY@nW)wCE?TVLiKGB2G
      z)Fgp$JTal>U5mJ%@!UF3I6dn=-L3as@p^=#)UW2@tSGDtW?bt3R(Br>tzQ8MSN~Bi
      z%zvyRQJOcei77&AbFZ*RxL6<mA@_C6#kNbCLW^)%sZy(N2TMS_hj!)?(@!%)=+ups
      p&7PP1m_TUANq~kFy@?oQ;R;*TyN#ycJA%fDu#0_}+A>Axd;yaAh*|&u
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O)o=H5Is}XCr?XDwZ6X+QJN^W6(mKFMkMIU=4!8c@_Ju$-+lNOeulM;CKeJa
      z;zx<;tB8fhX6Bx`b7sz*kI&~90Be}G5FxByiyKi8x28}NMi?!We<^k0O!+~x>1iWt
      zd#<?g^zL0%HjU#c3sJ&w$a00M7k)knNndJ5xD}~=Zah2KA<!WqQSy{;gfbQ32D10C
      zwYdC#fBs5{Z8*v?n}mg2`EMCJtf{lVxKtrTOI}Ud7(mj(AYt}DQXDA^5wdk@_Jf8{
      z$6ESQ8FAstBhiqAbZ)7$IXvaWXh+qHHhPeb!^Q|<<XhSA|F)9BvZLft(72HLv^|b6
      zRQ9TTyI=<xe;1?X%JB*7UC!(7a*^G+42>tucVYiBhhU$0fv(Cur>$kC`{0$fXP5)=
      zk>EIvUc@+Cj3Vgc7tcaJ$2eCGxEA4@TF$@0q6b*{CnQ=Jehk|)9PO}S3rTDv%Q({^
      TU=(AFn93_A!m*Q#BAEIDi?psZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmYL@u?oU46h-f=+G-sX9Q*~l7@Rw~2!fy>xTk3-Eg^w6)qivF1N<m4QE1k44~P5y
      zJYN8Im?ww`>xSPs;}6S9U9x>|O($BTRDv;K`5P726+0J=6qc~6qz%?lchYu_ZnD!5
      z`oo-%@*(GyU|dYCZJynnay5M`<e^rQun6I;uf+ty$ejfu_hy0^{#AmhBZQgfNWa(a
      BHevt(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gO;5r=5Qg8OMYMo?`Gp^M^<ZN>YK*3oq_MUJNfS?GfsK~bZ30DqmnRbs{s4cJ
      zaf%S?!OQGEv+umKGhg2yp8!sAP(Y5*9ElfUir2&(s-f9ZEh|=&M5ts^fKI5+o+F_i
      zO}{^qgM?7Lwz`h*^*rCR3FHvUi<&@0Q>n2#mNLt~dq`8XOx^l{ou;^bV{VqJdVZ(3
      zc+!??*YR$&tC?qYuI|`vyJLG6_g}dPRhV27w8Nu-pj+`!8qly+LLCi4#SNA8rq6vj
      z?uvdS33WFfh$s-_Fy(ntPoBaFVbA?{9p?n&KAw&TvK^*2wd}4=(lXvDe}g}|f+q4D
      z359e@tTL}<*kCSZxWrt}@H%rP!&T<mA0~F?@wmeVcR1sd_{<-_WAkm+a+{;UBEW$T
      T7dw0_{fgLZmx+hvn8W@LqGMi%
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1%TL=t5XQer(wLa=C=^P{E4;*04IJ7Fv{G9@ASGNtaNfi#y2z|0<Ai^!oQgOg
      z&i$jR&e~C`Y+{hOBs;U8fBt4>*MI&#JObFkvV#nvd?i|<B5tFKr@hL)-alwb9o3qC
      zq#EKTlA(hfVWy+{c5!Aa2>CswRrHncX{{P7o00M>v978ZqGh<7y0Lyv$o&XB=^~3l
      z5pR$uj8v7DC(Y}+49`T}mxQru&=CH)2$hN3$z1eP-4GTN_%l`P5=anAsV;cGPRI(+
      zBgl3Y9bPCdPlIOIkXAL%2-Yo2y$BbCcSTHKk}$~cJ=WZ9Eqp@lHC;@t%)u04zB9mh
      z%sp-h3ojZb+@?0B7DOu0FSf^$r8ddZIhY}=q?FLDC9I|u(k<i@kq_l{(BgB)*Pw_6
      zGl=0N^?w#_GWbJf&frv^`|;7(LYWy^zE<Gln=?n4V~3+-&YHZlvAOjd19!a4z~x_;
      z|AB25?qHBt<wS-ehB)E}FpLp~nAIq+GAQ6J#@g5~9GmA08=LnSf5Q7;93)`#X5e!S
      zolHcGDshhGj4JWIL48O;P1~qF3pLw8&Bmy?{;uZxxcY9PY*%yrT`{W1)scnjcEz6r
      IcA3G_Khmi%S^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmcImOLr4x7=FGsA?<XKP@qsQa<O7MAw(`pHMLO7Em$bfQbiP<CetvO&eX{S#dCD)
      z+MNs6u3X?bv>fz^uF#|W0sRU70#_cN@0-cYG);>OT{QDu-uHQL&-;G;_3!T<0XPCb
      zgD!zRx6M0d(fr6SR-J0`v}e}NSq;DGS!eE84n<M|+muMtx9df9I5l_Ms`vughUM92
      zeb(|Cw(DFgpB4}o1U62%PQy1Hf7Yxwt@LNzr~a%y`O6T{szjf5n_k5d7@S;XIJhba
      z^j6%3Mc1KyfvvIJMC+6y8(hz>*$$nE?=QQy<I6j<;?p5|Q|88!aWo=96~?69kb=F_
      zcFi$mumXhuC%PVuaTP+b>?}5Y6@O`ry4}^9ComLCwWaT>RdH*M{fXsCk4A0B_QwRy
      z=l+dCITi|H3igq2rQunD`TqoJG#}gQ5T`VhnsBR@hHmW9u>;SN5259{>C}n=8R$_4
      z`veZCqN<B>y>8Xa`nXqXF0cY;KCW1cvMd_*;($bYj!Dc7&-Oy#c^%JSlU%)^Ba6*)
      zHLRl_TjVOQV*uMV6j03IaLY&s%Emd@@gj~0=rzlaSR*iy8;+xm&P&q9F&#QKN*gcf
      zco`>1W9rIwXc2Z-Qn^*^kg^it6&)J-1U60Dj&-TIFlTu)=3JfB>YsEgY!j2s!hLv{
      z@^9H><=)t#7G|>l$en?e+IJUQ2#4EP@sv^u>|;cM!{d!aqsLhjIM^x3(4knaq%qzJ
      z9j9@IO%$QBSzGE!YQ(9W3VXJ{B_?aw>e?RLw>;B#*;P@U6ywX`IdgHWrMTi^{Z{S6
      zBraueQQ(<)j>!R_<2*PZGQK<RdFEZo>){(gPLu9S{i`~ra9JRi>maa}(lx0xEs!<?
      z_$?iD<J^pgGm9-jr#3OEGt5@a^3=%ToNk3KbGE8eC2`-?@iuO-ARNA)qOQP5Vn|Fh
      zy@u<R5`;5-)AvlLF>iUrnQ$Q~%5IhwHg(*@oWR}nK*|ed%}RhK2bOBlHH{=3316Oo
      zoU%5S!?`Jkk9so#&jmKeDq%3pu8LsgBwo{`!1eWFsjjIQ8*X)J2VX^9VE<DkHGF`D
      z3@E#OjTca+ov+uI30GTISImak)T+|{&sFJ_FS)W2y{od;fmMM%TasdGe!gMx1=oU9
      zowemG+?E(TirI%{60o0i>*jwY8SF$F8@S7G*M%PbajL2{=QF?k@}*E;z7y)4uLR|{
      zs`WO?^R3`|BhPkVko(|fCwB4l7w*&io-*<eu)FXW`e5oYGWnm;_dWJre}Mfz8igec
      z8M~Ko&=^cDA!p>5U>Nyj99qIr`8~dbk#C97jaT_=&_8fQq;ZkHU84V&`M_Pl5U%oW
      z8b!?D1g_yEW>KQ#@xVSt@fvsZMENV!N=DSBRx(DJk5lpuL<(bE>x?KkImr{jyK(-?
      zsE+b0?|O`7y#5mk_qgs--pNb??<vcHeotsw$QLryFNXSQ<35hIE87X>bfnBDvV-zS
      zyK<wW@>!hgpgh#B{AovJ4s8Y(6!n4%|9I%WM)z|M@rFP<(&q^zEsB97J#?cD;mT@+
      zFV;Yq4iQe$Ct12a=|lb@X1Z26@s)xY2*jfL_mLNGssP@?^$;vskAvT|74z$aCviPE
      z`9tNH4EI4kywjeGdkOuR3^z%VfJ~EYKS@2!$O~~uEaQDi_JB^Ba{dSO;*mnx7f43I
      zXsDn{9BRYDJf#I^SuI4KC2}f4E_6WtjmS?FvJptGgDh>_f=v&kjk(aqA_vC?+Q_mF
      zBS!vEVK6nAUdHYA7=CAi{h=(41@e)lY!pKlE*4e9S$r5aWLCu`qsS`jY1;L;>q6rn
      DI{O?8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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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
      YnL>Yw(Pl#03~ApYt%kRGCV_YU1(A|<uK)l5
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah{%T5A85UhrkMZ~w_8^y##JxGl4<SRrmF#$bjJb4+|QODq{E(3b;qdb{-@B{oP
      zW6y#b56d35XL`1}x~scCzurFpY@*;ILCD{UwkV1xQ}nb~JPO3kx!(%vvgC;eBLf!>
      zVI;&fguW@B)$U~7xJVHeBO)uRX{5HHX~IebsOlT#>mMi~wX3u;`-J4`+9km`^gWqD
      z5`$UvBSRRjC@oK0_ca+@h+0Du#wvbYG%iJ;tlxcf%&lq?mMRfxyQ+2w{T@p#YnI4G
      zu14W)Kgw;X&5o^#IPG#gl#sUMXKl+pWUp1f)s$7gEj_}h7x)jQx|M%;%PqBUA-?>q
      z451KN%U>P&s2VyD!hlVB#Cgh^*?Y-j$gjK}(tcosOlLigm7PJ(_UGTeY}m#-1@It|
      zKp$LQHJ3deBHID>w)iAI`_|u(edS96Lu@mA0()?9fMLF6J0Of;lsz6d#@SkeZT>8l
      z{(@5>_#_O>b$)gOZRi9h*>bh<6z4G%Q}Gm6F%;AB6xT5nGni#LJ$vyONii4pVjc@|
      P6fcn!`H*5UoWs&L#O>0}
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVtE0%Z^^6akrvAlMeAf_N=gxelrD05ra6GHs7_NST`HDPl}`^#lA3
      zW1<luJ{X_<62HQ@&rCa%rVTvwoV};}vi4g0{Q39u7l27T3&6uLw5K2F3H_Z&<jh=R
      z+0ygd#j=&<(pov-rU<~xFxVu@j$r62am&yPX>OH_qPeRrGq4SYj-{em61pkUdZEmH
      z{x9LbuTtMWG6Zv0@$F((P%uSm6e)Bo&xP};L<RG_B+3?lUd$P<4JymvpD|2B%rT5b
      zQ%%rNJHZb{Qq#0pn!&qN%<&*v5K?dj-3%iaX2#NOU<fM+qFq|o6ews9q94}-7+@I4
      zo8^St-JZS*QNbWof=K|lnWOGeEvCsDHxzWBouM;jn0&LmpW)Vyo+)sKP^y?E)^y^I
      z{K`kKcw^AG!_9_tg-J35vd+XLW3%uoClsvPgj4Od{WDsl7ji;uN<Jl#aY^Jj!{{ZF
      zqyp@ae(!BL#m;$!TcR=2y_-Z|tCL!?J*D8j&8Ec<xFtxE27xP7y@S5*()LxCN&3s~
      za!L9hD|mvZBuvTPYstDTU_m$YiLJ~Y&x&LKGYk<|*Yhu-!e9_d%qf^h!kNc;Cho=t
      z9e>r3!uB<IM-#F<ZW5vvdVXFEzz08h0rEU(MM&-(*&(@c_Dx$ucYtE9pp(un@;*?k
      zkM92X_zAAY2anMcSC7#f4|`A1cZ|qa`qP6UI(zNFSvu#a^gNYVKpz$f0x<0q!7xV1
      zqjI=~QEDMA3BzMsV`NFN{kTn**9H=;0Qp3|gs#TN!@jWp1hGqiSw$PxXqt6&L!<Yy
      zVS`zB3b|lZ7mVtHQBeh>R=`ke+#y(!4Hb9El59>OQ2{7#Igl^@9lf8)a9EK+z^2_;
      zaRMrh8Sc5sQ<daaN{*ajvOa&iCco9qpLX+Wn@8%CU(_V~+~fxhlY8ouUp7pB=q7K`
      voN~f2A@7l+AJOsXH<CXvdvsRJS&j^en5EszkS;mWBvVs7>>^vR$y@vnt=Bf}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+int36kUg_rPCHE)T*?$MJx<jtiDMlG0-Mdti~!PeH(@ooCXI2L#>JNAN&tv
      z)Kr`JV0<=yg1@41otY^yTC^mb%bvB@T6^#F_2;M009J85ih#hvuCZqnjb~1=Ww(me
      zp3&a!4tl1n_PS5k_oVGa5fVs`K)DEkcwhD`qtlSRzSXrK)~W(xQ(&Ufwfl}?I}M{V
      zkm2`l-hR(~d-X#g)*|~Y(;=A1n!vaUY!6IR_WO+N2t?K_+j7bRnOuE@IN2S!@09Wl
      zfl#H}k}(94&@hRqF$g3z#4xT-Ga58Z2u#&2TW$@WG-dCB(d<ZpM7?X$w?X&3`@xX&
      z*rJQ2QM$v{lmw!tXM&9!1wXPWko|8dwH;N=@(FOYTE3y`T~PHdo`{<n?Cn1P&pDg6
      zbW|ZnQwZkrHPx$S4LRi5|GxVSREym9cMQ8-yxZKBrc;WdATa;$sl=e;iiQ<r`8=rQ
      zy(&+Q&7Jh+hcl->rylcQ8<rZ*>@lx#MX6$uMuU9BL7YPv5#FM_1#k)pHFKU5YU13(
      z{KogdHO|{TVglUbdf^bK_236gt0nc0u>j6+O(4Xz#Jn{!-DGANvy9Amc{oc&^^4;?
      z(qvWab3S{E7?tg_rxp9$G3*txSINFk_6?U^_wxQ?S30U5*Rxwu&{drG6<;tfLdB$B
      zNQF}2LtM~Ds@}#J>U4Vt)7WxV%U<qKHR;zxzM*Q;S5>hkI#Kl{k>N>o_9C*rlN<CX
      z+}aOV^#Lw@f&LMfU%qC{>#Uj*aNkwdJgl!QP{dWAr^sF5!sJN(nf&Ot<nS<g)s?vR
      E3tkNKAOHXW
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O-~b16g{t<QY^z)Z9zUo5N!)G;@1X5BL%H#{0Q2Ju7>srLx!nor-&<mhrhs$
      z3r#d6ni$t6CjJ?>#&c&XGzhYI@7?>}z31F>?_|FJ{`?idEUv{7Q5fE|w{6RQ>01@A
      zV&!Z0`bxD?E9<3g?fG#S3h5xC;XAGsT;5;X)Ma0xr><*`?Ur<{?o_?Ug}j2gtI)Yv
      z_3FOu`6b(J=-97~Th7nQkJk#lZnbRt3|)Dl%g%F0SD5gWYlo}A^-7^_-tioNL17|O
      zJfbkd`+CQp%a#<3#cD+-5XDIo-AJ+4W}0hz>sDAO15ZGq&qM+pVx2N!qEoCv6J6+3
      z=q@^*zSr1V)3rzTnyVF(Mb_$;Yzm~`yfpj`r>-!1RAoVT<`m-PutbHiqeB0RP?$Vc
      zXrUldQ|sE_pH4GhVLX#Pjzg4AnmC8^>~B37t_Td;+uEl%vK06Kt}Aq~4rz`Ik}$3G
      z52}vm&&6>;p=%E&xJ+OgmW=44LM#&sG6?iUA)3i@_TsE6B*JfR*^wEf_T>hhoe@l&
      zp_(YaUju`Pp^aXgUIgt(%7AGnWxT=3;qsK2ZuD^PrMJr12+wqGY8S~|^b;*^{jv>w
      z;6nsM-1`U)%yYj^*aZUIKngc89J~bp7{Mq#Lg6&V2ro2Jp3rO&$B?&>#t@oep&2=Z
      zCQq6r(kv6;HfinzG`SGq9~vPPg<%n*F-p>LOf;!4@l>R4&wa$%Z^*o-9g31p0L1{^
      z3}c$;3OP*iMoM2Iufz>8Km7*jFPL7X+0Qkwi<!6lCme))*aA7U2RREVMIbGn0vQvW
      dcQjh-DYYcW_L46jnmlkY`Pre#R|1Nwe*jc%@Uj2^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-yKVw85S%3;$3Y%YQAQ~uB@I?;Din?ii2{k<oGs$h$%h<s;oB(qfP7SxwYext
      zK?-}N-JRK)`TRN@0lZ+4phdVZWG#jK@IqN7rcQ2_)z0O5Zr;7N+9kLo^y5+~?M5ut
      zh0c9~E5a~#cixmDtF`q%5JIY$C$nBV!sFBY%!zO;0>{rQLMLDrb$|?%tG1Keo65ev
      z@lmasake*}@Nky#m#r7rrc9Gr2LGplSAzJcp?mT^Go@yGLEqmnM!^X?CtUDrbBt|H
      bCqV}xrL?KtruJ|h`!~4dO~M`jE%d(uDe7q8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh4Za#Ii*F#PSmTl)Myum!ib<;QZ2}<W%4MlFa-(pUmQt
      z)V$Opb_Nzk1_7|roW#6zegCAa)Z`L&1~x_paj<A<NoJ0|YguYu2}}zk178ZzG~fKv
      zVxVDVsVP9aG<<N_2C^5d+gdY>k%0^11h>qbR7M6_TyD|>nFVwJBLg!KvjY9Z2y`Sn
      O0|$u3zzHOo7`Ol?!$dv+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZF3V<6n?f%x@ox3@)BNaDe{(<Lh*$v7SYlc3ARw1TH31UCRy4o>263iZ9%b!
      zqM{<AqEelK8Fl=sGbM`7s2?528NbQDaeU5h$OiF)>1_7gbMAf4b6)OAfB*Z(p8-68
      z1sydSc1;;GMu#!$c4X{KM{nNA4IB9h)7=t?-9^_)rt?lVYvy%?G&Fi=vW7j;aWpk$
      zrd=I%8t$tgnKP#Cc66s*%dz{df@|7lUPJWISaP^;s4tmFYS0oImi9Py!8L4m#K;!S
      zT9S%t2>15&caO;;qoF?SOy?Y%Xc|`aSMYo8XuG&S=U8HH49tU~5tD08i{q7^X|AI%
      zYmxD=D8=d&U9nc-4lxu4l{Lj|*&ge<eU@#x`!#Hj2Oa_ffzJ2ZI-()e<7CVzYO!8n
      zH8yCdjkk`}gBem-ie(~gRA@k>j!hbtOIUZ2i=qXa<>(d-o8yVV#ee0s%ZJ{kupBGo
      zWL%*YZ5oyoOt;4|vSuM|l2d%VbwteV3Oj{Un3>NrZw>vHZ5}C3r_B7Yk;-!Gihd_;
      zWJip=CF`;><W5=z4Z8y}|Epb?NG;7Lr(sz!moZ#Zz@;x(ma2r_NnSl3!CoDYa(kuP
      zo=xE~L<lq&#XjuU@%Wt`UKb7+?xeyKc#^p`QsfzmCt4E%c0i%WJ9t`x?^8I4r`T6k
      zVW?=^YzMD6<6=uF9G1j{3a&%Cx^2#qD|tq8d2_~ciiB-2yq+F3^Cz7Aw8;+LSQSKd
      zdHUoEur@jdHLR(`B1x0$RPe6T5*)>lLK4Hw2Jc*8N!Y9&9j=VG1{wF2T~Ul+RL3z^
      zs)Ac-NQE(slQYqdSs8cIi!UKZo>zE5O!YJ!GOdY8R~qp}g_T%U4+Ci(scOi|Wl+dS
      z2E((0Cp%9lOo*m#(u0XoWhqSIB*97hfK#+H<gUjP{P^uTtq}9w?5#%*93!Wg%?f=#
      zGKGS`hO*`fax-v1w$3Qbinf+j5l^QT&fsOgy@Or~)0cS4;jF@|9^JejVh-mNUi0Xt
      z9M^TG1>|*wHv~i{-K2Gfm({?V3UA?UrY`N+u3_0;_Jib?J9J!X_Kw24*u#ltR7%O#
      z<ke{k_TSqK<^BF7)vzwudv{mJov}C<0(-ge<ZIdGszxl^FCtNsPBEW04_b108-lUz
      zO?C|`A%m<ZYZMA*LC0tRZpYw&hSkBMdgx;lJEfLS7&_MTiBPWRh^|4D>m^ldMIC3H
      zXXAwP-W*Kcn~mnZ*$I4y__rEsh_sfg^Td{+-`@5;*0t@piKe#pn`mzP2`yud87l9;
      ziLGsm*cvKfySz)-@tudZi{H)U1WXcfio8zJe-=%c#unJv0S6tlw)pti&7VH`wBteU
      z(>&=RGOgk1hq0&3r^L1J8Ktl00U^{Z(jq$B`DA`TS7Y=`tnqc-)OGv1uRI;u^<MK%
      zP&)JtR{4y37ZCNOD(>67Ocofw%WM`I%M6*#am=0OusVxD_VY2EtBPT?62mB-CUdDv
      z68+^EIK;{^bn-3nMegw#Wpv;b&~d@TRsOy*u7&{|@iDY{Vn?|5HZhuh#nFNGTX;sp
      z5m}b-Y-h+9p6d+9L_EHTmu{dT7WQTHIvPc)t&N3Z;Swgf$S%U(xd`V5misH0tKxO6
      zkd+u@S;AZ_B#R8cUdeRU#loVN)qJK?kJb4{Jzu&n)7LVQVs$aSg!2@S^Jy;O!ZmCV
      zLwU7;rR^f#!o?Z{EwrCM$iPJg`yQoBY|8i9_Ls32AFvEpkiv&Jg^w_gk7>P%uki`K
      z#RC4o=lBa>cxfE+Q&lO?ZDL(wA|v>dXqTDv2K+|6D{QT`_(kR_n{E?IGEbT4d5qFa
      e1a&-hn7$$`P!0XbMY~FW{0E6>8a~A}sDA(g;6FtG
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`T}uK%6g@XLx6CrF><jDz0_!1(2%;hgttZikLV6u{2OF_jStsjn^%V5b59mil
      zch&_TV%vwgA2a8kd*|HmpU*D<C)jo|L#Xt{Sk%O;srlNkHNs%{Ai|zBH@+Ae8M<%?
      z%MoTEbg$O#_N8ZBWC=S7l}$A=Qp=E#y;544YeJ@a*daLez?V5>u#ks~IYObSv~0aR
      zcV+k>x&uilH3Lr!IwDjyk1rkbq(+3@W<tYw)Jwv=ABx_s=D7(6)g*kwg2qytOFI>D
      z+x>JXVa}4b$CkV3vradjQGu>Mu`JS$pKsrkA?zi#p0=$dwVXf*x%=QH^yHngx|IJc
      z=Gcni?19DQGs_#DWzVv*o#*V7J=xo%59HoCm_eRxjy-S=2Nzi6C_e#V2?fr0)hM#H
      z1ZR9KmZrto2;7JY%ag~r(3Y04!j`a_PSHxCSWBmPOra=aooD&?BVHoKM)Z-*NP(?i
      D)O?#f
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kU60JJOC)xzsBNShOw36ht(^sIf>OsbT{1fQiYWJ>ZZ!)67f}|H%hU
      zBnBV+06)sO&rB~Pt<;B^bJ=UJeOu?(?;k$_EZ~t2jZi!kN5T{zeY0v;%~jW_ZwvQ8
      z`X$Hq<*}dLc7^TjOIPgG<ZIVC{-h&DNC#duVIP>Adxx^(>qro$J6ysSe$&&8QV?{@
      zD?1fYBhW6vXrUB8AzSWGu|i1r?=3G|Buqx|z0z0M$ChpRPYCO|e&C4xU-_@>=649O
      zl2es~AY3+(f|0}kMhslUC}AL%-%*x~fk7nI?y3PD7YIXT%a*SiANHiX9acLWG-5}%
      zmO3{tW2!d7VkDVfm30q>YbBo$uZ7*s@DN*_U*&SvYU0RonRzCce;Xl>R@%X>q!7on
      zfm@g)j9FgCvel^99oLst#nhiCzpI$;7`Tlr4`V;bf~C^mlRI{%1j6$FL=34T;^fXG
      zUmRCt-M1Xu({b-F*+(1j#`ap}h5c%~=`aZ+fjTY6+}LazRCx;q@+feWEvMmD<eH_l
      zoauT@^U9qyzhT?bE!BkQNzP`OFws$cuUWIsT9a%)Lrk%>2KbBfKc*DMk2<C_2c*+V
      zmBAUT%1ewI;?p~5i~vRpvnNOwzGJvBcY?9P_zA9j<$Dd+_&*$AR+;x1vpr|;60Y<8
      zB*$T2+`vs<)oz?)X~AxSqpMt4EzMX<yb{}zg>M);#T4NSpTY=<z_K2&8X>C5N=hYs
      zqq2R<XvLmV46~=0(eU{U#mj&q6T;ewrEnKHCLuKww#~9vg4a3B_arWAUAb+YORQlr
      RNaQ}2cufYO9^fHje*lmVM@Rqw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TXz#x7~Q8$lQtbL4YZ&|1mu#WKoAfw!D4NxL~20`K`Mf$$+QfnGjV283d?8p
      zL48mk)CcuJebEP8OTc>J#kF)T|BuTjFZ;|)lGCOsKBSX5`M!Pjx4(V9(?9<C@g9Ij
      zaWjDqf$i7ig3QV5ey(hnb7QVkJty5c(;szg-(2()hzV>AVk**}%bl6IW|p`b7uX!E
      zT25}tbS+u2ZpxX8$zU&dEt;-pIrjO&n1Fa*U>yNHU)p|AR%&L~Uq?EB@B8=fKLwKI
      z#-0KXOthhsCxRak8!7q3^@v&!h?V_PRUorGt!kQXYbj^BN|^X@%eMSsfo<vKS<Tw>
      znIfS_owAukCk70putlIVohkN!91R#)C$M3{vdzib{EX?I3rkN;I3-yrO3FbgqQ#hh
      z)gs#+?KX>qRs~Y_CJBMT^oqKgKQh_~nlxW^Y}57y2K3-jCtA-Z@d)-Luv=hD8)Xgb
      zz)pc4SuRgHzBPM8VE+nb*3dJQBx7JB`pC&O=bZ(!jzcT>p_>{_i=_);%0UC`u|Xgq
      z>;2rwf>uORayHpe4pAjlOrHjerKdB+UOa}!6F4TYZ&_XKsTw$pBizrcl}e_k{4-7S
      zNxoF6x|~yp#|=D%{p>`U3umgPE0xz6=9<d(^{{6Q3@b-8vYo2R9yKr$Wjoc?vcs_F
      z44hQi{i=aA*Jb<0q%X%Sa=~%QYfn1!ie?u6<h#=LW|gNKae1}jX#*3WKm$s-D5e=g
      zsKHgY81W`7kCsW*EmQNYN=~iORy|YJoGtyDOQnys1RTFVv0-{n;3Wg6P)On&iV2*r
      zkC0%a5!aPBJOdZ-GEbw7$m~f+MQdXwANgPB*Kc{v5~pg_s^j`*S*dn^YME(8?UI2P
      zFxiXCcrAe|0_y_<HTEzdF(c4j;sBJE8Z`Y8^fG2NPkc6LnZU05Z_RO`H7Ohyd+YKB
      z(^v0vy_qVGJxQKiR4!FxF9D0=Zkgo^_5!DGdCVSbc&-tzT=KdB6SEuuCD)X`sbimY
      zokgDa)9tj=WAoGcG-}H>0Y~7_GJ?&q70tTcI&Q!r2^(*yIqM3X(%GzbC*|A7t)r4H
      zXSkrtcmJPgfv$?0-PC%@sktR{+){VhKnwMQsxpqGf^D1bXhnLSNr&|5TL%SUC!N;G
      zPZwg?iUhj(y@&U12a^2o0tvoz1O`t|Pd?Qrg-wjy%x~k2>)<n)y^H?r&~0q}j&B`!
      zkbl<`8@NR5%S63`LB0)y(b$HE_{O|o7m9%GcsRn$@hSLQSN3~sy~QsfTs&AT1u#Y!
      z5W(=`3QAFg4oAt|D)|m}t<1lw<##vo_hKLORQ@n`Qw7CUG3jP8N)TY4QrTJ|@kSwW
      zb-4t4XR#&1I?5bXNIWZ6!E%Y^X>96PF$`gU3!A~)IIxn<bs{XbVUuIicn#qY|A`7K
      z(`7yIEotepzNr!EYRJONC`z7Wv=SgiS<}B^oq7x|;b;e%q{4o`MIXIQDc;eDr5ZA&
      z@C2R=i17|v8#~{M{VuWJBli1ku%C{K=EWCbkMgNn&=>MH)ME)JL<{W?2>l^@_>m?=
      zUqm~muFSQ`KHEz6V<LV+vY)mgI~I}UJ-a5^@m8{*5&CnI{bE(Jywf7UlYFY`H)&m4
      z0{_vyAe!eQY}=QF{EBS9)*v@E>gQd=_MZt%b2d09&2x4KFaCh3CSG_>ztM2&=PZVc
      zn2xBOhz!-6y@OYVmhfr^R(kT5CR}gBLA@xUOputmFbFb7QZc??4QQ=i@il>4EfxRF
      zihp6n_cW%>iYq+p;khaBl&L}1`xESo*`aNBQC(T=uK~o4Fid0W!6yh)QKReC30epw
      Qyv}2*W}o0N5x9Zae_zJBhyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TTdHT5dMy_F*ci+ICVk+lNuUo8;X;(p%(~+a%r46kOty5RJ|PRjkB;>ySr-|
      zsZv!%>Pz!pDNp=?KD1IHQY$rmtJL4o-%)ku?BX>B!~<u~W#*fiZ{{=q{P+8x0Ip&q
      zijcr-TXIJh<Tq}iYE=u1cD=DK?V9c`+OoE^qg!qiVS%9&tdxa7pQGD`G|Rf}7<KD@
      zaZy0r5;(I^w;WemZdsa5J@RaLApWngCk5hFiZfqv$(SsQbm7<)@9YTlnDvVE-ug<d
      zz<2A0<xUH9&lr~B&I(-529Jkxr?9U6#GMY_J?COER~85_)T??NT{y2HfmZ}ZPX)@A
      zqqrb2tdcRMRV%DCO;dsD_R^Dz-r#iONTHuGUlr)evd^HvNZ?a6O}!?~dArtpOvJYN
      z4WPekj+(+tR}9n@4RQ4HZbXCT?OxY#24@8lCBxEJnvXYidtGjtx<Il-gqdYYJ)pCH
      z8Fn8TMCM39!eNqH4JJ;b6^}6re3JPArvhh#Ufq$-HZ@OHm;nYPcC$n>CtlEyLq1M}
      z_Er?v4#+z?Xg;up3A{-oQzewuhHm=<kfKpsXxcXMwJ2S=Y|5RwO=Vrq=00mnm7ZK%
      zTFyh=E(CVd9Q|Dl*D)n9cr4PqQ!*TvD9q+OxTb5E1->I%Vrxdtl5W!`j;D?o%$y#7
      zR%I}&;XS-hwJBKzgHJP3WTrmUumF-ww^MK071hsRXjV73^opx+mNk5YIZ_+pcp_~{
      zrkAdG2t3uaiea`7bi-b2DnQFCWjFy@Yt2TZZo7Jw$vwTa+y;}oqTx150-@@|!=rXW
      zLugoRoeSb&VSqIaAG2N(T$A5HZ>Yx(2v;N1j@NFdi1|drI_?v;SKqS1qUb;7w``Jm
      zMTR)<BDIAvfC#$j6s1!LJxH?ZXrE-wsV^yxzHzcippVvbfJl&SH{EXM$6p{h@i%(^
      zK<dE@TzomM_5-vZdYOKXv2=JBnRH|qL+S2aTudj^yEvy-a`DWP!&8w|I2CysditD!
      zyxV+w50~<(@E$Vxi9L+|O5sAdOzR5H)4EKF-$V>WO6WHI?39qEmkd@hhPxOiPOsn|
      zrm%(?qGl0gvi_WIzQ6{)!k3WHv575I$R3#W%E24R(uoRV<x;V{V*)~I$J8)w+lrhp
      zA&yd{UdlwUc0F=1Pu6T7%m0SS!F^l_Qje>L8u9!{g}vYzw!+5nHo?(91Qx6hcTJsv
      z9){b;JHHULM+El`Fcp%f_B}q5V7Zaiw6dMyo}mNhMkmhK$Krf|IX@4^<9L0P$0hok
      z{|i_5vGm=~Dh4;k%V(zzr>~XIO=^^y9Te!xI1$1a?M&j^Hs?so`Bp25cIQlI<nNDl
      zCUyFeZ%_rT#*FXdPA9+*3gBo{R%xO*Y0{|=#m(U&{HEONZ1ImIsAp~I1dSn?`WPJz
      QDR*-5)3N@aD!L#14~m)7^8f$<
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNOH&+G7(LC*Ffh{yj2RLGgAfGgfeeWTACMU25hfChKqf*GlV+xaO`3W1^dMDk
      ztW>#)i)`HBLKeDk;X<nfs<g`Nw8}r>R{w<Mxwm^B3{X@_6@6dd<9z3y@6Mn9{_-1u
      zi_rXNQqZ@dZD~pEQ#+Z>Ws}oZzObxW>$)vwGh2Gj_QR{7=L9Qhp`fFrTZU$)b*p6L
      zbGK8|3X~fP+NScklC9<Jv}Trd-{0q-{_|Jwm%l3rWEp)jW7C+HDFuE_E=meo%zQ?3
      z4m#$mS#RZyoIS3f)hNyL++5zK->QP<2_t9NR~1~2){GAqLJYRPZI9Q^onWa{EUmyh
      zmCxz{C<v?QM3;iG{}E_aL~5Tma{5Afb4|CFwKY>$5Ry>S8mZyh-Spa@7%cNb4bEY>
      zRo+>xCu?VTLnoP5Dht4aUIG7Q1p}wTkEQ+SSI{fDHMQJ&a-nRRk`vvU+0N(%!F~XJ
      z7!WaEA&jW-86xPKPs%j)b<Lc#*2|j|NuA#y20Yg&F!AxUlG%ic0D@xnnhMpKB~`TH
      z1+jNgMLRka1YHH()Jl)Jq5=hbju1l8SdD{<6v8x_Dq9w_PiwX|Yie70i_8v2V|Q!T
      zSsvMzmMcBdtz^w^T%>+W#oOqi_%e<}0vN{?KPD>V9Bm4haTS*_rl9*+1e2wCqh#~;
      zE1=7^VJ5|%(C?D5p405IMR|-JF_<_V_tkNMa!SQjyi3s<rCLo(<w7BE*?LxRaC)TJ
      zs)%%5#WZHvNRK3chlP0pckFjozLYOp8Qp1O(oT`EkK1@46kO@;cCMFQ`kkg2s#Go6
      zt<O+zC#$@r;wBdOT4))eN)eY08)e@L<jX2P#3D~EeM8U4Q?Y$V#cd&4RXj0M`OSi<
      z+a%i?Ws{2YyDC1y3NO7>X4Ddqw^!a27pJU+Z%e?baMlpLd`@I<co|1TJD{IR@=)(S
      zoacWtSAMRV(1MWAJ?9~zdO1?_a-`xpw$ZkerwU%=N~5ojV=$f=j)c9Q1DyGZ%O;%V
      zH^33N&T$UsID5k}#Y;>o{(|U64+DvrNFuC*GQEHnlmNUkU6+$i8K8{-T8t+S5E=dh
      z!C%q0a)1lZ6LLPt`K!+(I~a<1chMj5?V=~ryo<AuP;?ia@=F)TEEF4S4tvARPnw?W
      zh(OM6JhF#)JnY@WaC~?VBk{0r52LlB7IB6EmRU*~t++!jRuIN2BDhCZ?_&rbBY_7P
      z#Y2pdp9!o{tXWd<7>h7znd505Itti8kzY%aGv^dmC8t;=r&uMYSS6?El0z!QOGGqt
      zh~W}R6L<MKsdnxs$x#sOi~o#~A31SuMi>EGGO_9yxQY3rMA(k=C62<bh0bs8<DEwT
      z&+7bJs{ZV8X1OMFO-hk8#CfkV&gaL*VTZdot}vd^MytS)*vIS-GPsbKQ^*%GK$l}w
      zWw4c;q+|&<@V*<Wo{!<iFi-1n_^S2HAL|@%bbfZMGoJ!Ca{~z<G?MUDoqvr?J{GS3
      zWIYMp`&g<;(&@7uHt*Lb5FuJx+$A3wH=MZRy1Pv`M*D_x+&vZ&A0jtKBc#>FAm0+w
      fcPBu)N7V`l_t`H;wL02J@Aq|BYIpNM3gO{@6`1<!
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%T5A85UhrURX{<+w=q5r3MOv6s0qXisL>ETh};L5;F@*TECc#knrKWs_yHz<
      zh5upf9X8=aylhYRRMl4XeEoiW0@%l@jTm9|P7H)29<|d^9j6xf4-FA?r9K%*rEOS*
      zIfLkH*K^G9s&yyZnvm<sz!hFo20hnTH|I41T@a?KzUpbAbW?bJnb_X8esuc#g<!XR
      zrR5Vd*Xv_`%G3~1CL}Aaa`iD`Yv(_3u}QG1en+MdM=pa5X4rH@^MvX;L&xP}a}tEv
      z3{prFvUOL<%l>^!1`W~jBq3k-+nh&mD(<79rElFHVQriXvl2F3;GK=O7X=|~?i9x{
      zM`2Ufem`i-Q#W)`7^xWTy>M69VCQjuwiuR?K$1J#bQ7?`IOa?oeTr|UxjSQIjBC2I
      z`;KgB_YL_M11j)$+DIL+&>@qLFvqj`A)M<1cT6<0{G?dKQY7kdCB93PUXg$1Lkyu@
      S=mw}5namIn$q>5@Q7eDe`H)ip
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-Jx>Bb5PgH-0ir-<X(&vjVMA?Y<fup}H1_N5<XCdqBkOYd+bsM6{wU+@<pPDl
      zVt10+_p$GN|9pM{m}8uvMY!4ON-O;ylyOEae7SqpKIgEqZ-E{A1Z~2o1{K=nYW=$9
      zEF?H5T-V!uu!Tx1b_WWfXS~i+7uXYS?^Y))77-MQ_tO_bH*(fhq>PPx;~@*SbdMV`
      zWz#&TA2tvsCl!xs?I`iTdAU2n`%mTGXS}opORm2y%whzIOgNL%k^VYTOM)(9J-uf3
      Tn|Xmjy}!hjAPGacTNwQU&f{i<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&Jx>Bb5Qg7@0}LO6AgDBkj*rBPvBY2^Xgou-K<O9Q;F@EP91HrNtgJ{VwC5jK
      z_*aZ`U@SB-7CW=EdFFj*cKNY*0dR<73?V}0Ud)6o9*jNE1KZIv;i^GPx30(17e;yd
      z?6EJ$!6gQZu)o4xp@+8Px^gJojuA$FLxjvk`bxN6=})-n)@c#wl8|b8dSZk&UExk;
      z<mr9%wtPKZ5TeIQE7Kr^%aty{YI*}1M;Mz)#E~GR+e*u;>8L0D8_{zmA=~!)Y#`W%
      z>#s-4+^Gqn*8cZCbwa+p##j4vjIZ>tUg-wz`M^ELqqAoAH$;ecys6)p=PH<}^w+-~
      z1QVeI-jM&DP(%b#&M~e+*x<uzNN`N@%MoYd9I4KcdR`%Ej&a6-1}vN)!?)xb!WObz
      p1p+yafk1=FfQ?pbb8P=qxL|W<rBGN?Ukc2lfF0H#>~ePqd!P0{d#(Tg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^X-^YT6o%gmr7dOH7cD!uKnqe(a4VuxszJdRAgCW)hR#hLZD-7Mip0b({v#73
      zi68s{{wU))vvrYX!l#*g&wHQuoO932pTEC;16V;mhBkq@59+a+Q9s)m&CoKtX0;->
      zEVcMpR_v-J_hi8=8u}M$#SjsgZ4kH6MFqwKojjI??P7QIiY*N$#p_9Rie1yzO~cm-
      zMAvmgw>Jd#=XU}kr^(LyX4NXlY%P#8%b!ex?6TXnO<(QR<Fm7=LxD)n)MNtf=vL5)
      zgh20(ZpdfV@{zO-)T5FV7}zljYUxn5bY6R#5&OMf5lA(<v~FEipiQF#$;Jb9MF@z3
      zz)&q-t3{w)E!ZU3rZ=rvqSn=9t*R4PIcLXGhuny9Zp5g-^7&4?ho|`P1YLgX!>(|a
      zh0_B4mMrp2SpKb0kJ{%`hn*0(s$dSo0-Xi_Ruf2JA%-+vN-zsSn-nbKnn0hbY0f?P
      zM1h&QZ0bhM7tkOuIHO=0D*_`vpm`MM&c-y#oT(bD8voVB7OM)@ILARtmd#_?kS51(
      zDY(rkB<tdhcmbu%-)F9*7d}c&VDjvw^8C#?xd<BJvD&!Q)$eM2;&V$@DopHl4EAJ6
      zs?ORq%o}t`9PV<$`4ipdl^f(SF7h(r1b3-6Ubvs<Bb~pZsoj>pl_kE*$PC?hJKE5J
      z82y^M5#jHV_PS{Gj&?ifnMf}zP9!6zP`=Zu4L!U^Pv9=8v*@L_Rac2V^wWyt0~jO@
      zzYSs7Q715h3*^Ro7m*|{b{qBF4xBX*XSY*~HG6GRhB?P8O-j-QUh%*y9(ct)FLs#l
      z9Ja}u-DBi%ipge!Cy3&yV=(Q?0)tp!5c3QeJMCdNs5ov$G`(<&nP%!9HD=$Tj<~9T
      z8uh3VT*76Kl_L!|tv~$(SJFQ*?>(1l*d8aj7gYaCLcMa(ihIaIM{vC*@P-Gx*$jM5
      zz&8YVdj?S84qdf76l;_nS1W3OsN=5H6-oaCZw>^_$2!FY?u8@t5X43}!U#d!4@Xo&
      b5D&r;Cn1Q3;fSvxh|O@sw-7|mxyr47Ja?fw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm%TB{E5FD4%(DHtq-~&i5M4Wp}s8k85l|bCxWC^K)9XW33xAnjW@KK0$i)czN
      zwq|#BcXsycd-Vz69v2=u0=IKn%TRvUFjZ+-5}7bIGJDbslTf6UrKO#6)I(R`Y)vkt
      z%EHNPPKg!hS5_M9N(7$$$DMAiM#F7BT9`_kMqvCdGiu<e&XpYoF9L&yWkRLRwW>Vy
      z1%jO+V^zx{Ph%BNN;1;X{`f2}BfA+TaOnrF`EG$N<EpX1uRtf@#u}-rSMEM5s2UZr
      z)~1Ty*ak`k_WZTTjbo#{Ac5=F=FY-9r@JS>C42y&%Z~1&$Jld-{{xN;aL7R52*>|2
      OCpcvuUxD8a&VK-qxqq|(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8f%TB^T6upC$Di6W8qAt~TW8>PDp^{)Qm}pqw>e7w`QajCbM83_1AK*tB?+ld|
      zH@!J?&OP_l@1M^v0Jw%T8%hi=r#M3oKa>~7p_gzjJzt9C8ReL(wulv<t4DgZ!D7%f
      z;t1oh*B?!Jpy(;(Y9YQ2)I`K71Iy{U17gVFAG7ATT?Ta`@)`_I9Jja9MNZx@IM6l{
      z<MfqF9~E{YoC!%~&K>uqkVlltWL~Z#gGRvsM-gXmu~M*@_*Y2lD7A7o4|rn6vSFKn
      zyV7Pio?$cz{n+m(T%wjO_0;zyExO$g9(p3chyg8ONY)r=YhU7+faH3c3qU+=Z^?_K
      zz-v$o={{}omPB09FqShk`X})&1KyeF0bBV73n#qN-Ip0q3-kj3ROzDYPzHTj8#YYb
      ugo=q(sF_%YEz&ngZBcBJatC$|vzKM=!-2tv89vJJF|;U)u1nt%oc;oORHi-v
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0E_MbcMh1nf#Ii*F#PSmTl)M!Eg4EO^eV3yAf{?_b^wg37AeWti
      zg^@u3tSTolFJ0e1DJwO(gpq+aF(n0|l9541!w1DEgq*cz7|?{G)ZF~CRD>ua16Oc<
      zX;E^jTV_rwBZDwP24t%q$SgKS21W*Epko;rn1GI8Wng0fIfflX17$cs;tZSsCSx~1
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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{cqA)3#?Rp?hK&u!Tn1PrT=x#=!bJ!U;Kr9AMAj!nQ
      F1pr%JII{o%
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8W86g?MMzIFwb7Oh|Sg#ns&<1@y@*ivKAXdw9H!wM4_%SW>;wEa<iXwur$
      z2jg>pRO6l571LD1!|u+VIp^Ga?w$Sf_vRMBHnw625jL-!kz+fbJzI=K&$IW=>hIN}
      zDhHnE3HQY9fB70igs`NMLr-?>rw~y>Zh{se(sc$O33Nz^?#Q0>b_w~yVRZtrTx>9R
      zzuyu`gfV3yffN^1@Ol52#P|dV(-vZg6Vg@L6UW2ug>dW6MMn^3tNo_aX*jM_aj+Tj
      z+HyeHnpBN$Ntuw)9XryF;+>#hgtbY0rlvLZog92}yk=Xp2-(1ln#98l*hZ3VELvE?
      zGQqqQ<FW8=q4=zQ69#e?=JASP=v0KvV_9Q;g2kG8n!b&2p~$02*7`%YDJoL6YT*I>
      z&y9GiCWbYxF3gX?&#dY-Un~_Tpz1a`I^{URU$gY)7pzk5C(_?J3}J@fDLw=$O#i@y
      z1C{_*^`40gUU0-jykuF@t1RZUJo^gdE36davsCFC3wJPH|HeuPj~SBsw1z3vwR+Y^
      qkJVG0PnjUBV<XVC8Kd$Ur5{Lt<Aq;rRBxVZ8OsL*GW-*1RQ?{$dcWHM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-E$LF6#re4G)uaHG|(ELY7xaWDMSPWDW!(kLP|=Z2`%_lx9PT7NH#UuQ1QX>
      z!5JCeeBi;)aeQH%QAbB9j?U=2Gx+_9pRfEAj=y_1-NsU9$iwdaojvFN&iS2lZ@&EJ
      z)6W6yf)m6Vfz4-)^G3>8a8l-Z({@tnqGMI<A-N91FVNwAPfr$<Ss+q3YnD--Fl%-C
      zp2|KdAVvhjnW|lP4BMG7$_+Dc`O=N&PIsh|0-^lT>~LXfG@U<2&#aI1LSSvCFrHIJ
      zX<#aAM~4b&&p>W1opYn4gC?M-GllHf@u}hLc)mcJ@1{U|)0Ru;3(TyEP7I9?kByHG
      zF|)9tD#}zV6~mqph~`v9Wy79J<(-;k&-IhKQk}78Efyr;UnrTjK-)pfwwyx(@pwzb
      z*z{Sm==5h>OwCPtCm5Qk&X^(GjjciS2yF1QQ^K8Wm<?0MJ=iADHD@}b)w(lo7OAxQ
      zT(BypfG^%V5`w^eI<{cDK;rh;N3xQCea^DY<BiI+St}URWo{SERg3JD!F~}pjee(O
      zvCwX}h*f(}P1@?!My;s!SXQiAzrY%cS_X?ts`lPqn#?i;A9l&&9;6DZMfFasW&L|}
      z+<}-}J)~nZ+T?1#j!kH1mnoh*r(Rb##(QsV2@|B}q-v+G1oxUunX??8d81}j+y(~m
      z2oqYa)U_UN%+8uMNq$(z4zz3FNOi89vc6(vW<bL*k4wWoXIB^O9_PZmsmvh^;;5{b
      ze4VZJdUGQ^j_Jr@l%gB+^QIirzSUfBDbY=@U&9zf`{dvb$lXrL-NpsB#7AzG#f#y2
      z3H5n{FXJY3Ok#jrl}&rjDM`~A9gpF0o{+lf<dl_T9%mmlJSh-Jj+&04VM;DDPOYrL
      z;P+&@>}V)*qh!8h&2r5#3Q23vk(x1I(lE!<ojlxdoT|M`(pWmq;+#v9DH*l2!yV(<
      zjGUK2RCL%lz!0bEs>W-C104H5J$Q^*fxLLs2oGEGC`4MWww<!i*vhubtEHU-7C;+O
      zP~Jq)IA$SQm#`eWa0^~XyuJlTh&x(vlz2l6-bmcJ0(bofN9C}STSm64H%FfDAamG)
      zZa(iMI!)~7TTdjrcYK1oeAjUAhs0}eKc6AKfd$4ti#S&a*B8B9$)AoS`nZ!^agvp{
      zj-BN7DV9`|rAU?ly~0hFPX8)2FL9HLie``N?9qfhny^O`Zqjg5RiIxHZf_F4$ONSD
      zF%n+G1Bo41u{+V_zlyzy&bF)Aw_IYE;(C?Ryv71vr|54`xHnZEhm>G3FOQg)N6gD3
      z=H(HScZw1yrZSSve;5av8A&OmP=Un9*!=+)uENp@xT5HE*P%%#(2s4j$S$Smy%fCn
      zy%oV9tr~m~177el^S*ai1b?w=@S&x&#X%M%=lT85FnETkr#pN%-+~s+TtOf@bPY#x
      zNm<Y$Mxw|0;Ck;OPDJxuPbL>}Y9QI|e|iz8`C(u1`B!*iqff|h5(ixT)Dn(pu7Uop
      zgWtu|OE}Ww8fH90#5K%HL$W(Eu!s^_%gg#s@RR`8u?}DH{CrJxoz3|MyYVgd<2zmi
      z-{UBLz!-kyS@;Q4_!$;{!90G&1>C?3_zjovJ6^^g9FRZpHvYmp_*<#g<0{ka*Ct#>
      Tm2vz}!FfERPJ=*A>0SR9LhjG4
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ`(TUQ%Z6#h;~NKA%XxK$tpY^@MzBetlOLK{M8r=*EOpn_T)$dnEZ6IL>z_01=J
      z@&{<u<y&5SkhKI{y7bZI^4+`t!Q~%tx%Zhc8Pf1F=Y0Ee_P1~I^MBv|0AK>9A0C0T
      z+uEKM(;itdeNQ*7SUk5~E?GNtO)~bwE70NC#P4RMSfIV67Y!}Hq8Cd>!CY471jKED
      zmPElUS(<6BX!)}4%k;m0?w@~i`(z)VyS==Wy^~C5*XPy6r7YR2O@L=rpv|RA#aVU6
      zC0U85mXqs=Tk-VGBt>amPOI5<HJw;Y@?-P_#IbZP>5@`%ZL_INVqyJ+xXBTpc!SdP
      zWf$X#1%A*c5Y%KLw2izj(4DGPz!6VTRNIKFm3?oQ41If?wm`@z*@ZOBElPAvp!u3%
      z8rF<J|475fR8<{a5%4AoIXwu0a|#A=USQx<^EI|_OBtq~F7IsU#jMRWoGNTmUo`3t
      zajy!!)&rv?FjNcOu-lYUbE!}+Zc+*!BS&;BN-KyaTx2?z1bV7;@|w97%WQ1xo7NN&
      ze})*psGuJqzP+Siz`k8k@GSaR_OgNq&eDKv>6Tp@n{MyOXpK}&K}-T<DW^!FX=GHT
      zF?3vO1@AmIQr!h7dn$QoS1W2eOIA@fq3bx1q;5;6{D=$m%I3Pnvt=Wn(~C?yp&*J-
      z07-%2(`Is<rhwZ&9l%YRm9qKJEIcxYxO9#x2o(!{(1x_vM^li(9Ra@_oy>iK3k_;q
      zEs~4mR1i0i;kLX^LESFZ+(uUdSR~cSeHoWwh$?NFt#Y=*QPEuW*qh_5h@*Sc(LL=)
      zHCN;gIo59rbe^b(9i6G)Q?QPAY2dWoUEQQvyVxiPdp2BYS9>F~-{2=Uc}LWz>vL=v
      z01b1?xN9M&Is6v;K49Oq(|y@+TfswIr*X6j$D<Tnk~=bQ@V}wU9$M#*d5QarVVWKO
      zleC}@J~R{Z6Y?NH`w&FP!Mq<Wb-1+-x4CdT*>|{bm~f{HcM<M(;U2=hE_?>;(MMdu
      zysh%2U6m*8C!K!cHi#km4inOdyN}LLbZj8f?QJ^3bNd86c%HsNI)M-9{16xDcEvWu
      z3m73pP8g+7Lf&YLq;&{mbmP*5_$L9c40pa7?jzDPlP*HxjxZjL93U3$_8wp&I(C4|
      z(Qe-XCTj%xr18h}{e+%+LY4UxJ@||s{#+88u^)2?MI1sAUTaAx;t+~d2~l|dS5Yzo
      zui(`xwHTe8iZA*#E`LQAy9V4^pd!O5wm~(Vz*W3P5-y|LdE(1D=lzDxQw^PC_0Hcn
      zbiRh^29YQ0oquZRJcH|1=O1NzfXCnA#wz7K+u>RL0)g;c1-|h7H@J0#G>Kzg7QRuz
      zRR%r=OBL!K0Y8J~3I-W8Gq_tpm_dNSDnInrA>JX$#38hB&c06`;{G9wTA8CXWWX<I
      p#jiBCztMpGj!FE1S^S9%{=z+yY4{r!+3+aZt$6ITA}?#c^FJj0(M$jU
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh3;K#Ii*F#PSmT)UwpP5`D*%tkU9=Tp-gYv$!NRFSUrB
      zfrXJl0IV!0F)v-;KPf9UxrCj8jgdhdELvKUnWOIt(hbwX$RL&oHzzDHr!>_$1E@7M
      zg^@v7!w090U^A>W!x$O3g7Zs@l2hF>b5en}V7f^UWCqXyj10^`%nI}mBhZoT3>+X9
      L11FGVV&DP*K-EKh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`!A`<J5Pb`UYDG{K)RW=~J=hrIMTm(Z7!MT_F?e-pH?jn_q%Dy6SDs8f_yK;D
      zakd~NCZva*oteIQJMZ=T=kp7|ISx#u7!Lb<!fif{Y%vikvK#(z<SWW<JU)s<V8US7
      zia`UeUhRi&U$~KpEW^>NQAdW6P$FQ+)}@lsHAA|3(qS+fz9%fCv5|v`HHLyCm1vEJ
      zT@gI-?m#dU9pB}H4iBWR=S?H($&jJqta@?2Y>ifR{{%dWP`(L|;kdeTuBkQG^lF({
      zKKYS=WymjHxc4WTf7xjF{HY>U3&frDJV70+?T-Uj+)6F6^xxw%Ez78YY@(B)zmuVx
      z45GMB)dk&5cTYcHy;G7xj-o|3a0LT(Y*Ln+fsjXmDzXCG6g9ym9gStn;cN_U#)IYA
      j$N8WhEn<fv!)`J~D}kbvO!1sRQBJ0KNubz^9oYW`J*bU6
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+in|G6kW$j<Eb;bxgjLIkWdQoCB&3lft0kV?KD#yyTq>D6xuRLCe9RR#<IsP
      z<u1fU@LpB$0&f*>tyH-ZNC;l}1U`ia#5!jjdm<`c#<SMhXYaN5UgJOi`Q<kNC$Sku
      zNZ{BF^QM_HZ+R)}rsa64w7Xk(9lm8H45MFQtQ)daDJfcDv}rYLvsShmP1|)Y85sd_
      zL0~BDI!(`Xys}wqSqJL7f8Qzm{8v_BBwbj&SjcDdrR&SaTCv1%qmMGS1crM@xus%B
      zvekVTRtx1U^N;o7*0M$8N;V@yt$m@zl|m&i>1|5v#jhBdOg1ktaN2fkZ&6?}mg_dv
      z?Rde6mj(LM?v@onAEtCXfx`k5o!FY`R8xhG8`h@hM~>ud$I7>MH>^g<+^A7WH0N$|
      zC?-ck+#&nD9lI$o-K+SxNiR@c(`_|2nP$8f+7l-bvN<iiYI$8!ii<xk_#gzH)iI6d
      zq$t&DP<|LO^8cNHz+l~Mn7c)<VLM#H_+EB(*=HBRm}A{uPM<#4+TOMr5hO7$=av%a
      zi^a=Q$4MPeV^G6O`&OcsIwRv>(eWxyv3;{%w;Z-O7aVw}Xs6474!_`nhS%9jZ`B=Z
      z%xK_50~S!uAp7P%Bl*T4eTI{5Iqy5}Eoa8NUAHtW(W0>k^`~_l$1@SkBCBH==V=k{
      z;IeAakPR5J0h<3v%=jOfIp&*_S@Jpxds)^syiJ~Sm_<=XN%9)ASL`isM+5CBK9FaZ
      zb*#&?gFIWY?COrE;T;~vW&Nu<t|7sTp1Zd=LBmZ3_8#03=MpI@r!Cvkw1>KOQs4Hx
      z+$=Z7{`eh*aTo_MKolklLBkXx80=!5cqo8}iAMrho{t9b7;!X!4-t<C@Gz?i`e%aA
      zCt1-TRyq>NqmMB8K#4fQXM|#atCV&PNBK6>k$VhJ5lP|G<b-;o{TMCe8arvv@>iZs
      zBp%|#ADI0fL-Or+%--Wa-hG~gAgjp60b5nj{TuKr2*i;fLy<yemui0e70LBScs|Em
      zFN|*egrQ{g#Wr59+`}0~S&Dkir{)y3t*AGAYD!U6MV<Dkf#~A>Wb`aSqK$KHWZGDX
      zzSV`R5?<`WH3=_uVMW3#gq36)@AleS<c@$Aw|N_5_>irBgcJA}^Y{d(@F|w?87|;+
      q`tb`?@Fi;aiV<JqJA8v5@U0rhgx_*!92)N8I^N?z1We`*VdGyI{a%g$
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh1nf#Ii*F#PSmT)UwpP5`E|V+=Bc(Aj>DSxFj_%wTPX8
      zg^@u3tSTolFJ0e1DJwO(gq?wnkwF|RT3V8sqwfmR4ATNspA0i5D784VDm8_XK}o|0
      zmsMcR)|z3A4192XzWHS!T?m2TjQsLEMh1Sk3XjZ`lvJPyS8#r5QF5wVW=<+2gBXVU
      r^+2`)9m~kT48*KJud@I>#LmD0WH2&tLTN52%?+Y~>Ue-869X>*8Cp_6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!A`<J5PbuMYDG{KJSv{hgN-p>gqRS5rv?)>+?RHvOQ1{2g5TxI#DgE;M;T{J
      zqlpRWVP|%B-+S|BzP>*`0bJt9MS*ZU5i8+~SL4f-jE&#du@NekNiPy}BNG=6VJ`(u
      zMf~jFk0&xTF3N<HP1HawjARKyxvOGjZVAQq*@)oubtF9$u~UJIEkZ5eR>S3NER!cO
      zo=QSJ(4m-)M51h+Jv!z^EeNe(Q^(9~hfodmY_4M-r58mqBAm82vIchIjx|<Fhv#kN
      zV0jh4`VVrZSGI%qsFz77@09i5_`kpl>)C06cfhB_tGAh_=eW()6=&jHI)8`v#+L#r
      z96ip!4IFf_%eTrJgeq!Wu@CHXv;x<BESCPr<rF+fiOuzAMzqvA4mc7H^CgBk5{<NX
      F^9QwRe4YRR
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwT~8BH5IwiFbS+DPmTy7852U4~g5p;}DQ(eWX$`GSOpLgc6&A~Gv)w}U75xpq
      z`o^m!3Puy-lSW_t3;qt{-0jjXq%XU7=FXfmb7t=Ee_y@<m`2tO2gC5Tv@1oVJtHFT
      z%Bm5GYpNkBs;nou>4vje$WB>P>DCNk=&Z=PB9#iVUQsmlQ7XZ}mKoX!s$xj0QIJYi
      z+4bY^uRpW-w|fj7@oXj^OJ$O)YfGusT%N*HEdUEKcpF#gST4`KVKZUnVK$S@<kw<}
      zM3V5k;@M-*YH}r8;67JzODSzIbf@br#WkzaC`0R<qAJE6hR{T_fK)SQpupgaYa6l$
      zE$9>BM?XV<^ZY>J3>XGQbiqd@r%A(1b!T1H^U``rX7Hu8B8eoCRAgIDr?I6}7)Bc8
      z&8EPsuV_`hNH7kCS`;^Bqdq8x-ibg1pze?IdM=6>!6nXaic*r)%}92ATP_+=H!hRk
      zrj<2#27$xZ#5@Jvkh85U>C#Tl&=qx)G(WDuB&d0bfM(a%;H|kAt28B9=fy=tjG|4z
      zG_}wes5#=0Im~$hS4r^3oi*(G?JR@8s=iRQJ$2N0S(dE}4{qR=8#ie;Pt%LI4bs!S
      z%a=0yoMGG=r(GILPJ1&RgfP!HfHtVdo?<l{C<s_!fCr06xDh`ot)-iYBqoWR^vy^+
      zv{fP86LB9Y8n9F@%PP$_+zi|{y%Q=%Im81IX$~tGTJ4g-lQY+4N#UF4udjspV5hhw
      z7$g1Zd7%}9aM72lBFg~*1JpxX-4@Aix7l8@J8U+;@3h%o`1lJTEGJ?3(M{hTvYrr|
      zlm23Ga_9)X!SE*xd@vc$(${O&@|5aWBdli_B44l;k71l6i!y1GeT2qOv^G>LKXI-W
      z@{ZxW#WX{I9wh`n;=*@~zo)YUoP~D@Y@6s}EyhA;m_UF$ywV8$d7O*#2TmtfZON{B
      zauAbN@+-4#An_HU#{@9d#X|2O_^uqFyJm*DIdcG)@7iZvKf)ZR`ANRJ2k`LoA!3JE
      gI>d5=+h<C#PjbGdHs4?Y`?fj~^*UClYzH#`0dVC?ZvX%Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmah_O;5r=6r2ZzN~t2Kc<>|fh8}E;@gl^;81T~ILBoA%S6u?FX}9>hJehd#2l%6m
      zZ%Y$B5IO97``Ve=nfLYm@d@AzyEaOMy@{9$PrPbR&Sj*%K^$c1btqo6Ol(+$%^WZl
      z(UW&Kp2$Gks1o*<(R`I^8OelD?WsuVD?+(*JR(>(aVQ;>QFmcujnME_B!}5-ERzQ@
      zo=QT?j{`9siA0&X_-N^8l@bp8Wv>+`yM+3qF?}moGb9{#mcsicUe~y(<ViXDKR7}y
      z7xm**6P)`vO9DAi#%c5KicXC)>j<2bPlXq2I%nis<LR6`aj%@b!+GON2`*QMJ8%gL
      zJ*@N1U4XEG22Z?nG`Sjq3qA%*zvOBT?&rkz;%7lL)E2h561G=M3|C0(<Zris04#NG
      AiU0rr
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=OH<Qe6g?kp?Sm*#5e2N`3uy)F`&D01s8%YSvCtXWH~}IC+a!~wIF2sd>c)*5
      zch0zQ;{spc=#1_ie~SJE$9t1B&D829$-Upb=bU@KoA19re+6(1#V|Sq`d8&OIW6C}
      z(#o2mS?Qd<RIg3*XBa_&M9XnjuNt~Wr*?@zcTF)>xl&flnyPE_`6&T$U0`cg*J_rm
      zS!KCWS3=>bZ!>3}E&dSb%oVfqrQ5mu&C(o|<^w?Br$Ed}7bZ$`ocSdnIhm^y`Ppd#
      zZ4?x_Eov#G!j#Pi1hF6x(G5edsg@$pTkr&XQZoWuE~uJnT@n}@X;+Y6XqQcv1%g?9
      zS&1QlehE7;Ah4@FK(ZW#z-|dWi1XJT3ER;t&{a@1Wwu^jRLnVfu|f*t1$~JOlgT!U
      z-DJ?ZtJVYtn=)E&gNLZ;b#sXzI@D#lxb{L8lI0ljA7;6I<hNRzYnl}pNs?W?D~eTg
      z9rH{Q=o?8k>AgJhb{euNS4)<uYAe*;D67cYO4`Y0!bl73w5|80C+liuSuxp<V-gOc
      zGlH%Nx+6G6_gmNQY5IL_$a-Lq!DnzTjI*>)tr!x{gEWNKc#(>C1cu$YZJy%ds<LEd
      zT;V?IObp|=$R^OG@9?*{ij(CCuFy22-Y$(cw&-F6lYC+*W>w~0Z=Nvfl!R&I=sIM>
      zP&B%U#!mU^|5oIhVGFy)5c!tQf6n6XoRLt#7_GdeH!dVrvezP~@^*DK|KD-868p$}
      z`lS%Y07BS8QJA6*M9_~II=xt;c&jhoMsb%f=JRe}ybW>Qb;64Crqi3TY3Jy<lOlsy
      zLwuS#vU?M|Qi+ckO!WspBJq~89oWlf2-0(vI`0v3h488vqRdIBleF)ri0cjzgRsA7
      zi>RA(%+8ZJ{6U-jkjp+#2#g&i_Jr8PaFaA<w?8BU9@%6mr_dvddSp>vS-U#wlJS58
      zF2xK{Fg;TQ+EF|qil;WkkW=^{3V{(MUEnmmdDc+s0|wvFhhrAo3p}?0C8xjz6iDF+
      zW!QFqb7H-v`BmHIQH;6GkI4!q$$i22En+{~6ZrWOk@)e~=yk$h9G-ZMQ2gX4oZiF*
      w*7$;QmpM1Ffh;8w8@RfG>rM7P`##rcPu`N$cgWy9Cb8~Qlk-NoVQZfK12lD1od5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusy9&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
      HcmV?d00001
      
      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
      zcmah`&o2W(6#hoHT~@0Ub#M?8l!J|kgH$Ab#$ii>^gi8v(P?T|W~UYYD<_GAKfoU)
      z-fSx_w1;_b-pu!X@69)#U+*6PcCqAQLSVfk`_h+B#-~2T#=lggr4HNACrK}k(&I=z
      z8qzKtf!Pe&mGQlQ-Re+iToeR0MhgTgH58K;C>*L-nInN*ZL2BZoF)-@$YHt&7n1_z
      zK*e;`duWlqldUcZRDvXw-KNya*26=`v{fpw8I0~b9K0@2l5t3>NpvIWQzWof`<Hrd
      zEvVb+@|ha~D`T)c_K*AxrRv2t@NScy4(USKH!S~c=#HJ<Sp~bnE6*QdGyA}CimN@&
      zf^&ZR4c;qnCQ#()aRv_HppFvniUSa4Q09ui2y+~*z&<aF6~E*{20qJ()xqVEXsH#<
      Ra}-z@FVPqyv6%I)eglI#g^2(F
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fJqyAx5Qg9Q6+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
      HcmV?d00001
      
      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
      zcmbtVYfmF(6n<XljkYXMuv^$&mUUO{1-9aKwJS1|LI=BrwA~`>g&oQOWy_RI2Ua#Q
      znyi1o%a`56FWyKtF<Fg3qQ>Y){R932O}wlcjmBtVJnzhOI$Nt>Y|_qq&U?;to^zXi
      z@z;l+02sw3H`*AEtxMZdT)M2q<!xEf;_0%iN@{6sC&fiK91J~{i7;Q#)ePM=SuIPI
      zqO8`+Rpq=m$-rh9I+InUrb&uclqy@YbMMxm>*}l5Z!mPF#Z*qnCDRLwQ(`V(Aak)D
      za6U)yjjLo@$WEsS>yVI5rt*c^+~T>}Vrr6G?od!mn@i=z3x@s*SvL?e0>?fyC*)Gu
      z!lH>s?qCeTNijc{5f+3AF(Vch?6*{iu6%lSUd&G0)s(!uv?eL5@-jnT#;QZIy0KYR
      zs6Giw*)*7wR8lmVDVkJPWR=W(hS^j_TCFj-&X$$3HpVa>ZiOngQrdNO+(?nZk*qGu
      zUNGG0#~@BJ2>%arhJ$uxh<A2tV@XyE(o#ic2xO`yYPdvgC)rdww6!v&bG*T=)f7?s
      zu3B|VEfGvxdD)A0#5mVs>WRs<LPd_xF0IQYEg?pV9hA;#Kl(AiPxtz91V{PlK0l7Z
      z#o%9+HLD36CDLGE=@Z=JAwR-+nA6w0XOH8?Bc%UlQyIJ*zTWrlhEVTuQ@naNXz(ms
      zv(fG02(5*0Q&Odkyr!0wRhp1GTb+!dO}H^Zc{Dg0>WQtD6<PH{z$7nNih%(2>P-6)
      zfzJbxp|>&q=D-hyxyuuNWN?mZFKuqh3Qh2^z1U`4vv4*lM$Ci<vor>`FVe7+Hi>`Q
      zJjgQ~ZoN>JmBWL1+S;bY8unnpzRUWC4~0E=in`If;avX=^?OUXq*N~}L)y+J&ANa^
      zp4-Kyl+5}0*Oa*95_c>y90@1?(@yqd1>+1Jty=FJQyD_GF|xOaM%<g%M|`Txx25;?
      z_vmTfSe&4F<nJOs2H=E?BsZ@mJT&ND_$-+ZerJ<>$R>BueYZ{SAvw?__uAw>y1&CF
      z2T49`lSAZ9t43S`e9`nLtr<Pt#Ay)6>34`EiDW(jzG&>|NWY`w04Lrfu??r_*Go^}
      zWqQ7XyXf?QVT!wP4@u-idpJNq{6v$hTl@5|yd*w7utN`b(hT<!6^j=rMBxq)jgIVL
      zB--!TLp&OE?qReMJE+HclPJGMNN=MD?@)rfI*&0uk&wkBWbp`DJVF+akjaCh@;43P
      zGTcwO7zG%oC(j@l{QwVshBMdD$xol+%r5;=-lQ9&7QD5<`+9u8;bF#Sc+^6Rn`lnL
      z7-@F?*yilCoD(=pPD2E4caAqZf8NshF^pNxZ8|F+dGy^T+F!PGejGe`ip+v==*@fM
      zBM1uzNM;CR>IQ+(N8^9#^u0o7K1UbnyB-Uq_c1fiV|icbc<mazu|T%2>BC%Imuu(>
      zy6#jgP~^H@48#IY8mI19;DT{-1)jbc<E7ijv)#k{kmwxe=LntWWBXWclx2!W0{DtH
      z?Q3fPH&nfEsS)4N``~+IaSP}11D5b3%J>Nt{EQlY!8U%y^Y{%f;&)udA9x*q>Xiu^
      U*_%D_;5t^ZMzvw&%?DupZ+y4yu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ`*TT@e47+o83=Kui(Azr}N3lJ-EskM!jOF#_-un?fyRvO>{$A*L^CxEtEt+iKw
      zK<jU?Gj^uxOgq!D4}EEWL;pZ;ulA|awf8xm956gU_WCYsul;@B-pQ~3{qPfjE?o1Y
      zLZJCddOh8l-Y`4$bv<i#CbDZqb676@@CfYR=8or9*K%2URfs^ipy!QrW=78!j9hj)
      zF(e>H1ghh?Y{5)t&6#wjsC$3EJNnCST|X}ggr?3X&Zg$Z2Bt<CnW&@^ArOqGCX>o2
      z4OA5z8%_;42I>e5B&{qN5D=)5_}t{ch4W5StAI8*ok~rNcR9AOW9wEn2lm*o*3vUH
      zF+1)g^^;x++G4#)t5W5*@(ie!QryN08ta}ZaXUOENB5SDK*`aw#Sx}sSLvv3vR1mZ
      z_{8|k@T60jqfZ1p8!LL26<p0N8cPQIB2eY5hc^X$r;V&(o)L(&C7td%eT^kX674gj
      ziRTve5Gv8F;W&B(n#xDF&jcytWerjI<mwd-$516#uWEP+RRXn1Bdd=WSLgM7Dm|ak
      z1?rQz1<p*GlS6D9J?4r*t$RzFwhv^C+6%d2et{IbOJODH0u{z0k82dBR*WTcD7V2v
      zRJOHWVv~#lN7BsaGL|)D6vlKjZGoUs7|7V+HEMk>pI%$Boc?9qoK+<y6GvMk9xK(B
      z#snwBZIng!FYp2sSE-Z%szehSF5nGLvhATzL17dk?+Qa{sNYJH(l<?khPFhzb=pii
      zyWBZt=8f!fEC4nMe!MBrsJiHK4i=Y|^n3`jxFnl57QovAUU}ZAG+x#)hj&@b^xB%9
      z<+jJ{*19NS&u?k5a^rcD#m#&s8UT|$EFD+8+dfrwu2*<0T3b~WiLda~gGJNKWxI$n
      z4(cXihiqSu61S$|eXz{FjGkRKSESy81`|b&bfGw3P^aga+Y;rf!kTi1nw~3{tzEu9
      zYJkofat>=tkKJ)uL(f5ut$bh_5P=syBENi(5I{3RsB*AIT<yX&#I-IQCa!bgdg5I!
      zyqmbeg&T?YxUh_Ga$(8W?7|VEy)L|uc)trDAZ~HtR^o#$`~vZdE_{giunQj{KI+14
      zRMYOl9jKT0owb3y?dp?vou3;2j-!*6I>FT~R#Qf`bVT<(Mpwtdhv@BS@P_+tJj6*Z
      z>iV8=b?Q5YRNyuKZ)DklKbZ6<>HflQ{EY+n2QgZEm9GV-@j4MnaRz<dNUr)BU7=P|
      zmTX~*66U3U0E4!i1Y>0Uo{sNv(sSb;YPmQS?&r!|dEaxNE=xv@qIilR{-va+YJ1H}
      zwYL|DJG3J<ZIh(+k}ND~>u|F?uc$;&c(8|`@>mvclfyeyp4ad23hcmJL*82Q)|BNP
      zc6di^z0Fc@IN%Uh>_p7r7ZEgxW*2d@BlzqN#H|i->rTXnNqmIFhszS5!+E=Lowi~x
      z759GYv`Jo2h!d`4ucIn~5ht0i0&`^Y$x@H4<o>eBqh*s%ZBL#qo1Da$y>qWE+t=ZF
      zi1E^thiHem46m4TG58$qlTJnDMS7-veEaq*uH<J24`K=_YkRQ|9=Q>|j>vl!i`;{+
      ze)_?Wn7#NI7n6}X4$?OWMeE;sgm-2ma$XfoTaeSB;DUm@Bns)4lO0uX*@7M$8Ws%L
      z@I4ELZMZ67v@-e#InUxF<R3VVoZ)K-u?e5J%89s!YViRY#D~}~uH%rnfn(w${sg&+
      zn7D;O@i7wOHZF)y_~my8bK+Ahi_iE)@;TPU7q~9I#2xV!?uxsrK8;ol?02dGx3P{5
      LRn|?l|JDBi)duUM
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{f%?<%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
      HcmV?d00001
      
      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
      zcmaJ?O?MMj7=ETrnlwx-4HN_`EsD@4X+z~pEmcElF)>Z04XM-*oTdXENGCCwv><-4
      z)17N{<E|@@MQy>4BO>bYpvU9Foj<^(=eTr%KKIUaGA+SHa_@cb`#$gUe%-lq_seep
      z4B$!tO$v6M*A}#dwrC~v1>Lj~DRZGz&@7{5j)-#rJ_YTrPI4;eh+7nFt&0nmv7pNv
      z1)HmS#n6g*y;3F0snl@=N?Jj9xMWr>&9w4bv8MZ5!u@|)Gl_qwpUURPhm*O~c=pU_
      zYGN`+{ZupHTUHS9+#MeoO`gi|w#_5VB!zykQZr3$rl^xtMzShu=DEa#BORoMS+b0?
      zhF&42M`L{Eyk4+)-^Q2=b0ZfEdRfF?C5LGRt@@fkL5Ii8)uUyrHCHJu+RnW?xiv9$
      ze2a6ssi5VkVH(!c3VM4yU=9b5#O2+ar|ocQRu4fzw~9{eRxs4SIMvA7BXfLA3&6IF
      zVd~l1{ES}7*|Z}Wmb{qPST^R+5&En-gK6ltQSRFyjIO0xs#OZi{m}-@JS5z(JhD2m
      z5Sq~|LX0Zd)&MBgn-3w5{s8(EY;jvpHr>gZUei@1u%EW)bZe|swI=ie`&VA)jCrza
      z?&(dpGLMg|cnCqUJE)=^5wSb0Vhgs4-4iN0uuVaeG0U!*HL7LN7}7ew2}5`$02VNE
      zZ<DEb7EDGnTT$Q~Q?Ua(17P>tWMxOXjU!Y>RcyzDAv}k404WYa9n?;XisuDntL)uN
      z$zm~pv2}26kFi}X{z?i|hVOb&u)U|(lWq5cs6x?Wzh2S3pkjcEQ?h?Im9>gCKWSAA
      z^BgB_9keYS4B$mNtp{R@kJXIgtX>g8Ppfzm;UHdC(CL|DXSn0co*d+%AYNrHYvu*B
      zv}kr)m&$tmE`--G6M(iZWws|31+Z{|1@Xv?pH;B8K`VJv;_wb(3TH+4F|ZD=iE}TS
      zZwiKr^SHo{*UDwxq@O;os?*E&qC4Ra1~IQ76kmIah6H3uK$bTktvU6S&KA{?_>i^7
      zH#}Mr&=P<(X18bh|ClT?inw@|q|qf|^oB4>-`_~keN)9-;3E>WN;V?~G%3e_)R52b
      zhVMteXa($M;hXvMBZQp@Ajo|yKSE7B?|_Q1dwziDwhiaa>&`wgv$XYziIpqoRbp|N
      z<jT3@8WB^@Rru<}!~EaHQx+{`0;thgyKgzJG+#&8HJ+RB2>(M|fp@V9@8MDIx@}$T
      z!DBqp3VZ2OkvqYnNn-DFunWZY^Db;-_jULhfPX-c4<-0PTiFE<yWn9NqM#C%K?=fQ
      z@hmZDpZEwk4&Nue7T$G5W1ZL06TN}h3I?KmD>x9{;akC>Xor6VN9ytIl<J@G|1trW
      z8NoH?>{DjuGfC-b8_uQF<x=VrQ!BI6CCLd&U6Pzn?gTkMX+4EOhurVf7FyZp=Qwf|
      z`?wtV0!I}rVNWJXqRH4T3}40eXzW`IuV7?}MOo9~=1?Z~Beuj&k9`+g#fkXsCHCv>
      zo7adLz-D^RAc+%5(?gnjvD!5}OrF5k)VfKnTddb@_SE;R<qwGACmh5b#_}_t@?VJX
      zD@M4E;Wtmcvrhb5X`5v)Db(-4xU9T_7jV*vFu_&yf}d<hmR$lZQuv1iRBZ(ZP{9Ny
      zDG`n6HBN3c{<EQR4*OkW(RsG#fsZ$M{=1>^DdZjFE9@a*oc;<^r%C-Z2jL?GBQGt%
      zA9>{l&RmBs3bBg0NO2XWsD;?SZtst*q8eGS_XDfAxQfel`VnFScbWKq(N8C%+>1f7
      N^N@D)@V4aq&VPoyO!EK$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&-%}G;6#i~V$Ql-q6i|?&wrWWP<FEdVXk%D37@;*Wojy4W+`?kmWReX|pZePA
      zOkZpJ);C}J(9Tq>I(FLE{ww_h`qt@pvP)PO`m%e^x#xV}Io~<=uYX_s4&V}MNyHS6
      zZ`nI`&VJ<O^p1ADT*=ehmYkA^D~$AR3!hcHZiS<5-E!=DO}E-k!@XZxP*6(>gT;p1
      z_H5Uy+4YW2{PS&N?)l?C|5iwqs@B~Hi=}&&DkDpMK<t&mk*>E~5NEo3u2c(E>p}5$
      zVfmItOrv6ztzy+$U;-3j7Ob#`rN<rC%ItEt$hz%r<W^R<^qQAf7+@)$E^gAP75c9^
      zuH#)-xH#hnOTW@-Mb{Z`uhw<GbP%SLsgb4FSl21^Vba7nPAH5A7-2$29)ZG}Cf>lP
      zoKBh;!+^qY*>Ux9XM0t*szM{>HrA+~O$})W&bYVfv=t`ztBXv7E%mn>oz@x=CibHu
      zJt)MSbxv(Vd#~RpoS4b{Z<-XGHE{-`Nz5u7>kT~$k_><qM)%;tDkuywpb}QTZzfaX
      zG@5qH-mZ8p$K8nL`rdpJSNE8^kiPq7$EmODmK6A&iE|h*@Bw%B;J(Z{oaVfNk0@}*
      zedsnGxu?7@o7(rMa1Ga!nCJ5D?~2c0;s!oeNbbniu6&_z?vU{Y(uE4kr*H)~Wh06T
      zW8svbpG-|6EE9{k#o5`-rgk}+xo~K(tq0MAw(|xk-r#I#m*)lbj-Zw!V0*lwHGWM)
      zf(;uOG4P3k8J0*8@0qCJG9R7S@RRu7D&2KkbYy9VWD~mY|AGjJ(;SGrO9PWgpr2Nf
      zR*d!pQW)sjChft9JruErL-tX|kA&<r((<B+otF2+e}dTKIL7aBT1{4wklXC}sb`qT
      z&OOCcb}arB)4$Lg!zsB#oZn4W=@4Oy_zzh>aMjPmTX>t6#GS!e;>wAe#%wtWyL9UF
      z$9ew_W&-xh{7bx%{S}!%aQ<hWeNIsX=yZ8ZKPKSe)Np|wsXoWQ#3h(N6;1vsl$_`#
      z=Wy|m<msOx%-<ZEd<jyqFn>)=gn8*Du6$1RcSmBceuR;J{|OT54}U}c846O=E*8?a
      zcd^9tbX)@NKB3k$5@IY%^a`(c@#%i~lT;e`j><izR^L<SA5i3fk-pQs@%32hwN#}q
      HhWq~kXia0H
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmah_O;5s55S)cVv7jg_eqOwx2ODF&2r)4RFE(hD;Q0X?E!LK_1;fwsWa7ae;Eyuy
      zD<mAy^ze4y_RUOZ_WS4a3&07sO=Ji=12tB*dW&ryvme_xJh|+vVa%ZkgRq)Bd&+;Z
      zZ@UBT#U}EE-9?h)Mlt&w67mh#cjF5}wszPd7*|1`Eo4zF!9;;jc3huZqt`BnZPoRd
      zP;r8u@;WMX^*sA%#LsR-*mD;DH8WTz6kd4Jo(#E9*suM8Z0byPZ6lY&lf3_;2$rbb
      zg&aj%uPDPkd#sYldI&~gkFQ<rw>)3cv36%1K+?*|$zl!Zl2huEOsCRGdhX~0*1KFX
      zC`q-X1Lp#6U|DXZDF`bl%Oq>Znp7=tCP!mwPR=LbW<sn^A7?~Otzca$VIy6ll_Ig3
      NF7cQmQBCY`{Q?n^ZzKQ!
      
      literal 0
      HcmV?d00001
      
      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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
      Ak^lez
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaix%}&BV5Xb*3g=#4xsQ7K-4L#Tx<3)&xA@x+zsKKjC+2~?vO<T~{@?_${2k@bc
      zvjw9E;vRNpXJ_U&AN%?B{sG_s>n3IxHu`+T9sZm;VkE-UIgf^kIPLMLRKz9>hJ`F3
      z;NiV<(d`RAHBn&LoR;RvBo(2E8467q%JhUGSKsY07_F!$EaXtMVPck{?8#8Hhl8$&
      zZ+JHl3{@}kdC=jpRQBZ2NFQXvu;opwHfgfKU=LK&tw8#ZqQ|gZpBnF~`5LO7d^Rf0
      z{!iQw^)ePoqNt^;$dw2L&+KtgH>5o&cQJFjFEUk@bsY_3Uz|xbTIKIf_thxI4rn!W
      z^7Io0(zFzkb7UQoW~B3bZ?InJG6S2WMH)DUfhJ0Hv&TW0N0}`8B~(Z%z!4o4%YKtp
      t1;EV`Yh&jmQKeR~NRnYmk7#QU%X-AE22s-^?lg!MJwj>_tJxCQz5y<yg<Jpt
      
      literal 0
      HcmV?d00001
      
      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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
      a?do+5s7sy*2Hi6_$Ov9z1PV5zZ~PAe3MBjh
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusJr4mv5Pj?Gd=rgE)HF6~rJRZo68$<8*|Sb^w};=R@B{oPvAa$oQOvx|%zJNU
      zp0E1@z!)tLIfh;+E`p1z=5(P*^Tjz$Xf6{?5yc(~3~k3yB0BKpE~G$vC^2+hH`P*c
      z-wMAHhWg1`OqC3dv}foK=KoeW(PX&&@>ek>iRCw(d`*gkt3P&rq$#%Jnj8B!sclu=
      uoYOd<nN-Bk`MG^$x0*v4@+OMr<zj)sLmBp|N`}=8YZ=xp8h*p%9GY(<=uLhA
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-}+b6r2YOtLrL?3I`Jt^nx7R7~@5ViBUW)c+ha~vJIBN)+_~omnRbs{s4cJ
      z@pU2bpva-`qn(+)X+OW-KLDJe>LN#|4aH0Z;>84VCKD5M^mHOS+9;h|$Ku(@)P+OX
      z&R`>v41)V;DEr1mk#Mw}9IA<tiA)K_mP(YlBIN5QJ%V$iW9cD}4IeJn2&GUZvO66|
      zGJO=$ND|7S?u$`Rq{{Y-O~*W`3E?<ge&=G~Ccz(D8@H(#3}j3=tpCYsTgOd1R3S4@
      zIQR!g@G{koo>@)rK~K}Zyi<1K>hEVewR1W(uy0-kesY`HF~@c8&N&n3LgNkID;GKV
      z96ip!B^<P{$(26`VGAYh_#?2x(F$DfvRL{d7c+1>BUa{z3!<f#vCEOLw_2jRLSjF=
      GyYdaXe|dud
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusy9&ZE6g}}3tsUHSa&Xec;OweSEe?Wvte28f6KK==Zw`KdA0;LMw+@#Jhx7b=
      zUvB_A#2h__RUum`<kJdjNn4Scrl!<bWptuyOPVT<0mCftN~v>kz7>>NjuFE=pp8|f
      zIC}YC!Vo{a(V>!gPIrdoI_U}uqW$K|5Cwi}TF;Iyrl~SIsgf8L9hJ7;%;hum-3{HI
      Sp6kdlhVMG@-{FzRG5rD2)k0GM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2_v<6n@^cX||g!l+aKbLv1x;5(-hk&j3n8k(9L2CJh5O%r;%prO9q)vuVYD
      z;CSKZl~;}za^pBKV_QFF`~i-a{sK_{g^tg=8<H3@W@dNKdEfUr?{l7WPJaF8r(XcP
      zj7kUrf!VwIj-JtX-HfqgSZ-#;ZnumZTZU0zl70xI0yD$Tc-sP#EyFSOdc|;Brfsd~
      zuLy``fr*@LwOrkDD|)?c1aE#5o7(>HqrU}?+_<*1RJgsqnlIlj<<^RY0s;9EGJ-(F
      z-&`ydbJsh&az_ZLt*T?!>*ae*LqPML%MH72xx8yv(p|G%-6aKqu?wbUx|amzlZ7tx
      zoZV>J7BkA`m-GDH;*+WfjOOf3L&XS=X^3E&g8UySRT(GE84ZUKmew;GCVlIKh9d|I
      z94?ravD$8I7*1K=sFQ7^U{@)SPMPR;7DwGJvn4RsBREw4EVF6ZZKujOQ@yjjWCQ}{
      zCbOUf%zV6IZ<=>Z)`FtG&*vVMtJclxcFvbdYue3rv+S6)n&EK&7S*d6ZmCb)kz^{*
      zG`g!#RG#FD*B3pZ<<dH(Zk266f<U;bJ9?w!I;K@4<z&hyUDvHz#$U~ba9&{AD@@<=
      zV%w~58jh^Qs~WrWtcut1W(aSv#Rku6$l`)PXh-%|@s7aBPR+b{#f`g0)y)pMS;aYA
      zl4X8NAleV<FiTYwTxNSM^qTFW#N;$w!4gZMH=Bk<xla!RKb2`GrK|!~!Gr?JdbDkA
      zTlTIs=ie~rvY!=P7dX_p(^uQObw%E~DiBZRpU$Nh`&|}m;Xf1Lq1QB&a8^KZ?I+bx
      zOI{~kHDy;$4Gj7jDKh5S({kd*5JQk}icBv61v5|)?)n=2i9Y`jMde8FY(x%(_vJWv
      zkvIW3O5_y1-xy_r-$eRUd_EeCjzvRJB|3h9XgaFy;dnY4-a{-M)%Fm7$a4YA@_me4
      zfKNDJpJE!H;RHU%^Y{YKa`gjfd?zqR?(&zwbKDc2l^}zFXT88&WL^oJ<eH3@z>BoT
      zJS#~{=9xf>mf~4yoWi(g$-Gq0l9|bz5^~geufPIMcQVWHD{l>^zsK=!Y53HoguvGx
      zRSDn$_*4bX3<bvq!QTx9XNH2~gWw;Bf?w)_&y%NQrIL1>Pi$*2!tZ?%)Gl`pC~>l+
      zA5&NvVdZC>yO}<~D?i}116+)}y^lqy#g|YbSMMVt?a{C3ymKGH$TjXpmi;5KeH0=^
      u-;UGX$9oSL&=+vltIQ*I&|?z$gNpx2;U4oJ;xFX!sE^!Amt5IHum1~?cxwd!
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ`(+fEZv6kVrx+Tqf2Ef+0bpe>gQinjt<3dEWQ2rV@xDjDdp43?RuokC3TJACzx
      zS4|X*CVqflq%X#OW`@o{^ySRi`>eC}+UxB0=bvvs0L)<74;MppUp|ym@{yk6hg{WD
      z8?vJ6D`M-1hhgN>aaKF1X)2u>5QeS>uPbu3#On=3Q@3)<4D2aGdsb5$x~%FYx!UC3
      z@cXtW&t`x9W(aL$a%;uy)!b&GNYI=caK{*eW;&lK6h&r~!E0m~d|MmKnc@mTnzgd5
      z^G&|1GxX$Jx<o=&D^;E*@Vufb`Xa+*+y=BHr*n4FzLh93c(PiV2jND)gl-Hl4E+0k
      zqSOY4K?z|*7&`Nc%Ga6)JG@?$cdDErlGk?044EvU*h+fzJ*B}gWEa2ev{2sAn)O|x
      zaCBx1XK*QHa<#(sEr$zz@q|rkcSOL(MPR?99UCV)57p$ld{EHqidv!K=Y&;qG-YPf
      zek2(B4Zj`frKVCX^Sbb3Lc%CQ0ZcK3jaQqrpK2k16!~I4;>G+7+1ym$sM?Vl)8E#(
      z^E8OtnDgTf4cO(v67J$2ga1%W*7|FPF{?R4-1^Qw%|qJq#i2JHL>v#q^FCzgbzZUB
      zOq2v-Ucv%sfP8YT##Qos$_f21yXA&a<gtVd#u);-cJ6DiV7%_CB8H^X{)tVC=Eyuo
      zqX+mf2rsSF97Qe!5JeE7RxDB6?ua`m?sUZByvq@H5C;t^ae0WN8$Go4QuKnVdFU%8
      zCx*|^mz?^7=qID%5Um}CmY1aC6>)82m~u%Ij}cs<h;HI4V#FqP^z>9m>_ja$Wv}77
      zRVhVZf$}ClBl?jxE{GDMMPSdMmP~*}&2R%ZDI;Vq5?T=Zk`osM290c;tZEnxeI}|U
      z&SwY_g~u>%aa9ZpfVuC8KPNHCusikvfym?uddzTCgwrSRMs9t@>>2J0$)`x4;*l-f
      X^yZjKy`w+SV@CsXtp=7zvJ2V2R{kfA
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY-%b-z5XQgRZE4vqg)WGQhy}fXn$UP%V$#&2Yc?3^QcSoYr{x3}%2~2|3VP3_
      z58<7+nwXe);RE<6zJiHy_OxmIcXKk|oSEM@Gv9uG`3m46?iXMYmQKZ`sEaFImzPrM
      zdMID(b`}+oBUC28&4bXS33I7TA~ER7B#mOV?>{EcGr~+OR;d<Bcg0{R^9OeA`|8=-
      z9|R|CzYLFd{Jl=dmA(zw*Mw=44VqcfGjX>W?6;3vPn)|>+RU8Vj#Q){5f(QBGsQrt
      zllt@CsqE{9zu6_^TJf=TU}N6JEanKaL8RpF@VqCJQ1k|p$wA!bQ3VgodYsJZS5Zn>
      z9%28pdV}55c$oAJ;U9B?6&({w7a|eo9i2q#gs`x&`P-PIY-1XPRTs-B6;Uo?jo=Q|
      znToGeRlm7ly3;W>J5e@ld2;)$%oA(e&DTPX0eMWZDzLIp#4R`|O|;8;<}Y3TLt9+S
      z7vi_V1fQuHw@`bq@)_Po16|<PVL0%Dt@dz(qw1&(i@3>(8?eMyWFp>)s|mNUGRAHj
      p4S2OrxKpvO-=XN;eUH3X{lFa-GKXvl;Ly-r6MJJiVck^S`vp#bg9HEo
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaiy%}yIJ6ot=)NkT(tAQbw?e>b!XB2;w+LPBXll}4o!6{t&R#sx!|K^Z4mb=`H>
      zeTuFsvFHQzp%B-eDaj)3)o6U}>vKQb$NqDB^Bcf6UQ{qaSh`Ss)l>u9)P0@U=BY{I
      zbg&<*Ypc5z1cX_y=&0nZdDOnpk*%OiSRPv!n#}6N6;2U0#!8N@vU;ei{!4d|M!oE>
      zj!@n;iLrZx$<3E1grJqix{68EYnVojP!CO_KlHBJy8B7BJDSi4(@1qrRM)t1kqqp)
      z$p|aq*u53U-XYWm-iM=WK21zm-5g)=&Uv=uHdONVv7i4F5@vF4tCMCXIlEuSjomu+
      zeENNqCgzKAnYldkR-0k2Q0+(7^x4c&l^W(6d8PNeb<Wo}B0N;=R_ralUo=cJTV$%o
      zX|EgU1LJ)>9eom8&bVM5d=dPWP{9L!P18K)Yv6W<N3S^&$I`1`c=(e$6PV?;$`RN_
      zfIZA{&&gSY2Ie^u9$|r72YAE3)6%fG?8S$^a50}O3SH?U9&<~0A|pNuh^I2*vw(Oe
      sBiaJuxs13J5KA(`3W#MH@l`;q$cS$OVpT?b7Z7VQ;)j4(_iu9J4uOZ&KL7v#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@>u*zK82`Q7x|O!bc3@+`7#F#8JsagNIzUQy;Ye+fjt=lLy6pfR+iC62Hql`G
      zV50Gx#xF+WH3ni#6eA<i#E5=DP!Rp(pP>JM-;BTaoOh>ZT?5Ix^E~f!`90US-1+aj
      z9{}vaD@~{qSUZuQ&Bya|cHEpbEjvD3u*QpX{gQ4%gTVSKd9pZFDq55}Dgw>ZX1S1`
      z%$eosLeV;9^a+Tk1ePa@*0i0s>|B0w#ti&(=*s1LW7iS_kzpg<ml+-zFivKNsB6?S
      znA<c^_n8y@>3%wSMDfW~CTpYzrPePMEqUADCok_X1f^;uGihVMaPRL5XzISNf05+Z
      zibWzhWaJV<uElSDi$#)q0xOlT!Gyu^Mg}s;Q&|arU!X;a7}8Kh@Vme&CCCmDVkCJi
      zksfrB9teaNj1sa6!D6XYoG#cVy`{W@yRGPz;>q!>otNUEWzH$G@nFF!*oOt8(Iqy<
      z(i@{IC(w{Aj+-IWqbq`~hzYd&Y`xa@Qg;~yx+B<x&63&?!J`OEYG(vn5EfXGDp+QE
      zW@^+d59LQE8Jd<Vj&Tt390&61vcbMsm=@@$#It0~m|){{ai%;*A9aOsfo;B+R1KEq
      z)0GP`n#W}t+XPnEFfp8rTWd&UC6-+<ZPz)Q8||vZrx0bXPe!m0M`UJBPbTx$g?MIk
      z!W^@En{bphsA?6vN3R*x%LVUYdFM5-KH6ol{k%(ioeY=q<@{9EE*Go|9Git`96a}y
      zcwDNsN*M0-(V6q-&2k6^QnC<F3(&pOx=aN75f0)R)<%t*yII`}qjpG|Wg{5EDK;Qq
      zDw!5*->u5!$5zGhUAefuK@4+(lzX+P75_n;sero+>lZ%Dw?~<J>*<$2&z-vawJ
      zMk*e>b@j{heh)P@#`wM|4F6*Lop31EDV55C`xV%+PNlGD(fv9F_HM?yWEJPEjrQe|
      zS&_*mT#`+gtg5}5vxn5)5(srKybMk^OVZJc3^-~$#E$D2>Rxz89J`qaW^s&<i(On8
      zLP4!|-`M--jSCyfItx2ckc;2!PP+4hutSb0Uky$oU&m&wMF5TDn#k25h&2cy?C}xu
      z%d7ZDeEbT^n|*u>dCkYKB)`hXw~}x3@vF(V`}j5F*ZTN%<U4%)dh(q<egpZ9i+D}G
      zh|EQk@1gVMYsjyBF8C7h?{;#pGy6t<+hcmiO+;foH=xH_8*ZQ{)*85h_;t$a_!A69
      z8{prMsQoehe1aByiq-fGyLo%q^?^OuOOD?78f_+mq`2JlASoG-taZB+QG-Ltm;z2j
      zkEw`q^d)5>M$}VZe-j5PF@zjX*O|jN4sOiV^l(ESZpgz8DO{QL6AB|w44F-s7-D^E
      zLk*ByZ2wOV$X-{~0||Q|VGktiq$HCI%O4$vCE<D%T#9f~CQ}kMQ@Y2L?mK83T}=;d
      zX-WbIaY%VS!mliITkKmLzJ<hlST3m_k+{nL5`9gH+dMhgz+VnR#I;Ze0!hzXTzL!7
      zhhA;`x6e4>8TX-|Mskw;#ywwFA^%&`c%Y_nyvkSvY8nsXn2RhfF-bXLe|`_+%uO6m
      zG5quwyx_kNcy9AN;5oo^lqbcL<2lDO!DI8h%JU}AJGypa9w&#dVqDj9E_GJdPP^0z
      zT|4Vi1G@H{OC8j;7hGz$uAOtKsIHB=RHv?uyVNROJMU5<UArhLU6y$s6WSCx(mnGi
      zYGs#>lb(lNX~G1b1Bey`g@!)SisPaUY0=J~#5FiA)?q|+U{rLXAU5!Y-h^qf8M9&w
      zu86I8O>D;-B8s;}3~vh^?}{G0FLvNVu@j$*UAQLp;485YKa2hNgI~GQZEi_bql37M
      OIlSb|$7M?E@bdpu#8ONE
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZuty@~=c7@X*7JpaYQN^HHxU~MIy!hv8RXdTy_e6nOk<L<jz_y9hXT(X-}1dC+I
      zWM-22ZuiR-zz{8t97A_6V<}`}go>3mVoiD*C389%rPYz+gQ1y9LaBFRvDvG@a1<Fj
      zDSI{)im7w{TNtWInz1<8ge^m_KY#m1>Kc8m7;2ee5=JM|yGMXKyMRV^{S!o*e#tSd
      zjQLjd<h*Je7>cENQOPG)UPk9*pk@>*hW7fU?7)4~He<-!Rj@<iwmnA)ZVI0s%N{Ep
      Qs~&3}>kh5IVfP%GfA$w(5dZ)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmah|U2hXt5Ixts#=&epFeE^X2~I<>*DWrkZCVmQA!^iAA&3t-!ibiQvq?5`ykd7#
      z0##plXnzAd@ly3AQmI6U)Jh0mg47>X_009kcG9#+*3R7Bxo6HfGyd!EKVAbkk1Hu8
      z6oyuv@13&qFe)$kji@}$$4$4f=mt~F+>Iy&Q=v~6)t$z2`TD}DTZ<HWouwtO;oc6M
      zM!4h$YebrDK`p!fT6uDJ!MH-V7fv=JZ?f(=p}VM{stWz<p&L#IPA&5MhEu=hMuArg
      z6%I^z4KKQ^U=)fK1#`+@bki`<V<C-0>_5xybL(phZgAUKsJjZ8S-<AgD^B3aIeuwI
      zD<0AEZEpL^B)gG9yJ%kl)oQVlMn8_FFrbk8U$qvF<Ag%m3uhKxYK|UhB~`hf6$vL5
      zhTqq)SUCuVQx=jqAlYdPDRfCTY~dif6cW(}t#Ti%J9Vn;j{!RdHC|*(g|ik$P}r^U
      zKa41HD2BhVDu(VI`?z3zXyGHAQ?QoZsAK&3Lh(KRiT00$$Qgn8M8uqs>{Ag#vy5OR
      zl$suet`#R-k&$cHX5{Tf3uE|#n^4oQ)ePOe<*x@dciNNj5BzI&&k23x*}>q#8%T(c
      z%o5_Fj`WbR3#RN8>nxrwFe=8Ry^ZeQby+W;X<h>vn7D{OW>&KZhmqllTyTU>0r-hE
      zCgZ38ly)#sdWECU&};vR{yU{@3~nK3pWMQbo!dgb-Qg5z0atkUDk)8&7hfTZuW=eP
      zID>C=SG$QEcV!QJKuJP(RErXhqp}*5%W3molhYj8%ePGFEz~n4jZM4s2I>_?H~BWf
      zUO<nwX^uG8iEu;r8))8Y^~<0Lo0x)Kh_Qc*vFA(gH1JF0-XUGm;jqoH1FLzGwmi$>
      z7wAv4hQIPtWcgu;>G|jAW144r;W?7#rqL#7(`2AR3+5^M4vwOVVcaE^dnn^uT*7y>
      z>pm;)b&#KLk)OwB9F~yh{>J35X``U~llCE*(KbGRAyK$;Trc)GRHs90bj<JAgKTRL
      zxT7)j!`PQGk@gfR^H-RLXk(s~{QiV=*ugOgdPlm&2Bu#=naH+vXY|lFFo?$};RmYt
      zu|wZj+<Fi>jAKIU;~y&~QPyYKW|C+_Hh1Pphk|5F0so8pT+Z*k{PVt-FKM$b{{#HC
      BB|`uJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUm5Iq+tw73-7il}X^+7Ibgi}kA{ek6oK*_HqSg0U}V!3A!myJlHz`m=o4
      znE2oi@OSt-j5Bv_<-rFZc4yAa+_`hkogcrxeFw0Id<-FhjZ^cpnKRG5T;H+1+~Mfr
      z)9`3A_GDl7OiwztVfURFA_6H@IWp}*uHHShdLD%uO{3m4+V9>U7g`nLpdcU&fke@<
      z$DV0>9dk6X!gL!1mab~wR*ZJ3)hHB8oDu?yS1F^`E;WmlLX$HzUE(TJtJhR{SRi_C
      z$-$7W7i9r$;5z3GS30irE(GEX3*E8fb}4^C9XL?6`d(F@NjfvnxXI@)1LL79?T>$3
      zXhGnzNiu*_EmA>bx=Hkvw59ik#>tjXjI#Q+I|7lS^TCQEj5```V@)8O-R{hh8uv6L
      zkz#LM!y=a0+tjdtD0>eyTo1C_8q$HcqahR2J<@O^sLN@%8D#e~+(JqqS(Ua`o1Aqm
      zw{3Pu7KvMRdgiEOx{~pqV8k2BvA|aKe_sD3$=Y%zZqF)9?zsH#CE4X(v{yuu9xp-j
      z%pgiA#!rb^!gEtNPWajs=J^v-c%HN%h3M=8tD-FFq%3KpEGeTbsi7?CqbzBnEGa^k
      z_JFisrvD0|pEOIHY+nD0RejyZU46yJeSOu(hMtM|*wQmIKC*f`>O<GlF&_{0%&d=H
      zJu~Oy@fSK9!V~)M()_?{L{KDV2bf2R?k^LML#&~KO&Hk05h-$veN^$3s{6s+c!uYM
      xXbQzqD395Nl*fEo!#r;R^=FT{&M1#rGT%IJfl@cmTR;kPj5+fPy&x3A{%`Hgv#bCB
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O>^5+6umFD<3v%@w55QPrb+6CIHJ@vkn+(qtv}+#)Nz7s9O$r-ZDA|pNEur$
      z6BcaPuwkYPHn3vHrqd}iHJxF>58y{JJ@-kKMIvCM`|f@3o^$Sp{`&imKZ)oTRpK-z
      zX!cNlq^I?-o%C0><)pW}C&!&#!|9pLew?C$X5@WWx7z8w#-Y)41Wo4lcC*EDvAiuv
      zWCfke*;e1tEvK$`2Sx<oz~x8#d*!WijRO%u6Q$yIruJE7i+usVTFaF4nM$605~LjL
      z6l+`6{Y*~20JYMwd*(M#rFTK}5Gi`=k#04O&*2tE?iYf_8}`6z^##q9{Ce7keUz?1
      zF|>D$wfr53YIAwDlVbxZ8>VGCn}V*T9u^A!k(OPp3yS9KmZ4CD=2c42RY8%|YJC#2
      z7gf4I7x{EerAzc0pRTKP**(3b((CjF$5JZ2N#lafmrTnj4~`l}uckM;5OT3(H}!5^
      z@0sj-!Kl+QQO=c-t~297J&URT5w3ta&5CCQ#l7yKv2DZ2xUH0hpqEpl5V{-i&|LPi
      zvcGG2LG!8Ak*JU!kK=WznpNl{x)Z051ttD<A}VdrUGx?iAVo*>oOMs7`>(=0THID#
      zyqrpTzL`Miz-&1keqK;%n}d@G?igmfgAI-2>`ob=MO0w+bM{dK1Gn0e2+QQgj%~}Z
      zkfE6UlG)asK@SswQ^nS_^j=GlYW5F0repMv^(Nm{?Ln_;6igo7h2ZaUlk3EP1p+Lz
      zf~Lo499|sW7)`*R4ETIM74UgT=K}sT{PO{S1{hd0iG?+j7E2~AR!mwf80<7SF>rk6
      z;Qfd^jxK61=!!Nsqy_Ezke0ONAtkj$bV$qE<=Bu`ev=5R_+FKYHz-Q?p!h!UGFa>^
      zFmtqk0cd!$>0;8`bORpHr8Xf?tZq!6SReOdk$(c<@rgCYh!wtrFDtAg!gq=mO(t*5
      zzo45VEs8|ifsUf&)!dgpuR`yFgLxIn!Muv(h#-24);x~8u>9(h_M8@e0@ZU``jz4^
      z$)^a95f{$GBHEQis{7m{67-%AmG+=wjBz@-5=f5u$?u0IpJ6@-O<t$lVB|&xnU|lP
      zlKo|9@&`Wi0~E>SCEO0EFw4KwhmW7Sht0>MQl{n5bgV&xW~dnePWUBdeBid%w{;hI
      z7G~)O58XA{W?RxEz3`?R-r}%dg-hB2sfi6d43Mt-q&wJxv#nTp;)A#ov;)bbA$&p)
      zyyV+nE4T+Mv0o?_eG)m1;RG;LUqC4wV>}$=Bot#e93vWz@ogwZ*~eH%O+3~quI1;@
      eQoaj7O!=kk`4InTM?74{_W_JiJN9McKYa<-us-1c
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZExCE7(F*YNQl!WwCPKdCT&Su!?x12d#B6d5X?Lgs1k&fYEpGE4sqq!5g59c
      z&+C52q<!3nP1+V|mDcb3QOV9VD9}zDlJC9Gb05w*&x`%{>7RcASVuXD34xX8vM=-U
      zMVLPb{4ihc$m2uTHo~yuHhZCyL|kAlit(i1&exjH9Xq6Jt5&bqcAgm(t6beFRqF!6
      z5|}Lpem9hU*pOb&iJhIDoeEqm^1ihDY|GdyRjg_$MtVVrFN|v0s+QmIQ_+Rp+Ky3u
      z!wVwUYfnaO3i(W6T6%8VKXQC3ntbf~Znz;3*R5=WTQO)kDa3F^LmF2FVtTfb#C3t&
      zqjW6KbK24~I_;i9DSd4_$DteeQ&<w1xBNZ{S~t&GQn-d23T{PUL9dK(_E;{zUC1`3
      zDfOm?c}z0zit9Vo-ci%()Me9i1k#njmR>`4TxAcP@$k^?@?QhE|LjD8DYZKCg}~yF
      zS%nV!)qS{KFin+qs_leEt1o?<d`#J7m6WS%M^#eS+s@F?)WxWRjAjc}^j6UGThw$z
      z&yG~Jo!}_H%kFayJcooS=K4TG7J3p71y;`|>Fvlh(+gy%!r#|$54t*is3E6L>-bm|
      z^b>)kZt|ych{>+ad7|{o6!T@T8@dOsEmdPI{~!?1$8`<n*8Ar8@L!RIBt92dI~Vpp
      zq4CX4AcYNVDLF*}O*fxfX7mg+wfd~?UeN2<j_ImyF1-D++*d^LTg*<4_$00)!IhcO
      zn!pt8=`lM+duGhmXwQz>7ieD`v*(DxxgypS;?#JF$d_r^WSii=nmfV5(%k8fm|9Bw
      zgxOcPwx3=+!Sd_e((hRPH4<@)>lMlZ41yF%uuYm0R$$_GbQeJ(gEd+NjVJ{_0(Wp1
      z>SMtEMLXLb?d&4s=J5{R9SX{G7xX1^zhU)f9wwk@RV9ERqR|EcLmGkiaGxHP%`U5@
      zBrN9sKz{ob*7s*JeV!j>xO~t&!AHOFc7T|QBEMxi-;If19HJ($fKO2%uE1k_HpKsm
      zHCOn{3X}L7`<YlGliu{z6N}HxoWK|{q*)~3dosKv+7EpFUyd;?pEF%$83#<INS*l)
      D@_QE#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+fy4=82=pz1j1S>6le-*tp&|R8wErwrItcdV!0?#DAuZ*WJ#6@Nlg~0GhVCH
      zm(KXs8R=6W+P99E838Xdj=uWhf8_Z4&Tco6q7S?Koju?AUB2&}^XK2c{087<tOn7b
      zaB9umG?V6*lUyyAoMd|4%v+Z#=8b}#9e13Ho!M}#AOZ@<|DCu$N1@4<wF-x){Y;HE
      zst_z!?7UsNs-RN-Xhos<tX;C5a|%bI`xm8SOA3LBa?T1t;gEq4+7-H=%uA&tvwhkw
      zS+g7K8LP5rW{Q;2F<s7@#U-<1%h>xFa0+%+VW7tL->#{<)hyci(z;c0s5~7)BYH&0
      zQ7Vg4U@Mg!Gth))iTVr#(IU}t1FdLbQm$fdF{MtlSGMZl<fsS_;aT(taY~`nFIp|d
      zzyO}33W3q3R2Ztma;uw8*Uab+xILW9RISRURT+)FL+yEmu3B1+fgaUOJ|D3c)`uHr
      zk;UoqD2iq&pPb9ASy_i5(uLCo5=bgU>qPud{e-!(oLQ4zXm|C9f;VJf7_ZP^-g3sP
      zSzYGFXe=djuNrtw=0Y-;+cZmAy%AnFFp9GZhWxHIhpX5gg>wepz<C$(LV2T<qn}7L
      zR<oYB%InE_TB5n4#V&+!0h2*YD1`kE>`xNgF9>|fz@^8cCM~U4ey0t*DWX~mX0_mM
      z*=Yft;bGWsoF%Cgsv*3E`5@lr&h}Y#I}I#gkw~<+Z0DSU!pXW~AJ|_SU&7TOmLG%Z
      zGS8S!!N3Zn2kRz#+!W=8O9k<+!U>;qztjFyv1~e`?mYwVixTP0lx61&{Cf?iZ2t_8
      zFu~mYJB>7(v{2rtWUZ7f2k)3Rvj2WKEu6e{D2KOCBO2t`FlvxPqrW^d{7OATXye=9
      z=rXe;zcrrdYirxXQ$Og`!#c5n?+GrN#M6wPaTC#jPL8-l6DS=WK^KVxxZMN3sRaPt
      z@xDF25<3XT2X@dK?+NT6Qe){R3NX+20#`3`{S{&@X~tna*X=V(ZZq+T3YSqLu_qR~
      z<xW6=^Czg)wP$fffOFwQ{6~cQ`RZN0Gr&(|^^V%b$>o}m5CsDn97R@>$K8cKc^J<l
      zs>#EMkw~(`h--2s``4qK<&4aAB>sT9ho;6y@x<>S*^7_(w*gYxLt5}UrI#rBhUV*b
      zSNVJ$cu99tu#+D4Umo^WJn<0K_$~$$eD2<Z#dw7A2;&vTXBeNkk6DIe499jczK!!7
      zUF7H@lZF{jF`l}Qn3N{LXBU^Z*&x=4qh2PpOQ9G??rw{ZK+Qm$y#hX_@J|rIr!358
      z7{TW}>R(_6x44nNL>^yZQ|Cx;q$FFuxh>3c7x7+{JIFIP#-d1XJKIDM3pRIKw5<Mw
      zE8p_BTRFG=U+an)Zn_7m<f`+ahM284ra(mw0Qja3pw$Q9&E^3tu{8qF|0}Moh>A@C
      zl9w+`g6p^U@WJ=KIJd12(1VBEfe-39`h5;wZyv`Jey@w)$U%O;tApzFp?D>FP=ox6
      Y+!hhIi)^h?ZoPi4Ti@cZ&uQV-KdCyTTmS$7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FU2_v<7(H*gP10l`e3%L}rPNBBq=kwiBE=Sn6e6W9P+BRVZjx=g&~D0R!-qQR
      zD9(sCc;StVUN|y?Gvz{Oq=?S=1N<e<_#edc?53OA^5sSL{d(SW&hz!=&wqaV1HdlK
      zMi5eHyI@>4dW|b??^M}#dxtFBJmi?h#p9+?sXC?;fu^v|GnzH*>E4mT1+(ZXXs&sc
      zL)VaZB#YjIuIpHZs%w^VGlpXnUDL_)XSijjPa!&Au2`;BwiQ%fA>_^}r2N|f`xs%C
      zh~<i1ofD{vLU_MrTW-HXDgBI$%gj870x2sv2kG`n(=M4#jx!4A%Z$^#T)AY%K-YEX
      zSg&yG|M3PcJsLhCaUQPD6-;N$D9oA)8-~h7V|LtdELqn!HFw6M^X)4nuSybQ)l`tI
      ziIWPOAM3k9!<188jksE63=L=z-&4Gk&WtxP7F%^RA}q6QIwFY1@d93qphIE%GgX0(
      z?dVj9Pn+&xyOd|luX^BlflTX&BN{<gVatDOa(Pw6kij}J-=U)kF@;#koHboj%0!|2
      zS(B8{j0@5(9Xrvhpxfq^QI_nqW6aMmmOkcanX!*qcExmD!Iv9*bnKQJP5!oTVzX+7
      zjBDj88=^Hmm|2l7(eEGkNk#SP*o*z_y!2px@(H#IYpzhwyk$>MSS6Rb)S%oypyMD8
      zQJK(=Oifix(uO^-yhwag$6*XoBE!6-YHK>5e<D@9>;Vl~a~9DOj(MqSIp#1KCdy8U
      z)RXK9A(YOYWr`l}BMlh?Ps)gnQJhd%FH)9XmRjB$(|KA+37yh0hSO|!dQv;o()mnI
      z&L(ucjWY_7V%2d>oAfNkTnuM%K7w-!8|yDq@aX7x2k$beR%K$wa?Q%TQDlQ@>0D+~
      zAPpS_fsD>O=4Go~t;l9c$6K-)pRSsf%2HJ0RKyh5o-Gl@ry(xI5^PE_*H^Jq<*HLO
      z2Q6vo=D_8pH*Ke=<<m<q_ylVRNk4HGl5X-w*0eXW6*x+|b*$lcEmx;_OXC>HcJH{4
      z#Lu4L2G1<S?_NT^j*XmUeKS0VBv-uP(I{`$jOR%wdz-MCfI_goMsSsOBCIoeA6v5B
      z_t2VcxQDiE_XD&m+(TFPcVy0V_uL21dg}aJJSY0d+RvsOpx6UMKge!B<muVwqXv39
      z13jIdiV*qPhcy+aX)P)e*<aApom#|8o{Bo%TJQJ>sg9B=zl<UgP$cj&MTyG^yuw%t
      z1snHq6t6y#Vwe;oq!@iF#cMT+z0820tN|~*Ks?()Ke`$gvF|6U2|*I(D;x7*o4s_z
      z1LbkN!7#Gp<dvv_-5{9MNqe><)w+m*J(|RZzqX{dh}^!$Y*J&QHaFHOHh48KNe|94
      z#^<mV=RLZ9A1I(}uh9`4M?5cNc9dal;N4B^iYSpbaefR#%$s6fkJn_a_Hp3u3Lgtk
      z@sTf?52j9#u#vYHmR##t#PA+1CDFT$s0?o;wbX5_<FqyP04GD3NZpl1Qu9|be*m`V
      zubBJ>;iPuA^%lDBAbeeW=%2mkopCcM5p4V6;a_*qa$QsYDgPLG^A?)O^ZmoWpTb7?
      zz}ZPOb3Vgbu{gVc7R)k=HhNHIWjol1DkFNC5xmA~dY`TQA;vkH_yCvi30!=H&+svB
      z;8Wbhb=<<|_!eK_M||l8aJL_tAZrUj))s=SE!48M7T*z9vZgSF=~}M(S!UAr;cN>l
      zrQS?2Z}%qgzgm{6aKIF%S5aapde&LPk~WgoYLpn(gWy;7*B*@S8`NMFLn5_*@n0n6
      B9ispM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%Sr=55Uh!-(fEq*x8O}hTs$j+4@4pA!N<kZWYgIljk~ZrQGd&m;K2{@qr{qZ
      zgdlk7n(mseuIc&wdj9~hgVic33Jdr8Nr(E`hV3l1VZ)?yE;ct&QAMCoFX@g><M6V1
      zFOgLk*fXiI`wD&Q8@CF<QPz?g`Y<$tehes#JB^F(V^i{L-Ry|MWFw1o=T_&&<-Qo$
      z#1slkjeia7Dh$P94~j@q&gHlh8e-*87t-O7v$Q2IC2__fJ;Y_ZU5KT6u)cA}rW(0p
      z@j6cPR7{*u(-95PEtAFy!%XP=DA74vXPI4b5f5UMJnP2Ek0>|xm$*($^pHxyCTHS?
      zu5xGZw_&EY*mJpdm38w-PK?`8y=U{=ZY9AQ_%!|$Fv1g8%UER=5*4w3^9_TqJXBC)
      zbTqJqVMf=$3&c^lUmU}DiFHhrIEkqer+t0K<E+Oye{bIB3mz9eE;;0kWyT6tz5y3r
      BhX?=w
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%}&BV5dH?CRRpXO;>8DOFE*Yzk&q@N785ygT5)KWlw#T~@@yV_03V7tyZ$5%
      zd)Uc-Kl{zh*YV>Mzyq#*v<P<_wO6rvH}QH`m^iI-qu+8)Rb{yJ(Ix~=k*gw$pI$b+
      zGKAhMmwL}>nuv!m43|mt`2Udw$Anu!?Kx#e8Jj6rIx8jzT}^qdB();6!)TchZW{Dl
      zZCSXHa6b{QlZ7dDkx9z1A%2!FtvV2NUT^<GEOZt|GeUQ<tIHK9I%n}Vr@glmcm&bP
      jf&fp3@4$myLI=L9=eTgSi%VB~zwbT<;vihf-9qpUNjX|@
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZwIYk%7`6bE2sXIr+hLI<pDTnB6;<Fe3>`+(v2lBBg`6S-N+fZ-(0rFEQ;xLwOf
      z;{_jp55<qaJS#ab_M%69tRv}Iijsf-`}-du#I`ssi*qHhbr_vQ)#zDP9nR9M>d)ge
      zJe$X5alRxr^S&fXM^(Rf827W1xD*=or-s=IOQO^)i4Aj>F0&}jI#F^QQ`ApaIUS=-
      zn0ir+sTtBH6|^lQq~0LX`8C%!sh7<9x?j32>MfJBB+6<{({TuYw~B7lGXm;Qqq(+P
      zuAeXWJiQZwnNGK4vrZ}$>2}QuNrjbN6L!s&rLxp^EO<Cr>gpUD)eqxU^^O;IX*kVJ
      zi}6lS_h>jDO|?~d!}V^|4H?iVTI%xamhF%VMSk5qaA=gA4YdPbQXN5C?$@Y}psnT~
      zt><r8UYEv$sjjDC8y1b@Xi(%g@PNj6psng3uj}8Hp+hPZ{k!`zq{HK-KCL~w-J+v-
      zfz!!95w3~#lm6<oahL|-F!lUyC>x|gk?$GZfTq!@et*w%x}<{c_oM|&OWSXUG@UK<
      z`Ypq=DUGIa(eDQ}q~<5@%N_D%b*JbFOgAJIw0*qEe71U%plt^<U&OkSpzSNqw8OTs
      zN7*7eD#nKg!8T=Q^X<YNwbLqStDQYr?`%iy>`A_}S4VN?;F5(=FG1lKD$RROaDe4X
      zv-$kLt%|$8aWY#>($T{_<;Dv-iZPpfQaSkx6Q9S#xSQ8sFi1VWf)Sl~v7F3sdQ{0D
      z$=UIuA3GCO*M|NMxUY)2h>I==Ul<R>O>se7gv!u4aS6W6d<A}q`6|4@{4)Fs^Co<a
      z`BnHe=GWot%v<mq%s1eh%x^+(F~1GJ!~8D%9`h~uedZ6~51DVncbM<OA2C<pd(0oh
      zpD=$4f5v<tt}=fPZ!_<}517AzzhwRj{+jt4_*>@h;D^lL!#^<p2tQ)}2{xE(u*qz}
      zHnRiQnHzAEc^BSec43dX1^dha{4;YKmdqi%&)k6@GpqhC^8x$|^Aq@2=HKAonV-Uc
      zFh_8YxepJRV|d6sg2&7g_>lQXl<^aqh^bINrHM$3c2>0Wy!}%wiguZ|nK;JnDv6W)
      Hjy?MyhLJh@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?+jA3j6#jnnk~ZCjTBJa^LyJk4QmH6lk!uN-hE^yP+Irih+hjw!f$SzNctIb0
      z@S!uj_)uQtL59&mM`vj8GQ;Srf0W~QHp_0P;KOFm@0_#W`Of8c^7lW#KLv0QUq-M_
      zVQ;~x8iU57J2+pm-NDJcal<@UHg4pt>?zkRTbYV$M$oLV<9WxmJ_^mL(R5lt%_wx9
      zDcO!|*zS~3te8y<2Zh$j%a<m`&dNzCv^Ww;p(`EWda;M;=(y$5b=q1prHVc0C~OU#
      za%O2^@RFG&dah^=jfnp-%eLI(3LE30Uma|8CNV{3XG(Ks6is+lLl-tu5g$!VwUg5(
      z4IR)#+M=NotsU5k?GbEKh&@kB!w&3J=*XGwX^+&<h{E=GA`JK+VuHF`Lk#N`)~7Ao
      z9Iq^7%<^R;Q)F)4=~C7xP8nrO&c3qQ&09>jKSX_bQ<!+WQM7XQf@!-f`zX_zD;tXn
      zy$xmX+vKoNsZ?Sr3LOIx>{r+j<QKYVIDkRIx@E(5iiS&?E%A|&`ez3<#4*GV8_?@T
      zuG<f3cvI}n^H#B_(3YzY5!2ZirW3{@eYM0V#pf1#Xx^+CMRE4wi|p^<M5e$_4<}}#
      ztmSbH!#JT3Zy@kL<w<Z3n@X92l-kR+5iyE0I2!?b*tOOsQI1Kxa~j?StE#c*r@}%v
      z#S^1q9@CJ<1%;@X=c<OCWw~ffiE%>1dtz)CqmyNaM0-iYq)d@$>r)iP72&}d-4gU;
      z?I6jQ*ECE&3pQc~fU_Fj7m96p!^z8#lR-J}2<k@~K8B$XVXO<r(lw9UNEBJ{I?p|u
      zZ?7g73^%V~9y$6f7;H*QoU_6_uE5ez2v970T69GX3xUp9nvS5Pu=Az#`%=Y{!Srq1
      zl-pPKh;R^XxEd;`lA>d}a-+Fp8d|%y48w9`Z7gZHg`?!SXwA8K(R`xeQ_-~MO)Hlt
      z%I<L9)`HZ@3`_fG*}BP6rJOZWmR!hQZ<zf74OZU)$&1U9thu*Zu!T=6PZ6Hhp^fME
      zhI5oU?i0_(ZQ{Lo|M`|>(1lm{+s#v%e$9OMCbvDohNQlVp5*pbY)<OGp;uuQyMFP$
      z-NWA=Mg%9Z1*3@KJkiD&HI2R0ChI8ZLqAW%^P($H+K1N|MRdZXiIL+-`0>9cn#3Q_
      z`<DBcYe*&^WAh4PI^R7ty#5d!zW9dTS6%L}icd(X*Gugx)4xVK(+n|-J)Fe-_@IH-
      zKtO8%Z{aXQGa!!Os7Gr6Z&MOlyly_Naax3OxBeH@J+w4EO6q??)$q<EYS%FaxK5=J
      z^K3wlMYX(mJ@v1Gc-=UOQ^XYP6F&A+AG?s$A7Ebc)V*9!uV5-!LrUj!A7fGo8aCg@
      zNovnid;XhyI7E4z@;K!<<%^Ur)^K@+9jxIhPgiM)QJ$eZ^Q};C4ms~5Q^3InxcnQb
      zunkr2%0+Tq!UV^87Ppy+(~wIc$fdxV_ItT-+xWR0_UZ<7c98C_8a}-HD>6R?C6f6B
      zzVhHSPww>Llx!s*<cJRv^Fi`=t1m#g+kg@aP`Ha;Lgo64sN8D+38`=u`XCijk-iW7
      z0ekuhZlq=Sn3p5nSivTJ`Y{%@%qkW|x-HUe{pTRx`Z#{aaeTl#_7I!!J$B;<{?+~1
      tP||1P*v4|k@EJoZS)M+HA@2;dF(hxm=V9~e)qK*BLR(OWJ06EG{sku3*h2sS
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+in|G6kW%c_>yT7n<k}6+`3$fFSLd>lv4Ks2~BEnW1u0Bph_LbV|yZFx8q5v
      zRNz1I*0;Rm0i@QcsD$7NiH}08Ju{gMt^rw|IkV^Nwb$Bvo%!>xUw#GfF20B%q;PUu
      zf2f!A@9a{u*R@M)#v}WdX;-?<UJMb1Dd%-Z@3u;{`nIuUD<rnsx>e~mj7JKpqA=bu
      z^oH4O-E6cBMm813u9{ubzOE3>RW|eM3X!E=!$=~GV;T~ePzdMp>j@BELlk4ON^6KA
      zt}t0OyT<Cyw{^o>)9W1~rmMXzy|b=craXJWh}|~(3Uk$erC(OiT86!JM3zNK_n6tQ
      z1_?7t$|-KGbo+*7o4u|lF5cGrZDCGD#)BQb!-CT}w_>0p<@{!n0<s!1IHPdN+cB!8
      z+)C}e`nISV?rd35-qdgcugdBz4JR?H5No^R;L2;X)TreDL%F2CEuBs(#BEDAI~)(&
      zQ8$`B%cwP*eS>ox>v@ZDy=fcPVR)RKsM&49q74)>x&JG)py3<}Qu309JPK~xT{H(G
      zZujokmc!uqA)3=ZH(HK?qdIZa4L7{FV|E&b6~{FK23+|~5?63T#C<q44G%8AE;|-A
      zEa78{)bHOnx($VSzh!~iUXgMf%XDrvj$6E~N&Y92|Ea>c;Jgnj1V;A{vc$PffV%=v
      z({LFdC?xOncC0O9*%T{J1%#Xz#XN>I1dn5gKb{0<#dE;>1pk~M-;Z;(!S}LnvTy*c
      zF!zj$`DaM|%uoog@R~-1*LQfmz_g1@U%+ujvThotF~cVUIAxTxl0qRCpyRwUCEn#-
      zwD1&@`&_u-V@~k01E{$hJV1UxFw2N=3?`?Bldp|Tp7Sf;aF_toteo0KQV8rJA-BlA
      zVX(yj*tE}N-UkaZc}d1fAUWzMXK>1su}UT(%1IZ0huUSgi@!k)aC$#{L}S9~YL%a?
      z+n7SlL7Z{3{7$Fw8eS(R4-w9I*bNUmTl@pj@V=-k4)DekOo?nR&ptsk609`Cc>!yj
      z>zB00S4iP&oaS9->sHMA6|=}O#xJy-L$BfjGi9R57f>6skpmQe;!|*}cLV)MdL~TB
      znI4G{9)VCFiE!RWxa4urTn>#<7_9(?Mk~otNYKxtS&Y)r2_Pgr1jPe(!PBuq)zXQK
      zw0f5ZNUYU(j*EMov17C6cyG8l4+5YW-z@L@w3aE&F^fnOl(~BXKcYzw9i*2{B2vX9
      z{91TK8#I>?Exf>$jr7$6To>R0J`&_z#M3wT5KXTPP)S#L8DRB@wQHBhY~A-X<_|R9
      Sk2s6R0Tl&b#b=HYKK~oRE=&Xf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7COK%cU6#g!q3o@MweW0bZKC$wYv_2Nn)C7Wogs4fIF5F$<0@F-q%y6M48W$Sl
      zZ_t%-<5o8{ap4c}*Z2#JXNC!yv}ts6&Ufzp&b{Ax{P^|lJAe%oBM331_r*w*#Gxv6
      z9b1)l<&kQNu`^WZs&J)x;#g*T9D&9V_nDTkd!@&%ec4tF;VsiP)i%RSCcDR=Rh^F1
      zF@vZ9jxa;4Y1;D9@Sr8#UD2{6!$Q+(3u{lfrWXf?n(CVahV|yZXel$C?@6_zT*vPD
      z8W|2Ur=-?R)v&ux`Twpa#h0^ZWa*g4Vgw5e$&-SEUkxlF!C;WmYG1ewyCaYMHZ^oy
      zL^6V9hUJslliv-jAjL2rB#X9^Zc~n=MJ>)WvK3Fjnt@BW%rIvTno@L3yI1S<sKGRe
      zr$p<UYJ(wlMimp%CJoW@=gqKk3Oi^AL&&1{Sj7Wg&cJU!gTCVo-L`yadc%$V*`8Zo
      zZB&25wxwIO#9$z4!n1$v6t05Q(k22SLbNYrBNW{x&&c!KSDgFeU+ZLbqJi7c_%qB>
      zY)nYx=P073K#Z*Sz)xa&zFy29BYunv_q1XmKs=!(_y?>}y!sAtBCNhgv~WNC3CX-?
      z7d^s9MExL47s>EvdMiZ#13Ay~5p;ftB|b)qKS!3oK#9M^UH%GN{52~44Ql+Yud(ZA
      z)dP*B2v_{FJ#>u_RYd4I($okY+qi*sXtX(ZaFY;6fzC6;3uAMN9!ybfibBZx8gs~#
      M*QpPTwyc2YZxxZ@00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O>YuW6g>|Hrlr$@tth3nqN2j|gI22xHEtR)Bt(;zuy8lPW0+=~F*8H88<+kF
      ze?vDWqKONCfIrH3-as;zq>Gt%-#z!^+;iWbzrTJ1IKWdKDS^#X>&$9cAEU<5_o7Be
      zeu~=Gxj&Ao$74^2CQyhYT+6c?Z+oY*9|<hk?)isNm$n}WY_u=ec%6XH1vFJxAfE&^
      z=^(HWjJ=b{3J8jpK$h26-hh7B?^}`Md-ONyk48>d-4`e)73Qe2SoVeEInhgjR_*Gr
      zIplwy2^6zywd!3`Kk^515dzl@tRSC58aE6Sa8n>%t9KQ$ZXkoKvNjCpSWwn21B=Kh
      z>$ZU<<kawvC*O?U_hitqdae{$ZF5MsYXy$F&zzbXRbVS2GdHN(35QMDXVhjWkO`;y
      zrKJ*X*$LZn7<K$(#~x8ta(tJ=Hg<LFkm;36GO&k+z=|zrt8coNO&-kWUUDb?IOxl!
      zqiE-o_pzty2^cNUlfjW|g`o^}914^!H%c;Ck^E7iFloNPEI(?;Ka_IuN!{X;s>P>)
      zWuQ<{>hqrBSHLyquhRO$yUMPZ+Y_vrKT$MyCMcP^6O_%OHo>M@%uKNLEzYd)UykE#
      zcD1;nKC2F}28neHafkRJ5!S<9+~cXNDl=5q3htAkVqL)la?@h#AuW|rLmg92&loM}
      wDVX0;`T<k_{1qAPB7H$$in(fPg$HpzV;Vc_m%@G=b$~}abHoH5;|Ws#025fo0{{R3
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      Na!vK#b6$pHe*;|FhhzW%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTW=CU6vzL=Z3|s&1=?z{h1Lr<Wm^-UswSkhkxJ?VNYcIyFyJ)HZnF&DzJ~EL
      z7!w~fQAuo~zBT%hd@!EfQb6P7VJ0(k&iS8nesjM4`1lFHI<9N*F{BUpBX01=%4pk`
      zGHMRDdTrb3mXva2qpyU90K=^3Wpb-y+;1F+rqU2%NO-T(Hmbsr+?3CF!xZG)^R9K_
      z^rUS)C~q;a9fs(pZS@qlRGpiB5iCCcy7uDL_kD&L-fl}vj8ZeCDx<18!tNTSUmZ3W
      zLN}!))oq5=?0<Z7b%wyE-4YS_5z}!7aRz@jSJyB{;p4{2rYSnyEIFNiS6J%KlcqRS
      z)W8%LsG{AzX{Iyk6i+5?*(!Y~oUT+#w2BcVaNZSPWSAS4<l(9kMys>orn|tf^v}K`
      zNMhL)nF)h_Mu(0l;i(Xu-F~+roZ1QCSjBE~v(5=R0UtgF)I-^$hQ>Jl@}Wd8JnDl%
      z?+7)4ekGe5EBq0@TV+m19tDPA)3h!6^2BM>#E4Lyi0qYH#8RrK9`k)S*3fYk*T`74
      z`%Y7AOLt}#MkR~}ujsO(Ii*NiLHMu;4O4Uu)BO4np+$h`?Ai$$?Xz@iB0v@(l^@`2
      z;TX{)B=%zS1DyMuKSFY^Fu>A#q~3ZWE40s(IIu-w+a!M%G3;O&_ps{OJSkknCAyI)
      zE>lVxXk0;NnDB;o2d4Aykoth^7bM@1s}HVth>SqZ6Vtu(^iYhs7={wJh7xgC;uxC$
      WB_bzk#n-<{H72CuBdImdYyBsq^X0Sv
      
      literal 0
      HcmV?d00001
      
      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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
      TyQa&>QMHULlv*w-sro+v2&Ez`
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmcIlOK%%h6#gc@W7m`M<VB1_lBQ15#GXJyOn9b*rkR8WLMydZA*^tnQDTVg%ASyR
      z#hWcGfdyj6rV=3GRsyL%pnnF|AR)eUXW|+&Eh{XI&$-9<d~?3@^8LSlxd&hgms036
      z@Wi|2_sfgrqhN8*Z`2monw63_>opFqANVOK10ylN8!&G2@%Y>_U>;R>gM9<ZeZRW5
      zAJEVW%1z3oe>3pwqMWVPtHG*)M4@=ifLd?t`W6xxv|(e2hQgNE2ezwq|Kefoy5GE7
      z=KBo{Z#OFCgKOnxRnC!71^d;Ofr;&y$fC$sh#B0vK?GyVfK~AHhc8KkjBS`miZ)>*
      z6>2AKoCvj3HqxOsZNmz+SsVRG66}Z%ndS>U@4oC;f^vQDz%O|#p2zoCC}JT6*TC36
      zqwKnA<4HWlK==IMEu9)qycTUdeQe$lL&?T7VmQHjZ%U@c_^gfR#F(b>LX>u+X<+;j
      zff>l~_L_uwB`lD0eBOu(m8!NjYBvHFm6dv%g=^8FS+SU_S8SY<T3Mm#s?Kgk4qbq%
      z;7K8!WAibtRV%;epKl!2cUic+E=TbZk*4sffm07nTvTKWo7j>Ldd)y8#N@lJD~-cu
      z#ow$-|5&=6&j^wMd#hgeo9hSVR?BA?$*{?hC%FU%B1y@<phmbzvM2PJ9ib)rK}&W6
      z<p6Km$ne|YX&HUgh~p;iV&ErgeHiAqMTx|3FcZIHgl9Xvg~u?;lOPO52&=rwyF?g|
      zLHL6Re`<tmcq>AX$g_By7=o3Hu-fD#Q5D_M48h#_Hpbjy8{=-yY-7^RrP`QsbLlqn
      zZmz$LnFj$+a}=O#Bvl6e%E6!-KvoT6LJeVB4Wpn&bQqWA9(yq)BATR6Qc%<hl%y7M
      znl@8wbJS8=lQgEaCW-9Vnoy8b+L(_hd`Aj$zvPZ4g~Gxe6oduk86iTsBvdGug$#cr
      z7Zt-LPcGAN)C_sd;-or_IW>m`HIF4#&|H>vjHM2j5}wBknoCKRfKGTxmH?DQq!TV&
      zIl)o1i@YP;P4{Pv{XiwGzD|f*>Z-iisXXUA#(BKgc_r4FJ0Zq-ve$Vd)|tB_#(ApO
      z`BJR&i?Po6Ugw=y=a*ugXL_A0vCb<v8-;z2b&zalne9pEt8d{@nG(fJ+*Y@H(qHRB
      z%XZTLa?G&&=a_Ju?qIcdSU!NMK7^${;;?+oCi{fL@+pVqGY-q=`sM%6u&m*Hl#o>p
      zi{4@~>G=oo>FuMwV0>TdIR3pmq`hT#tjA+@Ert;5Yhr!#5G)xG{-eReMikdO93L5V
      z=T~g*%olTJE_D|de(WjG_Zlx8LZ>r?PG_MworU6b7K(##q4eQ(jkb+9DCMt8_W4Dm
      F{|20kC9ePg
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~ixn6n>WMX31uOHVA}9q$yOEt&$eOFDfk%A}CgEJJr_DE$l#ANIJ<P?XCCD
      zaOI^p-gZWvA?=Kv@dvcm^)LACFVO09-d)m2wq_=I&z^nH^FHS}=e)W9==&c4oWi>%
      zIy4Mk^FH$m-cC?h_p4ilx!USvakR8q^#T*RhTfRh8nm1ImiWD;!PqIU1sfWY8-96x
      zBcP)mcr~s`|7PG<#5i59l!I9f31|G027RHr=37YMkPRD$>2Q|C-?LJ#_~*8_uKKl$
      z-qlTCLuRGA>TO=~YGrwjoO-ZPu4~Ax#4rnq&k!=Wb%OxfvIfg3sSnRcLBkOn29jbu
      zZNm($XKZwa)=?X&&^l(r3awEaX(S1@!!HxfI|q(F@2>`4Wqs41EY6flJjcQ~PMC1p
      z)NR>m<2gJ}qU(O}zEY+rQ3V?(_uZGpF=^ukaddLudm^+rr)|6_&J>+Xk?LBlU6YpM
      zs7V)h&k4;7VST#ypBJM#ndSQ8){THQWudOHZgmFKRz<?1`l!@2oV770b+f|v7elFw
      zJV6{SC+JR53fsN!-ap9N@~->y)$Pg}3z=8o<Nu?n36^pAzvXU8EiAf)CA=vOwW7gP
      zC6}YE3)St~s$VKgJ6Wo^Cj>}?y<DmIwS`TuUiZnuP%V!<`y#>VNOEPH&>~v2vPIN0
      z8$_*a54Ey6xb|?TjV}In^Jxklw20#-?xN>AS{=yn*WwEOJ`DW<diiXJyYLkH_#_C2
      zBZOJ*<X$4=Vh|n@;YWqgAMT0}gn2&(h#^?n2y2gfI*H}DeI~)&kp>3c(FStv@dk$6
      z0lk4?cfe>M?+zpz7<tV1n8fKnA*uh2wEhbY>A#{+{|!0)cjWayFsA>hSey^>n=Blq
      zo+#ib{Uj3y$H`9Ab?_`LU0I@{p)Ao+lyp=ErpjO}%HV6p$*yU)PnQf%+<~(zS<slE
      zkrU$-jUh3nXbek&c}cJ>oxhmQ-{{dFA*=s`JaJt^L&504l#x*BOofLv)0xIgc$rj4
      zKyC#k`Lx^$DxGOXSm%3=bVT?h_k<0whruttVPx0<(pWI;*y3~YW1@3y(fzT}ye49z
      zhuWf##zyl#iHRO=i*{q9Ux|&*w?$9IM!y;xJ<=9E8yh`?(-HHtk>>sG9){9ieuZut
      z!(teT+xqPTHCSpv>u(O=YnYAD?y<Hq$^~~!b=tUUv#g<-ENiM3%ci*G-E5l6h}+k7
      z2WJk<j&TJ^;{({nhv+pv!V%+RHryw0j88FPc#1+eJB4Pm71(_9B*CLOJM*f=3Y?vJ
      z)szL!&OH6{)}obCR+?5?Su*`yj9x%7O5_X?Wa><nNd7TFbr~7gNbtHM5?&={lZdGf
      zkgH_z31BUw6@mo>+kOI=aO58zN_ahDw#Gb!f94*RE|2Yw?^0bVdlzqfOK<DIe6BFV
      kvCK3HW|~T6no4DwN@XIYI`Ec4JBPQqT0C3s_;--{7w_afD*ylh
      
      literal 0
      HcmV?d00001
      
      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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
      MsPymo{v$&F3p7ytpa1{>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-sW-5Ph4bjcKFC`mNPk$)T-a=vfh@MJN<KRC@8WO_!RICbCHtf0l<Li1-8i
      zQQ~Y+ka`Hq%<jy-nRzqw`StbzpoL=t8iPCGkKE-?i8~h2)V-8~J4$sEA$bx>=l9VU
      z<EaP}13H791_eAEyEns$@Dc_+d43QKtjkdFqDYQn2JNmxR&wvhPK%+|%P4h5;B!Cp
      zlM4o?o{4S@sA@YJ2@?#f7EBb2$YISw31x;{y)jTf8x{;K5u)dZ;(9h63VF+i0dXz&
      zB98|HE`4SHICVvrp_NsBaV|u@*pFt?6IZ@UZmJ=ks*V|~ZWs#L4tN}k*uVipHDeS8
      zs>JU<h;sd14t2G#9vo52Iohw1JPM?t`Uh-VO^7T;Qi4VIGQB#`=m6#B$s8-qSJ+Lv
      z@NUep{z6_2o1|A%Hr+yAH(}}}Y>`jJQxvwblj3$$y@&nOtD%BJ;-V3%f*SA*qy3Xc
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~ixn6n@_1O_ro9U`n711^PjeB!oa}X(26$q>)sh6k0y5b|FjHy6o1?(ht3~
      zj+c7rl`|b3@uD-1GZ1F1<MgT*UOC?T3mj+k4_ME;36O-&IFrr$b<TO8^E~IgzyABv
      zF8~JcP=be{^R9YdO{fo?L|(Ht6Jxffc8R~NquHus*%CNIqibZSW<GI!^{%$&NbobX
      zR=duq&c?nMLtR13Z)&DfU<ggRhFgwqB<9K4vQrE`-OOnZ8CaIVqdEknWOaySeO))T
      zo3?5e)-8LJT>Q?4Ug+v)XsR_OyyE<_ZtBhm!(h*=3~Kjk;z#Bg__&qR0$?~U<2BR=
      z;YC<R1DYAUJ&}2Faze&2$YRziBY>cUll%NsBp5^+!osLihJ?BRPUEbEGsHzTXM$-N
      zU8p1U1<TNL1>xB(;|=uCmYU0r83uz=PRPAs+%gPeQMb%gWLZRx%7}>wz75OJ+yHSI
      zeMm3_G(!_2j1j-#o@}H<L4}Sf2?IxjbZcO)B%g%y42h$lt7@ccU-q(75J_ARybUsR
      zy-JHJ@01`miAyqu5F`zpNB2mBBvLXi;|j5`W?6QQ>d3Q_4xk^SGTy=%EoTUNOO2{C
      zmTo%9bSj8(T$PZfysN>N4P<2S4qcYloJCjMwD8EvxVFE&B$SwxF@<R|ASDEaM+uB9
      z2MN=Rj2oCGdGA#;L59j!RJN~YB^}8M=r?8Df~Yf7dq@W-Yrt0$PZ_jfQN|LM$-ba}
      zthq3$TN);*FQ&IPS2g>lx@ypVXwq6!jd|79#k#!7MYk}Ve$^e74Ni?yry7O;PUcLf
      z?>=EJII2w$JtD@y|HY^+0E$_^wq@H?dIu$uhc01*p}ks<vFbLIaTgy_;X3<$&k!W~
      zvh>S}4rK&~_{>Dav$2w)4br8aR9v9<L^t!ZTY?b3UPxPJi7}!tIA?9yYg$GZX91CX
      zp8&xiXH8SH#|^bm&?vB6$qNx(Q`R^|4eh1R2M&+uYkEgL;t_C1dKQ4jM)7da+D~>3
      zXr%ww0rm}f2<tzhv0a3sduWRG?xH2?-Gvf;hPI_WwC|#$Je!Wkc5teQa|>b;5fkqq
      z-^N$*FfXF_Ir@ivif`Ee49O*m_2#goNEGR!BJE(<tN3>?QpDS{?vj_66SL7BbSP30
      z?=DpODL&V%i0c&K&_wa=U{2hk_`iGkd!>U^W%rn~Fpn3p@Z_cTqf5gI{jWm-_yzcQ
      z69T*$^}Geg`3ZDz1>L+A3EqZFyd5LF6Ip%=Q~V4T_*vZMT`>4Le8Ri&8IR%%9>dqX
      z7vJ+Ze&7id`2e2tBwq0I_>KJEqq`<Z2qG4@@ji`WCWP>y8+-VGNcSRzC%8i*ab)p1
      zRLqlrQ}`6CH1lHtkFbUuMPbk|TM`W4(g~+%X+a5nipzU)il!|u5EetPAUo#u7qPyL
      zR`19*8e;8YvwdLpv6r<s`k%b~ht?OLQXCHiFC79aA3_5kMl(;LhhIUQk6@6-Q9kPC
      z6D{3)kWX5?f^IQgfI&Dth$8IfBT7-jW*PCHgxE)S<ZBQ&`hS+DOR)P6V8>n9Zc#PF
      zNWd^3`0|FUr9l1nHagw25S@vPs*nGwPO6Ux2TxN{SJA{XXyX%z@+|uKH4M?1;ZvC8
      z(^#Z&m0x$093ij-^&rVSC26`zE|!yQ!W=A0+>1Dx59CwIGlqLuE+^hgBNG&R4~Z7t
      z2R`rKC6`XicQJefn|7!x=}wP(79w60L7S*!D%z(<BCS+J3LQkcMaW8#hTL}nI2K)^
      rQ2Y+H^<g&z=^AjVK(1DVIaUtiK|z3rgDo0EE~L}APh*mTKLGv%P2dkA
      
      literal 0
      HcmV?d00001
      
      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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
      B^S1y1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuTQ37q5dO~gw5zqKJ9Vi`NxMYxN+hC@NE#%h@27QAEA3g?-SRWU<&Su1Bp&<#
      zKT6DOh$s(duHVdjGw1!|^$oxlR&7`U`73p!%IY>MH?`j`?+02Hj!dM3P&XpaH#Vd|
      zHU_nnX_imwSCkMC*8-E(-^HiCXQJ)Oj(`;@f>hY33nW6_6qxNn$D_`4v#m`;C8_Ar
      z3k#b9WB=edzv~$<+7s9;{s-uZeN(AaN;Ls_;9ux81V$V<7|0-jF$aSfCvL@3jWd%D
      zl1Q;N?Z8GKTQd&Q=o1*KdPX02+I1bAt9naQpQ_(bt(pov_P>IXHxO9tq4MXXv`psA
      z?*t8f=y9_&BR2Sy0?v^!Iyh*lFw~)q0*(58W5&j?pD)4!aZS*lCgYbP30@)Av_Pyg
      z=m)Y{UY~sW99n;fWR|>us%_Facdd(I_XVTwdKVLJsf#IhD%nNunX(pUNlx$-`Glmr
      zLt5TrP(EN(K4Ok?E+lusJo2R3qLWe`Tg-<!=J=!(w}>_OT*MOTOw4E*E3iHR4h4%J
      
      literal 0
      HcmV?d00001
      
      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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
      I!SBQMKj|EApa1{>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7IdvH|M8UNi)Hp`y7$+BdZ+~p+#HrXr!2?1O{UP*z3hY%i$RP1J1mL<t9ZZ<K|
      z5g)Za>ifw<L9AM}4L%`I5v$gjwrV@=IGx(oPPNn4v9)$;r~Rj+_V=B8cauO`#?0*A
      z@0@eb`M&f0e&1vB=I1ZH0-z3Wc;GTHX;-`_J~Mu0er76}?VPzZmyAza-yPq+A(`q-
      zX7V1C8W=aiJI=ZRS7Nt;s@20^S(i;`^7Ty%43y<}rn{!iG7voN711Q?3)7i&evyHR
      zH6y*yr2itD4U{%!w<o<YQ0{{VqZCTu_rZ(N)IQ?Y$Yu}57??1kWz(9n-EAF7g#dzb
      zO2~k_rl~2iSu|AnV4;jxTURH;aXyT<hxIa?=!08^{?+MBa&32KTQavX&a(`RS)EP9
      zJ2uC2X&F0{rQ!eslSjDSP)E}huHHHWMiYfT3a&)2eD%qEz0C2;o#@DBs3=$yv5)JB
      zXHqjSYTK1e<QFJR#|#h7HxL@}%0A2laVSkC^OqPXsfjenj(Q(v7pAu;UT==LLmBWU
      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
      SUc>8r%I`&k|BU$|T>k|RhTACs
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmd6P33yaRw*NVGw{)koku>QBVo1W0gajl&Bw>+NWk*1f#U&(dh=g>^!s6gMjHoj@
      z<1!*33Zg_ER8R;ixI3tbIxaIhqod+DI<C)U)N#%Gow~O>O~7&9`+wj6d+_DnbL&=}
      zsycPfuTGt++xvgG|3M-etfo1nn7W-+wXAAT)$*1>wUOx3L1UXDRSua<={mi>s-bq!
      zj74Wfs#_egnNs7qXD_a5j5w6Ul-Zece0{VbQnjc)!sJYxIeXI78Pl0~0#nNPXhU;L
      zRYS|kRrReAd(<u8pMP*=&2O3fvu2;}<+MkQ?EC2ANy{!m>dc9;R3^JQT3=VwjHXW2
      zHMO?X)ekxuEs8dcV6qlR>mzuXUR`~9T|-NxsTptTP#aV7^16nax`x_Wt<oT#1Xd&K
      z8tPg`GZ}?NCo`Gjqcssf8PqF4AqqQmRIJ|#b@(ZVdijVcFF@TWQ>cOfWl<(m+SIy+
      z$n@5wiy}>P++KH^8m+FXKe?)@PM*C)vt@A|nv>-={}5551DS=L=~}2Gica>Ul3sEd
      z5TFt&MOT(qEs4yI)Gm!Qv@rEKyvX6Ak#-LX(9txQ$rq`QNYSw<94wqv<mOHo+z}29
      zVd@bd-MB9F@hbIG84U|iIUR$+tc|qHuB&Z`)QGldVNQ_RDgsm~wb@OPrO{;&Yz~bK
      z&?thu&E~puFa{9&B<a?e0F9+_5MVVJv_z(37@B8C>d$1#P3YQTjTqsUo)DmkbR2||
      zP?~APzb)A*<0Es;p%Vf$i6*0sRW&strNd=ZG~Wj)ObyU9f?AsmkrfbUuYbo``Z_Z}
      zC(<mK&hkiIeWYn@%i>5=OSFNhpI1eKu8r_UCNW8P%n8s*1clA2!9cb|W<_dR8){%p
      zGpkw_L$hLyO)Mt*&3KpI**;ghklcvBI+#wQTb!4nH$o%%EH4?us9%>cB{jQx2WHtv
      zlCh_+H35ncM$nF&-C9-u<C*76hZYB@j!>6V*F14)W6Mgd8v0FrfR+-ZV^s^5pv#3v
      z&{k2c#sHm7O{fp!HMYK<DV!+J@zMHv7YIfafo~bL1gMqJ(eyfKnzo}Etu4)UHK^hU
      z7C0XgsnW{LP*W|5vECiec7xVfhzr`!i$p}Ni&~nhs#~OQ7X;`+3L|$@q&cEfejcFJ
      z^b4i{o+s2bx$R==p4eay(B>DNEK0T}K$o~m2Gc+tXpb+BZqWS5it75-=DKB(8BKn=
      zoPO=l6)|wuRy_@)8KB?Lm7>p!Fc@axgd*UuuO-@2RqvW@a$WPxX#L9CXhT)KNa(i#
      zx?090rLK7vnh4}?t*>g5)?62$b+n#I&4fB+cPf-NrI}GQtZc#vKV45ZIJ6P!cqoi`
      z83J^pfQJe2I7OIl4$w_5)4@{o<^bJ7TOrDtI+-Y{(d!;vwJlav5#Z)}x-~$z#W>DG
      z!G`hCrUu|Y+S!bDsv799ssZJ%iMBL0MQd8CVXuCSKjsAK8svz^jElmSn#&-ZoS3S`
      zA=;BeeFXh;=pLrthjuODeV+-@RzSX=?xtNbo3ul@3n$>8pm`bH8=(7Whl`zJwQj9`
      z+CvXGv=_?zql^Rep!Cu~Q>WE6oFc>haDX16M=`WZ>%>w}jYwn<JszOnC*++cX-@>`
      z$#`1T3SEAGfSz{CSFMmd&jje%ggg+Yxk9tXt!f3HR=Q6s^%FyIJ-aADf*>%Z`Ql;~
      zCHL%Cgc{EVZDD#PK-+1DG~h1*`Xl{G<n&sA{z|XQbS~!aS?W}%1k+K8oDN5Ehu(y8
      zYB6dPm?X{sRC{7mQxrz>hD@k$(BA^|HvL^&Q(epWs@7)cS&64-y4ak>P0{5tdB?E0
      zOR7WfV&3YkMzeS5J<Q6TiP{gE9&MT3+SnLvYKhcLTu~iq6t@Jnj2ip7;?t~uJTHW_
      zhdvTmo$SzmVYnA8&`|bifIg$op~`~U6Fs#3iHQ>cVmFB5!91*`RV~#3d(|iw(g+K|
      zjNRN?4;lM_Vhzn_Mw^y0<##o|v1gtMe`iiChsOOf`Yu4<(>DO>c+rGW^HT@2gHBV<
      zp$guGSAdnc38Lh4RyIOHstT>i?V@E}3PIC?t_u)vQ_Lk9_LFVz${JuVO36t9`dYe^
      zR2^+-sj3q{QX7~^o&y2)u^-)mQ7|Sg#(4fXO38f2fjAD#cQ^}L+(izkw~x4yp3wZ9
      z$=!h;oDCy8tP|2m4^xmY9N-?J2kDEenzgofy1u*|jg$Et^J3nDBlI<~PVu6FxlP)}
      zy5x;pED%s8(miy8TyDjM`vkbJz(x{AZEjsn%VJ6FAK*es6bv{aQdhfJW<V|$!F3b#
      zjk)N}_OWkb8G?Tz*g*k4nxTyX$kXa-G|<b8o`4-)CY!r?i117o?!y8+K)9!&wCMOG
      zSbi0j2TY?56Jb{!?$Y1H;v*ccfD#^Iz+?iARpRI2JVHinBvbie)yar;siLbEi>EgF
      zu!3FMIpHu#B=i#vJvN3v@ww}``l^<eNCW1F3*#s;{YkMZ+p9xv_2%-6eX^@&AB
      zU<$(^p9y{qk>+OjUVOZG`jeS5AaH0%Yg03zZ2}MuDwnu8=|t)At&8faJspP|@8c=7
      z+2N^27H?u^<mBlAo*}M+QQbILo=*($EbqBYI9+Ft(V8T>bUDur@G0W>n9XN5wb)}q
      z?kjs#y}P=UET;wdbnP3}M{Dgd>23~rQ61nKUA7v|I?MuHTLv`B>pFyDwTZ2S38@uF
      z<FZmND+E_p%4G$>RjriEiXlSDWh$~T9A(u6qFa+IzGacwt&3{vmT8A{Y}et?RgIUn
      zzzn;z<&bxiCdJ^Pm6to>*mqgeCFTwQ#?VMhtftJ*t$a>^e-=*}jFm2*8=xR%I($B4
      zaHt(5GK%>=d>$rQ@VO|!Kj+oJ0Jz1mJ{`6^OJwkG`veCHj9(FOStEwtTXgu+0Njvf
      zR7S5rlGW%&*M-<2{3Q=Y!LAV<MP`?facPlZY7uI=P|HDCqUw0icRU*_>X+cUQeRgz
      zU}`j0>g$T7I$d9DB7je@ZK-R3)EN(EOJr#yST2Bp8P$Wqu;AYeohL&m67ou=)nzDw
      zE9lH>u^!!_IL<Sj*;Pvfl@8U)F7+Lrq3DQnL%b4L^$0%<?l$qyb_n&m0B_?vT&PWy
      z@R8iJ#P@n`y(_>c@Fa(K9NFv>t95vjRJSw0ySN>0b7UC;M+g;oGeZw7XS#GQwm9(f
      zc80ed;`^A6K9Y#KDqF0exat@}ZSoMkOF;Un2~VmCl;gTda0&8%T5dqcdd%x5wpP`|
      zJH}LVq!t}A8F%TH9y4JQ2hX3b+Q*Lxx;}nnZzF*jGV;CvKcUxQ)s0f_Iv;1!X1QGF
      z=L7t#!_OSHIuQ;Y8U^?{{sWeth|w+6eZ|CER}I@KTrdIA8t~tVwHm(|;FtK1nBTDi
      zmJpfi3Twv-GVgt)J|{RuFbW3GBW6qJ4YJt{v!c-!43JSTaBS2I9)lKBs@I5I1J_N}
      zi0=m5O{t5yBW}bnMMkW#s;O!zqAX1^;5uFje%<6vR||~%uLe_d`5%m?JtoPUpa8A!
      z1^9gtxL*rgvx4-cah)z8Q}zF<VTls&YF%0l<9h7k!pHoH!&sMO9Xc}zo3aT3{(wKl
      zfa^7|o|NGKeh!#EG_z-X@fqYZ{z7aQs-k8Nk;_oAJsGnmjG1Z{su@%=kT%kUWhtUy
      z7~6&@P&v6#LJ_eA(crE!h}n4;Ws4<?cY8g3luQ<nO;(1o9AzFheJ1)v0cFdYB^A@>
      z+|EEVW=(}PM0d&-CjNj**7gBZX+i)t?&UwGQqWJ8Dp7|n4H8jnFJH$Fc#2AwoEgB(
      zf0HwoH#4BJRM1^XO^rqyF%1<KEkJajOl1dDNQD92@mYCNLo;HLk_FHwj?`3XGlJpM
      zC@j=b0hKEeA-k@5f)2*1MuZK!PPB<K5fiMAMw=vD@1UMWc&VVg-ec^lWdN%&fD$s3
      zw|I_`NHyyl#d^(pG+o+U5>TZQDDKwWSYOwYsDH@CV;v>ty<h=?%4Mo7poU1?&DYRc
      zU#|mnk~%D)%B2t4SR`SoUA<&^T{EI)br=kdLh$<3aD>WKg~(x2k?ayQNW)M;s<(mQ
      zhWL?SG(>9A{zVA+_38@4i7O@a$tyZm+Aubt#!1WkO_61?L7~HyK14X&*5JkLXlqk-
      z<TwO~(SA{Yfnp|z7*1+HNNaq3RdaI$^#|ltY~i8b!U()oAH?iw7c3#cl<|~+ktmdi
      zKa_{1xj~97a`3+g`QSpM1OP`-0MDrj&uMthNO%q)7j{H6IAK3Tmw~sa@6dnT`+*lW
      zR&ecsrxQ^V<KDA)H~#ie&b-}}yNh~vlKDGy;Xb%_BNNvaT$fQAEeC@Y)E6lMmjzh&
      z$CI!xblIzc$m^3NurDeeu$zjfl{`V_4r6p1<(A~M)4+$Rteu9Yu3b-olAP5>M>`Fl
      zyV~HKl6D%gx#JD5MbnLPtBpb>LCY;tX%~m>-E{2S)fNXWH}Bu&X5LIwbl%FKWu8%P
      zw^85DLQYB0_R1#}hn;ZJZW=##war1><?u?Jn_08D;}Ng!O3M&F#qq-PD$PnKY=zBs
      zI(}~0+(}a^&9E7Ewsw4!!0g51u(g|JOfN3oO|v^?cpl|KMwdV?mtoj0$6#IoSzd|F
      ztE;FFg1x1nhtnn+LtE%LgkMjjt#k_L8U$AB>37sb+vsO>CtXZ;A?J2lkLRsO-$}dZ
      z0oqNEA*T5}?WI5C=}mfw-bLEy^eBCUHy!l29<S?AqYRllUP8@99Z-4tlIB5K6jZ7|
      z&4;=eXvf2}0BHt2M?GmFO-IYeLq+ASh1NNAD$;C<V*kfYTR{WqG`zLZ#w<D=ZymJM
      zM`wUaLaWA875G`;J4BbT(cbQwi-R^yqD8nuHPv0H2};k$77u8r>UGc>+-tr2l81?>
      z#grp9P-bcIPU_uG(YZq83lTO;yd+KOH0XyO(NU#wb#RRGBxq#V3?_LB;tN`$B0i|d
      z8RgdMBn~FYfI}z$st37L(+|h0wqrz+QSNJ_p`}5e$H)mgmHx1Uwl}Y%<Zx2h(Q4y}
      z+TdN-zqRA-)jkgTT#ira^25-QE)0r)l7ZL0CyGU}XLu%(pn5mKEQt<a5T3zsJWJ^q
      z(hLYcOfO<UU!r0xD2C9VXe7N1)q90z(qCvcy#|$d9qRW6oka&>_;1nALH`En*V8*t
      z(D$K?A4B~<fwFxHCHp68_yXL%q*v)*$o(<?e~Z-bp=Lj@$;>INILHR~Vv7stTSS?X
      zcsSxlquH<3vmHQ#VUMflv4EQXP>L}31K{+Bdgk#_v{EZ&F$d`!P$pXXAq+#5@?^AL
      zRMAGOOK6o=z*;KON|}Tnq|muY^P%nQwQAdFc|Wb%h>FH2^y*5js7bT~`=!Fqhu-CC
      zMfIbn$GT~3#?zS2iz%=1YqSVh%r9ctYS)uLrn;UkCn5R#9iGli!%NZU=_N7s6+)|O
      zaVZFMH(ew|Zv#Y3&wx0R<m$NO5-P6QajdHRpKG>@g@<dl%c;Jk(?r5PXtvMQ?98xl
      zCtdsmG#o}F8g7&)dr3*b<aJb_ANG-Bwvnmd#Vo?hFYl*R`occ3h$pqdxh=U;+h$9m
      zZMqeUMXaa8D)t!tWc_aOczcgfzh_XF00@p~P=CSRJ7HCp%2|}gm|i(VJvmIhxEJ-|
      z94djD4&z*Sr1^9_RDCA*rFl@|YVJ=<xriFM1lykj=|UbvYj`kS&1JL+^c_gQkIS(g
      zR6$R}5T56;^cs)DX3BW_lqb;FJdwV`vfam%IfNB?9)fm7JROEKlaE2zaXin)$%>Qk
      z|74!WbFqPZ3L-P}5FMY-tN2vDluzgD_zd2Rz0%vTirbF;kKHKqIKtBhunYYHpQR0P
      zKkyqW95=)lJwxoncWLue=wX{SNdx^l$1}u6uJ#PEIc|s-#tm_G+z_vh8{(s!;Thu7
      zoTQD;0X(&814{zXEYQa3!+bW^Gr#X>1m@67DVdLh(TQ;;@kuZ~nV)<-52h}&lAl+_
      z@&P_BiyLRFXPl25Vw|o`#wVMfHqQT>rg#L4_(@X`Q(WI^x<@dD|Ldms0u6<#Hp3KK
      zsT(iDNuU)l#g#C{pTQJYK~c|zDV_&Yya1+nA)Uw<(E?sgr|}x9;Y%sXmr*PK3Z{5D
      zw(T#Y4M=ZeI9PlQOmPD}#2aZp-$2jujr0a@!iM8!dY^BmuXrol+{S5qE4GJj=c5pc
      z>&qJuvAqkXxC5qmHy_XUzyNo`;C68>B4=kI47Qy2@Ws5Bf6Wi@T7HOc;79ltl(`#5
      zct8K1ALe}tCiqC)1Rsf;;KsNK{?;?W<KrfHTHFMy;wBi4n_yGi1TT!6;P$u)-WNB)
      zy>S!VA2-2g<0kli%(QrD+yuwRP4M`*37!?p2NV2d%mmdJo^w|X)vFbsPE2tf^}?fe
      z?TW>1lXVF0`MW58$G@F8<CgfJ%%K0@Cr;NT98l85qdSr(_>uMmU1NJedx9m0d4fM)
      z&YQ3P@M8|({qW3*pCgC=0K9wwbJk0kv;IiA{3q(qFH<4^nU3aHX(+!2V|jx{@j;r%
      zZ{g6(-)JtsO=s}CRLB3o37_|96~9jx^M`aPe@wsTPY|vA6m!?-w2l7>gZY&9A^ipZ
      z7rn~g(c9cX?<=M+l%lVd#jI>jQb{nH4(^FyOrA>NQp8;bBcf8Fy73s5#m6Ikj>_hR
      zD#VLaSR2E`aP$y$j2lC>XAIeJV_nB^6lPa(3>DgalxG&x<1XT*aA;i@@mF!PSRXfw
      zjd8Qs7B`DmG0Vv6$A(Lrqh}X~OJfvHEu8PUi0=Y^To>_cZ!P0T{pD^NW_EXdBg^;;
      z<4f;JSX05@r0mYM_K}y}smMsGHzlh)>aOy&DBLA?wkHaflUraWEBe=9S+Y!D>^hSp
      z){|v!OFcnW+&%hBTIZ_!Uiww_39{JsvTp7;7|)h}NVeKoHn^Es0v+t1MS<%!3TI;*
      z>QY#`5>AT1<5k7vR|805M5$Q*XR1NeANOJEXsT3$X*%u;RT<SFE_9|Eru$Otw%6-R
      zDui~Gj%cLgtq9eiW8xIcc_^=^+fc7Uz0-}6Z4?%lxu?74YNu<^Yh&AL=AM$Q+x%86
      zSMMX|f-8-ly=8Xxryo3iQlrUI$3pI75bzsK{nS_*pvKWiHJ(O;o~kD3KJ=C`g3IA9
      zsYM>ra>j})MloF*YdK8L)=OJ<Q4eDDnz^1*y|FNFlpe@~;dW{&pwaD?F>1hcc>IVu
      z;JUV*HsH1iw_1rs$g|va!V-DoX4;|?y&PMXL@O*ez0ED$7AxH56>h8jcZHph6>_R8
      zd?71!?K%pC9J!&rAs=)~f;qm`3a(*BTF6(cQ*MyAsA|ge(g9mLCiHSPby1$P^qPMT
      zIqD?xskwBNI)!?x`Bb77&=9o{3UnGBqfVy^wTO;Y)pUlcp_RC=QW4sy&ZKtS?^Ct(
      zusVyLRZHj(YAO9iHPD+XN*}65`dBs5=c<MNrIzUdn}uaC_AI>tE5XuNJVu79?Wfx@
      zbc!l)NNX<A3@r6_BElk(k5xdNZBR}NQI<-&1C*oV7<Yn_Q^<G4h8R%}g=cd05~{VH
      z(qkjLrAyas$*3;U&2sHJ>@|z!Fc#jzuK5^Pm&5>X@z|`Vv^{k9yj1+#O*^+IXo@@d
      z3n!n@HLY!7g;Rmp2Lcr1<y~w-YNy>;$obpp{{HvULnjFJSjYldVF|sj=w5nivQP&?
      z4#)~e&r)7HHh1incJvQfMg40-P>fn>4jP&W3YP;Eu7D9;L&fU1G)AqZ<J3ButJYJM
      z+CWRy^|V}Vq@N@GDz!-q;si(*o%IA!4BUQBgF+F;;18e-M5ZDLUdULCrdoOdlmn^H
      zz&OfMeJ*hQMT8*)b8(K%6(S%CA!_gyU;pKH`g3PH-9gxvFbGNULBQcxul)O{R}8&=
      z4>2O8MN^GYZE#v3OOZye82r2{3t(74ueglfh-J)2QvMM$x-j*|fbCQF&>LWW5C;F&
      z!}QKWy2Y{v`iCb|KrF<2A0?^#DMjs}0^A3yy;QCq03hw9`RYM{?89`bdQ|skC}e~-
      zd;LkGIkZ#<RQ$LKOeutYV$`XK4ZcqwXgT5Ru-k8JIoMJsXAgKn!xE&2)<J?FYM}MH
      zDRO|SZ=x*eBq$`vO+#61J$1N?=Dh(j=<<l(x#gmB#Stnut)TgP*sm9doo|#oZ8W(v
      z!jV)OL`Y2n$%r0UMp@7vvYz^fEwe1>fXYG04FQQy)*(`$-@0$i1#{-Cb~xw+&CMOV
      zbVyIATg-A>SI{qLucMy2gfnCvWqAD7#R3?1yzrlccITY249)?mKai=OCtJNpS?VRI
      zJ=`nxG7VR+U=I8XjZ?4E6!jX-QGdlSy-pGJ1~sUI)S}*^bJg20gLmjs^$)s6y+=2y
      z_vs$>0X?8Tq-T)+GTt9lpU~UtQ@B*0v0r`4S?Y5=%;(7b%Q2roC^v344hG;lMGJ9E
      zOrm85g7{kylgkFAor@^g7xZ6Hkqh9=h&o8%_Cy^mbLbkt;Fo~DB%Bl;NMC{S!R;A>
      z$lj&M_b$TKQbGc^IHBh%3!;mzkyMG!2SqnLeTT|?dx%xM6Uz~^h=d%jIlP0EAJWI1
      zw+@U%sU!p@L~j#BXH?y_i0?5~{{WGHPx-2Y`omDmai3rqa1kt;YuI##k)%cCx*S!W
      zMG#dX9BHEYih6q%(I-wZ!jysz;#{4C9Af`zzz@AnDH+htPDv+>XkX39q$DGYQjDOk
      z%=Hb@;+3U&l_f!Lt6+GTC=kjKppq)y#z+YC)x?5%+B=Iys{0qUGoooWb}F>aiYQ<t
      zh)U~_w&cw}Ja0!VuPfBQ1})6ihxl$<fJPn}Mn3tB0?IKU0MLVsel*PJPm_#7nhJV>
      zQLOtk8l#Uk#`{#mDH>{##<D*p8c@Y)&<zVYi#)w5i&N6$bg#!_kw^Tv6j|eKz+YQC
      zXLOpBMrK1?K!P8wGsde;L2!CK*a*9BE<1Gw5G)mjQ0Y9tnG#Sm_HgFB;{HXLqN<B_
      zb8vRpXL?C+Vst9*?h7lHw<w-uyGc?wF|SeXZ=+u!w1Q~Aj6yKk1)+JBfy$JyFX%4|
      z2iiHL-J)<n+_gYB5Kh_J@y_aG4kpJ3ZeN^5{{NhXJD&Si`#I=$Hg~k3myn&tWIZVt
      ziJyk~xYDm{k@+ZIi%jT<`iP(GHOS@mdV&kA;mnv!wlRgm##AaZrqM)WI-O?BhJv0%
      zXBqS8XU0Oh#5k2MGftx`jWg&vq_-K1=nmsddeEq&r;W4d8Dj~(WGtmuk^Vl)er`0;
      zcSbY)U@YepV+Cg#E4jaM4i|wQZmiN{?e0=l#>Sc}V=4y9RWXb)_k^-xb_3N5lzb33
      zlyk85@&U}Q(rV|2cQ8hK1<8QHT)m15z@NxLWOh1Mdbh{l?v1~FF!mO8mb!if)V0v#
      zBHGs5Q{G9aNpvy@<>fs5<>RjafBo9IsH+lRo}k3RSjTXhPaG9dVw{-ulvt)=QR1<l
      zp6GG<zoO9Qw*O~^{xKGZD|E=p;*urRut$A|dTZ<wxp*t1b{<&iKSbT3+FaHZ;#^(c
      zNPgo63K*NHo3WYt8aL5sV+);V+zefAqekO4T4vlqYmDu5jj@BSHSVU3#!k8!>Gz<z
      z`;7Z(zwrRQY&=MRHXfokjYsHRq<@LB9mYQHZal#uV?P%fPxC0_03T~Sqlf$ocQ9i^
      z&ST@cJT|V&W8=C!*3;!~Jjm1KrEy(uj%({L;@Y|<rmfT-fBR(o?f%$XE=24>@Dfvv
      zoZ0*jG<axN4Sw|}G#H1NJ+`CaTZm!!_wev}*!t(n&RNoh^mh|@`D3C%(B7Sj83&?A
      zdAz2=#7*!@-NU27tDVOb?&fh_`TbM#b7$MsIKNbnA4+4}#E&*9csH{=&M)Cfoa0$B
      z_q2`14)FA9dTFIO05LT_PVe$xybm5Ew%xGJwTq^NP2NQp%ah*yFWuVlatU^DkDrVA
      zYsAKm2NQgPa)1mzO{63<O37vuWtq*CZ7!pu%;nV2TuDcp=TN!1ibk2|(RlL$nuL5a
      zO?N%$y6&^$y_uy0PB_a#lXYN9VT(q#m}HrnjpdCjSRr>g)9LmQv1>ox5bYYUlP6<-
      zo#fuzDoha5kWgW}L|a7?h?$b&cZs%&0EpR=lIjv|73qapJSSu?sSWw7v9b@@^61B7
      zsyt$K7&0X#2`K@cAxRzscue;)$O^I>67S`cvv}T;P`4#nydYYU70SAoPtD>paE;!}
      zi>@f|9_-$!ev@TW*t`is+(H@VE!4x@N(JVvRASyn!_42&Xv|v2n|IPl=3P{Sd#$;h
      zmYF-~7r0-7=gZA|Xp^~%?l#-Cnyi*V!I=r~3<T}M9+<3llCb+$tJNffZsx_HOt@tm
      zxDJ#}1#}hm#{9@tg2?9*P<|Rl7jQl90jxup^HNZ$bUZ$nYyg#x6CQ;e1=Wo<QIH!!
      zW#Mx)gU`mGz?+d1)9yf-_n}37uz0v5XJc%UkrFiHbZRhV9eol^T}L0l09r68xUIyk
      zwj#|<Xmb<VYAZ5I+#I;MIWpaZHa7t|g5Ik*k8JN%oJTm68Om4^3Wm~_)K>Hi^-QZy
      zLtMw)krwJ1t;oU4u)NI1z~(He$PJ~*b4KhrFO-{l-3AJUa?{psq>NCWJo!U;X=`r)
      z3u~`aSr9HT;GE=!d`qflg$qnX4)Qczypvaj3&fIk?BVm~?dA(A(_%z=jL3))-GV9W
      z>4{+KdU_OxhgO>%A)ibWh)gBxd-8yAS~$I(FDwaXguCG$PHX31gfnny=Zn`-_hP)y
      z$O)R_D1}gJH(%mrL1s5gSh94BWl64%<pS3PM#z;OW8|yu<fU`PdG(T99xt6M&TfZv
      zWFh(xYjCV1x-}S_%XE8#XiQ10Enah_ig<<)YVa~7G-C%O6O%w(GT_-M2>36t=Evj!
      zRk%!K=87SN42Mgha|!k__Ib!W0EBx6==L1tna@+1`2rB_C7NUYks{{HFvwSEjrnJ~
      z#(b4Fny=9f=IeB``3CJY-=xRQgY>5P79BL-rgzN0(`V*8^n>{>Cz=0XpZNiIGe6{>
      z=11Je{FqD4Pxu(~Gp;m0=TYWAd7}9RPcy&dlgzL9RP$fF)cl$+Fu&p7nBVeN^E+-g
      zzvlzy5B!?h!CzR!Us?u#Ygzn*Wh)zpN>i;Qm1FtTAj_{tTghs+6;N}mG&R>sSEpMU
      zs@CeJmRXtV5-UrswSsD!)m=b@ZCSCYJ7OTB?%-cy4-o+-P?v+k{0Hg^m^v1XpneSs
      z^BAb#00=PefVvVC)_b5N>MarHJNRl)$%yyggx$wW0SnpcTK+AlR3QAzd@bIlA=I^x
      z*MiDGIA<4M2PzW*v731vs31<cT+K4kXVV(GNY4RbtmRwzdZhKFn<;|*O!;DaCziBx
      zLFM9T*hK7a`f(EI9V*}(c@wVPu#>r&Z^A}VPriz`fJ)~+I6iPQs0=RU3$SN-lK?Ys
      zMYPwAQ_e+u5n9#obnA5J<*kTQ%Pe{^d|2Kd-|XO3GLheo47ZDSaA$D|E~%+$X|O=S
      z08FE90hfM&w|fDg!SdE!<MQ2d5HE-o+IF}FVaFKU&iBYI?3jah^X}Q+x>s}C-0@T~
      zc3@Y9txm^bmYi^~O3AVYQnGb4Wm(v(v4&8dHI$02VKme#r{SPSSi@<eRYAvFBWSiY
      zlIB^6Ia<fkDr*e=9QV~oyV@E@*IDEB?4qN~v>~P#m_P2<vkSz6jo&l1({U~Dh1+jn
      zpnt;;fRZCjC-8&(5ESEN@5qsjwM&j345$b;g&*<eiUSy^{!o<`d#^Jcf0d?OtdgDl
      zsLa-mOSDz^K>S`(l3k*$A_c^gl9J{UZ50`q+Mkk?OqXb@2!hxzDcLU3RuK+mhcaav
      z2#12T6*;9w$TzE0PxL8>@GqHFYK1ano=?Ga-~*nUM##Zc=SU7Y$PqTJP?}^(Mi!@f
      zRwzfG`3&`x8}vemb(9jy!So`tM0u!ZC?{HhBYDQc!KiyysoaC!Jr`A)c$T~6-rG<_
      z3Ll|}%L94QA~!Qy;}S-BE@D*Bq1@77?qKY-<_@l%wK|uBx%TFc55m^H{PetX`vwjK
      zZPCD7qrA6Kp4UbXp-A4~iu_Q1>e>x-YbZYr+hLnaLiz3dd}SZES83rsq0Dd}9nW~d
      z?JtrfVM8d`&M&xBW+)pT5lYu3JU;}c^K?<nv0?Z9q=aXAUlH!(4%ikMC6A0&^bO|*
      z^Rz*r`o5ujZ3ewzo<4cOvsdSFFfWMSjS2SFk`MNlp5+<k`E3Yz<_7c2_ECB`Z*}jE
      zU~m06dv!hs5mnmU@pd?GJIAdDi`5CRo*86XGs$P2NU7Fr%C_cEZ|fu~vQDNlYc4G3
      z6q;bor)ky#I@wxCr(37eV(T=DTBp-8YZ3j-s-`to4P9%UN!MGobepx9?z5KA6IMMv
      zWku;P*4cE>YNGe8X8O!(p>M2KR@O33vCiQv>t~!}t>V7cxjfK1kB_m==P}kre4O=j
      zJ_+~JtY2`QwT2t5OSsv(lvi56<O{4{@fFq;e64jQZ?vxB+pMd3yLAokwXWp@)>?ke
      zx{g1z*70}N29;@DuliXVRf)A(m06dnk=7P9*1B1Zx3;Ru)~#x$b(=cHx?M#;N3Gwf
      zChHD8Eexci#5QBruUfE*lN|`8@yq-Qtlw0PoC=6Fu-CN&2O>AY`cu`J^dcw=A0nn=
      zCtd=v+3Hm7jXKy1o1?u^9~G%7+8a&ADfV&N8%?1RI4UpRXc|qx@q6(`GiaLX&wl}x
      zNhhnLu&XcA!s+-9;Wbd%v{(iBub{#d#g6>zpnBpg+7H<EmucZ34$Qm>Dwnh3)Oh5O
      zU~evdt3&~l9s<>jZ^;iLtv8O`?9*@a_yW3HPbB%6sIJxP%|0rVy5k%Hj(4ib@Q43~
      zvUzG6<?9mpK(@E}?=G@Ill(LQk~-i3+3;6s%0-Y(7B3pvK)A@JS1*EWAY5eAs~15w
      z5I{B%di9d&5-zf7tP^Ad0b~>75zakbq7A-n&ro(PT-uyaxV9oMj&<*ZVpx~O@4(gd
      zReOjB46;K(ow%e{ZYfLPB-SRP;5(r>3QC4FAfShZ0!nr$Q>VJ6lTq5Kodus+4#mTf
      z_5c!u03=*%4UnVZJLg3!3S4l@_JA?$-3vT`l)FHk+->*XM#pL<M=0v@LS7drHQ|*;
      zE8XHod4Y?V1*O3PLCgX{%mNM;AONWm^B;+bSzwg+G0OY8h}m~=MZZu#7cu*Jh>1Aa
      zJ(Y!SH`Bs}q3m!W#s%=`3IIuxuptx{#MD%FsAmi@JD**|l%klUa$<<t`RpQQp$C&P
      z)*czHC<+$@`?`o(7%B?&(}>weBPLz|G5d0`uZx&{T*T}nh}qXD?<a^^5bUQBv+wFY
      z9l<{OarWwd9K;TiAZFi0#4N_Lov^cNTK54l?+0S;1!6t`#C#Bl`4ABEVIbxsK+H#h
      zn2!N5e-Fgm2gH1W&bFSUbF8Q6LTf)=Vm(8bThG!u>p9wH{ed2}UZ5wf7wM1IOZ1+F
      zFSV>!IMw<yr(3Uap7lBxT5s@R>rJk(4)R#*EuLikjZd`R=7rWjxY~M;>#g^>#rlBH
      zwLavFt&jNE*2jFE^$Fi#ead&>-fn%)k62&ulh&8~wDlD~Z+*?LSl{qF*7y9e^#h#h
      z4#hU9B%4*1ZKyuBsfOB?nqb>%j-8~I*gkch?N_VqRCSs4mAb~xQ0we&YJ;7nZnA^w
      zR=c~}ZfC0pKtExJ)PB2%M$&QEg#i}Ck@P?uNe=)?#g8)8lW`<{ERLiPdPw?U0+QnJ
      z9k4}^bXy!rx5SZjeH=-zj3enKaU?xouj>U#m+5uAAn8(#u7adB8ePM5wpyUkwI`jU
      zW@&WIp$mc5g08uAiJG9%HIEBvs7BWUu14@iaJB$0x{Iy_{G^Aj1^l#!u6_7f4_*6W
      z_Hfa)AI?{~=vs)=4lcSDDID?F=-OA^;-PClpz8-Xr=^{9H471mUPzH}&QsIH3M%n|
      z1V5z#c7LUf2-XJt;SdN2xwM5Xp>Syn<J*}Ha%sDlKhky}xhovWU*XdwfLj&Gx)|`U
      zB1M<2NYkY&GIaS+T5Uz9W)jLk6ary{6bU21DXf5pDX3a2&kph}sTQ{rL8UC5HM(B=
      zh<J`7F&u-$u!JPwJnrGo=Ald&d}MhZ76jhS|E%okT6NEGPc(9itU_o@G>lzc-0=Yq
      z`m!YoYma+0ST<q%*6u@=-ItQ>ew1PNr);~3itJ(<h5LAW08O+@X^K6NPP7Nn0{du+
      z*kx32520pzD4lB$qc!$1bd5cn+UyZ@k3Euh*`sN%J%%2$$I|cZadf~QPtV#D>0SGH
      z`qn;y{kUT>iP)_yq~d`~P^(<80o1vm5U6CI{63Sc8Q74Ye}dPLfe$Ob1Z80s{))c>
      zWz!UTOzX9SK<5KmuYCv>-oyWbrX^#McpHBWDg`G3Zt`@!8S4_)Yd9A_weStzX3`p3
      z!{34mV&QlWPVtG?&_=cVJ*Y6Ye*5dWy(ilI1J3uko0lh}MOf-mXh2E3LR&I$r!6vo
      z8)Ty?VP{E)fbChj=WfV06ti-CKeh^G;V*%b?P&?w;wSgqI!uINMN(>iEMz-??^CR3
      zdb(Z+aiztTcIv{4l!X<^3oCpTPI2jd3a1ZuDW^@1gA&}Qd<wfh_=f{&?mrW^0{rbk
      zZ}8(3kRDNW7{J>v>~8<L0i93^b_pf;YfISI4%=Z1PpA<S=U_Qp1LZeC_$pG`_<1Qm
      zK_-4EX|gyEn7@bq2mC_G6;3Fn!Uw)>{7Z1*i#uy-<CP&tssmH7l={}L<A~m)lt#)c
      zNkl^{VR=tbRyb{5r40iYtv`M)4rPH^T0$pKpaLAt!4<wX?zM*>n^&C32umd}v<L52
      zf&Y}Dr5W17ke=SdQ;y6qY&u|^1jcFqA>*`%c}lzLR+%17-$!RkU=Is^)jgbs(FmuT
      zgXOtar`ASe=_pc}Au+z4s)uwsBb>2I^+19ygeN$b^LO#=`MYS-E?SEqnMg^$#Q>v;
      zBAX<11xnPD3D+E^b>Hui!5!0OaEtzf!EGbIH<)s`MWa{eRsoO0M^|Jopd@=CrQ4@c
      zcl$I7+ow}6yM_wwGpWp8OvCIYbcWpk+-an9?6c`YyNNEbTj-Z|D{yBSZM2uuCi`c=
      zopWiweI7k;pHHvY7tm|=h4iL<5xrxtrVs3k=`(u`ePLfp|FVC{0sC^!x3A#-_HTHg
      zeI*aKf6K?(*Ya`pbv)Hx$FuAWe3HG9&%#o;0rzJ6MqXiW=JV~F_)>c-|Hf|Pwf1ei
      z(Y~Fx*uUeg_8q*(zLTH8{eXQJKX32gSM0m_ExVoHvv>0+u&QtDz1(3x1fSty)!Tkl
      z72A)&XLwwVu=l}dctS0(pHz$Nr`2NnfNHRxL#$)5I@f+dU1YzcuCo86+U%Fro%Sp0
      zUi($`ko~&aXTPDIv=3@TL7++yB8DiS+%FuH)T7?ENxHgU^;S6Wfa5tkRlZ(<h1CvK
      zfDIIjdZ{~AA5b<Gs+&|_AfAJxpEs+1pnN!Q)u#G`N`^0SyD9{g!uf=QttgR(HPH}{
      zIsmkG)4svso+8wdu8MICs2HA01~3i3nCao>?P!M$%o%8m9)KCS(#pY3lhv*UoH06V
      z3D#I)t7L1(hw=R;9HM+9r*n5iA62zKAZ34qx$9%-&p)Y~{RMRAE6TOMrhfLfRAPUx
      zW#b;*7#Ncc4aD(WIr)g%abkM9hqiJ~+JGeFyq#<*$!R$GY)+19;CDj3cHgh_5RH^G
      zsW`PYWx&?hK~MQ6w)7SX^pa^89T}C__IKk)L0|6G*$aJu*l|cXNn|?MQE`$f)k&i)
      zryKQfGO57HqGG2z9qnY(FeglvPEXw<cav;nyhkIw9x0sBlzzZV#5c9l4+HVOJlzl3
      zoW$>Uy8SS|K)<lvuKLUF-Kbu@ey;|p>AftuRhqpXpgs7Sa;I|4O*o&5@7K(7OCJ);
      z4%<OzK<xM#j#19mr^0$|?s!kX-y45dnG{ZHSA*p;)ICFH1+8+QK16ak4x#yPq;m!Y
      z{oXmYWZ_$ei@!`q{pW;}MF|1|9<ie&`jlszJmSc28)gH%3MX&vI4H+X2I2@xQaD8%
      zHe9fpk}vRZPOdEI5Bg@bQMOAPAOrDaeToEaZ;o|hg6_mftnr*O!<eDJ!^?J`77i>8
      zCgFhHz%yp(PxYkB`i-gCIRj_Jm^|)H)0Iw)Nb*F9lYE#Uu#+0}l^FxqQ@3!^0DUCY
      zou>wQFZ9hESR+UI+^qMiV=xkF_^39XU7turBX)sdv5Bc(^RDy?nCBhFy;uCzkFnZ^
      z&nWb9GX#_6)LA$Q-=W}BKzx<bx$E&36pNg`WI6qzu7yz5VyJ2f6*&WGkTZzJ;6BMI
      zqZtl95O9Xk=}tLCo#E8#RM0AC1g&vK(^_W?ex-9Peja8V-HQ8T&Uo7IOrY1CiS!R=
      z5`FGWrSF{KY&m6|>dfFQ=S1%1%;J1!HV?slq%(&nBYn0rmlryxaKxF<OPz(>?3~8u
      zI;ZomoHO_ar;4{Zi}+roKkn4>Q_f<3&N+);b(Zk^PCb9+ELDbsppbL6%5<7k52so6
      zc3M<Fr&XKSOK<~W9x)RGC7(rLovHFwr8cnurbi!6_rt_grWygtq$2)7jl^4vdZ-jN
      z3g_o-IC42U?Bmc>deo!l<9PK-m}e3`Bfl1>?d1S(6HfZeXXJi3qV+hnI2~|%1D4OS
      z!yUjO?W45&nS$?@#<^Uu3!bA(B=JK0mZtm)g2NHiA-{u=gss;Tbv_>-pfN552*7W^
      zdQkRjJYh$Mii~no&h!ScSdc@d(|eV|W^W{{bJUpCCI?Ny2z&$4sRTU)yPfmNb}poJ
      z=OPL@Kc`-JE_8m8fKNp+;Q>=!;h{1$9@{z!vsId&DdgCk`_TjNNlid=l$xlH!@UeA
      mn}!ps<FRMF9rqJZ3a6RXBvUa4LQO{cW4KSjeG2YVN&Poz9jR~t
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!+ix3H5Ql&3@g;FKS4dk*XiYIqY^QbXrY$8+Lu<#ykfe<r(wGQ|jk9sKa&}?8
      z4uwjnZ}g2wC{Kt7galGm2_ZGDR78uol$(GjBrf8P5b#GJ=B(}Q+I_(C?wOr4GiT<T
      z+5P<A>o))-uo!?x!oXQ&U5P8tS@Du;ti@B+C9RmMn(JyZ9Zm$`mC$2bloh=cKecpL
      zEm{HiCG2eWJFQr&SxYq)%P=JbidEB8bxVSjmEgBlwMuw|&zfp>avwIvcI!$xtgzGW
      z7Q5psE1Is(nTlRnG0Zh#dQ{Uj>zIUNLoK#VF<bUp<3#2qcvHr*+71c5GTIRo(p@q-
      zAO}I{m(huB5@;wgFLrjw2%t?u_Y~(dQ(aq9%{gVMtV-ycGKxxhUNJTCTvvKU;SzSW
      zq~T66oZxD@N~(26)0Z{9l&gwpe4gN@RnmrDdwh~J)zxzhr>o93ua?$q#J-`$Oe7n`
      zgBT28?;V|SpC)4n5eYs%Zy{kHlNNq48N&^IAt5yTWyFQ1oh?(ASzfTU2^mSZwq`pj
      z<Dgr+kQ5OP%XrAGE!f(JWsC`}oq??xmvOA2DI^1UL_)}(lB%VZ<1<FST3nqhtD@A&
      zb4B$TOEdH~oZw+9ict+|^`Q$HRV!qygqDn|zFY}n0%_5_NeTV+5wRyYZ<$PaEHWR&
      zNn`_fRKk7DL)kJUG9JU@48m$mpM)R-&+<Pj=Eq+&40D;g>{-n4lc`p!W$qF;B`unA
      z60;&g&h|=Y7t=K_&tjT2d829;)r=-u-s|quevy&{IjifcnJO!lipnQ+PwK_8QQ`cj
      zRcqB)mQeuDMK|}T`SlxbeJNUM8jG|{q}zQABRuKEmyhorG4Mc7k9awF?GvvCe?I(t
      zb)t){x>?Gw9r1d1G`5AF=<pW$qSyF|wy^yj)_ZUd-@9xZuAAOK7rlv{tdltc`{7;;
      z@XF1=u6oR2Ud5irds*D=2!5fVOD<23<GCB5y5}Lb7M^nS3by-RhtGSNT4TKJiXl5O
      z?#H%zj3YJypd(t~Al|2&3JLN7petO+mMct$6J`${sD+W@3`&4`O{8*(1^&HITkI5f
      zuzVm!yxVgX;f>jtw<bn6W@-E_%r&<5-QF5u(O0uNz@on<9%3<26OXXiRuhkI%=$S@
      z=ew9F^c}y3)J@j+-9oomViY6)Rb&Qkv&o>B3%ia1dJlti14+7xQF<ST=>wdg4>3(2
      zVSzqIk#0e!Pw+f_iu3dtUZgK@k-o&s^c7yEuWcx!JU?7`9g2{qFwI4eGLRXbDG$y&
      z(na*wbrSaAR2|-69o{Bq+kj`bz)Lg;g>w$OoIp3z*x2W6jN}|}Ifq-$!IpEV<^C7i
      z={ul(!_dCPUiuCr^gV<70SD<vOwdor($C1#FL;W6MTvgHv-CSE^as}IPh6nC@Dlxv
      wSLh!Xv`q)vCPT|Jj--RC;z$=9XoNY&;=vP`=QYUoV*G(VoZ-8dzs3vy0jVIW5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOOK%%h6#gcj8^_M1c~F9D+>p4zv8N?N9z5EF0<|e=n>L{>A(7ZPj&U40W681G
      z1p0drJ3zupMJ4uB;!z$;Sh8fx4)L8k<44`ehA5u%-N(7-eBV81?8pCp`yGHeY=+Ti
      zU}`UaFYn~<*PT+ay6<Eg+vP&GQM*^1&rRp5jqOS?4AVgT<ZTA}4(ALQIf5gC{zAQ0
      zkr@p-GxMz(g1$p}9Ldyj*)7*E8wjN{8wSj5b*C6b2xAsbVc5X%YS}H`YV2<pYj^X^
      z#=zKWwUDoD<ZERa`;%sUw|rpW-0I1B`gE2I45oAbUuGi$17|EK^b2~?LfAuREev?*
      zB?}P`O<9O~=$wT?54~)`^3aThA@q|-LCA*+!km~KiTPBeVtrHQ(iuu6qb-iauG5}L
      zXL@p9ua@2Vd~PWWIwzjy<*)gaqP)#T(d#vyM{Xiygy&{?5fZV5C0+|l%og5cfEM2B
      z!t1T9eJg7^U)q5Ko-cJmIT`9owc+j@%#+yJXNcS`7V3GoRAEUiMUlmOVQ}9m&8Wf!
      z=VrdXYvC&1r#Sm%*C&yaz1J*U_vZ75VXPXMd|HUEv)f|az%3DD%|KXRw8#;1^`*G_
      zQe1s0u3Sp=PPI`h6t9-0vPQeBe^vq+u&%jov6ijm4-Sefuzs&6FvVgCv5f|3Svy3G
      z=3CZ{9<yq+WzA^IiqV$!qAjb1c7&d+bUsHoTA(#(m3@rSuL=6_9G_8In4iNmzrbmZ
      zEpHQ^$2doFzzclJ0Z*9LDD8qAV9zuWvolS^?U-sJVaLKvOxUqV6O(pqu!*D{8){<O
      zjtw`F>V&fy5awfs`vDR2N1QT$!fEqo#LXv|G=D+L{1q3>-!O0fuG9IL9U{4V=?D@{
      zgvWwbMU+}VnsZ8{3{hAko5=G$Pc*3KM4uszL?Kb;0$%ayITXUv=NrVn<R(ua9nAbA
      zP@CC6=XkI4UxCgJUiBkiVlEPS<Pqk!Y)0oNevE~$dXo6N>ztAH1-%}aM4~r|f4ZDi
      z+xd+^=ZPL?N*h!fZ=T2?K?W1gGEf6u=X4lc3`}COH;K_M=MIBQfzHWZ=Xjv=(uoWv
      z$sifPAlY?Jhrx1S64Sj&obPh(FnBA_Io0dD80dWYL<ZAjkP2Y1+;vWe!Q1UN|K4wN
      z=l`~NO4?54q0}~_s(=x-gK<?vLVbdyDj}_QF{{ct4X?eOc6&SR_IBFs?X=t5L94wT
      zwA$N2tGylhy43CM$k(NA?|1O7-(-JsRbB@VD2p^$;vufk$URRJ@_&Ue&d-Fmk|a!d
      zE7u8qAKB#ltUScZMa8l2Bul=NUJ5_LjjfqXOwE*H;Y{fmH#-eIF0U(fA8~bvMRkNV
      z^(pq$XIhg*{VIFlYZAvc*7XZw5i9tBD1<du%xxltJ&fTF5r1&uu6|v7hz;5(S<BbR
      HM~M6fVZK-h
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNTT@$A6#fq6?2vFMH`|1iQVQXAXhTV{sihZbXtW53ZAEZ=Fr+Ds6OtJSl-A$i
      zjQ_y9KB_ZDu$}SQ@k!r1<6R$p^~v#D`<z^84libsv%bCeS(k6^wN}3W_tCciCh@u-
      zO$PekO7Em6()UXf>)GPQL~?sAmq~7K?quV$(Nw;eF8Sdz5IOuU15LY=28<NJ0|J#P
      zZRTZ1gW68KvP00cD~|`VbtzZKm97|Q9vxdY;7b<oWP@l%mxUu}H_$$xD`Xe9H`cP7
      zx6^C+tbwliVkVtmPH*O9?QZ%?_i|eX2Idcs(_u4hpmj9me#VvqFwkScgc5Yzg5N<W
      zEVMZ2q=kTkPFV;#XwX8dgN7_v4jQr021Onj;oh7P;>4s#%%{1YEv?Aj=-8~YTIEW1
      zmneHi$DRs(shBI2;<M9!Q2F>lTJD*{D9Edvl59OobEGC|4A5+n*B}lnSlm^xxUAq6
      z+OOc%I=oZ~+Ldyq!=-H5qJ1e6$>yy45yu9(wbJ>u;&$QAR-CI74a{z4Go^H4J<kf8
      z4&pjq@PoB;L{rT3U}7O%x@X}<++emgas`)GO5T0R!o0Je-t}YAz{!J|sk2?l&H|Ps
      zJFgh<>x-8#n+y7q3i^@?`jQHANx@si?afR!m6Jm2tnY=G_%UGJC={}r$$WZiE6aK_
      zb%)>-Yp0n#)k4WqBBC=_vW)baMWiK5NJ|!wmMkAFSv-`T)MVZB*}>I0N`un0_t5zz
      zK@+<93{t|}htGV3XSlYUmv9uvxDo>)KE=Qfd^1297X$WS8DTqGM#LT}qt_1k%ILF0
      zW*Pl<NR=^Qhx}zk?NCb@!!>U<{lR=fZ$BYm{){8$FX%RZMUVL#PMW`C$ovE2=AW1}
      z|I*RC;dpeTp>LfMp%K?fVeCYsq$??lV~ohBkxgW3G)^Sxh)Z`-OOPZ;5_}qGTy|&4
      zPV6fCD}>+qoXE+Kl3nxfy4<L0ZepI=kp}I5Jhdlq*7bdnF^lhx$Cz9d|NKSvaPEtP
      zQIJIKhB~TIocD~P_vt7&lxo^F4hc`~z6R|sPwfkba_A+8J`WC&Iy*HE&v{1C-w?%M
      zopz1GMNjR42JO?H+S7+}=qHB(4-Qjxc4{0hc}5X!h~jdcc8$YjPwn9b?UbkXl|wm1
      z$zj-o!(yGC8i%WR-mS?W*-@RWzl1&VuC)3XpAkE3QuNwkKSiG%4p8*l;Z}+PJKRPQ
      zwZrWcbuB+EEv&YnR0)>aMz`8QMBT?JwTn^p02AsV&a1a|I8M7Ks_mX&3(x4*NU(8d
      zbdx98?lZcz6KwYx-OvfxL^7Nb7$<7g$RcXfsEtVG;MM9d`_3I^vHv;999HkaRPQ6G
      zK0v$r5J%NVIIcb>vrjOhKE)aJSsklbl~t@d#A4MU7OM`iSapcS$jTXFF|u-oSgbn4
      zV$~sb4N3RXp3t5Qy@$MX86v&=n5B?9juP@K%Lspc&dC7buyb;q(AAkEbam$TF_+@f
      z)sYidM@}yI9%Es3Fgi4NH{^@n-NVbZk#$TW;Xgq{eT^x#hefrIoccy*WXg%s%}4}q
      s;wJeSm_iD-h?=m-(R`bz89A2Wt3*ETE|XgmUc(AyknhVs<thUI0UeQhkN^Mx
      
      literal 0
      HcmV?d00001
      
      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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
      Yr;%1u`ZDevXP`taCq0vtZ2rps2NEUO)&Kwi
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<TW=CU7(G)i+itfly-=;yR<u^2wRm|j2IC80G$HkY2GbYK0uz`9c5oT2@mJ|f
      zn`ojw`=g9!c1a*6^<n4x=G!ype7E0!zWo632oD|132dGDAN`VlZc1IL2c@bS$Y7*&
      z@VM$ADUgYN_x+$-deb_SZQ~#<us)4e`Z|z)t1ku8&sCtz3xPzw&=g2kbVs^KV9|qv
      zd4ZL>3gq#4(30Uv{9>)H+kU_4hsxe3!KCS_k-&ES%FN0F^Id7)s*dSJYE^*+23|?k
      z?HK`QBuztoW=g4iwQ6(O$^VC~&~zbi%|iyO*4y&17JJ(s*0CWVI;3jbN(DCZg_vum
      zDP>#cZ4bAw<KPatru}&x7#RkBzZQl%bdkfNJ??qf$9-mPJ67?>BN87@a*TLSdZ9kI
      zO)1Z+O`{G9Z0J-bqIYm0us01xvpLqLF&++eXk@4MsV#?w(`89i+@C4rYAn0$HuN}b
      z%a_WIIWw~(M^-GEW787+QrxRFl6Km>E%5e)R?w!3mvFz*nS;mEr3Ic6`V33-ycmRK
      ztRUJttVWh&h%ARd6!#8Uo|d>qG0U-3Jh;Fnzv~yc@vp!;62FfGHe+xsV4vY8rEG2-
      z*@W_x7)zODuDf6A-;q1L#9dPF{X+gHK}?0JMS^S%%PbktjC^3xqZyg(L?%s%Lp+FN
      Jj)<K@=`Yu#w{8Fc
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O-~b16g`i2I&>Hd0(Qn$6cnW$l`6W!7z2f9LR_dpaW}xE9n%lenTjm^7q0vT
      zBuGL-A`x||OSi6FyLVwcZ)P&qro<-i-TUU<bMLw5-G2T3{usbb+)yzfaQ=n;(k|KC
      zeyQR#>!qby&E4{xx$<<m*<P<XDv|=m2{8hxs^eCwzJMqTDBJF)U#0(wYloM2+=lDl
      z6-X3{s{+Zz=BA?|fs76fLjuDqZo_%luCF_-CpK#djIJ~{?Aof`a^*StnDnczCos8k
      z0*i?0yntFL^H*F=L*R^#L8PQ-=tzg&SshB~<#nh?k>)lRDGyZ~f1%lKY<hESWTH^)
      zDfY<O@a;yWMq%bvOp(pMWV-GnIvOT%Nj5qrkY@J#kx<lv6$bg`X{c6`?lY=Gv&I%&
      zZ>hfJQ#}SgXQ1c!%PqT3akR(Hc5A~~cBN98_@QPc69N4}qv5m`YqsY(R4WxeAEqck
      zg3q0#W$*M@BeK*dI8z;3DHWfEyUx=sT0yH=hd8xQX8^<8HCkYg>Gm-~PY;7|8lybP
      z1Y_J~g4ZmYrp?O))=UTER<VPuWvU&RmZ@}*`<pfwFgRk`4+I?}gO3=;C*<%sD07?K
      znJOwHJ;`12%geV7I?Ur7y)bTqp33|4xDe4<AT=3p9$|9LIv|?^k~u(*%RI!zcf1Q*
      z4D){JYR`<@o5tlRUy0G7KE&_!fWLKtl^A@bFF4l={@xcn(-%D63;xj;T<8nV_JV)*
      z1s7pOJ>Lta2!U>9=FMAVq=3><61&OW9ua<ZWy{7QT#W~0CmImrf5VZLk1A9sVi1~0
      tV?=1kilHEVI2cAe7)Cr8Mm!isJQxPT!5F}`fb4b5(#pY*f07c?e*j5#w3Gk<
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fEZv6kVrRTE>E0hSG|FfV2apfW8<I4MNp~7^4Qox1mhhF};v>5PUH4#oL34
      zPhJzhfJ9B&kZ9ru_)*4nX2!8XiA`qqJ~Ml-v-Ub``t#Sf9{}bsABIn0=z;!F&+5BY
      zwqR7t+0|0X+^!q*E91FRRky+j2n-xkA`mJXW}#>ah@3!h*W9v-%=dUb;>$&|Vp>ZA
      z{#1HhAaJF+WklgeOhFW#0$pon#kjFk-ZW}=^v#kX(6d&}>!o$QX3DkuFkltUy1?+-
      zF)SRS3j*O(j=%JJ1OojEIuMfCfP#pV4JrsaSyDk5A+p@%MaG>4!&<KHRJQ8#D^w(v
      zKD5^@BX8-ILW#00gfU7o|8i-0@34tt1Y>f{UV#X~uemZ&32xBACwCpK0!;5w8-@)|
      zVAfa5+ZMHB;e8g?4J%jE%akUZTH#OXD2NcfUEQhWjhrb}i+N`@BWVdJ*DDpHcBQ1(
      z>jsqz+9!!ois9$M2N<aXGoreYTG?wV#Texqo)GT}SLYZ7V^BN5iLXq2=(3A^M3|;O
      zX3)*G;uPT|dbpARy}V0+C+r9^CM1A1)<mB+-h`?R1e%Cz6HO%kq9!B(ae=4{h=@hR
      z#6|RpB@Bv7_AcigBzG5L%44>7PRL{CPV(6)W^&X7hM38LPh;3+v+UN#zhh)WYmiKX
      zTpDE8K>Pq_zOc`k(8d*4Tc(S9(~V=o#hYcdlqV$nUwuB*eY2%I<aM8I+nqSlz0tON
      zvTb+Yk?wrk?o``u^+<QQZFd@)JNIRGZmC_o^UWv3q=+&J`u79-hjiF$K~p^)raX`A
      z5lwnT{f|FXStXt#D4roIo}*j5K)-ltqdVUCgH9~Z8>;6G)$@kxd1DIG?o5yAnh04W
      zwaM4grfJ?)EgoiwYw;jMi&Y&eZ}~s+4vKisPyGWD;$sVyq-WD4sbp-MB)LJxHfNGl
      bGWO6(QpxaJ^kK%9EsI%3`4!49b`Fu>xE;Vq
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|-%}e^6#j0KWyxmSP|T#8qAji1kW@>dYWdMtkS#)sSOHP0*4d^DtPNRav)D4D
      zjz3y|OdX#s<AZ+yI{E@LWyU9;d~qE9AII<RF54unV=}w<yJycm=R4my_s@SG{tloY
      z3n~%<hd;DFvihvse&4d~uJ&E3R-LuFJz%Ox2^?+yIBQpYtG2vewY<3%Yt0sDJMYvS
      z|Dr&$x3nOT8h3Bn8j?usP|zljopx&W%=+pL+ncv;RC%Iv+O1gC1<P~fJ~F2K6{jvx
      zm~PG&lNk|cuedeea%yx_dQG!*O@qK89i4cJAD3<aZRe)H5)d)lMp>ZzNuR?y4C#}m
      z&!p`vulUk>L`Rpjrf7Xf8lKT{bl<QjAnx!n`D_RzJZ=)6M7~5mkxCBxEP8buM3%m{
      z`H({5&H!H<d}SH^s^zat`L<{It|xGzx249hr6o!<?^(6_lIyLGlv=(w9v@M0M&MYp
      zNMl}Q!0h3BKZ%Au3`qUY3XHU-dn9Q~p2v8woe9fly8m$$(3~3Ut8+N&Dh36*n+Zl!
      zQ{_<gnC?2euHhVpB}4W#5^_Pq1-znyqg43M<2qi(Nfl!PUClmn${M1NVpxNT2^E(F
      za!+!VkzV6`x60GNb)<BS?PSZkS_EkHp+?nyfqaWg$cNP>s+<CC&RzE^_Jkwn|6tsK
      z(~_8gK2@vP-gwoj*KO+e=3}=mJ`kzLTNlcxVxDu`T;3z+iK;8xrvz*2I7d7g+zACK
      zc{jONxj)NQa8=4XX#b5M!Am1APJ-`?bR9*8NDrO39^j5uAj`K5@Q|UT%`9)DBZr(j
      zq!8r;q!tMahEiEJ6n7|H;_hif<xX{nGDg}+-!d{r=2j*9!;er>TgffP3G?Sk5x7hq
      zSCGRrPT+N%!A!tqGRSL2T$mZh&>iqIahxd0Q^P#b%@{eJdX`A#{sel6(zN9898o5y
      z<78CFFZ7mm3>L|kT*-4NQ!bXaQG9@&a?!{H=t$W}hqex)$oM4g?@^cc$?-Z$_<-|%
      zy@C5+%zZHCJ{WN)1D=rFB`OEp+c1Dr0e2nG^B;150jDGGvQM&K+AjJQ%cpkG|0{Q)
      zlCsf&8)VOiUU7B}FXAPB7xG?(vBa0`t<DpByEwO4EE$TS?qFy*T}aDb$`11B;FI6R
      z`AsOvtx%**lnJOBW!l713Z_(~P@Cusaro(hZ1gTh7aO7l!%~S19TLbKp>+qZ4zsM-
      zKNzun7fGkdkgrJpOhGH8w=uqn1BFb0f~*bWHGxAc@na70Cn(}m3jP^~?Q<;R3%rZF
      zSi?PR;4A*`;y%8{PxuBu<6CSK@6z%YzQf=6J`i;l?NY8-)V;W+dvQzm;+F13EzRN&
      qOk#@Tc%SQKj=9Fj21or0qb4}+vVk*rgKH<zRkmlA-g8{vLi%5L#gJYA
      
      literal 0
      HcmV?d00001
      
      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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
      O8kUQKFEeTm9QYqfVo3%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{k?N1|B6vm&qowl?NZ$-f6MOIxE%0gE_+=arrOJ%LgQWp@@t-COkp*x#0L#BhW
      zi5gA(revduZ!t0M7cmB-`+_FM_|Xr>_@5a61NFHxrIaob+I!~QbDnd4=ice>|NQ(b
      zfM+lphEOnYLw{XQ=x?}*f?=;GE*O^K=*5?H_xgz{JMGfz+D;g%f+jDes9S|ZX61&F
      zcf$xN=r}AS751|fL}y>Qv^15;%%$cPh+JBMy1@Vioim5is%nlah`5e!mDX%$T|rMx
      z<hivq(=rzJ0~j6HuuBRQiq|FcMbk3fNjiJ`7Flh|UNs_6(4rxXIt7h0OrG6bUoo5o
      zeWhq9h|Sn}y|}15rhG0tL&>ttL~l*`>PBm}YCG#&j3R(z8rsk#d+5{<K~!4Z8Xkhi
      z_T1|xTTj#oRn<7^Fo@hxFx*#7Yt^(0bDNTaxakO<z>{H|P;l&jhpXW!G_bJaWrfUA
      z%C`LUE3&b;hI%wep_3X0WMq(4j4ftZ#+EBLPHDVDL)>t0ZWwG{<j%8v$tbX^{HEg=
      zmOF10*10gIH#hC~^_+&&IHMrEwPBl<>*Y;Lxp56iZ{w!F5yd2)592I{bQq#$x^jZ&
      zc)?g9&HuDK?NHvfomFZ_tj+bQvaOh2AE~~yl)fPIUi9)(>0HXs6S)*U^Y*5bH>OQF
      z&Zep(7?gb|(9#xPk*T6yDoN~?s)+sjj^i9*fS({#bjS<G7p_SjI@g#ya;`#7n5*1v
      z<gS8dK4q98|Jv(*iDm<8Cadxj3}&*SQ05+Dceo|+FuxyVBE&d?B8iBYK)skmvp9<u
      z`r5=OTD?eq@z%AM#k0%}(9;<I36I44_s|hPxreR;(U`0*a!|!pie5v5Sn`C9`)MrN
      zBNf@NWKldz(g@ne@mRUc5LdZZ7r&2=`*?hpw%>F}`o)^3srfNwO$AS*mmWETq^HM8
      zF~85(=)aAix*Mofva6J06{W$-G#&B?Dh~Q82`M<7><oW}rg)aNy1a+J9W;9ncM<Cx
      zl#YXWwDANX-sEuKLQK4k9`Oza#JgVAHeb11wVw3DJWokJf@jMle<36lP^hjy!9rbw
      zligq9a$r>5!BBszs&4raqq4(Rb@|j~l^?y-vdJymH{yKn#dCp}%i@g%wQ2l@lu
      zKVqWmU_4{;YKiyR_y@cZ+h`ZJ&@Dd1koX8`+H>M#WW^`ADn7+E@fnuI=UCyhA-?e7
      zM*Oxb2VTH=oFP;_u6URNEm*)5s|0w#Pa{Q3_0V4^qyJq-H+=$s^atqk9{R{p=-YEg
      zvv1Gs!~gLh{PY9xUlV?Z@ZS*rTf*;RSbT?zv=_wp$cZ1YB<>LWF2V0%mCpsSR|RiY
      k;7!7(J^0ru@QW4ru`;~COWr-dh#9W(?NIo$b_vn{00P}>O#lD@
      
      literal 0
      HcmV?d00001
      
      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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
      QF_Wdrj$h$l^HszB-*GD)FaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&-%0{O6vn^NRb$mOO)D>gu2O@R=q|+@(=a3=Ywt%J){*@ayR#L&Rab@=K0web
      zMQ2w*2!bx=oH;YU`Mx>l^Lw!baE4k235Metf93{%QHCWv#~9eQu(*B8)pVq|61~@n
      zcv8}HGtd}nF>G_!GVVfGNoRA<Pz;1GxorwRApT)+$-u4|@?Fmj6nB-$?NFpXW?##<
      ztNDT<-IlIY9foARVKQi4?@{PTVmk*NS%$(;y5c5u#=^hnV_PtkhTen>IN4CWKGf7y
      z1`LhiKO1Q=RO%}@Ze*l<=~}IZ8F^PC?=pSK39QI()9)H%&_`bAPeflvKRWz#UZ>Gh
      z9D%fG+B7<(kfxlWDuFFpB!w)+9G#p~W|ULSIr8r@QlO|423$Zx8%5gXRuFbjqAC(7
      nQ;Y;UL`H17c{0cDZ-pM2_hW_XidriWk1F;^gJGXuCvflsx!-q^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}Yf~Fl7=F&4TuN9%jO8LwNh#7?fLur^G^MpApb-cXItbDkU6Lhi-R$aSQ~NXc
      z3x0CO=@)0DozWTn<_G_bAN=S{$M<YD+hldd%<j3om*>3CbKcD#Z+`w2Kpy*HNDSl8
      zl;=uT`PR-hRkM}d)eN;zp3jF7V2C+BT``*3{j+Ck-3}wfFg2L*sbXJLY}Hb1(_#qM
      zJC>yyHUq0LgzO8gJ)fgfb_bKX$CN1IxuVZ26h7;VcyxYFr980|qkV2#EfIQOGc@}F
      z!&=f8>!SIreuUH!LtxWvs6$|QN5&8$V)d?!VaO41jL8_mI0H|nj)Z4YMi|!^Mg@Mg
      z(>hbFC(4<wGQ@Yyx}qN`mL~SDF(AlNmamMSqQoHDRPE0+qoEniT1Vi}NkS#9T{eyG
      z_H(MyP+yQBQCG=Bwb^n64JJ>wQ<Vrl!0j*=7_R@9q%x97F$C$P<Ggb~S!85nEcWat
      zd0|<Wk?mQI3&N6@QRrDt3Skr(63!7FThp^u^RQFD*wR%|%+`y#`n9c@#x<-mOzWgi
      zLUVf{VRr0<d7d~kJ4T}&!3x%duImhA?!7q;b!b~8Ln(C>K?xgS+-JBkNXU18G9KU|
      z!;sx;35EzMQlY0Jt~OLRO{+l{Af0a0&QjYQon$1{%0jggwgdvXD63qd$H|gT%Vaq;
      zJ62uY*2J9*cQ0&N6vH4_3`4axb*0@_343(QsOx5%D&JG>3$r0(4^=Xg+=Ji2hQCLB
      zY)UC#oAjrbkfZkF^ag2^L>B_FnCMuV<Dy^b3l7mcf+$6e(rTOHIL+77nJdK7i&u!J
      zU(=3XVd6)!OL&jQs1rksrN0rC-e8JsG9geNrZGb^T?5{CF&AkTJ}K~0j1EFbSh&=e
      zDS4T*NVu7+6fH94^iP-weurS-CHG^5`!Hk=<0i&kjCDr=U^sn3Ab~Fjh(zcBa2XLk
      z(g!o_!OY>73-cEVC4~7#l=1^D=vVDdPKlGWUdeFs#$I9m@*orFF4LC>eB*m0d#<Io
      zuH5B8fLtTLVC5u!=QZyBMk(>%F)F4E&+x!2+?#pJca`o5JdPPYhTD7`1wMfypTu20
      zg~xmvdwd4_{03@#7Ek$2)cG7te#;?Nq#mH+U1DPOAs$iTMI!Z>`a;6Kw|a^(*Tyi1
      zO;><FT>)BDT~B~dd;;WqEaz(;|C*q`&~q$#j$G}3$(R2{K1JjgvA~y*<I5yK7I%0a
      z4|xF<zJeWIM3t}Nn6KdrzK*Z>y*~0Sk9>>Be?+tj9_1Zxb?lMn_?YNPs6fz+P`qeG
      NAdVdx1N2w7`wyMVQ%L{-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OK)3M5dMyjor|4I8ropr+6jb`G`9ONaYG?ZDd3pWmb8ihMR<9WUL{73jbeu+
      zLM&JzUR%U#3F}gckU}Lk?2uUV2Y79HZ4uubpWe9cjj(j?%$##(=9`)C_=kVL{SLr1
      zt~rP)<X-h(_e=g(r?eWh)=LZZW>Bt9R9l<Njle-%VI=B;LTr0lK~<^jP>F4qMdN4S
      ze7#xkTu{*Y!jeLKzI8oFL1V~83WExVB*V4M_2ppWWuG||4llG;{Kk^MQ5V~8#ye~E
      zw!+v#RCWt*PQl4n`710Xq41!K1O`OQxNy4KQ5W}hwVaD21{9|AeIXZH^=7ABojYK=
      zu$00>7<ce6Gu#cvdb)T7$5`oV(0Rp_T@{ZB7n66kYwXQy>{8}{9CFOoB_sl`iL6<<
      zNO?40IKa`tX@${9RJKPcoWf($dWpwo$xKWho3Cc&BBj#~Ix-!FK_aNMHk;SmWlnhP
      zp8PKcD;>YN+8|ZtQkcb@gL4W)21tVkrK^5t&Bb{<#fGfcn>IHaGmEEPJcDPs?=N$}
      z@qD#Vbuh0mes>u?DZ)}Jcuq<=LgH<6?Qm^zttq5lYHe<;1Q+W<sKG9YPfI`r_j0ot
      zY|J<Ob~|9gfiAT<GeY1yh*Od_)Yt$kNf~34FqDHlA$9q6X`P`|l!@XV?!QSThC}?O
      zD52j#T)&B7+HUs}9>8H*65t5G65uVSO;YA0KyhjpBgMil(nT+^3$N%oyU6Z`%?bkj
      zHp9Myq<$Ae`aO*3_mR~fm^3rQ&QLauXi|&d%b9AV!kjz-drvBI44hF5XNz#;)}(=R
      z;%kfvBFaYv)JbD|B5B_P>_Y<k2(JE^pgzH<{uC4XGXreA8#DwqiQ||uz$THW7NcIk
      zF$<z(Y-#FO7`Z_--KLsK^cRs0Ek-)0`<-t@I-kHvoB5n=*YItes!4XP^d3rI_JR1O
      zC(dv<)p8^VuOGzsJ<f^H`Anp9w%_^3NavXYEAUuBHll)`dgAO?@Oa3}9m~ti|8X)c
      zT+%-yp?^V2|B7M#8`AoB6TZvGOgQ#T$j3~`$4tn_jQk}VKAy!Bb|9bgsmSxF*kO3L
      z@Z=>Kij+nD%ANhyTevVQgfS<^a&Dtin<{t-&)GwDe}rAce~_qu!qb1@xc(b6`kx-e
      u6^q!#SzI)f@KD6_)HI1Zic8cIn86S(8^keOF$8%53zR8hmw%J1Nd5=gQyj|x
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBrXn6n<{F$(m((X`xF<icnr`l2QVJN-ecw3DGKT8Fd)*aiJ^335i33rPexr
      zR_pl9w{QLdbw;FPXZ!*FD97jAT|#KWn3>&k?z#7z^PF>^v-#)Wzy1a=hjj}Ph2+QH
      zr(Vu`*vM`BwcXrWx$5T&lf_ESYgo_<gPryjA_sE{sz~J#mB>L}G`?at%hht@mO@uL
      zv!S3@Y7cxHUFdaSqg$a*65QM0-Sqc9@HQ*H!uhq@mRH&E_R6vjjk>W@t}9$z>y$k}
      zx1?aDi~MCa;!wEYAc~l1Lk_G!8+Pzgprstd5mT5;zYuY~R<1Vkg{3phnGG8+W6Z)R
      zGn~c}dOEm-aTdDmH$F5~7sO-I!PK$2#MXSmCJmjDL$=wus6^l~k)=?sQx2yyXE<7z
      zQAl+}6|~64Rm@7`B^-MtH)7I+=}Mtor?l#RL+(bpTHsI4s)9l{;oPq6S0B{#T#dAW
      zdC%W!c-8F+S+itg39nnYsnBasRk)G6>os;9+`=2|&ThFHA}Pw*Hyzx@3hmw|FI%UJ
      znWBYNh0)VBwWK(%tAMwpt^r~^;PZ&jLq0nS_WQN{y)D037H)M1be@rT3eKHs)!$pG
      zc=fu^d{IMkULOH)AT%WzM2#&7CD~)v<PN379g>)DhpTx?MH$T=q33rh5%lqGQ$nAE
      z)&uD0TAX+Y=Ww1<0u1mi0lwtPC}mOtWG4<Wn4LU?o1HpDB0HoHkvxf-6aadJQAZKi
      zW9ZeFFrddVtS3yCg&<Oxg)vPjk~wLLAtq{4j+B~|VK4>TxEP{&%pKXw7&KS@#K?Do
      zh{^;NH#;3z5~7Hu4cs)r&7eo;;Obe7>N%u!-hdkm0yn{B@Cq)Qwq%f|7NMTOcnD<H
      ztbthe4-7v2m5_qQ#>7J}wKO%>Y-+Znx7+5u+R^(8ro-GfOjCgV=eSyu{CwOa<bHbr
      z#r>8z{Y@14jwljsC`v8fCpFA>^iH;UZ*}xuIJ1TXYe;seVYemDNe$QVYS@b>ytO#%
      zPGv6}CS(i^5>bjoHesEnfGhmdpCP6n!_l9Un@^C`UzijDH&e~)Px0)cTqaWF=At1-
      ziric@98NLmBJB#-nv-%6PKx_KQxc%~3Q_$vZ2b-T^iy2W-?pG|n<(V0p%mQagt*NK
      zahnrz9j}EA`Gx0YUYA2+B%a|$K?ouZroMV?|L7T(i^m(XxUQe0P@0&W8q!B7o{%ZP
      z`#n4M0}}d2OzEF6uYYdAyBy+muz<G>-ULVH4z&pXU{ZL8S{FY>J$RRzrghCw^)BvF
      M+C(lNxBH0y2M;?V4gdfE
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2Jx>Bb6r6YRVGa;H1QR<G3zg`_&IE%dsELNq@X;^0;+kXE>@DcuvNEx-ur#6d
      z=MW!9qJ@Pv@9oUan>V{3^Vc^3N7&55BOKg|sR+fR3rEt7!?w{%Po;Hg5Xr6;I=(e_
      zeDO4t4^A1KMT$^PMk1j{;r9ih6icf_)R#79VejgkK-Yvq)9Ba<?fN2`$aJqZ`<%~?
      z-wBx$rIl+CD!Z*8!;Z5`kLr7ULaJ$Qq>mM><>4boD7KWA?a6o`ZC7wSLeMfpUMYC-
      zBJPq*xjPjT!lmnfUsmV1JQe)TLhw6gVu$ilEq3nw@kNJ=$6y=8$-#9CX=J!(8F^Uc
      x6B{DOHP1|gIgfj0zxIN{bD}A7^%M4#XU|Y#TwSWLj(`#CQN~8%Rbk|z`UU6wcx(Uw
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk2+fKqj5Qb+tRX`LxgNJLpvGEa<7SjZ~N}(ip(X6<sC9qA(R(&=vd;lNHIJ;on
      zt3Tfy|C#Tf&o2PDh6@V{1Uhr}#%%U3?U<)a`+><<Px6e(G_#;YpsDi<CSsdD&-qLe
      zXiPlciQLfjBkDK=h=;LWDpryS8L~yri?{&(3VrHFQ+G&JkPxT^?p<_GLw7_sF!20;
      zcpTq2BVCK;>Z-OkzV&+RP?11YhXyoo)jTw~6LUF9#7iRLVZPu5irq^zR7qA&D%Ln9
      zP!jwDtz$04mRX)<T*!dOOB4d-?o(eip*l)yL7HbX-cQuLmidz_^^OYO3~IdvZ74$p
      z$wDf?7IM|#8gkuWmESg4<r@a?AnzL7L~a?p2W7l?9}e{8hj66z7*4ddp|jCb^=dfN
      Hp3Z*(k@-^=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(ZEw<06n+j+UP^^onVX7}IdBEHRi}Q!_(2*I6XHu|h{X7z8x7X5c7fu{uTm4o
      z5>5O8{vqQR<2j{6GU|tW&$&1EJTK=o{rTtH4*<7uFM|Z3{MLSFoA&#_>^uIU`OJ5{
      zVArZz{&;`jWRM~($G#xY2VNGhkA(Dn*K>mhgrrgL5K=9_=cq_R(~w1uP;9%N^JILu
      z?+jnq3{245{((K{*h5#&(Pb)l<BkYx?O4i4RFj|>mR0ZMK)9emL0Yn94H=}FyYB=q
      zLm{k94qZZi<OISOxV}fo2L4_!biF>IWYniz1KaDH)7xeSR|zYjgt_a7V|UPVhFM%=
      zJ5if<rfqtqqKtL1dYyF`i-`4(yr^oZ;RZL$K00!|9{1j`7U?6NW)=n^u~m`EhE(1p
      zY{y|Q(48Vk<+fDr2vzI<RPykahRe7@Q1|@t@W6TG%8;~EpVACIKK49k*c#ZQk;7w3
      zPu*jkyPxDwD#4M5!5PUYIHoz{`SY&w=?+KYs5DNH|H4TE=Xh5+0>6;LZxlGwrjJm>
      z5}yR%JnsU~Wg3NJQ2-j7$Iu(~W0d|u=?ntmu~U-2x)chegpid`UonDYfKaDsDTYdu
      zOmGn^5seu-5uIP5f8s||oni)5h}F0nTU<I@yc%14X=d<wWH8oTK}^sF6skg{+MKcc
      z%vgSAEI%{GV~vbGWdt!@`;Kx~UpqlX98R#IZ%$C>yu|s^>j}0dFh8F$Zq8}1MT80d
      SjYxZTdA2f0nQszzk^2j5K)GE2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%U2hUm5Iw_pmjx<PYwd^Bf(2|#TfZJKK3JqNA=Zi^67^x*uDFKo)@AF*gZk`)
      ziT^}REKM}=2l%6mGrL<Pf)9J|+`BX9oH=)X{r>(Fz#6Vc5g<%I*IsI6?Uhq*>(+kx
      zo@JQMdNo(;Seg?>h%hlSfk3bMtMT`S5V>KPhI5k;EEJoB(1x|AD+oeW5yKcERX0ri
      z?&1E9Za>g=Iyxa;w|2EoQ?m^@`<Ef-nb9T8)<;r$nks~Fp;jw4$3Qr(B8-Sc6Dp#J
      zFm+pZ9=bZJ-l0W^cXdbT9K$lDx>^;H#0fFSYB;uGwh5U+(WC8XX1na&R-!mhm~_<)
      zT;Do0I(xbu!#pAB8@A#a_DI1T7NqGMODYTl7MqfBQN<z(Y@2p)pqqPynL=%t-KVL<
      zP$C4DvQoJumCJ<XQP@LtCkRqmmdaJ3+W0?}B(AHN!7M>(ScmqmUNhvm)RQ*F3qIa4
      zP2Jw;Xx*;P4;FTt$2`A7kVh-PJ3k9YB#**-lp`JlUKKuF=AC#CmyQwt%0U1LUKQR!
      zw|V9^k>s=LB_V}zJ_*1nUIn1VnL?BjfYQPd(xu!HGJm1c2yw+0Lv8c;-A9rdE@aj#
      z^C20))hSw1u2NBc29rL`s@n+=DSbow<7dwDghu#3=<$HaNMGdHk=2=@>Zc>Cr*O{a
      zZm`lYGbT!lpQOJcuLBJxr4f3;6K_MM?m%;iesc*1m=>w*Zj_@S$5VX|w|x&s`scyF
      zMVQ_}q4xvu@jiUK?_Ip_9S@GLf6Ju<@;@-wN@tI8K}_r+pDy-riQ^2%<4<~6>0#~5
      cKh}O2FemR526$}b0j}UG?+Vk%uwBF0AGr_1X#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixX7=8|Hb|Gw1paIu@09B+(z#>$wNJT6G3#PORMM0f$2|LNQ=`L(GmX0&t
      z^v3ZA=u9uYX8gEm89Ul~>z(=o{P-b`&pEr0h_p5{oAaJ?-hH0;<9YYzzrX(xz!*L>
      z&?3-t&HmUPwQq)_WyilUdc}9WaJ*nZ6X;Y|Rog3%US7ZEltKf#z|qF(Ox5=sd%fxi
      z=;vL}4W|TJv$+)kZN}ell4wPT2?K2cM~bfJEY@$VJHc}FMt9LK+0_+0aOFNe)WV8e
      z6L_k4XjGE~E<53Silq>3Rs}k0PAI`b*Y^Yx*+M~va4h=>klacVq%hHmE@?e&qC2vV
      zn>dP$fY=mBZn(A3_DasumViM_qLQ*@dyMzexJ9F7dt6%lYuj^|h(jh$qA!Uo@&<AO
      z=|;&e*<r=RFh&@CZ7T@5WEHRqo48_|&#lLWUyu~zCI->RY)i5S0-0<sO1G(9ld=IX
      zn>dRX4ZOmX8)3|Qp%Zv^bv6k6Ac=G6kbjdV&f_(KcG=4ryIv#kNL)sRyIcwUo3dS#
      z&1{WR1Fy5y4H^Y+;0=Mn#-UQpq8~2RH#hwtbT($UOU`E0JVC~xrbHg?OD(ij>{>+%
      zP3d7ii8nEC;Nri8Tkz`)*Te$e;`xT!E&D~^D_?L!Dos{@A;Ec&zkZg!%4dOkcDCwv
      zl@2}4`A1_gnOmciFVNi-X?#WDEcx}I<jlEpEX;VG&dBt+o%cK^n5o*eno~1CA)ion
      zIXHfUQP>P4G7P*gaQtxBxvFndMhUfQr>KoqJ~E{=G&y|SwR3lttKgc*-$U{{8Z9vS
      zpX3U*UBeVow9LqfFCT&W2%t-?91*p0K<LHK0DAZ@foDl3F;e;AyXfU(-Nmtk1RoLD
      zRs_9~b3`Ct!wFJJD9%g_S%J>D0n5^c$`hKUXUh}1rCHi_OSkmvrEho_g`Z}&fJc9y
      z44aA}&t&*6`Z2&&TBm5q5G_1IE4qD_mQGfVQOtUkoRT#)lqHwGi|2N6x<RGW4fwQ)
      zBDGJE+NVhEQ=|}42qyM?Oi?6(YE7P{;$xl8k>()B=Za%MrIy|=R2pX(vWy{(QChOi
      zC-Fjze38g9#mpY^UNa8C|3cwMjmYfdXW~Y1SRWtn*ui+edg6EopCsP@;D7x;@$v%~
      zS7DVkkX7iR$Y1)lcpv9h?_q+ac=aKs9;o7JY``>~r1&HC+~>&;)WU-%nx42UI<<KL
      zGkjB^K&eNPU!#Vk?)qd4cQH5JpFz=;mFMR6bbsf-C;hiS+o4A@&o6Azujs{ZO+0-u
      zPaDq{aar+P!P_xU81v+Ze}cG!MC;D*Lx@X~XoSy~chDsxpl#7kXgjS9&Tggi-}wdj
      vgDU@%JbyK{DIfC!dAx%q@}=2+If=4>%PR7#SmD~u{kyzhCCVDt577P(!s}p9
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!-%}e^6vw|eH$NaOA&t_XXk(2nNoYd?r2++{1T>YO38h4=bxAJC)@8SDcCkJ=
      zJUG7cFZkq)(-&u?ooQ$E%?JM|$8$HEZAiy4liYju+;h%7=W|Z>?|)wX0U(bD5d;{n
      zJW-F-ocf)eYY6i&x8<nyCC54vg<>inL69Nt8tAIg$ZhOD5j8u4FvI1uZkwvzEZM?R
      zZPQ|i)EvtahRwiA3}L&ewNm4B)#_QNuDfQ*>`2v9D*0UPF<U%1&<wF{sYdI-v<{`|
      zUCq$!d4{>s9^3AaJx9G^(mM>nC9^L2!EjDNKcZ54N5KG;C^&`{4B|WkA5HJblZy%>
      z=wldKrF7Pv!+l|GtNXfONUWMQRo_u9O+I_dpe&o=y`D6>GEC*EmRLjB4>hB%8I7_d
      zgVA*on${|sM*Hy#O4Ja~2u;ibTM>;zmv3lvZzWxd;v?LM;5x&l|0Jwn6lsPKUALQe
      zZz)Q*tb(zQzM7YsTMBYg(?^y|wx#b%WnMv{TUnLLNd>n%zPkmfxuf9Yj;30OV1^;-
      zX5`qKo?AC7POZ7D3z_@!vzmBnYo^hMyEGc#(%dCAZ-SDhV<*jn<i6<`^;Q(qn3ug+
      zU>Noq?v7){wustndMAoSEJbjSXrHaWr{@ZaSZ3(AJF~<PC4eRRmgG2uYo=+{scC_|
      z6?(En%h8ECK`u(ji}+kdSarRMrM+U?E3j82O~rJqnpn|f3*%i)z9lnaP)dd&tR-D-
      zwFF%-v~1LLvqkBz3A<_56;!ZIYGQu&uk_Z0_mni7?wPM{_gRe7+;aMbXbs5m1>$iz
      z>a-{1pwpWmOus?I$ZCkB6|&>BznjUPBAyvLMI!T(p7<#){6_i!F3}ouZK!NMff%2{
      zWzs1Wf&6d<BeYX5@V*ywjCOez2tJpq8zC$;e5T7Y;Co(0(({}mYw4+Ee#eE-&j<yd
      z^WGQ>T`?3t#s@g>#h7*p00WsS1qptArjRII0A8d*mb=0X_+hT$!*&>UjzCE;Kgm>n
      zC4oNm_U5K|k>rUir_=Zgq)xW7!M2z=+2V7*V7_y7^UcvXiJ`XD1c~9cICZiWB8S1(
      zn64&fUt;c0(kK4HkleC7%R?{l$;cZD^RjRJK1TQ&Zt!&!_y#8VChqVu?(quN_%?R=
      z1Jw8q1b>JoufpPc_?~}>ANeD<>`9ssD$OffN-Ox3%9^B-KclG$K=_h{VNb_!4J8lH
      zfQRRpvh3jbss~TL!yr}m>69g$na;sY|6siAqbd7j%Kr=I{##&b1m*zOc?09TNpLjW
      z=HFm}>nQO<RJegh+{9!46#LwQ&TX`~gCF=&7noxo%rSvkqmm0gj>o>F`(QZMsq_Fg
      Uut|HA?Bx&x32f0Cq&H>xU&gI_q5uE@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XyO7(E;AvVm+;Y--#fMH*@dsKwA~4J2tSSkszhQgt%rtsAmKQL@ayQqvh<
      zee{p;&HCFJnK)Lf<D-9+<GFWNK)QL5nZ4h4?|whdx%b@VufKnJ3Sbqx2BtJ*KC&O$
      zMf(%4*mOF_#k+m`sM_y7bV{|$wNC%A?HCXm7SD{*Fm<x3L95YuL`QFU-S$afAIY~R
      z`G!Muz2&yNO%0Ki{DB5h?HoCAM369HVphYsotEqD^^Xso?uRxTYdF8tY1r)pyW5iU
      zU{QDvT0IR*J7+=)fLAocR%+^(KZrrY3np|#rMGCp@VysJO#9wN6EWX=$wb`uE}57?
      zl=vHDG}Ry-z3F)ONRu4MSkCH_H0?g^;!1u3)_$kudZk*$KtV(5zmS7>0o*w9cvWu2
      zYph4ya*w82x61vzH*)J_6|C-i0UmCyLK4`0+UXuM<vD7YVff8X-#zM;2>IeO5Z`wi
      zp6xc<Jn~8$Z=q~pO~ahR+UASmuI)WAQNcQCAGh29UQNbsnz-Sw+b0Izenw7XwTCpf
      zP?a=^#Zbp1iAG#0qKGRMM4trcbBuq`>318>t(KHSVoaP@Bs>k~ZP#_W)wbR1ITS_I
      zmn<&vj3X3zl$J+MkIe$h<5qJXwz52GWqHuFvy7w~InHr*l~$wG3#T~uBb_Nc$1zR|
      zk%ACuoafy1gD{T^oXG;ubCd-h6UHoUP8KNS23RQM2e1m3K0vZy83UvWR&0QD!I~K$
      zGitF!SwdWAi!x%Of;q8{3t|IFv5Abhfn~9!T5ppV%LlEcC;3XuImKA+LJmt@)0LN{
      z=VwUXF|{U{&oJjQUJhUvNzmv06BfQ_kk4Bc7TckmmqU}S$>h7C$vLb9oy)``J13qX
      zUoWsbAL|sa{4fEcK2|3&-1sY@Ad-_H4#$%9VRA7vIW?L5acJ`EXEI2VK`MknZ>-LU
      z!D=Xo^dyK+$C5`3N}<V_$>h&Mldqo1AWa6D5C)%*)fq9kHWdFCf%vokNBC(ePw^#m
      z@fdOO6%yiWEQoKA65nD;e5YFaqR$RRpB;)mI~09(DEch^6@6BI*OlnA^1H4?{|4R+
      zr1vN9t-KKT1KA~i#&x=Bnr&K(Ps(4)(A*hCZTL|eYx*cmt}$$5&3J;XdM<D2xu#|0
      zo2R%rlJbJQl;T&+i{E&mpQ0>&$Da5@alEE3?EQe_Ja+Mpx*E$U;}*RL?K0k_r(=&9
      Y+w}N{j@#;@+`)UaaWa!1!X3o^0qv_CmH+?%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~8ZV5It+}wXxX%fdIx30|pGcZR0?w3n48HIBsYlrD=tNDplGThqyAfWK2q)
      z`u$j`KOz0@TN^13Q6p7-?%%2UTJ_A`t?kC<p|<wU+`BV#&$%;m_m97S{SCl8-U=gN
      zVEhC3zMFPGtflu0m4o!#NABMGQT2XdAv>KbRoq$_rh$=DjSK{i=M5M+Di5fre63nK
      z_T>Y4yC82kgsv3J#oB8If^+tc0du{wSBN5rJ_{Dk80g(BmJ2tJ4(=4H@49zN1q1z?
      zmAqTpajQj{`-^7nUh&Yt<mRc6Jlrb=B6B(Yvv(peFl<2~B-)6Du&0e$=<>Al79yTD
      zZXxPvlNP!WBK$lF1@dI0_6xP!WJwBHZ?-F(xw=g`GG{-BYP(V_*A}uXVK@dx|BKjv
      z=b??l#*1<gFEJcp%L#Qc>^e{Lc2nIYDSvgl=ELF93V>Z-Zc}z0(o>QsXOPuD31|>=
      zH%-?nN9Dc41<ua5A-+|}*WB`ciTPiN;xev;!ISLK&`W%g-g0aAEW8Ry<Uz6Q!_A59
      z>lUth>+W$F>ut5w68m4)Yq%z?Sv_H$EP)v;OGO3CQcl##hdRgTJC&nqzK|<QZS=Ji
      z>IFe(z}hI63)S_Kdw5u2g(zLVm}J6(toINl^G}U?`I5QUb7o#k=3Pr>owA3PtW1tQ
      zoL!<cD3x=9-bYjdILk3g3G+{w=3nUN-13YtfODKlfI*HD;3ry!DN_=_nW|&RnXV(|
      z%+wKghRr(0oMBZ*!Wj<LG11&1$r6R?fvNfsQD@Pk`Z1seFrv<3Tn%DI4e6b)d(r)!
      zxsRqRkW-p4aZ*c?njA+8Q`AhY32mh{Aub0sjTs;HMWU7%A?GoMzWkY*$6KtR5-prV
      z4bG{K-my0C*^b_`nDh6(OnkC;-!s^|vOk~L310Z+ITY!ZIDHKi7doPdx1m^S@osWR
      zck~`>^S;{A`{Jn_;^Z*afx|{ioF<3)jwljsC~mcQH#sbH^qy$*ey^kVrBgX1$YG)b
      zhkQ$%CWl45?C0}GR^A!r&UR+MlJd7X#+;a<h&!<`#h4R|P$ZmKH$_VmB&4|2M+m8p
      zVX05p0G}eRKEtH?9CPXmy|LE-cB27o7Ij7!kWKH5E_<5|kkQ3%vjH-?Wo$NahPOX~
      z@xIUSF|gQZ+lPMJCjUpvdT1X)sjm@L-=J50i$V1rM%DL3{6h=cWCLxIsB}{iq1;c>
      zu1WsAc1<?gH7Q>w%^)dXC;kn*f+db}$^1@VY329*c8Nd5GSvh{mNLd?%v+kExYo2<
      z^{iHNO)FWV)#{S@3~Ren(=$_dht27`C&)G%a7cDjkC~4;QtAno)d{xLQ_XPEL*g?W
      szzw{i(WZ#@I<)|nS)d!#g4p6^`X)7#t2c;0fK9H+^(wb+5H}I|2PdO4>Hq)$
      
      literal 0
      HcmV?d00001
      
      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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
      CADV&y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U2hvz5ItjWY{yw*6Z+va4RKRb>~*M{mKK83mNZUUr)f%)64V9>HqIv5%HFNk
      z>tGOX@Ky=>MupNBs1&J0l#iMK6%<}7Q3ME(03ihY62#oyO|<p{tbBLo&Yd}T=FE8S
      z|MU5m00uD?Mu5<BNnKHM>PvQRNi!?CX{}_d#!^{3SV#?qAraz^Lz#`av-6kuIE)Zs
      zS991is=ZvaHA}Tkix4i=EK4(N0u>1%ds(lh4)9fz%|X7q@`T8WT258edYz*Rn_Jy@
      zc~e#ETdHobQ%Lx$d`Djk?8xGxZfNH%)u=9-R)wKM!@8l{#|R_o7GHk~1%6tNTcI+u
      z1ZmV<(Aq)RA)_5pp(SK=Ko;6A88KJeEu+)b9+vTdt0iT`@n94|^vmeNUP3UPnH6!5
      z$Ot1sh)r_pQ?<&xW}R2(%Nn6;(k!XvS=G|T-ZM&qQbKP_y1r^sgIss#l4d`r8w<Lz
      zG+h&5e4S{BUM-l0yS>N-8Csob?DU#8qb*gO-nFIY#xun*4ib`1<7&2E&P|y!wbJrf
      zSrblU^^$hk)=eXV$GN{2Pe)Ss#vp0d?4-GvoHuL6LN&?*cSIEZ1Yx_^1!tyaY>U&&
      zXJ(@qLOzVAxUA+eX=#FtVH_p2+nWt0L^;zU|B9kNp^|A@3(QVnZk)hH6f#ADeL@6|
      zI?jdST)}k?%<-s2XUv*a(#CZ`QQSx3evt@4E*gerjh5AFRb$-Pm{BU5RnGd1W-pry
      zVN4LZn{)Po$e6?#j^bW4|4WXx4r5E9`AkcD{o#2W;IRqvYU9ZXi0J|1aWRoByTm*?
      zk|)oRJd2Lx>2xH|A%6ryyt?oZqikc%Vyq69Pb=95wkzodb}9*}fo>%cYM@6+L>lN-
      zx}y#BDI3_Mq!ZG$>xd^pi3rO`JhTQW*g)z-#t2{^zdJcYFnT{-!9IEekMd6DJ>P*e
      zGR~QTtatwaOK}#E*2UXF2nh>a^F;=>A_wr87kPxeMWn3UMk;axZPI$M72~=OL*ByJ
      zkG&qoki#a>p<G}P>BXi(qI?199YpC}A56y<OwMTslSsRnRQAOUk;+Y0_*roU(+jA)
      z(!BD#ro6qK4YK#ntLL&3%igQ!)^MuH)FVuX9aFdG<(T@LOio}dynY9R7rG8@;P72W
      z>$``T5ZPchD1Cw_Sx>!<aFBcDqj`eI0JMeyy2=0K_b^QBI8N{5B;CSU`T*1P5iZil
      zn5Wy&Xag1c6gBz`b-IIB=nK3~cX5Tj!dvvU!_N+v1CJkO1IKWji6-Q@_0G7_Hjk-Q
      zk&?%h!HkGUFg3?ZFg3($!rPZ!TBcp1rq^)7Z|Gsepi7DCAq+{sp_dK+!_dfoF?5d^
      z`UZ#SK7Xga<<HP}DA4yfO+R3Ye#Eo%6P~A^@dEvVMf#Ol`VE)qcUbfXUZp?r8vTVg
      m>2DuHt6L1MGD8JsCWtYvHGpxPWEpihV}<*3ir*57IQ=ikX`9*r
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TXR!Y6#n*3PEQgJA(l1?Eti5^l2E9kfDk}zL!nrTaw%7p)AZ0DOp}_N(Bk-@
      zPu`vtoDp7~Q4~;`GBV?XkG`lsK>Y#u=(FRu&pAy)NsFC1*=w)8*IM6N-`Z>X%fCPV
      z1mJm8bx47(E9O<R$DDF{#;npr&j~B<n8mSzwIjDNSE`N_EFD3CRg2yd5Yzl}{H_UT
      zQ}(DcF3>V=*<<4lg?)C>b`A&xQt4rVU|(s}iXecffe4lftQfS5)=+g~#44XM8BL&d
      zu#`6o!)Do5dtVuJ#_fv0hQUQ~_-L~NdMd}i^l%sg?FKZoC@En;_oP(@LY~xVAdD6w
      zpW;W<!7<A@>q2EZYI9B?#N~{aRG8usKQG;`9GaMPm@*SP&!82{QMD6Tn_3)XHa)D8
      zPZ?N?bxO(@=<=j)1M59$yMYZ@M?__T&Lw;?XsPPtSy0xUIj09$?y^;>7KlP{vy6Cq
      zOV#3NWe4+FlS(h)EW#4Kq&Qhg2J&UgbgY4*W0fn+$u1RnxMW&S@f=m|_Zv8Xmj%N1
      zoMVAgOL<+w=@Lh(%>pa~^Y`*NU1S0ZK%aq}0-#luhSWNxlTO(#jtR8Q6{o=F@A0%*
      z9Y@$VZpSsKd#iR~)G9}C6oWcm6^PB>I6iWP^)he_Ltf|f70e2etbEM9tIS658cyhV
      zoo`^?fqP`&B>KrN=^HX9_*_ooj1H#N5XpmR;4Ijq`c<<~wT@pF*zDKS#p|KT`m{Hs
      zz}SazL9u<2Po&Yr&pbUG!kaAPh3Wn3>LmjvM%Z2E<fK&`71-9y#^a<Rj9)1?+Ng5D
      zMqQoCJ&9-TVhE%n(0y%x2(}WYD7>wNaTmsf@<HBKr}`H6q3})`IHW2VIa#Wf^H#sD
      z=1Qz#v~5=v7cd5jMXT)AT=h$fH}Lol8IvP2$d%KB5=-o_oE+|+bAxM?Cmdt^HMo0$
      ztKh0-X0iMp1&I~>jc|qBjiB6v825&E3D2OFJLO;{f0cs|7&gqcQ#r_NnL%47J%e~A
      zsm&mnN$NA`n0MQu5Xe5dJ%q6AM^qk0n>>OJIpBtQk=W_V52GZNi^A9GW}`Cf#A@oi
      zduu4^Jm+Nc;q(x=m(P8)-QjgFAJ>UI(KHthvnIyzg~k_~8gu?NF-|TtzTDK9BeRKd
      z$3o-DrpC`=qi=lBWgRT~eI%ndZXrscLkU{ocJTIsBD~w+EnX*dQ=QOjKB0-Hkr`Jc
      z$Pb~(j}Va`BPKsVTz=}h_lQi?iA>aqOw@@?)QL=Bj>t{e>?dUr273_eGh1tL+ls5(
      zSzNcO-r~CLvF`E!eTI<yoM5gaDQ}=le&GU&d(P^B)}sf{F_hpx6+8Tp|FE0X3z-h=
      z(!5gMgwd{r-ruEth4dDx+HQQQG(lIBa5d^;{`xJ1+clkPuktssyj_b$+-sRMb#c#7
      zb2Uj<qi!n02ydzo?b<w3d-+NszeYfQ14G_MyZjbw<#*U3?_j6Ai>$ndocta`@&}xe
      z_i;(ipeSpo%2_wt3_F5()U%zgmw(zXe*jg!eMOVNPVDk4(94IdUQhBN#5n?NQ_%S(
      z71&wqzRR=52laD9FD2`}v<G{Af5RkEz1f)ZH;e4C%+~G)*w;PpC#ufnujK4EPJ`cF
      ze_ftU9evE_D#ZVR4srmg7yimqV)Q-{;}6F8lQI7K-!V9k{XE_yB2|~84{`WhriOtU
      zjz7SuS)6ZuqlULsrE18xUiRd;lE*zcspKo3+(9|U`-K`x3oG!5y#9@T`KY0yNBs&&
      SyyMorj0#u9kec-l!v6uux%!#_
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      K=6acYpy9tA@1zm{
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      V;|WSX$&_jWtNTfQd-xM@-@k{drYrye
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~E_s6n+k@8yn?AgjsRSL4mQNOu%o9Q9y$U@d6EscV#qC1Dn}8(JSM<iQkFd
      zkQi??!T6CaBx=0yJN_u+dE2fdO+(_6_MG$fecp4P=Y96)@5e6yMllgV17YC0epAot
      z>sEHzD6D1Y3g!ILoRPEi{PL<XHr+p6C@-!W5rhcIowpLAdNH?Rn9C~`fu;#fT(6r;
      z)(V%m__<Ax+&Wy_7d~a?P3ttFaVRrS2u&51j2IfxE<;8Op>5X88yCxKi$?LX&XW*2
      zW(zrebzU!;qIMTU){0poq-S@Y(WNuNvkpz$zs!6Tggr8v5Ej{98Br(OCnM%$Ju;e|
      zY`=_%ll97w5N1;A{4hbm^@_t)$S~u|ATJx%*?P$&S(j#K(cLbpNg;b_jKB2^W&9lK
      zx4~C-fROTWtbcdu#W0K!p<k8|v3c6ka-XZLFoy-6mqTq{PHXc<%+k5F8y4Rbk9v(D
      zmki7E1R-{*P%h?-^QO3nF7JbDmJu-+V=m<LMsaFYFO>|wldxkU^s>5*?7T2XmX0%?
      z&W$X-U9<FdWZ~_|vU6<aooohvw{kVkkvK})7TVr((tut3j&TItVWZwf2iLN*3A@qB
      zl{lb_-{OGRJVp!0v^YRZR}t4TRVbPwRne^}kt!0J60IVsDa}=+>Mi=%B%piT;y$AE
      z0Il>8o%9IZ^cX36f<by}x1M2Me7xIQWP+cVIW5d(tB^(?XOg|9a^@iVIg8qB1Dpxo
      zgN$*;&N4xVcLk}pyvgBhA56~!IS&PblYa0<AUFff?L5iiiq6U>3@>OE)~mvDRamSF
      z5?eU<&Ns}<ZRaW81sn<-Chi~R)i$u?fky+uiXZ$Y5IhzL?)HN}1cJu{!3jTjD-e7b
      zM_dihAY^MOwCiqtwt-e5o=Bv|&CsS#!Oz=Hi+ds*^(_3twXpg>_Du?t(N{?H4KezT
      zcKU%h{X~L(p^tvsEgkEso^@5vx~gYg)w8aOnsrswtgFJYZUc_lq>keRM`0lG_dki~
      EKQGVkJOBUy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-*3}a6#lLoJ0vkJP};hoq||LgYzBogN}w=7TOyDu9$@Om-b`z?p3(#*?mGSm
      zB%XMj_O?ABZIg(Qn6y7&f5^1=NsJAI`0lmiM2&?+r0a8zeSUoBobTq(_pkl{Z~@n|
      z&;;hb^}h2Ky!~)t+i&hJ+-vSNw(j|xq1V{1`-^LHwR+PFv&aaPKJF=y^IDrbez3h0
      z3W%D(A=>-FR=7j+d!EMvdTbkAKjT`^2*NJ}hAPg6KxVbM<>xVkBPL8778qF%8vfnA
      z-G_ebOYdRb7dW=w-1O=jUMrAx{4x{n1Z{!x`o}Rw-7FJorKWz)Mh*fKCJw=n+N6nG
      zq@6I4kF=8}3XwK#A{%KlCUh9=X`hGv$yUFLT9s3{9Z$jB_QRV!lRd5p6rz{0yR=s1
      z(A$grcCz9eY@xS{<t#oEm_E>A?|al;9%pb)PH#aVtJ+k9Wtp!zUy28WOVNc(wF@^J
      zv~TS`3b`jD{YJoS`(Z)|IkYwPllcU}=I=N6TAO|?kZT!B9AoC3lQ@~<PNU(sR_k87
      z?Q=uA;uB^#>mjnxpyVK_5o|2E3T1N<N^%WKatV|sJ;@9{hiP4;6qLIA5+lD+(QuT{
      zJSD_mWbNNLMq38a38OepDHDwGDHHrm&n#tGCU9pv7<cD7u-y3$ita?FgDH1H@1W#P
      z7#*DIRj|nzh<{k&HFDx#42w4y75`yU{Eunz7W3krs(d@j9#>`^$uxzgESV;8@|{gh
      zj-!lOY8j=?QPY(+Pff;@aXLnQo^i4x!+n8MPkx~m^{p~9Wv^!=>A8{`T^fkiQ==WY
      zaqSg_1+ad{nFp*t&SUWud8S_C?5_vV<oohj37Ye%XvPQ7jPynKdbyAqZ4E>pPmNwo
      zjV=yEPo_p+OpTrzh%Ti@e~wG>9B;%sl=CYVp8bGfIY6oCL(enM4@_~kFWY!B#ifMD
      zKQf!-vHb}gF3AY(5_D||dF?Vrv?|85D>$KD#f-MBDn|UZ6aGrxNBp%D{@MwD?S#KJ
      zy8N}#<?j+M$G!hVwjU;1$36X2UO9(P%e8chqHAR-rd%sWQF5&UMc>7XK;M9&-Gr&F
      zU{qU0QClP6Tc~KYKG04A+9BvFOS2$BSJhQ>2)e2+m_yK2H9Uu)tMrh5^VA9)>J?fV
      Qu40)o&m8i9>l$(&04f3jHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVO;crt_6#w0>?OVIo)vgTQ9E>4@wH-Ja6YT~QSSg#1iDL|gqP(?l-D7Rve0>v$
      ziC;)eAkmnpVGbc`jGy)a{V*0u`~&=>jKBL{_h6m6#3uLMbI(2Zo^yV`b8h<QU%&qW
      z;25e30s>t(^-uJE{g%^TGOSAfl(k$fP8kJ9ua?TjKu$q$yN$QKT-NPN3;L2Fpq32h
      zj9nNr%+i7*(3DE&1X?`h6|?9p(4=NK{^bIZRL=dSX9U70&8q2)xaYVGj#@<{iYBzG
      zh@wRxK4Dgk$>qwNVNdIGW%_HIunKy4Mz>A5t}BDif>{&jp7`&Kh6S1nR@KqXDy>6|
      zBYiCjf!!+hAWZiR`>IrQsCZc_nyGM;kjlL(_HA0tO2vK^-BJ;um6v}Mub@Z4L4j5`
      zk}{#}zo0t{Dh}Z=v()G4IGD<%bJ8@WB8?2y6|-88hkAh{Dinmnr^%K4N!4pALeiJG
      z%|V349f3fFi$LX;{J2YE9VkkvC^vMup;M>0fP1Nqs7PWL&vR37FV5I6GQe@iuyx0>
      z1x}?JP&_j~PZFkWy;_^M?8<PuVgJSB!wMK&cLNR2YpN$_Et9q=Mv<2kpZBAiiDDe@
      zD0rLb|LbuTXK+@*g>7|tu3R>kYAjmc!36SAT$DGyC$MMhjlQ*lOWUJuXoH?(QB2{o
      zjFuI8wh<k_u<Knj+<?wD^ms`?XQ%An!H{*L+l4FMG)A__O=rWI7rK?TE!Z9%4HkZ?
      z+>e@7vRoq@EW&0sW!}~+<U(LhMKdA-2Y1X)Hf_LWDA7ySvRyFprfkagMigF^fV1<*
      zt5w4uE$g+KQBz<F9NNl6<GDJ0d>Fh!QBW4>+2KsSY)L>v?i@V8e44zz;rqp=fqci<
      zPwvb#xfhhL3++_O$2kkmq0Cdnex(pVoZl#C;4)3G;3Z0`XM_aWxDv99_~ixSb6(v}
      z-9}~|?b#5&T2|@RLMsmu<D@Bt2M-ZyTH{7%Ho|XLwk54a<TfX*rM|62(xnX?a5b*9
      zf!=IP3-!8Md5tScZJd|%?ZQzjo1oP1N=YrQB_2FNix$(84;~{FT+@<TtfVC^-jdMb
      zB`slP<Ftw|(j>N6h_5`7R!wV+-OD-8?0_50M`vbpeC`U^k0ReL1AUmsNt7^xo0!HT
      zzZM)U;WK=UFJa>=+{P;I;Aed5;<ZG8iAfzVDILRri{S<#A0S0x{DwhFA^KXw>y#9F
      z`Wh!FMd<Gfyg{jj-immWQj9()k);%;=NyJ8CFp+$!<3RPCnr5l7?I)<J(%fDujABr
      zI6{FCx^j1hv=sbh!dtpqTk&Xh3+WzuaGx>XbMqQxykOj39Y|?2ufcj=Quh`k^6XAi
      zQWzB<E-y9_XKg9G<E~_pLnEc*l1Gj%NpCRKy7CxNE!awi4nD)^EO**DIyp3H^%UoZ
      z!X4qhb&NepNhK@ns1}r4lz3#~AC64ckG%Wj8K!14eNQp{gkgBppCG)zH>BcQbYKOC
      zN#+SWB)F?g=6mGv7_;~RCVoVPvyGof_Af3ZBeJ(}*N5aTTjr{p>@A)dpob1pca2hz
      zcPV%uAMk`t={i27B=8YS%j?Dl;#OZEZWUXITg7wYR%L$$pBJ)AoESro7{_tWvVs3E
      zaW`<j9-B#w<m-`?wZw)b+>*ckb?6Q6hL}N{@ZJs2ZPEuP>DNorua~4>FG+0HOEY`V
      zgXB8h%C~4=hJ3ekbaH4MT^xNJTLWk#$`Ch@5IQ<I?-g@y{=2<P{6O}xt=i}!z~+`!
      ZFwf=&|MoOtf!dqQbdhs~^Az<!+uwfa23G(8
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}U2{`a6kVrD+9X_{Q~_gCX$xX=Bc#=WNNY8QKqIA{X+jWQnA`N4Ugq{DrY8t9
      z`U9Nt`_1veC!Tah8SHe%&gi>8%5m*;W7@_@ACj}rK4-7J*4iie>+j$H05F3aLl{sP
      zf8acHa?U3@=WXUnL9?xIxq73qzUb9Ae17y0q6)+2mhS}h+{)Smx26^1tNA<kE5#2h
      z3aX@Vw9p8)v=iv6<G0-iJ3!%BVP&~mT&)zZnVXVT3S+mI%f+Q)LDK(%++Qr+SX|<V
      zaFa`iahg*YeJ;e=eJu`h*xzWPi}C+=;#;myz3w_?-cyKCqjnV%51p3hXs;2N++&})
      z<00?1_Wax}r%95DvR4lr-EQ$Tckpz6Pvl39K<6s%Bc0c}<*l`~J7+JjIzC_Xy};88
      z3X!QyRUukvth-72nzk^8R}=>4JLj>fd!<Y@!J}~tM_@@bY2j!XowIN(jLus)4oj$d
      zfxFz^Tyt9$XHCeDEH!G5Ulmo{o1}EIrBhbnBpZ|tDws2r^oF-ZB62MIOaHxhsM1U|
      zi3p~pQ)&orkon$gEBU@#cl>;--rjTrU3^q?o8o$s4|rNsUa~NZ6B4~;VFZH`y=~!z
      zFq*UQB2FrtI;ie(GgPRM^tQ^~0n=rUI9_*kIh-;ReA*Th#+Y#2;klXkiK$GFCkivY
      zxkL4nMY+*#)!gfzOd{3qS9nn@!34$0k0^;0Vi@FZh`RyAxliod%Q;^G&r<RR%*q#F
      zR?eU6h`44}dS+HSW>)$|+*6DPaGJ<*yhId*mznt(QGWB!V;AafB(j6iXE-BqG>j)q
      zK5Fu3O+JiYeafN%yvFbIBnsT*_Xi}h!e+~CP^Pq1oWmVlKo!%-W6D&>p9o)ir~OTe
      z7WoN#G#ybp$n3!;2@f>LwrNVo!;5&`sAY-KtE5<732zJVg%0p-0*f*M9_t7EDS<yT
      zz;<}?Il$6F%#4^8S+)wzyl5=^iTfB^W$hj0(%)k^9sLnUb}@5z2XFpqk8WeuPH*F~
      zJ+_T2b}G7!tD-Vu%$p<);B!*=f^+?n=6yxbuW<(7(7bP9<2yrgHf+%)neD32cGQzV
      zhonR@^C;$tZIN`CIn9j1J6Py=l;bLAG5a^n{>&hpr#wR72h%nzj&<59yo>kx6kqNw
      ne$ux%-?#WmZ}BgEi{D3~>-#n1`+oXYf9;{a+ZUv0Ze9Nen-N0P
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIiO;5ux40Sf3Fg~_{#K&nD4&8-n=bg|bM5LmjjoZW_>)b6<mq6<Rzl{SwfFFf$
      z3LR)5apI6z&a<CiY`?xezW_i74m_v`XwB7w3e+P7dJ#x-m(vx}%uWV)pJPUu2WtWv
      zMNp#5H0Y1#7?FVb6zK+^D729xZH<7AA1=9KYbbE=r6y@&+iibg1I}lr1iJ#7%u+J+
      z<2XZRZuwGv3;#hS;E1!N$uOmBn`u|Q%&q!u$#NO**~LN=;l!yBaLc5l4-Lc*!8uW?
      z$2sG@nMzeem`Xm1Y<jxHO4Wa5@J9|;ONMBsG!t+VDHCB5D&lUgh#L9-DalP}hzWPQ
      zY(i~l^EAQ>ouGi@Uxt0=2Dl+WK$TYnz~kAk!v?q=@L;pBTTm<PHtZC3_tW2ldf_*m
      LWril-71)0Vp;y2T
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i+fNfg6vn?P^tKF8D!1YlE!v_`>J>v%vrtPHmPPGaqlu~8vVk@2)+}3m)PKqN
      zV4{id`bQbhoR-uVU-o>zGiT4tcV>S7`Ti3?5s%}D2rRsJ&YXhtF)Vo9g5iJYhxLBz
      z)D7bp7g*xOj^iH}c21nYX@_o*9jpsPP2DyufsFZ|7Fz<6Ynl~f*RbmXGxiI;V%Wx^
      zrJK!~ZoM%CQg!3tnQ2swr<L<mbYHjjXeml1d%8fnrkmAQM#Zi*_jOyRRZ31*Uz+A1
      zIXp;elsVrpQEGQQ-wVqEW4U}oV0@={<R%c+ATTR2hk1cmX;?Cs8(3k(^)T@K<E?xn
      zNu`StQN$96E4U~TSCCL}MIxafsbE<msX$YZmCzJSD7Ymtp+G8Fm5>T16|6~2DwtBR
      zAu)v*nKM1#wffzb8`w^(<I)VwUfbz3oWN7eNeyF|B}?IncS^x`x?DH9v!Mk6t={Vg
      zZMW*FPN{!xd0iFLTcGjKn@A#~Y?8_-haAZqNAksyEO8_^9LWer^1zXfPccG6nMR8G
      z&Jg|L?m+hk#OrkW8!mjs0_zOxCDxZ%UuJ!k^)=SlS>Is2!ulrb9P2#m+pO=fUT0nS
      z!pA7mcbg6ZY|_l1(1n+=h+QnBiYyMX1`8W#poF)m;Rw&shK(*!2k&qO4}DTa+~sb{
      u7(JPxtuj%B^08Ig{@!RmjkBL<l%M&(`9T%#^Ju6Z5AcwB2t4Ahn|}eFhM{r*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%SyvQ6uqO>)LJ##)~fYUK``AITz4f!LGS@87V2u6T-%X!rX-W7zvjXZ@T0_=
      zNz^RF%^c>;nRA~XpKtE~a18qv%rIy@@r1klS-WE5MpNOQ%W14HQIC~xL5YEF1Ob;L
      z_j>q*o@UU9P#0u9B{jYff9PEN<Ce?1oqGlg<Zz)p9w52pzhW%{HzT{90cl3Rn!3};
      ztcxNBHL~fAdB{DD;cYymYs8@KJY-^%^w0Z2CNS~S3VLcXRgus_$y3RP0s0I|&LB;%
      zE~39)XC0GQh@O%OhEy>zBwzAHH09bGpC%}YT`%<Eq<?2v6Lv!?EgoNcfgoL9NMAiu
      zdU8ZvXcqq5P?w1f(0nRWbt2)KL=_)@FN<U0V`f4{S3{hr1g}g02Fob@LJ174G)EPY
      ziA{Y?XA!F4d!Rq<EsVKK;citNdUz(%G1-NQAEjfSXFv_0RRXYSPv&4A(tWX@Y;XZ8
      z1{a}fa0!+Tu7GWD71j*apl+}M>js-Szme-V^ZQngtsJ*=+<{%nfWaP}GtmA5-JZUZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TB{E5L}l+p}fkeoIr3u?FEZ-PAH-xh=)WGNZg!c+qz2a;%wS}8wWmsk3wu7
      z5;>H^dM)qF?5^kg=kp5yuHdKz4FTs<wNO$mN$QzQ=UN74p3wu+#Kyiggez)6Q$VM{
      zCCZHDQ#i$lU$+FD*4Z`YGk#>4QYzp$*6CbPG^tf@7HCL7*bD9pe%?f06FD7bgt0$S
      zPDO++;80|pSK;z0M?8~!VZyDZz>KU{N~|sQUj=j{hl;S){Y{(LE(KilN@}swkei#a
      z_ul`LD{<aBiMxSQGZfJOUt%TGB`eAj$|@&lRG6TjXkNb5ezc@VI#Q&q5pY(Ct@naQ
      z<89hQo4E)FI^pi!+ESHOm-&CPF9J3=HreMUd)I<(z6jWXc9C~sugLpwzz6|{d^Vu-
      E3+ZX6I{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%T5A85UfF96<<6}^x{R6<>H2$2`3UXAzAf+iHV+uak31VePm}A<<~s;0e+OR
      zSq!YfQ%~1a^`rXh`{NTp4<`;v43{%L=N^Bvo(esaC~p)cnZ1*C8ov&u5vfXSoH{5o
      z)N`ulQQ$pHW>Q#&Rv_(Q&Xwj9E&W(<Ee%7*?Y{UqIkQT8E4<H8yLlHfu_}&?gFWJ{
      zdk>x-*MAJ{DL2DK#6u-kT3;Dzw&Ql68BVEXaYkhl%@_APlnmGIcH3>FyMppX#x_+^
      zK(jUfmK}*WVz~IH-miM;*eK+IByB^al3Q7ris9TX5Vx)EJ7|%88%GQ4*T!*{3VEwE
      zt#nqXy1B>IQdngmQ|OjJh0aq!m2!u&GR0j&YS^cQ;Q)tuJi>7v>u401O?tOURYK<n
      DaGRH?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)C34D~*wLj-(mSp(I{v|UZU|7WLArvAcpb`=wN<s`_37}+>Op=kwOq`iOQ2Tss
      zX=4{rU#*B6rCOp^EG|q?EK9AmwzX(&tJXeSwPLlkeXo7po>lt4_xol|y7*(}JKwqI
      zo_p?D{`cI8-~H&x6GT+Y-F6a8C0Dt3x@+9K!ZqF@_kgEnMSs87@97M>{h|IqaA@7I
      zoh(e*O3LT<57eydxysWUwv&x%R?6JQk^X*9(9_o<HOZOjOob^j9qv%r6I?gUq<40;
      zH*ariUeVFKz7x-u)oU8pbue)Y)AW@Ae<<wshc~)?Bc3$a%V4SrjV)_i<Rr<2{hG;K
      zxuLOTrR1eCWrU;VGo80KX25_aFqFE#1}5vE*B=fsx#E%?9)F)F==Be*kwcKNE%W-l
      z;ft8&md2%~)YnqBk;$?$(C2Yb8o4ymsfa19v}|JrF%@f+L%9x`MJ0ARk7?#VHBO`1
      zG>0j3z!Prrz-vQZKU|`;HQ8w%)9l!EBY4vBuzKBa^JuSUIP4Ah9W<BbOCv6T!%f>&
      z7}tm8{u;_Q+NmrtO37Q#pi-*PsFJFfaxQD`+TPOE+1$~-ZtaTBmUV5gKkkj>iSsV=
      z>~4^=YcyJbWTWDZE7opkPM*I#8cU{JLs3G8H8?Q)W770RObZj-KE*<lCmZgr(<qPf
      zr5Q^!S}M($F|`>gd!$^0M$4q!ys6|S=W5nk6ieI4P>(0r>F)7)<VFI$Zr?_C&@10f
      zrX@V+MTX6Zd+Q$*n@q=1S$A+ZQqL0{4*1+Mj-9)Qp}Zl%4O3=ce1T*yA<jtf-k`@F
      z_N)vH4MQiaYx0D`s#cl05;PmOB^7f+T(L2_GT;jYTao3yhO*SL<e7F_jp(N&YLbY9
      zR#A&am(pb@UF5m}5y<Y+Nvbymy<zEBLj)<p)T&V%tz#;hYIjjpOD1j4)bOuYSVfm>
      z)IsZ+^1Y!IzTrW4d(bm9;tP9+eO^zWs>UsH3masv!p-X^t(D-cR9~fRXp1pE688FP
      z*0@81YO@HQ)W2DyF51Fmhl`AK0IIaek!>1XAxF|NvdP;Q9+b@O8g)yi^ynIocVI9q
      zxjoXzUI1EYON)Z4v``SQvr_F!3XlZAKIF>ERuoXGWWwfTIJ_ENMLU?LVcEvOh`%qi
      zu!(8WB%e(7ze?y1oGmzIe4d3(i0%*t?Bqx0#?mKMNbY=&6ueq)caEJ<X7ggwMy?u5
      ztwL3~!!ck?rx8SSm-JRiAXqY}JXGQhl`L>jkmfsRl&-PUZlLCr+BCYBu7lrFlP)=)
      z^1OhXQ(cxU1n(B6N|@fkNfLxZlDwYk0U4ZruMb$kv~7}`ljE4WO!DX?JCld)^eI4?
      z@`i%x7N5^E;P$Nu4vY+W{E43ZG*cDQszkZJq}T2D2f`&io|5pOrzGSa@|3tkitY=A
      z4H*Z0Qo5Y!2927iStjb|H2OS!0f(RA;nhL+@SwLB(Jf3wg(zEP%U-(KPB$^-#Ud6T
      z*60@cFMw(Y@RD@61F=n~siJFj536$9OSfwDCAtmu(-(B_YLOicQ+tAc6)OQ3{{<c!
      zsi-Ec>j`;+J3YaMGL&Z;oWLXo5IsE}p19!%@1}%R4K-$Z#N`ckN?uKhXUe$D@w+s-
      zTcU(4SDa&wZWOG84$xh8`f_4>GSvd<^cALZ8EDKZk-;1q!PlUBrx|9yIv7g={Utqy
      z-uvi~oxYk_&xYPOhG;ZS_oLN=IUTDT`#k+_AT10@40`Gu0L3UhsL|KxA){GZ?;aZV
      zdDQ8I5}iCXVH|VsqlY#6Ivqi3c|-BTF+m7j<fITJ3?q)xWe-X-9@FS?I%;g7$sKkZ
      zB{by*;=>Jgnt<i8v~3UI?3db}(CEo1<hOeLn<eiljlPk<>vB+pPD)fih2BA;4GxP@
      z`ld!t)3<<dM)@R1o@wx(?k6>`5-g1mDI+Hz{>dw;6Z+d4{U?1wx@f!n+9vJ$u14RZ
      z?;EF+aZE53Bt|NB5J1H&`hiAg=mogd*iMTd<r6|dCbbAtR-l~yL)mq|#N;U5+SG!7
      z%11w@m+kZuAXUumYJOY5@0HqBgA}_4#f}Y)UZGc^3HjOT3566Y<VWpJY^-JX`kF>R
      zqyLsx2mE2T*B?^1nUqG{xKF7ZV*0s8zo0iT!$9;lk2{ESmudN=c>Q}2u(fGxlS~Mv
      zw>0{t)SPK(ZuI)lxw?aL=&VNXBrMwK?H%dyqA5tYI!#snKqd={e<2>;^|Fbuc$=iH
      zHXuQ}yikd)IQeZ5QE%+U)ov6YoT(Yg#UW3pd`B2-;%W8o1OY22cEW~n$%j<}_9>0A
      zbW$h9Ec&xXf1$r3=Zu7k1=`cMe$Xvj?Kue^SFFTTHyG3C1NzWTe@iS~H6mM}k5X!W
      zk`<^;BvH%cCST^3DlXYLtxhmQsW3-U51uGHb>C4w%7D{Q28?^ORfQy}>qt@!2^B&d
      zmlB3kj>{R*Y?r?oBo87k8fL_t>ELNR-OgInL8?Al-QhuvGdT;(1Z9JW#3^kmyVSus
      zoM-1;9LTYXj73f3eAdz6MhnS=I)%GWNKknSpu#SVi+Bc87L1UX)$H@g&IGAg3ScyH
      zEb)eEIxCR{T|86cS&Ykh7Mg`*HHA~FLDO&P8<y*&sqYLpxJUKA2y#5NW4kdcXEUZj
      z5(qwOfZ}%PuriIyxdI#P_XPsz3Z!$I<nF38u9m<rcW1a5mrh&@?exAJuGM%Uf6TZ9
      zw0lQAK9DdM^}n^r&WmL^;<7Nx7fQJ$=3q;iWFFvpjT?9wnAoy8*=|h6-mIg$-9cDl
      z8y&7Sh}|Y(AB|FC6lKjw*fa>?8+@29hcOQrrcQC|XrH&g9}0IHPrk~*mvO6|*G7L~
      zQa#v;V9>ogq;VVLT4w=XVJkL3H;~MB34Y;`|Jg3djuK9TfXuMmwgjF&;EL#z7U3ez
      zxIl;?><~d<l?Y<Yu|6;o?Deej${TyZq@TR1Wdh>27wm%sS;>x%i!w-p<ut4&NW=T|
      zg!fFmXC=I6Lk2(eC|UdhfoB%x>QsR5LcIM38s(2w{_+WOmRB6585I$lnYr%{(vH*I
      zE}o$CPZmE20sMCfJ^~*pFZWtmew<3X9;Na}sd|DI9;L<OR2t`980F>1dG!YG5v6H4
      zzE{CIqE52VM(k@7EZs~qXbUaEb!r)1NsV|m({@@zZfd6<NV#$O?4@nwp+4#dzIkxx
      z8l;P$rNr0?U92p{o@fR1F-H8*<ACjQ=PS*fhp?vH$?Vw9%PX;k$=i<`TSPWYxEd2f
      zFg8q?Gy*5?#KOB04454=V0O%a+4AQfWdLp!rU6ewn>3)S^4sJ(POG{q%dz;H2(87V
      z9iHzz0%DWx0O|6X4MJ0d{mWD+<?*r=pDQJEg4{<Ec~;4QazWC|3y~*8pMl|HF#HDi
      z{Ike_F)E@PX%6kB3c3j%zZqWsB4TkXZNM|`(XQBry5Mt<@@N-)KcF^*-#p9>eaiG`
      zt=z|8Yh{FdnfvyW24Yxd)b!&N?8*&K(9V+;a&WI4*c+i;aYGFcAB1P_MT*@A;|`&H
      z8K){d;|A5n4621eAII`GY~erXdKi==TRhXC+hLFe8(&meaY(NI$*$Zz6ZDyrmCur+
      zyn-V%CXM`TTUGhvv^YXHR#kwQ0sa>^RmN?aL+Q{lfkHWk;&}>@{01C%lFp-3bOD`)
      zbHAx<D>v4P*|sR=tVOgBZWEZH)9th$QI}TUVOS~dKv`o2Zl7#rhV<mxR(#zFL+?3Y
      zZsMTa#4)-T{0Aa*ct35x3j`ifFKZ+lpGS{VMCQmbe2!1hiDPuSO{NHBtI}k8)mzNh
      zO5@d9?y|V75qbt$cm(R6#pgSN*1@OjZAowSmb5x+TAgj2D%0xh<5X0oTlZL5w~cj}
      zlzpsYkDYb9oObZsTYGF6l*$gCdlAMww@JD=LeJORT(+t-mnE(0gw+?J7sn~L-X>wk
      zWsA^{B=pF@JWBNu`ssekDzB)la#<$m^>I4i7^qGjcypYzsL<PpAk%wjGc5FDvkVSV
      z86x=-BKadk@?}Kw6~N_BX&${s)#!H{=na&>TeKD(YCF9RC^`$Ec^mNa79i&xfX%M}
      zHt*nPnRn?LdXKKd^Amv38|i=PPWnAPNPncm^e1`@E!`9J|G4;kK+l7I6}-3UBUodj
      zKd_xGoWVA9BYB+7CFnLPK`ljN(aeQ7Yg{Uu_5jwA6VYq}Wn{YK?SmZx7L{ZDUm=@<
      zfXw%hVHQ}U(XT;SVb4)m_C7`*MD6?*lm)ikOTPmUTImQarvCwD!<}s|tal&>|A4Ig
      zJpj`NE2rb_|1g?^J^#_HrsY^u!oNyNz|>&8L~IZtK3^GLU<gGG2i_Q%Ayw@#RW+Nc
      za%3XNjEK;m;4p?=QOGh>E=W+B6H}RE`XYzU;ixbUvMo?4p}r(BGpyE!jMocQqF8MY
      zSsse5Pyjy=*VA-vpe$Za#e5NZ(-mq(&Cq48n1iz$|I~rG1|F5D?NFvyMp&fU+@>@b
      zhmj*@vjb7LDy<I0-U@4TkO}Fg)*3ve^;T(as>00)CRt-9WzY*#OrDWCxp#`mLf-9+
      z$t)wEft3ek80w9(-sH0Aw%TLtxB<*#-F0^PZt0G4j(69kyR5ohPmgf+ewtrd1!;ge
      z7j%PyoTLl8E2IQR*csvCJvO1+s!kj{cYpjet(GkeUyXblA&qyz|D#mR*HArQOU-;8
      zUCtjzmw7E+f$;&pUhQL>VQb8*gVCx$3t&_QcETkp?<F-`<-Lu1cn;4+yfe^J$O^Dg
      zF|FWvD(|bQ2C3@+1`ByJHT+^30%s<YvDfem*W0+>&h_bBp8?LDPuc5p)9UiZ#YON<
      zUeq)2Rla;r@|6x><?Fiim6)!iD<VAK(l@s6F49eDa4wLXJE;ub%!_$bYKnRjI!tel
      z^E0L%IyTmOj7#^{6~q+Lag$Y;Afp$I4J>sg$>@b(6=C7Z^aC_aKG9cPTA>%{g)ZAE
      zu8Hu1dK+FX-C)>FhFy(Yx?SleBi)n$E5l@EjMM6vnne+=OH!j4iE0!hS&d?4q}3IV
      z(?p7a)yg)#xOS;S86_!AStF@TWrU=%$Eik&F4Bvu#|&A6RKf<Sqzy9L>2PXjQD)*P
      zTNNG8Y}vB7a`j@Tqhp*Z3@Xd%9N6L1oX#D+S<WJmnFc3Ya-2mwdOP+MvtBGy<lwng
      z{~(sG+z2n-lPB~%l*EUp<0bJXEkQ|q0VT1QGWaHx#m#`GTPT-r#~*L+q7uG`7VrUT
      z<b%}4_tBO7RT}0)bS;n57~fAfgT9Rq(>Om&Px9C4dwhgm=f~+RAEn>o$p4U!;lld_
      z?vzjBB6b4Tq?5dXPjNq=#;+mI@%8+D9^>cvCO*Ua`31h0U*yC5LrDLGpW&Cmd4*r&
      zSNSZz&L8p5MLNGFT>MKhi{BO%d{$K9Sp(hzeoidocg1RcPps!(iw&SR^If8ce<#bB
      zvvFXdw4!AU$~@danPn_`qh$=rEMsv+w2Z|T0Cp|PSQDE7+qD3(EYZmqgG#4daXDWC
      zDuegaY+k|W{rMUE^~Rv?r9xf_p2jcW?@tDG7>7U;c$xefZ8oV1`~kliylg&8tp-I!
      zqJ>uhQgUggXjVXyM+-!$0+M`c6a@-Mbol=fb-WfJ3iqhvwGgqmkyk^X6A`(F*MKSl
      z$erRA08KHV2fuuo(DNGhPz3*+F`&nU8;L(@b?M{cF_#sEoF2y<`Id+{3TZy4WH2|1
      z5E-TzSW$#<B*^F)fP-mCGP(n-=`LI5F}_sPWsQq`QI|a~teH!5GMDD*S!2#=1Nq$E
      zyHt1PICZDK1OIxL<`@H6lC5X%yNB|fIr-dS4C8wsDv>na85@sl7)X*x(jZlK2A1YH
      zr|a2cQ6to9+0MMUEqTUxqAhvJwwMy}l`x)YOH@OGEt53JDFHYnL(l52E7S|6(*axa
      zyAM)cjJEXE6{5d2M!!Px5IF{6ho0SC2ZLo)Fy{hujzMFNQ_fMN#+>7Icu9inWfgj%
      z?u;XJTAgd0id{C{wXN2GNLQ^hXNNOSVv~z?m&=B87_D-BY@&h5YU0fJ#6`NRdTjE{
      zH}+(+o^3n$;Rk!NSkD6S8^Bz8?8uU-XdGGS;sJB%LQj`4w>AcIT!1?;@rQu9k5F>w
      zC`Y7Gp|H{g!bTV3xm=`Eo5&!yz@I?HH2So_-{3?h-6FDRpU9;<L>}EO3g`h*ND<+p
      zQ=*8T6*K4+F_V5FX3;z1Jo<~6%|guK3^A9B#Q8i2Wm+xDc(EwwMp4OY0aoipHTMCm
      ze4>^^Vj=Gli+HbC%wH09d`K+ehXG<o#d3aHT*NPli}`2b5`I%O0?bzOpGA|fi)N86
      zR*3>}shA}$6Z1u@SS;E^gIFgn$8)<_FZ`lYgvAE&c|30uS>k}m6!(iQ;xVyRoD|!{
      zY0%#iY2pWByXtUW$Hg3_AA`m-F=#v!gT^y4Xgm{x#^+3E%oL{;M4@*VCwQZR#(eRl
      z0xRj&oeG$wZ+jImNe_4MCcu&O^ToUw)O6Y_int5Flts6SX}kqgHr>I0<E<FYp}YC7
      xybV+yJ;3kt6`*t+FmEUrEaZ3Tu!2FSSc3mGNWz;-TutX26dLI((QOLe{&xqsQ1$=-
      
      literal 0
      HcmV?d00001
      
      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
      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
      O`bjbuIN-FR`~L?vLAO%?
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;!A`<J5Pb^;w4xx0dNIZuc%U&JH6Fz1!K#TE4&Jt9C`(F9wu{8i@?_${5AdUm
      z(*hAMUgphA-kY5_`}O_t3E%|#CFBGSM)E~Ea%LPgmH|1J)4_mr*Jx=dcrC#asAiN<
      zMuGF-jmS3w#d8%Yb0Ls#wt50qC+?GtJl4x7peRsrRYdpGu}AtzdLaqa+}M|4PimFc
      zi>76UDiJtz|6SsY=LKXsaw0tyDx)aXG+V!_`O>R|h2~1j*^QQyq4HVNSk)}s%q;tH
      zWGFI;8z*dzJw3DQW%H2|6Km?T&14wQ1nh1+)jnOT)K~rQ!P==4>j*rBj|>z!<BM=C
      zadpZl7z@YmSbO6n2b-hK2;9QL9X2>C&q<7%NIzf;l?<!c&aj4hhC2&v@B?7YF2@}9
      FegGG+aMJ()
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8-*3}a6#jgZCXM5kQb<{WLV*sNvJtu;-PS<)(Uy`?pe-e(EilsLHgQSpVmrX5
      zJ?vqBz@%xKGzn>YnkL|3(kNm`)1LQ7jeXa4(zIh}k*<Ax&pF@u&N-j0{Pp+me*hSU
      z6Nk`nV6AY!kSRRyGG?t%mYMVQ)m7=pQcgV$495}G(B=D73syOEb!AN!y*OeT_HT>y
      zBW4`CR4+<LL!xL~ZoMWQS3~!-?_2lGY9`Nk+sSH(c@@(gI7teD^*=Z$&r_yldSe<6
      z4Zhhmo!1Z@w@Wes4Lb}ZpzDZWr-3B8HADu}`8akr3TmOFV;6R+pgjiSXlL-WX~`?~
      z+KP1M3oBKrYOsriYQEr@>Nz}&sv0!(zme9!Fl$H_N~Q6zBd;sO?_R?po6ajn2MzS&
      zkcM`)(kqx2Go``~v<xGgUQ*6S3=Ame2oq@#X7M$R-I_#$Zn}+>|AW(#hE7M;?EA72
      zr1Bm&@Q%tG3ruXC>lGX?5Q1mgmW~XlBMy4IVzy|_z<YR~wU(u~V3xd!Kdzh#{?NdP
      zG9_rbD9v)kQ>Pyr_ynWO%hS23^BRo79DmDP>E&D;r!*YgrqBt~q4>t_s_k5+NU9OM
      z0_DMLgd6C{;+&ES!P<SWTrh_T1CzKw0<tP=((=xEY7n_}F!k0^#BuT8Wp3$u5>xop
      zz$HvGiOYga%i~<5gv%@26$4i>qoISg36t4ewvY~OBouhe8MuadvZ2R}`A}AAJ?hil
      zuENbqvwmCr1bG7sDtU*g-tcj|wqBK<RFhmZu%!ANb<Hm*c<muqj_Y$~e-Ml$R`L7K
      zuDhONmgp6;S64}doAr>3SY}XLO*L4<zBh0pw8=%G_BrxiUAo@9y*^<-u%_jzH>c)2
      zCtYckbiS8s2Hr&<6?@IDJ4JcH^k2y>0y?3lO&R1YOFHA#g6m3lX2+yetlF+=l`l)L
      zVwVi8<6fYp07^suU^vOmFOWa7#<whslVlL#YJ;Fo_<;bry42T&Pcg0}3|c$5o1&lc
      zNevx;hR&hq=o)&7U5n3=dWN1~X%Kje*G?rn1t`uSA<m(fPYQy8*o%F>Z9n=#&{;+W
      zpueH#_y!LA0AncF9$wf6DkhN>7qDAQ`Jg>PU<j(<-^NkGYB+|$5dL%sp9nDzJYoKT
      zXN)coms+3_O{hc@D&1syK7`UksG$~mx}qXxSnq5Lp5DaMn|PdbKuvqZCL3h)G;%sJ
      zM$FC)oEV7)n-50XQqhrEWF)Sh_xGiusWvSYPsKLy(P;ZiWEZ>oyH9tI?Zm6@GtY5$
      zv{B#Tg~*8hGp;I*DSZRue`0Dh*_-TYe}SApZ!%02rg?$O5grB!dK10vD#r`VCV0sE
      zb%C#SE#+6dfg3-)db~N2+t|aBuS1ADqGACZ;s$!eBKC?U^oeC0;yNO3;+VLF4EMw0
      z4#q?QXL+9#MO+aQ^P-FuQNdkd;w!O+@5Eg^;`tL%^V|4E(4b};pN4G|c#LJ-WYeSg
      z1-H11P@zBKHg{3<;Cp<=T^r-R#U1WqZ2C7Sa2MyFgD<gyB6U8A3QCY1!z|HOY1L`T
      zqD&PfIiyNsR2U0K9~+`V&CMPJW4}kKJ1t|6HTlLuz7gE@WmiRwclFMz*8%8;#cPyb
      GeET2z5z^WK
      
      literal 0
      HcmV?d00001
      
      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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
      I@?YWq1I*Ta^Z)<=
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgtYjYD-7=BLDG)=l`wGbfO8ZKhm3K1041go^%f`yj0G=!qEO*YNKW;bp&wBRSl
      z8T%Lf89JlQU}w~C&iJDopK~^nW`i&~j+r^xv*)~*=Y8JG{{F{LKLa?6FQW(v9Dk@k
      z*0cJCmo@A9x{;k}RjY<;R0{I#s%d$K8^wUY!GK)P{h+`eb#LkRdUn=wY(rnO41ti-
      z5J=AjbbEZvH}V357fsvrrUg!9UL`!SA}}!PRE#*nNN9**L?E1*Sc&2_fumg*w_299
      z;FvZexUyL`8lLIcLl_g7?D6l%n6@dMb{c8ZPM00K>A9`4=eTi<Vz2a(6i9ZUsTh|$
      z*R<F36Du(Y?AH**kih7iX&bj%^)<s?_TwL$bIQ84qPwPi?;H+zHM1#j@}-gbut?3=
      zy5aQzo+qWpGZQb>R;0$7hPPmD8Wx?M$`tqu>dZQp<K85fR(^G+P>>uR6F3q`*Ja()
      zeFQU4Jkp-V2}#LGfoR58i{lhBQM@UT3g~t{XqdpHz@f5h=$<j_)El~Il9VOA-mnY>
      zf~7*3eUa^w$Vc&3Kft1EdXnEoy{XFejKIiq9I6E3IE}X@=(7S5>0>31DZC?3-W9mf
      zS9H5w21)DEk?&q9FD!>BE(jcc?)(KkCAoTE!w1L->@}O0tVT^=aE*G)^2~;18WmN|
      z_u@E@ixS_50!w}Py0q@X;5+LjBY)4w*z!y(dtGnV6j1~^jE`_BijV(lnZKC;^9>C%
      zm}O#vdAn>hJv9UbN`3fx3bqg8F7$oL?$wkiuV}c6Yn%~PHH`%B|3i1ZCST!E@?Owz
      z1D^=Q*m{0V2^{P1xB%0#qHb!qg?WJlHM@1fitX3#Ugu>?-PW*(CAL&YlS3{uu{tA%
      z+#L-^F)koBxe8oQxHh<IEatlGUba=Y6#X*T#WAUCbjCnvb%y2TRI36*&9ZJc&8Koo
      zSJni^gBH2~W!rNSg_?ENc2I10t59aceSxU}Qxr387GBU)Z=xj7md6k)YwFn-VizF6
      zy?VfL{>lEN<6wVw4HaxJjyhQMF?^xso6?eJO_?CVk!dN&v^<t+A@!kE=A<u{9-G7$
      zUvgS*S$<JT_<^2C{ZW5L4h<aR=OoM(;R?yG3P05Y+{X~-|1jU~^FGAqfyp+sso#*;
      z!Dwmh^)~kWGCB1l_I=O05DxHvAFTj6>gQ?aBE~R{{cNa|x>GiA5Qq3iYswdE3Wsr|
      z<0;Fh;9X?$2kiTf8{h1pI=rgPXud$l3~9hPPY6?(ggi=}tsSIGslnt>a-f!sK1fE}
      zIG&58BJyAxZ{*@Tm@1{>sn`xqm%`yTvTdBp4e#K5DHTZ#ry|>UPqdNGX%a<BOGTbx
      zI*eSR^O|^u%V88#iEUip#$0Y>G8{gV9H8#VuSjoWA)Fj)W4X)9IcS8nfFy3S?G|wX
      z%eaOm6mSQ3v4Sd!XmIxxO8A=3Z*WhA`mG<%bH=tPTU6n1QL3nNvPGRD^TV*IRV4Fr
      zx5}K!Ol;v(e1<`_`<%B?wR^zb5Yf2Mu}0F;SVtKZ=KBH>8pJb9Y|}ig5&2zYVRDxs
      z#{GDRM;IXn)?q*G^#JY8|3-U#8?K_g6{Nk)Kr0N<U~ucCy~@yP49ev0AwzmZ+AY%l
      Yh_u)LL)tf9O8e%&r2PpK7{b#(0lF2$egFUf
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%SyvQ6g{`vL|Y#%xDmm1-5BgPyEga$rBYXdn`v?rQYM))ndrZ{@B{oPaS~i4
      zMbgb&=AO$r=RUrFKED9mVC<qtxLk{O;fW99rI|?Bo0W0Qnxlv6x7fJYCyeSEDe}Zy
      ztkxVFf)l6GuqM1s9=jO)ZuF`fCJYlcGganMF%1a*4zUJZ!YcEY)~j_bc^deH^H8%e
      zJXhI9m~<sM;KI~>5?*&OZ~L4psq~YISo#goe@19^2eyZ2mFA{u;jST6d;CKhgKDK4
      z?5#XuY-yLAN37F4xwrHM;bPLLZ-bSQ7gg$zZ&S&Hv#m{ES8H?#ggtv6K;JID4+qr&
      ZxHzceAqI6E;;4?tII)$4Q~UNX`UPB5x10a~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTTc^F6ouDeTBg)0Qf~+rTQAU-k*a7+)R<7C$!G-=5MmlHBOU7KFk_}ug+~n<
      zjDNyQglK%wL}TKmKAM>LKYaBMsOwB?A>ieqJ^P&5v(Ea~o-aS%)d1|nJ{2tjJ=ctz
      zM$Wk9=d5X?Z07Q_zFBbH>(v`$#ueLC5fbQH(X;HiK&WK+hJaEm<^@`hT8`x(6HwDS
      z4>IEd(GxS1<_+I+or;Pz0y_dR+i=P`-L}oLVGnub>a^+j%|?nIcS~jz3f9G-qFo@I
      z*7eM|iVlI6V!jOm8)68fRiM3KIp%P6`ikiVjs@Zccha!O4bPGUjl+<C)v5?23oBSw
      z@E#$9J2h1?eF35KXYqh6L{X9W9arFfxN6&HUCZ%JujxF3?E;(RlVqRFr7vkT;0B`D
      zhLoh)!H#s@MxZn5dzMo^BD0E=O~2tcoX!M^uCaq*oV8|5n+@rrUeq&1T}4_Ty%gn;
      z=NYrQQ!-~ps{Y7S-mN;NO4F9iD;q;6wsKGvZ&HRxIHgn}CN=ZqljDnyx>aw|JZagc
      zz{VBP49MG%qLjk#hY~V>R$<mEBHXue7ve687^^wfA+G6cw^n<LwOOt95$oR|t{huL
      zd-gTr2`#aIbWRZot@h~W_gCy~!AAaf1-d7wdJ5}t8k<l+57$1NVGU&Ky4Z{@-0=oU
      z#(QNYJ+&atzAm0Afw%5e-dy%cid42cL~Gh-tbLDd=i@zZk^Gbm(dT(Z8>QDJQ=9n;
      zaDnm{33!P{FCz&fFqEu|H4UYjhEja1gV%RpCw9?{3?|1_nhnbgUb3iDw+4sT0>N0l
      zp&=-+8@<aI`U07+l$QBU(0!!8_91#k>eWII(JK?~)Dm*9?C(zuu*j4KM`YCfjQZOm
      zb}nm4{HaA-GL|JTaGRIi;fUuL?p+3d4;iipF^|Kz&jHQj93BMb4+Kd~G}D+sKePa7
      z0()3V+@8jG4mB$YIq+Y|$X_7`>yTsrfLztG3i2@_pAhmXAr}a_NXP|3J|pCFLOvtp
      Ti@!p4G$G~4{|uQ6=Dqh9Sh5Nh
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaix!EX{l6vn^VS-NyVpleI1s70+7Dk<@dsS&D#gi6wyCdSi3Cv=--X_iHe2mc)}
      z9`s~ljPYjTU!w;v9>h1hn+1VJHtf8aeed_adEfUxpS}RNhiwfCL-EXfVOGqSUd8I0
      zJyEF-?16hQI1%>N(P5)D*=kT3HfOT;Emw5CNfN`-eao@DJqBJZ9W$tPLUD`%4tjG6
      zpi`VoB8E#0@nTc{WNNx)IpWEv-x2OpvttVeqc!N7_Oa<&avvV5-l;WY*lEp3nTVJX
      zUZpNQ;XSm^PfdokVo+$CPOsALoRR!$si|R&L3!RJ{g$(DdX#9)=P_sms@WsbCXo$S
      z2!~22JQOEk(5TT>=tNQ;*`hBTkK}F_oAbQV{1MH~?R6L!Nr|0XuY}E@9}PxsS3I`l
      zOwyBk?#c-;B%6*S+`4TJhhnJVHp9k+qhUz>>naMMmShT`(LaVI+RJFqkATchreMU4
      z<rRz#{UZ_|=$nERy>(il{6Jdyi8Sq#R7v^ttk6mW#O07xqfE+0>h4#p^4(1CHPPO@
      zqmzIndqVl;Q?fy3NTC{Ju}<F^auM%A$V&vgMX=vfutWq)M6itrHY+Z^P~3Qmmx_23
      zaaS(nWft+c`X63C;#I@TYQbe^rpA}2Kw2bBi!OQ<*FqOMP<^L!<!?x-pY>-v-#&N?
      zy(~@1x6AJ%KMcwQPeJ7wr1>hceBJL-2<oFQIb6r4^p3nKkW13#8$RVGZqcgyzHQ+S
      F^uG||!!`f_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      gzwj8c%NLLM%0A-TSyAo6sMfVW*!d;-sKBrO9~ojE(*OVf
      
      literal 0
      HcmV?d00001
      
      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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
      DmD>rb
      
      literal 0
      HcmV?d00001
      
      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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
      H^6&owP|Sle
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIlU2{`K7=AWso3E3ml%{ZKgHRRPP>Fn4v8feWKxzv`z#>#7C&_7ZFikqii3J@$
      zhN*)e!<{$WQN|G%2b^LHqK+3{XvZtB{W0RRdqUEty<kK$b9Ud|eRtpIeV%tWfBgO9
      zF93F7!ULDU=JUpTM$DM8W7d>0X~qT%`RO5P9k#NzS@57vU{j6HvULG*f!`3nivsmC
      zR@%-8G-OO`GGo)|vvQW*FW~7M;;(B=pl&dqHvMp;QG*{L0e5HDm=6N$G}NO(TI)4<
      z94oBB>sT8!_|PB_8nJTbvC>r1ESxfuSyP~SB%d;}V@AP}<ML#kow14nTSjW2*Q6I0
      z2o_EIpfzRYidH_yE%ij|0D4Np7Hk#prnpd=G7Ds@_B=(!V0k?rz|(lvgJ%TVYvQi(
      z)6kBH6ZtslHVd|8GV;bw=k$_oWn)K-V#byU#U*LJlh$O;uuBEz+rFk-Uo_fJS1)#u
      z><Oh^(TnFuSWU`)#IVbQ=Sj1|xH6iC-Pl7-rb|?BUpZ3N$W6vZljqHp9d{rupXpjX
      zC3$#3!!~RupVLf{*@f3kuDrfmpmn8;7pEUdsjszBr7KW|voeRi)qqyd^iz5tr9W<6
      zFtdcWO%<r)x9m3Lv-!eN7Hl>?J|OGDgI8E_6>(3H5|Wc;LHFZ;Ea-r=1~nYSApyUY
      z;~gr}i4iuG*_5YO_Qku-$_=k-I09ZGt+Ii|C=gwHOBH4H93M{!%VvXY*2`v{lwnju
      zA71A5oZ-i-SwAJS5ooI(VmTMTnkw(@beR^{_y9-wi3w80n@~&{yeIFo3N@$32J)p`
      zn#r|PkE>!52&i)&IW;89-kua|V%kg-l0`^G+bHmKasF{+P|t|WEGaWf2)M>cod0CL
      zR7lB3i`ZIfN`9x*3tRcJxcTzc@#90o7V?=<Js%m>^NC?!PfsezR^#XsxHtoBirz;s
      z+O~+MX!|0Xqmf0lM8kE9Xr1S(3mc`6+P|MM4)D1eKqCgRp0%Lk5I<nAa}xd9IFkMn
      ziBOir;!>7GBav>BPae<WokygM<{Ve#njT%i=HG~b9Y5K(K0t>XRWOap@dT4RNpPnW
      zfGy7E3IJWcuL^*!g1Kn(+7d`7gSgP8D7ah>8rgBQyE)q2eGfZNJMn|E>wbW}E*03V
      zSZGyQCb-=oi%B#i#SGHR07NPPBIv=34C*2y`)IlF5(Brg2XpR0Z)GjcIU$RgEp-up
      z5^xi}mVQG28Nz7d*UV2*aUc78eR83#Jrb^yBfsv`{r50%6;~bWaBn~lEZ{ZS3}=4!
      z_G<2);0+AR@rdqclMV+HVQ(hvN%S<jdqOwRp=;rw+LQ^05_&_pQ4WqKIM{P)HYCC!
      zwK(_iui2n*Jcs8V&Jz@+>X4n=tvqBitk>(BGkkz!zGcE4W6c0F%<=+S*z34RNj~6z
      z_J`!-V+^q-M{x-zX7MgQ#bx$iacΝU+%E9ejZw@Fjkw{X4EG-mg1cRd`>jRNj)h
      z1(NS294}Yi5?)u8C+AMEd}RGEv4q~>thC11dz5vWmX{H}!<#rmMYa>gSz3M~y@GLC
      z0pk4#Z*i}N5w>r0N08WKc!yRaGU&!RS|O!w;{Q?C|77a!9DO2njn(R2BO7y6_Zqpo
      zPS(Dry5Eqqn`G-2)%}(X-KM&CsP1j5dyC%lT)oSg@2Tzr)xAq~@BN4Brl`WdRX6n*
      K>ZW<R3+6wK1v0V#
      
      literal 0
      HcmV?d00001
      
      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
      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
      Iw3Kh=A3@=O(EtDd
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!O>Y}j7=_Q+6Wd8$*KtB?Gvmgj1#E}L#05&5v=VL-uoP7l3Eo&jOqy{z5ZjVt
      zmn5L>`>|o&!nPY0v}zTpD%o|>{sR60`~g@4=e=_~aYGUkX+G}Ud!BRN`(D5N`{@pV
      zDO`*qWFY&sbHgb)-*!u0(^+*(vrgBk^coGfQ`zjgQJ4lY2Tn0yu5iAAP`zRxw(PXN
      zk@W_`bs31vcrCAciL>(6LXEe}?G<+jVH}NP5D5d(e3gHNS`?8%7#NNtikLi&(~
      zfny6^%e~TTF1wv2XL-#vkXmS8bJl83$CGzGXm+oA>juUa4s<GErs-ha+oFh3H84PS
      zp(bu@ag(K8aU*78%+l&LD~v<cNWNZC_6H^FC!LP7Db6{lMkDP;W8Lklp;r_0j9;y5
      z`FBM=Pf3xNK~DA8P&`zpmFTM5_3LKl3sN|GQ+HD;YTyXJiy42;0O!agSv9xjHvRHe
      zrEDL>aS9pc^K?En`f(fu6uE#l{RQD0&YFRt#dfcA&7Jq8t|KD8yYZ7!Nj3?$lFbt0
      zKlejDu{^vV<(EMW@p^=B4So&rK3)u4W_TO%qWLS1JwdW)J&Qd-s`wbmFfXaahe~6V
      z*W+9R%u;O*NzCH}KE+%33~#7!N{w?)@Qu1iBSV%j-wc?h@@A81Z^J6u)^nT;2~^?A
      z<nGc^FsZZ1{#wE?zJP_ABISIIfMjbDU}KETkYeUEvqjHRk6bZqzn*jA(3C4o=`v-5
      z%vI`M?_=izc8>WYBvD_v@Y&;<y+O8QQ0#1fjSpvUkiALv7Mb6X{k>ureXT>-;)2b@
      zyi)bk+Ql;0Nd?lZz{HM}o%BO0ev9<m?3O#+$-8~2(*Zfn)G?}4voH1An%C5+Gm3X+
      z8}IxN@E*<HM*=@m?5Dn{nE;pxfEf)0WAcQks1tZkqf5MttpRD=U-%G$^sT=`50rG=
      zpP;1;OyG=OJk8nC!%^u)tGsvlBendvKP7M$#iVZY65iKB{VtMwWuEQpVhUxwc$SgG
      zMN%SIyqx{&>@fbh`SYGMFZ%2x13O84sO?PQBdz$k-v3cQm(ANbYjS_p-;}C<!bStt
      zQ5_PjrszwTpASy;RXUdbO6)qee^}Z*$3rU5@9d~Q`qUGFdO~}q0xksVS?&Hyx|cJg
      nevqv4EBD#|68_|`#9xZwpOjQUNCo~=+CTLaOHRtPs_e|a`-tsc
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F*=`$E82*m;B;&+3EsblZaZ3xfLt_$lQbLnD2Dec`6othCF=;2QTQ8Dhmql!M
      zT($HKSZ+Zq5+xFXiW_c_cmiGkUH~qT5Z{01WHPnm6cTBU=PciL{@?!PpYLx0n8TSU
      z0t(ZY?W=alexqBeH|>i~scd)c<=)1I(<!%m>kTK0kV1OsCWX)io=^zX$_lY{yLCkn
      z6oNIGh@7am>fJ@|%2x|(98R?_IHL$6ZeaxD3ekL(e}%OuA|p^pT8JVhpYE~{Mnqv^
      zwcc{h_L}QX=LMU36jH10^LAs+?$qVoOoqCb>YECOSBENf?JQ8kX8mo#sH#Gk?1eSa
      zlNCKv6fAl~PK<6^z2-6v5jT>rm9>Epal6#%*l&q;PU_i6dt+nM>FTNNjd=!8tr__H
      z1U^qlftN{cb<YqyP@|OSMW^c~7s?kTI%?BnNHSFz<GP4(_k_7eHp!`#hSPKdu1atZ
      zS-1yj`l}m%diF631r&LJGTj5gt9C=dG60oE+opcGriwYo(K5TuDkW7!y5f=qrC;I(
      z!Oho&aOGDE9ODLJdzlzzjlng+&@ZFs+P%(sr&5>u-7gmXB{(a0%7SH4v2X+YXJzP5
      zye5wOxiW%LKF9dB!PNlABgI%I6x@PU4E>0Sn@AKhKSXaLRs0r-ARno7-)M||eBRA7
      zz%xXvB7xI5fHOFZRU*rpM&o#ZZ^XqU(&Q4(gC1u{Ys-=|yM;_KoB0`s0z#_k=E=Lm
      zmO_X)FS62KLJ}_{gI6?D&c*PUvW5xBVw#)*&6zWtEozoLa>ZEocAqnQy1Yb}b-KJv
      z&MU-i__%W(caHueWFo#+;c_1_+;5UwJZSDIf5v-rzeDbK$^9NV-zWD6n!D&??ZGW7
      zSk&|@sUI~e)_G16m}CMow<LD5?~(X5vR_9WAMqw{_*_qV%#(B-BRVmCu8$eMrg5Ft
      ze8;zN?;Qv~rr1v~j!y~pna^t4BTRdQX+sFwWT$GYGq~SSmpF>7uoUjs{1AZDt$RbC
      zYiP^eV4xLdaNHbT;BKkmsMKO+zW?}l`nX%>QBPSEv!={Tc)$SpRV4ahe%e*V9Olj8
      zC0Y^{aj}r$<H6VGu7A;I<yW7UxThtKhmDpwJYwLUHJ6`sO=USenwi}N@;43X_Eyq^
      zOd5M&2MV~<_v2naKWD(lceG|de14~cN41mRSxbNT(8oRWaU&SK{3ks0DI@(gqD%Ma
      zucFNSw)Ck%hCiw9FU{cgNXlbKdHPdEKk+n|^vD8E7_Qw?zwu>X>VMxM^#wd>;D)8%
      z56N1U@6P{{`XZh(;Jc)L^jd%FDvY>__|S)?ep27*B9;vLkkpS2GK?ar#{O68Cw03n
      z<CNi&cd2!2r+((Xx;=C?;S1gJ?$z>2eHmqgcGgs5qOa8Z5%>90NqC3}uTm0TrLUl3
      zu;oIf7JXfrABa2+OC9uq4|XO2SbR_G$XED7>i!hJN@)3E?d#FP0Kp+7)U+@0z4}x-
      NR;Z-Tt2)!u{{po3LJ<G}
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0+in|082-j~ymq=y9aBh*H^r0|Y=`E=xhbVdUAHbFX$cKT5r|D|r!Gk>IZlCc
      zxa6i3@d6xfD^(n%HjxnIjvIIaUI1PIF1V@q{@KZ7>og&ec6R6Ro#vli|90=EO#q{q
      zbr4ZFc-6n=5Bu-8ha1cOVr{tWxBbbrdcD@FEH(YMgP1~g*EtHY%UqxknXf1$7W|d>
      z1VAA=FCFpYjg?0G1ZNeh#W^;onwM+ch$7`8i5>-~P~~57&Otm0g<cm95_0#Di!Q_!
      z_D?ldYSU}W3$@l8{=!mCAv4vy<S)(nt%f|C&RF|OV^twPwX0I?W}FgM8`p`VstR2s
      zFV2Y^Pvi_xugDQK37T11Tb`sJ!o~~p6|FxhW+z%L|3i_^PTd=C*6XXaw(i=RSfKyv
      zyn%m8;0uHlc<JQSU=6_|^OWK&*4jaEu|iRjqc+{fBvOTa92YUcoG#9hNwVtnQf)cN
      zw<@_k>*5Jy>91k@>E0Jz6j9;=$_y4nulY*~t^v^D1SkP_waC^rv&|?aRYbbtkOZY4
      zQU;;iT+_QF8(r?Ekkc;4aomW|J!hroWrdW1-C9E2vTTFGl#3I1g$(6@!E~RO?g@qN
      z+2&g7QmxXEGB_YngbH;?cAizu(qnZ;_|N*$cic_34|605VcEy0I!7aH50#u;EV===
      z6#E7H?;>5w{T#oGOz95NQC>2$KWdBvygtG;K!s>$kj7c`p^C?Gj>s~m(b)F!iMZ%T
      zmR!R5sO5}lZ5}zj4dhB*?pGX)2&twUBkwj_1~KAX<awAwFWy8BZ)v7{fMJ<D!vuJE
      zjGPh8nKzs()GT@AOOAKH&%r%i*6DJQF0YWYLENh$?!4vB(|?>y#MdeU?n8$A19FQ8
      z%{>s#cyI3O<o<}<ACvPFa(}A1O99p%+@gZDPrs7-VWVP!>m-4GCNQ`uv6Fp|#BY%O
      zbEI&SJNZS(b-!iqr|SgKi5YTz#PBT}*ICVXbOTTR58+o7`!#y-4Z*$*S<PC)tR>7E
      zLeM4;w6;2krw#QmTanczh5G|<B9OWbcIcLdc7q89T44}J&Ej#+mKt`X7IR~r%kSvr
      zL76*NnS&uy=EE2<Kw%Z>PMFOHsu;zXSv)~Yq9P?0a=bkA?#PYX9aer1X-QcvDLiMi
      zjN*9%H)A%xH!$U~c_BCS0LVWyWN@~6Eo85;2cAFym->Fmp6Bz_DwWl<t=0SN!uAR7
      z)=vIpE&UZj@3H7TMlca@%%Tq%>F-dwoF4ru%8hMFAK1z8H`V>48G<vCu?!ijKV$S0
      zPjkr`;p^FOoiwSt+fGKl>j?edQ0T5@aBb*(wHvf)6MDKM^iITkp;XcqF>N)cZRY$a
      z80;C7d8j@PcSf$Fa8)b>zOzPHV2t6U-cWv84EWn7@{VdbvV$Ojv`U5&->YJzc7#e2
      zpTsFcwSC%h>nPv+{{FC4Din73v~5-RBtJvJhpb`(NtANlI?n7s%7k)A*pL%8<b(~m
      z%1>E<dCufO%)*!Jc(tRXRUaJHzYA`l5PU%%!)rR<Dy9wYMZOy46Pl#fB7tW*fj$22
      Z8VKc@w1SgXaMD(CQd3B-7j%5D{|Bz1J(mCg
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!$!^n77=@1$H*SLiNrBQ37ebj5mkyMfBE(RJNL5)BvZ;`8sZ$J1Dy1p&3oyI^
      z!<G#TK%hzp*dZZafER!lfIZ^;*B94JrIkEf-+R7u{`=p2{QmkKfSovGAz{F|>|ON+
      zy=$$(pzh81gQH%{JGM}(`OQkBWx+I%|K|(?<}{}pNK94?v`=}BE3(``a#99Thk{1X
      zI?P$6O1aA0@wsU~jU+NQI<V4!RjTl>T(ywufPtJ13+?i>+D02v23Cy)4S#&0KIJ#h
      zdQ-E$fzGkHi{5P2YX<VJ2hG-{VBWxnv41*cmJu454{lP!ptm-n%T+Psh?yR`6*J<c
      zolzPK^<zv!(Nt+th7EK`)T7O&cSDSGP>rVMYPEU4rG|b^EHQm$Qp;}_`4S~XUIsZe
      zTtjhd#&3lcGfQPD8EvV%DYZ1Pg5SkQIH!$sWRk2pG3(dE!d9eUyKHPmp3wpwO^xoe
      zQI;}VbQms3UiD@Tq$lPUniu_(fvTv8M>{?sC1i7O57{IM{&OSL6AQz8hF?06=5+<%
      zYW$kuz1K|@%;X|$*L;gruaI>MZ_=;O>AplZ$xG+NbEUC{*DkIBMyYlJS)9Z=oWdrY
      z##;4Fsd3IazEKz5$de_^^%2ul-W)QWMHF18@E#iy0#&$Sa+heGFsU=a#yX1}&Y^&+
      zA{9f8h~#Jz;9w(}3B@dGW`mxk9z{3h{F<|G*_6{v=`&@G%o*xlim{6kyU6@0lBlm-
      zgzR3;zD~AeQ0$&~jhAO%C;JB3H_5z3_HD&>L#<`l;)1=zyi)Zo+Qk&tNd>xDfxdTA
      zcG8!r_#M*kvRm$PC-28ncSq!Irf#P?HDjr_YF=HZ&MRL3BDVbp_<&{~VkI6?>~Sn=
      zJ_6<=U|s{km^>gVs*6629^_qYwMpYX<3j?{x8V*wQPOreK}#EOu|qE&;cV$)OM0;|
      z{QL43YI#>UC30q=U$^-Hgf2%b?jrlU%$vWu7*gj}79U|GabZh@0x!cC2A=Xgp5#N!
      ziXB<8v0Gai!X9m9T<?80%;fO4w=nRh;wPmTo~&%7nAPFHUKDNV?)}keK0~L{SD7WJ
      z&Y7j-n^rMC!^W4GcqS6hXuI;mbRZJ%(Z<iyxE!6_uf}`+0DPslZwe5ek6Z-EMecLj
      OJ>?Wi&c{Jj(~%!{a^~Ft
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!%We}%7==&UZ95K)G3FN29WZy>ftZBL3==@y!BT{f3}#^o(Sdf-5ZjXDaOVXW
      zSk0E1*|J~(0u%`WJ2pH4F90t9YsC4hi%t_DBvN0htIl`MUw`@CmzQq<jNm{DF$3$a
      zxYyi@d%aijTkfP+Ip+4<BeTt>*R4%;y1f)k1NmRhF<@Ti0t2x|%|PFT+rBCS2I37F
      zNbdLBe(xY>6|1E>Z$~?qy?(^8)Iu5=1F2$_f2Dc~$utZsw~#`gJgu;hK+?dnalh@I
      zo^4Hd-Lvk*v}YhU-nryX*WIo!?|RVeP5Cnh3gf?Ys?v<n!i;~5Dn`{ng78vZ>^Nd)
      zkbcFExanh<_H642^H4TfY}Azhw1hp}?YcL`ItSHgveRtNcs(`rZDNu6s|_u`P2`J|
      z6nPos)L;$8V+~qKO?thcaAvV2m7_OxH>IQomhiin3Fag?M<&Ut<I`R%sBcy3w%fuc
      z<eAUc`PAs27D^~{0c{2g;@8}11O2tmZ1<9P!k5CX6!FN`4@)iCC)`Z-ON{^A5%t9S
      z@V=B^(&*=P3E!Ih8smLqIboaeIap=$HI}_Vwrsyjzd)}19N9Q8x!O~uv69!-Tmu}Z
      z+6iQF5^Hb@8&Jh6^-Za9&KkZ^7X!$XCCs%U(^TFZGMzctWygMtbuob|+$g#8v>Z(8
      zoMnfd!*bMN<Gdmj0*#R5XcFLHJ()4ZENEt%o~0gza>DsO=g^`lJ*I3j<s_L?)b%6m
      zLdY&Kf088XD;EKKqh{YATQVs2V6?`Ivu~1pi|pHE-XZ(0VwVH0McCqk-Nd|7_08JF
      z1lLIg23UciH&S-e7peF?(*I_++~-a{h@>6}$pcK?M|EmOQg6|`mQI~lyd87c`WxUw
      zn*A3U{713>BT@4qFdqW*8VJVZ5m8ZxuwA1oyo;@bH0~2V#2|ee?9d}6Z3Ppww1FY)
      z(2K`7TY5Mpy=advT>eZgUmZ*doux3W+q{CES}5uwyHMu!PhE^)R4+cnNaDhh2sSUf
      zF7A1}Aj!Lk6)Uu2VUM;lg1uVpwBGw{kjdfg4}17W#rH}vI9b_HF{{IYy(rq!-TT7R
      ze1=Y?uQKyaoqy`{=eJ+w_`pv37*WrJ>KW~q3ivBjAJon-(7Bu)^+RNjesezfBjFQ&
      c9X=~Ua6)n+As713Y5&wyEIA=#s;c|H0>r}XW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1%WoT17{$-ECvoh!c53%wGn2Gw3;2=7CD8InDKsIamZGZ2tr4<>m?Yz5zz^iu
      zeeqbZgtB7GW6Poo5LA(XmK8$kf51Ng{{U=h&v)lCu|iWM5@}xd-gAE6x!?7@zkj$3
      z;3+J|5K%bvwtK~`xL5lXzwNGjl~>%pyD(@rz24>8Mz`0G!BWWYI!VD=;|hgHqoy#n
      z;&$E<1%+rsK8&9BJAVHRXBDc&I&X{JH7|iE_9PKUN+DLL@~>ErVKfefy-CC{CQsQU
      zMlh<7UiLfQg+Y78>s@kJTAo5?xx4DN>Tb`Mck|KeZ}^)E)62V(2Ib6?Vbi}s8C6vn
      zp?k3|JdW^85?FWyXN=W!2JHnFMBULsqozL}QJB&eEw{5?xiDz8E_VG+-|H=1TlL=U
      z``u0g(>Nw-k28dV6djj@&h~olb*Yy^RH9_J+1&K{`jZyt!~#RBHVo2?h#V(|AjwBg
      z4b~7S(jb0p-RlQwTZN*;&3g3Rl6_DZ=eQIQ%o*VvnIx;0T3$QYl&XaNd=drZqrm<9
      z48}LX=%F)7%%Z|oWDQnDuedFRM6EmMt$OEt*^>R@Fx)k>k`a515wO=H{O4xsCnn4L
      z9*)G3;B}mDO^!x*KT@)6E4qbb$-0B|ZA_HxpW?TXDSeNLC@-1Xw_0N#uLrmWSfbiF
      zOyE@<#CZl^#eO}e)i~!M->8cm^7InV$3jm_vpMv1wqTbW`xi__#8lhO(RbS|1B*JB
      z*qoQK7j@WpT{|5PG(soGH~|h0(KDhw4;#;q$Sirxlq^TrS^gE{KVtfgEgbzhthu~P
      z#Zz<#R$1{HlJKyPxj9&8)f*_oAL5w_d1mkgb64W2$pW4y4bM&TNL`v|lDYp6o~z`!
      zMxN{Bxj~-y$n!pVKF~a+K>rauLdM=>F0wmCL$<<ol2ndKmG8>-FqKE_%*Ukogk5!$
      zJO1fV61mVh$0Wvd61kxyO2)5klE`bn<69{IhvDah{Q@a`NwKenO3jCc`Oq+L48bya
      zmUO8n^x=@^uMj~tXha(P8$LvsB+RaTt)-K}1S73*0&|9Yp0lObW74zs+|K3S>E#E4
      zDIr-5Pn+ZL3{D!MVTy^JGIt(IaSG3x#fvOSDAH1b&C7Fdoy@%O;jJCT+#8}vhcs!-
      z8=6x%Z3JI4+n)`}a(H{uo_(n3Z(1}shuKgxYf1#NT3-78rSR-uB(HQ=YMa;jtiFBP
      z6S|t;*-w8Asi#8qltHEfUM75?K55|JB)ps|{j+7y{R2PwZ-+nmTk@B72+m0+bjXDK
      Q8N*LK?Iq{rtPXbJ0nA<r-~a#s
      
      literal 0
      HcmV?d00001
      
      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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
      CVN!1Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)++fNfg6vn?Pg-Tf{_hL&C5P>e$dO=Z(7cL42cmaaZc*)WZWwGqSc8fv%NA%Gb
      zUwknUh?*FmeDIGlp4lCig6k!O?d;5%^ZU+sPW$8M=dS?HU^;{VL-(q-sin2&c3NN4
      z@;rT0FWB7Txhe5BZ<eeq4<X1<@5B`}BcHyrw92z~2vrR2hi*H!?pkK9l;svfKwoF*
      znE6{!hM{WNVNy2VNLLZXRcB43SX$#&k)g#6E!lb@J*gE}Y;CE)MXq7p(Cw=XSNeUE
      z?P<&So=Q}5ks&x{=6DztXi!j#Muv+1<YEZT3{6fs2gzYHp`jWKQ3W+n#OkPm5RQmd
      zTtPL$43Qb#;I~U_OWaxzav2(D%&b;e)GS@R%gvy@qEm%EhZXvCh6=9Ha=9_-3qzNG
      z)q4S%<f2e|TtN>`&|Nar)^wvd&9}%>dAF>`ndHMT`j8BvpCRVgMpu*q6$1<nd2YKK
      zQ%2F&j4YKn{4Yg^%XCIaHbRI!so)gS<o|lfX1M4h(#>!{_U~IYsKglso#+x{nf=pP
      zdQLI0Wrna`+}rsNbIGhGTvTugmq{;~!O-iYH|ei#SiyN*V5qbBnz_mMxFY8@1=mH+
      zD)&g#GOFN;s3k&1Tedsawr(2Y?1q9dah9<7Mu`{g1#^Aed~VF}WqVG~uh?_E$c>zc
      zoK$dAM26jOI@wMwYjfQ{@EdSSG#_0w%@y=tNl%FJrYFR3JD)W8^jSscwWy<Kgx*#t
      zQpCp8UDT^z(DYyzE!${S2e#3srnV9LK&Jt;)3cTG0+$iQAl=QN8N)bARVHY+)6Ieo
      z9HTeN=g^t668r#ZquxsDD@j$=k7ym(LHBC}KhQcx>)u&sGqr=%eOk4pKH+o#`zm5o
      z0WeNq;~P}Z1X?gj%qb*st4xXNDN%72=ZM=ve}hs9^-(IxlQL0%LMj>hhQ8U<chpIA
      zCV=-9?<v5wppl9P?h$wn^_WK-3uVxR2Te$*f(8#t;~=42LgNy8RYGeebfmmq7x{>g
      zj|usNoPAn`jC;tqhm1%h6H_LUZ>8g-650I*$7%Uz!`~qyLmf+`vhi|d9n@n$r%tTW
      zEIcD61q{Hz5Y{n*4M(Nw7&hvu9F;1Y5tS;3=)T(*CT3mgeJm}C`iPh)7g6W5Z;R}C
      WK?C}-%$leNje6GXqo$mm-ueX|e2+x{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTW`}a6vvNu>t!A5#%;hD8?dSDfrw`iQkJ-_r8J3>XiVCZH>}Q+n@p(#d^R5V
      z0DLIKu{&u-n#4=2-~as2#V7v#=jSf~_y9*OSR$}{&A)Mvf7hOz@u~2b`36-vZ)T!y
      z!3u%Cbtqm=z2xFrTxyguKMs>g%Fbw%WFgH65Jq6b<Y`{&Q?44Zj9mzNizE$`FL6YN
      zMaD+s!sys|E5HH~EodJ2al~Spn*jFf<}4mXH1%_<v<a*)lwsyis4?}?#3ufT(kx4`
      z_ofpMlb9N%@Cz1LlTl38GJ&2I{F5XrXo&O9g%0IRlyixL6IdNE_U?3{r*(BBYApro
      zJA=sXpwUu!V?Mvq{6dM3#@fl{wB)*}1+Ma5+o$8>&(><X1(mAmN%d7I0(-aiyWQVK
      zZ9*Fp#<J8n!OFl6)<GqeKZHW*2!~~CG1$E&&QBJ%`M(kC*lXJt5LB}pB{bfrn^#SJ
      zDTY!ZZ2$8x-kW`_;a>-{*$zB|Rair6AuT~0x#MsbdEMb2@`l3?kT)IfBX2ou>TNr0
      z>OFM$5%Ob)d(gsn^aP&T_q2mi0?+MaFHqlwmsa0{SN7b8gWL19J>M7|Gv3;a!@m(x
      Br_2BV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dTXz#x6#h<{G;KPxrBFg?L2hE2wp8$jP!St04WtEHD3>BSO{eL=WM-I5Xh9Hf
      zYk6Jz<b!MJvk&@!YiY5vmX;@7zU#C85trYYnI<Vozy}{PIdjh5-~RUg_CE9bKR^8p
      zU=QAlA|$Zsih5lgROj76J+J1p!L)oH)eTp3q6iDLd*_B~<_1qrU(vE|6paEswY*Z6
      zSt#bEUz5PPvR}%uOii6OG=ZjUU?Z?4^C*l10*ynusk;XS8WO#e0^yW3qs7pGHU%wE
      znjx@OK{H|kZ5iFv#)|oA%{k-8>Bv}F)tFQrUA_mKVRue1kbBL*e##8H!O;quIdjIc
      z4_otQMw@lV_1v5*uq{#3@swlD6tkLhpm(wbUFeQtQ=R&(SSskjW`WI)cCDxt+=nBL
      zd-3bWTd6YR350aJUL{weF{MaWDj={v(d(yBA?E>E(j5x6Vp|kX3dGC0rA;=0sTxNd
      z$8uuWiMA*b0z1nVp0Z<>J5jW4%W<`tBMVv0c6H07I62Mri<&kIu4-mUV5oKp%PG~Y
      za3D>LitmsqX9dKpz?y>Q9@g`kSztWs8cC$nQiBNgDA<ib?#$~m?i{Vt?4~)*mr=U0
      zHn!%tx<<E+0jHv?8-pWiVa}B;<5jnLLeH71TXaahr>5CZGI@}uG3>{VC|GL0?N?(p
      z;U$6StT$5yY5KB)LwJRa%@PUh3Xm&BsiRX$!C@TX7`fJj>*!|gVNLyAYPuiC6pVn0
      zH`ql6*;gY-buZKi8^wuLmw+E3iqTcA;_nU@bz??js~pEk1*dSDX<t{3qIQyUJub}>
      z^$aHDgr5=UtRx+r%VK9Rso)&WQ&rWrIjjN$wM;7#Tt$%e$si>=WlF(wc%GeNvm@9H
      zoxaOz{U~cVYuPv0NR~iH1*(4|%1dMQeRIQJxpTT|0eW5IH*m@_EN7HAo548_awuQM
      z<x}r=iC|Vi7ECvi_g%Vu_?jMU6Sn$@Zn{h?oCs#aP@v-q5oQfF$Ae}$4*G&-aJ`EY
      zlukbaa%y;G#I7kY!D@&F{$yq5`QxZH+5uK*YM5`<>@4vmldQ@)y~#m(d=PT*=lGTk
      za+4!J#Xer+eV<ZR-ZnH>lj6Ol;7yrIBd-^?NdB=2tLS9q*Nbu5E52mA<&}kPyg(Wd
      zqGyz=u>5xLL)gMKzbAaI;oA_;1^;8oduUCHAJG0C-$Ll%vz6Y!UV84M?_R9qoAjeK
      z)}xdEYy`vuq(k%yaj&T_xrB`&lyPF-{t2?kco-Xey8we8*n%gBBIKnUppDQ*MrtLm
      z?RU@J$Ic7)u<I9ZFU*Xd;(3|ldG1_9BQ95PY%Ou@MKVA=OD~yITXGS7%MhdeeayK3
      zF1IS-u9A|$^5i|Zt-ec%ZX5bp0BX#H23Q73l-F+%VvN=@gp&Lo?cF^~c)Fpg6t^hA
      z?FwwAgsrg5&k#u#`dO|dHV2mfFL)gHd7}Nsbi;ff?_0!+%h*5K-!Zg^gJT1~Vl9_U
      zZg>$#&wY*Ffd@GL1-5hZJ~9^umT~+?jNQYyZ*q1K7o?%2+P{R0zGw|zVYf3s;C((n
      zKpQ?J+m9&D$4KB49K)wLjnBLcl0K7C2IIJdSIN4Gm*QovLiA4IHN4KMs9s(&J83md
      zD<Q|5PuYqo+R6rMk#zc&pjG$Kmn{5OURb|}T1sJCki(n@$Z4+y*u8|S)qvj+@Y_0o
      zc~1!;=RN@ZoMX^ThH+op&7I+{NLOQLw6kdmc5{`?%bbn}9{45St;9ACCy+Ugf+sUU
      z;c_KgCypXlQsB6kRm59e$2>b+?k(^%>aA{Y)kJc<HU0y|H>xTAL5hF=j}&j$rO2DB
      bjx2YoW%-M;{9Q+ux0$nSoOf7(5Z?V4Cdzpp
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+=J5R$f5CGsiph?<N2<25C10!9Cm{~|6C6<C*IRPX#w^&uHkfJm#E5D0@AHa`7
      zoGk&ygQd@B-@~6@?;ikg4o5DmARJHSQU>z13MS8TtOBNYKAfv^sY(~t5PWkZm&G{X
      z!>Jlo2(<@xoy7>q5L#EWVqVFjx|jJvtx{@4aN>yF#F-Y=Xbc1&L?UBRs!u4Vm-5@F
      z$1-CNq23qa-+_<dhDq`hKcRw=5M1cTmxQp#g~|Pf&@^q|y*$ZEA#_fY-+9a=7fi42
      zBQ=rE7Uf9wCpq0~{~Pm6zj0_B&=ov5fEqX?SGR9mx7?t3)ABmGWqE_VY1t=lS#FcJ
      WE$@(bE$;!+5A8#Tsw2g84~O5`6h+Jc
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2J!=9%6r88g^D7#xwMeH;4r@z8KoBA(SlF$1&vV7w)!jY)Zz=Kv@}q)#MhSrw
      zHZwe!d2i-@eSdrc7@!%TK<I45L4@MyLYaz$!*PyNqvI@M6X1^Ua8_)EO2XIWh9gI)
      zi#Q%>WwVqG;juUQZ^>0K?9T}`X|MAQh6SN%IMoOKHMOi0#{DF7QY%8&@IGVf-u3QT
      zAJv3cZYGnpo3UjT`<rh%GZDYYEfd;*iaq6l%LGEv{{krao+Xr#_YF`vbM-RUE?m#q
      KI~pDfxIY2<pIFfV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O;5r=6r5LqngW6-kn~2p_>tJ?6+<Mb35IAQ+WS&BxTf8bcB}p^y_k6L2lx;C
      zGsZ_TdLZ%g-p=g2nYa7#_4W?n0Bsu<p>r=DgeM-2ry?<x-jJ)()63cEQy^zX#o9)J
      z;O4SW=&5&=X`>?fdrzpRGEpM*Ws<V~W_UuNb3%0x>(mHsd=X}{7zggB=)W8iN=Hg7
      z(<3yuM}NL!lW=f%$0rm9@vU^Qg0%`9lnJ$w(()pUCNjAelTZ>Gqd4G5!NH7w$bz|3
      zDPe2j`ro6v1Ur&x%1@qqEp0(?#&MPe@=VRs+RNXvKc7Jd#A|}9iy}(gZAKPW`NSS5
      ubFDDbW6t7U+TD9a^*PtnxH>s|%(H#e8MhWHtfRq*_1M5>?$u;uq4f<h25aR2
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~8BH5IwhFOWTzyP*A9-s90K{3Vs8Ap~NbJT7nYd!_wZgOO{=--HI6hghr!@
      zzG#f`!3Ru4jF{@1i9gCX_ik+q)`#xinVp?;=A7C7`u(*G;216`@GwLdwfkC1TX9nQ
      zl9uPG>)bZEp}@zmQ$8{@GoPAXSmaqpL4cvPmK`@NlWPkGXYjA+Ij6wD(hPwD*YgF3
      z!I#q<jlnZNLCI0w)SYt-N<5vOpXi%q2wi!Q<;#w4nMDOV8G34+(}uzGnsL$2mzKEc
      zR12x+xRv7}c+sjtMH_=R-ZvWrL%RwEP2#j$MG#FPM9?b2E)^k!L)eRb3c9z9m02x1
      zd`ZQA9AF4)wymvZt>smQM0~PF#vOhn-5`|~b3`U}lTVeF7Pvj*s?joOWi?|~vvm<y
      zl0K)P7a2O-Hro{+AwBZkxjSv^dEJy_k(44e_czr<!5vrTARVt(RNg^n*R{)1?m(R6
      zou3F{5Ge&=6-RN549W_#7~0}}|IQ)wq}t=et~PesbZ8ee<BDxtb_m006_-;gPU8%z
      zCF~s6N=53~U$53o!M0Y!*dz5owX6afHBy6-?G=nM9I7SdW=&a6rnJ0l*$&UuZ2%+0
      z-ntq7Un?}tSS35lCv>r-VOOR>frA6I8eaPO>DnSzhdzoHu{iQh8$)-6o~zga51J|R
      zQ53;0I=x1KB48}BftEzqI--f#Iywf*U9rMzgu7lsiM>L26Op+M?D?Lc^tZq|ItRRo
      zPw4bg_yw_#)WCxty7oxWYt-@v5tt&dX>{WzdT|RW+{P#}I7oE~7ZitZm?DCgw3$2!
      z;vRVt)V)Nr7e|P&pgT-YL{*T`qrRNq_&|XR9gq+1$@Z#SRB68p@rDgL8Z{_1Y|vM2
      zkfPRtfnPA#j&9ez?60CH8ou1I{pCjuUrwT*2Ha}eL$X>ZG?e^_X5qtU4E(_0TCyyH
      z@|!xpgh@&1Rhf)Ru2tpgB;$d{<iitMg{RnqXS7Jq=@WY)d9=F-RfmSeUyq!fK0>++
      zH|D5D@QBj#46RLWVwjfXMDjCE{=nJqQYIf!9i<|%9L;1V@Rl;~2>g8=Otb<MAS&l@
      MUcy|US`RM%0gpc%asU7T
      
      literal 0
      HcmV?d00001
      
      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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
      R{J9Wj<t<?TLj6Vf;D1++*IfVr
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%Wl&^6g`tTFUKWq+VV&OZCNE*)an|9gsLJ876pNVP*zTunklv?a%||ouw%`p
      zQmaZJ!JdyooN*$kc*yegeVudfx$^fPpT7dw!%ht)fzEO8E^veQnXBR;l&-J!+kEyS
      zm_)J$OJKFAM?n(0hm&JD%>=6Y=x8qK2v1-o$>V(;&vYV_Y|i3cm8k5VK&9__gOPxJ
      za59y%OzC7^gClVJH=!3rG7O^oX_&`E|7sMl_VsINql}h=I#vbB{lUma6RidW)*Vz(
      zHQuI!8ma;<UnTNM9#3RitS->@^)!e^L8^?DWzx#tDDK$v|1bIuC5JL2*JV{4Ppu6W
      z4wu@SQE{lJ>O@8Y_5Ro!dxJ5X?B_a9r}BY{B&jZ)bJq;DcDQw!_b>6K2wE5kv=*N_
      z8m!nwBq(=<UdoI?Y!5GRrTYQ(p7jyUFKE8Hz}mNA_Z;nE?;IPa>?z?YZKvQnAm2kW
      zc-X`v<{o1UKCT(21s|^C1|t)jO+?|DT}t#j=+c_`F2AN$8J=O|6P?A71>jjh=qwtR
      bggo#+!R<f6FaHMfkGqLm93r@_8MXZrKplJv
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      ZCqsml;5U_MxRw9%eZW4y6-Zf`KL=0V@oxYC
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<%Wl&^6g?B0nz)n34dvOS4+xN?h%`H-A~sP$kpikjl`dFKoKZ5!8AoFq`bVrQ
      z6%Z`=0QRg9Li`BgjvI+mq%7vn+<VWt&-wcM^A`XeJn&FpsJ#|%L|eQ~+iEJtvVEYA
      zW%SI5;ZT}-$Aild<d8_{ar<y$q!=+Qr4yCZcZuF#z~3X_W2II4gkh_(5ZN3sxZQXp
      zi(pvhxP&Di4oVyzRv4Uy1(f?r%NN;{N;?$8NHSFVaVVmJFv{w4qic&}*j$vb-l5_g
      zlj$O^;<|@x4C@Oz;kbdD3<Wh~*ti(CX9ss+;!ze#v$u?O)I3xfsuu$OgX7r1Cbg8L
      z!lY;9RK=QM`@ccuyl$+MY)bK)1D{IX=D3YJ45fT)-FP~SWJ&{Z8@=Yh!(E0ef48=O
      z9Lm{QbpK_XnNU7ec6zJlm;KP<8F)`?X}Xa}5=lcW@9Qv%6Q#$`WjcvR96NR&rM&F?
      zn~)2;v^0l46$=8pIeHc7c(_dVBE24wZY_Rm=RJv!;3qkzY;C!R5$_uU(m8Rgbrlu5
      zsSm8oqr4)d_0?LZ@K3R3uTQvDz&r3Gt9T!<b&^8@qSXm*6I9@m{7#l1Si?_L@#|co
      b+B}hidxR?BJ{olU6vd{p>?TQ<M&9}Zs#v`Q
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiz-%b-j6vn^lUnpxUC{$XC1^feT)5aT&)^I~&r~xr4A<-Ij+8yYa?Y3#Rpoy2h
      zhw;i=O-xAC@BqGyZ=im&3k0};O=kA&nVIkVoipw4zdsHE+(RjjkU-(B+>;f#?^Se1
      z?yAZ&{Z2VG*He8*$vtJ)WvAz;jjpYnI3fZI=k~95JH4)}T<_FIf!HJMYHvj#u~;)t
      zqqejy5Lu;60%43=h$1GCTGy_6I_xx6e@iwUB`~qxZAoWa_O<ywN=Cf49tf1y&v{?K
      zS``?vr6;%E_oymr0?~bKdu^h%mELW80%JW>YTfH=n_H5DmUJEB94E$_(zQ2tb_U9$
      zcc?*$Y^$%Nr%cJx)8so-bDpIxoku*iqdE$KX$wiDOq8`S5kxr)*MjJ#h3lA1aCKB5
      z9k|tpO(LAq5y&sHpO-n^vT!v}y<=e<DR#hA#99)AVe_Ogp_!<6hy9j%tj!JNFX(F7
      zTma_C7v@h0oT-W!=QzJUa5nE`Av=?sj7&zSV+R=d#!LtallM<Ozz81V3aS`mZY?+g
      ziy8AIO?#+kBI5I;iHPr?O`4V=;^){hdYe_Y%x9QF`iR7)hat@Tgm_-~jvLt-&KVB#
      zo;^VRD^~-m314rGgf*%^!4#PcSw2uWA<OtYhAiXrgy=Pg`6I_qbTnMm;^D8vMtJ25
      z#!ETlRm_#kn;*j>S3Lau@6Rz0R~9&KbNE!HGf49k175Ja2C-hUyas0R3T3>;GTz`m
      iV}n=-EKd-txXZofN|v$6D8%NbvE(<8|8$-Rq4*y-7t9d=
      
      literal 0
      HcmV?d00001
      
      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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
      Z()`~@ZQ-v`>rwI-i6v1SR5I-D|3BNxt0DjZ
      
      literal 0
      HcmV?d00001
      
      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
      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
      A9RL6T
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O;5r=5PegDngW6-m~b;OMl`W{#-IsGq9GnY@x0&$*R)&hZq>i#$;5*{z=MCl
      z|6-gLqX$jA%<Oyn=FP|J$MXw-U97lp2y55kPWa;9`YIGt=?{dlGVVojDD2V0MBZ2x
      zX%{&{GgAgaPyIontqSG$KcQ-5tVA%9v0?rB@gadu2<2|1jTPFCM3BflUF`I3TW{}#
      z!k*H~b_n&2{*Uj_#!64ytq~#DjV`5!IV_amp-8Com6oSTIF|957zdJ2>qirADY!A?
      zFEVGZlp(CoT>sgtO>jeL3@@JA{ThVe4WlHU$ev0YHvc@%c3Os25DyEEP2^GF>@spN
      y&o8z?kz<LO4s#CY!sgZ!%8!|*!qLmveXcz~m2qRH!Xj#nSdS$vXI^zi4jP{y$ZyX8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&q~8U5XQf$Hqq2-dlK{o>cwF3AmpZ@^&nK@q33NnhAsJ1lC8d*2Oq$P5+{j;
      zG$?x6f&FH``R#lkpKtE~t}wLGA)Kz%i*nVgado01b^}!y&Sz^I`-DLy#wv~6*<!_^
      zAz05kmIlIn^zh?TuYEnwwNZ<hYiIA`51r79*xY8DbXkmj!u4-+8b%Rki5m!?kj6ar
      zJ;GU-vod^_C2M80jQ6=PH3H%0AD;C(TJQu%;2txbnv!kW@TnNSmBtQsuG`4lcEV6>
      z15THm>omF-`+{&jYV_}l@<Hb*+vFinbj*bQHnz($6N^CDlaPU~q}YXpGEEx?RXv1L
      S)gF$j+Q+eU5>DjoVDJTi*P{Ud
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+invv5Iru?q*p>{fYJ+;OW8cY3W>KMgaiU2(H12YP1Gkh>uz0bb|c4W)nDVG
      zAJC6NjJ=a)A?4}#*mGu%$K$Ktzb*m1#j6r#1lCXGnGEH*4Rv3}Dr~7VQbt8h$4a;@
      zQ1KCoOyh9x=v4Krz<jK1I~$pv8Valg_3u7pWOWk$q=3vc1m@a0PNf|gCGhTskoURh
      zKb0FFD8&Mm`C+nwGWJ4XJIEE@N!uEo#tp7qFh{aVLAERV&SNd8A5N<UmMHX7mSkop
      zi&P@8F*Z7}H94l#%kJW`KS&e{Hm3!Jb5fK^aiAl6B5*6HH>oeQ@lEOYg!)*b^^Q(E
      z*Q>6;BJJ&t`kj59IOj~eOkGPz;TWk3jFs+y%elKbIxbda{?+KHvv+(vROFzz*&S~>
      zTTUsk7BrjO<4H$aa%h!%Vi)&WS}CwP-G=L^*ZgiSL5rq?1}RbFm%AZrxt9$t^0Xfd
      z(tJD*jJEP9QJj6s+dt<ts`;FL@z<&THQjIA)Xoaf%g~1aYBcP3FiX5dYzAfGbC`$w
      z1PfU7xP)bocTw?p4^@x%8CMu<j1L$eGCpElWqi!I#<<S7!MKShKL1l}F+TJ7952YD
      Jz)SCR`wxGQ0U!VX
      
      literal 0
      HcmV?d00001
      
      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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
      Ad;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7IZFn426@G7av%A?$3aLp-N-0a5Vm_NvAeIJ7)21PTwt=Q3BmrTQOp*zk-LN}J
      zTR_T3r6Nj!@>N0GDi{RRifvM94Im#y1XM%>6qIj7P@cyh`uJ4vJu|brlT8blCo^;B
      z+;h)8_kGVf_s%~3@k0{;PQd$qWGNgq5FQCvhu4|a#$dQluU?}ky2BB@dB_j1!jV>Q
      zBpmIlZtfb;yG=iQ3bQlDEF13a)#G|klUR_E0fiYEI%~oSQ;#<fDP&s{C}eduDEMQ&
      zy$Rh+P~2}s<ypKkHFAv}?a|{#w69URY88B^8d1Ysq7W+WZ0Kw_tY%rOf_HhWM-Re-
      z=^Cct3ksgnveq0Z6l&0r7sLz{`*D=QwDcNRh0T5qGjTMv2aPD5Ds5^iYm!mNXvje@
      zh+}b_AE8Oev~1wg1~tsVT!ox)JRaWA9UI!9P+n?#=)$kI=@6nO+p&2XauHNGVx<w)
      zR}T+%>G8GUu86KMePxWKw1(q`ygNd#*>4c9nQ0U<7$jhtg>^%?+l<Aj>x<~oKC@pz
      zHIc>AhEGQ@*EN_!$d=D$i!S!*W{bp0+B6v{6GnsVYEF`x#}}?7r9}=nb3Ub$xm7s2
      zv@E@l$(=%cuMuJRD4g#=nhw}W!B?BMVS_Qb*EPkVx`U|2X?~olFe?><htSio1g9&=
      z+Lp&6vG^(mT7(heUV%L<-CY|*9hUpCi~*iuJFTRl9w#%jY|xg+28Uu%oslnN8#J6D
      zorTFxPMp^8gRss?2Xa#+qW6U(b@9I8L0VX`zFQwMjaW2*vlQxDV#D!nJ!JV9>JKME
      z>*BF!UnpvYTqxEX>Iz4D5~1E$JY@Fk2|Xl%z%&f?+JQ7bh(@fEv|3Gv+(F)AO1jpT
      zwFa3oXKOeIYq;R<xE?lj@iuH44B&b_VKzyvP-y=@`AmaV`#H#5tKnP$Er*~r>PBC`
      zDHOM9I8USjO52Pcvp;|ig@q0(TzaU74jNH98;jZ~B|_o29_lfyIu|uV3FA^dK^W?A
      zzJ?3%Wmhz`428S7uu0L-En!k^`EGSH8ZJVYA7OViWGZRs7BBtua_xp8mNFfEe)J|w
      z&#-Aks_UfKBsBEHV8vsSFb;jCogE#*KrJrT5W%3me!BoG95*#g+v0{Pg~e8(a|$sH
      zi@;(%l^;hbGtn|^baqUkCqqNPi)%>0Bohq6y2wyJ@nD7M2x0{5{a8m7Gje6J4GkM`
      zsa<he!h=H*oh2@p6`OyZO=X=;V&`%VU%?er;x3a?3Z|4={kU@KG!|3KW6=>kZZ;1E
      zu@P5Gv|q!*;ELCbDkYF_#8(BlQ@D;qyqh&P6Q;@ah-y6vuHVc1Lc+idTqdc<jmJts
      z*(4d7ZLUe}!t(h@_$&%?umv~yaU+vB183X5hOeVCfUOFv?d?cvL)_ZP6Cs2D(e6}E
      zht?TpzmyAC8ObOcp`mze#OTp`m^fQ-tA^VoHfLv6hshj^>RKU^w=HOsR$BmfDV%ti
      zd`<dysD#bo=$iuAuCU;9jCL>2a(SnQ?@CJM+BMjrYDOl<4mm<A>xja!nF^Cv$b8#^
      zQ4ROv2Rw|>v>m3-t}=USy1M!~_I~`(j|X@T$e_@rrQt{Tv0b8UX$#92-795|_?Gf8
      zD1UMw`l*K9*u$tCiZS`JOY7^)>czWp4SSQdXq6E?Ph<~i*yob9i)_8nGcLD>ScgW!
      zkzq;6tWIuDfx+<lRuS+dA+<{4TS`=y+@6%|Iv}NssVjLjf?GxYw1!_veJC*O@^E%s
      z9~_RD#!$r2t<lfQz~>ZNreuhf!WM>8&IB3oci8k;^|UdZ=(kECw=e?0v|PT5XOm0<
      zUB(G~W&q3fX2*cSqA89!(eYWiX-C<z*f7h%!g__;DTXGO5|_O`JvPX5e7DJCdqiJY
      z&mbAWiyHobm+Y;;wyIF%j;+)H9=A@KGTBtG4>8LYyl7YBvtvB4i`Qqk3|Rx59v3H*
      z#F?u|st55J{^G}<-IdBcP{ZqZgM@WQcw%C_Bp2pBd5ev=G`x*>h%I*mIaA9HPX-U?
      zr38U1z1=esrJ!9y8Vot2PfL9`&6h;Paoj{b$U-*!){`F(OtLIF;ag9Bg77(wTGMa@
      z??>|OL2767xwL#7`Q>U43MwWlC-$PK##>(K-S69jSrwl0-I(Pm^zOxMM^;iPvJyvD
      z#Zf=8W;mYr<N477w7|=gWe(af9qs(Q>7e|4%;&*nF)qaEJd1phS|{0aqZDO)qZcTr
      zugYqP*I8Ce{N^_mM^~VdcE$fH$N#Hn!Aq@qDgVpqb-QQoIrQ9amath;KH15c@Nv+^
      zj*~GIV2Gbtm!Jf3%dv9XXv(p9oV?m{Y#tV{C63LLZ#p`b&kx&$jynUiD}8e+4j@-x
      zo7nGLX~AcsI8h<k63B{O)XE|#AUNX7M$UL8EnbDAa5awMGlXj_Uy5vtDPQI|Am!u4
      z!_Hgc%v<8I<}Eq=yf<;)n>p`R&U*{z-O71yJ<Pm92|uMs+sV#)7w{=``K+}*kXn<^
      zl5V%`Xtsvqe?DsPB}ydt1W_5C&CvyEK<vSzuEE)<!93{LgVmb^pTH>_X76@XSUyyY
      zVeuH2ZYTQ!zx}#mJM#9Sv3>fP<5>A{<pJcCSEw;GuNuW%YP3}H+JR|owzAop)NZ%5
      zS5rijonyGrwk9pAlvmiV&8w}Mm@qP-cLy|EzM{s<4Dv3{F3x7^^psONP{pe_dmPa=
      zTj!E(s44V1`a4iA{T>hBTY0ruJ(J$)^zaxitE{>Q1^ckEol_Q!<EkpUxT&o&4dK;f
      z5tv{CK1^O8A(W3YN*^b0PcZqO#F;q2&y=T_iq9a7XR#j7G3tJc>+n3I;di(bFJLEL
      z#3)|I7+$4?*QohAUcnpq6W-+gExg0J_CD_);9Y!3*+=aEC;o<i;{%n0zgzSzu_;Q%
      zuFA!=*esm0^)<G#IQxB^bu;tmI(opvALDT+25>#T!PL&@$@ZHz;dqZdlIo_7^L7+l
      zjf&m4AxYTH4!yZV?-r7~h|k-J%^fzm+t~b8Quj{LmBE#}@$IDWJC<+^JNA25SJ|vp
      zR*|kWvJ06jz`sz)bsmd@n2Z0iEPc$V{seVg*jXwIt;&OolplR6fC#aWQfF5bGl>LD
      zBJn*d`c2%8dx%6I16o!sC7d5Z_NuddEap<a56V(_ZR_73Tr3gu{W09P*zc(cjACZ7
      zzc5gMUGkW}c`qKk!Q0ckDWD1i#r}z%pS)!$?WrmZoVX45OVp0>`k5Hxbvw1ZW7xkq
      z6~9G-t7pL?Ny`#GeWNH8QDMN5NyF!<$r;6I#oodkx#nLxBYR+muj~3|>+LRBQjh&+
      z`E@t)EM@Vrc~g#(adhs{N|N$(UK2tNuRCmiF0=fvqQ;r7xQ^mz#?EZysW~W8b1_Sm
      zU;&@Cs+8!Lp;1-fTvdq+`0P^iaj{x}ggSv=V<%&?s^NFXDY#A5;$F1`yVU6zQ%muf
      zs>8FCzohE%wpxJ?`TU6X{-YW#<~ETR;-6yfV2Zhe4s+6LGna>dFykI!oF=&K%AS$U
      z*fyNjW#m?N4<Byi257g6m_d(ngdfHHHSZUU{{VmM*^kGp)>f>rWb$($f7oy`VIwVg
      z=u;Id*^GUtZ6}RZ!Qk`paXhh0WR-jw7{gP1{8EkMnREzS8;)AbA6w7mkCAOSMxBQe
      z)s8Z@B~(MU@zjE=l1a;5_t*Fh!&9+TJnuLo^;ovNY)*7bdJ?OMtFUFz-ocVZoT?6j
      z`K&ZAIA%_D%mi$=f1hc|a9IkZTnjj^iKUkh;m|9YW-f7=Ig~?xWO=hUr;E5M0lA1E
      z%g*pBYamNXKyZE26_V4XD5(uZ^HLn4E=Pg7!i8c{%GDye`YvtLB1_-97K-ojEen7B
      EAEM64dH?_b
      
      literal 0
      HcmV?d00001
      
      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
      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
      K@9@)vcmEG3G^B$7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyTTc^F6ouDeS_VoLse%X=T5q&vq-rE4YE0B<GFrr>3NekBfevM4m?6`t;;Ywa
      z{1KXHz+j9f8WJz{(Zt06;j4c@U1!=90$v{4v(K45>#T3>`TFyH6~KP%SJ5QUf8DrY
      zWR07C)|xd+W;Q?VdVbDzXDV|Sj0xLR5fbQG)3oZjK&WW=hJaEi<OQ0KT8`x(6Hrq+
      z57J`-kyG=N=A3W2PFY2pz>Yx7Hk?vcw{5dz*vGw6W!7~3Mk7T}x<xYr1skJK(Jl~9
      z>3VuhMTbCBA>Rst%~6EWEYO~_9P?adcEa=m#{#jOJ89TshG$8F`eDeQw#ov@+!~g(
      zz()w-PED0fUqI;mSv(*NSyaRY`c~|ptJwB=*K&N*YglhVzd)yak{FP|3?z&?-B1ME
      zk(4+)*paIF2x7?lp5>H|$go;Ure8N4PNjoL+w5Q(=dF3uW<#o=7xZ*NSCJA(t(ZCP
      zdB!c>DVp=66@PT<gj;cn<%TU8SSE^YY~!TL-lR;Ca7wXEOls!IC+8Q*yA^NJJZ;$~
      zO|H#mNM45|wG@6r)Q}Tk6=toXh5J_SLfl0VWp$Tzh-)g-t5uh=A){44VbeRrlw%8M
      z&%8w}uEh`J?<yj$RiFO)@rJ!k*uwvwK=%|?&tMbIq7ymvaUH-2Yamn8MHjYm#~UOX
      z@0FGG)PxxOdU&P;-g?)0bJ-^;l9}ERt!ZDd;RCi`iuElc@i`Ns&r6Dyr`HuzU3>+&
      zO!+GWyh@|jkbn^wO4P&}hLR0KNxs#=>pQR$yJ$uRljSPShGhn?S=6YTgTt9XFj{M<
      z3kvMUo>dG3fy_5b%Y4V_zGblbF)||cs-Y*?BNOh{;&QJX7>p0GNEe4kWz>U=`uhTQ
      zu4;+@sYP2cmLV^2o0r|;i0?7n`wad8(p-n}5Qp)I1A2&ycpR8N7$h~`NMjs>&;p=w
      z>}4f!`|9I4)Tkun(0?IY{|Y%=gB<$@<hqu1kk1JDoRABITqNWRLM{?=iI6V|xkSiU
      Se}(L5K+2K-88REpd*5#tz6?bG
      
      literal 0
      HcmV?d00001
      
      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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
      P!T&7#6ps~zPpSU{dbLTL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9GJqp4=6oltRP1H(jFQ6bU*7m}J5bzi5UXn-H5TmSXyqkpw@KEB$N^FKHX1<x%
      z`|$)YM=wG^7!_Qz;=5Dk#JQ-gDJ4#>Vr#Jx+JwP3P;!;4I4LA`gue5k-6dlugz0$o
      zhd5Z{I4NZ<RVG$4-GCQbA18a?-JEYWm8B;ThQDjG1``qpE&mT7Ki)yuI7D6pbU#jR
      BGZFv*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwTTc@~6#m8*TFL^7B3=+dytJTHz*~Ybfl{%tTmnr^d@;jz+KyRvo9!;fKjWiM
      zKBzI6_}~xlFPRv>*+N+^4?Abhne%<;x_|!t`VC+X&r&!iF!o;V$-Mj!<n^v>sC?CP
      zWS|{YGFl2rfx)iFfvs0yq-(4A(rve-uUz}1K)STHv|4<(@mfHX1O^J8+YY1~RHYND
      z1jB-S9iOe@c4cF$xMHkAV7Ox~trs@dHkT@;<#N%yFheUi7NYmLc6IPVAd$^g1(F4?
      zrZPz2l7;iQATU(cu38Uwca&d|JB}iC*|VinmA*FmfiW30bz5M(+^yt{`WFTI8!Fg#
      zWvkuv0)dHa?j&G2tk;#VYEg3tNE7fz*Mer0A)C-g!z-m5P2$ac+Y5c0X`R6pacuft
      zEwq)tm|?RfEnLO545n}=h1;jcbu7AtaoiN>sXJkt;Z5qRzHBwM%}Ph&sUMo77}FMJ
      zaG!&*eI)~R_$DxV7G!?K6uBoIU8A$WRQ9MNhft2at{b7xP4e8u9GhU-o*O7PXqUY<
      z`@q?~<*1loLAK<Mc66YX8Am)~)Q$K%0~<(u<@(s8#}<Z=7RYou`;yzsp&wi1Su^G2
      zB%KrddXQvSQ%LjPXO;{Z>isd@bbTPE4-&x`^tFiLp79)}wm>N;d!~Ql;<t!uglC47
      zz%D@^F7swUbiydE!2D7iX(X>>ERr{jqz}i((-6;78cce69~1ky^_BN?Fx<V7{ZouL
      z-QlJEZa1+RdK$bqN~#0=90PK~CLucBLzbrroTuzmw2$1$sNZAYqiVQ3Q56p`8_7H#
      fMski-81e;Hcar=E9)00syrjRU$q9QBc|H9PtQ78S
      
      literal 0
      HcmV?d00001
      
      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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
      Po>ZK``#ZU;z(4*A#U-(A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm%SyvQ6g^X|sa4zB`l7fHbdhWfuDcZ>AXKU-=xUl=VoI9A%(VWS3qQb*67P(S
      zwsDah=AL`beSLnte*n0`iHDlN#Y8S-DBnz&O=U{qlgf-7=QN@sAw@}KqaHQ|IxaJp
      zMH&vr6N-(8ErHXDeoZIPmPzuE<un{?QVUW7XZ~$PvdRyFM}e-Q>1;u(adt|{l+9U2
      z;M|X*plVj8jHEWC1_C`rIY~_=@uRI<EthI#+6GEez!A>^N0o9>kz_Gx_Va_6zoK`u
      ztT0@q^(udjNO9VRAFzw3$y`e#1^WNSUUq1^Xx`7}DyADZR=;d!ZIzdHX}oWC=C95d
      pZ17DyG+=MDy~HMV+<O;$4qIqD>|ozv7d?juIAjN&lK(Xve*?^CkDvem
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%TB^j5Iq-_3i!YWU*M)}Y-DA^4he?DD1n`>E@jdb+g@^eLHQ*=!G#~-M;V6;
      zBqCCE(N5BybLPy<dH;BQ18{+ggPg$SP)?*LpNtpAG9XV=G9WGc5qVcCG4yQ4GV0oo
      zG-%HtE$JJjrw+CS%9b6;B=GL~L-LJ-yukTp&7YK5CYGc5pG8lB7q@-$o6G`S&j5C$
      zmN6O9jY#>AS;%?++2D4{dNo6J#cN$4?`x8V1XB0UtPJ2c(`!yvmdNc(0hxvxCxf)s
      z6u8dvuvt1F6?<JiAs;iMT63Y>(P~86Oa(gs(47xwbI~(8OoHV)zeI%_l-c;Q!7bk@
      z6{xt?hjq3<AxxXoM8=^nu;o_o1&Td2);_huh!=mB9afu2P9}5t+2Q=>IlT^cF-vg)
      bMO#bQvvnT_wjQEv>k*EbA#lR)98Nz03Dpc9
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TT|Os5dIDq8#_t}I6%{c=Gp{of?INJp)|xmNN^zygx+2%%mJJl$s>z|_N~|H
      z^oR60nJF;S&a^!Bp+BnAZzW;L!ayG+9i83%_V(@m^Y8C}0(cjnCefmB{ki$V%$qOW
      ze0jrM(|Jc*E7~!aD?0zwI~Huq)mv^7Z3?G7<%(&o<>!~5>k@Ah3YqY>P_Zp7#tQ9Q
      ztG2VDaG_ZDu%_*e{KV>N+0u)SY1KqwRH4<h%ft@#7S_$Grl5VjY`Hasv!Te3scfyy
      zh=@9gv9eWm#}#G=LanBbLa~n@{>MNEmlWCx_KHrU6<r2SqMJbu3@)XhaK=Cq9dhb5
      zkV0BcZx}cML!q<C%;q*XmbJ6!7oodom(0qN>6GO^xNLLR%gkyp4B+U}Gt0}zB{#T~
      zW*`?N*i#Cl$Ek;|o8&(7|E>K>O2N9;wA+ZKaBd)yW22Bcb=3}9oR7GU8Hf{uCUxd0
      z^i>^AdX`LATYTygDaD|HEc!zo9n)b)X|0f+)cgv>N*cp>CyBg5|B;k6I6Oo?)##nn
      zC>;{ZEd#g3!c#aHNL$sex#Ikuf%io3L<ERQv$FNn6fQ-J+LY*iX(t?Q&aXb=@H)EY
      za!MnmZERayvpedcK8qz8ZRW5qjBJ5X8I*#7`<Re43TaHEki<h)zh213ZYJ?)U+Cd@
      zVOnNo%5iKbjTv;wt7zaO%qgT~#0%zTjsAy%G(5A#b;o`wlQkL;Eq0s46HaBgo;>&@
      zo+?}oFTI^LXS)lV)vE1~2UA-mU3JU0#Whf}t6wW9I=<%5jOXES6Y@H}U~f7lJzbV9
      z*zM;XEYV@{ic6$tE1!10TV$JX9k<9X@xI(7{B}~#QRcgoe-+Bx_&t-|#p!Hr8=36T
      zHhQu*w$b<6vpUOnFA;&8)Vxi!JG8!w4DR7g-e!G!oWptk5y|tbypwot@lN7fB0Gux
      z!1I0DiL4`=Q)(A)h2DIdG2(pSdFb`^>K-}*4}x|vKzmHI)&Om&3EBj09(ZUMeZ2!{
      zj6`-VeF?5qQtA`I9cmWkG;tpui|f~c%NADx+&sThqxS4?=zGOO3#8Bq?{d}yG<=01
      zP!bDo^G1Rir?!+XAq|VP$uHa!HtXX^;S%*!6JCPi_*%UU4Op3Y6P^)k=@2ZTmtb9Q
      zhP8u%IM(OH`r;6*T!6*J%FKqCn-CS42r^BvOqtvcZp1;qq@fuBP1Tc4VIOp)d4M<L
      zSegN@MzErVyAuS+ZF^*ZcjKU6(XbK$jRv?6`aVX3&PHjGiPNI$!Nh4X#wlq+i=KEO
      zo6PP-B#>x!!cS@CI6iC=NKZVFZ<+?e9UU0|8gy-vOXa~HR8hM3H@b52-NED@hGo%^
      z`N3u14yN`nO)}?R75~7@XS;aJZqM#v{x4$6>bXTu`!jNx6$QTK`#W;vdp6_;&c=@z
      m!B5osnJelSFFt?JCj&xskW~v@QHt_TEaDkYirkjT`{X~ciVHsg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fLg+5IswQgrq>AftFr*s+<?BJ_jK|1B#_`5w6k;57pvK%_3)mHtPbv#seR~
      zM^%j1t`mt?<>~Cs&Y3wobMAiM+yeN3^$Mm0TIceY^yQ`X)j-DN8`6C;@-!j;xI6~g
      zQw7rk4VRus9s7r;=M-6ig>G>0Is9?B6Yd`Ob~^&gpT<d{HA=^Af%%U^J+e~Uo=j4z
      zVn(1AlMRQdiD)Fy^jbMBwJPy@TzP1iHW#W`OPd-J*#1k(W=?vH{`MBvt8>pIGrS;U
      zuLa(F52Y3|CcenD#suv^4l=<jUhCu`n-!~3=UU5wiUgi`t?vR=CVx?Vd*%XroWg-F
      zsrZbiSK;%%(qGHdH!d9+l9s|qCe+Wjz(W*hdqFV%Z~4$w+K$?V?(rn@cj~+4@gG+6
      zsvY_%)5Ml+f%QLg{Wo_p=T4A<VsvAUDeY1?hc|BN%Kl$jEqB45N_fl7yh-Ljr+gzb
      z)2sjwk8LZkh8fH<R`@oBD(dXYIn+2(caf)jpT`0+w=SaLa0$x}pP}h+rNGq!pBMOo
      Tt7p8Ic;)al-ngD`UFCQ8wD{z*
      
      literal 0
      HcmV?d00001
      
      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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
      Q+^@Jp$oVzh4&gWd1vu?l@&Et;
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fF$%&!5Jmq+P1MTP8))NVoz5aC2#TIyvKd0+CV_QTyqbjv@KE9=5rT!y@ZrzQ
      zfB*G<JOL~*3g8JWa=MbFo0VBXDNDm;!iHka^3X_5HnkCvvX!|9=nG7m8%<>@cX7_j
      z3i!$}Sr$;U?f;K^GE}f-v(lA1h23Twm6ho_EA2U)cTP+7gAxjikJZH}jxy~cr$6o&
      XwCUvw2=rWAKsfFJ{8}M!)5Gus^F>hc
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmX^0Z`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=^-M|2(*?}Yz0|x*Hr6)H4
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ9H&kn&r5XQfyl=^>g;RWiVadwn&k&rZTaN9N$RCSwLf1b_319&Jg+aTdEJDL6F
      zH#6VkdAkD`p=F~W(2L|*dh(*ZlqmBiTMGAqx-Pk}VF|QzJ(kJFTLck>+D2KR|3|4q
      zsuD`H!I(Lc{tTLB>Xb6z&cDcyG#;!3Dh$kJK(Rpg-I#Cmb+$`3-xgm>O#+s?Hjv}1
      sQx?*67xQ1|Gt^u#G^_YZfg(qV-4@x2jS7sTDx5smP-jJ;!EXW07b1&DcK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8c%ZkE45Ulo*@v*M)B7#2<F9y$hT7(5*K|%07#zrHPjKop@&BK0xA0_t01;Im4
      zPf=Cf)wlcg55NRHg$iM?*JmB;i;EA;MLgZvG~tDO6>5aAWR1?Z@qE4K#3=-X;hV>1
      z2b**5yp2%Rn+>5K{l2_QSETv&Yc^UDl+ZKB86hY*vu7sMqLOJo@wYKDB=Xwe$VQeD
      xT1$H>68=ez$h)tQW4}WZi9xC^chx1eLIXa1^S`&yF7XFCW&iY8^j&!?2p^dwJ+lA+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNZC@Kj5TC0lfj|&>XlrY0i`9l|8!A4hT1y}`NF)M+@@}~sk}a3pbN7ylAI%qj
      z06&z!&dzR<i~34lFqzqz|IE((XYa4S|M(LCp1?0<xDvpvm*PUy#jC8IBI<fm4N{e0
      zl66TdLn(j-c8EpNtM8q@#4rn>6814XZx2Kd1K6nTjv(07Xt&1}X`Sk9-#ay^FHkqu
      z+5yal8byX4W4(Y;i0En+<)Muj19C(ofaO}d{U7FXB#k(YsjfF_YexZCJynMEDNNi!
      zwTD?##Y%TngmD13YXuyaeSA!r=E=XMlB|Q7mZ1sYL7`fEP%N+DNTIV7`a+Ae&v7fo
      zL_;%qEs@u*3PmPWvX>lCXD|t1vFP1ZlJdA(Ix>-id~hItr(0bsdTq%8CWcVRbAdp+
      z8qZK`jGS+UOovLv=aOc)TnzM9TXA0`QH<LcL;;IFZv6A(L$)?-TT6WzQT9b?S}M%V
      zp%ygQapO-2$RD|$&kl-3SJTPDuBL*nH<@nKADeED0#c!ebon2Yql&JknzNKG7XO;A
      z?X>BSGidxZM?-_A>jZGKaPiSfG)_)-)(D6IOkbpQ|1y!##a9hxn<6~#X_Y4t&2$2Q
      z$i{7(v0m1JQrO?kTpOkBFvfj$Hg>O&%Qmx?5KFZaCN$YB$t*#}L5_yhDO*QNX&lyJ
      zA&#Vxyb>kTSFZxNQD9|LC1<jiYbIX+t3_4}M=;?-9GSCaS%P$gIk$!F*upB((1wRO
      z(Jg?LP$XNJp{BW`Gt2CfY7Ui%(S+Ew6Ywm%Q@99P-1_*G`*1x^BYG@cXWD}SMv~N+
      z@KzjM&2b+wrp-}tER!C!-#sr!DyECYL*A@Tz8P-UCw%C3RTsLMpV98nobJ^M&zZ9}
      zMJi5ZEHjD54Ql(h5L3IqrVKk&*62mFTQfW(Z0fvaiG%sajt^h9(pfCi03H>(^6#|w
      zTjWH8$*5hfhWUu-tJUSG@EM!TlWpRe*r!LFp7R*#w$pC0ET8Tc68djJlF^t@+iwBi
      zbDH_i3$rB6KJR3b9pq`MbY|y16^l!i6IkUy<vPR`HJ`3IS|N+{*fwV>0D7Y7I|Q&%
      zqTPfkupgT;OnW)QvI4U#=e(?XIS+5LeF5HLxd=-vmtlqFHMq|5hL>-{P1bM0J1lQ|
      zoICI?>vz4p=lxf`d=KvP`TOtz%LiVs!5ZriJ<db;koAw?5zEI=XSwe6C-5=r8}JFs
      zPvJ9`pL@SAy!}g$_Z2kw{3(3R@*7{@GcUh|=WO5f{!MS+f^D|9;05*fJL+zUWScts
      mJ?!#H2Yz6==OerDBkTKcz;Yc9S^ne^kE|bI9Mk_R@bhaMK`5gD
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%TB{E5F8h%X+ld$c^vqG^g_g$V<n_Ym8huH12;EWMJ~aK5(mVuao_{^D8$A!
      zAS5i=<JsNutoP&d?H#~1E+l#ams|C$67^z}il|OzrLjsIs+Y_p_65eSpim}H?lxOW
      ztwjGH*;7>-GPaWm^tEZoHUg7)y7)1eyWow$ASb&c0>cgE+N@QfGi6C&FP^RiLNeKJ
      zEOa#s^;));)tvjjk94!-cG=cs+T>3DAQ0*1o*Jvt$5mTZWo;?rV5&??g)en70U6JE
      zb(XT;DFlL5+14rD>Vo@;{!HYm`wV}djd&mM90MMa#38y-4Lk-29Y69o^f>Z(jIqm~
      Sc#JS{{ItvSyJvj%aQ+3GqGZ1S
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmY+9%?iRW5QJx2HClgAL=f}=^kVVswRjQ~3f^N0C8f3!qvET1@Bw@%aa#(-LlVNy
      zH#_tBzTN=V7zj9oc_Q!9mk;Y-lrsKSrz+4g&Eo@q1sa55sYqoO`}<R(A}i1$O#iu>
      zA&9H8g%4q}*wt`ojn3lD@<`~hBG87ta`PmNDj<_*#h_J&Fso3VmznBOY2bzV%|wNm
      jw~YTouZoqNkl^xZa#xpI2((eO=~S<WE>AcL-wygeY-dR1
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh3C0#Ii*F#PSmTg4EO^eYgC)k^mrsoq>gsK>#e5lbDyT
      x@1K;Fnq0!jz!jWdT9lmXmYI{v$iNFztp`%b#>l|Pzzj4R1Q;1ufg}?H8vyP;8x8;f
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*W!A`<J6nu+l0THo?p#DI)*m(BFfuxB>LX9TemiDDtgl*Gq!SHDw`~W}7`1XMW
      zo3ztRXJ+4<e*b)a0l+=nI#3bNo6D8-<=XfeV(yP}xx_KOIZzeQ=8p@h6aRTO$H+Kv
      zBB1}@@}_j0uB}Hvvp^F>sScJhK>;1_aj#|SVel%TL82$r<xrBNdm!17EV4-xEYwEM
      z7L-)=rq)^`_C*=X{26(=(Bw)dY^)_{LL&`Hj=Vvz_3VhM7uXcn4j@0&Qf)9ErlpPx
      zD&k;}39U*?FOU;mRnR0xM(<&nWod3O=IkjIL`mC#ajsT;sN)56@t$E?<`IsR9k;b_
      z_Rdy9HBtuM$Mi4iRJ8*&u$9-L!FUQy#xrO!o<p1Q0$j!pTrzgyim?ZMN)m8Q&kEf9
      E0;vpkFaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+8%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
      HcmV?d00001
      
      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
      zcmX^0Z`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
      V1S1185VHbZ!vLh&fg}?H2LMQaD~SLA
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*WO;5r=5S_(B`H&A$K*f)1x!8E-WHcsCAd)oUpr=Advbfzg+k(cQ=D{D}k220K
      zCBmV7oq6+SUT1!OzrF$B7Orh5Fz7CWb>If?nVTRgcf`|dLLW9*3|fX0fn2yxvn9?m
      z8%hlN`-=NGN@9u9$QT?1VMtw_(ZANu6qk#kH<&W8iS{y#7!>CM14RNy=gT1qoll8y
      zJX1=k6a`IXU^yn!USQ^%6o#G*@dK&cat1FRgIW~4;gqL*CQwIQ@@N(L{F9;{$v1xV
      ze?IUCWy)hYWKd5OzM@hXZYnDZqj-&XLNF+8r#Dl~#w(HWMBq3MsiEaOYtx+_V&jXt
      zlBE{;oa{GlP-?vEsp`ioHOEJ;?bf$zztLNx9n)IqDbk&qbO#&Cpzl%1u?jU4A41(=
      q1DXa~aAdHZ$H#DD;!cj;T-VF_Q#dpHd5-<O?m{EYzod5ouKoavB!J%l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPu?oUK42J(}tEa7sxH-Aj#p3LyAPS0t;C{A2EcIGStMBIE1Ncy4&K4JkOG3UR
      zeD``ko&cukNmv5ISlv{h?nRIh<-wM8Iam3fYY9i7|HX;Y=U{h=DJ&$K0;B(>MS9Ir
      zO}a3v0#Zehxg{|0H@|7qnT?ME9^(}ySv4XfN~+57*9N<Xw9G?VUJ_yjgKDRVImH43
      ZHope{!)8f|7L07W&MrJA0v(PPx*r~DI>rD1
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh5w;#Ii*F#PSmTg4EO^ec#l)Qs?~Kg8aPHypjN*2s;A{
      zBZB}~QBGoBy1su>R%&tyBLjO%W^qA&aVjGNvxa6EkYAiy;+CHWlo8VKftv{uu?9(V
      z1?QI*C8xS&<^XkwVc4Pv(!s{a05lEgHU<VJprxz~Yz!dF*%>&1B8&{2AaMpR0RBra
      AZ2$lO
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb00d@u^Mh2;@#Ii*F#PSmTg4EO^ec#l)QqPjq+yEeloq>gsK>#eD
      zlbDyT@1K;Fnq0!pz{bcRkEzQ!Ker%1FEy_Oq?M6@Jtea^F)1gNk%3u5GmMdeEj16q
      z<tk1saRswe7#UbJqCk=yKrx@hq|_Wn22l+kgpI)^MVWc&)*vNZ!TF^{$*FFcAR`5l
      wov8;>4|EgICLm@7`i%wXZgvI^AcK*C6H0S2aD(|g47@-Uj0}80l8J#I0GZT4ZU6uP
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPO$x#=5QSgbYP8m$l?zW$HwM@4g@U3`a39-2EVV5q)w{Xy03J%5RCMDaljO~O
      zk2lZP{Q+Q!v4kTq&Gc0(eKV>es@0Z?X3q}^Phisaa$TI%?wC<xB)S5#e<Ct;v6O(+
      zX=;CL9BzJt*43)3`9UDyk(er7Yg01ehE|j*<sZ%qBP;lE+0+TG&p8PUzp)n9k~1*I
      Zr^9==oKvC)o3{_Yy$1-m!x&cwqc>zUIXVCU
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+8%?g4*6ot>V(y~odyIvqSNo$uuAQTA^Lc2-F8j+dsC*Q3_570wJqe0a2o^$TU
      z_k7(S0G1e9FbK1h-I&Yj(!Fw?yIWNi+?R<8^ktz-7`20p$+NpVr93JLlSE`$poA<#
      zQC?O`<#D0Y`R2=NOV9BMV^M@c#;QKZnCC5?F#VZ+TF*HW?7gb;h_6M)_2Zw)qCuMk
      XLPyI3hBoWLL}O^7uM@(c$zi_%Xfiw%
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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=^UBCdO*?}Yz0|x+>`X)^P
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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@jKuZ}Jn1PrT=z1og!`K-(7(fnWXW#^i
      L01W_%GjIa{^?f-P
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk1%}&BV6ot>_uccH(T<9Z|jg4z}E+kDLG&RA6tAX4gI69^+D6htX2k@bcx5K1i
      zGw0^amwV6o{W}~1+~e9qgK)D^I~A+%GX7%D<IF5fnabp$MHtvmtv*-rY_Z{GN$7r<
      zZNXEsV?sMhlF^(HSTD`FC<v{{dZG0))~pIaPsqy~vnKfOymxdUV-59ITxR3Pbp2CN
      zc6&ky&s^Dm8%^rSnM9Isnjc25LI%%fn=kokt>t3Bu5wrL9Ri^##Q|TMwb4P<(1UNa
      Z>ojoMa~e9mK;Lqg7{~^~mAnlM{{e}+N+AFM
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*VO-sW-5Pe&1Q)|_JoJ4;>dNFwRB!V;`SS-f#W-}xk){Sg73jQ<?{s4cJIEkUq
      z!|vlT^WMyxpWm-<0M}Rq7zkXJ@?A#q!$)sKF4`(r8MBd=HcSH?3e36=BW)f%rX?vK
      zU?gy{ue+<Pm)eqRWdh5b{QBQ3m2OQsFTB7(xQYc9TuXMf7oGV+U|y5&XIHiMy0QYp
      zFpgJ=z*H65WKUG<Ps(^7Zhf}e$5uIdCCkR=;lpm7+pKJAFH=J|oqEjei8KufOtw|y
      x6y0mXWVs*psx{zTyd}ROUueYH1B}t$;Hbw5jypc>@dT$GKWmY7GyVsd{{fPtTD$-N
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPO$x#=5QSf?8tWh8)(g~)#WM&(K~NCfr(q~9X<A~{ySeZH9!i|33&p_9F!SDn
      zFZajw24IP?L`z^+sI!XIrHN}I7w@&Jj7gQ-@g~t0n7j-|*(~0s1?fhj`xjePWnEda
      zjgN8WNX;g<lvwSk<g-9KO6G^RvQyc&60-TA%!!TyGD`S)V}D<roThbdNMQPdweUpD
      bAP{hM_%i`>O7!4)!_Vwvz>2_-dkdo{JV8CW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut!AiqG6r8Qv)TFJcii#Jn?Zx1^CsBleVlm=<jnA+p*@W%3il64e5AdVJw@JW?
      z9(ISfZ|3d1`TTnS0C0wV4;_Kyxm?LezSyWDGSNM~+H*s4#)XGXfw1o9QfJZa<D63K
      zp(}9mS9MVqRjEl^Cl%-_y&z)+4#w9%BNA(r&ZhC?LBMYq?ni;3P+AqsB2jN7a5RqN
      zNh5R4E>%H#p-Md!7-nQ|*13bq&@&lBPmMNY!tD1`-%ypyl<s&7o__eBquNr?5*tr`
      zQZ7wOS1M=GXg!%zw-Lu6u)$}G<Lq%%9(r(*ZMWznsOx@<gBFJ^?jWrDBZoX^m+ubt
      Fz5&X;Y9jyu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm%T59@6g@>?6i^=WP*GX988%K_yHbM55RC+k3wMR7Fl6Z9OhLZQg&*KY8E>mZ
      zkwtsb({s;#eSE&X1GqrLLV}?&;S28YSLMuvh@1zpRIPA23#E{%ON@miL&1mwE=SJ&
      zU?PUfLYkqz9=aCBkRJ)v7XgX=P`0JVuw^%0hT>nouXv;wEaG%#hO*tf{Y}<akuOJ=
      zB#2jnioN;Yd}K(+CKp4>c3n+mDWvWBiVp(8khGsPS)fEM9tqVAV_z3W6zTp^N!vK+
      z4qWMp<rT?&N!1x|>Y=1<#ysLfC8FzaF1?tcMp56j>1p<;ahg{ksQTQqACR!UpqY{|
      zX?L0(hN`ij&DEVy<IwAgm$``b|JiB=+Q*+duG|ojX{H~}qoKI*b$iu~y`AeR(voQG
      zbW*hO94*qqHuOSwelUZqdFQZea1VKd1r!aIesudNn|B3OgEbr&Jj9W~I*us=!wKC9
      GoPGg6^_z(R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQK~DlP6ojV;tgwQs7Y`h~!o`hejw>W48c8tT>+*z>ZM!K23_s0-KfoVle8r7{
      zcxWemoiCl~*Z0RKfLmNds0s9zawAi@^=V1u(r0@2V@1Vm!lwvzfn;weq?xBruS?2(
      zgr>mte=M`Qw1$iis6echQF^VXYDWTB{rkbgA9JTPnU%6;D9|Y#y^(V?`*n8b<R1^w
      zga?yjPrM>O$`>|UNPel_&jv3X^k67+A2PJ3cI|Q+tAZn39(B73VYrCE39knKNR!J(
      aI7KMks<d5cT<IA)`}=NC=FWMqA^8DSK2|9J
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*U%W48a5Ue)pB&$)AlaL=Umn?pQ2KK6u5Fxk8ZX>%cGwbZEi@)Z<5AdVJ_5qSZ
      zcNKIMRed<__5jA{D>MkhOmB3kYabTOE?lH0vGrW2LX$AKTyt%f;p{Kt*ekRNZ~r}?
      z)_9#7c4r%*?d?>@E5gI*{fD5ujhrY5FIACf&y&2?+j3^UZ9#Z-yso(P*WAd)Re3S~
      u5`r&VxtOCgXF~s8?Bkp+Ekq~Nl3$wARN+ww;pv9K4Lj(Hg77T6f!+yJAUy>D
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL+fEZv6kVsSy)hIlQn^a;S_)V}#Y+*vTT&&W(U2G)%m5>fmX?&k+oSP;X#4{;
      z@yQn-G|`%9Vtn>f{0MdJGi9c>BqpZmnRCwGd+oK?-si`!FW&%+;d}%Eg^s)CeKTi1
      zaB`~^yX54~l*{)b2r0B{L(wcP=jImfT8mBuVTGLy?pMrZ%Umd03UM7T`!$8+toB=X
      z>|$=7vE@o$!C0m9t=r|wis{fNJZYC~XG$TM8JbrJoh>g}aRiYt5JyV{?VB9xP~vDq
      zA_men5J6OSod#lvDzweoCF}C~%7Rt7?lMZwmKV+9yjij3T)PZ8cWfr_bP4`lH#xR1
      zTaF7dcUx+sE9n&^Z@+<E=q1rL`!VZnrKfmY(Df+n$`pngL4A8(5Oy2bgS`qdt7xrQ
      zC1=JV5ihJx>U;$I6}q?3dNW&#*0Q9_RZs=0D}1DdZt?vdu3w{PCjN**S0lb39X3~2
      zt<sXh@k~=qn_l@Qi>F3@Xg<!?95OJ9F@+QV2U3u+h<RhB(9@LB<D%dy;!c-BZ<DJ}
      zPFiuyz;T@5)S636=iP2dFWjj5PG}C)`IZRIX;8L8WX)~8R90w8<Z)`U_!LB+Hk>vv
      zjTyF%cr_9-5~(d{Xf2|fO(*Yb<@L&<b-|XW7n4VOP`Zgh${yr@8v=afd?H*S4@93B
      zhZb55o~~*?pf~#&t=X?=yYU&@KOyOFcYL5*04c6Xgt$&~ognW#dT<6id1DZa5a>cT
      zzw8kAF8nyZVvA-!B3VV>JMLYqu)e=k7a#TF2avACPt#jUFc`n1w~E2<*!R8x<EF+)
      zxqdYa;dB5QoqY(|EzpuK+HfP<y?>yM;$RK!B6SGr+J;9$Rpfk~;+o4t3jau>rCmRd
      zTNL9sOcd&ZBREQLB~PS=`-JChw55X+p|?nha>G?jhyo-0J`JhPQ2(3XKmB|u?Z1IA
      zo*{wf?9~Pa@IvQ4;$nHZ(_Zd$EjKgaB()0i*T=4ASeL>iPSyA<@?QGhAxuUn+muil
      sm5om!p-X(p8GFSsd971t-7qh82ggNPLMTl_8rz{s$gG~_DS&f-0C#R$oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~6h5;pw3I4P1uYk;_m*2l5s?ynC=xMELqste6Ebawx@6g{+Xaok$p?KR
      z(L~?<QO0v-FP-de0}ng1Gv|EYcW(3d-_PFwunZe1&=^b|@l#&rpPh2Y)=j5ew{~e4
      z_Didgf+T}{$f0LuFu0+cy0gh3Q7r8<NLH<u$Up*yvM>OH3`T0YDe5Q34Pn3L4MQ-<
      z)vP8r_PMRo*}F_SAN4MSnOaCnjith1s4bkT)zJm|qTmkRbbB|+;ts_y*z`OY+B1m2
      zJnH-yrLPuCu7JVKc6raiG~1OlTw{<`g%E|T0cyM$1(8nr$Z8yzk~kOjU@(l*Z@R)J
      z?KIrL!0HyADMD^Gg@G=5w<>=P(UKXx$Ges|<R^x+%i9?8nkU|C58ZED_Az%VUN*5d
      zB<i5&!J%};E{992@L<B^yQOo(YBLy+bAXr6zcfY1(Jix^f;k4Wq2_pV5O}3w0YP=E
      zAo0S^Kna#;4)PQX&6KY&jP)gbcOs@^b0k|u)|p~+J@au%NJnfTagvDZIuj-Jjgoap
      z2ITrqMrZ@q*bW5N2o59ldxH~_J>`bp;*OwPu{3+uiQN?2Iz59ib>fz&vQPk=0eqMM
      zqxj+T!E*}#%D6MSnLC5@5B$*}gDaT<9>6fJS=RygOL$^%8Afm=@B;4SrzO78svuVs
      zq!u7YVa!85mj1{VmRy&>2_z#aSCam6a0OR<W-yK`i7(1CKq5EsJ*2*=s3!vT>yY=L
      zebu-6s87O_RGW@bp9!nKh*h5rN<J@Bi^;vN0R7w<cJ8JZc2MqQxZJN4WUt(};I@Zc
      z#hogu&4+`1t7PmWsg-x&uFUw}1voyO!*L%|*Pw{{N#rca?ycZ7(&%J<LFrv?{tOoX
      zP<+Y=aV4ir(8O}I8j;~URFHm742O9c6=`z%w%<?^@f$$H_YfZ8%3uYd=TLm=L$L}^
      vJc>1s;u%IlFEa83P9;UbH7ZZQrJ#7IIU4RyFVLK?N<e-w)CRB1vRD2Cay&mG
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuy-%}e^7(EvP31NYfwonMxwW1AyHnz4}OGOC@HkJZSFf>-hCD{p!$!;cW3Xi_~
      z?u<_zpY2R>#=?xuSRb^GefJM=oc<df&)sa3ZP;P5yZ8IPbH3k~XD@#J4ZtOQ9YmMF
      z*tT|GOK7`xqE<IdJF%*j^+l^*)$AYw0w)}GMKjBZmCbFvNNKOY$+mQ%Vwt+OS<wah
      zmgbjJxrO=Fw1CJ63@ljYj;)z?UaK_pZaRfPXmusKmYvV6$+Hj`&ZhI}Y%aag0!sx0
      z>$mELZrYk{Sf)TvO{?j3fsv(S@lrl3(0ju$4SP<YJ2sUU2rO77J&bOQD2U)>5N8BV
      z`9Z@N#Yi6miz+yQVfpo%f+2(ihL#LdUv5-4_4-;f!^o0V)GB$cZpgDM4A@)74)Mn$
      zds#__7b@%ax>2&XoB&hO>st!W;Z2r}s++n|-m;}Mrr>QU9iTK*WizCwyHYc)VCtBr
      zAT<{i%t+0!7vp%7+Di%&QXBDV+YYZNxGdE&!qsMx&%~yVCnL)&>8>gG0N2@(qU=1Y
      z`qJ1lBr@Th7Ts9PpH22@kX~23jb{5eI)g;NA`Zkd(mb5rE9x~l5<5XG2%KvVVy05j
      z%UWf=UT#!5H!Z^;IF6%jyPVBAFDDyDrKHzG_(WhLsg=|kORaiFPQ5RO_PQEI3K=;=
      zp9-9I6LB(a^2|=<rNxqh+gRolYPFhfmdMF?n^}8|U8gK#3abk4Aj>-0R+Fi-k}iK3
      zNw6StNN#HkeUGypo4S_@VqIXoomRGC+D27xr5!>+;KH(Ht46g}(Pc^WlDcD<MP1FP
      zCCfZ-tKXQ`uDZLW*{W?(6h<Byxii;-_)=i9P3|l?xpIwK&8m~A<%TWES&e#8Uo_+u
      zFx0+2E=oAw;68Qp*TcUt1QFtQpImT+dG7a|6`lt?=Rw+V4INu9Cf@_Za+mo$#nUZ^
      z7dRb1<nIWhg+q)z#&|sN7!yA`u(Nzd5a9C;pE=U45&9Wkr$iwQ!B82ZyqCC&F7ahL
      zmby^<7mOcZ@)5tgAh~)S`GyA{YT>!G{`m8q_-$W2SKA*S@5DEJ@w@>1@fSMr-}>Tt
      zMfl_2>BN8Mi{~BUkAJrl|Gh8%D&BMPSNWFp?{C)s{ogUV-_e2}Jrw<|7R=&?OEJfW
      zb;*Xsr#TVrVF)|YpE!#T9fpynmCGO-EGJF6{}6L7SHd|1Jq%~!VMibbo<Mq9fqaCI
      zNjy*60KrLTT=(cyhBOlmJiui12dL4W2Z$aaSvW$f5LrCL&FBGc9bn}UxhL`HD^q-y
      zs{{PO)%g>Hc#0_g;>14Xzly&xjc1-@W?IS2IO`*mS>wz%m*$GQG~pxU3z55r`20yn
      zM*ny+3b!)ijqfrf`4+^4xOVsU*Tueb3NX7bn4jE|LHYpxrQ|;r^tp$xy)9okUN`;+
      DPkM=h
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutJx{|h6g)Sjfzt3TAqH4j+J%UjiJ}BWKwME3#>h$CC{^lIi39y@4Ez9o6!2VB
      zV5pa8zdPT(cORc`?*J}wWTU}wJQXj(6|dTzmzmP;K%`Q{xwO$_*js|RP^rt~sZ2ES
      zN8w$_pTj5|J@mcDi2Kpt`qmpVuz<n2DO9C}(oZ6<rS(OJR8pzKdKSx)PmFxUV0C+j
      zO@L|mML83sebx<n_iN_)!LJzF-Xf86oso%+U54|&`2sbT3tnqJ=@+#cSHDb#j<GSz
      znY|cJ*SV}<V=^r2GLe2}$j&N{3uD!yEn!i53@6w?i>ghp1~y?)Tw7?v#I}tNAr2u;
      Rsyik~?Eml3{b2d;@EbhbWw-zU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxTT|0e5dKbSlG27-xfFDeA|P#4DvAn%3`%7{D_(FwAJdX)!<42If`~6Z@ZyU<
      zK>ZH_jvZ&5@%HMEa@=zgLhR(B*>iUH+wAW5HGlqo`vG7Q^9mviJzM%qJ*V$Exw>uE
      zoZMr*ZrBQ<44ooU)obP4qvDoPaumo6-KXBgs#P=eV%1=fD~4IFI1DV$Anlo(PK6<E
      zZtG={@H}{V!O-qUHr&(>-?8i!lIP5t>C7{<WU}iF(M4<1h@%Bb747Jd7Y@=i1kehG
      zK9x*NUU>V<cb!q8aMx4e5n1O{#1Z59X%z_`ES?5ORj6+8f{Hf87&;1O%~;*tE*kbT
      zcgAGFD(TgA-8T8%b4HztxkD`!!qzy;&{{T}laXi=+D?o--qdY$TnX&xzdNm|D;W1M
      z$)N9~va(}1YvyYrLdxXxd|#d9@k`&a4V^)ukQ<aroH^n?lXd$JkUYzmJfq?UZYrPw
      zMw|FvwVbuxdfl=eWAomtl2La|t48#$S-W=0STea9;zC3d9Eo9Ccnkd`$cS)KXz3Bo
      zm$1Z$u*8S3M1rtH0ogd=h-`Xx((Mh^U}R^sujtZx(A_{UnN$M<WX?7)=$au-`-0vc
      z43`@i;pYMOJa#NfkJIzKD8Ga#mPraLNa8*Q@BnEPa0w4Fja6hQPjz32EHt_?T%@Sm
      zOpb=&%}BidAsr&%g=OK~2!JIYd^r@{+YHu2!4sk2!DjGwC^#1i9%=^fhk~z!f=8Oc
      z2ch7}Q1DnY_+2RYDz16kenJwGXuSz-oRgj<%1_B`ry%g25<ZY(K8jLl;Y)bCC!kOq
      zCoCZ}$Q3z->t6YN%5J4tikBbc<%hI>iL0kyX&|7RKGDS|dLGiNj!2fr=)-66$|(^`
      z`L9gz&yA2nihpiILn;21@$$ID6^hdz&1>T>S>9rd1U`MV!H&c&O8K`udAXy0C(lok
      R+V8;DV!q7gs6qs{{{aM~-dq3x
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk2%}&BV6ot>_ugE{HbmdkzHo9eHNP#8>NUFwNb7>}6Qrl)2)MsPi1MpCUJB_I<
      zW+vy(ckekfhvWVizymHFR0vla{$iKEjhpK@HSW^xyh@aV8eve}CY-L_#cHD>LufCb
      zre5g1`@u^<AfM13XX(~(YTh{6sj3VIp)+5E!RvSyTHMx%P%kV9kGIdI>r`|85l7q6
      zf9Wp>uhk^epKM0{ow&5TpGf5<7B2^V!c95iEV$AoB^^Pw(~+9Qi6ZpMhuz!8hD3*r
      iRlzmtXozwO)f9bkrduHShc-GwbcLwN*^@OW=-~;5vQH=g
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYK}!Nr5Xb+cs~fAPX<B)SAVMu#q+5z0W>823*504?u#I(BcAwRk=+r0aBy{M~
      ztxwb`nq4I-JiM7VkKg?NGw<W;^$kEBWgRiX?wz<7rg%{1#J62#UWQTn?Sbd3?&DBS
      zl<m1XG{W|B@&_X10_oerv7{ex)AiX2fzAn;j^_qSxXKdFR3_Tb2laRT>64Ib+ODly
      zgm|TD5wwnXBMro{nudWCA=|TEc`+Riq<<v_jwIxJ-jEFh+i<;j)YPpV5cYb@2mHHA
      zgHWu@Nk_ONv#)sJQKM>w#>LRMK+wlB2*fBdj6{E<1f%aw{h>Uy!;#8Mf9x=9!wz^i
      z{%od@K$5f0RSYY9SOzJMX?{84Oq>(788R;slI3VH1{^~}6FI)6=MdJA=PDE^a0~@n
      jOonW-wm-xAe}yiapGFF$Ikiw=9wltB24R!CW7zrz5)pQs
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwu}%U(5QhJOgEI#xf}qeC3KPJ@i?I_zgOF&5F+pjp7Tn;P<Br@NYULBzSdm!x
      z0NPplFvi(~XhLJLGdsKA{{PIrf4{x~I7Hb*jIetr?u9KLLVM~fH?%Kwlz!)NB&VVB
      zToVQ%A3=_A$M)|9Asa|v31=YvfWfQN69SzPGHuTdLg9u3;ml;><Lmmf^z^((NH&$L
      z!WJQ3tqll9+q;n#;#g0^LW;1_Q?5LpO@`9H6hlW6ay@Uv27+z4ULG3ZtqKU0-anl;
      z2!-kbiaPIyJleQX8)(mh_RJH^i3|cUj=cVcT%rW4@6G&?>?++&VfAkg^b1tL6Y-A{
      z%19u|+2ksQHD0WM6vs559C0SjiTWIwmk8P5XfXyH!$1>R-lZ21Hj(2>3*<R!ffkdR
      gP1g74*jiQSuz5F9C@!d_0`n+hn>7eK{5pox4-Z^yX#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3a8#Ii*F#PSmTf}+g468!)WnOfvtlvt3FnOw}yz{1EN
      z09KQen3t~apOlrFT*An}o1R(%RqB<W#K<74q3MI&B%ri4BLi1(erZv1s#|7GDkFmk
      ink9N5ootK@j10^`moYFf0_|jFU<0uj*nuPy0|x*c<}rf+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<$!-%t5Pjt(;|!ApC$<AIgpdU<C?mKUaWNnqEEXj(7o@0TT23QpCYovE{86qT
      zu}B=aAtZi)Z{Q~o)iXmfQmpi$x~uxttE$)i>+iSk0Pdk?AwyVwC*BKJjJ10lC{MdD
      zjg>*?#p9E{Jl4whEaV6)lVN8d!h9$LC5Am2gq*b3c|@RX!c5!uLM=Sq6T^|rzq&vE
      z^BX_52=-AbxzvsLmG7nsw+K@Yl&ADV!cuJ_qTVCq+WuQ<V;)5dR|yLfm>eu%kx<b7
      zj^_CWgvDAtCL9WH;KtFGjV#Iz98?IUq+t5K-m^it=HNP(3Dc&vwitzya5s(KJq-M@
      zI2g)Sy2g2Qnn`XruyKVj*HxZ;J~}#(!LCUm6uW+(WfUwX`$;gT4^>E5i+jH8wOF*-
      zfz&A(36=lDUeLF|&}4)&P&Dy*xBOB&{wV0nC(5)}x%ff0jN(}3sj~dBGOSJ>Q|wuh
      zS3uE>%I7S{9L%ttW$z6mGrU(D&7ZL76jt*K=DwoT;C<<Jqxl)tj}gO7wngOFKIK>L
      zpp0!S;~7>sQjR%ri|d<JjcW1N!)>f3m0aG5@A8dLsD9u>28PnK2<$~PP7FwB2<zD3
      Rh-vfE<o$`sn^B27{{RWw#!&zO
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNZC4Xl5PmM?bqPX2uqvQv)exG*LSK*|RY59<NR3jlpEk)gUAkn`%_ij!^q=%&
      zKlD|4>N))Z{-hr3apvx8Af>0xIdFGp=FT(o+~>}|dh^Gh06xHO5`6+^_w<fl)W3C#
      zP1|TV#clpC?G3AvL`+~<xlO%MFFvg7$*LoeRDseKIJe2(gXqq(v^z#smIMat(g~9Z
      zOlD_Pcuy>fkF8iWnZ$s=biL6o9w}>sfWmAVGz?~N3PS>kC8J?D%L4t`nH_<lO`{>V
      z+WQr0Kh`Uz6d2jGs=B$O+XlZYqlSJArXg@TgE$fd?tEpm1kRsWVVXKxv6_aYNCI0I
      zNVh^uEW6J58U+z~TlzjhpZ0rJ1eP7*woa{Tv@M7k%etV^5Kc5eiJr8i?Pf|;^+r{i
      zWHwqW>d}-nRmL;2)#P)%Z93a}oj`jLO^!9o-q)Q{5?6a1df?Y^1%m<$UQrQU1R<s4
      z=NS5^xhB1>8oFuK>E-T0RW=>NYP6DgpA-`u>piL0OxbD$0Rj(PP+w2FLwr@*j&wEo
      zNPg3nE$6mxElcObN;Ep&Vg@tFQW-%mI=bs!str8<j3N+Ml2778feS$g%I4pfNE`G2
      zy^S3%_LB_eSkMD1vCrWD$o7o0l`>esCCWxxV_mp+VWQ``vaiIN%WyCc05^K_c(m_S
      z;XPCm_>bMBP$LSdqnk!ecciP?QPZ-%ZZ{RSH$v#7NXcJz9ahv&O1>*F#>e3+X4R^$
      znR>^vQ}|5as@`mxMpb9^6%X<pnBVK{=S?05c}q<*TRu;LF7g@n7D(*{MSj6&Ov5Vf
      z^Pt%jxaP4Dy{Nseu7)jaC-G2VDq38$_D$7o26ynez|(HM1WlB>S`T&FeFIJ)h=!p*
      zgFQ|KCcKH{Qx>g?Cex5FfMA2Cfu8YvkVzU*Jn`w0m94g2m1_nM-654&eMbt+LTs8e
      z*-zgcfj%C&^z<&$NFqg+G`(fX&cD=4XuF5V{7BDz7^eRTiU3ydj<RqDn)}|aC5mCM
      zmOI2qPW*<^pHvj@JEic}5yK)O+*kWEZZyU)4*tBIp(=Pii*sr{j|sI-VoI$Sy!VTQ
      z$Z^xSM41IH<2|o}Ij;h$`wG>4?P%TKMQ~FA?q%wi^U-voJUPl4qji@4W{{_hp@q3w
      zBnz{X$cYyy97XtEA&k2bE&|8mI(_2>VbD;CV9e9=96pL*%q#wHlAST)xfl32BvDhw
      zpQ*fGA~5j)CLX}hw28oQD+{<0ftgh>HzF{LKM-E@j9>i=#1d{Q)|T<9x873gZDy0w
      z-yxN_YPv-Q^KbYiR(D6%M(!PAL;Q{hA$Q}XLf|#=^fzhnH3sko8T_RxU>*b>q3mTV
      z(#k4}=YGX#m_i9tOsOrduzX$w9^*-*cbDR2vbe`M+a*-RvB)DX3K0Sl0mljKs7oO5
      K1r^bUr*8qXDMZ8o
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusy$ZrG5dN-eTkGPaiw~fS!MT$Pf*?2u?r8~<64Fv*5g*OL2k@c9q!AZgj*q+V
      z@1C#w1Hb}<2mxVI@P@NYaD8UWs#3yiwKS3|c@uSnE@9X*6xS!V&kB(nLd<g`8*T()
      zJl(Z--fBM<>Fh{I<kyIh{-t@T4|g*!wGmgtRu->4_Ev}TQs-hLl}#M|)SSBpA%W1b
      Vp8<hw-9rf1K0<6agudG&c>});N0R^m
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=U31b<5Iq-C0%>e1E!37)t=bBqlvZo~fa!zOjws?N4!#;_#5go`lHjO+#=oF5
      zmd^OlAK;I2+<TJ(4U7+D_TJrd_ME-TpTED)0qme8BgC-uN&l=DnucyUg(vhqFr1cc
      zp156GhQzQkl0Gzaw`Uu}3WgX5mOHxRFw9j&ZAZ7-1#wlReBEqY0>!Wp%$Kx%Dw%Ed
      z9JhOHelu*JC{i*l)7>XTCI~5J8w`tM*PMxGq;mJjP(Y+A6vP?U$4ZM6DQByuWz>4d
      zO~ZbxH#-JHqS|fgorZ3k{On&!?njfHrag{HLnA|}%gC=M7wFuW7_K|0$Md2fjH}$l
      z5<@tXZN$h_TE!G1JX%!|Lqx%KtjV}Rb_0`FaTB)~<hJ3~^kZ_fkjakpsk^pmwTlYY
      zaYx1mLwtz$aw;;&GECFUx)tll`10xlO*d1?RyZi9ViS3KU8mP{1Q$b+l9O666jW?u
      zhtxP1YLcUa@WqJdvxL~hI1izHDGaQ_pprAbt^UT$U$S?xe5vtUZ{-q%E(f<xsdsyJ
      z%Q!Uo>(6uY;i7Nx`CyGEAEv)fh<@}Cbdtp>N?&@8k+Vdxf@!MsDpXvdn%9KpSXs-l
      zGtB&?FpN3+D&o3G6eT3+obt*rj|Dmrz;BnNSS4!jCQ1=+6Cbomi8klNIz=_x+8GwL
      z+$ol|%~P!8`nXoh$G7^py(cB5(08c$q$IuXL#t`|KDLH>HpmW8hJ*u(o?-^iNJ|B2
      zJf|VNfQFYSpeD5Ldc6i(w|%YDUkoKgnN{4yJyMlM61%uhyxfWBlGk%5UVW6jFzn&M
      vz|%wFsUW=4*tK6+{z1hdF*rVR;EfRC4Q9$0!tm(7Br8FZcN0k-i&n*dyjcbb
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5S<mIh$1MTexSq?TqHok#gl?2O@JCnym%lBT@X@tNxLBaH4pv(f0S{y
      zP$`gj>Ez9u_h!29`{(lu0LqZpV240rOlP#zW0X6kJN)W=AT$UPh`WSE`LJa4#;h-~
      zrPqyiw{A3zr*646FV_eVoj|lMxFac-&(xZ-0GgBa*=l88t*Acki@6>xqirlKR6DTN
      z{+q@lj)qLCs~XJd+oOpTHi2BB*xWdJMc)ueqvn3bxa=^wA{+u&h2o1}xjlsHB&r*1
      zK&RHiMCT@(69^QF_@~PH(H0YC%a4Dpw};R=v$FR1rMp_%V)9j(Yp(f?gEvReGlj}q
      z(;Uf>;MDR0B#_;ZdJIZ5l<0lIG5dnPd`kK*OZpofGUOv2F}3^bVPrAP))QW<Cl6uZ
      zpb`th3G6}$k)~pWFycKQjv(Im;RD1`A3lUIrW=DeT4Bm??A8P%-I{{5TQf_XMYWnc
      Rg)_IFLk_nRxNvu0{sLS5vM&Gt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_gYj7J^75=U*X(f5%I8NeJaY{mQir*pxT9BQjiCwpDO&ns^tpgO+^2XVq7t+d!
      z3$z7Vpe^rr%DYg)qm-m6vQtCb@Ni0p#|)Go{9=Y5FvCBF7AP=<@9eIml_N9xfjuML
      z-FxnLUf((Q*w4Q7#FGGa;aLq03N6Qtc_Th!8ks`;fP88Ql;5U|%v^kY=D3-(6{53d
      z!J5lVT4_^39Z}Hdiq`&l!%7)5DZUC1CR0|%viB-9c6LoE1ctJ+W&{+}5kyE<%{nxM
      z6xNSf8S`K<J!9r4-P5gO*`$%0GV+!@doM$S4qz0G*r;OzA_TRMSp|jGvDIb|C^T7_
      zf^B4M%dlzBo=#WBabhTC6bfTmW7f<M_+C%gc`GwF(B*sOx=Xa^^(T{N&bG1=lC26G
      z9gS8tK0036(XdTnhqF;tb1-X<WQ&>Eid2-Izf4CPwkzCq`BwQ|l>8*K8QVN*J6RfX
      z*PbtK_V(v;DbpTh3M?aK-9b<5`qhw3DQxk1?2ir8C}0N-NwODY$1^Wd3daA}fx0F(
      zi4C5M3LTddh$uSIt)Z)ix~|bWdeEz&<;`5mNYbyi&Y>Z{Ue7lT{R~VsneOWYMJq+t
      z2>z>dR?Vx4G;gGe=J-*CtNp?7m{SKiiaxwX2>e=w&Hf{v=B}wQt|hno3!<nGuh)?P
      zDHt+xIWse>&{yw}FNHOx4hX~^9ec5l>9n)%royJqx~A>NkcI;^tm?Us5juu(y~2h$
      z)1Fu;*k<~$S;!Xi62`06HY#J<@mmg$(USeRLC1{((L{*yVGTDa#L5Nb25vNyE84Wx
      zG}2Lw;h=^$uyr^x9-NMG9AaT+85CEL`6@dlg;_<Q=20A$kWVOF;TgJ0q-#pUEef4;
      znPR+biqG>pR!!nofxJy2ULVqz5+Bk)*OZuZM8})(X4+2|XI=EwN%1HY#qD^ThPSd&
      zu1bmy12bgc(QMwW(Vc52q1urK!XSx4{YmM9l9Qu4<^(5_VoP)^6_u8b<6>Y_#ym0V
      zw9=#*MLSaBbXuXijxL|algIMe6VkouuZAr9hhscB%(fJFyOV}@uoqS$?l!LBVmiIx
      z?oZgo8EN+g9X5)jFG=Ir$NpQ+w9hZG`h<>?Sl~WI59PBqFDv%!;cVKlGD1?1^aV3n
      z%v<(Ce6<Xz@=m;4!@FphWAK`iI_|_>3hTrsUTqUz9c;TqMRk|p@4@>tyq7Gj1+U8J
      zxCi&T^&yv_SkEq22CbG-4j+(2d{AM#mx%J7n}qU{uq}i8bv%F%ktzjNE~Bc@?wzVh
      zh-@)mP51~trs1Os+Z;33xKVU`9G@VA<yv+x8HIs*ur(KxfYrOaMD3^W84aIio_uQ8
      zkk|29e2&9~F-tPnv{A2Yx{iqB59;{5GbxCX;@1~-d<kDBmkcsv-kA-y)U{b?`_=MA
      z@35?Lg*(GV+2=f&;)Z;UFtK$9WUKZH^{ix5lf7!Hn`_fYf;n|s70~lu&vi?_F)I^L
      zyL*Z~&BgUMKNhyA@Cs*xE9om6&Ts7Bn|<#qj(WEaE0(><6{z70_l5uE_8^zwwO%kC
      z1)h^WXvd2Bqex_e1EpaX^Ry;$87PC@d+P&**|9ut+iC~Ng<N@<^t`EtLC}~CtKfI0
      z-i>~#Gn{_AF4ta?@^<`C$CE<dXjL0k)9M4&JT+T|8)_zMj?pq^TZLiY<h`EtTq_pn
      zJR;0pAt#(7ay*>y+Fd2F%o|Vok)mz`8?j`1kBT9MegVMCIj=VIPlN`9WpL*zEMq&r
      zo45)?Ci$rICxqfB5NSMzrocI@JIjX#tmkL51F#nX?Bjt!v^YE9K~C}B@!k9ufME9`
      zTB}E+gaAf(bksSfyF%E6&3qr>7`=rOS8yHTcZ~Ow*fL0YIT!BkQECZSp5fXxCFGpH
      z&B1DOWw3)j%1;<q;T7B$)DG^gMinb05=8B-hnjX!cepZ_pbGv@TuofT-+n26!v)5d
      z)~j)q2&hC*B|<$d{VnklUYXFkFXGB&^i9XKCBzr8yY-q9URT2460SRq_U?LHC5$A3
      zvET}NdAM~Mqtmfq2{$j|ji=GFj7j&A;hsu_W8o5}6M<OZB4>j{kOy}5Ea5GQa1C&>
      zqB9XXjgIb~63j%nR=Fo5%0q&BED@l(L}VH5(<&BO#M_@z)EBsb%qi@N1)fGm)Gs49
      zE#mnS=1aJvgu7$GiwMW4hdwOg{UzMjw*tK{7VbTd4>zKh552L#d3>?~x5mONh`9%d
      zaf*UX6g-bFkP?A2OzAWD6@HDcFzCX^Ut%{uPccysk~X{_cqMGa!=%zTIMbgd)xM6K
      z@ogN!qnO0^ki;3x;Ve>k3~8=&_%8Bz91AStJ8^-R`cH5#R(QoegNJaD2tVh^U-0QS
      z)cRXIhu`7%_#^&+KjF{({R^JQU-1I|j=$kWe*PQ(z<=<fYQR5L5dTse@PgWe=hYUx
      zq}o{)9V)0gm8N#7sJccqs{z%bu2Y-Tuxe9dYO6!Ld$3NZQ>GnPE}7+>OFLOTgs;)-
      zMm0tcA10kcYLq@R#=Ij(@J+5l*r*2aEf#`CA2mkdJ0$J{*oH^wb(ntb@>b8W0X)j+
      zMCg}9<t%q2jL<no`Eka#0pE9u@kYj9im{<v%COPNfK!I5*H?xOjztupY>Ao_7P)rI
      zUEVA?g?S!NRM3|l^f5jQdZ?$ngdaS@m0!a?pN3FHLkLf;(jaeK4No(lZbR$fxBLVi
      z!#ctBH4t@^gDZL?_))zRO{-5#`A+<pd~w@LfI5Ea_)+P9TWeaU)Blvg|H8~T0OkJY
      dcHjuf_P?Q;R<%-<CRC;d%5CaWBjV%F{tJ9vkJkVI
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh4NW#Ii*Fq}0T`Vtwb*;*$K_%&OEPb_Nzk1_7{CPGVlV
      zzJF3yYH|r917~q+35+eO;e)QgS~HB1K{7EVC7>w3AhoEZ(m4aDJJlz%xFj_%wTO{H
      z4XOuXA9ht>Lu86lbMwnmv8!NY;0n$!ElN&x%gjk-WZ*}*TMy(SHbw?U24<ii85o#>
      b-e6^5V*q)Foq+>PbAo7~3N9eY#J~*zYEDaP
      
      literal 0
      HcmV?d00001
      
      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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
      UtJGU%kCXA=VthdjNS@#MFA!}1Q2+n{
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjMy9&ZU5S&fa_=rXX3;)1025T$vQTZZ@pxtSXa1t+&JN-BdKfsR?&!o_5nVs3$
      znb-UA1TaL~fko(E*qsF@&ZG*aT!~mN(}+7L5!yMGFc}By(}kZk!QF)G%`Ds<R^#Q2
      z&{_N>Tb&6Rj|k04DwSqZ?^$x=Rn!ReD0kk8D>uC2y7*M!Qvc}hjkQq!Tf6Tc&EYn^
      tWoJGYi8=Is`3B#=6#~IFT?jptQ8Cjo$U+sCiC;$p-x@BOxu%tK-Uq@(JD&gm
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%T5A85Uha}bU{%>e8zb2ARa{G5u+xci3vUujrU<~Vaz&9b_U}gc<^WRWa7aO
      z@S}`93o#HqZ1;3mSM_7RzCS(z)UcLCN}zNvA7!;oQk&|r4x(F%H)~mV0_!8lCB;S=
      zOFEz?h18Lj1Ty<dD|;Z2-m2UPcnv1|NMkCG31kEcEv4za|InuRTDC)G6kAas!y6eZ
      z7Y~!3?J6TsZjJQ&oun?1Q`%UmtxB36ZVl=}sXNt+_B{o*{tvTW8B0F(VlqZWn)O8F
      z21%NYiZH+vmd0p<doahpiu!RtC(3P+A5OR9G&nrfn&L(%jUnEnz-Sm5r8{S2yU}eH
      z%iQnpZh5S_BW)P6{a%yqWIwe3oY`O(d}01$K#D)UEXP@X?Xedwv;B_Aw*>at`bpU{
      zJO*<d=LbdXr#bR4g92xqz!7^VoD#3jG82h7@RBe$2I!FKDrPa4sHITEJjZF266ONR
      R?0v@EKwxx{t%oJ7`~VbFiU|M!
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      LqhQ0J6GHqK$FBih
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      m3}SFOm>qf`eQb;jj10^`XE87^0<C0aU<0uj*nuPy0|x+ik}$IX
      
      literal 0
      HcmV?d00001
      
      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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
      ampq}Y!=DHn|Ea^D2@#Dh{Dr<G{`y}iCZ5;;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=Yf}<o6n<VsR@W5_@7*;sSwz&d@{*N?Ws%ls%s73h1vXs=ftJPbOMUC|N9wcP
      zpvjqjKtHPKoOgG?3nL8dzUT5h=RD`UfB*gd17I9a6f_8QZ5z8rEM*$GVl2K_u+3u8
      z%I6gL1Ue77)*Qnzcg&n4(DZy|Exs-gN=Sd!$Zf_}Q`=_RnI-40ku8}5&2#Cjm9w0A
      zfyUu*Qoy&E&zK4{f%fBRDq0cH5JZcBe@<q#K;VpqCin${2`gu=ly*|4y>6tk1RhG{
      z(?&LF*cP8XV`BJZJ*QgM9NWrm&b~Mq6i%vWL^qezBQSG1@M$pIMxO?S+weJCR#BkG
      zr8_P-N#}PAd($L=)g9B>%4b%L9ocJ5E{{r}g(6El4Fc?_(*WsDNJ)1Tox|aiEfPz7
      zFKrea8g@~^Rl=$9R6Q!ye@(+M28c70kMEi3lEc$2R?)lasKfJacJgkyv`0q@@S0$S
      zM>Rw+qF{_<sj<5O3neR?F>T(B2@TgV>GrgkHHzHy5lCsARdEBi6x^hZsewtChG~ol
      zD5MFCs$v$m70ex3MVD2>Jnm4W+~U>O0z>uMJ0xedn;7o#zAVs<I-KJ9!^vjc7ZA5q
      z#IU5{0Upx8jY7f9Wdx%2GER_qicp_1j8ZmT)l!z%Wi4N_)8>-JS0h-v!=tPM`e}rX
      zbl)3rmamh1qkW{OAI<dT6;<gJqX_=A9-wujg0}By|4PROgy>(D&S`p1p+j0hX+d;)
      z$y@LdI1tcBqJ6#!y7b6T^w#nNvV>Kldx|zZlNgh329<S=GAWm@3E}bEd3xh=0=R&S
      zGB<!rxJ)d}+T*dlq_dBrf_h{m%B0`WUWfJ-0UHFBlC-*;Ql$+_GNuhmGNuhmvPPom
      z#{d;_g=|bcD3w|!3&;29KhR5*U(l-SWegEDTlUH2s^)fGprkjXqAlq)H`SvT2ty|e
      z4`80MnB0F%J6HR+q}Dr$(CtQ58}NI&3BF4nmQ9*5)`VU`G~w0x8G{FiZSbj#@iL}<
      yVWxt+p~W)d5&D&}ydSAmACf}7C*BVv$VZIf(;@x|kG}~~Jfa!VZsW1+Jn<h9mQRQP
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{k&u<%55XZkSKkV39+|V?E&{7h9q>j_pq(CWkVxUbz05>TZ8Icp~_>pYu*w%U-
      z(IaO#bB7BTkU%1-C{iyVA#vhP&;2tH-+8;Xx9hbm@7tZ7`OfFPnc2Vpd+-pz3d%{0
      zD4e@vAKCe;wj1sIrnbF~tJigV&vjZ}(@kPbVaj;a?Z$q7r+P>4c?x3<`%o*KF7;oP
      zJ=baM7ZfIIPP<jN?`<2GsrEtB^}32qv!RgCU$(SM6}8KU1E*Hgw5D3F{zAL1uJQiJ
      zu6Oj7-9Av5@pE)Mr=Ay!XIJZ*X;NipzhQ6{3UNNGgK!~>zmr0dN{Lmc;dn)b(d<%%
      zd%M}J=`=<$W8rC>PU0DbX|vBK8Pb@=ObQCmS$GN=g;OP`p|?ASRqcKvka9lFJ-c49
      zT}Pe+<Cu5gv=z?#FhdTWSjm0u`Db`0yA&c14q7t5Xki=)y0*KnGuc5;*;IyN>;1Y&
      z@C6G=3C=J$^opCMZ#hym30Sr;fkc{jmn^)3d3rK5>Zvf{v^RnZ^F((g^ooTP(kvPS
      zy6?uayFy0qEz<(x_oju(uAgsZKRNB&-PRDFf(1)_ENb;$P>0kNX&Z&bxI+k?OHg|$
      z;5!!H#SNC8(UHKwD}3~UiOHBdNOmD6*<h}vie%fg@E*39t<_<+YvIU1Iwo?^q%dv<
      z<jDc-!DVcZvsmqTTH1%LHrMSR)4&^z&Y^Z~kF&@wyEN=w%=i=wvWXoFw^8Dp+|~Ce
      zo-Q{#?w;Osq~T`=z95%na<IU<jq;<D<eweOtK9o5d&)esLCneqFe{5}R?ZfqPw{>P
      zQ~W8JN?xaFxj|LMbt-osXL7$|_OttV_84=&81J*ZW=!4^#;{F|9h{@h@?-Ek&hts(
      z1<VI}d9I>2p8FLGKl5e;B9bu1N+@`|7yJ@l4uXsH9ue={@-Y_r2x(*eoEx`|!mRHV
      zD2Tcoi6rJw1zKz78JH%>;$KJ$&ksn-QxxlN2y42Bm5s+*jAC_|{AdW4R7kLvVzF|9
      zb%KjNRxXP5RV>!!c&uC$>uX|tGXzT-MzHdDl~-wlaM@OVjFj!$5J<mlui^C|xL>xj
      z$5@Gid`FP)hk!`O3dkF=AXlRxKgEJviwC(H1^JC24~Brq$Oy<=u^`u@AP-|fR^vgg
      zM?wA|$e%+%WM&0q4Mkq1G;6_7q}aN1%O`j{+9&^nq*A?^NHK|D<(pU!q;7GP<s&j_
      zq%NLd<I^bHzs+sSiJ;BL9kl}bAACOAnLzKAsUzS^j_6n^s{}Ynp1lv*A$Dxy(
      M=*`+krsF>TA7t;E1poj5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_a%T60H6g@YYA&@2{g!iKakgAfjH0m0}CP0-ELB%6`C$WN~!GmTT+Wthpq#Gov
      zN?q^)?E4G-38bpmW-3LcRX1$L=N=#5bA86QKfm1oc#X9TQiNxHaVctTDRf+G=&t-A
      zyYHg#LPq9e{Y>bd+`W|AWZ)5&hopbe5Q?#kln7cfidCpj8#@GgOUTzl9UGxdO9TVy
      z-+emzo}c{DC-}-5vZz5A*-~1WZ9;Rs>3jk<uN}7gvST)fm}3(u-5X{eY7(YVX%W17
      z*p*qNQOqHS3BvxP^{=$XK$y%SizkFaQ)ziHIB(17M6?4*C^f?lry)2Kt`pKTXDTK<
      zzrWJ|a^K`&;&2dkT)PLk@b$Df|6?ynh%g!kT^Bh+E#Lo!J!#yJCZyLZoP74!8SE)L
      zbNSzI;FYz<DqlIx?<a)?_!!|T<El|+I0uJ`lg{(bI9JB0fMWH<%Z+*OD+<+V{|ic2
      zPC3Qjao2AbW7tChZ!pc=Hh1PTn87Ts7R_OvJ6g1WMfS32i8(t<5l<O;4%r!eRxYEQ
      hOi<(1p7g8ND1By-g0;1y1BcEocP~in2rEvt`U}ZGzyJUM
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ-%Sr=55Uk$3WRsYfm<W0bLGS?v&yj$M1|q>rbnlaOh$EZXurn+EmM6i3A0VFn
      z4Z#l(dpDv7#Y=ZrO?7ooKYu(v0XW1)0S=*cBW^`!Dup(kk+xB27SgvW)Tej8TqH#S
      zSwcOP1wzj{-w%YUk&zOCCnLkc%h3se&Isi}sErlcdLoEr?xp|!+I|~u6Y@t&E88P9
      zcE&%36B{W#>+X7l>>#|7E;3jx!9|f!87nQ%<M~uZ7h)PnLTw!SJW}vr#$ROCUMoXr
      zFJ1rpO_z|Fn_1%XYXgEi3FF9@LzPV0`uiRSNgrBZBfcYH6FKBL7Z^EM;fj4w<XB>+
      q$DG4CzqkK@@_nkQaCB4ln0x!EGHxzaSVN5w>ruyg>eXQ6p!o^!f@@v?
      
      literal 0
      HcmV?d00001
      
      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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
      Db><Pm
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{TW``(0R9fJRakWn2keG|^U`)k;xm&M6*a+S*_0Qb3OlkIXqQ9rcWL5g;)6fH
      zA7%Vb+ez)VEKPbY{ch*$`TghTF96SA8ORB2es;gOt$}p?Y3rQ~kAtI^aynGrNf;;t
      z1%a&;pex;QrsNzUASMDEy$CaQ{ZUKFPh&X@6Rozu>WQn|i43Kh)20H=k1;8B-oJ<;
      zb#d48y|5!tx2|@u`vQd*!I3N>kDDfnxFwLc?0yNiQ8ut5uy$2E6L+vGV2otA$BYbX
      z*(s;PP<j5SU4lT>L=9_%PS2s0bfyGp_lv}Cm{`D~z;e&?<=$*Ekm|iV7*oF73x@8v
      z?<!BPlg&bS?6Ht~x{vIiU>TjXU#8`2yNrW1O&GW#P~&+oX`CUpE&Ez6fg<^FLSB#m
      z8q4GoC>;hfHI!XXAHR}4)>Hjs&}3(MUdbFE78lK!lVgEjiqQQpadi+OfU@%grn7T~
      z<ug>Aol~rTi#VHnm&pOzeDA`<bF83)E$&pw)nDtl%Tdp?6R$7z?<M+@7@ebbLEm|D
      zipJceN;2?@CS97mrpX%`yp4<+vBW>4T4F?5T|O-Y?qfT#Y;hFST5!Ij@s*Pt^eJ>Q
      fU_TNxV?ZJ(@Bk0Fqx(pc*R$jgmy#bv7LWe|r8VCo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZus!A`<Z5S%S7#foA$aWF=2%7F&25-%7|jWL06-_}ih23qp^>VJ7M@!$veQO13Q
      z1P)wgcXlVUv%i1eKLEzKh!GI3-uZ*mT)3>$7q+|>C-zC|!kUe%Y>bd_d7zmIyT;01
      zL1<4*Y1|{Bb$hoYgwyI(60~sAMT9n?mzh$Yn{_UB!TCxE{j4f@wPb5N-wi|eW@^H9
      zc5v-Tq6b1UuNqs(%y_TC5zWY3;078=UxilkQ50ik>6Qc0@C%(!9Rx@e{TjH(sbY8A
      OM_SL65zZ9@^!@>Ou1bjj
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>$x<6v6g^LBAuJj*$R>!`1P=ktifu9>B0IrQwu^$K7*h7GkzV0;i5At}^7IM$
      zgH&akWWy#KQsqUKS>&TqIrnu(g8^^e)c2ix&bjyXKmWe_3&0($r;$*Yf8o4zY6sf!
      zg4*}m58NQsUQ<8RZGGs3It@!<(!{hK@36Lg@Ip63g^^X)bHj#0GGEwNu+};)ok0?p
      zY@{%vFtO=+daHYMp#5Fvpsf|AH#<$Iz3=$0?Bhc#eC`Gc3!5KiQCG-FKG$ixZ;7>;
      zk1iNWYi%b8>H`N6#|uv)t?OQsl>NG}zqI2XdQRB&3B7#=dbQZN5Np7bIOcuy46?YI
      z#uZx9chOL`F@uj3#t(J4(>>OHQ*<a~^MwH|k+=+U_&AL@x;S7|EWyS#TvwPO&N&5C
      zxOYZTJ<f1p)$183d}8A=CRp3>%`uIcI>Sm~tkZ5i_JYu1$4G_y3ga3u#M7_(A<0gc
      z&2uFR9JWd!aonPe;WlCFxK-jy{gO*vi2urWL;ZhS76!Er^}%qm!oFBqu~9{hJxuEq
      z7SFjmSc(`<thr<3F7B~$j=CWqNwC{dSUTtWSwjlX<duAG;|r<%C=;6s3!ATOd@XE7
      ze0|h;$=9S%x3P+EDAF}1v;RZ-eE-5s?};3;`Sr1{gTU>0EN%|>Z9KrYY)WI_dhesc
      zT#O!L^}d*wG7*Hnc8=B@ujRH3naob7>o@g=D{p-EoCd5)Q&=~sCduCp_<K<Di{O~%
      zuEtr(Y4J~t{=r288IJN9SjHGfI||@D&YdMq$*4)L6PPj}zZgJZzBHZu6?3IiwqnlW
      zG`o_@rAp;W&N{`speGIb4C8?nW?5y124Cm{T*r4NTZ5-WinGaT0YY9@H*t$OWp$e?
      zku#4^u}Dr?;x3V23VEJJjOAv5Hx-H~aTK{fF~Z_pEt6e&t5~X>;<KMIRpfTLR4J3@
      z@5su>FMli-OWd!VqS5zd&am6y_=qk%A?qzN*+vCF81}^oy~n<4I1Br#VVdC0Je3N2
      zOL{ow^_03qPqzFwCWQ+#FaL&=b&@>caa5GcCS;En_c4t<lW-xr)=QY}CCnO=5|$+`
      LObmrJgY@t}m<oYZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O-~b16g{u>1Itt@LMc@d>KAQ+isDMc1~owmn4nEuPRmOf9A?PO6f|yJyLRDP
      z7j87s#0CZ95Aa7B&wDeJf@LxD?z<o7o_p^5^LPI@fH~YrAto@sY3`WSx-=cX`owd$
      zr5C(f+%TP{e6S;(AceTVh|XyRmR;4()%vDv1Oi!KdX{O|q~}|%^K9w9fOsU3S#%vg
      zFrA=g+AWzde|>)csW|*vz}Su&te9I;U}#z6+H6)`3p~qd-WBL~<gTte9uHfpxNEOR
      z@r;5qn`Xe~OX~v3dzNDb3j&X)x{#yFE>F~}%kzIu<SEqz;*0LOOrsCO2C^8T96jJm
      zwKEVHHIT-Dvc?RYMMhZ{3>e4=3@%%aTxo69rT5gV+j@StLG?^($b00B2OE|zFcGpl
      zbuUyR>ANkjL7ZeL35`%Y_G-%DaG9aj!&9ZMc{^$kFma_L`0=EU<SJ>kqdJ$au{*-6
      zA<G5^)sWe!aVN-yd9H2O&BhCX;vtFC$5LQb0~5%kY0W9c&v7tM`YoF;F1@B_erPHE
      z@`odKz1Lawq%g_aK0fjU3jC71rFe^>pKx3d?W|ggKDj0xBY&PL=CURKL%h9YO@e2x
      zT-n3<@^qWlOdI*~SiFtGH(hs8#dVg?e?a^ewb;Q3c5#WZ`49o)xXhc%<#5DTmf{lA
      z)+Bw3aSlaVamKIUYQ&<-Q{^Yh-;w)DBL>w}jRm~XO^h%hY9eqA*XdCsbQc#+7QgLT
      ze4}S^{$%mHp2brfJnXzco@%&cxza}INUXH>exNKLH9{`T>IjrnPl*@;m7YXOCy9LN
      zK?In_OhlwksT7go0mO4^IIDEzSKyc5!_DOijS@Llj*y4A1K=k{@dJ76b7u!#WQ!5m
      QJU4iYdsSp_Ge3s;e}~TpW&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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@Ce4q%tx{V|R}p$Q+>Mj10^`%nI}iBhZ2D3>+X911FGVV&DP*
      D-qk_b
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%Wl(95IvK|ag#Vn2`#UdkhBo;q6U!#QV^R8Bp@xIqN<dYlU}8+T&FlrMK}Bh
      zU(hW`5CjXvE)pMwn0xI&)wF?y?K^Ylan79a&tKoZ1Gt0RIwFMPu61CUEn&Gm^SRgE
      z7oLB(vSYa&(X@NMaD~U-w}(2SgasAb_ie{~cpzN=L_~~G_-8eOu^+Zsv-Sib+f+FY
      zw=~y%&vrWvLhQcn+WrH=z0&w~;F$!uQQja#SGwCGfhnX6#F1wBVXbij93KZ^#(<7#
      zLZ)fEVy(Z|65dOz<tUKdw&iSCo-OUr8TEJU9wDqc36B~f)0%d|nG%-%g9RZynpGeP
      zr%mXlG+`<UT)~2lc|z_?IaI8HtH?3kj_?_wl0ML6wp1P;djfeZ>L~D>PAX<#3D;RQ
      z@uqJ%Jd(NNsy%D%iniY<ZzXudMFTfcA|$!zXnhFtqkgAIlZ1wffs43A(1ct&LjLUG
      z1w&x<UA0|_^={v5i$}IpF+XB?%7QOTPAD+MDSkA$4RRUyPmy*U5`2=a7l^P2NLFfJ
      zU{tD~k@?7G1n2mjR#%TX{Rt;LMV5W}AROm0%N8f9vZPLPxWJht$%W<Lh2`tjA#^%|
      zULD}_YHf&A<r6YP<c^T8$>RXm-eaaRz>Oc!s$Wr#;4h9WqFjFyDZD}vTeyqY$FS7@
      uV5y^u8h1{yD7Tob#KJ2PVlnwEacZ*P2R;NOW6HU$3K~H`Sdg%+qRii~))FTG
      
      literal 0
      HcmV?d00001
      
      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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
      Y{@}d83O1<^o0W^%Mu$=o(3;BsFI$V9>;M1&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)B33yc175?wbY#AR!CIpN?85AU$By6p;C6)>SG!_C92ql)bkKvh&nasqQ35%^t
      zt+ZmT3$@nR)?&9<i<MFcSSwZAlGe7O*xFXRO80%=tNqWrZ)V<1CVqa9-1qK1_nve9
      zv)-4-U-<lS01K5FgrP9w3TwMHf2(b!vh&wv(gSuTw`+x+jb{=AxpXE7pTcwx$tv5*
      z4QA{jg@QTYZriYHz*d;F+96L`sh;_5Nh_OeRjBSv^rW1P3X{v%FNiG_k{&y^#?JMo
      zw<(<MA<5X6C+&D{zFrf;Y>}`w&wAyy1f_M@DfqXh2U9#obt{|^Pp7iEjFm{)oC#cz
      zNF{Ph73vy1EIM<UM5?E?u}i_%mfmKEQH9AS&P1I;RYPM}7z$HOoP|jWL2~b~`l)Bl
      zYM$9K*uT}zY_PT_ITKl(j$6qtE0d6SchZ;ZO=J~jYJTJ4Ouc+5=h(<t!4%G`Ag+f_
      z!z}WLSMH441Gxm14&oezSsv51r*fHec7R}Vxj?7T_%aR`8wn6|FgJ+v6wWN#Sfgj6
      z0gVJWX{UN}y$){eAv7t}+WiB$UD3RuqM~IOv(O>{PYPl_u`NGr`CuZs&CUqBg(eo^
      zl{`4!Yh{+@2vb9QV_O*K<JCbd=JCb7ZKSZ`IXh$GHFzyepG$8Xpg*@+SsKUJ&?ful
      zpw+|$cpWXd-AWGHYcCgPXlwMK>AFK0^Uxw2E;O+W%f;~qx6+m9Dzc@0oGmL%ti&n`
      zY>~HkVM_&g$L@7iZWXQ<n`p-+3ZYzD%fg^(7`vr4gw+a0A{#;n0cZS#u#OM(Q1RIH
      zCOWZ!FkGHUZPU?1KfJ^%jrN<ds=u6>#;$5I=`vA`a0qXtOSD<3R5}+Gc2O%TVln=L
      z(R3#2i1sFV>31SrcD~uf8M5=O3KL6ritt-a#6j@Pc&{DrD@cElSNgKd;1RlP#S5KQ
      zSp>M;gdYK#RbtZ39KN_UK#-=C1~Su{8_Xr>xqjl|`||OWSY6{)W}L$$?mP^}Qn@pY
      zT_N-<oLh<{ac4NVphuaTlJ>S}2<b6|beXY)3KI%BS*N@Sh19Fx+h1CPGBbGeC|hwd
      zSH`wnH>J<+$Ru*MHajyd#mJW?U1MrX!a>7MvyGkAwMFz;?>T;Y31OKqRGVsg$!B=g
      zETb0DC-V4BUV$g_fRc$|BD-AIB-WE|@xFJMn1G3lagw@AzJ_i&Z9*d3R;*b<`z{kT
      zLMz95mZ-1?7*7S1JvW*##k;3)PaZoDiDVRyJv4&Ced?HLo%*>UP7CGi(!&(ydpE4z
      zdIif%s~d2o#ZGf?4dOOh)RVQPMF`@3B{fB#BZ=VsChouoxI@y4R(>$fQm?SW%UCOL
      z*;ti4GkME-PGP!L7&37eK1luvb_!N1m!Ou;c?xU2JSy$?a(o%evkVC+(kc`YaQCra
      zi5L0=r+cczFpOJqkBN`sW7_XL$|$_D!7GnzR1c?02L|y8axF^Jk?tIf_v+B|GzqGY
      zzG`K9B>tEoBV!qbaUTu@@#%a^Ii3n8?#E{s;wgJay90Qf)p>4-<fTYD2f0&098{=x
      zq^;y#K^#(u7M0Nq#G>AoCy2ueO+~6aEbXc7Y~X}+12wgC1@(g%DLs~nw8u&=i^uJ3
      z)<bnH-zyiJUp61bb7+1ZO!#WO@VTmqWxpWh^kIbyy?*DWc<+|+O{)z@zy2Z~4dM}n
      zv&QPFX-qtZ?K;P=x7pLD#I)7;GEM~X6*^aOUspP@&BUmr6W@l->sE&FHHC#6dhJ42
      zH#ZxV^qsFXy_USonb8~%jn3W96XuG7UpMg$e3N}D;niXgjTsG%Ugh%U@ThXq#FNqy
      z1-VU1kF;f{OgxQmvC*=x9JG==rlhCOyHK|v@r;S@;Jdt<NWNr~*l)Aixt`3<%FA3M
      z8^W^+i#zT3Ak+G;f`y~G-b{K&Dw<A3Ef!2Rw$WTVYB_G;>Ykk!#P=1Z710}WiVj?@
      zohY-gd}0xsxc)4=Ou1|<a~vi}k$E+umeah_mO;f7lHgB!S({fzRUsj`P>*SpB=?8#
      z3xzr5<{eDgJLM|DhGHO(C_BDiF_(Bry<U*WM#T?8_>IB>r@-g^Wn0?LMx}S`wYJ+)
      zdndd2<SwF22g{!=&htAHzsDaWQD>KBvvQ;4HEUHS&BmuvHR}%HPYMl=I2L=-5|&oR
      zb~wh<{R0en=l)j1l$0-T;vLL*^yFTBCESO<nfMDDtML!~D~Ny6n~FAGo=zv3*G>Ez
      z|B)bBzi}ml+yk^r&?>wCXW|7R^RHUAx^rciGk+5&<*$7>B~PblL-uIAIa<8%oSCJM
      zl!`UgJ5^HEt7T<X(vl=IQJ&X(+MXJjDCtYWo$0|$++LNC>+94!lj7xmo~X#n8Xc0K
      z3<CUN%gnbRpA3Zfo83QuLwb2<WYbZy&L+p1X9L4=3V(R(BSnNyt9XXNF&sOJ+E~*F
      zrhJxf2I~2HqQh}DeCQyLwK$t|Q#3WEVLIQq4>Rxzo<)o>lk`!}`S>==mG4~PqHMnT
      zxN@?<g`8&Jg$WN~*5(K&o4@!F=521O8o`2Nc-1j1If|uCz7f2B1Z^X@s3X=a>ybBb
      zx<yYp?`z85*B0N8;?me*Y#c?S@NlR%xvP=QJVK6%T&B+w{v_TqifDoOEqP)uO-zmy
      z%A>H3z!s>g9H^F4ec%cz*-xlad>bHK8D4_3oEbz8JFt`g?%;SA-iCW{H9moB@Oh5M
      zaUGt(I~{mq8m0ogCtY|69eQY1gC~9fy@b39334<EwO$KxO^k3w1tau1rhbu*<0o}r
      z!3eSD7FF*nAT_h)1f~@LNP4l%<1?$?cLLK3G%3>5(@bI`2gGp!TFh1(*iZF_3DCV1
      z=sv1;fPQj67IHiv2YJIk#C!Ya(8aMEBUI(61Inwk*acAf3ZV44pin6SE}+QMm3;Df
      z;1Q}kJQ>0iC6)G3iGbaF7T=uhf#nFT+;Rk4Viok!v2nH&iC^W;C#cU!#>$hZ#Zx#J
      zr#yz7U66TpLFU<XiLetzv*{M{olDU{wsS^D^bW^Z^EoS~_0!wzgM83zC9r{K9TwX5
      zewT%!ckSY;sN~(ev3&FM6*pf+rz}TiEwz)}P#cRi6`elTM0CoN#9wLNzmxYroWpgJ
      zs4Xa8>!>UWy}hE0Tgqj8p`wgezqE`Jn@u_}MaC^<GO9_KplT6OlgE)!j3F{!gKI0`
      zxcfk<5mbFe8Lwj?Ya=Wrc7k3YHth&@7lm<buNvW3F^?dD0$2gLlsbZ3Ur~@f<$}zw
      zD9F1j3$mwNkah}k$vA>Y!4O1lcuDu%TV_3_D@D0`z6UoE5AEacb=-7a0U?@euL!1-
      zsYa-qf?YO_V7kH;6JUUeFyx4OGj8E1L2w@<RPw<J`o-Q+9(GWId9Uwb+`73cvaj<f
      zZeP=U0+V9RoZ7d!s);jqY8vIPg=5Wpyz`(cYB-No7OD?Hl|;4b=O=*_rgEI7(wM0R
      z(4wxyt5pWAD$DPcIY<7emZM<d75ET7Oev?K5qIMw4hp<ryK-;hyU1PL)I5Uy2RD(q
      zlL)BJ$GKD}%<5`h2Ck(b@9;3GE-<OaC%Hp*Rx{<^>oDOJ+hy`Tmr0#4`P3tLK=>5?
      zJNYogjbf7!vHhGg*5HUUMwpkiAm@<=>P8}Q6T<3dnCeyr**?^$+i|A4gTZzuYSmpH
      z0qY6^);YS1fOU9~g;1h}A4~Z=%DF;*HtP5+UUQnpnjC9tuA%`)@DP*GFnpUN=tprD
      zD;L*VO4p=TJs<=paG?w%IKISR?>~eueG-!*UtJQAI#wT$!lk{U-ru<-5NoRU)dw67
      zTZWO|G>pFHQS`KoBF?7e@g@GM#ereGuHIi4STuqsr2IWKgqZvO?c=`vnBl%0cUaZv
      zHD;t?M6VC1x<I}E_&qN^I*iDs$oH1`9Vz@G#b>FikFD8cS~`jrEa2F~+_{}2SYV#U
      zb1v{V;v52hFaI)hfS!Fn-S7Y=s|WbklEa9qW0<8LM2zDC^$`Ec^a#JwKgRFvC-_l(
      zlpm@e=QrxFVZHh~-lU#Dk9vxi(5G>gdIs02XK{mi4mYbG;BNIpeo6Qd9#lWUW9oTc
      zNT0*g>X*Fl{T9!t-|#Z`J3O!c;23v6!UCrY#y#y6W-;z*{D9?H65(n5&@IuY-4eYD
      zQrZLjS<l@2Bd!LxuNFV1zXq6fF2+yrJXhbtw%{~=%DL~lbbg-5kJAj4C{Ok_oIjJ`
      zSLbp?dYv7#yWP=r0!_5tw~ycLcAP&Kv^jIUqs1|i?n8emv-Gky#suy75jx4Qm-rm>
      zuu0;EQB07fszn{ccm-YV>=ykxg5TzQ**^+li{uNP%Q~nIj4=Gh1XLR}m}E@CG-EQN
      z#uUso&cZ@t2F^ETVyQ6;%Z+oe+L(iNMgzKy1$eWu5N|OS!RFX!oR2}{4G!44AKFm>
      zdxu+Isjkye7*sujKNGGhEO!Ab_CtCt#5E;%DK{aUAfRHdoB%e8VAU|M1biI9UpX*;
      z=4bYDW;dsH525-H{yvPrA^dj)FUs7W3UiFk{ML>9f+J+?v-4A1WU5%uoa}0JA!2O8
      zY>sn`H{vxMUu$e8GF@0>bQ6&-yw$i28IE!z(RC*0qM_u2gw{#jN1fz;bgJo5s3Cl#
      z=@F<k<WKz~&00+#gOI9Dlv$Y?QEDllsjpCo+8&C%GDV8TK9cO_%kKS%@No|x_w08_
      zeN~I4W24ftUv&5E-zZZf%2*sA2|*AN!NNnbMW%!#IAaL)b^aktt_uvIrY<;yaGh@m
      ze&2yA{-ahp1E;7rjD7@-G)yClS|f*Zj6t**8O$?w(YLO`3gc~9YwX0O#<fTq*C1uQ
      zlfHC4t~d7J7UMeHX54@~jlCE)Zp0zu-8gLAgk#2g@vw0-9y4yisBtS!a_&jvb_enG
      z8r6dTol;d!Ju~rT<>S53;NQ<as{GFV@lsr?0(|oEQnXbC`Q*oKc)beoDS*S6uB!PI
      Mgi>;MHPjjZ2R^cdF#rGn
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O-}+b5S^m3fZu{22x{WNfCq_ZPK2n@m`H?p&{KhCDOuW0+eP%JdGH7Lqm0wC
      zpsVq+FP(Y&X6DU&e7?N{z&RXwkRnhV(lM=d85O$LQZi)9yj=9Tk;;Qb0vj$JP~q3^
      zx<l481TvbL2O30-z;@;KcfMYIK#D)76e`uf90FMsY3L4{pkP9!Z4?*2Q^{RSdMq?t
      z3hluvf#dI5*FnI18Z?w2jhHZVA_`;anQ*dptW3Z|N{9N|R<1t%=x)wf=DJ0>Fti)s
      zlna&WBY|9KBk|y;@!<5?)UFf_2fU~2QzaX^N2AcPfVnveItoLnjBZBS$kEhY0_)gD
      zGO{!C%4#&_D3k(+tK*Vrzdu_}bAZb1mTSWVQv^=pR+1}BvRoTw#YS?>{?jR8J2!X>
      z*Mb{P1O7^_^HWQ3`nHTzk6m(WNPea<9p%jKB~1XG!ovbs!Mj<4G}!y`AmcC#Im|C(
      sb`jAs)?nRbHel1?7UUfkVB6tN{N9B<_b$S|!%~c8`#)+O;5P+_U#>mIV*mgE
      
      literal 0
      HcmV?d00001
      
      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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
      VWdnX6>xyO?B<F=-D5S=_{{zvO_hJA5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8O;a3I6g_W-`J@TM@D(O8P67s)Nx*MKA_0L!k_o|pC`5@p!*l3VPxqv|hs11M
      z`U~;{tZZCpRRU$GGF2|LO4n|6sXN`evAnOlr@N;aj0^hX^}XlbbMAR>`01Y~-vM|D
      zl>{OT`P=fYJXz+lW=^gcdYv2AXN%j4r5me_dR;fH1UeWpc9be>)yeDS+q^=nafYEI
      za~V4MF4wG8y<t>1L$(wKm}ZFW%4&l?ChKk~hBHoFYdiBhRF}Iklo!9CXo@w%5FHy|
      zXXu#Mw|N>-WF$!FN`cBrNFbR&UweKnfNAt%Kx7Uw^p73xb9`MO4oOI(lcBq$XneU*
      zD|2H_E~_>*y&|jYvZ07~cd^6TQOqOgw5U6s!1D~Je07!^s=A^pn#GO9dlg={6kSW=
      zG{r0mLGz}qXuj4kt-PjN`7+OIlroXVDGUo5BOw~AmZ50XX`xiyNhZZjZmkRP1+_5=
      zDI|pq1qnr*Bl$j64Bj+@BNoF{P#YKYuv&*#MB${y@7nd~vFes)=o=e998S(r%oUjg
      zaO9;KZ!)CoV#S3hxShy%t;x%VT;EYD=Cp$(mTr(e$uKInIkPH5um91DXJ7`k;D7Pc
      z7*0@=S7=`>k<S!aRqo4T3=ZjV->wu%kTW}GM~1f;Qj|VtuJL=8u;q+|i<lzjmhQwR
      zF-M_dY7|P7a6*ZsH*hn7MRJetiX~O$Rau=gs*M`Czza;{GL{l}w`GSqRU}-&Rhl`!
      z(~wp2Vq0%-rpW-;B%H-y8VksfDij*rtu8%=1d&>kt2Wa3&A{Nih;E9QCtvC{$KnhF
      z%?XRS%<Hwfu2J_SRG;Y_E@o@|ki5O!>bsI+T3q8as<ZCY+no)~D4MwN@rHzTd_Y`C
      z;9;lJ|IA`IY4Do98}fV;RX}b@_((vC(KZh?F}vn-+IhI7h$A7_<j}I!C&V~$ngoy1
      zUyQC0rxaZwHlTf{GluRx^qo#Jx*nsq5<2J!7%1$cyHI$Hp27ioH|VYZF^+#jUn0oS
      zHA`{85?!wnUJ3oUh7+_RIoUXg=jcr!54y-Y#YSjtR3I0BMArdMZDjNNIP<hn^y)l9
      zPq<VLaZ1~y^et-q7L}F>v`jXt*d+%XShpk<zzY;d0})1Ziwjz!ct(^OEj+?;#@HUl
      zeL}}<iByv64!U6kkTV`~2IpPm2~4`k;w}V>5$NdG^x)_dw-@gRG>Lhdyhy)?j@swk
      z<Vf_ZQ0C`>%!rryGG1{rFH*diDf1aPCBLu}^Ug=FbB0&(n%xq^>v)5jWOx%(F4%dx
      z3l7ojTVVzd0)0fiJ}!8vGj3|1p#KB9#BC36KSV4$8^-!FfYs+=y@L^IXP(Ln=PlSS
      z+@uvTu3RxYyN62;&{?2ql^&w=01F%YSbpl$cAU6JF5D+Ce~TeJvFkXt$axava2+dl
      zx9{Nw-G$pd{aLuz?*qO1`mbW`nVCPg&3ylV%>0+OnRK|gHRoJaQo_H*J$&ekkhbOe
      zmE8GTfPBg$pQ8P9(<V;`%MoxNhv9xFxIdl&SM*MfDSLjPQMK7!PJe&WzcqgaNOpQA
      vxYc$)^@OMLcOco{PoH?(e8yEMZl5S2J}iM4O9uGFJ$d5Zks*^SA}Ie0H8Tkx
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O)mpc6g{^eN?Te*QD0>tTB5PAA~r>kMo5|cYrVA7)Ek+3ZTJQL4hfN1_yOXt
      z*jbDFrmc^piN(y^`|f$?+;isj^Z5n91{NX+5V8%?7KMrw$}60>&XsiajU~0ScU_fN
      z+ICa~A;OrCY6?{=d=CgoPr9~fTGI6xcz(D`pd-R?(NUfjN?W4Yl3{vlyx%UreGr1O
      zty!_uN3vLFZn@W%N^cPcwryqW9m3{H2ka}CwQH-|)_>P?79mu0E@TuzB;$x<lrYhU
      zC}$0Ut;G>VjF2eVN*=c^E7Cm^m8K-5N=}vC3HHc+_b{aEwntd%x5b~_*hcWus~MV~
      z@VXWVvFeXuLb@h(FZ^Fgu*^!XpU^K1%S6jg%dN_N+bo^w@%&k4-K>B`wj1PsA3z3S
      z3~(3myFsK(27XPP*Dy~;xI1N}!N>BePe|m~9+A5DLF4=$@ka+tbjX*FFu`Zp4jgGr
      xa>o}jg=r=;RfeAc*E5*y(iiw^X5st;Qg>VgV2I6LK-njZcK}^N!kmwq{{mhzt5*O3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TTc@~6vzKl3JYZwq1>@r5w(R%z2c>4qM)%!Q9=<POiZ@zP!^ZnW;;bm`~+UV
      zh!6OJ#s^<b{7}ZTv%7TLuHwV)T+aFZ&zw1De*OOb1Hfh6Q4nF6*w%KnY>8`TJzLaw
      zY6ibg^SrrfDTp$hkY+<OtJx=|ZC(}%dKlsX$aiPxS=3Ek+-2xWr8gL&OIC%)(1m^#
      z3VIm^3cAT3H+D+gUe`(nXBaA2WzE>oY~5LVn^Cc)*BPb?fgr6X%P|aAxo{#c^Lp9V
      zYr?V_5~*~MX*ClwO3Z^@Zi*roO^!lMr_#@ZWTz9+!$dFhO|4<LB6+jIU&~zcuJo#H
      z)wnJ8{wdw*MABnTY2WUtJ3&{t*s>}us>!wkx4V$$2$A<H6<z3-sTs{8jklq`g%E|1
      zeAzOozNx%-mD($j&F^ScPWE1%jO%+fDjcJn`wUB~NE^dU%Dq3?C`DoGW;NHL;Pk?b
      zigP$mS`=%^(CT#ialdR5mYca4QkYecrlx5&pfstNLx!QB_%&X)8g`kEGyV7QCKuVK
      zYXwrA$0Y?>zonhT)-B6;sSA}J!xgusyaIa$D!PBRfV-5srs6sl+&sKHNP36xBX;CZ
      z-Uju%QxT{2n~8ZBM$Oc)4Tj^c$=6|s6=j|eb?42*Ti?RGBZD&_n7(d$*)baFz0tpq
      zR#_Sujoq_f5&J@u2vqv_$jv1jqq*uj;5Y_oMHhrY`a5ujMhA|tediw_9|g$BAvuKj
      zk>qM9IgF8ZGV-}C=Ce?86l3jV$7x@LlH>molZTQMm^?D35lT+s<dLKZB@;O1kqb0N
      zLaXvdlB2HGtBO;%(?}A-s7<Cl4U2ZWNFy=#6Wwfo_5f$+4sc;5BbVQBF>`>c&7x0I
      u!vJp)#XFk4r$+ferT$14_(_ILx?+bR6S#q!6l#EWZs9fsW5~&JF8%@B8A}2H
      
      literal 0
      HcmV?d00001
      
      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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
      XSEk8a^YQZ2Yv&0sLK3EnHJS2XTlePM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusJqyB647_Od`Hh={i{he-#o1AG5)=gY*Ald)yh{5l`qv!%0sbg4Rulz?kmShS
      z<!<-O6~F{7g#w`;>P)*HYm>TLwz2jip6#{S@iIs)8%`7)LOVZ;1b0_n$i7u56FND1
      zv_a&~GdA{3A+)j|Ey7^9{Bl|+@qrV2emUjb>1a!+%}+ibY!I7Np-$-i;XJ?moC#$U
      n9}}M!LBxda{|Mu!jQmR|N|hu&NhXDgY*pDD={2c_%mp+bWx!H>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OK%cU6#gy+rVImAY<;yNwA%8rsAXY-ansaCLaU|?(YhMw4V`8>gTp}DjsL@6
      z(5)tl(S>nG;*T<(duOQA(x3~5d(J(N?>pa_`Sttz4*>VErXa+ye4zLBN|WnWx6<IQ
      ztv5}+zOP$tUN^cfx484tv5$@wgc%lOY|k~!%0{1C?zxC4L++o|7_^RKcevvoZ|R4e
      zAzha_Cbg_=yN+SCYYfpxhGn>q86M`xuRYHs$hAU)A-rzyaTQZYXow+6@cmlj1SmcR
      zh8YbCrWsOo!{S@L!zOoj#5@E@yQP~A-7$piJHzh2(Pi+fPQoKcNVKL+f2Ise|G|PG
      z**_x*rJd<Ub>$>I!K5aVy1H@H;vLtpt*(N3hHOBVQH~J%G)%=!+)|KX$XpN_D6b)l
      z98IXr-BBS=#@T#fTqzYxxTD}UjrP3A8kVs_Li2Y$-J~hb1%-amJm4+2R@hZZm4b#M
      zN(^!8Iodde`BA?M)Qls7yBe<I8bgGOO{Eb8=RJZRAV%thExC~Dw%v1D{D~oi&rWzJ
      zRs|>I2;vm|B4UBW{?N-M>=*?2I9aa{A`cKRmcK$PmcAhMiOdi#(K9Kpo>KZVN_dVm
      z`LbR(E@PG~N|a@pJk8+>WimmI{;!iSOx6wA=)K>lS{g!OCs0ZQENqsCNEAOKHALnF
      z$+9>Ou=oKp#R2j^5h;B`IfTE6(o_+6jRfA1M!Q(U+W@NSDXJ<~QK8-mtl%Ee7N}@B
      h=qX5x8-X|?`hBE>M>i^+d$OSB1^5LSeUe1fgFiFIB5nWx
      
      literal 0
      HcmV?d00001
      
      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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
      QmH36JPT}l!sZoLd1OJMS2><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcmYL@K@NgI3`Ktx0SAq4yn}8eUP6~HR2J?An2;iwNgN>YYA!s0hcXUC;-<g-{psub
      z^Lzo=VIE*aSe3GsajK-Yal)2UuDE^#@CeI(RY_gM$Fx*gO$fD8xji&Y7_T>1LL^(m
      zIqRbLL~e9_v1$k;1YvGxGg#tentP`9Tq(lhkK1-6pWv>#*8tDaC-7ZE2!0x3+Rvg>
      KmyBE;VfF>r3oV8K
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_e-B%Q482`P?va>7$DjLdGG@2<a!uo9nX^N28x|kq}SvKqrFtp6r%&Z@Gc3*!$
      z-`#c5jdlbwJ9X31bE?xtx83(A)Kwq9_nl#OA?SF~1-vuQ`#itr_k7O&@YmPh0@#P^
      z8WI9e%$e8C{FG%ne*V(g!YQldmMu?1QedOHs+i79espTiDg^?K?hVKC1lkI#@A?Hc
      zSvO18wZL|rg6#*EQtS*BL;RuD_cUs@oom%#EbuIIo@_#O+s%*E#MElF{ZM7F;`&xu
      zKwPG2sbczm!8J)(U~3(v!P*6l({^BaX5dn3OQ=*0>`Hzll2RizU^{kjOki8rngqHh
      z1d@YHOa|nrV-wm1a%=0>(Fn8FFReEeY{x2A=cg=h+?=XdGKFr*tW21mE#D(yGMKgf
      zIF{8_A=8BINDfa+4xIw0AD2VOYP~XaPh?<VhlcGdsy;r;s+4s+i=6^3rK;yyP7n&2
      z%C7FZP(x|IgxRHIH@cXo87mlcoxr*o)YU_vV})Ve6|I?78Cj3O)&D25I*Rq4WWWvR
      zmA?7}8oIhCn&^A4jwWOzi~Twd;2?wat>9l>E3iExw|+h)++iIpXq8XT>u5xZomhzn
      zBT=ewoJz8trN)aonxSWK949oqB(Pb{*UCB2(T_e2gY~zgF*}lF!sFN42pY@zUXQKx
      z|FRAZX)+|nXgK353mo;bKt}e&@;=DK{(KE*1-fc$;e_Xzw?>?@b#t^Dj830)t4`UE
      z)isO?7)o0WW6>R}mS%@4);wD*)=J}5CU4Mm95*neU&C~68LnDJzR_#c7M5|t^bNBj
      zb#56dtL457iWrk69%nN~6;s=ctHgF@IF~Z=2^|}-QNty&pK+>r#VJfxIb4SMbC&0;
      z!j-IZrsrE;1{ZNzBEKe3{;x(|FXijBW&M=aVk1%M@O4S_4T1LMdam4J&3F@28cc4M
      zT3VNPoQ@K>HMLpOFLEAL%U@1oS|DF^jd|Cz;;iy>U{~ZyGNwIu-jEBaF3(JA0b|ma
      ztz!-&+=~tYn^1wHfg61HsvMrOrp;=lR?_9Z)ZyY9`)#B+Hh!WwI3&<rcuZ5d(m9t=
      zo35yA-NsEj){RIdGv-#kk~M70y}O~7*glykY-bZR@Qav2LQW~45^@&Q$#tMk&Zas!
      z&+25y@RXZk6WaKHGvAIACBak6^@t^GxvLbnDm5v-P3U*9jZf{N8aj~W8x8QJf|6kE
      z5!e|d6{&QtXAjYyT8;KDt=>~;MyMB~r6V*j1Q||3k?f3c=O|0kXDe}gzrr(%cy0;Z
      zHT0}Xz=zcSh?XA{`xEMa%0>2>@|Fv&V{fgox7NrTu~qsSl;57n?`@(r(r-4mggv>Q
      z1>|$Ri`bXzNG{+|ZqEXatmg0qJ>BCzUL@XqY{3Ki{6=v&7$U_SvN4Bj%pr@Tj9->D
      zix-HHBoA)Sh|N`%6`&(`4+HNbd6#E?5yx_5Gw?Z*7w=LrO{ZINlB%+ZVPd{#Xb*Yw
      zBS-Nk%6}%IUlb{w76gn)37o=E<Sfrq-Zj$6@EtycfGH*Xwa&OPHa?A!HH?p}HvVl*
      z<1;i);1xQOK^IhSJ|u6+;ff6O5gNsvF!GiMC{DJWTf+J8D7f$low*0NI4QOGH_X37
      zEZF2Ct}Nh!)VPnU0v~{Og~>K+2{X#>K4t}K?1tIM!0+_=2MhQoXXS5XMUuZRQrICh
      z>=J3@L=!)~8SEF$I6&E9q2nm;2gF947Hv2$+Uugb5~qfr<tQ~pMkxoYwdWDEFY#7E
      zw$*U0joM_ZiXHqVyOUqGU1$-z6=FDktr4PZSJ^7EMsLH5u#ZL9DT!Ivni=U)>}3M?
      T)nTP#tQ33>ki-heEP?7j1~P~)
      
      literal 0
      HcmV?d00001
      
      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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
      F{Rd9W20;J-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_bOK%e~5dNHmY?=fbk`^e>&_bJBSaC$DkRVWjNLwi_kvMucR^sB=(b}onf5a7W
      zKq?YHfFFgJbxK(tYA;+oo^Qr8-#q;7`^i@TkI@d0V^}@lhdhh~*Vdo0(M}w>@Hrvf
      z`8_~^q2~P**Q0PZIuNl7P-Iy0=*&qKc8yX5OQQpn7&b1B+Z{_a3{YlR&NvUGm624^
      z9S5lXZh9fC9O-Q{6by}#G7(p=q)2!YkB@sMe$P<v{YkUKP}+=@)Y3g=$hX=9hC-J@
      zl#xfHiY3$-iksfP0ETN-T*eiK#h%n+XEupMvd<$$8S9jSs{v1Bs-J>2sjcJMN$!NN
      zhhe>yA+hHYsYji52Aa2zc$Hrs#bTOv%m%naC3)`Bgs*qcECKE@G=CM<RovPg<F?F9
      z56`?9DkI_g!kSqU6V*5WpfG1}?x1}EKe=k*!nge%@oZ#bKeJSk;1h=af5?&6s;4tI
      zk4dSTd^pT(-nK~lZ^v@llhz3>5{4(IdC#rn?}wdq@N0>fm_u<vhVq_o<CaXPUduQ?
      zO6NdZPkV#{E+N1IDx|HXD?@*(h!Pf2BjhS+A#!vAl`qJ@`;7W0EPo_5hwF5fz43(P
      r2i)*z`pH&slOEq9y-4=kxJy_Q_mSFGvF7CiJoIusmE^tQU$=e$K|2^{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-sW-5Pe%~qE&1CItU&-X?rnv6M8e~si08keUl97mbhCsYpH+DgFnC@B~G?g
      zf&|pdzMbLCynQqK{_*+-;2OsvS^}3dxsXvpQkVWrjdrwj(Jg1<)jgi7A`8(L=y`G>
      zbsjw=GfJI6w<K5Na>M@U_m;!KM4)rGOlj_v(PfBjf%973qcwA~?qx#GeA8Gh|Dkr#
      zAN)m5;8bSWSJQaP4rruGN1Cj_&HBmS*w|U6^I^SfbDj5aX6eZ+sF|@+tt`l-p#Q2i
      z*VR><89dmrdA2FttAYehYTNOfysE|=2ncNOKL7$=>?Q(^Lyp>vTb$`&hXa9K?0M|2
      RaUVS&A5_TPLq1zL`UDvEv@!qy
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4TY#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>Ioij3XQk?U1
      z3-a?)^GX7W@+&IY8CVz@1i)Hz67$ma{gbj%lS>#Gc+yi#;3^pz#56R0z={&fOZ4I5
      z){G2X!TF^{$*FFcIjM{c%J}Wl1DU|a$iT?J40JaG10&FCRt7c@i-8?TGBI!f0LqO$
      A)&Kwi
      
      literal 0
      HcmV?d00001
      
      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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
      TTXH@@xBeCi3Vfz`;`9Fjf#uIZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh1hd#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>IK~!R9UTRT5
      zQGP`wI|B<Ng8*1pPGVlVzJF3yYH|r915bKt30x&3gP4Y<4_HxRd5Jz;+?tVrD>%Qj
      sC^^+FGbfdiK@O)idLYegj0}tn%s|&NFfambWo2Lku^8BaBohM%0M0cz!~g&Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl(95IvLFN$R-igN8?;(3U=uAYp;TDpePhMgm0vsgOl?H_27%$gwN?rs5y?
      zl`cTyAt8ZSvEU#06~y?)4JHCLo9j7q=bV{2*FS!J{tDm$DtTlGy9041oQ@QJq|a{P
      zEBRVEk2!NNjt|eIuktVmWnDZ{uIK3F^Ugqa6=5-wp)0($3?n!2Up;+7pl5`67KoJa
      zRa<x?Y4(1ueR<Ow>=8<*VQ?z?Ldjku42FcQ=H+A53AsJjchx>mU73YYZ4-=xpeHS4
      zv1r4_67P^uJ>mDA@dEX@aG~k?vNalZWcX5aJV{t?23=lC@M?^cq@hmSh)|uOzqTlz
      zItoT%mjz3GsZzcYb}F;z)GZKJZQR5y!W?THC3-6t^z<%y+$L;ZZYN=hrC$8?5OdsU
      z!-j<-!FHoRmxOGkdd!q)nnJKH9y16TjAv`Ov4Q2(vf7OM@mR(NcggZEn87Mc<QU~O
      zD!_<ab8K>CW1eqHjP|)Q!{1!(-X|=))3wWdS~`2k)eT%>e05xf6_goqJ!gunLAZwN
      ziPl4nfkN#gZhXVqTdvC>R*UBVT3X50aUoG6+?nv5gm2c~V||)@oFbbO@+R&wDPH7J
      rLN3PS?=X$??D<sxZc3s!k=Xi|7ay=b?S;o)4FBWBcH+g3?zsCKx;Wi-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TTc@~6vzKlT8iy*DMD350R`!nOR0E^^%CWhU@B<Tl4zotmI)oQ?vmXpQ6Kya
      zeh?ot(I`F`pZzj^1NF>w0~J>7%XVja&hLND|D65)^UGHNMO;ZD#!%eiJG@X8+zrgL
      z=DA9|P=(ucv(S9ME1p+{AJpac(vEOd5^;vf|EHN?hQ2`fk~<Y5NY8z=vdF;hFmw|<
      zP~24&?leSV?#;~b)7QU#Fm%=G(%JBZ%aAP_m4=c|VZn18QB#B{F?3#&u2eS|uIHK|
      z|E#|hjj<~X@da-~q|kvr3l=ieS6e{4as&)VEu@fU=q*cEtTwbs4|&xQ4E<%VMlEw{
      zoX+88T-9a3FyBVS2OOu4li^$##@ooJgsW{e@}voKxVu?ct8S6OCA*TsFit0Nie|U(
      z|1IC=F9QoB7$yICP?mvWn8-yDTKv{wr6kTU4D7S^XGtbT0BA0Od__KX<m{C+#xQAN
      z922w~QVE|c&!^qU*)1|F;eAO*Pg%&pCeM^-s%99>*%2~2wqRizGkWW2*SU0QK!c%k
      zf0*)E2hUrWLy;k2R#cDK^wb*2kb2-X{F+#ndJ#tc{u#~cT!K=U^f|^bgakV2lr*O<
      z#PxE~yS}r~P0t=W-KR($pUzKxLT`ThBl_Q)gaLZ?n7<YYv_#3v7^J(=W;n7qMkh+d
      zahxESe$xUmgC7d<>mfc9;y>f$H;hGytdhtY`f#sBB(o=y*%Qf-$XO#o0}Mqj(625a
      zmH&YLU7TZhOQ#rg3%Xli-B7J&R7hodsC1)UI6%lVygNX67D=E{M-yfb6E-6WH2;ur
      llPZppYFc+OwTttyLv3suM79~WXHJ^Rzeo^<OQz_{zXAP#H!lDH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AxeCHS5Pj<vjf!^mR@xW@v9VIoDk3P@=NQa}WFyHY_-z(`fFC99M$!rvbMRo^
      zF|YUI31E(%ff~aibPC6E$q`xEy+la5OKYQ$?RP&=>{6Nq{ATk^lAzQ;gJD=+Mvk~z
      zM>ix-8fY<$N;H=|vUUXtS)DNSy?{r4N@DH%<TETM_CMMs+iH4Y7*s?jijzW9ndc-=
      kJ=*h#7{))X&$OoU$xv6-RG+A+EC$-pnL2tZ+|)R_A3RW5VgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5k)#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>I1B&u1D%lxW
      z7#Re>igOb4()In5vQm>v7#W1qQ%lg*GBRjuX!;N~*f}FJC&ikPfh#z_v?w{%Ei)&T
      lkwFyQG(C_(Y>W(y49q}xGcYg$9m2}M24XR=14$+Z4giv$J%s=O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUm5IvVdp|GVbtyNKL>sMimCH6%P#;CMS+K?K9@@g)4Q@2@nlih{*6Z{kY
      z2TiO-AB@lb3jc;L#&a)Qgkn-&?#|54IWuQwe*XFP9l#yjP9q_3_el0+wXLKVnz!S7
      zk$M|dpD<GI+f5bpoQ`_jla4FfuG;A-FG?dRuzoh!Bn!-kDsZIRQbFkW-iy6$0kJPI
      z%MxKEy{IMKu1X#M{<Zaf>RnI3V!kd~cV!p~EHq3dS9*t46RHVJKX5!JdMNOy)c-q)
      zh_E)sRBj0*>;5a1#T4c(SXiL4NjPie)(iv|Eo6}sm}@wmI_SP>tKhkwlR%;2cPLs?
      zI{i49j9xpGbbs=uM<-9|nRq&+sZ3525?MS{QN0@k++e)crgBv$@&j@$m&$#%ZsfSt
      zy+{R;KWbTOykcPmR|QsxZ~EPU=Mavc2st)SI40Xh4r{oc#x()^>|2UE4lNXM<KK>k
      zuHwJ_b2GZ@k%L-1X>$myb(SoYVGGO*bP6nu<UVa5ab6r{wm*kmM{oM(_%KGdwyEV&
      ztl*IW2`WfonqJy?86@=$(M~dEVU};6-ZN(E{G7e<1#@=g7=@1pu*5fSer=Ozhu~eD
      zV{Embj%A#uM<6cXBFVI+3nXY4aVe(1XM8f*pK;m#gu+*>Ch&pT3Fr#CLEykJTgJ}E
      v%v6k9F-w(SotM%Kr@^fuaB2YNEydui7@T1X>p!q|8vk+#pBdmcOpBGj_0u&h
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_Z!D_-l5PhT7w6+${UV5#U2G6-QP!NO`0^ZkkkjRq2>?ZWvdgurAqr@?>MNpxX
      zUS^k>H*e<6``Uhd0+?bLp+lH%Ol{&No5DBImPO$A5I<`sZT}fdom+mBvd&j55v~ZM
      zrp=jR9ltI&Yy)Ai=5T-#s>k`SiG9*ykJyegsWbi@WOCX?xEFS8JpU|`{of+3&}6b8
      zj8$t|iE!~PIn%i|l;R109@#2A=&C~Q;#puZ%9`kTv$7J)FS%pF!)1G(_IK|S2wk-q
      Y=&D;i^s#p>!gcfBV4xMkt;P=Sc7eF89{>OV
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh45Q#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>IgHwyjGLusS
      zit@`cQ&NjSGM;&9`RoiVj0^%`?Kz2g>H7XjS*gh-><ny-48ll;!juC=(^E^JW)&ku
      zB{VdneXyvvW@O+B&Mz%WPIb%7No8bEC+s3UkTF2(85x*?m=)+tMxYbf88|>J22LQ!
      H#J~jrn{i6#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVqmdU3cHR200R&<;oiMIWjrSU@oZ5-&|8@nPB?aj?$BnQ8T-e9%NN
      z@xl1)$M^}xb<PZRq!0AvoU`}rwf5SV`Ss`f4*<)!lR-jY^}y;_<+`*SU!M)v3FOD1
      z{E(h%_<kn6j@^(?WygIhn;RYJ1R10R=1+&}V1W@|dbZW7Nzb=k=f&2#fOsM>$OL|1
      zIYG^8wPpHudgs-?lb91Q7_U-RTbAz&jBe{pEz8+2Yga{J$aXqb%Whf$g}r8w*b^AI
      zXFGQAKwzyHLi(x8uk_IGm1+X1s@s%#Br#@S2;;1`AJR&xmV>~AfjrKr*I5Gw1_g$<
      zZAb33-_@n}+^V;vz}U9iU{fr%hIZsk1#fItbGLu}@wu=u*{F9US?r(0Co<>h3GcWc
      zsCHil(cGgUj2BBieNtoa{|_rfO^OYxw3o*<%w=$$oA7UvyY&Ov2n@`l$jQm~ZL3Ai
      z6LEYPQYmq?q9HJ&M7eFRA=mug{UmtlSYv;4&vQIC3@o9{;=9}eg<~3BL?j}EWdZZ_
      zm5<s%HB+`<ZF?Snm&msjuB>iwvZ$)chvjVAY9D5MYl_cyN#({BYEJV1O=1dZ4A9EZ
      zN+64r+Bp5@zVS};+Yp9%j?ii{CdGTiT=<4jbMX)bbNUdIUo_$z&oTXdgSbsHJtFck
      z&eLy(IOe-RiwwAkX|k%9%9zlv8RksVdkL4LjAh;`Ds6s6;WHlzs5DA4u&b$!Fd(89
      zEbb~jO749|E8?62FC1a^6OA~*OHD8t26eUNP@*E0*Th0ZwW4hxYaU_oCvKjUQjbZ=
      ZcBQP~R)mk&F?mvk69cEa;M-d4>R;%$NNNB8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh1(l#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>IgHwyjGLut-
      zQp@tQQ&W60i%U}TQj6FbSQr@uz`Ao1^V0SGld@8iOV}CM7#YODqNOF7Ir^?;sd*(Z
      zEsP9&#VBSmGFWN&km>-ik=B}Fj0{}C`K3k4scxA$sf-M21YN8LvI*!sMh0deW(5WU
      TBhU-%3>+X911FGVV&DP*5~f&>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cO;6iE5Ph4{y0|4k`DjX8s=@)%LoK-U;2RONl~NToRS&ss>=77@7wv8=`k(j(
      z9Qp(Lqfo~iJ48wvIOMWp&Axf_=41W$_T~?OJ-qW!6Zmi@a~bqVX2zY7$}C;k;D9}?
      z!FPvro<w9k%n2+xd@8e(;Ct_kBJ1Iaz}EdN9-a#9-;b-ZwG(40BQ4;|I4->cpLg4L
      z3R<Z&CLA~(Qo^xTc@mQjn_YngO}RR!A@i4+Fn6231nQbnlID*4xa6KHvUQrIaaqks
      zgC}^39R3N}q4w(;@sBoiT*6fKrIsJAsc|*EusJfW!NP>B{qQQHOPi>Smuf{|+l{nu
      zlQj6L)Hj*^uHwxQDbV1GTYar5s|t5=$q20PmU$e<S4&!2r8(2aSWJgU6Y(WS?Tk<S
      zKQ#WSG{a`EP6*?D+T=Bz@M@|`1U@}vNM#mNg@whe-)p*1IZb8vJF2fEI!aRFR!x9@
      zESk)3Rp1e7cnpvK0`vT$=i#Gx+0XFY*#*>{UBnV&ml-w3_5~wWvF2{p@zU7_UOBsg
      P*Ur8vEMwpDS;OW($?j?V
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh2s-#Ii*Fq}0T`VlbJUpI4GvQKIhz6mf>IgHwyjGLut_
      zeKLznQu9)a*cn(D83e%kauV~>_5G8wQj<&A8Q2&ZEQmHOD77p<J2eGnCeXlQh&7I7
      ziJ3WxNja&E3^p1*M4JcK=317TS7NOh#>l`GoL^d$oa&YdGD`uEhx9<U0A0_>zzoE!
      Vz|dg?`jDN01H@wB1d>b)TmaykVqX9N
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK+fEcg5Ir>vtPC@<u6V&4lJKB_F6iT`4~#LvY+U2uKKRx<RG`Vwv+3?7`~lxX
      zf-&*I5Acx>GS<!#i2;+vOs4BHbE>M(sh_{T{{XO##To)aYfl}hW{;I|)tQ&Z^Pz8U
      zNG2Wm8QTM$v&#nkerf&EMw(^mt}eD~2njF7C~yv}aD=*Jt5wlu>vU;8Z@wkadqN@|
      zoma+pRWabn)04xa{ngVW!j#|DZfTA1vOPw-zvpcU{FOG^zae~i@*nsSq)=w3+3D?Z
      z?pqf#PrHOLEw_0Za=RE2W+F_W5hKP;!l$wNj%d21`sMv*+uHDl!G4eJmg*HuXtc{*
      zSXIKU#AnHH$Q|MJ)o*^Tv~W1%mEB=~CSc>@NJ2oL*%G3x9N3)S>ETEV|6Zi$Ln#UI
      zrZH^OLOI8-h6Td<l{F?z|Jh0`iUbp~;sNeq5>pb@s_0t1KGa2gk~c;o_PTf-gz^B%
      z^2%4tF0ZUU`-U6Gk_a#-XCxN*D5W~MCEnwzc!JxwBay&x7xUFWi8P#-uL15$KEMM!
      N6dOq!!Xv?jzX3>z|0n<e
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN*>2N76g`urrp0MO*+N;$QlLo-q3ks50i>1)5P?Vtf#jqka2xDmJ5k|J_zRFg
      zs5~He<sbL~Bz^&L#-5l!RVm>ip7ow{&s`?petr53U>4U5Bm@?gtd3P`NXzlVZ_{-G
      zxf+zNbEgu`Ytrl3P3hO#D=V%SOkS_lYWF;M^_4#0ykjp)&p=8b7vi-n=UM4)V@Wmx
      z149C{eY5-l+az$lZ?pTd<1Wj^s_h5Tkskf<rDt2My7YY8bso;&5D*Ij8EWza%L(dM
      zt1Z)wx$lR5h@VRWn^v?6fm7AKX}jK*1%`s>wm*4dAoFfWmH9>6v4hJ3_Ei7$v3>t0
      zvB!nFK&s*{%3%oXFp<NS5hRf}F@{|N$*DqJo$NL-imX7kYCG~y`$a=~53EK@3XE0V
      zCIf6S%v|ful!}5twSR}Y8a6B|21l$2j6ah>rR{mr33T1nWQ+CXdgQAO60~yUTv(%(
      zmgW29LbTHk>{e+$ke)@<@@AwlY2pA5G8&C0S!M=MMXybkplY0uLtx7~T7eOY(rN_S
      z|0^PDwDq!j2=x^$w5L5onKLE|C<+XF@?~54RIk$eZzoeyR!i!JUSQN?7A#-JD*iha
      z>s54}uB%j>GI0X40)}>h)Ox0SUtn&40BWO~9oAF1Kn4TnO`O45fi#otvB1yupYFfV
      znAV!x_L}mRt@>nQ<EQkv3NZ_1-r<`SmWlKYTp8rO?6!|UexrApCCmy&f<ZJmj$;@j
      z+}X^3fdowc*x*1er=9@rrMWYPt-P^~tJ_>9IcAH~AF#dn5j%@BA29wdG~UDSXn6dT
      zW{(N{1bex+gGMyLK1^^_v;F)f2+3~Jzzeifz-IA1#;0f2a43nlTqmGVhj<HUhG_ev
      zdoh}c!#EP2n>dQ85SQhvacz2%rfoLDJ+>>ghUs(<bmZ_dW6`3+%OS<-$Rwu7#uQl`
      z!*MM~k%h59iF+v$vLZF@Bd$}V&1l*+oJ`?Qltw}bpWzNd!eVqeCd|ZynV2wx)1*m~
      zfMuy^9uP;xHm_*D!gzz6ntg#Wy@qp%9>z%KDpUOmJMp?FFZq}?j|-S1asp*yCU6m#
      NII7|hxQwev{RTJdDD?mU
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cT~8B16g^W~TIyn<AR>O?2S~r95aScZ2dWYbQIp~(`nD|-ShDVt-ECw10VHao
      ziSdVMlr-_dAK<U>KlpAuGrJ81gfwc>&fK}3bMLul?(O$qU%vrZ#6lVgfqUCl+p0FC
      z<pz3fdTuCRgw<twYLQ)+e%o%!px)Zq@%(URxmK^ozQ?}Twl}1oMp9rzhjJ`;v-+s9
      zEt_E)g978)YkO5fY|F7<S`A0?a-ff<^aI;-pRC>$5Dx@~nKKA2H#9A$B~zz<{t%zH
      z*5?IsysubvGYZ^X>zjHPv?O4}acYhg1OlT`5KUUUcxCXm?b_iTftA9MU;iR!(G*D5
      zybYPf0LBfB;EcdPp=b_4;H-hu$SLcb0RzJ<bj^0<!`AbL^w%S)@@rnxa!iZzQM%Zf
      z47Y6ZU+JIFN$<z1GduBH3gkCs$k#e3_pL&)|6DzS=k|lenvZoO9Z)@EHQ8gq%!0tP
      zSoeSJ%B7fbPo6B5zHZ<Ot_r;UFVEY*C?`HZ(Nxrmsy#*pvURWJH|2d>jmq@#vpBCt
      zfK9#Xy3*J3${-Dn%VOWN(Pbqt_J_fyQfyX!Q(UKzMuzqf|34DQBB?r7+w5WPDSAnt
      zH}X6^<!OL>uGGO;sl11YQe_X5pEO{KYn}msU9PVf@-+wH4bIbZIfCH=F7m_xYD5@R
      zS(lhFLBup~MQN(s)o-cN7fgPnkswcCP&?o0fJSs74wz7{Pmki*3!XR({%{mLlEF31
      z#Nb)(QRWV24};%pZ~_#BpSc(^$I?{M=~B7UL1ABui0*C|#3D+%lrk#ZRci>`AYJ1(
      Dm?(R%
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%Wl&^6g}5=Yhv67AuT058Xk+JK}21mA{Iodgj7HxC<}IDchovEcCnp`Uty16
      zK|w{LMPh+q%SR#3*j5)57N96I_j%4ecl_h$m#+ZUal?frxHD1vY7l6Z<mDNrNuggB
      zgZqpOD|@7~{V3G=Xu7wTX2s1X`o&b|g$qZpShmM1*%>?zCORwxjjYP2nV`A#dwxSO
      zdpAm=;+|lsdpg}43!GuPtv%Q{>%)aFu)Do+1A=)UGnf@DY(<HFG<_cE?5PT3ZHUrP
      z#bcF4#;=1;u^Z)rjf&-eG@5CtM#Y5r<FwB_j<xLL0#*e6jxOru81b!c@3cN6tL@`F
      zT9lOr6Q10cz#FC0EYzEkQM3B@?cX*FCDnr@(b+Iod9HI8*97bT{Ez~-p4RD5h0U)*
      zV3`fmvT3_G!?QtelW~i;xAvL;{t@Or(zCF@bH40+4F_*n`xc9gEmzezhbBGtm8e2A
      z3a>G@Sz|cc{qK-hX!XBA9^N{}(%L7?9pmDGeZXwR(Ih(XjuX9yj}KVEVad~}5Keg7
      zxWwtX9{w(q+oH{<sTl{ng*Y>Y;qV09Gyq2>pkEc#fEKQlRaddf+dQ?PgX@m>3m;Io
      AS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKOK;Oa5dOwaYT~*N`k+uAO<&YWszyB`P=$zugcLv!lmoZ5yJ{U7yLg=n@lWy}
      zIDk}&!~wyT-vS&EATA(gZL6wCITWq5J2N}`ec#ON$KP+?0ocTv1%t5F6Z@j+NfD`R
      z_v0v)&(h{Cj<j;SBa{8Wm#Wj>+l!NQrSRKQC~2WYxORGshw^D(s+3@<9Gx)L&R{|j
      z?KJOuJ?W>{2_rXxC`h*mYwqy%aHQ5Hlv?q&v|(b@fdz*!d&1LNw*tbrgEB@46YU_9
      z_xevfnLH9+D7Bc_7hzW<f%c1FDcube;bzYJ-#z29DoI{{oN$S3ijZ+n)cIIfGUs3h
      zvo<Tf;9wpX3HFXmi#ZTx+}dy}Y+S~ig)4-~zxzrsW3NXrRLDr3xS#m)cA(2%`1ja1
      zGz!7F6Gbv<g+eK*EUXeXPd$A`IsS)G<-$z<ldMS3gDsP73ukz*u=jxD`hK+Dcmun>
      z{u*Pi*flW0`*?Qsi64H3jW3wwST#?_Sxm9V4>8TKlv$d<V4E9Sz&|hG-Npyd085Sc
      zpu3vt+yK+-hd5t9z}O)!4Nxw<FnKXf&OM)r{mN3m!NGUN{DD<Iuj1!19qy417YmsV
      vJ;W+&(>i#Zg^nhlT4P!By*whxh5yO`ojjocG_aUuEn%5Y{XGaPOm6=H5}fNo
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLO>fgc5Pf4OapSljq!dc{Xep&QNk!Bnv_hznkdOiuO_f7$w!110#xAxKRsARV
      z4;(;(B5^=)q#O_+F8mn8tnF3>S}CANyEC)9?>)bn9Q=Iy4!{yj4GQ6I*XmmhTUdUS
      ztWMy^VmEHAa;2HZZ4vfeM?~%3&Q1`<^I5(wp7lf&Yse99{X0tboG{|KQ7n8B5^lGK
      z##tBr;EC93Wp9@Wg%#I#<2!^kGllUif4i|}cZCx#|37fGL&!CQEulk2$$$ofFm(b&
      zwNnIP%s?Im!g$N|#lzlHTZ9{y?FmA;6*!jHu|ikoSuqzsb|b>-@cK?^0~=5b(~bn}
      zWchCk*dac*Jf=HQ{-*rEX#-O@r}KwY3|zz|LTOvXhb|LV%<Aw`|Ll>DE11?WLzqbV
      ze5^qPHL$w`C1UY<JLrXuxaUgSW=@~Pn-Ya!-1m8Unw}L!BGRxxSQ>ha4&CI&{XW*1
      zWe-&Tqp&8~QI1rOHH`3D<m?gG<$0-Ae*?X?_!^@xIaM&u>sWI1kslsF$0tm1Z8p7*
      zGbnS$4>5_e3??H<pm5CIXYhL&yjlMM8ep#e9`ry`ogZLwaUU0IuQ0lg%LC+d&sF|0
      zPRd<L#C~R}Utr)Xb9}>f-WTxwm=5zuhsnyM4g(cjWo=RicRth6;9Y9WOTHIJB!#5-
      ZBLOth3mKq-x#ZS0%=0cMiJ1Nd^j|xXC42w?
      
      literal 0
      HcmV?d00001
      
      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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
      P$7qoh_}zhH8sXmot99-T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DOK;Oa5dOw-9t}?GhCoSqLke-yVnEzL92!8BMj(-r3lh@CUA3-^9oY^-ToE9|
      zj{zj2N*wqB{1{H0f!TF=sNs-W+S%FJnfYeES%3ZU`3rz6SSi9FT-_1RggcNTOtkc(
      zFqO|!ca<%jOz(|`!zfN0tDRnF+YdI2FbTGf3q-i(J{assFD;@#sA;Poxjh;CBJf{`
      zK_J;V(Z{}w6F&+ct=%HfJwk;6l2n9gUj!qWf4}~{{_Xb9$Am+vh__^_(FoP<eyr;R
      zb0}p@D5Tqd(zr}$XHL^J!qJ5re(0w+2@jhGh?}fq(&F^FwobGuXFxb&VGec~IV@P1
      z$1y^#>Gajjq6G^TrJb-aiwa?`>xc6G=;=Vl8yRcWZsdueFPKSYanER~h6&fEFZ<8j
      zxbInJb>m-dYfWde2SQ1Bo=h~ccMrhOU#S0NEpxLMES$wTLb(@>Vo%=j)$3T8d~27~
      z#0l0~7|OU4h$N9o5p9B_pTaa#<|ckWSjJ@LdF5eZ5k-_(pW&atK$#a0LhC#Rz_!)M
      z_?+W4k1Bf}X6*_4nY`Cp?J<j89BnO+QE#n`ar`6O4V+|I)jn?+=OyQV#e;o~Q*1w@
      zv(<2#HTBgrrlB>3n&WupWe>~co%k-_`h@xiR<h&;ZG5K_TA4$Z&@SOT8f;O8F7ciP
      b?_z0x@LL_Ma1C74vI&QGH5x(-%P@ZdUN`*$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CJ#Q016r6Xleb_!?2qxwu5I$1aj)a8-q6nghrAU#iP#C$OTVGcAqRU-$w~q2d
      zB2uKGqM`r^grMLD@S_m3dq!AE3Mk(0zS;L?XJ_~4ukSwqJjR+2Pw;e49je|~t0Z@0
      zm?lOancgOmez6`-4-V4ItZnv(+eT-~q?wPB;EHRFRr03ya=fQQ<D(*2a_H1VaqmyH
      zpd3!3cvsLIoZsCLRGvpkWL^kb?TZRJBSER3?&=yAa5+E~i-LuAXH*4M1n_Z5&=^FC
      z-kI)?b@ob)V@)N4G*t0OWs%KiV989PT=1+o=YQ`_t^P#iJ9Nk?cwI*sHv(M8G9@Ms
      zZnirG`J6Kwwr(ZBP2A#bGrgZ4QebVEPP0&NMOJO=yyK6oS%P3YNp#kaRi5kI#{)sf
      zx%e;Q1@*aS<Ev9Pqs;KEZ~O@*Min(8b*{FEdz@?CuL!#9U(oo(%)?cVi|hrC+3}Vg
      zCs<;(TvX#4n#|beScPo#WXAb~v)H}vXEeT{CHTOs;H<cvQ^yq)RWmNJZV|Dn&M@2-
      td_2SO?m~t;)LbyEv)*cuzt<^_em~bJv!gxSb@Z#a$JtsVxQ~Ze`3?40r#t`v
      
      literal 0
      HcmV?d00001
      
      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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
      E05&icG5`Po
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iT~8B16o%i~E?uZww4f-pMN!bQ74cgXV*(0E6C!GXM2UfI+3I51CEHyUFZ>TC
      zCK~j@c;l`30mcu0fImuoXZry}yx5&NGiToOoOkBe?{6CbPGd-eB9K}zADIKTJ1`QI
      zN|tBMPXzu_;OBkMG8Z+d0?B&Dm|gZQZ|lB5`}NVW;i>V-*^#NSvC-SJ`P|)60g)4k
      zUvr&`Z#w?8Sq`iSpg<r}2ucFV%!oi!(G475AbQ1iZ2zi2XJ))!X={z4zG(sVnmcdB
      zD6mI|js&6plbn;;yT@(Ex)CfEEN{{*lr4d_akprer%lh6acxocAJ`Rvu149NEEpoR
      z8<4Z3k+zL4h6p+(RJ?_F2X(X{M&643lx3Sr<)HF_3K@wN8+}r=mVBGOXy~SQ^>%X;
      zjU6d+RL3qv<*Zjn2lmHs9DN!x0(<Kxwj$^-kY%mMp6#=ymYEsJ(FS>{Uq>2U#L0vU
      z0{y(3LJVhcPQzKc8S0fy=l(!`x#C-kI?m&QK#S>l=5o<pS{5*BPKQ|&g$1kV59O*}
      zY+DMQkGiE&#iCo0vgNSjyc>8$iw}ojojcikQWBt>z4C?dOQH!;Mj9gp%}}MEoU76j
      zj!oR7*Zj9K8s-UwV~deZC|JktRR#*$_>YAfHz{!o?TkCBiP(#MjCe#kOBpGbsLAD-
      zBQfGeb{z+d)Q{#bNN!5DhMV`uFv~-8q3q%6frf0nCQA{dNUX3oUIE8L6joX2a7bPZ
      z=RmLV8An#2u5#?*myF1TH5@Y{UvNY&uHnQcLNYXAf%ZIPXNx!hhw?6ZuoU9xEI`p3
      zPB&l1$$v^aEG<nlWF=X0<1I8}4Fhs6*A6D|=h^c~;|}NQ95FWQcd&WjCEI_6Jy>B=
      zuhEA$TO2kTRv0)HUZteS{zLJCN-DJm(;<SaJO2({*;Jh({S~J}gtSC>k3<czC!0#s
      zpG~H!Cm(3*M_T@gJm1id@3@GcA(v6D)8HBmpOo}zkU8>-<ZO_$2;IBHNWta5@LTer
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7F+iw(Q6#va$y6rL)D7Uuk(v}KtXA4zSM2aF^T3Ia@DJ_=!beW|~cXyiES+OQ!
      zd^TRfyTn8jUW|$<El~prgkUuK;3e^2AR3hiFNulqcfOt7PFo)IVds3`nKS47e!p|R
      zZ@>KK)9U~p#>of*8rGaMUo?Aic28e9o3$M4%n>K&T22HZ4UN@z6`zKcd-?}<4-Xzb
      z)i*pa(0}OEQ2J=U1}&{&Y055^T(jtonEA351lpk?XqR0L%LnJD>D5p-riy6@97|~k
      zXY6v3fpt4`#hm*T%On<l(lw$Xl(NrQQKoIu(TJ5ARxJukOWd--T+!NJE{s{uVRI~R
      z@q<A-W9COpCntN)8FI&SB@NBBQu77qZ9ot$I$E)grSo=XLh>jkd9!%7=fK!GE93S?
      z85I{i>ou(Q@c7?%jWiH(yN(7#Wwk-a66mseK*v(lF?T8VGBJiTdAmd#ObCZ)|4SKb
      z(#=uS2n;Gxl`wsv_C}Jlh#s4DY{7&4h$zkcK)zfW7g!JJ*d*?7Ry_51gk2hP9m_1V
      zt6FEG=)z-yecJ-;jLH?y_I8a(n(aDgg=r#1>%1si4>qtd&()TaHEBAgYdcXqiCqz}
      zb<5`z8k#D(Rzb(p*sWp7S<5}>*prsyPHEWWSE^dgC$8rbaw#2q1Yr2Q%q8VYs3u43
      zqLmsq9pXwHOQq=(tZ4~;M$kN`V-Wi^G?<QKPG#&#RyF)pz5b<rRjV#lAjlErNZQ$K
      z$>MAV^Hx#AT7L!)WVQB?)P6pSVH}BoE%Ym)^wjYJMm5w^2|>=;t52lU1TPH_mRxf2
      z515ypZ5^`9PR1I@$tbU!Kc!nlZgfy59yx?Ktzp!07vU~|dj2?fTtlW#S<W1-%uXYg
      z@wuG4-TXQrUL(1p9kW<*g_{6Y@flSwPB7I;tmb}AC6IP4calg7@D7k8>7^TIjKFC%
      zlGA9OMa)QEMVk@(JbV=$M(`>+=kl*1VBj3{Pw+V8S+jr^6jiPEN|su!R<9N_V<Tw<
      zSdSA<n_!L*cU_83kshJbZcHONI(XBVMK_miGw3liLP*}ajJo8l8&?<=VYL`zV_2_j
      zg>|bEX^L-Op>P+_gjdOT3T=2zA=6ol`8{Ns9FRpQE_k9!X@z1M9e1$wGjxqMZJouV
      zH|AhHJ|EFW#U}wn*$Sfds->^<`39AK6U}&wc;7}RUPlraeW<!?sGhhFs_n!n*rP_%
      zj%(OCgTA?5RC@gmRlelQ7p>*ngZ@P<-(&xz*D1wv-%XkYEa@;tr_p&dbef%CcX5~@
      zof3BaT|`8KZfQq%wH-ULi|KZ8CdF3BZ{T<UACUZqB>xe~e@t<%U>iQc4*L5rtpHbs
      zGgTXy6b963(BxKF1pQY+m*JaG(07FHi@h^`T48-3tE&A<#^N*Bdl|`OOkVNV8NY^S
      z70I}86p#AIBiIrm!w8>h;_8t>mSwZZDO;hqRUOaUBzlL(@(WJoSM1)`?Cm$$j&Dii
      zI~>IKIF2818n=03epHkV&OIsAC{JKNGf9Uha6p|ASsmmmNG~s_MKav;WGE1Fa`b=7
      zaOg5NCu6aSNWyythyS|}7RCv5oB+l8g}6&0exeXRQ;1(E#BUVh9)<WFd+`Sj;ZI&i
      ze_;%Fd1d_V6QWQPqJX0~ri3WegeZ7I1myp6kq|@b3IXE6;}V)_+W6}TR(S1QaC0?@
      a@)SCv1+Z2NBBq6XrzT!IHOCdT6aNAkd&N8e
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(U2oe|7=D~MOOv|Y7v0+8tVw`1b;inA=?EQT%^1Q}fs0O+*52SIZtE?vBgcV7
      zeB4di58$qo5C{n&l?x=I7LdyQu7>#d0q`S$8{j#|t`k8~6#KmAeb0G5-Zy#l*S7}%
      zF5zYx2?hEc>m6&>@n);tz+Uuyt82QgPOuXAw$)5SRdD*SVj!U)xzX8FkXWyB+49;7
      z6jOoPwEVjYQZ=vR1`3W{bzCR7#*NZ?b!L_M8(!VcLcwtj!#JTJ&4g)+)bVA<wcqSC
      zH*Eiwwb8H@oLcs3R%6xj9T7*HYOw7P?A-DpsiSBw5SsKhZ9j`7&I+t?(k#uarZK6Y
      zD9<)5cWc&cH0&*_vFLAgnzkF<yjQbZf#bPZOyF#WL~|NaI3`w88nPG?tAd7fxOz%M
      z217*iHaFY0P~5QHtzcV0hORn|PzZsAHzlbvLtpF5PSauah_Gv=(`tEsVAmzXH5Q7B
      z*cvm7SzJovIR&GA-fvjJwua|%nTMK=D;%bctbGAj(wJ9pqF=kxZ3lK!!;7d0UZTY{
      zuhmsxltLG!6K`$Yv1`GCdBm3FJ>+(p!fTqJ@@*+rZQpfTLfF#Gl3@9YV02w@S>g_v
      z@d)RFtL%!`@oV;Lj_B*eQ7yYD_@Y2}lN?T!AKETgv|7Gtw0yG(e2YE|L*sLV(IV>;
      zV%I1q%LjWH{fa>XC;80E#2OE+;}qjFVIfZA2}a_gF#?gM7|7_l9!aRonZ_Q@=sOt6
      z?I5F<4?e^2cbK@nhbO-`%01|Yo_o88bH>;5t23_|4D<uBsrQf<QND*_pN>I7K#SM=
      zq|?SEI+(({IFEZYuZsn|hwFGBuj2zr*9eKkbj^q^$>C{=5~@u+!&Q>*oyT+}VU8Jv
      zxoku(U*BaES|a2E59IyAL19v8M}c;fq8k=j9eVm75uv9$1bz5Fp3X2QJT*{`uDc*(
      zQc(X*<ck3!iI~WRSjsJqf*@HGJcOK2G0vB6+-AI{vIF_cC-L`(yNUkIqjHS)*wcOF
      z@y!52aRA}jh}*|RND-lOi0}zgiCqCDHtM;3T%1=WB*U^krtV`-qK`@Ru>nbwa%vwF
      z_y<nrkI?ZGE%+Jp_(hVK3xVQ(R^onE;(k`5e(K2KB^s%+vkMrH$X<y$n-RlRr1<`D
      zg?;&zM}8YnoQV}*#mmtpP0|#Kr(==#r!pTsL^|_1)Tw=3t4e+M3)TZ76ux9>I6I-S
      kzw__$53>AI!sMmd)3K&${vN9Yn!qUeSD96CL*DS}KRW;rHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-E$LF96dK*8`4nPKtE_&DG?z}Y%7AOgs&D_U5%~Kv<g+rCf$~0(%sH>BbEpM
      z0rkOW$0vEz8NZ;6GCcXj_&GkS|AAkB0DA7-O|md$GLw7v?!D)n-}#-p_wIjl7r<du
      zHADo4t{QI}<CZf%x#^h`u4`=0HoWzQH|M#gv8Ev=u&22t{6-*JZLA1H7AFPbHK$>F
      z0zwzao|~GUm@ikB^clUPPn4G?=clKqE-cOIm!<@Eo^|XE&#=7(quwy16f!KZ+p;as
      zGU`i2Tru6H4ePookUUYV%NM6el^<CUh@Ewo%_O=7j;z{^F{x_Ia>lk5J{CYuD#SSg
      zrm!158ukcut9t5&y*jSjp1EqeY4oB`Ahl|G!HPgWUvBTC8<xFV(nmsT!OoHd-kZh%
      zveaw^l_|~o4$$B<(nt#IDqFTW(^#vTZpEn9SzxB@)QtLq;ac)JSQM^6;)JR@#nX?c
      zu^$ImdtO%-cvq|qfqlM=M|F*oqR7jWol-#|jW`l=_GB8G)DrU@j=ScD$+mTPPRm3|
      zHL^IF!qYga;fO$2$c4=f&s<C685|SXVaTx5ob^pIguR-rUNvi8Ne@}oTv9beUCEjB
      z9N$#tD<8Hsuv$auL2lK76prJhER3Ph@{5zYLOd9z56*7`$p%loQ#02+iy73w+#XQ1
      z(Z+duqp`m3xSqK@W!Ic#HoLV|a-Nf%jPG8>8LF(w#&||eyC$0&^2<++Ko7gO-FoVr
      zx$c@ZgS3+6Wyw;eH;P4-mbhY7c`=y@_DWrgsIk1vN87wsH*J5SE@J$eYk5q$KqZYC
      znHkNoP1#p&@-G%A&dQ2vxu$kk99fdDj4p)lcWGon!y@ly(;|H~<VX~6rg1@bA?h^P
      z&ED-X==hw|aBJqYB?CXuN?DjmU1SzcEPf7R{4uR+#;kH2zz&Xt;yi*5KJz|tzLWnu
      z(aATv_+;>%;MkYx>KeX{%q{en20lijYq&J<6$ZahhacnrLBc`w^4r(Pk6SM^jw#WD
      z4$+TYVlOgcfL{Y0`?xnv$PWGwD?&k$O}b+NU9#{c2DgxF<EQurSl~r_t%U)ee}c>;
      zCdPq4@_Fu*d%Fu;I8?~qN#4XrA$k+VHduyk089KgD5Q!m)D$S?%Yy-^oQ;w~f{(Q%
      z9_1eCNa7((U*H;DwnG9FErFxR1_H-9N`!dfYZO1_Bm(JRLM^@<IvfuU@5eZv3J%Ya
      zK#J^>hwmiI97dwWsC>GO!^O{AaGk2}@6oXL(Sr{{_4Ng?8tZ;m(F#0==L3Qg38cF2
      zZ*lyhLYLTEIMIgom3|ab+O$jpou<As1c(u4LWO9WBvNzc0Z3w=eHinzkjzZ04H-=1
      z1)@px7m1`33)>@Sl@nWd>0#vW9)bLdYH&neZQ{$we?kLfJWk8HvzMg>cW>Z`8sk?^
      z`m2LCkn(3I2k#_j<jd%2vkQe$My{Q<oQnB9Cg^)!fgc$AA8`mjp@^U9`Y$+zUzNCm
      zPunW{G-j2!UgYsAXAz#*jq@}!%0ymh39bZ@=r6>!FejxHE>ilX*ky)3`(dT6#LvWU
      z-2XfJ@JGm!{uXOL<`t`CI2BlOJ+LG<^bwMUA+i()6%T2K7(2x`B<b2*y*vZ_$(sJ+
      zr{Qn%{X^CNhAPdqICH$%eyDQ1-m+34r>d8gzK)ArIm0y>sY^lQV`^7tQCZKw;w`+<
      dX7_L7eSXRQ3su?KV(i3Qy#F#%mx&vJ@jn|h$QS?s
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TW?fV7+t$_%3M0VP-shWN{1qJI@60(1O)_2fiktUwZ-aCZ>OEpc3^IqIfK+F
      zi4P6>?i)k{n($H*No-0aX_Xo={tBXrM&solfa}|H>Da27oZ0)^*R|HSzH@$f{M8D8
      z{dm)f3WcVN=4G=dmg?!BGc$dej5$AMnNcg_grQJVoXn3YIHqzl3Kf(6?50y$1r=6s
      zC(O(xD>^E1<#Z~Sv=z1-jU{9DF%ASK`#UBSjQ&*A@<5^1iz?J9I5`mx%T(=9ENKnr
      z5>r;@yg3!O6zYdk(`J0a%)}%v3>x-aj5jn76+vx4e1x|W-i(#;z=0;YW(Q#gIwqXh
      zsnDjk#m(ewPdFa8X3cnCW;U0wlJ@B<(^lG!rIH>rqsdK-EnZY&i}YH(@W3U#-Cj8J
      zy**yI;o@znnVGC5WaCzH)}9mg@l@85)d4R$5G3t*YWk88TEBf{>Y_Dm6Rjb-u?c7u
      zJS7-eCwdgN6={Y?N;59(SEwGhGnSd~>${>JbmLj!dO)EeP<9Ph#gel}MBo~(kM_;+
      zZzz_C5pcEKJf2IZQyJTeYLPAwh%D1V*a_kbtYg;32q&Y~m64o1GINqij%G`+JUEOO
      z1w*F;c=Du_TOQM=uxI_4|2g3Vnmjm#Gftc?`cCKSoN3Q_F@UoKmWU<AP;^b$gFy^A
      z@sdK_`tjrQS=&l@aSp?Dr732fPNnA+g5|;#^beP5RUFcZP*c2$spUWOs^CiI5@I!R
      zw<yH(*y_X^*-NpsWN@%!P|&|7NF#!AkRz-PZdYtQ<EdO`+By>xb8p|^+ioF%-82o=
      zgTWuYr+f69Zs|7N(ur)Ph^pY_e>I~%uCHM04u%||m1Wf2Wl({wdZA2Q;HF8`v)7nk
      zh;7);h+ELWi-?fN)fJ9gA_#+X;oveFeb-Ulavg48XytQM-A8j|8BeVSLrd@leJyV<
      zVOQ`={rEWV4Knbp$e?cteu?}`Xj_L9Byu3b<FkZgV<#@76<4qi^XSF9ID+?Z0`KE2
      zu4=f!JdhIHZ~-pC;c1c*a$)Rc&q46}u%kd>k~1>bKm_fPp$9=lyrH$**b-V>y~`;l
      zYP3FEd9>)1SF2uMx4_wJ6nB9deWYQC&^)XFLm`At?&#u}!I^HIgbxTolGmZHJoiA9
      zc!=uz=#JDsvy9%=q8gn7qq7L3jp)IrUAK7{J9X}F5XL8j`6*f5gdaB$z-MJi>?o<y
      zf#;}zB=H~)@n1aAsbdl|78&Kwl|%zylu@cEQF<OPY@)P87mAAGMHM$uVt#L+_C5|r
      zxWvDVqpQ;L*>wxeY<$58;|m6T;y+M->}qIjF|<~}XO&v9bTP`~hcK+$QH<#}4|X5D
      z39N9{*A(F!im*njd`s=WBh820^*vXwl#v-PBXfKs8RaRIlucOek;BI31kviXw0ae7
      zT`>Czn*C&n(oMLU4Wbu%eEiXtd+0w{scA9{`5G$kv1o*GL!~fosO0)ZKEl?8<4BWH
      zA5ywavjim0v+bqdfJa>QBWm#zKSDqA<M9hW(ZAv-e&ep+$@UMtg+Fl-e{ts{&HMma
      zfrV78XB#8Bo@H#5r%C#3yv&}1v7ZXNxI<x_M%n1#F|HAVNd7ihmz0F{EmRtdj&(!T
      za0l?1IeLPvik~<}`C9Rpa&exS+j!GE+$YHLwZih;bRkFDsNg?K_CISyRl})jQKRbk
      zxvz(xaX@V^gHx;(g;y}K3C<l#CU4sT-r61+{uemKj4!mhKW1IJZ^LN4hgT07I@=44
      zhWR1UHX2=Pce<EudB61YTLAf*={BF`T^xtnL$G@Zmai+-iC)!(<Ek5{I4=76wWb55
      Yj1KVaJ;}WEa(0Y8dE>m!brpEyZy4XkeE<Le
      
      literal 0
      HcmV?d00001
      
      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
      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
      H8La#VMuc{y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g&rZTX5XQfOLQMfdDyT$bxB(^-;}OCI|A*)S?a9khH?XF(rY*!bF!60Xk$CU{
      zy!$%FX#rzQIPA>M?r*+tc0a%0KL8w|q9Z}re-u;ER9>??5`Ncnr_v9U=bk>>@+stv
      z4vk<gq05`!3qm1~z7mc#@3^}>A<z{e$0|W6+|UxvM5bO|?Y*yiQxVc_<*KklNY?5W
      zLF;-C(m)dHSs2I=@;&9s>&bW^{aZ0`B%#>zY&H;V!}a1&3r8v-RC~*zR!rU^lxlOx
      z5$>?r4}IkhTXie)EJdCsK_AN?5X0Cj*87VRjJ`MVZF#1mX?9l_9Y&3)f*-~oOQ;})
      zG-sWw1lD-55HcLId~(d0IHwvj<lbT=&(UBEXhTB>1>R-n5H?WcDiSa`MgkosBR1VQ
      em|^q3!a18?#0up(wNPLlWo)qqVVk=X*!cmmA#Lga
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      qBOlxfJ&<BHMh2i^K&LP;Fam94WncsH*?~M3Ak6{9TtGGx12+JNR44TS
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ$xZ@65QhIoWLR84a9?p9E)vh)5GNU9!U6T5rxqsT;Mh%u!N{w5@Bw@%V|B|Q
      zrag7nSL<K(`Stz*;0(5f6ho=UUwJ){^(K$GEBeFOLYkqdama;VZ$0+BPRvk<Jl<_c
      z8G2kW%-FSihWzDQ$Lq&|6ax!6hDuWHvgJ%%777gI#N)Om4u-6*If^}9ut9wlxD|uI
      z7hboKINWjM#S@Qo<OM@cMYf-0M5EC#ZIUvbJN8(Lxq@PJt7|EI9ey<~;DnO@6mUq5
      z3U12bWB4;qGsy}Bfr?$b{@qGDjsoGIGw2StH;#ophMhzu0ku#^MlU>`60E0ohG95j
      zn6)1owL7Xnuj{H`ZtxuRmFfXQ+IDNCJKvVWsN*?-nrUHjq*K)>!$4x_n7|_4Y!(@^
      zEwVC5A&We*Im{bu0gDDJqGYfolnqw-CwKWDwt`h7cMa<X+rXy5wy-^BX?m54oe9a3
      b-Yj-CtzzHEt>VC7hdBDn$U3GirEu~M$JT^%
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZXQO;5r=5Qg8yLirL9M8&Ujy+}NJtF=iD2?x}Jo|dL5B~6!<tsj5QgFnC@Wt`nc
      zYueN7JTvpYv-9=+@d@Ax=O$_l!!>{5(@0DmF8Mr@n@pN87zUchJPD`s<vQ>sL-#d}
      zWMB&s2Rvagtfz}dhW727A8ceKlC6mr!{}GgoBvf9TKVj|4Ah{f26J??;wg#f@?s@Y
      z@@eYCOX!*R%tR8Zu{-Ujt8Oef)eXy4tfQGDvSqCGoubhu%Pqs$niU^f$TUjA>!L|5
      zK~1^w!@bK;*NPOaXIu4|6g|Cmdm*ya58Oyu^^2=rD*Xln!w#Jn=+P1DXi#oaW>9Pr
      zX`@pj-3r;QkY0uKF(~QmVOSy~?3c(G2PJY?Ax9N5skl#YT+*4~<UgVJDgC;JvmdXG
      BXG#D7
      
      literal 0
      HcmV?d00001
      
      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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
      OTD9nc^K2gvmOcT*e_nS0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g|@}tS$?c7PKOQAE>PlR^nrci2?>p5o1XSkJH_oc5s*>+ga3K<g31j
      z(ZnC%k22ofZbCKTVeXy#b?%va=l7o<zW}VG;iDw5bS%$gOWD>IX>#;RY1$!uO3B)~
      z4^QA)9@o+gTKoNDiky#WftB1lq9{$2`_y`ys534cQ2Zit${K;`4P}&jE>LbXdjj63
      zjVVAGGa-Cj5vX*Op*QJCpOORF*CbHw*huQ0OjKqUPR|Y1NMN~hIm<TpNK$UO&}fd+
      zCdjq})UfDdL16ykA@5S-)Cq;SjvE5OfL!4bSo{a1aJPNj6sTXuAwV57S)=6;x3R*H
      zlX2V~rY^Q0%#OA1GuR1g2g8J9+-~-K+!0v4;I*rHhEjK(bhQ03qSNs#gRV`JC|?aD
      z{lBLtS-n8GYYZiuT8>7<6RT{SNZXMzgFSLX8;5v^M?5KJ#-k|M@Yb_^GZQ=o2l-6#
      z*C_GfC9!ptZ_ii@)>Dtq5q!<VA<H07+knTxS+>J*66R20i~kMgS!MuxIWSQBj_Oa;
      zkIu354YxkSI}~5?qFGK}Ww;D>j+23x?Ac;~*AvjS0=kU5oKeC(+-DsyLdFiLVvVK8
      HyLj*y#qp$Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+fEZv6kVqj2FeH&N(BT&MQA}OH*d6}wQ3|bKte;62hDVPq=$?%<jj=7ulNHz
      zqY0oS#y1mx#J^DYnNG_k_|o0km$mj@d!Ju_zI_KUgPevCL*JIMW2A(Wdd@BG@t4Bl
      zuei0%rG_v=mmjqZdoxw2NN$uFu6&>rx8T(B8G7@6PSq1uDl4V2mlv*=W@uXzo3`Oq
      zC1<#OSx%<rBx*&PUZk2Pqf89Z#Q8{aogtia%DfFkucH|)8af$zE+LMf15q8_=wWEd
      z2wQlI1e-{%Yv^Sd_}{RjGZDlPji3($8u}TA{Y;meRVlo^RMs@P>*gHWla6I^spA?3
      z8T7KVD#Z@9zsafb`JnMe*=aCqdcv{O$=YPTpev;<ZhC3e@vx3ITqi99fV1)B2193F
      z*nGMAvBYJ;C|RUvciu4#Yu%7SeFx64S`9<TdHERH%Z=T-if&BDI1&u4!sF8L9LW$*
      z1g-gdTnhZ@c1+-ohDjnk6}ukQaTimx8k_HW46!=G+2%D&lS*~f)t)0rVOGZ+=4nB-
      zzWfDkD60E99;kp;G2CTB)$pjkW*_y%uF1ERkP$Q?O4MFOxU|;Bz!#5L-IT0SI>Qqk
      zqv|RmYfe>~{-KlL7Yn9TuhjCAZF8Bk4A<o@rm4J%-V7D1<0GrlR|u^LBSD)}@a^Pz
      zM?OY&^fUCI=sQ8j+aq*+fqsG*{fi&tYLP+{hZrgz_y{BP8z)TQA>l5d3mLks72Luq
      zZje{6;o&BEKmySO0hb^fBHuUx9?}EbM||=tk_<nPdQA*7#eIZ}<hsZ3>F@6YN{^u*
      zgG3a<2o=_73*>!6-VF?)fHAyp(8g%68ZFdw3TWrZsu7zfj<9e#L&Wc;M0%7P0F;C@
      q&7*XC+yI#Mzk%>E7BALUNM&)RJ{;7C@RX`T$l@7UrFM)gwe=5&?g*^_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9I&rZTX5XQfOLQMhrQ$XeB4KR@yj~EO=NI)V7w28+BH@I3_(-z|!dG<u&!3XeJ
      zyn8cF3mD>IXLfde`+c+f`Sbn(-~<&NF+%Y{Jd1{M8{JW_`!bbJfpQ%k8o}Ij`lG)F
      zA?Hg^3EPsM&)`k}f<Oa8rsFz(Ae_Jw_Ch9Z`>)@R<F7U$d8Ql{v<UHP%_3+W_f8s!
      zV>b;0DMEIr9C@{vPo#G(CblFLhVGON1lw@EKGcGH<rB)o%~0FpHVLKbs$&ah)))t#
      za%Rn%6&jU7Ba@)drSFSbWDtpLqXc8@F1)Gisc?k+w)$~M;}HA={x?De2_!k|T*a`%
      zi*F;vG0i8ZoQZRyzC`9NLb4nU#(;BZXd}nF^a?^A1+GE?lVd2*Vlrft^`j+<{}l#o
      Xei<p0SJYa8d6coo8iakm9mByd|07^z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8dJxc>Y5PfsTtj3GR4}x}<+IU!7N&*4#ih%v*9KwcWH|*_c@TXb$1N>1T6O&EA
      zVi@Ml`(WmG`TYan5f=&>p+D0fx-h;NEFuS|t@+Xu%L*+*?{8<dn-=9{##K~k6RwhC
      z%)ul+ArGwIlL_Ja?j`Xy+L4<#@#+4J&>1W$o=4+dt#CrP-N!szUDvNZ4t?XqY)ez<
      z5-yY7sN5|G-Opem?_+QN$Cgdp<&J$5DjpikVwW_Vdmq;Bavb46>QEk($paLQWIC3q
      VjSL;+f}P@Qi?yWZQoS`B=PN#%T6X{d
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVscfnnq-lyVV7D(w`h;0*;qZdH=TnqX?+MW@3ELx!1VIwcSjA5HuO
      zzQ7k=@B&d1ffpbADC0h7N-YUdU*?>>&)RFReVL!XzI_KUij0H+L&t`;rKL?LoiQzA
      z-YDs=S@axNLWrSRyjhyPmd+J64BcZ0m^MRa_Tr!khM-d>RM2o;21#GnY}>FH`uqT!
      z(o}q<^z4pj%=rL{tDDp<(>A>+3Qi>R452w^)u=}kS|l_x#MkU{T4X&(!bMj|7B`EQ
      zf-qVchO+;Ko{+(CSwTBG7$TFE^aF{1h)w3}DXx>}ig1Bl3M900Uk|?t-xURQzOSF(
      zA`DGg(>9)#Hw%XQTq{@xLu=O2H7l>VCbxxCMi7HskizM%E2xJ|t?<^(5*?)-TW63L
      zwsoWEnT}nOkYeaQo5d16XEbWaY84^j21D;(+a_ZeX$3bi$`F3-xH>5dC03Go8Mkmp
      z!fl4OvkZ&5Dzk#SxJP62oF&gS?KNs-BI!3y?2GTE4y(A&3wprNUTJLYJD+sG*rvzo
      zO4THxy$Ek<mbogHVx<9(Fe_o^!jfv%Nx>Xwk0NF%S2So{<t3*~b@5%HV$SdR2(OKP
      z2FgG`MF=rIRl3FaB*jV7qqCWhg3d5avjGa>FOl_1L;;B-u;q_vJVe_kM13PBjBelP
      z6-M7a#RPDbzE_AJRF8~lVtRro9-|A-Fo+z6FpdF%1m&S+sAQX@SVn$XJ;XJYeL?&W
      zU!zd+f+|=hr7I$y#}S(Ncm?2lUSY}*Q-Hq-rql&YFNsMbrh;JV@X=K!S#*ODTY}UD
      zkR+}US*qyDJJQ10$JEb=pJI3yD!-jzICOxK59rCJPND9iE_DL+_z3E9>HuSh7(d=8
      z4w-az((cvvsYqUryjwJvZS-RYalE0ay{%C<R#6ut+yo|xiQyrp=*uTHBWxhbmHa>p
      gKfYp`VHe@hUT}{fe!>U=f%i2Hj8=#l<^^iuH%zGrz5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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<TUCz`zJJ
      Qo0WkL#A09vl1vO70Grt&Z2$lO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZF3V<7(KU5n`FCCTA)B_+NP9}7bJp+KtZ8}YHFcKp;)WJHrb@xZZ|R6U<<w>
      zFzPt^$xq@JXY`xQfCDLGXTXs`)Suw5@E16qyGfHxiwu*Q?A`m^J<oa0^RoNbzrWlE
      zup8ICs1w*Uqg~WuMkY37n0nmG7VI%Qr)zUwcm&oj8(jv0x>QnN^T@JIK6p&eCvryC
      z&gA-OPfQE!7)e`&m~+M=dSY6$EZxjIZU##?@wu$Y<Bf+5%dlS-*cd8dnwpi4k%eKU
      z`@`b`%JKPxp0$mPmG@$eK)~(!WX2xK6s%<BjDTk_lhnOfC!o4dDriQl3O^JD0vqIN
      zqd-g9X;}fsVe^P#=_d<wQ+n=<Hf8Dpts|L)W{zt)L*AD+J@&Mb7uZsxgi9&L=CQOn
      z=W&OKJ1_<H2uKc{0`;NrxPor<co7s>=Q_KPxAi#{+t5o6Y26;v6NQ{%FPzXUEv@IM
      zMJVhRt=8NxL+(?t10ew~A3vqpOwEScXG%gVh+wA|QO4u)UyG;WIVb}D#I&B6J*{g=
      z1u^XQ;(3AX&y;Nyd+-7?o?wO9)Mft)@#EoVtQtQv_@W9geAGC_0u)$VlLl%pn47In
      z5r@`V_pTzA`H0|<4EUh*^|FcvH2QG_16~{zXmb}<^*I%TI7X?<)h^Ig@?X;d0}HlZ
      z?f|lENF_(7W&|RkXAE6-gr7ZYn5EKW@x;9tb~o#2r5R*`MpV3t*XSu>X7ak+8C7vY
      z)}1e9Sej{EqIwOijv-QSU#^XEKU8C5F&)7fS+QpYddkZEZ(x$8hgo(?<V_Xh4ujC-
      zKsYYDZ&L2OO{KUKkB8&zfvG}@qhpf#UJwXXYw&0;r!B;-q&`1dut!q^vf1;l0M8>J
      zW13`HWm2iUZZq=|&(tka$j=&CUP8m+VJ{34uL8$SQ%`H=(OkMPr(1Rf(u>*UvFK{p
      zfr4Qs^_&lLteZj2+F^G~>~4z~wsBGKo?=?_2fG!_pjG~5RlEmwXrq?R>J}$v2T8cg
      z(doM~EXAFHt)d`1)n{i)(@(*)#EM~F#R4wTlFj4|IS8GZF)U3VNYjThBg^PDIg!J;
      zT5LY6Fel58ogr8;jTtj}D#IIv*)N|G2rievQ-GAQOd*%hB|7JcytwAxE~znsOmjV7
      zG<E#3cbpabmDe@2a0+w3iFY2}saVU^ajxs6J+g%6iRdC)7P0;|H|o&FfB67#hKJ8$
      z6IX4e!`O^1ypyo)*h(-7zLB<C@GQwlI-QY4blgMNiJiZrX=k*E?L~wmQO`Z>x{JM4
      zZ|x4{X;PXY=~;R;u>lqW$T;4+OK27Eo!Ez$=-WqL`*DE&C69yrm!Zw`UV86wdG|^0
      z{gLQh9F9cq;FVtyt6|W|@djKWgR4ZnMh4f>g3pNmImP|L#iFOeqK6_jIxO1DEI<}R
      zWfntZAvIJa3+dPu?^=i7m-O}(pZMCPuu?%+<iI7CkOPHC%L>Px82309z!$lLy+yqK
      z6FrqOCm8`hI+&`n_LVV(97L;-_SGVttY)QD1GmZJ=O>_faOw$YQTmqtMHQw*=$;FL
      zA2d!Gwcrh$UPZ_%S7vWyV&pf5cla?{S)@lMWT=Z6lPTnG^x>`O!v}oY!<TuGE`xk?
      z%WFx7HueGVh}OrH?hlshpR_)5vFNSH!g;xh#R`GXtrYlg7gAN=aZId2I$Vy&ABomS
      z?-%jbN~nJvs8WadEBW{19lY!0hQoUm=w*U>7~r;!8)y#PKvPHHLiGL*Xj;PgiA87+
      zq*&38KoL__caA2)$B#`v-{lHF+M2Lgta02&N^lkT+sf|g0tqBZK(2JI>ZxN2=~a}z
      zr{Yrc!7l$d-(l+#rYDv#Gtp`;!s;p_Q$&6d7a!32EgJkcCBY)zACT8zmsZ5(bLFj|
      zev>ezH1@GSAOdI<omelr(9Ub82=WuH2YsR!yTo=J5PePvr71C331JW);bSVeixcV-
      lt|aj*_>?<xO2iy(fd=XIR>h%Htzx$;yA72(x$2y{_8&c@RcrtN
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}&BV6h^-bg_;6_AgCn9u;V9@7?%(>D2gGtK)WAcf<sDc+G2bL-^LY*3m?D-
      zaP7i3aBsXVV2okWd*@EioNwB<@0V8qCn)NO5Dur}LDZE~?<h<59lztu?eY2JNZ$L(
      zv2|#K+#2a#|Gpq(Jn1T7nbP$byzQP5=!%ePJGSQw+c$+Zm$9#>+WSXo`bmg4m96|1
      zAzH4O1g-6irGY56lQ57Vq<hMi{rPMt-5W8qBq7^#MjRkGhUe9$=HDrgaMW90YU8~d
      zgnW64Si+vv2fnN9Nuy#0iTNNgN6=@|^TZ@f3T=N;f-!LB?nnlHLUCivac~SJ@JI14
      zWePFGx$8Vdu*DB+kl>o+om1|_Jyu;H^&BE;t_EX36B=5`@G7~4u!Ag5fgr~<5VV*K
      h*m$+J!0vy;1&3dThQg9s8JI@_d+Z?W^XUi<egG8pY>of`
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      TH2LV|XpWb60-qxSE`0vK^fUxM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw+fKqj5QhIPNVS{<K|sXwg@;7qHO6QZ5+mV43<=&Xu;3bKNh!wH@`^+gAHat)
      z&K8i8VC=<qX7=B2{+X}u_fG(4IMAUn#Gm;K&r2&`l3j5xcuUwi{0y0C{nqRcovLFC
      z-Wy*t1kR-?oePH8VR<T3&kIL22BY}e6n#fp=0L{^L(Z$HSWd|rnyp_Aga6uU2^}GZ
      zlvn9#Yaob72ulbU@L^R&F^2T4w@2$*h?b=(D#Knw*bltX6*OhpYVvN4+fwC|qThLv
      z1BS%h4C5IK<f}~+F+}EWsh*wnRWsj+LDQCf$Fixla=M}Xr5Ut#i%ibF_GlTB6Hb?#
      zojmPVnw<$@TM=^Pz~nvGySo>!j<#I2hIUgZ2Mkg58yi1WTI_<+rqt)7h!zJ8I%R&!
      zmSIp-q*$YW`1k|C`pF345u$HY&=9B7a4#<r!WGsiUmuH+K$0?gMwJx76g*AmLS$wE
      l@{W+@Kag2$PLMfj_mAJL1@Jn-AOC>wxJzN!BljBie*ltDn&SWf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-EPxB5QWbew=SkhX!=8%7TQ7!O$&{<F5-p;2`QpTfgpP4I@@+pVq4A{!4tsi
      za1{w89)O2J%zB;FQJq}GJ3D8-nK}FS->*Lap5w@YMW}xEzIaU;HebuW_!vtiVh1*%
      zKE6LqRFtTWiiI~YdBXe)8A$b#u(aPE>va8bqf2mGUwsiN83scKw+S1mqVENl&5rOB
      zZt-oRaBzpPJVv}Zog@hMtFR{=lnJ$QUbo1P<D!JSi<rZ_i(9Db(=uWGdZxTMovqTA
      zfq0t?&PDv*JMRnLza9Eszw5<P$JwQ=uH=xgGPRsp{+K7b;5i88sVv`DuN$XkoHe?7
      z!c9F_olWziNCZ6sov|s?+7mJKV;QM1<}r2AjxO3FSQlJSo9dL)5>_*gu~)@1xXcKT
      zHDQ;h4ZK0RXYLt{j<8lxolSkH%NzWfoiK@gp%)@l^vC#cq;c2*vGe*j$0vRWSa3Mf
      z-vzi><Z}x)M?mS|H%gxlN2rXj^ph_vtnj~^CQn$}!YapWM$F%P9B~<HSZBD#*Ey&0
      zHb(~jj&Jn<Wdq+FVWWWlfhpaTzHQVKdO4#r0r&BM`MS?muFpd8659oBe3tfREb$PJ
      vvL$wN@EH#66~KoKS2N&Gu%E#jH{drNIw+ujXNP{waLCZ}4n1YZEj;@V?LfoH
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3C0#Ii*F%zS;f%$(G`#N1RMU6NYF&cMRRAOM!jNz6;v
      z_fN`7O)g<%U`tF+PAvd3lr?;iby`DsV70*|MVWc&)|yd_3|ztarA5ggGgBEEgi)=~
      f1L<dDWME`q2D*oVfe~mUD+3#d#lQ|EnHV?#7r!iN
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jT~8B16o%jFwzS(WpdbhWB7XKmKtS<>kHi{DN{C*R)I@Gv$`D7k-DbN>^wMA8
      z5AZL@g^AY0MDFEB8PA#43cDo@WoFKq=e*~<)000xj{z)TJ&BmW_&fX1o>%VthH`xA
      zmFkVaFZ-UfYe~cfhW~|61q5QME-<pyBeo*Yx2o#OUl$n5_RPpt1me%!J(-4qjD;jD
      z0VA8Mm=GASkU*cn;FhY(7eQ@TdfWD{BL#-G+^X$VY)|pNa~SvEs;0n1w@{=D5)`l5
      z-U0o~mU0!YIci}Tmjq1ea?epU<qL?CKtJb|gGR&ke7UDJz2^K$3*)#Vknm(vQf~VB
      z`>JgC%B?q(xORF*FS`-GciqAi_h!<BmDBEm`YdtmwuKwGNurtus=?YebDMmgw{Qnp
      zfmA)H6+ifrniHE8XQ>>Yw=m2164{+1lLQv|WJw@NC#6!3`Y?8bee!6h$QKsL5O;rH
      z3pX4|z9p)T+tkBfvGAA$rps>NRVB@i<~$l1;T-#n8LDN_!yz$j5v|g+N+LxkChay5
      zqYs_tf6!myJNm!UE`~w+9?&<pDZfIwuW*6RM%&rAh#}fBjj7Zwo6})F?J&*!H}p@m
      zF!CRn*4N)qdHWR3?BYyZ#+b&DcOBfK-UBJdwJ`C8%C-e^Vc<ZMEWJ*3NP<12tg94{
      zQ)F5<yL^^36V?^bU=DlI$n^*<r0Z5#*T<eDdM6Rm8V#CF(gT}rA$JsN@zXiOD&Vee
      zi5^!38j?2`miM`*yjk3fkk)8~{6@@t!6+QJun<Naog?o)9(3d_MWAJZ#tE8XR|}I<
      zEi8wzzce=APU}9A4BA+_iih-ASXl;-Xk}0_`ej5)g=~Kkw*5ERe$sOqtJ;UPzby2(
      Ai~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i%Wl(95QhH~J8_b_7t$te(*z1FB^PLfK;3{UQAANt)Gk`Q>84I_R3j&@92>fV
      z4G&Pn6R={91VLia2jFRV0^mPRnnp>GWoyn{zL|fHfBpG+0pLC=8X^MO*XA3uV!M@H
      z+wm=LKk!cj|G@Vwv!y{5Sh$Q2M+6i%@C7opNzq3FvB!4X_O}I=3zJidhJgCiePtz~
      zU`mGuozOzjNI+mlM-(xE*_z$9_JUU3@(#_qV+o{cZo_m8)3fEd?^OL0yCaYrbQ+h!
      zk)jR9?GTZCcGj>?ecNq!G-L$kFC|p>2azO)Skkd9hl)0xpmQR}T+uNPU0O?Yzx8aN
      zIJHnM8q&9_BaiC>qRzL<gu>B|j0oJ8kqrTjo+`5`v>r4CB1bziyvlXC&1T2qLKVkq
      zv)tyG2X5dsEJ|UM#c@TOa%|jWy~5k%9CBr}Vzf2H`AzV&iwGYeS^B}Z{2kL@d5U0`
      z-<h!TIV-EoeStapGQDhELy9NXg;Y)?l{2<LpUP7@q;Jy_^ysB77E9kS-9>hkf5`lo
      zn1T`V^<I9T&);JLb*oQ}_lUVGVltfWnEK2iT6{p`{>Nr~LXX@)Lef^cxG{=raarvl
      z@ri->1lM~j943#o31GDkE-U4WF4jlE?+AYXAMhO%`rwT*@L715KvvmOzhJIZ&ZX7k
      z2VE3Ds3NWAKmYxG)hWeX;GDPqk)6)D&re~;hrBlu22!%<b(FpmMahk1QKqHv$>1(6
      Ld9U~Ak6`m3J7k$u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+int36kP`f=)m-5FJ9VO>lLULty(X%)uzz|(%7UlJlKai45xPJz>r}u`sNq-
      z0e*tf2a^^PAN&A6%DDHTMHmng*k|p1)>(V6{rk_)UjXi5BZiQ`WW{`EW^6a}(sq35
      z?MSmMy%;osk+V!26A0Ngfw8S#I4clcwQIJ&E-;Y{CR0TLZPP7F9bqI47#JqNajheP
      zbM0csti8=_mnzcovvH~#H4wv?z|<*OcRp3rK^F}~5EU5RvTO2Hvs#kgu32&<Q@WPv
      z6iv_O^C_tLhjv3?x}&YTQ<AS$O^@Vg$sDVVzj$xSx^KI+Mhr95(^<Q@?M{Ye&KWq5
      z3j(@F6LajU?F)#Uz%a8Fn)SNt`LZk!PNrUS{WSwuupkieWJ6Ld;YG%88Muxc3OCCi
      z7)cvQa;4Tdvg@oXpUN}7WMC1u>BU;Jx^Eqt9yKNMRKN-pVUEil8077;KrFepnaiaV
      z_K2~ER8wjmkdJ$tWSV<$&=%rIvNd8kZbS0@bpxv`C|+=zo+W8mG}!U(nJw{1v;}e^
      zOp8PU*ba(xieeZdM5j|8A^HL%>BVEjfAIea#=jF1!UW^$_72q-FpOPH5;onwfhmgk
      zGoqNOO`bL7E)u5E>5_V3gAjf}Pak7^riIym<Z+eQC-OI4#CnHV$7ReDkziBkmjy4Y
      zGcd$-EnNLdSX*k8GC)N!87dw+WfE*2RrLy6>1DbZ)aBEdngiL$_&&CPu2fLh$AL_=
      zDt%0AG;+2~4Q#%JJKq8=e)`X_GPtW+qQ&YX4amD6l=pd{JX*&-rUH4Zk)i|}usA!{
      z!b*_riy}+6%Q|i*@EA{&F9|#)UwJ7K$Wjz0l(xC=senUkL5EJrq1Hg*&(z4C{{;e=
      BwIBch
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iufP5S$acah<qnLvKJ^pj>l-hH`reLP8Npfj}RM5~M!a#%W!QUD*!s27ds*
      zf>eUU10TRgA?7$2+>{Dp#ojZ!JG(RX&tKnv0NBJ`4H<!jee<nZbA#Gr*NdI76S}->
      zPz4I3%m5Qmf?g~z*E)*V1+w>D-;Ey#%$FvU<+gy@2wpil6yyyUm?7W=_G^JtgJRG0
      zcWYbLzGKJr9IIvxXqXdN9FnE;<+cts8kj;>V7BG@&hy?I%L!kYmgh*yz&5?M8M^X3
      z1l4%YjRcm)yQQUa{VCfEA~q`}xoz&zd)qmP-N27DtWeWPZgXp#k!!9QSjK5~cfDS;
      zCy@&V&Lzk@X(DBon&q}kTsE+divq&pzbT-Vb{frLt}JucINa)W1u{Dg+8K1akwdE$
      z&+!G8(>`p+q3iF~N8LAN_XaDYI6P|Tu#kGTgI;Jm)XbHNY3UnMnYvCx6@C!hSGvk5
      z%SgjC5uK+e$nXLRmFgjK-{kWvieHFiFfZ|>`zh;Nn87nF5L+5_V3Cph6%uBOmzFVi
      zhM3CJ*<`{!MuNz6<q*X_R{wD45}ppXd71DUgSsKFkaquz?ffL0MK=4dY<x$@*d7v*
      z>UFu>N*|Xd=>iHrNQu_RqIF!s)kGR!@G;^J4Nys(m&Dc8wLVId)E|(;$Ar2vC>>Mh
      sQ9(8FB9H4FA~($A1|x+izli@BSDPI7iQ_(>Fm4mKP8@fe!!x+^8+rkxhX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      rBLg4Y3O$fwHbw@ZVL+!aFfambWMyCj^4Wnr79h<5#9Tl&69YE@mQ*Mi
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J5QhJOLQMfd5L9j+OaK#!@rdF9HDZV!(B2o=;F7X6Z808wA5Wf0Joo@U
      zjZa{lEog}G(3zc?Z~uR~A75|p01i>Lksy>N;!!k}-|XI;KMmzWq<n3|`WbjakDI>(
      zLLroa5}qrAkiom|8G)_{xsI>HNa)BF-b|*v=WrzVK3@pwW2IHpCM0Whmtb}Lk#vy6
      zdKL~cgnUnFc|DsBWN<46o+K1|{*Vm>+i<;XTG71<3FY2D+qSr0TMXiD`%$3uxK($J
      zPucjC2=-Klp%};dvBoM&aQgl%7|IJ}HYlt-#espb3;qFqG(r_Aq&eGMC9uXHUq*&w
      zmODqBiF2wkNA5L7@*Ew;fD>3aMS)M*1%wS0xiSJJjz*x(q+!#I{W&)ODqOO8H&&=D
      SsHFn)s9=jV2-|!+ft_z+X<vc>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(O>Y}j6g|%~<MCJPIH^qycAXMR9UE$zrYUvW5V@krX=o%;MKaysk4ZYMJ!9Ep
      zlqCx)u|?{Nwn)Ijn|9GnBT<xWU;zb$1W51?_!X4%o)gD}5-IQ9_wJo@&pr1(|M2(M
      z+W<~u(S%Q6;%4>3YQc63WvAWqR=ti@ZJE#o#+0L3bv6nswVPJmGvODA?S)@zx?QVU
      zYgz*S3$|l>3j$hpdQCvT<Tk7jG=w8C5fF$j+m3a$*Q!~aYlAPwm)&}`xmNAi^1OSg
      zdpGQ^Kzw;G#R#K$fgpL>&B6CfR2B%my;--~p6xna6Gui%Ss8i+jJjk>TCHm57Po9!
      zk_@uW#<JbAJpn<iL(;q2Yq#BwXEjtQ?=x6N5h8oNG+hosAQM3flL97h%4JDH)C7Fj
      zOD0|snA(@D>@=*+m7ce<UUGX*qdO!N!W6<1>ZF8<F_XK#&b4Vd1hWZNzrn@Y{Ff5@
      z1yKp3V|6VrfHwq=O4<c=o^)Jqvb$G72oso*`kx_Ab|9(hB|B_88}q7B-CK5BDzY@a
      zWN;+-7a%bqi7c_Lwcfg7<@Z``+Dz<r?2W6e-s!al%7j+kUZ-wdw&fg*jWq0(ltMpF
      zIF0`jUDnKT;2PxV40plZ$Za9?h=val73AakCUg{Wh*o3}gu{sP#1x1za-6o#(}aS0
      zjh2M+X%FP8aQy0~Jc8jHV#G<}AVyxHGs8ZW0Yqg4LJT1ic!3FI9cNX_=X~g@4-?EJ
      zc@OwY>nM_31zyBUTqVT+^Z#fh`7VDxOim5I+}A+fr2kXVMJgn72XlEXzx^1;4vO>D
      z2*KcxU=YXgvLeViKL{!ecGDziC3P3k^j(DW+o?wSON5_bs<MR>JKCJy$JyLtyjqzv
      z?jai2KZEJ(!-(q-@~OD~LEQNCS|4LYzx4Q%{vA3#)<s-TfAQ=oZKgcN;aFsEXK_*O
      zgO1LqzJALI_>LNW&!``f#ZQd-nNh!>gkSLve!~)e$Gh~e;SW{dd+as|4-2g97AWts
      z?1j{*f@xYBJF<WrEgdIl=V=+l(sr#9!tB-Skb`mRIWsh?MxBHH1QV6<!WK^N5PNhU
      z{~GCMXgEx>9HN8s_*6X=;7aBQ=I(rsU@QQtnE7NO{Y{{#XU-XYoXjP4Et9@Yx0zN>
      zc6rW>oA=@GBbteux2?rY@Xq~be<qBK^>9cg$G6BD_~Rpx5I!V@j+F3YMwmD!0w{_g
      z7I}ABL=@o#mP{%`39s;ho+m(zkF=<SOR$7_&W+B~3@*@Xa6iljCRvD}tWt=#{sCZv
      B_6q<2
      
      literal 0
      HcmV?d00001
      
      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
      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
      ZuEv^h1K-8>NZ1)%(xi&ozOQlo;J=729&!Kx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZOKuZE5QhKq6YR-@BzAy=5O%SVun>zZ5`{$`(jbd~5@rJ|+IC|aIX%%#8^JBO
      z3JVg61qUF?QMdxiKRuCykT=y;(_ep8-ShkJ&tCwZ;$am9!P+PFS#?a@39ZvfGCp;B
      z5FYM->FZNxVp~N?usC6EHU#sjPK+8wI!Ot>3HJo@LNK!%+texRA~hQ8^5(^#vu~Hr
      zm&y0OI-MRT%BCOKNe{?}g37kB#_b4-8?8uC+KmUgh9c$z1eg)bb&b_8$0t3V9IM_)
      z3l_R@pM4d(v%daVavx19Snp0|oqC@wL1QClM#>I5M=mjTxYdfXmdjbohM;<)(^L(8
      zE3f+(6*Q*^!d7$}g4F;u)CIMpc%1b0fyw4wnf|m-GBqCYRFVIqfcq$;!m8@4Tg<3p
      zUS!6XV4P+3jH_@hx6d*6-J^FHYZL%`DB%DL%z_-kB9>TXf(BzI*ddv*mG<LvH2*go
      za)?*n(9Ef819{xVJ#P&-YVLYXCL6x)UG3E$Sh*3-`mMJVzT<fBy>vatC(`;vTKBgt
      LQ2c<x0@kho2!Mi<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jOK;Oa6ot<?59i^wA+!w*gr+>&#AzE|yFeESAQc5lRfvQHNRwn592`5cor*PE
      z_WT95L4pQ>#D)ce-@yN1hq!*UL`~R?=h$byIdkv$=bz7C0bIom84^RT%MW;2Gt1k?
      z0oS#5P3N|K=T%Ge9nCakgvTs9&8}!UdyXY|@7ThSvW2B_y&)`{mOS3R&A{$4%+yT7
      zcDUg*xIPe(Z@+&3c>895$PjP2dl<YY7}9lbf1MkhGJ!RtQ(=hS)C|qpVpu3lel9i`
      z!Zouk5(pusK*0>dTwOE7gF&w;tVg`5dtkFgnK&gQ9lQ)XFEpEB*{A;R(3C*#3ESo!
      z;;c=HFfCLZ3}+N1kYq@7gmeE0FkdK6`rYj36f7Yt<2*y=WD%+ZO>YY;hCBl?FW{1l
      zi&W{8J_VPtN^z-m1F^HuusR;s?^k8&{yC&#C^ATud;&R?6s%)|O3(X!VYC@G#z8@6
      zCP6{Yii;>KxPmN0%rSjGL#StWs2qFdz-o!Rn%kG`)O)t+9t<l~!w}s~30XuCB_(?*
      zMl&ib%|kS!hSNApYKxo_J)>%Agt_;g_Y{o@@9jfk>>^Ei(RblA=1Gws3q+$^O030z
      zwM!m%@1(j;EVc9znSa1p@6%HPJ|p;Z51RMw$Izq~k=jLQ7cUW*`WxV1(^@xbRUP4M
      zz4RS1^#d})FUUP{C#2KM@33^FKVfBrwRGVS>LE6LRr1A<C=%RbrV*x5BXSpUyrh!o
      VW5=xq$s)K#Kf8b2Yu?)He*sPp;t2o%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O;5r=6r5LqngW6-m|!$|^D8!<F+_u!V2B=2?n~L=l6Gs_E%7&a^q+V#@!${e
      z>Rr$N3FD)v7xnVq&g{&*xBL9@_yk}NOExUR>PU=*t3tP}$HG^G^ZrPB=J>{w*G7ff
      zMuxERt(jhSO(aF|BO#Py87blSWE8XIvVBCLQ$n#7>evWvdcsd+cIWl>{jUD<M#$|e
      ztxS_p-RPvzzR*LLW0f8@HhY9jD;!7%GngyDL7q_RC@s&Dpf95f(f1{x(g{5tDR?mB
      zFEV4UR7_Z#rvCe=2Eh(w9E)KZ^lJrz(+!izlP792YWeT4*`4^X4&pt*wT>)u+-*h{
      zX8FW9$a5_)(`3%#p4-}fK=D4+l(;%6d%)g9lo{8iD$Jw8i1k>&VwzQDWTEy6@T_hq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWo-)~c87=FICr(MswwcS=7YwMUWXwPK77(-yzu>o2bTQ-&@6HGW;&$a_yyPTdH
      zyzz>Ez{DFF#9f#yA#h=WL&bnm6Qj3Y`3GR4Hxf18m^h#Bv^#C#=KJ-&@AJOT`##@K
      z|9$lsz!2UJz$1{nroX2Tn8kr9vtUe@*Ov?{Ti7Vumu$<>*8}hg?AvoWXXfn&vw)g+
      z!vsWDpmklhuGg>x+OCyL_MD;T<_x=R6(-koi=OWY_{YqGX=emFQ&W2x>QbLdF9`T1
      zi#bDu7p)<vXbwUk5`qH1Jhg=osGK@NXhKjRTuVH!FXavTOcj^){DN+o@?L%P*=uG=
      zpxaGb3#%_cz+)B!Vy;`GG04W5`AQmZDoyU{*&EBohHVxLr2x7G+Fe>Ru0<B!6T&`p
      zsW^b%01nps)jA(S90`GzRl}}T$A-xEa!X~?3lcyJ;V@DHK~5`|H`h&@MtPRT{t#Z1
      zAfDwlfk5i=L^hkw1~4p;aw^N~h1G%6mZiU+E#!<FGi7^bWujOv<VtS2Dups4dw)!T
      zB$-p7pYvNH>g5T(6<1cc<_$I~P_)d|8F^PMqh#2!giHuyGPZ^H1|FsB=7!{PK7F2W
      zj27G#i7?GZUMiNYWrKR-2)k-=bpz;^4Cr~r*szRc-8ORQVQpSY+Y67B2u~g<5ND@6
      zxXb2KMqER@Ez<7c9@F|BqDAw5j<8&!a%um}35#)kiD1ALt``_QjWFiWfp_^XZ4Lll
      zMkjBCl7l6@kkg|r$u}QwuQ&-u_#*hCY7ek~2d^smd%SrV1(qo-wu2g~cvVpa4iT$T
      z@&I?~rw}3heDDW#!HOG9c~pZhGL<YhD$~bzkk%v$3D>x`It{$V-?WJcZr5>)x*VhE
      zbE*|mTm)?7_`qpDFkj(#WGo(0w{V!Z_K(rN_vo~E8-v;+EAU-q=eKbn9%<P^XG9&-
      zd>lZ%smbw=*9Z?g{oG-lU!WCVvV)IU$Jgk^6Aa@UypC^i3g2NI-{T^F;KY8c<1%06
      z(u64txLgKb;PMN(NcqerHW5y4qB)Vg+V}WVG(W=7;zJyLlDq}QdoMBS+eVkRgV9kX
      zrrd^q8|{6Gn;sEUKAcb9^zPo-eVT~*wh-`aBfwMcc_L5Q>|ZIN-`LRKDV9H|<!3mE
      zKcV3-miRYG{X;^}FoAy^BAH5I?oeiNoTQ~RW^sZxIp<lN<jG5{LB{$iL=91gutHCM
      z%NGb=;ETkFRp#`D6iBrCE$V(m8=)Xt5fEX7MFbrpS|`1jE4?>e>17BkOY&=R!qxPq
      z%2&|^Ma1jo<9BKKosTRvKaSJ%ZPeOb)*<JU=?;E$2TJgM_e8@KdSgmN{RApEDyyZY
      zsBYD`GR~OYpL@EE`$VYxL5=?#LW5uQp-CKpDuxgd!-$Ea=oBM3B#vQF9LGs<!l_o1
      ieL%*oHpB5uvQ`x%IKz{dW8GhExCdvQJm>Hhcl-}ahCnX>
      
      literal 0
      HcmV?d00001
      
      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
      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
      OIl?))b|&?yZ~PDHK)q)G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQzfJ-{5XQgZ-<bmhK|qNXCKiB+#8{#v1jT3w7AXC4Zg2_QnY)GfIKF}viG`ho
      zK80^#XPi607%6sUXZJVXH@hF-FRuWOP&5!C6o+Ces>-Q$9Nn<An#%J>OFn4j*ajkm
      z-R1pte<&^8)vgrdUxbkMq^rcJCtZ(QZZFRWbVW!u9oy5w);%$r$msjm)BaoIlL)aB
      zWh-4LgiGZfA<}g2q=_)r6EG1cq}s}soyoW_-5b##NkXRWSZpBJhU>*)MBgiqu+v_S
      zw>o}}kSopaN5URdd30qDYUQ49m-Fqi1Y;~cPYeQ^K<Y0_FuTsgwPZ{AgA`Uh4*eeN
      zfuF;F%D;&yVw?@GLRjO)8i;dD@X0Y};vB8akbDl16i1UWpoR!ek>*`u4q*csu6%(k
      mM_-`Mq|e4G2QzH`S7@>MMWB$MQws&=kw<|w2wU78!uAhc@NDz|
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g!A`<J5QhJOLQMfh5L6Np^#qtmjPV5Ff*LUd4`}ZTZg5FyO}iN41Nc6kNIdue
      zzKCyOoE9*~gu~A4Y`*#bnf?5J{{V1`l8G4MU@V?RU3vAMr~A@Z!ci|`;K<9_P(Eqp
      zxh4!kc}3k0#&W3p+LvPTix9Fw)M`sV;FkN&1%Yk|nYQN!TDaO4&QvBU_6%RI#dAWk
      zsa&O7gm|TD6O6X^AT7kPnTCZFVXLcL*_%!V(!UF*A>_K=P&l^W3AtWA8v0QMgrn|i
      zymd=72!+ama)djo^8(5pHL7-KS_n<^1al&TK#U@@NboO8u=?KAAId8gj#FOebP{&r
      z5WE`yGNFV7lAKMhV%XrrN=R``^UE1$;+&|>k$H=dEshprKobU9$nq_{fUu1mSD`?j
      mV<^yKGGvpr<2iQzD_paACsHUbsHFn)C}Nj22z%Te!~PF*!*aj?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%TB{E5FCfJrsb8=^15+ME>xVkQK;k!(E}0}PHt);7b}ix2k~tj_y9f%b(0o|
      z0taioGrK#p`}y_$0pJp6905arAz$TC+u?M!P^lMLUU-g>A*u)?v*!)P(Prp<m)}S)
      zt73)@P0&WpjAGb|6T#5EeM?pDwapyIPEABie;9^vspOoY6+c~<O`M_-ReMRS{V)vT
      z<gRJuisO*s{1+Y>>D;~bV_RhNx`cbtIVr`HWI{@*v2JbhkxV|=VwtM3E`3L}^)Je~
      zv@2~xuSLh=bPtYg$~u&V6uX4%{)6oOso8HJ2Z%OE8v%ONq&^0Xsv{iN5&EBya)8qn
      Dh%!|n
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=?M@Rx6g{&otSl=n1uIek#j5=PO2u!~!~iBu08KD8@e8-xp$u7e$?PuCA3lh0
      zfr+3o(FgFMjCXbmZ9?(K?Ci{(d(XLN?)>@t^EZGh9_r8-ay!<(RS{n0d1Hs$LCxI@
      zgN;CPYd2rjkz`0m0LOA$ZHSJ3hRJBx=XNMX@Tu}bihbem7H>Ya1L3(0{lT{I^YcWo
      zdM3jno$gys-tlb9*|a^^4`gTup4_w@%l8?E<JgFNNo`R?|0Cgw;0Z&e@Sn`50*iHq
      z<dWCq17Jv*&~Z-v4VxH%VIYAK6N4CKNE8$_wJKb`9_}`{d}%ct&X8GED(jXMYTe#U
      zswx>K&Q_AIlIDaA$&%4Ru}fC$_o9x=#MbdRD$_s?lP0Ecg(2JG!7?X9ByTQtEMizF
      zyy;38+tW=T`IbXBTImW}G%$_4j%y^jL)imp;yP|Hn8dy2HN}?TlFB4&Y6c1@=_oRc
      zpU!ZMHBrV4!+`KrV^{&%mn_tZuXW5ZOm*Vcy^YY`UgN>G*IfB%^S!utm`$jz+Ik2i
      zQ;iKTls11xeMc^xYTr3ULnYK)m&?c<P9>yPT-)({;kIH{9d{WnMT&a80TcJ}fMJB*
      zLo>>;%zaymJ?c@i@c2GYBIAb>Uj^o=y%IF~przBQ-+**RbsN1tjm98MIz3N+k7=Et
      zIaMkjVyHB8h;->YGG8O$1^OCM0F|uOk)^c?BseZ&jAkkT<Ly+R38|7#l)fRI_=VgN
      zHD~z<SAXE<7xb}%^1&;15J9pOG)oCo@GR{pqG_d4dyAy@4udqC+IwWRO^j(DFs?O_
      m(|9Bx8<VsJm>5E(U2m1LXt;$1nhg@AgaR4drf(8=aPJ>6$Q&yG
      
      literal 0
      HcmV?d00001
      
      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
      zcmd5=YjjlA75)ynC-dMUA&{5>#Yv2q$%DwFhzTNw5J)5eO#lfhPLi8sa559;fq;rc
      z!B?wRl&Wa0RVauAqLn~>p|(P6TNMQ#tE^R*Yq?g}>W}{FTK&;tzjN=MI}<Xf{bgAz
      zv(KEf_c`C*=iB@2;r%nOy#-(fK5}7<z?5~t^}*^;w0c>`I-@hu80k+YS`#rN*jGB!
      z1x=vj+zN}0L_^33cM0SsdPDKj%edXrbE?-0c-9BQrJdp6rcI+YtwR@vgYh^uCo0YU
      zSg3Dpw>n{MS1=J27_+8Mz^#^|9qZ!MT4Nm-4n}%x2WXo+FBAzS<_olxeG8himNJiD
      zQ<r7mz)AsaVYJKeKwyFniCi_BsKW)f8Wrg9z^g{*>lh2&iyZiLjKgGsoHAuTerYIT
      zv?TjFj96Q+BWwudFO7Bv!z+Wakos;<YATol7oLT1#MRKvNj*lwy0i@JG%E|7Wtg$7
      z?x4%)4kp71gV$DI2gr;c)k2Y;+CaO2chQDUqdyUfM&d49LMKy~+PKVFapBSwIZX4$
      zaM<VxhOdtGB>Rj=!qM|0fC?AN1$?PpMxoYGi7MVKJ+cW^oef!5zf6N#FRC%a1u`(}
      zDW;N+nV2P@hvLhPSUeO@5T<!G?aKN`I_9WlS18^VZ8Z`K_go!UpoYM@qcM}23`Huu
      zrqdQ(y_kpjE?mhQHeF0F>9`6D1oG%uy+Pu~j4s>3s&hMNn#YXpF!QlG<=!;ZDK0G(
      zD9W^K>y1TkQ{1TytaM?Kz|=H?mS}6Tv)A0fxeanS66`aXmsYfIUO;r8D=#e=)S#)~
      zx(5?xwlhew96Bsen2FRrq&?8?!7^Oy!g8ij8be()8a9Fv9oM0iAlp_ir!x~WPD+JZ
      zV1=R!(`iAL?ME48Pli-ft8u-K)ga|PDx12y;|e#kwUL+3L}95((qlmd*=?1&Y)&l<
      zEcD=J<rIsQl`IwqdV{fGXTpea3*KB#w3`7I+&kMQb%8n$dekPp0_SB!W@AD@VCBnZ
      z)f#B^AgrwVM$oUdHyWcWg2BvY));8?;8tZuY#G<k7)cmC3U4-}ra+SiNoBNt1j41!
      zNRQ;3qW*ouGn=xTHv}3yxI>xWIRa`!I2vTS-GRGwY{3Ax4n-1mp#<~LTp}IH8Uqd7
      zn19)D)d%W5*rqnVm${aXTzxdj%<yvQejN|sK`w>~)!N!xRC_lC>bW=n=6*Y&tg=;W
      zGs?VRd&-N4@lzKb8F9L`rsGkwf{<Qz1<B9gsAFG^$93#bnl5U#ZR{uPd3Zv{ld2|-
      zWy#`O7)pfJbABhDap7q`GigspR0|zHSB%!VQFF8_MBc{YUi<>Tbm2LH$)l}OS~{M`
      z3+8EUv0x+~GV7y?eY*?0N1SIRb6qkN?lNL->|x!BME!A=8^4(*{<26k;!mV@3HZI(
      zg%?!;+jovvXQk5EuVWAg_<{%f`;7=6sPC$hBXIB$*o7e-FXI(vZz5_f@}V42vh6zL
      z#WcLAV)?im!ve*P5$1ZR%O5jtO&WX}y8H=Vf}e%o_Q;JRERJU3$WRK!{n2hqRbAL?
      zI$l?&t4nNQops|)zDSk+j$|Uk$lUq1VBGJ<Q95gpz=d~4R_|muygbTGFk+e2TiL2d
      z%6e`2RGaZ$YfYDCQ0rXpF{`sLLu~|exaMt*CS#pOLrAqJg%-4o&SSb_54qJCi5S+C
      zXvCS!iz1!jXq@dsvyteHcDeAUQ4ev(COSUAhdhd1ru7_hi)pD#%G!!9wi|<5T*m$?
      zhjm8F%Tp~Fke9C-FjKPqG9{ZYYK$}g&ZGW#j+S5y^?}Ld6^D>lUU>-l<yD6;sobX>
      zLSgw~6ur#VF_^+nFC}PKp#2>eaHMlgOI(Pl=KMwQ+q+g%sx?{uD)NUour|n5liEKr
      zjHP2-j1p>HOx;|{QqoYt+e4=`%38Hi#W2d6E03X|av0N}f=)4eC#1GNXTMq=#^uzg
      zJ!Z|cypCzBs}AGpqdfE?#%BiVZ5SmgF4{lg(f);T+J7)bJA(@ugo~sbGo%+YrEWqj
      zw~n?U5(FBsn7et{FfBnNcbmy^6Rsghfu(59;y}`Npt!u^6|@{iTT9h($O{zUNmavG
      zHESnaIeVaK`<*D|t7GLvcw_;_$wG{mMHz649XQ1{9H1C$a03tbpa?e-m<8viEO4IX
      zn!4`U3eMUz90g^Lra%>FTQxCj0>0Ut=iXpVnBTT+Pa~X4YC%pVLO&4}6XC@uke6VZ
      zoW=lNVxpaGo#UXL?Vz1av>hhe3L9+!FQ^k;^jn3|$b!4i4x>-u?oQ)&!k7kUg|Cv}
      zrW0H>!Oh4BpU(m0a{&1WC}aZ4%Lw1PEHFld@0K)-?-9Po(g>~aT~35o5Md1w&SUuI
      zGkjMueDl9Y_#)pDzGxQQC+urqrNY<$9k`3^Yj=2%w_(dDX4o?pHPWt4=Px|SMRaX3
      zU0Xuen&{e6y4H-#Dd)--G*ULnWmrL}%8133RnEn%axP{SFQ&_MwZ&mdT?SL)qg@sC
      ztRF0Y*r!}g(A65vr!nRHgFa1>T$Q9r1#+ttv$jpbZFl9(-FWuQWg7?1o+=wX<<Fcl
      z^QCCRwhTjaDsS|Z+nF+hw{2k1$@~^fWb{_RD_1dc*JFZgN0Gb%<?=?%qr6hygk_Y=
      z<yv%5cFLQPq+Bn9xS#R?*@34ipOKx|OPP-DJ}0{SoapXjbT=}BUOZ<;S7Y_qZbny{
      zdAMnGbaB!qQoD-o?I|La9>|&i|2vV6VDkYd8WxvA<kBtVQkW5mkW2mK(yioDKe-em
      zm-@-2IJwlH;cdI)ZM)-bJH5Tz<kGbcmlkDk>7LQvife2x4JvQ9rnyvh@c)%dM{wUk
      zCxF*s66v&&bh@3vyMuJvOgasaPIr?|1EkYEq|*TDw3T!kAf2|6P6MRVy`<9s>2x3I
      zG(bAtPdW|YMY$y-$b(Lh2b~}fGRQwRDfNOwsT~=V`pM`ZW0PIlOUf%MkHaPQz{Q9C
      zp%k|&hnS0nieEF+jYOe(T;wD4=wal`M^PxZ)3e7-bk?g~;-D*W(3KF~b|T0}s?Lv5
      zznE=I>hUp~j+~R+-NQ!bZ#>y-I$Cn(XhiT>jjZ&^-55`tkND&;ezp_$Rn@o(w4FG=
      z>KG<chYg8N!S+N7g*?@j)VO`_VLWvN&pw4Isx^5XyH@A_>M-`QXL)HD2M^=dN7)+8
      zR%)+S?nZ^9bZDefjhkxY)T+;|+8dv1NSmWM+J~vFu>FSH=D)!Yf_3M=Wkpp@+GnlW
      z19y$|$)i6kdNEX!`@<se<sRj2FW|4t9qbTwT#D0p8+-Ywr276Pd7-{5d4~UU&}!)k
      zgPFD$Un?oLh*RQ}(_x<B|8GI=Wa)Yux_q7--9>)xMycG3OXV@lm&dU{et>5AA+DDn
      z;RbmEVak5_G47O~U_hS4qm(=3r+7ks&Mf=_yJ@>uzJ!<LejJp8I3f?=ZFvyy$swHL
      z_s=<hTE2oW<!ks#zJafK&cAui8To-2D?b#4@*^=>o)G1f)8)saR(>L`k|)J7%2xTQ
      zSRp?btK}D>QyvwDd{^|yV`8&BF1FDAA=*DlyJu*>pK^%yZ_@4^+Ml32Mf=Za{}<YS
      zEl-<y_%O~>Ih4vnj;!uk&Ap3OW}Qd;)h@-lIE~-3h1Hmw1^69TB_liA9(~0M(S-Ln
      z*UY|q368-n#yX>iQX@RU6ID0v7Au_5XQ>hQIBr(P-{TLIUS_-cg#w=VK0h`55r6(K
      D57MGS
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O>Yx15Pg$wyUh~lcc4I_EiJ?xh`1pIA<>kets;5|>Y+C$aTiyPx7v6Se}|vI
      z35f$gfFFgJ-6U0@mbiHA_uj}e&*NXefBXdS63;?Z2>X}vvux_LdD_2J0~gz?-1S_h
      z<mlkNaviPAFhoFDEp<lPWU3@Az1CK{H-v?TI3on@bf_XMpjyKsmIy0dZPkZ-)K}R@
      z**A)?-c1M6oXJcV=P4MtPkKx^=>ETw7GX0{Zc^%`%C?bX&faN=fAZ&OPOA>ph0Kjp
      zL&8>LA}yO?nYKwwoD-sVUk2*R>C}!xY!WtR1;wY=Oo;l-vobw4MkUg`&60eith?5+
      zDO@O_?z!u{xXeeiMcYpti6cMJ6Fol>i`Y+`h!a225gk8qERG4UJblc$IC+uQ^bO{w
      zgsqQyX`T&KM;8-NzcFSn3YQ7B*jkm9uc_GnL&EmV{u?QT<=Jcodtj@1o`D+gc<y)&
      z`PAe{92cK|$MQGcR1oo6&<MWb7VnD$7I3`H7~u|9%D9R(X4Xq}1sm96?k?_mux$@^
      o--A8yU=Kamjt6_>!5(|C-M=yJcaJ-$U>{F7M$Gab!_%Pp2gH)+s{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{-%A@o5dP+JalLpo8h^A}+xY9j#8UOyQYZl-5UrvFeB309u3T=z<`VFK@<pf=
      z`cQn;)(86smCjvG6q;I&-JO}8`M$Yt_V)L;?*O*2D&P>_pUJ-5&}QRv<4iT9YS`&T
      zhmlpXy;_%nZpp~lPho4{YGZYDF5nU-lA1t<Cux<y2x0m$S~2a8w6YN>!e}QgB~X>%
      z^&e0P#o7?^lvSH>n=tZ0hdTO5SXui|Znab=xE0e<Ib@LcF@_03X025BKq&YS7>%uI
      zA0Bdqd`*XHuh(uUdo*aYP%}*#)TPz2p9bCNRCfuR!`PpZiCg!Yi3sY*5N6WupGdY{
      zVljyC3Iph;SKN1Bb_lsc)3Z&rqhlRs{~Ay-I)YyfLuD(0>~>XGV3{yCMAkvG{QtwI
      zicMA~!z&Ai-v&#?J7S@Dk0WF7`St}{$LweL%$L7nyu5IQ$@2OYrY@7j8Qu$U8Q})5
      z_yJG+#JIS_EXNlIWq65K>@h$BPl**1I!rK!`IP41foA<0v|Ijy$#=Y37o6@OrpfUM
      kagVI{^$+;hSYWU$XTD)dhrhQ;b&*?%>sfv*VFmMl0FiF8$^ZZW
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh4le#Ii*F%zS<Sq^#8B63@JX(vq;moXnKOlFa-(b_Nzk
      z1_7{=oW#6zs3JxNzA}iCRERD{24)S-Fh&M0*NWuS0+7aHb_PyH2057Fo_Sym5Y=!+
      zKn=n9rA5i9Zkai$j0{p(ouCIYgN=~^Xa~^Q3=E7w7qK$10r~7e9t)7>0Aem6n~8xN
      E0M17`0ssI2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%SyvQ6g{^l9ZhXb^Z19jF}QYDtPl{g5Zt&LL)0muQ<91LZ7%!(KT5orSkZBD
      zxt!O1e0;vW12{)2Fd-xx`7Cp#^YVUESElUEt~UZ6A+$;(w~ybNz?2Z}{g=|n(M|AQ
      zT4id2mldbCgkb$z)jOl~wiB2U;(ewle-sX7cdNlIxED4zvt!0X2x)fhUT`t^{fDOS
      zo(Kn-MOC9aULD-%zOCvj)i7B8e&%eL!k2S`%je&x{GGrdqa#Kh_rNm8|CqVMEO6p5
      QA(jpk{bg8<dCLUJ7o`G6NdN!<
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%T59@6o&uG;NXZi@P1b`q6>*@j0;f`3=tEI3wLE`v}BwiLq~lKU&WP)3m?FT
      zGM)~_7<Cdi{o4M2dro`K`^W1WfCFsV7-A@N_&qPlpwwt}gsU2n>PD)mLc#C0E+SQx
      z!fV^G7$#$*$Nd{)Wf(q`zEnpHsp9SxgH;LI!a)inS)?({Fj1GjIFIgHBD~}+PcY=_
      zfy=!s9!kA7o0htjJ%;W2KT;`EFiMbNw%E7F2~ob%zbRkqEdCOXlY~l=aFQfclZ0B5
      zaF!%AwXpNYJHEZFUzM_UrXND7=nogni61qKJ<jQ)E4oSse$U1-Lw@k3wZ@mi;GBqV
      zC|s^Yn-<L=3SCi^x;}HiyI@~m!H})_z6dKG@AU-Ty~(gRxcm1RhRmRMtPN1fsNsN7
      zno(cSXw#}hWW@B|3o_3%8G=KjmXUfQGmz~Yh-1(#IF1R!Ny90_oMGN@+Hl5j)^IN7
      fJQgV0B1Nz$!V*?!rsJ>1;~Lh94k-*9C|Dz(Awk6*
      
      literal 0
      HcmV?d00001
      
      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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
      PSg#&3bNPRG#>oEzp5$z&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqPjk{h7{;GX(?&vCu*DXvt^d#xXiMpMaK!P#*coOjJ+#9;z?P;H5+?*dl?NRa
      zXFNEb{ZNk2E;*nU583R#`@Fw>-go!suW#Q0G;nOe5ZJ!<-g$LDs-N|)Wj{GjV(E=q
      zfj1tP8x~A~ycPsrI7}rLRs;$<I!XMX-ik(Vz1T~lSYRc&^2g;PVow)xo0PruLqB;X
      zuv__$&g}}At!N-K5Lk6!;g*dh<Q!y>7g(w&LGIKKWoI(#$@s$S1yW%BH0pan*Nc6%
      zPJ^a0Ca|;kxN?KWtiCRWl)cp1T;a`G@_fW?TPO;YZYuV~m%+fs7VbLO#y!G^GU<3D
      z!V495j>Vq);jn3A7Y{7l|D)xzJqHi*NFbBCyNCqt%==3TZd<^J8ma|<Um9yOqGJx1
      z+`jp8v|pvWq|QE%CUIY$_^P9u|GbSu#TRheVJKt$S|q!hdmZ+JXv|{X$mA*-SU6nJ
      z8=d0d2y~Mf%S4||LSeotEo!=5%6QxSmLc+a^$hra4SpHejAl7|&b5lz)!G+0)vs9l
      zs5Q4$Oz$w;_<(h;9p<R$1`7PMlh{ltF_p`V6>C4R)!FCp!aSIwR5CeCvGbmL1{8CR
      zeqeke^E0x>RCAxra#JoTc#N_>tB5C@DfR}QVvo65tfIo1$+@ekRn+)b^(c2Bai61!
      H1Jr*56foE^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g|^jy0BgBS`ifl1XpdVvB;B2#e_7NkW?|j@Zj5YI+h{JY%)7rKYo=a
      zqKOaw0DqM6&Qg^`s}J*WXU?2^?z!{r`<Jf(9-tkd!mxbI$GoGm&i>$73VUFU<R`t9
      z=XtUfz-Nd{K+5%K0trxMSS?R;DGH<P+s<>N#wwK~IouIeWtyRCk5ry)QiA@}3|)qq
      zF;5f0uy%$j(-`?GB`KX=rgLiwVKYO>>LaC<eax`k{0HNIXj+F1elHu!IWW{C1ekTZ
      zixK7!hVXDHLJbQHUeiJAeWm5I;$$Gr3qD9CL!+Mwo*r_eTs%4SU9Ai&({&|VRDov-
      zGG?LKIw$hX^=^pkSPig3B){$ciw_ajaD!n!mv%=8ndhoh<u_kCx#2-p7$KifCm0t0
      zXy|=M%@FNrElt^CNvi9+TBKR7^ysOyN7*pIZH8-8dlsRI7DG+T*L&0+t_9^<`dJhG
      zqun=F8qHJn&N<Y@Ci&~pm_a3uo#8;-aCXxttk9?-qT6}eZBy*gT5sPy#fA30Q^f7h
      zXnZJvmuU{m2UMqD#UjP-A;ED4S7{~HSej5hB&53w+aD48pRml{Q&hn(7C*$SUpvPV
      aPFOswm&gs=bnl79@c<1ZH2b)PJ3jzKn8U;X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;6iE5Pf5Z7>p@k0+f#y+VT;XQWvg4Tp}Swil9<Z?i+WTE^@rcarjkSdZAJe
      zsOSEuidoxIf}m1+*qx7^dHeRw{{Hjx9>5U-2NvP*O5BK0>F}a=C8Mm9rBV!<u^0|_
      zT1h6;uOgC7J-8OB$aLzULRiRKVv+RACI?kQEzgcJ6^G+`LiI!?Dmx|E^`J|rH1!wh
      z!p5uz2h)W4wo2srXwZ}CrRc?y;J0-o;;u-QiOXaq`=*A3u>D_j8w4lH$usVLy=a~w
      z-gue`S`L<&*7%LN7%qG)dsx9LL-u8ME(Q!)s|OPZter~w4Hs+JaIpSJsN&4SCSDO{
      zN=}!Wusq4CL<m|0OCK32#x#og@QW;cOgJvv{&jGTpzDG#OK>}Slt%JQ8Ld~IO#P#|
      zk>ItGM5g)E<<P-CVePNV6PBL&D)_|r*}SIsx7o1FxH+2PC}c})r{4d7`<)#N9`99?
      ztXyD@eXl6M3(RxGQeu&J)BKsMZMOcwFZg$;eJIQwUfyzc5~-6TZ5P!g68GUXwsLeI
      m+w55jU}|ql^j)?V;}~jhpQmPyExgP39qh6-$`bZa$NB>UaK<A5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+OK%cU6vzK(xWiZ&Ew-h$ReaFeLJN#V<3da~jV2_OE+8yiXm05(P6IQ|FqrsN
      z{0OESH@+6ewI9lO?#v|6mPHqwb06pNJLjI^@4sKa0qo+L1%t4CDnClc^_|0`Q`HOG
      zVW8x2e;`MrjW=p|q=J2acqRiG`hf*O$VK)8>Gcy23u(eqbUF^*fitluq+hz88}1QO
      zrE-@b_Wfg(K?+$L7H$yc4_r^R#yU+$9t{*>;lS_7L01N@-Y175{NRoVm4oZEHV9TP
      zBIlr6rPy<dx^eZS+_bPrSeX<UsFMNr#EBb`#RBp+mT`w;_f^=ELyo;vDo=&t_PJia
      zk-;kNT3EZ#uK3QzJroFY30%h~<frkH2<2u55AevsL&AFB8#`C2I-kx|+wFTY90$rq
      z5$l9S=6dDz{9~p#Jc+ppwdn*Gi)zfECm8;&eu_!XcsRJJhF@nf<m<Jm>q{}U1)B+7
      zBY~O(Cn31joHfeb3<z05rtOb|o_g)-(OAARp*0Oiu$!L8bE;=njVy5H)rfpnGJcWE
      zV~r=AEX6;QKZ_I$J(|3m<DJ8rSex75k@?CC12)UFJ``_plh<}^fLoa79f!wlmfHCX
      zTc=sqcm80ZRblZ$RDWWL@kFG)Vdc4*H$Nj+{ek<df(0L)=go8WiZc}%1>zk{@g7+r
      zQ4l>8#W6O8LXEW}`VqxmoGGE;oY=tQh^&rHUKw0m6<a9jkB@bkR{{m(v5g&=IdIXH
      fgj@R=OrVRd&MsPC8>mIn;r;>o!HEA<o?`7kngj&8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Ld3;pW^*`snnapJJ2!SxbusJ9onIxj9hzW}cYaj_oATe0QA(@1cWG2o`Slky{
      z_pP`zxD>P+6|F3iP*cIy3RY`dyIHHhR;{&m)3(~ywkp5xx$n))O9=cvzdt7TzIX3E
      z_ndRjeqUbx;@Ja4beh`lA;lE9IJ_Y|EgGM;Z0*I7rc_-j5ec`?YYQin9&#}i=;5|-
      ztks_2p&X_W=|y#sL^RwMy)?YGEy9#vRa;+CT{VBr!m0(;^Xr(#onM`v=>)$p8fj}T
      zXUbg{jU>W}rgfW-IaOnVsX4KDMWQvyG~5QMQA&^IwMSCx;?48IP3wS$-`cb@6>Xcg
      zIGkLU66^q@5TrHRctl%c;Z$b=vqx-9L{pKYUVA&EX?VG{%Q6%dGzn{}<MH*K9V;!W
      zbL+Ce<_)&>EbFBM<3YJ%5i<vf7Q{N++Lm>uIy&w1V46_f8ta^vW@hbxaUm`mOGOeb
      z;ikyEczZ`U5l+PuOd}omWZ%mc?UDAikwo?#AZSL^XikFHD>rvUz;9o&vjg*lYNoNr
      zL7d4A-duVq)3BrH1(yfDn-vmDU9oUG&S1D>6cQMXwPMV`2{7>z0B&gu%h_`!1ffNQ
      z2M<F!647=oNp;an0fVbRRa^_PemgJT8B5_+_RuZTn8rAEOGH}QAokO&G3+`_=C6n(
      z<82!v=>@|zXI4Zy+Q8oQ%V7?=NxvI~#ci5bRmuLU!K<Naj?o31a9Xjf>X@3Wns7%4
      zh-aGI5=|siwegq}%JOg`5=+gC$C9Z;XOlkP69ys0F#+`CH96;-(d6<(eA8z8JPVRq
      zf9oTOWHcUIRW%=M)yu=NRDHOuGveNvA0PAK7nj|@<ek;j7L7$yb8s?Ki|TQ9^Wx1B
      z51n%i8=?;(mzXL|@{rd<06sKpO*95FywIdPGCi~y5~zp!>#dI#(GruE(rldlERBGy
      zsxfH@<$Gw^QM*^gGHN3e&oybNfUm>3r`5+&cBg{L%vB~8kSV<elZH{g^cqbXPG0Gq
      zZ&IObcmYh+@l?@AU!o<l;3AVo(kKtDWh(8zvBSnrsybS0eH5l<p%_9veX4c9gW2c7
      z)|MC5%igUfji!KyqD-M<?_D#%1o&tjt(T44n5G?X<ADq9U1KJVp@8h)VbWMKao*L@
      zSfsX7ERAg}hgZj&!fo|oxD6O(`(;j>wx>*|*t<GRWzn%20O>yMs0CtIj<?1~^Jt?<
      zn+QIqAeyX5CdGOKmxYOVJM7d^0LzP3`#{oVCS6XjCnGFe7sf4{Xo(V&Y68<n_9qSo
      zR1+v7e6>l}(6vyV)(C)1aqeP)NF(iVwdJz!7CDeF4~|&9K)&9j8|X$rhS)RB90an%
      zMjU%D0Ej1>m^?tRRvYCJQ*AzKlx(vsr+b@86X`@4fYiDu46(Px<^>eE-x96jIHZwB
      zzm-!GP<NR$flk0e>}r`hr!9h=(W>+{lTM;Zh!-$Rn-%OjVQSIwf(rqDzey*P*GCW1
      zb`O0W$E{VtqGoe46=^qV2R#I^;Y1?5xhdWOkq8aKzpA4dSXHGhptZ)EMk}i}PL>TW
      zjhYUe@LcLP>1MjcM~~A^4?WQzP3;R!dXk=k^^0868EymV{y}gof`4JCyEhfLPRc{O
      znMOG%)}SgoqixNRgqQZhnakiQ(fBErP&lm8te}r}(LRy9o&nq0Vo(Ip+eQ0L`W8J4
      z%;2^nv1S-LCuZrX4(?g6Y$VFP^ld0kiQephfI0}<I(5m>QkPxu9V`gWk-c9q>1nzJ
      zG3UB)vOyxav=4^Rtd`S1Y|><!f(g+9t{7TB(EH}#Rjd>0FGpD?0T0vowA2n}d$sWX
      z(4=uR{y3s&DS#mJnn}6j6Mg=vNw3fkz_Uao+1Un-W$;Z)kQL(qeFQS655mYLmB$l!
      zIT6G1Ja3vbm5OBB|1s$-It}oXk(BN7(}rD3sD<EhEUZYmZ^5RfNJk0*0#br^!I-p1
      zsfukt0Mo32WabEs@0s*F@z-XP1mxDiBxT_DCVfDEKu`iU>t#CR7|iA_5j*`Slm1LE
      z!Y08^i;Bv*V_+A3B+~NN0rED8Z5t?We`lIe7SvWc*d!rsFcwb*n<QXPMd1U=f=QkK
      z1P8`Nv%T~QB8`$@o4Bu|hkf)8?eo#U=-(dtw4dIk156!u$#H-RrvIAsnQ*88(3(2i
      z!bm_`T5w33OJA6D1ad(E5k?)LEtdcd7Aux9e}f$3aqXdx6}voaq|J*CvNThZCc7Cq
      zohunnKpaO-btYJ8o<g|hve)EX_Q76ih9x2^;{%LCdUln}HccMF`3NXMRu+HkGj+Ad
      z>Rc``d6-NP;anN7i=^abp~)k}-R0SCR)T$bKhoq;!mxY@RMUEGJS9Pqp@7L_=uXRX
      zS?>(m>18P9LhBf_yIam9*xs2;1=mI#2Or!RO|1(?+dII6NOQ17=NQ4M;kEJ3RM5-t
      zP+a8UiO}_|MXin3bvCWjAT!eM;ggtx**R5hZIRY+TSZe-Bnhiy>yfZfq;HMRaE$gO
      zBL4iyCTnvGM<`D$vQhV|aq`&zV*J*FeZqW;tJ+X$Kw^WAtHr{nQ%s&F+LR|bK(sxY
      zif+*SJI&<jd^&K#IapFChXe;Fi_SE82A^eVtT0z%ew_f!gMHz%O$t$wBxu60W95gM
      z3d8|9ElpNV=4*+@n$z~Wy`R9P)x{buKgxHMJEc>b5a%50#cHPq83547=WwNmE0{)S
      zPpSVLljqUv;6JplCf*zcX^Etd7w{qvFH9#9+InV|*|SVuEJ>&r4krbBf?!J6xLVdO
      zHMv^Gay9QaK;MA~bqhAjOkOVHI|Tc!h@d7B(?X1q6(-m5N~EM1LGFj33^}6=A_hQk
      zb~GnE40BzQ$xf1yrcQXq&C|k7V!fw9#VkP-Q&*wi`FItd2S3k^OeZ^iPMWstg0yni
      z`}lmmz{6ikD??@*YcBG~R3Z+!PndimuK^>Q<B+!vQD{O0GIEB!O=ekk(86i3NEq4;
      z>QUkW>0_OQr}4Dq1wtmZk9JJ+B{Iweb4BGVBeE5E4^4uvceQJ9N~=>eRtNqr4>zq3
      zw_<#<lNZMjGsz3);SA|<ZZiQeCRQt)OjX62Bb%1BSf>wD_&9f%d<i3@$W3;xg@e%<
      z{>Z6_A&(Ys$t2*gRnv56l@v$tpj$i}(Plj1FZ$jN3st;Gcky<FC|35!ET%Bcby8#b
      z#G|#wiOc}5f=<5D<g55<OBm-zV099aj0&GK2z=)uSqwbh22hb}O}<W4M4P903PqVn
      zv#8FOP5z3lR?9orwndxZKluie*Kt(vy2<35)9RBoh#tO`>4dC?TejNbhr<lJT6EIK
      zP*nr*7}KP-c(^&zT)DY29#1VxRCIJ;L+ElmrfH~_(S&Tf)#SVQZkTQ8reg?BI~_J=
      z11xJ*xsUJVE)RbVPBV*`W39>C1mXxltkda<V+<0D{Bo2-UL1pxC-Q?P-9dMHI4s!h
      zF!>>V7<Dzk>VH_E5rM7qa0Z;Ummkr(ldhEJayLKj;m1H~7VG+WwAth*By)4EY+SxT
      z5O~t$**wR~-^39*N@HH$g%^&Zn#|o}@@0Ivm!E-kaMspjtjFX#X|s42q!-0hBE4r#
      znr8LBZBnV#L&k6ll|bQjkcl9H`8y_mSAqwLC>BaMEib=k@{96P+?)19`Yp19B&9t3
      zeMCH(E=2kLvjXAcD<-{6FM9aZe$-2<0K+MvDD#g^dWl|?-cL;WzSVoh%RdL)!J`j>
      z`?|@$<TntDInGDpHXx+6b#*Y!v7D;d?>9|;i~q+W(5lQZt#oQ+`h>HFA#KaEMdge&
      zKDMub0RKjO=i7tEw;CVO*LO|+t>`O)_JvVYI6eG3JJ%famSNIqK7Nmp7%b%y2~z(c
      z;piXX#`=W?Ho}(t>)170xkmL#c=~6P|H2>kH&E7jOIA6k$ftR@fd6Xp-)!TvG7*j?
      zqX@Mn{P|e$`a}RYR4>g>Yk5(<hyU4+CAy{u$`>RO@r0L=4;0Mrv<yka3M~;*{s&qX
      zjK=IV#K-@jeO6SLJtfq`{(lDqD*?9?I3}u)5%@eSqQUkpI?A<*JwqYWYg*&+<~7z^
      z42Rp=G7n=0vltfra8{|fM|t|GNOe5c>Qgx?*Hk{b2m7|+g{~+=Q<Q0{A(94)snd20
      zX`qzfG(ed!)KmpBVOS<TN>B5s;r(K;6)5sY+anp9?o}gD$z8cF60BQX5e&Dr#t{Ln
      zYY%P=Te)5fBGBewDjw`iMl|~oO+%hyt-+M6(b-neu0aKXRuILl^cksPY9!=AjT%rU
      zI@+VIT$hM%)VEHMO)Lw@vN4D`onq8~QjQuYlaRHzPy(s<DA?91+A?KS({f@JX__)L
      zdlV8At9A}6R<$fMfY3o3M+l%pCgf}ojdO&_M(6+B0n?3W91HBLwf@_nkTX+kLm*e>
      z@Z;#I5>u6`Q>>IswmU|ixWvanS^|obNQAsfLL8i$Po1G=c+{C`tC7L3200X>v-#21
      zNHS%rv(!v@7Kl(4E=0nyCZN}^9Ngb{4i2T<qskD+9vw1wB;p&Q@b%Lc#X5cJY}k4=
      zTg~+-+<sX8A_K3^j<QX4jzU_I7jAAwuCEt^f`J@P50w{HdDOggu9yL4(dN9F@Tp3*
      zKqLdX#|#@9*zcTT$8s4U{rCjy=ux;^vC<u^oF7hwovVFnk&+7*wN!!^OHKxEAX2<Y
      z)tIVQ3W8qkvRAEKC}y`(M$R?W3P~ZY5!gSBsFkK#CFzSKHkoS<WKzFD%&g8+t33)y
      z$4MF1_e-fH%gJ1;n(BOoY(s*X1+gX=uvqJ|7Htp)4b+|9(v|_Ax=>x@QAkE~(Ni2z
      zeU0T)Fe828ZK|-`3KXKEsG(QkwoBh`OTl!Omu3r95mU7&2=pjmlMbyMH*ScpP8{6X
      zI3|_*R1}_6A*Hv9Y5iz-O!U%HVO6`SVhY8U(fv8#yx8kkFiblr2c&*URhldGxVpqt
      z2?eA*3F~%K3PAJb4a&mvRHvynsEt;&K6?`BETiA$O&SF|FB=r#BDL96mr7L!H^=d0
      zL=^vWQ(d91L{!(TwOp)W(fO6|G3`hl$6L~Q3_%xT5bI1U7*uNz=jl{y7&V`@%NkU9
      zaBc&jAFYd6;cbTcSo7^`<Uv$QAV<>|dtk2Flszgu1_yJd&a(pf?K<0qK}@a-gL+|s
      z(H4o}B310`9VUOq`Jzh5$nq?Yt&4du>yVQ?l#a4SaZEZR0jB*!T&ZHKdrg`_XNqWd
      znQEK5&(3MG7)v$UiLus=e)5z)Y$pvK^?*a$j?%SB(|ziG^>wj3+nHuN?9RZ?P;BdV
      zEER!$^D128oKzbRcIf;tcxfaNFAXPJJKGV(p~#oHFGrPDeM7c<WI(mURtSfawBLx~
      zi>hu@-KCHLo!pNPnIJlw7um18>IrzfRr*>{VvVSFP_QK^`v8R}P4$#Qnv^TI+4I7P
      zL?qmGZ0?8*27T*M$f+!cui4^o_`E6Or27wvOxDFa6HSqYsKh|ck2;c5gboO6RV-$I
      z@F5v-Va9Z4BW}bK1FwK-B0)m&b5js^&yZ7mW2EHL1MO(J;YaJ0JA3_%D|y}G!d<_|
      zbvxRCT(+b2$yGaGjX+<KAGgZ5Nk@N-+-mC<_sqJ*Ewi43dl=o~GBL9*h_$$<)bDY9
      zs9W3!p(VK&)Gh8wbc-scZjo>57CEMFkzwi<*{5z#rPFjf-EL2};haHd;=K}0(&M;w
      zK|6+KVqd1S^;j9OfghpScryoYen2igca!lP&D~2CXy)yu1%0%rv6rg$Qnd>&8jaz#
      zb$e;K-Cu$J%FK*<Yvp;F7pwc|OIUp2URu*f;YRMIroGhCN9&|}@m^|ofQj$cSY3j@
      zWt#ho$)f_4uNKp2wS*?ArF5#{qB7THs&GxE#jcZSsjG-qxk7Z2tC-fiN@*i4q=be-
      zIBDe5;DB{zotnb6cxH@`3>_vn?;7q7_0WcG(hcpWOLt+!AlZK;q=x8x@Z(FALl@wK
      zjSKMs#zh*oX+fYXaI!>K;+K6B#FJO9<!z2$26zhZimm<j&}wXW)$_#F#fQjUysMA6
      zG1N=fRm(_m4}GPfSddT}i4*lvUJNAG1BrGZ5Qpe>K=6_f=@bN{QzJCe+QLR?7!LU+
      z2p<fu+~V4ZOw-Rq?$9%IYj%qqye7KFL6@6u*OJRpya8Z~dtcSua{}2q5XkL=0=b*+
      z$zWiyUNE@#sSJ@81`iCnxQn*gi|cV7!pAXKeBS{`XSH;UVnaXgrw1Ht%LmVicH;b>
      zgmymVV9^+xwp_6CVK7%%^bLB%-eVJXkd+~0b~lX|z~iR((4#n&$GXU8J@4A0c%0sI
      z$C0-=%K}SY_5sTt98oWBVfW$2bHCm@XhF6227GM;;6kDK-^3vbTX1n~W3ddg<xD2`
      z(XPhfdwS^^Y<Fu9^$zdDAN23-q34D_kA4q*H;aJ9#zPJ^PR?xjJ$lgwewN;hXb9jO
      za$VU)Zr78>li1A?I19*696*L-fS{x_7!da{fV?p%5LBZE1L8Rbkaq?Jg8G*YWTs6{
      zzK~N;a11CPIH2Tb=)sk@4aF(duMXts-yDn6sv)N3NA}`A9G4i)*+AjP)y0SDOk;Ma
      zwwv-GD5X90liJe5NB%YLIVilm9a_9a9T`_zmmc{zRJ@OV?2z5*;yu`aL2^+p=TIJd
      zsep5-5bZe5qlr8OUl0tXQnWL8IF;jWQtaIs+Fs4JsdK~1{|r70aTlFRKi4ug1U5{}
      zf`JcL3hf@zFX;6_xNvBINbre+a$za`(q4Q&z~%sr5Nz2SAqGt$wU2%kGWOA1LgKBV
      z;6A!H<ah0(L!p3sAKjNV^;5u2;wkvFcMRpaVEA2&KyDF@<`6z*D5jIR1Q&Xx4l+ZT
      zLrklZD3v%=F%cp8$U>h<NIO+A<iDohVC-%5T)_ApF=nnwU|Aj{e}#oFu-pple;X?9
      zrS~gE&vNhDMtPx$K)jnOVFmuUjmqWy#Jjp^x@c!F{ROW-9R4?lVt$PNL})0Kv&`K`
      z?=%M7z4VWRAuQZ_h=xhCpZ?iJ9#=QHG<!<+(W`I@|It%=>GLvoz<ropy94e6n0?=Y
      zi(u`_asuxC%*G6lF~e)j$nB<2Wz6rH9&r1;(|g!6!{_(iPsM>8f37`JXSYTV=ViM?
      zw|Kaldi}l!X|_z(>+7U9-Gzy|gB3${2g|nh@NnJlVLvc#*y6?VO?p*&)WSfI+WYkI
      zXdAE5Jv??B6$>MTV}(4<GH8N2Y%7>m$P+AECTx<OY#3?u1uNi;eYfPY-y@?39-=(I
      z7yQ}r#b=o}<=t?y7EcCH>;x*1GGKNbd99mfYDf>!sogYLBdysWG^N>KvB*Y1Z+qm8
      zkUtm40yz%kXcuJobK!)#$<wgAVfSu)knZOqF5w_b5R34=aFDL2dsGeDd({%%%JVYl
      zl{`zU4KOrdA#|Y}>OYHoJcsgeB|CyEpa+#SnHSNST!pV&mk_RRX%+gbxtf}BS$id)
      zOV{xVx}NKC^K>5Sn~iiYpHGi)6TaVy;M=Melu6dnVZIn&`n1t6xt)H?G5V0>_=@Bb
      z`ZsUDhZq~#M6mA1MaV?H9N1sUrF;!2xSr?o4WQyCUdp#|6W`9Qd<X6i@8m6LugCMv
      z{8d~fZN(MOUAU~d8+SAJ@=jEKpTh;xVZM)F<_B>9@F2g<U*|vL`3OIR^6bOP$B(E&
      zepHR)ZZ!qZXYdnhHtz(7o>H~^G&r+cE$6-JT$mIwa~+n(ruAQ~&@m6(C3+HYBV0i}
      zY!WPiL94;R$q2UH;K;XOU%co&0?Z`P&cWAf+qLuc&@SL6LAQK?wheZt2=?eOy$9=4
      z1QSYJ4Etk+$BO`8EKHu5v{$v+$eJ-7b?~=vbkAbrK8>ywnB}F>1@cy4M)IkR1(eqV
      zEpZ^Pi?RHb7VkO6tZv#a-LcbaN_x0-8|8G<T_t$)s~$cTZ_e0>6$IiX+9ayPZz+EB
      z@H-E``S=ODAWRg&ugY$hpq2M^_{qH0_$>`J0<7yIY~D>%^@H1b7^@#V)<eF2DDcYD
      z7Ur?zcN_@=W1iV<#bjfrV*<}y4M02-NZNCLpJmVr2_^YEV9<Br)?R>Hdyz)*VVb}%
      z!L7Xv8~+Mz;vdnq{9{~>{giI!pV3$Ob-JH_iBBcpgdD#>d-!d9-S-at5bZDcT}@2L
      zVxP_AA-EospbF(MXh9itNrCM@fIbyLCX`$V+Kj&t&#?b=i!lS-y}H<+Gri0c@bvK9
      z8D774KhNJr>-_F6%9n>F`UuXGVVsBrgw@io4Y(eqO6i?jmK(@DP<miHoo>wVb(24k
      z>-SAB#qSY0ya`);?Dt{Djw65Q<5i6TPcJv@=hY1X&#o=77CFTjxylhxE<xf+`~fV<
      zAMx4ppWqSyOk?>kG?hQ1V*Wdw#UE1z{{!Es|C5&Ur&Q1X!FS!CQ3U-CK0;SOP_M@N
      zo0Lm)Nox**Oe?qt)qD|$!3p$qI4W{|3$I1^AtCTBup1|6zTU#kNF3dGd%fms4rZia
      zQA&_d7g9UyifGPan#rvg$%SZ**V^QR65u}E;x)aA^&+TCLp^+PO)>t|mK2=Q!|P|b
      zO0CxIcd4&auHUV;gX1p0d%G2zmKc5*<ak+5so{4^#}mi_zv;1Th@t}sl}m11?D!Nu
      zkH=Nc7~IxOQN!>*MTJzRMxc~5QnO)&g$5^e?goT7rSo$)E#yuZ3k8+0;0@>*IDoTx
      zBgk_hp*oE>q31?kI*d1CGzYro<xA1?fKc2V+l0P>brNvY71wmr(vr{~TF}E+)Ru}=
      zxk`#3p_BZs{d~<f8Y}IVZB!^Nq-#t`@qWI(i-wDIl-j~kx~l=oeq&9^;Um3}4Jl<T
      zq(yuS(3B)q2a9Sv2%m@~`9#>hNfc0%X`-4!Me1ZaTNTj)6{1C|lon&&xoWy*f)y;*
      z*`){|%eQGJDE#lj?dT~a-)Hk3IAa4kd%8Yj7s$jVxJ~9t%n^whf%E*Tq_QTkzvmHh
      z8&A5j2QyqGNL2#A`IM^`P@$Tq_qWXA2s>YO(@=PX`vF<WH=5QCd;$(i%;I&};Q?gF
      z)rhpNdY-=yUeGGfb9|0S(e~OBBUD<*-`GRT_wb{xUfx+(;*vK{?V**KH||1y8u;z5
      zE6FM3y}E}#`?|;!xKQV>G=xfw>HD}hRN_MOtx$;@O<$-a2hDR?6Sf+40aD9A&~hqJ
      z=YrvNVE9U!pz3L|YM`m=Jer37sj89AQmY|(=Timxm1+%DtBa^!wa^8sm0DDk+SSFB
      zQtRn5)kfE<cFh>elwD^lsT;KgsWG6oMM*vgbyfH@eX&+tsVd+jeET?lj)Riphzu5f
      z=St)a-*PBajL6dt$n8)UiYUQ(aW6kFe_j~w2Ael@Q6XH-TieJC>1bF0fZI3j=R@#&
      zS$0$cF;emVk-NGC#hL_-S4ps>lR|0(ouW3<47G{M)n+<JT}I2*<<zLIpk{TYLmna-
      z+Z3_MR`TtHP2y8Fi3lNIvTz(G9_f(h>N`PNH;qc8t{v4Ow|*UZhQD=)tT!(G24uXv
      zjeNz0{DVhnsD@BbphvP~S@vWLY{{2F%2%LHH&BVXiB4BH(;RgxPVzQ7Pg&&-OOzWk
      zs5fR%#}^(J>c;nAEhNSHL{z(%e^>*N{!tflfgXMhxS;uI7h;M%be`lzK<#He{EONW
      z*o<E_l!%W&@7FV2VkqW!QJ=K$bkSaIIJ#)3KBLdER04)WRwEUXGAXp&X9V1t8cD$2
      z$M2!s#P9Ft4_xB)rXaS>aWzXQE<GzGhjSBbDg+ztn*<Kr(=VjeSqN4J<pC?e(Ba5y
      z8|+7knVoCilFVjzgJcfI9L)VwnM=Fdl7LIL16^)EGMkT(X-NzEOc~+2ZpztWum%-y
      zVe_Aa##;e5mLm=7rn5AJLu5fJ^Ogj>8HQ<OJbg5`QBUgSzt>6NFMd`7J8V;;d2p_U
      zy2S;X44s;Q57YbjA9mvMuXN&Ka|wydzmd3rri<<Th5vidN%~GrI!yMfNR!{>Akxx3
      z2(*K=mp;|4Jb%t7>St*!qy8b4L#gf|ulgF4Xd9}Y_d$_%KmxZ@sd@-f_%O{>-+&}O
      zN()st)vCu}SDv6XYA5W<Q`DipNmr{~bgO!nwyJN_PIZ9xsDrc@&(EtD=&*W`URB?x
      zH`OcjmU@+bkLOR+YxJr53H@9Bf<9Mo&=(3H@2FpMj(V3(^&XE@zvBt&eV(Fz&(qW&
      zcskzCR)66I>O-zoA920<8(*OQ&dus$j;c@ia`g|s3S&2^Px(&uU%pp;jv)RE{*F4r
      zzef8m-hE^+e{3ji03H%U!k?tI2tCX0d66u9#-D>Tr3m4^Kv-iSb?<|z6R+GsH!56z
      zfx~y8${|5t4uZds)k9?SiBfoHpo;RLG7tv2cqE;m*Sa|u6%)OJ7gHtNAJ!tJnycLC
      zdH4eSFOlr#<-1S=wje9{KLJal`Bdzb1ACjwt=L2L+B2z~GFQL_M;LJRC~rkKHNs@7
      zJao=(kX}A|(@+sm!z_7Hg^;JL@SsYd{0FUZ>5o2Wd8k5x-=}gKgS~33II5r+!f}W@
      zCPR{@z(r3}6Lh;w1#JncMPNpTkCc%|`3C+;&=^AFjNvrd7(r8v(KO9KJY$SQrD{CQ
      zH73wPv{h)A;@vVMNaq?S()q>|T5Ft438P4#&>V~2^a-K(Y@Lvt-_La6B_GmvqB;rZ
      zavJ>MB!nSuIu|x{3IY*CMDlqJ@Ov9vLkR}B%YDPgpv8l>vA9r8h0!Z>>DU;4yg{lU
      zIzC49_v;xs{v2%_g3`kHjTSB!?NOmeX-L4uJ*pV&9nr_Z#$Gk;U_-hCW=VuwOSPO<
      zFC8-(b1BzAW^Gi^7^9LV8uO{hSOBIhq*=xyFr<oVjiq2l4K*0cH3M)JA&6!ekT&%5
      zK!U}929Rg<auIc%3h{9vdMeWb>_)6rszncCBOemktjHmyCg9+t9yJ9l9)?kGp*n59
      zI=u`9qOlEq>THlyuDPLRHKd37RAu8HS`%>fs`(-`i=@n?s!%4%(K4kFE~#ZRJburx
      zoMBhaK+Np-^r+>KR1~qMVXUsq8}RO-7B~W3PAWuH?L`epteL8o5=m~r3$yztZL^Wu
      z?4fo&7pYB+PHhB$91ZqB0NX_)rA5wEBJD?AlJrazpgpP{5N!mk7e)J3gY1$?iFOz7
      zR~K~Am_SaUTB~OlVBK<gY{Db(Z7$0T<fU;iyJ>D9&u>mI^96i8YF!2g?0J$bTHkL+
      z-+t9rFb!#j>X2Pc_M3q`&~^~CZ7&-V7?OsY-%S;PA^!a7WoE#Xh&@dk;7$hWcvsU8
      zvbkTS9FX(bpC1?k$j=3GdekP7(aXy6b1MS*2MW9oQ7+nUau;}K3^isHbW<Q0$oChV
      zK8%iB`Q-wyzhK?waK)Aa_80hv?l|(kExTUIgMwStp^>xzirq?iMwCpWjr>MCjWuF)
      zl97N?Ujq3}LVi1Gfw2+FyqW5Z%V@Q66@`s!sMWZZ;>LB<X>6fu(cWs@KwFI)5g^<|
      zJB(ZCG2>Qx+PIB+joay<aR(hX?xdHEt@JbFE_&0rn?At2kBu(+k8vL><9^OH9^hfd
      z4jyGZ#3vXJ^JL=@E-@bE(~WK}Hy-0T#uL2I*vU1<)4a^s#pk2F5c8tOGaN_VU?U=h
      zD-5JS#<%!p<5}Kn^zl8$bG+R+z}?1o`Ela~-iLNS=DlDX;+KrW{3GKfe$Dtk|JHb!
      z|6shrpBXQ!9OG53pC2IKhwh~H6FqI9_%-~0lckkjGSpS-YG~z2{5!knN8WUex)uiN
      zG=5!Or?#Lsi+`ZLjIb{U$>DQaXFb%4Wb%6Cw_fZuRy%}TdJLZ$m5Gy}tw<eDhJ(q)
      z|8=g?qdqRdwX0mc`tVOee^WQ88&UH(krwGuleZu}xCzGFME$Kx2lPXbOjha9eAGbB
      zRyV6#Q2qNYT>q_bNkjR43hL1U$ifjAHOrL3esB<Q#hAVi+{G!?^YiMq8as>>rvx#)
      z9kQ5?wGd+!N~{Gls$(uBpSb?iR`gD+#D#@Cmr4j(Q)-kLr3X;iEXm%B=&M=dE#!Ld
      zz`eW+EBYR!@OO~H_o>+UJ?bAHz_t7luI0}(&-e?Z@gqp%UumWBcYRWpE2&SP6xGZB
      z+rm!6U8t{un+pGcI!bLt&p;l!SUX}DxL&T$LR`sR>Ta9<Of?@@BQDG*Y7aG5e>e1u
      zy5}&Rg<x*0Tw(X9uhsOa`x`?gz3M@6Dxs2n>Yi>I*&uaknFX^~sCM+KhYuFNfXK7>
      zg@XbDe&x~U`K4Xe{iZ#RX|PB;pQm>YV$(bvPYF_T7gdnd-R2`jmv#}YpgQ$55WNIX
      z3&pe>UyutqZ65xNa^=t@*H9{P4Wm+5A<cA+pmMZxF=vr$EY-Qj(@Iy6*0?6pTC@?g
      zQP&BYf!2LuyUoB+<VVteCiYp0Ty(eE16C@v7keu83@%{^v4V?G>QOzYW2{5lOJn#w
      MyeCvj?zh_i1y;y`tpET3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKs*>clJ6oyYH5Ieyk3u_p{z9eiRzzhQki>!1Kffl1yOu~&yHY!S#EQ2L8!}>(r
      zOw9#VP{jlA1aJorz$*ZMOHODCiW^Jc-+!Oe=bV<`eR=(sh-OKYsE^U){oqkB6SZfY
      z#{ICFiL4U_ExnzjS&(FDi8e7B%`I_|-0PVbjn`bqb9Be_>)aKFWBap=n89dxeQQ04
      zyJ0^Pv0u5*$rWU;2+!r3<y+d4p(BFm|N8aiXGU9ldM~<kZ)Q~Tbl+YvO&F_EdVm0s
      zT)xO%ZtGlX4+~8<H6a$b(52R4Gzgzly}@-)3TYuAiD55EA!AgALvvkiO>(#3Jc{H;
      zMbxV4=r<QMPm|g|j7G4B+Y3L){}x+aE_j~nF&YTlhR1Y@luwF~d{yT)4;_>tpQ3^A
      zO3U}NJ!3Qm5glJ$`=PAoMMt>3V#&=f3an~^GaA4SOIt-J8$lZ0jymCTklc+ikrx;V
      zjR@Vp?HV5UE$%Hl3xy)MYiOo%N2{6$F$ND`^|))VYcdP&!!Q=|a{TpHl#yDxdnXxX
      zv`eg1g=csxvNXTOUCR*io-jIKuHQHjcA_ATo&=3Jtc9Icl%`QTnPYSaoAXM2!>XCw
      z;<lsJ7jjH4vVt}^PMnyxe2q_^*eC8{#o_xlWGLcQZ*BJ+xFBh8|$n<4WMX|!0O
      zC0a)R=6kVsOcm$NuRp$yD7iN`T^~dbZ&YZG=F5cZxOXF1GY-<!Xg!F-R+wag3@g2M
      zg|5&%x@<;CXm?wUu;a<}IEUG825~(=E5JQ*NVL11X1Ewh$DUt)nP+5;1Nah1PGyoN
      zXfq9fN}xU}g9jBJ0&k(p#`-XLtHLATQ5xG=9|vz!csqE9!aKpc6y6P<P<RjM4~6%F
      zCl%fY-mmZh@Ii$Sfe$Nu1bkHCW8mWoPl2ZuJ^?<d@G0<Vh0lOz6qfa#RamaiD*ZbL
      zKCi6H{$5a6_V-VP{{mlB_;2tfg)f6~c`&O9c`@+BzXn~UYj|D<8TnMP`i8W%as3tX
      r|H;VTZ|3jTe=zltgWsJPJkbY?`#lEw31j+5yK&fB?vR0R<!|mcyW$aj
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J5QhJOLQMrh5L6Olya6T><H?|SK#dq82ekL4Y;du(rY**o@L@cWc<|!Q
      zm+<0Sm>8!8j4>Q`XJ_`?|DW0S@0V8q`zYy%5w?cnLDZC6>-2`w3c7(O#pvwOlJ|jf
      z9UU4WKSx@f-wQ(4m!1-~DLtRTo7O3TE(z(T>-d3i0#n#yndrZL-aQ?DeGrmI%27ds
      z5HD9ug4T5V(m)(5DHvELWZKG+SL0Dnde@?7OG2*gT5KTLhVxlb3vQK9*ly38TG)4;
      zP$*9kTR4LnkENVJy<&!rh0rli&_~ku#UOHu)c&Fbqw9`6OP;H+m(oI;z3`c~10IUM
      zlqn>T<fwBN!xAqo9F8j~t{iYAj*037>E{T^@NO^$95Z@?ET2+S2&>3(77FBN0u3fZ
      gHd)=BVC}!c1)H}bh2oT&DKL*B)+6%`ejUT+58@zgCjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95IqySaqGCmgwg_~<z~P!h%`?ir68h;N=V@%73G09$JwS^wl?x55`P5}
      z1&IeffR94VZX*an;bAYcd*;lUv-{)cx9<SDh#b@io5%4q?#Qh3YIH1;@}SH`e6lZv
      z8V6kmHo-Rl6{nLK#6g{~ZB7f3RJklabYACjDwUXsaX%?#mJ;gakt~88E-+YFp+{Jn
      z#ws`@Ts}jYGPyWZETv;qFs8mMQ&~PCJPiNCwUD4aB-ne|Sge51^x$Aw@6LNzf$PG;
      z1rH6Z5v)){n**7Om(|Hg<Zt4U5`@+uOJX&QbE)Imp{@HPY%Nw4bXmKVS8T>w*q)Pj
      z=5)`+Rct%hB5eGz_^;kQT*Gz3Y9Y#gl8B;^Mvoo7)k58atjZIy&%P7Z|9QR#nv~!@
      zPg9ZaskkTv>uo+u6O|P*oxBj`Q8spPhs|I3LLNf22@REH@2dCaL3B5B%^2ohdx#zO
      z)Z(#(n(u3q0l%d!=Fe8+(SXOdtGs*6vBhgMx_63m(fw2S(O0xS8Q?{pU6a5a(k|9H
      z)`<+q1}^c+dU0h&^@x%B&W%39x4&SMK5|sUZx(urW$MqdxHA?DHw^M7Zs~kx(L6v4
      K0navW<L)nw;kfSr
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVQ33yyp89gtVWG2(sC25-qO+$dTB$KwWP+Ch$Y@0SVHC;4qN-K(!$xHIu$-FR2
      zpnw7jsGxwmZCyYSs#a~GS)fV<7Zkx=ao=#?06}m?&wuZmH*Y4B67zk{yyf0|{_~%I
      zx%c(q=kL28z;dG`h!O**?Trpan{20PTlZcomhMa^t>{3TZN+<n2pE{9hU3vhpF1Il
      zaszX6Z(E&#!Duqt9k&bw643!(sycGR#IqB9%^XYbALLl2Z>%*QO{F+g(P{T3qUlVM
      z<8unf*F;)4B_yjgdb!ivo3hddjCQ`yBvSp+q}9X6JqE&qRx)L$(pG}wWobvvE9(_+
      z=&27nY4yhGZIg18_~mQtgq?0NP*XqQtcEUn(dzVAVVsVdAm$sGmvb}^(ZmAO8VL4T
      z>8(nVIrR-bTvrsqsWWjV&eBtND1~O{P1PEOVPK(&YAiCa*w4^K@?q-*4P6yna*l~P
      zm}_8Whn=vtW(K;g<PIIFstzX>jdw+pwmiEp1L=M{WnjKWE0z*es$ml5C1wp>LVB5y
      zZX%OOtZLpP3RmYdqa-f7$Rr@dFj2xN#d%_Rg@Mv~t;I?cGcZ$Bd5MWCRLb22CT62D
      zh&2XkbCKMdiO07)b|P&hH(nmI2Gh2a2%{P2$�v2qGkR>r7N297ZcP2C>1w*?oyj
      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
      S)SoKVo8^YbTy^L$jQ;_GNx{Yd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoyH3ME5Jm6W4k5vL5Z-wZ=#msfw18+5kb)v80v4p(n1yWQ*vMWZK7&7?;Rle2
      zkSJ)8DET17*dRoKXlCb(?#$fTw~yx+0Gp^Lp)piO{F*nV*F3sX(sQ}f=8Es#*doRx
      zjNg*MNZ6{Ue8I;*5{7&re90Y4_yJ8g>9iTx0Yj$cxq;%YvbYn9#O?cQ>F#mso<SGh
      z1xfl0Q;u*i)sUb=up?cmb{P`2ey46R7%lHyq@kl=B8xd{tkta)7#2*VF%xA=CQM`)
      za$V_)!*Dzh{xKgof}zm$Z1Tj(8S!_~P(v9oRJ;Eky-gNuFLV_{y61(yE%s$JviRp0
      zZA7!MPG)raRvkqoFh!Ik(lAXKd8M31PU9DJO^!HEbViz}FV}d&Y@;;6e4{+U;scd5
      pEK@ANplDG%MT+EE^sz#fwXZf>S0bVT@fsFqWm=@sf(ns_)lWh_Xt4kQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO=}ZT6g@AQWYS4$KH5ZWlWJPENk$u*iXauCDHZ~u5h{_=O()5VojRE*lNqfW
      zSMK}+LRW&|+D!`zaqqA37pV75J|;+AxR|;3-FNRf=bbn6<JZ>#fOV|N2r$eaYp=Aj
      zZj~FZbK*LCj?J~642dD(?HHQ*qTFa5^R^=+%#a-SZyQ#hYb}Gzh)k7t47YzI$_(L0
      zx~V&l8G?mklR?_HI$S{zvoXv-VTjjtlkd8{7Pp@bCsK8*tr<<t*2Q{Ml$;~I&ycB)
      znWvR*GK5~+x<hnQp(bdQC#P+G;^>yymyuzZ8;{i*lN}l=98`-<8P^$>{B!QQhVj(W
      zO^4f)UIh$`F{F@XkZG#sv9K0H;GinwCc}ykP%}IHl=L;aRm(Ly{RxVUWrl*^xMkbg
      zn}2pI$YWLz-xkDk<e=5<GO!wD1~)0w=?Gn6HO02L2|D<m<=Sn&qYLko(<ZG6UMWv_
      zK?D$jO!ptA72N{8qqN$f$S8(N7l?hKB!DaQRwx1wAz>47%3{MNB#?yoL`WM|=4nTw
      zn5HL%t284jVTx&7^We8=Um(qt)Sx;z$HLzfO+@hAqsR;!hZJH2IV=&dfX<GfBXkY{
      zeZvF)K;R+jtYps+&z&Kf%^j+PPl$d)e*Xe1--8dN&q$QiY+5?pILEDb5=%?DkH3HV
      zDi%mC@RC>!!tD{Gi2}uSSe~l;Lxzc}%19Nl;tp0l%@vwhC1s1qph%gpq~uxX8zj6|
      i=@DKtpI%%B@OH{$`u&8*R9F88;{Bx%cL^wfdw&4DJgj8^
      
      literal 0
      HcmV?d00001
      
      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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
      O%u#CZi}dfnH~t4rv{7>a
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Sx*yD6#gzP6oz3H5n0OSQaS?e8*X4EHX&l7sZkS?F1I*3%wRjk?HBmq5`FT?
      zM<0wKBnXKnl4zodKg#&sJEgSM2Om23o_o*zmUB+}>-Xoc01n||1a$(t@1>SgleRZ`
      z)n1a>`J%s6^so7OnOck>EYP)eU3nuAF4*pUf!?{TYyCRmmLE?EG-MpFAhQDE7K1ak
      zYy0N}Lb0(V-(U2y(m)6;CYoRfw9VPByi#0D%l!3J+K~dCb6zIpBvW}?#ihfrf7dPu
      z^i}g#Y9sMLtopiAmLfMUJ<7->-}c->1Um(GY?(;Rmv0R0!tMxq1bVh^Yb~1SMV~+<
      z<GHTP_yW-y-YQvR$tF;miF!0N5q!|Z5IR_xf>+FEWFtldI;I^KKKpp61Szuyy0Ax;
      zXs^J|61<ag7be*v+g+GacIqGIZJz}T#}Z@7MvMuxT=D#E48?1ih@i0%;{wgf$57B4
      z<#N)*LF}iGyv#^@nLr}VUxFvG+cODbs;pxw>j>qhi@BW43)J17VdUj<1xf26N4iv!
      zbBcw#Ts69Zvp63Cd)}@~sCCb$@3B@UE~utAxt?$59#1<Cn{rLpVb)f?@BV8TClmyR
      zX(hzrt>ce%<QK}9{t^xb@0%GN;VQV+$2VZEa#M#^ehvL_7GYdQ8)Gv_LOVJbDS%F9
      z?BG7ks7pi5@<h=Y3d)MFqk9{#Rg1aK>?Ggb(3sspb_r8)DxpeF??2G*5J90w<7?>u
      z3By`L^aonLpzCJm@CHUVYZyDp1!U<)q6aw)V4;FFT4s%wS@&T-8LB-MN~~7E8qmcQ
      z9S`DfOZ*2)2mO8PnAkSmtLt85-IrOmhm`RMBY1*1o>oY)%2F);)g0CZ*vG!qN_j>@
      z%F_7%NwN9|)^W5}%yWu)K`}2W<`u=f#sR$1V&VaKS<E<&;{?T!5GN^1)qWhOxC`<0
      zw4RXaT3O6c`C^+?wG()!34#&gh?hoa>K_mfNTY~GmB%0Kb@&tFYJYR?n_AX!#`^vq
      v4c7O~Rb8Nd3^IL?<F3|Vc7w8ipwo|>+ZA?nl@ql>w`&zbM$1B`^~;$*Md1gp
      
      literal 0
      HcmV?d00001
      
      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
      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
      Gj{FPQ?L^D~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxSx-|z6#k|yw3G|hA_~YRxRln4`-Y;3nluu3F=(RcGKGuRd-b-c_~5&VOZ3eb
      z_01P!#0Vy8G|@y8f0X*o+)JsJhj!+iIdi^cPW$Wk$1ec3;aC^}ftKm)t?Z!b44yV`
      z$ihX}EK4_xkU;a|ftM2ql}!7ZK<n7zfxdB8W((3C5~$BxPDvI7#3g}<%k<UUOi>_k
      zd6b6-Oxr9E3j`Ab<7_qR6l4@ZtT50BqX7ad4KyGsuwu-#<;j`rIq9Cy<}4`?A9M0q
      zYdq_kD)y71@|0PsA>&acnYP5TEERV2*qyw*Q8pdB6h?cM0hv>klPK1rD~!&n(<-qB
      zy3r#L&O5d(^W|DJpT@wr61L7j9qJp{vERUYw9<@{GvnrE1RE)P#8Otx_WI3aA&NF6
      zlr004=gY9N_T=EXvTNFtLrO#4ZS_v{F_9S<4+4MwD8^e13}P#ZxiT-!TRaaZE{|qd
      z!bi#RlZjxbK+{R5yacBx?lurcB!ayHjY?<l;#1c11&h)pWv5syNlFb`(k6b<nkh|j
      z)rC<U!blj01!8(MG}}|TX?kPe2n>M++bNsH*%8a4|L3&&<EDDsSk=^RQJ1lfe5go&
      z=o@!X<n+n`(Gh9FU|kcVVFb7XjN}J2Cqtj><`J7?96+4k&ALwpA@XR%3ACt6uO6$=
      z%1HHE&FVGWhZwc#u4kADFtf6%Ybv>bj-}RdmID|4))R=~l5Ve>@uJ^e?UW3<	>e
      zx<Z1gzB~CIy+096y+_{<G<`zbM0~>sZ2Gz^>Li6tk*bL<Ojn_HS5Uhvs7a)V@UOfJ
      zWUWx!i5d&8jc>m9^nxOw!_WfKOENtN@6e@L0^Y3xYp;N{^WS8<mYBrW8nF8WQ&y!t
      ziJrC{N*fcqp7~<;_=(<BXV*UjI`j}c;1E2dmybx|G5YWXoAFeWNqWsIWYXBjF;OFt
      z#(vULI@1{9F39WwKL7u29Mva4yoS&JHasVb7i95LBYT4s_mKq-F4Oxa(G-JzCH@DW
      zIW&)5YCkddO)U!;PJMrc`qcNYb1ZB@Cwf@k!{32gy(#uAcunv(gm}xUcj(~ShxsZZ
      L{S_jk`sUHUIw$?3
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      AdjJ3c
      
      literal 0
      HcmV?d00001
      
      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
      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
      Hc<z4zTh3HI
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`)OK%%h7(LfBld)ar<;HHDmlGNwwv&cOXdo}3Zc`krRx}}~M5;8gC+#GT#~RxR
      z*jI{JcL7KRiB~psfka!WM6FbItdaN!`~`Nvxp(}?qxHfw_ulV2=X~FHX6BE7A3X-}
      zD&98{5a`;rKCz}9clw%b6>ZOiF3_X)N>=&i^wrI6yHGRHA<)~5%$D4$ZEcop6G4G!
      zJ6J-<eF44X7It`+Zy)+d^8y_UPT8p~31}0kb%ti$q8)~Y?g&mH5(1eb2q7%cop;Li
      zmHO_c?XCH^(Y#x*O6!*A$aP~=uibL0RPB?sN+DHj;-mn@=~1bGIkAz=<x)9;@TE@+
      zcBSUH<*JE6fz!=eb5~m@0tVw#xiA%uL~sWEEMc?0B@o!is%i*i6x@2bCLnm<-(W9O
      zQudbRU8rwu+1|WFcnK3GUT*Rn4TvCxF@cb0?^^6s`KAodL@<ddvQ+9sAM}O$#U0I-
      z4W=j(vHa%*XoO~%XIJYbq8SA_P=U@}%iCG4S1PVov)LZb=VQ)C?(#B`ORWd-CWk6F
      zM$2w(wAzdfV*qn<e8+pfTJu=IyzDvav5I+T*O82*wrfGW%?_yBqi`y~Dt<=R>W)*9
      z<SVHagRbRIXZytpLpH0<=hA95x9D<~GO{9NhgaRYSFo2IX~a{$t<TAM>SIjR5P$)b
      zce*qg0VBMl@wn5;)dJ52ui^AVbfwex(en#e0Yv%V#cbd*<8#bi!D+5!9;4BR7_Sm3
      z-auMrRzRL9q|7srt}%X%NFOSsxF6j>l9*DT;PXhU5i_Ci1zRn5h8W%6k;)f|Ciz0?
      zjFx%)0K-3X;S29jBKHo_gjzHqBr(c!2|9KH^aep?(f#^?kteWD+{K}95XxvX`_Kbz
      z4!=2HGX5(z<!i+?>gTqa)7RjNFyaNAC7Wa&Kf(G1QRKMCGY|0M;?RL{B|W7Lk@~zI
      z(*xfkl9|$Cl#>1^rneOgpo2NzG4p%2?gx(SM>g&!R<*Cx%=nnC%ExgI(^Ozk)hkL(
      z2!l$Y#@r}hk!PW^{jaGZx0@~SI%b$Bn?A{_G(bRW>+rk%RB`(D2sAha-oW`2)h;Ph
      za^SyV;CgiSA>Mi-5tZe9tiKLTu4y%CkOeA~{EJk0+zvBDRn}CfOV2?4`;fvWs=zy}
      z?Ksx+tNiB>M!U*)ap5?I2=k!}v99f8=+0djp?k?bWbe>Py*lS(B=?qv4~#iIIcubU
      zMbGs)^XWb^>4dHg-;NtHE^h46al_ID!C3GvI`$Eb8?oSRd)9~>1pV*Ng!%hEO#VMf
      z#tr)(HKcF@7FjJ6)z$Cn93N$fPJY$8_zCMqLiAun^zyYEMN0HxQp9mloIy_XBQFwI
      z<K70(Y%!$jT~bclZaHb2Zob5BC-4E5ITH;d$kSb;^zj&97MFQy;39hP9#4ae%&7^l
      F{0~fcBh3H+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)O>Y}j6g_Y3#Kf7zjq}lBC$yA8{gHM^C?;SNAR#T5OuI-Gkp>nMcaluxj8l7z
      zTEq{CKrC6H3L%hCH(h{4idv}%1WF}VRRuyIb-@qdFA&as;}|z}Wa+*8?tSl`d(S;1
      z|N8Hp9{^0?tq2T-<huR7ZMjuz-nr6nys}gDHXHuDUvun@2*L`3dl%XQ3Wn<`43|2@
      z@(Ll>n^aJa!r|aX!*?szoY&ZJYPRoIJ>Kb=cUL{zZ`63p>U^t^?U;X>ue%Gb=latM
      ziB#ve`SgOq<N?706U(FUZ1u7eMF;~XOvKquD!tGHg&`A9pr;ojI1<5OcCVY?-<pXh
      zkx=OMoU8s^#o2H?pHEZipv;Qxty&kB*PXJTmz<*}y3j4wQzjzlR*02c&pF@NSaxa`
      z?d1yDiI=KnyRu-{Tsb$LVSml7D~z=m>M%a?H1g=%YnyxTPc^CG;M?Y!Z>4K@3M)o^
      zLKcp-hk9`<L20C>s1TjIT6Q*NuJs7A?TWe3iU^^nOq@hYp{rb})-}b?n>dYll<iNN
      zcmZb=`c@tPJgEx=NCE9Jx35sni3+_eX<st&qNFv-YZM*piKLchip6wMf&~e_LjN)^
      zEX{D5)s+>l6~~iF&X}0Rn`C{>uD@NaIn9ZYS+;hGI+HOLDfQ@lwNWcOXI+`dkq%^^
      z7B%2$wi4pk6@npyrDe!i^-l3H8r60$y^8YcV?6NmBgROLXM_7_=6f8<WVbPx$==4W
      z!jA}TBbia#82gs-5RP&kAqMac!nnlTOFX}eB;La@9n*PO(Q%%bQN&BkXK0(;15Yn4
      zspAA!!Cxf0)F0c!PiDrOkcNhg6AW14y2f-a`mwIzjs?$Ja4|f~wgo1J=V%$UIehME
      z`ocVAG~g^Pxiyga4#|7y3f&ar7RGPV89?^y)Yr(^2Za1k!v!4-G~tw}=&{rnH7Jm{
      zfq0PA%CM~o;ZeYL{}CnwjDX24B7MYpe9UZH{Ek0q!%DQUD7MG2uFxZVr;S2qv>j5a
      z8_O*guJ8Vx{J*_~mdEFO{sqVRC5Q19hG?I}*BX8#NZf=s=%2#Nnl%cWu}As*l-!Ca
      zEF%{_sFFdcBs)5G3;D%d`1<a{;qd-)?vjb0SlG{0=r0(iJ&t?2oHIfC)}SrCifKJU
      z3$L*-VZp-dv_kxi>te(7^6Ta;(byJGa%)PJSjgZGj>>i$Zzz0*6M-ElzH|daJdf?5
      zPqvblfA$-`4W@RSng;Ik^nl9vjdlJ`+5JJ(Kl%Um7jk&mM&VS8!W`zbI2F$7T<87+
      DN9tBY
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh20r#Ii*F%zXXe)S}G9oXo1kq?}ZC1{OvJ0kBL?VqUtw
      we^ORzatR{?S8#r5QF5wVW=<+2gCMdFJ&<BHMg~R(W}x99z{tP~B$*i406+H}DF6Tf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O-~b16g{skOf5yAd?`?@pwbVZisA>Y7z>!x5H+dRR2SxT`cfZGr*%Gvvi3h1
      zm#$o+2~8y8-XGw?zu>}upx!raXoR|$$-H~-IrrT2?tJ_G`2fHr+|=M>nBL;sJT2?#
      zg0Lhv<PI+z;(@Sg(za#Y)DU2ZdNsDtT}wKz(>ZQSy;H(4XnWYAuoUD`ew~5cW$0h4
      zo3_JEr^pRg^la~JEPwa?`oYj=h$=UpnY<=!hT*519>2lOYP#T9(yV3}f?3^=rgT;r
      z{P9GQA+T1j2n~bO?r3=s5r!#YD(MBctQ*|6^R<Q{YQl85Lz;pZVTc@7*p75u6+Z!n
      zu`ojDV;I<!rnu+U%EEf6m<X_0*SS&TWDK3#!QO0J)@b~=?nE&}j8kEpMwDT$OGP&f
      z4d*<UWJRo%{qJp%F9GG6l6KUDObC8Vg)o3~VVuVWhF<Z~<p$CIqx61xOXyA}@kB$M
      zVWvZqH@s`PZB<?6+r}$hG?Yggk__XWy4DrtTxnE<6~sI_nB$dL<8WtUO5#c^7D57x
      z%8Ci~bummkw?wLVqan-+!$KE#6351B_o3+$xDv)PuF`He^_B>Rk@#^4)y`p&LF2m8
      zPX;haPo5!EsJoUf?nrgJlifFdQB6uxY47Ma@!=GD&`T%HI|VVJwuQd^2qKJr%ABOr
      zDgyKdB0XO)Q1VBH3Z+0~xbO+1yA<_dT;;r)bwY0tW*tMw61&QRSjeU}*Dc~!F)f*5
      zO-yzOLSDE?avpoYu~r$TafZqXfEdmai6V=($=;HDB`uRo%{MXQU;TjLj~I<ErS>rU
      z4uRb_eio&`!TUcy_c2%6N1_x-HL*bX^d2rZaqTO?TN6xBYoJPRNmFdmR4+(~#4Ku_
      fpk%Anp`c7#5Vgm3lIA1NCUFBRG$Esy;?4dAlm!t1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gzfJ-{5XQfO1Iz(}AgClHY6X}`jFo}V;QtUUQ2OQA;F9Bx+#SZk+DGsyY^+Eu
      zEG&H;d*j?47-K@QGdr8#eBaD|e!sl~I6x_Z2w{69?nPbM^{(egF>c$AGo5&HaPnZt
      ziKlEU0gX^zP}lvDG`x`gMF?3}I!c&5>A2i-dvQ#lOG3JBTdpT8uP4l@j6J?Yo}Z4s
      zJ_zxqvXs{%L@U)EL2KIssUwQj6m%pBnU1pL)pXpK&W-4sl921z1{(;r;d=h4d3VYs
      z>~<F8EnA{NC{#kq6xPsRR$0SFwdb1_eA7H3F_x|?hJjfi_!lMUU3=;n@>Kcbl$SZ}
      z`<>VUug1SjC?SS8=LA;~tngtaBsr$|<&ZORj@4#JzXnK#qs|!6goYNfd`pE8){x`M
      p7szw;1zJq{Y`nHN!}@=PGd4dD6pA4=S707RY_JAlle;6>`T<TwbeI4D
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OK%fb7(LgX_%RtA6Y8W;ry-DlAB8}h(v|>i96)juh(u6SNF!xpUpoWN*c#8E
      zu;~t|t5&U`DvwPi*ukO_d9;=2zFYne?YY;+HXsyb?(6%`ch31f|NH8%7XVJ;ViX~P
      z(Hr(Hd(x>-F8ZG1RtrI;BE6#92z*{hdm{=%VBhPYo(F-*nhq8ioY(I)+pV@?rUk-{
      zdQ(6Y1^P<$!1Wn_#&I40oIon`ZbEiRz?iL<rHL>S7EBBfBa>Z<Ltw9kC}L{2&q5y}
      zCQ=xVVn`tQc4Z46Vn1uuq+9jZHAGP*eq<qzn83ii<I2my#+vl5+G{nb*w;&TZOQf=
      zb#7l8{<=f@V=bcZw}(On<Ki^YskQJ7+E!K!$1P0Y2)UHjZEuDK7@1;rRv?;LE)<K|
      zViZ|{Ojp2+=h?T5Zdq<F1pY#$K-bF63!5d`@SVDAB7=m9PjEbnV*-h8-X+^#w=jtl
      zRJ-B0G(4l=6@^bNe1<83SXKIk+rA{#7#~?*`7PE2LdylF)hiW#=^5F%!NwITAdDxQ
      zQqgYSbQ+5NTy{<oIH!tzt;)>thA_+$Tur;=2X<{yN1KcFz$?j%j<PuYp5Z#KL@@EZ
      zY<RL{`?8EN_A1Qz48u^J=FU*P*DD*yHNprJ{rp-yEhEG~U^usfJ-P4}lDYgA26Ops
      ze6WQBfAA@UG`~ZH1HL8PJSX8g5=<S!cNo!c8Ui0<lqZ7Wpf1A!!2WijDdGsenYrgU
      z!2e|VDNikIMG2^CEUOjO#u7NxL0BRK6*sQ370U1E3q9p#Fn5hN*Ns)O-^Ss+`0x8J
      zc0$_`Q1C76!Ddg5@tzt-iLC5+$r?)MO8OxNMjoO+J+hjA@fiJoBXeyBxqsfMJ)&5s
      zoANI5r;L>G2z}ueqZY+v%2>^(w{cQ4<be!RMweWUodAAB5<l^G_cIRT7tZ`$OyM5B
      z!mpUdZ&<*6+WkNipK6io7`=keaY~!Af-l%z)rJ*($z7NjSz^T4FoDw;XbXJZhKTNU
      zx4ov$eN6l(Jr+ee7ER+!8=={@Xks*emwMyRMmsLt*~Qs{mU?H*{()M@o{>=R{5<De
      pY?0IsXJnUh|J20}>K;vWWKG~3%&^=rr>wwTm>9Df={zoQ#s7dO`>g-~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)TT@$A6#h;)xsV1Z&|qmpTWir=ptV)0_J$#CG007zDBvh3$pKCq5+*rmQy-kF
      z(|Q?i55BcCYR8$rP@RrKJ9ehbfQ~a>{*v`uJ0ymn57}#<z4uz{Ti>_#&hLN!{0P8N
      zOuOOGu<N36**IclkBr+nD>FZ48Ywg9hOVKpyi;1!P?spoX=oW#>uDo1zv*+5TT9uz
      z1}(0ke$mKXGE<}S?M!A18C!$vl$EjUGaCHC?arY|4SFn_GQFrnlMg$vlktL~$$BuE
      z4^Fte*o8JX{2F%F=Jw$U>}H0vnVGj2lw({R_xRw2M`i&Z+@;w*AL`-J&@^ae%;Caf
      z!puz=iL@y-Ws^pF(#Tozy}78{3l@uLD?zSdh&8)N$DEmyGSk_-DY>5Z;TZ&3Pdb~t
      zw3Vun#6>e{(@htGXo7L6+<UH=G?#2Eo5{P;t)aC{dVHj^<G~RP4b;ap77wUgDKENk
      zRJig{C$6WW3mgWmMT>MdNQUvk(o!~On<>S~G!x1(Ve+^SFXAQQPc9g_D9;O&SRL^A
      zu?BZ=CKiu};%=PQ5d4?zXf9`5jb~D3ain06%=J;&RK9}Hi&JRw;$`%?5iNI)>X0GB
      zUhpA?vxKo|Wk^;~!V8Y`KJ?=i4W4<^ju8sE_HdK=g%~ZN!7&q~TXv3JS4V-lpEmO9
      zET@^m;-;5VD!a<iIWuocJ^4%4l9V+N8W2zu0^owA9^eW?Gm=K@9nThWN%OoVEzn%u
      z|A(b;JV`}K3v@W73psO0D=EuHQkG3dE80^Fjt%^pRUSYfd>@VB$O@XnkyW&=pgkO}
      zn_j`*6?EKF-upSWF*fiTea0AP0?oL9y_m!Swddd%Ad-W$GJA?Rh#rTqb2HlvQOPNP
      z_$PEu4X%eZCX8&{fh)4Hc27ZWWKi(es;mQ&wuK3SX%_S*flpJ9w^T|gg26UZY6v0B
      z7!j`N-04yUzDHVwn2<_2v`*9f8yX&>YpUh&eLTAs=89C=B`~_mFb<-VPMy3WVoNag
      zC|(nUkwPO(?8X9NBoM^KDh5Io20}PS#)X0B@H|K1yGwmDqP|>-D=YyS6{A#=qf*if
      z%u-v@Evg_a_LW)ORuU`XUi)ojn!{84p4Mln<|=wxPP`l0SdMHs_*)}2Zk#|bqn*TQ
      zWqT1-wp8;z?gM#_1=f6-Xo}SJDo?+|Q~4^)eN~uG)?(HI#4M4D3iAnlyAFYyXzI9$
      z9f6M7$fNJD;~`E>-N%_Vkw=R87M^yUsAVo|9kUP6+vDW4Sw8*FNMIG`{Iak&)#D2L
      zovhdIqR%paQmKcCZDNQLw^$ojlr2@-qx8APQ}3e*AD|sK*iawx&*x*l7@yGVQ;gy>
      zyp7MP`xn&fOL|{Z44hG&QLHFmL>vQ3)goSHL{Y1VLC)$J;}C{8b25q#!<>o!BkYh`
      zozL;KbVjSxxTR;Snx~P6fUimJH@q>os|0DS2r|kGSR4Eb{RCF&Uhpc`=8${QK?=8C
      z&;P#{%Y^Vfd*lc9$UVYX=Dql_3QqZ6Xna4$w!yhe7Ub3HXV%WC;s1cMDSPVr{`#+O
      z!Cij``u+zPKd!6xzTT!A9}#Vv-o0_Rn{vzZ$ETbj&*HqY)eXJQ-CqdySAzY6*Yr=e
      k#$P<Ot^glUoc34b?B^5rI;A+qmuQ$Xd0pOMWCy1H0T2X$KmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-%}f96g?jSHiRurXrWL-rCMv)U}@3%i`oh)sj0MR`BlJ5ldyrMYeJKaI?m{`
      zzWSig`r@n3*kE<+la4d$-()@C?#E_H0y_2~%YHxZIp^Mc_VUNyKRp6)0k(!Vf#ciR
      z53=J{X?)%(TgA=gvgMd%4ebIwdnewWz_F_{>8Zuph4tyhbb992`g~?}MnGf)j-*P(
      zijyrmOIf>Wh6o=O=*(3M1+y$LFzX`O+2W>RnRZVm1v>I}sbUI*5~E83k(rP3=8j_#
      zOv6zU?kUL3`6mMHsnP~Rj?P*|^Jew^oLOGT=4|ft&X)37dnsGC<XUaEJ6l#opx@Kb
      zkf&5ou&b3Vfv!!{@ni{{OpG2RxeEe=I=T>Hf|snK<y?+%E3V@thN&%)8C{AXgs0?&
      zuHiJPTW24^2;vg%jE-k<ma%pze@|vnzdx7THuDZuwpXl=nPJ!|d2M3fT4<b<m`NQ8
      zj54tgWh>c>$B*UqxQ_F<K+)Nq9kaM0FqB9gn5BSLDw?USEW4*A)>0Was}Wq3ATJ4=
      z^7aBsJz0UiGL~g;TT79$R47zThh4VKqCj7wDQ;30Z3M4N_{#!gt!^|0`DCGrL!H68
      zd1_d<6D^RuWKx*Xa8)2$ueKMZBaLhHL#3J{E<Xu&Fu|B6e!>s>HEcANG{totW6~5N
      z&mZe>J}5>Ociy~THH&$3Qh_&ugfYj~7pu12jdzgLaBH8Nf)J8#LGn>mTb`8<essZ$
      zJfApFho5Gn63M@!V-;%x-K@->ayq}EHVs@I91CUHde?LRf!UoBQ?5tlS4>L_+?Bpq
      zZt%rEqM&eZTrtmot#>P~4as#wz&Nl-^=A1@bsw~X+>(%Qa-0R-;>SkjOVx7TOj~k<
      z#XJvshv%d<ahe5?6Sa*4r30N@Y3?e_9gZQsALCv(bgqwZ)y`E9qI^s8C*<#YKH3oD
      zQ-%ZA(95Up9WwklSNtyBokIiXS_byx1jA+EIR8q54&w(5e8-m{>uMml!)N7`RKXW{
      zTLx=JG`fqSy66ZGfDMW_0}xsOVpu_}Fnf7-(AdQ(<7bSl4DI6S2N*D<pa*!S4%*AB
      zK#9*CO23Z*lwI(C4?uwv3eUM!6LP95nhE}uO2ZPh2BR_4PXaQ-zD&*n6`y89rOX}~
      zKh*pDr(e`?Zn>__OZYRk^YehF9$!-rCX}Wzyr3{|GZUGSE-{nw;Tm3SLj008`N~B!
      zyt_W4j+gO@o0E=Li7nOXc#Ur%?sBRqmT8{Ivxv)5!=)yUuW8C}0;(fEM+8^!25}_b
      zl)}41OH0);Pj!6wZVl6|V0YQ19|O{3K5R_E62zAt^QH5{Q&d-!bj=v5Art7CSM6V@
      z<WWHPp1tTtyoFg;HwS|PyP?4PjO6bK_ul*#UCD=dTcC#dCg@+O^|t_YpRc_Si&#?7
      z%L;l+H8So)N7>GYxE;cQ41aPq{1vE9+-Ha@1|W`iRb%70BO4o?;#hi*iR_;m3B?~a
      zTo<i3nw$S=*)W>Gjn6(|e6A_}EO(^EI*nuv`NP@GCyFi{5>1b69?ot3-)Q!E+pXZe
      Fe*j*p0_gw%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO;5r=5Pef=Yf2FWL8I~D&5uOl8G{;>1k>mNt>>j|>XNcG{V@8oJehd#2YC1F
      zKQWF)y~t%|-rF~CX7=s#<rTmIR&5xBjfuDyZ56kNk2>fJ70L10Lm=-m6>A$MLgQC3
      zxcqw{)KZx!5&1GnS$I7-CD1vc(u;MP37z>O%BA^nbL6@2W|v?cDy=dun%iDs7zrJ=
      zhgqU@*xB(3rCvOi4i>QF!a<o(^^}$u`E(?cD=~^Bq3*>2j}$zZ@ef(bZdFRyoVm`w
      zqeHN#GEGHTxcr+>aE5W71hUWP6V~Q@#r}5_wm`fgIIhEl#o1<LV38{}L7Ah=OqV%>
      nv$ebTjLK7?sd97*_LzH5P-EPhsj!SXBi5sVmBOpZ$Uy50<Vj>e
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY&rZTX5XQfOmYM>BAc&Y4O*{Z565|oY14zUWJ@Dtg;0D)}*0ja=TAoNecs22A
      z;&b=}#%Td#42PZB+5OG;&F=g6%PW9m6b(cOyZ7QzRFzZh_gYQii<aX~gn#igk`KOe
      zYy%o0yJXrozZZnGCtW41fpk3v`|T!yt_aD7V|%`^{eiHiQrAD<z6u}F148Un*~+gI
      zqNVbHpf#LZX(EdC1Wd#UsgAPc^>i|nZchv?Nyv1Z5gQ1$;d*hX`FF}A>~)qytscBa
      z$d%@dCG2sv>$}Px*UE#yG8b583C2Wvo*0K#q1<1TV0N9UJCZFG470P^=P2mIKKNPu
      ztArwS#5fyVMX<(;br9#6;FA;1#96P*kbDl26i1UW;0zkhk>*`u4q*cst^$E9$3URY
      iWWdHMhcj&cSGZ*JcBqh_Qws&=k;fKm5DMHK!S)Y$-D}$b
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoJx>Bb5Qg93>&yX)AgFXC#sDS~V+o-_R1Coap|D$y71tbl<nA#39)Ey|6~@BK
      z${%H%<HHyWik;cnedc{<_v`!p1HcLL210~`2k|H>%Bl3UH=Rrz*O$Ylww$5Tqvn$(
      zC%$sDfe0b9B3swL7lf22T_x<kbUg-ptuq2$5t0o@d%n<qU)WO_{d{@5?c5cg39*{e
      z%C8f`#ZsRTX*fe^B8<%hOvDLWZKY*rIvz;(Mht98NVgq}4Fub8y*!Ng_sSz2wpT-~
      z8^21(78j%~^r+JHU4C7))DMiafpLaljHTy^(cEw@`WGdbU1#cA@>~TY71p^O2i+)u
      zpUD4A$RmmvXM?K{Hh8fb;v5rva>|)FN6RxLU+2gcN0Tw2h6w6N@h-7|u#GfVfk1|1
      lAW&yAU}NQ@8Fv0FT(J4&Tp_ohmI}-xhh5en>~VJp`#=1HbwL0C
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%SyvQ6g|_%rpDUVsvwBqvK2IS9dQ#B3Q-r;>?d*5Dbq}uOvK-ECAjbd{3!7z
      z@wJdH?)#kkdjEKR18|IO7Y&Bp8Gq!y)P8(%mCQtHC)uK~Q)>jDyKor#6+rRq-md`+
      ztrM9^d&<xpj$#HU)VIPz6RRDppvBOOWF{_)c_Pd;Pn2L7L^|av=0=wBSJJT$GH2L}
      zmaGskbh%Q*w&HvI&9G)vJB5npd9W;D#GRtM{7`4PHAQN*2}XYibz2(bojs*uVI|>Q
      z3>fx*FP{*VXIApE`U4}%R2L={=dwI<=bslIl|3*9{feFrG)U-26uad4WLcRxctQKQ
      jDtn~MGH{4B(w!PWb{$}CbkU<spDGU74U$dr8`$~;^<Q|h
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW0OHTqZ5Xb*T6hs6B-|yD}G;#HeF$N3?2K9j9;H^M~lDbWH7ZUweo=iOW0sK(L
      zX;%^xjfs2c{`;8y%}hJ<{_*+--~{^##2D5Fe8e58oz~S&dmuVNGw=j|s4DLJ3B(z4
      z)<AK$=Y$3fQ>W6E!5PCuvD9LSS9MpUFoEebCNag3ZAe#K4<FjXyX9>q81fC>;i|<w
      zY1Utx@t`k#hK<G_A(R;keeT<E>f}^%C7*=HFkcLRvw_*;a_Np-`y#l|LvnJ>134ns
      z&UZsk+$+k_sY#)_<!^*Awep3@Cqs;y(maTSs2Rj8AsX84MIu}pLYfG5H(ChwaTd+K
      z_M#!0<1DIu?nTO?Iwn*egJ_RYF@zl5Lq%&PxEm>qI|DIQ5x(%4asHpG_*o|gnriBy
      z*AX>o3VivO_Bk?jjbl)sP{RQ;G^jslouHXR%FNEe3zE+?i6KQ_a||3><8)|%G-d&o
      tL<U)_Im}tjqhNI&3sx7gWOW%UR#&lRbsZa4H?d`P8$0BKVb^-y`viJdBT)bV
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O-~b16g{skOc@7SY5_%&QWe{wP{D7<m?&zZDX;)b{Mfv<&obD~keMm^UtFtO
      zNVGMYxHWO-#;yOvc;9r=4hWmqdtdK4=iYPQ{QUd%JAg$P3L*?s+kBT7O}n`1n4Y*-
      zu^ms;9=@%L9nZ8a1+h@cT4h^Qy>-tKyxA*ZNV>u?d7~^Gmmp6cKVV=_7>1W^%k{YB
      zm3gBj27dj{z1#m&-(?uA36Gl%hOv?_-r!cf*yA&(;ErjT-dzSg7pfp#)2bVxn?5FA
      zW{54@HK8Jkqy`P6M1KT2Usl0zQbQVJ3`0_9nYUcQPzYCVY&rHDUTFv;AJXgJ4iU+O
      z1{Eh55+&0TtF2~5I2#hekSf_#@`IBrln0kFZ_9KUrn`K{8BWtjn{Hil^t}ltXHe_H
      zTM@3y>!gy-g?kHX<oq)l&S6@?dFt^n$^Dkus0l~KMO;!aOUpZ4p&^GngR(2Pw)To)
      zHf&7y2^?^xr<_GHjsio($f(F-K|>LjX`6g!M_4t6`7lv{`hSF=Lqk$5Ns23nkjJ(V
      zMqbl!9n%bP&+aNwNah8*o;YA#f34*3y4`ZB;*lx$IC<nZu^=78484FTeMb>YVgQ4b
      zDSj5Gh@J(-QHnGS(>X%f3#yd$qxxJ23BAxpYEv(K#`wMuJ4I&-F*-{`w?YJ~NMa4A
      z=_b<!lF%8-hyrIZMYJ-KQW1)2;ek-i7Y3H}PZ-zVLzTZj5Z61%?0rM_nGC+*LI-+k
      zu8n#5cN>dsT-_ta2xKQCzT$HvsO>af`dw(g;!@BB!wuXF6b-)vIhs`b0EK;oBI7=x
      R^apqyA{y-x-STB`{{zkC7Hj|j
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TXz~&6#h;i83LFK4YV{wTQ4mP*t9j?O0`BzS~Rzslvq=>Kqtvmgb0JxrTzka
      z>Yu2O`XF7gv96^LF8ic^$mO?ZCc_Y#y0Qq&K4*Wov(G&G_m_tN&Y_}VKw;!|`HS+j
      z*_d8$nwHVj5L6hmYqfHHYkIkI+o)O^h7=~c)!CgLqkgMgsTmqV3gi12g<7L!IOVXf
      zJYQ?Kwxz5PtTn2iD#RALU=BrIVd$b+H?21n0_jYNTMLa_Mi>E%NAVO!hM{mIiU^_#
      zqYGx;SZaS(F`8=*Zfv1ZE!RrrrYX;EF=%a@E!uI&JddP`r~3tDN*azUJl$2c)UMT5
      z8fKlj%zarkb}X||4<m_jg~3hnq!9KNS{k0A!u=?U%iaoiS0xyJ-;t1MEnUo%!Zh@J
      z6esb5f|lMW6j@VH6@H4$pwiw{7}zMVi;J?<BYM?pn)R)`z`TfQ4QG0e%~_4&EY304
      zno-}fD3-Yvh4m$2ol!XIPr(IrR0LX9v-gzTWnp_Qiq~;LA+%*!h3#^a5r@*nA{~gz
      zp~mKB%dp5sT0WNTSz$8iLgwH>h?uuT%(FCI<%e!{zbJuUH9l_}^{SEYYY$<LS=M<<
      z5nM)5!xe=@_xSwHQM`-ysMBgVMmWxC7tfw^&z{1f2+A`1DvcfU&50k6Gn6}2C^J0h
      zR0O^s#VXbmBCU31-;_d%(fO4eU>R&#<));`3#V}Y|2b_t-3ywRjIT%W238c#9@_3#
      zaG?2yH1lAR-T^+2;uG1$yBl6@w3}69-jv%Oab7BC<V=DmDI~zZL1>W69F)7vH_<46
      z@qV*1%BPDM;4dJo-^ZA)|BTpAd>X(6|BtX6nB)G-M7V-DpQ6rgByf~Zf^^J9`jA}%
      ztR(~~`zIm~ki32$lfUWN9@GRC0aw|(iV)T?h7yt2ZS;hL;Gz@D)~xuBOxcR3Y)-y3
      zSUJ&Kp$g75`@KE3zZ>Kc7qQ^p;9@Q?dH0&03*;Vl@LbntjC+8u`2TDA{08Ir)>d=E
      z>GagZa0;i%6C`sQ8FC4y-p4u19g@Vbo(*JsslxWccQpRJ&+xEEF>C{iVZNsb-!&tZ
      zY#&v@rHTku2e}T;cYQfz_YlSpKC*~M7QxGSg(Lz!(+7Qr=OibUoZ1__5X`1hQ#X^r
      zKnJht{F-`9fV<rOfXBJVk@(dnoN)j=!lX+`P~;h<gp}k6p0>wy!uB4d98PwhoJ*|8
      zeode3;FA6$e>zj@xcr?|fB0N#9;t>|yluPWwd#XibYbH<M>Z6D=N^W$yO>w#V4;uX
      zFC4)mA4%LJiDL=NF3CzC$u>_(Ml9u#jAc_(ySN&_p<I9CIR3G@bf?$jO1WIb!!<X>
      z6fY4|9Ghi!>wWxbmp`PFwu2A4;SEtU_>rs4bnSk*$lbY<m&7SnB>N$qGq&;M?vI|(
      Q&6E51&~B=@X{#vz2dGbtGXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A=4(5QhK40%ie05L6OlycoblVmxAqX4M3OUQq63X`p6lO}F?!yn!bY4?ckJ
      z-~;#)##u1ID2L8;ns5Gprte>`ZvakFNg>9t|Hz+tBj9S(xEzGmaNphvJJ!Q%W3)-Z
      zVK`bLZRP996Sr~@2ruAa=#8mUELetoD2(JmUzkv8_0YazU>%06r&VaVvV9&*MdH&9
      zik*+yj3Ie0m9#B}c(vANa6CN}F5=kCz(txN*Of}#O(z3k?m0O!6uR0c15P$n|2#T&
      zEJKEa?rP38t27x()n7=@8mUIjT0e3uMUF)pmvjpMAqKanr^XjIGMZv{jr>VujziEg
      z^t%idB#@+>qAG?BIwXQL#SFciQD&4A^*ORH3nWL;B@Af6!3FYk%Pb*mp+Hq6P^1_M
      kw1|w@Wc_%K?Y|0bGVd%D%1i1;fq0a$LmIRMb;q#x4Rg0}JOBUy
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%L;-}5IvLTEqg+3`UBf!wQUtqAOtP^f~yUsh}x6BtwkTuM@2Um-5^}e%y|rF
      z=J~om08G#ps1W+Gyh=Bb>CT<!Ij370BrISOx|-PpF^6Y@B?}2*;4Fq~&1>h3U@vbW
      z=jSL(PXcv9uh2!A>utUaVeI_)7khd1`EcPh<XP$BX{p8YN=>$(U5+8IqJ#+@9dz_b
      iWf2I5`UYUAi>t8IEYxJGS}PFy4{7`&s&6WN1+6!h`&Hin
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A=4(5QhK4!kPsHK~PBy@dlVkj7JPnQ4?`vjOgCW+Ca_HHM?Eo)A$aaNIdue
      zK8;r|##tm{ltX7a?brXG>D%YaD}Y^8O(YmL@Aw06d0Y)!hk?|ivCz^zd343SmcBA!
      zFjVKrRiv~Wi=TUjLMQ^sJx2r~@i%A346MhH>-s9xTxo}Ukx11pp9Z~;catH#FO}3C
      zhGf0rFc@9`R#-@4ISUIJhP*A6xQNCB5nS_uCm4#h?~(y08>(lAh91d~p=Qr}ThM-+
      zp<Mrk^mQQBu-$NC$8zjgqIOBA_#a}h`hFC+;#9_6tS^w?iOsPE8isz9J_;$MDVtO!
      zutbYQkfE5RlRe6ea;iB&?s<yjDO!X92QYAi0`0Qj5LQs6Di$bFj0HMG#%#K|J;CZ<
      ag>y2urwWyCYNkLuDp(^88iHOYu<-?Am21cV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq+iuf95QhIrbCT=QlEy7P01n~c7>NpTM^FVRAO!-wC^h188*j^^u#S8{<%Xx>
      z1-NMtNIU@V!!0oDM5H3nn;Gx;-|wFp`}@x?-vHc(UqON3y%F!k)<Ec^tp{-|-gk8<
      zk9V_l_plRXI!qoN_vJ8Ek*=UfXinAt6%v*b87naeWSsED{q92oJs~XYL^?@@P6IK>
      zWa;y-AB~qEKJv@*J*8E;O_=jq0in1Ph0?+t&e^aqPgv|JEuUv^4`lp891J9(){FXV
      zAlQb_lVUM_trCLYn>Km&NNs}Sol@_mvC>EFR$$B>W4_FtGqN@-;x@f*E2v<dusSsy
      zBRZKHgfgyTldzum;3~6MH_B2sI&@=Rx4i3GSc7B2Wg9LUya+KIN*xk5nLXn<p|;J9
      zrj4t(MyRII*pg89X0PysrQDh4=n|~GD2w~@u`)Ysp1qt~W+*hkUxj}co&zP6Ial~p
      zK$WY^!#qcuD|a{(=aN6d!lzua$kAdca34i<u*6UHScLPa@yP&|IU2w=D~-17-yEU-
      zH{mIp_j1C@ST!NA9xGU7hGAWpu%5A>VLAR+ti7sjjBs(|1eZ>5<sayM)DfIQJAcp)
      NuH#0I_83+`>o-}^vswTE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A=4(5QhK40%ie05L6Olya6T>;}In)YNBq85#4*i25XkC=@z38<3o5N@qqE_
      zOZW;tfpHc{Fv_7bo%ZYh&-CN_bqHV!r34}jt9Sf?*F3JewSBGmQ_J{T96ff#y^+33
      zz+xy(k;}d^vNyeF$Ob}7?zut-#9yBrGO$yIbkkRX;mWw&>x<a??$`6%#qg6Mz9W@1
      z4TfmB;xbrG|3=t|Vm<{MNrsFgl{oMB+CpFPwkH^Jj^7~zPBv6e4lQ#l1BNwc+S`ow
      z>kNhRFQjF(RNZ>T4IK-iW1iY2o!ozj!EX6|-4Vw!>|%L_{AOs5b<i;Mqx4aTAx=3#
      zRRnXiNCZiWDLUDv%qYjI1EgO@NQR<K7_bKm2guScHHNT&995w}o?<A_ATng*)r|ob
      b|0<l3xieBIj;V<P@hD=6G-wEV9l^>E&?;?Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{jOH<QO6vzLUwx%zjl&7E~pwfnyi0=YY0+nLrAy7wj6G|vyN`h&M8(r&KS9}5&
      zuG~NeXB^%7LHrgvp4-MI)i9m8Y3@De_y6B>PJaA8{R&_l8v+^_y7uHld8{C7`LSfN
      zs2HZIYx9Po8v?ux&Gu<!lOaMes$9q_Mv)>n(sK-Kk)cu2wW29&W>zkg6yNFo=%-)F
      zsh<qzCRI%}rx`r4c$UE{>Dx*W9yEm!M2HkJs-`TJ_O}#cUEV4v4AG39BLSIY=-t}%
      zn!9R|p*v$6s<)e9XpcEgm$&wmoSBGc1++7C+G%U1p=$Zrl3LhSj3C<3#Fwrx&ZC>`
      z$_EFEw#_i&26OQ1FbR&h5XMDZV(^=K^^l=07XL4WVm-LbZ{PQi<!V;N@&H4tZFzmy
      z&|mRl1i^4MjB6NV2=KZ}a;Zoq8+MwlMJJr%_Aa$zznJHBwiT>uQGa5a@vI-i^v^U(
      ziXWp4z8$&1RoEs!m*UwVZs4YX37Q5QQFR~2E!<`h4*3`?@9-N+P8-%82_|t^n#1m6
      zQULX@#fGIdQ^_j^ujmv*M=YIohom`VkwcP@1k5rt*^rE`<vD>yw4H(+*R8qm#!@`_
      zA<_aC>c%})&}EZn({Q&_lv_4Sarrq;Si*{c<+_5*=_P6zN33$hoI8Td1=sYFkyBDC
      zpZ?bRu^#2uK_B(qLmw@D0Px`)Jq3DefS-Ppj}Wb4+L@pyqo+?iLF4C2NHeWL3I%51
      z#VjK9FI){m3!?PK0j;!hK#pX1?11<MZO=~7F?5X1WAvP$cj!C%j}R7zzM=mZSDxDV
      zD1kv0h+>&Oq80RGwIb6|MOiWgMGSEg;)0?jxIi&nFe3IG!5<y^2w!xB)NFdy{Btzp
      zg@YQYQ6oehv#8fCYSN+x#GW$7U2r>8xV!@wsNn*HyJO+*S~$t7N=WR91k1SR0(?n#
      zG918A4HzQev;}-n^XIAbGa&YsG2?=JP5$0EaP|K90PrHt*KpM$2E>6fQZBf+gnM@;
      g?vaJd)Np^@4VLlP1^1qCAI`)*so>VAsSQ~F15lbT6#xJL
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!&2Jk;7{;Hm*IC<a<JeBqIt^*~YHbH%2&FV64Wups7pF<<#E|g0cDBw&&TiRV
      zM=BTi4>(8afm>852WU%MfrQG10}^oR4fqQXXT$;V&g?kexGqG>?s#VQH_!9TJM-f|
      z-+Tw)1=Ll97?PX%wq9uJR-<svwws1-sZbaOI^B!4O{4Cq=wlcZy{28L7>=no%}?}N
      z(@+s@j|fcB-nyzge1tHrm{>I&*R-vb(s>4Uf#Fcmwp>rQysF-88IhmHoX;Ly|NBn{
      zW%=^T>kR2~XL+e=njtbjSFX^gvb?%PuVi3Sv8lT*O^H>^hNXKght@vPJw6lYXj5l7
      zcblsqWor!4nR?T-OmCJUoXu5fv7)_h#KCY(!w4Q{=$nz_N_H(*jnT+)4gE;)))N{A
      zkci_cJfq@ih9eyt)diukZ0qZWqu~Tjl7oifEji|v>6zPx7^Wbz#auwAZ;Z2Z8j?sc
      zB+8~`Tx@OC3}@L7IaRjndb6t2mQd)TGmbEx<ARU!PYW6jV~D(X8>Y)}I2%}?;yI?(
      zn9fzBc#+R=TIBX6ysYB%fhzFlX*h!^>Nh@a=}ouPux!UD>Mn)X6H0+HS}^tSdJJ04
      zFE>#FB5j(jimh0@!Z1YX20m-=7XfPwCwn>QIXmjvzH+Yc08tu`f=VfJh1`&d!EA6%
      zIfIH~Lw7fL9SE5vssZ1Bmuvr^Oy|f)*sg6J^eqP&;<V|~O%#g^;BjBlP{M^cDp*mm
      zd@%THu4im%sN!vg$3(^0R}IIzMiu@)G3*;qEPac_$Liu}8p}4%w?|$%@)ohZ4a1@R
      zp+oE%Qt2a{miWQ=P{S(7bG%}=oVqb@@`JC*4=4BuV5kHZlS%kJU3bZJU|#1Q>3wkN
      z3ZtMALIf)P4<klVQbcsQg`gqB4<)rT{78y79UmG`i}68f)0v=lKcYB-qcoDCUvCkS
      z{~iApY*o37;aeEx&9G>W4XoY6ledulil&5+r)LTZJ?CiI65%dk6sIsQMnOorF(i1N
      z=7*?1p1+G{^T)o%M2FEY7OfF!olF?w`yqceo)_YIm2kOK{>0?Q+hRF0A(*Mj@jE!x
      z1MCpkBcH7RII#~-;1x^@@C?pMa6$YABKg~x*b{EJ*FNe7J{1^Ev?CG|!z^BvAD@vQ
      z_YdzNb`zt!=(~xrFS{t82Ppk`O>70H%t^{w^3PXGrzZ1c>%UOf1E{oc1B&q+iV}5N
      z3ereWG&Q-4Na}pIoErg#Cgm_<%uB|UWF&YZkH*{%VA>Hgyn#0*#t#}u`j}W!`Gw+1
      zDi69tz8?T3Wyp-*5fZc@%PBMdJ=hM?oHu?Sj9y<LqU?pcfj<kNUsaj?&CgK5mkAle
      z0=PxLs{G_L`5&OAE>ikSJBWn$Xd~|7GVMhN?HBH^IE3G*On(n(&fp!YDt-j$Zjj(5
      zsd+?*6-w3cE>*9HR8@ANggR`$*!~E}9@&>Yf_G^>F8jTG*;BG$677N!z=v}9D<CpK
      m8%-hy=1AoGQe;kwjOBTpckn^CA|?R**oE+sc<S;_sr?HKslk2#
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjM%L;-}5Itk2rad8A^#Qs`TDJ-z5P}wd!Bs9k5GA|zaV`3QJ}R1w(9N8AoH=La
      z^?p17?6EMR5jKUm3%?Xq>Ia!<B6)3Pl}HmhVcE|vaUl~$FcKymInmwF3%D+2m8y&|
      za=nn?+}ijrLD;%s=$(6!p}~P*sX9_kUZsS!JLLVk%&?=nZ4!CPOG#J_*LPo4gTTi8
      b450J5V;GzeOjsRGV0Y+X$_&DcqlWnhr<6Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv%Wm306g?LVjva?UC^SuzG|!fY6x20sH%OI`qIN;VBD*n}f|0Qm+jQ4;{v@j`
      zTB%8-F8TresH%5t3j$Old3+z|%(-Xg&);9a0ldW<9T~#TSbP;NS9rr#XCwkKh-7fm
      zo7$m_bZCU)y#Co9%RxlYJTZ}kt@C-Q7X^+tY!mYD9M6e95Gu9Ra=p*sj(;UhWU+2R
      zhegQN>U|Rh6m@Ja9G7rfC}E4R7Wqj`cvh>gQXAlcg&gvP&2z_-pQaOA1{cD1W2yc?
      zxP1{gDo&GHG;%`1?h~?Q2h>3FdMaG*TNo&@qFuivkiTd}T4Ko~5suWf@r+$H^MQpu
      z>=VqMKMe-*qoc$XW~ZJhLkU*b^JLI*MHtFZ$0?yacY4;$(voY!A<v%WD`g$Z0RGc>
      z=~&~8!BH0(Ucg4<5oV+LfQ@^Ue{dp$3V#bR*k*`?g)gXbu9^Vw9NQc*G$tm#ix=2Q
      zY2T-`Mze8?oOYMJ<Hm$C&n-akgvyvv8F-0Zu9uV*DOHPig~+kOSIactVj3%HNNGyy
      fRjh!2qWpbH!_9xd8Fox5J;E{XW_<PuUc>kY`bCh;
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      bn-RqoqDS=N>cL$EM>D)oh)ZydQ~jR+W0~%w
      
      literal 0
      HcmV?d00001
      
      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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
      LWf=1uUgrNVRMsfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ&rSj{5XQfOT`&s>f`AfZ;tep77>^i?Sv3)f2hlxwDcE4m(lz_Xc=VM#k$CU{
      zJn$C2hH(~&7&&yNGyV1Zrv3POdk3(OS{ez$)`NHwEm!DK%XUQ&*dho|pNH}>RGv=5
      zAk-GbRir~TmcQqOLLhx5Tu1r=^Ec-w1nLrUwx@$o=+F^vB+VC?)9L8*mXJDBT7?}#
      zvfgkAhV9)+3rVbIVIf1v_mq~G(Rd*JYcX&oq1f|=Y#`W%>v_`%?^Qt9?k#3pp1w^e
      z*Z&ax&{ulYZaA@FIW{cuv@BCxh6q;Qi~ONHQ}GbhW%a$-8av>p@OSbz!9<F4nyUm>
      zc(DdD9JAax;7pv&<^;Ld8ItE{F$NsLz%dHE%l<%ELy@akpu{m2=r9?xspjqk>;DzH
      YY<@9QsQgfK1?Evfl{E+(d^>^7Z`=%OMgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}&BV6ot=)0;c?kAgF8%3lqRZVq8Ml)c+7SX!iq7aJ06`v^8<-o49o8io}Hv
      z;2Zb?K8EoQkYJQW@11-5%{iz2_<nl_u#Z{>3BvZRco1z*_~W+Yi7<4O9>t!}DtbK9
      zI?x$dgz5t7EB{W6<@6n)7)q^#=Sm%_z`r^>B+xk_?*x7r2|sd$7t2)P`E%##tN21l
      zca^WA9wFIix&+G!uBDA63OU%w5>{DWUc~o9sV~LQlY~+~7_k8dGV^?CMK>xW)ccEE
      zOT%{vmBue<5NYL)J5ASkR*Ywv1G7@;KSZzxL99peSeYEPr3QN@0P5fm;(y8%Qb=>p
      z@RYy`KP-bR*BoySxD)qOYl8gi6j|kJGX`{Fp@$-$ax(~PDDh+j%3O^=k4eL(Te}mi
      c|5Z3)^V6w9bw<q<m`4>GtU=i1+X-y_0E*jehX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ&rSj{5XQfO1<V49{8Nb+4kmz!#CSxxpcoDDg6_RwgVm**ba#CKuRe_@5)V9p
      z@8i`t1riJ%I@9TV{e9DZ{d~>=oT8RNf>3)FucGY>J!$uR5r+N1Oht5MOkgr_2-S6e
      zp!AEF$VHD(2&GZN_oN9`pdW5733N-y_W~V8LPwtPW0`tCn%B#3-!UP5uC$7}gk+=X
      z5u9G|C|xA6or8-kVTbYZE}o90xfdf}5{iRh%m#vOxLzGP(US@ZhlBN8n{#&vmByd`
      zFfvL{I!({oRjgf!XJtt7zlh)tgV>B^U)d2Vo9q*7i#qrj{E7U1NFmKR!&L%XyqJJ2
      z#~h!WaVE~G)(rWNg=B}L%QBz?2Nx*tF1Hk67e%ftpv2Jvx~#O?bnAGA@+P6r=GO~C
      Ub*WkrSdS|9m_gX*+X)=}0?i0z&j0`b
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxO-~b16g{t>P(~?8<+BzLDl<ij3M+_-Au*X)aiL+M3o>mdbg;}wTa0Yk_#@n~
      zaz$c{R1zbIF8p9);tw*O_h!O0hDkd2zB~8cbMCn>J^TCV1i&pUCJ_;s+O%F;#k%Eg
      z6j$n2vsv=2s@<5n=el0YYB`?Ud|>Y;5fey<nUBhwcBLiIvt@6U?Z$d*_k}GWOaU#3
      zIBwN`CD8Sp&U(Y%7PwrsD|M^kxEl&bpsy4*RG}s2*Q{o3#jCPgbk!^gOg`(#vd&2r
      zLw>Sqxl(srr*)TAGy0l9Otwg(UmzD^Tv*)=fdLH~E(!FO9M@jmkrO?!%5`$+FL@QK
      zzDCya90U`~0oLG52RDBL(=_$96rvc>Fo<5+eN00f3F%$ako3KA4PCxBsi7MwSuv%d
      z2h(Z-Q)b_g=LBbI)tsh4{(r0s7ez4=_V$idXGNxyp1-jr{V4&w@}?XuR3`W+5cgU&
      zyCINz?Cmrv_I*c+kXEDlaC5SVTQ*(SZm783OyUl~!fqYu+<Leud66*B$)db|38bYg
      z^wLrkWhsfW6hv8$PdhA^LmQ)Hm(k1mG*7d%^682mqwfQ*yr&;QhVK+D@P}RB;i`&)
      zxq}!AD&G)4&bV$IVb~aJW7NpDku@^0HgZOxjR|8cyO)XW6+YtnUK{zab)LHdj!5M*
      zy<^fj!2rIH;wi@Q71Ojc_@-bNd=Q>>)(}qaS&`P&;F6@SMwfEv@;<PyfPq3l^fd>O
      z-xdp}5D$$*jL!16k38Kh-RwT8A0kILw~sX43Az(+5sw{24_N5yF``ubPS77z?k7g^
      z3wfMjfoG}DxDRqpbdlQLB!xJ4HAi9*`n;F{sUodZK2ErN2$E32->RYJCj<>6C@L!R
      O{Kt{Yk>$4uKJ*U|4C3zq
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&2G~`6ot<uaZ+6OFQpAoplQ2F+=>W^T~IfHqE=BCH1&erBpFg8*RK2nT_EuW
      zJPSymNGx~&Bz8Ox;*4V@UU<P~X72c$Z|=GN_4mh508epHLrI|dPQI5NPx_Ni&y!Jf
      z9>ga>;*Ve6j?_);27V0{fz5?#{y|_pQlTq7M}-lEm!~fT#F@ZKFYu#S`mrOuL>Zsn
      z{C<1<r}<f+q;3Va`U}?JDhxizp{Ke6)#tA7#>WEXR@)J%^n$T6!AC4u*r2bKGhW1@
      z>rc8`xYl=lb)H-gRXETnfqFj}u`9{mSZ9}&_{xn0_H&Tpyj>Gztl#0w_bixLW+wXT
      zIbZg;fL+j1PPa(cb~N;nPO>9lO;ntlVx!eAGzlzG*po@bOy)(9gd=t0>VP}Noj=io
      z#U48^^9Psk00ye8YH78Ex{kxM!8;2pTvu5=qf&6M+G2{euc@}q)#N>JO7$5wd9r3I
      z+{G3vP1wi?uc*}8W&3c7ZCiXtV}V&sn;8&uNu-mawrBDTMI-LBSq@syCxgDGPsgzA
      z!=ou4+D8S{A>)nc9;ejiOh2bu8CAEggX@@&v77Nb+;wcj{)WaE9!i`Kr;uLW<Psb6
      Q#LfRRe=IcbrBCet15~M_Q~&?~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g!A`<J5QhJO0;Yf<2r3t2VhqJZVmxBFphgYR7_<jHEwI6w+9mB)eFvY$6Nv{O
      zz~}L1Vw?gIqv6n*o$0s#|F`d7uWtZ$QAr_2*t`=DqV5WBP;a@)lV?hI!r@T)TJ{g0
      zdUB{8<)vT{iZk-(1tA|u-x01Y{eZ!%lLG>s60$Aj1zLF87H%jL#}(`2@!9$$B=;T9
      z(M>|UYS{#%rTWrD9E%y4NE32xheL$-UFlznt}6+Jw(7BgU>lyNOGDo}0b#2>3pGD}
      zgHWpeB0Ji5yg|dVBjZwJT;$X&SNIPR%#I5Eo;-4*FzfSOcA_ZQ0Dl_)UqS^5B)O+}
      zieZ5t)<T+VhBtfMiF=|pLiS~h<hYuQ0p~Dqfjplw69`Kv@DvFYxkds_CL=ak+a6*0
      bufjE(-;5Q?6Kbl!Jjz&M4Z<qlj$!Q^i#~D0
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh4-m#Ii*FoW#6zednC~ywt>`oK$uO7DfgEgoJ-mR%&ty
      qBLi1(erZv1s#|7GDkB3QT)7@dB^x6HBLg$gU=UzrU<Hy)3~T_JU>ZvR
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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*ccfY8JL02XJB9iI+2xu4ajE)@|YMnfS41^;)05B0{{Ty
      BImrM3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvNpI6Y6#m9><J!1eXjAsBP?7+R5XV%Nsz{tddkD$_ahW)ybRx&D90!R5{2~r;
      zqT;|0;71|e^U~M}k&>DB@-1(fKYxGy2Jjk377T&fM1GQOUk2lLH=JH-Uqu#7f$c^9
      zd^k~FEKohxfsRiEDvjnq!0d)2<)8xF#Tu#tTRk19v-xzWqW5y>D-!R8p7aMY(i~?=
      zGrrI>f!*H1A$RTwxL#UC*OxO!HHt9Kb($Xp?7kicGM-0dvcCd3Zk-Uy!A<O0*d>vL
      z)8Jk1<zf?C0_$O*GOwK#D}j2sgU^?F7p3yKE;bd|ES9gRfxTjN{W#LWIIHcxi#xb0
      z;CM_wlT(J*3N>VC0gFVZG8hRQ7S+<dbeaW9mg3eATs*>KT9%B)W!(%!3snK{h0zTc
      zhrB~;q-S~Vg^MQVoPIcuJoT2|hQLNXzat(hJtK0U=LA$?@H3#;qUa5sg3h(pPpto-
      zivfpz9Xf$inCRjL-P{yJ=LSVKuY?fWbT_b*2%TOFU7_}k{-`8E>;s&aMC#b5+%5X%
      zvUS|1$mTf{p6hBC<nFOtT30Ifu_X5Z4-+y?@jv7z-<Qaf68R~fC1e_EMs85dAM*;&
      gmj@D4SM!9=<FR?{tE|>C>kF~IUb6&V64$`1f2B{h&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_yJ|u~5Iy5-eMC*b#>%9z^pZN2pn{MWSCf9-46?HB2Hh+8YZmzcKT4dW$ZZ6R
      zd7pD;nB(d21K<&Dg#w|o(mS0v?U%`jzc*}j<S&I1;WnSVEmmxzLWR)FyW0B@b+o}J
      z!~c{}pM`8=cw!wB+PUc9mr3ZRnU8kOpLS~(j&tUg@bG+5eH2W#W-o_55$-QzQjUU<
      zTLe<xX_v|J{uStZaMtXFpwf@m`SfMnClHEaW%&?Lfco=Q)Fj?XU6<I9`3<9q))_KS
      BUmgGe
      
      literal 0
      HcmV?d00001
      
      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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
      CxKGCb
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4(P|Sx6g@Xtvu&(tn^@Cmt!b^A6loMeA0ob#6av8tEdljunhbGdv$M?3*7{FA
      z_*PKRcRxzJy9vq0F6hh5ojd28IrrZA_50fo08i0$kt1w;6z8Jl34he;40QO$=z$DF
      z7Y<>4el<-K+@TDu(Vq$VMzc>?mKVzQg%`;r(<L~EddP>>p7Q1EXnZEksW|gEQ|{@3
      z@cP22_&iNI_Jaxu)!zKAl#Mo_G?KPsj5a6MNHJz;qd5U9-Rk;5WG5F>Xez@Vn0p-A
      z8HTW#BByVd?S2x<9%(};b}j}ouuA*fhg*d0xwo!wr7=-p<!}Zf6kaM{*;j-YjrXZS
      z*qHK1?Tpl{fFtF}cC+u|HldO{6IXRS(=H;9trb*JSi&}8OCIX59!zE=!+PYaap1|Z
      zWLv``YN*H99iD3As*hw`%pD111P`#1VT{Ko{qullIaJ(<(xOpr&54f8K*qKSYpF>c
      z#OCn?%;e7nxJ0;y0!Q3gEb+R`@nhbJ_gwx<yrRf!A<5Kno#U0sE$=t@#P4I3*99hh
      z{foJm$z1ynW;2tyj`Ba>Jji5LxXv7IvOk9vHWqzfsrXr@MirYWjas7dj(h5`YH9xx
      zcfO<cwtV*z_kPa$P-F)1oH6Z0bAN)Kc9D75#eH@ZM|&K_=n@{_A?p$zB|42ihib+=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XdH6#j17ut^BC3A7ZX5D=kBfQpI&t<~BeS}ZM+P$;6fO}6RM&2HJ<;ExBN
      z{Re#U9cNS?a0XgOW~}2l>Nw-G&Zz&2<9F|FlT8aVeMolix#ym9zVCeZ?C<}5{{w(C
      z_)tSkVE1kPu0Ck#c5QINZqzk&3Us$@vkSM4imzdZz}}X1%&D*FuD)Oy8WI~jrZZSF
      zTvNBqPvj26cxpLkxSr|QSEt4W#6^K!V~*|ly6w;DR>O$@d^xr6&xd_Qflgbm^H_Ge
      zm8j&qrd=Bn&>XjF+PcLMQvy4NP22QG1bPRyI#1>27;DU_8Yy(3H;pXz33LqP=aLZE
      zpT=%<$+u_H=tf4MYudDpnMQrVaLYmA*=eVuTXQ<W5J+h3^p{MJpdtw+VXUpU-TmX0
      zjUzpqe22^Bp%Dq@u0%e&C~!7f|CptF-caOBh&~@Ng(;IIvu5jl!zEvn!=($GJci39
      zCK}liJg`TcH!{#)!wG>yE$U|)mUY=NZQpPwKB^ciK6{wLarCB8z)1~kSXawi)t<&F
      zoF+vz!yh*)mhKwWNz<^Z0;i&-Y$T1;;Tnq;bvCHnhf;VRFK9R;u&<S&%_WT&@e;*r
      zdXkV0L8&g^(D1Ur(bmB!%Q9-ZHR{$Hb;I@}V9w&4RL6ONo+s5eC+iqWV;HY8GC>I(
      zkNO37V<_65(4^tDHg+al*KrdVrRc8OQd2qK$?27f;dwa;AV;!1FNG1D)4*#IZG%&4
      zRF)Jk&B`@Q3gosTQ~{e_0&&Bq7zHvBrUQ}j8d1xF3fv#rYok~RyOl$o3-rVLXWVJ%
      z79+Irw!y~@Mt0ioakwRrSkk>Ec{f$Bc$E{r6X=0sWFSgqs1ku>MNJ!{%$R$k{Hwc=
      zm*Zf77b`!N;-#KX;|AU(<faBWKUD4Va5R2EgogJ74sL=urh8GD+(a)C$%>hVtX3??
      z=BmBiCc;#+0iFiB9g7C%!5POdHC9#}*Egz7*92-TqoUg<d}@JSIo-|~N*Up>OreT%
      z0)1OC1XD%My5%%12|hva3ZA^Gb{dW}?xK;24Ywk-MnKC?X`kZJOXDgyM^h!I;Z}@E
      zQx5c`Wc;+mBXD!Lymjix@ir0>R7gt1()w})Wd~cEJ{?1yN7%{^#1MzZ=K&-ko4b?W
      ztr+Ck<_PC|w;bSn?nEcA@g92Y<!YHe9ej2b*3eTZK0;sN;3FLPmZlCI<bRg#zzqK{
      zGw?eMb_M;k<bq>3gu`4hfJ!6On@kj=2beyv9KsQ<k~oTIxpR!~F+8UV_>FO70po>V
      zpcQ|`&c`@DzlMSJLU9%OOD9(`_yy9Bady7AhF8{4id9_r5#qtMripJO^V!$e@Wwi$
      zcH=Y#F{Ym9F%hCDkP_e)68L~SRrJCjibYQ78of=9u4SA@9T(XC7P@h~iMM!;)nSSV
      z`SrqnT*TXL=%m*)eKNR2o&s8D=@FwXStx#qc<23&`&<Ns?ogC`s?ziZPE8V%m?g~|
      zSM(03OL9+Amm&36!r-HPN?PNEhd8h~@MkJ;a5x?YZiSN;8BU;t@)N@KJ>X`v&d;|M
      zE+h3%EJ0(hsm3-!3i=DHxXxZ)zbAWplf8X^T^3&CuiC19w^G4Zl;_tJ=Qk00`kVCh
      zvxA3OwZs!pC-)>C(Ek>DE7{kvz|<AmI=QZ@VkQ|~QkHs*>U?%_4NL1>MS*@70h-#v
      zo3zM08LE6+y!{jj_w+VoD8_Ad^^a|a<2Y}&!Bog=VH<kbhTGHZLp>|*At7I;i>+=4
      z*ZeQekiQA>AGY9Ml`^2YCnO}!dRKTQf))fKlY6A5dz2cuqZ$C@!=#iy@9HXC+2@#=
      UCxQHh3NCL*48HnrgyOmTKh*nN{{R30
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~8B16g^W~TIwQD3P}B0u=W$E_-#sf5HJxd8VgN)F<Ht4hHPh>-C3jW{v01P
      z5lA%Q2ly}i5xyGlY+ER8^<g)2@7#ONnLB6q=b!JV0G9DMiV#Eo(0Xr`Y)kH!Hl*KJ
      zbEKy%skR*T+T|XXYU4wlH<fT?6k&$cdHEY(D$(F)`wZhAcZFrwxa(2<&hvE!w#hKs
      z0j*iK&m*6cr@wxe=WT`<C&ulMP0lb;IR{>|Ezc`6j8w(Gw3P4Ce!6#mrP!6x%FC<N
      zV$?hOtp;@^x@xM*6>^_yhF63XYLy|A>)LLSb|u>N`5MEMzQRH5gL}hk&K{3qiecvb
      zge~l+zOeVW8^a7kM32IZBZ*l9<47?~b(5Zn(G}MWT*nPMh}CRzxyP{BUHWSGkk?f?
      z-zTR{SB}ACm^FoGHiYNVOiXpa&CcKg4fC4eRu6DT!#{zww%Z0W$kNp+r&Z68%=K$2
      z$1#N25ik@C#BoWl77Sd*7{gdaNWSGacDcK4?b^XLI(4#@MdqTooeZl3;W6~upyRax
      z2By1@(owZp7{W4e$aLibG<mTNKY2lQ$C8=;>>w*J#H)_)*7-A`^`|xEe}pY*XJC$I
      zFhpPG5K@R>n4%~}A;jpR5m9Ue@hHVKsGyR*IZRO8+DTxNvY!wRaB_toNWM)>pWsUI
      z7*`WFk1@AE&oR;`$Q6o5$QKrlQ2ZJoEz&zdoxmpD{R_;af-GKQi85vj4<+282*}aj
      zL+jD2yQCz9d$cy%nPrU9ijl@Fy|toJ5Cf6IHx$26A_PsRj|l7p6s_h+n}X(t`)9{`
      R&<B$51$j3R<Y7Sd=r4hkFq;4X
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hNlyYn6oji07&GDqqPXC8LNpp<;zi>H(P)T?+uSs1aUyMSCg~aU?$ux8iNu3H
      zz#nC-9wvyWmtJ1#eO3MX<MZtuz$TV0Bm_q9<)hqaO7Cu?s<p2zBn5Kc#fygapX5!`
      z6&MR#tz^@2b)bCj@@QW`919Frd@l&47do=pa#Pjfw)65l;s~U7m8Zfzfq~KrugQvk
      z>)IH=NCq~BXkAmDd(wKiarH&VAzSn7G?28RV_Zyz4HXEC*S<qVNp}SDrJmw>sFioO
      zv*H+!yz$5}AUm_aMFQnNT6=WeXUDu5!z&1+>arDZ7WqH50)<{|KV-o`iURhz-_mvW
      zK$)r9(PP%l<FEt{i=QJfgA~%-E#49sM3QF?jcbOLE$)JQs@%r#Ya|)vYEueSDL%v)
      zPnnJg<H+)606DG(ut%lQrpv2sO!N~@X?_+FCOfK_Ks_cgMTTJ&V%8BOo6uHyb*+u*
      ue%KY8t|QoDN7jW|F^sL4#T=~+wisi7M4a!ZDn`8jC!%4Qh>HxBz|t4dM}Z#z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hJ5K^Z6ot<qum%AYd>}qhD@CI*mKX|O35H;yQfM{eh-+}y>@MoxvLdmtva<3I
      zX*|Pjc!|wC&;8DsJD)#q?*MkNY9J(#zL!sOyCJRm_R&jCJ$j~X83^}XoZmV2v%GF7
      zfeBYRrfgJ|<5GB0IusBm0*M3Lay@BzRoQ5&$k%tSm@O=P2t@Zx%k+u@BWvqbf$)KS
      zqhc6AGL9I=1jfszr7F#bYvr8#4ym$Tqk*Ii9fQNLcW1f+)8!#)3p`)zxj6G2)2bKN
      ztJ-H;`=l9?)v3QCf&7rt9$n|@0WYh08G%SmHeL3kH&ItBkm<#CFZ@tB4OtY3o!L#N
      zrjAYB*<`2vTl$e$0h`8;638NgC})Ga5JnN^n$6=F=gBT-!8wv|A@SOljB|`p3hYyS
      zhzYLZz6g^@ai;-kjv7#;Qfs66jTWW`2^E^3wh1%7Dj-mg8O)NQS($)UVq_iK$Zu@6
      wFgFOhWYJX{w(QF~Fe8Am6!Tc1mBuax*uIEMgVb9_tp5{HvvkB|h6-Wj7si{10ssI2
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&2G~`6ot>^w@KYLHY6#3r3DI!gNTs23t|%rDnv-At-GG2qttD%k?rue;vIMb
      z-T)+^5(^%H6;FgX<C@qAicloScYMxw&%O4yA78!#xQ**&<OJ3a<#XAcNN?QTd^u9j
      zBG>n}_;VvyPTbcj*bD+cD5D_INTmbUJCb7+KNF~hDxlg?K}h%R);$67P++0&dtoHK
      z$dQw&D%MvvzE|G8eIrm&zd8xj2Pt*uAn;$v;Y9TWN_SjlxGRuvwH<*%-``hNu$KV?
      zCVj1paXSiJZ`{+uB}P+^r%#6}*wH8fYv7L<PBJ3v<ggGOxS_y}4CEi<_o~RFR$=>P
      z169m(KANqJIY~f4Hdi`O+tJ}K8Cbz(E<n%Lm(!5(Zk}Suz*7txM*_xJMYFU5%~tyq
      z@f?Loo9ebd4Mys|t5>o*bN~6OZ|V1eHKxt;Gs$5YMU+^T<7y6;UI6clJTtJs>msWS
      zDh2;bwm8PphgfUzTID(Li0T2(@Xk0<;VkN`G{H;=52)1IdAoCrhAlp!nPL{>FuTM!
      zMDE3?#)&*Z(TH<6Pnd>YNT5#=sHtN$?9OLg+_O8sp)C~HRT4cUVuTv@Gk9}`H?hj+
      r8o!1s3BDWG+=cxS&G*FQxE?Nn$AFg^xHud5>i?Nv{ndOeZn6Fo8S}g=
      
      literal 0
      HcmV?d00001
      
      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
      zcmai1dvH`&9scg_-Mzb;8@kyhAR#DjLYssD;bEXnqz!?EElEHU0!bgRNp6zG%`V;D
      zq(Li>7OO4ALXj#dt+q<>krry(5b2DAj{oR5z8|&DsMSvO4?AOZe2g<Te&^gn_U?8W
      znPKmFec$hKzTY_~-+%YYw*aidHx0Nn+^|139$T4+C5Kl=5~*0$fUY5!8|)k#?YGhf
      zyc)`Lqiw0t1F>|hKVflk#!AOyi5@GRiKmjgqMI~mcW5YWOC>YeSTfraON?2b*Wdo$
      zv%hKi>t8hZJ6iYb?P+b_wV4Ye`r*T~vtlsXX%FgjPSa4<xp_-#ceH2o-e_ke+8OQc
      z)n|`z24y?8cSZ9j4$BF5XRK2{d{wN`yL)$#y{z5gaUzz<G}BO5d^j1)j-}~&P2qft
      zV?bu3c>^JOSF}&~8g<jPB^o^AA|egGmVrb(8P9Ie;I6If;lj4mpcOzhmKvzhupno>
      zr=v~SZ%@Srt+a`oa5KFdwz50Y@zHoTK5ofrrnt7P&f$X`ZT2&wIui@<K5kcgJZaf`
      z(ru?d)Sen(_G8=wZigE5wkXH++DKhb0B)=_(SRj_YL$uiqm<reN8*|MB-t@@s&<oz
      zN8?sj)H?j>%BJJV;by_8VZDi4aI1y@m5{L{^g7EUq@tzJdzqNTY|3U8*oZTDWh{W(
      zvC%*)@y>j1N{umG6CXyKhWWLd`ieklc1S}>Hnr87u-Sy)TTE<4l-n53P%$FdNL`-~
      z6=JU4M2DCQ#52+4kjSCs!*;4>x#}MD;UjeVT2ElQOmt(HhIvDxe!5f9WOidb%XkHG
      z)WGgMCD?v!9E&HYgaCT5QvCFpxD$72@Wu`tu#$rss`7=9hidlW9u2O>34z=vkTDI*
      zi|x~U60YnvyTPgpU=TwFsN}L-X6d~(EHt_q!(vOKMe-`_#!c+UN9l1q$@<S~SX>*;
      z({8@Y0y1hMi4-9TD><AUkyR5FPTVWDaab(Lh!)ApYm1m=M*C%Ay=f~mmf*65*A0++
      zG|IE5BbK3$vKh~0m?p!TIG_gEN+qo%X}qbSp^U{w>7bQ~r>((u<)ClSN~Y4Iu>_UW
      zN3bmX?bOuL|C4RIkc2uO6m_>;M3g7)YnA3EWdNVT!v;Q`ckW)(_ait?3Cj|*hptm&
      zELC?Vo2H}VGO>Na_(_pY9#8)MgIP<S!*XsT1)dp6rR}3x4s|h0adlR6eIk_{&aLNZ
      z9+2YB4Y8z424xB6#^{1?B$gQwry!GR-8&Xbunh7}knR2Zt$}QF9kc09_3zI=6x3t@
      z&!Wq~m-2Mk(;-vFG3iNnYG>>|RcT`Vb0)qli;zKx>g!Ia<vJA{5i7oC;sU<H*aqa?
      zWpz`D<<4!CfaW?XQo{=-F5(h*TrK8lQ5#`3Grbf1fABg{N$e{ozK$uTtSdE^9<U;D
      zaY+Uw`wCHK8k!xlwa;?rNbYVeb{+BJX6pFg13xNZz{j?q7n2JCEQE>Dx&A!%Z*cU3
      z?3X$EA@*-{^vl_=aP;T1&r64V3nhOgzl%^c$G;dMag%Vaie7vGOE~jE_LlQ2{`rHE
      z8H8U#?ThTVP|x20zra2&zXi+WsJO0KAPO4cyjT&azl;_2)vus2hn>f;fidW~j{#3e
      z{Cs;gR$~q41ix^IJ4DX4igOEb0$CzCZ$4Rs^ax2GAoxKCX~`UE2}wVsNShRCR5@BI
      zNtexFT@l*HNPCJ~^0<SxbdI(Z&1fN=U(~3gT}4kt@{I5aeFnE(V$)8XR}RleBGX=i
      zO)~d>p41Ai{ef_yg}1^ph@6EtbjKyOww*;;xa5g*@P#@rz!Tab26wi+ik{xf*weA-
      z90Co&<<sch-4MEa8hdw#`Zp|Ee5gq;!)%jhQE<Wi6`n&)-i8YABz(a}QUq7Y)xj0w
      zQ=#h<O?pEG9Uc&9v20a^eijV|sSW)Cboag{qrwP!_ci%0z-(Z%aT+7L8>W${@I5p8
      zPDAj3WD*7hvQlu^$R^{M_h^N|V2*h;x-bJS-7BE!Ty_poeZY@d4L{*7{*)^J8ApDB
      z8vK$%cnyvCHP+#E=IOU+#qSWo@39SU@ZSC-EWC*X-a;CG!u|L&9>Uu=jdw7Kzu_tT
      z9nbN55&yt6{)wyjFMfb`@gwfh&ovFd(saC`dE~AP(K0iycBKa2p;Se!G~f!xDOndS
      zpQmiAxJMCu5eM1Q>BW=y7+W6t@;E-umY3G6=t&i$nPfeFf-N7dmf#Q$bIgw;I7(ho
      zX-!Hl=Bv<p>nXy^cp#S*sTr-@p&3(3j+IG{V~S&q;_wTOa1nxP2Z0}-RHEb4PZ2aS
      zG@)599eC*E3v4+gtKI29d+{h0FU<1+rqF8@IuH(@ISY?I<(?{Fh&vbpIHBzGnWh+8
      z6hkN+Dkp^*4uu4hdrB{48h0>-6q80@KBJgc^D83p)xV5JR!|}Sr~~g)b*%Bhcpdz<
      zLi~xMcs_WF+kdQZD<_NMPf<9w9K_Wi{5ORE$4?cSKktAWbMBwUXN$s57s4+Ug`Yu6
      z!5fuzue4r>zT!Z8=Zrsr&&{E)sffNm`h0-~zFQRid7M?~mCCk9*e;ad4;^67oasqc
      zo}IRwfC)ZvvB30e4s_1(b8}%Ah-PPD;BPwcIng|Yr<L_5S%2bsiZ1&$v`L}cWmlom
      zlg%QQnlqDFEE*+jgiO&&nl;I50vCOG)SET(lV3lTJWQbd3x@V@__hC_Oq)d|uh+Hw
      zyI<VCOKig`C3FE_;K9Tv7S_vS%*9IOpEk<Txg7KMc%~pq*Nu)SJ?d597f-Sx;PZvx
      zrA5JftrdbRXYkd6-F2<Y1B)|PJSq4BQ{dZqJcuWS%-u4XujdOL*eW^f$AmeT4wFe(
      zLl(by3o5orrcAI!>>D;%Ez@qedCBQhcE{tI3d`N97Qdz$PMX!pq2p8GYIeE3{61}8
      zZmygkH_-}QyJ5KYpxo7qMXo+9cHM<K*WFm{x(DlBdvU8P=I}Fu7v)h%U+@jKv|uZv
      leo6URr=s@P3pGvS<(w(|DPb!>gyQ1WCVnsTc_+Rz{{w5nSG52D
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ!A`<J5QhJO0;Yf<2q-ZoUJPI&F&;4}shWVq3)-W}Qa7-sw5D4;c=b7a2u~y)
      zd;lLxodO3Uhn?A(eEa{i^ZoPr1>gkL6k>$EC-EYhuJA_9uItK?a6678wY~}hKS;qK
      z9Ig<a<4>MNsD`ezT%ol!=7)0567pIGO1QQRwDP_C?j?bGgskOzIuu@L3wJ6LZx_E0
      zuSWcxkUUeK3fqKut!@(x%YT$6;@Hf<M4FK6D^K1|Cqo(B33enD`o6;kf^E27HjQws
      zG-1ELGUwV)T7*(<g&2f^@<y$?9T}D)!y-@1GKF=BU=I9g;K*wg4N+O&({W^t1MpXP
      zwS+1XNODeb6~hJ})<BwLhC8R6iF2YcL-u2i<T#p)0p~E#L7s1!1%xdWxQYad93z1?
      jlM$P29L=!(U!lk5H*<yZf?6stk1{H(LD=EfG3@>Uzl?4J
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYK~KU!5QX1B0aHK_1Qjpp2{4hUM+}KUO)$g@+L(A+>IT=WTWyOm@mF~w@!${e
      z?4R*soB|P}96GZz{r0`rzJI;G0oX+)g&1MuRy>M^7G}`sXe|dqAG)p#g5xJw-iOLF
      zDOiN!jQV*&$OqC_LOaqA7`*5l5$KeVZF?pNg$W&@hca>XQGNKVJ?{~c2g<0hMTl2x
      z4#8@B*V0BDiy7ER6LMW;<k|49Fa2}T*OE}^dM+CXw&8iYw89$|5VpFrQ1hcV38m^U
      zsu%jo44O43GA%`>MNZ68h5r!2?s-Gsl_x3+vOeEoCyIbg@F(#<B~*|=l6#7$7#8?p
      z9i+Ktc(c!)xF_l(WM9Tej;qZW;K0Hq@_fonAS|K4QzTI28VR(RjM!v-dxYh`3WCl1
      WV}<gBnkq1lGFDiFu*$b%So;Q!O>8m%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hPft@p6vfXiZ6B#cpirzR$iD>?A~7y87=oG<8yAAz4`p}^d7VezA9bUyUHMsD
      zm?p;f0o?k12xr<CsFiN!&dfXach21R=kn)o08g;$AtzWlSMSw!psc^$2m<Y^U@!91
      zj<(6mk8ORCn9zF23+8WhZ&RC?j=ugbn2L2|RM65<O#QpY3xOO6CiX)cC(0%*6{NcG
      z<7@o))9JTgg5on{O|mN(Ti<92^84Y5E@2FJ%P8TFV6thfev@{Nb#$bT11+dD!!`{R
      zZFtTu^U0Zs1#8WlY@^<=BdD$q=nj*}Sbt}u<!r0Yc7~Y=tNbq#)Ng4W&>fvc;Rly1
      z<IOu>P2hEO94nvk3vHFgtkqk)1hqkfVce3#EecA9VH&mdE8_;TFzTg`-7v5W4wt`~
      zKMn;HSv{U|7)PFa4w-A2H&0oGwNUS3;(Jdr$+bi&@SNg3OmSE4i!hA}PYy7{)d6;?
      zblPHlvy0hb!U4@+_Xu-+RYss5bGS!_W7RTNgOOcmufDm}#r<K}37d2ew$zth!#q6b
      j!Ptt2SfG`|E@s$&B0d_XerCikBO*GMi@3~CIjmd(Uk#w1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!A`<J5QhJO0;Yf<2qHHw2GB?hM+}KUO)$k6(cTx_;F{8!c58S9U&j-P2Oq$9
      z@fD0yAc1(`uroWm-~Rv1e*b=c0XRc7g&5)JMZAfYBiu==?>KTIoPp;m?fFA3w7i;)
      z<*Qbnn}R{8uG#z0)oQxFC*%X^E8*DE514=KUlQnsknMSHpoOb#;e;~Le!rVlPJRZ2
      z<hf#>E+JlT*aV~JJxLRB>}FshO~_fwmABz^B>e|5awMT(d1E#ZY{T{H(9q8+Ak?jO
      zZ`<bR5K5cuQ2WZAbQ*SKU5c!W+&2prHUw7?!5n&_KbF@jYNxi%=QL^uHSl=++5B}#
      zAjvt!RSY}4SPf~889r%qCeDfG9NCWrlH+JH23){E4|(2YmJs$(;3^U*a*PDJOh#<7
      fc|6Dde+7%p2MdMrl3FP+k1`HegHYkuF&zE@wk~!G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h(M}UV7=_PY+O8=@pirn)f$9wuBQah=xB(k$8Z{Q`^-w2e$aa_P&WiW?6uyO5
      zO}y{{d=MUh2OykjH@4P#Gylx&`M-1K-`}@Ce*t)bryeqb%?tHe?fEL`?KOR0_mtnZ
      z%Ia5Ny86<ZFz}ESRL7zZNnlNX{9UjV>&Pg-qobJm)8?^2-Ut?s!XUOPupQ+mI(Pl?
      z^!j__=CvSyU;<+g1#{aw9YOXe{G<z*!~G%(m=`RzOrYN;{WBe%s54&+O0BR<14SF2
      z)61+qH?g4B8fTmNfPF!EdqUK<kqLVHJ00g)cAhH?Oj7Azk)S@KbwYP?9)(vfRLZM5
      zUPa*bbsVc6v*)@hiCN1ty9AX<gK6BB!)*u(?J$YDx?$WjsxzPY+>HS>aIE~hR3V2v
      ztH)CY_mJhD<K<f9%}Z8c&D953_%W0$axG8_98=uD5_iRs2+Jt(<NzyN9pI2kr_I-Q
      z2UwjZyrcR1Az^K#N(t0s4eMk$RwZRM8QF#Q>buVdcrXn!Y`Pf2wnnl)Fb@xhFt*|m
      f9@ENUH&X0h5jUr)Um5Y+e<C`Ti&$f*44&Kp@;RK>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoQA+|r5Xb+cr^cyenpQq#5UD{@J%u5K6)4h+cJHe$=f-&#cWd-X`Wn%b&_l05
      zA1aztiOA?-XLg3){{OS{@%j1&;0VP8B80s=@gQoBaP3;lailGr-pH3?*wsSItH*)7
      z*UEDfFbKO#=!I`j#?sZ_93c}(UkS&Oe!%Z;TbBfC6Vgr34YY8zC7g+jJylEA`}65B
      zA%3P@r5l83xndEFrZ<!(qF7DAM3S)9QLen1jQi5>iM}HV*^W101Hm?2FPerPserKG
      zS(@>$@6-wT@(;ADedXHqiWNHNL+2ci&3f5oh+uZTi9e9nDx7BLpRFB+!=MEI9B-UZ
      zL=17x39ceo;lpA`a!hgOgfnrDRi{Y5%#byXCSyPY2F{V;TWStr9a*kIfgHzBpuuFw
      g#;XTYZ2VSev3Yx@P?%E-1?Ew}CTkG3_;m!^Uto%Ng8%>k
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%}&Bl5QWb`0aHK`1eF~d1DHsRD+6Iu|1iW2+WiG@;A*)wZE@?P_zbQ{G;wX%
      z`6#}CaSBZ!E?9J?Gd=e^=XUn{{t4h1<rHFsg9q^}8jjGzMn@0a@skKt-;tIheBT=J
      zTAq8J>!n~2N=t25=|>TLBjkMPDdE`C^OdXbI%fpBCS)yF`+?AbEu4u=e9T_He_p>%
      z3CWhyDrghp)tXH(EcafTh+{JY6KTR0<K@j{+?U?1;53AM*B!8dU>lyJr4fvjPpEd6
      zxz^pGNhq#rdx59)uvxQ1>tbkK;M@$%uK*(v!R)ycZy+yJ7^kw%=O~PW3ix{bqX}gs
      zkmR1?DTWPxn1(dh3~x@j6Zb@YitO85vc=V88PI}(Hgf!yS%|QWJWnB@z%>N4Ss7}R
      f^}{K4{u3_Q{Ax}pEmRSK^(bMN8H7DP9mD<~6SQ^e
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g-%0{O6vn^NRb$mOO)D>gh{!*XM3;s|R-i~i*4~dg*~B^<yR+fj^bA2DbkSWm
      zJwgu?olVIoyqI(5%>3s2&YAbmmsbG$D8vwA*uLWrylQhbtTxp^j61&W+?+VR8hB^p
      zzPQ)YQ85?{g*kZXD=kOj=bj<$30HF460S%5b@P;gwHT5OM|qknZE@Qdk?_&m<HvJl
      zmmzv6mDF{HaIs`D7!7A2OoXwVfQdLmsx6hc@JBu2Uh$qS7&2|APX?T9sGc1f`c`@j
      zJMDRI3x}vN<chz*u6Csw)=F03n+tri)HJDO{zD9A*YVxHIF~^$n+r|$f<~|f8jSv!
      zJ`E8>DaWV^VTl$=Ax<$tCkK=n<w$vg<kL5jqG%EZ)M4NlY1$>G5LS?(DiFw03<T;#
      i25huknPBy=LX*r}-wOFDHB%rSd90BJ!#ceVVdD!SyK;d5
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-*XdH7(F-HWSev;w6@h)6(|TvN{ApTB&CWK+F%+O8_Vc}<2Jb_Tb51OY^a@a
      zM*j_Y;Z0uE(ei7?fft$ak5bRQyP2fZ&hXHCv)_;Necw6X?LYrM{R_Z3+%yprIJRZq
      zvx~0nwTcz5Eqy1jH(gn8`_gV!I}O`4VF=6&qeff;$wkL=f+c}?Hn$;QEO(kRjW|*k
      z5=aUht~#Eq_3vy-zpiivrZnh=?K`?oXf%Sh(-WAl4$B<eOj%%dFThS$M#!gMnY~!A
      zmzM~UZnPb@xna9~HgqaGl6PZsOE!XXZof$&weGY$JLvmN8p{$Y$3KDbuI)=Nh|s1E
      z%8cv42~Tb>tHL3JBz3fMXe{S8(s&bZnV1teGGrt4T6i1p2pnqkeN}RRGo2mnHv&o#
      z=9q=!n5Rmv5|RX;sJ6U*QN#8F$1UEH_U%fOP)@M3YWLb}cDJ0yNt`nAuE6nE23t6d
      zEb(v4opl)qOb$BH=ronbk;fSm3+#GWmJSOAoF$J=AbmUN_|$bzZY8o4;60o-agLia
      z1Q>WNypIc9J5PSk>U(*Jq*UX4XyGGFa!Fe<NI~F|g%W01y{AU^q?@L3(ZUf-s_>LL
      zKDO`)t}v(DC-lWpsUqb4N{`AA1*!IzEqsQn0%qIp)pVzPEnjnU^coIS9NnBqLjfyX
      zu0f1JqABBaSXz@jpn{tir&l1M#paT)clv%qUUSr|n>+Y9omG?yoL{V$_D{1kVhS73
      zFE4yVTr3vk{}J$HQ6zbq{JP3p@J{3(VeB{UPV-D7#`78stYVzMtT2f8A%0Elu^i@?
      zp~PU$6o1F?nuh*@ISM7V@GH+aF`>%>Uuw+R&>LZ@ylKoZN1+dW3O)4A(l>_J@dj_U
      zF7m`wBmDFjnd-tHIQloX)wPQgPmmK>dx&q&JV8;QR(JvNGj0~1LzD~^Q`p4^r9{Ta
      zB!0)mUto%dNMsVbD3_9Xx?f@<{|qO;dW6e=;;6C|GRc=nF<1pAcd>Mf(4Pw2|L=if
      zEvBctuIF!%jV34jj-9qJ2M6=mLJls9xPwdZu#65Wyld!^i@W$1J|lWOecWTtkJ#1>
      zt%mbahZWW^@B`IY;q(f(g6ph0k2*dlYjI+)ph|TNR=BL0Ob|ayU1rF73~Rc}TBOj8
      F{{jCMbkqO<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ(MkeA6o&t!tH!Ennp#ppH=zbeb!kYj6)4h;wfCb9I<n5j?Am*EB}DW9Jw)^*
      z(OLCE^kUALGxMGQKQrHdA7212QB5I6IGTtz(e#8KH9I;8g$|Vnm9OuO@l6UA;cT54
      z`qNjwA9&L7L=ZS*Zj=j_kPoC$!gHkwSm3#HN1!et>-bAyS9mj-_`Eu<{Qk^6Lh?pw
      z6}AcSTHPgBj{hQU#Ic)!jWi+GQ(8XGrUPl71UnK6J%7jsf^E279a`a71%#8{`kb3D
      zX%R}bHKHFHrAMv08yS`&!y-@1GKFo3VE6r*8OjG04N=+tr;ErMr{JgX*Al8oAjvt!
      zRSY}4SOaN}89uq@Oq>&qIkN8yB*)Qa3~0l`E%Lm}EFtWnz*Qtr<QNIGnT*(E<9v?&
      bO@$7dcNYrfCACsu9%WQmgK)szF&zE_J(zFL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYu}%U(6h-fY1<V41AgI`=jev>7SfW^<Mhx1Z+YdOwG3%_^U5r0q!{1nuSoi_<
      zCVq|a4G=L(vG2{BJ#+7!dH;HS1F(lu0ujQ-op=;ASLlANrGrrDP>E1^`sAr6AIu^F
      zi;$mDKR*cBK>A9!j`RZtuUp3iIwz!?-bBd}?m)(dpN;K{kLMvFexS4p8-!@N;t;H+
      zcOz{?v6zC5Bq7sQT3!zByVAcBT~`uvZLh}$f^B%7Zd&233J6>6S*ZEZ>x4r27u5-U
      zrTg`YV@wOiG|!1yD)%2E*d1@+_vEQELDuIx?3xJJ1Ye2Ylu$wpaqbD8B3R&$b&%wm
      z;+=i@CWA^kE&GF)xOfJ0a~LY7yl34|r&crpTcu1282q+#RLoe`G*Dx9%-YphV5
      SP*VlwQN#*s5LWqg1Z&@35p6mE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Advp}l9scg!ce0RSVG(u-EU1tyAmAe+32Dg!8V#UAqQSPZ$qvctW;gCmFe1i4
      zvGyfCYXuc!MX}ZgJ_@O*_-LhSt<U<X_SoY&?Ww1&wWojhmrcJrGua)MJ;&}jyEAj|
      z{e8dh{$BSt`|5w6eh$DA{K*F?FzK@7mgJ&LGTXDLHEZZSdfo@OfL0n_JJ8pqM!f=4
      zN~4KfUw<;6?8@j|T+s9BWTr#U7t*<Gd+SO8ajw9GL@rw}l3Al8nHkVMp-)HleYySm
      zr2>I9t!ppsSkczLiVIs^!=$4IS6pljx~?4?8xwGE=scebCbc<~W|D<MBiF7^_hggC
      zK%UCymd`gi2J9_0HdDyGzIEd&7j?yK28k7kb5^;iYuMIq4RFP^0{(Q?NF=*^sbR_`
      z6%YkHThz9=vZ*_h&ZdoK0asmp2Nfl9DZL7FaFP!v3Y<{l-?1j4cF>kfru2LeCu1)6
      z*P|Qf=hJ;@BfUj8r>U_nQSZ=cjy48pq`Dv`A*Al&K}0b_pr$RI)h!oou)Gm!%XQNk
      zNxFpIu?M|PHbr+`Ykfx*Tv!~$Ld;T7rv_1r3FK|`rV9d-9h%4OClIc446irx>1<D<
      z0unegh^07-c3?adbV_i`6&AN{tZ${esUUPb5~Yotg(@($uC>*<eOsHN`i&sIi4_9g
      zRJtc^5KCT?@F8(byjshv(1KNJi>rxUcS)j^`so{2cA$^0%O_LmLBezmY~HNrNh{64
      zbYZRD!~2Z_)kf|deQ=ymm^M3}v)cRlL0o|4RBz<kvjqmFo*EaLVC2?y8_CT0^F$-p
      zlFlacSC#m+2hoAG0zNa6)@@c>KVDC(vYV@5kY+_EaJH_Zm;-9ukBalRlvPd<m{&o_
      zxy^AI(;<~7TqMri>AK3$%^Wu~phcjn(3{I!X>Sg#rw`J09WV#TIgrU^drDHQ7gd`x
      zxuipio~usf1{lPpWh^aI>YQXOYcjq4y~#qa$~?MNzhWSnVRRg0uXSCQ>D@+SJ>Bcd
      zbzOFB9NLp4!F05Du8d^_k;j0*vI@qkU|%P*lKo_sG3U+eg@KIW$5jGQ(Rp<cS>&p4
      z4X*WJ=-3dxs$l4SK@4L%ZD1CNT)&<-C_1+S5vNw$9*X;SgV>30t7Or;X%`>9Corp2
      zjI5%uI+yQD8mk7o^?rlJo3=^m48%aUS>N>yxw4=f-<1kVe^=T_<OWp6tFqGSYUjsw
      z8b7WYeq0#C7z?f{=7QN)mCqSTLvPbJQ^2E=Tw$cr>Wt{7+p4Yk3)4NlTri=RSG{1Y
      z%jzv@K2Krh@*G;XxlL#CW_vd3`CLJ5b9WFw#E%4mncS6*_2KdL8}i9C3$!IbYp66;
      zMIe~hxA4T$TNu3sMUzEw3~=#FRG&TTdWav_@Az?j!4GG-Zj5VaDSfb?JMT*tF0aCM
      zSgf4-iy$6`3c-w??J;`&c$87d+@=1QH55x1V%dRAMu{9ysd$Exdm@M@@f78{dz1MU
      z+^#Zc!jFTrP(RPP*t~`Fd>B3EG_hRWGLX*jH1XqUPG)o2n4#zUSZEAAMLo)7%VJeH
      zgahj5*&v?75vob{_v_h|z{3A4oNOJ93gU$znvn71C2q{ZkL74b=I)iTy8c{Yxmxra
      zrRQaV8I>yMIGP{7<v#0Uir=gFoe!_^@F~S-f|f{jb2mY}j^8t4%$lzvC&9?^<4u8?
      z=`1TyIu%n^GuOtFMvNqQn9>q{yiEnMbT+1{dp4yr2wn67kB#nL-u5LqP_ag|s=)d%
      zi0|VEjNA3Ofqb{VI<0!0pq&7xD53((9YtWRY3)YGNU2Gx+?22jBMp8%2p|F<{Jak^
      z{v<2JbObS>_&kx%HI8SE&uj%aKiOPAh0kHf{8Zwd;CP<K=jo2;2sN;QplnE;{=C*v
      z`%KItVvJAAcvYW});fyWPh#FAfoCC}ME&C&m6*@piR2DkNV!YNWf>NjGb%NBz}Pse
      zxmI$#Dt-uy;?ZAXNx6I$ZuE24SD5lst<^XUr&CH*O2v)^L}iMN*+vP4shODbwJO&r
      z8Y&=P&2`t%YC{fWt%$6VaU&4}jOXPx@)*4I1<)7u+>1a|J82)hT2+%a`x(y~ZFaM(
      z!5z5^bKJZbjl7$-V5e)W_6amcqMM9p|LN_KXvSzP4O%0Ok-Nt}54(4x+MLlAwjV}I
      z=Ym>oc5TXi2rCazp=Hq3G$XJJ)wq$yy_K%L4O8(GI_`Fw;SM@xH%`P|n1{VM6Zeq#
      z{b<DlSc3=Ihdjh?;urW19yPany0sCUZ911*!a1fPCu1XJR#4+qT!eEu<|6(EoCjsr
      z0I}BE##qcXDhRw0-ze6VSbELTr%f$EYlVpeN?%w(+FL>T<%-hlD@eO5NWWcCx~V9=
      zh^!QIPh=Du%87sK5cU*_FQqZ8$Zw=URCM{`Q59DY^Vaf?weK%YaVt!HxR@cNK0e#J
      z0rtY3HqfbNY6Jeb6`^HF!s{U7H-k}Gu!H`wh_ujyipa#n5S<p8L%5`DJ7TJX&qNzV
      zrKaU=h4*b6?=0detJIiy7N-h;a~-s59JIb;!`yDuS{c!XnIsYI+I<Kr$cO@a0`;A3
      zFY=eOsZ)<)vVA+gVEy>i{Fe^Qf9VJ}7zJB;(prIpd9{o^lO}~Y4MA}_!r}}>#hH9t
      zT8aj77GD6)aBy77>Z9tHz$PSZj*EFULpS~umfT!!_>~T6uU!uWy3k!o`qpykwH2jP
      z&~52r@G0Hp!WTJ&Jw?@<(Nk1y=bRG0?h$Uw5ql!(kS-DLMY<^M*!K4xEt9^yqV#3B
      zyeRF^ef?u)(gPKx*$UXwr}C;y?pMr@PdhQ}koOmN-uM5R?MDvblG)fk+sfC_Oe$5T
      z&wl}8Hzq3%^Ph*{Wdt7g!>)2a{L}=rvUqy&NSMxp=n6sx*z}KQO|c5b#V88p+4rD>
      zm={~jYM`XYbGVZ=Kpm1Nn9^$&9JR7J%2e48_kt2!mEtd+=D#e5O~{xfW<wIdjB<8v
      zJR+{-*(gnt1NQ#6+WVgqe;L8hVEiDq?uKXnf%qu4ofki9-|jeY(fk9Hh?wX6b(B%3
      z_#B?!5U=wefZwA=yn!j=O-vJSAtK(zEb$&<;sb}V<`fyt!S&>!jK#MMn@4$xVexLL
      zP-4DvSgppcp+YrVHq1tQJ2Oo`T26F5JpQl`J~xdgOFlIl5m}9D$(Bh@bkLny^zBTR
      zdW$aK7HmC(c7<+^xVMIWJQU$~Q)9%lHFN{-Z&3HXt)X4K-=*#~|JKlre7Mnk(6)wd
      z;=@ftn@T*Usxw!zagz~DlTn-`XJCn}b?mkoH=D&OfLnOJTXlXpS*YL*M52R{sIhIh
      z1ZW;PGVa(=zy?r9#chOA_WwyGD1%tXL!J3GP`4Ltld^3yHxhAg8*Yq5Jm#;@{MG!{
      zMKdq%Z97VoBMec<7I<ZXc36p!T!ra!HDdB?haKkHO=kc<Eo#(ljq|=%queoyJIYmF
      zK$RC#<$9{zK$Y!O+2K$*uc&fQQRN~UUKK4*Bw`Ge04=k3IfOk$;X8}MDhZWvl@fNR
      zj-g~BWE==qBdgqYR}rC!@(LluUeYJ`BN*9h#ddkUl2<yALd6)myNJ|n+irG5o3?cl
      z#)iyj-8(eQ>tN^}b)7aC8X0oLmU+U;Vff{C)bOgw9XNs4Y4W?6#p?nRv)a4a_6Zxn
      zy+wsPZH4FBspB3D{j8Kcp25(4rS$O)hW0rUNHMzKkwcm`7<%CNG`ay3<u1&SHzF=?
      z!ZLZYgVDJ*Bft9ljV6qd>xkXEH@KsN?$mNE_Kat(7He=X-02<*yH%4uV@P%A+ZrQ#
      z#{Q{V@P%Qw77M$}nsCc5dl^mlu%L|4Hus@c?!#>P08W-aH(6NCbwjbaZoqys7rj`_
      zR(t{jqnfo<wb?Gdf6OzxOgHN+|0uQC$}3nZ_@*Z=ov{ZstkBhmab4#j{QQWknbrHD
      z2Dhuh6L#;x1T`Ld<PaV^60bdo#~Zw1ueNXm<n11@XMd??-3^}jPM5IO%-D@)u3J0;
      zb1clI9u`nFseLk}T|9!IrZsW-eoWQ;P5Ys7^@$@0SfjN{AgVMU#-Yy8uMXibNj-BA
      z&nrzKEt+ZYg+05W@wPwePSNx`eZtk?-;bfN|4vke{bAoeoK!@3kqA`&>(EicIH2OS
      z<Umr<QM|&P`J=sI@1_QS*n20Yg#CA6vC=}c(8PNjXm5<8y>%=aY2Q1xLx}{!eq%p8
      zVSg#7_tFiJ&oJDdWvD;LB5{PF{yd`c1r~}I8DuZ9R{t7H<;!T6M{$n)EzXm#pk2O(
      zPWd`E$v2ReZ{l+K76#=zxLUr8?ecwGFF(XC`4MiGALBOp3HHc8;|cjGM&(~{RQ?sO
      z%D>@t`5E4nf5*r2ANWdsE~@3f#1#33h|7PA^W<mZ0{I^^tiEN1#Q0l<xYX|A874er
      z+Za|Mu?Fujz+60{&&IpFbF(#GX}-OAutc1KKXA;8Q3m9Dyz}wDlUvMW@oOu1!oF`O
      jOFgm7GbgUvq=WdNWGL%3N0@}v5{W;WzaQEEG<^I&;A8XP
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ!A=4(5QhJO1<V49ARr_jya6T>!*P`hiot*vbngWls9C#7ckuyyBTpnAjPdA0
      z8D|#~L=T<mwBP*yv|rzE?*PtF&mcjlK8k12_Jp3b2Rf8S3-8Jp-(+ABjy9LBGT}ma
      zBQc#TEn|dG2&7TMbEOHCukQz!1iB&Qd%g}rp+i@A3z>RxI-?K!Gf7CFE3LvVA=zlU
      z1gqyiNE=D)=3paB*c-C;?c!-7&7GKdl29D_Q#KH6!}a>m3g;>y)P|e!wq|z-<;Jhe
      zacGpDIZZe6Do0)=9+VY|{~>}s_7`R<`zrR|5<ZO#aSVO{e<7ic6w;hCTqUr>i`$Xq
      znB$WUXX2b{Es=kXkv)z!V}Jt-7bx&9w}P;bB3F?>iDM+tWin#Zt&=4V{wnm@{5n>s
      Ttf;jD^QfT88iYgcPN4P!3tnV}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYu};EJ6o&r;1xx`!5EKTZ8(<<aju-|(6AZxt?c{QS8?33fq`fshlB*MmgNvIF
      z;d?k}JOv^~8G267?bq)=?c3M$3xGqE6NnIYZpFQ*J3@`?9i^q`1rsetrw>Cp(YC7+
      zFbMf2^Yeg^^`&PE$C94U;8mwhpmRdH<tkqbr7htEGIss>_)7274?_IdR<>>uqLr#e
      zFk0?NnuuaO1rtd^rfVzN3+@KeyA%UQ5^`O4$N_?5cwQVD`o{JNyWQnds}^q%3YA|>
      zUwgJ1H>y?`SqLNZyf2G#{~?0ecLQ%I&+KrG(klN!7>_;h=kVVolo3OmdxED3*7#xz
      zl3Y`Ka>Sju$7)lgpJqsgtH~H}0t0Pi`7Skwuz?&;p&-vS6f~I(*?4V#ip{@<9*1Ad
      V48=LMFfflIw%9?~=C>m#eFF_!Y&ZY_
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh2m*#Ii*FoW#6zeb18AqQs<}RCWdyMg{?dxPMYsYH|r9
      z14kxEK}miQBZHWRrVm&_X-Q@dL?ck#nvsDsI5Ryjv81#pm61Ujt0J2aS8F?<O0MAi
      z(xT*4x6B-%QeK$ddLUC788mEMtsoYFT?TQ1wH>Aq8zTcF12fP+3=E7wSF<v(0r~7e
      Q9uorx5OacATu>2i0G!4^W&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQzfJ-{5XQfO1Iz*PPf+RX022w(4#fgBg2V>7e!&f{o_opO;WOD-Sdmcp06vs)
      z7Dymk?99&WH{Wlv-#?2l04-Egh!HB!;!QMtp{LD((l25vuZ;;z3JxK+d0RFK`A`}q
      zd{3HC1$xxGB2b@@?FKrGgpNGn&t#(YaW^`9?=J|+bEQ?(A;fESkKlBJN9iJt-3(l$
      znZQhWKYJZZ^B~5)Boqh1gaLvvT(6r>^rS+<!C<q{_Ofk4xwiE-jEvILcHOh6vPG46
      zPc|t27ZKcHFf$W*qb$C#?R#QzI0CQFKSrn`fh6Y?S267H;c28fX1H_8nK&mJb7Vi4
      zk{m~uWxxd-Tq4i6%u0j;id<QP5=U#$VWrh38^?3({dKrycyH-YS*g|ztVad=?7<(z
      I(=i<W0@|ou>;M1&
      
      literal 0
      HcmV?d00001
      
      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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
      O1U_`WKT`h@`1rpI?|cLR
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*`%fI#89l?Do!wcM1+NJhFxXzgdI@zL#~7U2#-v_wz&1?@@v9Ga76ur+?BIO>
      zPV5-lY3ej}+*p1_t$&CrS#2HYLrQ2;)m7E1Nnd|KE2aGds{UBDQqyy1F0iHqY3IB5
      z&b{Y+-#K^g<@f*n;Fkb);Cc{c8ln@{w6#5BWyiK3u?pis=o+e4#=e-Iu!jp8^qiF)
      z(GWZAy($)*%=ST!xRZM{Xg&O;G*ldLv-yIREgZEnMce2OJPf~4eaz8N_I#hwZEpF`
      zP-@!-4aQz4>lC^)h-B+gA|G%^>@Wn@M^K3>4V8zTtUXYiOxw93E1j_=t2=CEj#@cK
      z_SK+X7<cl_)z4_T0OljCG+*e+zSce_Mt+S^PxiO=vzg(KQBU@^_Odz3AETa3wXy<@
      zC5lNWt09o=^Osv3P0N12w?2^U^%e$_DQ|_Cv}U;`FV~1+m%M@s5YY05bjuslEpIR&
      z!_%B%&rb1~amP3@e<nwL#gsck1^aq>dUE!p<zz?f9A6IG4igTHW?WZxb553X139-S
      z&5$+p>HBGB7#j9R@C@Q|G}YQ~?Ei$r{G;5`Id_s2$<~y~f!+uLFoJk)$><U{!#Ifb
      z@^L7F!=NJJtUX&uxkb+hv)~R|BaW5L8{MOG3O_hvkL7HemGgCKsm=W|B25@h%j$Hh
      zFwVqT_v8-7@v~E|EQAW|cuGYoV&t8%Y;iJ-FXO90d}S#=&s#r-2)>3>T;SvftO38)
      zlg5RAd8xp7_)otPhK;cx=xyc7PVUXPRza?3B2u}N`h{Ns`olRXl1{heIQ?M|#mtmU
      z!i```(uJLTUv^aPTHCmwI1HZ(nw&Tt!3?^Y?}(?=kbBt8j(x!?<OBY!;HPrd%MqNz
      zdCtnHw?podvT}E()MT_Xku(=;2vIOMYfICOoSiRb*eK81Gd;`0vUh}^oRiO6vh3Gn
      z%H#S4R;81h+1dD31aDw3KXq;+t1#sDWeYMl`RZx}Z{iwXabwA`A=i^hD%2;xkMIj_
      zF*j`YI`T6#<pJ@eRFtO&RU*FN*5hVks}4bgIBK$8#?d-NO8OPp#!-IWoUx8Gb~0*=
      zfhXQa>?humYCgl91avX=Zal_T#Giy3)Usz{17UrDT?(MQ{<{d(7w$u^f50hakT8a~
      z%q@W^M?D%8#6|_tNg7F4(PZ8rNK=s@P4BJ(xl{sDfkrebkWC6?Hz8yp(Rlf-@4+mO
      zj}j$5zY67g2}%^3u|=W8mr?vwqKW7oqC^v8L`f{HLV4#AlxE5+HF+E@3S~cYkp-34
      zH@t&jJs}!aYclUa)cDho@HF89Y-LM&_c)RYtefh{9TaKWOm%`yMBBVtoDWLSB1Dto
      zNYl2mRpz0!DzpieS|T35c^85Be7yYT+o)`oPcuH<JUTreZ@xvIIC+{^<g4NC0zRUn
      zAG6#)(%nDN$v>CyCde!01mjk={3@PU=Jl&cBoepDn^;IhZ<9AEpJrkvIX1J9NZuiD
      zg1pHU!F}GpkoT|T{e--KBk$i=@k#@H-jG*s+get9|1+%kM+sQ@8dkKeX~n(Iu;Sk(
      zXlq%~h9xT;Wkt&)Rzy83Lh<J5Q95yxG;2Abg<xnVLRtjXS_SH~XbEl0vJ)-KPPAdk
      z2}kXxmPee3dQOBA$(b=4ahtSj8KG??Z6j$nlXeSf<Ev<WBP1=2V1l1RoM)fOL&uL#
      zs<>Unr&Qdb;?qo1&flr}?JDk4u|vJ@RB^W&=Y{L7`@D?Y@O!XVZM+m!mghpuS6MuW
      z$M&VKE~4wrl}|D%kI=FdjItht%6h$;{1Y#xq?Cx=%ZUCN5%UE!-%V8G*<m7HTlp+~
      z#A8G}PQ(+d5T#13IDnKwl;?%~tNkf@eus(=aqz_Z==&LZ*nbcGD_?^TJ3-jfs4B~N
      zuyU!1BP`rMklX3691An8iqq8?a97rQ=W*FfCFz9mygI(Vv?js;5i0%<;mRWjgA#$J
      zy`W4OQt?F<k1Df{ss3>pnez!oKW9tjyeYAWlXnrU#@FQmaSwq?MtLk$BfU^^4ma_V
      zgV=zes6)A^$2!q~^<pFHL?aqSQ%QQ8=%CbF(k<N;r_`Qkj4xv3E{vEXk3q6U7<u>^
      zv5EPTtHUSTNwRi?#V%Bd4#Y$!Hi+G55YLp5HTv6yTAWt3W>l?{OSNjXJj=pN=!{>h
      zJPH?)^@={@pNcFtF9(ayZmw!SUya!doqCOK-gq0a8ojFhZ1`fQQDZFPrG*;38n4*0
      zXWqC6)9ei0M^(7S2;0RgXFEfte8UAbp^I`hN&RcNS6=;Mngz|k6tgVoEULxJs2AtZ
      zB+jE*T*fx>8rsDb>=Uo!fVhT3;w=n{>o_iMA}wyg7I(bDpOa4D4E$TL83UN}E}d=M
      z-51%?v5y5`V#~lG%5&Lky~r=_RklJ%^PdsFWnyy4AuYgl^1?agJ0$O^MSMeA_09SC
      zRe5O`u`6=y^}P*MwddC1(^vLw<bATSs&-bN>uOxYx98a&>1w1bqC>xr3cXPuDa>~0
      zqN|aU9@FRKoK=$ifRg->3w}gN9&kg=Q<4R4s2?LP-b0)CIkt-r(II|;J>u8s7QaDC
      z{1*M<BTDlzhQuFABsr!2y@*qQIqz0)LpvpDpa~r;?h;!9-7NXC*E;A)(!jz8Q9(&$
      LOT%}(4Bz@6BCZL;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g!Ak-`6vn^NRb$mOO-nBkM5sX$9u29qpjtd+c^_@CiFG!1XQiTB$NrGcorDfu
      zy7fmzZ&fe~5A)u<ncsZhd-L`E{sCYQ#TY^iTep0~t2S4IYFiArmLqZKy8NLdAI0%~
      zU)*Wws2B`};+(wjm6pT#Jww_PuH<%CxE}FWr!59{#*l0}%F|rwF1LLVd46pbYM)Op
      z4AFh5q;4>TOXV(u(R8kbi7=KEFcD`+SyG9%KkNzjlJ{)Ekg=RT8E~?pdUj~&8|g7@
      zTl3x)Pf=&cm41;O?MgMMm%D*+E-=ng*Cdzu4>6b>$9MbUL<Y@lEOyxqTEQl0H2P-x
      zHbfAm9HT0PC0e9~IK>2=)F?B`k;)j!w+WJ>Xc7h-z`zmGv`b7OtRO>GAdsaP2sDTc
      h*l1;EjMcvi=VWe86!KGQra(OMSR)OFb$T5_;RnP<bO8VW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J5QhJO0;Yf<2nq+IH^4+<yotdWkVGV0&>p-ku;OCfCT;QP8~6skgeMXY
      zK7h~T(HN&df>92g>1@A#|Fj?9Z|?vOQH&u(*cppQQMH90Rl82Z7M|CXw=HL)hv%;A
      zxG@-n{F3P?eJ@6G_KcABq^pE&N!L@3zP@M@s7**V9PRl+`<AdLGV*l%b@TlBGA2Y%
      zlvaM75H6K1g3)k>(nJ{R37CizQmmKV$wObdSE6rALZ;&kI6!a=&x=FDzf&Gzx3k=9
      z)$TPyuJnuP`L5EVTG<LBb3tU5_hnJ$KSVHl&cq$amI~G=tnwcO@z?`@4*yU>5fMbW
      z$9M{1jW4z!&Naa&N8E{fq%uYFb%vz4nv4ObFmQ%6-zDY{Hjv>d5M;Rqf;y7{8?Ee5
      cvH91~=J3mzAwQ=U2Ii5+7CQ*r{B{V1A2J|o4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQPfr3d5XE2lpJfpQK_y<i7{EkgJfe75C8C52y7#g)P_wkAyX*JzMB+j3p8Q0{
      zSs=mSp);NKH}6gR_4ED#;2iZV5)Acc{>s}vSJU=Tk0Ni@lfs|e8lz1XDTb5HeP4Nc
      z{=!2!_J!l~AaG{XCYCHiDG)|--xVg1T0Qk|7}z~S!O<!Rxe8tGM<V^5d$2!yh!`@L
      zQpvE(kZd$vhLocx!a@=|HZ0^BiUX;{Fq)5rdF15CP#$QH3^>_Py*^BZGZ`=(4K{Ob
      zzoWxYZTz_(g+{7rr|HIa)!42=vyw>pKg3{-bYwiylko`EZSAwz7RR7x(5KROB8?2?
      zEL92QXpsW)6m2@Wpv)+zTMHE4mPnDJMHp~}6s}RCoxOsvi!xQQK!su~&?PcvGp*AF
      c_O=!7$h^N)sI92A0`aI}pEMW_s5^nfUqA<H*Z=?k
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%TB^j5QhJO0;Yf<2nq|MaYNBaj7ta`6fYrc(C!cA1dge#>Baa=?p%?W=mYpN
      zK7fgF3Pg;u=uGGI>-SIl{`K+(;26~uVuYPr@gN$uaK??kI|!{wS4n$x_GrobK)Fr|
      z8lkvkejX6=zVwu^P3idz-dvs%=!%f-xQ-tPCoqK_%EZ&_{zv#}91@Z(<*1-dh}R60
      zpmp4l)Dg#e20GG&Tu(W&AKne6cP)mtBounC#Q}n2cwQW8!9@9l-QIGkRf{(XrP?oM
      z5O~TNHw`n2EJcw;-j_v%{}4eRxS?msu8P*Etnwd4@z?`@4*yL;6$vD{r+A8CjW4z!
      z%{9X(C)|m9qCQ3Td4}Y;>Wl#`XlNtPcbPea4HS5a1Vyfqpv`2&ChG@NZ2mQzbNI!~
      UP@Yo@1M?_jiyee*emjQBH|Nl4;{X5v
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ%}xR_6opS=05gCf2>!)|8v~d?)P)NaO-79vWP{GWK*Q7wQ!_uli;v-o#03wa
      zPvMIgZ-E3Oi{9JYd_Cv1pFbZ{0LR!(A;z%x%wKuK<=&{#RlR87Jc!Uy!yDgMehLP|
      z;Sy+j12ul(q3pZDa(NI~4&4(omLVSqUvk$Lejt_i)V^k5_Y7G}c|pj%(B^I=5?|B$
      z$@kUS8$<G3dNOP=#4A;s!LZa&n22LN0~2Y6Tt|AM8;$$If8^xIQ0S-u8E~?pd2wij
      zjtm&~JIkCa4{0)#Dt~}p=u2<ZtlHYIr2UE%mQ)I>5QEuMkv|Z(QfDZyh}X3-4nPl~
      ze`VN40!ivAnqpX^MG{C;&Ctmybw)i=n;`o>LvmD2!hj1HxI~_InK^_F6ll@{MXFk$
      iMWkkvwWA3(|0~>)d3&Z%o>L12;!(yHY3P7D*v>DT6m5Y3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}&Bl5QWb`3#Nb|2r3)H4lt1zmna(qqd_)kmnN5T1J~5n^vC!#zJn_g6J5IS
      z6^yT9oB|P}EIM;%`rUI*`~LO(3g7_cBw~c!8*wihws6LczB>r5$%PCi?x^!%$-6+g
      zP7)fSu!MeI5OTisl(0?d`3zp2oe=1pkZHS)9|$Kfg&j)0^ZD|4{ic5q5=Y8WL5mQt
      z)=Yxdc1O}c9P4QqND;C<<;Z?`JCxp~7}}DM@3|Hm2)5yQvDAWz@(GpRGStfCO+vBy
      z3mOETa>mV?8F>~X&jJT#rTl-0U<};Qvt(CAIm#;y_M-r(fIo<TC{xgp;GX0uhBbaz
      z1}Uy--W+l#?s|QS%+n0Xay1wOn$U2J9G}v22ph=r6bTf#MglD+BQ{arn_}~?LYK`?
      WX9}e`wNPLlC2X+<VViHqu=5Sm7;BsW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYO-=$q5QSgC0A>I|5EK?hcYuk6xWuqQBpO0clzoF8Y%}zj`7xftJGk%wt}re<
      zfVc1>Y7H1M%A%{fs=t1(y5BxtUIEllj3GqWx)!&hY6(5Ac74n0*-CrTY2A(Fji+oK
      zgFz@Rm@{8{Y9fEm329e4N>~HwxXfQ19}?(<kZju8^@R2Y!t!OL{rGVIS$lsbL=Ti!
      zUV{)Wl?Mc)X<tecVXP)#B2Gwkl$Kq8GL+7_7+R8$>DVJS5NyNschm5$luOv|EM{9a
      zf1Qvk{bKr_qx8659t4)Tz%tA8vQXwfL@@id?~LS;3dSfb)87m1u>*b%e=2_!B8YO1
      zaTUS}FIGXEV}d*ToQZR!GDY%fhNL)}i~%heXd}(L#2msJGF$}$S&o4~gUNu6R(7XY
      c|Ethr^V69^eolQWFpoSoSc9<1w?im=0kQUOZ~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvaOHUI~7>3`|%k&EUDEIqS1r`G0U34K>#Sk>XY0|iwwnG^lX0)B6uyf<al~Ml%
      z8)MYO7=M62z(iO6664!5Bp{kepYP1u?|$an@6TTWEMPW)h=OceyVjg*d9}Iq=1$qJ
      zClLEfy;t70D?tK=LYMY+{J9Og?pUs~Z<Sq}&JF!qwCfGW_srE51$9@UZQ1u4f#n57
      z%Wc~67YA>LGjD#qR4}Se%?TO`k%!9)$)$?xcusIbAv!%%RERD6RXYWRd=^=>Ddg51
      z&kmb=5LV2u`4!78TI_-y9E!%0PLoCyy;*c4$5g?V!#er3lS5u(UFWbfU3XO><@#Pt
      z_o@|6klu8CD{Nm&1%*u2Z?fc(8;4Dm_kv@}%`|&ImBj!CnWC}f*N>&xptRvP>lM4;
      zw04&X=Q`VJFgDJ>D1UK87@a_p=M?WMf;9SCyWly=ryV)|BY?^yMh*BWQ(xkxsLY$C
      zm@Js3xSTUfhAf(;gq$}^Nx5K_#E^?*LN1X>xlE?y3Yiv*%t)EcN`-8bD%mbJnUhUY
      zq(*kg7MT}^?38V?OCFKk;*veGL-vYC_K8pS%VTmto{)o5Cx@g#4og6eNRu3uU2;sG
      zlH>A>oRB?oQufXF=y=EJBIqPXxDj9l25#Xx3fRMKe83%ir}hI^(WO1Pl-Avc`@tfu
      zq8^|9gr1{RX{H3$xxD*2EE_s;$^B@3{=7PEhcK+|2u8IX!#Lv<CNN3z0x(b8Dqzfh
      l#MG+;p2B7gt?nMnZiLyXpT-&TpXk>oqo4mbdRo_*`2!RVt?~c>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY-%0{O6vn@!tH!EnYg%~|cBKYMbg39&S%!3D?fq!Owz1B}{*hiG=w-SRy66FV
      zf}WvQ2%@tp80E#BGiUhC_kA<(->+`~4pB}aM%cX<6VY&lvKm+6cqqND>y1Tl_BfIc
      zf$gdkG{W8z>N$?IgmdCq;aI9AN67oqvxQ?y&*ytLy;A~R60#jv`GHV@DV$IyJ|<7c
      zU(cTgA=$E(9kdDYYRx2Q9rsr1h+{ni9ce<YZ!0;^bS;LCBp7{n#0G+GcwQW8!JX|B
      zD*a`~l@DnWiq&7xAn<HuHEU+%S&Tdj9GI1i{}4eRxS=<aT|3HAUTJU;1waM-ApT#b
      zkU)}qil-RXc(Dx9Tr+%f#GSY&>QiK2W=M{!&KS^whBorN%giBcz~CtoC~%Dg+Dt}l
      gvc5mX=3j+#HourDl;+ezfq9g$#TtZdz8%BP4|f1^CjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=T~pIQ6g}G(LQ4c%1XR8iwJjokp(4mv1u0@ti_GYY6WWD_2}w;8KKvc}7kuJD
      zUy36$I{N63a=e?QCIyDfB)hqL_uO;N-u?6U`wsxO@mfNNp>0dqQARaI-yB_8-{J*}
      zp=m?a6;1uX8N$ib8bfS;ufWTeYUmXS5<|PcXSHM+yUMyoxsi-fq@i_L)p^d|Ugzej
      zyO3Bm3W~O-n5y{qf)T5vRu~e?K9*a5f(UGKE2AkDT5nIL0vS$FB$Sj&$t_0=vkZ;8
      zVW}JY3{iJ7t7$}NS5Zk$LvksbT9eSp(B~J+>J~RmyKM2|e|3bz-`k2tbvu%QvL3P2
      zTQbC0-=efhRadPkB4QbN%T)DEhVyky-ROjbK87y8svDlORjtU)7#Id*oI^_tmoX&a
      z3c2U!I$~v9MGu2Sj^vbW9>aB{BqZz3%>|W_#xP~>D4NYzHW;p*CLy58qZmUkMr2&V
      z&10&)_0*ckxFu7^+#%&kxy<z<Lr*djJefLS6GGWN8LeoG;XWQpc)$?%l?m@RxhZ2D
      zj~JRQW0CK<0D?mHBrXB=Vp33e%rFwvRU>&qm*=swb6Q3>dIYIi8SOYvt&v<3jV)Q~
      zHaBc)61GH*QqT;YI=KEMy~CHV$S~w<$cWsWVdd>|*)Z$7C|cRq3-3gWFmzhthUARA
      zT_`>0R>>&No2Fq(SZ3(<;Z7tpAxGV&>H|Xh3nBgGG3m9gJVW|3jL_}P8@5^C3#z!J
      z&F-$7qA~`_5%+091YvqZXrMrZ;*Dsc*)Y8#hkd0_2vPbrI)PopXfC^pXr>uhT(mNc
      z)Wv9X{^JBC;t6jg?`cP^L<h~gaDl#})MLUA(HKn+e?~*(AbdbSfs$<8DcR{Jxg|w9
      zE;=+Ab+F)l7HgJ0$(puMZ+IJXWP*@8bcEhF=_>lG82pB7hq%!;Q^hDn?ta5q6%$oV
      zeK|%?4PXy>^y1WQK~p;%dSebzKuSl$Rm}L-#)LNZ5smCq089#i%~6JLpU^r@U||}i
      zbpL5!zX<Giz_=P1Z9oQ3=&&M~#{#LY!9HaPWC>I}OAb>}W}eoCGu=mc_C~mqcuuak
      b7OjvQhj{gqmILP%3I#NDdm0$>PS)x_-W5p~
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ&rZTX5XQfO0;Yf>SX811Z-9w}c!Y4l{{cCmy)U@Jn$ntWYvLR5I-W>0@d11d
      z-@`Zs5)2-8W@q->-#5EoKkuIa>L{fUBb1)Ri>Num9o2ea(0lC4iKk!Bwf1xh2H|jZ
      zZYv#x!s&|PSh;d8A>@3im2hmSedW3L*JlK}A!OU0>j%OOY~h45q3a*d)9JTGNH&$L
      zf)*iOuGj>l?L9~nacpK_B2C!pF#9%~45Ypj14k0_9dF16f^E27HjQAce8NFzHQxI8
      z4T4qvbKVcMaz~Ad9obotU4dt1NdCWwVD`OG59Ni5MzGe|Cy_0Vz|Y{n<X=PrNzN&*
      zV%Xrt1f)4;xO2*xI47zzWZ&kJEsiG3fF=yIkmFruA;LEDTt$Ea#|Y43Wu#43k7w9f
      aCtR}m)tpdVsFnoQqljH*5cc?X4Ew+4E@>A4
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw&rZTX5XQejpo*aA%@70ez>&tYC!;kUG&QAq;k48VS+eY!vTeevdGG;vDC5*b
      z@zBJ>{GZ=9$!tI0KLA|fBtV03x>ThKjk1d{E;-NjD+g#2`hWWKC1*ZBn=ssUm9@?*
      zubmCAe^Wwd>WVz$J8hWI`;nYf9N{b}tk)}k(Q7?7yyMn{(L=3v!k&e3_KMIdl_^Aa
      z{Lku>GdkM{(4NN6$xTE!uP0KKFWAfCMg2T7yprqb=8Y@0$0)szZ^s0}o>)uX2s99U
      Z`+Xcp97x@f*&(Bg9*(MX24Wne{{^$`YoP!D
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)3OH0E*5dJ1<n>LNsR;{m#2gL_s@oe!@EEI|sDg}?*bkUVGkt7v=lo#<(Q1Azc
      z2>u~)c3XUa2M;^%Z@!t?mygG100&reU=cR2#Eqy0BD|<|qD0+x;>edtvT=OcY=zgO
      zw426K3>{<$^QKfqwI2yWUWG|2LSGWL+W%^H$e_9(s8FRx1bcg@N60jyfpkGAdhn1Z
      z<mx70;LxmxEOLZWTZQsuH0;axO!NaLth6Iv1U(Te?VF$r8%6GyUaEu@4?i#*ErQ#P
      zMzJrON<+&(x82us6TDU!%D54TB$0`O6+-pzg?Ogl_rW^PY4cfmH9ag_Hd_uqLV>*+
      zES5m=33NV&`+%8yb}f`xx;ja3aOo9uCdxve;R{S`0omO#%HOb@4o)H7qyQDe&3}c3
      lDR_^y23yvhmWFVGd^cnhq%}oaSTt2tEV0%fLRiKs@}ESfZHfQ@
      
      literal 0
      HcmV?d00001
      
      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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
      aYI~C3FZ2?iSNXhyFDd0<7o3}QsQM3o5ld45
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk3%}xR_6opS=U}QvoRq!V!?!bk_xYW2YkPuN!Fzn0FV979@bUKQU<;ui`58y)?
      z@4zUtx##xw>%Beg_s{1SfD0Vk$S_pr{DpTs?$0`pTDc+&ZCDJIO?fz(3)e8@uca@|
      z4MVoo9y3_CYAPILQ79sZJVSXPeen=2CPF{)i6<Cp1LbmW%(aZyNzpRTGGwR^HWQM;
      zSJY!B%rG)RWJX2{zF=s!+G|p(PI`yn62W~x#WqrGY9m3rS}Xn6)_&#E^psw?=`%Rp
      zr7Hp>l~4W~3@4l0^?f6>jshd5{}4k#ETtK9FCw4zRD?#WH)=Cdk#<E-#`cSeuk*N<
      zbqbnA4-eRs(Th>EX?01;NONZ&*m|cV1BaqR3f#fMJ+>(;t|8JL#2-{bd8HLpS6WN7
      bj$I=6=!8YOPh^uS@reT(3921Z%;4x3x*K&n
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0ZC4vb6n-WoELql;^43DER;4sANJNWRLHZ`OXn?lCD4^CQ%%O|PE}h-<lyCZf
      z{Gc9bQP1)C$q)W0k9T%<!z9_(FWH$pbMJkg=iWOf|NQ&=p8)1y8%Qx+IIy4C<%aF<
      zm+uL$&VBz@%W3R!VIa*gbb7k6d%)`fLw3&*wD80c!<kBW?s(-pPJ=Hp7<I4NwB0@O
      zR7b7AX_PCDAJAd8>g>CA&=Q<ss_S@3?L!>ZKsfIH;xf4ma`%ZNJh#bRN_|#yTC)%7
      ze7@6?5G6V8fZ&P-1KVckUvgY0SY{Z>YXL*pg&M<^ZfioG<wbcjecRjPCi*aDVF=?4
      zefdJozy$_NS84#03<E8ni&=tU;#It6;9`f|)gwRPO$)E%63MX71FFs;7Xhh09l_DX
      zD)jO+aUO3<7;iC*CArkHV7P1{gMJC&iiJE1BnBlT*%{8|qo`pKrQp(`WML4NT)l1K
      z49?0`*@A%qSs=&d>#gQ47n}BOgX%n7@#=P?W(!B|BV#&v<oFDe8s^U4qsoqVIvyRy
      z&g1zV%`fVeLe0bit{M0s7BR$pQwaOWx9}k-V!!RniW23H2&%6ab*fRnjwB=^Mjfg|
      zSEqZ7i7mn~)7?sO;)Dq#%s0BPCx+FF-y>wXgKeyrCSi}qP)z1@u8R?l*z(eh3$cIP
      zHwmD%{MxvW#ACT4geT~L+s$x>XhtvQw_lny;|I2&>W;<Pbwx=^bLDBB9|n%+`UWaA
      z>hVCXZnRIbSjRmB8w?Yt4_}qnTfzyB)@;|_=fc8$JdiJ4ONj7Q%IRD>?=B8v6Ey#y
      z(^DA+Y(Iw<zQC76jb=?kUe&2Z9ch4AYY(u}$s~whS@>E`b+-P9*S}kN%Igd%pOiAI
      zUQ5)ue2j@;XJKb00DAT*DLwybq~zSwDkVpktl4mF(w@e<y?=%FG~{$PNVXxIqrJL0
      zj1jVaA4USEi_bAy`~&B=h9^#tdyY4bF;zUl^f8LXzGKW3OUIb~nLPUN4*gDsxfjTL
      z4x_k=9OiKe*KnC;b&k%*DGx=(yLgYja-~pSrL{z-EGDgfAXM}8m1rJEXbS(2<^=CY
      zfKnQur7l3r^dw%_02SJR3Iu40(o!ejqqZo^A&hcp2QtN9G5ZtYQYre$4BQUGDGr$^
      zoD6ck9ppwB<UZ}C21ck{QHD{{$r1r~seG#%GNX;m=#ffVlvD<85(p{Ptth-%EGa3%
      z3<{{quug5Up=B`J8BB_&xMwJiil=j)>gK$e$T>q=C}+vN&2_2=$rf?l){y92WfRLP
      z45C0GRBL|RQw1%gs=~uWL@T(HKxgJh(n~Ml-V2;R>7kR8oqwu^64oI)2QQ!_XHC+%
      zOT|s$Q%ans-De@89clonQtlV5RZ4$jv?Tkh?>AIa_zPRlu)|JM4U;3_(eEME@i8V4
      WXeo11Ez|TL;Tt>%Q$7q?e)}KAIv5B5
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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(off?vL1_nl;BUl;OfP8i!j|E6`05KPk
      I&BVYB08-d4{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2m*#Ii*FoW#6z{h-pkyu_rORCWdyMg{?dxPMYsYH|r9
      z19MSn9+1?~3}a;A3eGPrN=|jl%t>Wr;Dzbb18HJoWB{rHTEW1;2sDV5feplBU<Z;+
      G3>*M)+8f9K
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-A)rh7>3`kY`bPHf-Q@sQU#Bo7zoib2r>K_O!Yvp(IYdI35+SbWPj9i@56iW
      zs0jyL0QbRd5Z`Gxw5;`HexG^1cV@0{FRuWs<AsZYp#DvLS8H7roUVOLgT$Qcy`LR@
      zk(e-W;Rve3{ksjpbgUzzx@{fB1V0_@3gn$&awiPpL<LD(byHpZ{k8Pgd;RN1P}($s
      zNwx$NOUrG6vlE_Z4-<G)hKGlOsg?=!hxGhdM@Q<os|A%-*kJ+1GMs0NPI6{q!F+2N
      zDj#}7;4h8rA109rPB)g@ww!OvRhgBN%D<4HIp*jHcXSqoKWv`NSGT^Jpx9Aq%+UT=
      zR!|$&<|WUqq#^JQ!!+vXePgfh=kK*@uZ%_T3Hf{cHxyA~?{Zea12`P>DcP2}@`}B%
      zFE)Fa{L@FK*m^{PH-xt_%~5#(;V~+lSwWSp6>O2TY^k}@!%W`LV)6HV!|Z^{4CFD3
      zCv;d>Epr_(vJLGvS6=oomzRC!p)Y;e!T`IIxtWYd@f7ncWwnh=doSX%y!C_;^?xE-
      MmyNi<Pz5ah1=#wJO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYOH0E*6ot>!wvqH{we^MI&KDS5SGuqwDy53m?x%6ABgsUPiQo_L_lPUeg`i6}
      z3U2&0;!Rp?Aui?)_j2Yt=g#}j^9z72%o|8CEMD;&ZaG}_t&>n`>560FyD|u*rwpVS
      zmSRC5?9i9`*4p8Lv_}$#av*%kov!esCuaw{4D67h(DYQGxzb(kgd%fsZ{2-8eIGGo
      zx22N0!BAaojl4VBm#SZ1>oTO9-nlR_fnpveatx)GRH7ZaJ>j47o+B74Ezc%PPR7&^
      zhiQE&1Ijx_O>9(WC|>{V*XC{vOT=JU`6t{Mcr32LZB2`lv)S=N-xhl^idai{Z$>us
      z?~GOh)dggbrQ4t`g-JSuK#ppjCJpLSbZ6H$9#MFRH6^NMJbk6NZzxk=8>lda3U#E%
      mG-ikqv8qGXK4~J)|5+cz`ixo2166_*QENnv63!AQg}Gms`-C3=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h&rVZ87{$+5+FnzOV6nCQ6?D@U12HUIU>XyIq@-~H*sU2ZlQO2g*W5c-bfF91
      z$W;>-J^&BE%4ad2X>XvkxS4PMobPwe%v}Aw{0-n0UU<j|mOrU4YP+X`?)I_vlgQX_
      z`(J(i*_tr$kQFT53XYP%n!dg{7tF^xGOE|nQB3`Z);ob53TF4hAhs&79o0*8?xX$l
      zGt}3w1^G87Ft#a}snt7z>|S`L3z)&9A_{mYm}{Frzfbz7IyzCOJuN7;L!SnUHe9Eh
      zS$l3`!D{<9+f?{nLAf?Au#pM6yY-IqD?7ghh9#vmEfO^DX&uv@oJZk>3zYJf9Iq<y
      z`Z|tPm$`GkN@CXXy<LLpxWOcD-Qm^*h2t=Ze0^ZtOH`(=xaF>o4e&Ynqx>r5kZ1L{
      z%HRRAoby>Z7P+&-Dy+H20JFb_k~xkAN`WTDZ!ynVaU{ZHl(=$$1&$8Tq|#~gjm-g`
      zOcGi&KO7P&BUMVE9u+(#!?CI<tHsDJwAa{tIl$s1%xBZt5Vk&&-M~C74`FP@3RY?5
      cuxlyyPQ+)E)bEV=<3AA{%SGH^s0^O}1G#XQ@&Et;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95Iq~4ICTs$rj$!)%f*z$Ad>Kg0!XL=2`QzKg7Us`R?fD@Mr$Wh{|Y23
      z5D$C+ABC7r9o3=musb_5=gf6~{r>S2Ko5b13PbaVFL)>BNz@sMaIR#2a=;TF3FY@J
      zm<;YY;Bayz!rVfYVP|R03PxwB<U+<G64TdVF4Kgen$KkBcPYW(JiuQW`V5T)k9{Sw
      zT*-pymGNXwB7#+4$VBF^7`m;pd%fU(*>%Qjj~UGUbSgGLxg1!i>DN^U8?bE{xaOda
      zO$MW-p^bq|#QXWjiBKQ-Bo++bAPspu=1OY4Fq*nIhV62`^-}yE6>X?F4Pvv^F5%8b
      z*tc;9I~KMXw$=x^nvjEC+-0aoA|I;slTi5y!`@o+MTe!}qt&?VQ94(lcuOmx0#-4L
      zy*||$8Ju@XBGi7&vrJGkjW<acrx}g=K;*M@YGIGz)_+&$poKPlj<z;~@`^>BkIY
      zmNPv6N0Aq6yl82U(WTWGbS|Odx_VcD>*-C=f347|!y)fwdc7pwAlV2WpW;gJ<P>i3
      z4c?a}@H*Z0lE7e_O>B{_i3G<D+$2ez;dT+~8A<J{1z+KQNAokiE6_2j+HUTa__cy>
      W;NB8-9}h^{MFhZuPr8YRc=QM5*wh;U
      
      literal 0
      HcmV?d00001
      
      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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
      Y|HU)OQwIN+%`N<t-|b$_PZr)^0#zNuPXGV_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ!A`<J5QhJO0;Yf<2q;k#;{`C07>_6y6r({spuI1+!fI`kZ3{6zfY0NJ#Dfpu
      z%lHPyDUcB5(3#HW>-W$0>*wPWz#+;BL<n1tVkGLea0d0RFZxe6BdH&3cYLO`s}nE?
      z+Y7={+7E<%CHh0<$SFd|dQvN4TT*+<b?z=s33N$Fw_L~bh2vYo4rFZn@?Cg)-5V3)
      z$I4NDlMt;`ErQW<@1=<-R#PyMBxE}5z7C#yQs0W6EeW}f+vfnmF+9%?4S%RS!cJ$g
      z-tq++ghJ&Hp_MaeRIM<u5C-OXTh`>3A%fX;1KpQx6)sU)wjYGi*acsO|0to17~<R$
      zJVmg=4?B?Ln&Oiq?!-M-n;`u@MKWAX#()M4oFL0@sTqVd<ai1Nd9I<L$z;gJYx@(d
      b|2MQb{CsLC&ZxP8c@$A%2VsN1j$rc_GHq*r
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TXR!Y6#jObG-*67CA77aHiW8>CM^|25L&8IE*48c3q>kkPSevike*YM6J#7`
      zbP#=Y#_<Js!3U==Jg8$^MjS5>mKkSs)bTbd{sC|J17Q5tKF6kQLS|0(+H0@%?Qh-o
      zm$yIq1i%(dgixWd?v#1P?8=(<MAwjOrcWQunQ3cZ)|#?xH-vyfUD4q1=qW2rZIwd3
      z)@GcpAuE?LvzeF7(X2(|yxtC5xqQa4kM-|WPzM!i`W!p&nzlP^W(!u(tp4KS#_cy=
      zR|t=1veuwEMc3#+@uDF&m$4_h6(ZS;Z4DNtMy(u?`W0%&taR3t)4r^k&(mVcawnZJ
      z4<nq(51MY~4B^y>LRC-3&bYk_-HB50{!&$`W~6;sA<*ZHSrJsC$v{2UDpV%ghpWNd
      z88A>IQmcVltP*LxfjUpO!N6)yy2n5iYZO)uEJkzG%U5*3Nt@YW1|)l58E_{vjI4DT
      zofV~FZmOAxJmZz*?J5)CGIyQNQcZvRaD=2&5?DhBoeHsH6$T60>=7qpyH;-B*|at7
      zvZP^jF~*F2hBY6Ho4JXCG)mlc;%O;yu8?+}Tm&81B9L1Z8p<$}q~0}Qx%(H3U!Q0%
      zCC9#@Q88ya@$3PET3vlFb}>4%qzP*OZvs!Lz1R$4*YVmagxv~_#V|eXp2GOJMdm$d
      zlD|g`Jc>PRA#-}#vd0uU%EeK_*+c0TguQ~Wk4=*3D~-*!3*!JgH4z4*s_{BE?y(Nz
      zaW?xg`?T%6Xvc?~LN3h~?7<;H9Te35JEDr+5d+=WrcjX|RcN{sPsV4xP%yLXwq<ql
      z2EDs|M4DsRzz~irY+9ND-(m^yq7Nf-mXEW4!~?c!c+$*IdK0DajDe@|>>Y0JmzjHB
      zZa>OEoGtRVRdi$GwVku?<we?v6)kzbHcO59(6Iyf1yO}&gb=1&%?Gdo5l$uNmvU65
      zSFfC1y>fE7z9n<Z)!@egp=Tqdx9MBOHJ+Tu-O1D}nv*TFXi0X?B9>emnB_r3a29Rv
      z)20IV@;}CVfk^~#ns;Y;+Z1tatc8R1n8tlP?e#FR5u3Opy5^>|B<w1*lpwE4EeXSb
      zmV{%F-0IQpGkk;h1$mZ8b~Xf39SwoH+m{gv%pg!Xk7Q~Ap^odQxrUAt(arO?|I;GV
      zsK$Jiv7SRKUL%+Dn%y=JZ;@RB!bI35<dxIx5}L8FOXz$Cc>Vyk`JB4AihVHoA)4Q#
      z;H9QYE8o<Y7@mQDiNb@}PK~5|sdLMf70#E+I`1fZb8O|!@0N9bsH}5*rSk`6op)ka
      z8QN_tX@6YSnN#aK-(-fQ=;yDY=fpgE2bj3n0-95@&f($XT;mIfr0O=$q0iqLavGP@
      zRCK>@)VzRIqHdP`3>rmlyMS=?u^9xT2YsuSOIV$%+eIiIx6EPSc&e^lfKzigTnxNd
      z56V{@qpvA_gC=~-7XFSk`yQS6fff4^yYUnD;%6MeFG%B8oWgH7iyL?azw4MAy}0~3
      zhw(C=z>|zx$*B9$ze5{or30zYp)Mj=c_sB3)FBC@gWpvgyMPX1%3aH4Y@isU7}E!9
      zxQlZa*SlcgN@X$mZKMwT!3p`3v-lS~^>4J`A9ngpHr&71&%MlJ+`E3U;}75|oFKVc
      z?8FGID=707^64Jdd!SVaUd2gac1}1^mX%CSo-2~5)!?@{vbV7gx0ZB5tAAlc9$g>&
      zAi<>*8k5&q$?JNOjmjB>ldR2iMN~aYDzYTUjW9`CevKH_^ds`%`nWr|%1G7_H$=Qp
      Wat`U0a1Bey)#x06P8QuNF#aFrAP4^d
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah{%We}f6g_wH7)S?N(iTW~6<VMv6+_tuu^EIkRRl<Bv+BkPR_bbMqp?#YBvyO^
      zzrltLNGuR*7W@Ujfw-OtN>GK+$i5Gsd#>;CeE;?3D}Wu`2@w#sj>L(GGoi<E-{ne=
      zHxglGs;$&kIdvivbNou=!kIiom9R9!KOY{+kqc2LtQ6UaQ&~KZKlA5AnYb@=B{KC!
      z3^U0zwg?9@x60`K^a+7>3Fi`{trOY}L^hGN*Oh~}2QPm9Ak-fzt=wZmWwSFNR1@=3
      zHc&w`!g(wb7JEv|XOrWh%=gL;&7K*FY#_KRcbq1x?oe66c5gPt|EBH|!cn0CU;FOn
      zTxB_b_jIO{hG_pKRoSG07OqCPhU<joDd(O^$J*r5t4>&*=P!%8os<xm9YXVTCx7yg
      z(CC{<K9WzBmv*77yYELNM5)#?PcmVx<jGtAd|f;MtBU|NgzU9(77exw{I3Lvc)=^p
      znI-mOw#2r!^%)mF7LaA$>qYV%R@je909J94Bf=$I=G_<XGFinV?tMdRo7X2?`M`02
      m8OQsAW39wZIXveLtQEWwZn78fcdMve#|B$}VV)7U(f$q5Laqz|
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      MgU9up;0^nK0o=Hl4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiy-%b-z5XQeL{g-7CC|wYWx(MiQNhHQQYZ?P+vZRVhaT70>?g5Ue=QR7r@I1bO
      zH#E`22Qcw<yfn^f8!=SF&CH&YZ+_p*oc;dm%Qpaz(X60A@ZU!tquqX_&UU+5BGp--
      zVsUYlXGf=dI#+S};-V)8nbfL+B4P7N{$C+sAr*;?`k_ctE_@pt5a^IFx35*2MJfxU
      zelAL%w%`2Fy@Q{G@-wMq)+Wq&en=?p>sVNr!7UpWW(o5hsl@C2!-+_aqm#ZM)H=Gy
      z1`*rvd2(6I&Sgs2>0C8=!%QuL<4wt1erVhs<G#eLGqW}=;y%5=4=Y$BtXy~8%Vj?n
      zNfqma#<&Srn$5a8&s=@#CcJU+)U~h*$Ao(}Tx{?vqQO9@n6S?9DboqIWhyppY+;*F
      z&GguSQ1_-wc*N4knFk37R#)dqPrQ_7i(5CW=aCr;8{miGUxu)T63Uz_d@7*Iw+zHA
      zN1Jb+a3;>B<`8qAN0NDt7E6IPig=C%{<6m+ETYCI16bl{0Bu$pZMnHKMEyD;VDrNf
      zVR@{Y5Ll08tT4l{ZckXR*w3(>=2xt~t2KtW)40UlOWgklx{ErF|3W)|&<-Bp;Rx+9
      HtN{Nv1@E+&
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-sW-6r8PXV_U8Dql$tk9*SNpf;UewrdWukBxyx@kZoB?O1de@rqI9U!5`p{
      z65o0-MG78vcHX|3c?<9J>-_`34UP;H7*3{q!P^m+leVAD=ZQ$u7oNyaPErF!hDP3Z
      zM^iCY2FeU)`74()R$PU#Y@5H7p|s#pCK#HRS3@UP`zoR6JBF$sXUSM}!bpq$j=t6o
      zhGQ?2Dx8Tyn1-WB<oPMX`AX`_A3UK1d16U3TK`CTaTJc1BrN-G-?MCn)Af#kCljGa
      zc(J~3M`A`(gXLV1s2IHVD67=z+Rg)oKiR>fOQg~>J(CLCW2jl~vmbbUD{!f*JFaCq
      zZv)fon)i;~Vqn;yQ=&yNT7rR1Vg*!wu!<Vpw^VPD#t_&>9Xpy1Q5I-mSHqr$eGLa1
      Ini>wj0STvx#{d8T
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkT~8cU7=F&o%E0cF0+wn^VW&d3?DAQx9|)odR8dN+AhEq0wi7xy%#fK`Qv4~s
      zHulB~O<D=9vGK~JY1C-ry?;QBAGhjr&g>Vk#EaH!vNLned*1hX-sgGGgTL>71>hXs
      zH=qgR*6l5O#Iyaik)`b@b~gIv{4F;O{0+yCX9CZ2im@B`22uj2RBS1By^-nFC=Tsn
      zU4(!r3LIak#netu2(&D@YrY+qLPwy`FlaJaO`yb~>#t2r@nF-W>$~xkz={5b$0qVC
      z0z-}W8m5%-shQxKlZK8~6D>F@p!erjS|HGF;wdx<99?jIXR)-g>V(Vosz=Zr3qjHL
      zR_xG~-{r+reBF%%%GLj~i=>k(vZu07d$MhBRx&mh13$K1pIJNW(_UI#rxFwSs|LCR
      zdTOdImOSrr;QFx>&fO?Fn^LW2bh9VR#AeBIiG<d*z=<qBh^?r!xfz79<@2buWqTzj
      z8cyRRva%W0zQRk16!{ec&k3~E3MU%|`YOgy^k+Ofie~I6t^<>!&Gv%{d~dq~B(joR
      z5=Aev8RRiwpdfIpk(o?9ixX5VSY4N@)Bu%RB#^1}a9XzdP~Ti7@I!o4m|~|TjxiI@
      z<Get#%l_JN5K_ASe4P>J%j**vyoi?#yhKbj)RkQm<9LPQ`_7G+v?>`?$I7tf`AHM6
      zf>t-K+tH#5r7snZ*G&v#gfkY9P+j@jj7<_VN2`)rO=+ck!#Ut+h0aE>MQ`gLI@=u4
      z<daR4%-=F`L006d^rLEJDsn%P;r;n}8FJCY+jvJHy%dzfqI1EObCOA}kzv^c0dwB>
      zolu#=i445A*FoySq2C%_IRayKL=Rp#4N1Y`5bM0(*lan;d>Z`H(99pnAkFt=B?FT?
      zAMjh_GhNuhk;1?ow0+Jm9Uc5{m6^1Uk<vavi*^f7bM1H%jbrHK7te7;R(Xc+CZEZQ
      ztR<vR`7f(%F_WxP82AQ9?&0K>j#E46xj*nVPT!OZy;nNU?BMME!fmt-?4n=8r;OGV
      ziXMqqyF(N^NNZo9Rog|Ub`M?JU1YT{>rfS{s0tXwkitOMFi*mGRAISIEGcH6WubEd
      zi?@&;+Qkb37YFx%8{7|$QFPeNe;$=lzLua&dX-~up*=*q_ASwUPjufA-4DoVk1(kH
      zh*9p1Yd<Npmh3BLt7vD-J#0r7)5NXSbyM!Wp_p(Et4wATlk;j_YR9%IGM`nuCN+Wf
      zv#M9oCDBZ<@{`l$7wYmGb@`RL{7&Y7lKCHG{?{S8%$0TFY*pDjVO`!lpo^YDyWWIO
      zy%}A)fvlcJPB$^AXE4gWalQ31beaGEm>hJN-c2T1GC55q7Mb*t$r&=~Ba?12Ir|t)
      qc$v{Pa$fg2YeCe_qjHu$*1%ah7M1@l;WD3T<<57p#J6Prmj4An!v3@X
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu9+gBS^6vn^90D%xLMZh8zrY&GdDrj3T2vQNj)^e$WsnqKLBMc5RG?~!G%ZpFd
      zzd-Bd-OGcnC1zQ)=o4#I|0b8;o{7l>g1Gc0lXKhO{(WcfbMMbPcL6*KBZ4Z0o^@l(
      z7_tp#b!a}9@yw0hNoUJSyUvE`cr(Uk1l0=1{7qTUvWG4jnKe!;M7W-|%#1?wbZL3s
      z^hOlw=dD%8@Um%BVY+;EG&E!!s(I;LVKT^qQJvM1U|V=*Y-Eg~tKTtm)I1#uL(K{S
      zWOMD7VP_@9j?nfA*S5`N&vG5^NK{-nEZnH&Sl*a|79U74l?ivnj6y?e3{7YjBP_?9
      z&2B82=>=oSCVcC(yKLAgBW=mJFj?)bS<LBV7_pM|Os`?tbv(mzGMCMqLVG-PWNvAl
      z6e9!IB6vWdyL64SS=+wiT8?L?CvPsBn?hQL6AHZx)YUhPO?|~RGrHq?dM3NM>83s1
      z;Tc_=9gLzA-NMtePj5cBmw{9SCly*sdci^jrxi|=W+!YTlbJ9wUMPn?g=8@Y*RgZD
      zVcYJFjD9_9N-62t46j}f0!k{U&@KMPW4Is3X*)9%PfIEV6BHW%HYz1IUWbPj`ioMP
      zaf8~RiiV*Wk|I#!&neVNZRc25EdBUEs6>MDp4~t9|BAXE3XjE5gIdYui5PqHEMZqg
      zzQ59yhYTp(iX0q?;Yo}heWd7FE$#Ff`wrnL?><TMnHcI(8^N<jJRA%wDLog%(>NQ&
      zIHshep6BHic>K3S+>}PDO`99;mfuP*#Bfm{j+doW*0N^~S*qBylJsm04Twc>h2E4(
      z=iqBsQjy$Wl2ezXn8SkP{<1=6IQP<KB1EZjRqP*@e~ZE}tPq`dv*~4X%959$A<!F?
      z1QcSI9LG%iJz{1ec%!_b{Kr6{sr)5Y7!Flp;T^63eXu&lMxZk<jnBS@52esJif~kg
      zI*xgx#c`BlnpGS(BFcSy-8j?2f9LpB{MID$IQG3C;y(UH846ko)!J3GaV!D23GL|M
      zS4sQwR{~sT3fzmn<Q^J#(7D*!mB)j-$={&gmWfk~t-X2l?<SIYJoGI$RzU>1C0}iY
      z0&gR#nP}2h(XLtO($>(Ut^1-KLEwTYB`|;lW%=s-gZ!C8<p=l6-=KVs@;52}F6G~+
      z{CkxD;1Kyo3i9k{rWP1}&UayoV{xc0@dM89p&>y#AK%7#8GcuUZjvk0ZXu$5gl6sI
      zkh5(?XIXOvXT5^6@qgj$Q@=tl=>+C}Lb}_e`;>H_k?sr9eNMVBLv-<?x$&a8?C>Jp
      zm`^u@YM-u)I2ZQNn%KekA_*t*nB2w%nJtM2kY5q<YjkMegdn?$kZh;_0C}kb<WGd$
      zA><uG{!GZbg#3k&yGKCsDJVitAAp<*Am;?~#XRP>F+<3i{gC$v`8y&1I0)G?E{}Hs
      zvY%4YBejX-k4TlGNSjJGNr!QrXZTiDI`hh*XILZG{L`=EHGbu}Qg|J2@?TJ&Z~X<|
      Ca68EW
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5Pf5(abvqp32mT!wWX!x0~#T5OH~dLNEHzv1@*wq39DoyXAS<S)c?c<
      z2?>=0KY(8Xch1199f;FL9K5r$e)DGD(|r5&<tu<kIIv(4w#MG6*YZ6zZ1v8fSWNbw
      zs#6&TY9dtJ6S0K?VgG-iPT>1u5X(SWC=ymuY!XYq#pQ(Jp;R(HB2;SKxnJ%238B=J
      zL*>OuD7ec7z+r~ZW{X3qhV7%YsL%=C3L7R?Tv%8oZ00Lx^Q7Q%S1R!$ne;{Y+Uxt=
      zr_v1uo`2$nQs>jhLOhZYVJF{nksob>8EIYR3u*|}dET>kf4O((p$m1fQR02#`8>nM
      zR81=UWq-`(w(D<7Alz_q6SoL7(A{Qk<|I3~gKZ02g!M)LU0lO;mJsyE+K3dA??YG~
      zdC^E4%&1!ZSo7_>*u@^f?gdFW5YMD`(aF~3KvNLhW2Hpc@x3S#k%cB<ZN{A;39Iv~
      zMR=YY;PUq6ROPhtQY|zP+iZ}@-x6=Pjuw_-pv0L08xF@;d^0!}8_myfKc=`cpSFHA
      zzhlY#fi=#n846cW;f(RPigjk(;JeE)d#Un`w4Hov_9s(zr|}7!&2!u~@PVHV=oUp?
      zX8z34JOAh%?BH%n#x76E9;Z2vrpeB6k1lcjPPwvi>?xOt`)S7->KyHqqk#u}%WQb~
      E2hpYNApigX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)A33wFc8Gip{li8h2AO`^w5ThWF1EYvy4JybXiwU4nASkwz%_NNM&TeOCBeB+c
      z)V5Y_YwOXXRa@GkttYfeFjep<wzjo*?R{S!v}(219@_VxncbOPqJ`%nv-|(w|GnS$
      ze#igqJoUyyj{rDc%urA!P;-$!q<18BYp|ndIO`ZG1(BlFb$u5Z2}hvJv;-QuTyZnq
      z5w|iqr^m4kJ=G~tp3YGu*j;a%R%q9-ZGlOKHDuapD`i+tx1JH0>?zARX0n3|R1@nl
      z2QA&n*@nQ0#k)(qub!a})em+ax^fzIM3*Fzre!*((W?0^8w4WD)BT2mI)NE^<Il(q
      z3>dc2A96y$6oF}ZfmLSG2yMnN71I?=6POy7SYc!nwwZC#wuTBc3QYG*B0W+;u-&Pm
      z9y2t|#1R6OOMLTY%zrEKmJKRuail!ZOs#=j$fnMg4KWBDEukwF%n_*1+ZJM9!CZlv
      z`Hj5a>vB#ZdJ5(fA}=BB4)03OTQw+XR51@TR2+i^(yU_z8UwS!Cuo<7**H#09WT)I
      z7E+r%^G}evqY~vr4KXxImln%UQJEj6WvtDm`V9MAy)Vg}sOw56^yCKJHsyDBQAIgA
      zCDvp{+SzJmrIhPUD5seg6<NcHTQMxf848xs`jCu~$l0bd+^t*sput!!#|i<3i#Ai0
      zX%p60EZeDIRX(p=ymNAvW2TJthMh9ASu<@#vDyb;r(z}6NK?;Zsra;n^H~zN6x|xu
      zVjaCtY&8<w0!0Ex_-C@d4IROzOS-_>8qSd!Q|UT;9E&!a^1d-bMTrzj5&!H)4V!Qt
      z{pMLp^RU#i(zaEG<a`Ym<Tts*%{p%O6q6w^tH`V3UBX1Mg$D;GIC#YTmbW2Upw<t@
      zx#YInOeSTRS>0<`?v`$)<ubd6Zrl2BBApo)XboH9wXn{32qM1}mmQ+U>}Q~v0ju@w
      zR@p5|;^Paq#09Ep{dzl{F>J>)XvFlq;cgcTc3AOCk<^fqdD-BFvT$r!B4K2+D$;nj
      z0ye@~gI2C1k<_!<jP7jp`*5I3gNcg>O~!-8p#DmcWg4ZC(_n)Js+j^TyO+m6=?Q_V
      zz%7zDH%uOTyll2b@$r_Vi|^5Jsm$m4u#3Za2QS0r3f@<Aop|arT!AZ@VM)Upbhf&&
      zj4OCQ+gVVS@nq5%)RW8X!JND@R&Gxi8ON=t4={_i8N<y9-J0h#_ZiJbD&q{RxC(2e
      z>(^-54!TiJnUZec87^@01RjR6<L!J-<0Df4b=2Q)43N4YEW-*up6|9{j)#Lnjp9bO
      zgNxa23>7!vX4wvI5tw&)_PCM#l!lK<_=+JtnPaL}Cz6J4`<X!&()hH7+a&>&wvkE?
      zQKXXL<?XBBGfcLC;kCJBa($XNwP6?7RdFZS)jpTM3_}g-jGUS5H|!|Bz%JowJXXa{
      zN%~IQt>KIK5~1`=#<2PY7EIvMp-JTHWV!6by&CSr{VZuG?FB$!O1`{8W>8k(K@Gd5
      zi@qIfND)hyO`tY^!VQ2oRxB=EJIrAsicwnQd)g|mro9?eR4EwG-?lEwGTC>!%&ep0
      zAxYjN0!Iccdt=p{l||E!iigozg-7wYg2y-;x#F%esYk;T_!^;^CAQA-f|Xn3Lfl`c
      zh9~h21z%^H2O9Fb8lJ*8B{9Z!HveKO{gxKRw*|zhDlWr!G<+A|lXq1nX;OZolx#Ww
      z&?2eA5AY)eKV%{XCXjaxKgKgG5)K+A_2y%TROK7&p-a-ipKACSe$H5L)w63|U)cIL
      ztN0~;t>9N|uL17zG@C|3c8RQp-{7~rMsrpw-ER)K6N5W;Hv5TLNDx0O3*U+4kE-lk
      zo=JtsaFU1(`SS<6Yb2waj7~*Hw;g`1pMW3Pb&IB!;fy!A2+S!_K0#W_i8f+vmjQ{)
      z=VhhhApWM{uS|5;>+sN_;YGZ}j?aYk#}Ijsg=@}VW(6I@-!(jk=UK2>hZ8rA7rfre
      z1`~4cpBnxlFRsaU&RS(!deXc^m!!(Qe`|PM?$rl-hMiq!t@MrLU`HEP7#Z70=#J6P
      zGXfg^ga0zk2Rvm)UR-RZU&*xYN>ym0T;3(o0S=*FHCM^KF0;?pZFaVUBBlvNiYQ65
      z&y$#x(lfrmS~h^Fs1{(29u$)`Q6t-A4S!IWL&lkgLox4++LO-N2}91h?B8B}9xLgj
      zp>fMH?B((<HnNIn;AI%_d}t*H`9`Wk6&_xn6k2BjDx&fKw1*yp(GH*D0*+_*Dd+FD
      z2pZ+U&rgkVa(17bmibg=Yoe6K&t<5_EUr$%WUkb3<!VaHf8FD#?Hxyb?`|}VqG=Sf
      z_TZ>-%;wrL{6CNDEu&}~MSElv9ec2_cyCd7@1zH*unZ^j?<`mSCjM&Kh$-mD0wi!8
      zGKlj!>cVQg!<CfMoYZ}jPT-TlLPhH+P6<@06ap@xr<c0NG*1Xia4OehI1SCdf(t1l
      zWt(>6^scr8sA(I=%HFy&M-d-ESL+zo2U@3+HQ*Ya_%M0777e(L3|{XdO!c(*yhiwA
      zqz5aA5yQDS?{Kj;lw$25)~&?4jaau6>y9EUFLq(9-owY*T#9uMvF;_-eZ;z-SPv9o
      zdHE4wwO|V_^!?hzlQIaB!vm<}Uzfvo`W)`T=>b-gn|J&9_fc~580z?Jz~jVwA{416
      zmpvJ&cR}}2=C~NlUh02<XkOA(x~osSXBkHkLm$&dKKuQrfdTjXAhz;UOb)`n##MYu
      zyKAWNtkwfiT1T*L3|64Mj-ElR=Ie|&e@(7|CeA8Y8DW*k7)zZTlYN~s)-s=JsZ-{Y
      z(ng(3BPXE1O(W4urJJerd@8*FHDXJM?ph4tVk(KS1oLUcany&fSi}-yt`AYwM!PTB
      zg(-ZzcL%D+aaC{K)uZ^}KH`2TaK@!xY$I-xxG7><d>xU-Q6dw<p3CIE*2O+LgngZl
      zy@klKh13(fyZr#7?Gn4SZ4B23KptzC6X*&8U5RROl?%}99rXdI1Ro_7yEn^Ox>-gh
      zIhOiR1FR(pHPeTxZ6C)Cy{&bh7{yJpG>Q4iQp_8Pc@r^j##C`j2y<oub0&89n9~cG
      zw-%^%h$*RU_o=OAHwa@+K=5sW4IaU}Xv1B!;cnV+4`0^Yi+SR{5W(#Qg69_qzN28l
      zrK}8T!J^hDQ8kV`dq?rveZDob+}<>foxOFRAH^;*f7b}^DRim_N-fz(OZGFp9%ZN>
      z<GZQH(ILDl^Sad{>~TX~gE=8fzD#_t|9?exeO{Ikw`NncLRLvlt6SY89`0_8J&Ci&
      z@emFDYS%a(=5t?n+g|J!I3=<R$23Ov;()+@T()*W-M2>Y^eGkXjTPk!8!I9U_u~8I
      z*eE4_BCzAlXWGZ`i#-^lPU%Xydn+uI#)xO>%5x<3c{GR@FhjhE+2SR%iI@2v<`u-n
      ztJuWPed0Bk;&qqoMGR$x#qO2pY^=iX@O!3K8=L<hc*&Jv8K&WnB%qu(%w+rtf98q5
      z5Lc4p$v<0=ujX1z4m*Bwp2Y96bwtPTLemId4yxO|ddd_iWl`4-@9K%-6}(FMm>i0H
      z9c``#K%tHiyjH4W3M$JQTop1OVsc`d@Zi5n4<5~fvqJ|tHqqKQsD!PK{})q@v^_@L
      zjZI^CvsA%Jh?Xr586OiuxHiby%C{j*K<kKzl<J6+fHff<QBmpUT1*aK6YGeU>bQV9
      zyte3*C{$lZRiR!M<^xeLwAL{(DX0PWW+*d@Y;ez03*T@tsZ{y4%6;<16rWM~dyvGG
      fiCXt>ov7!t3FTr6gqX_N=wUvmK^4>aY=Zhf4*hMM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&-A)rh7(K(b-FCY`Em|p{D1x*F!K&a-D^j4EhIUEVQnK;FEM<iyWox!u65_*X
      zd;%>O5RJrZAIkX6P-IEuX1+NybI$iWzyEwc1(3y(j2?!>o_S!-HcV${wz}(D=JvSm
      znVuyhz|ePbS9IF@4DwQWZF#l0!Z29AxbyRJ43bvdWC*WsXj);ZTx3wH#q~-_D^xkL
      zw_2(cSKe(FO4X9~h9v*(qD5_^GF~f`H;Ot#^6k|g!ufi`c5H8foTbt=hQM-j+X^G7
      zfMGzzb=+VG<-1Q3DW8(=xwf;DE2V1@dV5nv5TP(+4u(|79E3Tzr6SBhgo8UOA{;0j
      z+*6@&5ar;$iYP*Smr|jkm!ZFGJC@eo-?H4Qxz(^3;^k)DY}8EG=2#pmkT5`Dd%Jdv
      zB0Vr0ZHqR;sq~duD|m=UGO`S@i^}VVEzjCl@fc4SBBtw_hxO)%Lxzk$=e4aptM27W
      zzA~I2Q5~oS!vETPhG{>oTdK5=cB#`miDxS2@SI`JPh4)8tya!Q`;QWzCz=&SZ?@gK
      z_1flzik`{O@cbCmlH*ve(6U-GsMo&4&t5VF#jsNDy1nC=UfU&^jL$Q7llS3E2`uCm
      zv(!0>euKQ2<dXo9r6CZO`Y$ZCURdh7u+(rMHpJUa%mB?vANolrM(C4Rfsa4HjQBO_
      z81W+{1Q-kmkQ87zD8PsSw?hJq3UF5zU`&AVumBUW&`;8nI!Ne7po64t1UnefjZg=p
      zx*>NkrW@f7CiEjrexopYkfv23i@+CXfzQZ@Q+`9AqZ@3NQWwc*rbdo2bwLc#19V9$
      z-&0MddDip|9$=<RpQnm(dZL3#V^zwW8hIXNMH)WA?DSXRkcT1Eh;tr7ghpn*tC69A
      ixV{o+nG-zy1$H%0!V969L!L8;$M6!bsAG%byzm$NLH)u2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{f%MQU%5QhILTGdL}c>oJ6G}c`TA(2?P>`!Y#<>XX)!LwO-01qV&T{I*%Gn2{p
      zPri9PZ+8GAG%Xl}{!yHTCxzO3>qEj~*WIX4<oiQ5xrThoqFBv@+DT3<R0*vTUj|1G
      zGeSH64G;#sMF|#n{qIeD5rJgCza=zQah`-cjU*GCf*!u(1b40!Cu1qnlv4}Nmq0-h
      gI{%DK0->Ux1xUNsVCu<$^{I8(x;HeT4d9yg3*HY+CjbBd
      
      literal 0
      HcmV?d00001
      
      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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
      THRl<!I#^aNZ{wK1rtW_M`HRcs
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjM!AiqG5Pg#-jijlK)gpTHrXDO(Z;BwPf)cz~bKka$S&6%_+4x`LLGa+gW536P
      zUc_k;+RK}HGjI02o&COl060c3gh%K-if7R;g?{Ld3M<8QD1|FR_=L`Kb!n}!grt&I
      zi87bAQbylj4+(TbXs1S3PH2~lvX;T;>&ef~_w0+%JX2b^b3$YPASd{#naT(atjCDZ
      zVuws=d0Rh?r5%ZJDGA-oOxQrM4fFq@?+R5BwzFlRm8_?P=+4x3BCpi^iDYGWG{3+e
      zI065eu!{gqt|2oIYuxcMT8uGI1`7@Zhi_=VEF>Mqh^4><e56RYi&@4ZY@o}Pu*v9Q
      F>kr$wOcMYA
      
      literal 0
      HcmV?d00001
      
      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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
      NARk00lW$Aa|1Z5y6SM#T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TW=Fr5dO}3W5@R9N)iGImr^difuV&qO^mswyx0K|3xs&-#w^Z8&f0R;q3tUY
      zRjdAkO6^-KwNxrpf<mRfR^mrh{pRf2-drBA<lQ}UX1@96n>pv*e{cT*Z~@B+7z)!H
      z_O@MY+FqkrTkkmbqe`o8Hxn=w#s^!s*EXEGuQ0sjc)sg7O@+zI?(HRoRIRdlr{#LS
      z(@~hHG`w!HQQs)uwV&LyeVY!$rFzr#T)(Uk%Vh5<m^WIFoD^ahu`r61LcFB+lOO>L
      zLx?MkRhV+6ySe6cYW7;wk>tYip51X}t&J%LOj(!~jInyl+wwczy1!!k?luEVf8E_u
      zI2a)vDVM}%b|QY&4p0^5_YW!6YD;CtS;E#8F3m3UOl7hW|3Ef+C0E^sXZzg_U4}AQ
      z#<Ko~Lq*eCEYEJ<a{LrNz=sK(*dcvD)51xdVquJl@Mc95y@XxgZ5FF`dnt`G$R?0c
      z7||W-ZCE&poWkkMUV{5@7C8$R4r5O6&RHnpJUO?!<h-yC#Cw4fVAF0(Lw7Kv7(?5E
      ze&=`Ylp?T^x&!gU4#WaAw?xh9eVECV#WQr0kG|Zi;vVlfn=KiS(OwtsYJ-$~*}|ge
      zHT>9RcigY(m0JF??zDZE!<E1_g#&{VKys}o!EB~hTis6G`P`L39gna+C+-TFQf)C(
      zRyZT&y(Ufr1>;#YFe?W^e<d)?cbd;6q(^D4iu90Q`ftP@yoU8B#$Iq~V1mz--u!~^
      z2bk1WFpNhn46gF6Xiw%C$^QWfjp@))o!x<n2J@}!a4T@e3=Yz7mj8j}5Lc#*3{%eY
      z+rSacuN<Z@)E~44*l~^HM=*^&m|`KOQk>j5`u8v=aZInJ_TPyo8eRGe$1C~V8=N*!
      zE&PkQ+$-d(`5Zr!FERED%)%R-jp2TQtDlijVj0jmtmS=5`p;O<HyFpayh^@92H$In
      z$AcsxMU&U(1$;zG7P9!5vC<-7;1x(AUKjgbmw4YQe1cE=r7RHpGrg8l+F>cPETvk=
      z<@?O@0rTCB`GIVIWE*~pFq{n;N^67{Z$3<Et^vcKS>hE4yT~~J<CpsL@Q}60IF0lK
      zEg87KJN2)G{f)&x*QsZMfWA1%P@KVZjD!hIly#yjOkk4SRb|MH&6R=c`gtSl^3DGN
      D*Rw+B
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu+e!m55Ixh|w%fJVdcRi?se)a6w)j#J1W}=-@97%amF;fHri%X|{)hOW_}~Zl
      zQQ~ARt)PKqGH2#Y=1e}n-ah~wVaGy>uyrf$gd2#k=eGMQx)<F*?zXhhzIQ6Lu#h2?
      zr#V;MTj^;+Dhvpfi)o;xl^^zw3HgQ>_@S>)2<h5>hmdJTH!_bRp~L}MkL6G(p(ABu
      z2D27Q+(a)Nxn3aRcqnw=Z9T+V4z5)+luG+Dc2LF~q1cmp3_cL{YJXqf{|gmBn0Jsx
      zjxc+{?_Z7vU8&ker%@1jBIpR^8-EPu8cF{)(pYh@ggk4|eLp5tf7SnQS}fmgMI+_O
      zGvAaiO_J(nQUvEb45exsr82g#&Am-WI7v2DCO?2GD@gN?5mt;0zNL_d#hXxI?~tuo
      zg^K+K=LMB#c2Zd2(`E~LVg-*_Oi&YHMPsVV){wIYuUMYaat0hzoSy`&Vl64Ko}3%l
      MWNRn%E$-0%22y#33IG5A
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g{`Jw3dZprJ@yOyP)<1ZA^Tt@j=u?QyU_+#>b%@V9j=>*`4*{UumK=
      zYT^&@#aDlg@y@n^M&M=Uew=&Gy?5r<-|s&G+{0EDDMIC~cqf{HPzTNK$C2!4vlGfl
      zD)Zz+Uyh8gRTgPN`2_YdR>mL7<2+$GlA$kxo(v<#zk2qVK+g$_+ge3NDAN-`EHmHk
      z{~1f~w@b(wt0ab!P;8$N@0!q82Q9+<17G>(A)#J9ot}ww4@3Q4>;<w_>k-o1dLXk{
      zCanI?`6%{-fedpfGPxCZy*vt7ap0gtD4iiw>siFAgDbeoMPf9PYCyPi7Idbi$qZAy
      zRu0z)3!baAarbqs2A1=>gBw`4ThJ3UVWnC-#nH-R4i($s;sp>k9OSV;D71YgJMnN&
      zhFv?lU7_yt@&!Ku`_o|B9QqMg&Cs6nyu9yBU&IkJm1fb$yCvjzbsYBPQ{T$1ox^k2
      zE*%wab&kJR3T0$4&t5k1avb6Q6PxTzoLORTAL#_|)_<Vzrg(9TON}F3E|&Q?!rImt
      zZoTmp-shxplh36D-)8<7SVsppIp$6{a0|EDv%b}$#Hymk+B^iKCz?&ZZ7x&)0`C(W
      WDOh6LEbuxZbS8i)A%DaK)%XX23&Pz1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQO-=$q5QSgC05X952`Y&T<3=!%s7sU$iqW7kL1y1z2U^FTq-RFY<%-0G2k-!%
      z!ZR3afCQq8uIj4#`n^hj{=9zxI6^Ij7@_(oUPRLsdfXi7C+)rJ3u8Q!f<@R_&KzZe
      zP`Ec@G*Md45JJJ1MhVxE##f#mT%8l>nvm;w+7E;d9N~sCv6ub|j=%5HgygBxDrghp
      z`*nw4b-V{@BaZbfY-9-e9&6u*&qHbM#n6?6QqLQ)fnXc17fmaeD4(#^TdudddW%rm
      zUzzm-qx85{cOt7wWL4%pS)lYEBG`Q|G$Ywnk$rJh_b{@<E_i+ZKSB)&Bsr(JieZfp
      zzea{*mOCe$iF2YcMec2e<T=`m0WDZKLxFGEIfNogTtxz9j*&o{$%suh4yM@ntI%ch
      X%b7xTPAwFeM-`i_!5_r0W7z%$dun66
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A=4(5QhJO1<V41ASfJ+-VhUs@nVAF0X1TX7leC(iq*B7bQj;ohwwyVjA!FJ
      zX`BKHMmg-vw*C73v-|n|`VQa#<pd&xt$Xn#YM#)eT2}`mRKcy1!?w~7=f?OZ0f$gr
      zF!n%<<n)Y?4Wv=R>q!$RUw2z)1iB)mo4yW0p~If=#xnMC<UN07vTua=vC=AR5Tcdc
      z9>Hn)L+K)l)f8ML2^rSQ>+xe>nj6vgBq7)K2OJ<chS&2=C%jVuVY|JUYuW5|LZR}D
      z>4Zk<QGK^(BMUY%&-1b<_a7p-9e->F@<Q1$O3VEFHXb|R&*2|RC?keA_XMvZSmB2)
      zNODc_&LMZ=9;;4}ewiW}t}bK12^^dv%WtU}gf--NWd(VzR?uM5vhnKP1nYkdmmJ=j
      V8j3S&ZeSioY_Nl{$+sgY{QycnYd-)0
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo&rZTX5XQfSLQMfd5L9j)`~xNu;}OLJN<@hlr1u3jxTb8$w)Jg%1rtvs9((|w
      z#wRdNOB09(4m-26`<w5Z-S6MeF97GLnn*Alz3^Awbhw%}hsq1)b65Lf(s8)w*+P5L
      zRkvEZ+JwPSU9l0+b@hz<(LF=K6Iya7ZW{J(7}z~SuH!1t=gPOa6NuE?q51H0{61z#
      zUrHtYHbe5HZZjAicOon#v7Lp53`4#zm3RzhBcY%8$Po<1zB?uZPBv7>hlc+wJ%*G1
      zYPL=9Xfc%6*@3U6nzrh8Xk8AiOEfnL7S{x0h`}1TfgX#l49BT$@;M8~K@Idg`fU0-
      zq>!d;QkB3KEmA{<VwO%WC^O2b#sayI2+32l2m`KQ;2H(mWtR|kP^2mpC{YXr+C+wI
      gx^cR|?tg_lGVetSl_eD`5RVG>NP}UYx)V6~1G?FE!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpPft@p6vfXiZ6B#cuvn;|$e)F@7>RKS;sPbqG@1x>KYdKfkak}4{(uXO3zvQx
      zS4~`)xb=&;^CK9~v@cL9vY9(G@7&)xbKlQD-@XHQiZu@z!J|`krZzjuwl|M#l=ON*
      z80+J=Jsqmp1oqW?U-#U`LsqbGDSnsO*mU*9cfm}gL!&xP9Y)k2)n5wawP0#Duu-gR
      z+*F-J=YIdtze=CKd=lihjWzL(U}C-66l8aUV_m=mZWmF&Ex~ldSp6pHwsd%?S{*GY
      zH3FXoiZ(o_m)ZElM1pGLGTV(0*%Fl3N5ltlXl#3{+H~G!=RM2dB$oaa32N80j_3|g
      z!r<J6OL+^9R}pw!9Yw0mH{^VkM6Bg&y9AX{gK^xl!z~F42SF10de6A2tls$CCvGfQ
      z0msb0&R>We@~j?D8B8L}J;%+p$eU-Z!kVk~G4*vIndVxc6nIYY3(Rm=9ExxUC7v8$
      zma7BoQ0cV!+D0FD#|is1uMY@wLsd$k9&?x{!?7wUtIo(Sv{&1B+{e9fSc^^m0Jc1o
      oUBEmn4q$A>eLSF*!!D)RD-j=#Q$H}`$NxlhEEjQwp)y$g3+Vo*oB#j-
      
      literal 0
      HcmV?d00001
      
      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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
      Z<_ICGSSmJRk*F3moD*Ui^;U`L{{c`@uS);`
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO;5r=5PbucLIFX()PK-=5KX*kJZR&AR86Ge;BA2oE~#BpivBK7CLa6&{wU*Y
      zOM{7roi`tE=FQIc&*v9_QykhT5jsopDu$7W7sJV|uh-K^+OP=iZT^0`l(Upjxlpl6
      zF9~JWn-HvPJ(mv3s5P*I3ZWIKSl+Flr!olz&*9;Lo{4B85@q5|(n_DyiqH$T3Wf4H
      z>&~+sLLKOMaivmbTCVSn2;HLcAl|mccC_JzI^W*#N1jiprh1$vDqau<uK(!$(aZC!
      zR(}!6N*0ZM_dmx>a>ja{%;b$Se`*%X9-IAf0=@^|6R7axJ8*2XH)JG}Ir>2Lot+XK
      owx$f6q0Y9E6BwHS)v$|JhV2dRp_9d3^fK&Yz+HrWwj~_=0$!YCd;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmYLE%SyyR5UkF|%^G9&q5i|hgHiCNcu)ugqJoCpCvntSVg}-@ewQb~gCF2Wi9Nf6
      zdzh;3>SDV3=lAOyzzGflc!cRfyot0G-BVg!XRQ_{fKQlg<lA~78$%eLt4^5<!eE|M
      z1pi7u$Pfc;N7%xUFfLRlZ<a5$>`PI%k}xZDBic&z%Jxq5&9izX>=m00Zt)o*ezXZn
      zop<I^8MgWJEXg^g)9=Ll|0q^#Q>j<6tv63HLU^y2eIqkvBSh}+BfAa9;PiYv;Pd0u
      u+y`8x%w(0rPmDge@DMWEF>s0<#%OI|-UVoc7~>UB98WQ07vII`VgC=1KuMbb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#yH3ME5S+`KkPs6H@CgY;ObQAVM8iWuazG-M8>+Q^I2W9=WX|NfsE{c506q$_
      z4v3h7=5}^&cXoC^KHuH}jIdWnNuW2UXR>3`k?l>~S(+@#k7XSd0c-tr>(6Ci1S%mJ
      z5;$-oo!L<^x9@0q!PJB_MKT-<)J~OF=1id6A9&nwo`kZAGB#VNqao07l$JNy!k4L=
      zPZH=lNkFkjsmk*ovSMcHNnqbudnnlBIo5-U<7+)N6g;{q1uQh|7pi|(84n8VUyXJo
      zO;O<ZAA$RV!n*!4mJ6v3dudLSEDhw9%Ga?9Glsc)9D%RFCl@H8iW;LbBfbVR8=To3
      r1;^^)E1EA1N@($0TahPdGj4qsU<)1AX~4pEu7@sm_*Y<e)z$j~e@As4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQO-=$q5QSgC0A>IgL4IWC4lt1zmna()qakk4**Dl?>)4a@3?^Q{`xqA_E<Av@
      z@D%Qh)j$H#MORIAef3^VfBw9G060KBg9M>`FP=m@5PH(~rBS!fr^bXP1BXyqwFXK*
      zh>4u{2wudb2$+vlsISjY2y{Wn_d*@TLdU)crZOe=zTaMI-WMT#q_m2=gk+=X6P#Xn
      zBV8o1nS+Zgp}_L;a{4%u=1PnLNhl7&F&hZB;d*)L#CIwpR0pfQ)>iKDzckib!`LW2
      z=`?-oRJKkfUX$mG{~>}q45wx+`^vg|YqI;+47=dv`PB$@q>$#E;VOX*K0J&p#~j}r
      zawg8H)(rXAIa1*0G6r<u;20i%<rWaOP~^%AlsH;}E|Zo`xAtb({;SYu^Ru}^WkD?!
      Pm`4Rw)*#e)I)R;E?!sU=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYJx>Bb5Qg7@gEPmcAgCm2>;Myqu`&=E{0`cH*Dtt%HRoQkcW3QivLdmtu=Gb6
      z=YRyG6g#ssdG>v0_Urro1HcJtHWGxrC-EX$p3sw)t4tUP?@o-TO3Mpld}G5R6jsQ*
      zNhk)=DB-!%1j^SBH|GSpCFFX(4nm<rS9p<3oqf8)*H(U?knSk0!Y(0MZ@2`j=RZmZ
      zN#wI|kYR^D8{S9HBWZ?W<VixQ?~mC)unpJCrWH<AKse~H23j+7n^39$LI$BxdeUyV
      zv1286Ec3XmQ~D1PoPi&ivAk6A6gz9=k7IM|5WEb3BcX;A(wuFs64>CwBFJ#ea_5vY
      zaZWX7$i2;x0!N22paTnC6#152K-ffyt5~4SF&5}D8MEo;(F|LE6|UI)dah7iP)h~o
      OQN=cE@Dltwf!!Z}(`Cj0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8dO-sW-5PjRPG%@zeYW+NUX$x9J@X}C_pr@#XmVn1?y3{Rc0%_X+B_0$H{s4cJ
      zIJ+&hbYXXxH}l@So!`Ij9{@MFFpyy=P5F{{LLN;zek{iZatxIX_A;7^AZ5r6U;7UX
      zRc}*rLq4B(8O(v4L_A$2g5h$v?rZ@{zuO~5(FsBs$+X9iZMJ+;cjK|Ju#d8V5<_D%
      z#DCIbyqJ$gVxxj8nV5*QpU9a^<x=P}L%r#?wnnYInP51ukw<}{?8!(xFJ>c=4EZP|
      zuQe|Yc<A#)s(cL=9Bs@(7RNS@V3E1>P0nd4Tk`rR4AvlCB!PI8O3qZ^wQ^3orH|2$
      z8BWx2iUwsF6!kS>5wb_f6-9N-ivI=s1GRTbGN{vQQ3M>K+~H88szQF&)LV**oNs@k
      Xu}iy04z8xzt0wYsO3e&sTI&2C1F2}X
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxT~ixX7=BLJuw+?Mnl@1ESH#vPe5HU=B`u|;AZck64W^=3+vFJ5+3sdGn~L}T
      z3iZY-Z@kbM2WIR{y>iC!N2$-*EMbLACg<b*exLU_`}aS;zX7m_Jsk;wiLb0zR?)HC
      zR`I#*E-zJmuOT}f9h$)T6I~=0FuiWj?gq8Mm)1+V?}RqCSFFV3C4o`fjhSWpX5|yH
      zvXZ{<`NzSGHj{5#ZqtzhqAV~X5A0yWYx1f$Whd~xZv=+&g}OjWsp^)~rH&FBYs%1o
      zzy%W*k)_GL)!C$#Y=$PE>zEX{dD2taab(MKcK6vzvldu^+&pN=c3^w%2&ULu)O3z<
      za;_KTR7%-2FoDY^uHdS`@Lk)rgEfI{zSm(0B>S=5R;f@=v6|~9OpFSg+p%5wto!nX
      z^mnZns>95V*RY(r<=g5W3AJF~?g(6pg^SOHn5A1X*o?zAnJ)~4S7pCtB88EjQw(~g
      znlYg()j7tC50A-X0ppsIa$7Kw#4rc)wPgoeo-bhZVIysp1g^y(b^}hh+a_#%BY`{l
      zFJkRQXblkcyV|lHNjP=9&*>f$u3YJdG%$oaY9wg`AEKmVRbc$2ie3g2cX5w(+ip`H
      zRK6r(^5sHV$9;jx)3y)0w$qgU2p*7#(+1XXSuKxDY+{RJx7uy#l2-GB#(t)^C|XH{
      z*fvqdV^TZtdSwY*Jcc_?9!2CG6Hl?sH`fU)Kj=Tf6rV}U@_mbs;lcpe*qL-+wMqJ>
      z&GDrF4<j40`6tIRX9^{|^oAoXw@YuM=5_ssRM_)V5GUb+f(y4<;Sj$hNhA~_cuFWj
      zg*!PH?gmD~oiBj9Aq2*d=83GsIM?$$Z!?PEJ~4BI%y$@jjfuU?r6auc$INfI_A@mJ
      z<hZ88Y}c71N55&jO_|yA<n0~a1a9DF6t&1*MNKluyT9<z3o;xEZ^fLGedqi@=fY{{
      zxq;5Jm>ZCJ{<QPrS!W?o48gd~Dm4aK<o^nmS@E&ty%4CsBABZLYGr6e`w6SFS#4=G
      zIh7pG9pZx@Fve4gr|)r<n%7v{%d8*a;Z*Vv8<}-3hxn-WttPVC?3*9|{c~n^ZvF^Q
      ze(j?(9gb~<Rg_@h9;>=fNY_c*634WG3Lb^^uZ82TM#uqGJflv*UFEOB%GK#(e8Q3G
      lcz_zmuQA#JcJV2aBB4IeoL55en|}R1DXB*Uc^+2v*?;|HXwLuu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQL2JT55QX1Zo2YHA(t7rqAT;#ULqsToAP7CAr`|>zVkGRg$)@06^WYEgM@dHo
      zH{xmc&3yA_-|qICEr3^aUDOEu75{ONu}T6~N*gw*R>AxE>Y`5QSm<NEiWi2^w)E%v
      zCnh|3{>)<IjEf>9G@~?8Y|31Sw`*cJsLWW$%KmU9E>8Sga#j#}UWGqBCG@`tjU^Y$
      zvHq4VH=aM0g3*!5Q<V^&FV>!_;@OIHnJ?l=n#s_k4g7Kl;Sj`0z6q#H{#!VrT~ReO
      WL^sir2H_6($MXSg>50ve===j}(p;|q
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixOHTqZ6opR_7&D3w6jXfg5RAk%1~ons3~__vx?mk@piMf1F8o!lOkB8f<$v)X
      z7~}0g5E0|%cJ9r&-#P8PeLlYc*u}bo2t)3c-|<3=E3d$n(g6>oR)xd<=czVr9-J7X
      zje{t|^tV17GR*kGNZzUm<J0P8`Iv#7F(i((@&m4d8gF$(?DakSaC30^!4Th*N(Lo{
      zRJQUBs|H3YueeoXh#u){;bII^lW;LXo)xLYd8b_$=7QH-f+1Pa4YK59Onq+{4Vuzt
      z*dCz%ccmhO(-ywZy%72<4!zHakOKx6O{4E^21;%tFWAT_hFF7ld}5|XY8e&>vBQuR
      z3&}9JRoyWSaVqVVGb8`Wj*W~>F!Bb~3}T4W=};HJI86zI396GcDbXxKXFQjGLgF#h
      zOjC8kX^D3CF++X2tHLaj)R7)@m?ws1rFyI~v8|_*%Wpp+Jq)YS(p3oC=*s#qrw5}|
      gEMkeQEH=}_{)o6dOueCq-X9Sy%SK$KP!X(s0kI^UAOHXW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g}5TnkKkS8$t@9(1*H6(h3U+u>n;=<)N0A1#KgBIdP`VRQ5Qs#|XZH
      zUjc~<i3P0K@DKb7;*J}oCPIRRukW36&$*A8AHTkQ1#lnhWjKTf=i-g<0-?`5p><@0
      zQIYnZOx&Y)BYB{bP#Ays?5!_H7B8bnXk9U1r`o7cPH@6PB4Z_jo{SUDKi+*xpgqFe
      zPNWkfwCRZ;m8H@5=KRlZt@nho3}h&^VcGpF-B_Lm(l_3LG{b1{h)_9=Qa!Le5$d_b
      zLlY}~#tAczl~!h(;I(t`luiyA6FWUZaVHwcDhjB(n8$TOq21|KK)B(eifh(ea^Yf*
      zP}^5pzDmQsjE_V=$eM|K9#`<t9FGr+W~dUv!(6@p-!TtEA$Mi6VVB#ToXXTZgvKB6
      zWE<7PD2;vjT-g>k{&A`I?B21)V;1;*6wpEmGaQvUaxlvuZz1z}2U!O3o@$)2z|jfg
      zmRIY3#$tE#0*&t01)3i-!cDey6xqIDyNe3;nEDd8_+<5x#^r8v!~$66GL(6DxRAqs
      y6?eyFJpNm()cu6U2X-7-aoZ<woC&&@31dOx8(ZNM+hd;GoF@1GN?v7}gSFpPR=0Qn
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_y=nqM5dKD^Ycz>kTA4JK9@bWYL<soDsp;3tAS>%G=$_!KS>yqHC~;!pH5V*q
      zhGD*+nK_-0zW{ouD-;OrwchK<YPX8Cb3W)`yo)}3l5W@q{!w@!G&0a+x#lD&l>ei?
      z-&6?InNPO~4~%6(JrnKz=@D9S>Vnzux7nGc<&3!_ybUwY+{OBY*L+OOK~|SD1X9{-
      wn~Hho4s`0RNe)6#@nSsx8hv&MgrY=Ao&^-3uDOCosZHstQfo4QVm#yJ0vwZL!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+TTc^F5Xb+AUbZa@uBa$CMeZ$^auY8t$Wj(4l$Nli$wm{h)D@SMEorwTd?4So
      zJU}oKpN+461iyxH&Y{XaNCFSc`JJ7aGxI-l`u+FCC4ebxNN8f{Jur{Wc*%73<EG=3
      zUDLJ8PFyQlhnC~!PmU}Jeuma-FU_ePGTc$K*<4=Dr*qleys@P*^kuGn{+}tq(45L;
      z_5AiuDxceC2&|;F%ra%q<Wg#8x1esP)ujyO3T|rowH$qsw$#*yx=LH&Ep=O^ZH?mm
      zS0^e}t74m_f>o(f%{yuGXX^|tsj^dbO~);mrJ5BO`nhy5-}<9UhiloL&4GfN+0k@{
      z{x`QNIFu}wY{zyN7<?nq0-c>Izq3LJM8MD~qYK?sZnELhKH|x#yA|8nPo$%TF!?@~
      z5kN2miNjMF5{D3n0U03<VGhGG!W<$TVlpBenmLTiXyzbun3N%NXyGs;qXj{}dM4u@
      z?$hmLY{$yh4)?4|-rOr$3~iZmk)$$7Fk-P8fe)S3ko&<Vae~KOEm{nYL~o%?1oL<;
      zfn-sxuU$W>y4InLMW}RPW~E}D6w5~^)QDG?+}?pzbQ5WhRDZWfE4p)0N$x$voHwi?
      zXVepR!<g~LG#N`+Aw|3?QYEumO?VRgCnq0o8q|nhu2qWGip|ASJkMc*w@cmW_P%4f
      zwF-Tn^<?DXNe|yp;zD9^itfut4>7XX!6ySCOG6<n&4aKs3c}J92ulMXEZx1ZbnTR(
      z6Ro&I*%Vqg;jYrjhk(|8nyUwBr!NnQei8G(k6*xywnx4*bey6`z!SfKUIBdp0sR67
      zg93&Gj7S2a0!Bju#so|#SAKCpQ_7X&v=aJCXZh;r(G7ncy}A*oqhB|Ibqwi-R7X@d
      zLUoMkhC*9$GPF0XpJMhi721S3`aeYP0T`zVpP)wL7{(-K>DNoeG_sh%TcQJu;<<?6
      zQS>AmEl-iaTw*CU+I@x>*GYrqfJTrk))HO{EyH+)L?e8T?uCc9*D-5s_+pnvlJ~Re
      w>pDkr?2|Z<mw1(p{VO3%qnB#rh*3fOtVkP+on!eM*v)ZGSQR<fkQR3R59xX`<^TWy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf96r6ROrb$do(@>z?+CEfCim*T+9$G3&1rjLg1F7=94Xd!lUPsOb!C!$y
      zg~S6Nz(*m*c8J}Js><?e&zv(eXV2Py{{H$6;4wBTa0H$l%g@peq#63sn8-@2Bjdj{
      zgD4yY%BsB?`1;F0jgo8yuE1)}dp|K&hiaA=SjeRgzmAl^Qa3N(59D~fEl}<0p^<hH
      zGym*terKzI<Z6E2&h{=f>MBs7GWI}*RB04AJsWE?WXar)HrnnAY_<yNtce0Jt#9`Q
      z-kmGFQa2Zix%<%vRYM8aJ=C!zP-?aNRR}D5C}S?!-SALFO<=LBjXIcwM=Cy)M?rd^
      zXdr{WjCB%ELDzoNV}Yjyzruhny*ZA<wdsYpCY{(y_mlxsQ<LRZyP*I7%ATJ`uQVEg
      z<|*dva%#P35)afHot$>#(%v5>Ul7(guM$6BhY!ccsFFtWj5$Q^OT_B%7-yMlSRnd|
      zal%{d{N%fJf=1`z37X$i!V1?0T&^#;zNF9|Nw08|$XZ6jE!<{A0j#FB$?gsf9o!}A
      z(KO4=b0^r^y;%eI(+2z$2g;ovXnbR_gTyvD0nkmYGLiDsia!V*Fq?E=Bsb5J`xlbe
      INOQ3M5B9(Axc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixF;BxV5QX0rN}xbn*chO|(2<ClDH1`71Zfov5@JAZI2Bi^gHoqb{~7~7fFFgp
      zFf<I280<Uweed}!e|>*^0=UGXhZf;vrkC2!w4M6e+T3Ypa_dL-jSJ)W)x##CUo)f0
      zj8o@fi!i89|2Ttn2%&SImqp4qCSyW(oq16i2}en3otg8aS(r)2wQ)f>yKM}=&eL+v
      zR_3}QoHjEFJ0au|g0z=9E9LItKj=8mOu7<-mpsHOx(f-%%@(DLDLWz0oAof`YCyGm
      zXMuV_9FJ6>qEY;!p2p#jK-iGgmLC9G@P7Ag>_{Dm(vi9=`W|B+UG%E<8N}%0;0LY6
      BfZYH9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix!AiqG5QhJ$*43(Q)sqLUdMNc`@a!pIgn}j|u7Y@wZ5&F<HYsgV=&O0~0emQN
      z;vw-6@UT0>&iBth%Y1!*d;++}kwSxTIyEcfSd&Z~lO$<ovN%ngkTXt-OktDIt(agu
      z<tS6wBJ`@)KT5Z3LTIjx&6zM5T;A8hrOha{akRc6v>wxZ5%FDYMb|FtSB0E#9Og3B
      zjGyCWJhohUEeYrK7Po1X&*U%sF5S=SnbJm({y#`LsS2NbJ$C-o9-78A~-<wbqn
      zvs?_O*K-!A<NAJ}T|Er^H~lj5`UJv;oTe;`WC;q}k~OgNd$+JFu_wfy#C_ouqm2%_
      LMfwV29N_Q=*vpV*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~E_s6n@@yUAIv_oPd0Zs0iCY=1|bMg+S&^rUMLROBS!*%{oiE*0ddFzrjDF
      z;{u|Qc;S`5#A|<m@w{ca#t2~->v{T~^PJ~-&*}GHpH2Z}@lZjCVg7(0@{Gx?W`<jq
      z?Qzert<0Y8>6VCI*rw6wC<rqQ^)riByTu?E%3GSouu$%woX?SCQ1&W2`=#w7LqyxH
      z>=h^&adpSwW>t4w>Q*T|VPMY~1`D?3dff7=+-&Re5B=TAx1Tfb83u|wmF@ZJR=HB7
      z&WkTE+d7(Wn1*F|8w^r1Rb>bl>{ogeavTg}D#me*RONdq<H-Q8<~fGd%#~8r80Ai?
      zkP(SO5nx7zB0yAt8!DoRi0Gz@Aq+DNmkmqbX}9XSv(M|M&X6eE4RXuLGhzQ_91_Mz
      zkN3uKNy4EpOhGD{x}>={Qdm-urpxTlLF>4l-cqrQy9_bzIK0!a-*y<%L2JA91HIwp
      zN&&ZjUXfiIn6GB{HN)dzS?@+tfwBwcE(~T>tYDR4El5)^x$EWvB>&+Rn?{=x*X*{_
      z(4QLO5=Z~p&J|&sTxv$s;$GXKlt%$pL6HyO3#4x3HnTK8iM|hcb5aZ%peN1Pf6{pA
      zWC}5etr?&=1a)Le44dLGjei7J=p;d?MOgf{K7-W~SEXZ&9$~@<Q(+%W`{26lgW1Rz
      z%9Fa7&}!i>rnQ>f#jJLOxsOB=!Y%qw_>`*{#2SgnVG$YJ_D@9yZE&x3mJA3BN_uJL
      z81sFC2qmCbr24UfJHDqF7KrXl`8xR)<>Ot<)t*b~(^_6=+m@zJkX-)YHxzQt*w|kQ
      iF&c5E$B`yMqE|e@(kHn073}=F5bpb&56G4<vi=((Tn@Vc
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix!AiqG5QhJ$)@ZA?>PbYZf<-R|&z=HCC}>jRDo78qjYHY8O{7f<eKik0fDa{3
      zEEt7=hus-wzyIHv-H*?=cL0~zb5J83jP+c*RwpA@CrO&=%%q8{^mN3TgH=Mi1j6B%
      zW2vqYI%V~j%=>X5)aTmfOgKF|AKX^bzU2ugnOeN^6`^sT=F^yOj1^IH*}z4iBkV_c
      zl9>rVnwc3|E^nC;j;p<|(>O28`9-Xcs+ov0A!J-Zy8j^k)S7r9pc6d=s(0rT4yz^0
      z&V@XwKL0y)%L{@~d8!u%&+4h~cL{_QS#|j%lIM4@E?Es5-+Kd1i5(#}C2k4lFt*V`
      MyGREh#twGB0IN)lSpWb4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g{)uc4=8Hg=G~#01-{Q5F4K%7+dhEK@&(5(x+`5%8+H3Y-bHT^M^2j
      zkZ7WBn((8DcV^pcrJ7B4?#H?3-g{<l@4o#2@D{Hu7!0e&{ujR<_+h^;!hwvF6CTQX
      zGw=t4ZGI?1Aw?8gFd1et<j3wY?@5L!dBio8q0-9II<&!HkJ2ARz!{8AgQ2jgIJX$w
      z>O@7SQEM|4_e4MRWfD`#!USm3+uBHRW;6QCOUR*Yqlg)XT(#D=Fw3x*jk22r!KX-s
      zlE*t|J$|aTDWQUL5e)M-@+c_lkqrw|4CR&x`EGL3<?+7XRYT9VqMjeL{a7e}7&PUP
      z7%;pZ+u;A=kr3|RB<H6iB4><2tESeYrhP6m^@j@2RcrUrih44da=4Qm={1<un!1S6
      zUX;W=p2i&ABWw9aDM)XGM5VW4&__aPi)5lRN0}l@6ra{n8xQEbAYb8^yc;}R`vq(L
      zH>SU%a&UvWpWfOv9B=&^?pIClnEp>R={uNs4;u|QXkr1|Si}yUz;a4QxToY1u^xkI
      zOATV+8QC@sljfe2Mb}Tb(O}DZu)2-|dG89&C4mj7_61$o(ydaG{IC_n3#?F9Z8cu(
      O-Y?$&XYotjV)YLI*S63A
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJyH3O~5S$Iig*zUi<qtRt0`(z^;~^oP1XAd(VF@Pk$+6MeLGWu7d;lMXaKa-g
      zC=lIvG~S(=eS3d-1#pP16bWIn<VVg7+cMME2dOJ%Lv~`=`*Us7wXpT~PAVlS288WS
      zetEl8MIemAw}x=DJMRSTkh$YKCDR_A2hq0dGp+E8@T#aqhv)1{T!{0vv!||NZKsRb
      zWHBR*&z=hP(C|LRh;Yy?>;<?mMwM(nb42?be!fM=xh^e-S`?x9zvH95<3F3uT`h%b
      o8YS%f*6w~2V@M#Z#OnYQ%U;D03DWo)M1Bq9h!U(vywRe~4`BC?HUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&O;5r=5Qg7@LQMfh5L8Zj15Ct^lfiJ|Bf$_aXzvSd%9^q@Z882U<B7zB@yyAi
      zzs5KPB1RMAp))(%XWn^dXCKcm0FF^I5hEPkihEIWg?4I62cbV1OC8p_t}7kkHeC?}
      z9nT+&u>CNUccJpM34@Sdb$$IHWCQ6d;o8y<7`*Pb2y{WnG(A=pI<$p5k%`&k=<WU0
      zbO_0FrB&D<#LE?%U^KlOX(5jFG%TbD8$G4v<zzgN{*@TGl920pLmnV_4A;v`BOIxK
      zaMD|u`rj&bLZSSvs~`GGJN1eknJ7di^1J~{=YB&3tM5(xq3o#0*xny6b{P4>K6p=l
      zctQyYBsrU0#jwU7iy_4^%{Ql<iF2YlMdoRaY;d#~1I}Qejx3+j3kaLYaTN*VIYt5v
      jCL=akJ(yzar$UQ|x91AQ1+`RQ9z|@k24RQ0W7z!!+-7__
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?&rZTX5XQenrHUdT;2%yNJQPi6JojW&5)9Eq)PtTDx{xL9F4?xk_-Gz{03XV@
      z-I}%<W8$ULo%!v|H#_tG@%jef6demCf}=TIQpcxa=5P^4Dh`;4oI&<WBQAx7Rf2j>
      z-i+sL5)o`u&%0Apgj1;krU-iWFsBOn&V3q&eeSaY?RFms8j1ySS#<w5$s<9BhqugQ
      zQ!bb(#KKX$SV$Eyk6^{_YNV#V0|dwR(;r$dl59Nb-N>w5K2O*pIffQ$1c!N-rsB1X
      z`Z5+?hFNG3I5|~#i+d4Bk54%r`>EXQ5<zpuqBGwgO6oE1s~3Wn-7RW0em8{&iAbs&
      z&ES*b2#nWcQ|_-hs=8o0%@KcL1nuJOG~jlx2r45Ps|ia+sP+6<k6zMenLt0b-Yme<
      v+p>l-lC80@ZtMms#%^Lub5%{1QNlLrn%P0q#9C+@yNf*?C)n5D5)M8Ajdjfy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&zfJ-{5XQfO0}Ou@K|pDY9bn>x*r*tqLlX_LL9Sn5#WlyCxjT%BkK+?qkyuz-
      zSo$LN7REUsVl*ZeH?y<%n{U3^mygFM0CkiTh!D&xaU)De=%J~!A9&-D)PdR6BX^)K
      zl;}Cqa)j?6-S*{mpj@4RLC7zfzJ3t0zVwuEZ0Y$7c28OaIwfQ*mxYB6Y~hS$tn~VP
      z_jbSkPKX~Wt%4>YTB+Iu!*T~Qi71xSNFqg8X)7(y#-pC}&O;-FT-)vQ0KsFpo?jZl
      zrSb{&_QKS^HfazFm2XX*z*BnIsM?{2Lg*pS3$SwTH$+Hw+_Be}$13!-`S*M6gs!j!
      z-jZLPP(}=K&Izs}SmKYhkm8u;n_bStIaZq>^DsqLI3^hb_F&)uSw5v_5LS`nDip|b
      m3<a7@hHSjHJ;B;f1&fEbrV7OwHCJFBMU+^Bu+H5PY<vP7R(o#%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXO^O0R4256$*Z$2Yi0BQ}jg41O5JnUi{vht6hNh*g0;}|Jv+w|OC^6m0xX?{P
      zUcNl?{_ejw00YzmWE46_x>BggMB#}HMSNo8!;vQErj`z|iDsK2lL?ShsK4O(?#O$u
      z(1_S4ARp43k-ZpEv)$g0LR)rA>q&nECJIdfRz|;_mtwc(^UgX>t+onf$Npc+b+^5>
      yXbXEe?|B?+!CLPx_mgi63gRJwfxINhqktqyfMVK9&t66)ovZi~QsG-_2DJygKT3B1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9Hv2MaZ5JYEzU?7Q<0>KX;gc~gCbU~s(F%+gibPKGkL%uu9Ip^b2@Bw^O#2E@K
      zn%&~f&dgr^|IPqrcn{DZj8FW_QN|{XG#gGui*eE1>Re^)lr{18OV|Wx5k4N;_5LIW
      zM+j1JE7n5jPr~m9Ph6o)`bik6pPJc5X^E{-&Q>@n^V}9rj)dkU+!2P}ZDSp0PbW9N
      vB=izn76)0V%m)r?qI=0{mER_Kx&IJo`pz$Cqv{@@bK70?JR!XL*}&TsYa2+f
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh5My#Ii*FoW#6z{oKU7#PrnM)VvaX_r#(kAlo@VCnq(z
      zB)`Zv!YMT|kDY;qkwE~V!9OVrD9g^k#>k+75JfV^H#IlEsL~f~F4PQ02BGxS5~#tM
      z`FYOyrFkWc49psuUW^QaC{iJrxv7i{T*3LJMaijdnK?j?G<JvSfouo50%#5pvjV-x
      X1av7o0|x`h#hf4-D9!~EXW#|^#{)+&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiy%Wl&^6o&r^X>FM#EiO%)kU$8RHg!nUbr2E+kb(kKDvboYi95Jc+2i6%1sg7p
      zz!Khq4V6HG9Sa@`aqOBTsv==aXU>df{_mWB=J%g(KLBjwmWCWd>yRJwuFI9v^|<1W
      z@PvxGk0<Gl2s{~v(pMVt4E1z-DC{_p(VOl)9!h(<g<&}qf#mK;1j&)T!F>kyh@sf`
      zRTyy<jkp_&h3Z~^{bTLZHpAj=sbqAAVRdsjtz<U}q;h(#5ktQ3?+XLxP%6N{c^%6P
      zn&;CYKQLh8qJ|a1o;_Q@D#|1;Ud7xE&&WR=9|}9_wO;60CpFtwQQ*58stnDk(7<(t
      z!`-`q6DOWLcx{WLh?>$-V^|reWA4iR#?i!|j)4kF3`;|)#FN+?i{Kd_yMn<S`ZjsO
      z$r+kwi}~n4QeoCi+yA+M9=V~omkLhH%)DaQnB(A#_{38K3?&^K4A9Xc@BX#I?WDc1
      zLzZMIgR$$!fh``&q>swHXVFPYq36WtjzF=B1uW92(JV)V9OZOz6brO6rd>H2n_Jci
      zik7+b6&F6EY?*6mQv8m}bMw*(>Oa4v=Py$<k*6p~_a)Zg;3^Jqg;vU^N@&nZ@-^wd
      zMx2CqJ>xmVOX{j8yc_LbD7Vd<GpNmZsJDcAN7(nM;X{gQoQh0P^$bPA*dl1sq(zt<
      G+J6C7l*`co
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO-sX25S)!QvGKD7e?Y-QdNFwRrce}Y6~rRFy~gG7O0rLqRM4O1!5`p{5;v)|
      zLN9N4!_3ake*b)a0k}XvLO>WS%$rGbBQ`CJ7|R7qosPNi<@@;gij73*5KcC-`}u;i
      znh@BGu#*g@gudnahRy5B_EhN@!dWuB+qkxdx2j9Rsd^_~w(JAtS5XfvFHY>piOJoE
      zshyW=zZ6|T({Bk~S53K``$|KVnGxcO>owI$X3dWAqhFR8k6f;@-v5H<&6XiS-Fg@x
      h)V{k2(e#e6*JAe%W9+y8101$^gkyE+ee?~``vp^VSE&F1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvX!3u&v5QhKJ(z1exf*wIHN#|}II%NeyM4dKU7DabKE$G!c^Z-3nwA#Uoml>G(
      ze&(Cc_w@#_#K?w0a1-`me#)fqGbWkf8JDFW@J!{;pdRGGY0a6m(IJc*dVfuLR1zkF
      zmw)`ARJvmsF9<W&yKEaaEb~~36~WeUg%GB$*9yeNk)`pCV7lI!;DqX)M|=~fIx}z4
      gT2xmof)41f08?9bVWG0M(W`qOj@}Rkx*8b%0GfP4sQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F`%@cL7(Ew~=D|WS#oCt^u(V{MiPb7qTC@$}<tC{ljo^z}k|k_ScA2no+8M{k
      zU*ofijM!FZtiL(>tN)MVxpyN8HBe-R-S6Jq?|$cekF$UN{qwH?E@35vE`hPz=0|3-
      zYC4r<&2-F)RkIu~nXzha{chIv>@~Y&dbaD#J8NzT0fGLOLvHo9Rq_N*X40A5;_^yi
      zZZVyo%Nf%v>7`UUJ)NEwh#9T(d9Q9el}Ul#l<RDIrsEaOYQqX6A`q9y5-kXcnu3t<
      z*6Y^hx?3$LtUD#kDqCfNbIo|EoMEI>h51~zL+CIxfy?{cT5_vZLMN||0m2)uTg{p^
      zOCZ?TWKsl%+jz84HWPJAo*}Pb$!$1Hh*%Ifa@BThZ%W|GXq#&@1#LU~T(%G|3ItMa
      z*@~hY$2G+8j6nBjychv9uAvu4q;*<DAC5}vSq=SoO5mtrJ65()Tea#1bG1tBF~cpH
      z)uLIq<+`~U@Yd~3fr|%0dAtEgF|by5YXZwYsXOgW<8D|Eqnb`K<<>UbP201kP0yT+
      z|E~}|7{P@Q&I^pn;vFV}hEc@XnH9_1ja<09LFVJ5e()#VB2Q0-(Hp@y5+Pg^7&#z#
      z-mYyhkMz-y#0#u-zOXo-ofWvCsO}T3<u)0`i?|%ZO9E$Qod3*Ufn9Hw<;-b#8LtTR
      zmDa7&hu1w$&}zdYv-05zpoq2QzrFwVfth0&m0P?RMqdQ4Vlsr+IH47%k?e@pSBuQj
      z4c301snKv1*90PJbmUb6`ay}=Q#6*LUzXtw4cBFE14b@8E1M#vVH#=90Lv_JzQa_t
      zH=3_aO!O?~Lzoj7JOH|yUk$_H+-47#*e7?kFA5<Tdo<H8KnPjZw1voUok|oL+|=+E
      z7MZ##H<UQ4nO}%<z6(+Vjxix+4%J~Zs$kN`Q&kA72~iT&L-XdY$_+H<#Bao1otEbn
      z4QlS56Z?pkKs4_*>LqK&mb!Dg^JgR>d1Hu_y7?gr;w1l%a24XJ3t_IKZR;NHQR~!i
      zR66yh&M8ky8;;R)fU7ER3-Udn-^bJX*bYwU<2yK|5AER056bH~K98$2A0vQI5W%O^
      z&d+$m=QzvXbnen0gTyBP22@<3EE%~=Su%DveTVUUGx8&%lT4QN-w_mB`a_%(Fveo~
      zHpU*{(pYR_8&{MuwT;(l=&^~1xY32*F!BI1nO`85^%&jM)|=ycY^rHzenRd(@>{&T
      z3le?;J$!yapkFfRR|NPqDSbou-%<nbVFKS_2H&&kw{VNLq&4V+<GRRIFAThmYlJ>Q
      z3O+4?B`h|{BpFFk4(dPR%sm=@U|ApFk-AXx5Afn4?(tiIcleYwNb>!!^NAK}-}#S@
      W&hO&A4$h|@cmAuR^ZN?l2mb)!f=0Rk
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqO;5r=5Qb+FEg~WyAc!CMm6VIbvp0zzh$sn2jGk85lw#W@Z87rKJop3rQO4P2
      z1xm$B-_Gtcv+wNe*Z0RK09?S41`z^h1Nug*7IloOO&w}5n>l{9!EEl1o19yX$16r1
      z4Wa~6GxYvtz`8zxjKTaGw=4`y?mT#yPvBIq+|JNYRY_eED1~#|eV2KCZuJPP=#@Hw
      z@;^+Cj~uj+Lu6vNA^p2|)Mg&8>y_s@8!g{89RrWmkQWGnY{2IfNFdN;^i_2u`1W{+
      z{7HZh^(7#zA46WHrhk9u`pSpaR3FEtw{Vlwtn2qKV?8#xl_xZ^9Bqw;L+<*5EtsD4
      z@kg2B;?`W6W_lfJnOGo+!w6gj&ZL8L!^LGz2}Jd}fYJyBPbUy>@sZnQH>QP`nOl5f
      z=i<q%5x~*o^90C539P~zh?l29OzOJQIBdu`0h>~jira#ejMFO4D1KXM7IJbwuXIOg
      YL1|IxE|es<2m4YFgrc)U{6?Vs1Iq~GK>z>%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZEw<07(JH)g{}@n$J~qVMO5e}gc$t-S+*<~7kM#uBO!h;7p&N&ElVj&_*cq4
      zY|*&**&k(mZmH53j5fKw_qoq=&ON8k?e`y_uK|=%lo4UrIOXTOWO1iovbn?ihHW@r
      zsbSaycYHiPGh{>=7H35@XJj)(U(^m>F>KXmiMi+sL!#MgzMYmY)S4%aT>GGYQqvi>
      z-~11{+Otf@^!6B}e4$Mz9}eCb3B(jIq*SDFlObLWO0xM7rS7?=)2|#A+DWRtr6PuS
      z0<s9QDrCgP>W+#8l0;QE9iut2yM}wryOzO_sSkSGYID~VvA?N6LW(4KAIu@0dd{tp
      zL5p0z@NX*$HnA;Ziy=MxX8L&O8Mcc1$T1|j>+*4La5iSp!bV!%Q={iqjzZpkZIL+!
      z*%#7!&+s%13;Y*Cu=za_w(=?-pzsI7p~Z*8N(euPQrrjXvZ4=0ZqImbicgoCU7w;b
      zOWt&|?{IJAQuaxRP@t=!c)q~B%6^%8CDFB&_E$t70h+0WKzda)kTOx46)aGlO3`bI
      z#Z&wO*2&zEF0pulj33;N`oU7{E2X3fGI}RE!IFM~<xhl&V1?ca&Eh9nMTv&k6@zYD
      zz+WacLXWKNtY2bn28>ey0+8yjWvmOKB=Roq1@LENLcp^VEO%Z?+I6QY)HI~ED{Sn3
      pq|8*tl#TtCkfbg>3^+8Z5oakGrd{FDH?Y6sBG7!!9qjt^<DcHd<g)+(
      
      literal 0
      HcmV?d00001
      
      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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
      M3JL8M8^f#r1Md&$EdT%j
      
      literal 0
      HcmV?d00001
      
      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
      zcmZus!D_-#5S*u}(X@hx;=wOSJT&y|sXYintwKP&Zo(21k{5aJHQ=v#@B{i$(oHRR
      z>1Ah^nVp^ezMd}tUNQF3Q<#_3Qe2VF<C-+(T(frZ=E#Ozq4VTq9oOsqJCpX|DNOGA
      zO<Hp16#Sgso5>Ce&tdd&=M!hdVWBYX1T7U6r4?^Yld-jpu?qb#THW?Psb+;hggZ92
      wXtWGT^JOw#7L_owe-piQ#|8@GBrgG;1bo0i8ga$&7e{|{(4i<FrS|aj0~%sO6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvOHTqZ5T2s4@|2f~@5F<Fi^P)$jft3;Xh4ap8{@4&vzD;kO}A^pU-RG(@JAV^
      zP{0*VUuWi<nQuDt{qy++0B3MyL4v^XfPT=%kP5fqQ9)hiF`*hykx<-Y?bjxw!h%%-
      zg*orBJ77J9E|;mM@2i_34Z{vq?*uBfdTUO!mE^*`Adp4oA65~~I}t?cTDp<$7ZNB<
      zGb6=^jTR3T=A~@z3aTQ>2%IbsE*D!}VNxEew|G}lIhu&7qN6>V%??=4VKU^tAYftW
      zfqGazgD)MLSUF=kO!R#@sToVu6WNMN^^D&{V5L^SCs5YTQK*>Lk$%9W;tVG%#)P+N
      zfEv&L`<BeIe7Y3&cnS1!@O$v>cys-ZH`S}<Y0HdR<zZ}5b`%7@RIEQ%{zf2e`;qLi
      zTRz0HrP%gQ^*)mXkcwvmP{3nYgCyvqunew43gc;vCLn|Utnudz<_&HbEEp^rEJ1l(
      euL7I1I$Kz0+xV-7w_|YE;2!K_PXY(y&WFEq3b@t)
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%TB^T6upBezCcg}RD1$jHWJsa6f`N3Xo4Ces}aUpC^MuFKhA|8;71wnv;##X
      zhD}fA+;bm2cjoK+;}ZbRpcI1$fx|9+rxlBGqtd6G8m!N_Te*L;8SONlE*a%9h!RMK
      zvfGy~Yr6#UuO{y_1UFq_*HCSVc8_&}Oou>JE4S(d)(qxeSXMym9SmfVsd~1JeFC;R
      z@b1k%BQU3xF(Wq_e{h%`2+|m;QPvk+WeShuB$%fYSjXTUqrG3D1d_jqWJnC#Mzy-^
      z8y`h<{wfF*k-iCk`;R+Pbxz<|Yt_rG8H6RRuFq2N1PkgjRZNX04lUZ2oN%etbgAtQ
      z_fZXu+BcnP&NscmKuED~<uieT=?qQdF7C+`TrJw<#ucY8meiL1Q;pTkjC6tHqXM~!
      zz*tV&X3ms#;-(*QGZ>m-zNq#r)!9%z(SNxqJiE=VO$#qyDySIT`BS;~1p;UYz7>EB
      zK7n~y0QnSR3KwC?KQAj>fmQz;SC~+^21%b!!Mef?g=vMGK4z3ItLo)o%jdTh?kLPF
      X+*P;-`@Ze~4t+e5h?5ua8-d~v@ZS@e
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<5PeQVQ$nGoP^q7gb|5f=SSpnzDM&?Gn4Dk*SBWhd7m3eeLSo<p_$b7g
      zhL!;__}<<5`TX8}e7?N{IKy!Ok0Dy}CmvT^m2u4#FGVesjk7e}6f<5}ZJq=84E-(p
      zI$w&yGPEzGlJ=6J6^%0nf2!|Ah!%Fc*g>12mq;b%t2!6vmgkjV7$myjRmP2Ub<_0i
      zgM4I|B-<bU*K<yTN?}t`leinLt2wU)O&CVwyI(^V)<{(ndAK33t(k^DqW%>(Ia#0T
      zsv=MN=PF$2l_|tbI@O~;c5>px;uK__RtorZ$TZafWicUhoyjXYFO+x)DY|RWqdkh<
      YHGyy+U>zKw_l^Aq4;>O`K+(g|7rjVr@c;k-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%TB^j5Iw_F5Z?m6qlqTqix^!Ac4ML&;tRsQ)C<&LtF<-puXJVN!VmDHjB{@*
      zk7C^1J9p;HnRBN7`u_L?aDcTWB80U&{aG({b*o)+M5}bw(Jj}$zY#6r2+I&j#0dFe
      zOs_~tR7}fsHNs(`+6P@W?}Xu&2Qren*LLj*Pn3%dLaJuAE#37TLD(+T>;Jb@_86h5
      z#@MNSE7FK!JcBqAgsG}&i3{((DV)0A>@weM)i(5QLw8L14w5mqV?GhqL(;;o%Y-qO
      zELY%4rV(oddgR>=6#j5X$PH_FdHB__73vHNs3@m|DBpz55PEo%!CDyH7OZx@P#k~<
      zpMnrC6ctyxW_yky&P=(ZY<TXzbV@j?)Q?9=w1L!+U0*FWz#9110wNsoXW=`kUSmk{
      zZF5!DliNGH??}IK7)6H9Gy{PXZqP8n(Yg=AB&PVq4VcCZQ_5%-bBvznxR1(8kV55p
      vsJs%ffW@AOB_%>*gk*})E1&-Sgvy+&*%`kY%$9Td8966{Wp%Cu)>eN2%|*l~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2has7=F%vcXy!BvP;2Q76sg$wycVu?OHz&jmZY2G&OKH9ZuIN<7^pb6%sFv
      zUK_t|y!VC>D^?OoBmvSIew6Wf&rEl>EYPIqocFxXdEV#!n0@r$-~Rx31*h{!DI8pL
      zzH}PC6SNzlUTrMuRUPWU)p=wT_Vu0TR@Sr|DHMnj1dsb$?V#IeyK9X_=c^B$$eCBj
      zxSjPI3VGMpPN**{s7ngjt6kmI3RA5<->zWi#n0Cx7rb`hMBR|!W6uOPXP1`d7x<(U
      z=<CtBz%VErdfFqA=6BpH3S$G1I4SxHP1pAVFIrGY*XqjzpYB}NMWj)&a1i4Pxu)@t
      zfI%$m!+wR)mKW%=-7i*jxa6$()I8SexQ@T<gr3;RWw|ySQ9|TuOrgFkj7KaKFjC~{
      zsD&3WNv9iXCn9Ag`rNxlRjijnWjFtg^_>_`t!y(XQ<}TNsV7Jo5ch<hh)`REJ`<L7
      zqrRNSG~3+o^4YHMf7<baNQY;xyLvtHIzbUODw6d{3q_PTB3GGTTXUig)anCqdfmy^
      z>PCLnOqD!+-9i>Qg`#)uOkk#qqsGo%66f0%_F|MnsAE?VO)TW`j>2SL*>J8F=I|~t
      zgEiWPny+(~ix)cG(A6J#((k>CJD<x*VOFR$m*$2uSQx&_9Hr1Szr!5=nF?1RpX{6k
      zW3xI$Sv;q(hbyz<T9D~8djVq@C*lCD1~Kwix{LJ1J1F1A#0Je24s$IU=hxgn!E@%8
      z3+H;0_c8tRhU5xup&7NwV5c`RWl!HhRfy7tXbc&izu~${jo(tycZRSMKf{YgAqjAd
      z8WoNc-S?fK75iSIPXyF@0_sM<ue7Bq)t-QvZAr;yN;CKDnN7?-rf7;)1HMlb{lGf?
      zh%$bn+MjU*zZiAZn6sy@ny6zO)~&>tqO*^RbqXrhDX2aCu}sOgN##k&l)}sW9o?~C
      z<>^$fA6>FaDG&XDiHoiKw%WvNc7_$5e()P|(+}=#(4Aug%LJ8K3fbc#S2z&BEqZ^a
      zxDB@Z7AA1pq+&4$Nt0AWcK=3XE4+a>xynd<%w5nW`%k>Jg>2?#`X<ddNY1$K4v?0H
      zNaZFbo$HbMlr5xHlFn}7uyAi<TrB%9%zq|{&hCm7r}L1rvc)vFS;2oXg+~LCt3#3H
      PMk1&1o>|{dYW~6he0V~@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>?@t?b82^0R(xc@Z9XJ?*L#SfgD`V5?+$fA`W+Lgf=$aY!?kHc_ZRLu`6(Rn3
      z@0&#v{{j=`&0b&vEYZXztI@<i%J_Nij{cBzX?ox9^ZWUHp6BkLe}DS}z-8Pt5L1|V
      zWbfE>HQU{o^Yr@MXL?<G+O6tO8@izlBos1jkGrdnbk$erTX(!|o@3><tt)z7A$8B$
      zaBaWgX@$vNekH3?nO~%LqE@dyRv7AV42#j0EIF>@FDk@y`TKPJsJ^Dth-1*i0L&B=
      z&YDOetuR=2Tz#jpxvIU2y;@`Cp>n-y*Y4Y%BXXon_z#_Jg$o_Uy1Earv+ziF@ZQ!*
      zg6vBpODCAN>b07}crM?|oi(O<TO)GP1UO;hb&M$(Yx)Zr3~$<vZWFnl>GKa1rhA&B
      z{P_ndOyf-hS%uLa^EB}m&T;NRNn!kL6MaZZVBSOlNreGd@A`M$fIFE^(ZnoFPS36T
      z&iWpwM~*3adb?5M?(ni%-yxET-15r^O5fV8>Mh@?yW0k?aBA%qKXHBSd5tY!ueF>6
      zaPNFAO5?a{;sadcI(=z7Y$w4eE|=juo4VehLM;pN3nnh%vO@Y^z2Q~$$Br!3aQ9ns
      zQ94q{l`7XeCK0Xg;%OD8m^jXNFvcHQq+|qAKZazFc^4gbo6lD$Rp_mFW(v=6rtmxB
      zD?E>o`IWjjV}LV3zGWnE3xg<Qm^z7O3|_@Ko+DkFQA!HuF~$zU+OGwbZc-~zeXKNo
      zz)P53+5tZANZWTRt!N}|1{W~dO8Z8T_Akl;c(HJZ%*yQ-)*+?}Kf@?C<4-N>X8wj@
      z?Zc4k5ptF~qTM>ejQAhJDmD{Oi_PcEVc;z0nQ0i;f^!}V!5Q{BL;3)lURBbtMz0Ob
      z;2|tH9OGkLMUCEefMbL`v7-ow+%5*R3sG&GAPQ~$<RB(*VGCPG*`Mr6uq_4H$}djf
      zG}VDzZx`e#|3l<{fuZ)1jwIqM5^1hzH4m%^U50qTk(PpU0XKp(L^q9o+IEO;mjmCU
      z*H>ixYh1xMWaC?U?sOnqija+xfjJ_J1uGCD6Pq9lZT++<S##oehuQ?CcUeUi^u1ty
      z-_eqwoMq>kl{*o}0g)z;@&0UcAIaI~^KfZoqt0WT?&G9O&anLv?mF;<*6-Q=4{YZN
      zSLMf!mb0y4WO1E?;un|^;U0@E+}cYV!RbcBVSGr7tZK55I!5XL3;a`1E6kUSYPBnf
      PMk>U(3i7-WQLywMt4mpz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<&2G~`7@TzyyA6Ss(xgCXDW!)b1tJ6|Vnsqo<r0Btq8zw6VUxNFHW(X;w}Mk7
      z4m<!4g_v(`oTNdy?9aFJ&CJg3?>|3(0eFfN2bRMArT5iqO}${!iuAbE3&-)f9_vU4
      zBkiE5u(u4z4;5_J5B#{JP_1|8ptr+IJ&N0nfx>3bp9Ef<M4I4wzi*1gSK$X;Mgi9<
      zD8W|P>iU6xlYAWNsP7G@#O`#%kvAQ9kuUqKSd1_HFA4_>QY(hr3L7kn`&ejJTq)F+
      zxxan-$A7$lULkgAzC-o`XN70~x$l+kJf?SvPPDmrQxaGUa~~U-#z5k^E%8(p)Mtgm
      zwQY2CvKEl>(*8s<m)&|}0iL~=LaE-MyhtBaa1RFx<zARXBYozZM_KwBPb6A}=WhSS
      zDpzNrBvIyJq%q<FXoY_e9H|Q%798#@Y+#e~d#)_bcJp+G@(+Wna4ef@n;kB$b6-nQ
      zxPdM1h{rZ=l5uD0>{foZ%QMldvM<%E8NHA`#E;WFeKf<~Rlze7zczwLDJ&OsGC{WD
      z4(^gxr01wqT2LaLqV|bWl5cL}(3p71s$fdZ8Sa1Qq5!$GZHnhczLEkmd6Ak|M9N~a
      KG9G8Qd-xYl;La8R
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%TB^j5Iwgb1w>I4P!V5o!9yiRS3+1w;tDYe!Ngsu7c64Y+M4)Tu1H+?0e+Nm
      zZd=RCu<6{HIdjh3bNl`C`32w@+cG4ER9AUZ3Oz;d6b#-j+;ZjdhPS!Fb(PETGbG0W
      zUXvkE(sa!%GsH91A?T{r<*HfCHW@;7t)nZZWpDy#8V$SXuk`PE7(UELFoys`w5sX6
      zW<9mI(NJ1F!p5q7Rp~VqLle1M^qUXbD?@rjYHHykLy(GMdsEO%ZN-on=YD_w<KG)W
      zPZ5`B`7*KlC^DS<bKi++&!%gOTim{QPB<_VRywq0vQ1&nny@F%z+M=(W{%ND`!fM9
      zFGINAw+xkEXtv8^Z+#@ZVmK`|&PKT0$1IPOgg4&p9AB^tvW9*tK%x`9Dn;4Of(TK(
      zqg<jG$mItJf6&Q?2z|qL^_(UuSfD)Nps<K2WrW8PmWeSo)?4v<tJD*Eahh}V61HBS
      z_{BbQE`KmUa#HY;h-<dsjsx=qWmk|!v5pO*71BeLBP~!u+CilVC1H~?32AqYtzU?M
      Bz^VWM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~ixX7=BI?2&~ITLrH0&ZKSPD7E5desf4zsK(#Gxkx&$>)@5@D3&}3CyXnY<
      z7k=FOaoZWcdZErZol$2h>Bvm0H@)!hc(1-^caz-!&Tz4tocEmbJn!?o?>YO|KfgZ#
      za2D%vL>LCw)O%{StQw`P#aGH)bFz6&<F>6Ym-(&bH44NLW9San)uXL@?=}q6Q5{~K
      zF7paE9ER9RSuHWJC5F}s-O!zj4AFFEfo3MnB9{<Fhm3Ye?O^DV5l0*S&gcfeS*<K{
      zYhI;P7!ot4rj{2}OBZ857;{#2o8jb4klz2v$T7&e9f)(2pqx5v?u4V6^qu{nEoBxY
      z%J;C0BakRxZIx^5v)roa<eh1Vxd9nRag3qI=33R_g=U^unjjcjRLfE~8BXnsm2A}M
      zxhml#UWnsVQ(+35w!<qjP9sfrmAF$7yt=b_Lp9VAw-}D5Ga+p|rgL#93@3IwIp;M-
      zAg&EBG90w48ygmNif7)W&~Hn~U|1A0%g~z+b2*l7lybtfvv@g<b7Wn>v?CMY>4?bI
      z190sl8QCBM0%C~R6^8yWNwZ!Obe>QGntE$YnuhIIRn0Li31b+Sk;4ST0kUk0Yh`LN
      zqcmAoZR)I^Cdb?$!BPiz1+Z>3j@KxeAXt|){ei|e9O{TTE;AeoEpQ#VT-D1(Zna^G
      z;rOH~4o|A0uJe@Xp1qXXIE>>d33&{Q*XuIgz*Ra<>c$2)iVSDMR(t0&*Hq~+S581&
      zmobAI3~i2Ca3`stO;Wumt-XX{IwWLG-aFYOg<&L2=(!T+b9JafbvD>V2e7@MmkiaR
      z!@!WAm>(Yx6>sl77k3d&%+Kd8<}&n-W1gWea5Qh*+!CbImSvKq)FOk0>ar#(nW|K6
      zCuQE_mZcYYN?aSM3U^k`qJ#q87A?EDqh;$p5=>W+oGX@kC6u|RpCQ?NLv3!<Z>i+Y
      z#hwO+&L&&MMV8Kl?}30e?4!6_R2j>-OPr0K<;B2i(YSQiH3~LM=hVH65AL!vm!UiG
      z{I2lCP$=iU)1V?OiBw85Zef;TG_=FDWM3EzQo*cR8o#28TfR5Aiaq~_MSbx+@kHrq
      zp$Fm%L2n5$@ztQnb2OSj#GR9r8e}E<8#;fbXawE#?xelIHCjJKJ7#czMzXgW3G~p2
      zx*xqhQkH%NON;Udoe$}c2h!>WZ-+Lw_?z32#36rkiB=1;!;jGyz3?MCl!0^oHS~WP
      zVFSvO2mk&ZWR)Z}K$(_TNRNRo`t5`15~Ms397l@Q5S*)7=<gvf23@U59P>%1X&j+d
      z?L?{wwt&Qw{t>}_OeCMU;7M<>pFM5!!6or2^C4%*EMY?OF-}}po}pXWMrJWFRKuAq
      zycFOkXdUnwy+0@XFUZ6%8xF;YVHB^>d_;T*edG^Ggh+O@|2~G5KQVS6r<Ff2wuM&{
      z7k)thHZCo0BfprKtYKQ&!j&yttKsHTrN61BN6<<jUlH-wRR3?N0N)~u?=XS~A(5jE
      zk)ysyCYqHJc+*X5&h4F9vPYyOZKJT5xLw0rPiYi&d&evL_aRKFfhl1LcSzPdw7T9;
      zOL&(e4DaEtFF5F@ExiAWODmev1OBPu7B!p?%*4_5H;+&nq7Kceg*)=+5JEjQ1`WlA
      tNbZW9qp=VvD??jYd4`tQ!>H))u*^pxnQ}v>yi2BttWsVKIw3@`_8(r$VE6z4
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-sW-5Pef?W2>zdKYoCCXb=p72kC}F@#7>YG$%c+=@?Sh4J2ECoCkk^KS~@m
      zHcAe;?CzU+Z{F<8`^W1WfK%*vXb}z<`b7su+a$>O$#Cp~skNEYj^|f~pV>MOZNjkP
      z-99daM(8K(N^Y82!rADiB3&3=6w3b-(LZH{`s*N1Md;4b#A>(9nJ^8b@wiblsTqY)
      zq$bLjlQ8(#RzWx#`45dX2?wIP<k;w(=he4Fznc~nzRS6gnGp7BO(_4Ka9#_C$BpLF
      zx=4GoY?;S=of?_MerdVd!pYZcI|Ra-tPg0*Qr6KC><MaNLvR;8Nf0*6dkg(leju;y
      HZ|3k5AkUV!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TT@$A7+srN%Hhx!D#eOcTeT$!#agshC@mzUBn^}TMxj`H5)R41!wKd>0WVc+
      zy;l3IzB%LMxi4wP&UkrprZ4svIj+4=;tB0x#+Q6#<=boR{e5eHn+N~=`Wt|gxD!Bw
      zK=-P#VGP=alOD{OE4G;`436b;##R7L0{gumFC|y`n?TEm<yeJLfyUloLZB&>T{bl|
      zqE$yTS_JmREytWLt|iUfypgm`fzEg~W!MQLXUXqXu&I!-@&bqAp280KVSzTsydHJ(
      z1;a^^<ydcBYRES7`Qd1=4s!R$Wyc>+yyBnPnl=k@(@7UH0$ug1s$9V+PsyA|IIF+<
      zb85^V&t`4Ya0CwekVb=x0s)z|Rp7DwQ^wttP{zpZmJ$-!LzcNrHpdP6)6B75%!xX?
      zX7Ge^FY&CC-i;*Y3PtR!u`5kPKo&EcEvk<D?<Op;mq`=0xn??r`K|RwyXse1x6|xH
      zUiRUPUqK%?K^@|*mrm{de`|vY4FWIecoD}m3}7&T6Lhs_Q^ly`Wt^l%t^7>RTC)n)
      z1`op<u_zax(s3NU0ldlsd+TJsH4Ndjj@NO91xpf07<SQJIWAWY>lndV_JpT({n72W
      z>+xVBfO9)`rF@`a6k|HZL33z%=?ss5PV!Iah~NSnO8%;Id<EvD0KL)SZJ#DG(`HV?
      zBrfWRV~Q-6QzsCW0+)2m;4*DT0cAU1`lzI*IqRw;9jIXzZ|X?kEmp@S;O#yp$rp4i
      z;)+`x*Rj6rG0FbUj_N4$YFNU%I<CQBbylREJ^qN~Pw7|&yCJJnwY#rCL<;b})J;d%
      z`5IPW=~%^kw8pZ!44y<-O04N{kmd0xQM)a^8eysNzQ6&m19BP|se<gmI`TRSD3T~e
      z)DsCwk?T4(vE|mu9U;CFAt~{}jwV+pmxgV8q~l|0aXslyGo>NfKhg0iK9dHkn{>Vc
      zi&Efofur6TqPA_O4SOt?F3KS=v6(X03s%<Aa1*Tp&4zq><dfko`ERf{Th6k%DIjRf
      z<_-7aw3xO#NIL3P)Mkb@mo4T}X2g=OkfvU>6Oxy2A1^E4K;TI<$Y+b+1N?T1Q7|_5
      z-NT-{{G$OHKQ%_sJWaTYHvXl%NsR4)XvJRatH%8*cA!(m19(EkE*w;`n{qP$5S~)8
      z2T!Z`3=XUKES^*G2#%`wJYHbb<Rns&Lxt+C94<k3!y>~yH4%H**Hb~?^gtQ?Kcc;_
      zr+=V=S4z0w|0jliKqrAeFjU5C6}(ZxFGNRc=x7<|D+rfxhv;Mtoh&0(!E^~*L}zR0
      zY#H+vyj?<y=u!<`D&uMe$r7fBuGG+#GBOp|C7dR@UPIT*$W^dW!V#j|HFUd-4=cD)
      zLfd`ZT)2l@zk9V$po?c8;eQrq(Jn^OEzaSvIFA7_h9My*T?jD|#)6o@H4)+6x_}Ka
      ziCZFy+aiXa#6|op;<ziOP!ZGkOU&SJaar}T&#fK4z?ZBctB9}gwd(Cdd_$~(#(02l
      qaT|^78cnad!U3%!ub7G)s48;qsmKwfB1egeyzk@|_>P|q`2JsgYgm{7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtYYjj*y75>gl(mS2pHq$AjX-Ob$DI}Rdwa|i18c5R?29g$=&=*Rb%-kdc)0uQ0
      zEk!8>s`3yYg=$-ErB%U4g;p^wR6<d)0=^X=<*{_B3!i^fmb!F_-@f<G+&hodh(D5h
      z?z#Ky{q4QKv(G;B{J)<Z1MpV7s==escvECcWPT!&9Gagt1`|d!JHI=X%w*HKXf~DB
      zP^B=ZT%;=+H8Pp_K*Crxa1+;Pn50l&F4t>p8ZfBEr*MAx*Q<=Ak&Z`~8PP-}9m&R1
      zNrkh!SFP;pUwwUd|Ekp+dsi(BuLv(+-KU_!3R6sEkz{sFB#|?`^g>gZ8Z(#2lSAE!
      zNG78&t;exsPPHpc?u!p4BiUTqP^c^Y-qGLR-btZa<Cdr~A}}^)w~ZK76}+KTR>VdK
      zc9W4c(s{8-slmaFkyV(~5l_amoeJLOmNg1h-Km)2hZi$-oQ*mz?TIIil{tw?e}uuK
      zg`QM2l2{W-$K~CgtjZ3@Y5hEx@d~*il)B>81Z`_L|IADC9#0!GvR3q+@J(-SaV^dV
      zu)ciOQZgA#t&S;}s-RKbN`^+^tRnHgY?}Jp{b)w3h8D)5Bttsp;R3GW`rcG5J{ULB
      znQ)R3PDT=DFqwSa{n1aW^L2#Krce{l^leLKhmCAJY6@>)zT+9jv@1O%eBi?C@+s@L
      z5=(sLsTEfi>6nh7sJ~pt+azb=l&tcj9UU5iI+lPLu8t;B$udu^-N4L<(dBtMnMOr>
      zmyT%&k|)OITqHqkXE(cIZ7*)wAfn54oCQDqNe$d2G;tzUu%YO#Z#a?}wrF-OdNuSY
      z1RPN-@H)a0Cto&Yy=%CR)G3u(nj0K6(tfPMOmV+Y$3<xK<9e*sKrYX6<nvt2r%K04
      ztW&t8IqX7dnX;6&yBSsV!3QQwHHp=C=y)e?WNacMBStc&(B_VfwQ77te!L3<8Y1IV
      zq3m!frXvcft+n)<#J0#<!H|vH<&U)yTGse5NW{%P4D-?E1Cyg#1b;%pKoY9~VsI@i
      z@|QJXQ!2*9t2j9liN%B(1#)tJNx9QYbMZvXNVmHQn@@o(&lit&DLI=u)-7J_vYr<#
      zFSYHRZ{Ac#|2kI8mNkCluvNnrg&7V#@(!D*C8@V4G&FZt;(+CtXt`Ac->q<w8&rNn
      zxcn(n-tNO~3Z72#Cx_cb!;TUSXP}K`o69py*vxTF$i88atx_`kzvh7a%BJjKTgC<3
      z`=$Qh&Ez+SC1}^<ULnhU3JWXl84KE(0;X`kjt}BPR-q{+(cI$dmghhbS!9oYM8{@u
      z%PTyfqY1NRv|GnV@i9`E1<dxNz)w*?j-E5Vde(S_y*l=ls3<OlK74{<ZORU(Q(H4;
      z@)9hl5@u?jIbMueRcn&Q)-aosNHWUOdttL%v;tWQmC|3ZpV9DXg(iosmbz@*Y(ENO
      z8Xhi|N+gV-NWyA+TvDGc>W;#;RC*}4$w)f&U&H4WLXORRLc+-{JpHBN=#Qk`2Zlm;
      z{21r=dxwj&d5x~t%{rbt&5V3e$D>l4<P0rzLK==JoLi2{O%n}YBJ!bRZhpC3uOU^n
      zppGob$oX*;j|<zsqHw8uFIPa=?s6c%QMo&g;(i``nfOrgv1d!LbdGS7_xul-%n*E4
      z#}&9#wC@#;KCR;t>vcE#N`|E?nM`Hv9<&I!UHDyCBL&g<&MLCAtE0cD_EwfFD!Zm~
      zD^o4(LIv5gI=+chJfI26>dlOpV}={#{9<ZUwo-%V@PdZt*+n{;t0=1D+nCKZ+W9C1
      zU<)M^CO+;>8PoI}_l9#8xWgbW{6NPK#f5V#yWn(olhQ^emtf;OgOY_Z(^ZHsP0pjY
      z6SMkL9Y4d1ba)(Hd9xZ$E6kmMQU!lsDwmELE8^0s2V9%$VhO6kt<1QK7<RqsbWP=H
      zUwUD3b3ZR*U6v|+sc?Gp0>@nf52~T@Zx$v)LSMs6kq0{e*pc(S)_f1}osFkCW_xQs
      z*<JEElV5l>q2vs{E$375S>1XJ^+!4IQZXp#;s150!Umkfk!}g00gZe+w`k@(zOi&-
      zHrH6j=a{Oy3aTH++#?jSR8KNh4NOoiZwZtaq|0n|zE-Lm#f7CB6E2OuGN3X;pvogR
      z2oo@S-GXM1iOI(pTpZB0A1=YVV<MWV;Vou{1nad7g+#ShG)@a(`(9L69rl(gzR#t&
      zwhXe&Sg~C&j$-T>NAd0nDrP~nW3YiwL0re^E<6Q|z%P^GC>EbYyA$iF%p&j*8F-M)
      zJLIxcSLT4sSPrlbSFm%XW9Q1sb{?gj$7tus1nn$Ew{2%9GayKtL(f3%L$&vC=p<CH
      zaHoxb4<o?gG7gtLRFaw?Ne?_l%VXSOPjgS5G_5yT`fM+$87puVtxe^IxtiO;<JuO@
      z1<!d8vk{4`M7TyUkiVn2rj!paxZJEM3#ZIj;pDBuQmQn961bZsS9Um0VAc9#czaLl
      zC{{0N*o#0z=s5b<hJx!yal_h>m_Lq<p`anJ-p)rbN9GnbF5qmVjK->Bhu{wdheTkf
      zS6Pz>-*_n$jGHP(akImSr3etfX~yd%X6j{Lre8rlUM1LHU=DtX7W|6z{WUJfZ+MS>
      zjWPQzR^xYA&vyfVKmva>-EOrUvE81I8?gyVx>--jlv$7#bMKCD<aI@QvmF$l^tFWo
      zlrbyD9!d%a7KO(4q3URBpkox-wcaI<U}nPs_*(;Q^4=P1STKrhYj=87Lul;a8?Utn
      z-!qEsYo!=^%wpJT*3Cb&=Kckf@K@H^*I7~j#v1x}=KUZ1CF6BmjDKPw{^erIBHV#H
      zse|@$7k1K<TBc9%OKo^>A%)BB6z)HP-1=$QaSZP>Q^%y;6KE2IA!hOe$MIo#?lPIP
      zJ<x1IAH{>cZDR*;L8#4ZI#I=RP7j%mwKZC9F@J4z>rbITi@j!#xh50}ew=<zVBskC
      zJL$eg4ioaYMzL{cIi0P%SfHwKnW{zy`M6B^5LT1<1A-45RSoaXI&M}|FrsRCbqnB5
      zHI0{;0QRWqX0R@0Sb_a^+H0`O44cAb7{md5lEGTRBg;zr?S+wZ0?A4#?21L{Ab}mC
      zHb1HKDSQTx;B%berKv!SFPOx*jo*bBjjVEqdqSt+^FD>gj-0^J^{t^}_;N3aG3vNn
      zClJ*NRI95nSzXQFy~3zh*SK=sXv422TaV#5jn;F`6L^w_9jGEDP(9L`)4Y;P6aUMJ
      zQ4Wd8K2Z$msZvN0LK+~XC?UlN$#}Dn2!dC@GeH?EhH|nL$`(S|N+`Dw$~Ho|_5XnK
      z48B%K*w@YI?B~0bxp@rAH+rRJ)sfy$;9I<^JPeKFBT}b?=f77Dv{~G)P`4A>4*sxq
      z2Y=hU6SFv;tL`%4StVzlojj_?cgz;58cp~vzDJ`Pzd0qRjx!=<)nQ9Mz^Ezd-|grP
      z@F`LOa_jqfZavo%a!{EEjJlhs?qR_0Wx%XHz|tPD(NwdT{)iaZQ&XGOf5|uN1o$yt
      zwC%-cP3#3}?<Zo<@AW>5pL@zJ?xMv9Xz@V=l+_?u7J~(gQ)uyYkwy7tQI_q!NnJMF
      U=99ma(yE6=U;e*rcYd$@2Whmeng9R*
      
      literal 0
      HcmV?d00001
      
      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
      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
      NdG<w?Q|^$a{{zQ4@0<Vt
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh2y<#Ii*FoW#6z{i4*goYdqJefQM7)S}E}$D*Rd%8<%}
      zRCWdyMg{?dI{&0BpfYv_Hbw?9geXimNCzW>czS9H)Ewvh+=BeP)VvaijFg6^4|ZMF
      xj0{}C`K3k4scxA$Kr=+q9ij))2eg%uff<Ndfxch_x{RHH1H@wB1d>b)TmYnWK7RlJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivy$%6E6ot?Ax0Z&=0}w%Bqb4e$k&qCLYIbvNM#hjaBwkJ70X&qrB%)C0&Pl#=
      z?>YC!^#-7aa)1n>u~lak8D-PR@y2lCqX}DfIvH_dlv7^sZGar1@+D{SRzN~EWxu=}
      zcrM(IJ-Z{J-fFL>U-WbIg{_p+DmL6FgbSTo<xh?Y&Hsr(XDFf4Vt;Z8kF}9h?YCz4
      Z^|nADWMv^h(mIcV_&{6+MN#2fm7c(IN%;T(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2Jx>Bb5PfspapnL))W*VSrzUzKmZ%MiA0aj<oyBslxO(g+yL<jGD-#Rt{T(*`
      z1q<UqOt3OGGxKKNy!m+hdVT@W!g7p&uze>UM4AgdO0B%fW#-dksijp}UyZczg_T`n
      z$HE_3Yix{=urh1u<ifdMbwa~&ugC||I%V|b=^=s62(^yU&I|1aA}?fgwR->Y{(ACB
      zDDNq)`~jh~u{j`w9dj)clrUdKf(oJDQ(B%E<Ds+{Vwg)pvu83MAb1SppJeE7l_R9R
      z*>3+hr%g!urm&gps)_X4AE)n3l(7!pl;6i+K!h^;m{EW^j#vy8wpGsTPB9Q|J)!nE
      drPSFbOa<Bqv5y8vRi-fs3uv+@EV2!-^bLJ?Y6t)T
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh4}q#Ii*FoW#6z{i4*goYdqJeb2nI{N%)v%=|o$#JrT8
      z)FO5U7DfgEghKzMETB3@2DVI~%Is7|hF}dJbXjX85tzZgsU;ctDb~?QQV^r8H8F)4
      z8Ms_4l2Z#n?kHww;ACVFM%WROQIubvn3Mywn=3fKv?w{%Efd5M!*IJEND~_)10w@7
      e(ANwMj6kojGOz*p>_8q1kmdklE+CtUfg1pG{ZO6&
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&2G~`6ot<uab1l2m(m|vC@rl};s6l~B%~r(1ds|53mVLN;tr{iv0>~KcnO|`
      zN}x(CcmN)N$3dKNtT?KIVB?uPbMAM~y`G=HzyAPm2YWUu0<AalM7ARt587J2j#QAf
      z58{&~kXe|-J*fvOd;Bp_?@VZ;Ca_#4j4uQhQ>8;0`AVl0zC3s&Af5`$b&@#EWSsdj
      z8Y=7F>5b37-tQ#>Gg*!nSm~C$-my+T$bO{uDYzfTVfH|v+GzR$wN7%R9I%iJ7fS+O
      zV`}2W;bEr3c(8A>7rJ4ro)6#lmF^k7K)uTrBVW=q<KnQE9fzsFtqI6KXF{v%)2-x%
      zM{SM=<)Dhorh|=h9Ta9KDwo4(`WM*v6&DUJavn-+<G&nRk;_B=taHCiV6D-d(3Vtz
      zS;{+dm~tG>VKUT#dJ>x1Z2k2C+%`qALpN1Ep$ax&VTO^NN3*CKi`-kNvBx>y%rm-6
      zwcu)dLY!gYG#A(Tb%+3-5z)mmckW1rOITqf7_SzHheQ~y?X{*Md?H@uh}Ds-KrjJo
      zbi~I<*ir#|L74IHdN*5VSod1ruvwa#&+qyq2FyIlsoNv{nCcc(WBDq!SX1B{whMln
      ktLfMBzGCwWHx&*B`JjM!qEl<!>CXQpf0~+nJuk8Q2LrFikpKVy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au}%U(5Pbs&m;(e+8#_C+kQif#!PuZC8Z<_c%4RtRU30fb_Vx_=Ra%)?SXkOy
      z`wjkpaUdqN+RV(GeKT+Ny??*F0@%cI0U5&ft-4c<P?_t7<zdKyYn-TX7~6;kXUeLG
      z9b5gtgYNx^55@tHoQ_Qa9${rRdY&4mquD#5n#h<6du$WoUmoof=$KG$$0l*gxSk4A
      z&OLs;eU3l+SA_hoHrnkGvh}qd!E46@_L0SW2|kL1N=F+$O`|^BuIh(OsCD8%1eC}K
      z{%v~hMkj=3XLj2^zSSc57jbF>KGYM5`X8*=m?&Wta=F+lt{{iJ<bt3K=A@FPC`v3z
      nXKRXq-1;-hPg6=oqAyfn2Oe6eN>vh?kg$N7WWu7v43>TXkUezR
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*V!A`<Z5S#_1NI^j`(LaETjb~5NVnR~X*yzFAqb~K4N1L<{6MxNvAK*tBx6cE5
      z+RV=E?CgGhe|!SC#Hoh{;cTPcRA5w|1tqTyr#4vfcEzQK7Gbbw?^YWj37u#j#@7$?
      zh(HTMKP>Xfs@y&)v*V^X6QO<oIExoyjX)S?Y$HyMDs`TPMpYGIG?~VGZ`Zscc%r;j
      zTPBSE@rkWRMbHz$vUt&J&84_BCsT>w>neHA?JHZIy52LPn-se;<r{6p%>TXUqF&gR
      r*r<awaE=4C1$hp21RwsvU9{u@K6<Dh(Z`Xi#~8Re#EH9Y<Yvb|!xBf{
      
      literal 0
      HcmV?d00001
      
      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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
      F{{ww(zl{I@
      
      literal 0
      HcmV?d00001
      
      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
      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
      G_{KkbVHr38
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh4}q#Ii*FoW#6z{i4*goYdqJ{eZ-x#N5=9)S}F))Rd6Q
      zf>d?}7DfgEghKzMETB4e1~x_pF@z{gJ4gpmB0aUlF}b8PF$ctVEJ`oUP0cGQW@M1o
      z(2VxMuFIN{fd{C~zdSFs2x5wqh9+*cTtKx!iRBQLT*3LJMaijdnK>ZKF}$D$vJvQB
      kMh0deW(5WSGtf`$3>*v~zi~2ffoX0K4V32rl1vP|0M$cMHvj+t
      
      literal 0
      HcmV?d00001
      
      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
      zcma)C34Bvky8pi1bCa8LTS7{ZQb0h!5?VH~XhF1;B9*e(4GWAVv}qeG38pCuE}+(Z
      z#%<JbMG>WLC@|21tgbjJu8a#Vqt3XG`y01;W8eRrdz0QmeeeCCx#v6UxBS25+~m1m
      zAKODj<N1(>Tuj54hE{~eHie=MW8>larf_Xy?7VpF+?B(NnnKOZGeWhASbU|21e338
      z=G-MqF_B51QBqtwor$M0r5DAb&52MnQ59-x32QilncTCBD`w7}E-9SlEtykMTsEVy
      zs91JrOh!?~+_IYTl2e)drCr;XC*qN4!(@YeOgTA@fh30|(G{`UP$CkG&J0ECn!@qP
      zqpFzFO6F9}omDLNGbod(+_}_Zd2$b%%?>9TV|9}kI)?1YqmJxi>Qz`YcTRal&78{8
      zQb=9|DN3xKagcXf$-K()nNmFP?k-PJeW0w8(z%676#*uXB5KCTnFBx;$}x)!rpWPf
      zbTsxURKt>*AO{P}p*E$%awcth<vcl3jd^I+oS{}NU=ro?3)M)CJg%&`qOxp`ocJ)v
      z(k^l%$QfPaBOs@Dk&l8b>>@YekS=O7OnPc@MR`SGMM;s|dJB|+4uuLyZv`wYqg0iY
      zRa6$1%FgywXZgJ1q7tjKgQ>SQvl~WsK)yM}^X0OgIIIxu!m_f$YT2<{DyCv)*<3Ze
      z7sEv}i;HFzK|6AIA2hH$7HeYa?=YhUt!XXw^#BbvXimh#p=GeDoLU?O@WRbt#ahvl
      zh%}9z9a@fw#@Q{Qra7TyVd!I-0t}{QJ28{QrVS_TJtY#2B&ITrbmA~M&2lpJIX#pJ
      zDFBP2SY0@cG@5TxIh_I7b4FEp2)68ZxN}$%q)|1^_Y%|ZOqxZdvQ=Z!Y%29oh^dcS
      zq=c9mYHoxeX|&jyUuV)Bn(L){YV=S8)6lN{e}h4jPNy<?K%+rtF=ak^)suUkc<hNi
      z`_{;RW8{bAW|>J*ib43$^5x-Z9aFATc-yg^e$~w&Y1sd4li~#B>dRXam4Lg*DUnKO
      zVLGad$>gd?Q(ZVN#W=^Lb16fbJXCvD8m*%9J#=2Tm}M<7=>obCHe4Zt)ZF^RjMIbP
      z+bpM1g4Rf@T*MUUNu(-+E`iv?l||+3OQj|*W6JAkb`OYDqD+>uTw&6cbQO~;0{wA`
      z-0b&qvp+Bmgff0}t(<tRN!QW!z-uCAan95?=g1{Ehv|<d&7+Jox{3bep_`eGX^6Ir
      z?b2})2o)=rhsz@k(NLl#9yaL~x)ss7A)F|V*2d}(r{~tIRKav?50WnE;cRK;+fBNI
      z?u5_Q$~03Ftp{d$)N7GJcXcy;k}aiZsjhV<-9zgU{v**uI9?yBl^*POx~Af9vOM-a
      zdF%$M6NeV9;ZZp0e&~CdocEwf4@vfnmPGvtk~@RS3@SIM(jdgZ{ub)}`_{PBe@VK7
      zqo3%IYqyy6XBqiC;M5YVAZME6I2%#_pB~8*!e!bMo2>))t&sw6H)#hwhVJmWwc+J5
      z3qs(`g*{8W%cR}3M^0WANm#K7;UuTz$k{T5_AZS?!*g1eEeXdfLQ9$u?fj+4v`tl^
      zctp~6r${tLaOOyd4BgDqt$0B66m<x30N8KN?}~%4KqQU!(_cLFEEIht94#44dXAn)
      zhyxDih2n_IFuepSxB}jf6fTVp&`TbA5h8YNsSIz@%k&BoK%{wIJOUj>RzPY5-UVKI
      zjsEJPgG?D+OG;zW29sW=Hy~6+^}J%R;1J3}l9%3+3lDV*Kht9^(4Um-9h2Ur_mBj^
      zds!Gx6_t#`g5CTyxz+n}s}H*IP!)^RdFbz0(ZyFqV?1__w2(m`L4`Ro79$|vM4w8J
      z{fucu4~TbgZiCXGFR*%)Wb;dtzLJr|12$#ilRI83@%^ny-=zZdMA`FSCjBebGv1&d
      zu?Nz`&p6d_L=quK7H@Kof1C8*at{MxUsaL@3EAIiGD-eD=fq`7iKCBQCTom})PuRD
      zu@ItUAg9D}lI_q{$OG&~#AlD3QPe{yGT4haJF3dyUVvwpI)9T_gVPb^Bd9;mf<_L|
      zmj<KI(^buDupgV{jPi0{7>!ZoIj}aPDHci?d=%4|Baf+!)`e@ELh*22%8tcJ-!?c4
      ze&DoTY7UA9gR{FGQyh=S;sy_58qjr2SxYn#Sr&F|c{Bn-iiFk~_#5ERU{d~6F_X4j
      zdRfBquykpQn%IhPyfG}b-%AbF)W&cQD5QmOO;b49kZ8otOW`SU9n^+`pk{e3Y#a|K
      zYOKEAsTh`A?n_80H`l0#6@wTRP+Fr^>8lOA&B=U(%^Jeda6FX20YRsh6bK|b<n6#A
      zngtG^nJ1Wh98UyaNnYXg$hNCE-{eVr0whVqiW)=l!gxHi5>g<p6!qc)p5kG|v~;E4
      zWQl0<NpdUE99b1M_+&d{jgj}NF;%l2yZ|&@XyU?D1pL;=;#N)B%{y&hJd$Y-7X!#$
      zc6Ds)Vcely3#WOxL}Kr>Wc8;mb|pxR4dJ+labX#(mN$oMTjG(#N_p2y;3|h4GCj5|
      z6p0!<2Xfbi>yZc4_LARuCZEn_R<xaN12vgSPI2no=KRR;>y+g%Y<X!vSD0MMxlmty
      zQ>Y=0OIQ`a&GPJO6V_jdSSKU>VazfOOUBIK6bNa5KmX2z+n&jEqLW#>*mE-5L;YuW
      zNmdq{9O5O2>R=_Qh8dA?6FlJmD)N#ttLc-yT*nn2>2r>fw%e36%xEyVkt4`O&0%;|
      zx8llX%7N-6=T#m?b?(?!+CCl)HQ9jyR~@r58a{V9j2^Bl7=oISV<;|p`C&pNH*}m~
      zS$A5CRjH=&Qe+soceBX}MtSa)*PWtJOEcu^R`omLm1DQAUJqw`_}p&kEESuicPbx-
      zP>#h8<iiz>B`X19L>+`1gcsLB_?B)*qx2Qa9Fx&+$1o9!Hz4q3_F#UwxGA)16?Ve~
      zA<J=WHyh#LfMYDhG7wkIsNti0C9a4)rJb(pXRN*+*7fr5rPHFmx2|l;X{X^r8V<oB
      z|KR28<S=rvqY#+}kqy4y%Qwogo4O@|^2S&kx#lJ>-y#Q5uRAIQ8PV`oCyXp{tHGxk
      zbkN{{L5E~wz1!q<d=GS<h*hHSJ?wVWLtL`EWYC;o@O{u2OGLFv=}}A%>{)snK$!fX
      z$*Ruw%IkLtvLIlfH7DW-1+wx6f!Hi}--NptZ-!-Z78c1uRYcWYT#v{#lJ#vSx3heU
      zAO{MgbrncCR`uP@b8Lnkc1ubH%y@BfORc=-Kn1mGYXoWJPKz;jG}*9vq@DMeyjPYj
      zUYN1ePI<0c)Vi+bB{Ek$Y4TJ2G~__cI82>Ac$nRV*B70g9!C8;tSi`;G&O}ALQRG7
      zhL&aFXd(qSgP%h|FVkqau6an+>>*9Eid8Sin$vhct&waTF!@D(32dNZVmhIRFzC?8
      zZ!;!C^D8F5DpQ?->y|2e&}<H$-4c%0LT#CjeeARYKS?W(wZv<~Ga~Xvk*11$RRtj!
      zl|+%fm4}9#J@Tq&D#Cv8NaIif%C|WqX#nZu2IT?eA_KJ7L8pQ4<)BT_>6DS0-y3uv
      z2ki&lmjbDAxnDmAE!Q9Ap!<W)a?k@nXFKSDpa(hV!Jv<J&_h5Eb<o2=ALF2hgC60a
      zrM$;F=p4|a9CQ%$Xa}7OI?q9m0X^11j{`m4K~DgEoP(YS`gjMO4|<Y=J^}QJ4!QvJ
      zWCuM3^hpkSD(I6P^eLbV9rQHNMGks8=wb&w1N5m5dM4-+2Ynj(<r^<x!7tx;sVClO
      zsV81)s3%@n;pxL)IaR>Yl>m;!5b(q&1v{uJxRa`@J80oHTGZ7%6V1iwU9yd8gQK@n
      zcpF86TWOJhX*)H|5BkP;&~i*kRAX$#c3Rm%tNj<ZQ!B{J+v)0dx@H^Q5Da3;4cd0P
      zv4d`t3xfW&b_?_F-h(dfq&DgslqcLha6$*&i>_7|4^+eJIzI~vxy+YlEpF?e2dvh^
      zc1u&_R*LKqi)B+y5BfKzCib>l_P`@Hxs}fJKdK}N>i)I<jegAAEH{t?+th&Cv<~d`
      z2}*W4BzrqsU7Z8(==?S)&)p1_x@a#xF9WDai;~bPskb(t251XtgtnaWv=uZ-TSX^n
      z=hK<m1r*g*)4AHkbdlCdmuZ*Mjd<RzT}}6C*U&@Sb+k>pf%a-Q(o@<k^pbWv9n|im
      z_q4m{Q*9l6sja6UwTGCsjqKC5@BnQqkI=U9I6Nn5+j)w%llFm^APH$$dYqmBC0kF@
      zQ!x7_aLlLaDtrMk3;<FsaF3TF79@-o1e4xG;%%rPl09KgUOPQgAhdj4<hy;od{4G<
      zFZr{5tM4UmtH;$w?p6<Hi9KuSidK(?M%PF>C`^_Uw0xtDYFa%aO9YGw1>S&xfy{u>
      zHCfIIxIOFC^j0@#dE4oQTPdg2<H_=Fp;zytUh?_o1~T3GIwrJ{8PN56$gP8vIUA>~
      z>%1%A$v43A+XY@Z{cjs2mzdkv-Vc;V@eGO5wESLLzS%~B+<-a3{~_jz{9bL8-fD8d
      z%*Ae>2YTH`Xt@{Xr?q;#0gtH5H>H>O|ItAo7o=<X8FFg~8pxQioj#FxY0cn3hT`S(
      ztaSh9=*sfiLqT631yk_%&m=Ij(%b24o5+P0J$f67!$9gY1D?e`BaqezY=09BxW(Nh
      z#V~xHfUe*kaLbJY9y#oTFMl8GLtEt|D1ho8{6E>KPL6G{#*$v?Z}Y>E6z;P-=$D`m
      z5dR)BtffOiJY-iN+O5|3|6@5W(4eG$B<MqQ_&ylOz$~Q)Ww)VNuv0C-22f51{c1bB
      zJ>6|}Gq8hUwPrrnbf`6YYLS1Vj4i&L?W`lRsJTj+t(j~f${@U0e5(-!6X+frDx|mp
      zlc290Tf!)4+jf};&B*{Em9#^h=g#D`Og8;~TM5wP_tLe$w=tBCnb6MnZM4(I(e3Ej
      zr`86uyj{Zep?1{?0c5Y_9Sb<a3XGZD+u~XFXEMOB+Qx=M5DE4TBu_-}!igo|fitZh
      zL@o48vK>Lrc~td`Knn)MSaymp$-uo56@6$Eh9r_tLEAD)CihF4V*v((z8d+NQa^_M
      z8#B4Tt&TplR}Kec^p*Quq{3b>U?|X;@-vvp1MD4DC_Zd#pf#otb4(Aba}`7+yUKl}
      z@4eG~n$M_{=cvu)hxC;KdF)`@dGy>pjnWyu3FfMNB3;uT4EC_|m#Kj5dIayaN!w2z
      z?O96K{z5+OIm*<Yr=zq3G*EkqhG{QTj`k{z)(+Bm?RA={y+Kp7H))#o7L{m+s8oBK
      z%CvW>QhSdUX@8?7+6NTTKBSoT4~lCaBglV3=V_nPh1zEb^k2}G+CS-5?JK%N`<m|2
      zzNP!M?-20crgrTIdQAI~_Gv%Sv)a$}qV@~DuKk<d(f&h!(|)B7wNCm7@%#&c*NZ}<
      zABCV_1hEiq_6mc03orXcFYYf)K1QVTD3QUF@SG-kbD8MNXNZ1WC;Ic*VgRoeWB5uj
      zj&BhY_#rWoH;a7k5GU|%aUwq@3ix?3nP0~9H8F+X5-0KdVk&<jPUi3M{FgX|e-VW)
      z64P96G2N9eid}uh4A)?Bs%xm2={i=N=E@VZT*rx0*HkgbRV?PZs>D3kB2ngQ5aq78
      zsC2CqRj$j$eAgev8Lr#$Tq~+w_u}~=`ZtONuI*x>>q)W5^^7>v^#b;MS1fUTC~94w
      zi8|NUBJBDR&tF8nt5Y;+LNscoh-m%9Qf;tk(ng47+HoSP6^NKtB$jIn#o1aj+ABm{
      zyHGT1SBQjmooLZ+6DzcP#5vl-Vx`tDF3@(13$^`Xwf3U8NPA6Oq8$>g+DGD2?F(_4
      z_N};F`$=4({aakA{VJ{!ZgGY1imQcBTr2vC>qWM>Q4A3`i;?0Mkt=Q!lf)fjidZYA
      ziMz#2agQh$>qWKLAkGx`i#qY3SSlVCE6}$_JSr{~o3YbY?9eW56+5tM7e@AqN5tb|
      zyLeLU5l@S!#53Y$JP(OyRboGgw2kzfOzddMB#zg@;%y#6>ygYo;vl}e8H&m-UA%}i
      zzaFK4Pdv}ZV4hBy;#nS!mYa?ePw@z}Jg5{KcqCc|Euy)6EWLr-#A9M8=cvAYBAZ94
      zz7MsZIf%YA`bhhMM{_Q28K2TXwbtbR+LN4zQD6{-$Qab2=@_v_GhD;*-HkjWLsU`F
      zZaq#}Rtp8nSeCaNS(UCPH*PEVF#+<^qIMoHi!nSF?=ohq9{ReSkDrsbCtsil$PI|R
      zfS7oFMXTrxh&wvJQ?t9K<nGBwO7-Wq>YV{SPffz)fVi{sYs{?O!6)MSyg1*Tiv;WT
      z8LO_Z$n|*x?&~WudFpmPrNHBJ@1_IQS|(2~uNMAQ<<)v7&nT~UZ{eBc)gJX}Wb&-?
      z0wc?l$+NSJcAhJ%53!BQ<yx&;8;zAX>;|mO#mb#rQmu7x6_(2;;+1S0eyyF)C@)CM
      z@^V&MJ1^Qt2MT&+_42p1b4`JnWn#nHER(TOq@C-tdTlDe@}<>QGHH^@#M91EnG*SI
      z*^KYw6?>u53wSUe&F26ZvPQiI7cBxn{Ni;QB;KH*;!PSZ-l9A_j~9pN6aZ?vc!y?+
      zcWIV*j~3urBR-%e@gc1cf2Rw?Cv>U!lzxxDKZ(!i0r5F)MEg<k1??1H(c|J9dKP~l
      zif`#F@g2g|H}r$}o;C3!o8l*gsb6@Y_-{U1{K`XhR*=3%UQxIx32D3xUdgM#xu3`L
      zd3-83AH*a1e7*pX9tuE9zzdp5|5o79sR>^|U5Gw6T}rp{YCzRPkJ55p1LzyHlj@W^
      zc<Bck#TW6#l*Srhc?stAViUiOY2`}++MzUzhwx=s>ylsKSYX7p%!PkMy(F%(Z)oSs
      z=cn=q`~X9`Nojhz5~QCsH7N+Z!}3j+{1V^Za2AA+8)m8vfjGHm&l~q6zkZZs<IL2?
      znW>HO<&(W}oxO36wQ+xIW1mkw=l^e~Wnd-gLnxpRrDOGBjuUfIC+4J1#1~WciC5Vt
      z7G%5D;Zk6%N8RGiMiNFPl9TOQvyP6!O<_H5PClQkAW&RlBtzA~igMhYhQU&#=R%cv
      z)K?!vL-cVpQXfxa^y6uwo=+$0Cph>jNbyyW<V$`DX7hCb=s>ol)3vF&s+=;!)HWKP
      zs|qPYN4r1zahEXMXq&kxKW`)5Gd0_D4{8SA0MDSt#kLr}pf4~;N~D<YvV4JrtUe7_
      z=pyp!(<wv8eO<>rT|bqE>NCN53FYah(O7*J*e|6beJ;(?=g~a9Oo^ecXZR6`eLX|V
      zj^cDW%lIonH<zyhsDT#wou4h*i)w^u!RRe~^#(%3xn>iZ*Q(|XviV2VyjeE?q?)(M
      z=1kSR9ZgwYV%Z(C7j-3?cgkL91I@LYcoP(7g^C$?M@0G}+(~{%z4S8y#v1CUFQ!3y
      z2r@3A9KDuu^*TCE57Q*Qo~G&zG)-@$5<Nn*^`%sypG9Zr%N%A~kdk+SazDHnl)o&n
      zWxLom+l1ig4!&!4Zac4^s@^SRGD^eMgDhX!FsKi8UI?ez0K2KenICvK#j^$FmADqJ
      z0?+3;bUh(;_5^+y*27Cp%H@q{x!|YA@*|e6<qt7zel9?^lrYKzKlH#!?p=Dd=JQlm
      zi-D4p%4&U};-qp8m|Rtz*TIi=9LdV%VC4#+`AP>Xc_~)%c#F--vHWKwb{7pn(zGI-
      zOa3^+W~IdTwDjO;Tqo=|DThma6Y2WRK;umgji;xMN>6DVzsIn*eHRkK?dbGiE-LhV
      zJ(!mzI(Tco+mNzm`;5g9Qv`Hd-hgfiT<un=5@Vi#+v+OtC?#Zh4%dR^*KGjN{p8ah
      zgp)i706j$G^oOYs?IL}nVz<m<B*pIOyd4Gt^5GDdC?m<1)D~iua*_-f$3v&_4(LtC
      zi>*R_3@tYzc81cR{6QyPg4?3*#vC_RmMCLRl>$GIFO-}<6GAF<!KN0vDj}k<r1k`a
      zEuwCTs2?ukV6Z{@V=(kiO4oP6Pj<mKb|Yl%qRILmCEir)@RWEZw&B4L{9R%YjPp(i
      zfU1qA@Gi6j-YHt5=nw^8MOdOBDoDYJUIrG9pPjpBswOL;EL1`hZ$)IoL%vsWBeJy$
      z4v0bPIzPeZ-K3A+Bwt<t%pVu%S$aUU^X@jfNG`~SMb}aQW<|Kpz?fSmx;6^IzMjtY
      zG%^dO--luMsx>MHN_q|G*o79|M)|VqeRP?JO>wVE%{qKllE2kiI$ncxMV<wC`%L-^
      z!1Dnz^j8pFU!}qNYlu3pP*6Vz@cfk~=(vmNZvsGX(G2}<D%IaXw0W0m_4nv3{e3!5
      z|A4O1Kccnz$Fy1hgdWGd=k(8&HD+4+OIhP(J0j@#70o`B8S;(#vvx#~Iov8ZrqGT2
      zII3D5e=U5z0-H;IV`D>X7i=fvMFnzg?dTo+gp2lZ$?V+ybh7NROU<c+GWnTxl(Ccd
      z<0ZgfI{5j$vI-o8B2bpMwWD))@C*3SBif5b%Qs4hgD>CE<?AC+o0I-Cbn*+3_8;iw
      zR~n&r(m0^|L^o5h+eLHSLdj`mnTnL075thCHyJd8p5}v)b1;p=t3fNv{1v>r_;r2*
      QPkf1luaVy5w`jos0KpAE<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i-A)rx6ouFB^oQ1JOKU-af<RST8c_^aAc<*WLQ;PcNfY(Pp&aaxvBha?<XYZ?
      zpwZrd#zZtht=yUTAjYRq*O^Xe#dt9@`|Q2XS>IWEzW+LC1Gs{02tL91y7|<cvCZnE
      z8Aq+zs@#~l<J6vQX59Dk=7tKvFNk;BZm+DfOAxec=Bjc8gT-#KV4L-N(JjmiB38Ab
      zoHeto>Vm|B<9+N1E?8Bou_(w-9j|(){JSe#68H<XRTY7OlTn0mN?=T7OJNW+iU5K-
      zN<<MtpCDGWs_Itr@rrVm%@td*QmmCtyJR|+UVBM@qhgVAvIpZoh7h~2V%94f!4+Q8
      zAVX0M;ta`jNgzvnEM8DOX___<PW4`}<KcYvz93L*RJ4nU9$~L6@NLlO$lY4gDXSZn
      zW{<dYxuhKzM3<^n<+z@!dI%Rei|#1?q8EgZ28zpc$KXHULtLB1D6XyIS7*bBuzrHk
      zJ$C3!EcX%7-1I(!{66~MG37&&?*#mSZ1V@%L0DdJ4li+<`E#9ZNMV309^lG|8)+dQ
      z1!$Hh^PJsUW-j+0v2O?&Ektzq0cRJCYb~UP<6{*j`bTD&dbqIVlM%ga@BIEbyvvOp
      zm;s7Fc9E1l&fyK+*uzzM+XFP`0VOekVT@2dg;As#X`oSzc|a}V@M0)TA3|<wlsuo;
      zh`Xwc``g<H7`w(|3xhhBp4G|p>?@t!G9>Nc{qT43CbYqFfPj2LT0Ub;z91uQB7Vgj
      t<Lh$hqUJi%N8T0a<~YFuSS0oUQOB9l&<5j4_xc%}=U0zSZ~;>o`U8PD%$5KE
      
      literal 0
      HcmV?d00001
      
      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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
      Z^8X8Uz02`$9HSiH#CEp90&ii*e*qgh%TxdW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-%0{O6vn?Xbz{{uODiJ~A}WoRt_?3T0%M8D6zXnVN1Iq@VgCd@j1SS3&_xf>
      zOY|CDMQ2x0>CeTU;T*p6`@Wfd|9X7`aDr_OF^1ho{=^NNtAXK)zAY@@xS5>S!W~M_
      zlaA65XV{5^p0EN}`p?E0_oOwKFyuVpN^W<A8?LmQ=M3zUA=7Y_=X2$ExE+W@|D#<V
      znV%zu<f&BBuQL=5%z1{E?@BeO9d;Pv4W}n`EMX-L9Vv#aDV4YihF#&_@~$ly@}^^v
      zB`0I*r^C4aAU%e?1?s;ytC5Z3!wB^&1jGIx(H5|?uwlxLFlB*3<CaekKne7g6S$VR
      zkYUu~uU9<|4e38HS_ah;5=hdiQ5VB9eS|=YYMLf>>SJ^!E7dVFFOeooRgb23w0n;n
      z^~H$_tH@JFdaPlc7$K`LWi`n$^wcWVqcMs<VLe(B5v)9s&0yLTMyuE)Y#4EiKrxiQ
      E0WIK!Z~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh3C0#Ii*FoW#6z{i4*goYdqJ{gBFnRCWdyMg{?doPSal
      sP>PX(D>%QjC^^+FGbfdiffJ-s52T2Vk%5tc8E7mBFfy<LNhSt10B80YmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(KTpFj5XIlMl#ueTMZki@oGe7FO~rr^EC_}K7A7|wkt^dM;~??X82A8uD8#iO
      z)rbxZwtUaOdpbXVe7?N{IL1zd4&iXBUQ}k3tux0DhAW?yuTOldoK_RV5mpF;1#>-_
      z3KC(Ju)k2lPC{I>KW$oj|4cYY(!0y$U{2T*@`5cpU7c}dlv7?emXIXrlBU0;Sj2^{
      zt@5p7LN7_nQnW~HuhgR`yT6PI@3gH2=od}vDn8dnm|^(dquH#4n{hcB{cnVm0Q*iS
      r50o&OTtXvsW%c9(x)N-JHOvBz(HC`H)DAYJ-o)1YyglCsKR3fKr009*
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&u-H|5XQerow}rMOH=xX@TU!28V3<L7r`Nb1d2GcN$wkGNf$Y5u-Cwer{F<A
      z0#)L`1MmbKco8H7j5k&sfe*cScV_4N%{S})_WR3M0C#cIMTKztg?KGGq0o~~ET4xm
      zFr9%O%ODi79QRM-=#3bK^3mHszBDS*E*wIm&>W}QsA+LdxR}UTiEt?6gzE=S9unv&
      zVXYhK#0YJMB1~n~dH?-K^7Gdp!dCi!JHmFa=rMP3L|DG3v@-VzdxxbJts%kbMq^n6
      zTk+swli-)vE&xtUtn}n4Q*ZQ?me11ZNXGqabV9us1w4@8u{h3?jyY8c;m!i&Jom>V
      zR0EMF>~9HsnZL{b_{*&<aEtj{!wWpt6%RG665Odw5;3t3i`&Zegq?{rCBKred)O+a
      z6INK#&D;@cCs7&)^0CTppjpD1KMDJS&}3sv{H`i!po(RVTpO*Rp1I|{!#NLY{9Whh
      z0asUeb^SJ-VdJAMuJgBM(|tw^u*LDttPGd1%@GSYv&xVRwwc3@8J0Eo{9Ela?E3A`
      zXcWYCdp2TXz{;_u9?a_JR4=D816Og4dlIf=Kj(LNCFWQCPiTDLO@*g|of3Fuf!?ej
      R2NDj>Cw^BdZrT<%{sKB{(0>2`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK+iuf95Iqy;;u;r<ftI#h3KXf~fdCIkC=rsCgp1^+Rbxf82t^xr8(bM%a@`94
      z3e*QA9{2!03NgD*l{9TZ!jflp&zw24v$MZ`|M&^uDIQi(AS~{SBT<V)JglX1FOor4
      z>#c95$>%Q>6bW<V@Wx=DqlD!*Zm-?%xc*yquiJiqb8F+>cE9Pl-7bN42utTPTCVRB
      zR!#>y?Jd`DpVlxNK@`Se_L5+%ReOYDGuf3hAk5k*p{!O{Y*g~qRU0PCjCf%zJBObJ
      zGWEqEk_5*~0ul8@8mj#WEH|{Y1q1UouES#a>|=Pqjd|l{r|zQ8rH3-p_tK2S0ka!x
      z6LgJviP)8C{rxmvubx2&<w&y$3)8`o48aQHOs0DxkX+6=D@(9X&eRf_AawrkNGHAO
      z?pC!`dfc-!l(9@jCMO$Tzo^PYBNs`YcN11OIZOljDpVu0N00BZ8U>#4pbdVk22Ysh
      z&MQ+*U3;E6`w}BFu$Xs=cQ4qhZ`L@5&Hv@%G3LH8P=LeML6Pk<wslTx!A2F=bd-&H
      z3L}{sdnHtQ^c^?G>17S(DRxf40&X(V#3Gg$QD=D0zQDdfUzOE`^UM#r*nA$vGH!8P
      eF>d1y=a{&Qm49j+{Y`^R+{1m=Bs|c{tA7BGa@!XG
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh3a8#Ii*FoW#6z{i4*goYdqJ{qW43l;p&sl#t4TRCWdy
      zMg{?d8vmp$pb~ZlHbw?9geXiWNCzVWUwUeZPkwo7kyCzYUP>_|gS3Wbv=4UG))3{P
      z1qBG@T*3LJMaijdnK?ki1d&~%2Qma`H6sHv5VHck!31<3I|By;$eElV8Ys>M5@+BB
      E09&g)=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVz34B!bwf{MHnT-JgWC9@x3@VUJ!XjXRun8exFaabi0*VaDBn&1qF_|D(chS<?
      z+UK*{$0CbTqdu!hH9=`n>wDI^_C1%@wJx<<Yu#(Bt>*tdzkBb@&F1s3pO2Y)fA@FK
      zIlpthXZ!swk9~FjaUwdIKk<^rl)WXoH9Dy&n%X>RLA+sMtTx^hZS<1Cl%<|DMiUK_
      zmbNu*inVyj<IGp1<;kYzXiIccV~oiYPo!2y8<}#dx)H2Qq+$)RmRU?@Yi(3!awU_$
      zxdn_`<H-crw8mQE(Z<!W7P((lxe!y9FbynECR$TbMYSzvuKaaq&F7aDE@Lv*Rjj~I
      z4?ecw;G-{FT7kbSE0!|(RxDe!bm2Lxmg`tCF$Jvqh0E3~l@SITYoxrQvZ`|FVi|-^
      z23UiOs+KKVAwzn4-f8oz7TM&Wp~2QXHR#YZyAM~au28I?xgpl<RZEvvlvmW$%wMrq
      zXnP^$?Ape7BA%KHu?ve<V~OR-x|pAesMt#pN9B%*Y>ftK2>Ak7(}W;Rq)D*AY@5c&
      z!oE#VS+v@Z`6tVpLxuX(APpm*jGZD^YHWItvaPY1ay1mIsfs6J764XSwjNrQgeg}?
      zVK&&_9yAI;KR`Oo6?w)9)l-8sfC2$<S`egif?>T|qm6B`W%W$Cg-eS17E|6_6eO=D
      z#c4tEQvfPSZH~7>KOn%AS6JzKw;I?5SW>ZVsaYZdQ?-aNJ3!0m3@<Hb3S}VanjEAR
      zRKpZ(h^3Zi;0Oy;3XN4kT1{&J+m>WoqK;{jTdOWAvwAEe14ON<mT7oDg2G-cvDUW6
      z6qW{6!035}OZu5>Eoy@-YCY3rw;*s?$HV%48CpxUH8GXgFDl=yNwvfi4YT@vNmNiP
      z9I^CJA1{i;L#?;n^u(|(nlAC=g_HYv*1t7HEel-)yD47TdW#5ou4r+guwbApP_eBx
      z)|^5#Y4uW)X>`v(wkX-s6iuaP1?W7&%$9B;Z(*_x;0{uX+CVYhTA8R9|3Uy0PV3~I
      z^MkZao|^I2rO~Bcx&Y?Ru(C9~pe^257i;m+h0s?#0r<x2!qJw7wx(DjRTd7=cB+*>
      zmjvljx(uj@HaEuvZ~5TTOTRX?S@OmeLE1rAB6_5f7Apjb!rrf7ZbDd`M>~V`J^DTt
      zS*Mn^GFg>OG%Sdx;8wDvB_<8-QvaC<OA?v7><gM^QkFI5jF{rpHw5V?^dEp%bMkyK
      zd}R+;aF8i;cL!+??S-^Wz<j*9aXZt*e$enWRQ3gFzi{-oZjRTds$%uxKAY4Md`-v|
      z@z&NTc*M3fClk;wF6&|mF*bq*ufts7&NQlUeR*Z&*TU*nfz@q@SZb;uON%2}Y3s{j
      zqhx)3YYcSs#u&zoRII6447R?!Uy=X`9v7|l(Gh^e)<G=1apL&aa6A!)e<HsI=pO3u
      z(!ET>GB7INj1*g&inRo(la4~5c<aJ=LtGYKSYEWwNB1+0Y)c@3B^wg)3u1NQTIY>$
      zG^GIc3&GYeMMB3yE|+y6<)a6%JPVNz$qT<iYU#`IzZR7LC2#(>uqy8jMTeE3w_5%@
      zDzkqB2ep*^wUi$Z(i0M{J<xeWYO{}?Vj7f4hU-Kbt>M;KEFmO+8>IiC|HZU;0(Awn
      zR8Uy?wW1VJt&g6A#GvKiCS0FvY)qby02z*jlP%#2Fa54taIhRMK+n^y0eX>M_R>qp
      z?-`?|bM!0pDnN)TsWpbNenM%bk6uG`07~nDRanrGLyD$UR92y@m|!+1<3dHROX9CD
      z5o?I1;#(1t7@3BF%-pY0;q&yk2>h2Iy+?nAf&?b>K}HgHxj^rOAbm(5fu~ZbAhx`+
      z2(o>`G@@^S30j_~zXj<t`nxz~+oo2PR#2T4R`!84#G>cvbEyTsU>fHJ*RoApVzo%$
      zz2u+eqkmy-6XeaWgi)6$u`k+v)f7%LMmA#&d|8LH6fSXIM-p&Xy;3|z>kxZ;Mka?$
      zkI3W<BfhaW$Oi2Vu%8Eb8THDb3>YM51v$tALB1)vO%w~|pbFNL%_pnBQ<y4x1Ve|m
      zr4S{k&`H-huJKIS4*fC@g(PeO9xz8rLWc~7f}F#{VReNWAZCP<DthWbX6FWZ7$d|p
      z=OJthF;885YrGEcbt{8hocmL$mq)_~Gs>9X5>IVzilySU>GbR6F-#|9rc^dI0@#i7
      z?If9=C-R&a<a|D<cM;^MD~-CI%R-%}3OV?6HHvGd#r-JUofcL|>1V&;V6!LT02gw^
      z%SFJvT7r7+elf_!61Tj`7LbxeG{R*&_e8*NQ9nZU_eMW}^fCH@;c-ikVQ1apCM+B-
      z%VDVpig-$pr>cnB8gD=XlA%+AT*}iCi!5``Pt>i5HAUkIR4~0w@1*yl^)B&T6`zl1
      zf|9esa3WS4Lwau69^g@y0J8;@bNaxdLs>+c7vxiUKB7yl>NaC5QPA~UW1?~|;_@Jh
      zzzS$Q6>CkQzOh0avOfam`88G(>PI04E~~{Jh^pty`h3=+rT8)tv865=-p|q?4kDtU
      zBZk?AC=dW^PPV$#Wo$+~hZI7!H3|Cu7DtzY<eDI_6weA-TvsO5qFbb|LW|T}+YZ8e
      zYTFs_Ev)lIxSc6}Qy^FCg1lZLfmz>}OrqpqK0C-8_#6osv6QWzk(uz_3-2iAuE1jA
      zN_$9zz0Kh;E~<3OMFd2@G;qr;wfdla`_gNh6(J^eUR$&gO7GTgIEeuTH}koIg-u8Y
      zz<|5?uqR;&o1?9Wk##Yd-5lie1m8YOR8gwlBt_i7rsUSxa!I9D1=+iDbygr`wg&lp
      z28afw-&zrG*o*;2!NGh%kXz;Pz_x_i;Hb0hr$;xn3K}mC@`VC&qq(sS1I(96S6m}k
      zsNg43J=#>hGRRl)chPI37j+!Q3R5Gy#cB65go^=9wXV+94<}xkEZ>|&F{%Sqz+M`n
      z4A$ET8w{RJ@djnIVX0(Aq5-Wvc3%=Qgui$kt=m$u4Ft>!Vl7D+V_+(|yb%$=n&9Oh
      zJ8`aC30Yr{>XolURma!yPf*n{iuAm`Ye1PhOXi^^xRm$w-Iw+*1QxWVU%U}D9`952
      zY@el_Gf{A=wE{18#O)<ARLF5SZYr4xTVk`H!ds+S8RC9Wu}$UDBEB`qn>p^|+mW@F
      zO3{e%aE3s*C5GLtR<s`|&XNivcLe!no+Ff@*`ck_b@R%WXdIh94eKm5dsSs8QOMtj
      zuFSzuVbKzK>*ql}%y**=h0jJMXelfg7A*pb=!yUz<@>#SAK;ToqKjmvR6NI+#=0vl
      z%aBesQz}t&VUnZ#%OKyw=syNnEn<e#LNt(!wxFER7IdrJ`k-gE&L~FC<NpfsaelzZ
      zkDxhKu_cVi8b$t(wS;GfCr^|;f&br(D*?ypjeABXA3w%)qSIf8Yom!oG8Ntw3!_1o
      zN<MCP@e@V3C(uFjlM-+oaxR1b8$*;sFWA0Z^24(Fm9d0AYxi%ueEdI5V-n$}wpK-Y
      zQ!I5px{vVWa5PaDp6UE2MT&cA)!(dqdlpSKtD5b3i5!U3dRrr4GboJ<1w``_t5@%m
      zKr+S0uQ1J!2rEFeqgNPrsbn(T2zA786|Rq`pa5K?HphU{R9j0ToZ8-uxQJBQ)C_CG
      z-<@D-!=3r{Apf54_VJrAd`}Lxe$#}b31I+XH*HVF6nYdHtf8=Ifsfz*CM3f0E*x_K
      z@Z7pN*<#^6L#M{a?=g-4KSc?vmq7?ApwE<o3OrDgY-_2FEsD#=^x%x@CW<4$7i*B%
      zqtFwco@y023L#5XyKZlusgcZ9`0Vb*kdsN~&Z04JRvrIipM^Bp-^7-RCcB&J7dxf+
      z9Z5kNh&hAQ*kH<)y;@x7%KohS#h$GC4Pm}BF9*+uyY5HeKG$_W5_fs7`+VFNxb8>c
      zezfa8jQcUJ`x9_~qU-)7IvvuFrE!p8Jfx{51AmE%j}fmuLWO!KmHeD0TX$2eyJ^;4
      zsdYEwZcNvx41Y&K6-3jJ6sKa@v%sp1@@WAG&!-3#Vnk-j?mhN&ZH8w-kuo+S(n)h7
      z`n@zSl6U1%ntv}<$lc-$^&F_1s0IR-K-H_Dywy<E8bvk7qCu5PrJzPj)FOq`={BdU
      zF-I0x9LejXs*(;`x{Jm{@VjzpWWqgEAsq3$7)<4N9z@A7x0Y515n`}w1K4bah2wMr
      zZNbtSl@Jk&d|HTNTL`eEGifc@4~1as@K>;d9bj9q^|+VwgW(w!jQ$!8wAvbI1E982
      z4xR7P!0<Hl;b1QC6Gms*jD7?*qQgm%(VcYm1f_wo5&W(!Ga|W$tpmAGN|1}bw6Ft2
      zu7no83ncG^fxid*d>?Fn;L^gRv>=mgLBLjNLC0HpN(+V(?i^dVA3!)UPf4U$fc35H
      zvxhvi7t7uU9{a)N0I+@#+P~Q)SxH*5650stv+%U-Gpw6^qPAoi;1qY#rf((K-B8&P
      zsO%mX|6Ty61HkD7aPD&nR-6`0fD==K^$nbQTd;XhnfQ*^QdtJA0X6(9XyaiQIJ{{F
      zUVG&Nj!8DLO?XF8n4LjkvA9HjA5QqV4Z$bj=1)P_Pb)5A>-{vB?6iKfRczG2X(D{b
      ziZr`1TfjIuQk)Nae`_?pf>pi>o4<xLuGbL@-#{#T6RUbl$u!O4k(Oz4TBgaiOpw6F
      zWp+1QZnovjIL-J@ihpY{KZYQm00Do4x;}%`{2fm752)h{7XsW)vk^f>pxL+6oC{+$
      z;i<S#LIOA61Ns9n@^RXH<BwAFZVKRM>n_SWMv1k@X#3is-|3`_#&^)g9dvmoUG)GS
      ze|N!{Y`XfA>E@WMX%}VF4=<VS&GGtwyqmm6I~jVZKgS#L?;`&Y{i}BJ4AHx;jLD2_
      z`VoFZ{@pY($IPZ{FPm<*)8HI$Ad07^@tx_WP}xht95Zl<|Hr$!-j0lsdw-7E)=p-Q
      zX~j5eQY4b&ZQBW`Wz%&Sk01nf(Dh}32(Bt}10A#rSZt>pb)Vzi*+Dn<&Jdg6zC{1B
      z!TA-kLl=%y{WOgOG>ZpN1qabZ4yFbkhQp)~r8ozNIk|KR=i&GzpRUIB9v)4HIZT~A
      z7Tf6Kus1y(8^6W$9+zN8b)vG?X)4csoCej$0F_v48XZT-83<s{f_ERpl}Q!!Gr9>^
      zUSzKQ2t<bfyQgpl^HYQ#N&6G&7W|de3ta=sL{s4q1)bEMYp4J{4v|?Rv>C}Yod}H!
      zD?;O<j|k24a27qE26H(L=Y<sJ3UnTeXbPXE#Gh-iNsB*~Zm0i*5MWJrKqv_*Qz5n-
      z0n3%-E(6NUqdO74OeOSPw$Rt$iA3#*2tmciA@#QjkGzI_ycY7Vrx2e-1$;J*<qb4}
      zH!69pygD&0@5Hpc6P0Wlg<yD*&C08XZQ15SGFgk?k*!C7<VLV<QY@_c!JlT~w^@jN
      zZnMZ~FDZ)=UzYZ;{8A&oU}LG7U+U3Hy?UvyIDcAJ@c|0%FnEWD+vx%sm~envtO29c
      z*G~1tA<wi@f5@LT@c@ksdA0pCP@Hq<-QtcRPpP+^=HY2<KP|vd#R2lP(~OY+DE)jl
      zjZ3@neQ@KDr-P0SJ>EeNhWs7$u<g;{9P)(BgI&AC-*IWw8FiiXNSR+TJ2}^195O;)
      z40q74*T|jM*obLfOp}pF$Ya#u4$cUNvt|ns^-M~#TrhiVw=MOPN^0LO3g-ItEQH6W
      z*F=s{(OQ{=0P_sIRHV6ysvwsvT@>VTWVDGqD?}n|f$C%Q{94QknIR8k{{2yU!IERp
      z8l|H@$i%zRC#~TYZbRs^3eU%A3PRv^*c+uGUr0f|n1=9Wl+8Qf0Z=m^q!ajNpz076
      z^DQ)$Z>3Vcjb`%gG@I|Dd3-m5!x5_DduauC&{^C`wR}Gs%VP)<#}OnRplkR+1cwJ`
      zKR-k_;ho#~5xS3mjUe$jJ;_hdANWZe#yms+<Y!TJJ<mS=9S`Lf(e}N>VSbq>^Xu4;
      zeUr=hEu8QCi5Ky^T+M&MN<QW`{*<@!XM8DtuHe`#p&att<t(mj55<-3p}4X<GzdMs
      z4qr8};$~#O06a7suznL)9;|)~{SjAQ=%4{P@en{<L1)vS=xqd|`{+@W8t>prfL;e}
      zc1tSS&7g(eh8xn5FYcf}&(Y`VrG{2&>ZP7yy@TGhFt0OE-cD`S5Kw>a4mD(y0>I}0
      zbC_A`4S5Ckxgm2;H`p7cW;;#CL%@C}ek|Be!d2iXy}y_8)4=~&fbVs|-QbXsf3WMI
      zkVI>;eQj|;$n2m`kJ3LdwK!w~-QfKx+ysy;^F~4j@NHVS8iL945W@=EApGa<(Dv-2
      z9F;i#32M1`Zc|Yp_u2?I@^7MrSiZGN3*wesy%4UZeAzFs7x9@0gATAeXady#PaD`@
      z(jfkdhH)3=Ag<+V*dNh!8m9sFnukg?AI;SKG+PVMJZ&H?&<4{IEsM_3&?#xdXrq=*
      z4O$MhX~SuoHi9nKknOaQv=4I+X`|>iElf{nW9UU~EWN3Xqj$7I`cNyPFSKIn(n@%!
      zHi1WLlX<K*g$uQ*JXM><rCKS^)~53!Z5FTB=I~kCJg(OkC=k~Jc7RSA#0|)jQq>MZ
      zs2AvJl!d@A&_zqYD-~c3%HcB<U`@*9r3$bfKy;-7tQY6TgK!rEoZrMJ6V{a<TUlVF
      za_D5xl92Bir5|NJj4LZZc<`LGMM|!qT*Eb_KSFYlqeRT=27I~*8kgiZGk-S~kJ@?V
      zC{#lyj@o%UhS23&{|S{G{6F#tO+I{trX7~Hcod2kDQ7dRRokjnQBbR<leFbjsI7px
      zRw+@ev@_Ed1?(V>D2C<S&tB5Q@IlG2wNeRH7vs-Tsg7{5_$C@za)e6dQic$ruScO&
      z-A*SsGY--437FyB+B24lq^P*r<2*RZzHUORc2_%_Ol<=Nv~wt=ZG_NKnyzi4)3rJ!
      zyp@(~9s6SIU<p#NY>I5)K?oZfma-PrmQT_$7L;W#=rlYL-3B7X9Xv$(?~Jl6JGCnM
      zRyz?$(+}A6@ur>jS<W_Xs&hcqPWBy~4Z=N%ZgXkeo#-v0g;bvcj_6Ck?|xGO<;c|*
      za5)qs0wR*}TIjt(ObK&2CfL}`0G1-Gj@m*=ep(UvwjvnR`;>WPUo!9crZUU%5+oIe
      z@Zb~5Q5;sTRcX7#fJm{3oZrDG^i=Ud7mERDaR;RBHh{<4@XqIPwpwIAN8k;z`9S3O
      zKFA(XWG%S$N!Ion5aF>X(*<t%Ji%sAWy?LtlDnjD9uK-iACwkdf{j3$5VVA{cqR_5
      zduvB~4b}}J3f)?;hx`Ru-b1i6hgHWlj3**<6rfa-iijsaAja?DlXp`-qKhBVqn(Bb
      zC~$=*DtZVu%8Yym8+CQ1X2{%&YRrH)hs>1a>1AlnOrfR*?J-ZT2Mq&HEA!@h^(ke(
      zT(2=jaT_E&a(#+EBs@Taj`66q!+1s~mpL-Yn<sBB^%s~2Xh_JvkGwkC5@T*V-C5vK
      zLwhqrdu-C!aj~vuwG)^cQ_2F0&R!ZIzZf-hjWQ!QfJA$vjLa<^P@qC7VQWg7SV0;*
      z1OG?x|BTQ8a8bP{7@rav;1XlJJoAY_1v2i_aWyR0r+4szUDlmx%q`eWBXWI8e4(OU
      ziJ**NSLSnR0DP>}a0^aBNqYog?om2H`!!PPV>Cf~oEB+MQI+;It<`=@8?<LBp*=_E
      zX}?F>e37o!UZ!icSCBqmrCVV8JG9rSQ+tyh(cYrRwLj4d+S~N1_71(LeZYqHK6|te
      zd8GCckJmooh1zGlO#3^p&_3t0wJ&(1_AicUU-B01D^6-%oC16=(wQ&UQ9bEC-l_Zf
      zMm?zTd4Yv72cM{7ZG7^r=<ihLhAVM09kuLPycogPKoDMr&QI#X%Xu7EV$6e9w*a4J
      zpN>R&Eh^M1jQQvhdV{Mm&(9vZ7|9n6DvzhLc^SqADCA27>lqhL1qX?1LCe3gyuCeG
      z&sEY}aV+Rak1Bn+@-F5x(ou2&Bo}IfB9a|e;Qx^wJfcUS(Z{>!_4ZcAmk+CK?{C1W
      zCD|01za*|M(G}I25+hQgPqB&DxRUiy0i%8jp|que`gF?EXSf1GL0a?zTk$3u&vm>S
      zBC~u0U^6}4Uc~T7G0?uIQ^k9gvFmVuR?pQ`xK`7B16N{?CWrhs;VW!i&yv7!BbkxI
      zRxH_Ah3*@bs|+K@e_EwlFzi-7V<&$rHpq@ihWSWwI{ggz^9u6oH8ezDNnw2z&D2-B
      z1e#^9c?dpVkE;5O87KFaKs*C9WE1Ze;VgB?0U9hKsochM?~rSk2s}*{Fc^`!A{0+s
      z3QJ7T5u)a<Ej4x#I!$@Yu5ZSa7$wG(Y_5d|%PaE4E@EohsmPglh(=8?CO8wFQD-73
      z;29X)0ZA>VUxdAL($~`f{VW=;pM!Ib4OFB@sZ7U~gI-5V^cYp^Tj)&vTsm8Cq!#>c
      z)tl%tJwaFLN!o+oy?Tq%leNWoOBx%u*w`qdi#P@s(=h8?uE&*5i|HIx#L}#>oIKlR
      zmBvdze^T*7#JgyeTEK&{rw4szMT&9R!CQ8dY22Y_)?i`veAsUrh4k%oqV7HkI4Ld9
      zN!*Bb5Ird;um@$;$<x43(pn(W!AW6vd4{ekJ@kv!+N@gHslgbZzBw2_)0R13JZg&-
      z%|oClROSC+k;BCqtPK(;)UTis`c*Vi->GO@;h>MQ2Ce<qa<Pv~yZYgB4Y*tjF4z4Z
      zT=1=jt&JLBSoA+S54)9-yi^BcgEHHx(?mUaeN<=qE*FE*X?2h0Z7{H?8{eAP41NeV
      z5eD<YAfOm*7tdXscaTEe*kI42MD-DPDvpyUvuqs8sYphnszTTIVSjc%P<)Vv={M0>
      z{SZyie@b)kD`#z%hUce6o1Yd9UyIqIO%YKs*C!m2{Cncyc16j;fzPId<J9!~a(p1~
      zOC7Sf=gW7wUN)VV`8zxZugI3C`{jzv+AIX#)91@LN4H;|BVGg|!yFBE@I@j-H#J$L
      ztYa2y5yR4Q;4{kpNvROq2dU#Osa&LJjZJC;3@r&K8=jS2ji8KEMt=!@S5~{MXZh|E
      z$TLq;P=AVs>ir#|$mXkc&@2asl4mYSi(P^zq5;hn)vX1;=#o-PFZhzQlx3hKfb_t7
      zd-Y%XJL+u<Js$gQDbXxhnDDP@?A87THjvUyEp!f+d})5&-27eSEl}A>ECUpy_PxH7
      zFIR_*Vj)C~9ab4$X6Bl*?N=bXF}Wtrn&#!286b=U&`AFTYWfsv`Uhp}pHq(hC5_X+
      zLYnHLg~--R3|8V=yV})hajR`{O*)Nt!Xq`*PV@PDxWbkRjpy$}od!DYY`z*-5^(S>
      zm%Xe;JQ4MjK-zie{P6?d*jOdn`g3}J%PLVJ`8=7H!M-xCfq(a845GotU>a`>aVgX}
      ze;iCB_y<-(#a70Z7H8~7TBl;4rddKei2TKed$64&qF~bEI#IVOmh0xqK2<0G5Q@fw
      zJ=9cS)Mb5fkYcdLLQF$BE<3ajufgwR{ANv*n|2yx-><=jUBRBNPjijpG|>+F5?fxF
      zbPh)4D%U7TKinu3p2ouk_CpcMI7HdGhRng1o?%#1zyZzf!)qYX9wi56iX6B{V}uLz
      zMj5+r!4WAL5fu8x&|nD-F(%R&V-lTWoJ@0#sZ?#0(iz4~T4j{c*~V<zV$7i?V;;2`
      zr_wfDUucxmzZ;db%UD8p8Oy1|sG;M=N_yH@O}{hN&@0B7^p>%f-Z$1O%UCJ=QyV)z
      z9QItJEHj3lQCm<Nok9<&4J!PjI2_)}o~fkpA31i@&V}7%r*zG?vKzEeYB<JIk#r9=
      zhK%mEGi}?MJ#1&)r)_8UVY}nGre!;`58EBIABGH1bE(I`7Ok<5vT;D**(lf8h%W`a
      zMu$9EU&+yi7u&pDIOq#`v;*Yd;nj8+UxmE6Ce8#7QC>TYYYSu#-rV(3JB0-pA#}yV
      zbIp*qCw}mT0!PRYY?xUVHcZ)=1vEg}1&!OKMKsO@G#UYoCO{(zXfy*FtyE^DsNC2J
      zXlw^GE~K@_MHDqIp@eZMoo8H5+l?y#jZ5iL<0`tr_yOH${E&WbTu=8KH_(H|Pv~Le
      zKj=|oFJN*by?`~pX52<^8n*+|chCpMo%FGB7yZq+m%5Bj){LVZ!0&M5ehwSQc$#sX
      zXB!XjeB(i`G#=tJ4D0B9g#`--T4=>=XmP0nEk419RvDVIe^b?AIcF=7ne-qUv}-XY
      zNBP&-TlviY?f{SXA#_Oue&bsK?-*aVR!n1VM2H9!q>PPlS$$(CUteZ)3mSZb6*Tw;
      z_%m*tpn=PNf(Gxxq{;%JeiMZyK47G0@Zi0ebdvp0rphsZ6^?|m$sx1gVAsd8X|O*N
      z9_sOB5gE?{1J3~i&jSN500S=p1Fz6L<5jA{?-|A)fPpuFfj5DHKLP`90RwLX1MdI>
      zZvg}E0t4^SKI23BsqqmVGd`nV8Gon8jepQH_<h;1PUfw&@`htSdeN~TJ>=LAyV-Ks
      zqSG0$)d3te88}wS=9@5vv?AY&+G(W)b0lBSknp^ZLSiy^cXUV<h1lkCJ+QZWRHK*C
      zfZ9|xJqWR0$~AoyHvKf!#3?tZTV>7+TVm#0()`=OU(#BQ#ecGkjn#`)6&q9V(N_nz
      zBYGF>Qx01@M7P;HM2o+PXewu$A&8bsBTRh1W{#w>W*!xp`S{m|qiB{HrlsZyu8de?
      ziz;8XtwWn6wKG2Vww0DCP&@cPJNRdrJgZ6_)7lH@QK0gj=_08U?jbFzd{ba0aVTG9
      zPooZ-NB$jp*AA_#7&XefS(Ep7eIhkWv0h+oL?4aMeXwt3$R{wlMn?M)SeDFb<TFp9
      zfo3UXn`JcIoJ}LmIoN0@qw(f^nqe-Wxn{X5y*PC^PHF5;dLX_`u(oZoaoByA!q5zq
      zJW}aNdcl{%X(d?wnhzxwlyKx{Sdi;v!?X_edny4R0Nd}MB1*+O1Mq&wQSR*EU)<S)
      zM70Y%&Mqs<C%<VDmIyY92Rr!TyLymV(I<%wXoJ${EBFT^Quxodk?4!$$%awSEfLfG
      zRiD#!phr;~y#f#XD+imVdy9HKv?jH8F4`=6bMwCyba6V9*L}lU?Uk7uX|NepLWivv
      zZ6tz(%?elSY+7%?X|L6{oQB!L2)&%OpWJH!*4BVU)oGtGUzuAB5wQ1@<@o7Qo9Y^f
      zFYY;Zob}}ne(>cEwrvyGrTvYZd<!<m9p%S?%M2P-Z*5*mgUrj|Y?r%iFcvwa5d@i^
      zO1Gk$;0z*q`WQlDL0%m?ooZF>qMCK}DHiQ(XsG!kp!?rks&e)1c2_wR__cc!`R>_X
      z)Ha*n#JoKe$Q#B_A976dTQQB(yX7GODM>afNiwTb#Wc3Q2becfj=7IY%>6DYTpxwl
      zQphHKMvDJU8_YR#%In}~`Zyjz(;>05x52Dt9tKnGg!Eq*rn{dS@Dg1PgjYRR-K)v7
      zly{6w^A`~Rmo5ea(>NQL?oxb?*!XV1=}Tuy7yyI8RwFe<G}OB%H6K-^E$<(kj{Er3
      z+g|+<kdY9$BBCpAtCH=xYAYTdSx}PAFQ^UjxyH>jT79A=KK_!ipN8OWAJP%-Q0&<*
      z^>XICz!itoeuRmfY(9sW_&W-jzo!$;7igaOA}ujrQ4(55I4f)keL$ytw1Y3z@$tp0
      z@NW5#XAaaLUr;gsA)NxYKz?+3ln+5(J9YHVxdm5_{;_z5I=^^B<SEFc1uHlH1!{i}
      z()<-J{ywn#flK`kc1?WLbSJps9~R-`!F4MBGXIg^vh{YZ&9}hjdu?~df9jL*mtg!A
      z`OPlMLS2^UvAR<WSk4BrY#UpQ{lb{vQ49VvzuOPv>$)@kOJ9sVgUR${k>4`}jE92p
      zFxQIvWBgarv*u$z_kEjj5o{nK2%k(ns5TulYE{`5)5J|=ipC$PzaR2P>i6US2NvvC
      AfB*mh
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TXPge6#hE5-K-N576{~K)*zVdhJ-sIS<ny?8B78ak{G<eWOqmgH#1>&He%!^
      zB4w%1DwGda`QQsx3Q9tmDlb(&SXTL$)USIcy8|RX>`r&jIp6utcTS)A>z|*00k8*m
      zA}ABsa>-aQy5|gUwtIws1CH&PSG))+1nShQoMF#&pPIg8W_Vg9uvwj2PWPDUT1L)V
      zG^TT=K=t_Ous))n9Xu|ub$CtCK3W|g9MDJlhxhF*tq<-Ohy~|+_VzGtULjAIZr*b2
      zah-_bq(BY1<vqjpCX8IctQ>K6{Mou7{w2`7Yi2BIOGBM|*D2W95hqJp+d@>%$YaZ%
      zk#EQ)n$F}b+wzVIl(%<G2viL4MKv1G6hWgveJP2sr-o*17KohaA09eCemVw$=QXq<
      zAyAbL@S5B8_2PC+RMVqPLj+M7>qQMaBwn?`8=M#%mG58DP%YmJbZChAtCWW45EZB$
      zwrq2>FgI<wXMOGC!%oJ?O&F{PYY`k)wCgG<Z`R5SXnE5+y(&`-<=87Z*GE9{+e&rT
      zb2)Ry$o0E3g*nsq2Crnyd5^+IaZq4;5g?H<Y}@e?(`F)P=JN?}*02+crt5UYun#>F
      z`Y>Co-4{W1(3s~^`aVDXJ`EcYm+2kRut}z0OMYRMqj-g+RUw0l#c&MABN%w1FMU)E
      zgBW5-EIVsnIdzexTO+dGp-YGp8g#Ims`G{Eyy7Iyb-m+Rt}zT_G=dR<jUk12KW0o<
      z!zr9*56v5H-qdYxoorReGcx3uv{*Yz1I9H>V3HXu$kvt_bgq#>KvCV*uvUFhObImm
      zS|ns$EIW~LT$bBQTy$JIMDeCT;{WTnyDNgX1zJnF`b{>Z5Q?q9+d`HC@n;32P~nQ{
      zvK+h>=H-HsV-G&j5B@~y>o^zVCCF+pFwNUb^Du5;Bv3Y&VLQx(dRSdrUiMlZhQ$zQ
      zY+qL>7R+;eojAx=?ZW*Tfy4P#lE61UR<Lqe(~aUXM^$m!9Erh3kNopA6tKWljrn=g
      z&axP5l{!FSxtQjLL|7^XwJ1?O5ZJYT?L$;o(PaE<()0RLo~sH!Q>U=!O$|BBQI}aG
      z&*7gnWjQ|5@F6UwI_4DIj5%b<0bdvTJakEc_z7VV_^aeBYmoDdpOpqVx73qUOFcQW
      z_-urR8rp8)x(v1aaR8__uRovCYYXaWv6Z{4sNg@4UV)e@e~4|%X!#K@$X#9JA-1dS
      zPPMID-L|W3+v+y?fc|CZ<o`~h0|z)g_cMN)T>8+00d#O2bmAm>cs=`=%`W8ua%e?Y
      zz@(oUmhrqg+2qqG!N$~!^CW&jxz_uJ=vE2Kly);kHnsdX1aJ=F$_dw!T*jWJuTist
      zeN*uR%Q*CFvgr|elbw%{E`?}B6^$=ZjT}Me2xn6thhLz16*A$26+^ZJAsGNiscV@E
      zemDsJH!CHBPs-q__{(*%CG;Ojrs`tN71<@c`WUZC3aRG0nhQ&K{V~px%y(#*R3zV!
      zBty&OPv~7u;GBH-fZ-}AXgA(c&t85C`~q}QdSH>K*VzO&NbV-BZjtP5^x_W1|AZ6#
      zQ;yruI0ruur8ZeiZ4&R`JQJxw8}*K>)HpMO)UI(aQ%j|Ohq#Bz^82aZAVxaLQS$r-
      zo48DKnO;KXE-EYTm*1zkPtRBR3wH3AEZSG>k-O~Udr0yrd%{;aRiu)FiHi)pfr-qp
      zE>h)LSOJx8J_WrhW#CefDs}j+0@Qqi08p^N@A5=8e%LwvLy@8H{Qa8FyuN|+NlG9i
      zCstrj#pjpdN(xKJ$KPAR`+o9QmvG~0+?5b+qDYDpAizDOG6ZTQoDXyB*3+5&5dx_x
      Kg4|XqeEc7&;Xy(G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-&Yz}5dN+R3%DkPCMKe`o1X<@B^qnfK#hv1R0QJ+={9ZC6;@o&vUrvyr#|+N
      z=}VssIY)EiY1-HJ<PXSO|C6?J?-Hda`Y=29yE`*?=DRcZuYX>@0WgWWgg%C$UH!S9
      zYUu7xYNOe<Yo=XaYt{@2{R|hxKTEgkshr(zF!Ytz8Lk!1c1bhzFP5GZ8Ki73U&t4i
      z8T?CyQfY&BR^|&!&$xF;tUNn!ovY-?XP{gx=CV0eo!`(HA}zx)b*o}HEwgEt^NS4Z
      zYlgvW({8!C?N)TFZTS8FzT5qK=I0mWohz2tZdK+B<($ee{Pg@3gPE#j+NL|p;EN|J
      zlyjEK4Z<G=Lrlg9Mi~N`uE|i`izGNuU5D67=M$9>*?ug;k3bL-2iIjt90WPIB_qf|
      zh=WgMgg6LukdzVTV1R?qWDIa1b8t_F%)uZB_hk$sz*nEk_z0I7E*4DND7G70hO?<}
      zSq4M2(5w<cI?+T}Y=+@Oj0$ph%ob7poO4v#W*CX*6Xy{k;VXt4r}vz<ETgVl^G?0p
      zFl;yXQ`OjW=?Ww~Vz_#0=W(&nHm#cB1TjwunKqqh))c+#`%npE7FkXyUEh^6m`qf-
      z#gdF=tPtt?-kxFC7)DR>?V-JUR5}RigX<HD@;*hSwbN`{HD$|Cnl{O{;_evY=mHPC
      zMns==^auBPdO(Tcw$q&jr9s`%QfkIFT|iASZDql%FB(;|p<5F?`^PdiKs^_9n;s_&
      zm*ZW!d(uybkwKOw$e}S}d8$@i58cy9JaKNjhVd=Flkk)VqKEqZmTNR*e2*V!oOH+0
      z_p8mled?~>I!jx-M%7K{d+L0@MGed_-fP_L>~p(>ca|>WA-1R`dmXcu-fE?L&iH?%
      zlc$5;hOpXfJ5^)J<lTFz_pO=WwNWXmS+{k!?a=>ZPe}gsWIX)AGnJlA&rQ;t_~=Co
      z&kgg51W3~`3Qcn;G>xFpG<`zT;0aALCp3*4MTp@7E>g4zt^05(663>1Yd_8N6%5gz
      ztAzeUKYf8;j={9(HQy12Ut&yvPx=K=1i0ZB;HCh#0|ML;AT9}z5a4c5fN=pPBA#7J
      zpvj15I28&0MrZjt7*n<W4ir`McW_hH0v+5@HK~Jyss%e3SG5RjrAX1<l=>3WFDTJI
      z%+NPXnm_xyNZ|{y%m2`G*DY(3NaQq1$-ARRcyQ_%AOm!rWU-d;rQj<>9g*(3za^Hq
      zofG?&zCcNQDIDoE2|qGLa-ZZ8NtR@pWR(gzpfX4lk};A5$v8=hWa{7;8SNOeT6FFR
      z3$a7wqWMFtMvL@0#QG67f2Sy3i8J(U0&}=W(WjBa13DptJngJv5o=hXtO|IHb!<XM
      z8QZA9hAMLNDsyPJLNP*kf^WK&%}`~Wn4u1)wN+p8jh5lJvF00j1#SG`<aCcGc0w*^
      g=UF#Kk}~A%grh9^3P1h<cD`R9sv>3$hS1yp0j~D3d;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgsTW=dh7(L_o7JF%vG)d#8Ehz<(I2Y3!p>^64nwA98G;~WOUXV8SkZiHNW_Jx#
      z0tEb%^2|fIxUHzv$0CYAT*Wg&`~dy{aAwwt*UqZq30d+tJM&%6Io~()@b9ng12~5D
      z6k-Cy*R8j$LQVRGg@(T+Yrb8we8){8F3_jXDpqZ?aAo7VEcpV1W%-8HsQ4Yu0wXKY
      zX^H~zEyrWvK;WU1nZ9e+Hr1I`F1y6gj$S5`1#U{uQ|EQZWvo~hNY`D*cS=r0AjxI5
      z&i$lU+LBc%knyCy7yuI(ooJ`)fLWYeXUYpsS!OVZ;S`2CD4I7sUset5#|YtWO5c>F
      zhHLvbE?YHgQxfN)iODdF&f{VV2f}i$N`FndRonAyr<TS+f&Fci9k?>c;jn?nF-A)B
      zcFp$B2@JJZgaw;i&)^9>nZi+lT)Q`2I1N07rv>&>o6?(Y2nv3H-fICbv=1pwF9aqG
      zB#>n6id~bdjp~MUuUQ)vDm<{_l&s3S<=X1IwVC2DC?*0iuS($`Ar7m%@~wvS{58w-
      z-f`S=NCFBZP!F{&JO#_)tij;?mz`Fp)L=(f<alK+zFU%YpXI$2j+4M{O?Nypl;@;@
      zS)3C1IHETJCROf#0iVXKYS?oIQb?=S83Vn@sMWlIEDW_eXW+5m^mzk&g4GKK_9Cs=
      zEE>3oOPnN*dbC6WN4F>bkvjHFsLAZXvKrzSdB^-M+Y{(#;;TW^dEHIh=NyfM6NZ)Q
      zc3;x3#^APl_!@M(uIWdDAoxrSb<|wjc{BEP@9PJobJyH{O-!fZmgFT{4}NG)9d}ku
      zNc;%Z>){)kLPp&eu41YU+Oi4SvIW|*0oqc2Z7Du&md)xzKl2Rm>vhDL0XT3M`&OnN
      zpl|9Pa<2`H-oc^UIFkPY<Dco+N&XMBBJds~-e;x{FoX~Je0+qwKGRt+r7^|nJB=CE
      z=;hcJSm7D^#QA+pSC#Zqxw0ZZIz5w%-^Gbr{ER`B*`o>Gq{Anqc2lQ68Mv!CqlY4)
      zND94DG*$7enll}nRddF2s`#m0#sB0<ivA`kpGoGD573`WYSzyNtUt&2*GPz4wD~6H
      zXr`JtO>?k`BF#(_XK8ZrCeACHXkvl(HZHVD9M?VghOi$J^0yelcQ}miF@_&7jvoo^
      zCqnxf^Y{ge_!TSoO%q)TptX8Rkeae0YHG@gsHv`&CTeQRalNM~C-_^{$|orfF9iQp
      zmru~D9EtoLEVUb&(YpOkJ^s+e14R>fNjGs2FB4Xfps<tROPp@AR8@e#B7-jz$?o8}
      z?%;nSgRfvMBDnY|s|7=%D~n8I@GFs(&vsQ7Ly^H(BZJR(2aiPtn~}i_-NE^Y;JA7b
      ZTb!q9m9R0<9XS_@jJ5hCa81kd>c6EK_9p-U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9IF;4<P5QX2s!I=XDK@jQe027I!G7t(;BZk<Z*DuEgSC2h&cNjZ=k%fgJu`t&D
      zDC68gh*<2*&d#^*&F=Tl$0vYe)J!A@m3#3dT3Uv!Q>7>8&yIWym8VS@gzCCC@|*`5
      zuDgUnAbllVTlxXhw}UeRT@iA9PY0pUp)K6GOufETzk>Jn2_fB8T7^AAvfi)>M&FxA
      z3rTEeVIf1v50#eJ^VwMXH)8BcLUHIhY#`W%>(!wV-l>2G8?GnYn7TtK*Oxt4=xJ*d
      z`btkb4Lh<bM^+_*Ig>#krm;mV^A{ypBX90I@<PQ!Y{(x)I1a$C;2$K^kV2ZX$yEYd
      zy!bjY9J74V=1iPZ%>{CAF_PzKF$Q#DpoaqQvP%d%C~_4ElsHBLJtiYI-8@`i_rJm=
      Yn-5}z%92_sFpmoMScCtGZzr(-3*h!-*Z=?k
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9JO;5r=5Qg93tEPY;2nwFO@sZdV;|awBY62l%(B7B2!D`u>b}{}WubxOe=-q#z
      zf5Mw_S_~Qvo!QxW_I+o!@82)40QONgkRa4<#e=Yv)K<?|N;>-N(UJGs^_77XVSCvg
      z`OcmE>k^8g3|!&aG6<Qz>Yoy5K*+OBsD;wD@Mbc7*#7u@`m){#nIl)Zx=Tnlnl>TT
      z^RK0eB-V2<ktGy{u96qC=~xDrV(dvmY3Ms_AlQcM-_4Z1aYMq+a5>rP;2lDxv1ofj
      zO{|d)Ts7%5?Z~YXxs?gVRED9L#4fSYf0SU3{8`}0b2pl!vg)uGoxm>mF8q{)I?~8+
      zHn>V)jXzdEmSc{04mcC%bZd_MbBq)?nv4O*NZ|xUUgZ`LHc;X!5-4+w1iDN{Y^K$o
      dV{=uZ&*p<zp}L@c6_`gATdcvqkxwU3`vG0(Y2*L^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%We}v5Uh^ZURX>LY)s<t3}6%o2aAWe1m$7{uw*3?j~w8%-i*Rn%PiVmM?vDq
      zjW6KHiEFq7i9<esZ{Zt&nq3PUfe+I?(>>i)(>33Jeme$m8#i3c2o?tZzTY+~ZFeG*
      zDw96;&2Fe-7mi>)ONPGLYj5`lDo6#T2ioX#Lr_?0?g*Stw5vQ6aI%adN`kqbHfn45
      zy07AAem_)#N-qlhaL13eJ&%G;`bsB)dT$E+y1?60>4=k{wKBf>{7H{-LpnM#>&-kd
      zLDJT49t7%*%_lA@f@%h%qjq=uPe!mYwdu==rk&7FlK;VY5Y)<;#hix))Lks{`QwRY
      zb!9B!Jo)IPYm(GA0S8hW!A??czThl}aTo{|r@d6*29}HB;41$zq$E*)VCOyNkgLXl
      zi00~&$kS*T2kN1=%2fZB{FbeAmiejzKL}{WYD(+!beCS}i>qI8;tMx3@Mt}HU=t1=
      z;S_h}{1W|X*e}HCFfz}KLw|;A7FE`aBewYmMvC-})tg5+yH&XFd`7iZbMCAi;oL_Q
      z*ACx1Qgd3zpML$2Ltf0mm&guCY4-_uKo#Di&iysK%gEfzo91L}dtAW9j9>$oaG707
      Uv{$ffKQNWL%1TS~dWO*W4TTxAX8-^I
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3a8#Ii*FywnnX=lr~q)Vvap#JrT8)FQXU<dXcNN_GYo
      zMg{?}nw-SEbbbG%tkmQZMh21OqSVBaR8&2T47wUV2(`f_MVWc&)|wC@Oe?Gz8MuP;
      wON)|I-7<4h85yKdO@q2X4`d)4BLgD?Gtk)#42(bru`;lMSPbkyl8J!>0NhMGo&W#<
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      F_+J$M<c<IU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>Yg5xe6g}If4Xs69${PhA*n(0K#YYhYQ729Zn4!b>G+i)ln(ZV3{ZY=SGtM~r
      z!5`p{a=g3gBZSI_W|MQzy?f5RyZ!U`*KYu;*wK+-n5mm*X3^zAan}sY6VGfO3ah~b
      zquFwFXbi)O;F#`7alcyUR-hxzFy2iI>HDp~7Ou~bafD?$2f_;&n8A=Zt}#rO72Oua
      zx3<G~xo>%PD-d3ZA-!R{cCg8i%omOrwAZ4>vq)knhbzc243%w{@0~WQ+^d*Xhck?p
      z<qk)tXUp$4s0ANv+I=qEsJ|WBO{>~2>6y+OJ)%ME?OM&_zF(3OvTr_FJhY=@lElZX
      zcEb!Q%Mm_FN?RT`1A5U~oHrPz^8YDs=(xc!*6D_^A1O8<bL9{iW+VBXu^gCkETsbV
      zRP(uXaT$wz=pMJYeMYKuOSmpgP8#no%#g-)GwcFQw?9kzQ-jUcY`<GG?em~gDN``N
      zqx!eYTeLOxgEXd3+Cduc4#S}2+D%>&Wu;8ZtDOfWD*_W)+N=xPy`-5WIpuIuI?PDw
      zJ5QXp7}g^m!^7E`ZqL;o4?YU7VYmVJj!lb)gIC4cRYpkC`NJx^R|rd7JjfX^Y~+wZ
      zmLW%}>Ws=;AOl-D=op}rbtq0fi_5YM6P>~K?%Rqy7uo`4B<Ytz0-8*u+p5XRv|b~e
      zt_3{@>1&NvMr&&62d;jjmjs6CnWYtYPf2Br(3_+a38NUJN*WcpPRKZ68m$wAOc6&$
      zrWH3DnZay?J4c+Gn2#X~xD`WgpGRn)JGe`#x|NmuEmDxAAL~g^Qz77sl06>=L)nss
      zMch+yhCFpecBjzo#j;}bDfTnc1N!r5_h1Rj5j}IbPwBD)53te~FXCa$<0>A-kTpDx
      zAx|zK>v$UDJUfq&spoh>968`3t>J*bqx6-4aKNfdY&K%7JzPqDsbs~IH$TUc7yBeL
      Iyi%;~e>&zX4FCWD
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2y<#Ii*FywnnXm&B69^rFPv;QZw5)Dq9!f*iNR<dXcN
      zN_GYoMg{?}x}3zkbbbG%tkmQZMh1!GqSVBaR7`!04DuS9K6nhaW@O+B&Mz%WPIb%7
      pNo8b^!!!eGw;sq8Hbw?U24<k685kIWPGMzW1F;y`fg}?H2LNM$JO}^)
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh20r#Ii*FywnnXx6GVWzr@^B-^2oT1{OvJ0kBL?VqUtw
      ze^ORzatR}YV0vnabADb)YF<f5WkIT2ei0*snuZTTVQ@)NW?s6rCZ-T016Oc<X;E@2
      m$Qq#GNVe&L^s_NCFfuR$9mc@G2(+A)feplBU<Z;+3>*MYd@t+(
      
      literal 0
      HcmV?d00001
      
      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
      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
      A-v9sr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TWl0%6#o95+3t3`ExV;#khXwV_SP0!E^05@Ed>_KqO`P@qGWbEl!0Zp?nUth
      zO(fAo<AYBGO{m7CKGXn)lthvSAAB+K*?5U~OMD<vjK)Xn_s@>A(^3o%JM;hNKj%B&
      zIsZ9l_KSZ$T?DWV$2@QegidNNYMnW~)S2XC`@qyxK`$0PPz9Qn9a$#=fude8wCtE(
      zC>r_P;pA=sv0tEmFrO=yv|MRS%a(O_`@7?pF8+M$TLI6&o@2?>&?wcC3O&=Q|D}Ra
      z(hun~SuLZ}Q8+Se`pRm#>CS`clX|AqBj6i4lhJ2NbV5Esfi_de$XgmCrGl=Vwsi#5
      z!Tgk73*z|^LNf&#qY-dTCZu$|ANOH{fcHecSW0Q9>A2D1mT*RHy2l3vt$ws&qd-ls
      zkuysDG!0KC?o>@i#st<38#z5yKAqMJqgpy^g61<!kH#c%Zwb}X38N^mu7a{M-3)f!
      zsxG7lRq`cQqj;d4Eg2cDShDXz2}h0y1dZZwK0lMzGN<el$_8>T4@)YRtd@~Q{fHsX
      z$Ocjq$C7&lnwJx@RG9^V4nI1vmAd*1Wi3ncp|B$d)-6f*WX2?%a{4lbBfR6~LLXxo
      z+?&m(wJZxpZc@B5Q^(rdK$5{OKOV*-)`^YA@{yJY3)7aNZ(6TrL=8tK6F&5z--Bj9
      zo<M_uJCn`lcry)D+{a|vNm^cbRt0!4$h=hRu_8{Cj~~|yJ|r+CtAnXi!z=(P*yl$Q
      z?0_0=W=79V3AFIUkt!zuGn>G$G&msj2LD&@pdU|TfE8QHS1?%1#Wc(DZr}n+R?o4~
      z3|Zz{@r3LM3d514tRo6!5j0VfPoG>~{&v^7H8#yQCQZJ(*o7ncav`JdF=TBAokOBS
      z=7@uYaI&qj9&Xfd=P`F)Y=94S_TG;Gb?VW;=Nf9LJPDwYs~*}3zJu4HOhm6@Er09W
      z*U)m=1lq)>gawAMnNNR38TaD>?!e1<kP->BpP-V8HyVpe`zu_#Ankp81BXa$#KhQK
      z(X%nUa$uOaUOYtNF0NU67H+?}2bv@~r8|h*XM^}*7H)N3nYVpZI39IyY_jkLw%AyG
      z7M2Xs#9BHVcx82{DF@VA8!Bu=by-l}=qHFQpnWBkoWtI0+i$b&;|xzo`ga6z#$oBQ
      zExT;X^Ool^M-V<Uh^ion`PoXwR5N3Nz#R%VW)YGGQelZH{b*$#Hk!5c8tdg8f_NQU
      z@dmo^CNJ_WjN)wv%Q2f}x6ShI@tt>AR^!`#50)RSYPrL<EL)k`6<xs23ves*&Wx~T
      zHdO<@fJV7-o6%EuSv757%>(mHz{jY?C4Rat)5#U=<a#qtDqXP44*OA?!rjBZ?y#(e
      z{n$NNe!i;Z<80kZ=k2gcsZIv8fZiMETiLu{Iw0z7+D~G@f|z4Vstl~>Iua9s@HOln
      zmSBs0N`Fi)+RQX9VDI=jMYOffqGk^Du|UTHo*JK9x*1zQs_HVzjt9Qt^J@;7Z#W&k
      zr^}n{?H>`rPl)3ebmKc_^H-BrwBp*L<>OF$hD9a^RE!g&j+fd<yHTzbN)KbqBK?j<
      zx=ZP;kZtvRh}u@q)Erc$e-6zp0q>bA`&WBS?(Z+%YN<ABrO1D$kK6F#4^E;#IZFRR
      znD4Fl+rh8P;^(4#+#Ic5L@j<H&cXlq@w095yGDL)W}+|l85Fx555#Ujxr%2~@x}JV
      zi?T@Li#ydh1mYpJyPZE%c1~RisqZcQrdFwT&?%AO5dyVB;kQ-g|EwCc2@f`jT7IjU
      zI#Gviu6sniNqu{TfJL2DFo7ckY2d$$Ne*2Xe_L>rPlbbgy%~i3Hath#E<FD)zj5ca
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ITX0jy8U9w1k&q8Y7%<>VVkl5qGPsGsp*Z1Ua}(HxaItIL7LMg(`(RnJr6a&8
      zO@IJNN-reMrH~dvn}j5F+mOaKQ!<41ArHMwpWEqkI(_b2J5&1Yo};6K5uJ1xwEyn;
      z_xu0-{>v`>{y)FD1K=@C1>qA|d`v&CH>C}$DZ!tXtpfvDBbN&zAh77ZPtF&CNY2Qb
      zdaB#V=FCj`P-2^a*ex)xJ(JE^dfMvNQ+cE8$f^1>`x{R$7no~~={Bl>udhuYluKsD
      zj3ed%HzowM!t_Yau()(sny@tn)B31kFV8X6M4+-mxs}q>Lrn*)teGBa74WCcL4g|k
      zlRQk9VV%fiM-pkv$PVgBgF2zDJB}o}wjXTq^Y~$bIZv8t)7m7kB-+>ZAZSCkK%hM{
      zV1(gEjfN$t6<AtQHPO&L7XpuHcogN_C66l?mTL&3TuNWkumF`(TBV@^^QH7<4G~*v
      z(4b+ST#IX1h(!YPJIu7vl^^XlvIq74lp&9uNs@G()N}4E2CQK-#{(44?F}N&92m~z
      z$Z4gS>&&MtGpXk+H;(>j1F2qM=C-CM6u9#xjP-aTh!%!HF`c)}RMXaMR-ede*nqE+
      zIb%Gpr)W4xI{MlqOh`{pq@;%mu_Kci>(`SbuB}kYSy8_5a3fxeYVm++8TT)S>2>?g
      zRHk1~g~`oUjY<1B6HP96F)&KonY)nA+(l!4N&UUqAxAwtWE43FL>v0r!bo6u5ak;7
      zphKW6naZTe_@ZcoCoA^$A2X5`Db={YZNfd-+Nej#$;ZC7gtK*aU2%VS`^ls+X0dcw
      zWlsy#xm9*3J(A9xNbh3ET%8~eFut=hzAbO228?V7hnSLyRLU6AQ}w!CWc4W{J!B1U
      ztPf*9dSu>yja6R4%Z6^LaacnizRsBHV`D~|C0QFSIPWPj$6#v+-(=M5`zI_Tw^nXH
      zD!1zbYf2e-fSCe}+?muc0MZ<?GB$0q8F$DGV;_2C{D<XPmeRax4hg#IGsgsWm9Si>
      z=aQY^;i0KyXb;HFGvM|O#;1@5CBYca!Y1hvYl<DMf=e=rPLc$X6{vbJhJ%AfHjHst
      z@?d!uE173Z#&JTDdXoJt+U`w3n~=7=+}9e$GdLB*w^(mQWa;*hk=5{RJS$LcWp)`S
      z3*;^?6<5NH<Fqt)Mxe0-lMl5Y!t?CatHL;s7lODTu*}Wl*}Yf8i!#tbveLzVE=?wR
      z+FXC0J$q@1BvA(>y2-z!AvCP#h6|nel7{aiGb^K=;%qo9-T9&HQZF+Wnf_z4Zx-os
      zYj}y7OYA$ou01n4rduZasawwBtf3FsdTi(pA!eq@UP`3L@)ij-^wHLa?jWuREL8B+
      zNbL0#?T-cOi+0;ndM?+Mv36wg=>b<OjH`Gnh-(GvN?Flx9Y1A=2aG|T4Sc`HIi?zu
      z<viZj@DASPHA{NiCM3ZEO%IP`$t(`yJx0O};DJnX#3=S4MuENFxm-(m$*xv@BFp|=
      zAnwuG#O=*nUgpC1B|Z$|R|3@q`s}S<Jq<VI*(;s1_jnD|+EI0#@$Qp7_CO||O&U8)
      zd2=rC-id3aJ>DZs5559ISc)>t;Vj6Rk8{2ZP_AU&$ZF(mtw!F}YUDl6@vOY3IaXsa
      z^$Po|P{lQNDXuJ|bQ%F=Cl-r0M#3|wj>SGk-4yC$VhSr_G5_HytenE?n12dUxfZ+0
      zT|PAO_Yvh&iaw?JPRP*C7@rs8Scxneki#14)Z6G-izd#1n0$cHwv@g?KYf&WXFA?&
      zP;;PyPSpFGeQ%*GFzKJ9wrx@J0Gv|DnvyFVWPxTEWe2r=)T@X@J_&V5sQ4|cE24ze
      z*9+wJMTJylYdc6~n2U|dM}bxsa}Rlvm<uIlZ)ASp;6s65VSrxs055ca!vucP0e;E_
      z-bh$^sEB>!1^8F#LtphAI^rIB)5CH8T^i@Tk~o`PoKDA|n%Fe9TtS(CQaToBj?8~H
      zQZXB{LPhr@=E1LdxG4{Gjq75Y3*F&BS3d|HD2@Cnk?#`ucOK+w7rFh5AeWU!{v(n9
      zMC3o0MBesAkVB=B|3c)y68Uc>k+-|Z|BL8{Kz~l?zZ3c&9_S*`JFwF!qxBqRPL<2h
      zO=H(xBtGQSTSNc!K$JU-&P6A>sI`~60Rrq(9pW16B*2x{_?<}P8kXP2zTVr|-&=Wb
      z2Ho*H)99`I#x#yhqkjg2pWcS(jmKs%)U~FT9b-*^?PE>R_zKy;=vq*){RkhHb6h3-
      zXc7Ue6J>n5&ry!WY?G=*&^8OP&^B6OvYq+ZPBa|jub+H$V&nn0Uw7PY`G4JRWRLTB
      zteTuyM2{EK<0^W*m>w^o$4lvPwa42Q*V`7?+ZNS?rME%HTY(ftNr7y>O&n#M${43u
      zktEgSMAQ?ZGB@Yb?6dafEzV}yD_34dh(pxdD^+cZ7CQa}G_k>hR_vK$Fl;o^FaH3S
      zZezSR5}iS=!~fI`td|*7+q?kxo{fY~s!8Cenx5WNdllh$WaBiB_r&XNVPYE3^_=th
      zY9o>B_x?cD*k@QCSDA8_nIadaan8;Zsd|Igi}JkYKBXuVin$~;;?sDk$jajkIK&qI
      zySNSW#Wuvm4y+YBv0fywiEBH>9(0Kgq(mojq6-(rK2LBiIShtz0pGzzo?2s4eOIMY
      zjQ8aCDEYa{mz&LqCpa_sLGkjigVXDwvltvc>Kr<k5KPi}G5%W!)kWiXAvz_2cN*mn
      ztI9v=-*f{@<XT;`T&!zWtLOZpPU&2~_c=$>SS88(4D;n6SEljGq#Wh^9SOwAN={a)
      z{ZhD$N)A!3N1ZMeC>~+Ad>;s%nbD8AVgMDwK#dqgofyUnVd61y49%1`ixfJ=D0)R2
      z10sV#F@|w5PIj|+M&$64usjT3bQtELdHuacA}aXEmnG_BIn*nzCBv_~9q<!=k?DV&
      zuJX3Of|L{j6p~UXqi|RXb0|D5g&>7pQV3DlEQN^trjj%wKgQLX{JLC8b15l;BVkJO
      z)LMD-Wl5Qb54$NnM-EP7jW~lX;w%n|=P@kK@!v(~VTl(!;Xdx1(}y?kBd6`m;dmKu
      zs-hmEEME#WOy8f-;%XTSjw^2AXKXDu5a_wdV+Z&UTZS7{ZKQG)yA{OC{6DQ%`TsMo
      zvD3VPYVoErYd=p4eV)L0A0H6Gho57TzlC;vS(!h|6=}YfCYdt}Rg$pq<ZF)2cs0HH
      oMezw|+kKm<@GdF^vr)WH8b0vYt#!j%OS>P@uHa=aFO!e|3(lksI{*Lx
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0O>k3X6g^*(k~Dn<+CqyoNI)%30>q#wP=)?LAy~>!+dwJ`ugPnhlD?GWh0&d(
      zqoa-sM_tIcap4Rz4hwN4WvB|eurtm$<4(u5YuCCF&wcOZr#~|;n)kl<-S6CU&pr2>
      z{`~L#?*SxW`r%R7KBwQ%<ECN7ll&PgWUd+3KsH-6N+myh3Z1q66?+PsOGYuL=Tk<p
      zlq;AM$>R#@v_k7p!7N$2X{Gdh*=QQR{)t}r=gSicf!RXIGWB^wp?$;#&Fkh&e9S85
      z%$Ys~pU$kz=j>Gpxm09-p-{A#BdM_Ag`AnQj*@)u`q9ZqN+EdSwT!V~ksK@8qOiN3
      zG?~vEGkSiYI8&ZCOsf{iEJKB?5rh|A8a88_g10x4@&b<@`O&S=RmX6M50-QJtWgYL
      zheF$+o(&7juvwm;GKxpSL2SoP0SYT@b-6ZH9Z5;VZVgZ1NtUHAEEr~1A=I0UtdYpg
      z)F&r;H0(hyHMI&34TUYeYmYFt13Q}$!#+RuGN#r`>9s4ZhW%(|@`2IxmE>?U6rR?g
      zp;g`vXxNBN3Y$i9rZH+4HLg$P?G_d?Y`#tlaP5BdS+ltk>91_c3g1X0Ssm+EI4sJv
      zvE}P1<A%H-Aum$*^+F~isQ`|#tkH5l9~OIs#b4nY;yj^0pdpBsAnPB}a2zyY^Ne8)
      zzCLQZFuD$=tKn+*`EgRAqu%=l!}vKVh5QXlq9!>MnWCXv#)Rp9Wiu1&q^Y*InrF2{
      z8;t8^Jx?iDnC9%%oRP8mB9lR!#d$x@F<+gNV+0K&I3pFGr*#Wcb1R3<MNsgRbPfo`
      za801Ft?HjDr~2fzFzyu971;!OQo|*2pP%2)*+a=8;aCP{_0p^}KQUa<@Cq&~Xt`3O
      z8jK|U7<#0JtOf(q1hPAJmTx_cVpZ#1GYWkH%u??oG757tJl7QVHJ)@Ym9-O59U>M#
      zRwx%U#&AyD+_~oN+b_am7fr<BhmVPxuz@Q-R~`iTM`zjZ92NV?LE%$l3{B1bcCLI}
      zbzm#sKIVBrIvia@XXrCDhuR<e0^LjKNH1Y~x;?ar$3qqDs^F<bL>|PJ;r|-Zk!b8L
      z;?dAuB<}FA2hZ?#H`4>71V7K|ynr5zBZ>)*@kQ=m!Xc#bEF;2BLL9_%TrsswH3`X^
      zkoDM9pI<}u7|(ea<&UcFMI5Rp4%(ly)WNV5bUI<R1b!QqjiCZZ_$zgvCQYe35RHX=
      zi|AX8R-~e(2D*V7TEJFV=muQ69=Qu#++V4uk9*^yC)H{dCEJgRcK@%gEvQJ_A63+M
      z$4zXC#_nN|@3-K)c!xPo(w-ME%nC*F1C$PUgBjl>o4458w-LfS<ozzid=E$QK8ElC
      zPkqQ!A7Koi+BHQTj<uS`Yc-9#HL(JmLXsLaQ>&NU>W;BGX+g^pR65%2rEp(y>5vf{
      z0=F7k(Bhhr2iz94$u;1DJ>)rQ!F22gsGGPNdkA$V`VHdC(Dw526PmoYo%J4BFC)xV
      zKVSPR7`=(jd`s|4;&U|lZabk8SHXp~o8H?so{mo|Z16qGcb_A)MA5#bSHGiB50J%=
      zb`6eCr)wfjQ@(L>ms@6n-t};tQuMZCs5qZef0Hm?Ey^!8pv)ixT);NDtlYy%g2`T&
      z6u69yQ30tSEl%K<I^0HEvERu3cQ*Tv2H36|?8~_9!ZvbB)CF)F^=HH3Iw#(Z?qL}~
      z;nYe7A~X5CdUZ9(UkxCwH3nCqyC4Vo6p$7HSa$lvWusyKZh&ZUA(Z?Z;X<TYvOvV;
      sK5}4!eDvRfJjiP59x}Y8+Gi@r@k_$Ft?HWD<tlGOns_Zu-X=5uAJiKa_W%F@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@Yf~Fl7=BI&-H>i6q(Es4G+4DsNQqi6wP~vbsfKc?(4w@~vPl+L8g|2GQ>b@a
      zFW>wDRcHFGU+XAgMrL%zadgIyj(@=M2lx*hpR>7=1ST^%yXU;`^E~hEB!B$(<4*vd
      z#g_^^0!LP~J6g=to!Gc$Uz?d2wM<h_Ifi8_@Cx))j(401_*XRhl9AE5EzmwuYZe#i
      zs-9K>1$uYbRZr;Arkjp^cS>8;1p-C0jAkyyW*yrwmuRr>oM9Ty1%b}c4wQI!j%vm>
      zQhHXZ&M7!3Fi_Dmsbv-|dsR<UXvIjtJ8GqMKUxq_u^*}*UFcEJEudCB>7e2;dIk0`
      z>CP3~a;%h<VQisrqdp&w3bZh4Kl(7BpkJWFMXCux#c>1~h`yHBGC6_nQXsC$baI7h
      zkB6@-ctYTCz3)ig$fR|m58_Fw_$ji5!gKQdq>2#2#MQD{-AoIdYKGe&xr7+^VMyT6
      z+2EAr1gSrmEd@F(u}?|t;X24tNgA_IhLoPqsBAIj&gWP~dq3K7T1tPuF7h%QgXzMH
      zDqfOq3R5oI%ZHZ*JcBWr*0_puIL|Y~OzRudi@V??e0YUDBqItg48~3d4KtX_>L~`)
      zhl?skFv@nz<&!zLwb<jKM4~a6xRi6c4FZ=`v|^w1enUk9<4ko%H<z4cw+0D$z)l&#
      zq!iQ)NrFtPXoFwi;Dll7Q~A}TZeP`s8MoW5l$M#(Y(u`6HoeZW!4^4IZT0cG@#ILf
      z<Zbq&R|dx=$#D@734sGl9?dJ`*-`FTIp%C@x~eo8t4^HkaC*2q0!PdCdB@1a*c9?^
      zaL?ij-etGA-Dy~{#B^n({ETryg@z=jvC7X2rWu%&#ssIasDLTxb^&YIq=AYXU_{Z{
      zb}lzdF)y_qMSbiJ>XqIcqDCW^mqnn!QQdZoMI)s-Ium^&6uwb3&*`bWZ8&#hDH_CT
      ztf*IDRf>AY4-0DwvgP}+L5GSJ+!konWr{2JUV|A6(Mc(jnqgja*p11&E2gg@Wz|zx
      z#kz_O5LcFMQZtQ3J?AtlTltJm@8d%SA2bLqTc~i5=d`X?&`Ni8MRVDbnq_}g70G1W
      zQ}GG%vY_ki#6>s#{#h$;r}Sbiy4gYOyy}%dEKBYkWJ+83Ys7n4&KRG(P~hVlkmJI&
      zjXS)c;lTm-ls`7;;M2df_Hw-+8QMbUPyvSmM+!Lh00Y}-pWnvd{1#4d`{_WWfM@}+
      zEj;%#-(Q%F2F?_4_CmksVWaJZs%>N&UGveF{sLaz!fTrtixB1Y{?>(uP{bqnqkJsj
      z@+PLfqYMwO@H^s4HW<onbRvT&Ox}VP&LE5PSi{@QvVnEnWBJ~6?cESCgIT^Y7+hso
      zf<802Ml26KFJlgGF+qaf^Zb^<$G8fvt&txv_LvVvdg%&+OK7!dP=Xe?j$ZE6J5SX+
      zf7R5PEnicBn=Z^P?s!OaoEoNnN2_?uMBkbi`VH+va;t#UBmRS^5(M0OJz#ymW>vpo
      z9lv$SdWtY5rR_}IGLt0u=Yy9CHJ9stlh2&01|j3zmqKKrGm_uWGMhWOWh#O1S(wcl
      z&OnK?l^iy5#1V1~_GGwIW_Yg|!!Km`br*(@@UhFlLD`d`62qs>82%)~U%N1rW8mGe
      eCxcrhnWg*982%>1Kf5q|CM(0w=gg)DU;Gc&piCbC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!A`<J5QhJOLQMfh5L6CEZ-9x7@rdF9HDanJBHR~PaZPDWTZm8K%_s0FJdt?t
      z0lfJFzKO<ZA;uWvVP|%Bzxn^!ef@lX0kDmdju>I>MvR5&$iO@m_Lb`mWxsu49p3fi
      zZJ=C7hepUpjB?H9`S%4O>q}1wyCXfH!FKb2KqrJu!*%>XI6+6)BboRZKTaOr-|h*?
      zUFE2tPKcK)9fH<y`_e!h^Jy4J5f&`v$g|O~E4@q6wIv~Exji-zY{T{JPz$b=PguA9
      zAG}5=l&6d>oPpU2Jmm~(l}>0`2rcsjeJFij3?i#Y?k7qxTJFf}$s-jGQ~L9Nw!$`S
      zfM3O*$`leva@M(uVU8EeAjL7wCp(;pbD}yy<|#rJI2w!rd(g0tEbr1&2#d&Z6$<1z
      mh5~gaLpE96oM7p<!ZDjSBZcCWnkg`kB9>W$u)^IjtbPGpy=}t)
      
      literal 0
      HcmV?d00001
      
      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
      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
      H;fwzRReVo3
      
      literal 0
      HcmV?d00001
      
      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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
      DcB_g=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYOG*Pl5QhIA^N>kmVl*)>1b4o`L2wtz!ie}7f)EY5>`a>2VbUYrJwjGqz{|K2
      zTzCM_;u*x6NkAl7bTw7|*Y{V~*U!f%fFo??;V{%k{F!@7Sg#}OjnHFhjEqzs8HTO&
      z&4?h@(oVcnZe;K$VW=3PB@cT-CoOlEXAJC$q129)v0T|64`Y#iJ)V3IUj_j~?nEkS
      zTMV^bKShUJ4ZW__QVpAXJ%&s>8VDClSSi9qfuZb6B|7oAFZ3<%hk~K%M*&%KGNyc1
      z%-Bb17#dUR+-I6ZR(zax&-pU!ESP5TeAy>j5E;4MDAs{Em+3_R7I&B!&~_R90u&p_
      zB1d<gG6&0as2v50MXIzYcj(UTAH1XVmTJlr-L!g5y*?_G*QYA1qDmR*v4(YGB&^zu
      fbwQfMb200lSPv;{d#ajaCDb}mlL<G7<Dl^i{i}AL
      
      literal 0
      HcmV?d00001
      
      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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
      C>g7KG
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZzfJ-{5XQfO0}OuzK~S+UbbyJ(SVCw}1BOrtUccZ5PvO?w?HPMZ-^9*}#KP9Z
      z7qB<+HH>oyL1QR(W@q=e-#5Ga{{8X_;1I<aLWI3*aVKiF)U}>ESDuyw)mE-PxgW_}
      zZ7DkjgRs4X`f79|e|HHPS2~uMn9^~XzUUki=!}qRDcjY;)~1+vGV=BG`0)18{3Jvh
      zmTl=KAzZGQ1f!)cWgKCwClN=2knUQx?0M6nbOvHLk%Vkljo3i24cCiBLtj}gq10V=
      zwz~Z~Azz+D6Jd{QeeGEGxLz@R&%E!MBgCfCb;UUF3iSS>gm_<h&PbkGemA?TeGdF{
      zD1q<Ak4q>bf+*)0S0SwNU>zhlCVAzEGjWboXGlE<NSb4uF`xkhO=NhMoI}_^mMdQ%
      n$I%yPGU>C?>i!Iy{}tM7-U$>6b84Z$JPO!i4gOL-9m38Ju_AHC
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#+e$(~6kT(?>q*lrD~sw)Es~y#AS8Pc6D*;88g<YSJtvN1{Z>H|^w0<NQPG}J
      z>0&XkXW!Odd+qm+*Eax1*bc#B*y;0oUUY;i*7#`j;Ch|2vFZs&$u?KgbwcnnESshQ
      zce=&PR$sIgLwGzAp2LTNAyxS**Oe!o?lINxX5$#FW{DwqA|0tt88W%W_GT&HVDOjR
      zj)=mCB^wdM8GN~XBLbqg5kOFTDH|b#84?xgi0XLQ65bVW4a^d5n-3b?lRBOy{i-KN
      z40}_?|3%Wiv93_pB&lj7rE~ekEvHTMGts`eyjB*iyJN2{%2Kb9otJ-J@laogZcdu$
      z_7*)7WIU2XzmF;rM9Ib|x}m!6OB7yU7xpLQ988dWGJqAbDfr2j$et6dj5sckrp)dX
      zhE=RlL<0;BGoB{0h#-UY8BLLXT?-VRk$5D>f*u|;$(k8xPa9?f88)y<8NK6oaPl|!
      L_D^uuP;7kyvXFVW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%}xR_6ot>_ZwNnvAgCA@#EoDgF)mRyC`Ln!3BtaN4U7&QGE<E2;#0UH(ZmPv
      zoiyGKgcuVRy|=ghdd_Y8_4ED--~<&55kmD*Jd1{sx^d_Ey03gG?6DZS^76%&Q|)-l
      zLX5Dp!g`+lB=u^SkPoEq2zMa;fa(7A1%Yk|*|w(wEtDPzcP8Vr>Gxi8^7=tYoH@$T
      zEkg9LHXy{>-h)gbij53XNE32hN6FjSWGMZ6(+Hu^^=vi}Y{T_(F{Z~(Kse~GI$L*v
      zCZTk=z+9n5jh^-$HEPxd#<gTziv(*TgFuWzw@~pfN=Ws*nQzOEWBS=&=X7jNq6)qn
      zKQW<#I1-#Kt|CbCU?rqEW_ab4GjWdB=g7W=NRDHQF`$VU&XMO?W&vRn1+I)hk)si4
      jF=^OD{b-J@{|X&8zX}z~3u>vrJj&Q+4gOX>9l`D|(EW0$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g!A`<J5QhJOLQMfd5LBWEZ-9vn(Hn-Cpe7KaCTMRS7Tn;P(lu={zJnLv!;>cx
      z4?cj;<JmYZ#2Af-o!Qy>_WyV1{qyw=KoeCH2}1Q&+zZ>2p?&V_P>-~G{4kPtq0*iS
      zgHVe5O55GD?*^d|NM8xpk$%A7W%r0cJwmRdy&x1`=m>WzQ_oi)k6X?CCqnu_c`9rZ
      zlC`=+Fgp5LT1a9!3kw-SzOOuaI-Lxqe<6mhBozC4#0G+GxLzC@;f)FioBjVE-6E80
      z^S&#*u{{WV<&9f)C$cL?b|r#2kwGBFu}v)X6D3#!J@rTOL`4s&{F%#cbOqbs-|!%L
      zgh(OH+2ksLC0;Cn496^=>~SW}sm2Vsml(-&v={^0FmQ+h@3M0UD=2am36wZS0&ONE
      hHr?2nVfD8{m(6>zLS;@Z6qrW^Ypg+7=i3Qvd;tpgXe9su
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fEZv6kUhublPDAEK<1%s3>hgY8CL(hCoV<m2!zwnlwHQ^@u~t44Ih{`|J;C
      zd4OmnKI>QbBgTCW1!_{}Vb0#??8{nvuU~(^odL)otD%QsaNjzz(hd*O+n)QWIbCiZ
      zat$GdKKW3$oV|3xX&f+w*NSfo`7*;$sY_0lA@sUj-eyqEt^B&lFyM2~w(1q``L^rq
      z6xSHo8-^Qs*YN|(2`W~-!PP&}8B{+X{$}VcZ0>AKS5`|q1<H=UyQWJdSF78O9V{~_
      ziDZS^=H2%^0#ye=GZ4pZ!kTM`#1rRbBo8z2Y-cZ9Oje>4J7PdZI08*L;|4V0M1(VG
      zAcC;4?i%PrKSO`XcKBxFV3&JkYq!oBVkNgm<Se2{zP!|-V2JPpA8nr?90`783@4J^
      zx#&n@Rzr$Lbv0|V=?DD4z#JYiL@m#=nl<;Z$&l(~vbDR<YeBZyLGI#;*fD6b`PK)9
      zWM^7?0LiYS74S0#=JAAKu`?@Qw|qa_(dz#)ml7cf=%(B7YW$TgMx;wc%?oY}M$vJ&
      zCrfc(!?O#4T`G?TC$vYTO?%I=f`&)-Oh;Ft!dzG6%h{C-ElVL;t1Ba7s{oy}P<hfW
      z>17mA2#NHP-2-D_RBV>)5bb&ZH|Zrt9;X=bt$qiq#s-xW+&advbVftc8I#T(RXP*l
      z9~7swFl<&sEsU8}wS@`u7*k)VNDuDOU#AmT!VDI0U*3url4-kThJXv`T55Lu1k+cE
      zVG2My$&j{&2a-z^52@Ta;w9oM(&H^mRo9i&Sv4mxZ75@>NX&ha4F!zzYU~n1ls27i
      n*GLf{(Myl9)F~eS1iL;@!Bbgt0gEDo@)(hOPV;^t?_d4{J%Q>g
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(*-{fx5Ir{wSsY0Kkwp;H2qZv)qNoIsT_a&Bpi;&cYm$r*43juXD0#5T^2Kk!
      zZ{Wc-SW;!_s~=_AeP<vc;zQ=%>ArpXoO65f`_K0u0B#`ef=!@tTisP7x>ky;8u?dy
      zE;t1IGL}>I&B#h>TT7P&+{-J^R@YXZBq<v|T@n>=l=cdmKx<tlut8x;yVOj^(27NY
      z_UeiCeENk}nl>|Z$UTwHW%X=nQoueCOc3a7KBIZyLz4@BftJ%<CANZQxCI*KVr%oW
      z8(s)pP|%8t6q>NGMh2=ar9zWbHF%mwFySGTb_Gr}2>9YzU0W{iq%>ngP31^pb3C6`
      za|zYR^1BRrVMiCYRk-xB0vFu8>s8=^m(AJAlJw4j;QyKmwAChSXp#`^Wm(NpeXAv;
      z=31h`r(W`>UqJxZnMOZ(mrrdo&H5`OhwY`E0{Oh97Pr`1>2r($A_|5u%m5L}m-6c+
      zBdc$cna8YTPcs^I;TG|&!kgilayFOI3`QGMXt-{AaTnt*+&eW*=2-<%Owd&9s=2bZ
      z@?4<rENL|gtj=DHVv>!1Q0In~4<_8077*ina8|(_=E*;`P|);@z;JDo<BETpSURF?
      z#u(#_33%7@Wh1REWO)F*@^-?kUqFfJx@OGg)M8PiD{}C>;|krqoxU(TI(Uj`XXBBO
      zD-8s#{B{lsojXr&qj1m@@Et)UKcP_^qUAH%K2pd=5TFtpJtxtK2s&jHR7zuR0VFBU
      z4Sk_QTnY_-MR#cED|)H`&9Xy`o{Kb+aROSBK)q%eF=mzoAejldW2QE0;K5a^O@vm?
      zIYVF2^MN)dy9OCdNI;fE2P{CkVqBvLi>xi~t}jlVQQX8cZ56+<1cnEHLA;04elYkG
      zVu^Tk57DoJzJ0VXD|+jxU|=6k$ASIegkq=Ew?lMv(o-P)2D(thFs*E;=|lL$hcJQ&
      zQSU~|3{tHPP5gmaY{sQ8fS>zU5az}ejJ&P(Gc9>tqso6`34IzC&N8{rb_I?wnl!O)
      sf5V+a+;5($V8(=9pj`zI>m7SngB`H2ZFnRV$MBd|{xkH^Z*i*QFRgGJumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!+fNfg6vn?PrQ0q=uu7#M3SQfytbmH94aTS>gmQ^h5+1y4w__RD?wZ|M1OJtm
      zM2sXp`rsdBJUhG6iy9yHGBam>-*?WO-5)={egiO%`x+7q`91TUX*gUOTb_GxSm!pk
      zr0Z!&GK{J<+jLsSW@C@$8Ah7?jTzYTcO1ib?eByNL%M3&!Vz+rVW3#rW=KAAn_R;X
      z!%WKwjFXLzBWRBU9Xf`yIE6Grs;V#<kf$sLks>2C;qZ;1-QeCcvte_FT+Ovid)xFx
      zI98K71~5#ra##2adW*|giD9Bx`j>GX<CxG;=qW(`(3iZO#U##?6p`xO3OpeX*G<Q4
      zagSl@H&GR=Z@Hr3LU*w@xZL7iTll_koiwINi<o@{n8Ky70GAoYijmm}Ej{71Dy3~5
      zS8-j#HHJdxr22%jD56B=vUa((-;oUMMo2%-!{{s$njzu0878}BdlRPf)%~u5PR6`H
      zT8U_B7?dDI_asOS;>YdAFl@PwLoK#q3Y#|>mb-AzpRQIqhgEm2eJ&q1n;!T5cwV^1
      z>gJOJi@%jrPvt)qu^FcONb$J`QrJdK_>vOI)J4lNW#Ca8E&M0E+Hs<?sVs+;sJnq@
      z@fGq;-O-cfTzE9e8EV}D`s^q)>|c6IAq|Z#Qm2uD1l@t5W9U0a$bQ1e2O1`Dn(n$<
      zT%zX!a%wgN(U%c#UZf|Z`N8rL&h&4qB8dlTTQ&;9S*4%B81gY-lVU<Z;S0{KmA_-O
      ze2l4`+{Gize8!cJ7<sQ$LoYcB1=i@kPWl@J**bwIX;j86t!HopH)HrqiVc&SAb4$-
      z;Ij%o7s1OtndYfDzzf>(is-M2*FXW5QpiUX+*0<FWIohl^q-oix`h9$McgLMJ48s}
      LF1;<Ow|l<;QyD7x
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%Wl&^6g@X~?8F_~I?(cp3zR?;H#Bqy0(Db?6cj+BRrV7zB2yd(*-k`0pr65p
      zP1h_UA{H!J@Fjc&;*QILQrOIW%zd46zW@C46~Hb!E=q*@k(|m-qVmowm5t-6O7~?n
      zRE;M|p3Yp@gw>)VmdTsW%fXR~a)R|%%?P#L-#?EC<*AG(ir}jE?{um%0zD%*k9DH+
      zJ;GM=eAD?%t52}^$FG$K3(Eo?R(NT%)vto!3zXp)@1lSU$HN*fyI3cz{~L?I6<j4$
      zWE80^YuqnJbxqrKf%>0cyJqT!Km}C~H?isB)*1W<vn*F5f!k>C9nmCBRgxd-k$SG<
      zSTk0>k<qU7bfR8NMgx@|%0bL*)OzDc#(kM;6aP-y`Ox%ioZ|nF1Wc)w=P}dRC3pwp
      zNgAoAx|n%JupNV)Ai7Dy62>yi4EN<iMux&uSab`%;f_7uFjrW{%9iId%S-$Ujy`ae
      z&GupV85hFsIab5=9JTg0R2R5(0%w71dx8BCA`Fh_2u|RK3)~2N>&Ng|a^e#=mvD#Q
      zO(qk>a*~BA*;pnAbuz?O5R!)nw1m4{7oIM}7MdLK>f%r;JacM^l?u?}I*a{n&X>@}
      NJ+@wP{2F%P{Q?s3m017)
      
      literal 0
      HcmV?d00001
      
      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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
      Qr}!D)a$67Z{{oEv19YSFi~s-t
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      SbaUIt&2JXnyjAp57ySvw-{JrO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutF;2rk5S&fy7_5W@6GB=#puj?uM3GPs0u(`EaDR4AaK_w8_L+i@Q1J*VBnlqD
      zdk`gJZD^1vc6N7eR<nEWU$1Wf_ORihMHpq`UW8iOFf!?_w1<mDA<NQ(Ll`t~xzN|)
      zMUu(Xdgu^_4XaET$wG--J%}WiEH0ZimPM(IzB)Z3&>5jOGrF`w+gRk4bWg-*^6~hT
      z5jqp4m7NmWTiY?gnVE(3(Z-;QE_#IiTxoe;-6gWP{Ba28CKY)s*p(fBNypx(k}#hC
      zf5!pAk4#mh@>tbd27j*Ht%saV@Ddy@#~2=#I4|=Twcv9_^*W3z%<MNk;O@Mj|J+Dc
      a8GV)l6F8V6;Ht|q7GVuT&V+Tw7DnH8)K!-N
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h&rZTX5XQfOLQMfd{;6DyH^9Wkc*GD5Y62m8KslN$b%Tp#YuaLb1)stv@ZgEW
      zgEucelyO>!F(e*3v$ONt@0;CzeZPMII6%!rg0M9akHXe6v<IGZFT=AZM?Qqg(<Tf;
      zDefxI?q2>j2!%lUO1MMm2Mk_!PYKi`<T{=XLZQQ<aAz|0`ttmFvU4*bq>q$VVVjVw
      zH--eG<K0RNNvvmKAw$Ubm6jK?=}7ulV&qCfvF|x-AlQcM<)#tdsen-H|2J}rP^mAv
      zuFzw95c*1wTa964R*B3?1am5bK#XIPSm-ZGum;}DcjUQ>#wf46$$oSIyWpGf6Y?lX
      zA<fz3DuFfrSO6K0S>8G1Oq^5AIdX3?lILhK2DD+|7zJKs7Z5g3<SG&<af}4oOh#<F
      fxi?37RiVq~y;z~Tpq2{Eql!(|;J?eK6WIO%m7ryf
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMU2_vv7=BK&P13MXNTpPa5)>t=r2(y?rlkc68mSFZsJ49Qc5^I?+uh9W2K`6g
      zc%d`e&cKXbI^*B)+H3C|o^v)I+ik`RCzCzryx;HhKIi=T@3Y?kT!NKHMqu)Z_0+0+
      zGODlp_O~)>?snWf41wcX;ac8Ky|w*B+EE@kfvJ>vs}niC7YgL9b~}(EcT=kan<nF4
      zjpYr2%r|X;=~(Od^_z|>S7c}hPABpM>c?H*w%m>%L;|8IV8q+pg5x>S6@hHEwn6E2
      zzb%W%qGaM2CdMJ~l8GZQ1twM<Pp)-$w`FkG+IFQtX;p>XumVS&dqN|6?6A(0!#anp
      zvy7Y_NGqbVQQcAri#NWvW!z>Sul5mR1I^Yz!~SjG^N14ruf~Bjbn8*zcsq@z3Us=s
      zP+%vK(aLf{8JE)sPOFV=$0K?<*9jx(soJzSXW6PY!g|PE4YHxq9^2tmy-qh`Ez;T*
      zI906;hLBLO^$D7`x>3S*I$@jCsBw`vjvM35(Qsg6w(Exk?gYaeoUUqqnDn5op+<Pg
      z#5jumVh5~IjrIJ}s41`aOyp4@_)K`4yiu|bOdM5YD23gQB2aiQ*pXheVnvpw&=!+~
      z(rYKhCjB*2R1kqe<i~R(wfgCk)68R;C=TyOY<#WjxNR8}aE)`iudc&l5ldK6G`&H(
      zji5zsqkxYI`^7o^tM}F-nz)t6r%XTUDw$Zs6&3n36KiNOo7L&CBY_K}avWk~uh2#T
      zpVN0%fut*4SK;mol*z6Ca3ZCS%nq*VVgX<Bx;|9(+!8n%KJG?s|2t0;tAGar=hpnF
      z;*gDUmvfNqisMz(4XlLv!Kv7;6^2EWv7#o^bC0>k%eU@#16wM_5U1fiom0RVXF2aI
      z|6?%tBNh0t8Hz}H<(r^a(t+zq+VQ>M_c%`r$Z!V~XZCSoCi5#Mf95GeE6^&-?*m4<
      z!&r|n#giFZ;}oWu!obToP01_N7+lMgyoNJ}B$Y!FRdLemb);?Hz`2yon|LcFIge^e
      zQo~G2@-}8uk_)=~L3UO?hdON(9%@y1jLrOli$8G_Ly^<MzY-9P#SqZ>9lSfjc|Ps@
      z_ekgWb#>{?mw!xU{%54~hxn+MS+%Ij&SX=bBA@Wg493<t2rj!=7+J_<I$Svst`C7w
      z_pn#UQ_VwQ`8k$0OIP=Coj}h2fkNr#4<s4)d-!AztEJog@OXI-cS`r-{iND|!TlaK
      zhv=199K?Byiz?2D8Wy-8GI4n@hAmDtGvt(>=6tW3;&YTYOZWHj@b`njiupvW;vm+e
      Q{}pR#L@a@?bjGh=00-EbN&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2;@#Ii*Fywno?;QZw5)Dq9!f*iNR<dXcNN_GYoMg{?}
      zd`@Csy1su>R%&tyP$;=5HL)ZWp`MXJTtm|bi$T_m3|ztarA5i9Zkai$j0|E3Jy1LJ
      fK)To%85kLufsSHeU<6vp%D@I<F|Y$kCI$`wyOJ+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXS+fKqj5Qb+#Ifx3Pcvd_MY9xB=RiUfdSXt5*60b-ljS&eLDaK2m%L^aChcf;P
      zq6=Pizkg=_nVs$D*ZT(%ozY2@LW~xh-iudg`$56!G#>pxJ_Qe*b~j2Bj8gqr%WK~k
      z<XzKm1dOH~S-<AIVpyWa88N|VriA>!YX>#2)$_yfjxmZO&l2S;ZY$x9(G&z%+;CZS
      zp`;>=5>SewY#OH7Pf8A|oU&Q0UaA~65bRRzN5HtMzs;)-A68*Zr4?;ym?gte=Cn1?
      zq=Y?&;L0qFhHj}+FH4hK#;r<&e^ONHH&x3Os<bXtTlA&Wn0&7EETg#*-IB7R0%=AO
      z1YGGTLZf(hxJT?aC#>-`UgT?72!Cz(!(|^bS{{3d-!S~{|NJsJk^gU~_S@+_H~h<o
      zmd_|X@|LH{84G8m=9{GznxqIQ3JOsS9M^aXoX~h0JfpFyPimY3&uN?n&uhE@&S<;{
      zUeb6OyrS_cXiejF@P@{l;H<`5;BAd}D1?7vm-cYOecW&Y-vcN)%IgZwNB#RBe**^k
      BfWQC%
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%T5A85JhkCG&}@BP%+W4156~woe(zof)HJREKQoBgRRg*W_pZ2;0L)Pap4E}
      zQN)^o7-LLabX8a7)V<yHxqSZsaDq}CA;RIKcouanO}%ehPtpw3Oxm8gc(LT%C|k!7
      zAshsdvg;jfq~myVBgdWFZ-$U{rK7}jC>@t)?mFiL>JrjzTf0VRGZa%#MqkhFyGz#^
      z5MoWGm1z;emFkcXY1?C&Kp2}TB#<OzdP>V1Z#I(7K#Zo6kn7nN8wj@Hdfkke2jvpV
      zy?;K@AQUPqXe#ui-ZzfYlSXyudlr1pJRv@lt}7;iSD^P3B_#T`=UDPm`LEgkds)Z+
      z9LnH-@rns0L=od0=PHB^KCFWz#}s!?ITPn-ZGrS#fMhr(7z3J!poJ{oQY#2s$Z_Qh
      o<T?5REhc?7Ry$f?`?tasn_mYC#TB(yU>-&6um)k5r$gBL0wfJ`y#N3J
      
      literal 0
      HcmV?d00001
      
      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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%0Dcz+{ql5YkdRU)HPw2Dg8GSZI^?7tw
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kVqmTFP*-fXJm<T7<S-3iXB*m5ZPyC<denPdaUnb;xwuv{S?<;|Jgm
      z_@pmB=z}KG8cFosAMgwO3KQc#Gn2NVHSuN6-shaP_FDU#Ge7=({RUtT2^VY(!~61q
      z9M!lU-Q7;?JlAyjaP2V73%ZimTyQY-8XHtu%SLMp3_T@YRAe>DizV8)o4C!uHW)fr
      z^IA!lH9aY-W$yI7e=|4#>*sF<r=k_gI)it!PPd~M6)hV#7Bl>i7!nL^i;AY`HyI{E
      z&0Cvi!bt|lYCgj~AaV&^=w%4~7c?QT-J6QW@0W8aUVJF0R4x?e(_~C0dz4#~4*jW8
      zV(^&)T6c?#*mI?<2SXTfVVHV!+NuN}&NI06ylI`GFBER}<bfT2VP%w|zlD`>vYpHZ
      zC3w&wqKgtFbh<FX5U7_-s4CCO>T)q#&T&nzot+2c2n+TI=?#e<xU*bOn8(vj;Wn2`
      zc}<9zkq{MvJv4idmr8P$`eW`k&Wqr5i7qh=)XSRAR?3Q+;YHDlD-y2a8iVUVT#2nG
      z4C9TSwo>~%t;buoAqKx23sm1P>wZO}ntl&rSd?%BbVJ(YLV;@;hLKRB8E;953&e;U
      z%M8@77*++CZtHZT2<s;Po5YQE2HS$4wCv=|#WY`6#9bL^els(o6&R&svC}KFQv;l6
      zqs&E_4Q_bFsZs0|XGWt~>q0kudnnt0!@#*ClT)@T&U`XZef0GZ8rUM92k58BZ|=ic
      z3{VDQ7QAGVqH`444BlRg_XXt+S_?*|Dj2NdLS&N0V+10;V~qK1Z_#mr@x3ZS-|HoZ
      zNF4Bp2p^L;naZZfP8tDZ3<(jFvL+!|lMu8dP(j0{on%bnyd@?|qY&zhd`93S1vUtW
      zq7y*Qpq9)H7B$0E3vd<Fr@_x!f@kSxXSTPo^4Nz{m0z|5(*v-;MY1atE}bB@7oqB3
      zaJh<kGBNfVgJRNq-O4M7S8(ecoZh7hR=jKU5ngGa>AL7H;|z~5i&t30QA7Qun)5q`
      H%DaC7Im{%Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*W%TC)s6g?B07>r9GylKlrVi8zi5X&GWgs57{rB&0ipV(JnkTaIX6C}O>iLZeb
      zhy@?OM<K3_r8<k5JNKS*&wb46+w%*618jL{2+Ul`YZ+>?;lDr8_JIdiV782<QV+sk
      z{VR&Cho-=K8O<pk8D($6-$q@llm?WX#8zcmpn0UUvd02WXXiq|J<SsG;b1y|he?4}
      zq%@t6hJ7-BWj`f>c9g|3y^ux~eid}>rOLU9XuPv7>zWalS?KJ1K(z+DKIXCLVL@Q=
      zfAgoQ%=0Ld37G&(SmxXT+1^cVX;{MqR>vf35Eu1(*~rB7jb{~@<R$GD1q6a0T9YZc
      z#O=1ubev|n(u1F5FSEqMSLW152(W=ofq8C$ReIKt9DbKNNy!L=o!U%{u}-%dv-+E{
      zgf8~M``|Odf7#%}8)k2cUx#c3+lk#r_zxu<@a-2g=N2x5pV$vRNSHy3J>ECw_$~zY
      q*cJlr6WaG|8_WfoMa;RY<+@d_gO!rCiZ!-=l?}A<nSB>uu>KBsAc_qD
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95Iq}jlg79tgi@Lm$}NS&y(D=qLZSskP$(6JzLb}Zv!q+Owq!ez_y!(;
      zKLIHbh=+avABC7*M<`VlBp!BW);s6S?40qh-#^a)w9w2U!%#jEL(vFi(s=v2v+IjE
      z?u4QzqiQP$&QLVhz6kn_SKSloB{^gnR?XK~dV@$M9~%3S8Y*A*W$&?<s4!s2CdVqS
      zHi^D7gMXW0VJQ5nr&I2UQ^`<DV@<MyBvL{DT+kDd2!_nj4uh?caX5%Pf>l!3-)eTl
      zo;)yj1kXNHfl3}Ryr|8r<YL;Ro!OlALk6yM<iT*&K@RiUyXGJdTYJ|XT!N#$vV#R&
      zwqaq#K>;@yteS=wIx3KRgVU~z-iWSmo*sI_KNOMD=gCK|o5-*-tMF=z9%w}a>i1%;
      zKJ|)Jscjoo+|OZ+N}3^pg9oTF%nQ$xvC-?@|Fx;z{zs#xDl&sb)!L~r&uChxdFLl?
      zOBc!Dw1YrK1|aG6g{Oh%hcOMqOPL&pJqKH8Fy!B>pl5;@)+RMi56*Nu(&T88A{MPV
      z@M2NR1{6zLG-F9JV@WXjJ2JEiC{pwl@}ARqj%>wUAEV@MjIro$j<MvH`54RYcT~O^
      z%uU*DgQa=kAF)bjhd2m{TewY@;STOjSoe`l@7xiQj)-%FB};E-v@QR@y|0AGK(m&>
      k0saXN|BMp<f-?CR*)7x!!o@mSo7i=3jozT0(>QGY0ZirfM*si-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=U2oGc6g^JTWlO_S+QERrfKebV69HZeld5V+lL}0HOhP=lsnvN34ocDj|Ahzm
      z2Ow>l1QOzzABDKiGA-2x5An5qkI%h6$NBx|`%eJ((Y9eQT-@bT9w?CoubvP35l_=W
      z%ts<=J+NUh)be!1)i`)I+!bMFV~$}Z-%Uk0No4jh*h=J7Mq(^Ry)cupVsNHBYQ5u$
      zP#MGW;FzRTq07+Fup^p&tTOR|@bwb@uqZ+29!e#%b%r&+lrGbiwu@8kZ3e3!kHi8P
      zJQp_R_3W&R1vm~&G+b1%#9;aw>J6k4PbY7OB6-P&k<gvQA&<6sBK5l1w6YzUGBgkC
      zou(YMYbFztVaacw?8?Sv(&Qhq+gM>(ot3v2h9XV1JV_iCDmiH4n(qEO!}|XfInp;c
      zji;+G?!1U6NhltZhvdoZJGiTRVQ@E<5=kz%pv!w3DvaV(s__$%?ZhJ&x8XBXm3Y6Y
      z(u}K+n0o%38I8InEy~6f8l6<Ki+g03NnZs<t*-q8D3W{hf(`nra4CC+W{+rXQuI1^
      z_OaMm+efW)fcm!_c#cLVKR}nQe8PEJ>w^TxGA>Z09|4yNsts6quJHrS*PT6L+e7Ua
      xt{mX%SArVQbc?!L<um3hU*J(Zrfd|HCRPb&;09V09ir3)fjVx|Xpw=p{sNOm-)R5<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>O>+}R5Ph?jy_Q&PER*mVSr7*#S@xRG1Vo$=VF!T>!8Rg3uBC~*)Oy#oS^>X;
      zUy=i<GPo+PO76MvamXdNq^Kl+B9-phm9)Z$gS0a}-LK!g?w;TN`}r3D=di9r6PSKz
      zJ+e$!2Il>hYT2<`t*U1=q(5Eue7Pc9UfZur9SMQ#AkU7MK%!1T0%O&t+cul^hbDuR
      z$nIKOWKUNWgk!l)b2ad7w@GIs*KF4g76fkP!s7v4h+fF7v>&BEU%o~e%U(mKFoc5!
      zk{A;>GZ?*xoUbJzaLB+gMtGGrpkq{EylT7hPJ3%Z`fJvPqpsrBEvIJrHt!>2BG|NB
      zl<I@`=%~e4ca+ouXFnLx<44jqWl(Xq+X3k(tu28gxqKLGduHr_&{K;~>T)}<J-4Of
      z6M;!3KD*uRp6HkoC~&p9#ohM3z^i+X$+c7kjKQXm!6{bsw7^7ezwAk(SCwuv*c2Gb
      z<ts^?K~Be60VCcL2J$HI{UcXVp$&!7O-cUFjiN><>6oMVE<tkQ+RPg`f^!0&4%Duv
      zTM`#=NykNjQ*oGhyLX)pT*l`D`i9k#iqBYIf)Zn0F>n<m@qs!IOs9&+`W$26rBMv0
      zuz;_1d_@%-K*7Lud_!dlbqMQw({dY*^aaeQedDte6+V)wFQAmdEN*b276lgiTmOCY
      z6Q|S<l&|UdwnJKFuegEqUCUYYea}x}2^G$BOBKAv`>KIu+!09fV3)0Si{_;m=fAe;
      zdyjc;O3@V*ZqKUYJAq7>)3W9K;Q3p!LFMRnu7DueY)|s{dQpuuoBX2E?B~yOvZ~&=
      zC7b7Zl5)f<H^(HX`6{j}ePx$4;70sy#5^_Q5WT1x()@1FD$TD3eG~LcB1Pv1Xw@JO
      zwj3(V?7}F_KF4^W_#6{Ikxj!S{ipd{dx>G~6;j%3jB9UjnCyix4j<uT+7SYE{!v2Z
      z6=%}aigPoMV>nKh6SPW@&q<a0GM%u$v4_lhVF%;8$UdWen0JKFwBJ=OBlL@M(Rg8+
      zEX@BreHmkv<9G1ckMG3)5sM$~#?PP_#XpVs&F^8BIhZ>*PoIf!`9=EL3w*hY^0Vq5
      zmezN1bGbP40=FL&e^psCn8MwNZ-#CS?N8F@FPxz7l=c=`?Qi6?e=w*0t9WFU7V{C0
      hEGcylD}<CIy;iYCNE+^|8`SWCzFZ|56?~7Q{{uX-zw7`2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(ZBNrs7(KU}6iOX1USujNIAAM-fiEZ)L78GSQxZ@jAG_@`yOfS}9lr|`1p>yz
      zm-xXSWqfYik(P}QZSTu@?m72)&eOmDPQL?Kz$+ON!(`1kF!DBc^B*>g1<PnOiglyH
      zophn@a9Z+bGU5#5mqE{A46%yoFeHl})H3X9e#>=CyQ(vEEt|IKt}tjBf4iMjk8J4K
      zZH9QEUf~L2=v5)3y9W$cRV2{IAeW4WkjRjT#wi%Upo}Dg8kVeL2*VUs<?gy^afYEx
      z)(;E|6%5x@TtOE@U(vMryXIbrJMWE>2uT*}Wy9Jw98=7L#kl*)Y%okmR9u=%N=0v3
      zB--*4&5*h*j*zjYV-cPtZ}LXH>6A&sVvxVE>fj>nDNVQHbQu$Lvx|jUYnm37TR|FA
      zGA0@NFCtV-BSUFBFsvru*kzas^KX=DyzJ^75~*Munkd=~!*Dnxa71=nAZAs}Ay4iw
      z_V>A6VVLa%Z7WkCTNg(xsJJHz+wIo<qZK^BqKt=B|Ek^0SIf1$aI=a>cubDkH3iQ^
      zN1iaAGWLWa9k$TLqPCK&U<u3Ou1^`>1P6DhMWm+!vxlo#jL>`bw~ak2dAv;eh0h}Z
      z24&0hgm34;Xa~;;;go{cw#^++IB&>!+44ZUJnF27K+IDs#OPnaAc=mUkwg!5A+7Y#
      z=p*fl{iHUNJBFfZU!WeL|0_m5d)QHWCj>$|MVEAj0qGl3w06gj!gbuB8O7r!#^_8j
      zx`jTE<u;*w7MHjMi*|<b9ikXH!QEqIXO56N!u$#Dzs>zY;tWeWo(%nv9THlCU{4}W
      w!yiaVKQSi#LPq)>QlOnH(6B=HqgJFp$10vtw1ns0DQhUuSD`(I7g)#We?P=hbpQYW
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>OHUhD7(Mr5n0OfCLI_}zQrbd-jT?tP(>i?`(mFAD05Kt}PRs-*8fMUV-1n*v
      zDa)!-tF(*mqNptkDzzXrQoHYus(S9c>^#WA<2(2J?m6c>-#7Q)|Ni<Lz#P^zNP($a
      z=0|4PwSw~1rFzvdTdlfhu3P@pIoq+8td`gIo0f)*z~n)hNtQt7CJzZ5u7|0%S5_bu
      zfxff0YX@%$oSBJ22k=os#9nz2q0k_9)myi8^q}8>21DS)!B`!fLL&<bGSG`Yfn42o
      zt&8og8<xLf-cVA9>R!`y8m4cn_jofCY}zdnJW*>>wJOgEEfYBT#1kD=RJ36QHFvum
      zEC;@2ZV8Oe6w;cz0z}srK51Ipf$h014S9hhiMh2)X+*~{JgwolfRRL%^#&&Jj6lEL
      znzwzc8F>Du0zET@>pD$&*1&Ukp6V%u(gdDLB*fjR=$OVy4JQ)Rc;CPbMySi%w%ka*
      zh9WEIX6`CMM*$_(vlj#g<DMm>p&HxM_MLQQ5^8}gWz{WrBiIZj*OZu-47`k2n5?L)
      zp6jwE`XVs?kn~QBMZAXBHJlL`2?Zvjm!3B82Ig2j`FJd_+?ZB*de*?3;N12(9VO>k
      zdNVyOF!o^6(+HW5;XMOYWpZ!e(PIq@iBFE{Zj@`J^Ig+f@O{tMF^~6^PalK@H`M!i
      z0~f&7WYzamHQOzYY$^6IL|EDMy^q!CR^st_Xjj8Ufr+&6Mbo+I`CHaH#iYX{AP76z
      zDdVwOoJ46eFCXPSs$Y%ja(G>+(c_$wqw7LBr9^O&YV4XH?pvJa)x?jaEu9;Pxe6%x
      z&TyJD+ryiStx{hzR~h~^9O6!vt1FOUyuUcR54~9W69d0<TO!BjVHJ{}p;vwmU4B6b
      zU@}U_Acpt`^y3JI38q$xKyq~yBm5ubD#OTFNc17ksn}%k4-D*K{6`EF_vqj39;SBh
      zqp+s-_c6Q6oQQo$NtIuc`D^6lHyD<;Lj?+3>4+5M$a)H8@(30?$EPamE9R)Or&G40
      z3EPW{r9Hg5vnqF@SmpK(59KH`&tF76L5Co}CG~ft{+`r7ATRG=T>gaP^5-rirc)UM
      zv5a8~dK>Q$NvNwL7Uac(@)7B~yY>5+U)#sI#S$H;t(N{_V$_($Si}f{An)Rkyoap(
      t1%vWejLP4-$n!CImV1|QnFxby>=i5#L1LMB5-YgMe|2>UG;j@L{{!;=koo`s
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZBNrs6n<_usdQyb-Uhy)$dGj#3{epsf{L1uOie&$@Qapl9ha1rw4K3^{tW#U
      zm?%pm@dx;$jOX@cVd6~F-rn=_oO7Q0++V+c`~+|lk5woPQ+wtIvuty}yt!UowM@^e
      zI_3^{bI*ju$rSEXBpD{Ug|@>O5<9|WNLPbU;glsxg`sCj*ur0CSj>m6vjr<1j=y$B
      zjUl<}>~IYUq;#k_ucD7ZKV3&dKQ5@q#OA1mjsXlZs15GRZWxC0Mp(--?M8XScZJ=k
      zXwWe%fkzmIqb5)Ljan}lMs=J+4?}-d*!)Fvf1A6n%xwueP<862RWn^7_mMH_?+TA$
      zx?{AiBoj}mx;z0ZI01&SZg~`$Xu4LL=x9<2U~YSk)%5wMbf;+Mb?!M$w@xiC{A;Xk
      zC310Iz|53n<_5!L1QDO?Sssm=WHPVAK!G7c4Xm2BV+$fDWIq$LA7jY)l8zb7l1})c
      z@O+{ykvHB*$DB?|B}YnlPlU_szT<vWaf>0>O^mWi+`EQ(+>xy>{7-qEQje4ucW2a8
      zEHVtnLR)+J^svqkeBsz6N!#2H&OY#-mJ9jb2V&DU0`|k%2RrZBtV|=duGuzs16goS
      z#Y2W{m*E)tBvAXlVU9GJpxeyoC1KK6p_gt4S$gTOfh0XZwook1w4fDEpl{6_Bi+K#
      zcVxc?31jq4OBm%XROKB;6cZQ8RtQsZ372U{Ah?3@pi~xDaV;p7#RUDy7OrD5D*B1?
      zq@^f}6}}-`Y$11y>F1?m6hC8_mhu;*PcXk#D7A3==rubEV5gDCU4oSjjnF($c9Bs8
      v#+5zf6$^%P5HuDREVdgf;vVi3LI$I#5DN-DON61|0hVdi$j7jPM;QGB7Z)^n
      
      literal 0
      HcmV?d00001
      
      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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
      bP+qNKZZ0z`m??+f!~0w#9{asm#?Jo&a*=(0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#jMy3`s{Q>4o40fnZHS+9~2ah?huhFtkb_mDbxKIfUs76V_y+w!gqv
      zU%fo|;*(43S~M)hOP~EwF87%kl8Ir~@&V?YefIhG<@?Ug-~asfCxAulX^0Rm-4&k+
      z!;+4%wNWZGM5|S5ikh_N*M!ZM4cTh8?W)ueCCr5Ro_G<4rRCW72+5M`+jh)`aaY&|
      zqphlwJRxd{eMv}o9t~mDjk05#R-MmAmQBlaRtV*^cO06Smt}qsBrI^I!l4Vznv7!z
      zkLieEjH?e1!^QhCGL;wzXLSr?M6D7!G>j6)OQt1nwD)(Uy(xAYZcWXqXjFu4s=aTF
      zI(ue|5FV+&)2a&%mjX`j|22UyR+moEI%qrGNh$UTlj)3i*K8Vr0|t+;eo>VNj@h(Y
      z8lEDYbBR)JH@hdQ%BOWqVup|k&7s#J4ReI~Fm-tKdCiPr7V|ou!6kym!q_!c-zEo1
      zyT%9kIMT>!$Pg|J$VoZqn8E_V@O$g3?Y?<n+%^w9wS_ey#{DWutM2R(hSHg090nFO
      zTqRr_2;?H^cn(XPGT$qk_c>+0wZ;<QeL>oexocL1Bbnw@I&;UXrX{Ow+jQ<3Rdz4}
      zUT#@0>3A8h5JnlnjX=oxWdxsuU%+5xD&xG4=kWsTg)x{6*60cA{<Fzzc%7gJiBSZ+
      zspBmaSPDC$B|UanLVY~vV_3yI8m<v$gV%!-qRYRI>nIY=RMq%6(e6|qUf^DS6z_8X
      znEW`_aZ|$$7C=Z09q-|N)~HvYC+_RQsx_qDqy3bA`Stf*;I^-ztRDU*VWs~$hR%^w
      zfie{hJWaf$-RMQjk+vlotG3<bvbOMninHy?q@wnBbbN@92r)I^3ZmU&3H9;4xo0;&
      zS5qVJQ|{vStQtNcOn2L~E*iT{dtcU=gzmE?5W~*&8h@%6&wz-@em+5i`KuvOcBj62
      zW88g?5#aBNN`h5Yv@B`6cBT6<Pe&)e1h~p0WQc!fB1ovY$*Y8#n*1H+zZl|teuh^y
      z_K5QLY<A%YdiL@|jAwHXG4TuAA~?tY6Y8A4#xQ+@IDLz8`VQyWp7rkG0xt575qMrD
      z8C9)Rq=>sxu~i;Zc$_Uy@G8naPr9*}*`oXt*+Wb}!t5bZyc+M|*#~U(qK_yK`reJG
      zd*0oMIb3Fos$$7Uih1|1eEH*l0DcGn#JT|ddVPR3A0XM6%0ve*K7!G~tG$HAR5|n$
      z&ePABR9}wdC6?^sF5@*H_bb2rrDLpYcd_5#)r8s|;_bv*2c;uyJSZJwYx@Yd)^iIT
      z+`g6j%dK`6bNJZr#WeR7)IoxdFwNgN`V}cU<`Mim7U>T+l^M6&OMWUT=HgQbMp|G-
      Xc2H%c2y?EwE3wO8r32zQP)G7#2cskh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O>fgc5Pf4i2}w<wCM0S3EKo|~(gw~&y;LAYvOr29cPCw?M$Wpj9mJi#!vQ2B
      zBo6!leiUMM?Sc~$i9@opvv1yfyz$Rp-+usjhNBV;!u~t&z1Nc>>AfAer-2v8Zs?th
      zXm22<VIl@14rkF=lwc8d*JD!@!JI__q3Y(5$An^>M8caAn(2!l_WJU2mYiv~0t7-%
      zk_!U$`SRSCesV$>bry*JEstwX%RNqkfhQ+DCiUec^JJZ6x23%O?vP-ehUcOJ6Pq?R
      zP~(xT&-yoCcUT6YZli#rvToQY;hM5qHp-|FHeFweSF`CzL~p!NAQ<h2V=owbk+1HV
      z(@HM<n6N(Qq7ZskS|LLBzo)}pN^h!5(8}cJ#BxnUl9Pkb?qt+U^CDDUd>D(%#1Ca$
      z!b3ts(<#{NKQDwb6S|q8W~ZwpWe*RJP`jeO5{5a?^oqUo)r=a8Yj~vi33gvf5o!Ge
      zCw{^u<~J<27~IX`!0?ncF?r)n)RkCl)s<BGWTE)9__qO@ao5@U2t%XV&cQcSox?e{
      zoE>Y9hSMy}(fq;?18x3qF`fE^3WkA-VWMVOXc+};^V>;EfgRlB8yJ5Jw>g2b?%*yn
      zC`*;2N^9$aR2glxJBk<gu*<0XY*`%lK$q5IOK}vOuV{Q`BQ2z;oJLtER$VY4OHA0q
      qBlf7i^1;ndOTpEZ!TWf;B6w>#b7MuYfsRhmg~MlsX$S{6#P)AYsr1JH
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+inwA6kR*9Jzx)U2!vc9Ei@EjC&A&Clo&#r0F9{$5Fp&d!^AlXgC;Z9c!K&X
      zed;d+2@(k;1TTH)<r(_WN>wjXtE%c3R9$DrF`ig}EYHk2`?mJlmv8@j`W(Pf%o}JE
      z9DZOuv<j{Y3ODA<GmcfOl|5@o`3L9KiWeweMrQ*F!GX6aH`D~%s=gO^70(fLl|y~U
      za+eF&0^fF*i-Oc?+qHu!L4GI_x5h5U1jXEfATi@DsWjS=F=1d^8at3R&>=9JA(`mJ
      zPC;f_1y>p<b`RxRacqZRmx&}&f^6A#)!gdJqVlg>i;mL3y^7^5SiY^#^~*$X->wPj
      z&RS7#WsJFIDw<FyBvjBBORI@%YPPTXB&;K*p&c-jc~$dP{R&}?*BNUj^j&ZwyQ0qZ
      zLlgV4S70n!HC<GF_mPQS^rdkShYWly=xL_137(0=7$RN7LQ57>Su3-ayW}WeP<St<
      zm_bojF0X4iESQRSK)vkE*~R#XJIXC+SEDA5pg`uls&Z#M*Hx9k_FO^#X4N+f)sPXw
      zQ5-jLOt2@GaYMtz37iykGGV$5lpB<lyByqSnTB#DZ9ZY*6P#jLs+8R7Y7k)~hnrz-
      zuh1kY8eld18{uYyph_;^08V2PXG~1#xY?-aRnM&{-S!4P6&z~VYP*&>-E5LH&SF~A
      zJ0n<()7xr9PtkC{kNLWMOHQTSf`RjFj1Za@UOxY2MOC8$BwTBSJ)5pHXchFv>iH&n
      za+7lE6ibPRTG(WQ?#N(EU@jS7)k1z4;958x7i>MayW->=(a5+XO6&_i%wKVWvs+dh
      z#yAY^+=(1~y%G4;#y{5#Z?^O62Blh_%@2=kAe|pshxr6uk3z-We0FHDe8*+-J$KR%
      z=;q!2$OL=P!xN45u+gFZ>c`$N#6Ao}Atb|a24(l2VaM(KV|*~o#{vGk)-kw&+$F{w
      znHycl*m#1^@yX=qOH6)+p3xVWT*vA0RClU#$w_{Vq^$KNzd_eCoV`uFeaY^`20mMp
      zwVSdQ2A#$ooa66i_-=zvV2Yq1uhAo~&?`S;Kz_oY{EVFZf-(6G6Y?wD{dY{uA2=s}
      zq9lLemi&!7@(=FHzhT0&Q38#G@8JTuWYIBQPj~=l@Hu8l%pfLE!bK#I<1~GNGI>9R
      a3@-65MU->I)P~Er!grcJgiGowdjAI;54`#S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YfsZq7=GT-(RGyT5D-xqL)-<a;5{>bA(AX<BmrGw{M41>C>bqjJEQ*!6O=>~
      zznb`)4Emna%`qaGS-Nw1pZ9s*+xdC^^*ewKJk^mREFC)U9m^N7^?KLdYB^D42hP3-
      zS9V1dv_n_u&<GO>)pGo%wbM8hZcG?%DIB3-Uq!);30all&ph9YpA%M#|A8;n3EEb$
      zFR~cIhzT7gVW?QD8z79CNMo2VZhO9X**<EB@RieO3Br^exK69?gq}QiF17f;iwMhC
      z%62p5C`X$jma=;)b;3fil(<F0ZHHd`(dt>NS&n7K#4P4G7U?L$*n8)>PApijP%OQ@
      z<m)oPx`3)0n8$*S8-)D88k)F?TigjhkPN*r2=kX@dbX;LCBmHI{znE<e%V9;D+Ima
      zM1mW}<?SmJXSs+~*?~KR&Hmn12PP={n3idCLGlC9JSAL46~sih@SVxz-WY7Nh2M-1
      z)F{+AQogDA$L)A84ux|>nC*Ibfpx*a&e<0qTyY$GfgkDEB;-_0By8ueg;7c0w>>#b
      zx&8;SE<Ffl&G$v99*SV9$1Hk9>j;_dWNAx0DntD0xPNkXc_%*|8NM-iw~ZA4fNc4U
      zzshHfe&SOK<NQCSJbyvMIb(k_12B`IF^MTYv7cfk-sLde;dIzTa^}llaLum#z)1NN
      zqo=rj@(qh`l6}5%hTA6$N~EUP1*9WQ85m?>l147b<vVg|ETD)I%Rml)M{bQ*d6S|Z
      y->|%)X~khC)`Wv)%BVoft>La(*I_Z@9y4gXZg52RRa_77kXQNE2#@eY%lrZJfF1Av
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<$!^n76g~H4aN;;EG|+}Jg_1&s(v%IGKv{$$1zD|VAbU4`YK>Amava1*u>c8*
      z#DWjtqY(E!C$WuG7IE&o!#U>;zyJLF1>h<63<$#32j`>H@nqO}e{A>0&U9+~&Z!LQ
      z1OHe~{aG-Q2C{_ORe6gnLS`0>2`hFovrEW7cRe@UCp>GULTNH)kBGaeq;7La$oBkG
      zX(EG?1p^l0(bY&XPIFiU%dwC{p0H}Wo;;jgoXFsvb265MHQOIK<DnC{>OFU6!*h2^
      zsHa4vl`a}qt&R1p2;2Y3j}@_+Ga2^1$t)a%fpjhi8;xdE>iV5TfU(VkPa`=AUEiA;
      zxJ9Vwv8uGAWyHj7+%<5AU?qoc;U4ZYnLm+U&-XkzQZR(g1=(WV%UIXM13WaaMOaTF
      z#nl#WVx3np;u=CV-EWLTC~}Lo^v=R_zKBM%&r@O#4}oy)AAZ&4K%dxaS8b%iS&3Qi
      zDka=npF0S&U-Bq+d1xt#@y%+u#d@&E+t2W&Gp{-UwzB*)P+(7yt+x<5UTU>}z-;Y&
      zNBJwe1y=dHqC(;Ya$+B*c*zhzElS6Atnmvdp@JI>rYuDu*y17a{{~xGj#M?#0b43o
      zZhb@f5}S7W616Yvh^R~z6g?EgD@~&SIC)M}VCXuw8G_FqkNK;#@8~y|iO)-%Jo_Nt
      sXbel)j1x&EG|-$^cIK5iB_<XT6(1#vbMs<>mWFCGDPZdIC+ML17qb`bp#T5?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yfscb6g^WGx-CVJck#g+c9(@BFVO{jkQg;9A6O;PZ>2jfB}-SkT@wElCJIIq
      zznb`?jCZEp(v58JLpz<$x%ZrV?#%rD^Zh4)dw8lsVVFL)Pi@QNf%Rs;xLdXB^<vE~
      zbAP5(qaWe7iWI|SJ75fB=sM!n58NkkvEntXigRrF4KHv{xK%o`eO@lQhtDOXK;SLc
      zbAug*T&CD2ccEpWkUd~X?bga%2Sc|36$ZoR|3?3ttGDQSe6MkG$o<#$VU;uV7i*4P
      zJ+OUO%%h*F;K;2r%(f(GV-?la?FbjE(nSWdT@)cZ8h(}GMhl{#qXXSKMqsKKWiXP~
      z7#PDX2DQS2XRgpYn8}9GRokmrrNDQ+N<kxc?ijd>afUvxw#)rMm{zJae1~Gj!iYL|
      z8onERvM$$%dlJ(srWnSr>7Ria%rfZjU9TK=l%W!JLTX9)6Lm2uvAu+M*=x6ssBhjt
      zC%VY&+9~&ax6El5GNj2ENle{JiiwO#dL?19;JkrF<QOzjOBAg+qKA9-iQE&i1xfkD
      zOHBK`9$C84p6rT~)r^zus|MDvPJI^a%@u~JYcm#9+$UUedr0x|@ogs4v4IETusmdF
      z3cW&A;=EsV>^$j(9&Vy=^9{7#7)wG574pLKxG$yfx{AjPBW*O2iwROJQ(HUeW@7YE
      zZ|R+)M@5?cX!P}x=3+gaTgc}xpns-s1wHiEX@oKfRhhyKnooo{^rDYu6oH%QmwD3|
      zz@R{jyCcf`k=O*2NqHA9Fhs*ShI3zVJM|3{Uom${G)zz^b3`<c9wmbz8b_6^B+Z3M
      zVp20EHDgi}8KM_OWRZ*Lw@Ho=q!HuX!Z{YsXcE@dB{VCGGW~D}iqmUYf+cHOrn@|J
      z$cY>>qf{%e^1sl@&VFFyZH_G4yiDCM)G8~`lvS!^4ZX^G!a6giF;S2-8d(`yr(jD8
      Q+{O-#;wENzgeMsN3p}fXP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|_fw3G@JuzXc50@^NxRW!t;#upM3O+^FR#P~E_23S&dlie+e|4JVk
      z5>0&57}RI~f-n9B<Gr)nmJJYn*?VX1x#xb)p8Wan3BX<4&mbi*e;|*f<*Lwnwbj^Y
      z%OGfYa!2`#bd0nN41t1%wWYgfJ#QT-I}{kP8Qs=sftkhyM0J5oO9qPg1V$4mG8J5J
      zL;2x`x1+Ybj&Cc0*$5LTyW>0ITWeq={Ln+kb;3siW+g#&D)V~6P_H%x4Ccr|U@VUj
      z6a*gpulHH5v4-QS&CX#<`7dRwO$m=TJX^M#(s%eAUmD@Q69_CM2u@`==x;rTG>V+q
      zlt8*tZ4OhSGkILX5NmUJWRT6^n!vPf@i~pjp@bXEP!?EAmR5fgWzhGssofU$+}U+(
      z87gWJhq;-@Fmg0i?@0N+vlGoLyQe~(w7^o#t9M{K^c{DvUX8f*m4?xThHYMpO?jw0
      zGgzD0g(48=mI~r&uU|}i&QkXLC=Sy+ldiL?0$Rq|N}Nk4blTQ|^sSzap!r@EFJ!nc
      zFqyzMX_-BrP`PLUA3HqLiR5co<vNJyiR&s~SE_;x)&!<5*m~+i{{b0g>TjCfTp9(Q
      zDrp6tsg~4ql6*IUJmD^r_7sN3XU*kW?HHr)=`MvU^v#h3K9lzsjFVQ5aG1a(oj{z-
      zFSN!H7)=Ww^M+(K=%!>I<Epvb#k5)LV%GeK((4s*jO$&@4`LMw4SXe!6IzXL7{zzY
      z;fIcEMm+tvrGDI!u8iZBus|7b-HTX?Ggv3dwv>3sUtLp_?@!HJjI4d$6mH=*1SMTT
      xl{^3w%Q07tBv*Qt>zC%@ZgPxXZ)#Zir|0i;JX2WJJQnVd<iCiZzvn$8`xhrsBwqjk
      
      literal 0
      HcmV?d00001
      
      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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
      L<7&&~L8bo-^YA1W
      
      literal 0
      HcmV?d00001
      
      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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
      U3BfhAm|tY+oS0w2r;ES+Cs_QhO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxOKcle6g@8<dmJ-O+=K}k+Vq#7<D?Cx5JFM{&94~J1o9<>LdNzanaZ`T@wh5N
      zh+hO!5uZv3D5?ZRNES$lz{060Dy%^2h7A%DV$l^65@OL6E5dnWt0}S<^X9$#?mPF~
      zbMJfC|NZtFfTK9AqDG+cjCs!NO<Qj7-1Nk#mB=J5M};B~_BK*xdbM{de#T0;0)gXp
      z+IEKoe37ns0cC{FA^1?M!H<AI{e+#iCi7?GmNRR{Q<gx(L?&UT=1s?z>#|XC*X*2t
      zK2as~AfqHb76KiSl847(#&zuU>R?x;Ngy<8WgRPFx>hoX1_A%v?D*mS5CrbjPzPP0
      zzY0_(QWbC&cL}t4MD0xPTsoJ}W-|^0jio6S8I7G!SXtN3qy+?%YN$jdzgteZ5cXo9
      zikAQBTgpwtejE@`9V?qM6BMs0GBQ$?(jkGGrC|xxrlB1j)GTGCSKT$QGBFhq9^NTm
      z34S=gvSK+QbRsIt)y?`vVqNnR<*<e$=oP5V<>NU|XBj*es}fwEKdRwg9Ai*3o3+wO
      zfu1VrR-P>p7?c6;*U*Oth>%z_ofGUVNo6F22QjE(Kw$R{`B>VuRxL-vaXcgt%$iQl
      zqD>O4lseWGlkgAA1RoJFB1^-uSf!iHx)Z}PjS+!8kt!<RMs`fYI8L%Kb~<UDpITvm
      zNo~AHF{#{R>}B$=j3c8=XgGyQGIukjI<P4tReV)EA+UcZ@6t6I&p2mI_g4E5#wzz6
      zOU+WT>1=*6a>}`;Ls|Us=Ut197;vmyK1D-w1+Q{$^z|~5NclLsbS9H`64tmaFK+$L
      zYj8x8!a?39AKwjd<VgfLs$3o8U-0jbZXx(JCp8Fh4Dk<)LBUDf!I@Ta;(r%cwY-(}
      z^ayhf4`!4r2@{Go?7o7=&4uWuw+?W(sf=0Y5qOH0rxC>I+i*i@hQZSkSEu*goGU!v
      zB(cRm93`il(QtS8KoNUR`T7*`0}c-Odx~i73tUC#q8`{n*MM3;!BBg2rKJe&-Lufr
      zrxXxa_xW1<%X(k~yLz~DU%36_?Y|BGkEl2N*IINX8Ax%fH2E$#;P>?f3uq&ZvaBnC
      zWnvA~8h$-!)P}=X(0_4uJt)={AH#gQ{d)n*f}vi;-bKUj(}Uex7?P27MaDCty5a@=
      z1a*cQZZG1*!nz`Q!tK&Nx;S)sds<gy8XF`dnHTY>JZ`8(JT5g%;eA}fR9VAwXrU4>
      zP^p(#i<i-WSE${qXvJ&j!0RmM8@!qqcoW~`jk|zJyp8AZ4s2W`(tF4d?L~aRoe%LA
      zao?rw5-#H-Y~V{2@I5}qPxu1YiT5kM!VPTVFMQ+GD(j6m%e7)X@Fc6oX9s^`nzI@*
      z_zW|cWu1S)zVb}NADE*}A=ew2$00UfGk)W{H_Ik$#m`uP?1>bf#UgD%@@r&=7{nD=
      JVzxDS=07!Yk~9DS
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-%nd*7=Au_`jc)PItsLaGPhydF@B8E6}B;;FjvKGjsXIR%b^^gq&uyrrwq`b
      zal2S_QR9!OyTL6eF_{r>7*VrJ6ODH!YD~EE+V~fU&pAalET(DBci!)PpZEEm=l#x)
      ze}D53Kr6<bC=oa?tIR3Qnrbu;T^{Jyl9@?WcR~`7t&OyzO*dbhm{pU8fNe&d7w`={
      z+8H$Tls0`zU|&3=<qSnLhLv<)b-_)5me%8KC)%SYV;w!c@xK0Z0uI$`AkYvh1_>93
      z1U!9eR#%gXp-u`&ak6uvjP0gUX|>5hV}BRQi5-izcU*1t-~jwiRO~vy;6lz&uX$04
      zDuL2z)wrZ*vZ`(@2*mbaQcPqIZXO5(yzrpPi5h{!mME!A^N^OyXR{fdj4e6IuYW$N
      zW{p%v6DS)<Y3haiwFy<fqD-V!Q_f6MNe?S}%6#7riX4x=Q<n4KAPzb4)b2xB+Iw*r
      zM|k?Qs!ba+^e7ZgIPtVV<$qo3%}-6Kx(5vidlA7=7M)IMDWi+Rh7#dnv&k_pn$XOh
      z<cy;C&~kGpZXUJOi{ohHPAWI3Op&(~iigL{nszUuI4R)H<tK6$CpHfy5_@XafDSJ@
      z!HIDw*{rJ3)y6#>D6TEAKV{NC<3$(F3b>3+Vg3XvLd6wUZjafmSD=P$i)`J&JcvFo
      z`oRfxaX5Mx43+v<?!{}ISgwEPPCz6C?3{a@Qi&7~rK`DonlIJ=*Nk~d{^QKeYdK3v
      z`$VB(i3u)d>EWD`ww$CVHVm6?U7_H{Op3Jp1?1f~mU?;yGkHC!p5w*fm_548P39cX
      zCIa%>3j|?@gHI>lO5lP7H;1^CYcC_fKK>KT6?~ROeEWU!27DW+UK@$5S;0~!2AN*V
      zg#8xiFe5Lra2$1vc?+d@f^A@dS26oZt|jgS%?4tV>rzHGBkQO?W9za-rEk$NTKfQ@
      zPWvhxHznbhYVVPNUs^}w23qcH{TZ-F>de;@>xhkT`!3u8`#Mgq6_VuoPf;GQ%SYGI
      zJwkw0yy};_9s>&$@<yW$xqca?eg|Pc+4^G}w9^@IvNYc5vPIpih!N?Ci4<`8-EC1%
      z!0vPTJ>~do$+<{I){YgD%a*p^Z@Puw9dJFoyY;=<c&nQSEXbsxhU+Yqf0?@L)Z0J>
      zuA>U`6y!P@@d`SygtK^!WB58Q;SCCU125qg6ugN^yoG5#Z{Tg*#yj``@8S;L!#%u@
      zFZlKyKEzLq{fdwAJMxwdi<Y08+cr>YJY)H8$8Y>(oF_9UexcLnX`u%{<5{jGvibqf
      zVSr308GjxZSTje<3ai`PyU2)>J>z8g0_W!=bmKB>-DGkIgIsy|<F|rlo3k{>PUb9i
      z2W5qh1?9yRv<KxLYdyAta8Pcs)*UOT3(CiqQ5BT0E~7jsH_@e_99f3lc3--`qo$8M
      zffZEaGk$qKr)sQZq%e5h7FSbw-kNO=CKr=~J@NoUU+(~Um;`)DxUU`quw#Vcn^$Gj
      H${hO#+jxpm
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_gd3;pW75?tbn|YJTn<OMm$TLI)1(Pr^A{xqsJ%R)Q6;KSd%8<MyBVi`aOhl|!
      z>Q>yv9Z|qFE@)A4r0!S^*4o-uE3MX6Ep4TnUA3<5ciwxMgb-VQZU1@qygTRKd$#X8
      z_sxr+J@yoU3HV5dN5MQTenvc+w6f6?7R_IrO<VC*bK}XD4lAugQz)^2?uaMbqQ|Z{
      z&1%jn_@^Y2iR?55Z*|Ry3R**|#R|fU0s}ty6^iF4lGehmRV%FYlK6@aOQCdrsyW_q
      zVmzIYcXv|DwkI+QmGeK>fO>_ZRHv0}NF|dzIgv^#R9Ek#UthD&Yo8|924|nyY<0@A
      zjE+);GW(!JD%yB#{uhNnXFQ#;=)1z`0ed@J+rBd}iDX-SV`I&UL6oCH$1nw>zvTu@
      z9H5}LS=qU%48t_E+O@6!2C{g#fhrv6s2-O}Q<Z^ilwS@qFtT@(If)KNwHyZ<I7H_B
      z+<1}IDpO+&94b?VoH`+6r5ls2DVeV^P%HBW=Vx|h+f(U8c1-~y7_VbouetPJwl)yO
      zVG5y)MgQa3RJx%(o>ou|veDrNCiWh1TsoCaHK#fPIFh+;wXK?j$vVEYPjNT_G7tkJ
      z@3&6xigz%%VK<`v>ZiVDSrC&j)xb1NXAsg>XGgr5MN(ef&@f2E0+^}biAH5ngMp(k
      zn^vc-Hl}q!JlouE@tBJ0#zAvspLDc=xoG4`iDZj)=CQ2`zG~)?0iT3p49v#@g@R1i
      zij19Nv4g+vzn!QbD_b4MFjTwi7s>j?;^*K?PQX$f#K@376g4KZR-2VJa1xq&tB-R7
      zV&&FbO=AFGR)8G-6$7V8+4wuGWLvgfrj{FsV+E(0nY@|YLkwdEC!xiFC6*R;#537O
      z$8jBP3d8y=an6|4mFQ@((y}OF;54jcq|S(UbXgLqF@xoAu-LR>m7t#h-6!R}ZV)uB
      z=rnLTSY!TpCqdn!FuZz@guC|C%ZjY5=u#Nh-;CZp_cNpa%GCzWlnM@HQ;vQR3TGMk
      zD$XV{o8!q;GC@j8oMj0ZlJQk6z<r$k+*4?n!q*I(i?wtmLj($ST=gHRV?T522dUZp
      zmHxY#niF-Lr!b-~*$yAiNu^iCv;El5+m-Gh%Q~mHO@IK_GM!el@OIw@Za|2hOg1j0
      zrHCo7oky+RCOoavA+xl_$_aG2#6)n#d%1{<Pw%qQYXoq;ykpZ?vWqRlp-o*jn=R$x
      zBkKs|>+$TV&I!H@%ekGarK%S@ves@-1?-KN#M=V6iFQTD+k|nm0JceLdy@cyXxc*O
      zqT|O$xxLK?0>QL(Mk3Wk9tmVv2vQIX-Jl8WjZn?90@CDN2D%X<J9QF`3ilYeR{&Z>
      z`aQ~Ojdyiq9eURo<Ow{N!{MS$+0!XfMx+d-WrLp9zj5rJi7!+>(x8J!S#+^Ep0!$p
      z+_xKe1UbftwW~0H5NQ1mXDOnU0d-o2oc5TU_PD}%|G#tgH}8wg*jJU#xDaPK?vcmS
      z2A&a)kd}R%`@^#azHRdc=Z<$u)hA`mMA;*A6_i@c%$5!(S%1O6ckrT<b*bQ)EiGv)
      z!(!^ClYGrMR?2H5AFdwh<R$5*-y<#AU>oqe)b7g$et;jc-8yZxu`QWOTMh9H%XCn-
      zT}ET$G=oN$4}PetKyQ5Fjd&;H;bP2B4Ez+Y6J!j*tThX5YOEb3dv1>$U~j#SpD9%3
      zT{$7SGMQSPl*sg>oq(L?ux>!`D_2N%$pI*Edi2`{es04mo0@%Q)=DSi9YSLYqXw$)
      zUj{mU#TX1Eu~}WMt<v%K;5X8=-gWvWd(<BMRyxk_6e6GRa6eQ!8`TH!2hw3oQuUsJ
      zKS`>BHc4idCZyi>;4iZ6UwPRbyyJ;EEQCE+E!4}VB(%W3Ua_A??uk5LajGlb?2=V@
      z;MIM+xU7w2d3t%(2SSv1H|JC5+eD7MRKQpJC;|^s@bH2mmkbY|i=bf%3Mm<m62}mr
      zX(&Q5XG-{s#&HOrWf)3{TY7hMbt$0sj?Ez)^YK|(=jU@oOy_e{EWqdJSOK5av7m|-
      zK7_G#2Hz%>9+5-c1{@eRN}`)F%+y85VM<JoxYB}1Rp|_`FNawhu;Bu)CsGov%3)63
      zknoU=2!@B$6?H=oYjs7Ds&G*b^O|D5SkUy9%*bJ3Q(ehMn5HjWlEd+_km>V^G%r@b
      zC8m!Pp^})bR=g2Mn4xg7ww#JPu%yo44Q*+dtIO;~;bQ(UFXkiP%X_i?qGEcuXj(T6
      z)3*zH>9Uy5)O%2A>N%Xe0cBNT?KTXL(AZN;qFYc(`!rdnt5~2Li|wBmn7X*zTo($5
      zZborlr5iPmqqWJ@z2Oko>_GdY=n&16tCB+|hcjZjsqerVdrLF03lVO2FddTZJeyI)
      zaE7$ywn1`opm#s6qxPZHp5CWj;b=>w3i}jm$4Z(QLcbX_3ryWCGy^%D^B@!dIGOJy
      zeBCXdUt=;$;~ZAm*H|*=vK-c;g1;V!^Y{gGK0jG5;-|<rFdY|T9xlORT#i$5Emq(<
      zti<)`#0^-D4ZNalq}Hwc<#ybHJJ?gZ@c_Qb(;nt&kKlWF0zbl&cn448_t=T|@GSn0
      z=kO7p$7k533h{!f#7pWBa%wGJR)^t7YBF9?)9|XAhu74}*sWG_?8F;tHQrQb;VpG8
      z_NaB_iYxFNwTXmqHxYe5-cvdJNj-tTs9gl_5Al(D7a!Zuco)N@*d1ut()qZ65s|qI
      z=_i3i=^I!l_@i_&C5_+4zog$65s8L+6PI$%&+pRRIFfTZDtN+WlmaBX?=m(Qp#X=d
      z=Wzw4AP!Z};z~+|h^QxV6%OOsw-A`?ITvDlj&`LiPrRBt7cq`!xzY|y#WkEOrcMjv
      zx{e@TNlUJyG=#C4$>^`+MP?liVh%(id~u^lJegN!2jpx*KATV4yD?I#v({Ugug%&@
      zpFqbc%VTOwH{`IfY0Az2e7zgd+LCCc){?_5Q-^Ov#92AK-%9^JD>u6<U#i{4dUB{~
      z3}XQmfL9e@B*%yfA*xC+Sq;HdRmyLq5L#8aots)l8fdqpN@imH-AYdsYFK%WG#R6C
      z8|OUKyqy(hQyA;OW3%J-v5~vr)3%Q7fgaffpLZ((P&uv2vjv4?x8u$n?w%GAe$&Dl
      z=ZuImSEmusn_cw@F&|YX#Qdhu^xui0rmshc!}OEvZgO=<lhg_STb&UCZc(#^&)rSi
      znvYZ~|Av4X4WAkVo%LU=#xlndl&f*5RO4~5ilT;?h^h(vf<GM7)I`isb(o_jVZQnj
      zza}T6Ma6KMsz;}qf{WBttRr^TtLeO0&%ib{6A!6bcBJPz@#;kZw&Okr1(dc@^6-+i
      z3HLM7UPk{?R;i$14w6K(pkO|;w2hLVv*+SL>OVw3VDGw`v(l?VV<Y3jniIN*2lOh{
      zL?A8eXG$n<N(hg-ri8GAM@VN2+2E6g7_z}9WfHQ>#AizaKF5@`ZozM4*-2+C%Ns%d
      z3z!8td~2X7oka5KwkfU7lDsKpc~i>rrj+GPDa)HuW+PopDYMb<x1}d&l*FOTMt{JT
      z#Lxo9ES9g`ZaOF{Kh2k_G~6fq*J%N(=t;Xsw_vwW`Yr^eMte{pZ#{Tc2AQ!N@^-$B
      zc2q_?DjYV;BvnS+D(m?cc2vTS3Wu|0k}6?aCCRs^9F?aW6%I`@NtLH;m1Fp}(^1*!
      zsBoy0NviC$RjT<m%265RsBkEgNve#pRftz_9|%sd>3J<d@O1>$c?7}v2&)SSfD1_<
      z>qw>-^WUsXFhyO8dFnEpq}Yl`{;SlL_^P@JSE=>bq^`!p>Kg1+*Rr8p$A)n|o5T(H
      zgzM#Ybc7S|e40Pa7yqYj@%!)(wk0Y4Fy3WzlH%9U)0;HB%%n+b8*Ayxu7$O9W>-ub
      z*MnkH>p^gw$=kwrg?#!kMGs0$e-8>BKzx6z+&qG&pER{k035!&gB|BivUxYre>bYs
      zy+r?gMF0Jms2<?|bldttr!ntHW8RTQ*AYJ&*l}N>BOy$|tCTbxj4}8z>(EDJAB5K^
      z33T`+<U%J+=LBj}T;T<g(q&GX)V9bD?B2GNXUkP`C`0oGH3eh`a0jrr`P9=WQqQ17
      zJ;$W=(DoN>I}dX9%iCGOJB9RIAF=T!&lfi5_qTg~grnSXJ)XX@kozyxtM+cr<<{fw
      zrtuTw7w*a|cM`ggsv{QO5(jv_^L8UBB4?I!9N~_Y%lq~}P|~U1Chxujlj8yG_aixu
      z;y8w*lufy_cixL?*9(pJnO`~<sJZl1kba|Buz-(h-Yk2sm~!?)K1Rhf7R<?}kB{Z!
      z<WW+wyw3kP_B4h4kK)(7Kyz{vN=*^=E;aSi-`k@sxCzF%(iu7Yaf4jBMcOMH?d3ju
      zm(o#Fw<W2=66Z?!XQ@WnC5OND_2oJI41ju{Ir{*G>L1M6hZw3pruUy<1cNxyqcF|m
      z#cU7R-s8s-&k$IiQmpX|#ad4}F7yn;)gIH1%p%9<d}MCS=l2?yH%)d4xhr`w0&DEM
      ilE#&nySzD(fAIXBAoKH&<z;vuA21t=5R^N_hyMb*uH%FN
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh1nf#Ii*Fywno?&>)}SlA_eaT#v-Ol$_Kex5VU<{Gv*B
      z1{OvJ0kEo^#JqHU|D>$c<Pt^(v1Fjyl2mkEj12l3J_yx76EpMDtu-M+*sQT;WZ(+U
      wFD*(=b<502Wn_>+HxcR%J&>Vnj0}tn%s}TeFfan0#mc}2Vll7-NhSsk0L~shwg3PC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo&rZTX5XQfOLJfZeK~PAH@dlVkj7JQ{phmRO1Je6~8(f90X^VRIIrJSoVLa&F
      z7w~P2(?X0f#>39+?EdEaX7~N`<rTmt$|fR&l}m9W>RS5suD;UFtv+--fB&v8uYKic
      z69yq4BFd?^Prok+Sx>r33~lLp40hXl1Ue$5TaNa8p?zBn$1?Wzc(0xxKE{Ojw$jRP
      z5~7u=O)y%{xlAC6`4kdJ5;B(3@?<>fN%u_jhLVu8oIV=}w&8kqX!sY(Bdl8g&fOps
      zDpO=A^q}7HU8M(&svS5M0>?bT97)d;gU~5d`-u_~9cS$J<$(%jDgE_38$lP=z;EIo
      zC6p0EoU_SQ1arJt1xb!6KH1_-oMW{K(oZ3h;h10y*nxpvWO<jGLRdhKt3V*nF%W1n
      i8L;u%`UH!=6^_~53Kfb|YNo(EidbR|!ZLS9Q2GMLIc+%r
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwzfJ-{5XQfOgERb51VJShYAgT~FUAssA*cyRv_LMgTyTS{uxIWL^l5wo8!HkE
      zOA8;$ICl_ZOpL|O?Ck#L`)2p!^YsnDK8hwHgw0zq5tf#|)zx>}dC(o{PE=o>Joe?i
      zuN-Z{Aml<yIac%H`+|`1q^rcxmafNOw|PvU79rhmwC4-$+hRDDvG<*)t9rBcOo$&U
      zt^67xS}NNFqv2f31fp0>A%P@esjaj;ACG#{y%fEnBxKu8pA7`ta6LaX{2S#Fw%h-W
      zUM1v9GioUG!0Py}(t~Q*4ovfbX^voyr00o2Xch|oL<xzGGj{v(R0ZQ~{P9P7K_j-n
      zFXOKz6cIz5v&mHi3%pneNscK#Ip9p3W0fh=FCntTF~Jyc1Os(sc$b<%SVoqsKp@94
      l5U4R3u<^?76f3_KT5Nt6DimhaT!DEMu*w>QHSUgJ{R{T1Z$tn9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-}+b5PgLO1VIoH@Y~~Jq8rZ|6EGS{5DzF9P6Zk)EG=1zivP-!i3fjxKgu|}
      z7>vrHo$2eFnb+5k&$o8~$JmP@#E|dv2kt0goaS|vLb==Z#CRNo#gGZ^T&{Y~O}j5T
      zCWa_OE<mMr8p4y@mCwBG3Wn&ZRMMO=gzZw3!8+Gnkw6&BNyM<kkgiE3>XTtxc(=2P
      zY)yB#+vL=RI(&ncxtC*xVr{Xm6H?U^CaAp9W25+xX6NkEj2~!i7*DDmG1IQrgUP6>
      zI6bPYrliU)wJHpWi>Hnl8L1ULG|#XzA9kk(N<S*U^_;_yqLDsSnfmsSX?Cl!aN-ZK
      z9tbPg|8<pGz66UKt^7`l2)@LIo_HN`DSdCVzy9XPSBrg+)wCk?nNeC~GM(a-ITRVi
      z$iXWTFO-Ckq&*sdhe%PLoDr~sG{EA>U^R$YtkF%57#78Kx+$Re2id^pA7l&LR6#b<
      H9>VSyFaM1h
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-sW-6r4?CV`FP;ttg21)`QWTpm-4lq1Hns_s#mO+s0klZq&c!N$}tg@JER+
      zt>hwjcwaN~mU;X2{qYIl2wM>Xf!(QmmWd&sq}L<zFV@Yjj3;+56-5XIItxKA%_O<W
      zrlh<;{Zt$6&jf1yK`IcQ+dGO;L!*fm)CJl@ZD>?HX5?;VmXkntXqC)U>2x{&f}wxV
      zbAi3#KNd~|S`+e>CD!-)gXKoyb)KZ`$U2tA7q5z*ytZZ@p)0Ucy*jpPM!uq1I<|#V
      zbg4^g+kfvqC|7X^K9GM32srpKo+IuOuA)Tt-?93(pkvM@4IE>Qb8{)++5$ua>u595
      OVJ76d!LiAGfZh+3u3WJI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+foxj5IwUbB(96xFJcr#jk^gF@q!Pa523h37pM}<gFJ1*5Eql()MnO_U+@zw
      zKLTGOWm$fJA7y!FLy2WUwlY1_r@QC$>G}2h`%eIic$R@7Fm>d8@JfMHrRvt3*Y0W<
      z1hTIDFvuV!FqEK8FKCo@YDWYF`rWndjlE3)Q4ttmd`EeKs(Q^>_5mpfWLN4<Kk(HH
      zfj--*3Zz!U18EW&uy73~9U2xGbp1eX$E})-_PknC3XHg6-D_68$k*pHXa7o4%|stY
      zEet0G)H}Z;FzsH(ewkn+mYog>DjBG~<F;In!d5vxJd}~Zq`hCRIKA|wy<HXgLF2MC
      zqS9*#ICd|^4@;Gx9jl&y`NBfx+Q+(VYbiS!<OD_&t~zt)FJj^rW;2-i7d@|Q;Wp-|
      zTFZ;x@5b$R7%6#>i27D1-nDQKd8(;#8oT0Dwcobjpg;#XGd#^!or(tLEj-Zbr6bvq
      zN)M!DVFHr^hE{X@!rmBOJ64jov0vuYDW16-#!+3a`+8(!|Gk?9-6kHgIG+R8>qw)Y
      zHp7#FEKgZnfxi4IJvRUPmpX;@mDa!@SCbZ4Vub|^C0;Ii@@H8kT0u{`@C_s9Y5E$R
      zrC7ZHjA5KCO#SW>%XS%)#T1DdnC4zT*&7L&PxNTg^Mx*MenwiH6oymi;ttmzS+`K^
      z;{Nm8mjvjdSj?Sb;e_!$(s{N8tg+E`?lwq#lj2s8!%NKK73Sa~kFBJk+1@>rX^}Y-
      V{2t*kdE|&bp<D*{Pm{_^e*iAJy59f*
      
      literal 0
      HcmV?d00001
      
      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
      zcmai$-E$LF7{;GX^U)@2o0KHfrYIE9G%8VP6)9BuK_OUZDNxi4Wl1*aLb~asDFyGn
      z@js9%!`CI_#|)HFXXGA7N3Zo>NAJ}u$LBq}*{q=;Gu=JeJ?D3x_j%v<ED!(r`da|6
      z;Oz(k8hS1mmyEn^)$$Xo<+53iAgCd(9###zlAk?)!7Mg3bQFzc4O&4%sA?@)@?^QT
      zq9M3s)Gum?7^PC(T;YSnOvPT!SBe+%^Tyhg(J)3egb!G@)fnTnY=QrV7PxM*Rx+dL
      zKwO881aaA+g)V5=q9cT`j8Zxx&S<NSPG|JAjxK~F$Y>aBi7ZsBX2qzE*DI?_rrkJv
      zxo9potePD~KjKlMo)Ofu8j{(<&`evzqcUNKjzO8w$)GG*N@r#)+dQ$lbl$9=HqKW~
      z4ZSn9qETHi>X!U=9|jwXmI}KaOBg*fidN%_icYL6R!yVM7_*P6pe5z1MUVAGV`bi4
      zGH97yQ7hjSg?Sw>BdejS-g+0cIMXQ2+Es4RX`5>^PHJKt&Ut}^m>9DW!D||}c_It;
      zC8KJUjx&2cyG9Uaw(91ZWtW)B;-Xo+I9;osu}fyXT&=B%kWn2k;-v@<(lrm~6puI0
      zhddz2Abn@j!&TF+G!|K4P4es|2OPnqhV5;*=1U)KLTFL7x<FBvMbHsRZZ-lMyi*ZW
      z;i}iOtBu+6L~YeBt@t2E1rlP2=4GbYft8y^3h{)_{$Pl6eof5@PN+WItl+v8X1rcE
      zuAH(yV6lXy)FtScArG68him0Bv%w%v)mH08bJ~*1iaF3dB0so;3Od-LA@vvL719Xm
      z&NfhYHi5cF5#v3@KOIkTT{lO+AfVRH=kB8?*KrTMa!JZ1oeSJUU*;3UzCr&x_c8Dw
      zmy!1a8`yR>w`~L4&!&Rw=uZW6cagsBo0bZ4;g_Tbu#?v@^zb^0Ad9k#W_9CLY{6di
      z;UEV1b{7s|2;<0O0wb8heoSK$NAMO3ILYfSt{!$&VmF@SFJK<eGb&AuB;J4;4RR!I
      z%uC~QzXWGx-AMDi%lr`4_TJ&Z5$8Zot4(xgg1bqAqH^xyW1KCElQ~)aAA@pVc&uJ-
      z3B1Si=Y1M{4!tmZ+@!~SVRLT!$=r+NR>@r=*WQ%NR&(`^@Gg2|xee^OhEVWMM|;Ru
      ze2ADMji)(FnadK=BreMDTe2PUkq;8`;^Xn@F8+|dNoqzi>xgB<J71m1@4lPpRCUI2
      zI&+&pSYv6qBz?vXGIZc7>vkPUe9Ef1h8?)h1l_<M++r==RzlLwX08x!%Sw|3Cs+^7
      zRPJ+A8I@Gh@;=`_QMLXv?)JGau&5W<;HIvm+g<s}x47jBzZtG8%iKm>$u?a{w!3nx
      z>56irRbl-M2Y5&$zM~P}(}*8v#E)!>pL_;nJp;0|#xa2319$gf&w#r$nI4qd_5bYC
      z-wJ-%vvAHO^h*K**QN7EctE`VKrHQ({IwK2J@G3o{S9&a&ZhsvNALHn-RIHAT)N&m
      zgnYbi)!={fIQR=u{Ox1uE-Q{Vm~iKKn{Zii_QC$EBJ==-jy-4{PKu|65YfWu(IP%x
      z+{b&<<sBzaGMA9P%G`WBFojMn&9i>10y=e>aDmcahg4ePJoO$gb%Ii-9+A3}Qg>16
      z?oFkR;|WqX2kxcRVM-nOAE}2u^cmNMlvBSOn7$!S9Hri4KD{dS+9dyzI0aohjHEX0
      z+al$;k>VLIMH<J<rfwYnSm?8)pY+k4#Ldx-lXPQ#6F2(!9XRDCuFSHLFGC+CcMq&1
      z+CPvvr}EdXIxSxstwhx(jVY5|!B%Zi@wYn+oK|f}8qO%?GLnqSM`D4y1aS6WGz_<G
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_yH3ME5S(@VK#oH~fCf<j6;KfI=s*+%kU$nlJltQ*84lTZ$dAA;r9>1+Dfj^X
      zf|8#=Y%D~FXl8fzMzcHj{xyCBu!(sO7GddL3`I{X(>th=MCRv1nJ1}vJbH@dL#d4R
      zU=tQ<RVwst@1oMB%H;1mp;O3Qi8PXV!TRfyLjs)=T79F7Qs^=gX(gSPkMSsTKSu<2
      zPia-|6B?^)5y9@88|kBg=>R^Ogm$R3Jgc&S%&){Cm4t3+VqPG44fCI&UEZmJuoC{4
      zV3*)unktXwv6{Fo{*iQJVuWSzVf;ZH8V+2p9y1G5+_4dwi~&!!YYsT;uV_8jk~X8y
      YQeX=<cF^H2U>S=rgDzLXETe_FZwP^2+W-In
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_yH3ME5S(@F7x;ZYz_L^MD_6re#M3Ia$VD+Lhu7v~HYId{kp;J2udC@3iT
      z20nnVKx`~ThiGPZ_C~Wi_x|<r3ZRE&7Z#y25%;32mFXUrNg}hM9?L9A&BN(qEbj_s
      zv<sWCTFFwOZ@QPIF4R>1z7v96W=f=y%yQNb&rb++L1^}k&I_T7NTj87KKEA!!N=r{
      zP(M^!6-R{H#%4sY`(`XX)G+VELxa!?m6n5YI+EG77^RZX4o%Dp1g~NKGqj6al@r#(
      ze<K_ayem^?u{={VyS2ZvZqKaH0iVWy#IfO^&edgRVU9a?LW9xg$!^5~XX_cwr%KXd
      a^jHe)z{VZ|?tGT92n%R)B`h*pSo#Juw_c?H
      
      literal 0
      HcmV?d00001
      
      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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
      I(e2Bx0z8$A`2YX_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZva?QRl56o%iS><7!1;tJII{Vkw{s6ULMYFn*_NI(N=qJPW+6P#wdTbJD?T#7ef
      z|7uOF(ZmbzqKs!}R|@J*vNLneoM+B?&;0!L?FWF{sA)(sSUdK<U3Z07-<$-z;}5y7
      zA<dANcE@%{^-h0>4*~{bv-#}JR{KeFqs>rg{TtX|SZp<Wz1G(Bn7%e}ge!uF3=8GT
      zHbeTcH{=EwOcRU9FsN(NpCQwd2?c7jI$=VCN|u&zc{|+gbH8Wz9ZvbSyn*d(+rEhQ
      zi81Tif!L3;XDF2`|4UBCGDB|UhPA<7SmW+c*sg&UoY8Q4uHNos9PnKeXK{`pJL16$
      z-`nGUFk!e}j>%G&Zr}@d)JQIyHR-rO_4dWcz$IMKaCx3D<4jz|H7cLK3vFl2P@F}_
      zk~b=^8T7!5FCxwV6gGdCqC+ELgSTRAU;!p|s_TXRfIk(HV!3H!Yf;On^OPICfE3kE
      za?@%h5}W2UbQ+QV2JIfuiRdeS2YYpd>}TYrtNbT&q+roMCt-Ie<Q@uG#YyP_VG1ZF
      zs7DEE*(!a-DeL?fTzrqrA#w*$50U@)7i^tg#s*4QpTbCa+(=;e3C1X5sY-wk(5><T
      z6svL!QKkF23^wDVsLBFU(UVIscWI6=O7#dgkIOM+svXke<qSYc01UTeuB*QRG5MZX
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      OA?HT&H;6TYH~$C!IbH<-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyOK;Oa6ot<?c5IBH4@gOXKq#doP!U+C>LMvcmMkg?ssy`<GYu0tcH~Ff{3kZ7
      zDuD!heiY)4?G&U^Sj^lzGiSbg=h#1fe)$IA1s<Ew7&a&Tn0G@Nb$4Yf{Iow$ML#<_
      z60tj-1sex~kM_f0ZbD~h{!`0P-Ik$DcNjWtFP8>99C!DJ6XN!~ahP?-{-k@rPj-3A
      zd#>wt4jJ@8G!ix{xZ=P-m0`(~p?IB5ha!H*hk;;N^&+1Khdh>QU2f{>N0~5`mHzvH
      z9)l5`gd$eB3(YZ@d^CzhLd2B|oibQHpK)KNa|Y%TDUef{()KJ$WGbVOp)$*8qu%a!
      z3c70Ox0gK=4Tjdae+yd+r(d4>Vx}-Q>bRq9xJ$sca>qF4K}Hs^K0~AJUP33G3`gRW
      z!IsH_og+Tb*4rqHeX%E%m5slB<!7od2FDG_pFzNrM34{G0)*!v7X34TPJ=!Ytxd`T
      z%BmEdCr`JUHN9q>!TL;V4K~d-MWBzX7|;NA3N0L5qZQr4bu1A{Wy@H})ecs1Bd_J)
      zCS|IggBoQ9Dc5kTth`NXMYq19{{9TNzf)dRRlNbP@``JP=DebXChpO>BHb@Zd!$is
      zyNu-Jq*kH%gVds)RHcHcQT_nyC3B0SI@9z|YR=s#`g)VooZ_^kX?U2cHt>j|o!_ls
      G6ZK!8fw$2B
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpU2oGc7=@41wAq4TAJDO}6$Y9_+f4+ni+Zt5NRcWg4K&0qhTPQcT%}Hxq)huy
      z+;CNi3w{7U3h~;B3fj;V#h=H|Iez`?_m7_d-r$7?hvDT|d=-IKNpP%E8Rdu9xjdW=
      zhcXQ((|GSxiovH;<<f)8(702~P<yMi%DW71Gi;qvca#jIj|!GKs;Dun^puwGXOq56
      zKZ<@V8P<DAB;qrXDl;z^-TYEz46WXset*Mt7?vV26_LuX8Cb|rZ}vud7L1~Ca4N2j
      zMJ_s&$V6E;QC1l|F&LyWBb&8bQnGFq-m%c5;G{pM%5-kY!mwmMHq1IhHM!C<HJ7r%
      z|2<5bv6`ryl1`IM<tot(zRFC2PjpPNE6vt9EqzF4X(Zn%Q=F~;y~!)XX5gVFucKIG
      znWRfBFJ20-K`?q^z@?w+PIHe&T{!dswf6QLOW$eaz^B%?tDi}Ej(arUC{*CMPczcv
      z0al1%SgR!~BnRW+wfA@CSi1?kphI6QY`2gtU>+Xgk%f5{YXVX2N^DH$YP7=J`v;A>
      zTd&Tsag!~HJGAU>p<S>!HnC;d+`1Sxw=O0s#}m4SDGA3mjjE*FL8Ej&px#{3seCi7
      dEsQA~Ft%R2*e$&rJhiH4*rndLXDfJ)%|Fnpo7DgS
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      a7PN*8wU?LDZb^9C*u&)eZM>t$>;DBPXo=$h
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>Yi|@)7=F&~wp+?jU}dXiwsKXb1GW@IF6Abym6g(Jfg&x?PN%bFV0UMo-L3YU
      zM*RWCuf}LJCMG6oVhd5@5Aa7BpZCmkI+Efhv**mYJeT(}fB*CQUjRn2oJU4s;E}W9
      zj5PdUq#Se>Yu=Skwd#eHdb5^CPNBHvwn9(nIZIQG+Ny$@Rp>tNH~jWRg`8Cxn&EIY
      zSn_(Iu-!l&21jeIT#?_bZ10@#8{TB6zUYOw9Fi&&CIZ)~%{ZYi@9|=;{m^eIm=jxy
      z5RGG0;yO*o_1mJP(u*wi2xU<rZwcSf%r?q+(ZEX>Q0QB9+{b=nd45sbRLIPgW#2SV
      zLP5cB!q8cr531Fc*OrZ!4RoQK1~)ErM|%ogHNWn+$=?iGe%lWkbX|AC#|piEYdVQe
      z)*51bx>_~grOg3rXlpZL609Ku2VpDl4xK0*Gw_<cZwtM;!vHsyWp%{BVZ6fCrB0Km
      zPFn~1gn`|#W&d>p2Vjf%Hw+vSSG$}<P?TN<#|`QXTU#!iGcbnp%!>Qab01f#{}Dga
      zi;K9N$0fq(G}N5N^2p8AR@<u^coSDBL<h|cnoNOhMgH`usl`X0+a9ZIvBbOxby*z0
      zrLc!(vl*C3qz=j3VulA)lMh4O<G0FwNK{5?*^_^3s4Pg62ByTsZf#;b2yZu*ys%me
      zK4kJjuhpsXuqyLHv%}e5tDGWCm%gUGZD2;wc5R?dt!#jGtvIy~Qz@0MnP&~mp@(UY
      z!bjSVm~cNDO{?-;BAyCDid5)Nm&KLUwl^i~RN}zRW0CEVbU?CeU<vbVtcKI}SE38l
      za5LzHt~c&WPZiU)q+5ms1;-h!EWZFOeyMHFcJRrghb!AS8|N&;vClUD%x6tAo5?;w
      z@2_0R=##yA_XOuB(Z|*P=rnd>7vFe~g;*e#U>Y&zS7hqpO35B9=89d#?k9M`KDvf}
      zyR?SAb}_$(!A*vKo(4{1JI)aEEQ&Y>lQk-A(-BU>R>D3EXtomelUJ0Nv;y&1V)Yb|
      z)3bw|32sT6Li;Xh|9ReKL&Zu*IEwZz`!@{!#7ShjTQ6SH62ue_#1a%<#SyMZ=x*>|
      z_7434b(aABeD>Pwuon1tRGw^x|HF*uFV8@iQ_zPJ=;I0WWDI@y8R${so#bPY>eO?v
      zD=F;53HIp(`+AIh;Qz35TZo=a0Ut<!&m_P<FiMh!%M^Cj&a7#L)_IX^E?p>nje(6I
      znF|}U(o<ZpOY69L$L6`wb&TJ!H-k0Iq5y6(rMD>hHu+~*9(Py*cbV2%9OF2GdpL#r
      z{BAwa`u0Z}Vtsu$fom)P_6Lrl!dZs%caj1)#y81fCi`sm-IUu*;`TZwcwVwUM;>u&
      zQuhsQhiMtTCN`|xf;c+zvjFQZimEc8kq-zP(m+eYN8My5Vt3$Oyr(5i({@DU@|F<o
      zBl1~3w>HR*OsB|FQHvVtV_y4&?ei%;e}+MPo+8{A6B3lsj0mse{g|*!(b8CkZLUKX
      zwmG_KCHf$I!CZftLNpRYgZYqnD>m=_81WvpNLv=Pg#^`_PN|MU^bOB_%lLlBPr>&Z
      vKgwqz!7s%4MAO<OpARq}GYxZ;eCD2FVY7~+e*RJ8Mg5$M@f19s&Y=1)nR|T1
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      F|1Ye$e$W5_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>Yfl_i7=F&~!csb=?OL#~i!B9pm{y>zwHJDm;_6xo(hFE<3&Su=r`_FIXLnJ)
      zY1AKJ{A!FwV`5^ACPEuE{s4cJ@p;b-!`M(anK@_9<+;3<{rjKa{{nClYgwce4nMNj
      z?a`X&j}|Mw-JEEZ%WhDr)+<?L6b|jStI!d+_UcTnvZ0_B6xuI(HLrPDA!C+?=Qv#R
      zSKUr1>@|>u!O>hSmgKh}+xw@ynmgU9uDHQ%d!^zk<feSbuFTniC*RRxruoooDD+M3
      zra=^rQ;1{NZO3bhkWweoI3$eS3RzR=hUfNB#ft_GqgSD8#daQhwY8-cZBik%Sd{&|
      zfdX<0h8+a<#*$wyH{7Odykwva?ew>Op*`GFXsdWtuSx#8-|(8AU!&=&9XwX(^cpwg
      z;H1rAhNrDj@f^B5Y!2`0Wn4lvY~UCy1zw>Mg%bu|lkYu&TeTV9+M2A68W_UMTwQI|
      z32HZWm`@ov2ut=~H!uK8w7+3sP)r@LV?AMR85_s1GHOk^aKXShE;1+1L)Up+D*s3O
      zTqiE$Y8F=rqmxjvYipyoHX2R0YT!*wP>7D1<JXx1%M9)5Q!^`%T&Fo++GUAp5$Z{C
      z{1$7BMY9u^P^1pY+hT?XRGkka+~GAQy@05U(wZx8bGRr-(*|b5#6fMM=m&Rdt8P%P
      z_#ZNNf!k<RcvuyAq2A)G*DNLo6J@Vi?--a9umjs*Gwa(}ZR>WW#Y9S(YvKh1i|Am|
      z!|0LqBc|I6$3C<4JRTnM14>lrN!G-~M$?^<bqcZJWU<25h^s%|HL!{$HdW1Tdh6i@
      zO1R~>0>>?S(ocsHrleCw1O#IYRhq5O!k4<{Y#*O2I=Hfjvm$3Hj$Ky%&-QdapH8Kp
      zpz~L*r1Z&7y?cuD)9B)APk0*pae!aE$12PbOE8TH^D8oSaHU}NcW1iWy4#=N1?%`G
      zdaS}G`mFBkCi-_6dUzT*i@i8U%=75R1>{+v!ge#niP;J`f?my5z)|vw@`6?%9t$j;
      z95Q-#j5EP4NJnVj1?@k}+w7)D=_p6h-e&!V{+~DrO}FdCD_Vk>;(<tl!Yg={D-yaJ
      ze9PY8A5eD*(8H(C+Jd>v*Kv8$DZWP-&tIN_o=iXw#?WIi^mGJ0^bGV#;+^JWlIqNJ
      zuuBQ-p&0vYjD0=A9{4}(%r2s*6Tky8@VOZH2S!QKaFxQ&Td7U0(7Y&;^Q)H%U!!+B
      zNcrXMS>Y)zS%ocJo40uG<Q9ta)=scSSQNl5rt~&N-y#1T%VVA;aF=OazzL3{xQ8>i
      z&p)jPTHn!7L!_?@r|=F7K=IyjlsHRq{%%|VC-@~fOr@XAzLRj9irrqv6wgcc7s(^#
      zm#6L<+78n)HYqmD%(6Hd{8@l?7ll>n)5r&e4QQaD;lpmq$71*4J<MuJH)%U0aw4K5
      zL_W{w_BPqzY=SHiwXmT+CfO%!pHJ!eGxX#01mTg05NxOUi10ezj|e9zTAUeHeha#=
      z^J6<!!asyBnCmYSh(?TPFdq_c#pb;qA>N|}sf?Vq5Tg#wCRB$Z`i82%WqiNmU%~ep
      uKg?$?#?M9gMAO<OpAWDUF^zDPd}f|vd8dxTe*RJ8h5ej~@DyB~r1HN)?0M_}
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>YjYD-7=AWMn-Z1+k(QR-S_-J?f-MvgO3Ov4)ktZSLMxO@x7%%5nq=c<Q|&h$
      z^#?G1bsQZXXPoha&e+1J;}7shIX>^%%_bByGrQ;PxjdKmlE44?{VxEg;AWB1(EG^V
      zut%$&KU%DYR~oCUZcwb$%2{MI<e%Tu&=t7$N~v1j)S%tb&^hT<z3`%jOrbbD&*7@S
      z;^v@Xw~j1yj)ldd`rVQ3y)$0boo!T>-QcFZTy{w^<2!bF-VQwZju$iGL$9u(Z{~Rg
      zqHcmR9J^*aUMMn(Iiztw_<A&C3&J)$zl$0U>gYqihVEtCS@)`I50;fd4XMSV>>D~v
      z<TdDa5ZId!{MFUE8_LGZIy%rvcg+i((Vm8mvRCm!^4I*j7kYk`mMeC!t|8~uZzQ2f
      z7ls*}j(XX1=&`pj`~oKv5~g7tM__5-1=`SXLdWa!y(@4lHbYxolhsij$M6bQR~j`!
      z+Mx>Zn2!ChWd98vL$E~on>vn)rG0jyCdw)!<M<WEER+l9bxdHA`EVY(&U$h68Rhdi
      zT*T!pE)hm0plnyyM&~x`p<B`M7Oqf;ikRcq7=Nn}nNz1q%a2?qoG89viAfRaDRKO^
      zh65~^R#YO9DkSfS86MDTd>G#@uRi4kL}irLTqXayj#-hvU&){LgIm=VH&`wEA2Vlx
      zTW^%*aIL}j!DncaB3DdvI&KQgz9vj*qlwb7VV4_Bos_jo%!fK|ql;;dB1XPXm|!m&
      z`&e{sW?C#f;s=zrqXw>QhHgpLDdPd`ESB24E!owvjC*XMsvUY8(FF>a^BaNVPJ60*
      z5-RD75y=)#GRSGRILlnBn6o{6vgqQ<F3zSoOL6SBj6ZW}!$_ynPmueSD=Bp{r*_9U
      zKaFm#_C}|%7yJ0dd#t)Vu>@0(F~25L7gtPcpeNJQ(bM?^FImU8&}*4nIArx?w=mFR
      z=;dkPEOz4@F~`w^^DtPD!geFVN!UybqF=F@I80tqZYl-h(PXLQkx{cFoC&Te9iV)h
      z%72!(**&q+QI4X$!}<*aKXVe9?o^AHlms!w1F-}Rui`bXNa(KfEqh1*fOeYzy?hQ?
      z+bAsYbzGiwitiD|^OqgaQ*F>k6X=r(^lS`$YzOoy;+^JGAk~@wz%I67A4{;$CfL_v
      z?4kd|&b&bMY#Z=U0(>q3{*h6VG+d^zaVxc@6c#2$vaxc({09BaAQ?-|nfVkKEOQ%I
      z7c8DTwT<Zos}-yf76mZJl-{K1TjZZ-c`UF5ZZoZSaDw9~?&1vY@lWc$(swx05bNv4
      z7~W+8XuNkEMb1*3zn2ui34TcqQ|X=AciP;h61Uf2@w{Yzkvvj<26fLUJ50;Sq}V8A
      zmc)_Kf{d!tr;(2c8_+;q!AIR>Bx3iVq{M1?A0Na-PE0gN<Z(VXnq)?)jjSzdQA2%7
      zvd`E)pA+y44B*Q)!oipjY^Pf>;WfrKayCU@;!L-UZ7c|zG19UU{UJPNuD@zS)DuLV
      zd69UFg~b^0E-gr9<dua4)hxBCjzaV;Re#6$e$T&x9~6F+&wPTPkMW77v`aqkGXIhG
      e5ss42%v0QN)lt;XKPkMZpEEI@28X9pSos&HRdPH4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*YjYD-7=BKgOA{BNmjv3R$VF_j1&Yuj(w1ulqUB=2wp5gElTEuNH<JwoXLS4o
      ze({3i=s4pz`b9tJ2c4mX(HVb${wK%h-Q8}IQaY18CuiUHeV*sNoaUeZ{`?!jt7t?J
      zQ0QMV?i#~ot1_G|+cTEAdah9@n6+%FT8tp5(B1mpeWwtv6bg0IR!~`mz~Z7pe9E^w
      zci%Q$!!d=<nrY;(mW%gkJ5NWmoVSd!LT|hM)mq-H(L6kEl`Z>}LSMSwzzdko%qRrU
      zSMp{I9q7`q4c!Wnbe4aanJ5@oLj;{MB(N)joeDi$@Y2wSesZf;>XvO)NT(y6$%=PM
      zLkMB<-mT#!>`{nW^=V%M&E~~ypN1%6V)n9z19(LtR1pOViFBr&xT{Q@(i&cXCQiDB
      zA&K2-)hDf*nX{ujJfz_;hAGC#=WAxYuFy5LRBj9}<yMBLjnzrRHpXHs+p!3aDkObb
      zGnd^M&9rM6!KlJEBfrw9+h;ez9Y{YDFPnMhNSGc{*gj>I%`1)4qFK9PEEY{R!c-+^
      z6laW@CEvZnpuKF7X{xFDnJ$th$Qe~5XW49mqtB_U6mY&7MZ~z7lY)neR>@+w1xrTl
      z4vV#9+A-4H6~j49MsS|(;-{mThD&C#YSuKofeUOb`j8s6J%_-S*ja(OB<;dJ?@cpZ
      zO&n)TC{9%wods(Yg&}Qd8nViH^B$R28$8_E=13M^GYkE<HB93=Bhb>}clbH{vMtc<
      z$+>G38?4VR4nYgQCJb9DS1GXoq|(-&O%suMQ^N%Mr9I!(a0~A#MC;2|!Je$FazMf|
      zVwo8+yscqO3>6G<5xKcaLvkCc7p)v8Q^C|wkP(a4%#y*8E-%UHvdrr^PxFl`Ee)Hr
      zcc$mJWG(hZ4J8mf#PrH-)6+Iw8wKd#7>o4>8Z4|R>@fU^-MFt}*DH-$&b(krBPXc4
      z{h~W8RmBm;=-|y5L_jV9?gDa^I4h^!SvkO5U*u;SpBxkJzM-}Fjq9mYN8kx|=tFDh
      z(TCO%Uqe#Xfi>)vb^jU$xn#aWw?6b32ldBDKE;tW9RGv<0ldcNJ_qp_pCiN=MI6U5
      zz&8hQ0tfLrQ-6{>V2_K*lau^Lbcd^Qc4K58AUh`8<M=N*M)_`3ABYFzp?KJ*nG%li
      zh%oHy^!aUf_@%ZccZT=aS?pl<#&I4=OkyvGER74Ke9<9y%LVhvjr!z9ozw<|3Z;Y{
      z5u@y)Fw-t)ecXkd-6`&*2%~b<(qDFx{!U6djebv9i4i3E`}K948D~O!lA(K&*9ATX
      zpW^I<o(wLm<Kk@UH=4OQ?smYY33Q!+H%R}TmYnYQXos*HZ;}FU7ZP}jJIU#3OnK0k
      z2rNQ+w?J)Ti9cXC@e{7SpO#)+cH%2s!BsD6iQIfa6B0V*2}-((uIVXPkpBB7K?Mq0
      zBH3jMvbGS!EK#fw+K?uKu28(&$a5ZaqE%381GR}3b7Yj!i%JVh!k3lsWPx{y;0ekM
      zW<8W2i7sioCKdYuC%DYXHt$rAXreP2k)!2>NOE}{^LkPWsPpLkbu7&Og1GGG+74T?
      z;f|2ap1F%ItU|{<4)=Wy!$<7XkE!^RmU3M4cz5xC@}gIcoX_?)OD_e?`~`JW@*=!K
      z9}2|<Zu9c#2=MD(eg>alshK9X%O0Qy4>`e~a)KW?u$mjtPZuvOFEw8iOvYeDKqmOO
      zGb_7OdP=1F3?xNN1wV7C0jDe4aCbYy@)^_oIpcl7JL*dg>LX<E71Qv@;h?)XK8F!!
      z$fPlbSyU<6cJh@G>>xMGPscH*m_Sq)$?K>#<+_djZHvUH7ha*}2RPyd2<yQuyuWYp
      z4*TBx9p)uyn5$GHB<P!G?57szknhYNTAuS!&$*M%J-mfC`~TeH-|74F*PZ9z3O=}5
      P_pdF^P4GIo24MdWBiRhz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!7f8l5Ixhr*UD?FRYXWc?2yoiSP`2ddGgql?x*cdU9NlOz1zlb_yK=lVMAi!
      z1N?+v@C9P}B35E^X3pF*XJ+pE*XtXAZOoTZAS_?;m|Ir6R&2*?^x%}!>!Z8Ay7k)G
      zG6KR%E-`F}t=JefWYh8N)vt)q$W*G?bXA&3(?xtppc6u^?QG`R`YxN13K#AlKOQze
      zp9!UXZM8oj6xY_fgrMyPDnb#{RYa%|>WQ}MY;@C8={fg|A~X}%mjNteg#Q!+f2lLs
      zFZuU|JwnuRqqMJ%^~7rNuS2&c7FdO>B%ecALWq*YvakZCBoh}@1glcn$vF^iyrA}!
      dOX`A=NGFd0cF~ZmDl!pa22F{CS-}G4z5yANTtxr?
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>Yf~Fl7=BI?2&G%vrUgn91lp?0wvt|~z0jL2q5%rEP->wqEX#&&n`GlALHVYm
      z{(z2O9Y;sU8E14xXM}dt@dx;$9G~~>vWXpPW_Hinb9pZBC4c|(`(FS~VJ(e>LhoaH
      z-Og7$KR@MH)~+{-MK>svtEDtj3I}%BROkp?dv&H#+E7pn3hkG?idVm)kTMIy^BivY
      zt8OP0b{j~;;Ak#R6y&!c+k2<HiaXsXueiaSy;5=&GE=@|m*(xjlkaFTRe$8w6#Axi
      zkRbX-sl&0Ww&T@BN1+o*92CNCg|sPb!}Gf+qSwG7^eJ?$*v=ELvbMCMEh;1yCuBcs
      zAcu^CVF!V|vE&zvHMcGsuNY`UJMC>>Xb<-k+Dcy8tCPR#*SxytSLnHH2Tv3_z1r<K
      zHc4}s(P^udJclNG&EcJ_j7p$}4IF``z#H_TaKgYF^1Ul?%Qk~sS(DYgfn#`;tE-JF
      zG3~kz@@WJ6VafiR28LjX^tTKg6;J!@SWcK&hQ{&B3|d_-Tr@C>OU#J#$aS6+ivN*5
      z--#=@mc~`W=oFOf%36MQqgHpz2HwVX3eh2R{3;V*nV~y<YG&oJ>(oaJJ1j9PLOmvq
      z-%&Wol4*t|6sbe<u9)EgRpr9~cX+iiFCZ$TwC2j&9G(!QX#+E2V!t*q?gw`&t8P#%
      z`5!TLfm>^ocvwyFLbbu!A#<XIuvzk&^p1gf!P>WtHM71A)wXVz8cd_qxaM6ju!s((
      zJPaO5KW4JMaO^V+FQMTXKcGN`p4Ni6zEO8)WSu%}IBBe~E#k_LcMYs!i49e;>)v{J
      zfeL2*M&P*Pp7hdzrX}f;5y8Mo#wp33XVFVdbGC<18Xa8O#o0J#365P>_RrnPY&Mxl
      zK11iPTuJDYoqG2)=V#Ex)t>M)_F^Buc#kERA(mho5$0E9>flPw>hDf<w{^Ea!vX8~
      zCVH&gCJtNO=}q)E8G3jcIEURhPs|JG#zkaVox*lI#EIE*7(kz9%VChbqCBS+h{qi3
      zCWDlo9pOxHbJ7mlcTW3H^EO*4Qkv%|+S{z((Ek%Bq3L$LcvVXfQ#=q!P<Rcmb45aT
      zlW*BO`UliK0`%}XY;D0@=IgjT$pqgcjOQ;eK##RRAB~|;#?aFd^syJ9PZ947ACpvP
      zUxHm|!9EsapNp|4BkZC7!%poWdb$O8C<Z<s1OLD%NgA$E*aa)GsTG=+L~?fZa_(#N
      zZ3ij4ygkc3$7L(Gg&TJ*o;$UL@w-+tSR*V7V3sMJqv$*2pJ#d8WeMD4S{HDFV;=W$
      z77zH3^-${@3^hdhx^Noru>chB9Y=w)1m_cR0i58M<S>zZG5b!7+eGYk5>q@c*<U1&
      zxXn`cO>Kv1$zKy2W@=d+4g4&?x{Jc9^l9Wn!Ui-@)9_(8Wn-~>a0~BiNw;Y`ByxC5
      zhz5v!fzRAF*}$z9vX-cY4fP4HeaiOvjGjM7KfY)o9Eb=B%4mj!llUMa9HVGyEW^rf
      zK^Jy5-?S3`Av|TSzidG?Vnl=aka#OL?}G^OKD9_&X0(MEb?{b;>M%s#@Z7hI?|1ww
      y_+I0O`OL)lnFya~TD#=)A(kSh5ss42)N?F1>nQB!A2nXsGc!R6@$ivI#tc6TcP
      
      literal 0
      HcmV?d00001
      
      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
      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
      Z>iP2*pX={W-v2D`UwqE><TV@O`u`hT6RrRN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<*>2N76g|_}acm4FEomuffU+h*A_58z6d@>5rHHUdKtMb(O&l@cO^$<9zKI8T
      z0f`4bfR94l8@u)>ES9Xf>pAz_nV-MD{{V0eT?<PB8}H-?*$Y+FdnDu78}A;Z-tKHN
      z@e&J$z-o~$69UycDpcuR0ju4ouQL=d9z<i$K?Sx86IFrbfeO9HvtZv#p38mT6IdBU
      zBk2!iqS()aM*3Dw1)76`XmO4mf!avMa-`A&0nryQeHEyb!f`ZJsft3P4`lLQz@9|O
      z$m<8OFHmXoT;@C?&}w)7L*YQ+q>ELY5OCFW5XrGOE?{1BdecP<YsBPJlDH46ICs{?
      z22N3sbKJ(k^Ded+&z^;Wj5Dy>M1|5<A8Atpmt9=o0_RyYqp9~4FR8I8|0*xW*rNIh
      zT^nH2PYWjBBI^y=CY?^Vx!GzM-%$HP-Vz*+(a9HW<2sIzwVhSM#ZmG&e+<in!`5-K
      zxY|LTEM{`BLY6@mZ6#;BLLS$Pl7t5VZp{hYESVG3(ZE{XxJ@V5Rl8rY-u+CLKH_bn
      z+0hWH#fY@k9N}h;U=c#|rSWM2;vQ+cuR&PF5T^@>UJhXr#F-KxQ?REsn*~2zV9x(f
      z=?}F=dOY*p*7>RAjk@%6e@K5q(w}MwrF424Il>KX?)7r>+4a64fT0F(IJ>~b0zemj
      QsRYP`zxr!)d%oY!Z*ty@F8}}l
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw&n`nz5XQf0Z(F%-wTg{cVB^n1BUlKrP$Z<$1ikyy+bKt`b8gPPS6Fxr?_nje
      z@Bm)M6A*J7u@jq_`DT9k=FEBjdVK@1f!PWQgoPV*r`kr__BpFz&qNOg*=WS>=sx5)
      z)z(zt5thePq|8;jZ;~vItxI{>i`l81`GpD1gq>DVz%G$N|KyNBr-XXPnj}>w4OEnI
      z>0|42=h4v<p}eP!PWK7LmDPaYb?lIR6fs$Yk1C<j)rQZq+X1^vHHetd>e^5iC|M)=
      zr|G5FIw34||2t=w;9uCxg?y}YxA{NLUeArN2zi+N7GVx0lqFY06)+){7@;b$CY{Z(
      j21;u$s6UU9hD2Y`eCS~tO{r>v34|%MBon437BKS-i0opa
      
      literal 0
      HcmV?d00001
      
      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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
      N_>O+QhMRhP{l5?YZFm3x
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>Yg61*7=E(5us~DVt_2Gl><u-f6?zeSfnID8T}wf`?P8%Vgpj3acQ<P`i}FoJ
      z{Q-_&9Y;sU8E5>UGeSG+_yhb=j?a4%LhMj?COIeP@?74_{{7GIe*rj+wLCH!4n4Bh
      z?XiaEkCh+#L3piQt-3*}-mK-3({OONT@77<Yp>2VY8x7~1r42(Uc(D7Ysi_UkqU?F
      z{;Jyp4SRItp>s4B%O&|O$o9S&ui?(N>nm<>+g_=;8VWPMW7jHn;K_Hqm<u0zEe(S+
      zyJ--G6BOduP22H85mM?w76*l~Pea}mx{*pZRlKO<5C$~#uGr3Fud%kYqD*SYES6=z
      zsKY=(gKh_by|Lt1t1UN_jhA$Epp*W#FLXwG8airT-3!Uz^jlu&`3;(`+reWEJzncp
      z5}d3#!tivoYMw)vhs=>(y-Y}`Msys5rGZyyM8ioPugQ0J;MQ%1x3MOxV>*WMGFMmI
      zO@i8?3iBBq2Vlwm>pG6Y676s3I4-94+lihiw~USB*BP}?E?m?xfl21XdFVQiOV$5q
      zuk_$DuI6!tFe(W(yRkM_-e`qxUB{caMj<L@j^AVkEHkpFPR*@6a-DFZw969HBGgmj
      z_$}5Li)JS-kw_Jix5W$(XiYwhaF^Gb@&ckVN^7pX&5^Po&FYvF69<%uX+OBrSapMH
      z&HsqG3*1(_#=}~f7n*I(2F!AbFje-7^^T5;fbHJ~n_J(;>R7jHZ6;F6ToEtmSVR|-
      z9z~C=A2Z!vG!B}j=kf56A5fx({&Y=T+X&q`S*H*iP97_4jimaMT^*}fVpBEj&|8l#
      zP(s;n2aY@KNk1J-nUYQ!6%d?asIqK*7QWOqXM6eN(Z!W+&ZarbaO|~;e|Be!#cU?~
      z1U<iUC8JLEsNFN1pG7ZM`=is?hyDEGJyv0XSc0j?m|v5riz|jT)R*h)=<9rf7pxPT
      z=(mhb3|f8pO$_ZY^z$@u4tsE(m>1B8izu={h3!^^ldu^$i~+@F;0Sp|xuFz@M}wtP
      zKu*n$aVEHibcFJ4DF1ohW;ex3$2f}i4(m4z{me;Zx>GG)Q4+)y55y8Qyn<J`BB8s<
      zx9lDN1KM2z^z#|CwqP#vbwZwOhVN0v^Ot9!r&7?z6X;V3^lS`0{0#JI;+^GVl4|@p
      z*rgQqaDsg<!M+h=AN@b<+%BSLQ@}?P;PVOakBpL};VOk)urixUp*bm%i>sH6Z!oYO
      zq~h}S%y^1Rma&EF^A^vY-oo^}wG*sS76njdN^ev29r9OL9`h`LyG-i>PI4T>J&fZ%
      z|Fj+`eMce<vA$lM!8<GfjrUHV#94;(cas7*$uG%aCi`smos`>5;`Rn+cwVx<NFFJ_
      zB6Z(Xc9@p&NwHz(mc>zV2QsQkpGH0;Y(N7o1s`=&F%i2L@8NwV=@xBAL{3a}n8+9S
      z+}<WDR#IfCs6`F+3CTWX`+P>vpJNDLqzDhkgkU?($AmZVK}<MBU*b%+id#^HT^!%B
      z68#~3$y|SxLevvPo%xV>Yi!>8G2%U1kjf}13kj-GNvV!P^et6?$M}BFzk(kWew5Eb
      rf?tU7iKetmJ|AEyW*X%v`OH1V@=hH^{rr={i~2bi<7setI)m!J#&3G?
      
      literal 0
      HcmV?d00001
      
      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
      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
      a_5As}&-JfQKCqMbuXWC~<W*wzVdH-y;TV_z
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O;5r=5Pb_33W6Z=Au2}`FvjXxV`3#HO{ykpxOiIHrEF7M(+`P1%ae%*e}F&A
      zI4#_0JnX!kd2e=SX7}g!>l?rs24xf&_FewQHD3nW<aR7WVa57;Ec9eH6JZ$&Lo*Y2
      z+;_D5sY^UV=|cK4zGNs4M-v9+I<Q3*MO13oK#8GYN?+V1FH;dd@u?>mT4rEzZ^A>F
      z`m3N4&t=3gF#jpxoI&NDN7*qQ(;gZl)A19{v0UweFUCCPq)=v|$k;V5EwAVZs<|^<
      zBaM;H(9elK>xPkKz9y8}%~9wnUFWu&MDdkvha#dz4s(Qg<yNA(oW<i{;WPAda+a4@
      zAA=;c#Enen*IR#_lXPl01vN;|38=Ja`s9~srxCI=a`XxHgEj?J$)+@Lj7_q&rGT&w
      kFcn*9WZ1-ZhAr%@u$^HC-3)u!&9IL>I)#1^*#Zv!03Z*HDgXcg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyH3ME5S&fy1UU%_0UC-RIvxTmq6C3Z04d0#38cT+tK`seM)n24ukaUC2ns%c
      zmLH(tI}jTS(NWOM?yP2KA8%hTuK>DOuA)TPx>C0)v^ovriL#bW9v+#DRdU};g~pDP
      zle?I2oK9^O9$~d;Fv^a@zA-#jX5f_LUlE~|bEcIUa+XWeW&fB!XM~0r=1y5RRA$Ql
      z!{JBgv-|u`sO)R2-2tJzzA+?ty)@wfWz5$Rphjp$+Vc7Idc@g<8W|?EqcoNQO2!EP
      zDSB?AbHaA?kBjyQ!62PxF`w$0ap%w5cV@0wgKR0^BdowjMPgN033HN(6>5TYsq7XU
      j@Hd~(cq}AM!9b)y2v6SMlB_N=5n%ysiG)SL5|+LJ#a(GI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g!AiqG5QhIrlUCBy)~XjT;;j~G5XFlkNK{aQ7qwT}q^ntpyOK>rU&lA_BzW)v
      zd?;}m#Y^dBX8z%ue`fdV`{NV9Hdb432wV5!NrYONFwKP4GPmK8ebH%F7;P#W<;KdB
      z=TttH%IFqc!eDlyrY6y^!9PvtSy?ENk7Z$b`ugmcK<9)`WV9`XF2^FTq<8b04Bfk1
      zO=un{t;$0}W3V|UxRIGi9}O%9@X;o8W2NOq^^nNoN+h`?^kb9q0>Nuo|25q*Q<gA_
      zXD^-qwta$sX{sWXr)uiFJ|7)TeX#+)lYf%11`kcnEmjT|xMDA~IR@O>sWspY-_d!i
      ckuFD{QD7G?_R!-hV2mLwq0gDH%+bNh4<~eO7ytkO
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh4le#Ii*Fyv%(4<c!3;ywsdxeW%KjRA&f>oq>gsK>(~I
      zCowNw-#;lUHMxYHfsK(t6;oqSYGO)aQcfz00UTJBh8Ja)pebc!;0n$!ElN&x%gjjy
      h+KOa~9>^}Bos1033``8H4D3J;FaUX+K$3}p3jiI*JMI7g
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&zfJ-{5XQfO1Iz(}_@}TjREmWcqp{K0oSL8)8}$0+n82EKkK8RpeFWde%EZD4
      z@IibG<8U!n7B(~U&HnbAo&ETFdk3(O^%_cq?K?GBfz@e{Oq8{3@*q?;VPkl7#gFF?
      z2~V9)Z4Dk_tALHN<Df6VSeb!Sj(;ISJLgO*6LXf!rQ7})fi4NnFtxc;*2T)qxbpnD
      z@zkA9<*<69t#+q`@=h-%cwstXA7v~z;G<4xMcVT9?0(4EjT#yzbfPqo0ZPV*{%Lw{
      zqH{to`sX&s1b>juvV<@6!gTY`o%a@Q=t5p6KPD6^s7kJhDq%?~u|Zv8LpleA1}eL+
      fXucFkOQJ6*a0m}aXiL=)OdzbFBbl%&v4pj6Na|wl
      
      literal 0
      HcmV?d00001
      
      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
      zcmX|5%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
      HcmV?d00001
      
      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
      zcmb_d+g8&+6x~xUwIK+iARq{+$W5t;_aX=d<WfKZLG&qv0m3RND^0z;`T>56z6eX#
      z@&o)RmuE85l7tj5%NHi0=j^l3KKo>T{QUYIzz|->5o2iGGu{|U+sY-)UBk9{HlIwZ
      zhd3%3>b>8yhP{(q+T7!&%TPUH*_J!XP|@4B#!#8gZE+11Na(0SHA7v-viV|Rf0H|_
      z#%7i?G-Pt7kzF$!OT4RpR=T@Zo}n#Mo<WM?tj*uf+6M)9#dWx`&oJ5>k+95-Edf38
      z-sOsZs!zsIXTJQDhI2R{M*|f;S$A!r*t?FisAGtky9_;lSdcm=vP%Wm$961=?Yd*R
      z<=OfHJi0A9ns70iM-&u;Mm$s}$AX1~Q1S#OA0=ZPml-;C>_W1nmrqYsMMFC}#rV4z
      znpMl;dSsQDWivEJ&V`{U73Bpah$0%*b{y9kIs-)gI3=dt=oL)+7+Q{*`Xf`q)fKq{
      zS-q*mH4wm%Accim++lbfHRC8L13q%{+!d=P&Pi_44mqjWW6w(PR2)g#(LhtG5gDLi
      z5JRG!+YFii$U`Ww#Z88;-;!p~_bq#(u)WQlv~j?|W*O%Hj*Itwp$)g}9pBz64KzFi
      z3Gs-mRkENdg)0iEV+4;G;@dfA(b%Ui&Y-Fv0jwPF*PqtxA;xq(!MI!=H4uiYy+Ql=
      zvx-yGz>wB)12^g0Xyzq>2C19BzI2VSZdunv`MT@?rtA~0k>Dg2jUduBGC;!&=7noA
      zWnA-*JcMhweX47Uq{~>Od||(m$7`Y*7V~?qV;L)QeyYmp^D9yj^LwFV8c!*CC0B4v
      zK5dC>t5&UAeo*+1u1so=u1+9<7>QR+?{Rt?rjyZG)qjXHpXnh6js9wMf-F^uG-~Kc
      zmqB#a(py4YFbW`90yskbC;CwW2z+2JkbD7+UNT(>5y{Qr<mFIutCxHUZ7O+~8WKek
      z-_X86^gF@;uY3RrT)|ZZaP1^Ow*cq~18fEW`Z3@E(5@(eSrSr+TJsHq8~p=qhqx7n
      z$a)Z+G7M4yN+8|uc;stv7xzfB1g+qG1v^gBLjKzRfg?Qlg3;I!Cc?n)Jm4l7SOTua
      zB&G-^Aslg%<&0!G7Y6$fVkx8+EEljCVmXbaGAy4F%hfRO#}G>iTx7|xMrC4H{{^#U
      Bdu9Lt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au}T9$5Pg$ea^Z3@G110G>{KK{A~uSkr$QvysOdMCg{+*rVRui=Z}=xR3IPRM
      zKT4bgvC_ik&Aj2gH@oxkIeP=Ji`5VX!p^O@7agrkCmjo|W#&3bW}F<IOncf(Yx9Xe
      zdr0NPE2BdMzdDZHRHtKWw8`DV{o^1soU}@018E&6-1JTfbU~;kMmsOGABZfMrT6F8
      z$JVSeB$N-8R{n@k+}s)vg2aqugd&z=M5q$#eWm4Pem9i%S`0HuX!cFY3k0uW{yhx*
      zSUEzw|DXRI5TYxS+f<&bdGh+-r)bY}u>pQ3Uz4zg63SddW(8EZ<1ADeW1e&u94KwS
      gp!T$o)EOg|0(%Isj|O)!%UFbEG`SL5j0LQG0XAfB+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!AiqG5QhIrlSY!%)~Xjhd8<V%B8Z@f5)~pr4{Gk)bfGJ8w`3FXNqi4af(OB?
      z4<$~cc=F(7X8zfae|F~M^YsnD4px0Qgu$J75F@S3D4z<gWno8gVXU0Q-}3A+m$OP4
      z?ZYK3H#Eb^)$aqLXJx5Gk;&3Bc$=IO=z`FRjkcB0RVIpBdeQO8R`L|S6WWJLtLli*
      z8f<0+H#QR)poPT<0YXAIRa#!w_hVV!h;bna{nX?<K=2sWKTWrqDoYrq|6SpL5L}zO
      z%;mY7yRQGe>Gs?Y8{q%(p$Kd6(B|y3a<IS^`yk{Pac8&DfH!<W=ea?;90NvyJ-FCM
      SkE@6=hOmS_XTBsy2P<EconB%9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&u}T9$5QhIrE{R+&CPr;k5IdvbA&QM+b1FoFO*CM+xeUq5x*P5`;%iw6B0hlN
      zOIY|0HsU0RonSLF|M2ZUGyD4W^a5ZP%M}y|ts8ZxVyj)8j+C`*@;EUr=RubZr`~0!
      z_bHFPcD90mus*|$vctG-3=fs*dgb{SA~bT&v@$);a(Q&sJ|WOKp_VwCdu4r3nF*J!
      zpFcjU?{BMw@{zXM9}|k3tsWsr+<-$AF&`mBl~C_!%NLW|K4+JzZ<x^RxKsux86*0q
      z8TgUT3EQ22-*ZR^yKa)De5R+iYk%CmGj+rUWJCEk!U{?#ORk72U`{GALRDfUoxPa`
      iN?VVpJ<O20#86OR9{~=~kSY>PAS|FMnXo9afTeH6x@T7a
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au}T9$5Pg$e61gNMMs2i+b}EuX6q|?^Q6X}O5KX_i49Uv6D|Z|5OKklHE5X7K
      z@F)BeadL>Ah0S~OhBt3^_T%gA9l#z|D<}|lZ`Ff}taec{Ro1e}qMj2@ymt1A?O5B%
      z*<-@@b6r6|Xy+3~*-6wlh9}Alyz=~OA~Z8jwK79aGa0(+pAzVTP?zA$E9-~K%(%4v
      zd9u-cdUk~Jk+#|&6N+2gLqgDVV-8WoVhtgxghs3_U(W7EoL;MuVL~f*i7ZgEM)XfJ
      z@Kc=;I`Mx_>Jq|%o23b#>v?kf@9R7BTx>$#DIZ8!LkVT!il_n>q>?OD1#8mT&oxlm
      hc}4vtw=@Jpu>uDOaEPW<HL-~aOK1rbmIVt~`380|X?*|y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F%Tg0T6g?e=1Y#6<tM~{ak_Qs;twA&(T2LsISS++GoJ<;M4Kt~k0dcP%;>wLy
      z=|(LVet--A#9vTPPe_0ySeVpgrf;8n?zxYi{P_LtJAhG4L=Y0_e{OD=8Cy9SYt^)E
      zS@be@Oy68_&9%w0Ap%1nQxEe>DwE55zH3_kf-FkQH}geVbqWidsCSxp<!?h;1cvG%
      z3zq5o(pC1#E^t)fY(4m%>95ve1;S&>R{pp^Ix$=CqlK3RJMO&eY^Z{Cv&lsPW6~+e
      zD4Ng~!vVwu+Gdq4AFQwCrTa)HC(tqLSY~n2bd_Fj84Z6`c>)6sV%5|#E6`Hf3MsH}
      zag^qiq%AO*NbW00bZXO*C0{wV7r`-s&Y%ix^7LGFCyL`Z8NrE$b!}9m7`kvuAk|Pq
      zBZsUG(I3NU^iqP(pr#zm%avw9;ArB>c3!&e6YI;%x+^nLP+trK7!o+LqhLEh)8r|5
      zK3mY!m_|V4dCl-ryohgp=_;SS7C0Znh$c5Y*CIp2a(D_XU*KjXn)EXZj`c$NxkAB}
      zo|oNc4+_ewk{wXqWSLkp-KIqHu|VG*Nl#BFsWjqBOR5ddT&5y~{o9%LR>kV%>0G4E
      zFy|XP?&X(cUBX_FsTNnslKhpnmCK-qc*88J!d!_3V=nZIE;#G1CGRSINV+Qct(U=w
      zo<5_W#ctxa84<Md4b%ohpE6nxay5<+zd$&Z{(?iF_!Pon{ze09mR@6M=enniLI*mz
      zBA!FpO^#OX^m6YAZ3fpz1J)rv=}+V<`aUE6k&k8CaIi5IQ0lPloUk)>?wbtT%-wiv
      zuIY;L4ju7Sy4$$$8G~=k+-pO08|m+F|NM%7sPgs%`1@p<Lks39ZVo5$Fo=_)FmhF;
      z$B{siIzmLGkmkLavWIbwxONWZf9T2lThCK+FHz4k>RDp6{2qEn_tL|EfD5=tt=00<
      za)|}sZMlpqtUlj_(1qWL9l+HZ%QalDvD`qm#xjPR0Ur-&&CbYfKISuyTg2#58s=TM
      bJ=F5P+Lv;_e+GH$k<)Wf9wC9-!7BF`A*hid
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf96r7FS_<||LgcK;(($XYIL_8n?tw15PlEF<Ot%CZ5HpXgQxi*SjK8fc5
      zLX|+`1NbP!>^c%WAtHIt?C!bD%;x8>Z$ALs$6X6Gfz>1VL3Xnw??#6*%i^@?ZY62l
      zuQn^&^8I%HF1BC_Ea=o!W(VD!@lhO=0^*ooAm9u)d(YqQ48nbZweY`Mt_!%j>di3N
      z+Z3=~4TDinA$ucAlPoEp2pFyQNWkoqf(wCj9u{z3puRD?H(Nn_<nZQ#2Me}B7d<!?
      zTJ+$;W>uJE@!;fm98dP-IE@ATFpp$9l9NR3^`Q#`ORBx6nq2cRhdL*hhe<(+lB~*n
      zx11!|fk30xt~6>ds?&8FmJP>-OI^G9$s~%Ek96%XJMSrH1iXMoPx`4Winy@Q=DdGe
      zMssHGfLkPI@cB%BWXSch60Rd<>qyaz2G=w2n17bLfvy6UzeDUBr<nf&UqMsDhJte%
      zHa{`DhD%(1J>?<0JVFzXIr{;psay5qL(F<_@kE`uol{)tEPch*KRxF4+^6i+<Fh=|
      z_01|9*ELVp;Rcn^W!%*I6yMj(5sZtS&+tE@?k`V?8VcQ>`YTgjRV16V0SIWq3pRR5
      eQXv|YtB5M`Y%v>D!>X>jgEdC=cM@o!1LrsRw23YN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8BH5IvVJl-42$SV2St3-kl6eE3;Fp%K#tG!cXZpO$u!m3Ft;-KzNF&+*Ab
      zUoi23AK)MHU#RD9p=`H>(5Ah;voq(+oSEtGzrT(EOk+8SHi6;y>IXG#=w`aGry7P<
      zvePSiNz2wQK_~(<%`SFDPcQA*j-?iyoZ)DeRjoMsjwi08CG_%va|+!lFwqSCLUr~u
      zOE=y%_=W{0n|;>{szdTdXMv7+-O!yyfj~U5DWGJ{q83H~-4R?uM4)?BH?)`4@{VS0
      zs7zX*chxMYrA^h+<^9;GID5J+FtXZA?2#x#nzC9ESc#wS7+X^-Ys@5*&nHejX{=~P
      zS?h9jcUQ9r7k>V!pixfKu!9&7=yUnmq1>zb6INyGpP4yJ%nP)Cv~-8J!T8%#Xb)&2
      zABMoq2!=2sFm#4jE+?@R+bXc^Xlo>a0Z*M?ikzfx$(~Q}nPO>bQD!j_K}=?$6m5q*
      zJ$kuP%9c#~WH4CGu4xrmjS}B>`&Tjx`^-M>k*#4^*}VNs`<H*Um*lt?K?>6Xqw#!x
      z``j>rpkp0K1Q|CM!HkUSteCbgJ0LI?_qMBn_jpNU%eV=K&Gv1W0#hVC)uA4-#TLow
      z^2~Kc>K!?WU9rrvjBXM8n%eneIYx}`bgZhuHK1JKb+by{<ZMz_&xqcY14N=6_uI;r
      zRNK}#S<eK<&z<a(fu%&pqpOTkqX6IS2qMIPkth_oQnYsQHp^4+Y)}5g<sbafh8}*0
      zc>-_fx`iwJCEe+SUi3l!zx3lOEm7JOp4Vs@#C5NQQA4;vl)8^gw?Kc197?7FsiQ*-
      zf8(V_+2K-DUAkz^sYWN=aSN=2G(#Bk(zuq}O_mX#g~RK$kRx`1<i`EUeLW+&$>Zc=
      zP07X3n4E&Rt7Tmk7LY*Fms|={P0G!oCQvvT>c^eHA=2M{(*1F>t92?|?-X~+hdy%=
      z^jROe=xT}1&GVwOn){7&;94H|d>-PF&+-^ge3lFvqNvBbTkirEdCJ9q%Fhx){{e#K
      BaEAZ@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-%}e^6#g#Ru$y!d2qiU5HG$fiAC<JVR)rRY^oPU<DmAoq99_Z^wp})vY=RwM
      zeDwEJM_!zE`sz!a(HRLdc1B-(@{e--?(UKxhVcRJIp^N<o$q|-Z2tQDx8DJr!-|Rl
      zf#Y|KEu-LA^+I*Sa2(Ti3)d{$EZ3`dRVV@@-o0%&wZhWs9kbdJP=l8OsdE49q7OAA
      zpf&2Q)w1f2fG7zluJws2Fz9X=O>>R0+jK5jj@6nKIF<PyxKinMwnC6%ea(y_gb^J&
      zMg>BdY(>SGz+{i?f^C~M!=7u_+MA}+x_Yl_HYATIVi<`)Ag&{fL1{g$Lxm=-<2oX~
      zbwWoJM+An;mSZlqH&@N(4P(_N_ZX!y?26H}q#p#8)`sN@oH(QbsV2oxEw^IW7W*b+
      zcCI!}+caE)M!Wo66{iKpyhb>bg{AI|z(gi{NP&HVTkdiou2$bNo3_y)v2dnTk`-B(
      zQ_x!V<yO;jY63_1AiW9u(HRv5>eJKG56`#P*UhHX{hW^Tc#$|YvsJVWmj%ZDh2sTh
      zqId}}tGGxNdsyC;j#uyk`)B^5vB_CZVOq|T8jS}_u%A!1qTw=^<$d|^H65>Gj%#By
      z8m2=n&-Baib=n8wvnQu16eYqHfn=r>==tAw8m_V6w1ziGGwrXd25J{goA;`A+qJex
      zTcE6C0+SjR<+Ck0+z&LoEf7gtj_=Bf@9H=s8xF0u*ST+pkt6zYz1^&u@(UCg+WQcv
      zq<qQ*%Z2#mD%@ahF0Gi{Tkqu7dM9_5XM}Hb4DtO_^d8Yud7jPfVmKYyet>9PiEKZ_
      zktc}V+Qrd7a`_#M=h8bkmWwMpNaV%`caZ#rIRkix|0g~4Y2sYQC}xqMe$QeKCozvK
      ziYVX;ec%Flu?|v5^OTn4DLhLu9q=s4Rq-szc2MD7vx5AsIZ1SZ=Xj^^JVh^z=YuW^
      zJS9>%_bbMKrr}fb;ct57b^k$7eiRwP`V#C<PCh=6{88WJEOJ5eCVP;5rBW<?jDHDZ
      z`w_yS$EgWJMyMnmr3V}Lo^Mcm3nRFTBy7s)cxBSw2vc2&Qr-w<V=4L5!`o3t@?G8o
      zeowN_PX~B^+?RKxZ*t;b@~3^1xuikmKgmRnYwZc9Zsj^S+rfohyjsr3E_E=wl9z-!
      zm|w}quI~8>=`)`E0YmxNbs7E<(R^${T7-Dhi@(*4FL{X_ywjWJd9E$+8HVvW;`oA^
      xe2LTeiVOBNF5(-m-F;lgw^+n?xQXxaA-26f;y%|v)nUAcW!zvVf|lHr%0F9*QQ80i
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AJxjw-6g@Xh8c9=It1fOjse_>iMNnL-LL}&*W`Btf`ZT^L$%}|T#Q&iPf`f~j
      zv%CL9yba<gxSacS?#H?BUoWo!hFJ9B5TXllBO<L#luv}#vZ$g1RmjBTm$A08EbD8l
      zjNZS^W#jm83G+=8_r%A)1wy})r4mId%ZfYB;ynT#61rofD=V~3MNvyHyMKH7c)a^0
      zw0D$Nc9+mvT}uh>*qqA%EzE`p&>{2^rR7n5mC5o{WQ8OQ_$*!^cn!xtN!LzPMHnXk
      zRI*J7PE1|qaw?dx@~7^N>2xfEujTI%mf)ey*5}B<40}8d9mbF|n@tRO>(A&uG?X4=
      Zz*Jxa7hCAF7cz}Wn8ScA|CQ0f!Z&yUYJ30y
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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<?8Mql4guzOI&hzw#%P=xX;xGejLU4X*
      zQF5wVW)9FYNo=0c1DOeQIU@rz5VHb9g9+$6b_Nb0j}ypa0n%Jx5gud_Ae$GYmVpld
      D9U)Z^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AJxc>Y5PfsGOXQN67`3sHbZX%#R(@b%RER{I=wZ7#mt=LbD|dV1f3Wbk2%=!&
      z53uvEh_yH#ik)EdX5R2--tK$(czOn~irET0!t%Me5|L3hN=CvMsk5l7wHyk)qiu4b
      z%<#~j$-V1DUOHt>1wLWE*wMlaf3$rk+^>kx%w(#Bj%Awh(n)uhKnH|+$C}Iu<6@z6
      z8NA-Vo!-3PJ`l=V$|$!@C@n0;1i!<cAxfC6Aw-qX=qV$Q^6@~X$6}x*q1Ceq8wj>x
      z{yp^FNM(eT-v2(eNeKHkPZPPXzHYbwN}vb~ZSY$;M#3Bdl(|-zd6?jiuc69V<H=gV
      jfnezo^}9mSU<_Fbti#6!n%vb`#v)9i#g#D4=wap)8-Z=0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&K}rKb5Ji6_lZ;Ff6Qgbf7rN3Q22tE7f<%RAa1)(<XDpJIPPfeTh<ET7-oTY0
      z=m9*3UPG(|btkx~s$abRRn>2w&#wTsuo$91XkDvY)wbHTlaaEPP1f!j!$W2IY&h{Q
      zJ-$o$#%pIo1ccQoZ<HPWaEIwIAG7tp9HEhMs+Ea3&E(x>_lQ8Jgj&bh%q#0-WpXav
      z$1ncu{o#X9-q%+91440aJthPlcf}Ekn5`m0g;4Kl%jfxc!0Ck=7$!7(E|CFB#)$rI
      z27aV7!bb1^H|-IkzRS~uPxQoh`LE+QC!Sb=>?prSSV9S9$)TtMW~34)R3uiVvpv;7
      isr7`~;}oe&j06RC5MUP#sj7krggG=N6Xqoru<!+NOKH9U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusNeaS15Uh@gqj5p-ln;nr48B1Wa>_yQJ{bm07-l4k_%;tdz(<K~6fb%xdadf}
      z`{Q~8u)<itBg_hUma)xUtd7!JZK^o2wJyu%ROgw|>vvbcCrsL1BkdthvqGy{pi78;
      z6+R?Fpp2_Dp)+6X3E}3VG|M_$2@D9+mdU4+^gH3Looh;^x4B_r^v}%l#pBDY%Lw=z
      TVs`>PuKHa097D#Ca}T2@deuJV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Au}T9$5Pg$ea&k#bjM~^pI<@c=#YPb!DnvpMqUkr6Az4{><!&REet_VISfvsy
      z`~bhfZxJVlSPC|8<_&M&?7ok$w|4-$SPfAiY~QGR6<h7%WTLEPlf^yPcG4wYJA27?
      zr0w|ZA>q3@4-pX7^Btq?IPMt3V`chYdHxj<8X2crnE|JnEM0d_33NfIiE-wY^#f(5
      zTzdMPJwKkjXhQi&TkVet#f{AYA!xf1M<`;kiU<`#y{j$vrnf^*uhh^mq1knb98hvb
      z_|Gu#6P*!uy8rvsAtCC!X`1l4o_n|cN+1smEy!CXM#36OC`%266|f+kxS=9gmC0Vt
      jfzsA1YO`EY7mP#->?6Pd8q!roCL%1MDV4A+Sis6RQlxDD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO)o=H5Ixhrw({EQQ*2mZBS?4=Vnb|-q|$VubbtFgX|LSgEAQQkA0mE%KVT)X
      z@B>)-KVn*9DY2QEb8_a)$J^)2D}Y@rmXITCU#nXcTkYaxsH|m^#cgLVSoKxUaO0ah
      zy-WDUYiCOc2rJVTqwFAV8p8u+I$nAH6%nG0Q>{#w(@dJKnkNK0CsZ5GW?os}Rc6eE
      zkNaqS`SJaMP(0FB`(r|WW3x*L8m`YF@|dk4M43=)Y0K^LsK@E$WGzCy<q{d7WQ^b+
      zGVnv45#rXrZaO4{9XC!BKGPHH)j#gvnK)w&vZ?%#u!I7Nl1qYen2}1%P?lH`W^amt
      j!qzjYPg6-vVklBz9{~;!NmUV<h%kq`WWv0}92UL+7s+a3
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%`O8`6#h;-?Z|YhRcvgqL&BsXEQrk@sWjbG$NF~Mv{$ZsW#*1}8LuF*l2~{E
      zuOJ@60}!VrmJ*wD&iCaz-}!m@e0m1Z#-fiBVe?Ylh{z}#rDI`?)Opmi<~&nQ47H5E
      zx#QbZUOQ!t509`sZPCJvqK?*bBy`^iCx1nRW-c=&bRx5yn+BaD0-X}-u{F69#w9`*
      zvU2zKKKR(Xe<f58lu_=GP+nV42wrS2WPmbeLj<T18eL^%uech@>};|Yq1Cl14-h<t
      z@ek>_vC0Wi_g^>d6N0`ivQ(a^iS^1K_is&{u?pUle@IwD1y#;IqY`GgVl&h@hRkeF
      kF;LlfMEzkZX>bf!3hcncE}C40EMpPo(Be#(=UBqR7kWHwpa1{>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&KT88a5XIjlmqad!iBSt}L=lM=9-`PNBE~;NLYip6a&sAy4ePGl?TNMD$V#xV
      z*AFF5f>>GD%*-2p`(|c8zuw*f>|wct9ARss9#v$ui{i1emQ5OUoxfv$<}y3Hc#8SK
      zYiCOc2x~LeC_9SU#_&j)o>!iKAwoUnL@U$hB$Y?E?Q;TM6RIs|Q?IP=E0b~Ibi8@B
      z@sT|fipSb&e?rJNxBG;k<%S$0kNFBhlnJ$tw%pC`2b|offnh?U<6;@0WQ^#aX5hy<
      zB{Vz#JLZTG_FR_4e5t3ND}P<QJN3dkWH<RP!YT?VN-l}YVNNP>L0Mu&I{PyX6n0)w
      feVHLOiJ_pt0RkMNE>%S^fv|vvWWu7v9G1QTfJR}u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!Ab)`42J)-+pcU|TdRTyBE4x5S5ZV%1gQ#@(o41Aak>rd$T%arQ}F?OAy0w_
      zAHXN_B&J2Y30{)?;hR6ne0;sV1K7oKh#aALryf;owTqLnvX)I2cb&gw-*Tc7&%=wS
      zgde<iHbg*JpYcZ7QQS6$N6PfP^85=CY8j_mnLekPJi2M06X=Ri5yQ+Y>-)+~xNx>}
      z_<Yn@`6LuiwAKEUkl)zs6M~i-a)dnQ%ZN}SR6E*ocXB`A^jZxJ6Y3q8$N(i{ME^7c
      zKh_yxtMmVZjtNoEP11xf_0)ImugkZmo@hXJl&>SKqJX00P*e_cQi&5v63f!rn`xlX
      hd`0DDhEyd+f&%*paDbXrWx)i(0_u_pixP8K`UVQpW;y@>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyGjF55IvJ@va(6cLv2KmbZX%$J{rX)Dr8x-h^7>7)*-p(dN=Ie1b@p)u<!%?
      z8-G9?7qJv<&deFkyw3aQ>l=W5tobMrb|2J2g;u9wGEvsD$;0afXGYCt+Kw-^;W$mE
      z7f%V#oKCF|kFZ(v7-h#{-xwY%GjPiBuZYmfIn&AvIm@N#wtr5bh|uVzHh0Rpp)zx>
      zY)qr*=;N+UsGe%8-5H_0wLK(wz4V>~l(Ae#fEuA0Ys**j#}Q{YYGjzuk+Wohk~PAA
      zik_S3oUj-F@2L|)Fi7WF!r%WAx_>!P7=|w7R<V(=jtZ(0ePJamNhZ@!6Rb<+px{7d
      h=LL=DLedlrL<$_j!!cTt)kP*Ew9%1BSP?8?^$Sm)Yb*c&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-sW-5Pg%z#@1@B-(MG{ieDH!R|G98g`$Oup10{@S7Q=3vEYC5;z{t}5Aa8c
      zvuRN=9=z-@Z{EClJM;eW`UYShD-JBe+O6mdH&CJL^+XUzKXzLxlGU~f?&<@?flY9;
      zyf{+sQ72Bc@RGLlrI(0~FTa}dg!OFGwN@$Z_%ZpWjuJMq)H9Lvq*lSr4=y2ppaPW~
      z5_UG5*&gF*;3d>89rjgM>e|*7!LEm0Sws%wB@|F3l$$D$=MVQCsV|Lh!c;T#gnuQp
      zGWig+lb(tR)jwwa-cyY*8VzR>{_T#t`odS;i-_msHn$ptVmo}$o;+2?R>92KGhZc?
      z8hj#M_eC7b*ufHEF1rK6Cyf2LpuGx~hJ_J0e0vMF*#To?oE>s*am;V;yrA@))+hKa
      zrf7|O4p8QNZotAMDx5JNQ<!Fr3T7}n)Y|1pT(g`f^TO!lQ{*JoC=IGZ4U07mYaR<6
      LjUU1ymhHkP^24Si
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Syvg5IqxP)7I8UeLprr)z*r^b)}#MK`1_2>BiM<deJK}DK}}se{$nWaN!5|
      zQR3XDpb{5u?l5Q0oH?1v$LHHSfFo=<un6S`F%oW|Lf5+&K_LCey;1{N?u0|_$!3B%
      zunBIO84Z+s(u-m(ytpHM>BXYwe>Y_aJL#sj6n#TGeTu)SS;AhL+VMmjORa*tA7n!2
      zSOqF>5NefHy2+SI%!K+%ha=UOx?b%P>}J@Pc}$^LKn{7rTuTM=V))pT`o=gSlv<%D
      z{I1Z-<P*@2?^Q(D{bN>oRdqskFqumDw?FP0319Uu2Rv!2QavZ+lM|dNV=QMT9h#3N
      z6wdihy6KB3l97WA!b*AzhEFK|I-|V}7KeptIQ$D(u+1JAo8hd%xy3QFUwcL2Wn7=-
      zH$O(Nxu=ae&Q}r^=CQyT^HIVgYb;<1%M+~wj>I*~el{<RPG*eUjx`ENb)sRhreUpO
      Njid2HSjVQF`vL=YsZRg^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%TC)s6g?MAjE!k%D38)7G(f_lR>hL4n+PPNs34_c?>M6})Ql}VAU><zv{e`V
      zfPNI}nMp(ugv!#KxpU7w_u>2J`qys&@6h%!C0IU7E|b{kJWfv&V^mhf$GT8HJi&tV
      zWr_J5AN9{vIuz92YomuB1k<hdiNNdR0~KN#L4+C91of^q>f^<EUzMMdex?MCZk{ID
      zNm6QSj~~6^sjdX8-O1VasGJwd2-aHdhdJT?RjP`i&Q0Z`Ay{;3Y~}Fi#uMTRmVGP<
      zw(jSu3LW=U#?JEcxXds0K$Q_zuqv1>#<pN*VhxjG_iVPc2+vTbg6+W0lFd}wd|?F>
      zg)F7nBcU_;0c^fj<rihjz}9~v9OYk3*mDmD+73OiqHk@(g6NRHwd`a`RVmJ?DcHC_
      ziMvGz=5CebV_VRCDC%}0g85M$<HEdka96l*fX9zJLffacOBCYF&JWCf<7EmV&yWc8
      zNgZI0w`fEn&eIC;2z4?Rc=zae?4-6G2k?Jl@jIS=rE?@^a{=d0h_c-1=Xl}pC0;q!
      WYj>_=gV<oy8%At;0k()OFZc@yU&P}8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh4Za#Ii*Fyv%(4<c!3;ywsdx{h-vul*FW*RHw?4RA-1F
      zI|B<Ng8*1*PGVlVzJF3yYH|rX0~;fQB&GpSO^ggIML?q%86-4(;EF(oI+doSr50Ih
      zdNML_xmF~n7L;V>=M}Rva5FLpgB1c@<LM8V0jdhlFD*(=b<5021)7G%eR?2mK*umL
      gFat3w(0`0T2eUJ90C}819t)7>0%9H@n~8xJ0Q&Gmp#T5?
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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<?8Mql4guzOI&hzw#%P=xX;xGejLU4X*
      zQF5wVW=<+2gA`WJ=z$Ccx}1@L8Hibd!NCOd9XkUDkjDw+u>ff<um}&b2$0PSQp>;x
      E0Bb5$P5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|U2oGs5S&ZWCWJsqTgq1`Ev4Y35)mLFq@p5-h!hbKpr{XhbDSf+#`vPM6VZPK
      zFCg*258y{3=4`hGSxsNOx3{x<v$N~pe}4V~@CaK)<ODVj-KpCQlx}(lZV*U6Z0<^5
      zdXd}rWh=QVq9E`%3k=7q`LZ8I#`U635J_Vu<4B$63CurNfr@qn@=kqEpwQ9-Sw<cg
      zDwxB(z(Q9A^6lhvUz(5hL4n1t_FR9@HOl(wWg$9Hp}=N0%OOK{TcFbSwKr11khMkv
      z%T7H>^xa_C?DY@X9Z^+J2cOh%V&tn7F5o!(DR#CZOfSFw;z_ovgRqEYfu)!mb?o#`
      zB1Eb1v^quDCp#5>kV6$xFFBw@BYD);MqtM|vpsFL&!$BNZ{!gfmBvO-)j+aV<GAJj
      z+OYFV^wQ>CinVzrr6cfSCWp?sB#O905wlZj`8t$?be&G*DMMhrf*S4$yr2DYc7W${
      z;nIcD7pTpWl^{LlYKabYn7Y0i^sLKC@uIw|C&rU)WfyZLvuO`)pM`Zck>?Kulu@u-
      zO}|L*39X==Yy3dz8xJ`GEGWnCQ$nBNB2SeBM0*MLH@l35*j_=Ekwqd3v`dU!#Y!Bx
      zmfGvM5&JiBi>NAPyv^Fj8LKggHnT0cQe&$ozGLkx&j}Ap6EHD{wFHxJuxM=HUK}rB
      Y6Zeth>m1TQd{%k$01mMN^|)r^FCpI=>i_@%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~8B16g|@xT9&r7h~KCv3Z)<wKO#|MQrDUgkP>K0;)~fX6B%4~$?n#K7ypO<
      zfd@_eNPO@I_@j(xcGucS>%-37Gjs2`=ia%yKYxAy0bm6WvPcPBJ+R(cHCK5xd*5<h
      z=>)YM=}0?Np1UrOv&aaPA|J<c-_)9&1D*+tHMd^ZO|!Ap5)f+w1=Dkb&~n4J<#c75
      z2}%M6oy_LuX2Wdhot!|HJKK%=a}9++j&OH-t<}(&iE>sLTK2x&6PVoiH|b-6(I?7P
      z;ZuQhWuYyQF}*!$AdRzmlrbqVv7ubK**)w?zh!kCscAgha@v-!G)^`%;l2t4X5th>
      zYu5>5K>~A?(|Q(8Z;e6VN*)us`n1<M(5u60jF{(8y6oLlWk94rUIlgAmPcW%oF%?8
      zNOvobIn1*+zO?p^n@1GRBi(Wpu<0(ZBMvZBuuYd9*!5L%GHP3{EgiN$xnqI(KN<#9
      zuNlmE7}$bw<%ZIiK^Uc;t*j;D2L#3=!<eiJI0uS_=YnXMJfD;HpOl`@C}YR#`nG(b
      z^u?9?r*K)%LgqTVp$BCI7x|15Wr<SA5s&p@gLu3T=ZOn_xX38p5Z59ydT_{ehUgxx
      zpdG1x!_+6fq;QU_K?|(X^%2hVEgw7K0%`SkbP1Oef^B+gf%)oZOuwuye!=w8N8*^L
      z7@gHA{TVsUh-)VHPq;MqRSFaI$>JK{Qske3E?f(&(Z&MF|Cd;I0$3j)u8bR)O@dcR
      zru~Z5ueez%z5jrb%t`vBCog7c_puZcS!Gm)u;hlYSOZxWdMpnUEd{M5Glb-AA4#Dn
      xr8<}-JA|ZrnuPzEMc%po-z?#FWS23Y*ji-oFo{0rhZoru+-08xCq!T7{ole0>a_p>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+fEZv6kP|V9Xbwj^@fNSZf!L-hQyeZkPxE@+E9`j9(+5Up1^@&&SWkif2A*K
      zeDDMODC3$_+L&^AnLYcm*4}%a{patm-vD0Wg^MwPg(G<?8<94R;7~@93e!eMg(}EQ
      z;=&P_w)s#-2aR_3h;f1PrjB&BB`{vC?F%?>O;33kN5w}8Wr3-dj?`{`(pAYP*$tJz
      zY|8{P+?R<i{EMKI9qLqIv330fO|qL<MFLCJ+Rb&|yDx!?Gi{>O#jL=bW#w8s?P12l
      zJnp)<Bd~V4XBz9_=6i`b)jgH?xQF`!6Y+&FP``4HtFX<Y+k%gWSQPM!Ee5*Y#IoH@
      zvqT2jpq2`hg3zQCv8>a!)q=8rrZC6qobt^K2Ff!Xa)FG9N=F|=GRqU9Hb(QC*Xl^^
      zKC1KP78%N^y#f2gJM2~cP^0ntQPpD^TUYw-t~n#%OdhK|7VtVIPXhH`7w<kfSmR}(
      zxAPPv<m~~s;1st)-=()fD`-pgADH;YpD}p+dbGf6mcAhX@cTuylk_UMjVV@4^WR}+
      z#!{`@8o>RDx$k)JmB~I?(F@qNM5N_qKeGLYa7LE!*k+!fnDm*&E;G&}u<;eFGX6he
      W1#2Ub^$~3K5~jwnK~&xHKmP{;KF31<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fLg+5IvK)F}Q9CmzGfIB~Ty%wHA+U5K@I&2`MU-f>0m3aaPI}<F(c%;-h$I
      zU)qWXKA<0kI%`J}2usD5yq=kJ=FHB_-|NdO06SQBQ6a2<7b6kGN(bRk#IcOhpeM~p
      znw}0%WVT;8T{wi`E;LP4@S&e(Mub^UMl#GqKayh-p|-1HmF*F>TitSULDJ@n(IYjG
      zrqezqIQx1aJybF6;{j@fnXZcE=d;tkG)Go|FxS<gh>nF()*d^ZY^YMgW{FnGojQc6
      zWGqX#cY%B>5r#6!2y3l&nbgh3v55Ea+`^TPQx^+_`MeX{@Porigp;N@jj%LHDzjUo
      z;8c!IWK3vJApaR#$HOzMxL77^+^_#W9^*M-t5m^G`_90u#7iHq&>$?@`bt{OogRru
      z4Gt3?Pqo!P;I8!anF-}5WvAIF;k>m4J54Zw*A=`7j$H<}UAFd6;TNcFZU4s9PyVaG
      z<FA){-!bw%9<u$kK*7f&wiwU%n*s4Q*D=ev=Gf=(InSOaj0UE$hz7GJkz8++G4^r)
      yVCffL{NUe0&=v%I&Bbg%vuI+KeYVIqeA;NWUccbuCgEF7@Qd)cI$o$8_4*%%o#f8|
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN%Tg0j5Ir{;5(t9`2>3RLN*-c-zk-i|53ne;3QMbWp~K{2M&nGJxu7mB(6ztd
      z%8gd(1}ztSfdAqzsOL^XFeE;cn#^?H)7_{0o}2md?ehwNL%0-2L}1qgYr)F7j+e7b
      zmg~xLkel)Bhf+;c%{UB!Tr()BIJv@XpnS_#GqNmgWzCjlJt!uyqd92&nOcLi3yd^F
      zW^79-={xTI25>@PUo-f!rAq6u0<kg2b<|mbY-+kWMiZ|R_WbL<x8M||pHJTuFebdB
      zOdyJG6P+*xx~CmiUY&n5EBza~If343&$h}pE#J|0&1tBT69^2osMRpZyg+-UR#4!t
      zsgamhk*>gSD*YEF5*MG^vZ5T%4dU1;&=*dC+dFlwzLLOp?2Kba%bB*CkBLp#C6H;!
      zpjAL#ml!g!8-oHpnt#J61oEr>OI6cbp;+`~5aj>dWC8+vO$=aAKaH43AuSNMJ<8Ws
      z0^5F_`!?0#%SWE#W^S%cvx$K~#4d5{zO;%0TT*w{#;!FvK0i07C38hrKWJhUhnQ@&
      zCMW$fXo`7?fucSJTBi{Zv%IeGa(EHn_QZD-g(z^^#7UjJeZeX_#cLI2iKfzobj?xW
      zL1|*OV|v+HrxVmXlDzxs7PW9)x<wu-J)71vrl!)Q5DUVi&*1t_*QZ1ICT6^O-<Fr0
      z@GLa!=m9M=V~C`q{I(&E4*tn>!_Y^G-Y!~a5#bkzWwIZ!;RBx{*vQ{R=pAF!8T8N|
      zsG`t|K3c?6ef`YQp|_lCo9Q!XZwa%G@JWB-pRjEi$@hG$rj3OQlVM6-R)-Hag-_C>
      zSItk@Go8&WW8bapT8<5D2Dr;|_ej(FiJplJvRpIJj{PJ`nNtY|n({woTW!Q8I||X`
      z#vAk|GueLQ@G^2QtiqBZ`i<<$>+fHa?}(}L9tiOst;fvmv-!u^2^H4PupV>ON0Y>1
      z9AWJU5l3;1_co5@I8G4PL-G6rpHsi*^PIUC$!Cdt7Fq4(fAGm;j9j%8MtRrU7TwtO
      zw%&Mk!(N4nwPv_nZIo{y9x{6BJ5LV}{W{MXDy$K6jvoE~I$yhwqOcAzj)@S#bGB~f
      NWFwZV7eb~Ne*g=Ui3|V$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-n*i5Iv($ji;trZQ4Z9q9lAo(WVH*3Jhsex(u%G4SM5xue=ZGZ?y_qv<><N
      zLCgL}G)lB<(dNuK!<jSp&fC}X3xETxmyjdu->aDltad>-R@Smfg1(J8ac0I*JBoxR
      z7Y`v%Q|)XC9$|YiVU!&OU1NBpOgkQB6SnEEk5ErI*2)YxPGqj%Jtxo=q1tgaNtI0p
      z%4A&VH$PtA?>=`3#Zzr{dPd0a?hOcD$3^TTkL3z{lnJ$-wtSsUh8*9jp<zO!=R#Sa
      zWR2*brk9R<L5=^Q#krf8(+^<V!tI-u(Ljt$8lCAn%kL5;jmkQEEw44oku$3uVEI
      nbPg99C^Vl?eOy>-g1%URBX~GQU06kIV!{d<QVFYqIjnsH{zhyt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%T5A85Uha(%mRX_7jGI5J`y*8@uD#ys0oI65x5V#9T+prZgyskev7~0#gmB#
      zKfn+0<QMo6#)cTL#!Gcqr@CsU-@aa60W`5*LQbH0BX4D3R2+m;X$)x_42{i_Bu*Vg
      zohVAl+QEH7=XW6`PQ|7KPhe}Yrlpw#J*{aXbtj!<GcxX1Cs4PPDyc`5THYJ>&IH7z
      zK(!ki>!fibsWU3Pe?06zezvSY@kANrP6hHiyCVUw8%N|LkL3z{lm%*iW#}rKjVT?-
      zu_l2=KMpxSat!mIq35QG-P-+sf9+VnzmBssqzg5--~Qti2lE7Mf?v!h71%%lMXn`g
      vIV^F<hA1;uc+y^Qps@Fh>eE6}WAs@H9Kyp9>fBXW#v-hs!Bt?DF^9Ep2)lCt
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW0+fLg+5QhIr0tS;N;m{He<xoyZE-<K92t*|!K~tqgkSbL#H)chQoDDK|t3C>E
      z0avYB3AML86zZ%KgrNpSz47dLcfa}n+1=}#pH~3ZQ8bVsOrMA^!ctD#vYSFF>7H5j
      z_vP-;K#GtHSGYnQTl<X@Y5Ro!Ek`;2HX&Ik)(NR{`$(EdVla(9^b@jGN68OCt0BFQ
      zqTx!yNVRPXw=O(K=iQ$vzv-M2W~xtV*d%0>{8~|`fnW1IDO!Y`LiJb$*1y|!9anb6
      zS6Zj;X0d~2cX}qmU}~1B`+*<9mj4eMg)n!!5aZ`iiX-iO=bL{kFd{B0%)l67sV93T
      z2rtseAZs8`n7y~@whecEGck@yeL_=&QqLm!d=qw)u+pO|!kakuC(rR8Z@|44YFl$@
      z<S=aD6%XTVMK_q3$D;PN^oXz6+UzUNQrudCS!)NLE%hbhi*xrtR`nIc8VgSHn*wV{
      z=oi4b!P#q$r2m$_W8jhp37GsfIRYC<VGBb%N_Q4<d<M{fKF=_619(>FBVFJ-E~A0@
      z(jSbTW2p2Sqd)Nc;upq0bB&1$p6k@ego5^1##^RUB6aeZ#><eK!_1T1S?11b?!rUv
      T0do(TTYJD=W-hliR8jZ~+pQ%@
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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;@o#W{bmjS8@&Mz%WPIb%70hxxyfqEcqK-Vxb
      gFat3w(1VOX7qc^P0C}819t)7>0%9H@n~8xJ0HHfYg#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TZ_{`7(LTY8=GzIWp%aQw)NVrV(|h#tO`rLEmSKi1@|pYhi#Vbq$H{6PtiZ%
      zi!Xw@prG&mDDg~E+d@SN<eT~CJLfy!ndIlMuipV&L&HK!;QF5P%4uoOZ@EK9Yc&d6
      z;n-_!^}{G|+-O@zDhMXy$m@?(JE^cB1xhh)<mla2x4);{$U;`2y395M9TK>>eEhct
      z0$F$DhiV`ocDT9iX)n4fkZx@B1Z3MEC>v=M^H@P%pxE)WdNSGXtKfx0nF5uL?>eKN
      z6L@AnP0DEKg#tG_%Od_a@uonguXa7n7%LO7@4t2xZSi$z;kdwR%t{-#yR(xV1Wx3U
      zgKcwlDv#4fZpqspkJ@IwsWlu-Y0fGeI~zR<b%86(61T!P+8qYI_9tNso^`QNLs1~-
      z`s7uSaV_hG-LaxtIz|KS=l&#c)dSCXQ~%f1UNwznoodraAp?u6lo^0uOcv7k%}jy2
      z8;pW6(>%c8k6ffs;@f5fHd%THWv)y)i%`KT;}Jf82rhGP&cqy?jT844fV|2WSjJHT
      zQ&=NFvg%l@;UP1IqTKw1>O16{@-wQ<FE}};tgsw-%t5*&cuI}W7U;_}U1zYqKwpdL
      zA2DO5DH-~=Sowz9%LAPKF=tPv9iRvmv#ureQ&u8zj*bW^&COHlTz(nnae*0Q<t;`t
      eMj`2ArQbu!4@@MMCaz2tWEZ9l_(R22mwp3Y#k`pS
      
      literal 0
      HcmV?d00001
      
      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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
      CM}QXq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%SyvQ6g{_zO&e1m_0{@*fV4pjBH}_3MQ~$rqjceJ8V4MSi6l|*Q~CvN+z39v
      zg}C;k#5=9jf)(7%x%bYQbI-l=@%j1&U=2$aG6eTR+z2mJk>{U_FqA>!C0EMZYb0qb
      z{Pb7`(oa<s9?Dw_CSmqBzneqI`y%vZ5XdtEof5L!DpctX!KhU01am(+lQs<WJFt)=
      z4AxXAkFGBpGCmQFKoW|z$QMCf#7gJiMKe8D31Ox7yZ>K)x43!Rj15+GFoIEnrINY`
      z6uV<Xr}}2x!30W#T+$jgih0UPwMV1&pi#VKVUn=?A16_4ql{?>Gnnn{hIdKuDm^;<
      zIZCyjXQ%TH`j92q$I*4{%LAp?RqpjytJ<8oz;6uxY(hpq<j8=j*UptZXX}i_*yp~$
      ze&8SjhfkXk*kI}=3LH6Y5(Y5H*&2pA0!Pf$0wwnu!%d7ZjJ>1GFy)$0nETNzvKp|%
      z&39469&dcVOS{z3=09RZZEllMYZu%{%r#*dcQDO+F0@T%TbH#ik;1nKVWGuZ`~pXQ
      BpVR;V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XdH7(F-HWa+YnrcFwVKS6;esRTqsO|4=}r8ZDzigED4nN4zS7q`2a-E9ZP
      zXU6eQ(0Ap<2Rmb724;kTH~%Qdb9XmsLeeoWd+&bte&?L;*Zt?;Cw~LDh?<U+z}dUj
      zu2peuuhQJITvs|lC1~4~tBoM^t!B6(9oY;$Uxy}ea`0~FTp-(Yyg;@D#J2)R+P=4I
      zx1=vHR~z(F3?0u~$<3<3c++y5(s5*KP2LX#refEf&~_@<tzc_IhP*YlVQ;!txZ_KK
      z%Y!!-hVaE)w&xPJx=4)dg6-PjqCk0MdBwVbw&b;>fi!X^#xW_7o-5YJAdokq<A{!F
      zfm{@BuVw=U<kYQM6Jsz0j@N8g-rU)4NdLCga2UsA&1+gt-STbqpBS}p%Vri1Q}}9$
      z7*-~#fq-%CUQ@P11{~-(#Y9G$SmV|8?uiogj)@Gi26tynoK*qk?CrL*q$=5|50hmF
      z>uu>q(XzIghTOE(pLAL6(p+&!!Vf8Mu5&p`Ph8GRui8c^pi*2haSn4jE(#O}J1h#J
      z)rp}Sw1ErAv4!GBV>b|IwEQN`Q>?3MerVzfK4J>27E@425FE?htgJWga$u@OCMx}d
      z!k<4RJ^kfN;5j)yvm1nJa=sr;nd+FOcy_C+F<GCIA^d&wz;@xFCaeZN!&M!hv#^6n
      z9efyK*(Scgl7ODPAOhz)HSK#>V%A={I<Bz*qY(9Y8Cb@bCaz<ZbK}cxZ#U`HSPZ**
      zSl;?VR<mqucsqVmuGnh+3jNja{PRkbc8YzL=3|*gN(~BkDK+QO%1P$w(P(dS)%YSD
      zqvbd)Uq>E5q4XFNrSd+eN>5R^^B5=gF|!xBoaA?sPC%94Px&w`BG2T%M$0s5=#1C#
      z23NIHq=IkuoAgQHE!s5xza5d)Xc4qbmj1%&U!d)k9^u`RwvW>XOw*JPrcB2wk=9_M
      zh8%80Y-a48u;tWL(W1h*!c`%U$H;p6AvEm|8d6a5v(aI_2V^_}$)iZ2F-Vy=6^J-c
      z6FYv_<0!h0rT=%7LmYDqt(-7cxGKgBWl#OdO|M+H$2rqw9m70t#l?ItihU)?YM$9V
      z|0|9@#Rb;y{b$6SIlw#?wZ}b@->27)J=pmKdjgm6K_bj1rfR2I1#;)c3$>IV;qo{0
      zFCQX1|MJ-$FX&7_ftLz65v{TKxK$qT^e0T<0cP-XL>9NoY(hq8e2h;ZG)+C{r0uo}
      xEmbTKH_vA42wEneYBiH87N298%gRBSjOgq)rsek@F0;#J#$06iiWn)Z{RbJj*(d-2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7QBxaL6#g#6Zn`WjO-m7KHP})~u!)u0DygjyT15iHCI)G>db3=@!e%$_-k>}<
      zI{H!_r~2Z9zra_mGl7vAM_=lUKg#j!ZbFhZ)B3W>o_o%B&Ufy2&i?(+Z@&Y$1XDpD
      z!-Xxr!_$^wr}a&4S;BPFZp}y+gei1sJ9)?6G1i5nAi^-@`<mRUq*uyYbj~pB?z&P`
      z=fwuEo3iE2Fq!**xEY2c*9^;$*BSaJ6D5X7)?ODX`Z1tEK~%*cjw?9UmA&96)i8t;
      z46%xk1)<j+L+&ndi&uohaCR~gRNz+|I?gCK$#AC4=62nZMpfj6Q#D-Iu&pSDDWMx`
      zf{GYMysDli;!TDDzH|($l1Y?QjNustXBbA?=%MTy&f-~y<NBu1x7#VbnuC(vCYf~m
      zkf13dXINsnUM&l!$jhc6>N#8IW{Eq7_ue!{<fh>=^tn~y_?RXzoV07gn&*;N9A3=^
      z*UvD~YF(EoLT+?#>djAeQIpgySHUEq`HV?O3oC~w3{fvf-l$QvV?BYrGeXlmzn1D4
      zl0AJrWzLpe>2RH{JWwdbjs&sJj&KULzAfY-mqbsPg7}Xsp`7qhy5rCFj_-7$$Y`xO
      zC6BASRc~uXGDpF1S;JE}62+C~Af~A2sn#H-h;Awz=FP*a8eYQ;!vHCt;A+B=y9Cfn
      zk)8J+h%}083{Y_$Zz#CYJyyPlhFQ$fSc;G9+$14&DLt6`OyZ7$d4}<dRZkxddbreu
      zYRy!U#ej-8v7q2Bl5l$}vL<(34R2$SLD{gKWnLwXOgw>vAC>U{mozM6g_>ZAPZlg!
      za!aT9Q>_c@*izK#LA;~kHVU+4ghT6LIOq$BHBXZ(3(^t1N^9X=5>vZGGSgVk)eVz2
      zU=*t~qFK9cuE#A~#tlEGG`JLT-QzM7S5d@>_qe0sF5age@*1gno#EmWXmw>GdPUsR
      z@F6}TZAm*g408*t<XgtN0=;AYIw)xn-m+3^9!t|wP-*%3{ppy~LDH}<q!Ksl{%Q&L
      zfrPFW?7E|iTZXrMhQs%r@**PRB<p_qz>v46ZTd&w4sVl_<tV+~qqjc#9ZT*(-G`Q&
      zdW4~=1H{&1r}l8Vfze;+v=7hG^E4p<Hz;D3;^&}|nnp2?xPRuOVBF6UrPcgA&VkWq
      z>O3YW*9G#4(C-UmNgx@rOyR|l<swocOByeAS_tJ5UM7pj;!htNxcd;(f1wzAWgk};
      zlaHV!W0?kC{}Dq6$gb_-=C7Fk373=mxYa=J4>14z{OUvG4^Ui-mG<ynvVpY*K4^fq
      zV+i(VKlwDSV58ZN862b3pAq3NFo4gg9bZyAz9On$6Txq&-23GHEw17LHR?N>tp`}b
      Z_gKXbe#<mM)Ub$67=**HMbAEL{|jFnDi8nw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!AiqG5QhIrlSb0i)><!u2XD55K@=}aFHxZ-=t0eW8yCA$cV)8?U(1u=!K>g)
      z_zpgRI1S=W@G}3*?8iSl^Zxbn3Sbv&Aw0t1Ry>GAE0Yv6VN2<flvNZ?+SFVteRJ|y
      z$a|-Z4&f74Yn<uv`R@avTS}|MJeRg)@M?Tapb4R!8eKY}T`uO84BW@$bJ!of5t>Iz
      zD>ouEwgx%D=Sea`1IsZYv<RI{X?a%NO{KjQ)43${GE?vX!DG1oY5H!aO2T&b?;Q>a
      z(S@mOAy3u9cH^&QcNUh|1b>l_MOa6GCTqx*hb7L~2`!E>clPQU2!_vSKh;QwW5g)1
      W4<85Uauzej5LVD*<zsU6(EkQu)nRr3
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah_yH3ME5S(@F1et_{Kthy`2Jw)vke~`m6F>?IG=x+%7juw9<_?{0;5YabDkKU%
      zfbZY~_yWY*q(CSV&F;-;ZgzIxzh2(}?4VVGLs+{J_ae~B1mQ&3SSCTwTuOT)qN`Mg
      zi8A`oT4PIa3DsO134I;pB%u~dt3))CHfH5{|A0Wpgi6ooI1xG-i71ucr+4x6;r0uJ
      z;=a-<=@MG&gI{Kkp}fmRbv8x>Hw)mSfQ2%ARR3s)6KfvCIFh-xI#61krnh5hhZ#wz
      z4@}5`1jk}LCEaAAV#0Lhzsq(AUMSL-?HV&<68tlh+E5;;Y-W4r$+oivu?pf<z_kqz
      zMeZd=4(9m9HkjvHW~R%W!@an<^@7TCuBmbLb9R^i?qQK}^GAg`mKd=f%V^|YO-2q@
      Fz5&ALcK84Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%}&BV6ot>F1+=0dD*j-M8W-R~BrY)|hG5bJU8o^(Ig|+<Ez_heK9{aYH1Pp^
      zDC3>N!c`YD({tzayLZmd@8>swHtI#>2uCmCO|-NMTb?hXSSGDrIF`|ajAub|)-J*(
      zoMw7@!t*7eaILgTx&*7y91?7UabRJ!gggp_@<3^MKbwwZ^dv?B|4|);o(P5_QbsR}
      zcH*m;a6HKD+3s+Msd#0|NyBYsnma{o5)QL?4l39(b8Zvz4c9dfC<IbZ5}!aW!Fdd4
      zktc7JnY;2Yp$mg0lw7T4)C)u$OP;>m*Ip3DN>A=&;)i2gf^*^2fgCT+gLRR=uJ|NV
      zIiF+YBfWNbcT(F8Y`$D$U0Rs<TxVrt17)rlK$n$4I$x+fTlG1r@2ql6K-vW8r-a(V
      ewIrAhJE$?k!fxu{!@i+##f$?~alpIHx!@0gIdo<K
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%}&BV6ot=)LbakGD*j-M8W-R~{8?hy5KU^3g&Go<Lz&RgGELgzbLomi6Cc2b
      zGTtdHTy-%sJ$FvOd*}T8etrYEK;1@;aPT7DL`$o%<@q9tWzy<~BN;u&cp4-pmo_ZI
      zai*s$JYN!u*Gj9TL&!Ip1A=8R4)Rzop@1Tx+*4Zir<0+Kp2RTVKdQaZ6Tv`4%IHPW
      zN_-U)4ttqBFWcN<B3_wt)Nq@b=C+M>!hROdK?NIT&P_t0;kxDl#X#zD;uFXvIFI2p
      z^5m^Db65T)bY`%GlB>0hx`Bve$<vo_v=@Z2(&KxX_~8iW;9NL$AjgaIU~Ti)6`y1(
      zr!y>lq}LAbPHMY@#g{9rOLG&StE?=nq0AKn=&&+K=L?nRVtt0{JF6TMkTwDODWNuZ
      eEeNK=7HZ7MV>|WlVAoK%V#Wcg*yG*eT<`~rvvhp`
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=?@!ZE6g`i13`$}A#xcZ!b8Le#5maP|!lH2rOao?QA4`2~h0-ovNBn2}V)Tnf
      z0|quDiSh{(|0v^ayU8L*nzZlTzI*Pu=brcL_qXo=W{~!wg<*V0-j|cQY9y7SY?ir|
      zOdGGbxz5WK%?hVwrO15{7`mNvnyeR+&$o8CVlj9X`!7S^s`Ia6sao=xTrRH3r4&Q!
      zqN=Ob5`!li%P|NxtOyS}B>2$gLnlMeg**`wI@&?yBzV!v;9pgBo~`U{ar33TrBSus
      zRYQ@roNTK0z8(~;qFQDMyG*X^hNyW8oam25GqEerr+m295XfmfqiMV#Ys+S#vd4An
      z$!mp|EY;B4Fia|B4LwmZ%BrRA^N_~%f>jhTgb};n>kI=?x0r*pVVSC4NX2qK+-T_F
      zme4I;;HHRCjM<6fq#W_g*}{Y+4B!?+q#4N_MylRP(|m~i1ViwAY$o4MZgP2doo{oK
      z>k3UHf|!jNXXuY!iZI16;voD-QjtbAEg^|P;<+d9I+!yy@jL%?+~DbSGAH3K?$IDh
      z6&l3+CH*vM)yTXUB9pl~Gq4Py(dMrko7JR|w<spV=+)yU6vOt{xn%Xy4C01SF%|w)
      zwH?^qbVH`?!wgbJ*SVS2<Z_vl553O45kjPnhwd7I+HR(my(9Niq@7kPv}g3~j@KZ@
      zPax%M=sJe~kYX+9p?8;)@fHH!!H@TZ12Te>gFf`rE=2PitmB<g6)(kJ1mB?Z1Vj1W
      zKn=kkCm78KYY45eZ2SoRsVZ*f7lbqT1HvgHRYXrQnN9q}a6DK=!aZ|>NIp@+?J8zB
      z69<Ip@`*#F^#|hfk+^*#dw)g%2bjPiX7L60afF9BMiyTku5&J*I#*&wC+3Om5FXI8
      mK&SzVq_9YRhA~CCOArLXHk4EIk@J3xW%}A)W0=H>ApQZP%OGI@
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0-E$LF6#w0PZJI7^3FWIG7A%mq*wXSTE!BRcHkdTEp@C2Vx9O%?-0a59rUk!v
      zV#ZO&;Xz-Rk@3wLhX<w7I%br2|0u_EZ#J8iW@=`#_ny7y{LVSQbM8t0{^yUs0F2<F
      z1RulEd&;^pY-r|izNlCg)gGQUS5<3KtyFbeLV%%5Xy}TuHk@9$r{-;jj_bLF_}$cG
      zayGq~iq9~x1jC+b)2P^rVP_S+s`|+X=%vt1XXA^r$@C5Wk~Pei=4YC3DUwd1x-_4f
      zTv(W#O2)aepCQ~ZW;mAIE!Z)JHW!m2XecGM!mw|-ZY2`P*p_Cjk!D9p(F>+kQdg&y
      zd{JfS+ZDS{XpvoK)hH?Dva+J9j$y!lP$v73t{Q80k>VZC>zbk26Ab=Xf0iM@35^gJ
      zugN%u*GYBUIS<AXiT-RG9UYg^i7vi-L&jcoNjUi*;_GpTahh^;X%C|_jJ;tDGDMoR
      zagaA<M6pl8FmbjUWql(N3}J-F)x+)1$>_#@2^ap)ZZv}P7~v+DWgNhMA||OB>U_1d
      zqFUEEI}FjJnOF3zVrg6!FC*~Rt***Ah!D4bTgD-Th$XwIQMDwk61ObV66D=tXxA#K
      zMx`iCt&(0>t%7cDh@&NgTD308T4l*Cjj&EgpsqaK?A|4#QZ1KF%T`y@Wz|w_%{1co
      z^J<xIBACMn1?~35tZ5~kk{*vG`gd)Qu?Xg|AR*0gVpqOJ&&YTmNeXdI<yXlrTIPlu
      z2Ic7PD-xC%`ga1-MOE^)YEffRH@o^0ZZO1lsJr|njB?d>wIj$P$16`P2Pna;gbx^c
      zUGu4Gp`cm~x;<vg7?E(7diE7nw-_GXJ6v~#8q(EmOqph}rW@&a>=fkaCfR1a?-{yd
      zP652PSi%~^L4oXfJyq3o>WT>Zpvkz0kEp5E`9w+=7*54J!=OIR##$gpP(X=uV=(OZ
      znmF^LKg%`BGCl@%YKR7cYOK;MjZN<abK;>EDZu6yRj$}*sGWfe#SIy&pgR=cLyTXg
      zSF@y1w68geJiQvpm{lvU&T9M$c6ny`5Qkup6NW*ZqbrpPpN>J%kvL8_k<Z(9^dN{3
      zNfJpugh_7m$Ptp;J+e&l9*^9C!+emD?O{H~Xzk&XNUStj#7g6W)+iqUVx{X(t4zKQ
      zlQzQ<k{%;KPhhSFmJ9f|adZ>Cd>^duPe^~FFXxY*%H#skSSA;Y_GfaT=s;!@XKEPA
      zZR6}FMr$}vyNjE+^ebWc@D@FXD1Okc4VTI17{zjh2G9h~;wsKzlB9QNcMUU0;9dHa
      zydo^=!DqJ<U5>CgTb%>j7#le90^<WmUtpr?Br3ws((@)c%Ao_d1W<3?j9hSP2tbg)
      z#E#S8BL|b1a@<^?m7lc_{Dz6A2nL?{pOIM4gVzYSBVgsangh!)-4bH_NlS=)ONbd4
      z;-ZL(3Pe$i2YzgcQS@NQZW!^_7{S&UrIr}8tuaEaF|3vthp3SCwwiTv>E?|7fc6^Z
      zs6np1<YJTB4pF5Ix&rs9LZ5gryPe$H@E(#5=BR@ievZ+eEu?;Vr9=-s_F?{8N9PQS
      z)apKDXdfWyx@h{Z$uBQziZlH)ZRj&sUqnQ`v_C`N^Yk6BA)Di2Z{z068kQ-I+qB-H
      z^+Q?}=PduS*_1uP^&^^#UsAV!Mg9K`rSmN%^4Jq%$}JxaASXqg-21rW=QzV-8%=W0
      zPjRw_LT>PP6t|&wEpNf(ueVU?x=s5ntp9|-V3UrB!1#_X#P`DAfjXv3=^)YlfIPMl
      q<t@m))Qa3Ep2!>I`tT{m>ceOFoYo$SeV$Oi2=Ko;{1X)f()uq}RyfiC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixUuzRV6vfXZ=_Xy*w#Ftl{;4*$x=FQ*FQQn)Qc@8@BWVfv;KO7c(ka^=nQr}D
      zib_Gj58#Iq&rAY7<iVHRJ7>@R&AF4`e}4P|@C2PIN&@Xu`AH_ZHc5IS?YSzFee*%*
      zlb*H4?xlq`c@-6b74OSrK1l}SQ<WA1!JF5IgJDl#v;Tj{3xVpe_qM;c&w+s5V0bK0
      z$>o_6s80c&epFaqPkU`Q&2+AdmjdOuGoqQvR1M3V*OS~>6++-zggUNM+MRhD@jR?E
      zTBNlRVF5u6HyFjLkC{xBlUot0PQFD5Wn&Ac-ic5{Ah6umxjMW!8!LM($C(dnQkjjU
      z)$Z)Y5M^w*AdwrrA7K$8^A;!ioO={zx|6_a+?fw25FVKeo2mot@XfjR-*K;t4U)_J
      z<0@#mHQ2RWZeN*{weGHEEi?HQMD$<f>Ajx<wthmqt1n$*<ttWw-}L>O?{E74_7@J6
      zu+HCg!hvlfyF@)k1COwVgfVuoi5Pdi)4BQlv#SnxDp3!+m$=v6{*LxP-ja{;l<}XD
      x`P|Ppr*86Ge9rj=1Zi7%Fk>dHg5MUp-_ZWdW*RT>;wz7Fo6<1D2t4$z_%E_?hAaR8
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3$xZ@65Piiei=c?R2ld3F5U+|P2A5z67nFmy20LS$p~uWLM!&@0&_rY6!4L4G
      zj5Px;iHY&j)vx;1t5?-;?=P<awy+XMh_G=fu0>TVr`o>|t|v{kY1`5gc4GwFVjvH0
      z`tr&sN5>H%tOpgg(AFn)&$WgFsm&LUFy%>C3A-y@kLymG`vf{BOg0?t8KF&A*h3l3
      zZ<p`RUT!xDsd0C|9U<5H?$I%>($)?kR#RG;I$^f(`?=U9L>kVyOd^b_G}4$RgbT%P
      z0)&|~l1LG<Ev039IOs|DMD*;Sk<(|Fg1s^xCnM%Ud4$TS%Rg7c1~Zm4Kek557mB}~
      z5|SNf==SBI@*S-HvF?h$1+4J|Vg9iYmJmgZQ9M8soZ+#8JMqAi{E}gG$oUY*Wa$~%
      zQuztFhk%pkGZQG)5Wy}IsAHCMb0ap#c}83psPcbd0gGeJDo5hCXz3BTd%lF=%lT%2
      Qqd+D-B8+8-&HAk65C3zHY5)KL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%We}v5UlnicASk9j6(n$a1tK724Qgn3^`!1WMt<OSc&7r9@c|4v)1ky@elj}
      zAHe}6NF<Q>08SkF8bt5dL=jdl)6+H8)zz)}`RCgY0QYdGfDFNXBi@RZR#9s>7I7j?
      zYaqhcQG6&zJw2J4XYYn`VpOCH$Pv5+c89CP(8#zGjg$^f=!Eq|#!7^~j1w+@*?UT$
      z=Y-Wxq!S~w@kKb5`Cr}Ne(?Uo9$`hL{rXY|X3W$cVd;_5%Ip$yZqM^Ma1U8R7V8ci
      zoFimi&tC@Nyn_-}2y1<%<=*u0K*le`K`058el%ncf}L<a2Xkhu5<;`TFwGgWw+ZDy
      z8oQ8x2Dvv|EHONgNg@JnR&~9ZWGHmd+BY#Tq+P%j!lvzX3Vt$G;Yh|sTw~W(w-MUO
      z8;=_$)UlOLxJ}q_7Zp7}Wn6b~12=g|Vlt6>M5yzU7Rd8H?X<#m;Gsq+nrP;Y?e9m^
      zcqqFn-BtaJ>F=iIvBi7N^2f>GGV)mBtYEVuBfNaRXBl&_%4eCgF5?-FrRFi#nzgT}
      ze75{5pJl6bA2~e0G9F@su?sUc$4$<-&Z_c9z(rh|YqmHNzvY`>Q2EH03{tt&4A8MM
      v&WtdZAvRlMBsH{a4Fc8gsK2UQJw_u{Il|5nZhiVsYj8@ddZN{|tlNJ9s}8jb
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95IvJile%tNLQ0_tkd#{-E*38ZDNrN=MX3TWrIGr$bymqDcOBVlgv7t_
      z1w4QRtppMu!1wTs7&}oE5vebpo#QiS&dl!bzdwEfc!+xiWC-`)iTA?QDsa7#2qS6S
      zLwzE~V{z=u4kN-dGJN^LlVhU-T|kcDER@WMonWB!a7HJrM>15x@5?aa^26>60__u4
      zJAsaj(55f^Smr-{-1)N=dof`}>2Yj&QV-3Dsa?X-6Qz~eCFGi2r_X_VNDEo4+puwg
      zkZn5sWe_gfu&_c{>nSbY#3#oxe49)`DE9)7JqUKf`4r5Vk%|azZ(*AA7SJY?hSGHB
      zU9ti8X)*j-Mv)kD$4b+g==wqr-2)TyR@wzzC2Xec=HTbC@&__3;yPPTb?bgQe*J0P
      zLJf^%%x%I(b5YUhCybjmZs9g>imy%T0inj5S|CsRw3CXa4F^?1(F7B3Z2usLLr?Ch
      zWMPf-R`4L101e)FmfukZTgYRHvqG8`8R2W-bCxk1tNbl-w#Rseqt!aYTC4gU<*zBf
      z!rxM=w1XTTVHuCH!Pun<o8u;DT$ifylfY$MnQFQmiT~wW-%$R{hYS+A#0>B(m9Zy;
      ssSL5%DkF)Z-P9mZ`H9+5`Pv!kiOMN%oZ`-x|FmAsX;o%gt(0~5AMv}oSpWb4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3&o2W(6#ia+C{-<0za4ODOKe=Vk;oz;A`&#Nqb6%)JKOBeia*Jbgh(759sE&v
      zJKb=Qh|A1;?|tuk-+S}^@$w2_1B(S@2y55kMmSmpPWMWLku=Vkj^chl2#vgS2cg~D
      zuIw8X=mK(t6<gs8?K%6tFFoOJhhE&1+I;f}<B<%N@H;Y$xbAF!hd>8}F*neW5!!Tw
      zAIp60-aWs2JN_h$rrnQ3PZFw!KRr%NsI=E247HV3W{WUY|DA4h2st;nltpAQUP1{I
      zglxUh83AFkgd#=>l|!ZFQQW(b;i<UrZKI&eE(LpKoCb5|N=1bAL6?87h7FcIY0`}i
      z#;DaBznv0_CqW!`<(^6$Ed8<W^<)cJ<_WU=V;RgNk0C|{i-!5+vFw|8;4#jW8SODM
      zljNGus5DofP<^nR8lPpWw22&A7(p9T9Gf1n`JQ2vXeO%sUzo*Qs_9q^<eQJE-ZLqK
      VL@qG{xK^fQ-}zLA*lfaD_ySCKkoo`s
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~E|N6g{(4T1$mxfyHG-T?O2agvRGJzCehWWhJiJ#K+k(DFfRnnNCUgEB*^#
      z#AssTix2)N<1O1w`7rUJx4m=EJ#+5q{r%_L4*)OGu~A~!IN|5qS2Fg4W3Cfn{Nzmf
      zJCpB29iPi1p>0?U<tyZvtI&TpIuU_kn0+OcG_M(Enyn#&wG$r+7c;o;;T~pP%;A9z
      z??&t3A~7QJFpmX>N+`@g1gVzh;(#k23eB+IZ1sw(Zk4+>76}rn)W0LVP`kuXFDTxp
      z%E(9@3LVKLk+E{H!myCfJMD5&!D^=aA;U`Zx&ou63cIbLi#0s5QD>+X<hS&BSjXcl
      zauJ*sH)c~!D3g3#zbFzlb@ZeX{WKa0{eh3hg3Rf~0Ur;!mRX)3TIN_L3|kYj|NOQt
      z10!(#`Y<=$CWMpwK)~wM`P9g<zi))*Cf0<R&oO(k?(>MWZU4)lyPEPfA_jL5r#cXO
      zGMj8UKc8B^o!MzMKzl@+35r&>Ka|^)Ny<v}ZnQ7qe1+TV{K9JcC(55t?tDk(V`cdg
      z)i0=hCQu1aD6Ua6uuF|^;9wsf-eL&{c#1wfKy^Zh2A)yopoZtz0HY<}#1^t;e}N`d
      K7+MrdX#WMWuh>`s
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`!A`<J6r4q%T0js15jE;f!ALw~hy*o38xMkbUg`$cl-9IG`5(W)6Nv|JCdM!D
      zYm9FTAw)?$^lj$tyqS61&+pea07ux;5Ms#R^G9BG`?6d!P2qWGLsLBX(y=v!XK$}X
      z-|@xtmLcT{S8}T@T#wi{jZ+48!H}psw&!!(Z*yxPBDc@mOT+iC4~FQmw54BV$nF_|
      zr^W4Vx#_#o?pF5O4B@(SCv+@eISw5$hNK~FaW&|7gxlgBOE9Dj$0SQm#)K!$u-}s&
      zLt(5sXOjvgBSQMGEkkimm>J%5UrMN=t*L1Ff5%!q*LhMAgT)vn&(0NP(3{S{HO0A9
      z>t%lZf<yIA*aahJP%R*WD4iOi5Ekhp0mP`rsZ%8!qBB}7jgWW=I7zB{&^@8q8d8LF
      zV-{ABCPaL!B10NVD?8C@kfZX{ilu`Qa=*ncX~+n~cE+@+m^KlkQLIy76>)=vLfHHP
      Ddee-Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoO-=$q5QSgCz?cCPK~Py3-2o;N;}XRm)QBN&(AhW8!8SvWnIEGoZ{yy?gv5mh
      z@G{=OSThh8YFu<xSM}HLRrmYn>l=V=R7@lYYd7LfG`z8D96Fv9!-pd`)WehefxHcr
      zt4$b$V$3)~j~d?xguE|3B^+CNK7&`CV*;HMa&1@pfzW|1oKU77KMu_5(@U9<-c?!!
      zEkd$dvk6Aq9ZCyH%x7UCLs;l4Eib}xUwW6K??^(S>kimJunpI<rV(5#pRnHjfAA)u
      zRGl*M;Jv_8dep4hk!2~eEb_c8RQL@MtezWs19_^VF)Dxl%vR)&4e)#TJDEZXY0f5B
      z3C!_g8DuzSxwFHWIH&3p<ep<>fuqG3um=PC$n!2cg|LVMSCK%GV<gaGGGf#9%?Xx%
      aDx9%-Csrs=shI-vC}Wv52rGO$fz>a&WNFm^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix!A`<J5QhJ)KurNfv<RY!-V}_4Gs*=uVu*=?9K4mffi-1o+C@G2PM%0S_y8oH
      zd>`Yqkj5a1ht6hZ|M}*h?d1FY13(o!Iy8pDgY{%pyrHNxTq(J&&R%T(sDvwZ#2E6?
      z^$j1oibuB$8J~N?a=P5}NqyTqWnh;KY2x_GlB#PtBOY(OepV-6*LMtwV<CmAGno6W
      zkm^{nUui2($bRjh%Mfe0_uRk|R#GsKWLRwp$*)Gk9``y{&*2Q&mTS{Uiw09ZE5_77
      z_zcA<b<rv{vPO#R-?<E>1#W)nqJ_y~;B7PTmjAb{Gw|H!z+<=>BkSfuD1*^<N1n~k
      zMX;Ya{}Yaam%<(xjRwUn#F3y=r%b~#eMCT#Vu~tt$~8I@rScf*w@|Z6(Fm(2)LTb}
      z^4wH~HDoCxJ=U>7jDTg%SWTK3%+yQe!!dI6unTHxhOphKEQ0AX7`386h69U50%_R(
      E0i1b`0{{R3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot=Jpr(K#@~4Q=or00LM%kdo8ls6H`+^e~Q(Dsw>Rb3Mt}rf)(VY)v
      zyi-VHgv3Q>a&OQ5&bjT^_v;&g1C(@V48>dP-l}>-QEj-6!+X-aJbCQ#J1Ja8M}(me
      z3a<Fjl{|dQkn*`FEW5)!pVZgpF#|hiND|4HmLofsJ>t=)k9OvL^Yeuvb|@Sn>kQeQ
      zW<a$qr(bPJPdNSBZigY#aBsMQ1uP|CAkMJd6b`=_4ZGZHTV0zoq?>M!EG;sodfJT0
      zf$$kh6YBhBY7~w%=~-un@|--sbm7VrQl-nQbcKJ%+5^vhP$`4m7=_Qyg)$f|cjWc>
      zsZbl{XMe=L`dZiqBXiKXjwoVu>r`o2q=y)Y)0v=7oobElSh+Gr@;T5f(`f|VBbu!v
      zMRjhX!V1z<kshna5JR!DQ<h1N%2O{__QuHlg`Lrm8NjwCvJj?EVKj<03ala)38Z1;
      E2Rk&6+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixK~KU!5QX1Xpr(KzQUuXNFGj&gJY&!VH389sV2>sXZeUGmO<UB97k`nSNIZD+
      z;*T;;3uz3Jc<5|q_RTkMwqM`x9{>)pp+aFO-0=rqafY&T!5w$N&C{ozxc8)OsfaM-
      z!|N+Cv^^2tGNfJMNNyU!aY=pMIALH-hGgBgT#s9x!Of9~8aFT5?a${|hS;IBq*r6m
      zcUl3}<W|4Z_8e*TtGfn6q;B5|4GUOGKtr4%)smLD91Xj|>F};87&0xpM<Y26rhHnA
      zcmwG&6erYqt5nGvDKdZOGL+`H`K1dNCX2qeRo`3w-?q-cu^)Yp!DfuC>vN$DTH78u
      zJ#i-e{q)(Nu<ySVw!mmKD6S!j7@aC*3Kr=j0^$@CRH;#}&>1V0$4I^fniNGXs2)-8
      zG18RhCMql=LmBC@f-Et7mOf=QXrez;EtU7i$j!o<)N~%eHYc(WrcPnhiUJw-Efxu+
      GVEqR~6OCX1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}G;7(F-H5J{JcNRU7Sw6rz}fiz8Pt0=8O(3FIz2vej#+=P`ZE{X1LR9a{H
      z;?yTQ)fZ>_(($Ff@L*>O%#<n9zUWN<jn1@B{SP{|=WaqoaK`Dw?sva?&%O72=R3Q<
      z|NHYMfFx%8@Cbw!wX0gfS~3zj&9Y0HY3lR&!lGVu{7?j1-DOiNFC?~Rn*`e3S)-De
      z(k(+XjW4u<sS|9w>5OjKMx{KRIUyiE5@;E%lx;^VJ2RSD)qOX9>AClJ@t+ZaJ(a>@
      zdfCx!0nc2TxmhXJbETx&C2r3MG#xd{hC_HTlHJK>I65N`7`tB7FFU-__9G~;e~Vov
      z-&he)Ml17r0A6&e*oTmSHxi`;-2&k)yuACkWogU#s&l#OOgWaWEd|hpPCt4C;tS<!
      z!o^Ct&gL>Z6?=AD7=7}lSE+HGI0f4dA^8Bp=vVPN+5}#@W*LrNQ(4X*RPm<d>APrF
      z?UJMsRT0Agkxr#Sm4!v3bLnOX460DkBDW?~yyXHHbSGQaR3hG1@iJQE=p7Y%(JHVv
      zYn1iL>QX_s&efXO#toV|qp`7UYJF01N(Q^sU2DMe+%il-*-nAB-Axi`=2A^gf!-Q`
      zVl;|)MiqA4c9j<x%Kjh8NkJIgtzW5XCfPpMFXyENMpc}^7!4;~CVk<$fnHNIw+1hD
      zqst@F-L?2ZNB2GT;i#$E_GHBwuT;zP4ZHb~6&QFC`Am76%O)@>?UEPpN9NLVX=#oL
      zoKbNWr|5B7vHo4M(Jz!`+sRZVFjc8qMSa|mA8Bx>Ylmbp{2x#QK0YXPnjd>OZsvc&
      zg8<+372lBVaU;FMs1UOcZN%)aXYJ?!L_b%2oVgWS$AJxW&938>+y=t4@pbf04i2p0
      zwZS#K5sR-OvWj?&$<Qj2G4Co;-b2a*gkrIukZSEMF~oyP>H-&TDk7-JeDnU3KNypb
      z5Zwh%?f@qx_(xLl;9b7QNf*eGUY;eLK|4+(NP)XBg&v&4K}=%^A0vfX9L9NM8E5ec
      zF5pvK#AjG${2HI*5KkFF6W_P+9^Pk^qr*5tK~#K+VI1X+L0C9OoR|21d_c(*6dNOf
      z4{@A$3WmRkQ5Y``{08wIeBKpml$IKN?<T)O<YeiO5QsB8Mw`s!@CW#m74M2nH)X!*
      zZt#vgzyUcIPRYq|?U<Wh5q5$1pZuw;@Vc5PN7z+hi9Ii~<5wt(MN$sBQAHG2S>82_
      z;W|#T{49%`!wt%?3<F=eLd0s+8$w*F3(-w+$GO{s4Eo&irN2(%6lbJgni$);CIu+)
      z3=d<E<o6gp@o)nZvohh6Tt_ZTK~6s;qQ<$y_1A53{)U|IpcCIBgu5=Ej@n6eJ|QBH
      nvAz5^$Zx(bc*4yAACFHxm7<B$z&-aE)gAll#|XMZUOxRFN*$q&
      
      literal 0
      HcmV?d00001
      
      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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
      RG~)yMr{>d#{Py6Ze*o4-w?O~^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#u}%U(6r6V+U=9#OL8UO-DJBwY3=L?aA!tNttd?^FOYU~f-JbCy{240~3qQcl
      z-fuBJ4nw0h@9oUan|ZtMU$1Wfj<At~L)e~*2hof|)$E%=;!iF{Q|a52M_=AsWpoZM
      zVRNCmlA*D3aZ4!2GEyQK$|z>_%~_W~=Y(R%=-3KvhayO1=JxaBiQLOALiSi`W!r@6
      zUN3bGgdR5sHd1=r+8+|!j=7T_matNQhdiOwQ(E?ua3rH^F$yH1(lb6s3JzxcL%MdN
      zV#3bc_22ijct4g^euophfk`4?o~l_${m<_>ob8NV5HAR>b!3p`o@3--nNMtkJl6s<
      qZRQ;A*~Y;OiqEO0#MMjL4$pQ`W?Y-Au!;&J)?*FpsaKVegW5M7TW4zk
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gzfJ-{5XQfO1Iz(}AgIK~4lqiLg^3u9q9!7tL9bt6gKLgGbAOD5?_+I6V&Mb$
      zAije!G0q*tLSnHqH#@)kzS(*IetiS5he`@DLgh|8h=w~+jh^G5I)NUYKMv)+uN<9%
      zK`2IjTj+7)w?W8z(pAE?r0X$wb9qLf4k6oiwC4-$Tfz=x;^W}+dFScyi;z50TKO$P
      zyjrseM%x)l6LBnOU?NS(b(NOAU^0;IwHVlvQ0O{CHV|yX_59NCZ<R;b?EXJ=lTfP8
      z`q9vR-&K0ttXZL5DYPr{tSnMkga~He3EZK)P~iyWg^lcnzSsi4gICDQLjp<8DXwBz
      z;=>Y1bIkC~K4;>bs85l7iI5yelQG~J22POYugna>3JP3>0!5CYK#R$cP1d)kSpBQe
      ZVe_j<p**AJ3e2O7HP#@k^WQOS`~W-oW^4ce
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}xR_6opSme#`)hC@L7EuKY_x*BBB7jTm4d%DxN@)(jmoKSm$GjSt{^xH56!
      z1Gsf*;$yfp-ZCbd3@+L`=l0BZPy71y`~qMP#Uu=d<tu*8OYT6H&YJbMumV^5w?{XY
      z82ZvtNyHeIMi!f^eko#L$a=z+-0le1qaQBnH3oLdkf}P#^SSan+zv$i{`2mA_v7t>
      zA+ax&^eYVcjm96a?@HA#Z*~~Wni#sm;=brH#HvnDn3%wH8YWT<(+#OaD;RWzd(OMI
      zV8}Hbi{^7mLHef|^Dm{xuo8~=?|Nm*sx%=IgkgP5yr@qHW}HH|oxrukvDAqQ<DPOy
      z&%hcOT?Vul5l4b*l9Yi-T0}vLYMMGghE|1?K{c_p{e-DU`ZAEE-5hlfh;WD*((|DU
      tIn0tGKjx4po+j$EU*ZWVJ%2p0NyOHOxEi`5M9p3xw$8Ok90P@r{tZxBfIa{K
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKnK}*9>5QM)?)27C1ix&~`;7tV$;<3_8K@id&tn~gGAN5I^z%vp2S)K$B{s4cJ
      zbW=Pjc$wMRon2<XzCS*JO9l~vaQI|iOyXBAxtrY1Y*u?$y-rMFmexmv!okLnn_`*#
      z8Vj9kSGZ~<v`$XvLO3oTY)p%-9&I{8KXrwj)~ki}_hyk>VJ|H+lh2KJjs9td)uVeB
      zj?#a!425`B);_a0t~s>-H||BV&M_KCA4FN27>bdqtBr>C**o1gZ3M)Mu`-+!lCZ5+
      PPi<;a-cc5I6$AQfV<|<Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh5<@#Ii*FqTEdVpw!&_l2mpE7DfgEuwYJNUb?=2QdVkm
      r2_pknaDHh~a;jTqPAVe<H$<%-NEsU=10w@7&_obmWMBo7Obl!Qq+}Pk
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j+fEZv6o&r|g(<^uXgOLBRM1+6LIuSGgOFG?fgmJ;7-OOi?Y3;v&XAcY8ZUeT
      zU%^ZD787lWCf=I(5MKEl#<izoJ7T?=S$oe~-~aEm_I&^K`73}~EGuYZ7~L}u%&b!u
      z*?YWfd;Io`Jm2?(Z7GN_4ESG#on6^zd|>Ezxg*TdHg{Y~yuWgbfvqz1<ZR3JOv~Fg
      zOBLR6^!m;EkDo8c89EExGewDEXwB!9OskmP+I8&b=1z$ll&~l);Vm(=rzf`=B00Oj
      zRgjPd4KW5i9V*=P9AOoW&`uL2tNYf3#n&t49qw#NK0|!X&XZk}Ow&5pjCi}kWk}RH
      zEgC?+hFa)K2}XtSkb%IGigqNV<zZ?5l!ntd!_XzqmNP3ZImv{9A=@EVbGM5iNewEx
      zNs)@xBKPic*ENf@7)(!wib4j?YZ%9bf(r~I&2HBdZdOF8z#SEnm{OoqgO6uu$Y7d5
      zIglgVc*c+lJKosY<9W|$shmP0ii>oijHJa~j~9~s&s9nacR}q^k;0sYOSnt}H~06s
      zRbZG7<AYQDiw}Go5^+T$t{$uWud#6Dbqx!cV2FBlU5P?!X)v0RzZ%+{0`+~<t~hyq
      zN65Q0c<eWsksZWY8dW>}Rc%P11D&)|{8f}9njgg-6lv(8XD_YhDVxz-(HX0u?}MKl
      zr>9B?V1*E?7@$b2r(qC7w33M70I^I6nXBkitq_}p*zys>^|Sy%1sK67K_n~|z#dVK
      z^dHlwYB-^1syO*T&wRpI(^(u5N_b2Mc|r$zihh_rK3Okp;9~)vVAPgw0yB9b1EE52
      z@Hzb>#`L#P<@+0=dJX3ezaaHc21iKOFcZ&KF)Ke;F<-^CLsD;p>`||;SVkW#Qnf>U
      nnrrmQz+#|i_zvXJq~bd$>^=32;wDhe3wRX*#TuX+zU<O(Mh+Yw
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;Jx>Bb5PgflnG@tgM5V&UC>n{0vB6-0m|%#7Al3_RV9l{>_V&=fWo2Tay_LVg
      zA7Y$4h`CtU%+8y6Z}!dZ$M@?SfFo2KBp6Efe8%f$D(gLAX2P_M(Z)fNVe_|hEvDLv
      z_R~l_Sg935-WNu4Zy=0M_@;Btz%CiGEv<aZl^t*|5UJqy__KQQ{>6|!l}g$s!_ICu
      zn(A>iuJ^2wYTSrbqRSh51BPTv-w78>Sk1sij-mFyvOh8Ukq<o)sdHVa#8ogI3eyjZ
      z48^V<kzr1@2``FCJCQy^dG6rP8#HJqY8GSm7KW)o6AQ7%+&6>U(}5X@3mIOSk3HyN
      zxHY!HXd_UpAcZuY4xt2=DI+mfC}ybAAy&w9YWoK-$UaA;JVlqtK$E0rC{R|N(@?}3
      VArhd3bs7?8Wo!_ezL8J@TR&)@c})NS
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`!A`<J6r8O<O#wv&MASr2Dj11plnZLa5D$Xf7u>*_(wc2SKf_<~gfY>?qyCe|
      zw}lXbBp&)U^LF0MyzSS|>pOrWY?&|^vUhyIi>fD!b)g1Aojtb2y)RwIL}>c<TJ&6B
      zOl}zxo=}q8O`$wu-&9W-*d;@};yRws9ly!#z6ig)e13oIK1CQJ$I_90nIXMb3p{P^
      zbc%IfNvBiVZ!&}`?yaz}fTb8LL>ZQA(h*nvUQ4J3Z`pz&S##TD$;p`TxEb=h(qqVt
      zROf6`qGUu!{<USu&j~Zdo9s&ob+k1dE&K0SqpREp9WhvpQS$U$Q3k8-_ElS)OTAud
      z<`*35cft-BIfH5rVMORO2^m<Vj|32<8lz5`ut8@eUl=0(9B`JYT0!@OX3Izr&Wu=C
      zL6Q*hv5FLFXsz^Et4faA)65qRhRDo{UC>Z95ZfNnCSvATj7G6efpx?U5;Cy)3#p}z
      Axc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%T5A85Ug2&H7m$NQIvynQ#2CK7!w6eFvJ6k+y|Jzn0=7hS>)so_%)tPJQ&Y@
      zh@WBX1tJ_Y9;T<dyQZeAKfYey0Gy&|!eH3D=VM+`uB_NXjfHB3o|dk-n)Jj-OW!jQ
      zV<`NPTEg}9qRWs8gp%Cp2o(_fu2E-THw>wo?**EBy2G7N#QEprB>VnkGbGNWC-pf)
      z`Jg#fb+|XE*jh<%P+hA03{XAnFj#dlQliJT=rhD>eqUHvK{^QwnSZ6)L*+m4t|O*W
      z>8A9=ZRmD|YDYzeT+{E715Q3DpBH0#C<BJlY^1;UQzgH|%PoyQH$x2)&o4C=p2(5y
      zhpH#8Wi&zY_uZdF3qlEuyn^B`;z-bKQf6S45b0ozaFQxOicW*L5!);u9lv1xnV^9z
      nMT>6Wf&?y+BeXxGVFR0#(F5eMMS>C9MuFG{b|^FG+o}9F`!tTL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot<qP*Xq<1QCCtI|U=rErvu<611`qWM5zcV@k*LM|}++z=b=vu1H+?
      z06vG$VZ1G*F^X}~ncUlRzjJQ;{`vX_U?1xWLJS+%`mJ8JMxxwu+-_4kb?KV@)B7I3
      zafCD#gc<UI=8})3!-KaBDVtkDH#*$1NqyBgVPIzriJCNRM>n00Zn!-1`1E{``FJ>I
      zh#m@4I8}!1w&qg}-5ij$CCou(r^67g$v#&xhlMy)#2AvAFnQA*b-C5ny9Q@SYqCd{
      zIvG<vZHAqpuo*Td)IayBP(G5Sf15KDXGHp@3$~`5UchB9VE*5+_Rx}dUQmBMM)|Wd
      zp$uwEx>k?Zg|}p3=I_|^z8SW_$RBhT5J8k~g{lzd=^+eabjGPur8-1+v{)J=@#1Te
      zbgF*$h-QzGqB=KGVG(JnNRJGbh~craQ&xi<Jx`@r+8rbJ6Q<G7g%8`D$O4!$h0!Qh
      ND6kiCl|Uh^eF0g!lnDR;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot=Jpr(Kz3RXp<I|U<gX)w6JpFoHU`PmO;0%J-`+M>LJkKqFtS0pZc
      z0H4ViZwqORVqA14_x9ZHoZG&CzP<rC!Hx=rA%Dm3dC3{dQri-fkuW^byPOze<Vo97
      z5n<3n#jP0Ho(SJEq+Q`iZgzy@lDb{HU|@BIWYxA@k6T`cn`05xKOUb>bI;cdu`_8&
      zufmW$XarP~Tm4egbEMTTA9ffbRl6rNEMX-94RMB4Lt5fyJnRam#k;0p$TVz&EIAod
      zJ#R+5fpi&mXVgEoDN{NUWqw;T6cz;frVDqblzzMoKc4>YSZm<e4}Q#GIY#NT3!w~J
      z(;hp9xRU;g`hs6^?0+xpgONMv+(HyFx>c$aEYm{}#OX{>r$V(tcdSsHBKZ<%QgmuT
      zw?eb$NK>7gsj!L+Riwun)`{V>vU66A9DPr<P&}F<_Y+p5p?Uz@o5@0$I)~9HHYu<l
      JahpI2@?TpXk#PV3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot<qP*Xq<1wke1PQgfA8VoK_BcyR5Kl_3c7=;<r7V!yO8n-@%D-stb
      zZhZyc#duptV-(|}Gr70te&^iw{qyA&z&>&s0t~q;^VTd{15s?sYpF)^Oxe!KU5DQ|
      zLP-rlhKw({-~;7w|1Cqp=9Vz~EpFMQZdQ*OSdAf8QPOry>9oxLkcS>V-VPq`pA3fZ
      zp^(BUGo-c+kJ>k7w^(;9A-koW7DKS2F1e05EJUFr!Vouv<mbadn_CUD-RBHRLv_f~
      zBx9<l&7jj0Hp9k*`qw%oibtyCZ*PYDj6~mb{?ZiF&9~y_%ltdm=vivy=Jd8>6hAc+
      z%AnWP(CYA0;qI87^)vR|FNQ5JvIm{32q8?jMpXdw^biFRI-}GnQyri?oG*+Kd-gPO
      zI(4sGrr9GTs7_B*SVWR4(qjqB#Bf=uDXU73uBVnS?2eKC39Hgj&4X=DWIjxr!e|s(
      M3hYK)BTxYAUp`-xwg3PC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot=Jprn8z%8w$6?i7r~tr%ROCTQbApsoj;z?lA+wy5!u+_@rgp?lxN
      zmoVNI(ikCe(V5)abH8(L`}zI$4&V?K6$(T7jz93aYsq@gwz%t!xOw(85cj@xY!xwv
      zQY5$*mg9@)Eko85uH>d6T#wYf_9+9qV92x_+w-~Y8{8a=c=F`s=;JH-%#b*iw)C3}
      z`CUDvn%o}NJH9LJVPnr=h_#$sp<xNjX=q3>tmx7fS7WO$+%E5%f+43n1G3~~O!cf8
      z^GDKSs7$GgmuXNq(&Xly8LA8N{L)1$Q^+7)F-TYXcdR>doyQ<$xErJJ`Grsht>cW{
      zfjF1JhQ;|GaS(hh?0}Iu=-fmc3A$CP6eQ^(22ymUsneudp*vBnO^|sFH7j&#VfT_|
      zb!4e7OjTG#jw;e)4eP`RSos;NO^$)5TCMF*Q1}ZoXy_({ZBJzpOr61K6dM#ch*&0&
      Gf~_AaD3CG$
      
      literal 0
      HcmV?d00001
      
      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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
      C1e%Kg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&rZTX5XQf)Kn;HsQ4kdqy(y@KGX^y%2}n#7<lt>78(33X(-!39J9#4U-~*6&
      z@_mfcLK>qOJ#=<w`ps{?-JN{AyaFg-TZO`qyXQlmxB4>AHAfD)BTXZJHr<K}m%8X&
      zj5P7!)>Q-;(tg8@=$nr4|1!jFVM(sHgk_WZwtCLMY7DWmY1j@ooEFyyB3OQUD@@+6
      z?-)YI(vVJxA-Pxgs5&>g`G#Xjqg&i>F$BtHM})C}r6|IPFf7-lA+84fwy>JKtqX=k
      z-PC9#r@@rZiUFr5ZHB`s^?!#el3D6W{B**Qo#XF|&c6aO?Ydoe-KPI+YxXSj(RJ;e
      zRS_e)h`CgTaKju}nyAooFl2sto+I}Tu?t2PKyed6glJVMQ?N)Mfe@h>rAmo%h1O6u
      zH%9E)(=1aAd({)_Jw=@I)KrBPBq$?2R<TA5mzA8csx;A^sb+HrW2C;rYSeV;!FHxH
      TAEwS=)QSx<>{{F+kb=x7klmkk
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgsO;B4^6#j002#^;*N?NcMqx6ToKqFF$wiRtjf2aYpDY3G9geN>EB;_UPV3(|P
      z@4}8&yKr>VadecHaYjcscBX5`-x;^<(yfl;_}%*+FDX3OIO8ynd(X}J`OZ1tIrsnh
      z>Kgz<cs+uEz|%{{H6v{=TWO<EwXPXet6WN-_O2PTQivcV(4q8-Mrk2EJ-1{Qsu45^
      zbg5UXoX(lHWfZOJ#$3^)az%-G)2`6n%tS^&Toj0nmrIqZQL5&RV$BRMtghT#Yd<t8
      z5LvLxwX4>=z>)0kc+N}3iOflXmO{~}R7%D&<8?Y#3SF*hTcrgmG#ASSm5xAY-l!S^
      z`|Hjp4ZE^v6pQA(lMVGFwn=byl~`v5noe0It2!odrhmKhonB-aw|P$H1zOLp7R;-%
      zwv`BanC9+TdfJ3OUY<8w@dSD!I3UosyP+zNh9{8_Xe-og+bmVxk_jaHll21lc6+nB
      ztspTp#L*|P<mSI4MK+CgDoSHl>hZUgX;#*$J!_TBsoL_KX<v4z)R|=$i+O|eBDLJd
      zP<7F&2pp`t^G!#R*JH|*V#@e`?WTfh{ZBQKC2?kBBGZZ>24zo<3IzL;`4;x*84Vg@
      z^7gETHnhvzF%2Eg?YM@=&?(=Z)366!q~U^Dr-MdeT+WbFnXXNCH1<m%N-fy}$z2J?
      ztY*|K9oSU&<viI(%}dTeO_IS1vm7gPrDhb_yLe+G+!;*HO5$ZSoW(hTfVsj!@lk6a
      znrBG=<+-ItH-R_Vq>I6^ZeBDhi*lS4m<btcQo|IcIc4&v9Y9erh*vdS#LHX_t5UkG
      z;WW-r;!+WFtZS}ZvkT@qOD?}Xk8aPSa$>n|8I)fbP3T4h&Ahj84F}N5k4;o}wosjH
      zpgP$;b+UOpW3-85FZK6P3Q_9D<Gfv=&k#>d-@yLVz+mt$p8A|}00;SB`Ugxz@dgg@
      zraQVgj3bn2g?>g8>L%k#ZABb~H;&}Ccm>7_Q!D1ii-&vyzDXz7RlsA8vKKJs1&m3i
      zs(>-cR0fnu%4B77aY7X;LBkCg)tOyS$S=RQnCIIK;i6u+C{n6&U<G8RGQX$_EW<@r
      zU?*Ik8}1$IH1W5Deis9JY8`2PU>!sH;5vr&p3pi*^muq3qxBm1vZKJeg#8}7`aVbT
      zCe!!;J@}Bj_?E&o=J@n*B|KaS4_Cs&m2hzpg(^sx*q-OzDM*^9>{wX;66w!)aa!G^
      z9zRmyG)KV=CvXBM`6B7kXgsvl_)}lwQ@+N-Ta7n-jbFf+PvnuU#$WpyzlfK7j7M*8
      z$@#voF=x~@{(=>f?Vd?}2XO<_sc#`BW$_01ZD9NcPEZ=6G^C^fO2d?fmDEdVgwlwT
      zIw*}&8oh;Z=ys5Q9+<;wrhgzCekA>WV!3~2Z-2pY{E7^I!zI4u@Vf$=Z~%FHn8A5m
      zAY6^-1ZOkAJ6DdIz^sx%PAb4z9z>d5<4KI_B)aTc9m`%db`Qw-huj$txHBH2m#5qT
      z4mlET>~6UO-8iE>C9`7sJw$?^Afn&FD|M$1!~SS+5@S*qXwWT}w(BHEuyV}y>E9!g
      wy2r(o`q-(Jp1Olv-Cdii!JpiQf06HhE4OmL(G)Yvt-R$`T?Ag^djMDd1+$<izW@LL
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizTTc@~7>3^|hb_x;XgP|C#RHV(P(ks)8Vv#_8l;IJ33@fOV;NF*$?g{Whtw+*
      zOq3c;ywaF>;Scb~7{A$F+ZAiP>3*~Oe$V&LJJWAJKYRi(2TMbOVPcOT@|?RbbG+co
      zL+(q*&Mno;)oMW;sCOD#8TtZoncJmY{R2a<CtS(PTf+57`1t+`1AD;Gwd~lQ&uxE;
      zmn)*}bLWrm-j~-M4DChXb6I8>SZnY$cU|W>-zf`=1h=Fu{o4#J*~u-2)@7$CbkHCJ
      z22u=WHrBY|yV5RMu{RBr>h4*Swpg$1?+ABO@fp%<PJ!%lGEM8~Wvjm{J%-7U^Zz`^
      z=0Fo0Y9b>}I_4*GsG|kF9kh+p26S{XBt(@#FA4vl@H}23XZ_h|eh_i2FJs^=Mm3yg
      z7;0n|3hq{9xhPy67cs8k62){<VPFDT2JKKCME)7Wc-(n@XHOJ-tLfx1m@4zZB&HdL
      zt&A-^UlcRq_pQiCZ&B~iF@{+KIb5c*;|B-AE;7u-XGB~1dq!m5QiyqlxN@TNpYGzF
      z3kI%Xlp*Om;Up?4*JWPuDAl1qQf=H03V*|?xCL=fs%tUa<krusD9IXKMf%SqFoHI;
      z(@G0gNvh~1scxgnKo|XX(`td#jGmgwSPeaI0&$vtbwU6ugjhu%RYoX7KL%)}5Q7oo
      z4k46QGpCv%)(Mdh5QCvCLQn&SFia2yOGU6p1XKPEb85PVQ|9zLj5JJj2j8}d_=NWI
      zG@xceeVuAVRAu=LsS-q{3mNf?q*nW#H{W8!d;wiOzanYYaPH_M#<o@Q9v5nuOivwS
      zMtwfU+%c{mQC9*gn$SfFJ=mqGG8WH#J)Y~h5lyrL2S6&A_!1g>MNtv90aV8XRAZo2
      K9dt7oyZ8$Qm=j6>
      
      literal 0
      HcmV?d00001
      
      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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
      Pb$hr3{zOYf`1Ah&57O`|
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOK%fb7(LgM*oiwpaN<Do0MqjDI0i#nN=poBZ~{t|5=4p@fP`+$D4A$H6K2M)
      z+Et6#byZbWRk|qxlue|DH$non8<6-b{Dex-bH|g!G?tLCHFLk$J>U5r^YZnRX8;bN
      zlt4`2=z^@vf>*T)vJzNz8Cb4U7+Vuhd2VfS-1IBEOK!C)oy!wW-SS+gYC1szZ3124
      zeOo$nh3VM^vqEcJpeM9iZehmsENNTc%URoGupg>r)AO0;+~l}`_)1_?$#widIzd_5
      zHM9NP&&K%3zx8Q>#OdivV`opz2y|bVT2C|+c$PCaLVu+}N+8wJ?JlZve1VQ)#kL$P
      zI4+=Njj}*n$-QhQkbbLx25u(=w&~EZNnp#A<(Q{y)mhW~rcpv_%B@JdELj#yij47M
      z1fI=q<k5n;QBFd`ppHJIRJxryHe-vDcIoI+iQ9sCi@b{sxc3?l`=dwwIU|G0JVB*5
      zN6^i4W)Mx24%&ON#zxu#Ti4^JR~wnm8ZGJ(h?`ex(k6JixdV-j7%|Q#(S!Xuau`aY
      zfI|r!Ty1<Uu<XK^=gIGU<sTL>vdtMHh!!T}JcsGdF1$VbC_e0<3^@6D>CdZShm)UF
      zM844R8IExESh|?xV+kZ@+?rQ0Pg-hCx3}2;18V))(MiWKy^<|`-}Dn06WAB-<+~?D
      znj1eM?BdKdKJ943b|lb2xs#t~3`s5rcaU<IT8{AKYVeFRYAaHV?539IseT>WQ}o<J
      z?;Xl9Vu1)TzAqB>3_c94U~C`yqnj@M8tsF*M;OQrJ;09qb9|7?KR{*)$=qG^Qd)=W
      zV`5;DL_JdUNhLrUbqwI!5I)lY!$<g-afHQg(pKaKv4_zy%6qXdN?zcpeC@gW*s(&P
      z!8slpe+&WjMnD88kcB~us=4`c=Kq&}YI&Kf7hS#?l|3=^55(^n9r_#MYsKO@l6f94
      z(4{mb-bPwmUR53<e;w_io}n}I7zdWM<u&Ge!@2#!ZvV=;{l-3DXW4(S;6HH~H*f^E
      zP{LAEt0vZ3HGxm?De38qI?VQ|R&hlm!auOFYEHw7$qOVjH64l%@p(}@wuDqawamaU
      z^{d5eF)^UjXE)xw>R)Hq%MAnmV)s_K8+SOG6&%F9CN{$nn{MpHQH(HmnwwIj6yyI`
      RSm$w!@=Vev@Fh;5^FMoMSTz6u
      
      literal 0
      HcmV?d00001
      
      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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
      QSMWB!dO@7v?;X_s2R!7YVgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+fEZv6kVrxnyJ*%)(R?k0eV43P@ga+2BJX=JX9L>$<s2S2ZtG*PBH3d_+b18
      z9yAe2G%@<>Px$Ol7}s2A2@-jjJ^P%q*V=opy?_4s@(sWoZYB{CnB0;(Qg^nMF59l!
      zk*=~W{Z8M#=h(gH%S%bb1hRgpDXmR?t+i#e-6RqMdH+_~dc$y(G}UX_G7ScI{bSQ`
      zx@25mUJ?-Z1u~1a)pe!iHl^7!;=jk=y?s+J{SruYUv*t$TVSgG|B4!Z+=4)~r#1u%
      zgK%ctF&v$__?oz-Eal!7sFVj0$F>*}R+<8_MSH_YBZ|C+EDFp~t~7@ra7KfMOcG}W
      zM*8Iq@}*Hi-ite@;S`1ihU>~QR(snm!+99!k*nKnX*MM_qCVke%<ZVI!1M_fhC^Ui
      zNf}ftFtlm72Y$I+If0=sTB;+v9j{Bjw`H&JX$@B}NyUs8J!!I>La5lGNiS5Mc%d~7
      zWmE{YTU!FTAnD;SO6Yc^E0A*ShU+M6lM8ZCogWz7E_iJ78gyI}NH^@B(>CrZZ*PkK
      z?B1*=I4)A%D8D#u2}z{r4{?tpNOM#i4*jerKL2sPWpSD|$J06y5&jF+eT-CVdni`F
      zqV#wlqk9<p$cG5d)8-JPeL%ZH;#K6ah6}tY24IY1f+y0jlnki_F5z;RLif*1T>XUN
      z2L=U{30?z_d>YO7;~|akBoD#!Avi_w*k?@b9>G67girPHoI{A;V74eRqqQFp?~$*4
      zhgk8rW_-TtZgjvHG^wcHGiqj1N!w?i2pIZJj$#H^$?vWGEE|u|=d8kvM=G8>+VRU{
      KE57dcb>lCekLywZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}e^b*~6g{sk4VJoU1r_{-=qePkqoATuR%rcE7SN?@ce~CG6VfL{(}YP=<n#Cm
      zbjHz9XIKAr#*gAx*x8e$B(Y|+(>C|rcXRH!=f3+s{rB!)02lF_f|S7c6Kz{7IW424
      z>8`P@xrS|(=0o$YV|TXJYHnv;K}KLCjBZP3TRNpx*|J?3>}Lgv;eH}o)oQz%<r<o6
      zI|}**_J#2QkidQd8=6^{PMb^~Rx1KxQDAS`4&JS6W=Hn10PjQo*&BvsxN`z0#+O2{
      zugI;+$Ld5~AXB!RGKVw@dHjTZOul4Ta;4K+m(K6nx+w(;OSaD38X0iib!Oa6qs`JH
      z_{7>GrBs2mBOePKjb8bNk-&f@p9O;GOs&W0C*oHtY6O=UQITz3orr>#HK)C)nWk*s
      zUw<NXm%MVfcXYYs^|-CzxWJK6vOxcETfs?zbK!1czA(5S!wSZByJ>3HMyYISZKgOQ
      zF#3IvYDK|WfwAvLd8OrW3gdZ9peS%)L%J2Io0=n=%hKJnn*z7G3i|nLu47mm>Z3r7
      zh|;b;zK2aRsY@w9Q1?LKd>)5!M8O4~M4yr$80gpc`t#<%t1r*j25<>83Z?~yL)yI!
      z&f_w!@OT>5w*8d-t;PBqXx(jR5|cRXZtoVmjg9e970kvd^!8i9b%A3c!-tmK*<!h}
      z8Ef1Pfx&2FRPG*+9Ij!`o0DI7@)LxO=^CPO$`s7+UJ^dh)efh<CBqN}Wr2f{u;GS4
      z%3u%2qSKpr<TwNz<R(vpz?mP!`s2V3w7TbGB*wX?^UN-Hs8uYYmpSux0ld4iXIi)!
      zo4Z8jVWo^6isgy>b2Yo;=<<%?-9^Lm377B%PdeV+ykU?+9~4?6*n=FO1Kx#*Jb%Kw
      z-}t|uo;j{ld}fQ2Z*btHA9IlZIp4cLj4}qfJ`_Y@h?e)sdUHSw5@CiEj{3e7j^Tud
      zD~6amLtnKZ3Zs4h;8Y`BI9+RG3P0Cg<J?N|6();Q^iMU?lXRc24WjfG7qj??t1nij
      zK6JnDajj8Mr{3V^2On-4Gq^?AX<TJ0?|GdGz2{9VkcLNn!7r@N)gLVLPZUrm=?3Hf
      z!Z;pblJ*S#<^Zk{MZ+v~qDZLNAc{drp86%PqMvBhu;eN#xXpq+-yPf~{vqbR$5onG
      fDJ<ewTC={jL`(IpWm<C-e-SIR1n%?w6dwE!vttJf
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TT>iG7(KlU%(9tW7Dzx62u35Yn`8~%L+&I*A~yp;L1QwzJ7I?`Gh}ua$mJm~
      zK3ZDklaFeZzC<Ne37EuEtg=j%&%XIzEKm0gvjd^9wq~Zc`^<N~?|i3w{`&XHuK<qX
      zu7;RE$BZ#=WZhXSYves^-ta8P&YlT}1Lri<2<%d*l3`D0M{+Y}-qTPg(4=N9Cp%`k
      zmQk{98@ZB6a9RDGFx@hPT^=|mATA1Q?{n<3XV~6^QL31=tI3D`r~diz2Z8#4*>MH-
      z4{ni<<Ms-~D^@{ZcNIsrdDG33hpV;Iu2Y#4I9OfZw5|&hMtt3I%eK6e0tdRbdV|c}
      z69P4TPQgqfjy*aW(9C4Ix+m%(@PZB<+coSJXbcOeCYD4i_DEd2jvd%3uyfF|&Ed*y
      z&UD9p(HaJwyiuAkC?rJ;CTqN+Rc3BmrACQW<+@>CjR=_t#_UH^*Hm{k!X<Oo@l2MU
      zJinMX=VZUj8oC5J!^AgLEJSNa3#2y#U$$@9&VubbB!WLA&=TT({&000j^I@dS%J0?
      z@;txe>UbGP1x|0-CSQwawL^wmE*hnhS@5&!P2x4Yq2YD*Eack=((xwVVsocWPpTJ)
      z7jb{DhIiP+Fo0i^2CCYuCKYzfb1i%NY{e=SOgDiOjA#`)k~oG_(mto@;-H!coIaC?
      zvpV{~jZ<gL&6ze0e>e&aYKbPcj*L|vL%)s-cvm3dIsW3tTKrjJJ8@Aa^d8$9WeL`O
      z>!=jRi>|XE{mCpf46T`+C&0i+*ij85YsZRusjp;|%fpV>?^NtUh~ieg?znl{Q%v#V
      zGuYDWgHh2MBX2GWL@fNgKiK#%GG7Tc%og+nC5lG5C^xj)#shMXPU-jnA5wMmX2mFR
      z=dEkdn(9+Y?&ME&T*Wnkn0b?1Cn{S2i^vwfNG2yYBhc{tBJ1>u2K|<FO(QTX&x;^1
      zMe&0S*mD(+jWLZ`<&<ey8j5RX-VCOrAk7@JY=ON#?`ALxvTeb&Jk#glNxYGIq~fjT
      zc5qVz&)QaH`7me{r=tX(>YK{Q^EB>MSn<9MSw#cTopH?T_y`}<B?hmYY*asW8gnZ2
      zProHUIjJ*|FV+#64_;)G;=F26gBEB=a9qz1UkpjylczPu_vC4;p1Y9ZQ(_v>$a@q2
      zUFQ2SK6j^Acx4`;CH)kwlPlQw2yG9z5W{}n8%O|L;r%KJuJKg^9h}+Yzsy7q@E^nA
      zC6clNo@58P_6p|`r07I9GK%nTl`Jrten_spk8wDTW%R7#?WLio=$w3tW0MWXS8$T+
      zZOb^bjPr+9Ffe@hxBppInWUKMAURX~_74ZSw^JCv<%-9$=aIz%S8t&QcZj*G>Ntry
      zVn)L{Mmc_;RWza<moUaiSzhBxt{ycv!T*xMpA&LV1(Kdn^#hHvf@jd;-y`W4GkKpR
      zzMypk0iP;zU5y(9av^;XgenjnC$2T~JH%IL%B(^R$ykSY{fsO3<JE|Mi#}tqpR@B{
      z&<|g#=pBB9u(VdTF30%tYo2G@V*C|g@-CZI$LAmmlirYJOK&u%Gt0QXidI@87#^Wf
      zs_xjKD89xvd_zZkt7v^^G>5d!n86Lw#<*K%dEZDj6p*DdzE-w;wk*TmNb?g7wS--G
      z5TQwhG%1wXW`2w1$rY$rt>aH<nP<?`neR|rL-Axam8yh(9gj)ygbw;8LeNal<R}Hj
      mz@m~*$PZ6I(8H(TTEb8L))L3jHvgd_`E5>wZN9Bgcm4x_HiH`g
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwO-=$q5QSe2KaC8+EJ-+k%EF23S&^WL3B*KCP&6HFGSg#bTHtIfJb;HX7EaP`
      zh%73pm;S1%-~0MLd;+*bq7V_L8{TqS6*gt<?UubQT{;WxqpLkTZ`qfXLYt8M@;STL
      z^l7y*+ADMkqp;=K6s0$W*qL23tVQYTMIcV!nP+E+xv6z_^9L=ts^2)z&ARzVM(E$~
      zwRt}}s1;(u)&DmGt#C;g2e`2iUS;n~`B7=}U~{oDIUUaJaa@uhw4^$cFiBbpJy92;
      Ox`@!nK-5rFgwYSqly?&V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%TB{E5S(qHhLApZRs29D0umADUZ})FASxsfy_;ZxOKMkXTKF~&d;lMX*d$;A
      zRDy#g?|NoDyYu??`~qMfZGj4*Gn6wKCL<lnDAhBWYHPxtyY{WosZ9hH2(26%OLG@q
      z+zeHe3e*TqCvd4oHdO>aS5gIraIk&uAanmXJ?wrV`ZAf^%Q#lI1-}~%2;R|Cq{f-G
      ziNFeBXP)4-c`)|T6f{Q=s1vpvzVPT?2@P$&+wJ_rZsw`}NjypHbWGU&i<jeg*0W$B
      zuuce^snS+HhRCrcm)@0~CXqVUG4HqC`x(z(CdFA0s(cnX-YVxMu*B6eS2a}N!RKBB
      T&0oD1R!hA#_*`u;tAfpUpP!)N
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+iuf95Ixg|IwT}bZ=u|8y~KGS;yF)<7HCCPl$1z3A!Am-C9x}eT|kH*<AD$0
      zqY&e@v#}v!{a`shIeTX2%<TO7{o^NqC+J#OBJ7+ymrgI7dOgRL-lZeG!0$cPKZjo<
      zDW(=GgqC7X9Dm$9eSa=oX<>!1s?QI^G?0Q&AHE%)9iF^<eL6TJ&=H~WEbt@g_;Tb-
      zVzCTVjtR|Bj6D_)Q!&EJ&MU38FqZ=nxqaI}Iy&eRYKLE3agme~Sy(0P|6f?MEvymj
      zMdUaBCqMY?zX*f)B1hjKY-@UIfc}>qi~YZg+%*-+`P(B4*9l!MoO2_~BlRp7sxb?s
      zG9(O4aTKqVql&3)t*b;t7UFxU5PZ<ov2->(M+Ra4*wo*X!1od&Pu|?!ETeAOjO-Di
      z8hwoA2kt3hxsw2Ek&yGjPplzKOp506N_nhEgmxhX-6Fy_Qy#M>8NAk##(OkpvNPj<
      zoiX0lWRMNn%&IQP>%e7)xI`eWne2vP5QnaK?oD`CZOt2=Zo0?GrQ@~6L&47#er~`*
      zmETu+X)d9L8n41St})VJq{_S|T3Bav6I%tet<Y^&NVzL~zNxUAxRqnJGW0g?<j|Sw
      tUEIsi3cr&$_wgV@YN+tpb{7939xXV(gWUp}X0?a?0?HNecSqG|{{auE)T96a
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0A$A5PMh4le#Ii*FqTEdV#N?99vc!_i{5*X}2s6Kkoq>gsK>(~I
      zCowNw-#;lUHMxYHfsK)YAFeSdH8;N`m63r1Y66hypy30T#xxgbg{O;klqN!rZ(>n#
      zMq*A*Y6`>#Yeohx*NWuS0+4fx*%`PQ8PxF`2v^O{z{|*>g-vm2UUpu7c^<?DB=!7^
      z3=(kl5YND6f$j*-FD*(=b<4~F`il=9GI}5#z+hlxU<P7VV2CmTgNmJj1IXh9@;HFv
      RTns!6d_cYckk7;*2mqY+ZfgJl
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2OHKko6s$M$F#`yqU_#uuQY3NW8be~hZ-^U&eKT~hb?6~IJ?JGohig|RE<Au|
      z@eIVrXxPZY&Fij8)vN0MoWFknIL1yE4xxT8X2LTQ<q6-anXoF<USB`x@KIlwFrJ=0
      z`Et5ovq%y4SIJM8&ZU@8ilk8@7)TSbxqsCm&^4jZ4s~ROwgVBwGA+I?=P#q@T|(wW
      zX=Pi4%0V{?34|VdJ!_O6H|qmJsvVA`i#2TI;UY&Uc9oVl@nk5?tr!N9Q0|64M+y#R
      z{7a_nor(yJpRNCSX_Kq6qx`oA!R>{y@#VQ%<kePw)X}0o_CVYfJZnfJ!)KO}gLS^~
      w8svE9nQ1ZS@R>PmyrJ-#Xo@`Dgl)68gA(KFj|!V8Gh#iqu$}CxFmh1+2E<Hwpa1{>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O;5r=5PehmFa-orFwv7I6^)H&42db4Xowt;CLWi%!NsyQ?SlRV|A?MFnRxIA
      z_@6XRi{T;%FEjgI-kUeGpWp8v0FJPchec?N#8f!ZSUJKsYATEhwbR#kI(*RG!ASb%
      z^wF3137toVu(L>iGPlmfgi0(UB?3=IF`N76Z30~oN^YoQBed~EFp*j3>Fc`t;yx2{
      z$4V>HBGh&}X-FXS(CL{->0xuvBV^q0M%q}yN)a{+gmOn|c{v#mWOOA4fh1Hrq0f<m
      zgBkyl8FQ;*!oh6nzfNuPu579PU4&rw!b#-IGnE8xE&i&*<N$1gcw2DYL>4*jc}5nN
      y`NeZk;96v+#hk@G*VunU={41qx!Nh~vbT*2<N8d6Ra6<V9&1=nXVn;4sQ&;20eL3?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&%MJlS5Jhi$wKq$jz{aq)^a>e~kXW#4ts*01MtX+uYZgAhM~Rw<VPRp>sjgeq
      zed^ZzalHX(qbiXQsP5EBS!VB8o2|Bb!>&Z?t-8wFTGRE8bSRM#sKmW9+WR31q&JQU
      zF9O~A%8rWxnG>1l;i%UcfAk1olM1NQ_$3PD`)5su(DA)Mq99O<zkKoHGJ~~C$`fe)
      z3tmikm}O(Zl(~O2ng))`2D0q98DZF-K$1_Imy_TXNMt$7ahBqkXQhbJx5D>w)Qid!
      D{f$;Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvTTc@~6#k~P?6O%X6l(E~7qk~(Me$k$1!6+8>O*A{VtkmkV;!>WlI@lU|C0$O
      z7K|qT0Dpr|{t)At*(%qEIdkUBIp6utH}mt)w;urJ@ytMqA-BbMxf5+mr`2vcuHYSE
      zAk8qU<311C&g;gOXvPKx876d8hE82XlKb)_Z}@_eJNoE}s3XH*V||T*)fk3X!=MxM
      zAojT56`8%>@Ar1?*8)R&cU!g?#@%Dhy_f52Rff#2%4Qf`l!1(w7z)KR@@gfIa8|>X
      zurPpe8(B;+3=~V=5E#zcuraK>NgE?D8M3Yn#H;RhLqu;9(m6M5a^K@L2o2E>rsEH?
      zLvtSQsAVB)DaG1sbt4|roD4==#ELaTzF0b5(jUfD8Oc1vjWjXiupUP;Xj7AaHCp8)
      zS~YNsCO#BD39ode-x86DA}RaU!ZgZi;)-gV^gW7E@+{24F)+t4c1mI!H*ixy%-gt&
      zdn7d9*%1LvHhUJ<Dfm8@s)_rg$jp?5hj?t@5yQwKZ8r?ss?ih0u-4b+C`S{EG|D^0
      z!(p)MVK-`u7gGHuOUpf{!04OOqteQdorD3C{2}_jDOj}VjkQlNOnaK{vKS>hMyE}x
      zNYkDzA0St*^pG!4^-%b%3(k|x>FZ^(&k1sczR4;sP<)CCsSFo!iFV~(rZ!A_SEx~n
      z{Hv6ev~g%xcbW1R<oC!)L4gnIpsNAxB%u$;a1GZfqBuGlEGaI0I#KMMSxj%&FW%6?
      v0G02U-pt)TKuJ;9$IL$N<QB-#vG5fS)UirtA5Ty6<40Ol{_|VXM3(;o<Xq45
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(U2{`a6kVrDbJK9KC8ed(7Ahj<0~@3TDJf_}K>{sR+orYw<u*NSZwWW$<_6Ih
      z9AtQK)bX{9qobqK2VszperO#=U;Poj`wx6l*EvZ_26ZyI_ndw9-fQi>_PM|P_0wYj
      zFC%ZDPGH-Db=69^m+i#NTrQCrP7fOJ3p8nS-g4#=Bhw2q=NSkHY}Z!1kQkM&ZRPC`
      ztm(X@b5U<I(k<ErXFNS9AkGMEJyCFqp5=HMD_@fJf8NU8`}Vubs{&grS5C-r$G%cx
      zw3rfT$QN=}eqd(C6{yRm1pJm>`{%9VJYCWPzLGs7&@!~im!Marn;=|LAlRSF+m7uW
      zr(-0VVS*Ed85zQ}Xg9F4%G{A&BF%>alEtEl4s;5bbJ819_@@g+PoOOlErUGeomAO&
      zo9M!G0wKm!vJfj0&88Y4@Vtp<&=|rCc+tSVY8OkMolgw7uJt|<BZvwF<du?@FA5lu
      zY$}_IPO0Fy2@_ilyd==6i&XgI&LyYto}-wZyq1%T9vdvsIAlBWT<P+(bjQjPgmnQK
      zi?UFXim}|)a#ewT-JTG9=rO5&tAadaq6v)#UJ+>ikG_U*7(L4GsEKB5XQAG_P1em%
      zM5qpplE5xjC8Y!uH8dy}U752yN#TM@Nu`MvD6O)dFtH6`1#;5FYZ#!;HWiMPv)9aC
      zGCHNa(yDu}GrlmrAQ1kyn?QZRo0puSpjR06T-%wW@>Mx?!m>4K;0=LRU2=^%RhpfZ
      zZV+!#n5?=AN4r88!I<jT_*2X(iK3YxCP=(nIZm3GLYDGci;L1>(fey_sYcZBE}P1*
      z9Ip#_*T6f~JE@7K9Z$|l*TgU`DhBDwY}T+&1~E+rq<R=L%JEzfvou^#lt{uiUE;Rw
      z|6r-pXrbih<SAR-<px!Ex9SXwW-$Nt2%rrHf?PN7(@}>I*PK<ZgKFTljf2GZhe}et
      z=fLnCphpW@8M%YI>+o|095Q|mPWqazk4*;rV`taVwu)U3u_yKbd)Bdc35IVOe*Z(n
      zmSIlBc;e&wK0~*10^-<D3f)Yzi==?_v|c2H#giP*Bo1H}y*PpdPt8iy0ZmV+$*+(Z
      z*2MukVrw|4pjXfv+rZ(;H5^$%-+cy`VZvk$ID9T*3$8GMyP2BdNTQ$T4LFA5jChr6
      zWd-)?S^@t9#O`ok&KA(t8#+TBtwN1{h0;gFP_|_35mL8t(AU3=me?dWH1xLjTwFow
      zrV#BU`}pg>|EQkytzz&7k5tqXpq*?!@G*Pz3A^wq+WFpx&p0KYYw*@G)F%B-oT79b
      z9Cgbogs#!Y$1L6PUm=zdiT?sIOqjm?{IBBl5}Fk=?s~Ow_5M3P{uoi)y4&RN1vz|0
      zb-vNqUFED5Z05%qoF%6Ex(>0ObzF0hD=b#%tyqk1U}Q4<<{Czae8-ltyW>lQ;^E9H
      z-kyjn8XZ0BIIng$>qLh#ut~qi!&cRSjB|P&mio1dxgR#E#yHi$_k7;vsNCZR?>=_o
      o5u0(B!?Z@K>uk%9B(+gf!f2(05Ym{3txJgLMye7PboNXC0Fuy&xc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIlYfl<c5Iq;rg@yWn`l#4yt*w9$#MagpA8qjwBHBijgij4@uecUivn;0mtM(J7
      zCj9~ZQBCJAD-RdNFC~QCd+*GdGiPQlfBydZ4IqXc2@ZzI)7*J3s+ZKL&I@YA&@ZAX
      zP01Pjz*<UhF$|bi#ay`%{gglDiowvks+Lt_oxvFjXBb=w?JJkzgvW;-^fL6P)H2_%
      zmhxOb%;k%m!7qS|nVhbQwYBLoPSgs+RH_?~ID@yqjcZyAPeS1iPS@vTE^mET_?e+<
      z<%$G9!)PPK0WWC=ZydYvkik<F>`t_bA%kJqhdzuj#6tBLX6k7}SIdQXvP;~FP&W(L
      znWmG3EXlCgAwU;=mmn$RY!=00CSw9mB}}%KwZiptu162{l4(u(#*OWqVrcq>4^wzX
      zg(XSb_8F#Ib-l$qE;M>BG<w01?T|vUS(+w9qNwt6d${<Wxk?C8oeSk^v{5<>?Wn9O
      zxe9f|v4jZ2(9Lt|(&VO$Fy=%%&QpI<Q8F@S5EUDX3`Z7g(fSss=@hridjDiH5|$Wd
      z+88(H>bf<PrL*Ffv{B8=G=;AOon_I@cE!vtr4-|0z?@3un4yE!Ub2&}<e+nM2;Kq9
      z(5L9UW!6PiSABSgH3lto@3ie9sM*Z6Yiq4;wcem>pu2K1*6~4z_L1T6KX4RMS8kQM
      zQ(AP>q_wK9@NHFGbAk5zb3wEw6`Ek_+6CNj5cytOOSFp8lhLy$QiJ;^y*MD#uQ&!)
      z;H6(*-GH7CXyu`q>nE!LdUw&upa~PE9r5w_1B0&JOAP&>MJrU?gc3#qVAKW>qa6`a
      z@(0E`xNo#Dk?;s(7EsUzv}6IfBb|vPT9Dir$72g=#D=s+f|-OP!Am^3#PrRac1)<@
      zx{(DX@)PvvJ{Omh4fKShby3LiE6ilC5Y9Sln2iMIYFOC6LM%I9!^>tI*~H#O04Xz8
      zr0&~@HEzWsJiNvmvJOz(6}%PygEU5VotNoE=<FqxDJS~Io8jtJ|J<UGx1lx7q%D~w
      qHIis5?-kawW3!aR`<q~gCfH=%%mO0^ldZ`E32YKD!xjNKu>B8B6XmJ^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%TB^T6g>llL6nCN6!Epv(2b32R%p-=jhI46j0;oBgcM6l+NqIWbKwX0QN~N#
      zR1g-EnK|d&b6?*-pI-p3aK@2hsEv(xL-Qt<=82KzOK+y>@q<HQD2KdlI3uky7z<N!
      zWEo0HlrAQ&6buEub=U6p^yk;7j^1NnZNhF`$Crj9`-UBeG@#rwWNp`d3#JU`^@l(2
      zuJkNt)KDX6UQT4(V92*VOfi)fd2y5&s{e8)G{^R0KaZ}wb^~X)!0#?bH%(Lce!?;+
      z1IrmQT&$^Ur7X42almkz)Y7y)VGL)>8L8XAiCimdT-81aJP`>Lo2JiDsjDxmbD=48
      z-M}-&t!0P9j#qR!&rkbcNYlyCIRr<J?hV>;3VCE`hnv_Uq(DfHbVZc0L+BnVOXz-x
      bR>@&iTT8TAaxI3+BOJ%d7^B}wnDz7*9U_uI
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%TB^T6g{^BgNTTU3pd8N!;KAVwn88=F`@AThH}#kwlmFiQ1~?$et;ikm|CdD
      zn7Ep`=W*}J`S^T$2Qb9BKtQ-z$rl;gOof&cRXDp1=ljo8>SfASph4(=$x^A4@Nu!?
      z*b%x1L*&*A!f^2Lt%;mfIvLGwE9}qpBSL4qi8*)5=tAI_a9M|$b7maZw7?1Bs%D?`
      zvo^1KY6@3N{I+|}EyvRF@<+N^mZya4!M|A|v$io$RLX>lUme_)r&|QVk?#%&d?ih^
      f5J32;eB0=tTT-4mMQ_hEyrW&=9yu$W=vVU&0eEQZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}&BV6ot<qP{WTP0^(nkor0lpjUiFQ1XEoIvLA2)V@gYgf-HRtU&4(mq6;_f
      zd>dcDcv}cDh;h-G+}m@%b8h?b_4)?j2s;{l47+!H$aU3~dS9raP<mz5vz1dBwM5U6
      zwxz+(keP|DMb~!3>@7o_#w0fzLiI^~Q$1r~7Yxy|ZS@^)ISp<OMBw4G@c8upGGquI
      zOG`Q>hSa{{QB7{O^_ruk)h-@182n}XR)nyGl?XxzGsFyOiK{`kDO8;|O~H^b>=s#a
      zGNyXk^gA8dXUI;de=k&|fTT<Oc4x>f$n--uTbqKq3D@0(nSaOX9cACUNxl6TEs$CW
      zWeC;mfoh3!>28^v`x6ECb0G^x&Y*J>0R-vRsPbW%9s(dtXM{Q>s(o|^bNMl%&z>em
      zXUOZG(CjJVRHr8@tRg`b>9K|+F<e$^%Bqs1>#61PhhwDYVFnFdda%8TYzEV&FdD@M
      M1$HBD5y*$_Z*YQ>p8x;=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-sW-5PjQfQ>*o(epXPt2vwm$1TPgYYVlA%Fz9_vrXe-ml+8x!U-RG(@JET$
      zL~2A4JuJIB`{unjGyD4X`~qMf>lO+E8$J0bZQT#-nDirQyAw%|^tn`CNZP`Lz<de`
      zrSk2o`yRPQpgNH5gY@ZIQ#Tk2)H<IS$LK)$Ee4%LDmGG?I~gWa#+1NpoTw&?H8U}R
      zsgUJPLK(*b+l}umJGoE_W8TWy(4~P1nBBsxz-Fqg$k-P$>_)mz-tA3i46-mUu=VLL
      zrMZkuJ4%!{MltOv4K%sZkjK89z*o{Fngkku@pZI&%+?M*pd&Nvp_Oz0(UzYII{bfD
      zCRg*xIOHZeFi+fULqnd;Ufyn6Y&OzXUOF4(sF_ZbXqVbS$d%T<48J+*SxG>k$R9?a
      zj!BewxA;~-8AbjZ6-@K%3`a^Ft6~ldd<JT~3Rp}LOTQqN8L@&@X3g>nSW7eO+5H{v
      CQMYga
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hvj6g}gQc)hqyaFaG6O-X43jsr2!(o$RsP2#|UNg#<Vl|HSLvDs?9n~ryb
      zctl7D2_f;yf5-#hkwAiXepJ;nyIXf{93)=6b7$_HbMLul{LiC5{sQnCwhPDz%ssG=
      z?3(I1wZ2qGQq`J%cQ;Vd?iG*|I2Ro|e(huBctLz1FtKYj8(Vt<!V);M?tA^f_JWq}
      zhB8ZR2;|pxtj4AeOo2kHv9q?l+tA^(K=D9!o*>OM#}L%XaNF^m;127n3^KOE;4n;T
      zs4uq!a_jzqG?B%*5+*SvFxhlGxfS->QtjDoR|=Gy{=V(DY~|=U*~|r>Iemfo7<pXp
      ztUxg1{CIAGtm}6LYDsOb?R9JH$nm=M<^KdVH{_v``*t7?3b@3Aqwb^o4W)c#V3C_!
      zez55D4qe%k9y3iW;04{`6@i&?lv)bU?nUiB1xyMOnCi-4Lw4-Y9Srb7C8=|Gvh^ZI
      zw_L&*oaMFtzpl+b9Y)Fz(JUrOk{*!2Y>Fd&5|PwOcolOL(hmc6OsaGW{qwnU0ydPZ
      zSj#Ov;x|fo9oJ}#cG&4iMN?JouUX0AEq!=XAaj3>8GffjJUt}o2^fJND<Lrbq@wh|
      z1k6KQ^<`5YN%s_iEdv_3?+`ICv4PD38dPXh>=NF?``nigL)-0JUC&o?-R`rGv2**>
      zzz1x#tsL1g&}2`1fNfvro4bCf_T?rS1<nrM<f>-GWll-Ir5xsv#{{DSqYMnj#Z+uE
      zekK){VCvE8N6Boy7~XuA(H%w^ekZCcCn*0EVNEAlz%6pTg&D@@<1BtJFk(Jt$-oDV
      z=P=K+i_xw|yw3UrzviD<xL1Du1egD2lz~Ro^#XSz#8RAvt61V*5ijDUA)KqxIXnFs
      zl^;hCtO!BZT|^ZtL-(%no@U8ce?eump-(8>PKrLyHnb=LFXNRVnA!m5SFDcm-y4F6
      zH4*$@of?8jY5N;iM@zA(Z9Bp_O<SRDe+uIK39gSKIz)VM3gV4OdyRN=2yu^s<S2kq
      zUAee$f;UGoAJShc!mP%50|ywmL2qcK4b+LQr(xhWS9<<$N6z{`uJ|IQshO}8@ebY{
      zs<+EXb1qfOcYnwF56EYat7R)%PE46xf0(SNkF&>2jE#3GdM01eE?@Ckd`&ZcLnD8S
      YMSO=V_&!CwL`P^tX7Ew;yA@meF)Bktr2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*YjYD-7=BLDCM8{N>5W1O^;Vh-R1_5nqNRnBno?~_u!!I`UFepOq{*gSyl`=x
      zaa6wH1wZ-8I?6Z#(iWKU0y8q>Z}6*s!ViwmIVVk)7Lv*Co;~M%pUZjA+y3?6onHZL
      z!$m(l0xeVKjM-B>W%rb<;*3@786KZX^!rgKutrT~&D;t3(#kk~_yn5OTRY#AvWm8u
      zwa=O3S&NGq&SBarmh61)V4`0@3<|95%jZgtnRC)+wrthU9{o3X`R{*@2-M}QGY)Ur
      zeCDJ;Fu4>fF3>o#cOa1(9T_{OvL(Ev4FRLKZ#0qa9UUIwd-+ZX`1%L>DkEz0<;SNE
      zlurrNmkMTv<XUukmr4>OLc^|1*3Q|^ZUJw1I88cz`3bB3f&}7c1<^JcFwh{Mo-nWy
      zs{~dj?VQE*<5qE0YY!A>;40KKTZ^zBla1Ms5Dz|&YSb95VMMS~v^fu^O#lTrX-
      zbjfvF476b#`8bnyNuX^Rf3-_gP}iLZr)Ai4661OKA|-`*><P+0U9=s_Z|~Oe+%&zB
      z!)2#XcH(kjVDFiXRdBdxB|lzXq{Wqq;p$8y;&{c6UEHU|&F?oIQ)e--8?OqiP*}-)
      z?u6tps7du2cmaFJzeb=IsNlW%GOM8V(fpWcLd`c<=Uw5PEm|gJZmnh4@)9|v?lGnX
      z=x<jeUdNChNrAO)Nh;F70SvP^WOglx#W5&Ne$&7JMg$@?L`mpzc)G|ucCK21)g90w
      zEV~Ig+w_pW#kqz_vot9SQdMU{5;$z&5Z+>iThnDT%gSh}FmavIc=)iCc+|i#yvs_k
      zrUf=XVwuK#IFLv@J9O5WG#y#G69(P}kE<~G8>cBwKIIf`xy#MnVOI+MHtq+b+iHhd
      zzur@}vlCV^fGl!;@L;-Hi(X+MkAi@IMz)FJ<5Jk*Bhm+8qbMtVsq_kbINg9UneLPe
      zPa8Ocvoy;r6s#NzWsBQ|#fW7ZDrDm_#d|Wv`%5Bqk;RwOb4Pw?-~=XlzEb&eF=Oqs
      zWs?jrG||6R+QSA+v-zt>1J=RMD-RKyjt2pL*>m{3UUnSb+p!vJs`G0(4!Xuo95=hh
      zEsS87;T5ur@VbJdc4iaUz|nSM$dA#Cj++Pt#Z7cx=h%ZMd0j<Tz&`kRLK?9HPpKK%
      zc-g}$8P1Zg%n^;u<Cz=i982Dd+(76^z+}E#*c`n-3t#m9Z;`tQkIf@`3$g1;SUWlx
      z)`5_^Yryq{0;W*M>Ifi5%2{ke0TE0qaD$+P!dCR~E@?blp>c>Yl17`P5!vuDkrkqM
      z9@`Y;qNX4h0_S<XNQg^x=OdN6RfktnOSiTw9|haii=2CjQFR2{p?o_=XQVeR(V<x6
      z7i_+bonG)E7MsIsH3K!+rwsp$+xR)R=CT6o)WKD-7WAQ?$vtSoUK;M<HVt6^GT3Yd
      zHWW$Tg`k~@p;+`b_{WucW6=e?L9MZ$Nlg3M%8~-EaP$Smeo6eV==Rqx4k4s4s@8Yl
      zAkyRz;HvHP*TZKv7+z(e3=mm*zfp>OfJQ0$lUb~h!#Rwp;iYRTk*pk_TKuhR(>7K&
      zjZLJIbcT*f7h};sAg-b-`a8r>jG1M+E8n1r&(hx50^Yfb`nqdgeybST-0xX`KhWGC
      zStLKXgvF}n#$d9N`OgANZCnXkC);6#LyAIm;rt1I^Z|@W^g9g|iOwNYgVTp$p2uea
      zYjH<GEf$TXj;1V{;|fa11788yugV4p-G!}uTENM9Ob4Ag%xL${&EbREo@wjuxvUFS
      Ktvj#8U-%z7vhk__
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r61f1*{bjRP^KxFtPDsG#U?TI1xEuxG!acOQ0po!tc^VW8%Rd;EyuC
      zZ4nM|G0k@0ypMS^`~CCz1>hV<E-Z%Xkk5Ib#xj@+H5V#qPlV!H#*qt$p_r6MJQ@V;
      z-cW>^As_#BFqB%WdPgf64XzooH!_m?mZ4HxFW0*ag$FTFBIH{18JzpLFAA{Xd2q4K
      zVAty1JQ#L7WRRu1B_r`T8~22I;=PeDTjP+Ax?D+v7fDAy%PGTgx^j~tl4ivd25%tr
      z(j`N=R$rINkkfJMi1c>inF>Wyn&tj-^vrn22}!l-L5bYxrO2k(MUHTu5Ky4gBxISm
      z@qw+z={x*aLKcej_mlYxIJl&VE9_EkKkY^ddxQ)}nYbB!m87;}4w5X8X}rOIq1Ket
      cGy``DnU}<w1sTJ^e<)fTC@dT%i>j%^U)(2aiU0rr
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_bOHUgy5dJ1?vt>(pghJmygenCpv3(qakSbK9N=s;y!iAHQnAB)vBd>$#&+4gC
      z5Bz}ssH)>lnr@Y-T)23~<8NlZ8PELu_2U}AYg9v&2-S0ODPr4KaVG7hv~lzB!+t8V
      zEHR=hZR<jX2ndTgEET#JAGObA#}UfAN-MWVn5k`@5Q2Tvl@VqzJBK?c6BZJsWn<89
      zOZ!>0Q%R^KrX$i5VU@p+jDh>2GQwtZBau2`Hf2^hJwl^4bjeAzoK?D4|F5M`R(-30
      z%<UXJdVkfC7fu<Sg{TnLaz<LZ_)w&0#`b0RxS5PWAs!Gm{`Msg(=hJ940LylV$Lnq
      z)4~lbci_{la^BtEW7_k+Cm*f3`Z{XN(Uc^og?cA@byH`Ww;OT9yC+>CG2!KuEEE4U
      z97`^{^2hz1*2W3{ZG;!a5P9%_etJ|np*Df@oQlcD(5Phwwj&RepWxMr?bz`H5LCfy
      zz*_|#ee&baXUMm=EXiB9zvJ#VR!WHYj93D%5a12&u{JjZvAhqzZSz=Q#3H|xSuSB2
      oE3B8W%5M+xXzJTzetUwa9Lf6yESK2w49{5`datpzp2ykv4SQ=HHUIzs
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvX!AitH42J*IwWGBM!K3#@FFSbdQ7jacf_;M7AuQ9aGcr3CeKik0fDg57Y+?7}
      zAtZnD{UQ0?fByh@K&g-smc1E`j&DxyIF20k>r3-EIQFRvcFU<YHih`5upnGd>|p#x
      zx9gs5B9u0=Nj$T%?e6)+bSXN&shaz_=Q-(_s|dx@r{(wLg5N1z5^g4&3%Y5K6QR2B
      m5iQqlV8ZSHm#zMsIe~B{ZviBSo+B5nL@gv=NEA|MxH<p?utfv_
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3;K#Ii*FqTEdV;?$zD)FS;LUr)Eh%$(AqRFA~Gl$_Ke
      zb_Nzk1_7|LoW#6zegCAa)Z`LI2KF?FGDZdo4IhNGYejNuK}lwQp0#EaBLi1(erZv1
      qs#|7GDkFm!hS_=`eQb;jj10^`H!(0U0<B_YU<0uj*nuPy0|x+AL@q)A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXy$ZrW5QJy_i+_b^r@d(7VQp<7pajeloW~-GF(;QZ=&M=y06vs>ULh71%g!+0
      z!0z*Pe*jpbAD~8<X0npPoKjJ;so03!HcGrov^ug4rLx-G0yGE%&*ri?h<Kl|vV@^B
      zEG_>w2;*5a-*~oQD}J*Tp}W2+KHF3mWq=N0<iS*nDE=mnO7z7j4%3_olm9m@KFt<^
      YP<Iaj<W6j&<$T~=!|k@4uG2O2-e3nqd;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+iuf95Ivi?xfqisy-~`ocaoOYKzX2Q)t5p=q(UW9Rq()r>uyp9*G3zsg1>_H
      zp%O@Z03U^zU7IAETJ=LF9-leq%*@(<{{H+8;2B=zkztr^JLirq&OE!r#W@%D`?vK*
      z=ziwWp5sQL_?CykP*y1430n5SahtnQ9yx~Pl-gb2<3TjUP)Nr%l%j@ZD4p=8)Aj$$
      zGtBR&$Y@1dRONPsAmPMxKk>#1PJAvH7Sd?;9MA6xo`8s_u<iO@;6*zO*=p^G!PpH?
      zcphU6tF54Gr&xIv`_&wos9?gvBt{u>+lsIVhC3FDFy+6y7H+|07~S^*{;qp=%*CN|
      z>~n^({m^y%BS(1hUL{RrF+o<MQ?J8dxq>?pkM(G<)wnUWoJJ(PptV)6#kqh-c8sIe
      z%-3IC{w4Clpp(Zu!?^0j3+?(r?+M8#>;tP|n5k-v1J8)J+~NAZ8I}@HHyo=iIoxd1
      zafzUHjbO2wbZ`>`&66tA#?Me8Q~GlIlhQeL6xovNS+`)}HbbU)N?fF(qhyDv26dPm
      zdL!%#m+yIUwUfi|*1BAQF-L+~WH5p}MN=LTdO=NjKvX0r6pJXJgi*ql>28zo@~Zqo
      z<>M8`FEMq2sY^`%pkxL!^jjh_;3bi4Qi+Xw>IsN|j%7l#L6K2@WaSF?`=zF0--dx5
      zRc6H?Jdlp)bMO$4C^Jii2E{qbEMRdkLvEL_Oe{T&a^08HoW^nuB0JRN9;*QqQALf&
      zW!q9jUd9Eczf+7m&8h5%UWY}jq*Y7}S9}_%SjCe>W6<Q<@Ju+FY-%R$WIIpklX}hM
      P+OTB1C&}<!HL&pysC_y<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%}&BV6ot<~r3eZLDnBciu(5IN5;Y+)A%Vn&yRqDmlKy2nB|Mu8AHat)-j=q~
      z2+KL=n>pv+`TqI*0`P#5iHg8zBe&90o?}I%wxp~Dd4Z;>bX^mMKqvKG>94K%$A)Yz
      z&|Z_C$2yGlQY(_4z+gOiO*tpXsJ;Iv(0Jb26ly2%BNOKWy_}oP3x}yE3KiK>(~1#A
      zF3E_>8P)ORO`yfuGyfpE|1UbVIk}rXQ^J$(3yNa5=sq03pD1slCvcbd-OoA=l!`;H
      zc~HJdJF??^XSex`>CO%?V-@(sqb`G3+4SPLd}#k|`#uS(2?$jAdjOM{e})<=F!^M#
      wUPmJ_Sa0IusD6poQN4YF@8BxqlbkxbMZ$II#!aF3OM2Fb?+&<F1;ah}3pRm;_W%F@
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Hf%pCkR<;^w
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O>fgc5PcicI)pZqwv>jC7AT;ELoB%Zm<Evw6x2Wt?P=>wQ@2~&tk)qz2#KG>
      z5f1zSj{G3R*c%d8g@e7jGjHF#H#<LnfBymC8J;*O3Di&JSi1T=a1+vF((XQ;M~3$4
      z*g;ufB~L3Ej@;hSDf!01qQFKT4I;NQF{DGOf{*e@5yP1zkZM3W38L^_cUM5{2`smx
      zFflST1F2G4cpiNF{OQ-1ubhabe<nxtM$>UH5m<dSuh%y^2uEH8*9B@x8n#$u%Ze0O
      z48n1A#uc|4_R1v(ZK;&k90*i96Q5$kdJ+fg0&DXUvkaqlDc0mmLqmanfz<ZHD+pt)
      ziaX)HCUX)Ey~9Gv_Q>07UXBSkA$`bH2^<voFSLDne@a>K)Qd^W%!AkcOJ2xYjk#k7
      zw*@wHiy6RX3O>ujDCD*+>HL{H?^CG~fvx`u;yLh|2mAmQ|57F=?P$mZR~pT(z_k$>
      zhP0JTnC0n|g$KhL>7^!4jaTf(^i^k!ZzCHKSa19jSM5is_UT2C%~#F(;gYS)B99^~
      z;co#Y)Zw7Q`>Q<NB~<ymgyq?}hDtWhxWTzqMwB_ThMT<0#~d4cp2Zn?3!4RGeTKYq
      efngrMi+efK7Pj;CJ|5)jL+o$~fk*r=;qf01M(tz(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kVs34vghiZgLR@5qm+X0$#8{VgLhL!L-l>d>V$+cA%Xh(=+I=_!s(O
      zjU-;4O#B@mO^o}@3>Rx4zI1wa*Q~Yn+WYj!?@ylr+{2=R5X10+eypdRs+q2F=a@U`
      z9Ix7f=e>i1@TG{&y#sCthE96V)GGz<)J)sjUSDBg&luX4ZL219OBD2q%bULsD6#U-
      z`Ckl?1=BLc5<^oWSzrh++xuKa6WXItagCuPYg&B6t?qGWOW&(-hFI1%NI)kUItRtD
      zD4R8gk?d9eGXzLng2?e=CRvcmy;8ZG3^}~WFmwf;+A49eTrs&N*6bQ}-;+rC_=;|o
      z(s|*SR*6*A)i(w|5)?>H!7xLj(WRg7hAo~L!aU|@a1|ra6pT`?-YXvMR@veDeiUQ4
      zNe&FxaY)}UHahUD83nf(CQ6o@ZWPYFSYNjcyGlNNtcr2mj^a87T99B^+qMoZ`?aMR
      zUYA;#+SI1BKvWZ+70t4RW_t5AxMml%_&>C96+=kLWG5MVgCSfDNe*9?w5N^4E(960
      z!O(90WtJhH{jaWQ29X*US-ZqA5U87Wdeaq0uAnh-y-L$pFiQ(}9`vf?*iH-XQ;|la
      znbo5TuTs{0U&Rbkv?8`kL+|sQHu8}qZHFh>f4UZgc}Y8QDoHKpZPzjQQ&Vns*Tu^=
      zEq#Q?Kq_=U83xge2t5@#h0sE$u)HBuiBe^jo{XN&sXE%;dyo$LR0#?!5Ofip^eyUx
      z(1jSCBtdsTutZ3Sjie^)=xJnFA-PqLq0dJJ41`A?`iY}et_=M)=<(9M@oXKEdC5BZ
      z5jUQvzG3_=+EQOJo}K)FiFYR$+KI*MNPZzm2-5I~*I$mT<*B!Ak}RMXyF~qpD0j~+
      zgz0n#Q}jkBS(`@Mvv8OG$NW6zNLc2fo?vDtHdn`ka}AjyQ1rO`KvX=$BdWDx9*+Zt
      Ul$ZNe3`ZV=Y>y#BpCK�S>G=L;wH)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpy-or_6ot>g0*Wa3ulV1gCK6+z5o007L_;(IrC;C@m%y&s9efF&#=@9b*y}Uc
      zSo#vgGb@QdQJbBed(V95+?nUz!y|xAEGH0A$hPcjJMVX#d?5a{`1!JQJS`R7ttDV7
      z%>Uj$tF@%A6*4^K*zKzLf#bOs$A=2)L}9q-xq-G_UA5a?iM{n+o^D<xs}SFFTu1LK
      zM02ZE1*_;aB#9_SQb=M*AzgA@Iqi08;-A~KwkV91ygChR+Hl`5TKdun7_RhtI+MPj
      zu$cR!UzTQJwQ77Pjqf<)_|jCE`$y00foPso*!_ze`u@W(BPS2#%9pyWr7;MOkirzE
      zc@qIMvs>}HeqD|nGkW^-EjG-c)(Q_q`FIL5h#}53!CeFctXk#*SxK?7#Z_^Qt=(hz
      zHk73KO;QSMQ@Vo;|56_!jAD#C0~qfE_Ng@5_}cnCCVmnQXkH8nQy;26fqFAc$e6(_
      gds#A!5AcO}hq<4`Qxea<5f{QtpG3YUDG@Ba1K{?NzyJUM
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~E_s6n@@0=&0pm6NG`{L_jEm34T+=gsBmOa50!MTy^W~C@JmIcGEk5je3iT
      zZblPtO}zJK_zO&o=k3Z?5aUgI&fDia&vVXu`u+FkuK*UYDj~)&xv$stoO@vAJnq)H
      zn=1sbyye*Z;j1#Q`le$`h#w&>-LB+<ubYlvs8y?u>vN-xWEdbGQ@4uT^{8@Z{Q(1e
      z!qA&{Y|qzizo=U^-nIMV=j*YxU+WCr2KRN-Vi?*8tONpWK8*k?rfvGG1el2+3chRF
      z6>YZ25YIaXmqF4B6eJncQ-G1u4!NlA-!N^ySvx3kcUv!6oFTR0l&Jxo+Mql<jQe}0
      z$1vUE`Omz_H6w5;A{zRYaRzB&vsV}%Q*Z$n8G1yAdA;V5dNyi)d(U-V3K!aJgsXGf
      zLnN0J$T&-iR4iAx|CD>4UZG@gCR!9RFsa}&CL~NV40mSU0<6_c%iykz8K@FwX{aX=
      z3g(bykm}+hw_eapqK>yp`@HNQv)fjlLOOvQ!-$r#xkqc0;YS;mF}-EEN5&Ku6)fR8
      zUAtbba@$~-kJ5)+e>WET)&#{(L2>Iu<v)!@EAJ?{iwTB=@3fRCq>+YKGkk2Iom-%}
      z7o3_~=8sIVKk3tcp#?EU8atx}0Ad(L7rH5vf-FH1T_VMCifB9N*+<!ZLdWPWsdKD}
      z{`UbmMNc_6eoPeWI7j*U77T+JqKpdYWSB?<Su!NsC5#YHs&h?@sM!WapQ+i881K-g
      zNFOMWw{3E>g8>u+`b?{^O`i<ui3}M+#z=xzDiksZ&4_17{eW@x4P^2DhJ@P0mBTNX
      zdM<)bxZ1>gYN3H^;&THx8n}H(RWXPL`vS!h`cWoTBXFU#SVI>K%g{naEpQ-O6N+yk
      Yv3E2xiaUg2*nk%yO16ns0@-_i087&<DgXcg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&&rZTX5XQfO0;c>G1eL^tH^9Wkc<_K?2#V1VE@<yd-Qb$iYP%5M#i#H@;=u>-
      zO?(OCv=9#(6AwGHv-{ico7wlz*EawMsArHMH15S*Siw|Tp$z6Sutsqj`nv0AHJ9g4
      zj(pI{_cAaDm6&#gH?h7i2qk{1glo$nWbo$lj6hd}e9!knEj(=tcP3Na!pG@j^7)96
      zK31O69YV6vv<XJfzm+DEDCA%wODGPMCx^4?SO(W(>`Fp;;5%#}*oN!Xp`q_oNN5fI
      zJ3^aKZ7k_{gpm%EH)%KR$h;bvSGaSQEdPcG=E$D~j_j+bp`E|JX+LTPyWrvYmkD*G
      zkmj7>DuFd#tb{Db9G@I=CeEqW0{NF1DRML!1KKcff)ej?O9<;Ia}^0xI7R{;CL=c8
      f+FM}br$V32FJgt-l3FP+j~X^vgRsS~6WIO&re$)z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ&rZTX5XQeju-X8k;ve1sFE*ZgBB)VgG@+4uX-2Z7bjfxhJOOWEd<rif)U%J^
      z!x+bwR5TtYv-xJ`H<NGQKc8O!oZ!GgiO?E_v(PhR<)v(9Y`h>#J-&BPCN#2g9415W
      zb}-_|I#~Z_sK;Y%S%zdnI4X?$Y*M9@yUSAoT@h+souoEQY(I>rTzPwacw9U+J_uEw
      zPqeW)ozQ7t7Z>GJKNnVR@Q;3amRIMkft?O~f_pZPcw%LJ>Yzb5{6j3ta@LS-H&&e3
      z3!Pd*v%O?z>jG<3GV~oZ3GD*%%cvV|JCRj0UV*xSo|=fyRm_BXVd(KULEIy(NmL|S
      kaIhhHQ$C~w7bS7Likc{OQOc6HMA^p9in1&3y{v!#3-pbDhyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlyKcfj5S%px69@?s4HY#sv7mKH5{W1h5=b;u$FU-Y!?w-`%D1J+2jrtr)+U&O
      za$Y-{{XKpE02t!Qhezmc)lmg@9|alPBimrUW5X_qeN+kULNzMh1k=@)wIkHmQI;yF
      zKMAA$N12}SK5-mgiT`tFeyofMC+~v=q4D~qIdxGIXFl!;oohv@i0g$@%UU^J6IvT~
      z)0C|$QiNWAu)HZM4WXpx$-!!ViwsNpvgkQ)su2hkc>v(az&q67!535&zK%vN2;anm
      N-~x%>%H4Q8<3CR8QdR%}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2y-or_5dQXr!yF)pqQt_)P9*VSV}l_^&_sh4qV&r#ft9;GvbPW)!qOM9GO_Rh
      zd>P-sIDnxsCKfw0-~4>@&3=5ny#qKxB?CvG`XHy$H<9uaGE*{sXG9^{SYN9ok~SEg
      zKL#|mD%KgK1S-q+TZ&>!%c?+;36u=GWD@SazibJJD}j77)`^wcc4auB^s{?9mQTl@
      z0`7^@$~FYb`|UYvDD}YaSfliyUhN8aEgBmNq@}(<su}mm!wL#Hc*qJA+Dg;SB<hj5
      zlf94xO6@q{{gPEM{z<0nP$dGj#ftyjS!dlmQTi>4C3WJ73Ft!2_U-=pRfn^Cum{0<
      z!FC5}xa>2G9ISH0RLF9i;|!4J*I?wZcMoc>SbO2fL6NOD&z><u6YGq(7F{S|gAw;*
      P6J_RexH6mBUT}T`<}-H(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(O)o=16o%ia>XrH~^-b8(ipH8)C=ya#DBX|tq=wrWnNIOLY_05VtRxnGfS+O^
      z@dw12+olm8VR6sooO#c4-ZS_4{qYIFD&_*j1eQ+ah0NKy$~DMdkj<6OC?sce(YPJc
      z)Ya{)3Y|M;bbz?PL`Qx=b>paWD=@?WCBrh=2CI*Dw*<tVK!4uohLhTrW!R+d>zAAH
      z+q>5{fyBDf%54aw7Yh+Jl)9EHIjeMSZK*5}&zmYG(S?CNB+)A{SWudZ&H6FfLwOvM
      zK&oIWJW}#t&fCSfJ5ddRY>WDz)z;W5cci}i5Xk)C?vt+b0BqTN9rs=*{%kuuvF6fy
      zjy4s%O8Q5rK(b_-wn96~?>qPF-&yfb$m%URw^Wgis#t(vL*O`tZY1~&IE$f&KUSib
      zV;@&GIFIp}$YdYTe;;WEIVPj(Cimts#Q9iDg<+&PV?9PN$_&p+w^_S9(a#Jr+2sd}
      heTD6FQ!#?gw`3hy(1vj<CfTsJG|iwGW-#lgeE`;~q%r^i
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwO-=$q5QSeOFoqvR6#OGmR|*&>#*GOE7l;XjxEW>Nj2&zpW=PWzyoL*J-~n8b
      zxbOg;$HbM!8X&|V#zj}BDzCnJRc~J}uK*5_F%V$bz2!Y_s+Kf6LiL0)EziCa+7fnG
      zNqt}L+oG+d=NbqyY)y;H{kEs{M8uFFisVjRs17w<Rn8b#l_6g8+>Yk1u5+g=LXXGq
      zpASbLPYmG`=}KK>NbS{zaEH51)6z=1%|f=$5G;AuB7!+A#1KK0VX-D%anWrxgu3Jn
      zM=&I7o=qb;4W@it4C))%VaSfC|L<2Iqohy%cEOOF;q8ZRvOXF1ov!*$Q^X^0shK*4
      zh~;&aEzYICK<1B|ANUu+4j4f}aRVWQ={G0~V4fa<5TzKSN|Eva{o!1GfcW!Jvq&*A
      ztQM*F6bZ`HBNdjAq>S`f#tJcfR%*<u&_sWxk<0H7ke-HBsHr-HZI5IVm@$S?E7q`1
      KqkP-G-OX<c@sUgb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*YjYE26n-{on>1{pghG+KfS4xG7KWR&BG*bvp<+w1fWVS0%|f~fn+;cma;f44
      zK|m3laTuME58{POFUX9jjN=TS@UtWS0e^$|oZW4D0o%#$$@`x7oaa2}IdA*$-yeSh
      zFdv@>;8QSeuXaGIu{w>KoNgV^t(wj8H31YUD0eo}n%Pm)ynC;numdPjP~of^nVJ^e
      zGPJaDMBAO#>CD6Y+NN7MBV#gz0;N$w+3Jj$vo+Ih)6#jpcuY83c7JhmSV1UnBv)th
      zrmb7_Y*A2@)^fIj(oQXrGE6<5<Z@g=aYCFFl;llgf1ZhoY@?H}V0|KOn1;Pvfj?5!
      z#`V>iq+SXI6IG}v3(=aSVlt*EP&;&c!(dqY$Hj4)iZLixFs6z5Hs(8b>sG5<Ot>kN
      zU@aOeVsYMLNxhRV1V3h}cpl?JcmXd4FlQK3Er)Zq-l-yjDg|Q`dCSsGyOoeP80oZ;
      zbI>+Q_Lz!s2#PgNMHuB`)u<TluFY357G=e3ll=HXScD}3EFPAsHD&2qQpHldM4obK
      zUC)w+NMlu70Cg;Huzhi%*~({aJ-PN!LeJW4kuaGOK;xU9Apo8)inIu?qYmon^m;RM
      z(3F-0Q(7)1OtT~U{=Al!01-FB5T(>rZ6&0Pos#Z`pWasB%NtA~1t^Gm0Vt|9nytmn
      zY~HS``X5-KLIt@1s4!Q)JQ{B<>`3!xjlu>r2e6TC7?5lsx{B9C7y-#oa>Vs@6)n=U
      zpsY1z%nn)HtfCEDs7hIENo6c5k@BHjeFhmE=VBa&n+}vVt3PNNHfgFHUR-nDcB*R|
      zg&o)xz)tcr6rQ`ULc?xiabgglbR%BnoMFRtX?Ur#=K|e<4izam5pq@skY@5cSuqTx
      zmp_Cw%m6wE=GoNknm8XTlSxa@<y2%qG0EUKqp&U`vpF&1HD!c%okX)#<UpsOooTTx
      z!|Y(_0e?ps?kar`;7|Yuhe_GpQ?UY5WWKn6bfB}&*+OSoVTxGd*>%(*S&=Wp73QV!
      z15cg=aDojOoC9}nRo+M^bt{BZ=nmktg3*H>!lxASj)Do1#<*ASNc?A1yodLxp96BM
      zHSbX{=UFo_ME8Z_yYQi09%o04jkjOb7Q{JTe9J=U!pABu;35Z2%Vu?xlA1R($-s%H
      zl6d9S1@Q?ZRZAoep}$i*MAfDfWUwWZw-S1TA@_EWS9P`2&%X!s;-?q^OyVa<yHqY8
      zg!s!Vm3Bz(C%z}i&FSp%mU7;_!JIemG`>sutiX6in80s~_?Dltv0b>0%6>d|8&hv`
      z!H4O5j%HfmRg_>8(=5ddX9qmQOV$hV4`KPZZbkbrGpw{X{Tl7Z>>fm;w=lH_bE9`a
      ztNPLxm?-9LR7aVto!NR&dmW2zp>pi;C)Y5o0t@=F@H&dNxL_pAcDlQvDvNeq^bW-y
      zTt`Xl!Tp;=w*n1_V;RfZ2a_mFWSzH*e>uqj_MnI(Sc<(QVjn6w5i{vi#X(v^J*~iD
      zMmUN_9OKn<9NTaL2L1Qrv{SF@P-LMVFEf@@zTB(4fptseA*nn%nYE5&?kqE(W9IWt
      zqzSIK7fD+73R^@a5W^HNW<5_xOTy%8ZnqG2ijUgvQ)g~))vc<;@whw$UATa5C02Qn
      zjxmySZ(-~gC|6J&`x(jxi8_~`YnURjX+|$yMY*J)U3(41MK}EXE#wL_3UH00`;rRy
      z3JdVHlXr$2yHLwQti~E<Rxt-_$&`;(H&8h~tmAp9Deed^&2z$8<Q|mvKCEwwMem|X
      z0m&0<lUPx)TE(i3{ZK$MfjR@ep?q)fkMg%<>^tWAeh9M>yn%N51i7}A7=+nv*!~oT
      zogRkiF`?rw-t<8%CQbMqtM)GT_%PT^mxMcPSPy5X7t_!;B<=J93DYT@y-XUEe{T4e
      z2|MW}o86Cnz1ZIr>qWkf`rYEMy9YlhnAwZNRQj2dlTO~?8IZy;I6}}efYV4k@PN<X
      zxcWN<{E)>zq6q(>h#xs9q!lVZZ#i=w=DusmJ@Gb0Ei~}{_wZaGjndLJ<+JOh?VPn_
      z`1rBzmG{uqE_`%P?#Ib~yxWHl!XNeGyf7n6G{cwpnBjft#it{i^CwaKMHG*DRs2m+
      fKQ7>7K940oR^l>!_(ui{@fk7tXkQ^BAFloflx9(q
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVO>-1g6g`g&X{K!w2uVyBJ|YB2nuGyCFbv|y5M&@3Gy{R)=VYdnG)$($Ob>;n
      z<;Moy_ygR!al=9vkQ7uYuB>vWmX^A-%9Z8E#&TzQ-h0hVXL_ij$|^!nzq$9^bI(2Z
      z&Da0l`5eFjTs5#pVCUuhwS2O&=q9U9<(gATo-ezFeAS<F7CqlNJA2tF_y%GETbcuP
      zL{4Q1Y+$;ZFHJj@s_T`{XHE!+(*o<$Ub*V$%l>q}RCCsj$Gdv|{^jih0<k5p;xi^A
      z&{n9<2@Fj{3QT6wCD$qYIj?ZV@lWOpzE^o8#f0hu6EvOXg!W@@+4YYzb7**4z#P9`
      zaF%@XtQzPR=&M)OJ=MP^&9ql^Ob9$`VFUVjFqDxHofB@^$<`KUoyxiVY{?Pmn(zwj
      zKTj3-9vsH}1-B}&E7DsFl~X3RVZgw4fq^=qU?@|QnN>Ymcnmuz`n<DR9D%{1;YhLO
      zY*u2RY-pFjxuHy}gjUM8ifbkK@U)3G?2!dF##w6Ef{8~A>}A#YaxK~1T_A>rnsVk0
      zj0*HLN70L!6DCHm$Apdj5}iIuM}4CLQ!Tq{%~o<eXyFi^phGGS&6tR`s`i28lz2xh
      zJc%&@%egLntk;Bd4w2DTN@YUh2#y3c6{5c8sUG&KK?`gPVd{XS#*tjK(#NG1#{||E
      zN?w^(?7r`TQocN&)Z|hIo}>IqRCSz|v02a0)s|!nPO<KK16<zDM&x*<;#Jn+Bo7%s
      z;4UteoJFpsQ#6srDOsFb+!OFr;5onImgh-NAQ|Ex2oREFRYy6$HcOrp0-KwMuQO!;
      zN94_37TDMrQ2;Al{em3Kivp9;st<372(p3P11~@=uZby~w=j(h0`1&N4o6_?{W*lL
      z*T(Fmi)SR=OLA)?HA5nW`g_^JD|l7F$QO%RjTWAZVsQ?!s&e-3iHF%hUb3;O61x^<
      z)>6p-bzejX3v|@Vt9R?ZzoeFdAeV+O8KBPF>Tbz;xmsaCkEHHr>5BymF6bJw=#(7a
      z(b9ECdy@-gqhz6gA{T1Ts}#6Uf+I3>UX3p&U3uB}wYb0cNfx}9X;A*Y#;_S{(atx6
      zZ)>oQf4l_MXAA4qvjd%cnvCT|$?v=P7GuUH^zhRmo(MkM?Y3p~e#TF0(9i!(K7k8F
      zzsMSZrK6C*7QRWWz6jPSp35xDPOM-n|1D!@1F=Ifo+IKs87?T)UL7Bx$|{mQZ9)89
      z5&XB<X^i-T_A++ciCY-5@4}wBi;<aS>`RO;BY6vt%i@PGH0t)UB5;kFZz7I&uodrO
      zC*D)_ZH-s2KN!?!4IHI@vYSDqs9>AobS%Q@3{PZKr@i+c$m=P)ZFPCw_6?5aeRSZ1
      zP}`mLvYql*fo%&sjb}n7o()FSro=bzB0bYJzKrL;U_m`5IeOs3(1^?cHO`$s9m3M%
      zKFAZ95mz+t;moH^P#=e&;+RBM2FstJ2vmxi$j%KrAy#m<8R$-^QzHOka3JtHd4WbC
      zKjEn4u*O8z{t{Ckp~Jq1soOY5X|tnWp*uY85so`MYTw4iqcOWbwt|=XV+|5JC^+y9
      zOMFZI-=Q1d)3HBb7(Ze^e!^k=tOy>`1?vRI>JAuFbC=USg4ggmyWLNuJQay4MP?)P
      z&nlNFMMhgF@~bMSEf-ZpY9m)xNlK?k%f;md5h~*-KV0QEa{0Gwjr#2s%r|tJ9I+F(
      zaph+0CPTDIHgj))-&o*xZr7g#`2)T9i<|I|qBNl4>KbgvBFeN$FEeE4(lVYxTlx<q
      Ct+81E
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      X1lr8Nzz8&zm4OY!Vqgc7Obi?V_>?6o
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TTmNi6#o7sG-<lFG%acb+EhvfLW-hRCA12(wY7y-QIvYAOITrPE|^`~Qtyg)
      zAH7WLrR_K)KJ-CH4OT|1I_ius>iFWL@4h(B_-g&mZUWg*L1xJQ+5epXeBU|WIe&iq
      z=ZiT2*WtAwd<s{O=|}Z8%ScV+O?$GfE0r=Vt0$MW^SQJ<jN^6?0flPEF0E%r+71kj
      z87W&~?RY+Cb7khTJ98P`%vuVY?%(e{@L+{aQX!PeWrobGkyqGIVeOvNQ{1QRicT|Y
      z+B+0BH!XW|^MFF2CpT<_;m2hfR${e+zo~g3h-#vBa81}|x^0hcjrJRM7;6v_vvu@q
      z+S@!JFKRSgjw|S=4-YHUG`RrFcqf|=iCt8~Rj8$-Wu7pcFnfcjC!?k5i|a-WF>F!@
      z+PSWLUY}HGDv|TVDH1M!7sQH{U@|mRxvMQ2f(R+B+0TUbO=O0Q{N4IcnusF%b16MN
      zpyy5bUVIs_M@?2~b4A)ORdpsmm~sWc)o`i6>s;6JJknB`{NJmvtC+7P^^~lLUQu+Z
      zLpyE=;(Cwj`X?>h$Y{6`+emK2u=|Ue?bWmTh={4asky9L72C-mZdQnSt5dQ$Xyh}d
      zWl_i>bSPYv${V_ETq-MJ+=Nci%=QX#^xJteJCYRee%z|zHgr+xgxQnUEv9^(2b}Yg
      zka`rN4kV|@B{)S!VeG=~LF`^6Di5%<k=L*XOnz9Rl`6KS6wg|!wUc40X`hDu=%t2I
      zqekk;LM|ku6{T9(beMKy-zpr$T|wNbQ0L99x2hWYakrx=r}Y(#lH}*{Et(X|H~g{|
      z(#NS3yOf{p3O*~NP`iXkXgN+TPy+u=T;Y-Bu~)czDpst~vTeYb#fp0KNC_`0tk;6w
      z7~XX}WsJ*Qwt{$=?e49N2h6-_5JL)Al!?(1boYdr9yanJa2T$V)VOUD3qwbze2i!q
      z1-pNRK0a<_X_dIt$ShBJ`MJpujwm$5vN=08lGl0N40rHLY~f~!4ZD*^VzK*2k*x?(
      zYP|mpA)ezJ9tB54$j-U;3hPUGbX(7D-!KjftvXC-IErHwteF{4n+6+r$zC`V0>}7j
      zFOLu&W8ag2VL2Oe)MU)Gw=!EUD^{~YD2tkaw#K6qdfJk?^0bC0oy#dVG$s>%p<3>p
      zER&cUp;2CNrHk+d4O4PasZnyKo+=}dT0>Lw|LCM}e{Le5GIpDCyF@)ADk^%b;NdR|
      zb{&6V_z;m>imQm+QGABDvl23LR`J`1v<mRq*)jud7HbCMb2C`m>)$br)vfXR_5#-5
      zJLOmP@wu}X|7vM%E#S&8QCGl*3%L3-G_<JC(D*U^eYl37Ej$<4$rE>DHEzc`&cs?i
      zH)AgvaR;vFa~t*{$ywLr*gLV&Oi%giM4VVzLu^GW5<ImU>$z?tN<n>X5%u4UAe;sT
      zwd(sE*L4J<f$z~ei<<@`x6B~fQ56joup`p_0jfX8&b~yns(?GD5sn6A)tC4IL3!WO
      zn)nnAasHpj0Y8LNtB2BVtd&3v_y9vb$fP|)P&%S`nAFBdD^2(rUY6sy1$k_Tg)Z16
      zJ;9-DbK)MweK_XO-Qj|sr#pyyNL)GROL2VM@5cb&`5C7V_tG=KC>t365X%Ur;QnF?
      zGTf2mMI{9-iFj){g@lJf#4()Y=i{u%6S$K4UC4fP9!``wm+bRU2bj-U2{6h210?Ti
      zrj1Xrs%rTZjURF07T<M!(K%Xk4T?uAx!P#;5N!k8IqXR9Pcjk)X&%!scM7pt93Gs7
      zJ{U>Oz=#*{NMx*lbOE^;SYP?KPa`Rob?to#ZrZ2Nyx8G59TMVsV!?CDr|O
@!U
      zAk}VG5qO>C-arlBB;~iTiR(t3Wd7e~1HHp~zDps$N8z5v0i0oN&NBb+68}jY!TV)N
      z6b-l%PCK<yY=@nWaD6;!D--{OlSB><@|VW@gWsj1M*M52lQ<l|0M#o+oO7_AMwS1Z
      zbYarJEijEb*{KP%%bqmlQzx-v8r4$)RTFTW&R+bzxH==A(y}Gafph+I4CEH6gS`cO
      z%vtaWG|D}S0tI%SzlCS91z(c#9J_FqeR_d(zorh(Q|#X&h3_1?H@KkZ=^A(j&ytcx
      zv5J^|sAtODj&0!2#OK(%QgTkeBJmuF%VgT*@06NGY6WK<IX(YuXIZKKs9gYkxfAp!
      z9{w|d|3VS}jE(r!0Tgo&D+2QI{fi9ApAZZvFhs;J;pJlRa_KfyO82)*O7|5fcdz~n
      Dn=of0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hT~8B17=_PlTPoY~RYj!*goGF<#*Nn)jREB&4bc>OYnEkF$82}W&Q$ORd9R6t
      z#0!6bKgxJ!c0+}fo1J;zIrE(J&i?uP>o<TGSgFDjSo<7)2?H&oVW!O2;7t@st+&&}
      zWNG~NB9doDrAZZKftFLoVbTw}h5T9|Fso&z!nh|h%?ro-I|AZBV2UVh!o>8#cql8o
      zhu<c5qRVrE@|nyA0?p1%|M%=FZ4p}n6E9Vw%qxNU^<0*ln@lDBt&JWb+v%zFLH9c9
      zm=g%b2=8{Vh?$N`<l%5|BD16LB$fh=P8xBLkmIl}nq~7zX@RG=VB?>Q(Mto}x2XT#
      zERXG@gaw;+YLdBIb@-_9nflU<Mi*FI-?-&8Iwjrjro$|f@088k8Xw}hwZ<w<O8ng(
      zny6rcRn=AZ(6G+jm)K((ey3TzX6<pUwl~EUW_~zvgJ0jZcZt};ebx_i86IGs6)&*!
      zh!6{#D_|d}vF5e*<`o{dpIxFk0#3W5E>j&5e(aztx%?VhE1*QUv>w5WSSs)VS3!KG
      b{S(da+;|)cZb;yx1J-jv0Tftvswe*dQ_rT#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eU2hvj6g}f?vWa788oQ<~O-S3MiS0B2S_+BN(2#ymu-k}65j-H(S+9~Uj%}^&
      zs*xg5eg#s65JIB7h8G&Bgpn##6(q`k;C~>_%&yn#bsUT!Qg&wN-nsXjbMMUh*S~)J
      z3BYSu(Ge0Dy_36}o2{5e&9<uBvrC3yRw~P-V%07c3Z|_?6BtrHg<NrC_U8H>)2Isc
      zEm%dXx+u^yl~@zdmP>gvj2;X`(2G8SLm8`R-l%P@oAzpMy<iFqXG%t{u$Hqe`R*=i
      z)lI7+FqSzOMVbMPP1E>f#k9AqO2sM_1xBU<yPC$d#1y`A&oIkX`c`xd3ydF-!*dNo
      zAQr(9#2H}2tV$)!dn9~jDiKK6B9-fx4&x|}>o_KG>VR~vcLXou5XCE#mB8^pd><Ww
      zNWQdUTX(I3xnbr7&bM**j7x^3oOaRribfF!Zdn_}T(xGi9+wtY=bemxpT&O)ys)~O
      zUQ8$W4C55Wb)07TTB)vOTclwZMKFOg0)ypRWz$o1GMK7mS3}Um+90No)RAcG)utd0
      z=Lk}mW=GmJc1NsHFF!j8c_xBc*`eWbsqA6t%PG~`J29ApBF0-AdAr<b=80ed12u7^
      z6ZkMlye&x}(Eh@-7f&GnUy9mQRu*1BHyX!cyqiq|7dun-j$Y@+)iEzH+1g}5&Ac!I
      z*Z-{u-d+bnv&9E-QMMkhxsKTbd&8K+C3y!f2^@7vs}A)1csJ=-=5beil<k9Bv1)CZ
      zo{Nqv0@0@3GYAAPp{5L;ldGeE;3+@h>yls^7V?PC>;>TZOrWeC(=>WI*L{Hlp}TMH
      zt^cL2U8Q%gw-~R9Tcw(9m{)o8Qmz)Tyx3-Bk@zj;t;26Bz)!0D{_$Ps+c}PcV{h^i
      z`oH5OgfO3BjzAh3yK9iMh~vcZ1-=c)j{-f0IM--7tU_JjiVW4ihiLM9ycCR<p;y)y
      ztsgJrgo-wTQSN<(^AN^VESr%e+_>1o$>a~16v*!3?DTGi&s3dOjge&j9))*Q?fRIj
      zx4E7tzT31KM3zSkrY~z8uTl))b^bf7<jOg|4PXT4JsfYSh&w71ailyPH;CZuu0qoZ
      z$2M{7Fz0>Z*ddNjiQ_(Te5P>3nS&8s9CCI6Z!*vRh~6T@hR$=YMrnoZF)bP+opv=^
      z5OA<%QuWMZ%zc!4gtzN1P|X$W9W_RAS&bvyK1AAbbcCEy5I?8&0cQ_M-~m0pAb~Ft
      z#aATpHNC%K!5-oyzE$31+)EfFbd}>_(z}LtNhn51ui<(NHR<&py`<Rh??X*C3GkGb
      zUXBy4?4&lYQTJooZg#q!mE@)+ImNe5uo`PQ3`tJ@Fp}gVN~>W$WncNp{Y>i<+MlzB
      zpK#YNB=(fMp0N_Y(ffDy;B(UXLy=3;n?PK0a^_Sk>e38xmqRn;tDy9EX!2(o1(2l1
      bIm$m0$?kG=PMSQ3z@I9Y><boA*>3&~YemSu
      
      literal 0
      HcmV?d00001
      
      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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
      GH~$CJdPXP!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-sW-5PjRGMq{<Le)Xt`(2BH*7qKFUs8ouIk>0oI&~8aKB}t3^EKh<5e}F$q
      zoY+z{@#1CP%<h}X+c)|6e0v9Qh_Z={!2UpvWj!Qk6sYLAe(v^sPWs-x45UX91=pl0
      zkdYtQLuJAcD1LXiQupe2odG$Kz}%_QDmoL$R;q0Q<HGNfg)A2G$YD;P&{CRiM_z}5
      zN7->npw#jm>9%E{;(B^$M12(s)LQ@1)DW;p_xJ-%)*!G|X(syZ_;K_gb=UVAvA&y1
      zf)NhM`Qzy}A2$-z)G+Jv$)RDSd>xut6*%}UzNyF3Ro%3&vo?Y9ME}%jnpw|Y>{hA?
      z0qIF$Y=P~M0*9_tZ0=5)^K*-}SfQ~EUKjrefWaBBiKEHY5u;$t?Y(0Dg_8^{jus<u
      n%;Xa+a+aTv7?*g0fn^k?Smc`(X2fGle6xmit^_tXX0Z7M>=d%7
      
      literal 0
      HcmV?d00001
      
      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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
      BPpSX_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Pg$6b!$pn+L8hRN)bXfhX%wgjv~>jpooYf*~+D-jk9vMa_q?7RPeJn
      zA#vab@S_mpb%@f?1HJ6bzI|`!^VjbmKLNbKa~n0ni%W4OT7`_Jxzb--?~*uU=VJU>
      z<YFwf%!^>6Y*>VC!%RdPx6X!_GSY<Aj!Kp85>{MqK(J1-k#w+v^$paqO4#bFRDPO{
      zhcXYvFp-3vein&jAaYgSXP~7oR6%&z|DRlZf+N$IKkjjC!jZcqD<(3!p^kuIzs%A(
      z{SwKER#{ru*de^W9@WTu>6J*-Xx@ZUJeLvb?)kAduyLQTYt$-h_0ARu`%I|PGW`m4
      zuF}{<Z&bN|kowx^gzl^kBREM!QTX01DkH21Do%x-=G^9wov_`$h5Fy%oiOyfzQ-p|
      zexCDb8u5rnJZjfFKPEI5lm1&}`LJ0@!mI)bd+w~7#fI=Of^3>c^1UjTqj~f89hEJ%
      z4#8{2iwmr=$LqzX&9}E~iEaJWcdUJ5rv`^lhb_>Cg%0kpw^5PU-UTcRo7iGxn_n!p
      s_YAVTfb1Ehv4rg70slK!;UVj5c*NW$9xrj5c(Q~%#R2mP&y4Eu5A{6fJ^%m!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g^W~7Rn+O5u`{(3fdN>BBEds#ezu<5hK_{Ud+-?>XPZU+1;xA3?K2;
      z2fr}UM1^P~A}_{2;(zeLcxPL>Edk;~XXZ}tJ?Gpzr~UQ!%QpZcm{H(i7+ujGYjKNb
      zN~UhF#;1k2%gwxQS$e@3sEd*XA$Z27dj(#G{`x|<%FSa4SlrY#k>;kvyPuk2V7D1s
      zlLf=FHN#G8qQreaBU>+i??nDEv}i&+q)*`q&r<3VL*t}w==KytLnNAJ@Fojc?neUx
      zDpa&Gw9V-Tzf;ODb8}H!7M!7du8<*0jfg3(Tzc(Cy2UUySFgIR!GqdO5V@8mJ-v}V
      z<!;l7Xxa~k6Dqn9Wbo_OJ+5Wv4YBGdUs7<Ap~oQ?nvshyR0cl#G{cK>rhfDwpy1SQ
      z*8VS|;Pmd~9hek7Nlp{fX0DXyhFyc!hd?t48c^X!3(c)augVZSxB&)5&liQxX-tPU
      zN{`aS1($r3+8v3OF-x{C;<E<nFg4jw!jBLFew;^K!7#&dr+FvKb%>?n0!A2`E#1fo
      zZWj!OaAnF)gY(NP<hevG#{#z#3Pu?^_Cu6}V=6A=3b~29av0(j+&vQNu<P|tfQYU#
      zgmOkH?vl;si}q?wriw{iBeop3Q;w}O<idWM%i(2YtMR>t`aeIGy%r#wEfh*-hTqa1
      z-`5onOT7$g$}qT@6q;qphwZA%ao>SnfqY7T3mydFLnB3s6E)Ed8Hmn4I?*qVzBxis
      zoOUK}V;gAu;G`a<RTcuz&`zsbPQWpAP(%hmC#|wr5R`}Zf!Jqst)b;BdLC?`cWY=H
      zq31H}qp*J~=KX}Qiyb6%;1vmbjW)a?w72B2b%gQG;p;48R`>`VgE&Ks3}+FkFi+4f
      znSHU32(Qz@16TG&4UDe}<Ez3%5v#x~Qk`rxBw^Oj`4u5jJhX{(-*IshmtLZA6XWlz
      z`0eo0d7GsFp!x2gm(K2pLS?Ri9NAQbVX!K61J~Ud)XrD-;lT}OoyJYt<v$R)6-fmD
      E0aTQ5{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O>fgc5Pg%6It?i;p<lEV3Y0cUKLS)BP!OUD0)i?)YN-Slv<a(rE5|Oj1LDFF
      z@fY|H9N<(5BqR=8I3w|I5VOuUwnMn=dUof%dGmJs^Us%W04`(QLW(fEFJ6hNFIyc?
      z1#hYww*6RoZRPvQbu45E)5(PBmN4c^PYHWRdOG__;|_ry5Ju{*;|IbCc7)xL+28Lz
      z{MxSG{y`YJsT>vDBBV>@9YUt=zK}T_XH+GRG{y?Z;{;)%v>Dd4g|l1T3OwcP)^z^p
      zrgG%NPP-|+ZPBzPp}6U`xV~T&9Gk;Tu%~>&T$f~UXEnmofGUIQW*pHDi~XaDV2M`1
      zy>mTFwGV71b!EfcD;;@OD?j7D57=SCOrOA57F#7>c7)Aj2{Rrw_hl;xNz!g}UmFl<
      zGM9whp78gyx1rGuLVi~U8%H|FOXV2I*qg%=0fZ?>zK(R%UEAh*+#g}_2sWUrD6eK=
      znXsN5nZ!&jB%%nJM+K{T0M-cC`wdKB{>Ko`NPf%hcrAHXh2xRHt!Y(+Lc?*SSGR@l
      z>&Kc(<V1S-2Vwj8N8yJ;7DK#S9Ho%soh`*NUJHD3mCx8aSe4?)Ax1xkNkv}sd;#2J
      z=zW~zuR=Es<Cx$`Q%o9)250J0|Do7oitUhMzMEz!7=S5E8`@L+rIpNJ*3e$#T}w!1
      zKI#=(l<os~9<oh#Z+mPhoW>mA6VBi)ue!S%ylal^@^?@_jf&A^do)?h<6KB{9v2MF
      zN*E84;>Wy6^}JcYMT1;5$aHb>6YGd~@iqoc_n;+|4RoE|(%lY!Mdc|SVx^zpeT-n(
      V5TsBI%Ut3C&~HdQmxL>r`3p#F7Eu5I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#j0rX+qda2~D6sfXL4#B@_@S*rK+jNNQ<;La{}KZE{H$x0|rLfr7sk
      z^~pb=j_<zkpfi#>c1C={8UF{LeD=lBSM<A^G-=b0jt|+*-FweD-}%mW&i&=t4?hAp
      ziqAr566m{a+%<Y#nJqb{cfWVYaLw#R>CBt1YZmN%4eQ~8Wy!3^oe(sEJ!_5YcJ*@t
      zt*&%T!<v$g@_03KRzQpjv<w$)*E4Ky%CJf@7#aFp`{MWCeiqnVtc7<4Vq<=cl4n}I
      z=M8txGiEK>&r^nF-QcfqPv+=wMqrb&8@3FWR$D7pmSN|6{ZF)L9x!dwdr6?Jd);nw
      zN<bSf<YWW^wCQL?Od!ymoC;yPz_tw_L=Z>YCJ1!sh+wn&*QMh*Y!TQpX4-PRG(Rhy
      zD+;YZbgYmi0|t5Ey82P`=1f98T><m|E5MXQmMD!J3D{Z9sph6$i~i(Pgy{C`IDmr!
      z5!1aajogH7-S<<R2_Y%a>8I%PHCffd$U;^YRjI@15ePdpD$po`Zlo1MhgqD}Oip@^
      zY3KcDM{q2JqhzA))vtn%7jWE%knwAuB{yq)Ow8V<y!w*_b#g^sKBx?Jmp80ICtsSE
      zwpYUz!YP66^)M9>LnYJ7NhgdK1>z$MMI~7~pD?RI6NOue2>Os#k25-6!poG0Q7lTE
      zRHj!awE}3BV%CJ{S1ty13}KiYd4<ZR(pYkx3D2HDI)rm9myftstcEU&U<BuNWR%ZP
      zUV7ukybR+t);kr!1x$o6&bDeyTE|62ZnL~oGAvgK^0E#cElR0ZbX)~B9w?SPfm0h~
      zxC-qCIafciNmP?j^bMk2r8a@4*`mPih7%1bQoNeYv{Y|2Cc?dtIbXC)$@chHVb3T!
      zZt5^F%fu~d=e;>!)ETvr(;;z-Wno#}Yo^*-BeoU6(n}n3I!xTAG5HoaumMA>3tHtv
      zMX_|u!{$KZ<nc0gPA*I^X0SVxN%|;?I_|*Xcydd#uHPcmq}pAdw{qv{DB&&{xU0sZ
      za`j(Ws%a=8E+{Rtt-HF1*SoJa1=)?LB31@G19^oE$)=TFbmT2_VXR7{$SCS8srrqD
      zXkSsZKZ-|e_Mu~_@jzL}@sW=A@c~^=7D`T5o-@_hYilU_VO43y$=J4Z{DGh<+}?1i
      zes|yqMI7K|rJ(~sG;<Z=stI94)zJ0-Q{j9^)#&w4f}?3GPe!@AO6w-RW2q%<OD!Wl
      zy@VZ)(VpsgjLvVl(S)6RMi~J3gU?^-<WIEWFYMx%c*PjIk>HAM@I3d~hS-C>)euh!
      zOj*yQ%GkGvmSuELM;Y$Wlhk+U>?x!7OYB<4iRoqZO-D~Jp<jJ3W1x&zmT>k-&rcY+
      zaHxz|$J5c#GR77WPHB&EiKp7r{62ZDjx)uiAxMH~!d4MLm(b8Bf*26Z7!)CliZCX`
      zCQOTnk3UsGR>MDoYj~Zw2e><p8D=+#c3j6Bq)FgSyj96bw36x|b9zuuAsBeX#id0A
      zwMXkAb2nYajgy+6Lv|6(54C5024&>QkoG9udN`()@%BkArhNsTS9GKUF-^N!M&Wz7
      zB&L-V-XksJU;q7-(JQqXRfQC7*eqgb5xjH7cErUFbc%K)L<jG#PF_!4ylr-J+V8>{
      zu?OeHUUIPySHymDaRArFLEIAwpOfR2%xauGzyqI?PTasdJ|_u2E1VqV2!0pukwu}@
      wU10~u_!h($Rtc8z;Wss`N}v$O{5X2$Of^muKK4(2f`@#o>sWBce~ONO0GiHL3jhEB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-*XdH6#j0KHeuO9Nz<QN3CNG6ZHQoL)gW48E5TCGLTV9ZwqZ@Sv)R<$4GMpN
      zj*gD{Sf9iPpE{1dq%+{CkB%??1O6?J-@Us{(tr>9<KA=5cfRwTbMIgOKKc#7S=@;u
      zA~3mW+%xi?S!ueKe?Nc8@T|&p)2&;cXEmHSVgh6PUAnFP0x4y+8u?YzwG7*OU~Jf?
      zz@Vp=Wz&^7H%o5_h${jE#fIbghU1qFyJ_~Vojmx@-zz^p5a_>PIhKD>U^ug^5N*S$
      z=2v~!a;k-FSs+$y+%+{sF{newKmthtXh>lsj$!8O4bm}+G2)sZH4WSA!M(PzX;%C~
      z_EsDd0>?YCCEGTuhP~icn|0Ii7eA?(TRsa&;8_7}vA*TsPdi4PM8+{FaCq5r%#~(+
      z!*p*1btjh_6~itY)Pg#Mn=!v;k;2iSvi}piz#=8KK=Mfm1WrFim?!<RWerqAAZ}D7
      zai)!1^)1^n`8OFtv>9}INi8%?VJ430ePRYm>B!-XK%#2;MceQQHI&JAC0CmT4KLta
      z9A~LZM^R<c@uF;oW_cym{)+14c^z|@CqcrlsKQhGP{Z!ag3ilMzoMgn3+$<FI#s_W
      z5Y1#u(r{77Yj~Z8O3iQ=eCn7fWsA~sNk<W!y#roz!&Ac~Fp?>iy2-cGq_CvpO<X2X
      z&Zz5qYnIIN)QP;sBwIWu0uw!5?b4Ka8-C4ngW_UTj@(3v#2Xu%``a8&BsH!XUM-mQ
      z6yDKsT~@47p@qGEjymSYog~EuM^>2xPVLF}lm>VF3URCn%&Qi)9eWP`iJo;QT0<G@
      z@(5CaRQE^*Ga!$uw%TaA6?4gw7eT5A>5R-PpqCuSbXAO;%<&$tPQKVNwm-_JkIw|+
      zNbq}rH&}$HKhA$%27Djl&N}@f{Ekme@8a-u@<<Cq+ZcF^@%7|0yO{j_7Zvs#-$}&y
      zzC%!xp&w!lRUGBcNC1E|j&VgO9LMv7muXIfX)e<zN?X57bFzb}sn{kl?<uTw;MK<J
      z53v}DQ$&pr?=&(Y>aS$fN7SXM7P8YV<iA5-bca8)SGn`jN^V9~(-+&xweWK6?p!Q4
      z9Bbj#!Kv>tG?R<U#X<{<+n`Hyhe#2~N~b6j@F@=BGYa)NEB}Hw<CkRk6>Iz&S$u<8
      ze2YbXr2?}7i#F>elyHR{leE00SdSvFDv2_763e(s=0e`KVI{YjS+*g)SIIU;WC_!M
      zK=89yMi<9JN~wqB_yajSR6K%Cq}x2wSiv=B5b{LuEgODLt$~DuZ{h7u)%~;pKPe<#
      z{U<^sfmO_h@wqTQnmqC|-2=gb&_`XN(RSz!+zdnKNLi-PAEUf33*E)Ly%>LXVdx=7
      U1n;R#xA8u|@@gyd`2Z9D0sNz-FaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu!A=4(5Pe161w=&w1^fZHxbe(U#Sl#}A@Sg?l#!Gy-A(Bd`85xIfFETXb^+b!
      zrR{Xy%zN|Z^XvTsz%|-F3IeT}T*_cUDzVzFf*Z0<ziK5N`Pdhzrs+_cX)qkmNI8MZ
      zl-zwHtu!vO0+*fcW4_0e)kf)9hP@2Di#K614z+rq)xWjdB-eUmR5T&h*vS}l6bus=
      zCvM~{$$78)EKt6CQxrQLnT3yIfp%UC)9e5~ssgn%&z%OtU4p45lu<Q*s0Jp_RN}e&
      zk)2ESpuQbCb%y0=GiAj^7iDjOM(1VYOCC}lMTu3^*C7v9{bl#nS{ToBOR=T3{}WF@
      zV2^hN_`He(cv!E*-`qu%(zuL6##I>Qp@1WtFy<6zfBtHyr}zfW8C$?bdN$GG8{c-K
      Bh(iDX
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ{hTT2^37>3_3CfO2WJw{VoPZdOCX(-YQN%6+mVhP0(n~U~pT!%Pi-7S0Q0sK>5
      z1*CZ2{+#}R(swqCB#XV76VLa2@67!Edvgom1vVWN1S_A_SJjNPn}jC*(QKQ(j^d;5
      zuKp66z;{p-Y>gvtw68<ub+eK?RxlIk&?v8`!-%yXj@trxE0{VA{3up_+*4knODDhn
      zyqvxIxhW{WGQNoq1QXjkJwfp>IM)?S;9(UNObVtu#@FwX%QGFGsxwau<~o7P28wOC
      z&kl?6g^2`fo$;KxtF#2Q?IGeRzu)Y}q4E2zou2JjvmNId<TC2pE~#l06EyBA9^p<e
      z!r+??l^K_<vCaozvXZNki0Nzh@`C!PIxkwcqE$hq8ziBtUmN=l3%ScZw}G(%-hh8A
      zSVjqD&JK44JV23aJ}Jj4Pxd$q=Tc*Usp}M(=2#&L>=SNbhO6oj!Yt;vvx0e!R&YSl
      zvgO9^01J6To6V0>!{U(24CJwhB|5CDp1F=0*@ku+yUzxAl$V{b=zS_%A7Xbh2ai)3
      hOYsCNY-P2pnRYDVTHgAR5kLJWqIKDb8w^#z(|@#=n?wKr
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=U2hXt5Ixt~cpY~kAH+$(N#nGo@dx0h1zPGfG~uf*fgph*k*KOR_Ql=GSzF#U
      zf*;VQsuet<BK4_neQ2d(q$2eP^hZ@ab9XUz67jNockawNXU@$2``_RH09e76jfBGD
      z_wGZt9OzoN<AsmQSG|S~!m8iyhIhk`cK2;q3MWmH*D7E4nxXCtTq`8&rbJ<3a~SHD
      z4g$BKBgBfrXb`%gR!}=ETJ?M{TvND^kE)10fLeJgRAF1ey3(raG)8dD!5EG!%pDC>
      z*dBwzgaaEXIZZhjMN(mW)ARN1?*5+c+;jJulr^>4s=3W=x8uoo9JIpkyg*^;fSyAx
      zvAtwq{8Gpq*%3uFbU5S*&CeGOAP*%Fbs{)al#4s<&uqBHxWmcS6-M%fszUnOqnd7q
      zUds<`EGe9LJ<RG>|3<8N-@yl%Q%HDz8XqEWV|g(7%}O{}z`JP_amGeTA^VoGJ2;DT
      z^rqXco7r3W4WlpA`)zIl)!F&ojcT<}70OQpc}0*fNa4l)EeEdlsBCwGO|>38;IpZH
      z23mYr`5nPbg)MHZ=Qk9lU)$Pr{YE*8R&0E!Fl)39gg3fgv#vWS5P4=dnrqH%VlLYM
      zZ*pl|##Py}Yn*ND{QyFxuq}#jIQRl<l3R7~HEyzLx82r0$8h$jqG;{|II)t7K-}Qe
      z?zXy}n&uD3-JChJaOb2EEOBfj{FxK5WUbAKi_W*rn=z#Me1~5<%#gf^V(BHEqV)pf
      z#WOE3`KPHk!RHhafLlaaXVn(QaR<|k<f1xcFvBk*U>0*km6I?gcs_|!F;AIqxf?D1
      zg~>m7NI<}oCV1ZfI#EIl$nC*ABO-E**$K%mmWHIIO|(Y3x<QzUvig#eMu-q|EqS*{
      z42xemgZeEag1Sga@AYtcmGALqn9L@Ar4y8yecD4I`#V!2v5^x2UF?$XAweGv&@RTb
      zDf&>xN2C$jl|!^Yn27+(LR*?&=;7mwRzy9WvB-T~xJ&aHtB3O$>mdD)aPSk2{h7by
      z6GMNVT@tR}^)f!iXC#-{B?^%qm+?7IBdpCDapFP+t9%aoo8|o9j6U-B7veu3Xf)Yp
      zN)jVQ3?&O5W37`#xMyGC^8Kmxm$)MB^l-h0uX@-#IQriVa5Vba7+7)J#Pi$#1BdiR
      Aod5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=+int36kUf-8H%I5mtv{KJB3!Pcg0(&RjbrK)HJq@4+D%ih5|A(UfwnOsy><c
      z5t=9_n)m^JlyRLi6oIM_9QN5~@3q#x%+FunegK%mvW|d2{E_*@OgmP=tK07L^fkL=
      zIqr(*);xFBty|`n4ozUMin6Qe>vq|->h13W!J<kMn9Oy8EnALbmMkALBhc%(rfUg^
      z4JKW*E4F)C;7r2LB6vG&=D%3eYXaIrwP=OWgWU%Duty;J52Wd}J_rmL&=Hc>kbzzV
      z1^RP##k%8d<*oW%Ghe2#p<K0Kme<U>E$>aI=03C?fdgHFc6N#t1|8Kifw8|AMHwZ_
      z?dXfZRARadyCZ<G1I~`5c(d5n<T`U?gL<EGq^wFyEXiwl@mayDxpuYU=-4kXygk#U
      zmDWob2XR=(A%ThijMBgn9A&Xyt*GXyC9-~xrwt@AF3?l;+%RTvOvkLi$Tm^?d<{%u
      zA6FsI-;#iy*vu|brW9~e;?K$a(=uvKAh4O0pbsAKEL#;isywvBhO8^(R=KHmr9`If
      zPL|C|DeZeRI=E#KrJ>E8_3U!ds)ulukDLB5<G#SSzxem#VO&C1F4uy<XtUpK5E)<Y
      zqJa!9%GetQZi2-G&05W>6a{AgmgLX64W}t3BOw+!r`4)gFIfE2IJ?NsH9ICt!G11s
      z55MC8G`Y>n;(qgA=Sv^LJa_T7!3Y^QkW77rk<`ARKRNRSgP&B!FwY?(0Lw&~XVx9`
      zV+AAh#Qi*sVvIK;AcAqCN=q^ZXh*TP$&=>4eCthq#^6U90Z8zma^6#bh9A%b<cc9i
      zj}&>C(E%BqOm#>LD{r231%)u?N3|pcl@LkHW#ZcuF*M%d3U!?xi5jJ({`V}N$|l}4
      zaDYZ)qJdO*4<563bynxHPOptH+9Hf1jpHPcgmXIxYb2MwjQNDSC1ENy*}w_OsH{`n
      zoG-}v5`%cfcDz=cNgt!d86)QzG7=YO$u3KZ;T)|Vde7qm&(0=JaL9jn{3gC-tKPNM
      z6l~!Ki4h`(kZat;npfCB<U1~{4_*0+d09&X*BZFqz^(52eo(;vd?QU@f!h=sK<+ov
      CnMFAO
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      tQF5wVW=<+2gD|Qq^*|0_V`N}tU<P`Ofq@a|XjTR`5Q~8wNHQ^S0005+N^t-H
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g^W4g=G;$K)%ExpwJ=(R6Z<<2x!m-i8UnpwzQM7(C%)wTVnlHng}GC
      z7@z%7#xvVe=z`Tg%+B6D_nvdl-0831-+lm?!+HcEfw2SQ$Ve1rrsSGlIk8bH6w0q<
      zdB-r_m(r51;n{8kVS$l)U=SnFa_HpJj>(d##!!Nigs+&E={*%#n*0xZ1(G+cTq5nc
      zrj<)h?Fxj~?X1+$gmxVf=mNdfTJ^v-2wc<Aj23~;lxfNBQejWJ?~J{?6zERb86&@I
      zxTboq2E*RISrnKENW0P=Hq&P0b2bg!FQ|Hc`xhk$G-vX*MY5jBsSBUq>>bFA$9!$`
      zV@5ijX<Nkz1_Z{>ORTHJZQDzi9LIJ&nXN%J4B=J;!vdrKG+ak7`ZW4*TSpY50(wq*
      zYv-ctbyY1^_%Y>dtJ+QIxQlxN?abV9?ISZQU4g-~hH4{p_AS}QgPGD1LtLQMsb%yB
      zJgwn56Rs?l@}596fC)~UvP_MSY2?jMv^6@p705`diI#5-D{B`xE6S@m9WzJ>L=I)S
      z=%<M-#pz=Nh8tB7coiJeq9ZejnuR-tYZRm>-893=Mx~~9BUloctv|CZ>xjK%FW0L(
      z?#HTy1&VeQ9S1ZXU}_|a!=I~MX<7ACVBpg6RX-(_W6yLv0k5c*wo7hCzA)8&8NBim
      z%&2xS%Q<P{zl%UfT{rHUx#s|JZR6Vq#?|+(*z_s1m^em9EY9T%V<B{M?M9gEEc2$J
      z@n5PF^XOtETFJw8BGj+TuP^-F4fHUZw;z3c-efGyw|<{7%YBHE=y!<sv9IVj!Qf8}
      z#ZEACiaV(|H{-{cjDIGkqM(nJfd%F*l52rAmoS25Uxli#v{Y2|QQ<W1lS`<{;;MQ~
      zQK{-tQ*1-iCzw6&PV@7h61RGxE3MX*#%>?54zuwPkBC;47x+BuYVk5hoE*zRjt$~A
      p|H6^PN`Ql>Tvb2Mr{Zs|c(r=&ON$@h@@wi9OjWnQ8Z$z8{s#k@eq{gv
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|YflqF6g>l#(smV89x8&UsC_6!1bl!f1%YY>V-X*GTH2wkX?L6L*64rogC+`z
      zCdSYHDC3#gwa|jt57RsMaqhWi?*97y?FWFHSPi31VEC>1&P>;2q3&AVhx9_dQu**y
      z)@o)+E?6a5^TG%T3^ZpoB?ug=6!TS!Sh*w8m@zHTF=N@5H!Cn1|6j5nFPnBLo%dYJ
      zE=?!a1w!*qQAW{@n1L`1f!+Y9IWYo(69$f<L!c{X*>a^`*_7^@xmlJ1r*clgEU%lc
      zrS5?<<ZW9uflDpC4l2SiB4)YdP_XTa0@G9P?@vhzWyfZxo_Jzkcy;rwEO@MsK6+n}
      zRnKzlS{P>qM)n})RpE-`<?Gd|<9f2#NR46ugJGN(7&=;K1HI^rQh^HwhH+8AC`oT_
      zk8v}pKwOo7S!vp-tSbht;+jB=mCsz~omG^sz`4KEH1_3hY&yaxNf<~XCD2)IRGev1
      zvysnLaAmDt_5=o7a+<b_Vj0pd@df>L<OakO8yTg=O#`Dy3xwkvnQS(Z4P$~}&C>Wq
      zO%hJ2vT=d-&H9!=+eU^|oUN^zBo&dRzbtL8mEUwpdOk#scW;}~cp|HsKQJ(Z`xMB}
      zdoFc7qw6X<Z{Q*38q{A@i>AkI2*opge96E99&t@9yINO$Ng^0S*XLCHG4~|z)ZKzy
      zwA9x2A6&&zH7&;YVD0>-IgQ$QTAj4{k~|~4y`f*lyOY;<5lxD(IG#-L_)K3Lx_F*K
      zi03G)lZYZs-x#{-8TRXNk{RmPt?`AnPNRp_R0@6k@24-s+Zo-lNV|=m;qMTylV5Or
      z2j_lbAi0B~U4CIH8Y5p3PkmyJ&!CUUzy#|i*=vHBQy9W+%|hWTE<TGsGQ5r(>?PFu
      z^HejA>pLg+yN&H3cQ69XY9vG3odJ@nAK%CQmPX2xgHj`=kW%LdcQE;pSD&U2wxGe1
      zep*AE80p^84Pv;9dzy3%)3n;@<+kuVgz9W7diGGN+^3*^ivMb)VARasGe&jK6+Zpy
      zp%~n`0Ar4sO4NuNa$pCGtsr@B&zc7D)sHmBj9?jAO@S*Kz`Z=6*^^elSA4eD|Ilsu
      L2;H7)?N|N)=JiCv
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}YjfLF5Ir|h;#gK`NYnI@M^h-RA0bXkA3)kbob+L8l7L(H5onQZ#Z||zk>w2j
      zPkewG>dwFn!)Ja}hjXtS*^*<(OysM(yJydy-PJ$u|M&~QI!Y0Y2`s!ZkIZz-DzzQk
      z?WA|wwOS`{SL&wQcB}|Afpb9*-zYHIvMc$fO_1COA6hr)cgL>V?xw(c{J$JMTh**r
      z(s|dh>y?c}K|tGXlr0_Oh#82$5IEZd2|7k0@PUB|ObVRN*>!8TT`OA7W3yPb1ZHxL
      zl36X7jxFDNmzw+9ZV4=fI0Ypj{is>3G^oz&ngmjn4(1k^C{-JEW|@sA2F!cKH&)4I
      zyngTJlGSwWM!glm1%WGlh;13T+i>&kX0zeAR@ryeF^|Ov76dMi*4DsT%;~KBl7VGh
      z7BDK7yVYkKB-9gC`hP67oRX(c3|z%EffytAoyL(}wjAa>uEZaVW7|fQtw<P1A|)`@
      z^druPRP_DXe#dIHtFFL>kdHq~6lvP3SJ<^I2c=*+_F;!p6`q#;cCl)g9$6g@Mg;2u
      zmxIz|>qlnQF4G|(<7Wm|k!By8$MM5d`p_JsJ{8GOU~!0uV;`BW<uQ?+`oh31+-9qr
      zzJ(%&%H8*Etk>|8JZY8*#3_$wWKCZQEC*}yH42opW#A6(3Wy^AGXjzLK_;6`6eO4X
      z(zYWoc0j{;<M5C!S)QsEOVPcwUR_!|agdQAy9OR1=aV{azywhfFQmiw2KKPehPUiW
      zrsG;%o0%RG$HsKbn&ry5xpu;C4zGl)^eLT#mG-*lqXi0nZs0MVaMhYJ8GqU7wpwfj
      zqV~~WxE{3!0cuxIpmxH#%4&Zy@FQMQtbC*Gl&t%<{Dhndeiv3{UaWD0#`!g++Va!G
      zliVq;7N1eRz2LpHPbXL2K~IXeIF(HC@f+{PaGK8<Xnd|RI?32H@76HQn`JK!AJRkq
      zO)Gq%PG>O7XnqMX$KP|j)A)8?Wi0bN#+&6oA)Y6H$EhwZ{*C!$7fbK(Q7*;9mA8ne
      zex;AcV2;SZ4aVJMt{cR>g(cipEF`|<;<1<`!xenWT$<ddf!u2<_ZDxYe^lm8b#c94
      zrmhTkDa_^oaMUj^%EUJnF!$(xfj<ueZxeWD1n`&GP{3T60pQJH#`9f#9R_|#;Oq$C
      z47Pi~J43)vDUob!Oi8h@*u}jt^e)xhQ_xAz)fXd%3?2}g;dsdOQqvf|;c1+n+|;3T
      z*Xb?&r@W4T+wbnAy3eaThUe4Eqsf&XLXsK{_VBx32<r`s2lZ@(8hJ%olWRHvT2M0Q
      zNL;RguGCoR;#pXXm-Kt3kiEgzeKB+{(X1k_;{ZPpTa(*4lp{?1Rak@a2;v^RfT;>C
      F{tH~^(DeWS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(OHUI~7>3`kv>j55Af;GQkW11)AvDG%rXj&gN*XtX*~(!!DThpF%v?}@kb8C0
      z#Dzb=ALP>Tp6LX!fyB+Z&2ygb{m%UQ^W!Ig7uax65Hv5;rE168OCyt9wcqJLN6PQ#
      z`!}CG{V_3N;Gig|Wvs7)LHp)|U@q2?QNF9AnBZ~uwLlI9GY4T1Cn`u><)^w-z4+by
      z{<Z!^P<~|slXL`An_I4+co3fH3a0R|iV7YGW_u>k@6+L_j*ir+uLbkH&|?9`GTi5f
      z#pK+?g3aFlHLxeB=WNzMKZ#5**xPb#>AEdlW1?X^u;u>tnPY<19hYx$N9R%a$)?MV
      zOV-%nOE6-|Q)$dL>UZ*j#%=YaXw`~V1eJc6MxK6a?1L=d_nUTYa;$-^@E;47P(qor
      z!(9Q>D00n5=2+#)OU}Z%)EZ&tTZYVXtPlk{g!eJWRdo#E5$3tGf*MCF=#aE*xwSpQ
      z!la?g;)j`GaZKd~@>s-UI;^XaySj{QLp!bQoe`c)%8q%-&19=%>_+C`X(r=UJi{_e
      cS?x-${U_q{N$UqjJh>;Lb=in(3{}ATHLm5JtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4-m#Ii*F;?(5QqRf&?efQGDq7-%p7DfgEutZK`Ub?=2
      zQdVkm2_pknaz<)$HdqNGgQ$iNx(aK}FrcE~{L-T2RJY8WR3HbeSP!I-jgf(off;Bs
      V0|O(_cvc2B5Q~8wNHQ^S005(dBuM}O
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxO;giA7=AWwi7kQFP-^)S{BBcd{kp+;L2=NIJygq}r!-yL)Q~XA2GAemS!YB>
      z4<0@Eqa5E&T11<}?!No(v(NK>Z1U^(_a6Z6;h_qJVQFX{nT>#3p>K=#ji;gM_js?>
      z9db*kNHY{7fMdG-#@IW>P>j5`*JyL!HXZwe*>yO9gJ|2~eqej<tKG*8>>0z%w&w=I
      zbVbK>LY_I>srU06AGa7XeW}MV-%JQ&lVQq>0%6c&z=bg6>6Y!<;t_*UnLJKptacdE
      z+g^|7kU~*I0rL#0O0|;(!xas)$V+QMgN7M~eA9OMi}0Y!{g-iqdegH^r(;sml<>%z
      z76UtASV@u`*OJ1`_PK~lNcF2!CqtgbHQZ2fonbDa92#!o7DLV&aO+*vC#qXQ;xfnS
      zW9lX!i>;1O)UMdo3dLb4+QR4N!KTFLo}5_xP*BeT6~<Vf@Vl+^lN{DjSFypcIBxzV
      zn}&ugsovvn&Cn5h7sFswqvbg3<VYxvwio&q-?8Om(*Jpkbty^(qJGiH(7Xs0m&nf2
      zb5@XpE}KTSF55_}#1(LvW}SBXgh|nwH_k9;)J{<{)=yFXOfH3}<h3--do=G8<!d5&
      zgC+8;#n-Tm71|L&M9(5i3MwRU6{{ne=g}TmFutJt69u`@D1F140%?4ri?QHrL_DA@
      zY!oq!#5AIz%Of!bw{eHi74oI&q<Wr-B2h^awXdlCpHoN@M<j8KGEO3y5|RFuk=9-M
      NBhbf+`{Y;f;172>>fHbU
      
      literal 0
      HcmV?d00001
      
      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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
      Q;7=#~z+~VpT;>!113JXFX8-^I
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~`}b6x}xj29lvvpj1k0X~hZ&6fIgmKx)fJO`Ae(TCjc(liM(uOtNMsEb&QQ
      z`tGx@{sBMM3RTzg(FcEkufF=|FL1f<%}kiYP#(DV&YZK)KKtys`QzVTegp6#_6#Hh
      zCibj-Yu=Z3-E)G2`CL)D0XGG^T9XEn0%P3+1Wx+WbFA`~^n9o4KFF;Kh+6`KD^=GI
      zEH~J)%5~ZM*Eb{o{QYf>mD2u!AIOSE7C4vhj;miU3iK^Gt`jT^^i0oe2_#plMVUem
      zPMR<=C@_?FT)9!N>`3pvwNsV?!}+RBIu=Rs96n42yN)k#YPwmjY`LZRLf|=WX>n#t
      z;f*Q0Q5JBmiU!fN;&B33x@13*zG9qO`_z`TfYSH|&I(Mm_j_9&+_7A%Br6oW6{;9L
      zqZo|~^!jQB0w+o`D8!{ZKRxrr>H`pX)<g<vCi@-9lVLC2C$2?#9y11}IpCNSy1t1F
      zvJ_eo3Jufj!Q(t5QcdaFUoZA!Duv5<!N9!0cnr5a&ZI3lixGQQ+Mh%vuG_ZsIm3is
      zp<Uy1Y)__XlD_j96{BTx^c!hLb{3fJGQ;C!B+^2sOn2!S+o@UQ#bdM5cpXayn0>l^
      z)~#F<Z-ACI$ZSK~ZM0prrZH2T-<u|`;uV2`T2z<1bxgel+m&y9r|j5t+3|cSkyR`n
      zNi@;fbM%U?pp!gVsqV|@84d0<?+Qn9IO9<x^}s35uetS#^ekn5avLZ(CD#h-9!Ilq
      zT-;Jeb5WheWg_$k)#gWQ;7+7&>=V6FcgjWSsgGwVg}b<C;O%z%YGF+jaG&b$tBYy#
      zk-(+6CpLHXq#Z<R#n2a1$YZP@+q~Z<)&8N0ckv#tD63YJZc$(^juYK3aii+;Axpyb
      z-~$sM;sP5}pOX5_)y&CVz%ua?URGsnRfgzir*om@Vx*41@_1z8wz5^KP_28mTzB+s
      z7zwE1FDpYbVpY~WX<LCTCNHp94}S;}ID=mF@nq;zKQ9hm9o!EhsqR|7Il<EcSHZP6
      zbBLiIbm&w3pCSOT&d{3}=FV&eVMId+o<~D~Wk#ylzD)KIr#cbtkwifwj5VV|1jgeu
      zp4P>AE%MzNVkCK<(6n-FLbYLJva^Rc*9mJgy{KU)n_(?jBZOrt&Xa5c1DJ$TMRhyH
      zRsAJ@#KrHqCZL*CDgmCxQ>~bcdoIk_W{i3^@)(!$+21jc9iDAqF7p#E9+4Vjm%!)b
      z{{{N-B};upu&-l%k7zQg!y#Nzq9=ti1Rn@>BQRU7uZBghg+<eu?9X^jpn+?hY`=?v
      zr(4~paUC}__*JZE@Kvl4v?VUft^e=IO}xdJ97!Z_i#ysbB(hC)l{Ry~BL9#M*?5f2
      sLp&JXYTz9n-*4a}?wZF2K5k&A0oh6QPffMypt+E00wrB;7Y<ka2hBzZ3IG5A
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~8B16g|`3c41k*t)P5~qPC@FwFo9cFa{7Bo0g;mP@lH#1g2?s<94gTXa0nb
      zKJltCDTzelo5tVZlRregvs(xyAw10N+&lN<oU?cL*Wa%v03KpqLx>?(vEEu{otGM}
      z@b=A&?QxeZPuROFPR$bbvQsMxo4XoRhCV;KYT3JHzF46!4H1UX_8RSZ44s8cZY{gI
      zna?pKvhA^#_gi4-SS(eAExaWLB^KXeP?w!D*TK+jpa(ibWYNFxBv+pS4IK=<Swfp@
      z)Qa5Qw2D>EFpzahR&~pAg|vOA4h7v*&)XAq2CWouWZ<#a7XWU!jwj`C?10w7l>zZ9
      zBQy*%^!q|IJW(~*t@>Vpdpd^DEs>2F7{wT|<8K;Pl>kO#0jhJtFT`KT_z45IWT;}5
      z%hJAW;0~sUSzWv*>Lgo6!##%acG)kolBqERaU@6$&w1v$);`U~sTys4TlCKRG$a`&
      zujI|pLu2N0+Y7WLX1!LuE_Q8RKJ(}{e|KgK2E5O!M03FetqiRSgI;hNZizn^@=Z@%
      zK29@I06d^UQD}u}4a<3<FF~Qb6LPA$$TAV49q2j+dwB%o3wl438A3npx_>!GPZI;a
      zSKiPhwvuP*$;cm09AWTc+7qZ)^wW$W2-p1n^m=i<Rp2+FiBN%^V+>LE8#!fOJ;dYb
      zsG9zP$RQHSeE1M!(oROh=_YP|fRU1B6XV+lVHOQ1Pd@(pbD*-QI!&jasZ<k_-*C5y
      z``<DB$p<Z|%=m0q2*D~5SR)MUq(}zic!4Ccn4|Mky31e#+sOO4mjY}p+=LP-ij{<S
      hs9ut!=%8qmR92|^68&S+#CZf$n5C1{{E^>(?msBz4B7wy
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyUr!T36vfY!wrgq;1dA0FK@)*uDC#5H#GqhJV@z86;-6$#CheH*EScQ}{8A=9
      zHSxj3S3iay#CT@AA#H=<W$xU`xxahv&HVoR<0pW}c;F!?u=7Qp$a<vw#OnBKy=hKl
      zppRYzy^wi-@J?DeP_eSF&U|$o>(F?}3p|{xI#5Pg8MHIXxmI94QdY~Lt8B#D_sy3A
      z;*G%UUTC6Nnz$>2L>1P5ecb=^;oGr5@tHO{ZV1e5Y<30md*P8PVFuUADB-HWTuU4E
      zHW?f$+mVNX5?E-3J{w53VV*ta<Gzjrp0p-?UOwHfKxJc86-d*ow_~eKZ+ElnOjMkS
      zMS2@VJ=ZvekIMvV7Zi`_I(-|SI-ePF*%7PU3C$LKnM53@a-m+JI*y(Otvb+(K&c%j
      z)>r%5t!Dl5dAHpRSObURrw~|10YyfSSq@i_=bek^S?0@AM!{I94Ke#YmCW%hQ3^b#
      zxPf`z$|Di3V}Y3iEb?@K29-`*tZfZ(W14Wl=C4!2(nysNsK*j+lHpj@jMb!NXWFZ6
      zJsRTHG_1{{P6}Hc$<AROZl^Go;tuYzmBX%N*a?gGrm3H3@$-KyI+nAzMpHT5{|8b!
      BvfKaw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hO-~b16o%hZ+778jzARQ0q_BZPXb2l4hE36=(0~cpM0c0rrd%@2koiFPNi1D8
      zapA(1aqIsvzIQq?ZBsV)Yo7a@_uTpY_xle3J6Lm&6V$HMt!hNtO+pjjH(LI!^327N
      zzJGt`>YLaEzJt7AaTpu?E|`gQXq4B{VMP8@>p&off~jWUN3rtbj`9*+IH}AY{e1ZI
      zOHh1gd=u{rCe}APf_yW$&?QXZX&EIv5lpv@uaA@Ka~+<kb59HA+JVagie<RZ4)gJ)
      zi3Dry;cR1C*b`LN`<SQvZsRl#jo;nd=-8?iTXmjcuA{E4l-dR{L4C~S0q*QF48Gc6
      znQ_q?t9%5eE4V6&*g<71FQ^WxM@1`Ev@9r{21)4Z55~SlbxecXHZ*Er7yP&UT_~W)
      z+2JmSN#wca({e2HWS6sWF4TLN`j#To97{xjH-z6}hO2TP!Yt;vvx0e!R<KXfvc>vl
      z56?yoO%^{$4GVoLGmysup3`An)y&mmWE<M4Z*KMQVpMj*OCM9&N+0_#bMP{i@hV<n
      eiKVP|InxeBd_8LY%!pqeiD+FmVvV74Sp5fKgPR!u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&O-chn5QSgGNg^@+o2Xd`y3s^1h%1Q%B#96SDnw`Bj?LII(<41SqTpe?f-Av=
      z2k;nfynt)5CJ73H;G(O#ny=og>etWb7XaI+<dGq)Ux^!0kENFwW$)@;eIo*OaUzTe
      zrIn_0>&a`YBAtgrSR25B(0;ue1kxA5zVVY#YWvL*W@2fS2wZ7m?mO$Y33N!9Y(+Y@
      zLR(h^iOha1zEzL!-yaCMJ*Aax62>;FF2QL<7qWmcOchbU1Yx?Tv^+|}b7@Y+c_0aM
      zy~tw&!8Tlv9vyqBVnVg|&xIO<(#8-TEY!C~X}?i*Q}0shJ<lVBv7h?=>^;H=g?^M6
      zPaddrqLn}YZ7XfXDp-quolrp*InH^mG8pH>QkdXa<d+@J#5r4g!sO!sndVqv4A_N(
      z24?tH9734I99OBpJjYa^$z;mrYMW13_^r@p^Ugq_Jfubn%%hA&)*vi#cLvK}7qWXo
      
      literal 0
      HcmV?d00001
      
      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
      zcmYLFOHKko5PikR0RoE3#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
      HcmV?d00001
      
      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
      zcmZ{h&rVZ87{$+5+FnwN{4G{Q1T_YVp)sx$!Ulz)jSCB1!D6^h%9zW&<o*#@`WEbY
      z0#{93_y9Zx4?;L|dqZv;+|0~3bH3j>Gjo0W_aA_Fc;%oVnER=Isb-|zBsB3w^Q*r2
      zeD3Pg*aW_VqTtQo`HuE=sJwQjzt;*TA{`p#b#xf9cYpVjK)wjZwgNwjl^=JMm*~>v
      z>#OtMHy>sM<qhMTcvCR4ywVXAw}KzKf)PBfqJl?)@s{!Rx8&qVhkNSC(}Jm1;L<?R
      zhIO`CjE_wum~Rc{%->^OP+RVwd&=)N+i__8?)pl{+SRPxG*g^JU2BnI@-ji=f##fU
      z?>G$3Y@&=fXNh&*p0P@<N+L$DJ*XGd^XOsFq6IAoD(xT%UA=AWBTVLRwr0~}35?G#
      z<!7RVGG~WX0i!5#&Bx?e<<5J~!nxGwVeC&T8RuA`6!=K-1}3<w_C=V)6e|mu=4b(%
      zR9bDhvD(ATFkzeKJ1JqdugVD2V-`=yu&jE<+GS)L+G(u5?cwP#>^qy<DQvMXyN5Y=
      kmcrPIc|50;#V%ynfru}LsRxXB_@9WDWg{*zQ~@vV0G>OSe*gdg
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%TC)s6g@W>42G6Kc|VHSB`k;#i&iAc0t5&V0a7gX6Eg~f%s3j4Bl20Skh<sx
      z^rNa?+u;#Yp>{KO=H7G9ocs9o`^QfJd)RVOBCOwuzNp1ANQ|<B+PNH@h`>f>(C#T0
      z4xyX@LZQ30%g&t)EMcOdw6aaYSfzSRaE_uI>0u00GZ@DNVYa2Tyh!dl()gkiO2T|A
      z3PgA<j7r}_r(<tbOxSFFAfZlJkh;r!r&3EJth`D(p$Z7!DuukbCxcXfn{B;X2<BNF
      zWkT=xA&@<*A|1P!C+v*=pYfdOz6jOLknSacuvk!IRG&o=zW<+`JT2E#ex|g;?+AxQ
      zwiKC{luhC&6mk5n$dL{ZrrN5jg-s00yKMLe2Zf%Dz?=W_W5f6B&3ctj9%-)HH$ulD
      zw}2HADt}`s&LXYF#Rg$}wDGS!f75TT9VI4^Cn{SbPJLa^-89|V2Jay+G<f$Y-9J8E
      ze(kfR)VuS9$w$7F;PL6P1&-n16w`d0$w6#C0gi*um}O6yBM#d+_I$xY!Lx`ZW_iJ2
      Vnb9SzFm@GdZ?Nlp-^^lP{{Ul*^cVmD
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hOHWfl7>3`kv^}P_a<foC5yT)AV?)>pVZ$XstBHc$=w>)h%9wVJITw{b<jw`F
      z8W;WmSFHFs#&=FnNG)|U*JqyZotfW%e*OZmi4_ky!K07rvuZ@zPeK!)H(u!Tm&&TP
      z?rIw!eD(FG*aX%?UNC=yyxtc~L^?F8)6!u?{_WAeK%NUKdx4E&W#g9WB)U*pz5M>;
      z>f2*MamQE_?+V7&)?0%7UhqMeForv2lyF-x-ZWOfO1h^yJW;0|EtqNsJ_{(8;XGT+
      z$7d!ItTu0C8*z(mL3OQ9c9d;5j^ohS_V#+q6|TC%)6CP2+OAkC9K;0m5r+r3ld~}R
      z;<9DNd1tKg9T>3St0dwjsv~(pZBRWdT5_UALFqV1LSG*m_Z$nOf9k2rjb-p6{A7L_
      z3MjJoILqM{@*MMl*_OGo#a`GK>OE90Qe>QMi74=l@D3(8D)%8wVu~{-m}ct)yCfZ3
      ztZ(#ici3>i;)khWrcY%C@|eLa9nMwDTt|%TLVNX%Cq2v!%U<))n^d;c$F5}_7E&3H
      h;vVj^l+!L|+J7QG7`DD+#P|P+=v*%1GDGF?@Gt)FpBVrE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv%Wl*_5Uk!OyK>lNNkXy-Zw|W)!s5aKPy_@aK~@kci6xG+W)vnecH~E-@EaWX
      z4UmYCIPd{TT=*bFd2AA5I80AZcXd~H+24PC{RZF;ZnRMoEbOTR<tEzCVv`=a8~Sil
      znYfLHpl?%w3U}R?vpwynZL|dQHfkbwOUFh9=AD`an&8AfJsl?|3U{785y*4F+<Fuy
      zsR~n11(|Mss5|$5{usO$boR4ZV0`ikmZztO*!+{aFX-;a=0K&|0*6)LagNB=0~4Bb
      zO>lQqg&p^+CQj<do}jTFz1CgSG4G&{1wnl@_Bs$;aNuAr_m&-;MNiP1noz&U-p+Kq
      zT?jCkM!pI>MNue78Em9)Ov3sKZ>che?(FKcSXZzz8dq?qgvgP_yn@w#p(m?Qw5=$M
      zef`wrU&blfZs#KNyK^m`ChZVyoT1<0|4>7hhg({oJMzwPeVn5m@b!xMI`7`(3(ik&
      z9$|5E>j+DqY{8IrfClXv?L)SFM4=vIg^?>o8CG$TFE+3=V!fQGMuJPYT++C_^IUWC
      o8H*q3)Ho;5vcV18&?x|ALm|OcM)Dc|E?%k@@BFv;nx(k@8%AcRJOBUy
      
      literal 0
      HcmV?d00001
      
      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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
      Lag%Nv@X`MOy2WTV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g|@}-Lh8suqr5O3mA(gu14cajfo**&;|%q5+A3#lQLvGvzgrz@mJ{+
      zi6;8)k22obZJ}(9zRaDEbI(2J&i(cK+YbOwaL+}Fp?SoQxu1w&Xk>cgzY`~WT$(pR
      z3Byxuy0LWOFwAGLh^xN8+dC3L%20VBl}ukUlv^7I49=zwg@-a`YnVZWVXh;U*clFb
      z!o26bNH8pRbiktnZlpbrE}isHCJbwx{|ad{c($bEk^D?_jn;M{scUVBeXc@1Xj@Tl
      zTLnZCi@<*s^)<OY9PDw!2O<?@Qv~e-bc)P-{V5P}Dz!>nTxEECQSr7qCSl<;`B|Ea
      zYYg|#JNZE+!#LI^72$4d`%TnmU=MZ7QkP?^ks9={An#vJD9vO|U|1=nU2sL8)X#rf
      zj6R-WxwTP989h<^XM#v8>U@2SnHY$+iw48`xw}n^-O*`x>~X?c8LKti#vS_6t{$2|
      zY)LyHOMe-^N0!lPg653I7BpL=0~K0bIz6Sx?Cpb7RKL=u1dmpaBJd0jp5qejYB`AF
      zW!Q1Pf;qaiah{M1w0G#Vm{D%gjV)FEj{3(_T>nY?oYfWu_A|ytj>#D<8aJ?%y;re}
      kn<!D0TUenN#~PieayP5u6Lu`T`K3@IoEA;swG6fX2W(O7ZU6uP
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hPfrs;7{;Hsv|Uq+AlO<#fofu)7#m|^Vrn=DXsV6T6nfCpuujUDW!KE^ihL|j
      zO+0uu9{nVK0^>8=4QUHr=3jpA?|o+G*Wd3y06fAy4+X*cC-p_OW9_HbBxmi{`mCQs
      zR_}lH_2<Myp@*X2{xtMbhuW&3pBJ68g2h-{qk@69F>4RIdjfeSnBR@UI8k9TP(i9o
      ze@>r2`Pp6lEhs-Tp-FZGbDLWOL2)<ws4JMmwJIvODp=^5P`^n}j<h{cM}ZbB^&+1Q
      z6x(p09~P5i6APNX>6{lX(-G7*$55ccVY{DL6An9D1J|?WdM-1{Nj!9YGS?&~XkAh~
      z!5tji=+wo^jVsRB;1e)g$yaI2{IyGYL1R)qE81|PH9@5xrPkLkjC+ath3h?Zk<kS2
      zz#kT@poB7KkGle{pvX0!m1C7Bk2wqHQfq|yZyB<{u|gDhO1OhXuBu}Q*RjN%6D)Id
      zf*q2MEw{EuxG`(kWApvYP#;sdfjsKCNr!Vaa#xp;U1+bh{a}P!v$D4=dY8#I#@M;c
      l!)hjDDQ@EqTRH7ouAPdwK5Ko?h#&qF(Yaj2CPNi)_aC4go&5j+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7+foxj5IqBdg#dC_E-GFS5)`5Wib7FhKr2NG9-=(R)3S`oP{}T}nWe<P^2sV6
      z`~W}7^6Vu`E=%D{dZ*`1_nFf@oj-qn{RZ#?Zw+(_OrMz-X09$R&sF*|w=XYC+Hqy+
      zTp36Sj0D?N(=O)@PtK&J1$wuXt@O4)cP4uzkjgu!GL3HZ526RX0>edR%LA`=BHd5s
      zNmUAr6&=g09+|H4*O4=&E2=IqTfCOQrof=I%Z&C>Y7!I3W<qqpr=(qFmp6~|+0GC=
      zn%?_n$#bn7yKZ1iV4*e7fm8CV%1*WH@ZObL3^p(!u-J<IY`fBOE~M+zCy^LT`C@{3
      z>1y>=S*Dixim7aY^#r!r<2JGukL8-qlKDhZOo6qea5qPryo%;Z)7N8{6b0t559euB
      z&G{&j84Zt@f(q=}+GQE`6OOhKp-QaGjhD?H8MrSn*Q$4;37d4@NJx47{y*Z!CE^X5
      zWR7l<RHC+<bQH*M`bd>sS(REwu_hBJ`q-gR!JVoy>yjNmorxMYka^GcYHTdOE>yd}
      zq{_CbJ(mSqz7Dq)GHiYX+dMlS=E*y@X8YBHd;*EAzVLZObyeS)iZ8jqw;s9*b-%^K
      zN>4Rhozf+Cew4J)s_|Iq6tVLT0s|2ze*keZM0zSGcj)PJPxHY`v*tf|cFig;9CQu0
      z3x{#17+CLkzU|3laI8YnF;4|%t`ZjP)_g>k9M84n2jvg6kw%AdOs@DWQV&5DIaYyD
      zesK=+*WhZER?zk={Y2jnesm$t-!v_-jTGKtfM0_lh;|76*u8~edPca@OXMiV>6^su
      zVDAp50y~YFz|P`sgiX=jBXSmVZJr143HtFGm`8Zr=9$M6dKQT3!Xl$&kPYH5;b~x>
      kMeF6rt{@lqpYy*YjNL~GUXtw^Prt(Jb}!c(LG(BO05ZnY8vp<R
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>O>-MX5PhRvdF9O}cKiV`{)iG1kYr;4HX!0)h@1}uvO_E|1v#zdk-RBsSM07R
      z^cT260R<c>s<`A3E>4P2=FZ>Xe<Zw_RV)Qux$Mkz_q=}nx@Z4>^v5B9*RX9NC9rVE
      z{n9N)vfd57xL4eiQRFt|Rj(<dxYqG3m;&QErsew0;?3PVvK|YJT=sk~UKcQO`5ggs
      zBiNHR42(KRV?<!A>iKf3+uoJo$L?-R3QSaky4%`uLr<OiMl;^`B7to6*(}xsrlsE`
      z<P8}o+^Rgs`#OI`z)8HHboShsxy)Qyv9fZv%aw}SoyjE`d@m@Ld$BBc8x0w*<#%jM
      z<9Q3u2~27VPX{<SgE4{8P_|vx>o;w@fH@1Z0;dL=Y`XEjgLy2FP22MY(m7_WDCn$%
      zb2v|XQ&P0qgwL^5YzSO%Fpddz?<EH>BgeY--Dvwsa$W4_g!lYTmvGa^0x@d0+Ym_I
      zE(-{<5d(b^>6AWs<?ZW3zkThiy6nVW;71l#1?HdbM{@5dMsa=9!6}SoP!gC*)XaKO
      zHV%Sp)OK5~Wg9EFq=rHDuCKnHpjsSKNG-j<I}VC?HG_Al|1l^wu3*CgsSb@`trx|z
      z?cge|u{CZOy1jbP=?N5u(<FnsR!KA(n%%WzB1VEnBT`K<T9P6eal0dMA{nD?sXgg>
      zEATl@Q@Q;AQ7mk-VS^#qP_bJ<T<dl^K^V)uA+-$LbnpQ_q|UXV8`kA@PrZog|30>5
      z1!tb4x&~h;Fv=ZY6TcQuD_jNFbm2ZSzjKp<&9BWB)XBsKPH^WWL0nJrWU4Op0hamz
      zDdR3Z$!!G=+#0%>N^Y7aXYn)v)H<PÝP`kJ^VZH3b&{>*IthPlN9Of4Ngz|8vM
      zk}-dPv!539`XU_{e}4SWfbW7X#%Eap3;cqZA!ZTbJkNP_HIqVu-migq=qWJw2rgg|
      zOXNPus$Rh|4D#ayX?{ii)KYj|?*-*jqWwYv(_Bl11H3W+D^5Pd%4ZXA-N)O1(Q^5c
      zIb$9knb(zh#xxe^Xnlb9_#G&f@csrFd`msP<DcPsoW&1h_9IsDljgme<T~PA(rlH&
      zC0r+4)u|G0DBirE#rv$qWCayg2G++J8LFVFD=5<br0rYx7&hFvyF-mj_tOe|q@!;A
      E3$ENR%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(T~8B16o%hZ+ODZZ5G+&_1WgPSV?($iB_syWU>c$+?S)<q>!cmC-8K86@=y2~
      zaMgqh?&U`r-`Q?RDUf(GUwO`R-kG`jdvOV11Fsz91h2oVpQ;{dHwjIAQa=n@iQ9YU
      zbpvjD{r%sr{t=tNcaXoue$c)SmDkE@uUWx#q(h^;jt(Q%wh#6M@=-9k8~9PI{J5jM
      zL>Era|7>oZwJ!z5ZR4AGM=-Iv))C})gKxTo2|OyJgolEurt$S*(m&SWkvjIYV5S+k
      zY@pbN`|L0u_e>;MZT{b#8iGp3ddlzCTXAUoZey)uTUTuBStja7UE3~Ij$(q^9mONu
      zQ7;UB*>st4!5XW42}UfqDv5ZF%ALHRI;tKQEnCr&pwtSI(ADpaeUQcbe(tSJjur4K
      z{C2?t3Mg`RxXa-I@?7(gIhJ{{$yqoTY6DE3r^pn?5>a4_a0Am^m4^@>V}?5`nB`~%
      zJ0vYztgR35WZbaF=KHB(Zb)SY@|eRs9oALNTnCJ7Lp!zgHv>E!mwjT<=Tx>l#I9uy
      lo~1ID;yD)C%4(M~?Tv^p#;so%@#{Sit;<GSVW=El{sZSDrnvwB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gJx>Bb5Qg93)9@h(f=X;GRKP@HtPF$(&}axTLFt!c18a^uvv)`IH&I!USoj05
      z_4gR(fEY2M*qNQlGw(aQ^Y8Z$02e4k5g;5tiHWE<((tr$Un?EE>lveaZBNud>eh=P
      zpIv2JQG^I5>*$TNq!wm(HTugE(vH+hm_4Z-o_)M+66lVQY}l6L3d`*Y)01KE^J_Y*
      zP3MG2O<BsV6N1H3j}U6u0~tdQ+X=)FC#2fSk{xf{m-<2UO-abKZG#O2+i<;VhTM^I
      z2&e7!JvTh5O2`$Ls41*rrR!>C4XdS|@0|0Uv%JvQ8TxJu#lILK*0nut$ZO^AbGX6e
      z+#kddSc(6fP(T<F&QY!c*y6)Nh;vME=aMsV4wq+0zAcax#~5S46+);Y&9}r7!VWTA
      p`2tyvzCfKxpN*8yX4w6&&}8%0LLtATRtn4`k3H5P?DKR02S16kdxro3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+g8&+6x~w_sWk!uf)`Z0w-v2-6udzdMY*WeD(cHnMhK<}CaErb@FV;UUvw?4
      zsB8J?gMZ<VxZINzn=1N{$z0Ca=j?sX%=e$4zXCXphXxV?TbJZ>nfFz>>RG``{+9A8
      zmhW4xV<0Ke8J^nGS;)`KEva%~piQ8=+2>kSdh-TS0zKh@<>rgZv!rdklykNsiXSdZ
      z%G1F2CawsG8v>gOuHy&N2};tgs@8Ykeq74jzx_%e>BtJ*x+WXZi-Bi33nKz;=Pkzy
      zE(&bP{C%7)(YfHxt2A2BW1<sV1X?oL(gq0hnP^9cK*yxzsOf5DPI-5u{JJLHvb0N*
      zIWyn-W-?f`e1YvzlywARGU@W7DnAYR|B+Cn)=0LL#%}B}FwmrBam5c*#l&9hBh3XB
      z6zlp=Nk=XyPhe*z8>iQNJd(x%95QfFU|US0W+M|BWXU#6u~AkH{clQIz!rCIsagCw
      z8G(df5!msc!~_hhvTR$5%KbOaLsn8ft4f=OO_f{|js~ek=`ZSPhBcfZHkFzVTcf90
      zp0(yk(_pk5u*nG9=cpGA-UZjT*}pszIJoA$PE{LrtZyoCqsBA9RbNc&FydI%vgehT
      z#syq5z@Cg<m&nh=WsEZM=eomZo@lOxrou*<r!kCzZr9Daaj%*f$2CSLn}RKUa_L^n
      zIJ}DCCYxXaHx2M2bu<zSk4&7xX^lB$Vj44)S}rduXI|jQdY2|%&p0ne7{+Z4aYvwk
      zy~OJR&`{u}9`2bq6NSES;v7!%iWJ?dS61Veeh4}m^*E|?PVS*k3leArA0uqX256Lx
      ze4i39`SHSXu5T~3;n>C1IQJ9$r*j|Cojd#iz3)Q%tsL8l2FxOfNA!A(ZCv$6)<oaI
      z75zd~K0)Zm&N}7;+Gx-ARqUD?{D#zEu7>>$+%6&lHpdE5aIgt(h&>Q_{l;!b4u^@E
      zWRyW1L4t4SQRJcD(qnvc_5TD;5^J-rQ9XK|f5E-h+<WxC<s<=3rY+oj9R@NZgD4O|
      zs4^`ChH#dnmSvEC4U!OlBD{$qXpyxHLRY8mX_18X9QuOc+0M)=&VR%h`CqBwdJU7E
      n12x>@vKX7+)$=U(YbZ6sMe48O5I&LPYAo!~@30SaikSTc(i43L
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}%Tg0T6g{1UB*ak>5rfb8!i1nv@eSf5;xm9H8cP?J1GL!GWQLlVSmIjO?%i0v
      z%7repN<*ntet;j~!o9zto}LMcNMJG3-FNQ2=iGB|&)1)yz5v*Z;RGTATPMxCX2FwV
      zRag1bg-g<{D9=-lU34r<j``dr5EEz#{4CR+C=8EI@<Re~fwsV^oWh87m1(K_=BOp<
      z>;=cNbakey=T8fW3j)iFj_vuT?UzlfDx03Y`2KA&-JBChy3!mUwykOU-4KZPDO>sd
      z0?}-)ED$R?<1&RPS`DngN`aLnWy_&zWmLLXLcrFNGiF+4lO#x>ZjAYNlqaygv~-ER
      z#4^Xn1vX|IdiQEB300Z0lw{gPJy}FjTCyT-pROI*T$r`$E2}VIS1ZyrwX%e59#Ipv
      z=~rFKcA$}8Ut?1J%(2Xq{^h!Y%@EjPz`$~Wl=5cHftH$;?~M4avM1QPS+t<3p|v-G
      zodWHDdmWljRd3&xu5Lljz;^6Np%Z!CjBbH7b;agp$(57XO~_0(rCs+J9JhV!t2s3#
      zZK~Y8P)u0koHQY7Z;BP|H?STXbgqLs*CB!R*<xMP|09;+2w2Hck_#%CFS~(09HVTu
      zyyp*uU79aPIOD|b#Bq&yVjk)G_eCk3GEl@ej_V!M8+2S*hw_pb5QyXgX*m25Z&V=N
      zsCwQAPR81X^V9zC<WEn{PJhqBAxn%>YQ(9!WAcpB*SKS$zrk)TX>1Fd66Mo`2-YEi
      zB=^nytwfOG!|CHbK^yNY-z_}#a1~sex@NHIUEsQ!Z|x4;L=3mk#+?y5VGY`$|2u1u
      z4%QCB=rhNF9vg%BP26q%1F)Z&G(fy7_5qps2oFg0;T(i`h`@-g*v7Y}Sl}8`e2>hV
      z076rY2gXNpf}8#X^D@+fUsI1Ly^EjGd7U+8XV6v3x9+N;aILF`p21g0=UXy09O(Xt
      z!vZz*x1@Nw#^XtW$G?8$TTj!uhBI%OCJGI`i6R0|sLE5GpHYkFRNw{na6N*T0i{d`
      iTc>2;5YFNpNu`m;d0e0>7nwur8d^$$PJ^^XF!UR0gKMP#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8B16g|@qO526j@@0i0VAXc3v{gj3=nGaQ79_!t=!@Ad6S`!(OLn&g{|d$z
      zqef$mVhRLE)Hf1;l<`ixKp&{t?9A+)bI(2Z?EUli;3t4Q?gijs7+zOiDOsDVHA{0|
      zXP3BD)ofcc4Lg|+z{e160(8Y#%RViybJYo;i(#M{tvQ;WEgH2dw-kqR7=l$rGhT8E
      zF$|T?1Qi&%?ONFdbvYHyPUc8R3w@Rn%IKQa49&UEFq--gF1^Cwn=@B=5F}he2;mUC
      zh)Iyp$KXw+SArP8PymAr@s6EKIFC4ke}l}hsn@nX9xHamQOY_mgfNUm03!^2r){2G
      zOBlsPYLx4|$_<BD;;D2SPn&54A$D9s0No6cl4kJ5TD8orXQB*4tYoT+zM@!~_;!On
      z;Tl7tvlq!cxfZD?_JV2g;)x2f;DxA{mJmdD7=C0VT)|awx-MZ7S%$E|Hyt;Hq5oKS
      z+Xxf_$TLiIGH}k+bs7{Jh!Ao}gs5JI!Ly+<Bs(fTO(OQ&3}dIRE}F|Vwc;u&ZmN8v
      z#XXG}LulEoSt@_13A3VY^E)XB7^Hc_;MSb3*fuB2B1J>hO<Ob87PwO}S4kiZ2EBe-
      zA$|g_5as~UsF)!75;qch2-QocNAS=C49J-sMC3i3lQRwU@8ZG^#<uCgg9%!Dn`wgh
      z4bi>DC5lNzL5WD>GVM$_?~*oL(j~cp)Dfm=8#{vETNj6Y$P8Nu$&4x-hpsXFMy@1h
      zc5!0|DUs*mdIT;d@8V|NSEo8HJ=4?x@Qzx1Pue~pijNq<Cye7WX{#fPFJ#77%-|ay
      zU>o!JfkiZ$x(AyLFS)vNWX=?Bk#Z&`#_iw<VMKRvQFsgCLrg#4!_2RiFjD*dL`ut=
      jeUfs32oBq<iMu7dxYI=6MS*rPL4q2HVU|`OS(x|-E)*Dl
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUI~6#i}>Oq~w4Jme*y0);-H1$?0eL@P!Npov-|iHo7!$dKu@nTOF|VB$Z}
      zAD|l+njl0?j4Ku{-RsiC7&Wd<)N^M>Xo59v?wxb)Ip6utch8--KVQBEFov@d0t~4&
      z^^Tgec*!v}`(Ew}H_Mu3X%)j7sQJFATB{O541M*&3l&}GC7Ti%;ubeGRWEW=09~Iu
      z&%iD*G!_WeRt>wT>JAS-7~~s|r*6$KgsW85VmL7GqC2*x=R`$YUDkP?p<z-pG<%vM
      zm`oKJLWRl-mk~r<fr3T}%?vGn$&}HA_&yM>0vS<;*t}-&MW?*X&1(Xhp?SViBBCnM
      zCEIs~>{X4}WIQ(iBMos3sw*oDJ;}OB`BYI5>QT^(Llj?iY=#LxURRCVxy#FIq+s4d
      zsP&}wx<~~f8beq8f((*YuId`6X8uWRNhXmJ3I;L65aBv6bHk>j&ZJ-2y^&eNDRWa5
      zSDcR`g^YwWX}c?YO@M-7j4(tEe%GG$@EBVEz}5C9A;-{BZ>nTuF{Ypo{i5Pg1;=ol
      z?r~MM7Ahw9k%=h{#u7ujr^Oz&G=5c~eS#rd|AO`mynACb%?$F@ier}e1x?IMyyjhG
      z1#t#t&M>%H&{fOgmV`4TUA>NoY^(-Aj5$V0{vf@{0J;!H16h)5MbIn;m%hVvMx#zA
      z`^h>-(Tw(ZdJD1iD>U8QLd$csK6A6$Xx;DPZ6kzth+!M;<WsyHbfA+gnj9ST@d^|j
      zAYU}Sf!0iB6Wup<p=9^yJrVif!nApzJ`5${Fpdxq{TtBl1Ky{Y5CIOQH!-mA1nt8w
      zkYsp+?BWQ)k3K{=v`)TphDX0X2G=Px0KvQ0?fet<`xy~@q5i)T&u{1^JAv;mfwTv`
      zLtw}!5GDeHI6+84wUb0js6;dElNzU8s1^}jZerr;PF0~e@S{ehh=(2*s-5!l6SNDJ
      e!le4?U46V{PhxQ#K;B&^F-5z0Sq#&dLDz4a)Ik3L
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixX7=BI?ShBMe<fBk(Tf~@#KpU}EYlCP>silPirKAno&Me_fSZ1@y>~2~?
      z$MN2;>rQ__Z+f9K7G`9o>Wy{0^tX8J_?%5b;^<Z{cK3X|?|Yt)ch7Hs{_qUI6z*w=
      z2pros@0%G<7Hh8M?_`#xTedvUsyLp8n7~-rcCKREvgk8VL#Mz%5NA~~tJ1Yh+uAiZ
      zY$?#|1=GBARmrva%L3w>KzEMyebe#trd^XAx$^bJ-+%2{=7wq8EeHaMh5tT3E6`CT
      zY)@dY9$xb;J9E|awtR(x`<>I4WBD@z(bRZeAeO6aN*z%Q80f`I8jcF|2M7H<Q^z0%
      z;-E+dj-W@NXTfshjaqp_y0_{C`xYui)6SbD&7&HNF@MV<n&YA1Jz|QQo0|eBQlUZF
      z@x0EnUokL-R|Ry-yD81hCCA<gc&ux9jb{X~ZPO`H`MQU59~Wg+8PkQ+OmE5AvTW4y
      zMqL>+1Mo1jdyRX$shYQ!nVdmQx}O4U^524jbiCyHQG`vjz-w>v$b+XqXZh4s*`H
      zIlL(_<j4pAhD{)u8V?nv#UZN<e9OQ|oYHXt7d5=Yerw6Gw6V?pG?2x#KvzlnIotH;
      zN`JF@z%f{4sX@#bcn|MW+G@=gxX>;{y;QaiDoAUrG;p>rsZz5Ba$u`Rd8(rGzY;ZE
      z5f~2>%}cbj@>FZ<n8Q`&+B~HXZ=!$X(N6vV>VFX!36+`s8L1WpG^<>-ElJs4*r@Bu
      zi)90gxIwL@Ez8pJnRKkFb?{%!IkmEMP1TyLA78afj_KE2UK8iT;-<q9&SW)^O8o~o
      zY|A#45>q<Xa7SrW5IFe)jRH;d)k@7R$}3iIZ?)Aqt2_}f<{d}6LBA+HdfFnCAG}a$
      zIG+x_N1&mL<2Wzc2y{ODH8}27*9gBc?(yQ`yN|QkAdkE0ee|afFj&~f&{GV57i5p{
      zeS{G}o_Q<Gzk}nP8O&A{U&aZ3Nf4(R_5NVAir-D|Ve}!o50EJICHIl~apGr8Jj9vw
      z_c-$$cheJl$ULo2IXuthVSe9M+k1HT_G4UZF74scPlzr~KF63!QUl`va|N-F4;Gt2
      zlPYOaRcaxhB|>0}dRXMUjbYft>EJXf$e>E@_pyu`c|D+6J6Ojq?%@-Z@F{$J#+A<l
      zwxe}M4YuTlYq(CnD@b91+D15L_cavoIadlK6_sDm5qr|a*dn4uAEQg5U3$XE2t5Oi
      z(mmh{qWzNIeT^Y}Ma18<AxIt~NH!1*)14-Q72IT{)u7(3z}s`gp?r!TV68xZZ+{zX
      js>3>ijYn-}#v8>WltDrI5Fhc|$I%>P?-Jq~=Un*<6+-cp
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8by9&ZU5S-PR#Q4BM@fVWDV4YGB1X01x?u<t~ITKATg1=_r2l!Fq8bQQnXJ>b2
      zcOK8%9l#h}2Q|X*ATA;-WL)OTT*Fna(pa5@c3=^D)l!Qz376Z0j19q-=Thi`F!1O9
      z+bGx&T$8O0Ur7jkKlssnrV%UlqS#Neog~!#U`B8fX%^zh+*@a59?PlHOuFANqxUD9
      dzy^*ESe&f^n;SO6t*{BN!q%I!vdy)I&I_*)H<tha
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmX^0Z`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#+MDa6Le0CWS;8w?DLKnJoiumSn(KpqnV
      N2M}|DSzJ&NZU8paJ*EHv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{`J6w2~dK#(s*9;79)@wvu?)Q^A-Ar$s~SSDp;-6gxTsK0{0f{BKN
      z2Y-P7M;?i1w^b<C$ivRud*_^U@0{5m*O%V`JjZGgIl<HS>QvQY?In@1pKCjjIW@j+
      z>%$GtnlO0%$<rrkP()rZm4ST~v}=D31QW52jPhL_#RTqez7oimV6+hiu~mU}m7nOs
      z##!rXck<_@U|9ba70fjINY({|FHB(UOTpY)Uqr<f<Qw6kE@1!@4jfG0!R{SJ;YW4g
      z>w3i<24{Cr!iZqJX#%~Sd^ph2UV1DjH$#u(D_(+mx0ts_CKgmW-T&_oXBKKXZEbH^
      zGrQIm==F@?Ap#pJiOJ~&-ONpp4O=!cL0d50qtvO^)5|}0u!LnnsTC%Xr{D1P1k3+?
      z$7iYESfL>U{0nlJM*)M(idi<q3SDBHXU)MV*D+>qS<i7FsjgpOyt@7k<u4gwn(J65
      zwMC(KBsVd`+Jg?9`z$jOF~^S{;UQagL~B_N6sliQJ|`%LR4$zca5EVviwj*D!2%ZV
      YLsosswCOMM1s>h)eB773lFj$z7lP-lu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!%L;-}5Itj=WlyMe+jNt(tq5AwDk#t&u-iqhh{a8%eyv3x&__jA34@}=3^QkD
      z&Ybgj-tGV<=o-)nqtMTM=ge6uMRIj^Qe-0H0Y9uRjGq#5jF&9W2C9T!u^jnv;B5CH
      zX9=Mq)0i-@?9KOVMlef~vw;So|Jf-ggoZ1E*iTZ)3A$x_UViBwQ_1*RX(0^%sv75n
      q1Z(b1fB!Fjp&CI+R`vl>est8J!BAaQ;dPj*($G}VDysGy>AV2ii%{YK
      
      literal 0
      HcmV?d00001
      
      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
      zcmcguS!`5Q82(N>?F=)Q7Dfs!YpVs?>9n;JP$@-d5w}t*#THr-Zl|~9*6GYJa|;$h
      zP&RkP<pE<z^rea6K@wYVLyQR+A2b@b5H-fQ#l*P87++kzbMBp`)1nV1zRW%6U%r3;
      z&%FKT%Vz=9;VCzA1m+LuyY$+G5gLk{)^KfGJZc#s%Zx_WMhA5>;)Y9Lnvx0Yk^b5Z
      zJp*J5_(IWMV_PCR6b~5!vs=caG?Uq`cnt!1F(W>h5Gc<QY9rZ9BxtHR8V=h=Deen}
      z^+X~Z)q9P&z${xy*>0AM7R8{PHx@S|Av30ji9NeJ8$8LR<kW<vTV|-qjP#n3egV-X
      zkiXK5nAR$RH5FN!8NO$6CUv;7L%=0<yb!odLm_4eB>p4lC4#<mkX_P^!WJ`Pv<?mS
      z81YSdPndP_w?spFxI>Sd^6n5_)((>?E6t8BtMW3%vdGCA`(zpIdQm(6e@9r^;YBXy
      z$pp_A$gQaCn8JjYYRE&rJYBBA4UZS)Smee+-p6<3WVO?<SYr7ShPBbqdpAVF!xE`d
      z!xVVEs6x;UO+z(m*u<f5G{TI|sHn^+jy(+xZd}Pu%`%v5Knb}-gAbZKE!8j;1?<Uw
      z!%BCWz}zHmY7*02R-!<Pr`unkBq=}1WJv6`q<Pkg*q81c8#|pI$}dV{r+i7X$BnAn
      z9E^ocgDUf~+aaydP}wD`vRXqUR(a8cwQe*sky+`AhRx8hhU>77`$k4P6ptGbt4+}b
      ziYNM{I1Li<28n&6K;r~2vU@ta=Tj|BFXc)}-6!s}jEDq0R<zw>in&e3cZ5xC@L&TI
      z8|FOLB#f9I*R5#Wi(Am{#zyYk{>V_RT5~bo+ELp+oUn{RZeE(Vm`)9wa4Y*#l~ECg
      zWl=Kv&asl&iVn$*PJx*!x2iL2a??;>pAq+93s*w+hA*w~q66J>ux=A5n#>GGuLHMh
      z*oN)goO&!~M0y2+lZj4n(l*V6^l(9?dwNA=C>)lsy%Ls#H4e?0tBLWY(3tpX83Uo<
      zJTRHHbmy<|;0|v4ZVv|eS?ohCq8egYFW_cwTlGQ11HLid#ih}{QfoM7l*%1rX&AyT
      z)>w9-oH_3GWcQ_~jg5CFqHeG>h3RxFc@ORq$O)Euu#a}Pda$2QM1<=@_Ub(v?!`f(
      zoAy)2L~@yNM4E6|Lj#TotozqCb`tZ?^Xb8TG+!x`{D6iQ6}Ie1Hl%zR(oQ?AL!T2Y
      zQt<?ilXN=D$Cj(d7DyXUt{Uzs!3qdYqSt=?*O~GaD#~uT8fhD4T!*>*Cz6L8xx{(O
      zkt<w%xq#J|TT^|xGx?PZv=GzyJDs-{>PUTWpeiVY>ookQlx&ft5ew*~#%9dqsnnLl
      zEEMx5`6bjA>NJ}+a}@F%2U#aCk31idt4mzDlR(D_kx<Y}ZP668F9q#`4NV~Vq9_-9
      z@*#kW2Kh(9G4}><GW^ECY0M2&jbcIYJPHHBQIrK<MA;aw2vm=vB2eNwkAf1{7y{=|
      zH3E0;Yp5MXU7#p$6!q!YYiI)4LnC`>b|2rH{qW-e-8zW*ID`c_jCy{T;|Nybs0w10
      z?LaDs##9iEsUR9tK{Pr+&}I3WF#*%DjCgikYWbC!&7<=RUf>}IvLtr8k12DSE#R1&
      zj;nC>B+3=p%Fj%yd<|AO%FFnbmVLBbXQwF}Vk85?m$Ki$L`-zPEL-_hhH{>x%vT4i
      z9OdmSvFy8Y+OI#3S+aT;Sf>%?QCZa(u044MYXUr6e=?Pr0@WC=v-i(o4&GEYX4*KZ
      zdX(cP+^nMG9NX5!Me4CjMX|s24BA>=LB|&V=F{jR`quR__ZKiV=+}Ac9Dx>;lre-l
      zgOcCLTZQ8HW$-J~{Gfk_BUX1FCZ+4no`4?o4@he6a@Pn}OJb30No&v_Cb9Y@L<D&7
      z@07POB*w5?3KzMQwyXC!c!T~ul61%=9O|=wy&ClIm9!Dby<47A4%R=7@-sMa9R8rp
      z+87Q=|3*+OW8qlHvx-Zdm74!35oCa4xIbOJU6{vgzrz-MmqYg+v;005;sey+BP_+o
      z+`6CekH<x{;!{4opP?I{V*p=ZC%(jPe8u_s8js)`oWQqu9^c^<>1Xjh-og(={1G4G
      zCu;so>M#8L6@TD2k&oY1CDnQm#ZD#jg&z;%Ay#mPaN%L1<`8`u9>rs<ro}2B!{eM>
      KfhSadJoz`D#bR*)
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~T~`}b6x}xogiZ(ArVvVNl~#($1c>#smbOa4YFj>PDd~sWb_fFugc+Qfp!C7N
      zVD(9VfNv^wt&()<S}s4T4?fiw_1C!E_s#$VWa&e4Pwu_v?6c24=jQi+zWV{dN!&{#
      zA&^}#SInYsm8+f|tQN0$?utEQd1<5s+SOS#uq$$Z+42J0^3!PEII-R0q~+OW#lB}w
      zS1f`3zWQ0RJl}Smsf!~5;*vn?u<Q7N=>#RSQni{M-*U(9-(LGtAZ0tVu0Uo~0aZ+A
      zt~eQZwlg=#Gsj$F$n;7WjFA|v`Hbz@!8w6kZnw|K?yY=@fri}~OG6SJIu0N!kj&*v
      zdmwN~M;ltDby&wf?3dP4I&`!O>>ITmYrMKNZF$#1ZkbWHY*tDp`I2k2nF{7@pOHf3
      zT~#EF^qdupD<<u^{O$w=G+u}brcxtI>2pz4Cb?V<1Wv`tPE0RY<zO%tD%y!hkG3@A
      zQAop}GO-G;`hm5iqYwQoJ)tHe@yATZoU=TEquVpxems~)QJ^yxPbqf3YFF4dEjY>U
      zVAdOr6gAH3fQA9QC>3}~pd(HwQaoRhH(t^4Do#;ob9vcvW(4{hU5$|sy(9EN8RE2#
      zK^zxo3Ec2d!&$tZ2D_#!mi2a4I^K|p9W2jV<;9JH43*24?`v#}^E!q>W!eIF*mPXS
      zW-DB_Rt0+F>HU`wNnFs;i|45EqI8V+eB>w4v?2#YAmJ|w9Er2so-O+-N#SHukLwtf
      znKgUXlDlHH;2nw++6^Q~Vp7M1yx&x=SSID-fE-fhj@z7cN|wY89oLZ6a0~CH@$R-p
      z3e(o{K5nzx%xAb_`kaP?+uBEMQkc7#PQ&D6ZE2v6bR5HR4KtWcLp~u}$Dw*U<}fec
      z0a==f+5azj)K4u~px5bc`HY;E8cw%>Ro&AaJt*88fGgW=nPZ<DiI30Drn(DHhYyb8
      ze%l}NeS6N4kH7`bWyJP)3xsU*w<Mtz9Usa@+#9%4>}GG+^hr>gbgN$3x?sx(vvs5D
      z1Cn;?7}HGh(}WZbBaIf?d-zx<pz*_pN!fg~)XFD|tH!$rkm1dP{Ix{?CaxVu9qmS8
      z9i2vQ9bHCOY8^+uRc=T5omH16={iM#65qk=XvYma%`=0$41j0Q%~e_wP$)}6CX^+U
      zNpY9rMbJgA@>Y}a5S<TbBp{)h)uyRJ>*0kcw7|3I;f~C^$lDvvU28j>7aKaCXo!4d
      zCvvr+Gbb@Z{+Ki*VdD{U<Nd$kaR2uhxS4srju#}68eXp9wHnSCMxl<OzB=CALdYo3
      zPxyVGT761hpT$aOY?jc#TX<XXGjNesf*!rNgv&~8&To{<IsTUA)k3g3#<sA+I)1L=
      zXTw{Y@wF(vkh2}d@`;gTtUP&*^^sSf;&r7luR5-7L4~xwVt}tn>l?zXDcJ5X;3jN7
      zf=%IsA|oZ_V-Y1VPk%|KhY5@pm_R`#FtsazI<D{R%%AA{GqHam)?>EGuQA#^5q^sO
      zDN883jt_o>dPkKMP%0WV+^pfwBa{i6v8g3@7P(|9(te1p8XU^IMZHZ?e8O;l@W1nk
      zf(^U2KY~rje}V|?DhW!8*#dzwGc|nh1@;zx1g+|W!p^9Fa)STjnEf3ilie(4c2mQT
      J7%_p>e*qDt1Umo#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixPfrs;7{;Hsv|Un*{Ij*90+o<JF*b&iso??`F^xgN9`rOUlQN{;C9}JzU%~KA
      zJb7y3fh&pM#<Pj>ne7I#V!X`k%>L&0KJU!8pI^@bJjRlToM7QtovLP}{luF1V{_Mr
      zr{+-G?GL^_iA@-I$P4CDsHcK%^K}x$rmrvm3#KA%jp}u@jmW>**%HVL!Ng`5M6n9u
      zj_M`4@cjGo*~RA{p9ICHCNS}aU~FZzBgk)thq{C@+$^Jn8-mHU3G~aPf1vHYI_PP^
      zOgr>hK(P$h*=9aIGLfL({!arfL1kqKr48)G)&$+wYRA>AxSF$!(vP~X&hI`mOwhRI
      z@D*<V$cFD-tjsv)j5S^XvlV=mM9g2gmKW5nsz*hOPBbql?S+Z;^)uscqWahSJaUmy
      z2YcYF@~Kcjk+a8D4&%u4o7c**%$;@4!nx2GVB$-POmZv{1)dOYVTxbnA%tnnaODKE
      z9Gzf;q+^SXwE=F88n#$`J2g~?RAwNLDsI!^T(!)#!^keQ*I0Wvz@1UqE)Ts*Ws5`X
      oQs&`qD&tYy!+n-=+WAcTN5q9u>sv;A_m7Cq<s#M@Du)NZ00H@$EC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmbtVe@|Og7=8{ED%~9v7;G@dn7RqKWp%n~S-XlYvQ=9^ix?y^Udk=KOX+QHZ#8KA
      z5&!TL=x6ZXndoX<qQ)gI@k1G(bM8&4w}mVk63#v6yzlco=XuY0``6#U{0iU(N?{BL
      zT)uC7Y$Tdyx#d{yQKBS2%v{ZAHVd|~Z#rRw1g2C_&8QzFy0*C9aBSBsyOv#FwGR!e
      zo-@i-Q(&^75?ZcROWZS>)uPcz35=AigSz1oUtps*BJC}8q~z><vt+lNvY86(YzA0U
      z8KMuTt-9rA1ZEe!@Sxn(;<i9YqDC-?vl>Pa31duPyhm&VqZpR~69R(^i`yd*IHzF<
      z!vbRkt8T8h4);uF%h;>&EE5I0Y}B?5$C7h@G2~XQrofee^d5hu@`mA<bywj03Bsk`
      zae*`YW`*3U0s^`2W0qXUsvo3wv-y00u*=28AUwI({y$1u&!i$WXkNn=Jjdc6m~OB_
      z0%@P9UwM6DovmOt;Ro@8hG%hAApdlVdocQ)K2$djRRNFhx9_BY*b^Ao&GG`+l?tbM
      ze$~u67t5^c?8!C@Z1s`o#n&x6kv($FY^zc+o#4GbwN}!D8`6W91wQzX1W#qkR9~s`
      zN!-%#Dqf=xtgyhfZV?-M_t^(h-6s1>VJr*GDT7Zeu)IDg4QbpF7?sz@bPla%lWm1o
      zulPKj>|UEXTgQnxyH@i$6K_uvugllGBH)|?7AR?7EH9>~wd@9S`5enu!>F<8NawN|
      za#*EvjTW6t_HnKY_+&2yqK!cB<GbtO{&!E79cEv3=Lqt6JB+v3%mVeWYgYM4Ljgrn
      zumHK1BU{p@S{Jym(DOvq4z0~Ybud40I;h196Nq@7e9e*#bGj7#mANkUuzk=W{x-3t
      z%3jMc%-H~*;de;3Yp$H($~%l2;5e?w+R*ez7~N?j`V%I9P~lVjKfwgx4q=i^UPcrd
      zOmk)0OT>9x;EWKM!7O1V{Dcp`MtH%!sNTlKQ_xqKl_bM5#*kI$nwRIJpW|b_L_Y5j
      zb4q%RvtflDi(i@w=`%xZTyEp}2V5I~R4$JVyr=LoUTjBg6xZ;g&#{0-b(Sb}#FTAO
      z#Q7!99mNu^Q<+qdV7xSKi*vcB>9M%Jq*z}HvQ`zV?!|RjwGOL>1-znIHN_yyz@G0h
      z2#soo$WRr<*q<otKVouc{SP_B9^&TjNEVkKe~;m%$G^p&VD%A_J29O*w{_7*rq~;P
      zJ2Vq|!YW9B_(Qz$K9grc#~=@=^DHi6j+}FtS7RC<q0D(1rW!p@vvdToskT9l4zpa=
      z-J$kRa2228CXR3mpRoabfxGyem-<Vr<16gqYkbJ{3cl%brrL3)s$Aet0wdnU8pk|q
      zc$Z%x{;{3;-WRwdFLvZ-+$+X;=JjLeBisYNW&C%FW8RDGa728L5S4FWlhJ|?K;D*j
      F{{dVAZ*Bkp
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ-Jx>Bb5Pb^=C;>slZ;i173yHB)VgY^xLoo4_hH8NcE;;th-C~5qA7y1?;SVsD
      z#{XhtoV%m4u$XzXFK_0}?EBB_8-N3Br4SR?9?Az<@u@fVl$liQprC81`|ilTS1DKm
      z`B36WJ*ZrDhtxAEBn65gt6XmJlyuZob{%4|A3odU`O4L|jZ*<}DUhwZ+BZ_0wsgjn
      z_?mt^eV=^}1(H>zl{pcJm&$DctM2wGjX3fdWRMleHI=5;c+@5DCUPh=-JW#Xl3m$x
      zMq1`h`2su5f6qDQMMw{LqD{so>I)=Fomya=i})5jn%cw=&niUB1!?l6;f_e&D0gZC
      zY1<upJvvvx&BZ^zwjV5E?ShZuNN{W*g*nD~{`nZvu(;;)I4>}B$S4>SdoRd6hmu9k
      jX_f*<EUu!!RVET)2}QuNu#A-uS7*3}byfvtfyw4C;cRlG
      
      literal 0
      HcmV?d00001
      
      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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
      A?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo-%0{O6vn^V)QwfsEVTkby67(?T^n9xgoQ+4c|UHGO{}vpvm5jTy-3}3l~+L*
      zJwOi?omqtlrHehY-{G6zcg}o$e|!Qs#JUTIp?=RFc*6)k)-rl*^rk<TLXV^|GE^>7
      z47I<mV{WAXYhfrFp(PLcLfb3XXD1BooFU&1m5I2D`aFn5y7PM58b8&x7&1pv$*9Fp
      z-svXjfU9An7ip=6&D}mjsvX`44+~hz!9$jz(3MJD#G`@GS9}l%hEg~5DUwq#>1i_+
      z-ATi+IidcuR+BOmA0?cb2^hBL%r$>fm-`XzOrc&cjI}RLrJb%i`;rGXhaR5MTA;dt
      zG%|F$q#P{LM+{`C=BU#m?a-Oo+kZ!XoOlXUy`=k0cVAE>U75JBj1npGV+E_ku&nZw
      e)gh0~oX>hA);M9+C$1TmrB;Y)C#(|3!P*c0W`i66
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-%b-j6vn?(+ODZZ5G+*GS}-wCj1A#NQ^O6Q!8Arw?1d&K!#ZilEVE|+DBk%>
      zTs85+2k-&(ZH(V+H>53iGqW@Ko!|M+?61E+egfFR0}lm3^OO3b+OhW2$Ryv|Ju|Q>
      zNh5uD=IhUi39W~s;Ndj&LR%fFpqE!&u!6-{M@9vG9mTADdvqX>mxB5I(8h_fNnZu2
      zE)Adj`Tn8N{w*j!Gu9+~g1ODDzM!}te$*Ar;YJk|To){Kjn%Kx(-R#XtCK(rmb#(O
      z28wNX&M%9}(8Pj`?sU$}({u#2%`p`yJ81Wk$k;(=tM8iDT+?M{IgJOdQ6`(j1g$HI
      zC%EHb6n=HNa^spa*7*huSMpUFbAZ~Fyr4d*o)tBns3EBI!Zh;rbK{<3_40g=U1qF<
      zL+~dH)=)y3yT?-j*HGj)AC_yCH@n=0d#N?T{CS2faIFvpo)Ye0kzds@gqv96$qAOZ
      zI>8=E$Cg{$Bix!b9I*LeW>^_hxq&=Zuu6w>)pOSoBfHREYx~g%w`XOqS@b58HOJV6
      m%)^~b#!}qHJ+^Y%My{QTcz@RVjuGGgC!%w?i0cehz{WqkO`i_{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)-TXz#x7>3{7Oq(<vpd11eT4*_xB&~##2Pg+ACnE(4p+ycJrpZn^kj#ve3CsQi
      zmp8hU<%QR-<&775VPOfYxb)7y;ZpyF`tF&@bdpw=7fB|2e~0IL_xJ7j^{*dS031at
      zi5`Jn4~@r0p()EP*YuVOC9`H3Udxpw$4o*K81(n+hE*%vSa>MQo<P6hIJXR|VmAba
      zXS)1VAQ|jV3G|&dEz>(IkjUod1+)uxMW&I!fQ}?m{SeroqZfSwn`TT)UT-xPq<h;~
      zs7rw@Gj`di&l|3({)da2w`exkNgKmv+Cgd67_P|N^U^h|OZ3Qgk<PXj>Sp<>T$)m3
      z=}RA#rQ?~l)l6c$z*uKlMeDIqH!HM`>;yKhW>K;UjI7DwnvV@nwv(LvkNqyXQe4N}
      ze40w_*0BRSiRwgAd3;@dv(cVX-wjVm4@l>n3Tb!@+3DPT68i*3JIjntKUQTjdw;rE
      zR2uCJ@h#IXOfPwIx>c=8m-3}Cj%*T#1h)F|It_H>kZ0GpvSF|rteW2q#WW^yIEh!N
      zqwnOm*fqmj)KS0@+B8f`+M8u=+K%Ixj^jAN^_pZ4?hdGe>O1pIDY0JDu^0Q5-y1qk
      z;*@~CXf$tiAlzek({fr2msvLulP$EW0zLPq1w@^nBIOUX3{G6j=G0!O5jh1e={S$+
      z6t1waux&<X=;JM>F@~aQ{I{7f)Y7lI<hhi^7jg#IlepF~cBQ4JCmT9$U{=kZ>l#aC
      z+hI%R<1vEaoGJ!|#O8G>IJ`c)<@v?*+0|-ONtmch3Y_p74#f$IY7a{<)y+|!u&#Tm
      zuDd$sz%EEN&6+xWPGKJ-ur7{jsEPDu4cBN$Pr3q!;&@?+Yw1)YzE9)MMhu0EqQ&|#
      zeNj5DEVGd-0*AvK(f!qQWVvv@UbA_dEjA+m5|^oO5@mrS>!w=k6Xi^TGZO&%y3Se6
      zmgCqi32r#jHPo#U8K+Uf0Htx15Y%WQDEWT@a()6Kuf&98jDy)+SCqB1P0o9G3~_IP
      z@pX<N3>WVb&O*6vTdZ_jJ6n7^33kbW)j_?WY_Hp1sjWmzfCO9}4Y0Y=CA;O8<z-Xd
      z=bNM3h3}TbDwH<HzDn?A#4Aa?1^6_`XTBNu-Oqog(ZeSooqx)Y_yPL&{MUnx{NCt$
      zo}uSC+P;ZRT+;(<M%fH#8n$37SGI9S<8Ov5yg}nDT;G8qMvQFyyf?X`xCZi*%$c89
      z#;)$fCV?L!jYods(ZD=NtQ;|n5g%p%dstWxQ}4xSEcKYbvOm5;n7ud<gBkN-KH<8?
      znEB0vc#*pH4Ti~caB}4tCeBVwCPtQV^iJOYeU%%pfA#lotE_t{Ch#c<K4YxUDaRMs
      zjVIX0|2cf=v*&~85qlm}6rL?imNPg@o~^VyM~M?;=H1rCd>$9pFn>&SdYO4Vzl@8g
      zv>|O}<ZEnrj<LI2E<eRvFDHhFv;<e5;VQqsrDbra+kLMU=6;C{_=$(}Gg*J}IZp%;
      zBhGQ$B%NxHaoi$ZkN;Fsob(^XZSHC$=B?F5Jcm1Li0zO#Gx8#JO7r<fNS7bdmhsLi
      zV9<5H)A$c|;GZ$DOazv}y$~!Dfn{*t2kWI(8|(qzjbXfp4_JWe)CVwP>kEDps7X)-
      zrk<m6_bI9``5Z{rrz8;lKFRjLCL&3phDGjcFxjlZOdX?*67An2?eZf9lavY~QN%~6
      p)2}@xZC0ViJhpE8tOdqb8G1RjAAZ*bdOQ|hiNQgoanrZ*{sD(kOECZd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ??N=0482??^Wn>vt5Kt5q%4l~1H!UrNC_pF_!9*!UtJ&RQ8Cqs&cLqiCrLy-<
      zZ>P_F@0>o=Ik}wTWPYps-s!)|es^Yem|ZmXF!#=Vp8LG~p5OD#{eOSG3*ZnwS5PCc
      zdr@1_Qbj%E6byScHErZfJv)_N)HAk%h`@GNp4ZG=s(e}}(BhsNR%%)=7+T)As-^Qf
      zm5c7{j9w@jmU({sgn&3H&^Th5MO!oN87=SV(fS9!EhGp2ejuP^EYsFaTcBocSfIX0
      z@0#rtXiBvgbS<B=7}dg(K=Z^#9Mg8eFmwF^bpwWJ*n<KSaZg+oP``H?BzLA@tZ24=
      zN?)y($h2L@{fQZY*yxpvzHBpvqJma|9p!AtrvizBodR91Ah17ft`LhX?T6Ib1v)F$
      z0%w7iKxD+q>M_)!Lq!wz3e?6EGcoK(mx4}#osY1f;xRl<uyVRRv;kI2Jh2(BdI&tB
      zVjH$Acv4_*Ij7-OTOTSEwACrcUUqDPt7}U!bfZH-vdj+x>s7x}DS=)YZl6H=Mg_tu
      zgfoT&QYxOpA%TX=ET`^S5@_}BgvjOVKds^!2|{!}?-UoLg`+B-bx$&Rt4N@_aZJT=
      zkOU336{J8M<B7Rpnd<W@R5VHiUr_NPh6J`qvPkTiyze=vT!<MS>?0~pV3ZVdmb0V`
      zLy6A~d!m<Ayeu6@BwMAclPb2NQDEDIVd|64Qd%#Z^ZKEA!pdm*8I3){{_qbY_JUCq
      z=%^y6jI7*wlG~Qsg92?2r#4wC{j(8BH<qc&S|}m*pRYM;<`^N1Ri!Lld+cXRT1A%u
      z0{a8U0lpQbWp6JBX*`r5OrxI6EZ4h|mfmT<f{Wz_ad|M3*NVkS%O0~FGaEFBg4gM4
      z6J^KE5MwXlO-aU41!<;O*7e*}C~C+`MFO#FgS8<IlCS|e7z!3by&p29Vi6Zu0CtK$
      zDy9C>7%t%`d6Cv+efMpKFYJRO&obBpfmX;qajUh`i<MK)lT##{J*Zd=4ptO2s<<pe
      zin2Xqh3i&0i08?RBb%7+r1M7R|3}~j**4cyyo2k^Qnn2zx@)fE(dNA7xT)d_Zu#xP
      zfVR1T7#U4YQ<tgL<U11t#C*frWw!3yC{hR`Z%(=MLc@nDK9bX+DXY(GPToEn6ow>a
      zE%rPNW#0lboVJ`oMjtceC#*?ATkgYyl12PfvL5`8B7)seu!Z}2enM*y<3Fd2yXOdS
      zR}NUNb<}A>Gvzz@wuSdw(1u;S5B$ToI<8a6HS9_Dm9Xy)4y>blb`A04k#!_y+aqh}
      zIUa3~_LOk2JzBzH`8bknkCgD-9SrpKmN3|t{22o!3`+}RcQF1FP1fKPpNAO~U@_bx
      zcMe*yf=&{oo3-h|DrfOE9K&@C;s(ZW6O*`w3Emj=!oq2u$iFH6&M*<Vdj)4{UGAoF
      zjtR7K`ku!OeRLv)SMeI*5tzjVKjk{EEtqo?zD@lI@5a}0X;wzPhBqeGq0RQJA#=L-
      z7t9Mxa(PRD3FrHMq^_6AZa1PYn8la$_!T<vHNSY@Fq3cHh?AaOKVp^gC76t(m9Se_
      zrj-ufeH#TvAc#gkpRxo;xXQd57|nPI_B}WoPG#+Y?_39}r{+5l@^i}*X(Gi{>P2bd
      zK=tMCLzkn$<txPABZNe!Ooxly*V0g1FO$F8>sM8-jO@k_lz3Qdb+zsi=if=Sd#;C0
      z?`BZ3HoS}X+_2j4KI>G&-y&}FDQOt4iRQ|HE;{`n={c1!kX`c42c?2m%`Vt~@cAd1
      c{TB;=-wmRTrf4V#q6;766BnIN-QYj_52?<K00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?-%}e^6#i}qBrIEg7lcxzYTJ;|VnIvWV6}z*pbbB4fQr92o7=D$Hkr+aDL&{p
      z<8;Q3`rtp&S39GDks12d2mcXgeD>M#yPHkeMD%5M?>*;y=R4my_wMh1|8@xA61E};
      z3G{CnJH}*5nq|jwcPG<U&X!IDVS#~0%R*M#E?oq=OVY87{JL~XR>59dm=_TD1WwEq
      z?2>EP?z)jL%ho@h{CODq@vnUWt>{=ghAZz&1`nqiVOQ$5q(IxOWn1obftJ|#x<GiY
      zkd+!*(5*wqiFOF|>d??3(3P@mxm4cHNN3f^<RvYsf=N;asd4RZhTTo8#8R4)R;y&f
      zld-BLZ`irXwCh-QE;+ugQVyw<gXCZv+a9_{JLo4cbxd?qrkZMLvrv?TrW&^%o3iLq
      zxl#nL3cS&%2Sr*mY$GSPDR<pfF*>6djR>@s6qdm0|4qey<fMC~uE0oayeZ<yn$&O}
      z;}OKz-9VwcC0B0ih$BIL377WAq{`4ChZ<&8m_~CliVFgLD$bj#qjVZ3aVdf~1%?9I
      z8l!bgDgFD*O=*5nOMJsLWr+<9m9_;=1$);R%+_ip=~B!U!y?aNzf<)&_bu#51Xl#k
      zH#T9x-ZAo4cExbmd{;X4K16VhV2#d%s@tQO_0ET1v7bf5b-WkByPUUwg(`kJZs4Xs
      zyJ}cDlebLPRui_)xN0FHdnGWh;}&iU=&Z7CQ9W*Mv4^Lk)L74;Tf<fLxQ=@|?&B<V
      zIvNvBd(o3?unEPlgQ`Z|LiL#N=BQB&9*PLw7Z?mQ)jLx+%T_)s9Ys8?V-?E+5vE<D
      zx*FE;K?DyQ2hWSrv4Ici$zGJ@@*{zB!SlA9*^;K4^k+KALBk4$qWFYka&1g4KGX3z
      z3|=oru_*1Vz=a@C?brvWDae|7ufS9g&5{2}!LQege57MZ6|AKTWyh4aEp=ISR8Pc3
      zB@|8bvgk;YS7bJPh8nf-ehy(6t!U#a;;o|G;mybIHiXq}NJ}SIv)mVaYw<mF#l^4a
      zdG7i5@!9DiU8esu+HnQ_+|#SxIEewSI6xTmk?s&F#J!GqVh^tz3pGbd)1)!)K@C*h
      zeJBQ!@+pET&=J~B6D-Wts7Lex$*98gcw%A?W5?pJvbbsDta<ojRsTA^?>>Uc>9m
      zz}pjN`BXxrxmNW1_Hizic!~Bz??eR`<G-NiXKsg}6zL@)z~D23C`<;*Kq-BGsxZ1p
      z<1GUB;B8!HtSY6A?-`yRmF$q;s+bg$Elx1mL~oMG5*57j5}k4Nu3+vN`VTO(v4=Y^
      z9v<K-KkmMuX~B0{V6&c~qvrD5D<p;(1*@{1VxhoevfU-yFPZr(GW;52_=aBJVjNHS
      zAODV>eTq4J&-464K)6(0xD--YBzhQky}FceoJlVqxYxojVDtbh8}SMr>|<>YAN77*
      i!KX^S3NjVQBMsF|0zY|~s?#*;X9^)lO9-2=_{Kj^K=?%f
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gJx>Bb5Qg7@0}LO6AgB~1HY%7%jD?918U&*f8|3=q*x;ID&)f%*pJhd2;ScZ!
      zSsG`77%`#PnVrcq?>oDn-|rs)&QVSvLO6c5rdHh-cIe4qRv#!&*zQz#*3c36V%B-J
      z#Y-Svm4HDwT8D3hV$kWYhJRT?&KI7v98-8c&kk;{33Nxuv|Z%~mI_SE2}Nx5b=j{J
      zrxQZFDU}Rbgy>1tBp7XXB$9|?JB=h#gltbL@eodi!h6)45%N9PW&?|DxL!4l;7R&~
      zYHxkdjgM*&iYH6hvDCQU4?L;HjjE}=i`u)uD^2{d_FHKF#R$p18+x|rO1)8Kqs^Hf
      z#UWUWf1XfA3~|m0t|Hjt!%|3bOmpXgGjWd9=E%G)kSxa}W55**G?C+5dI@0%d9JiT
      nfuj~^F{#;j?R1Xa{|X&8?=BQdOKPRSJWAMO4Z=Q8M{w{15r%v9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%~u;$6#u=DG&CJ(nx+VWDzvpt0yI)<wWexmDhj2v3Pb@nLwLe)hDn@Es4QLh
      z54dan*n19(>M7u{N3AQ*>DG-4*B-ZitkvI}873d(oVu9z-hJ=>?#J)mJCFbQ_Im(h
      zcrS{Oz^Qe8Q_odpsb(9_R&L(1WwmT>%9Y#F-Y}|FqijVH7U*r(tG^1wtI{@fvnXw)
      zJwJI}KuigA70OoC(JiN_n>88vF8TYvzoh>DS|F;I94b}?64S0#Q@2)gvyN?8t9gM)
      zN!kt{hnBq8AU1WMD{wL1H%huAsT+2-Dw3O}Z*V(w#jp(LRe{CyLBs#&=7}CNMLH{#
      zS7ZzwNNR}Vgusb5-ZI6*5O_+%Q5;dHJ`LU8sb53PJDt>^p-bTCv|-7a+Qzc9=k#Th
      zi6o}WB@(KWR?7Zm*jY13%b6Bd+Et9qM2(G#X-EQ2`r!pU)@zr~EHa-8D=m;}vD=_U
      zX5|Mp-K4RmTyHI}%aTJQF=Q|tMV7tLT2KvVaV~~Y<f1sg|6X$pGdFJA`c_rFKPQk$
      z``o*|;2Umpr2_6KFRwTEj;}8es#OF!*YxU|DiT%GnMoDgiyAKC1%cSAbjJ6)FPY99
      zYzo4ive%1ITww`Y6S`J2%oS;Of_<i?Yr(t>#*jx+E#n%lp+M5~N<~^L0;BC3<bZ46
      za9){sU745=7)Tcm#@ML%riPbsnPFP;PQ7A<vT3q195R8k`&qWBe_byh#k9ak^N_b|
      ztvV!z8<<feaLeVHlW~mf)-iMLXg1%?xO19p(hKU5Xu4K|&W1ak&OC7{V<_UCD7rMf
      ziv{%qG0PT<-(26IM`E+(nq86;hMKg#dc1Y|&MO-Dhh$#-Q$~>DcZgDyQV5+$s0rrz
      z6E(lw<7&3KC)BiaKSJF&j&V&;`iPha_x|k29*$>6cF>a@-a&76bO)(yUw8)tU-3DF
      zr@5x+2yh6f(a9za-a!%{@_q}?@a3Xs3WFG;M5C^2;hvQ9kb6?$snGk~0K*LA6i)l$
      zT;i^@LLJ*`b-k+OfR9}dJ>F~JA%rt{mhbE&oa3re`iwft{?zb~5cd%2*dBfaadYGW
      zQ{%Ub^j+jAr6{FbX^2uUrCwJ$PHBMBz&9AVi%598Ar_B;dnEf)9Hyske2y%>z$ACY
      zz@X<jh;NF8y1=-)aRtwll@QOIbw5(|qH^o>;=0tD^Ovqo&C~I13cQ5NK0fE;BPx^o
      zG}K7gg9dOU0COIF@Df8+&c_}izmRxk53hL)T#XOz;<^`6a3)Vz;~C!X;*C~EKQuTR
      z3mi>i%6D|Z&6-(0#EpeL+-$`^Zoqd2_}f9Cjal}#f`4uR*Ry=9Ex4x@{A*kA+ik%I
      z`2DRdcouVh+7sLrze!R#@Dn29zB=q;{t=4xK)T(A`GXDhCmZUo2Aj!%ibc1wOaB3$
      CX78W?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@ZBNrs6vzLE4a!Pk$fHwHkf~dTjDZ3=@F5eBFi<lf(Kn`y8&=Y_r0ocP6+Qzm
      zH1ZHNQQwjHp^WEt1@?j$l6Cjqo_ikt=a<tzf4~0(ki)EkCc@~pv1?>KQLeeB|0%m>
      zyTWs<U9tIAxK-2hOvf%bmL<wQpOQHRQ9@@BV;S~V_RYpNUnyuI^aj?NZ(7+oyH*vh
      zAwvkUs$tq61)B){#Y>&?gjTP%5jwT_71K+Ov9`MRe~RNIEi<NV`p*ct)YU@M>x5{*
      z*%UEwdm2=<sfeIUgNANGB$Zx|p%?uM`UoReL8jq45`?y$bDSQdYQXT?@G8EsVTrto
      zn;1}Vi_m>R>HJ#5ZQNl_!V*<s`<x|_N;l+bV4jy<3~5l%N{AOtTddTo8^T?cWe8nG
      zr)*g3hHJ|A&={4_31e5{mdr8qc*XFR9aqeq3u9a#q=dAF7+TxVjEsi+cpy&?HH;$5
      zKy0z+harTXvsN00Dz6}SHfzCDt@ETgu8J`XsGL1Rpk3L`1+2OU2Tl<NFU%`WsaCFp
      z#pd?PVn<G<ib-@4)RI$k%VOS?XcCvrfAEPAv_;z%Zox7<PcW(YoL#mY&$PFeg<o+t
      zSr!ip|C@P*WX~%k0HCu|P87e%8x8I3)xoC)H1QAU)iXzk>nFITXAaSGj2lN7{K6Ma
      zxXWut5XOmV5;2;_Fxxav!GTEP9`7XShDpDMNlW@6Qm2^WZSWM$kpp@72A!}ERVS`+
      zW*Q;<#uz_EJ#&olBcx<#=-Mt_Q~EI`4x$HKsxE1q1%PIu&~tRq3v|*;p4$S3=oN-(
      z9uu^HJS}2@mQbW3-qA`RyD#Xs6w01pHjnU_h4Z(LY}mjO`^e@JvgkhAeqi$b38sJ5
      sMX}h==Q08^RAL#ch|^jFnM7D3f+vCZQ{;J<V<S@oU6|oD$^-}g0p(UN`Tzg`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{^fD`kNS$fp8QR9XrJ75pfo*n)xxMxX@VmUdE>EZb&xOXS@j;H$=;
      z;DbiRL=wRVV`Ab@!gy!90@l@#v^!sS&YXMBo%#Or(`Nv~m{kxU#5S}oEpCfU(bApm
      z_>yS}J8x`>>|<eV>b9-t&1Bv%M8@Hsf=WWqpF8~G2q9Zox@M$>B@vdUQv{kJ)F$($
      z?P#Wx){LS!^-3T7vGVNQb3#qw@Hm@rcGf+k=;%iLfo88e+L|E}gsL&!)SYocMPDRM
      zs7&UwB8UovRH&#`&_HPP*%`zcgsQ=~DuSpX)X(asm@96s32RY86B=go8K$c-X&!r%
      zmCm}(Yz9kgPN)&ntkAMq!uh_keMd?qBIzL0Ij^D<U4)=+KM`7X-ZZw|)K(Q-AauBy
      z7@C=jFL?G$KFx@NG$M#@gcS7t<%XYs3NHPQbJ3>R&YWgUSh?b+Fr8zd7o|*LL{vo4
      z&-yys1y`G6OdLx$a|x;FfQmuHnQ%@xgiBtw?g{g28(c7nNJ)U>QwoN;IF39@b6nmE
      zVhACLc}>L#Mj5kEWXu~rn14h1oFegVsA$Jc_S^>~vdYQHiX*iD+ayAuSRnM4Mfgd~
      zrqh<JqVmjmLD4r0hAy~}{#y}D>9jC}bc93O`n<H<J1}XoQ<f&3Pbiq=l622GVMX>1
      z2a&>kc}E@)hRe&+FQ20;&!x%*x{xng88M~HtJ3DT!6igcr%h8>Nkg-3VRMbLll;~M
      z*ojl9;*sKxP9r4mA@?i!&o`G>>bQ50qlw#4^dst{yEwD*5se?v^p@uWXy$L7i+8}!
      zPz~yFfEJ!pOMB3YHXgB~=<x8qa<n{QDY}DmFHp0KZbt0c>;HoAOF6vA!^?a9`v^aZ
      zzDHB+J^FSK+s6?9<_5l@br(Y%a%JxK>c9@JE)T?ZaDDlR)Syg-nxRk&>ZujY)P_!K
      zN0>S=Lg%;$J263Bn4=3=q#l=av_#A!%@lD938o#!6^!9Fr#r&(jpL3h$z4o%DUEU)
      z;FJOtujSVjMG6awxwy@x)kEBXhf6GO(!;pw$y~jQ)Cx;I^`;DJ^q8*I9#jC+Zqy7O
      Maw}i26t_UbFNyz*f&c&j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U279T6g`t{HtBYo^dpU}Rjaj>bRW9<;!C9<1x1V>&=P3gHk+ZHy4{7{NvZ$I
      z2L($(!5`p{63<McBp5^%X6~Fh_ug~Q?2n&czXN!ThgFmWw$7u=C@f?=%$5ESc3(e>
      zV_6i3S*r6aInt4qRX75RmX}27Y52B(E@LfFi%F7Kx)5k}?DbHqB<!g4y&QB@q4x!R
      zmA;VLR3lM9^aR|eDpmSGpxoZ=3OI+^Kzb-+!N(lDDjEXKS=Bt$u`maLWgiu|CTjYq
      zq9)K_Px)qe(U<vg)K4Tioh*)$Zj>u?9)pfPQxv;B68q1YDZPFw_3>FQqk(lnV5hzN
      zpP8z7IW;yX<=~A%>S^3*_lyPe>@>EB^45O0`P)tJC>!Rne6Gxh>$Bc!&p3zs^rp;5
      zF7cyPHlk77D@5or@8@}XMV8>c8r;ASzM+0{gT-qs1?6k3e70$;T$kZ+-RJrU4Lm`U
      zaf^sQO2#d$0iuR=+$IWa;Lf-~$lWxk1YfZ7kwFQjpliW*6GbYcBD}kcd*kE-tDo#(
      tV@i%k95~@DJzJq=&+eZJuK6i!hfV8*nRHUf(kB9wLgWk~0uL-}>leUtpd$bP
      
      literal 0
      HcmV?d00001
      
      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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
      KKCsdL$NvCcdok7k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(-D=cO6ouExWRhtb+i9!ScIr>-w9MqfQSeTY(n3KP6*?NISDr}^H6=|-eyW01
      zL|?#LU%+djMexE0@NIknb)8IL^hO%U*=L`hZ>_WUk6+)u1Gt4X8-_r8UmnR`rh+03
      z^H)9p!9Y*dwv2a^gZAJsjANDBFa?_B$w<a~y+^}+734N7f!Xoub`i&N7%74Jk&FsP
      zu_0imTn^(sW={pIyI~yW_XNz&M%QQ9Om>xn8m3)LqA5`8bo~jC>%vAuV7ed1>S1v(
      zRO#ape72tiGV)~_>bzPs^XFkEu+~4zbMDZUwh_vRg7l{a7hO!ip`$EM4h0%A2vnA}
      zZwhofXQOs~hn%Y}TKXZ*ASu#7ZH2lZbN|-$hIT37-q*$5jAWLn%tl*a>3{a=y6Ok6
      zQK-hh4g>4DQ0(Zs_RnbYpM=ZZbDVAQgu&=|UoqviPBHU^nSnWuQ)B=IZ@l2$mpIRC
      zesmfaIMbhli=?x8xP)fKd{SxyEzdl~!e?@KPB3FW`$)QXf`w1Ne~v}wX%cwN@tB}D
      z6h6ix-j-t8Br%nkp$k_@+@=k^XL&VBjA>43?>%WB{vuc-LbHJ-T&@VKjG9pA!>^11
      aR=N1DysYbDu$FpU#tNfupulykqVWeK5tz^b
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>&u<%55dNOM_BxK!nzSaZ<F+OZ)K0r`n?iu56za4fi!^~a7=;wU+J1I6tk>1<
      zI!dn<|3HuYI#fdH1tC?c>Ow?%=fH(Ofj<DL0*Mphd%Gs22O{genKv_U=6f^W`scrY
      z+yQU_*L6e$avSERS@L9~=UV>lQtd`nsdCwLn%#~LO&}da*rwAiE!8(<!xxBOwj9g9
      zA`mSUYXaJQw<(i|Vkm_e;sS>kEJrT(I(6x;m~~qUj4pH=rd=~#OPvQs&0n`Xfs+dd
      zVVDz0wWT9n)0b5#n*w@atz4-TD>|MNnD`G}#kOVJw6D7DUPn6q^{s}y<y&1Rfg=K0
      zTRLrjJ>Thhe!edAPS<f5?OU5fo<>F?e_kL{2*Cu;t@^IzwC9R79mfPt@2liA<<?Tq
      zUuu=RJ*VmIl}cg^LpsI<CJ%bkWc8NC@@^7YoKTfdvWbPVDwKbw;VbK|G@D7B!h{Mt
      zEikqp;BwD#R6hw(#k`opORD`b&o^CPSqdo>1Iuko+RY)BJDb8e7;K`;yL_F1_(<7H
      zDV)az-rY3q9tS4M3f#pMUdAf|3A53Vo;P`3pf~{VKa~0RX@o?c)O)R#bOj=7WuCgN
      zmM2LcQQ;w+2UB}tFGz$lYX>r6FEukbToxCzjqaOR*e_BhS?%`RhJ4#n<U8^#tEbgy
      z$f}AO!MtsHo@8--FcY?cyyh1IM7YRjo^@&^N}()MeIy<P?j(2R1}<Zmdnyc|9N{T}
      zLpV$eFGn;cq7>QO*BIGGdUbTPkE2h<zryf%?$fEAZ!x@$vDH3~KS?KkLUvJ`)uOYp
      z`#5K0V%x~BX0*F~<f_{^wMxrOA1_>rACEu6WJc4rX0^{_A`>%q?(P11AMwXHV?<{j
      zV(Lp=Gqg~dGh(4KW5h$HXy~DmHxi*TW~2wc5hEQqzu0{=u28%)#q28ObdYcQPLPd4
      z#Z#zY3YCW<$f9IuzPmy|0l?h7-5-Kiji@&~#>^h<r@8Ogu?SR0H*tddyU?(}4&ERQ
      z7cqhNP{8{*i)H?Gt>8_3KyQtf5BXb$i8VCw3EGr*a1-C)V|-8j0qW?}^9v+?LkoXU
      z|C3RFp)LeAgpSX|A<ARu1QWc8AvGn;;#Fc$+G}`SO_kauY7wG%iaE|ZN-V$Q4catJ
      p<07t5ixJZ>vAsoBJS6hKCNvx!cq6#Vq!E-cPnl%iEY~$8{sG}pMTP(X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;5r=5S>M|1r$(0#E+8~xX|cDV~vRiJQ*O8c<{C^o4VK!vfZNmH4pv(f0S`r
      zpp6t_I5bV(zBe;(=6(NsegVKaoNACEP#w}SHGIwjDb&QE%r@?rtwEMRIeN0GYZ={_
      zA!ka1EdsT)p!@D}NkFr>>QILhs5F`niMX$%a4i!F{+!TiOyA?aJ)|%(qPCe9HlGOO
      z+aHXNl<-_%gB=2A=_xv%iUx_91avwWv|S}91g`$;7>_brL8LRA&jbpRJKmVj3TYe*
      z3hooA&s_#e*hbq894=`%B3jM$h2>HeNZiKdD&Eb)68?0)#VRHC%Gq0wOGo%V7AA1L
      zmW@Oi87bm{5(ph!tgbdY;1X+(Ym1ioOy)2{r@Hc{F~L*!y+AU4FKpbMj$v$tx5nfV
      z*uZZS!>eODHP9hUX%6y;77)$ie;bh^lopV33fYA{<m{s=0~OR%;UKD3gTolFBYqTi
      KLF71Mp8Nt9-Ry4w
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%!A=4(5S^m9uz;W-3gW>VT-bOt7!zagWR!%&gSS$ewOG2O+a=-GJoo{AlySDO
      zE^NY~dC9!jH=TL?`ThC^fE&1SAV;7*qf6?AoJCrgl}DNM9+(^|qgM_b5~x{TQssNE
      zlNo2mfg=L-wE8Fm#py(H0%f0@krs-H1(gIYyS?XK_kVJL;&4aY>F(9`-U&2O{la}}
      z#FCG=o{KOPfeHy6bbD_EToER$E#Zv{ola9Ff$MC8c+^xdh`ZD@p9k9w2vpezXP>E#
      zKxwhvzm*Ib86mx)isoG7D+7fi7RSO@)I=J0bGuJ>mzg{Btb6n+m|$#huReiBVq+6o
      zS5c8?aSB;_9T?K?IEXakPa;mKlH}Wu!@)3dV|eoTDO?QPfda(A7s0hyg0jU599yhH
      h&Em-hPd8YH2D+S~OAeZN{~Ru?t_5wZ;cu`^=MT1UtSkTk
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&F;2rk5Jmquc8nZ{ga8F}G$>GDAqs?oKqwFiWVr#{Z=4k@GP}rLBcS6R9D#-k
      ziGl-g3=V>rScr;(W@i5E)1RIB_<DN>u!%(<4q^35+={4_Syd=|ABilF4zfHkc4R6&
      zIl9Z_ja5eba0&A@n+tsr{XP)7r7V=lQ(2S@o*y3)=!DQ78eLkUZ7T9gddcVW_T$sT
      zKB2j*w6c4IMt?0OxI;6M0UDSM5uior#7fJgx*p5oOpJ3$=*1@E0fNV{{%N}QQk8^$
      z{J#YTgy7UvMJ7jT>bdmSmK#$qtbqT<Cn7AvLzA=5%E1g*?1C1@kULwo2E6rGv|nnZ
      b!!ckK*nx`yx?F{fF@!nvIP(=bI#~DyJ#1aW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g&q_i;6vn?XZR}=cs}OtuMR0K8%4lb8lmd6{#_=E{bLYz38KGBe(F62Q(dnu|
      zgp0%Z;C$zI{(OGDe*hTaR-z_wx6wPTN-`<f_@=aR>M0ayD^V9{S4F4&T0Ji}WTM3R
      zzm}I^y|G*E1TOSyHK%+@L7>~4{YC%!CjD1|R-nAt(b3(s<x$GKB9sE1UVqO>(K<Et
      zDW{;LE&PN>E$rIsm;womPx<Z#CwF*YMz$zYF!X30L$d1Z;m^)|qre$QgCAArKS(rL
      X@X$lf4*3!-c3rWnhHF+gm1=(jVys>j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&u}T9$5QhIr?sDOBF)=EFogktXIm9w*6BU$03-$WVx#-Hd7k2m5JdaOcrC9g?
      zK91Pfh?7HXY;0!cpZ)k}cHX{TUIA=kAwZ3=axHE}Y-Ls&<tDMn@;DLJo!n_@_U|(}
      zcB;?;Ji=T>=0ab_zYm12l}3p?mBuo7ez-@VBSL#vXzPS_smM#|KR<j-`tQw8LStKL
      z<#q}6we^(X4T}pIqK=seAzFk^qO?3NZ${FbiBT>Iy`;!^fZ#E#f0~}VQkJlq{Ac|E
      zAv`TglgR@$bzJ=W!~WC<%iz8EID{qmXmAc#)zIXMJ<#G9ac8U2fWPsC_G5)~IEIV@
      X19;d$m#c^|hA@jBXTBiE8s@(NbNF26
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&&n^T(5XQfno!ODuS-aMsgBv2j!9=(%E{lXr)&X<x9UWRmxAgQZ9>PP2C*UG+
      z@BkjfV~E;~xVX4f)mQz?SJn0L_4W>61G6DK!qSx(ilmfzWtF>6L|!C)<Bo5&wEK6t
      zym89t5I$jg3>HFPB)<=Yb}6kAMJ8>@;Mw6GfsP2xp3$Wf+GV1sWbpF&usGa$dL-1h
      zl~!(-P+M8e2!79;%Lp}0#)!}$v{I#Izq%esdnyKnBy>`f^8mqPSpPJAcd1Ika{7<$
      zyM*Y(R5q6fYGgR~=YQ)X7c79c;>!@`5unaFWaVLkE4Dy`W6Yh+u?B**S2Ul;NQ+~{
      YDA0wE9kjWM8Dj`j=y2xyar7|r4I>F#2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gy>0?A5QJwBa=t)FprWA*1vH#eq@pGj3P^Nx#<xO7)*ZSt`FXVzc>o>?u~-NR
      zAsSmdJG1*~_lLiK0B`6hM1<}}f9bShvn#FtO|^09>^tXDp-yOrrqlU4ovk)(JR#9p
      z77T><!Sp&jFKuq@R=e@t#&Ah!OnwY+y)E)e;gRrqJ>`V(S@^Kz;v_UPcI^2K_eAL5
      z#-_Tu$thc%d3*PH1J<J0m4-j8V_^)L(P>3YAk^e!KuvD)fLLlJRbBo>l*UDg5g|cS
      Ov=*MlL3oijLi-5BYGmvH
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9Gu?oU47=-Vy+SEGepqmfSE(YiBPJ%)=w-`c6i47*H;Hx?K06vu1>Y%uOcierC
      z=j{$)jR`|USk~eqxL2}uI$XJshVPX-Y45dd7>0z|yJ19A@!hdjG7w^QZiVrLMYjD<
      zi~K-Hf-Qs7O+}bz`A_FV3qo4j)=9O|MiHjp%T>P@69|LO5{Np35n}Wv3`s`_<DMgZ
      E0lg_RKmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWmTT22#7(L&*x@zksQ@gxHFRnpL&qhRoPfLM{552AHWMj4)>nQlI3W}hIen3Ae
      z`gT?bl3_02<(xTl=KJUK3&1&!EEt65%wPHLLIlfLs<j)4Sh?N4XTc;?b#3m4Q}=c}
      z6M-U_YW*w-HSe!9P_YcB9YXFxhEiP;8m;ZJGh%QznusDY*s)>3CS+R9r~pFQMix0j
      z#gn19Sw4+LJoLwNeNhzn^N}CRB;F)V^&l67gY=dy?JUKb3N_S9>n&$n3?Z+gR5zg@
      z7k#mc9>s)kvQhqzlTDHLGVqn?ICq5NAX>(O=*dK3p4~c2+%S*%B^kDsU?k7slgYzE
      zo-+lGdYm_SFSb8;p1z~>%8`KzuVszA;{I#y?V`%LX4;Ki)Hq_CW+jgIP~UL6yc5^5
      j?KhNO_>j`&bkfr_cG{5A@UJ!)ocwMR``phqYSiH`v^8q?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-A)rh7>3`kv|Un*{8^}|Krt~;h>h_O(vzwPX*{sCXPOMlq>Nd1&Fro}C*FXU
      z;T3q)#6&N^Tku|t?`$`ut#~qjdA{d+XXe+R?>_-N!hH_~!PZ;#UbSNFr`9B&TE4bP
      ztMjt^^rNreB_;|z6a^2ap<^9ttAbu$bj1pmVr`8I2HM7~eRc9gAg6+bP87z83X_2f
      zQeFDG{^j%UAE#PSJ~E+6+Jd>=y@8<EiOzKebGTVW1vdnXT@&gT>E)TWeRUSFVx=4T
      zY@pbN`~0w&T$otU=uYSS=Q4+a+U^(%R5)z)5^KWY;oiXYtht`6jB*(dU7yS~i3yt5
      z6i;yd3mbiKv2x>vGuHV8%vSPM8Z&?GT3%3}RL_dGooG`~=|!pa^)usMVtMkL9=fz>
      zfbsdcf(?{V=In7-z&wgv^F=vUdGeUEa4t1RSooG9iySLNfg{3gEOAvGLs-TNcTTX%
      z(Fxil9b0bhk8o?&aLne<GsD`L$_?bPhIKletDd_~7}<sPn)?SM+@6*7Sk%vC+hgoX
      m=HX5zV=3<99$Pu>X0DxzxHW5i&4_RQ6VbU`#0EnZu=5wVL7Mmg
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0UUmj1Mh3a8#Ii*F;?(5QqRf&?{p8f55`E_&pWxJ-)Z~)<B6bEA
      zMg{?}nw-SEbbbG%ETA|$0~;fQFhbNhCqFMWF)1gNk%2WC#Aaj=(a`ikD1d0Q21@59
      zmLz8|GDvGcWHBtZ){J6g;0n$!ElN&x%LJJyfaDxKkdZ*U85x*?m=)*`CZPM+88{d~
      R?&M_P0*Wv)aD&7dcmQ;zJ7)j@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}Yi|=r6g}fO*~DxbFnRE76UxIj!6p#e219`uLJcNB0+u2^pvihj7MWdZcO2^e
      zkNyn=5+qe4(SGhf;J=`XGrQgpNFqM$Jnr7P_uO;O%zyv?{T{#+7A&L$&ODcEvJ@((
      z9k{wva#Wy86%G%iUOkyC7F5eZT3~<V+?3u*>HhL_<!B3i0>hEj^-GH?aAni|LoPQJ
      zox^BbS3&6d-s9>`0dYrQu;P26mY%N5W?S{<KfJm(_t85jkk*|Rk7aA0lPv1M^;XLK
      z*N|EYq@K(Q^j&d1SN|$7mfPw2WHw)?d&O_440<qZV?Ra&dUE;t0C>cPjX|?IY~wo&
      z2@KU-PtCVqEUVyAj5}NN9oei)*1|fv#<X5_LxFsp@!NC}^S(gI#)1m{<{HZy&UMdj
      zV~<XmTfaN1rAbg|;e^2Pgv*#;5}@RZEuRcd;<SZR0;eLsojBZQt|PUYlaBU-j*T<O
      z5y^_u)rfS5NXom=wr5>m#w%MW2pmf=&UUoA5d^YR^;&HmW6dCsNyGX%f!>^HhXGx(
      zaUN6D#ESA%K!Ay|1g5)isGn_N%6lR*!X%E10^<ped0%gr-WFXJF0tj2SHyZOr`fjK
      zY^b0gKX>UaCNvg}`ilv)%i|eLW5(2SSzu&0)>zv#uGqK=%CS$jTFPq(oZHQHhg7>T
      z$|l5h8#h2{_iI1K__bbQD}66u#tgS?%;C1cfVm14*$&y)$?a($tp@%}qu+$ch=9*l
      z3)Q{vez)mcJo4f){+=EA+TF-{(QgNinsd!VFqkk}G_4S@s~$yAY05BERQ&^iqfw8N
      zHhlRAQNGD}K0}z`-R<Gm%kc;-^m9GH_bi1BvgUGgoi$fGvZdL)1N6vpw?v;F&O?O_
      z94wrDhtb01I~;lwIUeDdMVjMNj*=ml8N|U+TE^pJIELfgF+h|?L@Sdh#S`D-2hQWP
      zrI~IbO86&1rf8Wdyv68W_;C~YB`yzb;OshzuWOsQu(XNkrR+}|_{I3Fqr8r58>sOA
      z&3`fR4?_VX7{zZ4WFVf7YV}!ni*}!X0*s-}8@7fb=PAyYpd;9$aq=$gF`U31+-1ZR
      TYK)Y^J<M~?&?0aj4`F`-N?nr-
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0U2_v<6n@@(kP?<sVhfbdfQU^~8frnHDWDA?f$-T9ELCBfzD*XxCTuo*DdGn+
      zju(#JIXK>X!v!d&Q#&I#;|JoUzrpbbIF2yRh|jy5v<)eEv73G0J@0d#bDnd~=KjCm
      zeg~ij*8=betT>~e*JCA_DO-kpDVC9z9ZT?bM7MJR_yk%UgS>8LV~0o2$c!DpJb_kc
      z*C@mWrDf=O<FY=QmozRp%e1sgM!`Iu+$|vX3oJ|&%#y8}c3RJurGIGaN1t8!?e~8K
      zeD<XxkA+e*P6lnuFtc%idHsfI*gFN<IvQU`(mb3fjL9Ip2x(}>GXma@NP0eaK!b*b
      z0*g|HDG!y;j!J9D<rhj7GI~C(lQa2NH+^=_C<&}`z092o@(E<6J><}B?T9oo63}R{
      z$IKMQ$e(yiYF1_2$j6elv~;^*5orFPku`O@Y%%iAIgR=o;diQx$a7^qPw2XgxT?e>
      zCxdtv&jql)PBS;18p2o`WNMz*(18e3L#|3@W8BE-wj^e#j!DWW+3^L4D!?v*W=9_<
      z5cP(t7V1^2k`VA@iULhJy_8exIGQ9Cv0e?E(4!E0`Q9$LywrNDhHdDfoF(J344{vh
      zd%PM3%H!kG3Sv9@mDG!xpvoew0tl-@?F;9nnYDA_9bskkl7^Qtz<lY&qBO?@y5_2&
      zh8(+I;tFB6LfFIZ=twq7UA1e%D<s_=90{r@k{b5o0OMt1l|Xgps@YM<2Nm+6$0*e#
      zd>W-A>fljDDe)9agH#~+x^i?}!xpTdQhC;c3p}kKYe^(|8O)I-OXWN%FME=6fncq$
      zC3ETPh>S3|!95o<vS_o*O97k~h&h@yHcz#{YJD+%O7%yB$G8K%rJ)l0qps-_;p3`3
      zv<n<z@|Y~<^$aVozDuhq4q%*}?r`PsayMCuQa?M*EPx#Q<O$)ZYFl5Mk94Ja>Wqfh
      zz?^51SJin|VCfv8jSNK60kCbtHSdQC_U!37i@-TTI9ATsbz5biY~;tJ)dcpc6F_$@
      z8{HZ9L3fQ*A6uY^esw#qO6G#V#yRNBRYQ&g)_)PlgD@3_iMKSojVl~lY8WT<a*3I(
      zYp0={Rk)z0X?!;1%r47}M|%E8z=ryup25LF*~-YhhWfHBti{)@5<{_*rYWsNUN4o@
      z^jc7RO-+1jDT<euA08}608M<J&u^XwL4?$&fzLts)Fk1X7OwX4ok#6<PGE6o^c%F^
      za_pDz-b^guW7>a0luxmgt0k^AmZ6<1g{Dv$D*dgfV#b^`;P1SR)|)i)@E9<U+rV`P
      zMsuG1E{soLC021~wPU-6PaN93D}wLyw4$*o`aQ(w@Oy7W??N0@&|SPLSa%(5ofT~8
      z;x&m*4?XyOH@r6-Eai7OJp(tHj#~`lD~9zo{oO{4zbd4#i$5LGCTv7Ey*FbWZQAKy
      zs0m)>v&&fnZ7pjQhYDWEDesfmEO2_psT=H_S;4kd9SAj@s$lo%+D{5;1(AwQ;zfZS
      z-knp}KCHke5byJ~`$9V^*tN2PL})J`PJD@F?Y`)$YhE#leI8VhY6(_w_{25Oqm^Gg
      z`h)hzXjZ|{OzJl{Rqz9S{YbrjVrV~;!##B27lwEryZL(nzdCF;yNs%A{Wyv=PLQt}
      z^V{$$!*9ku4D-oLj5tnW1U^d0NkFSN7>$p=r<@)Au^oPax#P+_O1likh*vu!9l<|z
      zsu$>;Le|Lwb7M^4&6}wyn8Q;j4u`A>*lzO66<nOarDz40??T=oI9S>(I7L{c{c5TX
      z{K=iauow@xe#pN85BS-7$iV-00(MKfw;J$bs{RhH63K&idDesXSc9t21?QZ=2hjcl
      D-9&K4
      
      literal 0
      HcmV?d00001
      
      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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
      ay|KS+W9u9tufJRIHcMUxaFxnUc=umSx~z5p
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKr%Tv=(6vn?>T8bq+EKd;>d|)3yM0|tHXcY&hIE=;O_7d)tXqzxeD!O#3TOD`0
      zaN|}tFvG$vGyWm|8II>Bu?=bJ=BBy*zTY|bJ2$`n9Q_0^kL4s{4EY!Q6<2Mc)h*q5
      zqiVu()B-IV+}V9l*Q-0idh}WodyZ}zNyHhZPZ}NzLs-08@&OGkL%%I7omb1kvdQ~w
      z^&taWW9TWEhV5{}Df4PwBvy}qe>z%8er4!f(hc2NX6VRd%M9^?xg%2OK(B%nx*7V4
      zx*?v_Yum!w<l9xjkS>}U72s5c-u=zEv#Z+-v&EBr{`X*u3_}^uP~}ENEjgBMR2H*k
      zS${~@AE35sc16~7xj`AjXwba5Ynl79A=f{K@g&YN3^Z*Gfr1H~W9V{BuOP!<CfmwS
      zfnicMF~yJzR`S~nI2vfG&5+P|-KLy|A{7#QS-~`}Fr1Rn7d-V$utWeD31LW8gtIPe
      zn^)Xv<rHMxL(#Sm9652QCQ*hvry!3R`D>geyhpJ+C5LM-H!ZHYylV=s%IW`$SU1%T
      zPh|;S^G9?;iWcY!*^b<8oH!(IrEJlq7nV=CD=D{I%)W+BS~BaFCRTKL_a@qXBy)1m
      zn4)ky=rdy&Ljs-jOwwBnT{K1_p_^8Pb{6Q#=$XhJqUVPz>7zA8Qs6$~D4?HyDV_+Y
      zk)}5Z7@$=GmPskKow@uW2E&9R6<>D=!=B0~kRHPrA%<j)`m8l-S+df({4tX38<P10
      zoFVS{Fn5bM&jZ|agPX<$T=cmz1li+LqRKE7x5wPf0WNJdiM{TB+tjH>vFy0iNl)LP
      zDt@;z3CWKUnXZ}7SKWGEh}rK{C<Ym#OdY6221u7K!aN%`??;;HtBo+LVe{KaGu>w2
      z9Gv}pGY@a}?`Zb#+W@4oW%k#@gb$SHN0-n#`<u8$3?}b;6zfiy^_f^-+Oig1){-0i
      Fy}u0qDFFZg
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      z2n7&r){G3?>8T|!ix?T?VT!Q31gM@XIKQ+gIn^x_WVRGcCyEpGK-K`=!^pr4#H>JH
      ZG6CJp&cML{ayusj7f=LfF-V+&2LK-NNHG8a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK{5It8{w^mED51)I8te`D=C@_MOf<Q_#e7~-PUb*hd-MdmhtEZrcen3Ae
      znl%w3uwG{F%$%7y_sqxV+dF_`R9$2Qc7}2y{g{HpDEsUOWUSv{(~@>@l_=dK(;h1q
      zjzD<|)iUh+_uU}{Rv>?_LS-)mvbDXAfYXS2<ROdYB67$Jl$t7}yJXZQ^C-KT1S-ua
      zkh&v{O5<75u>%zg>^A>JrY=yRu+NjH1O?i)MU5?K<cKVpxW2atH~Z}a#fi4O!@GV8
      zXlzv!#x5!X2Y-{BcevOPIQrRe8&0HFy-VGXSn9!O&THPqJKIrW0=iMDRMp>iI7~-6
      z+hD=@hCqg2EHqn}qZ9UmeQy61OE1&1$JS#Qa0&-!DDbQJ4Pw87^scKYai+|bJR{ez
      L&e0}E8Ekz4vi_J2
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh4Za#Ii*F;?(5QqRf&?{p8f55`AYN5s+At5s+Avn44OX
      zT2#!=z{1EN09Klln3t~apOlrFT*A)4#>gOy5OvPU&r3~A%1LEpU`+<G85u-0G<^^X
      zAlj@M8MuP;ON)|I-7-OH#WC&E1L*-8&d9(F#H>K~G6EgI&cFd;F>nG&CI&75R&X`h
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O;6iE5Ph4N7>rBWKq>vArJyQsARvxGl~CGBmC`m+Q0^ONNfsG9TCXGJU%?5)
      zfgjKxRrT4pQUdK^XLn|2=Dm5lzkc7|0XW3Ai;}>{b2*WXL<OnQcG?J(v5gi@N7_+O
      zhI$}vY<3P^I08@e+)zft#?St_3apEYz~+31j?ohxs-YU31Xjn9K;>9R+I|u!*LQmY
      zPAeWL4`nR-aIq**ZR<$=NH6-zoXUQv1ZwR#kYP_6o%u!3u_K)b)Z6oT|6|-Fo=FM6
      zR^PoZnIYa>#Hzr0Ry*dPlfQ%R+v%9xp5uj!btcS1bqkezY~ZE9@=)21iN|a*rH}=&
      z9HncGj)u)y;36d8b>q|o>MKPe!XvHsGfV;hTNEkN3T2WgPF?*H1!0`9>33yE@xaA9
      zft`7J|5n1s7Cs29knCr5CezTKa>j?U6zp&S%Eq<8FH+*-1JPUJ>4>}FzOZ)<?<&9c
      zX}vtnz~SW+`u=?qR#2tKKZ9qqS%a)~)}T_W-C*sKrxLU2=h4Ybb)~2-<5iyZ8gICJ
      OMLkf%Tlx+*@%|541+Aq3
      
      literal 0
      HcmV?d00001
      
      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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
      IpWKH22XYDp7ytkO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U2_vv7=BK&N!oNvYuW&%AV?M4O-ocNexw#?`AP}2m^KA<)FoZg)qF6!8!i3>
      zKT&UWlpDG60%xQdaYk+&opJC|z12VB_?+GCCQZ|hH`#M`-{*PX_c_md^4q`ne**9{
      zUW*|lF!7fDj-IxSV%;*Go9UuqIq6ycEa=W^K`)ytx>K{xtQCzLj#;b5pa>k<3^`|1
      z4NEWQeTpDfpx-tuQ!f_`%O-Xyds;xu3G~j^s<xw79rD+W$REeA?Eg}ks|ZBQ>WZ<(
      zpsYZbtV9+ea3Hri;ieih0?{e6YC6*b;nA^zfHGTKG2#$NsMv)8f#j%1P}ZxZbl$Pd
      zYAGWF`*LR0xKyuPGpt4ZTG=2XS1Yn!omF%1zf_!6(-uhYRK-@MGI4~F=w=!FRK(FE
      zSNm0{=w+Q1yCjpjZM9Y<u(!3=#Z{~JuB?RR#_<?NVmK@?(1Zm6DjvrZ6wRr5{Rs??
      zj&0?asyr!G85KC+n#otC1rbnZcIrEml|n{}dfldc$&Ppd?f<5dZPJn|jv_74Esu59
      zqaJUiXx7%+WAkmC?mia7GXldqI7h`Ko}~*)h9eDcUN?)nWALOC8`9Msvz*SEwv*|>
      zb9f<!=LL4TjKLQbFM<|SZ1X(|Km%rDcu8QSc}7|3>G`@de|@G_uddj^e8e$@6Y?<n
      zVmKvmxCK%!8zsGb$|}_>M%8ISoWu!%I4izr*tTAx&BHjOVpbl0kKc$lGzT}D=seo2
      zxr^~`ao*Awdd~*V^<}H3VdPX~F(-45P`4W#Bq#6a#kUtNz37&*pyCqxnl3hL=>;#!
      zGW3e;;xO_u=rYIFcI4Z@Hf_OMS(bT28J5p-MY7O)zUMZ;ehfv**XmZ$IBUweKDhmj
      zc2vsF+2Y~xRt#ewB8YMq<1U0QB;@dNosgr;XD`3;$oSjO-6UfKpHWRT@W^*ug)qq9
      zIG;eCT#HC@rFv1=jXm5+h5?^pfsrz{UrRNxR}0<4kS6Y7xXG1(!tbw>>kab0$=tfj
      zx!c3}oMgZOJW5u{e$Z#n5hd9NwbZYOi93j;)^R8$LJb^gX7H*lv!+T5^I*U{h%snB
      zbINDFKxU~}x0V|3NVi7uZn|`byug62+b@)0msm>3E6FE*$mj@(3!Wh3>lj~7Dxup*
      zPW*zQq%yINr+&b3f!pZ$5mQ$in0_$9=9D{7!VLV{Uw$P&pXBG62igP$)shOeZ8oh@
      zOyGUy`hW-gAuIg|Bls98e1aL=!W=%uJU+t`K6ksA^r{NFC<I*;{4Q9tYZ56-!L^OT
      zo;aI+XK6mASt42kr|)v%c}2Pn_`*%%`6S{e5jcx;TfpCAxE=gWNAP)MI)I11ZOeSO
      zBbbA}1>C@e_RRM?g866E0erC?{BuVzZxA1RjL!|h=9?$y+4UjE;`eO`F8c)2lvvt7
      wD!ue_JHwwm(Z5^<Z<M0J*+x0GOKx)BF`c-U+qwQG*FW2GU3Ix$afN^NKlrQIwEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh2~{#Ii*F;?(5QqRf&?{p8f55`AYN5s+At5tf*fnUYwN
      zUlf#DT$)qD&cMRRAOKdMlbDyT@1K;FnhX?WV`LCUh&t!w=cOhl<)kt)uqK1pj0_?g
      znmz~x5N+0s3|ztarA5i9ZkZspGB_;N18D@>z{tQ1#H>J<GXh<~&cFd;F>nG&CI&75
      DPyIRt
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK%6g{J>Tbrrb7d`fr2DwF#S`bnYEF~GfkLyK8)?JyMmHJsd1wHfw`cctc
      zlZ7C}m-~J0oVn-g`{NV91rBZG1WqP$F5Q^?L@V>^`lOB9Vbhgn+?RnGN)zecOxdsm
      zs*B-3h9mcJFd^Rv6x%9P=2{?MZ}bJMPBbJ3d2E(YKvAILsgNF$>45aJ90Vj#^CDjc
      zeW_KNFN>BLt5~4ntx2aPP^NIiyO$(+v97N|w^lW~Qp+hB(s64&3QrU#fngTT?Tb${
      zqoOdjQ4=^@=K~qW#-70WU&wtpPw##cj3Sm~Jk7XeD1NmUCEBMul^*oyKfRjiQtKEj
      z466;~IATHA+MHdo7wikC@7Q=-v>mn%j{$91xWX1krQad;+eq~<qr#OccZxi@gI&({
      IIm_YT2m1S{%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0UUmj1Mh5w;#Ii*F;?(5QqRf&?{p8f55`AYN5uBQnnp~1!#LmFN
      z$RGe#l#`g3uJ50e1r%pzU}IzuMu<A+<maU(Cgr3uGO#9t*o+J!8k#-`1rTl4K<V7X
      zlH?3V24xM1ET+wwX_?81C8^e$QH%^+!TF^{$*FFcAd>}=-K7UI8|Vl|24)~;1^S2y
      Y=umbB4hE2eIT^TsB8&{&AaMpB012)@O#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+fKqj5IqZpVy&QvcT~K@fDa<^5o2Od6BASt2=Aq=u%@<VyEWmj^hx7`AK*tB
      zr?oMli4QxoGkfODZ9hKW-T~CGqa(qvac4bRRiE2|6lzqpxm48#iMH}2->vD;7-l1k
      zW4VLsP4AA|N=N!nWJ`)i;qU?PpV~@zE<^fQxI&#UB+Hd9gVyl++&~i3CUj&Na!uj#
      z>)^h}Wyk6{oFU)zY|H6dQiOKw)YMS;45jA(mDVYb3@B}(T=|BM6<p6?o*^4{=ZB3Q
      zsL=z}vVbKWiwujC)a`g0CYG_nFg@U^CA|j<9x?2d$JpCS3U^Q+PZ+xxjJ6j@n_tjS
      zDD}@w55imw=B4X$*>Ei1=hR*9+_fFgC$cN9hF)LCCPQ(utjXP&*upjuQ*mef)(RZe
      zp`L!XA6J7z(0J&iX!Qv?v;eZE=ypV!kxuQuz<7?HO_D|g^P$n>4B6&42wCLFqCbH-
      uk|9Az9TKGT`BxO4=$0Tf*^xIGi%!SUNvuYwH55r3aXgU6I@uaFQ2GMtx}Bc@
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j%Tv=(6vn?>T8bq+EKd;;RG<$eBEEUdIQ20y#c?baw;|jq(Kf*(6<xa2t!{Pe
      zRyW|daO;dS{z*EXlf*V{!{(;B{l4Eh_d7Sg{(k=fU<vC<!~|xaX)iU^k$T-W+}Elu
      zZC5SOQgSU@-hHLZeb=zeB;o>dt<w9_l(tqa1=faEV9=4ap;gP$cF6nW!5smyA<$Q_
      zOvlwsx2#p`GBLCEd+Nov!9N1stA=T~>jGVwY*`>)uy$n%UFcVkLa)F;(J<x1dTmGA
      zTiQ-l3Z#pcP6ae7L+`<6+}$%Af%#%<pT`_&MPMZ3ORJh$QA@6En3a`mnJbTQ<soXQ
      z=2W<vM-0mZ#>3{VJ=;3qRy_X%CX+ZVFx0d)1PabzN}$KJ{DK0*nQSLN1%YX9Vn!er
      zt`xKxax~CXTOgrpb%zofiBvFlR>2(R1x|421z)`oE)fDoLIhG3>26BL(JJ1Yatbou
      zp=dh*j<p=BN#t-B738tNzb0w6`xHCfHcfxNWox>}yR6_6&;5VIhNV98RkqY>!HBN1
      zXqhgL<MM9f#BJhE$~IkeX$O>BOu5lv4m5Pql2x~LdC%ZmH`e)KEb@pkL$P+zM<p<U
      z1iI;&q_-G)Xn@2(FRcpgEYnlaGm$$&-&apEKx>Mmz-`1)z##ond=X9}O>YbsqLl&b
      zq-1S(E`NmKc0!SgZ+e7LUlkBYk5P;fgIVJNYlB*5RyvpeiKO_9Wd0DRh<mo3yG@*@
      zA#S?CP2(KS2V4$;dwfh(4ny&J%q<+^!giC`@BOz!o$3_Ju1B5r^$n^LbjwLFKSpG_
      zU;$tC>iHpNzfhqVI7Chzs6_@y*Db<)vE6(SX{PTr!mPHN-$a_}9tY;|?3bE(__KdY
      wvwwFCfQ=oqztT>4Pl<l;2%WRPhU>%-eAA;?H``esiS_AN){4hk^@3mf2X~qwWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh3O4#Ii*F;?(5QqRf&?{p8f55`AYN5nPgAlp2s&l$e`Z
      zl3G;E&cMRRAOKdIlbDyT@1K;Fnq0!pz{bcRj1YCs$<IqoOv*`RWMEAOu^AaeG&Fq>
      z3Lx6785y{O^Gl18Q{6H_Y9+8(s0Y#nG@X%w8HibdE@lL}fSrK@#A4tCl1vO-0RBZb
      A+W-In
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL%SyvQ6g?B8vGG-3^=)w>_yD6jB~_53A_kR4T)COXu^ma1GMyCtELVaHKfsR?
      zZ|bvPRovX%JNGf?oZNYOes~11fxHESA%D%A+-Zm)QBvPJfl%5hlJRw{gkP5yOonW$
      zDCAMaIVoR@Kr{3dWF++t!|Iav(}+{9cui=b8t(ErgS~eXh`N?>)Uc3YSa0t=jG8=@
      zm%CvlCOFmFNB2h?gISC(g^e!s_oEvF3|&j<<RMQ+;y9_5g*xNqP%w;malpfKu4Ed&
      z9h$l-8w?9Sf+pTBQLLxfsrb(f8OB9aAsh!nry|NL8E`FV#8&4SA|yd$<u1QMO0*1}
      zVjQNYB$I1lf?=^;ruM(|MVpK-D-qX;BKjBqy|S>{Nt`!6?hdIl@X55~5yQ>zuPb@}
      zF9aF<f3|i2TJl-|Z9h&_AogXt3&US`dM#DcTmY>Oy#$bDv`IZMU{PdJ)C-%uZSoBI
      zcCXx{?~WV;gJkX2;Sm*j7@|1$T7)cyDWY<WU=)nr%^1ch_dYa-Ny-|SqRcdAzRAqe
      Jg>$W%`4>TH3kv`M
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?M@Rx6g{^s6zcL}p?nDn3euL33W}&jlol{GjV7Q?2)~ByfJ@3Q*`1>G4SWb+
      z!Du34B+=jcP{zBvEo>BmKX&HMoqOk=d*;mk`u*)YfEhfAB1D+l6$c{YNWE$ss+Q5E
      ztulEYjBP^~N{$BXHMt)}gwW}wRD`*cdA_wPbrnT3q1*EsR%Tt=hNu{C#a2afu;VRD
      z(sm5Xd|6l~&{INN-ZC8}OjQz<s%&~UzWe^?hXsugQMG+eix*FetSj3vce1=!7D^C8
      zn>j-Bf?*nJk<gp`H*_<XDsgz;D$5wc=+@AQ1R<PEm0H0m8Z@-IR=<XJbPzg<hAE#_
      z_qL?{!p9viTDqu|1oy&y)SVIa%5Vr7zvBOr#>g+(Qk2)EV^t2gx$a~tfZ6AegJLUh
      zbh)pXCMSyPgrNqbegxAX#okFw45PRi#Ta4Ci#r$1s?e2X*EEbH$w+pjDtOfEj3j#o
      zd39_TotKRwO&Dxo%+-`!vTac-nEO@bV~rt&NtgR6LQ~Sc6c=<x!!67Zx^|=~ZPr*o
      zVublRA{J8Mr0hkY7|m_M)dre^dB74Z`@{t(o5Oq*ce%C~=t=lwSHnHrC$uQb7u?_X
      zRF`24v&gzlEf5lC(dQ~}n>i<pU!arv&G6L|-$f#zi4#z+EY_{6t;<!zdrkqerrjn8
      zTES!<^A+JZl7+L<pyAvLB(w)k;a80jehOj!ns^*Q6fJDG@=qd!7=Qd$JeyyNH%GYn
      z%N!Bs)duf}dG1Ibp({Och@SN1A^JXffdf3o5do-+{~HOkQV-gx7gyLn?5AN6L%iYx
      zyfWljZlMt8UBxw?huIh5awA^B*KCK_GnW30p0Bu3oH#~mgBN{AnD~O}kHurmZm@Od
      z2oHX68qkYA%yH5woD^CpjXs)0KTQYVjMd?^aEA}E$l3i2>k%Ha6~Ypq6+#Yqo@4AG
      IEMpbgAMGPlkN^Mx
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-*XdH6#j00ZOJU9tu0t<u|+6JLmLZ<*g}<t{zwU-k`kzW+H5b$GGVuFHihEo
      zIF7IW0X{iC@zMvJQ92_t6=r<$!9PSD9~{R=^}D-iNGz4f?EP`>Ip==oJLlZ|^!N8W
      z048u#LrCE0ZDYeo*Q8l@EpIbzO4mzgI9RtV)9|E*h(MRGQ#I^z`fBO6G(8P5fnHx~
      zIq8CQEu(7PH%e7W<(j`OO1EY?_Vw%~0kJ4>Fyq)Y&#=9sQLW49&lmpu@sE!9fI!6C
      zT&G!2?%5>;&$aCGltApfWn12~Kwo0-ak5C`jI$==2%|?wCteZ=Cz8bjpn(n@2L%r0
      zEL-O5cS_P-4)FEl9Mh;44PqwVhA`q)teU`3aLc}I5Rz7w-m;IlH<8>6ikRhxb)!mW
      zZI}bzrjj4T3GOu=Ll_o_)7PwRGK4jTl1Q%3Xn0*9{r@TPEy&O8JyWiG<X9l;copfk
      zli0YC?B5dzl_of>&ZyOCiY$IvfsTq%t0)S6;<Ad!w2o64Bete{h7#LgPH$}ryxPb^
      zlcA-0scM;*<>pkfsNqe4lP>_j3tGcjfsuCQyi=%~m5bG~!&<D|X(G^YPGGoQH*0UO
      z=GJ&~i`t~XiFUQX<&x`cSZmU4Q9aLWx2qPcvTb;ES2nc-#`lkRZ|+q=c6d%uy#hM3
      z+oVTeV7FYJ!yT3HGGuv8u2&6{*=Vn=Mk+P1mj->%?7Be6%cRlD)SSRrdtCo*>EkW!
      z%?njQF6ej#198k^QT5Sffg{gpxYZez<14#w1~D{}5I||t7RNDM)iJF+=J3Aqc!&jN
      zN(MIZf)3kL+-$jc!Ku5ZoU{Drr3L-C3Y6SsZCkpTs!^*+7HemV2IGqiGr%yvC_;=<
      zLkHIf_yUFy=f_uq>o_6`B~QAzo1;9Wq@&yD9!-6R-fw*U!yG&53n)_mCcUiS2zQ4A
      zZM=+r?vyv>RiIn3+VGj?EO-_j{T96sxd_n=i21^j??w+48gAHZ7^Fl2`iqywIOkJO
      zA-=>y>IuY^(MLGCb4m?gAsXIN+q~LNM#5*K570Z-7d_J-;ou*C9u<Ajv7N8~`Sk%}
      zH^N(yt?(ATYJ@z`d=227KTqP4KL_Y087{C+EtetHsOwR4gRj?Jj9`;5#eLd+gh{UF
      z@i7+g2^R4wv;LVM(R6^iNlYHcae^`Fn4*0@IT*r8{t`qof?*`Nif|mjC{j$AP;XI#
      zgJ%S8V|<ISS_%AOFM<5u;v-ArH>exoe2kI_oNh>Tx<7-r@HXDTlz(zzpA*(G9SFRO
      z_k2$mF~hrey=MFb8N5MN%;00pt}qkxDjVC#KFmEvZYA{y`E4xyzze`4>muI)_@J16
      mq2xCf%kM44G}z#*n_OK(ftDdG(>jFfEIw6Yg54@`1Ny(mbICXW
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyPfrt36vfXiosOwRptV?0k?KMy#tCsJgiS38rZFlw8{IsHM|q~qnEB(MkL9X~
      z3qJtv{W!++rlYA7l+C^GzMT8J=f0WqpI^TL*us4m6@m9oeNbMagDf`bXD`rk>h&4S
      zi3wDy2VoE$n{YJv6zKP<i9#1u!GlYhev1W*iH?mL`#Mh8{CfYXK%NQa`%##rDolMf
      z&a~sdXnp_Dbj}5}9TS>#S1`A};R~w$=vdb=hieVgaaFJ|G@*W;ogL};P#ul6pgD{J
      z4p1D!y11;SrzR0>4KFcT-fmmaUY|CNRXFkv(wNI{Z}`?j+j?lx+F3HPb945rOwhZa
      zc}9158b=?k&4RdMi5)%(y*h!)67JK!P%r4rqRXH)3tAP_527p%^q#RV)BWFfd}Q6D
      z3$DYzL9hY`HD;Gp1y@kznJ>=R;LT%ZVRm{G%zw!x3ygJ2fhQF2V3DWBRD>loSy@1f
      z(E@g<wAxy4bAsz-!hpl~a>DXdRS>AhGH#GzS)GElPs`S{+uM9N!Ob%4C7WL5u(he|
      o56s1_9L84M#vP8b*wq62m&Lnf>Kj^o`wxqjWi57Ts)BpJ0K{3YZvX%Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%Wl&^6o&tkCNT;ry^)d@C@n~|Nh>0R#HLUd;T9BilQc`v)E&}6u8qbvmjw^S
      zDiRAGfCu3*5dSz<l|<=gZu-u5{+apn@7HetkMY1mL9qKteNnAg`>8d__m;11(rR-s
      zAC0dP{py>qKPM&%Jro5Gr{Om`)K&$(y!et8EXUd!6%4eES$ooXDUf%9#dZ|Ni3*c}
      z3Q}D<IBxv)e(XLKl%JW<Bu9dUy~aRLY)5Chf(6{DqJry!rLGC}ae8s8ZC{-RTCm!U
      zd^S*Q!+m~OOwLU#XmqD@UU{iQL2Yjg2Pz!4dWkjR@USs(y=$)b8Y5lAL)R~JPGW-Q
      zoZ<<te{Q3%E?#cjbjCWLf*DJ`N@L!mHkTLFC)Kl}Z713iRC-Zref`?F7ulHiZI4`P
      z?10zcrwcYwLYcG2T>;ln<eD$cvC5MtoP~3#Il|)43|Zn>AqqSv`~u5dRmTuku*#hi
      ztZ{ULBa)6SH}^-lIcs>!=AF#2KBjU5d933W9nMwHT^&Ytp}pq*!3Z0(vObGWGTHVR
      oyOepjoyk~=JGjeMPP>(Bry|~)wZ3P>4_8EVE*Ei!p$fSFA7=EU{r~^~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixu}%U(5QhJO1Iz(}AgEMY37B{qJ0Ua(iH6vq^vkir8n`2Oi^0Oew=uD@BC+rR
      z^euc4;~Y?^g%mrpv-#(ne|O)%Uf%#5qYy)gaCj^3gyl<n;wgP^+0xTiorAhjw$QRM
      z9V<`v8dF=2wQ`*p48s1Zo~4+O_NAx9up>R6o3GE$2y{V6)?LTf!qFWuoXE(-=kwF!
      zAo4+oR+Xc4jSw!DIs~Kc_N0k0))O!hC!|`+k(ZNES9({XJCuY>%e8rc;4xe;4-Gv~
      zKH;df%INRQRS3D_qGu?azSY*Aa{850C$NwUEM(c)$nOVZ=jfj@g4uQ_o-LayFt+>8
      zE6yJsdte%W1)+clqMTz~g|NnpVTf}~@W}~h;v6Z@kbId-QXEZ|0jDrfMVfbsg$NtS
      ra1{Wu90Nd&m4P-|KA2(iFQLK1n{z^bp;{7Hk36=RLD=T*5O%%+ZZ(6I
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7ET~pIQ6g^uCEfEE(RKX9xFG>+2g8EQ~7lr~e8DUyw#>WuWvP_y}(yb#uOJA7L
      z8J+RbM}L4n#qn+u`jIvTU$RN|?78Qjd-wkO`}I43RlLd|#ZWjkKbm@jTTNfcGu`68
      z)VJs%J_yT{ylh(1_0OuF$RN!y5uk0;sp<Pir`(bZBOAgIa+6`Guz1Lj-g1w*h9QiO
      zVHhI}<A!kfn`Zrp`)|!7n=|AL*D~!x(--PH`k9s|qQOu!uBxZRFwLDBk?(Ma`=qr)
      zHpA;e$Ru2S&+(eFDt&I&ON*EA6RWoU$>N?AuG7dM$FMM1Q47s5lc<L>TOKH=DTS?X
      zxwcK7Qe=`bS`{_Nlue%;JNTco8%vkvxJmSrF|8GYK_3_<)*}_8l)((cY(IM{Mu#oA
      zo={}R?!Z_vI}%bN2`ZI*jGwyqz?3Hp>jPuN@`+ASQgatI5BmI_(`b60>q~yT@2Nhc
      z^0bo6;vsdo<H|Wv_iSG04#70c;<4)fCk#`Ogn){AP&l=cx+YoSgdItczKzOI?yo*X
      zckw0FTe(2~WVvIx#}rvzz4ir;)U?YUm~M!MOui)%V<nQ-I+0MI_8g%?C0@OVbWF{j
      zXzWmfOoUQfAylEe2gjLrF+A2{*sI9txUN!74y9r{GK#|I3z6PHz@Ai<cYP93?7Oki
      zYpiNbt?D*?i<gC(dovvasy$a%R7KMBpaDu_85pHE8l3dZ(AOHRjMm}eIkKPWB?XP1
      z8m&MXY3$${y^Vz+TCYRR=^GfQKNGZ*rgf73+{7(9)B1xc+Djo%JGXJC13OKB?sj3P
      zBkVmw-N%D27A0|$gex`LH_X1z&7b4ZkAPe0RA~TT0*(0)6>3y?JjDX-E7n2}>n^b>
      zLy}p42CQ=-s)tqaFQQ1iihqev@!X#U1|QH)ulk|D<xu_a1og{UA#R;ChVE-v#`7Sb
      gRlFe1(BZWp$~r|+P9$gZr=yNqlnqTVI+Mc7f8C(`!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixO-n*S6o%j9H-4mPTDc2?)Sycrs}wh;P>37rLd)?w*@WI3_l{Bjs#Zdaen3A;
      zI-?R1VT(Cu&hVb+yfgDTfByh*jB*?y!pVbp5>_Ccsju{l<w##!Ee`5VIYP^xr*EaU
      z#aIp7&yIZ5%5&q05DwP&eTxaXK>A9IZRrQxd~<n0pesVA<+*_tu7OWwv=P|(1YYNa
      zSVOr=HwocN)h0w*-cTkH#zq=RqzKura%FEi8A$(H491d>?|Kdo5IlzK)nP>6tAKFU
      zU2pWS3)Tt6%Cc`P+>zDSzH&$Ps%>l(jg11kn*<{>dV&8bBP9FY)OTb@8FTypyylSs
      zU=K{>Zy}TsMT~Qts}K^r7>E?dG@qPuCeG2?44JouB+D_$GT<B$G?3$6dMUyt@?04}
      nfujL5S!uMf+TjdazX@#~-dPYzOVx_NdX%uu48jg~hp_tvTj+*~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq&2AGh6ot=ClMD(e{Uaq5C@Edgrig&p(b7$5rJ@J{E!n`v9ZYJJ&LEG6pI2aq
      z#EY<s#DWK4%ljaXC!;EiN;cQN*16w3*Y>YJKYjwZkM#g0!QFT2gX$zYOs#RBJE69&
      z(`7JkO{koHrfg!O!QQ7(zjr2%0+a=}r`Mc`1@novMh*L#lsI~M@K_*E1hd^ZN}P&Z
      zUky`T`P%ySWndru7F2gkWZbS`W@EE2D0kyGx`r8Cs-uRBg1MfF^wae8Slc6YJk)~4
      zUL3N4VjJf9VcDISL~yS+-Dq*RZ9!vWTr*VBpmXRfXW!oJdkYP3VTsO8lYwuWp(ka6
      z_Bq89x}y^tfAlVM;)*9Wc_Xx1300bKoW{9&L30va1hqV9RZu&OQyc1i<1eN)<rT9>
      z#~L^dzk*-|6;!zf%u2X`GWWc1#yU?Pa22kV_6W1zGszrdjZ)wt#XFeiu09rF0gKE$
      zV2RNKcB%B*YI|#h%SFN-o9}0Y<*_O!P>*F?A;YtpIqQIyz3HI6b!UXDMc8u|y~tp#
      qvFr>M;93S_DX!xNTY2nij{V2t%_8*`Ex!JbMbGjU*J!GQTYmxEg{|-a
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E{ZG?S6g_VnY%Ar%4F;1BhaWhGY=DZ&00n}HGLdA6PGd|dFSDeyOV<hfS89|c
      zF3}%N{G*KbwPP(XP5hy6@4eo8?m6e)?$_^c-vP{GHH-km%)atL$yK>pvo!lSr*g~A
      zt(m&cRa-NSH98h;)8bo-r5tdZTh%Z^41G?Pt{COq^WA-l4WpA`q8-*n1O`cMRbWUI
      zoV1#)>AuQ&hR#LJ(ClS~V0v<gA+%=h@hG~{8%7VqK)bA}j6PhV0_)GVwoC5{Pm0?_
      z)>ojQRqeb4hPaF<`WcdG-&;?3UR3NYXa?V`9qe*zTiMk)L#$w`ioT;*nm9KvL-u>E
      z$}r~w{fCvLF<R8hhGN$&0v~BlWihi%Y$OCRA~;K7j4_OP4cM&d`j)8~)SUGrl~+XH
      zB#dGtN;1b~gb@)YpCNu+IVGQLD__)P=umajAY%RLNjJ*Z@O&6I$wjXTE0(1k3wtF@
      zAkNTT=C<c2!_X<n#YPYR<(11KVw*+V(v0$XBJM2_$uSIiez@1GHBH~+Rs^#Q(;kmD
      z1HF)Xlk(<qAtfP;+rsHPG-S<|IKrFtL@%<KmvImGX-Jhyg&TWR#2@N@6nVdGXK3Xk
      zSYQaG-U_Hi0kw1v;k1~~__GKi^P!Aen5J<rnl(%1k2Nu)SO2LtD~!T8jYg234tio@
      zLg*hs>}kAc?V{5>0<;4nna_~xh<&1c00Xp2^b0(ttPLb+C%bVN#1NeXMn6R)X&=C4
      z2TP}&$Vp`C7@qoxt_DU+bzJ$8nfi*9Kn^;{3E}{}KnO31(JT6tOLYI*sgiIJnpFtP
      zVNGf&!(||Du2Fr4>$pLyP_g8w0^$v@QUepE%on8UNRyzC^x75FNx^{P6BBQVnM8)7
      zTrpD)WX>r;b_uBSAO}8>jur^@sL5x;aUDoDkS)b#>X;KKC%7AXaDw~^mOa283Iz_y
      S&LcA6&<C7s0Y7pyto#A{W?4Z1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVtH4h71{MN7eg0__y2c*TM!;*EqrV@VA$UZ(8{3=T8RbV~HeCm!%y
      ze9#1FB8fhl_)*4vrjxc}Nqm?yd(P~&*4}HM^XvDw?*QiTAP5hGva9Z^nJO>UEY1Fq
      zDRIlrtUX%Jtx%A+O^fGLOWor(x2i$-7@|(Tt{U5!jp8mZ*+B#tCOfcnU|<Lf?l-xO
      z=bH>{m7#mZG^)00*acOuaWB9Q7^Et<_PMoAx(xDKOEGU-nz6mW;H#LH%@A1B49#9*
      z@Fr6Q+FdcrJOr6!bhD)DJ7(3Ez|bE-4+a<plmBw93SjS=X7KgeUXfdyYEgGo1wlcz
      zH1X|j`s^L8$}rtv`7h6?)`1SHse%MA;-aqJAVwKRTTQOlbUkNk23h|2eTi3W%`_y8
      zAReYx#v<rKL_}92=thXaU(!v3D(+9F+PZ7ZhSa;axt(vb^Y65#p+QQ^Ii8Z0G?$QV
      zHvR=M%`nueuCe>Drs-vFg)qx7b<T0gCSE35gUlu*q;XAj923#?2yWmejZm#rxKU=9
      z>10z|M}G+~gm9aRTu6v>(4d|dgm)R@$<=lv&cetNPvVuR;9dj@rs%Zg&6-u>Pc$+2
      z_&LqY3I{MozI*BM(;7n%A&SFvnLLmni@{JVi?Pr<NdIWMv_|P`-oXKqBKP&NgE}sJ
      zb#Q~UN`wcV64NsbQ4}GJ*u98L^cE~Jmt~n)L~d9~cP7b`^rk~H*hq9q2;!7SmyYNL
      zT)I8Vp(}@BrH<kBPjsDPWUG$LKa}(_5=#6S<E<)V2vF*4`0$oQRO+foL?x=N><A_r
      zR87HQSCHr(M?55Y6%(#>mUu*$(NnN3<%radFix&~p*;_TD*@;KyEaFnO-Cj%<?>|c
      zEqMHb<1Dz=2KG0>Nu)Y}$3LG@{@4*rC&mT8a3?x(iu9H|Q%6RWaDqAc7A>Nk6Wo!r
      e6rW(RRauW?(;?aSiH_4@o5)17!X>Aa`+oq2gc+Cs
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%}e^6#i}qB&18B&|)psLR;JXXxU<mVnb;GTaBbG8XCp7CAlP9HXCMhw^L^P
      z1N`xz{tG_)pfj4x$V`3rk8=F(ZVX8XGrVl>Jvrz5zH`n!=bwN7dIMkqU&Ig*NWQdQ
      zS!P3)e9u+~W=VR=+}y~0wdUJSS$dn6XVs*VUL%I6z}yMmM{WXRHS6`JrK)-9R#a6$
      z<OD{RZP!*S0?WyKFT{pCD5$z8vwikJ$U4;&q$5l8$fk+{iN~)?a$nhXmwL_!Tp0}3
      z@rq$g;7+eo&V6M$c6rsQ)R}U%*3sUH5{RzX%QAr>Oc;paoWRV9x>Lmj1f~p}#|43l
      z4XL&)uOgM!zD}LWvusy21g`f(3`%j7SZ^5^#)!ap-gf0PzqTX2Eo;Y-0+acA$#RO8
      zXX|_07*$o9@aaJX9N5XMKzvUgG<4aixG%2L5P@?l%%nSuxjy&fNeJ9+XX-24F$+?i
      zuD7EFyW(2P*P>qZAuJDK-SYf~T6IfRK8}^saOj3!*A0D-rR-w}o|mDHAX(D!khPPB
      zz;tf|4)*_V!a}d>Df9|V@RdC6ot2?viqkT|N7VO6G?_~kV=x7-2Cvz%+=`iV99glP
      zRj=aLq^mmbH-UL9=se#SAR^}`uIdHl*=|MPd@>bk4In~mHii$F+!1nUUh{W%rKhX5
      zWZ*9DC9sJ58kaBVLc4z5D0&nY@xZ_eGMsrQSO76R;*&lO9juo)*4T>dEVG@}J7YFn
      z8V?e9i2M5U*uWEfLNIH8U%F+1%Phn({q1Fy)e%ct!)FFIkY||fHaLd@x0AVJQQ1L2
      zI%DE2Vu`ie@pn4|(v@gf7ZxE=sQX??KC$(1UK%)T^Ez|Pajb{9bp;}Nws{)nIfgjz
      zqr8pqHvt1@dH$Mb?K_dqv@o8&)x=~v{wJn?r!9hu{7xduZ-E$FjCz4_6!A7Kvtb-A
      zVTLy%;4<DJk3PMND~#5h+Dmgrc{8X?qh1Y|oo?o9z05;h%r=={l6jBJ&I!ynaI=Rw
      zNgktZxq%c<Tv^EQt8+GkJFAlZ1Jl0-l60aYGy~rR6k+giJ2`<{xZMseP<DiVQ!|lY
      zaOM#6+b!JrJ3TX?X5UizcNoL>tl<v<>~t8~so4}gG%dFn?zIW_XwwAdAr`mOEqvI*
      zNBK;qiRIz)As%i|uC}nQl{fKm6Q4Gb`;vb?{f!}E!_Eec`H=<qiAn$5MQpZ-4P3)B
      MJP(LBgSgNC17r^2qW}N^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cYfsZq7=8{6Hbw=+IWEdYMcD<YC|(OF5KRbkOd(TZ{LpoWQLHWLP7NgfC{1)r
      zB+-v1{wU*n+6@*c_{Ak_&Ur7-^PK0r?e9O|e*l=paujV0Q@i>{U9ED%b4_ue8r&6X
      zVQuxz3M~q{*je^WtIXY3yy{sZiU`BZKRSxKWtMf}9QAZEq(XW^85m+xf@EeG$(_@t
      zF?7zGwkZ}F_EYCph9x&$uPT;oW5;o|uzbO>OyeN$l=;bY!7EW}jUQ;~B12?_O5$k8
      z1qEH`VR##=<^Rw{(Z?|An_}s9Ma_GbRd7sOaQE51!S{se*m3ltUuwC;(4I;cyTEW+
      zK@>5D-kfRky!WBR-A%n@afbe!W9U{<cTKr(1S4X{tkOk?`f}E6(0z1^V^bN%!`fSY
      zV2JPeE^oS=q>P2tw_F25U)3w^azh;50K?FUrlXXUQ{kdHWCWi|pQx3CrZx+xJ|>(E
      z;hJ`ZA<-=MZ4RPZ6gL@?$L<H=Wp8_%yK(|16<o)SI3|#m{%6Sd#w@g=q>Hj*O2IT{
      zXoM|pSLCeIRjo#Gn_=KIf&T`^aEFehjW-1^#GxWBANLg8#{<IB_x8A5W|(fJUH2{1
      z8i#LD(s;8q2{9=(JyxJ$o^VXNO4dl6)xffru23N90O3qvk`7YxwiyObH3mMB&G8M#
      za}EC7l=C-w=C{WG%-|YLZ#(@v=-(!Xm_A){--S3myJ`0c5y}F?nW^caNF7S{7rGD8
      zyH&@<pPB48B)(9#4M}<?{mK`Fl81tIBv8N*USfc9a{&qlDI$NvJ{$8_!?;2SGIkXs
      z#4lH)7$asHb6=xWqS8**cVxaI@tGC@X{R52=aVQwL4$<Jd7+4Geoyq0LOsO9R;G?y
      zb)<6HYz^6t@*&i%{@FV2O5hsiYIs<~qt}#NIHu|Gb(QE`1~Mr7bjbj+L8lPeBAyT-
      J!&6`0(q93)m-PSu
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL-)|B@5dOA3IE&a8N}<-D)fS<(#l|N?(-%S$l-4GvsC`?G6}FytWN*>>U+IfY
      zG|_keDC6vL1)`W3AMR#nc7A;G&CZXXU%mm@#jcGRhT<uI$19<52TJM>6;~)-IeyZ3
      zS);=-*S%U#xNn5AVKFR5z8?3xm8b1f;c6R6hNZE!<^{gsZBH;H_oOfNKErIO++wh5
      zK}V!8i_2-)xWur~l)g9`ylo5hY#5Pk1}^tnTuGzHMoaf($WUtj8_X(0!Zjcma;5Sx
      zXaaB5AXrLc5g8lH423cDhOdS4xmQ;zP$?8})y4|L`q(3C?kLdCpx+Oa7M=Q;EBaan
      zej2N|#*pd?eJH|^cmF8wXeIqFmCxaZA>by%a@<n{FTRhMa{Z9vixc4gUYYu}49_G=
      zCnh>I0u|cWVA!6*+r?;G+>;%y12u|aSe4;Hpx$%Ui3U%gN9{(VJYmRFn<HcWObb6G
      z4roZ33&sapdKE`#LO18guFv&AQA-=Y-|tQI7&EXRP0+kKhDTGUZqUou(&buIhw)Ll
      zTHtx~A_+;=@NoElu~QL6ygI=^x#B>Yx4klDL3Rw$)*6T<`VzEZNm%BolQu`%Lz0YS
      zV)GoSPjr|;n*J%0K!aQ#;|iV9Lnq8*fizk<Waw`av?#Ih%~FEw$L3e$UTu9w{v6l8
      zM==%^EyP*p$ro_Q@|<A2h%)Dg(Q)P^Rl0@SV6@h2xI-E4QiMfvoh(J%BZbxuWwLD2
      X%?!3kzmIJ?jXdL<9rCF}J`a8Y&Mq2I
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBNrs6n^d)Y>e_Y2J)g%6m=Vnf$us%0VOdYPBs?_@k7_$KuK+vt|jtK6Tjh)
      z(L^ATM89d`k20Ry4pwK?5A8ko-t(OEoadg~{`mR%3xHWXj3C4?y{qgg*&0_JOSAX0
      zD!1%xe)aK-Wis-Ly;D+jt)kebwZUtSZbuMi=y5T+Vr*xhmUp>It8EPFfJlFd!q8z`
      zPR(94)E(1ekk<mR#fC?YAyzeYP2DeAoHL9C`R84Sb+f|By{G25%<@i|V5@weVW<go
      zwngr3bDE*q3k+MyCNEbIKb4?;U+SjqMv_#CA-qiNVrW6Hgigd6T9T<!1PO-GhNSC`
      zuIEk7u(|c<waTluW*RZ{p|>3j=OjcB71of1cEp4=BB28kL-(3y@O9@^nOjArtdmah
      zHB(jel45CMUSAB`J6erlritnQPM%ci+UB-T3WkfxR8SP351~2<<q6~+-gq#`ry+wR
      zFpZ-d`2%vcNeNn2-887$#Hp9BGjlN#C?(YHVu;#i!L~GGyV=)U%|(zQg&QZ~EiXBm
      zUg1_0S(125c8im}&Yh283bP{mHHQ9r>$utL5mP1MaYMpQ+@da1s#R`O7&3lW?+WGW
      zO8U_C#JMQ$koGy*Q-}y~?k2t`!czUeMLSLGol9V}dE%Or3*H5hJtbwjBJ)w)X9&qJ
      z1?NQxX-v|+E0~U@@)b?=ll+e_gZm-DILX~YPb<CSqE+cr6Bmu@j?|_!w$VPF2fe##
      z_6{M0X`DzOqi6CPBAM^#I6>d$G5WuzCl4`@o;t)}I&+BOkK`A^d3ujhY~TqYpHa*W
      zBv8N*inRV5mr%k5+D&_LX>E*Vl)>f0TuU$txt8E07|Skq!6-{J;nkY{gn<uacqs*K
      zpzMa0JcoK{x(JliE5{EWYzFIr;0as~01r2V_X5FJaJ3FzA<+fH#0l7@pia*qJ;TRH
      zHez*AvA`QD`Yn2B6he8`B+ja#gRjR_U1{iVae}GM`1CPmMBpP_kKaDRU6DZ8bDljc
      d>;<xq@Sr*20s8SC865Z$&YmS)A`&4i{{j*Qh(7=T
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%Sr=55Uh!s%|r7r@p19sK}Zl>ya@?jqC!A4vf#nnxan*rEW2TLR?M$?@B{oP
      zu`^3z6yvdruIj3;kI%Pv0OvS#kP|qX$QS7*<fmGhnd_4_?jR18Kf8;E<X}^vW>-QP
      z1@8UxgnT1V4#@PzDjaHx1om6)Tf37Q6}o*xTAEmQ1d5&tB56`h0vCTSbx$+qIs=_c
      zmMQSHE1H_Iz(%Xx7ichW{W@hUG_+<FB?9#y7d$ddJ^77wvwJp;XS9j}d!opS1IcMP
      z-0_05)>P&od(%TILp4&Q*+F-~w2xp1|HWGp`_U-2CMs;=k=3$HGlAwpZ`H0qNhLjQ
      zOZhUiA9-TPi&O2>jSBhI)$an&=Dp+vc#lg59PV=qd7d4fawzazL<#er%h+DxJ3LoV
      XwRmj>uQR@jhQ*uMV-2p~Djj?QEq9{U
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-%}e^6#i}!NC*qm&<d>u7b-Og(DWBp32h}1Y-$P=Xle@nSi%yPZg%Nr(-9pX
      z)OY`Y>XQ%kwa!Q~BaW?4o$-%y{B9CLnnGXp-o5vn?|kQ+@7#a?`}1!Amtgzh5jelC
      zJ=S7HJy&uJcQ=;P9XGaUn?`Q;Zb>tZO+$B5)+TLz0w=1rre@`13+vl@&K2<5#)d#&
      zI&YO?uOcm^X5#{W-OAY;I&D0w34xAB2cQD#5l$Pr6PrygWi+#-)4P4junhNxKwEe<
      z5y=PylV9ib9oMj}q8~j1z15h89ZM}VZUlTY3>kzMAqAc2CChLm6Tm6@TP4#}*LPjL
      z7(_Sv<bA)usc`x*wPn{atb9C@3E~Xi@gtz%EC$FSXWEu7a55ZevaS^(-T{Gk70}v`
      zA#Pu<M?JMAUE|J=a{^}%$S25W+Hthql(kcG8DG~5K@4L=(o=#^@xI)J1^VkmWyXiL
      zRjw+c3Pv%;^y$xn50mGyG-?$N;sP%E5fd1Ev!z14To&juiZd*|>y&b?>?!N|z>ll!
      zWy77!rkCe0Eox4YRctgRfDZ%)3YxiTI|Y41JwjqZTtS~?^pS!|S@1w!cdI=8m|~9_
      zAsS+(!~&o?&OMfTQDxeyWxJ|osSAnQ$(a>3HJhAYNzJ8_OR_;9D`-Qz43SVUgIOw?
      zA(AzPrgbatZdG$iNs~DRpGcDqn$+$jL`p#if&x8h!_wzVg>~Io(bi4MB9yjsnwilY
      zL;lwfeeRY~6sUKtLHxKWqvSn?B`|b+<7)b$VL*<O98FSY{?sLjww9GWdR4A<aR(8{
      zJp~yo6Uen|ryP&Na!^L$h#c9_>#(vss|xPpGe17(^taAVqGXs9c>rGujI~lCWA$5g
      zr{#&+P$ws^t3j+u39MmVK@KF}uI=pT7B}O~6I!3S<}s{gP!AjrV3WNaQyZ^M1AR*Z
      z8!dSCqPz+3Av>dfC#l_InU?L6lhfx6+4ue<61*TQf+6a~%cs^0kJKG^9{E62SBi*h
      z8!b5DJn!P4kAK}b0f;W%wDIJ}Xa#SLzC_nPy0f8^6}<gCI$Fl*7dW$r!F{ONeGF%#
      ze_*hJ_bNDlXRM6K{CFATPo&S4Y-pl_YtQBBr0=w^j1T`o{NU=kyoy#&Um(7Rn{qoX
      zKgnOw8I?|Zxb=IL?rnZ=pod?bH1kYi3n3U7z&0-8AtqpA3I)u;LK-%uu>%c{c;et2
      z6!8OGd`j=DwX|q+hks14S`a~uWz1uNg_z*F$l`cua}9U7lVw@rJv&N|%UlK50JFYX
      z#>zA9J&^p`tLNWW<0v(odK@98$`k27!BzTq%Bs~$*$VMf6GUeNBHMsS)**TcaqA`g
      z-oFCR<hG0lhfv+s)<0o>KeNTZG(q+@AUS?@R`+QwS&i&tEgSlxg0E`nX(7Fgd<|R+
      cZF66S*&5_26Z?&7d)gFaq!FY*SP!iK0buIj+W-In
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}e^6#i~V*bugqq!20nVbEIh3zAl7rGaXa7D13gp|ps7Se7*`v+Uw#x3;hP
      zuD+^&fIpsarX({mV|@{3{G%Mty}KkE+Ue-ay?5_D=R4o|&N=({KfnJ0;2IuE2r*pV
      zQJyG;x~96e?mR1~n(Y);ZMW`}O?BI{C4?FJg^i(@wZgs49Zhu@x>aRS+0_`v7HXzj
      z=mdE>QJgG1nkW|U=ygXoYp!13*0#8Pi6NpY^V&0p^9!9$OYWwjtMo)Ry$)xfZB>a4
      z!<AE(f+N9C@@M^XT~!<oeAc7@Rm-e9wxXL(oguVQA*NHhsXMnBGU@+<vr);cF@&qu
      zmKH-7;xf)4!O)e?tVtL+(MxEt=o-e7MWHnN?o(CUb9Bp$;T+;UV0c4D4`TduUPc7n
      z{B%KvglG(xa9M&Z<4vTv9)@L-kOS$A$1k9BiF>^zqZcyex1gKaqPx4P*{jN?K`w~}
      zOI3_D#n$<^e;IbRb;>>Us$>I&CBcfmAR^$3V^gI{r@Y!l;kv|-K~6%pqa!>=8F`G7
      z*oJ1-oNb}koP+|gZ}-leVQ4kQDBCr6S2LY}W@Cs;xXzIOKfM&A9v<iAnP3=vMJl|G
      ziGZYjh75f*%@InRG}zS>={v{Z<reE9&uZCg{LXs$;GENxjA`6rh&q;c>qV@VTVhft
      zycDtZNQFsI7#^gfnZxPKMnyuETB|Lo7og(m#+GJBahG9eBjx9os+Ln8YKo?6I))0y
      z`7$eG4j)skl)XL8++r9Fisub@DcFl0K}u09P*3NBQReD(SF=-`vIw)tBiuU$>?`y-
      z;AI-w)ML(ZDvDK#(veGG+NT*}E0$}k+KkQzp+C^rV_Y4K(BO2@Z!U}kpFTPz`0R<D
      z=2Gl5RkTZFc?Ny7o~5tv5fXkkvrY8pj?sIFbL&kEzR2bdkj%0J4Dn?+e}s58-@wH`
      zap?dfKOxGmM}8xS5Z<OWD}vl70;?4E0s66qK|I7T9?{&dlg+2pE1%&89^(qxr@XLu
      z2UqC}xXFJXM2ep{(U73|u21tX!VS~gvY>ecDIcJkYasmtXFf*Ei!V5_WcCo()^km~
      z#}mj?0;4>E(bpt!U8u7|VGKI$VgM#Cz#`&%NaG8P!^R}))awrB@dQiwQY4b~h_w<~
      zCjD=SM3zMbLY%fpiT<vX-1~k?1=@MKk?eCM_vzs2*ex!<7SOV1;6ukL{4KiSWvkN8
      zo#W&@bc9~MHBj1TZJ<6O@HfQaTXOj>02prp-o^($V35sl8^mMtW57Ama{dry-+9Jo
      zGe9&(juBz|{NQQb#_|aLOoV=+TK^ir9Plw2|B?8ZUlDzt;VeNVkC8h>Wj%4Hi5dDH
      zZs4QDd;_1*nWs&s#1btH+}{^=E1q4F+nqeL6i!lsfak>H02k3fj`jkY0Y0-WJ`aS~
      F+P_wX*k%9#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)-%}e^6#g#x*)*jsLY1~kQ40hLp;T%ih&DiJ+B7gti`70Yo7?2pup2kKOqg-h
      z@#pwseD9Ofr@rvg7n#u+)K~u%-+ffSyIDd4^kMhhd+vA7J>R$Ip8f0JUv~jq#!3ub
      z0%so^n?|}WP0vy8R@#(~n|?4oIkRv#A46E+%n|GUT2$b|5o>zyQp1&2UD=jEbWT~y
      zofim=q}Bw&3wBAyaa<tsV1md5LO78`4BY~KBY8hw)v(IxqU$KDoY8wu=9MK2-p0Cg
      z?iuS<DbSO*O{2PII7-h0XV|T%y1@BnkRu6Yn2-F}GpfXOoVK$5SekAo^<e^JoW#p`
      zMIcd@?viCP;Sv)cNj=QQa8_X82+|Z}sbR{R>vN9SZbdpe&3!(>2?C-a(6xS<uZLMZ
      znxaeb$qB?OM!lj1^3}>EFocm9h6PR?jFZG0c#|2n4ke-JrgYS!Eh-S`*pgt?Tdykf
      zw%nqeF^mfgby6tUMbE5Uua<3=KxLy9G={XmU?(<bZ5mZoVz4$C*<9>|HAAjC_NFRH
      zrww}LP}LMw*)m+uku8+K#EU7kY1&pJ`dh6@r&)8yImy-Qo^%!q0_R3j2TEd<rDdv`
      zQDr@xAod;$=YFkZxVp6V(4MQR=|%biP(e1_Jy0Jv-Ibg6N3yiQ`=TBx)89N3q`hId
      zm2_5>bCxU1(#af5p#739S+29iGtL|tli&4pM@B{I5`3&Bn!xnI^|`SFd=DQt&lugB
      zdA6tt<W=1jNYc?3S1ZFQ%c5XxP?_GnbK37`YZqZFxkX;q)~;2<F*caLCf58KYz>nw
      z?FB}IfQ|j`V|Wy<L6~kq``Anjw*-dwZ^3=5?$v6x<I2)XO*)3YcdhbCAcwr}DRJJA
      zqU|}RyrFd4Nb26it2&_rg$H@nLwq7^hCK*tJZHx^n?@H$Ky0)pv4iAu4!dxY?*uJi
      zAqpF(I7&8QIL!dy_$BlPA^u_LD1C*oKOvsr=GY$)cSe6f-|i*-`WcbXww@OBbT%Bi
      z8hM7^@xI8F{xDzu@>dbj7a8Au`rqHr5Pd(i9o`OYGinU|SmtvM*L*vRMc+0voJBWJ
      z{e-AbncZi^eNN;TxPUL&O}@q@e8YX;VwU4&e21I(9=Gr#^7zSTG~diRV8r~n`#d=%
      zk-@8E*~Li1cnt&0WC(+t4N$riQG<A$QVQLe0u9o%TE@ue4lZtU&`dGvJD;=(7-=5I
      zpAGviS5w4>Y5VCJ#aQ4;GJHP?OkfgI{>ob~Sea%D`qy<8Z~OKdW_&vv*bL_U`8$|r
      zgm?YS-Xs3{q0_VU=tv6`S=*(+-q3#TU8aD|nwcUyO*Z};av$vA_V0dFT{J#l@k1Nm
      Lc&lLU_^87FVI;(-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O-~b16g{t<X|Wa&qzHaN{eYIQ5s5~NVZn!hsi<JkKw_K@FYVwk#px@7xb;uC
      zGOpNk<3<w~M7RDG_b!$5W+)*li@E2%JNMmt?s@P1`2BSsz!<C~VgkJz_O@-+q*D)E
      zwQD&tP}YmvH}6d^6=!`F>?UCdoDGva+b>&>OB>QrNhAdNPS`rTqoiMRtG+<uzU#Yc
      zQXrnouLu~^)peOd9H-MrqD7#s==yT8zFCsNGrQzTfsSI;vAq>LaP|5yXsC)?6UY`%
      z=-4DX!H)7x-S(KA$wk@6SWo0vQxG_pMkg`?sj^hFzC%juq?XICO(k*u|BC1aJC58^
      z;Z$Z-Rb-&K{;dlM#CAAEtTaZmHl@8=0>b6DAkb2=YZa|QD9D0V;#wMg$db%aeR6Lj
      zvt>yMyhs~??p!`<wrQ)1HRYBUd?m{=V8eDMFUf7nrrFKdN~_pRuPfKHbc~6u?0$4M
      z?7}lyB_~x~R)Oo61v;C%Ld~Km_obGr^}vx2Tzx+6$1lgIp5Mq)(>Onq*Q$lclchby
      z)i_ZQ&A~57eWDXXnl?oQp1{CUw9-pQNjQTxu6W(hPOA(2V&MdFap*h5d(01ggLpLf
      z86Eq>+I)Z+Z|LQsUKWh_9di$zBN=nN$Dj#+zcWR~9NGW)=jR?0&*KfF5pS?+5<Qqh
      z7cSy%hy~1q7%?o63-FRzugK13Zi$)eJSvHPlrfA7_qiz0pTld+!^1=PC}Jy|Xfk4b
      zI1%}yn>7S$P2d8jjIq)HD_$a#eq?c(o`F0gSI|o#`M4O3G_Z(G5wA8#E25YPgKz&8
      lknfe(n}4q}*C2K=a)WL3OCCTj#5@K=9O5Wi@{zFa=m8ZR(h>jw
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      N_h20JhccS~@V}Wuz7+rf
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUOH&g;5blW~!3aJ8U-*6pRDvkJf+z`5qZC?&P(Dt>W>`iyyK#5ciho2;-o1LV
      zN-e$nAN&h?^<??Y>?WI(DYVK%(mOq0f8G5}&wTy$;WH7PqdQqjF*^E`zu<*HSfMY~
      z%Yr3*Rd_f(d8LdGxh5^HM3&Nw4)(xxVKR&k_rPebN>d3pke<tEdmwztofYBh^>THd
      z5xc`^u<W^k;;vfZPAK}m)jz$x^yAG>MwuDuN;S)9Q+{lPQM&BaL_ck3)c0@#%sJXb
      zLjyEG!;E(37fgPKyLMqo`O>wEI%eB~bj4y=UlslXzUl}@LkpgT8aOJ!I(DYjx(pZ{
      zk4QEYq=<s8bzwb2wXz1;809KWOEeUE3bM41(L@g^I^?P}8`2lGc2JfMFq+ypX3<lR
      zgce99ag2uJu0tiA!aPpP^qjMSj5IdVRUrdhOGf-i3r2hLV^OnpuGR}BX;)n(Y~iE5
      zEdW=8AQb-mBBOmRU|W^@P}h<T?f^TWiNn>W!crQnmngL));wQp-HJ^LjOc-xTT{Yk
      zv;z?jN=qH`;GpwkPfA%j!>F*aDizoAYB=h)lyO1QcDV|51%tXiY0o+KBClgT(yFL)
      zP})&|-P2QP<T6qBxzFpE3|(fV$+9b-heD%tnUB$=P7z6v>}d_}ikHg)w~=)is}c{S
      zWhUL{(pBKpUUNHYqLyI0HCvE@DrV{GUxx~X2Hi?*M&B(NPPW=M2cb!4{=6@<NQBFF
      zD!E9@ZV)yap07mhUPJg?k9b?_99^Ru`uYtr8cj5qb8xQ6D_;mLIr?mmnn_;v90$_^
      zCXCP7uDX(~xVog;@!8@m@OzObI)*>f>`rRHyEECIQbyx(mS*zQ@eotr1Wdno2^J}K
      zwNrHM;Fd3Wp>K(sQokZ2*z9~J&6Q6dAzV28`tTd2EcL@~#(SHh9POsG)(W1j@Jz$U
      zV6)>x+uqZTcLp?q{~R`mUQvc#(@uO1L@?R~0{s;4F%)~TlL2y+_8Z?ppt^mB=&->b
      zp`*qgqvOV&i0w%_W!CxFj?s9`k%m1D*0b>Fj1yEab~3i-V*eDKH~tH;osR8Aof#aL
      z=rY96RcXd6RK!<`W=#82ar^xr>Dr_Bbp4Cj)BR_FCHB3e_x`AN_~)q9gR%TCjH%I{
      kjPw7&INg)6LN`&VKH|Uhn7Yw3{?<Ro-|ZQH+bCK64ef&AN&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#yGjE=6g@Y_tckB^A%cZA!fxYgkwOwIe1RaQSQOD}9EWwnFdOC}=GQFz06$8+
      zt`IQ6Ztgvgd**z8y?+2WLN`H!us0H~BKJy0r^6(d%7y&CcX)j97L@h6vI&}mZp|{n
      zmih2$q+}rMz6gJ7eH@P~7u53^%e53{sv|6<*#lv_RACMrUY&cwMw(sM#xZD<7b^4#
      z?LwDUgy<Aue-<D7((4>WaN3sr6V~kTiJQv)cZJbusyksKJ8z})PTAurp;J`RNp-0W
      tvo`+}aqtthMc|Kde?XIaSwxE;gak{xZ}YZ+4$sRo^9oiOBdpbo^>0>)XgvS`
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      mq%tyaLoCn(>11PMU}RthI*WmU5ojMP0~?6Nzz!st7&rhbSua2U
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwy-osA5QWbLWDzv6q@@xP<A$2b_!oi+#7!vZhRbM%EO*V_3lSfU!Uy1?jI&!9
      zH3qBs$(e7?%>HBd4xo?I2o-~iC2c6q*{;2WZ7eRZe<I6ye3M*_csn8S_w3kH$b5vF
      z!C5(xl6#KF^CjD0&=e;@D3v!hxb8k2Vou1@Dj)pPB!vNfB)7;`gWgn;x3898f@Cg_
      zaBOh?lR0!7UAHJ<td_sj2A%G3_Afoj*52}+q-wbR$EBCWy1IcuRi6b^^zb9pwT`r^
      QX>638=J$@~twM{FPt1#D`v3p{
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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%1ZLE(Qi>plz%SYz!b<*`YKChz6?Q
      J1d>b)TmXpgEoT4#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoO-=$q5QSfj;2{39!j&tHZtS>bB@hi_f(enhEhgpIIQAsnJtUmT8@TWQUd1~Y
      z%h?z<uIeZCzPwkT-|rs)F40Mm5Kb4oWD_K-yp1bkT@?SsnFKSOUfp}U<S1iVrDzZi
      z>f3@{ZYJ}EWHH4i;rKs7Eo~9H>qmcJr3Ueqi<$UfOZPAu66lt&J1AX<?Ba}zN}4ZU
      zZ~flM{D#oTB|a+g?EJ2VzH)pveVdQedM>_4Xiv+^XL4-|A#~PqT>MJZG+_e?nn<-f
      Y!WP<ExAiRvc0d|+5BoZ)xq5f_1Ggwr(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoy-EW?6ot=S6IbJ3)<&(wLRcFIYb!MbqJly&U^yAC>x6L@W@d#vlW$;QEBGqD
      zf{52GL>sI7!#yA8+_%r?7XU}t%#jiHXZlgA$fgN4&6V|u!<{x9)nI&b-AtV|7d+3=
      zA@ti*r+uZarZYAv$0A|(KR_#8B5eIV`r!&Ra<JM>I7D0fo6&$k=Y+Mh+Q+1QnrPQ>
      zx7d3xpUT${LZ{+%OV}<CE?ee<PWS56RwFT9aX2RQ#&r`653OTD@jJ!gw?Zrv7LcKf
      aT)G`BqbGGmev)AoBth4)A(MD(cf}WbYf<X}
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5w;#Ii*F;?(5QqRf&?{mi_Q)S|S+<kVvQpkPPu)Jk>+
      z7DfgEu%evAymWp4q^#8B5=I8D^wbjH{FKt1(qcvi2@Opju#()wk_>&P%ydtnG3lvA
      y)<AW^`K3k4scxA$sf-NV5Hs~aYS|bW7#Wy>E@5C`1X{t$zy@M5umedZ1`Yr*PAXRb
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5S>A>Kt#cBPu>hYXk$EjQq%-LLY2tH)3TYCC1p#tTOz;1KjClS;Mw?t
      zj3?u^u0|8}F#9%>nKy6VJikpJ0bmc-9Vj5|57?M_3Gq}3J@JIpqyok%@vb|EmuaMh
      zuf&kdGiI8aN}tojfmwuF-WV|%dhOnTxOQL;Vf#NiOJW#IdqPUEs7oplvAk&=Bj6cA
      zwHeDqGpV~QN~u`7e|p)OzCIw-L(+cQiv&Np8^w~OM%ZY$7x}y)(|zwqge{{!Bz1sL
      z&dPJ)-~LyYCd+@a_`l?AomsXSQxFI)@^P7jw(gV4iCZ#=5!{A*`=Q~>!em4|Gw)}q
      z(NyWgsp51hB0|{u+uq%5C*vi;jESO&O>m%Ouxt)jfC@Oq|9PlFc83Lvixz7Z>lT+R
      OF2joHMp(@`*4_dA1CVV1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pe&1V~f>RE$CguUJRb42aO6<!D_MhZJ5L@>85Np#eSAI@!$t|^FRCm
      zPvRu3P&|1U-ZJ~%o0<3i{rU#r7#$B4f$l`krJqrl8)X;1(w0mlL(2U7;pxDrxwI4*
      zdrb=us{*Z(o=6@0x8n(g)<aF;;2$RJ!19cYlF5inrc(XTKNk>J0?i=RnU&g(WRg?$
      zdH<#N_3=3qXvbs+`8ZMG#nUX+q^-d2VfUt-H<k9$KT~m^caF)N2-FL@QBxW$z3-e&
      z(f@Vf|I&K7=XiW<kWv(>P?h5v!!$P`U8;lxI)6hsDmLK+1Xj4JTzl}a##rZ&D`=p`
      asjZ`lBE1cVn+{tJ+YYx1WbJmT-T47I2y!R@
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*VyH3ME5S%pxLwJQ$P|+c1IML8h@d^qcKt!Zpti@bp&e7dDB7ejmAW=|I@=XY_
      zSQNP0=gjQv=l9z?fIW0mB!sOIPuK*>DsSV|SQo`Va3;ar4i0a;op6*3nWmT}bn4xL
      zU2d-LN0P-9bA<IK!+*>?VY4}H@++~j2Jx1Qq4;1+ch^55&^clGxO5@1i$g9dX`OwI
      zUtd1<uL#{-;-ARr^SE^4q8_omb6G1raeOpKHt(yET>Jr{Jt!-mNzWFd;D)Q+Ux->D
      f%pgGvsb(8kKwIOYJ}JQxNR6*xRVzKU?yda*ij-OE
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*VyG{c!5S%>-2jLkSprS&828)`CrxZW}5s}`pmcx<pA=?*`AK;THDEI*Wf)<5e
      zKrBa-tM)lFJNxnT_730x>p3#Q&QOoEifpQ2(^y%bINWQ)QQh{AZmNN^=90%bW(jNc
      zs?)wu*MlLOlw*#t(Il9H%oDbo!zR1%3TfnEwd-?;w)A)1QvzKOmQP9_llG~vUB#`J
      z&&l`X>vcrv6rBDw&Yqu2&pr`0clWMpp+}t_)UhqP;-cViNND%UDi}Vujs-hyY5xx)
      g_Y-E2p@m$sEi9ldaZw(WVF@IzSFkFT99s7}zk5_!-~a#s
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      P&~6Z5WMBo7Obl!Q0gWiS
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+e#Zz6kU5VCNYjCnnq(=ZIe()M%%#`Ewl*nRtlk7QUZNEnVwFL<f4;F!7uQ4
      zEL4O(^aJ`)rTd%-f?+81A^UdL+I#Jt`TghTF918JWnd9%=i;02#?qgJD!TH<7t;5R
      z+RZZ&ih+z|*ych8HlbjEeK8EY)9$(SqYTo7MgqOr4@TUqH<)RXB~%~6)sQEA6}}wb
      z&m0rzg0R{$$bpD@-hm3<Gcb_h8-BdxUqDE|RYMi+6OQZ2(Eq76It2T0^hM^7!m@)!
      ztPoQ5MrR&`M-JwZ)6uGfg*YlZaF8S9TWTmjOa@&UeiGfjB&@VXzUX&EsB}Ip+EGvO
      zVlQG%|2{VFXa_PnBb4in<RxOn$Jo6i<l3W2=*ttO1(at0y;u5@sIdMNEX*NeJg>xG
      zfu$ERp4VY-Ginh_Z1bF5^SjNy=H8*;(k+VGl(boMw{*I#)0donH%->rR*_}fWa2L0
      zZI7G1MiGZ7;|Lo#=JyjkW`rBJ#uGf{jECqe^I#omQI?6ctQ1!_usIdwvDc_M_XmnM
      o99Ym})24W8T01dd+M4hzkzAT3e@-MnPb9C+lKn(-#ptX41*-e0FaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR+iuf95Iy5KNgE6;X$fh$wiHMVjfGU;0fbaqS|K7xl`2B;<hUz$tJEouQ_=t7
      z13&^H@xTZ0QHYs!p2A8zU}<N@XV2L=v-|7!kDmY@;C2}fVeKe94TF)2#;MNEg3*bJ
      zg6-~RC)KB6re3MDE+b{Qgn7dpgh?E{=^v>mE2BhMw&*7+0(~UZ+J<o)W{1IZ9luO6
      z6|3|KZ=Ue_z$+${p6Wzr&j{}ucKZLL%^tzs8Xl+$3Yhoc;Ub~XX!d47SnyEBj8vCA
      z%;wc)50$)H@^B6_gt@j()a&taU#0tDf1n7}_Am+uy)f1CKLOqBP>%?Aa?k&`TD}N3
      zR@qxZz0tH!nKL?h+RM`}q0$|W(@5=TF;e^M&02EpSmBWhyozw)$c+5-j!bAW&u21E
      z$GONn59c{v;J;7ID{^l6-!bRYH&i7oN~lSw`}YL9FW9<ZOD=<7%z4WkeZD<lllyLP
      zzlVJ0BP`%C>e#|HY-1HKa2GpR$1bigb0hDDtGp{;%eW;|iC@Q5;<#Wc@$9nK>$ov-
      z9B>wX(f^9-XD%Fwk&*#BriqsmCQS%8t>VRL@jI({#VW2%iw~^gRjar@El#ZBTV}Ym
      EKXx>z6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtRU279T6g_vdN!qyDnzk{mpKUEBtIZ-*eNcqj+9C#xqy(x@o9(cjl5Xl|Bjo@1
      z0~8d&2Y-M+O1yVAPhs%Ig}L|cnRDizJM;U`&tCu@Vyg^?uz41K3WJe~#;MLG!RSIo
      z!G3qQGwu&`^jb~243yy#77cL_CUNk#f2N|Wj1pnZBA==VG$GX5hH)Ndr@;#yze+L{
      ztMn;vUhw+JD<+hl=|pGG2_G7E`v0TN9>Luko~Q~6SoGlGDxuJ5_U1uY@=(T{R4X3l
      z^Xi(1N?xscxP&>vLR%;5&G@{p(xb3HP=soG7=?pgm}>c-f^K%IM})21^S^JF@4<~#
      zc1)-@n)V@cMki12@^nb3bcf?KQU_XmtjxYxOD-MjJWzpG5iT5=kl)>r`Ap{NOy=1*
      z7n$ebGRG_Y_nCP`&Mp537JT}Ss)S_;H3@b9zF-do+ZJrqW$>#xZ;hkRcL(fp-yQDv
      zh|heCB|JeLd$@^xY~UsC;Q-q>#C2xw<lS(Ccjaptw`3~u>zGO$7fdCdUG{nlx2KK+
      z&cZMH-%$O+g#$5CGGNCv@p8hn3E_@aygVy@Zxydw#kE=SiB-H|71w9QiB-I5hP(S0
      DtU#up
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO;5r=6r5KIwY7o*e&LCDX)&?!jB>z;2Z<gqTsW1o!6nd|QcU<)nrKWs_yhb=
      z#<wjoA>pte^LA$5?C#I+*EfI*oEXpu^@;!Ddvg&iVwo(x`LhVTn=pt*Vss~#J%$E!
      z!fr~N`r+7n7*0fx7$^{G8^kLW!4m&A1Z~hJ6fR{blNKTG4BBp=pkH$z3pwoAFi|Ar
      z9Jg<R+u1O%MJRP;DDD@tp@<*-;ZzXH-6-&<eLt28uZnu|B<F<F?uI<;muYgYu}D@$
      zPT;sInaQ<I6wmyGP<7nQC%tViiDfuevR<@^1JRKxMP=RfT=muK96ZM(&qGuB`I!|q
      zVe!1psKa%QSF7;}yK(k`(i<ZUdpsAJ3pAnQiWM!C869M7R8VEay401}ZJ*CFPmfpP
      hvwY(nrB~i$c7?Qfo7&hJA+zDnJj4<62*)YA_6LpVYGnWb
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp-A+?M6ouC=ZI7u%5G+<i1WgPSVna;4LGc3rstq?Sy~GTMNf~mOL(UJ%3-}Pe
      zg;!0y@Bw@TAHc^jt~os+Z3EuS%$}_Mtu=do{r&M1z!n~RC<q!S>RdHr?Wd7RE}HR~
      z_M0txt^#xPQD1aezWL(ov&4kfLs9T#T>nm69jTy`_g`uSv$2kh3VJ$<*}LC*Eszg_
      z>D|!AiLyyg1*tA=JwN%g_xtNNLHUKTCfN~8t*!S2#oh2oS1^TJRa9_OFw-_x@1>`Q
      zI_j#!Knv#Dp-%%v8`k+{F*!D|V6#1*^MCK!7Sz^;`as!!vy()|_P5u2&c5dC=b7p>
      z?mNp2J1XM{uV^08b&sR)vrCv07ag(AX)tEVS82?r)UMPE>Z9mM(24^s3o4y3jePyq
      zxS=dv^LbBQaIAta;qMC;Q9_x!$EtuEDDuoXbFK2`8F%4cY78*_J(J9EtxyWQr1%wP
      zd8!UYxQ#hh4lvKv0d}Z#+HzxKfIE|f_cU*1goU9hCs2<C+$F=Y>N%^$$S$<k*w`H4
      y-XyHcru_`IGL&7yJlxM<Y{e2D(8^(#bL?2ehm+I;M*MV5M8|RwR~f2+NB;l{ov7Xb
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixyH3ME5Jm3<CqYgE;r-~KKoBI%qXY$^@K8d8kOJ;EW@Q#RYqYiz`~km1g_MGl
      z0y;j04?v8Q2mu8Yp4l1QduDe1^3i<)uz~qJGKBRjaU+~adWli-ofBP4&#CJh5vYq(
      zVMIs9(zLjFaO=tIScN(di?H<5btJVkB4`aLUs^&rl17QZl_p~Ed3~Qi4MM3F>L?aE
      zc14iL?EC%JYxmiIBjk3JR&kXuw7lXHtXg;>Z46<g2pa{$Xj5r<l62bAoQZZI3FFPs
      z;{k%la6M>R@ui9go6Vnl{(rk|!qjr#6$tG+t=K5-Z?CxN5>x3C6TDj|^3%aR_;(q>
      zZiR{Q<e^GeTm17O*HSwcz&!pRgn49<<DBOzgJJ#{hXThUceXea=WOK>rH7tml%vfu
      zU>6qlQ07yyFTxncxk>>O98*A*m8mvYS$)LhZ$g8IANL5;ebs=#dQ4-68H8DOXE65(
      D1s8^a
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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<R5F0*nl-K$3}p4FG@w
      B99{qb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZus%TB^T6g|^Y9<_=f;$uflOu=a5j)-9a$_7GAYS^$Ub%JA{HKmyFSGpo`;RpCp
      z#ye$V)O049+<WJ|?&sJ02Y^c)=b$m1K6x*mv*7+R67kAeJagZ<>v!GeZQzFw{GrcR
      zF3obtFw|18e_;&SYY~XJ&0yH$PJP6X>5_~I9R&*pvJAz62>5V0pYZ73o6I;vc@X;E
      zY~)2k_G*}kAH{;f9;BG21Z**w{3kMlHtx`5%3~Ffg4p$OM+Vumu!|Byfqr{oH1}eL
      zie29r&AedhxN#(cX)BKdT1c9mG)c@2myyqVLPkDJiEts4q6S7D^5|62#`NZ>YeS<8
      zWE*E|<lm^$VA5+Q(<?%@utj}!gMx)^>Ijb=6iI{0&`QfmdcbI`QGO-RMoL-%H;Igu
      d)P|BNp@MxyK38PDT>VcS{-WxNO1mZoN8hEmY*_#R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZOG^VW5Xb-7KGwc$t=3n)s0eKjE}j*kNYzTw!fHWp=^D0M_EEN}=y&lWcoCF>
      zg5Ld5;$$s|rH9GnKbibyCi(h)`v9<q4ILW8cAwvIV<@aq=*S0SI1rZ6HqAB<xhJFu
      zO$z9UGZdmkm;1JH(d`RM>PRwFXI!tlc0jP6_YcCL54kH_!e?MjhU9_cJMxerUTIc4
      z<c@+{kwy%;EK-<fh*hc`9R-H1zsgP56*hP4p*`}1FB|uk7)U4Z)5s&20>fe!I_4Pi
      zEyow<Bd;sMOWt(_L$MWD-0kqtQF;=L%bqi2*lEoeWBL{L8FIFe=I;=;>_sioBxy4k
      zg_byWRGHHBwOxhACiNC0OOR=*Mfw7b_9>)k&5*hwt&v}@jgc)sBJ+;?^%x7Ewel;9
      z&r$x8IwuCuKpZDTIYj|YlyF9-&LRT&6;ev8O7z}X#oDBf5osV%dqMGuk~Ao6lET1M
      Qgvmzx#00~z9%Yq(02VoUO#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IyT$oCcGmp$$pHrKJ?&P->tQBwB$&MIkh5D*}=FgdDSSwm44YIEe5~
      zJb<981QH*>M<Hg{k$}n%Sn|&7T+Ym#*`L3@{Qz(qmJW@<JhI=})`&afK!g)(G~|x;
      zqTSf#lc(H2umii#LmsrrtRu-#P~o2KyVid9h&!Q<bUaAIa|Z<3>;D77pugplk@&zF
      zSd$?)9Ctn8Jb6DH_}mW}N-b5PZ-+hWv2dGy$Xy<6GH5%u<Z+iFv*mcg7vV#OM9u6l
      zB)11|xQ<zdxwzyE&QY=TEDD%6P{MhJ^wtz$z82L}6Sc!Y`0l3JnE^w^z!_vSs4}GP
      zZEURHm&S_*3}hMdE#dRMalgxhmv+~qVT!GRV|yJt5b{1XF4UUw<CvW+61XC}$w}O+
      z26SYkcFn+ytdI<QV#IJG%KxAJ5Jy>;hqSqfUgCxbo+Z=4DUQoEGrlcCXb;AL!*_(7
      zsT%(f)+EVTqGl8Hr;vmuyQfE`$=*p;By~y>TO^a@J&PPg=jqm<Jo#0=qi|R(o?z|^
      z%1U2Q`i0Nr)NqN;oC<wFq(4F#cW_yGKtLrdPT>wIRs!bhCs?XikFi`|J;ur(kRsIw
      zp3(W7`r9SYmI7Lg(r_I$@)LlXf+<bTp-}-7^=TQ4r1YigU$Oj=l&HhBGQLuPMiejw
      Zq~&3iEOO+(lUF{SN`4)id{afO{RXk@x4{4a
      
      literal 0
      HcmV?d00001
      
      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
      zcmd5+U2oh(6g`vduDu&4r6EbP&=i`KcGpSjh7d|gX-U%*0wE17TB$-jc-_gym3O^(
      z?U3;Ojre}=13V#+kPt;Iktl3=DiTjT^YK>@cgA+AY)n<&c=4PwzGv>-IdkXNzkg^0
      zn8ITUx)`P|nd_#}<W}I>{-)7vaLahAH1|Z{`1Xot*EoIFO`p$u{^NYJM86fJ7!D=N
      zqTnc!p|25C9NSvhXt;G=_Zfzkq_AfCYsMM7x>)ylm3y-cnTAXjgC~Vn%*4`_&Iu7=
      zdH%f1S66MzmaF%<{u=ja6E(hAUv(LdJQL>IRp0p?fg=A&yKeiZ7=AA#Z}I;-dy6#|
      z%M7V`_ae`s8~qyka65zXpQ<gE6$~;QkRCc_y=p86j<e$0WTUsRVey7<yLA=&7?hfO
      zF>r!r4g<)GWOpzOM#-eI<a>6#I$JEONUIoO*h7Acn-)8+LQ$cr$g0Sx=uvQpVf04k
      zMaSV))0y+CL5<Ac&Yr^<4vU0G7`h9^at=l43VJn+V}c=VIdl~n1`5T{QMsA(l}p_6
      zXR}~9szF1qK*uzskrC)#4N8da)1Zdveht|WJ)j{Mq6anfAVZ}r*>%1g)GFM2+N?N~
      zu7An3Os8ymw&2lZ%3rga4AcK|M{m-DbYb^axxdoUUBhuvyZb9E!lM@3#?(V{nT|%=
      zH5bLv8?d9@MBL6sVkj1hw|E~JawRwLEPl=wCp32RSLdj39tX*cZhF1w=@Q-$>JrY#
      zk$jOOxgtmMM2_T$9LZH0Ra&7Bd+2)`z`mx{ax~l4$0xV2cl;OhUd6zL{-G@lUz>>8
      zoq|oqY`<XnR7?*@nvUsRl4fFhx1>r;4@#=WbX3ypb&TY*?aS!7im?k@xaXRl&wh`>
      z&nUJqsZX?E==oF&Q+ht#!nB^xv@oORl@^Zcd9{TTS7d#&^!2cxzRyv`O{&YM-U~2{
      zb&TS99L5HYVG}cW0jKdI&f+C3<7Jfa3ZBKQsNgj?c%9U5(BC(Sy@hx1Ha^C?xQzGk
      z8Q#a|_yAwwLtMc}*rGo_;S-#sjH}@(;vt+OM(2rrv<D`U@Tp6p5kkVfw)89|k#H?7
      zk?>78)fU}E5dsPCREdOpq7_f$;m|u6G>Qyq{W}=n5a@z9f-vo;a$8y$5N(TLE>S$y
      zDgH81d?rym-6{SyQ9Pe0p6L|-m?%D*C_dgPzMd#vNEDyw6#teeK8Hu5(_V^Bdx%b(
      pT0vo7pjW`~p59okAHvr^$iF|yy}vL>Slp1%ilJ>Q9+ieI{sS%l?STLQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CU279T6g`vAO}c5CXj5yoe#M$>KNj&ts0K7dD8wc<CECZ$I!UG^yJ51C3jQWh
      zFccK@QSe8JcP1%?xFGJs+<WexbNAdk`|J1D?*Ja+K@t&$;;Hk_vB%t<ND;iZ$0P3A
      zN3Ca#pwDGfiXlJnx_%Ndh84{mI9|_gbWXV&FvLfS!BD8{cS9%W+s{SszzcYf%YBB7
      zCe+SGzQ;WhEW0wO`n=l}uF!?V6XA)V!cZ%P_xPV`xy=x(`fqs}QDjV{u*?uGmD@?I
      zFl=7>Kb#B(O<#~rSvzz2C=kA9Af84RSCs53!|L3Rp0^c9;q~^*Z39UIMhXnqOvI5;
      z*>w}iS$4yOfdoUgE<AoX8Fsilb~*!EP`>WF&Y<l`q42yI3;JTrur(X;A6G!jG<rPH
      zS3+MemBSaqutcoOh35!W7j~X*`4j2#7eYBJ{B_xTYEQUBlSS!2i6Wu~r7WVx)RBgy
      z7$ZgsX*!n(eI#a#V#PX#x&0HFZ^)kHbLYta*ttNf3hiE?f<o5z6l>Pb6zkUR6dRv)
      z|C@B~>8>xSXM>j7L>{kDz!7evg(8mWeH)MP8jtY?PjP}x(pWPGxJ4}WRJ3!ZGvz&^
      zGvz*t98Gw4?%k%SSaItM);>`ZfwGX$#lCKB&It3?Iot~suP=&asJIv^-dGfW2oW>f
      I*Z#Kt0J*or5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmd5*O>fgc5Ph2_&IhI;p`>wX`D&rbwk6^WLV^e+M1)FH0!UmOcbhIs;>fWhdgIKQ
      z9|8gki38%yk3!6@9i+Mzh#NlaJdfwi&d2kQpI^TLxP_fOG7Ouq?U~)03McTSf83f*
      zgwxvV-rM!$%=Sgw^B;@jE;;kaGHm=YIF4jkoCN)$bRN8!xMMN)8EPF(9NGR+>%JU3
      z8v9}(yxR=M#FHbjI|ok{S9#`C`f}2tA{@_eyW;RrI#Oph?#Qw9?=pO9q~G)ZdYe6l
      zY}-8$B`n~a2@@5D)<3n;>=nUq-b4<DLKjTrBeZOy5FyJ%F+vwjlp?fd;tULiaz~EE
      zlVH>r-oD)*3WjROb?jl!_N01`omu}#P8pifEdQ<-T5f*i9t6XHSY=wOlGA*x43&ZK
      zcM~e9H{$H4by8H}u~dFz(t=Kt5X>oG97kF{A)8Xy4LnCYl&WVdP4hREYH^i@x<G%7
      zfsC3lp^TcawlrUDX}a3dY_+AylFbv-#92BQ>FqmZDU#)UYv&8fd^<#yTiFmx+{%Th
      zamxr%=T<(%3bzU&RzK=om*~7kn*{bKYnQgRj|!e)89l7wIo9z4O}xZqig*>>fGbqB
      zdN?r+x?dqxdq$&mLaHOK`^ajfI>~9IdQsJLr4))#NcB^oJR7(kche%P^5*zwR6h{N
      zKouHY*4M?DQ9xV_!;Mt(Qj$DOC2yvZYf17fmE1@r*OTP8spMuVc_m4HmrCZT<kckk
      LeJXiNk9GSOB$^`Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{ZA-#X6n^eBXKSTd**g?Os70gCMWj&>*$Y`hALqR272RasN&TyWBIrXupdS^T
      zI~PF>V(h#;JI{H}xpyC*Z|?whv8qF3*yz|p+Zu2u@P&M^27T^W*R}GMFNU_{XZ)c?
      zh>j#fHmvO0Zp*rCbhsmRq!^ZB_z{ai?|IFj8w?oo)v&H-%eGY!ty5R>7WelUGX0U#
      z@qOQOxhok``@$9SfWa!nlj6~0ogsPTHMxNVrc4;fFeD1a`ZyS-P3TCgXvV}i(xh7z
      zF24wR4esCAjV@=%RXxY<)@@&?JOY!lEol7Bk>)?gMC%wWF3-Q0UMLjfXC*PJi_Z9G
      zbED=3zQa$18Ylnf7IxGTVx5*q&^rc=9@>g7Q&T&USGa)*vL<DBgeS;nO0SqKZM`5{
      z+I~UqDJ0C2%^^wlfb1bPC}Rp0%n`CSq9KoY%BVpo!@@`jX(X_K#Yn~?ufC0yo{@c|
      fK!a+Y3c<6mp*bpu8q!Y_OV0f!-^P-cLy46y>eG|2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+e*Vg5Ivh-Qe$ju)p`d-gtm&oXQg;SL0T_ZE%=zGOS>gaN}7oNm4YJp;0O3o
      z;_S8}NRW`ZoXnXsvzyPa_YVNOSk<91Z1n7V+Zu8w3Pkv54F}w@t{aC}QOgxhjXyRB
      z(2-=wt3ucII@V>Y$DL3|nqeu1K4vlKeZL*K(U757S9N_m>{>^nbLNG-!-GAB>_7>f
      zJPdq~dm%%5Uw9&{GFYW}PCQy}G9-`vHaCz!)`Wo^L!wk}PJm(BgpQ1iW=u>V!;q^B
      zk6%Rn77uRhmdhCmb>FewrX2{GkHKWv6*T?kNb~<gqGgN@56^#AUMQ90N2PhFZgjxE
      zdm9Zu3LJha<S=u8Z(v6rAJ%Du1idL}^w3IlkD6SFyu=Mmk~Jy2BRoMqS9!x!W$P9B
      z%JwS?&x$ZhwtytrD%k^SaEL69Fh|JRh=wBODWe8ThN(yjX(X_K#j%V<UVckeUXXvH
      fK!a?aR$xsvG)D#FhV;Y4k_&&yx3T19C9(1iC2f&D
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutJx{_=6g{`4eAFs}2<paQ1dLP%2LoZiz#`EBLr9oPd4Xr3HKmyFuXG}D@CW##
      zjJKsRDzwSVJ-6rU_4Dif1Hctd5>N=IPu7cN&V{}3q`x%h&%!qQ*Oxaf$96|zbSIWw
      zUL_DC6t__S(g^Xobfn)PXr)23+#|$p*+z$olmQKKLb@Xzale=ih4*L;r-G2}xVAOz
      zS)L4Vw2b)^IVYTTwuEl>s}XeZ)0m(Pn!FhcKkCOlO65T_=y70R9~nZ5zqVa(X8D9%
      zsl3jaTF%()`kr*gwIm9BjeeDX277hgg=dSl3<?)E3si%eD1ta4cvPPFx_l-WHK6bd
      z#4G13B;R;ap!2DR+Zr?L*kPPsvtVGC5%aN!G<#4`Ir1_?3}}@Vvad{9TLn=-E3`4f
      eS&M8k$l)*&UqoUxoBuC;_$5^%Dd8v#IQ|Ac`f8W}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu8-A=+l5QWboQYa{>fcST1h{X#VuOTFAG(kb4^#xY4X-aCr{up^RFMI$W$~crz
      z$hIaLu9`jb&FtyS?AQ0lCxCMtDM&GF4*46`y;obma9uu8kY*@_n#~<k?>`U4z-K6$
      z!oTF6c$$pGJ%14lWv$U&aE9+%j@e{Tuipn^>{}zpQ;=h*MD>k_ZWLq4FBN21(;6Ly
      zENP(&x%$inRX^5dcLu&?>pebhE_;ZmoMD*`_XC$~-bop)xalS3%I2QeI&C-G$(5_x
      zZ71={ItBh>trz1~GgP3KJqj<deM8Wgs`H^t2O8<rxVqGa`R~bGPvZXTPOev5G)xYi
      z#9Hy2seX)H)s||E0(T&8ESpwD4R`Krx~LfjT1I*vfJzTx9T_?+bV}1VONxrTq!h3b
      uQ#O%WWT8m;DU>L?fUOw2oxtu8TSi4<%cv%>yCGYPv3m*ZK2Zmuo5LTy-vm?u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>YuW6g>}y(hgIoXg^S~^|LTgiP2q+3sDq9np7;BR2Nft!WcT!&J2w!{Q><m
      znrKK|7~T4NTpRCw1LLA&!Uo>GbM86!+<Slh`Su;a9c-nM5GcO0POO@LJghymg6?4N
      zsAmQ8@%yek3T)R&LlanzAnn~&^hsdJm!546JJRzBy4QRpAf5><)?LRBEGOt#!;wrq
      z|Ly<yd76DAV2l)b-5oiBFOb-83e4TN9Xog+V3t}+W@tJ6T08J;r@wtR)7)>CI|5qW
      z?MWR;EEzCxPM|bfb-A+uf%67*WCU_8+mSn?!vpEPunvY&Am4JkWXK|06i<>`FtDlJ
      z^{|`&O=?>peJFk3>MNczUIgZ8dhLLwE1;i9r{{X?f@VfzD9_YCn`hVS?0Q3BbEYaD
      z*lG-N%66UEZqS-zFkG7|O_7_7ED0n_oX_=T5T46)qgtuVJJs9n$m`06%_A+uoz-m~
      z53bTKl5~m*tRaOtiqa~YrwlEK-kdYANWWQ%2G9rxWX(#oI7ZGaXkU^4tZFWBUa>WZ
      z<q6e1#WLmYg%w!ADn*Q0LxK4Cb&*~P^}2-1sy3^1HKkgdsJ^Bz8lenQ9pj3*6{Fdq
      zPG3^Tuau@4;v-EX(ljDXb%Mmq{&)`TZ<o5^d1TDW7}v~djF2QdZ>h<?650sikx(WQ
      z$|xfVMSpWb-ynLntD9roGAl9c$JDrw1q6zHB}7N;y5gjJ<s+DI-lcyYW{NrgZ9-S2
      nABgUwqB26zgo@4`=7gXY5qv@Z6EP*gtK`K4r?JHqg{uAqxkTOw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ%}#?r6ot=J<fmGx)>`Wmz((S_I}%MGO&UYuh7~0fq(ML!O#5msd;lNHc!$Q?
      z($(Di-Jf&keE)oY0eHZjh91LU6@5fb{hm2)RxC9r48s;>QJy%9<%-9GLCtuch*yRa
      z%k~-ikL#G1A}#V-gTXM~EeW3IyBdR@aN%wQuW5tjdv@qDn3AP=RBZxL@#u|VV%hU{
      zL0ULoUN&M|n9+P$)Txw_^P%fY?UA)@{yTZrQoY_+3SHZyY0D2?&y%4k%Lk%U%l}th
      zG~z&3R81a7f-@-8_Cg;Hil&PBQ<@Poq*M3uVwHg`AvXboj5~!&xki~nuTG?ovkp1O
      hphGTT9+6>(T;l48j5_2R;|{sOWS>xcOSknf{RL!VV7~wW
      
      literal 0
      HcmV?d00001
      
      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
      zcmbuCYg-#d6vzLIlmJ30P(Y{^r7=x{Hd=erP%0!vgK43p7YkOqglSmZY|_o9E#5ER
      z$`^hBKa`JW_Lk-BBze>qeM)}wKWEOInKNhhufPBJ6TpY~J%IrY3rG43J=c0}<_fxL
      z>iedsIJzV1!g3NA)NsZfH+8F)+uA=8RiZ;tt8H5}bz2;SRvOOQqGq%lVQ;maZQa)E
      zg8tTUDqSjN9%>l9{i-UOj?u7M3B0ahCXAqRuN;nP7$UuEka(%L?zT-+!)xixu7;7C
      za4L>%ST!<Emonu}h#t<<B&1nyG)$pe8U{&3b_vOj9pQm>4a3sWVZ(MjQlUAClq~;u
      z$ulW8<V4cPrf0HYHgsRI;YCwyv?+0(sHkCFPGr=IqH5H23VT7W+>5fVJBPW>n2fY2
      znzpD?&JR5IGQ^gfuFM_<DWfjZsD`O<t#Z30BXc=?->AoiC8Oanf4Jr7^`?fo6E392
      z9U!4hs<*+hq<WY%^PzQo8Oe0XTVdNV%-kKlnUC&E=whT|)GXa;+Z1q_o2<llGC~Tb
      z-fFF6SM#fC*K+T6#4`<(VVE*cg#0wEn~i;*Malf(f?`-Q8kPrT&9?Pp4bvx_yO0E_
      z6HB2=64rrk2XRKWtH03SxaGbcqq|4@>ZjkWRKE;lwaum@DfGEpRdcEVcO<PEiF=XW
      zWzHY$l%qMfgp(sgNf~PSgBKJIJ%52%`bv=8EAvtMD=c2s0(JwvSI#QQx|9r)Bfr2^
      znu@yw(zqor=l5z|rQHnt`PHw|Y)H)rxe4wAm8d91<0R_b0veXPW{6i>Fhy_yUhHbg
      zPl8N_f48Xie$UOAOoDgYB)d8ekF$(L8pxBVp|^p1tfj%2Z{XiZnV!>h&bTx^O{QzD
      zs$tOLg<kKKHlvX%S<SZW6Qs<$=X!$7*9}Xzj{|$TSHY#%J&;KA%X=M3RUwfA@ozhK
      z(mwm+OXcdOD44<_^~)-?%OJv3*YwZ|cZ7Z*Y;SQlx(dVX@*;Ha=gtj96ZbZCH?EuM
      z&7QM%cCVYgYI)JVL1~~iPj|_TVj|hom7Kb!l2e0Ma%%KSPW@iVsp~5_wSHB_yKP)`
      z2l^`wH%LPtmAe-jRL3vktCM!wm?G!W&t^2iVPnpA7xF7e!&QYivc+Ay|C7FU|L+N~
      zr0^d}jQ14ilVkry&`0Gz3{-bsWWwNia9t5sBww9s^kC#b{0B?_kgWXsIim-sM=FD+
      zO>fsqqit8kh9Munv#}3|OY&h(Ukmhbr+=sDt7D74C=wW^UnBHukp3Ta$rvN!IL*ie
      z&M-2GDMqGomXR6EGBSrZ7@5ZcBj@lYBj@oJBa3(&1D#di9a@k4URuHhrcB~pMpC%Q
      zNE#VNvRGzh5$`dQ#rr2>xI`fgAV*PrK;L&Kb9@;eF>(c08M%h*j3jY`krX~=B#loP
      zNgy91D=~62MphZQg-;n-!#X1caL+~DW||Fr#>nR=F|rx+^99OGa|d@B*}^s>_prlA
      z1@{?wfQO7c!k3IZ#x5g!_==Gy_?nS#V&o}wrg@6}7^yOH0Kv#3JY(cBYK-jRkdXrT
      zo=(7Enn@fnGL3H;nSsg39O{hB!(!wd8jPGrlaVDnXCw)mkrY~tq~S1<MVpaDykI1Y
      wmx_9Q<<{#l(_Y4Rj9kI@j9kMHj3n_RBPsmENE$ygatpsi3H|-6dz1Y34-={-4FCWD
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXR$xg#C6h*H~X*yF{Ix(%&4H4_EPz6$=N)<$cwHvI|RY*$WAij+SAHYW;UOI+k
      zW&6DQ?E8Fwe!so}+~Qh8fuXVFAKZxEJ!9epa}7m?)*5--ca7P6DICR6@`UfI1;dd(
      zvKXrOpN?258TgTg3PX2)iTya;*BI)qP<A}GRVaOzp{HBsXnMGP!^aG5(oGgT<c<;{
      zQNiB`>RYW0j3>cgMM%mfDeodj%AKm8QkniLR+|Dz%c~%giO1yO{Hs<nNM~Ev%|Bk#
      zN<_8~p7XsUlVPA+`GRRCr6%?NGda|)!z{B{rERuJoSVIqZg>eLeM>Tt3S-~lN-z{j
      z@JvD2K^!{bL3+e0NrE@Y_m&taDoPosQJ}{t(OIKYk=8PiDry;0M<YX;ILVL}PIIK4
      dAsw9MNH;@z=x4|P!wfmcMViq5lKdBN^#=;FmJ|R0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7*-{!o6us>(xG#WP7Gn&WL|n4D#E1jNNmvw!snQ3l!7ge{J40p$EB;y@@&Wm%
      zRBj_n(=(Pnh}?6}UC(9a@4w%F0ALN$z0g5m{E}YNnDdjzG|Mzu$u%sq7rF?H)Eu0e
      z<yf|Oi4KGcxp*cY*9v+zbDqg&k_3oOU=Sl6mzwSg<yF>+$$`ME%*`d^iSut6Et^j3
      zg+ekRIE28ohttNu?q=E<N6C00zMo2-i-aNx_8E~W`D9Lyr}R@n68=5{!zG(hm*rjj
      zxMC)b5sEIQno~FNZ32PhuM(?>4LH3pNno<YI!-lxxQB|(D%6&9u10TD*7lWmZNn^Y
      zOI40;11{uh!Fm>ra!%l$1cF41yj2q0?Ki1wT(kUfiooLC_2rgOEQh)As%vT1)s=zE
      z=!%{$ogiFphdZN7rv!RRbrzaP>a#7*i?sBEKzE5-4nxRrH1X|%KoC=;nM)JYr3B{W
      zB@3uX9oBGT^Fiz*$LK}Y<Tto^!;uVhX&Aw+GHT#A81@ptYE9BaqgeZ_VN6u8sp-(#
      zS?i9)abuP#rq;zkVNBvrz=83y#Yo?&ZK9eEvKv*zuLZYW_uw#tCC;ebVn(96E~zi8
      zzV0(m8`<wv?hW!g53!-bO@*atg}`W|_o{2~7((KH@<tg?sA{8*o2q}ud(RT0aq2ib
      z%e&jVm?t3C+$c0wpRZX*?0HK8ADmnS4`KR4i(k;9!3`IWWe5jr0|t<hr`N1v8Q$M_
      z1II?AKD(D?lBnT2wI+2F7wwGL48?YsRB#IAzDw^7pPKD#Kf&*h@>6`xua-2RUnRfO
      zI+KU-3(|ZFok{2Mum@luZ&mFQJ1{sN;Bf2pvmze5J@{?`@d)pRDg5g}s~4>f=tH|-
      zvIA%bC3^tvLCGFMdswnZU;*D6qcDaU$HglI|4$$ig0O-_FtVL94KoTd3v&wc2p%iQ
      z6L_j1^B&}x2U+msc@B$8o)@0#QBTwoEGtnj;gy2Ch7|>g!K#9+!McKMczPa%Hwq^N
      zZxtj0?-b-cd_Y~BTEJ#a=PlG^8+Lp=AJMbx>G+eU<2{HgmG)p?LFPeIkc0;rg`~m>
      b!GVHA;Io2+;LwBU9^{LR;P<b!*;D@kjkPhr
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO-~b16g{u)ltKp!MFfQMAt>#rv>107HV~7VhKR+g#Hg?B6UVeuolcFqapm5n
      ziGRVEnAn)O@CTUqmyGAVX;8{6=H2`5+;i_aXXe+RA3p(X;@Sve0yEF$D_QKmY!!E9
      zAP@YW*N}nR@kWpkm^yx0-LKq}zUO*J0ux>3yRubNewU4R%ew;NmcaN<$Lj{t3u>~}
      zQ`Uq2?=SE6?(Ykvnw(s9-zxT%1uWNVs@DReFQhNqDo{S_hXM&-$)<oE_|oe>Rep#_
      z-f%rP*yfac`S7q@F4Wk$(`l*{rUf#Z^m1^_I)xc7C~cNX*T)dYoQ+AG7g*0%jFOi0
      zj*8X5r;M%Bl|pS40t+^5q;<AvV;pC6wrnF4W*2OXg>TnvOdw4P71vXHy>?ys2eRIx
      z$ZVz4pgoc%@jfUff@f}5U@lyH+V3qYJW@e9^d_D!&?%dR+y6{rkv5I6c*i)EW~TLr
      zMrC+AIAPsbwbSz(>ZYqnO`ZI_8`=-7P+OcoLlU#Fcyc;#F{JoVrpalBiL}B*8et;E
      zGiuBvvOK4F`^afY#x*B<Hhb<nW}W#y=ADH;a!#&~C1*O($BHv;^|AWZOu5K&(QJLl
      zt&eE<V@`X58A#+%$0{1Q#GdVNF4mFfjT`hw;#Qq$W-*g#Zd%WpVV^LW=4r9B0B69m
      z$f%K)^9}Q#nZ%%JXemJ3th2+0!8(D<xWbB-_&+!|41N;{z8VQ$8V0|Q1aCyrUKs{|
      Thy)iS!K=gIPm$n~ac1)`wb88f
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVLO>Y}j6g@9??1|$vC8TXgQ~HsnwVe->LitKaX_LBjaGHXHQ5GyF_KP#scqYs|
      zmuAyFdnEP<gb<rTrC1^oWrxI1Vu3jCjWr2r0#a<rejoRqd(XM&{rUH=zX6!V$7%Ek
      z3_P+Q+r{t;x42|0nMP9JlsRfECpr^29m>G5-I@$S$M-%hFA0ccrY`zksBBNwY_~0Y
      zhyN;V-MYE?jX)x7YzmB3433gdRI%!`wq2<!l>DG&t2qH{zV14nqZSyS%hv>wi++O*
      zoE8{8KGDLEKxT)Z>6Mk~Mk9kk3}<l$X9ZI8UA!~7sI+T)&0<vrj@O*a*ZLqZl0^pn
      z0)rLDlMmXh4H>N28?F=>s`zzMv`Liv?qModE|+z0nI*X$$U6IH#ROj070<I}wdI5w
      z?O!62TyjU+0aYps^tOCYZINWd-r+@VIbYKd*EPfh4;loe8cnJ0`|W^eRD)@myHDzJ
      zTT$;YjcI`^ri5Wsc3s)D-P=L4-IAV)12dRHQNs=}op>vb*H)5<dQ+8k-)nGVg>j{1
      z&XBV_`K1{lBYC->#!Z}-eyoSQ%DIjorS2gG^jO}{Vh-~H{o8gB%GHfWvaSTK9iMH;
      zMR9YQ%dpnzRu&)Pwm_O3)|?ilqCU$R&hmO1G~&p<S03s*u^J2v6=yK?vKKg*23;Lp
      z#6H)aRDNU^f#F>K<wQ-ZlEn%h&~2N>$pTlqjP`+!$fUGYj<+sLj&@t0ehM?XbzCNu
      z1RrD%M$n5CcWJY;=u~=@>wZ|sVt_ZN%)`~uz`z~`*N0x|;MM0i_cITA@EU(J{0H7;
      z!YoG3DVRvN@_dYY7?3q2`30=P`LPQfTsWLxViWgFej$p(MO@O!Y~?bp5K*tjxzg1v
      zT;(cZ>P&RoT;N_enkroE;M!sQPe`?D@Xs2ARE(cO&WIq8M}Y{F#7Giz>Ol85m}5HF
      z!_;~QGcOnuvDfkepBv<C6w^f(c;m!)TSwx}o)|AY67L4yJcjQ)*%_UW;rsM}l2)vw
      zg}2P41a6)f`K$jye*478U;ig^AKsydBf~%C{5AWTUvRFli}!v<qB8jhvRaHn2OqrH
      zgIJ&3#X<*no_!Xdn(2?znTuU-jM7)Yw|q|D@fm;5=k^0{f5ZfSI?&4u?xMuFe!ixA
      gxK9*;GM2l&#LkO)`RExV4?1txARTtzs)>5|52@}#<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TB{E5FD41KuRgE{zG#i;+zAAQbeU79uXYi<OUNt3U+YZ3Vw|PAHYW;Hcix4
      zRk?V*v$MOiyFb5Q-vG|gchO?#Wqihi@;whOjGPJMqRntH2Xn5{;AWDE#4@;vR%-q`
      zA4JP=Y>iZDSR+#_^WfI#LKrJW8TvI`6(82wQmc@`8+|0Au;i33b{YB$4e?#Hh!Kw`
      z6|a1_kBGFPt^Y&=q{22mKga4-GhA(8{v+^tsjwb@wGt_<ieK|gn@3?v(#x<l@W%}<
      z)e7FtUM9&<zZJRUiuOf366eKwY7%iNbHUK5Tbx$YIt;|2I{*$Xd>an=E_rRTJA`=X
      btRZ{ot|9yAQ39Q-v4=RK3Jk~ews7(X7O8(=
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZut%TB^j5Is}My9$DeiYB@e&`4Zs+-OWph?<}^>grOia7k(5Qb_zP7sSMcAK*tB
      zr-j4?Y-Z-n%$dje`ThC^aEiSo3_`glCZawXy7eoqCQ{#Pe;{@6e&fCQNtlFu)ZhxQ
      zQ@?BVq!SQKPxK|B(D*Mk1FgKy86n%2BS))2pnQ*z(sDRfTDA%FLWoa<J7#9m>H5l%
      zBSP_Y*^tD!@>Fm^IIJv|7c*6xZ@To`GJ_b_EUchFh*hd~8iaKVaU{ZM(?SLbLaw1a
      zc{}d6q<#=BH~PePglh|}LOf5JL09pGd$WDZ72=08O@FK%d9A`hr9}}>LXmL5`(rG7
      zoIRhz5vwrwDWoIJ$3;F1EAqsTta4wD(KC#QpR0W$UptzjSUa9#<AX~EN^A=-**4ie
      h@;IA`PuSwj{)~og>@Wfk3)fQ=g$oUi%Zv={{sAPNb5#HU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXR$x^~V5QcjM4Is!OAmF|n@FL~eBWe{@Y*y5Rw;@cWf^mY$#O2jI_y9hXWj9C&
      z$!Y5U`tNP}=lAOy050K7gEa<?34h})@6~P%xyxUK5^hf@e$5rvAjzOGi`!h9t-)v_
      z425XAaQ2<PZ`&RN)?tuqJJM5Jsz+}7B7r@CL2>CtCm-3f0Ao;#1s>$HblxQ;;#}n*
      z-gCy{KgJ-xf;*ByDMAMR%7~PWh^pc?MN_EZV*0k@OY|n1=Qw@l=ED$EW#JAQR2fu)
      zf6?!{K@5GCM?2Fd43f<b<)$o8w@fL<bMnL>OMP5nSRNKc14`ZClu`&!aQ`_)RF0xP
      z-T^1T;@#!%>&msHd4)V|Z`<7S=Kht+v^EZ_JHBg(TZ=kZgT)sIzM$$Gcs-!+(V!0N
      zuz^aW6F>@eI;1nGH$ys$Iv3L9-wJ8+=R=zOg^(^n8ZT0UZR}X4^Wa-SvIDgUsY4?|
      cc4MBs7}<}J12~M-If{|v)hzU%%zoqa51$IDxc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{lTUXOS5XUD7lsm|!ASzxEX%z|HFZD)Rs==brh!6O*Bx@T^n$&dTfv@I+AHWag
      zady*$bgB<MZGZFM$$w{NH^2Y<`~?8_VJ`;*8Z4i%A58Cj_w@acw^_&?OEAG(+!r|*
      z)L=%%J?1y`Psb<RMmns)Y`Q8{YcRo2xg8095b^L#gM6V_OJ#N5i9BI(QPN;+=hWtH
      z;Rb#u2jdznq$=y6mc}%g?B+XcJLpJ*3x%SoL9WBa$H?<E7%G@%@eAfdVg!N5nXllH
      zgi>al$z>=rBpE?sHG@znWJxrP$n+6NbuI84DzuxZt6sojbycEK6jg%g*o%`^B%4HL
      zxQz<8-4;Vn%LOyubc>0mejX_$2`mx1@;UiLs7f1CC6YF!@ebN6m|vB3X|JMcFqbTo
      z9g|3{k@3%N3w`y(B~tN;ZoDH{tF6IOHi;A|u9Q=#-0s+}i;g&JWj5pny6Lwg5eG`D
      z@-wJD^j$k}c%mPx@OH>;bmnL<jd8>ES$LL&r)_LgxX(h?;(~{`N$hI3w()#r>}95|
      z6t{XYao!V>33}@pr;2OSog($5BOC+fI0h4T6Q>yMm7D0rMk|TKh2#;q;W}py597Vc
      zS*i1HxGE9I79dGGV0ghX>3~FOyxbp`NX2E>x5JR(xtY)AS4=6!8(i#h!LaE}gOz_C
      zt|X3!Y(1Mr4N5$hk#Ie|%slQpEL4emlxk%Dr`*WqJfEBY$+218!$4<T*7C4k%hb~6
      zLPw$u&Ernf2}!m@w%iw&_lgxnq0OtVJfQi$>ughAGkAC5AmC>R@4z*@-*Pa5|3>lO
      zAbyV_nSe<`reK<o8MsKuEX)xy4-16k`|>Qp646|OWkN2)6+*7U3L)3vIw3dUCLybE
      zi;y+AO~^VF2r0rHLhd3NIIkFNVD03a;$EL}6Lhk63*S4v)!u>!edHk_kKi#OPx>-H
      zg=a+b99|Gof|rE6g4cw+fwzQggF(nDlnGgb3L)#TL&y|V33&(a2{B<eOYrvxEbai*
      F{sLrxlN|s6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J5QhJ$NGYNq$`g124>q1lIB4)9Xtc)r+N{lzwbbs`=&O0~0emRpP?T2m
      zw7dWO`_0V%xp@BoaEb#L4xu#@FTyv^+P{^LE^35Mp=goB{`JF5MwZZyr9Bfy-o2&r
      zN<2xzVSg|weWA@%5(k9l_%)KLRrAES@Cdy%J-nH$YXpyhKk%deij-TW{i#TUDtTpM
      zvKOj25jM}b`Q^rs;ongz%DEQC439^_=zsF>Rmz5@9I^M^uo6lzxaW1ld7ee`LTR3=
      z!2zBu_pK8MTbwaa<2<)f=eN6j@!4Rdi5)nlf)>{t>=u>14R0Hrs>1jE!rlD>NHcFY
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWn+invv5FL}yl#-^mq|kD|wFyW>JoAJ$AVmr(bPGtlO}4|<t>X=AZy|gd4}1V0
      zg&6NvyKVeroik_7oU#4)-|s&F@Csfu;F^HlQ#{AM`L6nhWHMz#vhT^_04+A4E?_;c
      zE7WoSU~)>46|fp5Dx2zYGR~AT0>qHHAkoI6wx3aDRO104pmiZ+8BSEr3IUy~>?eJu
      zlONi(aGX|5HpuORB-1>s*6p$V%G;k2&8*}h4cK6hGIjWIRMrHnN%JPN$xufrP097w
      zyTjhsybz$FkhGCjo|Ay4G$COcow#T`L7E^-Q_|5q2X42b;v6`_GV5im=~zI!3^|Zy
      zrf?q0Uu;ojAK`=)r{vC2b$_8vrH)_oWtIJ7oN}YXVRS-MEO3+Yhm;~|cwwHLm(itk
      zl_M9c5atv4rBo7EPQ~>d&1bCNV10!P4R3l#czmE$vFVpo+G5kTGz0o3wX~$>6}?%S
      z1PYD0a0!zvjp&_pv9`Ux^U|%o#D4?a!`5I2uEP?ehI?jMW_;rkUSWLm5^h3=zuqde
      zxMPhw>U^#<vk6-ZOxt5R9<%K+x8U}I&yJ_r^)z?j?n2i+kGbzL4?LfT9`nfSdh9Vz
      aysoF7=9#y}p2zHaO!uk}@7T*<>G^;6>&e&v
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkIgY|W5Ul1JFlPYb3nsxLCIzIG5D0m-`Cvwtkuk=MIle}~19%joZ4R*zb$3lw
      zP1WUkIs@pTA&?<7mU1Vp?Z&t4*?1te6v#bMUk0u<oiCN62{l(~ru-g5HIXYtXqugI
      zDo$y(j=aF_6O7@(QK9zM!B(I|XuW^%dLxKP$psq{O!MyZ2=NnyvF?9ccm4>)edKAC
      zs@nfm(^x06gk;$3IC9j;^EqYZQLCH8C=du)ZVzO+WgZ2-1z$OyMMeyiKadKl?+EWT
      I=4Vj90mFVxBLDyZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvOHUJF6g^)bbS#6EM=M}a#0TxPQgGo0Lrf48Ou?9HH=39MCS^>S%FLAD!o7R<
      z8Zhd{g(M=03%4Zx1^om50(a{9z7B=7vzYl__ndR@x%bE4Z{GpT;zj}yf%G$T+bnro
      z^-|?Qd2wgWdhXi|CxMv2kb0_{POa2_5J-8JYn%0|<$4T!v~)*6+!N?qXgHp4I)2rx
      zH?8>i?(dnO^UYrZF~{2R1<sX2h2{h_3Ris7w*&@TK}xdXyS7u~dve=y)*J3ZW1SIV
      zNucMJ?b!ajKrYuE-+i-`uQCe>Pa=w89Vw()cL+9LJp*Q{Lr0(7jp{gyeu4h7?N}?#
      z%~i{NXs*^(qK!3rVA2VmgUgt|VS56JP0RDl8l$E{G`jQ4SCiD5ka-OVL~}CT-kRl~
      z*fN~Ucf$m91}(bou{A`}oD?rt==iCQjUK~0yF4e0%<D*^SM{|MI2PpJg=?jJUB@*{
      zu_r7wS+_m^spa_Y3mz(srn_d{wWU=9r{`)~4goGvHp&@{VFYpX@RZ;w0*xPYQG2#P
      zt!w~SjWM)`|3RMC85iT4G75(nGKvSt7~=;R*;j}${s+~2ne5ACTp`DOoaepK!Xc|v
      z$bfO`2+1XzPF}f_no*^AAyB+WoXl7=3dQIlE}keQ73MK3c%l?0T5)X!t*xL13bK-P
      zz<Zm#Qj@$QjJHPK4aJ*j#dYyYHtDDI<tEu=Et(-h*|x~$DmJ|p7qAIT;&Q-I;wm}f
      z#usEha}$9yR5l5Cc?ukFgRkIf2zcaE2l!Pem=hEN&UGrk4h0)11mJDvDI1h693i%E
      zEPsSn{EFhT{2l%KQ!E@Hcha;;4ixZ)cD?0@?9!G!j>$W=eGeJDr`89h*J@_AZF&~d
      S92_~WX_UB&a6hBUoc#}Su;#k}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXS$#T;`5QhH=CQ2Nf*x4NR9c-3}uw6JsF|KmT1%(Y4IE}?%PfC`IBm;gm4m<!4
      zMbR^|jA);v`Tl>pd%FAgpP#<~9O0#d6@l8B{3hMxYvA_Zbvxl?nmQ;6R4oo<ICS3*
      z&Xk`Dlw&17_tRL1LxJ5!v-{7I(O2Yo{liz2R7YXrU|nFZ7=57$Y?xSH6a`9#0_Pgd
      zj{<9!%~EB7C$Mf4j-r^7lcg`<7}5!|b7y{~8<~R0a5}%z4kDRZ+ViSg(R2`Gaa#hL
      zHjy5-l&{A!5ID#mGnVPd^%e>}$kyOdQHemQ(fmYZ**aU&)LF|fn*JF?H>~_#kGX6R
      z$rY2_{3od#PXzXhAr_pBJH~i2lCktt6;p?m91Cpcb{)ArGN_oWTgG~v_*&<-dckIg
      znhE5s8n35A8P9UF9c(`3{|B2<x@J4yQ(q`R9@@N_2#ML`f@r`x;t|T_lV#Z;l5LBR
      z<5<oL&ojX-Gr7OZ<jpjoLD?!k^ty#ALY2Bi$X4!0)7V#SZ6;mGxB1X);Hm&^2yH!3
      zr{zA6RXRI#D$#e1NEsW9TtJ19O>8kzMU9bd>@c#6Jx2CXXXF4E8M%bZj9kH0My}yH
      zBR6o9kz2UU$Q|5e<lYjwj|THJ@qm$sc*MwK95UkK2_r{KeSV5(MGyTyr@5@)#a~Y_
      B<1qjL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXTTXPaI7>3_eT3T8uP%5qGvs({c>+!;?QtS*JW;%j;p;uvzkj}D;OHlc1Uibt2
      zQI5$M*j>}B-8^}}<oyo$^Y_<p00($o#1cd8jDP3;<Xh<X-gQo=YCKg%6c{SRLmmzM
      z)Bc$V6vO(DL@Lo!iHrse+g>M=Somh|BSY!!&p?cojH5{rYg(7TAl+lwpwpUh910#W
      z6ueI+dd<?A5(YKtKzr>lPPB)D*E4LDSUV!p&H_8Ju~zU-vcTgo<|I2d%;wOFr~Qy_
      zXc@R^FO`Fq2;_)|47>B>MqCa3X1ZY$Of60rmc7qp()w<3<GVHwHbpgrqO9P(9616*
      zNKmF@&2pmnXw1;a9g|{`)=7Fa<OvUyNObW9A2Dpr17z%X1^*%v5?4rkI0>X&2zN4J
      zJJJoeoYYmDoQ!xfTgYwA7E`e3`+Q_{f}A34OS<AKLpA4I1KOT9HjMlK7pSR8PH=Qi
      zU<e7)@tc}qtmp2~Ml~Z*$!41*e3li&SUog|B-ZGMZYMJu3FT{GPw2(dBoN2a3`jYB
      z6#Hh3R~Q&B=+^@@^cz{mie4A>s-VBCnv}5akPTdPNEw?Bsi5kR8nzr#$F@T*q2Z7n
      z>^kH!t~lf>t~um7ZaCy7ZaL&O?l|Nw?m6WCIr0FWquIklhdjb#hdjZ)Lwr1S$N`=?
      R<T+mCiT;17`?7>r{{TV=0Ga>*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYPfNov7{;H}x@w(nPFK7L-qcMj>Oo<$gMuIwQ7XG<HOxr=VA=|PEKdUuegHp|
      z_$DoiZaE}*ljr?CPxATo{sG_!o&$@)d*UzL&!1yIybErHN@SkPEOlTrY*%+8DwQl=
      z{R^JU=vTtfIG3p`h78@kz(`}BPW-S?GMx<eM-295_8?p=V7ZA!G#FZeOvO!^jD@=A
      z<5)0sf-K_kh%2e<`p_;OWzMiwQD?#ph@A4obkF!Q?9NFuFP{$9(ZSjb4vz|YHkrC%
      zR;ox`Nt5o+ryOcC`Z-38dRVlhXVL6XHKf|2wbAQOvGiu{U7B5UdQ8d_tWfP$Dm1Z5
      x73r~t7BMudU9+yqL3=p8{=pRM|6!-pbY@^XmFx%R)G%tr24Qu?O#)fyegim*W>o+H
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-A)rh6#h<WyPH~Cegp~#qNwx-s6UA})!v{c#fHQbmn##8GO4R&S9iCC2k=dN
      z0ljMCh4I=a@Bw@d<C)#b+Af%wO?KwYobTtHGe3TR{RZG3?ixrD=HH5;sQVxK_0Eg-
      zk?<Vb=^0297RE20o_FQ@z;+$Nj4wS~^eyT69KUQmA<#Zyde3$IKsbRV`U9DH_-ZHj
      z>DR}fgzO{Rv4bX|TyBSyec|-#oxo$E#>JCX#UiBl+!L9@6bgCdaD`B8+m1XKoE}T>
      zP#pIqVXp0V*@a*)9P7h$@W%GpdPF-}RD)ogO5Yc~5PiW4!Q>8f0uk_iZYZ4-*HbpQ
      zycS{Wzsy%GWqL)KF0qYEFj2;u%2*{#m7{n=#p{GZPX-6_JkWC>ER`#l)}mx?<#8K#
      zcpw@yHlyVPEWY9<6#RrnN!v`cD{@xNqlWEp>Y=lkiLf$>i*Figf^^1B?6?E3E1%hF
      zUd6x9YghFiH^BAtLnM@tL6%p8qZG_=&r|1<Jf9pQ%^zS^YujrhOn(Wpiu})UHt?8n
      zP0aAF8s%XYa~v@O^SH_^YPY~Um2F}XORUT8ST|B=ajcvetT4iIQedAAJr4yoqO@4R
      zhy@HSplDY$ZIcC+WVTux;aZZ_;-Zg2*2O3*X3c6=#kH=v9`LFP$y7(Uo}_xsb&HTH
      zA0=rj;vV1B1ot(8$po9<L7$l{1=U5>dEng`-i+~EC~N#gF_ol)As2J@k79Os8p`}`
      Hs9664>Ri#>
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjMK@NgI44g$|6_psHe}Id`vu906h{o`O6*mNe3&Ki#n+G4@qm0D^a%yKfooU~n
      z=L^6F4u`?8$V4Oj`j-2VXk=NWN^_VD^B<oJmH5YVCS%RuBvN;x;KDF)y@0{qJz`nv
      zv`{t2m|^vIJcZqi9Q*4Bag_{9*9-qSk*-peY{@Yy?o}-JX-*oai(I!-i-Cga0l=U$
      Whp-59LMGJ_F*YWBhWcr%#q0}+1v>En
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Sy$6Q82v^H)w0X#zM`!nh`ZtjVG5O6q-jy%p(mtsFr1KJ76pHr5B>oElj2QN
      zN|-6<_>^<+cfak<On(3U`HP5V=v|slF*>_#d^4u~ulBSa7=hRkPLQS)qk#r*8_w4B
      z%I3B(14hGIaYg4fty(VgQl(brdbL<##0rdhHP`V2!wJ?5I}{zL&ln9YbN)e+M<H|_
      zj7!ZGi_J266zE{ouU9pV>w2xUQY)15D;)<12Y(s$@lRZ<R(LHxS19s@i2cK8q|7VT
      za;dh+OT0W+;S058{#i$LB+Fcn*b`<Lh}BSd`;4;L;?aV7;91VrY%ZoEFUrCX?LZg7
      zETatHGsSLTVZ$_yq3e-jtHo9f9yB{tck3_`x^^w#Ri|mYKH?qO+!_|%62W_8FK-FE
      zu3JB19;$v{=2O{1l#q!N%I<d`AXdd-2!Q*hu`51!t|@#UOEF4i*AM$NcCT1F!VPhp
      zQHSG9muWbruo-ou$4A3+PykKFvI%GO)nYROYkEyv7~YYx7bUgO^IflG?3`o)c1Sm^
      zI>DrMMm?CIbqI_`lOwcvOwb2iY`Erz4z`Mj_pT>m5vGUDs5gko@**(5ELa{cGY%6R
      zq%zlYsEf}c8lxeJ;TT}6JFdJLdY*7h+^2zLq_V$@<xd;+`n-XbIHrbAO>lS<n=qBl
      zZA32!1yIpB9PXIuM**xH-2-eCbzBsV@Nn7c%VHm^j<&gRg&c~HwFzuABJJM6Mw_RB
      zBJHbVk`t;U^1s!iB1r?6T)S>;TDBFy+Kldoo+<K{4O9DCf2pbH8Fu0KL(#7zP3NeS
      zx`5KrABIi?pGn{haCZXt0QV+vA8>yH4*(A)a8&PX0%vFfKgl5)M#m9!OyN5UW*oZX
      z%z3&XF&F8Q#9XE;5_472TvIgH>4ubbQ^}f8vTiB!+@`ElC#Puc&|OJ0N%tgXil!yz
      zzB11YJ&-gHl?fjyS&tRX6Gih>VV)_>b7hMc%BHjQQkw7;y_T36dLuD!mEFf_PST9i
      byuxS_Gf4{y!xbhkF^k7HMRck03JU)Kk{Xj@
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gO-{ow5QU%9($JLtAi)h-q%4S7r>cYytWr=FcC6gUid>mA#A5_kW5EG>D8$ep
      z67jRL=lRVy<F|c(eFJcgLm!^NcrBk~WFJkGQspx8(G{5NL?eqlx?QbRMgpT;QMyd-
      zUP^T%AC$mRI87QGH|rvg1%j*ROqHZJh4s-FIBxjM<oiuv$h-^Uu9YKY*%walTfBNK
      z^G?EAb)-$SkY)V0t)J?=kmM@fEcwwgYjMB!Y$=yUT01+P$Mb*CLAr5OrmnSN_MlGb
      r?DJPW0f7!@33NELJ@mNtx$5${&q{#7FXaGU<H3;K9!BgM?{1S1{ljTL
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMYi}D>5Ir|`ZO2(RO~|99Y5Jtt4#YI&>4ZQ@8e-!#1*a}44{2lHCR?r7>F&C;
      zLgFJ5-w_B^`~w6jNDd-E`G7#;AN0>uoO{=?qt*e*A8gOPcjnBQGc*3@(J#LPIFFB`
      z=n+WVG;f<3@0OiewW>0Tu)tw`Rrf7BvtasC;D{$(%d|_<^{kq6HMbxj@(i7?Ii7Di
      ze#x}!@{s>UKJjq+&szc^uX00Ryr6M>dB@Kbt?HI7720CWt(yLfKy0>bTaM+=(Lb3g
      z354fs6%sfiFm`ZY41)|^TFO?dS<j23A43L)F(MF|ZK4e)gT%J!Y-EbQYdIS;sZuWl
      zjv9!gPoTeGIr4J7x-Q*SbKPczgN0g|1)40A=jLT}L;8ULB$yM3U%FG4TRtW5qBtRN
      zTGP~Na<(luO#7m{QLjqJZ#gn(L2kLS%*rcqOyIO)n_#j2rsXLn8e>m>$`a8@@3Kf5
      z%QeT}6i`Igr0LS~_9%suIVD=mk)LS!*%DHW@qI6dW;5uv>dy*Wa;B3sk5N#Xo;NU!
      z3j%#xrt8U-^_#Nn3!FPRT8j|)&8RYm;t1ho1FzuKfW8_o-ROLrjmRn$SZp|%PnDv0
      zovmrN{EEuCPr;Dqv+}_wo63?a9M0gOHLgm-WG+W_;#k096qo4J?o{!v=gX>rw-vL2
      za@}>=FU4-zvTchK6+%`~%o}(IsX)=CTHWP~z_NkM>N2imww$^z_4O44@9td}Wx3{5
      z*xK+WqsXPI{b+dlg%1_IR58C645z?QGWBG2st;=huHys7-q2ekaJJckcC{TM$*;)V
      zWw~gn+3r=<O(_L%iZz6|{5?2|Lx}Jc)u$Nuf}26xK#ZRRUk>X(3FQqWcG15!IIx4K
      ze!}Q|Ui9E;e#iL>WEpS)WBL{hJce;5InHyKrwN>-1r0Y%e?dF8i;1-zoO(bzKvGn|
      zb}1Ai@WC0J<w@X~uJKkn;+^Xn?|MhPXS>Fe9r2P#9iZPV)l!Ndq~Dgt8wq@x`q3L{
      zOj1XI=ekDz^nZ|_?;82@|3vP^6f$J4hVe7bld68|M~tQ$c;OF(3X^}sP{Wko!HW-e
      zA=V}vcxeZ(ZC`8MG8$S7rJkDFF%CZPCCB|MuGrUHg>N`%_c&+Y?&C6rIlMu?KE}L>
      zi(0>7yhV(Yybb2L#y*8<kEVad{0^4V#~R3`#~Uc5k2kQ=UX&4T8}J>s?R$>*4;a8U
      zMsQ!JO9v3Gc8%ga-7dnSNK2JGid9-6lHlKFQ;s>F)pkbGCz!gOD_F{3nen%M<wRQe
      j5nR=qFHpj@CRS@P18LviChq>l{7WM}zL+0suaEu(?1yTU
      
      literal 0
      HcmV?d00001
      
      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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
      F{{pmj6t@5X
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+?SyR(c6bJBgyAUX45m(%C1ym~H4uUsnS^~F;lcseTb)0}1EmK>i#Th@APtN$@
      z2k^=LySP#RH!b7wB{{#Fb5G7)KJ2`EPeili8k7(;ycxa<bFG*4T=4ou)G{a~Xfz(H
      zhmEH>Z+$b`XbVc3P9R7)f`+VSqty-@?P^%xj*^{D=Z7F8aNIS=4K#lW>Mxh1Qrh@a
      z8lMr`Mcdaz{XWwv_L6@IN*9zT<IFxmDc_b#rx{4gdlggJTK%ZuR!X+-SeoeD$lI2K
      zzi1{g&svsod4W$=>F+WtXi#}>ad!y)b&#ExL0tC%;=n1z@k2oaIxYvYbWfLk6nE-M
      ze@!oI2cJ>Jban^+U@v;5{|){|LARpfwg_wUg5`MGsrzVTMONiw&s?!By<FoXHY)Fw
      zv2|U4!vD&FU+L;IW=r3fYdZA{%9_eEb^H~v)r-I3WPH1zhrjD;GLYEzRhSCc2-EYF
      zEnUq~6kn({YVAc#nVhQXBF!gJhLTjwl0|tzBdXSj-0kP<(N++y*CRn=s<{!?tKn8n
      zyEm9>KdZHHN!0&0XI@aI+}z&Uhzd15Hxu8d8J$EE*b3dmaT=#I^+5)dpniCOIRg(e
      zXW=2{VR(dj6yC!;2JdCw2k&P-03T#N1dlTxhK?{Fg^w}o{!cKUgeRC!!Kazez-O7y
      z!RMJL;VI^6_yY4q_!9FBoMXNW&oW<u=a{d;*O;%vH<)k2x0r9k^UMqI9p*)NiTN%p
      ynN6H*LSH7lZJh8N-U9FR^jj*tiI034&kT}?d`eM34x(%~iB@P85~T1<Q0Xtl^`|lb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvYflqF6g|@iTh_&5DXnh>1-eC8!Dmu65fZ+L@S$cCV+fhHV_mY{CCilfvoz7g
      zXyOm>M;Y(TuC{Fbu(S6y=bU@z{`&p>Cx8t+HIQSd9`RG|NbylRFM}YITzX+(pujMz
      zGd>Uc&VJ`ebS1+SmooA?43*t%vPIcvUf{_W4D*f2wCyq!w!@w<k;erK1}uhr!*-{^
      zaM3~$Qw-%@FA#gfK}SSyc*hrtDC~0I<&mfSG+2-yyc336!jjQWLP~uhUG5L*ezjpw
      zYM}}lwyBe#pRGuuEd!Ss>Z2Z$@Yc}tdm>UDT(xiw*AuF3pP!JNxpP!H*fMbww+-B)
      z)<$4DWnlp|27{#T@c~Wc4wekuJva7*)xt7XsPa^GwEv!A`G4ab>oV=ZL>;yobTjiJ
      zY2J2AxJS6}H1Km(zHY(6ef7@A$0F!4tc_Fsy*ELX&V{<oW7EPsY9%~mU<V3wlfi6<
      z!>B8EJoTdG(VDHRna~_)5ojYBa%v06%9CxNMCUYlTNKaH-)x@IxB3+`pUKOitYSLz
      z3I)8zEcvyh5|>aRPvsRNNx>YdDW0Q!pxFF^nNL)dK&dj|P{UZ-E~YRvJ_1g}w6!?E
      t{(<`2W{fK_ZhXVy85)(<7;6eL#s*oH2Xw@ElqDF95!n9-9%~s-{s56P#Qp#P
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT>fl7=Ato<ls`;KsgkpR3J@)G@?~&!2=B;O@)9Qf>0GV$tPJ18%#D#$2%`{
      zbnMh?FP-sl(+lbW9GTI3XZ%Z!&-d*%3F3@nGTHs|?t6IN=Xu}#<F8+T12BbxA8i7O
      zUGu<9IP#v8n01`0m9IOpm@Ju9v*5^ThCkD(RL2_6{O}2!*Fj~|-bpOwcV)rxqf?+)
      zTdhiBRaPytY<*<r%aYDD{WmA8HLGH;XXXUN9f7W7#jZJ~?c~gIU3Ppt>_q-d_rEO=
      zSeVVG*JslyfvJW6iEdiJzml4r%Vg8UlgTcxuWc`;)^0D&ZLg-%i>d6IfX_Df2rKO7
      z)=jLkaeIfsftf<tvMuLTf%a%DN9SavC<Ex@Bjs5)cVq|x0|o|hNuYDa^S&58n=Y0M
      z()CFL2D$<mCbX(Fi!7wfBL>bX^V7s>+52^8drvy0N^!d;clM<1D4#I{-RKhNUa)ML
      zt?%V!b<O28yih5a<(x^L$+0$u(2l5r)uTe=2F~LG@jE4}#>zX=$?CRyqp`C{1)fmQ
      zR%ESGJ|H)zom`2@PAGM+Aom@rSo7mKf#Ju3XY2#&U348APKv1O2A;uW2ruG>A1|Gn
      z9G7$hFXJYOlpog3GLfDl(yJWX@?%Dzzd3bo?5(<0F3M^Elxr|)+E<;Cs@uXyV_t8L
      zgfNW(b(uAA3rW^8_xGh;6qx)s(ax~rRhd>PQU>NR$zgCRE`$&lX@J90$?u*XsRn6*
      zl36RMDbgdAQ8FzWxPv#;Y01Dc-ef-NlPsGx63}x>AZ=vnRb2Oj!`t2DKtEE<<_v7$
      zEs9JL>T>CQfk<m(k4Ze!*mM9}+{I`B+&U4XzN?jbwIJs$wYE(P&%O?>DHH-m#<pcu
      z<B*&PTE;cJ|9YDU1RMI`3a6x<zYcyc!H)pXLB62c5aKX%b$A|ByQ1&h2mOr0&Aajr
      zqlXc_{I||L>N9=<u^GO2jQ$@nq|Z<3^JRU$qR*p`=-7sFUi(-W6vQCO1Gq~-TNvY{
      zM6?IsQ>*Tkm}g8I?V<QFuEr;RMy#3VoGxFY|1KN&K*#sF-k8v^8K<_AxqNCXyqpQ%
      z1#@=9e?sg~7gex2wb9XO4A;R+<HI#1nD|+G`S@f?cmFlpP-!;eM|l1RT;}x%FMI_*
      z&xfvUsKqwq*+yGzqlYJ$+C0JZX84t3yrzPV@cI$vj*<So0W6~B`GlQ(%EF(KtIrX|
      z7r24@n85>N@Fkgi&;oqJ1Aam6IzcM2QXZ4RiTHQu@I7pQ*eKu<`3?K|mI{C0LS(Q(
      zWDvJmNRUi!l9#ec<S`bS>0BZowczRS(g?N8UhuLWLLj2rXXn`?to(v?(h%Mx2_6^W
      gyDlOBl<A};d&JA$hIe#J?_!&G^)eKA4|xRt23Mz=ApigX
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL%SyvQ6g}fBrVq8P^;H)x6j}s>;I5@ms)b@jFyMY#hnf;oncRr}nhQU`j}mXv
      zn7%-%i<{xT&bf2v<n!zO1Hd^B4J-+q4CITnNWGHPAkt1ZAob9Elv?&k={B3Bp*FB0
      zuoacM((7Bd-GS<nfi;2B7+|hVpwL&;aNPv@TD|!KxpJiwwFTt3maV8NVA@XKlN4wr
      za5<Z=jmrNT^ElzD))_JzlK)(4j`l`AbItt}6~`8*8qGGbmxw$wNiJ|zUib>}jwXQx
      z(hPeScs5B*0?Xw}TOc1}C)*5zt(jo$bm0N&)ez|7ACq%iJZQ&xa(K{`Jq&bDwH%k9
      z_b7Rkd8M6&x)8{;Jx}STD}7)21`Y(QvCe*JA1i<rmDI6Jc~@+!tbCKDY+#)|lf5OR
      y*iR#q_*wQhu!%_W$i-(q$rr+30ozf$80U+a&KJWxWA8-YUF`9hVuXFR63lPVs|6$g
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-~y!5Ph>*vLS3Ce1yUlD9{|pf=GI9RS6*>t;B~^P@qR|Vg;kEgLWOn-{KG<
      zao`8^M^zo0C<jzHcxImG!*8Dd{C#=`@D+^!9-(<7?nKMTd(%2FCRgdu$lf^zy5E>w
      z{1mz`1NelRE6*6W&e9v%HH1L8zJf4!?6O0nvet>X{YI#!vafWad-9$@385l&Zw$-k
      zS{02pVeO^uzZ`f*`Mc7}{2;V<-Yb0dc9JwZ1pjc*lha_{A*z_EqJ)JIAr=Xxoo2^o
      z>LI33w$aBB0V+0H4Ka<1T}WwpI{cl={6eIeBrF^cx+3d{Tv<H6^z9~u-FN7{($Y$E
      zJ{aa*d8F*v`b6rn_WM>zLYQbR^TSLOg)9PW6QZ~Oi!eJG<9-Zn-lfE!?epO!*}|^q
      zJTC~;YE~A;#3#fD_Ol%2@VFj`;@uJE;z!KKdm}8x>mw}3b$^7F2hMtk*e<)uUu-W}
      yv<~-QVi8yP#JSkL9AORXjCh`7;kn52u-qamHP?CAVC3O5HrZF131JIgQ2PhC3YwMx
      
      literal 0
      HcmV?d00001
      
      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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
      M@(2*+|NE%_AF+x7=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7I`)?H275?seyf2S!jIm*Z9fEnpUK`9SZm@ws41^8l5ljrmDX?A-cwt#P`yfCb
      zB;b;?p#{>Wg)~igC8mT@NWsWOLXp}gQmQ`FR_aStf2dli%Ae4>-<g@6U3)iCBg?yY
      z?!D*SbH4MPbMEZN|NZej01GkVflHxoU-)3SIb|G5HLpsg64Bmt%INFlAig)0G7{m`
      zK*9q}VUoEo7LM<2-qgF#h@?DlE6gb*-QFKggd-HrC{S=kq6)Pg+1+`2+7vut(}1Kx
      zQ%}y;iDu1qCbrNTgMz+<k)*|u6h#*m7R@^^tAz^O%cAjUYK6jy`kaF;6!Ik73ZG!@
      z&Z@PH3xx{r&eNI|Y-{LJ(Ao$33_prcp`#R&6^iN`x;&VoFf$9{XBg;5C8|YiszUw$
      z<4`En(B*?dK!*oj8BN#WgI`9qI!d4`ly^kq#>Vu4UL&zJ+#53#CU*=(!m+M!A}Y`J
      zq?YQBG77VEV06MYfmX!5C@H*{m9zOXT;g7Tudz2855@b8LkcRS;5FiX_G57*HV~&t
      zQ|cQmT{%2$D?t!V9yHRcEOdGJ>v$0L<X|M7NEq>y33$7RF3>R#^BIvib3`T<>r5U_
      zcn1^4!RSCbDU&TamdIrBo@gRzZd<D3OQu{bY)vfF(Q3-=HBz?S3~ETESL#>}($AZ8
      zmbCg%gL(dH9jovtHAgMiODX=S1BFPh)3H{hOSrPe#zf}V>j=qwCFfVgVon^^8;2R9
      ziVRliR5aGyX{6db*u-fQBXe$DIN8s6KQ^Mmhb`FZL8n4P7DPv*9oa00P4erQjX8dD
      zXuU{p(=pe2Tqln^gke3xtL%Xr!h?*~m$A!(oeHJn7If^!24?Dh<1lS1K`;6|h>Y9C
      zc^wA!5XY!px)iF%xtXa*Jf<J}JRtifXOGFON`ULd?U;@Oh?5K9zCML2JC}0F)v!Y}
      z4eEFr39_d@oZLv7nC#g>niA*A90zSg$!5iqJ@jQ)(%|k~5a<QhHSvIi&JoU7$5n~+
      zmUO%$dLYX1C_Ja50~=)Yf{r6NO0R5No!~YwW0vF=gKY5fav>YXHW71&&AP0x(6VMi
      zv-mu5F=<H0S8#%n5*lV&OdbIx_8z>V&|HXLpL2!~=4(1$#Yv*hBNXNqij!q}Zs^3e
      zZ|FFM(+Ya7Z3=6@I8dPil}GCLYdXFu6mlC+r^7M2ty^fa%`(z7nN^I*9g|Q>Crih>
      z!m+e5ZX*+xE%e|*sktUPxo*hHA}L(`(haFgk$5&iI#c0<Ns#k8-V$0An?;o0Nm(Jy
      zq=rc{y`$q@G1D6vh^NBQIL|L4J^48}z_G?Lzt((lTnfPA!L__P!|?m@9xCMHhdOTH
      zCLtS4OWm44W+94nNOd4Tw`7f-qH`dfh!|_5(xqx0%1vlL^94yfKoS)3znGsc>3+N#
      zxuo}*-|T$+uHt_w%DAhXqgUbPA21_$2a|$#QQ6&CTczDW)on}*Hr>X3!9ekC)ZFA2
      z7w+e0HI)OM(6F72xf|24gY!L@!Pym-Dw;8qPgIIJ%;G^Z5+hvZh-H-K$s8*v^~gv}
      zE9OpiE!(gq{1!=n@D`?xqCpYGj16vcrH^u;oVg3unM%4FXT-G$8k!ZZP0$c6sDbUU
      zum<vSqK0@u4eXtTH9VBBAz4rZdu?G259ez*R8Rw(b72jn)I=|yFQ|b%ys(Bx@--YQ
      zsDYi{*6;{pFVQcNXigtRyDQI#mrWJb);2qw6u=siM5w?^L1A+q%Qxp_L34P0D6HY}
      zd<|y`YG7NkHT;KmN+LXS7aP0pU~>l@yYC|uH{K{(K8$X8s#$akPXtHs<Rz@lJa_SV
      z`z5%Cu{bl;J&LCkHqIMGSfN!LMtNgE8^vCQ5$xY4!vTdi#y%Z#sTz^FcVX;uV>TCB
      znaaR<ruqf4{vs-HnK}9{b88qaxPqm)igheQn+bR)u45O!qui6m`=*OaEH`Yxy%<0e
      zDLPrnGMXmzE=teDK|I5p-HZSZ;V^Snu`g%9T+BU^gT5f0dv*lRPo&qq94viKq8`DE
      zHkLc6KnlVX8_Nw%jpBN+X`HSybI(uc=uheL&rF>USaJ?qrr;$UqgF4=g1F(L>AXN#
      z=cuzZyoBdmZTtwOgpy@NB5#dI>gCSdikcR!ruICFYp>C#<E_QR7;Llx#L#UIxXt){
      zfR|f6f#QH?6km0r)f)_Wsx)o)9elmjSJdJUct6C{fH&Y9!I^XL6b(buTKtS}!1p0M
      z47A2gRsM7EiqthxYDW6<kfy4%+6!Z+YqLo1A@sn<^x)_8{ueB}zhrU!6$A8Z-i?2Q
      zCj1tQ@ChEm?|J$D16JZscpQJ^Me5JkhQA<!zhV#mhW+?E@%RVp{y%XV|HA9s`!@bf
      z;(S7~d}^XPXrbhwdKKSd_!ZB5jpbD+QHNJ3DP?>PZ$sbar^eF{;X7;u#XR5O-(fa`
      z4qn;MG9n(@umb1s1|t*U&hK*Mqdm=d6W?QFQ0(U!Iz4RDsZ8i}+)R!Uyq!hDEdJzM
      zw)mGhoO;XQ)S%6&x@@eaPUJHzN3+@5R4IQSC_|YlN41)S8dZ_Qv^ocqI-6<L4%5Vk
      z4AX8B8J+REIsWvCOru4@GzL3|Y9vEn3t2W`6V5Y?twJ#t1R<Q4g!5X2^92LmD!0(h
      zU(`|}teP6|1^l^mD-pW+9lDiNm7IgSO1mZsO|o4X(#D3|V>IE?*cmR+Xsgf1F&$9%
      z6O0)IV<x7lI@GCIn4@O%<#P_^skvCJ9>h{rk7X)|)v6JXsb)N(=JUO30bh9*qF*h-
      zezgRHss%%;l~>bccwH^WS?;~4R^lDC3Rft9UA3DaAF)7lK)&e^@0>%tQ>=3q@lKMo
      zLcGOz!6x2PQt%Sz+*pl1lY)H5V*?Qida;u)tU^H_UvU<g6!bG4=9v^Mq1U`RTZIC@
      zWB8=F_cCBo)YT0c+|&A23}d}nglna?UqGAl&~*{>Ws@ve6}?ppXbj<H7Z0s;mN>&&
      zabu`xtoF^ZJ1Sep=h7~yC*e_D@TqP5ZKRv8*FAjWeF`D96WyHKt$IzIteV~H;MB`n
      zFJ+GwGl?ZZE3nC|-bGBS>G(d=S8Dbt_5$l})J_kjAD0IkX&MV5%O8o9HOI=bLGw7P
      zCzm_NmD|TDc@we~j#8o2@SeMPkNxlm<NKjqS$T*6VKzoa(K$IYNf0NAJ?4(?5nRvd
      zc^~BTJPWI5;Z@I}Ts@Bpb(G2a5_x$HE7ftnSsx`{Cvp<E$2Q(eKD>_~(dbHED6Iab
      KaEpe!aQlDg0YHHO
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      ZRsgyz16_vmY+xB1C%=Ne!1n@t_#X_D4}t&y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO;5r=5Pb{9B8Z|Oil_%qaFKZSq=-oqBL@@jOBrj)x+U8!;kSA42l%7JY2CoV
      z!{lYY-kW*fKc8O!ZgA<NB+#47r5svX+2QD28W~zL0f)4S@!<(HivcBdG@MN56j~oU
      z0<CRzq!LYXsz|_lm^_aK#7LkqN_1+awy#oUR0h^-0YA))A#DZ9{Q(bonso)L3q#8|
      z$x?yJTWnG;c}nI`jmQRiMyp~Y;6l17c>N&fsEt=4Eo{tkK28L#wwDD;Q6$x!iLwt?
      z-3;<|%zIB!tQ~os^Rb?}tP<ug3AFozr!Cvx_qVM0l4K^N$2fnv^Ut;Ge1$FIlQ}9J
      zUHGUn?y~PC)KFtv>)1nXZ^Plf!vlv+hle;S=2~bo!!a{>j2+%Qb)BxmGxWGCa9*ff
      F`~nDiY@GlA
      
      literal 0
      HcmV?d00001
      
      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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
      Y3h(5H!q=4WZj_pED)1Kyl!34Q3pq{jeE<Le
      
      literal 0
      HcmV?d00001
      
      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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
      JkJT>x=D($Wu*3iW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OK%%h6#lO5WMX&PI%yuItx5WTdd6v;U??qlkT{{>Hibn(fMmnO8QGIeJTMuf
      zMl4vgK@|uDVpkyw3&aA0Kx#t7qJk|yqCbJ3K=|&RA$Du3(Y^QFbI;>D-#PQwKfgZ!
      zFpBFMVgmhZ)(2KTux|$W8P9dC!0~F=?JW%nfwX#aty(4j#>$#q4m5NM^ft9K-o|^D
      zZ>_ktKv!A0dp<4Z9uMmIV*<M8I~Av9xeLrD&=Xpz@biK1)GD-zuiIM!vE`yb=eSdI
      zf=Pi~_W$CwdoLG_MS;YOw`!*lN4Ji{=wZmLv6uu=>Cn(6rG6brq@;9Q$06tfN9UZH
      z{d#?4#r7A%a(d>xvgIyXz9a9EG7(grO?tKA2}vXVWLZ&SFL(kc+i^#BMk$3MoY8Pv
      z;7F6s8&*)&aTezYdc&y+bYx2<qeMQ+>r!Ri6cD@$hwRwz*DaS|`l2i?Z5lI{QY>y*
      z#|2zuaTPn5_v(Jx4rwM8S)-l46h`ozhS5j*9(w37V9Jos>v#c|1P%pWaVxN=ecxic
      z5?N!pn8Ibeq~Xec?)AWN^U7dTx|16%yIf?CmRO3nvi9fzg!4tCuBx?Jl`T|_BTplk
      z)-j2fS$37{+7l|KrNC7k89XhJ3d_Cf$ieJxo$HH|ZMJFNsno2X?(@CaLPZ3lMbjMd
      z@h5eCatx=LJkHg@JtoJDe^^WonL0UQJT<PvI6|wVlw7_ic=npVA#LV%aLgRuL7#bH
      z2Lr!SAH!4J`xy~<la_BW+S~Mg2gk646V#faKThHlZ;Yh!3MI+RF(t{|5*c}kGJngv
      z%sgw}$H0S}-1aay5uf}4XQe7rkh)Ca9=cnvtBu=nkva9<{==r<YJ+h?q$kixxk7{v
      z5w7D5D;%MG8D0z8*#oq*c!sz+{<wr^ah_4q$nra{&~n@&wD<TDXXJ_8pAdJ^5pU%F
      zfVeSypM-IJFEzuv$eCQb$SVup3%nQh@S?gWnlMe(l5JA;F$ulH^q-LEPYLTY4(aE}
      z;R{^Bml(rW3ieQ#`~da@#xbE_=T!kQ%KXV9uz8-c0Ud<a_san{ol5zQ3aEz$Q9vOl
      zn;JP0AF<c6FQd|V7gO6)is-~D8`C=|<xC-yc(=NJYwC7<KlAne--GF)4+n4EX;v4G
      z%a5$A!EyMBO=z&HpIa&!jS?qGbrCa6-Hqc1wDaGNz_eB}@OUMA?UkgbIbpMrv%#Lp
      d=}VfjSG#zni7=!>r~uL=hF8`88cOQC_AiF6MCSki
      
      literal 0
      HcmV?d00001
      
      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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
      OpAeW}mr>OG+5Z5%(($zb
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Oe5%(mNBJE_@c#gD0tadU
      
      literal 0
      HcmV?d00001
      
      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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
      R6T82!%eCnDxmJP?{twN}X^Q{=
      
      literal 0
      HcmV?d00001
      
      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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
      Oy#*8UPnf!t@BTlIQWxF;
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?-%}e^6#i}kNg9?PO<PJDTH1moKWMS7KPsWEfJH$HZK)`&2ph7%(vV=-bUHr!
      z<T(1OZ;Vd$g$JFnq0^37b*9cZj-%G`-JgGk<9F|Fk|hm3WcTd3=brPO?|$dz`+x6k
      z0XT^jKRg2am-U-^uVvh_dWTITlfIN&Gc7Zh^`lOpMJ;CZ>|*akYT1~#1Of{(YSv5(
      zh!KJMl(A@L1-wR<o@RSdx2(LGDp-a<+n6hVF2AB%U8+n{z}IhPP3xRMB)U^jY)YVR
      zD3>;ZU~&x&Xc1`NF?>YEH;<WFW4y4EGV)jTRE8KrW4U=fGo|NE`RzFCtR-_zAnY#f
      z?w<hbRX0I+v0s*MW0%p`)Gk6fpkWt+(rVXG4<AuRRq?>0VX6L9Ecw}8atu^BIS`Gx
      zt8QndksAgjrz6?4aZ8ry(%_dR8rR$_0u7A3kWH84q8b7+u7PnSKUp^3Ea(|_y3e7_
      zb(+c8HQC*94JXjcqh-ROjK0R;Jtc@LS~-(JYUZ>brvzGSpQ(m85^Ow|T9%|&Yln<_
      z7FJniNncyC5A`IT)9@@h$e(m_&B{$uJK05nz1twz-lQMYi!E7&%ythJ%uL$I2k|@x
      z{TQGIDzz1M4MXS`@Uy{jeT8befEWE3-X?H6m4=tVWAoqCGX-N}LEu;|+FZRkz=Al7
      zm!(R^s+e}xV^aZ)Gw*e!sk1Wtl7`E;!V}V0SJm_!cb6*dd#sexERRFrs)j@8kjbWG
      zvRCDBj5y+YoS$R>)09U~c{~Y2;JSvxI3jb*$Q*A7Y{OyCee(a3&IxEe>K;&9R9RCR
      zj-n#~UJAh;c2`+h&~Qwy@U+E@EW4~BDNiRjnJeVyjbT&GteT?IWpqNGCyo%UmseLE
      zJaXu0dE{iMH<hp698116MmDHtBfrjbmxphEJmJ|y)8{I1H=jY}zRayx5aM^M9fm#F
      z%P(%gKE@EIym<JO$)*`2K{UrV(Hc+OK{(!i2a!tB5b*&se9rQcm_rkEmHe>1t(?5s
      zNzPQN8;>e;&?z&_G7@u8m5FSt(4;b%tZ;)BGA`)Ba`vFgDWOv!PR?Gw1#{NNzd&Sz
      zh6j=bpK=yd8c7@joHRlzgC5zpdvo}+s?BfJ+)M$~*xXrN`R$sUpFoL<a}E{0IBDpt
      z5N)5{dqn%bivnMn0-q9xY?*qi0i?Sc$Okon#A*ZSt_JcEfqc9J5UEZHg!iKZ<Oen-
      zWt561K0$rmM&cow5=HdH`MZsJ??&PQ#6@{fJ^ZaBNi$3{d>d`je27@dQ^b=WBEqju
      zu6M4Zg=RO+?sb{iTj}x?Cj!_c&by@M9_4-?ZTOP?Z6S)Ua2gNLhp%}9euGJTOWkg%
      zer)BY%EYGd6rN@u2YHP?!%>mS<t6TP_KtI0eS!X#j>r<hMCM9XXW8m5TjB5E_kK#D
      zv#TP`%=NpZd6fTXz>m!M6S4nH#J^CIkI;o*S@{vp;5QfJeGWno{e2GOyjdJv?~-pR
      z?$P@=J1uE0;{08_u!+&o#Udu?nJnU!&}+7Rt%%n{v$m~E|GaG*(q5!pgjtz_L*x_q
      jo#XTeS@{z&{6&WT#sL1oF#Ym!u}5pPJX$yC^C0sdY-q-I
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO-sW-5Ph4bji#-w)z+#fp$9*};7zC$BvPmbFV)_+?b5EK8`x~b|KhLkBnbKg
      z`~&_NL7XIF4?XP8zBg~??ab%T+XsL%>^ra+S`Yk@dqzANuOI0JH=Vu|;nac6;4O2P
      z#%MWCjF|d!uKC0WJ)px)q&xpPhI%Zt<l#u@SVro8aK*r`8LEDyV#Adg@h}m^!q@lv
      zdAIh=P`Z#xnjS;*Fv!e8u4dklywt3FG-9y*XewM3uu*}FGD9tpO57%kvCwyX914a;
      z5KYLElQH2x(l&D$Gqm%rE8}&kv*L@adc~K)9Y%?sh`vnwm-D@xraFeoKq;a9kjJrz
      z9qiJ~%Pr+fhGMou9Dvc!L3bNPlqfocEUeMXPRF5GA*M&1MX_{z@`~z9rm4~GX6y~s
      h2B;Hm<tl8VL5TF&!Z!7=&?ID0eutt<OzOCY^<OsKb3p(A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)Yf~Fl7=BK&At8;0rsYyaODU~f8!;6xsjU#frUFHwLBy(?<Perwb~C#hhw%@n
      z<7NB-{h~j>K|hcgarC1z{sRAkzrh*D=j?8i<<bwyIXUm`d7t-^zyAC6cK|cclZXlQ
      z?&_cEIZy6;xkcOA)4e3LC$FY%)pHLjyRypHE`dwFu3_iaq+{r&@wr|xWfCcYi@wCy
      zFPgR`m4IGcU#~13*RZXJrMCsdeSv3+w&i-d<&|}_DHH$x{af~*p24C(*KNZxygLH%
      zvGKBiR<vs}jX1IyoJWs9&yr!umF8YWI_p7%?2=v8&9Y87j2J#@-j3l4WS35+R$z#2
      zKS_ZbV}Ur5V_`h<wB|X6Ri{OIVZSOH9ushrcuruXlWNH{WnDMtoO*LlT3%Z*iRT6S
      zJ9>ey`R4YvbkZ0?Hi=<@fe1W9nzdEiHB^{1u3$uEe2o;0mB!0y2wcx#05=34odNq4
      z>L5}fntwFF8F_{l3fx!*<CqXgd3J!CbssyEnYdlqZPOg(Q6T141O}f5OyFEYcU&2?
      z)`?n##783rdW9rjrqd2<tI9`&^jpU`^`#w7^B7S)zM4S}uL<0Z@)(AU@O8}i7+)cl
      zH1c>Og92`|pX<_Fa2(qySv9%ucW+6_?__XS$y1d3q7>%HS0we}ZQU?sEzM~xs)}<!
      z`p*Ey9-vp(bB?ne!ltNUv)?a26+heFk#5uU1QJGoQIu#9%)+`|+|eDq>Pe@>kM7xw
      zQ;5O{a}G=5?}|B(^HFJfvUbXtb$Y;tty|4pr&hskIi;&g@}6q#!8BH|rZ`v^n2ZJw
      zv)n3e1^G2S!_3{&-JNB<QBcGrs%qn$?9z6f;`ktghbSlUp}=ToDE&RPVtZ@NM#FZP
      zNV}6b^J{j~smetbhrJqLzo|?GG9}BBPSMm|S8^eI@?_8>8+3G0O&fvvr*@S&#t}mT
      zN!|w04VCpd?%)_Q{u`GYUwZkH=P7t5CR(`gv#)ZI-)X7>>(EffCEhZD68g~3Ul$aA
      z)VR#MM#;0js|vap78p9h&}IuSEKf{M9pTDmyoIZW7~PmU#ES=%$Dksd_jPMXLDJi{
      zA7wbO52Mf%CNV|-DN3ht6EXf#a4GSn6IpP)UW#Cu@v;0sTnR?WA0e**yrRGyVs>Tv
      zPYm<&`mENcJw`XLZ_a8*nAyy})u**E|HpI(;s^r+Uy#2q>GUgt_?oGH!)^I3uH!q-
      z(Dy#<TS2Hc>^v5*NRZu_z&p4{aJ{&O5>tuOegOCJE;OdXy+Hp0OIYT&sz#BX6!ASr
      zSlOJIJjALHExg}>)I~+$M?Y+TpxO@G6S5^#^MwxQc`Az(%e!%~ArAasiknSZck1vH
      hUk+HmUwqF&wNs(z7`EskhL7-wr)s5-`S}#x{{tt}*qQ(U
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwSx*yD6#i~0%rFd#WfK)Ci`tfDM8&OuB2t3^Ojw%W+oiphA=4S0nGzCziSbQe
      z)I{Twv}zN1_eUAeosLkJhq*K7-tT<(`_4J@=kKrI046b~Ai~hU!}qx1i+$f%7M{lo
      zBICG4?vG?lVdWJ>8G4Q&^=Awno^VZWWrgdRj=iz?n1MZIXq|U#&*!$E<yJ{F7T?Z{
      zy~-SXWKic;pKL5ItgJH(EFF=aac`Qy(>cquO@Ef5A(6~7MCYBnP|-n0+%1%f!uB;V
      z#B_9`i=k;cM0Y1@+!nVB#+vV%b|Ib2HWRc*hlUo0_9fF6E2ZL=aM$^kC5U9n$&nFG
      zb|?-uRa{^od;?;1x4&(A<c^-$X?BJdSMdC*@EmK8*t!zQI?%JN9g*|Nk+!g(6T3c@
      z%2P1Ra5*S}=@^Ul9=FVV4R{EW=C0_tifar?LHH}Yc#1o;ry+?^1u1Gtz*%Qq#~8+`
      zI^t!CTO|KjbwX*$=L!sl-jlhHN~V<;u8K*9VcUs&rQCM>ShwOY<dnpzc9zJ;HB2BT
      zms>ifaGP%BySu{9GmM|rle!w!e1!L<CB<DG_oQ>xcWQ?khGZwSHK*j}M8*u-c1+BK
      z)X$(V+O}}#E$(@O3jN@}vC}io&=^cP2C38y^ixD|9*t<CNC_epeR5*xI|>y#TIr-M
      z_<1B6Xsv>6#@Z`5_Z{6|X(NJOS~YqD?<nC75z1ZpbRMQpQAD!^B^B$d;Nr=|_oU!M
      zkf_&SxD;xjK@Szo5{0B~N{ybu@QGY}4j6iBsE~p1=*MN^h++V7IvXU8D8)m8FHU(<
      zn2{=D<QuwaEhF(73Vna6Vra99iOtyc3T{Y188^$gQ^EZMN~t+-3(EKd9r#I7t92%f
      VP(lRh06mQvddnGSn8iah{{w6y0G$8;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OLG)e6#i~zlIaW$f#Ds3L<G$YAt5S=2>~$=7)*Et0twH~%*~`jPtT;M2ND!S
      z5K+{ke3Taafvlw@P(Z0GsdDMYwdKYi;KnM;^1HV)%nZfCMfW}Z-SfKVeE0M(|33Ty
      zKnFgKphlo|(mHRo`*PZEAC!fHm6829FKhW5s=oRhnU$^|L0Dk1ws0&r(|%xVQl@-?
      zddth~FJ{N2Cm@piE=WIcBM=)XM+mSkfx2-WL|{Q6^f*?bAh0CR)xI@E)v!O4mrvd3
      zts&pD-3<3?3;vA5&4}+=wxgog?XX?j-zgAki4W7bCzqB{gs{xSVk{A87_eO#q<X{}
      zQ?{{zT*`8WEzefp^I+JYu$fO=MebGgcy4u=kUF^bN5{)s0_&o0JM9736(6pLK$8g*
      z3k|%$d|h3(D4MZ8f)}f*8ywTbOV~g~IaRbA=2UW9(SWY_Xap};*#<{c!CFj2u|P=)
      z6N|7gidM8muvuV5xiNuy&>j=**uu_aq@Q#PzU8KPnAYbVrlLBP4!TsZS54HzFz~v7
      zkt%wgbW<}b^fnW3DECY0zGogUg)#6ZdzqJBid<95T_$!Y<rtL@25?!IO^(>EFEi3p
      zx^J1-t#p@AH^`=>s&;!!^rBB-6&o~YP21UGw%@Z-zMXS>?TqcSu;G?ud|2u3F|ik9
      zaRYVtc)4PpWII}rX{9n6ACBN1ftBUj^~#i;wVa@MQS8H@iTyYrU|RXSGjq`Led)Q+
      zG;W^4@nHjp6vyqXG%!RdZTT{SqXLU`1Wle^Vg`;WzE9*l-@pj@kd<k>m^E;MMo!Mn
      z7&t{~yy!SloPia=S%GC0S<*+Tzhg-8bga`6hAmY|U{g!-IgG7nvdSay(WPQY6XPXM
      zYOCZaf(e1fa_AvDn|EZ{IEoAg4V>d4QWH5l#q(wb)@uXJ>ZIeyjOFb1GDS6Y`leGd
      zuR3KQC(x|#e6z><V0$v%Jf8EK12;<K<ch+<l)CN*B4Ar9Sl*+f1t*BY!xYDalVdIB
      zXH?})6{vB?$(M@bS8<&CY3{GC*smf2he7DP<*<)B-(=w_55y?93d*>t!uZ)D(Y|B;
      z&i&8f%;6H{#akv29m*AXhx$1ZdA6#-)uyUUY9?J*dV0jlLIfXG5xUBN4y(TB{{+~=
      zP$B+DB7AC5$G4IVz4GGgm2*e09Cmu;^wDdBUPGu+Gnsy3MBBLvuC<B#So$4>8Z76#
      zPJ`W8LD>uxuoA2I1*}FR5gONgiZGLam`Qw(HBV4CE2fkbTRVq!w{as8+jtMJ5Q#s*
      zqQs^L*mMsavtm#ovDdVYhPP^Xn})ZS;Z6;&({Q(j8|h=$U~6a&Z>v{-qE)HjALV-&
      zMXGlEgnfgp%4QA&v-q9Tn%F^F-$8?x4{J}~CSpgJTWxn}r_xoqBdMg=u--T7x@WOn
      z1IGiPmViD>Y%~DE1XgH`lK~JSP#aeMf{3>nv5A?T)=8RLPE%fc8~dolOf#L~)nVmg
      z4)!dzYRgIOEM8f=g^%Ej#N7MH|Co3LZ$w$#hfi1KhTY`=1&;EcbBs+JK@(2!2X+!|
      zIE7A}Mjr>qA)F;*VFD>+k>*X5xWHNRJ|=Mk=WvTR_zrToizz%n0T1EhF^c$^TEAi%
      zzhMS{;3EFSyZ8(5;cr|LwYV&zxFSqk6{~PfY`}G~88<`+J`tU`Df;obIE-83IKB{P
      z@RgAGQrP%fOye6(uDy!MVx~kcN=2L}y|N_O1;(slRtDo<r1TJ<F>)QH$GFM(mk?r%
      udR*oS!izyxUkQkbja+M355?*a%0;SVwc4)1RsFt(54oyaEO4ErX#5Z3rf*#U
      
      literal 0
      HcmV?d00001
      
      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
      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
      H4#M|;FKX@{
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U2has7=ET-yWI{_DxXrz@}+ID6i@_g3%1L&ENpknPFuSmmg(+cJ7soenVqeL
      zL=zLZ(Hp(dm}ug+@k(5hHbTT(!C*}EANUizSD$lsv0E^4lb!cD?|IMr`J8kAuiJM4
      z9K^K{8Z>k+Sc_JFAeMsuWVtXW{87&@SizoATR6E8nlx-)wW#0I&|VV0Z8_7zFWH_u
      z6+fv#JFQ_|%yUbD<p$H1Qx?th4WAs{cH+-#8ba~pq%mfsHFPCbeLfy_Ktp&mJsg{i
      zr;>!m%tR__Bqud&IBCS<<HLzr)0h}e4^O7(s>zIx(W+xCotm16C&%jd);~NtYi7nr
      zQVFIoVWeZqSD0u#o=6ys5SvP;jbtpt+*eO1x2=}rs7{nL>^T3wSr29%+qHw^8XCKM
      zrkPyK%ZV^L8Q69Mkr#dhtX{_sL^ZSw){HlGS3NtHo9{OR-*)o@J=3i;-K8UfwlMZE
      z%S*nM4cKU@e@2Hc_1)BqrK0BwH<0>X9qXk2IW{XNvUb68q9swZd@JyLX|P|%6Vl)S
      zlPlSI<?N7-^-}i&+nD#ga*^@Zo_bM7yR<l}Vg18!(bCnzoaacVFX`AIw+C5gQTW+f
      zGRJjvNcGE1lInu(I6|6_=y+1<$(L}p?EAvaUX}V$9UG<o6z8xSrIzGr9h=Z5%@R5`
      zV+%7$*siFuXVRK;1hY?gS@O{$E4fz6FeWsxhmGiB#lgJIK}Ie~ZqK?_L7h=ltZ%)B
      zHeXn|v?zJbB26}S_tecNHMbzL0XZ5mma?KKCsGQ5-04z|Y_C7=E?SPAs~Y}mBqx7f
      z$E&!&F6Bj#RN>e9uFXDzSy&-l<Q01~IURGzk~-o_*>YIR8tT+i>p2$!)86vv*^#pC
      z<b)qap2Tv!XsMi?kJewmsA^1<J#<7a8bJ<S^0T1hG8_iAibdh(H1z!!U+Y>_Eu$80
      zK)P^sc(U+t;8iyxn2{6FSb}ErA7?*JuT1WY+H#Z|>hsz!E773GU03)q$10TsTfVgB
      zX{xu^(5x;kcCzP<eC*a?E1J>5Rfwwwgt1NDE8=bP9x2Itqa?3~lDra1lK4uJ;YyOy
      zN|M4#lCnyYos>^WZc;We##VaQsDXBoYx(>A4zx_i_7yyR3p*9wt?*ujpH;X=;e87C
      zDcrB{L4}`J_^`r96h5Z#fWkuxpHO&M;h4gP!ea`@+uMF%7L66`G&4;V>@_pZ74(>y
      zmJ0gJOsIl`W+q(0VKdWC)iDa{hA5~Urf99epomluH*ew0cdV-c<NW&Q<o5zvNphV-
      z--IlCaG6tBz#d#dABs4D*KrJs7{r?}@CHud2F~I-Ch-nWzKx4`4>sO~gAY)~`&h!q
      zcncrV;&WPjfp737?&2%_iqG&HPbF1!nZb^S-Ns?Ac<B-9?MSWQ>}rA$ZUEns2shP1
      zy=sQE8eNlom8%28aau~-mR=6xF%RF9Ot+PX%~h+K2in7AQhaGJg=y}+LLW_B&qx}u
      zjAlj0k=|vTOEeCBjqUp?IMaEE%VoUwA=p~3ZeDNDI*IOn`u87qFq651T&CmF3g-7M
      z!(K*V1;roft=jZmBpUD&J>Mgx@3RR%vyOY{#RD9{FRbK&$~0PyT+6f>LmY_AG=$w8
      XT#4Qq5Gb!@jz>P3yp<f*RkZ#C&4tbw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtZ3w&Hvng5?VGnvWsHjhcuG)+yWNgv51P5OXBn@H^|n36Var)fw5VVc~8VJ9<T
      z9;J2HMeEyLQP>9yi&|OM>QY<;nsf<JAM4^{eXP5>xGTcyuAqqG3td$7f6lpg=FS7~
      zr@#I(_uTKC^Zmc~`OfX<UVQKo02{<>{4fNTUKcwS>&sflvwiz=Ge@oTU@AQm%lhFJ
      zs4L7l)GC1nMNPz#(|tP=siYM<ny>^G5A8d&`_kP9uO1xQJ-kam43V}omCR&g$?V}+
      zB4>Gs3W1uzgWGo=8XDQBS4yf7FsIY0+-y8KJ({s5x%-Gf<4o*$d?q(Dn2t?k<EiAX
      z_;fs*5vV7<lqPlvEV0)QC9~GFm3Efbkz7J*oQWqZbB-rVIWMu-mawQJxs)^;OJ^*b
      zIFd}9pb8l)9gigrTj>lH7)eI6X)88E!xqs;horss_?~$F{__oQ@INh3HKm+D2AzAl
      zh70!QewwIXz`HXwY5CFa_)mF5&+f=gO<Cz6R$`Tj)mTGr15`JA33qi4bshGjQ=rM^
      z*|?RM+@H$CrHzAFi&a5-soO*=dIW|$_mtslgnms|ku&J#(O)jHy+aDsYoZV91p?WW
      zmY0s}EZ;#LYlq`WOUL9P9b=*4)C8>=qfHreHqo2CHqNM6<`Typ$YfNNRDn(XGe>h%
      z`K4tx<I<}-UD}Quz0R7*+Ip6+b^-p5`unlfNh-xo%NfKL448N|=%GcEsT@^P`6A%y
      z?Aj%r@fzuj?a~>$T;jRi{d+jWkDUVTh1eQOB&_LJVtaZzH)AEUyN^#;voa(C*e$ST
      zXDpdaWy3ly!_)C&Rx+&Z6OLuVv9P1c4qPgu?zJ*>%Vh2EI!vWfN3RnIxh8Epb80q4
      zPd2}#Vd+Zi`dlo*MMd0g23<$0X{`Mw7NbUv4w|S%K#mTX2<g#b6HD~yauZAS=!l7B
      zs1Y!d4336rE4%$zES``drsB;~a9vkuv2xjXqEFNN{kYokr;A*T*CA%&C??2qG@94d
      zwM1rcBA&?-t^!+z{zPhKHkV~Fk>zuO<#oSpO*a#l3GKpAPO&qqtiJaL5EocEoy_&h
      z5a><F%(8m5Vna#oXH^jX2s3^pXz@a*>`cTmnc-Ay(n_01BE=M@)uJadS!>2MM^_eQ
      zwri?Ci0hH@Bh747e3f1YtxPJHp0IZ0l9LI`L>4)LYO>Y@fw2lPRqhs-72J@vDJmc-
      zX>Kra9IV+ApnD&SS9Ret=jK&#S28G4sB5ub@A^qCnwF>^GP$OQ3vyg{bMpB94G
      z?Mzvi-&j<bi?{@FBTmZgZx*<)f>c`Pmqcgg`SDgK-xcoOcqYTc#Ibok-<gIC1{UbF
      z?Tvf@yGkGf*fVJ{T|8VRu-xSYhoSbFTsSquK=({eabftC<kShcGnY<V$%zw%_+Rcs
      zQh6i?nQyn4_zV1{K#<PcWlhC$2}0)26}O#bJ^gDF@4>ACJr$DbWfJB#HZK#lWZJg@
      z{4HJf$-6pwIy%<(u3z8ZSr~Uor1zPa!n7QHz{DwhkQJU1I_mNCcGOZLI&{Y4-{J55
      zxQnJQWQQ|r;zKyiyeX(!+OzQ77?PMDG4T(w0a%u?vU@8xQ&Jqq%5uv+Cho?qa`cZT
      z?v+NW=L%ijopl=fB^Wkwxjj|VA4!4tR&Ko1COuWODS$b)hWhw+EPjqDs_os;(Ln<#
      z1ysl9$S0*=F!4{gHGqfNg~oM5=rA}h;8P6bx=)z+BtFHcqlxyH^>5zJBl5_q($!Ie
      z?YCH=l0`;))WoMH*k=hgtEU~X&vUl|Tg{BRHkP?oHf}+D5nuM>OU~h;5=$RqCjJ$t
      z*%Lqa9FGXOo-r5CTw2r|)4gnuL-9<xz??c9ga?nwQt>q^s(Mm^Z7*Lk6eFhxEb8C1
      z=b6Q?R0{J8gZWCr`u<I)zN@rVF!^aeo-C?&MM4Degl<H?ZQ|?rFZud^CcYyBe=$A2
      zJDpCYhmw=laXIs}iSNppfQkhY19*m2b|RHaOeWW6!^#L@9Y#Ssj%THHeju~YbyV0#
      zC_7{Zm_CO{;t@VOTilZr$w|uyE^@asc}w`>Qb4A>!q@)&16+}BlWG~O#SsxmS~sYk
      zQHJyjCho^+Ir^1}U+43`a^_V{+PA8vLX9X&LGls8!~=?>@R-6YIjYqa5>~FRGVw9J
      zI$+{HJqnumjojxuCU1iB1l(2O9HlLJ6AG{kRF@H!b6%Gw9mBQS-ioLCG-)Ww9*I8U
      zl}es(BE&RS<&rCgMhbBzmhj+F6DrYEPp~hQ9Za#!$gc{DrDB<1G||@%k1`ZfG|Qx_
      z=gB8en1gxY*kg(o6V0lh6t6N-hk8kCGtr<&D@`=&QHO~p)UzyP?8{(_4#J9RF?eoB
      z$Fr7WgSJu|jO4OzBLqd4==O^UkK|%4-0MuyBh?7mYK*x7R+I?i-q-IJeFAF>mK;rH
      za<j9kbk>?2Vcm<#>w?Rmy?BiBGp?MIi*aMiUwqt2=Uw1*Q1;Czk=UP-g*%;R7!aFT
      zO(yIEI6M<O5tdhyqZTtekqC-SxRk-;%=7rysuV*prlP9H9E{7a7WFz=b+uNVFwdKz
      zWYS8jD6ukr!CTo1rE*#4u}WS07}V<NUCE5|@Xv=DMuHy!j;r}~!$6Sli(Ky}sl21`
      z7xIR}UqeQWdgnbwy)$mqJ8vuMozbJ-d1q1Yj3M>Tn~Qp9?D4sr|6206D|nl)=hd-|
      zlrU!}DV3Mc)&;B_uiH3}j(w4~bqiQK?wLo|93o@u=CJNwt}w8Hzcthc_y*;FoEm%+
      z8~GMiv{r1w1$-kfT&NI(yjN|;MalxLxY$O_&>9l4t@{($avSO+-5<x6IrR4sXxqID
      z*fAd3HIKpbT%sXEYWY(X^l2u{Gi3ce1sl<9@~~|f!XAQ<wSqO&=rRn$<7FgaJLCr}
      ze!?JKU@!LB0?iReDs_kgiQD1xoS{TwZ{z`t^ziQ#1~@#x;ek`wz+sfb=qaq>aFoN*
      zQ)uCEjKi^0sN-;)!|_w_dCz#xkgwJvLX$zX!Y|rTEyBE9u0*qF$12f*KCz0Q0ao)?
      zy#`Uz3r0PZ*Y1$5T@40t1r2R5kgmj4whr5rkr_hXhw-}0BA)wjO*B&CHL(Fcu@Q@y
      z6%xSYRv#l|5*FWrvMIHhJxRk>kv0&zHgXQvox|+D)2JE~`_?@Qf6r+I)^*R}*jDdp
      z_{Vy-dKd8e@yI;>WUFrhH;y-Zn|<?m)4dc>a$StKFpk^M&ZpZD1N_kVYE+2<EEd~n
      zjP0lsgZy~)T6Bm#JQjxeL1?d%^Pr020lW<p<VdOTcD#d<%F#PHlDXu;yYOfHt)p}G
      zsEu!b&RHH!ywmH^dg}ac+(fOL+3dg9)^@Gp1^Cb5=5zR~g3+qvgt%M@A(g3?Hw1gr
      zL9&;$rIFCzgl<2FJBGVyllRZz&N+OzyTC)Gi?HbNDJ&7wiq}%T(^jaOCTgWWdC0KM
      zt}N7<0z)lS#w8Scb6coBKBZlJ^x8*Dx13a4q|>>;#uoBaF5ApNFNCeeyQyfi&T}CT
      z@(P=yrJHZBxS9P(h0UX-n?F=>Gh2@eo5xBw-&bLCGp{g}tz2fZN7Q!hdft0%#7%U)
      zG-7ombT%|k*OyxQ^DfkC+tSUvdQ?Vzuyp%lE>zxEY}8RZ;2I;LheD62fb+;u^UmSp
      zu6R?mQar_Ydzwl0T{H+?D|O5@;-6I#RWlKsnEUig$n`I!a{bID7q2$u*7!{5bLG}B
      zj0)Be@<wAbxW!g%GfT)924p2Yz`y7<{27%$W7nLN^>^ep1X@D>rpDv9p}M8Mw)W&e
      zOTpv4JWgSl@EMCy#lKpk1`T{J;j_i4MY~alwMIR9jSwy{8kAJpDx2*Z>*E3U6&4$r
      zME{Qeu;nWx6@@6ksk|^&xs>zSYy`eqar1cT<_#4$^NwaCZ&H%Tbe_k5evA>P>t|4w
      z591<ujV<L2c);;$#I^GI-(2|(j=g+)9AS<=$gz*lO$&HJ9`OIOH`3iRhi}Qs9_HYG
      zH+vhscc7ZXr#7>&KRzD%UZZy&-#_na0or9jHV&iO7(<<LIW2qy%Z)40W?YHY##Pv0
      zT&)DVKtttEuub@(D%{nG;5qz=!quSzKgLfO0n6C{|CD^aY)*cL=WPq@=8Qa<{aVVB
      zh%{0PMt2|nJdEFl;Wk{RU<7`SPuVOlA*{^ksz}ROjFejSjSQbRDXuy+s`6Z`@C)`n
      zGBo)4#O5__^J<p74n*eg{|wXvcVSUPKIibu0(+I0#=FV>Cfe*hSZ2J}1=E~|X~v6o
      z1oCcF2__nu6CnGj4HKOcMk&l4gn1uf-cOhhyaEg_gOy-L3F9No=$%@dQP!GLn7avc
      zhA{UK=A$nUBX5Y6V8#gJC(M`)Gd3rxOJN=)%mQH^BFw`t4<o<Z*f2$Y9xw3J+4C9l
      z{H%+Y%g<tw@-us6UU7Age2jrCv!=b!BRdW9R&QkOx@H#PZ6$rOcKBBjG`_|Jc?_>I
      zzOL|e)7qYQcsni>i-{BD|2ODfc?k=54VzXkJEU4s#~712T*bF~(V(*Uq#bt~yXQn>
      z<N>kVdnY;>b7F-ILq1#2A}XKZvlx}n_Olp^c+ZOE1v}^@ewJ0_2QZE2DC3W?!uT;(
      z89zaf@lz)8^Dg^r%*(q`tP-m!uOZfmwYF@mFQQ&a_7%IBPZ1Rd>TZ;7<>2Pi@YUUT
      zR;-ZZs6&oA<W@-@b;zR*IV{Oz4tdNWw<}GkdS^kKOL%93@dB;=OKS20nv7pzrSWTY
      z^Vw^>h>MNiU<aSOSxrVf0^@vM=`j%Vcwl+FE={NMnod#Eb<|YIkF@*^(+eA^vEVbX
      zAbQ8=#rnb}rApF0jf#_QvH~_IAvUn<*88KjeVV!-Ma_cPG~OUCoEI0JFJq_rMo%Za
      no-WjSx?KV`<ppdK7mF=qY>2HC$q@Z)re(`5*jNiT)z!ZRRzw^L
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu$xZ@66s%@d7#0UXMBEN0fQdw}7%zy)AaM!Ey}<^@;Ed^M40msSix(4(i3blJ
      z{RBV8_+}t3k;C-7>Q`N_s{8%(<rTm-R>SZyWH0#*FDo%p<r6L)Q5$u|wK8ohi~vK*
      z>khcpFMl@}l8%rjAGC#Zh<Ik~Gq5^CtZG}1;+AUj!B7M@Zr?t#ci|m|sF2c@$Gx5-
      z6j2R^(5`8jYL6jPX#9+5Drs8%icxGc1giGAh`^7e1`Trz=_$-&dlqC;Lj+NVM8mYi
      z(eSDxWQ%tOf<bTCUGmAvE#b*#KwX#)LvB2HO7aSMB!d3m85y@HDdK&hYQJOo3q=YR
      zY1%{C6$hp}KK1uTx7?&yC&zwz03UJ)B19<cp&96I46kMsIYym0p;KbI{Ag+O8HrN<
      z3HpOanx{4HwG0xf)8Rv;X>V;zM+OUo=peFKBr&(j(dVOj3Hgb9nf`7sSbBthPlXSz
      Tu<HwGd4k%QFcD-}_E;-ltyg(3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TTc^F5dKat+jUt=EjPKSD2i>lR1mKPRBl?WK!Rxk#+WT#>5{UG+b!YQM5C`h
      znqc?=JZPfDXkzr$A7z|#c4^BkO?T(anVIjKZ>IhG@5e6y!^ni-V`yK~HnpUqZ#l^Y
      z%`WK+R>^P-%M2mF5D}L}&0I~+=hpNUhaqT~d3}q4r5PG@+qUc%o<|xpOv9OA2*lFy
      zEWM_zysp3xRfUX327fG`Jq3m)6+uYcI;|oEi98v@)aT0UIo*D$<%&8(G-Iu3#jIu<
      z{OmacPQfTKbYxE8oMMnybtmmIBsk(Im#U6Nx|`vQy?{o#sy|EmtFl%kfYz9cP}g`W
      zzDx~RxiwDhuquQbw48!&6I?+n6?o%hI@Y3N8|ErQODtZO<a$#fT-ujk0J-kTvQf<I
      zHrK6B#TCTdo~DXgiI_DXC?uRI1qlp<&`&bfh>0r|gSf~LqQ2*}b(%#I!y#NfFjp5<
      z#R#rZ<fc|E>+>%e`i_&}Xb%c{ah;F%#v#?b9^+XVx2Wzju_NO={Emtg#uy}RV?#Id
      z41@Jh`*}y8JYA?;h6xpIXy?W5@nZKGx@qN3Op!6gpbm&-6{9B}3^OV^&@STv?ecS8
      zE3M)JmrGf+%JzyrYluBO@S_;w0#g*N0{w)1^r1x-7OgS8WxA2UH(R08yodmr5_@P!
      zbbUiO;roWj7m*O9XA}W?PSSIll4cObESkyFMv0V$7PQivTO5XX^0vL=NpS{(iLVIn
      zQjm|zL4<K+UPh%53h>G>oT)OK@R&)0RgI7$fR`v|xsHfbB_dUckaWioi5w=9KbA=6
      z@kHvBafz4&XPrQV3(ghkLbpf6Ch~kNvHm|`9})EL_WuTZ!u1)T?+zklM#zlpAQ;&7
      z*SNZKctih1Z;9DEn!|g6+T+%%wjaY;oFlX_I&q$6<0HGLD#WNb0}4mvP_JtUoGb95
      zP7S3x7Fs&5gFNB!xRIaeT}o7Nxq|q24DDewdb5Jt<QcEvZgkSMr@1{#b_EYVQ<l2`
      WVZnKun0~?#w(Af_s)&z7^yB|V0u_4z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+lmuG5IvpSOycOqtXY#a>v~x=nZ#s$Rul{hfkk0Q@~}_aNt)Q}WM-Y|Nc<ha
      z`#vZ*2qJ!fA0<}z1Ox-(!%Us(>Z&?*s(=3a_5;8z>{`e$bdLB7-cw?sdi!%<+~={F
      z^h4k0DvWkgAj9B+FJ>Z87IF+_li~AV+Iu`Y5@W@XeI{NqRQCQvJQc}cdYi#Ij^vC-
      z6lMd4Vl2jCFiCxn!B!$t(zv#GKIgtvbh99*K^O^2IiM7=IOai2Bq(r422$N6*3H#k
      z1JCnTPY+r{hFm|Kh!V0m=b(%#5pK4IMKGLqkViqIx&sTgMi(3uQPOD3!KoB&J8)8T
      z*}-X?(b208)=*$r+mnHKG@p$`^n{OmqFvbw$J`(CNNRt1m{U(>%+O6K{-@w1pgk38
      z$o)ChCDx>2$qVPvSUi-v)yB%wx_Su=&L9Xx)c1KDi`YV!=K9B`X{&$l8oM-OmR^cQ
      zABjYNjcsE|AY(}$V@VuiNg88G7_u4q$~a4PDulk1ud_SuSFF431RHK6LCxJtu<2HF
      z2^wxSpWvcfwGv!%>xBeYKAS2#^uJC^0bU`8*M#0spSM`YJJj(W+xUQM_=q-6$O8Lm
      zAIiBw9(6SQnL&C2&8wrAZ076eB~x8}rsv2Tq$kibbo9E722He<liZ^`U9IYVL9JX~
      rkl8HTi$k)F!xIW*peYy3rB8;ElO`-FW#F1yZ7L6HNiQ8Y(L?Pw@Z_^f
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(TZ<Dh6vzMRWxIB}x2kJ(y}Rn}idLT$p^l>zN~<$tL0=?ovu&1XQj%2GkL8mf
      z;s@|Ui6_%S2L&+?Ip>$0%Rf0ke|`G_;0cZ^C@?%Y<)3)di8I%X=BaqWtr!J5O}W$N
      zVBtuuVr`r-6_gluvV@eYakDo#6+_3c{yGX<Nf^ChU~PuYKr8FGa($l8MUk3e6%%`A
      zD^5I<j&k_+U901vNDzf_nB7pr-FCMhMsfHt4uf9zWh;8`qsk0hLp_~wBdu1+=b2#G
      z@XrWSF%^nb)jKPtu`^PQpHkZix08gz7}oU3i51?FW2Ft{vk%lwoXxnh^yZ!!37<s)
      z&!m#>IYaUAsLxOe^hi`u#ElyEag|}aBbDgRrvqUUK1iujy`zUb?UOjq%fphJNXzhW
      zq3i#?oFrFcJvT$~O8UZke+}u8e<ee$t&}i9%B>Z)f<uP=e@vD%|1n!UrXl%{t)YQ3
      z)`%*8GFT@*m*Xn&Mvi^_W{$Urw{yHhyqn`XRXtDa*9Bb6?B0?uEo}prv-2z2JtLp~
      ynG{_kuSwRQl#jpS`WJEvxJkPg41C8e+G~pd+{PWE0uHkMF7A=7X6g5FgvM{g_Md(L
      
      literal 0
      HcmV?d00001
      
      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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
      Llr*wTVaWdi4Y6|i
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=+fEZv6kVsZw$#BQmx=`h5wV>j6)$)JL@8D)6;uqw7$1gmfFZq*VK9bAzrefk
      z$sh1R6Df%%et;ikT<1)YJ4t)y?EBhl@AK#H&))$0@i+*dKzzx1VWnL8(oId-#pQw=
      zvs{@eJ4MUwPM3?zc0tZ%Y+0BK!Y@#-y$e=pAvHO>B=fF7U|v}TL{`ARVy{Vo+WeyB
      zSb0}ERHp@wxQq5m_XUBr+`-ib={IDTZ1<)>SNt%?Y&M;kX0dd6PS%2;41{qsj2bi;
      zFwiJa6HiPlOS6Fhj;PxS13~Y0(m)8c0+F0uk`t@NS?N5nW($PfkSph{!nEbsO0FvX
      z3cG-L2%w!ju@5oNKZ8VGAhaM|&7Vd^j)GK7X_^e)(pyXsG`R}7<tf*(OA7)`@q|}Z
      z^X+K|gGdNOx5nV9M_1?PrK2cF8tBD&uWq_vtq?}zjyzg97)A>HL2xFKtz6n<;3Cd>
      zFej{{3?q)qiq<QnvpSaTcoNegT&4Rny#~X|{knl0P~)_gmt~2o(Ys&Vp4Pk`h%Am_
      zm4SQE8qe;fpz0UGEtc)=R4X?e!l;1J+xdU-G>|cs=8j5}J|xXu4(hq8nl;d)Tc2IE
      z3v+6DTMhy#5S}WpI(eDl`yes9pH815m58#Xl5{k!awUj|0<nW1fI!`j2Zv7XZ4IBQ
      zpMS0~PpBp4=~F8V)Yq%UryQWCfjXYYC^@tT_>Gy#bwtb!95>t6(PXx-BWgDL*U|D_
      z=ZNu)YR@H}k{K5mzlcWIXr;~6m1Af_J0<4BDOUICTL*6nTZ|}c=_ha+UDf(2eg$m-
      z^9P!~^5UZ#7@(AnPHlJ&)zkuK_6?5i4qn?gxEp7gPIbP$a?9@ESNjHY;?>|UY)CaX
      z{tNM^W(EB9ZQxQa*)UMSwV9;qrh=iFWW&g&9QEYen{rD9Y1%VduHfD`rt_NbQS-uU
      zMDT{3zeNY$aoOGz@dpgxBS!EE8GP0dqaKVZIS~xuKE?^shn&v$02BO%sS%jOBl!LS
      Dq9iby
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ@YjYE26n@?&Y0`9CppZ7u1j<EiHk4Q|^@0Lv0gXaIS_(Lhb(<{dGGSAblwll4
      zM@Gln9}xKhj5B`WgBMz6WX8)E9r*?N4|MPc_(^=uyW35mDIYfPW#99h=RD`UXLIMj
      zAASTdic?W^C~QAxU9fTu`(h(E)u=gcd1BtGS;dB3EAX)z)mju`h4uPa#d6EJV{_;1
      zVk3%9g~6urDl>(!pepnoY1(=&_9{f??6Tu3sDeVsc1zrG+>(7!q4NdDbsGB=62q$v
      zGc$ypsFv(FHeh2EefKf*&<$)tf;bi1EjQ)~Kb$GVp)g>e2T6rw8{9&nAkgcMIIcap
      zcz({VO<QvnTgX?7R%OPjIkNUQ!;N{TuCUYN_b}}kX@5I+nVC33*d~mIG{c!Fb|~y<
      zDpjad?6OtK*UF3MZMSjgV$oh`I8`@>U1T+Gm4>u}LkrcqBl~e|$D@MR8^bVFkrUK4
      zcprnQutj!7UdO6%q~5{%E-JL!Kol{V?J>}WxXd0m(Cy8hFkm1~wiH%j*bnQW(R-?f
      z>P1H(T3oEv7>N#dLh|>Vf#*SmI*Tm1JYR%|3z>-!aPJ=HE{jLfw%@=Qo>7P`)a(mR
      zb&<kH&N{WaoUd3i#L9M~;1y4-?oVSltgz7wSHi3>*hS~8W3$kDczj%{&$sF3`jA`l
      zSCL|+>N4@0hBGbY=heJ$wclQ}D&%lqb^5O}uS-~y242MxhFP6EcYpN<D6x5~KEG1N
      zQwCm>f{l{<w7xO%sp?{_XdiZ@0#j>T%RN#nyvB6ICxS3KBzwHt9g;geGIM%l-Z*aH
      zIo1b%*Ku`_HXR%dGaJe-V}0lr`oGnuH}f~H-_0=hr?7?Ve(x*>k>ZM0+86IH5z{{6
      zBoUdt05R1D@hlO`8ga-wy9!aTg>Q$(PWsq)dAgI>v*s;q6}n@Q)D?845|OXaa~s>w
      z^zFQbM}A7DuAwX4+<Z(n6Jgm+gwrcWGqP)Dmyk76OBgZJOURjt@DfIw0*o;*;2p~P
      zF3G&dp7K7n;sa!G2~Xlf?8iqa;A2eU6HMV#oW^H(6QAqQ_IXr;&}MzHNMEN$WS^C5
      zr6riv;fA?7N#r<11bsi{2Yy<oR*QNQ*;Klns9zB4vi59}uL#&o)6-0t(tA=AI^n)&
      zCHKnra#+g^q|BQb<&(RP4IHwvT*k9sBhvT64We{Filb8_Ue_KCJx}=_6<!Q5rx=}h
      zPOo5IMJG|rGsFzPMX}9g>}!JdY3kpR-1n@}B_y%j;vgM3IIyOJkyZz#H5~j(2fxw5
      z?{sjdt%H2vV6U%AkI4{5Rsni){=qx<XA4kIz;rwSYLy}<SUyuubK$j^{zayLlj&VD
      z{inr2Q;G>B{QTuOiq;X)x~Zv`sDE3GBLTaE*y|gYm?$ZXU4ugH8oFi7tz4Ev`mzkJ
      zieBeS#j##>V~gs+Hr1>Bc%5RG?}w<myoKINZRw6YKvxa6rTcPQ<J^PBW?SO|Uh!ic
      z_lq}q8|n<hlnNh_aQTd~UwuOzT8dnawcsTK?bzRayem8{JujdA1?o#gLN~HMLmd^=
      z-8#=10p~P#6<fszr=wS~k<%=v>|{qTBNDz5Y6h}Hnz%ZOsG3BVI*wj-0-Mzozx&h3
      zsgpRswX|fff#w6D^Eig%q}9tVBDY=|C_gMd(Y#&*142zWT@p6(Lk=e{HQno)QL`;^
      z4+L>f6WsfHyg@jrnWWc7L()d2ElVfmqNS1cOG8r?MAUiydvN)et%?D)pz*z0S<#hf
      L!B^#^&cn?A-7vuE
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~ixn6n<XvLP)X{8cU#jNd+;4mV{!h7DQW2HI~vUA1(EZO|pf>u*)PH2EFua
      z#=qc&<9OW*oq=|$GkWjOanwu4=WIgQ039!qY|eY$=Q-y&&)Glz{pB|RQ&<n9MWJ`g
      z+%?lx&n~5}=PO>>EO-lc#T%UpLo0OorzO+bNZ-kCSp_eQHig8|9m&mkR@wC2vVyV+
      zxN!REj6!6|-f&E>TDBAhpOH4ZoSm6tZu^c~u|3;$h?-Mq^EU0u=#;{6;9gU~OVzv-
      z!>etxwqtv93Zu#YOU{k2D(HE)Xhop#oPiFUi6Vq<1D!}Hgp%W{5%i)jjPnXZN1dHU
      zZJ-|m3bDLd_|$ebq?%?qf|q6lcF4f<Fj%qs@L|RBqPT#OFkWa<IC#mxC|*=BN=>Tw
      zCv)S0MuQ_Ei^59=!f2PLaRV{o>s+uMYq7eWx5~?AzQl3F7u<qbS~bhI{I3VKh_28V
      z01s9(Iz_R=n`ULv+GD5G>VY&hW#F=q=!*S0kz-7_Tefy>w@NJS__^nj^@;=5B3Ns3
      zoZ}DURnGZH>qU2|TG-5%tZmEjvU>$<M|=^*RdmPDiWvhh<BB+@&LY7%1G5s02w%=A
      zT6=zhIXSyw;0?T~&~bRdKbMoNfq6M;D_h&{t|g&&4BSK_O7U()IG$Su7NoiMZMQh@
      zRvk||zC~<~PocYRxL{Y}u(l-I8ebK>_YExK4o&Tf=zf#IY>vKp5})lHP9sDN5}C!K
      z;H(+ACpgh1w^}Y(H*J~X+2D941)OHdIgVAHFPW8!#Q}utd!mp&$sQPV&_#zk*_m|;
      zC9b8jaoh4X-6ArSCB#oFzvE&uK1cX+X+e}9S`FyxlAU5K%1<Y{m~oa*51@Gm7*0(b
      zAf9@HbE%1a^bGK8aQ!ic4=|P*I6(4e=CmNi?*v&OT%kV^3H^m==x_9e{=o#J2IIuS
      zMO^Z8CXr@DcxHK9&f=+kB>9Q&Bl9C#^`p=uMr+7zlEIhV5mLN?G~GbD!Yo0G3DWnc
      zLUaTmVhsqIlSDOHUh#`s_eBFzfuepu>{nb}dxF<~Ppy$bud{oek3GdTg`XP5#wi?h
      zKhEd@B=jJL^-zE{)nKLjkFl=RSx1ERyW@1l2Hoo?=`JFyFQHRU;=E1==tdfJTqvq@
      zTyYkEU4eX*eXw|3@oNF3BgMIZrz5@fY^3a|NZi{x(pJ6oOij?YYe<wiquF;Rm3oX^
      zt$*<ei|yIRy9c;^%zb(p5xqj$S23jTA+7HRcry(xxZe%w@A{go@PA9)J7W`1@m>oA
      zI^-K$Rt4HcRPXq3iCStMj)ub$mf6S(Z`6z~kyS>NyaJeA^Hz=OTcQfpw6sd9`}8<l
      z@_VJFGEL?>*=?;Pf7kREEa^-1=&x`=e~rufn?QNfjq;{XlqV4>Pjky<$3DP^{EhRe
      Ymv7LI_$H7&l1Q!akMRlrX`YV!2X&5}YXATM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(QE%H+7(F*h<1{r*+qLP|QUWY&i34lNwr-<cVWb%Zx-zL#(e?myoJ-=(wI|!@
      z%J>ib0wfU6djP5Fq#@Dw{itc@dTwIDrpUSX`n&g>^PTUze)018zW_ePw;ECcryrR6
      z=5jx@o#h+tAoNWu+_HnPT-T5hn2Mr~>2{aDYd?@ys39vbGdj}>rEi9wFOYuZ1p=Za
      zkO}N3l7nLgp+N4T>pgaFc^!dl*t3K33Q4y{2uap8?pe28JKPXhth{Ygb(i1`uOr7n
      zEjo0(lSdk}IwmnkA(iT`ip=ZKkjvu?7Bwsg6yMCLV;t{Br&{XNdup9iv-fr6)$9yD
      z)NvL$rn2XC8eZQGRrn(v6Y6DQ%XZ~<f3Ge5J7(Kq;xk*GWjed2Z>x3uGNW=ASa?fP
      z<vMfESv_ezq*WR|7O0N&Hayqr`@VET2JN40%M5MLZ5~+ik(%UD!>oYTGlOk;K+kEx
      zJ$mFui`h!`HEE)ZBpctcyRI4beJUQSRPQv`^33Y84g+%<t}y=*|F*Z&w|Y%S?omR5
      zb``VA-_LZcVV$&HN%FZ$>y3n2U+#JPQp4v0r3gC`)N&lzHJzQ%3}pg(<2Ce`I<70|
      z{EpZ6EqT*c22Uq@=7NF}&|9u6{RVq3ko39s|CAHXpLFdyv)-T=g{EscUSPZ3TQcl<
      z9UU!v!+O}m?k=8~7~PbU^J`e4XK6lT{H0XC@oJ@12Sp?MCmPu(z|@rLRIbPPOrpS3
      zQ=GNAKgF?Z)CQO~p5c^{9-wH{j&OQ_B_lOJ$*3LTg8|Bab6*PQ_`iTG|H&)r7#Ei?
      zDK4WZR<S6q;5;KbW5h%SRgNiD)R?cum5R+9hvYoOG@*aT#6PIreTGktM--Dx45C5k
      zO+q&lu=6pjzy&PFu-9VP0wIfhmj1+8=4twA#I6))6|1<NfGG@NR`@wep&sqM7`fum
      zC8e@XLoS^_{-I>9Qs&iTL%mbZFahH(=l3%A>Dm#l{WWAPDyPK{{Eq#Ig1C=)VWK43
      z2?h0`g6l(nevRr0Y{tx`-xTWxS-&`r*bY%T!j11E)=Wp0iu_Az78gtH`ft6?u_qt`
      zY6&qR`Zy)_spT=M;s6)L&$ud{pdo%qXxognWzdK++C-D1x}(Y$U?%qKCcfe-!)y5U
      EE09Sn1ONa4
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKtYjYD-7{~u-vu%1=dVyY`1w$d0B!ylD#3I_(f`PVNip5qP*(PhdknVPp4WOTa
      zPvAJ}_?j0w(}LoRyi>=wegHp#w=banpObX6CB?}kyJyci|NrlK&hu=3`RC~m0LJh^
      z9EQTdJN7+$q#U?~k*U>EP_%QwoLdT#6LFXd9eTE4dut<CSMNBvAdW_bp4uK+n+=?z
      z9r#6srn{bh-<$XI3M$LtreAUc*Y^~xf?W!3I6=ASIh-|1?kA2yW3cX)lB1-Ut4T&N
      zCb{Ok>$$-Ng~O>AEy|{sC^_Tjon|QPw_ssk3u5T9(1vb>SSr2Lj9wgy<KQm(sFj62
      zG?973&(HW}FA%B27UF1<yO%69SMH8lXhBm8<&Ifs#c?g4l{GKRm=f)CuIDV2H&&hE
      zO?$P#IQP%_IlHiA7hM@wADR-pLf;FbN=`8Nrrf%dyUT>eaZ({&OVW(*<;umP;{}{_
      zKXP-n<azc%&e@ck77U?FA--;x7MurxW?WHd<@j3Bx##+2I-8!J>Pn?62$5r^b@QUT
      z=Gi<j@;9W?H)khX7~>fW8Fa_-s>0D4&4RyJ&aKZDoDBj+AkLyo5;bYzJYFZnnnRTC
      zRCZ6prp=J7S;(?p-g%&~Z|8A!+*our{CiFuGYScfpt-Y!g0p5976UtQA_UVFf{PZW
      zG(o9CP#>_AP-BWwrk4cyiiJy<Q#g^z?y<K15ewdzbFKkZ`h|(?*?ssQZ|)R8jBZSd
      zozIKoqJ`_Y$>n=GlCEXZFBfypMOP}SGg`XC;>sS&dY)69VW*WG9`8s!Oy!Ag_Gsgt
      zC&&e&w9k6E0$bKwn|FeBKX2hZyf3}GtI7Mr^Q#k@#3*Yd#%}{ZhBOafHHNf~zOr%j
      zm2CoabV#3a+{$ko+PSNPcdJ|<<29KX+D2#Q2@Yh2w$QVU{><TR9LX5lNMwc{V_+M}
      zZ@A9DAb<PN$Y1)ZZ8WPV=v3dLM}3EW^%N&KV{wj}NFmLuAw^vE%W@=hy_qdqY@w58
      zU!e7S3@tywsb@8dHo;OqqD}oo>7OIAy;WI-VT@E|&sAmHDS3q7<X31gAH^PNcOh;R
      zSM_T|rahDy4P{PqmC&_{%;$Sb{1%aD4JF1fPJ#(-_lizzfkz@z<IL&l9jY%S(zA^8
      z+_Q{4ljJf7nPuLun75hm$9U~)ts>Ap)PVY(e+_@2UHyq(^%oNA?+C$oNN}N!U>&9=
      z7~UcHH0myvW`2d1I}lq)?BV_|OoIvGf7b!Sz%e5haUTxd-@tKtNkPepNZbt)-*fpl
      z+9I19!p(1no5!lh7?;gv{`u{PBHQEP_NlPA9_nTQrmGPrK9h*2neVrr={)NYXKzWq
      zlV+YJEvJwO>s;1UioaHegKQ@lL(IZSX5kdGFpPvTg0wM;F=Gs8jB!jE6A`lMkn9rP
      z4yz)ovvZ$>OeY5ZhmhTN`IZ30bg$_mFtP-=On@r{n8Q(HUK{pQ#Hxmr#XJ_6{;S+w
      z=|OpNO&`hiI+%z0tx+q{XdM#bMkP(G%4Fp=usb~!I{hXvJ|x|3^cpq>j8zO8Ii@Bb
      oA>1ibdesri6CpJ54yg?+;TEs*?<Zvh?60=fyIAJP<hy(2KYP-|xc~qF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq&u-H|5XQerOr4nYe+i{cTR=TPKnYwp;3!g61<6v>N=?=K+F8ODXI<HA1aC!7
      zl{oMKJQQM_80tthvh1B1{bv068~^(K<0pW(cxIzQXkUvjqMI5Oc2E4o#3C?5m6+oT
      zp~unmBnV`Zj8Z?V*{}$QCHy~Th0wfXiem^XJ*AcD6AoSs@0j9yUC(=YMW~O|L<^I~
      zlJLBY?OhJse%@f6Mq}xqiq!^e)ClWCrR7;V^<{i1{E+8t4WmGWS0Ywfo)<0iNhO5W
      zC35bw!6n$f2tF%4A?%hkGF1N<M^jIa<yQiE++?CWYc4DKcJo)wyOL@1FYOe)%<W!S
      zz<&O(k+nFZD2)U8L1jj477g!YdmuDCtz~=~iX@SVjl-oS7J0(<Jvs=Z-r)U0L@4y6
      zd+uM$z_|SqUB^rM3s7;ki#H%%Dd7SCu*5fS78TSvs=&cRK5t<01=QNFS_iji%s8%M
      zjh_xPu)f2#W?1LEz2LBcP0qLjTiBjYtzid`GMZ~mj;eUfaWk)MU^m0({FAw!J<clF
      RM~hE~D{McGu$Sw4`Uj~J<Prb?
      
      literal 0
      HcmV?d00001
      
      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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
      L_$?#4bN=BwIVI>^
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZEMp|6n<`-HZMlkRol6)I$t{Ni>_<;MQ9z!m{8U!(lJo*!)<oyGGii1D(G+W
      zgMv;_@CW###B-A<v1=tH_ug}!^W5jW<maz%KLB*Fts=v)a?0QG_B6De_M>qS`rHZ+
      z_?ucsg~Cue?;MGcAs?RDL2ZkohvyL#-XlogcI|M7p;BLfX&f;qyWX+T!EnJu4tWDv
      zTr{EL5<|8w0ZT*M6;GzG$HG74V@EI)hn~fqBktSsoEQ};h+%d9RkaQYQUd!ug%j<-
      zKp9t6tjtZ2<eRvRD-4?Dxgob*A}%FKINY7IpN>z374{l0Bu~}EHB=~pKj3}wj&6A+
      zzr|QiI*3^9Q20Fbe1>wpkrF&e?4(s6*%OzCQ=bH{%?0%j_j@}%6&njX*fmhYU0KXJ
      zLv=wDs4}w38n-MFL>=w^2bmI^nibM(jJ&CDiO05VP$A{pl;go*4qR9GyABTmLDj6z
      zA)>j8bE2N_xt8MvwmUfx;fZ%_(y(@EqNt|P^ez8W5i<3#MI)4@sb+<OoFm%h=vASS
      zU8mgxWat5mX6p-mzQX)Orwo>)E%GqrSRVyCn-n9h%P7*y<SZmCU0S72Ykr1thSCSx
      z#~gWSXM3r5?Qi@lDoOl9LQ568jBlM`ZI<9!L{N@F2?4=z9qZB6H*k}Dx1wurM~Q7y
      z+ESAK9ku6_*PV|unqH<f=`m$NLj%o3(?�^^%%qgX4lo$qHH#@jcw9wMZ)Dt#VgO
      P)>zdh+H_Xv$JqJ}=(prm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTc^F5dNkVmTniR%S{mPReDiM3nID|M1l$7q6wrACdQmDCuK?5lHDzlKcIic
      z2Ter92jjCp$~dRjRl#g_=bSS$-}&a7*`L3@eFu=oiiQYbY+oFSTs?5Ax#hASc)|`g
      z#bL6bAxcOzoK@jga?i{A(hfBA5zKDNS|B|U)I5T5AP!$Uo$c_(zd;ruw(V405!5|N
      zm^~w;7&=olR^7lmF7B*bJ0)w8A3|TS=lIDyVLTKXW}a6;MaOl5MZ#q2+^BSk5M8P5
      z$`}Y24a8yS=)sVI0Sps*Qt6V8QC!k6cCJc!1LK$=^b6aTzMq^S6#jGL*<36glentk
      z3Sp!xTBsxg*KnOLkxGnh88F>cI)ueXRvb5x)NqS1(8XYff!nylx!ul;{*l{mpruqu
      z8PL#A7~F7Nxm7<XOK(S%tK2Jdqh^b0NqCOhw+^GK73Vjiz>U!Mguf-<FlE;BWgNYj
      zF>nvlEWO(}9&WP<4H@V4rqbMW6@TC0QRQiTKp5&))|rhs=JC+LBNVvn6&b9{V_taj
      zpmrox`eOr@YNx(kt9!P5=BR2CA#tY_D39-&>q>8>DtupZP1&ZrVNxN%+oGw#R5Lla
      z>e|(s@3@ss8SK?|F~ef^@Y{<BOr<HWWBk)apeGV)(s&)^cK{dIGsvqK?2E9S$Yf8D
      z$b5mB$$rJiXIwtT4Z;bgKC(B0G=I%TE~C>c#Hb9NY-IS{U@S&J7I)c_(z%5`$5#3D
      z%qL8pB1d@7yCzzn@{k)s&^rjMJV!N|&o+1#TS#UTX^!v%^QTxKeE19TID}|+5V;wQ
      zpekNyA+<Oa3Ec{Hr3Jm^>fVJ=+PtDzY}~bkCu~iQ9c8Olszzm-jF<70cTx5xe*;`v
      B46OhF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZEw<06n-ugXlv&Xg>7uUu5-NTVBiN6wk3vWLc;XJ783n-=^A#I+M2fPgTKiS
      zn&?b4@dx;$jOVu1RR)H@x%a$0=ef^0{QULp2Y_943&=36obhwsnufw@JsSt1&#mx~
      zzcVSQFl<~6_C3e3tx$L_Lq0qef!QXI;nhS!=~2p_a7B2)P^~S<sgD?xzIS44V7O)=
      zhrEs~mJAedogrJ33Cly_+ApVX$F_gW$BxZV8hRFYM%)+jo;Vdrh+%DhE3-?4lt8?v
      za)KS`s9?2#6^8O$`UY;|7K3VeZpej8z~$r-4tFQ5SK~7hqE~+-aW)LxMwMadPx6R6
      zQ|gmDk8LTYlrAJ>5!yZvJ)factEWg05<l_Pj>N>};nXLv^|?uV$D`gsuYj$E!+fH{
      z#I_W)Ml)S72vSEXt#Zq<gJ`Oq|751frq+h|>POzxx9k@}4yl-m?MRIojDhRge&69i
      zV3VSobAT>aEPfh||G8^9ULf4bp&g!jCkCx=hn6c6mrz#!5$3YKhc+!$me!pWi*mE*
      zl%sC}D)}`!Jw=8-fZk|+p`WiXKG7|MW$B9|G{ej`igY)qMtX0cM3%|zNKiUtWlU{+
      zhJJza2Rg?XdFjvWrs~zd^=qgm_4|}9S!lApd4cs=fc*%d5+@}9l#V;N8@0ZN`xJW+
      zwcU&!)}?1lO4@grujyS6KhAI(q&R6YWKl&OjfB%y1WbBKPP4_aAd<3zW(52QkI9yZ
      Uh3qO%W@2MjJ802ep}$J|H;>ltkN^Mx
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=ZBNrs6n<_uR@N1n<xLRZr|d-;u!(3ViVG%07$%T?;ETB{H>0Gqr0t0QCqHN+
      zDt<72_D31d-D_1aO?&RW=bYz0=Q*c8e|`H7U=dXn3d7VPKjFnzXgkHVMiBbk3b*)i
      zrmP~)kZwC2?lz0tjYDCDDiRFFAY~&IJ`X*gK|kWhZ|wedeDmKRlOefdH(egKe8EsU
      zC!`WNlQh=d(0^CieP!;}%~g6B65)XzWEL5wBcV~|B^gw)T{~Q5n9W`om8&zvtKPmy
      zg5k1`6m$(SjOiG`I72L(t819V6%|t#s#MZ3jTwevZdoD-G7Ah#|GDveE~bWATvu_8
      zVPYU!q$C|TaFZ?(Qj8rD65VVrf<;GW3b&C_afe}KfI$u&cX5w$2c4PxBe&N;Q>u{F
      zp<<X}bklZ4t##B8{w{Ag)GK4tv$#{|zAg9N!?<k4#f>OaBh&*P)Wln&OnUC6FoXpi
      z4=_*CyY1ug9-GLJQQlBCM;({(4|N*VB^8et#s-!3XCsAWJl639OH^c2gmvz;h;PCd
      zN8X8$08e$8vZ30J*YYj#(w6n4Bl6BmSQ_9B*A;%%;Xxp%szOKLD6NR(J=rSlxg^Eb
      zUCZ$T+ih-%@W9*00?8SpcL)j$sVc3L^xG-W(rGzsw2sp|f=lEXrPXWlDP(8zg;S*S
      zUtr`5Uor6+SI=;Z;S_Tp$*UkoU!$E%=*k9?N)4K_jXa&}ghdD_;67O<mF}XK$x5G=
      z|Ae_S6dB&ru7j449%V0rp!E?*dy48XFSU7Ax=2O`sm$;L%V$_&`0y8^h#(q$L}~^h
      z$ck6GNL@}9hCzjz)I#y8x*&qm;}yqh`>tnrPS&8<NwRV!Ym~ObcnvRT7bkD#H=QmG
      AAOHXW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TT@$A7+w1$At4+?LIG1REfj2Xp<r$6g;11YTPe`0!DyM0nFE}GQ_}=<sp5+>
      z{)_q>c&JK&>Woug>p1GD&-&~y@X2v~d#6cAqV^&C?EUSv*SEgQ-g)@<*WUs-gXJJB
      zh2fjdZD*od@$wThtK~|`S*t8MTccU;)>huVRH&4;gYYXvH7xHGHYTpG-gMV0L3Ak`
      zX&jbAHF!v&UvGHDiL6`loV@pmvzm7md>^>m3VjQ$WEq9-thZ5cD%Fy}mgZ>*+;;L+
      zy~=UbHRTn&%Cy3%MEmh}OEO2w1bLQn8JYWMi|cL}KJ?q@#Q=RIlDTduJZYmFVVNDZ
      z@dUyOy$fE!y;i-o>Xw#_?7oHKnv>5t425CTjQ+}|S5_D?zW*zMqQ2mMG%vA-ILVo~
      z1`o4tZ#`l@+nI98L^D0!RGUXOx`@~EqLtLEp@Tosace3~!Zh<UO;8U4c+SR2oTAtb
      zx1z=NCz9=%6=c#zN{}HUbu?k-Z%i^9W!+rq8ij$TFdBLkj(4&*iJ<`Z!>W^KatAup
      zI=LLiS)32z9QPaj*VMc=p2v%i-6+cns>mNZEs#i>&f`~lF0|>CH>GiOyUdB-X&V{5
      z`Y+1nc%)p*h{DNE;@k7dGYM%@?NR!K38kD8?UiD-Qt}ELyibQJVXT=T-eCVW?vgQI
      zta|x%w-m+|^vf`BV*!gys<XA_7S<I`|BtRiG?@^tQ_TfodP|tzZXu{?X>OFm1afl8
      z#wA=<2xp7c(wckOlgA+1RI+i2LcyLZ6x`Bm-YJ(|mcOT|(-n$S^ONoA%XP3#x5GO2
      zT<t<-%x24LmBBEZ+6RmM&X<x;Cf^BKdN{LSbL4ALUq=w)oc+%|gNUJzm`}O(@!Ol)
      z$B|U}9tKlm_YnVrCLf;S*atuP?!s?<iEisFM66vrP5Y2JhG+0BS0unO?M`OLIkSjp
      zMhy!{qihN>s0dLa>O@`Ch!*AQuz*-9eIKI=91{xrNH=7O16T)$TKBb_L0KbKmlMNj
      zjFWtb*2bO@A$t?tQ@n>~I7%M=;CaczO8PqlK1aZ}!-=|sMEU{LVrmzIWBeW9g*!~s
      zF5+Cp^(x@sA@%_R2Bh`sjR6hQ${Rp>Flil^Dp(H@w7zFre_$LxV!-+dBi7G2$M1RT
      z7ff2e;;Qu<-se|Ro{~~vr5@u7UeYNaV3aSj3>GFa%Go$)LqwWH3tr-m$>Yf#Q~g(T
      z)H6B@KtKY#OOO%QMKi45wNpb9s5x!Wip9|KrLEIWw$a90Y5#mo+6<;@wOJrN1tBUb
      z4{$*e%g<*!ErS1QVve>67K;d0cnvdk!56jQkGYoW+d{o4*C0OD&>fLIpUtM=jq*jb
      z7t{WB&5PuER@XxA;_EH#FDUVBP!TFHC~5zgJUq2Hmuqnz`vzBT>|;*C-NV(sYkPQ8
      sgmJ!yY(tkWlkaF#)W_PQ7K`}y;T?_^a(I_tc^4G_E#BjsVfx|5KcD~F!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TTc@~6#k|cT9#Vc0u`?mMCb*niuYEO5KIUt(PF*Cmu(sA;&!*$Zi)EfU(!TE
      z)I{I?QN}Z~+ihw0fd^)1&iUp$-?>cr`|sy(05`A}L4YB@uO6tyj;-m%wOZS@)Vlpt
      zZOvD-W=rRr&1T0|YdYUBZ0j(B5JN)Zb=7DTcWV2*ZbvY}FwtWXw_SLYVNyCYvsmGl
      zrs~>f!Nw5$$PXD(+k<2!hS7@FFjTu^3E1uyS;7aZ-jSy&okq%<q1mepi`n7p!<Jl?
      zD6_<~TP=xwXx-f73WAu7VH{HwBb%#^g5hioqfo@|TnuNRFpO_&27lIR*0{Cn$WCpW
      zbycsblnSNc8bkI6t<A9H#6DFeDUI|=s>4>7uI$fKc2Zbf_Ula7Nxai;RiqBD7c%uZ
      zUst(6%mu2>DuKoj#+4Z6ag_?);P#ei(_}U`Tvvfyj3FzKQ9@Qlj})q2Ueq-~UE^YA
      z7^eF2>FHsZ@w4}dA%<+u=|6o%=c8>m48wv??|nqlovi3P{Y7w#My5A!FO7Dm)iN!c
      z@9ng>rP`WlY<#Nome@pbhauMumoZE`<DoOAk<q&EA|sPju!4Ic?faB&zp{#LX+}d9
      zU#XZKtInTjV*C?*Pi<LfVu)=T2DjFAwcY0J2xz{iq}aiEqIURA0E1cHdNACks*i1T
      z80Omxcj8KpbKnh^FiXu2B0zIMKP2>vLa&D`W3&q(Mk~D`?;Ix-Jt!o|=OB_u5#|e>
      zgY+HGA7dh4I6^wVbcE?|WD4Rutto_P-J$h41$cotD!4$FjB^baafwbu;D#4F5jcR$
      zCr~pUDn>#aRGd&kRK^oED@Adc7Ld#reqfG))&+)R<a)A10N@qn^IFPD%X89`lSBba
      zL@q@1e2xg=yGA}Ho|zYVS%zMdb|9Spj`UZ$>{MZd%)mPt%F!QoLx})AiwMBPoAhXl
      zL$uR_wCX8ouhajGZuf3V+P7|@lwVkRle&G3yMG2GzwfJ#;#Eg+XQNjg;d81Zd~r%5
      YhzG<KKnZ2~ib-O4h)2|BXMP_42mVE7bpQYW
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~`}b6x}x;Oq#@26N*wOAhw#17Hn;`HUUH$EE+>=C@y##!X*q28P+hV^ry6b
      zFW1tSKIjXq%3AW)uGM#cg@3_i-S^If2~_*yLo##j+2@>n_BnT+{{7qU04`zCKt$lx
      z4fC!!-u5hee0pWubIpc#yDi(&KulopdFPB{+p^(VPRl@#z^M?S!vuQDR?G4x1){n9
      zqCjlMS(QmdkxIirf)Q1#C2Q@?73nURE4CEKRGo%tFPg5U?BFowty|jy{nfC*5q>3s
      zzN2yXwmPvx{}ohTsFWrd88uf|1y1LDoNcz6<MS&UY^#)C7C2G2nl007yX4lBV@Q5E
      z2`ZJwYsd=3owYUT8aN{`tjX#4Im*&B?Yd`rva-{VTS}q?1_hE@n31)%Z70!>A*I9c
      zvFdftwOY-R5=>}C!o&eFk|q-pa^<FTmzdsM{(1Ujm&+5U_`a1!4(B+5Eso4UL0}}*
      zvgXv=jrEExH)YE^<eNkuDN@)GFr@EOna0z2+s`EB7c9}RrRkCiRh+hM4k-{)Z&A1)
      zTFl{p_mzu!6!~QX?+Ofs?bayMEyrqk((R&k6)6Mn3yg-qK=5g|**@08HKbA~W75C`
      zWeR%^nWZs>4+IhxtC*g{Uivy}>K^8T^HK^Q;)a14E@_yj<4vQYRcXl`Ps#LA8X06&
      z$Xps9;}eRwZf@7;)t7;rB^qjL!%QI~PByXWtXgZ9<Yo$Dd%JL*ibM@|9f#q8oC0UM
      z+?}XHXR_|J-G-dC^sPH`oyHU?f%$Ufx}Tx@QcQLw?L>9e)|2dl=zaIETI_Y|66G(>
      zPfibF>Jvcg1g#36g3owi56NHo5=EN-NksTxB=iDa;#=AW;UrGcdilu7E3`NnWEs=T
      z_Xtkw)HZXeEWL%|F8b~x9(%Zt{-w;o9?l-{+^=+!Phf_GZm{aCuGZ(r1=W}VBTy}<
      zx}i_i^?jrC3A}-GhYZeZ1`ch-AY0hQo7LiD#EZY|BfqqVVn`svCV@NDW|2XkBZZ|d
      z64`)6oX-o#NGP8o;ro0N7hgzX?8PM3naU!G4U(|`2Z>9E<Grbs0TN1qC(r&mKH)F9
      z3irAuoCw+tC#+8V317xLhx%U8`u;&%i8obzg48~)QrPzniiMw)agE0HgXl!@5qMu}
      zKO<AP_z2SiyO>qGFhT34z=LOh4nAZGe;LNuIB=gyA8_TqV&Sj(t^NiB_!gu14(IVb
      zF5?GW;rj%B)Wi!ug@8E8po&k~_5deQ!#pXD;w%^F7Hg=sM)bl>1#S8G+r;~*&*+Vy
      MPFw^F!8+gh2e%Q7m;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FU3U{z6x}yTlaP*9OIr%%BUG_zX{i*X+SJy5N~E-6u}b|SO@=acNNO@+q0heh
      zrlJqJd_!G4=!0b;YpGA7;IB~p;KiRH?sI1{Gby-SJTx<N&$;L9z0bb4H~#tdI{*i9
      zE`f+bdM$rGKUi}tdvIc<>QwRtXVHACW|kZ)Z_im(CxMtk$K6>HQ;3gRCCeF8h-P}1
      z6k=25qM1SzTMRTIuFx`PmCX6txfQc=GQVP*3axYHLf&4=S1kGV7Gus?tE$jFcXyvg
      zG+AP4Eb#Vvy-3gh?jAiklO1CT!zTEgV^;D`xuVdO$@PZz3bT5U$y*k!)l%N6RR}))
      z-<kE=(R{H;keQrY(ax7v2Nzb>%z~2@g%X(@LG&)ApwMaHAw1lS9oU&bSA)u73<lb;
      zOQAh;?}|-Usc2qMP&xjUMPMyrxG~4WrkobBP1v@=jygO&_^GmO6Q5NsWqX%3$&eaB
      zaCE<xuXni_J?Kp!qtF)2E66j@hy4mk%NMvK6V}()R_Y8GIDkPqr)s@JfoY>$GtGG@
      zfgw@}%GWm;IE*KlUNSGxer@%_jcipxY!Yk^uu+6a!Q#eHv|gGq#ZYG`6dnV^(e*N2
      zx-*mzRQA-NwxMvnv>)6R3WkgO?pZZStKGL*Bd<8uIRo*|Kms!gj|8L6i3=8L&cd0=
      za;;RX&Ri&%>oU^>o>kZuBrZA?tF$^<v+SZ-NrJ9P=)EK96lQTu4({A0x4B!iYiBWU
      zU;)pInbz0M61~2&5p6^LY!WZ9L4SIY;~kL(CuRGKBoMZ9y@9KaCf!&@cD`ibWt^h1
      zoU$9-Jb$lB3ez|yr|OU#?Rz=TRa<0yU5?-zav;Ka;mOFcshH===S?ZOV&JsgYYBIW
      z?4wngSWo>xg$L%93@`CIaW4RlQR<yFP?W<RE!(V>S}fNp1#{Mti?Zw9_wfOlq{5-m
      znURoM-VHMrvR8e(kZ}pe_L6awmp_n1OfG1CC-^nPr{c4z?+TJ%^CgNDe^ZF?cY&!V
      z(9Ac(P2%$bem&T*(gOKE!Rw4Ut&Bvlm2Yim=bQW8p<Au-TOb&HT^rcee-+y!*xa$g
      zZdKhe?dEzN1;K9Y(I^b0v6r<3MF*b}Ge8vjEsbuj@qFM>KHdKNbpPA@7Rp(+eoSGW
      zkA8(CF%4&=sXcZiehFK*Hw|3H;|dzyyYV~i@lWpj-5&cCO|i?-%iQh?v|E>YpT8fl
      z^@jv<5xeja@4t%}!pEAzQMa8>A?s7f;s}N{oWpn$PqAhT`gt4fq2L|ZhY@5sqaEnP
      zDA(eeY9C_+?^Bf;Py02-Si{{p&YcR+V8W+Asd2o=brEa0t8W8SpP}a(rcYhN?5WnH
      zSMVH1a=i7#1{NjA_YEvv!SeT7o2z(5;VYkd2MYn0Xr#|c=nG`{?8ldyvOAAqpYpIr
      zIdF``WL8T4RrnBJ)ext-DrQU)#A`p`V9-<S3Vfq`xL!<pJ%Y-z;#NL=7x|mSEb>j<
      zH~HhV3F(Vlc=iSYNZk|w_>sTYN%AMkaGf&z%<13YL~mjozi7Db+$MZUCOk=o2v+7C
      zVRjM)S~{xd>>6M4g^Zgu?q_u~OY!0`ed*3<>3$_a8O!v26P%~tNpK`KK#HpoY>#c`
      z_#5%vBI@7C@fJD$K~#Sd`(Kp#w&r-)?d@}%_BaxccUXsb6oqY+zbRN`8w<I5+GFeH
      X%K>)t$Nl_n=0~tbh7r8!9c%kv$9_Mh
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O>Yxd6g|%~V-tHI5b}YWN!maPiB03u(gN{E32A^(w=5EZR5l$uQ)kdHL+vqY
      zE1?!Cf)!P_RIQ3Cp=`40CT+T?V9Wnt&o3aHH#24?YN{xn_i^sM=bU@r^H=};3*Z#$
      z8KeY;Zkl(@QrEYg(p;nCx6P)%WceAW0>*!@<~_%;n!fG18KedF#|Q=qq${>-`!xY&
      zYI;RLo%dF)EEME)WUx=5zizwM7u{P8tG#SC97|xJ?lnzk#cbPhA04Xxn%xl?smJLP
      z+{yyOyQ99l-HSB#4yi0JlxvJjTi<j|hpC6ALZD;1t<u%TO=>Dnf0=`ZAsxdQA@`2`
      zJ^4|{VipX@;4Oi{m{9D5yf$=<VO${B^jzPx-Oilj2;`$GfxB@4D+vfsiVyN7NeJv)
      zGdpXcaRSG5OyXT0+P>8`eXmXJQ_~5Ni_v*GhZC62V2W8|lD%6U1r({twZ3JS274Kj
      zg{6x3bWC98f81H58MaRXgL{={a><*zB<{9HkMn!rdX4C7TerMBR^U?KlHGDmzuTtW
      z#@>!q3bmj;c?{){$E=Pr4%3yM+fsa0M@`OHI!rBb$E2t^c}}os%DIWXN%TV?<2kEg
      z!?mW@b!n2YcPohDlFaVm?AaXNWS6{dyJ=mt<$NDZ4DO69F7SC}VK(HE^uLy%){9Bh
      z3<fv>;d2YUR41rW;lIX5t@4i#jk`YX7WftXYK6a${gVp?I)AfB1(zx=VLw-T2*LsM
      zb9Zpp$sz7IQ8>(Bner}UWpuGvc!CqfXV4yDy!aH_HU<R>TR8F<2MRpMZ(;NoXv(I#
      zNqAUzfb4*4WV!+a*Ey5d0s_Nf%7_4y<88ddf-#jM??NgQ7>TGnW|Yh~$*M=|N>vuG
      zZJ^&MZsWMX-#GbIbzRvR`*r7~5px))Kfo$ESX_Ng@h!?;!zjN;VF!E)Vcv+3Mm8n9
      z&#D=|@l*JKb#)xUhg>NE$B_SI#4*I5CSKqpj1&DaE2eNp8Yo7&lAUTvx>Zs=D^N4W
      z{y<5}m{ko*7%S%0K*Ki9rSJ$@xvdCDHNWk=*uVtiJ`tEzH!x6$uv<8PJp{ZoWbWUg
      zshdhHd<Hp|{ei`QB>j7|bDd4NkCS*nDeI`>Aui)5Ec1H<KL<wCkd{>6G^T|Mn5Qfa
      z4SX6Iaf4$fjTpgkT%=7Z_ruXjHZU|(=8z4P*)DMI_<jQX={NYxT&1u`L<(0T%RYMz
      D)U;va
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|?@ts*7=C8%j)h~}I}b{W7C901ezYK{t$IL}6ZQ1OSQMkSO_#j^)-1caw`cTA
      zzx9u3(xm<YerOX3q$c{QaT%pQ140R6BtJ2UUR&yV+=cklmy4PXLw15zOW(0XEx
      zw?fAqzZeA8vrFo6OO0}@g(|Q@KQNFK$VO4F<*kh0TzaVN&_I_!u5))gTA<5r1x-H?
      z5H*3+vhr*tV7OK@{8@!O4p*J#=t+Trdgpcrxx$Dk$8*9Nfx*JwA;m?3WYuq|9ta#T
      z(F-$;1o}*TfqsERp}3gF0KPHswLt$~C?*DRP@vngZPjd!PJ9BZra`_nVW3+lJ#1n)
      zesxkGA2HE`ZvA)EL>k=!nY!bt`PSN!3T|6VE*;3#ecN&ut-#Uit<9u1Lttc2o$(^j
      z7Gu?F&a0=ikOJ@10WVtg7mDrMvEnegXTe$VtgsajI#np%o~sxb-%;&(f1zcs&bew$
      zdEwksTRjRL-%Dc*eOl<GiBmY;@#vI5dB1u**v-Je4+6!G_f_9xUj&4@;WwOR$F?+D
      z4E7BASo%OUTP`K$c4yQbv%|t?kG5@0P+oL-&3~c{uyuwb<j9hm>#7yYT?nmE#qg%v
      zGB28#MYSW7iVyB1v!-3I>~r|}3hJg5xU8G>OM&!)-wJGX+0ng`>Gc1YCN5ysJWmBx
      zzM7_DgY?GUBkQo+oEZG}OPr!9GZo|sn&6j05>j_D-@erC8qI80Ae+@si0c$j$d1t&
      zuI_LpIS-f0>&TWikSmop@zpvG>3L`!`I216$bV6yQI0u6K+d2?&f<W)ia|M#W862H
      zkZEunCpZffP~3tzM*w}6DZOOYm&pHvRPsgQ1-B%0$}W8@Z^hDNKBg(5%&708*zY68
      zuOf}Wz3p_*(fbNx_cn0y4Y#tJn9wJa_4Z<jQ~o)O@>?BthG9RxDd_;Jist0+?ZAoG
      z$;KblUH+F~iHO*UHcs9_uUtf*yo<cNk4gCe=jAV$mA~Sy{4F9qK#C-^MLLgjILlAq
      zJa@G(?VSq$1g6l>QCt5fg=k-@#2@)vvzsQnpCS=@YZDj#!qGOz#!ilUlS20>&tX;{
      zatVgCk&z7yNkz)bn3k)g?8H2-w&`ZUZn(5X={SWXNU5t--oRX^=<N#4M7Oon1g>zD
      SxQZHQ-ST|6xc0G9*FONXGi+o4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBG<e6n^gAT?UqEcU=%gMYc$FUlatzRsmaC&~CfMq*x60ONZGjj2UKhX4YzI
      z?MtG4N&5$yCiMsSp-m)^n&`(S{ZUQNnOU4^Seky=d*|GHUY_SU=k8yB|M3FA1R5Ho
      zz=>PNU1PizSoZiO&ol1Nt2-?<I<I_FIZex1s|U(60@u@!7RZOrw&AReUtPVW%s@kz
      zKp{@C<1Nr-wmjeU1VmjRb5l8{63}eJ4?a=>T?gxyKYChVpb<yM0H(=f#&WFSqQGFO
      zvrBndAYF5tss{r5bo4^cB85I3uc2QcRVpuMF@S>_4hZyjs-j~MhXlF}(^S4cI{6>9
      z>RjZA4h`L$^r(*EWatE6zoDZC-TZY-M;6@zxrXJa#n#5E@~#=HHYreOxTaw*8=l2>
      z`!LO72$VbW?9dBRM_V`iMRkvqB%U`&2q!f9OYJ0y9+7v?lC|a-LCYfqnNs=M!nB5Q
      zfnqGmqPx^G*B5NHp`2jho~dpJmg{6OhCb#yspAaJ#!{UTsP5I4Pa+yg1RBl}y|`M<
      zb!a?1D)ph;v~F6a!POFFr_e_e;3>al6UD;rj6691Qu6-o9W_%#FAUyr?<x&6LBnC?
      z5K!H=)tX^11xBC}^=2cQmvqdb7SklghxVXZXVvHSxcuLZ<PjCP%p?1{Kz7M(d8WE-
      z@ucM9*D%KT1@yY(D6d9u$X7Hjh24*oy0TlU1el%YIYSa%oJNsqr|6eK8j?qw{ud<A
      zaJbV11Nl6^E3z|mLm<gJN7lz=N!o`i)lK9pTPRej+t|N}!@Lh|qF9le82LR+G)ilM
      zN<iA^kskI*AA>T$n{=*ILP~?<I6=EW3FUT)^HhNEa+PP4^%;u4B9nfadP+wUoU)6r
      z<!6aBxmRf_sFK&o(Dzh`_<6_?SlLPU1ijBOwz7rOFDrbOZql0H#>9(s^C1(7EWVm-
      zM8*(p#V63Je{$>;#l98A64mN&R4f$&8)4z(=jfFW&?mn@Nj}7s{1R8>SGX#_#&!8k
      z2znrtaHS1;ielf!c_MXzGO;ev$uxZl%%GoEmi`eDVO?qjX5<$JGD|?-dC3s@XdCbT
      zjAId{Px&xGDKa~>=O}d_@-Z~|EpqZZ49V{?DSyDM{1J2Vr-a6}2yPxU4fAbC$B9Ua
      mAazx$TUdyj9(BkLqj_3VxI(MMd#KaSlTXhW@4xEQ2mb(MPkS=}
      
      literal 0
      HcmV?d00001
      
      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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
      bRTYnlSf}~UBmCMoo!3cTt9jK?q-uT#mW58H
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+iw(A82_D}-JN#N0JS%uY@x+U_X3oQh|*GpQgF4j$d)SLZMvP-A=8<<Gpm%u
      z%L5t{-%NZk`XXZb(g#em5HE!{6C-MTGx0wV)abkTopXlWDP4V;bLM=v-}n12-~IFD
      zGJxHf(Gg?lIA^|M_EiGg={r;|oAZ8;JVtCk&=F^7kH{zeplp@`B}+22N}28T6|J&u
      zI`#!~(y??jtgt$1x>Mflp;F26eTF7qs!mvC-}c;7g(D2?35GR8p6dsu8%&r^#Y+5g
      zd0_eGJIS9(Xfm{%9g%??)1B!Xn>=Tgf_{d^qCMl9L8WXl#Ltco(^GQ5cI{x0!e{E3
      zWG5K(jL;Of_>ebcrJ!NGfo5!A&@$Nx9UTmtYr#e<j&s7Z-M}gjpD$T+0bx#IBi1*9
      zq0_)xtYcU=V!PI8Wp>gkj|&1Ann%2n=}eeJ3jK$V@!%z!2uQ13>Jm;Vw68RspSx?`
      z{XcdCl+z#?Ycp2B(3UA=>k*cucS%#icBicK#BG6S@a+qPn3AU-%@_8)nZj!Gx*i)d
      z1;M6ts#}gVYq@0KyxN*vd(ISnrD{XTa|6?MiH)|*YUS*i6tTO{z(d&2z#Y>M3Ig!h
      z^nd6Ra^_KOWm;p?!n)tU01i?|ST9#hhXVE12~;mMxw6Ss;K?Zv0kd^lDTTur(y`9K
      z5ezdVN{;6ei>;ZuG-c{`V;#2)T?69>R>K;kt{v~sicbm!JgI|5rm5DZY9<Vf;5b7A
      zHNg;(MoG7<z#|{Y!5E&>af14`=0J)JoD}v=!rq&mqm0~OoEk8NanNL(Vpw0ZC|lDG
      z&7s;E2A;+<R4UhcwIIj1L}YA>GOl9R>&q0*;8`7KS0q%N_XBIzz;k$>2Hg~UspQSg
      zGvuO9!&OkHTMGp-;t6TUkScnWa>+Vsi`nF|u>MYw3WHH_U8^k7S-uWxQAKNHJPCj_
      z5nGSJ92l-wAXPJE71@$%FqQD0HQ66AiLS_g?4thF5JLjApwWRwh>qs8vttmuik1%j
      zH_89|ND6vuA(?t<MH{_1^dF<MJ$DuD`ES9$!p75AvFUm){{_;Ykwn90A*U$d7ZB&K
      zp@F}SCjJK6_?y@wWzqw>&`p0rS4G}RcY_d!moD5-CqoY&s3O=V5gZQ@=(*34-n8cm
      zsi}}jVanf)gwV-NH_1T>_aZ~`S_mOiA+pGkL?m~ZPV#}IaJ{@px2Wg$rDp{&8G5ey
      z6EDhN9^0#scSyf)lb<+wYf_L$<*~iEqlSGgX@FmX&OgCgepyD!DVs17S%*1@+fMXR
      z44sO!i*B0Ct4sJGnZlv8c2~7_layf(_J+Bh3~4lS`6WE~ArkRL?cR*9M7T7nI1D^Y
      zF{4}xnaceU><|6FNAX0?J(A0V+Ta4(^5WjP=Nb-tfJEowMU8c)KfZG-R*Tz#B=PVy
      zlKdNRzKjk0Iy&gSmEVYP(o@CK6JkkH(`Bi`F*HzP57JF>qN*kI6+YVhA-=arL-5tD
      z@GYQOqDzP9(u)^kchVo-xxEV9_XO@H8u<@s=RXp_o7lpClHgPUx~t&2tKc?CNU=!!
      z2`vTbQ9KqxIz}fWNL)Z#!l4^DT<Z|k-M`8}Dk~las`a3Fx$E>OaiIqHnC!t%X&^<u
      z`&7R9<@6;g$Pyl3!f5&$iWF>Q0c+^}GW2|!6@{Lb*GP6cUxTqt>;?WCac~O;zl|3D
      zJ6h@7%>O_S{}UPh7xwbMBYf-&VNz(kAU8~s+D8?u23=?g=o((6Zww|T=@k2kp#+PH
      Is*;)h7mA}BU;qFB
      
      literal 0
      HcmV?d00001
      
      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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
      P<Hdi0*HDGnM=Adc78&W0
      
      literal 0
      HcmV?d00001
      
      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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
      TzOE`5H&)o`_K!$b4d3`5$JyTn
      
      literal 0
      HcmV?d00001
      
      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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
      V<Hn};^;rH^`2mX+<^x>j{{jC3vAh5P
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fKqj5S>M!1ymFPMNsgXttJv*r6C~%6A}|2Xnc^T1sW(>T5Su7ewq({fFEU?
      zZp$T5AKINWmosN}=jZq98vyR%T7n3H?3m41b?O?t+O#;=`>tV`5=05?i3n%ru=?B^
      zV?cs9fy~m|c6FQexK3b;4F&{q^l2INOKQq1fkej`n#`Trm>H*9OE}|L(%_sxA*foD
      zAd<@AG4&Qn>LMf7=Q^`d0aacI$bHLnnPEBvQgc%@Dg8rq<Fmx|_bKC8C6AahYFYzt
      zCaSavNQTpzyty9&<1Dh_4eeUkGEWtMUZGrE2Ks9RilG5jXvQ0`^@%mZ1_|E~`q1`t
      z3p?r<pBR>0t6|#=JLjm<-Mm=>l!my&Q!A?Wut`y;T}`Vg-j6`CV@>V8{%Cj)nqKb0
      zo%f~$8fq(yVUu*lGhYyYbX*?1Mf_s8era4V31mbGL=i|LPQms9?;zfVG>ApSJn!6J
      ziDwWW1pX}KL_80N;yi-Fg6A0Xia}m!t^Q;Up9VZ-s0f}ioGp0HQR9VBdKoCb`U8Y=
      B!gT-u
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~ixX7=BIy4M{f;AS5MPp-5@I1o5M_U8E|e6$yF~CNuSJft_UQvRji)r+De_
      z=|!Dsb?SxA$en+~(I3$9+VOce$!42Gix<1+ocHs2-}gD^x4(b-8Nep?V~8k}?;8(|
      zjgDv88#}ITn@67II_=fX)!M0Z)NHwq^{silZ#<|tUh6c535AsJVH-|k<IBVQbco@C
      z!u%i(tyg_>1!XEMRL7`vg?P<sIEL40(dP0vo2`RA{h+RI)AoYbv<OP!TF5YrcL=Sx
      zY*~)wZ7bZ)pVKE~7L=eD>I%!@2!SeqCngg+?y(t%!kmVS&=QCuts#j8g=oG|7fn_}
      z3{wg-Rm(BI=$ssytpnrGX7zJb_sFp8M$3|OPdFhZE3Ai5g$o`(Al9v1h0MzVPapJy
      zUjJXwf(qG9^P7%g6VF1g7oqv<g|FgR!D<X|DqI~5I}CSdJ{qoKO=0q+<C%}70mGcq
      zFJcmT4NF*N@`mZ{nWqZrd|}j*Ve$o1MLgcpP(V>(iXL^t?y$L{tozDM4eP$LX|$U%
      zFMl?>;`hFWcknL#+JWENxI)KepUN|SKgTT%*KvbcA9k}xsbg5rt$8iWX$+UpmFhy5
      zk2HJ;(lt?YJFO%0jwQ@Ug?hLyJyOti9mj0#*haf;wqvMpBx74nq75~j$%iDpTY7J6
      z@78E#^)a&TQM0bZe?UgB20>JuBin7W_I=Z9y2l#!P-RC<c~5Glr!d<esvm<Q9m~8f
      zQGSz%ASJhk`#2x12okB3+%N89{F0catgD%!CD7nG%5|n#dWPBJkC-o(pCR)-MNwSh
      ze_GVqpP1BsM_l^@i<D*PL>J`n8dur9&Xf^c=6;}iBhV$NQ$kJtCF!GH(p>Q=W}o89
      zz5QRg%aoquS_I{@$K|tMXpvy7EUmN5DQg(d3na9^_(Hr0;mHMfa>TR7T!KgA3Tko?
      zJWA-!*xeSCd^9IKOFfHyG*utXbCeZIXHQB!Fbjku<z4dE5SS#8NJfz1D$VI8T<n1v
      zKoCh60xwknVdK9cynRjx(}a*Bgz0la;N|Vj;$N$OPf|aAb@fY3eTAu)&Y7CmJ*fTz
      zzxwZZ77mWm;ik~x$t&rQyg>{%k>xs|XP6FpK!+|p`*aXu=-6T_lsqQAmV8Y-LWu0k
      zg!losLv)x&nkH$ILDn!GDg<*E>0~9;kn9K@L?U#Uz{mVY@CkOf&T+SbPjQFr7vA3G
      Pxy#khu<Ki|;PZa~wnDSd
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g@+?yKPyalmdci5vy#AQmf)i35g*!A*m4ETBC2<cG51{&Nll&_$&Sg
      zA2flGNTTolDC3=NX*VH8(`<KU?m1`fJ@@Xf-`{@#sN$uD8HSY;>(r`*f$dZdT*u*^
      zz;=aStZGmgvQf~nM6Yt(KB1Tfl_58!90uI80@q{E`j&sh&jJSai9rqeHi<A48&hyx
      z-?T-~;ejhm9@GfGXA3*nXV^0Shfr!UC<ktrr@=6<BaKW32`uQCMUEk1lv*;9*P$Ur
      zh=wirQ8;LGuW7X%P9-$lj^(s0&zAe~p(2xJSp7=|Rmzi;sX9eOh31XY2pThpFlp27
      z2`dOax+iIrn$21o1>D!L!La#nH*{>`0r|-tKH!4<%-y_1!$XFRsn(HehMj(W#HgQj
      z_)vB+gCZ8lTaORiQ?8*z_C}m2-}k}~heOv3c=vcHyGV=})sWPT>4sj1zqX}k*;xN}
      zqz;3AC<ONo9Lx8)uc5-QG)*c7CuF?g4BIzrin)G0ReR*!J~=vH7ahm-X=L8;pzn5d
      zyudC)%AQQ$@^vesLB8hK@RX(?K~EAh^rK+_vROGU^aUvN%tEK=En2;b5WswS`vP<2
      zOJvK+1s1<iXa-C4KSx54QtB?!Y7NV@lVqY`1-GM^hSjlLh2AojET3cX3oS+>sytNd
      zF>-Q3Uc((itw-3qQBLn@FGbd+$Y;tZK^f6{?i}~NUZME$5|4gPv~#i|^({2jgswJ`
      zS3kt=S)bgqg&e8MnxBpJQ&%uZt31^j<;i3G)R?beJG${Pp3pl-3I*(t&udYp@?=y&
      LmDHuj1w8))to!y;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%TC)s6g`s!oCLQ7D33m9fu@jzM}RE|sX|n$cr8LBbvX$maO8|Fdt8-Y=?`?>
      zMTOK#?Y<vX^^B83P(gHI`##RxbMNt;U%$Wo0I-2|2N{9sj{G3&iShjUZs7Z>ZM;Co
      z<xK}Uf%)s?>sD+c**1qVEH}Jv=&L<#q6>jxbMD3E4T18(HF~gA!_#NJGJ)pNE#kL5
      z?U@~c{mTCw=wW=R&+5mm4%^%MH&Sg1<aUEoRe->Viy;gbk;MZS4ju|D^@;8;GJ4=?
      zb(C~lDmsxZUkQvK1a0XzW#n1EAI#a21s>ng|0bs#DN7ybi*As_>$XZN&0qsJAXIPa
      zCecOsmn?g-&wAODCg1s3nWpp;Hnw=nP}SRL3Jvc}OOr%Al&`Q%m5+nx)aAOVcREhO
      zFo=vgJq}eQ?Go&LY^%^3Ma*K(YB|q7DpqU}2oxJZ61CME&&pI9_~C1|tbqGgYZdMK
      zGLBX3U`b%%{{3)J6_~sg$BKiSB(OXn{~g=8P3<`C4y7C2(``S9xr>L&oCl{a)=;M+
      z%5HH(8G*4%U%&J+Ftmkr?o*bRMU+Z*sc2>RILI?zpw(eE$FEyk{)%F4W%Uy77y4O@
      z@?A{P0z=Lxl<3c;wOov0oE}eM0*_LRi%D8pOffpuk4#|tDmTL%_YF@Nc}h$M&r<#)
      zTDGJ7cg()O#EYM_d)&js!}*-@_A2JDc=K2w8&{5K*Wx(O0%mCC@RD8zWxV2doYo>L
      TsFByAY^2A&j1_u0W>^0J-!}(&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6{ZG?C7=CUHx{b~aWFV+~Sp+uNK)|mp{2+mZFw|s(gv6+&Tv$nWC2eP%e-$Pg
      zq9&TiZ~jrn_qu6rWH{3F?%waO=kC|<uipVIqog6iFmhtPGYj>=b_yG=<8UjmUEv!m
      z8lns{orRT#u&SOb><|2?!UKlBplbWZGQ(`SyTz_~S|pQ_E$m>OVQ21|Hcd6h6vu@Z
      zhbNS1Q8A=6iu3yn(GB;A$HCCAqZfS%^dPB2!wm+b6{w4cRM{5%dA)YXy*=~L;S7Ui
      z*D{@b)3YVrVn$`j45La8ZT+JX`wdgLqEU0}{*v?(wnmNKrb69IDb8d;48!fA8>fH6
      z=i60F3Q7GnHbvkyN_#uSz5U`keGD->;GP+{9yy(xSJby#eA0<m>|<dDb&rZ(>!{Q%
      zPMrEZu44j24865_z~5__x)Nloa!~hl7?@#TmMpgue2V>;#k__&hM`V!9itdaU=lew
      z=>>*oS3zo}1sQb+O2~h$kVuM|mc@PFpwa!upV~=v{^}KJ0zOf3>z>88Yze8fqMMgB
      zG3eVuaBssgeV_XpR<3pX$hC$whD@iv5Ij?t@?h9f>Q$03R7JvGw?UKZO<_5%Z;Rty
      z9#q{U9Zw-~#wGN^S7D$HLK4teqJj6&>%-D%c|GYQDGf2=$LaKz=qT-aHuo8c?84$X
      z^pBxdiq-@ov=XwCFOjCxWN58p0E0x46>efE)X|Z_FiA&3E(_NTZV`vBEXGLZHt{03
      z6Gn9?7wLIA`w4ds%0Ith@*peE^iO}meTH*na~Eg1iyx$?VVnRC`lrG@0-4(|`9Sg&
      zwB&1~lW#Ce`vlQ4Po1KY_hz2y7#5Kyj;wcvb}8$nNQpB#G@bQHW~)e<SQLd&wnWc1
      asMrV|U=<IkA<|fKn&mvgW1^xYeewtByn+M(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g^W4OP4LJd<rTQS(LUwDaFsN5G9xpiatP^@M2ur4J>YF$?n!re-$Pw
      zMiVvi=8rPo*-}`Vt(vAgckZ0I_uM;Y=GX5p-vH#XDj~u!dZ@qEb9K+Oa%;9_85Pg8
      zxvMTqh%#it7q=U{a^Tq9d}mZQJj2mF+hOSO4op{FVi+rhZ!2g7Dw^E%Rv4bmc0@H7
      zES>M?UhW+dBP{@J<<rt-hUl7IHDX}sQ_zhb8C{4gkkHSNK9B!DVG<>i8!zg$J;T}2
      z_bh{9pk!BctE@Ywn4deNqQK7OEmL`Ys?KfRsM&RQQAF_@5u|Vhl4lqSD~(~~YW~Ji
      zi$fs<Ukv!R^dohhdrqUcv#ITrwH5kNpSW@C(OJ)?!=MC+ZJYaC_v#MSJ{gX>2pFR-
      zPbiqg5JPvZ?it4trWoeJ4?V92)k5@qb~2_hBSGz`zk-50xXaM1S1N|<s?^QDC?;4|
      zP{nPjH6f6+f-z*M^Q|(2$0K2mVeqn&i+0LLVL?bM$FSN-y6x#go1HGpB-p%QG0q@w
      z+jXa6JU4~vk^$}uf&_!I!MWkAS-R^Qu7vvxGnecF@b)fCc*rmu3S~&N5oOp6Q0)}8
      zb@To$x5PTHShj2O{Vl^gu&WB5fUbP6dGS_^w3_cfJgvwY7O6E|^g6L*Qe0@V#7sgj
      z`D0|grg@Y`C6oOKIWsqZ3gx|zO3+tEgubN8_$wsIO8L7LT*Cm(Xcq=C<YN>JV}w>m
      zeJ}IB!?;c!y5ATl%nkBIaMRCPrJN%2?aT+<+AaP3iqtNd@@Mj#V)h5Jr<l*4on+6x
      z6HdYeT@KKH${!;T-1-HV_!~&^8YXEJ{1nPYQJegdPlYbYBkG)?QLJ@mK4I~MjAoD?
      r-$_F8Js?_3zE!|7jpLN!9v<KkHDa3Ppt3~}F*eJ242@<{S}pzox0#9^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dT~8B16g^W4TiVsumTyH+TZI-WBKW~JB!*x@DDqHfV&cnEMp&}UlHIM5f29vf
      zqKWa@f8x8o8t*LK?Uby+MAM`@bLP&u_ntj7`|a1KF9053MMHvN^vHZ;R@=U1SJxcd
      z<}KfHgjZbFkYp&wFYbzCXWx2lnR_<h@VRUHj>|CMA6i~<k)c+<eA||JQdDWyh3}p=
      zxNi_o%@UTs%Fvkk7b0bESfer9WJs<#`+N`#86Eu?NTUx|bZEFrTBr$oHf8IU;4j+8
      zd)(cTT{GnCPRq2LrW>fx0h3Y!hH)i#kEqmLrf3RBoE|%EZ-HS*iHs65jP#P9p72hB
      zrI`3yMFFL*ftIzMO=G8NtkREq7W}O*`<smmrGUYPbs$W??NVn`@lg?>RP2V1QA|?(
      zVXSS6gX;F)5&6f^FvU>ldLXJv!!3sG?t-d~YKA|VqsK866f~N~H15b3SY)u&7Z{~A
      zl&1en%D_jAq#9P3yXhDv<8VblhFK}#7(=?@wA~heZb?t&l<MZCObq&l5Zqm}P0!<=
      zhIxk4U+JfT+%+5<%8<PvwuXlcE3v^BCGVMshn9SxGIrrjMF*v~9+J@Z>a7uJ8EGb6
      zoLv_!+wm-Mu*LmDXJ5w?JY`5((G@fj+A+A#LS_RCblm&s(qp-tJo7Y?GYu)i2Whm6
      zM1W+<l@Cal=gy$N4}!AvpQc6HivGfP<Y+V!%rm%#Jk5X%3K$}6n8rHAog*@eP8`PQ
      zIZjvt6G5t1NYWU{m(OthD{j_5WBO%<o#FO7Li-S9Ec`&K@Kec{?_^9-MJ3!N_Aui)
      za*x`3CXXep$fip4l-2Z?KVn9bCj#<;03@>o2&kNLFsfjVo)c8UeN^f5kj5g7mI#p~
      QRB)$_Wjvx;l2#x82DYTHIsgCw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~E_c7=B(T6uRmLV?(9_;-=g97@&eW!p(vS$)*<&620rn2^339+Rn(o(nLd|
      ziSgPWWqeO*w+;r0$+C0K`}I8USO5I|@e9Bj>MDi^(<jC!qt*#5yVh`RTbP06I(~6O
      zg+eF|RyK}>`B5D12EsD}*CUJu$Ch7QC#*Mb^=KJq#mITb3B2<?5!Bgx%W|w>oA9Ch
      z|LzHom{0vuW*g2?tzjF!U#}bxl!kjK#z9Ew7{RE9VcgN7;x3__#JxRAx@kG$ZRfNt
      zynUl>3&Ld6H4Xc~@GSX`go-Q(VJ5+@uezLds%SW_bAIY}{8hqK!m`Vt&uEP>aV;@I
      zz90VlET)jejw5dE@6@*$JAXA$tWX^BIbb&BO2Xn@`-I1W-NyH<BgY6j9;ZE0u5d6}
      z#W@`X+*k34knMF}wmR&wipMuj*`|gClw=p45Z01i=&x3yINi8mQ;C`625JdohG`1l
      zFLHHTH;0ZAy|w_+m=2y;ZO`p^rg&q?0mvk{uE+uq^j*ghUO0QgS5YI(_bQVxkC%Z_
      zRB(fH1FZ;JkBy4wgw=s|iD>aP-ZDb^%H9!{5_KEE>FUg+cO27peaks&iQw2h)bR?h
      zxyn}eE0B+;CM;&`U&ksh-7tT0D3g(!$2a*>F~;(7zMb$};Zv_Jeuq|FTE2k(HMC0e
      zzlI_H=YcC^k>T5X=&fS{ll)>YWHA-m=*S_@+G&>NBS{wby1E(Gk(^bQJYbt4JPh$$
      zj4m;9)eFr2#ytO;Ke6z>x_E)&m(Z|Fq%ezAVJ;+c36YD4q?qValsU;UR8VCgnOccY
      z;&Y_>4O%bMs1!!|NMr?zA<Pn%`7AKc6|UMkhkVAj7c7xMz!_ii-oPfm6xP1{2N;2Q
      Avj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fvg|6kVqjQbL4UMWv!ttQ87!7u0f5YgGiify}`862g%NV}ebJ`YHZ{4?5!o
      zbVlF(D963i42`{v59v8)?{(JMm$m!*&-b4I#<8v-B5-<F-`7XWo@tHd9m|r2XF9f<
      zo>34Li2F`Uw|7P#ZS9gzL7Tvd>Xj9JFI}*`(mR1RuV}jINr9f_sy|FQofBx?*R8Y^
      z=ni3yILO~NYuctaFEBn3Lj21Ta#XJlt_wu-&bDlaK$ivuG2R{5&<<5a3r=Y0z)69Y
      z0fu%ho3?ydezhe_Yx<T&5ha!#L$}uTlF8@580DOrXEehR%hzSyB2ae_aj06k!Oae|
      zqE|x?k^;ivXKG8z96Qoml2pT!1B3N`rs&tuhm=5!kn6ftmTbJF;i7LW>TZ#9_p@7M
      z*Pw<BE)(7j@B*1e@zuYk;tEC;j5Jlow1zQ^6SZy_(sk2g0xQj%735Q=uY6G&FXc8j
      zFxdJsT9sZ-#U!pOm=YLkETralIkahkLbG_9-^_&zpSN_^r8utPhJx#)mTJ#@mxdho
      zQ#IX1+x2wY@Y^w`A&Vge3j)107xKF672X<hkB2LUTLOJ+MVX>uD9e=TrkockkIrvO
      zj=hue-tEZ|74yimWbf1{Yt<{6_D+sP%)?ZsrpG*|VyzWWfMxkFYPgGg6!WT6E*bK!
      z$(oOc25W>v7SI-LTbBGRrK{kfK<a-@Q1F;yY>1-wswJm7*0h=|1>3M3moi$BUeVds
      z@Qf85wdGrndP#z&uN9GaoF^KHCwQLe?@OVt0~&dc(QXbALIPdcp)csn4u3&B`wfXt
      zWQw4hepOmQU^Ur?Q?%oY1jlKd@$EF90o4K_8QYQljQG$Y&PMQojuo0VzLw1T6sIb%
      zfP$krhx6p8-Xax{P5Ebfp2-ezLEvKz*HkDR^(Y(~>&6V}dWQLi3^e_X83sgMK1&T5
      zNXr4k7S)zZlA$a*4={XyiJ`BUc~6zD)Mz$>k3TTKk+}H{w|^aF*vUOfZs2%w6TQjj
      zp{iw$s+K_^s2a&LcyEGMZcmKqzv6yv&0d7!jRj0Cc;LUggk@U$5yc7~;R!W<l6Ft2
      Sy;sN%Bz$IGSLqZb>)KxvYl0R4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO>fgc5PcgvF-Z(b(=Q6Ne5J)sp#h0QrBuB{L8_FNL!%zJZPHb;)n-@nN5zlg
      z01^nnfgiw+Ld-gm;<k}xt!L)Vd-FW|_uub70N&w^hXTXq6~E@~G?A*^HA;z5B8`rl
      zhaOypdRA0ikJ}%IS5)&*Vpw0a^mIBE5w|@I#cQsbl3}gC0GuSYY@!ZB=}2ms9Ft_Q
      z3=m#0xLtE8%3!$f!^6D_9MpW2QD<-h3#j#_7H8>nD53!$D#6g`n-NzRJd!q^C*5Qs
      zV}`Aq&JA-kO>M&CQxl1v5>ufQLX*O$DjwpIhb`j0>%qrkY%qA#c_uz53{_3XoPcZx
      z;Y=_0zeuQjF2|ZDX+*;ogK#kDSdr&GUSOLXTMCBCxk;mu_#myNdT!POI|hS)qP2*+
      zipQ~_Q4j74<*eqGazt{+)@@IZl!>JtpNeE+E<J=d_Lx)jv5(i}P2^YG&aZ3%?#vx$
      z*C!|2!CP9QLvInR-mtr*E9cN#MuoCf`Z`2`9-z|N{{g@C6A!*oRKSYOWfkgnR?(o?
      zryiSK#TuO}SjWbk<vpEQt@R!LFKjY=A;gTOWGl|jQidnkCe%)beVWa4i|HA|*IP{C
      c5+)ZfGgK41bXsqA8W3{Ey@yv6xd_nu54^3vn*aa+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%OK%cU6#fn~Wn?-CVoR;BRz-Q#fbKLj-4IPk&?c62e;ID*ZKgBLoq@#v<i<o}
      zbYWb$@<$oZ9Vi(hP3Cc)-}%nt&)*+E0lY-ZL5{F<E@q-LO;ph7ML{6_L`7j-d+op`
      z)Ym&d$eGl!>_r!sLW?BQgpHX9YCfSl$fjKRyM+9q3RQAM*lny2X`T}7UNn{k5H>w*
      zAn(FL(Sw7V1gl{JN&^+j_tT4!)I%`}B%v~hd=Z=qt&F}f+R2%UxztLfOmob~@l*DU
      zP+t%VL^$ajkIs1n-Fafx((DroCu$OkWU4u<&=?N8{51QUxP!Y6b_rYSdiQV}TLcn@
      zYZ{P+Wyi=&ZKa8imsgEgT!G-8L{sg{x5_kJ&aA0z@CaT%45jV`B90}u-M*&n|JHWM
      z=tqoSdK3CV6svIZP9|s3*ugWxcD9-2>^wBk<cfNJ0>^qRdHe0_cDll3c@22ME4KIu
      zsa!F8W+}(7gBxrwu=I*`V{uytU-|P5-sd!?WNfL2FV6mjGV31a80#%m_)liq9I?%E
      z4%HNG!nI7bV(SasgXiC|V<Gv(1`7r-ZvgDyDcJrzZ~?|CxQF{`fg&ETl*2>LsHPN*
      iZ*S?_W1EeA_U7;ikNNMi&rkyso6~uM8f!M5qW%xTsLq7|
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%Wl&^6g?9=F>&1_4GpF|1GLmhLqoeHQ6v<#Qc+YEt+HU}q@%{gwUO;qu;K?0
      zu;vR`uxKSJ1PeZZk3!tB^Kg?0Wf9NJnRCxQ_uk2$zrTJ1*uu7g1jE{id1hAofn`^l
      zu5I&fV7ZRJ+U)V}YkssBaL)`}Pl3#k3#qp099Lg<PKc=>#gHEh4A~6KVpwiX-_#h=
      z2iCD;27Qk+tjwU)4|i$};>p3gH$+*AC}Gy7ZTdc4-I&CNF{!%cSV4oqFlH#%Cc|o_
      zHpBKTY9u(xk5CaLH{BzyLc(<o87wnMMyZ_!S<|54n%LdcumFuA+p-+K-#_he@6hbn
      zR8qd>c1^o&dX_j3Kso4HKEry<_kZRQHsOj2HEW<$nNMQaGuh#91Dcjmij^D9m$D>{
      z63t@)Nj%bUA4LYGXZrhL2-W;b+^lO@#TrA(<EQQ!7f@M)A=;uIxP7n7cP&wOE>_T{
      zcpD7bp5t&YoGbSgR2d56M-!t{8z){Q!}I#ivuVqXX(-l@;R}t5N0H_v(JzSv@?vnb
      zPt%_x0TnqhzR`IRGT|9y=`LdAutdmvI!m->%Ri7WZ(O2Ku3SRDAV|Uree)tv{{UJ4
      zh_wC*8T~VE5nhbKa2t2%L;{2KVkZ(OaQ6!9-iW1=sfe{mEGDKhGW8%dwM(ersO9e{
      z{KP|sb2>$SQsPGc5_%Bj5o_Q<<QpR*9}{z>uPAgv^D)CWLgSiW=hUQ!G0=QLYs_bf
      kVca*BYJz@FJ-e7oSHcGQNuYu!w2B@vY~m^HqH%5g1F8Z5Q~&?~
      
      literal 0
      HcmV?d00001
      
      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
      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
      I)$d3D0)d+fV*mgE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6*-{fx5Ir{&5=e$EN}MR*2&h?PaaRIyiJ;NAR6$XtFV>J;VKB~6GZV!pzr!!^
      z#Rsi&DYQ!8{S);Aw6w~y?@TsAfIQ4{yZfF#eY)@c_V3dd04H%L2p>aYO?#?MmL0t`
      znKer#UT}2Nu*b5iyzrP8^SbTi9ByfjX$9eDIJ#?iJv6`&t%o+kF!)M3gOYFUPBU~Z
      z=qrZilr7FMv_sg;;#@jIv4I)g(47p!iTDnYY0qBLjFri3Nwe*AVu|70PT?MK^B&JC
      zHu|$>k%u6mPevI14Dm*!ssOE$c7b7^j37E0dh@!$@06b`b8AssE>WS8yjjpnOPZyN
      zb;am+R&|>p)lk|VO(IGB&hvEw>~F4tT+yvbD6W!ds{IUA<)h8`RfnV%iwpx5SzO)k
      zF0avGxxxqH)Vaix5aWmp1+frDaWsfA62+Z}dZT0<!*Pa?Zs!c!(ToCB)e`nW7#&E+
      z7{YK6DTcu&psZ#)a~lP|E@rzE;|%KJDpyUHm8#pS`ABuh@XRue6;;SL5keA^qQg^7
      zITsvDH&)zIm?_#;&sC|CL81~F!mFBn&*D#YvrIjd;t7}Lc^PMLmWJHm8&1wB@(tIQ
      z6D6c&T);(!&h^^1{qaPr3?1<V<q&%=%b39|Lw9wLizz%=8CL|FWOGNX=Ve^OFzLBq
      zmaPJx*TvZNHO$k5D1|}J83wo9qr&YVZjk_Pjm>uiO>>J|g5lxJ-1K(N8PC)VQoU%Z
      z2dDA)xv`B`hv&o;&5lG*2R#vSp6J^}SDFtYT7jA-)4ylwMh{swC|;tkoJ^hgh~8xC
      zJtA*uEnz>sdxTH<j)3w5VdW<V$fkPnh~faPXlEsl_@kjE{DWJf4%MPU#Kwynq$s+<
      zFkEAE*k$vAuzeIWntTT}^#LO<(MP|L)F$FSyh8V9B=1Lv=)~7L$q4*J@)r^O4Mq8b
      z5#_H-H0nXsh>p_Deu~lxdUc;iPxwxgkBJeaw~%JuT>~M(U=!yUUX#@mCO|&KI^8_7
      z_$PrqK?Hi;BG8!_U3#~`oZgN(&?Y90c1^rYE9^@QZ<_e3ZDP~mXwCQPcE00nV$uPt
      z@!hl8bGtV?HjQvB4J9^<kyyqhP;aO=mF+ZJ!gUhJha1SzS4=0vP2_1nyc2T!KO1<Y
      A=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g@*rx0L0pK#}4HN>L~uEvSgJ)`zAV0%~G6P1L8QOkiQ%lHDx{f5|6J
      zBt%X80sbiBo!NG~F01l1Gk5Mi_sp3y^Xu~aPXKFpuAq;hc%+}|g|=&$g=)(*dDAso
      zmXoU<^5!w$f2E&vr!~v9&+6P&5NDYEXBA~JD98LvJ3HYFW4kij)UAU;)zlrQ#4u1d
      z4lLbm+q6Fw-Y;wQol-?)o$6+rdni#^4VjfF8<yc#7-|b1k~|HOD20Kq5m;<6d<fx`
      zwHh@FgZ(WkxnE7L3$g+|UTy936k-@vF^DmSxlp?+ov3U84C5;Lkr1;<6$3~xjO-c~
      zf8GAL$8AmDGfB(zZmX%A4c#`xx)Y4Mhlazj9#H3ccTHEosBk1uC}gEGxbkK*e|Do-
      zr{l{&MRcpOwo}qblGTpWy7m&PitE>;UJMffB<k&n&XDoKJx_Hvl7`D|-EG;Fv#=N_
      z-tNSS{Y>PBhoE4d92srz4Wa!56$@A-VVXXR(CaA;VhJk>mWh27kczvwC!h){ZX%IF
      z4r{^+>kRLMR)`iZ{2n`QksSOphSibAOX|%gcbr@?^ir<brz2)ha#Au?Z?)|ve_;sk
      zjRt^L#lacWZOh`eeDvH=@brH_2mLn+2zN3{H*#XC_b-txL)Kw9DA%?EM}M<-ME_Z-
      zz7rK}L<B1VzXT4`mE89qigbH1`bGPY7H^VPid-dWO)t}5i)RkHT9q=rj3EqD<P*jF
      zX-wyrmM<`pUpc4gbo?9>Unm+wM(iODWCxMRk~y+N7|RZ0isFyFO5DIStwdfHGt^Pc
      z$WGKr%mgdZ+v5|*Et>Z#Z_~=FyyI8S`jtt)GDRGiu&d91PV#?C_@ZOx2XgQ7`LDSD
      z4S5EdtX`n_nRdK02qlmmm%LT4qQhJ8=|zaoXc7;JA(Qy?Gz$EFLYxqAeNqw$H+?DL
      e#4%%dEcZ6>gvK;wZDI>$q^Nik&qx?g^vZAD>b)`m
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)5+iuf95IvKmF^$qTEi?^x3ITC#K;j8Uk&r1;Q3Mig^S*Ib?UwBtdDlq%4u8NC
      z5<+|cFYv~9zy~14ano#Df%;(Y&iKrnGZ%mR^Z6@)N4OQBM0l_#-ic1;l<q`{)-rY~
      zF}5A;%J_{Oy%uJa>_3fTX>DIw7ob8|{clJCs}h=1n4gBwurgIb4`gbYYkT7vfnE^i
      zA|`gixPj1_oN0cU-~RCP_b)=VtBi6zLi=`qnltAK3tJ1b(}}dOHoP++%x<b3BV3kB
      z!rJkW?$&zPI}ulS^WaL9jARXEEY(rR9ATlajC`5x4`sR~hMIFO^^=(83oe4~182qU
      zDof~i3Qy6`kW1Ix5ie?77wd5E-!j+Yi3+)~NBJ3dpy9EX<`m>b(S&6$EN7qio5#5)
      zA8MOPmd5hA%Dd6<nAY;~5b7Jo$aFjqX#?C~is{@uIAP@<dqx;^*PnR&uZDZPnqkkA
      z>Lr@2>r}mm^OrBgLl6&_FvHIU1USRzEdLKB)cA&c=6s(Ydlt~(Ghuw0&*1L8`=7A*
      zk*{T(<#&yNXnjYu^#kYFzE;4nj3!$gfEBdHNduf`vJx&HL0vjTT|PuzVN@Ac`AdoO
      Rt@4@6B3wtCGZeCJ{snXW0T%!O
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~E_c7=F$+R@jOIgsIGrfm7H9%x@F7keCU{4AGb&67RZk!iuHUwKLJb;+?m8
      zV`5_P!XMy2@Xx5vX~$aF!bMNd`<~~0p7-OlzyJRH1>iOwYKRHs4~+LlrRSMerS4dk
      zY<s3-yM=m3w%^FTrt~x<1eVT3g@GE90+S(_@d8t>?3#wPBfBoSUpAfyh^K_rDdZWp
      zw_{j6Irg~l>GQ`w|Go$$Yo={_>jKx8w@y%11Jg3>{Yu?3T(?@>5twM2`?lfrx>8{E
      zR77oiqq;s67I;-`qVDX;6yliCq2s(jDM}F5HALYnXSPgRKI<K}WOv(WS=67|a@wra
      zV7;{a&V<)7U4g|&F(Grb)m1izz)S?l2GX1GKD;IS^icf**^`RI^;MT5ETiRuHVDi{
      zkkmVNXHTmgA0*|wo?$W3xqh?!fjn;=@bXlPuP4CC=_ud^%W10&!y$%=RMS{OQNuFz
      zN1f})V}S&YYN`*2stAmC47a1EClFsQHWXV$#|l;jQcb7VZOctlO=K#Rbk`J*fZnie
      z+4V1wbT!;#A)_*2fvNB_5ZJA4JQ~hqePnfmsfOx7_af*)t63?F;4{W&9va5^p5Qkc
      zgSwjF&79=^obSnCif@O0b)uEZD?c#(joUb8xuyt2?iG@`UChzW2QXxDfffUB5tm4>
      zcJs&)eVO|Zbwz=E)YSp%8d3aFV1cU=e?glnNSD52v3!J^F?^*NB#=~Lxt1@U4PXQD
      zG)gG*TuJH*hcwTWq)?ONs^~ZQR%a<ie}pwL#D3_r2Mnn`d&sFgiZhN|Tx0yx-BD~l
      M>s{REF6iWg|65Th?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~ixX7=BIyq{OAr&;}(b#@f~-K-1b%mBjdwic-?{0?dq;OW2mB%P#J2I>RsU
      z%4`3I&R7|A#u;xNe~I_rc6`n`VH2_o!!Tjbc|V`${WyQW`Tb7-_wX!(l)&vh^Oafa
      zg|<^`d5&XsL)&wMo2^}|`_kIk^!(7;d14-9FeXqs*H&3g2+R(wB6oqA!18U==~#Zi
      z1mCVd5)h9CrdrGvnr_%Jot`zGzrXa;>YKDHkP7w%uC)_l)deOu?H8^Y_Iyj=dXi0J
      zYoor^sW)jm(Xd@RYznNFlPv36=$P({TFWtmATFqM1loztQJT>pQqhb>YA8rD+*r%o
      zv9d_xnt>VQ1s)8?XC-64aY3as34yl_7?={6ZriT)w70))`CI0;!@}g+UY7+oS$5w0
      z!m)7I4g`j?o!55OFZ0qm+&Vm9z$>FHWhY+AzG;2_bVB;{linRF{CU};ath=}bLomE
      zDs-Q-U2p%u^v%%oS(S3-RL&C(5igvfYAmasy@hd<4cx>nflJSAKL|IhLxHO&UTRRD
      zZSQeW7;L;;p_lYoHc&y8<=VAOxiA8ievyYghEYY!!8kX{43nsgY9f<-Xy6WNvh5EH
      zT*rbuJv8tx7P35jENAHoL4}^eoExfPggDJaM9E2)#AMK>frdmr5%jhd@OlF9c&J3Q
      z41G&dxe%L{fzR+c!94f9eT6s^nzlm>64uuSzCukPyXp1(uC->%nVuOMpF8qx5HQwV
      z*YefsT0sVFz8Zr^W5`@Ok34Du-#0c^<J39{vgWCIianGB9d&BRGU{=pM2VeB^EZwZ
      z=8?fAo+tSrr;tTX?lSL})qR>;$d*#4B{|Ge@*~Fh2TWBLmzIxkwYvBkbH7lK#yk9f
      znO_uMBUAVdM&XD_fU0&t0Y%>E+D{};oFgWXC(aRlOFR$k-{Vc&PZOB7zY*ELuc&ZY
      zB8ayY#5LMV>umK`%pKzcfuDKP_$H*L@R!16XsbT15^V+&nVDNeEGP6AlVUH$WB+r(
      z*xaQk_FWZwPqhV@{{!MXiGA@H_fp{LK7T7m_-K^JzbaQ=Rb)P@?>s)iD$z?u1D#~V
      z*wodj6LRgM{E6H?jdT0&g50=SQS2`iw;#xjlYv6SZRr?arjyC3Au8rETb#ojzjBC5
      z+C3s!z#~PHAr;+}qC2qCbfuM~tF7t;CFEj9;B?{rgu<_#QFx7Q1-arw<clk3G(cl3
      eF>ky98c`bGP@BR!9`h?-P=O6R;Yn}X)Bgbxi0FO*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+j7%Z6kW&H#t|e0uqhaD2~ay1!nIs%!o?&dG(#Uk)9IsZPKZE}80omvPA|{>
      zfPP3BV3@!Ryz>>j_a7M6ksMjJ<-mhwowL_od+nRve|-HGz&ZSoM@r!IWAj&Yp`$E&
      zq3PPTY%9xk{FBX1*?uA)uDPD#Q>r{N0+rpd8kG~+-$O<20+YV<EYn_>p3eY3t=th1
      z_XPGd8BLjvS~u;E%oZ=^Ui+>8Cj?TyFK}=*fvYYswq`wYOx5wEz~LlJ<H1sWk-%KT
      zaxAqdP^%`v>fxnrI*%5bw(0xz+Pc7nL~KYo=n&p&uT0Z@C<{pApn*vg1*ZFGq)G}l
      z27yBc4D1n@ShXB^zq8en-UG8`GqtHzx6P87EF90>%Z%EzSeiKbZjECRGV1rIWZO5W
      zou*=c1me0;=40jBjee)l#X<5NL!s?%JvBX3xgJxk*7|sNEL3uAgsCwfv~nC-oHlR*
      z(*oHI%k!1MfgP8ie?PV!b9l*=t=8zG9cB%Di>g3=Q<{2+dt(syh)aqFmORI+q)9Y}
      zx#<XJ4a{L)ck#S|qc~RJ+eO{~eH>EdF4=NRI*dCND^DaeO@4NVbEh=dH3L_)+MM5M
      z1!C*n9>>KF^CT)H?+Gpc^BLSQP)9>xe8Y3MBE5NKS~f*!T}=bGFfUM8b30yJE?asu
      zCu2i#MlY#=vEn$=3)V>bdEDjt_O>?$*Ukf97lEG}OV@^TTkM;b;jfcaVJl*=sDq&e
      z6?P=eUlu7GMjl`BeT?6~6bk%t@p#@FoF{07ZXNH#n<?z)&2RKi^WT`6oqL4?GqW#I
      zdd71aU-P+F+sc0;SN;p*<-ZvNj2Yl@1ZAG+*^Q&$I3(mh-iNAaP=K1Cnh^C3QEVcn
      zBQ+-jHOsu!n8M5pl(un7;6I*1Ejeu|{}X61LR43Sj@P@X@FetVMBKF`?wMikf4`8M
      zOA&FO3Ai_q;SErH1M!R2KD&*D6!>=T6)p_s@H~i93_YSc7I6vRQMt~hXVcl}^CeuS
      zP3R?xVkhQxbvUngUzitHCE~sw<n;$9OLw~z<u$jB#q_AeJ_Lcn0Vzd^m2fjij5I-t
      z@d44Oiq4R>n?Z^p>N150y_u1q(S^P}vd|w#6gt$CT<B0m8h5BEg(WQWUw`-nzQ+pR
      I!sWU534<-P%m4rY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XdH6#j0q?Upn`Noj1FinT>Z+DZ|BpfprN0S!iqv=j@7Y?GU?xZMrA8;2j`
      zn=k$e4(jNPGraI1GeR91<=sEVXP?A#_HL7H64Zz0-aY5s?>px^=idJD_piSLconve
      zn83t!<8x!K>6_NvqGMUI;+u}`?OSvjru53D=j+e}((S0?y63w_#aF(5fjxoGbmo?&
      zYZ{h$+gP`xj)85b&KY*q*(g>j((?p{ydZQ{x*oBeFP#t&rv;u{Bx>KV{Z+$i%D(;a
      z!pR4X_+R9->8~W9OG|D@+ZRZc16Iqh>vK!%*D39JfgQ_c-8THDD+S^!D`e>}n6~LJ
      zP%61n_lf)}LFP&n$vbV)smcW6$Rx1`V+4`Quj&{Vm~3;ENTRx772SH16FGUaA{(q&
      z0$F5sK;XqBc48OrUP@vJy9IWYO<SI6Zmdgpg{9%-or+<t8YCBehepl6W|B0MD$Rds
      z2$dxqs%SgNt;QD6f&WA(P{j)bqj~0SmMWJgZR2%Gx{l;Z`EH>|NV3x@9diOx5jpIt
      zyt&l$muknIrd{<SdK^SXpwHw0fq{x+`-W*#fg`zY{QSiP3HC-3Z{i4X$s0|>qR<09
      zLVF#iE(SbHwP(Ond4rbW`K2ITiqgI2Iu9^SZ?3deaiBR{Nt#R#vyzQ7eTOGxgaoX)
      z&W1qDr+(<ZQ*>S97N?NE)Sae|lQj5k>D1IF@E%G!-rsTsIRrRf5~uM2bC{MTkjwSJ
      z>}KIX7KXrZk7#Ox?=1VSY1g^#XrGmp+WXPgtqpFLG9Pc&YSJCRGC|)-;4IE_`9!p>
      zl_5lal_Ne*VhtCml}4i>?W(|Rk5+akpqS<daG6A%onWLZjPz*-z!q1e{%EQMKoW>A
      z_<SXaGgzW8S77v6@#HoI63b50t;ka*-_fDSYj}{mCXg)IwsaS1kUZ(>_>2Sy+Sz$m
      z390>j3K)fzqY>ipwOUXn)$hoYs)kHCJKog!$dTxKI*&s%lX1k*2c6b2>;O;cAU*Rj
      zB$475iS{XekI0@1?86iV9%G78mNcFx%UARrr!_mhiP7vg7<`QE+9qCjGM#;hz0<P~
      zG4X)haZJ+h82SNi2%46{fHsUFjR3U~jA?01k$*x#VIN+mF9Hox5y5UhB@@E|+NWt{
      z-#+AM<=uV^lT9FxY5L`~inQ{%zUiN__dab@0{v{%_6B506%dj!aNEMb0yCH;SXJ#S
      z0c@SVnLLxdi@_{o|G*U=q>2wcq0fn*T2wo^7A=pYHjO>nOhBnJ&$Q~x(Ert4MARl{
      zpCUhu*T}=QTn<Uo%=aCJW|-&~y#6)%wEOYS;*La^(k-SmX~fNJGqF!Gy@j_!rYj-S
      zsA5XBne_NQXt7SNVuWk7#WmW+#XiM#w8hn`s!ft)TCLiPsT^VYe^t$+K-H+`9Sd~4
      z11*@ZDQ@04bN$$E-eZWh@obf)-NZs?8`r3f7paYxf;7~aPPGc2!n;8mLEa+m)R?Mi
      z;wV-6aV&;1UkznWaSp%XL^+h;)J!L@q-#>6Yf_Jtp9*;g=+>6;;kKr-PqEP}7P5U$
      zMe_|UJjU6z)VWQpl$FlM?qPSp{0J9PmmcAh3tz^bj(_{~&zA8j8)qJ2y`7i3!VM&}
      z8>EMeNm}!oha;LF(WVgQn80CFAt{sH7)7l^8;;^^<EYbb4A)@N%5Ratby)OVsP=9A
      E1FPg75dZ)H
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV&vV;E7=7zsa%_{NX%kZ@q@|_UF~ltpD6w&HTo()`DX|GtLJu27b<|O$AjzF3
      zoH=vOr6*>%bOxAVrY#I@8Q{W&|A0S*;af?zWXqvsxM<h=efz$*Z{L3Y<L@6I0=S4Z
      z2@!_boBS3pc5PKF)(lNkWLq_K>s)<j*WPQYmMtO1FykjxH!a)bvhBta3@4nJY7|?F
      zsd7!-=bM@$Avv&Xjq6*+PF0o_%VL<coYZy2w5Zs}jmr$|eTJuMRN3abz0S3+65qd{
      z{h|ELoxd0oWmQ-03PUuPUuTHbj4dUFD5f$P#{|PfQ`MD~?#`xSwncS@siq-wZJiS%
      z`t2>o>}{2*pK1E18F}OqQ6JpDx7))w|D?_3cDqy|gqWr76A@zEpl?U98K!fMyt`fF
      zdZ)O$d6U$p)UlS@(Yf6<DL+9ugdpKG!&!%?liSd@l-sLad-cY$(bc!C`fXX+6*rZ_
      zET$OZsz@LisaR4rbepR>9d$Yvu9yFm(hMPy58tPf?(MB=8pBC%`;a?I0^-!@Sb45O
      z;WS>xyo6VJ?id2dpoj|$l4?0Nb5s(nWFh>h%OR0Yjtq!$B%1Phmur@UHyFnK{lcPY
      zEMT5A+2+=^u#KqdXnErhbx6Rp#x2`boU#(8vSZw$jbrY_QHJJ1VrMSdM%6U=o&d~m
      zgjJQWOqL%On<1AQkvs~3;dHsa7zVE7Hrn-4UVKPA&TxDLAf4SdTDGa`9lDKN(17l0
      zDG7Rek&WvNsg}_-W#x)0p3r3AZOjYy44H<mD`t)4u@q8!l}_xd9Y`mw`u&4}m)oPr
      z2ktZ2Q{4CC28WtTDX=BjP)fJ}@(?13L!#L;7(<H2G_|=1GMJ!|`UI^^(yUG+qcJ{r
      z568ZzNfgKFo1#>(OVsTaae{tl+$2n6hJIxSR-UF`<VY&yLRM%Lkdf$J`nq@tvBH)E
      zSdkExSaGqQ#VM-)oWQ{I4$T#s5hEmj!tAwsIP+)-`Kp6F<K}qCl#Lf~mMZ&vll>a!
      z@FGQo1n<!(u)};m3!wJ+3Qp(o(g3Q@Jcm5RUFLHR`X?T`RCs^_!>}ZsKnbZ&T%tdu
      zSG^MMp+roG1G>|Tc#UEVulJ8|-7AtU{DOr894kD=!UMd?aDaI1Zs;D&K+$Z!Xf|{%
      z5p!?kQuuab!$<kTL3N$dQ_EN0*XS)Q65RpiBg0r<1{n6R{$2Ufe?a}}$f)JM#D}}&
      z;K-<Nhg`DeU0~RQUmt=#Y>=M5LZzNTDo3dE?f<B=gm=6ft<vbUljzT=en)N%KL7hp
      zi6^&`CDi(l=(1y!Yfe7{(uIe2AQhslRq(;bDG2r};_Nq!vEKvdNcX*+rbc&#nE8Gb
      zG1uGgIvqgxamiyJooe{-ZtMCpz&+~0`e0&3fJN~EeIsb%LmEZbWmv&gdOU7R_~;)J
      C+ql&L
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E%Tg0j5Ir{!0wKslAgF*ShyjFv4^$EZ7-ETlS|+9nl%j?>!r(B2GZU)9-jCoP
      zSg0FI7nW{a`2p_z1<QqH-<e5f^5C^d?xSy??mnk`e*F9L6~F}M0`M^OZV9_WG;c_9
      zG^xt6m@_0*(Fao7J4Rti*a^VL(BZt9UDpjw$Qh=oj-lN&Noq7LYLXyJd&0UbGPLOC
      zF)M01!9Aa!V_=UMnv#TV2#S#v<h<x#o@{@&^6U3chPt?<NJfIe8yU(n_>$@?F$gbO
      zLI|OWp?OhK#K-yVby3S$5!x2joFHcfib@gfOP{eR=?r~~PQtZ{iZOJSyBBtf5Rqei
      z<C%q6CL2o-M!l#QS|KeO46TtNmmgh`xgjlWD1wpKh>!6~d))P$xEx4vs1kM})_`vG
      z2GCPRzN?lHE~1ZOq?Vp$me<m$4ClzH+RC6Yrz(aZDf)s~ARxOmSx`2jPu90c>e$c<
      zQT~Qo+bnOlk@PA8n0hhzce!pPm-sd>$a(-n^u~!wg)}09kr1w7lp!GLW*eERQXr<%
      zZiCY`SSyuU3507sB>IW`O+nw}ZDOL&Q%+QdsYPcM*CZL&t4<TQ)m?J%>Czsr!mNh+
      zrK`-tVVQh-4l%`xJz%J5Lz9#Z8inFhlSAt^Ru5`w&x=)tU|P*<Iq`vH&W963AL9fv
      zgyt1R)RMBG>mub;Uz|XOwfMqRH96TDcL`SuxF)sKSC+YAT4NXokw`y3{mvtRdRiOk
      z8{t8a#t(c1>E;aWQnWH!{llNo{DC%Jw9<c&o`U_MZ^d7<(K%#2!dbM_siW+slTHj_
      zbdk?F+IuJ@hn}&aeIIe*J)JG&I*#P=xKMpnsQku4y@bp3o})dam2!f|dr*OO#>DEh
      ztTq<Uq8|g~<K*fop<X!wYS$sCgNLGCEupU3xrRr+BeIXyk#C56#xTP^{Jw*#0{UH{
      z!leSj7^?`yZ5Az2Qn*O=L^(aIlIl?xI;VgO$myv>cj&o}8#d_)T6uR=lRjypT5VB8
      ztwr@sS6kdVwk@Vzs7JNM<SFW(KXv`LPf-6eSEfhRe+PF<N=+SG|4SF@QT4|Vw-uVU
      p74o*-s}%mV3(RW^??}XNcr$r1ZMMS<W@!zYaNW31Gi=Rr@;|`XWvT!G
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU&u<$=6#m9*XX779+q6kYe}n=p*fG=%6bQ9(Fm6f>?hj!TRH6z^%qrPxvs-q@
      zmD0ZgaVrN-9D67T38jb%4qQOu%$++o#0~LgX6@a0-2&pUGqdl_eD8bTdow@%_240Z
      zWn43nVpzP%Z}UoD*iNPCIgZs6w&w<?)^=`*-Hs(pq#0(TJ&nyk_`D~SYl7j3a@k&`
      zWBE3B>^pqZu^0{p>UZ7p1A=?6b%BAs%`nv@Y{6Zz&YixMnf=2*@wM@Dkzt}{ySAt^
      z7{$^$L%QjGWaVJsU;zb8F&t>yu63oqvuXKV9bu;J^|-UnDJn$_jcKuM2Mj0M5#e!3
      zRT<{?AK$$-fH?gRXKUSVwN3!(z`jF?65kfXq%AC;3(qIuVkw5u3hi_t+p)J?F8V&5
      zIyQEbhR$LUCrv!LPxe?A1w4hP8FFivuXV3~*lu;YBzG)i+YUrEk5hQo#A$}<NDApG
      zU;#&oaL;oEw_Orzwx|y~+})~N-MmR1P%V8x_3{{Ik}ih);B3Qj7#70gBORn5j*s`%
      zmg?lrqk?4<X9qnr0#Lw<c!|NZ1J#O3Y00W5YZv7d2}2SujCIIx)M3`geeMJ%UZXaQ
      z&Ql-fv4UliWSa-uvhQfGZ|!)uX_3_nl_;&HVrp#)ui^WASE^UqNQz|QO)83t5|fpo
      zSRAu?902ujZS8y#xL(}ou2oBNAT2n<;W2=ei|{(ax7{rgchG8zh_+TIL6<SLaf8~Z
      z<MsWXb<tM0Hc~S<BiS<)TCQvPO@{}8Ma?ofco!Hh)w<&d#!3)-D|BmX-^gQ8#aU2w
      z>C4b}6ecEV&e9W=LJm_j(+fbBX<Dt(%xKOmeS-sE(!#(Y8gsN2_ylQuiWyoJ^d=m}
      z5&E0mXPKivhIu?eqlB!}EFn|IJsLIMgtB}V!%8Kvq(x)Vg`)V!BnFP}qnZ5*C-(3R
      z!~GHHFJjQy1hlkh=;u%jX<njPCYhvpUt!H@Z-^zSl(0l+qU0mOWjs%QP51>x`27&w
      zEbrkA!>AJ9#zL6G5GKyy<uHT}FMX0YsEFtA3i%jb9j0(23^HH-0V{WLsQf)v_Hdrz
      zE;8wR3Hg7F1)U!ToloQ?eOj&RzbNW2G36gu)Y_2tqm}<P#&Cf3c;#PDDF1FKO0urM
      zJpz4H^g&%^<bmk*{}AW*{}E>uZxDZZjT$ton`wN9#%R0$852DdmNIHgY0(8-MRVAg
      z7ZmJux{<Q&^W}%1!z>%DQ;xu=$qAN1h8f7RbS#hjuwU}@W?Up@Q8?+-;ogF*tz^F%
      pvNvX05xjZ@*mR7$k>D;Z63oCmG^WtTWtwveZV^}LWzg5`>fgP6mp%Xh
      
      literal 0
      HcmV?d00001
      
      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
      zcma))Pj3=Y6vfXS21fp9TWss!TGU#gtq`|D*q|mfq$YwSE+6!zPBWcpW`-vE5&SG}
      zTp3*$*RK2~>fRX7%z&lR7!!tf?|tW;-@H5b%dd~006aj=f*~j$suNWohqhC1dyb<=
      zq3yZB#xs4Q{Xn<9qhsZ((DN;rg2h<uDEFZLba+Uug^XZ%*5XuuVY*{`^`7=^<=C&)
      z(9yIB;&ea)Vb42{1hOl**d{qtZa7fRSf}^RH{W}EyI%#FrtR8cOOUEm2LiM0?du#;
      zC>C%D3xb8N?drYp(NO#Sgi!2yBjpSfsU%K{X86($1l8{B`~Ks~4Z-SJpI66IuiF2b
      zH2eKVi%!-kZY6JDt|Vt?+Sr({R6Bxf&pvQfIQDreTcHtu)sBT*)6T{glW)X(=COuS
      z0k?67`U$V^30BS_M*gA%#d$P0hU_(Af?UrV`y>6tj=$T?gw&!Y3JM+9)qdMiL7)Q*
      z+k~ClUBS}aNC{pv`w!>&t@%<?nM~<)#FEw~TYt@1110bZFp!4D=sL2<am{n`4HWnw
      z8XZ;^89nAIT+>_cvGk5X3YYnxi)7|EnC1^GGcP0}tYDSdl{1yA%mmj6GH`>jft#_l
      z$0)@-zw;Su+aIuQ;4RYxkckY<pRsu<kxk5b0C%ww1M|4Y$cTZbstA~<HvgzLV_2DW
      T0~J)cMt2r$VTV!jTK9hgi4*l4
      
      literal 0
      HcmV?d00001
      
      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
      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
      AG5`Po
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8OK=ob6g@99NzV*TK0`uc42TdQnGnLqFB75=K8A#k4vZ2M?1VOHXnMkQ4^_dk
      zDA`(Su~RoLt+H5Xl>rK>ELT$H(!FbS?H)b%^?W)r6Qokfym#Mw=iGbld2jODlZQV8
      z*bCo4i^A3`)(vZ{6gckKWWjaq`M@c7{$S4W7F;_hcqgqT1963(+P*_`eo(aL1HIIy
      z(5;u8!dT8OI+p9)wB}q}q0`sXyj}DOd2Z^6f;yqFev<fs<pp`mE!nN#ZcE;|e(UNT
      zE?!kg&uA>y@)pKU&s||QS%qZIS@5i&R3vEZ>@*|lhK%wY8MYS`9otvv2#@MYa<-h?
      zy*e@;nKJdkqdd7hPCNol@JFF--0_@XLSg4nV;+r>;XHF23ISvspDbLqQ;4D8L=T>4
      zibKQsBosE8FtJ`nFPP}WdP&yt>{F#{b9V7;s8)KWFmJheiwaV`axfk&IxKB4lKEOq
      zV*0VG_Oe3j4bfF$<7&X=r3&b-XF#jUqL2`Um#L^i*U)g}Y$)=c`q=-;EHdmek;VoC
      zyA^tCzKWK%FNIO;5gqp`Oqbj7RF`HO8`KyX&Zn>+FB^Dim7^ofCSJj-?5kh701Dfh
      zxS>&qR;?3ZBNA0@#_nut7LVw>Zoc3JmgD);(#4);oU<uvH(}xpyh*d#*Gra5cRZt6
      zXL<E16#DAXFbmSv9nGj3rDLm_ZPd3gv1s{=;(qP<DM|A!6Gt(%Mj?#1(X8538ygJ7
      z8#R#?o18Rp3LAK_xR-^-edi__+O)wr?^|`U)<Y3{jiqsY*9H5mi8DAS*QA*Nvj*O+
      zJZyEY<BbRkIX*hx0(Vq+^otcndG<oZ*OBnylH*>siwS(d_v_;nW^qaE{b8L%WehRu
      zEapti<1$OOmX>UfgVAO!i1aEvU8c$=@DaHV3eut=IduRPuBQO-O;(=>z%>)^;k-gB
      zS11+d?PHF9;%lP&yG2I@bISAV;-qW&zP!q2^ovB{()jd&2wVAy&o_xpMEVl>!l_=E
      zaJlYFCyPC7ZH&LIh@&3{5*#P_b=QIvpB%ozoVV+F2j_f?tMe}0mPe^N@8$`xK^u8C
      zJkg6jMs9H)<7Y?aKAy{rtY9FsYXzHsWGIF${F^2<jL#4^K1b5{0`10^c#-if;W2E*
      zHqHouK}|2C?HsjW$EsaBtGhawRJf~)yA*~nTumyYllqhew{Xw)%ug73jDbfOJ)hxt
      zfWMpXV{9ff@&Nl*Fe2+eaAP#puV5J8pwIXoTa3FpRjHX^<y8Bq;%j)F#FAibO%e>(
      z4scB&i*f!HjZX8tAS8uv-~kTa<s_tR;}#eXBQ(jXBFVBMLSxE4wr(qgM&VF%@XbxY
      ze_aDyL=J1H2S1ES<{NhTh^}C^TtRoGg0GPhEx+UcLN)!uVt$YCbyth&ZYW09!eWl%
      z7&8&2X2>Ijc7{S77mf!we!E_<KQu>}cW0TSCX+-$<P#BVOlyV<Wrkit&pbxEwuLss
      zj6`b1w2MEDKWT=)kT(8~5cW0@N+cvaT`gsTg-9ta@%rTdiD0!fU`ZszI)k^XZFol~
      zf3ci=KU2*;MwcW{efIr={0edstk3@m^Zyq;2}C&i8#pBra`I6tx58rmlK=Kcm_46<
      z|2{4ff8ZXhw0#c?LM-De9N&XmqtzZrtc%c9?oF*f5)rx>JP`;5Eb%j~i`$Rue5pn`
      Jmq_Tr;(y_}ah?DG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#fngGf9|28@Y(R*mAK+NK32MOF=4yR!~}O15v=LlQ6=trZYI1xNM)i
      z)MsDS<)dr)(g*8OYVGp!>`(DWSidtTLxvE$e8|k~%lY=+-`;2EuYZ319l%*^>F5v`
      z+A=>f$LoRZjL&$EV^ss&b890d+ud-iz;jDhpd%^J*YumN)B@kE2BAq4=nYM_H(s)Q
      z+jQ*PX2r1t4%R}kZ22`pF3-;jh}Q)U%n&~?-Jonbb*r;@efq2XpZER{&@IQhX}N(w
      zb|FM`Om|~^v9iUSCIr$Yd&4z@x=-lD(h@b=r0v?l6m!e%KaeleAxA&?k(}|?tqc<A
      zGjI_71jyyfX$U-Nz`y~4o(0>ruGVi>EPqL5pIz{(rc*Xq5vyq^lfkB46Btq99!nbY
      z6P`f-UYJ|k5mf$vU`#UoDFP*H_H9{pE<Z1jvIEOE1J5UTE{-za(DT6Iwgv^K;~9a0
      zW;f$qKbyfQa+0IGz{v)yk1tcwo2q(lVA?LJY1@j`45>b4;55eB6zjvf>CiR8kGHu^
      zA6EssBK&E`5g2Tr*F>J4N7~ya3sW?A;d#8E<6JbcErl5v!m#vt$-r@(=)!qS>L8oh
      zCRq{323`RNFX>tzb6$HRy5ps=|5e%l=HVvOayV?Biy0$iniAU{=@IPpV9cR;T2{jr
      z#%$4HWl3$CwM{kg0`mr51Fv1%#xR5)c+<Xb-jW{qHH8^3L&sHK<<|Sio(Enj@VO;g
      z%U9Y79oM5V3*nUdV%>JuEkA`N7PywdHI(JFz15Om10!FS9xDb`vBtqMx3?{Kos-n=
      zy2mo#6KW!b8;o^BBE2V(-fsbjV*Mw8JXtZYh&Kf?C9m#Rt;=?};F>L|ot6v<81t@c
      z`7@4Lt64Q2Bqz2vWA5~fZ&-o3$))qL3>sT+N~yv@jcr|Zk(I4w?M~nf?^=StPITZY
      z=t%K9&4u5A44LM(qud?JJ+y(kL$oPP7Ee%9q1?fDrf?s<g|VM8aF0>~gM4=L4Q&WX
      zZ3Jm;lo5b_<&DEQLW$>aG>md=kL~GQTMsi3@`~{(<4uJ!Gfdv4q~d7QK|2-V8}gem
      z6uv}lY9uQE#4t>|s$nF=ycBW(q#t5*g>{_#p#}O}3_86JT51$@0b>jx(_CZ-NlSXH
      z@Dm1pL9sR4AjU=nN%t5VD(@!v8U77Nc|RKl`H^yxL5gD!@SMOEzFriV`W}772Y6Ya
      z5&9c+Chp!zJUaUAqrYRU9b><teF9zk6y4fqIHY}!6WSdN^ShvZ5$0D=_`BUI;sRb}
      zi8@#RG%kku9K#G|$)M!=xa>HJ4MODC1zg(ozf6C@4HNZpmXhpNN+mki%F&lG+Ee>z
      zml{R;8(1KYq<xP0N<<_18?LM*ByOp-nP10HjeV$6qfmK=8>q{T`51hNYb)8(eJo4h
      w9lV`=X9w@@z-$fiT`a`lz7SF)LnKh;vjgj}_|Aspe1J`!9i=QaYDn#W0hG%AegFUf
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~7(KTg7^e(ST3RT+P*M9pDlUaIF(f7=4K8R%bT=(GFl3m~nJEGPkQ*10
      zNQ^Etk)40RsC(ltAjWv^OdE=A0xsr$-~Ar<obS<o`Sal;fJHpekq{{FSbJ8r9okNH
      z#d93l3T@8~=GG6~*0%4t_Di|B8cN>^Jzs|=kdERV%iXFzY3?vw$FM-=^p$S3z|d|x
      zl>2nn|IJwv5VpW%?1;d-X>=Lu_LggfZC?r$281j(8cQ|C4KLfS9o7U&#eReVc}t}Y
      zfrX33#uzF=Tk$q!3Q1&4j3O(LES5G52;@u{NGWZ~gpNxB<8|AWYwg{p^cz;wA^l9<
      zYgx{Q<=g7sF>2wq9SF?#P&}{otX2y+5`p~L7Z09yUtRo<=eix#T)7`|4#iS`13AB9
      ziJcz75N?^cj#&YH+X~jA6gJ_R^4v8shufTmFL%8?sZ3=PMb)R&y4Utw^0BQNk?yH*
      zL9K&;x$3&oUvaD;kb#aWJ9@fBJ>ldxXd49{EjJ$a^RD%qdOFixv$zA8<@A#LhLAv7
      z4UxZ$j2bI#Bh(Wxp;3-vjCyPtXC%<(JxMuUeus(j{1GP0l_TU2X-Z<6XGSF&U!fV_
      zU>M&qX8b^b_SrZMGq}tfAHWsDibzwy30$R~r&PWfT%%N)K`IHxaS)U-l^YS29o|)R
      zzWf&Xr}fVilkag;pmO}Ca{P%tooup<$RZcXnBkaWV*G?|{6dyeu`?qk`3^h9<kX^=
      z2sLh=ss)2_?<m~Y=i{Cb_cw7*E{MyW>fpZU)LS@HZ%N_4!Z48!J0<5xGKVRCXNHoR
      ofS$@CO*x&)^}rYU%2pOtb`lky3C!ajrP>buli)tJco2(!0r}$^(*OVf
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM+fEZf82+YPTIr5p3sgYSs;E6Fc)$ZiFd;D^sfPqYqIV13$da;acDDw70AIx$
      zFEr5@ywF50JiLT4J^=9r#BX*jtr6<##qK{d|Ka=o!_4O&Z{7kphwDki1kSD+4~?;g
      zZ`H?UoqF9|_ASTuM&}>d%PX#9TaV3J)$;r~-*gS%ag&G(6#wqivQG$PTlVd-1Y&hd
      zV6eKox+2g$Z{4>Izu}q!BYT)lEi6=~X`7g`Y|Eb(IFk=8>xO-Q?Do<sQ>yIYTPZ9G
      zoR4lFVkxKitWz^n&~QLPM_QoJIZCr0MC^t@pF|S-1bVBMZQg3EEt&3uu~cW8nX0pF
      z)E5ocQu|+raeu|~1jgIah|(-pCGN42Dr!*U_L8tIze7EG(1e@#N1SF0G^17%7}%u}
      zs$_{gI~As%lQ@PUfv&ZNZ?5a;!U>7P7!eSTfJQq3eZ}zZxaLF4X)tvyU%0323KFMq
      znv-Fh>;9ZwGuH#%oYI|<D54~=@4=2+f4;C==3V&$F_h1FiL)3J*x&RCVk*sq#03>i
      z^GsjuuSi@{3{&$?!(BFSSgKnG+S(A@Bmp^R+on5PH$2bulDNi#wC20boP)pDB@?Jk
      zElmDNd^$p3nu8Yhq|KrI=7ma(a}qUvUHmd?ASt`~HpGzP4jgRBb$GHLJv^~#uTjck
      zsr(wf#quj;UU09WpZ^}E(?1}ge}t}o!T`^5p*^xV$Q?Z~h#}&rl|qbRnCmR1I?3V?
      zWvEN>OsJ{Y;cz72@PvECVYv7bNAKQzPmw8Y;CKw>&8J9|H{ZRWMG}3CrXmjpGGv%R
      zoD9DpseeV9a!CIcunh5sX&JH{#%RE@#ZBo#Zc2BO%!Ham{#9L8iKsHj2Arw^rw!x<
      zN}JD0o9_ZX88QODfk3ubY>Rxpqfg%oxJbrSyhARELF+^@;QNbGN8EBm+-)Q!-y(fG
      zA}((VGYRKmyhGmS6#nzS<}K62@8esTj)>3u*fH;m(ejo#;vOe%E+Q`P{Z8H;XYg|5
      o8I%=rxP~<4kems4{Lc((xXOu$VG<R}6ssdJg=yZYuuC&P0VM&BO8@`>
      
      literal 0
      HcmV?d00001
      
      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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
      EKk}52$p8QV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~7(LV5N_V*k6uDGx1%+~{AYP!PiK#KEX*7}A1by1JBP`kOn!OnCU7q#X
      zKVZ}cO-zWIXd-Vu`h$$$?3Q+0jnHH}GvA!=J7>-}^YizYZva-XAtA)Dx~D!<Gp?iQ
      znY^j%yy|GCVb5$G7}Z_NG_>cu_CPgiX8l&R%5A%-*^Yz=!==;nd~A$isD%yIV(7EE
      zrKx(ETQ;#iEZk;bcNx0#B*9S)r>yEOk0x@8epuf9#Sq)n49&?g49pc<H3d(0zRb|I
      zrR^B1<64|yxD&BiDrIvXERr{CJdQB>6)5Ot=q+jnzvtE~+$yORowECjW|efQq>k2&
      zV8q$gY=*S}^;s>;(!q2(Zy?oEP2RLK9Xvf@TMuB*O5>lAArZ(GJSXwlhAFyg>}2j&
      z_Nd$04yfl)`gGihox;Zn;bW2^V$-b==6Ssdk}ycNTM<$i2ImTe`A$}bk$;4Jk}lA7
      zQ*aqm4AHvl@O=@PSCGaqk?K@c#v+y_EHU)7-wOrPNW}?0LD%DnW!4Kujqg)83M9!f
      z8>{%1=~`8OM-#p83%I>3sxc@9!{An4S8bcy5^j*gEt&wFA^E?D!|-^swDGq)xqusi
      zYHg3O)y4og_?oh~LdOi#7o~3$63)@sMNd5h(IkkwPV*iw(u+PCAJIBQV=TRJg!3P1
      z7RCVm$3;|rfv9|lL0S*_C?semelc9YFjXIE+Z%1}jnSUqOH!WCchTeHR9`5O(hG}6
      z81E!}iJ1J#Bb@YMO+pEinDUBB9(5={EfLD67JFkv$wbqe)H5FSYZ4tH>Qwp@X1DMC
      z_zJcyru5B?B|l>!j3Z>0jz26Nf2ULl6GRF6roGYkWt`%W-$0VzqE~*0LHRurG>+1G
      wlH$TEUwW!3Jw<(4@ua7)N;6-&(unxd!?;SBA*|sVjpDj8T*pm1mhayBANCGX_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fEZv6kVscfjSIWN-K(51(aT--Y>NBQe%Rt`p`-ui4Q|Lp+knLc4mzD1^TLA
      zV0`6;XhQHo6Z+;)_y>N1ai247X9@%!W_Hin>#Vi*-e>yz-;bXFZs4JU5X0<-{#Gx#
      zj$sxnEz{%;$7oshOl`|*G}|r9c+b~r+))r=D4Y!SDHOyQM*I^*!Z2p@wxOHLyls=p
      zi={^l><PgtB<bjuv#gsgkH$LtTcN*y$_%lxVHwUMLt?HvKvl{vGYr>^bxU{LHfKm5
      z0F>+X(xOB~Dy=mhM;HkeD#jTmgHYeF1dmn?i$8NWS9!axubM=hsJ0s9SSR1K?ruh$
      zreQN&4VdzY4mGbtRT6qMfTnKHZfcNw>vfO65P%*->=nt748V!Gw>{G>)YPr@;`7xF
      znr&$iDQnK22<tUdbTK2kc!?o@{3+kHHw2sRlW3-#V$cu`nZI#$lNvN}1Z8$*7}RJL
      zbC_m`Zn_SCCw6iw@+eSai8U1{DxiA`^SG{{Nd58ej-OXCgIOYIF$^_zyD6>-LwGK`
      zBo5wDaTB)~;<c9BZt%y3xC>+cX?tF9GN?<I#oHBAw{31KSfDD75)<P;@JTVeD%Ted
      zH)Qe1Y6dTr@538S;7EV|$WWWY^hD`73k5?Ihv~}?A&v+|6(jUplRKjrqqsur5XD$7
      zzl+m5^ec=cz2jn6`+%tS5fijdc_@l$S`i*+Fez1nxpV#86y=28c{=CmU66X5_`{S@
      za{0n8E*=#8gqZeO3T8Z5Ur@niOiNNlN{6Vxp0q+JPg>-rNRo+3(_572(ppHSbKi00
      z<<or%+58@^g;3~h7dpQvtzcYMog^Yrz1IUx9Mir)(Y_){(eFdLZ!1mzs=}5qqe^=s
      zC(JN$o4OV@NJDfvB`s8?g+1J+PpY$>?>b132hcMiW6;44IrxTgZAUurR8n0BzOL92
      Zx?$X<cL?`zpJJRGFg!qs?t(Xm@_!X+Soi<{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~8ZF6g^{O9ALvz2u_<e*cfQ>2au#mKd?)iI896V$OF_;9v8EOMP?VR*HNjW
      zzV)Slq_0#;g=nQ#3UB=({S9d!s-Bs3#*5ex_rV^|+&lN2d+wd<KmYypcK|o>D2;?b
      zY0r9UEwlrtxlr?(O}h~|p4*z<ICLAkzUMmM+1neQAK2S#)<GJ50yA&Epj`U}#=5RL
      zhQLV6_8qHPxBV8OzFEF6ARY=_t`Rq|+@NkX+ji=Qzn<rg=Zyt{L~CDQd^ILkMPOjV
      zdE#0@+qVU-$N5w@S1OzJ$`XD1tB&ggO9F4t#(7o>b%9*0Ne7WGeKl{}9z+u321bw(
      z7>(Xx?hG^lq8Ko6S-@O%TzkE}zh(QI)>e~5M_0WD1+XXs_npJOVAp90%tffZu^>z;
      zb2irD!K-+8{!bvCpg^&cP1ACpEIiuUV@FgXp>!dYT(^33*6|B<sa#$vHzhEA@%2zk
      zD&Ar@O4(EoM2QIuHoW}<%eMm0mxV1vsMfTFI!(OBRGnjkELCK|iUvxU5lHQ~1N++{
      zq%ddTeS9ErX~*$f!HRt-aOG8;voun(1;&wgZW)*d+cv#xTk_Ee6k@WB^6W|~ke_9k
      zSfiFuf_!Y?L);!D=})DUS&|Ms#V^VG1aDf3uk>9qP?d!GTkS2yrxL^GytJ_-7<xuB
      z?1^N}z~}gaWOjUSUy(}(meV8$N$V>EU*a|kxZ$<^hW)^iFJmOq^7FFV0>-lI+J21*
      zwd__JtDFVhQ4n$GdF;><cv@XqJfB}Z=4|Oq_ry;_($}Skxa%TnBW|!fNq$mD;2P4n
      z#NPuPy$K9rRL%zOht=Ms4Xoo^w1p?57~@HU`vljaV(A!Hiltw0^=EFAc!%G^TrvC-
      zso}pdIQ$PGfK2F)ckv!~yx4)ce#SPTZ6+y5;H(DDDPWhe868HkR6fRJv3wrcOrqcH
      z!;qO$$hpv8BO92;jEb(tAmevA81xD`NSjHUknc=$m{lD1xR=RiiqBDay!wL6)f1HY
      zmvwqnI{kyTG-Z@BjbU7^5nap?q)l46N?i=aB-3FhnRHJi6CvNM#=mg^{>>iov&5ey
      zezr$^K4*=8N8$g-#*sD1tNhnq{08w@{**eDPVi9z$M~dtdQ|RcF~KT=pGmbwwOAyV
      zDzfHcq(}0)Qh6+@N_FcaZDD<+twME#93h(DMf!Z!qdv>zv_gHBd(?-MMC0F8`uv1`
      z^fBWprO*0Veaa`emy`m{ogU3~1j-^u_Z;$S4F$?jWS9+-v0<7!xW+Zdy=<DWrKhw|
      zQ@G!0=_w^y*wS6EP%`NyB_lB<o@{OoI!(T(;y&oTxX;M_dlvWEYl<6kjxTP=G>Nat
      VHi2b4<SPGE1Xi%dc;PHs{|`Qn3$y?L
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-EI>{7(HXhag!{piIdQ#B{p`_#(xQ+w58ZhOHF74CR9oq38^<5vyhFPU9`Kd
      zppVdZsT!nKQCbNqa#grTeF4<BKs__-tZlI&?u9*``M&winRC7wKY#tl697xNokUEa
      zv}62eEVg~CwODsrEwkxcj_u8^KeC(Ku47w2nRnM6*XOtCCov>2H^2s&IxLXxriL{H
      zQl9BrMr+e_JwkoIdQCvw5I9vQu5Z}>rqODfiHE;DzI^k$r3HbQ=Lt+UB5G9yM%JzS
      zw&Ay3Q(!tOr?#<CU1s8N&9W_jS>WCIsI+QfQ{Y@=D5xOgLv`n_If^(YHKZ^lFy6Pp
      z^jT#DgwUYjlz`r_Y;&!>yJfl?##W0I#~V(QM>i+{=bgnNf7{{_D?PkUw1Ov^>aX?a
      z!BM@7|EJKAKE=*aT84dp@%GjZ8==}$C-hGVwK!n%k#thCoYX8YFnhvYr6RTV*nv_o
      z<$EtHfzhV3`@nDw-*Kg%g&v;uFhYf9jtSK&swt#ZMGYm)2_$ygzWHzr2~;$Eh>y5(
      z&vHFqVB)AqKZnG8fkotoiy9WND3IJX4S7oh3K2)_CD|2IAT!T0k-<PbiSU_*k8x>~
      zbU&9OX4v+=v(hqmO`B+O7NA}&!}DeGvWA+ZGwiju6q{-Un>SUBq`<m4$?s%}bq!zQ
      zD}k|luCp6bOZtY@A_>Xs8x1SCMDy02w%atXTk<}ndK!H}IxV2B+P3M|c^uF5l4$Vm
      zcdvd=I@co~DS;nq8&}>u;BsG=9P`qdexQ0!ZfI5z!3Ek7=O=*}rjf)u{5`@4HHJ})
      z%X`oHX*Jgw1N}O~Sg<mVG*_CO$2g7^OZ%88mVU?C$DGFT9=}g>g#H8x{V7KEzX$<L
      z1?hMnA8^Kv9hh@{v6(QYlY#`!guqz^Y_m42Lo1fb`#4`LM<D-=Vf{JA^cM;_8{~(`
      z8fG!4s;eiC^}8H2W(6E%OlM5Un-p@GR~&XYmxrG!{)WPx#xo9Q4^ZYG(cxa{@F`<S
      z$|z+@V^WR1y1YbE{|9OPrDCTkCQ}`Dl1X<(G7<7(hWHoWg1<B%{ww1DOZ-;@;`7>u
      z_@5~JpV>IlgPc15t!IBi+>t+}4y6Np8pA#=mk;;K9W7?)BKSG4#vUzFKr$6WhGVx!
      za-mZ>Tv1MS{gJW29~rAs9U)(ekl)+%`C>4AQaU-EL7JoF)OADlZInNJGeZ2UN}pdb
      zj3H*{l|F0z`jijwbzBNmIozvs1j-=G^el2}3<R2C6CqU~nG*C=855}rCOJ-Xp5?kE
      z7qoUh6fBQxoz~7P>4MhoW(Cs8EGZocDiLLq^H~cIF_6jE2RFISGpx|$`Y|R4oTE(+
      an8xuf*~YMn8yw}Ih`>$UV!hx^TKf;tlLMXr
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV+j1L45IrNw)@_qWP9(<{oB&BI$-yFoONfNQk!?_L>;%aowjr>V7PG1Ku4;GX
      zA}I>O5AX$i01rGsRe~#V6?vozc;^H7173Ke=$TzfYiZ>q#e=Px>7H}CPxtix_V1%#
      z09-&Li~z&=+w!iQZ`rDrFBzJq)NR$!tut%-j?qv*Q{^p9>7IuXVn~P^nyhc<SGR7{
      zg)oL0PWa)35oudgBVSQWRo2wI9Ft%yv8^elMT~3Z1qODN;Yf+-ZCST#ver_D#;)Mr
      z@3;P$B4eE)z3j(QV2D=KZC$ooCIL_SIu&QC)xsRP4i{BjwdWYdGQN(5Y>nZRzs&{V
      z9-)%aP+|yTRKf^OG6XZ(S`-Z95{}|n7?TWBU8Po9ns(h#bz3nPzo;usu5t_$7-cxN
      ztm?{2YiCO_tBy1y%SK(+YBI@1Qn`mA`*YP|nDq^MP{AnQ^g*yY%{Ji0XF@8v@&)Ba
      zgCXVW<LQDzc7w#tkXv>mj10qcH~Tf+YBigNX)BG@reexGdyfp$Tn1(^j5r~AQAt>W
      zBxK^9*R(^*M)Xf88+i=XHAOZVB6UNzWmUK07{Wz~p2Jy&c>7QgO%CXR+#F@due~AR
      zRm?I3>K7<1Up0&5%n(+s#hs>oM>L7J`j&*tAWKB0hLCN8B1&hn9*DAgPCgU92B#ij
      zTw%!hJ&J=J(T3w;FG!ff+cC^ziMQ^%45Qvm+pgjr44cZ1u}hCC>MVpXwC2)@b;wfh
      zl9`&n%&}J_ypLtd*f!=(Q>Khlne1kNRk`m65>|1YA(QcO@Vmrtx>&i~4>p(CtX2wH
      z{*U9<IBta+N@h6j15K*iM#VN&eVc|;TU^m|&S`-^>yIR?gBm7QF<NF_SyIK!>W)Hd
      zmaEPnm33V)OPXw1iWLT(q<qUk1@@n*4C}?JUsnBzditXqh|>s;sb|O*aGC~E5CKw!
      zhCRj+MT}13H2(vTkl>Sw_6f01(i+qd$I0fLoIr|Bc4;4=-*j$|{$?IvZ01+Q_c5`)
      zhvy#uM3x|?xSd##_!6PSSBNIQ#*xH5q!QoYl&}c|isyOSabJh|g#)%1JGLZ6#c&2^
      zJF%P-vD|cHiR@#V=(CUMhQmHg{z!c5VT*LwBFJHe>|Hi)bJ)1;ykL6?vmLhlQ?Y$F
      zfUP$-FWXT#xxI{&#LD$uAXbVUgL3*_ut<)Nn-kBZd%`nee1y4(H(ZtCx%*VChj=A`
      zAIQZk)FV&m@s3b&k5CRgw>j`M>N@hgCIa8=p?STZ=8pk1mqg!n>(QnG_2wnKNqI0n
      zAl-bH#2$$8d>*36`qKH+qfx9+BYxr}L4&W8#5*F1Ya|OJagzI(Uw80J40~Aou}87L
      zJQT@33Vz~Hyw@qiimT6{!v5_M$G=&7OI+@&!4n=tlD>(QN17s`26Ln4tHWE=DZtfd
      zW=s4JHu`S(m-|{@xs&6bS{znx`o8#M-eBmdZ}QwzV^%sXR241M``p$7ec(lpFy80(
      zA#PHD-PhcH2lP?Eh8y|<{qhct@b3H>o4tWAc>-^jxQp1HJwbd-7y;bEC-lp|0t}yG
      Ki&oC8um1--V<%?-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CU2oD*7=8{E3Z-ro_o16}Q_=A;M|LZO#Gp%-knLiOM9r2IIF2r*C2b+|*5BiW
      zCYnV}^xhw3d{5hrZjh)K=e*~<AJ6lC{rdgw2Y?-H%ZM?Q&h)Wf8F_|TY1pR8yPjcN
      zZvMy`*gfN|p?6Ha=W$2(Y)6K~koEmd-8!utbk4|KMv@^nLAms1U<SiNbJ|j6NFN%f
      zmhO!l&ag7WrB-gWs&#Tq)(p$=>I}<;8E(~Ln_+F1B?J(5sbTlHf;h4&GSC>}g<?Am
      zhTAG+q!{L#hQ;?sgAR9EqFySeX?JzAtvi1Gp;GethRd)O$>VPwqXL$$L%kdF5N_u`
      zaB5*UB#WPW)YL*T2#$<_s1k)D`DKv6eHANMWsv*2yYGik&98;!p^9~EP+uKBu*Y1+
      zV}{MiNRKRcG#uKF$9o4uF?Cvom*-tR6b}V?WEqr0d*pQat|2;=jkI7};4r9rmc^Zh
      zsk<(BWt15fCp!>vr#fbB8N>5h>)CXD^=Vb4gO^(ubP5|Z-Z-5Eot&65$uw<!3<@NY
      z8L0FQG`BEEnhyPAB$d(y=1b)-$bF(;91C>Mk%aaJl6H)=c7jFHEd|~rm+41wA<La>
      zw!2q0g)*RB$LbaDJ)d{i*9+dy$bH2c!$*n<c#~v<*7x~T@g|mlPq0ihf`y5>(k*Ja
      zf%$;p18Jj}<A20_1TDmTL3xV|Qs0q(b%7^8Zy>&pAf~3W6dI9b9Gi5<P(YDn(329j
      J=oQT3=^rT9_Ba3l
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVT~`}b6x}xg0%1x%3RDVOth5AZrTA@wXibZzrC`g41+{gO3@|ukFf(D*KjAO&
      zLD#Yiv1_$H_o4s5Kj8A&Czs1}?w!melZ@!{A(?ycIdk?o`|Nw>*<U|D0Wb$EftbL>
      zJ^fIht-Gc*Td*z5D7&UzbtcxU`*y|LHuaKaESZj*K$pO!lYN623G@gI1aEK@fwW`P
      zOx@ZrY7XJ77q1J5n*yf_1nTNlcSE=8M)#ko3v-Wt|28eqWvSPeS_9<;`c}=Is_xcn
      zhQLtBJioS<Um%~Jd9!M|3j(KeA&>mjhQLVpbbdy@$hNM6T``h~V@N|9!y)IOObXNo
      zffqDrI3<u;GONaNeZOSX)|fki?2=ukf^{mJ_TFKayK6cE&G<pccJ`?hVF?VkhWh59
      z5$<wRb^jEn!OL)yKljC}TOh7iDuk0ODhEri?#!-~_DB_yutcs%1Wj!ua6w>FwnVzD
      zSDpI7fn9Tr%F2OJ(^*3|9+r&*UL-MrNhUEz@pH^=w^^+i52>ai{cNTv2<4%XD<M$_
      zDWPi?)qb{-Q%I`$sV#x=2xFt4<RZ$<U!bCZCPEqOXz*F-F}|+r7WHe$Ygh{}Tm9(9
      z+Zx`$o0RpAK`I~06{kAY)I;Y~7QZmB;T^my(7UTUyR0=yPLWL?Xm}4K+JvNOWjg{_
      z`d-&?4Ic{hTe{;GnbwtUj`5L(8+@+u{VBTK6T8MNdU;6}x%CYjv2ZTZsC1LSlEAB-
      zC~Q}3BP{2#tl?u6lemRXSO#|lMw^A-k_F3S)Mu|#melL08dRDLxz3PxNj^1W-#%n+
      z9q!9yLnkc_?9{0~rF5ymgi|kZk^+OdVjDOSH`3ua$mPC<Eqs>5mnbEmQ!_g<sG$tH
      zdg*#-@Cuv{la&wGPbu_m*X(`Sf6|R>d#mKCU9XjmMUw|nI*`00yGZINR;xy>K-zH(
      zl6N{h^#$(FuU&2DXQAVLX;ndhrl@Fog~?Qh7^m48r(ZW>IEw^&Y28Pkrx=nX6&k6u
      zACUVLtwCoQvZ<3SPSZ)5_Az?)PtP1-aC+tu&ip{zI7aAyfS$-aL3idUl9^u!0vJ~A
      z7{wUv=taCJVP0yno%3y+qQJ{I?*qRgflIWf=;(cniOnNid`fGD+C%=xJeO$W%Ew3R
      z#T2I5PNmM^62%B`d&x`Tvh6b2=)Pgr$G!5eaDP1!cMh*b;?Ci9iA&Rr(3#*nv{wZG
      zh%+<Ccq@kQLZ$u|K`a+2WPzG2x!)^L@a&_Ys*hLOVMdRUkKy|e%pVajic#h<3`29&
      zt74I!%zAQ~syN2`B3wi^E~BdmNv~f)Og`b>2%fiI%rG;BHfFMe5h+JALt{H4{9=3f
      ziT@m)Cb3WaO-cN1QYbT%d5l||ik;g6M_38bpS{vVP^OI_K2ZeG<n<v|CB!{+NeN{e
      z5Y*qbSSO4^Q$bk|1IT)pCTIuS6xv3cl9maJ1sicOvv->?_{ym<(72cZM&mjPe2RO1
      zMVqps6E1(YBr*Q)<)`n4kNdgAeL&6Pp_Af9jgB4Ti#UG5gK(=3o8VJ^i76P~>`7sp
      hR%-Sr#j_U^8pjU($FK{No=H-MpfA@Rt<+`x>Th0pP1*ne
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO-~b16g{`4ACy6G<Vz7nMQMvtQ1OFSHbjypjhIk~x*IxA7&6Q>GgE^9NR10k
      zRH7!japlUrf51QB)_C7cKL%)HS+sB7JNKS*-@WJk`1|=QfO$MfAVQek(e|`l%`?p0
      zvTd58;u*H(POV$Jwr)H(v`tf#4A(1q!qGh2NuY<2{eMm?K28{E#fP~F5z`=ymD<C3
      zLhqWfWocf`5rl~jVTE!zzr?Zef?*ln5@9^uAu^xYAWU{b10EUDvux`kg(wCU^x-sN
      zG@R488MF0*a7IA_Ny0$Mu*9R<?xt|cvS|dhWLGqELv#El)(?BUZNnwZg-YzE?R>wH
      z!*nmIqE5MRLas)`qMEJ~hU<4THES!ky1By!@cR@`b6+zX30xpd`vdYL)-AVIt=f(!
      z^wp}g1iR(oennK}M+y^|ls&sdh^A#L$(DU+rPl=*W_Ci~w&p%|#GYZ-xG9|StPe4y
      z6<ozNp1vjay`rUyeIF}I?7D&svV>%{nKqQpv{Q(sGpr$V<`vw)ETO-V<8w;nwt}0I
      zE$Rx7kXo~APDQL3a(aWIvG{L<pcE}jILoHyy24Fhk(<|YZYZ2B-Rb!d^g?;@c)3em
      z%&=j+V1A*5@S6%i%&{}0{EP8Vl?LUtmtTDZDc*rcr0{oe(vMSoQsI3>BH5V(3}k0M
      zKz+yCD2Dj|6t7TUBBs7VN_~xCJ{t+bc^&1Qqzq)n4q<1TSc*#^oWpoi_`EOtq%NHN
      zf{CXGxcH4T0@XOjL;V<1OE%S#xQr`|x6~vSs7Y+fS7RITDzCTV?}1eIJ=9N_CcHVK
      z^WE1`IF6(0I+DG0BH2mWuRZ6?an7Gza<V;}UCFhpcaHG(NWH(h<Yt4nulLsRdVhDx
      jxp3ks{_&Xu&zx+EQQYC1M{pPScnw^1A9;3CVBf+&0QXsh
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cOH&g;5dJ0s5|ULS0mKK23YY}t;ah_E;Gq;KWdSMiw!jE$t-Eovq2y0k>fN&!
      z4_c*CXsLJ4{vONjePt8YDh?iYXQsR7`+C0anO}dt{s1tF*#u$&3s2Q8b+~G4`tYQw
      z>vGN3Orz4bY&<j9wI`aos>}Ooxo$me*w*%<wCju%<k%Bv63959x@v3;FRVT#%mi8l
      zvNbA(bixIM6zH6fa1{kw7qtyTwW}7z^hCvsFU=K~O2r9^Z5h`L&7KhG&P7EQ^Cf}a
      zNLK*DAx)F!x=bOCjDj={3B+^xQY$EX1qmbt+U7MwKBzuhmDUogBhWr?uBm!SwH&oP
      zW0Sq9RRkV}a``X%(n-7O`L@f_<J9&?=AU;cTx7qfkxsw3zLVva&#S6VC+zez4OP3C
      zf1E}$dK4VRF{-f18a1{AV{Ax!PHqcy<nmGe=3JiY%TRp^dT~l1NjplaUM1DpS#q2?
      z1^te5Q>|=r`JAH7^1gEl@+i>0O0aJrD&HvfWRCEeBY{zYv$gz}jY_p#HZ5DOFO;RF
      z@{O5(u_ntrNnr#T%5KZeGEV!6-ZmF)OEWeakLp^B+;7(uT*egvEwV?8`zvkTmGnzm
      zXY@-+_aQ}HUF0rT1X7D;)moD?8aH$%)Tu*!ZUJT1Fr+o9tCfnZBydZhzjkFq;f-7g
      z+@ThU45h0SZa_*bfoXxU$lylYy0w2$Qa6nF53{d;z{>dC*xt&QB5V_T!$JiiME5ld
      z?gupiH6eY?^tJQDL1QaDyD_9_9%Iqz?^+JvAbD149iuT-*g;!i@H5&!(khM)`X8hb
      z*;i=FzD8^I4LZrz<wnzZm{zpUW9hE*9SM9~ZNV3k{>=B#<4YGlp?z={$76U;W|y#q
      zf{=Y1B1#8DX`H}G@-vabaden2FcCelI7P7Tu}(WQGi2qM6w~bDjKBw4g<0M?EG|;Y
      zW2s@Y#l@yO9$*hdVV~WL{c)ez^hi*aEK5VagJO>=-}i}m9z#LC!w&W%Px9n9jI8Y7
      z!p{aJeueZ-26`uPG0@vBI{VzhvhR|kFufh#38tJikYvTb;A*4ZzeD-^EH%A7><m}+
      zx`#MGc~b+Tr7*aIF>cG4)0S?Rymaumb>kR!d^a#b<561Q#BEGcYfjN@hAe_+cWHDx
      G<lbM!r`m%6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dU2hvj6g}gwb&OLd_9khAO+snH#tw1Q-~h2}2yP2*oCM<3sPME&w`Hr%x>~Q1
      z!ZYF*@Q!#uJOUCBK}FOj9{3yZ0^&Ec+?n;-6Kg|LiA46y+_`hlIrrWf|Ni)wV*tz8
      zQ4nHSyRUzu7rU-$6>DwFGWK1wZFer+vJcvK%)6$(XBnINgA?oPw(A@=4Oc;gVeaYY
      zg=>sK6|QEx*fbndx6Ds@aE7stShftOL(sSC*BIDMhS3`FaCO^l=~mZ>9^mfRU&jCb
      zks($wZPTqXq_xHXoIuJ8EryY%dC%6}u0xTRha4)BKNls0RCYJYyRCAS{`vVxt$oKx
      zAdGYpNsKb28m4V*br1FoXV)W~ZnXDxtEH0&63{b7+>gx;gADPk`7D!g3Xzgna#akI
      zCjk#1_@E8R^*_*jiA!=-{VMvKgtH`tBV<`iP`Vi6rfWF5+jfYfwjiCZ_v{q36u9xU
      z*a~JDrUvDe)s;rTa50IOaEUUu&+`-HSbh%k&=kDvcivEwCy_-iff?j^r3(yAxm{#H
      zIc=w1hO)$=ubwxQ;<ncvM?YjZuPuBedG%9DNt!)nt6v=6k(ZNL#4^J~-`Udbd&TX&
      z`*dr|3RWl+!2k+M3_J4Pv&uX101$K0J%srh!*)>e&-Q`@MonN9Z}5_=F_>~m1__h0
      z`2Psug*tc8leJ@Xx|T~1jnkVjllrVq_d}CYIG}TCS*yVZ`c(}+*x%+wf14M*#-RD3
      z<eK~EWgA0O=lzzTOLBuBeuW{?Y<Hb~<Ay2TTPbBrymk!9x@{Xy&C)v^qoZKsOwT&$
      zSFlO#7+8OL$A+#AT|?R8zdu7}iYj&(KCf)7d4-ncwE}F_GxWn5-ZL-C(C<?jmno59
      z`b6n74Fz!;N9Y$cgap~Ze<f&sPFPYHqwzyphiHuD3r86Lo@QZW=sUr!nLiNC{0WuT
      zlb#nQXvY6yn8JCAe&NL4bbs%8+GG6HqH`YJ3j%Ko5wZj6hnTsY&;NiIf5sfc5f;89
      ztA`!q9+|%cZqoDa;c~Qrg`+XvHGPaFf$=S|i_l&ve}v*ATxqaJcy+Vz8|DhfzhZSW
      zT>S>>V(uYUZx?b`*b!cDeimlA!tqy6{#hK*nCGd>JVre81fwd$xEjHv8pf0wMOKX=
      zPveRj7c}!8V2@^;D3!57<VK;Pf)WwDKn1yqDoGrOD3QM};?2H@w}gl<NJN-KXuL4%
      z9}xSQ@Kxen$O_)s9`6v#3f_eQ?~7D+s42wMaU|3<Qfh{{tHe2j9IfZo3Bh^Ri{CG)
      zhHHXzvd5Hj_S3C-Ovl#wvrf8r>&(%}OBv1ogzFqWBsxb_k2ZMM@XiY39Wi?sbsDE>
      YeG?6AQHL>_ZIfk{X7ADH^~wAH0?cTV$^ZZW
      
      literal 0
      HcmV?d00001
      
      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
      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
      R?$f(=mcG8FH%{gB-Tzd_y3YUr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OKuZE5PjuuVmZWdK9CRyp9tk6;egn{SeB4cM36-!;&=h8_P9wpYWJY&nMk=s
      zSa1+lkyvm5&cL2qAgVn9w^=|&>Zz*k*H!OT*SDWvz5;lJ`(@+^k59y@XrzhKjdrB9
      z3=<U@yMAbf(LlXdqOau}VFuCgc^FD-JIW?y6bKLge=oz92uowEpNmklGFC$OWNf+W
      z;ob`Zy&}xCnL;8=(i1wB#qSqCKCQjn-6xcq%BZA8nBVA(bGkagW{)s^ppJ}4(pVCf
      z|3);oyWOBQ!WG)lKvs}Py^1Pk2(uk!<m+_UmvPrACe%Ao$ixKG<M?v3kQ^&Zc;eN*
      zYR>{zrdhCebwrz+Gg;~E!|!TOJ?vG>G)Ed;(#iH*iYHVKqBIWWu5u!4UfPH50-?HR
      zjEvh_SSxKAcL<B)Odg!D`mYfoylZx!WhAsPM~(gd36ECL@_2dKCdSS6CDY-7{kaLS
      z1LD^s6nU+nj48I$Jk&W<*n@ji_OFe0W>I7Nmg5}T($@9`=03BR$2|WlZnu7pV*Mi)
      tI9|$7SY*$AC0xf1&bd5sw({rfCZFZ8%5e_2aGR}TKv=_FW|lFy_Y2Cd?|}dS
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|yKWOf6g}hD#`XrAV230S2#^rJhzU?(%Z*VaqbLaZQADB`J3~CtW*7E>M3+B6
      zqU9H8kdRO)_y9V-0BU+##GSRtu44;|oyWar&bjx@?APC)zW~_A0}T;|jU)bwS3Or6
      z)uv?_V&F>4bk@7(v2`GyOWrp`Teuox43+;w0}2fZhWX$GkuYQ(VM}iGgzb<@xAlmD
      zJtkO_BwcR0J#Kg+ezN-Z+naYMU4}$mn$m4BEEIMpsA|O?L$WOoP40TOU|2c_sFypP
      zTEmCMn%03xA&LbZIxaCRhp|D$J~*>0O|j=4_l4b2y_58=HK39?6;AtcFy;=W!>}2u
      zDj=G2uSRVWIuk;Z9TZ)h<bM6)FMlNj{ReT~Z;~M&f)n$&dGb%Z^teIN`EknzHxH{%
      z`bTulwc>sf3~M@W;3gF~P~`+B2dcF+)^S_I219OEUdJk~5rL(=@&RELhPfekhUyL&
      zqJ?5hu~l>wQDR87Ezcf^9jT1Y29nN};$hHRrYY>E!5v398n&sCSrsU6&plX%XZ6m*
      z>2ew~Tb#VHppKEhp(Dy%-*c>ycTxJ{^sPX{9L-7kuOd)S4fN9HX??+uWRRtKpY{=&
      z6Q%MeT>L<*C~`EWR5bS;@!SvOX}>r^(R`V9gvSz=eU)(T%31Cz<(Rqy8kNq|u}-@5
      z5!cJ7xD~;B3XjAR1VZj-NGN?Kl*T3slwTpVu5eH}CB)Qq(WvNmXjZwDqCZ8MO|k#-
      h*+&eiF?+zNB8oGLJ2XbHg{ornS?}T=twyHZ{{sNK6m0+i
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOH<QO6#i~XDU={sDEI;a0sEj-MO0|5k0K6&x&S)k%1KLrFloXhDGooth5tkM
      zI-|p&Gp-%CF8nu+=ib0=kTBo^l6%iN-}%1tNPqtM`W?VcJdHtN$ZlynTE5{KX1;8j
      zre5<5+j2)&t-8HttQ%U@)R%3?)7PGB+cC5-jGZ1JTw57>nywOqq1)9RLo+M7<5H^C
      zg*gWHjG?nkc|FbYDw^5Qqi=ttQ@=j^jx#83ogujtf>mH>Up6)@&1*P1!$6o%ab>Zv
      zQYn<kx3y?khF4;^kP7oGq$>==p(YNJ6)4=NrEIV1aYT?*(TzTaL@<cN6H+@UjS3Z=
      z3|&ixrN3y@tGcto>q!Aic8w~aQ61=faM|K*8ZJXF!0ptIkgC3;Si9SYc+>v_6e!bR
      zAWpWeSpkN4&8}~2j^^18uVp&mUzQePHh6-mn4@x*3LS`IRK*a68QRtj$MqKVU54Jn
      zC{wdG@-M4fG?D}sO{FP{$D~z^VVohhscU>H8PW&!4@Lx8Nfm@Mk|LN;qbvbWGN~ei
      zY@E7ygE#p+5%6rmFX77#=3<BtC^0fMA%X+kQE{8IY;_w|L9!4+@;Fo|GlCxDw9mx6
      zpyDp>5t((zt_#L7Pcuy7z-c{DaUWUg;j-OuYWlpv$FVywXOn!-7}N#J(w#C1a&<Qb
      z+R<cl0R!%IANr|a*eNc~9@ke1xhowRpzv=H(U<)RxXaE;Bh3@FgZ`pWa0xNA(R(|6
      z@D#+6;0sCTbK=}ZR`BMM&A&;Yhi+<gR_NK0$?l;yll_AJPjrmnBK<!{Pb71QCMOY3
      z<|zfx=ey%FuF#1B57G=Au?<SwRieQ7;LF4#BJsSq2jZE}=-<aRhL05E=WQh$k~1Qo
      z%HK(jpO0s0-ta6mE*O{C*Tb+=$Fb+mh)sJTu_pv}6)mCyiEm)9IQQ&6atij4|Cj&k
      zK)n*OUJ3d&x<#y;_2M?aUfecCHpbUU<_*;}eO%Ml88y+yNbDJ*=?x7Kbs9ZV)5Jbz
      zBVnT6i6le5yA;)fq7X$8LY^YzHNAX!+>6Wey{3o+;|nUuoLt~iXo26KP+*@+c!7Ne
      Y5j-Ro3LfDxJ^7c9p^PW==I_S*Uv0*$<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+fEZv6kVrRDZ|B<7Dc&;puGT9yh1Bp3M3e!4=p4nzD&yjhD>M3%v9r7`08h9
      zq9I7)2lxr<voD&M_yNX!=Fn*?L%@eJbI#s-?X~u0`26SNCji&697TX3x1+vL^9@JS
      z^CeT)dCk#G!=6|(>gI;Fsi{?+mrcvz8)fc95n`A;MSyUPFeF;89tK0d%`HvU*STd=
      zs<o9x2KJbtr$l)j)o|8Ty}`o=Zzf*<`1vcy5U_2A<f;!=fuXCcZ5gW5usFkzpHHz;
      zDJ+m<q^KF1v%qjJ?dMj=tTPPznk0g-hf3xKk0FSpf_|hJ;vE6pA(Spq3Iz&!82VN<
      zgFk81tK6!HLQ=r0StIEx6@bo%mmz0cBZ<>(yiRNdDN1!>z1nT!&HfKivp%t!S>IJH
      z)iEtmqf7@z(?VHCjxiOd-9mRGjLQl}F~$(y)GXU!7-)v*s<D-STHT=`BcyOTLm?s{
      ztzZI^4AE__iaBG*92T}cqMedAPJ}a>CKz9%)Fv`aE65-lqu%62>(0{PIOdYh>)fDh
      zaVfSv8AFgzspYzAI|AXBf*XQk#BNkwiUl8vM{#_45$?DkeKPNP1-EgBp?lLZ>mJ{z
      zqiQ;l5WE%?6p>|!mCc4#<I9>Dv;MaEnGuV_psW}Mw@M_(=5`b%TB+7XwYk&1@9r}^
      zFIMJ{3S8(Ilw&?1+>xzl^YuC?Ef}NT1nCz>07Ho4483>JcPfAw{b-%&-0PnE$O_R!
      zx|cU`B<Q9_=Kwvsv$;JCWOE-d_>PW2oTtCN^hELt!pX0QCBIP$ASK;#0T<~+frn{^
      zJ8UDKt&b?sxDnN6;!AGgW%nM4W#40PAL9&fDMsdvkPXT2Zazi4lN^~(WNF=qEKF>H
      zhkeBl`|45b->1Z;`S-AME_M|mw*v74uxEmMZXZ(t>|y2~{;A%!dd0nZ#c_@PjnHS4
      zxXW4!o2-|x&616Yt?}~uYPxwuQ)=jxnrJsX?7Oa}moz}sX(T*NQ~Q_;`iYuzlZ;7s
      zPgDX0R}?|G@&c~BmY0+#yo5aIHA^IzSVND@@ddu;Tj26B1(sa=3oID~ai3TO@Bk0#
      QDZX$FkFZE@ayOR#0(8)t2><{9
      
      literal 0
      HcmV?d00001
      
      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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	$@AE5T%z`IeTD5W=A>&lONU4rD*E#>fY`+`Y~mM
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh20r#Ii*F(vr*^edqk#g2bZ4lKdie1{OvJ0kBL?VqUtw
      ze^ORzatR{?doox_DkFosh7Y>5HKvHBCnE!AaAta5Vo7NcP#330NQgBMfyCKT3riDo
      ziWwP1u^6Qp#mK-FoL^d$oa&aD1JucnaGV~<VnzlHn-D8Z8|^TK*ccfY8JK}yW?*0f
      cdW)5T4ajE)@fbLOd`<=~Fq<1p@<3&H0TJ3t&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&&r1S96vw}#tH!EnnpQ%Gpo2dkiH?RBD=4fe%R`;Ub+U<dHg;#Nf2)%a)HMkD
      zm!dbT6m+S>yf<&=GvDvL_x}0(3Sb+R6k-guJ3isfP)oPj@stz#zEJwu8_FB$a4kKx
      z|LBN&vq`~Xs6@ES)u?$MDlNz2`<@{m2w!ryFZ_V`%fmeecEpe+;Xrex``ish;$yuu
      zn7lo_FeG=SlDf?huh#kuR>vC(8*waVU?a_t>q;d~!tp@(7kuCfhC<hK$bgd#)$>D3
      z-^zfY(fxNTErwEchDWXRv@g}DRqGq~l5sE6?}kEi=^E3YrspJs-Sa}<5eL$IYx9rM
      zZ5aV<fI6ko(-e_Fl5&cw7#3)eAkq{wbh1O4QBKsS$Ua3#j-pK%a0&}&$kQ$}gRq1G
      qRYssl(FnAOG;Ffom}2?2!WEfcM+)T`HCG@WWvq|}!z#UwVeJdq(0y9~
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ=%TC)+5S>c`PC_9(5*|$peb8d}LDVfpSwSTvB!s9~urtn(I(6)DZL{Fhy66Y+
      zQK-k)PDm$+MRe~uGbd+e?)d)U&tD??Mtc^`D603}TeqDie$YPTo0KgoD_SyS;D){S
      z=~bV-#G<+XQqNLOSy9F9c7OOfP82om6Dj)cTqvrZ`@PUjQjPRE`{$7%E$B|%Oje7o
      zuUS9$AD1H?E>)AAE9W&2qFXMc4cnRaS2Sxou!K#XoGYutC<qE&CA;TzrN>FZTDXpK
      znSYOSanI@Ig!!rGrCM|7p~J?b&m>(!zbM93k9P7TMdi#~k;MTIIK(u{LpWqd8vjyM
      z8b(9R*o(r%^}`r^?BBtpWIM;;{e-ofL|W0>sCn~@#|4kJTTccKFp>_UD_xE~4!eHX
      z8)-19^C;CG#u~t>W>#V^dss!CgQNZF8F!|soH4bSJ<0vBKqwu*S!`bmOJ-38s0uVg
      zHQ;%HU(muhzKD2T;3Zlf$5#+v6}TaAQ{Xj$*9G1XcvIk)s3-eaTE+QF)c0E8Eur5Q
      t_>I7C1%4;y^IpWaiaK_R^8<Y}_3e^9o|A)mKTTrH{<C?3FU3oI{RgTn#nAu&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4$xgyh6g`iYK|oO)alkPKTu9s*Y1jxP2BHfH3wIBE!KWQaX-V*}T$#A=1N<oC
      zZ9zq;#?2kio$u@0^9z6z97GXfSi0i_UT__$7s|5ZNXz8*Fbb7n-uLL->=v%tccSAk
      zL^Nqir^KM-@+}7S+`18QD40nij0i)jE=_Ui8f{@Wd0Q6@>AKb7dW+lA)5k{Dxs`o}
      zm3mO^qUZP)H0*r@W&<O%X06z46-yKu6S^>j=}`7eE<b^;n64pg?#)NAnTG6|+;MH{
      zF#8)$8|PHIf<`~gjj~Pbqc|=wX<}Fn0#Yi5sO(pao-_2<cTMZN7ei|Fj|OV~P)g6G
      z22KO={<Eb-ZnUAi-$uk1hBctc)xLZnMz_3Rh&L?P?ue@Nu9o_Gg=6nV44PIuo37Rh
      zu$87^>Mp1ZJsl7uiC%?hl(Y(QMm&7<gxDhq3gSfL2oWtqMHLB>k|PlDS<>ddSyJ$S
      y6$^w(lP82l`rRcgf9flwuVT%|WhQXzWZ%H%CvJ=M?2ou@?D#o%eY!WUu>TIVO2o_n
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2hUm5IsYoAc9n+Us!PqYWdI-pKCO+l}M$HNtL9Jx62i;x!onZcN>3}CR!4k
      z=%a~0$~bpHnn)90c4zL)oO9;m*Y9uN0X)XTG!lfZ58_O;BcpVCFB)m(3L`sya4Jkk
      zi(&ZUqbo;7`Cb}Hf^(VN)mjdPo}|vQ2uq<1l+b+{gk1HuyGNjXLVnlxLL)rW7dnzD
      z765Xd)d;C~mWEL5#n@VS!}gI0lsDWVEIv`5GEWK1_4#n4Pe|_i1DVDWVfEkg=aJF_
      z8Dvl-tj}6=ES)nFVJHWV@|-LRDCLkt-dZa;tYVFM#b_kG0pZbAymL~fR67=;oWpHw
      z5HiM}v_UA<8*?R`yMR&}cL|kC<%f~huYKhi8O%nS!6t9XMq=%ub7m*_w*})nuAOWU
      zxyBE+v#6kS4TO6+WO1EP=qXPgMyDq-cq2}<w1f6t-jCodu|IuGn)iyAFxC10YvA2v
      zhH`QugzS+Y1+MHUi(j41`l>V9w#{Ob6)x}zBv3{Qi|nOiFT*b^JGRL#g(ElE8zIRN
      zpx(Sd;kbBnj9aa9ET3b2j61EL$X}pxTy(~${%E$oqV_pPxX<4*qXREdLKkaz#pBsW
      z6+LX>01r5_GQnlP&K@(w{Cu-$U}MVO=09;P)%=3mCpHqW&{j6kk706?geeT68E3Wr
      E0O9V_m;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo&q~8U5XQerlSb0i)~X<ah&T0M5RZxn`v;Yv(Au25Y~!M<$!<wDqHp1=coIDL
      z06vsBE#gVM%*;3Y<C~fN{CfWYu#Z(A4q@Y7Jc_8YDvSF0)IN`_NFVx7shnD6v=5iC
      zK1VX4Z=+$Qt;*%^JE2|5LWwMqMalg5tVf`8LbGdhX@$0l$SUa#Ud-_HdVEQ!A1STu
      zF`>4-lMvjlxsd^CSPT)ML1@KF%Zn<X$l^*&GD+yfCglNw$FTlsy7o?$gw6Qh^$!Wb
      z$W%ot2Wn=u_Q#2PGY4#eH{x&MYvG~J*=OZofh#sagJZ~@gSiI0-8VE}=SYiVz$kD6
      V7d^DO3K?SvOXzSWEOT_Q@(q6GSjhkY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~8B16g|^!+wHpAf`TY0eiWodC?ASQ35g+?G=e@rNc3&GOki-?HM>(1{7pP)
      zf|zLHqcO%8e~3Q#;+yf#cGIq<rfFy9&b?>OIrqZXKOa5;m_;pz6vM@Re#om$CEe<p
      z*F4zZuS&By7z_iQi${%61>8}aLNR33o(xMfRJq>Ch)Zj9y(~ScRu~2+dfb<{8H`nb
      zN94h9&PE1V3u&CUk;4Us^n^|*tV>TkZ5}j4u*Dm$VCY}>9qw-PK<aZGG&B+7dG?vo
      zED<q6`I<@zvYy8vhH|*f(07KijVriHTpS+kNRPWx9Wk&vgDI5=xbg!nrJQ)A9>?j8
      z{HEOXxM~LU&~VSB<*g^R6>|DUPp9WBjN+CSf16>bhhd~dJCbo+!2^qAjN2$_r%cE9
      z6qlYhAg*({w_API*cXnfm0wt7aK*+QOpqL3TNp`CCQ-8jao`^c4P3P`1?uW}FSK5@
      zCU+bWMw3wa5A%d+odK~n{bt~Z$5J=ej^ops93AVPCxTU%hoK;4BME@S47NO_Ia%`@
      z*AJz)yCKw`zhmPemPph~aTHBz-#;CpPz^KWN}8sh6^nZIXqSt=CdKo#TSSUJfK{1%
      zM?ddjzok<O1s#iSs2TWzBAsoj(a}Ei(@Ootr5I(7R()qyPGFs2;F$I;jBFJDmZ&$|
      z^}`sUtZPy3^@z<pan(5aj~IPUWNyCc0{Wf+%C~`NK&VX1S)jE|<P>AwVt$bPp9zc(
      z8Je3IV~I#<OR|;8Q<S@<{EDgvTNyC}%Ect^MsH8GaaLoTf;NSqravQN9H+Yhe<uJ7
      zZNNecuxQf%E$yxrHx@krWHey6Gp!bB-UjCBH-&q+PisHzv?F>q8m}$O7w~}22K^~4
      F{sp6q^#}j}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OHUI~7(KV0c4!%(6k73#O3`*upjGh!f>=R;f(wvD-8i(9GNjCqnJIydKgPtk
      zVWEbiabaA$GrDl2apB`%sNcOE+8Sz_-uvDAz0NuJoA<xpyakZPybK>h*P6De4V7J^
      zG&E(F*XOm3L`H_h5D|`&W)_F;uB_>KS4NN_S`VLbbz5^Sn<0?5%BIV}X2>?og1*HN
      zbXN^0k!FbH>M8pj(xVhGW|)RM&d`%=8j)INkg`@m4}ria2%|L&KcWg0bTRmosb%ho
      zDUi{^twRbzXkqBc8K%BaUSHAeC2ggo6X=|k*GkKpZSb>qDRF?!;bjP(ys9}1`WCUG
      zP7lK9#VHvlo9dNTa2kCKEm}UWJ5FMlLH!S>gG@(5=*L+ZXBavU2&Ev&8MWp$yI`1F
      z$#Azx6jQ*8CR5dF;)%GjggUfn6iv-7+r&DMOfAic@`DP7K&S!^Jr{Yp9yVlFA6LX>
      z6kNbXs-mxNxZ8^*i`Yk-hmI(?j4M2p8fQzILsE7&go>-tFs@-t1_A4+Pm^#dxDI;z
      zNKtn=^sHq%u4cOYL6WH^@MPSe28|AnanRP+txY1;{f{0Vt1!*QEd?p44B<tqZ0Gf9
      zgO7y5(`ncTIW9WRn5J$EWIACOXkg-1s@{n2WPk9-NZxVIZOY7-EXOd5^SZlg6%@=N
      zN8@1BK9Kl6wtw<RF--9M^bgPqKF73zPcaaQ@QJ5Wfc^^FD5{;TS@`G&bgKgubf~Y;
      zsroB)@>LLjLH9oN&>DqAE3f;3s(qx)PdH3B3f)mIj^L>9AH#94?gV9WUrgPlYP;xo
      zjT5^_JV8L(@$ZnMS~w_zJ~tGL)ryhG6g41X&k3-P1vwz6-lwY4BMy|TIJe@@&{jXx
      zI-Vyho_UG%(?8#9mzVZ%^&KXJ>v;`JyAbUQ$@CQ?_|||aSHm=kE|1_n4@;j{m2f1a
      zLIsIh7txwJFV=Oew)lYve$prYtD!|-wMAr-X6vTcqMvrIVL;tOwvMx^857C;=_E`E
      c4%4_zdz3WmrJY+mneSB%?_h>b5_xC;0!J7!fB*mh
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%Yikoh6g`t{vX8DdjkZQxjoQ>EsWz<<5mE{gDg@GgX$kmovKiWu?XK*jpufov
      z3ROYDAK;G??`)Q2O(J1)XYS+NbI;u0e}4P|u#bHmIfh&B_!V!(k#t)}UVM4X-`CnY
      zG=`07;Po(!0`5dz-*tr(N#A2AMi(-y?GZqKnwTPVD10D2867gL)fdDY0|u?@kAw+^
      zB^w14E#z^-hK`#I`MOG2?n_Uc#Fs-6objP67|MO$;qHJ3Qr%Ohrid`C&bO(xiHH`;
      zk5o#KJrirF=(xkMGDq3QUECus4i84s<F1T8Ft8qjAtMp+$Pd&gjZBkX>Zcy&sXX_1
      z6bIC3ePPnU*`RaS(eZGh;4dsx@mLMN$xvA!7)_!SDLAg+fkk6Hu~Ab>8QgJ1n7l*t
      zKXn<()90~H{Wx&M8>wWqQ~$0~g|0o%6G7MIVJJx0%?!Z&B8&&4$2#&H*AJz4ek`I3
      ze`KQtT8`oscVmT8`A3%NB6YAwE0Cv!WTleY13DGx(_xU`q|+<p=m%KMov-xw9rhQx
      z<*=-LNrZ%9Ih5#bQ;qVjpiGvu#_bg4Iaw7mn%A(dvHFS5V~nEmvtp*+nAERhgR<@?
      zxepRHZQ`nM%%7;fB{Gjb&j2lDfXoRHJr<RzabA+05c!6!nPJ#AbXLz`q-074woy+p
      qwo;6O8fKQjSP7+=hDJiJi5;?KnnX2Lr)p})lRd>Vx@)vnyMF;WF3So4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fEZv6kVsCGPDeBX=y>caI4x5O1X)bB0LaCFn|xmChCia=?M&(&XAcYf!{GP
      zzVM)iM&pAY;CJ{P>ORxb7K@q8Is3Zy+WYLEzrX(gFppIgA%^r3KjFo?Z(79-yI$Mj
      z$GIgH3PUn*Slm7+zT7_&hOeTJA=L@r@`cNN$7P5ZPTlqy*cQpAT@|Mceg2{8<>nbO
      z+ntol3X3HQSTSwWUu780UmH=VFevLzRYXB#G{i6vLl`Ly8qy5me4!#e84W7>r8J@;
      zihhQ~wrPvqdTn30dwky#M0(pXxK-h<DfO07kp!=&w?y>RL+<U0Q|gK;y@_EQlPV^z
      zo!6p<DNHl;bHfmxmz!hI|I<@%r==+F;=YP|3`0GG(vX)O4H(?5nl`sg|BQxW2egLs
      zg(h0p6A|xd**vhhUw5hRNWQRF2@1?=D1vxJJbEzlq~G@DN+Jsy7O_MqqIT?`l`V(*
      zPxXe<>$#%loDfp1?9^RDY?^Y=TI+#lWhbO=*|u=kE$(@OMm^ID)U*WKceze0M0u4O
      zNo?4L<#?ujup|6Kr>bEE&uPeJd+oB96S$IJ!W=C_nEnWzklR5g<Zb}Tq}(IY6#6v`
      zQdFFz7YNY@4C^xuB=oNs(!&kXLJed;lRbn{I#WRw;j#fl*&yO9jvHjx2!(PnhMROV
      z+`{b^?iyuEUq-(mv<oD@;m!qe?-5bX!{_8^0{6)vmg)k_w809{DQYH&eGrg64VnWs
      z_1A=|ypu#p%1SBw5rZA2UGX7F*@Z8d|M2J6KgLgO7I8T)Hi8%%#WEY~Vzb$1^9boy
      zYp+@?rdxQ#Ag5Ft$X&&!n&r*}n<d7PWD}TTlU*gITO|}M2ZSEu3Ee4beVlG7$vMiq
      NIf|!vMw&w2(qCwR_+bD5
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-%}e^6#gzr*iE{&fE25?P$O*#)IzDm+F-RJ)d;jI3^VraX1RvNWtVO?oxunH
      zkNOYz!h_D#`fH}6FFyE3IeureNw$#c>?G&jbMHClJKs6y{{7Ey&j4J<7Z!#TUf$D>
      z^n5$^{Q1?Oy}zLkrk5<_70&h#?lf9)q}_Pa#0taluGgAgpyhi1MrvB)@v;|q@oj~P
      znE~gOZH4?wxMPY?IOU*#;SzFq$$^E_3b`4%aAw^L%)R!0!$e!U;Twgq_0ZM+wvIg6
      zr^>tlA<mOwrk4mL-}1hpDP7i!n7}y;uPBV3fb8H^yhbdpj&{62`(Avgpy~>?7n?}O
      zVI-+kGC}I8o-vA>UNg{fJ7S=vftQvuhQjS?5J!j0TWhtg?b>aA7A_8~LA8V_l!cZz
      z70wNyk~s=j1=lw^Dlx&!4yJ`e+YN(Qdx21s+W9(Y&fjnB88@y~9$1)tE@ThZDO7OP
      z!CSb-GB!=TW=O?&H?6D_iMQaehh~JiG#;;u{)U6Mu|(qOLE-Ws2pvwc4kh$E4sJ?l
      zn}*xkZ<`WsVc7zCKHo1}w-;AJ-)BBv7&v$j?6+a_u&sS&ePuw%lMyQqSmsb#EAgEL
      zLsr9h*Rb%}-s;grJQL6N<KaQKColYGxd}2d`{5&IHi3^FtO`%Ic3sm-CTjKtb<Q~L
      z4_aw6Y)7uS>&bvPss5TI!)-kXOtj+bR?Co)YQ{mAKhE<1^(H5AHE{i~<ps?R6YqvQ
      z4nD)@glwdXlh<Ih+aAdaLRAe59PJ!m7&S5?^Ual&{A}urT;0SFKcF-__Y?nqhVvtL
      zLpUS4<b(xKix}bFp^a!qF-FO@#dzvvky6g=*(WGH!Pz6OJ3fX*uc{e)yJ!D8&hyrV
      z<nCmG<_58fpW^SB`jTMY_~DqNTE<ba=ZK?5GfAgP*#q(vmyRW)G%VG~_~?VVf|=CE
      z_XH)B)#m<0<vSE|M{|FmvLUHm{S|WxPci=(liB?u52^~k;N8b4<d1Tae=gy$44e6X
      z#js5j)h^!z50h$-ZobBK%3ItEw--Ah)07w-@8bgkI?Wg04n8EL72c8xbTl7Pqu8@u
      z(BGz@%P$6f_pf8v#*inr17dqfY!R`wGFZwzEae`S@e^1?Lo6dUK0%#`qzIQNr3eL~
      n=y(M?tt2g%$EW-s!Wz~o$C8A&;A%<)Wv4YZaF4q@r}X~6WO#Oq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+iufX6kVrr;wG3jO=-By3<Vk>F_%)Hg~26UN`OLIVA82ncmUV2TBFoPj)UmO
      z@Pag&7anFtEsQ`yJo6oV2e6KlI)(&A@i}K-*WPRIPhZ}B05F9m6$1jJPtE7%WGiqQ
      zlNGnMv0y$c%&1TVvZ113x@(j7R-f8dpduxZ>zdC8wr>WWFOamnmKz9&dEOnjZod#n
      z1?x_;FeNZn?Yit_m^NrI>$px(7T8zpYf)MjQ0Bb4od&^Z$Y56n3FI_r7!^nqOUqI-
      zra{G^yzSMH#-PA()p6~`*2b#sFPW<io1m+nWj2;g-;wW*P>}%p!<!*Ib=_<(+AmlY
      zGd;{;9EVjL>f5hr4M#8`Flbtq-E0=l2<Shlskc%ijiWfO;+VilPop#xWktIz)2}<O
      z*>HkQHpLBL?JbsK(IjsbH}E$JJzaCwTr+6-EPcGc)$Gz;V`<qahuKeSm;^y5n`Dzd
      zqmSBwW88;!XEmI|dB(Rlo&}q=hR5dQdQDZ#^lj4xS?NU$zvGgO!C{+gm`zeJ5{nUv
      zj0|Q`R&kkRcBe2@X}E%`oQE|#ki#_Rxy`_I14(4D)CaeU>r4<=NH->!#tk`16@g3r
      zxSBCyphB0}yS)#FoY0hSZ+Oqyv^_hGj(07?v7FaXg5I4DuEfdy8RLA)l#)}qDVdtr
      z@-6$OBWGFbXim$<@Hy|gwjZ{}W)mvCDBF^7!FM)xHYSS(CmM+|Qw~>LtKl^rcWuEA
      z*1fuhKTu;0PPFs+oqE5EY~Tz_PVk@P7jiZEg<MP^o0Ut<SBifPyJ<DV+Z_z>2kg;L
      zY-3n|ixEAs&DX#-^8ZpkfPMVtpzzDM!a!PF#*ipuKP4Jv^u+=E66$}&Z=JYT=qYt$
      z`WB;YVfcR>+(O|MlFIAEYbx4-Q_@IWj|Cfxf{{2{od|7DhG1V3ybNmTD~zf<kwAIN
      z%Uk|$?Cw6IjHh_ZpZyP0e|`P@9@8s&q`B}0#z$NW^^ve`{uXopL=f}rCd4gd#BJ_Y
      z75Bvg9`o$hZ$*%AVzg8LpCJ#xL?<+17L@un3g4$9uv)jxLy|VJf~<ImBjQmk#Y8(r
      z_8Q0eRwu<#p0XQB{S9t+@wQteLT56Y9VEwhdtAuK4=$uumL!KkK{dQBV3B8zvT>gB
      RCiBU&&B{I8=S!jX!8iMDdX4}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&YfsZq7=F$+D3l5VWC-&DIAIs=x}gj~LNGB7jY9Ul8z)fgx@B$A{VPqp5I-0{
      z`=gA{=>{92erVtG-k$gV=kL#70M@XpAtEq-W}cfXzGvAh`;K2bFdL~24Kab)u41?1
      zdQG$HDdnM6YuIw%@tQ4xe(%(BQ|kf~rLOfQOrc1FEz7aIZGp{ns6|_7o6boPz1YLQ
      zt(?iKSIm?JVte&tIS7Fv1AXY%5ydS78ioZHI=BHu$0ZzOq+~hrjbE$C=8;*krNCIJ
      zUN!Bq*|Zej5yn(W;RS85prMrM)SXtX?z^i3@t#ns?CS<=Dn!ti-s}Vt*W<Ptm$9Qq
      zuZa*nD)T?!O0R6%KJ%OpsWB4<Ja}lGIHu<}=`@fgOopH8+XDkLNC@<uD?}Z0NNIQ&
      zI{boxN0_I-S*=RfO|gi@@Y!`zxVAd^qK-7O8Zx2ac>_5tcEQ=gY#4aH7y=$tvTR^Q
      zRTBLmTN;?$aJRu~0y-Weui=Tn=#7muP{0OV8@?w{=xu5+yPF*iZF0XOKXNbv`eEH~
      zR^>}e?UK>i`ehZB>?_BS%{|+6UCC|AwXuU%{pXmrID1ZOo1-7ucdB;XwVaa!>7CY(
      z4ea0rufUO?nD}J6w>Rn}gJUdWm4lA*vPC?uu7s}$KMezv5At<JZH&~&=DtDCE-w9m
      z@r8U8BmC=uHCIHG5GOwqU>O+27&&@j9Jd1-0~1J4J4tDxBN@k?E8P@z0@FxRa+fv{
      z+zaAM%2h^575{$rEA$J@USNT*rQcZ1eaHG|s(aEA@0iZ}Af0xg<W)LJJY{fpgB}Jc
      mVJVs7D~4y}BG^Qcbeec+Qm~A<4pr8QZzs2f=j3A4ZvO+54ljcM
      
      literal 0
      HcmV?d00001
      
      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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
      Jzl-qW{{SZXwUqz>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwSyR(c7(JmWp(P3}Soh)r+LomhcUw`Ypj8%UU>Jo53GKB6OX8#{qkqLmpLx(3
      zz!@JLpZ!se=iU@r#OdTF_gl_6-_qZIe*6TG!z%+F8v3@Z9V^@L?OJxmX>2bEe=ui2
      z*U+mRHOr}H7dN&<**DOsA>Ilv`NFe&*VCXo;-jxYD`^Oq-G;;OPJh#`4~`Rmu9eXw
      z$kSc09owJOkVyT<pI#wm(XEIGsKZ1Q-BE-PH({brLnxJAk)AUq40Oq_vnC?w($F(!
      zJ7S@+y&=41YojKpcg`(awH3>=<-KXtr8wrFq#n#soUv)u7gR-LT8&@;R}Eaz5Ia$c
      ziEEO!yKH$C+p%i4|A~~TbO5Y+Cu=5VWXY~Nmf!HGDV$0#FXtuhO%o}kX{oc1N^Of`
      z+V(k&d=$eNH865G5H+d5XJQOl4N=*BhSJEkrAq0NgwC0mz%3FB3MkgBItz}q=~5=5
      z-@!ctciB3{tRyR!iTij!(yH)f2}Reb`<CO&wx!Z*Z9u_t<PEUOSi7THd8a3~-5nw8
      zm^ASiPdGq=22xk0dD=t~Pv!2^geBLBHE;v^kM*%h6Xmp@$+=%=;Y)7AD~nlM4%(D-
      z?82C=gV&Pd2v1casCoFL;J~8VdAP|1j%AW%^vpQrnp?M>>b&qb-HM3?ENbYok2XGW
      zsO?yO9^;f3;uGcxxt%;AcN6ICm3z!vn2(85j5^J)7wF&*=+6xAqbKtnu}sH4Z=ro8
      zzR})+b3EhFc}m>ZL|bL%8qU*V(#Bj|z(wW1gv(9b0yCvAp4mf!PtP8bUl7)JL%XyF
      zsGTa}Z5vYj2#FnL)S!wTQcBCzAQ5w!0PY4~{rdU=GE(mw(&+0H9XQ7iaQhb?%8-e#
      zM}((UTPhSRki@$-;@lB&0e#I9%Bq#XXdB-F9(_jgm|;rZNT1Xz`$+!Vv-gN$oBsy~
      zBlyrpI2sW4PH{>zO~N6*Wrg9)0cKmOgEna@S&mA_b5&7^!vlvJB*`HK?Rtqh6*YkQ
      EzYOaV1ONa4
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPJr06E5QX2UfPjC6-T@kkts1+v(pYF^x0;PYmL-A3cs2_U;Gv8Qu`p6hGWjO+
      z^1avl@dPl#z(I>JN%)ONrH*C9RGEsL>o`*mI)qVul3ZP)-6;`gO&DHzvCVS9q)3I*
      z1)&{;M}n`!U4J2A9E6+y-vz<l#}~zQnG1pyga>Arx6jJ_EY`6!aP(s^tpW(alFgf0
      gt0uAuM#dBaTE^XijjDr#uHkM);hFL4t@kDU59@G3CIA2c
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh5Y$#Ii*F(vr*^eb=(oyb_<x;*!+7)FO5U7DfgEuw+hR
      zUb?=2QdVkm2_pknaDHh~a;jTqPAVgV5Q-K(kZLwY21W*Epamen$iNCDnHbmr_7ENQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5Pg%RO_Rn(>qjk$;H`~d@a!ju1tF-Q^q$tGZixw`+oJzUK@mLo1N>3q
      zWLvyQ4m&%u``(*3^ZoPr1>gW}8wO!}9M9r#s$>#g%tWdpIZ+}N`AwcZJ=?Gd%Nmiy
      z=_tG&jKxsds1jNwJVGs5ND$gl3F?qgJ(8(ZC+wh8it6?W)_Ha>T$ot$;GjV;JKeqm
      z_T|Awjo?Qz6<5>8fynRTK_UpvC>zE}Kh9-QFCH!RASZ;KvSxZ<_EjH=za<d1I^8k?
      zW8K?qnh!-!7F}Ea_qSh+Z|$;KlTU?Dv+&I8H#m3Ta;$UJ<J#cc4L;xnd++dHHD-ll
      zgSo&lESxgqj1_>5IU1{2<BEA&l~`?^|K^$@-^72F;0^u@Ck6_+s(!rGGTt1pkl_h5
      GYV#L}5O{Y0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwTW=Ck5dIDY7I1r!LaBFK6}i}Ay(_)g(rT(mO{$n`d^o@nw^??ZWoe9wZ@&6J
      zeAGm#v57vK_@j(-&TcKGKJ4yXznO1l_V=IfKLE^NSwny!xyiSAq2n56VP#ub?pkeA
      z)Ljihh7sj5xz#M}S;GtoWi{-=x^N6`8gF^c6cpT6YE?LG!?vETE;FzP41*=xYP;NW
      ztK95}Q29f>wUkks;i+J5HSv<K_M`Me@!Xmf_A*dzr)TY?UEcvKu0X0mO9-VU%GY
      zldWn<GEDBnt(vB2a&ysXc3MPj<xO2|xzt?@3B;pd7}ud=kYTuNSfbKt)r9lJqZ2RN
      zb#7KUQ6zf4G3dTF+6*bLrT&>w+tH?Q*L_}zO!jc=3=!8}cOAoO(j*T=c-EqZNvg2V
      z!80#)46`8|N%*{u3rG_X)he01O%07608++c3>oA!WQp89m~!dJ<1B+l`4!%xAx@#7
      zVfw(ny{bAcV}>HP<?hyAF{J;ujUJXhhZrVsRqo|l-vWJqwi>|=V(`MdfjJp}OUG^8
      zq0RHHEnzhnrh04bB_68f4~FPYU{*rR^<{dOTkPG12ey|P!2+G?O9`;3<BS|l%-i8T
      zLmhU{Z!s-LNr7~3^n?(=acGE;9Hn0>fEeD(gCbe_hcHa<5z?NMFF@b1+zyWBf8oe3
      z5*s@h`<cssMe4K4JtqBx3EW2z4+*tQxsQ-Ug{nxOLcj@}Bu(nF619#~IPKRdC>;pp
      zz9999f&!4RVKM{H6pXIqkPpKoVL$n?Y8puIVqzoL#knpne#505T!~-r;--Y`q8Ohi
      Txr@8~==C1-^gr|^)kEnoruYNg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8BH5IxftTI*JzLh%FYA_#3)D59bX#s@1THAqZ=Dvy`#rL0+Yo87y_AK_2&
      zK@)*Q5{*wL{wU+z-3AO`q7V1(%-oqXXFm4luP<K#+{5E6QiS=pVqerF<+$|~KiCs$
      z#TA{f;d}cs2p!*h>4a>wcbDJUva8sTMTTIWMm1emc7&S*pLh`lLm4>2Z6z?9&F2Jq
      zK`1bEsD!6l!i{7fGXYJ0FZ1ILp|~33y29(!*Hz$noh5#-`7{XqPaMxtPYI>UdACNj
      zMaVS#w#=eP7(I*gEOOko400G|3QcccxK7*L;Zn^!hEOta1*3$K3y`ZV?Qz|}4cufB
      zqT7{Tn=pHk>p5P%v`aaRb4Sb_KQQf+*2bxCX<(BuR%ulK8m<}KHZX}PLQeTfYY4-Y
      z^C3%lq*2OZhEP6j!dm3IuYAW-GB_Dg4pqXmen}d^J&B~*6=5jbrt&q>Pz8~#{9rDR
      zX_PL3aMwT{m$fu!z(9d8u<CenE!x|b!G_p&rJka1^WX)KpY@(GqjsH;u#nXFAN$4|
      zQ0Pc?x{-u*rONw|V{5#ug#5Z61-4vqbb9OG_IOTr2NPULns+eGQ|LoKYgyJ($noJq
      zW0}j0J&2cNfIS9Tdyh;Uw^%#I&{py45k{;-Tq}<8#ix9Ti6h*xexPuS>8)br2(@oD
      z>i|}5>;SW$V%$34<v8Cu#<9U%TA0BmEWE}%-rym&_zRdxCjMm?SOXSgW)w@BTZ%c|
      z$AccTI)C+BU+ptyKd_L3PNYi%>=@8U9D0DniKf`1%lb3e`gkUI@5124*z3`6n1uo#
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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(
      bGB7eQ16{$uzzDR6m4OY!Vqgc7Obi?VE#fIg
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%TB^j5QhKZDhPsiL{xC4E+odK#@IA%qAAeOLZTaUzy?c7n?Nzfm9ON=#Dx#w
      zLmB5(7mbOVGv}Ls?w?=p9{^6UpGAUD9g9cNoQJO0)Pw0ngrOLCj_!%kEQ=JO9O<6$
      zN6pS)><mLf!O(R3?z(5$SNaWst_Vdn@Mod$!@lt5PLk^rA=fiat*a`QCLP=>rx>=@
      zZ7X)<;NmIM=vh)+Afzo*Q6r(u!mZZrNTJSx+G({E36~6}($(4$UI>|U*LTAULh|6S
      z&q-=<@8prhb^)8H5K4yYJMH;o;7o0~6=B5)hQjNMsVn){nF=4=8KGwUe~L3g-U{Z^
      zp`*L9&idb59m`xaz_ZA8u!S@-Oj)Kx#JL#fSznBC0TmQuyu@6JahZ8J#w*OLF<xU{
      ykMRa~PRJXu-Qo#O*%I6I(Hp9-(MUCZ^Be>`A%$n`@UQR_gk9`05$gOV(D(+SNn3pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DU2oD*7=F&mD6ozpZp?l7Jr&plG0_{yvdJK6R^XzHgm_`juws`|Olg<!KaBnj
      z-7dChT)g&28Q)VX!(=9`$>}-odEe)GKl=37?{60X3V1GKh9P~#k9pp6O)FpRJ3a2Y
      zhO_a??Cu#Iv&Sus5Br`gJTgKIaX;GPb~j(Ky&l8-UZt$ocC|NEt+Cr=$ZFH_6&YfB
      zS*_HYYE>;W%vI_KwT;%Uc2Ln7HeX+dC{pTJrfs_03{pDNVhEM{Z;c3MV_;ZNkiZRw
      za485$rAOR;8@lV5cDJZzT2YF<sbCi22xMWT6vzmR(=7!NM2Si>ZKLk>4h^Tt4=sZs
      zsr5VDYH`ODwtpFegas<WeQypZ>oK=HgAPyAnQQbE!#zBZai1Y^IdXkCaE+dVhuC0<
      za>wDrPXEJ@raswG<M7DnxJ7lM$-h_BC4=l&)Og3RJqZg2k(qw(qS3U1N60X|n4~IO
      zd@v|Z<o}m@EFWJ2eb4C_RZ|QzK2~5(G|ix>wrw~*oiUJ+qYre2ycia*5-g2KH@h}>
      zJ%_kU6Xgi$2KE%fFK!oi3M2xF{u*g#MF<3-owNZYR)sRi6QVtaIf_%rYLO+L+;^~c
      za$Y(^{1i#wSPc2b((Dg%Nhe6^?a&F9^iwQ<CBzI?=pFa7eZo9GV-+8136EGL<se6a
      zVnj`Hc60p<YnR|K1t0(^{#nMlD3%JnjXMGSB{d@8sS_->_oeJbyCf>ANo(i0yY+=U
      yqf$m}Y+OQ=KKSE+BTF$NS1if0=XmlH?Eg3kS)X$gTLM8i`X`X5K|b^E3x5DZhZ9Z!
      
      literal 0
      HcmV?d00001
      
      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
      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
      T!LUw=Z<CL6Pr>ih6HEUWQ<Yi}
      
      literal 0
      HcmV?d00001
      
      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
      zcmah^!AiqW5S&euR?^hgS}%f#;z2za#FJFKL<^PRrP_nH*L0~*Uh^b*5r4~*;K2{@
      zYy1LnTg01qncZ1tXLdin-rfNmW1|6&u=}8%R9rc2;(;yZ$~i6)V@sZ1K4<*sw9Omv
      z3ENAZQTZ$$8pAVXMou~Y6%jfm7h0Jy7o{xS4lf9FMQ9~9FP+NWSec3gi3auVJ_+?R
      zoojbasO=w&34UUy9HNHR2qBt;cB*r}uI3XiZq&pup_|%F0+hrE{~7x3UYCTu^#4ct
      zgm7f5BIAKx_-+05@zKHyJCNHJ=VB89>QWoRJgi73PG|~7GC5gtAUJ$Q>t!iv3x*;E
      XPT`}Ej&za8M1(bTr4rT!J@mc-@~>Y#
      
      literal 0
      HcmV?d00001
      
      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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
      E9~FNWaR2}S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&T~8BH5IuLhWw&+tD9ATz)q*WmN<opNKw^l-2G9oxCcfP+S6Ezj&F+>2|BQct
      z2Tc$YAN&FSCyg`PwXIOowD->3nKNh3On?6V{sTZ2s|GZIkz;u(E6vDpD=%euv?D(h
      zss?m{(ayuOMi>Rsj&@Zf&=(y!VPTOnw>uF@YK@-P9M6e11jdRz-b?!e`lf%NG7z|7
      zA&tH)Qs}o}U_c;M<bc6#$5XGGCk++s$%d;0hPQoNy8AM4*iM`}6Cs}0%M_|aL=T;h
      zluD5G48|~FU|b+~jk1LiObUp)faydkkdYrS`BE2bJ@FH2X4g6NWYi1@db(%O+TK=e
      zqn4$TcPvaHFEC!L{|7B?yGjNed*8xcR=~7<FOrVOjU@uQ(mSlYZX7E+s+Hby@B<4)
      z%#whAgSXTfwcxW*af96{G?GA__@|09A6Y14L13;IcCTE+cMn=ZW_SH&V5=7n55!6a
      zzQE<ktb3jcHeDHpikQ!IY1g$oEoErF&pq4qL&rPZQPGiqU||JMiROEC7H?SYA6>~+
      z!y>Iqindk^4e`#<jlTv=@@MF_3XMKMcE0?Te!ju_LY9U>_Qfv(Y4Hm~WLuQO-W-PM
      zq&>#X1Z9a%elzDUkiEd@Io(?ree9=yODErK=TBjpqGsaQTQQquvKc4CIH^nA{(J?<
      z=mN^LfoK6JjoVqFvrXg@_pUUf(ceYu@51PiDPT6iSSJ!JNlc=AiMgxY<YIuaR!~BM
      z!coF}T)y0fdPgy=em>D<olk;%_+}>Yd_r13PjxB`aJ)7NQ=39gn~p2xTNv$1`J|GG
      h2~;piHFTOYD_+GCo!OWLU1&}%b(is&ES>iF$sdou+!+7>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i%Wl&^6o&tCoH#ayruWj8Tbn|XRx|{J5UC0%0%0j-(<=LkJ8A|QyRye!^qE+I
      zREorc2jHO)XA+Z`rpU5q&h4B3%<-?^KYjvuf*lJ6!~92n#&=UCgWdN$865D_YRiJj
      zus#XA=_e}YzUo9lAbcgGkfEdoGO0ER(48b^gf@luWGK}>!&2><c)iD9cA{fpgW-mY
      zB1#Slxaq>eErvo(C(LwZC_bd0`XWB!{Xj6xbt9h#JswMKXHHWKVOX3#rrIJQW+Kn2
      zl#rf{C9GIjW|*Cl>|!3b8JNdVmP*82MX?rN&tbjHPgMI*o`hVbF`?J4P1-x^wfEZ&
      z9eK~iD(*8Z*S!DGihdw?taCSAJkU4b97bvEi+57D?Pk~dSgR(}3quii0-hv-8sE$*
      zoF3Fj23_Xc&<~<Sh9?I?4WeTg4Q$hx&Ulb&%E~`YOa|RXlSWjaABI&bdQP-6>9tTM
      zzfHRrFz5lC#`ZV*e24p$ECVyzH;gb8jV3B&yHumSvzVim{v9l2loqWzR&HFtxxnIQ
      z+K(6|?Khs~>dWK$Rjg6g`Y`v-P|Z`aHOJN*^AdNzTmikzf$TAeE}hDBJI`qy3%SI`
      lm1c}ru#DF^#$Pces>74E@Q_v~qktM6$$Nwv`AwQ}{SRw;s|o-B
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TTc@~6#i!0(r#UZf)oL(s0CYEDNw;nD@q8)M$iWcB>FThV_7J>xH~1m#DBzt
      zCRh_6eB{9&WjwQ8%5u|e+L?3aobP<+_WRGzUjU}D5QWCjzs>h~p()Kq;Wc-+R`_1J
      z7)6+2;Phdk>Pm;#<f@PiU2@BG(^KTRd}`slmgu=`TBe+5NM<g1&#p6s7wt`<gW;Ni
      z2)g13q1!+d*BL??Wze&1TH<YUw<?@9UTp}5zGb_{8|&OLmFz3SiU{$%7$#jLB4OA3
      zOs)i3(UHW>C<Yl47bqL(#}EUnFvLtL94>7~k<SKTE54pk^;NTOaoKbTdiGMIa==kl
      zbIFp<L3!;>X>GkUPhXtK+%YhWQHH@x<%&3wT0?M0+1@vBSJfs~vn|O@OQr0Ww!y7>
      z;azoG)MP39UKu|ykU^G=>q2^g8Ky5Y4sbl_x;i}<%97ct=3cFWF{rza*tPemdy|-o
      zqQEe6p`hswkU>M1qYmtd1I4XqAdg23<5v?p8;ntnQ~zO_JUbZ&dneN|_AkdyI~d}t
      zcGIbeSEiaX!!O39%8JB_WeI1o!ChBS+2;a~ftC1Q!)c(GtXji%O{=~l<d(f@;00b%
      zlY|-#Z>bVzMu}7<OwopfXi-^juUZqjsb3T^((8140*yW(K9T!Qe?MS+BS}M#(s?fo
      z5p4s#Bpc+Tv<dXlNvn$+KFSQ8>Mb^Lg!mB#4(Z;;=u&#^L%=`Q@gK$rS>5t%Qy!Zl
      z$qGkTIFS}^e?14p13-EQh$frdR628Xc8Iia?_4t4M?|%H0OOQQ8e=}jB9Txf=}{zd
      zEsP%{5<U!_&uPblNw!UWD&&L-<UA7j4&WEEQ9VeV0IuYZkx)YZ2oGDB+3?{*UfGk>
      zC}?}owNL2QTnuRvBig<fZnO>5377K2>C}o@%3i}`3Zxp<)~NP|@sxBLo}ol%+#^R9
      QYGS+eWjrS-OuIGz7vkqI761SM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+iuf95ItKbH3^2&3*}M@Ep4e&pb@VmM5-zfr~w`l{JwEl?H1RGe5uG^fvALp
      z1g}VZ6k=wbIH_E)wBFg{GiT<^`uCsjKLI?$wv8Eql@oa;>uI8c`fC{<zm<bc-d~1E
      zG_+9?Sf3E~dT|m-KVecwpAG_LXac2BeM$sY+Y@d<tRYb8=%Y|3X`}?U{>N>04;o#s
      z(W0E$rVe$|64-XLj6jA*_4mCK<tL3IQuC;co27GH+V3B#DlA-gP(f8-uB}7$E<Nq3
      zs4IH`b+XXz`!eukr1?AoOUbd01+0&1$PD9ay0Sp|Oa>{XFJDX_4#pBsiw?)WcJmRB
      z5prr#*ZlU_we)=za|15Bu>C;EFdYaixwT81ach)UfxrU?OIQ@BcKT`Lt5=#WI-}dz
      zWgm2W6NW0<4`dvx*v6*7eBt6~jCqp+ADRcxi*>zAu-268fBY}GXRJ}f7X6HZRvELj
      z+Z4^<ib3hVD9(_paOg{)aOT@PkDq+QwJ#J}n4>onfv+TSjvExMWi-qa!jFvwESfSl
      zkB8VdFR+$#)~%d%+i2dwT|&6{3tHT$n3Uy?fgh%%lYJbOWcdk_$*<sE?q}6V?op2M
      pzH^TIpD87Clga*?k}Vfx8DUwAyz<D_@sRea5!}EQjW8SBqrYc)&_DnH
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TT@$A6#h0lBqSUuAd=p|+Ct66l3LMTf@w>jZ6t)+M3B}856LMU2<PC*Ib3|R
      zI%@wy$5G#W=>yIXJEJr0o6h)G`~|+K-#!T@PB1e&Yp=a7d#!JM`~3db&(8t8iRBQw
      z1V-2OZ9V0=W;Jz3udU7NTVqP*T*J{_+X*2c(C_<Hb!#=Xu(EEH-4KETgRRIzZ-Icj
      zw`B;3oIuZpW$#$?c157OY<rd~AkE4yeX4qm%1FMIp#ADu%XRkBbhC_Ix&_@evo>~7
      z;N?z#dIhIU%XBjW(by68Tzrv<vUbG?L*Nw+$Iu^vL{!57j<cXxd@+oZI32<%fq{;K
      zG>o8!t!&zrtZG4Jc~wIgJu2!o4QG`(P%}UEFBsDhX_(GycpWi;(27^yFx(n}e$ZK;
      z4|Stol{ulISA`3_p&_I)AIqDTQSdfb45y^8REg|h-Y)CaMcpx#-aHH_j0Dd7&kcv;
      zAzZ`%4d<|$DK2!zPL<};rNwk+qMZ;^rBXV>M4>gkR`3Tz4DSmJ#o~<&Z8V`<xM;3g
      zy6ZVCy*n0Xa0pig;w_}JwpI2V$FN*d#e8U%b=S15+1;|Sr8W^<K{SLZcGrq2*hR0r
      zHd{3|8P?{SMpU79T|*yU3gafOhcGR0sukHmH03{|L2LNm(r_DhSn9T3^?bDb(Dt5G
      z+V?cfDL1)c?2+tr3_8Z9y={cBK!UVla@DG_s#lAy?iy`%77&e)Kle1uqbP8`N!|8q
      zjzlw3v^}S6+%gptv}P|8>N=`9%QBoS-&V~a7kumC;010@m9BNpC)0V<MuWrX#>jDz
      zNJ*}4QgcwzlV6c8^%Q(b-usdS_9X%JB?kfY_p66TJ-{`<Xuf9d9x+~0#uCXoh7!*(
      zoJbzvL>;3_o~h%UlH<?oh$l|hk^GUq5*PS?5<zZ@=$3a8mKhAl8#p1SaaP{L1ntAj
      z%)CgkYW0ix^>*>A2aa0!Cn;Q_6nG1h&3bNADqC;j0O!6%ci^dfO0{uiP?_WdKYb%b
      zZ!>)>sXA#S?ZewF;T=YI;j-WCpKM+gwZr72Ttn>iJM{j7E6dMt?S;DXiBi*4-+hr-
      zrXHv$2o8|R|A1&CWLz2Ify#Yiaw(tu_3u9vL^tZlC=9c7N(R1156@=zmGZ>j=k}BP
      z|28tMCLtf9Pp)EEu3<!)7?<lv$qh`(O<a~1<|r5B7MA2E_((da$Qn%PVoQ4P<aQgz
      zJ53NKkwu=f7Ht?STLX@H9H&Li{2QM`zznN98iwp|3Wfq<xT{bZ;>sQ%_Y>Y<N(j{>
      z5f}}8OqR6xz|Syy`iwn2Vo#s5r!Uykm+a>&T$NuVD<8KFZl+^!>O@s4QR06WKENVn
      Qgf$CtZHbI+jPk>O0M<p3PXGV_
      
      literal 0
      HcmV?d00001
      
      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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
      D->_8R
      
      literal 0
      HcmV?d00001
      
      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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
      D?hPCY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8B16g{)ueyuB?@}VI3QEN+)QdA@<Au&W_Q`CnN5`CL4ld`bvn%yZ0=!^e{
      z2Tc$XO?=eEA7#9=UCKf>rrFNSoqNuld+z=7_xn!(HLPTzF^ui<177V)+o`_d!H(o@
      zM-*yV=$EdZw*%>OOSXh$$jBW#C@fOKMgq7_39Ghi%Qc3{QesAVi$P!awnZKc*G#05
      zF_6M_6Il!}q)IAbaKm=Ro9=#F_?t=;!^nnbac7JBwmL^aU5R0sNP4JHBQbhl9}$>H
      z8+nXlGK&d@(FEZpMsbsYH5hWX6h4=p&oEvp$EX`ooOtssyW?`%^@)5cF==(PSzoJX
      zG0QNU@Lr)Q4$t`v%;2snKgW=^9Kn5qv=&U<Q-<U$&z0PEsm`&;QHQ&o>f83Nuw=db
      zUL}`Ilu;x<&y$Iss_~R>;p=e-^~e|d-hoia1rzhAG8B`zldwk1>-v^>X{)Xb^v7mF
      zJ;Pu&Tvzz(4i5rBil<}t#m1;-4z>A(YdKzEyPelU?s(fKmhp__?TN#1*oH4zOQAXz
      zX=+k5!fa?rjSlV9N8V99PrDUp^aG5!$~XEugZY(C8U|G?ydjgd4u<G#5=KRbF+wX1
      z25v+wOSG!H+}sI_6O0|xzQ>VKacwV#&-L-QFhyC@Veaiv%`$0KJmwF~yi;6fxbx)-
      z*M}IF+2^9(6H-;QOlx1uDehmXN9!W19mF^;^gKW@;%JgC<;q~?H`1wNrKEC-hZkiH
      zC{wi~=-NkQv`-=3cn=auA~5Dq3B}C!iPz7GBg#j=kk*e=7sNfkKL3|cr>-i0YgnSy
      Ti0TD(rRU{iJfXNw)B5xucR%A-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvaQBM;=5Xb*}J$miALIHs)h$4r!MFsmnOiD;hqp?Z#1=7UF?XjV2&b#Dpj|abv
      z555=^F+oW*@dNmwjI(XIR=iy9W_NbxxBr>B-+zAm0`LTn99RrXZ^fzDNwo@gUW#O(
      zML&>U(}B&fHaU9MPjoDN-Hw7l`dURHLs1V@;_VWmI|<AfEehCIq0$Eo)mm;uy~kj;
      zqhnbH!!?c>6kQZ>ox{N_L!o8@=DI4BuhVyZ86O#K3=7@J7eP<N%IwEZ+lXOU$-BsF
      zk{CNt?<tv}oidhDb+E#)m?NBH5jPoFhoPjjjD?P3hUHp)3f&p|iCaEYC!x@3Oz_p*
      zp#7s>>!9V}4#P&yeO^xlsk|h*SjUEGK#5_-52T1)QtNTtGc9osqcryA3uXE+oAvs!
      z!7}hp7|OUEh$NBJi_Iy)|Icrviu(IJ^n)l-;mIqh2hlOdHXhRKPK_#}RR5`IGXEBK
      zX=(-flUSu<Mn@}~UQ$l}GOeD%q6csr+u!JO0sfVC7Uqm^ctRywA5ft^ryS#*#{yXz
      z3~r1mO|s^!)HsKGj-}7E9x;l>Z+)D~FJ<|+uu4&D!`RzHHG8DhaQIKGzcH)}+&#O(
      z`ZUGj8H+kknWmyWvYD3e*t}AY^#zV~HpRHqV`FQ0(|tT3>y9a)T1N_NsFUBOK{x&a
      Dhhn&=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O-~b16g_WRXgdzyQa~&pTA_tPfl5VNQ6v}}K^G8=?xy9X43-%(oswYUKVqQ?
      zLZXRF7VcfRaia@28jXA7ebZr>l2I~g-+T9+d+vGn<HMh~?*UBXUI-FH_m;Y=rfZf~
      zNk34lo0eLv@OUPKV8hiyv1*xW$y((WL$kH1RpV0xSoU$w5g@PWnl;bRoA5;>*BOF~
      z#s-go;evuDG|LE}ML`Iy41t6Iv@L5oe^lEpa&t|HV(45pN@`_YH8pW|j6orWp~o*!
      zJVRoFRqX{i6KNrWD0)NaVd(M^uAmEj46MKq)+}zSmSHkP6G;zs!Lbu>WK}Ecs#P<I
      zeAX9~_c*SoJMksmGWYUp4|8klxq13R7-SgsQBp^q#F8<9VUe0JLsO~3Ra2&S#1&i-
      z$qJVY-BLB3a?tH$yQ1pl^yA_dFIl<dGXYL0NMek@Wp3Fj7&3lfkKog05Ift69?c9<
      z23xW>3YFaC+r};xG>z#Hs5fGM?{cXW%pgTYdCvEQzUvAmFv~FVZ&8im7$tr1T(!~0
      zhS}RWX`0dhySg=EkXMbGS>pFK(SWUPQYOXg7?gspb91qxR;!!}koC}dCg!|8pk80n
      zOBJK4>E#t}Z5kU2?qY$;#YM;1GuP43VPwi-iiRgZlg!%N#RSn#{HRUH9--YFB>Dh(
      zZ2S%V9YJ|bCkbuBX5UahNgvTpXN7!(wF8~B(tO~e!!kpwxC@URKt4eCKJDuq&B88y
      z^7w~c|4Zm6)MXnRv(;ottKd=IVc@CYI>OMaGhClNT#Cy@ZBCxzMOj*1Er+;z<~`CE
      zgru(?j#E9?Fye45k}i>zHlbns5TnOv3hoEaKI@xJ6RkrXDddE4q-+rrF5yeUh%&@Z
      z2v<_a=n#k00VWTTdE(Fq?94~0R*=3UBK<&%^b>v3FZ4^l?QlbNA~#&j2^XPiWO0K6
      m%~2pxtGeYTS%SDlHVHZ8X_akpw4plIvws`&bPCdt-T4dc4Mf5K
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>OHUI~6#g!~WoQ{_d83F_0f82IDflQN2pEV3V<05pYA6#JEHh*}HQ-M%(XAU6
      zn1Cc|aA%_KO<d~MN7NYIspm|elEy{n+&Pc$e&;)9`ug|NLje7lP*5V!x~|>TdQ*;(
      z=$+D%YmT;@(Ay?W$KIYaQyaRiIhL(J3IyH6gl4Yx-dtYS<Boz-fx3KoHs7#J0dL$&
      znT~*%7VsD=TLRM5x5&{F%U9$t<db`8RKPc9teTpWvUP!u|7Q=+--ymHL`SHq)LAo<
      zZGFV3SP3T#8>Zom2sCyU&FESnj^oyf?t?(Bib@3h@St8r5DnBsXV-!c$IztUxIj&j
      zCRCh28DS)idoIRF6$;9@CZysNP75f@srVh;NeYB+7vs>Dmw`#NsqiskAZD2QY-(d!
      zx95300@X1qt|b;U+u-+%Q?ddA?M0D~OqBEptZB&^%ho3o`i5>YDQa;^pq%HFaSAka
      zb`{{wXq)NXp!$~Lk=#fW^irRBoo21MRD3N1Jh>IuHyzrPGW3($xkU(Nm&mgH=)pM_
      z|2)k!GctGk<{aBFSED=*fgu%sl>2ZILkcblH0LkOf#zkUeI)hj|5a~$Gpk^2wxxnC
      zkNWAB5fu@13;5@(lpWWv8$5){+yy;+sen3dnz}un(2_}=<P03qTwp3KWg&WjxY^c8
      zmEi(+PV=0yBT<Bil!ty^Ncxs(&FBf<7T1y@6jSM3f{I{}SDDV78AKIDs_Ar#VkKmo
      z!jXN{gbz>`j_jdvAI)rA4)@Xen8GD!r)M=6%Xjd~xA4hVsFH7RhWsjl5d=EWNmif>
      z;SBsBS&o&5_t5;13U@p^^qPh%<&b<|08yTUAe|{I&Hb#)^f_J5OlKMDJ}RD}XR*5P
      z00S?=i{z0j%y|!ku}27zZG8Z**rh`awZR#!a%G9S8Hhz*{`tVoUD(H9WS0;<ZgV}P
      z7UV}L@)I@o8BOvFLh>useM4A&N4NZeQF@<{KM|9^T-NnzMj6&2TGh+0=21drQPQ3Y
      xh~OA)&M<jc^LDZ<iZ}cOSC~M7928(hxls?Ux~EZ$k>&jp^e1wSVrf~%{{pL}RjB{~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBHCk6n-vqcZXf3u)Hl$OQGeZ>}+LeOU1GjS{G`u3sph1H6|T)uP|kqA+xg;
      z{0aU96ZNBC`k^Lln`qL0)5L$FpN#Pj7!&oJ8DNLF@xz^SU(PxAJkN9P{QUR#F9BS^
      zhK?423y-ZQR<7pTmE2vcy6sz=6*ao#_};;?uRP0lJsnaY6}VL_XDfGq^RX)VI^qId
      zjo@Q%fz}<z{mfZ$%K~CqAXai~jxV6u<$VEJv8uEfDmEe;*YYg5Ixmn|v$q_}uX#$~
      z(*JwUt>4S9Z{+7GN;+zv(#QR6yE-~0(AzAM{Ni)AWBc<0{S!?+G8>eu;FeVa0%-#&
      zbS9yp-#`}z2+KrfBZ1d2sN<YKcM~iI&ZCvM*mcVV#?N_%4d`g)xQhlx_*ho$&x0$*
      z3?#y%O9m#85zselr5)v0DeU8BC5|@8;@nvSNzT|&v>mlt+uc;&I!j3!72T3m*|0pD
      z*GHR@2@)7-n)#IaM3%m7RaXOE3HL*RzKKjEZpGRQ`-MD*nxC8qq~p3kra@Q1bxJkQ
      zQ;tvVVt;CvEZ=sWrTvoH<4F?J=-2TkanOiab=PX8?WKy^rLc(W4EmXfynzlF3EV_p
      z2MIjbh-}hm9C6D)8w_ezA}f8Gtb@H{!s4FVb)P65ON25=8N7w%N=0p1l{Me;Riu_h
      zuH`1~8d%0V)Gj;ffQ4wpg>NXIq+Tc*C}2fk{HPNnZ!CYrb976f=a}T^c9MX+%h0b1
      zB-h-US5kLumcRW3^(0>}U@SY1@(T10tBP9S%qg`6mi}91MC{{NJ{Q?LX@C=%=kpk*
      zdNdj_#OY^4ZBJitj|Y}oHL%1x`JAD73)<;R$~D%h6hAxKjnU{rH=Xp*>=W{BAv<Db
      z>*zIKpwG-6;%ps5Y%kO?%69x^9p-oB)`H9QO>+|MFT}Jzk<flar}jGrv_J4Vo$-~F
      z4wJ}{6_}!bV|dkdvV7KN9%A%s#N<=$DJ{d4aXykVlA`S-1<62OA+Bpd)xSUnRc}$M
      zAsW3@@;7Mv0n-m&;Eh*&!I!+8q2-NN<^x*GGGjT!Z1GzRlQq9WOgsx?$JxV_<%fjw
      zYBBrcKff~QxjJT<m4)mxDpL!P&oZ&H1MM<}wCu#7?82DrMo#u%TBb20`!Fy2aZ8@X
      zI;}sF=kQ1lLdo+1v~*bZ5wvMs!|i~vx9A3DF5GDkm?~g^EQ|C-AU?22<u-@A@Dsyb
      zB)E4NeJ_oLL%jVQ_dYZQL12JG@)60}Q1K$Sjm!`hldxn7%VokcNjP%2A*WD~S0ZvO
      yhBc>dQ(LVb)ioB>NiAhQ$9*O#q9q-1J8*AlcrTc}k2SLVwgkP@bvg?*{or3hSeX6*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=U2hUW6g>m9ODVQW6|44BvGQSxz6v2RO^v45nt+@5IN+om+|H8S*;@XUK9OkB
      zJ{s$PGTzyhrA=2!X6EjlbLO0TXSn$N?F_(k)GVYJRtNlq*8?q``fKhVY2I^0$wa$K
      zdm{@OhRrGDWzW|h@9VdGSn9~*p(8>VLq>^H&9L5{ViS&QFwAx2q2fC51jCd6qnq8m
      zM%Qk%h&9`kO6nF-$`Qxm>ac#$8;HJcT+dW&5-LY@6K8hZk0OUO7V?-wj$yGamDmrC
      zd&29QiWv%Rx6d7$d(wRWO=k3w^cm8h#K<7R+Ab?I%$#s1AbRmCeKedLQBSIIQrULg
      z=t+iZO_Ogk+cal=q3uXvE1~jAlBH~!s1+I(RvFf&ruPHKdFM){g|~a!7eg&wmBR|w
      zO;a{VvRtuElOE=A5BI6*N_-}9hFr%DyuNrPO`{g#d)+oiGvwbWCA=Mn`@Zlklo^&1
      z9sylQTr9);=H83z-tB~3>r(&z@%rN4;Tfn3dfbf03}$JyC`utq1Lo#wjWYAdQ^qB<
      z!CTeZ(=l#*r7(>}nhg**qa)67lcJ3XhFg>|KMMscg)$ayQ<TD;E2v_Ox*MaG3B^oj
      zV-pWT69f7-YK7Vl%zwwqhcVX9tF<vUzfd;vvk>b4L<Sec`4xI9My%LV0gpmY#>sRq
      da$@$DNj;4c?WXV;TeRjVLw_k$$Wzpo>L0mf?y3L)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%TC)s6g?BiaUKqYM?!#7pajSR5?*}<u|ZT+B<%tesohP|5tup-a-6Dc`#oK>
      z5)`SGs;;`|M^(LJCm|FIRgp8}Irp4<?w#x3f4=<yu#RmF0fzZg{+^dQj$xMedHclS
      zbyH*x#QC1pX$qS=En7p7A>oFZ+&V73s-KF6qannQye9YJjh4j_6@50tV&yvOI>nyl
      z*aJz*43R_Q*y2vd77VL?ob987@=>k4Q@qU$IVVOtvqp~mh$J4`HY~&0VMu3vBXTu{
      z;BM=!h=5^4M+|xt3dVHAG0vc5b2SYqhK2vAC5j}{k~k#ArgUfsGYnS@OT6qf>%u;g
      zO=cLav>M#3aodpZ-NT@)g!1^gym>EF)$j>#S6jB&GeuKa4)Mt78=3!sj#<nx#4Pc_
      z>B0=-*_@|4aFHaVW^>e9Nn6&jfGopAFVG!~DnHA(Juhp>GtBt)K;Eny6G09uI#y96
      zH}Ax`tkWg@lau_~1kU;v+E<fTXA7ssO@`FXex0B7dbWJGMsIFNOQAYxJP%tPyCI$%
      z@)m~rGg*{28T1#HCG1_3x7(tv;VHwIPr(fF8(#@S@phR5z6QPz>1U^mH5v|u9u)!l
      z(TvbOLSJS8(L_QHAng@;XpRUOrrkb*gaWC2;S!1b6-M*lk$hda!o(#ezYr3@H2n`r
      zo;nRxO(UXC;U1moq(Mx~;6AO?cg%HFH)xeuIDdi3ubBTtdrv1M&();?ez?zHK!&0`
      zzl*NBj}$HarahgdpU72MweSn!!UYP|mCuAJuD=x340R1Lbscea10(7tQtFnQXU@~;
      y=7~}DCAU*?>c~2Zlyif0QnY&5CS~=oEjm;1kk9}g;W4dI!Wf?58AiKK%YOkaNhRF?
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~E_c7=F&ywOgrU0^>tPz)f8@-M|mTjO>PJKn7m0Eb86aJYmJrY1<L`PhMyO
      zl4xSQ_D31t(`{WPO-OTkzTW3~pZDYZ`TOG+fHgeV5Mx+6;wQY)_pEMZo4Xy4x4I&~
      zD^7Pj;c&0#Xiyk3zEPLkhn3f@BhmIWs0>qM=*XHOX$^r4x%${(%>BaloPfQ`kUFpq
      zZSM6Q!BC1qY&LeQjb^o0zKm48j^*Z88M09@qE<I8+wy7*^MyzYv&o=r_1=pV7_J+b
      zfT1IfX#>|V!w@f+O%1aQD_6#$Ba3+nOG~O71~eoYChL|h_WQ>z;WT7kDP{Fun|GVs
      zvE+VusK_|TOO(cNDJUYX!`*%H+4IG{lV0x_Si&;JVf)831#>_XDi+}q1(UKU?e81N
      zp};UVGW1Ko$3N!%^j0+#85W}gmL>FUQZVtrz(bTt#s_gK!}0<D`&1oq+&dA{>6(Fx
      z%&30Q>pN}n(vrDI2R%`iXa-})wuQ6R<*qAS4eJck5jq$qLhTv!OxSlQk)y_xO;oF5
      znW__~kwA<-DiW<z^crH&GZ|TbS}QcDkaROit8LoHXr3*W&XFlzV5;~N*|((&%$;N5
      z8{Ncklm2Pqg|df)@(L-Xj$3qQ5C<W#h}$&NTl4)()<?9Hcgf-z7QSQU3#|t{sytWT
      zgz(7#pF^Ik272%M>NbWv=>gBZ-!RWm`g(~?gxJyn8&!nRQqB61WvFI#9F;C(S3W^g
      aoDj!IQJmtCx*y{S&AQL>6wd;U8~*_GQt|`<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTc@~6#k~$?e?-jxfM_mv_*P>7VvHxUI+$bs}IzAc^m2kmTY(Hc1!H5zsCnn
      zKoU)iPd@mgjAwS+0;QN{JF|1n_sw_C`S#D>?>_;oqog6gkUZo^ywG+Hv#`Tk2QJ?;
      zMXJWlw%E4X4dHOtb~FST;$EW3t^LBwy+cuVHG~+Z&)~g$!?qZrqK{@+DxYPYU9xSt
      zPNxU5ogzbI*VwnX+ja!Q>M%^H`n*`J6*u#ju_5=sXr<Oj(J&y9hf0QJxSI^K>7f~!
      z8bff)elH?m7}pVl9)*HQ9V3`xP|}&2hQt*O8_*NQG-f4mRFYlOp&`sLRyHj0qTSdN
      zPF1#<VWMo;xmn|mA>X@)L0QRFO&gdD)irj&TNT?8+oos;%Oxa9eJ2&%*0F#^hL|Nj
      zy4^6tR666=e{PgSqoy;|SqWR#kwltdrkCiMqr#ghugao^EW`Y;iOSh}IT2*AqGJ_#
      zB0iF4lC=&RNZv|{oesmou#u$td~$q_aH)8P#KoR<n!Ua)|DU7h9pX}`QnKi--FE8Y
      zsUasZ+V^E%%4E==S(b3NOx|jVmWIa+lS4|T_76;iA%D5hbIN*#r>~?Wtz5(!Swx{n
      zMSy<f6xv7V3k@I|k4qcUUZIEFM3FJt?I1`|Ad$_TAf7$NMD_=!-{wv+bAq|A6baxu
      z{f|nV`Ua}{3K8`+ZqS)d9E8L?ZqiDf$6}XtgH{;}XOA)W4Yxki-scI)bG3dBAMWFm
      zNKuxrcga)tiL#~MS)b?5FJ#KBlKYKt?ijhs$`^_$p1uUt47GunYGFjRF|Ia|P(OJ0
      zEczVXdty|5!Ryorbz~iRx^shg614iUyL77`yGLgV?o%{?2Y5(plwu5z@B|ZGrNw`|
      C&?|cY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&U2hUW6g>kA3+t9*Tl%3^TR~+(p{-hLAbn|U+KBa`ghby4oRn?0i`iX>{syD(
      z{sEtS@T0YfCdOxfl=05;wGf)k?99&GbLO6V?*9Gv^EZHXJXR56SUu()UTk}&Rovrl
      z)8lnZWNO@Mi+xWx+-o^16o#Z9W^wzd_`H5B8lH+M!^{xek7kIOJs?B6G7K29Ke0XM
      zZ9l%m5I;1JZ0@xk!H}PXC|94Bs<qN~VH_Ftnx>msV@OSc5p}d|+NQV7u$Y|~VbmCu
      zoz^Q62g79@m!NA1V^+r$<`}|Rqo!j1f+~$<qalSw2}?+-D>_uf7^W+xEe_fzb>UQH
      zWvOJ9R)bqL?wInsx2Z@S7nN(o4AP`FxqBeqcz${><-Ip`+`tMcvHk72tkD%4u#0e!
      ztU*PT@pp8jk!4uu2m1Cu<F7Nmq>_pp!}28Sq=|k^90u;{xQ7A}cVxRrY2!^I9dN`+
      zt0UyK>pF_Es@h?z?KH%$DeI9K^hH6U8T5VI7S4{vU01j&HW_9oWWq2tQkOyJ1T_aN
      z@3&i7_E8Bd<WZPL1R;9JDq6?suLwa)CS@1UTA@L9(#bTf_UJoA^L#FUhGgy>Gr3<#
      zy~v+q;S5V(=_G`!^iB{jln;m~?+{ns;~MSh#6d_b<2ubun$=_7pjn>9a;I4Ofz{8n
      z?(#(CzVb1Ej}7o?WGJee?=3&OtsYOJ%X9k=j8o*ljIn(Ruq6g;<O!jr#?2l}FPpWY
      hDotuvzCl&K2RQl}g|Xq^bRQ3B)_j(Scr?gy>pxM+_c;In
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBr9h6n+lbkQWz4A+$t+wnohh?<gXPQJR8AUTh^z$M%a$atmw2ZfA4DnEsUh
      z06+1eoq;&knNHh}{ZXBsySpSS1v?qId+wh5oacGYx%>A&zx@ti4&Ox3N4WaZI51{f
      z(rnC>>%x+zY(F-ddz;3OsksO=LZX+jveT4~QIp$368hzy*-Xtc!bUIS6hxlW3Z`Ys
      zB4IrJfxJwWpq1>ph=FiHM;QHagfO5Zf{TPuS|wcCFfFmw+TRgQ#n@>G!j%oXW;CjX
      zW2)HS)D$to*!ksBb4*NYnm;iFLziP1!N(DNL>N6+ijE<S5~xgwno>B1v>n1oIuk78
      z?=yOA+uXGb*>bqVoimdPfrHBJRZBYULS;Q)spgCPi(rC~J(o}F#OktNG>&n6s{Hzl
      zF!3R;%gW1etsx92&cbi#xUM{o)@(}}rp4AJ{NoM7+MRj2^HS7gKJ#q^8NyJHP?z)t
      zq><Axi77_e6|!nHS}c3`M0OBHRh-c=i#g`->U-PSC)_-%oaavPs4BCd<F+c(&t=v{
      zTQzP`$6YKjn)GI3=)3<ORaKXD<Wb<h@9}t_qmi3Swi+u}Ww1EEV5W()ddA%jA9#{O
      zKZrJapem?gR%KUplrYSU9kFj8@O+Qpv5vBurRct0FWD_is=Rd_8`vZaczG+bY}Lgp
      zrki&AMNB!qZMU47SToh=51;hkzpc}XGC?m}mT*c9quCVP$;ANS!0r9N+2gymYSkKc
      z)3kOsh1|32I=%*vO_aY7PTRfzmrvU3emi(8&t2vF#NQSg98@=$pCayGl=ox&w1htX
      z0r70^nE$<j{wqg)xTN;nH*6)1V31>-wYxWX$B9)^9Cd0y4KX!Z#4BP0&_*~92p
      z`;-ivk9N-|ah0>Kxw&I5o4e3loPl>3f3C2?Z}7=4r@$rxU;|w+zA$`LNm}H!OQwU=
      zDM6G%gl+^ddW3G`mXC4BM8b@<mirUwpAiln=Ker>Q&F0Hi!7mo=`BB+ccW!(O2tRG
      zqn1&vgL~SG`PT?*hoPPwN!0?%FoP^&l;cZ2iEA{498J57ZhKXIRa_tUQDjaRxls@B
      z(6uXz72XRW$M${BPs%c$XP^0dt?1y3UTv=x3uh`{>ni_?ku_Fc?J8G#l=`>ulzJ|(
      zzM?O9Y<}`JZmHlo_g<?XBjE>+v=_&Cq=K;yp1kKomIn#6#7^8}Czg?<Jg!p#vsA==
      zdVnYN5YK1@6)L%mvmUFiGgaT2Bnqwzef-H>z!pYb{!iVR`4V688fRzJJb=g68@6ZI
      K=1Ai!UilX%5rTC9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2hvz5ItjWytY|WC#?gC-Sh*uv7M%FT}V^x1cFJaiIV~jl?pH2*h{j--bL%{
      zs^OWRQHdw0kSYWsNh=Uh3qnW*@gbi1D}}kc8{3$qik!VOJ9FmDnYsJ;$+x=z&f{Gb
      z0YdVoeoN1HgxSnj8iplIv3W&rZ!GH{r3)$)LZTP2u+|oiUKce(5JF<ZY^TpLLbVq$
      z08!+yl4+S@o-mPlN?i6DK`Gk}BLc!R8io*xB8Zp<70(ia85wY>YFfrhr?qA{tNL2g
      zAdFP)y578|JEpXKry_|FjvibtU0`BL+x(az7`hU{D4tjG9AWIhRx}*O7=bE;uqg~j
      z7q&wf&1Cz__<lx@)Xa5D7afO7B=-#}tu7Vkiz<#0atBsT?+IG*p`)0<38~6S!m+0*
      zT9Jwk)tiRyM7h0F8eWh}hU>N^bkkyi5`KD9x7PDl*KQhhQOv$4gR>fPnB+n11uq$!
      z+`26Vcd7QLFy;m?j5oYd<Taebc`hxy5gmU2|0%M@1r0CaC4$<qZhv4qEyC&j`0ST_
      z5tmfV65>5BwavCLS{hykYaciJ7FqH-pjRHHBB^t0CNIK=vdNHRwCr1kWVoQ=HOX+u
      z<tII_Ybc>8x8<^iH{?2mTXv&tcPt@aS2VndB|^-@SP&JfVcg~-8Fv`Og`zdP<J67I
      zrrh2md&BiF+*#QVL91An;gp+tyKV58Qhf{7cLBZi;Y+b-)th$PwAPmmv0*nf)Ue8Z
      za5wHX9sbYqv8%}Q;cod8K=HV|Xna!LUzq(7KFuP)e?T-hwax$TL;ISo01io?`-VlK
      z&k$!@;~eQ7#t1)&FUb)frNB@5E}Yv!bPI`leD*Lx(obLX<%hfZ<4AH;%8fnhvbhMw
      z#fg1~iR%(8cpt~V8UXvU4=mON<BjK3+0qO@yJU8d9%zWZfl6C_7(GI#G3jH>F)=Ai
      zM3R`=L1wU{2QI*<7vz)Ra7^KhTYkE$%^lWXVW`<)$y4X-?oeayE>8JYs<1NsGeUPU
      zoRpsF9TXm5=0@q0z?0OSfBsJPDxXA{wfvsH<hzK|LyXfSOwbQFK|dnTz8U(-WtH>l
      z`K$sgNC{)iDuyiP_!Pi65}0SELH54VZTeHT<*qFHO}|?859PTo*Qw7jDUItqWu>u=
      zgl{Y=H@3aR)DEsF_kx48A0tA)V1$0<kKk`OL%-t^{ecDg6J`3#rG4Bh-W7Av7jpy`
      iP<3f5SY~<wtl%m?qpr|=;C1wt=q<d>mcrNboqqup=WFZ$
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=OHUI~6#njX=*y`fP##hqO2s~u7ElliRctiW6pew9pc|*{2t%ebW;!M4RueaF
      zbYV1#aitp;lJH10VXr?5J-0K^ia?s_z30q1-}%mW&ivl{u?t`bw>%ISx|Zb?IZ?4x
      zEs-rMx}{prrseX|jQlh_;(^Ezss&8t%a$n@tc;;)O2JYMoxyD_spW8zfO56KLr5tK
      zn^1MtN;C9CPKb-nGl&_ZsQAEeN<stNez*{j;K6AISA+*N=2Ts|S1IKcb571{3PW?w
      zD9GBpY^vOLoFXU2(0zQl@CXqT%j$E2An2?QZRqfzouTvCRwT5blYwO!ysD*`vSpYI
      zZINhw8OKlPzFBoqm#vCPCAy9bnwXnUrBfdCGQ^Ip8r~N)>p=U_gL7P!^9;QwDVpVq
      zH54>OHvQDz1quCJNw=w#j1?jkbdoh$UrgN3FVk34(T6-VDj|kAC9gg)%o4-EQIU4n
      z^~qes%Mu2Wpj6AAPs^jD<Ax**b2YssqnI%&y2a~Wk#H5G3;~<sl$F(s$|?;iQtgEq
      zeBM>1>dVqdR0jX7Q85e39hGlI>%M5tJ`eIF1}UrSikZ>ma#^AM=&u{x|NCuEhj#9^
      zUeJuPsxQtc){;?_a1&D`<BF_RI7-Jqv#os}DI{r=UG%-NrY645bZel;126e~bh`$D
      zet<s~-=e=ANE>7cXym@?8`4pDfhMvg%HiHKXr`0VDz-W(!*ud@-q<Gmn+UGc-NtZp
      zzwoLq-+PdM7F`q-s>XI#*^EJ~;sk!8XMtmhJLvm<2<&woSl|GR_KH$@OQUoikl9A~
      zP(#8Sc!alg7&SrzxaeSPkZ4@CSxzFpjY!V!?9#4SocxAy#|jO{zaq+wg-s;I$6H7`
      zMo=tnA;^u8Slq^lxc*Yu3$6Y6<*I2j!08I_;1k}XUHE{o@DW48C!~cnObefJm;4We
      wFIB32HXWy3B8D-V9c>vVF^*2sQN;DCP$^8%>32i`&B|7I5^3^_wBk4Z0-WA2H2?qr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)-&sQ5&6vw}hNk|COLc=dBt<;vb`Bk9QpAE$p2$BMAH8Bd5mPwexv|%PDliKLc
      zoj+EtwCZu^LRsiJK&w5+A6pmxNgnUbn<N7SWs#XT_uY5z=YHRPFMs{>>u&%qBIiSk
      z!1?>yLv6Th8~Nens&3kbU768J>+@P+u=brW?PA3Tk3eVDIj@;(!#A_{^_=ZPt3X#H
      z1TU+)3n+OjCm@mn{s*S@fjMuj3bfkmMrm+FpntBhsFugc8z;9h!!+!1fq~F}_$9*`
      z0nenhs<(mIR0Pl-fP$b36<tIS3TN8TgFYX61&$w>P{nib6Xu4sI%$<no1;Ciq78l?
      zolxQ9>5e(W)NhnGvU)MCW%If~aL&qU`HWUH_}ejhxI%&O!Q8ubrD}V3$Eg%*vEl~@
      z8B5Q`)0z1AP))q5>SO5ynG<AZ5%u@WTAo;X91&gn77s7_aE>q=qD)$5u3Riq3(!s(
      z_l%ro8<v@Pl+z152;eM&tY%n61W^I6Emi1Rl9cY~?eOA)iXjXW#+q)=>J@?RkRyuQ
      zGe8k9su;y3iumZBRooCb*NnG$l9yGy!b$v;B%|fav@62movGI4PDB$l+2c~Q-m9cl
      zTgq57HM?9SpVm;AWn{8(6>l(^uWUMO)yWL4@UPP;;ohtESu%hrO#6`7bw*N^lC5v3
      zcoQ>ZH(bX{E^N9nd|*oTY62nNP6Fbb-iJ<!Me2KL^4nI*E*j?AUVWuC?!#LGeGN6F
      zd7^COSM_25w-Dq<TE#n{!_=x33c5+>^uqsa!LBfIKi(sGuW+PAj<mEVfWzY6{@nq1
      z<+6$!xG4}wS><9*pEmf2b=TV4xf_PK5&<=7ntE|Eua!zVHTaR5mvi+jk0oX=?{9%b
      zripQUzhAQ+ah)uT(5;}*&r8ovz8vT}?d0o%UY&di(YKF&DvprXQ5qR&Azz>`65U2e
      z<Oz;NqFd<R#_`CBZS?<4QwmPfGYAh2XW><5(576&G37d5AbT$bpye3ADSGpW)3)G6
      z8mp8<&Yh;Wz!?lWY5%6EoHiTTqD))ppq$^K{Ta?KJi+<jqkqEtm{M&<|A2R1&WGsL
      zKg#3SFNg{3VB~w8am{&FYO^mnvtG}pvPoHF1*cgCWdTQ(Mf565IH}ymfU=B1<qobY
      zccIanD>@~~>J?@2DqbV*L5$;dT;5e%mb_$bbfeHroYuEstSYTZak%~nF*d1@$zAlL
      zJGk;wo%JX)C=ZA=PplhNE~#e3;cDp17Rf*tPMzUum7zep#tgATF_3~yC@MtpAyItf
      zqKNIIV2h-<h6&2a&GiK}B4?jIRCdn&6q9>&kxXR&xUrMH6c@@T#Pun0eTJCwIi~2%
      zyC+qe-p9ul$(O{Xx=PopoKHz5?#8J@aY`b0S9(?$I!YaxiZ%97Qhr60kBRbYqWlIE
      z%D1i_n{p^AGiIwj7NbA>IU33HBRi43m|S|zlcLgVp1cI#Ope-LI%=nzSMdzD=xn{c
      zM_v|v2dUt@J6PB=CF`Wg9o%kIB|Gy6s_I9oYSX28dY|TOVR8j`=-Gn1SfO`-c<KKR
      L8r>=Kyk!3cWlteu
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>&rcgy5dPji8-rQE5aSda8bXQVAAnQZrUkn+)WKvEAZ<WMw2hR--oPgIE?Tcs
      zsCw$P`3rJrbL%CCREmSzNaWT-|B^~o)l=1;($0A8*x^TIt>?|md*94_Gw=QS^5+8p
      zZ(}t8MId=szptmOu31WJMZ<DUckilR*<RLn#+$n48jkMTP5?fEP<?+%x3<zZHt!k*
      zH-HX-fi{%JZULXWw_^whO`!9hWq)Zc+eHC?!LC}afGpVsfev@utc+h2h%U83yq-vg
      zwq;Grbms)l#{XxZmRP5#IlE|dfpSuzq9+K6u!>#`Qpk8>y$h!?6u=t-Lnj7QF^o=1
      zx@;G7oGhcAQPG7?KK-VOv+VX&%&+Q!&Z!7`uD4W-<2=>q>YF7h{nY1PwrzA}80><I
      zZayK9P!V9Tz9rK#R;uMq!&&pr4lLOPy|k`7ChHBOkLePaIGKbaT_g4)uR~E+8gMfw
      z<7C&aXV%s;b5n<>AiJhz<_I*ftyflzUG8K&@fp!!)s=8OakOTEu2pl((%q^<toY*z
      z!U*7fD!<i(oNX1Vjzc3zV`APh3%YCC*1~SV*x^MGmk<tMR$#PsX2o8u7Pc2kMwyPa
      zZJj|lNS*pn#T-7ORIAqR9os1j#2Vw%-jHMR4Pc&{)QZ#O;PA~@uv}*^h|9?Fg!K^>
      z_l!N7yyF<?aE!8j-w5C;O>rH%o`hB^8C!a3)zw|2t%60bg6k@luq@Ey9iDeJt7z;J
      z+41_U2UqQ?Q!w%-4_o+9mQx%=K-DbEaB?NRQZZ<BLd{*xTP-l3)n<=oJa^ROS-iKR
      zam&4Fz$lHfq|Z;k5KlC{FyISQmvlSol4c$Vh4@;M?xT-Lqf;STeFKFMfOs-hLw|A~
      zr;@3sh|~~eIa0$Y%dvwRV#zZ##DAo{5=r_WMhBq$1HbYYx|HA1ul#`_<xh+$e<MZy
      z2q6<LCNN2oSDc@MDO#%(-SeeM3S6Xj(aUF%B>TFPPcix({JzKXF{xh24t7zt4DUg7
      zH{e^KZ1F&+@eYN1m-Z@nuU_m+DxQ;iK;TjO`l-_I(fu5kHumws3l8~^)frMVFOnOi
      z`-)5ftzv#!#k@mfBx2J`sbBv6jaKo8=w*BA8L~fMnk~LZ9zL6iJrXhB?diII;5jaD
      zu$_(j`1r}I>ZYkC$ZqsX6%pBk5!s9LvJYt)#*7?9UY^D^IfO6dFus;id`s&V(GMC-
      z<dMe}ED%#IPT1#hlE)x<xbZ&`kxcY0%Hw!0n#CSGVonx`6OAeACo&?w+ciWQ$_R5b
      z!U}z{XSl|6MR`ZGH7zlkO2`XTT%3waP+>_-$`oeh1Qz8aZptYtEZx@HTSr>U7A`|#
      Wh5i-Xz$YYwRED5e=hIiszWE=0%d43H
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T~8BH5Ixfmigo$0B7UG|37WJeq461GVi3ZT#*h^He%aoXOD=bt-Mh$-^2NlD
      z#0P(XKgxJ|+sG4<hn=}IbLPyM+24PD{sQm@FB_-`Iv46n^-6DSFR@mSl|9JvOXc^n
      zkv`6h^ZVDSo_LeF25N%%7WhAuV71V>QFf^Ff?cP{2Z0<3mi97Nc;)<1*;3aj0kZY_
      zJBum5M6mGIIOE?5YVD*mq?<}u#HwKXy^D>zQr3*(Q)g1<<6tIJf$=9*#6>xoSffWf
      zO;pi}5aFTVQM(`HTII&QfzOQ_?{<dwz)FNB?h97>#_5mc<(bY;)S1<SRzFKAUU3D+
      z^JLARn}RxKbay${t{@ugn=1;c?GBf04ze;&^?{krdi9@+?@ZNWlX|PXRt3*c#{#29
      zh!$zNM0j%=mRMP4bVy`{KI*nse&9iO;~Un#1k^h1a^N~7Pr}|KJZ5fvhQ|{;WyH?F
      m%fG^j8*|nky|7mAe#P2nJ}PWOkOK??O*8|{X#~#$>cw9}D~gr?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g|@iEwu=gH$_}fuq~wp5nn|Vsw5bKCWR^=r|nRdEW6D<P=AqM{Gf@H
      zL=yaH;*T=k*)0WHQJZx3&Yg4bIeX{q&tKn80n8&Gf{!7!&kuRlu~jX*u4$smwKc;$
      z;C9~74~1!|hW_GxS=4L_LI^M@SKyl{h8|0pD%Xl$`S$vA2KJJni&|PX*X<(L91$c9
      zVE)}xIxN#a&*0}~m7#aTWze`@&E_?3SviKzf?CzN?U;h0zx8}6wM>wXB~@4LWrl%7
      zz7>&678!=y^RiMN1@cBkgfPG`bk1F{O;xY1I;vI?W*9>Zk*z(U*dJ;ltwhj|ktljF
      zDhV&}c~#U^BF3V)fpOBtYc-))7-la*UzPSn+0G@~svDfSFcgNFw4z#ysvmMqtth*O
      zso12V+`Jv7yvI#mwuR}bnv|TkTBy!cT}dU?PRYt?hOtEcZ<-QxSs95>MKOakL)bRF
      z{&Y8q_R3rYevE{WWf(u7?xv$@uMJfv-A(6&G0zZ}L$;h+O;bh1owo9hTZ&G2V$EQr
      z6AbsFh~S!x?ne<t7en`ks*6qMpd`#KUed@Xu??e4CgfyA+BcE`dr!3((%vBc%k|`~
      z!ON}40gZNDRdL}%AqOXt<l`R7u9#KlK<KvXV1~X+gE_PHV0+dxbEIH6W?8JM@<pcp
      z^<8G<STRA<@Y6Tt$0&m6pk0V|K7?tdVbKaXD#~A{$cJu1l2-Im>}6u;qmz#axP5Y|
      z6ZG%I29GhEt|K11S;s`Yj@z+26x5MC#%%frx=xVUiOn73?)Oyu2n(t75f;Bt8$TY<
      zI_c6Eh^Ro#w`jkOX%sPsH(115JjM<l5>D|b@rW|=mvbdEH<F@#l#%k!GToG6Si%!p
      yrRXd@<ykQG6$_sz@VWGI3P8!F@QQ;C3WjAoZNB-lwkC_8TbgKpY_j5_R(}I4Wk8ew
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot<~DF#6i1Qi$ltN;^<afxCKN&+EnknRVZ)G^c6v{U12xgv4l1NbOD
      zgz-*6NsNh$$(=j-?m73&`{(N$fD_cRNHOd`@F(7iwN$OXQo`k`7la<y*UwY&sAb@1
      zVKE#gl;XboO<jg=><NF#F%%;aO0FCcMl?6>Uoo%&L!le^k><X3xQa!FyutRy9}M=H
      z^rh}Fr0Wfb!RiKgB8N2A^2lM8VSOllaT9wJ5#I8N5)7qbFeL*{Hq<X3EqyN|T5<Sa
      zk~Tx7KBtl-BOOZLZ8scaS}~?&+Qo}pW3&vsz!-9)AP%RZC(SCmfB)98nZp4{$mB!~
      z8Q4^_)TOXO2PPc7<mq-wl~K(!XDGZR$a(@8>>L&@P^4Ra4q*c&>Wn~nA<!W~!`jWG
      c88&|_^vQgXC{*XvkAjUVwi5GgnoeQo3nuY!^#A|>
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2jrB5IsYoAYP<J+Dff;t0LbJpD`v{MX60=QY7i)7PfTF_FlXn>d(?dOJWm!
      zH1S6n=UxaV;>XMG%+Aa?XLjcMkI!EK+(R>o7@_z|zLBlK*QV7qMvbKDIPRJBJ4TMY
      zC+`Mo>}$tPB2Ey0Nu6gARy^fuY5L0bxawv1F@g37nO(>Bd};fAX#$mCdcayO6A~vO
      z4I#H5VH;_WT8F-??NOVsd|%tze?V9(FNQ09LVVX5sw7qj8^4!73bYw2H-#Lb@X!`|
      z+MDo{FPsw*(bh#8S>!EP$b{Cqg$-O|UO65sdq`;fiFZNDjH;c&CLvoFZ>1-^U_3Tj
      z4VxkEmW3PGCZv34+8ZHXt}NiR(^x`2i5<fBuXYXsV_rDg_LV#T=M-)ewtA;(&NFRD
      zNLLA)3z$|Qe+h)U7Sg!Py7slL4uZ2|<@V&UQQ?<61D=%Rd9goxjQgjW$5EP!``=dZ
      zj8Y>tT@^z5&<Wgu>gW(%{9~D#VRzVJbxXVlF>E4%W%iPhm*N+e9N83(h9g(ldyP0p
      zfJXHK*`wU*1XpY4Sj!doILGw~Zq~jba{+ObyEVa`uhrTo6hA~TB|g`g1bB)9p7Aug
      zC}9tEJV!Z-MZl<_${tfh0(f;%!}g56#W!&*QT>SGdp2SWfk-#di(ss2!VHEOKFn(T
      E1OXD!>;M1&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fEZv6kWTtwAO)QEg+Q3s6}T=Y2$N^52C~&jWH=SF+LsIlXA#mW-=G!EC0ib
      ziIzkYKftfxONe`BswN`QhnchY*=w)0FX#K!mu~=`pj||cV4sNhq7z3-cO0$dSm-@3
      zI2F;GKn_)?Jon{?q4Xm*ipUep8{ofCgoRKBO6Y+MlJrC81%dVnbGx1!M#7B-LdUYe
      zC4kn?E;;D)=MZL}Dpy6%2zkq~2Yl>$BU!`(VL27m!X0<|QJ~!M^H}MT3`(dHDhJ2X
      z^nX^{GRvr-X28HAVbSXSncB4n31Zp6J*=>(@O|ly2x}~Q4LsH9mQd#gTBZt3l?|z#
      zkgO*p8-$&|$=pbmWSR!<;{l-*d09t<nsr^jTgD7(w?No3P{wWUwx?YAIzBy;!GSo^
      zl2Gk=L!P$anX^B=%tyy6By49z{Lgl~1Y<0JubnVs*}Ro<-;0Bx+*65G;~!6?olKiM
      z<78fM4y!0&mc3%?mH396NNrZb97pEadxtznfX(JtRNhwaT;Ohff~D%}1Zxv)Uf^M~
      z{uzyrY2qXP&!_aSumT4g*vDhOTgoV4!Df%iQYn5}XkvRR)ZvpjR%m`g<D88g61t>9
      Qpr6th8DL67Xr-u~9~EJ~C;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g{`Jw3dZpEg%$OMU-tVZG1E}K8ONq8XowlAwCW5q#d*DHoLRpFY?J3
      z6D^4*{s4az@y>4JgNQ!t&fK}@o^$5j`FZv22Y@GN=8+*hd?((ER;-oRay?HDgtr@n
      z=R&_xeLZ~jp(jUL1%4h`f_($@H;OPH$xsQeE5nGZPTZFSdQF(!3H(S4Uw4HU%N)xC
      zS5H53@`68?F#SyVN<SxL9k<ryWhdy%Jmv{YiKr+1LF-6|${)OlmDiVH0cFC>@le_q
      z#%aSYqJ)YC3k!q=r}Jl7yVf;`B@1`4%z|Pxl764C%7WLx6ODEORW{$SRb;EQIZZ=y
      z&ycJUw*Mw`BblkRE!@Wjp`e5GHiU|EUB6w#6e_pC<FQc0458FfzC4J}&t!Nk&OAvd
      zcY+>wT5!KPo*ZWNP(_5T)WrX$+GZmInU0z;<<xi*#iJk&dvaG94f`KYqG>wJx8Xvb
      zW(F(BVVa|S5*7G_jVF8Jq0Dk-j-$88at2the@E%GeESl2s$(pcSH@T!WBn2j>ea8<
      z{G1d%;{RMizlUY)V+}60_-rwyfP)%GOqNLTOF|uwCqgY=iF3L77i@mwO$LU}I0Oz8
      O8Y=}%Xb6o2wfzfq7Pc7x
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwO;5r=5Qg7@QnVsy6)#@Y6JP={9#JmFucUIR;l9)jtZBETY>j`*6Nv|ZfIrGO
      zONogeiI@4<dFGv&egAlU18{<76(z#Kqj(a%+^D#Bt7o~nQ}aZaXnOe^$(d29uEP07
      z4bw2^ax4?6%@;**&y-eXKq$A`BZ700K1dH`tk+P1OK1d2%VD03Wp*#du_X9G8i{x$
      zGG+7CqhqFOPB;qw+pAA#whAg1deRF`ru3xW9@(K=c4(bIEam@(2ws@xStPHNU1b07
      z%e!_39D+~c4+BaZ@hNPpoSm{K_La^8YcI>P$JS#E=)=J|HaMyk5c^HetU#Tu6&NsS
      hS+{e%K;x&vHIp|>g}s7WDKL+1_^d(L;qDT4KLHEJVVnQ}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW0T~8B16o%hvON(2+EEZ7^78LE5G~Vb1NMfp(8bVEqHO9nb+Ky$g-D!4bLH$?W
      z*hCV&*Wcld|G*pLncY$<+GxC)*>mQc=e%dm?B^dJJ_5LfVgeC{+yOu2MPJKyvFsf3
      zwroCjRadxL3U6Dv9j+g|Ziudy%1I!`FdM{6RV-Hq2MjZwa3ycogzHh@lk$BA_K0D!
      zq#RFkN7s1U7h|uEzrFbS{mXNP_@;EE-eO2+b^>6VJFQ|>yV7ZGWNQqul4=SIQA|z1
      zLXu&6M>=BH@6?66$LnpuklIlVD#@uZ*?nhB?@N!N5K{lCtqq1mM|d7@1<>E*Fw75&
      z+}n56k*P>JjlhdW;5<V#V{C@Y6Ij3^!#UGoiTfT=3nKtSy`N$k#u{N-dc=A1$dy`D
      z>Ib5s8J7ESnn~!Y_`2(Bx=g`4!DU*5NqGreWw1|XxT|zE7@T}-IvRwHV~ruJf&!kc
      zUfSkXZT+SzZ0-u%QQ8g%9_CqC#T4Cu@=4BODEiN87%WoNJdwV1R(jd_Re3}@3=3z7
      z!$AbBD&K90ZE4=b+TY&rx@jFNG^Z&21T-y-Ax?XOtO&*tqi=d|v`&y`i+mB<<GFkf
      zlkb9<X<Dtodz*6aV213uFbe09B8%cNiwndstaP9Cu+K{7dYH@Q-{aELQ{Yq}XM@Ub
      zQp(*SXmS8e;tG}s7Qr%XT34u$ksIwxjRqpDW2`<)UF+fcCpwS7$TbZD_lBs}fNJ3e
      XG66M<+<#EFM^N)95S8I(pkn<e8Kno4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXP%?`m(5QWdsA4+M&L$n)>En-I^5f&8-yGw3pQ*CnHHlEGG19&Jg8a8Yu=X^6c
      zGxK=f?f{1HY}5$7M3f>dbex6@EtSx@vSARsil-twhU<MI51L?~#APL~tm=NSBN$m_
      z`hKwd9Uc>!QGCpVE|esgez2J_vy?pNB?AuF5}YV6)IrYUl#%;gKX```{K;(epF90W
      i7J&o#C7{lSo3QYHz(#|4lW7eO`xe@jcB|U?bh<C2Ts;8*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&-BJ`+5dNB77}y<!tjOXIV04vbkw5VV#gO2##!Ub(P%OM+m_4#1!wfY$i}DIS
      zLT+Mt<Bb=lYByGyGG3%AsY>Mm{7LcvNi@j|q|!aE%uppYHPh4QbbsgTulxM`-_!2_
      zjNz(=Cc=T+#-=e+^(}j3)^gTV>55S)&lww;F%5A-N3d-h&g#h3mD|enHM9^?VN%go
      zp5eP5K{KnKryQR!FdOdg1P#4{<9l0^gt%=~IHh&Xaql>DZizreLW^IvDw$EHw;L3v
      zwr(1B#^2gd9DmVrEPsm7lif9;IIzga<=v8M17V*I9ed<&zmB~~CJ;kfM?1O+vFyNN
      z8xG>IhC_t(F2(5RK`SGAuImd<pAHSJlJ~KWqewErb+?pvt4^?;(UFkFcGf`6SJzjR
      zcg<L_nS5&2H4S^w@GS8gi*ZqaaA>!3GGnZORyHd0>MrZYly5Q@CvZBmjSfWmHmPBl
      zI}_HDcb!JVSas``Wg5QaI)%HY+K`_FhLF}UMmQ4Y%)1L!vs|#%I`=seI*PO?a9T&3
      zC~y`N8qN{=!_2VpGFzb+jDe2xfs&P~X-f8_j*Iw&(98|41_A{@(P|{@Qyrg4SZqyg
      z@d$Wo-Q83g^4y9rzG&NO)vy<Q!&ec;myk|yr!MQ5#^;0+jj@Ry@c|79i3PXnnd-9j
      zu5r;DGc1P^^rGV^FVACLQQW}xf@9il#d22XlwWpBI_5CXqhW2|n{>7qy)f@D)Feh(
      z(ip$Z{6J=lzYv83%fke8bjTF5P00-NdYs>Oba2*3{C6Eqi~#iI2J1-W4%g9{dxEaq
      zU=0WA=oNdUj$_|&NE43pHx&SIne-HU=^47{2b|z_odFpJ{m8QAIYO>+#2L1-m(11B
      z`y-m;k7AG5eFxVfTl7l=BDoDQh?5P72OKRB%M5Xh-xRa@8p-c4wDbfc&jt7=aYxxb
      z^*kqj9pizm;f&N#LudRx_OKnV;le|7%gR^p7p5LUldZ?wyn0zp&<if{C71XLJ@gvK
      z=~oQVZ<wIpBYc;)`A(y|!S`O!6<~%zKg@SL;CqSr&ItXKoL<A!w<z4mk#Jw)%=q#S
      z>5ocZ=?~`gCv*CXIlW;{Z*iLb#(DaO$NJw0ubBp~7_J0W74Zez1Tz#RrIBCqH_jtI
      F`#(Y#R|Wt8
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fEZv6kUhbR_dq)1w;`qptgg6c!v@+!5abP0n$WXbZAGdmMNKbOnB4JP@@lO
      z;L%HpCa9SB0Esbbj6P`m1%JV~_RQ2lk@(Pa_GO*D_gd#n-~ODN2hfF76jcg)t{T^k
      zPN$U1cMj#OYi9P0QM_{2m~0KalUB)|iXyDAB>-1ovbz9<@T6^K6_P^%Dk$=gk|~Ai
      zk=$j=C^@#N(7n>R-qFF-Xgbx`5ma+KR^qG^E;^ZvLZoyhS8Uy<(6~}9Vk5mdD_81M
      zIG$J$<t6flb-8nR{HmELrItsMY0jVUW)nNyU&xx(P^i%m!<raE*q}kfMvClr`d`6n
      z)MHZ=4GIk_XsDqP5%#hRg_88zqG1&xVr|t>EvfZX$vo#wjGOkTF`lQewL^uBkxv_T
      zPJBNY7O50M*UTwFxb2pXr?Bd}k#~5!{?Fr6la&%7a%Tlz4MjCF8M7z_6UnsD&^5GS
      zufiHHF>Gf|TS1LUu0um7cuT7%3fcaGW0jZ~P>5#oreQgg3L6vtBl>HiM3T*f>>&*;
      z*r^a3DL8h<JeBi!E`7iqLP<dzuq@N=&l|;}$?-%T|B?HzcDQ%2XF2`!KVp3z%>7oD
      zJ^$a25!*Rmh+mlecsKN-w5qV0D{m<9<8gT>K2pP4Vm#zJtY`EED}=eH^tM^V^}X%S
      zQQKBV-6G;``Yh^nE}Li2tV^(r&Gd9`j5bL`vQOON&0Kf7?WZ}=ZMM9FTHHkg?qM75
      zL&pQ`$3xoS@G^FadxX1KJ9xIrwWv6=t+WG_kn&Kwexr7~HTEDuszT%keZ~DI$BUPd
      zyoD)RO$)FkaK4Q8@WolQ>t4EUnv@t9h_Li2>59B&aLo1HRFfdY72=Yu6!=pMBG~jV
      zISx~8;1O!@1kHGgB+595S@hx=PGAnhRDTRFaRIL|fq6K1jT?C5N~C#Ye2GMkAmYi<
      zML8>XdBBxmfxbv^sWRg<T4XSx;E|*pr^Vw>2+g2dyhShIvh#UV@{NKNj4%%l(meQ>
      zokHXVUTuu)J6`#Fes>?R6(9Loe&T$e(St7-#8;&84F<k1;dW^mH;D+h5Ds&#!Vw(h
      Q9wR6IKcJho_i}rF0pl)g3IG5A
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+fEZv6kVrGJ20Yh6NDl+K}%5z-eVhHs*N>xNm`qTPlsUwgToA&PD$`pe?Su-
      z{Re$&qKO~i59o`(V%+=8&}k=-Cg+^lXYIB2+GqFIzwbW*tmA=>l)%KkJd%Z0U^|6P
      z+kI>8Jdw@4nic5K1cu|wPB<fQJ`O8nzrd&pInv!NlpW8t<hEn!Fa*Zbh3yq;mTybP
      ze#bWgLrwMBu>7X&xv#2^1jJKfE_-e>kZ#bBPRmOFaei-o{+pi>$dqi?4mJe(a?1??
      zt?cbs2Kq2Ih#?FMT%_Wy=dFWn%ddwDBb%NnorWY;QjCIHuxB>~CO2aTJ+6xa<Gp#u
      zhbOr+XC;;D_2LF)YPsrigNwStMP;cdu9-}i<)Jj~;FvsC1=6`{CB!W-Zce~(Jh@Ym
      zX5je*sZf2nF0HcXIF=bun~H3Gpl0v7GHChK#o5zwr4?0CD6-5VOT=rkx7c?Vt-$oD
      z7ZDFRV<R*xTzMCgXX2SWB<riE-*9I_yqb(!;M?vl^-9P38IwnJ2G+13&~J9Srg49$
      zO*OCOn^wi<0UGIfw^jBfa8Rm0?9zL&y-$rRZX`;knGK(;E1rn;4szrnF~mj8gXWQb
      zY3LZB^AyfukoNQR|4QKk#c9wnOzQ|m9@8#pPv_eh{YHmAT%y$=C}2awKE~<91O&na
      zF4I2Q6Pcnfrp(gHlrJflvorZ@8`DY77O@;D&hZcxaS|Rgm?e&wJwtaV>~j(O8)XjA
      z^V!8V=9BdAiROc%pCcf_I`n!(&#|jmB=J~?Q71x6baRa|Q@F0|Y|$ySv(iQ`srQlW
      zd^*EU9xIWZ*ea{A)jV#{9dHw?9lb)Nr>V+~A6R?M9&ddmT=*;*mGh;`pV9GW;I?WX
      UKi-{$KSr@~3U}3dFLHSQKSSLW9smFU
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%TB^T6g>mwRY4FD74d;FreFfPRl<g7VnTEQVL!kG2Ww0EAo5u*jEM_Bz>hNC
      zmO_FMo3x#C&V8JF=lkdL3&0glV+b)6Mts6+t|RqYOB&B&(2}-uc567+GzNts<Lf#%
      zhPB7uNc0^BWxyTIkZt{yZWt16IW)NAT7n_m=@6qB;+2w$v*@*rD5~_2T&Fq>iiwXc
      zF_ETgGeqmskWPbPM_YAK?oxn8N!~$enggLCjBFAqY?CXk+)aQolZYV7kfyQ4gZt7G
      zR)_a=@||s&eXe)8B|RLFit{9?aei5wj_3OM+5vp)ReziFDb%*<T77XRy;ffHVCPkD
      zn+(Z&!w^<e=e8~E7>*fo>u!i4;#XzR>YeM=9W+)cT+-BGx_a-W(Fw)q6hfT738)La
      zK{&aD88InrQtT`vjSMk8!Xf&rl@DxHF5Z!QBNRrSzMFm*8wy;iJ;5$<`B^mfsJ8d0
      efs6emt+3GIzTX4FArx`wXE5T9aDqbMr1T435S=0b
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7YjYE26n?gE+O+8w%B7{0Kq&-F0=5MNkzTmOf|0bvwie1o*(OW7G)+3mhKu8j
      zqoR&}bG(1j4+^8AqP8$21NAmAUdB<sd;24f&&h@)ZKCpF_kG`U&Yt%<=RD`^_kVwJ
      z6TlY4-Kfy8?zC~nXwTSIyggziCe2vHO547|Hf*QdaA~N|+Qp5;c>BQEX)|iOQKg}=
      z`0KPCw#}4bCsP`#ClkrDiN0h^gBI4{N|@(t4c<txeg3xIgq=Fysi9`b8c!H@CS_`9
      z{SVWw;c#aU?W?C#<{2xQNo&yKM%o@U`EA1Foz>IHv}Ie#goY}6!b<x(h_$Rox~b~2
      z5|-Vgq1j*FBpeuF2%%)mtO5P#sK*iy6q<A_#Yzpz9~h~@Dy(+Ht6_P$7<H^cHE~TP
      zW1(awVT+@+I^3w157+5fFKSoXdLnzr1|2o<i0U34et4*o0OhNojyiZeRBhIAFWTsI
      z+_bYP)X?G&2g=6ab8=jR4g}rU!dT0pbgbl-Z8{bUqQzu_*`JvjGgHIHSe%7f8c9Zt
      z_=u6R<eU?_B*_|l<?o)yCMLYnO2o`_QjvMC&QITQ*H+d~*YI#>Puo0ac_u_B%;+TP
      z=0>-MKq0nJG7-(BQf9)Y(mG{D4Piy^xu`iU8xOkBMB)iO!wx7GlZ36iL#>?DJz=E#
      zvmB=WsD@ge59Qgn+@H&OQGZCB{s5WkVLBhu(TSCAJj|*W!1X7GGSP|NxH(09MVP{9
      zk{a~sSR^Fqzy^68((woe$%L3;8&Zd?qxm;hrOc`18PknN$%TSG9FLphMtsONY_sT|
      zVKfPkj_4SL#N>ROr&8G><cK64p^O+?ts&Pm#Xv+`<!9`H5f70+E`4%b*lg$+6E;_#
      zvQlXd1TD#jq*AoyJ8e?t8A@hSQFFf~Y!m+FhEkiv!%hz;5@ssIc1W9~TwTF{qe??>
      zS9n)xW_n6R^P($^E{9PBO*niiQH2U=Q;y6E=}F3JvwNLqHsZW9%Qf%J76R()WnS<b
      z`EDte(PBAw@6*5H8VYWjMMLl!Rs=WApm`Q8Uaqb0U|CR`g-?VVXA!t0dhb=x*cS}W
      zz&C?-ii6%+Z2gpO6z=1DBOyYCP^osHMy<yZwG%7VF04_V2&moIs`j8;?ZbB3HZlNS
      zj~%$5tL%0XZUr9TUMEOLw~K3qkT(bW7*C>GK@2T?8i@IA)Luu|=r#1r6`(AV=u`xY
      zR392ufA&hp?TXx$g^NTY7irjyJ-Lhaa+QlJdCAtx+&B?diBKIba#va6P9%=Iy?J+`
      z9B#L`bHx@qG>RO$OB{;Cak!6Za_V;=hp(0neYa5Qx~vvDoh))%TjEqCj?)LrIt`R}
      znz>7-HRxr?4p;YQ8TT?=*^G9RYzGAOZK+$Bbvrm09F?@3B$<L)b{!?RW)YEnWCs00
      zy6kS?O1=_n*cMPv!=;`<t$G&A)CH_o&mpLu$9DBX5zOwA*hS*RUiZH+10^tHcVGqx
      z(^r6*ZHV$PUm?s_3G+3=e4Q}gAj~%j^R2stIh1dJ8ziFeax|C4NEY5Ovp6y*IpPzz
      zh&m^s4$?vnoh0UPHpuBJ4vT4v<i15ZK2m6*HYuNam(brM^oxZ40Xz9a_|-?)ranfG
      z`UGKh1w-mH98sSag)&-_agjI~KZfIZVw@0SXl)EhM$t>TkQxZ6SpYQ`L1U{^+$!SM
      z0$Z-5V|3FsJl3~a;+{pjtSm{t9B*NfESq_}1nH9oZcmDVqw(?BUeIg|@*G%@gZ(l(
      z)eYw0Ca2jPR;e!;|5u!3U!zlfgOK_b2h}YMs@piBzJsZLKwSNZv+5^2rGCZ*^$T89
      zzh-l@)`>Eg8^(($23gEb3?RnQ?aaP{mE_B@GV@k4_BEVZm_s~Cxy)1VztDnnd!SI+
      zM*di!eq&U>v$B7%vVStNzp^Nux$MoO^yW~?xGd-#Y@!ov3ggsPU;-9b`3Y(K+n(m{
      J#u)&U{{W@$S|k7f
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+fLg+5S=9uCxlYklC&YTNiURjXh~`5jYLQ&N+nB3JP`2!PfOwkqs4CRHER25
      zedq`DqpHrX?M-Am4~ciq%$%7yJNDmyzyAQh9&`;@Ah3GPZdoT34(}X0fiPf^z?#B1
      zb0?jX%WHdtXpzABG_vn;j<Dmo1PW|CCQzf+aXPDOo)IXYIun<P(6<Q~)EW*HTBSMB
      z=LCvW2FL@l9&t`!BOz8TP7AB3)*NSV2WbvfNIkBUm)^|x&15f)xXpYVlFC_1BhMAg
      zaRUOC<fxk5oI})(dMMi8L&h<yFtG)JDz(h)_;Ps5#J;i46$`HV-WVmr!WIhWxMTar
      z$yb@1&5R;~!Ob`EQ)QrjB}dpk6CU<nqj5DQffeIerjhIDDd})R&H`a2byqkpN0KXV
      zWtLMePU1t}=3HmO-Ovi?#hb~;Tb;+A5EOm;#=Av*%F#jH0-ojVsB<BZN^d9oF|*6v
      zT<y!zYAX2`1Lv3A)*!r;li}u5E7K9qS<iu!1`XjI`98z@s8aJHduIeF&4KenTfN~y
      zmg10J42NA){t;L{^+JDSe{r}JMYg>wUq=G{-XJeGOBW%j*CZMTUw+&x{4L>!qmCa4
      z14?L>(OQ6IWmmMlg7zI))%IOwuW9=p+V|lB$PdjrRMfKyQ-2NdhcW&L>N;-&@dj+F
      z_{Z=>J)6){&!_NA$34fm7qNc}UTS<B@hza*HqmaU_}g*aom4-sQub@u)jS>Kc@y`w
      d2X8h04)J|>uln1E4;uf7ntf8reU248_z#ZpO%VV9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%TB^j5Iw`I6hr|5Uq8@pBy5F{xWJ?dQ4@>{cUO9YCABr}ZNs;@@B{oP<8W<}
      z(8bN%Ip@ro$@%{I`~on-m4OmruokHpCd%`Nb1znol95nhWS~N5Yt9$JYWVQFmP=)z
      zM(F-e<Z6QPCgOX!QG~K(zYv<-KSnb3!XzeC0!{TSdwys+CYTFv6$q6?l2Enmrx|1Q
      zkKM4j9d-g&ZnU{WXys&%3fCp{t)jX8OsHAxs6UZ>4^v*kCo*1+C7;_^gh{lNcb?Bg
      zXFr1L?Wu&@$?T?RJS{?hh)y!kWx|`MW6q4X@vCy~Cg*CPj%~hXRvTzCd&F!BEyj-z
      g`V+LZzLV81PIvkq>-!jJ{%jv-uXF8qkvU)f0+0Z2KmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+inwA6kW$2XJTg{A>?LC(gs56TW~R#mL#}^G$9nbm6|HFM5;8lPo1HYG1y}u
      zs-P7@{f8pn^9m9Qg-VDwq(1T$2&uo&be)+Ao-{#G=G^vKYwfkq_TT?Le*xeG$~qzf
      zhp(A8&3xOn?0m^;x!=lGqus2^3vH)nOC6fPNGD?FsX*7P<ydY}Aeu@q3utqVnoJ;y
      zxPchD1bR!BBfoC1Rb=x!vtmnu{!*iA+RJ9sQtMz-b62gFz*wonv|Gyz;Z{wh>Y{YN
      zsa%s)S70*b-?2@no?mjCmQ$ZehqnB<nFIt580g1Afu6c_=NgVH9haO#sr1UqUKa*2
      ztYb)^&(jpbH!y-EQ<pc|rcH#wu!MjweU+B{EZ0@O|G&>Xx~uQ_2liqY5ElP03Fs7i
      zS+0{NnF{jqN;U7a*JRUlt%gIq_>xt3Ot;;n!Bg*xo87IXIHThjo$1)VXtq|Dq?^D5
      z;yp+qqa!V_uM@yS16gH2)U4Iw^mWR>apY;pb+buN1rGT{p3a>QhINSIgn^GR-h-1k
      zt>YB^>wt%{GH?c;vRID1?ateB%|jm8&dn=F;I%?JYhW7w18J2TO&Q#vZG4zl<7Aym
      zpolMYe7=Klu3_7JM|81e;5;snP<EUZ$OpCca_IzbKe0VZA;{SqGJt+jS69VrC)Sh|
      z8V((YGG^G&&gNLZzTF^4Lsy8nXDJ1;p{Nk>d!iFdUZXEqsx60i_uFw*7j2vsj`HUM
      z&^TjL^Q&`plB3`l%REK*V@@JS@SETWEHn6f^l)bQK^*sSbpZR(8vy)HSdDv=nN9SS
      zb1#Y;7|iBI3(>+R2L3>tQ?2mmespW};nrL6h><?Sm`7islq$MWBa6f^e!?i{6R3Nv
      z86P=dB?k`S1M<c&j>C+M@a7o*KBNYrUL$vocnn7sx)|Yp7uTywTj?)M{O}Z$<*d@!
      zpUWzZFERKGA4hP-7x+)+33Aig2J%U56Q4}SHZYJ&#-5=d@GexXKNEPc^(Lu3!R)k_
      z)Lw19&i#pVD!ZuXUy=R*E|s?F*iH1|77pSz)!jlG>&W956mSP;aTl}r6=jZB@Ed;Q
      zeiiq;?2EqkAbaJL%9&k^70lsF=Gw>V_}S-)G*48G<1sAYBAFMdV2DwE{3Xu(v#$`-
      PH1!+GbAikJMo{_>Hj;hP
      
      literal 0
      HcmV?d00001
      
      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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%0A^%ns
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO;5r=6r2b4Q&1HAx*OA8Y`6;XLNp=Oc!2caZN*I~*%a-zCj2!I`~ZKH@zD^X
      zwujAT=Iu=8&3=7<t^xFMVWC0jF2sijiab%lqj<Z#OY>}HVUN%$2TG)I@bt2fvz%bY
      zG7sg7(DVF<|KkC{nIv&4@*<N2!}F&hb2e)tp^7aPZ798?uDq&Gt+nk<qk+$d<#VCu
      zqvb0*Ha&mLvE+LplqQ_ixjhry$+F01@;*_lv3bqwO?X0UoTf4xDWSF07ETH6KW*?9
      zWgmp$FubWIjcT~t>NAtTQMq%#;9?D!j4ehD*o>WD*k!zr)^6Tre1JogAA%#+G;v%i
      SyXf)l@=M+uXQs1tJpTdk`fbYq
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fLg+6r81C=K_>Vxs*aFmr}b(q<yPu3kgM3LTS~9pgi<#8&<(|u~T0n(NF6`
      zKY)*_I^LKl#HlRnXwR9Qoipd$|NZ?3z<a#4F(a^WBL}jPrGajIk$oGp0!t>PW!P(c
      z{eGjmslZ%UD;WzsaomnTy&Hw848o+P?gZAH&yyEC_ZyiXP#vi=B~Vde8sD`Q>6RUL
      zc*nfUlqXPa2fa|HSxo4=$+|xVr_96ioXWp!d6ymUl%Ig5er8f9l-SE(IGQG^tW#iP
      z8j!3c>SrYSFr{ARDcTwHj0AOOD9|-@m1~(?H=`@IM;9*y>>xS6?Wc5*XZmIRP(ydt
      zOWl*l^hiZ#S_`Zcq8`TP<x|<7NczXTc5DpF%T}yzqXA!^O@dzx)*v4X4cmP5Tr<*|
      zBM+jG9qjz4<QrCjT06?(uKE;c5>_~vlYA2d<}bof#Z4`fL?t%f2&_I@v*G->R%VU@
      zzTf&-HnlS)cUp#70<@4T4J>kd=U^e<VjC3`t3|A#PTV|EGgx4KvB*Eg(kQ>o{0de_
      z=Vv^xVcqa-VAI6sV?0}|zrgkgzr*v(3BKLp{wwT_aQoDIV3Zu<HDisHBmRz6Efl){
      E0M#noVgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{`JwANN|DIisG5s-d2KG&EiN<uBwq)6m(C_@>uoo#k!4gM=llqQns
      zqls_+A>-ZM1`=zGFS~Q+o;l~-j~~Cjd<F0jjWiO3(p&LPGy|iY=AQC>r3X8%Hx%ZH
      zHwcDOo9AbJIWo%CX(S2u6?)fk<Ulwv`VvK$_ob(Vb09sRU%lRaMxZt!zwK(@2yG68
      z6UY=h0B!v2bJ8bRoru>FdeH0{k4>})vyYTk<}qQhG@ULV5R%*Ou}ov0u>9xqr-5>g
      zrI&$4SlB<6wm*`6b)xzrETv{=F^579Ipo9BQVz?w#foAylKPlX|C{2JiHS%ngCb$0
      zW_$94i?)qx3tPLoF3*&2xP`Wu^s*6(-O1rDRtXv7#-$PprScScD~lNv(pV#`URBo(
      z9Osp*w2|Ir%QILf6sL-`m2Yc?v#5>2H4q-;ki~VvTt{iy4TeY3+ZRWU4Eyi)d1QhI
      z$MNJcX-*Z-rV?BGj}76OSp#X}jp)S<mmVS8a|5q0cT^~~{_ibogtcOg-OliaBv3>O
      zvmB+PD8n~gLUg8ZdYrkz(R(C01Jo-Qm^-v?j<HZZ$D*~upL5(E<6iYU@)xiVt@~qa
      ze5+JHWAkG~v&G-lh`!BaZKivH6?Aw;d)Pu3HM~TLF-x%k%BXO}Qjrl}UsU;hY@^A4
      e;#{io37a4IkYEZ#{((0UO)dsZXo%@URQ)$bOyF$*
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2hUW6g@+sATH8wX=_n&sztsbK4W~a+Js6Q6Dp>UQy5{)vP*Yo)t{w_mP8VL
      zH1WUq7mRmzNt=k#mzjI#-Z|&oj~~Cjd<F0j%_L$B#W&)uX!%-Mts~`m${rm!?nLNU
      zYN*H0-VfwdE5}YE&cLryJC-F!!irKavl!Mq=_+CMrR&kJmz}2!?2sX|@7SIew(bkd
      zmkFW=eop2T^cc);h-(RZ)aq%M6to#uA1Pbu#|)e0<#46X5Z`x(GKn>Y?LWUi@s%}{
      zZVD#D#>rT6Zz>1swHk<^lsZo%i<|)inZVjIu#KC<D5g_s4;dPNV_XukAZe$NXUNz2
      zgqkNkF1RbtedWp_e;0JH8Bp9da0dm3ly;&58FJ;y5@b7#737lGWhh+LbnIK!3rE>n
      zx|fYk;XaWrmBy9FZAvFnj@&gcJTQ>Pb%tzL+49(*oJsdYoLMsHx-+0b2^tsqi^sSg
      zE1F0tlJ>u)pfQ;vsiP(6MLm`-L%Qeq?m!->fQSEMtC~TT*d?7Sv=A}mk-#c>$<RyD
      z3yBYH7EFsGH^@6joFYJ@I!E@@T%Td1c7aWEhmH%}n&EEkJ2G?dQ}f;od*7<H&nSKj
      zVM=sv5ed-24i0H5&rw1bbsV7_#zJ6JP$iEjLIJd<sG+c+Z_&*tmZ*M0@dFt#f<UMn
      R=!Y;yl(2wd1RrEIegmIk*vJ3?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3OHWfl6#h<cOQBq#UZ@Y`A;tx*kA@||xT%<cK%mvG*bHS-M{e&mcjg-1@>BQ)
      zkU&ff@B{cCuHCyZoS8OhB9$<UnRCv3=ljm%>hI4>083cNBSU!lS$q}M)Tpq!skBy6
      zyDoK{CM~)8ttG!06-Rkw3DXW2il|+!r;$;e{y(9pWuipbl!<2i$F;WvS|^Ov;z%12
      znWhL+nLBS>{Q7fr_?s}&3We5Nq9X~xMxVK15-wnc;2p^CgrV0eQsxa|dGRLbE|GGR
      zkgdi0vH%bFe2gI=lm?KMn<F4h`6yu2TK9eU7$r<>s7P+5ojsX+5PP93H*RsKg8OB^
      z7tESZN)w)SYr1uq+#E5~Z%b3_4`FJte6t@O0Hfa9Nfa7xCGV6iVfKHEdSxex1+L%Y
      z4SSeI4nyqa*~?%Ufo+fNz&7U)yd#V=VuHPW#$@>|R-XUh>%|!+D=*JbI^kFb5BLt;
      z|2DJkFjJkg8hFU@N;eOWSkay$9y32V%PMA^Wi>sH&S18uSmoEEa+Om|9<$Mvu_Xh$
      Yj@s`6denrufyt$RliLH6=bglpYk!NQNdN!<
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O;6iE5S@jB6GI?;x6qanAS8T6y*3DOflFw62tsOZn`Chot!(5tApRN$en5Xz
      z#dwlzmbI-)_TlZDd2eRc<G=r2UIE}c)Et;%uzt@Ud2J9$Rr|#srN`S!{NxV~d|*%{
      zPI2F>{chijPUOHWgOy1}GYBKm#c&3$3Z6uG=||x+gKFj4POVpmN92SVdlXt{kZ(%Q
      z=g}Y(3`&)oMta~G5;wQ?b4<vQQ$wInIorpmI?f?s)WAaTR1k~{%@H82`HqlE`rfDo
      zcLa%>>q)PtyUPy|G47oV`_U+8qmtF+b~<Bpl~-KrEIb5CT^YiK_~3dHQ0R(&NBCVV
      zmxjOjPTssnY`Bz38up9+`0}x>rid71Xd;K2@B7h)NXDA+EfpsvjumJ7gEp0Wk#cRV
      z<QLO2r>Q+q0p$<l3vI=3R*=!0(-VC7m7b(IXDOgfnQXEGOpAz1Ma|VyERwyMl6s5K
      za6dN0CzUt+{<mSKW@4)}X$ZQ_U=Vi1l~lNgOXjps<5gzx=dAG~*~e|l*?BT-ctX3M
      zG{=7mgK2zc@V~T%{~ZT%i1LW0z(qU<^BNZrFIfDd#TPAp$>NtSe#PQfVNLt3qu+*w
      zKU(;cg*RbK=YPihFYs04ZN%R!yaOf8?;^hk`x=)KA6R$?Dw?lS{GrB26mMXh;W16}
      IWHiy!H}znDvj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O;5r=5S>M#fFhrwfQo|haZut_h%qLRm=HbSiQ58eS+b#~6#Q=<`~m(b<8+}5
      zwk0Or!<#qrX5P;B`{(lu0B)hGL4ZJZLKn0#x439L(*@V*K(HROG}tAOker}Xz40=b
      zupvf61k&q@o?%*Sgy{r=!uVh&fl96Gu4>l3Ap(&e*QeB)n~XrX_S$aN@u1F|Fbveu
      zhKvh7)d_^gTp!!gk#|Fg4mW4mE>rUr4c3+_VLP=;?aVN@m`N>LGwT#dyHBe)HZAxP
      zEga|`+1QB9hHN^*X{6QspX|+B!{p*t(veH8<(v`F<ZM2W;txLe*Z1CEe`VjZI2@sB
      z-)7%F+mf77v@xU0^<De5-Byl0%Cg6{1f_3LE~KrdkG|K{rk;9R*sWxD!_Sv@n$>+;
      z_!h`5{ihb~8FO>UI$YrUOl~gu#(v)f9$W1@uY-GUXc>`<Ql6GG<IhB32Tu@x$T<FR
      z8iWx=5CtHLc+Z9RT{z~#2M|~F39L`La0=3j&meyYS%r@fAG`P*<P~2){sc}HK0{n|
      a;T)VR{zB%L6fVpB4U8TyrPHgG<H|2*Rwai3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwu}%U(5QhJS1Iz(}AgI`=m0%(<c4BA{6BQ{$&&pzf4Xio#%-x>xk!-C<EPMca
      z8(+iTIC~IHjETk0?CgH~|2y;g`TPQ450w;R3>&xnp4USy-FnySg@bY16%(O!`(YsN
      zwDeR87DFYXT&_m-i%@Af5#RR=`9S!RyN>V!;;&AQ7}zO8w&kfnbEO^bh9YtE(RzEA
      z2agQNL#d>0GQ_v54ujS5hQdZ1iy7ERGvqo_iEcRQ3;&Y$UBOW3cmp!vWJC4*(9&ZW
      zFl=@H>!86<+MZES2R-deHEL8HV_Gt%Mf%iGXf9pj_0#K|WUzZ)=nurPG{0H@dr-UP
      z9X3II(R^uUNFYf$MO6$7v`7bOiWxfDr_3lPYExvNA|yxACJZ=(g>&R-mzhCWLV+qH
      oP^4%CnnW5lS=*Un`L}{Y=GT!zc}C3@h({SKq`|OCuVYyI0_1jbP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~i!I6g|xjyUQ@J1PKHsuxJd+@}(G~W)T%a3<?Vgk%VZ}VYh|BWhTzfQc0fk
      z1N7Ch;!DbCj1N==C`^?}nFp)<A-?z@jHhR2Kln&()$~sHz2}~D?(O;ezu*4=@H&=b
      zs1s;gGdIkUl4li0=9Y`n-7uF6G6qec#Xl*S_6kqdWX=<a<yQGB^8(_kK!f8aNVh1^
      zIa9@%vFxv9{=8XSU65WzAUbB*mNzaCN%b!ZXp>G}>WHApKm+s`5&|91$=1<~rUnSK
      z8i*k-kRZ6sme!Z0dr2|n$&8aT3yY>}srPVG^HwdgYOi5cRYyvVW<DQmNSD=92jZlg
      z>0gZDMS<?B4cStmFz;BlC*7$VIeFc)96OFK0_04)&r1?CX)`8SHbzG$x|PZvfums&
      z-_Qlmwd@s^Py%}myo^_95A*lM1;%Ik>2|yf%AOrYSHQ>>r0GruEmEeX4Adhk(42Eh
      zwpZ3mU)YFgRe8|B5YlW((Yi$|oAa_DJy{M^5w97X6mpBYa^2ZrOmxG_dDc2Ru{XG=
      zqTe)d8oEHe&qP39HH#r1zbIuSY{#>{x>>HlG=YqPcQE!G>9j~-+`wCSTa|d<zz3M{
      zOE@<9w59q3H);ko6T?}7rs_;_4jVCvLG}31z<Es5Pm66dJ%{~oFJt)EU^?8-G~#2-
      z#xTPft3s7e4P+G!&6YR380PoHl*Kh-4i^n9;1Yc+UC)~y2@f0`HZ{1JgDTW?2rL>n
      zsXUE1%WG=dtK%3B2QMRAny8tH;Mxg`ClsnFp?im>EP^*dFG{b{B7MOrxjA{xQWq-`
      z$WY{lRZ;YkO@yD0I{r9U{y$zyu8JqGGM|lnn_!gS+LGRZk$!~cr5&_v;mD?+@dBUC
      zKF$O*oJ9gtXycv{<lrdU`PPdL91HQTFuIO=#|HjF(<5{)wZ622<B!u1ab#c{$;(yT
      zRw4rPd|qIUi^N#)vD<_E5SvIifmexsLRlMDImH;oI+~7bp|6Um`?=Ss`12Z`(F)Ig
      zq(g*Jt_mTpm~CU=0sq%Q>5cmPD>eD?O8#&~=LDmbPCZmMQll(j@eN&eYZU1fMLI@(
      zMZI{VqUiKqKBx9;y2(%KtwTBSt}$2jawNp4C#Sysf^OF&*N0RDukt}l#Wv3DFaIqq
      z{jLU~Y^g#R3(Nn**4L9pHoc8^zlXM&UdsL%*!$iSOwJBHy@%+~)5n9mnBrH0%Q=BF
      z+C8*&YP<MI;0fl^1G~5o!R^Si<3Bw6mq4Fv(q@C7<}M<4q1#`BMvZbGxI<%p<Y3?B
      z+fN*#yXe8s9F<=%jQji^{>l-*k7+!>EPnG9jQiIiTWLoYmvMy}I>>$rS6Q!zRtEo0
      lB85-!8I=tqiEA7yjf42bA+BkM4B|r~ZXN2{mt<ZC^M7fLd%OSu
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2m*#Ii*F(vr*^egCB5)S|M~B6bEAMg{?}curzoI#4_-
      zHMxY5fvvP4C9x!xkwII-2VGZUQckKhL=;JnwPqM216Oc<X;E^jTV@VWD=*9vJ&*}(
      cj0}tn%s|&LFfan`WMyCju^8BaBohM%0Nk%EDF6Tf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+fEZv6kVsCwzQ5EOQ|AWP^<PL6!7){;e}wVLDWD<#0MGLlQN{tBy%D7DMlZR
      ziO~nVB~%k1eDuM8@fXx}W_lw^nseD_@4ePKd!Omg-`~Cin8xh{A_Ak^#;#HEJ+oPP
      z=$N)+de0vD(wF(^1T=x6z}+;gM&-fgwyb#x#04_Fq^c(!!?PWMm}%AJo`9%wU$cG7
      z6Nr0TrkkH4%~CJr5YH@w=1j}<<^|3aj*Kd<31|y;T_!<MI#M{6LKGPtI)(+Jh2om>
      zjOa*UK<!TINMb-By<}Q)+27fe&Z@E5loY>Y*No<x;h4&9A8Jadz}Qg&^3xQW*fQK@
      zxyO5vZ#{|gxRAg&xsJG-j*Ciy=DV`a#R^ihg<?q3S5#srSImZGc)ml0u|jcmaaQ3M
      zbQDn{v&#}24f=+k{4YE1$Q^rErkFCJql`(?6{@OesTJFIYVwX5T>Vh#CzWggy=qy~
      zS!f!rD_Mf_zxaJc>9l)}0_Q0^y=c{%wrg6A`_kL8>pE`YmcW47eHOXSeS<gF$)Cj(
      zn-t}Uafa#|XQ-Y5Lqn>+v@{MK#~C%q-91G31G1%Z3+d8VoG3+Fw4yEKKJz?+Q=BtF
      zmco5bv=_{LiBX>GL}4yYV~i^w8_u?I=a{K{nbHAr9O(m`dySa3AKm9^h#C(fUiBem
      zx=5FhXVm2&_DZ1iDK#j>i4g5->G1)w+QvH7&iwfEOPM)sgR(n*x@SIh$p(Xxyg?3c
      zF^+eAq!V4zGKSmo?*?T=2u8r{7hDSo>*VVdCPaPD!hXOAKK7yJ+Nc^TfrcsmJAf_V
      Tx6D<QG`!pluG7-^$Zq@vFLc~M
      
      literal 0
      HcmV?d00001
      
      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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
      O<_UhXTR0`=#s2~(Lo|8-
      
      literal 0
      HcmV?d00001
      
      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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
      MhW}+(qx|px16dRbIsgCw
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~{ZkZW9RED9#~tU2c!+iynwH8PAo&6+7$t~$#9N{eSn9$(z|yjJ?(He`LRL0u
      zO*Pf@g40aR)QrvK4>jr0#7x#N{?I?te_?%|-9@e-`{DL>pMAdH@8{+FefE$0zx)bd
      zFXqB15!f|lTrwK-u4y&)JDIF>+}VEVOq;o!nXx-EmL<nr-i4tF?C|#H<XGM@-Py*~
      z_6bzxq+=S^pmbD*GpS<&qDx?HN5;;%hV2d-R$hjTvxi4|o4WoKSi_n@xtu_C_cET7
      zMsCtIMlIROU4~_y=Pz?vrkQX=pzMfgn{JyxX>DRqK<mh)WfY}|>8QZEFg6HOt&%H>
      zD#Xemut`T0YXsJHo3`xDPmfCHv??YL>&}dkfI%934i+_c(j>mxB76_ii;zo=G@;f6
      z5v!=yniz}{$Tl61VY@)o%$<@(y3e*|JyIiKJT9=s<6s%~MB_jpeCN!V%qmkN*eMWk
      z7?fd96g#k6k*}qUK~+D_bxeDL)xt;$Ji08(N&;cjFWKycrs)5KVI6fQ^3&3GA5@N_
      z4zVZ_Xw>l}_6me2q}yvuQ@stf316e)+7axhYsn~@a4?K!c1aN}51x)gI80aN#k^su
      zMkr>`H#)^OY)y<P<63p-SgU+|N=F->rdTY_PF^jd2uhHooT!iLXh#Q88(wp>oJd8`
      zNe`5m^_SV+?4<-wC^=6G>@H3{;LBN*IapD4R-sGBv*;$MY@VPF6-NdLiXxYYtz06O
      z<-rix?C)5uiv&utS%Izoj{lfs_M>Kd{=|xE1;7b5W3gAm=5*FFCFOW%*N!L~hjcuT
      zVH##hd%~UcIyR+VoYnCHUSwZNJDnRc)vJGaxg?gC<-CpyFgV_pk#kdaTF&&13xsM@
      zsYEJ_F;3~f`=mW@T50L1N>ax-CIrfJ`O%zbioiw{x{{&VZt9rAOJsRToj|J2|8-0N
      zHHuN}Ru@}G29&zY$Y#lovsBx$vRHtyRYf>Da%wyxZpKf>@@^(YnK|SBnYPq{de)KS
      z=1g}WXLvm0_yZM@mQ=$>TjEQz<+<Exb0{4{odhgag;#XUfO(?>nY=S5kDKZ++rDzh
      zmrwOQN?o2lbdR5eQfx*DWqb<rsRR+k)Dh|3bK>}~@yElJJ1TkC&IrN(%H#spCl^sQ
      zynyOE*!UyYO7MucSLJPD+)+j~A<ie=k72DXe4>V^@$-pI+!x~7^<)8C=dpGXJBDLV
      zEMV8&y5Etwfi;V$V~K{lb-y9eQ(wTI-iFw|0uIb0lGN^?C3zbg8wxnW*DYFHyN84I
      zxA9C|<K>EX{Tk(Qt>-4TEw8J)uTZgw#Bf9G*aD9Ccv+Y|HMC5m-6K3eVNPQ`&XC+7
      zWgEgy4nY#b*pCsOUuV(D-tWRWUeDA03p9Teb4cSFq(}aMPcR@)s^~#4>F?y8KJ-(z
      zBqN{0DN5UkV;JC?#`mXL(-U31OM{d>1z(d;=`CLk(r6>{mU(Pf1e7jH2QD{jHPu?l
      zn{#b7HxSZpDczJhfpSa`*9sVH4*5$X^C-I-y03Dmbx+H(c-cKv)x^t~Z8=d~tK3r^
      z($WQ-YYtV1z64V(VstpJm2&w)0qLJHxd5w@c1{;?u|>Q2*Y`y3x5gAT04|ZsWt6jT
      zD=@2Cn5(bx+cJlJcpc5SLRH`5A%7Jo@ivuxhuU1D&ey5&2OQ`3Vc|nu#7B($m=T}g
      z4SdEopY!eue2RJeg!eq<PqCe;+5_baf$|mj4z8zs6~0kl1u9?1X3z6ZW91po4UJbx
      wv>o)%!U<yT_XdUY=KDgt{D`nZL@8Im%Rf9|ss;-9wy60d0SbXvy<M;U4M)RJr2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}*>V#{6g@2&50b_UHeOf~cCciGfFvX!;{ZlrK$Zc4S>DEWV~;bMQH@3^^qk^>
      zVtIg2r1*ink}6`hs#M;n;t%+Rd_>^%%*YynftQ)S-M7!}bMEPW`~Rzd035(I4KabO
      zOUAE8uI`yu?!4<%rRy~=%9>Mm=j4gHJ#R@39RkCxtoBubWHs1k%9_Anv6UFYaXv55
      zIcD0XH%_FHAjNcYXY6X-D|@aqD*5ybkqS5GWYseryQU!}(C=fZ#Oak4fsP4hUM3Mo
      zw+;<G0`ZabjD~dr>sPCtL@&A%;Hr)_=v3jLjv=filI0ll0zF03mZf@SR=SsrSxXA^
      z6`eW5nlW5c#o=U!w`h{#_D>mpB$#4b^H~WDtV)(O7Y(KDY3WVRF3CAhV0WmCW!MWj
      zielOe`E;<`p9=Ew>ipYuY{w3P)PnSyJ^MO9h)KPEkqyPsS1VdhKqKNg*&xjgBVlph
      z83nsuk*=XyLw1R>xnLV!-KA97&*hDMia(xLeHhiT7g=glHC$<v`NkmAFVt=>pKVUZ
      ze(VwG3Vqfn85K!`928jBYWSp4TP#a2NndxT@B@C-aES7^5+W3I{Di}l&z3j6f+Z{d
      zDb_cMMAg<ny1gF@mBLZ{tbu0kYT>iEj$=4ZeT{j#Y9QLruzBh0>Sz->PNLv@pf=^W
      zGCTrBr<1QMXP?%w8+#HQjV5sxMGfcLxJ)>fMboH@qGJjra*?eL3FN}szND?>rk_@6
      zsbKY<NFT_C%mo`f6q$`^s7yZVzYprtw_TS;wRvTBMD`MKRZGwik*r9C&txad{@ZlQ
      zR2Owq)Bf$g*{9lqZ8Te)FP%V4-F%MX9BWw1IKilcQ4%^wSGf}7e>n3TU76SDz4jb^
      zf1^M14E>|a82F28F%0wD$6de@zZQB>;X7hu17`+<{n&_2jEIEI_=flb-(m~Ds>)I3
      zs49sNcI#6H0c<BzfJOu=u>zIAPVDlb=n3YJ_`A{yQluEG1384uyg^DKFJs@+*Em25
      z-xb4n>QD06`x4&^{EH(mF&4uWh9?A`y#G&aEoGN+>Wf*~XP7Ky-@Jb}`T}Rv!Q;Lj
      z<5U6ojjG<_=r;AZL%w(UKHbAX{`0ucOYr~&Jj5h^r_v8$;1O=%F;)D-C!7f=goKBf
      oGmY~kyoKKjxJZh}kV6?+*1W`OO6wr&@=DeW=LD{BHHNDn05aLQTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXQ&rZTX5XQej+LihTl=2Sk#m1`;E(A{`#^A}@0s|>7UDI@VI1fI64`m!y1ExLf
      z;rGqXH}lQc_s1uIdkhp>gzi@Fb>^zvWY3NrE3^qcFB)BJvZuwCmz6?Dh)-W9))<j<
      zTM*9lYDE|%vwG7oeI<0}`KHj7E13``FH<iDcD?3Ogpzl5FO@h+o9%=kNu`6(ewTR!
      z#fEoWR0o0ijS$VPE0_G38}W$z{&$Bh2$RwDq3JkoO23NFe+o5{spFwUmUQw0xmPG>
      lQ8*Xs2(=IiU)1;#SI7Fb)VnqA)%fN=i|4I(?*C1Qe*m<@S%m-q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWqYfl_i7=F&~>@F<ZvcOWeT@YGnfdNae)V6>WC<RJyLebu|voM7zvpaQnmh|E+
      zv8|2Y{GzF~ruC9~sa6wvi6+(0Mva%oXuN&%lWF<`jQE_h1B*Dx%)IlSbDsBop7%Xx
      zzWnFY+W=N$G6bJM^r$gqwB%gNZh6E=k2$Fjv>C5$q{mx!C6Ah;ZU{kvn3`)jEkkC;
      zGHmOlk+e;^CyXg`r+M6!_ckM!&00oUK<p<@`v2}80WE8qW1KO-8CiujVrH_Iliu6U
      z(FNU3I_nx~cf_!BW}tP=%j>q^3l9kd+pM(Zb_n<z8b^rI?TndWRN}r67X2sZp%Yox
      zOhpjKVu7;JTqa|t-C-+b?yzjz$|`_?Fa#12l%a}H4FeLfbkIthJ9DX|nHkP=D<5=5
      z4SU2OUvl-FnmZvu$_M9bw>b<ymPyQViC!1Ma)}<wn(h!82dI1C_rLy3(U?|OF=sVJ
      zP=biG9*iJ_B4#61lS%bA_RBT$D&cq1av4_i3lz&4T_;?V-+_h$U5z6$-i8QPqJ^Gh
      ze#Cd6i=t&zS;;wN9Or6__fh5~5&F{%Loxe9*dnk@(NRV3w{3IWu(xE!b16!<_4ufH
      z%w>Iw&`sXy+Egy<)+Wu`V@}p`ttnQa6I&(kUV+Mnye<l8$jw;k@y$|P!JhC>8MZ)?
      zj6LY2#|26h5y!Dj*)mLpO{2*5+K!P=u2<Xs9LO##r}j8G)pMNL6YTDk%E+;Z9Ghu9
      zDdpY>iV+TWs&PQ7voC^O*d6?0)^!L^gz&h)!UFFdhC30#VHnKCc9@^m(9_rx#vzPG
      zFecqv_Q?$M@=dLlk2R#l5@=~BlVXNLPA)TQ_F8gRl;pS5N(qjojPK_ifCir|GL!Jh
      z4Aq<E=X(hj@Xd6TuT<G=Bzh|7X;tfiBK;O(H?ibnHLIG>Fp+>$M12bP(~=mRhZ@xK
      z&HhJ~htW$6KYd~SCYI_oH}F6KWuY25&HT<XuNM^3B843GkYps8sURD+wTHQjoFrz2
      zUK7KL=VNGi_BwRke;v*9!OxT6t0Z(`4tT{Zc!dXECwtfff0W>oT#c@O0-g9)46BTp
      z7<5HfCB~jUca>9oC}?pFF?=*9NX=}J8mz%uf(xv}`g{-(CTF?J?55k%zn|&ww`y0g
      zPLI~!Kx=zbrB?OQFrV7ts%X(kWd>+Q^Jb7{oaSjwtJJD5Pk&Y2bo&h~_ZC-6q_RAO
      zT-|<J6O~%i?aR}53(|C;l(D}?5Z_SSZ&~Z_uo&N?4nI(aJJ>{jH-1Dve!_12j1l~T
      zgZLE&?MeKhSoX2@%zu`pjfb#NvD3MJEw$N=gl7eD1e@vev&x&$MoYsG56X6B33TA$
      zye|Ah_-Fy4Je`8bLFK-uLg$+;<b{^YXKHtez#5mgB`#vYXXxBl-gOf_pC=OTGl@$m
      zPn^-C?7-GDR<!2SxvTk)_Nv6Oj;iXhgf@2g!t~whLd<1y%ZNJuo0emtSi$qY9?L}&
      znng2KiIvzST2wxIKIW_xZP-R)0?ml3()+NAGWRI~1Vvr!k!|NXNwy+S_Dr<)gl8Ea
      z(4FrtMO<{wAwJW-0t49YLA83iMRbk)&Lf~*^%scbG4{;Ch|G#Nh#elrdJm&SkH!gd
      zwtQ#$!+B{W=RlOqLhyw1Ai6w8aXq?3>KsjwQ9@eAi!tnRuFb>C&cTa&cuUzDGkAB{
      zqQzXZpIfn+TUl*!+QZjk7}0OwvB}c$zJfVWUq9K{I61m85D%2T^4j!oG3<{AZsFi$
      zJmB0ya$`tujE5$#V_4UCR@BojWVDiJ0mKD_#6?8J>nIa%@;~|(>c!iv_7!Xp@1Re-
      yi{0Wq>=o~;%-5++yx+^bik)bxW51rYK0?dS%Ig@X6=40#F+nRttt_R((SHFI%ZDTY
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh3C0#Ii*F(vr*^{h-9Wl>A)B<mA-iVs-`=Mg{?}Tux$M
      yy1su>R%&tyBLi1(erZv1s#|7GDkFm+vJO3vVm3wwMh0e}@gTs+zzQUp7}x-gU>wN+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TC)s6g?9=B)Cb#qddx^Ehvj53m|Mkm0FajkwO<OVv*etkH~;CMjjgp)I~q0
      zOEzq%)CC{FN1+}&2pU9Xd3^7==la}p=kET`Er2H03&;s9oyc>!nZ!ES{HAP}M1A!+
      zF@B(`%>rD3g{OK~n^Wa~k#?{z&jcoRwbAiM2DMJRS3eYR_d;KJa4=ay9uoo;wy3Yk
      z@JK}m@+eROGu^N+gF_kVG=Biyc%ZGoO7}_Y`7ApEud337=3*Eoc1u8X#*ikF_878F
      zq$e;PsbP4oT7j=@+%j==A+T8cM~Pml8NO5Rd7$AE7V(y5tiI&HPOVO*yc%`Rz1S$=
      zea|-6)~UzY@!>a8R|2JuF)G>%q_v7>D=pIxLaWX3zKRE-U%(m%``-ev#mO9A8<6A6
      z<uWfYI)KXuC^nX>tG`ja&KMp~FJt~7i)&%t81Ya-nHf9q8Wq;kXbRIAyNDUgQb*to
      z<{lJ2v65<*8#kDr@_!-kUO86;a+E+e2=FtLm>&@zCCXUBGJoS>CF8H+9lz<4Q&~{#
      JJx>=OfWMw%h@}7k
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=Sx*yD6#h;Z3d2zLO;jjQmMKtCKq`w0iH3-1WO?vyXh$dxZR}#gEB^wYeDj4D
      zBgMoAqp$ub<9BC<&XA~Srf0cl`ObIG{q_6XcL1|kiy<T!J~H2%>1ri!r(ap+VzrdD
      z)~bb^ZH>C(nROCFM9}8M*=FG&{bK*f%2os|IqQvCwJV#&tZ7?<j!nOo>st~u?we(6
      z%RKhaof_MfQoeA&^9I|?ZqC|fxx864b5=>v>(+8&*Zl)k@X#zDW{Wu%lnv%D=L`AD
      zsvtZuxhIIM^F%`!9XjG@6|`>V3)WWkc;71RnENhF)p5@(<(2I@BbCE^Suh$H;a_wR
      z!^??4oHuF!us7U)V}e6X?r9M8>$rhl4pO#AZYXDSKtdAAP}Xi@#E_0C8k9DyBZfw$
      zjp}G}ePcQ_G;5fE5yRxwjX5{#Le!DMlt-YV$>D56!;DHuUnK;tNAYN=CU<q{Xd&6w
      zyQ*muRJTV!U>}wyU#s2=I__ak6<tv23ml+WUyWcmyT7$g1lqQ<bWif?ZaS}%KBE>&
      zpl=ikR>@(^D#!3h(C2U3^$bB%eQz;D=wa@9)cG3t4@H|JNtz=`nIkzLrHbU*Ft3eT
      zno^Y4_=@(=R6^+Fe}i&LBf6;TZUDN`LrW$1(xZ|OS<ES?l8w~VbbsU$eSVd=f+iZ@
      zmZG-BsW#^U@T(2D-B|Y~frp$9x9C%2#c`Y9Bh<JzUe`}NQC%}es)j*hs)mFyUBigc
      zAE_Z}7#A44#5hIb64R%YBQ%vvUgFMa4YNMLVa1fRBPt!xq?3=S3*FL<r1W5(a#4B%
      zpfhy}GPnYrse{ho3UtN;EovD(&_2%>m^~-@AkPDT;aSv<dC6ZGt=QO2{e*l#G<=@=
      z0eQ}mW~cal#0u3xsvLa&3~5>kTAcs>8Ob37w8#R_I%y?ok&DGML?h>6AIun^8Dt1C
      zNuWuF5tkA4%P7VrNjAo?F5}ptPc6le3#iV>E;4vPxN$ti5*H=J-!kJuSivf#di{cj
      Hcns|iP^|?J
      
      literal 0
      HcmV?d00001
      
      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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
      Y>SFRh5ha2wr*?%o65=RI$!CuI4;z>$@c;k-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fKqj5S>M63y63D6hXmjT1_OrN<%^jCL|_4(D)!vYiXclX|)#;{WKr^06)q&
      z-But_AKINWmosN)=lkdL3jl86QiKG7+=R|(!}m<q=o_90Ndnv4#i%uEJibf}9lZj9
      z!XmL_Glp){wg_y{;gCR4epoGPD$fMceRE_{&vy(0f~<A9Q^1loV+6`k74N<v<w>>p
      zn0k#QEuN9mnL!;?AS+J<B;B?=YFaLV?4QY-RR1Bm3Rwi>&8G~jq%n2J9eapMk+DZW
      zG~Mp>)qCd{?;@F=;ZV=UmL*vU@5`0<B7c)WB{raP%{T$anA$UJkPZ#55A8rVx09~<
      zfnm|J+m1uAb5T|X>ysrQ%Q5cw)ViwOty8q*fu=Q;;71_Sw|z%9?oEcxC0v7>;4ukw
      z)NWkqI@{7P7S9;o8aD?Ah+hhqE|1$Kf`llIC;=J7S=gN89O5m=1K&c-3(lRT_%7nT
      w$X|dWkC$Mdp9fH$^BiJcCCaO=)E}+j<A|pQb<R_RlR3{RYCPjg&m+Ybzwhh5s{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcmdT~dwf*Ywf^=w^Ug^a5(bpaKzyJuB;bokc?lsz5(!a=V0e@aWCEi@5|fFD^;)$e
      zLd2@*O~RuDv{GAotF{CbrTDCEz1+4wTD9-n_V(#*>!Vj|X}`74nUhJN-e3E>|6KXa
      z*=z0RdVG8BwRil+i6@Q%IA2}ihoNxV)rsp8lRGo1^yI~<^=;{7eQJGjS!+wu5066O
      zKx?*MA=sYSP}khtk<2KlYK6Scj$~zGV>-2VozyH-2sL$N7ALMtwXE%6_l``WJ=2g(
      zv?~NE>uOik)>Y0^$e-KV!j_iIl0>>QX;LJmFubyE>8k35?6R<azV0Xu6mys~Tsm)6
      zcDz)ZPW6Jp)fC%avbMD;Nm=yrwXH3gbzEOF6jq@iOV%|nO(w6&4iYsfoNg4_o+OZL
      zX>z9UYf@(Rk<wFHHj$l3df3zCIg~v~-g*&YL9%77h+-_Spgg*2PCHE#=}5Mx66qz$
      z_Ks9*OI^$2OnWl1ULicF{>th~nz+XM!P=FL-~RZ!4^h;`^>Y?h&RJBss=m6Gb`36_
      zvtWUy#YW&7SJuyU+5$7yq*E=a%q#_S{DdV6p1HJ9ke$x6a3;>6K^LT2k_$W6uTHkt
      zCswDaW#NL>H54mB;mA9cz8TImBga=S&=^T4TGmdc%=G#62}?pSQEuTvl(Bs4W?A85
      z7J~2zHQmDLHZ{}2Sev@ULJ7{0);Si=vg_tr@WK~j-8>6bxKzPQ%!vUa<4?7yjIOre
      zM?k2{EQH{rikWpOqHwf5;uJuiPG6*&MA4HJQ5bV7{i>b+L{Ei978avk!J=@B1?r1B
      z#cuxb(#!6$#KKbP5@MHmEltwFj|PP^2Ue_3r;}?F={fCdJJ%;$GV`uqlWfZn2mvft
      zn4saP0a%h~X(}PCY-W9DN2X+TvZN{1+?;IZxDc+wN-;dG715)JP#c)lEqaVX5r>~#
      zJNBbAb@W&*GheQ7#z*!QtplJ5DzpIET~v}4mcgZ@wYkK_X=%wI2$z<$wwGiv8^BtH
      z**V+jpPD7dId&ZKjHism#zq~Lf@{_#*IZ+}%_nY~P#r)E5utZyNo!|D<ZUOylj86;
      z3)g}>wqR{CLpyf3hV^o+3}qAyHzhU>8F(G8_hSQx4LH3vky&S9BW~b+OspnKMJ`To
      zqe6@m4D#Ec*#fvpVWit-P#d?2mYZ|30|SEFjiH)!R$fu%HVfAvE!*XG3nT1pcZY?D
      zO>MO>(x&dTFv_OxvT&Nct#qIaXp}D#V|o+KnIz3(TX2a?dY^@2d)U8P7;RHM7NRz_
      z!$Qoac3BuBlLl$g?8y?;GmAm}=u;RqU^P3+RCK1&P098E_7Tx1J8D`8d$3YIpSAE1
      z_EWAzTN{C-5T%h%+Uw4A(`CfN7Cw(JFmh&E?X?s}j6Zn@`zn0V!oT55?3?PSNH({&
      z6ZZLz<a+<}G&Ga#2`;}rl}<|}8b%-Jv(h~wL)vmWcF+c^^)&NDQj7LjG;r85X7jj}
      zIFnPEFDP7G?@pG_<^eu{BUG3xOK>T<PLA3VN?DS7Ko83~zwL923sG)A<GyojlX8Mb
      zKFLafro&rV-Z@02r=zH6y*_|F8}#v7kZR#Lt+>5NkrTvqNUls|lG7(F3*kk4!;h~I
      z$~@*K()3%R-NHBV5;07Lt99zIhQ^NP&LR^_?lRqRmYzC0obGxN$1VH^zD3<=rN1i%
      z!}^Q(j)j-?#^iF`m`xOr+dAhI(IV5k)R_3lX>b=LD%K@B*2x(w*}}D*i8TE`=<upr
      zeRXn8Mr*F{eGA`1zo6=e7JeiM^op*PA^ZgY>BmpG{?J`u;dQ*hjG%S!`Q=PYxo@C3
      zh#AVUII%t{F^(dPI<?X0b8l;AoowP<eO#-C@LRm)$L|KoVJ~IjzwvwOOL^y}6CGTm
      zXwZ()mGr<L@s1yFa}x|GqMIzdEBg95ej())jsIlffABu*G-~Ub70$^$_Oq5dX(vw)
      z;Lo(ka@om$k-dLHp)7Y~HcL5aWHtr_I2>lGX=Xq%^$e7@>SULkhn6fI*gC9X(8@2(
      z**`P6stRyb6_h};?Bu91ut*-UT&j;q*=3w8->r~@krl&aJ>5g^Hr5Ph5@FYHGm$T%
      zFI?U}FIXFKClcSWViYZIcasWd_R|?`O1ZNfwpgatEVEROiHYju?S;nj;Bq*38Rm<6
      z0%wu4#1<Tov&1+B1k|~-=St4bgtp0cn<Q4Y`BSZv?W*dQwoc|xlJqixWN$YG>hP;l
      z;z=Wh-K*=|7QdRLP%;Ec3tKZ)t(`4RZm*C!PhH?w=PR6^o#Uh>EyY}w_m8GzbD}ey
      zS>#G8gQr-k9Q{P1C{WELi*-{i^)WS#8%*lhG=6!7oK@UGDN#hB_#^aVG)OzwfZ*zl
      znIta&a#H7QXisI5SqqIFYN5K$Os<JSszO!z)m-MbgVoCIXQ_FjSD~ZV(t!nJ_@$Pb
      zj}-l^7uK3ps2WRMrWQ~UUFoVum-v_oY2Bhjbjw|FI$gK8wX=OqvMMEcaM9pv<s^|6
      zXUGQQ?W7on<oKiv$=h|wTY@f`y|WyRJeJ%Cx-Or5K@LBRd^m?6PQEaQFXFsRYxGzq
      zHM(R<qe~_<x@0<|OWsLz$vj1u%v^NIY(<yMRdmTrMVGv}=#uvqmZRnVq<P+6G=Db6
      zxpJSw8_#&w59o0^CgkvOwolCAhcQPApcG{sF^RL?01v-FP1t%e&|rqg);D;<(fS6j
      zP`>b(`UbyH0inV^A;Y>NY}W*JO-Q%qk^V9!Kg!t*oX_t_dH{HhtA7_4^8l*CtEk3Q
      zT%dc%4e~-<<jAp;W5jP$;)nPvy!ard#?6D6CZ8Gc$1wRIX2rb+F*{y-5Eb##epE`+
      zeEHN2EIElzh03E+3wcS~g<<$Q-Si6K@CTHre2h~Ch^t|ktirfR4cDTS*b8F;YAFCk
      z(7<7QA+->76ifuY+!j=w$yTm`75{*s9uYJa@kG24Uq7yhNBogMBp3<x<H}gX--rAo
      zxT>LW*&(d>>JWWqQ3G(Nom!t7>T?<OSwMXjVw$Q$mAV`Y)D>8w7V&zwSnJnj%j@d5
      z!qsnuqaU@A%v{@H1wKwnK(RtHbM3+vl9}_L)Cq|Fnp#ClHr5JBws{2?N+2w0#)W8f
      z9D9tb%NC2qi%T67WYs@}L_Cs5PY?L7P*zrJ7}}c<QOzh;YqbtH*mJl#L|q-Ct`1RG
      zhp4MV)YT#C>JW8xh$5>))YT#C=s=0(S%K1vHftR3_i)_;YSZ%%dOzadiD1O<ebDiB
      zllVGfNu}jhHfsPx`~v%kCAiPUj7Cf(Ph%!<GG^kD{6Usn#_b2Sk@h^*PWU8|b2E{1
      z3z73FBIh<#s!ga<xAXB}GghfPc+1|3Hr2%&<DIxwZNr`FF5IK;Mz^|0d*m+L4z5SU
      zG7^Sp8`mQ}u19)YkMy`6>2W>MBhNM(RXy4_f~p?v8$nf%_Dx7rf-l*9J@UMxG0~&F
      zl+TsdA!U0BmvYY<?3E|Mq9!ieZvbKi0&}$!UbPD$wOcDQ((djmlZUIdGKO4Y9oJvL
      zaT3q&E2h_q!+BX(uGd~G_8dZMxhJ**r$;}7U^L>%ws%Oo=RoW;m=ryX&WI=MYYh9-
      z+2&73b1dx7^8X^d_dv84mfbzupy!E&-{0pzNOz3xg4ch*cYt!)F?SKe9n=A8_C<_P
      zUqVzp!oc?!UHxSSysw~K_0!#lQLP@wV)X>weFSUNlXUknzC1ilcRxdSKTCH%hr8AD
      zxL18mTj(NNch^Gq;gi}zv<Ge`CFZ^lw~#WqajwU$q&&17AFv#!9OevSzp8k=I2t>I
      zPaVW2@z3UX^dPpxW3<gdbj81dX}xqD3r`=cc!bW|wjTu~SXa?VZiqk6k<g>Qk397Q
      zgw+ojHhzSd`Y}q?PcTLO471hGF;D#>M~f;~iz-)(Dp!jtM+-`dPrF*&?Vw;Zb&x=~
      zH6HQyA|x)_kAM^z(Lz^>Dy)=(m0j^zFT&E`_fZl5euQ!iK&7^@pNu8hrO7VaEdQ`2
      zrpcBxe25r+#Ek$Z8$rx4LYPas%E-eNhJ_VI0TM<SZN_kHG)CYyBZ4i)NNt^2wq~w%
      zwz}5Y>RM;3Yn`o*b!ZFR!-K%9y?w9a?JLPMlp{!8%@_~8fejcEuo&YJFed0_<90`P
      z*`T{@&|NmD7c)6IpF5o;Ugi=4sD=SRZ5PYkFM#TH0M$#Y&e-7qY3F`S5T3{yZUbs6
      z0ma&)EWFsNtA=1qrxnJ>kY`Lo*qBZW&p^zWiL;GaC^Ig>6k`spT#3cTJX~c|<zTJB
      zRja{OtHD*P!L??Ci?yZ5V$DuOfZeCUTKB22*834y+b#g>)&T1kvR9M6w#EK0j8wsd
      z83xa7BT4u*6Mkz6zjZWBGvSva{H`Ya(u7|N))}q1)@UOH+p*c`M7MDrb{QLTV7S{g
      z+-}!!yIsTWb`7`Nh2d@&hD-7HV0h(F7~W18ZvH1=xEr6bVaQ06r;nr)@mN&O0Dr{e
      z*^3afJvXN7&>ivWYVVLxALD5flhdSFlE5R_(@?ng5FX%`d9WX!lf%F)571rnd(mA?
      z;NBZ0Q?r)=DC%Sf<TvrRnZGUkNeJC`2nQH%%>D3q%7eK*r#7;AJAe1{*Ug`7ke%#a
      z9wH%g+`kW_Bf(w_i-Z{9STU8eP=@^&6$$MC(~v>c>`)O2G!C3VI`J?V|BTNO3J+tf
      z@p+UQUqHEW0JDuRa(_I6<;J6EH4fr>qn{Dz5bh-1YaB+O@i_JyPvDSo1V_jpGoHdX
      zjbr$!@f_YWUeJEB)7cX)JWk*d#w|%aPUurxPNEYUGIF0dp&{eZl$=fyFizl6Qj)yB
      zr_U)rmg50DrfYh!5?^LZ5XVrCuaJ^-_8|IgZ(}k`S<5SW4=Ak#FutV)wCoO!fC`7)
      zykr(5pNQv^O;<4#im$_KyrE~X(-EJmqKGXkC>%beAXA45VxM+H1$o>Rq@Jg=2r{C0
      zx06jgAxIOkh9=|2+wd6gpul(!MaG|U#2ev?H$taiBHojDieI@`=GtlgQ1SkH3OgC{
      zrw?av7lqT8K>>VO)OS-aeBtPU=y2bpeWYRsqT!~t9mtCgS9h}vgk$^RWd~jpi!U5l
      zY>cFoW(Z!>LY|qA0&_SbW+6^9BbaQSriD29@|VqPrZ{La<Qd);OdaJ>Wl_81(TIN!
      z^7-8dujhbyAmaNxtBEV7BK!&7#_%VWxP`wBu}EMK?&jC&ALI4U)6_UC64-^pSUg(H
      z$PxB8HqF`(-)*Lk`Cz&{FOnyt3Z%#`<B0_KU_N6@Fk2H~7!UiJ$^#M&SQ`j4!|<39
      zPh%w5)HEx*q%<<0BFkm=(j*6X84Wp;P(nL<{5X?ynC0-97b9#=!+GXRl$*0K+pNTV
      zvj(;1WmsX>VwJfRNwX1YGl31}8r)<yVT+l@cC!ul@%Ny4Egm-8@g=hZkD3`gZFb^W
      z^G0oP`zm+bMbB{@)!?R8@l{fS%j4XA_I30)o+c&sJdS5b$^Jc#XGuvGc3kgsxsD#!
      z`&=##$Mw-57l-3|pNEjd*?5lq<tq0)Ua)=1eQtwnRQxc$R$Dr;AOBt&4)^2Ry|zm^
      zfo&9hVK6t*X160`+J}V=n^CS3qxi<~Dkt{xk?1u(cNl!K;fuSo)K;QdU@=vK27ip@
      zWh`{WzLi9me74Ewe))9Er&m5ZZxvtOIsj>%h?w`V@?JuEJI*ri!?`TSvn*v<#`1iY
      zQ&^U>pFFkLVPL8w>lyN{Z_C9u1KR{I#V0-_N>6+mYKLHB;xVXNzOlR+=dTavviJen
      zAN1qLy*QnMRh07A$F!Wvket6qMhU~=9wBO2ThoUQlAB3x?!!8gTS#u{!%C7}B)j^s
      zh~zes+xl=R$!R2~_3`FQQ;@vB59gEYCfVJGb4d1*?CnD_$(<y3_90Ai2FV$HL;O}l
      zU%;d{%^f@ncXIphBB*yW1n??m?m?y5hbnU~LA?)k<^u%ugJ?59i%*yj;dUOKyUfqw
      zG4o-3lWk&0+vhL2K7R>6!_R5S2qXM2_;w`kME`|fI<}qd*!JlEV%z^;*6gP>57C;3
      zY0bxJ%_nHhBbaDDNwhtMspe5!Vty5K%wt$;K8@ApGgxmvi|ftjaF_W!!@>)Aifsed
      zJnCBWD1L=sYimC2T9bb(b*w4x7~DasND?HX@i+bW!(qI~M5*wDetcN?SAGPfEQ%Db
      zxE~S}6-=RulxZ_lHRH9J`Tfez4%~+QGGCDjaUxdK=uVd1X_ICOY-Y1&7#(EdEt)B`
      znJ&$Yu$gU|8EG@qG;^BGY}d?ao4H>zQJd-3%ov;L)l7-a?9|MeHZy|^6GEO3Me1x;
      z6{&OhWz8dQpwbDr`E3S+@1Vkb8P(=1xZHddE#_;u!~8CGn%~1g^L4ytzJcGHZ{jcJ
      ztI9OrR6g?+6=XS#W5qQ(V5lO;HHI3mCh-51inE2$Sxr=B`ds@ZT_SP0abmxkOsmY^
      zfpN~mt@j{POnx@WYo_yrOLq2tOkwAXW=5Y3ESy+oM*G#pOQZh17#lA$FO(~AnTJJJ
      zyv)m@J6`5v(L0bPRbe<c^v@ame!<}PD-1V(jgjVWP;CAdCFbui&U}jj@Q=8_e4B85
      z2eZs~G1q(_HRcDn!u&I?GC$<WWhWo@rL)n6U!$6?W)NZ*@Q)fZMNejb6Vxn*ab`;D
      z62<MTEkGEmiK4$6LG2|;+2@ysbAiP@d^=~^#ZuD4Zk9flz4z4Dve=|E1n@C&AV(-6
      zE&Mq7$(^%HZf0BT7a}nTb9EVZ9)EIxh`nPDe<sT_WlXP(>CTSnriJHBEIrz<swS42
      zQdSRGP`?m(A`Fxx5%Y|~S)LI%+f$7Bo-wHPoQ36{ak$Yl9=CYP@M+Ka*zUOyy`GD(
      h*E1z&)9!Pvwolda5K%l|Z_>762;?I)4^DOY-vCi#fOY@?
      
      literal 0
      HcmV?d00001
      
      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
      zcma))!A`<J6h-f#P(VQxRNS~QF=-drxU~%%6F1ekC}BU;5lbp1!_>rIbKwX0QO4I6
      zhem3`VitGqnYr)1nXm7UPXO0AGf-jZ&iEU*6BS0bA4?^k9{9q*E<-0XB0itmkCT}Q
      zlz|#UYmF1g&<x_&1(#gKlA&)}_iO)FI}Ss`52tgk5-AwY|H0hB$a97S*PlbVRGxTe
      z=>4*VLWroE7O@P*i{NR+43?Qk7rA0Jx;Z*^VbbAJ(<Ngx&WbQ1zN(?NOeR@|Q<AZL
      z>Sda`O|ar&ln>XB6B&rRFrulobq81Jj2V2_yV*=1m+TEUv3w_cc8bz%(+e}~(5liG
      vsnIVmP$$(ORY8;V9`?0vk#6Ha>kjF|KmHNA+V7EnT;%D_lkDcxRYLy<F9)k&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%}&BV7@QBGl`4pWiWf~hwFhmy+J=k4lZl7=0!v-7q*AkNeK-$3fDdK-+Tz*>
      zMh|<KZ)Rt{pZAZ~Hvktnve6*)XW~WpxlU3)%9NJ(k<>PtgkDLcVm|e6Co>sy)gp9i
      za;XVUoIO1YC3L0;L)W|c=C2GB5ZX~PoeP~SNjUyR7M|UWgAt2c4~bf^`QS@f>!P4t
      zkA(#LQHr8ng6CGbbzQv`Ga3InaryIFGF-+tQ&FT_i+obL2W#B_pLbg1{S|3zk)&mq
      z6J@!I<#m$srn;u_^J1@rFdSd5MvqoYRi!$s)YW8sKEejS7T@3E6WiEi)MnIx!*~nZ
      h26q^Dv14$L@$L_P4}HTAnBTAK+4G=uK3paYKLN~bpO63m
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwT~8B16g|@q3+>9Mf<RFbfp!rPRQv$Z1ggO__yCdsiMX^AS!j1_yEXEnF)=2_
      zUm)tUFFa_XVl>gjM}LXG0z9)@(n|ZVojZ5#oO9;f+dq5Xe*zfA%@BM7jT^>eW2ESq
      znUQ(NNNt7?5NIkV7iG$^^Gp?F-ZV0cGG8!l>)z~)fVd-YblSEGj$t{AMy4o(O?&$9
      zAN4Q01&&Obmg!6h_+#-!fxxt#mSOnOpdpM1d6T9k=Ze`inO`v0GE$%=X{ShFkcRtG
      zGT^M61%c*dS&=JqLZI#c`mNl-owmcplM4$IQ@jz#6$|SE{V}f~V^|MI?yha{g%k1W
      zltBHw`Oq?)VxH>iVg!lv3qzn&Ll>d~VI!SRWMo!aj==F+u<GfiBeUvx?h`6WX$}GT
      zo3nEQ$6_@_1Y?S|o~&mz^r2rslOE-?T~xecHiVc!ciEvtHs@@)HYJ{<WX@s3!Wck<
      z0vXhBPJz^A?X(M^lEWHCa9$u%LY^@kL!fn~reu3<Ls=>1ra(|CD!0kY?0G>N`4k<l
      zX~nE^?uv%1xW-cXsAy!^*?}6aRnx|aE^K}#O`o@m`INk6s-X$H&m2~77Z{pcxK@34
      z%1gN;?oG2d59pyDKmQ8sCxSS_HN>3{b#BZlWkzEr!Bub#>bp4liGd%D{0*}dNFsna
      zG%?b=A~d6gyVn0Q$GD>{XycuB#y*^Ip;s6wl#o976&-^g8CHVdr><2OTwP>Y30y_p
      zI7vuFQ$ABP-q|Uh_24wW1Hv;d;Wp(eq;dT-dbbhzfq|u6#DD2apP>gHe1Xn`A+_rb
      zq?f;-cP!~9xEJ#k`a0<mut^;mnqi>>Hgx215rqo9<0ZX1xknG_RcA`CcjoCGtJ1ql
      zKa}@fhxICzuE?>nX$@{WpHkE_ih5qrm9DC;sEnfT!3B!;8hx9qB8zxr!N87xhg+{B
      zYCeG16`+wSP?hmOFJZg{`il3}l=Ugl>mSfQ$Y3Zs_6?WcAgq$n^v(<4e)Qe`UtgKd
      zGx!Y$V4DN^mb3E?QO3P^?@BoBftDl?9uuy?K{kC7{cLi10{cp`e7H^_K1`Kn@WwwH
      CC>p~6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%lJ>6#nk+>@K?urKPa8rBu*Tc4sNHiui*Cr4;N|3RRF;5|b{=l$~~&#o1XU
      zCO#PJ&(}s{r7!w|CVeOgET;Zwd^Pb8(D-Ql@nVdL#s>p_cV^sOVNDt`JNMjs&UeoF
      z&Uc5ew{Cw4;3Q^3@Ch8eoPIIgTeOW_@04vB=E8LTif$S&>sAPgz+UG#mo^uAC+9Bf
      z89RiaKuaZP)GRLQR@yf5rhtDbUl0%}t_rp#&@^5NchLuUl+)=NnAda0qCnWv?bC88
      z17`(-Ny9YkA?Aqf4vx<VC?olKy$<^c(H@R8s1eXtMI)jDu^KVEQD!Af<G5k!6UD_j
      z-I`9%<#btWK9kPPq%A|*-lk$_4OZ6bqST^^9d+GR+W1TaezeI_kC26!wA*oC2p#{S
      z+2u*a{WwZC$kl?Kb=*^7c6v-jJ?i8trXq}pTxlv)ch#+;0ej?LkBSiL1XR*nw9J1Q
      zZpfw!=kk{B44Hkgidk93gDU#)5c6fSX=~Uf%du2^M4mjX;t@P55HiepeR=Ydd&CKc
      zO?}yRa9C9h0^+-g7l@25XY?g0mO=;|a(hKc6ZxrPCOewb7j@GvyUFQ3q2e(N3pB@S
      zV9FXtRGh{rODYuSs5^>SAR0@hYPt`ijnXODX^U+(dVF|k3o_kV6(?{~pk6lU9qdf*
      z-UW`nK9et+E)AqJ;8+5C9B~`AZjH!e_HD~sHAZ8eB-@Ki=jBC-Oy!GKMjtbz{F>dt
      zm#<%sq=r3B84G5bGo;I46{TJURl2OYiOJoLLj&kwbACPn{`sUl_!(%DB68l872iH7
      zCC8?a_?B8~#9sdHqcseL9^BOuO-=qyG_TR{;U4}*oP$dQS-=6>QP&X%afp@#l8Jc7
      z3D@euoh6)~XLVYlyB3<wB8v`MyX#j*tMkwp>lEyBaHAgXtIVwsw?o^+VJ%U@y&LG%
      z5*z5!x;GHl+BT5T{2Mr4DgOvl0k1LabppP@Zr@}JZ?V+3DX@2(A~YAYTtr8?hz_p^
      zrbI7!lPpt1UOBHgHZY>CBk=)FtfE1?u#V%(MV7!l`E-7S1AN8#bjhs}9w?#z#`d?;
      z;KTEPa?^j4MY?=PIYi(Z%YK)<zK3SM`|!R~sLI4l=M^e=dj=Sl<etKlL1&bwxFbgy
      zk-WsU5+1)rt9q6nGs7oUvy7A*k2vkhS@K@)L>8{RfVE2L&vUt>wH2J<X5u;y@#VDa
      zaWYF%N;q|^%A`l<|M2rY&pdvTa+$oFu$65Y*3~KlWU9|FcwrM`cgh4D<79z#PQHXL
      zY+?wXLdR_^;d2V|3*5jRQu9?6Icpv{MGoOfic*qurmTQo#|8rAIaQfqklVmFRWl2e
      zXZ94vcQQ+9Nmv)AYFsYNcQs+o;V46Rcf~%cP)g<{f6_nbACkTIE2|ji!Wm7Aa#azo
      z>{ig!b{%zBh42qu^@&w<DMPCW^1MZ%J7*ECM0p|GKe%TfZm%&m$XL2?yy4cv7gwRQ
      zR=S?RewOhgyZecH{24*~LOuP;@4|2B#P5jX4|L;C^x!X&`8WEpCI10Yzgrl^HlCwz
      znkv&p5Lpp++U|2(^VsuoNE6Nw6cjMYm5*6oz<K9ts<?uuxhFqm&#)37rZDZipZy2O
      CfXz|>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwTT|0O7(H7GDIr*ifQpI;h%Hnq7q3MW!3#63G6TZ{Z=qdFm^6W07~yC5=&#Th
      z?D*jLq%-~~$CET2Q{*AL+5Nsfd%p9X{r%_LcK~x(Q;-rE+&7MlV&I!ram#GT9mkfF
      za|+S|7o&(}*!AMO-F;d074!&<M!TM@2CnHJ7dKq<$h2f#)>f*%>DU52OQvo5%K}}w
      z{I)=P)u~ApUFg%GAR~}1o3?x#G<K!CW$ao~KrcI0!`e1nGhD};X@Af31cuA!@hcJC
      z4S3mLF5gN>&@5$eNuWRQq&w@gq!X5;VhEQN40lwudF=VJq2UUy3iQ>bzu`Iu()Eu8
      zrg90`P2V-`dMSBRyp_Q<0jRivn+ird!J|VO#&C<8$iu*}Sk6!qx20++zoTLTw-roM
      zivO$CFoipekl&hoZv>X#?vp?+3D-%pqoXAidCVx7?&$Y+rH!PafV+(Sf5&=_J!p%3
      z7IOkc4fil7(AyR|sxek7N`GT`dlln=O<7>mURSnM+{Z%&4+IAO6&q)1c!bAHBabsZ
      zXls>dOT0ykg&ijQbF4z6r2P|<Md*o>u~Gu+rW3eT`HBvvW7=xWhP(u{b=#Kis%3bd
      zWLeplcGYq`I-w%{J*TE&HPo!H)@n-laHs{z^XujVOYx)Ox$5QL0%uwU-P2#8eu=^w
      zM>R^5NHf^awbn|)1!TFRp)kNP1o+6zF3yXhtm{n-Rti5cP|!zCas3lAg(k+!GryoT
      zkqhT+6SMmKDHeZVqCE4N=TgK5trTLJTv?>n;H$7Pf<uhL#W(`Sk1&r95tp&neKD65
      j_n)9dHW`{_2~Q(F%MtQ3Jm;)37M2L;SmBtat6%&D>Lm@D
      
      literal 0
      HcmV?d00001
      
      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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
      Lj?P}VBDwiLx@P%|
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=+e;L26#mZc>a^3OdB3GrSnckZ=CzC3%}Z&kQHo*E!?^oP$HrNmiyA~xQP5Ka
      zMs$IQ9`+>yK`nZy$DltdJHOpk$)tgq-{suC^L=N2{r>hHKnsQy1PE0##)8r8d#2Sq
      zX3h$yVKgx<lD;Jz1tG%zjM*~msphMbGa}(B$R`wU-(L4^+nBTjA#dInKCd<Lohio*
      z_s%tG>>}iMo3`nlCDcX!;};z#gnCm+p(2QV8p0?b1S8S$Fc^~t1$zjEanlwf{_Lc1
      z#<CEK<EeyUjT??B&$-KxH*LDR!P@GSVFexE4x<893MvUDJ35dJXsAXFA?)V(NfKyC
      zhSX}Pla?aOaJ~K|kzg`Ywj@(p4{A6ht@(4pF;mIBjohQM?TCgl6sS0csDj8YT5J)g
      zAto6Jxn62cW^L4P98JvmZF5OTBsW!@K&yh5za$&I>w02VLmS!|U&41BVS5tUuxVM6
      z6sB}Y*6-AC5~m1?uyZO_{v(eB(-j?;?q@V~p_|LQ!dYO+D<aXIVrIM*u+U}O!!kDQ
      z2qW1i3~yS&`AwcP)5WILqEt=6MMC{{%%Ek7DZ?7|3{UhgCB&R$m#Od=4kzEWE+b3I
      zB8)6+-z>3NofTI{Q@)cB1E!o^H8cB7vMNCvv~A(^vYf7P6<py-+c6J323y0!yfcsd
      z=J6YllgWQqfcIgj{N2l^0X_$KRbyYE#q>24u4H_Q_*=lSAdmmG1%zo4#e7$u^+pLw
      z`NVOVtgNyemuyaoaXpU2qcnVd73JaOw`kYpZVd-`sShu|gQ}O}@EXeXbu^?=HXK_;
      z;W~~s{<x9bZAP~8Mt_YGeS#CnXoI8DD3l57zoJ<lWe6wgNF$UBKRprux$$I$aWo(T
      z9X*+~1Lt639v&`mAF{_0?gVrXL3#j<9;1|=qL!Yafu2LB7igqqw9!j+&?|J(8}!h7
      z4A2J*(?{H*G)(#gk3Pfa91m$V!%++&*?o?qARP3fkGZ+e_t{+|E6|_g{u28Ja2bQV
      LN>vC$h@<)svCA($
      
      literal 0
      HcmV?d00001
      
      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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
      F;eRplN3s9_
      
      literal 0
      HcmV?d00001
      
      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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
      HFVOKHkd_j?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZva&2G~`6ot<uc3cOOAGer7fkMjyvLIqj#RdTqia>&>3pQxt49ygGTsd}C;33$s
      z;{n*f0*MNV1rNYO0cR#AAcQT?c<#M(?srD>{m0jD0B+)HfQG>8zC4n{s?^zVtPfN%
      zmh%?@Jb|7|WYX*nA5HdES_Wtd#DAiXD`Vs&Qv%^UovCS+si}Z?Akfd`yu5p?Qp)DW
      z$_lg&RiSeh_|NsRD}2h}jyAfyEzrDneOJJ{lTTF}P4pw2MkfUEA_Q3Rf7Xu;osAG;
      zMW8#<Mm?+!CKlRp#G^cw*{&?KUDrXcoawp1nbCiY-XcOOO{y}7K%&*dLLDhns_8TJ
      z+W>P#WdxF?&40X+p03+Z@~TMHJ#CMqvpmcjwy$@E;7xu$JRUwRafJ2Z=5{@wLd3Pl
      zm-boR<?6oM2lNMD&>Ms&hzDy}J3;b^$p+Rr#!ggm+@s_SJ!qU`JfZ|Q;ygAu3tYg(
      zT6E0X24m}k&xpgf?+|$J;Wc*_((%Rz<`&u=wg+Ak<rNaVcDl)8Z>`&9&r7x!FU=;g
      jZKunyhAsY(wU)wXr{p7l7P2iDeDfEkzr@^fRolM+3gdo&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&-%0{O6vn^f-&i$G)5?n=B2a@Qx-^8agktSR+vsxC!6vrZ*d3$Zs;-1Ce1IOI
      zhl$RvQV;}P%sF#re&_qn%=_ot9Ka!}X~YP-cj8err$)KWf#>yvezsL$q?Ueg_B4_Y
      zMtM4o1fdjxuF#X__XVL4NM8xpVVuFM^HTy{5ON()2S#Y)2zM%zU3dO+^AW!$q>hzV
      zrcH>~>JA~%@y60Z9IIJa$Pn_j((-b8Ka~DJ3|&bm+TMr_1lw@EJWQBd6%h99e@x#Z
      zlxqtxn!ay*r6;Yr6Z)1z-xAL?mPRNywEKDIk|bDtZ|aX^SA_#@|M^b`VJmjPuj3yk
      zRFOoAbDFCdR(P=#G90sfa>SW9CmS>5ULz#W(P9iZK>{5Vc$Zy3SVNJkP@u#y6lgOU
      hvZ==Y4C}uYY&P#j3Y7)5RA3$zY_JAlle=Ts`T{WKa+Ux9
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~`}b6y29369^;aTWF<4Oex=iiiHxyBJvRk)RL4^YSkg!!q70OlL;0d{2%)6
      zTOX<mY1Oq{`s%OnXZYlD-<e4|l%Q+5vS98#_uO;#-shbA$KOBy3SbOY6g2`Z`^KS>
      zC^=?6k+r2<HJ-%Bq6iDLy*ilPE;_c6b28Eq(40N97#|b3n11C^zM3g*GeVMH)23xQ
      zGXh<G=ezZ92!!VfJF*S}^*SQZVhG_49Z@t0g!+`jg|unOwbH@1w6n%`UJ5j)3ppdd
      zVc4eH`^K<>MbuTYjS)|{Xnw`344I0d9UW1;DbR5q0Ua%96{s~GX&X+#7HIG54@6G+
      zb_TA?n7fwYlx#+ysOmHwxTxfvw;cOuI-6NZW-}Yf8U7Ta%Q~*0n>meKP8N&tQGvw2
      zNf!v}i=V7xm>wPPAWr=cOlw6RDY0CVdBfUG+}_@oIfv<b(HF%vfu=J8=;+4)5AuaC
      zWzku*r9rCMJ;M?h_TdCWZ3R^+H^CY!>Vg^4G3<dco)SzH34zOJQpVN2vZ67JU`*Bj
      zy1-%;{>ju?;&C_Od3M!9kw>OoWbbyI=fuu9FrLyemzRdE>M^O~hHApvT)}b-(^9=v
      zMS%XTD5g(MQKiK7NMc6E2e`#@>`KQiM{Bu7f-0(fAL^LHltApUJW5&XESFSun%A*_
      zMS&;-D4GI8)li(rtBxU3I+ig`hL)LEn9@2{6{cE-+%WPbPTy_ZiQ;2+`Pt&Aq&n7B
      z86$_vTTN(I$6ZiYO@2`_@|5OU6;K|gAkY3S0Z|aBIUtYVq*gTJK!qp(-PmyLr|10W
      zNqN?<1n5?-1}2K*uEtBCJKz}X&gm?NPt6`F*z%xo=xV*KBZnQ9z%zMrU#ilCUc;%z
      zie(BVJ0}-R^)BgtiV>wEw<*h#_FUd579}Opyth$cG5{*@vi|oo!MAYU%H<11)7o8?
      z&R$_hM;-^Pq*PCe`#Lw3`^$aNX-Z<0k86l8zG!SzFDzH;FN#{)>$sXk4SzsvVDLx&
      zdjb7>?rLyB+1wMBUK>Rt_d4$=YZIFJW#6OKk8+(~byhoYjMxd<o^kEP(3D*p58SV<
      z-0#FidR=mT-*VA>O>_$Fq>A$rUFvg;x5Fp6nm%P34AHdu3r6ny=E&gC3yeOm<ZV!K
      zw3}$rrqHV;-Td8NY(IYsuHs#c6JIa+yvJ1y*BpEPSIXSrH^6D)HC?n@h-$M{dELa6
      zALCEPj4)Pu@OLD?MI`iW@HZq^hknBQ0&5ET@Cjz!1D^-?A5Dcj!#`l@JG9erMW8c$
      zjJ21@e1k~%Sx9Lca_iH>Dngqljs?_di)hf6(59u(tu3QRTR}ogyZFXE3_fq7!9B!@
      zumLmJ#C>9H!vwZy3n76nJfId~e8N0RG0*E^#p~0G*Jtz+_`JgQFQ4t^|6|+pI@=~+
      zlTOy(IK_Mf^<;jB%-6|0L*`jBzf0yDWPXp#H?gE`A*(&WhW0R^!e&K<&58=k6&2<x
      xD)gUGL3w#9C@)V1<)u^zLsG38Ji;!&&0Mv!tM<539i%K?mz&t<F3i)%{{ZU%6$$_V
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2hvj6g?9=ySBS+^U;Q+A0aJnNMa{WLMfpRffCwaVy94BmFNS~dOIXrHoItd
      zU0NRcfP{b-cmQ5XQL9RQ%LAa2Rv_^M_)&;6yPL!zHj1({bLY-E=bk&`zyJB;F936B
      z=;#p`yk*`tORdm$N)2Din)zvdUPoHs_}<2)W)S+O71m`apoJTDke?GcQQgbfIa+Tu
      ziBM+NqV3w@lECSS?rD?P1=7pjO__zjAp^b8a!BE@0UbvKQWGlSXw`P*T5Gc@{f60e
      zq`*McvrOl@>Dy|Z1k*|uRd-;Ur=E0Rf6k+XtmH6+VI40B40kKQz#xtZWb9D-X6X3>
      zLlcv2$dx2c;B4Jqcg?Wn6a7@jq{T*kwY*eTw4(-I#2A51%aTEmpA{(mpFeGsiNobA
      zVa^(O33-~lX}hcPu5u)*#4+9V($(fIX@#U4$ApfT1^N$EX<!ml+;F_lWDu_S(qui2
      z4bv5vPUN&h-Dod;r_*a}TO_7vU^*6K-k}&BC4tcclzDY-$F>}1FsGV4FR;>~{&MAD
      z;rWQLTU=d~-j8iR-~}D-mc;gNns=CJInwl1KNbvJP&X}Od2VRhuDU=S44Ay3k{1oU
      zfr|pUPvqT-dyQU8W%8Q_-ohmTeO-o1qd>6}L^n}cLM$722j?lzwH*QBv9rG1^lnG^
      z?;5D!J<`UZnBrsy*J6j16M~J*)xDN)$t$*cF-Fq08PyjqE3Pa3WycHx$&$7B)$*xb
      zb}h#XY<ImT!wv7IforI9p9M!xzklETW~hu=zT6alPDEdydcK^ge;padvz#rUhkrnB
      zs_;8M&tUw@RS%A;ShT}_X!p>^wZStg+K&N_{At3m1ZAG1+RIEmMQ$6%w>Xb6G!@sr
      zXgi<TJwJjI%sLt6o{H4mqdKK_LE${dX*E2>ne;Z!RriGoDTZo)V&=mnoGKKbVfL3@
      z-XjV}`wD~F*BIBniTKB2?1X<1=kN;7Q{Oo2d6lys&UxMVRnA=C*jCeP|M5lp7P|Ib
      z$GTp}#RTIcVk&pfDwTz8l<%WAwUtQbdg(X3{RF+~t<;`lvGVV6Nc#bYwI3sfp%^7m
      zPCQ&jKGJt(m+MRBDDO($xN60StuLW3ZewL1@hGnawEHCfiNp^uqWz39?I8-<BTQ?L
      r+bk^Y3MnN*M)>|#BMVcgMop+;jpG1C4bkAMoGCL^<b8hAjDGMh>|J)X
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=T~8B16g|@}yKP<hDj;G()Pm)+d?=!eC?QH33qG_V(YNU`!jfgz>~0Z#@E7@@
      z34+nYAK;Jh!58&K|AFz&c7Y<TX}WXg%$;-Zx%bYOKOa8>n8uQZ7(;rS@A7;#u<U%<
      z6JnJ=&(3O47&0dZOBFxxxEU<Fwk^!SavcUW*s}cWG(%tU#PNusRILz^L0$`%V+D&0
      z{ki6DBkK&xvb!OYU^u6v1!@X$oY$eDl_8#!4sAut5o^_*itx(3Vhe`OqHA({oqLwt
      zN1!6pV(4xVZI<#;eCrimCCWkyJ?PbNfuXmV03B&`F(j-&csy`DhMwF=9djYVi8xuZ
      zHXR;RJz~!^bXq8v){R9&h8@sx8G}U3O;h-Oc8VeYzxvdLj4Es-iRP+~YsgZOcP!_T
      zcquCqDzUk<nSWf_rdCn7VdOMiXXrSiQpX5J>A-eh2tQcy1SdV^El%B?h|;O2dRj02
      zsMBlIwlJA-9TT-=_#P#rA<r;yCS+FLJ1ScWlbDuGo?%#Npx-E*6`l<PHpAthv^=vs
      zKcKEQbE5X|@I7)gZNWX+k9i$)a?(;Ix9XYVp(V#lk0ee?5wtBhj_{Uk?)!oUOs$PL
      z&E*5fv|ZnFHdjTk<!<P>hx>HC%k8Rk>^(IMCojmr6is`aULtF6mm^P>LVpbj!jojp
      zBSt?UH9Gd5K8MiX(JqEIiG?SmLH&w$+Us;jq8;d@m0mTvB9<9i<ym5MAE^U$zahKE
      zp-No+R(C&feE%Z)$m>$*n+dadO&Q8;=Oxbv^vh)*SCj(`6;DB9ae`JqVe&}?D`Vq_
      zn0k90w^j0}-;q{-U|9Vb#viP4NAc4b!Ypo3e#4~aCRs7EsYUdam6@ZpPSdS_>Z1OF
      hrv7fAD~{V?7I$FK+DWWE6k&lZ$tIDz^i>F5{0p@$B}4!K
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}S#KLv7(LfZ#&#!d(l%}(O(?CQc9y1TvlN^rl#qhSQXnRXzD?Y#bgId?jK>i{
      z;sqYqUf4uc-g#;s3JNKU#PZ6ILY!}GPbRTZWhFEBThBS)H}{`^fBOT#INmW3Q#f(g
      z+Oo##zU_>aJ*}6md$|b%35C9W$MyA^?^zXpRr?BE{vErPyTr_;{fK62k?tAWwf$Lz
      zY`%lPu%?ihuin;aC>$}7L{|oJbek}6R3V<1fMZLxt5@oq>)I<@>yB19zErJP&YI=f
      za&8(E0)#l*+vFw)BvG?JU@A+N(#Ybpfl~^-ZIDfzz*7pUq>!?G?OA@+6Yzyd*;3Qa
      zs_9jG!?pan$I_D>gJvR$qUM6@d)qVR#bSA_ILn`bXA}n8aO6b7R-+6C@vLZaPT^E1
      z9ZRB9vf^mV%aGi2CeDj~sY=!LE!!1YnrV*ZZj9YrzpE>Lv2e>k;lRj4fJczWu!#|j
      za)cY&U)0+QCtC!gMWo-DiAxw)Fc`VQX)26#Y8O$WwObNhlzCh+F@Z_W$F&`W)BhJL
      zxTZ~96<jHHTeF-xm*+*y7~nXv?K(;a6W72MOm0cEtWOYjkVPCXnYfOZ$ydKuw;XDA
      zp#zEb)WR*UOI0DZ$<op73&kWb<r3V%t=+!Y+T4K%+b}6y5rwl6e^j_gNSCKKt6N%z
      zv1DQyD+-y0sWFfK4qKB8#Fx#<tXAt@Mc=UH<1(8qE{aGzmRwhR^Nv-kX=*YR!4kO#
      zp0wrsiWl69Q?1$V#<KSBRBxMj8*H7@@;wAMNpEYtg4>6tBDabg!P`mo^vK=7H~BM=
      zqCL&GtBCOjWQK-+=D)`<f8;5KV`2+DoVxPS!?Vd8vG(FPpIm#KY*x9<r}$DsyU6UK
      zZ-?)V8eL*n??>`eVgA$TXVjS>b|64AjYLqV`*#e!E47l3arV)nVjo6|b%(|HxiVEK
      zP4O9m*+cFSA@vaq^>L)eKA`7up;_Z0fhAaLdiZbTzeh5@GyE6w%K~ZSR}3la;o{2Z
      zPq_R8`e>L^7~RDSzhLeGl8K$T@Q()?W~n;VCv5pC(&{tbDWBtv`XXpQ)M(M9z-E}o
      zECC!v0k2>o(54?ZFv(i4vSOB&hVQk|SE5hh^$_@<P2h7+20m~Ic(<?{-NWJm0_V6Y
      zP+yY3S0wN?34B8W-{Ok;j`ziVTvHDsWadILb0L}Wkj(iuGU98H5ucDr;3lcY@CM%G
      VGedGROK{~Hi}Ds$c}h@>@_*2Lk>mgX
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OHUI~6#i~I(1(M(q##s8twNzvKnrLQMTDf`;ev)lchhoH2FnbYPDwES9#<^X
      zAS9aj1N<2-+_=$&8z01TW~OC?l4g4EJ@=gNeCIpoem?&23BWiOLkI|TZfUz(x@zm?
      zbl#G3McYYaLQn*{PA=vO72DE^_L{T>n(a-!k{F}N<r5DtG)vbrx}n>%0<ob6_sMku
      zW!~J75eQsR(S+tGf@o0@!bO4L5IeLk>xNvdZWpAL*9v7R(6MY5weq@V>3sH#3KJoo
      zXVWAyL`13RFDaBDa}mVQ6GFE@`x(kAI&oP*<OIUHEiKJ9EheAz!R9<Wp+?s9lA+mE
      zi=g`&I?d#lva{I`t_t*@$(CTDYH(5X;~H0fU7)*>S~*susaTep6{Qkxs<^=_g^Q+P
      zYr4V3dtqhGD5akkwq()HCZDr&QpGR^N#vUIlH8**O%~Ik<qx5@S#sOll^mH?F@|x0
      zP)XXW)GC2gqbxpsYJ<bxSr+?_io3{=_=a8<=sC}ovrVa(#yx?kOTbOo*FcSggU*Ts
      zUpS>0)TaOEVsEE58w2O0<mTkpsXvr(&8%8Qxv2Aisa^@AEDarVh9Rx_vR0``QaSEJ
      z^SuSP(=@LOMzL&GbfdH)?M-t-#S<)$q(swsG421&37N7aFqJ{CP_(u28=xJ3A%w{u
      zq1`kB^aG;9Bk$?&2<lrp1<=Yi=Y|GDd_fzXRf=J2J345kcZo|L$^@-^7al%9^Z;G^
      zw0AL@*)G2N;=}d$Ui6Vy-0{8Qu$hA5;Iw>1|1-u49%10kDX?!ou$DR)4J?InNt3kJ
      z$s8hasvz+lA@Re9aYE=820e@iM2uyLFo}^v44tm%rvngkojelcjuE7s^tbC!ugHfx
      z5ci-)S5ogV@fuCReYT_yF{v<m(9t|bU4r<9i1>{*@dq8^FM7qXlWoAosb`DhzLPCN
      qoya0Xd1eTQyX0E92nDlb3*aFh(HeEQ(S|zc>OP0ZbW-Sj%>M&u2_wn?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO>fgc5Pj>oabg^rw)6v90<<n9DYS({KuT2!MIc2=dubGj<HlXJi;Ruzbr1X|
      z4j>gOfz$&RBm{p6F`KxFX`;xP-T8R)=FR^4`|T3IQ*2u>7#800Grp53>F;zSArAO^
      zw_(9#SQ`gk_G1-sPqjkd7oL(~z>rs`GIn<fpfgTP5t<a<lYvzG3`^B1@mi0;Y=y_7
      z2!<ODW{|g$L&<@Kn+&<CPMGb;KpZCT`XcJ`zAqT&JE6z@9*?BHr%qE7VOX4O<2Hzh
      z8Osk;N|5a$mat-BnPF~%vV#TOW?*fGf>a{nDvUJwS_ZbA`U$moBu@gal8B&JrzY)n
      zd(Hi(g?kK@iEgeI>I%+A1rPM(>kP}&)M{%rW;|c;$fglC9c*Zo?4vM=Jn>p;X`EF0
      zZQYBm?H~|Q%ja<{NSuw#6qCywQYFD(1)d+qGB`O9>NGrd@EA{Mm1o>fG|I|<gN`3V
      z6T7s=96c&lF6&*=$)wLhf&4`}y?{YKz^-q7p}z|_pXp{`R{I7K8ql~zneGnNXzv{6
      z$<q76trX=MSsg3X&tacq@gtpw7<uhCeq`zkqxw5orL46<?%e^K=fqCql)j_#Mq`;5
      zxc})I*v|}DX#_^XQ>h-QL3TvuE8J@X8NXo}e=-<XgiJgfbb5p;Svy4m4LhV*L!JC4
      H?Ro1T^;5ds
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4(QXn!6g|T(rQp_DtXNyCpw$AcP+x_Rm_`#)Y#+dVA8@2ow+mU8CjA~?jZu@v
      zSQ9_Mk20QNp{2nlZnAgoy>srFd(X`8Kj*&yJjYG~F@emHJdx#LsJ(J4Q0k5BZ|wKp
      zsRV3++~wZO_8<&oCp7y_ecbodD?bcQ1>&8a*9!zhUBLF#`%qw|aalLbSrJG!b=Q~S
      zFi-;7YhcyZUZv$$YJ|rF-904ZTweytH%?XiI;;ug^HH@Y{cic7eWW^JWj0eUxB{ts
      zL^ulUT@IImg|veO+!omUFQS5*#2wsCAS19eGo6DK%nMk)_L2}-b&$Zk@$Ngg5qS?B
      zIFXli5XYRrVnh3Ce|X$hK})th3X*R0I?{7xpiMkZ+To!dko$w8*y-63Dbk7bhAhuq
      zEkEr~D8>^`-|<A_lDX?iK*23aWvok^YW9XfN4?gjH)nj2B{Mw3y6>xC*OP;RVt2No
      z5qMkOdokOg`;S~Lf{j|b=4oAYg&its@yXi!DIG10z|1D;#gL+<%vWNHJrxTg7I2f;
      zsA3VfnE6On!<j2?ZGXp7@f()Ua4%ZcqGi3feujr%39^u*T^$|&gZ2{%KVunRu!eJF
      z@e_}@UyKOxn8%whhYdVoBgT75FE;Yb5EeG+XGeqOh|e>M@P!L}k$4MR%*U{eXIxX<
      N6MTs!b`p(J{tHHQ)%*Ye
      
      literal 0
      HcmV?d00001
      
      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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
      bzn$tX+lU|VB|6PI_&x1@7u>IYpI-hSZ@^2%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-%}e^6#g#BWl6G@5Hz$<ppCR9iv?OmTT@$Xq-`vuRS>7X=#t!)Z8y8jW`p#_
      z2Op|FJN_77?2Eog6>CCgbjFT9#;Sjm<2jpzWQO3w=H7emIp_PnbI#2_|Nis~fRk9!
      z&?7K*%iJ)htG;DVFMCQYn(Gt1=6&UvzUyfS3&aB-+jMSDUtPVWioS+kfkZp9<t-5Q
      z@2o2Ukr(K@?YQqbi*AXmwpsB74lcAqT3`jYq_X7Us7>++mCa3oUVqK1Ow0%j?hPQ{
      z-m{it`R4?N(p~QJnH5TxqqGqSJgMUV`lARTsUwadf=FjpA~=K*4Z{Khdl>0Bj6Pyt
      zc1t<8>iC>xOh*KLygQ;pLtm8QQ#zi;gh1qm<yCx^AuycI>}50&NaWz-I&{PsJgp;x
      z7?E)-n{Os{Ji+Jw1<O%|YI#+8%jT+0DH98B(X>}g&*F2_80G>InJ!?R&7)df>RO^M
      zaRJHw>|9bA=oHY_%u1ortaRpWs&Gql$9!ZpydaQi*EZ)m#j58i$ESI)ZdgUrw_Im_
      zv#8d26U8i&8qScUc1*!tsutJgZB?eQ4%gF2a>>r>h$6<FIH%)0=BN{uYO$y)71t9u
      z)kSxs5&zSn3wTvSP9WJP(K)6%=5dh<v0>WPpfiD6r|bwW;IfW9yM=D6J2b1FD!Us>
      z!-Bwg+dpsH>ZWNg`KGTrq+LOh1zpu~4X+DC8^Mj)8rfeFbtk&yR=uLSXz|SGP1aKk
      zNXNY6C@)8Eu%c*cg4@=M#SE1)M4v=25<J`V-_XO;9;{U1V5PC8HNis)#N+&?=q%}r
      zV}PO)v~wsfMC);5vW`LHA)YcOYdBcPsByTCabt1^N9#CdJis$`7(b9_51yspVM2!d
      z7*c+Kh^$~h-bGS=h%xyQPSAal{3t7?Fik7(m?hid0ei-NpU%uCwGZ|Q20j$-g8K#G
      ze$vGKlyE=8i2OXjH4x^EySS-c+!XzL#saOWpdw+az$rY}tiu`NA}F%os1axl#@CSH
      zt<V;k8iITITHXsl^oDB_gqnlrn`w4}wg4qcF-qSc)$%LEe#Y$ehj{T(EBQBUI!&gR
      z9vN(_Bg^X`ec2tn%(`nB58p$KEj7Hd&F3#$$4h+7ZtrrN;s(oaaX@ZSG4A82{0<rU
      zJx<DP%*hA1EPuo`S;Jehj(6lvhlbLwhSxCE)Nr?{VU9r_Gt(=?bdkw-m(-+PFa+zk
      zPHy3MX@J_plH$RXze1D0p<n)vQTYds$v-h8A7fVjh4b?74o-7TPCa-dP`HF;TBF2H
      K&@+1ziT?mFONjaa
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      B${7Fv
      
      literal 0
      HcmV?d00001
      
      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
      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
      R_)2)B$m#GK{8qQW`#&byA=>}|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc^F5dNmLwAQV~S}p>@Qbc<}8ehfuAc__VF`+c!@z5U2(ZkthFX+$GL}?<4
      zCcc>X1N=G0+0&*FYoaf^GdtgW^UY;{{QCR_z<sQzkswrGi&IgLLZ#~m=8f^*nr+WN
      z5#g3+PNg3x&pdtCmc5XTG?E1O0^iVDc7-0`M<~KnAblltYmk1>ctW5ZLXIheP?)eK
      zbR<)(0aW_=je`N9uxoj>Fx~oo=quCRBuqY3Mum?E)8+ASrA0_?c^#R?6k+zy^v99X
      z9qDIKAS?_!b6?rk-1exq2W}R56dgFo#nz02S<G=|(d$XmA>8|0<uNhCVw*9=yn_WS
      z5;CDTXoOHKSH@BpJAq;v%Y>y1?R$~dFFj>K>5m4Q!3txV$MTYHH?T8uRp1&<*~nrE
      z#Va7(c96wYLVi~nxfh)rNxvzMw2UY0wRtImSHu4BV=_EeJpJ{7y#Kla-b=14FWm<r
      zyYEGQTW+hk&f34uXd`YHD=c<`PauJLq%g@|+IkuO!W~$f;<a$(8haW^jsWHAIr4{v
      z>wVm)oniV6H~Y9%`;Oc>mJSPUAEmF=+9#}juncSboMC?88H#w0IW$nh4({Rw?%0^+
      uWWUTFv)kHylBi&DSh>z`;#jKs5v%XnNFb(-B?C=M;|u^p8vdy)s`eYZpx1Q(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+ip@p6kVG_K?JEtFJi5yt(BWC@wvtat3)a`CbcAeoWh8s(>dgvIo0p*OEl4v
      z*hC*q{3zp|1Gb46eVNRfy=SepFF$^M`3m43Hq%HDHeQPp(TuFp%>(ns_-{?i4~~Ux
      zX)y>Nzw61NRlZ3hN$@UG+gi(k(BsteEW%tU10{4<1|k1CXg?y*E+N0;o6rhlyFy1Y
      z#qyxa`z#^#(#a5totRq-GidJHK$*cdVfMZ<%03{>SEs|ZE+M(&_hlM$gvCF<Ka7;_
      z%OHay2PcJjPRtvMFqC~y883?hN;%|^cejNc7O}*tVmOqhPuTpM>Xea*(6*x}=Wqkd
      zgpBpaMG#8W+SC`$ok1y$TZEMh-+PhP&wXXA49**x!78ERBC+?-J8}K{U4r$!p6hE6
      z^{gLkWwC<NB@k}ski}&}p`(o4i;j<E@IoAE>Duh~cshb-#CY<Uw67G8pfdLPzfIt|
      z5NBrwa=aph?7klbJ=s!D!TZM&ZMkBx$_{6E0TL)9g;_@F7-jf{ZO3<VL*d93Mnfby
      z0#xf~C>$2Aj&QAUiuqGqAK_->JMw2(IV^f3tbMCDK4bl3%&@^{nc0CSD4~rdJmvQ6
      zVhtTs@C<i2vM}alTxG-xsIflRhdP!g>dhDfsro0Zf8eA99JR9zbYq%ad{0ei2#q-F
      F?k^mj(Y*iw
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZuv-*3`T7(EvX9Z-RRo4<8)=%Cy9F&`mI3}Uimn-36@O&=`X4Rk5DrnF}Njy~@}
      zlPya$(RcqS<9FL`G{H2tKkj$Fb5759|NQ;&3qT96R3sQmXU1ov;d_?d7;@8d+)7J@
      z!cYwMZ9|M3??z`-QITd?nWKBcpK{mmEJrXfi`G6v+M8IjN|R_0=E#t@P1TMiEN_o!
      zs*B~?kU{A>r#u6Of`$yTStPNnA%_w}vRWI;%3TdAmI!fR34Y{HN8BA4Bb!S}$29Dr
      z;ac)L+Ek<=>RQmNw8&6lV$2R5m-lQw<-#K%$(&^H7*AC^xd|Z_j)rGaT;pLw*YSnN
      zkQ4mei#SNDS_{=;;gMFRZ;gfF`7T*aRcnJmTg3~8wRuiQPTw~t5l`>j<ey}?SyZqr
      zEmbwtpp#l8{>JbOhVuLWiDmna@0$FrC4<R@1E@<S^1d$wce}PRn{oQ#`eJ)5tJsh`
      z<akeJ))S`f%q%fJ<le+N)#xbgGAu=|i1NWr06}muiZ+@w!6dB|5_HiZfnrgPnoeYr
      zRt_3f@6g-p009*Att;g9YZUe570TbKl)wtz^Faeqv2|qF23BcLHd71k;XXad2_8mt
      z9qN*`l75LYt^6e(eML&SNM6ux$e5N0wi#n8-7>9VolwsM>_%Yl1O0?#)MJcako$?s
      z@ikul4mCFQW70cOK9cp_Z?{T;ceaf@+rcWU#}xHQQNdP#-o_3+v!o=o$baOajs|@x
      IbS#?x05)^Y6aWAK
      
      literal 0
      HcmV?d00001
      
      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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
      ZYXp4Nug>GIeEQ$ZU+^oEPN(Yp-vUDy!$kl9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#yG{Z@6g{)Mu(*OC3W&7@4<iywjENx{Nk9t?CU(Ozfx&fG_o2Q2Vn<_TVqt0F
      zM;Y%d#1Nv*J#**Y^O*Vie*XZ_#I^~Ip)}!-yb*=cX<Q3_d&YxtkKgY!O&AQhc<69<
      z)VLT-gdH*@52Y)^BL=-v?K2o{ZzwG2SV<#+Bty0<U2z`W4TOKi2aaIKcRiaseeO%u
      z&o7N|ECYse_aFNfLuyP}lzi;fA#3pvafeui%8a%UtW~{XV4iYY&P-C)r5E|OIF%|-
      zZsDDKYMCM3ab4lJ9UcUN^s^_f?RbH7M?Dday`hORnf{p+`=EIApNK1c0re(z2ZW3;
      zQF}w`l@1y#sum&O!Jy$Pozk-<!VGl`YsgYn0=tAtK+~tH#%v`HJS{M_UuF*LbLKH^
      xE0;|D6IQMMf`mRbmPMXpk>YG|E<zOKu|YCAHe=HQii8&3C}YsHMAg6+@B^f)Y2^R_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7%T^Ru6x|n^E@(<c<Pi`R0flZ}f-zAW3;|J5XjBXa&BLPl0tH1C>8?i2bCOK*
      z6Uoep1GAPiuDF)YbS1x#Sw<OTn3#-W_N^}HMjkrouKPImoPEyOci&(C`}qlg9(<#r
      zNT7D!ST?#do@IAmm&U>cBRw}}EVcA%2nkg9o3`Q1c8^cbOViU37O2c08S!Mw@Z6L@
      znQf%KVaH3|73dhvTNFA~<H3x%AiWkf^sVDO>c~55M@ttR_qH?UCI!TZK-inJ(k(p#
      zEjzgM{Y*%YuEKqmV|ix;THD^_Ky*?dG~^~_8JLz19lIhZMwO1;s1_)0i%v$kQ>)`G
      z)CrW%SWYrQumU%B^1ms^=nh~u87nONb(Enrf&)0D;h;d%_61$bUPmJi6Qg08GM#QY
      zCeXhV#<gSdZLr15(2OG*S_G=M46frS${BCbO%Ayk$5XJ|bVStRo>9w@iOk}(OkFdk
      zZOP(}x~5@I8YxT7gT;{Qu0Y*3)#+tJOU*fHE|3oq!s*s=O!XyV+R|{YWMoEa=oN_O
      z0S>v2nMtLj<ME6&W0{6$xz6w%Q!c52hPT%!@3VTsOIgnBV8*hOG8Mr)IH}>?4ZP1;
      z=s1Pb0@|`+XXN+{Ytl9n6t2KeJc8rsQ{?Ga7P+(v_oI`gc#o88Jlx-?Y~R;0h#}I}
      zSXz<}Ip4X}p-p}QyneW0<>H(`!&ZO_4KL^z!9`Zob8|TfRJCoHLl62Q7{j=Rgg`7`
      z+t*!X9hY&1*LhZYIa2f5u0_}+FnKK?(<bnNhHC<iuM4JQ64zNkr5L;w+Ysj!-%~nn
      zC{~8jwo95e<0Bm(;}f=X+7}~Iu=(ceT}24<mJS2cEFyFCZ;(LO8>F~F?jj2OT7gQ)
      zR3(|(oRQ8c3q|L~tF6h2FZ(TE>F7kYhJ_8)O1Kjlb8gs{i}bh7_6X)trS7GpLqjQf
      zmXeF^GB3?%0*Cxs`|KRCZ8>Y$6Q1G8g2PLwQn$|2k-@USZp)$CJBEGLcOr0PCw<8!
      z7*`4#nQ${HQ=YSw5L6Vfs7pZ*&_^6criS={q$PWyD+|B4)O2deuw&Y8n%8tpdUI}4
      z$5;589kAA)o|+9ESbLJ<)Cx*Ce<cX<!D9jV52dUAmqG<pR4C2oJj~y2?4fl9N7s0+
      zh~I;;_7&`ntzus+CRS0ig8EqdBQ!ij(+XODqD2v+{IB#Qs7Sxi|L>gtff(0y`lA=L
      zqr<ml=Yj~|(N^u9k3Ga*dd#AWqt;+X|39GXF?yyR<M@=?c!U$Hh*zG;Vjypm#n~**
      zuj10vJd}DrmA|ONe`7yhpcns8AYR}c{w;uXejO4Ywj3l8W-=v&lx%;7n)WP4AL42v
      z_x-T{9@^I9-Yo7-6mzAfGmB48hw4Jl5UvY7=v4Nd&tLxeZINim8$bCGCE`JT-q4%4
      z_wqNt9IAAKs^Eex5*l<-idv!b&Dn*cq7qS2g>F$z&90>?*Q1YX1L6P`^B}H@Mk+=V
      z3{m0db%6~g_8>1cQVr)tVk>$3ncGpE2}U~SCa!a*1p~pTn>0xBM2Kf3W^y&b34T?Z
      z%89@J8A?L;i|=!q>v~viiH?G@mIvVlWokBXG4FE_=pc>el$+-$e~kI5RoG8sYQBQS
      zm>Mhw1mozzdJMmv;v~y+iV}7j`$Qc3MITy4e?i=i^|<aj!@dvVo(<wI`f-;SH}#a!
      z6zQhOv(T*-GzD`7f_={-9TN%__gmF|0n?k*?GYD==MwRZ63-Z#MS?9F$0>1{t+`Tw
      j>ui9l7`Oe5?%*!Jm8{<Z3d`plsp6`YFZdtg>X-imai5Du
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0-%}e^6#gz@$&YSJ8h%)7)ljibLfTjms|HX(YH0#hp{bzNSzrgY#0@5!I=uSg
      z-_Qp~pVWswScj&y&N%v@&iLfBV>`b1Z#aHucS)8s%4Blyx#ynyo$vg(H~H<K`#%6U
      zhxfziQpj94ZWy_`W0iAPO=Ih#QQMq1wueQYuCHyGjw{aEPIV`YZiTpOUpDNG+~w8l
      z=9&{mk3wGyMNYfs3ZX4?M<G#cKay97E?OJ5;nb@p&6Wz(^f;SVZTOtRNzeX&D2eri
      zWn0da!uiy}=8qCcmk5!fUlF=zD(hwxWUAv3^cX_u*KrsFq?SsTWalv*VMG*qi<WIJ
      z)IVG`t4qdendB42%9>Fw8C6TxzOq|lQOF)ht(9EHG`JsXXL}DWx?wtAF%*VV=>t(E
      zKRi;9?Dy~42TI0$EtO{UQ9OfZ!x&Z=XcaKf20Bhj)RBcN#o`Br*=35vEg9uHBNvDg
      zAu`B@F`|&{2odNc9cKhhyWyRW)S6JI{2~T9`e6oDbf2P2amxs8^J6lhP${pwLdexe
      zHrc{bQMY<?QqA)^p2v8M!M-HY%M7=Z!#QG^AJvUAOV`n0CB{~m((yEshoE6f5MR@g
      z$F#!f4u~E4Zbc5huH!V43aY{{c@6|B+PpptG2&DfovLMTw3pG-=EEqkHCwmKQ%~2e
      z^14}#;S%~~SkQ49Z!$Jxd)u_v70z^^8qD@Sn0y3pljWo!EeX<<HUOW?e*?(Lt2!=%
      z`Hd}B>eV&#f+bfc9_X~Q5`}_3XWM3Vrfk$|CaVx@JwtplWZ}OoxkppmDTfp6aW=(N
      z9!XX%#IJ@fK7PE*l%tfo5R1p<)>9VUVH}~(+v!D|+G|{gIQM2o?%-(VF8VUrI~cr8
      zRS3s89+7SJ1vK>;qUv)zPTipErWeQY1Xn!ly6nOU$~xV6ni#DVp2Sle#Z`{8>}i=@
      z9Q}qum+PQMl<I32*gLHGz)D(?RvzCW7i7`}1!?YL@LQbx5@Gcf!m?_Iyd8k-YeKR$
      zn~*6Na@6M)5nj7Ux8vLo;6$1@XBp2PwdY(Mhige?!pE7HnORL|1u>Y-pZQSyg1GwC
      zMNWFBn%PY7*Gq~OK@6iDy}Wukm%Xv(-Wd0kTz-ym`q-D8243)q+{25X+-l4B?}4CN
      z$;o5Fhx*hHW_;u)Xg84?`4QTDrh&=qcX&nN9$vkPV?I7rGrmgez7^u9>FhXqSlmBY
      zq(7mn2RNY~VwCfk`YRCocr*5K%(}756LJA>xbg97`J@W&8W{Q>mzM9MD0~{2PrTK@
      sqR)lP21@NE{5ufsknb#ncU+pwSmB%?bcPS!yG%O&HsC$#yuQ2kFD$^br2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTjzq7=Aw1F*c^aWO%^CMARK%Q$S1{*@Z+RVQLgI<7Js2P^cYrEs=lV;ojeY
      z7f7Osw<i7?5BJ9BYdcnP0d3OuJ-^TQyl?yU*T>HQZeluyE`iLtzO9#B$1qDzrM_`r
      zZ>~MiH%FCx*R5|zCk9Pm*o!iCYqey{6)*CMT#>f4>QW%Ot(z|2scJjy(ek>iJ7t0R
      zqOoe}j%za@vQ(o*v*b%hV8o9;qBUdl#|F(TEtFZdq6#<71`CUMf$kZ@GMtLQT=s8J
      zA&WZA!ATyw(v{_qH#o$6t|pMpvQfy_A(Jq?P;IvHTqY2~sU%KfP+;=ELF8(22n;0=
      zMYod9B$31kfxfC?$%pQXWoa+z%ce(qqpq7Z-8PgS7&T|jXp-*@xx?{nsdEWjJQ_XQ
      zRsSfpv)L*);b$HmRg3y!ds|v2P9s9T1bSAbbI)>Y;wWZwo$G|Q%@e(N=1%`ZLaU*N
      z!B0$(uWLzMN0uPiUSP0Q$lKsxsxjobU&pO~8&Co{jH!W+3)~I{dYF;WNy57lbX04U
      zSZug<UCtS5cKxAGuBea*B<C$l+OwwKY|3T~69Vau5Lv0sI=?cd1Uy$~7Vd;b9W<|X
      zuvJ1~YM)h+gRem`TPY($HY5CDsGG}3Ek>yeJ$%NYxc2p4>ReIJC&*GCV|-6P255c9
      z3Q@jO`NG&fpW}N-=hNCAPQRx$g0sp84G^!;EncHnyupBYi*vM3`I#7IKXs*W-b13K
      z3%JNmN>b<)%9Mvg!zId@z%oopT`Kc3G5hg7o_7RS4zP}TSht8n)lBC<;A*w-1yQm4
      z3Atza!afSSbcEr4qxU=F;s+uB^xzKp$pPFb`UAKMP}`TG=KB<&2#VCZP{IwqQ<Mb%
      Q(UUxIj?xruKAE?E13e~WEdT%j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2D`p6g_u0-Fz5rTy3j${i><mR<N~w5vqa|#f7ymm5PtEaiF8yY)NJX{Y`=j
      ztAc`k)*mI_n?{>0El9}RkGbc}J$L5U?{7Z<+`)p28e#60dZU(y*7TR3YxVkx%6Fcs
      zy;%H5sm<PQY3srvOdZxe?BzC7iRCRq!|s?oULnkM4=XB6>s)frq{coV%(hRcS==T#
      z8-thH2jNtR2{Z!KaXN&HGlY6u3MRWI)tkfJp3a`BUSAWM-9e)I+bS~>mq|w&BE-iZ
      zH71OEb8_>JnfQc`k7-<RF*ByMq9nvQTqID3;2EnkWd|8yy1iIAsZ-|HU0mjo96OPC
      zH9!kjMcXyP!U;1OZ&dVqDoJ!+%=-TSfhvtvbg=4RYcR|b{n*G9qsrcG>6j39(o|;~
      zeU;~$XBkSx-`9W@zN0$7Ac`WnDE1uwU3i@L*}IDxe?YKw>oYH35q{#RhDpg4J6{+#
      zLd0>%7|EVRlP&Rt&zCH#Y-P_|8X*{A>OK1h9E~EsU%`9-@Uys7;@7xG!TaCQdcjRx
      y`FMojXNAB&Ac#C%$6QG;&sGQ~q=BR04+U6M)^MX(W6ZN{a?Ec6H`!}(%$Ywu<+<np
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      JGOO_Ke*gy%0*U|t
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTfh76#n);b7MGd2e3dbl(B%F3v^m&Edm_{3U%sqS}vuwRL$XZ2c`^Xnlon_
      z>Q7N0c;lrHHW6qvkteOG@zKN=HQo}9_sfGuZCvZj0Fy!#GC8xaYpw5F>s$N5!?)f6
      za2zlDAqC<$j9W&c=wx#VGjEwi+g6s77_e>Q_Fyh=&SkBc(V{A<wv=Q0;SmVA206o;
      zNnDt|p-jgQpFr)Vo0Ow$!^ztMRhC+CQr2~~ARtl#0e9`FdAgr|)J-4VAJ5KMhEuea
      zfHpBqJN}$eaK@A);B#iPg|=e?(URr=BPMfSf7Z%6Nr8^Yj;*4T0-mA#byWp{$8_w)
      zz92Nz>j<HNa7Ch%d~!g?9t46oh-N>U1dePb;6L-I;}BXX6^3c5f=g&O*isz&2_61Y
      z=vEzVmEMjso+ou2L1Z&Tmq2nC^ryB~hJ(g*R3Rv^FP*hirZ_*X><ME!N0q8g=S?Fw
      zY1mm_mp46JE`iRSrk&-*^`12f84`_~=c}X$b5@yiyu-}8b)2ZA+f9{XNl~35Wm#0{
      zlH7SCQIZjxKCPn{w6mV~69SiZk(BLeaDNmMV~RS)HY|toFh{{o;~76lbCGQov5k$6
      zXIWVuKJsHwAiQar$&VM!+2Nd;ry#=%rn>25^HvZ8sApQkI!17ovX!+=@(@WyQ$Z?L
      zN~ivAU?|V)NV9Wa(PH;h$DLE5rlrQMCt4Ndy?t}N#6DZi=Wi)L#spe6yE&E1sTm_T
      z?ih}$06ba(d`ZV7E>j&!#sgG4Mom2@vI5efzu<VjXq##z%i?O-`Vt-GSOR*=vXnhU
      z4@5zc(linfy=Gg*TfukzW$GtUB>NDiOlkCa;eq6qqGwUE%4x6Ko$IuwE(by(eg|mJ
      zOJ4{zbfcDLMY5MPcE{q&sEe&)e@rf;F@6t^zlv&}hnLV8qxE5$^4QMvu4P2;l9@!D
      z{tr=T$PeL_@1jb+hrRMX_RIItEFYj<et-_Tqf<Z%gH9Z!Q6Pb1We6u}<g@D7n+U%K
      zujh_-hn6MRK0cBkRk)}wyO1o9vWr*TEC4<1g1)+Y=vqX`g&z}ybqOu8(tbN%VfZvg
      z?<3&ed6dd0MB!7^$<J_5evY{O0$uV;oRVKx;ON<)auQDw+ETtxxmo>~@Nk~frI<bG
      z_zL<t@aw348v|EXF|@{b!jx*paoz>T8!I@&d0xeH9laj1I(NYHMux}EHR7rxiDB}q
      zxoPjEib8&afczG^{EqN`Pk4VotNalW`4i#&8GZ5>B;{`yq;XjOiV>QhlfSz>!sLfA
      zmU#qlhPwDXMTwvu8Pbr%1v=-#m3CN50v9*3{#BXfH3Ci<-(cBzx=AiF(NQ8gzUB(5
      zbmef8$EFob#G0BHv8TMd1W!|$^%C@T-fK+zuFE<@c-9q>WEIOli1nYu`Y+VTzfmv$
      z!6Eq&twboU33O{3&T1ZHG%qe{K1^tST&8hK3%JZ<)Gxrb4dxSN<~8)*yg=Q;+H1uX
      YnrZaA>c*a;`*1r;(6ja8M#W$H7bUIw@&Et;
      
      literal 0
      HcmV?d00001
      
      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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
      V2cO_y*~*VIZ}IQnGWz=W{|D*CmDK<M
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fvg|6y2vSq^SysEnW~*gpzonqVOUN4~})F3^R<w<-xa@9%^Ws)bxaL{4^i@
      z06)rcopaJs)5Q9e?#o(xuf6x_uirm@645s88dPAkcIjL>jaYbo!wmyBjv^k2#ydZB
      zyI#<F&%egppc116mFGJ_r*ZuGlDop7*=gvHF_-8vqxtJ9ijq;;X}3Rk(LgY&Sx0H|
      zJ^P%IdE#{fN5m0lG;5tUmD2$3$dRy0cyYm_e{p;o;_$;%*&12y$0EU1n%`XB7hV_)
      z45~3&z3!wH2p&aoU-0%QiID-UX4%bX`%o)MkMq>)@w31adp0_$ODX@8XbPvxlRm4K
      zJvk&sGnNf9OjD-nw#<I$`w42tnp!7|bz?eASCyr7)mp@R;g#<8*wts`VsBOLmr3L9
      zBDRR`)lL`{F;lEcr!p!@T70A?44nJChntjs&b!cxI~9%>4B#1f-;q+Z>=yhU_T`8$
      zVze}zmRdwB@ncTQnSp(%IY6}3j|X3HSSMi|xzOT+d-1QQuqDrfQD?vTc5-kBlP>K^
      zpTm$+y$@Y{EKxlW?Zpd&Ix5f%8F;fRc!wrc;JX2<KsRCEO4)NXKZ-9Pemi9^BELX)
      zfG;7hI>xk=8=0fK8JK&DJuh;f9%Nvafq9r4S)tVo%p+hP=SH4DpZtGXOTJH2de>9-
      zMy|^BT$OcnJe;{yu$i*0Tt%C?ecLIHXDPd$=y{%eU(idXbBh|IUS6S>?eYC%dau=G
      Jyh--D^9Pz`HWB~;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4$xg#C5FJBHpzQlzc9b5VLV^pedH@xv2nity2W}=cl_5BhaS;3(2R?w0LcEwz
      zL>mN$$eDR>X5K7s?=P=Jv_qQ?bun7K<&V4=8R-|jKzWhYLYd-$A9#0CHP0du35PO_
      zMl8?gs#!d}z7?KvsE5(;ceJH4>gJ6Gqe=IqonI<kG3q;)O~p;51*0CfUbW6_aC0Lx
      zLc_@X5_-ufSAFtCXk?%s92#Mi|1MBdMra*{Ml@Qaul$JIOA&MYsjt27y1W+`N*b$c
      zGZy$CV#e@0G&JEBI=g0+bqmPDC=&+0&uG{EGi6$qjlaWel~FD3xm4KQArHAH%`*n;
      z7HXIWkl+zId$DK(&I2Q-q484>7|kX_vJ*LkQmh!WF2#{c=~#IS6)To8m(D2F;_&5k
      zFbTJm+<6dbPaH`f`o?}--*&ubMwN1PzjH2?PS>Z$wqZ}QY(?T$F$a8E+<rgq*`Z!o
      zeXzPH2fM$`9-u)WL%=iO4JXV|%N$EV#(_-GWC}6`WSVADkXayeG>;OD7EnKa7n3(n
      XOD%oN@aJizWv?RFnpM7@=-T)I0k`qi
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AyG{Z@6g`)x;UNfu3YCc_Jfa(GkOI_1Lu^p`VV&UUGHYgcji2K$XhULQY2kPH
      z9mcy0k;cYi&dt4Z9&_jO`|TaT5o&3~2<<!ZD6GI&j%B;r4vdl7xBAAtm%1;EQPP|~
      z+48|xu1+ICC`STE=&AL4K`46CDB+By@tAmhenOxNLVn<C&llPs3n!4t$w%?^xcmG?
      zNOhG~evc4uG{=O*z`c<f#Ic@323bO3sI<HcW)o?y#Ke(=($KXzKyVEA%VEO5RUYAB
      z_>V0*gi2!}h_)E{M(Js%IS%tHVSbsAo=MLW(<pbf@RCZ%jNHK3@=S#<tN;C5hoKI;
      z;2rtD2{j~<;+p0zhBZFygDhi?Cl*)YnrzLHe~Bms#!vv%QDn?52-rZ0yHH$a48=V*
      li*Zf0+H-8K)R}0y$HDuNLv_JgI)v_3Y_SJno7FMw`~ZTqcV++p
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWky9&ZU5S)$C7~i0+eQXT2DmJ2(U=c}wIgSuHE)ws=Z?o_N{3!7hA7F}w*?F+D
      zxBKM^V1lj(hcMi;6AO*bWXN;HO;HG?!zGiFB~o~B3B8v^GL?qgWG}cTxZD~DgJ87z
      z7iWaV>deJKXSq6h@Cp5&=c^F>C`%R7rVxZ`Fxth>WR#nNi*+U~+5WT`Kl6lO9#6~X
      j7G<hNAXMy=0NMUk)ZoCgn``+x8WuTd+G)K|`^|J7fapcL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2yG{Z@6g|Uh4G%#O6dI)iG;XXhG^hzm)C8p;*2y|%m^Hhz#?oK1BC)VGew6Xf
      zLZq><n0w~loX6bx`hNcaaEz9N6hrTkKXW%WQn_BBy*LboHtvvXPbkHW4D{KHC!XxZ
      zL55*3;VZ6vcchf?xtbVm#4m}V5{Xc9H5Fk*qPx*41G``-4Feq+uFaIISY%%>Z~V{e
      zPLm;bBDFLFhIFSpWylPJdyz*Pn?>YNU?`8J7FY3nCc;}jQ-Yy74m=9r6hr-Lm@yAB
      zVmKWCf1y4@y|d&e3r$QYwcqbfZG7Fv*BG3+h$8MMvFqJeREGQ{h(k}DOZ%|apZ|7b
      zWoUyoq>m>Svd9rS)TOXNhip)wTBM0f$OyB&1xjxTrA*ZdfE`q*7MBEUp-P<<*Qi?Y
      lfXq^ax!%D7+iP_`neJ0?J8@_%St|$Y-XL!qyi4j7nm?74dH?_b
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtS%TB{E5L}nGq2*Ox<pvjo!iA_;QiTJw0)&J_O7BjvDi_y@T)X1iIPd{{6k?OK
      z0Vz>9aP#bp$FuAG{CfWYfF2xKP$O_Qr3>m9&4m+2GBiptsh#U+77M0%Bz>k9JY*Ks
      z33O7epmO3o22&Pl0?oMzW*iTm{ZQ^ig`k08?s+*sG}<WU5@`8+B548$-2P$KAB|nF
      z+A)(57%Z*Q)K5mrG)$J|S0~kG7|$*B!5o!+ty0uAeZ{^`>`FC0(;mEqEKUYLw_u0B
      z@z2Qbq-IK)ShJU0MBudAG7k_(LJ+vJ@5{eo#AobTa$VgH2E6&7!zxePkBkc0kP943
      zx3F#(N!tYM{`j)^RbH{wBtT#d*BYRKi`sxDVhd3X)>GWdaU1alY$CITd>!lCOJxU{
      WU1U}_GrU)#+{fBM>VCMq+x-Tp&-!Qp
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hUW6g>kA2wg4KmRhaW4_f(9z}D8rB~1*eu@UV<3C70-C$M#0$g<nWqc8e*
      zG^vtk;t%jg8Sh;REWtEu$S`;B+;is4y?5sKpC7*fJj8AcA%RE7`iWk29m6a(J66-R
      zZD~2h%Gi9a_u4P@ZhGHx?EZlxZQbeEF(?9C0g=ow0Y(KDCcu$jAnLS@Ub-ZZsZN&9
      zQ=}25Y*>b~Cy);e%GL#xO6RSNL*Sx{7%n6b#=MF+5(4v8!;-Ju_YG;+^oA)(Y_-$W
      z&AM(I{C(zBSggQKK&jKoBjJiAKR5!*nXHdtoMj4#9~mu6cU+qkto=KxTzjF_>e`;h
      z`d3t3!*#+ju~#ap>=f?2RHnH^9!iVhhQMyH3Z!4#h9hfjyW_To@Hp0RJBC{VrGOOU
      zomJeyU4igB+2^Eta8tKh#lyz2Y&sfKudCSLpvZ}Cx-x-PWVmiwfy2NJFv~pa;U*E3
      z`AuJS0_IO3HQg}%?x<;={5RXU!~%<>V)}EEpdK!%Sj3V*;;7@=P5I2=rcKS<-vTF8
      zKs~T5X;)0W*OR>%wgonV6^bs))C(Zc4S1Z<AqxI?K=Xk|Z$R1S8{dTyn))0iI&PRo
      z1R|N_n@i7Fm<HWk^3IX9jS&5Sxm^Am)LedmOJC_Tge3h(DG16(Tqav(n;;9gLNlco
      zOB9tNJA`GAs!7{0)k<!FtJR-aeUm$dnm@%&8tDP<eWAs$N1Wh5<r5;xXOBEJ1fG#c
      zh&+cpZE~Lwyz$WUfKKt0)(Yfd?dvqNs7UTRicIcPO$)4=^@Qo=W@{5$H1omfrelYM
      I4AnpW3u$1SR{#J2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+-A~g{7{;H&3LB*YA`DSbgehzT27)MVqKKkI)C&lS+?9C(HM7I6Bf$&*554z}
      z7*Q0_#Hbfu_(vI^(`{YViKN+jzTW5ky&tDPet!H6U<~tN)Cr^>nVV*+=vui{Hg9K(
      zjw5Y1HR}&=n}zke=0@zM?K)eF(hWls=%^aatQK6y%(~nXXmHo9LTprEaG`qQAlWo+
      zGL~(*(*nsu8^xCewAuVa*$9Cq1NCUo5yBAzVKfVb2GxO<1<RKAijP;Nvt+L3q(Iw3
      zK5OQdO~+F6@}j1Y1;!2u?B{{x5zCd1>E<1Q=wLh`FkfEhnZ`wH%{JYlL;n|Q9?Ap^
      z{X}P$?xdHN)6;yyI4&@8xOA52D(-c3;)KdcgsiNBYg#r#?I`CtXWDD2`>T&+)=kG(
      z!Z;;xtm?)`X+jTr4V*zAYqcibJ90~)y%I`LL`Mwg!Z<5%uBvlT^$iSQkoBS}ZE9ha
      zaual-a1sWR3MWFtWiwZlI);%7V??0U^BgcRFp6%H%O^!M$LK{~HNu~#SSi5@b=0bb
      z+S_D_fA5~HjY<b~)iTN?64Nvcv50i;$jA9jQpS)rFolf3K#gesri!ny(F@j7qOqyx
      zmB2LvSHRm+pUp|rQ7f|sW>nkji}|9Hm2;Nr_2^$Wctpi4V9eXLbY^pAp&*%#NabD&
      zOa|fz-0J`JC-X}>eo;hgtGbCCsUN$J>x~>uppFlqCz9{@w+CZ~vpTf!zkz3<ZKIWA
      zLye*1DBAdDGoqcRIykOF)Ki+IA9cp~gw6+vUFdu0dhP93wO$3Z3}5Rcx@oCsUQ$it
      zdo1}CJugrn+D?8!&t0W9w2#vQ@6ms6_&eH$IgP97&~wyl+o5e5g*@me!-Teju=WOx
      z+FLYhyXe;5d5#k$@v>v}nH|G<x^6~4#=TT@Go%Y#3t^IqQR0;LE^<`byX1vA<s(1i
      zTqU^gU&s~G%T>lU#i4y5<31TblJS$r*IQEZ`TBgm_A;NMQl)5S`p2QDgzC6*`cy2c
      z1QC_6_qeJ&221%lkp76De)ebCe)4zw>(y4!sRQjRiNDp*2;qk3=_cm*);*ONZt-NP
      HL2my7=A3`q
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOK%cU7(Ew;QgA9270Xy3)mnjCrW)fy2vN~SQq)DsEOa&Cq)Z)$W*DmctGXa2
      zCK{g${ZYnq2N<ik0B3W*=eg(m=G-4Y-+cgZ9eNxQfz3Vhz|?!b?dYwJ+v<6q<@$Ox
      zG#{GX_9JtDRh|!A-|NSr2rLF&j_K~|PnvsH%NK~gu=)b&`rnz7Kw`(<bxptLSuAU8
      zGorK!Cm?D9u>;fT1qnkYT<bN#ZVX{&pvB(XGdGn<reTySY@RFIuI*O@p5`V;sLhOA
      zngq!k0{3&gadxzjC&@|}rP_IJB@xAG6^qDltGT?9fWVT980Ms<sYoCxtz{JpI4-U8
      zDvn`JAXT?r>v8X8)AAZ-)8X>d^-jxl4AZlvKME>-+wKZv{>=6F$N76xZe`5A7;0!7
      z;oj$6>(yP)GpU_hxmy0&l$gKuNQ`!Qd-U&*D6(YyBUbsZD~`|=wm@>H)AL%^mMu4z
      znRqHi`2qygn(JC#)iJwWs~g8Pfwk$L8sAH}D1q|yvrS44oBZohzIKH&p)lyh=|wP4
      zpYou6M@k}$OF2<2p`T(c7(2mp*qO#jMh@x6cxr{WI8|65;7nn8fNWu7fU||HGQhbv
      z%tmoR)({`~NDiNP=VzjSA;wo^@eLQ5xj96_3N!N4Mogt8IZ6gvz)DV{1$-4;qFo@S
      zjI7`?Pie(CnFy=}q=Lz1y~?^Jtl~;I#ab|h&RSU=)80cI(uf3v<vM`x0XcP8fUCi>
      VqR0hRd0q`hWcxZc2tHg+@fR3eR7n5;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT~kw66kR8rBqm&iQbDbVDWbv!2_GUz&{io(1cDO8f^BCm;S7X^8|LPQfrs{~
      zeQSR}XL$F;hcZKSrk&BZcBX%$GyNH*>)c%MYF~m6x#x4Qz4zMd?ELlbZ?6IL<Etn_
      z0)rdYwv{Zq`9d;Rv~y+0QMQ{LKb}rmrS(~Bt3!`zS2>njbfS;~jh<n_ve%MxD;p~3
      za?4gbZdR>r5+ZG{svQB57C57~7p#?n@;43Njkm`Tp3R&fhzZ+uc2feeY<|tQ+_Iwt
      zQYS|kTbNEQET-;iBpsgzD=_dOp^To`DB#^FSS5E}F%es>3PjxXe5s>PptD9$CJ-6R
      z+j;k{KzGeXU5f&8ytt}j5NI*bh>zl^!+8TuxFAs1*|iwMMO=!aRp44}<uTBP%L1oL
      zRRxp;`fIL>ubPw&=Tie=MD*;6fhZzz&aN7`rUQ#wtJ{{HW6c|8^0vy9H&>M7>!@j_
      zn6nCtmXp_7^EajDQ(&k@Hs8@Xscl%dO0z{rO%#+?HIYcovW}?NKoUKSh&M76kdC+C
      zfPvF73}PsXn*x2c5$8Ge1ZdzEPO~yvks5Hsz$wIH7{yo=45zn7K%Y(ncMuT>=Za;U
      zc%%5tz~_i@$JG=u8P<wn)=JJ%mH4hVD4Tcr-rYLleB^|9f!A=ev#VBP-I0!(!Pp0w
      z9ea&}O)Bx0*-SB8&aL|upV-N%EjM4Z<CwyEU6UCD4Z27XM{O3jRTOgqmpyB*8Kw&b
      zwPqEvuH~wLaYh>tV%|U&3nczqwJXq6%{9<OQ*pk!MFX>V%6I2K=is?dPjE{ho-LN0
      zoSMw*nzsC}d3&l6Fw(ZIoN@M>lA@4}U`v+?W>&}lg$RFqef&bdJ#VB0c^c<DgnE9d
      z@#FOwu1Uw+bz`G$CfwDwP5786XF2<l=pl}6W_Jb6<|~{tyASZmYq?rM!VFc=ZoWjv
      zK5v9@o!=Hl0ojSL>_ALj#aYSsFR!DMX9h8egf5sI+4j)mdr5NCXJLZfc)>{(ETT81
      z888m}#*MnIRE@<2hO8<0**rksALudlcz}WBie6sY*Xv<(=>YA^I_h@+K<;zDeedw^
      z=g4r@%&hdKgm)=1FvB!&|AIlC?%fIj2*RxIJV&bs*y_X7o2?$|{tuzU*1f}jcrUSc
      zxUU(h^BB2LULkLwMfT#H>_<`#pilN;SPo%S-a<wW<B1%>*YY;j<tVmg3g5{we9!fd
      zyz`U1=Mj*oCg~H9!7%ROJ}FR0V4M_$@CAKpj;m)AoC)3Q_|=sh^435-BP1_j`J(Q9
      zrpE(J*ZYn%<RrnXGJ4=aEpx5QmC#UsqW*VGExp3SHy-m9OlwK-X!=*)3Cdy;QTYH3
      za*9NxaZx@D_)8qiV)m%A_{R6+fq8y1^z-Nqv70si0Up1^lc%Pj&-W#mp|3gmdW1Il
      d7+2(cz*mRwD@1wg2$!(TQU5y#KI3N+{{fxFQW*dM
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95Iq~aaV`czXu01BB^T6$0#B~;5*1N3z(YeMc-xp&>*B1@dX4B`fds0=
      z10TRgA!gk+wnPQy!QR=KIWxyI$3K64{{i3;9y%y7tnc%Wyr1YG?E8`Q6QzXI{n5gF
      z&f~oo{6lM79BgT!xQ>(qo8fUmoWW<nGD9;1X8sDpO6K2`$=tLGBFRwJdqLb9Fto>6
      z#^0!VgxLsWpoa{-!l2HS!5&5LL=_C@TvSo3!NPeLb-3gi2U5ID<};xtd=?7&j&bDk
      zaLQF+?#E8skY#vMkZOLaMBA3)lV(_McaHEOm%IH}vwh)fidJ`mUCDK#sQFU6GuieG
      z!D}wA;|4_yc2jC~K<!To{ClltJt@ko;uh{WxXmyqHs{s?>*6l%F<9>fHE*8Ay`HiQ
      z#hk>&P}_+T<%?&5nd8Mjw6<pYGq_t)3N;FO9E;dNhheoCF@}0htqiK*Ha2Lalc_gc
      z%WKxlflu^m5{LOfPOwKY3`j*5N?3ve)@T?x(NAa5Lvo_n8M2;IyktDx-Zz}>_72hb
      zLe~<S^e$5p?AN$JwgDL6GFIrMk>L_$T_(GPD`}~9@|v7V_YhaV;^yZxmeqNat5aFj
      dY5jMdx2M#xa6j#~iU)MoQYLM5(Ku$<`wd0)Cn^8{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-)qxQ6#j0THf@ZyPTQ%QQ)iw1;g&kbUOER-5X-7QbPV+EHeR-jERiG~=)WL>
      zAPD+5>_I^{Q1H<Q|0wa?G)qG*Qc9DPoAZ6=JKs6&??2yv0=SDc6)A@0eSXM|L15X2
      z={n}X^Mn%^?KphI{k_NhWo1je>WM&w!cZDP9`yad<7Pmw7_z~h<yV>v)$S<cf21wK
      zY*>yJY%(;a2Gw>Ll(zdq<iT)8M+R99X`I!e;v7S|DiaD_%Mnio2Yumf^S&(@X1cD)
      z?H%q}@;N$Gq+|wTO2Lr}q&sH?!sCJKF_f#d1iTZSQ%=5T?K(UdcvO9EV$#O;R%^4R
      z;u6E^be2g4rzJGZ;)?7#M~3*;Ybry{cQh>Ex{7NIOVe@cn8Q4^M57A0<&YnxXc#tk
      zc8#a~ePITz+H*-<(Qyll<ojtd>0w~5^f#=QgwS|Bao`>biLC3WqCui2aZkc#Oj~eI
      zLRWO$k)zdm?!Ys}Lrc!H{LhZANC6Cb$8m($wz=;M>LokeT!#6?loES8oB^7&OlkUE
      zuwqee6h-n&-qLxVqBW%G18DWeH@cia|3XhG6zH0z94K#4q*#|RG@Qo_-5D<6B4w2*
      zPN5t!ty3MDqyNC{v-($PC%F7Md_UrPo8Z!8E*cXdrJ7Z`OOBkxALHuL82()XpNsJ~
      zuo&U*lN#AgUg8_axH(SnJ|rj)lOh62#}aObrK>SjJEAH?RJC8oC`ajW!Vd|;LQGhQ
      t32DHQw)L<;+}rZVXHCjcK0;MKP3SKTBXprj|7~&t(xC-%su;O{?=O~W3S$5O
      
      literal 0
      HcmV?d00001
      
      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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
      SVCM3%`z$`qZQ_0eANn8JTB;@h
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D%Wl&^6g}g(agw?a`r!R0lsr%qo*PHqL`77DcF`z1785gST{+`wJg(rcKmt`_
      z!3XeBh&yf@I|6}O*mLLJd(Ir+IsWnU+jjs@@YsRH@cfV;^KPPpu<J+CPm~f;cL%fZ
      zHIEP8@}tI>hl$wMLUA1_2R6gAf=I)V0m}@_88FLN7}m1<mQ1GRs34LIWqlCDjUGdD
      zn05S3tVfuBAOpS0&?yXRjT!7g^j=iKaM48-wHive<YEynWrl$iJIQn+)QC?)LEkZq
      zd>)Ru3e5g2X&bQ&FAGYYpDPKsrTCy3R-3I;hLFqs?(XDJ_?oKKy<lH*ohUkfq1hUZ
      zJtOgki<`JbRfFA<T79H@Jtz40)tU=RQC<~yaL>VAhF-BrH)dED_wj&49UGsR*`x&X
      z>K9Xep_r1z7;1Y_qI~fxFtfb;o8vYN0fW0OrBH*A$FYbVv>4WlNn===^DKiZcqjeQ
      z8;>Ttxsi9Smjj=>wr{%fg`90qYv_@eO0cj12drK<rlOy(L=TyYYD*Nopt@x;?ao(R
      zXm?If|4ds8%k(Z&6YO_bq1XTna20E`($H{)x~@`e;aW=dl(MF$(muiUFSz|Ftz|qs
      h$5WZ{H2#}s@&}$09;T<Q;}Na3R7n$U)Xx-legO^YD!Tvx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U279T6g`t{vdOx&vD#E^t=h(#58I7W`jT3ZfEY;ip(SA7CflK%vhK?4t`Ghf
      z5d=ZO2L)|G!5`p{67OubNob3NWq0n(o^$S<bMK$OKYs&wh^C1Q!|D-#!<{&ip5q3-
      z8!ILJ$Y~G5XFNRI=C3O~?!_WBVK6L=C{Oxfq_`Wk1J4s~Bm<uzA05iD(qyQ1N5KDS
      zw}`VTeHm>rG$tn1dJIN8*cU}GT(Xfv-a-~rHcVV*$W}FAx+{J0Jbu*|YM1vt!7$Se
      zT<-O_l6s#W8oFc#XTpM0GpO!@jD+G*pcu;4+8Di)o)f0HBM*EY#fq}eUkKXV?X|XA
      zCayEAPiEPmg3}}x=5SNryFiwN@+~Ez>vt?H;*N>i3@ekV+L*@zU5c6&ap{vIvuQg#
      z?jJZW`bX5`R&7rUS8UwF62sIfI2jNI7HE%?eB&gBoa+g$G_`J{s#|331hI0(Q>pt>
      zJ~wh}T7<#w_`XnWkB6b4it>X&WLO?^`}`OVEJc%MBTLiHN+mrY6y@k8qv*Uy(K<5p
      z09L*6gFYv)ztJv(Y5L{~1LGY^6x%w6g)5k$mEkI`5o(s=49bbp2IbKh`xoY3*1y9#
      z!HuuU|B=@FF)e$jMV=E=SM!Kgtx?eYW8C_3hW}xVUl{W5VkzZ6rfT$Uikjaz#`0N#
      zkBLBe07?Z2juqTbQd3(}sf}bmETuNG#nNo!6HMdt1?6PXNQ!=dRa&h?Wf5zH9GK<&
      E1Hat+ga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TW=CU6#j-?3f-<ku|=&)i`JG~OY0>u(ljxoM$?-~35}1-I)SarE?H)Y_44fB
      z(L_t4i9VY6ql{;kmSRBVVRz=7Ip=)e`R2^eUthifSjYVcLJSX%jE+(Cg=H5_*D-z1
      z<Blkn``af*yRmDu77sm3@JhpT{d!}|5#DhGDnt4_`%$eeJi`<+_`qtmY#xL$Oo)cn
      zUR-0y?3_pc3#&vq8<t~<O@{rklX}H%!>JedYe(D^rD0FD$}o9g)g43l9;bb#vR$fF
      zOVY2F-4}ck3>S2SF`+?0Oh*K9hUHTd|1Tcfu^hhVH*4Ih7&V(95<9MG*j2-`q<!jC
      zr6ddw#}s5(e3FR0l*I!@2YJy!haveV>T&A~S)qm*6zZ8F+UBBa*gmmb8qr~PRPks=
      z%0*uU^9-qT_&wjYpShMJxVQDn<Sk*jj)oM{Qp1}BnaNhAri(hR;krgTFX>oDhVHt~
      z#Wp`?n8}QQ)R03Vf;`2KH$6I5uu6C>U(j@q=xeyG5wHy5PEQ)`!1X<oKeps;CWjuz
      zs$|8WKXn}Lm2IQl=5({uL(hdFKXBWBc`O^faoj9njRaEYnX-6XP9yC?^hFS*buzFt
      zOwoEoQ7Wx^F8`T+g_SNYek5DLH2pQ1r8)?!O(e)(2x{uMgc-6Z3$sWDm33UEoq{Xm
      zJ@d@sYX5AG&X~NpKK_jW|2_F7&vgC=roJNeyo-hJxqKJ5c5|PI&<SqmPmnz<e4wBn
      zse~k~zJ{*8K|+0tdG*}@xpbdg8bzW)LylNLE;K++p3U{o=7^L+l1Y))afenpUyLT_
      KF5;(h-TMtB`Zoyx
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIq34D~*wg2Dm`(`FH86YH?ND=};wyf+1B{3SqL?TJBB!o?cA&d~og2@DhQnePX
      z*7s~*pG(0F)MspqR;vaPmA?0^SYKPWT9;aA-D@j#U;1q6|J?7JZzc;i^!=VO-`&qS
      z_niMZ_uLzv{M$p10+^|4eJ~WJoEO;?ncfp?ZJXZG+0oL|)fMfCO|N#V3nJa?>mwU|
      zuoOaxxm9brV_lJ!m>%*f9G@5(l8m00qL8WQwRTQ#jCQp~+FG|n*0e<x(z<oCIoj3T
      z+S#$BcD{l-LtzBv=#E7?V$G4Zo~UQ-_Jip+eY5ang)#HPHC0RMnpV{|)Hc;t)vc<o
      zI<u;}wrM%n)tcO1nnFf=PTiua`KxNGs+$%q=5UR5%Bg@tc6_*cQA72T#f!rY)yr4a
      zg`2~56sNvwS#AB2dY7!pC0r9^|Ek9D>Gk1;rbd$;{6AxHxM^{1xN+5K;hIH@!>j5R
      zRWB3?sN2-;=(={Qvp&+jfs371<NDTfV+tuwvs+>2%DR7`KF11^8f}8*3jW5{bsdpd
      zPZza!(y^|uXj)j_)LdRkI^GS@&5cpYGb%|2c5o=Oe~&DZ6)D_Nm%V1%fEh_m8hlb%
      zCc3;dw@qS5ZaFJyYISE@TeKxc!;^aMkOLKtwAOmUQNb#xEv#ix-MN<AA63`d5pC#c
      zUlZ+Wvf-3o*Vz(jYmN|NgqPE)xG>--y{5BEVK%8GaT^l1gB4$X?5kWA_=%U<LF8ea
      z)J_OuEJjIfZV<T`#SO*Qw^BI;!<35Z%Id$<%^TypoiR)ru55%tMQcZEtdf<2+M3$J
      z<^W8b5<~?~RWJ(*n|(Mf?&xiij&;*(X|{EdwyLgmJ%aM^g)PyIV#NTea7qASobE%7
      z!n9+<b`T3d+op6xFR1G3ifmSxLyaFR!pnvKLJ^+s?BRY2n+X)zAEQonWMibIHAd2b
      zw$8}f8pbifLz;_#md$n1P0==LqPyGnR!?_#>lR{7wNMu=k&Udi257lvVZneTh$M&f
      zWYf_F%B6GcfX<3ydQ!1QbYXKUR^n_Q&SJ1j=!q+XI0vgp*Jexg*9H(liw|oQM(UZ`
      z2KABH`XJVVqM7ZH3-w;<8zS1eAl73U_pq@iR@KJMsP_I|F7h!BCIN*#Nx~`kTD!yT
      z8%0qRV1=J5?F?e0Al1{-+0zk|o~|Ier6;Amb8WSBDj4n5lChFj^t88h_q2PCIRA-J
      zwgmB2L6p_j*|I@8z81tq(&6ptkS-5nCobj!Q$FNO0>W>7w1q)b@z-1@@oI{rRjr0a
      zYtCZ?DR<mCxl7@=p(axM0bGfzeE1d(pU|gGD2RU%<)=urkr*TDygG<N6iMwnK}^RC
      z5&gSCT!w#Fm^uWDcx>q}jLC3InAke+Ka@)N#Uia8-3w((Xb6&pD}?FxAg;p>y8aL|
      zY718oNO3~?)b!ydg>i`;HuSW$o!Qyi5sP*udF+k0$L<W`23${d>o`sSXlaW^IvOvC
      zMg{St?KzhwUQ5-)d5A)G(k29%!ihtOG<d5+S}C=_K9dTyWy1Jj5WU!~FmDKwwS#G{
      z7?P+-nv{(sc^Ff|+H;w=FjR@t-5bOt{8(XhfwNTSKyvb>;(qk`@IXJ8<UkO6@F2I|
      zO4UVl#K`Kmw$|w<frs$05Bq57gipsugLnjw68;_03#qZpIE7>^`0x|v6^W&EOZzNM
      z#eV!(5dSR%yz~MhMY?_(#N*PH!Y*xdG0GF7z&k~hCxiGO(1(14bA#rp7%oEn{oZCk
      zJ&hl#zh6}Fc17DeH_<7=cqWLa@GLWs;aO=&BMs#|gAFXe_H{)!wnbVf{80P`uNmAU
      zRDurDhzi@GUJT+_cxl*B8=7iLXWLq>dzyhqmt%%7ek;VOA&+=cm+0(wK^&BL*B?B@
      zmz`iqKJZ!)6L7o_Zzz-|VBj84L*(a^2nCV|;B~wuN7CC0#g0w>VQ#MvDPsc@k1=sH
      z>NWlHvb>`V*_oLL{caFbFx7`Y4_|1lrS1R@<1HQ-n<&AIer!Z3wz{=It{=EbOJ%um
      z{zzPz>iR@s`Y_d{Q&X+5k2P<}NiD`^7TNto2zM~Kp}X7J>A0hf*|ziHuL`q<DFQ7P
      zj|l;MAyTA7+oF<5QHU>LBze0}@p>_5n2fZRT~<m7tJDj+T4PcBw4={EP~pAI?po9n
      zW4LULbwwlX8Xf`ntmyVB-s9}(#QC+0+>w9^sGv`!D&%O%hNKo$BLw{EYoq5zdfH-3
      z6Jju#P@{q>O^v3v#Oy?V_OSClNz}Db%l#@tg?uWLU>c@^+_gbmgKK3Q#|4$8#vJ7o
      zZWazXLF~e{QX9*NuJUO2B&2?+tGetMZ53@j)?PTIx;Vw;orQZDF7?C}(WDZ2CLiNM
      z*S8oDhr86>QPSc7v9mS~uyF$cR@;$`FP|z<$k*1==U{bPq`SMJGgc$XMiRb?REbX&
      z(?$E^D~VW8l?uE@JMdcU%D~90rU%swHIshU9gR7c!m@&Y0%5!wsUkHys3yy)>)cpf
      z^Cd|`>jfG+d%9YpHLdc@kySnLT}5AxcqY|$bVR%Kwj~nzU4`<{a}4TJq&E8)5FPh;
      zQWtWGW@=L8VUE);Jopr~cj7R)Xy<KO-__Z(&h|Yjeo&uJRS!Q@X%9|FI$}WEYoBsV
      ze(aNjrqnYS$Q7=tSm*#YIhSf4qOURu*GUgqE_joMhje7QCfV6)Ww||<#!r6GD(CS{
      z$Atk8d>DZo_#ru2s=Ny!h%p$6QEoep?a@eg+Zk+U4j2z5wX-;WTvB@s+u2F&9Hhx}
      z0(qs$1A{L4<Uso4HUE5EBI$+Op2#-OPq#gpZJy+AyMR;za`|CTF)4&$u?8HMlarRY
      zH76~&_0mhrS@&(dG>5;tHIov41Kccd3pczIrK|<*Wtip&#ak3-*h0<Jq?c-?0i%oV
      z$E;j_=4|Ds?4nusaJdN~>eWQPuL)*p2BUEzPT~lcQA*M4Jl1VyGFHx(l50A@lwaLQ
      z8h-ZOS+ob0lTxp}8L7E9z?XLuQum>1`5sj7&r2V3JG|**D$O#>D)aOrxXn@_k9A?0
      zC*;Z7b>yR>wEU2@_5sW(VlT@wmJee71C%;FOO|F;<c2(LW!{iC<XNA4E4<sh$}02q
      z!XNUHj4$L1d3PQ8#4Jnc#c{IRP|7}pmxp|l_TY@hZ7C|0BE669I`YQ7l-1sQ2ki=D
      zJ}jdK>Bi~EF=~--oPmi(J*F59C^QzK#5fbvjj!MY*2|4X%r}})XDq=IV<}b|%W#gd
      z9BYjgXg5}3qj46xjkB@II0su<e#2OeD~$+tu<SL~XdRzr>&n&fov7D3rvA`C)QXAk
      z#3J^YM9rl*lQoNWxENny&BM2e`B==Fm(K(zppi8nE+_t)SW8K=)SXF|s<SPHvq?$b
      zQvF4_lhV@mU`aw18e2v;QjC}uGvA)*is^U7^gCiEK;chfwbWtNL{_quKv8ab#*n-&
      zf#3Lg66^vluYkiV!9m92ushY^u#g<YZBmQU(vHI73IvQRH47WPsSb+-Vd;qzUgkQ_
      za_v0ZoGs)R74HQvI+v$sbX;YvPD^_bs~v_##eFz8p~M_o1;#ZPX<UmmmKnx%#MJc|
      zZ+tIlqxtSe^U;d)xCxQR_B|OBc>o#Pz%hk3wDT*THiGt-_ndVC<+|cW9}d);;!?es
      zP#m&m-H(p#@R+;vN<x<1K7Zw+)s^CERxy!(FmF3b_4Isa`VNfd+-c6_TV%02`;aA(
      z$99xTf(yn@c#I!Vr9VW_*iDDI3uBGDG0wOLrEJeN9-xEtp~~2Ug~o$eZtSIl^dV|I
      ztT$gN%E3Bk^B$~`cUx{OKv>4mL*)ngjIfEEO#T*VKwGF};1p<ENzfJ=w$b>eXRF32
      zrD6i4|EX4uzsf(CTYfk&&udDMxQI=E6@!CW=I_NsZr?B3x-3!^O3C(y{B~QkRhF{N
      zuh>C#y%I{<j=6e8Q5F^IESYP`3hGSS=ih?VOk6ORCK%x^d_K#{zh(!#66So&ojtpb
      zTq<4L(I7%lo)N_%->g1t*2BW<1KmBEg83Z5+@ZtCE4I4bALM7^;%jbZX#D!_{3{Zs
      z`Yz8N7zb#oC*U)FMsqz$EdByn#xId=JcV52X`1XAOfsHjTzih@dWPnD9%mZAMziq(
      zT8tObWxRw7jF+*6ecOzKxXL($t4ZT}<M+7PcojR1*KmjNI__e*$9Mye7;oYUmd_e*
      z;YH(Z9Afzg;~l(j{1G1+?`rdJp?PT@*Zdzi=J(+}MmY&T0lbTE@N4m$eM>{aiwtbz
      zkHolfd?*!gq%hVMX-N1P{bo9~+jznYOniKw8ROKRcl#3lF8poiT*jywKP<ng{e2yQ
      zC($v3PJP9L_}7z*#`fXc#r*tR;<&Wq<QI&Sf7RQv<79@jEiRTT4>6g-<U|fnBMG-M
      z%VvHZuD5YZe>fV`?<H)inVJEln5q8<rhJKXoTZ!2k|Ob>_<)?zH}Z_WdA~SLeF=T0
      zL5GMfW|_w<BZf;#LSDh-(vYV#<h2{xQ#?|qu5Mw_v3B!3<|v{3oW)bxvmMhlZjUdq
      z5xulD<eO&K=`(&!d4vYDtod!ot0R{VK6IDMwFn~^o3xim0F!C-5{qK-gf9ts9M*nI
      z;$O)&5Az9`^L8)BJ6_NA;$^na==Is&{kAs^8VNDlDcpw__!EzMchG_`b6}ad2%6(D
      z+RR6mIT2&c$rx`=!DMqP<7ojZ%|g_gMOetbC1wehnWZ?}oQ4*2IyRUyu-Tl6t>!FT
      z%)TqlGF)xW#dk<&yEzZHnB};G<vnHv?lUW~*E|J}nWy4_S%oLre!-lNm&`B@nKgKm
      z<$LDo_>kr2CjS&<hE>2^pdoQJQ(!qDoYajqUZ=UE(R>P#IBW2L`BXcV$>jDD?Nk<X
      z#q+gOd6=%w)^6j)GSavew=r6;=KgJ`y3uhZiyB&i+c|2Xk5pyUgI8Qf`^2reE~jO(
      zQU4!t0HTiaNOs_r1N4pr&~-9uuGBlS4@7T#N0i6jkxQ99aev~=Ea};q@AtJc-$1!6
      za+pw(1aZf)D~s~PvGYpIKKvlz+Uc^uY@@l`Y3>eWnw?sZBAbva$OOm5NnDF$aML5S
      zvzyx4?T|3R5l&`ZgS%)7d;Z-NRN+VeoWRx)0&k(fU!}lXDe%|+-vs8LzFZC4>Cx?s
      zT%zGQ%#Q9+*o*rV8hSCVbT9TQ`~>^!i%Rz5KNa|WOc5>zmU8H43OkM*N~BD-(yu_a
      zc_oU>D=^#qmfnM{#5u0g=QycSHWB@E{DQIw4id8jVU)#5n(SG>)T(}JP@rE=xh2qN
      z4hZzB4^JoHU<cjn7<8{sk|@)aDASGf@|UdskzQumn12e-(cE&)yPRA_U-@wq5}C}m
      z;#ef_$0d%M32(4<vy&3+qJ3}0Nb|NN`zEK6_L(F45FarZ+{YvV(oTNksioor`tz<W
      zf30Qfqqj(6Sy1vge5Hdurpzh|5qsZeqF7SehZhFQxSKNGg*5YS+VMwP#yK`US6c<H
      z(-h!kEhD+%H>^oK8l|PRb3EJK3LFi}thoEgN^u{1<=tE<dl~5YJK}o&GSBbBD+x>6
      zdVYw0w2yjzn11xgF!h|tq(*F??D%m#i#6hsi(PET=btJlwcw$hJCVKQniahmC8uvL
      z5357ll#+|O+*A(_bd$#jn4b~`k0Hl=T#IN2$y`UxhLigw-`Hi$hT;VL*fsm_wFsS5
      zl@@^vU#%;q?TdSnR<sYVFXvtU%@q&e)r6L8e|U)^ygUSJ56_oB=tmFn%Y<0M+8&$8
      zee=)Ec*hmukAsBxQ?d|;MTqw(#GeKVahO8<`6xoX&kIBHjViu>5#oJ<Nrd1ZDqSHy
      z7$n4p$wGWALVQXgJ{%x~Wzt)%qX_ZYmuTWMOx8ktj=#7<{I3=wtP#!Y`96FhZ2y*E
      zsSieLq-JNkvs}96l_qf<Ca&Q}5~O+T2-p&&l_F_n4kSHhSfmX;<9ql|vE(Ml+qd!w
      zan;OyFrCDf;y&d!PwvHP0r1#a4Ga~VOYc`B=h<1?v}}uM+dSr!V~exB_p9_im8C1$
      ztVl=hJa4x5z>zm}GM8=91)k;|YMzgDwr2bGOR>#RV;%RnsaOdC`P@s5W}=xtJi+y|
      zRs%C}SkJ(+o`c`|71AtT2do#6W4(xc>m?LfFJrd#8&t5qfPKx@K`gTl;VkQSSjDo1
      z>pHDh5wl*yX6tpWodvvJaF>qaSySWGcyjjg)R9Yy!HY|y%2yL8Lk=p`@oF@+l!r1W
      zPnyb9;O8oj^Al&6P!k`qS5D+gd)6e*GSp->#nHC3d}^vT=0VPqlcbXRE);!d*!s2}
      zQ5k(|T9S(1;fz`J@@Zf+q~b>uN&G&rwD-u{iQqC#9#XA$sjK&>tM`$`@_6eLOtn5m
      ziS-#~Sf5i@f5ANKW1MV#p><)$_exh6mDI%?t&6dGw+8oN--Qg?W28QplB1-olzrQ?
      z?xODOSrXMvbpl5WRi@^$T#SIqAl6P~a0|0M31ieemK9XN7c5WaKTf1mt4fxqu&iQv
      b8q4|A>FX@REDy7+Vfiu3(^=|FQ7!m8^ps0H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETW=dh6#kAc*~D2l7aXUwg@$5+Z;2b)258cjG)=+OF&9@s@V0S=WQ((o*6S#|
      z18*R%;!^R#19>2VAdysRCHmG#`~dz5ufR9Ej$_nHBoDhYbLO0HzH`nu^T*$Je+Mvu
      zvVo9b{Fb$D6`G!1D^%-FwduOb@d~r;X~}lpQ%i3&Ra2#ko@*c?==Wo4ma|-VZSj_>
      zdIq`#g9k`OPq~&?cLm*!+VINtB_)_B9XR~&Q95Kw&{MIO9m{LFjGsJe{PfMasmlcM
      zIgrvSIR+RV)VUv~pTMYD4ew3m3A(%$yOBC8$RFWEB6LmLj_q9*6w*ft%q$2Zv&^>#
      zf*})q=#L?cVG{#5PIl?cLX0~nOq|3i^0b!LEvL$YB+{8jrPIfjsd965QMos*#Tp$4
      zOZBQ%Td-VPuUp25&Qfsp2voHIm}fMdVZ}7tr%f2>*0X0!91CX8n&^cYLk2kmSwZ&j
      zT{n@(81dh=-3I$`Za=@nsneHC3<XRWVDk!xKR2aAO+2R$H<p!Gre-zJc@r1>lG7IG
      zM>Yhq#(vqpoRa@7?E7o`#Whx}hDPz*_YVE_H84PJj2zG^*DKBH%3MvY^2*I^RMnbi
      z*PR$HVVGia)oOiR8MrDq?Z^0{E!Jvk*{W4M%Tpa8GZ@x{=S*D3%S@uNPk5*$#ZJX*
      z!AVUJtJIrrRb98WMov8P%KNW_z$`kBa%Xu%8j6|;QwM_F!{Y1E(*6?=TtbXcBVm3~
      zL=e)V;k<{>PzW)86ij;^=bBP#uVelF`by9@%5MOJ+<A<%8Ty4d_GNQBNM!FI$?x&E
      zex)gdC-^_c10f$FDj%RnKE#u>>0=mz(<G$*c%%3ah&<)P{>62KdzEbVH=Nl)io<A0
      z&-W1Lkl00f6ESVr#rS-Fj|5}~XY_A0x1Ha`x$@Wp8uQvXwr?Dt-~8uK!iIfn7fBBC
      zF}mdw#N|_r%ICZ)U!Wjg;=Fu?N%<O6@(r%Yx40(Xp(wX;L%zrB@|mATHlWx_BhIEz
      z`l*d#49~N6AxvQiFVGgoi#&CNW8f8M0Rk^w_rNR8UBN}Jg34atsLRx=lYD?^WGlSI
      zWl+^Fy(K?%RI|55LooeNHLo&CLnVR&_TIy#x9{M}ech_<Hm0Tm`4N4x*@2sA<GzIB
      zMA1!m>8YE3ig>9~ZVyD9A>!=)ob2M7ZbC{cASiQEOGbX80=6(9KO-r>;G}H(XCwoh
      n))`R@;}u_Yx?EZ%fki*OVH9Z#;Z@w=s4c?Btwc+poB4kM8aSpn
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOZC4vr5PmKJk}QkVSg@r^X|0k3O02DIX;LhuP*J3|p&ZMpp0jLjaWUE8W`p&M
      z|HOab2j5yfe((qQqdd;syV)#Zv031pa9?KTdFHt@L;m^qufG9YK{bs5fzqCJV3pdw
      zQ!m*~*KT{Bbp6tDxLkMKZ)ELZTejt;jb=@zF(`0KIn^z9xAb6VPujk~pySJiKyJPF
      zsw|MLI=imrw>>G4+FYTNL03K}rz_gJe{^!ap46v8h>PSn!kCZuYnCrPfra=mmfvhR
      zc4<ldc_g1nlEap(j;z-LSBmuGNqsBvj>oHAPVAsE<+lhk{UJWat1~?*+elp~;WHJx
      z?zoP>NUxtSY|-m4Qz2!LH86oQX}l?LBen`(P0_?zObQsT{4UJ5nb!#`8q0O7)e2OM
      zKdAbi<L;IVCsnDOg}_@TOpInQ#GCUb#xN={M!h39+KnCQZCX2ZD*oJh)3)kcmgn$3
      zI2^77;*3X$>%J<pT*G;);KG)H6y7s&5jh6Qn;60{Y3YCMv;@R+fr-P>zu)g5B&j0R
      zE%V&zoxWL(p%pLI|I{((QQ<t2dTJJhEzbFU6ImFPtSgY-mHwI<Ij8f%+ePb6U?^Wu
      zqb6-zEp0e+Y$8$5!Zr;oX3C;(bBQjPxCLtaQM=jLw>-Jz)~b@G*Fs<MBE{HwQ$k4D
      zjeYt&u<DdbOQ*tEcT6ndF5S?XK%b0BTb5%(&D5(MITB6Po5{U8^}zybXc-8S06A$n
      z(31#sI=p`z%{3`lP<w>PPo#6amOMwU{Z6eUrOduYwb}OgpAe6b$=D{F=lLmMuDP!C
      z)XbBuG(Hz7#tzol7&J?`?P;`BR&E`w+Qp+sn5L#o(U*xq+~sLRyEN?vkfA+wYPcW4
      zB+tii{~GOSM27oQWSzn5$kE9g6yc$Y3Y^Ue`aS(8#(%>(TBUMttM$|`3TB!<rxfI4
      z0^g({Rf5^3Fi$X!FK`B*;exWH4;q~B5H(Hkl7iW${Q%t<#Xs<FarOmfIBts4f=UK>
      zs{ALk6$+FR{}?E$`&n9d@8-h045h(%mqWaHh1a4z%QY6_73W@{)C>BR0-e^TA?R2D
      zO78UK&7e>W-?h^4Y^CAZYD5wL09QjI*A$T@BFGenioav#XIeyawiLXn4FY(E>Yiw*
      z4{<#VdqahFsSr3n<5x@-XXjqx=1)DbWh6BtOwB+g(A&UmT18W1tB$gjAT_qisMHpZ
      zyy=(3fZsH$IK0G1U3FPAz#-SY$g^fc8d(J{l&<<&`A&oLoz`_3_b84oqm?6SmU`7}
      z^r_}5?uTJN?p5<#yqe!0t0uP|*Xiw^LOHDFNNA-CWeuN%96nVXB5D$c7&Y6Z%E7T}
      fGL3GN99EOTQ&=aO1JtG)iY`~>1L}Sw(D%`QWTpO9
      
      literal 0
      HcmV?d00001
      
      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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
      E0L|fhI{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%}xR_7@Q(f`B4$yz>Dm~jW=}(i7_!TXgn<8;H@;3ELnFqwdLVF_y9hXaaaic
      ztOpKFI@6iS*ZDp^-`)Y7<5;35a57g56?&JXq0Teytu>hoZ#LHlRY=qYx}`2v*(`jV
      z&W&~w4T1e{H-!T2!n?cY>**^)1TOmbe_c_P396JpGfrlia^4z-_Q#`WJc$Axfrd3N
      z`GWN6cIi(7(wZVwnx4z8Jk@~$rgYY0EGHps#ksfI+$Je=d%p@hTmD)g9*nN4QImhT
      zVO6$b%Du4J!K#5_#LfkFcy_tNI`<;6N7N*$p+($AhY#Eg4mSK@iGS#*?Us(CwX^pH
      D(esa*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^%}&BV5XWaxsh|jcp@NF>gfX%4WI_?6CSLI4P~^aEDVthsiYYCLZ{Ra|@Bw@%
      z<8*~(fg0VUP5R%N`OmMLo&EfJ{{VnfIM5(L;J8Z%R1X8k)vcaqg}%?cK))8B_jKUc
      zwC%Dx`l7)+fgCSzsb}jC?Jlzd4Uz;7|FGfJiv;rHJlUB*vLCiFiNIs|cDjSnidj1P
      zS^FQkK_F#1wnu}|X9O<Fjk?i_UL}_*Ry3MM4c)XSMmwDMDvnpl7VQiUq*Nut1k`ak
      zj2QznyLU=`knTL9!$+x3;=7EYQu0EEO2nX4BmrbPtZy-|<9IgTCcUiWgzeANDx}_7
      zZ!|%5_G+?#Kw-j5i~+{5QR&xU<QW~k<nz!cH~y=Ub=vHOzQt}F7f*RHeu__`@gne6
      ztygA`Ml)uuHk<a>?BOnpEs%1>zshmEJqXM}0v15Siz$tFObXJtwuCAH%cwK3B6K#o
      tgQj!}Rz-Y`=dTOB!Sg5eCgeqY3*+0cBXj|EaZ2yX8kzPu+5V8Q^bNFLmSq3{
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLU2oD*7=BKRR9GE|gMB!^=5!P`*t`_N4Q2@e-33Veh%u!$*il;250hQ_hrBUy
      zF?!(-@JAWn(*k9qChA3d&UxOir_Xu%^Vjzu0FH1ZL11`ts(w(bzGs+K&9*e(adgY8
      zHs{;!$e45t*L$i?cANHiqB`op)StVCHJlzj+mVo9$OfHE)f!e$2B*5_Nk}rRMQBvc
      zkWw|zSIxG5#*phoIbmgu61v9FQa#_%8N^<j5K$XX7z$x>KsX{m;qBN!{eWs46i(I+
      z%kUZu<>K<V*wUKPXV@uHeQbEznI|Qh_B%Zd5jSM4VvVR4m3|6DR)&PDe77NE1u{dX
      zV_5n#e>~8g9v6~-y{)NcUv&(Ao`MPQz2Pz(FHHXb+u_=cxX^`*qs}I?aovBIQzt=s
      z{aT|EUFRh?@C+__N(=m=_iToIjOt2@u7&HXv{tZ-hY}vl{Br4fW$dBIAWa)G?8UST
      zzhS|D)R#dRJz_|AZQs%KV}lF66>IJa_aKAZvMk+cnyTySu7nChDKO_>{U8jRe-wqG
      zS#LjH=Ga(<7Lcf2C@K!gOCmj2ARx=lMf()}&H~bOCX3C_*9ZgIF+*#Zk;QdFKGIpF
      zHB<VET&aAHd};q2>z@e{u}SY764dVn62eQQgjZM<USo^!yI~n_Vw+CX0Jnnie8&e1
      zxP2k(&O9qkq{1vticzO~b5c72skhXd)6JB=V4a?P`5W$w_(V`hD#=?2ZvrBPFm-{5
      h5)k3zqu6Y`LdtN>N)#1P#y+haVK_h)8&ho#e*+d>K%M{q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E>rN9v6#k|cwp|vefCT{s6r>ky!7ETgLK;no1%H$@`g6KWaACV`wzG}>=^JT+
      zl4#-s_#DQ|OBl~=Y279y&@|mSvvbb*&Ud~u`~B~iZvfV@r6I(yal%_X?@7zfn{~(Z
      zTvs?UU+kIXQ>#(3nsT2vmYzG(ZSP6pa#?pZL>Te|M5{oCA^Fy7F0C=FmaZRLptx<z
      zvE&XxrUnU2R~RD2`jLo(Vc0+vLps73F`yyFFjlf0ap2Xe!ad|wTQH25>L#}<+_lvH
      z;$=h?&9F59a(}akK*SO6B*RoH9mvw_Dmlc<*0IB-=Ta5(mwRm=zAPM83OfbGX3D@g
      zrWw`)`L2}kfLh^4&ls4+9HFYRD%|#b?!F{8caHO~swcvf1)YHI7?{TbgT{|q+%d^9
      zoJv<T+-1o8*KoJmlrA^@K`C3chAsALHBYK8`g0S<67FkQ9&Bh-y#`iPrQuW2*0G4R
      z(k{cWaxn<OayzXEzEK0f9QwBylKtAY8(n=j2W??b2r7#NVVLX+7Q|M~d#F^JV9?8T
      z&o#vhOAXn~rS~hRn#o}7IgW6PHg7gXQ^T{qE?*@u!${vPWq3URw=S)mx~toPz}}p8
      zJ!l58M)bn;DPf6(x>sbW9o;K>A1CVxLi7WMGucnjGud+(A88xHC_RVB39%m-Bim3m
      zhLOMxTImjAg1jcl4&kPs>OCTU^4ZK8sYs7o`<c(U{S}LEvS+xrdXCfwau55d$H^J7
      zpNPhOL67~$XzY&<v(QO#0TV?MSxgh0POz((Bd`aQBS~xLEY~~BBb3;svJ_**Y?)S7
      ja+Hc#SHJ;Ibf7pX;$b}Ut;f^~5R3|XiVZ5D!)@~)z2<Su
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FS#KLv6#lNAbTald32hzP5YiOV)Jv9{PzrT0gpihyrAyotTDFNZq|;99bUcno
      z#RE$vph!p{5VVL*0-o~FN)Rv)(7y1%k3xLcV|%7#sw9#%<2mQv?|k=s=bZb`zkmD*
      zAdRwukihUIeMKKCJEk?1FBbA;+cpZ$&{*T|>}7L#$}Bn4`f~4h!Le6o4M#zfK+M}X
      zI$v^ZJ@3#ZAeICMraWgL>Wsc(F6#4^LD-CdI%_T#bf;_^0!O#AcO*BN&gACOnJiIu
      zjF<(}$qF2fZwDijm=id*tu4N=a&yyIalwcnj8+XQ+62P!#GDF&2Q)Nehd|quSukeG
      zOY?@ElcyHgHC4>()|_se^1EhiaxR)Bfg_u-57LC^4=?G<0v-1vuP)coPizC02V`0^
      z*}=Nxz7q?yn2urVPSIwxc)|xeQL~fG(Ll$DZ*ildeAwBHf`<i?o0N|)0TFazzlI)k
      z3hZR*+N*UE3LX(iZyl+3wmeTx5gfpNo{@Fy=w^X>#A>x+>4n9ilk=C1ypu_sS8zyR
      zw+G)iP85AeXh<T(l3X;LNn=%DPdy!ekSGQ)q+n1W<>74FFB%RbO|=Ov&=<tbP4c~w
      z`Y^2FamlHL8|QSZ%!+*iPbxSn&|VGi+o0ho93*|?N?Es<0#TGD`~OvxS+JI4L840E
      ziopILpHFZ$k8EFtvW=zUiXl@nrePG%3mghK+eQwF^8$)l8edv=m}hq0d5Q6YhH)Gx
      zdda*>iZoA1^OS}OyeQC|w+!8umXjK$(Wc-u%f}O;I^<?4n`as;S{9Wzi-ia~`>cjJ
      zoD+!F%VgBD1oru-h_`{&62%#uRY0y?UKYnJy;K_0OV0RPd1F~ZD|khq+gmYHwyaY{
      zv%tP;tYKpFvdx32F_HTM9V1COAr+@MYTG*V6pJS=Y|N!>ro4s)Fl9TOqMZ8z@%tUh
      z7f7zmM6n1{!9{^qkDK&pcmuiw3J4iQL!f6QcWfiQZ2Uqlmr2NnjI|_jFEJg&-W>of
      z5ScBO?Ywc^lq0uuEa*}jlvD+@i9*4!tAZG;_m=wH6Id9TOb2k83o>SXDe+y3n@>Hq
      zG>eqiGTTgE8GI}J3ZVrNzEwU$HA@s4E%W>i@f}J2hMmdOuV}x`uP}E5trAIf(4>~3
      zsw>z{TZg+Edl2In_t7GwJa~_9Z^PF@A8QGnjkph0<1SR~Ku_`)wBJS74YbOCchI$t
      z?pyBP1M7J77LojHRuNIJBBs7wWup;=7&SJMgJ+Q(1bT6hPkGYYWYEO-aOy7lZlXE7
      zmb!z!X&I`&g1A5h{UOW@{Eb}$G(0A-jw3hF+_V;6<2IK>2a^i*9VqI%Ov!s_Ro_Rq
      zdaX((>B2WsGmK-%FnB8|jNoa8?`G1nw1unb>XGTiFxN|}?y6@RtDdD-aDLV4f5vaQ
      zzW09gUCtFe7ly~Tlj1=AfP6nB-;c=mI`*m`lk@c|XO}~7gL7|#b4QJ{C#+oMGL=5b
      zRLI#_ORs!OF(NXd6`T-07P3H~e&UlXQj6$GCM~XH9IU~ZlN&KV-6AGOa}85s`*_X>
      z7DioN*&I+mXQsZ`A}(*Y8tz}*EA>gIl0VC$p-iXhRd!}N*}sn54Yc(qD|jh{T3MY7
      zukpu?F?q}5<?4G77YHQ#FDZLg{SwXUR}_#PqTWQi`ZcTn8>G~4(XW1oLG^nKsXzF{
      zOgF?#*Tjr*8o!Fy7{?P+u9E3?eXr9ez~Nduj3?&rn6KbX0k02TF@M}*f;d=-?arXf
      z)jmAUZ#i+INn)oeutFQaf2xAJqbAxoP80<cNzkhq>63>DW0}touE6G7UaPzwQKHWc
      G?ED9km%<AG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`HQBM;=5Xb*>JvduSL9nPOqF58DO2H5lZBsQ(hz%7V+Vp*U-IT?1+g$HZzX^T}
      z9*l_(egHp|arR0tnDF2>KJDz>{$}RCH?zNf|M&@D7Y{u+guP>NA}VpDf{H)XejJ8U
      zN0mluwm+y*OO2y<VpMu7MZc;0^0Nn*uwy|c6k#rqCo&*VlQ3UXT19oj*GDajNQc9|
      ztl9uc>KTaUR+o@%tAQ3#97@8Ob)B`&LABGZ*6p+Z2QsPOZSZyFkikM89twn0YZ3Ov
      z&p>Q-vmh+xF^74=VoPax7=P@^up@c_-~DoH=!>8$LS^>nPB%JIW5RQrZb)0WN^mt_
      z4q?}ZPuh>s{_v9~JhMS3jmSd~s=-l2Sp8emm(f($zD3k&qim<brXCjf!Xi+~D7(PE
      zv|$rz7vNlb7>B;xSLWZXUHX`8o0%u%n_A1T5s2|vjy-G=%K!ct@O-AS3H{o^dC`H;
      zgUb8fvGk*A_Yz-yc5T?<KF#p^$=zz2HL<|6bp;NxymOGlRbEfw@^_$6e*EO=cjU`O
      z_Zt?^*ptCE<2O;9SMZ$ISa9B8nSFZ`0xP)AJ9DOpRnBCr8@S1_jdhDHQ$Zog?_!PZ
      qGG{ZM72M|4SVi1P$@P?6XEKAke8Ry7?(v%AQ-u3?z)>glm;L~y{oaEB
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eZBrXn6n^gJJy~d=2rVi_TMO9$>5EutQj}7wNJ?iK%m=<Ln>F1wY%-fo(SM?j
      zqko_ue1Yot!H+uQU+RqGIrlD0imP;I3NyQV?>#TiInO!g=C8kh`yIel+|NK0xbnz+
      zVpaye)2Ucp*BW@9?fRAV@U!vQ>D8USf6we)+HhO;7a1f4ic+g%y6wvS-AA_N3nblc
      z%NDp=k700&RH_2GhSPRUf8de+N?iTg_GWdvSzRSN$yRsY6}T41gp7%FZ^l*{a-8y<
      z_Cv~nF5jQ^TBdJ%{~3$vclR8tvL;^-?9XjVxn<vV>`p6CB|P6p<2hZo7OnU{j8@}o
      zaJI8GtK+zizbcTJFEuIs>qKW3dLFM~DuYRZ8<DkedJH<w;k-cJwfDnhcIOpLS#;|i
      zv)>PJM{hKI&vDz;Qgm#mL#XB;@Vbr>j0&8oJFdMo*xR+eZF9FnWjbE(T4twddJeCH
      z&2%lu$5#Q?muoB81<^QPEo)5D53!+zbsihyE6^-8^GM)r9WxkXMlR_{A<bWxb>xue
      zuX!Ch@>GBRL#Hn=`64x6_KxVe9V37v=u2`w9Id$OEwleXb$dHjD%GHg0YQ!1YH3Gc
      zKfb3Ba%_*GW@(2z`HD_=#WjHutGm}TJ$ub<HEf!7D*>jVOJKMm)wK|@!|^1ny&gTE
      zm>udQhi?_Tf5-0FzTM(xkOO5Whxc(agB5{F<QR$W4c6CDMNJ?@_6M?8Pu^C<W0Gdq
      z<2+T*2Rat8NE`iuWeH?x<}~D&psOT3a9K`ZIX(lDxm)q|UdX?|$2ykr9u31rci{0g
      z!Q*E-GWaEqlWw66*R?%4BJF+#bphk$6G&;3l`2rHZ3dU(FvZP?y;W6X!(y1F)F$Y6
      zMiNEtSXyOhr6Ege>f3N#z=zzuL+f)qbHnu+(q)}7+8HMc%hD<^GA`)<?5~*k8Ph*X
      z({Ipol#ewXX{`WVJja{zgdQ|NE|7Z#Vpf{^mexr+nJ|9ATSoa17mbBOykjgLVva2)
      zz!oP7KC}dqS`s-eg;6byvsy-4Hk3X}6afEC1flX52dT+D4le<NzK`Y0EH34<6qu4P
      zgz^QFFLGIih?gW{m;7;3^FLwQC@(xi<teQcPEIkjafxeINrkxbxGqynns`^@Vl>B6
      z3JpsYBpQ}tG(|2w+Tp~1N^eFwY8>F=0dD+>RPt%!r2lE@UssZWfA)2}!@i2R^{?2z
      zBh1Xk4BOvYAUft2$;}_+kRx6F`h-8l^kt;9IpnqZAwFipxM!%ixU`u4H5qpb=W&}#
      zYM2j}R~cY=l>wIL3@G_5$rrJXJ0Tw*$(*!lpE;f~p5g8{7&FS{1I$H$RpeZkASabd
      l2y!X_$!R)1Q-Ju40VVJWood)18kj_;ViWhMGgLuu{R4C~2weaG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hvj6g?Av?ATeT6G9r&kAygccx~dQA3z#6(3+$~xIw~}5q;Y@L$d8=9j(_<
      z`V068`~p-J0um^0rB*b+L#nnC@QlO@5`Tkm@9w7FN|nG5yEAiV?wK>^o|z~A+<ypQ
      z79VQp6DZy=x6NYPv+QD{=``A|s~oRbe%7ttw6-c%%e!W7O)h)N)eslR_(`_utQS9C
      zy`dVOhNQq?7m8P!UeguOZL{TlqP({2s5ODvN_WwJ?zhrhQ}Y6;s<rNzgrEfGdd)A@
      zKANx9=NAYk?x-D);JB%qcAMY^1GvaZXkCof3naY_t2KE>pwPpXoL90O%Ud92r+Z1v
      z)rnx44xEC(t2&M$lST~3bqrvHI8Ep3X^i5eh7$tD{})lmDV(N5e{MNzOP1Rr0nSb5
      zdSEu`SAkiL>*$9}VFHsHvb|Y{L3F%<mjn{qtUUw1sYB<;v5MuWmG<VUa%<+Q?boH*
      zFzveOT09Peajr;@7Gfh(QN)hGaOFA7TU$rC3q7cDWTzPhF4bzjv9t}dwc>k=%5+^o
      zGuO6Fr{SORoDL0A!v)f>TeX#DwcXfQwACivw#A)>+VZTXlg4=*XMM-XMy}dyZYvEJ
      z1;+eD-=xd7t=3Ju>Y1L3<jn<nmvk(!ps}0k7Q5wr9q;0@z*K0(sLw+WL_?&LEs(A@
      z+ipWGSzL(G7rq2DOo;CGvg0VXOgFrxs4#KXMBs9%b}>*iiXDm^4Mk)>dM^S+<KtwG
      z7<~!E>8T?9sGp)<AJX(E6FxU44?P>doXPOjp;eqYfI*shg?e97Zj9OsM!tg~;~s{M
      z{9U}(!I-g!u}4VW#!2q&;q_~UgTucIJoxJHPovPm)c2Ga!!-RTXluwHkdU{Ll6Np5
      zzs89C1}Ee$vhrIL<#))@x?$RmHiLmYwOJxkAd-D}i$*$83g%|09Y7IhLXuah<+*;|
      z`~ZpgZfuu^!PZHhk{usDfank5yPzCl&<s8ABO&M=%4afVgHf+{aP|@UAK?6F_we?<
      zAKSw_FVdlsKREm=AL#H0%NEgLipwGILzfRQB!9%1e26KzkDUAov+`$LlE2`JJcwvf
      z4$01jT8M}iJjb*Jx%G(l7etzAXNkbsO5W!@N1W&PDKM1ZL+LKw`_vG0o^E+YktAA=
      zsXR}pJWr`Szv7hq4HNSB2$gI|C4tkp;(Lh|3`)jxOeL606Qvl+H15L(SfrLCbStn#
      J_6i(%^<S8Q#q|IH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO>fgc5Pcgbv7MMSlu}Chh5)ux>h=HvrOG7|Qq@oniE`qyaaYBySx5G|BL51c
      z0ul#)0KWkNzXUOxw5XLh)CYTK$NS#Aoq7KL=j%5Bn|NZP#PIBZAMqepQ5=Mc4D&P<
      zQU$$#;ovZu^rK9@;*-{nm~JbPa+Rbe$_zmPtOhbv)!Qg*Z7{6$FOKaHZYz?J>QYI!
      z2+$iblzYjZu)$DwP(if@1D70_uoxElkrcc6yRk@zd>jjg#eNd<c*N64?@y9tEt=tZ
      zfy!rFMe@s1yjKiMt~ck1x!ez4j}Jts=&L=5_9a(&N&+gbH{9uHxz`*lVufL|NZDPw
      zYo|u&RR=e4lfmSBM_h))Y`EUY#%<g+ai`emG^vAoxKAX9Vye3|8{YX_Fv+ldzJ1fl
      zX$xNzy~GxEVL0k^sXetplBc0~8R-G7{@0o7S`UM>Eu~0%G0!rQneZ9>i@S^ra>m~b
      z-2#$N)vjxo>rJ<V4Vr>MKN@Q`weKh@(L=tYyiL(l+Urc+Z+}9~Z-0UFadxOd?<yUF
      z^#cnOJ32-kO<bmxx{oUaT%x#yt23%Ml+{!X|CmPLf5!FpF>ZaJi~-Ho&_b-As93*X
      uTfb+l%X7pDYlV0oV1;;EbY54SXC6{y;1T6Ycnp_TZ7v26Z9>j9to;Q*{3eC~
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMZBG+H5Pr5VoIO^kfPjDkQlKwLttg7EB&0z@Ecl_Mi66Je1`n>+=6XluqyI<~
      zltdGMfIrGOd)Jn0LV_htZ)b03pP6}{nfvqi=WhT7ywMP0*gX+vBJa7Tl{cEU;W>`9
      z-F&%cR!_}V#caF#qLr$8^{ZvqcAfJ*S31INIvQdOrQ1R&6ow)9li5xc7&a;c0~P6d
      z$+S&(n_)A3i~E@xL#*69k_j*jbHp*EBZ|8m8tyQRR!mzSc#XPr4n^IP3}cn1A*`Bk
      zOttU4jHwbB-VL5Whuc0<si>GOKf4T5=}ZVxY2Z7OL!xRP+rsr6N@@OjuhQZB;$f}0
      zT~wt_ag1S_p%B8mQTGGl#lJnnF^f5hs?w?n%kzow)v|<roc~Zik%n8;DbOR1c`Pt!
      z;^<7+202F4nVN>j4B0Drcj|4|5k}BmW}{`vy+*@x6{UWK38b*1VVNO+b?LwI<ycjj
      zMo;CrjzwgYkXeS+PIH9Q4X6meQQg37`kygO_6vR9>WaNJD1|*CC@m6%VWKNoIJP41
      znNn$-L9aGF$B=JL)p0Y|4&}Pyg@NzcwsgvtXt!ls!%I?l0K$U7*09wl&P_bi%mo)2
      z#sj0TeHr8+3<U^Xj@E;%`ZAP4D81J2`cYfsDKQqMPZ~=m)!dS$b~Ly2K0($CMCb<$
      zXLH}7XLFa}-)I}b2t9|$349TwWOHR>7)jitm1Z2{<TXKd1owTYFNpczv)K!340=4+
      z&;G!}Us(K@yTH=gCDLEXJ?cY`ku&%b;yeYNFJpwS_+b_Th)$R|CXvH5h0`hQ8s;e2
      z6T+CJH8@-Eo#hcp?oe8)VpZ8Ptt#a>B~eg;Lp9NXs!0_d#fEP^Cn`YKBiO_%y!L}`
      LqDYAZHJ1JXE%To3
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVO-EUMy6#q@PySKYDNL!&`6<W2FcDGPkzG<n2T4?RID7zM^qTcQf?S<uTvwODz
      z{{;U7d?&mR6O$HD6MZm&gs7-7!RUiZ^uh1=;DcY(bMC!mZz+asA9iQv%*;8z-}#z*
      z<IX$p0qDXh162aOr_5Qiv*cL0&P?9UlnMoHJDme}r>WD{OwuYkqvlLYsx(<1h8<ln
      zP%TjFYRH-PROgY&Q##`qhzQh|_3}y6$rl7v&MZ1dwNonCIxEnXEFXHH@v(eX_XtE&
      z)|73M1}(6+()+#Xk)HH;Pao;2w)I(u)bTKG=1Qcl-cuJ~LgzwsULfL3Tg8?xf$f!;
      z^!&xwdo9~?`UG~ht>Aw9IKdqt`cVk1RalMM7(!U5P>1z|u&sSOhDJPQ;8F5v1upgQ
      zDQv(-@`Rbm=pvEaxl))DjG|fLaXb-Fw@cvUida|TDK|OTe2c=SCFXat(>5ze)I`ya
      zgn_s~X9Z4T)e0S0B@mwFL}4{s6*^fGI<3#K*)D}{Y!9&BBQUfQ*2`0{eS#V6R8VYi
      zb<(o+Sn159E~L%LoSU`zjF}rZ3l^_^VKwKgKwl+3TvpwbxZ<opLvo3Mb2E!ZQWa=l
      zth}wBm3x-lA$rqkw=j)qvpD9~CMEWSfMI55O*`Wz{{aO9H3kL*n#&;^%cn}2>A{>n
      zL#=D@Y(~#GR^E=`AlAjmb%zuVbDbDjUCd}Z%d%mGXIK_7T@i<LGskgMVQfhp_p<a^
      zh39az9Nq410_IAh+g^dkdSXap+`#h!@iNy3wMm6zctN1%q-AHvv`IbpkPkH2)`lwq
      z(sH-BCKO%_dZ(KjVx*wY<Y%>kmj#+!oUWnaTux7!xs+o%IuMc*9FjClg_kfX(0U(i
      zKC~cQ%EO#MER`=6GWw9kS>Jfy7iud5pl4>-wsm2E9-E@3Du{SF#~R!RjI&MPKyP~A
      z@@n%dCTKknv&EOp%hl>;%A^qe!l<Sfl`@m&QJPgDM*q}tmaM6M@2(%Jt>rdOry}&L
      zLp|+0OtTN@ZivR?@x(mV#IK+sp16uf&Lc)c(?u9GJUNfn_#9fVBXSYlJexz?XvejM
      zTOGW(uy8Zs3AbFuwl^T-f-YP{O}t|sJKiGYA?%|6ID?d5AS`bnDnCS%{0Ob`W3<bg
      z=#rmczx)&<@-w95=h#i>8weT!!yfFVu?w5Aj|f$vhgOQ<dwab!)?q*Td_sq5<UPrd
      zt|44~DRhaJ9)t*Q$*)}Xo(k!!FDqpUE3L&-Snn%+&GkA_h_lv-dGue0d>03gU%}Jw
      zlW2|SGIHM_xr~OPGVMn8xcnMQeuFjgTWplKu}OYMw7(DFh%dvz62?)*jl;+BCau^h
      zLoSXvj07XI(+fgdGI4F;wi}TP3tuugPfo!}o(}|v;vEQ1E9a5?0aE^mdifL9%Ac`8
      z{z52!#Xk8P4$9wgSpE?R%#e?G0|k}?BLacpJr6rILLd9vl(URI#n{PVM`-Au!<O)6
      zr2db_EuY5CB{Ysdh{m62kbe>UztJrJL7V&+JLDY<$^~k-0!LLiKqKYTXuA&$-eVeq
      zn#UrI*ZmN1Mf4{VZXTSVJb1;=gChyzbQ!N6<0|OCCk<2$!YYcWilI(P`gEa>2em4I
      yrqxFirf-^zTh5%AUM27zqw)6mQ3)YS>ndoRq_Li6jnwO=T&#_lrXJxn2kSo*+2_Up
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL%Wl&^6g`udNiw8qD5X!H0b&Q@MhGP2D4PhRDxoYAWyNOVj*8nbiTtR@Ux8FW
      zV!;RSQHVQs3a!KfcVW+&>wAvxJ$L5kukSwqw6SL(!_Yexr^1dxZ)&?U<wm|QRcQDA
      zz~PBEA9z9dM$GHOX!3XI%f)^ueG$%l138AyRfV()Lm_<c1@$(=vq5Shhv*$od105~
      zMdJ#5bIg$I%?@P|3}ucy3MFK5ox{L2hLwS*<U#adBK?t=OeI5YFmuIpEPPMzm%*HF
      zf#Fs90+!BRu#{TLDfuyESZkPx;8dt1`|addx*>fn4!t8K!pNs;@(pv;cXaKyIBM8n
      zXs4;+fEss7#NOiA#twra4o`)0Njcjv$3@)6T?2O*>=cvHq8#^dpF~dNLR%KIFL%Kd
      z!}?_}7xQyJU#4xMLoSTQPM7Q{4QG+>%GaKr*496db4%C5!1tAses3y*Kn4aZGA~7&
      z$(1nhgu(iM8lBgK$grA#3!`V~r)fOlpSRvhw)#%#P}jj84K_;`o>i;*TocOBL+6^}
      zMMBSMuOnrv`2{7b`3?MYoK&HAfs(*Cu|k+@j54ZNrIiMX8$?_qoWadl>K#S3RK+@@
      zsajvL**wGUCyHdD)hfCWzKuNJL6Psqs_O}3shTI92iPE;I_2v>CXt7PvUo(X3?8FF
      TYmJbJCZ5LGCR(JB)MEbz!T?k<
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLTW=CU6#fnitiagPLaVL!7Ij&YA~E^`=?hWQ6zv0q#K&Pfsaw~D?9LMXSDJW9
      zeDDYOql{;E@j~K*^a19ZGv|Eg_U-o{U%vt9pk*URcycc1vYlu@XnWJpOQJ}Hy50W`
      zhp+wFz>oEFIcp4)$)95^gG3!^6-hmfY~%^Oi&7aDLQ%i+<3@+@aIi8_m&1F0=<7qm
      zW9I_#%`qY0pPs4`2o-?>ie*^1EMVgjVSV6->P7NqqN0(U1d6aZn0hi8%g8tPg)whh
      zAUs>WfW>T=hRRLlL-ke@>P|DG3}krLKAD^=PxEVO=%0mBClS|EaGIlW*HnK+;3{_b
      z)x@TRrrLC*e}|XZ^_swS+#uNUbS^`WX)MP~g64$n<p$r)el=-v9zuCIO(IV{_02GL
      z|EZS)lanBh!cay1K*q6(ZQLbvR^G3T`vmv@!&nZPSP8WZEKQbhy!wiIqvI~Oet3`(
      z8qxO5y^9AtN{hcKs#c9~80GlK!eM)f(IdVaOT}${LfLJ7f%uR*t?_@6ogg-_&R7_X
      z3aZ%Plh=kC2i6(qu$5B1WNSwCkvHUi#%}99KU*+VYo-cOLqXJ05?d+dcILjIG}Yb2
      l4wKwsf0Hh=+-79qPMT;B`+RP4Tm$#uu$YKZlNqu?+@F&>9cKUl
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5PcITv6HxMfKq7rC?5fw1l8q$gh-T2B&3P}heVM$ZroLIG3&@)NARye
      z;zQ!V58#Y|UxS#n3nCJS=3x7IcHWyeGyC<|=Pv;6!Lv~!JUA8$;b%IG{2*3AmLyVX
      zfA|-UUxxEhnCd5D-kORilLuNRLdS`XGQnSgZHR=bei5dveZt+*>A5}T^+Ofv0hjbv
      zA-1Q4@-RM>H4qvuDyY_BVa<gNhp;gUm3*4Ln#p7$W|1VE9mRo&rXmT=|4FcHOcNfi
      zP<eS++(22$*P5{DwF{L<s3ZT`>{texPiy1wNC}-KY@y<{C)1uWe8I&<Z1bt%=F>L@
      z^SS*?uXE}p7ngB`V2i_rPyx$Wo@t&IgstVC-pv2>WpN!seH>>=ARmRM|DFG?e$Uh-
      zxCctfWEhDwm8p$egwE-gNLX9CK!m{x^XyL^_t@=V&s?LvK|Snq-xl9xYBtSc8I}0q
      z#d5sH=sy3ONTbvJfO@C<3GTZ*X`SCyPJ;6d8;o6p(LfVt_{%fKIVNs0F5!GG^_-)H
      z)O#Lh=OcEyZ~54Qky<w{obRYOKTvai=8{`Q`iZ1*cNN<#vdj6VToJj($inr!&<)(=
      Puh}J`h1<+54BYt*hj;J5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F?{Cvq6g@8~b?unK#tK^rv~0kVbTsYQ7~rg<gq9To)6^)^sD^k6UU|&1Bgd%(
      z|H=LbK7hop?!z>`?vFyd*LGtg2enZo`@Q?#JNLYE&vpKL|Mx!tmT^ZzPGI@5+>zBm
      zpqy&Qb2|gyx80yx9}YMFRK14k2X|!eY)d)=yRTtFpqLz6ZTACTc7nR+ICdvco+}`_
      z0v8&|o{`XZ<&N5xZO0~TOF-XL+pY`-zAbQLoU^rPvm@Q@>M!lb#KCH=St|rNSyQeG
      zRs@zx;{aOamcY%ij(m&*BTdx3hqi${rcLNLB9JeYTRH?jF>wf!0!JFkweJqPZQF0M
      z9s-{>ypD8Q(pNl>gA>6c)fc$9-&L|DBPsG-*%LVaA?}mj9`>~{Kx@t0R<mWTEJl8)
      z#bQsX!1iU}`IM$qPT_6Dabj_D<U)j?;gmpSAJ3%jW}t{U6Z4oAIK0Ew+)Je4%khl8
      zIcSpy4V=N8fTsFu-Cpn{tkb;$zD8L?Nnl|gYH2&0IE!;s`M!Ee)ueiFFwO-N6)Xr$
      zQ9A@uxm3)V*kx(+mcyjWCcZ_LuC}*1RGV7MV|#>L(uV{NbsSszoaYA<-?PuOz+3fw
      zNjI4(mAA5ISV7A~4L?$=1Rl4!Kq>9}q^GTPMR})Hz)x7!a7|!3QHEDcT*eg!8j*4o
      z4T1Su^J<pfN@=Uvw95S8Tx*Pbodl2q$3{R47@OX}@7U{#TWEIVH*Arq3YZ(NYx{La
      z_WL$fVKQ>Ez?ItCC?Y8{XTNrld$B|fou>~gRfoHp-Wttvn4%x3?+qG9kpfJLv}vBB
      zw^4b6!<B_sIQoKSc{&YDGm`!rCiHvI^(`Eu*zssLKEn*n=p02j%ZU%xJ|C`4(VD;)
      zm>uRl8RmT$#)0|DOB{WN;$N8N(Z49Z#_8wL@XTv`^_-B>Y<`EK-^YypAY@|_3Sq=-
      zm_rg_4uTtio_y1Fdh>3B!FO?9;2F&#Y`y{XP72e=U~(kFr0yAw`Art{j{{;Zq8elV
      z8ds#iJQsGcl*<rRsZtb%r6}Mcz9W!C240IOQzORkx9FXc;gUd7a5e{Yhl<@jAZ==~
      z7&npkEw1i@{_T>|Me@1_#=Jf>OFb-IA_-xWBsX#yaPK3Mtm7sT%u15S&s6;!HgJnQ
      O5sFg8ZIUbMj>iAkZQ7Xt
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      UN+OSqNkf+ichzhTUux<90EmQEivR!s
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g}hEO-Y?Td8R28S|AC~lm#oGQj}83C_;jiEV`RIBVusJFdhR%`~e_X
      zuz>K|!KNEFMPk7R@GJZSaL0}cMP1;9@15g&&pqdQzW@CC4ZwLU=3y~ZZu9%Rp6DQ~
      z`;qh$rG(V=W|T<196gXNuKnJ8dsF&(*bEo;tPUgpPF!!S$69e;Ur$6Lx~8S4A{jgq
      zieWq!D&S#9s5pq^O>dcjU1caXBN=Nhb%%$EaIVZh@4s5@eq<QB6v#j?G1wKa+M&>l
      zx}ty_MqLyz#*nL2I|VRIxR}HU!*DEgTXQWK##(_C*OHBOp;q~NNXTR>@@Y6H33MKS
      zw(bQnL#?%^r9BpKk-_oJUP!w~6K@HfR;6M*Bc|+P2BqxNK+L#Sn+^Y75-8E`aV5H$
      zCDYF{m^7H88zK}u-c___IOkoQ#3}ONM;mvEpdq{M9ji{o^QvparLu0~Vm`@~;-RKk
      zXh(_i#Y$k7Ftyv#g0aoudQuA240#-jIFAK}x&PP)nK1tsizF~dmx-YS2SXI|bh0oE
      zn_>YYgt(Ng5M~*q_65b-^ftynr*%{G9!(jZP{&j3!!ztB>|j=n1C*JkfI~P;T)+{U
      zlyTN68pNq>V|t4c3x>{!0A8dtZdNd$VK|Cogcv~$ibhb;H20CWKf$*CC3*Rmmg0_<
      zB4$%9499U|K=+tD7{{}Q?sB;gC%09$yGyn5%r@p;|N1dQkiC`rGoeI60YdSHT)(AF
      xy~7yZ6Z403YAxg2nL3Np=~M^Ps8D86^#rPv<tVQamxVJpOVL~!hI6Q+^c&2`%FqA+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBr9h6n+i_Hd&WwBd7(H_=cOb7+>0I8`J`#O&UQP#DaA?%jO!^S$64WSIZCR
      zzvxe>t)0=(DKqW&e$YSE>3HtlB}AbkANIbS``qU|=iGDlpa1^+3%~_D)X+mX_1Jo1
      zm7>sbOSbRXQ4k0(EKU277vAundNnJwS2Uyu2Nck?yk==``LVD=LaMdy*@R+k4;-iK
      zj4c!TCmhcSukmHGQdr<=+HVLQz1U|!gF)yu3kw>ugp=D2E3PY=mOB|Vqg9qS^P?@+
      zLdW;gI6%nQQfz)Ae_qD`a+2mCVaSYCDZ%wHaJ*(&5)To~y~@=wh{KXEodMxP1AXWx
      z?5{bVn2lDKMKEtIyMmCb`L^XQSb-z=i7^$fI4#1Ny(EY8(x;*zP=(jlQ_JD}>YYGa
      z8cq?8cV)y2MG!=5p=fkKQtlZ8V@MN*E&GSa2}FIx3Phu_g?5(Rb$)ZRy1S}*XI0$e
      z=P4JKbQJKBh9cqEuIbu>8u%FF1TFMuEzjqGQ)abLl~PIu&f@~VL>R13cB@H%eP*Rv
      zSdv%Ss~>T^RORat`zMUPN8r}8%Nmu=t{C_nUl0ZY;R>sj#2r@|`$#uMsA^i(my&nQ
      zKpEH7o>QI<{kTX7gJxl8>1dcH9Nx}<44#S{w;=*qzB2~C#H5Z}sA%}=t#*mA2CDd)
      zqkUqzk(hf#80)UkxTVUwc-Aq6TpF_+@dFh?{%T&@?ijd>Z@8hXwKd^22;<#+TNS?}
      zl0<S@Qp`(=dxWFhivJ5t<37L4Ly4c^lC1ktV2hiMtowsXPv<vrPNs)oR6I`v)2`KO
      z30V)a@o|D1sF!~`+$^$-c-7Bq?kpZNy!#$0^zb}d+<-pvGX^#>u$bGwfe-#JZenn8
      zWCMp@;>hm|>A^6MIlcfq<MCHs|AymujuEyTifM2Z$9Tttd@{;T2zeNMc7kmw-knr#
      zFSCW%k}1BxkyIO}w;kw;=oKq`t%!{nm=H_4vpeW&9GjGtRdnN{ZJ2GG`-LsBXc;r`
      zuj0$Ad}KR9v$%*$>O6~2@F|}XK4Zyoey$`!^+f39`|l_v9U0o!rBv@IEn^~Kxs<S|
      zaND^0)3djw(NGsbrbEDmoe<nnvVgHoOfB+L-S`7HH&DynZeva=W6n0}xdq;~@$K_>
      a*z;ZNV+nf?78Pm<4|vwu&me!_VfYQbM|08u
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-5Pg%RjZI@)>$fKng;vm@SBnP=iV*am^x$n17u^~+ut@}emIo0$_yhb=
      z;v_8;Pg0hdVP@yOeZ2kt`TPQKge?~q;b1IYL{Q`^3F1`8g)vg+!SFRsRD33kQPS*Q
      zNG*-XRjOS$giZxXgnkIFqp^&0LOn9+lhg#d<7S|=%1;S)uRkI<!}MNyu+jA4Vxa-T
      zqK_Ktgm$R3yegg}X>LW7NJ2MEW08!6QDr|JI{Bl@2thcP))T^UZ%#;m<gvUa!MjNd
      z6U%c|iTY#5VX1=PUut$`n20QsnTrj=&j0e5cxEQH`7N9Of;iX@&K4i`h$jv12Hcf*
      z-u?%N{SN=F+G%laRmcnua^B6*=9xd)Mh8pa#7x~O(;iogH)_nZJR_-BfC;#~wy;v=
      ORjhF>tstyp6W%XY)PQOL
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ESyLQU6#mXEbY^H_5+)cF2{90dfn*5LY=dY*Kt~6{CQ3Ax&2WV#O^?;nlOlh`
      z@<kuaOCF>u5SOaNa;dT`mj{<B%dK2~hx*-aU`PZhA8y}s&pr2iXZcQl{@44r0UXDS
      zfr#MnqIK2ERejsZmCA0Z>Uqlba~G6jT^p~es_H2Co`IMk6&N~}JD<BayQoUOfjYsy
      z+Vg_1Jj*Y8g1F^*)-^%Xi^Y2%<pp&Fsc17P2n@%n_!G*f+F!6M9le4>;iH{H(mwia
      z*Y*blr!u=*Zxck<v>-NEo>K`h1rsLjOCpN2i3aQ!L^EB}`sRKU^+;-|#e{)9g2tll
      zs?qAwtn#L;Sx518v0Sp8Y0I<qd0iRPxd=LUi%l1o*%%8}WmGM*2t>Z5@eY|tAju%z
      zK;53{`VUuXjy@8T_PlHPRgW>nGhI_dc>|9K+H3t8El*ZU3qy`tVuy#8OX@Y>F1tw_
      zLE1o8&{{LSmkDZ)CHK@)`KmH-RB*7?)`H`xdCQsfEnjVM+Jkfwz34M=e8YU_hMG8m
      zM+JMVQb|=R9j65&ySH_Ria6!cl}c_xF-OmGeRk(cK8ce!ZQzt3vu%#syfJY`Ga;t0
      zbRu~Z{dl|<;~7E!|BG?Vv&)|Chf~Fnp1?T+Pm*M{knS=uaUO#Nv^U49`7Rc0j9b1Q
      zaSWMw7{h|}hRK#W4Gf+((T)AO5YL!+R;N~1b#-$3^@xc!9OOVQYd+U{8_qe&6|u?9
      z^cD(kf+tDVNezBjken=6y^<QX^;|U8ej&%SM}b*zUF8jO;46y55heEp-T#K$2Bx2M
      z9>}AeU{S6(Vo2$M<bMo$P=cMK3Zzncn0bzKHK38!DN0j_@FkGWcCTV@_7<A5kySKj
      zdscB^h585{;CCPWLOw-YK0-o1MuU8U2dQu7J>Q}g4{_I$#*WZ8%eIbiHaIhY>`k<D
      z9k~4#;;|di8?+C-*U=L4S>VysG9wE;imo56Is)6yAmUe<fwt-0^!Fy}KfsZhTgcqW
      zYNd{!IN2G>mtwE1qP_1!biK2Q7iRMXO!*RN`3kM_^%m^jO>FWa%s~>2ffYcNew*LW
      za6N=Ob|-+Ls;?MU?I!lVi`*I>;{~O&YZw^0j<%lnaDg3t8)-^U3Bp_26;`My3SR&F
      z*Xu})*7QfU>(EzWh2R+s<1zyn=U4Ax;m+%V$Tu+LTQtgdXp!&HCO;q}KjNhP#3A~b
      z-2WY8@(aePyDY!qWu6!04=i%`<<B7TY?$17;w^XyqqxY_PoN27#EftyLMe4l&r?_y
      pbaL0Nh-cR@QLAszPhMz-XnsV=GA%uaY3_P3gg=hwsR{e~!asSY!L$GX
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmX^0Z`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`@3W+A!48c77<0vqgh
      mLJhXIvj#eyk%1YAS%HDT2=pF10|$`B#J~wAxfr;?G!Fn5R#U71
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T}uK%6g{KXy4$8@*>}BE;0LtztOz0rff%ItKCY9Fth+GoR)4F92zuxT^rNCX
      zYY5>I19Lymxp&TdeSdrcxWTD`6vO$HKXE4trRTVT??y@qKXh(i+zI!`LS1x&kuZ>9
      zs3tb@Fqlc#X~yP3JPLxlf*~VAF=HrnVw6W*&i!yI+_1*5{>-VW{#N@FCHP2J>(ZBD
      zgP~Yj1(ydz-J+E&q_JtkM2;a{Di2IBY}r`DIzzrAebJ3(L!tV7=+QQXPT+EHz?IbT
      zZ!!~3<ecGhG39>+XfLZ5M9LLysR?sSfv)re8SFdX7pmp)`CQBm95S3G>b1ntJG8V6
      zW>1cN9!84%X7Vn{BG*^tY1D8{LZs<`Q`pvOkk^EPELld!ghlrTMQ!Rxk+mxCuq)L!
      y<X<V$C?Ka9SeAa>gvl%vD7Uxh#twEVB3#U_XB8<*QGGwo>L~{}qH`SQPksP8jhXZS
      
      literal 0
      HcmV?d00001
      
      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
      zcma))T}vB56o%ikiHS*5W23fB+WMJjqTp)3OGFT9K?xQb$^B$9)sb}<H@o8B@~Ys4
      zKcGLV^qe>p3QOt5KF{pgIWuSW%+FtU_W*X$F2W<MU8rm2r-==G9fdlLV-qI+=No;l
      z!ZQ;$`$3cxktb|rPE<*BX|;ba(KqwmaJn`G?`nrY$1>OzycWC>ycN6?ycc{Bd=z{V
      zD8W#m1tS43SJ<<mP4)@7c4t7yA4VfnMh^7~7Vwl%?b*<rq?bbzpQ>TN8MR)dRWMMo
      zm3J4+C+BudX!SDB^7o;;gm(MCCUyp85bA_-KT2b5zE~+>=Ff85vKygt6ow`~4AgjR
      z#ziy<i~lZz&nbVOQ0m*WP$g;1%N}Hxl--BDhsgoA(*HWVFgoe(cd^6O=J*O!`I$n2
      z2^5{DolDMT=SR*J=f}=7&Q<4G=O@lJ=Q-#3i9LAIH?HFu@9ndRJ+=7*&u@9)p}{Oj
      zkQVTQ$CZZ(c!^iQEI4_QBa+-=du&Nw%1)NgIV>|htYDQb{o<?7$qlSe;v2sKYBioO
      
      literal 0
      HcmV?d00001
      
      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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
      V&{z{F{EWBiLbg9=Yt!-0e*y1ATp0iW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(T~8B16o%hZ+ODbP!`4DU`7#n|F&3^dNP>`H8gGE!PuEEqvYj>iq5LNANKBe|
      zA@}|Ye~Iy(?MAR-LN=K*bM`&YdC$y`U*En1*ugUo1;L98^+|Qo!~`8bw0;^z+9sXD
      zOYJik+QUm<e{>rUML|6i2g(kp$bSgtVjUS3^mG(ccy|0&Anydz2ceA<Ws{x?Qe6tZ
      zT*cR4e;PsgwXr7I6HINkdV=CX_(4}Ng_$ZUcqo|d8mr%@!@iDARX@;zS~v9BK(P(a
      zd9s+Cn^@55-gAOoL1S|)&L%iXB4Y=;t)A=MaJ}mSZ>Zx~4YHm$!{$;!`wqY@<mq`7
      zes&gf>XM^21tnjlF`11!wSwkt>?CB>L6!xTlQ4~ZePrB?Ed2XIubf}3gZIk!6)d5I
      zGNZ>+0S{2*$NOcb%1nn*7)$LDrmr%|ELT?mmd<gljs<vx8c(jc&WtPGBe1|&Zf}k7
      z_@=s&WuLS0Mn;$)t8#*)&triM4ufXSI;LG`*lTaS9AR-1w#}lQ47N6w{egKojHP&j
      fr)=f0%Q^Nhiz}1VH?+9_AB&FVEUwX10qeg3$>W|F
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4le#Ii*F(vr*^{p9?-<kF&|)VvaX*NW8S(vtilb_Nzk
      z1_7{=oW#6zegCAa)Z`LI2KH32f>cHZaSb1YbWmwtUSd*Cs<mbqBLi1(erZv1s#|6b
      lP#G`GL_LsdHbw?U24<iu7#J9V7O*m~fmjUeK$3}p0|0?HDW?Dc
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYi|-k6g>m96uJUp#b;ZsRDsfh@#A7mBsMW28ilN;YRs}saN6x`v+OqdvrKG!
      zeDDYOql|ZEA&S{;^b0d{_uO;OeevVxx9<S%qMb#G;r@YrVz<ITxGl$%PU!nw2CYZ$
      zxf2GS-}R1;T^<Ne_PKu|9A14E@{kKT-V1}!=UHSJ)?+Cmz`&jyGGqdMtoF`8nhd$V
      z7)x96GHjfM?F=k)mmC&@cVbd)GqmH;iD@X`j*ueQWq4WpU*~xI^H55A=<+CWvu-hL
      zCs5BrqihsD)AdF?2ZoY?9P)XjQ8uuQ3k>xsm21m!Yvyl8O0@0i@PIo3g;o9+4J=@h
      zq1Y3WKM9Y9+#e`y4CS8Z*sf*!LcOQPjH)BUgZRV}tN7P2P*FGI8D@H?rD3SdtN3s{
      zQ_}bsf?4}BBTrIF=~~^&;|4aexXG{+J7bAC7`TNh!;<Yde4=N`N@!Xlg;|dm{m}KC
      zLs}KRGUhUFqn5=T8tqtxb7%u~G$=EBG@@qy+4@<V_ZjkiFZ3P0Csbe866NWFFc^=e
      z<bKz+ClgM+F3c}7!@c+<ey?#S0_b70JTamTq@t5Z`Zr0TtOkx=S^ZinmDB+1J7|Cn
      zLPTHAp+MHR<fZ)1H?~euY&6+tx;9U-@{x>bROq*$0k4U6p9o&z64@$5Lr%DiD|D*c
      z0<Mzn8r=;F9$BuFC4*J0kwpdT&|7^gH$I{G1?zOIe8px8FI2RYj;5poZ*-K1sXUF6
      V#+F7ku}x>5aE#L4A-^c0)-O?ieggmi
      
      literal 0
      HcmV?d00001
      
      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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
      J*TWRu_z&AceER?Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIl+iuf95S=Y0PSOIUEq7WjZK;zYB80>Pwkn}26;u@!Bp}2ClH;z*7H3`AyGi&2
      zK80W4fe+xL5aaba*|dq%KIFl&c4p_yIWx1nfB*gd0|3wAsRc6x){ni8SCfJTH9zFO
      zj3UZKt=^-)6k*h$QHS}|f>{C!YG>f_quN31nEJwk0)ds>cml=vn-qs(mlL>TS3VJ#
      z%M9<rE`de6vOhrBXR&Yylp5@adqPH(fPH3zn+7N%A0+2qE1=FchLu^|Fq3^DFwf#9
      zjoJ*+=pjn*x*ijmg@s6J&E7Kz7$s=3HvPz%a4LvXuJ?R;A}}JhV41+`pcZerpiv}G
      zFhPG4fkG@>Z6*k8+oR!kydY4_P5nmtU76@dRbSoaD?@QwdS?=>+iYS@a<S7b1nQdM
      za6!+e%mqWD?{kR`qa(XqxQyG2k=$}ak;%)8N4eExf=Y~c!teBT5F~?VG;Svh0-Sj4
      z{}69IuRn8@tFtu#aJLLxqv6>=q|%3bm*ml7fBK}RbCLxScr%9f#3?seX<5IfA?u<%
      z&M7<V9RER}I;I4AY>XSsv0$CR=HLP{`jK9N*m2`jf1XA~DtH(O?2RFP&Uy`tvI%UA
      z6qQ_Rp%jLs-ZUglB&{Tu8=;JRy2}E*=a)}CInNUQ_`cw?f!}3(vF7m&vY-gbTU3HF
      zTIbL@qwH7Us<L0x{{^^?{zdf9;(rMvZotic#4WYH-Cy5P>%0B+JzU?16~yi%=v=GH
      n^I(MMA$lIcW9=#6e+kxf)Q0js(Y_)oN_?BzTfw|lrDW?r<33WU
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc^F5dNlJSXx%76u}z^Shd?KOF@C8gv1bx#(GI;`o3LG$|38n*$b(^$X87?
      zRv-KUnyB#y8Ru-FZ32Xd4<~!(_RTkQX7<~kFJA#vu&yITnA^7xY%7kWYdOB>#6cju
      z$l7iTCyx9eEL3!8gk0j~+Fr|g(cBkKq+^&cn`lFJ4P^AjdKt(A>57)vedt8e_Xxw$
      zo@5BZO6`m^{n#zrb?v4rsvN!{JsE8hR*UC|HyZ?P%ik3l5H1+dF_J|Z;|4Ow5z<BF
      zFkX|McpkrMilDBt5+-WCW4jGIkV-yOYN`;z!dWyb%sL&!T>50u>^cuLjg6Td+4Aft
      z4mi_L(X7|2SzN_+9oGnzf9{ci8O#z!Y{wB{SXd&|&(*1u%j&(vDCV%BW1cW`BE=&|
      z12-|nP3Qi(s;pZEZsSg$9}mLg^YA;~NVB2vO#>yA`}oU*r~iq+-FC!lHM~``q2nGQ
      zpH!SYV$ViMi8kTV0I!~n-#EMD$AKdr@h%X?daJakkO;;T&lACxYloo-b=*H%qf=Lq
      zNAmb~5Y`5=cXzVd)ttJI8$4~B%x`?#b6h`^UhA2N_WWHe@q(oJ41sbvwI}?4Nb$)a
      z%i2-Ct+T8&*;4r<jM68Jy-$2DDqUjXX!?!`mJN<k+B_!t%Wc9Gdrb2^h06(=<eNg9
      zFMVJzJ{?^7j2naw3U6W5l&ai8k=`Xxc?P)40V>%9G{*eFWA+o%^oxUjCrMQb20TnU
      m%_S_t;%JSFQ;92BPNGvhHY<3*L=;Jd*Cn=!HI_8CF8l@MhhL)r
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIlTW=dx5dOw?vWc@aCJikKr1WCI&dqHIy~H7<xb6)nt&|X6kgCo4$lkE*qTO{A
      zeh}&_NKgU~@Wumw27xGuTg!KL9cL32l?S8MYUj+E%XhvxGyB8iZ@vX^0e1~#1gE#H
      z9jnrb9JgZop4|xo<wceHuChCkAB4pP135t<wsI}6Rk^#ht?bCapx{)j4QU!U(I=IA
      zfwSYds->FO?8xyw!C=&O!r}$NoyIfL9Qf8O*R{4>^<L<Bty+So=2~Ic@U5l_s*Jkq
      zcuuq;SS|H0Y<W|VtNBee48e0I3=HLw#i)s46a?9lHW+O<o?7dCw55U#jZrYx@NLW8
      zv;s%3yULtCw&3iu&@J#V*`PzB#!KbII7Klxhu58!XGNWWnFdPbjg4v^lX%&{ONUCb
      z(GHZ=G%<x!#NMr8qC6Tp(Z*p;n>d5Bf)`pUs`*}|cB2%}f{8<zQd{&c;xz-W3U2kQ
      ztR`MZNibyDwhF`Id4b)};-<(we2_^@o0!2YX$YTA!(<mnT$!|Uc~kQ+Z=wRi-AB&L
      z{$c--AMMZmCaI2K0gDFS5KKL_6#IrI-oy#sa9&nd!@gwVGOirJUJ%^xBkUC4$-Jm0
      zY*kGx<E?|V#J%<Zq^<AT>SH~HnAyNp!SR@%xQe|!fe~6es%g7|lPS#UG7BWqeSYBH
      z?IA%%`(@NFFHdT_7o829U-vtKt!{8E3Xb)r>bwpnFmHRF3gTocH1O{JL_J#Vo}Zxn
      zp9iJjQVLYJ3W?@lC-yQY%nD(T);-(x^#EQ~QQL3gJcnYI?*ODw(6f<$kPP2p<f$E@
      zbeU_d$xqLG33K`@9Q!=Bd0y+{9eT@;7~|TckJcW?IKN~MCunh!at1HzXfjS|fa`5(
      z>|tVc_90$boBjgk9?s2uio$GHeu(m1L(9o}?rX69_Hgk5regECJuFdP%FTR_q1hRl
      zPvpL%JRZvrVD|L#88Z&zBCcSC-#Q<SMx$RNPRLLES^mtQ-Y*!DM{K2EaYlZ_Ir*Jk
      z^aqyYPt@fv+?2mr#>coPPq0q;eaatDzE9bv+$KeufyLx>T?R5}<853c6N6~t9n_e4
      s1oOB~T^37ZyN(-_a=00zx`o^Pj?t=!J7|zI&8OBR9Ig^GXkEnOKk(8(g#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMe^1j;6g{sS>sBhO0|ikLap)Mxz#&NH4+w$81i>glO^iwDUZAADCa*2Rx6(uc
      z(Zmnnhce#R7KUca68>oK+r9Uld+xnG`~By~F95Sx(4jGm?%M};Eec()=J>*iq~s#3
      ztsZhG3Vj)r>pHRwR-EP8Vz;)rv(KGSM~<P?^1g|Luy;JpkPG+Rpgha)WW5XYYv~@i
      z9^d87tv$)@=9=wL$)g5C&w=fgCBr}h5!XGdK;hg|SGeJGhRw=lYqSHN*k;JC_)T5_
      zL(zneygFSqQGj6}gMJge7+}a$RBCbE6?`N5yu;;I(t2s#cWiIlmah7pI<smX3}fAx
      z)~T_KjD(Jx-M2DlU>LU*oe_q`u2ZNt+V^W<6k|H>GR$9YS0?VE%#gPohX?W2KXoP3
      zY3&mU$AG>(>4rzO<rs6t7oqe$W%yy(FmN9g9S;~rV#e*WJuXd5pvqu2{Z>7O_bI#c
      zYpvk26S}@g2X!8AOCn`@K@POLvl+}VeC#@ddLzZ?EW8%8|J7l<^&{!<HPQ}4-?>z$
      z)j+7@mqKv4;@LsK105v9WKta~F${L7Mc??Ua6CV7#qKK}?)gm<k1@|s5d2HRilLG=
      z`>#kZjws1&V1~q$p{EC$Whr$5R!M1#{*E&A^una*6*@hG7JG`-$z$|Yr;cG&Pf+?s
      zAr05)ZIA^e8`=V{(@9+fiWtOD?7xA56lw$6I5zYX!yl^E@32mAi%j1s?wn%$T??~B
      zna~ztYA?`Fc2HZofIXC8TX{@kD#acrtLpYBysvaf$mNtXC8lU*@Gy=|qeiwwS)(+I
      QN7TQ%tUPskXURMF7w2S%djJ3c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{&oER>~PD~Nz1V%4@FMT;o5m>2?yN%0H9lP|+|QkJZ<$?PnFf2D~i
      z`rr@nM;Y&Ii&U{G58J!<-g7_q-2VLa{Re=DShHa<%pUMVUWv6IRJ>4nu~I_n%EpoK
      zVjZfeuxumE;3lYm%U0#}-huG6jX{Q)#2OJ)`TDr>M)`++AX=jN!qa{z83y&f9~B-k
      z%r*Lysn!?<4tY>e3}bC@Qte$VCEp7Kxd-dM^!0Ow)nfl_|4UKYWk|1wO)(6HoC6y}
      z=Ix4uVPrB$;i`iXj4`B&2AXU5QoM>k><P7FT42aGLXQW#T=_=t7}I9POH8;-BcxPJ
      zTNx{sy4q{+vzEaP%-Fd3*RFT=mEcVWw=l~v+W9zb<G*RzR!TF6f{i=<KWx>(UEE_B
      z;+`j>sIbKF{t}DrwBDOA=PYQqw8=dp(lK>bMA=4(VWkfjdSo#D&NIC2+hmXUTKCr1
      z10F?<kT-=&R{y}kA}S2yk<ja*)Z$2YK^UewRTENnd1|HI5xS+S4Ptrz{7TMv>tNC_
      zDzhEN$`hM(9t_z(*R^N@7@U_<3YBCPk&UNkm(_F03==(uWEkG|TaxQoQKij`JZoEe
      z-faD1#B(BUZbN!O82PfbCG>vS#1b7&ik<;ju4^s{aP#Jl=&!}1X9Ny;N9k>i^c2Zl
      zdHw|1^1=z+@>k?PCBSj|%_IS|BWo4cNH>85#{{mEWVFDkPO2?J8sGFOrpup^J;m))
      z-2Z|FQrvGK2D6XkwqVj`O;xJ~*Q#UETI)(Z-ASFsa)N%06_QhgFX9PSX_h(CfqYWT
      P$Y-QksG&|WP2TEnI@M@r
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{ZEF)j5Pl{(bItW^VyyMGwYE{y2%dt1kWwfif)HPz((jwgl5W}V!QNibf2E*^
      ze((qQqr}-uD?(%XVQ+3`o|%2-nf>+q$4>xH@i0V%uz4(|A}O5GNt&6ouvQwE3_i%T
      zaGA~9&qD-+W{J|mOp>>wW0|@THNyJb+P=_QjI<;~Q=!`;bt*G_(Xd44+}JAjF?naz
      zRB1Vp<NXrRBh+@4QErd0-MI+7b4UpK*;v*=xEv$IQiLiRG3sa%svQq#43&{@ij$GF
      z?`Mo!!z>m0P*~;t(_r9^R8H8M-MK&trWkO!CaiXLX6Sz;=`G_1ZiTo>*jPMjjN4da
      zlD1%7qJylkseH*=5LW&Q|Jb)6#IKBzwy#B=OXgTVP!l6uVHrC(&tU!pXA9XqU$Dm`
      zH3lZtS+30FwRA_>IK=kZ1pn0{#(g{>EO|9%%I;shvc>Frc*3i!^0@?Rw){r<nO6AJ
      z5pi^x|6Z`~BT@I!SH#_KSovIHuJ~A);cC)ou^)4dk6y(pTf#N0opyP~w#;?EApVZ)
      oginm9z;~(n44usB5a3RUTE_-k&&c-xBk%IJf=%3G8(<6VKQWQn(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CZEF)j5Pl{(bItW^Vp{8KYpu~HQ9K0^p`{=pf)cAx>G#cLNw=(fvUe9M`lA#S
      z(GUIrf0Q_Tsj*-z^~2uo%sewU&olGm=eO?w?xW+QL|8izV-e+<(ovk4IJZ`sEb1M~
      zIL{KBHXr)%2=xM`g&9RJ1_v_Ed{hW4GjqE_YcbH05R8Rxia1k=A+-AiI_1JvWpAUG
      zR*jXGBRT9H#`28=JuaY|gvypOD%&R9X`MQ&y+`o6$xv27I2*#pT!1oaA*!eo$}I<|
      z^_7u3`RjqSuO>Y<`bjMGp0LW<M@}!>S1DnA^79kK;a)vX*Mz0k5y4|3aWt5cOMP4-
      zEdCL48kxrxtoXP}*f^y`Ay%=>oNUg*2D?daWBG)|BrHrPch}V-gino;wyQ;&N~ToZ
      zRU;#^+%mQ|p?AFD*@S;jbnEYgZRS|(nOG;OGNb1*+fRl*ZV^@sD*u!&L<?=goD**{
      zh-d#X>XX~t#64btGM_V`dc$o3FMNql6#;wa`Splx=LtHuKO^jX!NSJ^bI$pS2xrqf
      zG}sO~$9WgA#5dtQmKkw@-yT~Ri+T_ERiHYb5PrpF!Uv9*;ObRegx=4n<>6X^TElg|
      VU2m=i7`e{h5^kW$w}+e9_yvss^y~lt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTT|Os5dO}=iEJS*A?6kWA%svH3??D;X3`dLAWlu7F{OoGg*X^dS#o754L_w%
      zo#}L@ujvKDBr|#JLw{7Kdn7|->dv&DvCnnC^X=}p>p%Z`@e05l_zF0~+@bzd&-$Ke
      zWevwReAgAWmwoU|7{2GYweh^z*L};|JaC1+x1t-gd88o5&>a|Bx?Rq$?;Z-nQ*fDK
      ztR-BNHG^7p9P6=P*%dCsRI#Or?l~3H$Swv$!S+O1xH*PPW!Lem4E>>1@O+5ADi7#}
      z<^@#G;8k0%hz(clo6i_}B332OHSIDP#1{<9v`z0lhPG6Ciy^k`><I-u4C((&O~n-?
      zHT0s7;qpQQE|w~!w-R6&(4ZjB&{Z^T5i;A<cP$|qIfia+>8>f)!KR8fT$fN?(sV>a
      zJK`!vF{a>VQ`k#KHBVGD+`>2km4#QLq`9Vdw5HoSg^OW0m5zGce4JA;fs}$b7zSVG
      z@&bm2G$t832|W^KvS>n%91&^;GYY1gsD>9bWHHOo(NI~q$&hS;6~Lrq0Om9#pemTB
      zq(^85*<12WYfrdwyhX~8qMBB55AVp}z01&>iaH;rJG~_{wV>fXDBoS=)}p;vunkvK
      zNcVvP3KHW34U1T!T<X=Tu=g0QQ!f7j*LXh{N1k*v?FGsUIIKwfRfg$S9R3wYzFg4o
      z2p<xh=Y$fy7@&r5Wo*_oXy_otdIx5WVLk-@f5l7{z{qweO6r187!tPl?kruYs7p_L
      z+m_1BMS~OGq!fOPPZUr^MS4ZZUc;x@W>B8$mM_-#8788jVLxetY&b2&^_fiX=M0Nc
      zlkmx~2ShwMrx)34Ks}OD$lyy2U*T&Cw^_^UqT<+r26p7pt_A~?`b155XJ@h0PH4BU
      zp)4iTP7>O1O-I(9G%__D$|lfGMrZpJVJgOCgu^*6IwI9Y`%)u#)Fn%f?;2volzpP}
      zyd%%ZBA_-`ux;TkTY9Y~Y6>WWBQ2ZNxg8N`)yt`|kjM1Bgct^7o1#C5Zdr1{NWCW*
      zNoF**(W(<&bi12Yv$U2U?Io^k$4+qdH}wBPYmPzsRcQq8L_6=mwP2TiWLIlg|3vT6
      z4LqDY!O-Lx#4(0Xaicgn^#|0cI&S}r#3^WU=NNbC(!K4TH&5{PujsEMSI7H3%XK`c
      z<KZ!iuV0>_jtPDhG2V@Co<x%OVwCq`g2puO#~dHP0v|-4=BxZ#z^*Ukg2z}VPD!f6
      z4SYmQ8J?ijVEiLRM|zxpiOlxo@3=c93DKl@icMlgv*C~yF-n|ZXDw657vCeEX{$r0
      zxrqNji+CLendgKP#%Y3L4L*znAHg`kf!j1s^HI$5o0#WgxX*84iH`>?N5l6UEQtxe
      bfko`n7(xX$A#ykYauwgws0JRm@DTqSZPfhc
      
      literal 0
      HcmV?d00001
      
      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
      zcmcInYf}?f7=BI&1jrh#Rn%UDR@5Y*skQZ%7)t|GXyhUhEmhmi<_L?MU1l$UKcPRR
      zGyTxcw9}y<`UCo-I(^UCO|nTg0cHwJ$nLp3@AEwGdoKL*?_YldxP|QmVhne;)m=5`
      zxw?_lEK~Dro11QKZl7zOYuV1^EI0V3>hfBnX^q>vy2cZTGfYQLo~b&nt!i$^3<ky-
      zu9YL_bd1e23>9=!cZ&>}^wFkd)*0d@tHwt$fTV&16o!FxW_<(<DFuTVVmMvaO}^yS
      ztK6=rRf7nfEnAvutgE&z-h;-tyQMn}_xnfg?GEuD=7EO{3ICCTT?n)os=1ka>Y1j9
      zna`{zaRHYSxX3Vh6nhk$!+FBhta@EFYYgXnqV2H6!P)ZMnzd&N{L2bH5|$(zjZ4-Z
      z$xmlOBFnnt68DicebZE3&nC+0t^tLpV8y(MF{xl26AYuevlfJwIoJ@LX$4ntjX}|!
      z3b*SzMc_5jF{L0QI?kwjs_r)WbjxJ8l3ona3sq=Euk&YAAo<J&g`3;g_>N06oCH2&
      zxGYVSZY-ECw{34nR&X###Qa>rG;WZGE&*AdOVznZ_2UsF!}uXFsX866S{FlaM`tt|
      zVBQm+lEHV5KdX@SEzT>ri+e=XRh_pC#U87pq#A}_T!&D3U8p?phe*GctJ_?2^M}C}
      zDwTXOA1<9xZhV>k5aIP#g7U+jwl=9UjI}SucRP&*IT@{@G1ZU7Fc;}-x4gc@DL<=y
      zO=(|d<V0V%mJi<uA7-g|Z0>jl70=mjX0%)gkd~ls?pkm8jA4i+7*b!d41+R6wcZvs
      zSh+v-B`&x57C>Ptgd56VyQ}SK7IA_Np!3iOr`@mBWd+}&%rGcwmG;xIP`nlmQu{En
      z<EZ=?9`|tQ(9I(hH*oOhlW_33JdW(}x^Q@{RW9Z`hHMWrf+`I!^8{%3yx!-?p)zak
      ztqd<t!kY}$yVxaODR_<-42wPJAJM~hc|S5-jg%+O58C!a;`UEM+@Yic@tP3-nohDc
      z%d<5;uZycms&OlFZVC-_axR!Aw@ZfVIGj$pt;R{$xe}Z67%uj@z+r-}MFVsbq-{vt
      zjp!*wp9F@fWrUuJh|w=Fn*EbLQ-9#pZ}b+!Y5F@vV-PFj3_XweqwpT#h@VlsFZ=0M
      zg7X2^qW~+J{T-*K4lou&C)kq^Sh5M0#0U70K$y6@1YlptcR`H64)8JS!djA8V!WW^
      z6QkpYB**XxwZ-tMl-PlEh2dA(+mg5(iA2|!XfD?oe(6A1iA13LPBcQc8(}pPfo?CP
      z<0eIm6H-p<S)}JUwJ5@w@f!!Y74PCxk!TY#^-9xc1-BvGpt<-Gcc_>CHNd^5U-u<`
      zXBr>Gx(s_R;r*Hjr?C*EkuCyF(4qugrFT(hjoNtRgARlWZKEgX4DtM0vKHKvD4;|w
      zg8OVU%$yAKk~E2Om)=ZGA7Fk!k`Kpu)x#T~yzu5R76`W$QM4>l3lj$&;kWYP*V&Uu
      ziA&uQ)gBU8u-YMU1y7|!+V>*@R%E~}TG4|fHYL~F#HIKFo(*=%eIsLLWyz$PrI3Oj
      zQ|t$#C`4{jvMAyq;bN4}gEsAe#}JLp;k#goeIF_PWw-S0V@s#4G6*?L-y-A>K~S}q
      b{A#y+>wl0RLyhc-f#VH*kIKYsLdWobc@CSB
      
      literal 0
      HcmV?d00001
      
      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
      zcmcImYfsZ)6n@^a3mbJ*z$sq1iO4o#ig;toBBB@x(S+grqS3B>vz2rm=~@DRK#Ylr
      ziGM^BjlmE80DqM6yxrD->jET@<z3&~InQ~{d3v@#e}DZ3a0?4jNDL1*)GamZI)<6m
      z>Xzo(Hn*JYlWnfKPTg)yKISH`s1DbQT9xar$@TVGk=t8_#-j)^+&ik54&w;JOrUW$
      zJO;)Yva823$}vRphGjSfhPmlu+NMejp{2Uc<LJQ|88IXnQeC|KM=+Nv#lWD*h@zLF
      zf7P(~bGKIJ_PSa&iO9feT~p1HY8ztR+6*~WqrvbfIM6o45sE{+dwHvtG;OqM$nd%q
      zzNuQ3?3!y?0zJ1947hI8_)AJ&E){(4mulH{T$>YUtY}m$RV*0Zo+4B}UC8wzj7u_-
      zIL{E(>b06`=?p{7P!IBB2<zNbcSu7kR8yBYF^mS2@<}sPy3~3}HO-UF+it$JurKfz
      z<qfVmxxyj%`Snt+a6-jv`Vu+4CUQDKsv&)PG`ptC&jUm9pqzI$+mfCP&T`wd3Cl3p
      zmgu6hY;1FVjam=Gn_vl@m|WkTrvJ7^XJw?3VUR^1GE|c~t59NOliNm}6q{^Qe`PpT
      zkGyw7l;XBb{hCbU#ky;2eAy74BjNXfS<ws0@iWWf_L8YK8oUw3eTI?1Ch6NTj33(G
      zF-GmHhenvjfaqfM;}ND2L!5T{X!aBmeSp4n<|pKI<_G$}(Ne-$`c9BBr1uC*yNF94
      z$OTAN-gOLOh*o5XbL5s@O7RlY*#+8@Fzh)m5tx8Wq`#v-Gd3LB!^JSZdN+js2w6e;
      z==n_}ByReC6S#~k;+*zIFzTTuh|oCQ6Ic^I)>RLy+KDyU#Om?5G_gK)!J5MLE?CnP
      zf!sQqLW*WgNWn+H;h~o)xly{QG?^wt!;wAAL_4^C_VDMutSCNL#pkLZ+v2L=Ce1`n
      p6pyutpLBE-+__HNFUP<Y+1`&UVV<Ipa0hqkDTG7+8SntT{{VyWJjeh5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TB^T6g^W4#acn|t%)(w7{EkgT)4on5F{}nZZPbJGRl}bO{Og<f8~nAg&*KY
      z8E>I%Ohgv*IQMbxy=Ug@`{NV91r9723^&hw$g5E(y{hXgH_}?DuzLF{+$i*QaMF^B
      zdveTso@feBJn>NU=iZLcL+J_&Cd1V~JbxuKWUi%>VV$8|YA+;7%GJtU2D9P!g^d(e
      z9Hfz9$hV~u_t8sF=!dvjhGN@yx!2`d#yByW;Xnoq&Bc|L8oS1j6^Tv^r;8cqy;IKP
      zOi}7ERVsJm88#ejqCl=-5QTkzq!{duA8A*#WIRc3E_iSr3&h~uDJ68n<3S(-3wsQQ
      z3zegZkC%8z9D$mm&jA>;NLRuZ-Rgv6OQv!*LH2#>w`sRyt1(2{7-5z0_ACkx)(BBN
      wa>x^hiFFhbu1h)@`O=jMiodDeU>f5ol`{)Us0?gTia`Z-=(ML4yVyte2RD$rx&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVYflqV5IsXn3w4!R6nyZOM_ZLrpGXnK3SuN`LWBBoS#EH3+11^x!GEQRMx%))
      zKG5h_HU1jo+<mn`#TQAry>n;IJu_$K_S26SuK*NrIf*7h@s9dHEmU3IC}@_cRc%|C
      zZeeCkXjRv;ox$t2{y;axidZhIhM_JQB8fO5?S&btxl*{cbVq1z5(z?gL$ENA5K}dc
      zFgWkIIedk!yAKP~nkF2lY?-cY8FCS8Zix_gRp&0D*Z1DcFa%}C)&+gVRNbmABJ5vz
      zPgW|WDGo{4!l@cAA>*UhCBmmM_F`DEripv5ZkdF=b#61ES>jCUrtVG=2C~1QnOh``
      z{Km;=Cq3h3YgwcaL#Kia_A#YwZm|`F0}5J^N}&rqNpur>wkf3{Yz4jOBcxV@8x)o>
      zoXz=Mw--R(HlQGh7DC&+Zi=hb)g@t9WDCf;S(<7rs<tlofidph)*Zs}#--S<r?`|I
      z8xbGg3sJ}a9xjwQ&KwQGo-pH$GN&RXog|JD+G{->oe-L{Ic|p}#t3~4+q;%mF@*w-
      zNyUy6PW?jcn)}w#D&-cXv?mpu!fArCY}I@SHv_~-x7y*fCi}GXC%OjW*Ox*{eMUhV
      zyXCi%f}Pk!XyIYyxg6xgEB};BW8LZoH@u-pnERI-{0r(ck+Tz`9wS`&Pt>RlSQwt7
      z1*>XnVwRsn!mdciQP~wN)@9QacG*xJM{qyQhO@c(DT?BFh-w0cRUynzRwlM4Hnr8X
      zeR=&6z!(b}<4-f<+?G7d{Pbt!6T-F~{JjYZe^~Em-^P3H1U_r_eA{{Nd+xzrwyg5L
      ziPzovXXwZuev1A1=Q#Kj{g2rg!yzvy4$yo4omfXJeL$K%Vvy|}ejtW0%sYk%h>UDF
      z%SLAklOp7hXWYYVjq~nEKxWh<bKgr2=zodAEhbdVKSBR<oVda3_&QqT@|yomJmPSl
      z+yNw*+-H8)zChtMO<&PT-_S+hJ(BWL1`J3_YBdW}OSfPWXW2*AVu)Ai-ON|)msd1-
      z`6r~2-gt0aDh`>#xgcaXC|^RBZbH_qKIUy*%y~>ViW%P=^Dd0x1TT1aWnAPn!^ngg
      PT*5wnmgHY1sNLL80_zol
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIm>2e!I5dK<{C0T52BVS3JI0wF@Kx8MJmT@q`A%_#2SW#lGuwD)F#_LtsU8S7o
      z;RT=yCn-_||M<aMP~1lqZ$Qzrw`G}7l#yyRJ2Tz=b@zPTqi_HE@+$x{Xk?HeT)L~?
      zS4%BNH%eO5)LND$OsBNCEwq-?wCu4JOTVuhq9N)P)iBg`L)^4=vr+K`D~4*@OHH*d
      ztPE0wKG&L|nvK%(`dy(p8KeovJ7NU(2uV#d2*XQ}a?Ea-_f<_JjCuPuduHj*gVKVg
      z3EQqTO~+~)auC}N3#S~_-Xxsxq}u}vKv}SRRd1N8)3QWpdq3&9YPCGiDrrmDEyE$?
      zW4?NUN;g@G&5CVJ+;jA%Nf?ZYEe6Zd&YW)Q&OG7t)KlCn)CiML5%Ro~lBr6wE^<iX
      zh=KteWtXN3wQdlODR>4-4x>1k!HHexRNb(IT32uirwNCA0(gsrfvG|)1aGx0&5S7+
      z#{@^%5RRYw*qITI>{5(vm8CmV3Npy%P{i{YoFR<5C*S#G4PhyG0cQ!h2#YWg0Cd(0
      z_#n}y6?7w)!8yW6M6nw!)6uuYim<kH+velSVm!xX@sdp4%N&`Xb(hSmj>V)e7iu}Y
      zirEZa<D>frpM7)%Wy}$JwGE+dMnGH;zU|QWXp=FrU}g;3ofF%;q?_V;YinItRauRa
      zi%m^6YO1BnxxbilHgubCr8B+$LwPf6hjs%!xEFve9~eqdXeo|}Tf%Pog@u+2Yst>w
      zGNC^@)o_Q<HC5n(%wUOd(iLd0?kEfAa=41?^5B;V*Y+v5Nc>;-M3*o{yrbX-RtZYI
      z8L1L(?_ojMYZo-xK+0ZTLzZ;xc<}=DGbBlWQ$Zg6^6i#_Ui1;N+(o%zj!hG^gA6g&
      zAmVi%0nQLM4<4}nG-I7Th?EQd&H)0)0`(Iudu{-Bp0NJ^fQ6i9I&l|VZMG~;T;xlc
      z&=ZpKtfV+o?6PSJ%RL9d#ZeD>YkRgrJwhSkWRSysu6V-ITy=JD8s_&dc`NOxfqk#c
      zG0p5u^3%oNyu1<ke@R~UYIo!di}w!kdjdWDFp0zYvpi>d^In>t0SxlolN`b@uY8IW
      zuK?xZBOETC*}+KhF^)gPb32&ix55re#V=5Lf|<4a`A2y1AzlgRuY2>)Sv`ph{5#67
      zfqvruH$S7BenCI|%6IE;DAMnkr9bcn%M5vNSiqY+V_<pTvb&XCdvAq%J-kO)#6`w<
      zn^#jjyX1#(#SP&TH#NYiC%C%CVO*0AKE}!|9;@FVD~GT7r}i1EdyXEJ*`Pm>O(dZ3
      z*q2CRIFZ7!MA~&yI>ZKjC#7rA3cJ>q#ciyyjLhITk5ameAtoh6!p%imF4A|dxrD3o
      zF5c^)GSaT{eN5$jeBi50uvs>Pv^=AlOnDsUhnUWXxYJ3e+OG3spu;)&$hD_poyR;|
      S=Eets!`$oTC-0~G<G%qtI1T9l
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU>rN9<5dO}#uw`8eR&I)5#e!|Q6eu?>qEJ9h8bu)_{4p-uV_98xle1fdx6(wY
      zk;Dh^p^UTLEiI(gs6X0s&dhu>-^|X;kDuSZ1DL@x84|<7d+kWelwHHj=(eSoh2WN(
      z**NBU*|mj}*b>H(Ve%3$?i>iN6*o1V<R>!14B0<m*ZDiGY`T|#3?W@N8Tt!Vu&G(4
      zOy1NSr(kPEE^?&Tbe$pL>mA}D4EH3ns_Wcw^0ws)+w=~8?2>W&vSAtS3ZaszU50Sp
      zE^-ASbgJlpqM!@cWpp!i*Q5D#RK#$Dp)<(X7c%rDQw_v?Y0h)gtD+D6480}p2H_iM
      zGu*rcY*6JoKw1@TXjd?ZAsM$BhO2a%Cuee@Vi<QAlzJ?Nv08xUs9H(9Xm?e}h{(9d
      zFj&v~b=h)_L%zkuq2V}&ZACCj`8dt;Q80r0UI~+Ak!+~Qwkr&)luPX@NMl0AIK#+q
      zatT<en8XxAmwv$Y4|M_zLxJy$oa#!7L5PB3@fYR8eJ*yieUmf93bwA9yP7b(cOVSA
      z2ZqD2<P-htW~M&su=vMX4<s8Crm9(9q+FA}kg>oJucqHRW>&#Gmb_X%V0an0Zf)LT
      z-f|7!piYUtLI^n(S<EpoLG9bjj3GiJMbnd*W_b0_3>pj2*xz;cGYoJ3*ZoB&v>140
      z+b#>8Z_-X;h+gceDeo&VsLw5niz++r$k?n+TFZLVB5F}_#A%X3v?(Rp6g0eai+N*3
      zXPADpT}Xe8Zg1($=p0K|pr*efdWN1;4AAY?DdOobh@WF*FP5la><p>TWGNv-|9#{Y
      z(lo--45HF3dZjEzr8!KKPW3&~mY$^-ZCcC)(bfnhkt~`%$NXM;yn@9F9)2Q;@3q}S
      zN{dx5eZFPjg)msgBe3oWR`59RH%h0+zKw_uTy-;1bwl9@@&v0*An~h^$r^-WuT@#)
      Tu})`<-V7UfN)?=^H%Wd0fuFz=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO>fgc5PcK7HAzhpLI_YO6e!@hg_Hvqh$5i~B&4WFG|GMBu8ND<RBIc-zXH(!
      z<-iZ%M<HhIBn?UqaM<11*_k(QKK9q|A3p&+!UG2d!owr+UbNCAj9S4+1*z6jC9UTl
      zWRNB!9dEr(l@h~9K06S{iPR2kLN)V=ggR`!8Xn0Yaj;6*Sc=pYQDpoHb|T`pgnIAH
      zdkX%Pu&QO8MhT%d_nxEkYjHn3R3b?=<5>N^v2TYeOge<7H|H<|oYPG}nghc6Qd`C|
      zk9K!-AWN`Nb8#LQIgr;J6hXM;!ofKsU3O7KiBRc<O75lahEn(Q<Z8W9AfkcLp}9|#
      zcJd~S3A;I&f37iS*Z3Rm<M9;o@qc2qIk^r4+RQHE;(N`-$`Dq(CflvyHntqx;T|lu
      z$i>~PCOTDw(*7vbfqW5~zLsahlFbsqeW{ex-AKf-j2-xd8%sxH=Ent{Hf}OzgkHP<
      zWRYrTQMJ4v)3M9*$1XR|;<bVTs-~O#1FEK%tXpHb0GAiI?`1x7O@%Fhl<yXw75^J9
      z_}gRD{hcuypIK$$3hy=80Da+qae^X^QKqlB%KFXR4ePkZHwMVUQYM+e1zcyjk%g_W
      z)rK)*t71llYlfRMDw`RVJtk}X%l--Kr?^F6q49||ITM2k`pzs)GX`#MJz-#?ooP%o
      X3-@?0;66M)O)2;{VVkqc3$XJC{3!Zc
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah`O;5r=5PgHtLh%C?zY}l7a<MV-B*u$EqA~FRa^O~%4OvsSr0g1gn+Jb@Kgu{Q
      z4H_WvG`nx!%zHEQ_5JY)-~z`k3WSr_@I4HyQBfdbEo_oVZGw(9Hjyrhgjz<3LOlwe
      zUS6dz1V@Bg$cRw%2h9PYswTG?63HQ9%}+5$P3~eX`8$$aQumvWi;Y?YuRRrVY*ef#
      zE;b3Lznpt*WRlpik;6I3MU8N_(s6q#1y2#{Ihj!Ds*w)UNeCss+3U07rT;K9vN&>2
      zy~$^-OlyTv7kh-pO5L<9w&ss&<9~(BiPw#7B4kHJY_B@o_<5>9@UQz<%j>#Xh8zNK
      zn9m86_*Nx2NN?t%oW)8WJycP^I<p*(8`#1&zYEx5u7}+`SLRM>uAXQ289&H)hdFZe
      E1A+ULod5s;
      
      literal 0
      HcmV?d00001
      
      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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
      B|H=RW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8U02jr6y0}boWKwis6(yRZ`2u3u-1MFQWX_JiWYEMX{`-20iz+oOro$>+xPap
      z|Dq4=S}k_fwc5w7)gRT>eQz>JoMwcFnK1XBv(G;Je1w1g{o_vn?_f(qPT=Tc<C!rQ
      z_?A6Zcb$6Rd8Xr!-3<J|Gnb6!6AcA{K4oMZ&f3_WmB(h?*H9EVnd!O^IF7Mmn<0ci
      zp}FPM1y0XpS|@>q7HKyw(7kA_Ife``FtU@=#8Pd1ay0TRPFRlRPYRr<Wcy7Swk@fR
      zS8D=ib}&-V%Ca!!Hp~+8=+n`Iet~?YTGQ}`z>!3k`M|dCx|ZXc-i^(=x#3%`Q^ElH
      zGz<z1?I!sW$~YiHyd^NzfnB24_>MVtL*S4O4P65J<}AmY57t*qZ%IlZFfixV4ZCJ|
      zmi!$Z7W_w6Q{Z?ub}G0)7rm95?4fM)SZ;yASA%VBv;ywf7GW8v;Ok?w%&L)Ys#jaB
      z7)h1tUsczGnYQexYORC{hBZ`MC2pUO8=Gc5@LjK|;}}K+rZb^J%CCfdeHLv0E-#uN
      zf&D4}I2D1SXEp=dmlaIfFC0ty=gD87$7)U)PTjO^v!VKRSvJ>29q-`+$Jufm)0;_~
      z6s_iU*I}2J@u7~7q*YI3CC?ePuJAa|mF22JyR2gpDwaeG!wHnvjjb6u1zxb>&#X$`
      zma`@xmdRtyB<=l`Y8LTQJT^@YH(J6g@nSr)5gTck<_u?!RahL(Uu-O}r&6UbGQC+H
      zw{eX^tMsNNql=Z<?7A#j>*hV~l<^G48s-H~WfG8XZs4cFpV~QsqW38lH7p1m?uaYt
      z=vcx%0nK;k4aeoY7AmvVS()5tGP%!L1s-IHtob1|)?=1#0l_+sZ=5_08>$ELO{rEn
      z-Rn``$%R_1M59y2ijF!SwlrRpUgDX6PXClB2hu=Gk39Ezw47xok91gA73f!GB1Fnj
      zNEWH|5?}Th=STWGI$XJ{!!olC+0eYY>NFNi(vT*ej%G3rG-+K5los8<tD841xheN0
      zdv8?Mg^A3lmbZ;&)0Fbd7m&chMD0?FRV2;i|Bu3x_MJiksTXIs&~ThPJkQS_eg@<!
      z=d+uy?;J|d`F9V$bJ0mJ_VVUC+UEE?GW-JjM*c?6OAOq9f&G6CzeM@|@W>0i`5O-Y
      zLW?}!=Jz1&fwL&!9MMP7hcO(+d4A-bLc$Ro<u77#+et<zUb#CN-wp9jayk`rI;}Wu
      zqR42(lbj+RXMe|;b}oCB)g-xm%=%nW9FB#aF^55NJ;x}L-6*-{Qfvlk6|#|c=Xodi
      zkIn^tOJ%O}DgC;Jf5pLVy!#XX4mBvM^C=Zis!E$Ep3F2kk=O$7cS8K29dUY>h?g)<
      zT*>hcIZMsECC5YCm}rN*ohnRsEJ`;8yF!SBuDlEBUd1)0IYrPSp|9g+)GoKOM49=S
      zc4<)-cA3Ie%tcYU_>@sTiQ?Q*aUQU!1!DKg#LgYv#@%hy+Jh~tU}433<K%jAAIqvL
      zz4!uO5<W>&TFEpEc!2&$!^`|FYbcT?4-34S%7rf&)zk@;JPDz`!b2(*j@j1{`&3y*
      zwqYdDB~`BtcFfZbrD?EB(=*d54Xca>yOawACRQW%i^R*3z3KplT5AvW4MTm~A=G0$
      zi9&@<+X^LM$MW2wMQRMz+ws5Wn)xB6ROeABV58G0JZ<mWA9sbAhtJe=2=I*05_y*S
      LdCt`rR%7!&+`+S?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc@~6#k~ucA;J6A_6K(Rn%V8qT&_A3t~djU?K*iZ_6@))nymATY|<vp}zXy
      z^})*nBwi9t^i30gl<}M0Vrw*t5ADo3bLKnW`OcaB_Wi>r0EckKKtf>XhP7msYoX(o
      zZQrwNL7=>_TyeacYWBSA+czC=?t;2iQv>H_s$pQ+;Y1i1ND8z^H(kq{D_@$qq3qB=
      zTA;ImHxa793jIJJ>8a&Vpj>Gj{v+9>KdXiXTBn>j&kAdSBGdo7J#uAyc$5$=Iyb2-
      zkXww<M49K3aRP>GRm01QB-7!%Qymx-D6Tsn@25u`&k08b4&>K=tuRe###m`91U8#!
      zLwg1iJtjKPOJ@1PbcQEeO>EP)Va+aCo=qv**dH}nTbNP76>G+&r?cYQmOE_)j<)O0
      zq%K9^*t!`t_gITEZ&fFw&XLM>O>(yh11$nw`NE&HOyvty)4)D~T%*;K{#4DLA9vLP
      zM{9i9R*RwIdl~FSkH##T*oYRr+ixNZQ$Q>WbpKk=?ZvgC(t%p=mz04+0{x8<oN!$=
      zXSq|M6{@BjgXqa%2*(T@705R@{eApQ9LEWPOq@#3qQK$xH+CSJ-okZO;t^%auLZWc
      z=;%K6{^4aE)U*W53C~l(7zeSc*tKladlM-AE_YK`*IrsY^T`~wl>DWT<V$D6xNqey
      zfeimC@lSgLeH8zvooR2^Q^=?ke;w%L$tLd3GA_Y&W3luWUB&n4F22K-ReBQW(|+cI
      ze1Md^hgNwX+v(F;^vMqNLlfZ))8=GgXC3t@R~?frzQL|9NF`s(*ED0uv_6s#o1n5W
      z6#WJU7!{YaCn9*4wkEhsLw!Z|Blcc<kNoGNw%?+_rBu<JODl|$5$UZ+bNdK}e2g~v
      z1U>R8`s6d@<nt(NcZ^ui+Q;YvQBenppo@z=8@S`Ajm5=M-KjIlF=e4rint7t%i+&O
      z5fkYuy~B~KTD)c+FDTwiiuVc~RH0k0pkJ;w@yOMAq$uRcsAX$BVvqh(NSq>S0>c>L
      Osy+N{;&gINtI;2J9$m5k
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc@~6#k}z-L^~xK@hK?RxB-0KtOa6!Znf<Ooa5sr|ouv3uUT%A^s!dBMGSS
      zL7xl;Z~w@6W~~>JC0SxN*_m^8&YAD~&N+MZ<K24zqnI_2V3^#pcCAw2JN1&?P<G(D
      zQu(E_qqb#jzTU969ksbAp9eCxC_P)M8rdtpYoLW;Ja+6{)$?7;_9>Df=|6S6+z3OV
      z95;bUQPYlc{27L!eEhJ13Pa06qbAc}XcahvWCk2r0Rt(9HsUGQf}N^#H>_%1GIW$1
      zwpFiKuA}Xyvqb}Dn2LSxajgivVbyjmWzz*bKTye_3l|J@Gvwn6Akc%03@OXDr5B1<
      zIgJd_$aQ(W(ql;#cP-@;^=&hQ%eZRb%1PKFVg#<ClXTXfw9b73*Kva!O1|(JO3{}`
      zwb&X}iV$=mCvXe>fBB9vJo$gVCtjIG9t8sf)Ld~3lG9iPiXqWwuH4l*h6ILDBIb@S
      zcXTs_+3J?sEIq1jN!vHIKBEF-`cz8mvqC4e=HmhrTE%3bw2mhZM}+>=U-A^<#4pFO
      zi8poMGGrMt>y5y*<+7s(rYAzwVNIJstSBYjg}UW=lEx={EFD97-Pu%@AGnmoj16jf
      zW67Ku{^x&UqK{y4`lYe<c0J&<<4EWMCx4o(39=Hjwib#9$P|iiAoj>i;4Hn9bO`(-
      z+GsEI9<6A{Ia+}ZbT(7GqSN|{)xth9Z*jg{e2q&5GI|e@{pGv)l5&${AGZ(C+x%v*
      zKi<IujF7QPk#`0^==UBa7nq~xH<*5nmmea<KSA&#<oRdJ@h_O?U$M-;;UTSM{yhZS
      z9dcT2f=ywGrf`xp05QMYgx%kSoz$eKqDgCIIPQfQ?!%;2mzmKJPE+)Q&_DANVhpr-
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~8BH5IwgSyKT7$f*^iUwPI<Z3krTMk^n*^DVPZ9i%;9-1{caUZg+|Q$oNP?
      zg`mQti9gCXv(}G?C0SxN*?VX9&fIg(%<T6c$0q=$@Z3O3V0_!&v&}GY8>Z9roY42R
      z7noJo+tHf~ji$5XdRs5_yHFQa0^dNFz;xn>`FbnxZ6}~efpqZJZ51X3O4XzZEQ*?S
      zJvW#Wm?$O>8><O)EjBlG76RQ07m&_DqDR3%MxdA2>9ugTuKf+W-p~U5)uv-NYPRpP
      z-Enp?V1Y{Fds!iZY}lK7w&ze<Ssbh7Fo-J#h6IX9X)6rlszAne9Nmf}tDT2@JYFtk
      z%Y3b=y1wlNM0m%_;W};_xN#P?m>7jy7$9}|6RVq7xQ#pH@bvpYz>L2<uASDXK7?Qp
      z1%-PU{mXYs;LZQ@J@d*eipU!nqn1iqkOE`nxU#}HCWx&Y=v{7`C_}^cw#--cZS4dW
      zYho%)@~I4KvO*_W=LZT8S-EuRv36&UL5$|qQ|A#Rc?q~*xkCkd1aj-m(0BB*%L6eS
      zBVUEd3aAy&)Ba+^ZnZRxhm3|hyY6mzb`bg$Yb6FSyRl@=RsQ))SjZC?Nxvu2*T-W^
      zJBbvJE%~!#&5)I%wYyYqBUdUPLhX~8!bN(g=@4Way|h=nM>qO#iB_N=1DzBf=`>%l
      zS~@`P2$!qnPq<bhW8@ope);Zxpxop*!2LExI^PWO$6IQnLdGgZPK}@Pd!Ldk%+vE5
      z%qZiPhsekyD0z&c{ET_|1q<>kmgNav(pr_L5!j)K(`pB721_($)1(22`Ai4)Xa{zh
      dNk57w&B{nTjxapIQ(C#Wf`;rFMO%@7_9wBip??4X
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL+iuf95Iq~4rb%2{(h@?sLjfny8YEsIQGkY4LW;^mtGqkzDs1a+f-hD17k+|=
      z2#E(ifR93)jeCRgkYH)OGskE4%*>8|{`&p{z;o2{$O)|O`G>xjCMxuTfez9rk~;A^
      zO7F|v^>7gEE8Tx5Kc#YIYp^Txumu*zA)&AP-iO|v3=#obCGtR^-1+-cL!hv&`r1#@
      zND5dx8$|43Bo76=j6JC~17A!R(WF|-=xKSxBxjmRtE43myBG7E?&QXl^jcRyyG&=g
      zxU7Kxi7|q9n>SX3g|dS=EVBD<ty_S=RR@<aW2|cq3Md-ux&sGAfq7oN+)596GTQNb
      zA@8i*83caV^&@5cW6(}Ms#riAaSge&K;=)~=iv$W<-`Sy>s>R0c5-#a?Lis^a#NX1
      zs{a_vH8XJn&U>w8)DHbPmT?}B1l&mnn~gGxjA(AW%2GWy+l|&m2+!Csi$9TB>?FNB
      ztsG|gW<O8;5`A{{oG*yX;WD{d#5@*=e4%f1U#fq@mHLwrji)12>Z>DEzY@2w%y)%a
      zz-uz!P~|O8S;r#UxIwg@#p5Q`%(H}B<GhS@n^<m)-JxaSF6}e^J$e~`mU(9U(kZ`0
      XzJ>e5b9jIi?xq@nhj@(YaSiToY4a5x
      
      literal 0
      HcmV?d00001
      
      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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
      N;(0P?9WKW=`~!}Owy*#I
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%TB^T6g@*LkBWjQi0?;Sphg=LH!2}Uf{6*i7!3<|rA%<3PEBbIewGVk;=&K`
      zql|Y7k|-{)i|L$u&zZUR-1+!?dk1iU%@`sKdu{8{G6P>YrtL~Q@H{SkvnphVH_sf`
      z?g-hs3V6V`YHpLqpfjXHiDSu@dD&=l+h@>)&+i#B)!(TThQzgKNy`sB&Y;~?D56W=
      zBazu>k9#)>5C5kq(rqP@MT<fTzr>I&j25_ECqjXkYNMB_Ndp>Yl1L&$1sAsK2{6nh
      zF@Y#Uik#uK;J(4V8>`_^OPQ)`TTb2bgu;WM?%#<n1M4y5e&(MZzBxx@Hxu@;ul)b+
      z$hdX`&*tYsRgnK<TKj4c49N>AxmR|qZkKmsSYs%RJ8v>W-AIaJ<#^P#(r5_lWRym4
      zD}qzy7NJ;(;<P4U4DlrGK>kh<v(K1DiXyj!BlI_RUXk9}eZlNAAq`nt)oDNlIa+gl
      n7Ut<p^%=;A`Gp_3#bGW^S`ABtBUr{tsG#9sl`4)8D%kh}NPfZf
      
      literal 0
      HcmV?d00001
      
      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
      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
      V!W~fR5|+r!Ked?ey53UF{|}#A+`Iq)
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~pj-6n@@!cL}>hSW3D;rGSccH$azCty-{FkgcoREwBt@t91<V9S9AHlTAAG
      zuQ=Z5g}v#8%#_xTnfBg4;V-fEoP^z_b!QYWlAN5JbDrmU&pG+y*>6t(T)>6~DR6$*
      zx@(oA&~eMQ@7YlhC@(Cp296&%;k_l-x9>RK_FAMOHB}7*4QYXVoa0*FcKOEEuChZ7
      zJp!jXm8zi%tk4exGFA{+_XLK%sJ)!DAkag2O%4-P0nN3V;kpXR9qu^IsX2j}B<Vk~
      z<8q6R=Y&@TmWn4y>_V-yDUe?FzfoC`FdaHx$sq+pM?X#rq>80Y{xYni4>`6*b!g}n
      z7^pd(sz-ZUD%h~LTt(S6-?rRMD{%Pz$eCt^0&^#z$)`^mwH>QjSNn8IMB)}hzosLL
      z9P#yHw^1y0JL+u1+4ih33W!psSlU=w(D0VPWT$C$zY*CxE3Vq330T>;)wiMJdpVqg
      zK}Q>?J^!xKFfB0A>15S))wbm}LMv3qQcM^*oX4DovVhrv__qnuX)NajdM(>l&3FPn
      zKT#)-l)pSLJjBiNx*}bH<%QIcI}16yjY}Hd5h!-$*Cj{CyWIRVe`0y>>$nVRNsI0U
      zfouPpZfoP>O(S+6;6n{G%EKLYFNEm0ijN4}X|GzL)%aL`YXukjkioK!*YO5hD>_Oz
      z&El`=_=M&3L>>#`kDuxo#{_NTK96mu%gK_HQt8m#8OMgUjUte1_)%c1io-*Hrp5Jz
      zA4vSK5zwoir-Ef#_okvHNYP*mO#c(F3(g|V?Ue;g(%7fy${>wAFCP8Sz*`VMX(fSt
      zo|l&1({%M?fTHtcZ9q~cV3^Z~7&ISa$drdDm@|hMIUv8p8M>e1ED2=9U&xAQ=oioN
      zD)|fSgn==fr6*gAEvYu0+Y!R$_?-xt4>3vC$dezDNk2$Ep!lSE4@E+z;)*)k#4M>O
      zxJ?u_7013AGqy=3$IQ0t{eZsTaqi}06rY;xWd4L>-X!~0`s+hX&i~v7OQdMfWiJew
      z#hA<;1D<UI(^Mn^M3xBfp+!`*@I7Ohgf;Ut#vs>xEjhA>82kmZk8qJbkoDdpEMC8l
      z@tI$-MD6?u23a4|`nTdL2jrmt{CCg)ypMdn<DccyNv+BOffrH1Z6dHncYY?Pw#26)
      z`=QAJ49Gl2<sinTfubznk{rfWIf9Bji&Z&_HS*n-WB7{RcjP#B=^4t2Sh$&pI}$#M
      oFYy^_B>f_Wa2<6*Tcb%ztQ2m<_^adtO%<&M?fp8%Bpqt}4W+EQF8}}l
      
      literal 0
      HcmV?d00001
      
      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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
      M$0*>v4C(Lx7lA-@n*aa+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>&raJw5XQd=NsQ7^C=i;`QvQ?!1XRPBKNm_Rs;CE`zAt7K7CCEVuYot=IVx3+
      z#G&V^577tVfS7SCpb;E;nc3N$?>FD>{<*#W1z;Tu9!doNRGlk7b0+e`*oIk>XzToa
      zeX2vJk9RM1$Y-(Ly$to4EIgD6)43>8w&U+-)|sxpKPQZ(Ix#8=bdqxax4lmU`a&4l
      ziEZkXb%Ba9UAg)F_eX%ASA^=OvBqr^hL)BCLU|`X)-?>_WgRuVAdI$+)nBvjkxmZP
      zQKSju?KtECipOwWY?j@LNeS!i|Gdx!p|R8#<rg||iLsrH<v=_%#KQ!^>*_RBoqYDg
      z-HTR2>j}Uk<l#vYUx?L$IxW;Dp%SVrWoF~aUPALRb`UZvkQqYlAkLCde>U<mv(JCr
      zNAZn$@H_MO^B<yuDrb+Y5{6OcHNQ8<I`8<LiF2jZ!^ro%Wt5``fF{N`*82^3g>kM#
      zJi$@K+YBsmuC`Wsn0!#z^4$+ScrhnT^}7m!(5LX48NzB7tUb0XhP~FxY7cJ)VLpr2
      ra@btI?H=Y8FqYyi-tj2G&J@^xEWRJ4ZnDL#XDkX!EY7j166Ws!@|UW7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fu?oUK5JYFACTgW0V6TM+>ohisg`h;Szg!kgIPT!ciQi`72l!Fq#S}uoW?6P-
      zc(bqf;|XAiL4<%XFU3v7t}0Y4jh4<@)>WKx$+F^neP`)4qqjomifx20Vf2kCp)c`1
      zt9^vAZ3hUe>F#Gtoz@~#oHVyK?{u{+@`Ev|AsU;^&V=F7I4gNmC?-t)m0Hx8kU;48
      Q#{lvjdkE_dk)HwjA6jfmivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYy$ZrW5QJyr&l&&G($Yp7gRPO2R)Sz8rErEr62b{b&WE$`0emR&%n>4Lv$qVp
      z-_G3QdAkExV!+@KrYXO2Pv=SI#TOZCrG(7Ay_S-nGO^LQR)V2U7#4#WmuGKxN=2MA
      zGzp_hEq54Ngvnp5#Sv;sOH*g_h|mr%TE$|MWP&g*A$D@{rV!jPIZOU_LO8CY)wVin
      tt@y#O^r4hc-)i4s?XC48@&n&QGREMb0cL)QOmG)%(>drAwToWy_Ft}HU5Wqz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-yKcfj5S%pu^ClmV4hoQ>SZQNKNreQ8BZ_p#c|{JL&eGva$B$9)0en=H!&Vvt
      zX?9nm+1;5r{~S*MUNHy}5T1A9TSP8bI+B@@&RRBk^zMui8_kLQ;?!wQ=Pq}aLp%^3
      ziw!NzHd=0WEb|Zz!tmcaf9p-c=q9o9h|pI16<d|1N)l@0$)|^s%vs5ErJ3+_N8-!n
      zJfW4Stq~W^gu`_Gwy27ZXV*}P+{>c$F#TA^v-mc%Vxpw_Y`g&ks3Y{blTWaPwx0rY
      KirPi5=>1>(HhxP0
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIj%SyvQ6unccY3tj9J9jQr(BRgDfT&rBAT+gZ6rD~k?UZo>=}f6#;6J(W1N<m)
      zlC-gefSYtNi!+yd?&I9^{qy++0O!!Qphn<yL?_hNiVK@XlIb``sqBCaG1LOXn<+A_
      zqBy{K!WmjnC$N*I2r38meSd^ZS+GXnu#~8fPoOcLQ4@GNy8C15Xenu5pmUpj7CY+l
      zH++y>ImhMkyklQ09iu~_8SsIm2_W#Y#8U2wXQ~Zm6^eadQ6Z|G>%;9`EG#aQ!14a6
      z?{<5RSJ84aE&}bjmY2%sQw%#)nO#4Z@47NwUzf?BiMc-??2)TsI@&b~`c9w~L^@{Z
      zb72NO$ZxK2<!8xR8%q#aF>lqlt!`{%LBpV?K{aTlcs<7(25-Vvj<*w=En*YdO*8j?
      E0q<!!qyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuty9&ZU5S;aO#s^r~X=!b+^~6f71dE9Md09-tae<H%{51<dz>gARVinWuF0-?{
      zGy8f!o&Z)D3$zG}MBS9{^4Rz~wc2GF+uRRy#Gx}B?p^LO7U&QrCDSN-^^cc?buQ2&
      z%p2!-Y}B1Yfj(i@$fy<*20`jF&HLCeVOqPp{Eia5Aii4l6+(zM=k=kkL~j3~3aK0W
      g36ss;O4R0bmRnhPBec;%7ozwVipneF0K+nmK3XtjO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`HTTc@~6vzLwv@Bh=v{t}77X@vL(iTzFB8G4=B#0LXCcZ7(kuEH=$#$3Eck)3K
      z!OMg3*$-trv)yjj+7L}>GrKc$W_~@F|LM<P-@XH=;E4)_VP?-bG)lf_*(K8vrti93
      zc%@CV&TGESYg=`f8?_gXW3L=>)At;AqM{<fkPYtHhS)7V-`V4)r=pi3*QTv`+%@Pt
      zgJO9MgX@2rstl=3YgZVa?{bFaE=T5LdollB`9c^wHjn&V^(CXaK*(ONZZ#$<3`^bb
      zMt8czw#;qg9k0E1-2In6_qoK)Tf*`d7*_LVz$<JsB$k{SPl4f_j(+GGdT?Gx8iNcy
      z`NFn_VO&&kfnl+ovRLf@<G+qexJ+3#Op`Y#DP@MYXA(yDR0Qd3CQidujHtNAFxoYW
      z_E8<97-Q(OBEbyj3o(96NL87#>pE2QF=W;)!8iPa9qw*PA&~Ue9n-M44cC(Ea5Evb
      zz%U!b{bMF8RC={;G&cAVsh8^VrXNWZb=*RpN+^Qu$kCt=TB5AVlhZn;P$J#8Vu`g%
      zRRzhj*(-nCB(=Hxz&YfSFsow*gBk^WU$Sm9Xq%4jntaug@s6FMgK3#^27OHk?k?Fz
      zqrn?0D57%LTAV_nM(^wihOjB)5ycYRs#p9}lp5KfnH6E$PQwzr&$w52YA92TJv5R~
      z=u7pbd5Zp{6lmG3Y!R9#X{0egmJH3F1}A}`;?yy+#m~qUr@mn51XqqR{xP_EgPsF~
      zg#;^mNGbc6pp{N*x`;{K3~W@-5IRe5Y14|IF#Z(<hWE5mAW6N_qS!Hl77?g6Az>~g
      zq??303_no*&;dD!LDCU~N*zKv+_=lo4yfsdh!H|JvWrq~Az?CfBUwDby^fzJlgxrb
      hBZ0YK_5cs*ouj>BJi<Jr<m4w87U3}#Xq6!A$ZuX4j|Tt%
      
      literal 0
      HcmV?d00001
      
      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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
      R@9`s%;BETNPh1B7>0hCV2qgdj
      
      literal 0
      HcmV?d00001
      
      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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
      Ct{;y8
      
      literal 0
      HcmV?d00001
      
      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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
      Lyl&$4zwrDYdxoLn
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O-~b16g{t<>CifS2vmXkf%4T>pelw9hJ;{9YAT5-vT$MYXrFXUJA-d#Oo;!(
      z#2A<ENYo7&7cO16)r9!%k8rJ?=@epI$YN&Rz3<$6&bjZ+yI-&00JwxJ77_we_v8av
      z3InHEs(EfL)LOYgsj6CXtKn%iz9Jo6-F9mh41uvDz!6ZO&sW-!&2^=H$8&F$uL+3j
      z0^Q4=>j%;e)@3tPX71;mhkH*Sy%0!UbzCP{6fpAT!a6_8UR`C7M30ROjtTTu99OM|
      ztqrBu<VI5o^jEwZ86<facalcXaD0J6<p`ArmKFr8Eu~vdz$#Iu@IY@b)$WImR@H{o
      zsvb)!XE1~j3&TXTTQ{Y<Sz2poCF?eFI7M%r!No~|!F)%>U(kgN1kTtv8x;(0s$j*@
      zesD8Xp{mDq5#XGS^B5E8BA^<`fM%2V0woAc*qFo=&DXrv7UeCu_39zW%$LiB+pLqZ
      z0a~&;qM~vAtDD}<yAi)Ynis%n#&b<;9z0LO-4w`Fy-?TGiW3dI=kP|%My&+wvg<0n
      z+?2krd<&Op?f+w^w1dIpBHbi;2?a)ABE_%8D1k0Mh|ZiDo2x~}Q6^Q)?V<Z+8`IlH
      zMA`SO{eV8MPQ)l2M?WLtF@Qn#Fp%Y5-0L|RQ{0<-g_AdmyEwf%^A?$z>1Qw#JB&x?
      zjjWNY&zo8E33`fIBWvzr{PFMothvLo1R~-|r1{=w<Bwc@BHd>aeW8u77{xbC;5*Iz
      zXp35m=?+EBA>R>ILIFi~O!Iw#Pm=Y+nC7m*E(4h1%H;lRo43S{(NK6t`Pa^2=nv_z
      B+vflP
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%`OB%5Xb+u){d<8wOHR@;ed$c;($nGMKZE+S@zyW%eKt+tezQ(H}DWH?k+AQ
      z4o)QE5j=p$5Y;<^L~xi?SM{&{_3xVJx4U})%b0SIBFrC)Q&Ef~<rlp`d$BQ6N5zV)
      zi$*Ola%MNsM?#s(nf4r{3Df`Z79@0s(kS6qr3qD__uVZ5?GQRjfes^~qpI*@+4^!(
      zUAZirzY;R*N~>stke+qtsvJteq0FKMojGLDPUtEtEqCMkfi!#Kz?X!4Iq-Ob;5nRs
      z6w^^ng@lFjKQ6z$YK`DDq^YZj8_8wwkvZG+PGV(br6!C#OkBBH5C(G?LV+-#leO&q
      zK-)yp%3|3{5F1Z!D{Hs&bES*c8zJXvEltT6VJJff6NK@<O%vL`*~SvvY2hD97)C2H
      z939S5XyXrdX<W(iX@hfH$;^-3qT{;BbTtWEec;|lbn~f@Q0PIPGv?8YKGsO1pYIZ_
      l)i13Z3|ujlg4MFqfu~<|hMPJmj5PUCjB&Kf<QHQSgYU<nmbm}`
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>NpI6Y6#ga)X+oNYw3O1MP-uZRK*Lrp6r`#MDX2n)K!rHrIzwwn>@c<w<;s-{
      zAR!^P6L4X@w1@)|SN;nJ#2xs?HV#OL96U2`-h1Ej?0ot0@e_c9IGRC1VC<@K!>IY5
      z)vB3}ZTd<{+p9HX+vuz~N{%;HZ8L+E!1O;8TaJ0nt<5gEo-$1DtS^1p)Fms*v8`KD
      z2^3waETgq3m1{Znh5AVWaay2v&aqw3u)Rg2<;!&Oj(_{JvA$Vg!;EEH-U)%!M169R
      z%be4cIV4fYBZoeL<izA+4g#C<C}E>Ok1M@~XLwSeZ{D)y8Na<G)p=v7#Yk!1F$r#v
      z0?$z}<*it*z^?g!O8Q&-F@a1+s<!2^LevFv%hFr;9Uzyw=2FRH1jFRQ%ZSSs+p(`0
      zmO8IiXU*%rrDS8pP_h{c3#xYHu@hq?X*%r=?`G|0Bd$+R)a#R%*wP5A37_SttX3#2
      zt2iP$WiQiWPpzJlEor!aVd!ENhBfyNO((u@%9wsGID4E66Ee~8Nzj%zJ%M~v5uuyh
      zaC~LTQ<nC%5W6&`O=NQ2wxybD8Llhc42}qF`@g${(JxABl=db0LJABcjSXBgJSEV>
      zJvi}=jO4jH#aKc|s_W>jme){xALRA(SqM7ZMGE(j#eEDgHW+4OGk5xz!xjv&R}ou@
      z6!xrf6}(GV*HC`NO#-@|CILJM+T_E8s7(>uu$>W2s6)^c*CAbeyi#tS7<q(zwKB4X
      z(T6|3j&%DCQW)@v&&Q<q1ig4lQqO|^)v!lQa|q)B%`}<p;x568KJ4Z$$^1Q-h|n*x
      zPTN)r(5sb7`Er2!J=MhxZFx@I7nJ=nz#9##V!RS2BfMTz1H2;k#-=Yv8vA37zx93V
      zx?c(;ye7;Wl6}js^4%ZO`eUem?2DiZ*dIV;Ih85ylB8FQr?SAap7ekQohd)0spVuK
      t?%N+j3dOAvb)ASG0>p6U0}*1H#%UbEZU@*e!9Tr2T=fSla2V66o?m59`HcVo
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma))-)a*<6vn^FCfPJiZL4jqT5YtgBwjR#cw<AP)D;3DA}NJ>H(7^d%Vsvr&X(q#
      zyz#1_p!Yt82!anGp4l~KlYr!6=KNviH|KnFzWx661;A50wvl0YcEK-sEz+J}a|7u{
      zN(rfJoso3=Dv&`GzKujA_MO2{kD6L2t^;Kw%di$-^ttTS-gGa7t8L^NZccFH(+v5#
      zCq3O@uqxFvhU`i3UKC+rxda;phSioQMLQaFg*xS3Ul67hxZFSE$}{obWLEdRkl}f2
      z^2Wj?A2DoAGe^TQ_vK>1`l)l&IGhq9P7&Jf^RO+hbll-P>QKhPMx~mdQ!3HvrH<E=
      zTt|u;%~h&|wQ+}`JZY;PbRxI!_+mhx;as_5sJ%cIv5jR?Q;9)vDQw(l*qwYr)AvP>
      z`yI`-NL|@6SBjk=Qm%OI8ErRbKlji;7)nhkg*x$h7>dxw9>c+;qW=iZurehI!*Sht
      zG2eJ&K9v%FJS~Z&D1)@5m7`J3(xN$`Xo<XIvW#r*$u)`}$+1wPJ#UiMcdU?KN)F%#
      zRw-JW%B)jF^MzZq8(f2|!DXxuw5M4=Qmo7z%VZMP1~!qwmSNy_%zQ<jVHQ4P`}`Vr
      wzs`_<rpSdkvdJXmd;gkF5qF6AV3zo6A)<xdxXLmfk}bxaKf*q}l2m{22lo5veE<Le
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%Sr=55UkEqV`5@7J|cn#1@+(()Keq}BY{W|BpT1-I+~Gn24;5z|G_Wt4?KEO
      zJoo{Eza;jq63|mFQ(aAWS9i_F*V{XQ2A1<k5q56Go$y?w0?#+vch*WBdHs9s53SM0
      zg(prrxz<rv=3J;KVR>W--gu3pCPF2YR*7IBZK#Ys>mCy5h)`-99Y#V&0}(ix{d`?{
      zc-n0}5_0=WtEfdtZ)^?-nYOu<1*9=uL;+KTa!+Y_>~1flJrx&$BvgCGX92-7%zu-a
      zXsANMUT?gG|6JN66#B+lUv^Y1Q2TGpc080&>}oA-I}l+g!#oxU>tm_$^?&pTlYMoq
      zMdU22HO5?d<Z%<LV7vHx33X(VW6U#4VS*#XwlNkt@)+YxcIySD=cJ^}Z`^>)0V*69
      ce+n>zDzh|Zld3t?7z;`JJQjKIQj)KK0}ME$PXGV_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3Jxc>Y5Pf43qi14b{MN=oK`lIjScnpfh@b>PqOsnbt64dBVfR+>e~5+u!b-64
      z2MGQpaqbi$R@dyCH_XhNdHeD8_70$l<uXPH+qdFggg#Mm7#SUTYo$)Y?t_j7)@bA1
      znU`L!cGR`G6e`JB8AU>vuko*mP<PTQ5%;8Z%IJ&ZLjs);s%@iPB6QLdv6rRK$EW9A
      z*Lo(5?kla57NM}d(IXVw=1K-AV6uV$6NFkvX?g1J`qG|@ek=)%j)_=6unhCxWHA{i
      zN7(7)TX^WwJwnhm-bV6Br2@16joC_v5-P`9OWTfxbJCSDPgu*P#@7$&5yrdfMvKH-
      zR%_;5`Oo7$tbpy}?<Fjugi*#avk{DOgw!_13P&Mhnkj9*qWY4R)c8#sP&`1L<H}C~
      ZrqEzkz;sqMgIUHPYoEgc4_?gjOW%3oqmTdq
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtW-EJF26#izN*lT;6w5D;k^oIZmwVe{Tl>VenLxMvgQk1GV1d$7*$$FA(wcd?(
      z*Dc`*c!j<|uX@u$3+hE5pfA#^0uq(V1t8AME*mFoX=G$+=j_a!?|kQ*b7uYYug6aS
      zoWo)c8pHHWev8+;q3zTy&$YU~FWj)++HtKd-*dfgaHA`_VtmEtZm=Qz=<UX`*A_Vp
      zFdSCy4tF=}*Vk_fD`XgO#WyrGmik6+5QrU$4nrvd>A|P9>}^h~{@&G<Eno1qT(yG*
      z9&!e@#!!@8zSwSawSPLD5)ZwOZPn-1@VTHYg=>jxws6|9E5YVl_NL3jt}htw_lq-=
      z?)cwoPbszgk~4OlCH_SzXrjb-=|o<y#Q)Er_beqbea3QZ*A8bHGL`Bo9etCEOUGaV
      zCf>~97{jI1N_st61IKZKq2P+!N#<T9N?p-tIy?wsWz#2Gp>MmJjcUJoHS%CMW#ABo
      zbmZjA+Xjwch+%licExhHvo8D<zV1+2m6kk<JFDEc<$FAtor%RM_Y#kKt+7^JEg*x_
      z2F7tzf>#aXpi67gKoJJ18E)ADL(byCvg*s77^k0>@2d#Mqx!9`Nm^$O3?eI!_5%aw
      z@gc(@%j;}&U(CDhmY{oMIwjAZBa1Wt_e_=AJ!5sY>3NGg4CTFQ?ri^~XkSUhofHYV
      zsP3lI2O=tI<wJj`$>~lZS|cf5vg(U=5N&ZpTXll;vxDm!8%uUTvJ_fg*O#}Ftdx=c
      zH^!9g5C&t>b%n30S_C;PFq}_qo&D~6ulF3TF-#oDk&bWAmw{nWoi@(WS!d`olf|4o
      zaI)rPWvVfc0*!}debQ*k-k{yXWNS2Q%JxX!OUmmF9Hp5N+Oeomfny~`zw%EQ{T?UD
      z%9P$x_Sk&|^A0`B6d3FUvg|i%gg;SYf52qV@UGfH4{Dl;81^d)E$I%|e#CpV$%m-a
      zPCP_y7p#N<0((xMyq}S0zfc4Js({8KH=I#95`f~%B$UceBkO%k#bLfB6dA^>{eb%9
      zT^xCUleNh+k8th|1_$nC?$KHXlKha|$6i8bzhjg}Nji#UCb3Lhpr|sIiHl@uxI}iD
      zMmci<my@;2YHk`=Vjf@j@Tf#Q#`g2jc6kt>PJb0fX?ztAJ&C2OSPjg?v6>W1GAcd*
      z#i&uPU+&6UkV~45f|gg%5&2@0Vv*8_ps!*!2E0f<GHHWEtkmu%!bOCYAey1jjA&ni
      k_E9QE{S_D^DHs~&D6)omd`x4BtR_CerzAHc>ob^t12HgKi~s-t
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV&u<$=7=2?qv14zW)-;I=Eu?MQ#&(Dch8E)x5(0rhl2ROk)Z1n~B-_}#)_UC#
      z{u55zddj7RLdAh22(EwxQaQk#pF-TIcr&{=c4|>%WNBx1X218n?|nb~<-Jcn1@Hu}
      z#1RoFT{Ewng_dvE3YP0wEzgsVU#RRl)|TfwZmW5vC0lZ0%`=_m+tRD}rnNm$S#_&2
      zj+np^ZC*2-&BEo4Ytr%sVvc-=OL@6(<g&m(-Sn+3fx#Wq_N6C~4&bz>wJlGYRelxY
      zUA_A*V4?2n<R~DP1X7C8n~kcekxIRZnZ8@Mt-`!s-jIw{I+k3tWvv>T5_G6yZ#t&m
      z@`!x1U!0lVhX1blwAQ>YQA5*N@;9`sZ7C8nR?T*7e^wwmnO&!73luGZfh00`IF922
      zmwIOL!D1PB1SbTNj@)Uxb0<5JxKJ~j%`hIF)%y-AzGpj|<!o=c9!#M;1c65l9L8`0
      zarJV_KpMjW!^^fKS6lTB>8+U?H6}B?>{@1R-Slkr9v%+PgyM{J5)UgZyPiZ8=M7BY
      zn8MB)NFqfE{VlsG5Vy?cs&0hc(72x->nq<udzQ0T6|HFl0~l2KykM~DpA<M`x%GzW
      z$$6(*k!;jbkKj7;6oz~MN%ktM#;P~?yl&P6M!O~4ZTur+UqOULE0FNL-IZV%%>ExG
      z138{G5XYbrX2w7QLrKhHE{^8~&h;$xnrm%03yf^L(rPqZ&o?lS7dV$%4mI2s=qinH
      zFsV)wtO2pZi9z}cCMO9MO4-d|Ta#7Yaa1r_aa*36GpY(l4$gpSMT%{^<T%pP4I-Oy
      zEDIESvOQ?tJ+|Xm6*&8!3|S>z6Q2WF&mUZ%a#8+$#4)Gpin}=_s9q^2SEx47tARsY
      zGphe+b%gr}j`E!?*zrEdG(3c3JQ?8^OBx+Go)-L#-oe-hIH~uK>HYXk4Re~$Q4#>Y
      zqw{ZJ;77v#K=3bcMt{KvJM(M^yGYj&o+NW0<6JI(8<YDuhqcSE5X09D;2Ui}8hnkM
      z4o!umf)Yf?V=BaamljHjOg{G^9>0O3w{S9-pZW-e_b?FKi|+9*3dJ<=aF>C8k1^cU
      z9>xRPwucOg^rbvx@Dz6uJk5Q;L)~3$-(A$)F5#Jw$NM3VB59O9$C+Cg&xyRIF~+0v
      z%G75ta^g11Q+M!OY)^fbzj1)#X_5neVlIDXHhv+AUvUDz;S_$Sh=1Tb{_LP#Y|}1c
      zLDSAKr!P{zfVQE@s=I*pOYQuYNLB@z(kydi`PP0Wk~*@#sP#SVEPzS1oh{<!FlMEJ
      rf-zJux&2@wT5qkR5FHpsh!Mdnw2H9IUgetR?lr97GQ$<zy^hS^jQ~t?
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG6r9(_CdO!MwVpjFq#lfVt#~O2N>HSw2XCABv|Hi^Hd(<>@N+x~9{d15
      zO5CIcMK5~TnSJx#K4$0r<Mj=|A+}sJ2nRFqAR<%BEJ|~g8m(EC(dbd7Q=O~a6jz1~
      z?~Juj#Vu>rE*wIqew7Jz7hNVZPD?`TSSneb5Sn3sLU4xp4f|+fIlvNHgmx?yUzq!Z
      z^;jes6S{GpifkgZtm=j6lv7y{j^h9N8W6m4;gS%B^9A254zADpzeR#S%8gF>R92pP
      zKYzYo`5**mO0gbhqA0j<u}RqdlR>-wD>`QzHXa*3(6GnGVr$plBFj`MdoS>w>$Y#P
      hY6DMLu^7w;EUy9%u!eR$*Qs$GUCVyGW&=IP`vlhreZ&9&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-5Pj38NgJcBwe{>lK|Q$itn^Y4grZ2Ko;Pu^TjDNkvV#6APl5-3fImu{
      zq~gJo9%kn8cHf(ikI%Pv02Ay+Xc5FpK1$&$U5MP8+&iaCCDJF8FP$~km)Bl-wSOyh
      z)u0FgVbF*QY3{{Uwo-W&Ata0%R$GxOr)8m^WmYIcc&3f6riAw4(Si`n?463y#zuk&
      zT|$4Zjk@#?nQ}L4#c*zOSu7;Gu){YQR7+hFCi8y|d`gH@>s_wSbv@4b_iiV(AtAXi
      zM!8ub%TkpQMudYubt3eBj)Oh$nj9UzFmdpLTziZJ*P7`ZzaoBN&_cpFtjS=CO~%Rk
      V1Gdm_-Um(I#*k~=$agSC_Y2eGaw`A;
      
      literal 0
      HcmV?d00001
      
      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
      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
      Bq!R!D
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      wuHgLAqU2P!%$!t41|bxi^gw2?F)}bRFaw>)z`zK!n3aJI#A09vl1vO709DpBU;qFB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U279T6g@Xzn{3jiiK+3U_5%t{3c85&DIzVUK_O^~A<)O!&CpEP&Xmcn#GmC;
      zKtbRAQR3ZA1u={CVeXwfbI-YV&fK5BzJ3Sr5_=AEgjX~1NqBLjLN72nh^>`6@<vlD
      z#pKeM@M0l@I5PI|%r`c=G@%MUJ17vgQeY_bwfDiF$slr2B0SHe8_Fa>PF7^f=(j>o
      zLTL%5*GjAC4I$s@jtPZxGm$RxsMg@1OsEf(mha;mU)quILrG{3Od!Isuquh~4hzv#
      z%?T%i%<}(#O^?v9|29ZC?X1Ys7Y<{slXAWL7U*@y4jvG^%!bzVxL5@8Hez91G*KlG
      zOVi4#&sVHL_ug#~+>a)<f$Xb9y!N^jFOm)kwRc)edmf7UT+SUlBOGP6zD_`>{xuso
      z0DmU0A`e-PJ%1zH3P&D$VqZL7!u^t7*VvYl!%`I+ysxbiu!%ZHJY;CFO~8F7%d;<k
      xL-T5h)(_t2IR6j6mE!kTId^!@#x@?NoMp7}h!HtFPLWUWl)cM$gdOan@*Bg(&@%u4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IvK`F>&4WLTSsrKoJc$i?@nY6;cEODT1nv^1$21UXiVqU1@D|`4#?x
      z7Z82m1Na_ZTQTdjs#Nlj2hVtRX3m^Fvwu#Gegk-h`ypzC?L+ZNBxRv=l3J6N&Ph`w
      zgRzq$+p|``{36q`ux_&_w3cqaH2I#@D*YOwL0GK1wJ;x&ccVj@79pC1CsQ%^r7w`#
      z1W{S@T9}L>3C$g4RIy8_Z*_)*M$cw4LLGB4LR=y&^p%ls%a0@J24bWoVYzQpp@+gL
      zAD<pJim}QG&-+uy&v2zKVaZ)&NqDg}L9DLH0vJEDJL{BgXBgo!u7p@2JeZMMj8&`=
      zB9$ME%ObO%O(o9zIb6l{5Z73NbLGz{#kk?ss=Jb_iFI9>#+y?tU}t9f%;Lb7E|ss8
      zSAOk(9iMtCg!qjy()F~+bIEI1y!c>n2TYE?fS+HDJ@1xni=%`+u@4^pMD)E%$84Ma
      zF!+mk{*NaGXk&pRhQ|_H-#lPnXWxGO1Iypgdh`qHgmaX(&j!Z`gA>d*QK4;2I!@8J
      e7dLUMn$X5=Y%skV)Acm(;vV~mbHrQRMC%`rL)A6_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95IviucIz5S($H|HEu~G`v=I_-=28eCDn+!kRgiew*sEmAvWwO>mtWy8
      zcqxJhK7fxxjGZDbHBuft<Jp}#b2+o$e|-H0;1;%Alo)~|{+4&rM5<0`beLKzbkaE-
      zS;3<{W7OmKB1{uwS02eY<Tlz>k%*H$qh$EOMTOy94xqRmc6J9xB1~L344Z|p`yz7?
      z(HK-3{gmrS3CrNzky<AA7|P97pP|w<k?>H)tPdB{40AoH#k2JFK-fb*P=cY>Ga*-f
      zZe?bl99EK%j2Z6s3e!*4RlrcS{}#%y-5i7Fo$jYvXK8~;69uilhk2ZLQD<12usR<L
      zXfSv(J{YA*WZvm~J})z*i#{&lGQ;#xB+pZk(nMC9t>SVXDigkvdYJnKv$%@uF0L^w
      z7uNBYw~s|E5g%`iQVjK98UCO<$f~*FV+A)ET#>H}71JmjSH>+Py6Z)=q$>*iPY<WL
      zBc8kiliE-`k=a5tPP=Sn4KnyUS_|7%JdOoz$9%ymV+k}{`lje@lt|Ook(?o`Lz<DE
      zTK^31Q-1A}bh1O|HqOw$KX$-b%#lTJ0#%Y(Fek7w=|=k)wU4Ngy6^>87+$nDj<Nh3
      zu7(Q1-G}RJqv|}sg44~R7sufz&;*24tmWw%Xre{%C9G3|5;o8#?a>{zh)vA=1oF@Y
      A`2YX_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-lnY5Pj3uuC1-L_50(XAlM4Jcn}X275qS<sA%z??gpE(W+A&P`m;O<9{d6R
      zC~>muMJ?DvW->E*Z}Kwv_<VZ@u!9u`Il}HhJPJ37Rp5G|_7Y>Hj@@qGNa0_HVQ~5+
      zy(A9J`iY7>VK^5k@7Y0tFqJ|Bq3_+R-avY>gCb#TDB+E?2c)0TsZgH_?FZ5jiu+2d
      z_<)daw(bap<ItC7<S|i!gK<KwqqMwC9(vMrMK6$qMkn+{a3_qi@prNi_f<sL>kMuG
      zpPn|MZhl{paMaA`QjIr>*0y1L)D~^4hgjmwFcvPcme$B*gz{~e7*C!l`v~)YC2d>j
      zgvy21(i{gOie%(qiLf!^n-Ho$ri?Z4Sa^-`hsm+$fv_!c<gzFBW1Fuizog{~+oDYt
      zS5f7CB|Csg)Hverf;w9ZKIE0Rx!=HM3S7;K-#`m(U^*q^r^GDZB!@YM=P-{2_GPXS
      I7O{-d7aO3xIRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7SyLQU6#njIhJm3W1lgCwAPBPvgkV%iA_++pGmr#u0;thu<^mmtZtUp^;8NwA
      zmP`4hRk5@Zx56bpP{QC+1}&FV`CI$}J{iyHSuzwnP+dLu_PJ;K&iT%rzyJH`4uGSW
      z_dyDDUDL1Y-6_XNbjK_+ma=VSI^7fVw$kI5EGuztMa5E%Ww%|i>;+}};1Q^FZ4$aU
      z*L`v3nu<9-6bn?{myV@OQ=dsF0iT^RBUWrdAQ;&*Qi2YX-D8TP+Pdkm?tnn)tYIge
      z2|Y=M)fq!KT+T76RK%>srG#=+oYj&7;u(Qr$4#7)DKN@_Arm?^l5IT#fxUCtjhc;4
      z7^dNz5*X~<w^c##e8z#OfM>{xt5OKmXgGjMKZ;PN;UMY-iaG;P9~uQZ_gf}E8c@g1
      zS~U1j!n?y7O5qnc5HU<Onp&Ju_C%%+Ra96#5!G#jzq3LQ*F&IZzqqm-prVu*$<r~%
      zxK16W#HTrx4h@}XcaOM<Do$w_rlV{-wd4%X4#yLU)j}G=tmbp<Ro3IQyEK%e!jB&G
      z`fzjyzcMY+aExnIn)k<^9@TK1rNt>TL5>8p{PC!@oS|NZL3P>A?W9m3%3cOEoM0~=
      z_ECyc81&&ufsQ@9u$v$nPU8%LCYp~sx<mC4!wlrChI0(FET5B#`^o!L8lJ|mK>3WC
      zwQQA{F0u*~rkEw{-YhDE7Z)@{T+&cj_ByKJA}&z{^jRu+-f6hdX`YA$ZYhwp%!C*S
      zM7a@T8p@#gFd@*mW11afk#dcxCC9K#Dwg9;W)V#+0iG6+YDJ*Az%xbLVKd+-_s?l~
      z98Yk<FKD=m7pX^cDm&%1o!Oz>*(6rhHOwF;;9qvHptF`q1v|FyY0R;f2hcxmrR<nG
      zZ}8nzx4WJ0ZAf(-Hce#@CG=!c(SQ_Z?mj$77>eli(o@AVNB5}YiKBIpD@QAs%0Oi$
      z4>)}l(|eG#1s<T?G}#x?+87LNqB^*R+ThP<nA$?qCYpocO&nUMQ%R9PHXho(4zGL_
      zrE(tC@--YGc`coj2ejfLT6xDAu&fR3**Lwl3X+rrH_)8M!?$Ul@mkDs`G)IB%jo1i
      z1yD~C&hr&oInP$MkA%_)-atL=A4#Ko4gL|5^o6(icbzmf%BeOVp_S_*-=w_Xf+pWa
      zt$YV{@?A8^_s~M?5&3=rj@E2+FIwD+a@LRK^Egi4b2vEm{pz@g<p=P|5BI<#nP_B5
      zSVV}r#a&osEF<AG`e{?Wfs@{wX!-#|H&Bxk+=4#~vgj1c_=7;65B&)GbMd&ckVs=B
      zIJJSxeti>{*KoMs)AA9@SwGa^p~D8xcE6Y6^fh?5d0D5@_v2YiVw_sFKu@k2QPj}(
      zV=C1r)Z$yz;!n{iKSR6x9AWtdy5yJWmunc5U*U}W8W-d@n3UgQTHeN0`5orvIu_*j
      zSd<%hS#H9ibw#G#g7gt=0-bN}DrLY!=!N4JTA~Xl5ycg1^fXa)5>rGt!52%WaJWf%
      zGYJL=+M!5L5Id>&!O#|_MI?0h-oFevjpwH#cklhPhKdpX4yN%^cssXab^smp<REv^
      zoIw6Ukng}Rw^1&CMV0)Gpl_o?{*F%h2YTe6=%uw^{#C$~fjm=Mvrr`Bu3v>&S{a<6
      I>tYV_e`|*Y6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      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
      RuZ>Fan<T$9D%FF6{{~vK5zYVr
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!OK%cU6vzLU$M7gfMM9%#Gp(%(MPBu>5Mzj~tq`CKYU6e~+_cvWGs!#}{RVDL
      zT)FZC=)#Q}7k+?#5<h|~<C)7y8bE+B_wv8z{N~I#f4KPb<0pVRc47!IsIRnht?IeL
      zsOpxfd$!F@w|XRo{Dmppt$GX*hPAmt49a6c!A}_Sg^mn0H1o9DcWq&wHd@7FhRCip
      z;7Np$NFj<O!-H9oqvZb;)9^u=jxc%88=i3cNINk&L$+h-nsKbz!v7wK5%)|u3>))_
      zTlEG*%(Z%&X;E~f&@Q$a*nmE?#$Br`blY;G)GvC4e+8Ohh(OCcZ89WWtIw%<gOS+y
      zZ~-ZHh3UCmis|16FG-|ZJ-0mDm%{tC?;lB0Tx(Bz<14-Q?+)Py5$c@VF2iP_J-_}&
      zvF-P?kU|E_RJ2F)T#&)A#9!;&ae`-#7TWD%i*kny$vzdQ^L^pBHT};66@Q`(sg`MS
      zd)Lq$hf}XI&rIF092#(!yJyy*S)<a!vQJ66MxpqRLc52ENIkw?T4mo5|3X>_OLR@r
      z3X~{{=(J1G3dE7d6<X;QSROM%k`Yor)5$2?=L2_TW?qs)L8c#Z6<IoGxHe`y3hGeQ
      z9CE`+PWci?8FQ2|CqI+3GR3JZ;9Q@{xiQ75F5s-r<g86`Y702(OwRfgr@nx5b0%kV
      zinFtTa|^eFneWlWBQ#;9tbWCv$$8zAoOS7n>3LBWirAK?CGyC~i3g<mKjnnFk;97M
      qZ$C|#>HZ~XVr+s$U;;`+nQRrNcSUAaQKK~}jYgYhmi|>Sve{o<4$6-J
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!%~BIV5Xb+Mk4?yjAVyRq1d5a<AVg835`>hXC2Qak<m|GUg0VKcRl6GspFr;%
      zz3NR5Uexm7$&(MD58%Z&@MhUFSyL$zNvg6v)6@N%{@VTa=kpf;H&Bit#E^St92%vT
      zFRYU3*k;Rhx$T#BM3X<Ug`Z!HA;OS7)rdh`5oEl|FjlB3Q_HaTOLgBB_I_ovxXTb(
      zcN#o_FosfyBEhiK&$8|OzhEj7G+Yxl-)=ScxVvNQS)5_C=9q@HYq&!017*ZN5FW$y
      z>BRhEg(2oU+lK9sb)=vd^(YmGe&JtHOnrUz=4btP0+d(^7jTh*9Z|LgT_;1@H0Vz<
      z?mJt;bR|M9Elb`#<U4gvHEnop<naBfQf>*m<@2^OeEfpo6u~2><+fGdk6)8Y^PLUj
      zxzc2^Kb}e>LLG9~XP7DIr>9jZ>ax_=Qn-u}3b93P9^k={<VPm=yr2|O%CWdfzD<Ti
      zoq{v@Lm{i3{x=#6ve68wP21+~x@CACr=*7;*rw%p)b}m!A2^NbbqYPKDw?2Y6q-zh
      zR%Jw#K0Z4)!9F7Xo^&B3>6suY&tqhnqE(6{5JwtkNYWJ;2^ecclk8+JgR>c&`-JoF
      zXxqlfi-6k-F{Y5o06`A8gmF4&vOoc>Og0i0%AI7~>0*RBj8KO$(P1nHNog{m=1I=o
      zE{@jWXdO<rFK4ocvpj$^)t58f!>J75%=G2tdpIitI9K{|uJ&;54d4_p8}w>}Iu)T_
      zY4f=cm^)eLRmGW7-R!M1d0`$4>a+woo^l)?lUBZ_Y1uh3ox!BwFW<^>P&3&crnN3`
      ky3@dP&_Hsguj)8~!&p?FH*t%k{Cvn!M0FHPB-Gsh1!gnRsQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiz%TE(g6vn^XH*FO}#1~o+B&`Sq5j56l<t3c}n<5M2!eM#?W2Q67%#>i<_<y)|
      zrwcb~T)1-O%KyQQap6*T#_vvthR{me^q%`T=XcNf?&;URpFRVa!R;g>0=Z}Uo?dMD
      zrd2c?+i1A1wEg0yS(lG&(;u5nA|`O@SSNwRU6aoD1P1eKfvct4JH@K+n)XhqQrHrR
      zEjl%sMif0+#E}-5>*U!C{$DaB1?pWhZMo5?Z%cPm-?pSc|C(dy)|T#?Y8`II{9V%%
      z7&)FeHd_)%`p$-KJM@m_wSpF>I6&`0nUj?9;@jijX|S*?&f=Va*k`qQO`{_hHU4N*
      zzO!x`uH!Xh5&aRz@RwJwzgPc+hnA(X>G7Saq{_ACeBHDgzB~x}`7}sn)oHll*8H!R
      zyv%o&^ykf;`1lj1k|beIy1u|@UOT?NQbALiPh~NTKIYosdv}Qt$jE&|dS0kWoW&L@
      zjI9f#t4z+2E2fhD#6gctsTUW>R%~0ki<a(rlJ)g2+lJ+MY=Cv??>e>eG*gcT+NL?i
      zkx->@Hjh}apSm_NBt9VZj(ZVgIHqZV2lOJHvn(y&1SfEkmRF!JWZWlBu`{^=oEpIC
      zk2v#|%O*x$1S|xI!2p>F5e&e2T;RFD#g4F{0bK3?TkHa(+F@q%yijEp$sJ8-=@28*
      zN+{AwXr#rs6DpKobwl-|oaIBDM2nMXajtaajJ9!Bx^S*`<czm*9(Lj6J8}wboYgLz
      z30w~~UZTP=YMhwNy~pHHeJTNGICzD2eHeuzri0TN+z5$fTJ>L!MBk_}=*DInX@_X-
      fucmxw*-%k_Zw8Tb>~Gb{s>S#z_v02#(DDBOSESNj
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!O-~b16o%hB{iGB@toVf%0%(h3MFEu(Z3K-pEs6ye?uO|NjG4|P(<#9i6Mu)U
      z-RZ)O8W$!eu2}gW-1rN0XMFE;Xb7z|&Gg)l_dNH$XHI7C@0YItrm+x%CXjxn@94RP
      zXIeSKv5ki7O54k=nKij?o8I_L3}J!uM~VcZ3ns;P1covtUux<0R<7c?roEM4&Ta^V
      z7oDn1AcUSIB1j0#c2YKz|96?Z0`-?nTdp)}o6=p=H!UeJSaJ;A+R$B7&4b0Tw{6x1
      zMvo?r&*TMSp0lFc4%OjIF<XqVILN==<23<o;@it`0yLJyDV!D%yL6i=7AfSU%7-!T
      zIc3vuow}ck{(A)u;>L>~Pk#rSmSqN;2>ps+<olbqKP!I(dOW8hS@$YW=eTUz4NvYX
      zvEX0sq0?~pmyQkac+XkVp9d>q^%X@V>`2!W7|RrocAU=^)mylp#01C^4R%1641r#`
      zYsh*%s8WRXv&+n_2_!1KoFN~W>P7VJcg<DR0|Loq+m`O4rPu3{{`&9RhUL`R5@qRa
      zJJrH9)-|N6jRc<vqMXM#nnT!Mk56767M~FRz%>oMzE0zRi7L`LN;0z2=)*Ba9)W>?
      zahEj3?oFp~JcSdVaq>N<O^iASDEo*Zu2B{s)aVS(a$n$FN7!%*7dpUJy1+&{!bVdV
      z>i~Py1;$qw*qr0-l}#;u*xlm;46Wr(Yq`7FV$28Sj<QsjYKJ+i2RP9dC)(m<J8~x5
      zI8VB8u5{!~wQ(w4I60`cQf;)v%7huCQ|XVGKJ07F=ZyH(Yxl)0+`x>#JIjV_5(|v}
      tS0VIH)!c8%W-qNDptV<9X>YQtLj2wGGjC&_QGHlcC!#QjJcHl%{{W+Y)S>_Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!O-~b16o%hBZKtKQf>`kjEeMhp#EM!}N|XfrpaEh6B7QSWCopC@lgvyB{sI>+
      z-MG^qpbIx@T=)Z6=&x{N+_`aOeDAb01V%bd=iGbGInSK)&S|&)e)$Su6cceM0@-KU
      zhE}Ngrd7}#Td%pUVf%$evufP6O@E*mM^xbCzCi-&gvsD*0^PaUAk@<AwZek$n)X_0
      zCch*QopLHh5)rhe5JOU+7#3Mi{$DXA3F??NZDYPxT{YZAZPhXax@H|+vz9d1l>5eE
      z)L%C}fxi8T1I3a++;`?R+hKGxSI(DX6es=X)-ucF)s}zrI|(+H!Vw%55S#2aS1vP<
      zn+m_Q3E!DBb=UENl*p?WL2m!n>u+}&PRlauPT=PXqh5Zm{P@)=(B?Y}26eA&dodAH
      zPS>x%J7?N8-(YR5^0rfRxl(;+T6?~o5PM4>2^)s%3-ss8`*&Q*m*rcykiro7d{N^B
      zw8#)>H#T*{^BO9}*nWP7xmAJW0&CKZo2Gmb>FudGCucw)HDlX`J7sB}Cp+l4Ve6LT
      zaU|vpf8D7}o~N!6DKe7$#-MT^=V}bm;5;!j+#^0A@quRw+JiWS_j`;YovRcrkU$y-
      zX!!_qHW=4QlkE0v1_v`Z^cjcWb6dyA2La0gqMK(7Yarz67>?5~a3U1elfkJF*!>o;
      z-cVRy2K^zh2Q6S{LScg$<U(K%TfjI64b8?Vh15*R?w0D&4u;Z{N@+?p++>V5-knO_
      z2dld|k9Tm?CP!^@&W3VE_HdrG;1nQdOU}|XJBre(BiWA_-CfVqfYTdvy|*4_;UX>t
      z-Xf>6PMoBbzjGz>PTqsLtPj-64%%LoWb9>*R)n7`LFQGA)5?DrIgXg@LWw4r{eSc0
      B)};Ud
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!&r{Pt6vw}twrOe053zzGS`gG0#KI_5X@$;!jC3d$kfSppU12dzW|EY_n-~8A
      zFCIO3)Po0=@t_B9{sI0OI^!RpzTJin1CgfFec65Qee&J6FZurG^A`X!sKlW$WOt1{
      zqtNt)RWKdfY`QMD{lbQ5@JF`r$BS`987`d~#Gsc21<x}K<W^OvW!T$=b>9{Cc4;NQ
      z$q-$1>O6@Ey3&Xt$uJuh*-HMOn34qbt_qv4H5*&p-7vN+&d|T=n1;1!xI)f@#i+j{
      zJciNJiQ~l*L)>@P4BMgTXs(*C#(>E3^ucSADX;5;f0Lk%r7?)}3~Zlvo2ynSkS2Bd
      zlTG+eO_;9Zsgxft-?VaHefWAKa9WmVIZ^!ioT9Xi7r(##V(9Xnbxw7!2VV5_#n3f0
      zS*|^Hl(#1Arq2((D95xbtxM^C=rmo@t^3ZB@vI$0GULSD<F3yzmaCp#gHpaK&!w0~
      z0e!TeCiO&z42BfnH@W8pb&F9!@+*|vU`Vc$CX+7<c{JUJeRNZH1w(qpwz<1#8J@>U
      zckct+v>cC`q{jUnr(T(+N=H=LlQhPl(>zXhMMTwlVq$WbeL~_rt!YTnm?R5qQ54bX
      zE=?9lpc_48=@IA)7z;#`>{K>`GZ~ycz`1ucZDHht08=3b6fzYcC;=BRM1F>gp|If$
      zE{DMC9bhA&u+a?0LSVcD>}n|NS_Zig*pm*hiBQ;N22&xh?G7+%s^9>MR9ATbTK0I|
      zcaAW$cHOmh-KX1(xu6krI>edAagI2`(c2uo&AEl!ftDpw5+yDARQ4lgk8^evXGEzz
      z$)POV!CmFOhq-`QAuC^hE%H{5sySO-_4Eks<nCl_iTW!-zp~1_k9o54qa%9~m3}Oc
      HQ7^zhQRvye
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!-A)rx5Xb*#+igoJg17=ISP&#F1dB#MEJ77D($E^i#}yYY+Y?x`-PQddc%_L?
      zVB!Pt0D9q#8ZS(|^#x3P0TW-qJ9W<4g%Dinw!3rAnVH|2Gc&tie}DQ6;41E<p)lkh
      z>$`d>@J*{^IJObEF1P*Cn%U&*w&{<|q>*G8IMIk9HD{9XJVQ@mMVeZ=y<J-MUDMt!
      zFBdl$l8a7*XOTc#4l1$?Q*oA|^Z$Y=3sC2ZY4du}+~V$<zGZQS?iI(-tqt8Z#XMR}
      z`a7n_Fmy6;WTwoJ_MN(JJ7k?KREt#=sK0*o02HRU*#4g^=wLbYqK|>?(P<0SDjCwG
      zK{v^a@6=4gbv)ss4SahP`ldF2{EC#8WlAN~(M_rB`~Gv_IYXQ8ta8eGBh-RDd_fGo
      z_tMMRC8@2McHr|!3w2*b&lgMlW!(3jz&+5RPgU2$i$e6BCH)y4DNXQQ?)nVFh3d)4
      zC>N`uKsR!@jxIV_K+Vy@gQ1=88Qk-t1geyo;xhR*8M3PsoWbvzqDCDD4RuAd2SaYz
      zwz<1#>7K_a%FesCVL2XkOO5+GPNOnODNl&>BTKi66wT8#nnqHtXU4|+*#~6a(VBvG
      zX{XS$NmfLsQH~^#K?hEeq%F`DF&2m>*zI`@r!}1Uh_i2L8e+sofGrU{v_@tTLX6Jg
      zJn0!O#KQVDT#SJ^EntJOupte@F|a2sV3%WIqZ$e^u%|6xW3jMt4HGdiw*{;e3!Bt%
      zEe7VbfKi7=)tsgxiE1kO<3;q3FqFe0Du+d!qHYSiYKaI*Vx%VW?=f?n6G+aW+$D9$
      zNkts;!Ypn|Z5eYBu|iUO43xwh@su4Jw$|<u+P_f=+gsFR3Hr@T&jnOSicgSeOjNpY
      Jn}mD|{sOsm-Ms(+
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)2%}&BV5dNn88GZyoQ1N6U5iqgwjNyWsXowfE_oZ%dN!glqYkVzFBqsU*zJga@
      z!K-mvh$Nmo>`Z3%`<a>d@0T|Kr)cJ25n40xDD226&vt$7MnNF8vBzpI{m5KAx$?m%
      zU+0h})DoyC^wj?SAXGvbDB(FW2pM>LbxxpbLTTXZ&<JfD;YBjj6v6Aq=huvoJyTkl
      zJ|WfaIE3`Tzms{SuvtVN1wwhKw7iMt6B&%f#FK>T(0AEDunpI%X4>4VkZ?5o*Ze&~
      zy}g7c^N&oR^t9J;V&{77TqES>G7QBuaa^yuf)es0KMGuVsp6UHe=l?rGjIUji?2&)
      zB7-dF99I@L_^|>C9E;qsITPnhcY)G#0x5Hh3BW!o9E(c;wov6NCf7K|<UWg8oU`5I
      f1-94he9}E+<5r^3SfW-6v3dhLtU=giwuQYPxgBwG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cT~iZR7=8}<BrE}<Ao8KM*qVfDM6A^YR6c8vLR%neYCo1_!Np}av)KST)0_T^
      z@(aB2qH2pyJJa6x|MafY_Bm&lB<OUeGwnsPd(L^^=Y8JydCva!=TE-?7(+RRHi68R
      zzN6>ro@wREj$N+1u3>vQ-E+3ha&AgJrX9yJbUTKyK(`9FbbB+myuM|Wy%?eb$JMUs
      z<W>yV)GhO|zHS)|uBm0waBHSxuN7tm#DYNQjAPe4-S&#QRW~9xzk8WjzVXMnK(ubx
      z^bIEVEY|9FZriMtb8BiVFVL|gqn9@}YKA8eQ7hsV1mY8A%d}1Jx<DwMDGG#VoQjb^
      zFHXeJC(!j8n1+6w6lmWxJRe=)SUU4Y$#w_~YS7RbM^^%;a3+S+L~Bl9#?osw4R7IX
      z_DZx_qipG}QJFUlt0Hhdz1WOh@m$m1%x7A*Tw}xH1am4pFZrI;@DAQ(|BjliIymfj
      zs1@yKYGy%lO>0OZ9z*sB$2r$^+ypXsPs4d!;E*SRS@pL9u0C*`U8!0=Q;gvvC(@)o
      zw^uf*9u*|;qG=mT_3d@TUG+6iEjnf0D(cjo*}-O;u_w^m(rN>OLWa|&Ofi8FK9G!3
      zlKM3bUFhbK_rR<PjQW}X#+1a<WIuGBauXd<q75j9G6UZ`%g%O{s!Z9H73G|Csgx<n
      zY0qew#T=*I60xgS3pR6)499nRexXpv5HM=&RVkaaYqg?#w5yQ6I)Qc#{o%~fav^2c
      zxNYnP{9=~=_z{^%2Fn^g!KdU{t$WLE#h`ao^%JeqG^$H$iyhy%huz3wvKfJ*hU>T?
      z-|lL-i7A0taG7~QJjb^mZz_%6R5mbW0$<>(7`|i&&9mUvYbfDsipe@}CJH20oVr^!
      z=1qCuQ%AlR7bF%h2Zi7-f-nXUL!9sJ{Qk5d!8I=z-v^{|`J9$6;4{Hh4^oUg#?_X}
      z2hP62@fR3)j)9a&4IN<k03$DO?g=_?|BTGN>`RRP`iwbI^x-6OtT3jqqx|pZ?l9|~
      zBK|N>Ph*7Rzr+)b83Q~S$7QZ~Y4LtgcZmpX+)EMpN_KD`vG5awLqFo`Gw%B6Npb@(
      zR~T6`9#x2aeilANo@dO*1SW|ou@8G1S8E_5v72xSm3onIV-0c)3ZQzV!T~u+QV_f&
      z`vb1-BNBcZddj8GDyojIwLo+<AZU#M;v3E+!km#tYuASko4gX{n6uAuZn!smfaxZ*
      z-|##o`iKL(rAl1(VHypOU|uy$XhuzvRDvVF#nFeDlSF}UVUk$*Kd2N5euuDk{{xjC
      z+-|5oPr6d|<Uc6xOQh4c>#Cx!cCyiY5{s(&9(>%uyw3qipY$~*JsFIbHePDV?+^DO
      zJF?i(w!%N-XEyNr0{jG>`xyt>M&GSqHPE!kXj!Q{dw{jc?9ku=?(F~d`_StG?vl|S
      zrFhg*qq|X~JE##s2kt2W1-}BH2Q@D7DXkZmHD2NV_k3^l-M0!;-Ydogm;$<rTK^kO
      Ck&|rz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FNpuud6up(Chcp#45CWuwhC%6WhGtUH3>Y$Che*&sD}zX-yOLC>ROM7xlgLs<
      z&+)i$Sh;f8xRF^SM-=ynTQ@FTxNz;lt$P2j>gq}dJYkVk)&K9^`|g|i-ap^p1+W)Z
      z40Q_9v)V;1TXqdITd=J{*>QBs&1$YaXB4sn@{zM#eOh;7Xi(51%}vdk&K@hzO^VZ~
      zf_8ao*x3o)F*MV-q)nPSjZ5+~uRA5fwoc}T6eyz#ng(sF<Z70i*UYjW$sam*{{yq*
      zeFf37Rnn&D*g94!TiH3IRLGu`M?DJGTol&hQ&T0~RS=P1#LFp&_ZCdUGTeRz^{I4T
      zLBpV3)Du{T^)YlPXs!WMu>l(uG*0WThpu34D!qcT5ekwjR5ZoWoWSGgj^PQSRWmSX
      zYNe8j&DcV%L>tlzrsn9y5kohN3U;N&s<soZV_4HY>Clm*Pnmkb%}Vng5$`q?PvR-+
      zw<l+LBQGk7yTWM8UDKl?)|86J5RW0VEXHBSv7H3c*r{R{b~DMney%oz0Z+_0_JXKd
      zPdXpN9%iH(`tV{wpLbb70*@J%?iK!oSL3!ZyP%nQjdiEDe^{q4Dp(hi8bGj+4XIo@
      zpFlmH6%n<G(4SM$j22$GGe$|l4$pHnO-Vde=wa8%Zek0t5V8^28TGPP;+DSPU&c)B
      z(wh^yE0R5^VhF=*$N925?i6(vj-9SxeK;@UvJgF^4B6|L0jo%VPem@l*mElS&@bMO
      zsu;sd1T5Hd^X!9)X(W})rB5q}`O_uHkE?hYudvb~+XZc22C%F!K>!jWsxQv7F~q3M
      z7d2Om%7U(47+g-+%oLD3XB8ZMj^oT|Eq##>|AKv5xe!A@(}5!UHB!_~SEH3tapcVr
      zA-1_#@u-|MYQ<vZJ?`3GcXJVNj;f90_k02x3NcJF*y^3XR8*V;sn@Y5RyuOD4S!28
      z`KE16S8AL}bB`pZOk4Aoh%ERBmqgJnvkj|eTseseyX+M75kst`wq+}Aw}^-HOLzW7
      z(11?F5a)X%S7aR${O0`gy;IB<pNB=G^4ZR>R<zM_Ex%@^Kd|jK+HaxrCOX@cwyq^?
      zTEf;_*!~roj^07~ROUPE_~{0HqUgXzWXZ5sVn_Ku$<uD~ZYF*=Z?|A8)?*)URC;vs
      zW<L(_i+cr6`@ADWsN-3J$j@Yw-{Rm6etD>mF(zOqHSMDBZi&?4S>t*1@Q!}yB^$S>
      z7(^d)zx)Ow0<#L2kgod)cOVFgMm|)lm;oOk8vuNRgI|-yizmuskguXB?0hIt)K6=n
      zC|aY&qaP;WNJvREP!h!pQb{WY0<0lg3oMoO$lS#C<Pr|o3L3{691kI?0iqfpj^Kzd
      zEzg{athQv9@M2%4i-@D2{`+@VRi&5p(_}uwjyWrlyFH%(xy470koy>;u45;0arhiZ
      z*$0B7sS-8&XuL|`rExX{+!O#eVL~Q>&N$%%pL{gn#Z?36gMy#)v(hfI(wl5J-<L@;
      zXlCZGWHs<Mwhr(XGxIk4@g4Tt<q%i9FCxPE5;+kQxCXEKB3^qaSMh(iJ|x#i#QB(9
      zpRAheR8Z|1>Jl+aU4322^Zl7FPPEV!s<@}?Gje@St}n>-rR2(ZzCm%?aa!uCD69(<
      z*0cU+9;z^u%@wRy$a<AH*T{N()e6r(lq;0Y6<l}7^#i$nB-h<lbG^QrY;LOUl6&O(
      znOyhD^~)n?Q{ivQ8~!xy<5TRNxaiH>IDeh*;eGV0L>C*DHh!%X=s||6%Z&cjFuf`K
      zE#zF;gbJoG?UU~zl>m+k^2=9hsDBT6R~DIq85n`L7rOL*_iByz9}o1N#f88-#Qom2
      O8t*?J=xs`?x&Hvb7ZlI{
      
      literal 0
      HcmV?d00001
      
      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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
      V@F$P%UlQFN$TgEIct%D)`wwzdaP<HH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_f`F9i775<(rYh*EO4w#sANC{XL;6MUtZI=QLG;#q`+qgANNr%zc3`iqY8ez!N
      zgzim4+jNKS3!zQv0tq$^ZRkqR>A%wc(&cn-Prv(SwAh9=C&A}<X5PFv_kQ=g_kQo`
      zxBq$h6#!ds(?FBL@NxU3-CYU1T(?v3ol2?X`a!oH6!M<ay-VLRe&9~HrM;e;%N{Cb
      z?Z7RqyX{OSU(6YZDQtU9h85x!zif}Y3XAuZD}Hz0D?8nX^s8P@7RJZRZlItBI0&4a
      zT`tQ??JH;d6W#stiYr@(y$RnADkWNKpFQ6<GSa(4%sG*TM4yxMd@tCc(A=3CRfzQ$
      zvThP>SYqHVg@v=Am{^K-I+<{T5SzkXovAs1TcL2bi5A3ZVxQ-`2P*laZfV3mnj@^X
      zeFewPjoKwo#?i}oUxZ_Q=WNuy4KId+lIKtK3e@zRg<*KNTAf5Q)|gm<g-NW%8w}h-
      zV6(_Gu@3htEMjaAx#XwhW_9WnHZ^*xB4}_^a>sM76Ljn4y-939%0MUi7xt=?L*XK?
      z;G5_|T44bl_1n3eThh5xSkjqEHCPQZn#3k_8`!L{td6&8Q#&+qAGRo%G`GKy^~OE7
      z#M)pwGfCW!Z3Z4tSlNg~msSMl5F5b6c09<mxPF;sv)`3e?Q$GfN^Gz(^bpY;h&ugM
      zNVAQv+g~XMyIBCaTyG{dDv;h}q6e(PHs_e@oH%GZC+rEg>Tt<ihpABmZ&p}dkAJA*
      z2VUOYbINgx0U1rA4{wq5?quCH8W=fNDoje1v0{YD-6s0+kb*(7Mot%5j8eXJ!(oK2
      z*o%h^yp<hRpNiDLL<ULr$;jBjJqF&Ua8JV$CUe5h?J7-F@>G)=yae_$yF!F@)U~`&
      zR;+;jlNi9D06(a(v=Ml<%7}UhBL;?N#9t-5nr{<_z>Y|I<<UaUW=a`YjMa2Ffp^ky
      z)$_?{GIBkH!zSJ(AI|g22TO&3HSA`kci(MdK9chEsEJl2MG$NgN8yl?!qMYgs7r4!
      zQl*uR(5v9WZb%J?8P|k?gn<bXUgxVu5YYz5JeJ#`Fc)`LmPHlW6}jvIJFn%Zjv%60
      zp+zrH=x8X0nSqFE>TadAe7(<9Mxn_)MV1@BtOX`ot1VNy+h@uivmZ&{qpvM!t#+IL
      z=Y~|(`_^%`U%zzQtTG$axzutR@8sqnU9uLBnRpye=z7Zd<-qnG(l(<!tKS_q@II<b
      zolxCC{dT!t{7F2CHA&XM858fvBn^c+Q!BV?=Qp#kWOJw+i@Z?G2u)$WQ^*%7%e(yS
      zu<V7)8mlf^n_<x_BqSDjOyU_lYvALQ_1R`koE0TVhziTzDG)zt;v^=e+MhG=X?%v&
      z-r#f6E>Z+$DNN*dAaopePZil5%z8y17-(S9wNLcV1m3K-^7dQ7myONP=p_|x_>ze)
      z<15@Oij{!Q>+OB3;0GwMjL3H<N9|mNIWuzhW2ecLSo(&EZ;GY)v@}@Cy4>D$G|eR7
      zHrZuqhgHFyqzxBMd<WkR_pKRFZWYKtDr4Y#3Ra!=Or(x_XQ_3Ff$z`Q+QN?9UGZ{+
      zn7|JSL8r$`;t~d>I<J^`5if-r9(MGS85$n-w5*>pF^y|9VHb<8pZ)(k`3]B0VZ
      z(Q<6x@(Y1wYvh(~6{}il<@IK16~-+`YRF39Cv0@9QsyDW;%8peKC(gpy<*~qU{3^v
      z&{YyIV33_QT&R>Bcdu6N)wk{G&B7+P`i$>Krv{gzx$3s-<xr|H)Hl*Ix2tx%4%O*}
      z#cpZlaXN<Oa?ImXn<%`#bHm{5JU%zU<a=%<d~W6J0xaarB979$%b#%#i(kaD%Y1A?
      z2d_!qf#1{Q?`T@y%HImC<Wp#Jl^9T`>Du7T*{*4<RtHp1ta*D&dgBzV1MzEE-xJ$3
      zg^k-=I$~+HwB;JMrmx|R7qPG>ejR;d9r0=GxWN^>dg2}NE7)@Z^RHuItZm;k4&0FS
      zZ$BTsd565|l2>Eruz=<+Akh)K$dmq6JkpiEiX&ZDu#BeOa~0XkjLKwen=wvyB%C8y
      z#_Jyl_KytdPh{cGT=5sO@>krAzhO20!DHv&d1U-2zxo%Ca{opTsoAL%9#%~lQZXD>
      zEyyYZd6mFv-k(sdIHQtyR?X8C4Qbxb;ut*oA|<kAYktq-I8KnbI6i_L^2F4N55nhc
      zj3~~afFiSZAII-SiK}*EKgt}%5ztP%CSUAUYIaT9Z4!~>HB84TozJH^mQ-0?FX2df
      z3a8Iw-gP`VHjSrl@YN$Xk?2ZK<7r8B$V@vuLoL8OwUECw7Gb$sj5VrFM-+OtY7trZ
      z0CB4ZR5BN$lDQ9YPT|9hvWn`X8r5@*Bu0;^^i3=!s*ee}=aFnc^a*A!&2e_+swsTx
      zQVpK2L$wquRJ(@M6&k8RN=1-p9G@kP5_}4u<5P13%v24gtPf#+{?5Z(PM9n1Fw8ID
      zi#0aSX*Qo>#-!&vUk#g6IA7280{Kp@AxaAy)LM<y3T@R0?W_^niLYux>owR}qfu6c
      zG=A;%;`{n+eCvqsUgBGS2k<S%xA5&6e-|`=kF$iNOg6j<{-*H!>{?6_UYCXzw#SAV
      zbsHk;>V(N$*d8(`gf+?Gs|F}++TTz?1<;`MgEZ|q#4d|IUdIdkzckkNgK7LoCZ}+D
      z3Rl~H%nOG{qTzK8rK`f>6n;95pNX*2WZ2`IMI#iisvD--f<<a8R;l~R@dMbXwqd*4
      z&L4sgQt7txr_`2);09~K4bBNp=EC4)PJ(O3&*`%XzrZhf7wwaGzv5G<QNR8#QL$nX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`I&2Jk;7{;HmH%a3-N#hbX2D_zDitUuTlzu?%8bYARQdE$fL;`W>#yf-!_Bz_E
      zDMbhY2d+RlapL35p#`axKtg=nIPvip@Nq>PxC773tT%4#5D_I(c4v0p_nqJSJhSWX
      z|Ni1D01sk*1Tld#Yxc`_sS~)(QlsrPI=(NxpkxQ_mfI-J>08YU<f`;9y0Ymktvhxg
      z{SjCK`*mv5_Et+zudK;NAdv9nl`ur$`TW9W#C+4<*eLfrs0Y65t(FVs(f<V~3yjv?
      zRnHDOz7%+^vUI+uw!tY^`v5A7OXcd`QJ8W9)_mKMBN!8??@G?2+X`K4tv3@$U_6Nl
      zObQHFT+a=v0>}D#8`Rdaz~qAK$xEHqiu4!ll_teXEwmeUbJ_M?H4h&S2My(rz*LWp
      z#xzR(g7W^7-O|~criLC0q;D^Ib-i0Qy|r3bvUt9*oIo6Rs>Wt0Veq2M-Oug%I8=6*
      zSy^1<i4YiXv|H=8FXud`E_sp<_Uap+r&_J>oWQ<3Q_OJcinL#vzdbR&q0-ZX(hIa>
      zL}%+!(|+};-YdSUQl<x_6l%0wWvIa@!@78b>oX{<UrRvXfh3OMel;p3aR`S6;_a0+
      zbpSRk3|nJce07)YW``CFRVVxuFo)ao7@5s$Uc;9yej@0YCtu+$TzEo83nAy6;|L5n
      zvKiQna=VG_;3?Jaq|?plJ{h$gr#nv6+a13lFS_c$9@_TxIH4L5NY*@0`uem=9-`c~
      z@#=LF$X6BzeJ%P`v5ru?IKP(QAsxjKh7rREXEE&K9C!v6$3WssB%UqK-a_&^XL0Q3
      zb(p!paZK@=Hc?370B4NH9hl~Nn&YI7OK|NVXO?;$_(WBIl6O^OsCWyR8yuLz30>?I
      zLm$$`O@SfYg)Cz>OR6V1R-}M9%t8kIZqAQvncstZqxGX)zi-Q&rzl#_b5uZ)45r?!
      zMtz+$7I#k-XK&(owK$v0-o%Ly{`o8SX~aFDrF?_Jyh(xH((FZ(6|yrQC;8K)noi*q
      z`-?F;iPId#b!SG%l<7=Iox~Z&3!EimmnpBA-VT}4n(0E;x=gNYPILX4-Q-GXhIhEr
      zyENuKT63+3Egi9?L$+bkE20>qlQ_49O~q4n{;7Dw_VCVZ&VR9eNVbo-+s9=4WRKY%
      z>GSd$^%x@mjPWv;y?oZ9q0^RD?vEZvjdIsXcLQVij2(Zj=}w#cNV%EF)ft=*T}_3q
      zj$vGDX!ZCz6KSY2jfUl&HSG1bkMe6$enSnvrH0?_v4)kM*?Rr$WBY+@Ka%Yyvi-cr
      zY!~|ceLwU!GuYp0YwN4=3-NxX!N1X>-+K(sL<VOfgENuA2O@(f`V3Z?<|R>?%HTMv
      WJaRESipO|Yzgg;kj#u-UdHi1{h!imZ
      
      literal 0
      HcmV?d00001
      
      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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
      BDKr28
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmcImOK)366#gc5?8G?l#!Z?4DU=dBZB0trklGD3X%iCMq{5D+b`#y$LwZx^I=Z>0
      zgdL9sEO`j2OCDRKQlOQn#Dd3$C68agV}ZniKLC6)_xh38q9qC&&zYI?o%7B4&dl|9
      ze|_;KfN@+5qDA23y78hBFFR&2o-bMXvTaMti5pI7!_3E1dPtY7wOLaZ3(K1Y!;y9n
      zet~X{D;m~Xd}(!E<{g2MC9iuf0+&bAHIJF1v9*<`TgW)JX{{xq?$UqCo)Boym}{2d
      zlx-=nom@Us7ue;Jm~P0P%q}OU_lbfVOTa%<D#&&`fQ}%-0!Qz!lwowDOW;86;!0-u
      z(xs*6vze9j(&F68Oe!NFt_0B|aQ6OU)yr~(c(42+bfYhf1LzkBBu&e7rb(}%Ce6x`
      z3*w-_xjm#$m-5$SrAI=DpiiJHZCY}%ys;|ntg%|8UcGcPiaEnJ)!bVQIC<3}0zGw7
      zx=lm1Ur@cbXl!V7t*N{o5{T>!xxHBl8`&MLBAjnDnhU{)M^%juQ%L8k$?Ow*YsaZQ
      zz>?W4+fkq+U)tC-Y?-nO8Ob|zuwEpunHLtKR|MKd331Jy>(aP3vlHmsQt(JKcr+&v
      z)M#xLjhDA|F5jAh^f!S-7uYunp^SFARp>R3PbV+_LI?t<!-(SvWjz(f;}{k2l~&i4
      z^fmFkqw!dLG;&6<OmT&Z<Gnz{Fg+W{O+IhsZMnghiCS6mB@W)kd0E}?c%}*kf!2a7
      zItIPW3Xmt5Q^)NpR1lSwcB4?J*r80RZ0F^ysakcY`SW)|okAcyZ&}jTO)A+tq1x@E
      zsypt2z-Tht?2&4$hyO6E=Hv4WJ`(L{MF1@ba@K-2&Vj4&(*_RRLg)rM?xOp0Z0rtt
      zZ{9^jTLU+_>%$;_J9VUEjB%XrK^%v;7ID!S!Z2ryg9q^tb3RNv%u%fjVT7Y!T@9|N
      ztQR<{z1G+rJn{(*H$g}TJ4M&iI=CC46-V$GeQF`q%27rXsv8){Jy4YM*sl2)j#c-M
      zbN|GyIs2-*KThi;o+Jl1-h`(53XdCL_Wsz|ZJe6)$HpT5k=vNO@%Nt*|HoD8Zf#yA
      z^fmP2bxl9UgAnM^SJo8HFp07fNa{qLI7`c~59iiW`SWnvYYNl!7kHX9E40Qntv5Vc
      z1DaN9BxERRBN4x*_Qyz#S+8dC7X9Dmm*pKQ_HG@!fhxNJk6nQL6{i;U9m2U??3BOD
      zPWij+Quk&j|DE0YWcLB{eMoj6?K8V)8YF#>+1gm&VNX&DYD@-{u#tc+-|zLxy7jw7
      zWj|#-KI2XJTr-^DZDNdS{f4XR4r9hsx8GB@16{h3fjXTP(ygRIx|KZNP{}tvod=ui
      z+(`5*0={M`zhNoAtt;hVmFQqq=)S7Zoee@Of0v%}cj;ZYH@%%gH`4o_^nM_{A4%`0
      zeWo|N7o`KcZ_3Y9`WGtwE0zB3e^T0qIrdHqp2a-JURvF}<qJ^%as-~^=srQ|e*h#_
      BK34z$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_bU2hUW6g?Mc7bv!fh_ppTr3#pIZG5wYM4K2jts1-Gp${g*I@YP%U7g)E@jv;X
      ziH(U5{s4cJ@y-Am3%)cw%-+v)&)hqAfByRZ1HcwK4l;yCN8*EU(?kWXABBFZwG0zi
      zB+;?*-TPMT3H??K1NlO}mK^nE>yP#ziUKLZ=R#=*IYQZ13q*M6J{ulMKOq$K1V*Ur
      zo{n#G!oE5TMUrYs$a)@ovO~o{Iv_0eRH%|Zq1K*;9&`o-r_B(n<#wW1vWP6oB`o1Q
      zmuYtf1rRQjuz*FQT`Zx1B4K4$h4N{7Je1lqotc|Oz6b_FD`StHx#W$C2~S4UbC?nL
      zMw*Y}hW;h|_-;b#orSIE4YvE6v!12L<LNVRUiiL@<JKL*%keDd(NJglS^jcu5%%WE
      z#S2l~k5cW+hsr!!<3IbkX|{||dK`vQ?*t-_W$fT4;qDoholu=MS3<kz-J9;dKkY)3
      zS1-%|Tm}`hiEKI6%CpV;$hwIxp~M-Z$T=*t=RMmdveNy==k^II-Np&3Uo4=;-(?$K
      zLk{b#H*kr4%@G83tg^*mtXWE<tutAM^MD#l<Ei7aNwQgaP&tn)xXKqa^cyUR<wEx>
      uDxX=&Fbv~jbxX!Y7}CVG8IbCyQ;^jOgl~A=#%`d+vS@iWaErB3`|aO}cPpO&
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&$T~k|C6kUfT4J3g=_$mr26(wIlOROk~R7!1u@KFmgQ#w<<T#lGFBuo+nr26W|
      zKd`mpQ=j^vGYTC$IzIcCoN-+H-f)vn;uM%VP9S%mbN1P1?X}n0H-G;9>+b;0W66s;
      zh4^jbQ)6hen9dBDxvaUF&+BY)$SCI4)8^2)^_VsCcZ`*czOFykTs5^9ZiQxRW5&p?
      z4b89I)@D(m!QMtcg@Ku82X+D`xOXAFmNkl-d9CoparP#U;9QkKpL6u3TrQ)H>@_2u
      zPcAMc#`sY<l}u;T#W97BkR81u&BSteNx>VUvt_v_a;w@07n%ZSz-a|nC`@Ww6r#sq
      zz>8Le$!BjkS|&aO(JpX&J~X3KtTPJjHIfN0H9+Bo06aLQaC#=4)pMKcD>}a@6;}w(
      z<V+*8WaQH_E={_NpQH;47f!-F+4TvzX(MClBv?(bg1_V;*(#`I7UF3fI~#{sMo$95
      zt~5)<A}R#dbkWg+LR%<Y3zH`lrnm4J2_TAo?&dyWdLV#73@Owbrl|{szH<t<N>m^3
      zUe#1(q9&U9bV10`tCrrD1x7r8H*ld0<GjM`^MoN)2;E$+3CAl77MZ?v!kWxwR&`#X
      z?j|>>4Tb5GRH-%{3iHn`*r5(uwzP3)BDcO_<n?%VbwRV4g=^fFYF#WZhnb>Zx&i-W
      zBnlZ1;2m62=s!{niO{0AH`qh<YK0I3S-n*`Jan;dg_o-(tJJj>8qLZa1j%#&lY+!m
      z5Un<2Hh`4$0>4o#>h+DH9ieucBdk)Jqvc!3ZRSmVB`sZ{`(IuRgVMlwp{BA~ou9}U
      zg@R_EXmgUNXtoNW<WlMKR(991YL3y%7UkkQi|t7I6rWy>>QK)Q-yHDKwrBhZaAlVx
      z@$ZTppfU0U%{QJPcq7_<fVKm4{DQ8Zxah)*{BE)wLvSOEGl-y@bFbK&(Sw&bVi>&4
      zIb~VBILpIcrQN}&to5LePuuG?dMUh)eg{y<0yJ&S^R&p%=-Nm44+I}0_9J)MC?q9d
      z*g8F6*-fR><)reAoTPA$FK?1eyJp<sM_j3ln>b?JDBg5%k67_{7)OZgEaRSyx?+zp
      zyvVPL1Z*0w!cVmYF;zihr$b{W-oo1iE;SlO;wc)%OOmtKl3Y`~L1PY_ix!-}So>4-
      zN|oV^dZJw(LV1Xh9x;Z0z+kL2)7b8|ruHZV^4{eU6~x-zl)*mU{T3egBUhQL2xSD^
      z;z1vx9Urmw26<k=2uvigN-!qIIiBXasASBB;-r_tL`fwnT&5-JNZ~!|MHo!s3N1II
      zU&K`=@3Ax#;f$;uYDi*;hGgzCt-6wblK%X8@ShSgRhy74Lf9rDJ0#>Y60%D|?vjwt
      z3Fa;d*(D*{{}Umps+<3iL<yy_vO?yf1C~Dg-Fy!3p;eZgez1?3ax(~8d%vU#zhZOv
      zns51Utjz2(#hg;dtO84!Vpdt}xTDu9tIH~@-9W@&G%a3IOi{jgB`FAnIm|oizDACL
      z-zX@-9<RpUTf%PL!+{F$RYg0?mI&PAQTNe`@0i8|cCYVw{2n{p1NNBv6)DA?l;Vzh
      p<4#JUs+7dvPD%Xjl*CI?a^ZcRT!-se;M2zxgZy8lWw+)J{sGYuwD|x4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dT~`}b6x}yKlBPp}6tJbJtyY@w6|GveK?((`rL<@Rsl~4jlM9_1X41)|&@TUo
      zzrYtC`k~mRYw4R0KKmQ|2fnKN-kUFytYvliKxXEgbI;yqpK}kt{`tdC0A7O|LquTW
      zj(yM0R6@6yaeU9I1cCIzj2-$ru9KP9kLz+v((1?<x&`|6fuikgXI3}wNGFUTDln+6
      zuAj-tz_p9+1ADV58C=$%c^Q;l-&?=DC?J*vdKY}J9NJ!(w~H0o^ZSjvzpd}B{UQ*p
      zcx8Kw2M1Ql6)&^nmYvMHHf044-&4`6TU%ur3iRkNf#ganA%-5xx!ax{RsyE#TFcWC
      zpK*$==Z3R1q|$kT?ghUf6L=2CV>l+z*MetZ1SgniTZV>!z|mB?jnyFtJa555ZybFI
      zoWx5poMN^Hr-h<jE?amRrzr=sElQ_o2eNR<mBoU<RH})8E(~06JDYAY1#+uMkuy3x
      ztN4ytID-@=^0oZhQ4?jfIorXb>1D-r+`<vWW0*X^aVZG=Ab|-?Tgc#5_F<-~)v@M;
      zYqtY`S2Z@9&c|?;iZsex+H+(nWRsbA#r5R1%Fd<?*31|rSA54V=53A!Pgji*xhF8x
      zRBAm1+cngTYvzogB$i?~)A<Cta9(j8R7K5L=tDnS8s2uxl+@&WwwWfDrE2BS>R}WZ
      zK1lX{sYdwhzsWm8p0iBe#g_AWaC914RqNplr_y>jyYxiIJ-J)u5G&db?&oBv`hD5L
      zGOloVN|kUmDDWy4Oag&a2bGrFfs}B)j=xjl+|7Fh<`p>8;b@1G8@vKaa;5r)V)KE8
      z4{@CpHRap2OEpI4JEZNvs54Sj?v*&}Y7LYMcBt0CuC%{cILKUG$yya-9pE}D9oKWi
      zDiWNR4GR~spx!>Qu!5^xN*u*_=$rf3+OF!YOu&W{!{&h%XnYn5Alq1VK?(d5uWCwx
      zM9!}Sj=bcmZ8_MoZ>QDB2+Ypp&$kOU+io(JmL;6UDHhtrzaDgRsl^cI`yu`dh#<jl
      zt}echsI|c7MRk+tAJG0JBjPxUL0X1rxuf#{r=Mc@2}U1dG%1oV?Bm6Kyz&I;uhDzu
      zM@-xt{~l96KjN7vhH;$#Y9e@DV?_BoMC%CgPY`E>-chc`B;KIM;tAz>6X*CPc)Q=?
      zNyFrAjlaq72z?16yfZ%W9kP%3)upo^;S(5Rjc1r6r85qjXuOMA`gjf(baiulZ}{ew
      zOZ$>URk*c!m-IK#qwpF~37vL|P}6nd464G+F_|jGSXA->HEuj(N?FvU%-2(Yi|j)N
      znJS|C;JIf^yVR!824R#!(H3<K<qIS^*Q89eu1pk{T9i>fqm1$?Wd`tG8{REuRCpF=
      zVf-=D6Z?3-RjA82%nhbGY&5s(s8$=Q@)=a+GpM|wb@8rg@$PblRJVI;sFV9x{f35S
      z5!W^3NfTIy>_tu&%EMUWTZDoDjVJ@Iq7=A^N^1D^|3<_4pK0WAqprqBT8%GRqEe%O
      zd>=Qjj!&`&AAj}NACrx#GIzscuYBI~QWK;8x-k9KUi7eApSB32qKq&qN(p14lrRFH
      u;dB0~{jkWV5-qNnJjJaB12fn6HL|%J@hb8h;~N%*62X@K-L77k+kXS%>KEn!
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgwX>?R)8GgPjb0?EafB<R3B14NMnF*x01e=5<q>Et-LXw(DYcDf5VPH0A?y%G<
      zRcmY2y41RWy9Q8cDHNDcP_Sx4PxTzPb6n4H`{VY*^&HouKJRyD?o1Xb_SA9?bMN<k
      z?|t9rdDnaM?7z-m1h5j94OA%HzT4VswdR~yyfu<aMsk^qopf3)CzXgrTD$aRn>}oE
      zH)7u!v*XeJbkuU}%+f2I^(4}9162yEo~LpJUoM%ohHZt}o3goNYa*77wD#+*4j!h4
      zhqJb$pf+&fMB-L9E0Wq;+)9qLcFPteYqrNml9rRpP*cO?^Ul7$jy0lgZ$ZN}5(BP8
      zq#)t%jKpKfn6pNqvZ;AMp{hF-wF8)o1_SdHW=;ZY;u>5_7$dghqF0#H)I5b!4HV{^
      zsD_U!HpP<mmRw?|o$0f7#tFQBQz~M`2dqp?)`d-9X935mrpdfIuC%e;$;6T)9fG}U
      z%9E}~CO_WUCtfJq^>hSKi6tf$VRiu5<D~|c691$qn79GU6lT!{H`{b$#*XSdQdnMY
      zzo@g!OvWCL+YzT#i+2RjjIe<a11U}}9x^#aD3(f^Xu)!YIvVP>;&D5plR#l^Q%`f5
      zR=rDYtypQ`Mulric#Ar<K@%^-%N0zj+nkEVhGTYyNye!61n^3%GSH^5upEib(E^-)
      z){}`>;U-4UPG*^Zn{A0`S0rLfuJ)EwcM(m2sI#O9X|nRAn{!!bJ@X_U@91eB5J(*+
      zI<cAtBfIR#o~>47k2PW!4bGivP@ZbVS`+KgrC^X}-+?sKO%k-^6BnF;Zf0m{cUvy$
      z#1i%``y+N*d>_Di+#-o^tHQPAruueeQu`!rnQ;bQO_!CFXw}_T)+tkS8<qsH5t|Kc
      znqaW#hhiv9Y(cL=AeJ3S#VvZ9z^fSOAp@^bxUOWRhnX;9#k(>ixdc0#XUdQ53iHH^
      z!JT$+Z$U}Wp$h`oihd!(8ktv4rkJC2+(x|C#GpW^jb*oHQVw&_j!GTB&csXv<n9g=
      zH3%4ZJ+r?AsCVaX%F4NAVg>@zJR&BdAcNT{eW>%Vx6tDjmLn*-!7YjA4WeemgaN;S
      z7(-Vw;}NA_oLw>I+@KrP7rxa?pJjQ(qg$+mZdWA~1&=9IYXODEvecSLhQZV_IxE<e
      z+45M!RGlbQpXyPlu=g`8WokU8#L+OZRWg``b{TuV<fSD_|6B1K^R6gI5Vek#ktQT%
      zI4OhN;Op+|YocbU!Rv94i8tZRI-7fvS;yk2{V&fA1sL#qO}qsMDB*S%FZ+tMUdb$y
      zsZk0;!7SSsZ4zKk&+r1kW#tK0kevFg42&9qOlQcw&($F+2dHvJB$Y_Bw|6C@+hsD}
      zbX7{HF*C%LTQDP*Ncc{?$HaT3NBPC8GTFro?>F&w+%MJh0TYklgKYF=81`9dmx@CB
      zG*C87wLEpFnOJ=G{xr*#rMb_x_H<7qS;?0W0dUyFNAWSrq;rmIwbYcFuFkr+)StBX
      z4OsCUgKxyGyARNjqWx1QJ}ug3iS|sCuVT?6wMsff;f85Ul(+CgOld%;9NjAZJ8EJ-
      z4v2xznfN@uK={-)8UA$1v0)nJ1|C%imNKr`cJ;jTD%8M<2?N({59@QWIBEHDlK$55
      z4F>QS`lU2Zn>d5B?s#(B%iIa$snB3Ve$2!<JV_N+I&CMT&;5Qe!Fq=u7Zh585i1!?
      zrktRqkq50{y4c)<2|dDtso`Kmk}&AUm)LQFxh!9(f_yAis9li|K$lE>S+M(^lxr%0
      z<LGCZZ%^ei@-{6)D|m&zvO@gHdgw_e3vV+v`}pE3JRxu13VS;H+NY-Tz%+YnT(SRs
      zCV1@*H!_zh`9V>Q`SJqGyLy>N`pWUg(^}qFz~ny1owu&znuC&O0ZPxpY@XC}73Nj`
      z8RszPG#XFwwgL<I8{ic<L=zvzLcPl$PU)9$-!-vV6sR+(;@kyBLt_Z4_A1q0t=fH+
      zZAN%`9@n*3`OcxK-Pc%^$BH(i(HB<pXzCT=b7+^nHSN{MFtgo%0qX}F{bRWKQcGj?
      z5!7D5ZG&Uzxg^3H4r9gzY#prMHio`SA=$e95bCJw2>gw{WBl|vi=j~XEOxZi-+2_Z
      zA+GN_27jo9*U%Ga6iYkLV)zuv&f<Gw2X@hk!ZN9UkCVd*y76(cK1sKoqSR@AOPnF!
      zvsj8TgpkK_Cj3e~$*0d_HHZ)wu^E@pkEd`4zJd{a4QV`$dw4yFaomT?cqg90!+4fH
      z{5n31Z)i{MaQ%hd*ds2*sJyr6FpTPuiQh*NM}im)e4H3l#23I}Y7a2zGpOwiyz>#|
      zBgi02snuLN$T75g`E*dH$S5uB69d|U=~<}Lk!3gXB6+t?g?qUc+riKo><H)a#>1sJ
      zaBFCs9u1G-pyY__y#}HIzR7&}7UtmFOv&$HF}|x=Hn_SxmO;D~ZzBf5S2}a?$=Q7x
      zA7_k*>H&@F1lN-AZADav(AYALMO@xBjt053Tn*Owx>&wPtl!5H{D7Y~KV&ieh;Q;g
      z)_7f?wRw2k3V3N5?;!GuGS7;Xi(I5!<RbMTr4(cSE|0^zHHT+tyNVpvg~t)5XCD$S
      zN42AeE~9bzI2O2c=E{Y2^Ux90grtDp$LtMrbGU_zhaaVma?k&Sp8P4<{EXjXKj#P3
      zFEo>oYs+J@&SSC;AJR;SM02XtoJ#U8Cy{qKiM()f<sYPN#oT+b*!`01enob_CcEE|
      z-EUt6b|0CNe`CyX$-lMJ$BwC39y_L@8#~^VVwcCEQqj1H_&bvOJ<0un<o-x<f5IC4
      zxhxUadf{8^g>NmJ!Nf!qDK}^$<pxcp+(i7u|B1{eCzJUL$^4aM{zfu?Cz*ec%s*dX
      zGM{1pEKZ(LT~!B}=aQSt7@2vcstT}N++LN(kz)DeaqOg5Jasyt|3(8x-vY&tWS+P!
      zX_@EsWd*O7+LfHSzLqobb%lHwc%a-SdYR2wK=ld=X`+WvbxNk&1sv!9#|G;kAHyj*
      z%;SkX^7ZHW!{v^`@{3#w7k8P*#W6f3W6=Y@LZ+{(My>L}R2=2128&dHfApzEi!%9l
      zk{Rewb^Q3R!A72!$n|>UdZ&<+Gnbs43Asv6G<g^JDyNye4e-x@+<Tfm-ktvA{{h-d
      BFmV6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV+fEZv6kVq+l$LU<igy7;=mn_Yg-a^|iAEBFiIft38_J;$PN#L4LhvudC%?fL
      zeSt(1KfvGdU0r8pXbY`G@u73}*=Oywujlmp&oAEqjN@StK7q+CZAVL0Y~4uZOJ=@e
      zS<<vqnq4aD`P96#JeQl2+Pr+COJifTyrJ3B3L+rT?HC)HSx7xw-;#M-AZ*HA4<b;C
      zE!7YUhPJ((K25P=Te?|D$6d_7$CMTbt>^_)vn!Sq_?TIpsdMK>m|kn5n{9|QlU+^E
      zHUyi=t{vC@Z^X)t!zmD0C~e3f+6C6m*pk6h+O=3L8)1ae5kV)q1X?q?soS&ce?#gG
      zS=TF$63z*9E$OCQt`yg$mDSb_7CgFC%4<eWvvjrhl&yANHC~{nt{3hsFpM4VFtn*=
      zYgsEgG_|4e{0a0P=iVzH@%Nsjbz7$_YBY{Nw|fHqSUeYoAJ<eZuCVg<E1mI8yZAGW
      z-TYZ?Gudo9o8wRkbmU9LvS!J7b7MvFCQa9O#v9(cl>VrRzZ8hXTwYSEZO^XMUN0P{
      z_irmF!++%@&US}9N+kyk?d_fuq`#n8hMKT=x47<cV2*8yB+jVFN6VvBr<&L|rrMOT
      z{U|Jwh9QuOAcnY-#v|y*0NY(!-%_(#n+C6R42O?ZPBSVTx}f*;5zi3SR|OefDOD`>
      z@Tu|cKjnUnDR$O<(KMyyOq=9L^_^m&ZlpjalWp=I<(lYb8xsf&Fik%nbD#|&w4fC}
      z1iAA$d*BUq>b(6c!Y>lZkwZj2aqCAnzflDEog-wPhL31ChaPJBT@#+4<BrBSPf0k^
      z1@w~qB4xFzvnVccby1gz3aC59HALNGuF9?@afqv*DY%Zqj_FfE7afNY7liA$L5w1=
      zY5Ji4XV^z#+{|urf9u445Vx!6Lp&covFAio&l8lA7-0-9->4JnKBH0Ph$fN;7+X#x
      zM@J5D=fkfbqqTx{I)!=1V(qhl@158au9X+ND(VF8(u0!jQSuQT!F@`8C$k!!nK`Hl
      eJgDL)tN2Oc{g@)chiS}kRU@r_X_nWGJo6hG|NL$M
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_bU2hUW6g?Mc7wFm|BGOV7mFj{?u|8TtVwz}3h#J}O=EJZZaT?gIvx|xU$p=kr
      zOnmSM_@j(>2GCe|QTs4^KhHgL@7(?V<Lfs72WU7*5uToiccL{-)VLKyVKCKNhDl2#
      z(L@EU$5!+cF*%jTFXd~=!9do3Y27f9BdK2qr5$7l1zT(^!cpt_@I(d)A*UBGLa}!~
      ze#i-ZH3~&C)sm3*efBtNR+d0r!g^bUD(Mi)-ZH$~7;wJFFso&bqGOpy8U+^{xXcB;
      z#vlj66&Gt*H`-MfIphgjJr&Al)5%b3Ukt}gUhGAI7!QP2#-2Mf$r}|Dx-;tk9}~An
      znvdds{^Waqy5Q{p16kW29Cr3sJxrU2(_z}I2m%?$^#_Dk^GRMnJB{Tx`Au~|=v^Qc
      zFGIc`O?4ojDDz;|)$6%$mW<$b!%*s@v4~?CJGe`D`1h+$D6N_)!E5`EmRs*EyHMk$
      zOY;wxLecCXTaLA|Z1X0vZlW7-Ib#;NgiZFmW!prynqT<bKSQy(dxp{{3n=q<(}s7D
      zL6!AgTw`Bt20;beY%v%+meOcdCQET1P-ba76<jw-HY*D%WN`yG`GSUik0r5OYko%Y
      tBP%I}VP33a$+!qZYPhumQu=TXvb})t4R71n9n@LoEzchAu{LYp`w7!1D<l8_
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&#TT@$A6#jND4TL};<x(uDD3;tHZBoTTq$0H?ghDOIOzk*&2)mdXl1vh;RNFe^
      zqnCGI?8TWr^+9J8I(Ej<SAUfHt#b}1smV-%spI6b*V%jRwZHYPZ?E&`U%&na;3QUj
      za496N8J`&O&1x<m&lU^W&2m{6s&S)Q+{k6))8?>LH8x6m?UKH#xtP^HcoaI#eR-p>
      z9$#F&rn6OrR%;ji6h`Nt9@hyt$-PUt^@35|ENg|E``Me?gY&-=7<Nuh7pi()moFN*
      za%y>Ha*7{?L#bRLSDjMm4OzkKvYbqZR}_39I-8bfrnsj4aHAuDRvcDvhr%SbOCh=s
      z0(>~4aQ^8V_LPVpLG%b3zaO3G6YHo#Pm^52E3Hs?E&wkMDIA{974*X9#;Pta8>@L1
      zA~;{n8u=BYoRepJ(o_8?S5Y{10N%;1U#QI)c~d08MtT(jwuhOkf=aUvPvY1r?P587
      z01#H4Styo}r>*O%qXvcUP`DW;ZzxP}p)(Rd6eHZteM0nT0Aq+Nv>4f}u2hCkD7<eo
      zy{|jfRFacT!L;ybn;eQQEhv%!oWiR$6ekttpCJk<LFh`lDH@+Fm{hh^q)*Hi^J}`S
      z;JU(Hs-%!UK#iKSp|J3*V(p5c>$)~Ro+)mWjIy3CtSxD_v2c@{(kO~_I{cnOn=}G`
      z<w@i*9l#rSOJQVBF(g8l{<OsIS=U}E%7VULC(8C+7rW{$T((W0-LMtfv-MdBmbn0C
      z1&g~PQtiZr05Z}E0!Fo}H%hx2YTo3C%x-eD{7c2na#o+qNmDr1{G~7^-HXA~g@P{6
      z<c&&2vrBY4Y1DOEg-~i`qLI?6#wiT3LAm+5Vl$F1#nHzn7h3q?TLXUD)=V1$T=|ku
      z;@=<HL3`veIxjy)@N#ru2i-g9{RRC$anX%q{O@HzAOsJ>3=}~R$D_R61Dt))3W7mA
      z&nJe%3!GD?HH4RV=*zTwIm+4~hB;bZuh2{3I7S>`Arsh~IS+J1en$T`!oMT<2(cfz
      z%R(cm0ZH@pfN6Kwr^`vT897Pe1mE8zn|9N<iHBUNkDJ<K+$dgiaF3huw-`qV?W^Iw
      z5Ov2MA+gB6x&%5*w^_6y&05XX(b(tE*oW6~n!u%26PSF0M)8v5thE%^6z|fM1Luqh
      z=WlA@5WO-rI1}Dzzn4%RV0=)F#9fTV?3wl+k2!URf*|kxUQt7=$3r=6<IV5j^*nUf
      zxEkZ(zz00&L#n}G?N?dHEV*98I5bkYN<bRZe4e9^C}qlm<D{6ujIERm&e9TvWbigM
      zBP?ccj+TcfoWXe#;5Bs=;f$>9>PTXUj%4mEEtl<|qQBy${x3;MHz#F_5N?o^&q&JW
      zB;_VaxkXZLlawzA=r&2YMN)43Po!iTI>7^yCA7wBN?C}GnmTD4;F!3BBeLZ5hi%N)
      znnTds`xOQ8HJimZYzyC-nOUWZIpvO-MV3;<%+k8JW5_J6+bpfsNW@>XEnZSkxdGyp
      zqA2)Q!=j_|i{u&jgQ61b$wur$Hg@wqj@E&1DBN*&HQ;+5#Y}ORY22e8@ALQ{*q`pR
      z+ucKgYocN+t)!Dy(ou2JNh{QlmiSv~iNBSWcu87ryu-LIT*4AZKhq5Iw@k}w*YExV
      DscW{Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT}vB56g{)qBpPD1Y1H~zeM@ZXB0?1^f~W;0=tJ6lpNxYUyUxJutY44*8y}<!
      zN@*Yb0sRyGC&jzFfjnpneb}9Q&z^Jc;qLtU^Ya0~66VVA7(N{F6CNZ^MS(C{B-Tpp
      zg2;%kaj?;eo#n#qpK9KTWcyr;t~FX+NLz-_Fp_B_t`CF#&XE+Zj1ogVLzM~I(kdRQ
      zi&RVGIBP>`V`cQ0oh=5o%P_QQbnLixA&(MST>ky-$MvzfA{%)oq9j%)lEzE>xoagq
      zV5qhFLv!pSLupNE<<=Prjb_N;Z<+&HK>@WYUSODExTUn*OO89_lc%Y*jNnnoDIuln
      zfxhdim|-;^@!vb4Amg!g+t216Z9EO$3<tq5Sw$5?v<*l4!@ue4jpkDWhDzHcR>)5(
      zUGdyMe%NBVHh-Sx73e9#!z9WWpn8yQgNF(((->42;HO)oFC)|ibTT@N3*YhbHlx0x
      zcPRsBQK!0^6EKP~>gpKBYeG`-IvIN@d*SUpCi?11hQ6a1?=y$7oYiwk-KQuD-2qHv
      ZrsvfUa)*f<GWF08vhqw2hS`ku<`L@Rt#$wa
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbtUT~8Ee6n<Xz16T$YQGp^_s#IY?){k1WQUYC8-DI=0F0SI;FuZ}mafZx?+TQfC
      z=^yEp7j2Q4)I={${0ZLLrb&&~_;IT~XLbW5B{h*vcFvshp7T7<Iq%th^!AVY0FGm_
      z8BGe4E9MO|ABDD)w>;O1d|$g^-tnw!L4JB62z}EEzl(IF7t5ZzRQ=wymVM8)f6)G5
      z#aq<PNGf#37>?;K<!2XGv=u6}7N#qOV!2$LQBWm?_JZdIq3MP-(}{F~0+d3!S~_2u
      zE+^jcBPFwynbKTowjzPIa(rR>q5w>lcP8>I!HZW4<xAC4t*DT>Y1&~mG{Y!RNUr+&
      z292w4QFc09_O-dF&{e05dzy=51j$I!Wfp5+p=H8yY}XDa6%s?kH9{0Pj|>$04D3S>
      z!6xGKR)+Q)Xh(;<eQF?!4ux#lc6BAXzM%a%bHUL<=~<>zGksh9MzF;Ws>`OYDTyps
      z1>ti8dj%mGF57INjSVbnO9z2RRo@H^?|fL9;w?+BhBmLP86ye@Ht)9*InKA9?Q#Sg
      zNh0c~fnDgxAcsC)_-Y0TdAT(7-!bk~-f&I$P8!&aJsiSy4qc&p8=_J@bKF2D(!9K?
      z7x|VxXUnV){r_r@Ny7?8$#u0~aLgdkoWz8}nU7vXN|oOWj#0d<e+IosAx*EDUK3jA
      zw{G#}ylsnb(B}#<w^tU3c1rq+Ehit_u7>4g=tI_o&or^S(L<(QdgJ7hPxc<v{9Syq
      zhJLk%1HUoUgaJM~VtGGN;Lm*j5ue2;AlX42YJi+(u9Do`9Sr`C{$G$v-cH<(GY9yT
      zwt&ZRtx?a!;aE&3j$nw@!#q#&Bo~XSG9t2e6K}LU@(^wJkfXY>2P3~STo=~G0^kX!
      z_9rLx7x(S&n4r5}+8{`gCeN=3;IEKYx;{xOkyP$3j&1guiA(<>@Y5|?Qw=BqINku5
      zXQo_RRseFN>ln<9tmDKcR9)ROLOrLtf2rU_3^`CQ+kni<-o{$8_<~u|_CB22mZpCl
      mUv5kDk~FVK^O^u}K1d^LBJ({>swSMlSG4j!rEnHsqxU^dQ$-N~
      
      literal 0
      HcmV?d00001
      
      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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
      UIoT;PSkNf$%vGp<9v^}FKO5O=9smFU
      
      literal 0
      HcmV?d00001
      
      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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
      a*}Hznl?%V;H5XpT8~m1P)u_2Qq5T)cv>96f
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUYflqx5IqmQ0Lw}d6;V-9QK6{yenldwRhu+LE!NAo?eatx*Ilv~Z$HRSe$dyK
      zm}t~*YD_d<;^o(<XSR)yh%wP7-RaCTbIzH0X8Zcv<7WW&V7wh|3P)$H8&)BX9JgTm
      zo*f5)_M(F8+t<RvL?es>%Z|>)I@Z&*+nzlW_?~k|2SZhVTDK#u(38}=mUp!<*_hRK
      zq|jNMs1{3=O6jD6Dl052`d%1WUR1Z-Sf@y?6tcDQ>FPu!^_?FnnXH~HPn9RD68I*^
      zXC}@Iz*yz)1s)@C=~A(Bp;oS!6pWje6V)OsibI9;T%d2zc={G4XQP=wThj`?O}eC?
      zsU$`aLy|7CSO*FnW47yfPBgBN8Xl<=qR3eoP*`hX9aa-;EIIFFXuXML=$2m_P2|w6
      zkgGVJuEy6JI+(H=t`<t)w%ocEIO4a09Zp!Au>ws=WVs>;TTQGIgmg6Huz@Z%Fs*GJ
      zhCWq|50CuYpp4QjThB!fuc{rR3L6&gwHmwbS>N&4{?8;4w9~|LbQ{QHEiZb`KuUg`
      z8~$~K{~~RqE?oOetiVb(f1Sft=v#uM+{`>=q6b-CTFs9GTc2`d#v6aX%Dbdd1+(mV
      zIw-nU7-~*nOyR&^EgmJxyMf&lEvs&z9~ornwbN@u2mQ`PzMOY0@=f|&8RquO!qA?O
      zeiF-RC$_g`IT8Ahwcs;L>^`g}Q$M{!<dRSB3Do6BSo07A>LE5fV5kj)e0GaGH48(z
      z+^PmPB_|-+W^8GJ9A>VP-2DF-`VRwlkxAc6-AghD`INSxo+h<sGZWhqF+JFhVOEbY
      zE6tO9BC5uS$XY?X9hK3S=z4-Y)$MvddY|E@uwE8Gy+B62M5lU%<?3}p(AO+&5oAbH
      z;8*1Ft)rE$_t8oulYfNW3%wdrs^0Mb>g^(}nHH1)>}dg9W~N+QP5|;d<}s8XoyXn<
      zsHVDignCbPA2_;?3FKh2>?dSS_BGLx!+z?Nw%6gnk~9PJIJhLuC(?W-%@@*q{UeR6
      WiOlyfsoHP^M``7MN#PidqyGocv^k*w
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZuty-ve05dK_}m<A|?c4mPgS%{dK5I+(Tf&t3F=DJqpV(cn$3cMNv55PkqE`b&l
      zvH0%3pF7`ue7?N{IKq&l!*DPY3z1b`n@l<@tD;cWXU56LGCOs4qP=#OBVgz^N+awv
      zyBW`v^bDbR7MkK(lHN1K=Py#tYkkSlW!U>QTw1S+qMCa(S&0~ijeTVGlGS7LN_`sm
      zT3A;y1WBIe4Esrb_3uyb^pm0v{y2SDI!BhaVHhNT9B0C-MiP~JY6a2V@8rZ#9^bmE
      zkm^Dk#n4-=eOOP77-&Jd7{KWYAtI_dRRP6yLSjPd`)pvd#e~>uAw6ujkp7Q*r;fz!
      I(%Zq{3qILl9{>OV
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYJx>EM42EBq<3c}x0y_*WcMB17M?@u1B?dkQwrd)pl#oNY1n6I5;0N%d5YB-P
      z33ah$`?3A%{rr0W0C0)}fga&#S-n&;24khFor>OT7o@G#V<TrA1v0|8g>2;><kfts
      zRUl*uA#4=o9bqpO7cOY;<8v@`yCMwE-<0N}c8$P*aQJtlBlV(#2qO4Z`q&=5Cma`-
      zv$f)G%#*%#CQM4E^5}k)jGTTwtKGt+mxQ7y*Ka4fksUc<rPp=zN>7c|gnp86lK$od
      smcmv6IeV~)9LWp8nXtv(jB}qmLyX$V5ZnJIJHI=-7&Fg4aqMCL8v#6DN&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBrXn7(F)$ge*&eltP;p=nK*Wq_JwP8j7~Os5F9>7j3C_mSmxU?Jl#~Xh;1S
      zepBm5zuI;tGCHF(zH}Uai*J8G$8+!AB%78Qzhv2apL@=E&U5ba+rQs_58yoBOClyP
      zzGHo0<!eF3$(KC0RP%k?4f2jx+O6h`{9UQ-?RkEXL_(lX)jF2DonPMEu}gtKXU(lz
      zTed)dv08KUcPiCVeoZYExVC5cyH_NZ?JsX_Rc#&+ivnHKC8y$6f*FB$Hn%R2nDxrG
      zfgbcGaY&%|F(?y#=od(B+d+sea5$TLf-nWHo9IAi5=Yw9uHN=-tK5Ylf$oSV1IKVY
      zi3}NAoy|H{wQAx7h6zE&IlJUozFl6Z*iKnsDqC#Tt^|I?-7e%JOTNA3(3!j{FUX!o
      zO`OCjy5T9$)JDUN6H&DGqq#-d&lwX*bS3dro5p$H_k06mIBOz{9LF%N{X7~4WZT|{
      z)}~_@a_dP<(w&y{`MV{1FQ|Affr}N_UaH;MwEb0CEs*BqEoa^GEAm}0#_YQSM<T5@
      zA=qXd=cN>bvkY!mssdWa{|1XOF&GS;5`nXiHNd$QBAj9F*pGDfqKOyr5`(c<3mSpU
      zM$hZ&#e)DCMaD55*$PuaL2=99Zr{>CD(^BtG$P8QPll>4o0!2XEDcoZ=*R&lB7F>C
      z!NhBLU7$x_zYtDffFW;9Op_Q)#iEJlaY0&8G%<@e1v;`f7UfM!Zid%QnnImRmg{jC
      zgHf>!Q)GFE8y2YIHJ4uj-p(>T=lx_34CcQ%neiw{qvMD^jVo2XW8z(0XXJT4TweDa
      zi|E8`8*o$0lQ{G(t6DNvyqaIK7u4y#$T#Vn^aiKsN1PwD7&7we^RJA&GJJOPHwEce
      zH{W(xCHNfMhxric2S}#}(t~vztz+aNPJe}-tKVVl`ouRF|KUC>J2A-5!vt}kR+tj`
      z7FWx}wE00Qb9W18uz@M=m^_i;&N<}y7L!*&^XB=Kyd6Y-=DymLfSqdbX7ex$@GPF=
      zjv;5O56^Km#x;|2Cm!JRWF0TGFbuV~%k~_FGZ@z5WfXWuikikHBBf*?HR23wq#SeN
      z5e$i1$Ez*GL(0mJkif@8{UoB!#1(~_V&3L7)&}dOx}kl{7bhq7@dg3osXDGs3cj>p
      z2iXSj8OuMXm@m+edvy29i0C0KQ7Tw*Sjm^7m+_V+^0=Ph?(k^p(|b5Zx}~WG-6-j%
      z+UYVX20!xmC%XAFdhrW}@QB~^Ulrv^)#b3JBrM)$R2X-p6?vTG*P7(ECYN0{X%h#~
      zhF$*7@;?ahC%gQMUH%=RY;;M>u%aj%{YuJJtm%F)5JL{BTaUet^{@FFMlnpzKatsV
      z>xs+RG-5ZU3<FY)k+i0vVk0u>62}#Y9HDgkhGxIaqjIfxM7k|C#7Agy3qYkr6woQA
      q`S1EtL`ko5Qo>zp!d=vGQc0p6C{*%3mE4Meq?9+Hnhn+T&Hn%tufKZ$
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKmF$w}P5Jms2y4l@Iyn@Zz7_9BB76dJ<V+>2ykU&iIZWbQELy3uCVPiGS%;Ww4
      zeBB=aR%jRsLOY17;4x^!rL!`6uWaDP$@7KplsFx{4ysEl!<aDr&_>vvZ;ykLfl&EG
      zWq>em7u_FShSr4o_Ei#^y^CI|jW&uf`^j5oQ%N9<QeB`(@e`EDHCUeMQ{_AAH#NFA
      AYybcN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc^F5dIF`(oz>eEP_-71+=X|xd{qb#d2{KG_gn`PcGXNSS`DHb{FBNV0`vP
      zUQ7%ajr!t)`s9_wYy2g~Ioopamhf_B&+N>6-+VLY_0Px80CYkNp@gCHy1t;NJlD*p
      z4BIk1A-LtH^0slqNnPgjEp*Err)%@5Zi?)ZWrUzGwCy-erZ7}GT$p-(iVMfItt;9v
      z13S-9p0O>*C4?zG@A2UJ^!-fq;nOHX>7Z$uZkizwPfRf=89T=#2w=C02zD`4jGGp}
      z=*`b?F{#hwIYSkZBmkXY=w5Ux?wsi`bdT?t?najb1S(aCfT3E&KGZOTbmNw13IbE&
      znxqwR#nRAr-*f~q)Q50@I`$#+x;2}coD*EnsW^xRYPqO!!O0MfCkpJgg$_v6Ln;oV
      zi6K18-K?v-1WRIQ@>h$BBREQgOlQ;-j!P8de-}v*8-|36B#x0jhCP2%7ktRdWj6~3
      z<C<0oYg5sV6hn=}-H}Bj?>XiIzjWIoeSP--ftZpIohrIyYc<65U%4Ul(8RX%7!kr2
      zVe~S@CiF#f-kWcfQa2j5XSt1h(cnDCa}jjogdF$DKd`f|Fs<2vgpWO-Vo=T|OuUOK
      zg^OdN!846SDhe)FWQ#+gE1EK+?F?Fc(Ip$n+MY1@sOc}%Z|mPKQyEmvB1tlN-Ep`R
      z!Wcu`uepN<L>xDk3mv3dfL<X(9fBw&8=_kY!oHU_oIEOdQe+v~U~&!R5B!h{I%NXz
      z0+n>Cg#he972PVacQd(%3d*?Bq_T?WR(6E^z)J#twXH&Fu|gEJ*iU&9{w>i7lD+T<
      zbrZ=|G^XqCAeL-hMe{QHl7ZMN;>&24j#g!*l_EOsp`ku@tyig5?xOq&y02CpUqj#X
      zWHoW<S5^WmRIUWFiGJ*+^9>Y&DZ@LI<2|bJfnLc+G+`Yr_=Glmrq%j_K77RxzF`dC
      zq2Y&5yQe^{NSjFF6w*Xop{Ub1Lnvi9OIc}Zq6;<jou+>!$oLF~F+x^uFT*I#q4pQs
      C>M#HR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4&2G~`5dJoC;*dHt4WUh1{wdTkv~COHKoL?EKr)J2iG&=uZJmW0+%>H2Ld6U4
      z3OoT9gv2F<O2C~L;VlqjC!$7Na@pA#&-XLq{rUUoJAgIZ(2--f`JC@_JB~cxb_40g
      zN(mX+e&D_c?MH&{ip!`&>Ec!(pK?!i52UL@V_2RTnLrq-p->+8`$C0YARjyT7}!IG
      zN;{BYL?V6e$D$zKt^ex2{V~N*yyHnPy33F^TYUzt9SlSnd7Ly*27RCIcv5V|dpkn)
      z_>M0aYUGmyILS~xE^5)P7c$)HOl&tZ=mzN~yC{R<w1HX7k%}Aaz2r)4%0X8|-H1md
      zT`(P|^`wj@7Ie(hu&J8Q<ukjts{|hyID@k^?RdkZB17G5jf`blHxjk;1}@+t!(1q$
      z`)^!74!wP`{aVtnDIfVU|3|j^3HGvqMO<Ofx%(>i6xq{EC)r^+QU{ya8aZZY8L+U#
      zFe68QxR+@vjVWk@%prnq5Gz+a@X~ev^FCIRi5Uz>lE=2s!%&1e))>r57tb)2Sv^+C
      zTAp4i!#oNoQq(ESp_EqX2~fqLicOJGELexAd`?@Y=}Z8?CsgS)Mh%!jjj}3E{RM9m
      zS<=_E^4bvf_o!H3&=}&}2b3(TTskJKL8HbYPT-ITzM_Gn40&@*UdL4|5oO}+Ho47F
      sELsagm>=nu!?Cq*DSCF)F-9l0ui-l3b68IMS7<)agHL8$#X1^)08`-Hc>n+a
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUO;Z$C6g_XIhsI$*MA4WL#01SSiWB2!KrjSB$ACmY63CZL_Y)eMZtV|*l=-Y=
      zl|?pjft74h6-}jFBpbA1Ra|A0AC<~^-QzF{u_~3KnAhF!zH`sH=f3;b-@pF>;0UCS
      zltA}_v1F8@&~{3u=bDl4OE)Yzo_Q@OjY~fJh8vFXwR2*{HFanL$Dea#U^d_hGrSbZ
      zNLuR1yzja8$I=&Q4y11z&Xn{6+jB3M&kBeO0*!;78-&a<WjK+{JZ%5*yI;=E+!Cle
      zZM$~ZFOV*DO$lg&o+YzLqbY|h8U(hE*si=7EzU}R(wKFmKnsa7fx$F<uYA<Pc{>m&
      zjXa0;My0(>sHz~a&Gp=?hV4)KD+A_@$o82?E0nutve<>)I$of%7}_!1xzgmkFAXb)
      z7m=s5N<EX00y_#_35%N0-Yf*#a%jh1f%-WaPJ~9t6ck-nTl;c&2`^Kd=`CJ2d^zA+
      z6V;$hp&Szt*q_4zydtnGkm1m>=|q9OB*$*LtWC^FptZ0uch{6k(Un6{(cQ)Do1N8h
      zh}B-#IOO}DUys8A`B7upUW^tyRH-^lFLJ{Uxok>lNh^zkcvV?-<eA(Pp>Ml$y-Dt)
      zIUK`rDktxXa#dXVU2i1Srgx$&pjT?CTwbS=h@)A;6v()8IpmrR{grX)NF!j6vwse(
      z$Cn*P&Kb@qdouL=I3X3w>mfTbi#{|lub&)cUhS$cX@!_!7udmh=~&hBI4iM5+{wA}
      zCR^CD6^20hiN~AYseiv9omG&r*#&8ay*kbd48`34FIE=ka6x(TmOxLX5B@7A4NDp{
      z?kehLx19GJYf!na+Gs3?LGV)7+kqMw(xMaUG9+>Y+AE1|uatZ$yVoO{&X~m*JX^IQ
      z&~aH{d#s(|<+19Hj&}q))(stWj3Bt^g~Mc_+<9W<G~UxecXmI)*pM=Z_tg~HX348Y
      z<b>ljOa;BqCtbEFSqhu*BHxt5c06{T8Xt#MMwX}S^76&>B;~Lz3o(_=%l;Gs8&6G6
      zt%F5Pb5;vZlML#(>U>L~o<@TI4g8YhQ;DnKnkha&<8N`uR{p93zzmxCn@a+)4K08M
      zZ0BKcX9rrjqd@*-stnh`huAq<T*IFJwmaBfOy}3ov5LdRLu=^N?jPb#;V$;J<*%I3
      zTD9-d_y`B5Te=^h^tjlnt>HE8e)>LPQcx65ppm~eGcI5YuJO&mPAno17j3wK{qQ+@
      z0xAgcIwG9G5(cmwQ$Ci^Nhm8~L_0~c8lz4zIz_}D{+%T8B1dsApEL?OU6pj3G1Q7~
      zB`0t7QJJFu6B-_&Z~6hwJWluTxr40MUldeV+(Y_p>*NnG0dR{&|AZty#cq5?;-6zL
      zzQ8_w$$9$~N8Hyj*<zBYO12ws#AJ0wDT*ncY@xI_Np^?2CY7q6;*N5uNf9HzyU09M
      zz{JCEYCLSJ<Y>kahASvXiK<YxJi@tYHbMDUz9bGL0N>UCY^ef_kW^xR4_5`ytSWT}
      zy0`~jF?tr~b`4H*6=#$s*@$y-6<Gy$4_Zw}Bz#sk#d*70mg5yZ4GLg&)0+HH1JO{S
      zlENj7Q}_g>)N!4}RNULcd`|IO_TU=cEv9Mn`YmZ<?SQ-V?;idBIY!-?L|0JNRr>%R
      Vl2QsEF*b!OFcex$au$|W{}0Xu76||V
      
      literal 0
      HcmV?d00001
      
      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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
      QtG;%xpdB52{sG$m4GVrSJ^%m!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%TC)s6g}5*FiH&sN_h4GQWt~@Og3ErssurisG=?iO(k}NGis(aV`;{w>KE`0
      zh!5zdn{KGo1s~8wzoB1JamNXws;Wxa_}qJR&$*BBkKf;K05q@~z$0wG7w00%GnGVf
      zs^i=ksk10a;}14Ek{lbMvm+^bZ;i@ioB3xgp-ktKjsy6F7o+Q)mQc0QD3Nrfu`1PX
      z4i5<QiZIbkwavI^S0uSC|2n(+xwmmqBaH1Tt+JPd(ptSs@SAB*R#3uZhzcGMrrJu&
      z*ZJA0G{@pJk%SqZmKz9e!}*Z(v%a!~-S+5n-|f9anEvRlVLJUZPkQ_AT7=r#z%vp0
      zU3A<xe6yYUNd<(t5c8NN1j@FQu^C6hL%Si1LH-o6y%YasU+JW|iDgT<)t3MLG@H(g
      z5FTnRO*0YJN*mxQp)vBdgz>w5vBf)-_@5yxp^P!cfHM!{1<TiGCS)dJB*yakH%xpj
      zN~ZYh1n}ypavTl{FpU|`s(6T5W}JAR4L!!m_2<{9T_PxbhVOr2#>2hKM&U9ys2sYm
      g1`AkZpDGVHnqT9;ejb*K{*UmO(LE*M30AOh3(fGu7XSbN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Pf6EHA-EY7E%JGP$~{>513vmq4FUSs1y`cqA97wZR;##VOdwZcA<X)
      z{s<Q?AaUTrjRQXkF`HN=ATGJ=?2PBVH~YpvetrE0U<+$80>Zsl;zXonp>&$%CM&I#
      zrbu<3y>{uo<hvE7*q35(XjLJ*T)(-On-@aa-l@rA)Ck+tQ+O<);iOeU_oa0zH_tkc
      z2=s(7*UpVAShg>8DWmt_)1Mz!LhhfrtBfk{6T<b4KB3mm2eOV3=M&U1OPKE}BlpTT
      zN75dMBP|JwJTMCgmf^fA){3EWga_T}=bm`_4q@S~_r&&wd8r2vy=R2x`j}P=^D;dc
      zT6S({<2fO&to1XEbSE2_$~XQ+RR`g6f-6`itcv4f;TNM%ca?R;(^8gl&~cC7Wx90g
      zgkQ>*uu8p`mo}5T%0GVj|NFb;<q1j07-`#DI450<Rl?TPeh_9S9KmfKIplwfc<Kl<
      z9AnM`oEuenMO;a^l5!-D(dHM-eHyjQ^XUNynrQGn88=`7i<~uZ0T;RA!P^`IjzRd*
      zpZJ4pjgU*@uNBgFG_k~(1}>d(+^IOC&Ch84OS3jX6P?jS6-|JvBiR*P<LH+}xQ-iW
      F{RY*K%{Tx6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNT~`}b6y0|SOh^aXMxeG}L5podr4gzvHndux)ldY>N08R4Lvn?|VJ4lADn95B
      z@DJGk&<9<shAz97zWW1w^jTkhx4Q3S5(3h?C~JkebMHC(?6c3gXMTP1)6W1#;Oo!?
      zE^V0i%v=~)cCO?)rO@-F6Xa~S^tqp#mt1?M6U<AqyzE(loZ<eUdQ%G>34tS#zim2e
      zxw+L1SqgNt3G_b$wdR@>=!%RiH@6@?%e1Yp%vD<w(T`q>((^6XSt?8kh-rb2N!RfM
      zk|~;YC|e)=_U*&(j<3%MB>XL>BrrDfjF?Z!WPzS}fwpnWv4SfC7cvJ2$!Ck?FzJ?M
      z3N7d|a0J}~EtzaFg=09b<3)jy15-0_0=)uBvs9A4KR7C|`CQx%p3h(;N;?EzGSG>`
      z0*7ZTN6v<utI}Jnl_<>`ns(7-*;ul8GZCy?zQFi%gsgWIYmu<oSpw$|j*?H|Rh-dr
      znsq#|-ci;DGRU&i%+lS^^5nw0>B%xFWeTdsM-{Vz6G+bsD}l9YZwaKXeOZ!xVQcCb
      z7C0FNj&4K4QkEM=ieb*c>nh5LT~Qj=HC#RLw$wd|8tImDd&9t+U>h9bNnI|1Q<>@g
      zg<7;W<r14ZpQZO0F6nrS1>IMcx~YLY#s&1ioi!bol}u!&v(qZ}6$5YM9f5AfzS^u!
      zY}lG9OlNN?S4MTifUY59a}4|sIbOZcQL?Hi*A2Xj_b9(7ZE5<u<R`e{$S*ho%9c`F
      zAd|`N53b<+T*ET2gEQjHPF<E9Kde+-FOcQAiu6nc*HoYz=;E~t+=alioHY)qdYq`J
      zwcV)GZW@@!0>{;wjOL>%*Q6UdOq-X#pkqnk*iP7*=R|1PW$CF&v20)#b1AIgwhrdk
      zG)QZ<20p?aih57YySdK<PRA3VY1rmt5q6VX#3yPDeaeb8yTs(P#Uxe*I&Z5s8i?c?
      zxIB=;BFY9N7^uyxRHVbsAKuTsCVNxFI4P>Kh;;>F3H0&KJk>A>HnzB<?3cOl_$%-(
      zEx4gqlGiQu5$N52VxLojvKI=DBfUx6^nJ-jP1Y|2Ugp?pfreJ_<Hix%judwe@q4Gi
      zKw8Z+u9HYmo})ZT^R2)$jn9suZM-ma_7Qr1MBfjQ%Srz4Bp|d2B(zBw+7$Y^*Hd%A
      z00XMO4!nX>gcE#r$FLV^BY4(6^bmcCDh78TQ_5YtiKI3k!5KBf7*1e_AR5lnIl+_H
      zB9?pM&h3T!nsDFj3paw%n3H-cPD#b7it`V+)}XR%Q~TQeCjVrE&Im62ht3QoPSCG2
      z%5J#7ii=fT-i!Bpgg2lRq>gp9I&n2Bi`tvOBu@pV8oG@!mg1O-b-T8_H`71RuKn4>
      zG}T~Qz%+eTQAcBx<YU}e*~a_7aIZPjznc7aGUbJg{nyD#HASYT)Cc2_vADtpDL%r7
      z+xR$bR#ED$VlBPFMHTk<4g9pyMf;o8c!D179}M!j(=(ZvtBSb^htV{+k#7Ze`Bd%7
      Jxd9LD{{k-*UBmzY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtS%Wl&^6g@X_>eh9d5K1YSM}bfhgD~B&X@vx-5UC=N(yFW-d(^tPV`)4_>d){6
      zY>+4*7JLAoQwfQOgt%iz0wgxT!sEH;&OP_s$H(vQKLA+6EgLn$gM;vS7!*25gD8_x
      zp_Gt1NVDi!9*hOwRVejXgz;0AXfa~EyL}|1?xQS?2U#JtP&O<=yW~kjxfeW{9EeC0
      z8j<l6Xh^8*B<9-|VP+$diN42BufI#M23af|)X{V?2ggARr);!;Biz|nEWkwvrwPre
      z#tI}X_WGlrxhr(t(429xgtIJTPv{{h=X_gpAe?hyW0uewB~m;t4ktqGgp*VdI$U0u
      z?uIHc_7t@Aev%V5t0e!`sC9y?)zPMilsM$pmYRk}(-jvD%y5Gug0r0!DiRM9Bgy;o
      z3~rl>nQbVgP=hqgbCKJ)LAd*G<FwHyto?N?kIyUvVg8qOz#T5A&MQ{qkE`OdZ8|<h
      zc*yLZXX`${BL27hw{ZP;Sa^fQV=TWaAD-uPp`<y1g-?7xfybCzh2R1%vIShi<tg2m
      zUz?O2|20-NycckM&x((+;=N?F2E*84F5olE`oi1xm4$sPS(mEFDQg2wTxH?J=(RGo
      Ui|b`{4XfzEw`SS5ikn#e0X=%h_W%F@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_bTT2^36#h;&W|M8yG_|%~+kyq{Lsxz1OGIb`(n3@)67j)@$!5^8(^;6EE%aa6
      zmkJj81Nx&%&ulC#;!A@Mdv0^SbKl>8ZhisS!mAJ!!v3ZBD&pKJ9Ve+ta%-h=u}+iE
      zS$rf}w!*k0DMlw&IoV_TTK}6#){ZYM8(A0nW2#5pG&fG#5LLp{BBU1PJT7?=YCFm(
      zw@V1tHwJ`iHyz0c0UAwAp+=bPDI*W^FGFdM#ZXH^yNEv!R(bu_SalaFBOLY~wDJz2
      z>C00>4}{J+`QG}*q$x@h>4bPp_%LCur9cr{Xb|T9RaMOQaCj*b*NMPWZ(;_sgs7k9
      zHj#VE4{+)J6~6W5aKoRBk+!QvmdPx{BH`U+b%t0bZ2dQuZ@}LYVZL-HrIrbezB)I;
      z<(7Ln8*k(8UF|%?l6E`T<QWG1W1ygXkgSKS#mtHM)SGM6zq3$5#MD270z6{5Id)(^
      z%^LYVF!kVV_V(cVPqa?2(Y|82jIWjO^)bHnp7Bp^@voVWlmEcn9WX!m<Q4t`%oox#
      YJZIi!+X9xbQmwPk0#@1jqIiG#7s#{|)Bpeg
      
      literal 0
      HcmV?d00001
      
      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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
      C6=5_0
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNZF3V<6n<{9uxVThjl3uYTBVkx2(h402^47on;Ki8Z7N{VO>&_N+ugD+Ek!}c
      zKjRla=!^yiXZ-4nU;GLBOB|oOyQDD&oRSaOyXT(soO7P@vcLcR^j83*_(n%cpmfJv
      zGmBwh*~Pl+)I-mcPEfSn`dz<xRr2haPH<J4jYZE2WQFpf)=7sZuqy(vP3LxTwsuF>
      z10CB123`QGKy+jTc1KE<Tbz@gW!lyQvt~;o`q67udcNg43+0OfVp?Fwr0e(rqp6y9
      zD7QU*Jh6QK;c`Vl^EaHjz*yx4KA)4y94$)%+s|5#6^sj<%5NQ{RH!nBNw*=hNMpBw
      zUDzX#&KIg#?8ECiUK1GIa%cwjqhBCn*6Y&uhfWBryi{yk&u1tir3V5B4fJBCz|M;0
      z$eD1ZCcXK%L^;;bw5uk|#*!sMEm*dEfpah6vei;7hNhZN;N;d}N?E*xBRYmz$So5d
      zrEMUOf`D$;?}e7fUexksRo*@oQ`rfm=Y^|*RkJq)vX}1HC12Q;I*th(id;s6(9)ER
      zmXeCCXy6@%zdONi>BWe8;BBbkh`Q&xGI-a(dtmJi-n2LpIGmsE&d$8GA{W@or2@^z
      za7M@bEMr$Lo~arr;Ve@Q+!@nxSwAg5U6@wR#|@mv2P{9GUx*1wRJP^I(}nBGi2mF#
      zpixM#9Q*$Xi=!4gic5um*}#XGB8n$%Y5ED<gf$$w&S7s@id=zwzR(?30r|z2W>o%)
      zfigZ8D8Ja~Le1x9s|Qy?8Onz0_+`&^tOwE?YT?D}j2)Q?+_}KBoZGD2GuWuku{82~
      z#lTg}QTMhCX4f6*b?VM9d)%TW9SZ{cHd`fzm<TPqAw9J~77ff`Hj8Vxp@U?!?ble>
      zz-L$@Yinu^&fXFjP8LJk4lX5({X5Eee6F_B7Xo|QO_D4M)eLHE>l+JEg=AwXgN8uv
      zhH6RK7_4m!22l=!S=_?14${#UT%4Z)3$qN4EX<fI+=%nIYrw_|D{ro@N{5KYx;c+4
      z+!k*_Nht%D`+rFxE%LyZT$^sfDl@YDDQPz*HYVdwSbU+{EHtpDW~eXL;6U1;Z>>o+
      z!v^D=a_z>X8#-)XF72{1d0^m6+@}ezqp@q#$<Dc<SC^M9^{MLb{#`k)>Pz&p!$z32
      zP2ZOste(~c;|*@tG*Z|GeuTN{dyu8%6@HgfFpyJgm**@rmaC69Ilh&7m*R8B$YZ=Z
      za`XxI{)_`ZMka^&-%CKGcR@?{!AR#YK-u2d0E2X>emn3c4iirBxhH`=O&!6zo{^t$
      zKx<-X6EdsJ)5FN5k3?`rteC(Fj1VM+qcqld^L7+vC*1K)xFy2f><TxE6G=?!sbb2g
      zn3_2GJ<lnqEVnCp`ca#GrWMX8PW>mG3MtlT*BfPbY@mtLO`Pk*`y;{|R1A{GXKeN2
      zLR1zdo4_P*1unLD8>253V>aRK(qd<(f1)S-S6ignR-|Q2(^eI=Bh!z5psX!Zt+&m7
      zGgB^z#Qs}mr<!6sX6lp5FPOi^2B|*5r;l;-=x@m6%<s^z#JReXG$EU~lXLjj#A^J%
      z>2)vpg0>$Stsncf0~pW_;tbE5-87zLks;gn;4uyX|9O=QI+)f*y5_Tv``!82=(Hc}
      WVxPiS5o-_eh)*?0+_3l>J^uhzQJf?I
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      I#OrAM7pu>Rt^fc4
      
      literal 0
      HcmV?d00001
      
      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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
      aQWNfzOBx>FAzj(|gY^F?4N)&CKKl<+mA}^j
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TW=dh7(L^-*~Z<(&9%X8Lobl})|zq$mx3D-n&Mm<rzuS<!rIxm8*O&OdR>ve
      zA|Ch=s6s$1@sw5}s7OFWq&)D%FG8FdZ|rrd2q~G}nfc~?=X~dz_22*g_6LB=xThf^
      zFtlnsFmiR@vU973m%Cwj<BsobXo$A$J+#(yi`Kf@6NnnV?+GM|?S~6owaRthtmOqX
      z!mU`gDRAOI7;{W;gE5^~EXVS%3JfM2F}C4Ub0wlU)qH9}AU6J0#a#C-*Qsgf78p?p
      zRn&Cdwr5?-@lCH8q#-VFt`#$B+h*0U3tqLpW;%W|jta)yWiy5j^y%nAtP27II*y=I
      zz76Tna8w{(v>bD~zE(E9d7~_)^cCHTVJ{e-CFj9n)W2`l1cqOfsmev2QO8(Qr(4tl
      zkpd?J>B@p|nOOiy@MTHxw7?Mx@HX1hw1ppl3cIPG1YXhcDn<pmtES)bO5jv7b%1+o
      zH?JWn(65MFZf<g>S;QF9$ZE)tlG<(dQ0uUci?~GU729>Fe_%h4GH|B6YF2z!Cr&zJ
      zrsrELR>ffR2%Jx*?lu_J%u3y}{Eb|N0l83Az6-D8O$~3bdD_zl?WN-_yv+_$Ws?Vq
      z+aHp7-KgE4GS>4k8vd@1_wYV@mQ1FVRqa#*vtqb{s~SEK=xwD8aCCf#j|4i1ATSzk
      z=Rjvr;;?iL*Jwrys$}|7)yF!<CH12ZOpi4&m%H!@CN*5&&#N%5xvp&*j*c7nlpQud
      zcWb;UFdUFSh61K^Ok;*&HR~ab=t!oBcXR(f9a?00w4`Gmw^$qBEqI>64ooHkbHZBo
      z4GXVnxGiw@f1Q*K((or9@`uG>Z^TM&-K&`Ld%;rCT6Lu^$(rFTo$KJIEW&@@T#k_U
      zR?URG)!aG8Stp-5dT^ZYvwWBF$J3c#(VG^(pkEGyPq`Ms366b;a=b~zIU<x0r~F~A
      z3^mT-B_uc_0#4!-8OThhIlh2Caya@D(Z3+NLG<z==x3BZiGD6XUkSJ;B=?bYW*g^8
      z{|TbE)0r&{Diy3Hy2<52pk|13z~<<3^-J`^r-FJYXQHVnfiu)574a*<^RjkP&Mqiz
      z6KV$-NN=Hk4?Xg+jnod(n_`oZjq3F%N4};H->{P3sysSR@?4NdAcxnuBJ1@JPe})t
      z2{yQg&*kGz@h|z<!sR`T2XE<Zyt9q`4hsC6%I+cC*cb~oo?+rKhO^n{C<^?J+2@#x
      zU<V7C-ObGI6Le;F|0Kr__P`x1G2bHYspk?Mkn;xjQPvvxj@%zH@_Tasf#0tm`BV85
      dFXUsMdPKK=4%Kcs&~%Y;pAkDkU5g6u?thLPv3mdj
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gyG{Z@6o&r;3m7iSMNo;29bn?dSfW^<CgR2h-NM)m>jZ}^yJRoM*c#)D_ySfW
      z7CwMaWMw?N5Q8QbbIzPO-~9i~`S^N!2e6BJ1_?raB<_SB2Flh)!qa=gJHEH%Bv7uC
      zf%dEapeFj2n*8($MPGVK*rxP+<}Xi=2-G7Kx~}5~!U;@ahcabdzdSvDJ~s*JedVa2
      zLr6B7CPC}EH!_PPmh;FWM_4hGBhSO}KzbKqU`s;Ta4j|vY{T{ZPz!FAPuMj6e|wuy
      zZOr<%aE5w6@RT!bH_gbd8rf9{nX&YJF^p|usYR5K?Yp68$rBYlq_jAhoruO3_#-?@
      z9uiVWbIx#;z!ERMjU2~3pX_la&Z*WEh1VEa;h1F%IDm#j6nU4QK`5cjRU}a17zuQk
      ijM#K*dy3V+3TJF?#0s?;HCJFBHLS4)VV!R$u<;EgfoRPD
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ>Yf~Fl7=GSd*d}Zeq%@S)Dy_7I5D3(IBN3%ErC_+&a1n~yO*n+5VS}3u0$Mwx
      zGmd|u{sF%Dp*n?nnNde){NRsre9vwuCy4#9d(L^!dwrhwynp}m^REB~VQTOZy4H;?
      zBUN+Ea%$bMQxk@L%Pfm7Ub9whL)eC6RxAwxLW`?eHmp)=y09*aj)o?}nIn6}fS?J>
      zu}x7WwC7G#NfSbOvt$`g%@%}fCu?PT75T2YnOZV8v+Q{%J<JX?PI;BnZ49E+!8%PD
      z(=wf5!eF=JO35{?h*i^`c|z`gY@V0abKC_+D=Q)lKU#G}aGK!n?wJpPQPiQ~l-#xJ
      zXogOR<xERV)iw&ko;3=x#MWG;Xq4v-+mz?JFyO42jPaF|gC3)i(I9q2tAu!?vz^UD
      zhp{!II$5zrwk$T7LiWu$E;S>FOFCXgC!yIA+fMzOaIU-Ozp*`rq|p@}uiz@7?NCkW
      zpR|S^&g7^&RDLz|Hr&;jaXp8TK%YdgpKxAfNOh3znGa(C*E9?^bg4qIj#qJ=3n~d`
      z(y+``QFTr#=<qHr<G!xr4ZO*%$3|1e2E*A{TAsV!DzWMiG8!0hr9K(@(3y_6!A%)q
      zHzN+)6l#uqEdBLzT$t*<jstw8pAK<G@9G%A4MM<RKb-$DIvTVGa8pMXxA<9X3EN!V
      z;ci$8F-*60j7xE}diW%(cZ9Jb5qwWaPWEclX2G);Ta{K*I;N#n@MiYL+?Z5;U&kHf
      zS+XJuwGsob*5i#0mzX&$Xy6BS+GXFYq{gSS+eNV{r;UyeWW3lWBkANFqj-PTHi|;l
      z+Rp9BBoodmRW`8B3Ji0jg4#RG$f=EIWUFpec38`AR+!u~UYy1RnO#Crc6JvboUhdE
      zqL5RQpig-7vtO3Q$8pON_GsCtRwcPnzEuVfVbt@kz6qr+MKz;{8>$&jqmz^I^B05<
      zt#XX;KExB=hcKUcnD9QpUj$K>c{ee%u;f0U{k+B!Pw_&ccOPwu<UZoxv&fIL{BM<p
      zl;`O`hY-ypN(<;<d8cQFb2!f@c7PY%uyS{S1N!h1OLb1fyOVg4oF4p_fv>w~Ae?xD
      zwx4j3@EuEiZp<dW1KoAwcpk#_I3xl0JkV{<powk1@jP56{EqJ2FGwu*K1FhprSSu#
      zruNXZKvR8xA(re*9^kbDytR*a<n7{6;19Vz!RR9ldb_c2an-Y&*u#aP;18I5gh)s5
      zN6d5t4=^k50{a;22>iJRjsL$TrDz|E$;XUToU6WwIm}=IOT1?ADRw!>T|97Cuf7RJ
      z6?6{~G7u-h#g}l2Om3wzy2;{!^a(Ol#SCp>iMFv!yC~4-DA5Cy=^-4x|AM~6*YuT(
      z(XfX@9is?7<Jfl@r8sOX<3pDVKR&|8j93>|>bqse`W_4fTSnx7_E5!TUL|M2!~qJA
      d8!6!nNxhFhKf94TfmL2TatBc2o!4D!{{n$n0+|2+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_jd3;p$wLj<F$;@PO!;-KKvLr4D2_)?3gypd$5+r~G!9Xhx$&idDGjSFKtyV3q
      zwRNf6v*5l#TTuaV0%9$w1*^52U7oM)v-at0ty;D3skOE8zUOymxe4L<N8d-yz4y1A
      z-}!yd{`-wDeEQ_mL^MTi^^q_Qy)e8fT$@fsJ8LftCu*036AjVMh>twIx-N}&*RG9r
      zYZp^#)BI(P4fV~d)-RjiRL@kl)X?Y*$J%R~Q;BG-y$*vG#$(A;IF?!+?o3DgRLnG_
      zseaY`NsY@IYI6i?ni`n=+PogkezKX0^MjZMtvGvO^Q`rYn&+=?KDVKv@jO2bWb)LY
      zA>X;u)mf&UXkZ$=sPQai@a+1Q{M4aLzDbLs?U7^(%QQFSJ4P^BHO<ONcOt$i+7?ML
      zRV;0frGW^rNk&@JiD+s|ZLYWWtXLX5^ffJ-x_)`%BBtT}3`U1DX1X&5qh~m8{^rH=
      zr#P==y0!Xc3s<(RSk<_ES+-HP)VI;!6^=zW8rDZRaOXwVl<mQC-c6B2bmJB#Udv?X
      zrmT#F+n5F<qwTS9DxHWVod&-d9F3r_+(mM6IN8w@?gq6$B$i5SSr|#Al7PF-AUD6W
      zJq|EBy3ka#sD8n@X92d^t)0<WG&L7Ej-Rj^LRc7Yg9=Sy8uNdn7@)~C&8F#81KwvF
      z8pXsk)21Me^wAm6!Q%-4SwDrKc2jDm)|@eYa?O+}(`HOR6CYCpG>c{{y*ZdU{&=;V
      zuv*E_v*{!n<tOOL@ieCEh=n$d))A`Q$E`9$N1SET7#-0FO`lRTt!Bz}`~e3uwexJ7
      z#%gC16fr-2@?@|&y=ICISZ-5=4mbx!kssjfVoDAE(J{?7RnjPZJJ+U(bQ;sZrO{Yq
      zS-NXOB(W;IK`pUtX}mSuxjLMP>UXxWs4cP~-QEX)<r^-Hw5IA5fOYhFAAJrIby@9}
      zWGd2S)A_U>GK?f(07D)0qVd`lu;>)*Iuh=x3s9I^eY6406lO2%3@4K|wGlY-wMSCR
      z!d-Y9GJeAG0tiq$MSau(l{52uleg(Ym0VG`uIQ&uyjIMeJGVk-#cYaG3l=b)oiXs)
      zmBcRH&L_J`Xm0)H)<}0M3K!%fSo`SQV(P$_#ZwLObgV5u#z&i6{4_4lcLV_bW>qIx
      z)UbZkX{}NAR7VuXFx+KAE=LM8@^92dfk}WYnymu;qD|xIG=00urqk&(AAJd$Vt6!G
      zoi)J#T}{(;)K_d8PZRX*t2R~B1m){%HhrD0gOx)rZ8;afG%|<!@$NzA-(b_pbc)XZ
      zhE1oc*$vL_3zAT9pds3Oi|+bXpxdX{*|Ba24kfQ4W}@!yn>y_#fZ2Ci<Al{dx`XND
      zg4Q&4c1GI6o%0jz=`J`L7w8t<rF8B-etD3Acj<z6fs1R@4c)KXI8E1n(58oI2jGSV
      z)~n-Un%IxbvPx;-$woCZ8mev4w`}@0eFs|ujmB7aI;-|fwOLBXPs`E+e69&~KH3G9
      zDM(Z`A}6E(Jxq`41|MS@Q2@$4UAL(oKf4dN$M3~6lSE+&1zU9!fvo`7L^J~J4E9os
      z`WPTjgw;O4X%Exb<HXXO3a27@nP|MsMGvNFCn7fccpGrAor`4-GM(BRkZi7TDxNNm
      zR1V*@X&*fipeN~j3e+K{DQ*F{M%Nv`WLAxR^vrQ0Fe^bd0(6+3Q_A0GI>}AB7rKrq
      z9JT3rHMA1wgj<9!*z_X(5bhuC^HaciLpr5U*JSCr(;>IgsVWr4*A;`6AKCO{`Ux~U
      z3_7skK6`SFR@?lUO)snE4p7U_izTUDzp&{%Y6(!9er40Y>7aqeT|%0z7p+Q!TO+#M
      zzuWX{x(w<8Rvc6I#Ei=>QhkBl_|egi>M7?-vOVx?Rx}PXbm?BfaYEexiG38rox?Tf
      zmIL&L#*zQ(C869PWkP-5A8mS*{siP(<FQmY8cUuX0du|LdM>Q3_0ik#!38yT^3Vn8
      zXeZJ+Km8dCDO|`+E5fn13MWs}uK>M8v-QvWHvNVE8+k~$yE_s?QZ&ge$lOAXXk4<*
      zE&=!P7JXpThZ+R^skpPgkN(Out^h+8LDkSx4ZtpY4bVsQH`U3%BfB`EPCD!N@iu+*
      z1v1LofS>*W<IZoqQ{T2Yn@8SPVZ;ptuBKx)94bSmP-bxa89UE{QOp(>`Ph?-T?Ul}
      z@pxw>9JATWKE&^a`AeJY^9iPVM4g{e6O=e<WyQvLqQcK5XsC!LE26PY;m&9qFy&H+
      zg$MMJMz+d0KEWtR<M%Y%vDuu)es(y>O2-HW@??6jgop4jAER<`l}Rq|WAkuE^-vOv
      zY);j8Ml_D~O?<Lg1$ZQn^6^Q%(=Jmi**u!ZAZJ0fgiL!4lIuQ7p4;tOB~oE?C7%p6
      z?Tp0QbtqEqM(sG&=F@l_Jasa?A!!IJna1NWs?*WqZJxkYU>&&|LS0*A^YV>wKp1a`
      zO;lo&U^L?!Peh^C=E=&pAI4(1_VZK(w4Ab;(hY*#7_Zovh<8D_(=m2p1>_n|&hha~
      zsM+zkefLGJ$yzg29b2SrQ8*P2@C<s?&u1cvwW1b@Zj81fHdS<o6G=5-WUKLnx;$8M
      znrGWQhf#<WYca7foKC_Vd!+%ZIuh|qG+VB7BU5Pg^S?l!7p`2|dw~*Oz>9pm5dOYk
      z&M1>?uIB~_0l5Ox8U5Ie%VG56L$XbNUW`DLgDzjFRj7B)n#K~u`VdfD3KUVor8`rh
      z3RTZ#HZSKDaP%GFWK%p5$*Lg&5fo#sk5}fbGoM*DM^XVkho<S4&b4_puQ5V|(?yRa
      zgzjjCrn(Yt;dMSODP4O<hs~ek&tq;hrO8Abk!x75xsBO&5LnM)A76lkt^i)H*X9js
      zLmssuA8RpM7z2PEKUu=9ywT=%9qEOSLL>nDbPT$|7utLgcLD*lYq6SD5Fl{M_zCMA
      z{PQ)uYEZ3f6pUd8!&}7_1x@>m-X$8Lw@Dvg%v5;-B`u7Dr(l#nr!v6n82_0I_H$NX
      zw7x(vo71?0j62IwiA-3nkZ!X15*57<qF)B|R8CuLzSOiull5KQDWJ5TzhLv_nhSUn
      zk*@frh+_Fgo3B(XHCZ+XG|&jX8qtSQi3HuzXJH(9daFqlb=4OBvdv#nYDKN^^9dh+
      z)m2_C*piCOPb9)ymZwws>^Z>K(6j)5ov-)tbvg0&j$k(5z&An%)B-?x{JI6|hOXh8
      zY`&RqLCYmLbAToL&;y6GTB+S;^S@^Kh$ka{{wA_?t+GND<7=wtmCg%{pBJid-X>H{
      zz)SY*C)bD(0p8Ac`uL7q=3q=D5owQXu3dptERuj?+{LIve68`WZd3I1N(yq0*%g0#
      z&4zMaLm%iW_t|_uKLA2q;Z$pf9xzRF`-+7f;Y4%f;&dd|n)gdCW}2KyAomdO^zn{<
      z_{|Qn`CA$TirN$Lbhn>T$`oOr74!VOi;2|nKWg)1yc^*r5$WzkLO8z@rqj!DWq0Lr
      zT)p?{)=TARFBT;fw^#Eb{d~gajB21~V>H%=5{>uURHZfR!~CSp2l*+i4Xx8CYf6*e
      z{zgxpl+CAY{vIC!U`Pbg5sgism6T+e^fA)@5d{~bLA{VbtF1m~^Y{4(DrYAN)M8un
      z_62T%^uoYMqBkA4L1wG<x(RFj{5-78$*TPP0^D5%OtZojwUY4JE&M~9U*aEOXt=G-
      z;D17kg9HBw)9GeAC-h<YGR?<7%hhsy2CrP29|WUUe=}=QG7O*TQeEfJ&*@yLoqhx&
      zO(X#h!}#1M9IhM)m4IA|?jjS}5q2<(Y5a-YT%X{svs*Dc8*}=wUGV04_A$ZJn$Yuy
      z%6?tDYo|&(3C#(ZWKx|zcH-W#x>AgZ!f_9A0g;PL=*w0&Mg#J}2<=5GQ&6k?Om~kI
      z3xLETPDlYf(bQBxyCDn}!-*Q?<*W>c*su3g1~)($vTgw;Bk4ng?&!)DqIoOgZuo82
      z9(wyB2oNhB-=A|Vurn~J*#^wQt*%%%0(OgyPCG>+Cj(gQ?>2wJC@#jpl$|s6`dDjX
      zi#c=4pAk30nd`~J@gY=C$8lK8$7~@j@w{+;;ZCJ2VvD7ehvX@{==r4xfa(GICCHO;
      zdL9s;6#K-VbBTEcYR;Wk*b)$}D?qN%+(@Xp)t}JV^8{98?*ejpV!k6!xy~=8;Ipf3
      zswV9)nF0iU!9@jnruWk`*!0Zkr>7hWm+S~n>8A@NNM$;fOm}z36DgE#s#E4L9|?8#
      zL_Smzkm2+zpCGO~HD{jXW%1^8Yeyc(yfOJ?WbRBZKUT$Gd)|!6XR5(ubE$v?Wt1(W
      z1^NCk1u~gTM-mt`Sr3O>qupTyk*aL+x4Cd*5>BT&YByt;5-f~`hwqjOTPl@aah_g4
      zPT^xdIW^1vXVX!(#@TYZjCZoXX54;+JDn49JzL8<6~x?*+6B?}##jomJz-WK7m#XQ
      zY$AkVylbC9O1j3DTA2)s0Ea8m8#<${<^bZP9Nj!*`OZ33$EmhVlj(3fT7s<3UdW8f
      zDqKHvkj`M%Oj~AYs^d*}x1qdIgwC`jB(VQ7te;gaR76qd0?UKkc7aZugVa+{@tCY>
      ztzS^S6s~$q@t}KIV9P>T<m{z6Z7u^AEz`rVzK%C9P-u4p9F>;i?eTaU;+8D7rBSWb
      zLfrDn*-**efvM3c+kuix!<v{XdJoGRP<|A^QiXP$B=YutJVxIfIq%N$h~~)xG7DCL
      zK!NDnfk!MEhRyetz=@0k(`|60kx$(#j+{8EK?ml5Bh3DSP9JO0^*5w9`ehx|vNfLW
      zY^#XHQz+(e@Z=X%Og8G`3LNj63q52zvfh>pRMMJ`YZQPZJj~|?q*Wq5ffF5__n;ak
      z!pX?Y>8_I_TQ&-I>urm)nv?PVt}37`KEXCl>Me?<NHQ62k2p#dkPf*>-6f2<@t<&z
      zy@<jjIwWRG+~n%0Tv2_Z<zibBf&l7u&VTTtN&mV9eo3Q5C>+l<H)Kz#{Bj8fskc)<
      z*CAVMxm3^E)Hw5w%`ab2m5prfM#(Y<CN5W?rjajZtpkQuEx2;|kjME2g^ssE^LmW?
      zvRvbnujI~VOtd#;OcLQqzKZAw=D;2*;F6>{TFEMgb3<w*2AN-^$CJ{f^6H}{y%7O7
      zs+fqYf#!HR(Hc=z!%lEgrEfJVB78Q+U=ZeRO*60o=yhdX;MMTpQUj_aFoCQ6p}0LQ
      zA}_vt_!9EdND8>VOYmLl`W}GqL9Xw?_%3&S55e~^*Y|K5q4%?(JyI`H%@fz9=7~#D
      z^Thq9dE%PWJaLtYr|9hyo}`yH<{S55<{P(Q=81bQ^F+m9`f=NZr(Z8X@f?h|NmPTK
      z)#B@Rvs<Dy2WfIk4^4fXW*nqhEoEo+P~GD+*S!CWd0$}O7n%14^S;=;FEQ^+&HFO*
      zzQVk(v>vBbdkh1s@pl{*<8K-uZUzuru!&2-#AOtsFHi$rPAlnNT1_pq#>`N5aSESh
      z@*Hd$r5ByFm)4eXhAzm^Mt!}=c~)hptFTZRc`)<=Dxn7<fro(a4nx#-NKiLjjDE%;
      z@f?s%;N6R7609j6^MD7^De_fSdwS@S0@;9RegcCthTJe`7<O?PhGPQuq3WW9x1g^t
      z;afpi6>DZybq`%$Wj#Sx=$|XA4${>Ce(MwT<-+SVqqfn&s;VBk_6fQkj~feoI5-}K
      za$XB8ucLu<Gq!j)MEg9%`~pqEjmivq$?#a=teEF<W|l{AVU$Nv#a&}R-1dgy=ECw0
      z4F8U;{`v$k+(!SJh2hqI2={{F_J0<JxBG$N9l-D|V0aHO{N)5NI6U@-VOy44KR{D$
      z*lzUU9(<`j&8n&%-9vZ&lMHh)fV&o|c^#a^%`p7CX&eWrifx+8r8JWV8iuQ!CG&Ed
      zMLC9NW#tBj=pI;%Dl4v_0k|q}6TZ|=%B%L#^+%~#xxH^sl}G=gSzurU<12#t2MGu1
      z_^r?=D&?_M#+7Da$41Jt3ya>4XG!Z)s=hT<W&R#|U}^Oc8m^kWvq{NcagZKvnb<>*
      z>^5J#drkI<H3>iR7zaGZf>C`sTvS1MiL1axHI?ur8q75`jB9BuPs1tTbigu;PUkae
      zB8OZutjTib1GU|>2fPiY0koGMHyg)wCwNrD^Pnd~`|&1pz(6z0v=Nmaq$gWoQBUE&
      zr+1qH3W{1Taf1tl((F=|dL!<Dz+*t(i_vYm^9PzH9-(yy>9B76*=2A-M?#*R<Xgib
      zPtbFON+$(9)fxK16Z8_qao;u?kH?kUsS+c9x|2qRiuTf~ZB!a8+D|_Z7G>y{irJNu
      zs-B=%Chg|kV7(k6ViX{oL-T1-9=at|23~I<FW-pMsGF#qZ=+FsJB{XTRKa)RS1xx`
      zE#HS<fjmfycn3A$XlW^b2S1c~m{#*6w2mL63qXGZ?=|~fY(iXHUfbH}HwF(ce#-J&
      zfUJBhr~jZ=vHKwY)9~Y=3R;kTYe2C49lZv%s??i*jL-SL--Bn>%Rit`72y^j@MU1~
      zdWQb6ou)dlR2vwE9i+Ef%HHXrchUb|hW-bj9Hft0s*RFCSRe0pjr*k6IET)(0`X7x
      zvh1Lf57O^jlx#UeWeweO4rJH{^&TGhJwv&m0>-iOGc=T+qm%giNVSdt!WU>EzX;fV
      zNHKniuIC>a$Q<W?OCGXY3{Y_XJctK7%3`96Zo0UtI>Tj$=x|{vN85huB2}CxRh&h?
      zQg6(&SgJZZNH(BFEqn+zd&PDt$;Sv7e1ZM|NQwBrU|fH|kNw_sY4wo&I=KGsOWpSs
      z$Y~g?XG}IGEzLfgvd?8|I8bt47xWxpRN9B=jZl&5?&~3M&|6lL;ovr&>%5K4@F^i*
      z&^M?i!>8XtWkH{n{m5`NI=p2AGF-DA2H-6ljJIucuaWR6j>x7!WI->aRnF7!H|TQ&
      z2esgk{~*t3sR|as{q*pxkbfu52o)csG$egS4~Ig5U?5nW;kq@!!1r<;^ZIsV8Q4aH
      ztAoCv{{YXoXw6Q#GSAMYiSG6ev=29Ip6_P!EM-%9E9XXKQ#sCQ@54DB>5-6sQh}J6
      zKf>AO**f2!S9!%1#oqQ$?>ornwDfRu$dkoBR5a-TuVOmD=P`x6JL!#}_W+*{8E`B9
      zRiqE-3F9Fi8S+=_emVpn047*`gz6NJD1gDED^wCJamd&^;l%-#ou$+r^anjXoX`f;
      z5ZjNvG4cP6l5TA?lX^Tbei_qFIyqRRTwlTXVaqu!y7E<y7<BAbRHqnd*ce{rgdGSx
      z<UPpO0GVq;zQG=P${+Fvy#SEEHnVtW@tp)<1}W0kQ0(*@JC6aS4Bwi=u(+IW-_P5O
      zf<S2ZWcc1t$xf;amUuG!U^#!goFC5cBOyCj9JGT_=RFyIe2u>B+kWh~`TUG~f<-Q2
      z0L54H5E@~W21^}b(8HktLFoB`&_Hd%P7iSl{tXQZ4s=l%ypwJT4t9&PELdhJ?C0->
      z%Jtn$JscWR6)X=92^RP8v)gFBTN96}CY2ja{DErXpuAF5?E}N*8TvH4_R!$aBS2|r
      zaL@sMQB>)NIYW#T20;pD*Wky1AI)pSXcM6{BHT-l(O&+sdA`U$MGK-R?zF=A`yToE
      zeHz4np%MHcRq|hH5`T<avA@w={)CqBKWG(yO0DpXmx$2if}g61hwc?0?UiEMCna=9
      z@OvRCr59x&y(EL_6)B_Fq?}%tq4Z}NMxV%V_Tq?c2#(&y$S6KlM)M+^gEh-oK3^)h
      zO)7Z{f5=~w)A>3aY~3ak_#qrq?UPA-NNV{doJjplrt&K?jemz@rnhAVYSihd+Ru>T
      za;A)uIypsVOO?!#nKD<F;JHc`$oaBJB2tgad9hq6jdG1lkeg(=+$AeyhnypiU{prV
      zm4mWco|ZN8ysVTLrA2-s>*N*roV*4K@5p+2Pr??<25W$<w}wf(RVf|TRJqWaFBe%&
      z(rK-dE~{1IR!T0mz9b3jMoC(CNXq(_Y_cAeOROKsX6seiV!bYxTJOsjJRXUA21tiz
      zgk0qrEmy0*=O<C_!INkGz27s8U*?}9b`0_i;9uZPXoSbhzr>qGW8gS`#s7w=J_&c@
      zuOQ|ZL0<JH5_uu9TGoW$2WhAH*ZdpQX8UM3|Cav)HQga(vl{&as5yr7tNc5(y^?F=
      zW+Za2Az$!A4mb1f`9JZS_}k=KWV}D8BEFyA<=6QQWHS5cWpJPo>ku6^tN9UbpERo#
      zgQF?@2mT|no!?>Ro1jvHs8-2;!dzQU$@NNAu2-hzd+*|_OoHf@9dJKy@!RB+M{p_q
      z4*!|_l0oYGF7{O{ui!@r@1b-kme=s>hxehq0eOd~@PG6FP>F?Wds92vRxQ10c($$i
      z^pfGZ)M}!``~h}3z*>c$+wH^N23oDStNRd~4zez$y9}p;tuN74{1J9pX5EONS^O24
      zmRomFRDZZeL#$VkxqXZoLm?Yngga@3wGC3SA<t(yR5UTef73v_mzHJt(`__%Vn&d}
      zEy2fj^6V)W&t96bU%a8Bo%Agow$coX=`altdugs|7+fxPVdNFsu^`tmpwJP~j)q*v
      zphCw|?a);bJj<o5&@pX~E4IlHCxqwHxji9pWHMf_X1v~v4BG>jinOl;11G^}X@E7^
      z89kueJc>P8GkrVhnd+gwsfQ)FUETX${Wv5+IDUUdPQu>CX5{2;v|T?>!{>yIRGE=q
      zMR-Bmq>N0d3VJnmAQm1~8Zjqy1gx3x{>Z?C0c&VUMrOe6BSHLH%ghqF_t;xO04`@_
      zWcD_iV>qugF<a(2F<a)t!<I|E!?SM5gJ3CV8INkitNQVuXU$gp_Q_ZM^nJ(X?15=m
      zNRpqC;YghyGS3}!Sf4zNmmn=qBlzz!PyK#emY8pS>UWPUHQ#tT4i`!JER;B3CrfUC
      z;@(I@<R+?=o9Se^g(k~wR42F7eEB9Vm2I?Ewo^pzprqVMSIAv-o!m{g%RTgv+($d)
      zA=-tM`LF<N`3^lNyXXaZlzuFa(a&WM{X!n6_hcV^AWzVTFq%(fKOFD@E|w>`Ob&9T
      zJjIjcyF5(}@f<nK_3{iak!QI{p5s;WeO@C+c&!|TV?M$Od7iJ37kI0@$oI<+`7!x1
      z@0Oopw=cs%{{p-G74Me}KO?_UM@HYo5eL*im$<?Z)D>vC_N*+E<v>D>LmiYRz0W#M
      zhAdos|5{eSkrmScIR|Bw7e!P=R^rV^&(UCMmQ`qbk6xB@;qbilG5tVR!xi|r40x=O
      z^We1V@nd?eE{k~;t&<kGi~z5p^Nh<V!T<S#J8;KL<xQCB0Ic6-&Gbw{34>UR3NKi6
      zluk3MGuly|wNRaEC``G0F0VG$E@aShe#i@L3p;t4Zzm7Y%&3swLD}>90JOMlh{>Iy
      z%5MjYEzRo2YSY*@&8-7E*5nH#_sfP*32KFFpx59@I*{7fM=2N#7^A%~WILTf+k|{O
      zBV9;*V4B^bQp0z%!*?pr_a^X-(X!d>;xha_DAg^&k{-Ey(4dT5X_~LjHJ7@YowPVu
      z5-i;>Tenk@wQH+~cT#nzB<mJR)P_n>2wS`Qw#hJ{1VA()`Sg!NJ$F-)XP31Lpl{_W
      zo(jX6h$w}p`EGzg={KHPL%AP6{wMhp4CQSqm3OF2-lY-p9!-_^akl*d4CNzgl#l5=
      z`5U##-zg@a(8cl(+6tYz1>XNYOK6AXq1{#yJ!Sdmu;r&0tYZ3!6`;4R61FUxM_K`{
      zuu8eg8o(2+fjre3%+sxM4p~Eao;8dYStGc?8p(^TQM}ATwqlLt^Q=l3#z)*{jWf!A
      zKhA}qM0sWJLSgAO%HCz7gerTNiBmX^;R~^=dx1eIUx1kEg|gT2RQVdz)QhTrjEPe|
      zsH>Pb<;VYB@*$js7bdZlehH)SB5L14_sB}jD53l4Cb>?oN3?l?I^+hlmEs_#%tZGR
      hUJT6CWT5tNGyqe+0cS(#7sNb<)6pN_G8|9fe*xY!E{y;H
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}e^7(F)$NeElghJxisYf(h90b*;lYN{0~)IbubAQjNsO<3qMVMCKmr#gLC
      z$MLZb`r?aYAJiG05i(<E9G`H;KT17!e<T}%<1oX$d+*uvo$q|#xB2Vu-+l*h30n~a
      z1V(nX2U@yr8Rhh@R!uKx)vUQ+w^ppGuI)t-YD0W#?58)3eIG&~x~G}OwqCOY&gI(4
      z^6pJWAhvB(Yu21;RX^#(F{ph*T=<${8rECHOgLmlCG88BNv@G=?qNyaw~UHei{O+%
      zpB+^Kmzp;Mp&OMgJqCf(3c7JdVDMzd4M`c#8Kz#S?-ljxs#YxP0*PFuq?OmSsv)1<
      z!;p2)s0my+mS?+Z%pzcz0{tf@5JM1yQc+B58&)ua^8yOp-tz3C_6b{6_<>$EwrQBy
      zkgts@cn;4KyrWwM{h{aP&_vRw$1RcLX9O<@473-;GrODNUsMo5G=?!G6{tuFL?pMi
      zM+44!v}MiQNwXgeb0-tU6mRl#t20yC!hAYEQ^?NGt*lPx=VM6YQUov2Z#$mvEd`hH
      zGE1x9uWM!6*Y6g>hAb6#^^%oIZba}(hgQ##7_MMY3VuyN7s64zA<*4aAwyqN@Fv(c
      zv6`h-t=etFx_2y)n?Z6zptnT3EuEe0HsqvVkq7)QQ)MY;6<o*L(zthIE$3KCm%^T;
      zwjw0gr2Lx--bGg66b+uS=w`8Q=`>^de?sqaC|meUH$yHe$RW=z(a0k(<P&-fO^j(5
      zGvQ!-MPZjlDf5JhY!gouIbBo_wR<IDT(3cz9}n-2++Dge>T$PMy{<dyHSaDXCt{SE
      z<uI@nCpKrZ*<@Dw{h@+&uyVm-eVgO8Im>Njn_EFkgJqrL7F(&*t0jHjkki{oPTyx^
      zTDBxcNgw2=FTg)`k-cO4bB*$b6Up-)K85(CpqIPr#0R)W)KsW}_%GZBkl=p_1(r#2
      z3w_)TI53<=KcDylPo5!-q&>sCcG_D!kwSXZR0HSKkp_lZ)V=oA9V+~oVeZ=W7ae$$
      zzQ?5}1uo!O(goyqq$AL`%tZ=aRMiG9{(-Rrj6XqA{T1Vfm`F?>V)|>u)u*_!PQa@N
      zxatE+)DaRM`1M0%zWL|Rme6tL2JBISNwe-Vd<{v|+3O}UsNg2o1w8Wkv)D{v(U#3p
      z%Q2!$((Fe}GQ@REx-yf0im~;{25uB6;OY_LQ*uomV*UUNQ$G{uRAPWe0iUrFpCgVh
      zXv~-VN`7TWRUN)&)G-vW#AsngUuNY3e4`)lvHU@vu3*(wlIAMN+9gA_LWS+a$2PU%
      z09<MzKg=EO8$6Nj4@(P=a9S=oRoFF%%7WxlEpjK1@7Outv-zHo_y-K)Ctvx8-Czp!
      zzEAc1MI*hl6IjFT4gr^mk$FVbLwvyMx1u?zG<>N<o2hWnI+&K}q^wO;O^uvyVDm@r
      i9seDsBcI<MlN_s$aK}-=X1>ce<eA2u^t)(tl>P<wtGwX=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iTW=Ck6ouCT%1{JRO0n41wpx`Alo78Fm>M*YV7RD|CiTgIj(8fFA;XMT|CKK#
      z(Zoj|{87ezW`=uxU^th(*SGfG=g;3CzX0U%OoESL`%L|;Dz?RY%9&~^uT`^QTLar_
      zTBfG<B?RU|zVU(bo)2b27=q8a&aEScRJ!V@aYLDnC>$I!giGfgZD4UjA4*tdSQ|%H
      z8j~A_z$@ca3xgpN!3v@b`Tt0|po#68s`HQ9&~i|*D%Z8T-EV7VOKtZwhIrNJsJ&y=
      z<YMm~2CPqf$gr~@wa|eAgWs?%hUDe7h2h7#FdG!MZ$z+x6hrij$t`W{ieb|$<8s6P
      zzN#~9EEpMQ7bI*GerZl6-7>$1u)~n3m0HEaO1-SqiuFpl)NJKy<uJCeCyd=@SoiQf
      zRqrY^S*~}fQ^N3m1b1<d`b{IRYv-0Dy5QFvx^v~Er6Ef=Sn@PB96<&_h83p=0&*BZ
      z4hp@2PR|%>9>Sj%&mu&nJCmb$O%$};2O5Zr7Omc&zn`;4fTm%a9j(m8&=U)j%!v+S
      zkNo)Q{R077(b(XF<n2NT)9MA?`{-YiGi-z_-)ZT?Rr-dV<07TJM2z-HHw@QsopzLf
      zIMzs1$VTaIUiO4e1UM#VMo46TBP3@>NKWPB<Opa`@*Aw;Eg|1Im|Zt*f{A$;lEO`F
      zlB`cWx+P$j@&qvT6I&<oTO;h&<m?6RWaJCnr(br8P7)OOKozPa+C~B$l02QkrzZFm
      z9uSmzO}BYGBrFq8XbFErC!&o(QSYNE%k82;#DSylb}=~750dI*r;AT0+lQzB0Lb|G
      AXaE2J
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN+fy5596eu1NJ%#-35BN6YAaqKQDUukC>0P2m5Y@Y1+}__ZCDH&Og3JgoblaP
      zEwB388S9KK);dmos`}_3<amC&o6VP)I_fYiyWi#f&N;sezyJB;&j8NAjw7Nluw#B?
      z7V55DF6@}q!jkFO*Q}ZwM^vHL+bf$+sj#xSV->mDt<cw8oherw%iJtm3Ws)0+nI9R
      zs>0x6E2ga4n|0T!jVr`0hhJ7r;fQu@$=u^!&#GN=Ot)So-nrJ@3IEgMvPuA_G_D;G
      z=310VVs%g0j_pn=bd8LzDMV)~TUG*HNE=8Z6-S>!_CYig$ROPVnqwf2Lvdsqsy(0P
      z&DyprsuMWopBpmJgM>)39c#J1yJ=M~`?h2jD@C)sW>#(a4i=;CwoL=FZ3-IRlYMr?
      z-?J-)1!u4BQnF?4j*F7S>?cKQ&$TN~Eso&^F*&#r?j*=PEsw_yJb_b`&+A(X5!+Gd
      z?+C3h6vX^nEikNLJ!#-6j1jnGxl2K^{j@5a7#VF7qoqUad|GTjqj0i4h<45obJoDK
      zc#b+5X0}l)=@xvc7V-WC0ew*+ql3z(_|&y)QtbKmi~qThlH}1OsW27<(@XIm#2>~a
      zUWwzpLb6$I<Y-_D(_~3>rb);2TWvhR)VfbPM7rnGWpkGulJOnac__q+Wy`FJ;};Cf
      zA|>H3BybUnalFRXEID=dx!&;?&FU3)f6c%WmK9P`DNA#WT2z?Q&24KmE$3o;$HJ0a
      z#6GUtE-4=muvo1tbyu%zq4<V@Ra|Bld8c&_)Bl4*TL4;JsnhC#kYvjN&p8e=g`<s%
      z(Vdt2-;ip{ak5w+*3B~ex4%=?HpKg@2HwUy;{8<xRcXytkYA3>Z4MHdOWu%Lkc*aq
      zO%&xK7Za<MdbMcH*)m^~jf{**`f!?ry7(JIgx5HvIMOpRgt&H??-3aM;WecAJi?Vr
      z-g#gscYxm9U1Zh|aP$`X`Ff16$8TZqJMZEN4=T#%9HN-#<pm5fJtw&$kc7ZPc$j|$
      z{uD!<=6jT1k9dLRxDw$?f`J~*<!|G$CT@x(fVX&hon$vW%mM#&fXRCp!6?xLJ;$ez
      zFY<<94u|B4n?FFIA%LIH9N_s5BDQ&T2YvW}^vYVm;V|GZUZNZc$oUooEO_5QEcZS7
      zZ!&TO;!8J|fx6~JEcAj?i>G|^U-nq*AcO57pLGNo$3(zjnqVS1m7}!$9h{5c9y0AH
      zUucR_p`sLK@T#YPBOt(=@xFnyD7uX~{u#W3d4=}ue93b93ca|l5ln|F`R|0ZS~EV&
      ztP0g6spdVpKVYE=oA5TjX7PNZu}y|-lVQSF@cO?3ztj%?Ex~U-0Q?HpJn3(;?)+*x
      z8?-{tU8r?d)Ox$CKWWl?Lg{Sj0H8vaBDj$M1!^CoVrl*!l;`Zb`^bv9{sKLIFM@r<
      zqBpv3@QPnY85SjQpHBaZEPi9z-PhO`LTd_mAEw8iV<8AWK@6$FjGxFYKatlIK5ydt
      Qb^3=UBNNIfc`Ua70u(+Cc>n+a
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i+iuf95QhKF$&E2hNNG!fLRt!>sgwwD8N>yVB9N>Wk<xo7S=_BQ-e_%C;_y=R
      zf=XQQ06Y|8);0z!;by%%hkw2q&(B}qe*k!fBMT*l_Jw!p_2Wp$zEr+10>3|0L8v5u
      z?FBQ*wS@}9!{w-Pq`5cGf*5KqL?EJ<4CT(@8AD~LX1tC%ZdkAxnn}L&NPYY<jQHGv
      zgPRo0wPx6K6Sq+Pw^{^IsytXjBg5+%yk3UaE8^903mX<%4BN|$F2Cf`!EJ03(VOGZ
      z3ByiWtI%)~Hn6bGu(vES7W0MVBc<nF6me~%j2#D6+-1<6octt?7V#hS)S9*%QA_^d
      zzg1T_@={q=qBE3U7!J&68?FfWaXg=Jed<jlXK1-<>d7-t3-iv5mFQfA4Erkz6el=f
      zs7|E{xee;y!9Hqa`5@!)oWWYe6DiECo%LFrobuoCsnRndGlO~J;1LdJ8+2l2*j-WH
      z&661Hv5NJSkA&%CqX^bB{{nkNRi=dnoy3J2off@bB{!hiy~0{+{R&Oi+PcP_ujDJ?
      z9-Zq+-k6r~6b-z`eX==}O*z=b1Nzcp=X%fSWqj4{H?;qX*dzu_P{H&cfod*5?NXWn
      p8d0Q)wYx{xcwAITQ9cp=XTtfCC~c+DnG)sUDLM(nA*qzm{S9$(;WYpN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>{clrc6n@_IZnrIWUj;S>ZcZoAc7uu{>N?b|bWrKmxpu{AqPgo{%f;^AdV4$2
      zpGY+P1sY>aFww+CjG9d?1`H5Q_`yHQ_`J7W?S$Cm-gBOF&wD<ebKd^-_nmtHPGMC?
      zm%!K+bJI-JJ*$$aIOVcsmlJ8%b=(EhHp|l0p$QE5J{6PSa%)#)$rI>5pI%HaXHxIZ
      z&t|eK%V`0T5$H`hcFi+wuV_~4GQc#T@zQdpkluAvMnU6zb|rtI)5uzSQ`ua8k7q!@
      z$StK8I~`e2-+XR)VYbj|?G^~iP3f-G<T{IaOQ2`QvMuiwfj~4?6wp%6x(p+L5d#M?
      z6k=sZ4D81NHj}k%xme#=lWxIWt4M)J)+w2lqUl-+w~U&1*{TVQXaAqFq(HY+6bej6
      zo4!7EdCw)g$qq~UT1i$t%dwN0STTt1AVNXx3!*oO{vZa!h+$Gke9r)yQ4CDsgn+)O
      zc+R~ia4?#QbwqCE3L$}0I-cDd;lr9IHw-+7=gAE#<>}^8%SkM;MvteZxslZIg23><
      zvu_5St6P<I=?3wlzyW_%#_Ltb9&c^W^mrJj@v`E0T9x%^QL&=(m@#k`98Ql}txB6C
      zJMlQzM^3l0Csl~o49sGVbN8HPX)GxE7#6}fhj|^`(fxiid)qW{URA1BRp%93k)AQ|
      zIxe!dinPn#Wq*S*VJsl0V{tc%KhyRE4J=`Zo8(8yduHkVf@_wzN&1GY)p(QCPW_ik
      zZc3ND)~0`NM1BnUYozv;aY_^mwX#4s@6_FroVV1X4*C;lUDlH-0iNP!t6QdH1l{N%
      z(uukdBo1}pF!8<)Y!LT$;6CF14m?0S*nuOMQ`g6j%^onsOv6Mo%q1wp@!L2Q5B!S5
      z+rG~eeE0d4InYpHEgxW%Hlyi{F+54c`{j4QNa6wgx@p^q|ANC`K--S5PHTTOfj*-B
      zxgFOSoyryzygz!2&ipMmg?~0mJ;CP;pR;_<@wpgzdRp7URAfSlqmgHn7>gWLVmNY4
      ziGj#*B|@XWAv&$?;N)GLUX7f&jh9BW29gcD+CXaZAqFQKxNs9;dQeMEJ%m2hKz5sb
      z_L7YWW;?`=l$^jZUv@z;VdDtjA9FUJa56XO{VBQpjNYG<l^ZyYFS$}TQNUNYgs<^7
      zzQH^A7Himo#4T9(o*e#&Dt<x@JGhFU@evxhjysHSmnVM5cesZia39-v;4@w2yvb&Z
      zX{EhEuGFk{kY}bYUt8gf14IE7`Bh`)U2UzcS#7P_)~>d->-=wNo)xTJ?cSUJ05#%X
      AHvj+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLTTc@~6#izq?b2n1%B51Ef>^ceA_eaW#zct5nnn^aBnDp=7|NPumu$D{qtO`k
      zL0{A#Vgfbsfgj+HGM=+7r3s`OA9iNWT)xXWXMg?vc>rJ@H+4vXsprlMr&NzzujB>Q
      zs_R!v_gzmtaQsbAg@vFNg*r5W(fFPl@M)yN<$APRk5-~kIXeQWXxpt7<^(1xUEvn!
      z>TTC|qdNk(ihsG=JSN6Yu7&AU0c|PRRA~tGnn)sLAc0dRbo2@2TBs*I>#w-JdQ{(8
      zSK$+9-BSVsm0-j1R-Mr0xV5RV8G%A~d2wdQPa>#C0@;(r3M5~KZbVF4vCPVid#^Us
      zZsZ1jO-D{(@Gz_8<@O018#6J8Ap?0#=r}7dba<~b7bb?0P2(KS>zESAcTK&C0xk&X
      ztS3^wfOtsXI(=nQSzKG3UNwl=Vo;mz(M~y*EY}uUhef3ewzg`D+@?I`SEFr#Xa85j
      zf5~i9&J`|e59MtosD~ShJ5wOj(V(+zTEHy(z6zH-r&d!`JB`~GbL1yMtu8VdZWCH1
      zAsLVM(-bXH#OJ-1y${2h`2q7gg%bTV8Z<+`MN+;&hT<&8=*4La(9A0;5bX&r0?lV=
      zPoroghJGAV(JN~Yqhk$>(`-E5!=&NtWAcclj|Is0=#d{VEI)QIW!p?yT*M_pW~SmX
      zrn|(-%F>pdun!uTJ_2uA_(b5JJAl(|;4}fxw1Dknz%E(P2sp<U?D2d9mk&+k-<{;*
      z3k>-cBl25JW;GwT$#N|+0>mu&Va+*|XqBM!>T$8SC=|ypb<3uL%pbW)ky6OlF*rY#
      TxEhbwaGhrET|vLX4GjDNHz4|o
      
      literal 0
      HcmV?d00001
      
      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
      zcmai2d0-Uf75{y+vpbv35W>m=fke(I*~q4fMokn9A?V@)DW?evE}KcRy4hX#0Af86
      z&sJ;IR`EbYZEU4ft=R<QUByakTYK2c9@g5+)}ysrZI%AMnaO5D7W>ESe8>CV`Frns
      zvj;wT>`4H}ikTV|fvWSuo5OY4Of*&(OLTQb<6U)2qA}x)aJ(aCq%^1k)5nsm%A|~N
      zk4+>nzIEk_)|Qp4+cvhYY*`XKOTZg455>adM`E&V6d2c>h^I5*cxG)lmNnccvBd|Z
      z_<$`wP#|8Qw6$sV>XwzuH=fzj=7ug%E%_eyKp+{;WQ<gtDlKkV(zGVDdZW$2jqy~V
      zy1P!Eug*$o0wtl~vfyfqw^v~Hr}K_Qd!iXK8Rl#r77#%P{RwhwUa@Am&27s6<rYa~
      z<AvPJ!;+H_@HDlywk%(4DOM#g=hGDnCzD3JL!fL}GwV22YZq|ZYCCO#THZyj;d9!S
      zRFrO`*Thl*H(euRkQSI^MbSh@C>lTC=m<sA8Aj4|N;DqLED&(atyxQbTee1wWG2e+
      zYB)yV2&r#fG*K5^k>Ak}5SV6eSg0@}S&Hq=69}lyi4MbqV=-UDaRQYl@hE795?#x}
      z@o<-s(s4XaU@*Fj%*dj^jJY)hI@1yp(IXU%lKqJ~PQu9q7Z10l5=kSK=@mF??pVy)
      z%nD&F88qrR1*g*CWDtxO@R(GDN3bR+&n(n&8k(3HJhLc~h#BGdi0oqL+H2Z9L{+nn
      zxmYYPr5NjAyLA6}#>QBl?b&3cR);sm44Hn3NI14OoQlf1y{KloqYUcwA`U9ZIY!r4
      zM3j_MTuW|DE^;6ktXW%vWmutMIVp<7(%5XobhP5Lgi%u{Bv4UAvyh}})UZn6$gw=m
      zS{7Q8NcEUW?|}nrq_e0{%2tRFT#?Nrvl**kHI9w&VMP|%$crlE(;N$@(~UK2HL&c>
      z8o_rk7BjlSv8Gg4w#SHP@-X*c9onUuH6@Jh**a#yB}W@{%)mrBI#<U`YqUwnY)qGH
      z9XjTqT0^J6#1S`)<fI1%+9hFB$5A+10_S`kG4u$OM_8*fh77Ug1%W`(c(n&@xF6~@
      z$t|HHi3^Cew2>)vDWi56U)QXauutpApoX~?={6$gH$@^wIxYEa*0BX!8Tsz8EHp(F
      zYOZP5aN#g?3Q}-UHX7?NQXX7{OEg?e3rD<e-8DKc#bpB8W_i!7pwC9-_KHpC8Ieq5
      z(cJFEHW{0s8{4T{pt{S0UR))^aJ9g^B3h2+VynkW(~E0$T!+uIre+eBW(?nOg(|R!
      zv;x=bxB*|JFH%M_7LJ$!TORH)TGEklQdZ-dBI1Kgv$3Go@FfA=^a^7sBk#eD*d~8&
      z(eY(`g%#Y`%2H0Qtl;$XZ7eW_^o1ez;8xr&y>bT&%Sf;#+eX$O3B9{??37%!Xu72*
      zndy~lyL8-x-LyU2(Xk|&O7pTCRal0@z|6UCICDl7`+}l0Cy~xD;P>LIQjb37jjhMw
      z4%iubD3XgMHO;Ua8B+>VSw`b)I=+qviCab^k;=5BQi+s6ZIKWZxIdrdjVyj{e8YrL
      zR>L=kuS7HEc`9C<T}IqUh2_o3>yI~cHzSjcM=!{-h^w7cjhBoizz!tKv)Y-+(wS37
      ztrrH2G>XC8@)cE0!(#;5p((Q{+u12|YM+G3K0Kl0NjybmBHiIs6Q!whgEh@=JVSk?
      zT7k5Y3{&w0k9->^YItsR8uq3$Mvr8)U&jmh4v}G_S{9#Rus|^@FN$QNr4du(A{@~1
      zU3`z)#Ef{C^btYJ6#YJxk#+>4i9n_&*%3{-@k91u*|d=gbSHX<`XAvZ8h$J=VZ>fu
      z*oN6aT!)`ZNES;VH-5%usM?KR(3J}pN<$9FpI2oi_%-{Oxy@tKF0b%D{8rNaPSO?O
      zUO;y()6@#Lb$!#aO<C5fDPtUDAF==`%fq^;bi{aKA>MI%0g4>S1hZO8W;ey6X;RE6
      zmMLtARvM8+s>4S6n>zj`tF$YX$ndU^SLs_i{*1rKRCq_nyK>Xn8OutJu9SI{&AX-L
      zs2m*OENj5Obi6MEr>3J9lB<D#>-Z2KQ9s$Yg=I|`T@US|AS=~>b$o1AstzM&NSzEE
      z)EN~)pV72Tkd3|sV4;^yRb-Dkyh->N!l4UQRw9j+ND3_#F5%XMHk<}yPU)gVD(Oz9
      zjLp$RmKWBIqEr{U7{|qw5oc9iogk<VDTX!elJj_7luNx!d9$_J42Yu6V;S6-{D827
      zJ4PzgRxor*=W!DAPtehZS^Bx$EYHdY-IES)X*E(2b`)HW@`-S9RU*qJSudG|1!XfJ
      zQBQXT<E%1fqayDSRTfjsWMt*%#&}GH6E4m)&J?&g_Y}-aIUiRrFXOztU_OEKBQP<4
      z-pBc*g8j*yR}}0|<$PMfekJEeVtT=OuWW><i<dfDZ?;J0oXrs5kgX7Z71`<VEiuY=
      zigQ0_F1~9q4|N>3nR0;X{y}`kTbe_?cY<RO4c^JB{H^48!2lLLY%*)%?<BecVm7}_
      z=kR;68a{Cpjub~@3HNl0AuF7YGx(MwgGEF(k%Pkh5`V2jb&O)}ksBfax2Q82PO=DX
      zhCCu$K{A%Cmlk1tCRxjfnXD^|u&yWT6HV4LEW$CYr4Z>v#T0U85g{9>f=VG}{@Ti_
      zA|5J}oW%nEFR&2f#A&89zjY!nt;{xrT+C2Pf0UWQbeM7%7m@o8;YZ(NgI{>vk02zx
      zD+jQ;@(#GG)ZHi@!n(Erv_0jo-4Cs{4^D4cKi2yz`*DuHsvjHuKD8fVe@Q<g{vjBo
      z?dnIj-|v4E>np2#G7{(I5Fd&35=@{SoB0>W7TU5En&_qXE~HHtVUoC*QNNU5vX}9H
      zlFLyqw&4_U1;5_5Q?aY~fpIn3`94QnW7>bbrFq`|4SD-F<n7;J+fNJ42&nV{+jIJZ
      zKo$3pgNN1+IqEe+HHTE~3($u_8{)*}Eelnt_hCkDdDkGaw`1}UdfRFT@wow9?!6+1
      zD|5IeRO@s4w5maTp}{qT8`~;e1GuTdUE$8*<{fbR)Ezi^2)DLXa5#V+4JC9>cMf;%
      zfG$TBt{m<j!o6+&iV`t^`yXm>`$dIY%i)3Tny4+$O2G$r77E^D3+_93HBDKH>)FHZ
      zrD-ym*1|{AZiYkL#)P_yuH8x3-i@hZ7plZ=)QWqtQ1oG`co1vE9&8eOkr4gp6*+99
      z{2K&q5Kpi-eVVQ3Gwc$d#h`f3ba@h`(p`C%59M7xly~`1-sMBK%jJoOSW}$T^a4Cg
      zsJjT~K|I1W4Qp^RzJ*6w0TWD-e&m=eH*z*W3OB>U?%WEOGJ}A3(>8So``Y{i7-~=*
      z^)AM)LiN#GkC)f&!qMKR2k~r!Q!e>5_1p?)4$rUiY4ZKzxoStf)`uO#^wqm?y&S9O
      z^7MnW42bZN2~o}GY(8ClPUq9j=Ttr!KJ)ox`K<E3WXkHpJns+e(d=o1c)7u;*1P&J
      zxzZf>q0IYAgR>8s_vgckIg2R9U{g;uhhM54_Z$rPTtu71p0`3R59IKxbrtHg9Dc)B
      z4zE2#`BuC)ql!Lx4Ic42WBmro#ha)UZ(+80n`!h8|1fzMr-}ENLhs`m@gcu;KEh4n
      zW9$&0;7<M(xm!_izv93HiVJ%c4G$|G^ed$pRLbzU;>7{w2)v?9#v4in-d3jJ1Emt5
      zDAP?m+`t0Ec$g@lLLA9BvtV=ddyZt~Rc$<Y@DX0e9~i^g)c6fzz{$uu?9q<=Xg7DP
      z-M#s>{`}~1-doo0IDCLV5-~2`i|^r2CYFS3o-DMWlagc!oW&eFXD24|6_LX$Z@B{+
      z(eqb-?EwDn&*ANn@?>5_%2Al89E~Z;TvRDFn5p<pTdjLzRv!Da@DKcxvS!I1&XOrE
      zvCHXxnb$eIw-dWWNG!8wd~Mu?fGiQ#$_G#5B9@9!Z4UogCzotOwIhd5mi3{X^Y!+c
      zgYS(jG0WxgdGeIpn3ofZeA`6B2WK9$PdEk0K2P4DR;aZ(;URoN+$|Hh{ot!srRL#t
      z_-y18wkx(-(ntKV2~!BS<KR(_hpwD}GUX&xDh&uIjhL^Tg42~ItW*|Z9pCGfW^^cv
      z5mQ=lu@b~(%9*%M3E>uH8SYS)V<*@8l$F@0tils~Kdr3A^U6BY#|s!uV888So%Lq|
      zD+9kbh*qySg7I8Wf6EHu;1~WxG0_~|LhSoUr?Oh`-wi7kc$w6aTMI+{;;D`Wj(W8Z
      z^Lb<C#H4y>)ecPdIj8M{Q{CfpmRIkB+p(Yz<<?jusp?p;T@^mH@}7e)Irfl|m2UNH
      z%b;|@sdPhAq8O)~51$f4g%ZbfB|*3(F;_{!ucR?g*^CC#G%H&R%xf7=7qp1UVhYuD
      wGC^gtrVu_0#8iUXK~qi^)3~OxoL7rV(y_x4Om+SqDP%(?8?bxXn9qRsf6(;Jt^fc4
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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&
      i#B4o~CN@R}Mh0e}Qy3T+fmX3Huz^?%>_C!<fdc?i{wo9k
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|@}EUXJi`79qIDA+=wAP7PcwFtqa1p@?4eA>1{S!}yxyEP>K2sP0M
      zLt^4bG``^r8XtJX#Q2+xcXqd>B<n|-barR%J@?#m&+Lz1-;M!HU`d9Lp?g<*tVK(f
      zo{Q#;Y*sI1qsxYw*DQ;hG9-rcc0f*}gSFHyPg@MN^LjzI78v}Y@D_u#Xk@qoKk8M~
      zpq8O2p%?gSDWBrzrk2WahCsqdYq>4W)Wy5IDOo#uk)b#77YZ?|wr%ram<V}9CXDPl
      zPa9??7Isc;rW=+?olvrz<<<(<G7M3#>=mt$$#K&ww+<}~AcP$!hNSW+Uj}e0ZEAXs
      zp}`@X<i(<vC1HZ-meJ)Yb%ni(9`rIOMAyw@XbpL^B;fi~Ttq)ZGexiSqERx_JYEu=
      zF!Yp@?2(>5jVZW<K^d1BI!`q}8>3<fR~YIE+7Xdq$W^Xd**`D~s~E-zNkHlMG*ioS
      zvJuU=EfjuOH6F)Eu{w-0_@0a_h+;y<_!+Y~)m2=@B#EmRGJJn+TOd{8xML3ARd5Y6
      zGNu_i?8Yp<Z$(`p9XqRN#C3*Qk8}@a9_`7PV;DG<EvXla<gv1POZ#cQXX!?P3~Snk
      z^mcY-;$%*LzL*tv!v?KZmoQT9JiDq)SFYvET3n4ip)u*(;?V=SX~VY0vM!9#Sh?0?
      zqMp=G-uBan0CZ<1ac_m!>1~o$GCpdCzo70jJ@}x|zd|c8N1^jLM^CB~L~8@YXQB~J
      zv`Z62GyMyo8Cpe-KM**i#eor3fCn~2yL0S7h(NTWjm{a`{|DsJKR`N&k;CLC6{?{E
      z@sT5RCL`Zb8we!n`NHbx2^vNtM;J(cgmj;_LUU43Izccf9lu6PBtU0l2T&qG=_{s^
      zkwZdkLpLs9)@^87^pB^6{|xnbPR+a^@-Hds6-6DO4{tDtw{$JuVI1!%?*ne(lg)j~
      nVO0?zju@%SX!i#F7N|lqeW!0yyq_?7aT{^cpJ9<I`f%qrH_u#g
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0TX)n{7~Q9xnY7asdIefK+_BRcq#$@5L|ZJjI+RPH+|e{mhd??hnG6ec>GGHO
      z;4=^Eq6MkTM_9{0;gc@?1-`l5=Oj%sZCE}`PI9up@7rg8m&|YfKK~WKaXi$}CNOl*
      zcxa3_ecKs#+*-}9*T$!f`l4fb8ZrVs>a}BV`~1Q^%k%|0mt1ez@O{e@C{(wapWS#}
      z5y&msjsgy+0o6OAvX1r8a>ykGRF$uY(Jjw&y>mw0sL8<lQlL`_1T8wOy6G<RKmvUM
      zS{-A~_qZpyowDn;e_EiuI5sbkIpZ!`d9<Tn$9D8|Vh}qu>=4+w^@xg;j$O#pdZJqG
      zgut+lPWimOYS*pV=JJB&T{adROGbB1!<jccTRw-I8UL=`5ZIk^j!=J6)K;1cj@`J+
      z^A=NpRkwD@GF@-6A`g&Va+(sFH66FXu=%M+rnTbRZoQ%5Fhj+uoU_cPXZv472<lt2
      z{3vq*dy8W!0V6;~o_I`07CD+WT1-=^#+GCAdAyEs4Mzn=QlxcjVUl$m!*PLb65~PR
      z%%?Jo5f$nFgpQNw5$H1STIT%;)3h25ncKH?yp4BQ8+3ZcF&fN3|As$R9cq)xcM&iZ
      z)z3f+CafSS!6_Zx*hV-dh~a}_vXb>SHm~7BfkW!VwmW{M-e|6@xSnq<ZWu<{&@kE3
      zc|pKDCh(E0%_-Jo@#f^#nwC}2Df1XM-N***mi7+bstnHP(9l66nZeMgkXC7-jSR3|
      zDwF6mfdi>wk{A{2ypAsD8ZHX#*_!txJdX?LXCx_VOQeHo+>#L02-@<-l<4v-DX~Hb
      zlvC1@5HXU!G9zpB0<P=0fvapNOOjwWF0+a_egxXAM*@SXwj3m!I>d;Xpv=^)VE3hp
      zv@zW}c+?O$l6J-bC*{xE4c2-sm@KKSmY51R@~FYqz^M>)e@h`mKpmgM$aCP`*WqB9
      zyzRO_Z#YdJgTryA3oagLSP|H@HE}^{=vV~NIZw@_^bbQ6kNuUObDN%N(U?|xIPs23
      z@0tDVt9E{&vg()P6|zdz$_cAh7Lr=od|Z2wkt3USy?i>2Hr@ex=_&e3KVe`MLqGDl
      z4ZC^WrhH$c#SNC@O^irnfJXs)AU}G0u}`i0=~F%*P`(cmnIZBJf3IPbR~c=btBjT{
      zJwfpY-UMNCYV*5<`)uHz`z4f#irq;!7rE2Mwf7m0tl^FF8s5BGDzBm#Gw)+`U==w$
      zBlG9vw65Im2n<8_bRnm*V)ZWG<GPt;Wi!i{sVv`DLQ0l71~`Ndl%qS8Px2fNdA>mR
      zIwsnG=_o(N8A-Sj6W*ax_&e?YVA}q~0RF-d{!Wk{jz|y7IjTsX#m6b6r#F-SCzbRk
      z_>}ZorJd%Eq^t*&CCTZSq^bvz<9AF$m*_~4(<5?fN-A<yoD0d#Q3#p$Lg@7gW?y1k
      zX&o1?KgFe0%(5P4W6~;lVvu1*&@BqsCH5u`P>5<{4wu6Kud0aIn0w&#Fr603y~Gb*
      zIl;d-;@^uas>U;z$JNmN16Gr)r-J0Um3jF{VGY+dhdKsL97mrxfe~?1g(?M3qEH34
      zl*}U?;}&i!;S0Ef&y-voGhz5-+YH4rskRZ532EZCS%CRJ(j?kEkmeetxk+hmQJUMY
      zkVcLa*}|M(q5Jz`!HlvCm)3BP3Jr1j9@+NCyq|u-JaZ}kjCva$XCCvgLDQ>(7hj@R
      ee8unA*BBPx@Q>HGiNK?gP^0kBP=S4A-~10CLu^I>
      
      literal 0
      HcmV?d00001
      
      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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
      F{{YU(s~Z3S
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@YgZdp6y29QVM3TfO$#)IQlQAIJX&nE60|&|6b)&WipBSkjA6Ql32PEie}I3$
      zzu<@ZUbtKWt7u!l6kkjIMK1T98In)}A2P3dW}m&!+4oHT`0v3(0GDCws1aztXKt7y
      z>qXlcaq_vG?dC>O`P{tenmNnszN|wNIO)eYCf9B)-?K7B9kl}ItG=la=I>5frYlf8
      zZo78zWdYgOzbK$h=d)G}67>djL<JgCwri!=SC=jCj=Ahu0`XKnV>*kbXRG`0p;lb6
      z3j!UfstHR}lL8Gnt4Q`_p0YM9N1&%Kc**C!Q1nPH*?;&^45!ef<Fr8AaXAb$qeb9E
      zkR?n^Vtpax5miho_=JJ8Xced{Q4|<Hn%&b-lth?wIIp8!;7nDPj4{xGPJyUO5>%kI
      zIytqNjN*a-Vt5w4I(h_Js=%s11AXWh(21HhSJ|f1`=FI|Wxth!EKjx3M>@DFS94ry
      zKemhPp<vt2Ru57|pqU(NLm*Kt#8*{m14WnCiSP6E%bKzaMZYIk4UFP>VjWnXao1NZ
      z&n((`mr>U+rsG9{rgCkj^Nzz!!1aQGB*y7%hmhrd`dKPrD*Z9(dFH1+1s&WP4P{*Q
      zP~a4+eB1OaH*~U+pgKQkU<%WLfr53q^#JjT{kw0MUM46!wI_P3xbASj`WJQF6zD29
      za*nEVrZef~SRc1I^GU{9Q$^76>b`X<8a}mdJ6X$%BE|XP<~sswbhuQL?TBFxX*C3H
      zv9ML>^e?K2*A2XZ1=`A7TeIA(z)-c&L)62}?A;vRG_a_w8!hI8-5<j&(#r8m2HwUy
      z0+BV-E6~!%U?1FzzQ<HU-ZSt%J|MO#uzITcailBN0F2PNDlF<+ABS(m7V_&}#=2pv
      z>DS2F6;735Rd)en&UGzs+A#|S<>ST~H{;|BYQ$Q_m3-Df4lAs0I8!P{?}a0sQ3^`p
      z61bcAi|~7(ejLiYtK-#kJaaT4GO&%<54@;>!DEbP$S<IA@dWRUAP5a;<Q<9N86FkD
      z=ZsX4-8+cS4_@5Dne@;eB4TrB3vFXsLfb=aylXR|ZJ~RUaRGi82|(V5Cci{XeuW14
      zHBQQJ&@8`2tNae_@_Rq;l>j@;%PbhcMP}AG{su8bv>2!DFh(e^nNgScxl^1+ePN2<
      zEbpiVjpUaiy(>F-;W1t+QwgO0NGd=1DVu}vFr|iiKar}^^^)k%7^4xivx?{mrC&*A
      z0bVJm2^2qInq4aXnTmg*;)iIGkC2d$(I$WO(+>o|CB>a3#pg<jTSCPGGq^!wO6L<+
      zs+Q*oQc4f0J_N;Y-No$EF6NfvuWe(V&u?$x&Nkk9G`NR4F&4Rxy1^aX9g8HiL}Ux^
      zmOap;aOD#+-b20ojck8MpZpVp@-K|azj00egX{8NpY=^zin&XyCqmZh*@x_yD%ZHr
      rpMMH))#tDIT{GFS2#0SJ!Ii`^k!p}ZmggANDSHBOSUhU{z<%^UU?LwT
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      EAGcz_p8x;=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O;5r=5Pb`ULaCyNiin&%fCnn^h%qrl6BGPMFnI7(%BCz?+hn^X@n7jl<G~-`
      zk1|dR2M%)Boq6-|X7=sR@7FhgE}AAX4E32icb!-Z>B!LcMc_LFvRoZ^O&APYX<oV%
      zzaP)Ir%mJ;nrSrRUaW+Ebsm(M3(0*xx%9LM1BU#$2!y_1$hO)e2BRNNxP>fAHcS*4
      z$^#MbyZB|y)uTI>oS`xZJy(ugB@(<08hR=shQ?t1mOYxGVj5X(wHIY8%k~P`p=Ep-
      zj$LVC7yBmm7;5Y2Y}9bTQ1rQ8sKC%^t*{QYB87U(LI0>m+gQUeRvy15K^RI4nocs1
      z!M+IsuKLoAB2LdLUj?2FBVxSedKyk}3VIBk9DPuR4oO9*NZuJ)MmBfy0qZ?Y+jLuL
      z*%J&(ZV<K?Mc71{5d9vu=}rg|>VzO)seGdPMqY-h38&HLmG1nqJBxZ+b%+L8YuOJ}
      Ka75T3G4Tfj4}V_(
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgy3w%`NmH&TtW-?)N10f-V0fB%#l1V}k5S5@d!~j8(Xab4Bx;i8mGBTNg$qb12
      zsEXR|qqVNOTh#5t2i;w}f|3NJN~;!jyK8N`?RKBmy6x80cDv7RZMU`m^W8glX2Ol&
      zqpLr1U*C7m|2yY@&Ue0(eDzn)JO|)BwLb_$VaD~*-O<KOIu>t?C%12pCAK$i<kd<A
      z;a4crU*l1}?c933)t^@Ir;<rtW^SBlVv|DA_IPq@G|s_^=#ZsQZV%RSy3;8t;h^%A
      zHJr?(`mHsY#6aBY&?6@ozAV(!RWL#HY>UOyR;qARb{T8+H;yV9jEaKP#@H}{m*oMM
      zHylvx3>a28=jy!ASxM{d`5ZYZnn))04ka@js<tRh%?w*tL{nBG?Tq33K-}7GaqVFb
      zNgL&p0N<%6QT6Kncq|c1U!vfvsqLY~T9N}+F=i_u1ckXKsxglfRy(5>*PL$4)8Ewg
      zOycBoO$1OB#6lWqB5y4?FN6hHENW(kP>Z@CA_{Z#@L{VzlZvJHHa7S7Tf@UG$wWGp
      zjMI`P>d~NJ4kWKg#dgQy)^=+^VTA+DotFF9+@Fpm6HT>wNNqkf3C>0nK@=%W*%(V$
      z9hsr6R%%mpYg`j2*&mJfL{l+&c3y^BZ|JvniooF@Rw&HRt*t#aJWO_FiQ*0n!H2~`
      zT%b^q8{C{qMfVB?LRg85!~&~m|C%=2c&klJL0J&=OgJ}Z93=$(hfGXGx!kQWQH)7)
      zcbQ4=>ASTiN??Yt9vgyaD~Pu&N}K;CF2_bPY`c}VUnnf`@U>$?9k7K0v?)7GOh=VK
      zxWdE?6v<teiAqf4($a%5@>4X}A%12J+2z{fn}m_QCN|+JF53fKo_n1z&xd=Our2s-
      z5LYwkPPZ==wnr0D<{=Z;;I|Y?ZPd<7h3c9KL^~sh)rad$M6s1o#>p-5=rC7bk)5ZL
      zk$%acTQDHY+AMe5Ol-%X#QMO1y>5ls&SE|CWK->yAg*Vm>P2X&ZH$ra(Rg<{nzmdD
      z79-9u?2jfA$#iwf+D_hCsp^Ear&{b{r9y}yAtX#HRC?I9wnwbL%R~xXMkQBN=zcqY
      zPAgcR<Ae}0*b~I=f_!d&GjRj<GQC*4GSRrm&DZRNs4Q?_Hq7!D*qqv)8Dj2p*BHW$
      zSgc^ghnPZaGK{xa);-jjvW7EpW@NKJnTZdqv6=@4B#o3?H_$eW;{1J~oa=4Q=H9GV
      z&dDxzyb_vIbM;OWw_~%!z}+S)BnGCQW;fEWKun=knX837I&Uk?Di|q#)BB~9)I+gh
      zL1t&Jb37TNN7il$;S=~|5ceolc~D;lnYb6fPu;OZx+faXFcorpXcGq9Z{m0Hd;B!)
      z!g?oNWX%?Q%EST8<WAT>X!Y-~v$>rJ>`ijK4YDh9woozPADJk{WKN>m>?F^qaOTwZ
      z1o1gqEEg5s&TiteMIlJj+Pw8qr3AG%X}YZbWNM&ELf|0&IEc?@1&?>UJ<!B&<9AB%
      zr}#n;PZXrw!i9+?|Ln|K>8^t~Wa6*{o|A{jFaa)Ko;Gnrg0@r~qC?sKaxq3tjNvgZ
      zb7y92JT^Qi?mK4U85~!b#-(pQy?CIPsZQZp6VKre+edbRp#w(Dz-;u6R^lXX+cpwb
      zDKY-zzLVWc3N5Dj=#jN`t~qJqQJhj}_VmgGQ=R%rr-^L-U|AC!VgbQ)p4&Ih3P>I_
      zSD2XRFHQUvUSc+<6<eZGk}%o!?^v7CMdaLUm}(UI%cfMc-)fCplCGE<UdA_q_<EK_
      z-os3MQygxJ3fVivtHt;h&AU32*pW!?Nn9d={>H?2vczb&(u2tX+x-fEXX5Yi58QXj
      zx}6FG@5YRI3wM(EJHBy^!}61*Wt90hzvgy6lR~VfXe^gP-YeI+^Lv8+H3jQ~hCKm8
      zq$G|G(cl#x0~A``BaBUhspK9>$vS%|{7{zly2AGNDDP~%k*||BPYZ+u_trcY=7z97
      z`=Fu7IikcqTRByaX+PQgBsaFj5(9-BokZ2YoA@_;jKNC6whir!OLqG&DM?<GyZ<rq
      zQ~WQtQ0BS9x#Q}i!jDeYe#^wqB}<lbcDFwExj`ku|IfrP<#UDmIX{*T;%$>@Oxa16
      z`H-Q=>WO5TUgN<QT`DP`q%US)U&`v|>Qs@5|G;Zhrix89NrmjaOgn<knc+A=M?}s$
      zV#)x`kzy73n+#xwRyOj<rYccW6!v`3#K<F{qtMfO3ZboeXY$>@c^G-X+*Br>sxZ|w
      zT@atfIZ3h#d;edd71E-ZTZtvTj7j)}nqjIis>qeKZ5^#$#cCFBTRS#&^$GK4OU`*y
      z;i7zwolPQfZBeYMNmnhfdf(EU6;_><C{OPO)wztDyt+&`WY%Q1ZQ~(C&BsOjp%$5H
      zv8rM6itgNLC0KLRdnn95&fCker8E^Q_7IHfeIlt|BsECw+&1BO8P_P|mdd!6cO19O
      zRLf<*ElwwGos96UnQe^VJQ5Y4VM61PLQWLL>OwB5t98@nu8v~G(|*Xlw{2RSmPE~A
      z3adR<dz$#Byf^vOC|2wl1U9Yj>g=VqVHQd$OE}VOsx`uqqVCq7)~;4z2Kxk$;za`7
      z6HO%?Dy=isdKnh%ZSLx5>sZGEB9_>e6bYA`YNLGew{@)Tq@ey}Vp~k}uhUdlXxS~D
      z9c$ZU4pY3=+HI;$dX6xYxa2(x0JhE&)^J*+US+C2Jy%9_Z=zLr@^$)IJjXevD5%%6
      z9kJS;5_OHbHmG<)pPW0&NK?gB*U8DUm>AR1SYlWPZZ%cEy!26lEZ;KKHbrxnu*S+Y
      z(B{<CI>hzVNy`k{4LOp<cEJSWN>kQQa<}D3765Tm4e9f){Y73SO|?^wTK?hKjh4Jf
      znQB<^SQ<<xb%#iy#&eVL2(BQ?S=lpJc~tiPnk}-K$oVN-(0iVr?82S9X0h6*P?sLG
      zs-@%VbP1~2K&Vb8;(MzHqr0u@XmuhJk5{vFVltA`H+Qm<ltmr3m=G>jx0>oBa`+4M
      z$CJa%nIU`o<vEQHCHA-_;yc#5Z3&V?Z_L&(=CLI3u~jUMB=!+`7nVL9ujSI`;?<BY
      zm%g&crLR0A>hElw>1TGv^p%HiePts`U)iM6SGK5lT~2vn%%r|qeA)m%e*$xkL-m!P
      zqsB1jY0N*41$|>!bQCpTf_fTD4s(QorTkg0$G7o(+Dqv@n2ohKPk#l!RC65$mhst7
      z`OCG2XL&Cx>yC`!{K#>v><f<J!Vxq@e9z+I5nLLn8$olVegrM`r%)16BWOLyYyDBI
      z<E=cmN1np`5p+f(N6>i^LH|MceIvLs2Wy!&$q}l$lg7A<MjRuwqnOVF;36Ey5<JVk
      z;|Vn3MXbR|bm5eSU2Q`{w>AwyYGW&btIciD<ZM+r##+k7$+x12I*Oh{yt9o`q~E@(
      zC7SjK$7wSADtorNoan>>w;e@adt?;X_SW~U@;_hC+y0J*Q#e;#5UHaFI_eunVXX{Q
      z1`c4uam4z{cZ^}^1Yho46$l4TAzXJ7l?`>ag&JtTmWHtZg+t*$-D3!c11Dkfb`<FY
      zC^?QB>B^f<@cTgo`SV1>Auf6{VeKQBKK7*Kx(~PLtG%EuVGgSSznXzbs*b&g1~zn-
      zV1`<T`P>p})e0<8=i@@Pnmyagu#SuCWV+m>+R?}4c&)k;1F8!{OotiHzm-W(ShAj+
      zrU4w|$enPS`2aWb|66FzY3v8yN;CQR({S!;*&O}|zXWgzF5sL=yqm;k(;c>9u~3^F
      z2+%A0$9Y9v@6uDIY^KmcdbU%!K~Pi0`idN#v$4)Ug1hQ+f+h<|)LjUvyD>$5R12JL
      zPjX^1#B~X3MgFs8=-_JPRp=5RZCi5UG+WdId29(d{F{f5;$t3@TgOj+)N?W$F&>lK
      z$4@@uIhlPfXL6ED6N}Ulb~||{mr;D2eERq!2>74yJz<BTDHp!Ik8e2KX3li_2I|WQ
      zs^<|_FQQs~g>12d&9+&c8*FvbKBv-ocmRLkDDQTZS5Wv}2QZ1TGKxQx6w#iGcAbRO
      z_o?IuC{;h?M(}!`Qz~2q6|RB@@sNjU9v*L+AA6eS)A$TgWoh$Soz*7B`S3WLG-c4>
      zVao8K-0)9;Q&PE*<q=QvG>^k+O!LIa6PUe7RZ6_{12Pf%=W)8|0Q`q((T7iBs$A-h
      z;ZF><DgB4}{YhqB@pbbko}#(?+Mkbf_*OE<PHi}XODp}$IA&zOUsd|$`MJ-&{U#I9
      z(E}(th$+1LVh87To_hP`dM22n`WH?drt+0YU>5=G;(Fw2lVdG^c>|*kB}P3=V+pE_
      zM$9u-pvE{KON~`nX{^SD#yVVLtVbKKJ;nxHV_c5wjCNQ?C*mBFHm=l*k1%ezK-bq9
      zW_NB@xDYGwWt~8p=&0xM0>>#S{A|;3%d)qlGBM44pF${7SFc9#m7LdfxEnnvHhM9|
      zxJqlY_lYuBTbaWwaJTt$CL@C+eiVP<=y;s^#r!KA9ZQ&2zPidEsSEp0q9p7e#n%oZ
      zQ2y8M<G1yrWc|O*;aEhuFs>zzC?*?QQD*dGt}%cmhJ{9B8!fgK%Z)*eZ-uST#ka!6
      zx5B|kH26pSlTQ5$@e006I|$}e?;rE4<1r_Rc^5IKh<TWp)5M%1=H0}cBIX<31?GRo
      z_fNz8gZGd5U&dp;m6&fM=G%$+4r1O<%y$y=UBrAlG23bX?Ckuncw-!99!VX{F^3x^
      z<Q+F{QZLVZI<Xn|pvd?nlg2#=8TaOys>F3~iR<1H{7BOe{LSZ&c_)=tiFUcTmn~68
      z?LK~!;-kV=>wgx$K3_P{?V<ibs(*;ge~|g=VXgiWd#bBGn^!5$RbSz%uW;1MS7BU$
      zRTx`c4v=16WmBBZtkHTB#d0|$8HAA`mofb0kjmvdy`LDLqct93%6JSF#^ab}d|tz{
      zORd=stohP$a+G|5<d#aK@i-3lG3v(fpR0<(MGV8AjN-q;MfIcjS-6Pd_KR>)I53J|
      zMZ!g+%E)nIj!ZY6qRJzvG)Aa$l$mObnd%sM@r+h)7c-5nRT^EVG`d!4bgk0pTBQ-f
      z=>RL%bCsVtt4KR43q8(fag=F0DjXP7fgG+7GYyOvm_c96^Ni_Y(7%z^_BCA$ri;OJ
      zF_;bpp~&lJFd7}?Wi%D^Hrh)x+RHTB*J-qG&}iSJ(Y{5aefxbHO@gYxXzbew1LPEw
      zp}WLrrCFn?QB|6=njKcJkk{YEB;yqVv}<*n*QKuYN?i|@y4EXotyikb7(}w`lxjN$
      z__rb@YN`X_ZkB>VxymdAC&Y@nJ)pcnC~sn_@dl<DKgzR9r3<Cfg;ME4sdS-Kx=<<|
      zC{(P2jbxI3rUPn(aEl45!H$D~#6d93Q^2Sy4+nJ=1a%Yy$$yE0phpz^l=k`=1Me+_
      zjh{0!{sN1PU!vall?L8rD{z4~xWF4+;0-SD1{ZjP3%o&dv54_7Psc-0FQM|iEI~Nw
      zu>@Z+OkW5Uz7mAlsh;aA#UkGn)ceXluq6mP3zsmRVQsVX8uC{1a#iFhRi%rLDRNg=
      zU!i7>s&jHY)s=^DIzqlGO!v*u;Oxqy%C&EmwyI>%Ds5F(9%{Op<ER=W2w~_9S5;Y7
      z)!f4B!qzpHx~fs-o2PZzHPsAP*9=$J3`Z9wJ5_{e%`Wge)GFcE>uT*huIBfZT`{H>
      ztn!EbdYub<eJcY8F;^aIN7cgKu)i`es_J+xyLnVC>D?btm4OD<m#^B8g{9{abl(0L
      zVUY2c^8_71rLPWieDzr1TY?5(BhL3N#l?JH=Ua{*-}!n$c7XS~3+i<j)ax#&SJThO
      z_-R%vc&3$obCE6_CBRpnjTbNQ@M04|uBI0+K5H+oJR2`w<mJW7sH>G;v|BM}=fzuf
      zEjUj#@d$6z^c}c!F}3DZOg4AgskMVzJKqI&?8<1Kx)e!AYbQfPPMZ~U`iFFIl*nD(
      zsA?G>7z0#jq1?AkE3{9O`G-9z#1(zk>M4A!D}1e&@S7<7W(vRM48q$yg>P_$Z}1X+
      zABEpf;r5|_V&v_f!aH2y9bUp8r|^RmZWl!p3%}A+c$X`@%S-q(6n>n-zjy|-Z1xmx
      zXFG9dm6!0BDEw;_{_+`w_jn5Lb&>aa34fKszenM(ok92(bu|fCc)FL~laO*b&xqId
      zvMkMOMI1p>-7)oHIX+M47kP*pOns42HNb9Wj<mXl^u2|E?`@b&%H@6obNzlq`~fWU
      z2lHSpcN5fdHK<~m#MgVkN;t3<6(GuD6eK%5k<66r?4QTR>3o#>7ZS;0%=Xt{p}#f{
      z#UdBQA{PaJW8lPT3w6t`6P7j0zhjF1Z+38xsa*!Xq%yghT{pP=O<J^FqlX>Q^W^Vw
      z9D(`Wu`6>8BzyAZd6V7lnA)xOIFl!6zsxFV3hT1ZKgearxa=KVc06yn`I$pH<;)!N
      zXFwk4I>#^VMo)A%sJ+hQTb!IG$A8j?&FjZ8SsJkw>c%m3(}@E2NpGt&#~OX=_utD#
      z+kIrs{V4N4fC^r#{10J{|6wffe;T#^&*Uv6;`%MZ-I?}NhWx<}eFb&1+vwltU|Q~5
      z%}tmHE}gY(RNdlulMgm|_A50@K5`p=<#bBhM0%3o4r8+aDFS+ubUs2lkK_T$(%C?b
      b-beZCNp&0180vO)2e15X6#oob{wx1Ah8+%6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J5QhIjqynN%eE@F?7aGqH4<0yGA!%Z~u4J-VvX*4K?Za{40eC3mv^D{$
      zr``SMpMSoc!}o3v;0a-X4&i>IN);F0*w}8hHkpo--}Ck3g;f@yO9*R|RZ?7jZg}kp
      zH=2EAWS4Nsmhdo6j;_=@Nt#XC(rM?L`r@1rjT>K0k(k`i2>sOPO!>lb6@6})w}YRh
      z=}w?l%5m19RRd&Teunz^4{AGb@=h3}+rq7RVXWjte-<;Xe%m7uE@YiRSN3#?o?Hk4
      Wu0-#P+QC5H!$!ZxNHig;E4M$UqHL=G
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=OHUI~6#i~0v?;B?NKrs^ECPK=B`)hD1*?`cYJxV=-R*cCF1d3DXYLsJ7bdQB
      z;eT)gi6**p;nrW^A2FV3C)QBo=AOr#bH499=KHTtUjS^OkwJ=K^?<+PjmSvVP`>L*
      z?KZkY`A7tw3`6Pb4AKlMgTPQYQ6SAxW1EN48HF&+h9Zz$^+XV-Jn7tFV7m;39bbor
      zYt!Q@5|jA(L%(T<9~h=?NG;7RhK+J}P+D=q-ZKGFXpVa-J%;p-|6F8oh9Tql+62DJ
      zVwM3pOu)*Mn9gAy3mFuN&gq(YoWps76)z*MLWbhsun+qO!ZFRtvkaCPN~7G4Qo`k`
      z6}XWnv}wO~#G#@7vbexd)7%rb|H2-dnC(TOvHQX<B}7X(EaGC!@zN>iq~l62=6*Sk
      z5>|<&652KU3=`!_CyO<P>)eTP!+*ksfADmql<fz$@D9xp!%SCd@gVa0B6!UEN-$Vm
      z-=QsW+7;P}Gi~-Ijbv>&_WvJ4llBnz9hVx-Dd~bXlkjB7?fFsQh`Ta|T^JkDW}HlC
      zNIlXyGAv;dQzSEFrI00!N?@AaJbB(yR2;WewF=hE3FfRq?HFg@qwpDvPp#z>tbDD1
      z!+iZ1_PfM+C3b!slv}5_O67o?RQfjN&_WU0bP_Erqm6akqwn`oCwUFK*q}&z2#7K&
      WWW|3>6*Zz0Yjx66q+cZ~h0Wg#UfC`H
      
      literal 0
      HcmV?d00001
      
      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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
      I4v1_20YHzz3;+NC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-BTM?6#rckSlDh0g|vm%wqUUa8c4CNRYGgqR1}01OC+TAYe_C)VUvx!H~mm&
      z`rxa7fe$|U;#<`kIx^#<&iF?;o^v<E5HgO*%)Pni`~1#F{`&j3-vP`(8R!xi+qNIs
      z$(nN9r0bPRPNkGwb;?y&&U=2@R!aH?q5@|Qi!}uV%%ZIt3IZpWw5*a(RPt_<o)R!z
      zry^HnRbVg_ac%add~!<c-njw^IO?WABtEew5KVhU*^8qB$5?YZkX75amFJu2$8iG#
      z0t4DrXy<95WZA+Xh6Ik3q+0R4s`S-Ufs66O{w5BS`XF$^f`MLv{w4C5sg*aRpS3q!
      z$uWBc+g-DLhu;li&zz3fL<FZT48x?T)s_<oTnO#|7qFCb&!$FMV5Sk`0r@4bbYB)c
      zznJO}t$|U(x+Q;&<DJ^(rX+yQ<5iC50>u+wm{{Y~UbE1R9uu!)!a!Ug)~QSuCUHq%
      zi16duWu3BIs07Nc6bORhcq5MX+8UUmB58X%0ai7U#EgN<9ebylnT0oSMWB!TEjzBu
      z$WieZO(bxQ6L^yoSe#hnu-~$97H<oTw_?SvI>Eybq%6$g2BB<MtFlrQNc^ux2r*2t
      zg?HG(ElMGtK3syPToQLIq;Z#;gz{MRYJNecT{{Rec9~#{?ZejE?+nkph4)yC(GIni
      zrP}g}tj7EW3yb)GCWH7(@{x2okVYH_8-<xV;AIXt)0XMIjcr*_9Z+gy(2Es;uGvwO
      zy5zovRh$zz8g}Ng3<A5Pqxs0f8ggN+vRl6QxFT?BKOCK!rt);84CMD4%<&o{p7R~r
      zCMMQ#+Q7$@weA;Uuh0Te``m~4l<WQ(!xoMZNrcSQ1MUMG1p^!V>IeN=D1rd*ud>Be
      zWfyj`z8!XM(^iYO6x&-z$-)+wp;vj~GUCdYsBL^bd;(`X%yP4XX^JBowN09iP^zWK
      z4R{GM#dw8#<V1_uzkpGj2To<DxjoxZBPV9qA@dF|qgdOHo@OjDM)ix(ZttQmjXM1r
      z=50oIgw8&2eUH#<if;b&4O%a8>=(p-qDL1_(rMBSWJ&xQPH8Ggm=;?@^$Ojr+&#IA
      zk#@BdqPU^etWXGN@CpeNf;dMf`4(x4tD9&)?%{m?I9}{xY<cnp#{Yyl`4Sg@#dw0B
      zdr0Ij)iJ$`t94wjV>Xu<7_H-GE<x1WZSQyW`)9=TO#<)Nv6M>;-qY_%B7E2?LGNs4
      z>JN6Zp5MiT+33_B9_B})(OrB}$LEQWXdRncqYme}MuD-(V2DmhX_V++W(y<O#%1i_
      zI$YdBnP$0y6?oK9Ur?9&BoWYA!<TrBXLy2d=-0RS3g6*t{6G}O_i6}611N%pZ0=~N
      cz9*|?s>U<g$Q800A>CnA$##_ZzK$yR2b>=II{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXWk)6#h1GEk{<;#w96jk~Y0!JHe*h!G)5h2{lzNG$C!uRk0UGts;4(Re|A|
      zTmJy?+UGt1GuWAS28LmVhyDZLzc8F#DYnyy41SQM-Lv0!zVDnpkN$b^3xM<ZNJAgP
      ziCfkks~ig3DLY=HVY`j;idVbM#TCn~JKWchN)8e}x3=OShV%v7wZ-cU{rSQggFg3Z
      zjW>nuxq*fOhQo@*_R7_z&JIIr)~j<J28J{YGK}v{#q=5rmTNV*Z{Q#fF$^}i=q@r$
      z<_qS2$0`}*7|zI$k`!5rMV5AnENyy$kcm8DU<9KKS)y6?y(ag?XAI}^5r<<*cZ5$S
      zRbtxSB^?Y;8aRq$QJ%}5FBZeC4el#js&aqazyVA!j3z)<rE>>O+vU-zRcpiH3^~)Q
      zS<af}+wwbJOo>f9U^tl|ewVU}Bt32549+qbHL985Q2@hKVh#}^m1-#z%}|hBsx#U6
      zRNMyp*f@X!rZf~8jwIBC-{FpdX*^AC%$O#_(S+np8CB6xW;nhV<HmwH@A+Gn5Zu?%
      zkMq*aXBqrh$>Uk?E!%%mCTw)5Dm^%}juiwIS*et48d)BdXKy3WUXyCiz^WO%{6E@H
      zM(cPL7c^8DhP!}OS8&z*uYvAXrfK;Br!|I=gxVFV8s1<y)pOi&c*AmL{6@INUD3IE
      zIxgap^e(O8^3Ls43OXSg=BXJKl*>gt6LidBTt2D>-a?w%JlG6H-TTC?y3{Lj$272j
      zMY+SpYOT5GUFMEOcPN#=Sy+<+%Ld-YHNvJV*4tuqcXsab<7K4r5~!I(-b8M9QzE~#
      zX1L+l!KR!B31y^lagEnJzfM(?O>@J*JD@j)n+D#MDh_<?gz|XWS8)sz`@+z8Tk%4_
      z#^-HyKX+ZYlC%sb3B8}DEXZTRM;d+5=qp8E8R+zOiS`-&A1ZDmn;UN7@HURLG4>;^
      z_2D=@hZMps4B$4+J_jdg&4|umk{F<nC-xxMiA{3nic{m;IF&p16Y?xqYU7zM_A!b9
      zzM$uql+Rbl;%mbG2E(|kcqSu+n1`_N9G+L)IlO=uiBp$zj#i|WIr^5r5h>**CFPa-
      z*B|2IdK)vps$*G#pWP+wTUz-JgZN$%N&sC>saTFQEJIx?;Xfzaq@Y6a4`jwt_mJIz
      zeu%mC;#eDRE=;#@WjfWuReD+afr29sBb`5!hb_{!jWIkRy5ETC_a2=ErH&5K{F3Sz
      z#SLKvtAxU2v&1^*>02dQoND8Gv4!=nqfxc~q+0()Y=0~C(I~p(qK^0QK4CF@pfddM
      EU)3klI{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95Iq}jW8ylAF$Kc?QkSM~X`1I&NDvhXDL@6N?~c1|wleF=mq`7rN{tYG
      z-~;#q9^h9Hvq?ly;;KA&XJ>uR@ywa^_um)a0JO1TqQtOr91Mb1p2?_nl8D2!^|F^{
      zNf2gxl!-*BP^4bl1ZQwY&?rzxt@piS5oRXJ4DR&wL#|ZNiv&YC>&w*JBKhur=x;MD
      z41&mu82mZ>w2n@nJ}tU3&4dyOkt&)b20~>Ft5*_tHIP{49jRpYg5k6|$0=xjdk%DI
      zMOPxnC9Lf;@J@UnDqy&7!^AbcyJ4dOOYd&lScGlCz-=2<G#HGgCe^!AiFf(uo=858
      zeRjKX7)1L)B6U7F<l6iqM+&<0+T@6l<Z2O*@WjMphUV<VF6-CEQ!LZ9IQe^1#uK6`
      z&O19RGPT0`80SeSUQ2y(8U;0O>Vg>TH;TsIiGnm0)Lwm8g;AVJb@Wzb{rJGd8pHBz
      z?FDi+)^*wZP$mLfWVb=j0u0B|lK>o7&tVj43iPX#=&7Pcs5<RlQO+qY`RhYC{>Bil
      z|9nX47u-4<q3_UYjabCsKX8|Fo7lv`J=~|r@Bod8-VP!4yPAJaO6OSmiiai4DDj`D
      f@?ZZb)h0>?JmQwHf@c&hQqo$0i&a`Vn(+SsJ6i=D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5&2G~`5dJoCV&WQN+|s5c{Iw2ET-vmOTM<$f6@e5ADkz6=a_nv6%3UMd$-D3b
      zoRNqS9C!d8h64zWh}k4nP#qNxyEC(%Z~ngV*WaJN0NB9;6&Z%gi8FBO{lpLIZz6sa
      z*Y~<{5;<=2f-D|!;qusOs8AS;k!#?H<NEXN33n3}c?NU(de|4j=?0u3pY;6L+NSWW
      z|A@cKP#8FY<#-<V7+8lPC+&d2O5qPek2iZ%1aJ9q!Ud1c;C#SE!f@vT$i8$T|NKK=
      z_{k#%QB8Tz7{G2P<u#*>3w*|TYi$OlN%a@NFt0<!C8=H0QGh13B^`6nrM9f&GOlRI
      z;<}C^$_&}6gcn=B;0OKFE{|S~M{Tx3*9qEA<V$<<sL1&<tfxwv(VW$wfn=k;n8O+>
      zDlCT8^Q5J_)o~Z=44T{X18;9koRuEt6nHiQnWd(~mS}y1KIEt2KoYOL4EvGGANz8J
      zN;68`l64X6sUX^$ffL7^x-9MsHwa^296#epFZ5K<;;o%;VMaI|4csS6j{JxcR{mXm
      zr`E<cv6H2fgJKwxLclO3fg?%ujU<srKUs!O5e9i*CG82>Ig%^(#t^1m9%8}X9AeR4
      zR)#3qAF=X><YtHp0?wDBp0CY@K2d61Q-hBrQ40lc=xBQ+})1AF%Ki^CTAOls;iK
      zgLg2db~S@(0uu_Le21$1z>@M4mh$VbM3qUREH)@~2KTT@QlmsN6<}hEZUuGh`~jO-
      B6$=0W
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~T~8B16o%hZ`$4u)uvn}>`B0G$lQv#>h2cW92GfA1*hKVZx(sD-yW8x}it!it
      z7fk#UUXf^`_x>2~yfvPg)>3PUi8r%7v+q9hoH_mW^V1gqcd(H`g0ONTUW-bsl~?J6
      z@+hj@7w#+Nx9U0w<-<3w>}VDE86*kQHtGq#Rq4MVOhqzO!fVJd;^4EL2LyUdnAi^d
      zNDE&#gcr+H_WOsI@88}1K}g?IzS3KS!dmSdSl1yRy1CvUB)5Y@>EIG_<8Y8AOxBby
      zcjI<bhWn!FNkYCBxO}AGgSqZ)CiSt32&-M{zdG6^WZE){M9cF2G9eTP{q~Q;;M5$(
      zipK4#aVro~u81Qh6b5=Z&l0kyq0(}%c_Lj+SnMHHQ0Z>%#kvz~ZeEJEZQkkMY?Q$Q
      zVabYdemBr{d(rBx(dfs<u+$r3*|c1?LoAORqJt80Je`0r-_;%ML2%gT@VE5Bu=I}q
      zr!y(S+z@au!@PPBhpwzDGrZZ6a%IyfmO*^E;I)Vp()`SDmB1L1{G0y`ypHqE7Vjna
      zncld4hKY|hGs&xCcdPvEBTR8U(@o(r@?3Eq)40M6!zzqo%?z`iFze|BtRk*4BY|1W
      z@jB0ZV_C9>Rqn$WI-gN`o?kq}@>i}BFqS#n;{m5%u+hN)-RYY;xQ-i^eiJMIL6=NF
      RV!FJ5ehaHiC#+ek^<Vsr<{$t7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~UvCmY6vfX_V4J0-NTt$0w$wkhg$ikWY||GM#gJB|l9=ej00W%{cIobHYy1j6
      z_*r}+(L@s;{XV`L?+z<Pq-peJCim{y-#uq$zW@C61;7sO8wfG%obWSV@RaNndX8wh
      zg|c<VJF@wV3gHN=A>5Mfbh&!;wjp{-+LnPZ!@T~j!>x8<_<<qe3P<uzO*k$IUzQ&-
      zu%`^OMcZ-}w^WUHJQ4XZRoqK_`1YP5x+g8E_8C%}l?z~1InrwHZq*pVMY}0XOd&o4
      z6ETLlinPRm*R2cZh}S!UAz85-G?LR`s)J@&9ZQ$t!GQWN>2?{6u5ex6*6hDrF{DSm
      z9vwUOxj&ff`aW;?K2r>l2KQVdq(*XGXc@AjkRb3x=>WUpW0x3W=Z;k3uzn&MieW8)
      zNV_m-9eS$gDZ&Zf)#qmpFUK{o&XCc0NPl3fs=h1v&UZhQP2+a(Ci4EN<@KA$U->3X
      zWDuvzwi#9iF(!LrFv(l<cYxLL0A=e>|4cG0j{!$D#H-q#(-0-;zlDt}jpqFWz&aS+
      z6=+Q(f++0<RUu4MMM%VGouSS?^+L2qv$;NIKWfb!t)}iiCiN2}s9qSTa1BYSNRN43
      zCx*{TO=2yKvz`;{#U-pX76aB&z$%k_-@lQ~ZTGP}4tq@o-e_26AR8Jp0%P<mMPJnM
      zZeo@8HNu4npV7ff^q(Kx{EW=2<gGsLe5EP`KYUy>TcmE&oYshGb2!JuU2G67gnQWh
      W5Be$59ipFJLf=AGA4yKT+WrL~g$;cG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hUW6g{&*p$q*G+p7Hn{3_5|w0=EQ`+_yWAhf9xecaL!rh#3$J5=M(@Mrj>
      ziKdAr>a#z|2jiXDg;J_bd|;TFd+wQg&b{#S_m^(~ZsC3u219D!I<yL1DO!b&%U^kg
      zinGUyP0McZ%|mX>D8dZW#~^)K-QDMP$uQ}0S6HnYcRk_Q&r6RO*b|1aqGNl~vSrO`
      zb$P`3_5R@C>Cys2q}~**J%)wyF`@tJ7QM|~Zr8cD&M@*o*g|eFJj|YnJTsW9F@%ex
      z#zY8{2_$filmvt=5?JtMtmkT@U^t(Ei8#YVS=hYNZSQjTnYG*E49T)nCy^FOrE_o@
      zmQCR?WKNYZ<R7UqI~FOED!?$REeQ4vF1K`y`jE|?q8c<smAH_=B2r|J=XBk=u1xzl
      zC?<*w!`vD6GQ{ZFqTdM9<<?%Wn~Q-r!U>!y*`2Q3k%VcJNhD<RO`Ufnwc3kfi7eC4
      z5WH0FN216vq<eviBX{(Oh_}kSJ}QP~H3j6fo~N|%(zYYh{y6zq6It9)U0WUM8Wkk$
      zhAt@Ns2<Gu#{IQyhWKk&NZ!+!8rE3t%9A2PjzgUDL!2jI<iw8dz+<82V``}7t4cjG
      z)UXi!&<xBXf)P4J^(lsTYS3sOp}PdeXdS21HX#*0o?kw~M1JKnk{@-#6s_YrRHc+H
      zO5Vma-KBjvW^jQ{l!%M;VS0Cob_VTdF&EIU(YK1l@}DsO1L+U6H=wvxX}}B3neZ_I
      zC&T4_et{wi7oq&*aI!U!90`&QT)|a(;u<A|DfPNmxj{u6bYp%+_GL1Egq81f8Z4xt
      jxn_J+Uz~{oZW4<@e_U&{{x56$AFQ`=M+>{FtGM?E9~dWs
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh2y<#Ii*F(vr*^{eq&@v|@d~{FGGZjKsY3RG-Y^lGMD^
      zB6bEAMg{?}x*VXmzJF3yYH|rX0~;fQI6}8;S!!MhOba6eS8_&XPKsknN@@xtgNlX^
      zLLs^}V2#$AVT=qsU_C*px%p)vU0lKWrA5i9Zkai$K$|e#r3W$-=m<szW*}w-dWs3?
      VP<93m29Sd}K{QaD3nb3K4FCcdLq-4q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+fvg|6kR82NllAjxu{%=iqLY2;N5~RfHNoq&VW_k4CPpYC1H{i@bVG<iq6O|
      zqciHWkA8t);<(RATA);B%)`0tv-jF-?Y;B!&zElirZ8(jV;J7H_iQT^PSx7=`K!Qs
      zN-OudTjq0Hwp-x~d)yTU5)55OuFANwvCYeZp*`TfV^>Su4;;^Zwm8qg9y7Ggd2S$V
      zSCs5($dhUP_w3rQkq->|YyOrYyQJW%l*3vTzT;Mk3@MlID|d#L8OL?RLx%a$$g?TO
      zpm-YQv?X6+NX&Vg+=Pw`8MGoxa$;P?AktFIm(GEqGXoQ8dFsv}gET|ilH>B_aA$-2
      zYxYK!OZr}!G~1+{?y)f;ww!=r<P5^cib{GDE|FsBKO-O@x8$BIA%jujVp&BDj^@vd
      zk>rOmxPq%x$-oQ!vf_MH@>sBeVTRtL#x~9XscE64Ph`hBYdKH$EG<dZ+h+RQ-mFc=
      zKwM(Svm(=?yBiAXHn(@E)(qytn=;=OG&X^O35E{EgxnWb>MsT?hFtAo*%Pa3+?;o^
      z@O7^greqzdO=>oCPLOjwk&8w%@-;Duo3i=08k!%EpCqJvvVpx(ZJW|&NbmcO;5Chd
      zjT%=%aZ;r2d4$>5fO*1=DzU1X^vIFJ)zkDRoRl@d5Or3kA6Q2Zl4zluK{pL4WaZS-
      zIV)$DcKOzd^R%|nZIgTww6_<=4rv)bKu2NX09~KRrr{#3S@m8b)aQisf}+-OiR^_a
      z4wosT{MylrK0=iznNd@xemd!79l&6mahi7Nl`4Ej?gy@Yq;r%>G6P;J^i1RvqcdE`
      z2w5a!i+1Ukr1*};;L5S!WIcGaX>eC#u-7D5L!Ojs7^92{$~&$&JS0t0pZOJ&>)9KJ
      rnEp<;<0?Xh)g5`&Yh>a!?huNGySPW||DwMC2kL!1P*o`^7BhbVWAa99
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh1<n#Ii*F(vr*^{eq&@v|{}LAemZ}nwOmFoROH9p6ZiX
      zT#}lXTEx!4!pI;1R-FSB*Y{7#N=+_dXJBJw5J#BdT9%qu0@DIi4>A+kG)4w34IhMZ
      z>{fyevDOS@WZ(+UFD*(=b<502Wn_@W<upBzfk1aKGB5)%E6{h0K)13paDZ40oIsL^
      GfeQe>v`AY3
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~7(G)Kwv^REMG?7*1q+l`F5W1T5CREFsU#S9UbfS+WZ7+Yr)Yl>ulk}y
      zBNDGsqd&>`&F&%#B0kJ~J2Pj_cfQN)w_mRh0Zd|EMU0_uN8i))bzxfhn#(I*evM}C
      za@*iudQyeL(C$Ml-LB>zZ|!hHsAys6_jf&R)Lm0F=$g4_TD;233x+Tqo1taSv`sP3
      z(3Bb7U{DsFGEblhZ5mX>8IncQ=B4`X7I&ZMTNY<X6&*vjHgwmN>u^&M+os1bP`prR
      zf!w%t^4ggh4UiGNg*dJ-3`v5Vj5Oy*nu|obtQ*2{8wp%Rmx^nrVqR}}g70d$j&6pw
      zDi>?6Q{%2^FpOj(zSf0n+SNkTeYllC5BgN}Qp_i*T(or0)6kCr2DRe2C4HAtF#I1z
      z|5iZ~-qbLJ4pL<Erz^H6bgGz&bQtG9DjLSAVuWGvjFyrkmYup?UV3Kmnk=D;%qdjh
      zMVPugjG)F&qb%wI-C8iHfxHMR%g}qq<D%|~KM00ct-_GLsLr8$Dt4<O(--6{^>-17
      ztYR>9L{5UtF)&9q+KG~&rHL}J?$lj_FH;v&{UgnhlVApI#kRTY({O6Y<dSVzjz=Y5
      z<zm|@tC(fz@p;dGO&aF#h}=*Ig>lFR3ftxUE64HT4yeCrG}FtC(Vz!Jt5*7&Cd<e+
      zkG(?Tg@3HkobX|9pwQtZT5ACamyx6u#fJ`>CBYA}k~YtZsnh{FSF@jy&K}@KY2qaY
      zXO(W{2)By+Xy4q2Mk7u`*&KgP)EfFQh+*HRaoe{UjQTc<agrdVO!@O$TD_w?hot<7
      zcHWbK59q>2V)%qKz956I$l^OD@Y9z(6UYiB$7p{7IT9NuPkG8nj2M#iADg1gbWteN
      dm?8cq+$Ene+{1mc3Bt?l04Y46S;0dTegl-SL<Rr=
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      xv?w{%Ei)&TkwF~OMm>;8Y>W(y49q~MGB7X!9l*-K#sG2%JBS9#aDc=aH~}<VH@pA<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXJqp4=5QX2y{Am0wwDJN;W3aXqgn%NL6RdHG2_ccqu6Q;J58$E1NeF6TGat;n
      zdGqG^x<3FcF?L`u%rk!FfmUfANRfzJu;VH|A4H{d<-lZ^G=iKLNw7a=B329?QJkoH
      ze#l^YVGS#hrM@ssJ%9UMh?Go=WW_Ke)xW;mtgTC3kgZiIE{SebY8i`7nhQGrlV?#o
      l+YEG@J^&nwXTe4t(}L5mi(X5&VZWUZJ|rDE45=Czy#dheIQjqp
      
      literal 0
      HcmV?d00001
      
      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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
      a_ljRfcAoZQxf*j3(NG}bU4~wTtN#Ip@F>6l
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc^F5dKat6v_g%+(8t)U@vP6UJwP5n<h1YXt4xM2upjYOSao)cZ<b%i}8OL
      zpM3E_69J=%@tI%X-|!Epb9Ni3w28i)Gc!B$&CEA*cK_FxZvcid<%5f1a8ub*;zdi<
      z;s($1QhZUdEN<w@ZQW8zH%n<=u++TngNNai?W-wzHlENlo>jCdBU{XI-8%4N2$<YZ
      z6)nXLlj80tW*OLRhNhXkZd!_Nr4+5mz5A<;L*GXyV+@`QH`5HkxkK=zWvF^~jKNoM
      zied1odWM$>D#1`UuIj2a!4L{n2US}V;S^<=$!EA9ZnR2hK^sGRjo5Ii0Sp}y{Ad(X
      zmjua?dL%TVnW1G))%ij(x6X|vWnJT<?tGfMRj6mu%SMm&NHwWGr<i||OPw|f77W$q
      znxQ$%t=URLTPR%J7=xeu%JX8VCne#q<PL?2C-HTjo2HWG^*BeU8WkTic|kE0D{uG_
      zM%0H0jjV$DZPVg82{O)8Q3Bq`7r0?<)27s7thy>6;>2MEqCL#%;>HH2lrgl5<AQ{X
      zxJ08=3I(ob807x~cTmOz!iYe)!q6L<sivmF@2Z4r7$A16yt7ucRf2~kFEF^wb((Tj
      z59M&$HkDXR=8Hy}-%`c2duzXrm}nORv@&jbS|0Ski#pPLq`6R!px7vqgJPfTo3@E=
      zFZr|}K<6>ia^&lwyFC)!LogEEAxYjrXQXcj-5=?L3%zu9P#Ca4=N*DwB!IhU!#x})
      zYs3LSA5M@)P&i2mnJtObE?W}G-DK^zOBSi)qzNx?<P+LIkl>^eJpd~<wB$IHq3LH(
      zGr03;uu?PlG|mv*(ahcNk7VAg8GQC2^ABo6Ft!#P{7kRyD`G36fjtb(%h6p7FUx_3
      zU0hz4$=WG&y1QL(5c}(^d*U6M<UqgheC=j^!s+erpK@T;j@`xRVN)aY9{`Fp-7T8t
      zV|1ZJ6mKJhCm6z0jNlor<2k1B0tvd8@DdO4s$w{6Wd`f;0Au!Wf;7x=igMuw4Q!%3
      KoEtV5lYapIi#4kN
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8fO-~b16g{t<nSNNHAj4;?f?s7oDqy-0ApwH1hNuaqE?CI43{WgBX{W>(L>HJy
      zG`iJ9cPegBi3o{_Y;>i6z(3#*@DEteo7O5W=DmC0+<VSFC->{Gk9z?6aM}ZxfWBZZ
      zo6(}3&O~pem!cyx87n`~?|~u^bbe*b>|FG6a=}X39%uqh`y0mQt<;S|aZx}S9hn>#
      z5OIN;v0S!bn^`+yW{Q>@DE$=hrmCgdxpX#d4-2>>T?uxM<z_5D+z18`K#d;)4FMcP
      zjewfB3YINUH<8X-mx_x?D}U8YW-L}r<WgoPVdm2^uRJRDe7YdeJh6YsimE{$ky`^e
      z0Iz^nT$(X$0x6MrS3=HMVw_wyGXkzcpFH}>ADJ5MO2~;i18Boh0S{l|>>xt2I6G_Q
      zSvfUIDa?50X62c&vUGx<cg`xC;Ap+5(s>d|D*t4zm`_>f(^5>JGGVWr8y%!`^Hbp>
      zrw3lfJ~q1G=f~+8YkZ?uJZqT^@)o>(#xClN9n^0*<&8XR2?gY#z-D6+I<r8z7)@wq
      zCZyFoCD0iXNFdEnKA`0<iX;YBIMVHZ5VR^n8`>)f>*P~dd&<~GOG9XNNZ!HV%5bQ?
      z9;Mak2LIAfC@imGBODCg3{CGNYNImXK1W?g5Dy6Z5S@609z1r4jWT$Jm^27G{&;a5
      zhZwoo6~<vk(!n+ysf;zkJ}JRxbi2FvcF^&^wkK?P>QFS53#$}993!|im<v#b6LMQU
      zgqyFZj42hFF?9pu^|jw)ny!UkKnusTu&&JvZ=h9Ix<hL&G2qw`Q*>2Vreo@wR?@X+
      zr60ONOXRD()bR7tCqq~1kFMO^XV54G0x!7`uh4+koOqLSy`j*zobDYW*g`kn<1Dr@
      z!Z?l{T){4`v33fdF^4aX$_wTBt19Pl!cj?0IO!NEqljaq57!-Y6*49qb5(K<p^Jaz
      pA{u1;vp)(Wz%T8%*NC1wo6KC0n<y)RZw`BT1O3(g>2<22zX99xxTgRB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8hO-~b16g{sq^kb|D#iGywK@{7mQiX<?*kS^S%7<W(u))Mk>!^jHHKlc-hza12
      z(718MO5?Z07=D0D|AHGg{srrKZ$?07GJWseckeyto_o{pf4=SjxPYM$0s?J|_Cq^U
      zua(@)qtb)S*zDNQU<kTEi@I>_^1aMVVbLkpLI?`9A8^0#6qi=&%K}=lS`-lD0uk<R
      z*X)Ap2m}^r2<M7!sa&d!&?}jm7tqHlcN_x(N1|v!t3dOzz2w~97pEsv3*!-bv_%nt
      zLC>jD*_o~{7o6&xmpV38DcbJ5T`kG8Zw%%XkO2+Hqi9D|=ID$fgfL-i_e(1R@u>qf
      z$dWH<zqdDfSU{PdEM$qi?>V)3+pV(>@}6j-YH08gXsS9ZPE8<Ke{jdH@m^1ktHKHo
      zZC4<aTo@f!2CY!PD^(a}ippJXHP<0R6CG0XQi1bP^dlu;+^p2AMdwOMs%EGz3`m;j
      zrIW_52?4&WgCq>83D+>+Lx}SBFi&Z&@(FFD`2%9_xDDVae+{m{D1yi#uB@Od#qk4k
      zyqBSd^##W)?GrloVw(vL#_70BP%mD_$*c*OYGn)kOmFC|(>B7MelsSu+!oFy@-5+!
      zEgUoTwdXh->oWD#_52n>T=Sb+qw8hkmz6MQHibwq>Q&>1^_Cet<^wDbxJu^NxSL>^
      zlW4<rbYL2NxPdb~4`3F9yw71yRcDbw5EpkP%A%VxNr_J51a|?BTsL~Sld|^Wq|ZIe
      zI8TL-=y-M%eNSKS@(8M%TPpwm)eC0*r{j5F$KU}Cz39Te=%BBiVDr!T_>1HtweGQq
      zA6U=7N6bvDx1zB&V77#*nPmpn|LaXmY3*_-mT??qR##CNJzgFkgBg)j3WTVer+~yw
      z`M58bMUHmX!yVSQU=lm7r_IfP81fjzbxC1Z_Zs%oit7isbW(HR5pf=~Q>!?|HH{}2
      z!kXfg^)PlhWnuXPo5fkx6*9m%)s-+UlBeuPKl|&Acb;cC#}O;7rFT9fvp1xkz#9sv
      S-E-Oniugc+|9En&2LA#`Y_)~}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TTc^F5dKcP%eG}f1zSKspx)Yo)C+<atVq421T{v35@W*BF0fkK+HM8$8WR(L
      zfKMhy-+0kP6K@#fgOC0mpVjZ2VnwM<+B4_O%=gWFGwHV<pS}RtixUPs0^QfFn^wH+
      zI@$P=Q-~+$?DTazlgbs!?gh7KTk{4qfi@N8<m0EDtZNt7xCOkW^1MLncnu(WjtJBZ
      zJ2}Tq2<(Yef{3#Q;mH3oqZ0yJGM}*n@S@&?0h2tnF`^TG2sE0|Q75or+{xKz%k$HA
      z@uD@IwFR2S^JyzPVHF*DUwzcvIj1BLu2sNa8n6kElM@KmtY4sh)^?S0N{TI!Xf4Ew
      z7#cOrP_#%iB@j5dn6?Y9lh2h5v<o!<mN|8<>XChQnrO!60J_j)pnGlHpE;RmL2Es>
      zVTXb30-@UDFtHQ6IFfQ9W4Y8ti=?E?Vv%1KWJIovrc%+Ar0SE1F^SkOv*J}R<Gs`6
      z8ESH6lxBX0rZ;O-A5kP?>AF*pz+=%dor}hgh5!y@*Z_5GRCQ&o+-&@e<<6Nn3T}pX
      zUdpRS#+XDH2_;VsCvYKOE~ahn9jk3wzn=XP4?PsgOD5JNH-MH-+klV1e%{XWUHa=|
      zy&n*W^}R#G8(uxwz~4sYN;2gH3q6UAeCw`+V-uQqW1<`Y!K5V#JhX!dt-{B7N}nEk
      zi-y-UD!_H>@r(jAD*>y3Yz3{1YGbTM&lXkXBwsvyX(LR>du$zU_dG{~#B5(d*n{?$
      zRp=(B0TXQS5*l!saFdEAQ~_9}@$rlxN&-n3TSxeSC~`(&N!Z)b`5wK4T2LeFM#<XS
      z5!6<&TSHL$mpKg+8ERv5QDzkLKn1C)SQvZwCnHq}V;^gfjfJtFmY2C94A7FTAHd+c
      zy1vunWBgQ?|H)J6{#RX_G4v6K9w$0K`wnaVA$=JMS#z7_RYe;?!}9`l%joY48jtLe
      zkj}#z(yMv09R>#t)em8x{rnozUy-9Ss)X8v0w;Te%q4c=vc{Vn&;mMei?uExj@#_y
      z4i4fjMsN=)+^6~rxQd5LfrMJTsj31~IL0`^`#Em8>^p=prHV$}(>PAA&i8($g~7;C
      HRZsF49uEL(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+fEZv6kVq?WuzTIDfS9V#Y;OyDqfy2K2R}fQf&-cA4t?`JHW{Fl6D4-U!{p+
      z@WBu8qm1jEDNU8~GTmoi)>?a=lm7nm^A~_kJTedw$bYbp?Q-C|Uiq`zFINto){)b$
      z2Yx^Bcm085cMRwPS=HwD%FkTScLtMn0c{v`1k$xBP^@eT%sh6xuKz?}vk*2BXcA)U
      zqS0bQK(F-LP7E62CJdMYnF~OQjadlHn}}jYV4>!Aofko;=?q@kP0tZnto2&9*RTh!
      zJdcvPf9MVc)}|@=*9Y#Q^#WfYIeiC#XzNHh5kGKzWu!V~3&m;Rp)=8s1J|cEy-=0A
      z#&$lnoWAe&x<doY0*N!*tMze3E_uyF0!uNh;)a2|z|vXYq^l;<$i#6Iw+-B)?CIBI
      z;tn#rqM+Zlm6GPM?FopgfKk}nu2PreS(j**MB9)P7R_h|`vQ@@ZRyKCL(Ox#Tw%8t
      z3|bD~3D-(bc~2Ws2lCuP<2xjRye~#NV*{7?o#p8z^RgbdN<R>@*1u!!D~}N@@H?+c
      z6%IZ{3_G~Y+-lg4D_G=-gVG^_$>=HxB8-zrjo{1tm9?n#4Rc=@gupW@`CI{-VZ#WJ
      zyCB1^EPJKWoKjh5Cc;dDFe|weT$gaUQ>;bszuMPatwC*X6nHWm8>>yAfFfZfjdhOZ
      zfRs9EQj(^$ymEq)Bw}=myZSk*w>0G)mwm6OtZ;Npl|mW!)NU#M3lx=*6z((9n0=tU
      Gc=#7(=g!yw
      
      literal 0
      HcmV?d00001
      
      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
      zcmXwzJr06E5QX0;f1(&G&wz~^ub_zuHWnr{Rx550T$RACg-5gS03OOX5N+nY$u}==
      z-k;|Szyf0*J;Jn<cPXqXw0IPiSe;aMZtTT}Lzr|-%WE#Shf-yR5ai0FQd>pn$FmK=
      ztyQBK@RkxhTOFlg=)_68`|*C6bS~W8Y@Mlfp_xYint9vc5jf930S>pi@Yrw`L8k+R
      NKOOP~VZ^hC=nKsKC(8f;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw-%0{O6vn@!tH!EnnpR!}(v2FlM0Y9P_y-E<#@fqZw819UUD=(D=&iaky66Fd
      z-lS)U&aP4rK^Jq*oSEPGzBBXo`SJ?j7_|%%g!-Mh7gng1V?C;c)fZX}J%29r;9)8k
      zT6t~;2B92dj&Ntz_XVLCNM8xZmVUtC)mfiF=Y)LEa|110Z3`!qsr~n7o8<KeA>C1~
      z(p^Hb(X<Ih&%2Q(lGx0_M3zt(DOX;E^NI8?#l(?>(#V^#fnXc1*N29_RRQ5(^zZC#
      zLZz|7;@QXASMIFcv?JF_<XYxo=D{p-`g!6SBbZ|^^rv#DqFHwT_?)At33adve=4Dd
      z6w;hCTqUr<i$##-nB$WZ&cr#@S|a}xBL$8oW56j4bWr47ZUtcrC9WcYGRH`u%Vfl+
      fTZc<*|5g~V`7l<fuBf#F^QdBnHTV(Soxt7~r{HXA
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK)367(L^+otq|oBz?H0={vEZZYkx}7f$T7Zk@Qb-ISz2xUnbBjc%?Z`?}C>
      zV2OlyY!QpHKw`rNscj^X%7Ps`_y_zAkbpDe8~Zk-5?OfeH}lOo=X*_l{rktK0M24H
      zih#iAs(H`MbX?2MJh0X?Ik{|`u53jS5*XHJw&^r7rKMF_bGbE{uT&SON;5ah`AVfw
      zniUWQfx)S!({@eAoipu@3=%&skkG!BoB4cB?FfP0x%_nYcJUd2;6MBm*fCr3!>S7)
      z-R6Z#wVbWyug(j^rVGVtzMRhq7}su3PtRm$7fZ9nd3A&F#CW4fS4|lc2;1_Ww7K7Q
      zTMVpmUm*H`-_l$Y*ja2iolK*)nkkzf<V@GRATVIH7nd!^YOlyTgIi!6%XX)|vdF|V
      z1R@uC=3W*Ej!(=9gr=HxnV`}!0|#-0eB*@$bud)4968%rTavA+xnxU$UBzb2wCBv0
      zrEG6A<gQq4fqlj8%RoJ$@q)q&+V|`Pf|yV|hvH;R8yH1Iald5XwBimaX=>w)!TO$5
      zK})yj#qTt)NwY3n4571LXDX<*CFwwH=`hqpPOi6PjVCl>4e4g<wsL2ntZ;%G)uwCO
      z1xH|ix#PIjnw+!R7Gude4o_T*J-~+QhN8Qsk9a}Jx@6!ouCQ*zn!NAIcA1Ja!FA?+
      zlc3bmF-#hmQqDu0&Uadt>q@f6SRT{19_YMJ8#s?c460kR?x|NiDqm2Ux?x~H4lo8s
      z%6hxttali+%8mCK9=|&|F{c#XG%$l(Y!U7hbl$^O*FA7|GK$**NBc8Tux;5e?QE;j
      zS(A>N|F9<4RT2`YVnXr0ZD6EZp#=lyl*$2;R(g#XYP-50>)oMK%|jstCFFer@51Z}
      zVF4n|j;n<a5+i5T6qDJyubicUno=FAbDJo-Um0$t*=g0}w57UlaC5Rxs{n9>*VM!e
      zGBaUBXhqfhAVxdxvlFxje74HupwHexduWS2?6cMVoj!XP?cF|m4>_45&CPDs>t5{B
      zD{H3Lq~708jqH5>zQEn{R4=$jQ-R<H4*#GXkMcJ`K)~gd4vz85=(^!JPS8>iCq0NO
      zgiyZGRB}6rj|lOxh8XR-c@VsSQ#|9_peEh}s}W4)b0oEa@l^0JQmN#@4ZN62K0&6h
      zZj{LeK1B$hG0mSdbzfi)zSJ~hU4S0Vh(|+Eyv$StL_m!>g9xZ*(huq@-pUc6kXMPV
      zp4r#%y86HyT!Y<RyvZFU`T|##z%vX=B`}hDf{UMg&#wSf{*({!$d|iFR}pbJygU<l
      z>wn^A|AYI>wz!;g;)amxmG>N3l#Vdf<@@RD7WX&0{_X<`_XJ*5>0pYkp}^}Z%uEmH
      z5w35I@{esnioC3%oWZOIk|m+)lz1u~Oh0{s(pE)(a&G?8VBKDc_lg)t85Pz<!QIl@
      z_%M60O%_MNrjvn(7)gGOcyc)YEe3u<b$$bLKc|v`Zx9=fe1}l-G48Ol=KI9Dlf-Te
      zi9OgWM)=x~A|>|vM5KEn(q1PW!QCGD3aJ(OSn?}!haO@$8Gh*JRxSJt;{o;t#8Lid
      zKZYIRI7Y<@B*jS_7N>lyV?EX}yra8G@FjcC3;EKPOfGIIi8$+n@@H|$%OW2|iWYqD
      zo>!cDKS#P<#0|tm@j0-|9xR_v!UBz62c|U*srqnwG=!<4y3dO6f)!YydjQtImY!l%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+fy5596eu>lCUmK2$yn|^dcn*lD1x3F16fBG=LTwOKIyYu)sRYhDkQn={V!{
      zS?!~(sN-e&qR!~pL~W;iP+xrY|54AkyCf->hd!|R_Pd;Oe&=_-<?nxge*oYlt_9%}
      zIP#`;T}u^h!%W>UHdEvJs;Sv}ezs_D7VSAZuWK7Y1Oz&qeMT-dX_!0K1^i3JRRQ1P
      zD2FRLhi#d?VFv|*+#o5qwJ)9(P$u49);Db<XBC2I5NO&aO3zkS1Oj8Z6}=t;5fwp%
      z<S44*0O}Mpqcw;Yf!4h#Rn+4UY5NvO)9H9xo@`gqfldm@6>Xk#wX(F@q6ZapqbG<b
      z1)8@N)vl|E;jqAgxAKOp#e>gEIY(6-!&9ux()E=>+M<z8v6q85E^x>}Gc{{1mA2@l
      zrI{1?d@dhCoW6}|)^R)LSrpSuGiJ#1XBG4!siGfG3)Br6mSK+wwDh^s9WeIFu+|2p
      zrQwWW=`+QRB|Sf{Et!-T&E%FfGppqd`R+{y>~*6caBQDm)mF>C`Ayvt5NX=y(e89C
      z?o|K0RH-Pm`9(Q8EpTd|{rm6^rezH$AM=nr6Og_s@MBmqKO4l^?R>j-o2I^|ndkCr
      z#SPuEE9na1oPf#*7mOQvY-l)kLcs`<Y^pcMHm{n+!n$nkq>6F3yeXM17TS$T_GFbk
      zad%`?ye#LNF{5Hu1|j4w>MI0VHgg4Cx|5M7=Ty83h06O_w4CkXc<H)k(&;4$v7q9z
      z%vq?Q+uKRXt@4H`bGc%ES?6tJd)vqNxV8f_XgEwzKkvH_0eM|G3djq@-+GQ%09T%H
      zX6XSAa`ZXpef*uegLvW>g!$L#myZV}G!1obq3#Yk_}=C$be7P?LAZn?pZ)ibH@by}
      zd+1$=_LY%%_!F^w7~r#)e82_jnMVs=M>{T|3k!&I?ipOcFs|Y}t|7%;t*!=~;Fk*A
      z-HcP*LtA8L`IJhhJf)FD@*bKO%6P6Zf-+vHGRo?JHH5KVgBtNrfr$JNc&KMQ)C^Ij
      zV@e{~zc*f<brc-Dn7gxrr+9cgjX}EXbM&6}kl*3%0Fh&fWEn%<ThgVGh3HFVj6O_s
      z-w)kIW1{~q!d3kpPRHJ5=iVdd`)I-kWcUz0_{iZ;xOf%*ScO04@skZ>bk0u=3@#Nt
      z+U+#w1vNFft(!=caGt}q64F%}QHSPZ2ImtV{}fT&bm&$0s7Ehk?spOV%(JoyS(o6I
      z$4u39B~{apq-vMO0jIEA)OedJwiv80So)VZim#~eHqPK{8t@Hf@GUOlyP7y;J^fuZ
      zA>*ywRmq5Fl}e9ZbNMe+Jv!(_;d@s51C{((<BwYLC&u9KY``K<$hb8I?uVxP{hc@G
      z6aD@`2^Xu-uKgu$EHeeaGPS=s@NW7VJ$OPO>)eq58hE?vNG0Tdsa=$B5J~1xUhQzQ
      ytGk3tvh7tux0XNX!JoWne>r4s)WQ|Au=6>Q(FtRbw6e!x=aR~(UE!M#SN{i!a*7@R
      
      literal 0
      HcmV?d00001
      
      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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
      WY`>FmH_NV^C8-E0e6G~fcKUx5E4x(y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)T~ixX7=BK&$%b@W77EBm0tNhlV2RRNu~2NGr35L|lBNyRahA=}ZfBEal3i3T
      ztQU@Urq!`Cj{l=GHF2!t5AfFC;EcaQea<GK5F{7LIeXsoywAtGlRy6X^>+a8;+~3-
      zz~Dn;*GT)G?WFhYo%HpM%*{35+wr}1uWT7b6^g*f;hL+~wqtl!`Cy$u*esg@-7AM{
      z7j7+_o0<`b&e|p0n-l08t5?`=`r!SU@ti>X+UKUV<JoShqT+<W=>UtBnYH~B0cF80
      zSaArP(x9SUp#K=ijKpkTu}jvfU)-|FS!2tw1Ugq-({OS|*_QjpL&bYwR|L+q&~LSa
      zO2V%13H1EG3Kg&M?63t*yW;3UpQPL`5E;vCjOXGABO#w81*VP>(L$&RHbZeLhMFGj
      z=NI@L#~_9!?g;6Qjpy2E*6SJ~h{o|I##Fo|pa&!!qjW#L{zb*JiW<g|66i4fa@i_*
      zS-WW6upLLbLX71IXNI5f-*HUh9TjPTu4X(3gVZ=#Qxy1F+4g95WNdR@#-LQ}J#Ixt
      zAXan>pL&F6;P*LmOO{cv$^xOyc>$I68ETW(T$EVTQp~J|OPJ;q`8x$p9vN-<+cJu6
      z`R!OGHZmQz5{$)yhO1I}bekhrc_76vYUo0@WWJ=~3PvRQf;{+0!wPN?qhJxK_c*g<
      zbZZ)J;$z9#^0KaHI2m@OGZ{&6T|-v77vo{haC|HBZ{tHro~*W69px*sYd8(vi>}L;
      zh?{lSFPqk)Er+wab>b$a$rvWrFzu(2GDfZ<T&sv7gf{LJ?&8q6y282;f7?<M9Xe__
      z`J9^&bbiN!gC$<dpo9CKdLcS-nmb;RCJ{&ixAW{U@Ly~zhrmotyhKkvq}0%xs9_-W
      z5`*~~&istgU+_j3CW?>e^!RVFd{`gK<`w-(HXqSr*}R&3md(eKdTfusdNir)!9q>y
      zy}_a_l)b1-^eI)GeMR{KPO{}X>15H5+Ze?ij%l7jZr~g~!8A-PqJX=2$R|16LlIkW
      z19|7`bob?%4SAHnyXPrz6qoTHS7F{$aRKks$6+~hN5pUOL?M&T)I=g#!w0Ds80D&p
      znO9s-1qpdX^4Whk;E<}{+UL-TId%~e2_FU=<mz(3LCDEG(s?cj1kh4d%(LyaDz3No
      z{E}TB;RL=4dTIf_*61nZ%WwqsPkJNun5h~vL|v|8bykY1;#L=KKYDygkI4uV%t}er
      zGm9kZkwp{r#MA*9=s+{jfo7ls!SSl(diGG5lcWfI&BotwRKG<Zo?-~!;ca}6S^R)y
      sJY%#^803!(@uvd@nhh};<G(|*_&37pyMciloYOo_4fE*+@k7}B4~f5A2><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}$!-%t5Pj{j<9IyTSi-)9)i{8Gge7Ewgb-mVB2qvBg#&8a9W!A(j>cn_T=);Z
      zAr~Y>Bn~-p;KonDUm#wM%_Nv0F5O+#Rj*#X>Y1-UKW_oJihF4!6b4uID_v-Yu2)!h
      z*9t{{#nYh)(nu=wM|Ym~tA&NqswsyG>Geh!7+q5sn6LWHLbbeFSk$j)b*RS`vToz~
      zitD?L7p9`1mg%Xu<?y+0Ohr6h6TA$k6s+8ZC57a@dd1jK=yhPDkB;23`1|Hv-#l#A
      zN+x)$OP*2KGhZ)jZ%GHP*llMreBm|}4$kl1!nh3!`vo~GH4Zp97}XF83f+GFfzcHc
      z@JPzqbJrs(M;#nPmJE$g!uG6L3rv}c(2%%xYvjM2A?PUwX>{|dYQpJ?CuqDXDmZj3
      znwn;YUnLIB$MsNqMW34dHWr$qsN0fUA(eYJBf0kdH)XRHx^=&i#zlppKl>A{=juUC
      zhjE<rciBM>1>zB<SQH$q)Lc<WJe#4SGJ(b{XF*gQycO=F4l=^sj_!*7S~C=!n-0$6
      z4A}&xVaTtC>vm$B<&s2BI2glZT#<w8W^4>}*TIxr+mGtapls$`8D!7z2X<MS!VqCB
      zzD5fPq|n7vLIjO=lH<OY5u6}bht??X75A>ZwTYe&QCvS)n||O4F`i<8C#MyKJ<Lah
      z(AP$oW2D5|`AzK0AKAp<HcD^AMI(tarKv<ngRST`l2kfGUVN%J9J3msEv!=cPdKs-
      z*CO?jq23NssTPz{^3IrcoQa?iCvcLMG+Bt@K4NHtjs&E~uBgVlU7=3n4BJ#PxoAJv
      z-p|X<yc{kNCC_t`)^Jp2l4nsOlOMK*w?5%gXQ_=H0%T$VGPuH@hhi~4H-g2WDj^>j
      z0f%sH*Iq_C3w-&z7bahildltAbj?!N8}E@yZdjcV-*!M`V`XnqS!sI=x4AkzPj@ss
      s-Z`f4oa&GNG|bl?!A|`X_D%;Z*>_W^0j9Mc(r!BPD~VvIxh6343qO?5hX4Qo
      
      literal 0
      HcmV?d00001
      
      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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
      Mt4imy+Uj%v1Gnp$xBvhE
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk)+foxj5C-7hKn_O1fQS$gDMSPhSy4P6!yb|)$u5<|K;>?wQdX!`pd|6aNAto5
      z@S!aKp5C?kZocW6p6;3X^Y_<pBHE)cPZ^8KXYr5No=%1%`{(e&?hh}V^YP^*9#1aw
      zG;2}G#7FV?n;m^U8=Ouo$~7aW?zSzm0*mI-<-K?`9n2u}x~%8~HLN(yVuogC8b>nQ
      z^V+-yi8+hktg&)Q&ghs`5OsqVt0;2X4r^Z23Hq!>QPT@q%c8Jq_LW86Nta`55QeD9
      z)KkctdN6}NI9`%CPDvN`Wsu~)2031s?$20eKW38s6^Zw}Ryx4-@D6k+gL-r<1N0>W
      zIm~1=-7Lv;a^i{z-N*p7Cfg#@--gKTG`RjvQMGHj-AZ-Bv29W0`>cnM7rJRDxvbno
      z=$aQbp)UurrW^5*X0f@A&_xcJaUzse?3_=(pAP)tXkgKT{y7!?G&v%R_{bevr7Y#3
      zJd~jVe1(eteHETl@p<^VatU5gUW9KbFTppJm*HE=EAXmv8M>{!2H#O$hwrNTHsDPa
      zzXxwAbG`SKxxQ`X2k?%{w+lZ~@yGBJWzJVo=KgJE&i_=I``=UM^PVYlz0Z~R;TOs;
      z;aAGs|7&G_uQ$qX;djdK;Sb6m;ZMq+;i~ch?5O*2VPD1heQL_wZ(W)D4V1axLuKx_
      Op}db@XHnDqz1BYiNQ4Xk
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}&Bl5QWb`DW-t(BdElUJHW)oxU8~4F&Lr?v<r6^yn$;<OZsDskK-G-B5`3{
      zyK&?57^j68V&bARojc#0GntR?*Eax%sArKP)bGWEFr!d8=98M4w`z9wIFhqad2SXO
      zp_25KXZEgs8-!vYeI*=Q`T>JCy;A~R5DFd74MO3Dws0bu@$|{F_5Srq(2td?!Zsn@
      zXxap=<K0OEX{_gAAV=8fD_34d)1maQ#n6$2a^D-VfnXc1mycRFQ2}AM|Nqh!q1ssV
      z9pR46LFg-YY&GrJt{U4_c#CN;jx7?IRg7Q^yvQHPu8Nl^t)Al`rm+Ve=lk*Hkb%xQ
      z%T)?%{P8q$9P|8g#F;o}T5}X$5@ds;!5Cmc!wHJ~mtR0Aq0Ch*P~jL0w3&=qy|q8b
      c=3j*_o1Z5NwFR|QU>-GWu?AtAr&HMZ0Y=GWivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4OK%cU6#fp-^5_(h7W%N-Vo`xU09|6-G#E+HE=syEaWRG4_L|`inHd_}f8x#`
      zz{bSd#Dz;2_3@L8=MIz<f{Ba!IFI{%=Y02E|M~h2Km||32oRRunP+CH=Siz{A-knF
      zvim|>B3B6`M97W@>+0AtJ>k?<x91&rjxalfS?^T3xiTX)#<Pb|RZclGt(<#7pgJ4R
      zq>|oq!pr<W9t_;lF5Tj(PUPN{Qmq#b386i^EutXI8<@eYz9kHV5s4v)I|iai5z0fp
      z{{+^!iH20-b+2<IoThnX2|}u2w@mBMbfmV2&XAUXurg8ONK2MrE@vuRop<b>%TlGM
      zwm6nmAuLbejd~_T`O~B|C@GjPu&lA#`<Cc>(pGL5>x2dWGjy-}qli``Yv3-{v_hK(
      za#$q<r8<t`5%OU?CS=Ax@rKht0c%{~iSU}XXIlF`k2w$Qp3@R~U<k&r-CYg9W?d=a
      z>{+Jk3f3l3Q!UGOr8;>fyi>a!Mu}w@=NbYSJeyAlai+R80EE(%d8sMSIj<I`%84>J
      z8RSt9B$Ik7fMiO~g!b@?BF6DKzBM^(hR;-S>k>vW9lAukxV>|Q<R?FOf%lmIhV$t=
      z7TMnLkyA(`!xq2A5|;g(6jrdxQPMiI=N?BxY~A;{-m-_-vswI%c;F)<#Vc&|_4WZt
      z?c?>}3m&%n!9J%2pvg13Ji11Neqf${Vv&9!OTYa>i~-!RkRXcwt1WEvsT<T}y1X6U
      IL)b<6FRM-SJpcdz
      
      literal 0
      HcmV?d00001
      
      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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
      TzY&<kCv4^IR>P;bf@S{$KZ!Yt
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OK;Oa5dJ1FH;HLN(g%b$v?UKn2=tax2}MDw6w09}LcKX*)w*)lkz*suZ{h$F
      z6u|*;=Kml#AjGWgG)`NUgLfV~^UXIi>mPr=egn|Nx`r5`a$vkR8lG!fjko5gv1^W=
      znwD5$*^#bu*pc2)IEHK5QbU4}_roni?lqqG55&OLkRmKjK_Ur+Ibn&RknWhU(4EF?
      zxeC&DT7>kDxhD<Ra|EG&M#x6Q7xMFYwKh39wP8xr-6SlRBVotrl^&sa*3CJfDkssl
      zUx^Ij$m_`BA|YO`^wJ;{b!eC)<hrI5+upD*oEJvlV(NviJus}E;h4$}oe6i}<j!jm
      zZvPoE_p~&NbU2!z<@Sy7GusiJ<B>A0-7K!+x`t~^;q-iU+(3z-aptyo;}WuxMF>DB
      zl`E&I1=CfqcXX^^mB*oyc!87X$nskn?lR?R<>-nsSVKieRbeCtmMwXvgnK$};uayZ
      zV|&g(sK-Xo`MD{ru8`Q=l2SNr%NUQvSVME>fkj5h8{x#0@08FE+KLj5G#YuK=R5>v
      z$&2SN$zMV3on@MToES1lu%3m^df>T$dA@ncc8q1F`Wd-u?Gp+g*otF;&v}-hpZp8`
      zLYjVKk$p=+G|OeSI4`VniFKVT1Rgas!ex~BR8`h}TUGgp!WUd2ykl?7uae?B&>tUt
      zf)JpSntF)vI7BE02)7B}v37(qpYLa(Vu=V;F(8_M!ceOrl#+^QvU-HtiDbS|U8;%1
      Uao^YKXs`@AdVq(l1@n9K52h3gL;wH)
      
      literal 0
      HcmV?d00001
      
      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
      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
      MVXic>pI5410%iv-VE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ_3w%`dmHy7mBr_Q<kOu*x1O^coCO{B1YJeDdErCc_0>PlAPG)YB(aFs0%pC>V
      z)w*5V>RLn>y9EW&QmK{tlP*lGv0z_P?ZfSMw=cEZb=$hO+ud!q-PW}W`<?&2lP7I{
      zzs&u=?m6dw&Ue0ZW?nh>{AmD}OI;8?!K_<jx5pX_PBPWFCz);Bk<7NGvjwNq$=R`i
      zAOeE9V^6fDds8vT&W$-%F1TpyF$!9pN#~td+Q|$2@myR`+dlTp>Mg6UShieHW~ZIp
      zZo$lP`;@U(cl1a+pWI^$q)iZThvfsd)1OIjj|TNoNf~dFObNn9-1W}dj&*!thoF2#
      zGM#i<s9=GsA(?3$W&ZMoT@<=HldyxBA(%ea$kKhon2tINHMod}7wlNr6^0+PbfI3b
      z^umJ2-KQjq3WJy<s2QutxFd|&n5$ARq1P5H?5cp^QVT(Zbaa`83WNny+mmT~Q(>UT
      z&TWnLr0AIH_DnpM>Wbx(I`<X>PJfb)nLW;qu|cMHeaZB2bjJBc5bRB+QmYERbnMz)
      zaXafI8P_0|mh9ITI)-=D%4HTBut-N&TDS^Lyh)F~@4IPL7}uaVh-*i`Jc2h1%dvv)
      zCH5HC;DVc0wY4p5Q$Z~ju7gEEDLbw6>n&93Jg7%$T$pQXEG)()VXVXYApTTPY22HN
      zrTZE?cjp~@z(N}~2r6Q^Tx@qdlO^P$Uf|5Bj-FfXxU;;?b=R1sHpPfPQ*el;OmA=A
      z)&XtlbNVSzjaXMmr6{nBMk_W1e`aA7Rs_*0m}V@YqX@}iPld4sb5&?BT~ij%6w;I#
      zR#ENts@)D_%J{bhK>$z8tzju4+$@+(xshZ#($AOeTo~QhsStWEgF5<tOzLF1&%k|>
      ztEaO+lXKMA9t+!Xqj!~dyDe>2Z40;Ps?}#Zo9tbV$wr#9VBthWxtSV5QZU73k4QX~
      z$=it~VKic=DoI%wP+W)2hIv7kGZx~wv5cfdLfW`lm+}@IJy~W>nyr9;<K`fC31*B6
      ztGUpsLNdi`hp>lG-=52)`ywV8Ja<I$$-Z>VDdg<tNEmmhDSv^xg1A#qH6n^Pw)^ay
      zg%99v!6YZM-rnW<OP$!}UDySa>qeFJK?{F{dkBSCHfyJe*~J&~_b5EMB0Y<jtB4O<
      z_z3P5gq%!C-?Wl{N2^oR|FwmwuypiM3sc<D0~RK^qX#Wah84o!kS98wOwLX$iu4qm
      zNIWx;&DnW|A~JVnq>vt&tE(Tjun8SO{O#C;F?S5%0AsLi>$=6)gz+&vqM&+|5g^7V
      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
      KEi?4I%=~|^>VEhD
      
      literal 0
      HcmV?d00001
      
      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
      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
      M4U&&jt0I~H|MC=BVgLXD
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      jeuQCqAOqMK85kLuf$n5rU<A5=m4OY!Vqgc7Obi?V1Y$Q^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY&rZTX7{q4*p`i5-isHq1@BkMZ&z=ZW(geW>F~*BowqKehbxYdC;H!D?0emRq
      zE+I-9PMcr8naS*Y|9pM{xIwdm0>jmezw@QXg`g~xQyEMB;dRy&Q%7i-s0vC9hgRvu
      zTt(h!IwPSOsy)B^=->Op2}6DGe;?~qs_2%%?ItSIT<IqsFUUdFctR2>y^*s1V7T@>
      z*fS{A-^rbf`u&0b>OVhphCK%dCQK($6w@Uw=Ujyh&4_fqX*XHe;9{#CFkEaA^e7Xl
      zoZDY9G+IG>TkU$7<bxSXM*PB18z+lY(4CCQ1mtDcc7!s6sbEGf;v73D8>$#8z%g9g
      e;9bM+2JfS2hsF`?;B_3Y-V-#8o8feoarO%_>}}To
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqW5S&fYrl!%>s%Q149t_2!A{3=i2zsdW{*o;EN=z_$(fC=O1P^|IA0=*V
      z1W)2+XJ?rmX7}Us?H#}vJ1#6juvCw#4pba-S?Wlq+B^r7mZdx~rqEGkc+L+MXED2Q
      z2*YM6NL6+lTt`ce4Z%}C%95}fu3XC}EfT}E34R%wQ<0ZO6=s$tToY(U=y8^`w0ovA
      zZO#ey!Qq17T;vIRu(9F8L!U4Rb;eiKeZ<9$ic%(w!aP>#LKV8<?a(oITC$AWEdRc+
      zNjJ}{BIc=X%=iBI#&L5e_90p2r?y}RUFiredf&L#qL`vDb6=(>f+W~Edd2#SG!_O@
      YJwf0S4yG7N=dVQA#7G!nOR9zKFAd3Wr~m)}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~E|N6g|UsKPZ)55X5gmh*|c*26)k|F%dRC5lzJK%xoFgfw491l(_#&6M}{Z
      ze}F&Ac<;1e1Doi}+>hRK?z#8&*YES605-7J#FW6=kvx%KLK#IW%k)qiZO7rOGBRpA
      zj}MJ%!V~ClWoTqP3f~ToRAdEe$7(Dvzx(&go=tT;>I*bp=vdpARMTDG7w~qHL*=7}
      znE*|+1lqegR&Vl8LzTXlL!+1`iKN+=sphy$diJBv1fIAS|B^{<+cp{K?6Z;MLW#h$
      z?sa)ZCb!yzuBqy;UoV=5z|8=4Gz4Z-l_hx^mHVLa42yND-SAZ|l3VtyW+!wISm;hj
      z`?!nyP29U!d4(mw13VP)N6HS=2bmi>!X-zguJ4oh<p3Ql3AAi-u?&CDP4QZ@^u?=Z
      ze#)bGD+I04A3{gt;mNC$Pe-G7nxZYTg0sEv@V}8Wg@9h4EU-<W0d9~N6h)Xtn<9^-
      z%#{Q?WVu1TcZ&J1<P-!A2YBbe%SAy6W(5nR#C63YZV`f(gC%-d(Q~rgd?Mk2BV-8E
      t6l&OG8XlyB+a=AWqXk;MAGmXdM^~jCSLSM!Oad$ajX#-)f9w{p`UiIsvqk^_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(%T^OX5UoKZgl9+)P<-Kwi4R6mSF9kKRXlKvhXuRNq)u#{bZhq{sGsJ-5AdTr
      zR#!Ti4(ev^sjgdf>(M>Ge*gFh059Nm31%YLJr_gqH4$lw*2<2|Wd1EV^j3xq-T$l=
      zs=NfV5mX#G$%N`9$DMOb^9YuEm>-GsQ_tvu>PAqF>n&!9i#%!QOq&BD*=bTOzRang
      zj#4$X!Eq`V720KzY7C6kCW6|O3?GtCnIguF^-yC(a3Up2($tD7Ukg*XBT7(WN$0Hw
      z;p}w5D?a!g=0>KLruP@CXv{@<qAN|>w@P#}q#0d_>t_)xkk;gAHa>F##5$F<h73pk
      zi9wF`M|~kxFM|1$G7G6lKOE$VmehmGT%$5uIu*Ip>R7c?gQzZTW<-u)F`$w~C5;3B
      zncS5~5l3#<B)<`k@IBoJx)~YzMT|+C!Hf#dco%K?oqC;0^hWkkS*qPHWJC$m6bzSU
      zl`1N3>>(|0Kalie;l2F-o|9Bn+NMqi_Ja{aG}i4Zf+d4r259NZkcT%%f)&y2@<B`5
      z92L@i+zAwMNbe<?A{@9nYX<vzh*J()b6XEgicRU{wu(L`FK^F1r@077o!%|LHa*0v
      zFbD2ImSCQ-?Ck|_FTxU^FT)DsDpVNPpvqW-b;fJ3!MF)qjMu$=!`s{5z6rP3e;e*F
      y-u1Wx_t?G<4;UZ9BgS2b8SC(v@d-R-eCG4*LBjTP`VYB2_8n4(FX=l2ul@kJf;CY9
      
      literal 0
      HcmV?d00001
      
      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
      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
      Y0iE8X_uV5lNFU(0ZIJ&EvMKuak4L5Cga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-}+b5S=0)vVedJYP=Z_iw7Ieo`}(86B85Hc<+`8DQOn69dP|?9{d6RDC4xE
      z9v~ieUpsm8`rgdP=i55~T){~LDgrKMYNbl4v_|JlW~`xCIbPo^-cAgu%;FQ4)PSmh
      zp65%e@~M2tW~jMZ7jX8!itiTCbx8hnGtUWgasmeN{hwS)g~_Maqh|qqlRGQ|c}z(@
      z!BW65PPUWV({I^F_Jo0#j5e79>Jzj`%&5gl;$PX(OLkRTDCeuyI22n2F09fauz(|`
      zZfg1F$g!FZ76o)T*_haWwj|_S=Ra+wbT1rA633Rmj1(!vjMDkC(0FGozkj-Y=$C##
      zJYlxWUyV1{<SjH{7yLGw5Cv>OJ75R)0(RHfgMPU0!$H8qb$tLsR^oj8ufXva^Ja{M
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!A=4(5QhH&Wfg^(VB*!AkQf`!oP@wd6ArsCuxuxrlG>7`n&s6z_y9f>VK!{o
      z1Cc}9%=Dix^Z$RlpI-p4=tpP~)GGZ>OO<9BZ#HIWtO;B7R#%p1WniaSPyOfGJ9Z($
      z1>vq5QZ{wDS}a$bNw-6II*&Rc2>qNx;=N7GI^i-9?uVm~h8c&#xO_|)R5}wZ>xnNk
      z7YFf!bej#|c{?#q%K+iI#{BQ6Q478s`>!J7xv@-mY>+3WU#i{2A)zhjQsQe%3K6bQ
      RrEy)qUEIhI;a2VzdV91pYs>%u
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKn%?g505QWcZW&cEN+qE%*q(_J-xT~OgfvXOp+!RvFUadtB&_hMn2*gc`nPF!5
      z4(Ghyk0*c?h87IMB9d2GIMVYtO+z<SVRm=czfJMB$T;@dKS@`yg$7|%0*;b#;OyOq
      zz05+3F#9j_#WfpnR%suS8=+x~xgbnxpG~6jb4(c5u0k6r2u)jjk?t|cFCOng#e``k
      iTeG|@eQAFLQ&&?5H+2RJZIoF$zu84ke+Yfu4Gcb4+fQ}?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5S^_}qqWsmTT%Q2>cQyQQzH=qr9zT=m2EN&Da!_vjmE#`!5`p{5@*-=
      zLDAFj9&g^vdvEVAuK;ifV;fow&Q|=9*A9<kEX!<>iA+5^lLiU&YK1bvB*I$R&}J~u
      zdPi`XI=71z#)?6E>d!m|%xBQQ&Sj~%RCiodxIuSlr9X+Hz<1}7cOT4WnzV>aQE5{*
      zuVhj(I6U$F)2T7%Ps$0%nQjQYV$f@(0TIaH;74iR2vw2Elysv;7ve*OGRDbLVZq?y
      zTmOGd{mIuFIStpHDCKyKb8(p$^iDU-t0KmmOb|H!ySa0nt3wrmPTztfu%JW8HfWRZ
      f)-T)zi(1=;-e-HTW9BXl%p5jzPfzmLHy)!89DR9!
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq%Sr<=6o&uQv12b<t+#rs2!gE(i?|X+C|<BobW!QTT{;um)G;G7skD#fN^s!=
      z_)y}R%wR!k7dc-}a_-63_s1uIW9-^UF&y;yD<9Ul<A^Yn9qCCus?`(C6St!m5qMHP
      z*{~QEBjcLKRkwEE=?h2ONHgqD4^elt^c6$;Tq>zA7-lNfHiLEPyCRDj<npjF$53cW
      zCGG~#9T7b6jwcw3P2b^On+Gz|lS51QWXMo$PS5&V_!)yO!#4M%Yf?Wll)6HXTa4?w
      z^an~Cg9asb{lE8AaHUZt=kf&SD-k+@e2M#9B|B4GJgAlqr0P-?8xtJkDKh-=iI4yB
      zsVk@F2MqHRucdjQ8_E?!h8*eF%1yLv%O3=exRKEyOXF^S=W-Oy&)Ng^Oly|DM21K&
      zK{7+y36T+J58sh}qfH8Vl35~f3JYhLr(Hfa!U75~Uj$2rMJyYxVAXI9>xLz47;Yxq
      PO6;~HQmh@4DU^QzF|Di1
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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*5?9I#VzfJRs&O!Lf3Nv&XHU;*j|8pjo!Us{x$>Xw<4%E%yr#S?lU
      p8-Okb+7HC6z+hko`ih-_g8}3_P6jS8&CS3AlwoAx1(Hk*d;ol;R0IG3
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-y9&Zk3_a0meIxi<oSfRl;_M`dC<qRM&h7P5Bc+x0D*9^<et;h(-ijbnaLGx?
      zImt;L&)Xfq2n`cC!r<VZ-HYQ2A(MnX4p?2C$)^hBLPVhngV0QQPT+>Vv+@p7C_>+t
      z>X$i{iHP~AI0^}E%U*s(YZY_okF_fKtLj);k-Z^wGt0KTQ+q<*vKNG2rahPJ@3qUy
      uIy%Kd&Nz^S*00}T>aR%9Q}jy!Lmyf|Q6~fwr8kyQd1Ez2&8+E|L;VH$BU+;X
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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@G31GBQYFvp^4|i;a;1Xa~?g3=B*__pvgtF@W63&cFc_VPxP0
      Ii8F8k0R6s0r2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0ZF3V<7(KTwZCW;M8fYM>2#S!Vl?sTjMQxe{DrvSPp|zrhO|mTu+bnLjl=|{}
      z{Hj*Q8E5pXGk*4qZ~wtjKQo@YyX@XVM%$U)oO{o6o@bx)+)aLZ_}vcx&f)VB3<#XQ
      zZQL{N&l&Bu+3Q&?%eK7TxrGqfX3ew>&vLpW7!o-3-`v7>w_}?Eqm_k1snRU#HGy<R
      z#?0A9cXO`pxmI`cO@T3=P%1VH>trvNmJ6j?Q!fjQFY47sO|Mjl{qSV85RlW6baSPq
      zuas&HDkK-3ZqGBi-l}15n+c2yq->*Q+GWRGah<!S>+K30ijzjM2}}x1`dqV9*p12Q
      zs3?Vdn7Ui$R?BqtjhK2QD$%c5;U5v0YCB!eb!^*o_Z5?gg5+~4F~<ZBM=|?KN-kbm
      zsuY`5y;x$e5_m@7VEdM3cdAau)Heh&`v{8W2|m2Sj7vW#J6|mNMkMe&jge2+>BwHN
      z4rNzSJ55t#S}Zo~)9VRL3k>^&p1?$~sD#hb<zP1s9V=J#wR*E$)0Y#N<4A1S&Q7oF
      zI$Nwf-cwZ0)3%5d3nc<_Lr>tMz=+RiIOINBS0r9zbs-@ZNUbc?O4UYlZK+z+*Ze+n
      zUdQhmuG#h0tZv8Ik*&@?PE&N>q7(c1vAkBlUQnbLXkl-=wG-)1sr!m%k$q5zv0$>a
      zywX^2HWq4^ON}~NH<a_Hw{DwlkM)muhP!Ec^dm9fwymz^vB<&P^s2znBBy5r6^?d%
      zP=mlx2vjwcz+qcq=%XVg*J~OMU^syW&5DkX+*s8xA~)V+z@xJw*WcHWkn11txJL6W
      z&xG9kNW-YyyeXhXo18(p*U~VCVR}`ux@L7-p1y|BlCPO`#c3P%s^MA^hl|7W;p0u^
      zlum?ip6S&w4C0ms6H8M2wuU=Wd+?6w=i1V68D%!byJfLifx`d48`<GAeX=R}Lnmaz
      zhXXJ6zZoN^a(#6ASn3PW(W|CBr@3h*RrHb_<$lBWov)$XbRQLZ*Hbx)ic)YU*C$jK
      zFjjZA-L_e_q!~w^{K_~h2MQ<I=Rtno979%)3_oS%g!p$(gny^`{+&kq_k+B16!>`n
      zN%AKYoFYyu_z>}wf-}TN6`Uo0O2JPPA6M|R#3vQ}9Pudyzd(FO!8zi*f@g?dRPb5i
      zmlS-C_=198CVoZ1uM)qm;5Ufp6?}>KZ3VwWTu|^LJIf==UO^5ouL=HN!4f<8F3~#g
      z^6%u}_qe);<+Q$sYw7wPuBX@bu%5oLhY!=uJs4k+G=Mg*$7vAoGq1nUgkLd<-;lxY
      zY~vp|fs5$)Oi<XwMwsRrV+XiCng14>`I!f>@?T^50qj^djUf{L<n=Ee_rH<CKfY8Z
      z2t*eS_bDL{C1s`j-BA7}XGcy^CYB%K^Q;ff*8AjmD1WSARB-UcfS=<;5FO>nggK~)
      zkKwWcnXMOQYZJ?C**M$mj~L|xeSx9bCld;d3CEdm0!KwkNtlfiW}}2z-zJ&R!*-Z(
      zj(2I(f&4eHzT}6%2-yXQ<G!F45JEwLd)VQMbXX0x9}mv;4Ze@vFu26VO5c+Cpr14Q
      z`#B~z#d&Drf-e+!m5d%M>32^Se;=QOl2;fbB~$sCsA(JsWfB6_c}$2)ifSrSP5CX7
      Ks-OD3`0QT{Z#66c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8OLG)e7(F+WWFBck2xPz{@{-5Q^b8SvVgeF^(UB08U}C@sJ(JF)LuWel^iaks
      z&;?7~=>iJfQev#aDi}~Cy0gR|pq6NrWw~+f+IVhvXC9D}S)`}$z280G`ObIl?cDqK
      z>qP*&;RMkj5TDV`Y47xC*{ohD7#YJfocW%9e`M;%bW?K-D?g$$yiuS{hWD6SKG$<J
      zGoxo6fw1kz6a?Cb-1VYkm_4Ihwd`I7j2OAR<`ivRpzomoZ|2bqdiN8mxzETO&VGSF
      zEIumGIABfc5d^SGK^T!BRxdNGVh}+qR)s-w3YyR?uzJYI>%+y_jBX#-GA3EI4_R5w
      z9Mx<?j{V6-XWC#%s>}G%{HPEKCSxb-jPH$)Mo8*01)W&W%CyPJe$!+_>IR?++(d@4
      zx>KGAV-vOnu~}e8eT`SJ6;CkJ8GXLoUbp=tj&0;~y|RYw3U**8gK|3k(C5+dOyWny
      z>t!gL6<5%Wgg{3%kmt7ExLZL|K?=JBf{tc0C%d%PQ?1&Wr1m8C1hISB6CUmPf}_tW
      zcnVL`nVM~D^I2<-wIx=_mUd~^fTq*Zc%fy_3)C$>^|4I0OE^-q7i5u-3pBYDIBW1P
      zO&{3$taXm2Zp8rw`=t&|SyR_+IWwT39})V#V7yD)@(`ru^venk;U%)lT6sq^^3<b7
      zyX7XFkimy#vxa0u+UrV9c@YfbwIGhxYUZ|D!RwMuvwpUynM@&U*#N6wN+?ZOzi}mv
      zQ3WFyqkR5>sbS$m)y%ol6pAJt7IG}FB!P9Y>LUC?LwHL7LA)&xt=w1M;=$t7luj`x
      za9Z9O8pWg#Jc<*@DwqUiZPw=I^gKJ2T)`3#r}Gf$wh81U!n8nFY~X+6W)z%}4Qn>_
      ze9oDcTWQHWELyTq%oJR`Nj^rmRaww4kJ4uZHaxW86A_4vSVcRl4;u1r>s;|N-z9ay
      z78)_Yj{!xHS0jIe95o<>7QXXF<+Ft|gN&l0XiMCJlDLD`@mpxSi8Wuk(QEl^CjyY>
      zbAU*Puo{Q4jx&n44;_edBr(_fnB&B3;9SQ8m<hFn4He)h;eg{+z@r2nbHSq?fDcY6
      z#&!{2$fM<_`Ga$knvqa%U}Fi}jwHWl4L7icd14F68&DT7qczD@^(NG-=$CJcm$27e
      zatEjHA}}n6fmFbqy^S8Z5J**GIF(EhpmBl88Xz@!7OVKwS@RU%a#Ua%8(|=h8Ge3E
      z9KbA&vg;>c;S_%}m}8XfmX`2HmrFD74DqCXr|}%$8n}BWp2se?GyH=1<xX-eI~r9N
      z_gzIxLhasD!rrlq4NKiumi~EA*7J<Lz`no719^eD-gk3v_7KXsqv&;I4X~;{>|<`h
      zi)mS4IhK74`<lL35kMLW_@Js+;WB90FG$E6%_lDllsiHas)U0Tx)C?UN3`e1E}Cbn
      zkdG$h_2*;ksl^z4kj<wn?tg{W^{jrLnWTWK$6=5vcFNc85?=ido9H3>=Ex;9H7<Cf
      z{uQXC=%kjwXFNaGcy2z&W-RdYd5s<aqDon{EP^UOu1p-_b6Ht_Nqs6Gl8Ur$szRl^
      zipp@RLMC<HBlD-Y&JCXZHoAxTHo?ClnLD(|H%xaI+c;M7txL$WS*lDZRVK9EC$yf{
      zJx0UH3t)uj&{OFcbI7JgeQI~HX-K|On>WVP3Wru#%O9Bk9`pU^=JZZ&)X&+%wKx4!
      zJI<rv;eW!yWful~{JyTsXl_4w{SGF^yV@etw{YsnRdgifau+*OLZ&TQ!qnJBvD9^C
      z>F;EKBcpM$1hYbBE2RK_;`3+TOTX}r`jv_A^GyE6{}k@?T>W0vr2(H{i0+rY;jNAs
      PPv}_|E_h0%%!U5|fah`j
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO-sW-5Ph4bji&Ldf+szAYo#=ZN59aDAOr=KUV7RjL*23_CE1AnD?JGw`~m(b
      zagyd>4<5YC%$t4h?aX|Ae|!Si$EE{Ipg)yQ^4XVBM0u`4rImT{&uXOUmh!a7B04XU
      zSd#-=V7pZKg;ClMRBjd-0<9yJD03pv==Mee?gh;<ilm`fz#gVCxoE)k&_qjMEl>$v
      z7mp!j_cGKZ&<WB=>XFP;iR-3q9#k$c2>vtdp+I{=W|$_162tPXZf`uUEPO4KiGLGL
      zDKboR@2VXyRXM=UU&{~5&#?>MjPD0nT=5c|oeD2;Jm8+-+}wM|@>@k}b99*m9K*&b
      qJg&Ss2`gA-#Am?zf=$1+vBWFCTPQtRmFDV~-m3K$HY!$UKFALQjcOqP
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoKWhR(5XIjZ<0a;wCJ+osXQ4JZtW${)5QG#$3cGc0Fe{TgxH~2JYANyo@}VSi
      ztHfqWvybKdcINH-*?xTk7~&>EjnG?}jroX;wOkZ#;l!1n@o0Y&p0ThkU6w|u6IvA<
      zi%FO9%VMPl;eN?w03T=TRNbTgU_!VJGlXt`GMN4!;E8bOio=HSo0DXhiW5RzC(Lz&
      zNs<He7kcNv>WG}*vkeE4jukd}(9-z&_@VG6j6{M^bC#`h%g;`j&<P-q)ejp4twW0k
      kB5m>*4OERrIPrRlrq?r^d%f7}C9eFvRjE#B>siC~FY*_C*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKuYitx%6vzLUN4qT-%3Dy;@>0sHpz@LmY<H)0U^`oOwuP4GbarS5wzFk-wzPl`
      z6!3}Q3q(=zf#Nrb8WM=cPa2Jhelao8FD6DmY4D?w7|%J=D)@nHGUs>CIrrRi&pr3H
      zU;TagQvgfxekDdI%--YlI|KEO>w2Y<-{t51aIii;G|GE+=!9M+Mk&m>xnpBF$mKnS
      zig+Sxwi^m_Q#YR=kyk5Jwq^|5Hj)aX<CzwgqZ-@n4l*Q~jl@P)#EhhwjW?z!YPGSY
      zHEt!NK~*B1O2u1cax5~id!=Eqov5lQooKTo=SpGGnu)Y!Hkr(0O)F_+jZBMa#j_ND
      zQcK*5uQ%+SNyAPUw2+mxDYKSzGM=K%rCZ~h+Q_YnayC1oz%?yxsjO)mDI+nQ<n@DC
      zG?2vX=JaOMT2J${nKmmyD{{K+rftgRV(msIYbJQ5>gIID>`Yr(9*nVRQp(twGA%BF
      ztT!~EKyk}94J%7!YH;&@;D>7zM$W5ir$QzQIWLC0DRIXQ{eG_+3UwOuv4B(!L%vhy
      z$w}4couIqk4vT)!y}GWwid+|Ij7CKa^^{~^k@~~Sv3jXSC9ChH!Z^j=NV!ZS#>y46
      zY*)E7$d0Qts#wRT?Dlx>-pKU<jcQh}rIfv#A39xmkKN-MV_2V{J$eIuPLLb67#f-_
      zTsgOp&pUlXshApL*|3pA$&_e`7L9SNPt(d?z+oiwO&T?<rX#J|U2w~#;RV_>#<O8F
      z`HLa)@6edQ>aFDOyM@5t?MH^~8WY*DlRC%`a$e{ad;Nf}3h%?wn8Zex+NswGoNljF
      zoAXMpM;i*l61#XBli8)4O4wV-IeAw48dF%gmky`U=j<y>v|f#=tSwLubO!!`;hgtr
      z+`@*ELQQWuANnOP@45e0v#c?V&HJgEH(CZYrnBWB6)mzvn|e^=R@OgEMJV+Y_ERHp
      zT8A}mWA$T{Kv*mXE^Sk)c~s+eHat%L{XRV&(J?-$F@x1lQ}}+b82WCsz2h2pu>J%k
      z)Ke(>2MR$LS)S9llPxb$tCwiiyjM$&EW3Y6qn1slsnD{?zUz!<G-k5#Rmsc=O1>9_
      zobqcLvrs{GNl_T9+}q_9vs^ZXiKzmm)9w^~9*eRXBk?9*ia9*>ZH;$uo^H@yZ;;*j
      z5xe1PP=AL#J{7&%E|iO|*W`2D$^UyY7xO&IjsnqRJA(>NH;HIEUmcNjTSU?g5lL4<
      zBwYcK)bJvyzeQ3%i=+k?N&PC48dN0pqeyB!k<?!zsij0x6N#jr5lPJ<l3GC|9lc08
      zYms!cBIzte(%FfmlM+eCB9cx(Bo&<G2zmu(V-D?mE)6`{J=FFqP#qKRx`cTjVxjP2
      z;U&WN2;V2XTzIAM{lX2xYlPPcHwq_(n}nN%HwdSME#X$-jBr-CU3iOdr|>r69m2bW
      zyM%MXyM=p%_Xy{O1K~d5qHrkOFFYW8K=_dGL&A>;KPr4g_?Yk$!cPf5BmAuJN#W;(
      zUlcwi{Ic*X!e=i^*<Yvc?^sRWI6b=S=)K%PuZc--fK6?fp(ELWMc9rd=)o#<qXGM1
      zpbyPBgiSbzERK=&D0bl_e4IcYr%}c!4B#9N;|(0a1sunFWW9(p_yA{d1?O>@v|o_s
      zb9{tv@d>`cXZR6c;s<<<U-2D&!T0zBKjA8V#x?wgzi?Gm;!jn9Yihh2t!h+EO;;1t
      zG&NbxQZv*{RjU@MI<=5~E7dZ!g1+liT&-0})vQ|7deut54wY8hu$;2uh66_NU$m&@
      z&_o*6RnNbKbMqH`jJN))&p2*J)j|KwY(*7C;Q3P{Z@eq*OY`{pQ!GV$<>(jw0oeoN
      A^Z)<=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXR!Y6#jNna_b=tm88+s%0=+xA^}to(^k`HwHiQ3NiF!`NpeUJbDA*831fZJ
      z;n8Pr18*wc9&kp}85#Kj{uG~mwtoAZO_R1V<RK@s*Iw&e-}=^C`>%ihcnIJWJ`BPq
      zaQudG%lJ5N)az!qYt<~<ayIfsb+XNhV>o8Tbb=TYh)LhPZM2&Ci?thO-4O_Mr9)R>
      zvg}^=9LvsEdDZR|1i}@o*)p77#}qiX$6?mBJRx^so;ZP7t7SR!0)9PR6&NeE8)gK4
      z?AH)RB#4Pe+=kLe5XJs5$V|gN1Oz6^R?EE5Td$d&Wus=3(qy?^H|(m>vE*49$DB2b
      z_2{FJqcCKb)~}7?Tu4_Vr1P|fXE4Q@j7Fnq+w8z-(JY=3BsLPWLi(x{;5iM4a9AKz
      zZ?_!7YO%1m7eCxa<$P4bv~=F*_Eg~5NL9(2UXYQ`GScXDj12){@wdbpJLY=(7F!j?
      ziyE>nc-=OQj<lTAZ~_s5pwljTVY;3kO$!<RvW8c1hQrXcK4C988B0ODDsXg!ftK;F
      zY1{#JPgmXBDTv2ohs`ag+p{_KA*Wq&I##PGa8OUXGI_3^wGhG^0tjM3ATih(?{cAc
      z{klm3ig;5_?^~=uUy`E{#oHR*0cG<yO(u!cJOu4+TtNoDr=g7Va)fT)G+UgB-2e4-
      zD0Vori*QjQyf2W_OT#(#_+8deks=3dv(<FgWb!K-s#xJ}cYC$25+R{4?cnO+P+U<H
      zNIs5;K%~;{b?WA#CAV>E@2hh{iig9TFh8FxDkV3W|3RL72vI)rfSkZ_S{CR<*%8ZZ
      zLd!frbafN4-*Mnq*ZV1cqb|-Oaf+Cr)(2_Rycooh;7Q_5DZDH6_R$vKg_p_pksN?d
      z5)QbeKq~}Yc7YRKumUCw$)^Y{<gTa`W%|ez$;@v!K-ihD5%k}~xH=yBg?Bzk>auL$
      zqaozvHgXcr<Cu%gmqj5rNM4GT$UdBtfZ6HOeH>r8?c18Zv-Qt_eS)k2o4)JJ(V|4_
      z#BIBI4tWUMc@ogw3jAc0MuyA;m-<mHbE=lGBA?q$eq)GycpEglO`flTB7ep$1_(*0
      zKJo*)5m&BHIRT%!XkPb13Qh2}dmNpa-E=;G0-aMht>|1<l_fknFa3$LWmV+4mF#`$
      z=k>@NuP-=^UlRMPA^e0QIL^CSH3f5+SNL~1JF-_Lg+H7627$@f?>|6sH5H4jZK8Dk
      z9^yH9o$6z;k9T9aJ}#`>7F(%1TYu;LJY5=V^szi3bA<Z=e9P~5obm5D?>{i{kC?$v
      jILZIB_}L}sHMyh+hEQ-@%cp_O{s5~iP2j3q;<f((;-s)>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiv!AiqG7=-7Kn$+l_*FHcYy>#&?o(d%(C?4Xir$6c6vSpi;%_f>x^WX#cP|{74
      zqu_Cd`G%RF->+`~54ejE5RwD8{HeGoq^@<Yjdq<{jmk*otniU@BN46%(>|>XmwWY=
      zAEa=E`@OhVeU$g^BsF24EH*Ef6n{9iWyj8PS?|QEwHK-3wz5xzTaOLpgvaE6VlhN?
      vrJl=EGorpH&Z@>1l4>J_*<Zt#{hE+KxbnY&!2h^Gi2hH6iFf>(-bZ`}jagGq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHaZ;5S~RIiVsksJVm7_?M33*6G4q6CMIG$=&6(qDJiY#L*cJ^@CW##jMMF6
      zSwe)%PQICMzj^HJ_s{1S09=Baf*1jLq`hmCmZs~}b&bAZ8s4<k=E$T^THmB8h!e;L
      z#FnX9!`4H8M0JlqZb-d|+R@%T!?p<274`mq)hoQ~F1;%&tFEfgi-~*wc&s_oMa@5V
      zUMTa?{^;1gh2?K3YL`G!h<0q#A6uM|5khUe(onkHHJTGOG2_j|qm~yaBmxCYTM@Lw
      zv=K`Zq9|}jwE=YqG*`}+y%-Ky5(Ydcp{yEls1VG#B$N>rIjf{3=!-G2Im~@cUEMMG
      ze#pu?Gpq>uiyHV4>nuubNdrPHH6csbg+Ry|ZnWY(YU1M40e{990)_c778x<(*d-Fm
      z^Mp`8;so=Zp(qQ=xCG*g`igr}T}laskd^M)zN6Dy!=$+Xkp_Fii{KX~3E-;Zj|Y(O
      z8z&$M!FNu<CbL@{r#aq+9p>NVb`LTPXJMb&18xr?$8a7bW(yn_IW9q&`72Om_K4#e
      b$H#EO{HIW7R_3+=XAGYQ7AtS!83W}PyZ~QP
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ|LOHRWu5C-7i4NV}WrMwob*usX0BUEWBRVoj)fxQz(#g&Os;{d%H3l6}cfN|wY
      z-QdmW)7bOy_s{1SfNPvaXbD^`<eU6RWLZ*Ot3qjISINLjQ!WclH|B|S`YfwCMc5JO
      zyElnuCwIkyN-GeKZ)e#w7Z78CZfdI9%E~@U-B7^Y1mAeL9}e=&39Ml@$ymR91fn_F
      zeDz8K!NnyP=&(m>S=*_37l>IC>CxMyQlp!fiktcD#_`NF%aTS)bGh^XH(4(p^1yH-
      s1vo<+AuD3Fu*=@ta?I{*c^_^5h%S0?A9CPh-^W8Ak6h%M$LpFWf6EtBod5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*XO;5r=5S<kiK@k)Lzcrr9#m2LzT5BXRXj-D@r5&-P*(U8)>tFNW5Aa7BXV*pX
      zH2WrR-n^Ze&#(6n062$}8Z0q5o$(i5+B^&~&*Mp)#PZE{3`%f}rK~}fL0j?cgo~+t
      zH<@858Pwey$9LSZ=QChK22D2=x#U7V@T9;BHDL^@k9Yo+dQ-2}z#EOdk?Sd3VbGeQ
      z9Eu1_N8YEgAjyt(tNZX*Y3tO*fP}Y*=RWg{hZ3{Pv=C9wpl=Nae`KE=k+%dd7_1w*
      zOH9(NSW2U<k~~A|l*cko1%n2qoF4-Wde(5Rr#~6UEEZEzYbw?gHP%iUY!JT0r!+&8
      z*jCDOcaEgGNg<IYJ2zO``73GJl4fcD5(1Q@zDdOaCgh$h1(IiESdHa3=ZR=BgOS<@
      zgRW&h|KDsQNQ*4Q>o_3;o&Re*Q<GhxRe>Hq?7}jv5UQ!=z$)ST0&WmqTfpnEMpw{;
      r4N%w6g0_yEu%%<i#4c=W+%vIn;tr{)x;?|&H}L=t)tSJN_Hg_SYA&CR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pg%TO--w<RZpJ0X%T~XRD@Cx3Pleoy>F7CZiyRAHYI+RC&7as;75s*
      z8t~%5%e;AShd1-~^XvTsz$K16IE3+9ZB!MgIOd|zkxsRJ2__9odBK$p`MG2hvj>+j
      ztmlJNnN{!*tvR*?*UAuKH2-}HZLZDgn&1~!<#uKgt_U<EblD^g?c8Xi?Jc2odbSjs
      zX_l~$7WVq^(IX7z+VFk(6mh;#QOfm-ELQ1K<+|pL=-NkJ5YD&j|CgjbEX>M0<~v>c
      z9{(Nqq7H-;$c6G_Ex|TA(h)p#x46@w_@O6yU(_o>5^Rs(u=^^FgMn0E5SYNl6hrCy
      PKSS8ZNEqQjs)NIC2w`D%
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0UUmj1Mh4}q#InQ+{lw(t)Z*gIq|BVml1hC?C@&{9EHS4vm7Rfw
      zkwE~YP(LRzFJ0e1DJwO(gpolqJ+;KSw5TXGuLMm8BZG*BrVm1gUukYqYLPWiOEGRO
      zq8gYwG@~Ha_-5v1=9cDSSOao`Z(;>jIj-RR(xT*4x6GVWpnK4?>VX``#>l|Pzzhrx
      i1_l<O7g-tDfDA?kb_NbG%?agmfoPygZXn6TzykoA4qCYY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&Bl5QWe1S5rU`1eKM#FoKDV(H+V{P@_R&g0jDq8@yUt(iQ^`-~+jl#Dx#w
      z-UskSjMGAlF(xiLbLZxpb9(OE=gTXAJ(M&=2<vy^L5vO4oeX`)I2OGt(d#L@e=;`Z
      z&{vMFAx78=D8rNH$W{KtIFq(?h1H(V-z*{PNmmK0BVCVoZ_XP8x*(+Mj_vuv_B+BF
      z$@ufp!TbG({zyn1DqHzALUg;_A;juVPwI$bF$En-LZ+!~*%}SH(!Ca4OA>NT$7BP+
      zHayQSWB#r32%F9S(o_kB?T|7oVfT%;?{e5`xf7Tc0@FM}8%WO+{m?87{u3qWZD-_~
      z@>B)Cv--!A?FLKO0H@-YCX^6Ig1g331PlDJ2$Eb=e6!D;xW_9~q@O}0!&PSts3V33
      yvV2O-AS@xrQy`G%8VJ;w4A?|vXNu+D3YTo&3KfboYOcUMidbO{4#C?ItbGB9XLXwZ
      
      literal 0
      HcmV?d00001
      
      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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
      AiU0rr
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7HX>eQB75=XD6xqtl=3o;On<xoTTe4%q5=fkd*jZ5G*a4daV<35wo^2(vp3sto
      zu(Y(awCr2kP(njl!r~MXi0vkj&<!ZvV3_iw!?c~YQ>N1eI$fr}px?Pqk>!QykeT@1
      zciy?@p7WjWoOAWo$Hz|sSd4f4@F<+U!`fx-X^Lg`rgKhHYa-omXCkR|KG&Jc*w%m_
      zhC;RIG$ov-b%|td%x8ruNvE&R&M2JKrnU09M6yX_iBw-xoBq~Jt(Z2fP^q=XokxXo
      zC!cG{_x6e<Pfv?0=;-au+BpRkQ7B7fU61&Bje^&9dMR8UOD0l@+)4`S>bEEutxnu7
      z#~G;dqf#N*m&!NAl2$gGwsQSVaXXstYwFya&DjI4YbMUb9J<%p-PyHvlfr_w|F@&L
      z9E{b34^tFov?Wq@dww8lXS%Ft(pIQwb7EF<i<L>pdqFs5dBMrXIu|5DS%Pu%q?pui
      z3BZe>iCWB8m^1m#`YqzlLKA+J1#m7t=f`;pvnR=^i8|CPn0<DxCF#U=b|!A5yF@J_
      z7Q!Z`VY;juP0Wy06Bhe%zQWwGfV4WP-b7zMW91S~%ESejuHaj<w&kkz<+un-{J2=5
      zcI*}x^;Tyf?WF8f&cr3Sl#sVx*}b`|Lt);ekQddP%dm_QMuOHrFzRGd%|Vw+%YysP
      zzquip)ht~V+_(5<Kb9-Z)Fez=Bwt5#haJlaDl1K_!ewsotCM|BCXwqOP&lKm-c5&A
      zC%Z`5<^Wo-#*bEoS)-;}94Bd8jCU>8Dfo9;$-Lb`{#DgoQ);51MjMx7gCAt=oKLF>
      z6C2S+{8=dqs|(2;TRZkHJLyuRsno%q5}(}=n>F)u{fR6YKN*)wxyJHJq)ykN)O6`b
      zKdw|ba}0ah^U0*!6#}>dT|&oM0rF&vtj=bgvNa@<F8Kp%_r&b9FeB>+i&XPapV3kL
      zBBZ|7#8%V`+pafJj)1JTo0tkyEJsbmFpHK`_8yn3q*yHJWNq2oYa%XR4R)uv2ofgx
      zP%mlTX(9>cbxJ-Rw{m26psuGS65;>)NB|CQ@FT4-e@u9t{Z6LPc#1BX$Ou~kER{`m
      zHf#0q;BJt(wa62>Lb6J8A_?$D^JK(~Y`>FF#@n6T<yJav6X}IxGcwtM?0<gks`#m}
      z&%{l*nIUF(Cg`wHx1oN6M0%@4y0;8pP`Ff^3GzsG%wVsRDHKAXID(ChLE%Ht^(L5d
      za>0J>k3{lC6JNsZ1X#LKtCi0Zs)o|2y81KDZb@l#DZ59d0el5t_2UkO>7zBWi5=F&
      z*KjAH7!Zp2>LMEWyK%1{_lzk`w*{NH5BCd$G8t=c%t`N62$i}~V0UC9;b~Y9cY2Aq
      zHz_E46Aq(rr^`6T5nW%*$){wHB*m?s78mDR1=M|%MEB-w){fdhI~f@`(*~@}&dz)~
      zO>)?AO6%%LXG5ft4}H2XV{<r_;YspbFEz^9)0@ihG|Qh9%CV~itzgRD9V9EQU{t!V
      zbcko92Ry5==(AM6+wh+^(SgkY9L5WNe7CgFMklwB<(p+V!bY~+4obC1#|-LN19%C?
      z{CIgxlZ&KsHYd3>xglw7k<#QBKI+ysB94Dg;j+)-_{1d2fIAl_OuT|uSpacoT_R;M
      zK}KDDPfHn2aWuqjeJ`;~T-RimXb7w9|GpIc4|o-D3rKeUNMUM};ij#)XqDl0&gDch
      zY4=%47ye+D)6b7L*)PX*gBB~k+1*rZ27bJyaNZcLh-<1iMvJ;6N;FLxE*M+#lUOAu
      zjYL!m&&9BKA^KF?+!5$>@|l>;OBnZ6O}MHp5+^aA4aCd)-4vW9cNDHF<Z{5LM_R3Z
      zve9ZeN4|dNz~^%swPs=#_gC;O%%}YGAI0pKP<@0;59ac3fKOmGO*f-POF>o6g2Kkb
      zJWd=~9|{j+UZ~+17K9pxaE@^he&Y}f?=gfz{L^q0i}qvTQB)trg%wMEucEozOT`tP
      z-A3qTghsHsa|r844_?Fp0rWGf1fAGHXLcgU<e!HDEJBLcj}%>U(8~99NNeYUt}EDt
      zcJ8H9Qa3uX^%@lq47x6uNz7~cCc#Y$g-_s$?qPHe<El{y+{pJ4yqmP~Dp$E^d|JV{
      zlIg~8SJRY1)7{#5KP3X`A_;Ck%0k2F8RYu9*D-^SZL&Q1IQ*1bdM(2EAa}U9S21wl
      zPP%;;J-8e5a1R#ZUhRqLS}u4pUnb;)^Dm^1obTfS_V}P4p`+g_G36_o;%uE@>SHF~
      zps8JSk)f<GUMXv%)&3PVo`djt2E*Q(`@8sULD*}Ay+hcs^$=#ZpFnqa;}BBA$es#&
      zFPw!>ZkZ7OLCoa7hW%pYG!UU~0&$J8{TQ~nn;1q7y=q{tU1(PF$_hM9Xr3WQo+XQ)
      zLnWT)-F}doFHrLc8rkxe;uwiLf-W3K4^H4ZwjK*7b=)C0qC(tLu>`xwGEOc2QtBY!
      z9$GN58+*v8`7(#cqoVF3DpGGF;WscfRD1gnZoESRBtlC=;hNfE+_JLvF@!ZRHMQXy
      z7nr%r3_+&i^TcJDui95_4B@t|)xJ};gWe@9m>BiPairSCXnLjb2sU^`Y0YV{PV&>X
      zcx|N-AHkQG_++n0!j(qN_DbIf?y58@ecP898dR<bYNb*8_$LP{jX_2`k61MoaqUGl
      z<9VCNyu;Yv#cceFRremXeod|SiOg@X9KXdH{En6N2So5EwBZBd^=Cx!7uM<DSd)Lp
      z4fqf_{Dav2lLY=34&dK-68~XlK43=vtMR{5_o$I#F^v@PC!Tmf<1ecRx$^SdDxC>~
      zr%%O0c$lTp#!m2cel>W)Irs)wKE}flI6hBUK^>{`@=(|tJ~@Q_qct{#TcCW}A-B5A
      ziw>0+98z*Qn_%=|8kPE7MYNgl^3c3tJaV|aWnTG1ZpxX$b0iaz5tjKJ{S-m`_Lh)-
      zVJhYyrU{qRXOqoP?A_`NOjA{uq0U5|s>Vg?EUZv9+C{g!ttz^>iZ%QwLzsc{iSeUE
      zO5rhln}4OdHSj47z~dbsaGkd1HW5$3n!-UmUf6lD_KNO|whb4l3rdhuMK@%t7*qJp
      zBz@>2?H1>VX8jY=4T?d#R+pBz6DU~q$Zvx2sC$+Zb3y$h0=R%PhJ8p+mFb14^3)Ix
      zh14<D00+)Cx0ap@4`FbHR;wtey;w7XqeB>$_SGoKpsnMw%Q!uzstTG?Ue}#;wU20{
      zTAdAV2(QTwsnt&&J%sg}ba+2xc<qgxYPW4|JmrdhTq;^-Xh$Y9Uu~TF)Ne=FXy&qo
      zJ%Bfm=M0diyg!AX=y!R_`v|eg^RGNzS{)?~pjr`7YcNx-#atCZP;J1uY9r~j35!)b
      zE>Rs=r8e_7a0h?xUV)9O6I)aldejbBYA5<s5(zbc8@SG?tN5enYTT&0`Fmg^9#Gff
      zL3KS2sBL&cZO2n8%8PIuFDje2%3h491dh|rYux)f?Yv1lZ*%>wO5r`q-{<=Gl>d?P
      zzjFPdax@#<_V7`G4FNV9w>>XLNEf?@an3HR9wgm=ik~s!18geN9=se575F)RLD`E%
      LnZhqME^q%2`s{WF
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-%}e^6#i}!Sh8-L5?d&3Dp0lNm&9tRKT@j%3q}J`Vd5~1?QFsV+u3Gg*llq}
      z-}TWK`zQ3dGa4N0)Hfgeqa44pyQG1{hr7A=o^!tQo$s8RfByaBIe_cf)DTmcy>C7=
      z4@<4?cOB0yE!&-at6TTIj_+-FUCVr+A)#<doJzJ^TCpAPq+MaW6$B|<sExoX)8Urg
      zw!Pa53)#R!fCf{PN5<tE3W;TR$I=nUO9nI;3N!zMkZWi-t1x|nz`E}^VL>|1;G95A
      zD#Ww7MiL4y8yLg5LaJuBt#$uF)9P-TO~+D5*W8xrG|a9o=jbxw?b`<m^P{+)D25qa
      z-&2?xU8}-a%W)5wM!$2|vO1pawhuI1A)#ZDtM$G`h|U_gh#4L8cvZvI$nR9g47`Td
      z6|^09#crDpmCNR~D>~jlPD57V{4w?*RRehx$mdbl_Q+=}yIsjOB<4*63nJCnuHzr<
      z%gtK`E@4u~+qj|O9fflNo@2K6N*oiry=Pz%H%Z{3>G)QCSK(UJslcb+yl=I<axRo)
      zAgrt-gZHE}?{j_zLqgcH5Xzuz;1)hqNXj5Bo4&|b9Q5AY@4AnqTPJe7xYh8{vA{w0
      zzQEFs5HFnG(n&L?H(|Th;qh?G=nk|;%-O1NR9F!?S1AEytnyAlHMy#sho(<KV$zR!
      ztQlBGosYur?3g0^MCiX=k-^!eW8AUYoQ@6G@3t&HIQmQvzsm*b0P*P0*GzbsX6`iZ
      zHB9iE<mn!*VxP$uj-cm@e?u!if&L6<wvLec4e6&e#&DkBvw`ChVJe)rWnAFhTo{Zg
      zO!Gt-nM6X%PSVAYU@{|0cAMuIZR0_*7sz^WTVuppfI1a=^-;$oRQ}IklD5mlNDwm<
      zl<+tzVKM(JUg1jjFxSI1IrUHse@ahqvGxp^t-|lPeuQ_|iiI9N_`3Ml(|~LSvk-Dp
      z=2dC~e8Y0@lFU6?OqSU~5j&i23pcPgQ2Js-a*nYdV~J=*##bm$jC($kA-XqtF9J<O
      z1W(J*p<v$z8ALYvMHv*Q=aV6{Rf;B(rt*nDC${33f8LBIdbo2M^m~@`!+^G_zP2fR
      zifTZKZ+!@Ui8>2>GGB-no{s?jk^Fud08aLSllTmuN5HE?z<0?zLEyBgz?Cj!uJll2
      m-%eBig&IB%GUUUEeui|EfhhQbMF`O}zT_^>ykGGY!^VGCY)NbY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8YjYD-7=BKZcH0n2OG#<PA{T+QTmn`qwpbyQOQ6t_&{n7-+vGG^n(St_8>D`B
      z{0;g=8PPh9U;I)Walr99;`m4W<S$U4b9UXPZ3dXm<eYuadwt&Lyr)n8`R);bV<;JD
      z66n5d-ZAf{^6paAb5dulYDv1es%0Q5(4o#!Wz#OECgyI-yeH6d(y}dYR3MV<pB9Lo
      zaSAeq2-@OkMvK6fam$uhYLz+ZUNh&)Qef-2lQ+xLrfaG1Kp6E()}lbqc;o0J0-L2>
      zq^mLKoMoG3f!5?~I+N+2O$)@%-p$LZXF2wwfvp1j*Eq?P%d%*e(`6^Wkh9*Gp|XK(
      z0=w4erp>~nStwX`G1Q`a9f{HUGX}N`>|SG%D><&0uFcO&x6bBpQdg3)Ehm*;@}#dY
      z(ooo+iQxsjXkdpxm-4;NDvmzv6lim0#U$8vQG-pRUD#t_w?Ml#(rvkHdZjq_;$`Yo
      zEL)&CNsx4a{c#*XlJcTt-*))$HB2Z5fq^&<;t&(^VLvauiJDifc?v<cIT<)T5=RP0
      z1>z-hF}o(e8_LToaSS5CW8ceEwP1RrhrsbT+L2IozZS;{ofe%lUCY*MqG4jBo1?R!
      zqUU&u1|p-4=4$f-O^OUns%oXCMG<aDxv+?k1p=EwVMY-*sj1Wv3NOhezt--cm5VZ8
      zb1iQv#gh?51xD6XNQEaE`;J+*3RDQGVBnI#fz<|0*^9Mmm6VZ%iK=u>#oACghKp!p
      zhZf`#k@q18ovX0*{g^aevm!m|^4{!A_OH`ET`oGzwp3YFqjk(LFT*P<Fqq7&Gg2Ye
      ziE^rHnKkW#QyEb=eENB;8byD)V*^tHM>S4i#Q~fforQo2+<cyN7OOI!+UO=n@iXfU
      z=1xv}mpR%55&<3bb<24!?;~+Ba3h#It8BR9<ZAg+7`86yfMxU<OdA952<%nWhm+U0
      z-Z+i^ze@Idu36<h<vsS1txqVko(?{FV#=l}6+y|Q)sHYoHJw+v8dS#tv#NS+sY(z6
      z9?j?!wl};WdNAjlnwyvBEH(Gr!?)y!3K8ASF%aRy19Wl6$AZ5GzXrJquFV4v(E1HG
      zO^ER~#ufMgQGAF^+{Jw*uA6~ql;dOzB^^9zp=Kw#v@8+GS{aHmbkn{aJ=9Q|O4>zv
      zw+bveY1v9?B{JG6@O|rWbQ!a~(MJbY(EBZ38fre+8;vBISFmqpKrQ`LX^9LOJU{#q
      zwhidh-j>J;jtv>h=&TdGI%FK;Ny1pc&`e*#xHYPbKK}Q9-`5Q27dXtsfJgj#j5hqh
      z!hU3;KVc7k#v%N|Ir}Sy@EgwKcTC|4-o+m%P;UW$YCy7n@;)G{47`qE4N?Uo+%@rU
      z0VnZ>dYx%GiZ=;H55{qdvS!9Ofzy<=Fw$|PDKiM+8SK>Xj^QkQMsbeueek06eL;8Z
      zr1niXAL8Qm2N-`G)}(q0{H^orrj~+SH%#v?;|c_0@S)K$CNQbjtH=gz(=n)V6}dp7
      zntKfwv}}5VYzA-DSzf2s>>A12tl%b*^D9ukF5tSZVUqi(%Bpb<;;yb?z}Km(;T927
      zHMYXU9DS%=USZ7GgQTRQCZE8%tP}+YLkg-2HU02cK)-Aq{Z2iLesvrp=^AqEaUI8w
      zs4B!K{6FtgJ~a0b7oVX=+{YgAIUoBkFf5iaCcfm;b`O){t2$m~!<w@pud*SpCPQ9j
      nLS7vUdDR#2YM6LvUJ-!;<eDyYJ`a<`!>2KcNX`@gCKUezE+%l>
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)(yG{a85QhKZwuXx$2r88}1~74BEHM-!8V%T>B$kKe1ddtGlHJ8Xd<);iip0VP
      zFm^tRt#NiC##k7OGjnG0&Htav>*w<efJ2lFL<r?OaWAH(<<7>wV>YL9H1?IF+tL~e
      zt-MilYRRx;AV$~=Xw#F{#8v*xJeOL!!tN~VZ<dhtq^pG8m9EEXHy5V_x+G*8j`n<^
      z{jRVlGG2JUed|9yd=L`HN-Mukh?Xl|LagERWfD=WrjbO7u+~yqUQI?l>0XPTEeW}n
      zW3ho?8?Kklm_Jk=q1yWIt!jiqIiyWn=z-bsU8M)LN;fbs1m<~yF_NAq2BB&A06$Se
      zvg1r#OP;CVSUZ0_;XyErUGOdW2M8s^k>G4_6~PKG7DI|-nmb3FiF3R<N9HL+);J~^
      z15OY_16kgs7ZBEw<0=rya|{IPOa^SCx<ALpZ-o|{w?l>Ef?6stk0Lf%gRsTZ5o~_}
      D0Ly^;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g^XhE>si>h=`vhK5Tt(H9i@PrZs39tC+0m3s2MK(hk|L%+8Y5f8~=2
      z5Bvasl<{`E)&eH@GI#E|ALrbe`}5b?Ie-_~bx;x5JyEA><OOD&+Qi!*QIuMp#Gfb_
      zs#s@{pK1qEU~Q7;g(@C+2mKQYtU&d(j<tOwu;4a(0`gsQL^Uj6c?FB83aoZ@OrP_p
      zPv)!Yha|AxO#&76l+hEv1f?D7OyEiPdL?@TTNDqt?FWiyTH9gLXL`4J*cPbmj{+)2
      z$Q-N-xYu-@rSm-QVY}1pIJhm)xKQQ~6Jy)?@iCdX{Ea_S>_KkR-1_<(&nR8)!8)eF
      z4!;nKc8lS>jDp-~JN7=(c(2)WaIa+g8|lQSD%3}uFvs-jU-g$-w!%Tey@$~kWmH6#
      zOjb}l6nI|z-Hg1XxLPpB*!mB~ETzD^+Qny>nfVF)BsT%Q*ORZ`nSIy%YCW4MlMV0=
      z@lFB`-*|WUbl7{zR<K=s`U6Yf`BFiR&l+3cEhJjF!MBxZ65E@Al(>aeM%FkY+13kW
      sqeQA)TgN72TewqXZ{zNT*bc|GalgctSXdnoFhw6-M%jPNJQXy41LLONivR!s
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&OG*Pl5QhIsCK*Yh(Zu&ca3dyygXk_Iz7mOqY({6_j?LKG&V+eL;w3zbZUh$|
      zz!P`?&mq<%K~NA}bX8aJ)&F<b+vm$GfGsSW$Pm`9#hvI|ZaC=0fz{SpdO{!Sz`e26
      zy=?Yf*^5=+n=r<#6-hS<RXngxq%T9E?Q#9h5~d>=Dxn=2Mm&4oJ|@s9Ve%;OqgeQ{
      zBXlBjA1~g{L-*;Okl$6liuVZF^_oL4j)F^BKo(Oa6i_6TJIa^c<n}^_XW~LjLZuV9
      zY#`W%>v7YFuT(@>@BHsi4Z_@rwY2a(%Z@|kdySftTF<4{Rf2gdqeyr|%T)FUN+{St
      z61uXb(nqcQxxUSG6szDL^6m-C$RW?!<SK&+J}iYI#}aq8ITPnx{TY*wL!`{Hz!<O(
      z0|%JqTWJJg1{JPSfhxyTV2{a^&DS@cG5cGg$>y!0!u*IDD=?3FEU*S)k*70Q`T}Iz
      BedYiF
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4+iuf95Ivi^aS1KGg?lfwAQU5nxjY6THCzKxTVa$3sy=L-sk4<Y(PmvWpT!dr
      z4}1V0g%~?lnuH4R;GNmyvuDrD&adA;egb%g2R2Fq8>jM2p1Zyt_D$k`qTybki6V-P
      z*H<<yft8HmhB6M^gU%`WMxgvs#mc-An5#K$0qb?rr3&V7WfAiz3oN%(O#5lnA^k;m
      zLK0YOCB6*XQmbrVfR^d0fxuSlUmofLOB4qz_$E2*$pMQwwfuxTAV1a03^UvHug)c)
      zK;`YZPkp13cwl2qVEdw)W*AZ+L(fP<W0sAoz)nsY%QxdQ8LBSdGNuVsN2cCWOqvBe
      z@-=a5teSJw;11P}8cnBZ<94AoZn4)(v}vR#C!{CT9v3C$ZT5^-aZn!>ba61hAuH9!
      zhQPyVkNb(2`n|m{NVp@tXhOO>P)96F9!Cbu*0{^vQR}N{3R*hzx0u;ra}ft4=k2
      zmT@<U>Q39nJ%Ojw#){_stv6xu`G2^Yxr$%bOH%FAJC)5>b!Kv(WG1W~@QCuT12$(o
      zn!MV)d%;m~oPYEk3*R^?p~7p0Bk%zhKH@58iz5=pCBU+94a<zI@Sid>SFz66b=)X0
      ti{omJ+?-<F%CS2Iw!nt?B<?c0iLD9dcCNRH%yf1~rnk=DF6SlO{{yki{c`{S
      
      literal 0
      HcmV?d00001
      
      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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
      F{{SrY-x2@-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%T5A85Ujz~)fEL5pD{je;K9{+#F+RFO4NwqJ`5cgv+R;#An;k9Og#7jew48n
      z2#JvBrE9vox~FF9>-*yqz%e#mBm}l!Wk+^>WqM5;`S;YjrI3uYktsE`3r8RwGyFh?
      zHUF{lO3Dh%oa#{9Gl8jWt}NhOMpg1Kg}EfAF(Z&F>X07VjS86;SqVsBxfm%Kl%>&e
      zJ}f%6u3G{-#lJM<1(qnR@xq}pVvzz{+1&535-CHLdpzI`1_~@v;4a%I`YlpzqixS`
      zHA(sBK`r8}-guHmHpmjcmsEa?%1hgZo@H2#8u|FC-gQ?|)9NT}xyT3{^*?8{x)63`
      zpsSP1M`Hqe*}{Lf?2b#G)KQAsM$wIqKQ}XG+hHuq*$4Z>PJ=xWu`e85&Q2IbTs?Tl
      z>>D2v@Hl#mzy%y!VV+OP0f}(|a2zZm)yFiJxU<X*hjE2FX{-)AYg`pr=a|684|2Ps
      AtN;K2
      
      literal 0
      HcmV?d00001
      
      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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
      B<4phn
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuw+fvg|6kUe~0wvr*Q9uDv+kynedl985Oh-Tm6lUZpghLyqO*(1Hz%Td->Zs$3
      zulj<H<M09ghX0|ilN6B4OZMJpU)I`}{QC1_55RRy>8KIt*tE8+ZPWI5N`Yt2TlP}P
      z(V+>nDu-FH+?@GrZByETK;4AnI>DqsERkFm(5Ah08Al8a25M0!&@$(^a-mXOll}{9
      ztsn*3=RDggEL*;#?CPTy<ejoW*W4-4X@Oe1;JM80OeDjI|2fbdf3j`MQs8)QSx39T
      z&>_!hmAK#qOO;Z|^8>kl5UN;q8fZp~K$CQH<oVc}aa^mwHWJCz45>!Xvohci=4b@@
      zu+c0bBUhHq3rr;<R%K~dd?(m3pUR!|v8QrL+U8Ut=P@8(d~W$xQ3ldq;&VE=tfN<8
      zETnx<B<pTj1!w(a&Or-0E(i>qnneZ&VFHa2+eKNHq-#Xh%hI|PaHv`$qgJOURx{bG
      z(z>hdxQ=ILb^@8HY-~uMEaSM0t2(Y!PsBVLU?72Rfd*d|EgprNiz9^*9m4|6hYOjv
      zg1mui80933j?3L9h?-TU#|)m}4Zi0T%bti&G{&Py={N*#8tBKM%DZjg4(_tAyj5P@
      z2M-tZiU+zDvfsb0W1M+BF$M_KsC^645o)<hUd6ZNjHB+gG5P^URSVhxfn)qtfCg&3
      zaDH`K<CKE3HuVklU#Zj}&TpI&n1zNc8mSpk5M>iB&IK)uXr->vY70x5)b>kte4#5U
      zrI3J?lVvmwT{y!E8qT6Sl;?1s(W-16vwP4--$m*wrXK@UIT*tB;}T<453fl=qfE7F
      z_*p;y8NI{17#i98j^yO<NUU!c=1MA*<8<75^Y`~*qZh&oZ;A1alX;I0d?4;e4AM^G
      lQ^-0MRj)Qr9NfcwV%K2^X-tr52gmUMlbo=?Lo%tsqkoU20Z#w`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&&q@MO6vn?}qZ6Z*X@6}MQK&&fv^1<Ri$Wx@+~3BF-WX?O{zN`PFVG{jZzZ&d
      z)-BuhGSQh)BBDi$d(J(V-}%0K&fDkn3xHh|bR-BHH{w>@nU*&k1g_b1TcOpv5S@;4
      zy7fCt4g%#mIyAyo1e(6ILQe%l^He(06LxD-f3t+FFFhsfw)A}Ny*fK4&^ckI<~n{L
      zoS-f2P$pmRKQ<2DA0G&*edVa2N|-8^+61lUcBFwR%w}L9O_*yaM>fO$we&8<wJiy`
      zhHJ5bU>mL{k6O@EK4G)*kAW(L#bOMaws5*;EAV*UN~s<BE=In2g5H<DFS@Z`Jo`_S
      zV6@!Ov*d}2ezf-Y;&!4wtb=Fcl@kg`BE?zfDuHP}tb;Vi48QDgCeF$72s2MHGRM(i
      z3^;^_BV_rO8AF&yj;lx@&oL6HG8wU{^7aS|zZL3ieiADzjj4$O^H{<%YY<krJAu_N
      D3$1!2
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*V%Syvg5IxhzrpDN4supqOuDURE-Rh<&2q6g3g3C0$v{%w3+$P0-maBq-AK*uc
      z6H^G;%*;7w-ao&e-v9>a>1YsoZ^1fvcS5yEv&8Z8C>qOjA(Re{(5;E3KxmC*EVDa8
      zvwt-qXyaribnFu@YUx$4$7LEBXyd@d9$IZ2a*_Aqx(1rC3hsz--*;=(<uE^$!++jc
      zi7;0(+c-}uS<9JFJ3b2Hx#MR_#`9sZjpfQ%c=>WF)N?S61i^NbFo-6Bk_Fz8TDFiY
      z!g+mYwepZ)_(`rp@gR#PRwdmOd*Tv&KmQTzsW^+R&gd2zM}T$xh4$+f2HEBooe!oO
      bIA&|G2S(^{s?CvErlX4!Mubzg4V?V}XCY?6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G-%}e^6#j0qAxqc_LP3!Pt(6)GB}Q7cq|zo(oE;GuS5c>0yCfG_NOsrFrbC?Z
      zFTp4Eu@Cj7?P#Ts&iF?;o_lxM{2)qw$nL%Oob!F(`Ehsh*WbUL04QKBi5SDwf%(8Z
      z%2&LW>pS_4X05hjx%=GH>uxOxg<+!0Aut-Q#V~NwvMqm^A)cMxW>8j~Do-JfK@ABE
      zFbuC-Hs5I0cewYNxl`i|qw7w^tZkc~CHCQ=;_q7xhRk{wPq&aF!v${d5uU;QPl$(M
      zJSzk8HPhb98@^}RdqpXuF3qE7tqda(#+F&FQUpWNJzb3k#*esPt~r%M!}^|BC^em7
      zEHZ62eYfccHYKYIqiWf7w9ah?M%$stR~JRe&fYC|0&JO{S?50YDCL>#Y@o8iD^1Vx
      zTlrFL&!NSBz3oP+rvgZws?D&N)q8?I=B;ASks$#2r>0$X>ar^FL*618J#HeB`shhN
      zhIEg)3x(m{i!e7_Ug?vDLC5EcR75aCu1CgyK{9N=h^l^d?P2LkRt(aBD_TWuy4>U0
      z4~#(zn)JC_HGLW!HG8+L>(u-tt}<lBYzL!S@;tMp+f{x<v$VNecA9pzap$PQUEgx-
      z6y`CQ!aI03i2@C5JI-h|d|ubEh-(akra-AUE;V(o^CE2S9Po-?3`a!XjngAtB$bfE
      z$`BJ%IV3lmySoiegEipD*`{%m(n-FU?o=eLk;F}gOI^3r*mpd?+}z#eUgVcT5rb5Z
      z0PYk$yuPc>nq`}{6c|bx=8zMs6|uTOT!z#1Dtyfn--@yBFTjG}rMl3Sq>mTy68-2a
      zL;EDH7U|8z$=nmDztSRx6g^Y)25vyX5{77{1y1z7Ks$v%hC_hsv=_dt9W1bcTQYDW
      zFouETh7r6>PX(jrL)`ush_MjjBE~}%^Yj*^G3BAuBXS62taj*+MfxZ3N*MVby@meR
      zRBxo-!G0Pka(xw(6r<oZOobQ`JA2f_zR{OGjm)``M&HP3ydFmC#H7&gOx?F-;9Owr
      zs=JUaI`9TAg<W|QmuV^#OyjK()*z2WKiDrM?6tsn4(trB$YEm;1d1eh`#gd#{|7-9
      zvpocKAwq&<k|;7L<o-l5{!D$8KE`n77(?mI{oKhf82TOaUp>LX^UO1KNy()rm3ZbU
      z@{>xtchmA}d`-H)fr@+7@o%YU_b~$#3)txpT8Ju9z;%dO68{h0rwI`=Rgkk1r#KBC
      zkX2NI?km}r$f}TcQ8N8Of(PiNM3NKnha~tS2_BJxe}+1q__3{eQaKq<R5L$`lOpBu
      z;d7C~ctYfmX^-#~3=*J4BnJe2hzZnaT<g>h8&~0wSeI_-cQTdbfILd26s1y%QYnS0
      zkjO9<v0A1?6U1>Vs{R)3#8|3xxpd|+ZnujXT*n8JF_=y@VpJnWHDXjlMuC2|Wc#F9
      rluQ#mBLBxIx3dqpe(1<fi@3CiON+R)D7(`}iBDdT9m6W|#Bk>y7b($v
      
      literal 0
      HcmV?d00001
      
      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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
      E2Q0IB5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmX|5!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
      HcmV?d00001
      
      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
      zcmai0TXz#x7~Q80BprrJ3#EjMhA7Y`DM3U;iYSx<m9`)$#R{m?WSR!1lQ@|aig(2e
      z-T?K*N1xCKS*TE0R4Km5S}vdc2R^#|1zz@<nOvLN)s@c7nKS#_-?#Vq&iVD9J9hy*
      zf-8PB2&_A;O=#!hNoz7^XX6PyY3cSMeR98+w6oTvA3lL)a!TCL%yj(l$Z0)k3-}W~
      zM~8a5djwkg%5M|4l`+#@0*kw|X5Q9Jdq^`1dH_uXsf89;m_IX`$Ylh=4#u1$IER>l
      zoRyu(q;yMQl^Zj!Cks}_o{S&y-f&ivW~8$m92+P8u8f(ncMBYDpFhA{knXsXyq8|b
      zkbti{o6;3DV!4W?SRv5Z-Z9h!ft4y0ERuJtRH#@i?^df=f`tN0`!c3JP#7Q4twC+X
      z&}H$mNzEA2tc-m227UHeCNJ>d|8r)pi_*H?>(n_(tVi7>U7d<l=fzNZ&L#DnouOWS
      zJS4EuQL|Lpfo!6X9NSZ@X=$>84cO$zMkZYS0abQ1QPGYL0hJVs>M*A@?HwoPDzw5%
      zMO8eAn82Yrxy<!l$2>VI2xGHUDK5}j2Up4|ast6QnbFUNmbXjE3wSW|mWd(>`djq!
      zcTS+EPIx!1Du2zBkRMM7Y^W}~t5dPkC8mCmLAbm?dksTRYsMZcT^QHRaz+6>$pRD?
      zSg8M4VlXstcrY}ghs=UuDA<Y3Qu3!&?7?2wdBtD?u{vqFs>DkbD$edwumhX@VCQHn
      z^K$LFw~#Toz5_TQu$D%u>O`T^!VaBKuut;Yhi6nALLXPUmdoj8N}zLYDitO60(Av2
      zz{YecG-_qXL&fYJ^dl1Z*%~~z`E_}z)x}G2L7WODvjrm+GPAZUAk)xnJ*D6nj{8Bg
      ztxB7Pc(r^zW}2-*n*TY0BXx3^?Gkrnc6}?^d4&CVULYhR{$Gog>+hsoC(9JPfS3Gu
      zk?XN6k)@9sZ2j?GbAmlfHjF{d;_5DWO@)RLwrP%aYlS>JQd@f^nZYqDdsenNT3{bi
      zDs+r;x}9~!7g$j>-Rod-^^U2?;52)?Z08<!mFLRP^#l50&{5@Fy1AV5-PKFFAy4wb
      zS#>U2MPNbF&8oFxPB}1lfV|wwDz`(g{B%*pC-c^kEB1kk`Lnrl!jiOZ>K1L~t`dRm
      zo@Yva$mjHAocnl!SI@Dt#qaWiT`5xSMdwSZtQnb<2T;;j!7$FNcm)%bOLt6rpoWS6
      zj2n~%ceAKZ$=w=C8;gKK-+18!4!G&mVO(38;%clPMe==H#XESD>%7Rf9Hx<6i>HY?
      zu>_iDh2w5sv}q}1skbpH+tSRuL1mbWz}7kQaE)3gs2?8*tgn`&tVWd*pQ!j07wI`S
      zv%#v+N+MgZlKTFPJZH2fYP#uW8360K<QsVw^kFp?U?HFUd}=^|Kb~Tod!AvOD^D=I
      zHgPUH1ZOt$$>2O6uPY+A&=QH>L~A5=6K#>sn+SgAe6@!ER}vc(!iSUm{uIwbFJL)d
      z#9EF<-0!gt5AcadPF&&K$;b`Pos8XxAlqYzBkMWlBZIKR;Tqpa{4KZfaG&UJ+<g_x
      zBhhtRZzFPjr!VO1ztAYwMely~@1L<>upl-wjqot(cFquC5n9M3Oial$!q|XG>@4Hu
      z_%_eC1+?NUR`Gc~Cb<Qk$0qt;a^L30m1jFX`4Gbvo~pSS5os$PC2D}2x8X4|Y~^n|
      z$9zr}k9%1x<TcFwP}cGsXGkqJM(<<sG<FWR?7D^BGtt|4sy}ug>NIu?M{l8fCK8jW
      zai+_9wG;gkkuQ_U6*B$|ZTOs(`oduua#1~&#OJA0D!rV4Tbv5Zy2d<4rMik8%ud$T
      zoW{Q4mi@PIFfxVSmVW+=PT_FNQQq{o1R^9jxYIWcF&y;W!*G<fJ>e973a17-e@6IA
      z1Ul~_Jkxm}OM<?Es|ZM02BZ$LDI_U{eD0h=`gqVcLmq2cr)~6zydK3FFVFo>m9El3
      zUsJVjsMuA`_?C)X<Lv9K?)TV*AJB~(IEb6*!xX<JIo!c<{D>5OBGz4}CenveX;(RU
      zC%wjw#V^MB)Ig+_bU}`_JI-plcN^&ZmtnEe+o|Gqy2D3wsjJPq6y4)0+)U3*RMhjV
      z!~98(NH;e{ZlIMFoGeQy<p6$jsI7D-l@>%3Ud3yC-;CEW>Rf?1ukwopgbLQe{O-W0
      z?gS5}8E@dtS&R;nyL6o5FrpT3)nfhOV7U%bN|Y2_z`G8<LUQjBx0$EH_c<bcTuH92
      i7VxjS<UYW~3UVLTE!W4jP=C)+E|;6YC30!N<^KSnO2XCv
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{K`#SA6#k~&T2?7l6c?P-!3K#-#idk4!=a7)bW9jov(4;O?9XzNIQRj6lz7`M
      zT5MeAy?OKIoA3MHyuH7?0@%fxiyXuH9e?1DzA$mmhJITLBkj42n_Sq?#O<DP;V{f4
      zU4Fpzjeps_lfp7g94f8s5kr2fcE#W{!fWXvkEtRGm|!Til$IC$`>r${-VG!}xfKc?
      zTydk4{jliRTNN>Ew*KQ$XQ)VhL!hTpOT(>9$ub;l4KDkU6n&#?>_<H*d=k;7Sg&Ou
      z6P|bSC}hv7P)9Dx4BG>h<1lCXfd}e(i1u}XEcqmp*p<A*aGDbN?PfhCIPk9#@F*Ix
      z%AibErQjXIbrg_PdV*mu6FyU;iz>s$xU6qQBWk>M*f&BpRWhjRAKzdn0dY1!^QPYe
      zIF!+xX?1D0Pmxh9Y(Hc2iIN;VT0M%uF*P?aO<6H*qBuhc4rWoJ${d{}aPw4IK;=he
      P5lbVLWy)8mKZn&1rfb4v
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwJxc>Y5Qg8$r{u##qtT=bf@lN}v5Z8~L{WlGH2r#Rl9kJy?CnWX`+F>`0v7iA
      ze{99MOArykVrO=iXWn;b-alVn0qmigMvPFq6Axl+*?MwsJgYnOv^fs?eW}}HTizSx
      zxoIQ_n;~ZT(hjsT6YEU6QVXX$ufJJB(U)2Yrzf?~z1Qb00$mXDC!XsY;hLUs0+}=)
      zZU5=5{76V0C|8*#A-=WUBP33|TbV%|i#cSFB@{Z!m6yTjM(QhZ<4D4C$Ftc$unpJq
      z$AlRwpRm#Scbo=cbt}RwN4Nv4YqW9)jqP6Ox*EEc2<egZeKCmKqRD@vgiO~9v@K6n
      z_@ByOOWO^*Py^4!%O+HjM2d5os~8seunMvqbNsT;nK&owQ{<l`q`)!57;uOLj!@)V
      vZU$iq%Up#5C61v$lgW@x)pw>?`K{1m^LC_Ao>6lJ=26BPYY^7CJBG>^cY$}|
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      w2Cm@z(xT*4x6GVWAO~!`9!MV>BLgD?Gtfy442(eASQ*$rECzNU$;7|`06vl}=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gJx&8L5QX0?2}{CXLInj>6wqK%(~$@z5D6qiL~E?UI9j~O_C{>O5x5I21qa{^
      zoCPu21{$jQ(R@$u&FA;~2Y_R2<;V#8Gd<VO%7pqUmCE_V;a(e#YB;(IZmttwaGj$?
      z=q)Z)p}kd?cQZCA$1-8}f4%`%2-^)9*;K)$TK&q3X5`>>G35|l>2JnE0-Y1q2c?fm
      z`!v->#qGVfugR-@=@43$)2%2T98Mb1N1Yzjsk3A8Z8@9}y4PhD44=7z3H`qzjuwPC
      fCM+RC8@Y5l=%6cgRX&no4J0`?uql&xYj*t~&!JIL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gJx&8L5QX0?8y3Pp4Ny>}fd-2ji6TUZ@FS2AktiK&SR5HIvb~7C52v8u09=BS
      ziYp){TOb;$`O$n&@6G%7>l=W5tQW`#y@`I(&&q`6F;&X?#NkdGj%sjnRgaxDXWSIX
      z39HjX<+Lx=<#@s-6__P#|Btue9ATpcBbz$d)Tm!ok&GOyb|VhaR{mx<AkZmc>8SEC
      zX`e>g)!cc>55IaJ7oUW@<aA5e+}S;EH6L`kSAAO!#dXQyfY80J>R|ZTIu`jq5%#8l
      g_$ACBLkER)TbM^z>Vmu@!y-shE@MR|VcXr>51%YhasU7T
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+9Jx&8b427TbHxNij03p%Pk~FNiLKct~3L>pYLp2O0+GsU{W@drhf*WuT3M5)C
      zz$NJE5Z+KxSeESX+3$V)yuJZA#;!txaInx1`YADfc^_R;*vS4)8xF~Ia(cl_g%)8@
      zGfAoKJh{ACu!#yC!rnh+&c<^Th2VjGq01TjP&j*)oe=1p&`X^SQQJ7vWyS5U!)NvR
      z{r*B2&N*iCS4Y89SJ_Btj>Z{bLpD<#!lU!Igw|+$of4D`b6pBl4<>|e?kaEitSDI|
      sf4+}ub7E31NwuZ+p|B=>UBWleMN@)pqK7(QA6u(Fz)-e??G>~03%f>0l>h($
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>?Qc_682_F2-rlYhxPs+nYoWZ!)(tA#L~u}qQImxQFvUS725#HSyrXMpdrMZM
      zQxId~2Yi1aCMtdqV-_R61meq##Hb<q-I!>M`o&L%e*pZQb1&-@Vw-c$bDsO0-}8H3
      z&be~!vl#%JkTnnxh>uw(tjTn-)|_yw>H36SOz+O-_SnrFMFX0EDJ{}vt1_D2R~WO4
      zu7Qw1yVBO}Vx#7`P4A$8N?;x#j_k?ij|^w`3Wy<r`GeI;-L)$2h*fUbK@tcH1drQI
      zfxzKi0&NGgJNL*VIjRp!O?X?e>{J{#Lq%uTh=4X&E!hU5Z4kIUiuqU|uyEL^*n1n}
      z1-o{@DwJ)3MZ?viRUWZwj@<jo&^8}Q?>xLqVnwo(MSH?^NXkHmz^Z>oGgLWYm7Nmf
      znYD}1Ya)uJSRoK1%8;VuKJ3&5Rt*1N5(gp(VzoSKhOw3?Oiq%K*OTLox|=N6$t}r3
      z)3xi#a<wuVK|Ah{#_I)QoeJ2?ea@{pmC=E&5gC716!Q>`pc@+u^!%$vxn|w9$D`PY
      zG}CI;YF4vYonW3*bJ4s?4h+q4a6_dc3ssLDtJ^M-o%((z({1i7jghWhx)J_^6eiRc
      zR+t;3S}GMBm+24=#~435^@Fx`TxRZ`C<d@iV43|$!z$PJ)ds8M6J>kcuDDsHVZCKi
      zSsg+Ni!~<!N(I8y?0Tb2Dxp!^Wl7ixon5j+BDrd#R<!SPWZf6Gx^|<i23FB+kVEIZ
      z90tOa+t_yjL^zl|%I&g?xXP~!VbbC@K>W=;f8s4O@+B7KgJ$@Pa4xUOB_9kN$ZH%r
      zM<{S0m)AYDMm2}d5#lg7!W^dDnB3*^A<xiUNlQ8Datg`GFc;8TPG(5WQjw!tIV6B)
      zUh|=)ps=OjgHz1$xH9(8f15?8WSE@7@&nN+ng->Z+_d230s2wjJ@~6F_^Z;|C*$Eu
      zHc|>HIv#t)$7e4InLZ;$pSB*pjFuWdSV{zzv6^i@e=_l+l~jFvatV9!nv#|w1O6C`
      zFR(@d#5iwe8G$n_+jA`E^H_%$uoo}l3A}`9yo_J*iiqM>k-=-CjMv2*I3wOfAC@Qt
      zR+`ss8L^gguW{Ed+W<S*I03FksylcQ@s>N;Kfr#3aKD0B;+bJ3lGMv?lHJATm9NE3
      zuv4ldfu7Vwtm>YLm(1`xnEyH2^NZG8#JaCiG83Povpb&p1f6WYOGveRx6>=|5NRG^
      z&=x%u>9@p(z*bz6Bu(sDE<HXMsk@V19^f6=gx;H2{X#^E{6K1^<G+l8+k=_lX6-zB
      z<*J`YJduiN9Y_1Lm_9jm76w0Q!Bd&jx`^>QoV)%<JTbNXv?gM_Gv}`V7@sDvSE*ig
      z?Iua$Q7pz|tlr}cVG0R6Ny;Z#xu^J0oJ1B+V~F}3o>5_CJaYcEB~29!Ur5}`I`$KN
      zDKfZ=Qjpc#%8m##pw(D|yD91Px8)W=KT8{#uKrsFeIBt?$46Kk@4bYrXQ6A;rvoBR
      z#mu?ue+64Htx(U!yY%rMV|t&RG|f0Zz<SEPxG<+I{j>c0XZa@-SNSOMfn>|b&ijeH
      zbgqXqFYg_RR7XrZ+Se1)`rh`_J(ZbF@Sh3A&NoiXF%F!%h57G^7WWkW0$($Kmzk$;
      zScl8x{Vg`&JEZYFGkOKXTu1Q3oH`uBc2!3*WY*=wDy1FN1^6FfO=KN(=HIJBFV^~!
      lz)tM)qfB#^Cw1B9A5!pIB&3u-D|hl1(ZKI!fk9=p`ybrMr1t;-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}%Wl&^6g?9=aT-!;3W3n3G%c?@fIxXjs1Tk(il}%f5D5?}jy)8YG>&2iH3%x6
      z;tN=?gbf=OAc2Yil|2%lz>5C>j-5~_8zPP8&YijEo_p?9zWn&G1Yi#iXb1_6&KkFj
      z`GVQ%G(D%_Hl<lOS*l1&o|c^oPa0GK-G5Z58;zO5+1ji$Jq;0op}^}(v)!`2PB*p}
      zB``pg>C(y4^y$*2>8a8g0Z|s{KjAc7&uDm6qu!PZc_amto3bMix^i3~a>#DjUQr;N
      zxpF*P6^NDQP1*EphG|$MFt##hxpB*=+ZMAfzY|bTIF^h-U|k&jND!4^Wgl%|%5KOr
      z?YWw4T`+2ODKI$Ym`1&7v~2&}bE@7A+hwk)|7bHAgMwi{Ns3iuvehUy35>Jyovb{~
      zvfT7s+x5~lnV#5}u5~==rt3~)CI%g8KW<DQkqOdt)vb6fyD>AFt@e@r<~UX%9>Z2_
      z*RX9x7b+dslXG!okQL}NS}mhvI!&sW`x~v>tI6_T34Xf*IU>&W>#p>OY`f<uf!8@^
      z&62OQertA_Ml-l!|9H?G%c|KP#Su2wEU#yzNBOCGChK=FR&m-bQ=YN|bytkiE?-WJ
      zu`-1#j1V?LLzH$O2O)$Q7YnAX($|mGJP-6vItFPSVPuHAmdh)PSo?-%2<!RvLxFRM
      z;5;_aTHk$!Bvbf5EdVBCe;|0b5_W-P{8`+QTf|U)DP`%&7wG>8{nFsbB1S*w^yH`L
      zJB;U3xwjZs^yGVN`ICEyS%Ir0Jxz3j`Av+%LLM^UlI~(JbJ@}3!hFcF{1D5})Bcy$
      zHzNAT7jsL)|1wezD@Emi`VtfV9)5|`NG_ocU)!rD!t)Eypz%so9uyyiMIx+6pa1-x
      z8d*5}NEHcHPd@+oHT8<XUFjwQ#pg-lHrC<}<+)4R3mCyYmT{lc_YjlZOL&Yj{S`b3
      z$|`or^*TnHK{1?X9K}xTBKigtQJ|$@2nVs7rK%XmX8!d=DY(D{_VVlZwZL6)5BvJQ
      XUZxfaoKJ&v@$Q43iURwBSNnef)->n0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3+e!ja6kTT=Z_|`!7b^`4BGiY5o{J#5X-Nr&)Z;iE^vGOf97Fr2UV<d(p%3Vz
      zqJ2goEFWT+eOYt%T5Hew{CfWYu#e3+6o#FS`DhLd%O7?F&**izWt^5TxLY%Q)8PU4
      z>jcH2GNk26!#3TPantN@D~Kb;Pz=!?xB9*ahGT+byX8^WcBV)el3iaoye^(N1FJCT
      ze9-k=?gnEhb|_pC95F--l}fR}pq_XSTtfs4Iy9shB86fj35G=-aU^85q$7z0L#irV
      ze%*JP+`l!OHVI^^o@Lq%(-*RzfNIbdJ%-)tf3`j#+7=Jarc9Cr>74M|&oWxw>-!cz
      z7g9L;_y6rlIc$^P2)$7#^w0uy4T`i+S>hVzDC*SR6CR<QD!pO8lp7&k%8!tF2?v%b
      zW}s3mQ@kXCD=eUj6+*VgV^~F&IwA;VSXfCRg#^~HK9Mmf%Wu)rD>BbiD3Ii_5WEWs
      X_3?oTA;ZSZ;q>p}=FH(-D3SjLt3r9X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO>fgc6r6ROq&0@pVnRy^Pzoq<D-7o%Bt8TLMNp}bE84g#$CVRDj)SN;^KUqS
      zL{y0bKY$;Fm|aH&A`6Mb?!NbS-pss>^W*2Y?*Q)Mb{&?$){%TC-v?oKJkHZ#GFD;m
      z<oUkL<WS`*J78XiEpT4Lf<%s@;8p)fg?Sw{fwrkmR5;Dz{J7|Tm_#YF!SF8<0TBr_
      zx~5?$^Fi<^jyj`UMJn6l<(Mns>Il^C$D=rZAP}_5;pNqKPr!bh9x4a4>%zsVz}^3%
      z=xC0WZah*ir^CL=Udw)>1lGD~D3hMdVx7;6c0PzF0^7#SKi_Z9K?Rqzp>=^utKD0s
      z!OJd|v81CbF6u>e)rEsIoFY>BGlBJ1yL{3D(KTdzFAd)pa1PRG7OJPQw(KqZhIjP4
      zV~cVXt}1s+tMWUrv=4Jqn`f2xF3xg4$Ls}cVu2-pXSZ^Kl`jUl#@%5j@P;fsTwrv)
      zz`?^sX6!J$!bDohGQ6vE-h{c$JI_Bs!{3=<!{41@({Iku{H@WT8{jRGl5BlC3aNEy
      z^!%d#RL?ur^UP%0ou}W^Oni<0iirZA+Evy6ip|dqEa-7+rZ_g#ZULB6^DlxMtmx<X
      av$^?cq4`5;^LDB7#-j4a(&n2+;?^%s+oak6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g^W4DAp%}if`ir>Z5V3apBuY0HYypT$DPgV-T<mM*d0@iHQq8z>hNC
      znX)2{iHo_fIp^MUXTE<vzX0rDH3@@Z?ZJI^UmP#!wq(<3x47pVomB$y>`H#YyH`|5
      z!ep3GIH&G5e5YJ{;GRq(!I0C{HupM#klm2pXE89JAzRdlM_1lE2f{yZNbd7smo8g$
      zUKkR4q9Noy!*M<u`k!i{%3vNg?|2F^j9VDN1Vb!es1Ac+%0dc5Dw?)197b6SNenTJ
      z7e#}YI*&CTT)VY8Cv>stx%H|W2$lDXro0zzhIOs!??<B*O`pqChS_`}dWR5E3Ed4t
      z>Z;iZJboh7{LJ7lY^#UFD#?%0iIX*ycKS*~ZKFNyN8Y6S5m;nLDXY`HNq*Y?z?i+!
      z!=%00L)zZzA@inLGi0;W5hxO}MBU05Lj`GEVwS3Q$j2OVlu;-3j?`U6YO<jtr9~;5
      z$3lOyLtdfc_B%4K6c|vW61sS+TPu+S=(lEAj3lQA$$lhxDUv)nNPdbWFKc}(zwuy@
      A=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g^W4DAosp_<j&KP#=wJjSJsK0vHU53m2tM>X`Dd6eEA7iNwT(AK*tB
      z?@U>d#>B<k*PL_jxijBCpI-p>kWWHm$UoZ8_KW5C{Z7!fx*hIVCl}RT!xPRG@7E|#
      zLT8wfFw3)Bu2pF~awkY4!LX#NUGDUJ5%fd$kj21UhFnP@ns)GD9SQfc6>yjP`*hi%
      z(`QH=h?WQr8BPn)(En76bq4*oea};fVcNh1W*B0HVtpJ8vj$QalTp^dco^jjBr(P?
      zT@o!`?ll|Szp)!0Cv>Up*k0ZCh0KRVJ$MjZhE1jE&o`qDb(aU{3=4%~^a>%O8oFDC
      zRIT0f9eyU{`0U6Z?8;|Ep2WxK#K~$>IsKz1cTt|UBd^o_1Prp1lzDWolh2wTm@>Bp
      zNSoUOWXzob=H3)*o@|af0wqG0sapk8s3L=FEKt=9`B=mfWz<Q&B6XLMoUExxYLUv8
      zu`--&k(a2r`Hs0)3N*-3301sPt))l;3|lj-Mv^n5WH*w$7D-NzlAj{U>q_6oFAk!Q
      AbN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`ZEMp|7(KU1n<Yj!yV?4(Iy)V-DJ=MTL)d(QK$+7@zYK)i?5@j9n{u0$<zH>E
      zu_3Y_;ExiYdlS@&;D_AY^Sqq%oacW3@%0A4OKeyuF*Hy3oS*uk%qD5#PbVVugZVy}
      zd?ZpKdxR~R3`?rakNJ4$zaN~4Ftt!&XzS=ygfkhXS>C-94--Piqgx~lrD#sa!7f8(
      zI~qsnD~59GV7J|8FkdH!!U4lw7dGxOSd<6?m0IjZW3e|I4TSu}2eDwNc9W3DeJ&$~
      zi=devM^lF9-T%7Ta$sOZ={#UCTJ63~x^)*8792dn6AO=Tx$R}sRE%7#qQPKuDR~wq
      zlZ?S@X|X?dvK9Ozq-_|<(Gdd+NHP{<ay}Gkpq#hbY9mfBnaNPRi<H5YzxKbWJfTTr
      z8uXRvE2(Me4HdSb7I%lx4ou1bw%0K_H&<}a36!u%r=t^ZsOc@12-osL+((rVwP->b
      zP_4h9`$AGC<?7xQmc7Qeg-g^rtKJ1_M&lX}f0I{r*&dzyG{*-b|ENX0y#1F*y$~Tv
      sJjI$Gp^j&CQ$CtlFNA&iGZHQ<tuwmh9x6KcSyQ`tK|xLLuB%@B1cJSY)c^nh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@-%le|6#i~oD3sxMVc9KgXV(?mf?IXhpP;f-P!<-@0?ArqGL)M#SXwe2*sUf$
      z`C?+?uQ%g^tBJh$z$UUyR>SVo`s)u+{{W5A7auhm^}90zbPE^)_ujeZobNl|IcJ7%
      z|GBvX;6W?|;S=axF*b~=$*fggvx~{nn#?9=N5>{*In8Yl0f9DUk<1%~Tykb{MP}_F
      z>IF_XPfIepZkcx3b@aRhT1;D7hHVxLsp5LU77!Bxjjzb^lq}@zWr2n@qg1+5w3Y;X
      znUp}FWaMe)%Zv&%@7^sKd6Nd>MS=QZvtZg!3Dm_hsrUjNQpF`1f*)ZGZRis4$Knf(
      z5IClx1+5|Oj%zr9c7djnv}ZjyWznlaL$lhQ)DT32+UXh^(IC(|WftW0`s$*z=8VO>
      z6zG^LW{v!UVVUaeJq*~(W{Lh&|0muM(<Ix>=tO)$@wrb!3~_-V`J|n6narqrH=tn<
      z_Y1W1ZlXrJK#Tz>pBu{y_JGC;(m|sGW#84cIh&V;Rh{j54Iwm9MU&BU2cuIr)<)w^
      zRhT9ocY{#tSUi&oVpt%$-wG4?yv!N-v~AdO>}po7scJWXB^tSlLoBW@8zp^F%7RWI
      z^KxlWx0j{9TV&lV>4l=6FBWpr(l=DeLm0w{D(eM-u9%~-+kR==G7GsOC0Pp31kt2n
      z4C8EyEZteFa4cSB?KUf`5M(y4;3|{R5H2d`<{+j7P9MnVf|Xlel?A&hscC^TszLQj
      z^XWN#dS;I4=te=8t7~>yUo6`^S(Z@_VG<(^c%DMtJpisFoz{va(>6C`1JWF!y@5Dz
      zFAz!>*R8A^H&qk1?vLbIMHr{pPk#Q^@yDl{m=o<&E$pl;xU;g&os|Q@Rik|y+WEJG
      zrxn`!xSmW@(3uEqqdPHBK~F+#Ba-lMqfh;bUU&RYDLbM7FCl<g;=IfuGth}e^dO5q
      zEa5b7yWNPm2WNOvK8gu@kGS`GxUbVDpzdmL2P^1L^i_~J6u0Ezt`m2IxL1h#Dsf+P
      za1(CC1GtKT(!j~nQAugmhO-`*H+fS>F3}^obOkC%){5|!N9Jvkd52`)C7JgK^}a*q
      zyc=?lOw<#BFneU89vSsa6)nKBJcKTfmc`O4%KeGYaqcSwuKR~K(X0*;|NI+5MAUZY
      z+P}Xmsk&>~eZ<(;81rK${t3cdb$m+sH>*n2@39N9WDnDpuLeAVM?L%`S3&$b;`DvS
      zjgS2X)H@HioG_}FXyAou$76>&M{AvL9_su!o?tlDl+#XA1HDA<{s7HiVCZtklNCID
      zOQn1RqqmXT+9T9LYv60<`wjVjR~5T=kJz(#&Wk<HRgn%eROAj?)N%t8w{dYx)W-at
      zF@GSVAFE=9y_i1rRq<kGDUGUBbl?u!69X>6ZJgUgDB=IIjyq?v_Dj_5G{;XY_|FXg
      z3y$MgHqLJjj5|G14@R|yJ3T)2+3)}}UTZ`Kb{u&oFLzw3VCI&>R;h4!_rW@xvG{|K
      zfAR(J7kU3(1r*r>ia34Audn(Bc|da>P&o3TDg$w59h?Z?3^fR%p8q8T(IOhrDMD2U
      syNXeBr{5I<KUzm3ys(Q<_1bZA5Md&85#bmSdX7L)bEGOf=k&+?f7p77sQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`T}uK%6g{(UZmDT%-`OWUs6k85MUYWsNePA&K8@R8BkQiLW7L1@p`ZwQ=m+$p
      zqC2Y(B|$8EKhE59?wQ@sulElCJ6N?~Fl@B>9ly7o;GwI0yVn(tT`e6|dB8hDiJ(S+
      z1(RV)&)F{bTJ}Y=EgWSb%1{W=o^bksR1X9Cf!p$_yY2iEVMt2S<4XG8q2Kou11mF_
      zJ?>IzG)fH7J?TlcPer~_Di`W>dg$MX7$Qg|5XTflBwwgcfFYB>1Y)|HPQb!AL#iS@
      zao+DVMR3WRuArHU?{K%y1F8EVXsTP;W7w?xf9+j{bW5o6h-<PyzAZYbh1Sh{L7R`&
      z{C?nwW2slqjDEsxy$<W-H$v|i40^~m{Rcx|gtErtNKl-l?warj<y7$v$>P>4(#6~>
      zvd<x5hGGUL#S@CBByff#Dwri?Z9u~u=BXorP@aXAUTDyQ1uPEN*p&6zSn&nfM=A_x
      i@n{HMg@W1<4GaYtmXISvd;CdGKaG%^f0CEOsg-Y@E_V3<
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O>Y}j6g|&l$BuClH%$t}ad6uhY{%3%p?o<FBvA^cX^NW4QrktDIM4P3+Y`p)
      zQ17z=1gK)c29yQ?-DCk0B?ypVRU{;S2uuC|<-D1}`2dN<ypQ|dJ@>qGuKn9zKXd`)
      z@k$UrfioNWmVP@|wmO@(nQLvza_;Kl^c%XRH>54CRR)6a3q;kuTwQNgb63_jWZ4d)
      zPay3?Te94?47=l|&)2IaceTb55P<>W-YS-EEibLSdhIm<QDkh<Y_@E@X_xeRTWaJL
      zVkudvuz;~8FUih=VYdW)#ukU03j%$!M$@q81pKLDy2NSGT$f>J7>-~NCk3=ry3`MW
      z(Fh(<XhX|JQ?9fdYtp)=uhpf%@UmIf>m}VX)ZPpF?V7<tlgt0FM}aI-#hVN1QkZqd
      zRo%EiP=!b-h$lQ%UA2n!x~%H;d8^uP$fmt?yDT?t!)%6dS|Cy^C2Z47v}&ehhcSV(
      z3T=|?Qw|XqV%4^cX0_nH>&XZr7ziVUOc3cK#;kT)wroT&g{(loZdrP#Y;JZ0GKbMz
      z`wGQF1^x*+iuRe6N=w=TC#%w4`j-{dm&OHnR#ft*(vB<g?Y3U0en)tFu<090r}Gg!
      zgS=WjAHg}~*Z`*T;&@+CUCmT>3qv4O(_1y=Fe{avDZFa7t+KpmC?`jcx9T~ChSMyf
      z@e6PqLl7aZ``KGQg!!>6oHbSC9OT&`hB!vKyU24N=Wu2pCo-}782QGzdy3;A(SS?v
      z<1*1!@F;hu+}n5zk8{U72c6t`d(6Xpof%GNXJT1xAF%^O#Rj-e4mTXMgnO@t7V^;e
      zt5BZvw!)2jxOezIKlAg7YqlF-kA^<Sz>k=?KAhOcnV%i{nP}*z(0wGc@yxeKYSGa5
      zc<O+_1WN<!gsBj|MiLts$6J_0on|#0QW>{Mk5s-#D({g}e<n|pqLQ4(di2yRh#p|!
      zkv%SaR14^Hf*l7s;$HBeh3XGRln;lKlV2Z8-u}<zY0P-Zzmtg)M$b%rg@Au=>KBOb
      z@a$!!K=w-%)cgR!?5_xDdur3oc6ZcTo4bb*6^PGd<1<cZTN93Q-Q9<O@MOfrdhV{m
      z)ec^jq4U7Il=D6I()%R%0Y&_fFZu}QaR>AG7>itA!6%1A)qA4qcmXex{t&L>CCBM$
      z`dsito$ZPG4xgraDXF;3Dyk1Krd_y)p_tl?&%8Oi?GxkC(C))OV+ZucC_C^e8|E{5
      nwu2McWqa=6EWU8)xQ&<e=me0!1(sILHtLX2jW<UGA71_&3Y{QO
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-%}f96g^*lLb3>jrj$YyT5L(crb3IYP!zD0C>4cH9PK#661K_KkfoaqZK}NS
      z;Iq%2kve1hAdc-=L|cc}>G)%O@c;0|H(#yi?xx|#Fyk=nckku9_ndq0`S|1C2b%z1
      z#)U9^3Wu-gOZxRx)~+l%R;sjUWK+}Qr{2|VeZg=Hdxn890t!uXFICWsxzyC$6(j3}
      z5mHFF(UOrZ+on_T(nkw9i(Y<VM-c^|xx~+<F@=zAm5cKw1(j9^FBx{pw2BIK*DQN}
      z#=K$h#;{p5oe>&6>2x}gQ3#A%^F{=I?9<SIW(9vwB2y2A{TiZ(h;=|iy=NWNpdq5r
      zIB6D*cghQMhJ8_=E3k0$q?OeR8QnI;uLc87-Xxpu$^W0l5NQgfOJj*lgqSY~n@)v#
      zFG#8qJuK1Z!sxEf*PC0qP%v_OVbso*7mT8F?t0c(bl7<WN3gFB#}u@5rqi*k&Qjj8
      z9SJ9-P*Ne*<8t%r%s94L%nf<%_h|^DE`sAY5k_jqo@Oc~$5_y~>V6W`ZCkHot;LE$
      za(gvzn?vbs0MA11;QiL+%WT?Qnly?zC$A998BSU@(vy&7*3+G??vp#=Mk9=5o-H*>
      z=l!j{8duADfwSJxP!%unq0DYX!zm1k^}2>va9XS}4QD*-4Gpj2G?in?E_Z8^+wof>
      zGi8!;UN7ZEHKdw#kI0NwwzI~0Q<M<fE%W124PAuu^EZe9d@@?T6`$zJJ*hPJq`G*D
      z=(uNo8|f8zFTituasy4t_I0!*JJu0P#@Eq$&&_J%_W&ycQ@r^e^QW0TgBD!GAx4v4
      zKHAYikCjB(tS*)?@VS;?3&RG)tH?S+Zq;bAy(8Wh@NeMxEkG|#XVRPta?-n61Buo^
      zqBW4HJRgF9f0GdeT)56E+@Guv=HDg+ZUbGxcvD>=KNyMyZzB2-M?ToVi;vm@o3Y@0
      zEc7KBB-DI#13izDvCvO->*#F@#DdBD==H}!Kj5V;u1CoLxXS7_M_OXr4o6YOF<hgH
      zD-^*EyopcTJ|;X4wLT_leN5E)n5gw3x1|rV#sGT@vi=#Iq!nUU6kN5p6i*qrOYbfX
      zA7pEC3HZzf*1QW<U?m!5L=><+IkvVd`SU%KDeFCwTXrYk+%uUkVUOh2-O0E2Odi5;
      zHTfTIS|+oc?7fX(V6FEt)b}`hK{nL)6^7*e72&?$5cIE!v)Q-#h1mX)J5)OZ@qxbh
      zfE!xztGIjR*3-Xu#=Kgut)h!wi|385@@d>htLKfc3Z{RH^dOZDe9eWeajM^-72l#8
      zcX0yuxTx<iigk?Bp2Cm#2oLZv9^zBlTQ6w2CW>X8!+E#OB85}OZT9okOt|7!NZ01K
      z!V!qv`-QVGofU$!!~C-Kxc}@OG`5S=F)%y4;!_=BZ{B+Pcl#FaLsSXyn4Ev+D}O=`
      kzmWG6^8VfB*6ATsxi#{?`&;CpaF9R3$VdBaR`6l+KbQPWS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-%lK66g}V0!oqeGinIvbal6(Z`vbd0>Q5+2Dby9JiCZy|#5ha`n7ZuX?5ts5
      z+NAcusEx*lCMGrwPkrG*lNK6dHu~zHp-=u3;<?|f%TkFCJM+z*d(S=hoICsb-#<42
      zjNz>WVhZW2_Gk8H(FqzGp<k?RxK6R`I)NL`yNxoR5{N7GOH#37S67SgE?;$>FoAA`
      z5go0$PCf9#MpWCb>QOj;0J@DzxSAVyc4g5GYMx(xzjQ%Cy{+)rj9;yVb~RkID|NSP
      z>Ee-<KhD^f6pT;YhC*!Vyh5*CS@qd&ZCzntVV_nx47}><ghKbESM|avg`w=y`Tr*5
      z78T+%{uMU~5;QS@A%$V4mP&^w_bqr;_nrFsvKw5smn*Kc^&OJ8IRc+s!Fagl)f6%s
      z<bULxNWy?6eV^i7+1z3;d7L!yIQr!Dw26KkP2w3mm%y_JgfBO0p}TJ4d1OU~Ag~*b
      zzd>E{*$(EBJrkY7{2MCC?1sOxLbXdgRotqAx$1_~`;rc3a~)u9QIpJ?tvZzL3gye@
      zv=fZY`N6s!_TWXry*K><)ptLw+Z76N>=0794@LBsO`JwiPOq96#S2Nij>!aQUB{M1
      zolT76EZO=8y>1OeCca(_<tg;6*|jzCRjXPO&<iG}!Ig;%Z-r#puLq7h=V=ey+bBDJ
      zTJ{JTQZf)j7ZSXWpcg{&2)~sWO#Wz*KGPuH6MQ#-CwLv?(*mmu-jn%)QD~0t;@D3*
      z_eqJd7AO<%GKP6N8D+A=2|metL00-C*fEVf)Iz>a<SxFm^1DdotzUW`Ae|qMKR~9C
      z%HK!YupZ*nezW5``6I;fF{#^xTSf|wZhSTZYB#ppjV<Jm*EB5@c#=^p*+k+fF{wqS
      z$h#2jV&}|{Jj5UqcI%+8o0w5TtBDe?84-;-i_?!5Hx4a6)9x$`q_Z(F_Gszn9i`%%
      zsH$XhT77ppPMop%!f#ODW47=s)DB*{B<eLsn|IM=Y#USeFem|QeAF7(p__)XbjsG=
      zUovh~_R0=k+cvfd7mc2$eZUu7hc9X3SETYa3EZN|-%z)2IsPrK;&&+Fwx*ensI)zp
      z$2m-qXdkoQ;5A0wExf5cP_n<RA+EDdTp2SajdS-fazd!3#*bp}TB>`qKYeZU#^lYI
      z(ks#2+WS-9XLc}iW1niY8b7eb9n!r^ns@kTvZZN7J2}>(6{A<Pq`+?nr!*Pa$vHjr
      G#eV=~q9{-R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hPfx-y7{;HD!DLPl5&y-5-V}+8Hw}i%#Ds)sA_UK6Hc$hb*@p79ylCRV58#I~
      zzAZ$Sh?ll+pQpd~Y5Vp4@d@AzyA}+Fy+{7cr>-3HfsmowYTY)czIaMx7+5eF%1U>Y
      zvJe<@mokt^gQ0TN)`k%e25u*bWH6{7_ZUnsd=NG=$UDd)$53p`K-^5meGzqee<T<-
      z+M&-!JswF_&o|9vC}W0wO<f+V&R~s298+Kg`O}`Ex+GM}*BwUTi|R>9Z4kpj8Ji4w
      zbtjKcV&c})h}40l7>2ArJ68Eew>#k^^2N1O7cZqB`Bde{A;rkhuK)(E=)q{TsA^Dc
      z(44EDykq56>o$$H-aRMh1y-rvnz`U$jVkh^fFdyzYkkhTBaiCgXjZlMhSL3lSkRhB
      b{wpFjHT7WT|D`%}Dlt&eJsGx%Xkh0D9>s%=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eT~ixX7=8}<f+VB}5}<_=u(l!4Mr`XBNG-M1C@mEzGdiO)3oKzf$)=NRC{(Y#
      z_QE^w^`;j(BhzV}QLow=FTK_uprif(9jnhdXE)g_Am})m$vL~{eV_L^&-;;l_xQor
      z048xGhBkrpO=Hv8%3EclXj+wgp)g;N+Ze(EUGgknGVEf0e&wdQ>Ig)Xp}_Gub!Oal
      zv}=CBwAak4xu(3Q1lr4{W2_mDA#g(3He+}vGT2quiXPFbQFF|yK;JHGbwHE2vr#Xv
      z*oIZAk)1ZHJ60(_XVn~@cPv^(+i>btQ(!W1JUt$Sovp90H!06Z3e%QtIWq#+vO(ho
      z%^?6frJfJC+Ssx{<&b~}vpj6X@TJO{8Ak|DCUFG40-@~KatwU}qs_DyN+q*slrC0_
      z^|EO@m$z2UTaHz++cCh>&<V+ujqQwGaWX4r#;%u2ainofVh#%Qy4O-QvglMTyErwr
      z+yNFy5*>)kT_%YHl5#hiL=5c$N9HWsyv9tL)g@!4#AJ2PRaTACvQf3<v->jaY*@^5
      zf8fSmi85d5R=4e2p6iX>a<|mye@)}&zr+2%ve}MtYOPu?m<_4x=_DeE3M7iA<297P
      z$?RA_xqTY1i*C%ulCQT|D}@Bk;(QF}1X8MC8jY63bC?te*Q`5CT?f5&a|jH$A@jbu
      z;PtMI(lR7i8GD$wq)8x2uLd!Jk!(R<$`_%vjV0@uBrf0;Ry>_$je0)5Nj4S3tiWJk
      zh_yh;VaJ)aB_Ij{oqi&$%5IN)Ll)NK*<CLWt^g{yVbnYYDf~N3WX+$*Q@ZF5F=aaF
      z=OG>4U8*`2avXI@L%-BgTHO@B)cFnA))awmjciba9@nR-fwVdoe0#76(k;GNsaIFc
      zE0!DxonDupktxCmt31SCtuQ|<b+zLtQ7gxcS~+BB)yaJuQd~J_(8axe^8~ti@-b1u
      zTt{>F&@=uBonImSc6a|h9Q`IYzJsCM#14jYr*|;&1+7AOir>dMw1D^MXE5Rlan{fW
      z6N6YMuOd$HG^bJVG*0q~_;UD>f!s-6ZE7bOhj5B}$yA@EcqW-<8%)RkfhlQgrW5-!
      zt&z(nBi$y>HksZb)Az~rgMFAvJv}xDGd+Vmt)-T7m41=jml*k+n>Hnv2K!J2)7Ol+
      zvIsoGza857g6rH%=ix_)g+4=4Ztvq+fx7{)k9=Ug4Y23&f(zznG8AO;iO;#o<VC!+
      zhx0_x`O`g}r!eh0&+^hTw<*c}*nPa*hHr5(i1I+8q_t(EMpC$hSCtHxafN5PPG8%l
      z?Qjt8;hv;kN5Lg^UV#D$k{Wu5Nce6jsOa}Th(trtH}IwlG2`AVD!W4Uf=+H+-QfrJ
      z;E%pLMH_dD${%<Yehyb%tan-SQlo)Dzlj}8sHT&xrs2~B27Y1z|I8Nt1wHr`{rJrn
      zYM>Enz-=-9S;PFkp?nR)ctgQZzcbVy4D}~NJ!YuC_6enXMBqB!B2}HK1(m7me3rLU
      iN)0!shEhtz5fKR=re7&NubR^!%1Mz@+AS(Umi`89Qi4<f
      
      literal 0
      HcmV?d00001
      
      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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
      Q&<=-(f$a-)w*_DPAN?Cvk^lez
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh1nf#InQ+{mk6N^wi9JeNRvSfW)H2T<83}lA`>aoYW$A
      z1{OvJ0gx*FoW#6zegCAa)Z`LI29Ct!lFYKil2k?pX$>FjrdVr6F*0xk=a&{Gr@Ce4
      m0F{bkTA&Bg%f`sS$iNJA7Xt$$&^}fMHV}(}9Y``UZ~y>M7%$iW
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8B16g^Y6U0PPV@{J!TTBH<Z0eLW%kQjodNu`M(M&E{IQid$E&F+@)qkPar
      zA!?#N`M`@W{vP9<-Hk1^3EAx4nfr0(%(-{Z|9trdU>U0>G7J-k{Ft9O@`yKu^qrcv
      zwMJ>#gu!6zpyP4XbQ*hy!i`Mi7=~kSJCdGLi$uU9KVT>xbFUP(WXCgF|39zFkXw^V
      zM(cEPxnIKkE`zb*?~6Pbu2?WJSik^^7V@we2Fg02SeHs{wU72hu*3H}L7eKo%e`G5
      zNWD*;Msy%UhN<|RK6fNG<^d14#7Pt*za2srlNQD>P9#+9o+;1wE8hvY3SFWZRCUo!
      z3sbnoFq&p}YgRRJo1t`3XHqKBx&yS`k_Aj-#=>1(XP9&Y!6VU$*HjpB<<ezyfjIJy
      zg^5{)xlW5-sj%H@`9UQ18!g=z>8s5XSG4q^fD(!Y(zL9p5`JOZZwIb;CbfK4+V@3`
      zrngFoV8i2KC`iEkwrnaMwFAn0o;0m%CaQhfxORzV>m+?~Q@NfWO4WQJq62^5#1g~U
      zMVV4s7FO_xVWcUd*wYb(*wvFc>gn%G!F6-`@pv6b8ry2pSLebUSFuDA4bYnfvxoKc
      z(Z7<VHxDh|5Um~~Ll01>EPR4hIm6Wtw9DX{_QesZHhyB5_7>G>?+8Z8()BQ&qO6jQ
      zW0jAvK4XI69c3gaIUO<1`yx>9QiLZdf}J4TVEBRQQ`~vqgY&Bk$NtCU9_$ong-+E>
      z2EU^8<_!10_tgLHsvk`1?WcO&)B4$zN49c`xt_x*q-D@@8JLe(6)cd|V(LRd@dxzH
      M;2{>t8gQ`u7jiiUtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YflqF6g{^sEG%2Vf<;9Xc}O2>5#JUc1W_9+B%=6?aVaCLmTj}UB{lvazxV+Y
      zg{X=8&BPyNyfeF$mNvu>-I=*_=bUrzoavvx-+ll%ix~|eLh_BdVOBHNy16Q>QYI(I
      z+`^a|9|&_rI5|%^rdM(_L<qeyJySI8)y%^38&U8yv=d?~TJfx6W+$5vvOGe6zIiK4
      z=v=f`ZPTkbf^fM-%Cw5@%5uw=FU^;<Shlj)8K%ck3g@bxuwAQUvl1VyP9UeXPg}O-
      zUFTvGEx5AHN0Li~`>k^SOIK^W$ZTmv=m;ZbAc{UhIFVfH1mU0o4IOeeV4w>ImzB3{
      zF<)6<7S2O+xyU_=<x2&#xMVt(TnE93w`RG7wBp<C)jn6qy@)p=y({ma4YaB^D?5>G
      zwew${kf*gZ)14Pp_5v6DtP5=zF>oBigov%eLy2Uo3jCYS$^$12jADY#6lB)>FRLL*
      z7;bcNvt4u~kT!4%V+>PZ+jzn!$l0!E+6BIu1kT8W3?UN~T<@a&G-^0Y=u<|QPiSGT
      zS`cMV`7z8=2qSw6Y}O}T>WKByhR|@4FrmN{|0CP2l*=W@6Dtd4`4SnoMxf&YVme#r
      zifj?rrZ1K%PC?wZq-%`83TGsmT-vs9W{all3ReTahl7o63(~ok7SEqB+iYw<((v&2
      z8lw)1-z+9sY?yy-2=TuV8=vQ$JPSeRFWaBL?Hr4un`8b?4|+NJme*k(ds5ptkV=0+
      zf9lj1#6NK;j6?j5Ap+1X{+qgkPP&V3%Hc4_hy7zXf<ay}KtL;Jk}!m$95tBK-;@26
      z0)}b=jwu08cr8WiH37Ta-I9auG53Auo>#naKfA`O2fVv%GUBuGgJ4cs=6S^~Sw5rx
      zD^3tTax|nWl#KyBQ0Ts1JwPXU{Q<)JK<9*yFi!Y|M4lJ%-_X-rNPR$8S}wP6dh;=D
      zN>FutGN3uevOrG}rDy1;=NP0H80GmGy~H@Zsw-|HppRkzQ#hxjpGRLHWQy@5cE@*I
      zc)E>CKlc>!x~`B8AE|dnKK0=IxWWV4Qd_vZ*?5?@<lV~q2;-`nWiid8-_L8f!GOMf
      GZvF$N6O3^H
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#h<ISXh>erGSbca<Mn0h~lk?5`qZ{!UGEG+fpX5ShmgXR!|e)yu|qA
      zpYX*8OcbIf>YIr_%6MjWftEIghuxhybLRWLbLN}<^Y_~i02eW(Aw)=Sm`}{@jJ0X5
      z39FEqmEYNgLG@jBEKfMI{Fq+B(GVfD$@EO#wAV5VD;px`X{aYeRkY+;`OJPcA!K=k
      z*j)8eme9Cpt=Xnmas=U8jg$!$JCx-XEnk{1X|ZT!CmE)7ODUY$_Jr+P1)G)lU}XY1
      zt$xC?EpL*GP1NAZR&Plz5$@K?J(jN8c#-MCs?ZTe)Ic-Z3E@O?sS$(@0~#9SsLMbT
      z3@&TVvc-I9b457!%#}R%C^}cjnfWEtvE)1mM!a>)C8QPKVXyvkgxrhHN~EX7eYCDx
      z^=4%!vb9!@)d{&<TQ}W#vCUrKf*&=Z4*dqsqK^=<Rk$aStW|-3(pkCTynzA4*-SxZ
      zx&N{nl7zlW7gyUwM*?XB!x&_koFhz61n#z7&$M%VG6{^xgbX1Q6kP72|7p~4k<hM;
      zF0atS%yv!`J>|zROCj_hDX?0fbg3gY3r~cGD}=ZLQ~dXBw^S?^98at+6y;51+yep~
      z<A~~Po$IniT${dFC^<QC$C9ow0xOJ2G&!|x;Y{aE*A=b?z7HLhZ41)5mKxWeFkNkI
      zKT>h=j~b&4itj8&S!|e}I)wNy#Kz}wBacGR`OWs{cRk0N(ZVr*r4?-)ea!PPe_K;~
      zIFU+!K`b@=1)ZNb6vjz@M-c(2$iFEUjpU()N;t*wK7Sidqnl?85YWnzBn;sUM-3+R
      z*JMAXfSv;Zy-L6Xo=egCfq+Bq7Rf<d%>9(PpDEr>Kl^}J4|osRWW;CV3&EVS%*%>h
      zvV2DDE6x!<ax|nWl#KzsQ0Ts1JwPXU`~kxAKxf=X7$W>aVvZ-BzoDmhk@|q9w4CnZ
      z!p<`7NKmzXG@$8aS)i9_rdNp3Yjo2a4Dfi6-eQQ}l@%8c=$p}nF<es8FQYvWGRAlk
      zyWu;=AMWAm&m)DrFDs<MM{1jrS3TH2r0{^c)Gn^=RBq-adA9OA!nmPESxoTP@8?b2
      KVnE+MxBmgKbCFX3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>YuW6g_VkI%PV7wgQS@ZABfRFtusi)VOIvLQ-i`lttC(177hp!we1s(Y=47
      zi7Pj5x-rq3xM+0iU-3U!@5~Szii<AZ$9?bKbI(2Z{`&L%7{Gn3YET%=eLmuEE!pE;
      zAziB$oVD%zj^G{PRb8*g{i?Km;b~AAE(YF~&7H2b-P#vzU&G84#-J~)hVVwREp|j#
      z4t(!jKEhzo_d>`z?+J$aty8#$?@6b-!7%esI?{i{kT$2k3rz-f)9nZyF<dZ^K$0P5
      z7MckVIRhGI8B$x)5%poOCA=rRWrvB}Hn*GHlYu>cRQ=a-z)%dcoJWCx++L`~8FG;n
      z8--mBR~Qy26%Et~RgENV^ren0at5y9IzzH6{7B_M5~7nf3(uzO)^QVy8g5N=Ad<|$
      z5;DY0ycu$v0A~B1JCfAANqxs0Ni8D8uzaTKX_i#&+-b82c;P?17#M-E8a1}z4!yRZ
      zK9k<Yc#JB66oKhD!rQd@U?2t>Dpcj9Mq_tkJUw?<rPju1#c3%)hiQ5hx+kF1K1WuS
      zY=us}_zgy}^cAVkq0c4SlN1XypyDY-G%-(BCi2DtE|W!ZAu82@H2p=GA1N+Qf9s{6
      z$R40l`ho1@l_OlOmygxX1N9R!#V<&e)9Tt0ZX6)49==yk(&~qk-?2lAQxIfd4%zM!
      z{&N_3L2oaS!z-BJDAIimosiLbl<Oa(b&9-AObpyb9(O{tCA!}uR#}=H69uYBA&ekX
      O2`h94YA}>xA@>(0qv<aI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~b16g{t<GVM501=?!;0<7BaK|<VM+z?5cP)I20LRZuFSs$6s)R}2RP2Bk>
      zNL;yb!^T80aY1zJU-3VP_stYdDGL_w<Gy$Ax#ymHfBpG>0^l)LR74nx`{vL*FhtMn
      za^V;?dDeDvyWH$>w_dA1-y8M$rm%eOs!$lNNq@sK?XI!Y+UIRw#SBA!62<Eaqru&w
      zX!Bj(6`t>oav=so{0x*~ZtFi-!*_+<U1ykiDs16DV@TzvzY9$UWy9%k4N+Xxk-#iN
      zG+$^YK-6@oh%+R&gw3}Hy%u-(%$CJvBByOyP16<99zQDnYvD1JgDjU*K+<~^XmO5S
      zD8+i=g^C*ti_>ZZx`v`Q`a(knSsk}<n?dh#|4b61lgbxfPS>sBE*4eXo6tX$Ove(^
      z#EZWfm=*!V`>rz-)VxW3#|%j=Y7WElxvFKyCOJ~AiJs_jpZZU*^B1sUU<Ac#3|hk(
      zxNSKnq_#dDqN<cZnzqf|4a@XA?y0C!jg$I}-5C}xnmVjdYooMcv?8*@G`$hJC!o=O
      zg{)1oBXnxTZ_taSuSk9le6G_zOR<0j1vW)Em?JA4dSf07WKmpzN|hi*e<9{aii^?T
      zTInY;hp3i*AX6_N<K}kdMCm+HJ|SKFf@CG7tRCaeA!5qWd*w8xd^r6bJ)*b>WcKBN
      ztw;C+=or%50kRk&kGCk&eHHHlMr&cNe~i{B@;))q@enyY2+)@3{)kv*Xm0W-P(=~K
      QkeNy-(<#+psK7w>FOMbYWdHyG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc6r6QJ+!&KUOA{Ibgc2Z45P>s@OQBMvLZqe&5;w<P!d9+r*-lh`0D=SJ
      z0OC-7LoY~tNE{Gc`B8{jJ3?wBBo4dl=b1O}z1jWs``dQ_w{hKsA<)`&rp|s>?Kxwq
      zf^JWry?%2`Iy*Azk9MV-Y$z|0k%_#(Y0d6>jz8{Zn2ExiMjWc{Kt@yL$}KroaS}am
      zW*P#8Ae9tY+&nIIhv;49tK^=*a%&!58w%vtgB@uhhf_9+C<)|RYr`Vgm<<yP0_9ER
      z%SV&Fk&L#TktcPbz;(Q#6Db|fe&&;BDi&y`RsLss-Q3gEhkrEp#Kbv)#!)x56RD$_
      zor6$WsG?@$JSqYu*YWR5mlO5;aFUp~Ah49WqA#NVVBeKtq5@xFA&i2l;)QTvY6`3#
      zYka;C8@2|)ByuIKrw#V(W^d{OI`n-Rt$R)!%h<$KPIa{P8J+&kKLy;P<2kMqT!uED
      z56a+o5f=B8j5Zh>JgxRu*zL||ls~4NGu%te1zsSJm&|yDMMjm3jU}9A#Jp5hP;Hr5
      zra2`?XVyDEQ9VGV^8?j~H`<?2{(_YQ6!M3UbBE;G^mqkzvURl@3fx~)?+uZ+#NH8o
      o&;K9N%8g9(Z{<2JavrTx!X-4QV&F0r46Nb`Pd%YP6W37t1N!2@#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>YuW6g_VkI)G!*RzUHqt*8SOrZ&V)jhiM-NNSrD!$MaBJn%Ks0cQqM_x_0{
      zt{ROoHhx5{iHk<J{uTd&^}d;jhSG(L_i^95_uO;Oy+40{I|6VAOBxggW7`^8yQbK&
      zdR+9)x;*Qfg)MG%xZ4<ZyJB}u*gkhPs0`<%w`p5W&)jTn^R};HY68O>2(!W6k!bTR
      z-V>hhJ}ZP645_ZLc?ioev;GgR;k&}=tuRd86OQojGh~d(?_!fdUF~;x3Nf73k;F7Z
      z%qTXKAaXi1BpA}`!r>dkofdZ=S}mK)ME$m9H!W94J9<?8C&FVW1zG+_0ZESNlNKk)
      zg;J~(A8EMAFgLEKR3lI|l5`+a$RV%eGOiHU9`{L`ND@wbGDh+7WZ@}X!<>feV=V|Z
      z(=m@MQR7dCmQ4VOf!iMm>fX4(5lNDZ7%?oID0`A7m7DN_0g$w2Pa(y?2#M9Ht&RTB
      zZF5-(gB}f0RSF?Z$Kmd(ZFwH|G*qd?afKpxqB}WtSfa+pXvJwMvcELD3f+@P(SC-k
      zHL?{tQ>CxaOXV*}e++!i(>_hHz&=#Gq=;9TAuAhtV-^?4qPPH+>OhA6Ld<=Ni_>4N
      z`~$f?RLkFyd$4$jOB<CVwR2Z}jcn;N(v^(5e2A-ih^q(B)#Hr%;`mqWfZ`O$><a<g
      zH-!HdIu7XV9rAb&10PVL`!YTSjA~)7zl>@Wd4rhfxP=04259qizfG)iG&cr{RFOg$
      QGE*6gbV@ZCDln1%11l2jApigX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TT|0e5dKb62*k)86j~IeLYpE1xl^nc6o(n44rOrkE!1N@Oi61JP=5+<{s3N_
      zkvijpqp$ub$301)jZ>LUx;eXhzTN$HH^2XU{{dhY&s4-1CJwA)>!T?Stuhx?b5qLA
      zLTcBsY`0W>!<`LL@wlTR&d?)$&5C80&BFcxFL^538PZV%w<gRYcaBAg@9?s4J?B#@
      zz+h;1xJ8f*iLK}*KkSZg%#qs%M^McFxV`j^(rr!H!pk$Pq%VPMWeOoOdkpb)DpG@j
      zZXH+9!=R)yd!1nD)1jh6z76Q;gvQXlC2YQZbhyu*U2DI>$!DutvMPI)Bjh<$#=UpK
      zC0beqZo#Z9<gL#!!(ec!nc`gLwTdJ|DoU7S*(a^hsA5fMNZ^K!n;2tAmbn)&8g}D_
      zQ#}^M{<d{UsSl(xeu6=)qUQ*^oYQa{DHY=k!_ja}{n2p;6AVKHUvNZO*p^3E&%r6t
      z5V$c@7rBP%)C2`mkk*lb!O%fS>lMo-&iW%s`ATw~!nBIJ#J|ib$k#XNFlC`C-Iq0K
      zG}Ch`?nUM_C``vZMu=zr{>ZAhlBGo*OXn;F)6jw?4J*j0SZz&5a81&&c4^fiJXKA#
      z*1{&p*=dv$Y!lfP;)-_ipV7G>Fw$&t*NW96r^IQ!sH1wgyVDX^9&MXDK2h9N@sy^k
      zMNc;iL{|egSX9i=)GPF~Ax1x11NvaZ<P!Lj(W2;Ny-KH7q*q9G8{g1nWY5rROr4?s
      zi|;r{|9yx9Y=S-?8FVrOT`Y?s(vJn#a1Gb#L;!vm=D*26F$yq@kuc2XFibxC3yBjf
      zXMZB`e5#I7<12dWxK+nw9oaf&PLL$^0;&7!SZ-3c#ZQ$}LXSaaWyn&P36;%4XLGdo
      z^B5&L&K5Aq7BNq9l`T<cSDUiUUu2udedH-Oov3<%hlCo#BOm=S)=6q)V|aoMjQj;C
      C3tbNY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pj=7b>o@_T9QEcYD)koY2s2vT#C3<iWI4&5<x+Nlap-2R*oHPCxSbF
      zq7o-ATzWx*B7ukif%p*rg#SPp+Ywb74jguOW_RYzn>YL8_uCPG>sV7DG3dMI(0pu&
      zp4sKXF>1kC+s@r{h0oop<MvFyDlD=U$P6cgXu~q?uCd+P<!xWV%oK*#7e<4-L(%4U
      zcvpD7`y>}(FsM5rWZmp>hJ~#oxQ6cvySu?Kb5q#Dzr~Q!r=Rmp26@xza1}9}(2&49
      zLrl*%6CiRL6wERtw}j2>gI<ffcg>a+7INCA)ihlZ_~T32e<(bLLRjU06bQ)egjyUU
      z7fG>^zpvm7!_uUpff}Kzk)(~jP?14a!#SL1nD25wQaO->=%n=ggXz9iT*Q)sOA`}_
      zB-5~rG%@3k2Bt*-vwhbYiVk-t^&N90wTKYI%CWAeSyH!iN5dlE#eeW(U<Af$G}wkS
      zaNC^bOnPhMZ&VJX2wdCd?xtmW9`_WKsmn=?#^J<x`rl!VMjN9QrzHgwrr#@(oq$UF
      z9C=mpB|6o@8)${%Yb0NWF{fysr(ED2WW1-05f;cxN6}csY4Rv9M5R8EqPGb1IpxLa
      zty27m%pS_c56IkJJ;2#|X(V@U$S;sCyh5^+lGhJ#VGnV6|EYYKlAj&^itSULgrNFL
      z$o3QAe};xHboUime1nefD3HC5pCO}4RO>IJ3T0j<CK|3Hhbtl4GTGONRfc|!jy!cF
      S5k^p{h*dfRH5f`Tko^OB=I(g_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4J#Q015Pf?-=j`K%A&G4;Ur8`<{=5)bG(j{Gku1fDgrguqb+#9?k$pDjvqgIT
      zL?kL2nlwldB#H=HY6JxW0TLDefiQdLfE=fw*pJzrdGqGYy#M`XAHa1iXiylkTlT<y
      zY>Bqr<f3Dh<yl@&-*tt@-AcJ~dt<xHS44{}4JyMa>2I}cr)jO%ws_ssFu`DsqV&4L
      zs&aQA>iiCGik|0grvnUz$RQ}h)apO5s^<!)xx_GWQ#iuA#Sk~gzcZT*>T;*Sb%b!z
      zKopY<Av3cX1yM7gA;J(_6%JqPw`<(puxl+Y6Lso#Ytwdxw1<zX_fYg0@_v^8Q$W&t
      z;A?S&ULeI%=AMQ#471~E___w7R=Yw+5-9`caGt?va_>+Qq7yeW_s8qjaS^i`E{*6P
      zNM>LT3F5^c_3ah`M7nNgAR62q)py8{)S~7v%pa**c5IX*)f#P!HutFi1Ur2UD+WeT
      ztjwTSJAJn<=Y-TYhC@`8GDy>LxVzl4dp+LMP^211^%=S|%p5m$SfJL1XoYDhvcojJ
      z3f-g7X+J^M3fT&sdiFJpZ0;3eFMOZVv`<nj@Bu15Qp6`rk(CI%F^w6rD9%TvN)V^N
      z0P`8eh3T)9dxzu>in+H)R`Po|yH?m&8#mPFNMv6kR*0*Md$_QJu)6z1J&3DM4}OJq
      zDNcdRKJT;rO!!}5;48g-Lkizv;s>&HU&K$JQ7Opvmr;o#FB203SCPgQA8n5A*N9b;
      X=Eg*ZDpCkTX38N?r&NQX01K%<<7n-#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{_HSXfrdSNTQ(3wGN=kxvaO4@43Ygv1hz__QoT9nx;=b|LcapJ?K{
      zFT9WlCO!~-^{@CJ#5=nU+O&ygvpX|)?wot>y=V5vudmkt9^#RX2qAfFpW5%UvS{ap
      zEM+&<xVe*f<w;+7I|s+Y@i%0F=Q=b(m-5aQY&V|`_jI&2U{uO7n-kutbi_-MmlfYT
      zON1B%%|9y(!sJ$yu)DmKD+@;+N#U&$jH8lQwEb<n$R~P&6Jh9_?@2e$9<5KLEB$AL
      zmE^wx8v(36CbV8U6b7P*ndm?lA)2)I+Q9)$=x9^3J`?RQ2(c~citUr)f$(<igF-;6
      z<k*Eh+mmWtGiv@@Ss|pFF=|>_mB>+0V?sPk<nI!%TKhUi3FGx8Q&kSS6}Bo@mIg*}
      z*Tg-H6FME+eeOD(Ti`>O`i}}(`wC*x#C;?fA}{=n+YWF>@uc;pv4{qyk<{^^P8?x}
      zOjsD^<ixuZyTAZ#Wv_H94~19X&QM8Qg(&CLsEx)%*|p=3HW;|K2`>UM7;UnSa-|c`
      z5iCJ&nORf#tg5D3x~}ln3wEU<Dms=q%lb0c+?jFXmB1XUBg$_JBK)vi_+mwrSb~vR
      z!sOjMyn4;{D37t!7j&l5m*`GqF421tIL7(g0}UW`$qckp2Rg|_KikK{V;I07uNWW*
      zL%~c1ig17-4A;V3uy+gZt);(Xq>9JsZy0%zNqt856~?NtGFO<`p1IZzm$gsmXM68V
      zT${hbR241S`3LPLu6?}u89ir+2o$Yp&IZ&4oqAwW9|owOwK#w&8pHw(VTtEYX)K_+
      w7>2&3x`q_eOw8n;O$IZJIEo3(BFiKvS!i=?*VsBAL|ecjj|Te_mau~1-)-(3^Z)<=
      
      literal 0
      HcmV?d00001
      
      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
      zcma))zi-n(6vw}pICWx711(7){Ax=8Cu!nRMJz=ul`2Ilt<<0*!Q>>DaFy!>+lk7~
      zKT(N^g{2D;6p5jNm45{x7!U}MTHe_fkcNT5clUhvzVGwCckd71900h11r;#{W6K&^
      zJEqvSx?J?kx}59lg?p~>x!V|YI$~!<*tAxmFr1R7P1|z1=6Z9Bw|o^7V;Wvxm<{d@
      zMT>9nuJC;KaUs-T&^p5Ap)AAH>L0m=?+T~8#4vG7IKscpkTJ%$i<=C}a<9!b#Bowb
      z3X=?Rqqvy@!Rb(uWJs?Hhp!E`o7}x?HEk{n^;(v_X}Lni(ND#HC_IKzQ00FdkZ^=g
      zUL1o9tyn7FS8<kMX4FyXM&N2>X<ul_A+O^+E)Z*%`{Yez2`8S6QG77oxQ0uZQE_?X
      z3PR6x%pyx@{L#R&Ng&yGdqdHdlz$r>L6TiW#4vZP?Qu+MH|YfrKw?e*1B!u>606g-
      zHhKfM#bqZ9di02@(g+zk4tJMr%k#LWqDn1}Iusoz-0@e31-jTceF^$v@_y;<#%P^_
      zM&k*JRw$0qtd(9vFO^>*{USJXn#M`W1wKN-C(8JYDT=b;X-wk`MU)q)QXk0BUa0wu
      z@)ERHE5Ac-7uE7x<nGMx<J?;1KxyApo+Dd&iF75SEbimtE)vS#6XhtQJU#jl-=n-3
      zWc9g#_6zBMg^q9Z?>qAN0Rul#qV*yU1EN}3>o-x2GOrMcj%z63YM?et>+3|7qjzJV
      VNFBvULslwdo@VI=Lj@-CzW~%X@GJlT
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ?ZF3V<6n<`+mo`~SP1{guffPlOR9O)fr3FiA!PG)u0>x54xO8vR)npTQH?+Qt
      z{U6Tg@B{duGt|z&jC}V;S<ksyH|b{aOYYr!&U0R#`<$D<|9SBjfXmoOAto^Kjq$|T
      z)2+Hul~zM9^SUMtbH#9sdJ1uYT*#xmtZZc1GVF@<Dvg%2MHt(ZPR05`3W!Gn8B@BR
      zWgDK=um#R8aS+|u_1c;Axz_f!bfl^BO$!Wlxz8E4=?cU)%L3WDWv@7msv}+3dLma0
      zmn?z|BX+AEGDtEFxjog4baKyIb!od)5oJuyShnTe5a=ru*9GFY8m3I64<j0e@J8SM
      z(b3TW1Wsu<0ZriKl4Z+#t@>l>+&3QAsLSk9W6P+m8;-@_{$bqPv8ar8zptZ}vQyGW
      z9R93^1d;-SRq4%lGnOwDJ9Vqu330~g^BPj<7Z^T{_6dv^ikoG2dq=|n(gNe;*1oN~
      z#$Jd#RZ=-k-X#rFC<vShys7Pww{+R_Jq?%Gvny`TZE^nhHDs7WF0)rHx$aIoH^jgX
      zH4Ne;vEzo=nJoN2IeeqT$3Z?RiNa=?t*6P_uBE3nfkdIKoKmblCAk5X8|_$Q9JsfQ
      zQ(Yx>y5Lmlg}p7=<Uw##xG8W^%|gwvtNH`mZ8e(>$CKuAQ#xu|0&k}H7VBf89}5Bn
      zN=p+}&AUqCc}GoL-ldVt+YK)tL`q{8cUZ-r3yk_zscaR`A^dc4eE^GCO5qC<aWI!b
      z%^L3VWhHhk)7xRsWeqEQlH8G2b;nC#jg;5vp<JuUs!_Y?R9iG%UQm8N?vuW4vUxPQ
      zdGo*7Q^gv!T4Pt5X{_Q74Iei_M73GHZSi;wAAgE2aY9TIC4KaIB@ySjp<SFOK&>Qk
      zwUX4-N@J^5QV^{gA!)AZH%njF5u+WDDIH?ClpQ@l?hpEmVT^tURf=mA`YMH-!JBl(
      zaB|0KjMGZ&V8Rcj)5^9)={e3kqfI+VQXS5AffE7v9P$z1$=^fZg-GyQcsl}oAq-xO
      z1YbnK2QT^zjFtXGF+2Jc$?WJe+P}-+U&qZ(Cv7^G=?NhfV67|eSkMtY0}(~(ogi&G
      z9(I8{bkJ)P0nUZNUqym1<AVtBl`tJfB={qI?1OI*9WmlRS(-Y)WJe2Wb-GRWT~!fs
      zZ7;uZ79z`!6>t@wM8&!gj`c0Ys=X!_OPFJQifewXRm#VL&y>awpqC~hgxaKl-x1JJ
      zLGx|*puh~K1M$w#j&*+>-0o)-Hcnr&Y9jUt#{}qf|8u|K#7oR>WakfY`_<HQlz&5-
      zmV3YQ`RYcta)<}7n5iqB?#`<*+$BEtXimPTf6YA_w;yp1KcR@9>7Qc1t7|<dP{%qA
      MD0lsk(#P=SzhS+ucK`qY
      
      literal 0
      HcmV?d00001
      
      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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
      W<Lq~pR%lmL;Zni@xv?1tH2yCoJSzwQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV}y=nqM6ot<<>PFL8BxQPS9IWjF3yQ)9Qs2y8Wn}-DjEi{&-zY^Mz=sld61Q-%
      z(Q4q%$32Jd9*#f1048_}&?3BUxa6HODX+!kD)jHW<?Ku6vDg4@!oVXc;cTrIpBvGR
      z@T~K!6zl%*xj2s5F=0QPU9L;dUn&e2H8yQ9|B>H?M1^RxGGeb1AJ#ZovgLF-YHYZg
      zLU=isjGPrt>v)2>yXEa2`cb~MTHZ_|m9>W5v6s~)5FV<F0If=P2VHpS0UoOfq37r5
      Fp8$T^jTHa@
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB{E5FD3B=!>R2F9<k-kZN(}gb<Y?RVtzqcPCv1S7`!{Q}Jya_y9f%VVgX}
      zfpV}{9_`GmXFtE*KLA|g$U}?aY9UtQjmxEoNoJf@lxiLX(?=5X2bIN&@_Zt5O(`i4
      zn+(1s@I<6BpN0#Hw1;hmV}}-6Cj8z?R1}83lfKKAF9~U4IK7zswhXMbwIg+N`BV`q
      zZ-%pVgt2AxoW)EFrD^^TA+Ut5GIqCN_S5g@^jc6FQ8VPAf@;yBelC__DrC}hHCQvP
      zU-#A2^K~Bx+(4aKR;Y-^GBF9A{1N}i=4P^H*f3|yEU|6&;b8}MFKu*O?V{&uzr=UT
      WIw*0!d=Jb1J?tALh68iAaQF=dJC+In
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO-lnY5PhlI)o!&_6v1C$F9y%`q*e$NDi*zXO1smVvR`Dgt-sBKKfoU)CfT;I
      z;HiOR$Ykcdmw7+GU*7<3aTcJ#&|Ao*{NyT;b5a?nC8dT7F?t~xz2=cLG*pG5lyrc7
      zhOR5;u}tTDG+EHp1ZXl``fO=b%m)r&)4~vX;0lQ0@p@RN6OPtVk?#8^E?1@!!|%)4
      zj5I~QrZ4<@7ri%zb}ozJAxrX@3^Cm8j_S}thc-4+8;TePyMt8{MWyk=e3Z!~l`4L&
      zi9N67x3ryYdNZrmI4kv(o>XkVc=fL%H*T1A{0w_`A6QqL)}jE1a8@0m<ztApkH_o#
      Q$@<=Lb+)f-&jwEa03_O-qyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXJqp4=5QX2wpJ*(!v+x3H;c9KI5D)?iTCZ^kD{%wsMm?K_2k=nhuE9dEm|>Wo
      z@4b1x?hgPnbV3A#@ljsnO{kO1SQUaVtgVRSWX<xhlSV6@t<>4FW)q@L==pt-OPz^i
      zf8^ALXcGFLZfR967M}1uA#|@5BuUfK7(NiD!_}{5?6tifoB3x{;WySe@%d;=h&DxO
      gQeLW@34{OcCLZdn5Na+O?nQETL$rK_w#xycH!8_VZ~y=R
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%Sr<=7==&jWwcIps)8#oO9e4>?MlQ#pirTp>rDL_Q)VWT$yA@sg%99EiAn5q
      zaA92}fkVD?{+xV%y?+20;4ngm;c_PD@{OxPW~4NyIhB?RF@7}4(!J4{p{g3G%2G)t
      z!a76Z37*R`<KuKjQyXEE;V7uJRXM-&9u30K3*NW7c*)5U!^!#Rcc$>!A<tZ2JTyR)
      z&2YL37<wWO5fdworKf)Y;eoz=u8XvkDsSg%wKh6g-dmcVt(ryz_xRP9ca!R$ak>*-
      zn<))d?p}ZVSGQNb6jvm}np+$0iy~Kcge~~ex6uvf4&re37W(c&-$N4gzSkYU@AeK3
      Fz5z$yi!=ZL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fJqp4=5QX3P7mbB>HXc9`T&z<o1cVd;t=Bk&4RM8aqn^#e19&KLH^IWfVuoRc
      z_r5o;_u~m*g<*geVNuAdybE=bIjghaD{Cv_IN2Lzc`uDtI^U{`Wz8l)hcNa6QA(YQ
      z<WO*C1M~=!dRtjlinX`+N(iG{W0GW9Wegt)tJ(G!8hdyRG*MjN8voQ9M~~(^LYST_
      hlkrBCOql-3xAe9y4596+>%JrxI6&V|7`Wa-_yKV0O9TJ_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g|^!sg~u#N>M8aek9Tb8H`aMs62?0tZ5*GT3>t_c86umevsWQ@Ut}0
      zkoe$>Z~hnmg7MC@X(U|}UM6$zJ?Gqe?#!=0-+usjibqwH7}h_DQ*q8!Bm$`t9?4wz
      zA{X3s_uTkYgv#%xQocR+<VmiQxC)D*d6`4dQJrBnlc^G6Po^2+-@9)Z*gJ-)?Ig}}
      z5$8P-_GRVw&y)S74fg{TlA|LT`zj806JIjaJ4qVwvu7UnlZflwCc{Kq#VX%oc)Zfl
      z&3P!|fFI;3(Kg2ktsaB5P1G97n6+W!21BEO+Ui{g!%Z7COft-LR4jM<(V<Mc;xHTx
      z<B=CZjwl``t^8PJ3>#*WtFMl1R3n*Xv}o;e%mzcdV8VZJ-QzSl({mI$)>ap^)kOy9
      zszQ2E6;Jdt8mUp(iXJqO`QGI>np<g&FP))wkn~ee?kK&wh5!5@^Wkux)?TJ>SV9vO
      zOi)xc(KT55E$CjRoQ)|urzzSeq{dG=s~4DY*1n<s#SrG`oHnKBB=myFFVUdf@&Jx`
      z+@gqxxQ#m`rf<4I$;dZ{@*fFpQO$N%*Di3^c~YR?rZHa;bIa&E1N=ze9_ib-hb7V{
      pHPcBOSvH2X5l)ewqT+l-{WD!k&=&LtfY(Oa9sq{Y3=a(I;a_J**U|t0
      
      literal 0
      HcmV?d00001
      
      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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
      KxJqCje)eC|%*NON
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      trA5i9ZkahiZBkh6(*qgB#>l|PzzlRU0|O(_dR7KD5Q~8wNHQ^S006C;I%5C;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TX)k&5T1oXAZbD_BoJCIy#RJva4Arrrhp<Vi9nW&B<D2kgU`lU%yMMO$m<^R
      z*ZR;Oz>nf|cBR-W$2sxS<eSSkvpb(Q{`}?N{{Y|t?9RX$0;Lc1ANr}nyR^f2Qt2{5
      z52&CO+xF`D-&;xArD6uYBCsg4D-n%56>t9oYYTLlJGN76H9W^Q_gaSI5Fj>zc{7Ro
      zg2rN(Mgw*hI}!pbg<NyTvrS8e&JtKIgsgfa+>;R)Z%{Y>l>T$$WWLp~jF7-;fhVxu
      zHZ3=6g5xh0gI-;A$6Hve8KDvGHLTXA=Q)<)61X&U)x74WV-Z*wdbS)-_8L{$ZfI>=
      zzFrlCzU^+KXV-9=R?F}=?a(*;J)9!*SZ=d!`9^4at~}8qf!QqJ*g+^gw}u|qbFu$i
      z7WNHy8_~LkT6ilh+clkLVDG9k%@VkAVgjZIZ)ArH<21Hgq&YuMqbDdD0@n+DFyYuR
      z3n+&+josvc8ND8(DS;;?XC$RSq&)6am1iVHTS_uK?6IK7+WZ}7X|?<pfy*5x41pE<
      z1Ho!2RhdHI?n#81TJsiVROZzJ0eeRWQ6^FXPp2a}K01LbMb>^h<vqcZn853)NHflX
      z;8Dd%+B9O-@}xF};jMVkWhs?y`UIX$)u;UTB-(X-dWZK#oqlpy+!60lA;)4oK8h8V
      zfi>!5AKOu#$GLk+XL4zm;nb7%HhIQXy;?D5o1aI&`JP7yIpe|+ZX^+JAL5fR;bNo^
      zB%u|tE{jEtX$w191*fh@qr}@#Q>6?wp!<0|@=MiZ52=x+^iaF?@yO`T<@vH2GopRG
      z!rPP1r)^oKRS8@ScqgV}kmBc3nx^LY#tSTyvuFKkg^%UVDHK^vfuJbZQ&&G^kiyBp
      zNMjqPv^SG(kEV1Vza#?prcTbztTh~}cX>F3CcZgz`bi?B_E7hwi689>?+;%rpM4zg
      zlpRb~zP7ca7Ym=f*&rFDZMMZD?6G$2Kl6S0lHyBEK)&f~uny<oJfayyXW#<jiyEFq
      zJg4EW5zlLQ0r90Vyr|(Nj4x|=1@UDK%YLgGmicQMmi@12Sk_<Fu$*UI!;<fshQC4l
      zt%k27zM)}Re^bMf|CWZoL;Ssle?a`BhHoRjqhUG!T@9Du8vc?f!v@G7L_fjL%HD(f
      z%2wbPWgoz=%0A5Fk8=As&-*R6PvEJ_dzQz4&v6x=EB_zxLfMx&ewAAzx0|^&p@ti`
      p)W)}Pu5H*+bvC?K_6<10cpc;J81{0W2E0}IJ_N``AXJRa{{cz?ipl^0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?&u-K(5XQerLzkvomhz|2QV>EtbZJF)PaGB@P(`Ik%W~MN2X52EY>g5pa=eIg
      z;(@quLgK&!@KA_x2p~!k5GnSIJ@fN;K7ao5@e_a{Zgmh4?!Dw!{5sYJ&y+6XLOIUZ
      zahxR2p0@UWX$y8qQRQ314no52|Kt!BA84c9L&Dnj*k{H$n^`<{R-4%<=^qlpy)sh~
      z7O>RCIV=)-V{O!AUK}ZVz(=_vTpE`t=Z9>y_uIwL9qXDfXt4i&i4kFWi%n@xigI2L
      zJp8x1ehC>8C?Tw*Y$j6a<Em0@3HQ&q)p-`9haN=+-3>K9tsQUAHHRjvwU+=L6c
      z+fw~~lW^zn075h^=QdUQ+IME-OsN`O3EjjPW%qKfYbBlPJuzus*3x(p_qfcu*u+i3
      z`b@d0W0SGXTD46rek%Cg?f$8f{`^Kp7=T1Z{{`}kmg0BBN@Ufqckb?Ne!%(nO+X}L
      z<O72@P2jTlx4(s<ixu%C0T<8{h_^0cRiZ^MTyC+CWcJt~eCJ1@p&=o7i=VXM2Q9#r
      fmKNYD)+A#A*P6`hSeH2xo<9q6#)gcc?BDnbbI{6#
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUOHUI~6#j1Clu@4Lr9hE~?NAsI@dXkUC24|?2<d{|&|b=z&P<t3LF2}a8#iv)
      zxbhFU(8Pwsg+IU_WjyzGXeVtGNKDh-bMHOpeBU|Wx&8C^*KYtzcoIc`;prRwM1QLp
      zre5TRt(n}_3%aXo+3e0M&)&2hQ+KmwxisTD-L?z-nd>@Hgc#;7&m#Pzh%ofpPEk8u
      z&T9qR)I<h`uzhNAS`%CTyO$+ya?4$12wA$x8Tz*bj8@XEqPFWghE=4yn4r7&u1xnV
      zOIwE@R}F_3XuHp#6!@WDEx9?pR3(qdnqe94I>TD3BUC#;`$;-Sgf^&}I2Z;M^diBq
      ze${;0{mvPCwhW7JSIq<N?CA$3S*@MdOF7*!#NIm$xkpBY;kiumKeDaH5yTC_{w6~(
      zmCkihH4_S=hzTpHpbK$f-BQpEMOZTmuHm|{<`ncG&JZnfcUwv`m`b<T#n3|zJ3?De
      zONL=`>@0FO`MzjqNt8&<K04dYA8}JEoV5;ZhLM&GLVIyTv!Dp~GS3@_h8O_KK_d{O
      zLr?yYQOVMItkO71q}pi<fx{>Dfr%TH*NuUS@7h%-&o>Pr&zSEmG+)S~m{1~;wW#Qg
      zl3uCsN)$vbbNLHtW?>lcWxsf7NK)&A^bOM|B$T3e91=Rol~j@|X(U%th}LfM??oT|
      z_S0@35sCof>U<^`S~$nR584GVM8DT5H;||M0_Efwrkz^%#t24fM{yFBNlV}cq$Q99
      zFM0_c&KccA=q{<AV@#c|VO-7BFsY8$Fr_9!HB76c;TmR}=o6F~C=#AY=oYcDF@Q4R
      z9%B-YWV2q+*<h1wut~};2sTMEt+JA&m{!R@DW;Wr#&8=ckD*4Zs3WZY#N>A}>P?8q
      z!xIUo)EzuHhBURK-bR1$cx&+cj=}TDbO@gM)`I+@WAFkNy<m|<&<?Ox*pI%*K!dY}
      zJFStyR?JTwBbPe1YPJ>jvoAQ@fW3PK*fU>blkhU`d4yMFYXH_9lDaxyWZ;k-KKeWG
      nMw4NML>Aq--vIaPG~HVES0DZb^8g-5)Q5OPYdzg#tReOff(1$p
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTj$L6#iyu_gds46?eU$g1TESh4_deDiPCU!3W4b?Ax#%)|y_h+XDU#e~Bh;
      zOnmUcH}Ue|i~q)WX4oLY#;~DDJ7>;qzBA`LJ^cOg6M!Ww<&a@`_LA@M1KSIDTX>Nj
      zh=jX5;kM&EU+>9lQ5^8Z33mON6WWc)6_1l7eiEgjE8HA3hDR4o#*h!Zu)+OQFpSq_
      zI@{-A+ulrKFKjPMJ3r{z4RUqDmY;UKJ#uGF27|08RN3T(*O^&lSWv0XTP7WoedvW=
      zvcmADI#_5uire=7gO=?^f&J7Mfe4f3vxPX#v%2$Wn$22+L0hHEFMwgpKnX?>L%3{U
      z7!wRD)e9h~HDuB&26SYlbk#uaNU9jfqabzH4HQve7^!=q*hqtI5pVHrU-c_$algT1
      zPwsn4O}2o+8R!=O!!zoQ9_@!BW-$9!O1Bg8fZ*gMkGEd$N@_T?jm4|fi-k)pam5Z#
      z{iMgEQd=bJ$E=&E*3LG9K{*{$uecedaZ9XuvhK=>srWl93zEEamJ<@#RiAe{qLYKo
      zFgM7M{G0vM%;6UGV~B=XhbCJ_k|rCbR%(}8sae42sN@OlhbUqgm*_h}yU*lXqSdly
      zyBM|R=1tAi%h?YYx5~LLOskylV$w1TU6d`e*u}MX<ek9{`c~9AKj_>q7{ehZ@s;%7
      zFpclHN%kG031!9<p_Gq>+qgrqQkte%iQB>q?h<Ax-6Nd3lJ1jL)?lfca!Qg_<&`As
      zl9gGKhV(L2QR~%X)5^%ETkm1MCE*BaRw;ifSjLe<4;G^|{emY?2mk65oWZO*Vh;1P
      MN+k57!6Gt$0F|^(CjbBd
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc@~6#k~PT_`IQuxL@lOU1U7uD7=uB55GjRCs_i5uc{*ScmKdr?Vo7f5E?^
      zm_Ue{_yhb=#xvV$n_vuthuuAwIp=)mJ7@OiuWvs9JitQ>F^1>6{2hPqNRM}f3>;5r
      z-sYM+wc6&3zPuhNkL#MZ=jMj28$nyFYOU7%&=ZPl(Y6q0czV%%3~BK<WrMq+=#r^!
      z(mJ7*u2Yv?U13P-H?o_%&rpthXKlemK9RoED-0j<=L@X|s^jcGYB}w|bJkqp313%w
      z$XxDsoGq=S->KAgPTP8x0scaRAzmd4$G~vOhK11-Mlfk(3~7dy`~_+i8WyG*W(Jh4
      zD#Z^BZz)XSvZ;|_$o9JLky;I0SG2SY{7Ru=FkP{cK$2myE`6~PdQG9WdD9gP)AgXm
      z-3C|E=zU|{OoO3*E<*pmPBf`Ru<r}SkohMY#Guc;2vOAP@C+D6%^GhX?2(_<NLAu(
      zD3xfFy2D_%#cLkAI$AL5vLp1LMJ5iYlT5zwYG{m`&0V6WGLAfo777d#19lCuHkPo+
      zVCf*@njy6ngsLUhrJ-zY=-v!&Q`w{-C^es&th&706<rIo(Iw+J>q0Zk4`n}nD{+&i
      zIYKu+hPW9ikWQO*i!6**Aw~Xi(ms;USQm;*$FPf~<xD)2$R<xPQT&dnms#rsGsl?y
      z5(QqR_e7NTkdl6)wfc-K*`85qN`X0Cqpy*!W1dPI=>|Op$O1vSMPQ6{8+Rz)NI7~4
      z9K8)li$LAQVjtRL`ZDsRibt6JihB%)q{U!RBqPsJRNd~K>Q|4U6rEZ|*~CUU9QyIa
      Fegj%JQ@{WK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTO>fgc5Ph3Cb{bq7LPMbtJ_97C)F6&Q6{rwl$t{OgIaFM>$;w^ikK$}-`4#*T
      zE=WX39QXnJ5k3xFxFcrWlm-YA5eIw5GdpkI&OCqk{_Z`1+i)!87#=+3&-uP9BOVBu
      zxRFr2#}#)y@A2BmZzpNQl^5-X^|9!B(i8WUN`2W^77T`a|BJ*h8xq)>jC~OYYKMV&
      zhcUi?7&Fz5?ALEGEc??mY%!R3Wh~VS!;{8zrGAnI?%tiQ+e;$%VJIRIt5yc#hCB}3
      z4VB6`Xn9+n*X%GDt2CM!FdVm0#7qf!lx>u7f?=ic&scxrH#-{iq>Tbh?Nx19Fd622
      z8H@Env@Oz2z8wmNil20O*x{+v-=m<R2glH!>h6ErIE}NA?8PD_8WXQXV~BZ_anWn~
      zWl#)7t+CA)yOb}c;@Lo^qDSlAVkiefX-SQ#Am3<`4t^$%q)^&O25DEcrM~mxm^P0T
      zyR4ft*j`LrS3}<Ki@t>h!_qY3VOSVLA6Gsu(jxNoKjmTQy^v?<tpMe+UVfHgwESaq
      z&Ze)Ilq-_0IX8xwb(U^cjcS3t#hg<$hp0GJYl!*RbRdUQ^sW#b@P(j1qKr=z`-}yO
      zJfbE9g3~xdR(p#$OEua%M~|jd!+C0^>ub0`L<^axNotz4jHX4jF5&WsoJ*EbuHd{u
      t<rO&xB+M-MHEV1i92hlbxH7SL{`cZ<6N+=FXDzPc8rf3T`#PG){QzxeB1!-N
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+iuf95IvJRNfTU}-YDt4&_d!~TqsZ>5HE#Fk$RD!%0u6_$r4=IadDg$zJed&
      z0VE<M9{2!03Yf7&n?`=1isYT0owIXh=4^ib{_zvQ18ilHB5a+gGxfoCJk`*SZ+kja
      zbrmYRQaRY`+B<&Wsj%Xmx=Z_hT^}5u=vtVCK`02=c2%=s$6i9(KX2-QFtO_g4f}kv
      zX4iese&uRUH^XOyT+LOj*5SufO&Hm|#BYn6&j$njzU>6MPM{-#S=Vn>+YPJAZ8KuD
      z2N7qKE6?OGzLF}0O!&@eEo~6iqv-!Fj&I65cbZQ4f^bs09yGDo9<Fh9M?Ib{`*M|F
      zY;#w0;GUTnMj?*@Oqv+MZNfmQT$Ph46KQ0`nlX{ZpjdMza>$FdVB!W$vF?}{!cD^P
      zuG7@}ZSPnIhw9jkI_KAvTUCK0`>xZFP7$77tJoe9aLdewj)xQXp9%8>#2J+wJI6}p
      zp347CdYFR_L@Zr#5GFY;Sv3;-@`@71uiSZ|g}l>xeIXzw!xGBB@!LU7?>N$isYG3`
      ziw>D~rO9+6e!7*#W5VinUI(YTd>>fgaSZT7%fOJ?v1Q2QqLt?stvt18<(UD6f=r+H
      z8Ags^l)q!V`-D`4Uba>`7`MLTmbKbJ(OT<Z+L|yrn6--O4(2U37r!zfg}eNn<7A*5
      zr~ZQ+87zu4#wdd#Wid~KSmKyRd<rb{?;fvW3DHz!300xLEFxp-VhP<e)4GpRmz>Qj
      z@mbpXhQ-fp#L1-s&`^}bj03t!2xVC8k;;0((_i|)qlw@ZtR{eq{ou(&@EX<=!1Mj!
      inMAOSjRf#)f6a>t;1vJaN@pHolh-_7L)`i&Nc{zbJ0V{H
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJOTWb?R6vzK3$!1Ml+a$GjZL3yIwwJ9a_>fYNVqqa|A1s0THc5wc!(PH>(+j@%
      z75pX&hJu10zz-#!*^M^DJXpb(oij7%^4s%2^Zmz{ZvdWQOGk>Z-4<u!!g4&(l1^ZG
      zG7={u5|(Wr?hov}AoN6JdmVT6AUKhSjkat?ufkAV>c|jY{$mEhgiuNL9ls|1R&+|3
      zs;OL-EBuya`;lzPu=?9gT>Ns&MyF19b&IeW`~NLHr^;?Sz7y>bj>|U-tp#DrI)C1@
      zP6E$*?MhGjQFVxR*A?Av)wU~jLS~n{lmmksxP@FEX%r0PQ6#kgOWC(WAc;EFN?pek
      zq4-BX^C)3j(abPtnRylHoB<74Wi1%c6YHLV`&c66&V<{ON0%K*Ae%5*b9{Nw^BOWd
      z5)GG6OSPaW+`0%IwI3X2ltzS|8?||KzF09WIQL~pm>#PD<26<16TIS39}+>h11*`%
      z>d=_Yl`F%Zf!7hCLg#YV?$_g%e-re=rrdMX&n}F87@Mlk1jF_jHZCo@IyMRGH+dY~
      z+>r-{71kup&ozyVl8CL05(p?1)NI8!#A@DVKZAE4_)d9Q=2{<j%(eB6G+klR{EE`?
      zbmj_o`<P8OTD+Mz3oCsre&Uc6miarwWkBc9sEY}Tut+_W>5M^u7wQfc9^fIb%6f!V
      zj#JiSJc&Uq_E};`b*8hWG1ya-2Y42*#CMwc8M7bRNQ!3FA-#)>7>UE62%$1Icz!ha
      W{g~hs%(%oF)_KiyV!{S<rG5gBAwZ-6
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkT~8BH5Ixgx$|40_pdbQ@LYKmV7)`_wV<WLzK!miW@xi6N)+PHv+AZKOG5i8w
      zHL)@A!5`os^36DRyTOh0K}>wPckb-W+%xCQ-S0oYegm+AJ4r+c>j%b>aiW{H(GaGq
      z+rl&IhG*!-;`U}>Z@5j{@QU`KHM`~3#rFPzsCkdvwo@1NBw~bn|5$^NvQ4LKSZzTV
      zDak6jWjGDJ;M#{q)7ZDfnv5|{f*6Ivi%!jIx6C6>p(;V)uOU~$duz64mkCRLxxa0U
      zuSq;G9n)JUyq~{VYRPRj^yAf<UUzN%u_bKbcx&NiETh#5JGumhJ)wTXiN9H>R&!-S
      ztibg5fiR??A4(cgTvjlED};mp0=gPP6QItOC4dnHaU`TQrXbn1#ucQ{Cw*5Hq`THN
      z1yh(N^c_i&_ud^!)ry3{lIe)8w!JT!ds1e?aLKJ1R@rEp@*Fs0Qcc3c3kh<5NLk&u
      zd+dlNLG7s)1FT7vx&VhlT^D@uc+BeJjnTHeU=W8xAptRj{)X^2&*ph-J{JlKDI5fz
      z4Rw0gZ8vLT!<00P_k4Ft@@X)LqQg!2kVGqq+l2f@ULMcQx%Z1{)+@^YgE(SRQnq4J
      zP=9AR{hh@GG8s8@e2#L)050)5$fqA1E2ApfLI)XbA-@>S#=c-!%f>rUwQQn;QB6&D
      zkk!;w2NP=Y6ys{@6pEI))WPHjOlcVoVq+w5r~Ok(;{ubPxO4<Fyx!$YL9Y;}A_nOx
      zRC<O9Dq)5;F-Kd-({rrQ4(`(~3RJ-pdWjvX;yUNP;K^i&xPe*TrF9dxxURJ3Fz*vk
      zK@J)>FMX1TxNk`+BpDSs+f0nKBpoSke*yV`1f6%{Z*lE2)Q@a*At$7hUi%P~Za@Hm
      cu-G$s^v`6`BRPU4{|X(;yr=!USFno6FVj_R5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgrOK%cU6#fpcDRe9kMWx~!l~)<6Mi-bS4QUe++AeHZ)YS#9IAk7mm}#wRe~=~;
      zqYHn4KgxLSKx&OFS{E*6?z!jro$s9c<L9^U0M^me5Fu=i#gTYtn6?;6(=}}Ai=ps^
      z(dq2%%;jy@vxVQW53SO!JCu9<u^jkYPGCz<_;RQrMtJ^@X$Tp4nyDwOKu%cIRoRTd
      zH!Y)UPW%=j;lD8_r6!>f+Rh7DMZPc{)88PxFJCOQ>v|*O_{qQ+y0)=pNn1L8Ylh4c
      z&d6w6VlrtRoYBmfnfv@kU+EEIZDuYB!X+IVmQsi!ts{vHVf?>vReB0QPDdOGC0)^x
      z$5le|Nb$aZawrMZA*8#eBX<M4FTH)yw^*C&x&vYLglDSzTp3d%A+#^V>cS1;DaGAm
      zM|y<(Le?4MK(Rf;m_0-JYzTxUPreOIPY$_-1A;!3uSH<_;YKO^;X;LDn-7WG9Lduy
      zHeH8X$(Jjy{`OqPLzFc<BCPzmmO3gZ5j5Z3^gMAwNWF9eZy>i##o6k@7t~NG7+=TX
      zc0=%TqM<>kE5mu$nrFA@CE^ZGHOh}Wf|wdIkjbcR3pLCkQfy!5+XuF3d={&<DfDWs
      zz7{RSzhI?WNKBEfW-?P;{uD-C<A08`fgU4H2GZ0-p4M@l^&6@JiYQ=}PbJ;pFA_>O
      zaVtbp#BD~!@oc$^dyGm+3R{A)+(&7S=qaDXwp8^qvS0Cl@R4s3sQSti^en8Y&%EX}
      SBdCU6HPlsXm}3nFBEJB#A4=8$
      
      literal 0
      HcmV?d00001
      
      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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
      GvcCW>f#oOw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-%}e^7(F-84TKeFD2S~;P_c#tyDim<q#~3bHZ}w$EsFKmlH7)6HoMGbq1Z<s
      z9iM!2{1<%CnU;?2jMf(){G%Mt-Q5YxLJKoKB-y+7e&;*i`ObIq&%clU0B{K#X`}?M
      zY??dfu3<IJhO}IxDSfkU`leATEiXmS6}K)&xvrQ^SyziCb1RKbfqoTh*rwAkme)6B
      z%}+xU7<Rpearbh~sJl%g9wTtd^nI@-Fi;L6w|&btuA8k50u}`{f5U2xUKGd$+sBhq
      zF;^|e@}~u+PaJea?y*&Y&N)`r4S_x#-N<CnfzvvAkQM02jjgJkGdj}f;)$~5$jWwe
      zU3xdobz2H#%WloIS541S>*!^tsz+e*gw-S^W_5Z)`hkKaUp58Khc$+ZSAEZN8pW~l
      z0l8U2F@qQJavCoQoIWJ8j#n_kiU^#*3p+@>WK)Z2yvAN9(@-&ohETQdM?|E^yp?30
      zj6aIGKxSdLCbxXcby{hRCCoIxywu)KqaZM&GC$iVi>}u+{ZezwR{F**JxeckBagRq
      zT!2Ayx_2Gv2@D=kbitNQ>G;JiToOPAIb2q*cw1m7S3O+0GD;p-bi9sH)rUzP?_r99
      zZ*5cX$#?@J!DARtZvg>JuMzkxK3uBX?1P#rfolQM|51ZjeV%N(JF;y$Rl}@~YsxfQ
      zxW|N6V8_8+=_&48)bSy%Gh)ZIw<Tv_I2ZXU82LHZws~8y$;BRggmM};I9&T)-QU--
      zgo;4gcV|7%{Fcqhjom)17@KD~b-61bN&?+9cUd|Oe<K*(lB(gRj$2qE^_F#yp6!hf
      zR;8NgOyuHNo@Wi4z?zO1aF(W51JT+tYx35L;$f>xK}pGk@p-6JGrUc{((wk)b4U}C
      zhr6bZ4-{sm>TY{AxoD|t=1juE7nEkqTXN{!IooWtB**3sC;RxpP!~D-ow(OALS`NO
      zoI;BK61?t!{(f~Ka;5IT9_ajjj;k9y(ZS!oeBl9l^AFLVAAf*>-}owpL4NlJ+be`x
      zX6Ppv;=7>$whzx^m@5VcDN=-_f)Vfx^j{yqi@dpP$5ul~w)h^p}vuogqp+i1bq
      zabGB9dHzkF?BpsJ5dMMBittq7FXVqhq3{IxrSbb1{~LXekz4D}WG_C%#GfiHU%xZH
      zhj&$KwWoz!Z5C&t@!2H%8U>LUz#ZPK4H(!An2m&)+RUa<#8om;4By8zxe3+ZLmZQ}
      z&m2*^cTDYbm?yew(IWAcl37*K9u|HFZFz3u2+Vsi%xs%=mYw^USc2VKi7+REHP97e
      zR)1-05_aah07;pIXCfqlReT!7&y$hrf|jSgpC$YHeM~*A%|pZI7!43L+~$)~?~5Zk
      zJQdZe<!PHQlh{ATYK&utoe}t&9Fv|o!1kLY;?E~!o5FgaQVn(fs^J&(OarO^08`lz
      AYXATM
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLU2hUW6g?LxTb8xb^5F++t3~8PyZu04FeZk?gaq4%8WNw(0uz{KS(0VZ>d!H0
      z`eKYGR#Huj&;BUmon;lmONkG=vv=-2XU@5I_Sf%kKLG6Dk%kaq_sDu}9h<Umb%h+5
      zec@Rh%d^aS{or}<y+7!P9LH*H$f2hpLP#i_X<JU$JZK$>Ht$9Wse#)y-|V%`&Y*Ap
      zttTwEd(!T>!eLy)2aY^xn~JPTh<ZIa%xx12e(qv13iDVx(tAQEFAOR+36UCmh=Fj~
      zKn%K$Fjfu3u|^0NicJkELUJnbsq0#Al}a5+tSa0U0~(eY-;j>jAN5<pePOk1L0D@H
      z+Lqn4T&dz<Goq{!DhnE$?J}E;NKf<$=|a8Om~U(~j&<DDut8Xv3RYST+`%S;hw>fE
      zVq0}pde=Z6_c-nfFQA;CU{ynr2Q+^YVM#h2aZI2(A;$QIaJpWP@M_`S|BwG-Q|E@8
      zYCHx(KOBtQws<C0uTyikb4ytv7<I=HZq2raLow7)A>>u!;tNHH&)jcp@VQ}rmJs4U
      zh35?<66(Hi6yZG<#Mw(6)woX8q)X*9tdzz`l)fYRa*XsDGM_mS!c~6je$fe2oZ=eC
      z3eF&0N0wK@4crU}54lniu4hYMkU7UK!h0muclI2)5PqU?%D>+yE}2kAeX5T>ZDs-u
      zXqf~hlsQkhkImqKiXXG2fBYZjxW3Lv)F)gCu;&K>L!M6wGbUOpkFhm1IZ<-rqm_ja
      Sw*B`Gc6n8^B<$fKLVo~Z-ve|2
      
      literal 0
      HcmV?d00001
      
      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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
      FKLIa48l?aL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTc^F5dKbEwig$Hauq}cMaptnFI9meY73YqMUgg;;DgzgwH~wGZFaW^&-&~y
      z@x{c3#6*7pKgu|>t)=3NFK6bPGc#wtZ_e4T?>_<DMJ|evz`}du$T-$z&8V8v(d$;D
      zDs4|M*Xnw9dneD~eOLPCj^P@$C?W!re^*>c5s3OueZ%=+3y1@Ouv;w)Bnw=mTZUcL
      zi@q!EYDOU9TIO=gqy^$->A#hxb?6Bw+5DT`=UM8I7wFA7w&xqRzh_ttGfcCC9^s6_
      z<}yRkfoX<BN~POuzO<F!ENm1x7N(wS(w6=@O_ZA3qgQjzp_!mg<0?ilAuyb3&Dijz
      zr5BuvVVN0D>?=sye9@?tO}Au}EtARc?VjOE#_eFle<x}3rJ%|G>X}I(jPV%MI1O@B
      zMHI0Z`Wf6-5oeHOFsCBHV2Htjic5&Gx1^#63VU}{+NVO3RSY}WR?ex_UDNZ-!zk_x
      z^j}n;iyo+Wh(~l;X(vm^E}hg(Vlnvo-+gh(ii%alNRtaCq^=bx*4cEoiUJAG^h<w!
      zMI?2=y2ho~3DHXEt0am}!>yQGl0_c<_xCL^3rx`*ywW&AOrJckZh<Aq0!wNImV_cZ
      z1{J+jb(#DS`Uv-T;Q_+QE<8whs0$AxLbW3prE`orq^XA>t7zgBSH1>4uhN;II8dgU
      zDwrfsZDrvat`p)86YUOXG=Gq*&7b0imYiy0T1(z)Vn$2OHj&bjS`+hHxQRtA(uA%>
      zf8bsdY3&=*VLGOZ>_zC93A`TiQh}$CH(%8FI!qPI=hLkQ>}{IvC4HYA4B!<p+NDVy
      zOrwrjxX|HY1wL|UU>ir+$1x0?1Z+my>{@J?X9jD;N8mBm+q~8(hj}U51dV?Fc1xL$
      v^!BH&UP@aT$`AI)y`JD{yO&OuRc3CBU&sl8MOK2~=PrSJIs!inva-Jcu9xFL
      
      literal 0
      HcmV?d00001
      
      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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
      Wnh{|*8U@KMRoQ=Lp@qRY(E4w&d!gL`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^%TE(g6vn?x3sZ*jsv@F@BZ{`umij_tFeU`>Nqk{Q)YVXKhauA`PNzf`K6b{n
      zu63b_8y1>~B$`xLn7H@fF`hFs)Iv#+%{_PKp7XoseCN#k`t!94;1td)XcEXS7)!?E
      zoK-YTX_az|cEz-ua&BQ!nz`$@C$C)NgS*n0yKT5eQ9)Foe{;xY4*})TJ!96EWr5_w
      zsm-np^gF)ms6gk$_|;0GP&Ay4;NcyE>jM}uwiVHG(Q+*Bl0YPxnh}VOm*%932s+|W
      z(MAzdmLqRginG%7Zxu*PmGXu?W4IQV5Wb9h^A=T;+o_n%LQqC=!wneaY3cb{JZOc$
      zzBroELf4n2HzD(s)JDxO{#&u#iL*QJ)Qo}y0)yPUoNYK}?wV~&)3C=}vr?3fH~Ba(
      z7d@-w#LzF$?o@1BGr}_!eHdVU4-51peaQmGwC7rmIhvY@;fTP%hQBs%lr^tZ(x~;z
      znzSWfP>$iKz);v=&Esa!4X&|V*5<52LAsjdXts1rZ(hX^jw@)1;{=id&3U`zNP)e{
      zRNdvbW*21M8&#pRZ;ZQ;i6h(%$I*(IKzGGy=!j}cFBnpq06m%7QOVjwCn&OEs89X}
      zVar%Er(v?y=~Bhb%gdHcrS>*{r^DPk9HBBJ^sPtG#1lumCa&4HR54kFJm^!PHBL`w
      z$O^K}`Wo6l`EH%GsuTuHAc{$J(Jmf1p&JQ$64-;iv@&3XECbr~&*)i4b95!LLXS;g
      zOpAYXs}9jtL-b;Qi1<y}M#)>I*U^?)hm!q?_HXFBpE$UNL*LU?<sCXRytZbm%KPw4
      z<FiaPTYVe87~~gv`U{Tzz|bms^voBeen4METF-85v;S%wCK2dTs-l2>n8zS2B(Z?g
      zuyFxJjH8U3@Ngd$%wfqdLJtxRi{NM$nd_In%&eN^(V~**_feDiG6}+7UAo}RXi4)@
      zmrcSaKOx>zQvVsr_q<NFu9|Eo={FuIKTejJeXRUXsBAu<olT&@M>?$U!^=8gUk!NL
      zp8;;=jXGdD0Hy;ViONd;19tdB_6i+%O>KO&E%@xVVCpSrnhn5VU$%nZ5cn;D-)svW
      I@#{MG7b^IPJOBUy
      
      literal 0
      HcmV?d00001
      
      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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
      YJ$L7s8B;*43^-C(rtT>+U4y6p1}(rz6951J
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0X;Tze6g>|ITgS!$Squn@E1TNUU|c|4Fu>@rgw-WRo0)cK7`mID9)xUWGe07K
      zz^{o`AqiEM-%^$Ql>CPz=XLi$GYl2Bx&8Xych0@<p8NRopWojBxPYG&R0y=p>&yCz
      zW-jVk!?d-$V`|Cd=(v$J^Pan^ASQ5pr^|%lE}Lni=q6B;F`ns#oY${=M%H#sBQH>!
      zl7U*mGjrOIo}ZgAydHu5rj_?}D_zcGSa;~LuQ#1DEz|20*wfxIEfDLsGlqgH!tB^F
      z4iyO%)rbr1?e)X<L*S5#O6*low<CraanvFqy$-8TuunmwK<myVld>k`hMqCp3CEN`
      zM^rSUg|zfcMxeeuNHC{cS#5N7-bi~r9S;>8+kLkg*Yy0|6dV^gwF~B?t6TXrbC$RY
      zP70jf#WQI+1#iN04SmsfJuPr%7uV5(7xfiLq)f{gDJ;$!?xa4OGg!2goz`>Hx@*ek
      z;$qhD?gWRM3{Q?N(ca<bzH8(3#L<Ow3eE~tOG27oq{%rl&8RpJO`s}Wa9zXlf<=M4
      zaL=f#zs&^|7x9t6K{5%P2VJ}12sD<7@Lw^k7ME0fjLSSMhOsQ=4r}N6#n}}J8GTJf
      z4|*BRq6u6n6TLGys7b&-><59$Y(VyK#6OaS>~}X*o4~REt*VOKD*ADUVX~EU&vpeG
      ziiPmCmJHWfg*_OM+8AW3hZ$`5=$KZJ6llv@1#NrZIPB@Mk-<_849V&Uq*M%Jgu4dR
      z*{H!l7<27qlYP63IEXe@7A<Q&(*~0RrD&r_D3~Z4F}vt!w};0{BgSO}M@E^9q7j=q
      zjAKe>^Z<_(JS_IA{@l|hZ9BJMdMZA{W6qE*5ri)y{Tgv+$pxOMcq+$HYq2=D94BX{
      zb<eb|{+yoAJGwVVxpG9tyg4&3rIJ>W0VP;Zpnlu(j1|v!P1$n%l(u^0m5-QJF(+H1
      zN=9!^-~*UPPQe0&?Mram(W_X5MFJL)BDq9onF4Aov87%gH4Yb^0&;JbO_MI>qlFzX
      zpr_fAt11duW^~TB7Ya_XEg01oRg%ABPed5e#6mS~W8I@*rTpAXj+V5b%>D}%U*anP
      zWlqnJ_=)mD;W6*cg=LM3GKwt_=Xq`3WOV_>?Nq41&}WqmQksOk>6}mvOglbd7u>Wl
      zV9GgL9l2r8%lh&*=A_}RT!AKeZ_$d&n~9$>{@u?ffdhQ{h92_k_6F1kZ*lMqYBo?y
      ztNsldUZdvF2Wx1Wk;c)Y(ONW46pd5T_?5d<;0*ts@Nq5^<0|TK9WChN`VDBfi7U9p
      z?@MU&y@3w2^EcqKM8=X$$2vOK@Zr7JXy9k}dx%umAE?`aAg?Pax!kpet214{Y(h5q
      zDGoBlAsoV8G$4heoG5J=^Pw8Ju|i_kNd@#cOgc9STOsfH5dJ0M1>fH2WV&m(^%kFW
      zZeWO*ch_)_<|xfi19P0_WMEFwoT0gn`!l5bd1)P{2yh?uoCvLWNMSzWCGr^8@Pt&J
      z`sCCA7CI?`Hnkp7dPjnlTpRK$GMnQ5&xT*&;@RI|3cQESpOJH2>sY!Ldxe_L##s2`
      zISI)JHqy`k{!Mq^_-l(>Cow>cD=_(Q$N~~nZ!;{Mgu}C1LN`DAxIT!y&#^n;5pq;`
      lhF`OH1Y>*g0^gEnGt2uOzGo3n;s}1=T8!_1BuWKd{s+_{tRDaX
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~8B16g|_HZYiaF6;b@+OK1zaF+P}BLSjG@5&}Z8iBD!&ChL&xF3xTn_yIop
      z?BCEtLZXSjY2uGE-kDvY&?Xvv*qxob=bm%!oxA(v=cg|K?&Ge76vNyBZ}THtHn}Tg
      zV26j&USHp;3)Pm6c&383+!xA1hGAGEZIAn|y|s5BoXA3!;ZAq{j&Nld3B~t3kq|ND
      z+rr-u)Fy8VhS804u6m@T@75TswosuAe1`0@^kuZduu$#>c1J1=hRkZPFY-vESU?^_
      z4C!*EVPS+}=3Hvs^MuR2$I5Lrg&#dRa>QXoig^s9*bjzM0Ty!l=}H0p$T19UNMCHW
      zntMX+>Uy;Iz~NqlE2;NMFcZC!A;Y{e_or@Bt;N8PyQH`_!0<4x^kQn#yaah%>nMHI
      z<6&6SmG{@B>+`6k$lIfTVOg%O7^0jq=cbMsW_#3e*$hL@;gN6yoiNg6jaqoIQOAeB
      zn^n3D)(&XC0)I^;9+IvMx*}?H%uT6W>Bv2soV<Z0!&9Wqng|^w&DqkSBtz7Sq-PsX
      zqSl+H9<-Dro=Sbp6Ww3IJv~X8X_}5SU42L)qsN6lri>mIS}ls_F+leM?OqciP3!II
      zDFzq6!CLx`fzKFzaf;Ee)x{HxRhLdM{(&GVOwfH2S-Ni#-8K>IpoCpq!*kq116S$I
      zR7^*)N!k&yk!R*f8%P=Xp+x=xt@>S`mOmHC6AXAsBHWM`Vo*ZLa2+=Yag#7964rHW
      z)1~WRnj~$UW=&Gq;fkHPV&rSeyl0rk4AIO|UM!;{a}=Tf#^1}l`45?SERdM4!lpHD
      m$4894r$F5ExRSR$TT$+rJbpR(U3W75E-R>#2*aY0TKWYivnCDz
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc@~6#k~&QYZ_^#RA?DkaoGO#21qid}t)r5HP9KgeRxlNg2}a*4=G`kNyFF
      zi4U46BtG~9{87d;vrAbEQQ|{8GiT1_`_6Y}fByRZ1HdLWvq&*4AM+kRv1OY#h4k#8
      zBkhXXSKLlFtcJee?P^D6VK6LR;ab_R3cn{E@yhplvLSqioK&IZ77qf3$z2s>x47H1
      zwW-7~Qk6}Yhh1MV%naUdS=;0?v?W~`ZZo6{#TtWA_8KCGG{#JfAjdGVD_ybIZP$hW
      zn%7&DXlmDUc&o;Jsm`&{2#+LzSkXoPNs{V5EhO*|d+9byf3-xM6vonjg(|wmnxb}7
      zQOgt9Yvn1{M!+y<B7-4nc~7_v&)?&1-HD5q#}pW{J>dt^a~bk~HtK!nyjf#S5o*<A
      z>81<C1od<A@|UfVWD^c|4+2r<&XL%WN)poUkYU^vq7fv_^9~JFm>jT*8-(0-DCA|5
      z{C@pdIAQ59LP5i+(v~7n2{HAIUK&~wGxz+&5uK1&2U)BzOzXZ-p2~jzW<a;N<aKN0
      zNCV5n11zZBnu$d$F=X@uP$PLEM4XsFRlTn7#2uQu;;C(@AY*~@rRkZ{>??_B&C)4_
      zVOkCK2FNl>mM63_S~J!e%rDwyoc?p<3ha>U3rx_?jGS--lXRjdh$-@jQcmkcE|oKs
      zr?t9vh8b)98)j9$G*rHE4d#G=)X4jd&S^#daZXiZ9=CKI6Srxn5a{`&*gJZ!fGW!{
      zSs3o(ULV7Kjlm{sMCL1IKa+Dx7gy|ow^tIO*3+%(#9ADjN`D%Ne3yt!^;_`p8j&9^
      zN78qYM5bEHRK=k65&afXAgmV_h36UFsuqk|tJW!s>=dhmls@Y8`N*x`$5E_fLzA&J
      Hk;lIQnkhN*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~8B16g|@}6xy|w4~yUjA_(pBu@YZQO7MY5Y$VjAQWKsWwv#fX-L1RZ1|R(a
      z{u3WGQAm972l%6mcV?GTXcLJK?abUc_ug~vy|cgn{QL!A6Pqa{7?w|Xm!I0Q#T!C;
      zcF>k~S?w#Gu-yr(p)Yu=+LkF83`;|><w{lfUFnE7zSos?;WK1B?Yq<DLBKGvr@ZVY
      zcN?}gl^DjWvf=Wu;|qrA>-SsMHbF+Wq$|U1hGd~wV=#8Sx=165TPDVlX2|VHSL}CM
      zN5X&0kD3%{a?f*kv&Ma?&au%5k0p^P=p_G^Nr|6F*oZLcmu{ofM{&>+iBcp>|K+Om
      z7Hdk|9i=VLuyUg~#o9O+?wT0EC_}m{+`8xQ^Oi2fWzA#445_a01L?U8`Ky)s*uJP%
      zwjsi(@p1E}3dKI{7wyXrTBD}r9PS<jVuw4&VppoBQ1=cQvaS&IpwB$#&|HOAhOF!c
      zA$J|}dEGC+a&#h`uyh#Fpb1rROA)KSe(E_LoLuT>`sJx3+93%KQdnV_(xst5<x1~{
      zVQWav8z)IqA1o7(u%LEpCKj<o6C6DQHJF#(h~*His@L(IxJt9bp4^7=G8QOelHMyl
      z0o7<)Q*=sTj8;QE1+rww@{CqS>xgv@^P7fb=|4?SV3(k;kfWU$fp8lWbfTAtNkT*+
      zr*t5f(isYAt*)J8+FJjC85J)H6)&sF91xKjq2KA4R)mjZsvNVJ(|JtXqn%=)r<8o}
      z>%AhXEMsJ0cz}mJ4)dCWP1Z=vcg%bxa6%_n>Vfw|g;4S7R#jpxc1|R}T=V?U=b7l0
      z;PDMSKMi`)_mJ95xt>rKgVtsGEuuhNFD;7C3%XS$$XKh^8H(%-tJfuc*5UIJtXIbj
      M*0G_**jmWbzwNL-g8%>k
      
      literal 0
      HcmV?d00001
      
      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
      zcmcguZF3q`6n<_4ENm8%kPzKgB1xJwkfyYaR%>EyN)kl_iGff_)wsYGHv<bUOOpN-
      ze}f-%Y?B!stDkhnALV%NT?&*y#t#{pfjyji&U4TE*}wn!<t2bSC`!1(5INM2w3E0|
      z)yle2i#O^<Jjv-@T`TEUrfx`ZG0a~m_1H3OA<HnH$*!f>*LK$rlIfkj>_Ilav%wI2
      zvc&=770oQi6BVt|SYeP2v);6`&+2-EA#nT(Bdt|AW4v1>V_Sw<CLQl;v0|8p{eWR;
      zA(~@wC2A#ILV#hU=LQL*40Anp+m^0X9S4*Ab^<1b4`iYOH#`KhWte)pSuN;RRx4C=
      zI@zifwMtI24F12x^sEXqWDMaA1tAQRDfYJp89pOiy(pq9j4ds61*GNOc}|}Y{5RIc
      zP)-8+Anl*mJJ0E(*N1h9P|+NZ@>@L0VaB}wcjPY7lS_n(<|MpL#nvhMWTm2)waS`R
      zZdP^E-Z&}hb=#<!UQ9F0c6u#R)t*JnnjI<V5wlsTL~2$<uh#8nGNv%gqkNqq)F;Z(
      z9Pg8P1rj`*T2SDHkNWsXH%m2(_bqRhjz#URm5y|)L8dUcO{crPjpoy*#tCn9Un-f}
      zXib3;>PDJ6qCg$I>y2i;UbE~*#@5V|W|f?dP3g8)(rj(BW>qztf$cL)nVM}J>HP#8
      ztl7Z=T{lkYC$^;xLLq}^2MV-NxKyv<VygDq9d=CWbLN;lGw{597eiPWGysE7q(SFx
      z3=#?yHFI4r(lix=v8M#K3x|5qUWrne<#uH?Bz#1JS|prSM{>J;!Z1;!RNAdAk~ABX
      zy&{!Icp)kZq%$77md%PxRh3Zi5bF%_?h1T${RO%VlV#l&Xzg{xV@R%r7NUJ76oa2D
      zbnT#t*X2ZXXy*(YjqPJ|S5zidnPXRf2cr94Y>_2S8TWP?Z<@4%ZNzBJ)GN)hVYV|M
      z<8x#r>@tjY8pv^5K^A+o`p8-#P9bkav3sA&@Z+(9FOX-DNYtqxa_M|S%6NjWBz*bW
      zT~4zq_!_GW9{szfR-w>&98VaoT^M>fQ)^m9ebeCka=a_0^!{**`{SA>--qb6V+bnW
      zvqZW091%~NBJ}jpG?6h(ati%>m(Kae@A?h?{7`Tt^E1YNBE}Vr({Dh4y+caNBz^}I
      z;)H|JDsDk6(~}Y39XrEhM^z>W;69123N^(M!kc6nhz{W@{gMqVg)wniBDQ#QNp-1i
      z)f4imvO26Psy`G^N7PYuObwplnkxMXpDMll9{yi3l@CVFF!Os%m0n;jrg~rCM(6sw
      z!o3u^nkFx{5yTEADfw5ii)qUAJoa!CIozXEt|E^|*cWF0;h54g6G$M6m@qwoMWVP<
      z3DWe5$Rw~t6c1qnw}^5JDo%1d<OvaaNl-laUP0ZaIPyd!aF^s{K`j$CEGQmpo|pus
      z#z(crse7am5Y&4lHzKI_i5eBueUcj!)CWWb=`C`FJYx8ecrJQApzlMhk>wo@zu`7<
      zc-}lQc8W(o66NIFBe;dGq<NfZ5HgJnI_=;vY+#c(94}5!rw*RuMlal97o59Y10Um)
      zKFV{w%C)}ANqpK;&QmUUUc!riwF=`iQ5esWT0F(hDRQUS|Do-mQ`9yEr%7Qw7T}W(
      RKs)VW9N-(_kS6pB{{l`O0O<e#
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TT22#6#hmxx3-IAmUekah*FD|=+Q0@K_H1mian3(U=unkv+L5|>PhIKAJC7A
      z&a6UZ1-+cxob#Q_H*fDRuK<p*Wh23``^Y2y<jOwp3hBGSK)O|9H#Jv*=XZo|45SU~
      z_sr@|L+D6);#T{Sq-2KFsZ=sNXGj)HEe7k7FdQT?w}2U>7}7PVM19zA3*F@Ho?yt-
      ze2@29Tub9mf>!t-1BSiYf99(&>=)xqx5ri2ZG>8?ZsljB)H0(in^Be+oJgpSuj{-Y
      zPhmQJt7otyp#$kFhV8Bh?*upZ_`dPDI$JFL>^82t*E0O0D(`8*!!Nh4svzXbqj3ro
      zz)xzXXrY~*hCkGvxRU0Ixv6)e?Z|9o6+m1N<DjK2!vXm=c_*ZqiIzv0eI_FThonOq
      zIHS}H%#*b+P9nWX9y6CCX#lDOYk=+Y!Qlw$X^3m;REr^Y#%U7>D!>XdF|3VMvJ&*W
      UvRH%pW$P22Lq2Y|K{A2O56bSQ5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV|&k6xi7{$-^Z_JP^y@0~P%}OB~vQo;F{hjG+x*GTD&JeF=;Q>69+!>T&WqJC3
      z{W|Bn-7i-F1JoT97}{HL6elisA|k1IvX^{KkxWuDB8bT+bCe-DC^0lMl*d9vd=+dd
      zOc@$lJ!vCSsTISpv-}pmBrozj&XK2R7K<bqcQ*{KFC!(=gCT~|KbA>vnv0rR&B^2&
      t-mN@eA52IK8C!Yl$G(16y28Lvw7&rgc5WFJo1HA7YP0*9?ZwM4wFgJuU@QOt
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&rcIU6vw~QE-aJ<N}>2$!M4yY%C>mKXbi!G1WO`90$$v1C+(2!ZnHaW>c8UA
      zGY3sT5=r3he_%X#(RlH1FuvK=TDjn1ww;;xKHu+~_dfmlcm|+^2RdR5nFG6RcP!Dc
      zYh3tN*c8?_58A@v&v{LRGI*UW>ChOGD$sImuV!sk4!9$A3^Syn)0PyjwIO+6OFv*3
      z5?+;e7}y5Gu&j$PTO^^)OO;kB{GsrKe8jMj|Bv{>E`zq_SNSLyCJl@tkw6?%2F8$L
      zi02Et>So4(juDF36do_P8WkSAuq!Sn`<uRFySsKE)V_D9Da#DG%MD~pWLdA<VVQSi
      zq_;nco4Bpx7Q_6d^%}T?IfjH|OJ4H>!AUjsGLr2+^qOmjAxUUn#GlC*1}?i@SWQrY
      zSp(N_UB?2$+~0<j{q2@hUw3(fdvd+w@TL^Lmp~3v^w0rs_-(GkWLS)HqSo$sVXN8n
      z1IepfP1R4z7)ULs)Wo*m3LO4as27~MFfGf9#b9iB9uFe_s;bF#&vE@wc(rF-*8QqM
      z^S8n<UgL6Yp!nH81^zQot0+>9aau!&(dbeyfn-v3n|2zlF&K0^PXC@zgo>FomyR)E
      zo*-$)jxqh7j$%mDcY;8OP@f6#1+%nM$&`XCxEkHjTlR2|BUvDA9$}i+#1U?sY1OwF
      z(hlQ?6x@XlM}V&buyh|bkGnnC4tZ5V8S?`&Z!mU>+};Tm&wE^Rk2JJb`($_JT_4@`
      z`;ChJP7Z$zNM!mFd8B$0D`ZGXjGUrC?4|QQr)%-&K>kQCKaP7*)O{?|uNo&s05L84
      IYBbNq-$wK8IsgCw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O-~b16g}@vVW1ssEui=<QcAyIpvb~h-4Hbm9~v+$*gd8%<&j~A%nXhG6#sxL
      zHb#lTg>mJ=tt*WhHU19cebXjlCDvr#ysvxDJ@?F+cRydf1~7*O6P#gUN3_HvTkVRb
      zRK6YVDSKT8E#=5H*;HW^JkC{3Bp5O}&~}B_wC`{2NGCGU&oC07?nlbC7yaEm5s1hS
      z82Y1a73O9Mez_-pjbWfA+??ZkAwxP&uw%p(u}7EvH<hQN+YAeZ{{ZVsFK#d-7X5}C
      z1Yuh+F`!qcEes-=gn?lTDU2`}1s$4RR-Rnl-`$eIL$T#bhU~KM2zNsSO7A;|3EdvU
      zWN$vXDs^Bwu{4A>)o$UqjI}o7W5U*o^%O4RvWZI!L%#(kIV@bkRU+Gz5kvk2u;Sln
      zCa(Pfvo50)#*woyi9Bgfx<^83?MF`n++^VXoED<n0Mr@xs|>8`vrz%MO0N6+fg|rK
      zt>Q?Rr)D%3gH`uD87#UY45bFS<2kM$DzCXBqiw%og6fX<G?0aPTxS?2Q95NF1b$03
      zWI&i}$9sw^wFUpT<%xA9gW6_C&e)B0I??W~VU`?Z(C7otWVEG#Oja9;{wq!+1&eNn
      zXmyMB2F>YG`4Fc{l|y7oFOhu~2aeJ^87Gih{5{UlUMEsG&SH#ahI2UIfqG7n2|8OU
      zSDvEJI4He9rhJ489B(jA&+7DBq^B!KnBaJVJ{||qwkv>A+5w3J<AC5eG>ts52me56
      zA7S!O7~`Lj=U-6ZUvYzf!#(~Tb^ar!SZdSgP$WW_LLsKTgd(jtQJ+T%W$N5OC9W}z
      T8Jd$6rP~9tu<4y3C9A&xh*u%)
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivJqp4=5QX3PvoTS@LJuHV#Ky(iQV;||(9UiRW7rTA*^NQ3X5j%ml(@z&jm^x!
      zd-LX-*Zc7VFh}1*gAgXFR5z*5DrTKad(m>wrqmJdIM%i>_sL491se}7!r<$csmfxx
      zJtiC#1aYcl!YJI-)y4Ec2=@8aMC?+SFsy~ozAJ>@I?LEBQ)Mk%4_(6eFPA(0BNGHd
      a)BOaHV{AjXsR6I59r&&X&f!SV6aEL7s6+Yy
      
      literal 0
      HcmV?d00001
      
      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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
      CCFO?z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{&oZK(^`rT7V0{J^##1;4RqB1MwbA~BdI$kVc2V4>}jb}{&$d@&J7
      zG|@Lr{87d;v!&Fw52WeN%$<AAxpVIQ^Y_~i0CRXAg(fhwYkjm1b8gkzc3dyl@av9M
      z%`LkXr(oGTjw$12ZU4YuQ#VnB1u{J`ovCJZzakI`7zIX(5|yJy8(m%?W=owVw=OW)
      zN|E}!i!8V`*MA`}nQmRRqgz3hpD78%Ume=czVCXqMic`A!!6O(){Q{8;FX;?Lb#}-
      z9|?g_I#cQg({=PAB6lM?qKF9$72TTi_Mp1y)Zbg16-U4*dbU+5S#?*Qo58TZ<2D3l
      zRYm8wlW**^D_(=ejAA^BvG$73T-R|;R+*qt_FmA4f<%>Lm=G8UEKVt+avVBt$!Fc>
      zBbv5VtlD;tIJdT)moCNJhU#uvz5IiKej1QQvJt1p6{qUeKhZEwMUZU9Y0k8c8%W6A
      zjE)>;NzicoMb}^5+Tw=!X){xjZ@RA|gRDR_y|HMT8KOt=NX8y8sciX{fVQ#7PJ2zH
      zFj-T@sj-!7-a*}Vf{MoF(sLr!0Aqr+ggDk3f9#;zv431+yy-`r@e4eKdD1b+-8v%@
      zF_b;wf9eQEcKQg(FAQn8#IM0*;3>cJB*+uAfXj@e0vN8~Do-R(f<o=2q(%w0t4r{;
      zx&e~euP}a5lglx#X9cA@RbO)W3RGOeFqW07PF7-@s+#n_OJRwX$t*)s|Hi;~=<7!6
      z1UG-4@eiu%-;lpZhLtvMqsc9B2b1KHCQWmdj9U1!{3>4}D)O!kskM-I&w(uUM5eou
      zp-#<>o=DDDmlK7i*9kUvDjPb+y}<3cGs?gSi|yTHd+j#rMC&;m(=O^V5ppn+|4~nk
      rjveD+C%encU9#^f_H2M_vdd;Z#uH^`l4CYcB^i6hoor)X8NToj>E!db
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D{cqb;6g|&Llhim3%}V)L$2tZqNxPZC_*%CDO*>)KwbD9OD-%Lq;<aXpU2JD;
      zf<K90kXS1*iTwuB{wTz`FOD0MAc3O1kNe&^=ic+KU;Opk?*LY?QG}sjf9F1OAKQM{
      zJ@EX{j+4l9yY@}L<2BvZq31|^r<WY{l3jgNL|&mW5j1w!=^k|y3Vlw6`7MFjR2e2*
      zRVcMYYQv8dX0khy0?!K9{lHJw6fV`Wqkq7&s0P&c6wJ-XE$=At!yqoAtZ-%^>+EDF
      z3i)Q(_DtmPvW02PD&%VQy=m~eg((zd^@@ceN(z-NKk&AD-TPj2$GzY26slWc%kAvB
      zkuUo+m`@J<SYbtH^gk?Rl~b)w7&Ds%yjjFKg}Fh>!=+kyL-L%ZSFMNr*Jui?UBU&0
      za^L1f&D1tw;i44wHp@tz>$t&zO`IPbtcp)1Kh|&D*0q1FU=0FdCEsGOz2$Yo=m{-j
      zZ}cxaMJy}4a}f0GR>zIwBR4s;x5GqU-0ONl;<YoYi?~7ybwN6V%_s_^65eAl2$Mzs
      z6k_5sE-Dmj_tqV!?ohDpCa!{UZ=H=0K6ns&iGt!muHyxC?T5%um}m;vGx=t#7S3Z<
      zoV;P-6MRaNnp5Y|0zQ`jJ89~X+vyQz?uNan<@Jj_FVp0fzaqKg0?Bjya18#~A9}^^
      z;4HG!91Xn0U7kA&GhFR6B8W=kg#V?ds5X|LV(u4)49s(^@-lFZ<0=Vm5VVF@8CmSZ
      z@ETs{js#jz>6J(tlwd2234WzdfVsx6sQy7sPRBUgP?R23ZL+mDsdy7-@TFF@$VzOg
      zYKV<v3LDH!ZdHZ)Pn4g*+OIC2;H~GU{4+ZHTjbv+!_E+QHRWdK;9c^FNz0st(a8TS
      zqxPksBfCRLBST*L56HU{k+pGTZdCJ|iO4z{sS^dx7M678S5q&{XSlpywNJ3}e58W*
      z5Sy7*P{;cd*lv?ey5Zm19%{Bm|5nN-&G!MWYQIc;h>yrDv5&cum*NMIYMr*_w`33{
      zY0GQ!j!O&Yj&XhT0l(*^n1v=ovXxA>lF3#w*~*aY+L)}vh$L4Y$eumMXQQG|DEcEE
      X{z;3@_W_w`8DFq2>6dj98EF0u!RsF>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TW=Fr6ouD`os4nECYTUxN*aet>kGx|jgp#%=0e)BBB%hRLdna-J~0F1naDG)
      z=zl5?mD)rqQu|n`KdSB8XPgN*AT<x3bJ^!xd#}Co_dmb?0pJsKEKDiXpSeG}FIwKf
      z?Q1V=Me$I(gVv_!Ye$Zp;9wL#GKUtj?+Tv`bp{8%LUx}Ng-cr^(IWhz8}!1#YPYMS
      zNEF%%Gk3hei&qrR)zUC?Ro_;~-+R&32eB6hk%jjZ7LGv@aX*YV!%@&nV=NRD&L4+3
      z57G-}vL5zy9vRHquy9TxQ>$-VIInQU#QSd0Z#llN`>ww_?2iUIh|}jeTu_*kTB-y0
      zr)m(!)jeGeM!ug%2^WP}R=6<E-=Jui7xderaY><koYQ3eIb2py!#pbZKro96S0`*p
      zOnDP}1`10yrZJ;%cFPO&{n21g4<EaGVs~jP?7IH8JM?5fKFr2Xy-1;HaQ~~@>`n2_
      zj?n*;<R(jDtqRj!KaA*e1q~ZD@p;DAK|g+K4DZOrO&d+znErSC$JTJ(dgk8Av#!r=
      ze1TgEcBJDqFMhDU&jq7uPJLV6-?llqpDI|joi)d)^GyY9Ia_8>&y8J$shu?nhvS#Z
      zA)Hz8I@0>NpgMxeV8g~L)&#JjkUIz?PbQ5G>2UHMg`;6t%bY1x<TE+qH>IgqV#*o*
      zH&Ipk!Ij0eg&g;1xSQcO4;w|UH6y0@U1}WRZ1XP^UZM1)G<SsgKO3)5dD1Mse}skK
      zQ2m8LQ@Fz4c|HLR$>KJV%N(~hs<?xz=FY%y4cECNma!jFT;xCEuSo7PIf*L2MY8!8
      zr4=fDL#0(Jt>Yp#UQ;TkN@Y{3D6z-nOQBirk}_{`rFfES{EF%!>L=CYO)d`e>lm(`
      z#ErR}PTb&$<ozupg;7WtAHV!z4y~8wNW8UqE%p?R_uup6A(MFg8nlo?IW4DBY^V6l
      zAwEkqzWkZM1e@f!!zy>*fm}X?+@%9q5@s96$mZpRLwq$!-6OSYsEs5(b#<0~{o0f`
      zixu3Z0%`2VT^6ZiQcr1icq7ACY%CsOUCLNI#Jv;06MH-=K0^V|jq1GN7E{$CHtDu>
      J>^oDx^B?_xAt(R<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBrXn6n-uV1kz0^NlK9xLtBd>sf};dR<IS)QWpa#v>>HAF3A$M-Rxp^(--~X
      zjQ$+^!5IxRc1Axs<Bw9Gvm2H`#u@WrbMLw5J}>8-``6#U{SM%5e3`(2Lh+ID#CTS=
      znnuI4+_LAlOru#|v}{wC&}!S?Z~N;(G=cbk<@e?4&3#)TzDpd1iK>v43BP7Ib+<WR
      ztC^lB9J2~TbCzTIHx)(;QCe^`v!Rf@^Q>m>`<Cl?37k@xJOq-A71v*M+fF^oNg$<=
      zJxtM8qXR0bxOFp$7+%qkz^Fp3Ftd?BR^eihZyQddtlPHPFzoqOqun$eKe|4QGYUEJ
      zGSxJmPdTnXwPQ{>ZQD*FgR_D-u5hNSKY(JzET=I$vysFE&L?nAK|2&C+BHn#HHAdY
      zaMnzt9_V?Hz?8!HVcN-B4dbGMY9*1!>q2>1;nIncg#|n=U<3+pXc)wh!s)8zm@Dn(
      zj@i0r>_}@eRkvo?8%E2LeK#2Q_bgB0N&xr&W`m7PA8#L<b)@d37Zyfgux7g+o07*{
      z8m>xHhHTSm_<KP$mgL|)jf48m;6L3T`^fPOtEDGt>_ZK+a`9Ac&#XPJ2wq*{A8ELW
      zTdcWf`U{r7y1UB-Zx?jwNFMVVKEQR>zp%Za>odg4<F>>Wm{d1>Lt$W>>mj#$Q|S~%
      zbv*V=^RYlJ2~-Tr8kX>>04ysE@4KEQ<H}Ag(c#mU<+I9N8s;n9({NuTkL=oQZ;#?U
      zxx1<1bF9f~OIDOV_{6Z=yqjEi+pU@@L&KLOe|?Ybs*DUS5In}0P3h8YuB7z|40Aui
      z-4Oqi(2(ZZVa5Rer;7(TUHTKLm&j~oat9duqtwBxo5h#NZ<R6^4shvLO#jTx0TlS1
      z2ym|<j_bs|!RepFS(f@TZefP!V<9SvC~-%8@?4<`(eWm~!u^mcg?qf8yI4BLHpbh)
      zJlQH_yG^!5vfb@r8jqO91JA<5Ng}>Dj&m3KeV;4E$Z+u&Om|Q|a+D0TRH<({z}3RM
      zF0PXCV?=b{Wu{=HLX3A`Z02z7MG%rAYdn?`rGqA{Gjg9IHhVx*5h!P`PhzDDKU(bI
      zMlsgGT*&kBPXz6S{))c7CbZE5J=z1k&<9=TjW|(q$Dm8+Cp)N|L~k(DBKo5My%^q$
      zs+_|e_CTtTV?910ldN>EVvO<~^l>loM5Z!b%pagCmhv5}9MwN8*FL-V4N_<Ytl<=;
      zBi1xl@fq=zypcWzQ7rDVfx8aYg(NVyaYT~|Ql9eroSpfWqx4;m!E8j8jSOZZgW1R+
      vA7&rD&WMyD70{FVTnAqq5r_W1C-Dy)kso{f9gYL9;sGlt{<aA;fQSDA%@$dz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixU2hUW6o%hf7PhQwixlyrtsk`-SQ9tiYQ=;a<0dGHHF#0ISm;2v;Uj^?=zsD;
      z6N!lz{s4cJ@jb&<X+z`9%$YOqob$YAe*OOO6Tm~<b6_cKA4eaek3l?$dO98jlVq%;
      zK@f(``lm$Kr`@g|JFpcBq6_-buopDj$GVd!*oRRPDOd+}h1{syooFUi$U|Qbd&v=l
      z-FO%$H3g?~P!Gdui;wn3huTF3s~%jeDP$_uRvrqMJY<oRXx)Q@6^Sl;$YVuetq~9P
      ztLdPv$8Vx`Un>+FqfXRsMdMh`Y0^%P;)%je<Nux>lc}eZXU2hDsfq`O2Ih$@aRoL{
      zNi#J@PFl-TbCR(u#*v5`sbRT3iQWCtbllO;W5auDq7MWRx9Kp$ugJg>>x?WhZg$${
      z?oi?40#}cxKJRVrCI34v`uArj_?t5n{jC{FU(KsB*D`AXkEq<`@Sb25HLT+)t}yG*
      z-{UH-@x)4|uQHKzwoD|wGwgXC8)@f&yQs4MHx#}wu-FDfmgJr(?ac*gX@yN}F(cSD
      zs-<wwApZk(P4)#5LQ|nUSN(;{rEm&2a5Js72vYpaqKhCemxA0fb3P5S!LgkMdChkF
      p=YYs;WCGhuK}u&q-Yx~Xvm9jM>*f=AN09gDfXLSf$d0jo_Yc`MfYks1
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuw+j7$|5M33gNt4nxy>h=79H0&5P6HI2)ZkDi%!Kj)Pi~?(Y8@+MJ52j)Jn#X0
      z6vIk(+(zQTv#Yabwd=F1KYxGy27oR2l!qw->xb@7_qfUiu16WKMsY~pLDdmQCm4?6
      zwgmEE5Lgh@s_zC~wRLbvJ8>SS36v#@sSP)FWeS1Wh{o1QOj}`>h6L8kJxL0XmBF>j
      zHzax!#8tEMKPCYKyXq1+XI2~n#ogl$9mb3YQ6A<AER8#GT3LiZ&ir8sb{?(c2yaGQ
      zBI-v3%%mm#$DNj7SfgH#hBZg@SdwX+`_v6&3*QM8##c$eLTv=FA4JRxsH~BeYxj8=
      zOHv!9I!j6;@}_#<MVavL>e#O!IRPfkpQTF#8O^l#9uK^<hV64VsbQlyBB{Yg2R@ZI
      zHpYAwAh0|ZSWXdV%L1>K*4+P!=~5$m<ohR?awvh+5-n=kMlBPso_S8@H8ao7yhh@c
      zan#8&ec=%k(@V$C;#RMR3zM$R>CrHgQsR#+hVevo7UTRx45gU%Y2d|u>^nMQ!*sSH
      zhT}HOrl1%RrANsL`!)t{h$j?M{8mV1-BQmVMSY9*c!(P1<cYu{Hf)Ok?VfgAU{T%e
      zAVgqp?0%*L9->~eW58xY{9MQ95!zy#kHQX3z!mjnZHnc^XM{cBm&2F2fln<D1rSee
      z28z;_U>2k2F>0Wl!$=7hG^DH`i?F01%dny#tFWdZ7qnUz;gZ6+tZ}ZuRfTg+<6MUu
      z3g@PV+=AN*=MJnZ$X&RnAf|>?;J(7Czyl3=s398~vZ*0e4SA#?TMF`6`_m_yK2PD9
      zlJ#8UynvSq=aqKzHq;c(HoR7lH}F<LcHo`dwfATzcg@ncb&b=&F2u&};)V%pr}jf?
      PKTc*~1qZiz3Yz}_feaLQ
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iUsKaS6vfZhlt7DsAfO^BAQ=2Z;MuoQGm{Q8eJJptPfI7XVM3Nk6Tq+LgCD>T
      z<#>0mg|a(7<?h+vId|`7fB*UU3&0@`ebfYYFXfHA3)3q(NKzG!$|8|hVXT+ks=Ths
      zo>6>w0t=cAGno&<?)hcXFMUi2?EF6=&L;w<1r|*JwQ0*za=bwEBCAHjR&t?=M8FF=
      zduIZTuXp|Ax=d9*^6^w)Y3z)<_d5dh+afK=R1dzlw9BV&9P7#p%xBsFt+W)F8J8o?
      zcg*%IYf5E_%(dy8_WmP(=;Q_yRFiEvIDWVRx|cK`e0eY&4P`Ml=$Z_4o+Ca_)8w>O
      zb)K0a+uFzNS!BA+G<S_MCF$T^5NVhbjK*xlERPuH_ajotK+FJ-bFA{g_;k8vq%+yC
      zH&g|sa3ix|s5jZ@^dzE~o~nv|5~X^W73Z<+>sz9iA@Bq>)Zx>6Tc!6ig9d3$T6y%H
      zC1notj<Vn=&n#sTwz7oh7PE{MOIdYXFYwZ0UOCJfUR%tX<66gt#k|2=OWDMhrEKG!
      lrR+G}ck$k00_P6*@WEm}Iys;4*<$t|PeHpO{g)aJ{sQeqyIBAL
      
      literal 0
      HcmV?d00001
      
      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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
      RDL$+0bXL<P@^j(i{{imZE9?LO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D*>W326g@4;k*$n(<b=puSQITuoP>}NA`Foi7)Q24Y>bVIhq2VM2TLB+Xl%j*
      z%L`Tf1wX(GRk2(JReS&+MR9JAEsMyNDjw9M?!Ncjb5Ec9_dkF91>i2W;)p2R`NlbN
      zUd*_4XIH!4Of&GcQ=eJZb<h89&MEI{TW;)w#$m8#?&63kWG~EmHPo&*Y6_P^Ooe1g
      zvSwJN1MV>cb`Gmm?JG>Q1B&KESN<E=_k7{We92z6*A<k_#DaU^2D1uRGwsaIjO>O&
      zY|g9b1fm$Ua2Z1i(M)!u4+<j|`jC)+Z&>KTr8veEQfCY=Ado;3R|Uk9q-z%9=#{f^
      z3lo@RrMlzq^OLcq?qJD1&?|@a9qq3>J2lOMC9mw%HXPrT{pn#W*mIi-_YD94^9<Cj
      zr(E-z1WqixDC<VxdI!xo(h8$zP1vjL8&M!*;cW~hkV7Vpd}rMG>ndEX)()F{MP2oL
      zV#hK|*^LDIow0BSciF|R4i+UsSDtxISE?FKm!!gb7H;B}i1NOL2cmY5ubVoMlMgIB
      z!iPj`?z@c;cuAqR(FRf6jy8OK)CJ$`HjNc4rqWjm*4e?LE6NU>ZA04<oF)!~ZQ;IP
      zVNqVlB9)>WtX8Y1oIbNq#GE|ml7*)zDD;J9WoxvTuY)6p4vuHGi?*F5RuZd{vdj_{
      zCvX%Z+eHR?29fM)nrg(FTJMV-8y41aix0Hs9r|S*lAV6dY~7ZZ!*%kBazvwuh%xyu
      zB3?6JT9#j7OdoRX=dOVmBY;fq1OvI@UL0dMmp{g6?oTAQ@+Y`*j5l*H&2PAc)b9pq
      zit9Cl{)qVxiT4;oC}12P;Ra?g&HJ$smyF)xjui|a4xbo_ckl2l#@)My$1MLTo>=5@
      zgY`yR$e!04Fg?vNex9`!48C;0_)~l(=IKKHo;7<ImCv<syO^6g!9D4vh5M!@9$wci
      zJluRugG&T>O5sWv#xka`!Vy?C1f~tCe7nIsMJSL|57LyOz*|KrKISSy-{e;aM`FLp
      zN+eJ~IaxDkVLOp_JD+rCMqka`yfE`gcV<`3uP@A`pSvX7VLxJ!$y~IB`B1%23#rJj
      z=+AAvgq?7XVW-ZSjTynqTr2FmiV^J67OtrmT4M6F$9^hWqOzh3$D*t9FT{|?OSdcM
      z$0u4?c@Rs+SboryPsV;00?CdJLk1pm8?4~t3Iba0Tf^Xfh}eF!G@jve^9pG^Cl~27
      z%@>gg9OlFdKQSpsv5Vg}v1HUz;;Sz@d^II*Grl@^@Cac5@#7El?2nwDpE@K-wF#w8
      MO{DN8<0IJo7vkJU`Tzg`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E?@!ZE6g_V%l(hwvUxI*wif-daML<AcL<l4!2#Jsx<x|<Zt)y#b+adl>elbx<
      zG|}(=QO5gTx3O%4#1HG<z3<+0&b>X`pT9qT0hq_8j0nU0nQ?Ah=vK)nn3k*ifoB>e
      z{f$|2z0cc5wrHmL&0!@dSArvPDMMmNwry*vO_$0xLuZJ}FtpFxbmD0QT%(G0%dvtK
      z!$`b+Ng~4_ZM!*BK@_S685%=0p2)<&(4(OPoeaJEmSY}NN~flGY@FIAL*KreHSCPx
      zSv;;LrJ!i}3=4wkzeXpe9a-D;30c{>$eQKAavfjB5JP`$vh-p7hHD+x&<{<)eGJPO
      zWf-W{HEw`G&D#~fxMk*DkHDq)ULqsoA;VO`spwhT@cpt86!il);43vtrW2UCI+2V?
      znqDB=hEvdYJkRyI@R*X08%$W&Eea+u#n<<gVX(Su(L(RmatdpF&s}BLxA<fXY>z_A
      z7e>g5g@0hsYKdKo@3^NHhNdC)WTCJ)%^=55w$kYYour%*7z~k<EqdQ>KJS|W5zs}{
      zHi@d^lV=44S8d4fm91!4!b`r7bV4N7cw&``&kei6-@=hw@v>$pWb!uG&hhPFlH3v{
      z_md2689FI+meEDe7)863kML~riayid(fyU82zu$+BRZELVVP=IaEEe3VKwfek0Or7
      zQE4px(&=u1auP*@0zD;e0FBV^CBLEj5+lv{8&scyicNv9Q3usm@fpT2UPbMs??F7M
      z;zorw<tHZI_dUA8li$=8s^)5dog36XLtJP|AW7eR12ZC~Zs|)C#$JP>NL|r%YiG2%
      z^RR8_OlxNg=W*N4S<JQB!XoW}&wBF~P8!gZ`UJDk+n~KAH0f5fQ-PKYs~Q~eoc>#d
      z4!pnuA#+zO(uu1hH&?l?UGa_(IFrg9F+DbZiREikC<4GDh_ePdwN9s^MyJ;4)CRiM
      o7P{Az;i6)kZuAnbn#s!aYxpS0LU+gNWHGGM9NgU-1Q0>$A8VromH+?%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv+fEZv6kVsCcAzP3<yyHYpg=E3MHCIU#ApnVf)CXuVic!!(hjs!ZKo){nE2-9
      z2lxSb@j(-*(Fdb1lK4@^b!OU9luYKFz4zJc?7h}LzyEyu4qzJBRJa8Cx3nGYd7`M9
      zT23$Orj@vES!E+rwR9DVKuDe^3YwWq+|F$2Sxbdipxcfbr9?_E8(P75p=Am>lPk8H
      z*2@*6WZqr5DIit_I&PHAilv!WS}Rm_&*<(~HT8BrAmA--np%;-&g4;<6w8~rc>%S!
      zxg!C`kDV@f>|HQS!&(xUi2RRkiPQnnw19G>^jP=7jcz|e=n-&7qUm-B^!edOhqO-n
      z5kOENm^4g%y;{uZ<vR|!&SWX871A0BlWaYxSb3u&Flg61Sw^<1I4nJNI$r&0RVxtI
      z)7p8X&kY~WVNAvOW8yoi_%VzTNnlLCQ?l}US-@4&D6`3bgZ~b7%jwp-Eo*lq+9E_#
      z*fu8Equ?NqWi+*I%WIXq6w8)qMRqjf$3;xb+A}P(BH&Avs^zSH%aD@~G+)h>oFqml
      zrJKKpYd=)9(QfCnbHPXDsWt78RGPboXCa*8+DY#obKKm6u`lR~#ShRMn>;}H6GJXu
      z1tuw6SGgv6<r*(p#{eV44h(}BqQ?txhGm3pou%iZP4%2I!cE`9v)%Ylh&@!|KOoj7
      zKcn{-d@*i^=#!o_-$PaQp}3d!5p2Y27+s<rcCy2V2uqLI;YRi>F`-7VhVfZtXb-*~
      zWe*<ZgPR|VJA`7?MDkW~pUONS$%mN2Bg`R#Wn>xAv4tF-VcRCU%uF`kB)W?U(i6mP
      zBSP{n#3@A-F|Ko1tXmuO;*2T0tD|lSOyYtg2ol_-SRP6FW3xH09jw}g{Z2x?uwauC
      zB!|`t4*v^&c_NsPsSbX^j^)H-j_#^^-x)y-mlmX=hiHVtHC$dC7<_f4UBE`ZMi<^-
      e9Pe5lLag3q7y78c71kOj_c$&25N2(HSN{ToyzH<5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kUg22HSFxN~>0(2uJ~?UhqZ{tW{$Tu_{{P<-ybTh@-=lOs57uz!>8X
      z_y@l5!V?J^d^GXd7~{tn_c=2y14=bb=5o5uT6?X%&wTy0xdq@favItg`d;u?d?mfa
      zO};3WglVU<wr%O9x-I7Pnytal5S5s8-PVnC*0T7j{DYypCM=yBMPb$Ss`(&)je*@_
      z=*U&gn$1nS$c?%Pe0h2EVB+RegCRJro4P&2;7g4b8T`3wMTFo(X9OXH8M@|lQ{1jE
      zm4tPlmkhzsGgmE>04EuGcNhKkbG^opoNHZphG8)EFU)9B7SJmTh%p>;@Q%@3)i6Za
      zCTAH{t)V>oQ+a34VY%lZLwlJo^RjNQlKDJY<CO|Se=A|4lcLE8j$(kJ*A+FmxtK1L
      zUXW&H^bx~8-e?2EkrqD4XEK#<1#t9^OT7_>m<vwt5G-mKWf=b>(tCB&)|W(KSy)_V
      zQM<lU7R&Of9pen0dGi%F^h#1UD`I6LgcMH7U?vz&dwsby&CMBAuT#Q2O`Ew$sc1Mw
      zJyWBmYRgN`LftMryIQTAm2GK;fYPJLX-I}WTzhVzl!DZntU+`5A7k-IcIZL`lepMo
      zET~IEEu)v`gqkVIGLmeX;cz2<b(*|GMr^*CuqAjlg3GwVFwy|;=#|H>J1-2O`D)!N
      ziyOK+Hakx6giI6zAbL9XQ~?4A(p{ssHnh`^wj)f}2(6r@JEMDGYy%zZ3erW_5J7<)
      z{J4g0dWtw8>_-p1NrEU{CBY0KB{n!VzJUX~8SaqyUBwV{P%Z=E5hpGwPUq?muEYio
      z?dEz+Tu=7kO5lj%I*LA*Yu2qxlXdkk>?V6g1uS~Vv}R!%j$zOx8*<4k3c^n&V`GUE
      z8yNn8uG=4xdU&#jQakZ^olw%yKBP%h#@D0JuW98C*?Ws#yi;0Z4og!jMxSL_I58{L
      zHbRGShPvXT)k&Ol^`~4jD&+HPgm-jgUxD`?AHgQ~cEFRk<np|9eMFUysWq<)MHQqm
      zX_)9#1GGsipJ-^dJO-jok!aIERP|F1*tUVoXarbuh2u(iX5p_1YUI8l?j-n)R=yMA
      a56b7Kr+|2~fOxZjxSL?uQ$SWFb@exQ(Pke2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g&rZTX5XQfOLbW0&idSRefj`m4c+p@;49cm&1E%){Hn@gvNxL<?mM0PqK7bEp
      zoCRW{gv-p%?r*+tX1~5aJ^@^z<|0REy^1$6_amXjL`G5@|K6BH4KpMAvFXK`9zV`U
      za%NPlT{wjEjfSV0OoV+;e@Q~|PHAO2gnYdb5}a;4mLBrhEunxSp%N%9`&l%U$+H+v
      zC7~L`BQXs{qHMjsbj*uN2^YbJ>-I6*gj#*s;7^5~_ygWYPuh*p`X5;TGQo{xn)1rl
      z*J}Sk3Em*il9B8wJK5=WuS?sDGw`1LsX&fTydOuGt8320xzJo-=Y9F?ar77iZs6b+
      xdweRbAkO<-S%ES~E6`!mvc+a=fy#e{E|U*Sg_9MvR$v~7sIms(h`Vz*{s9h=aDxB<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5*>2N76g`urPK~>{Erqf+KuA*3wCs>B(9p1`Y9C6C5b!WbhTzJvBWGOYpLhWY
      zQUnqoz%x($0DpnFUP{^qAztjc+d221x%2JU=dS=3u%aNwFt@{Zd8gRqHgAZguw`+T
      z*Y8W|npIB<gIk_h>$KK7HPMo$V=G87jQcf3i`$Ljp8&&XTev2-4B@sZar^ND2KIzu
      zsO;En$!!^6CBOgt@wQf|++&FEa*IJ<?}2SrcSKE=7zP$i+my=;liB`o&R|HCow`sF
      z$EXGkV+5AX8H1qKG^jYnFtTpiV#8}zh5M9OE#VV6HR_I2k7P&AgnVPR8Ri3)|5t%p
      zOi5>pM6w$U6WQE>E<<lg!6}BR-fW?J)ibTSa8;baIR$4)v|dIyy@vCcA^3)nWsA3|
      zx$#5rfwQFI0xl`INQ3qOf{=y`PBJJ|zrmZNQ5JaxxkF50FB)cXg)-?HJhAzjA@et}
      z`zKQ|jX7WT;*tA_CeIluEHETr5b%<pd`-i3+@M?Kt(LIs426S4`&E5JkybS8G;aA2
      zw~tgt>(Vd&eq{=GX$N2V0E-$<_`0ZDj_1}y#q?Jq{m)eoUIu1psp9lrVg!=J09i_4
      zrN~2@7MvN0F+`DJvMS_{(O=E)VI)8M5&HWeXM(=N0a67CJj5U#VUm2u!)*FbkwtX@
      zDz)wR8)3erI!3X~7fe6TcX7Il^e0^2LqVVK;%fc_^e%4dcj(+j=^bUp;PdIk1Z-mr
      W1})q(r0MK)Y9U(0$*>euEdK^G)%|t=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=Yi|-k6g|VEOV{m-wpJ}v@qs{X*ZNl4s$lUEQWC2qMol`vh}$d+S(XO>l}(fy
      zP5c3VH~LTfX1udY3l-(d&di;2&pr3d-EY4?e+96D`wDyvOFMj*xAhvgcvaMd<>(n+
      z$ru*5-xV4~ZnnfmyRp$Oi-u#=Ed>FFX_=y%+^Xt_7Yvh4VH?~m3cE?b=Z_ySuqO;-
      z*}BzqxaGK9!Cdjj-uIus78(4a-C&r{57a*>nr0YTH7vtfXIMxK!6l0ffo#1ZRQNHe
      zLBkZ$Cz8cckXQ{WjxkK+4NGjcY9(Pm<0Vrtg!A<>>E)!F&fQ?Zd22Ko^ucn&Y>`r{
      z!Xc*^qKV{Sa$ip&r@rObhE-*l=|Vj(y=YoNlwq!Cu@}y?46`C^6{itXaE9#eAqu4(
      zQFb((#W{u$>BySANli>2p?8C66&G+(L7WWf5x7?x5}0RDD1VdJ$jcNiDWHeytK@0X
      zu!Lno?#k&XykUrYuj94hsY!b#9O+C&1efLWtT4>>r*u0{7DKqo5PV6Ku_nRSHQc~W
      z@|HIm!m7}){wvFMyT4G^E9y0Z+mhnWUzz`vc#s*wDoyWeNwBWrl=Ma2s<-U2$Qg2U
      zV#9`ESsIHN&7PnBGasb~F+wNBJ%uPj14(;7#Wal3cbrZ+iu-6)Q~Q`mEq+9J&&AKs
      zcid&lA%KS%#Usp8?6`-fb&gJy=dzM&oWRL0r%o%QyI|@A!tZJ0gQSyUfTu2v<^j4i
      zO!i6<Dd?3e5Qu+4<VC83g$~YtLUJE^_(})YBxMJ;!fD!fu-0P_lT2V6Q{afAL{qul
      OS1Ep2=`Nvsxc3Knr4+LO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fEZv6kWS5Oc{sU0HSyU)Y=wk#k*F0pjyQc`hboa_2INV)*;iG$#hEi5aV}X
      zqQz+92l!3KxX(;O!5ZVsIcMM2T4(S5<JZ^k09H}bkRU8?iyg6BYzbF1WlOqYaZNO~
      z!oYT$RbK`ov_1FXZe9B7p&><>QWZr<xXt20fH2XPfh`<M25nA!w*G)XPY9!B&uxdo
      z4K3kx<d9SOxmRv|cuz=pKEd4RW5t{$!th<&wZr>_ne1RVXAx3muOW3LF=4>KBq5p2
      zStDR&26P-FjBnVk-0ZY!GI%O#j#NZmoy7^3$ac?}3g6jnLLp-L-xjdIbm+xm3Deo!
      zphgX+2(y3wY^`HE4H@V-gL4|ra>x1^)!MeKhX&@c!0=5OmL1V%X;VkwBWFp+d0f<R
      zfxp=Yh(ZQ3I7!gBep9r#Ls{fC<c=`K!VN58nKO6PP^xbUnZvD))s+77GaYj%sHTsm
      zahV74%Jc6j-xUK_ag9eOd|$c^!pdR1-ed>ydMzoXaf7$zjY7I*;Dq{wzU6g-x~$l0
      zdh`ES$%1ME7I^we-s%KH3}KipEwa+=;gyKqq;zv+jI9d$6MXCWeT?UqKEwPN<xKNA
      z79l-C3Xd^@b<D8uc%04mEL&U`p|WVDwukwe>xg5SZ<u?T@8Wb9i(hbQA1h|Di`D!m
      pn0%Sn`RL;29%m+?_)KO3EKK4#@5T!(@>_8lF<Ot4a678F^BV!q;mrU5
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O;5r=6r4qDv4V=<-&~A=nAmvm#7UwgB&dlbTs$phA;q#auqF7{Jop3rQN~AU
      z)@>kO+U)Gid-G=B_s{1SfE%3J$S|A@_=Hd0A(y-_hC(X${zLMi?>*K8mo~BtTQiCq
      zaM^dCI|Jb<hJ0VBJEcZ`CsKmpvfTXRv<Q~{YQ=!&vMPh~F!jW{@<TbcvBq$<&|O!3
      z3ROLfWLGO}tTU7r1hG$pRA9JRAiaoQK*p)BW-=7aA;t{1<yXUVYK&As+G5imD;jDR
      zM(m;?dm+Plc|Lkdqwk4t`EnAzQEbg6v6&W<*i0zp%6yZVk8$czO7rR|8`^rc(zbEH
      z;4VbfkP{yGUCnIsAQEP3W*17W_FtPgp(SzX>Pdu7D~v{-sQUrMQZzU4dS=jKU|6B8
      z1uR;~RakVk>69Zh2M2jVH?WC#T~Unx+t^817BUHE7kdfjAWO>q1V6+PRbx1&Zw4p7
      DwA<~W
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp&q_i;6vn^f-|$bGrj<LXg&K5`mX;7^WJoP6_oGfWaUJE}s~A01E1^XX(5uuN
      z1ko84q68QBoH;YU^L=OLzJI^I0VpFEhL2!9iiwz71EED<4y5+1hIT!nyYkF-r06}>
      zr^@x*`m`%Yo*L>f0)&H=rkjy;ggO5u2}xHvO4x1bxO{TgI495*AzovQExfj{$1?bA
      ze|}B!_aB7NiPFle68wc?n-HiCdolt)He-k&N=P)7me=D!M>@BnV@pD+Iqb55U>mNN
      zn*r}ZxrB0aWy<wes}M4Ud6Q)e-M3nvqjbMgY?~P}W`;B&Jdm!-Pi4G~{vVVOX${9t
      zS6(PH-Tr#NBh!yO_`du@2ss21;vDA6hYkK%4^fUW-Z|z>oP(tq;xBU~!7;)ZaEbt`
      yNb)MSfUt!WS4JSs(FjzTG;FAJIK%dTg-bSX%oVZ=YN^0Hve;n_!Y+6Fu=fK^$cEVf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hJx>Bb5Qg93(;OfOf=XdxVgYEp7)z7}C13~^DE$H(JaV^(cZcCmSy+)+7&{aH
      zj=gafjENG8o!Qxa=6(0$<Ll)Wz$uDxgb0<fcoZ|!5lW1tBUNCwlphE+kR3N@xKlN}
      znhoS6uv`^KgmAdR-%O+@^uGT~5;DH@EMfPg=kv~8>ykj%gjAg|Ru6i@p33OwoA=Zl
      zKfDuS=a#a98X;UN_Xv@?JCp{(*i6Def{<=oN_M7BUwXHqZ%ab9?GD&LunpHgi;>{o
      z@(IW7l~b<0Rh5u0EqK!wYGif;&r+jmxu@;(+CE2!JJR?0fwZlb{(};Xt~>PxvSI0i
      z?XR^u(XBWD-;#fTP(&0l&T+0n*x<oZNN`N@${A<k9IecedR`!Djs|1E1tO>+!?WZP
      t!WObzX@ML^El^`pv$4w29NYgDnrz-$C=`~|j{@^3V23pbyWAbZ-Z!J6fRO+I
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYO-=$q5QSgCz!?4oLB*AciGYa{;}U}=s0m1PfwFI~gJXssGBX%9+`%(=16L$2
      zJb)_?;u(z9Kui=CUDeh7^?OzQ@%{D=;0Q$%A;SKncoJi4Ae89KfmDIjP=V+AL)i;#
      zS6z&Ia;P^Z48q<Ld^41u(D(i?NyzxpvxU=<p3gUTjdKDu3CTKRflxt5I3pQJy~yXU
      z$>)R+J+YM?)Cl2HxkE7O?!Am5j8p<K#0lw^t>pD+(3Re;=sJ>+ZMi)*5NyNs;?M{l
      zY@bkWEp@qiq$(j_n!%PMRNra`o~`=Taz}gTwRetS4y5n%*Jw|z`v)b&+V05f$xB;z
      zwX@piP`|@2cs~AkLJ<)}Ih$OCu*QpZ5a*cSlVi@rIZ~M-`8q?=9Ak_Dr!a7a4DS+i
      u2<ymlr3G>vwLpzY%|<H+Q*8WKXtMd$OrbER77EOxfKApQZ1L+5wtoQ0X?<J(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVqmQewCT5Un>rt!;r;ylc6PR?#{PJfKlWeK<{zHB6dx(v;!BFVLUS
      zQH!H9et_?Ofp30<<335SKpn@IoU?Ch?Y+*<w_l&X0+`3Lf*8Z>Cg0-Q#RhkHT{MK_
      z7c0&dx2@XEX4AGz?pv;NXWJA_c~OvH7?l-8n>+R5p8&&fOL!Ky4dJyY@nPjQ1G~>K
      zP<EY`&mG_3c3ULBzhD0G^VRD&3~?f1&{w-)>(xzR`Xz?G1<SGgC5G{AZ#ZW#B+710
      zsEA`&gN6|T%jS%JP-_}g9AX$+wH&e5Zd8T$fLCoHiCmMq<J2SBku%}Hv|0>>faQNR
      zpaxUEyWxA5Q)d{<=Jxa$dP@q9F-&wP3*EQcmR%E`iW4}c;3P@b%?M}LFo`LGuM59y
      z^A@!>x(_~ZmQ<X^Sp{ck%q~C>(vZPX28HU^c!LzmBCjB~k16a$!whCAlOCZh)?YAW
      z{w8(rWGd1qNYRT2UMHG7XQVLCkbFwOi!%A5hD*3iZ_1lZ;nW!B_7d$@^$<l`(X44)
      zl@QksR7T6vEB<a}3O8s2pG$xR4M(Id>W16)OtE6gg_!)unir(5n4*P>)1ML}h$Q;R
      zQUWVQ9@?_t&Pa*@iVTvqLjD+?YJLYp`I(Q<-vv2i^c@V4?jnJE=tl+P<U1T@(>XyF
      z)di^3wCpy*d`5MQVwo>UKgoA+yo2daIJbj2{d@-(@*kjga7DjP_YO*LDKiGirxO!k
      YU<8k7-5z6_?vhgr(IQTU#h_y8H$TAqNB{r;
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo-%A2P5XZlxr&pJ0S@s_Fpavb{OJN9M1%cFqaqp`xwsE&7cYET$)sxUee?Wg!
      zG^-Mn;LH5j`OJ4__UrrO6F>_!7de9eCT3#pM?#B<jHEXHqn?RSjc<)f)G#wL5Md_o
      z=OZ~aD%LI>!udwi^He6n*3(~-P`puEnJyt;Zv+IV7muZfJa$Vcph&3nm6lIgG?dAU
      z7>1Hi?Z+b#1|m^5Uq3qLRi%Vhe`D(QRXc=Qec9xPLQnhwAEYOpMqqb1usf6qZY0x`
      zPq(wJ{vVX!4dN^r$p>Y(JKH|*()QyNd@p}6kmHE&Wb1O)W>4%3%>{Pemt~Kw#~5%0
      z2iMr+sI-FE?{j7a%51Gbmr2VOn->dI{wwsDyjv=qtf;jD^EgD6H3&!Cox|}D(!+IB
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%TB^T6o&s(N~;wCQCt}lcYukFaihVoL0y>Y2E%^9NgdNpNm~rB<%-0G58y)?
      z&$Nvi7jDjF&Nu(Le0;vW12{$3g+(}c7B6Du$3lxx#!~10?cMciE*H5<v<sWCYY0CQ
      zI`qE_1m{v|m5&IuUVlok$H}AgP{U>ebvT4pptQVS#xt2dh*=~FogkTuXev@=^6Jsf
      zpHxOT4E`HqNa*$oq8wwAr%H#z{?s&Vn}$t-8_O)?9ZaL2i7S-gO_F6gmp96c(*CvM
      ziGgth-h|HrSRC;NY+cUI*c1EuV2zE}qU^Et7z55>;{sb8HA;y6HfKhl$<_#rm^7?2
      eI9{XmS7FTLRiUt7Qk4Sp*g=Oi`2PIc!rmA2vsO?5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&O-sW-5Qg7L(?(-$wOR#lB0@jFAYPP8FI5i`Jy^+o8<)D0Y$Q#kf6G(BgFnC@
      zCC(-Rp<cYq$IdhF%<R|q$0vYOv>jN4qZjce7G5m0n95k{%)7mNnCnc%@_G@<*Gwha
      zflW9tpce@}^;YYI+NIJe8xks=Za}a{$&++Z!FnB4)Cf&qX?Z`7Co+8$lSmR;eiDi(
      z5UDbG`Dka)YDPHr|FP77(C*}5vD7$Am7Wf|ftkBy<~9gUEN3%5%*^}UzeEY{IGLxR
      zyisPO{lABwm>wL0@8T~5EROgdwhm`!?1_D~x5V0eUUu2Ki~;Acae)nv>IKAplQSdG
      mU~2@1Od7V<>o3t<RTwdOl`HHORH?u`w$Wk@!VY&^*!=<3=3)E*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hyG}wu5QhKZY7XEHL8LG-u|PBuV+qorcnQG*rFMZ0u5$L6a~4D6li2tQRvHUi
      z6CcVr3&cbX#m?;Pe)Io(`TTl&2e5~H93evSM%;^0$rW1kr7N{5HB?}vmVVPSb#JJ9
      zN29L1Gs@F(L<pPz`13pI3%eiukc7oR`brGi(hqp&^7N2EXM|LZF(b5Ti@{JvA0Kj8
      zPam(hgjhvsWvYa5VXIAu)V!W_5XO8G4ibcghSIV*bUV_&5S@V}EH}I^8wj@Hdb$`f
      z*D4_FH2$4(=B>(vOkvEI2155sE#oWQFK@N2ea70S32|2j0Y8wnwbH*(g46Pbepl9&
      zJ=pq8t6kfQ4e%}b2MBpY5#t=^Dug*6EQJKeB(LmqCeG2~3sTQxWPzi@7*Ih32Uz4;
      vaspuq%UoH3G)F5?Wzw>-;`R$x{wf@^`N>!zJE5iu%p;3c)*$4#JA}1w+WdeX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8+jA4=75{y<WC?XijEDh2lZZ>el5N?Dv<)%1!A?jF#-y0qwP{+frNt6i?<(4r
      zfhLfW3%#V5q;1mLX%eUH3@>yhnSz`tGbMQ`GkxkMY5Uy2AZ_0>{hi&lBxAMBgS6*6
      z`<>hG`<?UcA3pi*?*Qz@uOets*m*{u*U$CN>6Sig%odu-6qtwXL`F3wb3W7s-v
      zM-Woj-hAU>Lw76XU|XBQM%mVD>eg)UkZD_nK4TgR>-80XC(oC-j*ry0jWLon+piEQ
      zIuqrh%hzg3p{?kgF!a1aOVQ!#K+!6?0}7`)*P8xMP1!hY8ab9_xCJ}k->~<#H>q)j
      z*dyn1M#(MOmJ`7Sg*|JE9=6=F?Ud+|n`*liLPK`mh@lmCX;_aAntrN8Q{z!=R@gUa
      zyM?4%Fp{%|>l)>xZsn7XFV1<1JIS1GB`w=c&KOCnVw#y4+L4f8TNOH*1WS#_@LAjw
      z!QBd5>Ts{FTEo3a@;$>oYFI|On0s6=>kMg><)n!Gw$9Y4CZNgN{s?v`+*$WMWa^F+
      z!*=Y_a36N_Na=T!?iB9oOf`53&U_sdIyFQPjUkQh2)Y#7>+X)voFUE{dc;-KwS6lw
      z>ecWW#6;SwK|@R`-KXJxe2$UowVW`>P0Od;)>R3tpx~7u*1Mw6V%QJX^x&!_{Gb{R
      z;2`<oxO&-jCW>z1zkog^NqtenI>ZRgNYOGzD|0hM({F_Mh@I2TalKrWb)XEn1>yL8
      z9zg%67uhEv%R@AjH=G<h!)J`b)&_i6$_q%(T|SxES}sq!$xaUlg#%59)UZ1^x3!w7
      zsj1X>1jiJ1)X#6&G>uu^JXD^o$YiN?OBBZy9ym$1*TzC4yJw^qDpr}@FCclnP_fQ(
      zG{};?A3=gBxZWg*`D4OImkXI7{vuR#hKXu8Cu8V#0{YbI7utPA!<WI_Idkq^llz#f
      zyGBFeUu9!^4m(p!nf2w9wzQ?y<7vHoZI8Cha}tRNzOJyV?$(=$qqaL%DV6N9YvgOb
      zc}B)l72RaYtGYSJG&Lo|C8uE;dW;k^G@M@PFgZKnZcbhlHJrd1h1O0nQ7|=(;fzR@
      zhLheKCb)V82QkPFn~he`oq|j=&&RNYt!OBNjlCb07|!7v5u8`pP_JsxwoP6d8lJ{8
      zZ2EcKtQf~nD{ShVYV7)88&N-piuB2|8or6Bu+zH(Bov3h^9q~mzJ1CKR*GicC`$@2
      zYPbxd)MgsitXmM(w>5kR-&I)WRAziv5_@>KF?c{-+5SCA^!p0C8_B+c^IC4l@Ej6R
      zyv&f@Lb`*Z_>qPm<0n+<rIKOsn(AqE76e-xKd7TWiq{mh?mBr7M)5NOe%^4RSmdQ=
      z*-`x5-?Bn!Zh2F35MEPW;&DA8sdRHLjoFoQ&Ny6@%XahH8$2U;axOChe_@2sB2$;&
      z0WC7Aye9{$_vAR`QwXyjckun4T!px5M;uTO(?c6Iucf=Xm$9+u7UGG}Ev&zR_R09B
      zWo)@g)&4}Nifygg2g8Z*2iU%Vcsdb&AKR<gc^!MMK;yEC6y<d5b!6nP?+W^Rs`xY}
      zAu-|J&&R(|#RD`=gno}`n(Bdfy$T-U|0p){|4HU*vVu7zVB>B)h23Ow1`ZCQg2R}{
      zQJiIeJk4Hx20AXFglBP{th|UzcnQzrWxRk_@gfe<+hfFxm17V?e2VliF;t%P2&EQJ
      zI*dn&k-UA3Qiu_IFpMKaeG=I~5^Rssl8E9OcZ=U_x~qqXc7zrY?+7mnq$88@(Pcb-
      zGu<svb$Eq$gjr|0qm6aftKH$9<pQf+<T<^Lt$2eM`<uLk-$ECb__g<TLj~Dd1=(5!
      zS$rv|APcEQD#&t@#8`nyW0b<4bdpjVbLY?uDmcR3f<k+G858eJ+`!~y{M0g@xany_
      zwEG&dd5Ami@ch0@&2Q+V>gA;Qwn0t`9B_f(U(-tRINJ3A)FQ&ISJPd~nDL~p_o0rZ
      zuVGJj75OS=7qFYF3|ECEY@;|p@yR9TbPatJ=avu-U2VNecYZ2qmI3^c(Eo`o@Mmnm
      zUr3n`u>~LT$o@*m{>D51?>xAVyfl-3DmCbil29ckx&`}4t08(-GLeJSd-)Vd!jj@U
      zwV;9<@Q;SN!?n6OVFP0~z%xrcU2#yw{4}4L_i(m~3)A9sz?Tct5ia^x7WMM(@i_G{
      zKaT#1P52m_@h|M;a~J-NK0XgI4<GpzHYm9rf(#nd@2flY)BmKwxSl>QohHVa+l*DT
      zsWES;CdLD|8^@a(^Ybt;{*Xlrz?X^1#ap;Q{4PzTZ{WE}QMAfm6)%Lymv6m?mzME^
      z_z$aig=!-FO8iw{&MY7r|LGNk;|rpF-PaDR*1q9u`&Mh;qPB{+uj8VGsvo<@HI+g{
      obwN|z=u|zpUuAGa^<rA}VP5UUMd~l9eGL^}u2JI`9)W)OA5hvZ+W-In
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaKq&2G~`6ot>tPtzps4=JUk6lnR85`(b1Ln>lHpb}MDKn-RAET&<U8YN?7JJ5&V
      zVL$>^V!;Ej;4OF!#2Lq!08uwHzIV?3=G^P~_VdeE09&|TK|yf&wR)?Ly`eIyuZP+s
      z-rhZ}%!A{eev<^Dsh}iS|4+2Lmn#H|v5o>Y@O2ck;_1Wt0@)SJwL=pp$|SxTjCA?7
      zdH=&a+xjl3>fdz1a>ug0fiitBM{Wyd?gS=C?h00$Qxz>=P-=&-bPYu;I&g4CP;9pR
      zDg;XoYN!hqI)Tyqqv4^By6SMC1&vPFqf<q{jI(4ZISOLIW_r;nv!E>@!=3JE!sbB|
      z1*X5<@~ycG*4#Qfoh-{0g33_GF^6x>{h3835X|;<(pICG=PS+Dgra*Ch3{+^wAG-f
      zt0J!X4F8qq2b9+i!co-IJAoa^(%(P)mi2&5PO->mQotI@m|;{&qgiG+T7H+9b1=ts
      zp3x5T1@1NX1Pkts&uDy1^=G-xr=)#WJVF(ZvCQ1Lv6}k|Bi3P+RL+;o^BMCAHP%Dj
      zy?KJQsnF*%_kzVQQ|QK6o<r*yln7kJCF1zrv610D?m~Ro{e;E`eiUHc+FpTv3UtPT
      W49FLPE6mt_Pc4q77GF)Txb_P!8@M+B
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TW=Fb6#m9`yvAK8!MPBi1x(UlI{`x>TxtR&p-GeG)}~mch{7Zpl8v0*;9Un=
      z^`TOwKKB&~o_Xm*xx_&rRnV76{R{1Hsrt?Ck~kMtQD$e(oO8bKeCLe(*T1j-0B{B~
      z1|kBPCAlge7M7(g7u2${y~4zxlJ>BYUbUh|?R$=am_W03E0m?ZP?(xsQgfbxxIn9K
      zwVc9?s#vmY{UB${iq5WoEUAiXIrfdw>jGj-AT{LJt|x7;B+FIRaQ^S=KYzZvkrDV{
      zUb%A>YsI6tKze)&YsRZs_Cir0X3J$}j=R2ro6DAMc~=BZWOuvow&Y4oG33mvB%)|F
      z(Tp~MXf{{c2Y~}78j;ewgC<O*1e(SzTTND%XI16vprrJ;GbhU>$ue1DXpDJ_mMhTd
      z<NdFOtRSxLS7n**ZS{-;F^joxlZ4NhIF3#MV?lY7e!Z>P-0otM_!uV)bZ_fQpp=Ot
      zII2_SOyqT{My9%6uWr<tUD~d3NP#_a1QLtVUDQJP@{DSzGbT=<z$?!QK(tclOf(^7
      z;5_Bq*{;E=Ri0NBE%ikcm+&cLNn@xiU6$Xntt8)AOyV*!2KuS|Rx<xe6S!*P8U`rK
      zs-Byvdjj2iNw}9#eHhZs<^XO}JshiCDS=^j=9V6={v`VFxrtG5RO51GMcMNLC+m^k
      zhwVZND=sE5&e&c(&ix5YQqtQx>$HhabTg7OPPH<phAsU_+IGIPQ@V6yC~lPh4T#|o
      z3?#VU$M+gRk`_)U_c1-M{QjhSz;B#B&DhU1&C^Z#M)_^ZucIa3vxfG3?;1Lu(G+1y
      z&?(0C7T4QM{T-9t!C_jC1!4FQAMwNlK8)~p8aP4#j#mitJcOC<c?a<bV?A#nCh{-Q
      zzJXM44aYXn_Z0iJL7!^qdW0^XI)dx$2HJz`4qj*d>xS5GQT`Dx;F)L1z<r9~vTzSA
      zsFK+#dhmdHKIF`Nj|ti*@naqT=}rFA^z0>D6N5O(NX?&*BIIA-SJ&2{N&UVFs<i}u
      z@e`VXLzqzL$4QIUxIVajXYj9k2J;Pt!Qc2yfbKvoBk~kUy{+MNAkceD2Q7EE^l0?^
      z^OyvlpbL-dP`WoMa?V1OpV?ns$^dho-N42C8}!}G*KnbR;wxNP$6)%i8b$)(k@OeA
      zo{%Hy2`)8Et>LVW-74=0TLC=h`T_^>l23Duzauq1@fU2ydL5yGO+sHXB7(2}19D4I
      AR{#J2
      
      literal 0
      HcmV?d00001
      
      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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
      U^82`Yt|+)8h2Y*|IAu8ZKd`&^MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}ZBHCk6n-u{%ffb`lmb<%Ewr`WU0zmdrCM5Qp#>HfP@y1g(GI(pWpJ3m-Pxv1
      zjERX~{0a4~R*j|!A8KNuX%p1=!K9!3>PwA(#FyvJ47*Ff_+e)5oO{mmob%js?xVjS
      zYyjwi89|l6(Iw-WaXq<g*hWq+OWRG34M@WtcU*J9%owie*eQF#i9i!*-`RIa8g4N!
      zeYa|Xy~-_V8Fnr?XgRht<}E4EP>^}ku%>0cK+KD&^8#X2pl;By3$9_i(}q=);YYO(
      z?mRC1H6jppZ>-1y(JrUUc$044v~zs|)u&C{bo&KP#dg@=9<kjLpBB&tove%^ghn0p
      z*eh@>w%u{NB|cpXfo2^#>I8PDO<Rr^m*-`E$}hDs?POS~!FpMGVAR}2ljZmX|1UUe
      z)NEs!!ZmJBKwwu^7BYErMV$||$|#)$nqu(^=ZX0xnQ{A~Xv3ih+Ia+JA^klaPvbxY
      zM+6R*w^EiRbA~nP8m_!>JtIAi8XToM9!)IX#_BAYZFB54+p)VmtE#lk@ff?KIE<K5
      zG)|RvP&7UrL5IMRGN;!k?77L}%8HYBWwu1jqn2+M4U5ukfeMO?UsA`H)X|BqC=aDa
      z$8kKzw#rG@>)|QCi<)Ec9r`4S=aGz{cZ)QBj|qfW%~tgTPByN?w44B17&N2=Y8H*c
      zqG~9H#^NcJ*GoFipg)QMoR45|lcngIR`OgvZ`>%T{R;vuTbg*YG==Fpo9S#l+h7n>
      zAEtDSVm}iqc*CK1(>jJQ9KpE2zOu-E%s|n!vNEqqe?`Zu;0#q;($2Yy$~38C3Ks=x
      z3&nXKPi2=%RrXcDt=wmHypCCc$Tc;+6AQdgD$jefl8UA*1&<+CgDVW}^alM*6k~Wp
      z$D6pygp8FHX=eqxD$#<_?WqJMvC{`IuS(CTNv=Ha|4yU^JTEb)*wX^hNvD|4$RShR
      zSgkwWgxyL|v{U#HpD?P>iU?}BuI05_g(x513tU&zR*&6$H}LNY{WX5|L}%AJ_9Qy)
      zq3IhhqJ{5z?gC4Uc?-K>VIThzzCWJ8ll)_(hbz2QEB2E|*`DG`Wx`1gm`1&Spdqo2
      zgLh{h;_z(aGwV3^9rr=ZFp;ZJW_^d2cgg&o$Etf?4FRiAgB9TZOx!RL#yft1xQUTO
      z$2z({L^!nC@jb*?=Ng_J5A|wa<508KwecCk+G^rkG&O6-yZEf(gy;LdCYm*6-?;tH
      zui9#8m56>ey`E|}spdyi?PKi0C(QCw)_03~-$o3dGxIOdhc7ucx7hVxA&om;)+hYT
      zN?MKMBwk?NE$GFI)US#tJvc>%5OwM##%U@c)MXJ=m*iLJ6IQw1EhVK65m>K~CR~z+
      zvmFGVB!Tj)qvU55z<r#%TCU6o`LP0|t^~qC4M09%<qBk&03$!4pI9%?BpzaHRvAL-
      zwT1~TyN1{9V|pEz8ZWP5&Sx{YYUIw`8W!&HXy{w6;Q)bwU-<rw4f8vNd`x-%z*(*b
      Q@MlF@!=<!xjHtrmzhqG0s{jB1
      
      literal 0
      HcmV?d00001
      
      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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
      C_QlKq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2_vv7=BJZnlx@oNh?KENTH?qXd6WYp@nK2swruUrlb~&<2E^@VYa(5+0-Il
      zbMLJ`z(K7uFawDrGk#n-<3I3+c<cC_-8D(4%*aJ{-#zDjpXYs^^Pc?q&(FUAcoVln
      z@Clr`tMBT2nH}BKD{@Dgc4m2A>gEl-uJ1@&)^p|^D};c+=<^d7rEWLt(oO3V7*c5&
      zLpLj#1;a9>zGX;(!G^3?b)zWjjjCnd%w+|{l0bC9G8?vT+C|-H%3x*u@BP2-Utm`O
      z`(BM@v3wV;VArc=Wk#THwrW=Gs{)r2hqqs3C0QiFf>o9g_z}}EfFXg27XnKb`yueM
      z1`SbxBl)T+SDHIpvcBf(jODEoW$F}5-QHrr-mW$T#+}~&$7<>em~@`6vTT$Df+gjm
      zz;GhjqiuETt}NLz5uCzk2yq(RHOk%7@ETqZ;f%nk?pDq)WJNa$wr<O7dnH-3c^YAi
      zQ@%r!NXFT|A<J>gjGLA@<*X_xam!(xj^H#Vlw}Fp@EpsM#Sl^gV_i;X3RWz;(5%(0
      zx-H8cVjiXZyr~=X<^Yr@E_q9x&$Na#CL?tH4UI#4P9Ri~_L?&u2R-oyB!csp4&m(s
      zp16Age#$sFRvsDW(Gm!6>y2$S8O%&1bBcdf!zEl+ptIb!Ef+~m!MhsXQ&Z5_a3)hF
      zFKD=mb0J(480k9TmdrP+Mp@Ps()$`dz-3k%(yZ9qYH3Nsb>s#58_g{jPvBT0m+L)r
      z7l(&_9xEDFaf4p$s*AIFN8oJlVf^P{&%|_!vzQ2@K=Mg-$F4+>#Z3)GtaC}P)udS#
      znCb=dDi3$!DVhmmgZAB4NDBgyg4L{-<YHCb`;o(cCez9ojM6|qe?j<g0wIJM_w#Sb
      zhX{YXU5xv<Hh?314)SZ0`2oJQRC=n7qp8WK7=G+j9OH9<yTB4_uHz--F~YBun~&po
      zg<q^BQ<P{bQVc#PdX<stgxAGmT5`UD!BiV3AFV&b>5bS}8)tuYY6I*!$=WXKCRaWs
      zv+l5JPS&8uD%A9PxVx-UU5=%Hhxi6T|9&dn#*`DKe}h;~J;Cr~3z-()+Gn22ae~Oe
      z7xZY44&B31e2F34C;nFsU);s)s2sxuTqNUhYJ7*veT;c;ydE-qD+hv#>rsb9Sq(hs
      z5fJPM;P`vR7acGlN@HdeKnqts>vrmbeBA>Q?SSxFcpwj`M3H3)F!u*>+L&KYJwtXw
      zE%?==g~dR*h1^eAZsWt)M=h+mY-_QP8MkojDdtpSSHMZ40^joakh;G^0^jqR{D4`;
      RbNI2Rr);OEPaOH1{{myFixU6<
      
      literal 0
      HcmV?d00001
      
      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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
      WiC_l?t^S5E%ulh$3H$Ln9RC8DwrJ4+
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%TB^j5IuuP<&81%16aX^hIMyDT!AK%xNvuECQV6uZ*zMke47hDz>hM_Z4-+j
      zaWymN%sKP;{`vd@u*7YE7Gb(q2Xzc{rB%W?YZq=;tn>>fY3ZzTsnG%2go*D9Go_R8
      z`F+o^Ba8}Dx(BvZD_g?VZ2n3Zc(~Sk@P4*wq$^`GagTi8u&{it?yZk87k*$FU_iKQ
      zWWNldFRI4;tv0{hf5-N~HmXMdVe93eRL;@-UzX6@nGYNDW16v?aq*Ug->*ZEyXBui
      gTfTISjwFNtH&yIPEk>S|*cWDq(K#adSlAXOCl@JiP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%}&BV6ot<qP*Xq=1@SNFPC;!<++kP<nqcrJqU;Bp;Fxx5+G2PbeFj$~E_?tV
      z%6O+VXbdJUdZ+j1obR4#KR(~y0UTi6K#ZaCz@PZga=7As;RqF2=f{GpYtff};PF7Z
      z>SWjxkNU+xoS`(`FcC3iec?%NcZBDY>9*NmU}p@Ox~u$vtDwW}fk@O2Uy9}G^9Dom
      zNGciB7>e614YzEr`ql(k-RUsI>+YQ}F@w1@Or#j*TT+ROfzuV<4e#25A=h$yw3X9t
      z>Z4&ixR*Y|UI_l@HLH}Dc=@Se7|PRA{!q6APpUrU)`6FG;5>uj2;Zk~tb=~vGLkZw
      zZFk`H#HrL*DgFHq_O%yVV1x$MRV0w4)1WSfS$c?t6xB3MYShQ*OqMGnWL`tfJXJHC
      z*2&vImioe2g$3lOBRv+eL=4T!N314o)H{uGWp{+aZ`dW7u0q)6ST=zf5sa)TVue=e
      I*gEdo7b{Jc761SM
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_f-IfzY5UyTvgZbHAgb3mah%0PBiJ+nqP<FGs7!A9S;QGUbXGl6ZgOiy!)5*zt
      z;am7JUibh$l*j6ynRM@TCYys7Idf87^;OkZ)z#hq{QKA60B{?A%E1zW^_R}rnN$ak
      z@AT<_`mFkRn>v1*hGQD$;1q#1u2J<Izh6Cg@sf5}4weaA%d)EnzK@D-;1f9Sbi4Zj
      zb9-*b;gY5sG3wKhz#p5<6o~Y&?+j=yy=a4(qqgUIjD}K4&!JX1B#_^obm))=73H8n
      z;6^H(h95D<?@;u-7mWOFVnBc`8vTh=%Z$0u38}-VC=!8|3_@nsW})l%Ere*ED`{5c
      zYMf~;2Wtd2QcSdH&yyuhILN`91ga^`7-`GHNV`Y76D)Y78J#0=Gi4<5Y0*CFhN4Y0
      zgSQA=wi{?l7i_3lwt6radamO$;UO^~Fj<tk=Yl$;iFA=-e?Gwkf<;}=Dw^0QC-L~_
      z|LRdsTXs)P7cIa<p-Uqgx{l}mP6^zXQ5w@o>)q$uGS#XZs7ciDha-mWs58L6y=?2-
      zgCUg-HEluM_&anMQk+M$OW?MJn`~DE_ANG<MVbd#>{GVIa09;>F=V2i&4kv82H8e)
      z=HQxbPb6L}Gp(dY5hdegW<h4fVHhM1`Q)z=SV1Rs&xxXD;B@&pa5p<yRdjIxX?BQo
      z#zfi+5bS~}Ytdm4xhx2e2;AAUY!wfKz^Pf)kf%22V-4|kXwMmWY$q5vE}m%T6pk@<
      zv8lMGP(kL(n-$BJAix<Glc<iz2@`r6i4C98J|0&Dcs~fehTjVa)J{T?!Fpnh8{=~V
      z*HZ%&eT6|ZJT}uMspgSD;NimVO$1D+;EJP^xwz@@_8<Wb2K73tsY0M>QPhc5in?g_
      zj!5>E;Wu;NT7z;eL1m)o;Vl^Pvg?n7Uy(B9)F`sVn%<U-yk5a+(T(C${Gi7-PG)vm
      z1IOI|j2-Mo@;s*@pR!l7F)C<L_-#bPBhk3HgBsZe>4=_k>)pw)rfN1~u2*eSK63H`
      zne&9erBGZmXec}-Lr!w1s*^_7sJ2WIxf*kZ9xsM;5RCb~(Q@&9v}kHJ7`(ye;IZw}
      z8sD%j1OCCHp7pfx#$1eyV`|QUon|pP3q<rS`}J{**MV-LdFXf}s@>a4dI(s~UlvU%
      zK^EtcrI@Ayfz^?JtYzjkGk;sOgHhO_c$de$yCzyqzNv2UNsJFD0<Yokb$p6#;3F#s
      zr}5t#`0o^c^FmTQCMm&+k`&Qy70$p}D8qTwEy3F}S1ziR6<D6y2oEKAXXe^EybDVr
      zo@M;z;SyZI*!XjB9p2McE+OW0<*Hgajk)D<Woq?4Y$#uO%&-g}@O4DH4x36Y{cu?Y
      zZYWvI#m$uDL-<HUa|^2C`!POfd31N+6Y>2NK2sPnmb=2+7x3jV<a<!l{I5b8G48>A
      zi|m1c7i)fHk$w#i4QW~U-hyo<jkBu5j)-*^_Qdy*`hEiq&7N18*Z5obPDv$GO(BcB
      vMwjhd^x|Hc>K(unrN_G|j}>`}b>aNC;hBNJW#7Z0Av=rze!zxUf*=0_&w}4w
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIiT~8B16g?NV-LeI#sGuSsex=~YMtLFD_<+Qxst+ZQK2F=~I%GSWth?2p1y4;R
      z;Ro=ejCXdoSS8u`;>*2r=bkxp=FGkL`QseGOFVEfLwI<sM(VpiR7M3nWRv(G_E?z?
      z$0LsSQXLLBcHs~j7U+k{1pcSqG4~Tf^^G<<c}tjWZXFVwchP`7%wldH6;ug}ZEg5t
      zI_z<Lpn4$_mfBHYg@-EEwk|fE<ct1Fc-;O6DJ{Y^!{4Sf5=PDJWUj4~#M%U{Qm*pu
      zK8GBrgj-wXBrdKKRs)mzS9Is@d1&B<wc;kB`@b}b?+XL|tkN*qkA_McYx3`}D(oOs
      zqBP-{uwMQsLTymIpYWs<d+8Hl`OhzzbO_C6xrq~G%f&k3(G?@7{&@oRu!cE;*NM`&
      z&+oMztCcBSF|#i$7d9coDbo&#;sL4>U8!~?ljO?w7`0Pb%)pcANd|V|;5F*9n$JO!
      z7o?KW!=gk>&=E36a{UaA?$c+_$5=X%GN-Y(07n_cb`C2j<N$7AIqTQ4g4@}Jb=<+-
      iOyMf-6&Jjcj%BHxVXZsH#^3DyDS@?1f%h{Fo4)`{9ReBv
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_e+j7$|5IriTE@`1HPzvQzE(IEH;eHFZlD3c;Xoq%&2Y6siqGSw?92_|lUib@s
      zh6g@?k78I$ifhLvtr?y?-d*iEd$d~V*Y6)c0o=e#3nL5{KG|KnS8Cb9Zt@lvvh?~n
      zx5XCsyWFpMLhzb&JYiv!VLFU0xwdGQHa>nL2g96QudjR3X*e}IjC<vDBp2Lg__p*a
      zm0GV_w_CiNc4np7A#BZYCHHkuoL9N{mZ7lPtMPV7s$*dv!=)6Rs^~~t)Horpd4Z@$
      z3oJ}998%RfUa7hfIT&Q#vUXkbkYX$xV7Q#(zZnSWwD?Aw`%3&yjORqn=eFc(GZ{8D
      zYpv0i^c~U6kTyoOnBE`l?Q2%HaFAg!&51W$-7*mw3x^p>smOk&WtW)NzpnPEb+#+8
      za3rf_RnI1GQmn2yhH{i)A%&tA#DeCtvQh(7yjI(FY$1~i7<zf7d#|KRv}4?4)ZbZP
      z1}`u4-!@I1xZNOr|F4MgvUT^A<E9)+Og6b(mejW&1IZaGnr32b#hN#^0SS!6o>(}O
      z)d~?xYA7)5kF)4Rr|NGsc2{cz7>>>|4Os$N;SD=*<%-v`9l>yTN$*|a_|kw2BUK1-
      znO!Po;AzgPr7JYyXkb%ZOrENcyh#(3Ayin!RYk*NC=XXSqnDz^G#RckTuhxr!t%XN
      zdtf*)%n)*NwlF-)4WG<F1&ukP>wTtXafauLsbQKWuH#N^n`kLg(dqQZ+D3!nW?tyx
      zJC#EZIPUX0!|CBU!W9!=0`7lR8$g{<9ljtvBi@9oS9|TU>5M=+ZfT2$%~(*G!|_3h
      z=Y8Jty5Vh^aoxYji<*^&?rjT?vaag>yCUOMKF*6An-t+YVX~8$Esyf1iw>}2znp#5
      zb#2$FN0D!BH{j8wM29p^ft3F6&m7bc$vB-6w3#wff$-HW%6-*0JNH@mqT2ETzsBjI
      zLdR-ets8tNUJH-?7z4u|dSn8}=-IdzWAty)-xx+Pj)JmH8rwKUj$^;FPGQ<u4^Zq3
      z4q+B^IA(muhxkqy-!$QDuhUplI61_73Jb<NNlfQ(n%K-J#IrbOJes4nF5<kgj?y=*
      z<pM4aSe8&6uw24rV<}*i5Uv=EYbY7}wl>%4ajx~!v2!N&CT^u-Z{v=!_1WCTy#dSp
      zl;r^)niySKS=I3%+NY%Tab|3C|8#~Ycxqz9{TnAOpOK<kx96xN@@VS{Ruk4)6zG4A
      JdSwJJ{s1R+z6AgP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Ad3+RS8GgQGlUX(cg@r;$3oK`|*^mW<9;BjNDTyJp-4MFaSclyq8Q9E*+1&s=
      zJzDFnNIgoe^(uH&EeZ)CQtAa->rv}bt=9W*^`}4m{jAsX&CJfuZnmWV%w)gsd#~qx
      z-uL|`&;0k?Qvg=uPYP-TmhIO@w8QZs&C~|;A>GW!w{OxlGof1}y0t~m=mT0_R}c`G
      zDNn{TnmG{Pv3I|o$}6ZBh`t(mTcv_vHFG`Lys^(nX?Y`SZXGi6dEFAIG13Cz?vlks
      z-ZIRAc7bUbBbV1r-OAA;=RhHEWa8ai=5}39KiHEM5M2WGHyWmq-yl%i9PJYbY|f_j
      z5Na`7#TA$t!j+h(V6MO%+l;B_<DGnLOs6e9ms8P*`2y;Ip6|}4w9K|_E-%p79Cd6~
      zoNkxeu2OL|76>#@Mjr3chIDE#irC1xaRjl5x_6of%<LgEGRVUU77NU)40uz)$fR{E
      zgr!)nU|Crb991e-;2HsCM9UQP9s2}UH2Yw464mZH?e`#r2%-{*7J)1MBCdzgz93qO
      z;~nx~n~FGA5m9Y;ST~uPmDMDCb{!?I_w5SS2+Xi!vvakDlnRl7v*lx*ifeHlBOq$M
      zhD40%>XKG(kXF|VT;1F?Ie?;WdGJORua&?D^I6C6Gzh#-#WaKzY!q1FCD=t=W@qc+
      zls+s;CvZi#Vd_1Fp}o4*tL@Fug|MCTKFu=ZZ+9_}A2i6i6?U9cl?=HUlzDYXFi%UT
      z{X~~+l_VC>93;!sRXf=}*{c6ohmm37IEVZ-+Af(N@?y;?c!R)_63sd@vcfYPt$~6p
      ze(zuq+lkx8h*`*FBE^!69MW=;Tw!=PW9aF&5V{bRNZ+iY0jh#q1!k9$ywS3>BQnkq
      zZozB?I|Z5s%tAbs(Q>(AEk9_NtOS8{&_d|NE=k924M<{-g570|k$P0zj()O(P*za3
      z$a2aAi@pk6b9uz1N@<;ms^4d$C$RkTA}+|ZGRzqEYN-R|P0ICy-jU0lL&F)nq1v5I
      z(jW+yr*c!z&Pdnx+gR+A4)w9NvQ`j=!2I4pJtB{8F2WVL*~-eU%O+Gs(8`g?L1d(D
      zv(V;&+{P|0w?Z&6tbm<yVR;e~M+n0Zbr0)S-q6|i4uZ6lJ<MG^Qqfb24Z_CC;hMX|
      z_Czt?{ODw+W^>8U)J}6By@)kO_e=)c7OgzY_Hl?VNM@B)N!7za(A_!2w~f`TnQfLn
      zAoFbL=^*YBm|NN@n58`h_Xspsx8O`dzf&RHhqowrGaE;#knB9Ec&qF~vXwarzh7Xn
      zqafl~vurj*OyAJUg)oA*OYT1?u)f)Wr3}}}NKamobv}o76T^DSo2QNw?_$x|jGJ4z
      zUnJannYl#4jBGbjRyJodf{jiRv`k%}!=)fTK#i;0*wmXWeJDGk`_U=Zl|aj@ZEev$
      z1rPE3qy!XoQGZ9aV5YtHB%8#CReS^=WicAeua?h}wR4NJ)*dsR?s|Izj^kqr9$~fG
      z2`k%G@hCpd+kvScW^I*EYqy|fbNYmePvTQfVHDls?Z-7(M$Bqx*gkwl#p9UCe&e7f
      z-8!k_v-lh-GpOZyY!5j7b_ekVmbq*JIVYWZ+H1nC5jpa{C}-oBDh6?}4^Co7aaacN
      zBnfHcB>!AO%F>7&GV+5FIo%?5(S&deQF#fIfH=y^Ad|CgpUlS&le1E=?FQ29;hfan
      z<;|rCl<e?CAc=8_Kz|Su0@EF<PV0>Xah^+>nT`}&E0-<^ENzWU=`P8eW9Rh4&KWla
      z`8XIu_$I!s;9Kqm;T3bJ;-b8u%#!7xA1vr*%DpVe;rAUC(=kJ;dPc?f@GQ^eD$fxg
      zUSVjj7e7$(L;Q%>SSoYI2?y0wBy#6Y1AdI3D0rTzOsW)r@Xm1+KgG{D4vd_CZ>uRU
      zG;GUL<Fi}(`+|yJ$nvn~fjjgX@FIS#;8&cNm-VBVeHAa^H>|xurZ-d8D+Ja~l_npT
      zi}YrvQ%PX2%Ly#9PrYIS$=AA!!_ZJ7Td-0(AtG}deWR-QsnaGy!eVB&7B#4YV!wHl
      z<Tq1|yyw_&rkwBTJjE{wK4<aQQ3QAbxUOXk;j@@Cil*+9P<DkEcDGC*l8l|jk}))g
      zW20C(fz`<|yk-<@M{)fq+RtFaDXIz3zzn>eYBo_(6YBZAm8-kBnxv^c2&13Z<u_t8
      zcOrC+=CB1@`EKB^4!TL8vE2Pj;3jONwodK`xYOl2TF+m=y4WR5pFmeK+&zY#3oWOy
      z;}T}j*IVdY;tY1kl?n7FW34O4&^M0TYOw1R1^w<Fp{hIS-d+3vx|=TDgSEKVcCW=T
      z;<`t3bo&lEA^&<4G#jgR*ozb$7f53PpAyHFe9Kd{Vf{(ZSiQaUpsiSSwq3;n164!^
      zD@Bi172WTNu5zu`hYy^^P^I)EKIwYTaL$vCyV7-pY(u5+<38a!PdJYPg=D}cKU8GE
      z%L3;ylB}KJqwYMGCTqio6UjjM&P4d`QQRAT+ZY~5lytA46mXgxIm4`vl7?eU!C8K`
      zo}*h6Sj6?E_^QwLGSBuqJjY95zq6#;0sEp)wAK@ScNNk1REj=VRrGyTMBiU2`eIel
      zqxhhY#>Z^fUSM_B5rRHR({X%AV0-O`lUUR`j)w)FM(_H-{J<z4i=99N*FMei+Q9b-
      zf#d&sX~A(sCU7h%3p4zAmL;q5iSU<Mnykh#oVrlr`L(Qb;Lim4FRcE*vJC&m()>HY
      z{Rg7>Ct_S%i+|yIyv#!TH@|jX#!mdlj$^Ikp^F}Ub!#AmZhVEwsiDR$Ch-hwpovk9
      zGKsQKkCv6K6YmM8T9$1`Wm%rB;YDK2<Y>+@npPRs*Z2qHdLsN(wfGjY$3e{He?l7h
      zpM?4R&TqmE;wpYPH)5+;V8`Lqa)%d3hgZuTUM+Wcwfr=`?o#`C`YdzQPk6sE?V(2z
      zj<qCD<5EcLKZ8r7_--k8C$ZYgTo1kdzD(am%$OgDjpMl*Jd9afeJsYu&&To0S`>5n
      zY$;VOvQ3L-OcPNwiWV#pF)SA=5f^P(C*lle6%t&#U99n?r{4>!AHT)#==u`0yXlEz
      X8Gg^C)Us(Uv_qBY`2$0$!5{w*QOpR)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%T5A85UfFD6%;)9x_F0+8_(VdAt6CMY{I==+R2dJSu&2qZ}Z>>@KJ^yGR8%?
      zOeNJdRo%7z`T7R%fL?-z!eBuw`b<l*q`744)2AVm&DgEjjksV<p0`wjrou&#rv+J^
      zzPv6t_X<~<{iIwL+u!6(WuK{Jh0Fe6`lrskGgdz;-0aC`Z0D6zxIHj&@8T!1GOF!0
      znTx$p*^+bfX7XC<^?&-;J>>4_XB^GjS@q#^9-Bh8zN^LToPQr~X(=ciNqs;fZ5*S8
      Y&`J{VB;skrcEnD^vw-4oE^h<f4IIyHI{*Lx
      
      literal 0
      HcmV?d00001
      
      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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
      JATp{&;6oBi_mThr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-EI;=7(GK-KnfJGR_TwmRxO}`n0SXVQ7mQ&EJ>k6>xCI$q|?Bx?hcJUgzut>
      z#>5LBz~}JJcQAfCkd}sEyxE!a&H2vxe)i{|?>_)MKrV_9L+*s1^7o|?S9~BwLg`ZD
      zso<(5yi?&hu9k0Pk8A0wD8dX|bL?3PL)sUf<in2ed`daApE0l+L$cy3Uvs59d^i@?
      z-tWfpuWI@uL-t_*x!r0XJZala=e5&p+f}<_07Ir8n3aZH4N5KTNi`_PkYre`HC_})
      zT`IEZiGlRB@I;?s<Iq_s7DJk0?L2R+W;5e%_eAux!$*QTG_Ds0(mZ=EGejOqCG}&5
      z{oH(gGm%MBx%N-Fe1{=iar+{UC0tA33a-;e{!cjHxdevw1TG`Puu_*wIAa=%*XG?J
      zHIk{jJ=z4PeGr}o!}?hI42Ais7Hpk54(ktZNiX8NW3Oj~&-XIzlEL!DJI5umGE+<p
      zgf@zkp>F5$^NttB8gCi(stiisTu@9gFvbqGy+nU-80)YQArvJPLJV2Nv3!OTgi|wk
      zg*Y@T!(}w;RbpNxbZk_BRN>zJoo`qxWUa5rem1-f`lgKAOL93v60fjHv4@lsylmkH
      zoxyF}I0d(xRAI=(Zc%kXr77%^uSI^hacAmUqLa~^RrrGJC%S|Xm<8<sePfcC5T+&!
      IcMWUrFO&`FRsaA1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O;6NN6g{_7rZ5y3Mm`i&MnRk@A0xVOfpH;$Xab{V2#M|<!^==?UrE~`vo@Oe
      z7x)EkTxcSaXrg<6l<~e!BeNJo7k#hq-gnPE_ukX~{`37OfHgd@U=UhI;zV?6zEGki
      zeW~Kw&J!tALxv|Zd?7>MjUqQt3w^B{f#=C){9pg3YWp%2`ho?MP}Iq4o=~mY^Zg@^
      zw2&uECf0WBdbOSa0v!`7+u8W76U>7^Nsf9=$j66nw6I2anlb#c@)$n<$W?Cqm=I;<
      zbSY>?a_iMSu5KeZkV7Dh+ZcvjKn_=Ij9`M0t5o;2XUc|!LH%~s#t;gGv29n$dfVTZ
      z;jY;CxI3lopeejP5xV-E8cp3Uf}4@gWp(xU_l%aiId&+bogkE(ULrcq&Q<W_hL!BZ
      zsgW>IsV1CyC9_`O0&m;6ftwZ<2;~d))PqL5d6-6TcAD~7D{l~sgt>Z9_Bmf!rU}b}
      z53EMl(~VdyU>+6S&noM&JK%28MjX1Tm5iX!2-;y&Zn?UVGkrgZRZWIqKT}GE8=i<F
      z8Ch5*Y-N*i|JGf6W)|)d7PDb-(S12ypmFp1-sl+>%G~W7KLflPT3`I{FtoaWVo@uR
      z&)PqNQC`RRw9Eb+?-S0_8H&z1O3v~bCY{_FroSZ7*LW?#1Sr4&y}=Oq7$t=nwoh?1
      z$6^-OdDm|`r@`1f@HE3i-idu9&R0yI!pePwX?|jZ0S%qkPU<9ZcK2cm$1O<;(llQt
      zw1HXY8*ZI4mdX4WaPspH%)ct#Img{!{~)_;-@>AIu<1R<=|d0vYzl9{Ng|f8%zKIH
      Ptf0n!TFrh1_hI}6MMirA
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      Ht%&>twtMo{
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy%Wl&^6o&svFSgvIDWNSb(Bg&^=SB@HDiwif0Vyc7NWDm~o4AAP%CTWQM&%{g
      z!$TmkX(f<AY*_FDya2BO;*1j-0g+gEF311*&Oc}7>(BQe0bIv5138A}L;ivvxm_M{
      zUvx#J+=uIeM>{f2)FUCgL6QV<WMGtGK}+34c&QB3OLv_ofj5vaOeI1FJlqpfr|h=w
      zGOz~>g^f5$6pz#%4^uJr&G`Jb@?-Zq!}!f03e+uznQA*jhdlD#Z6$-qU#smgjBdpH
      z!UDr&9u|rW&Jf}7)M7h`#Ae#<2)V;Mp<pPrV~@;nvPk=Wa8w-x32`&Xf4i_oo)wqA
      zP#X7-WeX#iG%?3uO5q2I64JtXTr_Zjn)A0jj|D6eP&`k0NFM%Z!dB-{cxtWo#Dq;<
      ztQ#mZln01b7z&?<cch={JG*z}iD!zMZlc0a**Oq)&!^p`YqUGUc78i@>{!}P-LbHQ
      zE4r-{+G9138tUXG6p^nE7)GkKmWd|AqK0u#!;@25l!jr(aTtvLPX=o{PNgUA2fE$!
      z!=BNKJ^>XbK0QH3g~u>Xvq8HYO!|m|2^#YhxlO7Z%|^Y!PEdH4iKb|@vhXIQZs82=
      zXL~Y~aF%wIfN9JSM8k@G*einRqO0{r^8~Yv(z#>IztM|J*`n|POOH#JPq6%{`32L>
      zV>qwT3pR9cP<=78%c**Y=pN><k1_<V;wf&x&m7skTBnXy`;MqS>1MKnu8^A?++Rr)
      B)_wp0
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp$xZ@65QhK4fiVLp?n}IoctBi6<5A_}5-}(TbnXq5*k%?pGZ<gXlZlBwfKTMf
      zSdGL)NjOYZSNB){U)}TZ_4*EA534pZgzbCvsGi(Fg{sE^hpBt1{M#rFxZ7;sb0@u0
      z0iQl~_#xF%Xu~3`kF+!&I9BF7`6UUZgk!CIkK;s6Zt5olx*!yf1xr<!ddlx}_Or-u
      zTWh-|Lhew9I;{~VDjOcbI*z*RU;<MGILH&G8#?5xe$eLlTD5&9%r>Hq7$~ukdbnw&
      zcRC@sjgcwGUF?9cP#Ltiz6yJ8D~)y7JJ|5d1Pf+@If5N<lE^a|XQTcHB{;39A9wgn
      zo7u|a+;&Vi%8<LtuOO@<i=1RzsthLO6E)-|7G!5%GD*%>Ur>A=Akz{Z!GI%JsG%gQ
      w!ViQQ%t~bh<|G<{nvjOgRX1NS|6k!;%<BV%#UE;@AUqbaBpQTe>CRx~8wGxWv;Y7A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%`QVh6vzLkz3r8&sMcpUBC$ZjjfhnRQ6EvoqI6+5YEmQj&Ta0UiudsZR>Hyq
      z*m?jDA`xdwBs3Ot&YYRw`TytR<>ToYzzRw(QiSrgxDmI0D70wHP-^2JN2VHuoj?g~
      zj<%)HySFXbF)Gq79Ku{*!%0WR!tN(OBq5*3Sc#x1<Ait44t5AsBMem;GpyVcL04w>
      zU(eU>-rgSx*>$Cr*&w9n7n%g88eK{cX$<G!VURFVS6Uu-!wVUoii<!J3iYVP27+z4
      z{$6y<l}ZRp^}bX7f2|5(e7@J<2ST^~hKZGKR~DMqf86>P32rEpgrCUzTJ2vb!D~d_
      zxFz?LJ=x6vUdy%@v*3I3ClE@=Aj{e1Dun?atc5|2IbK=iOq?@|4;Z@dAtM|;#(+&Y
      z*g~FXxi1K#C~##3iX5%L29uV}E|woK_E(|C=7&9ni7)C~fq6_|k~IiZ+?~SoCzw2e
      AY5)KL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~`}b6x}zFOh~3sLZGD$0@j9P5}MLN(ej~`wkq<WLQ$-(PQsK9=7S~^mOkpU
      z5Bd-M>RVk)*DAqf*Ye3H-~0i-`v-h=dCr|-l1vg;U*_JqbI;!UoU`wpKmPsoHvm(p
      zDDVl4?CXd6r<sCY)c1^nQM5AaCChwZ=5)&}6%}*~4Dyyt)iU#$TZgn`BfD?pECHop
      zR4NoD5LuO5@_KPEvuTyh;@+G<Z^d|2HHtZ7y;{f`WdX4w5U7-@<(wzP2BeT4%Pbh1
      zmR>jz=(avPpnbt=#VFs@EuCWL&7x^73M3M(d<`oO+)8qrP?k%(hJpymsb@iOMhN|g
      zs_4a_KvyEU&F^PaoW(FDwr5ydq(pvM2|?gI?~Dl~pO0Bm_pO>mC-*Hqo0mD4a(aGS
      zFPr@CEOuKD&5FRNOrT>U=2*pxtm1;e+;ggEsEN}R&a(>_87EGSZNzb^mfY?kri2O=
      z0iJ0p6a;yeRuQ&mmsI!>5V+nL?=UoQp7fz%$(11xq9U)I7$}-Zw(b(>r#+h<7pYEj
      z9Gl2qNvDMA!yVTw&4`W^PUB@2rw}6SN-K7ELUyi)KS`f*z=Db%4p3>8UEvUi>9tN5
      zv`Thv3T_CT@g9d8RWrY9ltZ|Q+X`+8oUZS%wW)X=Z;;(7iRHXrAx8`})kH3m3s$hI
      z;4Oi^I)MD7VhvNab=UO**?R-;D0sVx$yTW1U2M|MLp@(LHXaDX8{2qdgVuJ0u!KA8
      z96DA_&T*R>#QSuH?>g7Q0tbAc;x0a<v#TE*7{y(I$wso1$QClEUUNa*r%t8Eny(Ux
      z{4pcbtq`N0{ZD+36j8kFri?Q<j<RkN(lP70kcZ@e^q6}=Ed;SoMWhunAHC!S!s)S-
      z%Ze6?bm86O5*(;_jaw74Ep^-EtDwK}mc7Ki#5j4ai*Duse0;oU=HsJBV>cU6zS9Ae
      zBOOjTl9OrdrO00N(epID-KQu&jS(%C9)E`Zons8tFm#M_Kg*aAdWHxa_?+&%FYp4*
      zG~%ELjAD#No-u=vGv?;q5vit2a>X1jo%AU5EzDd)esPR(FUeOF{<S2Tma@VwN!TR`
      z%LJJu?2zz`ll4ow3l80vR3I)uOiLf*B`tM?32pocNo~k~gp@X{9AUD~e@+(Z8^ZXO
      zG<-(|`W}P$0q5~p>RFWEW3HZ<t0(5_iMe`Wjvits!~m^x(KC*+ebU7(i8dE~*x#li
      zPceX_hKfX81yNT))Kw656+|U3SL8DNzU^i+Kex%RJ;mftH1UD^YxnMVNut^t91?*m
      z7<PkwZgBEPPw<~@gRiy?PI-g>Y8yP=R`!Hf_TO!TXK>AxUC(*e8~jh(;8$?n30@=%
      z$y26{l5y&0kshZ?`h}1PL(=mBw>8}GAYsto7jYNMXYXPs&U>-wCn-*Kz~VE-Sc~m-
      zrMy^Y32V3m79SJFdbPc-SufT_!ismm;`@ZL=)$5W-zHC}T5PcFGc4_BH7wWg<}X-3
      z##ZFL8g|%rG(_&%^JEPlMY8sMzJ}e%o;^?Tx@pfRXo!4b&u4j0f#x-o>Ya>}`5`js
      n7nd<2rjQg@Fe9#FNlar+%wR`cqyIui=3u)!>$>}qv~l@AO{e<(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&q~8U5XQf0YoqaB)q^0OJS7SS&pBDJP^fwkdhxU-(~y$v$~Gx|HV;044<$~J
      z=whLG+MS)>e)G-D$LHHSfEyfp=n#UrTB=o4Dy=duSy$16sq$H#s46#lXpKq}wW!#7
      z=n)1D9TiGv(c{aUlZtSv($xJj$%WQz2`ZRu6mQ9RGd9W#DgO<*rQ>i)@b6X$zcyAE
      z9(D*9zXr!e!I>&<ZB{pZ{eXm%j4RjjSkDaMDhQv~o!k#u>A!GHII~=uCA*onAHwB-
      zI}fKG4uxNvQ>!KVBU9_taqmBw+9oVxVZym<z}ePyqu3`9y0UDbE6dwLUt&+9o}AnA
      U;$v3=!XEaW%z@koLUnNT1ye4q#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-J8J?#5dOy38egOgsZ*E~Ijrpjtt1vg`pMozR=nMCuHtXA@CW###5oe>AaKR7
      zJIwc(`OcT)3BU*ggBsyw&3is18GBwyCO#$~A-Zp8IlADdnTt_!g9hQTKqedZt7P%D
      z78?y(gkdFrk_S#LZ&icvoJ$t=Qr4e49r<F&!+E9B4LPoc&D=)4enI73$FHA+&h%jA
      zr?_it&?UV6bG*6ej<c}y>7AhDW!U9b)IbPN<s<$=dN0&85kg(7sTq@|X3*B|LA!>&
      L9j%`JYv^AA9I|_8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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#vwj#5sB(BY<`@GB5)%E6_8HK=-jT
      OaDZ40oIsL^feQdo1wu3c
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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?ZL|hUBimxF8OF%K6`WsMl$`38nUl)MAc<@w%sxGku|W4QGB5)%E6|IK
      SKsU29aDZ40oIsL^feQf0KT5&?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=TTc@~6#k|c3eD2iauGok@Io)p3f=+nf|_8s8MFyLIW22h((XdLB}86)@!ePa
      z4VY*mkZ5A`$;21`k@1_|(t-sac4p4ZIp_P%Ip6;J^W__W5j+UMBXE9IZph7aQJONZ
      z7j@H4&u3TloIP!pZE5E80DJ-w<&-W+GhclTph=+JxizfxqFyp&!FVmR1)a`i$IR%Z
      zvSFFerymN4CjzZgmXp%X$U;T;|LhL_{t(;R5b&9@$gtj-6PV2Ld0e0+SCHkhG6bTI
      zuS;mrE*WN?4owq=Y1oqjqp|;{YK)C%$YRP`)`Re(T|)#N0^V3W(*l9h8Z@-3(-{pR
      zgayJghN;h0idnt%%q=-OW94KaBiRPFpnB=ESB$bi|4C#HI!x+=F5@Ew9Zxg(Xfvm;
      z*=%e%fPR7DhNjKR!Yiv()R)~ks)p5K0=OX1(-2bk3}OJ6R0A#xbR0t}o(ZxMG39ZJ
      z9oN?@vcMXTxVqWK<1du!kcMHT1hl+vPt^z59*Z~D7sM5e1~76&Z|-<C#F0?>u4%ZA
      z8&nhX)oD}4)r7|=+0l<GY?MQ_va3hsQ)Nqy8UoELvb>^%;EaD-1x;!g$AqFrWd#?l
      zN-3v5Hk8iW+|YwDrc_(ePmW%Gey-gJpqb|u{%#%w`B6yDnKI(u#5eYlYn0X!-@V+!
      ziG8#slDp_k4DF)plM~R*H3}csS+4U;xj-#GMGtTK+%TL)FD)i;V1#p0KpqF?9QX6Q
      z^U>;a02g>xfT6@!3@j!0adBuLgLOPb7?7l#J%kgg;e?12W;SL}|Am9YDe*>?^M<y{
      zo=X0Jcn`mKC;1&>c4!aD#AkHvA-#<@T32ax?&0P({JtIU4kJ8l9QZYHEwY6stF?%*
      zM&xy>Y3&f3RE<pvw{V--AyzlWPN=G>yegYCcg57Nus_y7)C7PnC!yv#R1*p%Gv26D
      r4hMJs8~pazU`nPMJmxR~B5s{`+~V)PtXJxicy}mIq(<VNL-qb&ooFS2
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY-%0{O6vn@!s~fAPX<A7)L4+E#M3<H~R-~9+SbIO(pey@FcGvJBdYP_-f*zoU
      ziq5D6r5AJl48QYzbLQ*&{S&}B$~t0%<FR-VGt(8G7)n=qk@+x@frxD13vXrvIZ>4k
      zjc~X|w(oxlLN1hnEgVY*Ax}KDt_jp8WST4#2`{pQGnI*t>}z*qjYov!rR~{KgAlJ&
      zErQncpQV8~w$m_>B4j(ZC%aR(FM~(XcO)U-@ds=m*oOPnr526skZ{sjd)<aT>V#rt
      zL7I;6hGs7cY;RbvTFSVnj0*(am0`%Ap$wJiACzG9{An<dx3+rH{sxmXHH0JZX8g~D
      zG7?B~*13yeiw}z+#WBq{7o3T6qBck7ZGmJt8jJx~(9l4RtMn4W4)WY7fdWS*&|p%r
      g$=c~0yZ;sL*u1q+C@ra#0`n+gk2QD+o{r(*2Oa5jr~m)}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ&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
      HcmV?d00001
      
      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
      zcmaiy&2G~`6ot>tPtzps4}sE9S}0IZ5)c;aqAm!nL=_6OAsb*Z4TEbG+sJmHD|iOp
      z1SC+UE_eVQ3US6UCISmKGjs2p`^~x6{{G|i8-P2wUO_>y@mjrA$F`?@<!Dd)vAwTf
      zjr1^f1AqH?sNa}F1tr1iU&`HwnL@A_>Cjc9fes^9JbiFqAiILOZs13;^5cOTjdl6M
      z_PzIO-bW><>R)uhQqQpMk@6ioLv9LY?z+AkZwZ>MTt#~zD0PFEx`rYaEm$}sD7M;z
      zDg<XO)KC{J^ju%>jlDx1_SNA?3mUy(NT-T^8K=ooeB?%g8_7fe8wkA#L7jYCQ(h0^
      z(Dj|o_P{v2XdJGx-RZJSA*gsdiuf6f!`}l*1%g>e$6Ym!c)#3gPbvCGVernhLR$@r
      z`YPm_4f0QUc0qaVAQ*>3z2lm>G;==vZDRyiIL{*gngUi(#tfrM63sHhA@f{f&cYnm
      zc}6?T7r56tCs^p*{EEisM1PL!d_vk|#UoVl7)#8ZpQyPnGh!W@q;kk)UPzfws4*Vu
      zom(eZ$%Q_nx#ui?kwDic@(fx}p+sN}mxvQw#(IjkxeM{-&KER3@lb$qYkCEo1ZYhJ
      WDNs0-tIU{w|5+U77GF!A*!T%NLB2x(
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{&2G~`7@RLZO_R838(IqCuTZFxfUvky#3i&6#YI4a1>CmDDm992WINDD;Bi0#
      zRpP*r0}sICAZ8t>q)G*sU4P%s%r`shpTEC-2XGI!O2`Q|->UcO$o5sB2HMv_V!s##
      ziRbI>C<>$Pqn>`3cwtaNL9j7{-QAm@CqThctRqhiT^+?FzI^;hAiIKvP8h_A3KCZh
      zN4i-4@$BP$=T~1))Mk=k*)j6=Pz3`!9lj-)d*B6L@=&nSoH=c|f<h<k>k9H%vS49Z
      zkZ-o!G6d%=R8SQxI$ofkj{E~1b=AR83+hhTqdP^9tg~hzIrL(|c*y_LpfjP==B%kH
      zm-|WN1%s`YYy4d@{w@nvrzs~0LCM!~%oi~J{>G321oH!(bkr#3`C79zh3Fne;RkaO
      zTB;G$RT0-TK8A1#I?1%MAC97)-tkNtjmi6+dhNT$0<JU1Jb#rO8Yp6pRVl6J*<rZ+
      zF0f}|foqM`4*NOomG&_f+qb`>{yD|3aIK|EPsngk#vWGLJ3mHqUt>icE>M-xQuAV_
      z`J5Qzq1wK4jK-OwuW0Ty$!}88^)dWJw3>-h0#|UAa)N7E&*W|HLiu9*3+kWvk%Mt-
      d?h5o%L2C@i1cj;GV8`6|pXBgN@<ux1<{#SEx;6j+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{?P?Q26g@W|O`B{#jMi#eYi(7MD2Af{DuPA}jj5oGss5bCAzevkWk0l!rJxiP
      zd;nj;cM;F*t}$wee`e<1Ip^GS@65L!pT7dw#<c=6g6pr<TXoVHDx>;(s7=^-7Mai;
      z>iq{=nMWr*{U&rhQ$S9z^$)hSpQ1-V!BU`oR}H$_4@i8z_fQ}$!F<y*L8wgFRf9<9
      z_wL-k-CX_tg?K+HI3}^ywv`$KW%|GDjBa-XGk0C%hW7-QtJ8qBt{~U+Ug;vTSaRUt
      zj38UBb>|>B>!65|V6p8Q{UjP5X}_b623k;Vdp+7$Y=Uu`%!S8pAV}){e_S*vl-i!^
      zZ_N8a=)0!BQ|nr*tJdn8V0oN9LI?^&9Rz$WYxVb>Qh;E#ufwK_0^YAwYh#GcvG2XJ
      zJ<(m6ppNpnjs`1O{{#N_%aT<*@FKsbcU?QD%EXUy%R0gpPB_b7mO%x1%rGj%(JV6@
      zJI^`h9L#fFV6@A8hI_GoipBbkPbhzg@#nZM#7ZqP9%Bw|EHigLL33YWL>?|sl|!fI
      z#Z>btG1fz=e)ANSiK2%z_k!e?vFJtuABmPyQA*$v)+xsyhmBOe!CfeyuYW}OJr5aJ
      ex3*WH7YjNGAQco&Ws@1(?^LpxNZyJ|T>S}TOVMNi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%We}v5UlniPS%?Th7brL2?QkD0j!*ZxELZ4IfM{rkHEx?oVD!TXdjR(XFh`;
      z00|U{10TSN58)dSHS1+D5G*b;(>+zy)jjj&`=`$UHgL0qoM64DUaFJEKzXXG2il7o
      zPhu}}2YUBd2P$%XFMM#)(Z}XgLP4<h7h!uRrDQ<CT&M$A^&K6ABpy7xFOY4)bd!3K
      z@*+p|V_kf+^V;ftefy30U|4lTVyR^+HTufy{`8dHZVD#ux}F=|6RcFn0c(z+(DYwu
      z3wg}huyIb1uhyI?2+rHEP!`O#Tu(oW2ZuUntHZt)R9b$A_7$68oF)s=ksAtbC-wew
      zW^^jl+Zbzdq=Ee?aJ}wk%`twj7{5z``B8R;5R?Ww4Eb)x@2_E{0KsHeM@<!nykDr+
      zMiA|zz<*^Lqq_=0Z543MrYl(f4gTlzl4b4tanR9Qt{K+KzrV~KV++?f>pVYQ4vQ#a
      zf>9}nCYj*_@LXWd#x&O%MqAA1xLfs8%+}XGqVhh$U*I~EDD9H*7*p88JaZR^XzmM)
      z$ipS7a`M!?oNDe7V?31Ww@$Hmrsz|edq(o}M09ls&qT|qC?#+e%amj1SWV>{+=cSR
      m`Uh0r@sNXYYkCEGiJ(0Mq=Le!TxZ7gJC+=uNnT4z-1q^Zj@l0Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%T7Wu5QhKZYPbl3ppv*Sals{#7?&U$1TP`DK-d>(u;$Q1&N&dC#>7W(MdHG>
      z@rhg+r$9`Uu;@&u^Y#Bb{rrA=2XKyD7(PPbNzBB&JQiAv<XCF2+>y>q4P@K)n)Xx=
      z8}osjc*@pc1PG@a`29pW!t~u=l8|(zqlDFyj?10y?G=IU2=O{&p3q)TSW_ANcy7G-
      zn_pc*sH(K`Y6O42&?5xu_E1LP$8HP}L<xzO(y~1r_oee7`j#Z5TK0eq1lw@EJ`8w|
      z$|aOq8?W3pRE3bqFY&S^^r+nN9HmE<LeIEojC-089!uBd?=h}M`438nbnK}!kWFRY
      zb-c~#%-qBYct-wyLJmQMIET6NVTTthA<8kvCl{QFbFjET{B?;WI7S!)stDi`N#4a)
      u5cZJb$_S)68i5*<h7A=<3+(?_xMuU4r9yT^treI@76+_BION+t9Q^>;z<z`P
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu!A=4}41I&(Dhi^a#-le$)Qwm71Q8Pxbq^%m%hHe`%P<*+&Eltd@B{oPW5HlB
      z?4dL1YhU~F`t|+s3E&<V0ZIy&W6CHGCuC^E6E;5VQ#$8vZUdAR8q0E+k{N~ZV9bdR
      zu&dBqp?Vtj*l9}jI}K7+sF1bkLgC^1Wozm$`;8_XwYID4osmMdn<s3&o|;*J1BIKd
      zQ5_ogywheBTXwYU{G$Y@Dclw@I@*w1#CE-DgL0&BS43%h*)o`WF5ny&341n~m@#aN
      z3p)8POrbtw|Jq?P;#tN{;i|x;jfSYz7c(B&I+j^Hl%zMEyM&+g((Bq<)JnSCL}5pw
      jBBw3M-2&`Mwl7%~Wr;)7(GdIur-C;Hhx}*qmT>+9yn>#?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-yH3ME5S&dyOw1#xsc4X(!J;-5h*S|sq@X^WC0yj(M&~mMzed3a@KK133;Up;
      zI_>N{_U7yR;}gIY#tC|a%awUE+iY!|S@N1)$VxE_>z3JVX{u_b1N%qbNM(cg_XGpN
      zWT(kWqojxD6&Hap+Nl}^;p}|Y5$3_GS$+{g4J{|6ciVzD!HTOAj0mTls-fIVm`d#y
      zEsZd4V{Z6GJQJ?tu;}DG3jF7WNo)9I!>iQ#m2@t(FL-K8wLgh0yB3<#h6F-is|5O5
      c${vO~Cpr!E-B%>V!5`%CH=^4k<@a#>1GVLEApigX
      
      literal 0
      HcmV?d00001
      
      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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
      SYEMDBdvodjGa;4WFaHH_Db$+)
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB{E5FEFVz9@v!Lcai|5+dT<6DmSNAaN+-04FzCX)4DqjZ@KI<G=^-QHYJ3
      zga{#V@yPb<?Ck94*ZT*63k(~mF?b8U=5Kz?6%R!$l=1aasCXv0@+Uf8>LfDaiW}a*
      z4uhMqeaThm-_I5zFbthQE5jp|+=>muz`OgQOwB4%;du1K&@EVxT&Cg|Z!2Yaj(APE
      zOc?5+Ao0_`<SHHVN(P7Mmr~L^-gD)@a8P|KYh0=+M|{{U$<~=Sveo|ulCj4O%{foz
      z6a7M!b#HV-4@PfWGW2t)ZCbezGP=$JpaF-)e`+F0QA<g2Mp}_<d#ck_Ag&`x!oAXB
      zwuSR7U59}h(h`9dEoB!DvgI_;wAjkAjgGzVp=)s;2Nqo%TI}J-VjlxiVmPL=hLdk0
      C1(A^e
      
      literal 0
      HcmV?d00001
      
      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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
      L3E9VO0qp-D;QEjJ
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BJ5K^Z5dH=Z&YUO;;)6~r!Nk+piNP2j2}*2G`V}_knq$x0gW#XAx6xl<VMSu$
      z5Agrk8fSrMVr(pSW@qy~W@g_%U*7<1qiiEZ*t`*aF>rfA3s3f>j@{r^>fV(U+HL5*
      z@KyIr-W?A*@-|k1wqX(049E3__S}Z=OHcR*p_dr)H;ynD$xsQuEyIX;myII=of2ja
      z10BUe$8F&!GPC>i`26s(d{4;kDXro<A-!H{6Rg9aD;=aUn}dUCLcXcAJWsf@@IqYq
      zl2B*{9X1eb!}a9Rimz2f*lPZ7t{S1VKH`k$YQ>?_UaitLEtE_PMS|UvQN(L9);}wl
      zKnYGONWzXhQKq@&KbAMzHCDkh@(&Qo$RNwv<|>6LJ}iQ1jyZnW;Y^$})gfkHMvy#5
      zhhab+7WOg6x7-+nc@(%Z0!5BSpw38x%~m&tSop2bVDr<F!r~Y;QD8h4vBVlY1hZ3E
      F`2tpre~AD9
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJOG*Pl5PcPsjEqrZ;vZb-Dv97A!BsRMesCn{Le0LDG-Jz5PnelVyoMKW;R##`
      zE<Au2&?9&Pmtu7i6a+UermCxW@71fCm(QnX0Gn90kRnvC#I@)<fzZN}fz*i;cBKwl
      zQfSB3*TPqwQ*NB!bmc+6ExU;dwS_cc%@7@5XwPwdUwXpdjl7;w_{I_Pv5b`Pn=*=-
      zcj4|6=$J6M7wR|>I%x{OCo^w%ue0wT_qT-Xw$du86UIvACLz5ScBG9lOyyu>f-v1s
      zTAuXSUUV*6z9bYHVVegC9>evhnNBWMOxSAtW4Rh(t~4MHmpe-$rM+6YX?)BXA4P%{
      z$T;SMnfX6=7(og4S=fu(@=zIvD}SAF!!WT5-j;s|VHp`@Ia^$%FwP$<VS;0hJ5|oa
      zIa7JW<ih|m&CzBUu!A(}$nz^V1YrgRu8csDqY<bx(qOZd^+(M9Ryg9}?m%IFh#Dy{
      P9`jgW4Z<R`Q&{=}wkn3w
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJ%Sr=55Ufr%iLBAY#P>nalZoKs122(?_<(5eqUJuvVKcHj8}=c|UwHQ`JOu>(
      z0Kw1jH^iPKC<tCWO!xFqRbAcl_WAq@U<=DRqzJor;$HL|UufY<U+UNix>EZ$QfTK~
      z_7A;KirfB4PepNb(re3ZtOA{bMOZUT#}nFh8lERz;T?u<VkEwCgkmH^CA^jlBj#N<
      zjtO)|m^un{6bl`<gqO(7(qrf4{o!Mqklj~W#dSh@z0x9BN5QSMk;Zf$HYN#$rqc2v
      zVSnM3xbY;R)C}6(KyVwb$B$OrQ4wLU`Jd@(gt_%0b2Qy$94hVBDlKDV&KM~Za=wfr
      zUYRlQvxqU2U|$AF*p{ctSX}vYk(-8!Rq(w0Cxm5Wkma1?DuoF?EQLvqd4Ad9Oq?^-
      z0j8dYkOD`WVL%-g4p8J<egwh{N?aL%GDjm&XQaVqs~ZE%{#Iyk^RuDC{0KExU_9or
      Mz#4=_W~Z?91#Pv50RR91
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O-lk%6g^i*jZxDyt)xvmwQz`*h7?+mO|`JxKkZ=?&KsE-!@t!^i0B8jZrfjI
      z(>}USB`BfAyC08p&OP_Oem%Va*heXW2x0GDJcx<q3MB^8l`6EnkyLI^3T0h!)e@mN
      zne^o-bUc-SLD*hmv@d=Tglr&vM-02t514Ut)*?`wkZyV^2!#r}VmOwu;4S_B{Aqp=
      z;)jlM!UiE)u5<}T)4P=>qF7DAM3RuP9VIWv?8v_sy`d!JY_HD)1dri<@o9v2PC%&H
      zOYZ*Jr%ou8XAEm7)WGV5zM}^9N>>{wXajjd!j(b5$I*ke_%A5I?093pFHaq9t+;fu
      znx<d}ydPhkP(loG&I#@!SmDPKNODZ^&jDxR9IH-|ew;xv98HD+M=)@VELW*H2y4i3
      qrv>sHwLpWB8XK?fPO<)1;hcxtGlk+DwNPL@ir8Qc!X~pL*!l*>7JB9Y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%TB{E5FD41gz_q{6F-n#uzKzZDj`K`RYVU++&1l!x=I{K9K^SA-~;$5#JcSP
      zAr2hu+4b&>clPt^{R6-NXCXQYgB88fn=Z*x&Lvx?t7o=l#$@$WqREX!*Ur@@YaOTd
      zsS43m=zE$j$mV*Qt$6N21pgGfqnb)~TzfHvfL~fF8ik8^{9AOGJSs#>YL=sF!3sNZ
      zk}7mflS;oNQtg@Mo@qf@A$3U}YU4IZ<f@sBZF7b5IQgNyc^yjotZM5y-x|-o{M+r7
      ppGmCAe{yzZbAi|o5y7uv54|<+<6w=4TRht0G5W$#IFY-9({F+LVdek;
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZ`#yH3ME5S$BOhY&)Lprp4OEJT@(ph%H`Ai0BTW0s2}`!1Z%h;O6d1NbP!`k(+L
      znwx#i?##V^yuJZA!(oh`!ugt>=_RYlkmj0=&+LXxy<{@kLZa&niKf;x-nE6dZf+iJ
      zjBSN+N6acRI$JE)TzG|upIWLKh2!MvZ+DX3DU3AxOKu8RZhUEt!cmg`n9RK^jh-mP
      zGIv8YD-0#dOKr%vPSPYv?*rkN;-K-CoG?5Gg|ef+qGmO<55n3?(zz78{W_p9$ZhKi
      xo|Tn!PyVxc+Iff+WPyAb5Q*y@MCjbd=m*^W#sT(1KE!^&QCAn{fxJD8KLNGUVuSzy
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVO-E$LF6#v~e>4va;g>QrsDwHHGjeM%4fTaZqv=l8=p(5NQ+jQ$@H*7Z07SS2T
      z@zIY*_yhdpK^+MoGm5@2<M_Au=BwlH?xt-r&49y0?w)(ko^yWZch0$+KmYyZR{(qQ
      zv4%E*!_)G*oJp6YEsI9Uu)VZXHtbT)kal{M(#Ua2gN|MC+-lx)+^jw6j8)5J$MrOX
      z1a>X4Z)KsOLty`sSDznBV0FcCO=*oAZpC!$3)vw7aav%7k4f6zxU{N9_>aGD{q)!5
      z+&==5DOs5sbP9&R+F=zjZArVB&f1<)G~A3p2U9WaqCl)cJ?5V&ZNF)o-cf;x#8UOr
      zlL`OmdHkJ|t}Gdz;j@=XjthhoLJjK#x?8yLDQq^1q8%G_tj0!xkr##5!f$e1!)Af5
      z2Bs{_C`xO<Eml=OoS4ZQWslTH@RGph^HWCLW-{@ToQ>O#7te8DwXD7<Hes6r*eS5S
      z1;FHZ1aX15a!@cTdDry4w(!%1of=+d<rgsp<<YSV-7Jx1*hOzjpgobyMv!0=wnF7G
      zkWngov+<zdeG#MtdY=)0iG{$bVbeCwRyhyud6~1=RIy<v&vuk-O7822A#cj82=xE2
      zZfHGC?7fg8mJdY_v#XeF(gQ8pqs7=XHw!s3u2rQ)NKK^}%}pD5FO$3!g}@;lui`ZU
      zt!Q{>{lM!I$)z2>9AO-aq6--v`*A>79?@|W#{_g*j+sSUdR3RW6NzLCuq}E{xjYiZ
      zabz?MHq|)*$lRUWbn}4Lp>y~hfrBr?b7mQ#XLaaUq0%{{r0yt2Fsk9~Jc_DkTIm7T
      zm9rHc=kOMpl$Bw#;<3pRL3Y7?GEZedm~W<D%Phwj&S*F<u+nee1x*y=cvr(a0&5og
      zx_&F^xQI)v#C3I-jZO+|NMsvJF@Jd}AMfe7tfnAh*6%)wo)Zj+%J8a=l~|=AC$Mob
      zP@q3vHLZf-D(VY53@}oJH5{~Lg{`u-sr>$7CW<K>(qM8D7M=Mj#o-4ExWzlHao(Gm
      z@h{&XI-N;ui+}~}m{6_G9+0@E!v&*v$TB}S1%W+{&gzzpWHhCciJ&U5yqB{Qv>|<t
      z;D(O(F(a`186|537Qq}F>#~CLp)%!EM8}+}n>S9HYUX!7=S$e9xWNvx-_Bo{>lSE;
      zP+rDQZ5yJvt=f+AZB-mTL)5Lt8m=+!?sFgFGn?w^-SY%%A7FjYQ>=K5O&4QZ9$@Ql
      zz4N>6YS&Z4j=OdBZeQJSkW>dh(pejNxTY8!Oeu;h41JZCw8U2A(2YFypuj7@;4n|(
      z6bs$!zwZN~u8%uHLYjbuFTFyk&6oCKpPwo(gn9~}P}5G`zMkI^zKd}Cy`CoskECii
      z*!u{t3)FD<4%Tzu&;1)}KX3=((7pD1v<k3pK?mg<q;7`9%@Xe%I&qW#Rpxwb@gTwi
      zwtX1F3C3TEoj8d%>4kR^GYd#9_z1~B>SvsKiq4e6Qp0Hl;UR_};cX7fLtMCzQ|gTx
      zCKi!wU=e}Oh~#tT`~|l2*@Z8C6gvGYUIT`NYL|M%PyMn2L-cp$DKe?YkQW&)UqkUB
      zrXQdbvuh{^ILa|EkO}5GrPwT&8gAal6=nXz0xO+F0er>vYi!0h{04qY*1tnP_s8&k
      O1E!$`Ot*aNkNyK%9H3$V
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%TB^T6g`7V0eOj_ztC!8<C>LXOh^<K>~uA)Ln&!zu$>aW&4nM}M;Y&om4FFu
      z=FFXY9=UTrzurFpT;tq9g~46&HGlI{E_ozUA+@hoLZ*S>(x1}p@s@65Iadx28M=n;
      zCtODUG+2sIGgQTE!IPX};6D8A4!tLaRwVR|)>#}BS`g25y=TkZNwql}nh6{-G)X#2
      zc%DyqDj52%w-qrXOBoTXV^~V&Ix9l0GK#p^AF)L&L)s+26M2}$D;+CIL(;=U>3AN8
      z+`N$C<$l9$X6a}qroYR6)&ESqp_S6wg6E5odZB3#TyM-!)9PnXhQ>@4St#z~gu1<*
      z<y@JcuQHH|b_>*LS4XJA?94&UVjT^O$7ot?m312(TX%6{v4>NOebXn$0i6|`eFFer
      BoxlJ9
      
      literal 0
      HcmV?d00001
      
      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
      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
      EKLf+B(EtDd
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp!A`<J5QhInZ7BkR!pR4)z1VQ(CdQ<Rim{&bG}N_}&~057qp#+{2k@bcv!yX=
      zjF;W{XJ@{h{rCOj^$oxXLl+H!(Sn}nIm}5>Ds!n!Sd>!bGf66(a&&RR5eJ$~R;Wll
      z6fU*}dbTZGl1jtrY#|dP;K;`{Ems0V|NQsqIJgz)rqZ0sRid-fvIGWx@U1d7I#cOb
      zz~j0oFUdl;{2&r=Ide(56zFqwEzMfnnbgfo$+@E%^Uo`6A(J~_-J8xf>o`jlF_1yN
      zAKX;~{UB8iT#@GcjnviwCN<}@noo**?rNH1GrB-4F4j7cXW5eThkx65Y`t*=_-*_R
      qfX8m`z=3tuMYGyHw5ol#)@^hu-L3T=dX?_ib^A8Y!~<R%7<>Z4j(^ht
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5S>M(2ueXgQPeANvEj^3j0p*d3C4rB1&30y-PU$%@UMCB2l%6m(`5+(
      zjhB5pGjHB}eSLp?0zezCEXXiu&-oi)I6jx$MIWVdf)J%YMlPKp{RTJmd*BiGQDM}R
      z)4+mV2BkF35nQ^?a6HF}Vvxnxgo~I#wb|c}c3RI2Y!}rnPI)5K6Bh|Gs5D!@sSJvm
      z7*8TER9+yrc_S5h((NpHeRR3da#Xpz(o2*loDnJ_6-aEr7p7uu#n7#H13#qE#sXJF
      zPa2{{Y4<erQXt*L<9kR}!wCGdvXn@A_Ke4y<L)%mHRQ-Y>jp0*MvfkhL5__v3glR~
      ztgUrlUTiwdsbIMY2KiBtL=(L81c}!FKHGJAlPm+OO6Lc#>56-hh4h*h<TUO>USk0c
      rG#)}xqiwKc;$=9}{$r?Utip-LQ)AZ*o*6thb?Rw8b#Os%1}=X9jEtjf
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIo33yc175;Cw8IlLcV9<doBZ892R#99MQQ4Fz5fzL@+B7f8OENf_3A03^HnuLc
      z#V%TH6^vRd3MyK)W<sP2R!v;0wN|ZIwRLH0H`6xS{cHWteQ%az#-RN^zkHc@?|J8(
      zd+vYMnWz5y;KKlp!22%bDIB}r>^3)6cbXxy-RiVLvFdP_73yrZ%uw|zuIiU?b%q%+
      zJFS=%sSCA*SI4`$!jYH@1qz2|NoVuBP^54~7URB-QP?kPMFM89!HPr!;n3N2%M{e9
      z3X_+HL(!NSiZz(QxK((=^;0ei-!=FR1-GbN)6-=s%v-sS^MtKd!DzMG%y`gNrQp$G
      z)j>1VUcIV$z10#UPf5^frxkKoRAH*k5|0If)vGOe@9qqQ^jn1)8S+cRon3^jIVk72
      zJI##_kGsQ+b}S9I(#q)>>~*1-)ow+|TNI5&0-^S?)~wbvd3$^y6o{RmuyTHewDbBy
      zC=<9><51S1P#`81;~>m-;ow}39qTWVGvLD^#IW6pEe)E{=;@3Rh5hH3Wt&lqd>m@P
      zi@6HNeRRWZPdJw=YjEK(g*oC``$b()yJm5uJuZ>Ed}E8%6=SHlF<-&Ero-}uXp*nf
      z?D2)dF<&$H@nEp381vv4W6Bjua~M<B;6|l_PZYFT(UwR+Yt7Q*MzwQHjA&%NE@qA$
      z>B0gAa@u73E(VUmLi#djh1z2s3i<QP>fAVnahuEN811k+yJ9`QsE&dvH;z-Nn83U&
      ziAhkXHDF+}L~tNvogQb3N7hJqN}z>XB*K|(+&jdASVw^IUZb5kK?G$dyi*_;tObHU
      zAA%wu0+T{x4#=}3W?#qZz|9bI(p5saI28y{7fvQp`=|xW%$S)HDJD`YBsl66Hhhwn
      zuFGxwrcd(Bj3YD3Q*LTmgFvxTpqMFj;dBG5aE5{_5OpfqnA}O?f36#6F~{xT)V0;u
      zEv3^Ji0ULXeVvwso-f?ylQ5OC;?w!l9_Y40OwQ%-yK%OogS9o#8SngfI@~xXDQ<53
      z_~I_CRhT<L&@7Hb%pM6q7uG2pHUTGdDIPQ<!t2K86c#PB`;C2{sLzbBCb2Y`U0uOI
      zi)5d#EgT`42l%*%+435oXq9B~=M8u;T~?-n{V}}+EubB(EWGI|lXk9wHn5dUYSG=u
      zS`!{u@{(?2`3WdgiQBRuZ;x0edq3S}(pAD?qslsT-ba>k8ZBiy9T|s`cI}6rBexA3
      zn1ZS7Hja5t3>uCtdg}%YR_#h@*Z&{DF2oh4X&iNfU%^(*CSQyg&X+{k$RaksP8!h#
      z3J0X|wyXM*cp%tnMclZEN(4#Wooq`ge8uR2Up_82@I`!y)t^qcLUdeZX38fWl97~S
      zwAZ?EDbN0pY!dyKi~cW<Q)}y}&2G(((Ny~tHmdAw?7=1jS4y9E$HKOj5_}!sbb%As
      z<TO--$-q@oAo9)DR$=*;foo*%ZV88CW*`)G<J$^H2{2i%mmCP#!4<V)QX4X`i?S$O
      zhs`cr&)`j;xHQc6-y;1!YG4a)U}uYmI>W7jHr>W(5PP@-ZE9R|07&g6v~D!8AEt2}
      z%TbaQ@`Bx*J5BzxBNSO1;$|=^m2s<q+XNOD#~+z|N>GTc((|_)_#V!X?VSeh!VXT5
      zWLcG(O%HblqzQVeZf;U^w~LzZ8@Lzu@p@F_)DI{6$Ie<#=oI4z*zUpuW9AO~ooGuK
      z7{E^3sQT38df=F;EnPoqMdU#PyHX;~AS?8T3_Oh83R7s9&N^)tb8uQxTMB0hi0zDx
      zaPxX1$trZD4)6&u$et@WP)z0UJQf0uPUngfhYgfshT#9CtQHD-PYM)I%F$dsi|1VU
      zNix0li0{nY27Zd?>Bw&BQ>)rI#xut=@-I1>i;fozyeOlaJK%i(;O%MCnA?|-P@kIj
      z_0GXr41LAG0XR@Bd)2^ec%8ZkpB|tYf=S@CeVSNXj9+1^3vclD>58LY$!*^f>)&P<
      z`bb5DY5p5V@j98y7P;{bhouV1c?me~f6v=gILWDfN!lNUhebEJe^>9F>+$`cSq3U}
      zw%Xn&>92G#n_cnha6Hmtog9!EbB-iHwojc|u}W@+LkLek{|n*9Ot|>T&c*Mlc_`*T
      zhgZF38_-YYtbVc`>L;5apO;7&=qFL;a~gGUg5l>Z?p{R!|A1D1dF3!%Y8zaY34E$z
      z0CUQRF?ko}t@Ru}fU?~c$sJ#n?Iy4Nu1a?034D5sLpWM9XAq7Rg1@pKHTUtHJRHx@
      zqqXG`Htr~Gi}7ny9COi)Dx8l6*hropEX4(=$Awsfi_nN(cJ+&~h_Zg$UYvjvxufMc
      ziT6@^wV10sy;{N(1UWDD<Y5_U1>7yycQ#Q(M1c~2c}1nSKn>uOv}pn?&_{r8)W;oV
      zv!;$KNgY>$<Z&gikE2TI$@(ZSP91-+x|?rY)IK5y58yO!!4PK9f&}U{e9PB*&K$t%
      z-QGe?FU+8?(exrsFUp`dXgc-Gs(b{W*@9v|&fP4&pt8@(OaB9C9Ku{anuc(Y>|{BJ
      z<~-cw@O7m5d}7lq;qn%Y;aQ(NXpXH(c$yrZK1WYb>+u%!BjooM_VXlfQ9qi};5IVT
      zfgyr0%&2?<v+)!v@idOXGxW`~oTs0|I;L+ko<|TbFalo0CcK1e@iM-Py|@RjU?*et
      zG1iIa@j6#;;7$I$gSYT5-qsFVVMCm9*htD@BPoZCq#QQlIE+p~7xP8pVgwtwD$>zY
      zm*vD^osGcgzMMFbQ^do$JQmR?^X1jv!iR6dmAepI%hdq7Yl`xZc5Oqwx3JW;U<eB<
      z^+HENnK*kFde(X_9KaVGdavh_1TOPj!H)#Ks?`?hSA+Ok9?rSUrAl4Ye9Qmt6OVhn
      zMdHh=^Efxyv2(5M%c7n5PCxqm+No(ru4e&(GFUJsqf|}7Y_%VMJebDs_8uIs_QwiU
      zidAX`zc(DnNqi={)GTzXgV3uE#wIlz*C`)vR)=7#n!|ZuHtto2;vw=pq2^()It*{A
      z`K+^k7S3|*)U#On2zkn>qbaA3rkpyOa_VTxsiPcZZlc4wSVV4S=__KvIh&z$3xh<-
      zRKib|LA8Kx&gThx${#`D78K_1DBpv^dVd19Rt(~Hg#@;3#;uI`8t(6q{oR{!4fmm8
      zOeN_aHe6h~4bz2W?-RIxGrG8Mv|0LvrO9S#Bn$VNrJgKJHp`%}EV5ae$ils5@sp*`
      zX8ED8%-n`jA(4gqLF~!HW)v3e$lt*`*d?}x7(ks!51oWbYB8p$CHxs{DXP>mELO{L
      zraGCPIR!Db0#~RydgN5xsZQhcvP2{9v++nFz6X!6vaucFe*6fJ@)RXQn2jH*`IHh|
      zNUK8kri_prf;vYlG;9V(p^`y~6zM^k!hPd~TXPC?`pO~PG+sEIQ<&3U4&lb}!WZNe
      z=KPvNxMsZY<vE2P!{d(dLOuns5&>*zobPPduF6nRl7fwsoTK6y-Qa*IRSXTI-7nFa
      zz!TioB=A&|Xl6^#--cpYCh)Y77>r3$qeEiwB}q*ViNPi$g93en__0FMPCV0(A?}9~
      z_*pv4bSGE0GR(H}%jj)5K;4cxoFe>cJEy`sut?p>VsIC~_UzzK19zi?eCMfqGOiX)
      zUG1fu==9}A=fMmWX>@*`Qw1B}*yOMQemtj&mvgFM3(ckCxtuEavykJXMa&bKCngcN
      z8jeZzY2<7hUegL@*i5Npo8%;$k}sN$sz>!$0c@bEy~F76OU0+lf04j1cj8S}e$TI2
      z?Cl`9%=24W>qzMJ{LWr81bRJxu-Ei`ujfzpnojTajM(cwS^tG=HjRGlm9x^JUB&qZ
      zYLw1?4_@^?=BdBo2=#Y5`5*js@SpsR>R&L`zxl(-dkCukWMH!)<>XOa9Nzl??4Xj^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TXPd-7=E@*lWj;#Sy~YA5J0fUR1Q{X0d1RBi=l;XX-PS5lO<W)?3V1NwnYU6
      z1(Ac!cp=Vsp*Quy3sGrj><D*Wc&9(WOK0>)sL!{X(j&<1?EAgnyYKn5zy9;neE>Uf
      zJA@JmThD1@+IVwLv$Tw!(=E5z9@VYfh^|@9eZ&SPM)eQ^5~>7av#D8`=Dv}0dddwU
      zD52V;8g{d)=MBv?Cbbb$C$r;S2lc#T*w)dWxCH5-go;kva$L=F2Q{;xmt9J4{PeHC
      z|JWy?JY{N*)2rnut0d+vsczn|GHnuMmwx!)SEY3)l{ZFRY9@DkBGEV06+hjXXjj$V
      z_CsB>f<4)UhvR8kXT6kWgA%Hz*;{X{Q<7x<$eHCS^P&p;9;!6CuY2Z6hsXql7i{
      zv<}-gnI;)e)8ah2Gppsbl&j}uJiACo$AqiPh)P&J&#Y$cyenhNBE>zHt7nA#^NZvY
      zwv~~weUW^(X={|PEr#Gb8@CIrf{gk_)VaVKi&cx|G&dXTFfwsHW#lwdMr`SqhmO2B
      z=Saad%vf9#f$Ws9Ndz)ZMRUy)^IJm{Dumq<YCVRPyQ|aAjoOak>QtwN(Ski8yj%><
      z@3T(P6cOx2tAtQScm4WT*VZksZV2q6?T@iGpp6tvEiY`9L&AXws<4LE5{9Ms7TE83
      za){Pd5_U>62Q{`c??qy8U$Jra)-JdGBoxtZ;jZzN?zOEGLYIWb$G9s-Px$&!B#ctL
      z7C}4K%IJ}RFlz8d1PL6H5Y*2XG}Dn#v(P)g6m50GA@oVuB8>TI?J-R~qnYjbOhF9%
      zLlZKNNN5_!>QRgJi>5RyYT0gdg!h7JM(upm<u^Sy>P|!*Z!lwF^g<P04J<KU9NfA=
      z8H{|lP`Y4jpGdciW850YMWDkG9LEV}kjo?QIzxt=eT2PX8K)?f5K?C%&@jT*F|4#c
      z-gov9B0YjP9f1yVlsknHKQ_VLvtp;w_WJp3`jK`N3^Of8_8ezUMC&ayFOiMWFfvdD
      z$VFhmX2G;k);G;;FD%$x&X)C4QF)t;^Aff-M$@+Lc%^YhIl5;jqFQu}yEh#bt2-(-
      zB@2@QN5>VTBfGY*I*d3}(fw~l5J82&CL*Zxu?rEbMg^Cmn>E-<+dMD+=f}Xs91y+2
      zLsXXqa&^b`jd9xxcf|jr+b)P;rD47rU-oZ=<Lr&MKhu@G#uu*jRU`;e|FfLcoUB;Z
      z-sYxw$Z*>8d2PbGQ!Ve_FNGecb|IhAyA3hR6?1>En5b7^GXpN=TgGQ2LXe4<^IurP
      zX(|yJ@o?tDJDClh8^oUA878-awUnsl?KcDn0i&wwXVfH1mGx>eplnc+Wy&Ts8C0H8
      zlOg3fH7P5b)nrvr*-98vwh_w83xwrL9bs5$AY7$15k{0|!U|;vVWqNb8ZQx9t+WZ`
      z2kgH~V<mWnu$N8%hw1(iy4+9aRII}QHsL6u7{qoAp%KTh6G`mBFb;5Z;y8hWI7z8f
      z<T%ae4BP!Mve<=JJ<VW1?dYJ5PTm6yGcE#^vP@NolyB;1(B1e8B8|%H(>Qns6|?9~
      zDu-v#|DcKFrbXnVg501CO(S^+)eQ~G$!VMpoS8<dH86!>Lu;V4rL43iIED4!V}DI>
      z=Z1i%G#F?pyAqUYf~4O6>fb+W%D%wnS;UjG$RrhG25$;RQyC?gMt%l`2lWm2Fjn7q
      z599Ss_b@r1r$J6NFwR&mFh_4QKkuRz7nzs$(T2<1oFAYMA2NeinXPL$i;rLsFW@>R
      z@iA`j`Hbi1xQQ=u3t!_lrtpcEuYNWIb3(1}@D!M69&Tk~?-DEVu#3b>(Zlx=u>h?l
      zi&#Ia@E-jr^J;b(R}c(HVwY1+qF=4WHf!c7w3gNXh_Ua8_$?6hh*O>`5uc&xio}3c
      z5}sTte0N3Rt1AkRFBP6$E=>2YF@eJU>r9$ICA;aba6c^E_qyTRB{BTIKvUR{ftqfJ
      PMDXPH@-*J`q;CBO=&hA=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@YjYFl6@FeYmJo{xPE3LmK#9TFvXOxR0ZiOTvJG;D1d>o{a%tAmMq0YkI?~E9
      zv`t!?w&^{+B~98iy`+UEBrznB(=t=ina(iNneq$zrI#PknO>&noYhKloyiCLea@cq
      zp8Gkk{`BA9{T{$RT=ij%!me}rg1$Ib)+>6^C>s@L%$_$Y<vByIjAhL7yk%t1&l^5;
      zDGYp!Xo@beph6%TKR!7Xi=T`n6m};*=1yDvxO*+0%uXGjN-OxHsZ?Srl2qu5&Ss|+
      z*2hjn(vet}nO&0+{?t90IulJ0ST~(WMY43Mb-gQ*N**Vbsp!m9ESrp+WU0)FRGOr^
      zGud>Uxm~$bd{W`Ino%`%D`!+|rd>J1pVW-P#+Y5HIeNv(=~mrXxBW)ypMNnHcPscy
      zdaV?*3x>k&65N=jSBhitienUwDh1MAbE;;gsL<QN&d4|7`j6!;vtl|E3TuakbL0l=
      z^5b5GJ2+M0vhI|^QL{K{<jt~f1weV%uoJsT^Red5zM<8shjZ&mbhn0e==Njy|J619
      zW0?^RK9<>|uvtuU0O6=@TU2uv7}MZqfqe=+9RlYagSq!>SkK&plz=ujR?@3_-Z82y
      z@_>c_iyZM3)E(0bPwK9MaSa=o`yeI1tzgow&sk#N6B;z;M-(=-`O}uIJFGmWVI#At
      zrXB8g#CKdn4-3RS>k?nWt`zzDCpBzh?n#BaS^FYo+-v=CYVMqocanNp97$=ojYUtd
      za3oW*tKvvT!)9imSrLa@X}0vRhF<2+uJ9vgn+4`RqTzOQ`|y~;4)&wjMwVq1bt~gg
      zuBI0A#=JvK>BpxPCL%$zvY=aLA(*%HS}j;1FN06(wctEaMj`0fL8oK{+d~!1a|>7N
      zdB?7X19%hzKFleMO4J`c@I1v-CcR~vB2SnVBUz_~P|fO8A?|BCPXnXV*bv?P7-(Io
      z1+W%HZrPH;k&o!q)xEp=i%f=7GHWy-94Ixv@l;*6h+fhBZo$Tf&+?p9G}xF|(29l=
      z;~a4zX%L2nR~rbR3daZ1Cq3w9->sd7&%mPbwCB#P9O9-i+9fr2)zJjUxt13+Y(+n-
      z{2Zgj0G`1Ye0a9mp({3ohA-kGEh{Qz-AFyDuw^LT>7TbqSjTf3zKlg$8fJ43(LJ*!
      z8!3S2@pT`*w!(kcK@H!)H|dg>1)9?p8IaVB2k>pY;KO&Cz3uuaEDhh~Ec)oao4^fK
      zLocL_nr$ttN@p`CKKxK&oAj}1kGUTyn}%L)^#xamGX5il?VeoRZD?1#CFsX13ZW)1
      zSd%v>=+N6j1HdaeZv+d5yS2>=MuA%UB@9r!j@_QUpK7=p_xSKLg*)5R<?^F-(<&HM
      zF4r%(8oyK+>}=C!NS#G-FH+84!+;;Zrfz(MyYfN)a9P7|@CJR-=V^Kh3VS-0HE*s~
      z*7RcBk1O=zJjR;d*6<U~d>~`jt9fJE<Z0W~9_TPfLJv3fCOzPrsnclJ6WYrATuxfs
      za?*m9leVy&v~T64y(%XyP&sK&%1IkhPFi<z(q5C3_LrQrsp#y-9q1$LTL`bgow&$d
      zPxvC|nob`*8{4p*Bz6F5hj<ArUx%9Q4KCxpcQGh<NN`B-sNk^Ry@K}(J|Osz;KPEC
      z3O*)yLhwU^qk<;|PYXUFct&tSa8mFo!D+!+!8yU75`6X&dLF)xM`wE<U&a$Ru2LAl
      zWxNTUg3S}2rj!Gh=yAG?yQt<n@dox1{}`^|1l~dxZ{rEP0}D%7#8o_pYj^?gQcd3@
      zsRl{?mi`|`fwZiVKYG;(8HBsYn$Bs%Lxh>@4~>kBEaS<mBFXjx^8L@0=3Am;iz^3H
      zibFSWj><sI#QTf>v$g`saI^G}`~m6}tXq3!<U^>FqYacp^w+>sS6cde$ujU)(*HMl
      z;r~vL=s(0x(AChg(~mk9NPiDy;%TzIhA=I?rp1)dz_!qPIDZqHL$00Aet^%vkMsPo
      zfiJa<_K5O-k<ousZ~aFMYNU!3Gz}_zr4`O;QqIZg8@Va5H1O31zO^b6QK~l3Z&qq}
      zwXq{xeXS_^no%fx58o%HUKM^I&08Y3*oj-AYZz?c#h2kDutXFYbEyzhVUG$kwcn%m
      zGj+(L4l#AqqmD8);ZYMzMLjCY)U-!UGd1H;GfX8tD#=vZqtZ;}JSxZ3S&urqbR93v
      z_P)G~AK##e++JRw^g?YzKy614jp|)0h<nt%7*zKmqy}(6?ZjcV3sE(QX|)@t)DW_2
      z7>}zE{e~E!_i>aq)gD|>VLYS8@VwefZ_YlvsP@zLz8|lv1GuaX;+i^yhI#-Ws>ArB
      zI?_?zTdnfa&TIBgP38bNNNw`!O^nitcx{#v&PDzJKVQb{y}xSUl3VXfy>Ak3;H~%Z
      pD$6gmg6rpjP$~G-DQs1z>8Ep=e(avYUX|%^;9$#vcjV^M{{ZB?8_NIy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;6iE6r3fA6QIxlNebnopP&SZSUu-}s?bVND{%<o0H=*v1*hv>W3MC9pVmWv
      zKz~%#w;M+a6(G2H<lULK^WK|3e}DZ3@Co~6EHE65_?X}N5m$UDBB6}0W1*sf;L1Pa
      zgG}<|gd1K)k)dk2zT|4?pAJSMFbt~!mjRKC=&37l%W&NM{z%2Hj$)mLM%bF2)}`al
      zSL`s90x5XHP-wQ!8I}XB3=dWMO-vXX&3h!R3x<^$?VQU@FdRL{2I)O<lX00c)ThEb
      zp6mmKp`dn;?|uL29n-+5PCnPONlZ=;o2|$6b6lED<(jA0U42D58c&a*9Hw8Q*wAR`
      z-}doCO#0U8T3*)AOelRiB6T6o=;m3Yp$&MX`Ya_wJ8%AhwEVYQt4u_s$K<t`hCc}^
      zM)yq;sv$#dX3wQ*dP)wxv0WdnVRLrx?02=46t_?-;w<%bmIUH!D5+$1E~9N5Jdc4I
      zrGNufifjoUY;?=0I9$Y%!)3g1xPn!OFHv>4hINM<s5z{o;qVnU9d6;Z!)@$1+|6}+
      VIsXmby7PB<PYxJ9(02hJ{{h&=@YnzV
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      MLN#1rXmz;ye}u@g1poj5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(-%0{O6vn^NRYTV_O*8AFAVLkYkh(F1=noX)jkWjVHt58<8@sb%4-oVu-FGE)
      z(F62Q(V10(grJK#XU_0D-#2IG^XvTsz#*zB#29w&`6Hh+T|SoXuz4D)k#Lo?xsslH
      zF|oyi-lSkGlD(**FYM5l>gk7M$Opog+_8ioQ0MK{IRm?9$ewv_pt!3n?t~)IGG8mt
      zFB@A7$rI^H)nSO&>K21>=G}=j;#fA3Mus8Rm9FT8<ALyR_`neig|26l0Vf-(=ZA(G
      z$$(+E`=5E*45eB`HXTl5_mxl6x9gTRE@|T;-DeyOwV4+Dg)yZ2Ug+E6QtIn${_$x0
      zx)IwTC3<g$DiTOiPEi%Z5-k!!hN4L)Ey|2?qA^AGEkbe>(}V#BFzCbbv@>TAR#2cy
      o3lu48few+HO*ZzXSY1>&BJ<-&p**AJ3dEy~HPT?HP<IUL--`xz=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3PfG$p6#qS4HT;vNY2_{GU<Fwgbufgmf<nAl-p6go3Eh?5*|2kmzC>Rl2!syZ
      z>(sdq6TMLh?BrqJoA>zr+nLXww|4-0D8>*X?B0ocF)TZxubkWRNuayZ(aIKDxlYs7
      ztza;4JuPp}hPE7-WegT!V}{inlUvdbJf$E0kc5mcJtcZ=>G{mOzBnb&B_UOJ9bXGa
      zw?!|Ik>`)6$FJ|#148szIZD?E;nHTCVAb6l8Alk4NyL#Lq#MeS&7j|r-j(R|Bq7^y
      zZ8i{W!}D}$>8|n#mBviUIsUCm$d|^fa!>Gew6w>!Qr&Eu5P1_K$JzS+tuZ#@GcZED
      z<p!QD&y|T*n!|9%h+rM8%5Op_B7!LQ7*8QA@W-M^a82@NpF44nY>kk58AH-s;|wzo
      zYN3J*pOO<0mXPJi2;{gLff^$XHoCPv!t#HGLpDDeD-<TEsRH9szzS;+R+$~b+Ar=N
      Bh_V0x
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?U2qds7(F*hyXmsf+em??6hcKvlhD#O{IwNri$Jg~2&6SskWIR6!=y=@Y@F5^
      z!C}Dh$$v-T!5JK9eBnVsi=#{jUwv}Mci(*X!DsQ@-K9+j#)o`+@7?cy=bZ0n^V`2a
      zuK?(VrNJi<zGA**E_M~oxqNY^Ybakd%S&gi>A|U~vW9@b=5_DAHv+O^mGfp{+$vY{
      zrD8gDOhB9x*f?A&R&29qkDG<6RrmYtPw)MC|NRpJ{%mzxz&AO><*c=+mcs(Ufm|V9
      z%-ctK8toVt2n?5|tOf{#3>erb&^VGWT4U9@tW`d5W(yYIjFfT&HVMzYcUV8*h1nV%
      zQG~k+Ce@s?%M{f=In*((Gv+n}&1ey5d8SV)<q)uE^A&;ZPLyY-rJuY_rsw?9yhG<H
      zJRN@QR9F##=4W7aj4Orh26SxDu^W3dyuggs#96A?)|`R8hzc~A<+8byE6pzn#A>6R
      z&R(%{c7Liy@RK7)ioZ0?l#7%=eZeZu*s}uqjAgSzwpFxQ*=WbpSLtjmRLuf&u#UPH
      zx#NOLWVeAH^a^MU=VoDjEHCdm4&ac6gX^_9H8IeME*0vCfduwxDiH%Xs^P^a&Q&{K
      z=o(bgE6VvLqD3c%Sjr33R8noQmM@PSUCM6fvb}QM%Ji^Svu0&hwUyIjDMjj}fmd*x
      zQp;AQT3{+fmcKlG?UKt~!<fL9H3au`s5(7um4i6LzMS+%A!4%)`XV|;u~V6I2F@eR
      z*yjAaRh$w?)Yi<)Ol{(8L-z+UAz(yuZjJgP`xjNrjEYI!t<mBCx%mbKc6N3KafxCs
      zs(Y6WjHo*KD%7{FCSmI^*%s$Y)pE`{o_FSJ-8Z09<p8@_DL+3Ner!V>>bcXn^C5_k
      zYGST+HLiSWJlljudPwd*K!6s=O8KxZ<Cpu>nSkt0XX<26I#Vxu(-}=B)0v<=kj}_@
      zd5~6<hiHTHFl~c8LaR%Yc7x2)8Zt+_QBKirk``^FoKD|I)AvO2;W^rngL#u5xc6`g
      zH({a|o1M2Ht7dHRxQ$SW(xk`Y34dbc0k*Ei&>0IDMgxvHcO$MR!f55WQo9{(jH6ac
      zzt4%>;zeF$<T}0!$KnsLBi0;v82k~t5^b>`u*=^Z_zBOiA-QZv=|9H&okk1JIEYC%
      z!YX2T6*24~GCn#GbC`t@=PE#a4wJ{Ci%-R{PQiZ1g_|B#Jm7)@Vz>?-h)^@h6IHmc
      z=&d9q<G(`OLTCID#As|8`xE>vBY6w0+#P;|zA>JtXJ24n3#Ikn_1|5^+Tpax3~iq6
      zafLVqv}2BBi~N8r)Cf(k3Qgi=43dR`Js4uTeY_!AiVYMRXQX3XDWM!-kLwM-QEe9W
      z4|tqL{YSrr(VA%My*_ZmFWM3-cOL(v*e~Nm>*Y0mVYV{x4l%AWsn^)H@3KLzVF#`|
      z+*C>#*W>0RqZHH3d7;NCr|bsX?Nz4;LXDco=r7(=Hy3`vXeM;}0bU!4yYOcx;-T?n
      zoSmp;x;K6gO(ffdzprX<CztX1gm)qvuR2>-#MfwOlaV`*|46LJ$T!gAp-B}g9=hl}
      zmht9VnR}Q(HGeuj<Wzh_2_G|&pYSi`GaSL^ILY+{zTkv>2@AJanA<gy7d**2W;j1t
      U%4%nCx{`NO<`c;|V)!ui9|vHg9RL6T
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOK%fb6#lMbdmMLcz)eD%LTPx$c7maWws|zrIJ`pwNwEY1wUc;&LC!d}$5GWy
      zAKPx*b(dXqL#2|SR$@t|@@x15i0|CFvBzKmLY6#p?>*;xoOAB{|LmVf0FL8|g_y#?
      zJ!ixDuH-vwo`0t_>-kkaEyNXuyG|CIHMd-In$0VY*HGBmbQ_*itGJD(SNE@7m{U*}
      z6*A?z-wYf-s5rHjoB00ElTRKzEs-X*Qg8Xy#g%&sxp@ID)g1D1!(9!g6q3`P?*%go
      zM@A#Z%Rz%`rXo8gAzx95m+MtGjXvzOVPn^8Qw><Y(hr4qZKUyz!j5^*cNbb~D{kW}
      zXQk$fy!tAQIkd;M*^CEwy{5vDR`O!CC_m2n>D-PrL#NPJ7uTb2<m*PhB98WoqYq!3
      zWGI-VkoKBOZp{h24eC%g6eeCx_{!4uuS%z-<qDH;iKA87ciccvO^7uxnve9-ND#wE
      zY#hX)H1a4~C~&+wbqqUhV+`XQqisBPunS9*Or=r6aSO-T*A9R_vhgtvDOk)8r6>+@
      zKUX0<??D%w88e17J0XM7N|*>KeJZGjRxC^^?Cvm!yR$8?R&^U<bK1t|Vsi$kEu8AI
      z8OGZ960?-KA=hW|w!-0FoV{u|fjJqPGYVZYO^x%F6wYxjCexU}1sfM}iFeLfUw8eg
      z!g!QqJL4r1<AX)cV_I;gId#kRR%6vY>&eZr&DZ0oQ~)EqWqth6#4wBml3ZDOmEsPs
      z9^X^kvytI{ma8R3OT1kusx9m&j6Fc^FP$;K|ExZnB~F>Sa~R~_M`1jMu$wDp;yt`i
      zG<h3lR7~T4VDN7t&L5B={@yL@=}B;vBA1xHtO*KXLYpAdCde29!eO5lB38t*Sh-1I
      zLPaZMVr9ICm9J^#8;W!yOm>?oYGpr7#oDI&w5bDz=`MK^Jj;@4FfOioajmn|-%@Eq
      zbDan?+FaSTt1Py;vf7`tBdh(z$;S(7SRFn^(MVwnhv$orktp6T{Eggyu+$$cFkd$@
      zx{0Ir85D!`FQ*Ig1F3&RKYpU|pS75w5Xgv0U=KdgJybY>lZLLur*t(Tz#T{#Dc~0k
      zV}}6-M&VO@#vSR!3<*SQvQX^mLR#<sN<qIxge2QlN$Ls+F>kEFy2QQ;=g7a9xK8g=
      i5Anqo%DJ<fI3Jpx=i4SOzbNweh{%z)$OS^hu=pGsmx6@=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j%Tg0T6oyad3L%7R0!X}qngk>wUeG`kB9xaDQX*Nn(IIq&p^_PD(!uyvS|vs4
      z!gB4_o$tUaSpMBJ3CUzwWM;biod101?~~vEe*7e&MJj~J$7tqIJJy<6L#ydVC0o!8
      z!xY<=S>}9yqgm!hLN|>t1sEl}0=HCrJA%=0om;wAEpe-kjNO;d8L?N41`DQ97n&hT
      zTD8H0!)LqeeSiL*A>QIOO*c?<i+_R|XEauHm*6=@1Kc>)Ez_uRLokY~m~2Dn)$9wc
      zejv2Hs*LL2(JO`~8Wwb>ykb@|nLOgcT2<K9BF<MqG#MqjO9NW)ra*jX1&kuk$e&7=
      z7zGOEK97)}CZaS(<BW!iy1};^wLNaVlPHWvi)I-<XmA5-XEPuU^g5%Pt}>o(qiQ^5
      zw@}q^Cp*G|OSyDO*1aO@CV^9{S7a^eShh2aQLMtnMyF>Jsk9x}<Jz?MiSnwSz#F9~
      z4MMW+lALq^U5e78r00>6l*fr~dp;kvEE)s$+n$+-JA~~Cm6w;3Y<Hp*p#e+{*n0C4
      zHbr+@x-@{fUkcMbMk7757Nz_2fKjkqH4WV3c*`5*?wh?sUX}w9Hd^Bv0q~kVO_Jwv
      zl!hfw1U$|*#{WD<&Do^8oz|pDg?yAoXcS533My&J)k`Z!+8Nm~8&;Wb>T>j^z5l)o
      zvQ@f{3V!_YgLDbM5LRKVeAGt)X(YY_^0KiXQ~N_$qan2qEW9H)!_eay$7%_0hIcS?
      zN{O%d@X@3S^5MCH<W-u&SJVzd(P^xtKoU<WkVl4$4Q1v|>9Sj44Up?fAz?>33W%qx
      zbPXB|E#1JGjXR?>vua;LeWTeg5VxUZw?vzsK)2|2TO_4Kwy}1=PH0ww`8!&B4Y1+`
      zV77m0WY}$o@E%e~8Jfdew%v(1??&AAL|jlwGI`TMi)H4%(_KctXz_&R-QMlu8cQ9B
      zv9@<HdWb8P-aYaJT6P1y_XK*<2I{!P6IynIe1KOUJ3vBhkdT@!36jIG^g6TZ2HE!n
      cc}mZm<Svj^H;4|9!wW#<a7&Oi`0Jzf{{`M#VE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZJx>Bb5Qg7@0}LO6AgE|#j0s>Oenc%WG^mM&(4h1SZg9=rp1C^=f56h#zhG@F
      zNGz<Z{87ePASM`!o7ves^S(2C-#;Ip0QOOgAw<}^7ms3C)xuG_Uv0RKGtjCh0_E!S
      zVNX7oLkt#SV+L%E`9Fe?@ujDP-I1Qp9XFR}1iB)m8m{&Op@WXF2QqSS^7Q)r_3}=L
      zo+_<^Iw4#tcL-L)y_Io<v6w_02|~K5v}_HWuJo=&*Or8A)9tZ=U>mNdmsW76e8P5f
      zX1e)n)Cl>~7_8cYmu&|g?_4W)jBnof=6D>(?;9_pH-i!4ZFk`H<b^WRtk3t@HGS9w
      z3-KcpiijY}ImT583;eMT5*(9!bI6%EM=B$v-o{9pW1KNy4;KHW44;w{2usLvWdw2@
      mjX<4A!$vDRBP{<{IAZhTu|i=&O%<3&0V}LQSmo{z)_ws>$8<6P
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Ob~6TEYb-=$?f(P2G=&EM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZK}!Nr5Xb+ctH!EjnpV~&B2a_2h`JbFte_AHti3<&r7zaq*j>Z#)Txuup%2h4
      z=-6k8=B*MK9(Lx<<2V2R%-fHjw|4+XD5nr3>^_QTF}7SWRBqpDdhUbjk9-j-&%GG;
      z<dZ(6U=X(Fz;?v{5rkYIeI*=Q`T=*`U7Zu?nviA1AQWzB3uhz~-=8<V7wc<4NS-NI
      zg$+WyQnd+2)4P`@;#khWM4GVDQm$-|hF$63imoFG`IgsX1Hm?2&n}H{paQ~PYi_#5
      zYt#wFN(5St;AK0Z&pX$vw)QP*-vW;_4Eowj>&;;Vv*V5Yp1f3gnytki2f7bCU?F~F
      zLKz7pIj6XaVTnK1L7HQRZ;m+==R|FS>}!Oqa5NbM4q@<L%JC^Pg|Lb|S6ZOJQ42Jf
      i)NHc0Kf&66g%dVEjTA~#YNo(EN?2zN!UlK8u=xwd?R0+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eYggMw5S>klF$BUR5JCuP+O!Ff#x!lxrZu4zLVyxuIg+4|KHRmu0R>s|(Srm1
      zY5mY2&>z*)SxcBj+H=TB`w8ys%$+;4Gb{i7&!2w*z!PW>!W9Bj@8~f-S@vni^$(WS
      zz>nEUJO~2>#`(#zN6~Dw-Z3X8Fr(LXTUTmL)u`Lrp55F~RNFB32~5_`y{$Mzt}201
      zq>Eze$Gg-^SQ&;0%yG9$nyvDdI&l!5R$SkWUFu;<W9_A;p3&->RfZ7)w`DOwCTYyF
      z6<f=M^diOx%*rBANz5?Ej#+CqUTroTrnaH)@f?!`?#LpN(5rNh4k7|04b#}w*EO?=
      z(Pfw>a7zs6hQYDhW?=;*2n?>*t<>)pfg7S<+mBM0QDw*8GE5z{>$_SR=5m^85+4Sk
      zi;CT2)I7AN*y@(0zd_f#1g1sK7LA?5$o&J|%2<(RnhGlXB)i$OR)_2@3q#)H2}@IV
      zF!Me(z_1O~K=028%!`~6a}vycTEW8NzzHyHrXR+oYjs;!QM*wu!$Si1rNO)i=Etss
      zRRliHNS~r%>UC9baG^^C?n<M(I7E)y<&vlRfvTyk^V~`eukA5`d(u!RWNn_9dU$o^
      zno{4~Q8ux4U*?*^XFH(>*twF@Xw)>j3}2&6k&|}29>d8WXt{oyz`{ar&ingPryW)m
      zMn7GY>f$beVeQ0WU0!)K2+y+#69aKa`Yr?>rp)QSWg8?XE_p$4lyv(cA}6aZ7J~>p
      zkdR9qOCd`OEhT>X&rMmyyuN7}C)$w$*Bg7fD2tS|kCR<eebx`|IpDbw-p4Z;d0LX#
      z58h)x>9DXjg7_p2S?+;P<0M3Z)`xJc6f00Y8buB2hSgQf@Kn~9LQp}N`2k^<Y8m0p
      zTEof3bhrxJ|3kqUTd&mGf7dM1jpN?p6Ky3eC;bc&c=R5Mvu_r*e(7>O=gt#t7R6z3
      zDyADwSF7gwNBH$RU@_nC1`Q(?5~#d~mUDlU^Z0T(7yPd|L8lu;j2j75W$6lYbhhx~
      z&@;^aT#~yNeBpr+-+=yCdz`l0cA)vkZW#C-d`B;3JA3tn1epn+iI8=IW3~|noePxL
      zvAY)xGYgrTBzC>!EgBuhwB_+y=Hw?UOG|v;t~ws}jKD_={CSwnE=~7&7o#q9@M!9c
      zp!Z{@U+AzEB%#ALTn~LlvdO6M*S|yn3Gr9b7|g;|C?Og|bOp+YhXs5M@u+~WBOVv<
      z1mYV4o<e+6z%z(v1$-OP9RbfH{#d~G5PvG*`-ndm@B_pP0$xP?NWfnpt_XM;@e=`m
      z1@rjJ?<qXPiod~%2k`H=J<E4F%lA+%SXOeD7X_Xdkmp&2A97Kv@MF%Rz*@ng<}B-=
      z;r;YA!$$AEHc|UJY)MXZJb5XNdDT0S#nkX*8|t~t+hF7@jY3V0LQSs={d*1h{+VFq
      vm`$*AmL1qFSboY`_Fz9}c~i*sGyEdy(yv(YZ_vy|{|;2N;Qy^&x1E0hJSiaU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g&q@MO6vn^f-xxJb(@JU)5vf5EQHu;WW>AP5YxY;W*n~49GuN;u=oNa5S_v(B
      zfR?>Mi(Vr-ca*@u#XaYq%kO;OIrrn|?H#}&igAPpyZ7QjjH`~YEvH{?xQ>!z)pk|W
      z9;(OYxF?6oa-BFLgv~j$9d!H=gp4meOAJiu`P^}Hc}}1!LW(tgB^+gn!AM5aJ6|u)
      zpHJU}*qP;6s!j-($|fPwaBro7FqV@rkRYU6mLuCEyDPnG(H%%aw&nKNK(Gzhv&V?K
      zvwXr{Yi_zli_{4DQh-(mf*0;6kN2*XP3@f5&N&{)_WRmRE6!mAqvMXep1iR1JX?!g
      z4s<8B!BYIygd(DdagK8p!V(`=LV{zGUye8v=V)bu)N6pGIU0-s$B5tr8NMZ_5LS@o
      pN(<yTYJobFnvGTVCs_TjaLVSjK%p?DW(v%sfHl@2taEn=8^5AXcOw7*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;$xZ@65PijJSOh^(i5J6#C5p!7g5iRiU<iq#b8oQ0Hqc{c2E&i|A)ZJ)csBlu
      z|6r^hhzTAzbX8a9EmhTDKkpv^j!=jqK&U>67cs4AF;;q5YiV~f7^uFI+PjsmJ#qTd
      zy`1*tv!`qwMToGwMCkauKLjD|N=J#2B^{R;_pJ*8T@#W`Tf3gno+U;T8Mem7o7eBp
      z6GG%%Y2`Ht!BW{Ggqrq)j3J2i1Y(F2Qf;MWXEN?d=T7uSl8|ZJeKrtm!}a1Z<UJ~v
      zu-{(lZuK~ILayW!Y9qnJcRh!9P%m4?KWF^2+}79~8c(CU1S7<{{(i2M>8iNe>%j1_
      z2NvYz6AB0;!a2%S0Bd|$4{?qOemUk$oWqqFl5ajF#WBV(;1D7Hy)@qva}YL=;mQbP
      nIU0cmBMmlEsm`$ZU*VL^&wPda9JNqjJo4CL4Z=3F1K9ZmzHfc9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hF;Bu^5Qg7_0;Yf<2r4l#P6{TXF}h$_P!kMcK^x=t0blSlr6p}K{2eD}ClUvL
      zfd9hHKj3P-udqPE(7WE{x%a(mzy3Zx0i2?gK!kAcEMCN<>WHCo2Gyn$NY5LO0@-he
      zo$E<YjsoR62^fUk1$c=dWPRx=VO!GkdE&l#MW9<ky5Ty0Ae_Jw_E^RqzSZyB<LeJ0
      zeyJQ4)CtkUvPCc&ZeN;+Vm$>DNkXQj9N8WZyVAQ8U0V`zEw{%8f^E2-H;v#)`Gj(7
      zVY}6*)Ch&c5U$#SkM0B>-(D+Q+Pk2=^Ssi~A80?VxquPOjyv{x@<!>6_E!5G>sjoB
      z#rT60N{AuOIl)x~Yy7Ylk{naqIpa*6W0fh=?;(=mXfg(zz~DcY<+s!f!Ul3&X@NXP
      lEl_7tv+>H&6r0Nm=WKovDimkbT!DEMvBesMZJv%`=N~AJdHw(Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY&q_j35XQgJtHxE+G%cl#v{8d3T9x4<D=@^3<^HG#J8}QSy;t!adYV>3i=b`0
      zf}SJj0iro7f#KrJ+&Skr-#2sLex6?d9HAIPh)}v06EUqh!dA|x)^aAoQp1k0<>hoB
      z9|Gk%F&Kos6^!4R{v!x!UwTSdJ?Z(}aof5e&^001bR9nsPS6w9SVkT{<@@W$_ZK00
      zrW_SC2;p+2M=+Z1P?`v1GXWEELaMDC*%{k?>D`FFB?+0fJ75FBHe4?+jo?oCg#Gr)
      zbnBL=6LRG_R<i^z+6_G3pkC=|*PM3E@-VhP(oR}!1tXYUckB)1mC~~m);S#NE|kDB
      z{Cf#SL=fd1<0^y=KCFT`#{}OTb0*G_>I})JIg;XNG6tN$z$w!Fl~_R7LWV0XkmaZa
      k8cb?7T0NLy`@h0Dn>XhQ`31F9U><qwum)k5yF)1a0<+X}2><{9
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZO-=$q5QSgC0EQny5L9$yj0s>O8lx^SY)});gbm8RfeyBrA2Tx;?%@GEg9{~b
      z;Q>5|H*jmL9*7BsMORIAzIv}}`t#@g1Hd852}B4x_u^5E>yEIMGpw7+R>8%%FXccE
      zbbbhw>m*<hw&uWg$o~<9oG(2ktgiHY?zp`=C(tz^({dd@5Khn))=0*_Pru%tU!QV>
      z_?dE4&?H1F)h@wkxdWL*6w7HOks@SG<;eEP?n&=P^ejopn{J;C1lw>uyEKA3<r8+z
      zx#<?K(I6BnAy~HrFWU(`-nmijYTu&vE$}$DKh$1YZw@0QJMPHq%S)xF*<9?gulukK
      z7UG{wC?keA=LA;~Eb(C-q&TMe=7=+Kj@2f}yo5-WW0Eo800zHOj=$1V2rI~Qr3DHc
      lwLp_e&Bkkc6RiGMIA-&cP@y!XW(v%sgf-S6taEn+8^1hCbOHbX
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fv(B6kW$QHgyz|m`hrq4VM&b10k1QV@i_{+=Osx192N3+7Y%&l*$rg%MAUC
      z_A!6a&J^fnrjzG>KtHGL+L92GaMB0soFnhG_S*Zbt-t>H{Z9Zl@Kp{eh2iJ=zJ4%o
      z>rK<%onJNW@0Jhh#-3|Bb`BYZ(b)g%URW5RaItN)Ox>y(tu_%)9^O|_D+=eA9J}r6
      zwp-J!j?wdDbFTmUzyH0+c#9bx8*RthHyUI!6#7?_DU6E3g=pZ$&U1x=7dLO|)X5h{
      z-DTJ%Kdh;nHud|29(4I&kCD365r=NNEk+WWT_DC?R7e*~HHFNQ(=hT#V^G5-6sUmB
      zFxETG9iz3S?^sk?Sas^GRcFOK2QM@3GqcS;#j7Cpw2@3USd6F-B$R5BZdB3@Q$@4A
      z%Vz8vu3+OW8Z4IL^ipW$4JeFj$m5*CK!}U9LISR8=#zj#7~uEbYw1A18*8ediW)SW
      zKSjm58Ak=h2x?Zt1@Mv!ZNG>Zsy}!cuWZQgOK3o^uu|<D{dp^go4nvN=FspSrWAVW
      zmSgi$GPdWUfsj7ZfKw?aS-rAjml0S=ERc4@XT7fD*ObG8!ez<t_s4&GuVY#bqa|0j
      zsNpusdECLh9PZNG$yg0b;6&v1WePUFRhWv};3V@|XXH`AXfHlfNL9w<@KD1F9?`S<
      z-kxDM6y~BtCw@9Z6lksFv4+JQ)?*U=^uo>=7%Xo47K@fjTpEw1$j_O&VYs?!alW_t
      zYboS6oldK6R84<0qK3aFjlei9k>;nS2gCejdCKvWLN796TJAIAGH<0vy_Npqsxg)`
      z$Y(!Kx40^<J>_Ez{LD=XLwx4Bg6cC^z-8_PB+1^yTU>=;m`@>CWTeDq%QMFqNiy6a
      z=B~#u<VOVzjK|xQBgx;vm4IvBJByfKF!mEkeKArUu-sM1L|5=+61>tC{4S=tWS&lf
      zH@bpLD0czRB*9x<!E@dEcZiu}|DLjc+aANK`*#h}H@S;ya2I{$ncr|-;U#VyVl2t|
      zHEr=tgtITalRmsptH_;v@OsY4BxjwRjsM~N5FZ6PBc3_Lbdu{CYc?ZX*-&2=A2W~W
      z<EJ6udc-jhdyM~q%2S&7lV9=aF_sI}BRrsuCXcYn-4QmD7t{1o_{JU&jm>ckh<~8@
      zWx}c+@yId0cop;7$O}LHY&>E*%)K^yn!P|?poIyvX+IbD(eadw`Psr^tJuUAwM^hD
      Po^VuB+}DUq;miL3NRyV>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXR!A`<J5QhJOLQMfd5L6CEZ-9wtj9xHY5RInsg7&`P23Jc<+G2PD-@xZEUL^70
      z19<j%jI%&YkV9v7w%`8$?CjUi$0vY8lug74+YjPNjO(5lD6e0)mG@}-{;)mn$zh~?
      z&xAoJFEM}r3As=PO1O>;LgsHT&j@ry$h3SfjD#0C!X3%P_q%GpJilHLlBdd3QIim_
      zR2_oR^6#XDI9AiJkRoKc2YEdjbY*ZOx~?STZNJ9`f^E2-ZyM3P3JE**Qf~|WHweYb
      zl&QOdFW89!zGtKAXv?CuEN~}-u&-^j)B;AZI{ql=$#bO}DJ_j>Umw9PSc7NElR^SX
      z&L&qetnkMYNO4T_&JkzgoTyEZd7C0xjuvCU0StbW9Iw(d2y4i5r3DHcwLp_e%_eJm
      e6RiJNIA-&csX}Q+%@vqO2^*|I*yPhOZ2bb@9&F_R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+fEZv6kVq+v<y>e2U|q3iZ^;uDhevp7#h^1rolwCiEmEZBM!DRW@c*m34g(F
      z&<AOviQ(CgGOjaI8pq<xoa}w}UVE**&iwlQ{U?Am)RKq^oINl<nuk@}>|6GJwQ1S!
      zU&yyfBn0x28)l^|?T!@4c+$1ZUQ4>3<=C$pj|Idtf%J}Jd%kJ=EweX}Q{T4Jo1fk+
      zd={8~XxWzkh=|2z1asHy%UY==kl1m$Qo|W!l9=NFRaNboB=o#}AUnQ}EDV8^@9g<5
      zd6IUq6kvr_VYa4$7dkZL1ajf5$h{ghM~QNG&~HokrP=OLj?r{FRAW*T<54o<zq33t
      zjuIZNr$)wH7<=cV_ko}kE(#>ao4h1&KB77#%YD|nT{negfmv0oBI$V=3b?8?ToYJ1
      zMZ=`(QcFV|H&oAxK;?fuV~<CZgT)(@aHO*@eZ@$r5zw9-cH{@2PJ2n*6j+LgVGaEl
      zmna8TbyRU%AWj&8#bP6LYGS@pdPm1ytaAu!`Fwn7vnA?n_yYJ???oQQ$wP>Hu1Qi+
      zA0jKJTiTv8a69s;rTo@M)~qTaSSI5*{|CB+DNOTBGKwL^EE_S)ug*-Jxfsuxa^(o=
      zA?CjZWqE$J;9{LE8(3hR4-0V)i;UPp=nI5VaJdm&gQFB&wrni@K;gA<xiZ9+A+G-m
      zyM+vDf5B$Quvx+u1K1J_f|UuEU|b3KHkb(q#E)?67=<QzuN`CK3(I2Uc*1*|{OYF+
      Qn4zBgcn}QO40^Wy0GZbHfdBvi
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZzfJ-{5XQfO1Iz(}AgEXwV<MP{#%P0~K}|HM1xmlbimUgB+#QBT@F{!;D-sLs
      z?JRs1OXDoioT0dxoxR_F-^}jk@7p_oeUuW25H=sglNePUVJoL!y%g4+>)Eo`RL<k+
      zs4EA7a-9SWLMa4>{u8pk^pvpL(({?WJwGAP1tHyV9X}9G&=%HE#=Zw1Uq9E+FNFB9
      za#T<!M7PUrg3)k$(nJ)CDVRtSGORDJhIU7KH=<)nLaym{*+8%j*RxF{xK}=5s~PHT
      z{tz`nVS55rEy1I<0*@!ImD}34pndb)j_vogm(~km1heH1y{<e{x|{X+9=rM+Ho!uB
      z#e8RoA<j9$RRjzCu?~_PQ@nG)nK;KPW29dvNQR@y7_bL}-zdwg)D*%Ja$ISFJVz~1
      jXHv8A%FY<e{}m3|{Ai+3oKiCd=2657YY<lXbOdXEp9FK_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95Ix&m+yn~r7AVj{xzzz$Q(lcKp%A1XM3Dlm)VHm(4O{sV+3P6uXL#T*
      zc;EvN{UyZg+6ln{sj}p;&zwCoJA3xWuW#Q0?BcnFIflhkKI9`O<be$P&O06m3uT6D
      z8g_h6*#7aU@RWrr!}1@r<wv35$3D^L8CFa}Mow46lKb*3%hbmiBh-q50grWt^b<oo
      z5OE@-@MGr{1AD`;(2BxD@lYLbKNXeppBrBqUzg4q%85LqWhJ}WVX$P<4hHJ8`9ET)
      z_Jw-s`wVM#^R4M5Rnm9bVH${-D=OeJ)Vi`Ca+Ss;v;9Bbi)^`Rx2s|riMvN@OH_bi
      z)$Zi-(|J;+?E6@p$Pq(h%=v4ix;&A(>4_ngc(2E>WzQDN^owij?U5%2dLM~}O@>Xq
      z#|fzu4r$^&eRLBZgKc*%Dqp2`%=qlAqlvPXbpPE_Gnc;zw;GEe8q(Mc1I&y?v#HaO
      z$0|9L>XV+J>AN6Ir#vshUe2j`#!BKtq(!IpnM-PuR6OlaGT`{Er_8KtcB3@*#A~VD
      zSkpV*(NksU&&o|96WhBPSg?GK7VJLls=UKJm#z~Ti=GNB)aZK+mvEWl0^QCzT)|a+
      z4Y3G)9hb0d;tE!Y(J+kbgx{c5I)4+lOuU`Pb!-st4)Mwq?-FAj_X@~;JeWZq7LZ5S
      cDj+tRrqbg)KEYG-zl|N!m1Ew|@*a181Nc27<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h-%0{e5XQgJRb$mMO)H6@n^1!+qHYYKte_BYtnK=!Cp)o!Vs{ODg?gH<gf4o3
      z9-ueqHKI8xK~fhxbLQ}y@0&UM{`L9>U>C&%B81I5@gRm(S2)V;S6jl7N476T@A23h
      zxV_V1SKf!pa}zKKYqKo3{1AjpAblllOZowKT%Df~=z@@Lcy161H?)L3kg=!I^^NuX
      z`9X*uDp!SdLbO!22u8!}NfS}br(hyUSZFF&wgyf|`j?_(OG38kb=g3$4cF64BfM1s
      zq12q6?(a=%g#3i9+JaYZhd!@SD_hz+udQ=DkrVW_otFHC5zMwX@VoL%>4Db&eXwoa
      ziVd(9zc!(W7~-50TtzU)A4?(0F~v7~oQZR+GD7-gj4W_883T4;@bAj-DK&wxh%8rH
      oAjeS))S1+5ys|aI(yYQhn;(o73KMFoz&r|AW(~p$cSo@L4baVY#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6QBxCF6#i}qSqO{TbOoydQmcf3rdZpeSZqb8AOp5YX7r`AgsZGwb~C#h#?d~u
      zPfq(6+8@w|+7ap08GUr7KdBF$e)ry;B#<~dndF{(?>XN&=ljmhKmYyx62KIeEo20a
      zKX7;4hvmTC_JaH66?a?C`EDHFa=pkxR^W)bFZ(VpS2rHWYGNTL;OJ8?EU(GPbA9iT
      zyWvYZ$9h|lQS61m`r>r~u_Vwx7Y1?S21&*B>#}=AWS;!Hv-Q0|mT4JQSZ*d+OClCB
      zBhXt_b*O>_y1n>Y=@aa(K+nCp@0;V?6)*6TS%I-)J3{-(c!e3~!cCcnz<`Yc1_g@m
      z6na<19$xkWxl-TWkkM_^Z(%vCx_-qa2kbvR%qCl2EO1g6(3#npJi0KXDi{{%Dvnor
      zS<xvQHu{zIp^Zbv`pCv%91+NC0^G#gAshC6nP`y=3r=yoy;lK?UdDk5$eSJSi#pn&
      zZ`GtlHxt%Ji>#+fvqjB;h$vU;vKT1GxaL-+s``SB_t4MlG;zzdg-<C`Q{?p^uGeZ|
      zl*rB1nv9qt4CWtJWlb4*T*MG{PC_#a7A^@4HiOOSwYukT$|#Q+d|~0rzCkq}HfC{^
      z4eh9*TfHZ6wzXw5%rhOR%VQc}DQzZtFvpp@tPbXFEZ}Q_oLj5OU{l~+D_A<T?O<t@
      z)O#9>Ha^D~wOkA9QB^K@>ctckg^d??UUi94lG(*?H$TT=p@()apKJzsemNuB=7i{#
      z^PyLA&$W-f1-#E+hr1<Yi3IeNCML6cIQmq39^<b<0_KUnfDdS$GJec=f;&d&JVIM4
      zQ%2(srno-$S>8FNJ)A5}>|&%exr@=#&@N6la}2P4;2V0bvHshf>2+3C(fLXyzLC#q
      z<a5;Q>*^ewVQ-3wvlvS=m$|B{x=YV6`Ui~+R699+_??EfjYA5}7v3>=<Y4et$KW#<
      zC!FH4HS_7;4`hxy2A43A2G6oiMR-n;HQJ=e$ncm%{h$#Bj8}t}TuO_;WM{0AgIGTj
      z>!-J1ox}OIx=!qq&eZiYv3_|2R+-W$DL(F8*VMtfekIm#Z@^NctFS(4D78Qyl*|rg
      zo_dYG7r1z551+kK+oo`b^w2)#5dX=)$!8kfsP8n?=aVCn67Yr|C1Cgkrtc7F<S$&_
      f!<U6?&v9K%6PM?>(L^^h^|A$ZxPiK)^}qQ)1}{Z6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ%}PR15Xb-HXIwQ+(@NSDEz}^3sEy&q5(;r+-ThGycH(}-{RkhU9;KDgq6erq
      z2!h@th~}sSS&KV!=J1>Uf9Bkmucv1K2Ph{IA#C4>J29?1!dA|x-W9g&x<T6wo#EMd
      zAa4WZI!VL`n~NOdKLjD?OHT>Ql%CHWSLde$x*%j)uHy&72~1&yGJgN@E?ytrJ_(5v
      z<*1-Zh*qj5A=Yw-(m)i;X&6WmvK{5fZfN(VcPaXoB;-5pfDHuOa6P|_1=q?a>~t2V
      z`@2PhP^?V3x+QqkUf}TxjjE|_i`urp)7bt<TWPsp7{Tbdp*N6irH3j1`%rtj4O?Ix
      zeqp8%M}l*bs|c3(V;Q74rupWOGjWdBCdfQakt|1pF<>7t{zW-HrDqUUkmpJZ6gX;u
      kCX<>?)OIIWT~s(?^W&*PX-3Tzm`4d~tU*}k?g%!%0jrX8=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh5Y$#InQ+{k+87%)E4czr@_sfW)HW)FO5U7DfgEkfeT2
      zB2dOZDJwO(gpq-@03^-GpswMAkPI#<0_wKb1Ph@UX3faJ<yw)PT2PXipI6Mzz{$uU
      zgKi^GD_jXsd2oJdQF5wVW)9F6euRVcK-$<C85kLufzD@OU<A64m4OY&X9x0FfHVgX
      Ka{<{*4BP<wu{<yU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYyH3L}6o&tkrkEBex0VSpCks*6w(3NgxD1UL*i2*<SE+*%r^>T2@Blm%;y49V
      zH4K)0KL6+Te}27x02pE*;1RBtaxJUK$dxvW=%K!5rd+99TAdjIpK#(dQ7T#R__9=q
      z71$#TYFb*IMq3F4->AwG`ayWNn>QwOXH}x!T<JpKfN=R=|6d8AGuI0vZJ8@VI|$>L
      zONdul+-Huog7BGnl4ivwdg2E2tjrU2t5Zf7jfJjVKf=u<9yQ0CHqnOcZaLvWreijN
      tXW-LjLtAW=z&<>5IP#fxamX(ZNBq;nF_XU^XDUv&3G2>k_4!X${~PFCXP*E7
      
      literal 0
      HcmV?d00001
      
      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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
      N+XMLy`zpb$e*qfbmoWeU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h(MkeQ5QhKJRb$mMO)c>zh){zpqHYW?vVua4u=f6F2RpIu#_k$++Z)x5P|ySP
      zP|=)Kg32y-=FH)n|DQSg@%j1=U>BtXB7}`Q@gT-^M+}uSsCUBDmHm;Yg2$6_U)~4G
      zbrLWL<vHXxLCE;hQ^K~S=X1yP*)f663F(&W_<?W&OV}eByF98EU*4WB2=PPZsGv!R
      zR;m`kXt_7iL==lDm`D<q+RBlg(Xc1IE77whA=`HQY#`W%>)E9d+$x{2*`71qpFJ9c
      zd?h67w%~QUfyY}ns+Km+YvUZxGxP`AObh<N2xiwEd3|}R^f={z9&1}S8tY&serG}n
      zF~m71xQbwbKNdogV~TI~I1}esZG!Z3h%9k583T4;@Q=#yDK&+#j4W4LAjeS)G?~<F
      gytXyL%5Q~zHa`dz3R7yPz&r{lvIb$5yCYcp0;>3QF8}}l
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hK}!Nr5Xb+ctH!EnnpP4)mr#Q&qArFPD=@^1<^5?7d$I1u?lZjhN%{<(gbvZQ
      z4$+}+6GZb=0s{{_^XBoJ|9|G~`_J<WfCCg_2oZK}#l09+Trp5?ztZv=uF^_4b<fpu
      zq|Zh@d8d`<#$XXP=h;ciA3;b5(&yHW^aJj=YMc`2f{<jbKnquQgfo<p&&TiAueXl}
      zLi9wjS&a}bmO2Eh?p;e8VJs(LBTh&)l`C7rL09^hqU%UPrs?(AK(Gzhvr9|gsDMyx
      z&QG^!lPV!MWh;*0mD}3q&8wx3vCbLmEKf8D`o_*k&S3<*?G62&JXdC*t%VP^XIilh
      z*5cPD6c9m_bBwDHmiS{S#5pGT=8!XSj+DnpK24AmN1HKV9~S?vG@lYv2rI~NWdyPu
      mjX;e_!$!-yW32vHIAZhTi9&u#%@mkN9&4;YSm*8#Hhux#5qV?)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ-%0{O6vn^NRb$mMO)Kw;F4Q24$QwflH7G;^Yj0!R2AkMFu{#@f+k^BDT?t+E
      z06kQ6W|hG3V$PW}{O0@4nfd<t`~q--Y6c00{U`pyr%jK$(wj7g{*4G+8HUpL`cqpx
      zE81jWFdQs%F+LJ@6iD^@M=}&b5lHS>BG3|dS3L%H&5-Z<UZ}XIEbc@irQTZa7rp*H
      zL;75LQgs-TwYtS%bo~cmB8l}JOk^202GSG5$Q_H|mX965P#pL+8E~?pdU0r|M;TI+
      zgXJz)P19y5*J7^ea2k1}0-C&Cx3q0p+m@&sH=JlIEw_X*m?J+5Y;h@dGu4$3cBHRi
      z52QmcO%zf{Q_fJ8z#1)*L6%~UPEIK^%BjW-`HvXcplA{X9K)cmD$p)Bhp>qvRa&4#
      mQ44g4)NHzOIK$R|g)=g5#R`=<wNM})6>O6R!w%g}VD}fpXmtYs
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ!A`<J5QhJO0;Yf>2rBWQo&Xcj7`<S)pe7o^1?_#o4X!Dzwu|8%d>T(A9!$LQ
      zF1~_swh$B4LuYn2-~9i~cJ}r54&Vso6k>$k2k|T>4Nr`eH*9o$-S#~#C;DPCkdIpV
      zUJ4drXPJuNAA*nzWuS!X$ROm7+pBW|T@$jb6>8yWN4R5|NY6f>UOwtXNS-NA=@ubg
      zsX7F!?cYfoaja%wBTZQAC{K3BqrMDoMBkN!e8(TKfnXc17nhd4S0Q1)vpn739h!t<
      zC88Rx;5B<X;BA{#$Cwt4X@O@Mg+pUx#Fj9E-Sfx6Kwc^{%GN)RR5wl71FP`c63R#*
      z$vMSU3@iMx2+|xgd~?j1I45dTWM3m>jib#Na0rWkPL5BRIfQlOxiSI;jz*xxq+ye_
      egDEzCE1a<TX{1n^Qws&=QNku`@Dkh|!}d3Rb8qMX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-OG^S#6#kCS@R6ozC2b-CAJi1p%5Y-^g&1MY{;C(dG0qG#WB3R9L9K)q?dxas
      zL!xs>32fowo^#LPdz^E=e%?O-oS>3KgwS{vFJfxgVyx_uapy`;1j@0yPSBgUuHyxA
      zcr_hJS2vT05q6gd-H`W(Amn}NDPft?^O^B@b4j3ELbmPLejx0?6xKw>JI(Kd&->Rr
      zA#tH>6|@M^YRx3X+Rjj>5XE{1DWnOxj<RKUGVV+7LG&$2D0G|w8wj@HdeMvpPs%48
      zc9y1Fy-t%*s)hu^61;pb@c0JJnyLLu+P}zSjs21K)VfPBLaOIXyn(z{daC`^UPqdb
      zJ+L4jpHM*@3C>BbB3R?cdPsB3aOadWagNt#$i9V;9LE&H00S``BhSCg9E1%NxY7be
      nj#{9_NR3U@8#8SFS2$zy^H8BYM=cZ>k21DcgRsr)2zGt}707)`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY-%0{e5XQgJRb$mOO*88zBv6ASDyR%^te_Byti3<l!8X?2*gxTmbkkeZjnG98
      z(Bt#~(VSHR!;3R>=J1>En>k-UAD;mBP);C1s62{iF>csmWZJ{VwQzk?SU1uOEdP8w
      zkWaqp*a>Ka%{j0e@_z&&>q(b84e5H^ad&w}pesVU?bx0#Y~K)8AY+yH($V+pOP>%w
      zHEq*x5u(+aLD1UHz0?uKatb<<giOb@Wj7f0rF$#-mL%jl&VUUB+i*R5)cgn2BW!o(
      zrdzy5lTfIJV8ar;Y|nRj=Vr}Nz6Ir*=W#~fP<bi6IgFt9oWLE(3sX(AvDjl*^<fJv
      z#GgzkBZfHV1XmF(@nIb#Ii~n!pEGfe)h9^5g-C{@&KPh24Ts3`Ej5L(f*e;$AkR?=
      kw3t+EyuLHR>VJh}Ha`g!ic@N)z&wgrV+}%yyCYct1ye(Fod5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(X-^YT6g{sUI;9SRwV*6&MGIZP3hopa#08Yah?2M^4($j-h8Y~DM*ZLtzxoIK
      z51MGACDFv?izNOi<9Ra!2xyvl^WMAnopau~clzu1=dS?zFs33Rkeb&Y>5q%HzF^w3
      z#p}j{p-RP7p$Ig|NYT={JvlRPlsy%(Fu!Oz#VNxzb<2FJ&sc^)T<5VHPZl{%j;$Y@
      z@?64}1Y(1xZF*+}nzLKOxoH7q*r^x^MA4w39@_<?+1#{>CV{={a1&L_y5^X+XSf$1
      zmyJcwbnG~i0=rh}(`DVZ9WOm&q-`cA(1?@-Ow>c5MT3gCK;xKc8xz%q8N<C1$WM+r
      zW!;+Ac_m&a+*G_dbBU*X!J94Oozz*w3$C2X=C<BSAi;!ThiYw)#%;(69F@ix539OG
      znhnN;;oR*6Wp`?5M@Iq&(WN4@p)i5J8ulSAGqW1@V6SwsOF%dqYq3VDx<Qo%BIQ0g
      z^s|0*`qG>%fp7e%B<t5u#9;}>c+54Hsur&yMw#q60kMjc^nSfQ!S4C0X;ln2jsaSI
      zCv2&-$L1KI$`eS*;k1S`I7?uCanZ0V0=@rgj4iH)*rhmz=x@3lxEtUOOUMhGkXD`i
      zFOn2<NuInc(2*V9TF6yOnK-K9I6BBY<y76WamkduuZ34UB#lt^vkp-{b$k@rZ~WL|
      zoUsSFvyH2}j7Rw1onMAlSV6-VG~P<?SjNt8`NAhOe_$+vT^w780*vtV72;e)664&T
      zz-~Y0W1tmnToKLZVu56{giJ-g1!Hyjk7$0+NdO!3H*fkdT96RH@T+J4Fi*&i;wa_5
      z<0&blRQLh$2FD8DA;$AH?C;@I!+|&G<f?mu%kBZCcLiFjvVuD0ZS-w#t5QRblQrrt
      z`T)#Qs|gMB)NYY#0U6lH!9hPB;uJhz+R=b^?S>`fQJ^Rdz3Ab|2v4?gUZ9^Dq;QBc
      zg>iOmD1DAOQS!A(xi$0+N}=ODKapss+9US|+t-x^UO%JH&(VMv*nyW+@yb_{4p2fR
      z{Kvsj93w{qe^OI~bM{5ZI>~J5dgcpG+)AEWMk$~lOrER3mr%p`rh7G9tYKtxRbKy9
      Ol}tz|SbkZ%tA7Ce_9UhN
      
      literal 0
      HcmV?d00001
      
      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
      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
      CHym65
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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|yRQiE!
      zg)0Fn56&+wN=|jl%t>Wr5Q19*a*ZBHCmSOJBLg$g`3ww<K*zB%umSn(KpqQ_<^W<Y
      JAe)JS8vsj}JiGt^
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i&2G~`6ot<uP68&SC2d22(jR`LBnYAk2^NX6pnxcfiqt?B>?UEFPI2tW9;5JB
      ztSYhK0eAv<8N?aKF%6WB$8+y@&%I}6zW@6A4Zt4mmyi?KI+dT~wCT&S_D9Vlb*#cr
      zdM~C!H8DEyOK=1>7ns8Y%?N>&NQGK@eHBKmcz5tzK)e=M+7JB5NZ<6O7puaLeE;X<
      z*%6b)w)VB@2;^(^zJRkId{8d(xLSsbD+0@1?W@ChJW%0VIq;M~r5g;{K(Y<@Y0xnz
      zIuh9FE=>22gO<R0En%9Tq{W^I>9kev+m`FL<tir`M<d(DN-bcVW~9tq^uRw31lDTx
      zbKsl7sTvw~shk68-KeP%*htyzgwqUpH#<VQc$khD8|^h;$>_vbr>$9|3yLrI^vIVc
      z4tY9z7uL2Ljn4n;%h5+YncGTk;yrIHR3`lVC+hZsI2@{%+TKBR9?!;pWKYZ41<U!M
      z1a6{$BG(dkIb7oE*b8N(%*bP|f@`61hNUkFvdphb6nH}PDOUJbo<X>V3U^juH5KTP
      zv~02Q;0$YjE40|WohVdiRH{H8Ra}SQJKn$zO4>nhQFAlV=kQ77HmkA-wwTLdo0%Q#
      PCN+0x#G1UDWbXY2J{G|*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpKTpD75XPT_0;c>CK~RZ<Zh(nsj5<JAP!kPdLAt-xH~5;;nzj(WjI*;734<TN
      z+0SFVw-6H?7<$*c{O)<~+OMC*CxCNQQiu_%FJdZY4OfhnJ8JZ$KUKCIxZG5Z7&`KH
      zX3N)5d2R{@;c$)aMMHlCAs<Lz3CEItz!QV}8v;ELvK`M2Lg9v%a3(Ubc)!lc@3$5q
      z*;1|w+k|+vW)X~z_asfkk;}kDny}qfuIx?5L+L;2WeA0?XS0D|8?IMPBYai?q268F
      zZo@52La7?j4M*s+L!Ym2)+}va(&k0pX&j8Sp%z`k2xi}#__n-LdZnWcMyGlh$6z)7
      z=7b6oNODeb6~h)kEQU1440kR#6X!&Ij_gN-Y;!aj1I}RZPs{ULW(i>j1+KI}k)sx9
      jGpX5R{bY{a{|c9EeibQ{m()sud6coo8iakGj^W@JxqW$O
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gzfJ-{5XQfO1Iz(}AgDCPSO}PSF-8k9G^mN@VuN14zy_DxA9HsYV(**y0#+mz
      zK7dc-6BuWK1|!AJ>}-DXeKY&@^YIDb7_|%%goBZI78A=Cp7MuQSG`DEc`Ck|^ralg
      zfzD5{3j7QV!u}HcKS(G>GE~BKWEgSd!_6guZVCBL;776WV@J4Snd*IatJdpVhmgKd
      zzKYv~WWC`Kj7~6+CX!gs!9<o&u$3?G#$Hc`_oC-YLdg#LY#`W%>&2rHKdOk(u$P8h
      zy-|x$sn1}`6?*qL<S%G79PM4v-en%ii-y`yYc62~vm1=VzPwg?qTSU#N4gh#U@`u8
      zLJcXTIcK;^V2uxJA<HqxFDIOdbE-K-{(XiNIGT(Br!a7aBHwaz2pcGIr3K0ywLqIm
      h&8C}&Q*8cKIA`<LOrbib77EOxiY?Y4Y;$)4JHH%KdQAWT
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO)o=16g{{4rJp?Nvl3RcL}RTHRgn}Sw7Q?RgC{jlUZ=v|4<aEF3wwTpjsIXR
      z?o1mYEZ)q$bIv{Y-1}ZXpPm7%U?ze9Vd_j=imQSW=dL;_RJG67p*$|NT7CpU!ssu&
      zj}V4B(sxC>F8z+{siVp!fwl?BvZp#)C|wurt_<Dmd=%e@-(CpOrl+)2x<hbwjbx!M
      zzWc2b!bMlPdW|r@@E893lB*MfWv?Y;7{E{h2@Df5|CHwHgCL9~5JQ}h-gTAS>z+5H
      zUlWbCG-kXek0E#%&iju+ed@B&tnK^%ZrE~E@Q!NN7pxLHk(wtr1M<ceaz703H_l{J
      zGd))Ix_(n`xwh@EMK7C$V2+Ir@Sh1_3L%6!i`Xm*$GEpK@uW#cQk)$y)9~Z@#Yd#`
      zOAm1FENPU_l!ew=sKmt^$ne{2kB%{nbH;_3;E!x%8U#3=<mNs30^bG;<?rF#au9$K
      THokz06-@L9eL=#sWo5qr8fS$X
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hzfJ-{5XQfO1Iz(}{1a)6u@Ep3jnSB3XiyW)#RjCZSzv=}?vJ@U3=iP5*jtfU
      z_y88ZfbU|Q1saSLJF~O-&G*gje*V0F060P=fe2ymQ9O%D!xfHlM~$v>q@^4cUQPy5
      z4&_kir%-ur0tR7s3H~1>WCQ6dVfUmTaO2(e1%Yk|>9*$vp>V^Vu*Wj?RrtPteJP(2
      z;^)d$VT%y0)_Me^?G2@gDArRjktAd+<;vT!)0ci%^leGVS>AvR1lw@EI5ffs6%cCH
      z(vYif)Fc$EGq_<3zI!M1`3ah}p7t(k?>vv>1S9RIHJ31g+408yKwc?5(e`Se1Ko=q
      zuo%BPp@JCVoD*C{u*QqEkmQ)+lVi@rIaZ${{We1~98Jc6Lm2#VS>C1Q5H^tGN(<yU
      lYJnD$nvK`@rzreYIAQbCnL=q!EfknX37f1zD06oNTfa%odQt!Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+fGwK6kXE`1-w<Ecmw1ja*CJ67hg0cgkn--B%!enzD?V)8FD(u%$Y+D{Et83
      zgCF1z_!oYHam`qug(g1jbM{)ZX05&F=b!IC0KCNW3JL;iNAg(a4I_uz3>tlHRnH~%
      zq_OLq)!odg3Q7W1&uYYyl!NXODHY5JEL?Q=;>0M~jY*#sSPXzp8f|5@jP<EUsFH@?
      zj<Tsv%%@gUK)e^Yv6q<CN#i;)&Qv-7_4`%!?U3NiK)KyG7TAdDA0~W$40iWTHdIzR
      zioF(?-_LvMtN%$WxFfJU?Zg>HV6LqPM!L+>*w%mb-|W2Q6-63ix)FPP9t2CNKBZPM
      zs<#BnWcqxQ+%{)w2IS86662&csX#3X(I&*|pQ$7JeU8AYVRB5_axYfW2Kf%N`N^DZ
      zsC`1Mys5ruqka4-c`o+a)RyCRDtEN8G%hnPz}vV_4oRm6wy&(B6$YcNTGaZtiwVP&
      zids{0&}uRDGuxgDUp>J!wv){E)I058%+2$VFZ?$7<|v2)%Bb+`KISmbdX4Y7fa|E1
      zcmlWhU1g_4<Te%pwn(IgC3emccJAUHX<p|+s1LCm>dL6Dj_M<<h5kA=E-7qY={)8w
      eUULgiLakx@(wS9uJYxk>sCDenqrlVP^x0oI+Tc6@
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%T59@6g?eYhKC{uDq-UeFcBY#E>IGKnqUYUWL9p<&|nR8%uL7Nhxj3`NL;wr
      zPw^v+w*xW3#JK3az3n;Yp5A_Zy}kiBKq&!>Veg(l@@ZZ1iBzNdP<q1AuJ=?w*V>bV
      zK#R8O`{HuyhzBiQl|YoCyu|5-)E@*x))$`SV_SGWG5YNb26oMmX}QYRTxpw+0}(rW
      z{<Pj}w{#gll}hR+L!?r*8KNzBD3XX^HH{=v3~L>!L^qfWgm=RSW5JN?xDGYo)Q0NC
      zVN~BqpJBhV<nG@WH5dw&kW(LX8bOcVtwxQiZ7dXwg*-W%_#@NSNH4({l07%@9C0O$
      zvGN~d3#W`7kP^+Fp@bOXloM20SfNEiNKs7F$q{8nIaZq?^AbYVC?*MJJ}!zwWNDY4
      ugRqVqRYo9B(FimNX|VCy?hG5h6^^O-NvKeqqZSH;M-iK(!LUVa3)|lSSA0DH
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5-A)rh7(LS#7S~0vQcy%it7W%PRzT#ZN&+YbQ{Vz=V!Yb!4s}SoOZJE0i}(;;
      zVWMC(@d11XA4TIgOM|5a!p-b_lQU<|IX(UL_xn!(6PQ<!V3^*q_N;x=wd%sHnvU?f
      z9eVx;b1@8kQHesn<~d?p*j6Y!_vOCLcjZPwiec!~)%BR+1i{c7a9>!pGWP?zv9<bw
      zfxTwvUiRD|wA`?4)gs>E{az`2Joxj8L5W<x&+ULA|E_e3`oF4XF{>f37a2OA30H&*
      z3`yN6Go+S1hpR}USA&LbhMtme`Fd2ZaQ}@}sd0vM$+Jn9Me1m79Hzqef}Wl^@8yg0
      zARQS!zG~Ji%5jszbE`$8ER_sMB^eS}532HY>FpGZVKCs~R&1XVcbZ+2rh<O?JdE-c
      zFx=6g;wt4$ZU?IuP><=x<+&NULhslaL!WN68&U9(VW8FDQY2~)_hl404fpXtg^s)e
      zgF4cR)i8=N>cXBZ$Hq28t~u6?$_~}Dc*e^rvKZ)s$&i>ImcxXGNlZ~atleGiIx@v}
      zz3oH|twj~n$SHWrFmlN%%13hy>ZTX@HeV64Y1xZgGcKtq5UK|KBNG@z2Rdm|;;D;H
      z=vSnD2c1!uX}w0%6n&XI%^#uXa}2#st4eTS7AedjO*`!vgd6CiNfKmel>`ffl-SPv
      z=n?u`8J^Q~3o%3gF{;5pc-+J-;-F69c01Qs47GAC5!doLTzAQu<hqC92A3Jn(%2Ua
      z9gx5Tq%oNY@ajxcRHnw|HOf%pvOkc0OUXR?hLIx_(&LACEcud?hj>E!L(H^Nmzt=v
      LCwa}r0_Oe!);Tpy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%T5A85Uk<h3W}hBZx4Ecn7Hxc1!6)_l*H(Po3{Zbn<2}rncXGIr+M%L{3v73
      zKmtJmUbfTI)xA~S_5Jht1>hQI4iXIK13u#KuHr+fJhv~k=tY74a2rviWjBsQ=pe;V
      zFfiBWgn8)>2;*Rbp*VYO`hgO>>k9{)3?*BTf!h&Ua$k;3g&`-yCJ#m1Q-KzJhGeDs
      z%8&}>n2MCN>FbGz;imF58{Hu$%BxlF(<-Vph7D?O_&&o$WdZ+e72d0OC^U~`pa`Am
      zNKf%7*7W;_wGH*l^$c#O9NKrGQL&Cg{jW?jA^8^55+0W<VGcjJ!~fROnv7bxyaldH
      ztYEZhF$_kuu5`~FoGv}pIPVR@WjjHvd!i-H+4D0qU753zb4Vi+NW&p3X2@R|WMO=^
      sg>4&i*s(E>0%3OvmB1d=i*tF2@-p@<u8ad452t-cIHn$k6We+E3#S;?x&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n^erC>sUFaK3>!1!XHrL3|&AKp@WGOvKDU{9spZSV`BKwnOyS7(eqt
      z6J8Qc^t(UGcy3oli(vTBmwWFy&-0w;ocsIF_n!bJF)ty;FuSR3Y1^u$H4JM*T{j%A
      zd$#jYo!4ALpYuG&s5L!45?wA@%?5Wg&#)~C35JXSQB92yUe-1VK|%+^Pz1W-GlVi3
      zk{{~a;S8+I(Bah$cVvQLbUBiCnxYb=OdFQr%`hm1Gv*Yl42cDMou|OiD<g$;8gcZ=
      z=t7nuUMN<@$vGJkIw@k=uz01}sB!1DRx?RycG=c7v#L3USO=R4A)R6FY$8s#l1fVI
      zrtK0>dU0Fl?}fjvgh7VEh$n%Shan77U2|X9!b&P(ElnllWn9A$l@OdPn!Ld+k7On+
      zzU@(sg`%%F+_jR(ydmQzh8em<T#%MR0g8kookoP5)*KmQxJ3=x(#$3&&TNaS=^3V4
      z^#_co#xWs5Jsh6UnM}iZhlIMur&dK}33sU^L9P066?>(r*8_2Ft2%L?&@4OOAS?1b
      zs5p%&JQNLn#E@$ZN~`7-nr&;NRICaqB^lFrLjG-VGACCkpWqI)WyNkfI$tuxEc8e3
      z#JG^hAeSwRI}4`fx}x$+(V)=yBTr_>=}96+_mKt;$YjJw(yD{@yCBoMn^toaA!2%!
      zu|4!C2goS#J@kL0tr&9j?jazs=SZ?=NU<fHr#+EODY$@(^d%+8QuJl|Pta<>2OjfJ
      z==2CmFoRV>5UdSx1w;Qps1z@VlFB}=?$A$5Q48i(2qxKvxsKug!i;=92J_}b7@BWl
      z7XHi<oY0U{cF|8y&n`yyar+CBiJkayO>aYBxwa-6`H-e5A6BQ<2-wLe>}PcUz|?B?
      z-T@x`3fPoYVqQzUqps}Z@sa*kV>I-!8U~miqMi(>W0>))oyAl7iVMi-vQfwX0<&K;
      AVE_OC
      
      literal 0
      HcmV?d00001
      
      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
      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
      D3)Y;=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>@&$6g^LtBjPAvf*o22!3_cYL2%QrPyz`_8o*$}B8+Fqs*3X_5o1doNp92r
      zhyH*r+YK8QbS57IohhvO6U;EMV9`xCYzpN(Tk#i3hJ~Kq(|z~cbI-k3&)z-$8^Aag
      z3}^x~_pBeS^}J(MZD%#VVtcY2xZcnCS<AP}GeO|l%e6rIqh05Dr&g7o71*w0Ko^KB
      zn0&<|#_i>M#4yk!Fx&yYP><2(DG>c>O?py56a+MTg_|XTo?y-PM?V)x7d!m-BsWQ)
      zOSWSNQv&Bc+G#0M642+|71;}c!zTJ*#t^{~6a7dCMADg(vJ9Fqa6s)oG0}^dz@eh;
      z$c0*US$cP@<qG)^6y35_DOsMa&f!O0<smTlky-2`F%yiIE3VH-vHA6~{6XpN8%PNZ
      zbx0ISymLjsShM_Fu9BGPEXA0_sEN}UVG^Nbz9OsA2}o3T<a!{GNN4Jd+p9ULJToS;
      zI4jVn?uBl>IEV8F#stoE5ZSX<Ch}luV^*`ZlzPfHUkmI?zEtl&#`^+a8TfLiv)XJX
      zzQ#9X>)XFH(kd9ZAdqTdEVzrc@><BSsn-EqB%0%<s?;MT!?a_Vz$I1j%L2(p?=%u$
      zWa~StlbMpDGHv1tW+>vSq(aGbVHb%E%!Mp=8K>qX^<ftCCa&TdYf7}jcioDIfjJNs
      zV~y<9JxxS5M{Lopd1ZOkR=t?$8rAbk7y+~3IMSP|SiUb=>|<TG+Qt$o7CXWx$`z{l
      zxk9x*5Ra=d;i-rAejMa_h^ITy>UR^_+$Q4LZ46{1n@DDdHgWV%+BJO2bpSfoSHyim
      zwCD7GiDUdSNIQ_gaSZXTb}E)e>=WE;80I&fr<3(qIi7@iTEL17@VX9WHjE*dz-Jiw
      z03y#j$|IWH!l?(`H25`O{%M1WHet@-?7lGRhg~rL?h3=vV`L@SG~pD7WOk$e#5a)J
      z!uTJE>JK8_oZhs7C7YZ$jcuGJ>af4E4ob~JC+zR&{|gg$2fp3L<P(}yG<9POQ%^Bl
      z%--c*|6Y}B14n;@nR^5_=6&e7R$hZF9Pl3w<1Hz?!x;X@1XF00un<xkV<E4j!2C4a
      SppS-|DDtiTBK$?;7PR*PByx=a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9YkO2z6@K?zGGRCkFhD3IK!6fRCJ=2Ag-KE&P0El92q6%>agv<C(8&zUg#uMt
      zENVpy^-`6zmSQWEmMX1f0!;;~e)4(L>IX#sfRCU2=11{e=j=IiCIsQhGc)J1_FC_H
      z*Spr<`NMxdybj>g_<aaIh5G&GA@gu^${bCk_BIbEGS*NoojKCH(aa`>Hso@d#9%&W
      zWkU!k%oN+^q)EdqgZpV1LWRPTdw3`<=E|&<NtnrgE0ay6Q#;~MD5%W}54ERL*_@fm
      z^_$7O73^5}@U4qG*4<VJC-$b&8LQpQTD08F2c`=}A<}IF$>$Qu=6)M*OrfGBkxJy+
      z6#Oe2`V|80>0v7jg*gUhVlE%7+%3;%bSF|)Z+>*p%Ji9oNxF}8r-um5BtYKlhk@L_
      zL{?#?9qIn`#KQ2SMk39c#+VBY7<edz#YN6MP{UY+8ZlaGpb9e-RyaW%UbmC*)ZUnr
      zpoi&LL%$@mTtd_n*8{Dw6Rr^EgmBH8?No;$S%=JI`75Wgu@IUV?jEHr7e^RTtQKI)
      zB)3l))YhZ)Yz_}A%=H4*t{Yg-;7~H1BKdPxHr$=7xLIr9F|1MW4VtX2bue!xv(pj8
      zdIK@EP&$dMs3UIcgn?M~-LkIDz~lHl%biUerGGw-%d$54YB%r%I_Pe%mD`YH-b;0K
      zx4^x28+4@dqgKYuQL3@&coOjtHYqGBBjYYh1Dgf!^ptft*O9bFtrXj%TcNIOS*gL?
      z_Lz<?^cvWLt)zv>q*mp$=xT`owi(!tKITP3g|%LGwUxuCo6!^jZL#(n_#7UU>~<L#
      z5JqS0GqXKxIt`xc_ooN<O9gnj>|TxFrjcb2`Ug$g)|K1d#S{${i@LPjY$~8M9F(FC
      zN!GTS;#10H1p7kRTWmIu!VM(A6lOa5am3;bl`>%#siT5Mz#*X${KT2MNs^~+=P)vJ
      z`3&XMd0)Y_+&`-}HdjVr!##vi-dx#7Cf$3)8OA~6r1A0!O^y_%sQaY#F=r~+LSwPk
      zK43;=<Ef1$tfXA_IYZWuqXrI3*ZB|R$ynz-vAAl9J&;Tljv07X^j?v%M$?B_fq;xN
      zR)?QWQ>fo&-@8RUXrL1Yp262dY~PZQ6kBC3?dYNs-%&sa-&L3=HS<!jF`q~dTN%;K
      ziv~{Nv_gm@HE(Sh;oj;6SR8&Hgl=D-#P_9)KbSNxi?Zym#E&S(SX~$=@nZu&!B5GE
      zdEkJRBF<IbD8(grMbSXn`zJAG;M>?LTh<tN){JEiJK#9uw68>3@9^;yD@v!9Im#`F
      z)*Xk3tOGI`c_esUVYW>O&Es3#HzE97k3EN}_N1B3_NH^4>3nL~wF=`+oDbm_3iFFT
      z92B0A1}<Qh!mMFy#LOpi+gzlw_@aTgMROrZAfC!e?Jfz8@5*K$mkskx{K~+qGL{vk
      zUgMB5Wo{hYPiGQ2t4PG+$wX|)=e$gWaRuWc6ciSeqxaewxGL}?8vf2w09pQ_feFD{
      zX$Q6wxPsppcpuj%>7Xbb@?SeC2X8nwWq5l!pBb_`6LPSbGpX}e3sMCmo=RC6yC@b}
      zSun}UGheWTJC2{9Aio!|11fnvjfY1c!u;@v!|Uhd6vN*L-|_gv?+EYK@I9Lb6^;IJ
      z%zlqoK2-Bt)&VW_*ot|)G8`*BjQPA14|BDL9gHcqa~sF8pt0r(Y8xl8XkZ+5SFohy
      zFoFP$9_RN4LfeQrXty0#JBzhry0PI>2n?}IhuF+jey*-;j5ZPGBPFj6%qN-hCfi$`
      zW9NFS#0spW7p_GE8W~Ic)@#4Vn4X}jx1ldAhu-)BmP{Zz5N#UAssfsKmZDa39e9ig
      zpqsh$Fqd8|=fOaTYIHoh2<lw~^%?==**QwVcy!WOc4-=GC!huxyO!nXjtYnZK64X`
      zNM`gh{X6BUvh(btpB*fCzlX_M9a$Revn-Y{$peIr@*l3RpqG*8#|Vxg=)V-biC~Y!
      zYr2MY3a?|f6SI}~8x+op4KFt;^j^S<RoBp|a1&kY1C8?o*U+O-z!%mB=LhBo3)o?M
      zq|Hu+u{*Z{mt4H-DL!Bi>tvF#A>Iw61{M#bBUpufWFbMcPf-_1@;J(aP6}V-vtjO>
      z!fKm?+GTYFyUDbopIx;360=&v9KVdOke7|j`m2l;peKXz_OMz?PGg#bcW5nD@A9`^
      zK#OEsTfiW5>J=K!U}lsV*oj$Vm?zK15OJS9bq2vzmrwXqt>)?6og1oDm_<wxIK+^L
      z*<(j2i=$Y_9V^CXaUAnVq{~gFOH0JZLtc`}`?#`^1ngllN>0LjlBQQ54(Of@@Hu;Q
      z0tW}AZ?mQN751Cw?Kn=)hIJf81SL;TPvI#rg{K#$^u#lSCNoQneqvefZxK4@)D-zF
      z;K-hqGMfHbQ__ReK`%0;QzYy(yZ#ir{Utk?)5FU(Y#*ODkQD9}Sgh$$@~?#k(9B;U
      zBPfL`1#ozH*@Hgl^1$<hUM#{9^wo_~UGlF>FD!{lzc-awb=qwV)A0(M{Z$XlYPX8j
      zc#ak0{=~oIypmD#48EZwbyE=%sfxqVohi?kA~<-@c|2FSo~zsuQsoXY9=5dStBfRa
      z?i2nyiuC_~IoEjQT&351bLS*o7d*ON$^i<TXBKZ!ofoO=x2fw(Y_@l)(DT@a_iXIW
      z`0I1A_qp2M>T3HjSKIs#P-h_n${y1KrhwMTl`MEFS?N}irz5@o4YDiz_C#Lj79wJ`
      zuVLN<P7Xw`;(OzGDe}VtUM}EFx93@rs{&rpFU$0L(=%_Kww_>!k4VII&XpUe;~Z?|
      zeHVV~DO-;Q=jZ-#+}?YF=+vqED4n0NT(1#m1%J=toZW_}SwJaaGj;a{KX0|#TPU}H
      zcR2R_Z5I#`tbFrJ5#|ZMT3CDT&c90=k^}FLbn+*T*FUqJKH;|T7j874U^V{gsZ6t5
      znPyyO&E%X=&uv+z&OH9f{E_|qef(Mjm05GvhIw3bEHFRNTT^QR*M#qgeJ_KwfRD;(
      z{8tI)0(*+zBFw+>C~}*v^mnp&n-KruVXz$H4ThhEg)W0P$&(KslXE$wDDDpmzk~08
      Dk;y;-
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&%>r&G|6h14JS`;aY3Wx$;fO?_gjY}Q1(mGQGaoSoP`QfBtDXDGhBpV0*czFaJ
      zeFl97fA|1Cl;g>!)3nJ}wwY=9(M!H_-S3>U+5PkP*KYt=fJ7J$5tuG3@0H!Su2eO>
      z6yMSes<N7~7f)%%YE5T!mxUojAZn|{D+=mt6w9a+hJFGgEyi_y0)xp^>P<4A&t@LI
      z$fpUA3}PrXnWD3TQn6?sW<UrGXVcHulB;P~*%n|{(QJBsqu{~&&`XK3Bx8nFv=}uB
      zEY7XDiRBR2ONkhV1WR%a69fj*yDELhG|VatCkafnEae%eqoG3Ji6GEs(AZ0kvqp*-
      zjY_8dRAd@Bk!ZEHrETxI#1L2!1;|KH8Y>W37O*61`%o0vSy_W9w>{VG#5Gm13z%WF
      zny|w^5QOi{L#U|fTLgqGH&xpifrKP0qTUJYtlywcj#1U13Zprzs5)~>U{ge)Op@(%
      z+)V%{=Cy#`c7|?8weRZ|=Mfz2oVr7+3W3hXqs2`}`$3E4Xd{8uiej26x~=J&-CYFw
      zO{y5`4uQ7;`Q3j$>-&vvRjI*y8u^aow34nc%b*0l_Ac_hb~Vj$7P8c|DlBmy6D$X7
      zh+u4d=~*y&0$v5Iisua_D*neVxt3qt%V2~{tnEX0Jj*XlZ%eLo!l@r5{yzxzX~(El
      zOz#FKs^<5e29zhF+O85^;^A8_<H^(TS*|?I8`nN30B5i4q(y!nbPn=#eUhqTSK0b;
      zz$wU+HIS=WhDsl66?}~kxkrw9`@Vr!C<1->IgH<95QZc8KVn~jU;v+wHa#E1=fS4u
      z<1mibvLT3~#V}fg@b?5qMtsOAA9C7*oPkjvGUh|ZeaKl4G6Cm&$axPk>C>46ug(-q
      zd#tA5f(N+>mwd=&4>IG^nE|iPEX*O_4Gtm3`M-i(&caoJ<QkV;7f9y0BrcHL;F1M_
      c<R+Kg5=d@y$sK{@E|)9{BulvdWuE`aKMaZTjsO4v
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7>&q_i;6vn?}{t5r2Sz1Y(c2<y7P>>>o6)57yazE;%6W6(M?<lry-?sN?CA9DX
      zdXHWsI-?TUsuuU0Im35;=euV<zTT$*j**KXK)84iBQY*$F;Kc!=qgWkjO#rWs(K_G
      z)x9*vQ|+OV)vnY=-7D!`k2~_wC|5@iB<wErH)fb01tH~2PYI_bJ)b-7s#gT65fT+w
      z`$lNf63$SDo?rW)(^}|-5H2aLOqsBf-)|9u6}Ky+SixExQN#$zy3(>S9JHl(E831E
      zr0Z^n2M8X+_2M#U`pPGi>Pzna^>;-=CO_*hID%Kx<VEOSald8lWUQSHb~*5S)`A_g
      zBqKzd?$GPV8)Z%A|FF&@3&9?k%I`zSA%rmJ2v-5D^2bobIL7(rlrwP-9ZZmTn@N%!
      zqb#$J8^j4xe2ULSSVx*G3)tXj0cBQNZTR4Dg3aHAGai0EBV^~Q1%dU*Vv8AsZSD?W
      F=No2Vi@^W@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3PcH*O6#u>Mwv|<iQZz2&LM1i`4wWY2PePhru=i;@sgdoh?9PgQ1>eR=;^64u
      z3-~tT%~m9J5Qlkh-sJahX5K$vUIA>QRz!}lcPsA2gRjLv>Av4nvFw^C9{T6{UWBT5
      zWK66&sgZ#QQ+fK(m3Kx(x(JuBGDdA@3O@+KOd?|?!a&9eGp^512y{W1I*xQ=gf^LC
      ze&~EWe!evvLg7$pWts$MeIp>a$5Bsua4=nhhe<-YrL=6PgN}@^L?@JlxmMI=1Hm>t
      ze;>N$MkR!U)>yj#UaUb_SkI__DEL7x`TDxw*a&Qr1)HS80S8Inx?6`a7{R-Y(zq+n
      zl+CyH_akmuK32hk{2_!I@+fdG@|42_FV@2(*Ak!XawqQj`ZK1UGDw-L$1wYwE_N`(
      xyV3}RS<LZd1u9&vK$DRcTc~e7WB#|oKARt83e^$nTY>SYVv#inOU%w;`3qskg@6D6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O-n*S6g}f-_>rb*B|!u&(jqgV7KRX3V2B&*?Z@X}6VG|^-aN5=f2ftvq94$Y
      zitaomFbG=Ay>l<;oO@>O=hyoOfCef_L>L-Re9C8a#V1mY>m%t2Tf5#%y{o3&k)tcE
      zJvj`t@NZ_ec-GQYNyHd-S7`l^{exi0`@)mlv4rOn<Dq-a!0s5b9as69D{XNn5b=Z4
      zN?~;TDi{)%Qc2xrh#poghFHfPi4>w(&me^~L#`*4=m(Rb@b3B0Ax5F++BAUE7^;`e
      zn0}N#L$kNy?mv%eF_aENTHWFF5d(U*8n>#JaZxfZiezr$kIiJGz5-)N4cx%9#jP~n
      z_Wu676T`(mNQ{=iP(d6C%1NpsSffK)NK?#Er%9Pnj@RbMzJ-t+#T3EJ24grwo^F{1
      u2pcF+Wdw>8jX;}_2AilI&9V7g;hctFgbL*aYN<eYl(9t`4BNzxVCNf-^M3FE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3y-or_5dMZ=!;c^cDzPy(h>1jvQebFM6AZxurC*K>tU2z?-a)YS4SW<UjD-*2
      zYgqXb##taHSQv|&+1Y%5H~aqe`Uc<-g(w1qlRGgMld>a*%ITMTN=wUk^+UPgjD@Xw
      zZ7H-hsJo7@UE8~uSn}Rit`kLwu)RcW%@lqRgtRBM5_U&wj~Ta(a{^rvk}T%=!tp!8
      z9?9^_$7A{_^?6N*oGC~7HA1ks*CB-JZcoM##A*UD#0jaUa%5{X>`Hwjy0#=_ny$qL
      zf^B$ST!#FC@(7jYQo8^CSe1|~&ZuQu@Iu<Y=Dk$+IwncZB*}8Xq1QL=#$gFYh_&63
      zw&bNU`F8(a;(_5~2Q0`BLMR}N2=^#Y0j%)HdWdsP@XaxI;vOzdk$j#(Qe0yUGp`xK
      z5z>50%t2T~h9@JC<!S_Kj5OFtX@83K-wLN}UYRN6=ct7O<B`V(YY;Y>9l+K%gBOL7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%T5A85Uhp;41yr|Bp&1jn7Bcr9xz^fL=52|%E8;POkm8iYi1YJKk+v_k$CU}
      z{3v73YE1B8JWTg=r>eT9=l$dL4L}{G6k>$NotTP8+Y@8u4ef!_(g}V2WVgJjaMhqI
      zg?2{g$_=GHdvxS|sC+L4i?B6E>_q$@1R)<tt%Tc?I$*|4>y$v3gzSm$1)=c5o^U5J
      zQMq{7zJ0!`6Ou>DQ{gcoUa9s7)`>rmX~eOVK^lvMTw8gvGa2`#z7~B~5(;hK;Q@lj
      zaQ)r1!jTFH`|UY*|9e)Guv&?TwkvoU-B9yRn$@21v1)u2+1@x9n%PEw4n|0K{fTxY
      zFN@uk|61U#VWSL|<F6o;kU)}iimMnF_^=ulIcB)i;7ptowHdN65hTYk%`o$i7WR<m
      xTjmRdWfZtF0!5BS;FysHo2>23u<~2sfQKJO3Tt1eZw1C<4eP8y*kE=Ho1bw!fj9sF
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8B16g|^#nnh>@Diozfglz>1Dj<}vf|!(`B%)1tGTU~nL$<rkc1zHI;6Lz5
      z-VG0$NJ%8oM-zXBKg4)vw}FZfA9m)>+<VVG_uSc^zrTJ1Fpae!JPc!d+P-#>F|?{M
      zDw(pdc*!=cH<>49S-cV@%@(GSw|O-PA49hc&gdFNZWs3`GKc^}k8>-`%nrANri-^)
      zQRfs~ca8;a)d}N8{t*M)WawNsjk>KFc0tn{+%Nh+ygQ0~{KXKcn&p>fjiT}lKFzi*
      zhT*L%=;g>QiVd4*DREI4!d_+=RrCLkPZbD#-7NDkyy#KTja~+?nkoblqk`uh=5?J{
      zG(Bfk8dYxC8wVv`lWK&}&!9+t2~kfN4P6hT4{?b!$k3}g6kL&Zh@?@;rV1h4Vu-j6
      z$}C~*lThUjFeDTx=#<v5f@|nv=-Ltnf7+-Px%J$YGP-4!G`*mayd-Vw(r3RGb%xYc
      zEnl1<DHW-3yZw5b)TY)+Z-qQ(nlg;2SHhk}5njkP-4^K)v@-r`Jcvn#*tw)`@LEIY
      zWp0Hq#SnBgSqftUak<=A@BlM3RIOIyMwwwy&AVLMky{Yi5a#H;EXc%pnYh3(aoGU=
      znaMf8B7<KJlPGwxtl%!jB^*7c@Q&HAO8l{querBfH~B+M%C?ZCxq0dH(>j14LS%Q)
      z@8v<5J{qiJ(^zTuk*^yOTBCG&PZ?g?XVWLRKK=upr|8>_-Z;U)_qgv6vAF*b(Rkpn
      z<+v#w>G&~*(&NWSes*wg)0(DAz#O5^Q}qSH&LW0I3}T7cEmJ=$n8GS%ki!T?CfusH
      zgHbwBeTOA;EXmVD{KlZRSY~LKK7aZPhK|VaKo$)+mm3bC;s&$;=|K`Dx5f74<fjYC
      zo0le&`mN+=#8XyQPcg9@&75FbQfT5{bhe3y(JU==k!)g#tR_}2;%~R%t7qg^9TvGi
      D_k|v-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-n*S6g}6^@*_>tN-Ail20bjOg&~9$7~;lq(`tN8I-&2yd-KA6Rx6=JKcK%9
      zM0ZpIgJ?1L&K=G<_uM-lUvKXKYAD4KB3O^&SxhWPjFmI6?v*EP?Rqa($L$98@LX$8
      z^#d(0C$@aj%5~z15O$VGof-EBLCE^jQ)1MUp3jWi)&+sC3F)Tm_*yu+Cq{vcHuoNe
      zt-H@vLhMXAN;e4Ma-~OzG~IidKp1N&B#<Oz+RBlgVBDA9jp&agA=h?oZXmb~*Nex9
      z9x9(uYcIL`f22C0P@a*jk>DkCd1hx&uk?(Eg7J`NYh!<4`Wo#e7$MPh1J9OM$~fEo
      zYjKB$iG8pXub)st6fw?mu0mMh!%9eUO!3PxXW|^KPLY0{K{6Z@3^RWh!4a~2OU*%8
      sM~*8akmqOw8jLj9SoL6vjo%6<-28N=P@JO{3XDe)o2)_DVs;4I->@is3IG5A
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-lk%6g}6k2|v;_t)v$1)S$tFS{QDupb$6K?4RR9UyL&`GlnhtQLcm*Ld)9s
      zccS}L0)uGr?#JVtbI-f)<Lh+}ppLSE2*G?1Phw)aVx-)G*;l@_L(hLUyY^6ygrz)3
      zgvxWTCboRkg@G7he~r{xaDNblTp)cV983BEGwyFL33N-yv^+Nmg&SJJ8O!+R`-?d>
      z=5K_=g>qHcBt$D!ix6vheVIfQn`tDGB4pdjm7VdZC;dCob0i_(_G}&?cntTe%UC#6
      z0ioVrbNBy~8iZnHK{6e|OX!9^@1jw)w1=YhP+)7LV4&w}?KK!7+4aW0Ew7b!cJSBY
      zjx`g9U@2Zdp^P{ZoDJ?G*x<uTNO4T_%_(Q%9IwrgnJyq%j!A~;zl-4nIj+)65Vnx#
      qP74$`YJnyrH8xQ@nqm95!Wj=gUnrE8sFecaQNj*u5O$dz!QMA?+J3qK
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U2hvz5Ixsk+ljmRAgK*$fF^}D_J-7i@>Nm-iQ^EvZrsMMCDI4jI7_<0-mTVa
      zMEd{_@Bq*J3M7y~!m7jrKcN4if2HEwyRPl7HtIusXJ%*4ojG%^^5ogS{{dLXK?*T}
      z%ctgd=Jy51?AXpp;n?=9mhXBG3w6u%TK9{t<9lwqn}Q}VD^m+?lX<nHQ|6_R6gaP<
      zw#y37Hrw_i^QdhxxvSi!<#lb>xm(^55EX$bB6fY#@tbD5XC<Eg_T}=^nayhgdTqN>
      zDmK2V7i+gm%q_>+Bm|~w`=x5BS*iwKWK<BQes{ZZP%4dr9OYbB^;~bc57@w@Z+EP!
      z-LZYz$ChV(Q?;FMiF`=kv;3ata0-ER%k4S-AaTz0ea}AX`Bt~#9;hUN`FqvT<aK^`
      zPBsLRH*ClDHwEIkd{aOxy2n<U4PVr;h$Vr=T)9$?s60HB=`(D`+V6FaEUys|Hdl39
      zX1i&UL=rd%YW{t@E3l#(c<Gil(um`Vy#Mt{c9PREk11&xI?e~yJ32DR%GgyMuLjn;
      zI$pzsjJ>C00T%=k-GIXh#ZBAp2&5#P%1TI%*i@1vx{|?!VwbBrvHU<bgB6gOGB?X`
      zW3-D|x;xL;vD-FJ6oXvKJU;}KlVGkU_%_98aco1xq>QrTxm&}X31o8l2+rACH`JS!
      zE6Y9TjE^-J>u@kiH{79?Q(KF<4*TTih&~w|?^DZFBz}UFNd;!di^dzy<|6u)mFc?M
      z^IF!fEnn08i_h_@)FYO;u{i${NaF%hn4mq$_YtGN03B09f13Wxm_JMZl`(&gHI#~~
      zrBKvKnW&Q@Q70v$P6~wQG_ff&{=Px)y1E-UXK0gg5syE{n}4h1W&WlK4s7w<#wA)h
      zi<pYH@HS5gvowJDo#V($R*c8EY%KO^WVAl=MkdwAs*y?dv1TmwQ7{$~eXNhJxTMN<
      zpy3NLu*X@;lzD~FHwj+F72Hx+?~x_K53ZKhHN}Fo-Y14^bOj$UrYY+~&YDoxM`R(X
      ztdD7>*zk3HGHAQNQ;w7{{=v#0G-6y0m@b2N#%4|oXWob`&WDSek;OOgX~fN|;o^Id
      z#ha1EYvJOrBa1)7=fj(0!<h?zhGw=Ri?_J{KrZ8it^XA&K8-9cVrNjiNqXg;l1d;W
      z4FocCxvvKbAsb{3cby#UTA&n-l@DY2#Oj@awX1X^sJFeSzE;Cn4~g~Y46HI0B^6YO
      z###$w{XncAUxIa$st?HC<fD@RHIv3gzML@DPsIB946Iw~RSWE+HpF_){pt(vFW~+c
      SV*PpsmV8Na#@lM!cm4-qj98NZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc@~6#fRb6zWn+<syg|M4&B~idN+&cex7*)kX+BY}*x<lwGpBCHm%1(nP7z
      z#CQEAKImUCo|#?SE-BLBOFJ`r&iO8L=6wJC`73}Ctol*I&~vDqD6iwXa-`||@vLU5
      z8QU=5#FMIGW)8MgE1$FdkQiD#fpeOkr38kMrJ9<OOR1)%8TyNr1qQat&^T}CmaXV^
      zO3CF_-`gL)pWl9U?K1cj+cqu2UH8;00ngHREuFVjYl5L}QqwhiieWV(;^R4mSSBe#
      z-=8Qu*-Rf2Z|9_fn6jGD6oWKxWYqv_5t1RJnW4X`>d{mK7_Q0);0i<2x~8ie`J=RI
      zK3CE?l_9)tWXK7H{Gh#iDA@-Z$?ZK)Zn@7SSfYy%rMNpDwG6dJ`jDfPKDn|P)~XV4
      z9)~h}cA_b6%uR00Erv){bt#D<pjlgLPO-HU;?H&%cK@CGf0xKf-sL2F8OAON#923F
      za*Abb2-Ej2S*LniqnvS!Vf>Ov!sy0*)h^u_wN@lr1p|7LmN&1@A#w3@skaU1vS<jn
      zSf0-G<32-ssVkk}xxALkswTgvgp4@u1@H)?emtg`aW+=Q7{(d=Cwy3JzG85>IWTUQ
      zJ1RZM0UBeI+|wrvtra|trs^?G-8jwzXJyP`o@R=2e5~qOhM`IsWv|PlV<Ld3Ncgen
      zq3=-R)f4mrl1ARlsEZmO2F>LUdzcGGH%*UP8of2>gb#JJ^NU?QozO_3wV%#pG}3R7
      zcDocU(Z3uU7%ZSEHuMqU_adW(euJXcDAgIG+;OzhS<Hz?8`^0{nYe}ys>WBHxK22H
      z#j$DyQkRQ#KzTm;79^xrsel_5v8GXv8Dcjpuo6y25i3~43Kp?~E*58doAgTp^-cxU
      zp#pkh9a05_i{#1@p)OyD+DBTsLI<Ba?ch78{Vu94yaz(0b*R->K%_G6Gc;fWP1qE;
      zQ{*${6xD``YD4&o8xp!XZb<0ncNY@6eS|%LL6<?C{`sBwVjmEGM~fQp3*`*~Bn6!8
      z1h{b2su-pd-V{?5%|+J520Ug3#OX^Cw=F8PIZ;Kzb%GKHrl;uES`%#mbbrCfcC3I0
      jpYX7NiSX1ZW;nM~EYRu{OJ_;$m67Z&l3XTQHCXurPRi%-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pbt^75P;BKux?ExY&49Zjd#>RB9}8@M2cjkP;}SETq59gFnC@Wt>u@
      zZ4(m@-R``3v+vE!$LHHSfJ>Yh$PmsZawP-PlQY*Fn`)&zZHn;h%ss6FZ6HUegd}q+
      znPI<7)R56lLM>7H%_kJ>_O0mjpPi0<F9_5n6gj!j($fPuU8*e0gHW=2!V&{vMa&Q-
      zraF)9{(}&|Ae*ep(Wtj}Xt@imJmnLv8&*P}^QzTNVo^KE%2sng$ctd8UbV}%4D1n3
      z(@*g*ekg>iNGqCvqkYc)TdL-(*?gsvCJ5&#`+r(3Yw3@bzFRJ|2)KJfw$Xgz7M%Ig
      zAF3O7s(3*0m0g6*@P3%d-v*y`7}(<bHqSVNJjXk+xWI8S7MGCYotIJJiYiy+_`kbG
      UYAIwN2PxzbM{$Jj^|j{l7X_o69{>OV
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJNzfQw25XQd?g+Tbz78sEbOt26!cZ4!kFhpWuGKmGQf&-4J!d_mAfd}YAAufrO
      zHi?ib0ZSZz{?7Ni^Uc0KJ^`F#&xJ!c9*c>{d@Y`oe(>c)YU>a4@1-&qiMBGcE;@u>
      z?(<{8rkne*3|U<x9R3ttg{~8hYNkjTj!w**KhHquizvD-7)C0!QcFWHC!<;<pUXiZ
      zl^lUJ%v>r}1@r3zDNOj7gP0^v8@960dd9)&Ex{XRp?tO~(W#4V!a);(Q&twjOUc*<
      zYAb(+_`Y0U?iN~AK3Ss&ziriYsoMV?!wZsE6Ur+UOTvC*cF*$X<3S~?z`-h99{moF
      d^9DTDHuD{?TZOXIQo1drx2W)cpKoxm`wciE4jTXf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!%MQU%5It8>io^%lhz%BQtgS>?H6$eVS39B7-b!1IZ?o_LK1$5>TIphDGLLiS
      zocrT?129I*MoD0JRJpoHt)f8hCFP_uxl|FQC*{%Xp!A;HAk9cqVxuh3Huo~*xm@jz
      z<YhLh0^R>CO!);1G~(C&)c463==I$~%-pD$47LKTH)c&yoEy}yXT7F(Ht{*}Xc2@Y
      i&?(S8GLKlKfW=W^^A;PiQG+p5|5V3R-Zwax(0l@Keo}=1
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}e^6#i~VNC=x2u|+^EMOq-CbnCCGO>GTHfIvtrrFrqeF4<dHCTuWSu>BL9
      z@n7)SnT`*2Ms)0h(`O(3gF5~0-X(4_JC&K_o^$T`@tyCU6aIPq@^1hiVK<4Gz?DPm
      z)Ou>V){*1xoAOk;o>}vivXYaC3tUz{=85ODOy5}FJCsdNV5}=Uj@4?&PS<I>k18br
      zu_=%#w%x90xn9F+oyf$`lP_XF{%e*6jQZ+kxw!jXp;Rg>-^vhyK;S}P-zjg`8|9L+
      zim<g-*w$9!J@+kc6l&|*IwX*89$4<athi6w0^?O5Z;KXFL(L1sy=TXgj_sDc>bN$W
      z6`1fHd(8)SI;UOvL(gmYuH!o1J%Q#@zrQBSXM`Pl@~M}v^n09Ve2di#!^}1awAi*~
      z8bkQNz!a{KeO-3IafG~GHE<cDO8U^i1m089H3O4cS}^b~E(u($I<Bmp9PP=@uC>=9
      z3FFmvlh0=H@u&yJxOd=mnX@0O?lCkFWM{bBKIt@>XD-UOj}L)_qSEH6i07Hym)@@b
      z6hlkd3eiyyhX~9sW&byCnw@@X;4|D77-5Eo0isJmY#&)kd?7F!G3WhtGt5&DO~>RQ
      zj`P>#gwwSa8WE)zLlc;?o$j&aH4g+9B8Ns3T6MafbY&->Z6xuvKrR9!JtcEBrOtmI
      zGK%|HHBbciXteF`W5Kp137&sTLBC;EQ_*V%)>U*yNAJj^_NlbhO~t@w-;GNQb`n*A
      z#R!CY#RlPRp=O{SN~0YJFx3j$Cf2Bj9^i)Cs9$%@QL{Uyul-JLDm0kmEU2H15lkb2
      zVQNWgF{HRYX^i%CwN9Ckeu4VMkUmEJosd3`xLP3QimNsAPcE5%a>aNinR|*=1>UFj
      z6Kf9hoXIW!$*-9+%;u)zXPC>aoMApUl{mxo-*_LxBEP47-y#v0h_Z|^tg*^EGi_su
      z_xE%zWRauBtXRekR#K8e6Z54N;!wTM;3lQGFDc9kdYZTuATxQY$VBdU%>GJ2Lr_!!
      z5Bze5b_mJ|{(JbC7S)zIm0v3N2R?a)&tDA0H$w5LUi_E16U2v$&kY8D8wyVJg7cBV
      z^Mk>UBZKeac0}dtgTXQ~_$%_R+kQ@x6vqw4*>ei~d!P@W@vD?q__@Q+`tmE>&;5l$
      z48LG8P|8Y~4wMb0WT<S>Z99hl=3s$y3moDaj`)Tyi9bdj-xEg{8}P7&Q#`^mAMJ!j
      S)SHP0z9A;{JUh%0!^1Zycc`5J
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=T~pIg5Iq|TEp4D!0R<I`D70xM;A_xP5oXj5j3f5Jx3t`$VM4+rx7dH<5Aa22
      z{1_d_@!22cxHpNF#EuV5?r!#+J$v@{=dZ8d0c>F_4~?*XVxQXs)3Z+<@7NUQ!jtBH
      z6zmSV;!HZex2uwQ<Op-B*z8NkHKXJ~=R|ZRVI~xTW4mn;gk1mf$zuXNB~0!3UMOu(
      zwr#gB#=jlVo43}hO~R!3!%bLfr4(d(TZD;i$8+R;!lPQcG!`2P;YLynq?Inna@E^}
      z+>U=FiWtL;4jq?xrkK@qZJs|K$f~y|LAb1=h!UaPay+r$KkbO%(C)Z`P-*#H9@plf
      zIZl!}*>gfdJ*^=YnNbpHR-=V}Kj<>y$|z83GQt>}M$nIi9BzhCt!4UUI&qV-LZ}rc
      zCJ|P%pjhO^BCE&-RCTQ2Ca;SbUL;Cq6Ku+_JZ=$|Q+xcEl2ABu!ZTZTdxW)-yNt!R
      zoKOl+1iXe4YB2JsvqK};)8#rEX!1V2^zA+D1^#P~(ELxwp`nol+?Tbwi3+xB)N<0j
      z+2&&G(4M0%$U^)%&AXvSU`KhC{0G#qh;dACl#ikUXZX7DImbC2Q~aFf=sD+AeaUEi
      zM%ie7MCE-1nC0hm^vPnPZ3f@N9OtTWIp%SNBL?Cs7MM((7Wt>~`5LY#^d`U6w{hbG
      zD)0E9K@lrmz{7}8j|&n)!VN5OMrpgtZ&g<?K4JL>R<roM3;4nie;aEF{sDK>6ux16
      h!McXOgB7FvGxnwxam>ec!=VbegN>-W$#@N$zX81kGI;<1
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh5k)#InQ+{k+87%)E5{)UwpP5`F)qtkmQZ=ZwU>^i-eB
      z;*!+7)FO5U7DfgEkYfEDpg2?wI|CadgCZ6q{J`eHG&3^r<|CPz!pNYk;e%6`E65Sn
      znqiC#T*3LJMaijdnK`M943gNKr3W$v=mtgxW*}w-dW;e1PId+k5Q~8mNHQ^S0RRWx
      BMj!wH
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjNOHRWu5Pg#rQu?6<%Az+&Hdw4#K>#UI)k*}hfR&qAl`E4V*F~sDW5EG96k=?F
      zU^U<Onfd&B{{V1~(*zM=x|Xl<O*HaZH!ERk`6BYRake!HI)t$w3nO{9Sguv&66_Nu
      zp{rX_DyyZ@JGnH9(9Q3P`y#)b5$KUHWTK6ejeC%0t6~-<LVv!P|E~EK2zx8#ifd*~
      zv)P|q=`1_CAoTPmx7z7S8bX|A%sgVmO;feCsslHnlV(p>yj!+gTd7;^?F@bnIrF6K
      qn$cbj5vEAc<@|v4BlNiL|EmXx`SKwS;Xg3KIK(3y2e&5yGx-Ktenj;E
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dT~iZR7=8|H*d#29px7w2Vhci$#E)7rp|lV|tPreF5c|1o7FbwzGs%WxXFBbL
      z7mlNs9cFshD{k#guyv;66`kpiYWtksKoX^R)6C?Yv**0$eV+I8{Pp+me*n0IbrlT)
      zXIJ$NeKYCk>z1>ev~zksnQ<Mj;M(K5;kkteDincMDV4N!icBxAnuaIPG-NrJH!RTD
      z+czhmWZaw?MI#~_LTC~=I%zp(wzR%z7H0KD+Z1S<bPe5}(+igTu52paid7UiH~A(W
      zX)0JYy$ZQoPSMjHgIWiB|NCmX?~pTr=-8%V<~_@GiYnR!I_o%OeV6Qu2pESU)dNYE
      z=BAhScatU0vXc{famAB{zkyU_##(lCuT-FI%l{AJP&__-C~6od1x`!r6G0**mV)3X
      zj35`Hh~cz~Qv&UNCe&M`p%ZU25f~nUo`7?0vQ)6^wp6@RmsT@gfeF}*F1)MaoWSwA
      zSXBI};XQN<93jw{vtbonXWev&d9pVM^sAm$ah``hV?TETkkOK5=gdMBXV9l1j(!1k
      zL$^!j^wOK@2P)E0^k6_{dP3ktt;Ln|zPT_i3W$^xysY60-e<|^`Ml}m1O^Ve5#-A2
      zJbkPWG+e`=K-hBw1bS%C=$b2O6)AyOHAaE(th;79)_2n8>ll)>KNL8B0EyQ)r2FRN
      zosTqpEa4*#v)b1d#VBs5$gt3>{>|8Wv8Z7T<8<kgTVM$>i@Og1s>I8u?%$%7qnOZe
      z3!exyJLb353a>Xb=sy$}nAC6tM<u_khH2apXj##VQ*OcZDYC7wH{Dlpx6<Z<1oYvu
      zt~c(MoZNnStC+1cfEuZcUi4}t*yj9p8At>KJxiAjq(<sqy_9X6%ep;c7-q4!FGcrM
      zDvNbj-#ThrFneC3;cW_Z)XVI(7ap6=1~V{-TYXjXvXa-m71?;JA*$r3KuDflW>R`G
      zIq0i^M^Hkqq>WU?#=uyLHGyL_>Vnt_G#IQM#qbKYBwN?#ALRFXee58besf|ko^eYB
      z!yLEdOVKV3tUf^rNnhz=#2fi?fukbd7=Ek#y24p-4#js6{*{XcL^(z|16L_}4b5C>
      zfe_~w$R~}N!<|;1D4dTW!ku=iuI?P?Sp!Z;5b+D8q}HtqZ5?I2^%7^YBBk{2qP_n&
      zoTZB^yD4ShPefu$b{kzWWfz?<(6cb`9KAcZ(3ULYQcU4c#?|Z#TwfSyOYR_@3T<OB
      z7Aj*n)f8)bj**laQ_HydlI<fL3&+d2or=UF#EM0p&2K~FKg_=}FE35~{LgOu8R>nE
      zAMhhS_2-9}@#jbQ%%7iNo~B6y?xTa_2-l-@M23dnV9y;xH^$MAo4AMxS%bWH8}~59
      z+jp=;t$EzVCbfQ#S)$D0AvHb1S9k&gPbvEoEZ@ybft#?vbNSoC=lH^R{T9BYybR7$
      zYW;?MTJRV;R|?Tau}DoJo+OatUK3GI!Q`kCyA{in4wFF`E7Tkz+FnSd-c{-qSmRy;
      G?0*52&0G`!
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-sW-5PjRGM(anb6i;5fr56{^dMZW;h=KtxJ#9Bb*|Kh8vXS6V^WYEgM~RaZ
      z3?d$uS?0YrZ{B=<y?+3>#7T&O!1+eKszy5XY}{JfOcgS2Jh_arM|!EL@*x6&X-kt<
      zG3Q~mA<f+#fmzozxlE}v%9=N|vLrBClTU6Kj^=m0F7+i_TnS7Vj-Afg;z`+>1wk}l
      zE(A_>Ny=02UlqBl7{8AG&RH&!WIO)9?YC++9LJ5O!W$kIVj^(%EAxF9{fENzG_Old
      wx2DZ9>$mByanWiyy1<a%h%Y(h^Mu$%d!{{%ySk49Mh_VcxE}GF@_&HiZ(B)eWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ8cI|{-;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
      HcmV?d00001
      
      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
      zcmX^0Z`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
      zWKb0Qf$fGX0V)s9FD*(=b<5021=^0}96gXeHbw?U24<ia7#J9Vu483j1M=B{JQg6$
      M0mNKDHWLFk0Jcp&YybcN
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~T~`}b6x}x=q)o<Rp{0Pd1zIp9khDq_4Nx^uiA_TbH5BUC5Joy($s{I|3Qzi?
      zKf*uYYxMzE?OL|J=vw|Lm;1~lAz=bMkh%AsbNAWj>~k*v{`be90B+)&AbbkfpX$%_
      z-GrqVO=~An*w)L5v}M|+UdV8rDp|I%YX{M#5NY$=HY-NnE>-p#?u%xn>D{exxy{?b
      zZ2?s1o--L{LBSuH%qfJHcJoHrHcM7Dh_J$N+x4u&uIZxCl`3r;At;>F5JZo{Oe7;W
      z5;fZ_B$oB+6I<UZ7|F-ZX?uFYvQjD}C2UW|w2W-6xMfrx$_0hqOewDya(cy-ef_Y@
      zeqvS?COV*bi<MM3yJqfKx?QUfaJD0}xoC9Z6m}u_aY@n}V7`&f$y^Xa3Vj{Y3}Fz%
      z;(10^S2SG3h(aJ=C|M+MAu{RKrl3>dm93}LEqMlG3L}CQccqVuMDe^^8~Ivv6S(Ud
      z#xX&i$~F5in^r6@dWV1_Rz$-jqRd95R~YD68Aq3}VLdY|C97yybiC+BIHIkBCN%4E
      zQl8<H)Mh=3dqh>}Z&!G)+)#P2Qy51mQrI!<MdMq&R<K2Jr<Ltph0%I(+gq%q)02|;
      zEe-GCeTDPwC@Dc0IEo+%apsaie884#pMz4p-ReHgi3nj9!$Hi|HEpuVmTa$U62l5A
      zFO_IRZv-Y!#y6~OV|%4+RCJk2g|w?y6I%Kuu~he4HNLAERXgblf1FRX%<(pyilj8W
      zgLlISU`fMA_*fxWaWNFGwbSYth=a;nlCiX@5a&d*1+GLUPig{*cUQwQ((e5_?Z$mE
      zXEkKR+(-CT!)4rRf1qJS>|x9JK5bQP-O6*u<|8MC?NpW47LmB0Ygok^aao2&JU%3R
      zWZfJUuAUqtCn%d5*71nRRfWByNdrvGUut+P=FnQHR>>Q8OnLDxd7rSj^aV!Qxqkiy
      z`0qlxnC}aGILloZcOht8-EusDU{t9Cyzv{4e0bBj;N$Ncx-pOQTxq;QH}s;9Ujggk
      z)kClgJoVwC1Nu8HUEJS@`VY{rvQvL!EcOr1y~N<g0p7~~ig0WnmtSKrJKZ}vwU2A-
      z(dm7>Ez$i>^f<y?r$~K?k?wG}%y?-G;V#A~@Hp;ag5N0aBY_7F!>Ajx&XCa&!<57N
      z2Br}wyC9#h1ke1mH8K*foAmNYKlAr6BPmajCsK#;=sspL%pv>|v&`YcSFyhk_(ir!
      zZs%XcUL)|Fj&AXWST-O>`s)OIM0y(-z$Qj0pA@s-1+7yJ@O%NcNkYje(bi7lHcx~^
      zIC_9jVlS}h!(pgyCqumjHr%X0n3em~f#t+_U}qc)TSH)9;4|ex-EmM|<wH&7IbNq>
      z-Sc7<J7RGZPs6(J#j1A1;`n*6j+XABw{&~QlrG1X5k)wU9@rF5S{2#w;ppW2zybU5
      e7-;E6f#xiq3jKu_`X@sFd<=Ah^;b?We*HhQg*3eY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O;5r=5S>M|e2DVl7lIORaB1V2crXYF384uPE*{L<j-;e+Yr81^H4pv(f0S`r
      z8lgZq>~8Y*&6_tb^Yi=l4FI=LRUpCOYRcdFToe4&5);ifxvTZ)YB@sUTq=-ckPj%D
      z&FNo%o}xkM0fU=Zp=o*a;dr0ggXKlV3<@p1KN{%0r_OzAqz}67A%kLXDL0fJb!{@p
      zQHd|PkYjGoFa=o#m4K!$e5o%y6ju$h<vBJflQ|S7n!1Y~mzE<KbnBsXe3*8`8{pdv
      zec5d6<oGW6Kr)nR&kb|~U0;DbgKBKrewfxjg+W%}M>m|nKn8d9$1PogRLJ{Q2P=_N
      z^E74Y2tk1|sO{DoQ=k)+q#e+s7CwXPdSjOds`61rnJlXUsSU6cf{SF9)XdPCc?NbY
      zn+DFW_*a9ZXg?V2(b=a{1_e^|rfKaGkO75u>JV~-91)VF_n43Z6xWavoU9?IaJGh=
      RZ*VR)IORA(3YVdi${$M#(MSLQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL!A`<J5Pgdkw4x{qA|l3<fYF9{&;;aSG@2j>F<d;YxWby+lCl_n%ae%*KfsSN
      z&X!67mW!9&otZc9%}l3X-yfd<%Giw|!m$6$U-{5-_=|Kpmi@?kR-KMp@gzKt+ZV&O
      z=qc$sF>_3Gg2bL$oR#scH;!g<^}rICmd~i8(CBF^?!iqAnfL7`!|P?~Xs%f+1OV
      z+uUw(Pii}G8mcS%48{6{-t6Kk45@+-wroyqG?ho)REjOFy{ffW7?#AaM^Uc3(Yl&@
      z0#443P`_QByN(h=#gHjX)e%HU)EtkeAHya?Zld0XKhrUU;V`IiprmbG@qSn7o+~ry
      z7n`y}^$t9mQ#mxZS}N6M=U<2BRPIB@s(bQWdp6fiD3`DQFFv#B4!pLwlzIuWp(}T!
      zr)lhgwuu%N^c4-gMP$dwI;NXxZ|NNiZ}f=3q|>AuI3egMmgp59f#_Z)OB1XF1T{ix
      zY_xRnj>I%Wm5^sXLwbY?7zmFwB*Ex+SjPr&rF>q7wC~9fdhEd##UjZ1k?oL3j`DYW
      GO#TN$ROk!<
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>L3<ii6g`hXK%}(Nv}t3t6RHN91d<X{4QaGVQ$=HvmK068n!p35PG@lD5%H(!
      z+MS!aX|?@6b>+gP|HZAJ=M5tT;^$)CdvoWWd(XY+zWL+t=f410#$g;0f!RmqiP<YU
      z=3~og743%EDOQ!~sRP@;FTd(aU&Rp>IH%o;wn?A8<43Yi>*Rlew|h!D4cQ36MEcUR
      zOuHsM-*TM?l{*6B6M-{ZuH!4yQ8m-<%Gj;%qsbqpFa0Gjv8P=!J1-Mfl}B#n1kMUv
      zTrQLftA*vl3ZLbb)z!j{rKQqMfys5tvD60fxqM9^y5%-x5)+t8;T&EQIJ;vxa<}{V
      zSb7KMu`P89w@zLr+3`IzMpfJL1+E3@|F<n=fmll_O?E1mKTVe@`FY!^lSm^dlB{z1
      zhnp;-?nzV0m#y+UYz8T<=T66YxLK+6!;jJ#N0U!-yH}ST#WwqK%nDo?(RMeGc;J%6
      zHM||iTO-=`Tb;r?m}5(+ziG1@7lvu|<uB)t;>Zh3kIS^#wd{uU5||e_Z?SsM<Fpu7
      zW6k*5^o?v1IV@^T3S)6YmGd?2v6SL~-XI0D)8RM?EDlrn*Y#Ah!sHy473!N^Fpj&*
      zki8BWND{~<u*&HRIJ}p_`<M|(D7POj2?L8stYagNTkKuS=@#p@>H8g1wTo5homh2w
      z*Q_ho`zD1C@F4}ZUH8jwXWw&AEY{3U%?;Ds(&%zH8eL`C#fp-i$pGb7v57lzY>{Qq
      zz>%*hY~!v#ylwisvZsQPKGKMfQ>cJ<C+Y;|(Xk74iDO3~J0g5=smI49fnCm9-R;^9
      zXHFSS%V`*$un?o^dPWeU(El$Kbcn*(e?cH(QJDm9R5;!dJ=~LSv*}B+78SnO(rKx-
      zcBN&iFW5-2dTgt1*JE!jeJiKNvJ^BA%z|Cu6GH?uh$F%CEBuQ^ki=!AaAxqHMwDk>
      zd9E3Hl(-A-vFp!p{>K1vfoqabP{k;2<04O~z7wW#iEn~IXSnJBi`;d9iA?$lw+J+R
      zGB8z!pc4b=>$nm^7eZ)6j3e(2AtM9i8+eoPuQI-_!3fg-$(ko=Ihy|+rA&JMDYD<;
      z`U@C`FOWOTu&M>xikXsL(t3H9%TwHZhP7Wa;wO~XVwYn-<F>%JNbA!_0>9zYCptvt
      zGwn5~D$BkCb#}8sCK5~BSI|TmEskUx`>+Du8+}G0Z*s$4pnyK@<6h9(Biu)onrYhs
      TPf<p>iU+8%9)Zt;oL~F{BBYEI
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=%We}f6g|$f4e5il4N%G>ZGohMOw&|hkqQJMRZ~SoFeRI=oQX+YrZdslL1D{3
      zu;D9Ug~Wmn;G+=NlQdK*u&}S~d(S=R`r1E#eg6TVgsmhZ4C|--Js(;gKa*b1a=W~5
      z*_sFX$W^a}>ieD&NyHcyO`PR&3Tkyug`<;5{1sgvYT<Q7_Z&@7B?8Iawg{B;y*G^)
      z4D66$u13i<_jH@P0}<Cdt<RsX9DZbowoFK-`G?Wg0jaCbV1Xf9Dwd0tVyU=GqqJM8
      z6nD0_%a0ind(xBo3E}gFHbboDcSQ<OET^%Es|*WG>4}$vvyKRkc*hln!goj)Cv~(R
      zAI9{FR1BLT{r@kf$`J1fZPYI33zzj0C%NmMLrS_~l_V=)IDSr5DC01+-J0y5h`=65
      zEr>UpKfavE)U!m017B(Cl%T7WZ>0zrHuC2>g|?J(t?7`e!OnW3=WEF|6}>iAN~Mh<
      zw%xRaGQFXKQuU!D`kFQ>iF-sFc0u}9qc!m`>`l{}9KQ2T=zZ>JKlo4`UB^F2;*RSp
      z(vq_MLEwmeX}Ym8{qBl}I+g=<ltvs8tRjgSTF=r0jv$2_NMmlYpC@0;^qNjG6j3J2
      z$i}z6Vd-lKS)n;aP~a(rK0}sP=}{1_;X3UYC0(W2BzQ#DB#36_zmSQ*z!Tw7;{r4~
      zf!@U082WGwjj(Cts|(1;2ua`T7H-3QvpcvO+8ov?!v^ui$ZnD+hx=0}55h_(G33pM
      HDhs~>bvoX>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gJx@Y06o%h(6)Onp!lnsv;x67WI~t6G!34tORC^Dkq_#J0HTSnM_yhb=#ugJC
      zh~s(loR8;xeQ!SjOmHDk5Xz1GkZon<o3`u9)Uv6THaMe|j$F@N)GMuI)XoYV6D~7e
      z8JXDU*A1&Ea6-5_95QVq+nVb+hsN2!0;h!QL+(+AduO9}CJ_2-j&okI_cE8maryG}
      zw{Q`Cy7BH8o3@IZd=_CeE_c-4Vz!gn6RD%OaPMC6gEmaK`bY3KuSzzABNXUBq&F4G
      Rxr-jM`x*KvAq;Yk^B*|rU&{ah
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+invv5Ix=`&5~>{gtkDrHC%H6mI|p71VN?VL=_cr>ApJ~)4JMvt6eAJvp@nN
      zc<5^-{(u*Lfj>Zuy$SRIq3w%3GoEvNX2$;Z>+2DKB{a%#81C=$A%Ev9ejwGZANBd6
      zzoXJPlA+Y1za4A&R)$>5Sgj9*(q$AG<_yLkXc_r7_@cKjLd`IfibV1#5J^h;JI~h`
      z*cQX&YOGStl@53`5TzeKx4v&2FK;qTD54JqL%W+>MTcNdq>}n6!%D;A{D_nEOho4t
      zOwE9yxEl9G1qIA_@NkxD`v+$;I0J@r9xA9ZOn0Rc+k=CiNZ#;XMDlChIHa;U6;J*s
      zSk!wmWq6QZknJVaS4fl4klHSvtc~v875d~%816Ni`EMX{w=dH}uERZs<*d|P!|%#e
      z3nh|HGpOPk>SZi4Eajfs81CUZZZOQ6!H?h7D-jAg6n%z=rx27i%Z$*CM%suVe=Ej{
      zs3n!x@gNDshBULR|L^tN&w@HVh5~&d2MZ`+g1oZzT#C>OA-g~^50kV`k@u3~CcoNh
      zf5vp{?kChfSimf;Q}*Z)5j`ew2Xho#%+fKB^W+f_7jTitjAbrx$X>vu5xq~lIV-h3
      zqV}E)2Zq?_0-jkyFH0B^GF-+LiWqGxl<m;&wp(9t)xlq36&qip+SV<{e3th|l#83V
      MMJx=r3Gd*}Z|qtmi~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwzYYOG5Ql%`-*Fm+7mz4uY%WSQm5>nnwKrrgXHQrc&!+GI9!l&<Bs3H=ndbZE
      zH*<enZvY}R1C$6+qH}#wR`12`R2u7pTG>;UiV?^0EOW9Iqn%`SDksO5j{z!#R)MKh
      zduF~#*th^SLg!1yIa{Y@FY_BFwC#s;!G<O0m@w>3zu;d<#)Wv)UlYP*c0L-ONXmrn
      bpWuUHflo;&`>OgUkiR5Ay_nGOy@c=yKLl9;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`E%}N6?6opU5YHa;$5x0Un?ZV)?B8XZlh%WjBnHa{DX{KcE$oK><d?Ob=fDa|!
      zcA#Rq5?lmM&b>GJF6Z;>{R6-mx)O=N(L_J%T6sNnK2zn)scRP=(up-R)P{=iBGD4)
      z&f8S3xu+>gYzQ2#4F8%G=w+4~>(-Z~y|DtX$9M5#gN3uCxYtt~SyzQ8TT|nzid?Qn
      zx_ly?=5gzz3k=WT>XIn9v?5y$PFDXE=-kxC&d3$Ml-Ls3|KVCz1lnVlc}-Pd_P76L
      zKkxT1qE-LEKQ5|Z?9k<mb`a-wI^Tvv5?JH2&Y24iQeqPc+I(xV+rc)g1UsyE7i#Yt
      DxBsh5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4YfBqJ6g{(vi5pi_V|?_jv|<v)#cx8@R&0e9X`xEMkF#;G6V_eXofZ983X0$d
      ze?Wg!>6uO1+O);8aOb|xeVn^rzunvdSixKwj=(}!p2$-_l1Dl^^wVSQztzdEkw$IH
      zj){}Am!DOdg{F+6zyq7?hmx6}g0AWqfkGT~1!_Bkkyir4ab`A+Nm79qdHiRa1Dz1e
      z;=YaRATuf@ptPnVZ8ii}8-LdOj|$DUKyfQRP!$v~>cPbr2W&LkE;ze~A(X6E^H9dH
      zKy^n)>SJ~ksANwDp|Wel9T~P|qOIL`7R?vU6`H>f@NcHLh<m8a4}$8A9`Y`2Oc`a$
      zujK{i`)T)aRN0NQq@%XAowq)4t7Ury0q=bjsbnjZX{ypPo(s(0cV&{_yEEp<P=P;)
      z!;ggJ8tLL&V8lg*a)j1C<2J9_x`x+UyrQynh4G6VFhN;Ek#e2#HDPZshE3GzneD+a
      zi78qvkhc-JW*a$dFpZgh8=tR@4Ye*&J*VQp7BA(_cX>gtm(VXL@DPvau`}KUj}L-B
      V`~~dbao*wyp7OP;3OwV)?sq5XwI%=n
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_a!A=4(5PgHl3L>I%)Wm~{%E5*+#zaw~iP1#-fwDAMvUEvz*5J>0@H0I40e+Nm
      zfP~1ZCp}C$eVu9Fd!6@>*EawS)B@xPy952G$I9uUb$ykLtU9;8!<tQ7haCH-0C_@n
      zQl%m-CAZyy2{}N4u=B0=Ya^l3H#|k|<1_1egy)0n>_yEfGAD4Ohb9BHV#j98GgPH)
      zBXy~h2iDyvTiUZ;xCv=>%Is}7Ws@`y7hm{6;@+J}(ukXc(#1G5Bet<i0<03Y7ZeIP
      zF=<{xD0Xb$X->T%y!^Me<9huhW5wU~b>h^Arfnl(T+96Q(L^kveC3?+tw<+{5f?TI
      z`wK4oZXlsBb5dr5uq3f8lSVQ>0alPhQFeJjODId0!<s~8nysTMYe~*FB(_le1k^m$
      A>;M1&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ-%WA?<5IqyEG3kSLTU?6@?ZvgFn^LhLcHtL{;S#T0ZzP$N^w(VY0sW}bYY-tI
      z-JKcEoX7n9?hgRQxC;>w`Wyb@N;%#dm#SiC)Q2--*uG^>bR|<xB+I`;v<de|uCnZj
      zpR0{dgz%7RX&w-s2J@O&im__O#aeh}^<-FY&sHb>2_b&361@|XxgtbF=rtlO>SSjM
      zAzGT$v6Q(cj4xWfj7G2j*e$a%PxRDSFYwq5e`@=DOwb_^TK-i4`SMrjAVBD+w%>OV
      NdlcZ><C_}Y{sEvyW6S^m
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%Sr=55UgHf*2D+i<Hef>bnqNeFc=Jo9`Xg9afltp*)ZEH>#uq61N^AqWD!AF
      z5O38*Rd;oLuHQcZT;L!_MmSsYE7vCQi-d(KS7N3?RM?M;psv;lTP@<-O(p)x#T*^N
      z;l^S-C;j7m>8uh4Hab?<Y9(Bs+&7j=#hW`WpOxp{jZPc(@7p6n|F*VnrBZ}4M~`sy
      zEA>MY{zpRS&14Z+tLO;h*5jAM;nlwa%!(>nHxZv!9=HDaUD5d_T9-iBN;LzN8rwz}
      U8S*rB62F6fLK$`w-fPhQ7d>Np+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_Y%T5A85UgH-6-49X?pZlF@r?08B$yaI@CD5{S%xgLWVhF>zs7+N;G+x;n_$Fv
      z^HyC|sjk%eYq<h&kFyvN;d;g&T$#Xg9}-h6ym_0<oRuM4$@0$_4Z``>V^UT_EfOvg
      zCpCT!g>bNr@P6}hXzcHpef%rW-2pYog1Aa*)|BE?GvZ<@JV{;u_IDtm^Hf>45TAu2
      zMw@W;{dBJo+GC#tmNM63)Bi5^(Ca<^QEr@-xphOI>fg&BQ{HWRwg`kH-5(%bwuu%Z
      T#CkQ9KSoDUgcHTx9Xj0rwhV!o
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!D<3Q5Jamt>PBNk@Fe6KP!A3{ujC*o5!4*~f_5_K$ha%BvtoYDLp~rMB^lQs
      zY#`vRrg+m`UEinU7l0QuLIi~84e$9NV&3X_CDNT1@5_ynZp_jp_H&qN^Py~r5}|oU
      zg<;QK7(z>0#ZDEz5GI}JUo^TnnbStRak_TAG%D)m?*H2(LTz-AYUgwkry;6@r$XL&
      z9{Y+Astdh}*=1G{W;ezd^m?y1MOh@7m1?YwAKot9{99B19Iiqj-1&+D@~xFoL4eS|
      RO5VRm&8q+pUe|N=_yhmgcpv}(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(O>YxN7=9*kY~mQ(ahw#AQj!pe<D_wc(63NR$cK~?fkeP5sw#D3kHV(wUCUla
      z&`a;_J*rf31*%?(N`xp9<kU)B^M6pEncZx5jX7jzck<5re7)m0Z~u7(;5=3m=o0v7
      z+t@Mgmu#bE+FPY&-7MXbO~=}iTw0c!KujR3YD$*Df}5M$vclcCKwj^fPH9~>Ov5sN
      zGBz#A;->yA%SO|5>^rMV0^%Ei<BN{nbPd}r8&*s9>>vDb@Nnes2LgQ!53kDB0=czz
      zta+Yo$eLl=BzVK95n@0W1*Fv`tKyeg;$9KxE=-jLVv9~yCee+23R(0EWY$bu-e}b}
      zW#hI-HMize46AIAKB@bgG54O?6c~+SykiUjCkyYA4ehME4KkjeDkm@^Fn*+K)w1N4
      zVJ$SaS~Y3A%l9j??$WCyhLP_DGf5$Z;|Yuk469>-(nY6McbcXvmE<H&d*x?RNF&pS
      zvzScaoIro%j4Dl`fGHYdRI6>Y4@pMVYDW{878r~4TD5l=bXEO3U@dU$FhPOdAgO4S
      zK8!%&eVzpxHMR;cyCvOQ(clLQQyqv3q;;ttTW^f=eqnfMnHXoYz2%Tcs2yIp`B@5|
      z<Dx)M#d2(pUCgF#PM=Y)OS>AOrphm;@D(_Iak{)<S%KEJ)*S_$XzQtiwmBREgJH)G
      z<DxxjttF&6Qs~`N4j)r@)Wu4!JFP}Vu9)hM<|21|R%MJa4qi9^diWeh0>}8?%O8p^
      zBoR~d$oH5UG_JjT<DFtfj$aqK3a&lH=NNd(mo5zQndAzrvh+HJ_?GgD@BvQni(%j-
      zpQ^zwA-lQGsRq;kA~EwH`d(uA?sI(jx;VXuQ^l7!&9AXNj2E9_eC7ovy0GyWv5lwf
      zF@X{;py=a{lRB_Y+&jc9BaaOteaouvSoJ;W{-F7cdYC>RqGN_4m5@1nj9GS597{gO
      zyZlxhGm4|fX@+c$<mLzn+~aeb{`^R%tPo5lfXM_f8Ny^V%qRRg_N-8Fo|lyQ7aMwB
      z#`R{aqmLJK0LsVk;ZyC0f9`mA4wro76+)@N(#7c)_*7sYXCwN&IDer<zv@myUUi@=
      zjW4K1vHvpYdE4)qRiUx%d?+-aj~*R{me%I(a_2X8`8|Y?4G^*c!q>R!vu;NSk3}bh
      wM?`o+gg@VlFsn5z;F^zc#n%wmp&#Y#`SFbRWiQk#9<YsLQIC_rl8$ltf4+8t7ytkO
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtR!AiqG6r2}pW23FT3Vwhh7(7S3l=f5<jAvyHOWCsBExVhNZ}Z>>_)+3Zf?~u&
      z(Bsa`&YSn<?fvByz!j!3BErd9>_n9su~BA~`mIXurMG$~U5o)?TGOc(%-ub&Wf2Gy
      z*9so&ObhP`i?e0N<W_8C)<EsYMwXp-Mc*dzz*2{dkj$$>ZiBMM#~2Y#f7)`yF9~6k
      ztCbO<bdvDYC&TqcH^a=DAghqw^a(d_C$uZ&!Eu&9E&15P=U+jS+?KA83#Iuk<IgrP
      n>st;9ggtH_h`8K+3=tvb*MRW@BsGr1hB^9$8MA8AXpTPsJ;|@X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_Z!A`<Z5S*<*1(o1k@5;d!&lnFH2?wKx`U6XODUX!*NV_%l*F5+Eew1M;2~mtU
      zZ?m(L-PzgCulElC*XYNH2<Hoa<=S{&I-i+x<xC<hcFd`S;w?stFxW^;&f0&TE^I1<
      zerBc7y@WgGXN1|s<GyOtFuT!DytI4Neehyy*|Me*mzxQfbKz-jN0+|`5_%7HYFFZd
      zFJp8GXFuHQ3O!;cA#@X$d6ufMg!z9vycrH}|8SXvsz~kF<+}Iud!APtza0YMKz{&`
      Y#@j{*5n`=c${(VqD8iBA;|86q0U_9fPXGV_
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TTc@~6#fQEw=7j?!CFABaw$byir1vZ#DFA?4K*p2XyU`L9qPie+ssap{wsVD
      zB8mFsgFni6cDJ-e8+e(SbD8sf-#I(``_H%U0CIS)p^stefFJXdtSwZwEab6}Wyd%a
      zYKt4nkxdODh7m6%YjL}lE$tl$LotM3n6{~2GW4fbDh#0wrz&*xV=#&Vgc*j5rY*J`
      zM|(o<@I6Z~#EXu>tqPZ>XSbXo^~rP@W{TI6$TR3Qp*F=nZ&(CAms+{uLIg2}>6+ch
      zRD(-Br0E#N9Svg)316QpjD|E-liCm*qDbH_!w^Bgl}=qq)nr&o`OrZ(%1WAcEg!JC
      z;?gmWNevU!iB9u2Ebh8d+`|-uw(rPoengE~yrH6hEAJJYiDDLW#K;z(3%0AcZP5L(
      zRyVo_l-F>dVWHF23b#$m;yv3ik3kJf45J;UuTKn7SEge#Fq%*Nf6Wvy7-C(4fF~sz
      zQg9`@p%}(5N&fqtd9!V!xf-&UJWMBBD77ORatzBIg70j%QLj5viE4=^!#%F;WF2c5
      zWSB@5T9fGkI+-e56U|XHkmg-2(DJHUmBMu|XWgTsUUnMN5L>4AwI{pfx8735qaT_B
      zJsNs{Ko}wKv5>8i^@w&x`#|~(kuP-UgHEeXJFr2in;4=~G)SWT7FjE}jp0^-I%Rsf
      zv+<F0#NVWUA(lQzvbg#c(?7vZcP}vi{tOGJeg*opvDm_xAQC{C)*ZsDP{mz}en1i*
      zear;qg%QItQj|B02;ruw3d1TMQ0yUjLu6%qA?xJvghVc|MtJK#=p1PAqymRsIwFA%
      b`p2yL4QN;LJ&!5>s^>|!ht5y^+Ry$1F2gF&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc^F5dIF7Zdt0(f?VaQKq=Y+-mRJtF0ruzlXB6Rm>jl;y0DyWc25QV6}||O
      zM1AtXA7z}q&=!QKFXuAzo%!aQ+1a1JzI+8Ri=2ighMpb%ksoBGP}!nw><YEa4P`rr
      z8X^oGo-=E4S<bF*?Fd6LM4y?`R4*8sQ&SrZkp;UXbTp$ijuu22+6$%>E7iR%;jHm3
      zOE4r0w!y6p?wH;^G)B}1(`D!@TtS~>(91$CifvxCh;|?~btN>01Ve9GRx_mleolyv
      zPTbJY#nA1mafMNJOm&zohKD%1(ZkS2bgvz|A{=$dFp=`<0_{cRn6jJ;GB{__(T4#I
      z{iM5Iss)R?ZX7o;$e?Z8&I;e7GK~KvqW>!A1sslJ1f!IZ6#IGUDlQFr-xXG%u^rUH
      zTMR?>8g6iDS{A=hfHAacm|*Cv=eTrWh>9|8$-t-&$v@SS!(d1>ID!lr;)Wx*5&;QC
      zJxi?q4SC(GF}NDCXWXWp&9Bxx8fF<L>q)Ikw_2&#juNF+>I3)ktATaQp!M>`<ipN1
      zB%t8|!=NA9v#!fsY46LIwySCZ8J=I#l6)Z8dz7bTzEpCA>*g+@U`U7W{|P*Q75G00
      z^`c#M46$tbb9JuE8Bc3u6f~GL-2lz6H;{DK=ys2GMte*87_m=uXo60wPCKwj&?U6d
      zDIS1mzecwyTt|Btph8FwJCf`;LGo4l2NLNM^cJQ+W9U2B(dH?}-X7!jkspBu3gaP1
      zKP3UI(Yj82n-uX4dEcQI?|sg0!bOq5BvOQHM~ryW6op|LcgS~_tP#3pd?9mW@r1-q
      zF++TF-{>4@@uUK~4LV|h4*HKx`vveKMG2k3ec$$wUR<<23T-~4k9yo_q4N`;@#$}_
      C`$?1l
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq(QeZ~5Jm5#Zk*Vqg@zW|v@}2|P9=y6Pf$Rr5D^hkK?;h*<HlKmsj(}^t;%1)
      zlO>S&06q#aV_S)pG<~plcK6P?v$Om6->*La4$w4FBJ6%u=jx&r=(yEaf#>_Gr=xQn
      z^+NYV$8F`tVf5XELD-%sFOd++FTB8uUlA6ZW}jfZ4u{&p0;)?`M47PC^#Xl-_HCe}
      zk80p+!fH2kmETv9C-Z#Kh`)Fv!d`b`H@~n$hPaVdu`ZTG*l?O@etNFr7AIJ5E?j*Y
      zdtop#u}Y|kQOgTko%iD%6E_KK>4tQsNU%^tm9Xh_=2?j1wj6qcyTCGO#%UPE1nLm#
      zPUp(ZJCeCWSQH(nngivY_~B>50k2F>)#1X9hQmmYMu%5ba$k76neUuzcCiOuFwAj;
      z^~;6ayIyz}xw`Gi_3g~Rm&ejNG{BF6-x|0A`N}*uIeN+?$;y6$%1;hTu=sEB2t0#<
      z=dd|i%0xU~;~8NYE3CNAvB9$&De4KY2&(cMwNDAwesG-8#0)qpkSYbz`V8qMmn!~M
      zA=MMynntx#lq9k!M@h7aI$KG3TQktNT&i@yN}*c`wx_A@Qfebpjj2{nm8LY9FNa*l
      s-5Gw5yJ|4s&iIcK+?zJ|kQ(e~vax|ZHn4L8hTsAAxDdiaMwa0G2R~cQl>h($
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@ZBNrs7>4fyW!>sFgb4@&&NtkKqYnM#)C7&llEs%ym-xvXx&|t>C0$YcSNds*
      zCjJ0_l<|2^%Qm;p$cOE`J?Fab`)T{@_xGOwYS`8>C9wWMev+rAXNP86dXDSLmTw)|
      z;jXkoKlq|U6IdG5{B<ahdgypg_*h`NRBj7sPyLQ<U>cb$W{?t?Z91O);^gDL9lVkI
      zt}QU%^eySOW#I5S-qgZFrz=ow4uq1-)CICuV9U^sYzP!eWpzjSk2a~ucy?;p$D!kU
      zT^;jO#aPqv&Bn|AiH=KTPaSaf=&peRG6EZ=2<l4jz-)zq;~mr+<3c(v3#|1KZ@nYW
      z|LpDg-LS91z!mPr6@kS>DtGOWu5f1*YFL!cj{ShnL_^?F()~gD2F2LvbOO8EO)|?)
      zuCtRH0@d@7$Y93hXU1?!k*s)D^h(*S!~)#e|L|32UloCsiPy-4E~9V)JCn+ittC7;
      zZpIdingX@+(#VU^@=pTG-gWqmUQT*dxA<A22>LSUV*^t3qc4KiI?e9UD0rvRL;4#{
      zreM&&K_l=08tS+}vuspEV~$n=dCXG9MVf20np3E4+F?}s2MX_cSoliwh{j^TlOa-i
      zh_o1!QZ&wCNwM~b%XSTBZLapPJW6}6XvL^1rm^o;tSL1E>$s{M<tcpRby(p&wP1!6
      za*;xHLF?h#s7O<Z+>Z+TBDuauE*2pSZsL|QlfwoHb6fJb9SaYdG#0Ehs`+|CuubA~
      c8;6748RI9#s*XyuC&W6F_;;+kWMT@nKO4O$u>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%TB^T6o&u9tpY_6@Anv^0va1v#z5Q{UEw9supjCKOG;~|gVDFrL}PSeT>DVQ
      z(*mL!!(wK7X3qbeTR*?v-T~}l#XyX(-4eIr&hn(Tg21&7rPAj@Utg+DpihJ+no^w$
      zCE8L;6&Oem@}a_Vh1ays8ZBvS11ZABUrtYYENtzo`vHNFx(RUsVY3#20%>=Yqwg)7
      zL;u7dC@L(eI-a8s2<76Cno^yRIP|Y%265y}q%lf}7fbal@+cS>C#(+@-NXbY2}#@a
      zJxQ1>mbw}ID!-BjVcLX&5yDu_@#JZz-H_^1G+dSxYQ8Ppx=>DN_bwCq+Tj-LM6hAI
      z&z;CMC6A{+4nnD)&k$YAT=*Sj%VQ_ZYVH3)?}W|4Di;>#mE=_j>*N0>#@}gVc+awR
      z%65#;Liq(|dFvHpgb(DOG4&Yv&hS3U3}7D#R4|SzX4#tVsxXInwpbt0iKz=%?6LRw
      gB!0`4pD@)YKk!8iAvP5~9z{5_>)68)mLjj^Z~Ak)>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+%}>-o7{;Gjz{RB?A1aEdAfme~T13H*#m@zz1_86W(U_>E3@}i-q@5+;&5L?b
      z6JugLsAq4Oh(=A+lP3NH{x`;V+U~MIAzs=}=Y4+f$2{%tzhAxqIEsNNA`I<Q#+)&)
      z+g$3dYw4E^d(53Qrg=IyGi!0l$NJ~EEu$!B*rr1DycCx1y&N8$;-+M%b-5!9E6W{M
      z<m?-l`xw|2hU#?AcBNs<tYPJO#mt{qFY8}C=wgVv+*OebO@k}5XEK8se=o(bsaM!S
      zo@MBXhlJ(KX)aSC8-YHNWhhVQ#&`^6sMVmMjymv3x@FiCx?g@Ok&U8(VUO3Gw=tBr
      ztdX3sC3pJgO+G8B))?xsO;NTpl*JR-&0yG}A%-f3ErY`5L;0Ce?p!xUEzVFsm@{c0
      z291T*!OL<vDO`qwt7=|n;%We{*CfNvRT4EOzki0B2`<xOc9J`pypWW8YdqnF`%Pw~
      zBkYM(74~6&6m3-WdK1^M7cC?wo>zUEJ5r1b(~z91Zi^>w`&gHoc}K_v-J}4$B+5$?
      z*U*jw40Q#}2<11$tYI<iDpXcP6gNF>hlT`_3=O0m;oK=<Qw6c&S-4SjGQ`(3qBJ+`
      zIWpt8Am0{_PW9fU;jk*JaV<JMX$Z1nywKphUM$b+@Md@Csgg>(N_#XM!*OzcfGhT)
      za-Gs}LbVa2&A`nJ%|Y+WU)l<<Z&tCvX&1({GSols7}@TehV!_<;A`@Zx#rLVXGf8y
      zj@OK-kSCVODe-_%j%{AYhDVeft(3Nmei{)pp#qy|74=q?c&<JHdRE_qhHARj(27%}
      zif>FF`h+bVzfkoR^|wA@>-S{G5*puo;+=HePB`EyU55xUj5>_ayK9sNXz>x)g=Sh2
      z47;(15~wGYG(yj0*&t;<-PK-0@&g)wqFUWPqm^NiEz;`<RJs}ud55aMOR4U8X*6FJ
      zq@f=o4s3`#7>1l8<TN3zP$ao}L*$__<UAo42zfsgNp7Z|j!;kKgx0;OhmYWB82ll@
      z9})a<D4e|gpYZN5_!ELZCHS*YIDH%c2|pPIe@*Z=1b-U}KaEr{X`SxM4;9J?%MMW9
      m1>Tj2D~c!Ii!*_^D-c&EKjQ2UTwJYRD$!RK^?gK+p#LAM5Q}#J
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ8bu?oU46ueipQ70EyXI%`=-Nm8c5O8pd<+Y^L6p~o<*Btx+KT2#|3NFWScii3k
      z^Lzo=VJ46eR<-W*U0M#(`$isGAFRIeiJd78JApA_5i_#Uwvxw7%|#%jT?{-3a-9#Z
      z3eMOn`zb@GQn_O9O>48wnJ`!F%@w>i4HK6CgWK4a5(uOIB|!cD1ZiXtJtmlb0R%@i
      AvH$=8
      
      literal 0
      HcmV?d00001
      
      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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
      a6pL75Rw1t(_sK()6be)X-XyIuy!9_f1pwLr
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh1zj#InQ+{k+r?{o>*reecvt-^9Gc^wc7D1{OvJ0g$YI
      zPGVlVzJF3yYH|r916Oc<X;E^jTV_rwBLhD|y&gy@8zTcF12fQg5MX3r1(Hk*Yygoo
      B9IXHV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8D-6g}M?c5oP7SrEVZ5JMIo7>JK+ObAM1T$E%D@7>w!Y)NTJr$d~7rB4_i
      z`~m(b<DGF#R(ar|y*;<*ew^F>{Pq0@fPHL+XbEhb$xHb;G31jx*U397kEM|rxg(i+
      z>&oZ*Ap(KB6)n-yWXXr|8Kpi%M_{$~=9Csr`7$|i>QZUSXmXHxWsN}Rr83ID5@`3g
      zPX&TQJD~_|EW`*gFVGz-L+^|8F}aU&tVy6Zw5imm(y0nJ&cIJqF0eVgvDpEaas^jj
      z?r+!Z*`5dUSQ1!cox9g`?n<3mRxv$~a1ZxGtO%_9D{s{3jPU>u1r{>$C(d4w^QFL6
      zf2Q2XJ7u!LYzK`?AR5`irF6uD;tJRMsA>wtZ;c^$sAZlLEAPHBskS*MJtjZ3lMrhx
      z<c4X)*uXP^CGPVzeUgRt2Y)sGKcA*M?1AUUYmR?Nix)o<qg#A>!B()H+qpvYwZ4vd
      zk7`<hfG=+|j{lHw2VF+|Z?MRFm7q#pCFt~e-?03JPc3FMuD#_<bf<}K<5A6ej3;cP
      OCLZYFDdPaESpN+(?yP(O
      
      literal 0
      HcmV?d00001
      
      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
      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
      bNNu*|4cf235BOGrAL2*WDu1u@o3r!(Fh?qO
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2hUW6g@+iZe6iZO08AfrcKj=Cfynzu_UIkrV*<NEiZi<mKzwd%#zuGz|Zoj
      zi4Xk&{wU*Jz(q`qFLUpmIp^H3`SJ7n1AsT!bCD4^?8%WF`<kpD$D#j;CZDC29Ws|P
      zu#uTG2FisaP)KloD0RpG(&|xQ1y<iFt!zzTrCezWI2TcyJgneR4q2=U<m*b)^|0R}
      zb0b?J2^8y5Aj76KDv9Tpj_s;g;HdupN~!`S(jAulNOn;wvv<ptyMGEW&70A#xL|?T
      z<-efIEq|3p_Q{fot4UwphjBmyt0En{C<&ZRClOOHG|Eo=D?O5-YQGOV5y#zr%1&uX
      zb<>1?O5)lZJYA~ZT~wMbwgvW=Reu9g5f?iG$IGDWs4)z>Y34t$F9c4OvA5b#5RJ$r
      zlV|l5%ndf8p$X_xB`exljCJt?P7^KX0K97cI)K9-ub5Alqql4Y+w7}*tbJoA1CLLS
      yEpX1@8XmKkn}OIqVFd^4$WLtn8~jpaL?XM%F9mGPZ`L^BQ#`|Sj$bk&gWX>S{l5PI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}T>S6ot=C^P@4^+6NHasCCi7wbF$`H^v{RbU#TibxNARWFq#lTnR3G03S+v
      zQv~Uv40D)sxO{WCKfhn!0ItxF;1SLj`c1#9lAWsSLf!Lf;wsCxjVWeqpS9IXc5Lei
      zKB3nRt3sD^^^`3*cM(Fu**4-qmwL{2taAaa{t1Ne#+1g52%U?;l;Gc0Gmg>0L4pW-
      zgl=j|er%Q*+ZUY`Oz5Xou8XO*ruBcJ?_Nz!7^K_(?yP=Ih$mHJa~_)(da`qJ*b;FH
      uX(%_4HIW?YCb}<9Z9EWMej@&mz(XP$N(>BfD4J~E0gliWCo2>6aJ&XWUS2c+
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      QfmVY6BLgdtWMW_g0JVuIPXGV_
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<O;6iE5PcgA0ha>hs}u;Rr3cdk7UGzeO9Titv{H@Wz-ePfVX3o5>kUeNR!@~U
      z^au1uRUNP0kkE*O{boFG-i*fY_n(Jf0QRw6MMYraR^H2AsL6&|mV{B%Y^2&!&qjBu
      z3Qu4mCxnUA?eJ^smSQU~^-*bM4+SQI-3tM)kzSLJ3Czr55>o>6O{M8ex6>kXE?Wr+
      zEH=|vCKuAEJTE_b_C{p_wdOM`)CE>Zw^^@YNLu3kj$F!{2fP1w7Devb3tX{SJhDdV
      zcK!6ZhFUS^glr>Gq-{i5rczyALttmzxKR?1eN>6a+>;q42y70fl=U?JPWD*FHZ^^L
      zVEhoLG|c2ltB*><6@hnSHHJCd?HApr{2v7_gR3W({7n5bsb!l?{b}jkbTj*}Sll?H
      zxNDT{hfyBTH>t1FPCd7Vf7FZV&hj0zDmDe)J2MUVgE1XG_<+i7QQ9>z9V_RZ5l`;r
      z3f^0=`Pjw4G)HVYepfj=U=)m#AAVx`2L~1S{Pr1vPw;Sv7aYwNB*vG3=V1=>B`!F8
      gg++%;B`#yd<*Rt@a1C!*VV#vc#tnXI99OXQ7bV;8?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN+j0{}5bcp<3l<^EHkJ)>5(orjNkMTEa+6JhWq}1kb}T{)^0bl$c|n;~?InTN
      z{6+pD521=nRjT3-;G<GGGdo_br8O?{qMqsLKHcZ^?C8zEfA15~D($8z!D#WZ`K$S~
      zBDhy^-9e?@Zq`NL5<E>QMmc#{8JMD9+3q~%U60X;A?MDP?P59C938hk#}fUjKHsq&
      zoU;a_=`~AO-gQRF!peO{shZv61~EFFp_7zllrKzzG-TvV6HT=IUpm~mXLbf$mb1I&
      z;J)cta<82!Z_jcWomD6?G^z$A>5MF9oJ84thNfs*u9h;CrW1^^9S*u%rs%nQ<`a}L
      z>QB3T=vlUK)3nU!+@wGU0gN);f$j2!=-9sKftA{B`<~wC`rO;(1Ku}1-n(bIPbA@$
      z2;*H}2+0P*okHwRsO_0UVWGMQL4m-~6cXo=SXU^$nl;?xPTRLU4p9~gD?dkSg&^~z
      zgdNBB?5;gP^it?;bJqp^n!`;ggPPq#=#PL<r?zK$KC)JIpE1(!a@QYtm&Q`SbQVA@
      z&U>|i#f5jn_x7MVe7Y{9<v37%ihS8=+aC^b$pCVga`Y%dP7dNnmj@N^;tmE~{A3C*
      z+Qn(h)wA5R1!A(6doawvk#~>KI$wy9THfRNQAVVnrO-PecB=4D=H(DE-Z5O`y3N8j
      z&SKgZzd7cR(H;G93Cpf*JoEU5|L75Ss==KYa|XBa$T3#a^gYO^5B_kb{F*m1v`#ff
      zt@wgkn!|b3M&r1ecs^X)ce<FwLTuA`P+Uvkt7^VW;p59rNmShKe0=99D+QL!n;E)I
      zcO~=q&_*M+@#9-)9s&42;nIPS;AFIwq&F@3re?$U{;C{p>H;Vw@$ZnJIr&gxH7B1*
      z*z=T<k0{PhVRsEt3^rY4iPw~Qj%9*o@N2*lts!-ta#&@8Fq#DrDTu6wcz{S*YNq&_
      z=8L75v`}1rNsA+>IfN74#P1d=Hz*6GCFJ=aO+x}ebt=1=QN1Sc$8}b9dJeu6%Do5A
      z`xBlI;E{iF9|DmOb%8$8tyN$p-c<1gE&PQ=z-?MNMTFOsZi3N8x)hVV_~%&iv&m$1
      z@G)Ihom|njKr3orq>{2_z5j%+s(nSreX8xMKL1SH&$azR+iUct%KJ*&ujw1L|5n?o
      zwrkRY#yVXG<xo8}@fJoZ$CWFVQvc9*50d3}GWCjXjLE|)ks0N}8Rck`>Po&GCRzu&
      zta59j$`)oRs~E*nIa%J1!M_#3H$r?P#5ZtT8YJ%kUL;f*v0%7AalC?xxne-81X|@+
      vbZ4B`?~%H1=XIM}Z{w9L?Z@H&5y6l0+6EhW7mYwS@WOjD#%l-X3HsqbrBEm>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DOHUI~6#g#LcG@xmRzTj0ptR*tK)^>Up@AX|WiSlXG%m<c#xgie&CHaD8#k`p
      z_yhbCS{4wE#I--lc<!Z0CDEj_n0vmP^Z3rW-}(9L>luJ4%*$wE7~j_q^*0II@Di?T
      zB{VIUu}h|HY#46E@`hJ*d)M95Um2RGdlgrPkD-N!BrM%7B{Fv9fT2}g-`rkFt4rES
      zdNr#)Wk}>2N}FT|E@#!Owvt(52&tLO()MOrTfMNKZ=|0wG>iK!wT3e4*4l7Bo!iQ2
      z43jS!ub3)Yrfquj3{o_fXYehSca0$YVK77#+(0`+AXRhejEVy1ZEK!m+NESRmJg9{
      zrvg6$LC73*E08$|a?qzB$U%sMTM9xPggLmQAdCRFh7~kJp&{mI>T2a+$8a|F9m^mN
      zxpGmr^15SkEH1;45Fw`Cp6L>~L*1$vWK2h6jrJeL7$#(lGqhbkr*`Ce#({zaCTaA#
      z<LF1l^6MjpczyTlJNrh_OJ?f^a&biyVUPu_^_L8b^<lN4#TtAl-tvq>dYxsMt<Se;
      z>8_isBk@;(OMQ~K!dkiF6pdw*kG1`Z#wU3H3`*9v4M!w3Nav3k`v0q8da*0ZK_k=5
      zl1+Q!P?>ZcGrlIN2K$~*E=-X;B-+)$LN`|!KqrYyoTMvplBC2*Y69ANxRxlwN4mR)
      z7K(2r^ocC~mA-)$B5l$Mt{<aAfSW!6x&-L)3(zY-e?Wi%0dC6z3<keb2C0e;t>CMo
      zODp)R=+z2=Dh9NIT*aVvjG-@7stI@L-@{4aEm3(#_Ir%r17`3MX?VCNytpSVT8-!w
      zwaXip<D-2i7`aRoAP3Zf6k*GVisT{05U+*L(Uf?2XB9(*RVjW}NO8VvQtv57$3BaK
      yoYr|Z_J=}<)HPkp5hp^tRye}qr?~$E?B8(`=0wg1c*r9tj^PoK^hzml|Kv9(Uq06W
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|VX-L|ZJR4h_J{HV|tq}C5a+7J}BNy9=DmR1`d$Wqq2WZ9bCEs=MB
      zkd_CCM&h$S%6Mm5q?%~jhn+dod(XY+&Y2%Szgz&wVMWFOL-No#Ha=t>)6aUIoz-<s
      zbsCmq?wDT7_LI7A_$^OHfMJM7W^Kc1WL2ki#4z%*QY@-FdzI}Cb*HG6Uop&T{m|tZ
      zhP%1t>SgLcd6OZuu9bClgJDqJu52Z%FSLrPGt9l|mp5Ff+m>Vbs|->qU1bQYHxJA(
      zf>AJxDv04aRVj2s;wiz~5vBXC<uvl8bTvY;HxvXB3Pa}LrUIFRFb9(g!W=|6xTPS1
      z5Z~Qa5XB%V(`b6zt)qR@-8J@YlOd)x>xNx5T#I9I7=?sUYR-RWdDPFbVYf`$q*LiW
      zl}3?5Mn;-$;p$rS6VEq~6wG6RA!4|$aZ+!-KViu9>MZXcnsq;4>XCkVMA{i-(M|a+
      z!%A;jcRcC-Zh{MZsNex|3{QJ$)@{S{@;$Zx;JvaJc_gYgTW;MfT6~COe>roJ%VtnY
      zj$^ul)FhiOF--s0fi&!nrD;IA)o{q&F0n87G{nta=uhQpel15=FVTAnu1#>m0JM@<
      z#7Z_1D>(!hNpOEqWPt3W;2Px(5&B4b{@eWuR*MZwXBaufm;mvB0OJBo1O-S4FclJD
      zTK+~!Qk#ZT3$!t=*Me;%^jfHmY5f#4pNV$>cjz0Z-he%-dVmBh%)!AEyvAJ-!K3J5
      zbUVtC9<E5v%uk)+-W5rR0?<uT#9l^{OQR=nAG6)`B`U?!<892;Hl@r(t-!n7k|xhF
      zxA2Mn>9o{gW4~L7kXaVH92tt?wW2YWIY;(8*uV26JQAFbNf2dF9yt!r=o*&A`SV|j
      CKpKSr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TT|Os5dMxamT^Q$6bPXWwHzS6Kyb;W7o4;Nmx~hzNSxA=Odn+X)F>4)V@XW%
      z&|lKN_N_B*X9}dvOwzZ`^dIEUWV%PkszJD>FFLzN`|ai1-ShX`KVAWt!xIG&hViGy
      zp7AVib2sleR=!dxFWC*#<`22!S+0U8!&zaHw+y?HU#~vpHJ4#%+pz1-w(%{mxQ6RF
      z4Eb_TN0Y0^0R@Jb(}rF-1u8=jVzBz$<xa6_JKhejGq6%{x6x|Wy_&d--7;;{{gmNx
      z=Kr}p#VVY4sg&Jhh!&f5o<JYYs!(x`p)Zr&RB)c*a)+#vW$}h#-Dx!_UE5uHR^z*_
      z*|g&rVYrx<<)`%><GF4(UA@Y6+q0|$G>i(b7a2xm4U+qc+cND&A-fsJy9}vxs0Ak+
      z#c_$!Ne7$>%E-oZWTd8TQ*y4k$K!aPVM5vkJa#o40E4bVL0m|eRrDh!q)8P6NC@eQ
      ziZe*ic$8^^*1Vl6Z#^=q7H81P&6;6t8ZA@k?aQdUZPMr@d$)iZPwY~wwFY-X?O>S8
      zWP8KAOx^%Fl0(IiITio!_{H6(>;c1Y8+EKR3a&GZcKR=k7d_Le^OhKvn<_rQTmm2A
      z69pe1TP$g-VjfhkvS(NxU;l;(Jvsn#`3kb$W04cMhS4}^>d)v;bU9e_y0~3XaR-aE
      z7RK%_w`o7F9`zWEl+WN%kL{!j!o}yp#Zn0QpSc9cI93?W7xd7S&g*edE6)}5U@rY#
      zmdV}|k;)90GNqG6b{wyD@WH$aw;K!*{cDl&O@>6J>9uNn*%ZS!9D3DeMUNQN674{%
      zXc>;f9R;-3lfB=tU}j=cP_RX;^oE?6*P+l2QnWXH^dLuR?`fe((!`4SC#{u#(o)eG
      zBTE&7^nHi4H-ze^vywZ+(DYvzd<kt!8$QH^*E4}OCbaP%+W+1Y+DJ4|$Ay}k-bXSw
      zvyW76d><3Jk?20AekHdNr0F~FhgziMmMEoVN^J!funHX|OyVwPaSzu~#%<ikBG%~d
      zI%ykthzH0J{)S8uS>#BgWc|{ZFNtC!z9h;N6ja3PL9rOUC)4dR^K=UP{@ibv_=yCW
      znBW5V-VdTmgLV+wfv(`GF!;x=;2B&ccY@%fkyF2fBLCbKJnMtP;A9y5dsi?$4eiL^
      z5gVesm6y1-MeV)u0v{gYmUjC9pAiko0~EDoDW`<ID&>g-+|}+&c}mFZBp={GC%i`F
      t0<Vz7Yg&^(Q6yQkNiw+7W-vnS6FgV&h)#{9FDRWa7sl`vosSpB{sA81`8WUo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hOHUI~6vzLkwjCUXH>HRu_)1_(oVdm`k*W!%f^o1uc9(inE*WOX+^OQ{aOW3r
      z?FJJUF5Hm#C0zO~jOX5tbrQ<vo}Ab3f6lo-|9txn;2!QcC=r$p#XE5l#4-!Cj)E|3
      zKRW5k<4h&7gEC>x<O7ui+q=UAVOq;niKrt}&4n+v9}?&ZVWO49Iumi$5m8@OnxCG1
      z`0?@AZ$kCHidEJm)YjS-7>T$SgjuTM-sXCTP;Mn}rHf0L^x$HgFx6JE-02_f%XCld
      zN0KnxPP!~9SeX4hSk4ZVCM;X(=ruM8&XLqw^ep6@Ji#9^RAJ1$gEV<>G<i}Ngt~`C
      zTp?UGJGDe#Gk2qiC^U@35Gvh4TkV4U;srR?zm8Q0EB`*m-f^hs;RbFJ#<FB^TEhI=
      zdO;#TIKd5*e%h6fl{xH8@zd{``!I(1FTn2-DyXt`*ehX-quh;gem#yfIaXp@^&4L?
      z@x|6m@$1^?1Mc0zH2VvKD$HP(J+8+b=9ytwwVd^wYmBC6S^mZ;7GC}*PTJg4ChoBM
      zuBEOH>W5S>r!s@*zREnqU(Wd<`)1a<-#CLqpW!r4agE3J*`Akr#S*W1@Hd48>O-lz
      N6)+3jVq^)o{{o%6xaj}@
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiv%}N6?6ot<n#~B@~tp#0lCnER*hPrL(Midu=o00C*X_!W*8JVP|ujNW`;RE<k
      z;>{>-DwqqGd^aa2Cm)}0?*RJf#s~<<k8&wj!YC)KEk%~4chXGlOg^cbRj!_$u1t)O
      z&|4G!o)e;>HrkB{2dAmmiBg(EWUkhx7@Um>;dM1t2{y3Z!X_d@JJm+rFXj_fKgda`
      z2;H>GWjU6$_WUyp-Ar4;N#puY%mE>uD{E!ZxUJ<NBw4knb9Jlzd%ZvZdg-s>2*g?a
      xA}$WhJ!Tpq-~yuai&t#D@Gd~YJ!z(WR$gI;`S4qX7Iv9fk3F;-uMSgy{VzA5UM2tl
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{f%}N6?6ot>7jx%+vR*Sk2MBMoU26b8Krs&4O%}Dp@7{<snBa^h$$8sgO@Bw@%
      z@n$M6Eat)`-_6O%$>-Pm2Y_?*Vg!W!CpnXIVU!crmLkj2TlI21&(*Wjm5C7&_Ld~S
      z=Y;4=8|?;!oukz2L@7-nGFNL;^p8h`a9BO41TCy~u!4xtO|?;X)5%!X_i|h+LNBdy
      zS&n3_J^u_t_oyx5pmF^-V4o0Al(n*Ge3lXrlB}B6xw_H*rR_ieJM$NC2;zKx5f_K#
      t9y1LPZ~@WD=^NUwybF+UPnzikD=)Feyt`1LgLNj>V*}mBYm+I!);FtRR{Q_}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%K}*9x5QX2wm}soF7WCjnywwVZdad*#dI};$d*7yGTuC>wo0k49Pl5-3K!21t
      ziQ=UQ?!d6$?Ay0*SD)`600!uW@CdzUwNT60a1}dO#A%w`G1~{TV5=WBPp_95zf`(3
      zA$-Eon)>&g5L{}bs}bR#m(;qrP$rMl%4(AjPsarRs+@9!4Q#itiGa{fwBg(NY{K?l
      zO$sJ-lQL7qSXo{3&(N=)v?KHz*Z*W462cifr}D;fEes(_%el??M%RxX|NZOp`YujD
      zlDb|bCDEmaLL+!mK+r#X!`7?pJVer?W;zh%1$KlFzg1{qS4i~OL%Z?n2zl850^Idv
      AcK`qY
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gK}!Nb7>3_5bz{{uQ!6FtR%x_!R-`flLn7GnK5m0eth2DQ8}%#t4c)tR5<2t)
      zI(6-*bcw!QrKs#M-|&6B-}AmRFCS0O0CrI`kYK1?@oRo#DG^v&yOwSDPK7^`T1!tE
      zNHVNN0!s@g^kr~s9dIq3ZwW&|3tw`#FZ^ibynD#Nju~<tPw9ZGpwHb<q+ZkacMtES
      zH->aeDjBpH%A36y?Q%7=?7)|5*xc$fBs<=PFfoUPEKFn=@;#}<NjMq^|BMe@!BFgZ
      z4q0+CrhYn12A5J(-kAE&i<*R2d=w-8m@{n5h%_r?lx{gnS7tD{6VSuS*|fdTcf^s5
      zBmVfwoyd&-oY5kvR*^!QZiBi6=IPKnGE}oPX;Yt|J6&&#k$a3ad8%eSZPIQF1?npk
      z6&6vXj`UbUi5L;9JY{vsG4eF(jqNcizhQf{v>(IPC$cY?F@@18RtOtKTqRHf)ldI@
      Bd(!{_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKn%}N6?6ot<n#~B@~tpx?$DK7j0gV<fA8`0Gu!btb&7{<snkxVLmEmwjIAHata
      zZ$@!bF&8fRZca{4K0e>x0i2<qA|mWR%4azjMtRXRwJ3`G)>&^$TVKsf_2jiRDPqFz
      zg6{X6kX&e^{fMx2m<OGxrKv>Woi^3*XiSJN?Y+vdgw+m~kr2AMHtJ?JohWxFC$%E<
      zb6d)KES(PgGmQO%ZU_gh>;EZ-gmkK!MpmuaLJUGy*qJNUwGPki{Pok*a0`1NP8t?*
      waa`^x(+Ck4kQ|@9V&#Q*5i;&sJ3VLR0Bg+K-zs#l&cu3bpxb)&m?CU`0TP8>hyVZp
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-A)rh6#k|xY%M61(ux!W{M}ZeB3A}NYzQQc6-^dvf>+z^q#apzo82klwY+NL
      zg%99E8PDuambyi6cIKS({meNt?XTZIegfFTzKI;e##iUcxo-GeHloOD*mm3I;S~?<
      zz`f+sguzf&kQgypVwgJ=zK}-@Gghs`P&m1E`A~|$k4)TQD8)1pG+H0h3WISR^mqX?
      zSXjU;<`@>+!slnBZ(SaqJ6(@6EVl#K@j6Z@RIHPR9EgZvv;E)m9*}|6s&$k>Nf{I=
      zF$_Y<z*-EmR!bLGRk6Zgb{+T93;GOIs>R}Qr!5*tv)2oG6dfdT>x!|)Fy9q^PnQ@f
      zw^OLl=kml?4fKx1a6khc3CXF0vQ_(%kUYolH*6USzfb3`ME@XEtXuGE;H4Xjk6|DK
      zH}FWmbfYtoT}`nzwM2Jx9CAn9ReXCF467+^3Sd|l%C1NfXPnyc1ovfgBnOluRyMap
      zxK9yJVDIU+8I}l^Nh!6@jxV!n*_=AKJsPSzoSNihX`<JH9gISkp9=MuRx&SoSG^x&
      z8`L-b3V>x8>K!5nlOluic@${3Pdi5IY<-OR@3hI`E`1BM0&fU-h<mhKNI+P`5=Ba?
      zI3;yN8O55bSI1b+YP}^+GuEmkD6K_!te{N#N>$bVK46O)P%W7C>iQV>v$7{dKaFL#
      z5?Cs0YFVP<0U6|CgS9DxbIKcJkSBwkF{)XIcf@bU4)p|=I^<J_ymlZJY~Ueg=<j3`
      zTQn(#Z9IzC$2xwZ<EMBQ=byuh*P4#&I)0(!mpb0j@ve>=TJM!wX?%P1&EfSQwZZ?p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8YjYD-7=BKhk`h+HP%af}Q@NO=v=J*-8!kctg@%GnZ7oIUc5|9;o9xETNoiHQ
      zU&ql8Ix>Dxzv4&4nUIkg<rB{Mqa2@;geGYUGMU-4Iq&;E=Q;0n|M~ZiKLH%V=YF&Z
      z>{~FG%;lIPRV<&+#FEKGQhH0$OS;ygRA)>}x!#H&K7p>9<~k|@e#>=~Tvh^4C2Fcw
      z(BX<KF0kQ<?bzy=Kx;TMA>bQ!Q!;>7Y%<_SyTF!&?a0wWc2;`h=4?g^1QV`hW+qI}
      z*8i)UJ~eOW1r9VHwGKHR8%RraO3s;u3<>sxBXxG`8MI@YK#1h~*OB(;Ja@@XNiTry
      z*y+a(fgSqBvAnbjo~>45$?A)NUFa0p#KSLoZcch?g`C6X!($oKNyn1Pvz>Ij!lz*?
      zfZgcwV~@c0GI&{iIAiAX3D@M|2A)Q@KnJmtD|scebuxj@>J=-Hb)vY&?J@8S_6lsw
      z5UMN`*#AGY%4)RUk7xZjz(B2GWgv_Q@9M~FXPvw<9gDH+XrOUnc0pPyz7Ybw2HLQ}
      zk3NCj({;hn`7$C`&YO;zmR{VC7&C9J!njw+s|P9p=JJ3a&kJ-nrd<uDn#KlRz+r)H
      zwNyBfNxKZ#e0D9<YFGjo)YvaEWg4;T8C20Vk0Aqb9H|7n=7hr!^=z&1n#j`Ahj7fm
      zalFDR(KSOyRDo9Wj8;h&sEkh!M<%qvNdv<;C9s)ytU<C+y26pQUaZM^)*#Mk?ym|A
      zJ_g%$u3yGDtNET|NFPd6(;P&?z<G=cY$eTlEE4T*CR(o%Z^uP}HukBdfdIxZ?nhE!
      zS7UT2tu`Eer#A%pALC9nBVJ_;llm%e3QUF{;kUJ-2BwuNUyW6{C&)3=Nx9j0WWtY2
      z?3A?{8Y?);&dSrvmdq*Jb^N$2u(KwwWaP<$onh^_<BGt5^gP!K+2vwWwyD@iLa9oR
      z3+2mQJd`iD@z7kQj}L_cn8u9mv?klidQM?@EJ#06tdrW|tE>#n=@M#JZiSD=n>S!%
      zft}sV<)lNyzV(2cdS3M^boMkj0j4mc-R>B0kz+&EZLN6{34|MZ_rqrv6U7ra=(r(0
      z)9R;L$j;_6GAkWLm$^=eo!ib-MvY(s2Ai02e6&~@Mx#zr-%%-EWCv+ce6%fQ*;Kfy
      z%G$b^on!YXTRy7VIS-ZA+`C4zKBKCQM$?hYj9(p{)c{ebT~{4-!**_-v%Fv{$(wC|
      zP+ARhhSj5eUC8BJPsvoHNg(MKJWHOj^&sA@J=q+Sew`=29yaw>epqnS>dwwLAAcO_
      z+}X%~16&2yw&)!Me&b6E3_b%~fn!uXjwkqLRFtq8Tlg=6t$4BmAZ`=3jeEZagC%r~
      zl=ztuy^oIG``FqWEh1FJzI$lBHF+D+zoEoE930`JKT*PS=Sz5T^k4}u5BWNMLKJbd
      z(^tfak(=;M_LXqDyj{d=dUqtDcY_y7c>Q-o2^Q_8!Ng7U4EgS2YU(bgr-E<Y!Bwq1
      zTSU5u#XHFSMa?3zw<fht@NK<QX4}OnZL#B>W5csBiWxpFq)@;z*Bkf=KXa}4!r^2F
      zuF!c`>6aM<F-vQSZp?G)E+C3U#8@5!$PrQDC{a#fiO9=DzK(Ick4yM~cpveEFOk7l
      zlzfeM@D0AexA>0h4SdfNf50#JvFz{549*6ArR0gHqtQXkC3-wc>uc!aUJPlX#JD#=
      z<Q3|*@bs%hRSfu1M(AC<$M}siV%N#QN68+t_z*syAd`=o2?C$!l^CD$*@Dmh0|P(t
      A&Hw-a
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwO>fgc5S=Y)6B62_w55geRSK=cm*KzxacUzFMG=i;s46%un@PIGv90ww3j8z<
      z`~ZFwVs^cDUD}IBJAUuY+nL!ve}DZ3fS2&B4s#4PPWhD2{0Oz5rlB7M{Q%Qc#!($=
      z3_9koAM$AIAAUPUp@}d?y_Y1R6kHQ*KO2ou1@b2{xZ-sW7%UN>CzBJ(W>Qmn)$8`p
      zbONnpG=9UNZEy;$$|pI=`5zd}Q~qGcpyqYI?lV}SW1pvbPY5!G!yLM5va#S{50#c9
      zV+K<O+r-Ihr6@8b^$%YVz^|aF@^V2QkQE^l9x~W0OqRs*CoznP0T<s<SMO`Hh^nGa
      z9-41w0u$4lv<^2Ico#Z6AkOD#ii(Wmu!J*MH)YNX_D;BrNTj&f%r6bvn;pM;@w!r<
      zytbUk`#7a>6{kV0=+trl%DXv$ighevYJ+KwTYz31X`B&>nreG`*_JpEm0cv}5f3x`
      z$R}nLYlY){eaf*n3LJwS@8VumS0!IL(r(IV%0oG%A=@oGVo;YURg<(Qv~^z?G?FYY
      z&tUfw*-9a&+9i>e!bv<uYuh-kpqyWWY6fwp1iq6YRd1iYkmqKw3k=8tJt%-RdNA{_
      z0OsM;p<&}yXxi9<Yc?*r^Afb}xdY2KUU$3|%F~M>wHigExDFftWo|m{TaL3y8s|B;
      o9pVn$wd(iazKvV(z{YKOXyYT;v2hnX8@uqBDl>RO-#K{t569LPDF6Tf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O>Yx15Ph>rx@o#iOK72_d^Aw1CRA8(4dOsQBv4cYft<KFsTEvpz0$5zapbRX
      z<OUKS5(mVYzl4MsdsnE?<YIfq@4cCM_Rrtnz5}?2tq=iW^H`qBH^L|@vMd(;ey^{x
      zOef}%Hb>fw_fM6vA<BeRhZGa5W8srehsSDU3Co#EwTuTUb+ng{_XzZau(+F;%t~Vi
      zGM=ak>N~A>zuvwll#M)5ghtQn#nOyL-=<uuOPG70jkXU7V%uL&Ypi>o*dDO#ZgQk*
      zC}BB5gbUnnE+Kq{yxDGhFb~4T2sJDamU`N#!^z1|r7z?#_Dv-t9!2s%92d#5eXTRX
      z*36F1TE#<zS?(aAIg{dGV`UG$6)W5A^D_}@3@9FhaJ9fpb)?2a-H5P(7Gd78l1Vz^
      zasCx9JP2`%ur}-2xoplp(9V$c=^x^*qoc)TOZ=AtG*Q7EN1>0ZXgGuUT;g1WMPBP1
      zJ!7Q9FLdsF#ZqVIGa4T~VTISazuIG=eI_4Zm2(?89G7sJBPL=ES6IxQT!DbkO{^F4
      zf_HaU>3l-t10Mo7Vb>S%+zUoIpb%tNag8&sxBI+1T($EB*MH#V|NK{H_|?DsO=bkR
      F{ReifznuU8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivy9&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
      HcmV?d00001
      
      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
      zcmZutO-sW-5Pef?qVcPxAb8Pha&htO%~Byy@UY^=(;A1mCEY-GBgLQQ!5`p{5+|`V
      zLVMZA@;+wXeE)oY0l2|1MvrhcH}7Vp90%onskEMI_TE-*T)Duj5Tj2RG$K_RH&YKU
      zb1niQnsLZqJ>eqFrY&6uTdIkx7rZn<0&WS3h}Ln0%k=r~Pr7TIs7IZ8Y>GG5_Jav~
      zX_ga)9rtJ#T-CC|$ZyjB>HBG(J&B<sH-<!4^|Ii5TT1TvR@LjKMnsUAav&g*=KF}y
      bTp-3li-$;BJX+&1PTK!zgW^1sw}-(m1E^ff
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?ZBx@g5Z;5(NW@a8lovrjQCkoyiZ4(EIu(bG6&WKqgI^5o4UL4PlU$L%<tJwR
      z;1BReIqqJLw3D`c>E7-=x6iYCd+FbQzyAQhDin3-V=(^1y09+uE*JSAaPp>EF}>;;
      z7dmJRhG|pog+T_1P207_7K8q5?uda_@@m|Gei$5r0Z8D9itY0K=J^TtzgQ;@XE0jv
      zs+MzP`8N3~sEN8AFqo|LU@tJpWaVbwvE0+VDSX>KEtHAV*uAXshOj+1&|!o@T8gy2
      zeECzfqeGg(Or-wMJ#)RE?w%Kj2tumINOcm+sN)Vvl_%O6aj)U|xW~#2rj#UVRvCYa
      zwVKa^fMij&Y05UmK)1p;)(|F);~6Y>E3P|OC7-9{vkV3uY9}#YuMecY)n3|e%=(zJ
      zE?}!r@}A|^g1U9aOWt|I;eyvHb|ARRkxA)o%}H-?f$nI|=jYx9?~TIVoN}@2(oED!
      zcB9UHvuO*CLot@ked~4+nV`pkOtuT2RHR!J2fin~s^?(-bSqC=bRxo<c%?X8C7)X~
      zWOCGx8B9dSIsjVsnCM0@#XiS!9GknM*c5e);i-7cK%C0KU^<(V#kN{YPcW2#uYhEk
      z%?8b2N1xia+A2w5{4n65ijVj{8Kh7}EJR|zTCRwTjmMIKuzV3+BtAdWYx-6G-loT$
      zjJ_8u^mMd&z;@x+1z;RB9IXWUI(jeAGPDDWS8(eWF8aX0Ujr?`Izl(#Hm-(35ZXKF
      zQGz5QhH;%hn}Si9tc(;yqAxB@U%}mYx@`pS$aHfdOr^sEkU?FfLx%~N#FRuar6@Gq
      zNp&H(7bkd!1iL*5X5fAY!EBcrz9aDf3Nf&T<uUCF=He_LU=S*jWi3QTWf)NzhAM+P
      z`2d-zD+WBo(llAxLPu#GypQ6%pOM$>!FyfZ4ZQfT@dUDXc?@#OF2a)ZpTe@VE6UF+
      z{~7)n5&k)j3E4H}zf}G!crD{^)VXzKHx#a*aGT11tNblFel$Jd)iT(|bsy~f2L#G{
      A`v3p{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8{c{sV7=E@*n-Wf_p#>_o4ItR29}z1S8$h6dmWF~&Z7oIRnr_=`le>7ilvez}
      zPy9eeXB>waXVl-A@hAM4G$S*@PdMWr<@jvwXfA0*e%Za-ecxxFecyeb-M|0&<4*tw
      za3hEsfwl#GNnehc(uw7A=~yzENLr~y>73S6j%BX|5fIo>wyBsD2&OF4k;{(26N$2s
      z2Q=u;#RcjQ8>ZnL6{zj#92W=-S~D_)T5Q%3M1#QAgkj2&d}dnOWBPPj3WO6@N>7jL
      zwxRyL!GJSw<OCw?m#Uz}1w(VvIVorLe45mDb#(eXDoq=(joeANw_?0EYg<dkjI={&
      z#*QGi3v5^Wi{)f0ZyU}^Ea`n{*ohW_&0O%jZDpnHtO)GyC@mOE>*ic6>DY!j7k4>S
      z427@@twB5~&|Cs9nGdG*TrOehTwFsN+69`3om|N|GUJ;QXz{k?Li(oS3U{}LJ=iO-
      zDNU%-q`<!ap;a=Y_dYxw#D1owij{^AbaJnzygX#)9NkPYQ%w~#&P^}KloQ_sfi4Yo
      zs1Krt8JO}VK%I_ZxpG!F^*L$BgNO;VRvV1j`JD5>B*fF&7sRsy?UjeD4C5VF4bS1A
      zz_xPwkEiD>CTu=a&D2Xv2>lBCkihOrY(E1JUGW&u5XWIR;pHG4{LjdiOKTljM*0Ab
      zYIqUHSQDy37zht&?VQmo$wHLzslm>1<#0m7AWjNw;U3G7EQ{8T&gv+Z=ebrtPAl#&
      z3G_b#+YPo~!WdF~�nukNA3`ie^6&8qQ)wppi8FSR~rMo~Yj<-hlH0byT9Iz7R$+
      z7DQ5DXJvLc>&c7S)2jl#kFck*6Sp#o3AL5i1SUEj61VE93Z_*dC~1Nm)y)|z6Ym@k
      z;sUj$TtlOI(=jsg)N)E@9m6t%xaeuCUlmT|jWlb&0dEL&OWU^Wh*2sw$Iu-LNo2;=
      zwMed{(~((Ms0Sh;OyQCeRGoUVQ8bvB6l4%HERZs*H98t*RqZr5mRlMMZ(f6e1q!&H
      z%}SGwJsSb96FYAYjPevH^pnUaUZy~F19zYI*t~6BR)WvysSIT`yan4mL>2lhu%|-Q
      zH@dobj#yCLrWL8a)FMVEo0b`AI*h1gMkwq?S}m)nUJ?*Iq+uT|PbvgzQfX$)H{(}b
      zPA^hrY8*Coix~<Jd&li-7c;X|n3Cti6oEISqb&DUS^7_%Cq}&GYUDCg?W41nOHOJj
      zTk4K<!zOUZi@dt%-LbgO(c9tB1@D&fS@AMmgUto;*@MGlSh1mVYcsqb%bGiAWap)w
      z%o~nmB%2?UyZ@Av;7&Ru^VzIrJ94JdC6u)Cc1oT$)Kj3jI(@zB@CJ7CimBy8hWyk$
      z!>>Ai^EttG6aV_y3pE;DMd%lP)Ieh!Vh<cc0LSqdzckkfTd<XXooK}4E`a!*fOQ=E
      zIUFvcX}HKIPV_#Sy6&T~D_TILfT!-E_V&cDi2j8oaSz?YY<d$#Jae{)=SRAWcwr#W
      z5)h(*BQ1dfjt}2LV4|mpQ>EboURI;S2{jr%SHvs7Axf}l7ahiLVedfT4kjn>U}`e_
      z`YPU3#?uAN6|mS6SVj6SZ40n&PbjN!ZWZ~vCBChEHKeG(XDGlajNlU66lRdeGW(nO
      z0Y9>Lqha!;09w>TXJn=krd=E6(2fPZ0@8>ggBWYD4>l1m;|MWMVui?8h<p`e_y8C1
      zA@M$@=a=-jPKz6O8(-rZzQMQbZ{j<ycoRS2`%=U&GClQtH7yZO<)eunD~x#*CjELi
      z7Nh7~VJo<<#5=UB;p#fx<yS2^G~zwH&kT++XIIG}K)*J!_y~c3Ad^q%`6+P%?5}a;
      Sb9})cL4NExcAaevzWNs#uM`6S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%SyvQ6g@X-n_8>Y`b0#!5!)h$t}7x4;v(oGr3-h{I<`~N2_$LJe{$nWaN!5|
      zQR1B>A}w?=_c3$MnR92pe?Gqeba3dvBAiadT)eniCT<)DZZA@EC4##!PPCZHzKqnf
      zl97V~Vaq_>K<JVCFqp_;;-Ex0Srk}i5=xg!tK^DcH(Px|;U;{N71&s>!a<o(^OTnN
      zv*|!aJuwI*q3(r45%fi*OrLKSlCg>jXWrs{D-3t}-nlXVN^qMgCv)y6k<z2?l8Wzp
      zzKmlP>Tc_iP#)*=8!!J;=UjplXJEq7Y9T_!4`<O(-YPTH@d~FGMjs9E`|v9A*I2yx
      zWw=}8%H>R)i|r3o-qYhM$5Og^jt#D>833E8amOEpZH|U~&DrK`*>5H?@{id`nT_l;
      UXBtEuJE@w5UF>mB*iV@Uzm?>Lb^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh2;@#InQ+{k+r?{o>*r{g9&4;u7D)yu|d>B6bEAMg{?p
      zynaq%Ub?=2QdVkm2_pknaDHh~a;jTqPAVgVAhHfUkYYAQ21W*EpcNp%$iNCDnHbmr
      DOraj5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~d-5Ph{f?BFoEx_k(tD57TZz(72%F(C+v$)Y4nxcAPsvrU?A)6+xTf2Ajl
      z2Y-NP5B?fs%{V42A%R18^{amM@v8gB?{D7$>|i5AgRpTb&c(;XNT1}nPL5rX`$J(w
      zCf$KZy>*i(J0SwX?UI;iVY1}i@KmNgM2oOid2^W-PWef4<kY#+GLxg-)GKQUt(VFu
      z|BBG;Zk`Z=Jv)*SnwX0bVwTYED<j_)XG7_Z#ZXH^r*BiCPlQt?uAPA&tDNw(e~or~
      zT+9_*d!f5o@u$1)&0?Og&RVxF(YhscW?9MjEW#r0hFBsj{V#D)YmKpt6~bI5{gJaD
      zr1KNPv+h*Efp^Mez3Com7a<zh!lm+nhecSvtdp`TA%0_wbbDIlxn%wAeUoaNbJ|1c
      z$95FrA&a?kCNb9Wm@v=1zLxJrq5bYZofoH6cZhB96nV|?Uup2-$6|DYPcPUK+nMKI
      z5Phz$W8R~R_7eeL-eesACE*s@jQIcH4)0}xGIg1t)#-f2!Y4j8n9aEI{+fzz)zMAd
      Vt5~bJ&o-*#fes!p4zPwte*iv>vLOHf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TW}j!8UBu~ShAv|u^nF%CrTTowj@VRno<&{1=X<~)mJRVsY%kXme;b<^~$VP
      zuH6FV(iSMtD^SY4Pnp6Dq)cO*nu${$$P7=+z$-JrJHs<Cz;||6D=C(-lacq_{{R2}
      z@4uY$$NzkE2f!)3=S7Xcu^Y;gvK-S@GnUV5v6NBBo1==ZWK?5NNt-!i#S4$X0eLK@
      zDS9S0K667&n*z<L$xF%9_0jlPd}v_u`e3|2H9k2l&^S^$n>3BAp6L_V*Pqk#rlOlu
      zidIm4s26CeVoRXm!oXns(n#uhd}L^RGLgDC>O(-l|CE}~XVs@4?L8|{XD-Yo7qbE<
      zEK~m%J<rj+Z_&stWoK1Gpv{JtSJMR}Yp%p5oE@I3SF}uyi}MS#aXzbO%_jtsUAr@~
      zomzX{V$NZsdrH95pPN<vs6|Tvjc669?dqPYhd_G(`><b*4h8T44#-hw01c=Ucwi)}
      zt7C<Q8P!NBGny*7&ZQM?N-?r>?ksxD`D|X`p`CHl=e-%#Ojw~wQ{Q8@vv#11aCfE0
      zKd_uu7tJig?8OO&#!3R0<*{6{ke-hh`E?Kb(S@)V-2yF@0!b%60YnfL2oPp5QuOUm
      zSNE0e2=|k*lL0)4n80`yf3}nB-i4ojgm6km>@@Sgif$QNvB)THi;ktBDS6W+K)_M6
      zBUKERV9tvKf6D@iD&}q1DspWXPI+-&AXG`e9j_weE?O^G5f7H?JE3W6M$zI%rm&#u
      zC9iz=G)X8HU2v3*A~-gl3eKoOy`X7+JdRT`^!))`z<`~FMPmZdDz4eliMcElPxtxJ
      zhf`i$6lg8svQziTLRMqV`|y;&(JI|0=+=AiiXTG~(hx=i7{fRlfU>x#>azkp+oLIC
      z+OgH=!)MqnuLb9f+(NKOfTcYt6{qggXE)P6$GfWfm{Kj*g6UjAn+@tYQ*xL#RK-+h
      z{dgLm^@2UOEu$A=l@T1!Gwc?!4z37HRPkYJve+wIDK1Cn0QTaVz;S7Dr|v7u@wzOT
      zCO;IUy_gY*lp<xQa~iLcSVCW7E0g^rr5G%BH{}AD1v`_EYyC<g&tYp<IiS?Mk$X;d
      zKW4%ZG6BqkRpK*qb`A&}tT^s8HCf2d2B3khzFu~EM|VZ)l~h+Z=tWN8aLJc`R(8I>
      zvbt;X^tXKr*Tr-Z*ps%sYA!odGR%u1FK@c?OVtShGpS5uM;_Tej+C9>ij@bNNb&`B
      zPAO=n+p4{Io_EQPkv`7iSwV{*U&M=Ee2K;^Ufg7gr_;Q_`3f+N9Giv_z?bnA_VwA^
      zgppm!vW=*$wKGnhx?-ixcv>b$MWwj8__c}$iXCDvUgkYf3Qp3wP~5~KwXA>pYH__4
      z=qRR383z09K!OgCpz=n-tLSL)Dym)x%*w0yb^zbOtE^+yD$1cPN<1<JSr@kZB~6tt
      zu?fXc7F1I;@_pS?Uc4#LTS+pDNYS#ht~aiL>$F7kb^zbS>wHt$XcCs`x<#p+{_Glp
      zyoK$Aa+w-dSCV`(susL=$xS7^;&ug^A4xRtunzK4a_jr7C`9)C$y~umtAorIo-2=o
      z^He=4?J=SWT~`e&!__>Fu>sZc#k&U`{MB*h<*Wui&i!Tcz3fqZdU3B&KD?|ipI!X=
      z;gS7|k_S1{DC^<(V0aD9;mB>Yg`>C85$?H-!yj<H21od}g|@){?7<b(ll1+#Mh(y4
      zC|AR_Jc7g~{~fgK3Tq@S*H|NIyB6(i;16--IM+Nx5VA1*iaSz&?>ZhH5u>$F+(c72
      z(s_CvJ-5zz+C8H$)r!u@o%jCx&*&epC%U<T&@|!pZc>Bvvx$0aoMCzg=+vE~y+!Wk
      zxm!Rpo<kew$5_=NJdcO*f`$EzZC5@>Eksc~f-}@wN3R~mC#cm&%#Y!dMA*#VS+033
      zFU~n$)bShQr7gK!<_Q^_6Ont^w}Ho}8$Y#%_-14sPmV_KA+UkI>Bt%eH^Wis8c*7&
      zJ1pyOQ1hE)_AMfQ8?DTvAiigz4BA>9l+@3N%E&kI|05Q|lGm7n$mLaBpm&m2eFH<&
      zjfpi3hgUJuIKe-WRZKQs;$XDV7bd{V=R6w_)9s$SxEdk1&sfB-;&Wp?A0zZGd_8v&
      z+U&W9{q3HyoAAl7jLA4eS24#>$a&8yZd`8nY!b&|i$}%!PBI?0pOY3#?=ypb!KnQb
      zhwwg6{F?mT!byBU4}ODQj?dsj^1O=kSVKS7aS^}82tL9jeuot9;4<#=8vPj0;`bIm
      zSE*4(-HxIh$-LubMu|myp4QJZgAL|FEoEDsQHZBZ=7xv1+8Nm;j#4~vmbv1ge!m;-
      zWn`&MMmR%VGP66y@CH_<*YLtRzHk>`9li<A<?ub!HSQe_-{O%P0%*cZj^jtHBK;F*
      ze<9RAbLX#A_cx~G-$}whEGGh%)FHfLB|`(g?i!78M;hG|{t$;tStBz5_?IgzdxBkq
      z4Sa@vgS!%Oxp2q*!vC%+{7t;-2%qLx8u8I`+bX_wpS-9ollQsCU&HJ4v{>SASTN#T
      zk&U2UYGU%eRq8E%xgid~CmJkuE%rf29Yt6L-zSU)yoPtUS5*9is)~Pjzv50RKC+GC
      aALA!fT!WtySq*-MpYtnUcq{y}asCgv2O-P=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK%6g{J>Tbrd>*@q7iL})=<^imi>M22J^p!m|$xDGn9?#k>a`m=fpdgurA
      zqoTW7raeS2bMBpc&$(akAFpo!j<IDT!m!)seLk=~q3s}W?W*bp`i^_NDO8a=+E>F$
      zSDG*wQemd;a<6GW)Z4<*4Doa6NqxZ(&E;zh#+Ba?7NVF>Aci<YvMfDu-|N(cs`9!k
      z7}90m;cks98TwzJhHlA#VXyq3UJ48u;WbJ4M(F8wNntyefBHj&sMeTTqP7_ha=(&i
      z2Y=*>cZ3!yD1_5l*8@j%we-Ef#45wlXdi)adP?e{UGn<em5occ>672;OxP0|Lv~!y
      zo{(<EutGZ)RKUbK4KS<u9iEb~Dt=EnqA0^{W~b->IoDyRV(ftKLYD>%vgjW4n&h1j
      zGQ!yY3+A55h`^%PA_Pt;`3wtWCB{jFi=<#+3CR(ruuPFOWrVUT6iH!i>L)|?21O&-
      F`~)|}qpSb`
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T}vB56g{(9vo@x+)mlGW5K4(YbQO^zDTN~Tp~kkbB5j4jWOIpQx3e<45%aI=
      zli-6tz#mn5XR;u;S$vp#=YE}Y@65gZcYOn36R!ez0<TZyxx5H9<zbd3;rH#0oxO{k
      zbdP%bG(3=6_Q?eB1)kc>Fp;_+e(j!8oCl~2td#5T>ICZVl~(x&fm&<rNWkAsd(=P;
      zQ%wYz6qxQPO<x9ox?~PzHz9$UP8!SPNE&7B!s+KHDie6qDYKQkZ41oDCuy3|p6)aJ
      zZlXx%9}^`R;%DpFfs6);a-(#=UAQue2S(+?@Edz$btaScJ;EsJj4<14WfXzQ-!wcN
      zo)PoRj-e3<RF)0MaD1tnlV6Qo;{uD7{P$*z$efcYX8h4AH&;zpNilZBpcv79)ZIc9
      z?<mlS(t(NTld@mAJbs(r+B$y~ycB#Uco}Q(?K-gah^;Nwg7w7u6&ja(@z7-1U=6(E
      z)EzwLTXU3zCzxi7_Y==pT7b{2eb%1%Yo)8MyX<{exju>(l{RArvo7x8Ip!RXhZmT4
      W4K85uLEK*zxJy{B#9eW{z5EZShT4t*
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtSJx{|h5Iq-YpipQD0|P&xU1}H@s!UZR7C?MtL1Hr2k-9_)a@>giH3ohFKMHXU
      zhNNva2K!{|-g~Ea@AK>Z0|3t8$b%MxlbI;Q8&A>jJWu$;`RVu)7uO;cF=`Js8T4!i
      zPedB?o2MB{<3XFj@iMN$FzCx^mgN{G3R5#ll*k#}4<4^7p2%pG#)13FQO>n83w}$#
      zQoV{K`02GnMVWj-6AahUe?k%J0<{ym8?1N!SI3Xhgs6>rR#F%Yr$VI+#tlltRVhiZ
      z($pG0AWto0<qwiWlLop~w#uMip>i$GP6l0~rJjO@q=hgTHE=p7>!!PYH&@M0J69*l
      z=33%~N|1rSoR5)RDTRT-2AwU6Rht6i!8X|7>_DfiyRcW*F6@`}0D5KZ+c)73>287l
      E4QzbN761SM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2yG{c!5S&c{2jLYW(NNHmG#CmBk_ts2A%Q3kAtWl}EQiC%LAEanzed3a@KK1p
      zLqy?GP^{OxJ3Bj?xA&J<00-DiP$TS&^h8gU<ETQ&)y?7l(UmVkywFZ(>=QHytrDYh
      z?J{+FH)0bLEE2ZAZ_aNK+U9}H;~=-}Vm09*q1U-Ruc!i>!rS<)4EtE!9LUGsTcacQ
      zKQYz0G<xf@e)pQtJeeAPigxTmf)&E<A53#BGxV31l>LPLOiMfCcx*~W9-f6zun)r7
      z>HbThs7c3#H+*VyCT#t5ZLicO77^+a3u1R&Y)r5u)v{C#$xZ33{_3n@UFL)hd248W
      E0P^;DlK=n!
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+9zY4-I9E9&z|5WSZAn4@epo_uTNkk{XL3D9SYbY%tElnzYHU}TThZ2*aEw0CX
      z+;^Yv>kVLokq?hBPx+HqEH4se*v^<D2}>gmRU~qgWXeaEFm@d#xr*62Ohse}vsjp`
      z(q*1!g%OVi)P%`$bw9PlUUIFsHvT7WT$aMN7j?UK;I%_*W9i_Ml|>|ui4=rsGuL>o
      a-C&<U=-6|BXSI9i!|D4N*n}{2If5S)Zc2Lq
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ9I-Acni5QWdwwyCwXzaYMWy)k(0l~Mx*p<;Z2Z5&EU%!ciz#8>me2k@c9*_ejV
      zt6k3dX6DTN{C<4{xWn8-i!j=$gDU*Y#Hsa{I`YsajGgEwD&6|)&5k2W7;f1<SZm@<
      zZh22w+$^4(rRwOpCN&tcy(bK$R@5L-2W<$~C#AJjp)W4WQdvcqS7<YfQ2nPO;>^Z6
      z-Fp}kW@X-3`>S>B$QCm8mDM|&K$|x%WQ*yspRoUybejklTEpr?xW~_Oy{iVeO0&EI
      z-0V>2CgLDYn9!5#w{CcsKsb}T0v$PE2VJ;Bdgzt!Ir`#Xh})KTAkHO5C(0O;rXv5T
      I@GZ>#06mCpN&o-=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?OHf-?82%2A62fU|!=unvr4=o-hJcTX2DBjr2&NE8z+%;SNiNC7o15F*8>Cua
      z_5E5n<3bnC*o6ycbWt74Xh&yUIHS(EaK<iNIHP+<x2_!j^M^t(p;_er?ti}Xzt1^8
      z{`=K80EX~(6Y2zdR<u=ZEnpW7%MFYd(i5h(S}698EhZzW(A->Tu?Y<V9W_}3dmX)K
      zXy$@mbc}*E9~~DE(*nE01<P?Y%U#gSlHPb>@V%=SwXRWt=Fog{HW8UgL<Ek+Y8tI@
      z9Tcdaj7|tNOvfXW^brro)c-iC>f<w{@y2Hp$wYWA8cz!BNk&d5Q&Y)PvD6f)1$<kI
      z`9vy|2uGt7a)mNEks3O&oyV#%3a@fAD`TW=-M)GFnkF6#MQ1j=wlSxy*>bzDQoG@I
      z8*|ffwN`m9hrMByxa8V1k~R&?aPOmP^z|=LnZkvP?!gg(F3q-0BdxjAl|Uiw>aO2$
      zi@KKgLZDaT7ThYZYh+`0M<2H$U}{!2kZ@@fvcdj^W}@~<c+uj)F>0NW*RpybYb>jU
      z+a#n~7@!`M7glUNt5yajcB_@!1v)FEShX?(IonSyRIEEC_9zxrzqOKOXW0C(M5|i9
      zchj$JvGoy&y=sAS-e%n{IIfc}8n&yfpOn~#mL`k|>{mlpnb}y$Ff)451De$~S6_1j
      zIX7<xd(t_r=;-dK7a{a2Ba;$Spn;J&vK_I~g$&h&=Ayb*YRdx>F`S~JQZ~Ak5%AY4
      zYSrG2XoAYbtVA3SQeWLdxd{U8ef?Eif-1O#giqCBUf^JjBub87bJB*Ps1HfBDe9s?
      zcP*;B>>oOzh-W0)74gv>Y%+04SJae5hoWlNqnb=jOLQu#PE)yq`(b4=E3sek49c2$
      zwy7D`R$mn735hPn$qO8+#i>lYAknS3X9W(_<ZkBeNE}ei(oR+@5`R+SpyHmpF1MWd
      z(-Mai_nB*j|6fKWvdgJICvgK>=p@7pOP?v_m-J#%TQaF)zE~km*Q-XCEPb=mgBJzr
      z&Ww3ckC)X+ensGDjajRn8@?jkoZ--j<&C_aJZF;&Z=z5tru7L!`P;Mk0t~2gL&G1n
      zEWH>uHOJ9upLgqBz+q}gJ-sCDRJ}&*qOT_Us)L8>PL~GZZgoenq#J=Hoq3jYxLML!
      zW=W@&CCxNT8d#Pzk1T1}Skff1q)A~()4-BC&64`al6u6F>d%tOOH##lBW|KddjN5k
      zqNbl{yaKW4JG_pYKgUtV{fv(@_A?GJ9%6h4<GUE&&G;V1LB^wu?^pN=LW{oeIwGH8
      z;xeW$V}{q}n3rU{!1y%dhZ#S@_%X(hGhSkxVZ5v`+s#$kU16TdJd3f-xX9RLyvlfu
      z@l%Y?Gk*3Gm*;u<pQDBX?^EkOpu=_%z4!=&_!uMjl<vbzNa73F_!8&wHD1HFco*N{
      zL;QeG@Dskr&-evb@jHISpZE>`;1AJ&cklvRr&_Crr(AxVq~WO}z313*--UI&v=xDu
      n^?%Vg{mnZ&%RIcwO{5*<H%eCO@H*Rl18<U4FPj?3x6u3_8Y&rx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvT~8B16g_tf{aBU)g(9tA1yNdzHoW-KYHW&xno3Mr8wn3&s3Tpo-EDTKr2YZ_
      zkMV&-6CZu>7x-IvFy0v(QPY>5xp&Sv_nv$A`_Io`0qkHq1&dI6C(gyVI*hzPRd>VQ
      zo-fYBXtTNB=$te<oyJiLGlcw96k#!zkth7FjAAbgUbS`!^qer?41-vSKy`&blCvK!
      z>)(D*c1*~)&tAJH`|gW2VWT}&^smx2f^7&d+l|%%AzknJUf`)GghaX0CCoI#H!_VS
      zLP5!~s`k~uua$az5yetH9;vqvb{^RvEIU|1o{+3h==riKUiC$ARy|Z~{;XE%W*B<S
      zfsMH|3WTE39Qwiw{ukBA>kb^u5f<8BAP+`^QyID9)R%-@JM8gL1doPelT70_!8&f*
      zNMK!evq9LJ(!{j3*r)1yG5a5Q1L?jWni6_=|MbtpIt)iqPwsiTiR_<cKGaZx(+UC^
      zHGL7slEv(+6=R+4B>1ODpom!{IZAP4fybby!S{mpI?2r=%ZLSz8ivKMUqDB>#S7#<
      zVb$E%%)R*0P;T%ytD$7Up(NIDiJRtyQ+hKKxu=Y=IG^6WpSyK|(iPj*d0Iw_Rt$6X
      dHx749Q_R37?y`!7dq#H)Wj^)lwXq5^zW}?=qG134
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?TUQ%Z6#fpE65teCZiTkm8wwO5#cGR&+Cm5r8bTxkEmn;~GK8U%nd!^~sZ#Hk
      zdRxl}pI!a{U(~hATGr*W%V&RpPd@nrd~&(Z4uxPs^N{_`KHu5*bI$Mo{`@O|5q#Bv
      z8iBLx`i8z4c0JP$!jn#R%F;I+uQ#4dEozyxwh$YiYe1bqXH}lS5#R7k-C8m{-*oK7
      z_@scC6*wGqY(LQLU`e-%M*X*==W>62{mUJJ#_>gMJ{?P@V*<U2sz&!Yj|kLG$EO79
      zW>c|g`bb3+>VJ|{wW%a&no{#=EgfBmr!;{UEp}7O%xH6o%nYdo+V&KS>CAXK8jn-Z
      zWlC)-GjeG^k5v;CVEJZNCP>-3fAi=gO)4=SPwseaXHH48=k{p1cE|5N=C0#Pt@2z7
      zd&eqq$#rNfYniqgyhPRLA6TL?MV*`x!dZcC-E}Q9s|VDVu#*jpV8{<VLoYOeN-yyg
      zo)$PXwzIplpPLc3bUPnT2Q&`($iPw~QTrvD&>X^fYMxop^F}ytuBwG+B&1pxrXG|Q
      z)?Fj7RxU^!Rx8g6bd^W3VdsX|+#zbAVm&9(qF7Y@)^e7cWAmdDt!nwjUB9l)*2g4{
      zs0GS-pLN&q13&ATZlJ7RlQ@dz222PXQ)5=1*+kK_a)uWIO>28#YzE=ApkPH#XV-Mk
      zH-alo7)P%%GA%I!8W_1owqthI$x&TsE-GuKwp^D;V2+AP*%)?CV5nMAEB5Y06HzAS
      zB~o~q`WiT;CJ1!&4^(W4sNm8PZK@870w<~@QS^s&KWmzbdPAaJQI`dJs!@a0p^;09
      zcuS%~5nnsNCKFc-Ma@WbDysfCs>Rf-M3<r(G?fRqA5|vv62}zJq^z0eTDocP^+j=R
      zOLQwvLEvOHPI=mnM33Uqy>q-OcQ<ce;<#cK53*X8_?r?Z6!-39xuwkCmN==n_Z}7g
      ze;F0YE~oyk#1m+ylaMfNBUvo07@nrDSX8mLgp;KUR;O#0zF8T<hcviqs)tQyIBvVe
      zfTo3yb}c?uNBa|jzAD34IY@kG1Z$>GGgmMRhIZE_pG|3}=w*#5Qw7kn`z#DAmvkE9
      zwrzM(OZR<)_Q~?c0%xd4we-MrP(kZ)h`t)=s|F!z1>GZrd(^eTk}e6BbPcei^Ujiv
      zH%mIeENRSH(hRet5oJm9$C8GNB@GWt8W5J$e3sN&mee+u)Do6dagr*wCvl1*Jq?IE
      z6gB-s{X>Z5wlmu}_Y?XU4=^5NJj6K6c!cpq#?Ldp%=iVy5yn>-Usd=a#+Tco+lc*$
      zsRx*SfF!RiFi&H=#P}xTR~Wy__;to_FkWGtW4x*`+g+=$yUsj|c{XF0vBx-Iyuo;r
      z@mq|y7{Buam*+kDU!aCU^g)V2bc-;0#YJ2YmoX+Hm=RZ@i6~q#jV*B<_r*NE5ovrU
      zZs2=y3%`jB{t#LGDf0MR+{Qn`5q07e-e>D%R=q`~^5Yr}PYvlq=Lg$9*v3bD5i}{i
      m*g}K2$2+@9JbcPcq#d}AI9aK|XKeR#d_ht@c4{EMMB{%OGZ`ZQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvU2hUW6g?MOzPg2qQVZ7FYPC=m(idN-MglZquu+Oc6B9Ggv5Z-E$?nk9f1qzZ
      z_y_bK7$2Hw;t%jQ8RMNP(P((toqOk;bMLu#e*F6S9l#E@<A@MeUyEaLQW*!z)0Kul
      z*mK3PA8dA-wMMfO#~dLy6G2!CWuS!HlR>C_?`f++pofITy6=Trc)BOtiJb4hd*a^u
      z`65F|cAL+-FCTOtwFztOnWEFORYJ;wAGd3*eL`Y);3`k)dxU7Q)FaH*{X?0+IYM5`
      z6I~hVky~9K3`G!1eRrZ?-QKyA0^z)a3&;^-yHk3uXbV?d;T=^DG@CxEmU>BsUUZPc
      zLIQb0!D^0Op}hY^4f2u$2MdHuTX}MSGV05qEBdY^WZV9L2O@YZ9NT09R|siiwygYe
      zM~Xukq!7i1>Fg?DYeqw}T4c|9s6w8_NR4Fo&DfSRy8n3L!5#RMU?BIDX(;_?p=ARl
      zI4#eULERN$C|N9awq|UwttdZ=C<>TIjH5V55%4(7RQQ}Xo~OA*q#2RnsAgGw`wjFw
      zyL5`|7cATJiai%TTgobb(*{cK;m`-H&|6%#H=HsXn#$d0Ooa1^?VH)PQ>_1Gr%awc
      jB2J$ybNLL1Yqlw7U=!C_C4w7PcMC=Sn<rq5m5}@mG{2-W
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv+int36kQu=p>*0(v={2N+6%NY#OF4~3WLE=M4%)-HHYaDrx|9NVT%0$pZpdd
      zjEPNbVoZE#O!Q;?0OLNVq(;ljoPAk)?Y-CR@4r8P0q_uoI3k4gLopC1g`>dn!a~Wn
      z%dQys!AjF=v@1nxzx=$hyVGh}r8r`QxshN(sxJdaxNRBq9pBrllnC^UFje%ueki=K
      zE!<-{ws-#a*SGk)b3&rN^VHgTQnd)V>PXJ318fl{>WxaRby1gUShbSXP|kj3m+6>w
      z+jbq#2_F%n*<70tEBXgAfiz)3H8I7T(A0~Xb<vfg<H{rm*A2{Jo-n>WES}5inF_A(
      zx`k%Q%5=AK?Foi18c1R?fh9KoXH)_zN`<>=z)-l`yx%3x>2Xstkluj|6wqv3niZ8&
      zg?9~1VUjRYbv#)+?sa6)QdmN|>f5ZaV4d05!30(aYvSn0b!-u`@P(7S>Xtto^zyEP
      z=l#y1w8KEYN+OCiwdgwk@)7%u+L#3lUpsx)-F8L4UlTn&hidVUHiTr;KMrhJcGRTP
      zmseyeD8Z<Bo(zhLLo(a!mD|EHuO8*2jA0357-uieUIYnbl;CV<l%V=$eTKPd%rG*=
      z-V0p~te$~hre{xa?IRYnozeCUZQs)Noe#QvnZIdn2>Jwr&ag;dS<d&kr?VVZM=_*-
      z%=8hCCpOaeH&3zpmm#U*^aFAFsVnC%aLDQ*xdJ(CFiQlRn)d<n{Hm){3!9ku0|md*
      AOaK4?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv(QXn!6g?MOSm>5klv=P>s?|b`U|)QJ8XIaAgT%;6^vO)uv8-8k$?nk9fAJ?w
      z6Psw_2lxj*`rr@fyYbFIG#XxZ=iWK@+<VTQFTXy12C#$eG!lfhH{w{F)JKsQsQP~B
      z9{A!oj5d4D({}ek8gqogOax&$mXRm?zKmio44$?33G|4t*b0MKi9q#*KbG^mt#b3j
      zyW6LPjC23F^YWqdxI<X)%p{$*Z4j~s{G_wj?h>q~>wAHx?h=xfYM(II3SUVJ=Lkh5
      zPgH%NhJK^$4n!17wL4a?Z|&U4f^go(1r!LW=Cr&}F^%iK2#)GK#iEZI)qaMd7j0y*
      zV4+AT8P1U}yx@OQjl5*T#sXof;{~!i9v;fb5r@7c<U66uh6uKWW0SOSg`Lu3Yr1D`
      z(ld)BHuP*)30pHpnl&V=Rs%0)H-_F&I&Vj&p=SO^4O`a>$B`=!JUvqG&q`|=O0e5O
      zAfuKq;#e|SYO-i-u&^XQizG^zM~b5~M+vYY+7~_-wd!eZ5jjRIakOWu`1TX%MSl4V
      z`BSWz^Qt+Q-kXv&{^m54zQLyNSf#JHY;HKEcQmED$Cw1?t?irn^)r<JR%dmdejrUh
      gP36i2hihgiuD~X)GfM(D4DS{y{MU~_3#%gY8){yr`2YX_
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?+frLq82;Ac6v8UB;ZP2>C$R-;l2R41&{_zmU<#201Y5;TvVn~|JG<FCNVT<|
      ztyb@R03X0{Mx7}$cE%a+9It%<AHWCjs^h=@PzVy5i~QgE*SG%jTKmt(zy1cGAK%tN
      z3Uq83o5ohuEm)2p9m{7XY-2ND=$@ZT)S+6Swc@tGQO_(`hP_}GJS*?a$HxT3w7`*A
      z-tm0H@fQrcXx8-nzWCs7*Qp-`>PP0&v#If!)VM%bqM}jlb4Z|SGCm<tJ)In%q(w58
      z(Enqks!Gm~CYYQ}rBkuFcrq=}m>yqDFHfbfCzhv3EfCsM%%_$|Qn7fPVl7jqCzksM
      z_VZXZN^zARW@UnuP5TcIKG7r-Bk`FXug%OUY4+S6E7$J$-N)Q@d{C=Bm%`q$N?dXs
      z7|z(1WBFI98a=%WRHj%yYX)#upxtm?+sYU|wIiC(_@*EB{DNuZf)MCdcn;?TYKM1D
      zxAt%kqPF3zMN>XCe{HCDp`NHc3PCgk&__M9a>kk&U9(p8#`6kFZ$zjErHu{OT+=%j
      z6^`hgO9E}>QEWQd$hsS*7HZau3XPgY)o&_ixmh+psL-UhFYo$w9kxEKa8z$l&ikyp
      zdC&JU1<Uod^=k^p&`^g_f#Z6*$}<}+T6Wef1VBUD?3-JDbluO{L#H$AM!_@vD?yB)
      zTN{~Fm;w!qS|{7%P9~qFy3kx4td&0UnnD8Csi>5V>0|}Mm5O@c>`pX8+Qh6v60cKV
      z{d}nj0xdng2aXKs;8F@9U59zPKoycGdSS!MSeB-~q0p?UOLV;}QT^3$|9~dmP-xM_
      zw+^w%#1&Ihmlawy)p#1!W@<*EO;b&p%0t`_YLjaU$2HHQteNN9hUM(_MRVR&XxE&a
      zz==wn^0e~`9h!SfptB-(H*Zg&Q!|T)SuIQaJ%ujKz5P^fDf15$PH67kCx!oCMn$sA
      zsozt01`Tu*5|(4m6mu(PA#JSKRIyMZpP_fvpx2ewtPJ2&nn^v?5y$i+^h^d(h0pb!
      z{zBk<g{eC@LHt<w>y}5uma}qZ`nF5Xf~kD5kTEAL?YVLH^^a&@<TCC!W+7%9o@dgz
      zDsqf7)RQXue6&yjYfww8I$B8tsPy!15bn^=1WS4pSkkp;N%xy2U1yebVOi2xv!t12
      zNh8UU=8Yu{6H6KvmNXD7so5;4l`N@EEU5)7slp_6Y$tJwB0UX=TNE|@M9m|JrO=se
      zJo^jIGwx-4fpM5|lyN`f7Z|_9_+`egFdkxjh4HHzKf=gTD7KC9pE2<e(+@GjdvnZ7
      zGhSf4$oNghHyOXp_#MV8jI)eaHD<f(2kdSz&t{&(*kxQ`>@(hEyv6u^#&;Nh_!F1s
      zBl@4ChC<dt$spQgBf4b>7iAlUWhbWONu=djxbhtC$UfYc5qu{v;d?oNALM2HA+O>u
      zIf}pK1pblJ_*c$|YVjB!vvsPq{`Qp0k83nMlJtST3!zW8@!4JkL9LfJP$zHl$+i*?
      dUvd-a1nwhFRwTY+yI<o0N&Rut1NjZ={{vSS3jY8A
      
      literal 0
      HcmV?d00001
      
      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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
      V3BM!UPxxQLgPdEuq=iK0{{W{SH!c7G
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO;5s55S&GziXtcqi81jgTqvG7nV<(lqLIXtmr^#Q1Y2w$4ZqEUKfoVl-1m}x
      zX~cNxHg9KVXJ_~0^X(nL6*?A5gwDc=osGQ;Jzv?Qz<tm^cfr&`nb6cpd+GRd`+mA$
      zR}s#g*(||aD;0Xvwc@cCDfT%eJa@-=LXKHzf5i_AU?-vbSukNW>^%`$x$arh%WX{)
      zn5nPNS*5BYLciPlj|4(P2+TMW4r9+{G2|OXK072-R@zX)sHjn#-a7mvzpgpTv?d1B
      zZZ<Bjlo$Asg(JdQ-fh!51rRPmehFeW&$7~V@Wc|rps4Dvb?Ftfi=-J>Z4#_Qmv6nL
      zxYEp>QeSJV5(qnTcz`9BRY4W{!Yu5XxQCjF`#3PMjzhsW1YMTc6yz~lCUc@I<n2_x
      HCA7Z)Dh=M>
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      v!TF^{$*FFcIjM{cB4{@0fpoDkGB7eQ1Kq~JzzDRMm4OY!Vqgc7Obi?V;@mRo
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9G!3u&v5QhIT)3S`94n0C$S~_>FASgWa1SX5D$gbELK3j(#pofaaz>rQe^Zzs7
      z{IB=p31EYX4~H<%;(J_+qEy<7bCp}QGl>tEFl`)>$2t|!HIs=Yc&W5(6K2cRse8!c
      zmJsagL>5*Vee*HotuH|tag2Tr!PT;6*5VJ*{%$xIQ<aH4s9X}l)>t<*k3i^ge!$_3
      WeRw?kJh@y4tOOW!74FB)F2WD^%Q@fx
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh2Oz#InQ+{eq&*yb^ui(wve^m;B@a5YH<=iJgIkkwE~Y
      zLO&-lFJ0e1DJwO(gq?wnkwF|;ACeYE23D|Hj0~O{KFDfdW?Q3(CYF>GWhRxDr0Rq1
      z3`#95O)V~Qgoy^HmRM_sF*0zuRwSnulw{`T6|*yNGcrgan+(<oR{&HToL^d$oa&aD
      wlgh{-3bPmHCq0l>pa&Qkn1PrT7!-^^PqH&`0C}819t)7>0%9H@n~8xJ0I26zXaE2J
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh1nf#InQ+{eq&*yb^ui(wve^m;B@a5HC2js4O!%m7Rfw
      zkwE~YN<SwtFJ0e1DJwO(gq?wnkwF4kFR~s+2C?L#)Wnih6a&5TlYsVVX!;;)LswzV
      z$iNkxUs{x$>Xw<4%E%yzq5$e9J&*}N2QV@)12HSmJB&a_vNLdiSPYy%l8J!}0N-mu
      A<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%TB^T6o&sPg=$4nZX)7s2gTSJmlzT?niv~n0(Nb|2F74ZYEfRx6^RQUz=txP
      zX&V9!#LYQ#`OkO$IrH=T^$p+@2MQ#H@{9FujrF0&9bbPC@p{~~hdy^51u{cU-0K6&
      z>FLu8hSWKCxZh+*RBI-KeC0mdDiT;tBZ(A4#^8>9KYH!hUfb#nY=*4icCCSFd0gzH
      zL)q{1H-?I_+(d(+R1NN9CK@$Ublemjw_>7p-*Z1i9}+PzYF}80pz~RF%cuAEB5+ZF
      z^Hfa+voqC^h(TLWI-{FTE8^`6Ugh7idFyJ+9eG{*hKmvA=D+7e3=K!1PoVz<WLnYi
      zDJrx(qs%BLwFy=}X(2(Ss8R+lNPLMkTBSn~<#pN#zy?JDXp&NBQ(Aq3Oq_5>N+Tc?
      zLsdi|J+jCVL$LCTScN$2k(A~V);3BJYbRpe(sRXw6|H_eK{*b4A_G<cI}Bx0V+ukT
      Ol?E0i0`3t=!u}sFpp@1C
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dQB%`E5Z*&=0Rce@loq9mXah<|#|MXWIx=NCQwP+U79R9LujyIBgrr_B9eMXx
      z`QQ)mM>%e;={4yU=z}lW$=<iS-+sHf{Q3LqHvqhZy);Y_$ez<4{ZZ<2+ZCmc;j_Vb
      z&$d_^ZWCAxPfHGUJEae;b7lzw3l?WoFbRF<wFu;k#!)=Up=S*aO#&(QJ)n+HV5KNg
      z@noj)iNIWki31_H-3kOF@HP&sI@I^gWO_QlCfKSBSaPOecU&q0j_Hoe&HeoZy_@1I
      z8i8`NX;w@Fp9JRPY_Y3XBhBBCy}<+~$zqa2_KgP4u=7*u1ju(=s~)wV(2YP{!<Bch
      zXmcnHHlfdeKpN@1rx#c~6Lr%s*1(~-9pt-=fM_dD>NRQ!k6#ifjI=(Az`)HgFz9wY
      zE?8UfsN(u`JZ>}84=a9-aq178z}gshd8dLY^J7y=^)TI6O%^ku3hrjjp*@c$-NUIV
      zlHsJrs`XPVF_H5Bo5pHf2h|ozkQ+!h_^8!kw0S44uZ;xbXumH#D#83(r3SHAfCx;V
      zQU9#!wQ<#M6^%N94ck|WM{9AZ7AD*dZ8yRz<BjH?Xar&CdaR&anpm|jNd?Aqk=&Z0
      zuoFpy)ibuQf?|bp$-)XE@5cgdx8wJ+((B0f1#=lE@H!dKdTit_*J4cLl)x5e7hbP_
      zlSdz~1|%@s@B(hJn(g4!mf}qI!dpK@0EdY`6o4iCVcdZfgg=fnOiMchvv__NPp4oG
      z{qwLO{r6x|`NO#Tuq^!<Sdn%W*3@|x&(|TR-t+jr0S_eZA#6%pfJf3khAoAAg1BvX
      WD*ex(D6IiI((Z;9k<TTw7ykfU`a5O-
      
      literal 0
      HcmV?d00001
      
      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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
      K-sZIc@B9n7y6gV{
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&!TW=dh6#m9td)<wbHilB%r0up)umjGv6asWhA>>wr=_LV60r4=lC*G+xyJ0VG
      zA^{Qz#BV4s`~~{blvZlrio}mXoEcwIqcr7>hn<<7bD4AbzVp}L4;}%yfK?M2hGVyQ
      zmv1{;kqi=NO+;PU5?|Cz7z{_1$nkm5ajrLSiB`gpyDS5lTwyp=t~3~og|ICw9KzuO
      zvdA$UsmnlIOE;S$`kXg?!BDJ+E$%mXB-MZa(nvfRGaRq)`?$+6rsG+Z+z&ep56W86
      z;kOfKCE{D2Y{d&<upv8X#1k0?Zmss!h_4$eoqjg%f0QhSt!1Bg!)VliCrKomX(Al$
      zbX9zlia41c+^&hltvve$25V`%CAL(Qv56wX30+l{%2mPJzKG+Yf`u3Hl8Ivs(?g{}
      zzDq$@Mq#iif~0`sc$pl_c;G?z<I6lwFxdMT*fO@g{$sNiCNZtrb&{IjFRbqI8s!;u
      z+)Bg5X@;|V&9C{s=x~2N>ZI!VVYqpmVVGNyT@l#2Uv}KXkIkcq@7Rt#tX*tx(nSy^
      zc2n3v>iZT>VcNp0c+JGQ0o2k&`p&$vjSF}kWx^Ye>oO+boh$bm{4^Z<b$7IxQgg>J
      zgEvjQ!7!o2A4&?SVwNG_3WJ2pfUq}`dJo=ig-Upy!EK8Tp85m)sOqW6`?jKO+cK~d
      zPwbbpiMJR|c7oJV0StJhkt3oWo-N|u+o}QYF#PshWdE<YZm3w_E#N)8Pn?WJqR6bE
      z%#bbDY85Sa3%IPfZ^T}BTNzv_;6r>w^zI0%p-+QDw4Wv<!Ml7QWip)>0r`2HXJFg(
      z)#%%y*7mVSt(`icW`vB<?h+vnVsCCkkA#2Es=Zl3JlsP$!}$?sL&>ve2VuP3A9JVc
      z2jYgtqO}&LQA;dKHCZQy(|T564QD`OfF?VTp%aZ`T21=9NIRoFJF|=YT`jg~wMY%P
      z3Im^Fj827~67A#kcNh~mLK;WuY>;G9xng-*^K|3g#|w8b{t%Pv#nLXO9#@}Wy!z-4
      z@}=CL>i*Pv(cZ<`$0g$lrmFYxO3C;Gl?;CE3mqkVhzsj8)sj)lmU6qec*!i8Q`7e_
      zS2FM6l3G6ao!-h&q`;hxDy5{l6w@|Mj~$fpEz$ZrxcDAR_yM2cN8F^nfuHa-enu0&
      z=*(7oF=HMdlP8KE3s}_IdSth#>)>G-E4q9h)ucu_E4@#sHd%eDllL5XF5()lQxzC)
      J(0v9s{{i<f46pzI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i+iuf95QhJ4oW@Pl11${{+Cn)sDUu_^Wf4+v9OTHcqoj$DdVw}(6<j&q%63|K
      zEUu8a-~o6j#H<^F3*u&XzuB3ce`fZ_&u`xWyukAkmKgTV`6d6<xQK%&Z45+w8Tevo
      zx4ECn_;U#w!>00Rgglxwyz#m4Q-(_OjW;}fKeYRvV=*wBVa=3LlJY1W@o**zlz}O~
      zR@Zjte#%A(SG&y{rUJu8-x^r`k=4q1`V1>AyXkmu$;hzf{82GTN$liA#}<Vuv%#-Y
      zqZRN_PDn_{^twIIwOl1o#|}d^tI<fVD9q@Xa(W>n5m6oG&LV}5yA0bm9Dl#4_nNNd
      zWRKlvSYKr9@koRW%ddhcNMAD)YV{F=X37tui~=53u!nt;=me2)XVbBWPx&|$su=0>
      zaKz(4@!Y7TAA^M9AS?8L136(RPDH9Ya#XYb?MXdnx*irqRI>;(<VoW4sYu!~?n|Yk
      zTC?kCxrljVsV@ULi+#}!l-JJRzrs)*&<;Tr(@1sfqKIXpk{WQvD>*LH{c4UY#A`WT
      zC*Hv3BK{Wfc8+foS95%acsIxQNCkak?9+Nc3SQFAXfGar#e*-Iq(fTEBn@~64QF^n
      br^>Yx9^(nrFMo<>*?xo?-7?f^UBdA%?<A`Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TW=Fb6#m8}tZ_FXq(Fc|Yc6eKJH%~)QZSG@P693=Nu9*436QSsiL+ttHS0Ab
      zv{L)TU#P-MA9+HeEhH64r4$LIJ|R`TNc}HW&&;kjYZHVl@667*e&>91_V@oD{sQ0w
      ze5D}3uwzlXt}Vr@mR_;rQ+l~-@L{u{ppBtRh~kD;Da9x9i@abf*vzoiZ$PRHTcq)@
      zW@`-HW35IBhRySacHOiXdZe@wjf_X7fK)=7ZCiT2Zu1&LZ<CrQiIYLHp*F>B;kjm8
      zTq_d{C$4VB)0Jx7o|4Bxfy6~lp}RbVj64ytQ+h?W&oE5&IYJ-QL{kdunKm82I<rWY
      zp)F+=c?g@ZL&Y}iWZ2Xf$tu{zaA3VgX~W<p%}83MdYM=3k);B!+PYZ@Vh=;uD{S1U
      zV7RO;hbyKX&hv1kZWtl-V6X7Lk1F5?LHPAbDG|wv`0uC)V?RT%#O;)!)u_U6_C<V<
      z<zXU(gLqfLA-Ba&<E2Q&d+23Q$bMWabB66r=5DYMB8Vx7ws6X;or-?pWe<7D@T$dY
      zgjW+-WenjsgaN#-Al^hh$Gb{|{g7J5uhlh!05qX>*qMl24B{w5r>O3LZVot&R`8K~
      z7AJN%XF+^SHE8Jh7^C2%D-g;)K@g`H4i<^yVZA0>V9tk&ykKY+FNWRj*vnPE1q^3Y
      zC<uz(Cn~le6v7aO6{HwqB4&gC>-6!nddAib-PU<c#Rx{J6!l8kEb8;RmN$4-=QkK8
      zomRi>r}ct3O@6(eNcEhGH=v5$rz$$oDRyHjwxWv&F{W4ec)gtG*0e}N+;g*_8ClJe
      zX}O1O_JU5mX};y&OraasLB02|l4iu^(d#p0P|4Qg62tBmQ%^);gzBUiXwFP(W~)mU
      z8adu&t0~C&+dkn*sQi+yVup;G)-+$T344S69-k5lF4J}OH`mMOQ0iPVGndR{k~sx)
      zR2`uu*p*t)tfXaW%MG5=_zcXZLb!s0xYI?3_P*Jam>Kg7dpCAIHJwS1pH;9xm$Kp5
      zxiOB{5K7pq;OZ+KWJZ$1BN>Kmgp&+um=eyRWjTj?d_aA7fzX<-L_3t59%-Px=0+80
      zg-eOn=STr@ATT==LKSrZ`MQKWBp@%jW3oYw^?IhqCugST2>3|y0(Ei9tXl;>stZ<j
      zdSn|A#h{r%Q<whj^y?OPl0JOh;zr7q=uT@ukX^1sby_!*{x;GgLIA9b?Az${+vpm$
      z$DTpye~ykv=*e~OUc+0DW2<<36$koP(YK1jw{b-5x{uI)1)<mz9J`IMJUZ?jow)5f
      zNC*ef*aMu7_CLVj;b-WK9{w502RM5N!6>6uJksKE{s)=i1$vH)ypW-+W+?wGcH#@{
      zLk|0C?ZrhL!7NVV5=L<u7chs<k*Bu;G;sROQ>hnF$0BaxD!ze1{(z{15fhlCH$p3G
      z#pF&@D<F5GUZR?xQFK`y#Ay{;?a})<dyh5&3h9&(_*%MF9R=4leQPnjf$?Cg@vRMw
      zX9#bA5P|Y#gjZC;pTp@^H{WgO<|37-)y*?<DPS%{b7Q{|ob%6-rDgC5F0Ei!^bxM)
      z==Jok_;L+-YRDZNcf{Ngmt66{8gwb%<%kzosI89WF*>K+`PkEYv8RtIS{sVg641XS
      zSEqVWNzc0^y+;%IN9@2))S&w~3L*nmse)@XA|8^(T_3syufhh(FQNP1MVEHbrJpy_
      zuQ=&f-Sn+B*c9dtL6+cetfzlMaPdCUzVzt>Md^>?oLrss56D~gf&%_Q>HkUT|3&Hl
      YP3ixGLHtXaFMMgIy|kCfQvf&r2Q}ELO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%!A{#i6r4?*7~GTuN+Cd7pr<62u#kGA;?UBZ(t;F}0~h2ZtFTdGN6s4YQ5;&S
      z2&o4?pdVE+yEYJ&)Rw*bcIVBTH@koS{=NgSkM}Ne0`G>wWpL$BVijt?tz#LCPt3e6
      z<4e_(E*yc1!T6&f9QeoGq3mfFMS<#U=4_6@LSIcM(Ny*Y#F;=oO0>XQ%hIUGKTh-{
      z(P^;*f#N3>Dt#!hQJW8`cLba-QD1t<qg=uZR7hH@cNQVAQo<rUfpSZQ@_RDw%J?+s
      zjwE+lQ7;&Ef>@b2TXgh=nhNaLO8@VhvfQi*Q)HtA7Yi&hkUCZ0jN);?u2yUHRJ65+
      zJ*jZO<R@U-Chd9vJ~zNq)1ybj*cUDH+EEhsWK)?&)}Notp7GMzrL;W10&;w*kO!MH
      zc5p1fp;0C7zGT$22*7LHVyW@r2FpJ!_7(q2<N!Vsf5hCcSY@<EJkfZ~nRz_R%Hza3
      zDjDZTVg&b!4d({cCqB>Swy5Bn<uV$GO1XHQHnGK6;0@kpOg=}0DKvgz`3EOC7-2=b
      bcs@f?$OQ4;VtY<<_4=RW;oRgMi`u;hT=kZI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+jbO16y23+=%i^w5^e$!j2f5;A&sEi1`!O7iA*jsF)q0*R%ND~DV*sZ`jSQb
      z6Z`>R^(9<fxOmo|@JrNP-5oN6WG!C0s!pAAdY^rEoj?D1{s(}Mv1(&LVDf=nmyf(|
      zsQuWh#i5d&WwWoTa9!6`Mb_gW+^}H@j2Kt1E&ZmqwDv&NV}adQw6Ei<0)=8}Rlu4J
      z8p=TdLoRk<x4_=2_SIt2SySPPTx%<Vv1(A4?Nu3SbIy%c+|rT2$?98yDGN-rgW$)c
      zyAximn5|aqOLrrvSK4wt2+OHCtAh!&-z=Bz^ttYocB5=#RA4maA&GU{o0CzireX&p
      z7;>;52W=b>7;pNCS8vNG>dLs~^;7BM5Z)y-Sp~~su&x^_G}UK#GhnkOx?IYjroWnx
      zRVdku@*W()xQ(OaavR9jt&8_?jE(TsBerLMG0)J`w6X(%_gzfj1EOfEcqxgyNn8oS
      zj{ILp&X0qSaKgr9p9Zo!7bj7q5Y)p&wpqo2-YPPgluNhGKc`%r!nD9a{<D^JyFnPM
      z#;dL{^hoiwKD@dl<{6x^;cWp(8Mz*YawBpn<+B7JqpFTrz+^FNX0K5Dh%{~_@e`c4
      z@u|S@Hi_oO#RXH(U_J0-sr|^b_L7Us##oSzhGGATi_bvO+btO_rbJWztZ@X_TwKQ&
      z<Ui6sQS3C&8}khpU!uZ*I7mSY6yJ#Q4ajZG(fe)nNgjSkMJ{ltPtw~|vf?1^_=4`J
      zm5pxtCQ}Ylk>njG_DGS<eLV`y#m?t9pp8;`uD0aIyF%RQX2R;7BLWw5Vd%ii6qmiS
      zyfr&dAf|L`K@xHnX){2MWpTa9^C2~3s<0*~wE_nmIDv$jLj2l1o#QHub?ONQf8%BV
      z4!;gppaKi?*u$NhIdOf5ry&euZ=T?9dhVj_?(Z1+{t3nw#>7+XTl@uQPd~$9ftL`M
      zt;5zPj-T4ZhmUd8>`PB^dg>X@4d5}HX=Azg9o<>f&;R~4y@}6Xn5gt(_9edhmH9JV
      zGbx(e7{omyxl0`PF$#%stf7cHE}?;Iw9TW5TWF=;S6M9a(e^c0v%85Z(GOw;3s_|4
      qVSbmeOoGPwq`zTii_s2ubFet#ITT<<Js)bi-a?Ie1mg{^Z~p_2qMcU&
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk2!A`<J5QhJuN(Duz#zfx$E;gP$8cCWMF*JBz)(Mo9-DbNrJevm}z=u+2YfQSg
      zf9Ie1znQP^k52%1xQx*wT<_GoI;52=j89j~?D3$v@`W`qjtG-bO-p4q>0-TO?FnNs
      zWkzYubzQ7WCQwEgJy=tFW&Eou8;&G^{;UhXW%uH&IQP+yJi?Vs$n}=@{A_*RRF!p}
      z-$IY@3^weStZHir(R3!G6Zu)0`rjwb!Zn>ewP=Q0>U+X4w~f<0F9K51-Q+en`@)Hk
      n5#a{M=!=R&B2GjPI(jJjw4=|^lS7Pfj&P7MCSf-uZSTb|x~@!?
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0es%^XMh5w;#InQ+{eq&*yb}Gyl9Hm#q|%a9eMcCJoq>gsK>(yk
      zKPNFSUEe<`D>b=<oq>&!K?E$CnXez5T9lcXlUbFRl#|NHz@462;+$BLnx0=&$;cqA
      zq3MIr?VOWXTx`wAz!{vGo|jlsS_D*Yj;X>%8>|P9v#jlarmzET@=MGGnjwN>MljG9
      zdFem}T*3LJMaijdnIL!Z!TqEMauCo1j10^`%nA$*CZH$T890DEP7sfQ3&`hY-~qB3
      J8F;}Wd;r^;RJ#BG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TT22#6#mA`u9qw=&Fl&xq&>6*K@UYBQV<0_2tL%)sDrMIyS6(k)lci8AJC7A
      z&W>wHKIqfgo$q$e%=!NL`~q-}BNH)(;~}5$H*4(Kj<UE?p4|zQuo|<kmQW@V4Ec~}
      zN$&Kmr_NAx6+@i&dJNUt;}VOj`ZI$;<c5?CCrkMhsU^v-6x^enTD{GX?YfTQw&OpD
      zcZTBBW!g|va^KgIbj$8LTm_zBC@)a1Pj56UH?wMU84%MDuK|}nLup<z9a9V9eL?eH
      z%%f4}(%Bg<7i7AR6_lv~_Xkb4M=jDF+%uTAe>)m0nxFo|OZCLaoe-Sx?GGxZavPq<
      z39r`bFDoQuT5jNV#hoolU6_CLv+z+328yC>0dlkhNf-!s!9+^eG%~tou|~Wcv0_*!
      pd?VuJQPB7%w*K%U;U#SA^D=gHtwj9FKcC%*w}*Z5W;oCZhrbHLvc3QS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+&vO%H7{|YF8j>{GLL2!J5h29_O`{EHRkR4i(qg3)G!O;6yxG3AZ)dYxci%9S
      zzsZBn=rHJv9GPKY@ZiOZ9=v$*;>C-@_`Gj6A!M_YUUuKzefIM{-|zE0@8jn`{tVz0
      zZl#f6xUk9Z@Vk{QU%INomGWhyr9`FLS=EHPuB0QC6v0$&+qE}*&z1MYT5m)eNrrJv
      zsyN(TuUu(t3R|U-VmLaSpGJmZulZYgm74G+cjP_Za0EkIrxXaqFtswAG|!MaBVDP^
      zGMt#+$q%JELvq1e6IqO4kA)n@8Ahf{^)&JfhhIoqZ8^?Wk4zH&;$2&8De1Wx>}5FA
      zHI1w)Hu-kZ^;EGTiZ1<;#RT?i>H&s*?S$G6)yQafeZEv51;eWrMv-OMvm#xw+G;k0
      zf2}P)zv9{4sdKV~><C{b)rJfhmUf_Tc<IP8t5*T3=WA<Z_fY%hOE+`ag`*aZpvW-V
      zr7%nmOHCJwwy8SKjtgZro3?Na#~HHS&B%ydwj;Q&b9vLkj4oi#_FToK8(b3G)LOm9
      zFE~61!qiV%cnh-(8JjDy?)eluVKQ&ms2$2M)}ht8(-L~0cP+f5HK)YaE$&bXFV(i)
      z{ox)TSa=WbldE21lOf-O55wrwy6*3}0a*^UQ73cG!Wn!-X`1G|&26#Dn>0F^4IXUh
      z);0~jtV1tYsN!RqDj6&`w-o86RyW3eVqp<Wq{tUd?~W09$-**b^>3H;isU8(8hriY
      zs)bd<QC`*eIdP_@OSg8E?KKOZ;d82B&1?C#Sdx0m4^{^qH?w;Bs6CfmSNNtFB1q!~
      zLwWc~&~1E%Lfol^BF)|i5+o>1tArjxIvID<ItPocWAyZui2w>S_p!VD2xC8C;zs_J
      z``Gtzru+j6-%(5g2kE+>IKX2h@dOz>MIO&^0Kech^DRNw0uJGIy6e?p+KUE7&rZ10
      zIpXN3+|2hVlpkO+fp6%s4Np-J@M{k&*M;Tq2Br**W+Mi6A`1I02386)qe%*3r|GV@
      z&+5z`pv>?>b=KtkJ9+nq;c4F}GE8n#4_HX)*H?+A^k+;;r|>pGCiT$8z~-W`zhYn=
      zvuG@1V5g(7zhht@V%}s%6Bq+Ko4~hyW&9@wc0QCzGaAC?=-%V}0*kc7zlPQCI?eK6
      z!o?`zzkviA{gBXKw@)MPFcu@IQ#U$2Vqhy#SSkkAsT-X<gSB0WXk)p7+UNipOsKK`
      ZTCwo~gaodeiq`Rk>2+PBFL4vu{{hI~(whJP
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~&q~8U5XQfWZDV7#TI;{|;z3bcFnF#Mq(vzdFVWt&=|Wf1M3Sv&-^!EV!3Xf6
      z#EDgino5zt?#^W9Hy_{b>)Z1SfD=?r7=()(aVPHW+fe!17Fvg@Ki1Md`#L#NUu)$l
      ztz@+4JoxS~416__gLdF1i%et)?f=5QlX8UpbkeV(i-dAqYOBC@WT=FvCZg|2Lhe-g
      zN;e6$!|q(L#!-)uX$1pmVFAkp<gr3HnAM$>{LxzMDqmiXM|~MyO(m4Nfh)Y8U|B5b
      zGnvst6%jf!L?y9v8Q&ljMB=ts@(lD3^SIG+f^q1|a}^s_NgaJ0d&eU>zAwX;C!$D3
      zCUyw*bW>9ygz6tp2fHA4+&~s4zf9sU4~y3&j+&e|c+b`9PbfU{$v}};E6!2{S*l`{
      f<IQOm)==Vz>#>e9GYo8SWbpqj-eW3Z8x>gZkb&ty
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~&q~8U5XQfWZDV7#TI;`h>7k;wV(?rkNJUUe5u&|s+J&yfM3Sv&-^!EV!3Xf6
      z#EDgikf6xI?#%4$Z@%5xxA&J<07uw1VGw#Z;$A%1ccJpNEwm1mJJHfU`L-OXueI`&
      zRx)ZhkN$8R2ELlg(Pez%B5;$LCUS(+{}O+a3WR1lDZTPMp&IAgDzF_HD&eWAa6L&V
      z94lYx4#D2bxNRD-y+0u2y1__Vn8RWTMJy3^vk*z~pGV6*<;(u$)|KJaOh=^`423rk
      ztc`Vj1#^0=B0@hySrYsAKC}rXk?0`dAcLQJbAsgrlW-`{RQ!ImR1t^qV{@Hz-<M(6
      z6Hz216I+B<de>4Rg!*rP3Uv@Sz(5`*|6AfwgvIj$dmWA&ycU|RXOy1UGEnB(ilfv(
      jo_4Uz{`xEnE2yx?`B+7j83xwaGkAZ4*O*G!L=DylhBWow
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~O-sW-5Qg80ZDV7#TI*N6co6(3G>XScK`Me!q_o=mwq58-Of=bu_Fs7tJop3r
      zQR1Xkh>(Dl!0ygu=9zbA_T%&I9l$ZRO&Emst#}kq_PwuMZ40e^)ep6_&wfr_sc*D$
      zlvXm>?LNDMk?*-`EQjqVqaz<e8R&Sli45WVztrEP9HEv>O0PaoC`UQA^6akkm2lKp
      z^c_jaohn!92H|ACH5;{l&?97;-cVYY!(st>ED`q7F!4)FQj0C+%B%3MFa7JOmQu?b
      z2&X4lA8Y$|X7oq}gieaOICi#~)CmO<n<(KZrAAs`nP7Fj&>zSP74@=`C}uJ&u660U
      z(r-E<2xMSli%?DOcOr!Fr+0=O5D&vZ7AC)E;x7-2*9Ep3>^FGN9adjac;S<QBCl5D
      lr5dtiW0~#sX%tpaVvFOkiZU|{tg&VA{|(+FDq#~9SYPDf0PO$(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~O-sW-5Qg80ZDV7#TI*N6co6(37{!ZHDM&>SiWH;0Z`*~g#6*&9(f%t>f(L(q
      zKT4dm3K0^p64>3D%slh%%zk{ny#qMHrU`@4x)($7WIqPV)3(q$P@RF6_W94rk@`+6
      zS7{}~ZRgqR_5<HjBiU<38IBBwsw?BsCNhMJ|5AUGa)g6qQhN1SLOIH@m2a~=C0sQU
      z9aj=^XUbE$PB`9ePDicnwF#Mq-;)+*Fke6(3xu6CO#Bk#)M8V4@_O*lk-_amOR4F1
      zh1(XakF|X}GrF%r!cB_0ICi?3)CdI;n<(KhrAAs`nP55oAn3|V74@=`C}un?u65;k
      zGHAFW3}t9ygHTQGcOr!Fr+0=e5D&vZ7AC)E;x7-2*EzQ8>^FGN?N?t>c;S<QBCl5D
      mr4wZ76pL)HPNJ}c5?dUPWt5p=V1+G%|F7{LQ3>m)!1@C4lmKx6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+&u<$=6vw~gxLL>EG>PdCQ%Z44pm7W}E#+rIi%Am*4QauRMG73o&eWM`y_@ci
      zqqbbQaN)v*3;zQLkcy&Gi5`*oqY!V#>t(5TWy{j;*nabw_x-;2=I?+0_!Gb-+_sQm
      zxW3O1`Tg2~FI`pRO8K(YQ=(QMtQtaXE9pojMX<2#cD-GBSMru4;t>|I46~Y4bGX~7
      z-E8fPwz4qEaDFu3LXP2t*)6?VL->+A@}WM1!O|%OLNP3CjwUTLOs+^*s;dka7RT98
      zX)<J2y<L&V1ZHd$Fv~EpSZP`)GMxKQ(pJxLZh2&q@Yn9Q#etHZo5Kl)vyo|JRk_O_
      zlwD7iTcYgJjy&dYN>fiWoa`smcc?)|yPf4qa|#U4+n7S0VP;dhVyo9}3IBFqesR-l
      zbEnD460#%wF{}1uz_31szR{&4%j~!UQqOmH$?lQ%Em!VXIL~k~xi0ZuA!j1f@|edA
      z!&G!A!~7^Ex~`N}-EqdQ>m7!CbOgC|tnCQyGZfmMtGIN78{z?VUA!i%4i5rSRlqU4
      zZes~mhFqH~(eZqWoikbX%hwNOm>$rY-02Cu@v@CKP^Nsvy&iYy;Qy7qKN#T|Z`*hi
      zSIBU$wa-wD;lnWctD{^0N<x++Ez`-Y*mw``Q<|o4@A9_T;$51m+#V11bl00+-_W6T
      z8&`3S22KWR-2+8>X$p)LYc@W@Dk<_s*E^&w*+4!tS~qNbZ1yOx?)#kfEG$;O8Y{EU
      zY<!9vRHKI1^V?!w>R~@qPr7wXe^HlixUTSx@glJB1w%Et@e&~nrFcWeV^F3MoIr+5
      zuxORhvq%@@aatE(({q}>eQhFu($W!*SO3EF6U^-tpF6_Ir%Tn}QTmNyGB`ueQ^Wxp
      z$YL8gG*QHtIE@{=VE)U{vxKvFk=}ZBj?QBAdC6p<Pg)_4j><j3{LT?xeoE^;d6MFQ
      zZ(^ieM9N_SuNcy+xIpi5NUapoVwh6}vmxm+WuVVa%c)~X+AE3)b7Fdc!u{7mO@*aL
      zC{-WhwG4iFMwSyxrVz<0;38@SVS1=iV3&qr_flX3k7(>tU~dh>4pU(7;9Zj$O;`$S
      zIfGxHk@;;3?1NAy&0q-A8EQZC+Ox;_kPTV(oniG|&quD)tR@q#4->vmB&<hu8`X<H
      z#MBJxt~+2*wDqWHqewrdkOmc_dnQ@cC&Q|KN>oMHO)_DV4OQvq1VRQ|rj|ExOIL+h
      K44>1S=l=zd`q~5l
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~-%0{e5XQgR%+1ZR%>L<37e%Ge(zPLkQV7zG>HSepG_mf+?lGd*sTb%f=%NSc
      zp`uwWu+oTFIOojl%x^xvb6($`UjQ7UV8bGuUa1>(>t2WK8&??<a%W()d;EE7YSS|8
      zv0)u;xBPz4;|o?DPuGI(c#(|+q4r<cS5lI&Gnw>b=o}#zm%1FdO&zlG_%2pQNFK4z
      zra~z0HU0!E@3#qwYS7aTX0VV(3X6o@Y2D+Jhpm|g`}%Cq@96M+Bq7@fy2@)SktLEo
      zk_mIk5urXs)HwD}#+M0cHFjGfc?$ZQdD7@KgF)EUCmb7=pE&v;_D)9BeP4%FPeqZA
      zY-|!rlTDonAryXjI@kh<;}&LN%gZGBQgCFQm#89nOZH^3^n~=IoGfHyb%xn{>3P7C
      g#A~A}EF&wC)MEuXVOUs|$ddo-vd2`y2J&#;0dg7Xi~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~&q~8U5XQfWv9YmQt@U5M^dP9M7(7=BQW2C=gxcOW?TRaDBFR?7cT(^qc<=#y
      zC~?v%L`YC%VRvVC=C|MO%=^dd8-PP>SuhCg8*wM@o!e0P+7ViZ${lOz9Dnb+Qunm-
      zlvXm@?)jr&sIHW7J$VsloCj_)(t=4i`7iM&DMzTKlhSXVBb4KKM+Ht-hDvzqA=XLA
      z9VuVwCc)Xwcx@W7vDYV<tzal^%wVB_JQfK%S%{?gNoujJeAyX~Tp3<Yb(Gq{KzMz@
      z+E~|@)6~~0B6Kp8C9!|6LxWHdi3$?-Gx(`5C)nL!91i5EivO>YD&ipiY`*8r_hs1f
      zL=?%$!X}}fUbR#Rq54}-p$g&x7?_2{eM>y@uz8+mtI2+Y*Icdsg2FTJ3>0~`C*DWS
      idBPIgYttw!qr?`+V+Cbq7+7V?;PZ7}V=7?-71*CyarP<z
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~O-sW-5Qg80wXv~Ut@W#3JP3XijN-9UkcuD_DXr~&+pf5hCYo$S{8yeT9{d6R
      zC~?v%L`c9&V0ULS^US+5`|<hq4&WGDCJaLJPCSYy``%ZswuRQd>V;a`XFsR5)E%uH
      zrIieJI_}ULs2e4Ej%-F5E%^}2K*ys^WC-W~rT!*m35Us~^y+hjQj}vW&u&X!2}eCg
      zdI{N6<tkkxoa{BGqgMC3giPHVNDDJq$RmeE!fqNSeu;5vp`l!P6%KpSzn*9*HoU%Y
      zx`Oqwwr^)f->QJnN>LZbPB)V(AunPRB^;&HNb4&TthN{WeR-jxUX~NZjEBXwE?rmp
      zbw>n&3`}eiD#`s$gb@Dp&ae&QVHlW&$?uu?%faGxo~;`D4c@Z{l@anUd@@kr)f#(8
      kob!q$w$~<6SVoa8j>ig0%rLOZmcjqmd5@@s4U}Ph0j#0{IRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~O-sW-5Qg80wY9NYt@W#3JP3XijN-9UkcuD_Dc1JBtt*bCi6q-1{wq&{2SJbi
      zC~?v%L}<WDV0ULS^US+5`|<hm3g8eM8CZnIof@bI=RRQ1ILerSJAI>_lb=&lo0egh
      z4eM~L<@Nk)zG2mIbtB4X>R`ZK9gof+ML7L0^*1R^*dI?yu0BI3MmY}qj>u!>@?)fz
      zkUnOQO_gx8Q=g1l*=-Y2HUC=Mn8I8RS<Dl*lQ8j13{&%U_Vh)+*U`b%NK2vaca_^#
      zqEEDaJ5%PCL&9Z(x;S>SnN$cl6`LsGAfZN5Uxi>d{eIBZXB_piG*--TSW@fU^K?*i
      zRT%0pgLOiAe80y+2!DEK*aXQiEKDOK@0sMw!j^Sbtg84e+0%RFXXKvbWFarBJ@mdw
      j&N~*wUKvGU5e2a%9!n?+!@{yymi%9pJ)#oUP=fshxK#kX
      
      literal 0
      HcmV?d00001
      
      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
      zcmbuD+jkR19LK-Y+a^nZ(n6^eXt)&Gv?XA;Nei~N6pN))0@YSgH|aDiZg$INQ%LcC
      zL45QPkMF+X3q62`>WiM^qaHo}33|Nz2_Ap5o6B~yDGBh<Uv_8aGvE2nZ)Rus>Awe$
      z035<?33Uv;SCvKOMs&ecbt|e^mZ>JP7LN`We#N<U$x=1dQh7!~14FZD5Y-et6+NH0
      z%99pD)1a!W)+vVi?w)Ceh7n_q%cw^%ghn(mY@ASaKABA?xOq`YXq=&C!bmFGv|_5_
      zIsdZ3x}s(n`X_3TG(dtfIX!vBG<0=|&rPfRI>XuSDi{Mj)l`zOiD9$`MSJ5eIc^(e
      zG^15GvYBCjbppxEP;pLZCK&csqnTl<5`WZ4x;0hwz*|qkGYn^*)CLbtMmsu$6WbXg
      zRVyVk_E#9ahfhf{TM0WQ68)@^sLBQ3$`Zm16@<8{#bvW9Bm9suI<Z^$v4<gAn{YCv
      zuYwl8p2(TRnjKu=*RnigxyMm4N9+##8c5hrDfpzxQVA<#A9{pK5r$apgCM64uH}^9
      zKpy8-oSTbkl2`ARUjqpTp4KfNtc-pf6mA`QoLfGP2gEkMrdxiEXe-X@X=6^Ew|8~1
      z6-zi$<L-IMMR5Bn<1kt!9ItT~a^pO^gp6b8kU&eKLRz@HFD+&_(Qk>#IDy>~=xbQh
      z3Mj++<fDv}=#en|v}m8nlQD#Y3|kkusm|w$BOg&Lo-)iF!%=6&xj*~^wr|dx5lzWt
      z@;in54MQ-lrgX*1n)KNptO7C^IaSUPFD1Oluv6?RP6v}&O`9@kH|OT*8%e%ksfHfF
      zS%x;lK9_{kN-nG$Rye`KI@OhN1`}dMoMYJH780jJkDj8OmvEjAE2SRnLCKiJ%OPAq
      zobp@E3}-T8JalRqGmSLEW;ZGC!mNZ#4BI`R5hY_4h03^yAf22Xsp3FXs_h)BC@<IB
      zgPT{9d{Rl1eVbgBoURxelbW)$M1x*^qRK54PF0(|jf9t^+cVSCik77=#@xfn3-JOf
      zeh`XjL;Ue7K&7c(;{ZA!CLj?)5_1f)ni<zKmZB#~>#9l2YwaQL=NUSMn`=PHFK7IP
      z1RpcZyaPwv!X1}w1J<C~+vV}Hc4Bx{G!5WwhOT6OrG*VMtP~F4-V|O3j&uk*42E?n
      zZWYusw01kES@+r#NAPPQn8LUw`mQS)o#5#Vxx18V<C?}(iZ*PfvT3fD(ldZXx*C);
      z&AT*-C1umXmJu#gk&(d!L!j_X>%KS&hFy=ffu=TYWX&WWQ^oyYTQQZ~_m2ZYI30<{
      zb)B2`)Nr~lw7a)XcRPj-cadlNX9&AX{kC#CZkJW@*_QpP`E0SIw9?gpl)8(`mAXqS
      zC@rhvue7Y1k5alE(p`=&iNFTb(T>?f&k{YwC^CwTk!1wFp&xaS>90%?7)Jvpu#SF(
      zoJthe(^HTj8;gK?yDaz+%`*gPxl0usi0A`s)CCA)3)=F4t>u7r0odjRoc92B<N-U&
      z0i6P{%L|zG0QTkqUFCp%0?_RRa1Wq259lig^b0`L3s~>~p0xonKNAlNz)>&YrU&4d
      z7=w?A#{}RxFW{C3;FuVLkBKJ)V9*Qr!UJ$jjKRmmlLGL(7x0w_;FuVLkBLJ9@PZfc
      zwFlssID%11x6@>39medG{+tqBq<UB6N34H{GczsY%Xn!e@*O76_4eJv)EzYT-F=9Q
      zGs~D>p^Ei(%5S4J0d}AML*xNAuy4`I9-)J+U<do&?l|l~@d{q0HiX9vW+?$$(Sq0L
      zR~=rbx6VQlWtXWeh&S+NQQlj&yc}`F;@Y!XUT@?clsgEJOkOUojg~Cf&m`^_689_G
      z*l#56cUxGSgDVQ#lNVN!Bi=Z2Qn*r-quO$A=jB8qKS1g&ICj-`toJ@NhI?4}QW%+;
      zX~{0*`ij^k9LshJ0{a62_9t4{U+83i(}njRbW!YK|GLygaDyxo|02j?iL5E96J?jF
      zqz*Ujzwh8(iWg{74pY7NC?2EuKE)FhKcIM$;)fK6D1Jn-nc~M3+bMoRv6JGb6!%fQ
      LMX{gaXORB~k#cFh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+fGwK6kXE`E%k7*K&dEN6tNfO2;PGsnxY8=(WKZ!)Q4%Elxa@Sfzvsp@Do0o
      z_zgU0qL66f<;lcv@f(bLrj=VTKJ;{E_FikRz4re3`_mTyQ@9gDh+(|WH+ail^QEh7
      zu9Pn;ffDu{S7KQ<L}}AiycI))p<id(4tHzz<4RprRSaDW1N*N<$8!a*I3k8P!=MRB
      z&n^jHaz}3I2(dKHwJiLm^xUWOa|~>Op{MA%O~qYR=1w4@zg{o2Lh8*HLv%ww5N^@%
      z1xh+b+zdn4UFk|SOB%9AgSj$8r0Bg834}3dp&vsG;cTuP!!X0yea%aO<2>=Gci}&1
      zRmGYjQE{AN7&3J;4ZfLiJ(a15j7zBrq;Oi(ouQ0QRpUsBjB{%<xpFs%-$F0?82T2a
      zE0%&rMfl6@?vsmNl{;llj*uIj$B0^$O@;~6#Q#P?eaCB}Z4*N>n>*S%`6AW>?hxZ4
      zh3%Qm<W>@-Fl*rg#uLcnatsBA-oxfvxQGcd%&XL?M!Uj+!D|hxyt%3kHnz@drfCZ{
      zu2M*OZ8vBK{>nS(k<Pto;To<pBuZZ3SH(lAS7YGt(oJejkug#mMhH>Rx?%*~(E3l%
      z28UqLkBp{s6cHNANs1)t_QD{5bbc2Dg&*kojMTGadKV*K^M#KXeQ(g`=$j%WFiYrr
      zh~qw?ix|cnGA0(HZyIAbPyhO)Ytg!D>pGQebEo?G4;Xz%Ng-(3E_wzY85+x+qa7Ni
      zo$Y{^Dch7Nd<T1rXn0$*6uyD&;L;9q+k1Sy)DW;j7Ca{dUj9Sg6-*jAG=)xuX>$kS
      hns^6O`;2XcwF3&{dkSeX$K!7t?Qs2A{4JyV_8&I3;d1~0
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2y<#InQ+{eq&*yb}Gyl9Hm#q|%a9eV6=XM;M2lfrXJl
      z0HjVoCowNw-#;lUHMxYHfsK(t9=mS1Rz?P{;QZ2}<W#rJoK!{zL1bg~Kze~@FfuR$
      RF)Pqb3_zM4NHQ^S0003OE`k66
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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|Ez>3s-P{X;E^jTV_rwBZCN<<Mlw60$mDp1`x9XJ<kO64Lbt|1ISmL3|v4F
      LMh0$>I0Fv=*c(z*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6&u<$=7=7c|vEy!&=4YX4Qm09Y?W8eHpcE1c#7&Ben?T*VsyJ=zNwU>u*V<i2
      z0VEJdgpjzyi5sYeRHBa5O6?6KE`SgRuKWeukq~coH+D#(mV-Sz-+Vvb_ue=2(?1U$
      z0XT=7aYO`CxAjeZD_3(2%ggDW=NKz>Pv#b^`bOzJ%hR{whzcB2UO7{@)^f`$w`IkP
      zqg|l4WzCzmCG{0k#*q-{^A8L=SCWpQo5uU<gjrmFTb7P%*w&50B>{0o;Aq~qTu-;W
      zvToL8?2o_m^5eM=pA(2}Dg&Jg0_}5#Wq20_qUl1W%q4GEWfE=Z({K#^0&VF`xdQ^n
      zHFTm&psQ$Da;d(tBAx3&`JSR((ao|>NQ4s_qu#pV3Y;!JjfYu*#F`8+`qc<3R#9!U
      z-*m>0-^<Xf0ym;z7^mVG6&Tw`){^a&>b08fc(S^%RgpE1oUq2a?yjre`03dt>S3+z
      zFA!K+Kp?FlgCT(qLR(&4b)~1Q6B;IQR-lvCz&Y%;Kb?7Z57IDE969pV!WWq5>xNmC
      zP7+h-Q-9MMX7B=)&}%hmRRvB`i37>PD1w{9c@1ZvbTq80+~Vp5Li8SjLEwlZ_3Ab0
      z+U6#kPc}Jm<9JnIXm_N7`6EQBZ!~>W)30fG9d8J9vuQQH{xpSspV{sENs~SsM_yof
      zw@|_2_!-rpUb9jH3j*Uyb<<2q7LkswbW8b@n)3Tgt=dkiV(PA&QY2hf^ZBMgfBFDd
      zvzf9Qk}DeCLNOSxyo%$^`p-c5Ml!mD^KmS5v|Cd7N2<&_N}X#0XAdiLpmIy4d0ZA4
      z4Fq{2Ih3Si*PV)7G}K-0YP}Fs3Qlx{60{+L82GN>1UjHZIl`wV0*yajN`7}BN;<lE
      z(!<>%?GdiY><)UfgZD9T&-Z_Z|DDVRxb&|xY7@_LHxPI;`yh9W^Rx1Sz)1{+IdfbE
      z&tlo{F>r?;5vX+SzVRbJjTShBX(%~P(V_s&b5+3!0!nS)6x;qT%BD_-c>-9U(()N|
      ze!eGPqM2{(|AF~(PjIXm%o`Je`Gh4E2Q#XZYy;!fIsRv_PX2)I!7p%haPrYth))hq
      zZ$HG;tsOkC{2Dmdz>C`q3;G_W9KhG4>Kh7h2fet9<M@^czrzUb`4Cb;nGiyfFUm{w
      zrN$V;1-#5mQT3jLuqL@Gjv{1dw@Se7<2?<j5l|vU@e0|EVAlT@nDcr5fcz=pXV}oi
      z;>3>_d5HO2s*RpYJ6NQ((7@FO-exa5C_SENQZU^rdV&G~KQq-YoRD8R9lv3e>o|V*
      tfdtbs69S3xl3c)bLXWC<;;GI2d1y0yZ1+dD?H{tg4v7@FL97v!{{^#`ixU6<
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*O>Wab6vzKBP2<#rwuDkj`D|$#CjktLqE<l&lu{KGu}SL<t4SEqLB>Y*1R*ZK
      zK{x>`Bo;_)xdV6L1c*0|iQ3dwv+;cRz2E%i&CIXA-+usjfV&n7gvML(L40)IM=H>+
      z&^l86p_cBxh>v!|!PEZ}J*h1e37h%hCu2*5T6XLyY?-iRLR}TQJsBzCt52fuOTuED
      z3_TgeDhv*v?-J+*;e00yVl4vg34bVO|9D@1?|lAwpHO<F0;L}lW}JpcD0afv(n6K6
      zezuB@87x&Wk4voMbQ2+81aI7qFXFgucne(>$d|)+eHk5$1gqU}Abd}-Gz+JbMSY}V
      zLMvfRRoXV8K3ej0`0;YFh0(lbG_Mo3@^Z#U(azk*-1wXc8#$IImL)jOt7!s9e(T2X
      zHsN7z(iwvGSdi;jn`&i3Gp`!Qx5D>0Euv#28-(q=w6UYf$*g02ijtUQg53*;(LnAg
      zbE{V}9@jl{->?S0x+q{47WY;$2b<e-{9FsDpve7sEbw=cXSR5bxV4(q3*T_@YZA1~
      zUz>jb+bCfNm$_FNg<%C(cw`W(DdI`87*KAu4CCq~;~8u0C5+{SSxy<8fg8BV6hpg}
      kO<S9!9Wd=Mhqi%QO54n))hB6vrVVmw&4kwC{T6WNA3?1_F8}}l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*O>fgc5Qg7L(>OJuEuj=B6le==;-(l5MMXgf6sVwz5K`Jmh|@Y)bdj+u+d&BN
      zd$@BzNF2Cv;rDPx%x+9160h)OKgKi9yfdEt`TN^<0JpJYp+va(M!Xa6-IG{`sVmYn
      zmfkS+-6tYBey(f>k@xVgwdbc6%7jgG%)h=B!jkfJW#sn!Sc*V?5MJP0s1lrfN?umN
      zVxq(Qew@fCJbL<wKnH}=ohVFF5vF|+4E@<3pT2wyPhR{YRPM=8ruPXmjb@)v?nJLR
      zYn`xFFsqFjEY&cNb6i8CtE&h^_}c9RB1zf`y3m!O|7`fy^W#HR6`|gZ1|sMSu9WYY
      zv78>ugm6nUig&tAXpQnt$4vEz^(euYmEcvvt|@T*d)m1b&5Z|u&@||s&P~{9ye#ZJ
      zQo62`ZV>JmBmX1S9!urkI>plyTvKzVD&u+28rx8En}j`6>{zXe$?a{cXonPmVE3Y7
      zJn;9WnyXdQbJVXFYv4IY3A3>Hw1PR<yr1G%UP29JKF?!;*G0DMvW<ARocfusIQv;U
      zE%R#g2Vf5s+{Jl5)kbc(fQx)nh?NZSKqmvL&bDG)nq)j?8T*>CteMq}!4bHEt4vX}
      lYx%UbN!lUPjtsQxxRKE|^J!a?G>>TmBhAsYZLYV3)*qS9SbP8g
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^+iuf95QhIr(>QfQTS6&NP7Q~WCbVvWqM{%KN~t)c2$427Ty4UNE;2UQYlOJx
      zfqI1m5)Z%~4+LV?F_8#1$TxeK-TCI9@s7X!{QMQb239Q;2-jYTcjCSCCQzPsgw}!T
      zM_M`$M0oJj*q+I^kqq^{-zQzEEffjM*?xcCEfMC;T}Sy&R|ZPB>VxRJ(n6WAmQKlv
      zOqdH}L{A2x^1c0s+XQ+<IMVjLPzz7@gd54prSH3sKYrQ$K`7l;p3-*+6ZMrIq1g6c
      zaO5hXnIp1|3Cve8gX5e_y%T5S3h$-Uc10Mr40yJqJozMg-Iu|h$&OI%_yghg1ZT|q
      z#8}h^DkR*98TqQ-BCHQ%|LvDrFV<y*pE1JE5;n7(N1v;en%UIoQ4m%$bf?EBY}B9U
      z@)#<<U=&{@+|2a;k7Ro!nQOh4PXgh3R-sa}<bFsBT{p5<2wPeHBh|(ywbtu-s%0ny
      zyX!~6K<+5>=4$_H+ql<I1NQ<7n1scvMNGlwd7A$S1yoSv^$cctoMX!-+lXhYQ9b$z
      z#}4C53q0C<0BoUzTR6e1%J3Ra;uP-;VlhG7je`N@M$<4(k2CJGjGdUV5HrgOgFSE#
      q=b2(?OX;-QIBkz<`x&%LxSY_I(`i@6X?>;*GHH#N*5rH(xcUnkhilFN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^O>fgc5Qg7L(>OJuEuj=BpD9rCLF*JKDhfiNlnPK(A*J;NE}O8Ti;RuzO@%mf
      z<;QSB;=m8!FCkUTIwlgq2KlldvpdhcGv4u!<8R*qY+~I)fpGh+I1(S6_o4E&BeV|H
      zV5Ft<R78g_jIA%jBQ=zdf1mWFwooLjW&8bkw?tSncO4Zt3{%2WAH~3v7RrQ;bV^oa
      z!eSI7Tp30x@DHBt5a>DKWH<05Eqv_?ZzN}5wcXF38b6N-r3cDa`XOPa-f#)UZt$8T
      zR|%~gk!{Rise*Z&;auvyI2%v+Z=9|tqNroQ3q9q_z0tdY4EIfTglaDs3eOdsG4B&&
      zQ6H*^a5rY;t9pmf9>@OMFSTB*%Lu<{gkK_TWjRkiS0^>Ixyhp-tY_#>k5AaFzs%(^
      zR=jEyUnAVh^!|@zdm@=@y^&7>;Z9beQnTcKND5syvKxf$EdPmW<C9wJcAjb(3c>CN
      zqi`s9m3ecuf3<DgYp8*H0R_y$;?)Y~VDo%}{|E(CP~`PI7I<7_%NE;+XRBE~^%bYT
      z#Fv(NwD|zoMhW+EmRFVWHJrnF-WkM7f_M}M1Io>oVO*GIJYgBTF=IJqmJ<eh;4-c-
      o#n7&%(`wVSeWo2`(5~Y~LR(9x-JGTkm^RF$HDg+f^DW@kFYi!l$N&HU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|^#YWXT4NTC)KZ3|MrjVUn^B1vNvlbRZQ+m^8`S$6BPi%8-h@ktXO
      zdC){5k;IQzf0Xge?xrp31AW+;xpVKi=bStJ_515L0M~FQj*!5GEp1oZE46LibV{1z
      z*m}ctWT|30vL)@>Ytzy8;)n<gsl<|@nXS@VV@o!jIAQ`L-RO#8nNn*QGLD46sCS`T
      zrJA&L&CvJNjX-o)GhD8sA`n~BP2IUC5Xn~xbuKH`hD;)i!4%G5NFbaq)cYWiPN5G;
      zfx)V7%E#_@L)uS$xOCNOYDQgS3&ID%h_k8h2+UPaA+1ar`AUWT<2WZU+m%x>4B66*
      z`*zFSmZtMyuPNJ(ZkY*W$jFnCGc6~ln>m}NkoW|q74fXVSl;XHyH%s7W~;0eCJpPA
      zw3jW{+~C1&w>yVKOFDJm8md<2$d|5WP{s)?-}!Rkd6KqVN?``Gw8?60ky1~~AWa~#
      zsqJhkTe)>Cp9yD^FZ3h_{NlJGFy7VghnHR5*pPM-3m8<Nt0}&m>!hcVyizg6+5H0+
      zRFzf5%@m55r`($5+D*Btt7nit@xB&S*T@Vdg%Ls&aqdED<b0<wMCfUXk$#?584qzy
      z7LPDc%zVM{C!RtW;dg-5z+L8-S-XT$p3eH&7~@X;k{&9b8ZpNM%zf5Hc$Za}nW^_k
      zWTro${}>bN>B%EZegCV^Bsl>U);uIym3<#^^lO;L6R&5{N9**=20hsU=gC0v&mzZN
      zm<%|<fJcd|;9a!%8N&zM__AVNaNUDeHZUQ8=ARcA8BxYOW3~d$%>RUVi)i>jq0Ik)
      zIK<pLL?Z{`E~M|&3;Nt5H@(NHOow#_mysv9K;d)@cmB(eqYoG^k)L9pKE}fO5f&A{
      YLzE72<0GTJTHo{_r8`=0d0Dsr0Ml3DqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5k)#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwZ(D?iB*Cc@6Z
      z!pI;1Qmmhon3t~apOlrFT*A)4#>gO#-3Yi=Mh33n{L-T2RJY8WR7M6d472q>1^^9W
      UWMBqjR-o$`fHXUhWMbd|0DZ4AumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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)CsBwIt{FaD>%QjC^^+FGbfdiK@yt}^guQPoeOje5VHb<feGj(b_Naxkk>dF
      OxPT&z4BQ}b1|9$<$5w&>
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@D7COOwYbC)
      zCd$sh!pI;1(x9J{n3t~apOlrFT*A)4#>gO#-59u5Mh33n{L-T2RJY8WR7M6Vtmf;1
      Y3;`O($iNK5tUy;X0BLq0$;7|`0J8x$Q~&?~
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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)CsBwIt{FaD>%QjC^^+FGbfdiK^B)Uz@7#=8R#A$W(5WZ6VO}i3>*v~
      R?{PA40Yw-YxIy9!JOJa|S|$Jh
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}Gyl9Hm#q|%a9{QwX@IJKxOGda}}
      zCd$sh!pI;1(x9J{n3t~apOlrFT*A)4#>gO#-59u5Mh33n{L-T2RJY8WR7M6Vtmf;1
      Y3;`O($iNK5tUy;X0BLq0$;7|`0HV7#Bme*a
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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)CsBwIt{FaD>%QjC^^+FGbfdiK^B)Uz@7#=8R#A$W(5WZ6VO}i3>*v~
      R?{PA40Yw-YxIy9!JOIXaS@r+`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TXR!Y7+pJ;CJku|fd*+>4W&RXg;+pEiwLw_qD@<Ai565iX%9`{^qi2KFop3&
      z$H7;e(Q(EH1$ku@W;Aug5q$#j*<YZ8zra_<wf8xbq?ZvNy3f9RdwpxKZ|$8vdh+AX
      z0ES=%;1SqyLA$IiX3CY4X=gOsu9ONjThE--tCmr-OO`ox#k94>0DJ=LWo*XK%=yej
      z;etME2hb+4u{k?pSf;KO3_XCLz$Ud&vNBV8rKB09t8#@XRW;1(l`7#+Wk&_X>jE7k
      zmRYqm)6Q!~P4{oVe&YT5mk&P?@QqH6<QS9nlJ*k;@93oJ&N20D#i~}1>H1uguR!Pd
      z6%%a-N@mGEDA1P3X0ypWF-NR9Jp?bdgwc&2f+mvr0D1-bo2SVdhCZ(uhb!~71>Lld
      zF3##@sYnpd3Os9Cam`(cFKAcd1wC%))oR=>YG!;Wgc#xyd#gZqVyp=|MTO1z;bguY
      z0^7pah%VXN9>ykg33QE>OntnzP|z#Wj$Dy3YgRMz8YQHB?xfEymZ|~{@YAa|Ea0zE
      z0&Z#3FV!@Ion@??at<d?hsb4j7#Tb-&@->wBdY}-Ef-5lu&fN;6UJT{+|A(Sg>d7n
      z!Ucgyivn&gLf8vsf#}*<SffNXnGNC<fnLR3scc$yi_$uk7TB;VHQmIyR!{f|c196?
      zEsU42Us69D#xV8^gencQ3wX|C1%gGbT9g){TV+wFS<{KiQCGS2|CT*@I)D@OO0)dq
      zHN%*+c-Qnwi=Sx!Zp$v}mDV$w3=QEp;w+w8Brn@?{KLzYNVaI|x+;iC>Ndv$$@85I
      zBZn!0or&z~&^2}ka7tivldA)Iq*gNK^hyYCVJ3jLm%Rc`L>Q-WMj&umUfhZE(puRy
      z;6s>3Jc##rl^13ITo@V(bfi`;>n3mWuC?yTD&{VqVF@uOAy}l|wGy@l&PyrA<(4f$
      z(2s(mwkubSYYPNu^{1;PeKBR#Dzo~rl6<wgn{IMm#NART-&X4Eg$I5F_}7DWNafe@
      zrSc$*E$Bp7W4xZ@4K3pcV|e{lEH6L5>loXODBH~(T_>`S-@()po{9NxqNA5hu+R53
      zI_@Dh6X{#RbN5rRzT)@jPxZ>rz+Hv5gKa;8Y%dbQBrA(d%FK2NeW+ppHqxkJCnHi$
      z4kVD|h}je;p?Z>)NA*(ddC4oyb%)(muE-ZTk^U9p3;4aa)4xFEQs1F}u#R0fu%6uk
      zc86}j@4M~2%~%g4vmUgu{eX&nNM;|A*)=NjG1**GjN%S%gHZze@B*`Ta_5U=>0zH&
      z*yVAO(UM~{*3ji;r3;C~jAqtOh59M0^cm0cxylrEb~Z9asfMhVPd<PyeuiJEhF_kn
      z3D>43Zz`Cu6X3!K`KoY6mheBw4Xh^j4at2=0(YN6jt{Pj-%4&^CAoWRk~@G`-OcBC
      zPFcaI|EExH(3^_Yad2YLC%=a#2JdjisaHff<RRPN=;=rNq554RJ9Ub#p<V<>Frw--
      z+Mv2mje(HVQCj2NO1^)z@C`M@Jc?s3U&F0*BK<&Kfa5cf>=NF%FY(fJ+%3m(><-;p
      z;kYP;1^(m-{-TQ>(`|n<*JG8>@j#++iUh{!F<EoI7;ff0%q%?+O!*=cb-dZs#<9Ua
      zEzE-r=6rnJ{a?9C=LR2O+dWLrD6M}$ehKeH-mT-T(!7q@I?msb>q{uA5Kb*ykCYh9
      zJ9SnDHVULJlnC-)v~~=Lb=WJyI3zldWnW%#r%<`Z5p%B1!6ROTp$fC0(9C}U*@zDv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4yKWOf6g{(EXR)(ja1ugz1c;Dqhs2A4iXa*bq?JrkI7;JcydIp1*0W(ewgP{^
      zU+@8GsE{ZSH6MjIyK#X?lVZ-?=eduW-+zAm1kk}&08e21M9$?|bZWJ6k#x@L;moP1
      zuiU|h*f=#-w*SdEdG@3ez!$ig$499&<LF>`q7oNiNno|G&YVu8ZZ<iUR=UgzEWOr7
      zyEg)*X6s16?`9)aMG4Cx0$dZQ^|Vp@v&m4|Lpe;9K)shGGCh)3=la6vyJI~S*y&xp
      z*FAwCDLNr(qgiDB+x6aMODhhrBH#^TLe|N9`F~cjdf9WroNjMUsoKwGHc{_%-u(LI
      zt+jIsfiN~k*={PQQ^iSYZ%vYBQ*FlYl{?Nx0X7AiSDh}zBRm$Un9NROsz0-Gr8yYH
      zaf^Uw;JSIrd}NP@i>6kg^n$nGUEcnV>bJrj601en1U{YDsfQOqxPclqzBq0XbAm4<
      z&S@J@f1$p=LwM!ymf9PBsr?n<u20EtkIomS(K$ms(gC-Nw2wrKWlXUKhfU0iaxX6^
      w7v)HfRr>Qj8_ZiHLm69G$4dTha36Ol`II*b_Pe;pyUO@H1E@0s^gqDEzmC12Pyhe`
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai$-E$LF7{;HIq)kXeX#=D{TG^5!NeG0GplA_<LTscd)?&5b2b*+hx07s2vcZ;H
      z$Bqto<qU%&4&#Ma9fTQe8F2)?amE?{0v)gQ+Iz?6oNUvyM7U`7oU`Y=@9%xyXV3K4
      zf4~0`z<x}7;S$&}tzXt>lQU)0vXi=Pm(5(&Hj<;}7309k(K*Z3XT9(UbjW?lf^JPF
      z&*Y|!yzND+z{Zu;fkMeL^jyL4!Y8mvy)aA3QKM|?1@nr0BjCvl4-5*3jKKPVl2x&F
      z%O2AURl^PB4-2@mS&rO)amy_K<^)=gn3icD<sh0)XJTWFF;JQ?{BUD)0G$X4xTCQ#
      zFSa<f)EF~`f-$KVj+ZB^MZ>aB&E}06+bmf=Y!m36)pTnjSt@IDT2Y_Vtdgze46R^P
      zDw;i|TiQN9y3j4d_Xuo`4y{x<N`b7&{@9og+XcF-WUDlZVOZLJ&oRop4#Wyz1N?H-
      z7eEL60vm=*%NVW}b4K}WO_<<NDX$mCbc#ixoJEg4Wmb4f<$rRI`l(i0phW>mu`(Ho
      z<-?w*RZG%++;3c}>ILRnRcx)%{jqa?vhNSz01lFU(y-skn)!06XxK)XXQ+Qh?l=^{
      zbIUu%SMMn0rUilxIy#|w*e=cpco|e$juk{RvGZve?xg^Z;u!la6Y{|qYW;WsCzjX8
      zxn5D{T<2N7Z%VIBNqcZ;mukJD7o)L;%uWZrpa;9wHugl-EKC?>KTad-#n39-*A50S
      zj57qjEM0r%qEsx?B)lJk==NcQe2xZi7H?2weP+h6CIt30bJSyq4oklb@umzx5xSct
      zTi)oyIqIoZi}J+V0i^MYz^-WKvB>>RfluQ-S=<F#Qo8AmLF6PyUUD?qvBE+9g(k30
      zxp7!8a^Bc{rv(E3(NeXXH`1oO8#){BoV~I$o?hC(4HsI#I|y6(HA!Q%@w;*%!1?-y
      zc{|tmnW=aD$oOpInN9?GVk2i?Gm?kT6Y(W%inLw7iFJK#*T2B}2k06PZe2q7VUOo4
      zXZnns#v?uR(?KnF^*i*&`|9J!J(Xi8e|NygUyE^P_+ekdHdL@3He$GpLwFy@F^gxp
      zBVNmlU5Ii<29n0eB}W|`xzs35YRTA%-462&hdCvg!#CmWUgk|S;|=#rNz`unc#QG`
      zM*fhh%_D@55XQ&YiK|H98V=%<2Fg^OGNtsClqq>_DasUUk(2^^k#s1p@C|QmM0fuL
      z@i|)D3%egdWaHnWH?fF)x6#32gu~Qrw0IWW3*75sc2KWY{@!4BKVxriq8+!`)h|hK
      zOA%?cxOJi^p2uNkZRg1ssHKbJ7t!x<TwsNgBh>OkYc}DIhZk{VB;k?Imq!wJ>sf=U
      z8+Z8o4fVK-O}N*PEmY4IQnm7ip@#-=Qf1?f<YYU`T(WOl!fRZ^vggC|)}4C3c187&
      zE`CHse^$9dwX^kHTk5%Z$vPRNzEb@bspN`it!nW%6(&&I;DizKV&san`xEdY&G3FF
      z-XFyK^C@_|;hhYPc#*Yue>cTDRX?0kY65;)o3zJ;wGsYlh~Tdm$UDtRpQWl&oyY?W
      zj>qY<`*?K;uLVaI@j9oeMT`Z<IbOv1mDVfmgsUNRq#^V>PUue^BV`l6IN_z0?&IBh
      zd}*mg=rXoS|3B}869k~~S3@X2h!Fp)>O!B`s$gnP&({5rb^HKiaS@YBttsUw^FQ?0
      B-2ngq
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3mC#InQ+{eq&*yb}Gyl9Hm#q|%a9{ovAqg8ZVA)ReHq
      zoYK@{N0<aV0}CUA07#F1PGVlVzJF3yYH|rX0~;fQJa&`dS{WI*g7Zs@l2hF>b5a=@
      cWN}#mb`j7#Mh0deW(B&H0Z6k0NhSsk09_S0+5i9m
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=%Tg0T6g`~>A#s4nLl6-HDtTc>RD1y9gGY%1S`|!{uAE>CLk%;SbP&Xa<;JCJ
      z_yIR8w3J|Bm5&uwew5|yPDn<eTtH9XzW3a7&$;>iXZJgReoO@5VTddmE5@q6oHK2q
      z8$#sFY(a2+mamHRnk|gg0DKH#nWbBXJ+D8=F7i1MKn+7vH9BfJHaD^s51^KzSv{DJ
      zp5{5zu*_HTg;4V9n&G*;>DZ4Z#~9c>hPqM5&I`j98N(`Y|NBHwUH0?tCWC)P1{fNr
      zs*Tdb(4HS+sIi<mL!y>n3&OPYDHW5i!=`PD5r$~&aB(T(E{JCse51}Y9)cGqG&G`>
      z!5fQb0yxRgS#3X4u&jp;X~lEnt8;u=&>*!q#n7U-MwX1Vi0z0-mPc$#4WSLEC0r+E
      z9Kj@>34%P(P>+TXdT=&?Gy7`0_-QzYUWU*-7i0XnQLqGQ9E%^GL!!krgmIjqVal}m
      zOkpX@bF(G=8<jj6gFGQW%0Zu4F!KyO3haN2K&sXf0cDb_y;_QjD?!RAnLybKMt(tx
      zs-&C@;SvS{xV%4~t5CxQ^vn4N$T|L^U|7WHAH7OjHxz#oq6r5zoJUIH4QsfHYce*X
      zK}WB|7^ZekcCoS;uC1jJykcpYs0pV;nM6%Hh1?vUFy$^aRQEn5P4{&Zv=<)u5umdj
      zLC9vu=m+G1Mt|g+`X<HctbvcbZla84x~)-#m(FNn2QA4x)O|zS<Hq(Kbo@vpx6zg8
      z+e7dxx<A0zw~gp01r(?M?F0l&5ZGPRVv->5qZL!=#WWK15-GtVi9Whf14V<WFG<8h
      z1W2GV4V_N;=1+V<*GKyBKsKpS!HfdbN(p5^CY7X!oWWfjJy`to$YQdxTs)|l0Abm=
      zh>LVYi@5T3>i~&G7f!fBf{ZQWydfMZWGeX!Y!iO(R`Ms<v_$PI;(8H78)%Z?bh}Z+
      z%?<c{Ti$AylAbGM;Y%`bjnrC42VRp#>n=T06+Kh9h1=A-o|L{r8cRJ#kI<8PAC%;s
      NYZQNFlrc5%_+R_I7EJ&E
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<YflqF6g|@iEp;hSo}x(c*=>~-d=iXC0TT>CrO-rUOr~|xE?H)AJ8Qtd;WvK+
      zA2d-&H1YAt#2;n6GhItD=!b4+=H7G9J?Gw^zdn5dFpb$1Vhj@-{1xAJwgOiwhbtAh
      z)ldm%eRZk4BNg9HA;Hk6lN^uBy7REQA!;gxE{1`F*LlyEf>%9}LYiUF1YF-Ki@@cc
      z`&vh+O4D2`B51n4TwhvXU=J92=6%^zT&fE9LXmu9FHY5GhXRIp7`P1CWm8QGrJI^#
      z=(^=fSKVglFB}fp6^6vT|3YLC$DoBi3{jDST}fet;nYF5E1~B-@=34=7Po6+OHn&%
      z94AG@nBU|(dFiWsRpcclW-yEsy4XpEp@`8qQ6{fsea^0QgQ{D|qL-m}*_C1?+^mXV
      zt))7*?AN$g;p7Cl5IrVT!)-E58Ug=tU&|FQL+(-XA@bH3=Io~#B0q280t%E`7m7S0
      zrwjIBYceR}VhSY&tJ6&jXK<E0@~ayRxfY~j%EX>-@Mc4MYMflsb!IF$xJ)7Cw=AH6
      z|KaO2M(19)a0OQxGG#vuYT~}D_aNI|t|{G2Vv;1p5knHRkr+caw5VgWq%m0ZBV*~D
      zM1qFUPmvtmo*4u%THMD#=?8i~WB5sKbRT11i=~eke{awe^c^N7aEH)$k;XkjFJJ_V
      z$eUP<zN47LY5LbE%|&aeeTkUXr~{K#`VRIM$@p&Z1IA0=!1i!%5B4tMV$e)k>IryE
      zDppCu+CLaBVahPj#3BaA+)1G>{H|TDi=Kh!ri^9I$*57L2M~d0B5+!R_b`3XP7B}Y
      Xz^B`I8p_f5Yk%_xN8)doE^qz@U2M|V
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!A`<J5PbuMYDG{K4<;VG0VY=CMT6mjdLkY~xi4j{Yv`7gt>L#kk$CU}{3zpW
      z+h}6q!OP6f&YL&y&By24JAhNPT$BjM&*DWa{duCa@r5yonxsbh4?2pc>QRZwOpc_v
      zUIub*RIFV%gnc{X&x8*ByHpz$$?ra)da1NBeL}h2855jAJe3~GSg)aiDxon{THdD7
      zL?-u^ozNV{ftZa&l5HzK9rL6Xgp=X_^z{g>b~cmi8?hlB_BvxLVarOW6WmBH79z}6
      z|5z!Y1aB0lNg!{O6?gF0C9=ce5Nwps36%K7206N1opC14mF@~_uUXsU=rIg9hl2}j
      w@T-=CIB#-g3F;gzL7$NpTkRgL(D=<TVB}TCu$Q9>2F7C>P39o%@N@~gUlF5iz5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g|^!AC!W$JQPqw6lp<P->9t>Q!s+1MXF7ZPt$f&R@+_O2ce(+;2-dB
      zm>_&0@%01zQN}yN0u`3TG})Qnx#!$_&zbrC=i4s;w=f@qk74F5-{RZp_ok-XX>Qx5
      zR&{JOZP{F}bF-e#Z<<Dn+geSt+aV|n<KBQp-D#EEy3Myk2r^7~XDt}Dr-wB{2%lMg
      zRkX9FesEOF?f^s>ro4$IVA-f1B{TF{s;Tj2MKvwW&|fbtFtBBYp1h%p>Ff$`I%;74
      z%V+=Ur=1@Rk(E-hlz+ZfT3KY6EqK@Q)Fs0Z$d?MGHHL1B6x189c(tiA^lwO-bd&3i
      zbXlHIZm&vO$?9%e>LBeuT_A>Vw${{i&CW6S6UhpLk~ivV1Pr55T*M`YVAefX5=+TS
      z7oA*=q7N~#yAnklu@J73Mq<j&_QIGXC0d4V)P(VB7*jM{&1f2?fF`5p$AH+)L@|gV
      zhI0i?SBp-os+#UJ@q$q!**S?%BFJC_evDF=_NHbL-Ih?E+*l&L8mgV=w%RbvHtCf}
      zb_kYla?7G=yUJQa=eA=KX6|%GcIFJPj_yJxM=T+#ROBt<82E?7wIz&)3{g3>d)vt<
      zf*c&XqYWmKo{q*SQ9OW7Qzs8|PuqI@R;aH?*>KF7`b-lSCf51fQo<a1sAMwz0tlgt
      zz9Z;Hlwv*fh<)hAu&|Z(!@^WrM}$LiC4XoQB8>C6K!{=b_YMkufy{TXb^ks__An;4
      zirkI|eqv(XAHP;!SK`;pdq_}#@^&#skzI^aX!<L`eYip2A!-MBK@AmYzltfm#3L+X
      zR%U=o(Oq;4=LqAYcyM}jAE{%Gh>X4=rVWW3I><s=4kOyXDJ5XIjXQL9S90Hz!^{#l
      zqyPRm+mT_>R8WTMl1%7C$1WMeeaulr=x_{ua1yF}Koy!R<3dxk3R==5aT43^z$$K8
      W1z9{kjh#M;{pf*Z$WbL9p8N%l-A5+?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kUf-FO(usZc<PYxwIe*ctdT|#1u3|0>mjzh>7OVo|MrtLuRH34?g-o
      z3J)Y2{Q#eR@?+F}P6t|`B&M03J^QS+Z)?xbKVN?USU@I>Hip@Ee4iiadyZ*&I`=%s
      z+^%^-cRg;Exl`72cGY%_+TNb+c%mGJ#xUBNvTW6MjYG@h2VsO5W?G{*WFkX2`({Zz
      zJ59&X?Fz@_)uM1*)3!GAOAKs<p)+S&vJ|h#t2Gh){pslMulL0;U97Da-Wr=58|$wM
      z%LLX}Tc^9Ck2FJj6T8EuzO71uZ&w9F?`suIuX3xR8|sGe*97&a%J5<Hb=ZH;j$%YI
      zrK)L}UX~${OcfcloLv@CFbu|U9YYMEjDN2s^QmGx-3-SNL#MQE#BdFrVceo|$!?nq
      zjNmp6#j?Fw_f)G0?ogL!uQI|!3|;7!)>I5Vh%<DpnwD6r?QRRlZ!5lPmq-Xsa?muC
      zGl~EPsaS8vbQyyCQVY^2&(Kj3UXFXBVmpU4xMZqna=9vZT{UR4VsWqL5NGi+A~SP^
      zbZ6U<&Qg>xWm@CA6r=B43}2rJ9#S(UxvY%|kZ8oJBmD0Alc|>K_7G4maI?S@r`XF9
      zH+G#$iyC&#DT(K%TAuSC%$yX8J~k4Zo*?}a2qQvvJAH(0h+;^}OZJcym(GNgNS!1Q
      zogqT^qK_E;^!5Q7{R8Q5U|WF`3>+gNO--32!SA@a6^M@-TUva~IL0_R2zP`8d5$nb
      zuE{S%Z$py)$0#(ggbuvG0P>i^3TElKkC#}a^C_}ODKsc8?WbQvmiTSt4^0oBV7d`6
      zs=Nhia#QgJ>L|>p#$+pZDL!ou=AhHvyo$Y`8ms$(K%9M6ZdqW6puigyET-&$AB^E1
      zm06!jgZkhib*BYY!z1dhPMxDurl8r3U*x(?T+L6b;W3_E=1yMZer&;IG*3DC^gn?P
      BG&}$R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kUg=O{w8lL`4)4Z!NcicLh-_g{juc7)7g3p~M<336rLb`sDZcgz&(O
      zj=uQj2lxyAh2uJ>K`Pc6r_-FBeOY_&wNAeM{P+dH6c%)}35>k7Hmui~b>DG=j1>gF
      zvr-T2Of9h7Rm)$^WWBX@->%gh&()y`47JYBx%D;kjT>06b;JaQTW8IC<+<G!0^K#+
      zcdY8N?Mw7W`FR0xN1!9?xw3t*Y*p)abo0G__DA~bcLA+<znBvkE3^i0HS)B8KA&4C
      z%sphGw)ix^BoNQuzqj-tXPN>BYTVbYJhWD-wm|PQg`BBcZY5)?2<tm-uBJu_)5aTV
      z|Hl~t;xpx{<2u2tKqQr3<{VjX)lNX5-@s7}2*hT>xR%PNm)jXRZooi?v`!f4Y*;4^
      zbTzC~2D;Iq;|w{JTr^J{$2oRzJ=cyS&Fxq1=T$4<%P8HIx6XPT<D97+$|_rA4D=u=
      zttkV&I4ICna9q1sUt6*LaOq^hD^n_qf{`obOdx`Of(9>~nm}|zszn9!q_tuPSvIYB
      z{u|PoN;mPEty;AjS!p+&ifaXRpEXzh&X^hfhswY2&-5%&bapCQYs5JC2S%t~95*@5
      z?ykIKl#>;WXt-HlD&11|9wy3L-7Ni?-Q2&$-}?YKR>Jh^e%W4d<hAN<`h+H=TsTRp
      zBm769^8)CI({ATC*@guArSP=-rR?gY=<1~8JdaAP)Jdgy##r5lLqs^tw;gDF0+mk?
      zrN|DBY~z?THDwM;GpfuXX~vW}tbfMoQY3lSENRJ<S&Ak{%u*~lW^QAGA>wS|7-L%)
      zWN-^ZjBa6=;mHqd)rRwYURJ~1!U1GC%mP=;V+?m0yNekVFwb)l_tdY1BFeO$<2o)V
      z1aNGA3E>j6#B8HKHZrh-i+ep1%KMnKJyCUs8d<ocdP^!U;|ehZuHqVF*A@1(B4%9q
      zfk;wpDz_XuMkin?Fhkjq5Uhto-=Ifwx>q{8zw}j$QVq8-7nV-&lr6~J#Qxfirdlm*
      YtKl~JYqV{uo!nphu0^dN$5M^lFUYz(jQ{`u
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{OHUI~7(KTSrj%l_JXDG}f=Ek+k(G-Q5>g*2Ry0;f#JIRqZiXS#J1}#Hl)vKA
      zg)3roMWTtutt<b9OaFoKyJIb&sGIxva?bhA`R@Jv{oMxui@0eZ!7#JK_j$+K4P2=#
      zu2kUKkrGy@xZL8wmR0k2T@e~cF-)HgtxF{w5i}2^;vEBh46|ngAL$;ezP<9Ri-8P7
      z<sab3VlNV*>Jb=*LJ_#!+YmwM`f|N~n}Mw|4Ay+9EvpUgMI!y`OX~H#Z<Ajc`j%Yj
      zs%3^$sb1cot>$luERrbXa1MC`BMej8f#q@OSar`64)<09Cu$3+?sQsWS5c!3#uz5{
      zwYb^l2d4CuX$#X6VQ8vtF3rU(hH+7AUSb$6HI5~lG*anQb@P0~m0~Sw+ah?vZBH;1
      z8h(q?aLPpYZZV~{-H@gji~RR#stoDa7)_#1foWviBl;;55A7Y%Qq}UNjy|1(iK`4r
      z-`>#{j=gqa3<Hi(HBRs92L}wprSb_-&EsK6UHhA^Be{wK%5m#Y#8Txi{(G-kT_zQS
      zI<4_GX^foG=#DLedCJs^KOsZ5=|@3J+;#Qr27Z3c1#O?cGvz@7X&7`GM?bQ(570+X
      zAcqv4>9uJcqRM)V1V-nIM>t<hy~N;q3_mT59^t~rw=rd$)&kLhRg!Fw*aM7U4MnPq
      zktC5Zfy=b((<H8tG}BY<wzy9ijmlR(fxSRFc{o=&!qg#^666l#CQ0iixqU`npPvxU
      z_k{DfhM8FSI%bJiirM8j!+cx^k_GmrC)!6vz=_3j@j2NQW0*sQDmwl#^~Ueiy)&r`
      HaRciIKArXm
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~6#k}nN}*5+UJAM(YA=>jFY%#-1nVUQ0uL1uyd+H9v23&5t-G@bZ~hJ+
      zeda-*nn<GY)gNU%vy>JT5+8PF=Hz_ecfK=ce*OOT9Y7I}!tgOHwD>+hD0FPylm#xO
      zt=C*B3XbGvgWHWl+3M)Rsk)txWlPZrBfyZp7*iE;^IgT1qABd^p(*)67@<oQ`jp$;
      zaD}sSD$OwF2wUgIwy+)DGPf#E8Q3brNZB$~S<(XpcjxmH^O55sLug4ib-BzCNLMo3
      zw3Mxeh{BJt7-AR+Bf&7IN-h}OY!)hpA)4G+v72sNnDW^{U34S~MUZ5eX^VDE*jk$(
      zYNjQ%n$Qg4IGWt!rdEt%98-$)3d3Z2eZX0zzM0LEQjf3err2;5%S&D}1Vduos*@c~
      zrs&)Y2IQXZFf4i`|KI--**z(dno?m1rYq!GnblNXHzJs0m^G{q!hT}8X5$hg4ADUj
      z9q4*{0OA+#U2afq=NxX<TB0sXnO90H9m8$hVenhEmhv}fL@$kDxG7|r(=1r_A;UyE
      zb0(>5aK|AhLsh+La_QRCq{sheEafg~PJdQP%fu2Ur48ODj^sIx-kn5npGK<gjd9*N
      zon!J`wOqR{p6lw0l7Ef4_bTX(kVX1}^j$|75n6}n?f4M&Vl-S78KuY;<@sox%%-}C
      zrvjfba*Xkv#6%a9KfZd9tMpGGK>rs6t`Nm4l32qvicFn=NhC!lqQNv~h?=P@?MdvC
      zgkR-mQ`24C9B9m5q_Kk#USk+<i0iGVp`D=n8dJFCX(;u1+WAO_F14q&MrUOxp8E;*
      z2|@o+HrK`7BMSMTtc-eeI(4N*Ju%MMi1#Jp$RJCE3_08*T;4-3cpb}oaloHoU;3mW
      h3Ih8cS<Kt}dt?j+EK)=@djKu|4gGi_^noYv@DCmI7U}>1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%We}v5UlnyF-{zu2f@4{5R7G3AS4csEJcnG2~mRN#6r2v+JhNuy&HCCqvRuy
      zIB-IILJn|3;()}Jk3#eewlTpRILyvYsk*v)roR99@)f`XtY(oQJnV@haqJw1%GZw2
      zI#h0~r4wo4cSP86HiVXYsxQ}dBj_J`Qp-*jDZ<L+x*@%J;%jl7MTW3Cnfcsw+zQ<F
      zVNb$bBts><mJA~m`1_k11ll6ZGy>oF(JkS{GJQ~a`JwdY-CIItP5DaK3G;WiO%o^9
      z%CnAZ<rX2;2s$!{B<AwSV}?-JR=(Vc`>qW4gzHH{aXV;pL&0tNJOESrm5K<Dtmgk+
      zO^uK~GA?<TvzFMed>spqr56W&J>hqqUAHIOx>i0gR!ezYz%n5jxIJUfjx|mroa;*6
      z;8*De;fWc&JVt7GB8u3=bW?SGq2rK^JpP-pR{6(lqsOS#StZMzc0`{w7XHv^a!UMe
      zZ3-)dr4C!EYEDR1=xTeI5kjsR#9>=LQRbePhq)Mw(S0);=a7fxmF87K7E`=Wb3PNu
      zA;tgvaQvNRq|R7^_sqS@XB0kJ&UyakEc%ocHc{mB(k~X~vA`$hW05hAlDXM|*0X_D
      zq4Ev%9_i$%5xscI^aPCPESm!M*-(q^yciQMjD!oggv(a=3a)b9HCuh%nyp$KNEYei
      kNHoJB;99Y~{Z9_W2sdz(5i{rS(pzUsy@{o_ZG$^M0W-qhKL7v#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc6r7EdxD9Dj(w5Tl*$*fo3RcB|L#jxXD@03FkkUqo+d5f=jT{^7b=6+^
      z8T^JG;Dp2hi31mIocK40w~Ld85)K^J>mALTnYa7C{rvP9z!o-bWEi&k{Ft9OuOk^K
      zhbt9HFHypY6%V>R>N>kzi9<OMJIaj&S27H2WEnOlmkrsi(?IbP8+nG!$;{{4a6j~R
      zhL#L-v4|x1+aij|=4fx1f$cNQxM85<s5bW#k^A9)&wqWpyvmT@mVs0ahWUF<ZQ>+K
      z`X+F_(q_oIVOJDjVXlZGW*ACM8Hj^q;ECvvd%j>OH^UAYa<Zj!3TD+S88bXIn*Vh(
      zb%xxr4oSUSOhj?Tn}qwMyqL!IdC+s7d417Q^~y_~bft(TTxGCAudmaYuEuE$mwH0E
      z^d`M9I@O(5#z?Nu<CsEBw`4EiDv2n_qrVy3)qk`$dW(94RBUoO-~-ZF_(P*bGZOUb
      zQ`n$Zx)i0RXg+FO)jH{fFcey05_QC5sc(5{I2GqJ^gwq;Gf1t{%F$YZjVaovX*M$`
      zAWQ%BYV@5Yq(NAQ_Wb?oN0dGo&Sm-*4Elr=_E4ttmESDPV}VY@$0A`gNBUk<t*5D0
      zsrm)%9dg#07F|9gdInl_mO=qX6sS#cUW^HsM#3dr!*wHk12?JemZ`pN!qyB9SY`Hp
      jB$_7>@Qhf|{9CCQ!z$JY(S4qmu3s$mCzjqZ26uk}VWQmR
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C&rcIU7=6>9Pz%KZBKTWStW8~w8V@B+NQn__kfhKMZnN!Von||WyR!t&{uiF~
      z&OuKm9!$6z|0d%%V_PfMgNNDKd3oRa-Z%5U{rK_~z$2_?kzjb-<wyM3ISi%J4%a%A
      zZmfk9X|6gv>^K`-i(T0h>v|^)+9Hai^0G)Vtc))l@S7(}^W!Ws46EarJErAU;I0pv
      zGR#CGl-zHLFp`1V+uUGaTMSe6Kp8{2#r;^MzrTI>;r-eE6Nb#1R8rR%X74pj6DQWv
      zx0b7=7DK8YbVLqG%;b^B6homQmDrAZt_XLz>kEcrBWP1YPHpMj2UGgBj2NC;&Hucc
      zDnt6n*raLBdm_W)P0W4Lp6?s>x$>M>ZdbH*wRB*-F6FU+%M8iD?HYe}u2CAp1yATY
      zy^9xwCua822&wM#C?XS+P3bAF<B*Iz`<t;={>N~`*QnM=B}<*Qd5<*a{?KSrPLx-j
      zzzV}chpbdIWu(G&<#3o1hFmj<!?t)X%}p;3k};a32WC3TB8^KcO=}5ROwc|_8BHLE
      z6#diN(RZ4V8es|AGxy7%QTSvz7wMa`=nGQVM3K&yez7o%IXV#^^Mp~F%-#02UiP&L
      z<ukB%NGDH?=;A5S6ELFFWD3|LLoKqiKO$Th3Kwt%SFP|hT&KDlw)&<uTd_EhEV7S7
      j(F}orYsK>RKiL;!xP{w<m^pu!E}t*;$Clo)4etH~4L0EZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma))U2hUW6o%j7Yg<5|^h2#5^}A5SjaQn`kQf@1R#HtVBzmElWhXdfJ6m^W4gD+n
      z7iywcCSI6$>y^LAcxFXP6^(l_J9F}$=e%d;eEt6EGl09OT1YT#4Ebw5vJV5Pw9T~+
      zq!Vdjhng#w2d=#(LM;{7(pMHz3~RIX-M#J3k<xr*A;YjfTlB;f+3}qRzsgvcW2pT@
      zyeD2oWMGoOPzpsLxz`gxNS3<WTMTT6;Y`a{#<T8mFB0kJxo<D-zkB<XA+sr!)J=wk
      zO4}5&mC!c1ZB%;<sh01GERrbaQ9zNQ*p^D{MhA`v_POH;hH~5QQ#npW={ydm^h+5s
      z+>VL=cX<tlWE4n-!f6}ikb2}E;g-h^J+21!V`nJ(x>0>*>|M;`JXVR|J40hBZe&`<
      zkQ)fy;#v&+;D}+dQk@dDJRXK*V7?;<^psIReck(0v03{|Ka=ZkG>KwSrCokNjHOeI
      z4$Y1lH0E%NVI@5DeXs6v&Fk*T1TkbgeiZb@Luu}|G&NjzOiwhG)Fcu}!=l|P=8>g;
      zj^;IiJW{l$XQH)4ktW3w^v`V6K4RfRtXZTr8%Otv(Zv#-SAMFnOgr;sa2Dr?!OWeG
      zS&zo7V(kmq8>ExR272L`<OvvPfouVsY&m4godOpp;36*JatvO>70SCBXJ3oW*5f#k
      nEVK6$XoiA-iedS9pB%#&uHyzpOrIyIH-AqZ%}ia73simplDy+w
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>a^`6g|TOUW>G}^h2#*wSE+e_~Ob1O%p?7QYCajWueAofGHh(%+vSg8Twb;
      zxo?anCQV$Jxb;UF?+g^tV&Y=H?woV(xp(Hr&#&JAJV4P!f}zyo@A$xb6H28$u5~C|
      zu@+vWx$5w+<Lw6RxG$8h^S*GAWLTe0I1mHfI98euT%;K`rlUyh(OC|Lg-C>w`%Mu>
      zGEmR<b{W_chPi5>On%+uek@Y`!`Jxo;qW6vdRr=~cNjJcHKXtOTy?z$c~;%ZFcNF&
      zd$pj=eNibk8IskYBQkKXkVO`A47r+Aq8|5KB0S(NUohk?yvfN5okzi>K9Uhb*{c3$
      zdnyds&P2P6^f{YUg>UVRZznC&t#})ApHi<(*0|s5iMFm3pPN#yW^oy73{KGMja6(b
      zMlgm8U7@R7i*67eGb|N~6Go~&k0SCq+mKzwbsSO;9-c>Rm;O=v_yH?Bq~cO0^EVil
      z|Iiq{$_(z(gPwJztSmCq2;#6U9!t~y#mOIb-}H<ACKX2`MPm&vW@w$IKbt@XN!rsx
      z(mYR*J;FJ(x?81tr^tP_phcQ91P1CzV;_0itq);X!ZMwRfEBEgh}m7lB|<aP)RF8{
      zIvakj^d0OyQqIX%=@eH^D3pMapSN-^i2RbAy|O7*hm>)O9IoLy2{PQE^a<Rw><#O?
      qY~z5FXP?HRX$k^IRxE4x&Pa^m7H(6-l>D1|=Wl8_mAYvY6n+64lH~gU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5Yfl<M6g>mWL&U21Dr&8@RY8mNZCfabK}j&gG=enrnL$R}W?gW1v6_DG=l+yd
      zKiITse?a@6n%-Gfe1J(muru7b=iGbGnfd+q`!4`@k@CUCF#DeG@%?z+P<1QLEz3~L
      z4NJsLi|Z9`RN@)6A~e-H@Ihgi?3}!!H+J#|y2bZ>@Lo#!T$Wg^m6uM6_~2)l?@VbY
      zuZ!J=Fs&AVq0bbC%C({}Otq$OWS1G(Dnn1Yrpu14BG($i^Wxh`eZu@xpo2_yc_o)E
      zl-?EAH&z&;xz6R<#!WC>X<;)<xjccpO;Sg%7I;|`3<IxhuDHhaYCLbBNRS{c>@J+N
      zxn|mbC`@R7a#K@v)k-nABhey*lCD)m01V+EMlr_VO*-dFBpWSu(aE(SuAo=$t_RVF
      zULS6dPIAn%t@&}2*es(V{Fr9&Y;nyL5;Pk`KSFXB4PpR;481v37i*23vM`((Lb=)|
      ziOxxS8r=>C;6_+7ZmTBI?MdCqi!7;B6;_&CqFOT!NTo<q@@6k-jhiOT*_BtTI=31I
      zVHVpnlJl3?)Vc|Y6tVcI(i-0(j=^&rjv0O|G7PKrdaQM=V_VK`CZh=4Omv1EibOj)
      z+E0n{f}b^Y`XsmA*3-8@9R~8XhOsF!s=P2gCr@cXnnMqeOoj^{_~<u^E=Zrd>1nzU
      zL|B?i`>?c>)=}w_y^=??df~?qh6yo3|2{yWFOc{FR&pQX>Ji4}R<XAeo}ZX3xkFR=
      zk`lU=Kf(+JDDM#C6gk8Mg(6=G?!p{>r-&L@r&eB4f!CPD8^q{$A8)Zp>r-SgZ)bzb
      z(yerwND<yeaqryNF>aso1?*^*hTOJs!_6$>l!M7p77!;6hC3vR3->7IqH1!mm>mb)
      zA@;=%%Lcs^1a@t*puKlHWDF1RkRs=yk1j$#c7Q5)j3*9sfmT_9w3)ex{d5MaIAs;m
      TB+-tIT*Q9vfMrP9gFX8P#_KqS
      
      literal 0
      HcmV?d00001
      
      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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
      CcCW|)
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%We}f6o!B2Hf<V`Hf_0-I~3Xwg%K+jsUo3N2uhSzq>aQyNS?$bjwT+M@l@@r
      zAReI$SRt`Mu!Rjzfp`kUu?ZoRR$>+&`{<nS{J(uZ|9Jlaz%7&<BpAvAzRUOA7ok+z
      z<ywc*i?whg%~h9&U3Vk!?gf5#M``IhNHHuQU9irz*p@@l+E<$IImj@q9G$skS`qfn
      z?`96Bj@4n4ABvZ;i1fICVKx$><bGR(kqp$%{dESm!EmA;D5G4rxgU%4_iwMCKl=FP
      zD??^YDyeG>^Q#S`%8kj6Ycy9&ZH81m=!z_oDCUqyfuYclN;Ko4C&F#+`GTR?2s+e|
      zQ(HQZf+^jX5kti?|ML>74C!4Xk6awqLPE(Z_ldbU66$l+b2q(#=;&(cvC()ghcj4W
      zNCw`(=(2t$(->xYLf6S$F9`RI=h8${-RDt6BBooir?`$o5_0?BjJ5JHrpB*Otr5kc
      zPE9@}#=>8W77dc>Ri|*BAwLMbN}q<P5}PSv$hLww?1;P4T<qNBgxxe|Xg0|m5=g_L
      z-4dperT+{~Z2~!@Xitws>nufT6id)QbEEtYb8l_VJgr$9Z4zS>3v@pDD+`OXGhYU$
      zaGDs*T;_=NV8kkvKY_hMI(cBAXAdYn0RzpGEZ_;rdP<_6O@IqyZ~^CW!GbU164hO{
      u)mN<8ij4!wB6~B2W+({sEi7mE$q|g<DwZi?eEuoDcDOV=vUJ5ZSp5londfK#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*&rcIU6vw~QA8aYbVhgB%x`IMWEsG})B_yP3QY2_BV!+dEnQXUicX4)>z{P`q
      zhVkGZz(G$WnrOWGCwVZw+0+&kjhC6(m-qd=?|U=*?Z?N@0PbMfK!Ty#;RpQC+Lx}c
      zEUuJv?MMkLRNUX=a?e^1>_&HAiZFBoKQxeHm^)w6@Re|cY##ZF9~u~9SU5lNv93kj
      zwO`c?WEd*{NPZ$-Mj}*w0mE1*q|3c+A+@ikje87ionf?2Cds<m=3XSya{l}4wYeAX
      z7=~6{-&Ly&sZyi7O<O(K6Imot$l(I=2F4j?wFArJzGF2!PdMCLlTOqXzPf+d68nk@
      zWiZJwbD-g7mmisapiEns9*xITZSI@PSrl<uGp{gAlr{#)CXLp2YPxuS!}Y~x)U}1&
      z;<hIk3L8O-y5ZClefNSX)pkP$D~9~{71bEhu|b+hgBqvNagQ)(%sjF?qNQr(T|I)i
      z98BC`NCtLCTN!xnr7?^+Le)9lZy=8tily?Yq`Jq$kg5(hUB~AtlGM-LKQmS;f9a!t
      ztF=|47*uJKcZo56hS3{e234A0C$OvT;8ikYn?WR7;(@D&Sv>n@mvle$-l;((kcL60
      zDGVb^`w0CB3FMHXGd%-Z$0)KDX9DAk(<it%{T8F2P~0g@oZ!-z53yp3)&i-3XGGi~
      z+AiJub4*iYl8B_m46f3yPuFmr$V^YUSK%S$=&XF@E7%*PlgEpd6U-h{C_&~xW|Fiz
      zWVTK4&M9!d56<HzZpGkvERe1gtIKf<)i@3$3+#O#Iz&N0#jsp_PWE67i>OdUcR!Hc
      O{$2X&T<KC=!1@Uj&I4Hh
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O-~b16o%j14+^zVC?ATTj#Q<kmg+`LN=Qi6q|j8f*hCXGciNj_>hw;XxkKQu
      z7`N_N=!!%Wja&bTf5Ld~SSTPYT+G}%C+B_MbIzQfzrTC~a2Lx7L>TUM_zvGK^*mdu
      z5?9Kz%|MBguefY;uU%Sq&1$#j3E#I}=~vut&k;(r6NoWn&(>C@5|;29ds6Y;1cn$E
      z&raObrev^oXv;9}3(w|GQ+V3%dG#R!TW1)pkU5p4n%oIQ{ME+C?625(ondIjmbO}D
      zh~=vJCLI;GEs}_0JcSfS6UZ<uX!nxCrB$jrj<C41=2<~kNcCv9C3=dChB3u3zoX$s
      zm+u+URfZ`HhuSvOHkZboBqlJUnHL$RbF~4oK_in^S(~S8wiNZCYYK0Rn~q?})Z7+z
      z!>K3w?gwLP+x8hAgpmIqeVHL1R!XC((gei2fIGxHQPmT(BU-AQf2n72J%y{d#t?PQ
      zj;?7?d_Rrhf+bXi(|>clJ%-6#{#a7Q;l59<BMsY<Tm>FAcK_dumBKj<9sS<&Dp3;T
      zROek{Or2o#=QxZ4!)(Vji}qmcimk)FV@NjKz-x)eww~|&IqSKsTcjPQp6Q9xa~TN?
      z(>X%BA3+i^y3>NtdyFDmloz3MYH98O>A4RW{fdbfnaKl8fBzgRF3~$fDxglhP2xPo
      zB%WcGA~S!r<S|EIM8Q0+5Si(*_Z>DUM?0hoKfvB29^GFm9KhJ8Py`x2MkN5RsmwP7
      z=f}Y5BXAlE$cEq>xJkNOp?WcFp%})2Xoh_{f(}s-cpJh};XT@iG31b^i0*zMT{<ld
      L&XnE`4T^sNTmk<I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DOHUI~6#j0XPzr_ePy}_rS4$}qHfmBrf>o1&3X3WU#D#a-%P`G!rrx=u@K;<B
      z*DN$HNYrRdT={eS0md^!p`x&GF*E0$x!>cQd+v{4AHM)tgq}u>;ckn+;(K~W+OE>M
      zQqnd9C3IhLx5;HwU-e9*-I2ogZO`@VL8s$MC7Nj@7z*cO>q2ep7_JhQkoA36@x3%s
      z3=0?RKB3&?P9Xf16AKK(zK}L|HiZnepBWDs*eb(dm5h)*6#<f;=MO%t9Q^#wkXo``
      zTP-sr3x-kLWJpxKrpO?U;ViNkOe4=Q8@kXP?pnIxIKtx2inM~ZaMh!|hUh3#>cber
      zjN`o)@_`q)O|8xMHP=&`DKv)~p{ZT&YKs|+U?L>G#4ui{^?2*lMAxc>4stcy73)FU
      z6!IxI9l?;Vc@3(GQ)RU7CKGDc_8IO+B>#UH6^2aDE_KPE1huv6pE@I62HYWqGd?%W
      zmT0I-aXW0$Y!=s{F~mKy6}s$|)7{1}U<p;_bgZ7-XBaIM|JYP@xbKsX{<>|sTm_O!
      zz4z~qrP2i@o*sK;nOM@Kw9ebaF?NQd+u1(MGfcKTvuyW9v+SP?5*1(f0@)Cc?Xct1
      z7mRQ;k8}^HW_ptJTtOOr^zEnn5km$EifL}>Jw%xov@cHIiMgriBjlzMZ!!1@BU|~=
      zBaDB2A7L)jJ5M;kKniOZKn>$~f=S9~$7oWSq80IA8dr%sjIL1>qnM7MtF}h#82!tY
      zzJa|#GJZH$I>O8$rD6zWh9bHxvb;@(pGOiC$B<Kr9B$wy5i;DuZTfd7LKmWP%26JO
      m=h?ec(iA0uoro+O#qll~LlJY72|Lk)mi~rz&V`mEfrZ~&pby;u
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&rcIU6vw~QA1st&vHVg%T|uR#mc^5Y5)x81DG)FgG2m&oOqQ+NS=^l^aPgr3
      zh4JRa0|z}d(M03bf5*G=&8D`XXuRyqzP#_}z3+ST?Z?N@0PbMXK!Tyz<cIvoItW~;
      zEUr}G+L01gsJPtY!Jf71+iRN*B~)l2#V~t*dQB?fh@gHf6+bf2$1rz(;zM1Bm@B_3
      z8R%yy{UiC2cpiyRbp;H=p$J^=ZHpjuefhX{kAbZ+3{`!p+g97$i$wa>yY|G}m){2&
      z`j%Yjs%3^$p;p|cqw4R843fxaaRE64qYN{;1Iy#mv1*<t9PX_IPSg@o-9KuG14V`U
      zG0rf3sNrUdADhxwrY%fQgrTYSxil9u7{MjYyv#6GSnnb0G*;<Ubn)D}E5%0CvPH1P
      zZBH=d*Zl^$;pB<_JHeFNcS9OX4EeA1R2b56b2N<_nWnLEj}T`X*|eLYp(@2)ZGSck
      z6W1A%zTMPq^!n|jF$_9FRXOd}4~`i|3dK`NRgZ@uRUN3ij^ru|$jjY7GnW45p}Wz_
      zGEoeww82}%7(K)2jIJMLhHTTf%g@Sw{2UoFbw3Ik;(@EDnCm^%1#N^LI5|TCX&7{y
      z!~imM4${+4Ad3{;Y4`LUrpQ*D35?E9wQ+Ik4Te5pWG6q?#>AHov0{?Gc~SvSh`2+v
      zU0U{2Oi^T<h@{0duF$D(S8<KVOpmuyVU2QhR<86F>^0KKllf8`Gba>EP;;PWlJs?`
      z*?odHPl0n?a1J+cGX~$n9O(+Nx)@t1$8jK;XYaevJ_-UVhGpY>vIAq7M~NcZeNTG(
      Ncj=3Br3-NZ>nF0L{G|W@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O-~b16o%j14+^!V&=y2N9YLX`mMSrEQ9?qhCItd$kwiCor@anSr+0AX4uQ4*
      z!uSVFSm=sG6O0Qt{wU+QWBHQ0a4~c5oSgH#=RI?N{`ztR;2!1@h%n5z`7Yn9?0B|R
      z6|R(Ln}HG)Uvb&uUaPX~nk(x~C6vG6xlQ5wqLo05VXAjsT`FM-udy!`-%Fs6VWxND
      zh886F(y=7NkS{!&J6po@ZC5_4KV)Fb4C$IHbvtT{JAsIQOuzmyee`agp>M&KwpwI}
      z73#$;I%;l9BoW0>3Mr%$$TCc7^@_u#RjE6Uu(-42SwTlg^=Pjtb`%NqBhN6gtKmk6
      z?;FxphA9k(yc%koOXF@5!x+`f%M2rh)l+1H#wD$)7SF8OQmh3XQ+S))bOb|o)oqd+
      zPM+wy8;q%K+h@2RLjG^;Rfc%jC5@#{?#0`HJH$HI(Yo0dO;s(v&~vz%!gbtWh`MH5
      z_jB5KH;v(vB~*>mKXbi(hFqa|CaLCd-zU|9hHXi%0*_2RxR|j}`iGg5Ut3)yN`jQu
      zc!wDIbByi``%z*TZM$aqP1z0it-N!*a16<Y8+c9e*w%v`>#>t_+8Zr3nWZOA&s8MQ
      zPv-zFdjv_u=uTTf??H-eQeK44{OtH4GUFeR{)*w}+1w#UzI_fW#^{};Dqx*>Pl)pr
      zIW%yEBBOt5Nn@P8h=K`RBQn$T?kcQMj#kK&zJt9-JbEx&I)rgRp$Ig5kXis<Qk$;`
      zZk_>WPQV#VVk!jR!fmRX4y$KE3*|5lM6>ME3AB%bfD^(};XT@gF%(dwh<1NkI{SC&
      LZqL#?p+NaJHWT>3
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO;Zy=5Pg$R2!TL=hz4}QuY?#<s8t?9QH4>e79t#?R6%)gHW`+Uo7uQKtMFGm
      zdgh=fs<cYWt5+}n3IBp+?-Gb896ZcyPfx$suX}pG{rdPBz#=M1L>TV2`D?yk>AIFw
      z6|R(P8NLz~PjT7eZmY8980(u&C6w3jyIsdsqLoC9p>RH~A=KusE|oBa+c=Pl?<bL9
      zShyhigmR19zVKE~(ld;D!nL@)C0x&P<TL#d16yMlt~oN0rb0mc$Gz27=jZnshQyL3
      zEw#)LFX(!4iy>BXS|WugM$<@RIEgI7T%e+2b7@v|+ZHCbS6tKY2&o?LH$_)brU6Va
      z%-YTy;XZVH+0r`vK$DKr458V=^E9=`rM8&D7;*veC5FjDz0cdA21>IUD9F?;DK`9$
      zA>60jumwZ5?lh?;PL<KQ=ZvX6%VW47lKkI8R2fozsnj8z9MsaDcIt|F<#U_Z&uH8<
      z+M=nd#hsu%b7@?I#t?OkcA&6dN-vCI$P}u^=}8^;fML8){3EDlbI&6kgAL1+T=_1Q
      z`QYD(rP2lEoj!SWnOKsPX@hr&W8w@)ud4&N!;ot`M)_sg31_nGolFo_-f(=kDORnZ
      z)l=upZ8(H9_*5*dIISy4Vt~Gb^g~3DLX2!07TQP1^Mc}{^v%uZr;m`y$KGN16UMf)
      z<42hM@*%`b(Vit7pd*2G455xmJi%r1Xvb*ElBW~#U>Y;T9avY%ijYmc?`2!3bA;|P
      zrLSOb5sx0umyR%dNUjKiG$SG1Hc8$g!Oz1Kxnsy_iVUvf1`#sc#4WnJ9ij_iIpxp~
      nM6>MuDQSY7z-~yE4((`<jG>5m@&ujeLrZ@{yXQj7VS<I<<TD4%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*-A)rh6vzM54;D(X&;lx;E}+s<%i@(6B_yP3QUo*>>&M+}J6X2b&cg02f%qoG
      zN8m!Qh?;1;^&L!n662XoEud(;nK^rM{=f4z`}N0%PXO*>*+7D!(&793z}gL5sVuHk
      z;M$QAR;aja^Pp|5`}U@2yS%X@gbEF$80IgQ)TI)R2pWe{@dE<`3=0<rKGC^|yY?%a
      zfkB4yKZ2i%y-0+rFJKrAMc{I;DT2`T<+J*I2DZ*HQuC!QT{XEEiFEq-$bA33{EcB?
      z#g(pFWk?n4r6yf9zb!IIBA>-2<P3~6%;^d&k4wj@d!BH(w-z{2S4j2Xpe1${B^tye
      z!_2;hn_YfrN?)0_Fg+25rrP1sT+X0?E1G$gVWPNkifqtmrBl_(a~rM{TT#~*!8W%&
      z!I0nZThtAwp6I*hOsO3=WUyk$f3K*@kd6zaiPWia8XfltbFP@jc1N^Swe(7lU_J{I
      zvkXb!?&wlZYwm?H3_C*AIPKRD4jBr?(wU%|$HS1a4mDgyauo&C&%Hk*R?2_rqrcVa
      zDp3r|w8gu`7(d78jc*VYT7Jj3D_#96D`EUB88Qt&3R>c!tEX8w|7e$VLzo41hy>Cw
      z$eO|sGIS5quaH0%DYEGu&^bz;?Klz`Uz|R{*z_BWd_>`8e&Pg|Kfj9=Q*`D@rDM}*
      z674xH{spGVGf70!Vg}df*4B00ATrZq?qzsHF*+(&{sMM{bn<wye1f@SawVuZP%%k5
      z+f=L|xN`=a>w|N+iCZ!FHWo-%jMb&Mg-YxPl6m&F4;>&UuouI!v7PL}#;}Mod35)u
      R(mTIPUtb_)Sc(%^KLHj}0@VNj
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?+fEZv6o&uZ1BF^Bl!FMUBcQa@QoT`=5)x7m87OEhl0dxK({6`prhDql9s;kT
      zJ^~kVMWTtuTVKQXFs?n8lfZ=+Gked<`oDjzHS6c^FW&$>#6k)&hDR;F%lFD1-;t`!
      zmGT`cRH7UxE}PtMmRCG$O*9=|-w{FuRj=J~g%Zsa5)3n!YfY(yE&TevRD3Um9)`Kg
      z6JKdlGFU#gWf%;E?{Ifh_<`feH|A3Yw!+X~^`tIIZE`mh$?;k9^^3z_9~pWU9qFhg
      zhD6>hY|>Hnnj(!j1~bT@KZP8_w01AMT-s&Rb%o8{W#10lLaJwb4bf3#)Qb^@sa*{>
      z+I-)To-!<9xFQG)wZo<HAdMl6Y36l?(R}R`S*MXnyQ0mrHAjl|ux$x{gIlg($kn_C
      zb;GGA`tAl3YR3r}o<xxUAAN-(8C6Q7F=+zgeaKznovZ4l)e;R=DQxRm+{xe;ZZpI^
      ztEFo?Exwz^aLpE~%IUv({yxKSzHla~>hd5U*S@-AORhqn8hd;(W3hNeLnpttvP6^=
      zIj!?HF-FcYx^wJBkzu0cS*5mKyHXJCU8!-rcns;f7y1qH+|dJ`x?(>UbdR*;)HFRw
      zdM1!UFP(j~{4u1FpgU~{y$2|=L3uGcN9HGwke&R5{;wF?$_*c3^!s6?7^ioRRDemm
      zRpQhzj5XY#$k<;kc}&t5Q80y@L}q&KU58c5(GJ<-53mnN#t-I;M=%a36oZBjPzk^m
      zmAOsuw`aiF6L1#On2Er%xJ$Zwk$Ns_p%le|c#eHOf%Z@kco)Gk(LLUUG2~I8i0=MW
      PI{&Y<bE))xWKjA8e6s$1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO;Zy=5Pg$R2!TNOPyuzpuY?#<T$HL%RAJPrg#d?Ds-QeLn+(gQHnVYeR^g}U
      z(K81<QKeN<Ui}CD7%h93Kt$l+VP|`K`n`VL)AQr^mu~<TP)Q@k@TkS#^8HH3v!$wV
      zr99gVl&JWM%O>}ll~vbV7fqWRdqODR2s$0tQ=*whf}wCZ)(~oQSC>jy!ZQw};`?c&
      z80N2tKBe5^P9Xf1Qwa>izVK}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!<KsP}jcYNE8Np@Ll9mSQ7l
      zo5Fj+O-C@~>u!T;;#3*!yUv8#vweoeh~)n-qsox!$)zso<e;{8^;2iWn}9o%;hfG*
      zvn3j;THFa+G@He3Xbf@JY=tU&<#fXs1}vd!oUYaN4j4uY#lM1T4)=Z1(Qnw6<SOu}
      z)W;VimP%KYcy{g8WnxKFrVZXEj<Itb-Ol#mA;V<LHOuXAG|PT8n`QrWlBjya4ZMbU
      zZig+OzG8->fux5(Mbnq0ZxU(r(Z8P_NDLVy$fm)eb%;E#DK1X`iMgriBjlzMA2Ik9
      zBis4WBa9z^jxg70%@YpLk-{1VP{%mdaf3YC37WD@(T;d9jhn<BTDQoGkxh5d&9+AS
      z7@g%x-@!g089$sW9bx8>Trq@ch9bIclDtELUqvY<P9SF~a=3%LM96Rt_v!3Ggf2wo
      rlp{Y7&$CZwq$zR&yAfG7vg2Jch9c(36Lz8pE&U7aTna5m3FiL*bCV97
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%Wl&^6g?9saU0U6qz`Dzqdc251d9dgB2^_6RH<!fky0Wat8p?IM~<i1W7K{D
      zdzO4dkziGc1&?iif<HlAPfQ3jEV}S`=FUBjd*`0~{QL#LJ(NwP818rZ8-8Hz2d=Ly
      zu2kUKkrGy@xZmMH$J&ziBN2w&5gUQ*?e2?!D;bzbGc1jU?ui4{JoFVmFp*_g9-Z|#
      z79{cqza<%_LJ_#!Yl$FqrT=8}Ap_fDn5auXwxe3yi$vz@kCP8?zrEuO*)`X9)jCO(
      z8nKAwao@3;RD$o+`jJSvp4E_T?ulBt#gMMcj>y5lR33RuFcccDFLt7yErLC6dxD{;
      z(_5UZ&^ZaF)hjn-Sk<g&?pBS#?Dd-%^PlocrFh!o;C9$I-HO){_eg(sxX@j@E8417
      zeje9zDUW$9Fc{MA4p?+Qk~D^Mj!<>3gd>APhUrpy$VlDeVMsQ|o37(?6$R9Y)zcYk
      zmH#wg@QStdxL8u!;XUG*`HLfYnlapFnD0uvnlz>Ql18g4li6a(HDwgE#fBTd$KvP-
      zyc>6srkF~mFGJq~OpMWgoTfX49MZI>H>P!xBAb+F(BE9C+&M<!lTJEMYmSnEZDi3v
      zk#<Y{G)!ZLP6WU#=7=QTUBE@kCi5iLr`@J=j4xEagS|(_I9jP3WATVWDa7=Xn(irq
      zpOLc{T4Jsb8Audx8CQsq;VQ|ea80AHYu{BJ2aF>7I3UeZ5D=OyulGhm#&82SDH50b
      P2YTyYs2mAh)&iwpsQdS6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5Pcgbagv6nq#t}k`D&AxVsYY-ssaTeHADrG5>#%RWEC7aHrQ*F{tj;3
      zx#a+-N*s{5@>lo|6|);-0*T;a&(6Mi@6GIdKmGC*z&%(dQVd%|{*I6BH-Y0xn@bru
      z-AD>Ml-%p{pl>(*?g1YO6KRIc#n?kJmhEFt^0A35!}em-Go?Um4}WQx$T3*|06!OR
      zBN57^fMF#Rfy3R72tvpAUhF?&U`>WI4c}9SWrw?w$UK<*I6Zp*G0%|Qbv#Gzk*7*a
      z3E3|926mg8^ak~5CX$Y8xBMP=MZMZ#NH_exD8N9uh-H)*N-f6|2hpf2f<xYQ1w&cG
      zJDjZ0IZmeKYbRuw>imD6bp~@d9jzjqGe_QCZ7R8)HA=TM8}5?e`fO)UyF<~F_3A6t
      zz||ry;WC5acZUg!9zYCZSQ-e~;8G0y;Fw{xQk^l<aCsP#&3xM#cw9ySb$)*yv1{p?
      z`HquktM931NlEPy!`dGl@mu6jVaU-yc03I#wEZaPiN}tbcQM|<yJ||bxYQC-$iSrN
      zBJwEEe~DH)g(A`v)3eccg);kuH0W>EtUD(-`&oll>02PMy3V4BHHtQ;Fsx&PPE>$%
      zI8P)hx<Dc+ifNcJ?Grky`jYhx>;p2!q-LGq%7juWDEehh*P-H<<nKsJY)nfMi4v}n
      zEG;mu;|AT`)YZ4N?;V{7j57O_kY*_f^fXyf$3{%Xa2s2cQ7!*2-Tu3Dw6L_Q1!_M5
      DIV|q!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>YuG7=DJOK#`V8KeR<{{VWu5<H7VmQ)4j3R??bKi19WHlXY;rtGly?{t4sR
      ztJfa%)Wm~{7Z3gc|BdmT0V!HMc-Y;Uci-pZ{rLX#^A`YjQBEVlaIeST@V@;jl)kdL
      zQlWHWCG1FXzstj}y&E|Dp>(CsmGs?KB*Hy@DAGtWtWAa<h`wqb`HJ_`NHMHW&U&f^
      ziTuHDNrpKhm)vWMFp`1a+Ih&pb{S^sfv@eTHuqvN_3r+Mmv6uQC^DqBq%YMrNt7B|
      z#P+!F+D$6KcWZ-4tfXf*f)4jYt=wiv)`PCd!opk*Im|HR8`2kh@u4Ha1MYZ&p<vS6
      zoUG7&7)+`cGGf>?tpDAu8bc-?c1{bNF-x_0#^mVlxN-U`UdP-c1B>I8?mIovQMK}O
      zUC^Z*ma)QM1x|0oVj40`V>ssuRp&~$L3qS4Un-9ose3$%$meuZx-{xIq)u#}&Dg5^
      zqXVNc*0zZyO-g!A7#9BE7|texTMWy+z^MkOt5ww<s`>_%Z3c1J5s#!ENOAHC-qBs8
      zHKvm3nWAR}X=La-P3xUN7D+nOkm)^3ksZpj=$qcC+&)46lSw*H?<^$)kCCF30-e?d
      zX_&_X-3Wk1ED?!5UBE@kCi5gVpnXDjjn7xUg1yI-b-YnILGhSE326FRL)Rj3o18r}
      z5=#TfNFtBRxI%;st0bSmRfE1}d{<2zunO$sh%`k(z%gVwbGC+L4A*gkBD&;L=*_>O
      L-bCoS5h(ov!BX~I
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*TTc@~6vzM53(KY0S}rQ}QbDAp!0M9^B_yP3QY>h!kO=W%wjI}PmK~U#CGZja
      z3ci{6$b&wSXyWD758)><#xt8*K+*UzGkfwszjNKMKi+=?a2vNQBp7Bpe2?$jJIV{R
      z&9zpZ6KP?Gng?yJ+V+Zc9w|>MPajxFF-)DUuLoMVLNyNp&G#+zG0dDTBv_ycy8J7Y
      zg?@(0Kg5s4ZX`n8b707YLV4WZ5GwR!uwK8*z*ZQBYceo->kaNlBK^7i?fd%lOUcl;
      z=mnl$Vn~(h<qf)OvMmOYL_ULa$XXa>m^2yKJ`Y^G?)$>!{<3nTZ4u~u`z^7fDNsMg
      z8S;AuUX+n8%I8HzdLoVBq9I*k7%Mf7K~3sr;8sn@Y{Lu0TD0v5^@KaVAW%cLs0L1z
      z(0A9E(l5M_VJ?RJ-&Cp$={P59LY-=*ZgHO&r!slybVN&6%bTX^sSJv^&XAN&$K-LG
      za974K<O*HmG*YP!7)DCv6QY{W!;qp5G(9)qI#N{3oj(<emA@3x8)S8fC>BLp<J-g-
      zJ;mtut{?LZnT~YkX+z^JWEgD9NVUX$&$KajVnG*7CA8U88WKpuqSpilFi7_h?R)|m
      zr07jEr!z;Etyl>ZW(!9+Ur4>iKq1$DgW(Std72+P!i7)oV#f(O^W+Sy5V%3ktAt)d
      zfh^+$CIl|y3f<;)71t;LGi~k$dO#YZ%2vLBy+S&9I9oZw<RO_71Onxhq;r#U-lB}3
      zod9Qh;4E%nItJgw4EdE}?{Zwpd~64jdG@vk?IR=L#;{EMPIh7R<D)_r(}ZK!x!+xP
      L&vadg1K2+SYI6MH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?T~8B16o%jF2c=kOX#vIhQ3183mc|(4MF|P1niLx#sgn2=Guw{qG|O(Coh9&3
      zjPb_AOD^<A5;Yoc{ZYoVV=18Z!i(M6IXUlh-gEZ+`1$E8fa_RFAi{8?%Xj#0wWp-3
      zt6Xa(tw4*auesads#9I_tW707CG}n_==D6MMJIt6!~Aez!_~qTs<r28zMH@Z!_x4?
      z0d0#rf$&!kOEYAAp(J;<gz}~5K4{!#U~3HHb<YiLX(NcwzgqY*oqO|<VPsjlQm-(?
      zijC419d)lG#t=m&g%rjU$TG}@CaMm1?P|kugw35*We3~B)pvH=qNl0QD5e;)JE5C`
      z7wCfbyr3wbNRyZeNv9d6i_IfYi-zUewXkHmDP6H1Y+FLz=awS~)b!fa1E)^t-Ves~
      z3+Xf5G?4!sdW|7&%+WL&)U<dRaED+gENxg_(bl!nqp<x;DO|ushNx$CLqkW-`)LfP
      zY@zF%{+Ors7;?qZv81}geV?i(They94it5D>+g)^@;|y6{L$J9Q4&;Xoo^Fk>I9=d
      z#8H$PX1bnLp-nW~R`CzljbW_i1*$FX%5bu?!&cHP87(z+OHZ7hvq)f+&Lk~+1Y?NN
      zH*EvGCn)lm@*;HR7xM>5=VNb?%x609F#Z{n53{)gOn>`eglFiTB{9$>>^d^oAoM0?
      zDKhgLLH9h}2!?YwPX$;w_kN*!loJ+8m%oF(Mm)N|SUx~upF$CY@CkAPJR!GF$?LOY
      z;Pe2T#vJAicmbD5cg3i$nocSv4n(u;{Qx>bK|mT<%6v!rFoq&Z6bXlLBwhSd>JOD(
      IGX*NY0D({ZWdHyG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|^!yQNe<%7+vXK?PbW)Nj<*Mp96Vq#72Q5EGLrOv+-})!i+D2mh16
      z1Bpg{fIq`$|AC3|&agnG)%ehz>79Gdz4x5i{r2ngF@W31>j*F;xA+d<&AfL^%gb=j
      zbIeNJ6B*az)&_SrGK+S_*c8HZb!ZHut+N-b`nIuWd3;w#m|?PY)@xaV_~uTl=!h_+
      z|B<{bKGcQlodFoST;Z6!Ru+zH+SY1uo`EegTq@X>Y}qUGT3v*WU;O<3V{2faK`Xr~
      zEig<iwXV`UW|kphtjv|>=az}P-6cV+>I$#a1VhgoMU$y<tC}&?38i-knqJlQ)6yqt
      z|0AlbmRqlxmg(ggg2_~wS}xcdA_|5?41*YA2<QBBEm=&J+vwy<3?1l{yQ?vDp;N~g
      zNh3#W>@9-p#Aex+h+v!woenE;lQDE7E_bOIdeF<zxnx?RRNt-$$Dbp<WUrIdoCK%w
      zRWOPm5=824nl3|VN2*N@6iKP7@Cw`$RomGkrIM)zsR}jjx-@E=VOA~f)g8jjHfQA0
      ze{t!||7@OEbgES1+r-iP2ZwJ+1hWj$ExR)9s(VWY5#Z#|AFMB#YUyM*CCaPZXy*87
      zZnK@|x1PF+8g|`T7tc(2Q991vni**d#z^NN0ti8;-yqr`{cWe$Fn|~m(oEVXq?NP|
      zN^8_g#?Tr@1byfy#AW*T4jMgy>=&@L;1LE6F)X*5+Kz<2VstGSzh<my@f*e=CMZC8
      z2N<Tv0Y)g4+$VSdQ}pboc7UhU%5&NmF^QLWjE6|83{WY$fqvmUVFDBnPYoU6<~c`H
      zMOTPvRpI(ivM{ZNk?qeQLmUjZ=&KXJ9mRcD4KuCcKrqfesjzG+OhMqSB8#bg&?oE0
      zJ=~{=)ZrZZ;39Oh1yrM{9{JE2T4f2+W8xy#ZNO@NS&cNwHe-_)u^(Gt8FEx9fG58J
      DTBI<D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fy4=9R3ao*-cmqY%fY{Ev>x-3dDMAwG@SrwxJ=3EKsA4olRIFHSEUSO$+My
      zrVq||>67DwGd}p@i&N7FX1u-mprigtj^8;OgaVy$GTHN;-}!yN+xd3?_~*x80bIcA
      z8oC6|-L~)8>zSrscf*VwhJL-;3Y|<4+U~OLFK1@GsukLyqaiLZw7+xCZLL`wZfLJ-
      zNIWuRS*BpPsjVae{ek1x?Z%Sh2X)U~%+CmjS%KcH=gI=YCA-mby1PI7`R~4O?yU-F
      zi^Uto(#@j4aAE&a_SAiuta7e6lP_KqFgobg^<06uQswzlHfLGt%-r7GvKC6^a*iH)
      zcB+`o6(rQArc3h+5+$>xxpE<=a8JOAxho5Hwc!XHd_$F$Y1r;c#!@HDf572<R4W~~
      zk;v_TOr30fqSmOp^>9)kmL6Ubh-bZJCk27y2A;$Tfy6}TJf6-EFC}?$(tv?piJmfW
      zAVOyh^hM~Lf&K^$8yJYtc>`vI#ta;cP{zO^^lG@ki;~mc*_MuHIg*z9j_ciZbv(~a
      z({YzM3LO_Y=+0(r)oCp2c#*Si`d-Zm0_DNB%<cVH5PHp~L%%C*w`RLFry+MQGpJql
      z{7`PDIQN>j)@(T3%FeO|4&#VKIRlU3ae=-<-F1qswW{NH25lC+8s%kEWV|0`Od*Ej
      z9Aday4+OgJNQF^#d4Zl4C(KgmE1ti>t4v1{i<-_h>>yy(Nvpo%+F{El=i*+EiSv(;
      z<$s#LJjo~;GZpPM#yIp)jE-V-Sj=?Wt8y@`hXSI1bk^zXaC&%Or47(gzKlD?c4o_W
      zuiUoZTNahFyp~^cuGXcHd$(Tuae47L$tlP9??w-fLW546<VU0nDGW-f5f4hCsg*KQ
      zD@CSON=&U3m|7_>wNhMMkIHLQD=(32g3$+Q6*vZnImBrL{`v``65GTR4=^NQLcvoK
      zY6_l~P*?D*g#D36TH(lLMB&J1RN<uZAMa27f~PAn^BJp>FrTw3n)!lN(alR1qnI!8
      zshJae>gFV$N%Ix!0j4E~6}2%$QX8kpYU4C%ZJd?7Hqw&V#)xFLF)FETjFUU_0~_kX
      zRX*Qlt3Zxpo#hbbIp~`h#ap<98fLJHGS=`Wn%p(Hdlx=`>j>~6LVSW2KBfH&+{Kst
      zf6bHcuz~w{51V)&zu^P?PWzv@f@>-xI81&qqS0cKHFVLQ7&*3y>)SP@l=UNC_Q#5M
      zB=SODU6;I|S=?X@fdb}uR#dS|^13jl>_E&E_mx>TnV=E)Tm>@}j&*_!u)$Ypd6+uC
      xoBGv0)HoKf*rASdl_}zFOz-A?yMr6=q>W>VbB@yP;Lhyke!mY_;5F4)<zL|<i?#p&
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO>-MX6zs8Otu4!rV=IQ>5CjCGk0>$;kbsO6BO*t}aZF^3BDayWWp8S|>)IVr
      zPOea#bIyS)7Y=a26(~M#RB_->aN|b+J+o`cpH=uE?au7He%<}vyg&Z=@fQGZp=n`2
      z;OZm!x!fsl2ac!8QmMdcb(LKXmGn9?=#-cIRzpc;Kd@!!d!dDdz*!wr?kdME-<9EJ
      z!&VlO0+)}6TGh~mS=a*?m<a8_k#5rtLdW;k>mLb-C4sRjGcd7gO1EndJ^8ct*VjL<
      zT@pynIi92D1qO5Zra+?VckC1fF_A_ZV*+QE9nW6rZnf-SO}1QHU~<`SGl66puH(&w
      z+H^vJ+2!Mjo}{@VFqEs;@=cxc1)cI7Q)))kP?g)V?Wo68P!~wKzU<UwTloPuYNVR0
      zM{yT*+y#O2Ig>qduj;$5-B$FVqIHcloDEN^Za@J`$Df-!9rwySfk*K=-mpL)GyTH#
      zQ>XDJE|Y2KJYilsTu<D(4d|#s8bw?Y7<QB$NF!=Gm)|F#9`9F1aTT)`%5=V;WAAI4
      z-FA%`JbOox#2$hxy^Zqy)+0JlvGBG)=~Q(|LEzmqZr~<a%T7n&TIAXP?&eDVq2~R5
      z8Wqe5Ser6jF%)USLl(2$E04hRKGl8i*c!>e+zf&8DNCa<4>alH?Y%}_JT}?sYj1%!
      z>!K-$F?*%!x~o2~qaEDYY1`Yn^M=7T9gjq0oiOY1ObS)p)eXy*J{LEl0cdbOcpIi!
      zg)cC=VXG>K!-gO50!$q!Y}J)vNPlh|-JL6*U{!BKuy0upqOZs;Hs!&ViAfCO6FrLj
      zR*4r^*`-JV@Am=5aetY5HvDeTwrh?a5Sc@R&CEf8t$ohNv+eY@pP=r@Agu6Suy^?z
      z;_oF`80K??(|G_X^UmqUopJ75=Tq=GRM^Ft@6D03{7>;HP(uQXnB-eJI)o`?xDt9+
      z@m~YfnP`wtt1xqE7t@C!){#WhKxCt1F$4qfBF-CFiyUW|P{Uq`VduHl6q1FRUA%l4
      zwMAuZgE}3Z>Y*lMRE_ltzh#LrfL9IGr(}@edbUt}j@LL+awN>xyuivgm?}L-N#HkJ
      zzgM{O1K#<R>-Pkn{rk7hJ_v2gH1h%hu|py&PPh<dboc3-?J=3f2biatEFHLo+hno8
      z*vLrz?L&TJ8{=lIc$GP{;!N>(jQxb_XOnk!vG{ADNG{)Uf50#pH!glb9bZz@SNlB3
      z^fG6##C#h4V=OZ+YohNN4@zdAdM3qpJ<udKfu{y6A~+a>(HY$5S6%6T=<4CnXGcRP
      i7O3q(9GWK!t!<=Gq`wCQMY&lF!$!+&n76f<_WFOf&hJJ5
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKq%}*0i6vfZ$v>h0V^6dwH099zIGUCQXk;H%|5JW<ig)85*FLg*eqtiD8{uVc`
      zT(Qs%CN7LS6E|-CYmDa&wG^ym(!P0j?){x}?|VOffB6bv5%+DR1a9rhJ-P3`iTpsj
      zQtQa~Vy)bkmO)KMHTS8i`O-#OV5)cK;~;KU4gxLrZDa*zdS|VM)klBfHu?lgz4Nw=
      zk8SlfRxRCC;0Vl}Q?MR-on(QbmWq7Y*ili-4}%wLs{&$OU~nZ2Oj~+KHe!|e_4DDo
      zg;!e#0@)=$@b$7ly0BK<;j$9elmiQ6ISgS~;NpfKsLi<Pspz@%8cJYfBdk(EQiuC?
      zFs)zvErHpM-cC=Cv@DR>Ge&4`jUL#tY_NK~kd(U(8Pwfp-ma?Za`B~u8<?_jlg$};
      z_tzYzF(c4dS9+x(TSSZ&id~E(Sa!gp&fzv@k5iKw2v~(8#jViWH9eh0)8l}_O0DW)
      z#7Xs6{CXgD9MScIe^r)B|7pE*IOSzBZ8A4ylZ>%bj0!JbP%rnv<!qYf-U&FBFpjF~
      ziEpOvB$si)*i28eA&XB2Hv0K~6$8j|9pv3k;R4cpczBGAFtW^8ifeX$@-s$1B{}2#
      zcarEfDHTj`KXIIeOSsG(^Kpe_9uX#St<9>pS^3g;WURx|5w6ek_W`4&ZxBbwbC-XQ
      zO#09|Bq9YPG(ibK(v(MNjm8vaxSojSJED2ap^%6cnUlhNLMbJU+)d(uH6lKC;8_NN
      gFoBsF@N*kBj5{zTW(Fsv3uj9YdXx&>O9U4G0B;oVH~;_u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yf}<Y7=Df{mvFtUsflJ<TA%`HR+fy#C>9Qqv4}B!U=DD?ZE$gx#q4+VM+!eU
      zQ&V4?>6i2?n%=XlY2^o*IlQ;$y`1Mg@Z;C#ZvYmM@S}?%{FWc`qxgYkn0B1owq=xC
      zwum=vZdSQfjc<vn!Lxi{_@OXNUk1(4-xQX?>jhyojfT0CUT0vN3_WWNQx>)hyxtPt
      zrymx69&N^!8TzuxQYMwpr*fs;=jnWkVK#G_PI9glhM}|cd@h;Qx0AV4HqW4@^%te&
      z(rHc2HUGkNH|fe|Eziq!!7%vR=^L+evliE#2-WWuW^3P>*@ew@V3(nd(gTS~-7pP%
      zmBAB^6d07XMpXpCFrwlbMj3nwH?D-!k-`;<jHw8sTWZ%;s2%Nwik^-(rJ@(ze%vCe
      zB~Rz)4Pb@{HF>lyY+G2-cYB5{0=PpoojGlbo6Q4m3DXWBLQEOWMwBm|g69}C*K-aj
      zr-`cQL%-DGDh8lYtBhfaY-_(PESDWE)2Pt$IXwX))o}*l!3bU4-ZPr?77RLR;<YC1
      z4#{rjP&jho0tN_}`ez3-r`Z3uAfftu)8<FSeo$|;tcut$<bHeqJm;9?4O4Ux5B(ba
      z2*C><S$?v*5WuM9pY&15z9WfyM-uZSLy`wa5(^|1${EB}sxU;>ce3TD_64lyIl=HT
      zLQ+*6bzG`mN1c$W&rv7+UvabO(WdpHqTSYuUM;K_ecG&kjCl%Coi;)gYh#>(ZA?(K
      zjY$f}K2fVK+@<dgS_<%lMqI}*(saQr=CO@MIuG#@3FMH3PSI^V!w$CS=qR9wU6k+&
      z6|&!8nf@MRMR_fHpzfts$s>Kf*|8HWp7jhmUQPs-oxI@=3ilkM2#+P)ry2?#&<q`d
      uVkDWY-^Tn$r<a^wE&!-IRn$)0t)kFOkH{m*J(nB%H}~*@T!zO^hn3$KC=U_<
      
      literal 0
      HcmV?d00001
      
      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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
      MDK+Rto?0;dACCcG#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CTW=CU6#izqT)JH;thI`^Ua(rg%2JDn1x<jKh(T)7O1vZ{159umx|n4##$Vvi
      z@$%3_6BA$kQN}YvqkY7OneWVZ=A4=Dob&7Vw;upDQI3E!6b{8Z@!omsyI$akAn@Jp
      zB#_QH5ME#SedmenyJFw{AlG)if$K?07Y7j-3~?3d423sv_PU3%7cj6YL$)<*#xe!e
      zXw_-$(As5)R(eC%bAyKrbLmWn!Kjb=GJ-{h^sH%(Y7{W4d0-xAaV~--hK*T++u}%C
      z2w|BaH?t5GR5lUA1q(@BWC&MIL=@7EM)UvjWIFR;SW%w{8`Y0f6;~`ou&f-{ltqqD
      zQ^%Tx=+tpjSz)6_;+5`<MW7>YDT^E@1<6@3r;fa`!VHTo>T7#))Rq2$=nf@=-5T}8
      zup@j|oi%A<4h1F8qNW6I+%ZFOW?`pihq`X=k0yRkHeB^q?C*r-RFfF2rsqk&J{04z
      zq*oSB%^giG4F*kbh(1E~AuFlMp^?;UB(WMv8zHBvEWo0;Gj#f?IY53#?1de-6Nz5w
      z3+!W@|B6eROW3QLyR5mZnp?F~n!B#K8=6bm>zYezE~~k9dqZ=#HRpWR&u`LRL!5q6
      zLzLGMBV6K-u)>>25vF+?dA^4tVTB)Hhd;w(!l(Qtp7U3DP1xrp+|k*TAnL)1oGn5|
      od?<U2t$)v%bP0SL27jQ#)OA&}yC~`;_w-)EeL_>Gh+!MaKdN2hjsO4v
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7`+jCP@6o-E+1qyKiIouRbQ7F(rC8RCTN-gxHT!N)lilr!ur)_{>nnIc)f(Rm@
      z;sq}i#S1DIMHGdi7D1VDeB+TB{{x-Dcb|Mf*IL`*%<u#+dnMnu*UmX>ue~Q%u3x+i
      zAc@PRh!83^2it<}i7ka}zL*G##X`2Dub4^n7K40OQ0Pjm%yeag*6fZ<S-Q2Q6hjCx
      z%}C^e{KiB}$L36Dkq~K^OPJMkt4l4^jHC{gI#lUUt;0MW=IgLPhZ-Gf2_+3lSwG_2
      zpn1OL`I_fzp09bn=J}fEYo4!pzU8HKVoE2bbYe;-j&5AinqJo2uzE@3`lgoVWrX2%
      zow;m2TdbF~@^~9zNUEnRQ;O+?@>_kc5txa1Davo7s?9-nhA|7X3B#no>$Q+`Zn=<}
      zy)cS0JiwTPgsf5b|2tHdr_<@%TPNN&0)!-ED2C~qR57Z<=Sr%a&nR`WhEW^JN|g&4
      z!<~GHQ6I`Gm5Ui8ob(x~P*$s4!iYM#jIlhF^Hi>2+~H&sV`V7kt88JglaDf1g>r$)
      z)r^r&wlUU(vPR`v#waJBV5|#et;(kuqn&)35vVM+%}LHx+sTMID_ghWMyhXe6T@?I
      zGvk?1TK&2iW1Q?^Yzd{+ufQ1VWRcMqN~_<qjB!pr$Jh}{tKajC@lL+L*d0o%-;0b1
      zPQJw07fP$&0mhw9zQTAllvcmj7<W1O2II|8TK(Q)Omy-c#=D`k`n|`P<mCH|4^&$H
      z<Tz^mK4eUG_G88;H&RpfqMtJEcJgz^u~6EJo?zVL<QI%DLuoJi72{qfzh-<BN_)|7
      z8B?4*%Q&ZUtnTPd*ML6VdB%MhCRapLHlJzk>+Z-DRtFuq3}H-DPiK&83kq5NZZL`x
      z4C>jNDi=m^Q?~bZPOsjmaur5fd-@8UnWb6%jZru5+c|pc5ICLBX9}rY(A%4l)k`Et
      z?r!-Yclc!40y(VmX`-G>i*f`l%4xGG2g{<IA&YWcEXv8SD2KqJ^t(mrY>U#w7NuV;
      zN^4q_F0?2OXHj~~qO_4k=@^UB92TVyEXs~sl+Cp$`)E<N%%bd$MX9~Sh+HN2W2(I8
      zH2Ly}F+>($LfKlcB<&43>6Kg?z>GmuoX1?FkyR>`RvMjWlumdmgf1}pprdh5gwi^r
      zi;Uu`M{%PKMjIXN_eAL2rAE_AV_6UV1|K%qY;c8Oo%o2cR%6w%6~-Pj)^2QitlHS)
      z#-21bDK_2MdSe~R<hwWYfYC0a8;wSOQ=z|;HJUR@e|shdkT<&3(ZCa-b9;?$Gm3va
      z3XE<yy3^6Ko(P@0%jh1Zv0Wa{8r*Aezrl9FI`L&=2aVOo+Ks(#?2xgFSiP~gjrALw
      z600zF*w_(e9yNM&#pp*yj~d0FD)e_gGkV<7W1a}5Cyk!6RSO=D89Z(9%uUOFXLR74
      zb=LPX9+ch!B@v}cjHD{W<nsio!8EGH42cy~51&$Kr{&1gO6;RmI6`Z1hSuR%3h+B^
      zz+aTZzqFOc(>9t-JE?*8&>GrL-E@%l(jhub{dAg+&}BMGSLrxiqf>O9&P2x1KqO8V
      zB6TzvSwu7OgFTh@yj&x$<54A%gb$rHh#$kpj>;rZT>gbsSQ@)YxPYH*k&8B7!p{<;
      LwnQ0z!NmUnBn<-T
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^OK?<07==&wO)@03VJ--QiXfnd7#KnVBqU-;5D5gL1|lzsH^~(Sh6zq4fKf3b
      z;tNqQDx#ty4|RizWlF8ehN8-%ij5nvN*9!3S;dBp8yD#R;4)c;O`kL0>Hep0|9$Vd
      zYd;PGD94vESc9_7!S-NhVp}Ge&L)CvHj`}c$%cvUY>@5@GM$O#VP`UEN%n@*mNvG;
      zkY^C*6^T@k-k4}^-yC*i4Q%}^gVLtqma5?u<vh&hp@N4>9_H{cmxp;gRPj)4;MJE?
      z{ep%i&8ymInHpNEhL)?L5;2)mL9^9W^15XUm#u2MVYq-0DiBk1BjZwnsFWJoks8{S
      z8rqo}+MTXnNVD_T=-x!BvM7}kjdCg`zp0iel^RjokxHhM*#-2JCDU6C@*282!x&~5
      zlnnPc3z0y14D=MkZsv+$Yv?c={J_-LHtyfdVfT+$*A$@)a~$S^52W_`GgOu|Ha6Z|
      zo$0NGFsOFOM*%-cjYDm2U*#MwaENJG=ddsr&gQVeVT6VcIV{eF6&x;cDAaJN!?Ijh
      z$>DN`A`P1z9?6AsIDE`uq=qXUR^`IE96s*gG+g7bHW$w0aJ|DV8g6iC%Y{`O1`fp<
      zb~tqA!fFnmau}uICWj=4F=<ZuEKavL#8JS<zLk$XO~=lst>?GR!RMt08Hds8vJPX^
      zZFjg;-A;$G>Utf<se8`hHg&rk#;fadn4oUA!|m$!INYIbufv_{UUitL?sbQ|)a`Sa
      zq;9{%WOZ*l+^z1Q!xVM>4pY^==P*s(A%}a^9d@`^-A4}hsXO9Of&zn4P04h)qGxM+
      zm{}RLr$U3#O<f&9sx`<Y`M1C#csR-@RZ4GFc2lzZX0AAY?dUUA)Y8?H=?E7m`9F$p
      zd<$ptt7+gG)9EnNkP5oHL#po48v3r1q3`QdIzPJ6<R<Xt6{UMBN>@^pZl5S!G*P-!
      zqI7*k>86O%r4Xg|i&CdWsn4R+Wl`#}D0Ntr`YTG^6{X&aQfEb}ucFjdQR=BEbySr4
      zDN5ZGrCy3sCq=1`qSQrE>Y*rgP?Y*7O5GEs-jP~*U#Fv#&gp)@YY_%}@+Xw7@$(A&
      z{I7lQ?{6`40F|dvCDdNzfa!dp4=D9~3Yb19v|gx5`PLJ<Na({#jZXp3Z4}xh6yN*C
      z2wfrcQKfx81w6M!Xe-nBIv;%kR|{Mxu#PZKd_vfh!e+$lgtZF`g-wpn5Vld+W@bM2
      z`=*KL08*#XCDV5J_#+}u3)$)8N<_Mato3m|B0WOZ51F$gnsX_d^9&Q;O!CdH2tBK)
      zcnEr45Uvi{(hG_%`({zJ@I^%zhivmDMQ438GMe?WqCua^U4Oh+6dm<(IYO@~+CSuR
      z-e44`LpU2vdQ&I;>6@wuy(N?AT=<&E*&Ps)@o_XF?+9u4(I1g_g(QcZ)cZo(eEb^C
      z`5;;~7?BT!(D@#Z$j9Hv1^$G_gY?OQO=FzRqRjT9-u7X&-HWu{hduTn4%<UGWsl&D
      zJ%$VRD_pUsaLs;a;`RqK#SWTEd&VrbKbzI|yxC%ZF}v&qbHM&)j@e6Q!2V^<*(>IE
      zd(~XE|5(rdYscFEY>Ag==X-^=$t$)SyfJp0H{R~{Cfa^)ialXF@Tu&MUoraX=?jJm
      rQbRnybO4{_wqHb(U_<2DO|s1CBz%rzQslUdCvcLqNJ^C93rzSQ733as
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW3OH7<q6vzMP17?Ql?J$f`99wOReGH{#7~T|YnbM)6!+=2Pv|8!M@YxO>209Ea
      z)<?BkHF0BNVsxcD6B8H8qKQqKYGO?4!fK)})Wle0(z@`mQ8((j=T77^x<EIaKfm+%
      z&b{~Co4NY?JC^~(@SGPGp>f7OZ7)UV3)y@zY8Q)z?9^h>i7piF{Ip$|jt)7~S$iyd
      z*4dJZdr?jZ>V#;{&L58sPt7=)BB3IgI1o<~b|hC@tcT!9CdS7TqbySK$@X+7!ONm6
      z9cw03vFb>7PbN|miRAD|!jR6tks!x(FU4Z6pb~0vp=yqbH7~_l|An>vgQa8bE>^?2
      zse?oN5~GvuR%%yptl1Ur=I*ZC+})a+yIb+~W^&nlwz!8-7HOCul=sg~J6_yIh^%&h
      z%i}(vJbnzQ#2wh=#YV!;)h4IxSw~?r>IptxYw2*CR(-fSzsHX-wkT}HHa_9r(t6q=
      z0|SHqtxm&4C3xWq74VeDo6Uk66?W?ODy2O=MmnfT!3&RGaI=CB^}2-?-9js&EiyRx
      zzrNhAOG(jA#hY2LKh&+2r@Zfq-s7NY=`IDo@$S`%y<Z#0K7}>Lv0p1GHK1@n_b&sR
      zcFnM^KB%DdTKi0XQensyyD~vKc35Gpj@_g?88HcC3gbG#jDFfR`Z{AmAz+$FD;##m
      zt<0c~yI-M7SDrUTA5;jMRUFfbm$#%p88F^yg=*t{NGtX}t-ZGz?~Fpocyn5@_XX|U
      zX1wzXw-|3hEB3x@9E%Dy#&Jd~cD$z3x{UV`g<9i%Oe+sR5y@=cNiEJ!IfZe1D(4VF
      z$+?W3o3IO6{l7pz%J8I~i8{Vl#S_^D!md>hBtL=taQVmP77H0?AgezS`0IUa($|Zi
      z2J?BR(4Vsx791{arQ-b5@=XSK+roN^S%vkWisji7%kw0bCr2y~iddcmv3$y6`Rv5<
      z*@)$%5X+k`mbX_dZ=_h>H?h1!Y%QMUb*STh_-L&C!a#kO5I!7QAKFlz>3SQtU&Niu
      z*j{1{!gdJTrI|126%@UQ*fQEQ3i^V6VI9J{Bz1SFM_8|<?h)2kVsT;p!g@mH6A58=
      zm)Jd$d#|vRu#wPx!bXK1EHTsaAz?>K>;Z{8Dr{1i9hwrB5#|Ux9y%c`E9|7O*-&2C
      zoUl{E7E1jUg`F0*6na?V&I)_<E!o+}`R`5a2Iwl*(1!@Ht)XlD@_x*>>>48U8CvLb
      zw6pD@FEK!0VUX=GeS<@E9Y^R}9A%xM8#qZfk*Du*iuD=#5$EV9oTs00f%WtB3tpsO
      z@e=)pS6IJFf8ccsc*7#R$$HuH;F9IVWy^<mS$|-y#Ya{EpIBA+l=T-@4X#_Y_|95~
      z8?1k@Ht?9Pr!s3Z1+03iW?N@%r;S#G>a7Oa%DT~NqE;(P9ab}Sv))Tra86dOXNoVA
      wnJBcfCFT`8Fi)&(i=Tr)@A0pP_a#l4Ae_fjQiLB1j<|ql*!rbJ7|$a7Cus%Pu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW1&u<e~5XZld=h%s}4e{avX+ulPFDDHcnm|*Mf;aX$Y_jn>w&NxR5;pd#*~mC#
      zv!RG95+{zWRH>)_1E>WFB#=0xs)zmqmEeLn@)uN{Hya>Fx0n5nKl5hZo0<3g$3IV=
      z0XTze3G5L#weH?@Z)I-;eml&%VHo(U+o6};3f*?o4Vu|Guj#v0|F(D33D>+JftWzQ
      zipjRz_V-z5b=_-(0zKxUnO~?`byHy2?lk9wKv&VREk__ezhG2qWF)Lo-LdkNCvKaC
      zX|qE6%{e8blE1WKmg=VMl*yMWo0Te2dl&1oYKFbE3#4X@vQaXt=1SSA*78QBAaL*<
      zD>w^N_HI|AW=z?RMT@#88!f->hZh87W~eR@%WpKj1U?kVbXr?1_Zo;98K4IP_&9-&
      z1V%ayF1gn|4P6+d0d?F>6*Q4V8lPzR6o;vSlRHI>Wr{`XzvUUK_dwutb%=P(=vJka
      zqf(A*NMKNTGs+_G$?5y5#xFE<M~;)qipO%lMG>bp>H$Z5sjRqKJf<OuL3P@5>a<@8
      zjAbnAe;x8`m5O%z;eI-ndlPN>jfUQ6%Zth)?;4em`z!M1HE5C7R2Cm-TEhnsvy{bb
      zRzqLJ=9I<E(XcmS^U7jY)zBZY1!ctr_S$~iD{Wt2^@5ta+VTW+d!ymD>Tckx-wczG
      zSW?yNbi=|me@ozW$5V>lBfX$xbz?hdctv0B()aGY^1~L;tajTA@-263%cJ~V{EF%I
      z)6J%TfnJ&f4VbI}HA+^R94ifqm3qrcU1X(xu~Ls%sV}V53s$P1bPwHt6m;5WA0RfF
      z0WY5-y`=Bg52PC74{-1?4n4$Y%#P?snH^(xVuuYe8)i1b?38|lS(e!u#rk{uQ_Mym
      z<LpC>^Sbl;1hYwAcY#?>H<(Q^D{yQ(g;y#0`T>d@e2HN*g&!HtFtim^2+x_8n3j3z
      z+r2ByYQJ;ob^6}KAwZ6yTb@N9X<D8~Mqb3I%;6mAq%={GMa+<v<t#2s8_T3kIgggC
      zU_(|BkbO%o;*MOxUDA7U89&Jt{4B5G7qWkq9v;bc{3$o_x4eNDav0z83Df}SUPbN4
      rD5)UcMV(xHf5ap$f*e6iW;slY7U4Tw<|J46dlk#1NluZ*3I_fKFw|Cv
      
      literal 0
      HcmV?d00001
      
      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
      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
      J7~5yi`(G-xC(-}_
      
      literal 0
      HcmV?d00001
      
      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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
      M!M4oT$PCy19~WMIasU7T
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5U2hvj6g?9=_Tp^QbW00Kpfn{d&PQX)R|<qQj_no~e?+WnX+eM{_Tp|?udVeu
      zG`#VGgy01segf}w`%no4JRpJ8AJ8Ad4?vumHBgm4WToAEX6Bwd_ug~&{$D@-0^kz%
      zvX~Oc-;xLNc3~KLK~#`Y6ngvP$SsT_8FXdXE!5qvCtIOB%pxtYd=zhixse-s(r>%r
      z$QuMVs$~IjUEo-05U9XWTl!;n`p*x-wFgVzeIt-+HTMKoYe$K$a(PoAQ?HiGwF<#*
      zv(;+W1&m6gU8yzq)Ly;VxKXSL%+`wUUaNdmD()3a)s`cWt{1Bf8oOGi-^_^h2ECTt
      z_g#UL@9P8#z6^Q=Tc7ZvSvMH>b;1+3wZ!cxJtN)N>iAyZMcb@0ztZN_r9s!tL159u
      zGkBKCZcWb9`RYph37$M>B8M4;mQ0uldfvpb1f4fAo1hm=98b`SiMa%=nK+T4izY10
      zWKp0Vs<98(W#AI?i3URhFEfL_*X{bQfmez52T?TW8`xy-ZgAlGgCS2|S6(t0OW%NM
      ziZ8>Sd$A*jvg1XE2Hs*}edz@Tt`Lp9uB*~7nmCCk6)KrHh0_AZYhK_s#{GRaoV3%b
      z4LTeZ$$_B?dNYR<78xeG>5Vu!9^WeO?72~*%7l3;zw%hcPSCOPh-l~k@%_JS%GEv$
      zB6*vI<?O*Y?6_AwH4wA^4*!N~AeLB2ivP|G7BGzrS6Qy6U|?PeMm(?N(w1UrOR2P_
      zP}))^Z7Gtrl!$gg^+{WHi8jrcPvL3aFb{}LuGRC$PY_P(9v1H6jDl$m&nh^r;W-5}
      z8ZIlC)$oFXhK6|s=Ms-qjT4vkIpb$+I4SEz+euq5+0L}}itS{q*K8+iUA7&=dc!8q
      z+Tu5BZQFOTqZrI4#u-v#oFym5Ig(;5lNI9vX)*GO7h_csW2}?8dxxb=q0DcaLjmlt
      z1r?Tkoegec9W89a!7e^T10B2v7n1J~ALBFh@C9z-ORm4hEqu%OdwhaB@bN49_>Jq|
      zahcK74XTa&!;&Uqn>%VRv$}W>SO3c)r*{u1=%<=@I`P6aEe!qfHmZz~W`6HXVr|e0
      s6+gz#5Be@ujT#8xa~;J@&L>gQsG-gsiiwA~yN`0edJI>v3#yvt-&B?=U;qFB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM+in|G6kW&nq^4=y3pk-6DJ`{|I&Q-yv@ro=yNN5ui8_hFRA5c)gEMG6HZ$YW
      zO1$&TD_;SLP^BXHfWGuo_yfc`<7pgh7bIkj&z^nXYp*lU|9bWZfZN!LA|SB#js8e~
      zobB0$<z{u)wT*+mE3=NPTP@vgWw-mLYxGQ6>^A!yX}Md}n}*enA|$XlIk;r?JK7V=
      z)gMO@5x73tYgd)L-#y5`EE+{jVEJF1AINX}(s54$1kO3qHgvNlZO7<Z`{km5xG(Tp
      zp=+rL+?sCoWw_Uz3N-%w^(TQDtz6x#lp4jI!v1!tx+id_GP&S?0<bP{RV(f0ALRFj
      z`LxD<wXjpEP*-dec6Q4pP2kD|w=t*WNN0^|>9dBmRVuN^GY;2cwfFP`Qwp4a=(U_R
      zb*r7#JPUg{D+#(cuJ3kt;PyXO%WSb+lS?+-4S`@PT@wfux-B^kf%!Pz#ASg<&bNnB
      z<#cU|mbc<Kiy0*?#c^&Ry&cEwK)M!30y9xu=h777r`wMq&DA&@(Uh5%PqY}8iLfJk
      zx~;oIwUg;v&8}%u*UB`zJwrM%WC-#E&oRHOKysu^#**J<oI@#H)%oo>&f|iT-i_lT
      zF0rkOVaaO0b0BRW*hHn<B;|AxkNfbH(+FaoAi0NzBM^S1SVtz7xw^J=3+%PswV!Zx
      zsr0Gc6-?c62=<g_v@PB3+l*No_sA{3f}$t)V10vGqO4TaJIrz6A31!6#E=)5>-e|%
      z1m(=3f1k-9CKx#TgI-LfCsJ*ej_Qh^X4|!wzT<oweht{=wASt0O?l5yOuqc8kIRZ;
      z2$r~pAOZ*@%HJHOpa^(|AFlx7NGi5bPAaZ>Cz<A*<QdO7wMp;f9(hI(!|Qm18IpW^
      zfe`<J_HPjN;8V;UV?l`_Ph3=D*b}cPG2)3=qrc;wdN7gF>Y>C9tsYL?)asGMigt`!
      zG%?Q+7HB)dB8^A9_w~pTKN81S{e`6hc#r>8wgnW}%%>cs%(pGJw}S;*mQX_)`?!hE
      zvC3x+b>#2`@_2|M-#76Uw)xc2Koei$Yuv^AUS@C{UQ2(t4b}=!AGtCA6dw$0PkY)!
      z0%~}1mj+&}qX1J7eTX~EA((fawj6Z<eB=R^@$^72A%6DMYM2O>fbAuVdvefEHj52>
      zOpU^N82ZU*==T#sLqw+FhpzBcC5Y**(bykO#fJQ{A>vdTk6j&&{c%F9z&%z9VDoR1
      CGpf-5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?+fEZv6o&uZ11+^sC<hOqj-b*~OVOBUQY0bekRkz-ViUb`PrDhWneM@vJ)}H<
      z?_i9Nz=d9sXrl4f=kPg<YY*il^}>spy=P^u?_d9#_4D_aZvY-*E`bQce2ee%PHE4x
      zr7CfyJlhPEDEW%ZCij}9&7f@xZ)<1SZ3Jy0m7hS2VY+u!RVrZ#uXZ36?<CO2Fw;Bn
      zg_c`)&7~7Th9O^gHh1d6^KDnYtS&RKb%ue8D|Iuf&YeKS+wa~#d;IHZo}q8SmbO}C
      zh~=vJIvo|aDN=}HD2+4*638-4Y4wuBrB$jrj<C41<XNGOl}<zKDH2LzlwopT!;LmS
      zFr=#tQy7l$eM9YXY0RfEjB(Ap$}pDOI78NGSkfwM@yv!T#qp@Nx#<Xo?1tMQH=I1t
      zcQ+VQySC5pD1`ja(8~<*utyq7mAs3$0e6UWp`R_YB^s)nf32r*CyiUU%@B3XmhR@P
      z?QR;w6-%fJr$6R;2Mi;*{JErx!+oDr`)jr(xe7e8^yG5JLg61)PJe89kthjL+T?9w
      zj9y@LCzwQm^kukdMR%vzJlQpdRLu>%hFG=rOvf)R<D9ldyG%amiPLif2_)(4ryY+V
      zg&5sw9q2tsk!{M0&^bCgafHmoM+|($@T=^|5yrlM4lAzFJ4;nSg?KB(S;Yv}aGfIK
      z$F-y}L0?3{ByJL!=}~tTo>Pui$P|8neLy^VI9oV^aY&&EG<=X+0BY3cHo@!Xz?oBU
      z22+?0!FO?w>h6ctGogiI7zd(R_URPbM?v6C2up|eXcxwiL!Khq{aNYk-=(ddr4K@Z
      F;vb>}^#lL_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O-~b16o%j152n;Yp?oQzj-b*~OLe0rB_yPX773UXFuJ?bUWTdDJ2-QPz+W-$
      z+_KOWi6#=a{sb5P6yv!=`4ko|X6~Jn^FHr6XU@+*U%vx*gc$=dhQ}?w!*|Quz9Utc
      zE9E;@s6;tXTsFDiEU$!ZOZcmsHK~NZBcvnkCC>^BBp4<y*XmST`1L)h_^yF2hN;UF
      zUujdK%^%w`^aa9qxVs_z!13gIZGnL;G4xbDsY_BD+zmx?^3(6bk+A<4L)WY$9W}?0
      z$kz%RbX2{jNF$EE3^M33kYkw8?q!!tyIgZ!VRLuhx5KuO>e+5XY%4NKVUS^bN5joF
      z-!rABOiP%q2m(`WacMqGqaVYXIl?fMUp__FX=Ku_X!Go{BgN6c*0|*ghTO8(pl&$z
      zMBklYLTxz#!_x@z|D&%kB%?}cG&P!lcpq|?c;~8GwOXQ~DuuUt7I!kZh1(2q&uZzK
      zPK)oPF<i5Ss&e{op1;R1kT0A`s=7P~$hEuf*pjQzr^cTAn=xCwqM?)DTbUz@K~5{Y
      zO^m^FjLsZWC^C%7XzNPeW{EcBc<)LrT0Dky-3$GOSakG&$FJDW8Qmi-IW<jBlAci*
      zNYU9%%O67;3A)pU(7Tr+Ym^tGb8vd>0NJsR==p~JH@SfW3>|)n6xZpUBNebfyhY+X
      z#{gd721SOCwB#{HUqrz;ZW5X4xpy31QjT`W7Jq<!Kr+5RT|9ufPoWqzyq8MQg&0^T
      z`0F#^><KuF2~0-dySPWX`;mGoYM~Uxfq0I6K7n>o5a1Ck6W!w-7(*Tfis<f7rPCLs
      M?=F=-hzv@90W=2xp#T5?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TTc@~6#k~Sh0;<i7cZzNsPq!t7$1BnX<|xD3Jn@7jo{O4JE_|&vvqftz+dq<
      z@Ssm5CYtz4qHq2Z-;HOcrGk`fGMBU8`M&R*Ij4WVd;{<VWeYKe)gC|Khju@3rLwtF
      zf$Ky{*rDRG!-I~!9ql_J*y&qHFszIR*QF9&5j2ma;)fPe49nwz8-DxwnS_OjE7f0V
      zH=Dk54xDBvk0&+Y*WyDYLN!WYm<dJTa<3(V(Dmg`eS?8*GGuGM)WxY5_ac$}_4Db{
      z>F*z38B*)6bXAohQK%PNwAK8MNF$E93}$eRA=hxF7_{RJcRaz6Z}@Fe;G{$MVKAZI
      zyCFldG2ZQ^##R`T2ignytCI~XgnL9VUoZ@|$7R=k>GVWfRf>Ds(A^9cahoCTJ3Vbe
      z3tfOQOm&5-ae5U$IAWMB4BQMrHIIiOsZKWCuH-5TNcq`i#CrLP3PwGyREfnRrER`X
      z9CH^qnlwqWTbV$Cl%yG=wW!aKZu(Ks7B5`g!0g#{J=QhQOj1$wC1GKb&bKgy4DDH(
      z*BGXepff!Mt$B)6DHfwWRa!j3>}P|Sr!{S&Tg1}90^Jt|C|t)4x)B~XiJ7{syEx?9
      z8gk{z-@!g289y$SPjKg$;4x^@X|e^pC1bl}?cF)z+=w`bCEPQ__pwZQD<=DaF}r5s
      oKs?VrjYv}z1cV{eb<*!48N)+7qKK~ZU+U`rss7m1q7f+l1&aaWVE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@%Tg0T6o&s!0>KCdLI^4s1Kt9N5xg73LKF>BU{wSQ+1Md%9GvvTnH~kpomFn!
      zxN_mrH49y(N~^S7S>+@67QTSx>B*1;frX3AOn1)tzw@8d{qxV~uK>nyEsOxenKk~5
      zucynlAyt|yWgB@{iL|4*EO5J!o_9-mVK0_*Zn<pPN)*BfF{F0S$_cgbC@YmH3OlzU
      z6<-gdnc?&v(OZ&B+;oLAwFPHrcZ6+lb4l2aVadhp4F)#L&^B#JU6}F`nts1|_v+Uz
      zGsn<8VMs$wGK5mup(T1vTLlq85bdpKMOzp#hCy9K+T^mB&YGqua&yWqx+Nji&Gl7L
      zRs?E6oT0BIwBuxnZzQFql6jFdh2tdEV=j|p5p*D-MY|cgQge099Cc0>GnyWqGo+~Y
      z?H<pYf+03%t&$y1rfBVNhSX!jVHo#B{$~OiGF&Z^+LEP3YGs9NYrjcdT7MXW4E^=m
      z=3UdgYtev(-Qe{YLw8liX*4S-ID!Er7{dPF3_&6=G^MgWXIOJmEjYz6U|P?Gecf_p
      zp;4xxXAF^g3@vEvegf4lp1RzmHf(F=LViuGs?5*>?P<IfX`G=Nto)j8W!;w_#<0IA
      z)HJ7KXW1JJovERQplOpk4z+Aw&L~Q*T$|=`ac9KD$R2a39m~ulsf39%&r75c-=^V@
      zzXcP-m)@Njb<3m9))6P$Im@+I#f+g3L}JIa^6m)TO7cm+Ci)#l7%lYPN4GVA2%71e
      z4l_Lu(9R;o1?b&1+*3icC-ebrU(m4}>#U&b+b1vOAU$IU(Q}3bZ<9n8am?Zn?Ifzn
      z1nHp_$)Fc~B&`wsKH{E_h!2lcaAf3%CJZdcj#hAd2jM;umZ{VS=)_6`AzmZIaRMiO
      zLdqvRBtlSEGu+c#!BE`=0e8AEs0B~3A0|~>@)*f#c8!t1sOLiaJ565!;?UXgX?JL?
      zTNWMp4)z{R!A)&!Y?HPE(9JsF$!$>IUyzlT4K|`RL=<On&a-hI7bx$dmwm~b$*8vv
      o1Y_)DO;nE!c<qU`df!1`jNvk_(2gEwJvH-h>f2pYuX=#VzuaI#-T(jq
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2hvz5Ixs+Y{zj+;x>h(6w=TSJE`Ng=?9RI;yP~QV3NoiEExpV+P-xcIlEzZ
      z9kmh<Ji!CcJo5*5fb^jf2p)Ju{0@Ew;@rFI*d(SBvUX=YGiT<`nYsJN-#`Bb;0CG*
      zL<E*UHxJCGg?-nu{etQHuGQ@Mvf%lq-8S8JVcWH&?VG;k*fse@PkO#=ClC{u8x1Vm
      zy*=X@5l<6{3(Sv>T6bE-eys$O0*j;LcGR)Lx<i1Jz}1%kHl5~Cu)w4zUCZp&rR%YY
      zk1Fc|VpHH$$+1<Je%<W$<k;^IziC|m>+3HCk~`bA-CD7-D{#9yy2?x0SrHho7Pr=o
      zQgNp&FjXtp%Qd6?Xvj9%w+%{7c%<I$?3&H46gcyVu3YGvcBf!y57VBOBv&6d47(GA
      z{m=0+Q*yP{wQS2@6NqMWb%9vPY0DG@E~N1W-V}(hhW=Q#lB<u?b1{ucOeyWHG%|s9
      zIgK-cb~TN&m`Wf=!WC)5M^9prCHEcIcTLMrB2R|cS=(!w`!b0FNpj@@=Ogn&<{Qk^
      zH}|os`f?i6IH$DRX}pTp1YW6Hw%qFNHKiL8lc_o_j@;zn$)`4^5XA*H>OZkOfw2QM
      zb#6jMV4@@alIhEi<31zx+1wEKrLO6DYNCeKu}#0{5_9)t#OmUIY|7CduB<Ujf|a(+
      zJ?1$3uN>iolPC#HJA)gScl%e4!zVU~3wxZ-=0<MG6a&>Q9A1>m{n(SMGPtm+O=7nn
      zKlY@r7lY)a45#O|<O55s<;<wB!IBy`zb8cSH--ep`OIPhY1&TlTNA-)%&6s|KBHDg
      zOD>L<TpP++HB>D*Qc8Xm7(2@h=lSnX#P|lD`~uO4zrgFyF{jjoR_B$P)aoUrP6iQI
      z62Btbh-MayMl5s9XpCi+j7B_j-FS|hbcsgv5Oee$VxG=JT%z|7SLnX=6Kh3qhwn|E
      z7ueuw9<rk?uKR~P=Poaafs6PU3uqvZPqEDBJ$#1yc!V<b4Kx|uWJC*X$`0<~uFeYf
      z!YdYbw#GUU+T#o7U*PRQ-ITU=$>*NNoeQGyj%JJTco!?oA+XB25v=Ll_cU91Z3m(m
      z@uN1YM&dLA2RfM=4BcTef%j3QMG-xK-aiigY6LWfb#@y-mnc<Q@_F+(_S+$BEG!$t
      p19Ex-d+Rv%yOG!pR6^{vux=#&1FHv93!43Y2pKtQc2h@v@DH9ckKO<P
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C-EI;=6#j+<wnbVhZPC`hs?|afH^vw*Xqq%MCR79yDi>-@W?@2yY<KJKY(rng
      zXXu4qHSwZ}xB3D;jq&U(B3iugVs~fGp6}=UeEsqH9Ka)#Oe7c{5BM=3T1UQgmBp3v
      zr5!3^1&X^p?)R)#sE$IlD~@GX>;!@AyP{_z$*?vZxG#pPec~!UG?8Z5n4a}AlH2p_
      zonL|s3xV(@cRIokr02e>?=rAGhPj&OMrKrpJE2H5*1x@|pMRGO=`HC>wM`PmMkHc6
      z-0fR!D!}bm<4CBaV>P@kcSN<+VMx}zp2)z!LKa!fG2|N370vL_7XCiB9l?;-=^aj1
      z=spT2)qxBco@mzp>{XQ^)6?B+@<T0f!7SC{Xp@n={yS-${)+b@cgVo<WTh>8AiAnr
      zdL0#XJ&P5rG8mpc7_;bxjM5k`^@XZ&CHkI!!mwB@O?0j1@E{<kvu&C$SD{ZvpI*$^
      zD*vMc<1tpZiNz$PxY(sXI7YLX!F`5;r}wH7x28h!db6lmZ7=k@;+c%5u`+G@9!4#q
      z{iSN@Nzt<k6EpOkrM*rdgCw14zVx1_NS*Qw`kI^N2WQBA(n*);ouOo)i8NZs(`hYE
      z!y=aGMgT0MKqS%W3a(N%IU=!`_Bq`ne6IWj>;qE9>1O#1*G?&vKtw;U>E00dEjfFq
      zB?>WQERn+v+$2JVTO^;rZH>O8eOGiGF!Jo<m^4j6;6RgQ_1PGaG2F#EMWT{_L+||!
      L^`}BNv_SDEg!S|E
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+fEZv6kUf7Z7JneZc<P|xwIe@L_md*Ak<jpmb9Y82Q#!Mb+pVh(`f@w`bi28
      zBpQ9t2NVBE<2us;DpV8GOwXQu_S%=V_Wbzu@e6<%ECtXYF#B4s=m&|SZJ16%cO2W;
      zD?2h#a&$AN+quN{+WJ;S+P0CC>2k4X*^bNwpa~4t2PVz(e)`aK^n(EW0u%M4wpF>b
      zv@1qduACMXXfH|I&<i`#E*X~jG_@um9t*UrTBd5q+0hGS+4wE+b9wrE@+&Vkw=yqR
      zGMVJYb|%T-x%K+x{yEK}KvPYQ<`OwD^BH}wAO$*KxG56_-OMM_?hWHxC8u<o@xtb-
      zVgJb^GX<Bj1;aF)WdUC-z9XQmS~(elKyMgV&?n$u^6s@*D!$XioBlAuXi?VHFj~<P
      zz;#lmCa-NXh#?YWTFxX@mHS2N7Q{`?diJU^jD*pKc4du)(Se9S+qz-O&GP=9w7uaX
      z>sFSc=#++>xXuuK=w-9cE2AXPSW&uAtCT=<UOKC~BlDJhNcv*&8va%bda0!7P8)es
      zcgi*~3zs97CjKJh*`_QmGfRM#HuZhx==vjvr&17e0zJiCVbb#Ucd~T4z*LanYM?h{
      zcPw64>JA2~ovu}T<TUoO-skJj4nt|HY-i;|Lv2!Dy)S7>sfHoa@8i?RUlaiZX*cm3
      zZ9oWpN^9DEN@<=^rI&kBEuMZxccP1kZoa*R#(!Y(6U46X1U<)yDpPaKfyU3cw(E-w
      zrgyc-jr1{w>0sOuqVybLfUeOGgf}3@|8bTF9<aa)nvr6eN9e&5j9~+ld}gtU1)leD
      z7jYK_mgmxX%`7ud1O5K-{u7L!=MA~uXB_sqi|eUIVZt3yjdY9oxlWiuf_Kwy?iqK$
      zsvq!0#CzAR8uc?2(A{KV*Y<hII&hn9R=GKc-nj^UQwOSHp3_yKQ#@4(ax{DqTdBcn
      XURjNd+`Eh&y@-8R2P?>@Qeg2nvT{E>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>Y}j6g|&zGO3%?t>dJSw8afAwd1Cyd=+pAq)w6Ch9uN&q|ybvaUSkO;~976
      z4NcYv_yHgmtPm@Nx+p74Ac0sR@jp<-KVVh$yvfvYh+82`@8izB=iGDeeg5mwFTVk}
      zh$|LS0;MhancS{)0>{%8sdeDkkye#ZOK(#Ko0WChQrD%|QlW*kKyk2pL+Q0o>z-CE
      z6*P7{Ew?R<2+R)lUiO<yPnax>3X})?t(&B-tGkg3bzeY6;M_9;uKIS*S>R}>0!O+V
      zDhM6lyIEfr5LX4pYrbbR>J8~eYWUv6+{1tW{^v)5kp;(d^rAqzSTAjGtNEKMgCXR{
      za1_TZOeL}^E~`?hyRK?UcPVH^ZRP1J+fCKcBpStY0w>$5ZL6TrmOBN{*9BV@Tor}|
      zeMfqQiy2H}+JMdoOcqy+qFu}eo8YyohCRFDcxp8=C^w|-DuLXJ-=rK#QM@O{w7%nn
      zEMpAvznWR4(%tM>k2){K+qbFL2t8wRnzitfz^T2YRwLJ4_t_5>^ocAA9N&cr`&D{$
      z&fqMj1+3(=zz`V(hKu!t=YrumKZ=(HPP_g+71(~{ZT7?T6-yu!`&>3YyhNRj3gU}N
      znLN3J1*9s@j&xa>ef3?lw^UPCOCOogH^=Zg-e7jVy|o`DaT7S)Qo1HN+kUVkFi|Y^
      zQPo@-hAifxhSTz-jsmvm(m{`fr?sXxsntcISY%q2ZDQp2VI&hVip$KV!xuRp#7~li
      zX!udkRPQ@xHnMw<^@8afA325bHw+7hc%H^#jBy|5A3zF6XypUJF|IjUZqhTweR6K5
      zi;0=^4;cRylecomyLkThpW~1dTyscs{eYlr$Y33Le29~@Ozj5a6kgzsFeu<Op$)}s
      zLUALZ$j_C#c(MGaVK{p$cdm=l0fvvsAepv}2{ii{@;!z;=1@);&L<3?#Dba4+{}qC
      z=J!-o2C2A<5riy?X0}nxQDD5$@<hcHi)d6B+bcY!c;=H$*!Jmp_1Stpr=BmU=S%AO
      z>Zy8OBeF0fnJ`=<qiIUE{0GE$7#_NBN_Xi#O(~dm9ElVDn!Wsn;NSKEXL};DcnfdG
      zz*Q_T?wvS#G4A?&YzKyN;z18|ght@|7|aX|KPO-U@8UgL%)so0F8w$3r-7lhm|*!a
      D+`nfs
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O-~b16o%j14+^zVXaPS!9l?*5T1HncN=QgWtyCl_H0th7xfzB`@6<bY2qgXh
      ze}i#r+_2CUi6$Dh{wIy+j+GC^#Kp{=IXUn1o^$T`_T$qR0CzE;L4u*W&3E{&-BX^_
      zHrHBtPNan$YA!dq+O*fWE5bFQo_Lbt8Kf9y&z3Z#7OqgOJ*oL_1_KP0vlG{hS4*fJ
      zuOpUzJ2H%hLV4V83l(~S+-TfqV2>Gw>wz@Y=r;Ewk$(T~d-HYu)gi;cf+sz_$dD>E
      z%56I8!KTO}iP0Q#7|x);Fk>pPeJ)+Q;rqhn{*rQ|u8?|pw<CI*j0Q2zFuh~oR+sNt
      zGSHSIEMJ77rMI}W?qo5BNy9wPFi~nABU>~r>DG*SzUfJ^8g(6^*16*ghC(ywP&b@<
      zqW^v{rMJA0!HyySJ@pzxIxdhV(xAr0%ZU4gIaSP4XIpf1t^C4_;93q>aFrn$INPR_
      z<C^<v4Ch>->zuAEP<sr;Qu#zu-REIQu0t))m0U-P`nmUa#zN&EeH`6tZILJ$a$4nG
      zVvL_+^v5@d3SEBB>{+!ZRJ9v#8bh`fM5-emcxIZ#(|b5?8loMh4(UnLa|sy?(m6!C
      zoj?{T`lc<Q_XtJSDKA0i_}tV1@>6dy{261<3&jIWeEk?JF3`I`Dqxv-4~g>#MKo}c
      zB9p(g<S|8mM8PyJ6PcMI_Z?O!$2jCGhhT4zPVUcD4q)w5C;<Z>p%Q=%Dzi=SXD7h<
      zBXAxwn2o{Laf5U>WA&}Lg=!oJk_GnR2s%JPz=>hG_&eE$F_ciIi0S@VI`^m4KT~=;
      HHmLptV7T)I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?TTc@~6vzM53k$VSC|3n_1ureNtQr#^N=Qf%tyUx{;N{8LGFcY4vvqb#;Hwxv
      z0uTB`qKU>=Ka}yzTDeGl@L_jmPtO1MKj-ZE@$>Un0C%xqA;EBOm+$d?r>%Uc9j>+V
      z-HsMcq`BPYYTH@oo`}|kdge=tSHmDw7E%mzy>&IIg(p<wKx)2kp^u@|J8|6@HiX*q
      zn_~HoEyHjml+S}Lp&~z&o3#}N_Jm=u8cI`=-r_+=q$l0_%Us=g!_c?rOJ6TBqzbj-
      z79G`aTV#;La28n%TF5iZnhKnNOV6nVf$(^+th`Q3Nd0iXDcYKh`Z2~ZvuEITiyzoB
      z)V3?^Ktz$Pceu3gWH5pW!<=LoFVs(v4H}vBD#kol_oZ0tv|OP!xElzDd_8PZH=KH+
      z?`|-qcl?Oqehm4)(N`GKag{Wd8g(z;b$CFmGZj5|cSTcIim%Nau4QorR~eF_yKCw>
      zDZHD;aKRJ0%IUv_>VRRiP&}1X4R{oh>p;WzB-b59O+7fDu~_;?GsnNSvP2Y%oYr`Y
      z7-MG`-5K_y#4yn|8&_@%Rc^&QS8kf6W5_hZj%tck-wbxD$6hX&-e|F@S$fj+T!Mvu
      zItOUs6UZP%ciIYi4^d=;@)C58%}*a8H~j&FUoi42KYE1mZ=Yht6utAL0#=B(N}NX+
      z#baEg$i#0gc}&w6Q80tcL}q5*U5BTXV;pj&?_lqdP9Dyej$j{BC;<Z>q7qCY7B&g~
      z;uJV{49;N|b20cjZjkO~tiBbuP>$n3GS5C9L;ENQ@EDej@5wHVp@1SqO!p_!`M;%a
      KdrEJ|2IXH{d-%iv
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO>Y}j6g|&&>`5|h(rFuLQu;+d?0mU}&_Ehe8YgL;rg6x)0aK(hNha=8&P*6T
      zmxPZk2#Ey}JNB$tK;1>9BG^;{36}gH#CdP*#!XBm7WO-H=bU@refP}!^PeZb0l0(@
      zQ-}$S-FF^1+u5zq^JUhNGW1q!(#=+-<F7m6dUh#vtFA8{=>`6b7rJW-q>vCe)m}O4
      z*Ea1PDz;Nd3JkSpEvb6T?#DH^Dz7!GreFwMc!6L(Sbato=&ib;=TuhQu*yB%&d&&l
      zd4U7Dz*pOsD^8{6c2tl5HSzb;0lw@l7N!fuV&T@^VqrOd{YFvX@<RJ+FK+*eKu=4q
      zh1of#I#4VW3roAH&E|9Tn#FZZ5~59LMKeUD&Z)R94CZJ=G@-l7@%ZJUvs!Tl4&Tw6
      z&sH42oVE2EZtS4T^Vgj>XyXy>|BjfcjLEf%=X-KWAfC>w2qbdBy4wYTlO|5#v_NvQ
      z@jj8xXI47-=2a61(WB5g6TK0-VB%1OGA67D4VgF`p%D{DB9t|8G(wk5^r0t(*Euvb
      zpw=D@yuqjpRs$)6%@G-dUiqFhFwO&PiB{YV2H)Z-%RmNOyF4~#HbW8VZJkf2AuY;l
      z;Hs83qfBAonl7P4Exer0*9elPdY?7%5?)s5x`|`xr*6UX-NoAGsv9=uVl4z~G_OMo
      zbDTQZg*Z;~nB_gMD$wyj`Inx~3v`!VnRBFD4#FKyKAmY9eXinEtL&=N_R78^Yaun`
      z`x%o%|Kas#U(}T;W=XNqqO-{yN1n^kFqnbc0)1O8m%_+;^H!kwD2|AYCXc2wZC!eZ
      zM0HWL8ueV0yWgt2cM5mdWe2rz&7JeqN6_E)ei~J#;T1>YB8Cp6(2ag{LV35FmtPEO
      zEHo<dF=bP|(xiH&MfFO9>Xr7?E6u4_T9a$P8nIqEV6I6R7{GB>cm)tQkzfq?;}?ih
      z{4q{E!Wjh<8lF|KL&Nh5CN)een9^`iK|{k~1$!gLsKycHVz2QlUMt0|F}swoF59IJ
      z>rK0qv?lCQ%9^xGhBakVXT8J!lr?QX!i-XIH+7t$q>i)H)N!7oI?`0tF-Tb*!%A1j
      zs1nw3k;=J;Y$b*p{J*c8onf;%9_3Ab#q<1DmvI8`;xtOg;C&3^BaGoL#!<#qY+xEb
      znVVQd4evqX1AGF9zYT2TQ|#bt;&1RdzT@vle1WI<48LOnd0kai=4}%lET;GrV>~%H
      z@EG&E`|8rsFFEY5w5~5=v921H8qWf5F^AwT3VgT3Sd4q-urQ+IK->~P>#%Ax$sq8p
      zPG)KxZzL0J*Jk8-X>qUg`!>=9R(JxDbd;+q!AZ>Q)&9_;O*G0Tc(SGa+PS^jpW0{z
      J&s_C;=U=sQ(EI=Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6$x;(h6g@9#Iw1x%aUKyINW>852}Ci7qRdgslx|+232imq+TBrc=fai0;zDs@
      zm6mSYxp(2xAF({|rG*Hw%1TwgTld~`hjZS`w_hK>062x43B&|?AIYckdGWDtyJ1m=
      zp>J2~p;Zh*>CQ`kzBr`<({<_C;c^0oz@gTF8*Y86yzGYZc><<Dck8TSZ*J&Mj|7qe
      zJ+1R}*V|sTDLM7eS#|P^^`veE;VM92Yhd}dbY?9-us!$Q=&*peEznW&T(w;|E1kO4
      z_Wj|HpY8Wwd=+RLo*5dsD^M6~JyT0c`UT91$(iw?F#+S&=*?RKn*x&P*6zxxV+m|~
      zpvx5<>DG#69U*43MY{9=QCeRk?LUQJh2+4TW4m@ZC=k!(XW6~v&08r5>`&tW4sx!6
      zC~o9N^Rw-Y97<y=GRo>sBipc!q_GW|1dfp~wRiKNN#sb&ye}8RB#yJ9>-kI4N#X?C
      zE!wq3RjMzI?bxBLlWFY4E`cp$wrfq)m#UT@ZI>PM=BR|E9wbFOQ;1_f%Y=(|z$Q<X
      z7!+uf{MD?mBtxs_`OD-lmv17l<j5f4_U&c6=E|_{6LVo>#z5~sG+ezN{e!HMV5bSW
      z#2VZGsu9VQ1j+5tFQf3J@dBtEF^zb%+m2kmrNkK~sz=eR^3gxJ8+BfLKWaT<Cl?k1
      zE7a<elvLTP`*YTat?pE&`BC;M)zC%$<NUQDfp(bKi%m$=*TJVA!)EMJ%G2JXbk`?U
      z=ebvjr%y`9laCU+nI#wjUculOnEnJ&F+X76dvq!@q0KI3CbfCk{EVZOc($ipF|zq`
      zr7hcAevbmZq7q+0C*3RPqJIU487RJE(HQ@O)Bq;GLmYR6x91KQ8OH@oVhWdVT4#Yn
      z@Ipr;4H6fl-#otW1J10~NontW5>U~&osBG<)oU^z=Ww1icwcalu}ix4WxZxW`+;~?
      zywz?sm`Nv4)x{K(3`fN>=*Iv(ilH^=mGw}k1=PS*T#KN6JXKj^1%>t4XH8fmYHN_C
      n>l?Af_1Kp!u_X*g*b`CTnE8g?8!9xGecgnNMO_7M=&X_7oyk`2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4yKWOf6g}g$y@_#R<2-=y3eWhFu%e=H6bTt23|4~V#6onl_F%?rc42qca{hyg
      zh95`)RU`@|L`TOD@C*C_;?8(6h6IUXUU$wt_uMn{<;RDQ0B)mVBgIf1@F5>LFGJ}o
      zhbt9IH&()l6!&{P>^YD1g$SGev%p50VfAGEt{AEIfv@<;MwX#=GRly(ML3jQaraj(
      zhGHZ_$-RyUBN_O6&3g>&A;VlF@U;%r;a)5<FFt>L{dV~6J41F;`ciE%td(23kmGT`
      z@3cv~->;7&v67zC3cB1A^-6~!-3WRj2MfhK@|a^Nw4^V#<9%0zyWI5zL&?B9oTSh>
      z38vL^88NII*8j7q&Tz`uId)AG9}`JEct+ghc3LpqidQlBsPNKshdb^-bXC3bR5x-V
      zk8@aIumX25VKGJ|Fp|+1s=<}$2jKz3Lb);}q~Y->BB`@&+4s4MLvrBGal~frADvI0
      zuf9brHdWf@`^2&M2S@TIGq}l+PfXd6^p_ZN?H~@j;=a`07pK12E$tTlPil=uhQ<nP
      z%+NYZ|2Bmj(zK^Xq<NkqO~P5U+SS_n5en}O=rqka0s{|_B}j>Ot78}zut+CLz!H{;
      zMDNbvETNgUG@*S&XPsZDeFA%fjCEM89pU^Tg;LP;^M-DZk~^gAi7Bx>PMMS_;36&&
      zA;V=VpTZTBebwmRFmb>tv3C>FECm7Akmb$ZO2`<l;W|Zh%fC}^{GIBZn7U>Plz#$T
      Csp#7P
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc@~6#k~&UMMY>a<c^$luHYiii)6ZNU)%3Qwzyrlj;N6mPuXGZprSJz>`sb
      zjIRn0M2-Fc|Azm=cxJjtDK*A4J9B#GeBZfzGe3TP`3_(SX&+n+%lq1)c9c9Yb;C|-
      zwr%R=rp=R<tr>foxtH7)2i(kB>y-*Wuyv!FYm_Y?6o$#}&`qORSC0)_JMzKHu+Tk9
      z@~YfC)GK`bJT1e3#Z6tS6}f5Y4dX?2gMsB3LYamkO0tVut;s!~e|`wP4Zj&;2p6_?
      zcGokR&F!6R;n{9(>xs&+lJB1LA5Eng`Z}q4Et-f?-O<W5&M@>!GAC=AQBA7yM1VMT
      zEDLkOR$F2JJyqiJrz<tx(Csw_cPw6HP%@1@9st8w5Z4f4@TQ$}C6<jBd+205h#*43
      zx*kLyLO$H2L5dNy7wX3pjmv1*3GH0T#6C&s$8BoivQKc$1ksNHVa)|Gh%iHcUN?B5
      zSub<bX*8T~R7fn1B%}FAX8>-DQQ7uu-D2<@3cX0fEJJUV+ZoN~)rNUYqm0GdW|^sJ
      zmPPINsCw1V?50VWm8%iyg}*5K=LV(Lh{Z>l3R;~whA(kAiutk35Ro^Yn+e_O7zj;+
      z@U2*<&yiTXtMY>sD6V_E_%r9RSLMHW8B}CIZ8Xgaf2xa%HQxQ1Eea9osnTVj&qKc`
      zeDIUqLr>U+03t$qvLixx+M_}=xsznHdntMd!-N>2fA68t3Z%Y*mE30-Jw;TQiZmxY
      z-*BVk4o|8jC45Ug#WXo6?gUZtoM3`nv!4j=LX6f$^wPRP2{L5mC`}fl$YX-ODLltC
      z?Q_`13bybVDa0ibR07>&r=T_Ba*^LVKYoV!3+{mQmZ;&E5;xk4!h&p4v~>pw;$T!o
      zlFsf*?j_k|%MZB2?4xvxV!ad!R3uqY+HQx8;U4ajN6hB}`k)h9?*diukh*I@7ikwM
      gXin3e*rPVA;-pouibq$mvz^#?U9gPiDO5=P25itt-v9sr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4&rcIU6#k~$cA*xErJ&+3#2>U&Ts?UxAu%;Zv;mVsW4O(>lRC|^i@UQ}PW~H4
      zk6t<GiNu46S5N*M{u9PG)3sEniHDt?dGo#R``(-P{nwYT03M)XBgJs9#}9bl*$<_!
      z9IjL--B<}HQrz$Gu;aYY7b0u~ZLVbC+ekAkj?dW^ebqel74O@~GE~Q-3}I7*2eK_5
      z{n2BXi9{&5*AihwGCLcO8Q3$1se0gRFRI18SY&?wc=z$m{)e{=*){1)wa&0yZfGIL
      z<9^p^l7GKj8$@CyJx3e&M6J?dNY{go$ic!)9(hbL6dKYOoAI72!foz)f}v>OElyVG
      zoCMSAm5dnf8`l4CRgDBpTTi;D1<shIT0CQNcspvGZpG`Edt_j4w9+lNC)%o3+0_MI
      z$>S0h7_7kU4OvV>5*Wj|u26NZL^lWz8D`6s5hHbvM-kbbY|5_BRUA?$9-c+4RsYd}
      z;WO6OiNz+RO}<AQrN20mx0%2ldhMh!tGaSMR}8sk5QlB?MCx}aof<ncr8KitB7GV9
      z7GPt7{*yGzDddo*Jv}O|(-hetoJD_orF!=mh0g|bp4J?Jfv3n4q)5BP0SvP!(TNf;
      zhj}8=y9>BTXr^16&_1WL&M#EIfxSn@I$Eh7<MI)OQqc6%hHi(FTjcDek(eK(3?&M<
      zifcs3aGm5+xM8xFjPF$w2dpCdG$hSZ5O57y-t4V}jNvA3QAC$~l6w1esy8-u*$9+>
      E1D5dc&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>Yx15Pi-j**2t2o3^2pukzWXA*?`198wikL5M<HkkUqoo0C|<VY3TfZ<YQG
      zuKb1`;8ckN5?9Xr7jB5L8$zJrz+t`i_`Nr8#`E>Zr_TWHpyVRKaJR<~_`rLkWS~8+
      zwUVt^3op_<=y28Xo|_AycKB<t6?AsOj__S18CECr_QXIp4g<{xF47F;$tWw@5b8j-
      z#n!K!40DlClKV}eA{hqz+YcGo6NZ^u7#Kgg$^BTQ9=w~^-@cb3hV+IEq~2s$E7naS
      z&*wqcYfueAw|WwZwe-Du*yg^dmYNL78dZ>igSjlSm|@7(WgvFreoLr5-tq-Q-ol%l
      ztk8KFOzKyXGTyVQ|JSZ6L$*KGK9k{;TPnu4E=RZH&goXXjk!+_mc~nc*6NA2u9jY!
      ziY{bv4l4{!*y@c`Y)6JLhBIBEYg~(Ns16wxils3lHJ?Wjd7W;^ZoqY{s1^55BR0za
      zXu;?mtDB_aQl?$rCym8FG=`5eg_{foJ9I)-Om`|YZ<W3oFNRDbj8$7alIA&<CrsdN
      z(?1$vDwe(!eJgM=MgM6U?F2GN(w^Rz)>(>d6V9Q(yI#I^jNC^Hnx{2GVBj&*1j*BG
      z^#q0mEYgVxSVDnB%<e3f3C&EChq6!UZ1}nI7qIt8IY;Z|W1K&tPy$AN*2?V@xk=7m
      z*c62m$|yw+7jcOM87@=$1g=>2RqMNA<A9TAA4Z~S3IZ)FmbH6lD8_IN*C}F3{!P8{
      NH`Sj=U9$;_KLMZ#^T_}J
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%We}f6g|$f4QW%-2T&-KXOo67VueboN+_sOX=ssBA|7JlBqlhT%oLBON`HlK
      z=mJ)iKtih6@ll9tX9$6W4U6&E*XNvj?)Clt<MUSl_fbqE#<0=lN4)PGD(Pv5YprB6
      z)WQig_u5>wooD7ksHY+bct>n2zqfxV6xY5=Bf+pbnSLPpx_<0w-cKXNP@0Ug+I69h
      zWJ^5ym6~BL5K3~lAygoJ@A=MS2KIzurs{jfmTqu26v?wMp8U4)<{?9BQ+iTwF{~A8
      zCXwTEujACI6t7bmL_#fHr{=e~D=NhXL!#=pMFw%qWs$`UL#`%0u^0B5LLKm?D;V+?
      z-r!_~&QUO--^qYsp!#23t1zT{gJzl>V}7X|*ZLgZj(VqC@jm1(c~~4RcE8ybEnO+T
      zGBsVv;u4k_;(oI`RIxpYU<~IvLRYyK9bX+Y%omCyMyf6k0<t+>mmQDmP*F1;j3YKn
      zmNVXj;Y(JwOtF+{kM~Gp;SY`Id8TlOVZ~0LQ01sG<+n6uWj~rThD_ZLRZDD3^Dfu^
      zJ(2fJH)*n|bo!F?EhCL7`cKou$B;pS_VnJg&QfHDaB=#l*GqR#k^5vp=V{Fl7}!M$
      zHRNfxI)Gsw3v?m^7O_MkW_JM>3C&E)BiUU#8-A{I2KE8T_{n<d6qipZ6oZkUwQ?_r
      z{F0o#wkehdlwpb-R&bRBsbESU!*$EPVSSfv9Ej)H$DwG7f`G7MS-X!%VhlHNiz24v
      Q-_+ZGQ~in5HJhOD6Mi)Q?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iwy<6vn?{xwJ^3rPNEk)VoE3t53$zU<}5D7SV`B)3*Ue9J0*X+1aN3SA6rm
      zCi-OJgNd*HQR>-oMOrcOVRv@Up7T53nfbnb|NI5O9o)zu!EkHD_xQg1MoVQ}Zj6?_
      z&<Hm$Tn)G$xKE=WLO=GkXsTC!21$ms*)`kGnw<k>_<jayhRW<D%j*ceC;Q^T?{*A}
      zfzXnBU7-W%tL^4P2DZtt(C}3x#dNtBiq!pk?{?qoA8m&8hE&qj8J5;tQ6pCg<C1_{
      zxyz7j_yduJgT)+jSYRl$q!R6L+!Oja?|Fiu*z)_-j#E?G$HAm|Edz$zmiYf?Qe$vJ
      zEgAAhrI1Ro8*-13E3rzCtD*a(HxhkQEAK=SS93Up(?sxlqezw=W;%`G#88+9H)81P
      z1BT`G@>Ej8<3T_I<~wqzxCu4QcK7d$jmke}np{DxPLvFFYV$EMN=FzSvV|Jf=5Un`
      z+*(EG>X<B1mE;MAY{w6EUp$i0(Uy)`#yX7rMl;frqGuHu%+WeeK1?8sBz@C8(K}C(
      zI>i#Srf*h0q43e>EYUk_qnkw7LXq|-e`R4ACE8IwRwzcki4HVoZN;oY<tx}*q@2SD
      zdghSQ6NsRB5(T^<K`%+p&J?&X0T*x<=PdX<E>PW?t-ff*R&5+`itNJ#nx-Hyu&|u{
      ac48RAC0wRRH0PhvE5}RK%+hPN!S$bEB-P#k
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~&2JJx7{;IBvqcImZT+Z9YyBz`y76Qpgv4M>P)dzh4r)vWn9?E3tj^9httbBu
      zZ^mn5^km|}#H)Xl@!b)TDthQ)cW2&x-{1SZGtam0pT7XOiR(#37;X>vK0k0?XsL|D
      zjnT3b7~%Mas~*=q=VACm=q*o+y4v-&xC(Z8*92PVBw`G!)9ZI0)mw+k@Pi~048`e5
      zmfaG1Uv|ZvU#%JDeW4|H+d})&Q#<v$4D3F`T+LIVEYs$0AmW?(x9{J*T7S)us7NJE
      zm0@9{5jJv^Fb)YQ7upQ5n%5I4L@}R68gmTUhE$>%3_C(U<{eis<QiU=+Hq=1`%y4v
      z_N32HvBZ;|PnjVaXvvT{E{hb4mjQPPzdTaxa@BXXI|I=*<-(It?n)YGaFz&OXAnxX
      zgH5I}oazfx<3{v7eaNu5QJ6@ox!m_jz-&wQ6%VhA;nv?7mEu3<8(&AcN|YpZYVsj5
      zmX0x6WEa&h&)^C}-dafL(vYlDlH`@raKbDMsg@V$uDB<|Ghh3UuQtP3$)GemJ#l(g
      zki-mqXUVt`q!6PuT_(LV6sb}yLf^!V;wNN3+MES?r);!Igl*(#fBI(@7O_M-%EvOr
      z$Xww`k5~^ztZeZs*c-&7M<Mjw5v4~ELNg=^cuInvk(}of;OrQj#d%z?;ETvp-Kwo#
      tvtmm&4n%Y8!x);NAh2g)X}gY&U<{YAPLXiV-=&xTEY(v>ui6IJegGH|>5u>b
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%We}f6g|!)nKq<NNFP9Xm1py48L?uKsuBu9Y8#bGDFJooBvx=V^}vj$q#wYR
      z58xN*0#=n+AhG2;_yE2DaqSEt&?2$$>-yYt&pr0nAD=!0xQ~j96hn2u5Bbo08A_!+
      zu5~Cou@+vWx$5z-=k1yc5$^B<;Udkjd^Ubh40Y>BX+Ct3WvHEvvSck09?GtG_^TE}
      zF%qHVep`f*4Aj%jM+|I>VWtr%qeHj3AB#-7{O!&6x9?vwWY?vVdV^u5+%$zepR2yt
      zBJHYQA4Os<eXkjGxi9LKHbc4*^h6F0ih1NQ!%%2SC3fP2jtKX7#}^DG3vY9hLgyry
      z)-PnluxeTV&!#%VIcw+0HA8$#B=z81apT)b!E`HL#oVXD3zHo_=?p|y*DL#`kt=yz
      z!V-fMbOvJ<YeWJg8GWG}T#J4X9x=?7D-%K*K93@jI^B|e#dRE#0}oCk)@%RheEfX%
      z4PtSrlKCPG^M7z8Z!(3u4Ee;AHD!UhRuG3>@mLz~ixc1Mo^gx*C$&Z+Lt_aprf8j}
      zf15%MY1-2x(mYF%O~N^}y4Bk12?`%A=se9i0s~vfVjCseEstQB!#tfR0Sj0p60^I2
      zi-cyz(u8)K&L+Q5`vUe38RxiKJHh2+3Z-D^XD!_`N`6kt_HBv9QOdYP0atO22pO(Z
      y`4n#0?3-5invDZaiG3K8W+@2tELq;}orH|x7H(6-wER2u&flr(%+wWIp!^flz2|ZO
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=+fEZv6kVrxO1W5|UH~tk*o&p=iw`9vri7%>prJ^-Je{`3I?XVnXU-US(?2lr
      z&2QjApGbT#@zswat{Jf0ifJ;l&)#eAwbq&4KZiem0eFOR5)pxiJ^4}YR^DsNF%@Zy
      zwpzYX70*bgBXy_pJSZr=sXW*AjpaH?!~_-wcb%Y`dybL2NhAd324h#;_S1iKNu&hs
      z55|Q8*4)-9a9W`BAMmF7;49Dc8wAEZr7dZ1EA7$2i~5RySQ8kjxlUlzY)ji$aV&oR
      z^6BgRp+I8EaxAmVAYZT73)=#*n%hxnL@}AcIIakcH7rMM_&Y77w`9v!0@;S!CWj;w
      z&&SD_d1rY7j~j#aUVhD0fr++uJ#SU1&dI$}cwJ!h?YU&!r(W_TXkFS2rt%?U#g<OD
      z@~qWUZBs404h-DRU=}w8qHe1fhz^9Efe8$Em8nUix~|@%jC|n~sAfygqqw1_)pext
      zHJv}Xh*&CJ;<*1+s>_^`B-4i6;f%>MGn(8(r&~>-NQvQYDqYt79TZ46U0=7=sukRP
      z?!uBT2Clf{w8>u_NenT*fnj9$9^w8+Fp3yseoQ{I%xv)-<2zNHo|!$s#E%d)#b=sm
      zV4YJM$T2D&;cyk#cwz^xbG8VhX+{A$g&9UsW_jDk4C|}}wXxD~h;N8T_lu<i+}dX<
      zf`Dk04Zuqhy`tbZAzALIrB617JDB4@fqC3z?Oxcu5LzgQc_5k<-}^%oOadw#7Px2m
      Zco_e4$TJhTKWQzTZ*>Q@mO_FDe*p}I0$Kn7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TW=Fb7(HV<-i_IW#9RZE23n|1h|L{Jf+;vo>tZ=+mjt<}MH_qMZ0qbsyXyc_
      z-+AVrQ1gI9RU{;y_(6TD5NE~<F^Q4-u%6@jzH`3oynXlb6@c?tG>{OO`Q6!a9u+qO
      z*Nciy6b0^DH<HCLa=exkw2I5hAOkycB55EcFg=`5@wyxKV=r<Z8AyLtR;$@E*m9fl
      z)`wsM6QK-Tr?V=9(Dl8Q>VkmyQDCg>dn%D=)#-HQ$iM&1JuAKmt_v6|^*i;Ydv$@?
      z+VFIS=07KpsxH(j0-5EXm&z5}uGYV&ntgX^dAY)%dqURlweLD>9VxKyz7{Wb9Isup
      zwS@}fl9lR&Vz)xy?SJ-=3g&#X<9cpX5=iFqt4ylww`2waQx=Zks6cu?wx@E{{OTwz
      zUs$j(rqGub#{1}mg}r_Bm4yk6892pOs(uWnY~mZ1*!BMK{D+>2Jj1!Ijx;gDHf#od
      zQ-&dHHZe=LF!DDyWlO~=T9`yuq4O5@VZXrMn(N7WcVkTkap~Eb-{jaF4v!tvml-56
      z#Te1L8w!kUsmXDgRW`RRqcXRs?FWz9++2R3yXB4(hHTBK?Y2E9>IURo-R&_y^O<pf
      z+@-k^RSZU|I~&y4|A|ICLlZZ-TYBSVFw0Ge=s8YK-yYX?AeSFH|4BNkWglFDQy+YH
      zFTwV^U}72D?*>h|=&JRa9DG^@H8ws<t^~gk7+eGcCh;gAYXTWesRbaOQsdVrhp$hL
      zp63xYE`4%XJkw+!z(Fb;;=k8O@fUFahG-;T;P7)CQ!uUJaRm(xrxi3cJUNm62VXam
      z+0%9-oz2+|BYVbfnAx-Ta}<<~N<AE-v4`Wd_ApIz4<~6q_ZNdDaDl%iZYi*cJ*Y9A
      zpKt>Aa25?*<aZ6f;5P1~Li_`M#S*_2{00XPAc@z>zNnSJ0{AxKa!S-r@IHO!=nGuh
      zj+N23>ujK_c?bJmxU5^GnsNnKsUaBoTiUK`?K$0|S$z*Av*MY)R>`M%2?Scq(l{B5
      z3C!aLZ&Y`;simFNKZj6L_zt&XYJsN;k?Ntallx?Vn~KAx*st<#?zx@Zr$e{`3yhRN
      F<vsQjNHPEb
      
      literal 0
      HcmV?d00001
      
      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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
      B(zXBq
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))U279T6o%i)=A(^iwoO|<>PP*yG1Ns6yhsU1L}?qU7#pQ`lk5;DY-V+KwzPl6
      z-_Q%i3qe8f)<5K(cxH@gsu8@{ot-o9dCq%g&$l0+z5uw3TLokossp~y4}#ZPDid&H
      zwCtuv1c~7)<T?zV+5@3?pKTV9Wmugqr{ngaGW?)`JVR}|$f4Ro@5`Qe@VgSjd?K{u
      zQAg-R#%g!-Ap_fDm}|z$x-cCcr6M={9)9@z_#S7-Z%8FggJEH<WeWvLn1Bq_s~v`H
      zGY&-&9_C9ZVUEFXNhNmDVOQwqyc-FIN-OSBIZj1sKMH2eE18gUNBpnrs55w}mJH>S
      zF36yGlk$jY%OiskSN-5gcOZJEUfr|qR!TU7vqXry1MA53F)3p>)fcA8jp)bvkYRDH
      zIw5LCJW0sFY+LpfH>sw!?*FaW_*XmQ+pjl>QlLsZd`OI?6O1+ugX-63aGl(^0TFuL
      zwOnk+sqTqK(%z?kJR)~&A2eFj7(F?9R#3nUt+O<885EJFZ~8CvE>omIu?(&G+qIAI
      z-#g6$y^AioMTBisXn*>b3X52x9qF-5F`5&5izC+dh~?M5g1tq~JF?JoM<ma{Ld#?d
      zctM6<lAXN?us;U-IFAbsd=Zx@Z`EaAc4pUI9Plda-58puAP_oO$$fhx7{e7@rHJkG
      QIQ80}scLHK4OigiPXxow8~^|S
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+fEZv6o&uZ1BF^Bv;_~Kj^LpO%jlICB_yOuEE3cdYw*Hk&va)x&2$gU>>+UD
      zgBTxy3%w%IL}TKWkKuzD*B&beg~W@QJ+rd@?_X=}_5J6^&j9XYF@pp{z0Y^~p1B>k
      zQkh(-z_lVJ%usRJ<w4hc9*IbF*L<t#M^a^wVpup^(vnIzB53bR#rHB8VW^#*_)L4X
      zMX>AIV&#t`!(=D|mwO!%gsv}Nv>r0BHHPt~FLgDl!@WqPd!^UT&W~?z7)F*{>8fRh
      zRJm2@(9!g}B8wy@bI4&lg95|6uE6xTbj+6L35R<tffEgcRFC#-v8~8x6eWhaT@5z|
      zeBY41GAv<uA`A`H<I=d7#S~^V^CH7^dHopKrfEs1q0RH_t`r;5z!JeGw>-g6Sodw}
      zhEq@UKMbZ+&kY&O81mm!Z!o0e0%;;GYFz9@+#}4XVxC%kVXH>vl^(&39IoLyL(;eU
      zx|HLZhiMEK9HE+=uFMbi8H(k~iKM2-!;oCZ+O8wHiUR8A!M_<xwR8G7y4A)qQ8MJT
      z!3V@Bonj2fH;Niv{!YAS^}cV_ZM|s>*|r}AwpexbG>fPAa8WlzJ4_wYlcwhiG8m<E
      zjCMPLEK>AMTR`s#ifmF|g3eNP_7M5mcNqVKsjWis5Yt~i#EMJwE|3aXCEjD=v{1wv
      zE>mRYx0XC+>5nLw!&M?PJ>;Ro6UxyJ`Px^ow@4=ss<lHH2NX&`!zZW&phIQ8B>2_|
      zaQ+CK$2=Bd@J-wz-R)R?CvKr0$AM&ly+4AEP!O<VST6of4q*&sR4AgmKbBVimJZI8
      J-i;0FzX0Vo@>c)=
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMO>Y}j6g?A9Y{!|j$@Bx#Qj(UY*l8S7D5Q|oP2$*%i{pk&;@~2I#?Ff~#TlEK
      zaX$nLB*X%#5_{JC0B{$TK(IjqiNC`hao!t;rl~=Qg?*3jyXU_9?mgGP|M|nu0IuLp
      z3<DbG@7nk52bs3#xIxAa0?(;+0+I0p+ugCfoy>;V6`pYGV#{-^`kvSqzSU{BTV5b`
      zV$d~A_D_&^JNwo{H?SYX5Y;fzKWgdVLJgz7@Ep5Y5uWd~+^yn@2JM!HkzC7_#RL_*
      z*%5<ZEY_wT{joNzAyU{}*KobmKk<L6e_n&Wx+&8PN@Hn=-n_lOn%|(moZseey<C>Z
      z`u0*${wfqpc@4upyW}=D?OIc4IPrlhA=9+oM#fSn%zI4m{i@_%ST+p%pPgpL_(Hwu
      zxK5De)03$RtI4%?L;@Pl8F(2JEPkPPt|yDB$`DV^8!#{;(JKayg=osa@esXgU^GN2
      z17jh&Y`_dr+Q5krWel9eNDNmvB-!o5PmSXZ*0US5<9L%L?FACev7r+AalFm48m;!8
      z@Zyl|cEx>quS?|0&>KYeZHK-kqFtvcWVJa1r*K-Lynz?+qK4xo#}(zyeoc72hMJ{T
      zopP}$8qPsE6Num((*%2t&l2uQ#ZW~>j;tYqoE?Zp%X`R?B~yoHmTTI+&)SA8r{UT`
      z$0KL%`G|$f{~)!$H9VhXmKbj;+xyIM@|hexWyC=pO?U@OmF{>>+7H(%?H}wF<-;r?
      zqxafV$y8sRjWJNJ+F_|p9mGB_wx?UkQWI9I<JCohO{Y};ZP91t*m0ioi10IrVVpq>
      zapEEVl?)((aVa$7aVaxpDKcd#F=Z(*WhpOZDK2FxE!s13;L38`v{7asr&q&SK+8d=
      z5BTjzXw}FQy!05866y+GkZ@4JixNf^yd+^v!K8$71*at(4I^e04nt-~<3HiGYQ%iq
      zs_N!dt2$`DWmTi*HLDsk-?6H3bHO6d%<?;CE?SSVEE%k(i%C+txIj)97fI^k5?Ng&
      zN$X--^17Ij#4cvZT=||)89;&GHTBpfK6a5!y~&L$unlY6=Mvj(A%zXhpo*(_A9MH!
      zH}D~rA@DACP{zmD#$DXOK5Ty4aPc`>_=@-uJp6)B@GGt{tGo?tA^#=9h9XOk^hKx7
      zKEdkKdJ@X}DM$R7;++noP*g*bW4Xn<xl^ofjb~+*`?ees(#j7+Ozk`6mJf{534E!N
      z845>w$;Pmb_vm?+x^a~HbswsZO>Fh3v$XOGPGI>c_nSjpy?3pS3cD6wdx*Pol>2QT
      LuEr_IURM7C@2`xb
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%Wl&^6g?9saT?O5q%SD1@@kWYU{x$wq^g915QVBB(pZSyBpDe;t_}7WrN6>A
      zbOEbMARz%eK7loVfrPj-F(#0(VBzu1o%6W&&i(S^-3I_$sF}zxYz_D;KD1tht}iVv
      zW$1QeDXd6xzt6+I^+ddkMI>F{=|m#j=ZC^XmSJr=?LZ7=`^cAkXd=&0pN@L0%o5={
      zzbqN%$-w2FEyBnR{Lb!O2KInqwiWm)9cgnf7P+sVzuD{G-+yArZ@a!LcNjLRd&<c2
      zxbIkPD#3S}qev`W&)N%m+!M{3&5&&ceNlvg`4UQ)Whn2tzSxfsyCOW`T~9DnG~DKt
      z3Z0W+Rz7zlhFe<ozq-|AD8xzUl=wuVREMV%OmD}NrdxUd?veS@c$JU31JRSs+A~$m
      z`4Y}zmB9$QgH%N~BY`oTa)fMgDV!iYVpyow#u90HJc=mKnYQcrT*e`F;r1kAyZ(>r
      z(<f~1kcvr8YD^dw|IkR@rGRz13Dc=+sOB_$O(?d5IP8ggu6l=+$;rE^nn#mMmC~1^
      zZxtpA^q--L&Y*}a?de@<oukMu;SBnloAnzfD8JR9)3g=|4BSVaAQjrJjbK>7BAtkU
      zB`lMO+O6OWp_%G%BKwfeieIjO1bdB~alBbS!MS4!WuWBev|NYCHf8oyTP%+#sYMwV
      zaFGNVE|Gl(mo@u}&by)GfKg#@QqepGfvy%S>AjJNF<iwpil~x*Q?LI`^`=rcv_bVJ
      DT<`N{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fEZv6kVsCUMNMNT;w7GD$;^b@rFu8Nv#G#3UsiBs1E~-bxfI(=@e;vGvQ-=
      zQ+OcJ=(F)BeDFVv>zodPv?e}u&h9>Yt$kVheE;?7D}X7?h2RqyeQoR*yUA_GvfZTN
      zx{kG8am{4eHSA5p*-Yx@j_Fu#H3UsysBv({u59U5+ckDW2nq}~j+#3n7icS!(<tUm
      zr)-t%C-V;l#DYLex@615Zr&(X%s}<WyZ7$TZ_FFaWtNw6s{)C|#@uz~&Ip8_&gHW6
      z*~bEbOfI*S6KF28J-e`KtQSpzj%SK2Sv2fIQdc)boiW*r%I}4Z)x!Q`L_~*E8%4{u
      z+*tvCJdqdB(xpu^0)d_=deO&LQr^85pHJkQcylg_C|aa-K8iCnYbc6Vw1jYhvyvU3
      zEHaEsq;bsclH-PPnT@_N9GiWG5ofQa<CGl9HWo!2+NE_RiWoWsS{E(b%vQG6O~-34
      zwpiMr4hGfWOq4SMKYCcW`^qYlZbwQ%dFDC3g6XCW*DRErD#sVEiBT&pT{OyN4xmZ5
      z3bx@^9Ac*HBU0o45b)1(%*;yZm?>*)k)!i34o{^p?sC*+Z!@VG!)sSwTV3%)Lvh;~
      zD3|r5z9UDm^$H*FHEW9KrHZp*KC<NQv>ZK)NvRGW6ZPgVfFSx1LYQ_FADIsks!nxj
      z_eyQmNo9HVNp;joZFmNW>O>cj-Tb!)jbC8pGsK$z5N8k2FHKFE1JVpAb1?V?!)yN7
      zMSV?+jp%EE*r<Mh1ii%Vqo3}54A8%iL0*i1B&iP*{Pr;=kU=vRm~sijSiv-OEaM&~
      zRTNkRm)0w3mN*~%!Lj~BB#(I_%KMznzfidDS`@CTHf3W|xJC|v>$t(Yn~M9EYI8#Q
      z0e?(<P;OaRkWS#GB8w{9?~!q*aGM@Ep=0Qs)6ne(Pz^IkdC*CoG6g4-IE{UK0;_px
      WHBMx<9y@*-yVn3KaG#lcc<>uHjV3h!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5>rN9v6#k~&UMK}=xhSBBDAIy$#T#mCl@v@$YP~EpAx4vJyD4jyUD*pl;%}Zu
      z;RlIEAHY}f9gJtD3$1iXOw*m2Gv_;(?>qDB&$pid7V#{C0K>uuWmnnDeY7;g$tjLw
      zX?538bGD-xO~q>F<SkWoN~W$Wjv9f)FzpXmHQa4^-*A+@2*M0A{$49)WBDXU1krQT
      zzvAV*QFmO`cDevDhB^Ph0<dP*Pn{WtY}L{fy{1~WW*Qsi6$ZA(Fi<iL-knoZbXN`4
      zOD`4=>V@A7v5ji!Wu>ybzDk~%ihmwoUh)jl4z%AU5{=fnQrA_6;kP1EPFIXpP8K)h
      zKBy91q5#h=+jjd;A$Y<<L)Q$=DKZ38=^BGnGMj1)43lwO#ubKe!Mm4I<#er&Zmz~L
      zgaqGRizA6d1lNfs-e`AuQOpt<uF+_V-i%_7(w&?*IvvL_M)+<aj!}#;T&QS<T6MSU
      zs^vA5te6cVUm*#I2VsmMh)F8c+0tx=&@ShnG$}Lmw`j&_z*?rYPn4z7U7VG4#kQ&8
      zK3QuSisM>@S?cvDES#g*=|tp<6eU8Ls>(LS82KlLr%V)&XhLj0^BJ#W5{oeHd#|_A
      zRN7b71Ud3|&@JrjiEpp8ohL(u#bnd98tQY64^5)`)n&Or^j=A5`h^fdAAKj#k2u)|
      z=q(2@h;c40?Z>&Wv`%n|#7Y9u8b%ZsafuM)bovB|zCivv*k<q;6GxchTS;uELq9OH
      z8BE@gH>KoF`3Na8kl!Ju$a08jGR=P_cmTKPJ42y?G8I&%RIf1y85#QD#X6Q~eT-!~
      zb8k>unoX~WB3ZaCJU@AiY$sk!Sl>~T?*(qG?S-6ZjJI-I(7|wras+Ts#J(>Y%TR1a
      z=U|e35oTUsSeRNO80U<xy<iLvsKhoW9q7Ze&>bJBM1AEwXqHwUmbgis#eVL>N?uwC
      U1w84+&Y#5|_+S}|qOqrc0c0ded;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U2_vv7=BK&`Dj=w4Fzmbpg?ItNdqDxwpM5oN^06N-L@DRDBI+iu9NQS?gnAT
      zd$0Wm{sb+~Fr%Y0j(7eNe}LBv&pBC0Xrs=~?s@llzn}Nr{p-aqzXP~}Pg95qod42(
      zY(FV}<vVUzw8PMMwmYFL2BGaXZNFKxoTdy?Fa*vFwye0FUF)eE+D}qQ3Y;BmRrVUU
      zUIkAfEigUU?yjn1O@7^xLD=Vz5t#Z9hb3?OwXwjFK>Ci|-jsgec<x5EEFhKy4wpPv
      zwH0pK?T$?R@aX3g|NQayxWLfrN@dHcmMb*8P#c`)O+ID?j;`NZ?K*AMR#z6cD&@tB
      zz-SM(?yRn@M{u&dakp0aOdz?wvAj^D;h}&`yRCJ5yDb^)zD`?g+it69X$?~hOH!+g
      zjm)OHX8$)Wx~AtEZO3)Od4YH?zbRmpyr#@R;FO8eIKxWjBE6BT<~N6^IcwqwMwE2k
      zM7AqkFmbdi<xGrrrHdwxVI+l1WLlBcUv(NY<kNFyA>iIL)40s$!f(9pYoYDAt%7W}
      zWE$_0tezs+@%&J0RQ~r(9LEVIePH5kj0wC|b6mO7+1-|Y#6`B|H8^9NlO}~4%pi_a
      zY&G0*0)fP1HD->!O14`vEZL!KdHz!tl*{+gU25AwK+1+Jr{&sV$EVNrgBEks|FRjc
      z7jJf+QBusbV(&7>=o>Mjp{BtdODJww;V^Bxc+}IeTz=ppjL=YhX8pS``O5a-HuSzo
      z7L>8Pj^B{C9kpi}{WZ_1sqqKE-Qbl#3PVU^9EV^MJItR$48s^x+dz3t?SekJ3Hsz7
      z=#yK(b6m|zpPUrWq>goxk>26kpD_3YTE9Zn<InN#GfXJa(Be5ICbT%&L#KLZKKUD_
      z>+x*CsvFs&RZnEESkG{kD5LFRg76;B5#Pfk71w@Zsu-^Gxxn&)TWo5P1ukO(Yq*4a
      z)Yb7Z?*)8L&3!CUUd97hyz6*~EnW@EU*HBl)X~5e_{l^K%`<+Cc=F=O=eW_!m(l1B
      z>2$Q;@vap<(j+NbW--SYg4tD!Pju{?nxulpfp}K@sA1JWk|5ygU}`Q@N5KT!S|FnM
      z?YWlryM8;s)j$QeBi9+8Dl8eiy5IM^K3^kBYml!y2Ys*Y_x*l=uRxWVVpw_!!gy+F
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fKqj5IuuPu~rd8@q&tX&}ieMVocQN6HyZliH`*~xTLnE7UE~=3nrTQ0e+Nm
      zwyi-WzU=PIoH=vOv>%_Z?*R5t)DR=&TUOV4G~1qZd{cA<pI7RArk)z&geiqEJHE8d
      zAbDA9iMmfn97;#}M+_)d0*GxnO*5>POI1Sr)NKeILl`kIj07Q7k&d|N+}DJ6W7TXy
      z$W+|AWmhdvsyIr<{X6+USPWSIlU8N{4{pb+2P^~g2}$3*_Ss33kS&&eC=9b@4U>di
      zzcEaobfn!7UJ_G;@%|zTu2ayFK~6cD`C~aEELC+7<_yduPZ((m|2oq5dw#Sb9g8Sv
      zSRzdHMT9j26G*FZD+X4v#!jtvTR08E&d*hU&mHg<nJ6oY0znUToJ+OwRNvIDnu}!?
      zJ;Xl*5aSnrCq6ZfjyR6-o!HubLGn4M>wM}#cAt?480C06M8UuqM~uffQp~}=kdC;H
      uc>-}Q_lC@ECi{ZvtsZ83Sm<H7hxI2e#h6$%E7)m3Y=kWlF<~P>ZGHg>NT8Ge
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixOD{t~6vzL=Z7)@iQm<NhEU?gshy;;H=|ZZWv9g)A2P3!l*4$}h=_^@DEPMbT
      zN}Rb`V!<rtoHJ+6`JI{nynnpD0a(YJk3NC<d)bkX#g<l~DN={np4#{*s_i#q%aHcr
      z35?mYVj#oY;z{kE>c&S}VBzoPii!<|qy^HuDpY1qpnrMgO28{c4a%S&Ls|G35E!kf
      zkgDxwjr66g1tc(DiRv=Al3Lk)H|d!>6$>m@{+`*r@Qy$sdC!3~@>0t%z9C(Tnyr8g
      zH3XKH|6v?j33lv7Q;8a^kh7ZQN#?O;B^lN!uv2p1sh`Osy<AzUq$uA@RHNfaQ!<<%
      zIonI0(?eTniuVnRX;c&nWG<q%u2Y!-0{PS5f3;@C@#eu|^GfkQ`|Md}wu8LeU@zFG
      zR$q{L=AaK*wi))o7CdZYn4|1h5k@e|JANK=Y%O4um#q~)&FQ4LoHR~-9d;XS>o_LZ
      l@=e`{GY4YQjktCorrd}-2V&Zdh#iO-H{!{Gm`(nn@CgE*tZ@JU
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g_v_QfQa2%7;)?Ks4=2*x+l4iMARgRWN9Io~;ucQg_Mjl=z2y@<kHV
      z#0SH(Kg6G5ytCalyBOqU=6;=X@3}L-{`~j}U>o;~un4tdaVkE#C!zASD^De#`^Mf4
      zyvJIH%Ij<S)P#%36IQOMjw=W=kqnjSbz~T+z<>LqMW9{6WHaz1EqvV(y}m4b+W*}|
      z?c_6|B!(>_!e%>7KFa(%&Vkeo!q|@Tm3~BcUdsSmL3b#ikx5*`Snm+>&ETCZA%__o
      zHf9O)18%n`{3CbIJC<GDsCOnnxM8D&GGV%{eEF*X!IR+|;q@e;(hj=31HqeMKMCgb
      zd&L@^%tZfNw^0}c{jkf7OBqyJAfbFD^-wRNTB~1KTjHs2*|?26gb79+B<ynuCL^+l
      zHNs;0K~in`MHxT(9;|EYQr~NK%`ZRb{!E#TRfhsbl<|MsGVQU(W9Rt8T3AK_W9$`U
      zZ=56i0&M3vW@D1iDfV7-+|-wy2j4O6Y<@-MEC$T+ITfd#Fj14iEzEOlbx@84EV9Qy
      z+{6--8Ot=V*j`38p?}D?$&EYTuyTRbFKk;d+-5Z3Wz1<0Y7$PuI_`4BjOX%g>I%*|
      SDwn~BDR5x~-r#Zz_x=LN<m+?*
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5My#InQ+{eq&*yb}G?vQ!`$0AhRPCpngs6lErrmZbV*
      z7MG;vr53R>urM+RfHdgmB<7{-`zK|kCYLZW@F&7lh8CnGmZUN==xX>7VXiC4I%~}^
      yMh33n{L-T2RJY6=pk_Io4$uP`%ErjR$iNKr0s{jh&^@dSY#<f`JCI~z-~a$iFhY+2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$U2oE06n<Vl27``mxK9Uj^Anh^Znu~v9h9Vm!3JG5@q!ertcdMW%A)_t3r+k;
      zyf9w-KTP}!-WbnY%2JHnwC{7y^PKaXbAJ5!`VGJV4r2&0-0JIB`Wx}mF)dd#t_=E~
      z@^{tl$Q;EGVaUuNc?^c7q2ZYNKr@`7X<O$?nSoUq7D~1?bal(s^ufr8{yO@d?H~Vq
      z&ahUNRH>~trFyF(H`}Gg$!SeiWl||&vesu1s*U4zNvfCRnq1~FV-oYZJob_y!Fd%)
      z@mW2FRK3wYX*A`wtjTq?#d#(}x+$NXD^0o8mQ<DEN~6v*7YuWbp$~0~9#2fmbdMOa
      zxms}CvfZ65q^RUIhDgbNVI&YnM!*KL469>-IMA)0*y!|)u3OA&^PuGlSVxj!v1VFE
      zee}9xII7+m&@kzm-KCA`v^T<jFydaALx$a{{{Oj2k=zdLk<+C@n^WYVS%&4F;d<V^
      zJE?Cki67486^7&_LuY2#%H?NPNzfR30v_TK!#t^4e%}>eGc|P#BE$NO?a{Ty;)>~Q
      zV6s)u+&&j!mzwdr#Bmc*%n^za3K8B!0?BJE5MBu26ye1HULw34z-hua0(gb+Y5=cM
      z4>}a}3R8~_$}(~QoKc+nNf!3LV5^Y%gzXQWp&k0Byp%>ppOU#}WFFWV({USj2$2wX
      zagU1e7jF=v_kBF@%Zv2qxoF`dw%^esL<Qi@4e)IM!kFL}WXK`!iw}Kqyzm)?@7RC;
      QkN#CaAHUW=_E-mh0pn=S<NyEw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gKTiTd5XIjh-XSQ#L<%j9g*IHQtqgw(gG!XxFUM$>oV&QU5I&oQAHWYqn7!O-
      zVq!CI^D^_BdHcQn`~q-|c8nU~e4*BAlPsM!KH)V>orL$DosD(w*|3XICv-wzk}30+
      zJkA!Jdcs*TG*Dhmoih0=yS{y2X6$)RxVRkuPacLnH&-u$Ef}(_uT08Wm^}WmerfH>
      z8!25hom9qyy|<1FU`{x#>?i(MX~+4kmk3^4LufwRl}mXf077^2CuA>N8xaV5@;g8z
      anfDPPWRFX2lzLEVv(#2lnLLzQ!_f|zxM8vY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4$xZ@65Pi)yFb=4=ugDFMIO-K+T%s3o3(9@K4mLqBLqq&5O<WQW#<L$~tezRk
      z4AJPNySDf0Rd;=SzP<t2KvqMDq1d$g)}484i?%d*pVN7!><YL0qRw}vv_-8a`GHDl
      zh%hYvf^aGrbn6?^Wmqr!iwBvXTU59#F~qh+TgYvO<6HpjS5*pR{z03sGDP+}S6oLJ
      zBL*}W3{!3cvt_j#=4q|T>#~%uCcuy~5Jik(v@F{Eq<2%}_JvhzafWocQ@2`G%NEM_
      zf)RNwXxO!Ys=wY+joR(>>^iZ|2athDNkoH7e~5k{m;W80lm1x)bC_pH5VYd;nDjt_
      zaWyPbwf~QTosvW_SOFSwbExw_o}M<sm2fE317`dU2Gq{(tSKGHlKwC)C__kn0$E|Q
      zHN@#mkatdTl^-drzCbS&pOAbYH-u3-Q%-7!fV<GKhcSw+xaAl}nmhtx0+U3hEY%=H
      z_7tW)`c1l3E?#)X%sUqD$#%J8PW;H>G~61GlVJ(V6jAa_x)nZJctmm-eCY#62jGm;
      GV&w~$y6KAm
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh5+?#InQ+{eq&*yb}G?vQ!`$0AdHH7L{ctr#hCD6lErr
      zmZbV*7MG;vr53R>urM+RfHdjnB<7{-`zK|kCYLZW@F&7lh8CnGmZUN=7;5+sX|^lK
      zT5HWPMh33n{L-T2RJY6=paDvF9ij&^oQ;uzk%1ZL9R>zQpu1QZ*gz}>b|A^bzySbn
      C3rD>G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO;5r=5Pef9MZ%YeB6#wq9&GfgG0_qe4Uq)2_ifqWVrfmcHOAlJAMs@3LGNDp
      zN5*L}dhxJtX5PH)yqV9hw|4*s=vgob-I;h0k9Is)wlf@^o!U+ywC+poTPPBmS=$ao
      zIJJk~O!|q15}}>5Dze8iRw7VO!V4sebzZtM)+!2bF8TzzB-ETJ)QJcaR|Kgv7azuA
      z^xU~4n6bQ96GCh7H)Wi}Dx4k>%6>GFp3wYn=~#s-IUy8wc3ncz;Z6kwtX0uKlh7Eb
      zP+p~TPsZ0vC#^x`i@+7^j-CCG#pG6L!d5=*-<5f6WgMlkFV9uBQ2qB9`<X**gFWyw
      z8GEo$=6r>ZX`sSbMU4@t=aF~M+%c{)XLBTu=H4q>FPs=?GnR7l5bK;*mjY~{!xdpO
      HS9QMum7`zM
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-sW-6r5Mvtj1ck){lb-f`SDxc=FJbMm>p@2E1>=Qd81wNj93_=D{D}j}kXY
      zt=m>SEj#nxycy>6>-_`3CH5I=g!2)9<++oLL&xn8ZmyjtnJDf@Vj#v+iM~G)fw~ou
      z7;+^T>V&Og!-;r2bSjp>0vX48j&OSRP|}57rO;afy3YjrE)T>+g)&YV)(8g+TQi!_
      z6!}DZ`nlCvzEB8SF;5ctM!1^thQX<Y5^*D*roC=u%A8@?Bpm)`D+gVkD#MDUq^B~U
      zaPo(VrJM{qgrixoN9kq3OBKV=Y-RC$K--g95{UaS5`^Rb>bNMhEdpUhHwrX#I}KR+
      l&-AaZ-&Kv+SYJSz*f5Y*(J8hKq^*(8+*Vt&yIQk`y>GIGnFjy>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNYjYE26n@^MP11CsC8a<q(jX-?36OI0mU3%oX`oPOAqrmVCRviLo87S4a8t3r
      z!0*iX!A~j<qo7hi9K{dTk-y}O<2k$ABu$eUG@az#eJ{^>p68tR^u<3v{|aC~?)c#m
      z*tj5Hmv1J_lA1`(%#NQ(%vsf}9~}a_46~3hN(E<r{=odfMA<McIjbp&ne2j+v(lxq
      z=7-M(NvK9*PBB$kQ*ZMof!>P!no-P(YUr2JCk4c5fpsZEuUN8fWn`_YboOldeAnO4
      zdj|!4rTL;<DblXAKxb)QHB5ofG&4+SvR)u=rm7c`_M%~C1^T8}kxY;RS`FkCO)1D0
      zQP^&uZq|3wUFW@HIZf47>!^TtB$^TENEvx0fGzaIRs^vX+x#GQI}3U>(d^a=(xjZT
      z4D*(RSFl~6yP#NUTVswmL`K$1h&D_)W+wdz3v6o+z#LYBbV1-%2_f_e^h~R|a;{p+
      zD&|GU?a;K5leLUY86fxFN#B?)E(kAnOW1{e?;<6ifnpLQtRt0HQLPAUYH1W3#3^A<
      zY=hF>7{aK8z1S}>;0SAWHyNe$`IKu_StH>7M)j`L=oN-JEa3oN6NtBgS!+@B3Xw3f
      z3#+Tb1tqGM;Zz7!<Vd5#Zr!l#F$wF@!{LugcoWCSh&JI{00{VVhOSfTlVKw*YL5#j
      zIB_$llr5_GiXT++TkQJf3pT5i3`?mkGo48Zz1R@M6i)j=w)NJF-I2u}9rR;bU~_%R
      z(KB9EwY*{maE>kn*GV{tGdRy_zR={mYd|!^JLV)@#3f3RTrMkmUSMyl6g9ZNDqJ#v
      zx9MJm)k@g)Ldl0MBP{ENRaDF{UBNvzk;@#061EC`g-Ba;Cios_=B*%7IM0cimv9^(
      z3hZf<s5W`<+8rWjDstYjl32S!sZ%*qX}w&vh?63hlF^JGROEfO&9oyuQ_GYe1%Ytg
      z|CA<ID(4Jq(x~eBhFz+_aH}rSc!{}b22sRE60*<)PPJ3D!ecGdmV((SoiPo8L;oF<
      zE4Nc+I|K%u?6h==n%fOiwUiZ0hng*&salPmvec>s6W0Z%UXIo(gtl65GUzRV!~X-6
      z#rh1JD7D-swX4F@b)GY-W=@$@`9E40XL28Breg=)UN3z+>2E9i2+(sE^;QppSmf49
      z&x_n^?2#@xjREf6_87oM^wWt=^fpQ(f27dnCm48+p&zm1A-#LBlYWCV0y4TWfnj?V
      zw4XY;d-@2i^ZD-BV?<)1kw=Ku53eVRpo1N_KtK+F<ZMSAduWaBC-%8eXKg{iVC*ME
      zLnB|JH}(T|#GWGI0m1U@eVYOEa-dbxyg({6o0|hYSc9h4<w74LXx7oqfbpj|<V79I
      zXEU;Fh)vEm7lIDpb-Y3Af?I+McE;s7K#Y=q)>s~4mPwv_(8Tf%<>xbUe6fM$K#k>b
      zoS>lNbf$v>r0kr0L0M(KQv^4$j6?BdjPhfA38(I2_!&}{pW)2q(AmeBi7jC^lv%<%
      zv^cwjcOT>Z-yX)|k1*ki{lJTQN+NcZd_}^(p-A_z8{d*k_ekb_68asE;Cr0Hg9bCE
      zYGzDP9c&<u9=hf^m$Q$?Jg(ZTuaW|09ihO#qj(qn^za<TSe&^pVc~16b2*h7IfdvP
      z@PwE>#UP$hb^X#1KT?YyK^fQV_$DfDeD*B=Qqiq?^c!oV|3T50Df(X&{Y9JTxA8GW
      L6ZnMKdhqGLwPuL=
      
      literal 0
      HcmV?d00001
      
      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
      zcma))OHaZ;6ot=4Y!Q5b_`<kwY1P=6=&CD4Nl1uIAaUWYlu4;+JJ?Q@-{!&};Eyt1
      z%0pso;-=F(bMBe%%*^N4`v-ta9O@_#j-H)YXKcoyZ#M1j?Ty(}Y5z_H!gG|+Q6y9+
      z3Nvsb&$Ro`!c_#_l~I)aou736GO#)__DmUiGgEf9j7LKGe(Z{o@@16hSR)){-jmI{
      zB9uxjmI<18Nu3}eoaJrto69nu2&JKu44ZNw2#uUZqs<_(a0c@@S2@Bgn(50~?shav
      zRZnqe$YFHU2=$DC6>WQguA@#k{()--PLe!G)sks6Sf~h<x7b%=&T#!d20K;D5S&*@
      zM)D(%aGGObOmk#6IMrHw06m$;u4wrIpHyx6(k~|H8iBCF?*!2J4Xi@rTIZ_BV~J<V
      msBl48$3`}8Vr!<*P(T&iytaegrLHQ^>|vih_}=+jK;s+3ey@@M
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%T59@6g@>`V0@uGbmhv$u(4t7N{vPnBMA`qo#AFE4pY)86TZ!bAK*tB?+gTE
      zaM7NoJ&)V-_5JY)ppSD86@k`F<!UAET+92x@a|TQHF>BCG>ZqBs5F*?a7K~yP!qT^
      zHkM`{Z^#Q{oeC3@&uMPn=}D!Ngsea#CO1}=cTNa;FQr$JF{HV1bi<77m(dP(2)#Ff
      zJ!3<G4$J?B@|bMU4gR?<WWJl~Y(28T#jd*i3>)|pQjycSa>Q9dDScQ)v~b#_nTNK(
      z<#z5@Gg?N|wd<C|9wW1~5k2aJJ?dQDb)n#%*pb&h7hU5nJ=9Tj+JIl;0S-5KRN^sC
      UN^IhkRcEZKGPZbi_*_Bv2Y|9^qW}N^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U3U{z6x}yXn<gDTT1qL3P$*zhpaDTGq>80bDaKTr60wLlnT+Yw$xNI~Xv3Sn
      z=^x-tAARw`j|Z&}F4ywSALa6#JCkHGGqtQ$GIQ@a`|iEZnREa7_m4jTT*LDe5(1Ok
      z>N9mW?=+13^4j{HrTjzJFjGhh9Oa$7sao~?T6J63T!GP=Zt8W_)dfx$;}Y-s`vr<!
      z)J(%N+_wdWvbl;ta@nrwqZp$nJ|lxeIFiC)f!Vs%&WF*uNGq!5+D=EoQH%?W)pd8(
      zYPqVV5r>OeNy6h;b{)g27jl6mk9Hx2V*;nb2QY{3A!!I4S1^nbfg?r3(o5||Rd+Vj
      zs!7L86m3m4E2?AgyT3THD8*$kgqIXdW0YjMTSiM@D%KftB%|5QPS?ttLGC`$qV3f4
      zcBAfBg31vmhk)+wYI@T(Y^#;RS%GO;DK6o<-mqQ0w>^dl%qn;Vrv*lAzlal2hp0rh
      zQx!NC!+=ch^Co$P?BggvOkOS~jQLzrkVTHpirFWxHAkoZs;FjLzpq*~Q+EVrvR+k#
      zZ5oUyFz!_aS1|9j2zOdlZBgwm1Z`e6)mCf3Qom_9|As=}#B1b)W<D1f4`}q#$U$np
      z4TC_lK4{-@A2djiA|<a|3f{y5WxJ|F06pkHvOvmc$tDvx>0t+v%5J+_$ZayocNDw@
      z`l6C8T8nEn87q)BZM7zO3zUKu_<{rKqAN15NC3JsV3y}Y3M*6**>Q3<$kmeVuGnp>
      zHqd$Z6)fW}k<r-qlG>2pQa{r_S>UiE+qPe|5vI?TKM^1rq(zO=P@CmW%hembGr2cI
      zjTnmP%ISOGOP00zP(cZ60ttOr;LHJ7l6T!83N$FZ(&nPY<2LX_^balMDqPHu6l~xj
      zb)3shbzDXT>&~fkNZZnPo3`V2C&y$=_f=AOLNmEH2TFFit!;T3J&AngQw5uNEO2PY
      zQJcLTfos7g+1PUI9iDXu`K2lN3@TMv?+&D{4sRy+f#`eRaST^qs<vE*MtWDwt#HLy
      zDIc9*YrD<1OFg2i4d21QUF2J6DEJ(89&R$4zV}ek;^F9a^4M4%HpNn4GD?chsx4U^
      zfrWi(ty+CnF?S8aISOnv1%?fd6*#{iryv&11xd-9;GR7UwxgiU+%jdm?P&Un!8cNx
      zFRyv7HqO%3HAMG0N#gs9p2q1ZMSm1VZ&&G;|0xrh-=X}4iC;1KGrcD;MgM2$7kGp*
      zlyO3?@($f*e)e_x<^18f-*7UV_5?{hm1&9>gqLxOg42BA5X>2RPSVbdByyW*@?m4Y
      zU~=x#9?lKnCwldGj7R`Of=zj0IFAdoPYJk)S7|@Z_r`&+b5U3~1baCIOV@^k2f=%0
      zrHSJn@*=|U>z+$#zAgN;8^nqeGc0Wn*AtPvZv!@E@H*b0=rrF8@d!7g2rmW@3Rsi~
      zbQwe(39-4Iz>gFg^!bMYtR>u$STw5xSodVn9#8?fyA)Zp%X@e?8PWE)M4R#Au!;v1
      zPZ@ZRp4b%yMZ8bQX`Zd|dOwKh71IM8*Qr0*F`Ab?!g8pcDnkhMr#Od<n3XWymU@Jb
      znH#kf8^|q1!!RKF6DfLuRs!YxG!a3*g0z?)AlNMkjl+0})u_bH0fZWKDUs&cJ`%U0
      z5-pNw4@lg`7rsRPepn)nwtWB_QNXVV&};IpXHh^JZt)twjB5O5Kw}H8)JPL;A4<=n
      Sl)fWM-~X>hfn9=4pz|M2r?LhB
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>O>fgc5S=Y0?gyn!TA+ne%10sLfYlq|QwUTbMTyje9N@HZMy@N{YpvHL`D+~b
      z0sJV$c<m%xCveGRXWzV;c{ASMe}4V~fOB|l!5V|(YyN{zY#I7?t9$vOX@6CI@DT&_
      zxIzoo8SG^UJK&LLcZb*LDh6Awh^Mo|yL!8faN0t8wg|m~lZc(hGKz>kO<atXFQUYP
      zO$LXWDJ$j@L!oef&0u?xGhyJ=zc2Hx%DMu^pyo=X_69si@iUJ`0ZIm^^}Iw=3=`o{
      z4IZkN7~zm7$l%OuycO^yxzS`#Nk8%^%JP%8aCyMsD335R^i(=@8s8Xf27-??3xkfy
      zT<{p}E_-xbn+Q<es3EV)f_v27Vo2KC5$Zyu(a4av7V@|^O%#TP)2WwaEg@$4Rt$}L
      zuaIJWpTw#cEiGV0peY6+Ddw(3&!;M6pGyj7&{&o&L*|N@gaZmrBb>xSs@ZxTtVlet
      z;0c41`LcCHFLkf-2&46#vE;FFJ~zkGzmj6ihXMXyfa+NK3iEBAmGr(WX;yDWWp`5*
      zr;6r_JS_S%K0K#E4eo2g<}gu`yYntLa&I)Hb)(=>GyC`UpLxDSi!`f0%$`W4ix+-C
      zv#XkK!kbLB3IhhW=otanr6=MxROoEcX`So_dA4A?<hcVobWH<-U2XTET0+!d-|!p|
      v_C7q&*h4td_8~md_81-;$P+@I!c%?o44!NIqOfO$eF?9qI$A^eU4zD7$KGrJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i%}N6?6oqg6X>G0AR+p{>q1`mNE(mr+9B3&_r3-gy=Q5^bl9FV!y7IYP_y9hX
      znE9a{)NXPioOADYa`W~5@d*G|a9V{O0_O|%%vMy#oO<J6a6_j|BzVtcC{R~nk3ch3
      zP{CwG$Fl{_ErE7~HW>K<E|uX{=~w@jz-4E+QF?+I)9;pUCRTG9^$T+%A9#$O3UR;;
      z61eDehe}6O#SxvL44u?d(&Ea}AlEu)iyJR7R>dQx%@Y$C5;*&3>LY=gMiypK2)uXJ
      zt@DUWr7fEYq`q7x)`205`+kWvr!QR;@asNX5R1HAxeS^!!Qav`j=b@rxkdM0g3Vpp
      zUIG1ExYb|J{6(JYt$D_Y-2}?<|BRRts83X)=Xl43V`-Ha-b*)FAwXc){SknQ+y6dP
      gApHkbILK-Z>RCO6MplpDIIAbnbPm_hojcI}0X;alYybcN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!A=4}42C<1uA(MBfS!em6V4onYeGCgHgS`^7i=~qGdrZrDDlxe_y9hXu>)N7
      z(955{fB&!FKc8O!Fox>_dIs*-_=Y<xp6yfhQa;)SU7}~~ULDCIxyZ919%BK012@@h
      z9d@m)mTOw6dS>AEzX$_&EyV@y*e72{A@qm9hGfg3GjK8-l?Ddy!jbmJ4NQmgAgv9)
      zJ(k)8iMVuRs}wgW9&#r0eH{+ACSi2^ku8&Q)M#8ClB{UPj<nz(Ob>Zq0knh8seYxW
      SkOiDWhP{A+Dh4jI4p+YpO<AD;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwT~pIQ6g}J4hNh8^S`icx<U=Uff})^B5Q@w&GQdy<XY?rzv4m-pnxu+9K!1<o
      zgW!Y1vyc7+{U45ZH-V;2JCkO2bMLw5-gEZXzaKvV%wkPKgkkVVeXkzp?5dI5v20f@
      zRrFoGYPtG$=}6aH2{DFl9+Ru6W;y4bGISj16}_ywIzx7|0a4iAU0rDlwC2a>DR)t;
      z7^dMaF+?XO_ZeaZ>p<^7k|EuWgN&=_lF-R8Qa0<k)@m2X>#F8j_D2QX=wV2fb$7#b
      zT-DTw<M@Oi>Ge=_ZNn_*Cj&=bTX_lB7^YhbwBvM9Gy#U|3a%i|(6wop`c}PK((OGy
      zM~2j<rKy#D)i(IvKa4N>&C4&2HNEB<mgz{i#n30l%$4vIxcn?5irWhM&>`Ut)oF>7
      ziNmmhyBJ|m^y3=Icp+2T@4Eq-7Xx<>4ToVUpj^8qNh?XSOp|=TFcyaL2H1q1L<*A%
      z#&M4!?y5Gaz|a#4q>qkOw>6!|57W*PZli^%+P3w9VLqssFOLT!d|0Tcj?-Sk2MhyZ
      zLXE(J>bRHF<R#}6<S@epYDD@)h_1(B&l3L8^zFBoEi@o$HgVS~y7dynXm~WfxdOA1
      zKq=z3iOaTS73<oeSF?%QGX)EH!XSIo+o;wm44ri|C@gPbMZq#xTrP@1t{dEN{q1DT
      z@*XivE{W2`r~Ak4N-K$0{9#DYZie3cr=;XlDCbChL;5T2Bj}}nnclz-l6Z+5;uMH+
      zN78ve?PHXEQ{XJoiX$nR?-<COWAGG14V+HF;T6TdCagCCOY!0{iZRMdaPx#v3zWwh
      zBu|jeOr2pOiUz1hu0|x^3BX=26d6oW3MFBhR=iERBO&MoI^l$64t<9Ekr47H%KRLl
      zDkCe96Wl}ryjd}T<rb<BqxeGb-W=ni)JYS~EFN)|MDsD`1x+$Q0QRYXoolAK7zv^N
      gZlbv4QzVmwuv%Jv9&Y&$)%@Fp=e5kRDtamW2S@)_f&c&j
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TXR!Y7+pJ;ri263Knt}k78FR*rh%%Uv{a!`ZB1JsPy|Fh4V(6~X-+xk1Y7Wi
      zgAbykj*c(RD1y!~<M2=wOGicqUwH7R=!`!>Tzj98Ha2Kxl70L3x7S+VCBOgu%N+na
      za3O+#z_tnVoH>(rrmVE<=F?d>e|WIJH*d*;m$h?~((5yGp6$#=5E7_U#_7CS7)uY2
      zPRN`WL5;vxy{kP)=bUuX5A#qfuuj`rb~-B^%gkHn&C$H1V^=Rnq~lt4;b{MU0Wl!3
      zs@E>Ko>}ll%zROXKl=XW?ThbkStGDk7SzSlz1H-&bh1UulP-5pW)=ZvJ;y4Hb<uap
      z_Ml^XcFxYzaFx51nn0_*H<K<%&sQOvsUS};wcWYARj|AsfnYo_A`t4ePs=FQqcMUF
      z0vpxK5BFf;Q8Woe$E3Gko-vDgPoOEDSn_V=gDW7=V&D<P1lDA%f*dMNjY{W;FIOyM
      z=gj<wNeQV!X|twV<BKAQ%?4Vrt`<)S#5JxCMyG@E?H~z8wxf!CQNFm<z&6AMB7{k~
      zrkNh`<&q|<$gJ=t4XnnRTC@vn`L9>Yfl!w^4Ag-U4SC}hBlAF!|INp)C_3>}1W#6E
      zWp>u}<dlJ@u~T4WiG_5$S#qn!WI4GAo)Ku&X;kzq7KBctBle^$Sm&ivi``7k_9%9t
      zTZz1<x<t$UCPvhq=L|fLy@Zytiv>@6C21y9e+0diO!T|z&H)2`ctK!ALC*MBSVpDP
      z@oTY^>QU@NzkvZ|9OCt<2r|qv%|+L2R_2P1<;@<L$;oMtg+?ljacntSfq<(r)IX^v
      z1WQ8L{3;*)e9!e9G7*-5k#nT!Nk5;f>)!8&S=XCyM|aUOEH{D^tY!_It)hRpe4^^@
      z6$2wU7Qw3m>vftfFWV?i;dKKhMg<yN=^d!nEgIrg@>qrG6iyqE>h9XbyXB-M*Ku2k
      z6PmUi4mGasB}^JER+Sb&ZZ-03(NvwMerXo^J+v!vB8n;45m3vj?U=oiZMC977?{Rc
      zl}A(4jQ(E7F`43tYK*Fpq`E<SbfPl!B{U2oan_ET?zrFK_Tdc!MU}N7waGwb?V^*D
      zeU|Fn8z1_Q(V>EaO|0=C0tkcuAZ&swpc>6e{sRSI@XL;&=WGHTqpIU^tU)c-VjV5(
      zx$5MoKG6j<+{OBz(EI~e0c_;&YI+9_^Tr|i?!{yJ1iZlxSh_z<8|9%fc?+A8$=Kt!
      zu;phYIBV0h)S|l>K?2A4dz`LMU;|ESmxk{EX>8XIuuYbn|3TXt?)9}TV8_sH>^h!`
      zJ$nmXgV#}WOw6^<qo=1ObPZuK*YYd&?G6QZhOZ;m7^)BRZ2vr7%w7tM`f$tD`+qft
      z=JY#tB>z&0U?*h)Mk!#9yON~F(0~avVUiT{*v#CCqks<B*v+vQXEox(l#r-Oh}CQm
      zL-bxpF@|xF-W$lppM}Zw5Kn{j+D0+6oW&{c5e6m1oeen3y)bXH@_6%QdJb`QT!-gV
      zS}WDse?)Uz^E^)8#i^m>O(gDNWlD|nc#T7<v`oz-mztx!AHdBT=LPzBld}tC`xbe=
      zO(gG-+q+2OqUMwI-zf8G#~ICs?^2O0y{UdY4vU@y^_k?aN}kI+Q7N*$?Kg-o5f0vH
      zy9+U>aJBQhfV|#R0J%;*Sch)>3*iS$;LA+052@A1XvQbh=QF<jIhFrHBW(5GDI?qt
      z2QE>pCJ&EV2RLUPm2fT4TH(qByA_suXbtXRUNosibLTwHz1MvyAez<k&ei*WDtt?A
      zQk6C-Wz)2XImuE2zT%r-6Y~{f_=d%I1zT|yDO_VoeTyEB1Nd%<x|wo*4`7CxszPnj
      Pu@CU%!AxLQYjge|NFHv5
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~`*Raj6#j0~HYHsOv=o%Ku~dX)QyM8MkG4n!Dyiim!6N15Camq&G^v{n7Jo!^
      zbab5Y7af$x=#0ZJ=zvN<n5lJ~DKiQ_{|x;b#P8nSCIMIM%;vt%{mys3bI$FLf8Uq^
      zunuMj0f99W#tCCOVNY6#LLr+-6|(zwB~zw-!n9NQ%qyldXk?tceKLd^fyL4|ku`E-
      zi9P8FGvkC%C$L)WDg<>e;g2BDZ03w~);zw=ni?m3(Q?cJcMlC$U{j85<;HsH%Cp^T
      z=bd~epQT}A&g9*!W#*iLqBAZaMg<lYs#%hZ0-H|cOveo<HS7}&9n|+_vR2M=wg?2H
      zu@QlqZTaJ77)@9jLbJdsSC|LmXlTJQf$*5=Y&TyvidjcsWi(dB!O!^u2t1@g!$N^Y
      z!&c7RU7Spt_I@djK+|wOV`N7R+mdT<v#w8Z4I_wl4Xs!tF&@#d0QGXVQbWj{J*pv$
      z21etIThwfx%Kzq<is(_FO!#b##zw;Q8PyPjPQDr2G#s-!P=OWEr0ZHGqWY{igf4;3
      zO3IVjtT|?62kf!pBvZR%I%7^bRz4R-9PJ?_SRu;T$|sV0%BK{)JTJ(sMMGFG(Eh-z
      zh0%j2H9Un40?P`fv%{|*m-)#cL+-&Q4V&fN=E~i2eaiDb4gFw2E#dj@`--(DO5K>3
      zsl3f15lMkMw{)4us(MjPcyG-zHFf5zMML&LOSGz4+#c+WjmmTkYIqhq1sXDwQ|zJv
      z+cr)z|9-*v<TS=s3g*)jvivHk@f?sYCEkTSA?&{A5pcUz!!~TEjlnO?&!V_&2w!nq
      zqA?%uVT|Aa3s}R8I4Dq?$>wwHgr#05RlhhCqqzcJR-c-4_kPXU*o>=w+$fC8=2o4a
      zl##ro;RucffxCB^5_!&gO67}o#vHU{6Gr~?A?%j&U?mj~@~cG+0<!n`qy}U+s*xSY
      zF)TY=jrC~6B3duzs)wWe3tz{QSu}l(<yW{0;9>qY5);^pIy_CR4OpR0z#Hs%@BR=y
      zN`$5QHMHrv7`=+fRdndVtLUsCHPH$f<nK<RCee%`g{HZ8u?mmzT;i_waL<#2ywk04
      z;}Wuq(0V&@yKW&ApF@itEMd)oi_i|-MEu}2to`l^Z#PqoRp|C&SWV`@L1G=@>?pk-
      zqeYsYGPE-3cN}Xmq1foIM~@ACD<x%g-Ac=Vnn^XK)_iT~<8kgu1-g}*A8<!%w*D(D
      zZ!KZnEP8h7-=Jd-4PA09;Ry~AZy70JqulN+p||TYueq|jlnVrMNT5J>MLsAeNbxm>
      zHciJT`Tz2DMY+RuSEjt4soF|94Txd@&k#|_cHpl}_63h#fBbuhk5L=E6rY8V3_H8{
      zU64DHCKnyou|ru%zFbG<*EN^QM0M5_aEc_~pgyOm?VGHdx2WygB>4^>%y+Q~@1Ym(
      zSCQ>6lkI0E43SzR5_pc82(VuHXn17LGBl~>W_^z7zJ;(J|6CEALsXxM&nULR{);TV
      zww`!fPYJ_{@aceP(`P=t``5pie#rX&h?RSW74QieokbhYQPT6QfD7bs4jb`V71Pbw
      zt2&4r@H}ViL!R!Vz*5!}_IpeRIl4VS-EN^)T$Uo1@WL!cDrt4Q=@QlYf@*!K{M=vv
      zqrRAtc}y0JALh5jyg|&HzL<w_*yEY-c-G2<SJGIg$p27vxz<aOkk68L`L>si!@)io
      z-5ffk_D!vFA;mv-s!u7;CB^@f+br{nP2^sih-cGz2I1Bw<J3jewDz@DICZNh>n93*
      zn}OY7iTq4{clbQ~!esr*XX`g?;W&ifF^WGFcei~Hd)x!uPkX)4>Lo3~(wt9UMwRjL
      Fe*n&}J97X4
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%}T>S6ot>kn9*2mZEbggh@iG&a9t^=AP7N(O83(^v?KX}{D|&#uaDxY;KB#+
      zp~O4WU{Q-%+{~Gr``wfK@%i=+;0P@ai(&g#+=+WHlR=TH{J|4NKK4$iT*)+2S*DVh
      z!)DmjzM1V*WGa|h7@T7jtGvh1-1Ch!6!FOG=c$TE-TeWBeU{uv7YkUfU=a>O)mO2+
      zETW-Iuf;Hw40S&VL^u$s(z?8~^Rdbpb`16Zpk100i^!1vWMJ5xlWbmA9kQ-N))=@5
      za#{feaQjJ-2J&3#q>Y~&I@Hr>rHnfDW6_EJkt!$EBW=;!X?G@AdNto&s;;?xB<B-W
      zNVldgRIo~l{8&Sk7@AcpSr;@x&*1IO!368SVb9d`VqjZS+c%7tFlt4EusY%ffh;t?
      E0527CtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&rZTX5XQfOLbW0&iWg7bpc)(FK@$v#|2PpZnBJGNDQik=+O2`d@<ign2k@bc
      zv!&6*c<?f_v-6v8W_CY5-`)Y7p<|;$aG%7BSa_KX@>J=iCvrXW?qsIZWH}TnlGFP|
      zAfL5LVjC7=&+uL(;?Vm}5b9SdR(e3Fc6&a-x=p6iK^2<~)KDk1Mk<yM`FtYNM=^;c
      zp*>0h5&0rjCN3{6JyRLsWc2@``h-rm;MYTqb*kd9-}6oT9n-!^u;((%L|C-_nZHB{
      z&N#`_Kn{6Z!r|Y`pPD)xfmh_$11fyt)!5n`owFzQHFt%L*COq(br=IKVBr#5d}^#A
      s_S+m8fhJocFksTKb@zCM)^CMtCT|LbgEdtuFppidS%W`@t1H<50(D<zu>b%7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKnF%E)25JmqWx(aH%fvsA&@eWFBVPavoEE|OoFt8Z7nuQ1OP{u)xv9j9y&6_uW
      z?vLvYzzSmlhcHdlMb)x2x+-GZNLAUBT$|Dsd85MA2)Kkv3&~VvN4X6Xqb)&1Z-&sB
      z&G!UvQ)_d!ah{a|1H$5uH&AhEqVE8~kIT<W6TO577Vh$@&?aD%3;Z-%w&oszLB0cU
      XxL_AO&VrN6Z=ZiW_?!sCmcZx<vM4_8
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKr+iuf95QhIv+&Xbh69P?1dZI1RIDwi9Aue21phAV(Kr01B;sPYcT@n|^j%){!
      zx8fjC1QM5A@KA_Z+lpxvxY^Upe)G@l?62S7egN3Pj*JXL^~`){zSje84ShQt>E<x(
      z=_j6JTO%0~Ls8gu$8@{;ap#O%A;at-GBYeU|9#mYzg^q4!###<O=~kq``#&6kj0z|
      z899bR({}muVZX!u7iP!d45g-LnNHjEZLv=drLboQ4EZh(V_giZHSK?)6_jvQ#+3`|
      zTcaT4eH9BRQy_x1l9ZpBuG!^2!%9Mpvz;&-GOjUfOiTC?mF$H3eLDzj&&{ErU=d3q
      z$z_IxTBI~#hQ94~4Xv$U71w2~F;vp}PDE6(jt#1k)#KLNlrMC~$nl${MndPoa6`om
      zW*IU;pJC~50T*+oN6H6jS=VCl^ll(@4qFUtz%Vb~Vw^EO&a3G+Tf?Yjj0wG>5nA5R
      zx403%W7>Wxb>DLwYB#DVsg!;G#^*tgL5VLO*rH$N;)d83H6+txKJd9^hWu1orz&Kr
      z&FNH>f>tw-MBC9xo_6<WX5zGd4&@^)GEiw$Xa??+>jPY(l^Q!?K0;_HpqK!T$wvSx
      zUvc@U{u9OecPzdvRnAfUf|XC${6NMSS|V4#pmCSt?@<Rn9K$8r-NY@jYuG|9fxjkS
      zA*4$1W`p332(HEO`e$sWlFO7C@Puw05dA6f4pG5T6rmhbP><wGC`Yjved`8pLwxT$
      ObVumijz%4KX~rLuAo_Fw
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLTTj$L6#mZM%GLsFg;nvk>I&Umq!N8W3@@9QkPsljkm!@cGT9wcT5P*``6v1t
      zc+f=F#0R6V{wU*_wpqX>Ci>8x>6!U1bI$3{UthlgSj3`%9ARls9Evw?Bs=|3#cy5F
      zk9+QBs18Le+o9Z*eyoJIDZ_mgMJn*?I=S)Mm!W|Ip`zigC;YCvv9l*Tv4Ij{D#@zA
      z-I5`r)jP4{Ny5ZIsQivP5MJ98QADuUPT*THZ+4dn<HJ+yVxLi^C(2jx3SrI}JwBRg
      zY!eFYU{{*RW5R-oNkZOfY?nc}Xu-gkUR|<K#u#C8P5E-YzrQ2HXQ@kjE$9euTd;F>
      zoh1u#PqE?UMDM@K#WyR-SAF3z&GhM;q;*?vyfE3;H4E2qgN=4&%w0HBttqE5dR-H@
      zaN9ubOe@k_TDXF%n)I%Px+blhCQXY=!PzckW(Z?F5%qK#lj5yvnWlv~I0SPm=!YHo
      zROz19{xT~Iy1N8x)#q_ZS}r34F2U6s|4>Cjc{p~c@s0BQ6p@3i+sV^x>t=E+@?+ux
      z?^?Wi&L{F5C!1d|-fSJC(wskr{fSdKO!3=B0iZe$@+`_UhY4~p&G}jiLlu|#iwP1L
      zN>*AZ#{yj2OeW&*9PhcUAD|B?=8u}6QE7b#4KOpn&G)Es!cG%+l0>m^ls{rfYNM)s
      zlM90u*~UZ6&?78x)K;n~_0WoodzfWm{vF_C1|IVnZLXqq2WV(D4lhp>N_wA`5=JXM
      zn=z7}w~WW-sCkN-=i|^`3SKz{E)KywSLcB3Kf&#Dz&W%MiFw@TsOOZhfCn&t1CuiI
      Am;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GZE#fO6@K2`ySrhz7+6Sf5$Kv)$R}H(U?C|A2}&>t!9XxjD>s|h<c9qSckd<v
      zELM%R_|evH&D3%54}Wk*J0%erQQMiy*y#`b?LU8YI&G)Zb~>F-O`mh`W_KZ(&hX>z
      z`*qHF&w0*s&byy~^WjwhTk&QD0fpq4HDOI9^Ey><Z1+^sD!8M`KF6N0T;1X5VV!kt
      zE8VA^jGfQhxoiZ6!mXlI)~P%VE3ENO?Od{7JJhvLTSIBBurlv02ec!04tI4bsQn5n
      zI&#^(Yh~R5D_zi`uESqVp6PqMTcJ8ty1pZA<?{-$ZqIVs%8n%aUB}Ljv?)Z#IZ4^$
      zR+<vkzC^*b)4bi~am3Ymmy*2fs6x2i&f4xSh0XPgZ7tqu7*H@ea>F``AZks-uvVdF
      z3Dt&yDB`#+f_04ZMkh_I#|9dr#~Gqi->~>1(f*c+gvc#-bKSW~?Q~dqU4=R-I@%f*
      zi91Yu2b&m$K3VX>z0Q>bLt{GSwly4$pkAS_>_t~Ptw*f%ZfB&BVLJCtrS!PV6jY&6
      zq1H;tJfFxE@@`^CC+g(3x+pfIHi8y~xM#>m)WiHx?u5?Tr?pdsq(U%Jw>gStY!!4?
      zM{uXYs<OsDD?iFSMA3?EBCwqb^$i2dpzu8tx1d^7cbaHJI|EPU3R%}P&s0*bs|rlj
      z`XOsLeJb&2&dKQEM41$ctd(J6nsKj*-2&XQte*1K#eRng6DuOvtFS{Hx(SZoA;dp0
      znbl4do!Gh@`>;QPE^@UT8KW}sfMg?R4Kq8<=rPfY0~8vy@;y06R|IlY96D%XB~}SX
      z?X2!CWQMeJ$ghl8cP?e62P{?#E2X$;xT7{<*y@qxCY&ed4MB#~FQ!%@karbs^J%wK
      zCflO)@0f`n2#nDY?e6wTA=^JR@rZ24xLs}tUPa2WWnu^^M$KckjZ!7n);AnGwwUNF
      z!`$_ST%@hk$EZa&*DS48EvJuE*1EE3tV@!UHjxnm8F|t&0$#9siK|8OqzMN^waRw2
      zW4Sqp1+Y+$9xz?S{kG*OU^0RUI$KWq!l{WVoD!T#xEm|F7>_XLjETntx>c3f6p`!1
      zSrd=T>B`E}US>|Ne!|3)LZ%4G)a%_6bTsb@*m7Y-CKp^{+5;&@-gdKmDU+Qhs(9U~
      z-|*si*2GWIF0egIN9@da+SbHwL$Uvro{Vz)XY;AT&zTlB7B#N0&UbVvNeYZ9tj+4l
      zvU*33oyudL!ls3^ETLSMqs!6$T)|1{`)qk*694Dr+9G*WFuSrWY%dEE&9YLh^GRee
      z^9#YiIz&*#`7%D00Yurl*i1N&Nz?L1)-p$tVc+BL8m_+abb%)uo90l{Jd0arv9Tw1
      zJ7?dX!HO%`JQ!=3L(|7s&^*`_+cJmm_BLKY>);&jx`ex1X0aoD9;S@O*#(8~i$Wv!
      z?zx0L7qGtZ*SPx%ItOJ(zB$}?8TSWpgp2N(`L7#;m(ce<y$Rq!{_dp5fKAWF7{LkD
      zvQ`qvp$X&Ij+3|_c^o9;1~I|<pW<wStUZk<a0dO<Y$O_t2#0W(qs#_qM|ra&oCRp<
      z2p*!oV8{2#$3oR}9j4TD)2C1~2n8=TeFD`(D2_Jr^AO=C*AH|3@WPt&<GtKGzSD>s
      zpNU%BxY}~{ZJ7nPhb~}COHHUX*cvyyfogA}R<;a(%V=G&G#yekp_Z%X=f5y6(hnbv
      zUgk<-h+vwz{Ry#ohOhHEY{YYH;V)ndet|pjB6i><?7}O!7q5~3Z(u)W(1%|lg|~>$
      z+r(*xR^IUt+U3VtLTDPp&_v-DN<K=|0<?ILs}UlygKx$tX9jw(jaeCEUX=7*A2qaa
      z6l{aB+utiW9rm`~^)560<KksXdNX%~d`XU?8X`gV+^GCPg>tB*%+6g@{w-q&QF&0<
      zbr~lVK0>zJU$BsSg1auDzWFlPeLg|wPNQi<=p)1jgK=XPr~3z)t6BW0zkfQYHk2&9
      z1Cts*R+yQ;)>L+ABf$rLN9ufrwYWz3Kj)u~-xKa@B+?%|NAL2TDLT3W-FS+iv0q>h
      z6ZbSBjZ<FW3sQG26Zs4wRno7D0ku;`(1-~dvpDB_^_;@-G8ueazpQ{JR)XevlEK4O
      zb?^@H_|@x)EOui*^T@VZ=0fBJ>MbU*N8O&__V5L?mk1mtk39l!@(EltSEh5Ato8&#
      z#>MHdstL0e&d>j*#Oz-M%fa}}{v%!e6Pf*I^6f9|Vt++F{>B>qJL&NcGVY)32mc~S
      z|0a<CA+!IBW9(Ws=JA+PILp0rJbPJ%JW%%effqp`1gwr135!&X&+H^epV`}RyvXc(
      zDDN|SFCW2|m?Q!EWmc0<)Mk#7nt&>k!b^p!u1H0ocx!;SO7*^m*Ez~xj!u4WAo@SE
      C6aZ!b
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(Jx{|x42EB~X#=6OP$&x%TU!tjA6p>{qEo~`QTA(kq=(X^$_FYxi>VR=KY$;F
      z@FfvQh=IjEpC7-r?>;`?-T|DUXQD<JK8a_svQz2jiOODVk!N%JUOpx=osWeI<?MFl
      z%VnnG$b>=I)4UyuD6qd1gyxlsROS%s{eed?ZsM7=P{(Eq4KxWIS4HwJUrc54Af}-t
      zblun&p(hfh<Lc7L<|-wexc?t&MCkPkz8q?jB`OL=15dZ#(e2v=b0O1I1V!7Q`74xQ
      zP2xQ9<(Ri69R9uhsjkBjctw6apvEU&jjhSi1$$!O7_PDLTBI$u7GuCU3|wN1PpuMS
      rzs->rXtUJ<4wIT~4v*L9{8qST(kT=UN~%&|9=qtW27e4!*RcNu5PxP*
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ+yAFat5S&Bw1RwDaY}LYx-(aLQ(Zs^;z*Qgw%yAg}H48t$k1{Tr7%Pj-?oMWQ
      zW*^Vn9l!!Z2}fX@>Wi*bNl|4IdsVu!vD(nlP#NnmBMDbv)R0uB^OIVKDMePmOUh+s
      z4COqxCeyuuG#}M_-wF7uI-;{pioBHQ3C#XD1v<&-@D;FlTT~{ZfMK@($un=RbOhLi
      azW^ML*G30TOo=Yz9-}UIpR3<6Fn9rKA3d-D
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      AS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+j10D6kU5RX)<&YK|;udOT6IpOokzVQ8PioA%W-^VnsuN4_0TUD>*Qkrn-A9
      z@j+kok&p1nSFO@XDFww-9{d2m!!HolIX#&Rkx*UTr_a8uz4zMtoWKA3>j{8ad~P8j
      zaPGR_xZf5-ui6Y$^q}ZAqpjjvbK|a8jjs9Iu4<J1?G4rN0t+d@Yudb6cN?3<o5se%
      zfMCi<I~e_b0xOL11Scy8gewUK7F0t;9}3Q7543dF1*x)M^D;<c$i^Us1<9<lJ_zP$
      z!@?oKNQG&yG`Bar;0t%7?g@@o{Hj}DcLSyOZDA_fQlTJ!P{96*n5b2aSrK^IuZ(Ax
      z!qvc!$e!{Wv0Let2F@!jESwM=Gc-3NRWGu%dtR-g!YG3=3|W{IOzcNdjjFou)=L?j
      z#Ayqs1d|6ez{VL&3x+nmXf<fNl9?k}C$7*$Uh|@og*OFb{Y~$99LC#t$HG|xb@Qc{
      zjVv587x`C%z<nUd?lIRhPNh96dSw>!f>SSs>nAyb911qhp%@pShhxoe2359wYOjFK
      zgm$&0CWl!Y7jRK9tSk3|Z54*>9!o#F&$Fv8`}KO<W`psrjXAs*W0dP|7*>3@<^_WB
      zJq%M)kIJ}xpoe!}5X1xDouZx;U!1Q_hCM07Hv2-nd?cK8Jvj?DE`#SS>DFq3(RLEO
      z<U4n?-4z>G@i7lwsJ<hkJZj5Y%swv)ruRqbZ;m-I%^>g^k>C)yQJW2q@vNG;VMz4x
      zo(b#DHvKa9dnQqoK$a<FpW1hn;B=ecmt0~RBOZh$rSE`=|GnJK>FL5WZ;vG3G~c88
      z65&Ou_k+mrdziZ=B=`WC+z#wq{tt}&#$5tO_#LJ#Fpm@#=y90{!134`uj3eZ^fRce
      z0;AL!Ou0ze0Cf)^VeIw}##iJiCgxMQ-!Za_6MAW3D)|_1{E4>`FuMFM=8|*iU*HrT
      zA$L1Jn!eD&OuU?rmrLWR9lYN{>DG^F8BOP({QT^nnOy>Dw~@k(acL`OsQkB3XyK#B
      z$hA;@ifg|zp}4FiQ`{oSSYnCSnfMJJnPncePjLyK;R;qLy~*z?*0{e#xywHfU*aBj
      z5!df=$Ix+urLxct9S@1QNE)>4I{y-k@)PlwN#!tpz$cg_owGPk%nIAGMbhFwVWgFI
      dQ;J+QMp|>#O?<!zzczvG*q|L)n655w^*Nvl)87C9
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh4Za#InQ+{o>T*(xS|gO8vyrk_`Ri#GIU@#N=#!XDEZ6
      zfrXJl0HjnuCowNw-#;lUHMxY5fh#z_v?w{%Ei)&Tk%1ScS`Va<jgf(off;BM2rx3R
      J0!bzYHUN!HAol<O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&O%4G;5QSe2ru|34Aqdg26iXo_l355FtJXRUoteo@k8m{$2XH9S1WU22FIDeV
      zy}I2mR{%X!85}}qFOK5G6D8BwH)k$Vv*S`|y%zGohwow{f{j)&LzYl`D!3NGmV4{H
      zl7`^!UVTElxtjfDIA|>i#nDNs$oOH9Fcb*&m$M)8srT(LlnDKwo{Jz!qbQ7x+I;T)
      u%I%VQn8s3#eXR(M&%irS_i5}B2pRhmfNZ`TT+7Uo3kP`=EtM@fs5}7RUt4(q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK%%h6#nkmi5+*+1n1S%37s^A_|eoPDNsmLNYWNe^C-AYNy2Mv-#Sw!GsYe_
      zY1tyNW=j{S8(_hLM-xjFr9wzSVuz3rf(1eqLW2JQoO@?tCys@Pl)2;Ud(QWr^L^*~
      zyT8BO1~7_D0189mx_(37NS1iETr`}UNxkf>CbPO}X7ucv$(dE#$nqKQV*q}Jb`g*?
      zbt|7-$Xw@HCxB*#q5n=(O%P=0lnD$wndU`9H;r3*#^emmg`&Mya2Ud~HH5TNG_3pt
      zLm(@elo&cz8hziI<Ja`E>9~X$Sc;){jW&#e$<y2<o`!9ercBdb=Q;X*nITlF?lUMW
      z6w!RfungxcLp*vAqycVfIkw2)pRsd11Rr`-bl?bsFB)46f#Il%2>KXWO5C~RRoB%Z
      zvwQks6~~}ST3#7cZFjT*Y;3WGvL9D*2x<V2&}*$@DbwV6-JB}s%WK?n&TnLSL6jcE
      zqYTHqE@^HzHKU~2Wk<8GX&Jk0<w_w8A}WgL6991)tvD>+PN--@J44&7Ve$F$T80-d
      zyQ+m}Z8FQEPD+xB-lpGKHHiC&?BW0P7HQm)ueGT&8at?fpmIt@3qsT-I_!!~NL|rb
      zgEo;@>Cn0T#vpA-=pHhpy*_uqA5uHAMms6yx`yXcR*r9w%F&eD_p>S<LRhNm*@`?{
      zf1VSorsxWV1Te!eTodSuRVo(>cG2Ovg#s_?LYzG+oo6^?*^VX&@>~ehh*EwkWFH@q
      z-%nLjEum^O>30!x0nF~3Qg?<_%;PjU+~ii?Sq<V6!(qd^LGzc>+{p{#B~o~I&zrXZ
      zE>pK^?A>J3Wy8$zVi4s1-u)4p?r4VSm^K(f8d33BQn8E`0@n)#ZqfAhQ7;e3>m{8K
      z5wEIv4Py*J$955EVht)aZI_E#e!&nIMu#i^?&Wk+ki-C4#0LdU2++SGyh4|qA|^$y
      zWN5jPo#jeO(kh0v1D*8jqE8=Ch9+7^;}vwr6BYEvPgKy~e;aCl{4NHz@1XS_2A9G^
      z6%5~x_irK=@A7XV@tI6HLeJv}((^6&Q6dTsftKkiSjP}<B92>l3~%EkojBzJAxS&p
      zZ&VUy@=Z`y<eMPvlW&5ypJ<L^%p;qmRh(}kX5*jIivmHQS#G{7K~(pE2g2|;o}e93
      z>E7Uh`r!8(20w|@4T58z)FIz)82l8TZV;TP5B{)W@C43y!55{(KwI4ZRcI5FRQjYZ
      zvQTTk+pf>a17A?<?#guCvYBnwR=439`c5?OSxk9}uX>4lC}ZM%q4M-n_*?}S?#B~^
      zQv(Q-3c%L{@C{uCJLtx@dq8@sAU)!$kRZ?Dc@Jc7(<kej{(Xbe74a)V>{A3O#2=K}
      zt$17`i5-LzTX;e8C08y;R}$axdcHr>82m)RKjSEV*~2$d<s0$*r-+}T1CSq+TZIqj
      z2{M@2-UWP70Qx3B!bqZTYzHbmC7p;El6y!mg|Ad_wQmbAZ{Zbj_8o=wCARPU^MmN>
      zK#iq4HNO&v-)I~k;0S)lF#aH+9#HrG#2o&TtTmTKmG!(FZ(-?iyiTGj)TB3vrvm+7
      DKD*cU
      
      literal 0
      HcmV?d00001
      
      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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
      SwX*`F)0^uGPZLT2&-@RXl)Q!j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(&rZTX5XQf43kaeh0{*>tFaeBij7JR@A}68;Og(Sw1{Nz#pf&1KX`(Ul-~;$j
      z#@THX5-`Tg%<SwpznR(n`u_L?aE#p?EQZ68xEBw6D*bq(qDL;`XvlpL1fKA3c~6W7
      zu^7lsn#jRnDC-g)&=tS*M$(UR$TIBz37P?x7^()KLf)4XB?9#%yg)K!gOD0iQ0W;#
      z9I1f!OzxC!&(v5&Z3es1bQzpZcq0q2Q7U2?MTSyOjpapr=gG-c!mF5CS5Ob)r%5Lo
      zswo3EE&jbX_0LablnldAYb;LKbn{@?C?bynsRuK4wb5LZGZgw^Jn>~$>6L5qFMXt+
      z0DFYAVIhMYMV4mM-`Nz?&SY2UbV8ny&$QmL`a*$)GT8!o;2aLRSffbGNrVd4$<rsG
      zMpgsbq}1AM>);Lbd4fwd*M?9}R4IY<W*pso6I&^ZlTU_uMg5te$uL=y^nM*=+o*Pa
      E02EV;!T<mO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5OHUI~7(FwTP8o(4D&V821r+)~#`g<DVo(wif+m<o;%ZvPGBBMs(<wpY4{)z5
      z7jBHvg)xw*O*GM+3xAaH+?k=}QH`5>=id8$=bZ0+-~9Uh^*ewIm{A~0$gUfk#+F_;
      zOAXiZp6EuyThmL1Z5NHwhQ4G}%(?KOAR?h(gzL89l=XYXb+hCth)Ov7Pmnf1Ov0cK
      zU{&>H)3prSdTJDHQ$n=nRx346LUOUqu<W^(Q=XB~yJ|i*8n!3oNa(SgS|j|9-m)Ca
      zo0Tw>Ih>d+NQlf;S4|aN7|_s%q=c?awxEJSGz=k5w7Tit56KgYmSZk8Dn-+M5a>!S
      zR%u4TpjPS(FC*TXRhN+W8UM>W)-c&YU}wqd-K~;Y^Q@{<S8!6oSlf{W+cwLFecLTJ
      zDyHML0!2ZmHKavBaTauEpI_y6g@c*wVbUIEpV80*mDvp5lP#VmHS~%ng}|Z%;x4B_
      z6L%5EZ;8Sz@uXrJ=N0Jt1|?{t#*w?oM%$)S_SXD9EW~h`jFz*>L0C-(BcNggS4FSl
      zF<fVxc3;C0NC$-Ka<$=>%y~-;&w!xbow8}+7DlPD3o^Q)_&aOk(95C_f2VlvF-DPy
      zYl5eFzRTRzToe7dd=p1@{MccxaiRbPMDUP4t>7q6!$CBT;W$ss6AltfV4mPxigyv7
      zMtt-Y-Uy6D3q3d0#Hlt#lEHw*b%Q`QDJworI!J5LBtjZO`Q^x@7{wS@QH0K2;@+M6
      zgz;^D$kYi${mW-QpcVv#fc$$qCQlqpe%>)T)3R@tRKmV!F8>+Xc3rA}`+}`_xyQC>
      ztDY$Gp>0zgg=7y3dEG&XEPiGZ?f3kV-+LgH{|Pn!1?OI&?;A!|l9!se@<ZqxZ|e;F
      ze?w2-66_sY_<oPxR7-Cv^j{Xg+y7Hu+oha1Ncn-3A4$1Q%ALPZin$eyz2SHC<{t%Q
      B2MquK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kVq+3>~IaYg?6~f{ONnjyJr43O1OK5FtUEX!T(_Oxn?5rkPIh@~R);
      zlQG1YXpFr0povJLiTZ?zU*i|3`<xkCF2?wBE_?P~XRoz(`{UQAF943CC?Ujf<c_wW
      z-B%li-gHgxfvPpVnyPD-Rnhdj>WtQC+;iNyVi1rJVc5n?R7<m~>U8Cfp?eZK83z9e
      z)CTBcND2VcQD+U;)GYI%R<R6*&bsT&*FA>BRQrWl&o%Ap2z@p5nlo)Pu$v4q)2=tY
      zweA=~<sxN_nzrd(WJqVX0^H1%7$QYy&X5tt4h3-}8N%6INd{FY*oj>X(T3s81YM;5
      zf|4smDZ5ueHx!2WlxZ7RoAVXJz2;L$OgW@oNh4ZBDF{Zqn%Q7bMN|JRHBpXM+ubCy
      zxvivlGy4@pAv1KDjfp@ZVnrHtb1s2@3?12Wk#o%=C!t3{9t8^OmSdCh8^L{3M>zNq
      z1u^sxc)bPG&6{f7BH0|5KBilS=C;GkB%dZ3<ca&bQTI&8Zb&#y&9;r5v@D~lS>tZC
      zId9lrD^bQ-oR@HJ!<_k3pkM@}<g;biRj(%8o9qG^-ecMeG)Hs&{shSw#u#^)9F=FC
      zrmGuQOg>?$wGP+D@hI;H1H?3p5IP`<o%Ez%NQj#(c9MX0iL&C@M(cLE-JtJb+T-~Z
      zB=Ut7r1E{s*!^A<WN1wwBGMu#lR>u#;x_sy((jjH5BAcH0Jwbw%1`{k5S{l?mj8@O
      zJO9>^|A2vabO?cicZ#4T02MzW0Ax6TgB0OCt}ovGc2n`fUyBEEC@7wyr$SVd%on~x
      zVoQ(<A945_vdb81vy?^7BkaIqftU7cTI`ZIO3XP26~_YPF>wdd#A(RKj`5=pznSEd
      zb$zB=B#$E*pv?=*fI$wiivIBE5(Hc(eEl(F86N)f^7qd?+t7F~X$U+eSD%sSi$vfV
      z$^M+Qd$EqlVDMlRX`H}GdNRcSC}=%J)e*W63#H3J6Pd!Q(CN$~VxKX5BXMB`m%io;
      i%NS^D=1;~ea{Dz>c!ORnt$Q-l(k>HB2E(}U?(!e@+!xLO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~7(KI;ZdsPLR=`WW6j0~|S-f8`BnBlRA!-6?BtC7+SQfY2rkxTr@dx;<
      zPbR(?qYuW2iP}UHee=N|W%y=xX(?30%Ur&h@0|0U`R32x?>_;Y$BYh*VQSspus5wb
      zFE(n9cw*TNv1S!**Dct^$JR366boLpA?AXJju1m!=2))nm8^S(bzT%Y!VG8si_`{)
      zFbpaHr(!Mfnq#}pQ@h}DhH$l3DOUwUVzJGzBx;UVnqlZ)<&W%!E2JidK1a&(*WsIv
      z=ZIN`q4fU5OrF8GvsvU-;Z(f3jzbKiZTJP(<t5v_RVy{h+!L*f457KoDmT!BK@$TQ
      zV(3X{@&*`=m^g|kNvLyiKTsT7bUc2yQ7-V>vR_PMu|hWHZ7Pt83xXlB=F}OcmCS>?
      zPSsCzDXm+vQs8M5DJd{Y0&jPiR%$CAOlS7z_fhs46MZl!n=bFlmPZpN`sI;Mz|wjd
      z%bGA{EF{#s=#(Xo3`}8Kht<(7{#%;Vd>81oUG9~{n(}oaf=k5ccpKCWt0}(^48(Co
      zdLND88a2(%Y0w8LpU_yUG-^dY@5l}smed^$tNI%wB(w(_dZDYC3Zy@v$!gS070?`^
      zTf|2380|u|iz7j+d5UN>8`&lfXLC&qf2N&=V>Cty56IK)2V~m{j?-?~zl|hL(2nw?
      zp@b&UPtsW@`U*uPMy!RNoowP%n<7Erz&edC0hNi;Q#2_*twj?HXb4IbrV-%?Mro8q
      zSV{oUoBe{ZEeiPh!xRRdDL_-LdjmlF(Or|r_a;B@nw%z`KJzS5N&CXt+*f4Ubr~x9
      zf*$4NF5AMbdcw#BwoP^wlG!Wdbr&I;{HsLN>G?y|1wb<Q8%FLM&b`9G55!jz7n`{J
      zOX?hJ>-7D9L!Q3H5Z)2V`(1jIExpOWe@*_rgHvAJp&Z{!`GF`u66GhN+xiEk>|ohh
      J*VT*O*amc@4;TOd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+fEZv6kVq+9T<j-wNRy^1w?y6M!exICWL@#0&P;78l#DsPEV$T!<4jV5Pb8+
      z82kf&z{L2ViAbV}zWLxs8TXkElv_-Em@{YZvoC9{y?_7t_5;8S?kWf|=&Qztv8lJX
      z={0S!r5m28>!#s2Rl|I)m-(hBdScxZ^MOl2gkex7>5k!Ada=67O`#ylF!|3?odVqq
      zale4w&{ufVHXQq<QFS;&Z@#ctEG^HK^Th%K%QN)NH{6ymTv0I`kB1337?ekIr9!^&
      zP@0UPYoSysmZU*^de?ZXWmvqtwN3?<z+#9kbuh1prtMny7^3%W*A@>LhST}u@0kjN
      zy0B^Tbzu_<1!ow>J5}<I!!5&^Yg*nKcg21nLu9^D<0`^PYKY?;LpYtO^bqj#8csp&
      zMv4@$-3=mMO9cp1f&i;XU|i-*Fbt(nLZniaNe!1|gxca_xy_bgV99oQ!CR~HX1Oh9
      zY^gzWtQaIPi5oa0qHebsX8hX!F?JHG-`a227MEDjgw&3kSfw+^QA_4mHN<dQ#Wmbe
      zaQ)B*wWp!sCZ=d24tFh4@5U@qIwBGET4{JqlP}tGSrW&Wb6QRZW7IE<5W1kycNRU6
      zs`bkKfJS!T0lS~<fdlp+#n6cSSOQG{2<65xME>ExN>C24O+Dn!-Olb}B>91Ez=VIw
      zK0tEs%O-a)`W}7Xk$4=tu#2&u*{NMz{7mm5T&8mbQ97Ser)NmPL>e{H$-*q^bO-tT
      zKFA<T7IpLyGXEwqh6rH}Q*=sPI{oEaSN01=KhmY$B<ed~_yx6gKv0n33Z}_(G+F<2
      zB>B||$sxIl)Z(x<PkjAJgWNBuxv!Xc7tp`u)6eZd@6eACao{x#=ncudO>(^T8x2!g
      SDdQgPq}(9F$w&an>ds&GG4-AR
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%TB^j5QhH&<SwWP-V<F((b%{&5Er7ZhzSANmvVwfp(Uj?`c|4~NL=^;K9q4z
      zTQo7IanaK=)BpeGl74)?y#qMLP6{!?$*pm3Jm^zldX97-b;EOSbki7(`i6O@Ut3de
      zGO-<344Pr?;=vRXSK3wz2|`KP^^su>_3saa^c+CgZ$%cEQ|p9eLt4^3CDf|_^k_Xo
      zqG=CA7IEbANFh&%SG8USghCz*ND_)IX^AUu+!s#Q=#K<prDbz}J;RYI4wDJ@MotO!
      z=+aU9;1L@C?cA>ttgYiZ(i+yao*JU8hNuwA0qB>4hZ|3aYJi`uhjv14DBSrr30hT)
      zo@6fNuCpE6b4+n5)pGWtMm$n=vB%qu^Djh*sTK1r&i543d}cVh<a~_Z+1iYsgI6p*
      za}-07&w}qfLjvcly}%OZDuEiySmB6$K9ziCDP*=;qiW`Ahcm4H32n2j!{)9J-3{d5
      s&|C;*1lF+5IKl=tL%hy!V*Enw1&dF73A#=CNz(`B13?HRZ279~FD}EzHvj+t
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMZBr9h7(F)$YzQmC6r@0HQ{*i#5~xbm*jB}8X?byKCmr~<BzMBv&2GB8QJA*l
      z7k`BM2l|B%I#Xe)GgZI(L;5q?p1Zpc+M%7n$z)&dKIeJPbDneW+dp6Y4qy(e8e#(H
      z?i%-ut&%5eZP)a-OGew@EPXHC4e2^w>4vmq!|+YVzAfFR>3Mt_pVN>K7*oIwuJe7t
      zu`F3r7=hl_0n8J~ECrahZ(5})Lmam((Cu%U-uNt;1YeIuMZvF_w&{N^FhBhc_*_*W
      zvEbBY4+Ku=(2z_aj<k**^b5qNb5#u)f&PCJPvIoe3N)yr3*7?gCDWEG?Iv~m*4VJ5
      z>ei_lR@HD#^&TxIRJQ^bj?Z;`j@`zMdR^dj*y>T@mvhw=S)JDLAwCjFncg?jsIS`A
      zcF@hbhK~hCgKjLtZj|msbFXaGWJ}E~i8BI8mmr6r6tb95Vob8rsA`DwUDIx`nuckC
      zIhF8Olhcsjw@{F8k)CN7)-|`$Zc5ufM5oBOnqg-Zoh;kW9_2|dg&Zc-P)a&RKsWt^
      z?drx|+O3>h=d_h01x7+E9@xHPU#hH`&6Z_K&gp-ZURO%b>-ZEGDH(T)VouQTbS}&u
      z7`<Y%BRAMX<z8II6%8yg*fG?h03Dx!R_?XsmR||;2@LF~3xtYVNnr|Cb)3U_mGioe
      z1vT#Urr|9+u8gqcB51^+|6n5!tGAS9^EApGr|s6{O;b5{_$Y~I6k`E>(YB?#U>TmL
      z1WH%zn&o)(!m{)?ow|-?tgxgl?{_3Ud?HNlcXNdFowzb)scoF+RE$4vFrdF*?M|*F
      z`0s(zzL!t87!~7vFkg5MJ->&({7al%+rxX$G4PBZVmQTXUyw{NRfAv?LtN9Df<U~F
      zVczKpj7CZQC}}ajiw_>-#7kt?GGlufe^q#csV8b7x0WgF;q0sYuNWxoV&=O}tr0~R
      zP13a~uEYE-jNu0q;0AS11%!)HU7*Or_!Cy<5s32<gGY=}jn0MzyW%^fa$)%w3>AOF
      zC4twNS~<(QUpz)vVux$j1fKl$M|_8vu;WSg3EU%#`+VA>0^4NsBYXS_XYey7_&$RN
      z0i%3a>wwX0#Hf$FZ=k}AqZIrm<&Tpe{T{IlSp!L>!Y*z-J*eKz2;ku%os&`aIKB*`
      U7V#DDYK$rp$lz;U6ZG}c-*{1>hX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~pIg5Iwh)6iSd<M1+FY%14_b6;V*i$6y7g4#T%7>H{HM+CZAtBt`f&Fh293
      zFVvA4efLK>?oBh4!TLZulkDd1o;`bZ@9#f9egYW5OaMNHkv;W5JxtkLD_gpAlv2x1
      zKDE!SZEh9q)Jtygoa*RBbD3KO-L}aJz|YVt(rQ^RR9n|-Aq>)_ZtBi7Lq~kU4K-9V
      zms)cy-OQyE8w~zTafb)dfMywukb+=nks(8(x0dJH{@Ri0sD}(~3%bb{%LO8|u5KHg
      zA-qu3RAWQ6bm4m+{Z3xD8Ajb|*Xk!tWK6Z-0{=smVX#gE^;#0WbckNs83L*%G_!-a
      zgYE#j7(!Q(Wkk?Jk-E9V50`cs8sph)A}ccP%D9IpX=rdW=j0h0;?;wgj0fnW11+yw
      zvkvi&XA_wK1{h*B{H!5nX3Sc-a)F!9+@Z!xf=v_RG&kKmPz`-2YP<4AcZ*iEL_^W^
      zl4=m&el!ymmlOlbQf(q3XckI_&Pm{2PmYU)sZBkdcrV8INT%g_Of31QGGSg>fu-#|
      zt~nG+>`Sy$4Bb^V>j5%!n*4LELZ(Q)xzaKW#1sEbti`1Rct%?x)VbDD^o;~DjtMbO
      z+K;hn)7L_9w>-F3EL$3%*Tvp;)w@l@f*OOIHBD}14Ar)|P5P1WbV)(wX&jK~86a;S
      zKKcVeC0RjJ@;idx$n&9<o;Tc#DT<y(GiJyKZdaqxh7fs_hnol!mcVTHFjpu~)M`<Z
      zLlxYr2f9cEmMD4I1&vn2FF;#7P=cU>VJaCE_t=9!_25^PP|SaZ&PnAAy;DlV8SaN-
      zCm2<F{5zgK81Wq=7Lm4kz96DR{9EFC^aO26q|vow$7nrA|7Liwg2b;{>oGJ@1MBpB
      zLsD$eC3%Y!-XV=myut^p;NvCct1e$q^lK<c63<r5VTddr*$*-7F`pn`h%G6}Go((*
      zstPSS1GX*+EL~_JVH8j3oZ%_PJe*NdKx8zZV|-Jo;Q7}pP&pS$t_FEfK1{k%Q#4I6
      KH%8kie&N3>p+#Q+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7_-E-7b7{;H|Zkz5ld~|_UVJQVEZkLY*1VM@j{eq>XAf?5&h^E=&HZ<L=*(|W$
      zsF!-FmwsG&W1T?<+8LR#-Z|rq|BHWs<8zWU8`?6}>2!0Fob!91_kEvp^5;Ll{s!O_
      z9%*P2$UZP08jtf;Y1UlJtLKfHH=kdS?woX;YJM~vjLN!(guqTUJ8v81QvT-L18I61
      zS_O9dPc0`uAzjO`txt?OTWV+%=nUwlTd#QPwdqRFXQc!VY!-P)Rz26LD*&TaecqIG
      ztCmxqEDQ;V>jK*bopRMP%HEV=*JR7;U&DtMp8TB`NLE~{Y+4n=7C1S!8Gb`zx7Jql
      z3#1+ffyQf#3{((kUXXQxBU_Q`g~f`^^{p4JvgKV8IG5dONl@NK@Y#Vvp>IkcG3XR!
      z3eDK7qZ9imA=@{Vgus3sJJF#=2Xv&dOT$5d!&{{23rnE~uPNGLD$Fua06d~&H}(kZ
      z7_-Wf8MEJaf~u#-9MiC;47QS82p=ZAd8;ar`)`S{#jHou>;N<J>J_$93u`NI_5T-V
      z(2p9}Zo*^7O8u%>so}?_ta!9WRl_NP-cq@iH*KR@tr#@%xZ|nD$VFN9WHFkn>hXrE
      z#~FdH?CeX}trcP(6;%?0Ov12BjzD^&4gtL+y(@gp-7`<$?9TRWoRwnVF6ww&b#%Kq
      zFU^I}=dzfjoOg6w#(DZzg$X%HVn-Zz(eT<p1<kjw+znzyrV%(D#@cfGMr+uW6v6Dz
      z9ltHKS3xN#=s1R5+;MyvZnwY_!TjN}Nnf%WiEQ8OfLbuF>~l1QTX<K)Q60B2A<$yl
      zPMOVqu?E3G!N^)M*xVY}yxeBq4XZL@Saz&qZFo<h!?0ax6ze@9L>5z+#Efd>tiYbY
      zR2wYPZdId7`<rP-!w2Ef6HG4Hwk#R;glBj%@<<yD)`Gjg$EwBy-p7nUo96^3)WBT3
      zR37oT12xMoN;icf_Nt$G9TpyN?-`YfEVG8k<66VwZ1hZs>2CuMGjTzY%8EoAz5rO;
      z4;xIk22d+MRx4eBOt$dyNNS>|!^8zPeZr}^rW|1(ScuqH;DkyS2kGZ#{<T0u5((@@
      zJ9IwV#t%yqw)3Bdl|SZD<zIQ$@T%r?qKm(;@a|KtZ{c-+ZUwLAjy^*sw<qxo-MQ!J
      znLf6E1&5xY_h*0k>-_EXCtqW@Q3f5u4%|Qn<H+*enE-@7<akG<FF^Ps`jmpyGg_RY
      z)#x}!317?!zRUBOx;yF1^2kc?Nv0vIIZ}0e1*bPrHN_P(R5i=w?_nR__f_QrPNXUm
      zsmkCi-t<*va1Q6GssnG~LRc7eRoZnb=+8Yx?^9fQ!uuwuI;8w{MY5$IMHN+*HpsmL
      zS0c{YkfSM1dSE?bkq9S-&?3YThPhPr=v;_MhEg)?A&&@o9D^hy$Ox{6kWKQrwzMvv
      z&&c^a#%bhpJ>skv)4d+@1tDL?APq62G)$1u<uIdkqqsMgar1ZFTA$iiq<tNurNh(&
      z?y$uT+f4eEy1^!@Ms%r${ef-IF*%*SyMpP}oOr=8X<~tIxOKi|*T18$zmEm!ih|su
      zivr1OeQXcVEs3S(M&_-4)E{Dq_7KseJ~$y_C{&k@)ZL#>f4G9V)y4+f?r)ACDQt<t
      zeu@zrne%iAiPu;Gm2dZR6sK445y6>dl+p{!Smd~S8I@&J8#N7d{t}~hN2%6)Gd%nk
      D1SUx`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZEsU$7`~piTf0)mth@|YW(9$*Wh<b($Y3xAld{o`Z48F!IBU<^!%k1j>FL-&
      zj3R0@Dn?BV;D<>}NDLp)$VMO$O%xLozxadH>p7?Ex|a`pX!|_(bH85qb>IE#-$%ay
      z*nxMva0#?tP$rbgSV2t|P0gB$DMc$28&}Oy)yx%Q-K9gHsToNvujpQQ1nQ(sOjnF_
      ztatQ+nzX#A7FcadwOnjKH8n-oE-RzD>V;2Wo&8b{QFca8-TjA05`!as{qaO+ysx82
      zK*R-BcIJ$Nr5M(bq8C*+(-i`>CEbDkp^;+)gHq}iSXCj7Cmb=$suZ6oX)|+wN&8g%
      zh_tVo_j)SPo#;KCkWvVE3?-`y1bgNy9k7T&x{YtvRGx2DrmE;!f$II5p;_$$Ynqm7
      zHxE(2GnZ2Rboycd4G0UYT}Cl3HCOd$hMFj5iT$7iPbQE{D*BK@KzT0-Jyu352yC~*
      zJ$vhzy8q~8Qq5Z$(e+}hz~;13j3srYP{=E6dm?AWvw2<3s)nVe%DR5I(JXV12)LV?
      zhrHM(uyG!lxUQ>dMei`vMQK^K^P+XG_cm7?1P>QAJ*ApHY$y0dW8BDHGQtwlePKUZ
      zuu}#K$<wO=?80sWtmN~mkrD_s#haHvTyobYE%pZR8ukhJteg{zq-<JhLft5K*03W7
      z0$7K7c{&)tdiZ6RIs!N>o%r*LSy20BlcmCu0A4`7A6+=+#p?@Zz=;(=9LJfht{Q18
      zV<Q!p>OBFRK!Oj+jAC|J<O9p-^r4T8$twC-&djQ*aDHyU92ELx?E?ZW%TQ%$LGu`N
      z;Zy)aI4w|9D2^6v%1UM~16-RA!vgiPjjeN|**b2H?rOD(?Z+E<(~ENgjSERKFjcVB
      zY@eCStEQ!?g#g~dh`@@pYL$dj0$ZLbZ>FHIttoX(De6|(jvG!Y##Spls)omMMcH+s
      z5lezf1TPkI<RwLC`APEA$tPM1co{umkF1X;yJ=2JQaEVOt1qJzGR`P=!3aRNyQN+%
      zDmsU0!SFgut*!a2?4KDx4tdUd&dR9f!kti36mX5_rS7EwCc*N(6LN3$GO-0f%=ukH
      zVghl6<w({I<cele?b77*uU)c!?QPB7&AQ=26}+e+Z)+flyMmj`1<B);757@+S5@5W
      zcz>?q9_0P`iu-Eb*Hqls(kExc_RR^ge>n*Jl~ch{<@W~O4%!(3-bmCli^d;q#h3W)
      zrvo63YGkmHC+U!C*o2q)D^JortC!1>Z<{Ie@V3Qv`#Fo0J9%$p7EPhs@P&Neqv0{4
      z!;jH29E{CkM`#AG%wW$f+MYzB53oNHdVux_^$$Hj=X@TGj0BkUJwbpjG0r3+m_iJf
      zu?JV|+`>+*a&CJ|xiLOrk(IdQa&Sr(ZOpBTK5s;R#{L-`J>YJ4@4t)KhMVxY+wWqN
      zlsC+vd$(ter|#S|d>%?y@_c9-)pxPtx)2Sa@BaH|!!7t5LY~w#8q1aSvNFf-$x?9*
      zp*yIxU3$*XVDNtM%tM^r=UMN0it6>A`_eLaUZTL1T#(QYv6H~N@Zmise~mo2&R%~=
      z=|_b8W0w30n(-;O;b&;Y4X&IoSm-qz!k6gAR~W<B7{@mR>=v%#HebHQ2e@NH)y{^p
      z^b%A7ypK`F;O?dGqz#pyx+$oHbR(NSMhbZ7B}f|7+YQ#{fMg3~`}ub)tGmyGlYX@=
      z{J{<va1=`61THLV+_~8Jr)7=Dah&cXYbztS-&+*<(Xz(e8ztkN{FQ0@oIYh2+drwW
      z_mwl}GAY>?S*PT7H2NFFEmXPhMSq1jA-!$08Fld{>UeACt$i9*o_p^35J6%H{7zE;
      z!AX3ITKs8;b0{1wQ#gtOEC#G)y+w|ki)a2xmQpyz1Y`;1UCXcx{16i)Uhwh^PRhv6
      UXe~zd?~1}2%Z0s7KQ3JTA9Z#kw*UYD
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{OHUI~6#njX`eX#GKz+1`h}aI50UsMtR7x=wd?eMzq^s$0QwFA;W;#{t-*D&3
      z9a~LA6Bovvi9gDC&U8{LF>y2Z-gD1)zQ>(kzrTG4u!<XTC;|)n<}34!(Un%uv;Dqd
      z_WV8LKza@7xm{yh_A9N96Nf4=$(@E{wwuP&#=f-tIAQ`*LDhDRs`PBrvEP~vN5+v5
      zm>EpAyne^$Ys-^9%@atPPSYi_y_P_F=Xh$>_w06aO+fYg9Vs9x0+9noDD@42*d4oV
      z`|GsH*EcGK8ugXjU711zXEaP;in{ZKS`tL9A&FE1XQ{MVt|o9^Ai7m~`MAutSq)>*
      zQkccXIL0;1;Syb2j@u^EseEBX(!l5%qb_SWg>iw29lI@`^jZ|qbN0#}T+4K7Ci$mx
      zSXBKzyDP954EtZc<T;bCmqv)gEZAkNV|Kf*cR7U;dFJp0w5IeQ9LM;#>S2&6>MFM_
      zN{QfVzQ8diskY^MEz=iBRo$Lv$t|00XyIco^NV1GEJvUqia4zVLyG<y!N~<HWkG9{
      zDifHb?`b-{qy7l3xAd<_XWwH?7e|;rL?)|#fTpK2!6~Vy&(TKD9^rz%^aZ&em_5S$
      zCju&1pzk7)0k@&zE)rO$@%J!|`}AHLbYDUNo4AQGu29$9fRHd(=|t50NF;}MEL8~v
      z=0kx8p}-sq)QdlnNM{bA7FkY&<&fSHAv5F;ct}DjNaGPQ*hUsRBgDBOagJo^0dWpX
      zlob;faV;b^Xk}4R{WGRN(q`Z^78IWa1GPazI8b024B}Wv!Sg4<Fa8N$88R1X2s10<
      QB(gq&RED&xfw=2`06QYMaR2}S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+inwA6kW%5GLAFE!Of*4rMMwCUx*#9Z4E6D3=QN`mC9A}HnESAp_7?tW=w;G
      zc<A+^7Zt<<;RpJXhgO0_EmDD3K7`L`yUxrcPFq@mEYIbfz4l&v?KS7wAHV$$U=s5h
      zVgluB#&u)8<jH!|HT@eUqv@}dK9%m0bRDmBRl3*By8KYOtET6fjy*i7At5lNP%Thv
      zf6B2eS@#(!(7Cn?^8_+80jBAjR;k7i$E^so`zxk5TqccR_vLvg>}k_B{r3cpjlU{5
      zR})A~ISttXfqgnOBvXhZt)m0o0`c)&O+!YY`=69k*pIXV_3CItyFhxzwB=lLm2!P-
      zELl?Z>C_FYX1Jz$j}{ZEPl2PaNOX9Tea4MOL*QW8<cl<~<Z3BWI;i7K91=*G-bd1C
      z%-hzDpp``pZwU+rtyqS=%%O&}uCCYRni^FShXs-@K@LGFWHF+Y7-gGL)ez^qroGH+
      z8pZ`CRKk}Zn1=k0ZGvRe^vSYeopYC)tJ3!Oa49mbZrEAHCClEk7o-YRL|Z=dQpjOM
      zjiaPv0CdpbsLn54qs1z@Mb25dP+%am->%PFsVK2#uC7_8<b?iL=0zp*Ngb!~HuWMa
      z#hjo6<GC<<VD75Tj@*E6r4#Ssv<8;wZCPngfQ~bugF9`x?pMQn0zEtF0->T-QW(Qo
      z9mjB7<vg!rO3gaGVtBKTD<dqq2wJfJKiCMwyfvlSNxI~!({$_dqNzOF_pk3fn67|6
      zZQIhFvJB5t>ZGf7-Eus-U{?AoPD95m=2*{`pSASddjyQ`wDJPoTX7YXDQujlQj9--
      zS3q~S`Y5@Q;J*V(_)b1uVpNRx-hAO9^!zru@{h28VH>YKM9(kWh@p?yt{|CUs+$Dg
      zLO<7ZrXUcn;{fk81O}s|ew4JB-@+Rk*!Kw8h0M@4h94K6V(h+J$Sq_F+c@$#{{TIO
      zElhmUsx_eK;&amdg35l${9j=RU!#C;g1UVH;bK%5DDvn%%E~;qa6Dpgk1?vza#*k}
      zzDX)4W`9C|@mIVf@C0LXM_Bj$4YVaTxpq$A{-4j|o5X}2kFrnTTeA3$Pv294AIRoM
      z_IMkIaR(!OpTOOKQ9i7-%cvYN>LTw8s50Xq1;0r7<K#!PM=V3uKvJo&g-bv0R&Qqn
      fu(3zyWRyLQ4}z#^T;^SkQAGk7T;VlAQ_uVbxcr;^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7>r)d~96dMWMOc&ud_ke8RLKJoZPkj!V#GErAV>-Zt#t{Pu()jE?gnY6<MiLq
      zFVg9Q>68z2+QLkk>EmnrKeat~vyxc&z+|#}pXZ$4`Tg$QzyA64Hvj`zh#(+vZb@I!
      zSNk1VsMv=4S-)O!7yBPcdrsOVr+-S?D@H+1NPF3E9HV4K5EMAB_SCl2W(A_z@oX+T
      zoEs4kS%KzE$#PuXa;J5(A{)pn1j56a%*aGe^(Y{;VCqGOqt^_}aEAoW_Kte^rfwDc
      zr(D~xii3Mc64L^~Ole-m(0~>V8eS7Pvd`AUbPNKm8rswft*qOQ94@$wg`|f^4NHz!
      zmKkkMpEIREe6&>1&1u~>RNo&Ax{C%^pZ8=O+^j)LwDe^Ubx%l)SodTIM2zLKX-G13
      z`T^{wqvq{kVz!ZiyrH29VHMIz4X1FLyNl8t_gLC`6MKz{;Z2;4;EX`a|21gnMS?oy
      z<BD#Q{T2Ie&n?M<OI8L^X8r}*tKj=-69_nEfrirDlCrQy<fE`K7IkM)<%_F&6IrF|
      zf`)#a7l<(cKO<4R&7`P8FmzX@^+G|G-6$?||I5KB-tnxf&d_37am<oWYEETJrb+3{
      zu)vv@mh7Xtwr((j>rAhbeemq|48$;mVO4rJ1TI!Hcku0liRlP#3Y_rFs<?*f7kjSs
      zNLt3{(vIR5Pf<FC3_egS&8qdGhL2R%8!fr&dP^f16F60~Jj>{dx;bnYE6dVyM^=?n
      z-qF2Hr)uk}N9#t#Fy|H5q(EE6vSp!ERP6KJuF`R}JBD$zs7Fr2$Ka_8>*cbv<^}rp
      zJ8gBje}!OBLEP1lSK^~?sX7_Mr~=R6zJ^cmfENbKWUORMFEW-SYlQ_Esh$+orz(Mt
      zD$9PRu^>X8a@N&UsbUx8Ekm8_qkFD0@8;u;khLsnXH4C3q{C~G9K4ts(2fwo>_yZy
      zg(&-tb^RE}cn&!i;Tq<K&qM4@a$N0iN~X4PIGNr?{6`Pq2%m?%sYwFgK@3wk%CYY1
      zavZ~P_P7xzNX4pVtAnio+pnY3hkxqBr&E7IJV&TuBlQQwSn_9drTKrV9xv2zatqyQ
      z{<qMxL9752f4e7mhLZ0xm^}5&q6_z^;eMT#^sbgPl1O>XT}V@((!v|V*HZDdr1sac
      zhSoX}&kzc3G}NTT5u_lUQsyY7Kq>Qe5>mSoQs~1ukFaxB0xu0;!evhq(5#rYFra*R
      zSR+yC0}KyX^V-cmFwZMa`ydNGNRQebUPCzk)~0F(Rr8Y945{Xo&G^+#;#Ixu@(SZI
      z3&Uon9JInEPlbN2;3S^ZarW$TUc<XS=S5~+X=~iUP(Hbh_iDgZ(O=X7H2MGm^$GI<
      z{$>#=2S43GCZCFrY~%g0b&N9Q+41<5KBoN{T9SE&5&H5Mbgg3`eyM&mSRL)y!DxO5
      z<N5f+Htul2)D~v8G5b4#?mhqar&{eMS+T$xWBrQB`kL{6!@B&I)$koIU>(=-J!Uxf
      u06%!rlT~@XbPDB9)pZkcc*w*Dh;Wn1Z>JLh7J%|~9+GeMZ5!eni2nzc>*<sL
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g$w~u35QhKCP8Q=9m)yL?C=Q}{Q6l03%HSoMdpkBs%cMtUdL+Jsui`;L0v>z-
      z@hN-;&tml?2nIZKRaf)X|5x?<_v;&gP1N&95t=vRP7It#dU2@Cy(41NbNryIv~%Ej
      zL9EU3z>~K|1v-xmq47WO+OA)kFdfNI3BM!5h`TROj|g-|s2m15GD4e<@MD?%e0(T;
      zeLTMqa(hZE(;}oBs~tk-Fu0aQq%l=S5hX&^Ra&0M{VN$>h$~+bX5GMJ1Hm?2j~_Fp
      zry|0-`~Reqo9z;6jf8i6p}S7ogi3dJS3B0eX6@$)`M!)I(M@cv^dFQ^YzJ}Z$rEJ<
      zt4%s=*bc0Km*dYT)R9GwbDpad3Vc`rC5~l&+2Tx`v&|tYPYF`xSY!;?Mg}{W=399L
      tVFt5YS%Eo@R-nbCWpmB7A?7C)T5P_bC@hSqu>$j0z#?l9mbg2G<sW~lewP3M
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%}T>S6ot>NX(O@qzx9W@aHkav#f_*`q$(=KO*Q*z9MX|EDal0YGr4kAaNz^^
      z1ipoDAl{_iC<rccZ|?A&bM7SXU$1Wfnpn3{AT;mAqZqo0^wU_GCs(AV?}kyJw0q+F
      zQL4?^aG+v&cQ*9pz^F*uun3KR$R<2tK9R8!p(o>n^|zO&1iB(r+L2C-(8d#CDvQq_
      z8}-M}(FLJ&q_i?E!qnEbN3hz_opdmT*)kl=5av2c%j@)^C*vE@3ngK(6Zsq<IELrR
      zp=J6iA?$VjvFpz(9ulfsxy%iP4&1JZl@1QKy=;qWw#5>`evnBbf;>G-_<<6fZj{Ep
      zJXhI%^*_GlZYIPg_^SL*2<s@K#NFnpfN6f%2s2#Ee6q)#xEC8ER9<pqj;q5Mun!9d
      znCG|h7{US;dCClyxMl_|CNs9w*coB@w?m7=k8_9Gn3^~+j~Z6kgRsi#0@l6(#R7)Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-=$a6#gCzj6qNYLB*9j#l-P1ZZH^wnrMg{boO;@pgMHSOvm8Hqj(41kht&w
      z-o#57-vBYun7HVBea-jR_Wkqq4Zs#^Hd2Jm8*wiNP9(iJROZ1EvFSN}&{f(w^t>R}
      zrX6^<^7?q-$vdM0ZNnne|7CsS3B^c;O8Bk}Bj#V89ueq_P-q1@GC~_y__54{A1}&!
      zbe{;>eWjIY64I+{F2QOA*D{ARX7b2knlRf|TAs)KD;ZvhD_;^yoRJL#+weR&v`kM$
      zgzfgfS%2NIL8z>bSdK4r*Xfv0>271qO+r+X5M_ehmr*3TBlE=I2b7TO1aaue6P3hU
      z{`)025*}8-7v&Ej)Q~}zyUkMyQ@mIQ(_Hg>vcsLYXX--~o=1>bt~rJQyRfi_BJc8J
      u5av+gDG?}hO$3^ZOt9Jd`VjNK6`E{*FjA<FQ4<BmqlyLAAS^OFg{3ctT7?$?
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix%}T>S6ot>NZ6j&b+S>X9F5GDagIe5FDpD;d#f_T%G!Ahjok%hfeG>68TnR3G
      z0NwjGiZ^W$RHTdCn>&2xoIA<u=kp7IO)Oc+5Vo$wjktAU=_QdecaBKRr4xj{($2o;
      zg^4yNq3LkHIK1`bwNatAkR{Z|>b`kGDVC8Efh(h!_2)+i1Ue>6wL={np^YnoMCRt+
      z8Xvv;hj&7LS7~Khgo)KPmym6T7t+QAri-vqAk1`?mM2NSC!;gb3nZc34LuGJ9K-YI
      zFl#PVOlWk+?)vABO+s~bpmPGDedp9fO8d<<H(jHeu2CUaeHq8XAH=5-KTv{w8YYn^
      zJ1Sjp`M<BZkt(qQzAXP1!V+@GbGLZPV3HqpLV;_MPqw)e_gwu6Q;!2=hO5mO&_EVD
      yDDhiy2w@gwo>GGf*VLfJWXk62>ra^b?a<=zy@5k*NR1qrM-B7rL0DjQ28&;=8i+ao
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_a%Wl&^6g`utlbSX)A<zPaLJLVMVIh{Sh^pWSOCf<Kt<<HH8h0w!uIzC|h1l_i
      z?_eEZQ3)hIfR94lnM8p_H%KgI?wLDx&OLKxe*XIQ1HfI>^GGqY4xD4>nHjsoB;w-4
      zbP};|`k}`IbMxq^83s?emqd=>VPFL!I$3GUy+`3*;=8mfqR?;oj+aM<p(MFX-w8ak
      zJ2-HMf<fy(?%UnYW}D$*`~S3BC)O?N$+o>^Jzyv(*t7c<L$SBrYS~TO>h!5*W9ajM
      zi~9`eYHf!h(+v0AA{b_M%wdKhx1sh6l$zI(MNXpgI`U(5L5DU*7j+bnW0-66!0jZ5
      z12^hB1K(vZ+TqagcbtgJwMrI|#w>Lc`#dHUBJ7EX2OdMYT2l^;4H{?HHRLsD8VVY+
      z8g7!-Mx!Bb5+>2mZE@LT@yv&~Bi&@s?I3WYrtieD8|P7FF#pkJhRWG*ie>U6O@AeW
      z1!)hV1!<0oWQ~es48=5ARm2R{>$KWMie{kp9c=d$=f0veMaC4Br>OFoic`2mbA=iK
      zF_8(BkzfhOsN#?s%L+N@=_YONQDl_M)=#nchoYzopOfkr>X<$*!eynD;R>!!2okE4
      z1Z(v#Fg_t?ER6`2CAub2MWX8xl_Xjo88=2sgH(Ep{si!n40%OrUt=C`Nby^0^Nv)%
      e$0|OM@{fN>Ser;lVMVd55(nt4yv1$QQ1}f$sl-zN
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgt-BTM?6#w1uu}Ro|5Gb{+)`(akd<3wqwouxTCK3#!5THe^x+IrnJIme7vfC+-
      z{u{pgu8crOX7o*G{C|9PJooNGLI@AcI3_cD?>&3&Ilptx@0|VXpI?6iFoCLu2t)dn
      z@!EKk-r*JBwY=T5;d@(Y+c7PX&eUpIM{HWA?;4)vh@9};T@CFFSLLO&Z3r`6+IYn)
      z9>W!NXThoZHeWQhIYXjY*D8CiCCn*?u8Koe96N6tCc~Ukxq$b9qC^&WA#BH%$gt+r
      zB*q;=68QB!%T6yCHG0=MZ3)YpVXz0!V*0NjG<h9bV~CY4Qy8A_QZ~N--&{|hjWIPd
      zCGoUpohpx`4c$7rkYH#V99oN`7kwJ8ovLb3FCEwM4yDiL!t}P3dO^cYhW>hG3%1Qo
      z!_K&-zs-f0dsE@65K+9#FtDxokQ79SWW^A|@sb-nDSX>b3dc?I?V7h6#|_+;fZk`g
      z)*?$oYcYI)4>j~N<S)q9bNHfT08xf$>Dfx5w3sPM2X}OQtc1(CrPac6?x_?G=}1Xo
      zObN?{m7J80=oppKczHFSFJue3#g!=13_X^3ZP->d*+B9rCK&ocayI2428K^`bf8o2
      z?&;7F)$l1px5}?#@SL%;MJ$fvJ|4&<J*378lXSvxS;T3~Xm~^!tY6JKRGW(G3LTH}
      zgj&NFR1s^_GB#{ZRvD6KY&G#%BAe9_LtJ*2CHSJhy}{iTX+ie5Q!(r{!&MeTVY|0w
      zQ6ElRw6myF`%c^2t?|(2z-d^mInHp|<X*#EV3;2qx+siuI78?XWW8Yk1!Jx^^bm~0
      zlR+0J-O}+$>OR&vDH+3^X4!c$MLj35s$rSodcE}m>8x+rRqo0*UeU1%>T``)==0L1
      zbQ0vPVN_2A2{{EfjwRfVVx57-<o+uiU*jcpzEP`jQDqoyv=hd7)=mgzN}Bjq$1@aV
      zk2t<t;dx8a<z~xI%9sp^K`#iw-K=fw>~NwFQK8kSr}m>kL?5s=BxL8%E+P9yt;AAV
      zJ4mAoIwH74rwA_N3ax*mo&JECI>goCKM)^2K+g}jbc7r0iCc$w@Ao|<M}9>A9zLSw
      z)*c3F>D|LHErHgU)EfOWJdMj!YIq-$sgZr$O&#I>`sg7(dyA=kWPT=BZOGE|Aprm$
      zkn=|bWQL~Q6C{zLX)}v4(zu7G)SY?SeU1ebu#9;;#~0W{k=}p?kb;dI>Byg{!e(kG
      z1COYk484skfC3NR#V|(_Mi%GkDN~T9Rle&;{ertc(I%n*b}C_6ISVd#gw7bjD7Lsf
      z*?jp$%gYN`JSjry41!Fvk(Vuv5Q{<tn<^Y&{0K|y6vE_Nln?Pd@!|kq%82MlyW?Xf
      qI3D1ex}StfB}We>x1SO@0^Z<rJd8Sm?^JFKY|t7f?~-#B#Qp`>(_w7@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IvK)aqAjF(^77w<x;gtkzy(ygOE@J5>kLlL4DuYi?fxxTdmho`&aM;
      z;(-s~qYz`)Lhf50c4yA)T+hy*zrTJ1IL31yEyCbTEW~A$%eb)0T}7gB^C&Z^($U!H
      zuPQC9aLVZYV;>&jPU#+HLZ{K^*_n);j}BqCvi{F;V%0)rGL^~OxQr!qUMsEK8$!E3
      zI3;*vlgI#VtcUQiO6X3MmY<6AnY3TTER%%Z#Ka;y6;_qFHhONZa>9$r(oK)Jq%F9E
      zt^S~jYW6-_#U^2=nsyjBryX8cvrvh&0q)|Sk8Q&C%^9aPVIl700bxCr?!=l4Y26j!
      zpx>x9byn$g)GS|{2*K18HkR+1Egty>;lr{XA^f1VwBt<Vx#ZEi?{u7*oD+VOZf+7E
      zdxXO!=?L)@&j@SW>vbunvZiH;4H)4im`y$_ygw~I{B?}hSbN2iSgsuXK=8eK4*3o$
      zw*($P-eMeHJK;9EjCh-{!FQRUOkF1E^m;$B^^LU_do!-A^G0;1j&9>&<@E?VEQ2~8
      M=;1MA54(8s4_H{a+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6`%l|e6#g!x7>w6ufl?@I*LHo7K%3IXUMX!;USkc9iHWJ2G|8AtaGPACYo{&$
      z$o_@>+HF!nLz?>2Chd=^_FdabaLFcO#rE|%=R4<o=kd?`KmG(Tjqfb<2;6w?zI0!g
      zL+Q1&AMKUhR<u)Y1a)7PX9KnE*IU|+{6JaA3FM7(x#6mMd3E!-^df;iFV+$$)=r32
      zq0s|h`O!mx-ihLdKyEhJk~VrV=)gk1z?qt_<Vvf#DfRd6W<v@TYJulAHeBtSbNVqC
      z?f4<1s>>)7tH9*M$-}Wxz_5j(OnU2kVI-Rl&SHel>0mu2XxUY6U21^~sf&b;55yG<
      zqXJjDF;XSLYf?A;FeI)0I4^LP_%%a$CJP(q@QESh0yQRLc2i%G_Eo)7+_3Q}E?c-H
      zFxDx|2a!0qg3rjPw<En59ls|21hQTEjxdH6xaQzG@&W^Geg%5Mroi~oV6wchxcTr{
      zIi?a{CulRe?#C1pCdhG01|V?D!720!j54a~?rw&%c@^nBfrV~t{rErq*%gPWSXypt
      z8SYrP%LeaO%`TI2b=t-q4BGe{Ut0J=;9^{yHqTYhlVQlXBONpvQaktxUkf-}!J778
      z`VCo^TLSlvm8UJNdS)OiNrxYuMt0qUY!}C!V&fqmTX@7S=(Ndf!wo|RRXkyu+kswj
      zn;f%i-IzO4?bxbf0OuUcV?kh0$yZA%j9lf>emFA}$&O%D->__T)hhotgNv$_siciX
      z3|e?9Fw}{8{<SA}P3~M79@map3mxftG8O{%deG9ITp*Ry$iUt*>g0M!DXHURWSG0m
      zuIlAVq@`&szV#tz77@P;@N}0?!RM*cKI~ul(gTNgn@^xZ)fs%mHz!fT=@_DjGsvd^
      ztJE<7V+Z*7Y3VQIONTi3tT48Z@wd2mfU9pPOh5}%1?G64r~d`+pT#zKj;9-#puEVd
      zl!E_6T@%Q8g4ZSqJ{f~gCg7#takCTh2=fDKv{)wk3h`DkhPBwkNP?0wki$sqOK|I#
      zaT{j)Ptykcb19_0f2NH|Z0<MQ{2Mcexbtiu_YQFX9V#Z#q0#|n-eUG01mpMx<A+$J
      z#!`GZ{X^$O`!_@y=HT4Nw<#CbWA<Irxy1-QN}CvkA_KeB(wwgdkMXL_&oHK#+cM+n
      RVQ%KW%G^w$1aZx;@Gk@($@BmK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$PfG$p6#qS4HCE03Y2~e(8nr~x#jt}F6w;;gKCOdJth2E@8+GVQ^i4ViL0!7_
      zp`tgd1ce>uy?Mj$-(x<%Uf%)ipk6?RuyrHu#Jv|wKZ%ri@I+!pUJwqI_PUWANNtn|
      zj_-YWYgDKUa0re6DLqU4K@%2Y88N>vqnO!Or$+=jBb2+Lj*ZZ!FM>qo-abywpB7t>
      zg#3Zh%5(_XMzc?Fy5T^&$YQ<(7ezv)r?fmz#@8~s6xV?yEcHU44FucpJbiS`NW}!N
      z_kYqE%e4vBMoRGlp@-guiIg6;n|+(0Y7;CI3S$|^VwgHx^<Pkedl4p)FHe-swl>3L
      z+mf&WUXg!+P)81V?ggGQnB&7DC~__F%Px1~o@>3J{G386TwR6%dvLIi1-_LgAS_~u
      qCo8bb)e3YNX|eg%<_lK-Ds<TVFjc5cP*VlQqlQ)1;3b%y!TL9!=YT!{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(K}!Nr6ot>VQDf3HODi|gPK_GEh^VlI85GjSn*CEB`eJ$$GjGEFQP3h<M9`ui
      z(6;{*-7z-?fs46!?&F;Ao;UOP{r&-97v(e(guNSaFGfx%dr_dwgCim{bUc5cw9^b^
      zUuvU-*Bad^9$KTGyfezzX;_5q*_;y#As@<sS*{F1MqHnt66k`EZTdPiLK|0jkxagR
      zJw4V_?lU2Eth6!>!d#{560D}*mp10Gn1PK2Lawc}yo_$UGPn|5PZA1kzsCy%ui<%e
      zXqll33H$BY;!a=mh)}GIosK8;!0DJk>A_Leje`{9Aj^dGtqemk7zc=#Oi2lL$B%-Z
      zJX3MRjsHLDPVB`d_`>{u2xTOZ;-2Oyfq8zIg$1q|KB;pj?#bF4vM*yvj;qZw-~bj5
      zk>|I}uLw&h@Du}<xyFD7D`Rb{w)KXUzk~)aKN%BBzp4p=^(bML8H6=<C$Rnl__d3W
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%}T>S6ot?2UnFg{R$G4-qC2f<5D^zj6{-cLbfb3dv>nosbRx+_^da2&BCZ4%
      zK7dPKz&8<ZVi8o3E^=?~aL#wnB(EROF95c%Xdy+|xe_<x)(K@V3Y58XL}Uhz=etTf
      zjX?ILHcEJH-!%P5_m6LT^4ch0TgVVL#<6}|2&GU44C}}sWW>eE5rIw##fGm#BedxV
      zFOu1ZiKRF7etA#G?JKQJoseE#>ku*xzb|d1F<F3(JYlM(v}{Mit_;pa*OP>D%kS|5
      z!E1OP9cIixg@oPKIC1~nbdOM3O{|V5wCkLiKxubxtrI7y#7Sld)=-9_aFYb_mLF1r
      zedb3&Pc~JYarvLmx*40X0=_c;BEllF$Z@xLN@0Q@h9S?jz$e?>iF>y8gyLf&nc`}*
      z4A?;iyD0Hn;Y);RlzEB)GhAapot3dRS6hF=>~F#WFF#BO)i2eEz<N|M#|*+eyHi;B
      E1jqx7O8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%T5A85JhkC8pA^n1cjY(1DH4(7sj9@2E=HH8<c%BbcQy=jG2eQ&vHfL!VfTh
      zgCF9;STnf6z@n?VI;ZZf?*90Bdk1ignuZwR@KHRAneIs=aFzd}i@=}gmSZYg?+Ine
      zaX;K&%?$bEE63K5Ak^3QEYpO7CtW41p>#d&ez@rp=$4S{IJV~t+aC%mkjc#cW%u*@
      z`iqb{SGMxogm}F%BqTb{Sf&xjW)^8=2>HIU<y|lxN%vliEJ-N#9fJ)7+i?ANnD8gc
      zBOLYDPrB-MEkd~-_2`zcO?}|I$~Ie#VK_oL9HB(erqc6-8Ci$&ODG{da01tmJ$^ev
      zb(Kr><k$mWl0Sk_LlP;@8douF@M0BYIA;0egfnqYHs{E_Mo6Axnla!M37nz8yX*qO
      s7K&Vj0ws>2K%2>sO*IeZ*#56@!RGBqp|YU<6qrW^JFG$2<?a}&zv;k%P5=M^
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)&yG}wu5QhKZYPbl3pwihGz{C?{WiV)hmuQF$O1~U8u;#GGoQuI1@O`XEEVQ?`
      z_9<+Qvj^g>ve=oO%{TwQGcO;HPXM-2OCv_8UyEBYv3zNVo(k?P5e6g6afeD<T@#Nc
      zw!8_HtJ6pjHVpj@pGYk|;q>OsUo4^MOHT=>FFl`oFHa8%bVkT`T<r%!2Yum$GWlG*
      ze-GbYR|%;-rB%=-#OsYdA<=QKWCn38=8!>_Q0OWx&%^ORdKY5gNJ6RW+H4@$hU@ub
      zA{Z&3(Cq$qsurPAk7&ygdT8|mPw8Q+(KqH5V_qht$I|!3Ffxr6@Dn9udT!|1@>rQ~
      zm49z-%kWqS55`L;)R07qbDFCd7Wi;KvK({#vcs7;C!15`A0ni{F~b<Jiv(II@+~)m
      tu!Is<Mxe~m2(+0rY^u3A#qwW;eKtRc6sj|7uE0F1SYZvqDtE`Q_6a%(dfWg2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%}&BV5dMb0YDMvv_y&SRt1&SqsEHwRB3v+BJS}x8Yf9TJt&z9VlZgi(z=tx<
      z7J?GQ%goO1d_Oz$`Stz*;1qinGKAWrcoNUfNV<tu@z@bbJaGKbQ-RY?e7_L}edQ%u
      z#3~Fd<Om1L0dviS!lepSd`-w!s$D{^5k5#8S*#Y3M}bgksX(@qVNdEi(eou?yA`^^
      z?+UF<J-y7u12rNXwU!GnIIR=*JsICb(VVB-Al73-vyyT-z6d<06KfTC_3HgU{D1PW
      zMoC1GuiSJvZ81!LU|h~I6D%$JT8;(;yAvkbl}%-STVAkzY`{1HkBnD@H1eppwzxXu
      zOq}zFZ&-QdLk2cSn={}b$2(o)Q*qM7d7Uf521*<a!8vEso1qsIQ?wxmE>dK9@;XJD
      fj!kUwJ1=HtqQ>0@K|cm26j#5*X(qmt3hjOaQGt-{
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJMzfQw25XR4?X=wNt;1O6-1}x?x76f8w#Sn>s&2g=8#kHfvMui9I!!YmwJQU)R
      zAOvkzrt_VD`tH+rAD?gU0B{b+A@mrW%*C@<@=8fxqI==OyGLFX$R{>OGqp3XRS10s
      zaSd`UOwRAJxsr}SATnE0-AYCe45I6$RE0xpst|?@k}hRktG3!dID>(-iv^NWga#c7
      zjjxJ<P9|Lvsc+VgJ3pn+Iur7VUwuDrg_&tpwlwz+HJ^%Ny&c^%7^avT;e1J}SO2&A
      zqVe4ZnYt29K0du%^V7}LCW9tGN{p)Ybz-UYrBpYl$#(qfXlHeH0|s;+IyXQ-Hw<7v
      ieMnuO>NZWHjmZw|(%&92J=iDWV1tPNPKZ8i=%X)tSg5@K
      
      literal 0
      HcmV?d00001
      
      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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
      H`HlYralfV}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTT~8B16g|@q7D|D#AS@O660zMDiVr>*i3vf8NTVj0Mo=G??N|nv7PnhMAAI%W
      z*}uVqCK3`&^i2|fl=04NY1dK{5+C-??A&|Lx%b?eU%$V82XF%m8bS;UyVikqn5%NT
      z<_fQ#vufT>?(pW~V(uxK$F4ZAJig-cA}@Qwax_F35;7;}Smjdg(e^I4Jq=w9lbw+6
      z@~Y=n>ejZy8N#o4ogtZ5=}pE4$2zayX6UuK>xq}bCRT>owovJmb=_KNMNv}Ja)ec7
      z(EV^#*oNnda*3Q>OQI~iI}FRIi=ef|1d2-+7$Pf`B99@A!8rP$Q%k9ILBlY^OiPnB
      z$KfT*S$0dcJyPx7q0RR_Q7OkTguxy#jK<M}nB0xUp`n{$ATP@NVQp`lyH9+r^nAs(
      zoPy;F`QJE<csqjnTvSC~d}yS?#(y?{UfFaZMh#3!9r|S}Gja4H&d^`tUSK>7bE$Nj
      zsQ(yaA7!@mW*9%0*z!_K-4wp;4}SP8^6$}WMgR8EwG!3FP2@#2v@M3%My2N3d{xM+
      zne2Gm)#IS2LMik`$%f>-==p@?1l3AS)2fl5gdjUWf3L|OrghRhK_c@LTJ{vZ-!Qa!
      zf=fTl%rQpH>@keb3Lr@~i7v9Mh~PfKtzj4sFotzZAdk!BneyQ<jw|#>z>1!!oh&G%
      z=qDQV`xG4^pJ8UQCzzZMlFuJwy2U#}O#z$4zD4akgO2AI#S6u0`WQ`4qseI~5kitd
      z&Yaj7u41;qo}*P(7B#<M<P&W|)E<aJ9ts5=_X8Tx4A(G6CsMg!veBMg?U;NWsSe50
      z?a6OCCa0-opLtb@2qa7<=R?MjCLors1bIu6y(6*SQ@tMon2BaLCNd4oC0b?Ix|HG+
      aaaxR1L?cJxBRUQ0@-cv<H<7X`YW@$hd@Fqb
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-A)rh7(GK<7S<}L{D>eRDz;Q9g8xMnh$bizOtnUd7t3~N2bW#k?h@b$d<GxD
      zD{j02qlwWQFMKHD+3m6^7{bjrJ2Pj$bG|e4&7Z&DegL?EM;e+023Cy?V>4fqrtd0m
      zD{o5I%g-{X6=fQp)Q}Wt4?ua#uq*k6<yC2V0?m`kR^F6AB9ko%Bxjwn)R91I8Ywgj
      zw9PA9KKIv_rTfxYwxqzBdB-%YlHsag9xW!ls;UWGoIgfJfsFElZ&(C(W<qqMo<jDm
      z4uR8YoWWTEy&}EGwn<54O3P%IW^{C-TSM1=ExxC${Iu&DTeUP!;hcb$S(;gz$-dQa
      zUSRAPIbm{TR~~Pga@|voEs%1&s&s=g51U2pEmfmd4J-=%n$s}IGD2J^WLvH0r^}Xf
      zC&qOQpfw1W(zuK(EZbi%^BhP(f!R{9bv2C)vdqddONQmwvp!|1X3bv{=&nmRoSHiH
      zSTKET-jJ?Z*%IiB42>_rqQ7h@^O@W#WJ?;x1Tx3@vG0S1ae?8mvN+pwr|6s2X{+M!
      zhE>;M2^wzl<PT!!><z<GWl}f5ZVOyF2&<=Dbe#=VmTm*|uE5|yXi-&c!}DDkqXb5e
      zF1X?Jik{0OrUi7`bLumJj!gD{j6j-a5!)uvyN`-ph&O{{C_27t$|ox5i}r?Y8x6E4
      zFY+oU*rPxTzt~QU8fOz61;^CL9$LQeqX{~r&JmbK5;Hi#uXG*6@g!%0*Sn1|NU%+0
      zfE~{LhMxNc@d>HKPHyBgQpuf>U9{(ZLU8zsj-A(u9sbpUAzVUF#MB>VSs=>`<}R|?
      zUJ>zzh$UXucOiRMogrc;7kbghOad3sAL)>hj-Kxrc(cdu&jsYW7|QKp_+vy3wrp2S
      z-9;aORXXw>?Xb9GqZ{iDlsyq;3kx1W4uTICUjtHJ<DW^6JzTkt(P$-jsPcRVCvXdQ
      Y!kv3Z?A%9z2?QqbfSClQ7@P3$A0ulz^#A|>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot=}(rQIe6!+{3CRQ}Mu!ar6RpSQJ{V<F;23j)=1|Q26i3=aVhcezN
      zxR8Zx?$6A3&z!km-yfd<I%xQC7|x&hD_=x2Ddt+4w@65Bq8<hHs025%pNV{=vT=VQ
      z<cm>x=EG$Ow@v-h4BoBEl<6{*!dA-Q_VSSoP{M8nWq1s=L}l`RJ{?N^z=spbP)~Bf
      zCn?v;_Ul8}JgFJOMY8SXO}{ZiBP^z(3D3sSz-anT+)Ay918bs6-lns$eb|cs!5D%;
      zKG#CtDQm6y-)7G2G@2keS}@>HMPH=oQ+G+3Q7*Ta*m*Cm1BwA*z!h9vV~?uJ3ZlGE
      pofW83v;tisE$g*Um#A$j+z=TT3MVUStw1~uQ6~+CBbs(_`~##1bh`im
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(u};G<5QcxJX#%0NP$&{3TN)&y3c)~7mkOqcr6{`_OfX6llsKq77E>h#9)O2J
      zoRbJ7#K3arv%mZAxBc<?_6}fzkqv{vedN!4<(DF^3aMWFSQN^iQIPjC=1N?xV)3M8
      zp4l)N_B8FMJWKrV0|x6-W>QTVI_@}PFlYIlaL~bK4_#OcgHUGTrdlpUamyE}U>JsZ
      z%+rV$QrGRKsUBp>;D!IS6flh3nr<x3RUxw^7)N^ejvn48Ps=jV1Am;i7=ts<t0ETH
      zQd>Iw>(VE>3r8RsdNaVF6<vv<P1Px7M!D;)vGH0TI}{zlfHRml#}=)64McgHDlO2b
      ls0F4(YS!|O*BJa(xF9m96%HDzRUjU_7?K8k2z49S{{p-&Vv7I(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot=}LbW0&ifi2gCN{+A!WuRNSHumb`=N|@O=-z=F!)%mNL=^;K9une
      zbb|}o+@G26o_l7#e?GqebkX$S2n4V4O)i66#S2a5J&2VyL7xLXQ!I@dEa#-vWU!3Y
      z+)$Q!a0OaBhYDJta!)Clo<OP9js)C(Hc>uG*sr3Dia>oxsd`+@#!5fQaiRno!z`9b
      zBsJN-ICRYm<pSN|&du9)LxE;%JrpD|odzSLDV>Jx$a*-k9%^iDmQU?otG$H@_@iv0
      zWA#AR+4(>Ja%G2c0aoMR1styUfgC;Vt~m?N<<1IwAM0zMqt6&{0~fbA;HtWTI3IFn
      o1!^3vK#xhwRyvm})c-2nF&VBE&Nft`z&wu8U=4v2o_28h3#XHFwg3PC
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}T>S6ot>UX`->VTCID*MOwj7N?jP~rsyhkQwg}7rehpQ6G<jgAInw2g%99E
      ziFeW>C_*;(XXd--o|(_D_YVLAbS=~vhEM#3uiRXOMJCm&8;VT16AJP{hFpnhs_umf
      zcq|t;t57^EnI;wt2B%{1hh{LZWg^v>q3-ko24j*ggpE3On`ppfX!|k|(_%Rn*&Uz9
      zf}!K5A&&!|N!@P`4fQB<hLK;f`9I4ZL)R$>-IynlJ5!lVBCi){9|zh;i|j4)NblDA
      zzc2=SmKIqkZl!j2R`EX<S^%dYMfz!=Mio7jqD9@1GNat+ud(x1UfUFH!hjJBTw;%^
      u<_4m?Pn{NMQPcusA~kFF&(~=GRk$M3D-}*Q)K-Cb9HK)S3`aCw!|^vt5_m`e
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot=}(rQIe6xX^dnAi|?p%^wqSB){jbU)Owjw!8~P7OYmD-stzfDdK7
      zQ;3NyWOILJzI*1({rdj+1kgvvg~bp&^H)9#3K5q|>bD>kN(Unf@=?ZIi#x6gnI+e=
      zSiESNXD)08f6dS@&EQ<gOzI&+&F@AG_9%Z49%|TZpbm$j70OK9meYw)_k5BHhIW|8
      zJdL=Lre7Y~`bicH{cz38t9Azr9lsh1Ql2HjSS$L?pc@$vJH|tktWAr=ylb@oU<}?k
      zFI6mVq;Yom&t6W<FpfZKv|YfWiatourS6n6qg?OJvGHDAdlWswfHT-Q#}-wM1w?t9
      pIwR1eXat5t8rJC@&(T^{xFGVfQaD&pO9kSwi#BO6?9sG^{U5OObGrZl
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U31e$6g}%W76?<CFQ9>zK%m&9ji7v$I;D;C0j9>JO~-@DbUKQ>QI^_rMp}20
      zhyEw}0!*1{``jPJ^sFqqigAILU0?0JXU{$N?)5*f|M(NYHEdeQ2+Tiqe|7hrNP68+
      z=>x};p>`hMyn1JaKh%!$TrDkR1<s9fOgRbUmQ<khU4gMeu`ZBZ=`^K{F&xcf965m#
      zRTaoux4kXHAKmSi6qu}bJhxSMLuKsbV^;5~NZ?X+)P+OLN&?4xsVhOG-M}Mav9MJx
      zzGtMpw(rS3tvW$uVN#$l>cUip19uD40%wi4qdHFcK+EMYbPp=QURQ7GP`Yg!Q#fhT
      zJ|!@2DAjEUe3Zurm=#zm#0*VvDyH<lye%1cl(s35*(x8wC%oeEA}eNN4i_w(r*<*7
      z!!=DMvhI4i6CM~g^8%%WP0I~@hxAq8Csc;I;!T8-g-Ze#M(NfsR5?^lpKUOQ%Xt(~
      z6qxd5AVaoQ3Qyqn+cf!qB4n_TFc@;`6G(d4#zlN?DzYeWIl1ewKtll~Q?sl1!ooF1
      zyj{>iXXJ4mHw0|<<U<)nuFsa7F7yiPqy@Gyfm?>oZGo9l1>ggk8QCSQy0=3{y~D#P
      zq!dkR%m<Q*-^DxJ2N^KnxVJ04U+Qj4H8~M1d?VnDDsk$zwf#L6%H{yY!m_~icLdcs
      zx*>IZ&mfTPk*Lwts^zS*O<0JYqIDTYe5~<&sc@W7<W0%Z(dx|<fzy4Z+pgYq%F3?<
      zTKY2VPl+h%%5b$NaHj7#kZ*%+@2NevMc=#u?ruMoo;J?LB-OIq>4aux^<)1d*c(Fh
      zS>Dkyq<{uM`O7W8=C&CU1IG5F%4$M9HaFbRZFAOT3&pK6licidLr<<NGaILe`f<^y
      znLW=jGRE-@zFoe1<hWY29PWbq_>~tp@;iTIU~@Icz*jiNHQ#gKew@}(0-T`Nhy0!8
      z$wUlui{K_A{|ZwLLe0Fy>1VXlXb)0od7Q!71a0;WwBLxF;pzP3$1icN`U)2t3s;`w
      z)4xIJ&z|waL}TGOoENzHSA6XZPV&k1E}JEJpuzPCQ`sWfCp`TLr|@%3U@q2So&>(6
      zUyg~~VWNWPd6cjO!T+qUV*yNxIilXhxAC_!y$*j{!75b{Si^d}-^2ZQuO#~ed>7l*
      XWPgYov0Y2{N7&#U0^f7Z;D>(!pxNq)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%}&BV6ot=}LbW0&2>!%{?4YQPafu-@MvMt@Q^I~I6Btul(;vmhaz*082k@bc
      zcc3v!%I4m=&AHz>GyVGh_yll)BLf;k`;ou!nH>o?31$3dM?CWE>m;5EKb9_!W#He=
      zT=A?926To-)`CM@zcPlxmGouYWym#KLk9gO7z-0QY!;D6fuY=&zIaHUMj{;WktY}`
      z{lMkkkcU#u=|?@D%822tpJllwV~3&ETrAig_b0X!hti*PT0`Z(qx?&hZ!BUiJ!PxV
      z|C9_?#{M7OU>XLmDrE|-DQJ~J6EpJ86f&4jkc6)2Np;!dHQCQq7&JidMt=xYnR+j(
      z22GdL8TGt1$HqGyG?-LP>Oc=V?yyCt;!;F?n<fP)QB{C0DV4ThwdW|W5*$(v7KHjz
      zl@dsgT~vsnSk;tuPvKNZ!)l+-v9}6yX=%KGoh)U)Fe8Q0D(cuLD~1CCX*m1=nn;Rq
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O-~b16g{t>PzQ=o5c#rzNIM|o=L&5?ASM!miD-$qnwAMXsMDk~HA>>fKcH)4
      zj5{}KFoBr3aOuK7;Xm*v7|(mtFKCU6dH23M_nv$1xzqmq^X)r;tGF3QNML5qeri9n
      zJf~Q#NdLLz*<Q(7s`|U-iac<Z?NX^=7x&|c2=u8`t7N-7*1f`>Q}pAAwFB6!wTiVm
      zs|nC0kkSCMY;8CdX_w@IT_`!k_4GCGR6JRBAKqON5UT<`%VpQ|ZP(A+rK%JCwR!vZ
      zeUaN|zG~sPzAV~43sippT9ey`Uy<(4qCisRsWBR9Mm^$etExov%9dLKv0KuWeokOE
      z(+=1k$>s$j%jIn+fiQ**q;Os!oXO_9Auwv77fI!f8|VwX3kJ>x-lTzk43OiRbe;9;
      zlY&!u5UA0=R;GG+n+j2#S}@}8N{_TOhyQMiv&YqFS{m&gsBs5&9Dk`zx>P3HJ{c9Q
      zC7;w!dI~^)8rynQiq_)=u=Qvpv!#Sdwg3cjCr>0QMuQz>R<$8X^u$KFS}8hrr20mN
      z8hz_u)PmYLCaG^2Aw&`9GlFg;7&*faJOqOeSD<|^KwHYMEybseGdG1no<qF7V1Af(
      z+Wd-hrZ~okI>yv7VTO;9Hs@4qp0O_)WQyk$x_E9Pf<-pZvEd4#S22u77{?ahKgKjO
      z(g8FsVum+1!6i}=+MA^pqMt#wM#Z94@1o`rMh@wO2n57*a8CmoK|&2s!0cE&cDmT_
      zSUiV$!YL72JEuRM>in`}@ntO3igV-{QasI3%GDGpp`)+3q1PH=D9CDv5mP?~VhFac
      zOR%o*p#Dclzd=+S(wX>ygfbrxr)e3kSIhgB8-2$$yl>$-)==mQ|MY?(n>@MEiPJnk
      Sk>}@s@Vus%CU9LVbK@_vUjthJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo!A`<J6h-e;q*_rBg|)<m0>;KQ%7(;**tihFekcQsmX@?rgP-M!#DyQ=M;YG?
      z)kH9MF`YYe-+6c5$LHHSfGbpOSPZpC{>&F{BK$O#>cvfX61We72eS?jf+6>xY~&a&
      z*K9mhQ`gTNZeJ`^H=L*HyM`fuEkmi=43%?F*SY}@CvH#0GMu#P1BP5D8VLtm*ezfi
      zd4{4VLvf$Zh9d6sVIUaFUPLVhJeFE#hdDKs3B#$O{u{hSDdurBn=6gl2*GgnN3=~}
      zeV|j8b;=S$X(Yxx4U`#CHylR{PA^JhU))NQ`Pb~s*iZu_g8nSp(PL?~NwrB^^v^e%
      zOYFRwdxuuXoZgVLjXl!Ul?w&zlOjJ3P$Y(Cl`>YBI_MsDqj|B!;X3S&iaY~5S=oMI
      Rb_SzT91&JWJSLEZ$`|2(dPV>M
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2yG{a85Iutn3oD3%D2;`c0>+Jr9ma-4B_S4KD6sLeT;b|I$UcmImX(QxAK*tB
      z=Pon~g}1mfbLPyM$Jh7ACx8>wO=JiMkK$Rp*pYOSP{pryBqG<ok;3&l(?B`0BV2bR
      zoF@|oq4kF>l6Y!63x@r>fRH;=zKYKY&BLB9v|Zs(?0y_7f6~5NhPuPXfM9fjv9z#;
      zLJ?Wy2<4vg<#pnXWOyq^t|U}?0XH3pQ0aI98u3&`ghs0SkA>Pi;4BQhS*!(@<|CL+
      zdH~j}t{9e38p{Wfxbb{#0(A*_j{!B)L(-67^@AjI<b~2eeZ^Iebzkg*cwhavOfSv9
      z$<aOgS+-WQb+lJA-jRRfC<9AlY=KJ@aD{dDPUlP%QQ}DFH&A9B?QLQ!Wm~AAns&0V
      NjT#Kj?=T~S-5-dfgS7wv
      
      literal 0
      HcmV?d00001
      
      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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
      YNSz}xQI-B5obw(zN8kfOOya|T11dZGwEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%T5A85UfFD5g$AR^<?73z{QPcZxBsL6pbVv<TNgwWymnQ*_lQ7H4lD(A7$(X
      zB1Gb4deT*0UDaRTAD;lOapoZ>a6Xn(IrA+AX`<ZRx6*3A&re4yGR{L@pptQXElub@
      zzKtnx+zQD(P%x54*-1}MNTA+q-LHv#mnak72-HT>c8zjM>SwZXWGr)cnypuXDov$M
      zrK8SBYE33&q|h9+TZ6Vh>2?-S>=X}pI25?}&*(3YXO!(klUS3>lv4Aa$XKArlHKk?
      zG{5XL*nN+}h)p>fJ|$61iJJ>tHn$UOhFYfQP~K2+lvR=!Ufhq;B%nK`d2xAtzN^f1
      zL4XtU&4D6ca~B0<SM^X_)IF3K-)A(>^?;G16;ej!4^rLg)Ns5|siU#U<^KsQ=5YE0
      D+Prlv
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIiO-}+b5Pd~tW&MJScN0y(gN;Xn@j@gXL=SuPG}LA(mM-ab4g4d1gNgnCf0VI&
      zgeAD1)Jrpc^V*qt^FBUb-vL~p9-zc<I-nOC^Hhq=DmURNrJ6_nXlo^n>yU7XodhT|
      z)Miw!$;AAjH;}@4NLWcu=6r@}<MA#hM$Re|w|;|UPHEny(c+V}Rw;9RE=cPhiD%wk
      z2DfCMw6v|}yyhBxW3m=QcrzAq<WyqP09A(LpR`!<7^;zq4Y|xphPVG3_3FD`XV-r}
      ze?6A2D@C7-N{9C}lqthWV^Mphdb41i43`_U;*N{ohEbAPAv;QY4Ucl~EWLI<+d_qb
      mVaxjzD0%B`qk<9we=B=@2jL9IuFvdY-y@6rfsYR7nc5evKJJtN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKsOLH4V6opUA4>^hw8_9AKn}<R|kjExUfCLj62ckTXE$o17rC>v~<c>4RSW?Z5
      zh{J+n2}u=IY<TQ}RCZ8>Wgb;5S+L?4QJkJ>TO(Vrm`C^A{_eTwcF$k`{PqWc^H_}|
      zCUEku{77!)JymbJw*MgSNzchwc)PY$S1sReHsTl*Nb9h?-OQI(A|HkY#&<tdlxs`J
      z{#e!=B{1d%!>V#UBGyV*1;nDjkz%vq`Lf|xrPEeJm%n)O=u7MGhXRQY)own4OgVr$
      zvayk0z2i3TYi2=Uc;0T<{(`_jZn`QkSZuDV1O|{w;wVNBfohUS;)uX#*>0%i_GV4F
      ztD&G&xmlM^RZ=8jW^&NKV|xOpf_(pL0<&jw5m^=AwHq6S>8j2@rSqSlzIEkG+Yv||
      zj1;i?tdGQX3)Qv7)Rw@=hVqND?a|L;x#_;KEVV@?e#Mvdd#kRj2Zo$Z;(3fFa0aL2
      zcyYITy?zQDH-gyJn<2wha?{jgX+%yVEUIbICDWCC(FZZNxQ~=;Fy}Pptj3(vnEMAX
      zCYr_i&CpbKv8PyLbsVn=OmsI!IDMsk`?hiucpZf}E^*&=16FExRozcw9&Z>c9qF--
      zbPv6#CkqK&##?c`NjtlM;8PM;a6ur>RxHa+x_c2*Be=$5E@k!LMiOtM#NNwROEuO7
      zX8W``+PkQ3<{iLN60hRI2;SlGC}iup-|N}h1C2j}C7ol5*}NK^j%<M*49`!c*>>yd
      zx~&gis^|Qk)fM3+PsaeSA;d6=I7aw>i2s2Y61;e5_^#)8ka!>CXrA+e&xEyur!29J
      z^iM&2hWDdn0VND#fs{o|aFh(AaSX>f(xelHbc3WA=MGylJDBW?TBEQ9N~s2@i7?!t
      zxDZd{8NxL5Sp)rmF<Qh}7i!J+h)hu)aL<q(7PcACv*Efu`k0}Uh39C5E;}0-rftXv
      zd4VD8XQY4RL=4)2VNL^|L@FQJtDI-gh%A}KX?l1{1OB9)e01<a*UV7oXH@$+D}9I*
      z9!0R}2sUT1YZRdk&FI>vL+)YynCW0<Klm#e@HM;h4aV_p#NN!F0U6BVr9dgqYQGfu
      z-W2Eer}&O3zGsRbnBwt&q<9&x1Sz=JO^Q$12VKS7@3{EB)xlf`3p*&Lu6A&pel7A*
      z4ik^hq{@0SaBi7zw^-;(w;7Xc2e8fE(c$La#uRq=+xdkVe~qY_GX+m^FWtnuftvTY
      HE{4j#j#6e-
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}&BV6ou~~Qp6t+L0y@+F=b=p+Lic|kSH3PxRBLYZpx6-HZxNMAI*gi;6oWt
      z!3dGKnVFpV?!D*S&#(6nB08f(hYEs@hH@+?p5Y+V%1%8aP2~AFeAZ*u4iyE}a>k2f
      z9D4UJLk=vYknJ4@0~sqb>dFxdYPhZ21?XF?;_w_Kk7ble%a3f*BsL&RZm-?ywFOnK
      zCjqBcL3U_U(D8p}emT@AbD50Nh%Gv;xvghGb(p!x>>$zVP3GM?R~VATuUe*p%9z&a
      z%;pv6N)vpS!^A4s>ObftWo@T|PTbW1%bDikk;&;RWXYqzz!N<ANu~q7Q4yr-Vtc1~
      zo{}JNSUFJ{%Uq`t<x6#_41EJ?5qAa37H!Xdc7BK|)&3B>D@vXAW;G3JF0**=qjP}{
      Fz5$p}bpikY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_a%T5A85UfFDWqrZLyNM>^!HGwM@nR$%L=SuP)Qp{Fa9GIfEP)T<C;S8tet;ik
      z93Ei_VB&$xq`SI0(^aYOpU*D<*Qf?42%L9lKtq|b%B*%HnNn(G<e!M`fNg`6>)BC&
      zqCjOrm4=d7zO*{5oQITUa-8!8#uraHFLG8VasB^D=CqMb>d#h|?xM`Kr6OZmq~7KI
      zym+MK&9JT4ravsvS7g)$!iS;azSF%V4Nw+1{Y&_QCs2-boRG^b3w&%v*X_C$mv`G2
      zTaDQ@S+yzAY4@4BoC=)H1uQJCy{;c4aI-?&eDUVpFzRJiaYGw#*h!v>d5W$kmX`zs
      lc6<VXf)CX$N+=-kUD4xv2q!r9{p0|L9+~w=zB-;xD!+Kp;P3zd
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmcIiO;6iE5Pjp=2}wi3SAp==!U+P@Lh3CDQIL=j5kdrUK;p1Ttgw)5kiDte{;DE@
      zkT~!I_)%47*P$u+z=?}z_W8}c*?If)=iw2+1{O1L2(y>syZGTp-JWXt9odxrzKV3%
      z>jX+?;1ZS+gqq>jg}OQpxGZc01n*kt#sy)znqVK9KNUiHQ!1&q2xrSl(!Z9K<iEIq
      z#r?KWEx)Eisai2JMt0jGiYhCogltW=l+eA9hdO^Jq0RD^)pB>c%^-&qhV#gvK-hU(
      z@U0tUK^V!yLz+;mN);UTI`tqt5%o6TXsp_8i1w)nr8)OOS6|48FrVDqz)9YJ)>>?A
      zBg`ea0|yAM5*@2%%zQC1w`mG3?7j)3|Cth7K$v_v;?L{nF(+P=%^C?qtw39c2{X$p
      z$+@1NPmTxVr?w}}9*TpTeK9k-i@dfJziNVGcE_0mmrWVsn6;-IK5+cSsK>ETUR^J_
      z_sEym?ohm8B!y9f+b-K&_YK3?!5Cv-;|h#pf=`C?5tFQBGNa|#Yzou1wty05SY?*c
      re4kaq93yNI7WixC@Hv_eUilWq-<&vBK5fARD;pPkeObaM%liBmrr`BT
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&&q_i;6vn@!SB<NdX<7+E5rluJOSCG(jTRWz#=84a2b;Lgjr&J@lb)lM(4q(E
      zMS6*d&Q)nq1TE&AIWxcczH{d7^W_!5G0G{#2-OEM5mU=|Lp`*{YN)J^o(M+`uX*1V
      zfw-6s<YS;*oq|CqM7ZS$J+i(p2svMRN;tOkd<O42Z30~pvMpEpfzW|1oKPkXo;rsg
      z@4Nei<hjx+XcFR;s!cFj?ogVDV>JU4X~J4pX?YWl`_j7=eMb`VU3b6+f^E279vZ>D
      z@(K0szh`I=ij_IOn4uSVN{<><J8~~Z?geh0HS@nAg4uIJZy+yK)X~mg|8x{}gFWzc
      z{Lh3k5=e4RaTUV~FIGaDV}?&oI1}eYZHDag99iRNG6tN&z!`G9%Pb(QBhOVNP~aE|
      kG?|RpWUW5K#!rP7o44l*r3JNAU>+rGvIb#`U&pZh1v@fxTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaJ?TT@e47+pI#Cnv<HAqv_eG-9<$K=9H6EnZp>ODt%W$PDu0A=%<_!bzH(SkS51
      zj#@j@J~-oark&xTty5oYr_SJI3S-~p7xV}8t^Et7YwrX|3sWBUE#Lmu`qsDh;pN}I
      zz5s9#=PmdIc3rWr+S8q-eA&%*PB~epb69%zuq>7ANom2@FoI##2mxbwApM?zNC|B2
      z&$}hhcD+$MSC)RFEDMBl(w+1!59v`LaKv#P@0fr;o*3or{(M%3;K!CQLf9%`#>e{-
      zqjeCd52FqNwb~ZOb~G?JYkRhUZ@f=n>yYEh)8(lNSxnm#IVlhw%4h7{s9ki_zIteQ
      zmz|P8%h3Oo*-Kc*&B|$kP)T~LrCIURcwb7<3=K?YWWjS-pM}>166?~X+^crZ$qrMR
      z6J)s>Z(+B<4i(;+v)#$g5wGaDlYM0;mzBjJ_D~=tc+8tA$k>7D5MtP?q}V6W5ZA10
      z@AW1|Lx>}3AwhxGvZh>5PRe2!ZD<$R<mCtDbOlMJNhQ`NQa~MHbm9PeViyY1%?j+_
      z2yxxrD*4_Z4hb~IrphHRHX&m<dM4&ww%yplLp>_}n_;|#E`gwzU*WPnz9E$s>{We!
      zJB)V_AfJk5Od3f2Ew3zYhVU->EYNO|wc1B!N}ikwqaP;(>g;0Cp2_43GXlxlYR*ht
      zkr}TyRa4E%k?yde8bIkP(AvNxGEu&CNfznuQv%kc^wK(r)}`CkUbULOj3<;OL&~13
      zJ}=5rIp@(?nOxpw=6{!7#SXFRElf34d2h@yk}nrC@}#329jSSW9jajLX1sb=KD+`G
      z0q!il3-W}Ig==*d!X}Pk?mR{d&K*f>G58Fdll~`&B<B(J`_gJM{CYACJq5Tk81Pu<
      zY~<LAAjf{9^f2EEY{LLv#YysbpEexCex$I25#b67c9IuhsHa?IaEA;O<Mw3R3ch(%
      zqdX*?v3W#{i-c_3b;~CX*W>1mx#d6qi+`52_Auu;;*6jkX?_mQqlI%DMm2t{f>FgM
      zn)+a91~KvtP#u9L?Bd+4`SFXO^bz0iH&x+MQ)Ko5_AH=fYyq*cXzMe)-t-)AJjMR#
      zK@LxG_!+u?)ABWU84X6ny4Gc^(Qh#3mj6nclr(a&nf3G}x$IdCK0&lr?WTL_=E&@g
      z+ui0v>})h6!I^He(NssQ{O0XXyScWmjUAg?{=@9D)XfI#mL(d^?dYAodoQgPM`!Eq
      ze~SRsQwgp!)$;G{{z`1~a~xk2&t=I#h9zd%I7uNcv7uS)Lyp2tp#yn7&;pL*BevGV
      zhbZF$uENI0aBz*kTt^9?aCHNBxxR<ba38nvBktfaKF2&y7w`pM;7h#3SGo~{+K@}D
      zjaZ^#lqD&#Zi!E?_{!O^4$RR?0otX2aT;onZN86g-7t%HQaGhssQy{01_D|V<M1Oc
      zeNg_ar2e|bgH{z<-~$X*ujiOpd9YPA#msVyWREm028Weum8P}(+3w@*zpQ4Ck{0kC
      zUGhC5_<^6Z2Q^M>t)hg<Vpy|?Ad1uUoFaOLQdZvI1tP1GTNLtQa7Y3A+f=uD2)6(+
      l##eE64Rwp=`G_L^#9TjX#Kua7Dx$@+bK2X2Z$ash{s(kTl&}B*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm$xZ@65UoZQWs%Jlao^zL#7|HY6AlOoi3e`u&<sPGZZk6&{WTAMfFEV7>M6wN
      zrK{i4Rb5q|U+*6Pa1EC^NC{|8-52-OiOgJ&oLMjmoGu=B6IW}ga*!5KA%~+}?K{1v
      zsq|t2S#4t3(*iQBPN)4SAZLm3SU|dEiE<?4zEN-eP)5-_lmg2BUxut50X4L8y`{T`
      z?tkP;i~J?e=r}ZrWFHfk$eK_}hKQd-<A?5Sq35Y^LJ26+zk=AC+)6z{NZJzC@wYO*
      zQEHhl5`bl~#e%EU1GXLYs7*oxnwdpKWjuHBh-NTs4{<1%t827L2$~XBO9)KKhTcpE
      ziNZH}G>@?_>rQUS4UED>#3i>pRu4USA1Jg|e(mgv)|C~2|Hd@~G;oC($O5f0_Y+qw
      zUSphxg2hEh_!6vJTxPw(dX@Dm^ELL>ncrZ%30wC4Hpd-~yU?)w9yD#-hXWfA86Pn|
      TW_-f<l<^s1?Cc!R6kL1*re2l>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMJ#W)c6g|&Loy0ZyY8q(DM=1por>y}oQN+>;DWa62C<B|5JQ7EV4Ym_8vLe2I
      z06P;yk%%gFU}9om=g%PSd$wpvtPUOQdu*R`-@W%-`RAXb?*MM&P6`UcO5Yk=uT0+^
      zIURFocWm=9-FEocZu7N<^W04#$&eQ;b6`1L^GU1E+W|w;v4)(XxO@C*Kk#g)yTzc6
      zxzlkyhWQTn+n)U*uw92CHRhf#k$T^D?BD^zqw1{wY;S5!s%hKpa19A$b!f;jB&xM$
      z1`Guqb5I3Z(2)w!qK<Tk&g;lPWytN?4&NIMTiknUwFa^~w`~oYmS>CS=w&kK**?Rn
      ztn;+diAnI6BWpnH#gmPOGu)~@6SZE^aS@lOR=3svf1VMIA>Fh5p6E?>)DWucI#zLw
      zX4>V!o^+yAt<6r3Awz^_WJi|p&Phi!`7tsj9k`)`4BEas^4k2NEryUg-iS?MHiO=9
      z9PVuoEZ^sT3bz=RPgx`KMJy7o()bg!dPyk44MK|WLPl~zM)HATnm8KfiLcYsYsm*H
      z#v#rb^$GIE`UFK|V}g>gl$@aaRcbHLy(0B*NdJ~ReTOXGV*wwqgpYIqcj;uos$iL-
      zK%x>Rk*GzHNK_*#t%$v#Tm|7!RLwo&2$pKp4{`YmAqC>(Fv}--N;zcwJ4MBc?7kp8
      zi}IKh#kq6T)!KBL&oYf35~4H(+`!El@i*iTrfN8d6<1@$#cA<Tthg2{E=`Mn#EOkr
      had}$&D^^^O70>kiJ4UQvT~1~Ln-n!UZ<Bs}nZL)I*A)N&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;%TB^j6r6)V<&CKLK#U6(u(5IN(no@kV0<mymCKb}Qf^6aA$*$)KfsSNo?AqT
      zX<W3E%*>hg%=!3ydk1iaV+SchW9-eng=>PD9=a1XRBn%7mvXLzbdV-gt-<v@J#zbl
      zu@n)ZG?LNM(bca3q1Eo({u9%(u5&^<m`Y99Xm_3o`KyJH(?|u{I4BT0i2+ZVKdyXl
      z;L9IBAtU_2NJ3Vb{wnf?Q0L$3DG{<J0zJG7jI#Oh7jFm^D|?H3DWsaq(8PR~P+Rhk
      zp{LD6MNupjm|Qst&7=iaGH+I9_u4$+BxzvH!87@XU=|8_t$g03@>}|;ErL+&YAwSH
      z-!n#XLr0vM*wFG0amC!QZ8}Tf)%e6fj_;R27WR$~Hkr>cn`X>2Q)I>}C6r^Vpc>;A
      hYB6qq;|_NJOxCft&LD+-&Q0L}hm3jF8vHbo`vONYnc4sV
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;-D(;^7(JuwZryG)F|BQ_jW$<mp-ZkKHV|5<XnUauz39cNgBhzUxNGQ31rmq^
      zdXWdnLzSKx7u$gJ=KKH7ch1bi?_c)-PEc`>5-3fB%iyOUEmq;!pR2L*yEGp!Wf(iK
      z1om~`p9SH>|2mw?Q7quhWfTPyDR9);x!v9LPX(-4jeZD-wt(GKp^94q$F=`&wd(^e
      zo-fAIMH+h^vd9UfYxO}E<l`X&TSo;C4xR|)J1Uf4R`a1;_JiS!v<jWYD3}d`rP6s)
      zwBidD36ysqH-bsnoya($FHo)3cTfKn=tMH^8;w@Y5O)Z$DUdN`yS>F~Ig+20CYIa2
      z?R))jcuN^+entuft;$5yL~pT^g-iRC**8vE^!dgeyvDmVgX$UwH)i3GwqV*#+7{P7
      zAcr$NW4&tN^LUOTGXj`1!bJK|iU(fcWpc)+*S$>R7Wr!iDQIxp6h9k4Z!?ep3cNyz
      z70t25Q(BANs63+P5(Vh-aNi&lO>S=~+4>iWA@CaI1j{$XHbf4txc)DZ?>mXSF;ho>
      E08j^iC;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>YuW6g>|ZXmJqQ0xJEW)v7RJ$GX*YVHKqUO)BEj4Df{43^Rrq8oO}s+O<Ex
      zg_@X1OkDT_{88$?15GHB_!jSe%scO$bME~5{o^NqUEGZ!B#=M0POLYk=MJ5Y*;gH9
      z)@Um$TbA8H-|}OK2&DLsX<JU$JZv4ywl5IzPhU#`Q4!EP>O^_UbsFPVSs*@;o@)<%
      zYEscU^<`B$UB4%=)K~3+>&dq3bk2I>K;Yu@`qTR1i~7szqx$2<6M@9O>v+E9_)W_m
      z%J3gr0@3@*QU0F5LZMQwR1S(wVzTdcWE^3nb)=9H2p5XYMF?Ed5l2*GBrk5Q>bL-%
      zvvnOBqMYS*#IV5GmX1Y41(H?e$ojC~l7oiTvPtH0)oojL(;6tQC(Vf8Qy!tJ|FQ6%
      zfW{WkS$#@9m9eh$$EFcyaxzKv!*ga*pX^Lf|7gllt{+U9nx?w;udf6qXXDS@;h-&f
      zqyj7Fr@O<{u|?X$^iM<)VN)oJuq8nxLxM<729fNecm)ZnX=;>*kPPw^mZ-B#osV=|
      zjAF_7juj&`Le@y*@(4L&b%ZrzdxQ;ReS}RT6X9=JjXr%1Zn{eQ4H^Q_A`Ugmj%cP5
      z8N5OcUF6Zjbtv4zF|N_6y?|8-+tlS%3iyj4V+ElgV-2jYM0c}B&Tf(pjrbN&oUk@2
      zGEy_XVeJzoAut`533$PC`uM=)IRS%+j3rNlH@?h(-_8Y>=Dxf+`|`WF;M;S-*;(-W
      bx!@fzU7nOlBF{AEKF`qpFc*9$IJNs1qcyrQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=T~8B16g|`3c4?`!Pz2P9;Agv48sj6zM81+HMbr{rh?;3TDNB}J(%lkx@u&C;
      zc+f<mF@zuBk5bR<ZlDVBVP|*loqNtb=g$88_2Ue{Q!H3W36yu`fjq1S{=n<j_nfX%
      zU+1!}f<X3^1yi7?Pt;xM_39h#UDXLKWCThV(Ph{7lx(|7!0gIU3Z%A|1TwDjdf|?M
      zXmIn~@tp95K)SNMRNdmqWxuO(Fi^;26h#4}Qr*fzU?L9-Bl>GHk1TQmg{I@FSA)H_
      z>Tkw06HUJ(-7VR7^gaoi;f@ms%r^h0Xi*>+s4&sTzSvGf_mf*a?5O?F@x8#pZGq|~
      zl!kX8U8k$<S)t1F^EuqXyoI^HoN65fq1wyiF763rWxp?vI{yBVfL)3D8}@UtaYZO@
      zsyEcCS*dDU%@`-kR4bI>fRbq)E!L4{VtKlwXF>}r)yvov+wuqfj#_i{%!)$;U(l+}
      zd75wVNh1YQPlNZx)U)6_!>>`~nZ3r{Yo18)U9`Vp%&wha+^(ISp!9{Y6s~if;CbLB
      z*JUECpnz3OF)|g`VHz{s5h3ECJlw!d=58@&lBFE+wAqWn$c$Y+9U)82u)kv5D1XPS
      zUA}_v4bk3`yG8uXh;J^gKj)iC_=p)POOfk79wfS2k#=C3G^Nv#X2ceemPlFq%vNG~
      zV-f5-g1x8Q4@1(X6Do_+9@0Yo2Y7@^La@eqL6k{N@QL1OInT!N`{S{3{13WA^j(T^
      qBXn&&>k@Qc)N{-_Gdh>nm=_?KD0nbboQ{k6Z`-J`K;Usi`Q#6~ki1F&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)&Jx>Bb5Qg7@1Iz*PC8#78c6=mWjFn<&Kobqx0M{R|!8OO8xer5UXKVZ^RwNcS
      zcK#^iED#HgiN(&`%s%(NGyC!R`Uc<-)f8fc`mJ;C%&owS)Wn*}iL|ab3>9~!>x^7+
      zHXn<-P<ko_gHY1A<vMC=eP0mrf$*i{+QJVQ9A0z@bV<l|JQakF3T?-YL}Kv#^!Si1
      zyc3eAQpvDQh}Y^i!RUAsVIq#r3{0d6xt>(wI+~4yKhQG}ial@41`gYBy>1%ejSL9Q
      z-oJNf5z4hCzS^N5`ch3>bz8fawR?$2XU*boh+y`;$RCSysVCa|>zxktG}s4k$L~z2
      zB7r356jw29@L?sSIcB(X#F;oJ8Vh7!mPn4H$rx}911HGyS7rsFfFf5~pu|xNw3*aw
      gve8^%>!(78&AUs5%8FVmFpmnhS%a{{f5))<1;a;k#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%SyvQ6g`uqNsY0sRcjwEbk}BK5Z(D!5Gq9rmhLBMXs3@v(p3B?H-aL#@B{oP
      z@y@hvqzueG_i^qyGv7a-UjPnJv!F4QhWv>?d((Ip^}LDb39rr5U|_*uD9D~S=273f
      z_lIGSG8jIOMhvXUU_B;rKj9Mw^F%}<J!8n!o6Sa-rmo{&XhVnNAd58yz24}qfFbW7
      z15=`P2Nq1Kv_ur%%_e@Bbhtkb8H%kq;Nvb&gv=L3BOQn-L%Frw?lIZvhv}6vM`C2p
      zro8><(0+(#Nf6!$DPXG??#oTsBP%+6hen5-DMY>~>eR_XTD2(~QD4qg+z+g}`a5#+
      zD!4U?b_l&HYLV`$qMyRRA<>VJ!#Or^fif;B0=x4?*u)lPv{DH(g`~7bk|k^}gguI~
      kmvP^adm*4fikPZ+s}?%*fyF}lq^0D-e{yFjxuPVhztI&_C;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkJr4mv6r9I#zN1x1R5UhfH3=aS68+kHxvZ=^u}Azig&*KYiFXnds+XBJGnsij
      zZ+8GAv_cdJoxQ&3tMchNiPXVHR;}5vz3?eSKxpT0<#ZCO)o#xwBLtq4h|udV{;W&!
      zFWGw?^LRek5^9sH;bUgg#D}O7y1%%Ya~x~8$#lkF6`^EY>X}gNzx|u^d@?+>PN?Rm
      h*)UHj6GSCTfPxe)p)5EQ6v(XzQ$t-4p^+=ld;z7CJ`4Z=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@TW}L)6#o7;Y1(uv5@-Pd8;#PW6@pL@4NwZDS}nBFQmprFvbGE9ZrE%p;9c>K
      zckwo(K001UXCzfSD&v#m_@Xbq`Jj%M(HVX6QT+aYw_!sI)5-3CJKs6yJKy=Y-~9L4
      z7XU8DD-qNPEZeV7>4(xqyJY3klV;9L4;cqbhLtrU2nn1ox6^su8cz?5?KiTnfR;0-
      z%%W*q!-orofan#7I!4jXms~D#p--UBb@c3kqCl))0dOmy9-+DIWCR+9%yCP1OAgI1
      zn{!~ZTB!<YSfXXN(zJGP@Opu!9kx|;b;}*m^Cct1bRbYav}<s9=WXjcL)|BX^9`Zy
      zuLJY-YeU`t$hqd7U%$3z&%j`)`|q!w5eS)<$rS67y?uSD5hk|tP}V5OyowR55J=5o
      ztIwL!^JZ=rnd{MAy>gydJM0`uY!z5?n#3X3F|G0KB{QEhoO)cuO&=jXOKaREukmCQ
      z7b2nI5?so7Hp{rS3N$A@x>P|ttW0V|9&OW*M2biCLcy?d0xOcesX2#z$C-L`uuv&!
      zxLO*n5m-GR^jQI<<yws@T1Vnt+Y3ctadNKDOccwJXdvSoG=xznM^|Wwpgw{tXB8F@
      zNEDlpk%@06he?(}8f?|jfM^8U1X||QK*=MDE^L=(JE)SRBxMtJYUst)oEHsNwJq5f
      z$j6g&CK#{3B(R|0w2a-Q$uYwj*2nUcX{_JQ>iH4fG3DG}47n2~HNIS-Rta{thoso8
      z(xeKIC&Sd0jI0*hqfBa0!%{4xyK%$qscI@Fz_x1Q`kp{%ah1K*m~{-@H58`61wP|d
      z?!A7I4BVh$6gQFqJx5Jc$!C@T?uK32U;<0$X5vB7YtG0U6|c)ZvCQK%b)$59y9Qml
      zt#gb?dy4!uFck$Q`AVj4I-4VDY-qRx!z_N$JYvX&2@NLp3q)MI+i~>60?DL@5WJZ(
      zK5Erk1bN<ZXLU!#GO%4{*0GC5*0yr}hBfX^C<R?BOH|Ns5WLi6DTdAL0dGG7rqOn~
      ztM^*PQlVfwu8|uk7>+J4jLJ<=kCH%Qhi<jG@vJ>rD7i+Qw^)2kFB-XcUO6nr4;yY2
      z4iaH`nPI_p3O(vp9I{y%&L-Tg;U3(}mNQ-H#&*~avn{7usLx-|G~#|d7{LRSu8Om2
      zSHnX%N`fup5c{IKX?<D9c6vm^qcZuh45TO#AJ^~%o@6B^^x|%1Oiju<dufn2(`8JH
      zy*{h*$ySIenMoQ+UrTjI@y_$RYRx>x=lmvUtj(bAW+(d1BGZ{)Ug`kvz2j85R|{Ij
      z3(_o}r=2VSBOJ0zPS)r(WzRRwcJUg?ATFXDYFV3lgyc2GQAl25>dm`}yNw*zK*KUL
      zabMs(HDAE_`GNUD&SQc3BF+~F=FOb91m;VKTO%(DJ}*$-m?Ktl^bg~ZAHPDP@%XFQ
      zoQN&tYeOQoh_5w?STkR3iP#dp;xkx2I)e*GWASNRoG4>eti6oO%1BRR{g>^D6X<MT
      zaRM9LXRv8><utB3fh}*LrTt@UIa+&a<qWz;r_o(T&%TwfpZe<~mDe?VZp8vVvy3*!
      zoDJr22V)z@#h5^vO`GAn3kT4HJo;c^FKpa^0#|JQ9poC&?&W}MaUEyOMzJf@Nb*~w
      zM*SSslG97DYYq>4h#)JYwNGPrdtycHGzLz`c%Irj!ZY`f$$OR0xOcwdQ+=3-P7GDk
      z8s%v&<2MsUGJY;kkMYEl^mHtcopugS(&ub;*JBSo%i5;-mhpsHgU$~)sDUJ0$_hBH
      zpf&G+4=pf+VXmBMyz#v=jNhEscrQkL;{m#ooG<dL-Y-?qQO3S~9UoSpJW}6gQQpBq
      zysIEvJTpI@dQxx`ZYHR}Ex6SO-{ONe_@K9)8C^L5)lgxrp#n8VwRuT)5lWKLETQDD
      zjNIqwDr5X44xEnEW9(!g>E;S!la!<fX0vEgLLF=idmGU@8;`$+rWrV+F?SkMU$!pB
      zo#x|mgTIZB?6;1+Um>G~iUq#m^IP`(_w0i2*snhXGU@PLhOr8VafD8V{I2-UKcVvo
      z5jq>BXXbI&?zhmo`cvE|a1vctg_ecNc=(ENOStvLH&E9S-p0Mh1YSG!W2=m!R!L(O
      z|3d<PA}c@hHu{DA_$#CM4XyZ{UjIOfYwPf*imFpZ-04SE!}Vh-swlhhDLhTYr7Wu~
      zUx@ZmJj2~Eo+Z8%op<Uvo)UN-FZfw>syPr<q`fFf<N2U${|yu&S}DRy>eS2s12%-R
      A*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8BH5Is}c?T1UD2q=CQ0cnd;@LM4!W`U%!w25t+pbxk#D=chx<93Vs;-jzr
      z5g#;aNHp;W_@j(7w<`*0;>+H-J9ExG_srbyKfZheFptF~VuXnubI*KP?)Y7Av)pzz
      zopQr|-nBi;4kjC~JZsh8w3CPv2Bom<n%-8qzOiFlAt76-HJ2aN9#q$jYTbB9n5zB<
      z+X5lIT3M>BH`Zzflc=~^SzTT?>PyRnWUU^h;-1;I2}6ptcXT5R9B+#$Qj3=Bcushq
      z&{rt72yugzrZ6b7ywDCj)6E;MZ|!El6go~~n4m32n32M9(qb#krK36$&{8-Z$;^uj
      zk~pIyDT#BD=6us>+j%)vvKMruB%5bg&6gbOl*A<+X=sFjs^i(UZhONHn&yV9?&Vvi
      z+cE=3_UdN_eYh-I`vqFik--VRTDa|WSUfkzbU8RAzSoR};$y*H)ltF>f&9a^MMZ4e
      zw%OSh&C0flV6N+!!#t-#zvnJtxKKQ94<Xa=yMbk|IHEp#FekIpbb?;-JUcL4v(vFV
      zN!(+{{yhzR+^^}vIA67oM>2siv7VzbaayhHsan}WUSr}1uL<^AM?d4TyfYP=NBS#h
      zZD?R0xsMo8@hKILsraml&#U;NipM`F$_f6CG9~B<bb88-e}+lg#T>OTsVacDj8Amj
      z3d@M`|4eBgQ>B^DnEuU^6)6<*d)Y&pUMT!%uNp;l1;(jM5OUJ0i1S{=sg-8-apm2C
      zE{*e`*MIP62Rs^PQRaM3+86Q2o)Ji}wrfXe-Y6QqR}j(Ua054wfj?pT{Sggs{{oKT
      Sma4jqJG{y}BizLT(mw%7<;oxc
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6SyS6E5MI$hfE=6!%GCoXP7e&d+w|l}YlaMzFnxe0VQW%@Bc-;Jp?|Fp{Q><^
      zovsu)aW1A0&X@i6+tq5d(x1P-egnW3SV<TlFn>Yo^vVoGjXP$=bzHN=e$*JZnV*CN
      zfpO_KJ<7}G;rRu#!z2t5Sm=r>V(2cbyEY?`3RoCrA+T&5bg3h6KKG5l=-!phs-Y`*
      zkc1S0T$kM9b?Ui}T7!nPsV6YkNN&2qw0N}^mO`J=3Z_j$mcW!MUiuDWF{yIAyd@)d
      zO??CggOK_mfg6UbH4%iON?^ndj%%E|ysR9j1hPtY%xvL1iq1%7%uZoQ%bWJq|2<C6
      zJ?z+Gj~<=))V|DHa@9;jz3T=I`9fd0Qse$kSfwf~zI{|w1r{&|9!i`|7=;dT@#t%t
      zOxf8etU&Eh__)z1dqiX;;o6r6jF-djYPo#^W12k@fh&&|8JP)nEhb^?%MzwhT6Aq+
      z1lSYqM0sY~=~mbbCW`4>jtS|YLCE~lPi_~5gPk>cv?`iDe>KvnIh>FSc7(5AHyyEf
      z0+U_Qfm}Uz)_=O%;>WT0l1J+-stNBNrtF|(jcpVzl9r8?!&0n;xZ^>?I+blrqclb*
      z3@e9o+7y?BCt{+8IZYj>$nb{M84nL!Y$a!S=IcG0*d@!$^s_#zh&t<X{&x;6d>)I~
      z5j^yT=P|#dl+7Nc^bzOJtlXJJV5w149~HhoB~kNjR&eD_%r=K(Lp~nZA&X-Vc03vc
      z4Bw~E1XjA<r)ErZpa={{=ZMcGUJCpM@!4I&Cp8JfXpNwiKpa&}S~Ej102#%N!8i&C
      zOu(eVDUH)`Q`s}xp4B*~`CBlr{0p$Ca0!+b-iA90?`r#=wpTQ+YJLswE8V(A19HlK
      zpzVhmA8GzEY$(48n+mt!iNdFvf2R58ntuT=mH!pIR`^ESd2PRicZz=x9~6FsPYSms
      UVt01b?=I{ij$+pe_<ezqe{X2k2mk;8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)`*Rc575=UzTe2+hBRFYln<#BVWkK)*Ls|?Zw!GjavgCMWHx6yZ+FEQ;S#qQm
      z*nJTCZhwRRmOdzxVZuzp4<sdq2Aa@jns(ahG_*grp^rZxg~?+QO8VWqYq8ia!|LpJ
      z_nhyZ`<-)-|8V=&*8ue3hXK?GbR0I1m<wIyVx^Gnn#*N#UB+y&WRF<ovN>Y~;1_6L
      z<uXD)*F#|ah(4re()x&&iKm7%0ig@5ix&%J+bq}<X1-$ixZ!^UT8&h4UuHCA=xIHb
      z<cpq6Yh&``4S@#r(a;iFJS~@Q3WU?+Ni8#`Ju$8sYVAFNCM`LXN$t&OPsS7DhCZQ5
      z-}j}jKBAL7o=C+Xmunvg)Eeo5F%|fsKro(4ruF2w3iwFCZ=_SB((x9LFc43ZDr0C#
      zgCuhGHYtrsBdv`v0Yg(PACo1SN^9JIuk<-C5O8o(!V^69Xeu$88D)eqKBjg$O?J8S
      zSSpc;4-X{wsnzpb9UV*U8ygt$tX}2uq)$>y+{N*hKxkA?$A>e6JiXlNI^(m}A+wTS
      zu9QH{fkEcCYdW7R<m^2HzG&wJj~Op!t$GObgs~Z01R4{$f|abyO<AS1IhD5rS`x)+
      zGe2RLauU0Xb-NTzh><(O=))tFGkRc9QQEV)vcLn0Rej-Yo&FGf*uey{rfu>7W$R9=
      zbx~c{B~?gUn6~Ea9GfM8#{@c8QR;;wW<Hmd9XCXxs=rKZFpM~csQQd$%Z~}GFk{bh
      z%c$O|%QNo{V;|}S>hkJ~T++kn$Cdyd7r0Mu)|EF4GhK#V$`xh?E4h5uDg`mZ!pgLJ
      zBGC}`BP9hGW&cLik-Z`PofFbyEDQr_Ze-5STZJs|3{zO;?DF>q!K1f#M&>GIJ2GYQ
      zzkSrQ3X$%JS;$6udLP*;IiHlAlL8N~wd?=omXQa-_#(c<X0VIS!2~u$SEs`YJ&IHi
      z2i?>5Mxs0cZ>?Qnd25vbuI;6ZtQm_Yg+CO=F6`#oba8HuIm@?Mvrw?|j`$Nne1#oq
      zD5}WRqHRUG7ebgrF@S<V^Bv*!f^E%Mr7-64G-rTa9JUsgb8cNrLyE`bLXnd7bR}1^
      z%8?){Y-+VhIZ`|nk!f!Y;wbyt?VX5oq@B!xNfk@EnOwolJIRrX%@bcvo_B`BOD!#*
      zEa)~@5A}3ksYdN|zF6Shxm(xN)M0Ddrmo+_w*&YVuk)Rg8jEGynhWDQ_^v>`St^-}
      z)5ZBkfta_xE`#o=@A8tmFo8K|Ff&P`SSd|gdvo#%H+yg1R=Fu2WS!)wxCi&67Ij1c
      zq8bE=>peI`+~C1s;&mRpp19G2n~0k|xP|y058goB>cRIC-{--fAim#&KS|W)!R^Ey
      z9=wtG0S}H4Kj^`qBL1`oe}?!W58g!lSr3j9cY1IPAvqYSO_<s|jIC6vi)e>Z4_NQN
      z68r_aUq-jD=~ntBrC~3B*Q@U*$aIo=bz__Q0!H_FIBJN2V2t4xvHebTh?M|-#+sZ`
      zkzvOVpTp<5?w14C&0`NerEgtq^F{1j$?yVe`=VmF*YR>0=r89SIfT5b{I*B&3SN1h
      zPHbbGpDSl$v9=`)yaFvYc>$XLpnSW4;WyDJ&1?M8p2NDBv{!<!U|6pD+D@kBg8vM1
      z?LR?%d($V?#;Cog0FWJ}^AlI=@)qGfyuUs%FZ7xCrSWthL+39CJW-VTO!+#Qx-
      zSjQS+wH+rtvhPO=)4s$O{w3S)Rcyj#ihqU2{uLg>>zsa9aR9%@H0=z2gCgF*QT&!S
      z@=g2*zr&AdPvQ4?9)DD_#T*%`vYmygnuF3{if>Z-vt+AdxuulZl~U5*PceapSX=wS
      zj#mE?td&*z3w!LZYP&wiwYpsclazOp;h1%|Yfu}@yW5~P_N$F^t2Ta?T+*vwm2h|a
      zv)EFt!C{Kob_sb_pryngRS(-!k2at0u0%IcQQ&V(;qOfLZC=^y*oc4dYW<T9^EQ+J
      z7k1*`>JSlU+v*|uUCrvSUH-jgq8sEN=9LMnrjrR@Yunw{jCYRl`8n#<>#nvJ`GNnQ
      z<0C74oX=1BoN(=F*PeInRoYX0-g51ATIqkowKr+y_jg_U9_?v9@4NN`*M8{Qk6e4p
      zwYOdSv9z`4{O5e<s^T7z4ep5Rwl|$>Ag6+yCcryHH#ik;vPIv;dHfeI3m-0sbyyNj
      zctbSfPqcDkI8t7#N_owdvIc*~f|62T5np8o$eGkfUfC-lbqlvOH6A-h<m{}vNOUMx
      zXPSguR)Mco8MeC&4Gx2>!b*y$hoYfM@%1W2+@)xCM}SJkzl{P_b5XOA<qnEIG>RP_
      z!saUBH`XTPa8QJ`YY+~QaFB#UYZ4yAGp<Ze@nXn(yHRF%C74iW-RzU-5{_SnnB*wk
      kE<4GQ&Pg|cfEYomNGf(`oNjc}4e&mE&mE`VS8+f1AIu$wI{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYzfQw25XQeNP}9(cKVo8HBVDkV7`h@PBm{^`EKF`<1((J_j*ECU1|EQiLYz&Y
      zis<4y`@8S%{QLZR{{V1?1A!jlXs%w>n{4W(Eo5a1Bc~yqDf=w2N!SazTqs-0+u2;_
      zo*+u?Z&alThuQdgrBA&xwww?WE_l$cF|{QO;>8xVBcz;P=q7jO#Yb_-5BHjfyIePf
      zlWhDL8?ImIw~|MMPFJ?^ZdqyT*?PRzx+-DMsN*4=Xa8s2DW5-0ety+iqSGm1M!fN*
      wSulk357=p7(I*f#m@pui-xm4^97P+q+c;=rf}N-jF^Vz8E<2e!pFQk<1G+wSqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU%Wl&^6g^`*2@Zy~N$T<_g+749JS^5N1zKQ3R3rk~R+GdEE{TI22f>DK0*MHT
      z1s}jiA<m4Gl1Isgjqja1=bn3V?kK;0|M&^u0lXXxfvpqyL4Nf6y+PFSyJ0KzYbtHX
      z=-sP;)wmhtU<oWMoZpdA+ke?O37Uz3t(z25V7>Zpo?QVelHEX{piwDHEs4XZ%{#j#
      z6M5K?{l37;1VEQ~pWO?iFxeM4C@&f^(K(`?sH9w#I;Yjbb|jNQOgYc~lW@=5-&LH}
      zVXqbBVPeI>c@zZ9a;0uVpyVKftjb&mIh<43B?mV00!!5}3XTTdMi9T2jgEGw*OZ;Q
      zj6-!E6|LlLNMm*u{Pgjj=#^WYqWJWFOjDXQLunUq+Cg%<Z-I?+Wx*WcbHpF%RhCB3
      znPn=%r+@cZoI;H^>dseFIf`C&)43@~`r<f0PqBQF&qL*xd#Zfwz<u=ytxdXY@`;-$
      zDEpZel=(W+dd3VaF3N#{3p^RPh$Y6)%q+%|_Z`dLogs?e-62-Jdqb>!W!=POeqDA0
      z4~cxlMLuTl6BKcPE3A5HKdxe(Co<{zLT5^Wp);ky#5Lv)l`52t4ORrM;|9M<i_fU;
      zGTt{7zc4ZM@T@Mr(8JQ^%xIXvCbrIKUY%`zb7u24b~qw+<K~=#wONwmc@q9d+`?@t
      J6)0=Hl|Q!o^r!#;
      
      literal 0
      HcmV?d00001
      
      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
      zcmbu8$xg#C5QcxV70S|uvTtRR+6xgkq>2LqA%TiOs>A_KZfa=2b*jXvD38X02jHO)
      z6Sry#4IsoJ`K9rEGxl%K+xyEafPL&HFvPI>z+3#u^4&nytcFu_tV&zyy6~N6;UzG_
      zkPb5}$<@7eS$z<;PGF2-Wq`XN_(ZfETQH>Vg}&fVSFUU~>#k}u3>S)L3`vTYxfaUq
      zgw7czDRf-tN(t#RY!-^Q<=E2QoD#zf5!WvDsc5c)Z=t>vf^v>u3C~#N>ah|uo35ut
      zjbWoO*sYgWD&9~x>GIl{^0gN<gwhQ87$jOZOgd11rLM^|Pc(QlD#dX4bF0CvN3hw)
      zEID-|?sy<|?@$cuh2kLDTPLp;2s>(VNAju^QAu(-AA3DfN@z5}WwK24nMPzbG~`Ii
      zD3^k{j!$31zg$Xa)n|LD)Ip3@(V1f2)D_ou-MEzbdRzY}M|(?BThA7!j-)|I_f6AY
      z_^xSmXc*`lr6EkwcqK57aLgu<G&+eXqtlo%nnK!W23e!C$Qhl(ywL?L8ePJ&(Uq>Q
      XcDXgIoA?IuMmMoVof)?2KZKnRA=Wfj
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwTUQ%Z7~O}2B!rZky`bTeg4JAFLTwdoD&^8(Lqk=9u@toq$uUe#X5wU0VJ-Dh
      zef7cT{smpjmM&r0wfg9<;f*(!`<zT6ZFre8=gfEZ<@@&h``_RH0Jw~N5M2VJ4~&P#
      zcDi9Vt#Z0%md$iwry;jjWTRnJWDtIVk&coT)_D~I1BLa%T6X1r_U>Z-vqG+z6%aXr
      zQ;W9Ma1F~X8r7!sk@7%bxbR7KF*l#T|LPs}{ZJrq-Ly=1R=^ie6b1Z?c3FnuLw^Ll
      z7!c@=Z!9E=JrEd*;5D3PN!f4>fv$}Of&RQ{$ve&3rgYYf&8lQo-Yyx{qT!fo?;ZNx
      zEwdpop6~G0ZapIqZb<jYW`NW=B`TcVF3GxU(q0gw0*MZoob}MCnq}3cn^bpHAH=x8
      zIaQvn8dfD;a2?aCEHuq(Svnz{XREb>SgqCl82jhAjoA05yA_+>4r2_Hsu6DroQZ4o
      z?Kqi4F^snm58`cs!DE)3<;se5B1j-9(CgZ_<aUc$!Q>L1K#J&M1eY+yi5T^|w8{dP
      zPGao1>zT=fFwJSlOh!N&<(T~q^)F4wY)7p#ir}3HuHdRb$hBXnIUPSy%m^k`24*67
      z9dA%kRazByOCT7}>5+ty!G}RyXB3ZJvyrZ>MKFsS0zHP~7&|4qz9W!q_wn)O16gu2
      zxi%j!jyP+Tv-t?#M}VxHh1+Cof)(kisWN);gi2k&k&R~6WjIS!+hXWmw&CH0iPg{B
      z-e?)4g57jVa>-OV9c)kDlyZUdyrBMyF1qeUfV-gHg}Co&+lTdgFCwfs#fm$;CAbbJ
      zyZ1x8=u7^ELEpf^np*t>hiiXolrww|!O!On;?AKT^EihEoaKo^;(hLix%$<g=V8xM
      zO&8As$rO=~k;3|PnL2N4gtM(G4}taSUnPc66Xdt3#%0{K;@^2sInAVeR|awL2vhpy
      z@DVQTVPt&|W9vh)T}<%wDK0!gYADUe6I|ZKyU&uTkzKrZEM)>ALfvJH)@kq_#<77o
      zzQ8o!ui{Hw!&h2jtVMYwG2=<33^j0yRAN8q5c`~BRohmhT56IDg-*UCG<t%}QUBNb
      zp~o21<B0yYcG0H?GWrzPlKl1<bH^U0*mB@o4yKAe)YvWy6R?rw`xNS!!FL>+gJm@E
      zDO~L**-~}nXO+WLp`lXkOpR?-J5%vk#7#a`Tt3%cfhgt7`OEvEyw;Uc^0=qG)E_MC
      zf=W!EZrTrQ?vHHFPi?b~dc-|!de)ou5<c=s?y+e~z?cH{D10pn66`^&Gf%f(<@uQn
      W_=UW`w(*R4JVCBGk7rryyZt}fB3%vu
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~k|C6kP`rF2u{X2`wKIzS;mODX7&FpaP{fl|Wl42zENXB)4!O+~~~>q7Qv=
      zI{NPPMLTx%sV{U!M+-ADV>|NZAMwe*U|r|jG)afS$>g4M_TK00wf0`;{Ppkee*hT9
      zZ4DIyp-p4Q*p20~c{?53w$fH?(J@k68hio`(ih7Z_Ihl7ZPQG-0#)XYX}dXrrdj38
      zyH+N)L|4{{3sfubg2}+<GXGU0w?QKVs>Uqaawh~TBmGMPzUge*44@LVI%*KmQ2#1v
      z*|`DKp|%E0sl$&d4Q~oGmXa3^51`qLYSE#gTA+T`vdy{t_L}J|8fzI-Le8d)%#z_)
      za$PX`+zpF#PARy@>p;wvMmjCf895%2WVvQ!J>vbVGJmIzFuGWVRMvJ4%jUU3Z(Dg0
      z3&A})+R+t2AI@qxBhY%R5yj(mM9?pwt()$mmD*C(yC%yrs3VGVtYgmlk_1`Qgfz!=
      zoX0TN+#n$&`n_h9buupF-j)#Fp#~y};{mcie$`Kb_W$E95O58rh)rA*5ElOlw%akc
      zvpei?GsbnqCEYq)((wT%NyoC&=I;Ex6N;pmOv_!v8fFAqN@7gduIboDX2x-{PBlIh
      zIIVz&Ejyeu-SAr84cl2aoUw9l0GE-F>LRSynz7(Imc1UAG&^5a=(YYA%TEmiW_DBN
      zr>>Q?a~kFZA|)`Bj$?e0P*n2n{Jkl8k#fcG0FtPcpBp-EVnLurUVv#MpJTtG<>FY}
      zaI&9EVaCh5RkCWhCD2pKdtyqqO;wgHV2-}B&Yrl14E-*ZMZpFZvUw+EUa{nj38=SV
      zNG3%WZ(t=Kjtc&H4b_Ynjia3N_R{|bXEzunIJONOKp!|n-O2$Po}rP`W=@085c-Ag
      z3Y_A%2|j)=@p}>V7(**2ahew0JA&&rt|&ls6psIgu`;1C@EaOel7Dgt4esNu@1RAG
      zD)$P@?q%9~r)11N27KuY{wJt<;C~tPKSGPN2L1aOdVxMhbv^vy<=>vocbD5nqDQ{H
      z=+SfX;9G+`OcugzHQvEpHG1Gj2or3rhItaX&ZwK{#3Fie3o$HV1j~4r;~YN5Dpt5N
      zsmKi|(nf(CsW9pS>Gfh1@8Nysjq!JpD?hFABK2SCk>whfU`y1;zAsX5B>ahqjz?&a
      zAszdeT9#xEae1Zb$^ouEFVPxRw1$`jd@RP)=+QdEW&$Q@t&`RUX>F3$7J9JF*T!b_
      zXN)!#l`tU@P?5@bfl4R)CJ9I>oX1D(_AKLkTqTuAzNJM{iIk``ws{?i9{oIbh$N*l
      ze{LVwUm#gT-Gm^^E1S~Cy+NE+qldaxsp3ApU(xe`sK23Pzh=b!GNh3r(g+(fN<1Oz
      zZkY{|NcooXD@8oQQHr=);-iB0IQQ~YDf`1Rl~xy3x`O_~{yfi<mFZLbW~EByF{*Rz
      zzI0K0gGWyXsk92h?m{;=bW;U#^pbhk<1xKI66R0zJXVQA^z-mS;(9)>QIe@(@>R9>
      Glm7rjjH9vu
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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%z8zTcyA<#Pv49q~MvNEtSfSk<E
      TzyYQ?8MuHlKnDOxCI%h=m@+{S
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-Jx{_=6g`jD7Vs$uexL#>I4Fa~!9|S@8WR$N1BSuvwKVXsAEva#zvW;|9Q*<P
      zDC2#tgOkfS=iYaFdhY%D{`drNibE4QhWbn_#EUf#lVEK5axAS;C>?hgi#VB^&>6~V
      z!tz8gvF`1e>%<I(aALV|8Q3F(=}bisxE@tK2Hh6H6E&Zsa1sfh8bKJ-q_GIS#8=`{
      z1~R^4(2kBr^n4SJ-6Axsajamq0EQ~Z5)7p_I85Y~+Tti=YMY~&sa=lcOf@(-@(iWE
      z4BSED+ivtAY>)m{>4%Q+Mk11`{%z{<RL&Wi{r`5qU?>j5By!w4shrAx?sB3&!~x~f
      z=#&OA1tvv%BcC#bO_`#mOhHqom?<;0EX|jwlE{$)+MRclJK7s63f2{DDyS*gQBZ%S
      ru^gI&t<<Os9cOfzb27U|6}PCNhXw}p-o+lx@yr_g6judor4H>MV3%6f
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O-~b16g`ibp=B%rRm87WEFiQJC$fb!B1+Pvs0oIJtfrl3ePlXQ=c8fi!aw1{
      zwHr2WFmb^T@YnbY#Pd2xjU>{=yYIev_nvd^eRqER`hEi7F_v=}6IecQ`|hC=hiTwB
      zUF9h!?kQ)7&NJCpZTTt+`^uA14yM4g4t9Ju=r}K12eO?AjBltwC3OK~rMf3zZiSw-
      zVPK*F3*!P)O%=!&X}2Y#*KW&~0>x(7cKtm!Qu=)M(M;Z{SfJV*QO>%+jEXafyJ@c%
      zMv3$UmR2qT3~O0z1aHIj>Khx(E})2O0+St?WH9<tBUJY<$FMPrxg2f?%wG`v4_^T{
      zaf^MD?^D-jiL;r+zq?3D?3^0#S1u<Puyic37DkXNAQV?aVB)+~fz44G^*<?m0Q>o2
      zTlNwa25}CH0+r!(G<;unTz@m_q+J;#=YdSx4b!MCx0N1+xnZyV%-JIiV&3Nq8JtqU
      zq{l&`&GF=L7u>DdH{`$48G}u$uYomOp)F(q+$VVwxQZ!So&152CinT;F{XD`PwHP#
      ze7O42I4!Lm<N7C9=27YM=}+T`F&S=okhehrb>#7c_)qzoTewZXjO_tmEyFzHBRX&I
      lkkO*OixQFY%qim@4E{l!Io8CnfiAH^CSBkH*V2IX!Ed}l<lq1R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%T5A85Uc@o6;T1-uY)lrpotSa88u#fBqXSbsP|!aqC=KhTxJcw<;lc@AK*tB
      zdzMEe5alx6UDMT5Q|Yhok52$4Y&l3U?9|1pX!BMOX^%IQr+BNW_%$V0%9nRicrtX5
      zV#wM??hF0IZ)<hw8ivVJrIk5jNEV8Z45{<LlW8O|oxubq8RjcW%bTcCli|In`H~@D
      z30&bnics0Q3#QDoYBB6q#*lKtkb9D*r|&8V8-kP^6=E`10Wa%jWU3~VqH$6j9y!RQ
      zap}vpE1O0Iy5%6xP#jWG)~~`>o@HJLBl`Ug78w>|TkN~H{R@UtSC5v4KipNu64K+)
      zENlH(oEh?>DqkY0U2^wuY!`YQ`v3m_Qb%<EA@Wyux*9~GEA4m4sh;(nr8=<2rM5xa
      zL+c1Ql+o7E=}^TfGKv#>@0fa{B!M)Y_8K_G44s)y1I1a`1)ak@A=$VqfgBcMY-t3x
      XJcO-abp*CH0$U%%sM??x6WII#Ht^Yk
      
      literal 0
      HcmV?d00001
      
      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
      zcma))Pfrs;7{;IJPAS$Z6|7<_VnviTl#Pjcso|i}qzS^I1QP#5x9x~SN_X8q3U?Ae
      z1&KE<T)bf7fe+xfG2X4u>@LKFgm9Vnotbx@=Qr=nufIQ!06f6`95Mnko6cuv+Ya1l
      z(6hI6Puqc~?Uzhm=)PL_b*TItq(IRW+I?rRVXt&HRW}qEd7=k8Tokb8YHI@WncGu&
      zSh!F?79#><OM0M|qpgneSDj8@35+kfU8le1_}a|VMHzn7fxzt2IZ&De*-+sz-|CL1
      zcvQ~SUbh6M=T1ws)u%`ex~dshOz6N|%N%P*p6B|Z>Y3xM+N(SSt`=|^V*;Ze(joyt
      z-E5fHWQ>W>#;A3cQ>=B<Xcegyqyz$$GY-+^i)psNqqA<2_}bdFSEA61!glB@XRBEw
      zSpNBTS9zg!2SE-q0u%9rv9h&tvLnzqpStN%qS|&NzpKoglE-~d{>6fEkX1I$;*SDy
      z%=qvebDY_Xf-zhFfzj_wGRSi@+rU#?<XA`w7%##6F*ZMqMeYh*!8k`Fw!_nsajJeu
      ziut3(eT>cTTEnS@$~R=?!PMUHk9EL;#H36c;0<Zs(&!yZc#rGME9k_=^+YT&HnOa^
      zMyo6)SvN_QQB2?l*Q^+$oML?CPL}o6`urg(%Z;PQav#OUt{j$RN>Y-0!{4V+TmpH#
      zrBCqyW#-d}Vw8u8;0a1KMWG3?Zqaar*apgC|4K2GWUr=in^0B4NX9$y%H980n9p)I
      HgM0q~ry$gS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK%6g{)9ZkeU2eLV&d8qp9vh0#kNAZ!U*zK`x;W9zK!j^f|yDd?de(2t7l
      zuC)*b_HsYYJ!j_3+>g(<cL1l@b6_zX48>H;coa;u$4AOjJQ^$BiQAsg&uu9@89J~T
      zN->lBLJxSWH<W$Dkh@S?nM;ODt=?s@uL4izk-=&KS>zasuF~>;GV00jLG*mdP<Dg9
      z@Vg>ZasLh4=1D~ihwgv8G#Cm4X;Oy_$F)SrwKV*(?KbL*=cH^>=Wk|xIW{WLk%KZr
      zec{%oo(f-ick~<A!ibdbpvq85zCi`N*-8ftXWt%TT#qNFV?rrL%dGr3C)KU;<uZDn
      zo)PwCOl7F1Z<_DuB=%+RgO)+-1#GHl2^1abIAumTd-RHx7b+~|DaK>q9BUK{a{}dc
      dQZsCzNJuGRS=dA+!M6Uuwtr*P?U2gC?ibD{oW1}6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8BH5Iwi0?Y6E03#cF}C`wzf6+}fqv;svG@PRKeQCZpxENOSKyG4w@M1KPh
      z8U+(gjK2D#j5BvPfWQL}+}ShSbLQNcN&o!){u4kCreX*QB-hPNb1UmQRlAsV&GJS`
      z7PGl((Q@)uN#>nO+4MSQ-)+bkY6R-|cD7{NtJ!DE>$2bp)Z`}eBLeBklL`&`oV-9N
      zHzyFDnI5IgLT-MHf^C+ifT6_vIx}9yvR8=|ms_5+UCXfrw4p-DvMq0z_{r2f5l5V&
      z)DY3oK)|$C3JC}_={SpX0@0!1a%b|W^3hCcK2GFj9T7w|#5A<}nk$^Xq$9>@O+!09
      z!K`xfst%2laShkWl4}<^o755KY(hg9W#5{coV}qVfv7<3q-D$LYI#{!X3gc2dbU$A
      zOY>&MVyu!0gweyVsAcLc9jBo4*KHlAp_46d&2s61@=et&(MQw42l^u#Oua~807EfQ
      z6Aui~Z>)~H=ob*q|6LEL0ujeslNIXtn(3}_lU2tjSaC$hL*xYXRq2iG&!#b%I@(ea
      z@EpIQKw`$JRtl0AOrY`5vSoOWNOZ!sWo4vfx~_C%cuGA!!GcjkcvsO*Eeg|?$I#3}
      zq_1Y4nu;_i6=^go(l987xU(u!Unxdupl47^I(3BJqlQjk{0GFMQEwRE(D()C6>2dq
      zD0ESw%SM|*R}|_nt|`>1P|8Rv)cu*HLdekBqKXewsT^7{iZsU2k0;2}nN_zy7HEkB
      zBa6i2ht-nO&2-ledehxI=-U@Gl+!sn7ijsOlklPvYV&EhqY9FMdaqz9-XxN(=S>L8
      zYz1X9UB4kdA`;&2`UNqS{)*mi`rF054`?9NN2pJsNX>S5TN&nO`7T~k&tH*?*W_a9
      zfQ!tYiwy2#m};Iu8y=7|c0oH8xELVJ4(qt?E*^0~3QPNSqU!%rY3u&oKwD5V#{!)!
      uMb?S1z^6TvKDm5=90|zv)c@niy@$!wW5^*IA&>VlCMfdHkf4E1BK{9E8uo<%
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIlOH&+G6#nioFb_IIG9d^^62?5786abn7<7OL7!1lwK@=Z}4bwoAdDTphB|8^Z
      zSsL{ZSmm?aX;l&fsIgqRvRu1#>oWcV%kSQ9W|~QZSfvZNx6hpOo$r3<+<Sic>xZ8J
      zoJTGIpTMbg{Z0L?RJl;eXHsQ7SIioj)JP>`7RJr2F<vO;bSnVAz+vf_%If*m)XdVl
      zv1|#1mo_Y8(#Wq`YXV|IplL<<3&bY(hE*<U0l&3TGz60SxK<gQo~JKknpaACu9`Aj
      zEES4I$uf<yK#RgjRV*``n$nAOZW=W6rZp@u6F+#4eLQXA6Nv?KA1h>xFd7im5W!J_
      zhInEj1c7538qp+o4`>J=D0dwiLI}&<gBqIUug7sRfD`mqnkvd;g>06hnuUB>LpKfy
      zgf36b&M#h@8kv=$4{6Y(wPn)G8`G8Cl2Mx1m$DQvI$2oOvkQ93l;4igZ>^aW<;*_E
      zsftUf8dh?wXK+Vdfvf+iWOb#H3Wny))x2(1N<6_k|6{U2JGbiFIjdymSJN(w-O1_U
      zbYdZZK7k{(f?UzdYwV*idXbVveuPTfJZn9cSO~M0k7{@f{VYu-pDSd{6;%g@3UuEW
      zP^W}I+wSVI&7BHf*zJ12a|q1-3o$2D4)5FV>h^$h&jk*x8rG=m(zES(?L)NMF9qL|
      zc;X*H1tK!SeU+POn6+>7hQL`zH+R)+SoZ^zZpH}40vIK)THPqThNp3vO-;-?ET`Tc
      zSaiQ`Fm=?H-JMw=KqUDB3H0uJyy}(Od9RK*?zNT?xL9vHaA|{9!ERxJ)*TQx(Ew)n
      z?kFi-=Fy6o%^0O1p6B~nd$EVYn8uv!?0G&!UV^i^r?H^nCA`eXR4*2dd`6%vKH-+n
      zCgkKu2k{EqA>D1y0hQu43Gli=pI3_e#NGjtsjtb%H|ioiDp*fpi3Lk{%jq%{1Q|!j
      zr`BtV)QW~lOmTwE6)L4=LykIXS~vF2NhJleiG1EDjb-(6*(e8aT_7%h@V+&>JAi{i
      zwhdx@z#BMp8{w1VfjgfZ4r=9SP%8(6TKURz4KpHw7XClXuea&%=h~gz#*w6N6RpYK
      zO|&I@Hqo9uzKPD{ZFFrSc1t0g;{OxG2i|4WdmKLR6YB<!;sdnfL!87%IL%*^HYU#C
      zEWd~@#}qTl-NR((Q@c2MHP9MCf|ew0KJ+M7UopOs--$h0-9_(WhkqOAzQcKkUIS|M
      zJ|@5?O!_IoKO?=*N$(59@ui~IZ-ZCqC93oiReA|}OL`<B$0PABaIdLDNXz52_=$dz
      z7AfQnl9!ZYiZUf@P4-oVJm%k9$!`dAlLT%N>^7->iw@kOPMa>Ou`1PAm1+zFBq)`P
      zDbkW^Op*4J(i3>nA(rAQm2XVmLF?Dt_>@jf%J`#7VxOwfNg|NOphs}q&AQ;9J%fil
      zGk4Z!{?#*h7?+&Pm&j8du9>uBJ>TOgA642-{x=2DX1i4tYQ{L8A&9^gOn4lly&mRw
      zPbM0kC9vI;N#g^bmM{NV}0m%w4Lt~wnUxQpq<=<GILkmcCIi_yg`yvlvs7OqBh
      vd*3ei%l5vLK3gzq`68+*@1YBSq96BMc?TQ~d{|XVt-<6f@7+58vIzYR+YYd4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4YflqV5Iwh#ZK(^i2uOV)iqaNk#kaH}X$qJowU|`u;|pH48(6a4#oey@qx_&z
      z(?k=0fIrGObGyjP1i$Q^*_m_Z+;ivG@9#eWETWP^OrWqU-^mX~;Dv6-2xNE9u{uUI
      z?AYF#=XYgqcGWe#j_q!zkPygnx8X>4+gRV)walJCqS~mw5GXbNm#8d|c~*P6*{VNj
      zuC55^oNP4r)5M12OSrOY35+S)!NgY2CmjS&S4_ut?cTCLyijbDhML#0(#TRI9r->3
      z0_r%6aRIFobxsscQWe`n)H<mn2`!B&61Hb{Hv@aywK`lmuOr2ki=>h(p?grftRu~}
      zD>O8uq1=B}#}G7u(T43>&9J*=`OoE+qwe9E(rHWI=3M>EAdVZXa+sk79T}V<uHKFv
      zkZkL1C>;up$R2oJF1}{$EgdDy3kdJ1O;Hosv?GHZc1GD$XUtt4x3Ng2o;Pq)V7yQ~
      zX$(2h@<QLV)@)XvJ+u%D{LbV@-E}R$=Exwhf)thnrcYS_n!3MBn4ufTX$zCcv-cF`
      z*=co>tLh{t>5Q>0bSBAd9m9khp-d_?ZSfC?S7W1n<i21+#phI<SMdcEUsCb3if2A6
      z%4_tUBub!6q|2B>6|-0&ZywRfLqUURf1+_~^oRdtN_|`}&40t(0ndn%(m(=Ddi-^T
      zpB!|fsIEXbbqRqSzgWb%6me>$`95xbR8v`(Ms=Wdh)4U&qhSFC)pPuc5fA5#NRqZY
      r$7x<F8hy|Z(d2Ls_fLSoV(!y14R8Jdj^TmodPq+3y?FLxa&hPnx*f+c
      
      literal 0
      HcmV?d00001
      
      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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
      GzW)ISn<^dv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2D@&7=BKYwriKHZgXn8b-G!*HWiBqA~*y$9TbXQZ1!eXX?waw+N3mz?8o>M
      zb|W}N5pM<mi-;F~UZ~H>#w=T563BT!pXYhsb3Xol`yRkeTu(t0xc$_5=Iqr1Kk_=Y
      z!08WqvQxVsbzHyh4We)}97?BO+;WCHG8~DdU<k~r-kR&zMiK%>&-J80u`v$$5a@vu
      zIt^Cc70_EzS3uid6G*PQo*Uj1SSkNcZ>34Db-yDs&|#TKV~TL)N;3_Cb0!i<3S<?{
      zqp07K!!4)Pqpq2T-*$RUXXq;bC}@PcZXj@HEbrOd;2Z|`)QS1)0-1+<Z8->C-wRU6
      zjV|i(aYm_}H<7|bhE~DE92Nyq<?Xe4y+Vvcn^zJFi25X!QApvc!1CEE<r@8NH<0X1
      z_N2EH?o!UC9}U}b!&URoogC+e0u?apo+pRvJtqhxRolG5acn2M1*T6u4qV|xIv<(F
      zkJk`e9F(WdOd4w9NqQS`1(2~{!?ddh$i9ecr}>|X5kA4dXLfwS3}Y8q&uYx#JWpjQ
      zbb%!<PvtH$X3)PBqkFVfeaU`_{0EX4?<NkAx0S0KuduK>{~QTzKlX3!vr>a%&c}+s
      z@@l?O#dqZJ0|orVW&9dZQ94qQgT;)Rn7hT|DHTts!XT<enrwBU@CHi;{*fv9z@He{
      lJ}f*Q&r+`=&RZywLJec#8ZDi6iJpcPlzFO!3RF-<<}bwX)eHat
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaiw-%0{O6vn?Xbz{>k)BYGi5z!x`rQ3|4zhFoNmKWWP>tIvsZ0zhty-IHpT?k$D
      z0QE4vL3C!70u#EJGn~VBe&09q{`L9>U>oxm5)8{X{GLBJ+K*Jr(Y$l#iI%e;wWNP8
      zf{xT$`pQC*VZjI;E!-%O;iGfFwRC?a3=>)el6wsin3c=w5d%AA$R7Gihg^jX?nNT?
      za{Kv|efzj#NbgD|!##%LS}jI<T(zBg7)aHwtTz~vhki@g7{Pc3HpUooHL1i|)M<*~
      zf;T<EkgxeJS#mO_zCTQc*HSaA#MFOYRv{b3J2C1{2!_=m(T0UJDQ8T|B7?=<kUoGC
      z*mXY&TyY{z)WX1@ZW%i)fzc|cmXJc4Zi~7EM(Gd$V^lLV*`q!|cY34TMfN$?<fz*5
      zbcc2;n4o^Tr@|!i)R7)jC=kQ2ihWj<9F3>7QQqugdJuL*OUE&6u_yb1S$!C-VwSKb
      K;v9hzD18I0GK0nd
      
      literal 0
      HcmV?d00001
      
      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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
      F{~!Lnvk?FQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+e*Vg6r62q8)K~ZYQ5h;t6&h{tSDOQ1*(YFf={w-7maK;B}v78miSOm@B{oP
      z@$4$7Q1Btyvy+)QJA3l}@$v>>6H6(?7*_821AlZwzoqJK$Qw;5>h6K>OTksaS5e^0
      z<#M|zQb;h&cO(C1F*y6@=cVhLi(;jCalnu(b(3`Q&od-WugXORYo{hX<wd&;@zq>~
      z@Pc0#794HfY|8e0ARa_ewZV{fFn~dZ<j%KZY}GV$C0DoZWfXYoHlM5X5_Q-?50Vx}
      zb)!}!G?sCYLXu&i<SB91YE(r~=2a<(UGi&OR(Rm)y#Z~+ktT6;=Y_N=-Y`6!?@v1h
      z`_gX(HF4-^r;)#5H#DD;oG2xNg5+T+!W0%57XQB}>Z(V91v+}1W*9?OXQC>ra~Q;e
      z1s%<%-M(Sb*H^IX;l2*~pD|?W5mS#n8Ob=k(}ubY2YZ;n7CqV?Na*|hw%a8{W68Dk
      q4zfR5+n`5ulw+gIe6cWTjzoM+VVXQ*m@%%in4?vXkNzkuqW2SUXN`OS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUI~7(KW2#W+YUw8%q6Ubcf!QG5ZSf?`Y>iGegy-Aw6#gTqYInG)Q%)tzg9
      zfg2Z^2pCQL0sbiC_uUz4fmyKWz4z<6=bZ0x=g;4tzX43)Ndggpp)Gw!-z~UK!>$%w
      zeY<8E)xv_~ScYydI<{ALtOTM0{b9HOAQ1K5)(nAsF${H-ZDf_8vjVXl-D=PsQ5I<T
      z>J6i)R}4!aEjbF7Zf_P=yt-*`5?I;LE%y)+pEGUKn-`eKom#J)FOkbdr)nr@LrR5;
      za{{B`1VLK9(|oBN0$nN+NG6ftT*)lQdQ`MSNurmMk^VT?ui^|8fzG078_ycs6{EhY
      zS1d|2U3AuUtEAUWJ_o_5_u6y?Moy6kl_AQB3p@|E9aiV^$!eaAaBVs^4R6KMy~84B
      za%I1p$2t*n86=P-e97-%TP{yMOuEfLl<pE`(sTR<3Uuc}$P&0pMdXQT)mUhlR@JC;
      zn<iD{p((hA>j_K=q>f`%+`zOzLXOh%hQOF#8J};tvSqA$vmwd~#&L^h;I=@f^-3^s
      z`BD;h1tK$pjGR?5hkF8Xy;d{qYIE*dU5BUyiOecA757yPVVKD#X_!}>Mt$8_GI=Vx
      zj&^O5Qxs62+O|<&v~<@s+yovATsh^-q9Nf27QIZWZS>Bgh#-bI?IJwEa;2%2D-9~G
      zal)wRApBW68HD3|J=*vII<<j4q_uSS9<o~c{2uzg$%_N@n<ZM{1^uoOO&KY?q}VH5
      zpy;4afs43ACnA#;gxn31iHMYBi!8Y-EfQmk<OD1BMne=$;@Tp`H|T_g47R1>v~-hg
      zDzdvc@v~1~k$0RpCzs_nN*?I*hvC4*BU&T$U#kBT6zw~*pOK)Y?<>V3;Ea8~9jTY~
      zu}!@cMkp`(nqd@U0b@a)ff&)GzZ|1^CuvlI5FntTE+ZFQo+kme6W98w1^>&g$mn~z
      z^P$B^ylEsZyUa%D=>%LwN}6?seqnq~JHW&b6b^7ReP<st8k^h4JZ<;!;CQkhTU-tW
      U8WB8{xh!CjR-SGy-4fdW0T0?zvj6}9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-sW-6r9!8)M~ZW`u%xKK@6TfX|)iErchfD53;69-IDHxWF!4;9{d6RDD@>4
      z?V-4^49vdS_ukCM=i57gGaOr(W7r<@S3Y(UovOZ*@KF?szS9h4WTC)N&0d|5tAXP`
      z4@F=sEHLcP(p+)FJ*fmk&GY^CQ`5h@ckjA>x8pr9Fqfgy)G9GtnH~>QG5<w}VPzmp
      zE9N8N2{kY;4D)t_YU@Pb${^N>2(;=?J>D=BLaieL+imm+bR-mmZF{rEx=8y{w{$$>
      z=KS%}%@yVAaUdciX&eh13@5XM*)Cm0>&uWohvHYl(D<j5tD@9&Of2~5ywS6;&9I((
      zD7EAIQ=e3m$=+?9$ZQnyhbWIWYip@Y!ceq-#@!@-%8Nfi!M@21D0g%k2cjiIGJi44
      z?lfyjL6Mtui*$Ejp+vYy(a)ib5{0{jWn>{&u#)2{syWuMMwRPSSs<)aMGc!1W`Wdo
      WY!SCJsouq2uG+@|DHsm(4oBaV?3}>>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%SyvQ6g@Y_#>Qy1wp}Z_s1*#ZTe=AdLU7a4{j?eCNHP=hDEe8h1Q&jQA0^(Y
      zf~Z|M19Rsb&OP_>_Wtq;;0iqt4xxW9R^lNnO|6r#6j`3iB#ca!TOu;LDolDdeaxi?
      zmvFpU{jDN2MoOz{Oz8Gws}574m*J!;lwJ<cX9PDgiS)6BW`J!p2(4IYd0S_5Sxm(|
      zm4tR|79yRALRtJpy49U334^uke>xs=EiJOO-=9th{>0S9LS8FdvGZ%>OPfFlZnTy~
      zl!~&HrH2mTbn^y&?2GH#jo}2uW7@-vot2}<Xbguh&=_1iW9Nx~4t#$7H9KVG2)m4X
      epDF~{W5jywqs1N$4j4H&M4O|}4B-e}G(P~Yc6QqU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc^F5dNkuZCMtOS`kWtRxWNYvVz73>m`9iM5>8_)ELybrH8s^yW8w;jlTOk
      zOnflDYN9mJgdgCK@TaJAcAJ3Q!o&8Q`DW&uZ{|#Y{rRy6U=i07h!AF88*hxay61H4
      zhVB`ywj~<+iqmRKV8yY0*Rc|a5hjig3<3y4EzznAx0m1%rnai5Bvc6TTc&OLcL?j+
      z36cM4nB9EW7M0UU3pGM)#c2oyQ4FX^KqbtbL?0**X$!S}a1Sc_5GM>*O<O$b$bL4B
      zx+Msys<UlaHN!Qf-2-F(E0Y_YJBxbmH|BE#gyLDkLsf)CI90AP(iHx~LnF><h12Ij
      zNczr(@0xa#kk$%8Y27mHrXHe|1SSZh@}UmG%blGa;VQ^rQVwy75Y-AbIn<nrF^o&k
      zB^5K6<!3b7ZDBVE<#5gic`8RMhSZfL<_VFTxg<0`%Q?xIV=`BG9m^+-9g*5gB#_D9
      z8bR4`I_|c(XUYdkAKKUj*%Corvu$2V%kVtmC9p)$j$g{7tHuu|H!hav#fb9%g=Na^
      z;9C?i9!iptezqPnF8u?=QWr|G{2hZ|*^FSAe}@9seNKD;1?xD+SS}352vTfuBF-bt
      zWb$@_3q<%nii<sZoloiOD}KY^7runV@c`Ti2-Ps4N653oI3rTqCoUzmt^P#jX&2dQ
      zso2HzF7i)GsX2K>Z-2&g_5+ks>T&?fD%qvoFz9`RvJ%+)`1f~d7lr-u^8x)958)Y?
      zea<CcU=lBphXD<B++cedjRXCz_T(jT7e$m<V1^^hxWWxZun;t+<0_vD`xg1ThW>w)
      Co*m!-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;+e*Vg5IvLD#MWr7_xoLF6%4+r=tDsiL<OY}zHQsZM$(NYspvoXpr8mo_yK;D
      zIGY4-6$!~^X3jY~bLQ>+<rTm>mMs{BxeIYEZk*6>tA-Pb)}<#KPQ_PI;CoA_x0ljF
      zme8+JjwjT)b5y&K^@xyFq9q9f2VbR=C~(#JCc)ftl^bmnhD)90a+S#yzajI;pvQ&<
      zn~*7$t2q$*Y;?gS6b@V^58JJp3{FMOi!bu)!mEnF)p454Mol*)EX23`H-&CWUbThC
      z=pRib<7}4CbT=b51~Eh+|L0&Sh|t{>VN>@Wcf7ATQ#Qsi!KKJg<|ho5%AI2q@+W>f
      zsLNefk7K7EuW9=@+*e8l6;Fhr3@t1YCjVIs8>m-<d3G$r%On`uHvY@<W1*WfIgWNY
      zZ}6F4dFFTZ3B3;-87T0#FJ^8rew(p7=;z!>f<_So95F9eC63vaRC6QMG*?!iF?`3U
      zM9<_pQ2C}~e(IPQ#TeI%+NxB?;ZrlZxVOpQGJCO%od8mqBBn9ZL4HK<{jVO5{~#Nf
      RjZt&#nVw7Ey?`a;J^)afj)(vN
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O-sX25S&e8)5g?l)mp9JD6|R&y;i&w3PRC?r3cYN+CFMZnv^6J{Z|TpfCqno
      zKT6z}L=X?{A=$T+nR&aDukVjf0LR$Upb*Lf>)v`W18?m1%)lCs9MLoDo*Vj}qd_Ii
      zOM>ZGZr{A@3`931sNv&C5O$jrw0kY))ClQQ+qJ_p!hU5sz1n8;y4MprQkXTM!62k6
      z)pizyIRi6D6Y@>l6&K@SNBAwP<M1Gbrq{Kcw&mNhPe3)ivjf7$q+5ADtuI13Dq*iu
      zoy7fJC=+^Dp>Ml=!cwA$(}~fVjuO^1tP-}T#baO@MS_0ijs31@*m4&m$^J-+xjlDX
      z;ny822n27V%2CxFP9w$tkf6v&_>_XmVPzP}a@Sy7;i@0J^K<x$+%tCy^8B8Ql-JC^
      zVeT#F87szYETF(0>mpZTw?!-^o+ek~Z!-rk$UX5Pwo6A~FS0RWLSjR5IY#6_CtRgC
      eBgJo6`L7@T(Pt99f^u}rIySiKtS|AiiR=%M)smzD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8?Nd}$9DdH;yDV(0!n(Urf*@M4FNuPZut*7tZsAL=fIw0gxxiJ}-S#E5=}R+C
      z9~!5ok6P)_I5AT;Q!@#Zj-=n3{)hV9Ur{~h++|tVJHm&(_nhB7&+qq~=l24C{`+VJ
      zz(E)uxCHiGF+MV`x8>4>)Kpu}n9t0aQ*FnMyfJ8{%zcT}blL-5pwa1A>4?C#c`Mad
      zn4UJXN$X=%KqREixL$7aOsBK+Mm{IdGCt_!?^t2VN)M<*ae=BHD`n+-1rE2W(`|D`
      zYNoA!&dBBBo5I7x0yRl%CS~LcS@Jnj;iD(gyEQj@e|pOFLPM<&UepN$DtyJm!!;1t
      z>4O_pauxK!gDMYR6lmJyrt<hpK2)PdV24!nOksY~%w8}i=g8YXn7(Yx4I5cY?u$k}
      zKWkCNy^boZ%N=EOUzLgp)K!QmpiR%`SptrJ)+Zyhp2v;MDwn`Uw^COpz2lqbJdu!T
      zi&w}iU2YYv^Gdv}hxKSzqK8#zuR1FnZ(ab3QC9_UOU0wGdQSC&cgD=yl}&Q{TEm-P
      zN1&FN)9YJEYYnrp)Q9!`R%hjG_sK#glg{SNDH&$d#D>Sb2;q<qhtV!YGxC>bO)?Y~
      zo75RzYWlbYYv_{THwa0y)*S<`Ay|#+{H&Q3aHX#jGREH(f$DrZna^6O8QELmvVyX$
      zaS!?hLb8wS8DN|3(c(oPPRPa_U^%yjhpTZ)z+0R&-Oc0j``bRegF#LdBa<;xR3=uQ
      z&|;9vxORYeHO`Q4tXV2`&WE>ftQzOpnU~_t>xN!8PxRq}j5Q>%t2OZ)k0b0y!poCu
      z!_Sdr*31>=*q8McN)#FKg2{9td)XYY<c!$1+VcCQL;}7<DrIKXpfqzHyf4t;G=o-A
      z0=gXY*uz1j@h^i0mmFhUx#SR2Z%!w^<*4%F1=@Yex((a;{)DF`t|1a##*T>VA^h?Y
      zi0Drc8r5RShp7LB-!;6<XNaeP6MPQP*GcTaDeOXmKcLz6g9bEmM~~QzCdQPjX7Y2P
      zg==5YvKxE3l8pA17`>txea^j%60#XJN=89lQi?fn8RFStdKp12E+U9g#pRIgp~NLr
      z;u6BERKg|w<2C9d?;b)cS9%#gd482&xWq4__<cs-I#ET%6hA(mtC&g5G+EA2u~{;-
      z6w8S1r^K>SF{xctv2@ZdhS#Z}%wn6;5^zU;Mg7k-xKz5TXa+u1!EE8(#b5&a6=)+k
      z@L&V@h9mfZBiO$Y{HY`OAli$xGn8K@phY{nh+tHbZ)jga$8EUv2RB`!L0VQ8{`*H;
      z^K6&kEeiSt{P+?9++ulsr6SoS*isU-MHL?VpXuzRj4sCIxU-{+os2CT<eDtBBe&s=
      zK7+UexAq|V6yh{v`(ykqU^|xqE(7=FN3C}eJzA%(b-EYPBpEig^J9I`ZBwt&JM~4>
      z-gJwgTiVJ0ub{5{-qb{6@k-D1wJQyvjx=twHtulsHS6&k_RF`3;V#p34;@$_{qN9&
      z`#6j5aUP2p;(ii8u%dosHQhr2KPd@%?JJcexQ1@TdEpQY;u|T!0rsyHL*ugpN72hF
      z>_QlC(&pw#j!0V|{83EL#AEc0F5~!M)PHgbi4mEtriQx|%zs+$ONl!xcV&6|JL-RT
      z^?-i~$&sjkcy%98`z2glE7x{4nI7`LsU>Q$%+&sddOYG3dCW>*Cd(&ex59bzJI>)L
      pd;M8i+9!&4uI4-##Tf5U$G*1H?!vgL>-TVpZ!f<IOyC35{15P|bg2LU
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-}+b5S=QxfUKe-qT*Nd02eo&J)wpKgV9Lh!CTqwt|d!L+AcBvG!Om&f0S`r
      zmc$qi-PboeZ{|(s`{(lu0IuNFgB1d;F`d!(K+8--fu@sb%A(+o8am*Dc~Brwvl&53
      zMG`!Y#w;`*tPyA~(^(CHGUoG?j#9j@wmW?S#Yj;u9D6|)r<r~u;3v%7WO2;YkbhVm
      z@}5)^Y6zUSJA-8%x>>~KJn0&(S%sn#_9QhoTw;q7h6ZfLQrE3Vpl$<FB>(cz*gb&;
      z{(Rt}lA485M1RU~-3<+&%}01eb6h`XLU57b0NPN6CJWlgDS^sRW-4SoZU^=kZ+B_!
      z6R7ruVCpudS~KmzF@dvXb1hUCeGyBnYyn>xhrm<BefhWv4@zJ+Qih7d^&G2t+=mSp
      q-^_UpwjAGv9f$QCccJ0<UXIPY&b~!hfdltFgcf22`yb&sf$}fxMT4XO
      
      literal 0
      HcmV?d00001
      
      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
      zcmaix-%A2P5XZlx=IM22Sy}cwh{%GDAm|~nNDKn$K||<q)uk@(_T=u2`m>^kprAjX
      zKPsBNd@vDu*qz<k&wOWg=Ii_Y6TlHR3?v9U58_cg*`YsBJv$U$-<3VPt_EJsS5e@*
      zJ2%gLX&^<|nnaFLgmkmst~W0TyNyZkxa=t*Q|Y>na-u3BxmRuzQZ>IPGnm$5@=*pI
      z6NH?F8RXej8M2FeaRS>F>dtOOfurtD%k3<qa~7tMCgdBAlGg*TBZC{!aV4S9@Vmlo
      zi@?$M*l8k(9OsPgosf+ZUd-v*|40+emOlu(^3u^tvm+ll)G)!iQc4CjSA?Mq4XhD1
      z|LFkd)2+oe7oFsR5K6joJ|&QW!HbZM2c=(u+z05kV7|e6#q0|^5-9L)vIS0H;TZF=
      z7f9)D4a2Mau8H*i!5bFF<IXtcc^p^#rLY*6z&wgrVvPirW7QH?*y>>rR<Vxk4`-Tv
      AhX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OHUI~6#i~s19h-aK$K@ez&?Nq;){X`6$B-a2x)?>270YSrZZ(aLojjS!e8Oe
      zm0L{&j3l`CSNKcRb7w{<ZIv|Bd*{5qbG~!V{P^|l1i(0!CHNTnc9cD3KV3F#J)bTs
      z#gfMJ>3Q8QW)0mk4NXFTp{t&eXTT8JQ#6~G8Co}&g<)D#^g?=dYlm-J8HS*vW{B2P
      zhNe|rwH`36#2xj2G8tTdUE-NK5Vdg=Ifg*i$n!A#Xp+&0%M3&H5xg?o=!sk-7@B1S
      z5fZnk3<(Vkk!4lqD|T^<o9oJ!#zi&8wxZ<}Qx)%?Fkrn>iHH7+N+DJP7FEMAe37Y}
      z7lWTzWN0XGD<{}yXp1Lm3ukEjYe9Lm#}jqvqA2ClDD5sO=USG?h0%}e5(bEh>W0b~
      z#1QqI@7jvyVAN)jcp>2i!@!yElBV&3qRpBGyU2BGet(;nEY;8(kf5<~1|+5%R;+B7
      zN``6id>F$>iN=kHGAba}EK}7B8PQ>;(z8V6ScWUDCdIRrFu~AqmW(T&vsEq6O)(*p
      zGSavi#vR;~aQ9r%uC0vwm|~EeL|0!@+bUD?CcUy99&(u0EY*M+2H#XnygZcg2(v_=
      zQYvvh&oEjU$n&ZV<mH+XA+jRG<0{X8rcmiQ$q-&MY;&70sA7bhE7p8W(8C}v={h&F
      zno=(FvV^A$gF<o9R?;|&<qY)G%J}Ky;-epJkaMH`p)-g8H8V{5OZ1i}eSps9Wa<cV
      za^wJ!<mdrfK06+*^dEKftK|2byw(uGI@(B{bp6ndEA&PY(1EKIRon!k&$(SAOg~9G
      z(d8kg=@eGM<QKGjqKgj#Cgcb=ozSvt;Du)BMh{6ux|Pn6YUg}i=U()A&TlCb!O56^
      z<|BFtKGHprIz;R}nvOBN5se=q`Td=bbqm$Whu=SwsdG$pIy@Rw-7c|WQd$P$urLbS
      zL5{i6PZ=2#Uo67*(FToTj7}z|+skIr;RWbD#`s3^2)DlC_7O7C=|ema)Er{&5cAbF
      azNx6O*F*AQ!J+X97U>k7U83h18vg)h4R-nf
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvYflqF6g>mj=OTg@!DrDTFQp)gA{E`%MTu=C-KEh_IJA?xX1hyvw?uyy@dJq_
      z{s4cJ@y=~kjAWC!XU~1iz30x4pI^TNSjBb{LjtoO<&peUjDnuuE=IC@=&5#b+Y4k|
      z3H&$=yn^%jP$e-UkUuN*bd*5G+<Uv<u$;X{U0|+yR>FU^Hw98U&9>?<1d?U5YSt^3
      zK(=Puj@8(IY3@+5;a!u?(T3Hu8s$G%WC#EK+^lWZcB|HY!*nP=(R@?gs}V?*TAu5>
      z@fKB?UuX)9RD!lj;bOnve5m4H=w~31GcbwElv*0Z=jM5aq9^@M(T+pc?`$qK(-b;w
      z;2aVuT<v$CkCflm{B;9K&EM3cNXly|P0tueY5KOFOGdE@^Bw8>+BIt+tzC0^NXgWK
      zfsCe>^u+2&g$IKsb^JX8S?w%Rse$wN<*Nn^?OG$3&AZHpGUf&z8W`2CM_QP`>vfsk
      zFmN6Tfw8LVt9q|{ph8C;cuHWR8nmR>l%cEtnap4qIZ`kF;6`M8+2uIB<bMPrS?!<~
      zw$!$(D~+Gt__B@`Fm`-jg%wXmk&2R_y`TBGPG{1M`Xyq9Bp9X#oW``?0HJBEI9rmK
      zE$PXYL}W{Pu_bZXk`iobcCtgXnlW6Uy5sbB%+-PJH;8u=6DPRz1yhW#Fuun42ID;A
      zTZ{{g?=YTcyvX=2<7LJxjPEmkz<8bU<6~~)37w0yd0>t9xQ;1opnwuq@QltfUcrJx
      z=X<<{N9-nN0VDd=4%*+MafXObEH0g(^tWz?S(_wtIB&8ag{Le5#bb+Z5yU>{swUkB
      M>P663p?lN6081#>F#rGn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_eS#uOs6#njHG8-M1kr0OfSxC%GBaGk{6GS005)2R}4C3C&bV6fK_t?_|!5`s*
      zfL6IZ`eM0MIf*4z@@SPWR{7$i?=DsT07buhyGe#g7x3Ui?mhSRJ?DJqobQ~;k2k*i
      z9>89>NyG&D&l%^9#bVuUIF(}EsMc(=QY_i7;ZL}Z@40poae>~bSK$MJWYu!4YNIM3
      zO7dhZ2B&n*Gv}<j<vIddqgF9|bK3MQx59^$0-fg#yJ2!~IF?@*$WBQwMcZ%|iYI-~
      zau&t~QnWo~%$l|ojl~tws)S-<Kb`vr1P<nv{_SEJnz>jr$4jNsWNEFhLRla_;a1EH
      zI?%0Q6SfEpM;i@859}4nX$ah_p%V!yZPkzrq-`2ffwV(I8X5VuU&FfKZcu}Ut`vp@
      z_)*|K4eQY*rM!j>fuw8Lh%SK*Q<h^MZ&YVZZ^oFlnYHYcJ7?Hs!?WZ$yo~#2EoO4?
      zj+tO)<35uiFmlJYL6ia=EQMT+MJmhE3M7K6@+^xWa3MNft$ey|4c1oWZf<1dG7F}E
      z>?ZL#@&yucU2qlhWOKf-)>imvg-puIO)@L}74~VgHoeN{6pyC@-focME$pU$@>@PB
      z2NX}$SHyU}R46Awe1ofWpR{dr!LSc{3yrGj_=gwg%$m=>N#O`9t@@<jZTS7}e80!`
      zAVm-3sHEsK0^LE*Z|NJEk<R*AYo0Yp<jMC!IfWB^YlI$dvBvVvdoJ5I=DS>~WKha?
      zgBDEUlt9la(%|+`!?G);Cp+b|hLae};0#_&;st???Qb=_gqJxMR1_!X$@5mgCuYx?
      zbN+ZlZ8Dg_(G*@IqOpE?nAI=`&W?mptC<dk-K~bgiLusDh;>|=n3pCN1h%mVYuM2G
      z@H829(rtKiX33J>wyBlEdt`_lX_Jm)dK0!$ubcHGn7?89;f@1{>6UXSKEO`z;3!Tb
      zCPxRQm>e8x=h#p?hlbiYGStq2p>_@mwR23UokN2Adc?_zEbZRI)6cY*;y$MDTE=F5
      zsEHnZxQU$J6K|qd@9u13yWW#%qEF8yn;6iuJDV6*>xfzlUn|?YxbET50&2wh1`&B2
      zPjz&|M=u%}z<G?|0(N5&58@&o!<)FDub&IN^L`Ic#DO9nAT}xOWjrw@?V}{KFh<=3
      z@k{9;`sh^B!@QG`kI7NV?8x{Y3FG^V79^^>jxU#z@#Qj2jOe*^6Kmpoi(cQR?{^sA
      zyNvG=<9m<sU1oe&7{^s&e4p`spyI0q-v8J5WTdjTs%~=hlO6I-);YttAH`@GeUZD&
      zWvBiPa$iu0K^7{ZE<aTOwctSrP!RYSZzMHZl}Em6Q~oScc|20N(60Ptr1Jhq*gfsA
      zmm`%QkMum;?)iG8@_|Utz3rZVh*W+e((^#O=bs{#pTxn4Y;XU(E!)3DDj$l3-PaEL
      z*GT0FJQaGLWoyYc8{A2j^j!TAniO(ZK0((t96pnMdKr_~b+&!qYO7~e6aL0A@;kQS
      z57Pfn<z-7?X@%~C^8Xn65tzcU(BEbHlPx@Y)1PvjyYew|Lm`5VQjj;v?H`3Gjw=+L
      zPc106s<!`|DE`3^ZXl0;u}`o8L`<R413xQhMll_7e-zJBl2MOx1j(N$A%CGlgh$jF
      z*l`UrXY^&1zs2**cqRMl5)1<CTY|ZSvuza?>6Se22z|z2sZyT9>)d5?+Wd2n{tp`M
      BC3pY;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95IyT$92?WnHiU91g<c?b01I9d1*A%qDn)>lDysUnNtVRLv5Vs%_$MAf
      zf+F$22k=pdnRS4W&<A^GX3v~CGqXQ_e)|sKF&>&Q1U66QTlvnP#M5ZtPvrP4R0F>q
      zL~8didKH_<3tVA{AIfOxzv!K+ekxFS9m>f>V72}CZl6O9fnqa=g0v-2sV&{QT>+~T
      z3?rFN6D4qM3DWdh4Myen<AJh~!(|61Rs?c2w`+maI4GbfP-c<Or{kVVj$|(+vbA>H
      zmtj{X0sFIHJ{<)lbW2OQuuqa*{Wtsl*>8r*Vizn?z!|EPCFr&V)@$w}j!BoJS++Tr
      zX@8_h*>*O9i>0|IJcdmNx3NXjRd1#;q`a&1qs#Wva8GD8aXM0oKq-woX%a+3Uc|h%
      zEZVTKi+d*aXp##%bZ{5j0(K{!CVh1f@N6w^^$`Q9^TQ}oiSAoXOw<K7_~L&Z&>s02
      z5g{#*UY&r!+aoJawuut?7I_A2T%z-sEQ3zl`wGXae?j>Zc{!}oe?>DiDYHd6Pq9X^
      zYKF!-D&$d~W~bqh?NEg*QYDMt8a4=>RlBaM`8p01yw50qB(R|i6?Ni)E|8HFW(5Rp
      z;3nO&)MtcdsSYRC={v`*4+|VG=R`VxL^`-ba#<41dB*lc`#_1=&atzo=6Fs`X~tyW
      QzOGk;OQ)?FJUoE)3lV(9zyJUM
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T}uK%6g^|=wyUMtmwgxo1}j8M&pw3|2!an*5B0RVldP;W%g!qH*Lvs&^rNCX
      zgMEPuJ<J>~=gv9z&b{v+uWtaZaAG0HP@nj7f8i-P6M?7vX&mvu>xF__$TL(m>qWj8
      zd;Q^rk5Yz;9|W53g(~HOCk*FqFH7Vrsoi>DD2yVhIK!H&BWKLhjudGkBZlkM5=*{$
      z_Y(7VYo*IFrOi<K5mXGPZtLkE4|FG8@hln6+|>p;qp4HKq86&9-(VKUGD&%m+5X?!
      z9~p|F>c?D|{wd5$6F4`E5s%YQ3T0uB;UeoR?*)w_jQnB5zn@S=37^V24deGfoPnGr
      zBYqo3^xL-PF10E{xhrU5oyb>;lie{xBg@XTOjYX6iwsmXEe&APQWQ{xUJeWE25mS7
      sODG%Mz^1_pss^`EGq_Fp3_GNfC)_24eXWEX>gGPcA)!Ou5uFC?Pc-_ub^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|T~8B16g^Yuw$!Cigi2LZ5Tz~3ir>=4Xqq-@(okYIHR_AgGNDVB-P+v}{ZBq<
      z)HKn=AK;HN-aFl(fYFz|ckY~X=FYjZKYo7w4qy}I1Y!a!`|?n}wE}<W?OK66=(}py
      zYB-*%9x5+fwcqts0+Rx>jI&(n?ODyvzUqbo@k*oFstT+&{;yFIm~8G;w~5uVpFXo`
      z*|M8E6g+vL1m?8HSicnx9B+>p$#U0qJSTiCFp)2`30(1aRT8tL(slhnr9ey*XE85e
      zlq2Xu{<K!1Jw?#0i8zcT7D>tPE01gEO(eK>ku-x)4ni(oGLhus6#@pK-{;zji76NY
      zGi=WG@Svjxw(PjNcfTv$wj4OT*2NSiaGe{QW@_F<3TH?w>^T8-s@@ExOUbcL$F7zN
      zFPVGOL=o!(!ar_J1R`sCGU%}z+L}6Z?wGiRP1*|mv4aBh`NC;01X3-3IOwXH!`-Kk
      zhP}aK6fo<arv?>Q27w9^*b-R!=X~j2{7SG)H=UrD6-SP3rYy(S>PT+tNDfkru^klS
      z<g$rr;-zUNHJe`MH;5N=Gb3a^VL|8Tbe_}s1)VSH{IbrMKWfRV^v#kaP$AJ87E#A4
      z8sy0nihL+A$xkIZu0|EErHUh5E3SXR+Hak-Zp9{in}+^e^Rr_#3i=Af)0Ys)@T4Nm
      ztw_@-u8(lzy*`!uGH4%o^@omeq+?(M7VT$vdXWyVnGvVnZl9ESt!2zHAd(Tdi+iWY
      cpRxAgL=U~ckYl*7Q4jEtBL7nYk5IzYFa8;~PXGV_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOLH4V5dKCFOHnqqqxeA_Csu;vNV1*f{Zit9Um(Y^9PFqn7pm6QU^cbdRqd{V
      z6S#5Y$PrGQxKIUESgs;faOcNx<wo(%?Aq8W$yGV*OwV-p*WKTC&tL!k{s(~9@hF3Y
      zz||+#Q)}N0ytdmg1FP9`WW!vyUAgj9x?u(>fl*~*wnN)7^<{16iQEkZh6Cx_mQ$C0
      zV0-SP>au`X6S%PCxj|^TVcl}tGX3}FKb?Wv!x@28_^c%brq|C5IlWD*3SmC?t)|@c
      z0y`u+y&WbcFwxhWJ_C1b*A5p17K{DO`f7A>QTVk|oe`J3hRh*}O9qB8LLwqm)3Mw=
      zGh(4qs-J_vn1KrzRMIO3ayYM~2?GWO1cnrw8|~(f^tY`Yhc)Eay<PHVkv*Q{%T)M<
      z9SBUFogRx!wmjMm@5ylWG(*W^iS%cvP!R<ti>1C`#8HNdYk`?F3{Q|EkPW@9(6`+^
      zfsxoJA|tx3WKa?q*X^P?imn&iw$qS)7PA6r)dP2PC}Libdb^9%7^hTM7OxrX(l_{5
      ztyW9A4T1Sy{Ob}=W)X+0WbqbhsuWK3kq-Ti0)Dp(?<jO%JeAV>%JTz7?OMcb@4$Ch
      zsA^XoZNb0{ZVBXkX*G^!=UQBf?Zu5$bzAL_IY_I?o}%^2{;q7P)(<jR61b#UrFpe>
      ztjS<Spm3zv@WL%UkoI%cR>xLZe9SRdEusHq!43+p7Z#%7jcjvR#ymUAQyq9EVxVVc
      z0_VT<?NA<-G1Xm0tsS1OBk8Gbo$SIqWyWH+ytcn9S8X*NgU6}fR;39TRo9jNl4Avd
      zBpF)*H<Y69qoqff<Exq**ExwvzIQ21AdLZ@GCU=a<;OwQGRIW!9AWMm+6-Zs>qVZL
      z^iFdhEzcezU!FanG<SgU^7R8;{#CnO;X0;`_PIVI>~jKqg%Ny>N$ScBP5@lRHSS7M
      zfrOS+3JEPuF^MEY7Iexgv`LM!N|%4b<)0}ephBq{fNwOk5gEkL7jXlx@+NZTYaBa|
      z{?g_AZBOTE-0a~z-tGKd4`;q1xD`8p#xhjoxfdut&X*4{$Na}TF!OJA@V2U@gZJ{4
      zNFL>V2Y3IEF{uC6_l)ra=S}V4Gph08DigSe56Q(x)TF3c)b%dVPZ61Wf#t{f)kA#p
      yCr>9C`%z<!MOMc@BZn&1h?2m4taE)?)SvpGKEQ@Xt?4W_@lfT)n@{;|<J^A}gs{i}
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmb7>zfJ-{5XQgZuQ@;w1eL_X4$yEhmJk}$L_=(lE9@57;F@EP+#kbh*pc`YRwNca
      zfRAA7dl+YdXkubvakD$Szxn2yy|>SoR{$rdq!A+=--`z^vjZ>EBRde2sVhfzS83VT
      ze4$)1aOL@ID5s(FbQ%dl(Nx&3&|~}if{+iSuY~JJKVYzbc}AcsLayWKAQU=ugd54^
      z$9(?y^nTkWq*_X=kT>ya%^@T@-bh-AV>1g28N!zFa2-ts(!Vht2!*aU<OYJ<aK1iF
      zgm)?+G`jy8qe&=LmldlqdZDlMxLI?Ifs!#$WM7kDY?}T|yT%As&x`z_yims0!C#Nn
      zFqJq2OYwUXDo7&5YnrndHuz&DWH@H|<dj$9HCbOE_q;^5I9iOEpOs)B&%5jj!Zr$=
      p8G#~4BhY5ju&Mgd0z1DIn%um#R4A{gwF2`fW0y4udt4pE{uhC&cy0gy
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~pIg5Iwh)eh~{TrAS3AirR*cilQO~mG5CdbOxuRJ{j6b!<3{ZZHGsHkPkXz
      zVMb^C0sbh*-J2-2jW0eV_uQL3cX!X8{P_9xJAip?hY=8%IM!O)X~D6YW~Jb0C-s_M
      zDLgYyb$e>Zd}oCb6d2-|LQOM|3eOLZ^>RZXXlf_AKyvTm(?P>F%%h^fKt*@Twoz{w
      zmMIWw>1M^U1;Q=ecHE<7!!#O?1$J}2{Qo=2m#C(7tD?uyhq!_m1_k<Z`BD@D2?hNK
      zF&b77cF~A}h>J!QL=h4g+%rslzj<<~+b^}ln(WRhYqgSQ8@%@pgN>@;2xMiQ{}zsP
      z2(k{eaNneZ{=TWz2#j<#?dn;~zu~$k6-?lofUy2n)(aAdR5ho{UCQ2em~&gf6mF8b
      zM|xvl&Low~_i88*r+|&l!9?kx<jp1~u{WMb!*XXCMnPb-d%|l?qgK)F2<8R)*#;{y
      z%;6quzR=a3XNi1?BOWMth(!`YtJf*5z-*@wze9UU_tF(3SfVD1*$#89M6fInEoNPd
      z(Uv?F<E`vO*7a1uEb?@GU^VTszGd)WW76Pr+?jx~W170XUeg>$cf!~d7~>DVqorx`
      zUx7*TQXl<AK?K-ZgaT|Vxst8qN~WSULNPH6P`pCB4>BIesOPw(PPZ|n&bE<MXWB@q
      zW5G7kpC$J)y)%-(O8j*)=mz50#4xrnhHZL)1<K4(8C;>25mzE4;u-=HjT7QZGq_49
      zhy+{At7eH}I4Y!0pCkK`Pyn3Sy=7NsNxKn$vV?FQH;A8L+j;jCXyv^9)YYx-YhK7}
      z6gR-TCV?FCJ>)MK`qWj!D_^qeOHOu^-};iLeaWeAa@ChS<4aC=lk2`@@}bxBF^z-;
      zTl|K(*U3BQxT{k0XSknyL@&Zg#zhyW7_YcEP0JacT;z+(;Wjaj78#=1k$2J4I)GIv
      Q>KfSyWJMm;2H7b33-N9jlmGw#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O-}+b5Pd~-WdQ*dKTuE+6G)63&zy|Wghb;3^?;`WRhO(?vIT?wG!Om&f0S`r
      z5Hw-ML;JQfeKT)%rXQbg?*NW*U?IY=+2PN8;3&T@+m7N-T~D-~OLrgw3sHu&b~_%I
      z56)GyBU(KR3k)06NEfaY4Az6_4Zo`8i?C~@n!NX`l~8|`!9E+bM7QVqQdx*I9EQcZ
      zk)+V|c+(SO3PYS^T=Icdq8N%ZrPLS_nxYHW;xuQvK67PQ07Hg2b-y39gw8Z3-i227
      zO+1;YXm*UHU&*P=e7O?NqJOH@Uh{zViCP_GVxu4_S7~p(-|hNAPqhE@_Zkd2SJhu+
      z>oM@9`^t6Seni+Q|Dmf<A$nYm$uvYW?%y&b`|=l~@K=Tk5$s``&Rvh<+op*}dZeiD
      zH7P}K>T#t6&DuUgVcM)s`pyv5ou+rdFh^^io>P+EiiJfw#po0zw8@e{k`4?@NEu8c
      wGs0zqD_Av{9oe%O+Sf+*b!-^_CUOS1ux&7p0%eI{$Lzb<BeW@JkyZ(@FLT`+g#Z8m
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBr9h6n-uVd2>~W5wsOWYk@3c`lhuB&|(NBB_xzYDxnpZWF-s9Zrp5`wqN?C
      zf5QLZhdNd0)R}&D#vj$`Id>Nb36#um_TGEWbIy6r%lm)-{s+LPXa~_JFtVfVX+I}g
      zR@<y5T3Vx7*Q<#Y%XV&O&1Y5+{xei^hN(*x0VQ2nUYSdmHs`a&w7`wr|3an&!i$-?
      z`IW^&J|hs!W%HTMY+fKFzY32^0+HoxdbMz<QC!K)EoD{({HE5>1)|bHqOO_SiK1g0
      z<~Cu5j8@TV+ZB2jWjan*>V|1JvjV<}_!`-!t*RbGOyJ5{;e{~7$ykl1R&hq>jaDTB
      zQde*l9|#1dJ-qRW4*%)8)@r3XF1&!s@wG4+UsKSJKnT}4X<e%}YnG|=!>EEFKipyl
      zh{{pJ<m=lCLVP{Obnvy+cKCimL74AV=EkVl))CMh1rdI^OF+e@uI=hJ8+@YR90CFt
      z871FtZ0UAM+p0_Utcq4&(`<v!-etIGY@3?Xwn;(l$!}VnJw3$;e7Mj2d?^s?F-y4|
      ze5F9ac@8S2-~ujEEu5Os66oJ$@&pDu=yUlL7|NZ9@|Wgeq_J*g4vwm$KW}Sw0=wK9
      zMqz75uQ;iAIf8jC1d$OK;Oe`*<Gw1G!$WEs>tthjrc{TT)~a#y$WF>KQcgh@-x1;4
      zx|5eJ8JmcA#C6n^)Oys5!G`8kYB~jX%MGr3+_*+^mSm(p6cw!Cdv3l3V##u9x_#DI
      z9h*|5j^%m|VqIYPI8pcZVcV!zb(?Fpq2LGPBlroMK|DD@imR*ODKv_FPph}}!ZU%f
      z(`fBYIfBQia6?qPD&bKQUkicIf~ip+<r!A5DKM}@71Wwd-6XrIPFII^J+8cLQX$j@
      z&ZR~V$6sQaj7bH(Hc{@a%b_JZ-=KMN*T#au!x84qcbA!?O^`KB-Ifi>we#~n#7!!S
      zkJe|1a-_+oud6)BQqtr~Ns}ri&83tyh$Q=X3Z$eNAQ__H00s#!N~d>(#(x`cA=aap
      zqL=*#82%F<ddCr;Jl^n*H{I8dyyM62>$rD}yRVbpamsy7ydwBM+WWvNV)Q>rVWlXD
      zX<98w3h8SM;~QKdc^zqtQJ;^KoWi%bheg~cIgKUmeq=~4p@1T_X^CW+G(MB)pmb<k
      zlAq7z`3src9-aMk9#AI_a8JGS1`pJcH%M|sJ{eI|zCR%nHffzbrD!yXsJeFKnJFX$
      z%wU#$@E6nBC%>3bAH@y2bKhnt6Iv`h+9a9aB<ZqtfMZC%q%W6?fV9x1w;@;K$XkGN
      zUX(aA?jBBpB>U)B53tk?vm;^LAo@KRfo0@-j9=ryA6+rnry5@%e%%a?J-<e>+w-rd
      z8q*f>j2FH1W1Rl#3!GOc_fdL*e*a5fH`Z?*WW<ihh~W{|2yKv8hlg4s+L;XXEgr8E
      zA?3gD;{mp!`aZT*N|8i#*ZofJqp^=>chbLi#I1V1`tV#*W1~fq*Py^9I0*j-b7i_S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`zK?=e!5S*>m*jmA(7jK>ozCjQQf`TuIZIqUnNMgmedGG-~O5AwwVRo2Vc4j}{
      z*BihZQ-OpqZ`DIRWpJIXWl-0f(X~7{e-}szv$&N;*^AttT3xX_>bco9Rul50>wKlR
      zjbV|+oK=h<6s5J=Z;T2-2Z0G;(bv2z?b#91NZdvkFoygykU;$B7#VZUenf%n2X@dk
      A>i_@%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>ZBr9h6n<{V8|hX|2mxcnR0}4H8g1<x!8gEYYD5I2ML#X%3hOKzOg2vQwI6Nk
      z@92k)Q)dXwv@`wyf0W}ncef;Lw$9Gnd+xdC<+;x}XWxJL=N*8ncp5`UVDh=~()gv+
      zYP9Wosb%c$S+ZVQkuPO)bFH%{V+aeJWSf#@*xRLto6qHzBM`QYT`7>N^{!T(rfF}N
      z1=7-JTAda7%py~>VJ}L{=m?0az=ZFrYCF<ynGRo91V$~xkpqt7$F+Sv!*#i3bk<CU
      z5}h+`)43s#EewLHR_H6P6YhmZT_!Mul!g-+6&NZM*M}i6rXhkTOXC`1h_iG`!!Qyo
      zo!0P~t2?7Xb9HAme2%!lNX@k6QhRq(HrI?zOR>_}GOTr@Y4X`qhMgU=C6HI({-1E-
      zFQG{CSaT2R%>u*Bgm<B2Pajb{5C`%_+ps9hSU(4D&C10m{O*eyiqMJf#_{TTMgs92
      zqqV~<DQ>Fl^Oc4Yt_Wz`(pl^=K2FCwfu%k@c+*!kqMT}-A)8uIxw8WoeZDceTvDx<
      zE))mrOz@qC+lVn-r&{{kbG~g_b=i#Lra**y_<90!xXsNl@1xD@=i)kBENZv|LLD{s
      z_M}}GxYW<^f2IR~ymaL_?h%-B-q-%BlnTL*9RI#Ru23C(Rxio}YQ=#lNA##j4>{5@
      zN2+`((h60eoIgHUE}S^lXo&oGy(Dqa9BJkJ(d?<TKWivsmYR39(Qa<Ziphg8()*EI
      z=1SlTnx!H7`$Q4qaU&_j!=`o`HMP^Ash!45?KEVxClIC@jgbFII{m5qfNA{@Nqwe^
      zw4UoCqfd1)p^t^T$m-*fE^_)<w2R5NDo&o(b1K$NiZxH8y+9EcF-m-$LIr1W7gM-L
      z7(r`{)@iaoPdiJDRw(I9iV;%M6rtkROw$*qm@Hi&T|`L*(nXQvar02mk{^3U^_fG=
      z{6$g-c|NPiHI+HzS{!AL;u0>?eUeAei&LVVu|(+gSN&lgsW6&r;Dt%z>j39{O!}QS
      z0-dh~I%oXOTwc)MQ9(P({0+V(4HvBkdmj^TNYVd#Gtl|Fz|2{H<`;p^-v?&S`7?I{
      zoCSWsYyj-^-#*yC1~?~q5<KVE)F8~q^1qndNZmNZEqx#911zNO(n50P0M%5@l_w6c
      zlzQaKS=O(*a*p+nU3rr92l%OnBdf;f6>|6u1^kX{_yf1_8a2G?!?x_zLtsO_;K@f0
      Cgpo!7
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_!Ab)$5Pj2bO|4d2ym}Ia7R1oACre#eDD)up;wjw?l9DFNZnpN@Joo{AlsKzY
      zP!>F7!n~QsdvD%9Uf%#rFcfGJF4k(RcCz%9%VeoGxz(9`@KurOnF?xdoEC@(gL+R|
      z<(}nYwbp46I3S!ivG+Ve<a6x^m!o;p-d&X$ANyjX!tMBx(7WHIIuFLXQs9Vi-9)Ml
      zEggF?R;{f5p%AYAS4nD_&P!o}CWz6~G)cw@3xDU0jb-@kclevy1Sci5`E~emZN7#;
      Zm%BsmBK~_{$nhVfj}x8~PPw))_yk5nWL^LO
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_O-lno41H-=N9$L`t0z%tK^#1LvS?wU;K7fJr*t=zDchN4cUJn_Jop3rQDRn5
      zP!>ES;U#&zm%M+xz5%$zp+S#uvg8+D+d4Epw>7WILUQ}S)k5M8N1iz^1_@!<?%9I<
      z!rsl7l0}0}!f_Y-n@31ODV}gTnsx16H@OSbP^~y#jh_gE+jS;obivmKJB0HtQfuhZ
      zs~1=BypSIX;p~5vw3SIJ;hbPb&yzGAr>c7&nktj2D}-?L`}T|0gC0ugYi#J_`uYrm
      ZEk)ak60L);&hDSi9`<!kIMCd~@DrZiW4ZtU
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7=J4*vW5Xb+Mr<_q^&iLxIG7&r^h(#nSK0paJ>J@ftZiy?Gy>NRc`C3*H3qOE1
      zejF=tHVFzAg2m44?EdCIkJr!V7XaH>Eh0nMz84Q-;F&1ZfoDXoAIiYH)+X)uqd1Yl
      zVH&9DRE6?n(2@N_MY@O_!L?~#D0J8R{vec%jFkv|85;(#&yERnPMA50v`K_cd=aKH
      z|2hA3^Wna|6AF7utE5H9Zq$52?kEbRgDhrCa4=1nYbz};(%!9%uf%OA36*x#;R1ro
      za6Ea;C3ngY8ts42(j-(jMrq?&E|Xa4ZnNgwE~>T*mz(REuC4qt@&qF|mr)vbq}>l;
      z{m->+*>tRd^?3b+Rpe1%U*sr*DLyQRX|^SPX|N~u`T7tuk0WG`t-~0wgB*5I=38kD
      tVICEZtbohb3bdHCY@xn6#KLcdeJ*}5Qdk^Q69wk6h$Yq_EOT}SD_>hwe=q<5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TB^T6g>llYDH1;{aCmXUDz0-8+?QqO-P6)qV5Me!7-)Nv{U16xiWF#2l!FO
      zTaW_UD4V(Wp8Gm;az8%b-T~}m(?o`0`;kBKXFF7p=hz|d_^u%9OS>95Qe8?{+z9T7
      zz=Xjt8yDLy_uBS#^HH=kL;hHLQlBzp%RBcB#<_BYg)Alu$RW>AtV>T^MV+PyZh6xc
      z4D)r>;_f{UWE_8khJKJC!%lrnIu)AJ7CIq$se%qCI)~-%1Y0UQ=3Yr3_@j-6Sr^YO
      z;cKb9(8N5$ej1NEFN}O&1zI@Cgrv{J0z;`Q5G}7=Ckck*0jZkjN4lW{!8>Df>;K6U
      z+P=G~kKI@53pBKp;b=hSKZS<+NTQQL<8a~+g@?-qi^urJXrt9oQP2`GTZV;1`QBab
      z#flqSpaZ0<22Aqk@aQ!uIv~r)=5}8(@j^}p7QGf(;0y+;m?E#xD<V6M_|9igBxIH{
      gd8(X4sf#V9U`xNSWvrxNt0~ypC`QpbZOmZf3nu{gs{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcmcJPO-~a+7{~w9ZmHI)NU0!-h`e?C!p4_)u!O`INk|YPMM&_pv?C5_yX$sW@!-vy
      zpTMIhE?m4|;(-s~XEA;R^*_6$R&5C!JnTF(JI_4--#qioeEsp|5Wp?WCJ_^u*|A^Q
      zyH?8ynl-CsH{80Ub(QrXs3~Vb)#Zk#eCZ`&2=r@bt8O>9t(C1ES@i|_=2TPp^8)dl
      zxh`NlbZRn%IL@Y#K%c<HCDoM6L1RmLYxY)M3JfecRlB}!drFUwej5G@)e<n5PKZ+$
      zxU?<(HssnHS8{zRXFls1qV2fgcn#a1)c%Z7$@TVLY`TG8@jYob%BPE(Q7xS~tx*YF
      z*YSK=(`>!9w0kF+xtW5%U>X;2F@?(*PGU$P*DX2Sc9zB!jPPva%fPNPE!jxA^W@6r
      zCQr*JqCo!SU;+ufhA|7LO0-Y{V)6Kd|DA;1RDT>zn5qe#s(x0Xt;=ZoWJ|f3*Sfd`
      z>|@TRQ>=H~uJD#}EIm;+x%Jee-Kunb<uqGK<OMR}WunL8N_$2?{XdeG!0)JNO;m9L
      zuPQYmi>+Nq(S@JYc*Z!(FwW-!NV3Np%{Ix=9a=$~$bZI}Pwd2yVw<7`?!&+w&asz{
      zoM_KOKOijUBiqke-eC-|)dAm9#-JU~A0YEMKEH>7LUHu=0kR*EF!tZY#c1*H<InH$
      zeL6*ABcuVIkZP5}YZ$~+UX@jhVIvgJM*$;o9U510jdBULqqxo}Net8b2BkHM-m6A=
      z&vAlwDqlRn&E@z#V-J}^DQo<uF+|oV5$D@KI8{Q`DES;i*yc5?VFD_|xf=y-<4hgl
      pPzaO!Vq7^Eg7NjlNC;*yXVaJ=SdKsjtr`9)bpBz#$k`Z5zW@OXgj)ar
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`IO-~b16o%hRr&LN+q*MW|SftudD~R|}H8DmL6Rai>7Pv4&JHat!rcS5Cg+ycA
      zndn-HL{}~(8aFj@!4L4a7=MEL-kC}ZDGp8C+%wbOd(Ly-bIzUbzrJk%7{}!Rx&%%?
      zP?yz5xvE(+O1Y}KR4Hq;6+L&uw3bx+nrSR+R#i8RJC?bumozH?MW9cf%9T}PF?W06
      zfmXByx-aR5ZeJ1bC6aRj$~Cj31>r+a2!3=6?4Q;Rtx#K9(5zW?p{xn?Pn$)xJf~W^
      zd~f`y*!T6Sz{GT?TzP@;qGn&Mm2~r_QK{K8wxy{{0*?}HeK{N5B*(5BMYE(Ei}{^*
      zwz$kEcehQz^bGyKBlc5*8M9^;wZA!0%xofgcW3178n7^QGOJo#TbvZUbLlKf-)0n-
      zfS}%b?WR<&ySz6ITPC7cn=L+5t5i(O)=C22*>*xQAB4bg2w@BaaRf&Lhzcayb$Gk3
      z3}FPvIAGetnp&nx5w{Yp<Cjm)bL4E+Od!=sseM(eC=l~HLZy1N#*mO8-BCLUT|nFv
      zxbEFSo*YR^nMO8%jKGM8fFYbhPN27?j|DP`e@yT8QIKUD4<Uks0;8TeQ=}oix^?<m
      zS}N<AezT=yngUZH96&z{%OX*AI^Q~#o6hCti?Y4AIp_l1(B%~ybu((V_}^Rnl+;d%
      z@tltz1E7~ryr#JZ_;!X?(E3wfvF8gPx)9_Vqy^4H!9^YbLhdHoy^vppec0cyeU2r(
      zW69O91CFJhJS}htgIs067sT+>##5O(h6=tZ<paX$Y($x;<M3<vmG$R}h$z{O_rHJm
      z*16FI8YVIDnCl85p3vb_4DtCmo;iS%u2UCKx<?G74s@J*#^|M+vlYh)`JKWrP9nkN
      zBv`Tmc8~ukJQ+@<>yU7#3)zh|3Dkn&>hhBMymG>(+#{P|!wfs-gbg>s1{p4n2|5=P
      zd$JL1r4cNas^jb}-<1#OPiLY{349`&p#nc!Lc0pQVV<iD{}uySqqwWg>Rk&;Y!f9$
      z0I7hV*U&lU-9`BaoxCN=`L-w*IzjnJ*Xu<2M3m1&StrVu9Z=k2NEBIuttfe?$d~>A
      D@X|?f
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4K~K~`7=7QiWwBO41VnU^6^PrF*r+icR=Jp%kSw4=IN+(fJK&JguHBY!@#dfK
      z=*bHgFPM1X2l!+B3F_-qq6Y|E=6y5s=Dj!H%#UB+j{!Wyd=(YJ!fv=99t49Vk9)x&
      z-0Me**w?{|K2YhaG}+fZl~!R3Mhj{Xh4D_X*4b6vOfd9J$2waQSPg$uV82Lu%7ukX
      z9vln_M%p@7tNC6>r5j-<Qi8E|(hZ}{FxAEU@1mW((*wc1_JzW<1j9QjGXVw98>gN!
      zyYtKOcGB|CCQ!;dkt(=?xrYDtY<?-oR_K8-SkL?YB+XQ>IC$PMf6Ikn!ow)8xwwIw
      zRZIzHPP_BJ^d6>hi;Y(A^DttMCQ6(CpP}V%vGv--pFJ;xz$utis$bxqq6M-naMzPO
      z?W&jBJfTT<@--e5`RzJyX7O7AHY>h8$0}!!i9&Rm-!S}@MFlQLmk2x|`6({5@=6l%
      z3KaxbF=CLN;x2y;u5&B|KhVY|)|*EdU$K_HVC?>4?a>h?Kf$pNKUz{-JpTOqr*%kD
      zX*SI?z$#O%(fBpS@dlHu?_k52H%r0NypYCi)M)1rXUMA1cnY&zx43%O=+6BC6ZFbz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKp&2AGh6ot>7{6R8pN@*!+3x!=15F<9-r0OOO64j_s6|$d9tuobMLuOKC!E5jy
      zAc2q&Vh<06IQEQ41S%Wb_xSj`$M(-(U%vx*jGYENLFXd6jAlXhHVp<wYZd2-(Zfrn
      z^9HJdb-Nu*^CS(N_-uSZi(n;FlO#$<YLe0a^68;Kjs#0&WO=0XQIt+q?b{Etcl7?<
      zvA|O^!A9t4w%6%NIGn}mjqTPK)b|se<OhPCUFRtRJvSy*XY*M7?nqD_m^0Nx1uH&$
      z++f7wNRUSQJSg%xV>?W=I-b5BtI3OKoGQU;XkuoLn4EPfR`XX$CfHi&JMZZ3%zTyD
      zXu<Y^=bvnXz5iyv;_ltibqF?nG|>{Y&sDzoH2k04?iD8m%~La-#Og_6FSqtr>PPmi
      zai8!CzuUtmYN)enxat}ecI3K3&BqeQWmX5&J<j#sgD+@*blz2tO{ezB*vC!Qw+a{5
      zu+EBpDjQ^2*6osYLXYj;a;)CN&*;p7%Wi8x;345d2fbI=|3F(Mln58rBX|qjB|hLR
      d#MgSC(D}fH2b<L15eOa7FAOD6aL2js{sva~rgs1U
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmah`y-ve07(BNjff8t;RItFnlq^`x-T0F#MWQGO<`AsNRj?s(QJ;;02jHO)Uy_Qn
      zW?-^?cfR|4{`&s-1aOX#hYrK(EO}2BynM^~rB+I$Mrt+HI=@Ox66<-93J(s$pwjU?
      zQ5nB|nvslQm<dxU#dCX;;Uoy7*3;(4487|`DqgFY(!&<RsCKRfi0`6bj^QGxeVWYJ
      z6jEj5zsNsfKFt{E?6HtW6by&U;keX%N{*%>Xez&46CN$YEnWD)&~KDd-OCrD=Tw9f
      zOlqRZS|PeYIH3nOHQvZvFdVmCt+#wu)!;HPbm@BlmrCD&OJ|Qx4y~It(zB3l_!hE*
      VT?^@BU?F?hUqxs?q?8U0egI=wh`0a%
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%TB{E5FEE5fs)b!t>6=q3lZlWc}SHa0Sbb%iLA&~upx0#zl{SQz(*lAF=~Sm
      zCwpgRcXsFV>-_`3IpzTd46`MF<Ljh(t&&S_c&=A<Ap&>|)0RmpuFB-*X(<ZBFfN6;
      z&`MDuwPHAl;;d7(?OP&c7+tLk@zScA0DBDcjV!;*HXK75*#VtRZfdE@^e^(COGx`<
      zx_qpq5p{1Jsgqk8Wh_DKgv~GE>5r?Uiys&!Rw>oJd=`2|M|;ttBdk}C7)J4eF13+e
      z%Sur9Hp8>_VxNIwNO1!`MY;o@>VPVb-rWuvImkXj2N~nQK_-|w$RUpU2>p-AWq{c?
      DciD9t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gPiw+J5XIkEHT7S$2Pp`>mUuCE_9%J^s0h8MagfNmt4R#`Y(4Y?_@TsE1*1YQ
      zJIwqZ^WM(!^!o>3h<67iLT?jfLGC4c<;{&zyc!#=IZPv?9h3<j%RLq7wKx0O2q3i9
      zoE9p=huilrD!ZfrBSL+WhrF}95(hOx_a<8|{2L=wLS+&rytw^ui4?5vQcN<|sUIaN
      zYmNzD?#1hxxG;NAjqH}sn71b5e<YG^X%2D7(@2SN_xbMwo3u)hOmZxsET^cTD!pSn
      Xsjo7rqwzFpq9vH{W~;Eayd`wb)@@?j
      
      literal 0
      HcmV?d00001
      
      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
      zcma);X?NR16o#)t8aGMXG+R>&WrsSY)a=kWq{MbyT%6Tufs}0`PaO4V2_vbE`DuLM
      z2k@gfymw^T@=SXUA97?p@2h+7+}ZNazkmHrM4wQvL=z5OeJY-b^Gf`OUpa`LcVtqc
      z$pNkSBJ5RmkDp2xbjqOx_GVTYr+xyrLsLDOJW{?xOXbzJHt5efiSoi;)uEZKb61`v
      zUKGY9nssP-7^Jh`9%_ga58^DB?J%p49hyg?hDbywN|h^jL?FTNk;!JcpjfI<J7ziT
      z=ndMQh~wvx>N>>Q=xqhsp%P&%T&}hiN50@64!u%dZ8@|8_lxz(a*GR`;Q;+Jxh>96
      zS>BB_@%#!9S~1=6dZ9>Ch05=l`no;p0;&6`dj0lBb%R^VmE?&Q2JIT=;ZoKN_`iea
      z<ETeLAVTzrbB$iS_&|#8Zs_-QSB|nCj@V@Rh$GCQ6Wijv=}Eua@&3ec=MZL`aJN9P
      z=;AEP@MRIoR_uy1xu+sm#xWL>LyL%DQ_i%XO4UE~0vV-PkDO_olt8#$4qd^odK9{;
      zQZjTg29|bGAFKC5xuqv@1<yj?2g_Ku1>RZ|`BGp>z^+Hi0c!mOu|aBVy9m-bjTA}&
      z>M-J^-3kHN-Hv!PkRImlrXPvS-DETkQzJ@`{VZsM*=4Yr*K0`E3k0gYQ63Z-h~%^~
      zQmT1?tZs*{<;LQs%oB6rX#P~W^+cD><zY7=?_&NLp9_q1VAi?MhR#Uqmj-&AhyYvQ
      zdNBx_G}lg^h|SpbJk%*gP#BOGRa)U$nq)#%&k0Xy%?pL<=k^7V`l(RZs#4`}InRd}
      zyd<T{KIevJr&yt;!r4|G&U|6wvk$TW<4qhW+(e$(19^gzF;A_}QF$_KSIv)(jdn2_
      z>UCRZq;+0Nn@S0+)1_j3&9viI5$kEnMxf7vy6|P#70Pz%3459IPBG?a)?Q|xbFm@R
      z9;PCYm<uc?oR(-!NuEnL<+U^~y4~z*X?t-ZL#Z6PnVnC?dnXrlxl2k0(KBg&Hj|zG
      zO^^4+Y^L7j`vjL0665azuC_H?U?sYUw`sgh;yD9yi7p%D3Osz-%~{ITfiiC?3j<}*
      zQkH00N4rKVMxN{RDou=Pp&O`bf?h-B*Xia9lsBNfImq*tmFI1GN9TE$-ZS#Nj|#@e
      z{DD==Ez483Jgdks9_O}|>q9Hf9V^a97P)JY3Vm$ks^DLf@$8?{X9oG4zA(s_^p!!r
      zwj$r7HN#V-b%T6E8wR;g-x_3-Y6huO!ysGKG{^(`&LAy%XprxzZIEq??9i^^*`s}n
      z99X1dkVAT8kjM0cL4Ks4401$I46;Q(8{`4~VvrX7YLMUPcY_Fv9Fwb8dY7MYOTBMS
      F{sXqhIwt@C
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXP&rZTX5XQf)rNxSZ805^&KZzUh2;pMj)JOt``?hX$$=b$ti@p{o5)M274`rM#
      z#2DF0Ci~6)X6D=N_j&{19v40whSppx#23#$G@qoOQ)z|^nHV4L{)rbxX>N<-Xf9*J
      z;Pq9a%z%Ka@PBvjddA>BrY|zU5squ9AovBj7Rf8$jj>=oREc~l-Xobki%3g`W|+o8
      z&qSt5y)U}vP2~*jgKgGUj~wM`k;S(Czz{<)wXY*pE@=Gu<y{G*14dTM!ze27DEp)a
      qa3}!p=5~eZl5P%8C<nIMCGr6^(w935r#K@;JnCrJS?8o2G=Bh0h*cN>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9IPfx-?6vXEtPys=d_~+uiz1Vo>sFILiP?~u0v^JZjWZi1JD4)%PAHWY~oMP0{
      z)8@_mGW+Ize!YJHxWLFmLvXrOuWB6@FD6`MZ;^IW>vV3F@z4|uOE)yiCgJ>XsbeST
      zB--7oTs;+nBR_bU)seBFd%ceJvr98uc<7MZFy$Z7-R#d3^qF;;S<7Iuf)hXZi7U~6
      zgNeODyBqD)m2ygO=5Mg-+P~&FxF^lrd7dUIdkBuJsS91KjAKuR4k{SSbMGiy<*}Zm
      zMhiyU_c$**v;~44o)2j8JT0_2dz_klcd2yIt0{Zv*OUSFYszq2p?kp01`fXgB@<<=
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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!eO$r$rA5i9Zkai$j10o44$}jf2y_J_12Yh_0{y}a
      ZbSXOn2Ls5(oKTtzL<8lyfg}?H4*<><Kd}G+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm%T5A85bQy46#+$jAii&Sk$CoGP!ke-F7e=P7&|a#n8n>$1wYM$AK*tBdv+rz
      zbJ%RUx~jUS`|JDT697)&(1Q$v>N9`kqek?i8u!7QkLC&uKj(&fkY%u9yA8#4uW{3T
      zMqxadXHZMfM1oPQ%pVnlQiP@%sCb~8L97jfY`t~#z#xAy5;!z6(2)mA4Av(m{#|?0
      zqmiUPi%rndBE$h&hg`k&Xf153$s_bpN7BewWKbl?M;?kk?<%U7EF}&@)MA`g*RfJ*
      zk8F}8i&i6h8lM=fS$>lCTt-91$G&_go9QFkyo-v#M!nUZ?!q^r)V))i$p%ObuKD0M
      zkm%!pr*(n)w;>7{(aRYu*x7>HsJ7Fw$x>o6lJ>5G-qa~|?u>`TFHa`fI_2d3APxmy
      zN^4m8f52m#m#)QNj=mh-yi6DMV1cSds<QOY6H<WU3{rBCWd~VtkTR^!_*5Lun!{O#
      jjTzOZgH#=4%kil>$hM=}agbd{wfCPx+4gBy894X>FBzdJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh3C0#InQ+{o=wL{h<8v;M9_!)Wnq3B6bEAMg{?poPJJX
      zUb?=2QdVkm2_pkX5m4GCu_Td^K~}>DU9V?eNorAEVve<D7$XChYejNuK}lwQUNJiZ
      zCnJL>*ffwu!GS(-IiR}W{L-T2RJY8WR7M6tWJl<Mbg(fpFfuR$UChA12y_!G0~?Uf
      R4&<=_X$~Of0<xJHxB(U3Hzoi8
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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|IFL=jfj)3Kpt|7v(xT*4x6GVWMg~D-SLlIsurV?)GB5+3%)r11bQCKC8<5Wq
      Q<goy04j|?NvY8mT0j66x4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmYjMxeCHS5Pjpd8V|J4!q!F`7i+5^S_xi_?HU&`gk4Rd<l8L#06$8cL_CUNcX;PK
      zp0_)I5gGzHLdREEmB{EE$gMlE#%M1-S|d;(G*e6l${gfk=QAKsB6NR>rL}?H|5Swf
      zLC0Hnts{F0Jx%EK2lF>S4wZ>iW-b%OVIR_%;7k)wpVHh&ph{?G!D*+>YW~HTx5;d0
      k$AGO{|9yw4g3A%|JVic`_yB=2Zx!AO{5m`}{^wAC0iRw);Q#;t
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-+e*Vg6r62iqBYu9t%_feytw#W5Q-Nl1XLp0*EK9*OWf6DTl#H2_yK;Dc#;&2
      z5q#P`GsDa|^YQui4&V$U4;_ZXxmb!7FJ3b~n_LPjVzbB->A_(blpN25PWjE#Tqc&G
      zpGrHMTo|osR7NwL1Yy+l_~FJ3y{lCsUrJ%&VT)l@IhJAZUG&W{oClRhofX?$>2&-T
      z`6tMyy&{u7=E};P;b^@SSBBq`o2?1j$S-~gkJrI1UHCw!)=H)C)w47UI^GGU6;Wq3
      zh;9&0>DaouYn4fcVYAKC@@$uZp-a^RE|t3hmu8P9hu+N!>9vq;_$_1yyDg-TK?@mT
      NuZhrqpHezF_yQrzc@zKu
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>O?TTw6upy}YNCk5by6t(Oj;A{B-9B|XmKG;94B>SyD1K)gil$X#_Ex!RFX^k
      z3)sVo4GT72vETsaw2Ph`7A!c29sC^*Z$@@wholQx)|)%;-FM%e`Saf=PXR2Vp<#&O
      z%sumg`7jfFWxG3><ysK>rWLNV!q9V*iyC4Kaf!${CavG9-4j-*;TXfTiq?eb2ANIY
      z+ZBHJDAyp6DB3|NT;Veu3mbNjT%aPwqpM^Icg=R~@O_5!spkRHRfbs3tBVmZyl6lJ
      z*D;K710#qt45uVuylA_k+-lZ@zh%}O!H_6=mg!VY-<IFqU`$eDIQN`-$wi_zwmZ-p
      z!^MbV=CIE54}=?L(^VZOaZ1B0l>bPT6xP6LoM9N*5n;t^`4+LAOr;g4e!;UE&QTu&
      z8d{<4xw6odfoWWz#wkf}5M{IZzf_gbrx9m4k_?(~r51G^Ge~K8ZD7a|&_EiqG#YWg
      zWjdtPiEiJ0KFFrGM{ySO242S{>cS54QCc;NZ5<1EL&GA&sR8B#9y9PJ-eS-L5kA`-
      zOKqpC9B<RKWh1i26$4lCE(50~tESVU?q>Q4b(=dxI?3Xif%ic6(x}Roco-h&rni}D
      zUZ*xHP1A7-mgj0%=?c?3A2KQvt{TW=ElMb3&l2_n$p{=bC_|;;`QfSvEZ^RZrnZ2a
      z1~w$6F-ghuoGp7-GUF&QjFw!{^jzE85RWw6VmPi`q?9kXq1X|=jxuf=_y85s#CCg{
      z&=Dv|ejggB;v>pL*?Y-I%~U~B`j{v!EBoZUX47=*R7P(4#K5PLQk*sotTQmudn&T!
      z(Y~jt)73!^9z0X35}hPHa`>7p&*a45O>;>$$Y2y)x;Ju;83ckXH=cJb#|y}{B@s5f
      zx`DgcVYp!V!VE=3vFG@MSI^Z0H%Y{z>yN{F=-pabQi3|6=LN8MTwXGCTMp4P0-d6x
      z^zRCN%ZNTZ_bZIq-!S%*!W@?|wL-gj776+`Xpf9eV3OWs6ucB=VHK(}OtF9FI(T^x
      zXG`=xpSak;tKVT__7@oQk1@y4L8gtL)!JpXc2cb+E<eUQL)gPi2iZ2hQGlg>z)}~m
      z+(E95`wFn$4_M#NP-tUQ0g4K+I-e-2#XoR5suq3jq1?e{2U~4SEBGA+KM`T>?C0Cw
      z7i0}23ts}~*D=YLk>o2_;5p>^DsJ;U?(#MGd>vo&8~BzN@IAkYAL#j!Z=l1A_??&V
      wH!mwOry{|+Vv=<D44;#n9Dm^pd`Z#|!z4+EP=lppC-2f5w7X8fF&eJ;4-M|gKmY&$
      
      literal 0
      HcmV?d00001
      
      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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
      bFO753kUI&yA#aic{8Vp<_&@)0S0M1e<MeMO
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=O>fgc5Pj>UH8l$jO(+mr`az)ifSTTr0!WY+(JF#N!S_wFN;fiV$=(FSk$;4M
      zAUFVLj{G3Rc$0%uwK=VKcHWyeZ^nQA{rCxB54$cL27e$%;=P}|Q@Zaz?Ib1^UGr>c
      zOr$H5qje&5U$#|Zq?WOZJVPM``60#qSDk_E8W)QUn^`J3lG^yEu@@Lh7ONuvSjI|(
      z>VxQnk|+~<4P>0CNWVGUXJAJRms*idjL;?!;ZQD=29LiV@V_4!7R`xDDi0Xe+S#(R
      z9W*KLk<!XMVc4k7ORNP9`Bv1EOCX6Hm$B?2hgFUOt}*1QX~J?_Y58*awj<-$6V)s2
      zs4K!iP$$&IG?-7NG3?E$cc!(ZmQ$}rPF(9TY|m=WdU}xh+pGm1Hn8Pllc9XR4;<UL
      zP5S%NSlkPtd!dXO8r9l7mD%K`hdbDDahGA|{7RK9gkufs42~R;{WEoBW;-l`diRc_
      zVceC^Rk{wv*+K5670I4MO)J<6MUqHzxOCQnVv8o2gM$Uof}@NjcoexvJMVxO3h8L=
      zH)yn1=w*d&59!UJ)2lbWqFDcitDkJn^)zN*#>Dp-H|Wj@lSa$9Nhd8J)~77{Qx;zT
      tg5nsr8e>#W^ZX(uzb((I<>gbJl(&i+F*&FcuY(5e**f$i(2VaR{~ti{^)&zh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrT~8B16o%i~mX@w7trSrUNYx7cKo<N?FebIpKy1_m)B9~Z$dYzzcBjR^WulOH
      z;jM|$3-v;Ojq#lALU${WCNn)dXP)z(kNNud(`Nwdc$kDHu)JpttaqljZ#!?yYSUA$
      z)lyITO7)z=(}8r<rscFd(oG^RkYQ)DW0C92=ALY+BoYD({#R>XnUXJ<)t0h*PTlsD
      zbok<=Kt3F0=vCV#j2wCC0&`=aEhW204gv|aYkP$?f%$rv7S+5#evfR&R*wZ1i)T5O
      z8UpcJuPsv$xM1KM3>`6K4V=e}K&;3P>ALO67yWKiy05KfM+!{Wdo8Qeuw0w%;A5Pn
      z36#!=7bzyGOjDVuO0T55({sDBeJs};FQngvjZ#C$Jgz3OAdovfe*=ri31oL{R}T9S
      zilE8CQT0xVB4BvRQgYZF5_LUV!*J`ux^5a+;;Lmh?ska4qKgJfe3*3QTg!G7r5Y*J
      z|4;(i)cY`q#%w4hq@3p?tYX!Gi4}nvR>6l+K+cbP;(dY5Xrg0N710|#i#C?qByfj^
      zXi7le?)BZ4d}j0HWTW?1xrtQoEr%XStz&tfq!BXwe1bQJJh5W*n?MpYrkM;+DLvi^
      zXdHk}(`4NxOQT&cS3V+BKE(8UvNT+zH9<bW7tGRX`2TfW!ez1qt{@i>ssSNY{(wy7
      z0COXN?xVk965oButZ%0R2uM~Q*9b$Sf*S$uIqfVc&A0;;hTHN8Iz>4FKPao8l*O+Q
      zIDHIG6S(YyD_9A@<2rARkVBonN#~ysE~;~lN(d_4dVpIZl`JGtt{md_h!rjx=b=%F
      QdA*1Gv~z>$8Q}r6f8i`ao&W#<
      
      literal 0
      HcmV?d00001
      
      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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
      K8149e>3;$Ahe=ET
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXR!Y7+pKfg(jyhq%^H1(3VSWQXz6t)Nm0(kwOGD5N&-rO}6xO4(BjACx!7z
      zXL!?R_0<_2Ul<1+D1$g1#z%jQGyVZ}?Q=;EO@+Mdot*uBYklAP*4}^q^V=qXqgYBI
      zCa`Z!U)S%JoI8efvvh97aa(%Btw_^cXd15FN+B+=Q^k}_oe|eo)?~v?At{iHW=1o1
      z2<-MU47*g5Ekier&-E2k63FrX)@92vZ0pA21p#qcV5nkSj;mX4T{qh@@wfZ*yRlhA
      z7tl<@ait|&Rqg_Zs!>Y0E-kmTpjLGphLr^}jaAkvy(59CZL%ue0LCXz8J6Lm5g3>&
      z)CJ-dyD8HcKu$vzqbW=X9O#2NjdA1#A+SfoFh)|?E3mgWFT$Nh9#e{BT3~F>t1~Kd
      zxlmVd`!(#uE`gD%VacoQTPw14-Pbc)wHvxw*Qqh}4L-)*Rl^aOey;7_$+GWZ!wKi+
      z<4p!Nv|YpWmG$RcE-VWqJi!IV{W^PM)Oc6zw%M#nlO9pXtl4qx+aU=p=4rf~W>+N*
      zuVYjo`<c;_%4|HXG5EG@3hZj=RzsSRM3r(}!wHo#8cC^mfhuQAZ#KgO+jESvgh0V>
      zD)hK-o8CZ*ox)oJ2e+A6=Q@N&Q=@)ILm8*o5P1a-N5@w&b;l`h)hSFSlfVu$@T|b>
      zbCdet`UECg@|L|WduvzaoYQb#m6P;?ct3B-$VCpx>5Rf$;nV&o74Ah1@8J^fBH<z+
      z+w>ctmb%Ue<I5@Vn!nmNt3Xvl1s5_niK`l};RBjgZt=+eZRZ-f*h=QXP-ga>Fs!D$
      z%O_`1;oi_tSGXeqZr4cZn%!<S<V8b0S>wGo=ZJDhe1?V`Knw|_xKCmb%Ay%Qtubhb
      zs~3R3@2RWHU7hhQ;kujuKH|CHo-aPeSn(;wmmcGlN0{W#{1U(IdxV)^cpk$6u31I{
      zm$+Ug<`wKg6$kl6^D%G;v;0SWF&E&!$vwtzvG{$pdMHURdfCg&`KLjqiYTDSbAkCj
      zFxFmz@fr>jN%eWc!vvDW4IGKolJ@x5+0mUyC&^AHM>|R#4-gVWIM$WK2l#>jUq%2D
      z9e_8WBv2((ydeRZ;zLYkPtI@P?X56haXMc|ddhTk$>223com#|0pPn^0ly*Ow=V&t
      zyMqePQVeB=A-}>6EIh;FgU;NB*#PhZTm2D9?%l}`1$D;NLmGft1XJ<T)ay!h;Pg+(
      z&gYL2dFBb;kKtZS<mWfP|M#zM$vHY0_?hbimi;So+^6u+<C*rc0-gk&_aQwf==ceG
      jxJItHdXf9!zWxI4-^sm6?q}rQB=;YEatnOysr1QzxU2A5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dO;a3I6g`jmVumJx0VWWG0mA2Cm=I&s8AM@7%tQhTlQGDuVOnTxdaUjSqYKeW
      z{0T-Yx^b1t#?p#HX{u5#T)A}RKXBu3P|xe`A<fqmi)_04b>DaHJ@=gZ`j3BqeF9(<
      zi!sy*bgrqJ>g|mEk#4SJCYEf+QkR`+-F9wN%9;^FSfELUWDJ!7vrB8*vJ*p8pe?vD
      zu%TX{)!m?1GV_|HtA_rGx@2g?vE5}!vuwR$-YiTBi0cB4`HE>fs_B$eV?&Glx%&Oq
      z?|=W*FQ6DKLo+o?q6_p*2QzA$n(1V&$gBKZ4a*5c$8=M7#sxxyLnVQ5o<tG|p;bW>
      znqx=_oI3_m0&QrGL!d*!37ix-Ijx)8%*OhXW)(d`$?3|nYLrxxBtidW*jd$WfwOz6
      zJ<wRz*`k)qvh*p{QL7XL1_t+R^l0u6%MF!c=oaWX$YXz~q;XC`FZ$RJW)wK@W$*;e
      z8>(&R+?1IOM>qC%lz9Z|4Zptvy~n9dAZ2Oml}+uiQql^BWhqfFgk5-Fw=_C{3OaUv
      zl_t|z<Edbcp6POhf@GaxYma8_`XPZ4j7qUD3bY>zM5F|jy`<nJT&7=FG}lByB`D#*
      z;Lzf62sfY$uPAsGS(;>dKb78Eg1Ys(U5?t74QrWGlJvv~j2pd@;DA_8!7OXHIWz@|
      zqM2oX8F4)#&|RZeFONXHswL_59gCbmMEBA*OQi}F%Gy+oiE>#hOX6=TxF(4=>cKC*
      zuGQ!{*AH&|TMDM#MpfheZya}D1v$zr?+}~%avWw<Qk&OTOx4-2*u(5tF`M=Jc!;UT
      zgPw2)V60fojpv3Id6V-pr{D%=0tZm>;}41298kua8(Mwu5x_YA7)b38_Hszu&Bc(X
      zr1P%eS9N(brVbnsBhuvIZia_YhX{CB<22%s01Z69>!2Vk4<<g>^Bs>iUXxr+a);o(
      zDZPW1^kcLw?BLYTX#dgOb(+@`i~!!?{z>l7<2kMrZx7C(lPiJean{GnyA=Qp>7US^
      z>>A!i&r_%b3jw>8z>Eu%a@P$$3^$=40|XKntN}Q*AMh3d7it2A@dD2K6+S|g{oz0D
      zF-8`KLuWd7a3LE`Z{x*mBy>6Y0LhL>Tl8W__!qofhr3bH7VU^U`R>1eo~G?#69Jt-
      zYkbnth!4<$b#%Z)AMY1Xam%^pCEDdTiX6sRhWw$vhH;nuC|>7Nh#0+W@&w!5!gfxw
      z(GjF5;uOC|`S!{#ft@`B!nFuoJ%T_#y#Z_y=ra=7V&gw$0iQGV9g?_95_d@Ai)T)v
      za0H1+EfUvjlDJ0_Uy;N;lK7G&z9xzLB=HSN+$V`|pD_s`r=7~pvVnDY+a01=K1pZC
      zrRiz;cYfd^MDf7lq}&e!?u_r+A&z+z`TZs%yor);N_->auZCASp_d3PF%s!y*EZh$
      Y4Ywq^obM|7BNyF6NbJt!f*bYT|IMr@)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>T~8BH6r9@@O4~)CLis9!Aleq8iXRAtDppXF3W;q<2v6Ix!jiI(c0usjKjM?G
      zng~Qqh|m5Qe}X!9w+mY+P18NQcjwMIbLQOr{rATyfctpmheu#&OWjuwl9l(mv5}lF
      zRLrtkG;_PUVQA$yJL_7>51&B0L?ufqG0TN5t!VnuEYRcL>)s;}DsB?2E$nNCDKMCI
      zBQ?30%$x&K0!m4*m>P3t83jh`Y_PcGYX`<{&9l0pn`r@WEWRS(%dp}gyl7Jpg5pPq
      zz(B*)LA2w#1a}H_#jLDunW^|n00I#Oezf?}BQSEA?owevbfZn~>sJs!P@pZV8`{#|
      zc0nuW)j~-V2xoVSYH39+>+-p}=rcF<iokG<_<EjDd55~bZnw~B3A<(saNKnF*#S|I
      zA0roRuLqPGMitz~9X6M_1jgO%$&}PeC1v+(&(urFnkF!dKuf9W)kQ`1(#a9n&`hUH
      zcA-wX_}Y~T1p+yJ!%)q=GP^r7o1dAv5}UpxWHz5qrBm@W2B|x#Ab~LfQDmQO8f)}z
      z(Hw_b^A2|%10xr~HZkp{wpzESa5PpG)X*?LrZ{!B@`gZx&a$?>v#-@Al7eOwq@<C}
      zHh|~(onF>*rfOEf>p@OyTERm+3Sk(}6wKo}EvdL5wDIcsvh25P4>-0{q0sq%EfCD@
      z?3Ih!qAo|jx86ig$YbTZ$tt}3H^IXnj~qW#K6!)~o4L+2&1);4-f~?qMiVEvmiUSG
      zRo;Y;(8c@i)f4m{q3<i-dl2O{Of)FThiRVoS@h!t2Dl>G$blOeWaO!UtU&T-Sciu(
      zl=z0e@bK6%Zk^KwtyfDdYuTcS*w88sHz9^NiG&;@zPn2z55_IxW!_2RfFvgE#1}qz
      zttzELVAVw#IHL^U9zWRvlSJ56%asRK5}L*+tDYjY<Y=|4Ci^cumI>@O*a?a*>8)qd
      zpEQs@eNp;0r5mm~LuYk5(tYf*<CVemUKTNwIL2JoJNFskvFIdA?D~$U9(?qO=-BC}
      ve}B%iL^uJ!KCcJNbchJ!AU;?bhitBD#wL21p>Dxx>7lC&RtFX>$uIu{T;iIO
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuw+fLg+5S^tdb`u~#uW6z53P~?Sedft>Ol#o_ic_TW5^bDmFtXQ?y$R*l`p^&P
      zM^&A*OEDr3&g6{eoIN`;{{83YF97%i`x-1U*gWTR{-c{;L}Jo4LK&q(gBpW%mG8!!
      zvi|5CL#e?sgY6>AFJu?zDC9qa6Xg;GW(>5Rb!dEb2Bhm;3j{JF^#ca0W-4;Yg*@T$
      z40UKI27c$WSkj4(?|mNjtibHs#{=8<bXa51bW$<tVIF4DRGDK?^9<M0VMG1n2{PCS
      zzWDvYP38mA3(nF^-k{b4*KnMnZ7T7{4DJO9k7GMjvQ5J@EywB`1HV5!vcBo?l);)2
      zh8SbUWttt~C0)xfm9?SiyRPB&%EE0rtZbc`CJ7hgqIAXeEZ6sJvn+bSpy3KkQW1s4
      zdwqgs9~kVmZ+ELxNtF|z2I|w<6=!b&=QgEtLbr@^OYl*QV+MEHol^$&9OeI1t$nJh
      zT6{b{&eADn^3pt`x#RU%ul$XWi@dwI>OhHXWpu$gF0P<+gLIaKco@Yrwno{qeYGdF
      zTI7wMyP!i0H2Njqw5Cf?C%jU@tAv{syiRztg6|W4Siz47KdImr;b#@RMfiCI@4zyx
      j|4VoU>N9u^Z;JR9c8j<N?IL#IT@l}_NM1h_UO)Z?tiH(+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TXR!Y7+pJQdfMdBo4u<Pq+l+Eh@zrFY3YR)(n2kyauGaDkLBQLQgag2`s%Yf
      zjxT-G83$&>8JvMa=!m?CGd}s`yMIJod!OB0Xn4rU+53EZt@VB1`u3myK70h=Fjfo%
      z1bVJpH>}T+-ltA(B{`NYI{DnJwPv76phJF2x)wj2S-Ng#iw2qny49|ePcGO6$8w!@
      zYss}4?5SnOE_j4EKQkd9P6_N9&*!|Nl`Cc}w`7NI{qy^O>)-zMw?M14%_Y#DR+y!t
      z<0eU-5@=qt3U;n2(5F7_&?iHVIXS2Ju0Svv%Lp`$=a=m;g6KBUfldRx0-aUZY0JAt
      z=rDTF-3oyL6DD>^YA0vUl~$MR!Z|;Yu5><YxfzSeF)_W_RJ`VRq*}45DH`?l)>I}H
      zYoId~!5+M1U@yy1RYDaeUc^3u1JA^%EqY4I-EX1|?P0#XED!HC5EJN<p!KDp#E<RI
      z`Dv#@R;*xqC6@^V*GhcG8qhb&B9@VPykgQa6itxT{0&=fy=LMdjtCrm7EoOpeue6`
      zh~~S1u4=?gcQ$~Q-EL(g&T5McL>m>~_fe}?jT`i_>I){r6rgW7E@>stS*N4vs~MT*
      zsEKz#pM|onZ58CsxQQ`zGLW^VD|(`_OFQc=n>8w<r%lX&qtMLg1?itoEjXzR&n+4y
      zjX49ebw=R_6K60fU=;IXg@VPt8kXyxCaHn<cG#QoVa%gj5}!A57L#Et;(~$qw?|p=
      zDJ0LtMO>2g_tK6>P5Yw_QqV0^$7EQ_zz5qGfZ80-yDskq4!q3Zs)-L_NzmoxG1ujg
      z>Fzxhn~GhO;iD|EC+kr={<0bZ;e~vukhP~Ad9$=tZly!g@Yu`zg8YT}9E5=uzPIv5
      z3n0uNr&_&pT=*|*!P|h(F0M|fb3jM@KAwwjq36PV^xZ@MFY3e~pKXi)=Fo%*o}b6_
      zT$w!0Gk8HE3ORlnFGoHZKODb{{zMr=0nCp4LFl^}egaeeB{p$jcH}XlcNiC-UQkIB
      zpO+EA74+gNhF~e4JwBG^Au8fXkST%zjPNbM_k%d3xgADJ?jaI(YW`#Zi#O4(RwHG+
      z8pL8XHJ^5s<T*-MV-la#&<<5-hcqpr@jBj6w1@Ggrk&tAKw6ocOj%M^Ib;KXbxQt1
      zVfXs66>L*u^UlCq8ZpU#S>TW?SG7vbYV*sQ4umQlcpE8w_@tH-NyL9dOFVH8!&NnY
      zGryuyzNQhrsZkWED2m`1+bR`s#x>{>wWfJwj%6GdxJ`Y2^L$wwHL}7LS-cZ8!qIw!
      z69QFLevQ7TWq)XhGJ#2ra!RB0$2T#xfi7RpNr5s>3)~UaV)>c=#9_EiOZ{Af+h0+~
      z`#|G<r;9edg?UcELRwb-3HlQ9e-q~(AoCcP%ecbc%01SAq}8o5mIO8sX8WJgv6~8j
      p2OP<Vtm+o_;a5875su?GOc6njlkbUXt*Zs2$YNP#YO5-L^gnlxwB-N*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm%SyvQ6unbp(^RW%Q|kj<3hAc7wJQ~cK#QW#MR&2e#0hywCW-kr7k+>rCEgh(
      z+Tbka&bjB@=X`yCd;-8FoSD#Ja31-UU%TR+r=fe3m1%&%lb?pT%mR!}Fc=J_#Er@6
      zKD<P@DH!xZELMJ8B7+@g=8;4EIt<5~tr+x4vg9dG%7g&Xe?T&Ry~Q-ZZqj<<I*3Y9
      zP*bYHnt|O^XmN(Kmc=XzysHaLsW*#+&3jC5HO*t5y<uK(6x6HZ(NS?DKL~DL<+uwj
      zC>(PJ7tUgPCs<Kdw=KGoH77YHS%qzeMt#o8e1rEqrsYikZFDYkcNx%F^a}t3TJSD(
      vK`z>ap0bw4eU0}t-q&~l2TFGcLuE&rA8X!*iSi%8RM}%`sp1LU9XR~~gU@?z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWm-A)rh7(KHrZCSR`A_!G0k`P0SVd0WsOrS<n()2=W^~z)@6CASaCOcbx-h&6x
      z3uD5CS6mU_!uKGYSvOMZ&3t?2JLmh(oV~ue`~_eW&x>#b>PPZKo(1MqM~A^~e73SP
      z7${@(eyE6wa0MEc63EjuXvI+~b)=FJ*3PHiziWYtQHhpeUnNGz(Z}{10kJ1gCdH&O
      zO8YV#s>zGmm)f7J-=75v=~r!5HUz4jF(cb-zS5CSUkl8w{?~2v1>9DApr*jBK0Hi&
      zn82(L9}fi<{wnUf-nOEd4j<4R9`CE9C;3W&*-kv5Wl7`2`K4=(2`r5-9(g(Qp~>o@
      zO7AjzAKQs9RvWoa=4t9sr{}?a9>v~=c$f^-TWwV(4qUe>2>9)YDYrstj50+$qwTSH
      znCaa#3bD)_Cir6=JjNsnM8yo1Dis?}_U$s9GCL25w#al?r<-d(Fw<Q7iR$-^G{@7+
      zT6-My4)er5MWo^p7FY!qQOn1?WVJm<e6uI4+AasWBT6S%T63251W#GLOk2ki+*`3U
      Bm}dY0
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%%T60X5UgGn7R(ZC^M2)NMcAOMI3iFaFhatzI1pmagBjt8)-%!0IuPYEa>`$j
      zLxjYE56B^(gwkWLj6rajp6;&d>8_r?cQ>~HHt;ThN2q)e-^68PFO)uycFkpJU&XOZ
      zN;}P_v{s$Ql7qci0H08H_()u&QPs4+8ZC7?fZaJc?uQ9^D-$K+hD@w7`t!jafog<_
      zs?jzTI&Fx!BZs|Oq4x9Nk6(n5w54omgD_uzx~nb5Y%8tOkA$Vw=RoBK!LOP#IR@?_
      zL=NLQ451hz#1vt!M|?QLmLpBpm6nH{_Nh#c1y4>W)=iTK5IhF^S<rWF64sx2e?X4D
      zbliC1T&DM;9vN5u{c1TYA~LyEtkUn%LmZQHpG+rdO5OvrM!D<<ClDb#&{`(dSXe7<
      zfR}{Xr<Duvn&*3zV>Nr5B~0Bv*>4(eSid3uD;^dxj1l&Nt~Z*`J5jrLpGBSE%nSB5
      z8R@YdudMySWM%Cdh2LG!G@rR{>Wm8s%&;FaiJ_Rq99!Nw7P2zyY+cTyD|f=N-Qz%O
      bfazsS*PKHwVVP}_Z!37kt-Ix~;4S?BzDl&l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O-~b16g{uB6v_ZYK|~P{Ez%i2Dt;S`MoLT|XiTb2Ox!%m6P}sQkeR7em-w*|
      z*Cy^<yV687(Zq!t6Mu+X|AFzonXx5hOjvZ@z3<&~&pr3v{`~Xh8-O`nP9woE_>e#1
      z^@6u0?e)TfQ_tOymL=RYk}Yq`MW?#y*uwVHXlED=alBFyo+nqOCH=>R>yc*(2Hg{`
      z<W^a@o^<THON$I_nW4Mr*q+aAzs#+gNc~=V!+wqId}nB@N}FL|MddB<Ex)iRtHM^;
      zd4}YsD;}sAUT0{(B5mnkWw@4)i$3U`QKq~_XH8_#h5-#a4iQ7%C}+TMSi=zd7`iGO
      z++G)@4Zca5dRL?^Zq=%*!o9;+mCEdjQz4O@q>>+9CjAZRF$@Kj?C<S-ClQQl(9o@{
      z;~IKG>x710bW;=7h2Lx?HOv=vpTWo*QO5suJqis7PHC7#o}uqwuq7IqCJ&e=4U@r)
      z-;i9hLRy<}Ycen}tvWfwFdPmiM!sr%4@tbq>#|y_mgEy^<X|Lj-{^x#8h9g8C+KZj
      z2jRM6Ed*yuPR*?dDuOa~P&u=zW(IA^wuM`?xaSEkjSDov7BRF<Vd)J0F@i8o18SpR
      z3P~JA8XaVJ(%&b647Sw-$=+7;3r?CIo$VB(qmRB>^6nEdNvCFhM!z{VJ@W~JAIMMO
      z2z`4fJ5ZyDEp(wy9Do_dV;INCBV@qC0!uL^0!wkJ%4kg^rZsv|Ou9L>ixG2r7h~qk
      zF2<W|+2H*tsd+~AKc{Vbv4>G_FzO9PJ<z5Yb+wxT<4NQq#%0Q<>KZaXV&VsS&95--
      zkxt^DP*?BiZLiLk)WIF}<5j?_h1iIdVHSlbuR2xU6eSsNCQ*$AUhe^?8sO8h;E`7F
      l+gR{iEO@LH{4NHZz?negS)8LYOL7^`<037ILDnTC{{pmU96$g7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@T~ixX7=BI?2-$`LDPKatR01Ty605d;q_)zuw9ph4C^c%Qv%ng*vt*s!MW{FZ
      zOFE+yHICj{^}-)e{R35Ryzx?e&hBP+iL^5$=j^-ZywAsZ-xGfM_uKCQoWn;+#02{8
      ztDmX|C3|0Q)Js>)gCr6H!_nY!#oYbGY-kN9iEe>O@144}rP;Q=sT;cUptRsW8Ja-9
      zty#KiY-pCPn~mE`R|UkfKySrt*pAw8HdJFz>l&K7cV=ht?vDc97xjkjToOp+mkJvk
      zD(1GPAddbt(ijkk=L;K2oDvv{(jwQY`oP?C6l5?YmktYz=Bsi|N!@o!#B)@=p;=|7
      zmH9@~cn)I%DO+>Atpekb4PNY)+EDA<B&qaOxqoGEcT=<0)lDfbQ#H4!O{GFU`@w{>
      zquT-lE_TGrGR3F|@|9Q;P_`^hb+qeLPlxk`C{y3yauT@?_bD^Cs2hf6B{4(%K;Bh-
      zS8GUz6-*;9^%n%X@=LDRDa^^pivpJ;0)s8(5c}CN_dMz@<IzraJ}rto<te*iTKZ?w
      zbc3WB^(96PQ6TWLWY#M%*tyGdW~ei~=2&}<zzC}&q#e{`IsWkQ@Q}*)^=)T|qwOv4
      z^U|#9b$xq*#tRgWb>i5ZJg{vN4B<kTc+6gA*0-ax7F?~FqcN#ON_{(xGk75|sJ+Ek
      z)V-tW^&NH<J7gd@*M&Rl*DTAldax*PcExnEs$rP>+IH44v#i{#;Z}Wi*Q--I`>|<d
      zH_Zdho>x%84e2hcZOB(^sO)P3vc27s76!W{6n3=cskyE>VKd7X(hg{TAvnvY^}WBe
      zoTBV^(s&o|QB-@ep#_;{{W5C5>byVNd6HNYnCNKuTu6<!D_F&CDVLo(=*f-Nnyg)A
      z&D^uLG&T@>u7`W(Wk!MYQiB&m#ZYZqV|(@<$;&Ir>o^`BZy$cT_!&bIJseZKJY!IB
      zf^*g}zfUr<!Zk6DnPL-t#TGKP;&>B-O^kfut{><3N#+8+K>{rd;5(e=)3CP-6PV-^
      z_v3kFT@)6MpZlJR3lv(Is<kj(i^rRoJu(@1c*s9Sn<(Bae$GTONXQJqfJcP+2~!+r
      z@v{q?X6jk4Ig5F|PoadDe6WH`lCc&<jX3ARWZhf>{OTr<T2pu>;CR>PNLtU}D0v^t
      z@G%+wM!O&LF8e)TI2~d5D$e^1?-NSG&$OY&+IEDK%mojrIv3I(<`Dr;cw~PN?N8eL
      z1UdW_Iffa$#wZw#;dMGA5Bm+g>EoVv%K$hbaf?MBbi`=So4*6<T!u0(GFb|59dB;p
      z7<2!Ln0qNOH|H7;B)-PwP>%~KVv!vSPxmN3)-IX$By&N|DB^z}i9TM>{rou{K$i2I
      z$Q<$LN{2^6{;K*OU1Igfvr$^8)H2taxc&p5yjt}5jzn@PLD?%<#!coBsN$BNYninx
      z3vRUdB~~7}UA0=H>+4@(MTSBr+{O~8krWgBH(}C6kQL6oK0*w4TpsVE#xX-it9<_f
      K5vDkPh}3^Vo&DVa
      
      literal 0
      HcmV?d00001
      
      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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
      b2d1!x#^rmB@xC6b<=csAtJrg;RQ&ZnAtjf3
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OH&+G7(JJ1m|<uhAqj*>KobMZOvn%thyuX`LXb!xI?2RfeDpv=Iu6s+OivO~
      zcb2Jg=Q1uVV`<oA0i{gDSTUs*sdDEJu>21$U8v{YZsvhO7yY>Re)l`)JKwqYm%qMy
      z1mGy<{U{S?yl&huZbdUUt<*wvB<nbKYCLUcm;BHK>f~ZHX>e&eaowDC{HPGvqh>8T
      z8Z*<Dk+hbLMABq%Mh)X;I%C<XOA}`V#5sZLQ9G4!jFb~Ml3BBSuw}gCu<ws{0e?cF
      zWd!OcRmQAiC8Keo*y%xm%9yo~GMsFhseAqvFr;R-c%M#WoU}3Pxcmo)x!spBlLAd8
      zVeayId(KQUqGHHOS<Wy+yFzgRZItst_|TxE9=rY6w^e@;uOJ%HPziw+9XhH7YA3Cf
      zIh9>ZnCXkI4E2-ttdWcxl!mf+lbUnQVxdo?qtup!jk!62_O24f+X@TCgE)voemp18
      zT-><QI2|466bLMsjw+UPyFw*-i<PKC2oXQRPxXS@uj4SfnJ;5HimgCvDNQ$>TZzjt
      zs-p)-1%g&4W+vHFlf_Z!87bZ|9d+0xOX<_mj}rn_OkIf6x@KgSM!cY70MsT(ZN`%3
      zqM338_PW@`wj7iV6bbSwsj^fR+48ixXy0I$8*xg<X^haG?$m#0pCLnv=>^F~dU{5c
      zH^x%gMKf(Uv^_yi?6mejo|UY|b-V-~oB%bG)e=f4uqzGIQ;K;jHRtLrp-Sp4?rLej
      zw<#f^&g+=MG@HWwQq&1|M~SR5?iC%cBF6KPv6guh*~1BHy~xMnBmWJ7{W}w3E2YEw
      zf^7WjI?mx`+4whfyoues1k&b`Vac`%itMwKv`IxmT?{+8%ssv#M%R$JTk@!#l_`QT
      zJDZ+0&syp_a+j1TkI1uvXUV|Fr=0I*_z~cLC9lFV1fj{}%yEqx*YZt=@-6Mk+ko#q
      z9F3^`Tnj(I-ta>-UU`6~bu_Q3U9EiAFanrnzH!u2xcwaI+%5C9p`BlWXA~2e?_*+@
      z@!KDH0&Ojl!-4Pyy2`-6BX`go{sz5IP!pC5>*!rUAmYp6IH#LA^?U)fL)BprHNom;
      zi9Ck}%oBY9U9ixNchHBVV$<LvdTfY|A)F*Df#E!_tj8;q=Owmy9gw8%ArKa1<S}{i
      za)C-4g#~Vs$}LiPmsFN1_IoV-eNy?Lh(ah&A(W>uiZg_En=qy%?^V=5Kvtc@*;QsQ
      zgOs|0E5JuZ5(n}UPoR^lQsSt$zg+U(zWI})&E<JIw5YfFHlZ{oiTF;gpj9$x&0+E}
      z4o-EmC6Rk5?_T||OsJI{F5Lb5cTs?7CPUyes_;3jbQewd0xcYe@TGzcyQ%ZA5nN=P
      zAY>;lA<pkE8uK!nBTd_n*E~{xa;2P^mt;lc;BUQyIzCn2SX<*@L=C>efc#E{BWzap
      zCW76*4P2qWHc>4XG&Ksdn3(~sN!vtQla|BP6*RPdih3_!Fye+4dOXao0;|}EHCFXC
      z4q+W(<f!$xIED@0*$-)^?|GFy;!*g4bv?#a{D^D#2{wLK)gO0j$XCDQRnNNUhPPN_
      z7`=F#8u*x_8U}UHs6Y=b?soPRW8~q{Ba$e4q22f0=eXD%zbY)(@_HUi_pk(yO3cf)
      T&1V<3XZo$kDg~d-DLnHZg?RHb
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWn$xh=y5UqwlAOT_^Vc%yMoC_9bPJm`mB+!hA#DSYhO3=t|kKCQWw{hSD_$Wkm
      zbwg}8*w3{+SG}s&x91lCID)VWV*-{R;$i$0=|`#VqSJvfnYzsSm{g%6Ah5wGi7E8=
      z_5pjQ3X{GhiXTnXF_?BSp+J0_pn$5>CwYo}0pnr&M!=Lt;~kaorhP47TI%1*CR0w0
      zq9x;Bj#}FYWqp1(b4;@#p7e~&)P>Xr73Ko=!V7NBwt+)bCMstf+rQ1n{eIakpg}&{
      z_lRoe8&xsRL<_EoqTjKf-IF*t;@WpyAA-8h%1KP<rz%GT)Jc-7EJ<i!nz1JJ$f)0;
      zxm2Wul0DY9<I+dIO4zYO2Uc`e>nuytSdpGBKOt|jYjWB(cM%Zhm(*t1cET2O-6qfT
      zZ17*eMtMYcGaO@1JA%6j-m%mLqni!#9{!Q`R)WH@9okjWWzk&pOwf6@Ds)XS1@;Q3
      zp~hJE_Kde@J<fT50|L&Q_qYIyY&Si&V2SNzk1M`@)z`1VI>$F)lW_~S8FyfpaSwhl
      R{`7VGwvPJ!Mei{<cn1-X*kb?y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYO-{ow5QU!$G*F;v%a0HzNH#>QvqWW8iAAL@x^t6Jab;o@JAt#Y-~b#7b(|0t
      zRo(c>p3m>i%+K%FH-JZ61?UOfZe%S#6Z@fxb@D`7Pjlr=8Q@r8<ZFqRTzOe-D02dn
      zHMt$Nkh&s)>nNV>qp849*$$N}&D?#|VwF=mnbuUe);5io9A;llrSmyy4)Xs5LhH<X
      zXTkjm97P@-XR^ph?^hNAH!{z=XH(9UbyQF(5Vy(QoaD3rP1}KK%pP|oy_uR0*$n2U
      zDl>XkewuJcJoxGR0^A_476^EGC+Nd3F~Dh~XMZ}td2_$OWurrcjgGvs!<f$=CR=_+
      Ba9{uc
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~d-5PdbwGBOOZpop#rE-W7l38N>1YfLulM<5$QR$MP6q**%HWb8?%XGPEc
      z4}XK27!wa3Jo=-I)x$)VJxsiGb#=X0Rj;al|M~F~z(cHfa0pvx;+=ROnscR3!<LMq
      zj?^bIk;%T$vexYNq%rC^lEWbnE}?G8p*T;&R;*K@v`hvl&DRJ2o(W|m6D6XqOpJ>4
      ztDUC=+9gad#H2!}T@m$V>Eq$A)kj-Lp9rJr8)a$_2=nct78{Iwth7p>5UOj%(0Z5P
      zw&D{x2JR<-k8vL(m<|x&24VJsepOGyk|x_MZLk0KSSAO8he4Qb$2}G!SQ7jBqib6x
      zY!`MhFreX?vX-e+nO+XP6WdxVYxO*%$k(AFm3|1X;u>SPi+djC2#Xg3D?$gD#{!|W
      z-`soFCe;3?0KtD5_miG{u54Q~!|iX{vV>qq^FL@s!Wd~h)ChA$3nWx7g$$=el{YoQ
      z-_=0{C5*D?W!|-N*{(0UyS%;$j$CJNn~@IN@%4>wm|WlZj;Svh=q8_j7TV=RFEGP?
      yz$Av^7G~KJZsSg#W|OUrxnEKF%+`VB+wwqXfa~U52lq2n6^m^BjJ<?qxPJkHV&rxJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVU2_vv7=BKZG)=nDrZuI-fTAExS_mp1N)TxyV6YY}5Tz=xO_pY1yIHdvT5h~>
      z#w*A1$_xAhj-wagU>Lt0KWF?4`WJM@8y#;PpL2Gz2{mwIXZGZLz0do+&-<RYKmYUD
      zR{$QxwK)0&GMDwM`dZ#yHSOhm(Xgxq!>$?)qj5^NjX0tLBl1RGU-k0Ey6x$vZ8YNO
      z7uf1s>XnM&y5^E;nclVhOt7*HfnnEZn7UOq8m?Kl&z7DM5GMpS5XSX%+bio<(}=zM
      z#~X8+`$b+L)rPVR>B(601a{8d+e>h<Akcrvv`z1@Kx8so7Kj$>RU?TAMl@{1Pyzz?
      zY0$7C$=R5OO&AwQx`tOaNnX;8PA*Erp*co4-&|QT8fSEMFfv!KFbti+a2;$$y_)G#
      zgn(af{UoiXQ`J4fk4>tpO3334-Km)sw;&x3EC(xr(H>XG(zLJYmg&R99A<#R#Pw>m
      zwBlF-xh~*heZ{HUhV2!6Bui&jPcB_HDqf+KEz8&+(XbPf0-EX0*i4;QZ=Ad&u&F0X
      zc2P>0)9^61GkX<^*rC{QCNNl$No`1ORAuD9-UVVN3u}!iC4r49iV#4c*yTP{r<bel
      zy`UNkCH^sYGP+z6`*0wR{Vb=jZrgwwp1_kVz-7ZLTBb8wZ`xI|9h=N{P!}i_MYD{8
      zL@H=Fgr@`&49#{emB`p+NlCd6Pir`W8D_9TG-=4R@X$Xl;%FQ!`R?ZvBuB$BX_jF1
      z`5clc;#mzP3=yoIYq|NHhKI0KGI?IZJWkR9jU;&%OP6G)Yr12oY7#uTBS&qKD7+N^
      z8oyP3H73EW)tgq8&oHPhu}J*7RrT?^P&%Tp8bc|n0<&El+A0U7=QoTy%khpTqSEGP
      z?NyEa=rMtX{{z=6huLxh7qJwF-kpdr91RQDBX3kSoc3pzG%RBet98|^dNp}wYPc+S
      z`fG-{T=Qg=S(5L|RIx#^Sxud;7dEbJP*iLAc2`^9Alt1gj@JYZ_-(Ft8`<84zpg_k
      z;lPz0j<vVVSMP4kT$M-ibiLWA7{^T6@zU%2{cg#Et)XPI$rml%bq&6c&3AW?ZB!$|
      zFNQvBMjQj2C;0EB4@pF2yX9Q=UbbM4!(1KZnc(kG?lw|6@d-wAkrvW7mC*#p5gG#L
      zIi92GMVjh_2EmjW?nj0zfi2h?K<?wZPwsU<`qkwt%5cm-3=E~|19*@l6$@ESDaalW
      zUYBnX`sSmgxeVv7zF)tm@2Kpk0mMayDnlO5O|`J&JtT8e(_3yM+lgi)H3r_Ix^I*5
      zI|@1H+k{aKV+zwmBo20Aw~BcfdF)a7;q&sniFxKq<1HsQEhzls^ttz7BC<a@m5!!k
      zEgXz;8i}O))A1G#Pq$~Y>4EErPq%P<niePC$CiVG>Ev~6pqZDBc{H4wNVG6FG5B@Q
      z{hP}F5q3<OESczejB@;dRr4Y1<RkLFfpOeqL?2@ZZjt+K?8T>S+F#P@8_eQc9LINf
      z0pH_A{D4KSFK}&gUB{0~6$gXFbV5~}AlGtF>Lbg<!6{-$MIHJ6m5z>l|5Qfqo#Cus
      z&CYTbSF<ub4v=L9FR8K|W??RJPj&;g0$*Fa$$}l={S-5}OUfx#q{y#yQkhf~eqpe`
      zD#8oCK}a|i5>ADLQz7A0NH`S|PKAV1@Ci#w=L1R&;>)lylF~%<7B0x4A_qebwHB_d
      zXZIV~{I1yT^=(6TnUGy3WS0rqWw1hVqV#MtA^!U~q1M27?iNOW;;a80&N)8)hJ5(k
      ox<PJ!Irv5XCk6kDh4HuY@4xx+z<(c_>h@Kv@>fdl@LNOlU*MceG5`Po
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+Ay-veG5QJv~*d+WVAy80KISm$ds(?U3ibR1#f3a7Qqw^iI4=2w?!2|G65qoEl
      z;^s!${dRV5es*8q0PZo4(IecfRin0Py(!EpeYEA$KG^M3UN~FDI3x^xKh;XQugf)O
      zjxb)aYYE{$tYIU?>twnJsM<L1)7EE%xMug_xFlR9EwN`do4yMnel0QiH`zxB{hGCG
      zo@-4wNc_l1<@r2wg*A(!c5JvJ-2U171Gtf+(k>BpO)4&J!`%*H@Mb@&jGqh5gv)LW
      pcm7)uL3T@SKqRRgA%agQ#&OU-20>478uSe3K`*?@<WSxoM!%2tV@d!3
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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%$Jo4`edXHH-|*K+FpC6cf<J><k<XAeVD8
      OZ~;Xa8Mr~>3_Jk-M?o?G
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMYi}Dx6g^|Rv167r_|Z^kiQ7Pk?WCqW3n}R%Z75Qb0*wNp5@KwRn@u-fvtH)`
      zKLGd+d<XtOE48TvQq@l&@uN`Bj5q5gb?cT7-o2hVbI(0z?%jX>{o_7>)A%@vn83`2
      z+>$$$_O{);QJHr)Thh0ywqyId3vR8`Uh(9X^4ik*#C7c2ZW0NB<N8QNZu^yf5P?)f
      zI!;yAZVHSqJ`p=BkZic#w)E-(*)F!@+fL<*Y_BiL7WY#+Q5P_D)^6JVoWRMc0cne?
      z0*QIIuF{BO#6lW}1>#f1)nN#{VBrvklE^YN)kPW8$Y4aHj#x+{rK1-u3?n6Qc+qaE
      z<<4eRc`LH&D1pqPTa(VJ^lbe<SWNiqc3YrgN_=W#sZ_LB&<*A5OK_X2>0fC0$`hE2
      zsGWD4zGNBRY|nuZKU?g#s1=>Ca1s-=fawJ$gM^Ocm0zuHsG7fjG`f_;Ym^w?Ur3`p
      zeci$<7^lge>oQ|5O1xho@3z+QJPJ7g2;@<6qN#Scn~AEvsMrxSH`VggmhE=vrFLb(
      z_S!vb1WJ8fd5i;bylJ6=Hv|qfbRL0Grd*Vfj9S&Z7T(sNgu@*+Br%s%Lw1}Vv4(wM
      z;f#jG>#8Aew5|MQ$}qE_`yez*p!}aA_jO0j+FvWK>U%n8;XE!dbE`xCGkxx<dp3Ga
      zf#m2Ci<0&F<BB@wsZDoF_21T2T(+>FyJe^g6i8olJ6=sK*t+Q_wZ12QBu?p`L4l(a
      z=Z7Yan4ULAF+EY{&3WQ`n7=fhBhF$}H%OpRx`*dW<+~Uy{fW%lJ>>2p-wVfXn+!+!
      zJi@%dRV45!bA5&!u3;Q2c**R=_$=UM9OGL@$5{i1O!qCHnsJ+q3BD&vcaWdnL*W5l
      zU7q<HIsPC0i$(BN=KAFF%q_xV(4-l2<O?QP!x+BA30yaXrEaQ_Z~{{(l8EV1LYb#6
      z;-?wKxjNIgh_PoY;%laqOj>0TwPz^eR8Ry5B5>j>mZ$G3CziU}Eu(!8r<bM=N?#||
      zrr#U1;-+CObkBy;bAj|25pNmkLeJG8u6G{gYLV+3a(T?u9?11xz{TMl#P$B8Ts!32
      zCD*s)`fecCtl<LA;=_RJI$h8n=4oACx6Rz=jK-$RI_fp;hyi`i#{Yp0`(uPC9~zi9
      z9iw|EZ#qV|^2Ps0^b?7GCebfXO*9`8tp#0?HH!9dsVhha2lf0)<9?%Yzei}Yp`L80
      OCmZMy_=uWfxbhIV*1U%R
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}Sx*yD6#gz03hf|>v}_^+F3=XJxZuJTM2H|NiZ&57aVVE|U^>&xObe)q%d7vu
      z2j6_xL}{Xl=nE$PDC4=)=@uY#lFr<F&i$5i&dlF`-+uxa#-tZj3|;F=R@sVLo2s6O
      zP8+GTp>y4y)6*IIj*|Am!_ZQmQiw3r#|zmEZ42c&^F^FdhT1VzSM3Rg&i=!aLNNx<
      zw6V&4sD@vH7ZO8te<<d~F@|0N9n}=lH>YVlp=eWPB9kJOGh1<<wpBy-p#lDSFdUaq
      zgIb2h1y$#FGpQABK2%mT&d|JI#1$>3n5tO2n;tu<S`6J4!iwSxR>_1%cqL6#6^4OI
      zBe(hXl5H9reAI!-E4{a}&g1rIC?+g*NN7cy4<~WTi!O%X!Nro$4Vj@elU`M9zE1{K
      zqLO%D2GLPlHu$#X=pm>IV<n*sHCaW=IAtkS*VRnHxW*MzDDRVSRy3p5<S8Rd`5l!K
      zN|1S{5efYWkqC?1i;77-VrZ{CQmkqyR);9V<USjg99MMN(6wzjsbsl)K*E|~%4rAR
      z61^W5Gjo9<kf+MGfSN)x?X-a5l7!0`VUQBsF5(G0p^6ffO>P~oGTbWW7Gzs}1!6gs
      zv21yT%Zg<gag|!ODsQTGQnr&^wv-f?OK7CB8rLNZV33NFS5B`NjY0)|frKW`w`63@
      zIG<I;@CNtE7!qwm4~={^z03?%V(#gwmY%(+qyKtZEz^D#-GkvAe33u!|3Jgz92$4S
      zk#A`FLXj#oi#VMICgH&poxOo3+(ZB~IN`(`1hmkO_yy?_EHqtcb9tVV3ZWwyjtu0`
      z9{!4^J@~~fyo1gXPctz9i*)`zb?pHmE;$@>{&X2f4|)k(u${&kQpv;|x@_~#8fYO`
      z=Z@f7CdMc5<0<hxbGQTwoprgGm{%9~5#b82fp8>;@DadkRI&s~N)nJ-R;WPHM1a~O
      zOwb1dgD%BKGAbx$BYS9x{094g2GNt|p&ZWd(q?Dm7uXIi3ieNK?23p9P1g?96o!vb
      zGh{SNMcqa_UZ4-Ji1#IZ>0e_6Z!nIx)Y5llT4#$|XEBN~M=QN0uGXlt25JQBXM)eq
      Tis(J?zO0rt#afO#Srh*O(^P32
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      JFz+tB`9FUuAK3r^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OH&+G6#j0{3x*C5GJxR`5HVqx$mD@BItiK#L?@X%bO=%6BhAbOIyT)@cMnPF
      z)`gE>kaCq(EGr9RB9<;vW@D9B=~|b@a-~Lh?$mQ{_sld+2ozP^x~I?m&Ue1^nD77n
      z`YwR|m`gxm*n3%9(XM8lE4sOmo#gXc)o}CNFs3THYuUrzG06?Spt(GOC_}q=ku@~(
      zKRb7sm)!*74E@roU2(H~g_~~nSlQJrv#2{RH@Tfa6GLyvrQq_VhC`AeB^`7tTjI8^
      z8TvcgoWUueBd;^ub_nu(VUmHJWZ0IsOvlwscSbX+Jod+_UEh5g`{y=8Y(*FtI*MVY
      zIfl5qs5`^^7zX6m4Ko+6M|4wnCm4oCHt|i*FhuiKg*SuYF%=!ykwgSNDpKfWh>Qq_
      zwxVwGGu5RzZclrObrh|#X3S`mEG6n2qk<sA*rP*+3PWt09PTN>(CP6F)+m>r5!{|o
      z(T?qunkGdfjTU&I+`ch2l75(Ut-4d|43B@0AE)Z-Ms`Y+-D`+kdNzSkhMl2;pSG$F
      zmwrj4u~)@Y7^6B03Wi>OJ8xA@SE^M=Vjm79u;1^i4XdQ$pnyoNfta>Ru4WTbOtvCJ
      zx0lU2nxeH9t*TKeQGb`E4pb(`wU%pn(ojf3vq=)~ITblk&W?HA=3+4DYl)nfd4*wn
      zSu@Mr2s{)|CR98xp6m!b$xBD^rk&c?uFEfDwP|v0&T)I*vX_L@fG=`*w4{zyRuN`W
      z#WOg}(B~!ka94__)5MWBF3&I0_zLv?b?9O$YuF4uVZ_E~QKOS8PNB%qwWf_~Lrra*
      z9!X!65VaD@l4NT#S$54g*GzC{RGh^*hL*DACuxKy)dy%e<XZ3wrV}VJ42y=_ERu@z
      zpmA*Fp$dkke0>}-#Lb4k(I~e)Tg;3aQ8z36Dy^-8;QG3XHw1$=pFyJ`k|nEZm-z`@
      zti7&v+jvZ*$DkHWTB&(Ma~w`ITG#GqJWdS}p}!asXck)tEl|m}jkdmmRz$@L0NUHd
      znj)J@mJ~Y4ql<2b$w#3xIhy$b-J@S(=PmiJPuS#_3L$Igr@KHE)?FB&lVMQC7AO-w
      zN?f1}g%K=5Se6J~5;5*00C5ZxHxdd@VmJL4SXp@oVxxC3^cfix2r_Xp1Mdci#Og%$
      zV8nlX$tN<H`4+vIdq`hHD)SA}tH=;s_bRg25sTi8+^pkvkQ~7KB-#fQ=R?B$C_r_v
      zPIVCDcv@0BRF8Iu?m|2z+Q9R8ejLD1>KIBLgT~iqJT5UQztL4Z8^H0zzd`Ii3FKUp
      zj^PM;eT0KPLW~fOhPD5k0B#2W8lt_hg*5JMlEyI{_eo69DWni-<S&F-{6HP>V*sm`
      zhA8Verep#q@Zy%Rej==&H^h30Fd+7}kL41p2w8S}<u4Q?M{l4r(|17J@8I-Tcv-=F
      z3hT?<z5d_t4c=W81^5L`xKESxE49Xb>e1h1+(8e~FKZK>7w{^@OH$O=Fe`PSpMfni
      oxcCSLe-eWS#NaPt@PHWny+sBJ-X#7C-ohn1#g7J~g{vX@KMGDSrT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fEZv6kWSl+77f7D4=2y3ic)i6>r506i6Ud6AOLd$!R&j;4q_|De^0R0k28`
      z6CVt3CVrH0pLU={l42ib&YpAjT5IpMPk;aU@e{xd3Vyf<xm|T%J;+&~HDf!sD7MtP
      zZWn~EFKueJSxc-Ic0~2Vf_bngbg`}4!VeE2+c~M3d!9jvSfZw>dRf#g%{10m774UU
      z=q{LsWvhl=R`t5@vMBi@g3sR3ti&`SUhGJe=c99)q1i78W65jIrpg3Q!Q2!9up$LP
      zgo1D*sz5<EAzai9@ut345w$h7q6<Q_XjWOY%F;P@K6<1y!c1qft8HVcU6yE8N*HL0
      z&FLyP{cUAeRPB7K9Ka3S^5Z69q+{6%MsS-Ii-tu7bMK>R2*V}}T~f7rv6J^>lu6q`
      zFMJImjxhz}NDxA-u*5!BZL!JCN^YdeeoPX2WoA?Cf@$hPHG-HxQb7u7f>LRIYq&^o
      zCsP{)@4oa@HnElK6w2mT34{M=b;gYQ6x|kW6X>A!CsS9Er1tv?9!M2I%{rGJU~#hw
      z9^o+;vG#6#iO|=U?39p~$DS&9CXacS=ZmE!IT>>bGRP82*Ui%<{r_=s*x(@JM_Fpg
      ztk<eyS(8&1yOKI3JH~BYF$_^F=&EH2p19r%$IkB+Mj6h{H^#+t<AskSe<SLOMC5ey
      z+QWN1-MrJo(JV(UeuvVT6NJ;5@96#3Na*9IOb4x_pVx|9Gr$01{ARB(<Uo9407*HX
      zK1TQ$!)J)U&iq0s>psPuL-b@bXP7v}U5;ANF;>T(BSZpW+QK01V2rc|)o2sWp<-a!
      zeI^Sr<vmO>9sfmP+M$2%RFG)V7t@(j%zQ!M2oDe8JHnF_<as;)m1VjhOY4ywRAYV%
      zak3k{G2R0b4sQs<4K|9%;-5QglYB-N>yxc|(W<AtRT9O8myPEu%=25COzg-4Tz>(}
      C=Rqj|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{`Jl(wtX3blSx0ToK6;J4OK3MR#(CTJgc+m;d6EW4z;1%8Xa!3Rwc
      z6CaFEKKP@IXLegY(xloZJ2N|T&pG$rGyD6`_a6Y}u@FZ@Q2JnQo4X}%$8t7Gi|U=(
      zw*88-?WJ|gcUzOo6?e1YF1Wjk%2peuui}Ubiv5Ga*lvU%?WvY!+I7|PEZ2EkT@=W&
      z;6%lBJl}Nux@osnjH2{U1cUy2%bT1NjMe%Qm3j1`<yih>!T8ia&Q8|_(TcmS5}+aj
      zNu-h(K*oT96N2HI<*1kK&4y~dF&nlLWNL1cqD@NYy7Mxsr3vQyll7L3QinVhW-1sB
      z#g=T7MSs=!pqhSpx~_$tGjJXk1hH*h6D>kl;Ml<gE+HSsnBZdH>KM3;aVDmMPO^_%
      zuA>}ZkUJ(`cR1WB$1zE5M?nwTpTq>N8n}iW5t+y;?a=hqdev8(?1CAzkZo-W&h)?s
      z24V#=8|sL+Iw2!d)4e%rx>*Ay6iLUZ<8*27z1z0e!<X8utXrp|ZQrs>OWVw|Th_G%
      zv2Gf;h1-Ip<!N(<4VE=cbJxH<+!rJWy7SuIYHtY!rnFmPO5=1BD)m4MR{v$XW2N|y
      z+eH^7>4FTEuDb13Q$4q|6|+5|v${(Hqv|-SRk2OaQ?%u&gMM`{AM%77;I)e29AX&c
      zDjuwc(rJAKIFE6USAaVwxw_3&gk!2O^A*E|nQu7tB?vgprw)gVVT5x-&j~P!EJs!e
      zxekOw08N?K5N8W}7~aFhpO{$T^z1LBihA6~l|$StML@12CbLLO31?)E{+<tb@*!4-
      zhp3ps1u~`ipGJXPf*BO~)bdw&TFW0jq^%WZ_HliUQa*Dd0-Z=wACd=1NjV_NhCv;Y
      z6!$eW{fs$&DMRQ6N1ayg5PGG!hZ`ReFYe<`^wR-)22r9{iN4HMzCc!LM^echq>{q}
      wl!=;R^@CK>x~va7d{?PS^9|}IJUT4a(I)6rBX}G<pWrD+Z6Dzm;u#`;0hZBK=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH<QO6#h<Wn?3^6N()qw3W$A45#JVJQDg?D=mPA*U4Tms6A~v$k(GbPt<E6M
      zxNzJ#<1cdMcy1DC3r?|%+nnBe&iBZ7`|HoQ?*Q&$ML~$LaG)J&$5rROZnmncVqa?;
      zZe1A0i#^@7?AeWNaqO<?!q{6ChG=Q7P!J|m`gi%wXB~u;BWztWn!<K;%Y41QN}vtG
      zVBInuS2NwFX0%0wS;-F(qV8MWnOz`EHTnY8_~?>u>h3aOx^TtWVv`WATYDl7W~3s4
      zWC8<7t57jW7;fmMc-cPO5%#vWV+caJVeK+$jj3}T{1}$h2#fu}{^1*QjXA=XO33(Z
      ztA@t5zuGwvyKb%6l+1D}ZeW5CIg+MG7Se*AgK^wMUcnS$vadZVZeg003GZFjt;2Vg
      zDNL6z*28||e5a;hmXPfp+6h1ma|Cv61_c#Gln4szk@>hFXUnxYOe`mX3g#8uWxFqG
      zP*DZH-<WIprwJp4Vwcij2ESj;3kL^g{}S)>Y_hlMmgvfD(9=6Juvsd2tm28pSGdbp
      zuzgj0dMx{&i{cr;#0ZHkt8MR!HC?7Ed#QI`nnO_6O;gx)LvtL#2}^gJKf6fCb3O+6
      ziiD6u1W~ROuZpEoGS2)Q<~@!x?+kJEkgE`XCrjlo7%r8+;@W4g;X1Ff9r%qAURCco
      zi43w_5k@f<jQGF<BxFU77%!b*_ym(bFtf>z<3FKR(zj1>=OczH@`qEDx$0o#7zGqX
      zgcPJGhEa+mPf3(X^>Fk4>;RWh_<w1FkyE@b;yz;&9<U5w&L*FhaxxtnjS>Ssdc)K{
      z@kR(zSVA7643d=fK(c;Q0FvZ=Ihs;Z_S0bW9G{Ugqtc{j9Rb}YN$3!2-nxY69unu0
      JFXJ*oe*wxgKmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_e%W@k<6g@4=k|kt2561~k;*i9EEr%!xkN}Po5+xxrCL!1{#5_k*+n!`RV>Bb%
      zy#IjWwV{gQwWA2HDv}gX#fBYKu%?PFAHb4g0i14)q?wUyZ`f#hdhWgFo_lYf*3bWZ
      z|096Icq56J!0xNYvay<TS4?|8cSg<`Rm;mu%Q{;&J*SdHTwpM0a;oTh6{8fgNeJu>
      z+IU9MlDTR18w}MYuqR|zk+kAZ(@0>GD=Vg9&B%&tI`-wl838dN(4BW|*E4Ky#;~fg
      z^KkXwt$)2g_q#x^)QRSu#U;m<wkNP-G6*u!_%bHYRhE{VH#{kDFl5z2e5l6%jBiih
      z%_Yk$UCTRF+naW#JflJ=Q4mNRH*M29A+U2e6mnu(u6pN8X_d!DW(4ASr!3Rxz>W<1
      zaJxXq@W@OGbjzRzy=t{PgDu#a#2$e|K?<$OHDlKkOk)sxRpfmF)8Rx~+{Z$BwtOCH
      zjZOwC!J!N`VRIUHVK|Aq1^R<oHoY<!L6!wG%H>lfk6oNJT~FGwBCxNPTFzMUa&npN
      z%7ra-sd^_(TVALx7G*`xkieEnr^J~sI2oKNe>3ham@Y?ZeKzb|%3~+yR3}=7quC>Y
      zfpFO-@(Z$b?X<JXoRYX#AQxoYrfPNjW=oFXe$|qr0#o7GE#4cpBpRGarSX93!-E3b
      zf|)h)=D3#>g`%@6usu|zh7GIJLfcs^I(6C{>kVo9_D$O3cv#Us^?%Tg1lP3liZ*p2
      zLfbc0wAHdLZQq8pGxO4GNCQWCctlr7PiAAEc74jO_2l#P^6dAyZ9m3`3+l*smXug<
      zdR2&qq-p`9YaP%sD7+VoS7pf?OXCuzl6XSkK(M7P;}TJ)3@+fJK#%FxVbn2cv^H1u
      zOe=R*9XB6mWL6<PnZYzJGf#aI>od}7twedjsaoYJs$os}mHRUp%qsU@*K?NYz`RAY
      zv}u4BGI$oxDd{xqlC%Og%D<F>p@eXN<q6*cjrt3m3?G~cWmr2bxnSXDXJ-p-8>oQh
      zGgyGhxnQ^a>TmOPC>TSlw8!`YTf?VCgR)M`>h4i$q?!}L7f73Ktvr${BW8&vSC<UC
      ztX|`mH0D^AinBt!S9HTy<9d9RWjn%!_I#P8S8IM>go6&m>#F2f)kT{LPdU{}NuD#+
      zr1ZCp*g?gS$E09Wxbv3bx{_ks6TTK%i>B<?1%Ullm#!9((4McS^*!w6mC}J2I>Emg
      z7(fbX?%c*dCoyEW!)uZ2xVm%nlb0i(-L&b$HvabW&7yaV&!OxsY|oC~z(BV126knC
      zz~GgvxP?1zVE<_LTkOAyJHMe_45R!VKmrhN^3Tm%NQt-6Bi_MI@h<j@_i%vU`)e_A
      z4-WE;(UHR;A}Zv=Ya_>N$VW8teNE(JQREMZ{2`G)BJ#&X{)EV%u7Ugz#(d=C8zPTu
      z<daS0(^2Hli2ON`uM_zTB7aHbuhu|5i*p+J5uEptbNU_VWJL$QW?^dOOmG|GI~^vY
      z)@(|xbOHrTv~k{bJ>vXRTjxhH={uhwl<IRLyOTw3vP!F6@e4Y|uK^Z`M&}ZEj8mgJ
      zM~U=f9ntSVS8XmHj}rMUkV{vC2&K~ZANO-fDgV)%n2D14Balj}kxB|r;fjW)Y_1XN
      z>1e1wHwZ<2^+QEiJs*wqcUx9eVBi0!POVXuVx-2g7?QD$wlT_(evB1XCdn>!tI8a>
      ziMjBc=w`)sqboM31D&rKH!9SPtGLEc>X2Jl)D7>34TmzJ_LjJc>(z@~b?Q}x?N#&V
      z!t;|*emvgmCvlWX9Meghs2K;6sA74YBotsRi50Gt`m7QxhL`X%pZoaj61`vHbCAzh
      Q`DL8X*Z5Q&dL6O<0NPn5aR2}S
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)5%Wl&^6g}g-NC<=k=z~`qo=uT31;Hk$g%+|Qv`9r=bT@S;!I0X~*iKuCFW?LK
      z0#+<wg~Wmn;G+<C#*Up=X%?R6J&(Ef`p@5AzX7b^UJeGs!Ux{tN2YgZJ8ko&Xz`%q
      zH(V?5-f)Mvh0Gz%FgF-9c*{_HZ+pHgkGFkpePk#%Rj3*GcE{95b%yLS+p+yshSXAR
      zhatV;?u!CaI9o&xXBbLN+Yy_=!Jd%s_+CdaRGO~EJ3Cz3Y9Ae@eUf6RYK8weCdE=$
      zx|Z;~*W&n9PdGlq!==y|KlIHF_n_-KbX-r)gbFkJ@pa`hZ}sCCE+vr(njxcM4D-qL
      z2ob%drLwsxj{F$OFgwwXQk~J^Z>8wjZr}|-%5C8{Z0QZsEDzB*KBq*=dM$Ai<0&ch
      zo+x7EJ$)R*1=48pA&Ckd#VqTh<w~m0>O|d1vL|>^kBM1dw0t3{Xcpz0OI7YIxvx&{
      z56O%dEoP|Kb{Pr^uj{%pxOqgIZ8wmXXxOT^<|Z`x1J$&sf?AY*4F&@lWNDSBHMJ;>
      zdD=aunbDkC{)xg5S{NwOSfCkLLmKNiN2_8Og!3rTj*^Npjf!B6J}r=dvpRT70~aIp
      z5U8LPT-5heFkB`XY7flPsK}nsr-a!k*{&v=2`?iT2^l5ebP90_#XPP=E}qh?To~-T
      z_M;LKzNtIFVZ=5JT*WoQFkGL4<I^b|H?R=-cuuoQ?YNK6nj_5ZxDS;>m1ULN#VOdn
      eOwCrs%~5ZuZzDPSdIH<6sO|=CN8ave<lTQiIUD}~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2u};G<5PeS4hMGX3u)%_000shL1hE7Gl_G`$-QD&IM#e#Q0{j*e5(6K=M<K2e
      zQoA6K<#&FkcXxjG`Stz*-~g*J0)f4I^`u@>|E%q8dP-wenKIYD%*dD?*%3K%TQ}Vv
      z`J!?|iV+EH{-Y*FQ($dY_-NEPopusv9&4-16M=Ahr!Np?#fT(A%qNI3C(zEdrOWDJ
      zK<-)%3<-4dVyH}CIX&S&$*8>3USL0;9rm}ABLR6;dpgsT-s``V)C&?wy4I4*jPjm%
      znw%QJ2G|1M2Cr4{;m<R+m>t#}Xzad0zH%Z!!YDZc=ZJ8D1%4$gV-Xh7<``h9#$|Lk
      L%DP2}6|}wq{{L>*
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      bVWWX>nq*AB=-npPZuHdC?niVnh9CbAg^Rxm
      
      literal 0
      HcmV?d00001
      
      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
      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
      Wn&fU8WF0(=AK0jX8ZIE!h<^fvj2nOe
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%}e^7(I9MizM4ZV?kOdMG#AZHWq4CLa~~*mNo_3K$KFQS;#G2W=Wi6gVa|$
      z<M^U4&N%wgskZvk2OWiuI(B?>#y`d<pVf2kCSeJb`f~4P_xsLwzVDoS^XEUmJOXe6
      z??qq;99yy0to3yD1G}`GJ}YlnHOI~K*^zna$R*b<moAr!(up7_(4m6Uj>XWK#T9;y
      zAS}@DhuA&0P2ix;wae+etk{-ge`qZ_l8{yXvmh%~mYSP7D<Cck?8}x*Ro5!H1<R?)
      z&{*(`)W;|O{#+owbd%-fxiwjG1&-$YwWWHQ&Ta){1Wd=Sy0RoIIqm{OyCi5V^|=wo
      zw2)mY%5`#?5(rP&CEJ}82n;6+0>Lcj5kmmoCJv%Ag2MuXJ8A4djo}cwqYyY^q5}ui
      z(@_%%JSEVcvrBTiwz?=Qv))(|x$=_b6fBO4W2(Olx;O2rKyq6TduYZ!I+msD2`P(H
      zUQ6tPO>yq6AA-YE$wG{@k|t8<WXuh_BJ-~0N^hn`f&EL4v?@(&sOT3=JcnZfF}vER
      zq(^m4;DA*udZ~@^Qi0)Z^!=JOf-=cM1Y<46+AUCx^d%Fg@G>j17Rh+%o=3BeRjp=p
      zxpd97o%A+MSVf@Csp~E<@MK<eaYe3{*Xr|V@KrP>Oq^CU!d`$<_casy(H_C;lzgW@
      zd^U~Y46@2hG=HbR0q>BJsG9S66K~>zK!TEPA1XaDG@M*`GXFS6anZyj<ajW6ynMnA
      zJYE((H9f6pV_K{@_&@6L{Mf8S!i`ZeaTkf|+;<a6Aey(AOO{)!@U|GAm>nN~te}(r
      z*=g}7W@j^#ndAaDCDNRUw{V5GOQR1RM4x()`eO4;Bha<|1m1eTaSFRygS{e3qPYmB
      zc@XmDT4hO|x7GdDzsLDJu3Uj<m>7V85O~MpFrrXUao*7eOx#u;;&V{l8TuV>4DKq1
      zw-47Y{<=g2!M!u}5KpIm#i99!=-EJT%Gf~P4?3-%Yl1MqG}kOaFA(4g%Y$WfG6pcn
      zUjol!s1BUwuD*p*KcVjd9}M(!4eOWJeaWF_GB1OA@>NC~j83TJo;xs8<kXki#BeL6
      z6|}*@KCH6GvPSLlGV7>{y6Rhz8EJNXk}-;0IAv_&`7O+t&Ryq3Z}}L8n+%UbwWa2E
      zs*YePhQ=L)f)4_%U4G=lFq;@J@*mX0$ZGX~I5Bz?qa&L**-GV8%JrGAt$4GoI9|c4
      z1fsR~0L-)keo4Tu_5=*7E4<F|6AB(+w_{{D`3Kr*kTdgi${QP)q#EaPfz#h1G15D#
      zzW<CV1Gf#)JM!r6zkh8N?xQ_{yIjAf5Z|C1_izOFk>oy#Z#9{IuS~tWZuH<X-6m-2
      zZp<)C$;AW6{VK5x<h2Mhd{Q=vssVC*v)}Vaz~{3ceVs;|ql=<|w+Z+TqdfzwH}iZW
      l)J4fvDctZ#ER`7D#I@hCpwRs;{!OEM2(hNV*LBpp{{eO^0q+0+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$%TB{E5L_2%>HEdA1#vAGD$d-XsuTo50*SkuERjoMSB_gsKaB$)z(*nMuvObg
      z&B3GD9nY>aKfhn!0B{Z60^}HU#(c)-{p3T)us^`$-KfbUmpnvWfL#U+*Y8K%cArLL
      z^bLcenxGtN9wUQ`-ov`Vy(bN7$)mJ=bNR}k<VPw&l2>Cs7qM8ZxRC3-B77yq+b79u
      z0d5wm+&5yz&GLRdz)Ynz!cfS8=Ang<e7cz}?^HZd5~WEuECyCh%JZ#C&vUP7pbRqR
      z{}Z1v5sTHtv+X|4rmUTO`HJjMT&?HXZ#gzIp_!n$RZ|%xL#1i^(u<mEABQ5c(X=<y
      zymC3^88Fzf@dMOtxO<QX7jl7cpRh<+A}kYD2&;rOsHgWE&`hyKybT8_KZK(ckEwp*
      MxZU8?o;m3J0fR`XGXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcma);S#%Ut5QhJoL_*?a4Lf1q61D+UL<49@03!h+gapB@Gt-2I$@I|ElMujNa2Ifw
      z#a%#;4=RY~c#i0!@aXcW&-$uwdXC4c+dY|{o4$~TNqTzf|Eg}?x^?T?f8SmKupFON
      zqD)}PKC9O{n8@`xneM~}H<{0EwlY???al4<tZbIvMqgH<LST|fB2d}KB0D88qm``^
      zR-d2PWcPQumY0fx8U%)|b~28?R$zAB4Q%T>1S*=`lwFN-+$>QEDNtTl-%$mDkrFpy
      zn82u3Cu48P_jK7_yVaGp1;)0zNh{r9c@BRMUsm{got!{Ixg7GkDcrI>Jpv<APA+Tt
      z$-V1)?TjxlArg9HXS;gaP`|4h6EV3GlLV$+HwzNuFrLtMuRu*P2?Hd7(FKQ;#L#DL
      z#HY<+aDt<rXGqjyn!w~DQM040rQE)Z+K{IHBqwWPgxch0e2cQ_HPm<TQszp`!fXMN
      z6c|^87R>}?K3k-*re0zJ7V6xdtec^TiA&qFhpTOieb8@m!}ly)BC&{tC5{R@%D7Us
      zd3LYk=5r;=<q`>2)@0qB-{!eVJC`e@hRL@|tl+!|TJET9>F)x|N)k|TSX`}^!XPtu
      zNUX%|0^_Yzs^F?QED_rim>Gc%{yj|Z8i_kW6(;D|Oe;E!v8S^aanx2^rc1u&#P}*P
      z3EeeG+>J(Zm!<dyyDODY6_H0uX4dxn{-(WFrrU0Ha=uN~AuvC5*=1XqTq52o^x7h^
      z0UOC{nj#InURNcsDuk!WXJWhWQ7dW~f-u;aE$pt9dw@ECQAV(&4%>IRE$B<Sk=J-#
      zxXA4iZMaWcph2N$&tMiTr<1`usLtrDTHeOA+hwKIdE44Y8^OiBOJXOt#Zle1-<b5B
      zUc1xD&>^SeP*-2v<=|xlD;|>AjR&ZtNYRw{JUW-fBfQOZReOs_i^rYST@nxD5rJA#
      zH`{xxd^%9KdseUQ<*YQ7FZJ26buA$x?>p(lcH39J_edl`<t`lhv<OT$QQF+Jlk69m
      z6<vf1bHGtxqOfTR2m7dN5>6S}sbIkzu`AKT>m5<}QRR+%c*!CQC!Zxbi7XC~2}#;)
      zugBu%Rhsu+37<`-uu1GOp)Aa=tKU6@(q)&2B>HeLzWRp@d6XfCDYcm(u=v`F2`t`F
      z<@PCw$MM8a0=o|6C_|p6n)B=)x7Qxr;y4A*NgU&TIJMNMq%pDGixSUsBdZPU;<L|&
      zuSmRvjr??ipQtT_lK4p3@HL5(*uhV4@DrWs+T3*uy{4`u*x`XX4^Hko5^v%yy5k)#
      z_x(JlsE#yXM#XO;7m7bRAjQ^x;Oc#evv{{;^oq3(JO)i9_TclfKbH7V-TBn!tGBy(
      zFKKUZcu*LlnBkDPl-EMHe@lkiP*d8<<!q{|adD#~X40@$PLn6)f+se5noFNb45v3$
      z^t6HAm(l;~h2PL;(bpL9C4DQyDEd26DR-a(on*Tcqv_p*z#3yPmcEe=HAJN(^H3Es
      z*M!Wfg_kg5(Pd2doD2gbn*yl_s%ijLg(;Y-P&7yxP}6nP0V9f6PAv?xLsX*{)tur&
      ztJR_oQ&Nr?aPu%<;T9Nibvo`S;f~z^M>Cfpy2U!~IN?qhaZ6QnG>92+%XHi+!kxYW
      zj^?%yr|;-3`Zk<1pl(wID0p5AQLR)|T#(hOI2K>VDm}EXsMszl-ps&qphBuK54=(?
      zJ0_RWGYxSeS>NE*I`}(U^A$s&YjGE01P^Hj+&UfiBjK(ZaLrh+a5Q}xaQEoAp9uG}
      z0e3Gpg}BxbHz<vpb>453#@`KTY{pjNa2lD+X`~6tMBb*8{~+?8Lm;<@<Q*Yd-=Gd1
      z{1>I*Z(|DD2_tyk3UMpdcVIYI(q-JQ)Bd40_phR{g6zUN5<G#0j1{Gf2frY@NT(7N
      zv3i=p;`NrU9~rBsDJ;~N9IUCAVe5b?3J`SNXshhTUKKh`Uh$#q*GY3@L!sd;UZ2tR
      zOJnsksm1F(UB4<;Ph(uXKCkQ7#p-Eni`Vz-`c{MfaHucY3c9t9=z!=27~P7;)L{}l
      zsKtl!q)zIJ4TWYjLnzPafQ$kRu8Kk^G|7c1{meb9of2^f!^L3(uFw=|;4|P}&~bF@
      z3Dd1tXo@rz8gMV`xD$jsX^5`S6lt~$af6!Tah-PtRpPAT4Zd4~<VBkz4WouYU)90q
      zDbNeXK!esr6Rj!G*LB`S3iQ$t0u6dB4ZCsVsdT-*t&_he@(%{`Db-at1*dUFb#Iz&
      z4Jmj}2VbQWTr;Gg86OZv@N{dyeWc@lA>6M9+$U-rE5kX}uFvCwy35!>IX*@8{~m)7
      AeE<Le
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}!EO>!6g?Mcr=3D8*lI0>3Zg=_MdPwYLns(iN*kz{x*-pE;usjn%wYAOT<FS1
      z6F<P;(51T7mGQoT0O~X@n8$tZ+;h)8@6LSs_5LG(+qk8{M_7F>UWk`j`@}HY*<!Cb
      zu=j;2+S1YxAf(i3R-8E5UHMcDI?kSa)#wSUHH{>!7Z37}s`dR`IrpGYspm_%YPEh?
      zIXEm-j*bbDl1tMOT%zh&Txo|8%J)p$5vEfUoq?RgJYi*;HQy1oT^3zQn7wP5hI5bL
      zPiJa`K)%<KI{a7+LdODOsbrY4Jm@y0btD=c&WMzHP0^_d%TV!XGvGWkY{HtW#;avk
      z6>du>Kd>xmIwK#ryL9I46df0^s^KCbHulQPq#!O~jS!#kd!Y!4Q8CwaFUXFDb;8zJ
      z*Oq#0iGH6gp7v5l6mezN1|gXq-iEqVPkv=FbqO2)!LeEPzh=dT^q%%+YRavvL0nTp
      z;*)GI9R#gAoJ1bdmSL-ltg0!UZj7Ms%DyF=!jUZ=Aj6(MEto2a_jzufFtpkmSWQ_p
      z)P#hmf!oSWLhzw!O3NKQ$%C@&Wn~}%=HnNL_(Eqe%d5tb4|5!G4J`08$UAp<C0=JX
      z-y!tYg)H$?XDH}1zg%B%j^p4EgfJo;&Eq_lM+En|j3Nk~VrB0GqQ^`Wd&3((D56EB
      zg1*5|UzzOtm@L2~myvMElDIM=o2WTO>TfkanBeD_fF<MlNKKmC@gc)xN-11g^`9mb
      v$^rEuQO$5`TzwNa{zyu?ZSbl8wTn^ehgteK%ZHop*%r2W)j1=|zby3M(+e9L
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|U2hXd6g?BKcWtx8AJ~+}q=XcT?Y0>D;T8-@NCK%LffSHMQd(HsgR_kjqs<xu
      z4=8U@U;55d{{RoI1O$P~bK$8{{{a%eqEg|^tm{}6Qg=0X@7z0c@0l}aU;gv-Ie??M
      zXkkEL_m9pkXT7*~+g)uIXFTW58Moz2&w?Q^ta3%?wqJBtoTe;ZoSCdBCs-mNY8;Ck
      zH#w#S%oFaa>yHV9bBmRHRlt~PH)ISU?6eWZpg<^>uSOw|un~r7PAm`!A9ErSI4ZZ>
      zhJ}bgeAZo+=Q}Gk>0NeeEh&(iZP%Sv)$v?4?*<Kj$z2oJGyCp?lnJdOu&eG#$CuOY
      zn%dgX#}F9J>0SDWI#ka8HxR=<?6)vN%sn<Px7)2{*S9f>4+WA<=}*fWPN(H}69Va6
      zU!iWaY~dhV_NoM&23&R#U21o{Ite?3yoH>=U~jQTXQP0R1)^*itP~jOZxmG2OXt0I
      zqf?h&IYvf5RqV%NIDn$^jtHFWJNUbHZL`pq4WO3uRmI6?Ha^D}0y_d?byI;O|5LY*
      z6}^ME6I%1?BzL>xzlrD#twf5B%F0zLm3$@ihB66(HUwI8{IAhJUtd4<lR5tCkB7&u
      zBx>gP@5P~Cp5J;A!xT<ipeO?lTMp$t=lDxD&R~XJSKL*lQ&p7;S?9RJsMn;V!%pkw
      zlA~s_!CBLjl534xt3wSMP5vVSvETwo31ji?|K_l|G3+PlM2G>t)VcPkX$_wD2X!es
      zIBQVpYTZy_3w9y<2=PLE?`9gwb~BA#?MKM`ruV)_n}R_*K|9F`Q+OZK*u%(3P=WIy
      z&R9!#6xy?pC4wmSVz}FJjwn<v`vf06!-0juV|?@sV!;S);gc;KevG5PGCcs*a!{AP
      zK#=pCU(oIBU^~7<i7N!Y!q?r>fAgSG#$@W)@V%0eIzD_ak+@q5r^<99cS~jxZ<w&s
      zIFSi&E~hb;F*ld%X-s4+ehUwgS^l{c;WvIC$xI}PjqBX<1e2vmhHoOWzCoLyH8vjf
      zK#po&udw+7;#efe?<mi!7{m8CjUR9c*EH~}0k|Gd65o&=#f3yg^Q649^g^t44d>_?
      htXRb?y)bLc@y#-~j}kgh&ti{5q$R64o!5xIeG5YuA`$=q
      
      literal 0
      HcmV?d00001
      
      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
      zcmYLDOA5j;5Pk7iKNUPi1u?jGDX0O#g`n#gLz_~QqS1Ob7aqVvi4!TfnPJ|W_j!Mw
      zF90*d5gH7mT;An_Un^r%E|jwoS~bcGN!a$7Yvmb+srG?iYm;VlH<Phoh->s<PCjGk
      zmD1SX8^a{o1aB@Y&lm1oI;*Xp|FP9YmYGr4xe(($Lx1OP7p0e`(Bu=6ra|6epe!m3
      VG^tn{9fX2Wy}RfULu#5048C-cHP!$C
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gu};G<6h*HS(|`$0DImno01SkRk%}b(DN<kob$3&%HA-w0r!Bw5gv7uH@Ckej
      z;u$I?Sl)T}J^Sj~@1L)400!8N5HRdN$c21L-BO!rn%8ow^3s~aK?Kgw_sdi++cdNF
      zqczI344t7iy1irwkB&zSJhKxe5Mm?78afO~p^dto*JIV(%W<X1rm&@~MzYafuZFyx
      zX~%F-{1f1ULEPDSQ>tt2O}f9~PW=srI5$Q$StXrQWRzT)va*hzaiiLqokZAS*!$BQ
      zXQ1@-2_V9!CPvhq6Tc@XFIa!3K>$Hj5P=VHT5eJo{~RK2kqXhJ8X!TBC{`9gAKRok
      F5noBmPm=%u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%Tg0T6g?dRc{n0(6`wrBB&ee(_y8XmKn4*lgVF66x<XsSjAlB5R=IcQ&L42=
      zLM<OvR>|6OWtD4x#q#!K2+3qHE>fN8d(XM&p6=T}{(Rj8a0W{;L>SVK%%|pt?yd{F
      zs2gi$ksAfa9-b}~xa*3C7O(Eb5M?-4NjLqlu!MZ3ZzpFRTk;JVLmR{3zf)D27~%{)
      zDo+=Vp5rB9TH?7$RT(;5?=#O!u5j#o#tZ{nVAxG1Txr@eZ(3#EdT3ev{`qP|GPKE6
      z;SQf>*t;0o(j=u!30uf34E?Dca?*K*Xx3Tb36L-i?bwq<3;Hy4U@t>UN+s-B6gFQf
      zuRY|Y<%-s>MW<j|d6V>$c7HRf1Tl<;mkM*3Bz6|L+_v+sqnsE?rG1W_Y*%@c2^_&d
      z3`d(fud+1^Vu*S*vbUEQhX043p|?(4PMVVEI9Z=*DsU^8I_$0^xnq{NO%#JoDG1tM
      z2Q};!zG2u~40JX|FeSSxtQ9Jdb;_zpR~_C9G7P1RX7*BPCg?}}38L^0o6e=j*Q}SN
      zu=L6<r6y-L3jDF8OY6pPmf^T}zs+^28<xe3rj>Qp9y>O*?YUCTW;j@<PYuWncMB!q
      zk=4|*Oq$i4EYZkLCUG7YW4J)46MF46T*5d*J5kq>9dv6iT0^bg%7o~(rP6s-?23k~
      zm?B0ZsAG)VeBIk1qrLl72d24f=x&~i;;K}nGa6=*rs<{}rKJ*K=xe~-7b|jALFP3W
      z3ZnTCFF@|+oN}qa=Y*P^_UhwxN|{5+hHdjw)-qj}(`<Hck6JYo12p<Ah@chpK%yTB
      zBxz?Cy_pec9UbaTp#K`8^d@vtq>H{TP%J`gGBf%K-I*`weedP(Q+r<IHt{WDKYeS2
      zQM>&(Kr5X(4*4vnXjQT32ONG!YXl14=IuSG!A7gtVI1?ZCwy##1(Cc4srso@9l`OY
      z$S0x56w*Ot<ZVFhi%?{y5!n(%z6?c<LiMMdo}g7Z-Pq@A57}3V`h6-7Pom<hj??sY
      zhOklM81vY6cI{25j&m6Ib&S!f&MKbyi0;pr2)h2R1|P4wK8YzGKTTRx9|?sY{fx`O
      z3-b+eY}T}tsJ4{AHB5WuuU8EX$jJt6{T?c3ZYTVWApTbfK7s{x5V%PfTU}^n$a&mC
      F^e<bq%*X%$
      
      literal 0
      HcmV?d00001
      
      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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
      ZSBE!s;%`A}-bPU_6Z;w?Z0B!|{12{#d945d
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)TT>fl7=FG0SxA>s&Mou=(w2}&TC24hL@TwHmQa*7J)pKr*tT1?36o9eL9f+I
      zFTC=`8NJX84|JxbQbwm&Fr%a6j8~51sN?ZhI6m)w3keb~vWIWqeV@bo?3b_qeee~4
      z1IQW(DYRU(X04kE?}n4Tk{Hg;6bmV9#z3{g7I~6zEv}!Myk=(#2Esvo!pSAZ?Yv{T
      z&TVVbwOQ=>w`n`?Il1ha;iC%bghKsLF6$MnY$0vAMZ4zi$DP|Rcm4RjLah@(DKw1u
      zK*fUNCWxI>2+vq~J6lj_^B?`6om31sS*I|lP}LhvD^w5VrtAo+&|+c>8l|U`wMUEB
      zC++-cO|WSsm$BTmMbac3ELIn;Iv$%`u?ZIIU4wSgzBOLR=cessR1++7B3TE8P7@~T
      zH(>{M8Q4j!Yh;+%iror(b<=ViH|p1IVlx^d?A#+SZ&Rq7wr_bp2Zi<x$kB_u?G;@L
      zXj;#c+Bi{#_(s~+zY<Lwh$}Rf)Eu|Gs~k)OF|>%>go*v4jlkD)v$iZfW+IA%3WqDm
      ztpKrpNx`%-1xANJbY7ujBgQiCIu2|s$jH`SJ)a6Gsq;!@+t&75NqW+6r}IW=M#*z-
      zGtbP`um~G8k;DMQJgiWYacwIvtIwNwPGVLq0}`&$3189*hf;QAoP!2lRA?1L*A+;&
      zVG}2Cl76z=xFoSLkd*Mh2`(i!A%#;0M%Sc_4@`{VB?Y69JCe^^w5_*SGg%wB3Tp<&
      z6}E0fn_?~9(6C&Way$cP*M))vB1oe}L|!m)21g@!1+N)+b!GSP1^CoF6BlubA}w#k
      z@hEanMW#9#{%cZ}G%&fc=lF|5IoIV@#Gr^JQzmR&mZnovM_gASn6fsmRGW-mkaF2C
      zJTbU@%Mp7OB02)1RH3<oUo08V74sSUm?QgL{YrrPWvu9;16BOh@Yn$ZwY;w5E*nCG
      zKW-ELH9v2j#Vu}9JT~#}AkT{Dn!fvJzT=m*`b8lg$54%NwDHQ+MQHb1aB|odG<bsm
      zRjlY!slL1DSi)vG#TKwVgj9SP&Ajbef+?riJRV8K=U5$rpmZS2<3-+GB3%nD$Y2+y
      z&`Vndb+_&upb`Unu$Q<YR_x<1#Oo+mwUl>QEldu@mQj62SS*vwB4X$7<I#KQAeqL1
      zTYm^=KSG0l7hk}EDx588@1}i#N9_d~TBP<_GPr?G+$7p<Jb~BC*d1DBcPL;-26#MR
      zx1ZIT-6^saPsNWimxM_Pdb2O!O-}GFPUmeOrcJ-L3ez0GD8f7$G*9rXr%0De{)YX<
      zcPmctFrErt9t@a;`(pRdRU#wN0Y0DyAC?gbuM!F4X{JGdxkUxN&hRX6wN?#io%M2B
      zz%vR1ouBZ59()tc1wQ57XB_<JXvSO_L~8&M;`%;3>qBtA3m}I4d+1r}U=iSmLW#My
      zae+2IVAL1O^fv~r6^3v$XgEb0!nsE?-q|;g7rw-?5zYKK|Ctvs62e2gJf}+DY6;&E
      z<6FA$9lG&-nS`DIr-2eq^BWSExIYDmKM+rnnps4e;XEf${6==jX&&cO@g+3I;$L9m
      zA*=;t7!ggaEw;*O^$E#cQFsqEYEEC0dMd_H2b5Pm@5d%y|HN?rOv1mA;IEAIZ;bTs
      z{6GDJhWv>U{Do2cjdS?N7t`m@DHDjP#RRUxp@?>-^BSfp;~cw+K=~A1AM5&m1ilNu
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#%Sr=55Ufr%iCI_UGb*0E<pC}t2paJc2q>!_lz`s$F`5aRov@Fn|K!Dsf(Jjq
      zj}m*bddMM{uI}mT>YD!k`TPQKfUOD&gq@)~ai8tvNk)(Mc{I+_zKG?66mbOxVMVv?
      z(B<Z}HxzzKD4)tmre}m=quD1IT@?ruMN}=6P$twI8HuZG<cav!^+G{dbCmCfeK(f6
      z{(CgiflLUy&Rhc>-Zjx?UYORH;azmqXsjX;rJd$IyG#Zu3xhi;!l0-8EHS}bEi9u(
      zsQUk0!uC8Bf_bB|*cUxHbv$#4eQnX$W6dI84jf5;m1BjgLq=jOwLY-$#z_GtN0Sja
      zf`MZ!a%SZu#wF;>vNwKZ?~J+72~X&ma;yE0)mP4PCA|o^oT}7wMy{f{SjPtU37b=X
      F{TJC?V@&`6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-lk%6g^i*t;w>qtVJ!_gc>yzw9#l|2!=$ExPMMhdojL=`Ox}TwJB)P59mil
      zcV@&8BxrN*yK~PuoO|Z$`{NV933hTw5sn_jSUg$&MCqZ`)`9f2a9W-i$(Cz}e%BLY
      z>G{IBaUEqp=U@=_B8nv@fwc%i$et^$f(t^rQtc6prh6w%q_Lbw23bO(qqMvZM}6sa
      zMc<KxV#l?G(-WSG=IKWxxK}>G>io-LgHRgEpv?}HaGLJu(bZB1gwx8L(AC_njcUA%
      zkD75BCI}mO6j4e<FXcdlPA~%yYKiESrvt&4d5gsenL!jQVfQa11oPGnJzKU^l+3}L
      z%|&@1NAVc@Y&Ffl6-e=mW9FLU$>L7jGqraty~b;kYqSQ=u);N;0JyL6L|8+CYecTI
      iSc-eLcKC+%7k;Ji%dW@la)Ow$BjrtOF`rP5@!LPv&z|G}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu!A`<J5PbucN~uyn1dm3H3W?RD!I%&d4TgBpa9`?1*VLADi~3t0jEM(7z>hM{
      z7A}TnlbL-pZ)WGs{``J@131NwjRIl+NxX<RU%#s8!M`5NW}!?wgCLMvt7#~g5gQg^
      z&rp4lQT!F=B0wmmk4kq=2+eU$>pm0CRix4jLi;e6aWo-V!}wm7L8!P`L&-rA8!l{Y
      z5?YI@|8w+BQFW{$c{6{W%H&S)?1cI_4n#N+i86Q@w9J5ngS^LAmGi*PZ9Go`d8tfG
      zce#;cBaY!Hiexejh1OErXb~DYstL7~m139W75OK~^NdDwgT)%x*_Roep}+^IbbB9g
      qy1h@h?+gp5vURf5hzqaaF?P9#si>izaT=N3LX*A2Il?yDu>JsE0DM>g
      
      literal 0
      HcmV?d00001
      
      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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
      b1+d=6JH)8NyMgup#Cu%j?f5AFXOQ_7BrPu`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+e*Vg5Iq}XW7B9`wchVkZ53KYe2NGvh)Pk>)>ld6QdepMN$TaVR1m=jKfsR?
      zCvl+-7V%|gXZD<#Gc)`7_5J~19rGF#hQ%A}&Uz^O_rhtEk9J!@;5zvo+vdJ6>P;>q
      z8dQdjPUueE4?N2belg+?42j@c`1v)4T&0sQ6PpCs5{?MA8O91-5ycAzb<e%xNid`g
      z^dh072mJ;#3^2^bS@H5_NKRLT!;f3Hb?#Ly>WN{n;@Vd8!tzAu%b*$xWmxVe;`c;I
      zc(%cV_N30-F!NHODEXG0p=gTWu^h*lNsM4j!zjbT&rtqC8yLp~wSHPVKe*hjRjVh*
      z4Eg_*VbIUrmS^*Q5sEY9&`V)Wat|GcdwWgG_qnfOmSL#NhN#cBc$on6w2B`3MJ$sE
      z_dz!WD($0>;z{y0$ydmxR#so3udKeoc#c46Iuir}Ol0UZqI(Ki43b9*Ff3D)$c8xe
      e1-U1(3fkQL4z4P>3MM1e6sF1Q5qk!6P`?4=jlOsQ
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4VNcUg6g{_;m6b9!bWT8qn1yUCVeX@uF>wt9aDgbx;y2Tkm+e7mleN?Nuhhht
      z_`x5*k0Rbz>*xp=zx4K=ch0@%-TSVtfBpi{#Fhb#P&;=%I+I5DN&17vkv$adMLU>O
      zUc0UcL)rJl6f>X`nltonFc^5EJ&vNlPfOA`ArlQ{Sb0t;b!OCmo3)toQu;D_MOdre
      z!>RQMx*eQ}EC`Dh=8-Wmhb0RJa)k0NUD`oQX_q_F7sunvz8G~Kz7}Dn6S$7ob4F6-
      z38*Wtg!<hs(sxX`FAPL<Gq87os=i&VB{iI6l+u&Y=f*6rmBk}GHc%ow`!kz=u`R4(
      zjgYku_Utzw+9&S`mH%l%Fi(T=$QAoiS<6jVx~qB;tV7=yBinPrP=p3H3B@}XMR;&y
      ze_8}vypcJ6Qk2iDweX(?o!7F!c$TvloNF8xck16^?$m$4`Wlm#`D?~Uhb-Jjo^y*u
      vOho}J9JwPNCS`Uxsx$o?ieETtQ2I=ay-jKLM5|#vW<9|MM>AHJ@f7-R3TMG+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)--%}e^6vw}p1d^s(APM$&v8}a*1sdy*TALOdQYb+Rkpf!O(oML8rOPg}yR_hp
      zKInr#9)0n}7xlF|I%C1HGrl_GgOC0>j_2Ing#7C0L$bMh&;6Y5`E~Q>KfnDB;1Zk|
      zIs~3uHy#?>8Sjy4S29!iHCcWz=4{6h6*$(gHSbg^mK@vieaDWWOQ1j4Hp*q`d1lG9
      zOn)bn3s;sD==G#)8rGt8J=3ul3O5DBl)$09V|%_~`-_IPB|G;rf3IxEqJIgT8=IZG
      zIX<^s%oS$l$8RoAOy}m8^OL!mTeK+7%@)V!=I;umrrB}EGDz?p-zDAIIC=z<CC6Qn
      zZqYDpU#?78hEM*M1fr&G($C1i;36&Z&Wbz$id(~B^pcu}Q@nFj!!h1TmK_4we$JJ~
      zglSoFMWAQewB^j!MoGH!Mu~$=O*>_Z(V$3a9lnhEYo;e~L@8}aZdRb{8jBiDkh{|w
      z`f)~JV4yXwhVuo|lU?E<js&JvaIWlAezSv%2}E#?ac9Ycq23DgH9$gJiocPe;3`2T
      zxv3_(>Ot)a9By+)35t8tl4Z(zjoVNj#r5SjRUt$)Y%9ct{}p}^<7v*@%Nkz6t3>pq
      zKk2yUhg2=Y%2{T`-k_>csRs&dE^t}H>$sx&(I2bt5w=mzwTko?3VF-$JnquIfx*^V
      z#Bog^Q5}$lg22H|!!<U77L4Ids!MZYj%}G1wItUir{OxTCXmN?4CJG?*;c~@ZVAL5
      z@>I;O3Y@Rc$ZTny5}a+LD}hlIxah-iyd{txZfIy8gX?T^Tf+=yxi2<1rA>tzsmF(N
      z)QS%y$ns#kt)U0K47<ayd4ZFZzLrc?kFepQhIepPAnrSX3leC04MhkBm8O$MwU27q
      zvdJZUU&9BuM{T)ky0Yjxo6_}n@@sSj&<KX((AZN!U)u7Kx@8DWCEmZB=n4w@aWE|P
      zcIH|4SZJy;P}Z;l@|dg|Te3#F5YAb3tNA{xa$=|m3<h^+)2(}MUtsMfPGA)#mv>#@
      zc;o!lY-seUHSaiEZduYzMFP8Pdl%W0fL5?=>8cKwbTg&fc)}S<bc8;g^nDyL#Oe0|
      z`m5+bf^I|&hidC?dPl85d;BYj6z!yGb)8m%o(J{F6ZG-dk)IXdxH65<_dUWd6YxGx
      z&`Jx;aT2F!MgJ)^)MZ4~UR)O<vWMsQISFzCszVI2juEe8oTZa2XOt}2wo4z{!wby>
      zla#D0!r{OwB#=E`#Cc+{o(m!C2I*lI=^1LL$0j{a9j&T|PGA6oAx#fyQ$*uzFzsZU
      z=scqNigr4%t7)s!m^(xz;Dpocx2POyo3(A??mR=~h$=ACF1Dx~675ueM6{2ep)#N~
      zs?4-<huh`y6XJgQpIpvr5Ir|8*SkVljnXr%4-KE%!%KQ^Vi%Y6$Sz*nFMdjyd`2!l
      zr+~kphWk>v(u1S5M5j>=A*~9?#ZRl0^NhTKtD(~odUDT4QrVyA(Ltlb9mKD`QsAJ+
      zBOy4-e*@vsNi}Xj|5J?K)%S4YSB&jpGBve}Y5f-zcQLn%g=Xs4b=3ZlD)27uhE&cn
      zd+%h#<0eVp)E(}u9bUqf@bGQQ0!NzEQ{8<2#4g^`Pdq_!KY`t<BfrH#d`JEFy#fXk
      zl&mE$Ni*K7blis#qPgc;*HPk@{y>lZ6ssKd+7p!c)qb3ThsRW+A1LKN)=54Zdg#Cd
      R6_|w$dh$QSDt&B3{{>IuBS!!L
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4QBM;=5dP+R?b+jif{Ic^1Ph^%P<<pdCUR;lR!vkI-pq1rVD;EbZm$aeN==N3
      z4?Y`zlQGVoN3hgXUv_qOzHjE6nf?Cr%U1xmvEsoYY`zw6#c|8LQ~IE_9UjW)%~o>!
      zMCyJglShqvQ6!B~d$Amfd2k8M0s7x)r*DLsk*N}KPo_pCdZ%-rK-+}zFwrIxI_rtJ
      zFUu1@zAf*UPG$*}>`<A;Ey6-~pvrlXZHC@aT4i?$ORN9DHhTm&O!j3JtSEqwF&`yN
      z2MBPHP(Q~%Ro}L}$*$7!Y5!<XrY{ALgfQJrBJN0VU+fo;uGLLwk5)2jwA|6ufy~Z^
      z|2(nPR#uxuPEo8y#VR{#4dU8W%wgWcHJ--rxs5^xxQ+!vHGK3SeEe$b*)E~+KSc=s
      zi=>}M@}aWQW`@4UhOJEqI$Fy#jD<1McxVvjM=p~vch=5OQY`Y;O8k8t)KNx-Jumkz
      z)M|E>`Q7DJj&o#!y-h|sY{%BtKVfoh{WGRM<e*D@`Zh!rl&OTv><3I@C}wblE#WF=
      oi!>W-ZOr|M`g^txEZ>#~)&AhR1=qoi9JPogwtmjOiDkII0KWC-)&Kwi
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~k|C6kR6?38Yt`6e#7RrAQ^*l*VdXt@J~nQiDL%Knm2aOL~Xi8WPRDQTPG+
      z?x<CsJ5FC5M`r}aI{N0v^x1#l572R@ua4`Sdy<<Fsy>v%IcM*6*4lgROCS7w|3?6)
      zk&7WDFmT&?&)P`2?>mLH)XdZ^JNNcvabwOdl+&KQ9z#T+t1cwCiVF1BUS%Z4RI%WC
      zR>5;)Xcjo?-&?ty?YhpYlXtw$)P&yUZGm>zE;&{{YnNQ7SXfM75fC#1k5yo@R=#XE
      z-Cer3dHsur4+UDv&Q#uVT^ZOhE74PVi_9}#iI0yr;~>xXs#r`5G?A6Z2gQm&n``Io
      zoM+#>wtAbZD{$yW4VHg8E)c!o6ddo8KsYg)6^Kj~Z`yHCwSjK*35+CavNQvAQmJP;
      zS1gRn)V5itV9%G=SMAb*wJL>o%ocOhZBae<`Y__%a>(Xb9Y{k{$gInMx#69N!xt-+
      zsk^P_)YVJL^6U*y;BY<UM9yPFNL~sak%AA)-$o6XIKe)+w&#biOqPlj=&a+d5oFdW
      znV%9!{I7zoNLJnZgz_SeFnVKnn$8KD?>DT451lp8iLMx)5lGfrb7rBqwwAXi%br&(
      z4A*Yv*wcI*=P)9PK4)MY7X+FqPu&Rg*Vn~|P<JejeDjil4jhu%&l{M)q`(1YXSBs=
      zn}p&maK*q2^4j3_bTL<UeJ2=ewzrtBy1Fwl+UP1WVpPVrFx^NKON#oSL*DJRbXQ_@
      zA5%-3^9HWrsz8is3##`<$$qzNyFM%Of5$3W>%O67!7~P4kqMnl2!@v<>N{stGu}u&
      zYR+}&xGdLo14~#II9LhJ+f}3yZJ^54-tR>PCx#mW=j$50cjku!q74HS#|mDTmV85C
      zsJ^`ov1)wdnPRz=v!@+7x!nyhrz8{hHC-s!CDllqQ{4A23~-#42qT0h@Dqz(v_N*|
      z06)wj7~Hp_t-5dL86BqX=x(m9yyHOfXAgI0i6pqjOd)o0<Qo;(&!2H70`rKn-vj*3
      z@WXHv$GDRagBs$pBBLOZ`#>xaVp&0SE6A9JU;>p45k!JL-T;=|kIyQ>a*qHTR<b47
      z2@N*Q2c?R*xr-;v<PH*nzE-jZ@+{yw3s|VZj8_T9k;F+&uuo&oFhgcGo5_>mU5o{Y
      ze#JH@Yg3^O`f*jXX7~)5tAvM$*o`L}aYg?=xE~Pr!~evUt@d$K8uufzh>-6X`R?Mh
      z8TkQEZR3pjJ<cuf;@KUXHwU(HabSyzB0IQjhIcR(h#DeU;A58kDxLEQj^I-Yy2HMG
      zh7o+u@@y$mrvFG)>{wOom=;S4%8Al%(?s+AH^x=^FWk}oHJ1>i_oC|Pt^)Rb7uLW6
      zFCwi|r9zq7WPXc_U+zi%swTNfCm+WQCUx>9ZH=heNA-bTzlq;*w(ctg-?P!GuBg%=
      zAASk58Y{~ZOCp1k$QIhUoC%vdn9JOw_2fom<Pr$%P}Ta0E&Z8)bACl19@Ow1tcrcP
      zI;TnE%Qr+o)vwZTHHrK`lbX(m{N!qKL6vs#YQVrx{=Fu-QYC=}Eb3%wcKK=#>1TgI
      w8(p)q%wc+M8(Dc2;Q8b92NnHE3;tDu+oMT^@FtN$cncO+`Ndk{zg0y30n!2mtN;K2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4ZA%nU6n@S)Iy#QI+KZ`WX{)FUZW0Kw5yVuaEG?|H1bv9>deIx>y)k#Tm#_Vz
      z3N-M8^tr!Lzau(#8ra5A`Z8zEInQ&R^K!rcIz9ogj->z|Vg0puE8f@bJEiyPTd_$@
      z8t)rpWm<jE?MiFaP9jV306w91igxhEXsNR@rw9@%TuzCkBU7u4e!lsTKwE^d*l3#x
      zopnUglY>8wKK`t4eA^%lW&6rjZxd#lr*!)5H5hhJX_eh4%q^dTTj>z|*zC#?a3>K$
      zjD{G%WP}J8S>hjV(RRZT$D2yar@ez6nLZP|3BqL4ba@oP1F>HOeb+GI&e?60H&Ys8
      zVozrMUAK)>Sz2BxYKh_sDpA>odKuRk!7Q!^xJFp`v#9gX5$15iZN1fOwO_?gTCMFz
      zZ9?^bgb3lb>7`xySmjG7y@)lZO^7zNmT8;_Yo!fPB}|`rJ;GFflu|Lw^O*+tg?gC5
      zAcoira&Nd&aktC=eZJioXD+aJmysUZ(bd`^##d`!G4VMEUE*(;r(SZQ7r4xR#3Y8|
      u3Z~c+u41|<v&Pot{4bdK#MXo3J9%LDFRov3J>1Mu^H^XT=ImQog#R0)YvA<&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fLg+5IwVTvE#agOSu&&*9Q`$T8Kxgs>p!U5|yf;yn(cF7P82ACEJ1iR;89o
      zedq`9QB`Lh+7bj(A7<Axo^xi-%-;O^@e{xXR$U0f#<{$dpTqo0r)S~&$Rs9<y2j)x
      zTisEovX>MG`;kmzl{9r;s8nSx9Kwi&g^6U)LHk_Ag^MA=d>NHjMW`-ST7=tip-uV+
      zNEqs9nV2)eM023*P8r_fgx5ON#T&x(+JhPO7Qu;3NBOAWS%4~r36-^as|xNZfD4aM
      zYwA>e=v}l`b|l-0B8)XnER&YZwDoU;PSMplVRNw1|4e`zt;tf_N0ptL>_T-23;mA6
      z`|5Y?B(~};AJcf@VumpOfc5~hR*KWr9qyOd=E}Yvp(FT*rkBNPPnY@z7Wc~X6M}as
      zZ!1b<o~zu&GGS(*@Li>ZsYkYrMV@Sh?FpN(1Lnsg_`3?9&!_C|u`l@c8{ZK$*1w_l
      zrOX-SbC|IZpWui?RK*d-I5yeO#yFm{$GDP}Rbztx^*P`2Z8^QhSJbXC^^eiFad8Y+
      doZMma{<3+P!+eQ;$#{VUR$yyb{w1uy`wcGMwE_SD
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<U2oGc6g_ss(q@KkT^W>p0o$NSB{H6ekWdE_r~<U1zPp*XWy%sMaa$hYCn4=a
      z+QWVTKMHZ}7FJ+IQR3Lw=iGbFz2ARaUIBQHmJ81C>{t%u=dc*Y>0$V;oh4b`KFYE}
      z<r_QdK=u>8s|uw%aiLYJau*K6oWX>NB*cf_v5K^d8HN>mDu+5$1C{FVRixuA{RL!j
      zqY*E|QfF$?Z3ZV!V@*lyrO@!%swgt^!h~KjtTz9{;CG3mo$V_RB~%4wF~?A9`rQf`
      zY633G9_m<hahIVnwGx4QxX(~NRNCezY}5a{CPVo^paPGf+KE&3zJJnF`6t;+6ahL}
      zB$KYpW3wM0I{GLs7`CP>xY2l$UzOI;k19XN@)Nbsur~6+nlx$pYtw*jziV_p7Ffpy
      z385~Ig)B_KM&26F7*)J{E%0AH25&Fx=aG67TXla-i=86|@iwI?X(zHM6sfG=G(&hu
      zu9fJ$1x^q3gXWPN6Ya{VV}hc$X}4={0JY!(cY@X#=7ZKb7S7Q4X74W1w+4sc8V>KH
      z!Uve=LoCzzB4JH*1*^20Ka+`cV$D`y_;<$qA~+@LQ#8);=$hFx4Ezgb`PT_X@taX#
      W6Hkbb<0)}*G~v_g*&KBQDE|au&(F#L
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O>fgc6r7Diofwm(rBGUENz>5gqtwX_6odp(D}mC21PW)zU6QRFZ)I;v`B_L%
      zBo2r(KML{I4keM|!`j~2d9(9A{QJ+3p8(ounaD7#ow*n8r4xM;!O(f#mE(bYDKD#S
      z6Iq6mK6HGSj@}H;xTj1kF>J@^fV)BDyba|!57p=Hh)BFABE<t9GAyZ)h^j5p?=8Hb
      zLzHJC5b8O@MlFR??=xh(@|5SnaLa~?oCO0#8+nu%jG87Cdm`W`lktFu@7;mV8CH7I
      zbN#*>3ca6#S#5}6eeqS*HW@0M&n3gKlNfUrrFwY51J$YbE!@L~iFJmp)Uw1}8~5>m
      zAwT5mot%Uo8C|W_V>`1I?wHu36lRO|!c#&97RsoY*k-shdwAV48#|~nY<e>ID29`e
      zPg^5+bQH>QB0~L`FLnY`9t?~el@mYd2~*WwPm%SxI!;v>tR%G~q5Dv{_I98hGuW>J
      z8jh~-MiHl86b}Q>mk|x#F;^pbYU2P7L&XcZt9YWBHeXK{r;%>|-)MHwqG2*<-2f|<
      z^i0v;kfD`_Md(fXdO~}RSdHd4*p2Tfe2F>B8jDXT+NfZK_BO?6^fp%MP0hjGsmcdp
      z8iXx3udwzDo5zi>u=lU<@V{6=6O3Ktj6IZ$S}a&jf~JBLjz`!f$s8HnLoF7qlWYbJ
      TG~=tOb@T>B@6$6&bMp8vU8VR_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O-~b16g_V~I;9Lyk&1v7RD`x5MN~wJ^`lBsDVm596E{wWCk&a+B-25wYk!C)
      zCT`f6C<J3%m>44qV>EH&#$O`dH!XxFg|L`;@7}rZ-gD1AZ#MsZ_ypiAu4<4NMwg8z
      zMkQT-YB`JPTRFE>bg#RW{u}(Uv10o({Mj70x#?T3Gix};BKI^X3{i0^Z5wpvPH~yO
      zYX~tU8|P|}gdyZFS>^swhR#C6QyB`GvK-6LGIS^Qh)K>fC^>h5H-Vu=hlX$jGTL-B
      zA<7^pL_k}?a`^3)QjvT2jH1mM+6%5}*z<;G3A^T01R#d7#-;WlgpjtCw@I3IJ!+Ss
      zH<7DLv`y?RfweQqd;~|)t)Yt{*06mYJvc@@FLJ*+0KSlS7I-CSD&LIb=+n^4(6#$?
      zT@f88aFRi%3^#3F;*NjKr)r6OG61%Fco{)jzmC%wU<mu}obQnu7&;QWW2;_@O(3Nq
      zSto+(HyuM5rn#9*h9`<CR4ga3j_62>b~MqB^_)ha7y(TzN8v_53PaC6jL~?j9PjYJ
      z@(j!(ybiDUd7qcWTm>7|&T42G3VVsCuG&GApGnR~NM{+Lt_VY9&Ry|LK5Yp}weBPs
      z5g3T~yyI{$XB*`*Cs}pxeWB1tNo9IeuxM0hn69S`NmL<kGg;@!l4y;jhTcO@t)ulV
      zSrQJ>J47*1Kcb!Xy4cgH!|0%uri~-D3|kZ(BA=Oh2Yn5l*|_p(TzP}O;h3_4xP&#F
      znpC?~c@2X-FA<6<t1lE5Q-(KihT+xLANe5B@z+~_rBy0Zg*HZjpngVJ{er0a6>;?&
      z2GvcZ$evKYBdh+vjQSJz)n9l(wxRwG+PE7~VAk3o&={rvm1xbx7|v1lFdh;q7l@`7
      z(%d-h6vSzN5femX1_L$U%(gEIqVrOXi~-6ZQ?^iQXdRP{sT6cem<ryPk)>4(gVD9U
      G0_i_|SU&~;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXy9xq93`K8z?D|#^Ya0t~T&(R}5PV_b7tCsqm2n1ke5}7_;RpCpViXh$n<S8P
      zZ*K07>kYsFRUa8bZ>LTw4cs|4+h7{nePl;A?acVHV$JJAY|TO$wdKS|j?j4FfmQ-9
      zqn+#tb@u_sHW3}6-3{lzwjbAp-LM|^CWO+;9+NeXW6gxx_iX>AB2*^Ea1v_e96KLn
      mLhIM=ixZlEa(V<pR$c^166fK`l!5=Q1r(*1gpd%Zc*Q5%CrJ|k
      
      literal 0
      HcmV?d00001
      
      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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
      adz?P1(rUo99rrKdx|}RN7tiq??Ee7qxkc{)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$$xZ@65Pi*z4h*9+q9TIJg#%(Da4{wtFGLd!YNCdF105MM^x!P$Z<)9x9{d15
      z%2*8~7z2k&b-jA^YU%Hv&o2Nq>>5Zg<a&I_pDW>$D<3MCb-zFGrI1mvW<Y0fRJP)A
      z%H6bjq8%AnWXMd>+gM88@&v<T)OEvRl@uGZC69@7;z~C<Whj*9k@lJldfo4c6d0B)
      z7)YAXU|UGRVbDs7U^iSTuH$}71oz|anTFryUXur|iYK71Mq<d%=~b-JNLmm}6C2nx
      zkYmWs9^FD-H8%q><euB%5$$W<`Ek$|=dN1bo?h-iNibL!Qi`DN@h}uLgMB93o*&YY
      zuSC@KJE+on8rcGv<ESm^PZDG)n1rV3bwsg3%<}#ltnvqzUq+l2g^e;)o%WES*rFPR
      zu40Wm!#bRa${~4`OO{_@y(9ZiBRznTe*B}6oM>n$P*nn3*d8g5RY1%gigk6dUltsB
      A4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBNrs6n^eD=%^Lucu|mdQT9r~S8&FJG!QfsjTpX{?g}NPC2fK6(VyY3FdD_g
      z4;VE1!EYKd{u<-CU2O>&G0U>F_w1hMJm)#j*|$F*4gt)dA|b)BxT){zb=BK5?RE8`
      z=4@>{Hn;tWdBfnIXRcYiX;5=)UpH;;F6nm7;;w`gLq=e!mQF~I*EYG~OK4{p4Wjy<
      zuku|&R-@Fa>G_->7~1^})0>!KC|6scQ=!CrrfvH78K!eBW#(5IQkqla9bh=GKtftZ
      z5?u;9kYPyX#D%UZHMqR9wZ`3NItjs$tvZHot?I5R&S5Ym$TKXpLg0kFksP6t)K#bP
      zZw&Lb8m}>oH@Z`sh`1m$t>jl_T*82aeukm5^bW2nxQs!D^g8#o4bvj<zFa<_9-v1C
      zAa@Ki3^&H1hh{J>)8AKPYseVIxP&oMCMp^sD7b<Nh90UEXNYcj-Dk*$RqN_m;NjIu
      z8rNtRCm;lE895Xr<Qa-BI7UGcB_jLWbomq4+2*dluWgWDX|{8r#({lTe3$m2($M9E
      zp_@d6Q`!P&GmOMSp7MHQObpB*MdDkLSTyytAsW;CI>Tge<Nwmo%0*Ur%D0?dVHSDC
      z*>MfNXbQ)6#oIe2gkn%0*tBz+rF$OtB+QZlnkz^|W6@(6hJiSI+PoN}eM-`|4J?xp
      zYej!GNu+44WQv}n(<~D70pvpQ9hAa*biSrj0vALq_~i{{ze1MI3gw7sH+tyF(2Kqh
      z<pp7;C^l9+z{N+UuNWvDVdy2gO9vQPF1&@3y~@f5n2f=Pi4Jf`;2)8}5rKU|KR#oK
      zo}>5@6f87A!-52lGN!0x8wR0bn&|aX6EnCTG<l;XI%U>`&Ub?TL3Dl+@G;T(MRbmd
      f&hM7#Byf}3OW+o6(=$tNIo!cqiabYecai!FZh4b8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^T~E_s6vzK(8+03m&582`M3A9-5ej#j8514Mmn>qO?*3W#ASI<GZ8zlB#Cz0x
      z)Q_O?CGo-!;D<7vr)#o>43nj4+UN8+zn=3y|Mt({U%vrtU|mCu@L*5$#B0Mpw47JQ
      zlbXAK;5yO?3inM@`o7h+<;Y;&HM{;J;dE^2X-E*VieuP<DckKmX$Bf53G-o890rE$
      zG1Umu8kQeOM|y<GVAt{s8-&%y7-dvB@vh}q!9BuyajeWzi;$?f9hm}QT8D;Y8gXQF
      zq>v@Vi)urrVL9??cfT#Y7lH*K<QlFi?3VB>wT^-bRXkyHoC1bq9afM#n%Yr{J{0`w
      z4q>6+mT^kCEhS>L)JozKmpK?wGY|o{bOrMo<_ODuF-0^&%eI0e<J4{)SFu3Q>f5!K
      z&8<zsO4P@Hv#Mz<;<|<<LS>AJ=~zaAW!$km`OI?<q!%33cG)Ye?VYIA&^pb)V;@$-
      zQijbmBBCZW5xR;n*H0L!79kZ%+i?AWkn9ONN=i4~u4l@+r6!yixO`1DM$jKS?9rMn
      zd|&z+Rtfph9TR2;+72+he-IuXHkR0XaXu$N*{rf4e~xh^*n(+}PVwqCVtfGUa^*Yp
      z@=wfs;Z+RhR4jb*mb2d=$7`K)RP;P%`AWEed_;N9OhuU~e}kU8NMCXJ2d)iBd1e5|
      zyz3oT@tzsSn8t^Yn(t>uRAyiWH<(Mfc^04XG=hJ^{EwK#C+43p|MMCAV#tr7#5KiG
      UMuo3AzFWjCtnm+q_|8D$9~*}@kpKVy
      
      literal 0
      HcmV?d00001
      
      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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
      Y`cAVGPbaQ~I9Jfh&lz(o*Q*Hq7kU19D*ylh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g^W4Wy(r<iO5@u+AWoe;v>PB5X7VgkOb3&kK68mL)u-lyS#pu35aOK
      z$47sZ@yxc7BJq*U&fa_H%suy>x%>Uchcf_kc$`8)Aiv}6IS0jXUwhld7fXKqjqfQh
      znqI6%+V@s;7%5K$>w$l8m_kxuxD~%x38TQNMh&n)N8|+CDiWAjF|eYu9~IRe(-kkK
      zTM+20XwM}l8S9Sct~qtZVB=WLVJ#a`z-=Nso@h@;PX*?4|Hyjzv|ScRF8QuXqYYOq
      zNOTLd<?OPAK#zrXbQr78LJFM%nHBA+wcUC}1+Sb+Ew0F~I<>MBXyZ47$>_BX1qw0W
      z|7piQ5;aZkYTYFdHKV%gD%kRax?*JF54|lL^%m@M3ZqT!FNqpM(ip+Gg$YawNM6B)
      zzZ+Cp|3J=eQRQW2M^&Q*1D>*w#k4>>!KG)hC?ylWW#P7oTa2&zuHMor2+f9V)XNLl
      z%}V1-Y9=hTa5V3&WS6^8z-$V41jhb44Hm9rSU|Ac(MF=*=cb_oi*i+<_mms^0_jGV
      z&$YR!%=z%n8akp&9!Gbn=7gaNQ+Oya*gCxDc!B<l^BIpjCOH{x{8bWsIVfCV#)NBv
      zI}&NGUGz5T8(b!T0xLgrOrvm&-nTKZpKBkIfILD{o<Pd?=$5A#V0^N13|BEoj|p&%
      zG$OW!NMvXzO_S!3dxj?a5hI&3?=Z&qM*axB{N6l4Zk2YXaEh4(&Z);)G2|z7$}?E<
      wGkW9~4A38vUoj=WwUm+lRYn#?+$HG{yPKnx;B$|}3Eam#zou`22Y7_^PYZnu761SM
      
      literal 0
      HcmV?d00001
      
      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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
      WS`$qnaeBr&5MK<bK{-Bl^Zx+0crfz-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4(M}Ul5IwVOSy&cnQBjLkz)FB7R33aVH72CR1Z=R8(nrmu-r$ApU9xwJ`s(la
      zq9(?~2S31%GR|E$ur;aiWoKvRoS8E-_vf$gKLBiD)q_K*pNMnuu5R8ceO%vbNpqS+
      zXC0wsb-Uk}#;BuE=EELbLT!Z9j0R_smO9B(E`o%jk+BkCPsT<?`f#^JpgqEDGtwpz
      zI_ZgUC=1<}-9qK#!w-bX<c%`b2ZVBaq)$#<gHex_R>>1WWo<lcy+?4H(Q7#k))BzR
      zjE@P-2MBPLu=p4CLUh9t=h{lk{o&w9#$CZ{Ak4R;J`W;z9QL!IYvmHQ#;VA#Wpswp
      zu}m)4{35bFR@c_EN+LUe3RUvHK8kBhV-Xb(w+SnMmh>-lfIGNL2wFP_&$`b$uR7cN
      zJA~^0^da~M(J=1Ir^>1;<=?`l?aXC&wU%)+6vjy7p-Q+p?rwyI%Q^C;u*?UV;CJbu
      zi~=Uv^HOiBShQD5|6RV?EN8B;_lS`W+nJ5pSIlkHzM=Fv1zqE>pQZ*}=mgi<517PI
      uEZ_!P)`weJnN7Af=YB!?6I%zCZ`%XsIj);=9W14&WvsCEQ}#XFhx;3bT-xaX
      
      literal 0
      HcmV?d00001
      
      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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
      U{Lw__4*M6#sNmH@;LiyB4`GUAeE<Le
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-sW-5Pj3e#-`DJYdwk;wFRR`sR*SaC`Cj|J#XXEuEYegsr7Gp5W#~#z#k>f
      zwmk?93p4v>-ptOM{rUa+25^cU8yUj>vv?J6o}Q_2?A=@{5k%u=*Y~B?Y81$2#D+!K
      zGgME^5^sgpeH<)egj_OFx_LsV_fuMTm~gH_m0S=ShpCLCA;IcJPcjce!NnSK4zk#A
      zVPlg}TU7m<qhl(HeHF^v>B~sQ1Hpq6D*eb8!BE7?;APM<(-98RUS5^W(>f2)H1_3{
      zGA-TZI*yGphSy;z<6a=NmfFTPp_(F@P+r+5c3E4Nzky06BhcJnvA}iqc}8c*@Bs>~
      t_6M9+`xEXv!wiaSoq6h>3-3^3>~axPQATCXsm^T;b@mSD2wP~t`U85wdDj2{
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4+iuf95Iy6Bm>AQV6dHPiwuF+4M2L7n3h+{;5)f!5P*5K?&Z^zYU03#&mcN1r
      zR0$+LfR94Vx&hfjK|HM2d*;m9vorJK=hyE5dT6_F2unxegE;S|XG$M*Uk)b9#L1q}
      zve9!<CImLzjRXgG$44?WE-Hl8e3FspraMydY)6Eg{E<*GhbnFK2+d)hm{;G6gwmI{
      zy;7#nIZu^V<~gDB-$|_zp}ZYWWEF(#K3rV&P{O>ADgr{OX$kW~rRAH`<FQQMiE$(e
      zwP75JXe1J4&r`5$EfZE|8tz$-VIqZLiN{5cSp^1>JeJz@TLp<f#p%1aP1wlSBa6LH
      z#L0=AWc9E`^iapLeZdN0?O)gM+Z-7YmjAx*w-ti-Ha<;4xufjEgIoh1S|bGih1N3J
      zjzpTu)Ws%YEAKFu&?t7yMT1bE!6nQU+1!SK4x>2bA$u*&VLb8CM2mR`(iBE#y*Z<P
      z)8Xpl5jVTU>k23cY|nX^9bQ#<j9%lvCw#Vu*Y13Q-@d@y=Ztg1Vp)W<odwkR>~oGq
      z7jTnz!YwRLRi5!JneI2#_d6F@`oshWR-|H+oO&j(cuATHSR1QY<9G>oGX7nx^Il`t
      S2JYd0W|9F$w)k6S^uaGuSmTQT
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT~E|N6g|^cx?4x6MO|UV4_swglrF>vlQsH4Fu_zMi}F6(oj^&MnzpMx`k+6^
      z1Ows0AK;HN-f4-uF*f4E^v;|+bI!fJ=f}^}?*P`&wP7&K9f<ehqn~|<)Smxha~S1G
      zx-FD!t=q5|T%Gn~LCM#H0~zKvrWm|2+8-$;2C-zA%J-wJwZ_m2syMgBo(vK(lxdId
      zKZ#V7KV?{IpXb5yE`zm^3}qb*mpE+H9GIBlsKaG2+xo&x5Gna;bU2Xdo3bh|NJ0_s
      ziZs&aGtkndGBhi7*Qq`;9VrJ5%-Oiku=wwuIOfr0sEII?S@9>Hov*X1GI}*EP}A?|
      zujxW=aoon8u|SvM(SHc|O6LCCe$cBE*IkYUv>2uf?cXT}_tCbo#L%edSJ$x2(61Ek
      zm5haDcJh>LHHnla`U|3`=j<e-G?dRHZ6|lajH|jB2EL_~OgCbYWs=6{jO|2|-&A3o
      zWF+@e=KINz<0@Qq$txzU3t+CREkn*XXw~5mdXaXI>8uf_v+@nRbByV)#huF<D>C%j
      z_ymv6oZe`37FQ^;LZM{Yf>q?2og?rQT=Q;}o0~cuVetg_{-8BJW8U~OLEAi|HPIn*
      Y11oqy(W701hVqc27T3rseJw)$Uw;bgA^-pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{-D}fO6#tzzU0fEs+O_-8`7y29wP^HBsVGtv9AyY8d(YC#ypkm)xz+AX#b@zP
      znV=4Q@Kx}S63<ODn}S6OxxFXn_i=tFzkYxJ0pKp0CJKaGue{gZ*h${V@W9!5I*=-g
      zUwENtJobH&Byv9xxvB|+a4!#0Vyv8<K0mwB;V=qCsPfR67lZ}%QYMW%gpFRFB&X2f
      zrUx>V>LFpXIk#(jk6?78fmj4#$wmna7K%7)!$g_Tm_`1>WJfbB_hcw`M~C|&?t45b
      zq1ualFWB>9sqb0Q(5?y2JU97)rwQ^T>jy$jb9^EaKbAu!qmWQ*Zl`ok;BoM-iaGy|
      z9%0qS3ThVCao)rRVQo%OHZGt>D6>R23Ki$xKN|7`rGb{wlW5=!J)u5h$W@*au26(l
      z=4R}8+1h0w)sZtbf7+XR+_G^Amsu;(4209P{|hEqZZwL0@l5KpE4jtr)^-W@^Dq=~
      zH}H}~aOU-?gIq7Rc<V*}im6i3tLJ}37`*y3TwmndeH8cyEVbHSVYS*Pus`#)fMtGK
      z>8lX~6)JqU8N{tPhbo_><IiYZJ~hos>jd>)`zP~#f%Oe*$L(V-Pw1+w47_E!cdY%M
      zX+EU1s}pEOTS6I|xX6U0v&#e?WdbG(T<PUVCmugC>8Bi-`IoGKtGJee8>x}&xWT8z
      K75?gQ6UHCX5%FOF
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO-sW-5PcJ4qiNKt)mlFeLJ_TKEut4cK#HOgMQ9N`#<=K8O-hog{VU$RD<}m8
      ze}F$qoRmP~AqOwJJHwmzX5Q@g&&L;lD&{mOgzBwzZ#`E02kBf_j`y!*;Cg44BT9R=
      zEqq^IHbo+P*f=pYsDzb&l@T(*jr2=vgrb>Jxy7Ju>BwN0FuRzFS~@4FHTOykf{-=P
      zkBp8!3>nZcKo~KlBTn0Qm%?jU+&f{+bZx77Zh10{qof+PLs(CfNuQqE9K9An>`p^G
      z284yhrHIRle3MNXbSi&wTN)+^J1Gv75=O^$hn<%20v4&aTP@cMbmTEa(Ccp7v&Df7
      zXUrukS3`D!apX9{t2Hg(7rurWLLo(#cM_{5h{9cCo?Y(a??Sm;Xf?kSsG-%IALM9*
      zV}<W*dHEfBdASSYwFesJGs7U@2_t+Oy>}KljB><l!FWWm$pRtH_(cAq{06;?$rp|l
      a#2n8F4kO}FQ0SqiP~=-@4#G5Mq5cBTYrH)G
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TB^T6g@LkYD)#g2fk(D0+2{tYupe`R74XDiOZo(bVzAQTh!ljK}=lu0e%$m
      z4v^TGn3!hn+`0Fh`|Q``;}gI!_Dyhxa$h`)*Lw7#{Kxv$c~8Ybcqe>$FjKEpd?SWK
      za+)w0@)}+D1YvKxed)#wmg|WqYKehlC^Uck?KmXX2}5QIXa=GuLxy4k($LJAgK+6n
      z<*WFNp;k^{=3x?+B&*V4Fd9Km+DKu^frTtXs$A(<pkf^?Ag#560~3o3xu)`EYc%M}
      z@LqJiX~lsnyp9N!e$S0Y{G=j=>NM$pW<%9;*Vn>hu-m~XbmfK8@$-q19_isQIG4UJ
      z!)X^XGO<fD`C|t}|Gfp2sGSt;kJF*<NJ95UlF_kX)14vhfe;#(tG>gj9*#+=jj{Yj
      zCXN-71sKGcz@SJL{Rmmku}b#RjD|I=(~AP2NNIHN95yHsr*D&999!6?TPI}L!5-{y
      D--U~r
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}e^6#nid$%b?bF<2>}7TQ#j&^A&Lt*Nao1fiyY1X8K`u-RP6Lb99LY*J>_
      z86VXd`(|hS3wX6NgfezU-~FQ;&)rR$C2a<so!z_V-t*%--#zF2{m&nN0+_|u3OK{X
      zU9G9@r|XXlb0>W-TQVHWUe`<!U)Od-&eBT4RuEu_O1*SNBdxXKuFxF?A%<9YccWpN
      zTCpM+21=IBFp=|ncErAuUbOT^RhUkOfg2`6{Dewx@VsLStxCEBR;9!+<SM64;iR`V
      za<m<&5kiKLQ#R`HcNxa|c_ZD>O~W*tTMXqyU#$}dC-Hir4J*B3)*4P5n77%%b5cqc
      z2;YKL5`$oPUBwWFBN)INDxw&rj1tL$JQ-7=Ago~GlzZ?ZMlg=Iq=&Z|W>3i@-2>K(
      zH>qL}5gGZSiZf8<UtGmms0_n7!xXEHYEjsm-aW>0mabI_nr%qAy%~^npLTU#-4O5R
      zUdbF0U^mPNuHc%2s|=(5O7WF}iZtkA15^i804Xo!-psrRzQW8T3lUt$oPzfVfZz4j
      z%6-kGqOn!Hk9jJo9pU6GYwwO(S`wl{HJeDf?mGS8JIqAzAwE)YqX(`}MMVZT>AGvS
      z)ig>XYulDheoIA7-y^FweC?5wUa+b)%aolUvEITb3T`uu`?2O_LvA@n#c&K!S8)e-
      zDI24nZIaodQLkx^UfwKw)KEP=4CAb1G^=6>pE86sT^Dt?F*Z)C6_-4!F^ZUZna-DY
      zk_81TRK0$@zH5tLk6;;}$x6*JO!tlM8!>GjR#mKFo#BjOHmyC8(;Q)UnR8)w#tc~~
      z*kBluAl#Z*%kJx<<`@=DmXNNQx~RyG*;0|0JvaB?aCq5vy1L8bEW_>p;h|GOK3b?9
      zB6+J}>te}}V>0SHyC$<>P*+S-*b5b{UKiA4k?st}B(>@Qy+L}ooEkL4x$I_lrCz2L
      zvXg;mRL&ccg7il58d=5Y?=i_CS`(?67DiIfa4vPFh4ZQB7~h_``V4Qja3M7oXkjWf
      z7Hr|tQ_|(QOy6;7$4vxz8H0QmLwpYtyn-oS#XEF9=SE6k8VQmpf{Ty4e}hO8Zn-Bh
      z2HZc1GDxUW81=9*c_Q_nqz(z%AptqW`6J96;KqYv%*x#(d~kq#?ie5chEcf@TcGb0
      zy_b%$cz~hjSl*_r?j7U)%wK)g=6z}hNc7e7yL;+l8zvS%CybNybeOqI{DM1(@g_$2
      zJ|_9M#L9P==HDa3f4~y|5z8d6l3XOYN^*_lCdogO{44*-Wl$v^DEk)-QpI}AV4hZa
      z7N$fm9AUG2D-nr`{{n?S_W1~VKB8e71BJGa%WWS)N!af%z=xz`{*7x)uE^v8zIcVn
      eNUw?3F(CxouDgf$lGYf>jAqbRv@VlOJO2WIO$wa=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(+fEZv6kTUJ^fC@mK;&YPilAkRl$(Nrs9a2njS?|L;AvV8FfvR@Ta;h%AN0XQ
      z(nJ$|_oIyK%wVZ4v}vd3?7i38Ywex>{`37OfJv-Gpa~4Uw?EjYnes=++s~}6?mCrX
      zY2EhZ@VdP(H!3A*A4Q-G^r^gzQ_Q?@+=?t^z2lQg5Eh6PY_A|)SMCakZGmv*z$p(;
      zuqby0`aF{s9M7pN3QVT1%<=<@w2p3mbW=cIF7C=01X@i*5H%1&yNMX$0=)rTbCpW(
      zG|_^vKzq*d<g1gTyez%7^R8qhS1j1>rd@K>`TSB>LIj4dYOu~ED$*QJp!?FE1=<P+
      zvT(S3VN@ukgcz%*1$kU?ie5Q_0fDZ6HfLYgB2f&|%E0X8fn84KrSy_D&kZDSTZtbc
      z`?+}6<}_Ksq56J>gKQedfpSVD&l>dOo{2v6EBi)G3}ZwflG<6yW>qwVF?DBgrg@6n
      zSz=jnZ;!_;f4P!k_41)}%tvZ%bWIgJFfoN`W-un!xES0S$5n=^=wlOeilU_?%d(<w
      zo|u?NKV8@;o|FobtHnvg>$Y%Q*&$$NJx`XFUAtVC^ogDHT(MZhx>#H!DKW%l*ZAh#
      zfp}c43vZ&(>6o(M8c#XKRbJdmpTV@os%W!9XXyCq*LLx{O~th_v}hI#Esg8EyTK~f
      zpqszcD~=xY`dsvs&zro{$&m0lR)`>Y(`kJ}$0xM@Kw_)&Ru#!#jVzOhXjACWrhOJO
      zsH(BtA$HL93^^2H*wX*&)lhwDv+Q-Q4k3Jwz;(t*Q+KmOQdlvoio5)zKJ%bKNe|$j
      zK-U)Q;9_-fRukMi3fEa{`f%yQKo#jm#1$g0`iNGLTa#$wKF0laOk^;j<iO-V)`V{%
      zH>`<oi4iqG!{-~UV&)4^_5HsjTh3<-#%9#m3_L_2pWE4l+-S_BMj3Aiym6^9T<s>f
      h`39dC8i&6{xNStWol77!Ec&XR;+fLwLp{ebw7-8|@h<=X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK%6g_wS*jz15E&F;fsL+BI>Cx!L5-JIy5PBSSvWabl-8JoB)l*Q=59mil
      zcT{49gkJ8QGjs1b=g$55e*Xke!IlYwu=gOI#K`uC%I(<~XI&Nay{2&GPSX*}o#0Cq
      zn1~X#!?l4N1@@`D69XssEhEH_m8*giLZnn~5u&wzS6YZ5kwOe{Lb{<`c{O-!OYcUs
      z9ZASG`W@l4gr_u~UPgm^<r7Mcu;hGuRl-tF1}!Crb<yDwo(aWLd8T`8I8;$Ju}oN>
      zCs47FK~B5Q6Au1uq};MVND!>+{=n<Vy3#XdLe>wpA|Z9|y3(sT!uO?bVuMhaV})m%
      zT?UFQ5#c3*qoMzmvB}8hOq^r;Z&-Ncg8_@9euj}mlFzA00p~?VOpP>0-F(Dkx;gQI
      z%q<gSUl@c5av_4mgdoFO$WIA&IUC%g)mQ#j*Utu4$FYDl&RNF11#GfYX45x6Z&s6j
      
      literal 0
      HcmV?d00001
      
      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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
      C(tX7M
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%O;6NN6g{^yP$<P2P!SOXaTa_emf4XEF_MajW^{uY){oAO^GJD*w1x3+nfQ^o
      z@CW!`Sm+NR-q+3oHC^<5+;{G|=iJ+$H{X8%=;EmlkFav4uGGgUA8Yd=dh<%B9FMHc
      zIqP(NGzqKjJyPQ$;wv^qbfV4Bjt__GqTq}$U5s?z*%O|A9Z^qE2ioZ3Ibm(99=1Io
      zG-EsDSrFzzOkp}e1M?w#+#xi!9H7<LhTmPDpK|tIou*7!?At`81C?oap9GsumWZ#d
      z*6E6@c`+?!;?(Bip0Hl2`_Ju>bKct?1X#kdj|YV1I<p}jI<c)pnS|40PB|&GH3Sl=
      zm7E%SLU3#^vxMCY2n)Ao@ywMYgs+X^EKXIPv$$&=nWU2bmWz=chIoQaK_wZhf?sNt
      zS~0bI%T#R7FRUre{N0%f+{2!<z9D}HwcD=$a`NQ!F(dI=Iql2cMS`8(FS2|?_^HIS
      zT&#Q{OnKL6%RQ7F7hS-j?1a0xH(_}pyJMNz`HbKz?*GH#{etiPE;*Je+=N3iu!2XD
      Z-N35kdsxHcvWE0mc1WdlS(`GajXx%Et<nGh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4*-FDe6g@YMiH%WP_kE*?TCn;k6+wdHQWRYJDzOfBBqox??XOf2!3RIUj}q_H
      zps7&tW$xTF=iGJPKVIJeEMwY)MkrmlH|||2x|RNUX=hV<!l?&AB*MaattO&Ko_Zn;
      zo6rfxCXo|dUIo7J<Fw=(Bp7jBMujE9NTo@aN>*mps`O>NMi`%KO`ES0bSF3ySr9sG
      zw85~DL8lE9U4+qJ((fY5O4wbIzSz6IJQd-Q%WV;QDnZTls%|KipMbh5m$2NjigcUJ
      zJ><_t{4=(LK;@X7n@=LS$v~wi<NH!GubjmIhD;0+X1<2>7u&`#MhN!ic4gzl+1lSf
      z+&CZ<{*#Ab9R}B7O{mHV`SflVRb~#m?fW8hJU5C&WMYyq)M{^pfuBCop)k!0%J4s<
      zTuyC?ZyI#oQaj^W_Ey-}*mf)wpJ6Q&Utm8rNZou|>dDweo3Vu)`!<W1iadJQ5_-{>
      ngjr;(-t;H*Kd{xH^oGKW<CIoUv>HYmtTBwUwHoRPOhNwygXGGt
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIr3wT^rwO;GYvy+pioit6`^pTddO($t1EwqKSK$@oQ&^$_$^aUkM(`h>}&BU2W
      zODkSQK&+)A;)8-$1QD)Muc$OF6cE8%U#OrcilU;RAmS4h72*DC?>%SEOeVnf^YVS+
      z%-(13wg2^Ad+*b)zk2TjM0BckaeyqQNf*cV#4c^h>`e^pY&v&UA{lSpl}cse=>U0|
      zCKkMHP3;~`4a5hs0rE3V*Y9He{qamDu`Q8IWcM|-m{u~*G!9e}vE+t$I+I8Z^hQ@Q
      z@wrUpt*L=bHa3vm5K9ileGSjN<h|xy>$WnLb**db>{}UaY42K%p-~TD61uxvHnf>;
      z>0%+#+uhUE;pzk@<*hB9t!?dnUF&+HU7bv0Th^^x--W5U4!dpr`mXh+>3I$RF@;t|
      z+uOSPx;oo81Mte|`nJ}duJuu;t4hCb>0F7$oR=7C7VB<n#|*VzxLpL&l#D@;-Pttc
      z*&L*4OckxMf&O^1JD!a9XCVlt@i}D9>>$;GX3OAUI<+V68d;YcxuUnHr>nECr)^VD
      zU+bEd&ed%z`@r40w)H)mgLDd0t(m-HD4R_U^u#aCw(bIw`1W<_)L=ZF-N!V)m{?a=
      zdtXm<-Dp(jFwHHbno1>m5`!g)*B24*=xpog>WsFQKs%4Au7GaGKzw&<AkjYpaiq1Y
      zvu8a}YWBPPTGqGqb+75#*ja*XBhze{RyLhVY9VA=((&$Hsl5Xu=uXM$a&rkfP0+;l
      zL>kIUrT3Ysuy(C0h+QnA#I%J>HCl7=?b?ls#6P2eLU#!gr!!4;lgNw!Uf<E%-V^O}
      z?53}+vt>m)K#jDCrI2#RP%@iv%&Bc4wk;XoK7!~>#ZmX>?w+=ez75f~jU}ixGgS#!
      z-TN}x`0fpf_+CdcQ`GcP=A8xm-+_4rGp4E;YoaToovTZ%)dCNZwbmrI!-<@A^ejy6
      zX<J`n7NW~|SqU?<@w79mPBWKt)4q<bm8G<YfHOg6JHm1ZOlfItZR_stT3^am5Y8s)
      zke9cWyu&rh)O9_5E$!{vY7F?^?vfhofR#x!9n7{QlOh1kN^i!|8PhZ!9^tk<C9QBB
      z)0CA6x~ZK#iLAu(A|srdo4<KoDKT_2O*Yf_4UU{Wr*%zNSGQPP0Y4*+Zv)dTl}E(l
      z@~n)2Gd`C+02Qu_sD+rL;^?JKxmU%B#SDZ+dUj;?Fx8v!I)#Z6`*j9ul7;gIiwR>i
      zP3Q`GE0}h!liS47V>%G)Fp`T-u&;uC34<V0*q4uxh$0GykpOHm1Iju_3}q9^rj~R%
      zwy!;r$zsK_M5ZODd8EEA=-HmvBGQy;K`BiBbUeE!mPCfzUEtpsCfsYcG2Y<Vb4O}B
      zrdm57uvrD17Yj^06^JVP3qq-iqgbGSD4j+DuriUx@|u}MN(mZs%FSEI9qc0hyzWAJ
      zluXO0)TqNIgj8{UF=5+1LS&PU?KII0;#ig#NMsRcJoWQncivWT8X^zvvuTL-j6ntQ
      zHk-Cmd4S#ywp5NTlz)gWqkS^&oi<%WG5Pf_o3>HE{JPSnIF-w<ciXf>|9X#2JN4W5
      z+O$jmy2hr2e)~R~E~ZOl#`|qb>bD=TX*Uf>-v@0<(O?L_K5WxR=msWVCY~J{WNLWR
      zhCFYB%)im5o9Lrp3G-VWwdk}3?Q3dHIqisOD%ukR@y?;$+v4dSF-xX!d#WE5S`2j>
      z+NRT+-IahErW9z;T^d4XRffE~+R?B+A!5IcX?cke1r&=7&*iBCc0%6NG*9bd*<Hf-
      z9X9<JeF_}zjAvm(E)Qpl)X#gfYlP@d`b>b1FwJonxuc`9>A&f-;??PREUSWA*S3oR
      z4GvX;RgJ?DKdciqh0GqIsWXZ+^=26mao<UIh)9mwG%Thx9;Q$z5_x;vrh5o}9~>Io
      z4&=R2ILRJ(IXoESSGs-4TfarfK0pr!=!>XEl()q8W}8;0V}rXA{h79bJ&AN`U^ilb
      zO<$si5E2rZHSyT?BsKxc1-As~%P<~iX6|L%rIOiD|Ay#c?QUPODNFqbciVsj$}B)q
      zfeszKbX<VwjBXv7iaUMNrVOE^t^g<Q;URjIz7wFwm~4f_xPeXIrN<F6;%^;_B_$ra
      zHK*0tJa3B#?fW)8K|g?p>_91)OX)g)G38X|wtl5HUHuzEBYRYQ5(|T*QpxS$sfbHJ
      z8ec!JDE<kbKe6epB=%FpCnkjJi^gj|{JBlvQsDth6o&_)_^eHv39Q~pzq08$`UV1t
      z=peo$hNOb{o(m+^{i=rONv(^S$gkhX%ol9>4ZR2mm|651wM>y+kMM|z>3F6;Hc$*s
      zr2l)H{y=|3Yy@Gk*I7k=J(!H`P+7-pR(qq(A$p1a5}-dj8&h2mj2vmxZ|Se7q%^!z
      zTi<5UQ)PT0Gn7_-9?fh>V27JTT6u~7Zqv*3j}hUzAU<l%yF)MU5O2d~q-!ufpern<
      zY9k?WuzdY75B!E4Z^=L$%r;x>fi3IUlbdfcMpMyzwYtNX9^4#cAKYG64{?CU1UP7t
      zVbMUFLv#yb1?)^!kg~jOb2*Pyi5ixnic3|9c<ZCEHIN%;^LU9c-oaS^CDKu8^90o)
      zEW_UhmF*y?YsnM>Mg)K>=+dYN4Kj_AT6b(uJjZoNXyzL8N{Z0sd1fa*FDi^ovw6C3
      zHv!xg>_DZK3vew~bK=&jbZmD##Iv|Az}R1_fR;noEvF^DDB=>?L_A~jY{p($oS+3e
      z{S5YvT{~KnF$svx2A_%)s;{|}2#jxNxeR1u$kXX&S-jrnc^rZ0LA+}(dKD~`RxZ9b
      zCI+^r_BOj{m>$tYBhoR?hpt@{6b%@;yl=AkEqtmDz^bwyfF}<iKuyer+hS0Q`1Amu
      z27Vn;$vg$w=Eb}Ou`RY83XQl{bXj*P_5*xIk%ZmuRCj8KmvXbz6@L}T%WXc3&qk!g
      zGMZDVqT>)wJ{1e-_#R}bros`1>lT|=(0$s>Q5naQLU*OjZDO>c!~n|cgyc%;UTyOl
      z=?<jhgWwYR-j_{bQ-)xi=S7PYmcCv22ewgAn8;=1X$0QE{7SzQBke-wVeI2_(ZQW$
      zwje!gV{rQ+3g2jed%(R?iJA~iCgVF}$(HoaAxYLwJP9%gOx0ntHkM4L_Dbbft6}%R
      ztrvv2n>UHDZxJ+G1kL%S(L~|?;-E+y`OOM)3two{cB;`v<$49j%NdoMDIA=P@W=c<
      zO6c|5)F<@HviW`}1SwQ+!fM3z+<Uej_qa*LZ}U64NyQ82Uj=uYQz<Nqh4L@F^{wJM
      zyEzqLR33Uqq5XSTEFJ5|*2m^Seyf7pJBY)#)|gm}%xe{qB4F&2aLTR1+a8-P6y7Ej
      zqtvWbiyg^+*6btAp#Vb5++3lMi%P|%D=I-?L1Mg&-)8e=ydD@biT&{a|A#S^*Pkg9
      z-)ZyZ{4U5kn^OB#Y`1gehGIEaGno>^-5201aU!Q*y#7MXh&J%$5^M^W%E{h<fGT<T
      zJvLv;`vmrT5sBz=5%x7UAL4iG+y#Lc@xf6cEwxDv4aE0qNkOKQ(>RITqmRG~1^%Xy
      zprpEtuebSws?gN*6k&1t5{i`JAF=rc2{FF@WIUEemBBaKd=q1HH&Lu2cQW9{e@>xX
      z-0{+6f;SMEtot#WZ|099U}F_2hNC8jxYdaLQBm;)$rT*2Xz4+TlU=76d8~4Nh3GDx
      zHj)u}DQfzp@T&sO9X4OZ@0Pw#+5CRK4ponlK_;UPZl)B$aUI==KYhlg^XUT2G7Fkn
      zHAV7rWhBHf8%7}L%wVYxgaN&yz@9};PlEgfIbl|3OSQ4u{uE9^`m?nnjaq#^fq}KV
      zF>(PMO`h7RM-YNm6Pbcu=PaWpk#S0IXL0APM5~fVx(LsS%qVXv^;-H=$RU;Eu%KH^
      z;(nVS5X%kr>!c2+klI7w;!k-@nURj16hR_|g56PM9O^hp(nL_+=qY7}pl;O_>9ZsS
      zL?BG+L`jy<@lJiM)37pHQ|^WMtNir<e+~B{k`hOA1p#35|L{q1xkqe%n7_$%Rv|<G
      z2hUQxLiYm-rrOeChm%g|Z7(1_X7jiCB!UliKG<dHno*MOO4m5p@b?7DmxYNZZ2qpy
      z5bmQ;$!Of?IFvCc9KXsxviS%6L#$8`KGkbzG?D2^qohu&tRj0(EkZ}4vM=PH+58kg
      z&2&ofTbI07AkoHSvg9xL*#JKSTKO8pytMh3a!_Dz(__`OA7l_y(Lfyid7Hlo=jXTc
      z3pW3Xe<J6UJ5XMkqgBTdWbE&3{=Jm&m9j5yQ5S0K;^`f!^lphV71&P}-L)aH=wYu{
      zBo>Z9ktmVm&o=*su~W2@ro0piF!%zA>LRmEO3mB?@@x+9->}DYN@P8(aG4PQgZ~-e
      zS0G`xk&Z%9YU@{ViD#6dtlhn#P-mJ2IMg<laZWr#D=c3V7vezVo}lwoVL$L$9wah;
      z6(ynNvn{{msER>cZDzZ(*y+KB`r(g^KYi4zk3U8$J+Y43BPpfjgoXHm&AllfMnwqC
      zTefYLTPT|(9k^zf5J-+(36TV>afk_TX1TC!jj=)jYl8bQ%dJKw>yTAxO+>M5RZC^$
      zatu=#MO|IFt>}g_e%YFATT`qWh%;7f!!rz-VqvKDluiTvsolF{1F&~*QkkSr;X++s
      zTG4tY6qN{Bv#h#+h5c-m+vIwq9kGGfP86>62WvLdQVk&&R9qQW7YMl*>Tt!$r0Nic
      zt+}>UZ_U%^+H!U?vyj+`Ig%Vir@c{S&e4@Y3s<@2$TqqTi>G^|a7Sx_Z8ceML2MXG
      z;EYFcIw}s--Z*lI?bad>Sc{Nz^KnV{t{B>}BaULrW1VhWr}9N1Yawq6TDUi@Y%ILg
      z!QsGiytU4>t!8VPgf3L|BK}6V#&hZ&p>e%XbI`&aMYyr}09a8zM<}-x5zN)rqZ4d}
      zoEpv6O|JWv2dy>;GuMU0vOGw3kSc;SK4{^xva(UKs}oSAtig!tAWaI=<e=3h^l-a0
      zlpat~8t*0qsWM1aL8}Mbxkg>*=o48i2F+D84rSCKnXV)hH=Bf;&DhrAG<h`eBG2<}
      z>jJ(Ar9n2Og$Lzka2Tww=G<RW7!jIXk}A~XJWe*z>K1OEQ$t8rDfKyu8QLtCw9TfC
      zv?*XggH3KXaHsk@T@K1B?(UG)&xm88?$l7aU-6BM=N_;?2to(Z0h~uDgN`G_O)O1~
      zX5y^VgFhcFqA3)hAbyX*H!c>1XfoMU?zG3EUEykvLwmfd9Y(v-)t2`YTy2?O<!Vnv
      zyV}*3_mf<0nLpXp7Wz}D#=$cc?dh)e476vu+OyEEbG2uqJ=fK)M?2zbH=sS=)n0)1
      zTU_l^(O%?gpN95gS9=NCXSmvDqP@)3UXJ$JuJ$=-uW+?n(Qb3KSE0Se)sCXQ*41uD
      zyVKR~Li;>ddp+7cu68eZ#psl7aqh03*r%u`E+^F!=K$)7vkvvdWu$uIDpEahrlOv>
      zkW^1xN2(_-Bh?dEk?M(yNcF@uq<Z2KQay16sh+riR8QO}s3&ev)DyQcc&>$xadC?O
      z??vmFvQMJ(BFE^`i03HnkDQ>(HXoz^I7;t`c#qQM(s@P1I!af`udAi+fc!cb;iGg&
      zn%By&>*RmeM|hY%B>y}7Ikn_};{PjX9KP!MAig)7OJn#9n!sn%WL`_tc|E>t+C=qy
      zA<gIQw2&{RB|J#Wcn`JkWweSvOl$cgv<{o+kAaR2$N)+=)5q}?CT=lIoDC){^aUaf
      ze2i|*FCCI@{scZ}yG@apsD~L6m_VOYIuv5J8DhT&F)xT+^ly?#BP7C|4JXNt4Abom
      z!}RIS$ov8Ub;7fW@A?-6^mz#A3)I1P(|M5o7RbF10uW(EG!G7^7a2~$m)r|M4jowa
      zE?9=dry=^N;r>f#izxrC_5h|w*u#VW0=o}^-G^ZhUv?=oXAfc-p94E6gTT%W|4;0I
      zlhWq>$iKkOx4_P~!Oo+jup@fX?0nv^^9^Xn^KaCS*k+`Zc7F6Pu=5ny`3czhsbZ&A
      z19c2ArybFgHbAd@A7L2V0HYJL3pad)0>|kK?SkrVILxuUGfzYsC4K?OenUZik;?hE
      zG@gIw5?<I@Ell?s;hmuS%o>}_8k1@c)A-|b|6wXSK@TI;{m&O8HAm@Wex<ND5C4-w
      z{3?Y3tJ-4MDwCX5Cec?BQbk2yqle5YO{z`gi`-2okANkMBnbM^O;$*e(Sgio$S{4K
      zzENWGBX<=|o>+1+E`iPDJwPqSQIC}$IZ0#X0V#g_Mw%o)J0cB7>5)kI)JACy)A#cH
      zD#=>2z-t|NolR4%IW*U*SL<m#);m1c(+`!GRU@iDiC-30{}KJzV7L$%Budv|ji*jh
      zP#$;5dMByEdp|w8*&~hayFB=v=TEP{kWk2zZJkDy*6B3ETI}Mt&Jos6>1SrG8x6lp
      zVKYG?*xvBK$EZBg;8{3KPv3#X5f7gh1P!00DtRgqJQWF_)(E+{_>Z6*BWneDtyUUi
      zt)#J58%?rS(==-h&9=^^h_#lQtae&rb-84+)RD<jxx5Fe2om#?_$4y=MM<SzmuFgA
      z#3mP$d5ge@KZeOG4U-Fi|GI|TDF9~c@K=WRGsE=DcIj7qT^9*25Y=8+z}j@=II?y@
      ztQXTb>k_cF8*B~GEGtFxt+%?^S>Uj<K;;D-Z@5(ayi+lp1tSv`kBbNdz2L740=&w)
      z)}>To?Q?NA&QalS9a>A2sEEeE(|?D*Kjm#w6L}{Et;=0R#yCV?c0{xSfFyQ=6cK3l
      zZ^cv&LaWy(D!Kp&Ijn~06_YdmNw0#+YoH?*{IDvH_M=BUst(bJsiU!yy~FH}c!s%5
      z6-150T!FtZgm6{f)wRe!N`C8RDz`okueudpbsN=KpM+K4?h<*<s<8rB@kFfaM^#kK
      zlSC{$xdft=K{QPxiU7~+L74)AWE}&P<5Xtd3k$f9CRq2w3LbF5nC6IMnggTSfiZ<^
      zMhNCz=#d&}mV(h4fe@xfd^s%hAr}0V6w9N)@))pu2Us4bD(m|+*?IyN`2&SVS1q#~
      zJhKcQtR%N+Sk+Hc6*AOl^3B8uWcL7<Ad6P=jE3Vp^Ff}`(Fk|p<2+Y>pWwje#$(*j
      zse%JgE{F{C!j1D!@Y2nZV|?Z?FPjgco`W~7_**qU@30G~48r^+!2b%S{Ty`qYpS(g
      zK!o@WEwEmsGp(2CZ0pa|YW;;)TYq&i6m=Mi8ivZ~EROQIfL}}Vcr7#zr{eaKS>)Qh
      zX{ngu@hZ|qS%f>BM3;mF#33XIUt4oCO_%g`Z6w?v?ZXuC+(BNi{2u1cysIc%@r*|(
      z#Xi$BfyQ~Ns20ytJk@GF?K&=#%_ToR4~4wmO}LZa6~(YmDG3{2o|wtk0k(MC66EJe
      zHQt-4vc`8ajXlBLn=85Z7;pR{Fkb<FB%NKcT$s8d5?()5TEo0K&&e$8v&plN#&{Od
      zSPyoRp2alNvy|p|&Y%X*nY7rmOhM79ZHc3tCGsgKz|2u`uN*RDzQEaJh*SmM^vK=3
      z6&VF6c&kKS-WmyaA@cIpg2=0qnkNc*u7y0?DeUQ>X&!e1neMDSUGCGda=BVr?3}re
      zFB&OT-kP^ZZ46sVN;T%d&bnZ4GqATQ*xMrE*#di80c;h$JUam!+f2{JfPD#7d6F~*
      z&uN|km*8CRv3oP{Ij-E4@j+B6_}hx%yEBB7|9EFfi`rjoQCF4Z9hdJ$a4z0yzcHNs
      z%5e5a!u4V}`wI+5^Zr5b{$cR`5%7Kkcs~r@ZvgK%jl#QZ$Cc`^f7M2_i!U(<TA)gC
      z#W9hZ<D4Akblyr;g7bU|i+x%V*8Y`CaG1gg&VmffH%%iM;vu8VA*IZrNO+bgbEt$e
      zk712_z|g&5=mbsl+y{nEfFXAda4AzoTFp>SnR`nrbEsIEUn{8(+}RuWXNzG&8d8kC
      zL;i+&|NZ>-VSdMhd_^&_@4ARp8BbxkJ2u1)!LTLL&&JkzI)eDs9YPU_`oKnMbw<Ly
      zjo4>@Pg2yuyx8Z+0i5S&<n{a<0pb@B$um^#d6sHCzoe;n&hR`(b)M(d;yNA8cHDF}
      zzYj+%a)dXLp5!aRO*M8R*W#B%Z(L>@Xdf`p7D&Xs{&rP~@<BJo58OyT&yfP0-n@0|
      z0QNG}_BW{Q@4)yEsOuGA`zNryN{yb^T=?9D+barRn5G(hb=bq?@O{WByS55mh;FXd
      z!H4CcD=<E+<R=}da{lu{QI1P^YGdRLQouWgs=Xna<1KS(X|AIs-1Qq#EHWxL6&@ch
      zQnPo0i$Ko!nQtwb2`|r!NCiLdOxNUm^!S963EvMzi2E%ALzg1}ES98kIr7Wc2xNcT
      zFyDR$j%D=E|JoP{x63$JhP=EWLn_npHc`-fDwTT|(s=J8n(95BW_uS?y>|&M#k1La
      zhQg%1d6{E6%baZaX};6Q#+5DkNU>bnO0xFf{8=;EosN!}P;f+rf+LY|R6@a#f>5B+
      zk@q}+?*{lD3VVBLns=jGMJGa62*6>~1z1O?qYFfZ{5dD89)?gy&C{PZdHSFUw+B_Y
      zJs1hEl5l&lAl#~Lmp4vhygO*DcPCBu?xLCAi(yrlP=hx~P2SzK2+zgdlnbUSU*p`X
      zIA0$vnK=#?8_s1Vr913cU7Io6N&$Tsn@T)TjKF7IZaP-P;5`U$xCY`p=ptF^c)~G<
      z<SIjQg3v;B^LjLIf|@=`m0q24bfq`Jp?Tb~Z+E44H6*Soy{jYPC0OHXmmObSV8^P`
      z^CI(j?}RBFp>f{NP%WOPct5Ln7`@WF$Kl3hyL5H2bWgZMk$1~`OHMveJo&37C+ClG
      z+&mx1@q8c>J_kG>aPfSg1kaCy=kJ5(C*Zd~0MAc==O^EQXMA2}T<$%_@E2mG>)~>Z
      z$UI^ol63C75m6q`+vT0OA<n|Xt#CuSzQ7GtiQ#<~IDUl)`W$dP51aorZ2kp0)%&8t
      zqTO+!6FU}~v@=sxhl9!;@j=DNC_>j4N0FCH3iCn!(#R-6hjbL7Lkj+(NO-xxKU4r;
      zMG>E$g1#V?`^He%7ourC+XdSlMIOQhMJ|e5qG02*mlCiK6~XpZm4uBCdCcU!ASNMb
      zHcQe!Bxmb*K>S~k&E7bZ%f6vI^2C+l`(}~lJB7yh>VSSWP4vy7Q+#t>9JunmIUTTY
      zPw_2N*Wv@8Hv;i!F$i=NgE$Q!P6vp^0I>uhmI8#%99sLOL43!6z&AsqgBa$=!T9%!
      zL7<};1VWN;H9)KZh$uju3lMAHP!c&1`2J{g5Lz8i7K1=XF^G)-u?ZkH1H=}9I3FM`
      zcw-R!V`WfJ;mBF<J<mZ~a=p1`;hzrk&x>M<FQMq__+~r)Wg9iKe4J#cC5(kt<E+i+
      zl}hcoj>eNT1}BI7Yj+aRHiffS-(K?jE~PTxKC1BTrz)S$F<PC~&SKSOu`;r8j;)-T
      z@Q=I9vaYO7&lrDvM)~72k?@(~k2v&mom^^vyc+&^0RH%1i0~l%@sLY=E`L<#?m2&y
      zD<GDCX=he;2lQw1I`ZQ+`P>(9`GEeSQ&66zh>7fRF?dxZJY$%Dn=iRlp7h;9KHsen
      z&nFZ(ozrqUVE#i1TDV#St*Iqw-3eMpK<hIlY5kG^WSClsD4}iQZhonfUxxDjp2wwj
      zV7_6{(RXGe?1EpzWX2Z->`>eRiV}H{#SKNv!clWa<FMuZoXCpGXe@VQRXO!n^|J3F
      z8teNqi~`xhr?Z<jid;qqHM3F$j-UfpP^2keCmAkIm$p!jfQ4bJ>_MxdSV51u1W{&e
      z%`0Eh84@?)?gY0dG(R$Ijqf;NRc?-q_dMTl%&O}2EcV_(;~J~H3+LZsO|s}pFIRaR
      zAGqbU-{mExHYC0uLFzw-nLP!5ehgFlDNXYIjAr54=zCfLI886&82fx{Dk7GA|4?sD
      zv&MmsFpfc|TQeZTDjcBIqJER(R{Z-#1N2P8E2{G2*31X#rD1DM9*5T0bI_RHpcPq>
      z72({W!vfF~nRzR%hGJp;(IqUe!OHRv(hP=$W-e|otoeXYJpUEf{9sPl@`;h2&(CVB
      z<Jl*yg*a5SPCI5TZf~fxmJC~GY?M7Z@)dT5*sG(B{^h!#uG9TE!MDzq{uO5YRx^I9
      z8Nbquzv4zJ!?0DkruXBjy*k(S>Gm2kEo%A?>S=3pO*5@M*EZ8S%(PC^f0drLF4r{E
      z&darN(k*D#n`zyqA2&b3EN+}MQ@!X%^T4pRabv@<wIwgy58#6m@`uRwm(c{jO*Q^<
      zs`HPfMt=n@@{gls{_(WZAEvebO6u`XpbPv})bF22m-wqG<DW!t^G~KL{8Q+lzlN^&
      zPo*3E)96<Jbo#V^27TUNOZWO`(nJ1P^mYF!^q9Yne(0Y~Py6T4^ZvQ?2Y)^N%|DNE
      zy3av>1CRGNa;<;9QnU&SoJ+_yPqwyN7mA5keOAug&Q)eiawurUzCsm|6IQ>dK7Q1S
      wNmrgr6%74nP{4mCRr;G<rj)x^w5%O4T+7;tYa0n6mer575;*W)iZ*)w7f0T%M*si-
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0O;21^7=F$$Ff(w=6iQnx(iRJKKCmOARHYT^01BN#b?8*7RWCC)c$>?;<jx&R
      zjQ_wNVBERVZJV^y*cgM0lGwzJi6$;w`4Qci=)#p6pL0LvtCO&RbLPzZ@x0Ibye~Zb
      z@BWtnCZI(S5}3H5ZmT<)@=e{`$Sf^b_NMAMT4`0=aTavVD2>jpmmOOzI>A?V1Yv=L
      z(k)}CbXr-zp%tA7x&#K?SKZ3wHCtB={e5-a&}dwCKNd8*tXt-l#W?}7Byb>WnPo>c
      zoq}pqw9b2fh~%vw|NcZE<^<UVMsoWAoEGRhr<=O-l0ZiySr7<kt&-M_4)iPNMO+}B
      z(@kx;vbnC=s~)2MoK;kff=ZM`=s$*?_w=&B<bD|+rGywdi-u*g)`3LQ^>5^cUw6;%
      z6tyjf<(DHE5*V%Xmz9pomXoh+ZCN(CubIjkh7}yeU<?8$6eu_#pqSdtS~D1VLvv<}
      zZe)R@iR85=_}(`J&_}a5t6168Og7eVG+W@5k2Pq&q&?GYM9;(Y4D!`=@u+tj@zDDa
      zy_eN(eM6NHgUn;?GPj!1JEBX47zPPTG}YBES+dYgn#L78C7T|rn7(s2GMI?qX;Qe4
      zmJ~dLL4hbSyPA~oo>lN1rl{6!snS&|@7Np_fzuwKram{e-m{yQ$)8v70$yY_WzCU;
      zMNS)?eM<>HgL4YbgHrBk=$F87JHCQWO-JxD2c@w#x0Au-26nQV3kptQv>P*+Q!tMO
      z3WJ~mi=aI%WVh3WNA{}<o<u_8UQ%!oIrf|3S{qp-t4V0BR@2Es6w3mTI4>)B4X;z|
      z3^!lWWjpi|M?0~WEJUy>Fz61Di|n#$m$ll^a0`^IqQFp-UYbgvuzGZp{nSe`wuJwt
      zf~$zfc)O<HEnKI5w0c^x#sPQjsROP<3SiYDqzVVVNe4kI+pd7TRk4d2Ii}ZO8v&n@
      zC9&j1)70#&p_a=U*HK^4#$X2R@CXU&;7=z)IEDzKyvMlHL!>Swmjv$$-?;qv`yf9}
      z@+7n9Ox;7@ZP)Y=e@k;<4Pjiz0B_QXMmUTkJi~JH(Bd)oE|^M&y2uyl6=$f&cOi0V
      zaTmwaxA+u-4BAU<fI(Cik!-nvk9aPA;3zSlWD52ZBY1+R3_Q+LrVojFtS<NEg9dP+
      z8aV2BU(XNQdXC|=@0sE0@p1>pTho5j;9Tc~dfzwgrwyI~V1Xo3zUKo{BuQFHG3_2A
      zsVdT`w4`wl=XtB*Ocj$=oaJr$()d@H`53+9yO^QjY!%rw&sVBg{0#A{>HbSJOm$ST
      za+~1?INBGG_j@trYT<M8eIGsef;{ii;sM#;!x+9M=MQlf-_YY*Wbqvq@jaIDgA4zp
      z2hr!7U|nSi`VHd>3d|tnru9qO<Yy_1F<BB(=h80fo-|PlLYB`w7gJI#bp;+n7oC2h
      zSbk=xU#PfWaRR@wwZFR{JmHMhgyW@_!r{33si%0#CPux~Z`7lE`u>yU|K&#W^c}59
      zh%3gAG3&#R$rwX-vDO;oA42@M0aC2SOAK#wd<6d~dI#?^Tre(qzVI(c;|r6h1RBCR
      Oiah0_6I?l^aO{6Ee;=v<
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO-sW-5Pj38jg8gT`hg%Qf``_FLA;0+K?(sS=)uzaCSB^5G=a@l>(BBec<=}K
      zqr};$cu*;Lnc27V=IhPt+w%*6Lu|Mx5st^=PR#uLUZo@dGRX8q7$b*$IWvKh$#CyH
      z%8eGW`3mWPL8c#EIE1Fn_7lOm*U?zUhEP3KsWNATa=SAiIK6BrJ(N+aqk<}-5vo*P
      zO(&7meGw&+&<e9yBm<$9#h;&!xm7vgB>eAuT|#{%zsDvF+VhHaJM$Pn<={TvO*YlB
      z43ynw^A`~h>=HcBMVd<8OGKW_+{GGUXU=w9?l1kFU9iS{Nub0p)|Rcy=!iYBuk1fz
      q;jsvNY(1udw)kq>SY%xPAhBP9J>@bQ1-Dt)6|{;RTWS^SPVF5PVw-CK
      
      literal 0
      HcmV?d00001
      
      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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
      N%J>^h;m@A3{{qyI8ms^S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut(MkeQ5IwVQZmwHyYFUqxK`FHL7)Bt1P)HDpJzuv=-B?%HyJo-DLj*na0ew_7
      zcMSrS3p00S&Y77r-#?#U0M2pXz#<$zix=@4=(&m?gPUF=CbH29L#eeIM{<#HU=!*F
      z7>IcqEQ31t!z@L}r%y^Z&Ir~1YTGu~FIBA4D?;sf9pGd{u)EU-SpcEvVFP&=Ic#}w
      zuuZ5eNdG&u4WZOmvAms4#xfZSUYSttPeT!nM50Xmm$c1lgrhZcSM>6x?qE7gLfKQM
      zVR3PWQ=^ICUB|IZx{=UYY6mqQxGI+5FJBRLR+Zz^lkXd8<_DXlZL%+LbODPWP;9o|
      r;Wk?z@ZLDIP-5$5r2!M~;B)LTiJ{m*Im1*kTg5JWmurMQ?8E*A4P12*
      
      literal 0
      HcmV?d00001
      
      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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
      H0MGvb(eo;Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}OHUI~7(KTww2T8S)CUTRJk&mvD&hm{3k%hf!lEFFx-etC!7=TOnVBlYg{)k=
      z_78}Lg&KuK6SpS*DDk^9H`7i7xai#1ch3FJ`M%pfe}DV}Z~=2sgcvS9*IsI?Is27v
      ztmNiOhQlpGs}(J+&c~*!Rc_n*lNt{mL=j=g27m>#{=zi4;k1JM%_uq<Mm>NgN%flU
      ztmT?lENis}XGqxG(zV($w`|=s?w4j5*c?N5!8B|~GaNUpqf%L$%&u?TVCZz7>Gs%p
      zhQV?mp@5P+#a-78-MPsyl-e&az043Pm``~Z82VJG=vENMK@~kX#4ykX_7&y@FkaRT
      zzR;*Y;ntEyt`S4otdbawB+*)KMnuXCm-fk{)x~xty(`>l+O|N2VmO#eyKK3dMrB-d
      zEUIQ+!Ep>laf0F4-qxr%i2;TfkuK?u$T`SgF~#0#$-kQ0t9&9Z--R)pj^Y%<$o|C^
      z(JIa$#n4k)SemUYOqU-QE7S9{3}e!leQzRb12)L+IrHB<-9YMxqXaKBEQ?yUX{KZe
      zy6F`(AH_I%BV>6di?Xb6OPG9KrROx^nON4=xWy1orArFVVNx{CCF-eENpy&~bzWQ5
      z>y3Kbt>HI2J3BIfI(3(Tb$YcFVDFvxA+I~V{AAkchYD`sRut6wiDvfRsfycf-nx8O
      zLd+c%1(9)#E|OxHAv(DoOeQLeX2YuTqAq$Q8T^wN7x4^g$uPK8sA;y%sp<QhvV-9m
      zCUIf<bs&Ueh$2SwE|MIAl1PYmNb?vXWM`aC611A4vk;93GTHCw&1AQc{Ne%*(^qki
      z9ueI`9HF&JAPPl4j?zd^0t1p}f<|!`%X~xc76w1lJOshf>Fz&m!N+|3Fh(SPT;d~N
      zG1`tbTd)xyn?^=r&q{14(~f-If(-e{ECj+6FU$hsKXLAXmw9d*7u#vxw$Q|Vn#(@T
      zr0Y4^C20Dt?85M_g+cKduI|AwwF|@hT^X(+FQqKXIwrHf(GlJhVzOJfzJ=+?reBLb
      tDn0Olz8h4RkLblGm-et*=cG&wNMZ)FL>xlV#oom|8Wq}M)Z8UR{sG*mn1cWS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7O-~a+7=ETLEL|5Z1*-V{QK275Me(zUXaOzOj|h_J#VmEi)pnQcZv8mvFYt#L
      z4{8t-O-%G+Vmx^CYCL%I>`i=UJGR?~B8PT%X5QzSdEWP#na_XTz6UUjf`S0U*j@d;
      z{xIV_FwBL_bl!BiZR({dTQBqY^aOYAxz=L7XqoXd#UghcW4^@w!wNzS=?0FRRbI4A
      zZn}O*ZBRiw!@ep&my|}ya35vr3(V=I3TKEo+&1*m9Jd|AGOy()7}zvJXU;MmS2tZR
      ztZnl9&!=CH$Dc8@yLSvHKFp9TG;FA~s4Rg-4byPP7zPvTMkVJMLOJUe4}&49K|`mC
      zAbK=xL@&d(CZ?M9tN?B*7$(0|DbI6zR;O$dL%}MNOr6A1Uk-+Z7>4onZpxo*U)e}u
      z*8+FzxxH$MCHoWqa@48@A}$-o4(w8}lVR`L6%)}Kc4H5NHZeJKVfONsoB7=3OAK)-
      zV9j+X2MwE)1{nD7F1<j~*hlbO#kR?Hb*Yl2N3vu}I$6A$`K*Eg%8U?I9Tpy0;C2{E
      zq!pwX2G(gI4TCtq&~{s#7>4a@)GMnZgJA^+8Md}&*Ki1j89GQ&L4U+;hF~I@SJ96n
      z!e2+pdWpO+lF)one`u5|<tEL+$15u<GJxE@O28Ak0Vu#}oweSoi5rrZyrE(Y;|fmG
      z;jHJbno<pCynP$;U<$E04HII=9kh@X!%SiLW-ygdov|u*kxv=IpWTf&(U6EIYvoOo
      z+qshNIGoOg=D&y-V)ZQeC$NW<2I<#^0JcIw2YrW0e*kJEBF-*-(=|r9-9$4H>Ybpu
      z0JR%Z>DTB=rQe|Yr3Z-7zv@kWB)SjSOnr?&6pAhAqn1jGZIWh)S}_-Th3zk>4M5=A
      zy|FJoY^a9ai+vJ1D6xT5GxD1c8K@!S*e{Wzo>(CI4*l0tOXylcVi`kkFw)HQ!^ae@
      zF&(QhjYuX{Fh!5A!tl$-pw<{pv|u>73d8SJ8L}9aYUX4qV(Cw43qF^6(#trtjI*KV
      zwX8;|fMD(P8i@y{13fJ4F~_`W#pK>V6_~^naR+eD!=6W;+9>st<kx9320b6RfY4t7
      C`?)&+
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?ZF3V<6n;+LHjUe~gjz~LC=f}S0?~qkELI@3k{Aja67+-4Y{P9?O?NZ9TftBM
      z3V(qAKxYITaU8xm<3I4vFrK@6v)N5)KV*}=_nzlG=Q+>0`S<moe*<_QUuj4YD&Ltu
      zm{0586U*MIx0<#uT-zLMxaO`Xx7LOCz3&X0eaF_2A<QQZH=Ny}V+-5YkRzN5_so7@
      zc%HRo4J`l1`YrV~5QJGzxRyES3D>h6yW3nRP>V3#aBR;vZNFy@_C)sPe}Db-%g+xh
      zgzUB?K{(k?WKB>s2)P@UZTV}2)78TcF82tThVw`ikVZ*I5l0E>>T+)igtv9*m@e?I
      zV>%Y(PJVCr$n-_GNtkI{w%FX;-4gBtb4ylIYCC-{#N=}LT`gw($CgJ}K7>R<P^M1X
      zgt;Bzk5ytVeDTz0nCb}VAVJkpL-IeP<1Ee*j*JcuM1)jPghpGFjTzx+c$cttu+$0i
      z<uT>BNeU>VBDJj&E*#d51ehUvQ)C^K-R_&VY<r}D@@8z;&~SmUkRTh|F5nX0(@-ZY
      z#*cKQ$Gg51z!IL$Be2T7l=|E3S>JK*Z8rv{$4xXs?)8DmLlLYQfr@qWiC>RwZ-gyU
      zi?(mFPh8p7Atz4SAV!W4%yQ0zjd^+|t4-{4OqOG$8_!N091hIwx`LN;+HD4oxUR#%
      z4MJ+qV(<i+AR;P)&uif6QR5qGy&sgI2Lu8!<mk>R9-&4Z-(_u$JZ|$qC)fmYKUr<o
      z3yV3I^vM3SYz;ZDpXpe~9rpPf&c`c}Mq1imY=V$cz~{KDq0M6-cSpB**R;(Y;p(`G
      zO~SQgu2z&swS9DF?vqnqBljiYPYH#Nv*-53h9$3!qsi;_lFZJ!Hf^>|psVmSbSF%k
      zjN#+)dE*=T&4Y+DOd`#nEK*p6hCKhC;%h&J0zdh(<EOkiikRW&EWd5?UW&hqwHG*2
      zTX}}L+H=hR#w#ft=Vu8SfR6Fsz;R5`BBtpCBLnkc6i(nIzi~X?VRW7XoWf~^-Qrl{
      zy@lHESo#MuwU;P=&3Vp0!;)P3mG{CdMP>~;4~;5(4OfE<dKjxR@ZE@-!fkVu<gAxg
      zYJcG3E3C9v##kZaRsNT|j5MvHKv!anb%j@8gv+?Xh=dRDp+c?)??9I6&5a>*ybM~4
      z(aJ`&uHu>sURA+)4*uvBKAw!f6N}GB@t@$PiodAh)1_OJp`BQ0Itpz>U0hR&<bn>4
      zyC<szeS<808`B`C5P)3NHTJEd5yN_cjY+H>#(I1JmVsta0{@jNtm~X#IzX>+qgt%V
      lbKILmbnq4pWA%+Xl)@K*KfXkVze@qq1N7LxWyXAn%>P}V3Yh=^
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Mrbr2tuqXQe3;FHP!2kdN
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))-%Hz26vw|OW{r*6Y}IvLyG|Wts0C{urDIUK4mLt5-6-s7T<gW%Q4>kxkG=~&
      z`mZ=a1RwkZ_D7AKn+2N=I`)#2bME(Ze%y0^{<^yd(7?I{gHZo2PQ+O~JXPL7{i7?!
      zGLZW{;mK-iIFw<i_C_)twqO!!Q&8JKJn}v1MQP+ANXSIrR9M|1l-wyURjkRXH_B7d
      zTS8@Hwrq1iFx&pV%!07s;1M!5=J42og(rmaU+6;<O${!(%9GvW!#x>%7CaVV$@Pa~
      zG!TK(eiAfwyM)HfF4AL8&yYWm(d63tzOM0lV>8Jlk_%NM6^-lDx@Hyy6fHa>y!vxV
      z|57`6juOFfTVFc;&bzO@R<}c_{!bl({mDNLhVs4A-R0A}-PV;k?FY}3L3<>^P=*#(
      z3B_4^BNQfcq*Gy?7c|H3jB+`>CH^yD@|NZ~o@H;BeS_`7R_zA%R_zwfk65(GUpqd!
      zVDKC{_8o>;iaeIs5|*)&q}gVx&&+E)y<%%X^O-nynPSa^HBgRKFHm7?$Mj3A!Tb#$
      Ca?11o
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO;6iE5Ph4Zc4G_<;TuZnhg&595yCZqgd$pnhV}sB($mJQV3A`>_ChOu69+04
      zRqBBsz>h-Am<R>PWp{Swy*E2=_xA4p4S)td+sFw_oXT_gyPp2i(Q$pZqf_HIY!n0*
      z2MgQX)Fd)6T;Ge2R48DX6P@~Nq|g~eW)e+-;<*fcZB#EM#Lo;;4<+^Z(LGgxA%wM|
      zBW<<>s+A!MLnzflfkKPA7a=g};uS28JQp@zJIG_)MG<9ze1)N2M@Q=WS+A>-1KACg
      zK)DkKGCY)t=5s$;;5h`QUf#iP&@Js_W%l(2u}QTp;L>>~R6P}$Z9}w5yE<$*p#=oN
      zo&ESM3Dg(O{hiF5Rkn+S+EJvERw&a{QGahI3c@(0SJ+eLBtEk7L16ravo3smB6N@_
      zY1F`TtW<_M_GG9>bQ5djTb_PFu2f<hfl`@Gqzq?^aHu{)(I#?P#;Yw~!>z4cW32WM
      zr9Vu?1g#G3Ah2V#FiDY1G2mee(^-B7vwbOU$u+C?7h^Y<6g?<doVC6Vu&qb-9OnD%
      wCZV~L&FqEst7r6Y8GZTz(x(#`3wT2Uc`Ro5w^*W`XXA?iWxS)cfcN-#5A*AxQ2+n{
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv!EVz)5Ph2jJ2s|HQ(6k86iR@^DNV^WfK*jQ3QFNn6p2F*8+X-i<=B$FDTr_4
      z01_<{2R?w0Ld-a!vIqz7j%VI``(}23{r>S2z%y*yC<!c`$#eO!lYP+fN$2%IXQt7$
      zQ4v@#7IsIONo8obevlliNWe0uI&18Z!k~!EC3*tRxr`dxsBtDx&k>!8(NSlpLX)Hf
      zu%7E!o0kI3=6?j{8Lgo}WslBwAaKLOHCP<^9&A)yl(Fc+L0zESWT-#Tv3fHZk5u|j
      zjv~b_l2ArNnQH!@B`e&8!1BC>Mwd+5C(0b^PsAqGzKc7!Yhz8I#w`~c^01CoGMMFH
      zk7)am8mrjs8d7ieThoRjNmG71I-?=<SnYv_O>B@l5d?&$uP@*pCX+N&uQc0s^NDWr
      zfdXDXj#auB$t+W3+ux7FD9PyR4wN}fj%@@2i*wiEVGB<Q9i~beRk*|Ubo9kWdQ+!=
      zU&Ix-haH-BnO;t*R^#CVwK|WUGMshbQvEtbFHp)ee$c*v7i?W%A^48kSEgc#R+n}V
      z*tOo{CPf~_fRAOY<oR1zok?|R=UO%RhJ{Pq{!H;y!{WSkRNz;y`1i0e<Fge$%VGZ7
      qCGLOuM?mHRD^t)+fO~m}21%6hD91m>6WX~yHUrerq_u(;+J68a>a5WK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO>fgc5Ph2jJ9bUurlb@~DIWnGw={(w14vaVQcwzqqTDy>s@=-9k-aG&zlj4#
      zv`8HI0sJV$j2(eRxa^K+-g`Uq#y@|3{{i3;Hf>Y{7Ek1veBaI9>G-Joa-cKQ-nLN_
      zSS=TJMwv<F*l>M6IaHB=WsY^$-XeuT8JSD;1iUjDwIhN*mqrRSb5M6;bkrTHu}M<G
      zSWk4U%`<@@_>aacqcaq!?b7oO1TK5H1dF4F2OD)4RV;XL&=jZ!3~dZ_tX@q{M=E_I
      zN0H(#lCg}2GS&P&P1bl2f!1sb?QLq(K2qjDe<U`k_FY`Z4I3*0K2Kd9$ipg@slhA<
      zdqmrd)TxTijv@7+-zf%)BpLmBbV4TdSnallJ6IEN)L*pF0-`VA9wd`=tX^nt-p#Gu
      z<Y&p=ejKZGH<DSVsQJcTJdTo#cDS$1adK!Q6j+$qi-!$76qw6YzR6-Wt-}2BD80@Q
      zTjXq&ew2#uv(bRxWSc3&SqCoF=O}uLN}g$i>*w&ojdRS0-{5~?Di-N<=>~ya>n*NO
      z<WUSX(85xlzl!Cl)ML82Ru8{o{sPxNQCw(PoVQGgU;o3uiM1)8Tj94H=C54f*5`i&
      lKI8&R1!yY3v)o0SB&xWV<L~1E-8>&R12hrPSwjcwzX6+<rhWhb
      
      literal 0
      HcmV?d00001
      
      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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
      O`ZL{K1wH)*k^cjObKb)M
      
      literal 0
      HcmV?d00001
      
      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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
      bs^TSLtN0y$&(DYqpbvjwQg_h*AL08y)Y7Xb
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc^F5dKcLbYWfE0*XQv0W0*P6cq6SqNGYvZ8Q<n2i}(M5tfv#+1*zDmWe{*
      zgFnE3;FFrDiTdE}-8i$orx3!!*|X=&H{Z;BGw0pEH*W#V;jW5+z}U7?HFh)Z3(MZj
      zJjh$F7v~QzX-h{%P$0^fOvxa`<Be@u^i+fdrrSMbRoY&Lz1C!j5LVf4QS=H-9t^%`
      zct!&!5c0MxH$E#cly8UoSuK)z$+9hPSztJEfIV3d2xiNs?1Ml=M;|l|3I=qXz@UJV
      zU_c~q+450kXG1zqjg68N7|fT8MyX&p7N6^vK~6+qygN*XIFwVQShh(h&&_U;Jkk`1
      zcP7^ohHJggGA$+x8b)zeMND9zt5O~3IAP6^Rik8?h9?<)UdK3JtB!nbShgq7<5LSv
      zbYyu@Jb`}lkPh*!m?kF~X`G+PopP0LbTU?Cvx?+lRW#e%DkXuGiX>IuUP>#EP7fVv
      zT%v?FrMGH1u9ve-x$Czlry+qE9T~RkWX~IQGaKe~T)|Zu4Kfrs)ttLxZdY87=GJ##
      zXO*t$Sip6Gk!O}8n}L0Nv$Rkmms{sym^wtbreCc@frU;nYV+9P-2HI;CJQX``03Qm
      zwQ|KN%2kVJPV?b2EEiRpv+12>ONQ%8nmL`HL*q$M%c(X5&;u1B8s(v;w;Q4xVkKKY
      zo#yEjpj}I)Un88_NAx9~0vPg<0#M%LB>gj<P&kEQ+67MIOr7B&?aUBKy+U{oBeiX;
      zMH8kZpnQO;d_-9J<kJn;T<Ub>j0sE<k-&xH5`QM*FGT$H2;%s0iN6u?cOw3A1o1^o
      z)ukvR=+_lv4bpp<rgfRt>>lR3WErJSK>3MY<rj42H=^`Er2N6C^0zHutSM29B)UO;
      r1a<FbJ>V3DBXJQ*rT1~GC3%SKjm~jz0$B3Dx3NsSMpi-deg}d7@JUQ>
      
      literal 0
      HcmV?d00001
      
      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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
      V^(Oppny$n+QIWXTyY6zY{|oX!O>6)F
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=O>fgc5Pjop<Hj**+R%iSkES%ViJR2zfm09?ia;s~1qqb9ldMu#iBoJRz|Z1P
      z5F9vi;D`_(C;kay)-KQ}A+px%oi{UY=FR%kulFAS9N<8QM%X!V#?DJSc;R|I`{5($
      zjY{`Ap*!>%$Bx&N-KHCa(v!XpLC7j+yU&3AxP2l!p^hYBGqSd&;|2B;e|ReW@KqfB
      zCz!A};LL}i91sf4DM|&@3CZx-4NCij+_Z~=@3@{D-X+w^Gw^9sl(o_#h{muhQy?sv
      zNWn0Wz_N)nRtSl5rKOO|CUh(s$m5ER0%3J#jV9KxPDu4+7>h*6mn##@vAv$gHQdl~
      zov?B-Q;eF}K#{QKbi4o4Yddbyo~LSE^|sV>J$W=5w59*dY4;@)HisRj-*S9cozIOz
      zNlTclb<Vh1ZgN<bS-lZ5rxRl)Y|Sb6{#bfpRBJ+xLqajiIkU6am0&y_j{J^%;HrL%
      zsLVYjBf&iM_%b&7P7ugIhfP?%sBh%T)0=sPQRG1<cr8HVhvyAsv+73h|Ddrw4U^xO
      z`1G95g7*z;_Y4{9EwWbi47utXtRB@q!l+sAa8<+WC~%YC>qr9P2NuL<q{J6w#8>3R
      zHx$Ho++@7S#GDRWDDkeo6upKVQ{KXMRMrm4=k&MPL*qsN2$Bpz{EU+2WAJY>o+~WI
      SHS9)#Rn&Ml*h1LDKD6Kb-uq<$
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&&rcI!5Ph?)Ei4Ny1yRHbVvFq-DI)%aa1b@o6g^;S!fk;MSX{PAcZ>cdCZ0Tc
      zHW7#(jA#ES<NLNnwkf3P?0(<8nR)YO_Rrs+zX06DQW}P!u<sl?AFII!*WazaT2p?j
      zpv~%@<L|1P8-&VN%`}pNtVUKn-dEpj?yIdZjg(+29<L6SA6C0#1$}|?2v^$z*$||{
      zJvS)K3r1@3*r@gr-OH};hAV=x(mDQeU65RDY^#0<G8Xz_nn+;S!T@rDL`efOHP=_K
      zTL+t}`PSL=lpt4YY&l-tX}bE{xlC#zf|=ej=SV<iRuDR&YInz8rn~vYdw;HVSSr^|
      zT*LJ=CItC-t36N)dE5~6@2YUU(Q0my@o1?W@rn!1iA@Qv#8W+Og<->AqafY@CNXW{
      z777B>4c7mQPEj_rTr(EZ=rd7*okm$O98VO<Z=s@9%<i~NrMKWThmN^pVNN@9r_N{U
      zY_5hn6ijvr+0!Hylmo$d7b?bI`#Fx~Zdu!F(G_#imPUdL9_U@Ls6kuG7p`6aGYXp1
      z9dnQ`eJ=H?=LCUb#a!>gV~Tnu_`d{$KgtGVvwGY3=_Gi=3iJ;0v=|`()2<w0$UZ^#
      z8*dGa(58q1-eHth<B7s$jPc1a;%X<uC!&+QTc{jk{5K}oW`E$OU?p#VNAU~t`Og^S
      z>(DW7e`T5IZPv~op?FqlS~J8ptwIJn%)W;SxG3U1X5sO3_ahc|yHbY*YodyI^5}z2
      y%mSHYxIy=LPGrF@7dsqh=t;0b%C4N?{#o64hX(xy9!B;N9`k83TDUt;VEhB`RRyyE
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g_u8C|wq50TEHGNYzpkR-Z8@ST%uEV^Xb&Z$mr5G3#vEou$Sf<dZKZ
      zev|m75B?w@jdvEJl<LD|=H7d9?mcJjk6&ND0=R)@2@YZTx!4ykqim@3ZnS-0>b(9$
      z>9)#@)G{r>Bb>L8NDNIR_oX%w*ZawEvo8k5A|?p)1wtiJN2W@|>Xq1uC83fPVOOS^
      zO7!EcI|SM$Ot%u98KF&A#JTie|J*yMz1jOrm@v;&R=-Y|YmZH}!R4DuD|3sm-uOp-
      zH1#kU<O8c_W35Z@T1j7)L6{8@Vmg3}`4FdYn&37pV5Y6Ke2~A`k?Etu*=O5HPsClp
      zdRWU*(z62+YNNeQn#QC01KXdlIEwr`6}!NWvyH7d$=G@(Jrp(O^IhvXs|ZlTN(mPU
      z)iHBIT*4}0DwC!oW7#vZ&!QVotu(**H2%e6l>g8Zf=-gBJ$X;rj|+-LShsx$;g;r2
      zXvHGSB#WOqwjNkvPhCDf94w)PNq(1kyBq|SinY3U6I(sQl?q3<x#sd6G_So!wfPZq
      zZwt(V&2bIh0etTh&Tzb7W6mz(EZ_FEgmau@F<3t0+vM1y%FTDEx*u@iB;7Ymdf$)H
      cmH*I{QO9Mbad3qR99%`CXu?~{Ua!IX4K3!si~s-t
      
      literal 0
      HcmV?d00001
      
      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
      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
      A2mk;8
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O>^5+6g}5=qQ;ROHyG2Pgnp&1V?$CtT0R_F9Md!|P8Ut<0vkrPABh-6Vk{+;
      zC2WBmtjn6|qA-w7yI>fW{3wR|tmh{=DD8M``90lp&b{Z}_x}0!>7M{zN5?>haN!Gk
      z-@d;ReC2rCD>pWUx3^{w7Ms1E2m<GxD@I!ea)kO=aLeEQ()WZHCd2infl1A7D>}z@
      z!mn3i@-5+tUg-E9VKUrtg2ju3N@q+&Wz^t^RmXF}D}=dfddO0jkZbvUF$F@wgn?su
      zWHDo63MGPd2&OY_NZ?Gz@x;x&-Fsqi+vd6nvmL)@yIp(W$hF$c$utQ|sTm}Fi1W6#
      zMVL}@%ir@tLbkfp&f^4LHZVshr`2x4!aU(P^Jv31xlEU^SRKz~i@WHG@u<c$Uco5?
      zCkdyL^l7msPNPC7X(`cfdwp@AFwu+hr8c)Hy&}TdYI~H=Q7v!CVlSAeVu@fdku-`a
      zV`O3!x$ER`!<`^Du(jj3{is6G=Y})zQ^wo<ejK9>h~9Ul0~bx6`DLyx7}=<6n;VE-
      ze_y2FCGag1mvEU-?76}oB&fM{JUAzY+bLMWd@!8vrt7A@mJN+x-16nno!1Suk2o_j
      zt}%sGTru!I;Y`%hXGNR1iVq0KHm}{h^VwSS7LSb@-)EuN`}%W}(Qa_`i(}<%g?7k;
      z$P-?BK8uRw*~sFWi8Zu1-9R&p4(?Iuj<h(5{Fc8r=!tblnpqfKUdz%Xg4y;wF=)AV
      z5C}fRv(5kAay<TgB>6i5DwX67!dK-qa(sj2d3TyumyqEP@7C&nz^v6DqxdT?GdRw_
      zlN<zWV3vQ);s0s8fHJSxA5;`YS5Z{5tF_-@9^j=XSRiB`U?R6_J>=+!ZI*?BJG|;L
      z<6Y+Yc*tDg9WYzOoZ<a5ILqAJSe#QDca?^fRIpfq9?2c+0OucRp(57|e2x;fSzsq2
      zVkr^u9aK{yb-b!XHk3$tOyp-S<6$-~BQj+_!CKa=WzG5;mKE!|Vl66G>j_peh)vE9
      z%l`%ie4F4bYR;nOd_!}7qBs{0WjdqRZ&E@cGUPip<a^BHhlI?6mRZm;Z{xB`y}?g8
      z0flthDDxkAG=3UVMk7*Cl!SLQQJqO75yfRkHa<uINdw=-dnyBIq6FrCLnCf*g#9If
      z&1vi+nhGo1DzTZ`VdOyqnbAl-rwVzMpK>OR+GBj!smJiB;=lMj{XL|JM%Pdj6AW6%
      V^&xme3Zso1{FG;nZ&rMS+<*47-0=Va
      
      literal 0
      HcmV?d00001
      
      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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
      G;C}#`g3(L>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&U2oGs5S&dyofwm(rBGUEN!tMVD0T8i6(~YcD-|Vx1PafNdnB%sb7fx&{469W
      z5)X)HeiUNQHYJgghqHZqvvae%<KKUN`~=WM!$69#cII3-pX~6XCkOV+u8@-xCC25Z
      zfefLj5ABh|N3Z*5!c_*A2-{J#FB}=#Zvy{Z1nP5p$RN@2LM5aK2uo_{h2;kGcjjKu
      zV#rfZdg_p{QCWbg_6V7_e=2ey+^}FEYa)$;g&c~6bVUOS9Z!l^lW|`J@0|Wf5LP<A
      z>x_C%;OTu5%xFP`_4!won=B}QK2r=~Hx_2kEA{9?NY$$LOx(eSfpx;x!nQ<M3wLpk
      zkQ)f~)}I6}3tg>LBRSI@ZW-9(5~iE>!d0FxO_Z=>V4HAj`tWLG7Isl4Y`VVu;0-2$
      zNJis{@Hp_tF$vFOw%Ku*>mU#-D#dyh7tCFET*cC7`k1f~%(%2;PtPHLrEOm;CRitu
      z&Cwn?VJLVOg(K;X{E&^;6>8|8TG)q8*l`2lC=qim^4G!qG8W7KXU!HGY^F4?YoKCL
      zdy4;t6t5gij$Y@lC%o4YvsV8GtM(oFFA-*0$D$L?rUR_--r^h`y@^$R^KfuGVR_HU
      zG{=_fmstCS&2H^0ti4Oz|4)|J0D6Wj9kQXHM}(y~DIw%^JitSy%(B2os6?byrcI%S
      TdUQ39j^E(yJ$`1`Cy)OEHud=F
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~O>k3H6#njgY14#P=pWS<&;kXUw32EStu1Jpq?nTQFHN)s#Mkt;eKmby@?MHK
      z<H8xY?%dRI;YyuxbhKk}$}l>P%7PIWDx+-tVWHz7E*R*>5k2?4kRL6$cscLgbG~!W
      z{l0T<&fh%qF@OhPxWO5G3)+(Qe84=Z8*_o7xG?fjODwhr(`jLv`gBGV*W7S1^puAO
      zr%fxTrLBRyWo3;rOr^t(YKFFQpjZ-y6$s61#+-=hrX>uKW2iGlPS-Liku&wIk&K2J
      z*bqZ)C~KIOW>_gLlNVLT-oE+m)k8f?3{_fgQOr=#6oYp*o6egfC+$S;6FDkgx@t_3
      z5ot@lR$KGB+1|}?SFF60;_><@q+d65>mWmG$8BPKDF#<4J0m=xL@Mgh;Dv$~6^&?R
      zxVI8lNkg9mZ;9!K7|t(Fi`;}p>@qaOvS~WBMn|Xb!lFwS%h0)T8D&hDm#-2_mT*|5
      z1MjLVrkwML<e%!P!7hfaC9PAsEqPe8G!NRb*Nr_4^^&eYhO`O{WV0Ee87l5W2k}1`
      zj3purjdqn45q%QwSJ5fsTodETh?fYvU&THI=*Y8rPK@TVCq&LV<<!g2>y+!HNmx1R
      z$G)<}Bhw2c<OVCgl$V;h$BhT+C>tuP;vqaty)Y-NI7ydb*w*2zVAg41+u64XkD%9$
      zM@irEY-J%T9s_lYTQ`GF11cT9DcKMQRH&$}!Q-TJiPVHt#e*P1ZVWK&cCu=P0n;<O
      zbt>?$Xcb`)u~otGcqGiQr%>!2F?QjHR6Hqb^XTTNGXt`&Ar)ItD@%x}h|A3G(eX$k
      z5edt~j;I)w7_V+73ezG%<0|SL(1ePl1l1%Wu}Ekl5|)HNrQ&IcQgw5%IC>H{rDC&#
      zJF4QCz1iSMC`p^qf$S!vIjLa(znw{ui;hw)6_I5k(AM=NXo<LSYE6c{MP+YCmW-qJ
      z6qs{kmZs#+a>!^E^U#UYcw{(vJUS7HGqnGYBK9UkX(F4?rNy8wOWRzW)qQeLqAqIC
      zbrs5JbXU=^H<r#)jKof2RH3H|)o6tqHT3SG>zl(%4|SXUPK4W*RJJV%2h`Qc>xsS<
      zdK%G0$gT9&OE^w;lfQEn&Hm1haQ6rF$+3-oWm53>P{rTDcKTKcM4{M$d&rV-XmirA
      z>u}kL*ZmDUSFn2pzSHRPe~9MO=#F=-VL!t%w$noYYv}a5R?+WoIJkl*7=^us7U@_<
      zgI{qRj6CEZ+~6%-w1A7+xWgq}w1ATi!X0*S!?$o_1>Bg8OO$Y91)OvcE>WyE<rF$u
      z08ZM#BPHNu0Vo{=JVL+{W9MiVz}KMgGw_gA`B^maPq2f3igx}PeEf5C@h{L#c0WIl
      z1N=)2@C%6WuMj00<KH03FXAZw4jTU+GyD?f$r}6z<oQo{f&Yvb`DMIB_GSJnUg5vt
      zRelA_{CB+0ui_1|Z}Mw+mtV&UzkyZ0jy1Ap`JXt)|H1|SH@>D0xTr8(BKxCKjbD@+
      zTv0suL-FDo*&9l&t#+HEXhCgY9nau6>D`3OcorJ<2E#PcP6yCcPJg}B6|NP`yieBY
      eplZ3MG?#UctB{Xl!H#+k8M5;KfDw0#aQy=&b~I-I
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_i3w%`7ng4&2NhX<G0wfTEgoivrG6_T;QXmS&02&~G@=%akCdmy9OlHz~AW=j`
      zv}&!jc54@Fch`MkDR%3w1cBA!ZWp_DUtR4!TT9!0wA<D0ZoA!WZMFaJ+&g#fOeW~s
      z<@dXp$vx-%zyJ50?{!Xi`K_}r09YU&3n3twxG#DjdaylxYb>#+eO<Sm$aZDyfe?a%
      z%lt#DdeWIxv^R52Hj_yvLZ}c-bH<~+y>>bs>xso<nW6So?r(8Bgi66AKZc^OiQ5Bq
      zA|n`=wo|cae7l`W$C8O{U8@DMPB5l3nMh}%iOlwBJZqPK_jBKz|5{>rgP>aF#O+ix
      zlS~nJgCBUkJ+vj0O76Ei1mReEbt<}N5A`A9PC><0u|zDhLQvM+vRx4DO!nDf2<k1=
      zVv=BPv%zYQM`;1VaA8LQdRK2U(V<JnZipr9joE=7JGC|16SoDm8<M@$Axcg7yZbVj
      z*&9n2Q}j$riW41)Ijej4!5Aees9!fT>a8hYY1GNs2Wd@bO~EJ`6v|oEo1vwtNf>3A
      zt=iY=w<Zg7F;h^LwlmI@5L&$5bsS^0-5<@y-OcZ&0pnpbW44;H&B8p)7gTb&84)xV
      z%5_}Ej2YpAD=aKf(+72DDzS*)Hbw{RYFvr;g|LL`_$}a&val4(C}xlCxQ3vq#KyJw
      z_Ht9tKD#&55duv<P67SqQR-J)Sb^z+5UH#DO1xiCqaN(~8T~4RYl?!zb2f!oZD9@8
      za+NWjw~)b8XajE%El`Q;=+4~<dmx#J^%@y;{PB5)U5Sjn$4-UOg$)+Ev5{)W+=wu4
      z+@+#7Teu!K5J?U1g3*x8T`FNKRd(#wnH(61Ci*Bw7j3t2qpHm4b2r-^XPiWhe+VWN
      z_@9G969yABk)YhfAsG#LGV6Rsce!(ZsMnFqNGq{XWXbTPB4xOuio|*?^kKZf>QDA&
      z)0?Bz*Y4ASehYiBTTr(*nTp+(Ok|?*Rq@!Kgk}*Pk6GBK<MsLRtqh6H$#hKJorJ0C
      zwl2Yp!W|imNBi4z`EFa68x{!*`;nygmzeDMv6(6eWMhJ<1(qsCq>ZwJebJ1)jcR6a
      zAcSm@D{brQjwYhqY74jGAgR*1mFm($>Fc;hgUJLH?r{7&mpP0?Z;;GFxJ@v{A3Q~*
      z)CUf!j&YjWNb8J8(`n7V6Po?O<0isN+{KidHxsutmR^+_u=|W7?o_;^7VgD;PH4Ir
      zV2X>CBkE59)wmxIhVVd9aqvyCa5s(+Pkq!86>Q$wvRxNGY~dq#NWIV*2y@PwgeKoU
      zb)`owJfg!P+j+;pq>{df7ECUpmXA#JrcYU@!PrXFsA7*>_%xniHtLV1?9Hj<pq<JL
      zb?#-IU>qzf;nco3aFfr-H|qCQ`|Tl?Qx+^*F&U>Vr!w>R$M$4BIWarEHkBN3qEA(O
      z(!#G}W(dFKriz?tO<~aqzhmKdah!pWviHQ&89PPIdXmvppMxP-?lO+vnrXKW(3@DS
      zHAFV(?1Y^vta^F7m{6VBo3iQ3&Wb`?<kovO$x(AAyFT0AV@DI|_R>q~xSuQX2d`kx
      zUJ%9!JgxQW^CR-AH;eI0!wja9+KhB3vuS&cswmhwLhJl!$IS%+tZwf1Cxy1qfh{Zw
      z#$0a5QeX(bFPQC*Hpi?wU3-wcpfH}ra0sX9ekRT5w;(^q!f8C`M5PzfnmgU7)Fs~g
      z4h1}G;hfe6%^F>+_097ZUceXW{(N)eUYp5}J<mEFdC|fj>0FI@#%QcR#=c7jzGUG~
      zbRfuqoAkv?7QUQ&u|r?HY~d^VVhm?=#$&zvJCoT&Mo0eK!e3~h*2L1AlY`m8t*O`^
      zQ@5VMU+H#zwb1%`_Fe0`_;2SgXMK&(S1i1WuhFWxjUQooK}%sW9c_z@0|o2@%%4us
      zmf9mNgM-n`Ui#ta<Y|9aTutkOnIjx*gdedCG7U5pOdORYn^0F(#;5DyH;wS{+}JPe
      z-`^_g1M|FcBEtBNdiFoL(c7N4nt#Swo%X!`cu{|R&%(c{ONHrDoaS`o-@(6IcpY!#
      zU+<05g7o0dFfQUh)T91W;Mca$qdG_5k^<w763yyQKeX^8{5P8opFidF5X>6QlX6o`
      z6LAs$W8r@_E_f8t(@d7tQnmi6g*Q=0?_jRimyBFvPr7fh$9aHkTMD?3+yJJ6XK<Fa
      zOT@xBjHen>W=T-PqCpE+VK!o0l~Ot)6_$i_(xj1-4#wDg>6|J{!li-C8OxbuSu(~1
      z;Rv7`m@}hkoplj(0g-W*j92@bimJq@=;jnNwu4k>$pmBm91@4~7$WtSOw#djzVWR?
      zgQiiG$(CFuQ<&o7ZavewB$!jeekO2oWlKLhLNb*n!FNdIxfNlVE|-U720dcriV@hB
      z%#>M9=FI`{bU4oqT65|&Jy=JJ<G=0MOf24B0Mk(|jWWlQCN=Yffr2FGY$zMjI9ob5
      zE0uy^nu#e)t0ip;Q&$LMwp_>OThcyKjJw@BVSyzJb;85~fZR5PWU=7#k!Eo>J7<Av
      zStLs=d7tiPjRNHzL5G%EvRsEOcgSqAtGbs!olea7>D893kd<t#m{2xHQ>O42RZbop
      zczREDXr!#N<QnN@{0-<)HWz=nw#C<p(l6Gq2K&`nXG)!_6PDF-ttHn9J9a&UImEOx
      zb`Rbr8Rl~o58hm{-jWT{&0d96JyqPcd3I56x`lTUal3F9ePNSaACk>X4Srsw=2~)t
      zCY+jHhGEKs(F|moSTd~`bgkta`idAk?emswkJ}Z|ZyTFkH_cf~Es<-Qm~o<gefq|0
      ze{vhni-OUz=ZLwQMj2u^Te3?&zzRUjk^$pn%@X0Fy<lbBO#|!zN~D02Bw604q<Abp
      zP?$7xIw+|gOL~=5g)@)7!+k6XMq{-V8!Ml_M=Bi>URXs6YuKgcGmE;$X6)oBdbc9E
      z?a3qfW|>}R)+ko-&tsJ5?cp0>`f%0uy`;iTqbuy2$f)8Gd-iCm`e!n-=%LX8=Qzq^
      zj-)IZ#9`(F63~O4UOmQb)>-Ewti=l<y{9O3FX>J-iQs@Gw+av5<8zaJNON8L<c5mx
      zH*+{4;hDR|ABx_gWOkmQ_bx0$cv@@W9hMxHJ5_dHpOeb+n>eRbtQ1Z%dsx<+A^X;X
      zo%AG?l1>jVPbRh|2Saj{<)VPKUfrY;(fC^0+YZZpa(_rZTr_Em-V<+Qf#T(gownow
      zd60gnTalo(c{RJK-xM=J$H)R_XcncIg40bdN3(U>lFX)h?X@wzWv%g4ny-Xe7P=Bl
      z<wlTAud6FzW?as8t_%T`BgD_kPz4$t)x7!+z~aMWzWL6UiJ#3J<9#T9PT+4>a)t0S
      z6cIU%iO-mc4g4AALf|G;U<W4io8?R+{1pDC5RERxN+aArw3dMABZO@r>J4Pbh2R2A
      z#WaE_*z^%#t)=)R2$mcLY=$v}g3WZmq>;=j$o5d=G-gFeZcgMJns=N=WEibfco^-i
      z7qGjvcHtQ;4&XeNceh<YWu$EwSGCrzbYHI8I8R^B8%Aeq?X~X9uI0hW!3(e=lY_%p
      zKa5SSwOeu^%gZO1UqDr4a``Z}<t@67%z%RkVu)LG8_j<^O>u}OIE)DH#C+U^ML2?$
      zxCfm$itBJ6w&BCr$;+T#JcvQw2W9aPS3PVju)@*JGv^`h)(&bO;brMg+9E)tt8g<n
      zzl=Cd*o6;J_8=YO7LJx1vrlr(zMFH($gbX4%4eij+M+$LLoE@2WBmCzaX*cTc*1a*
      z;jH$!)Wg{gBAQJO7-=7LrQP64vm$1bBaO6QUPg_<dWzb8mRwKx@GTGD^6)L{wVS#I
      z^`70u?|1PVBCTzw5sj3cLQiB|_!R8Oxaw2bo0nBjJAmi=3Or9)FEBv9NR;zFnGK%I
      z22W;#rxR}%U70J$K_jL@{cIpF!HJ`nDd#H&)d_+M54D0j@*!dfQeIFlCz1xG6^T5D
      z^mz;o<Mv|2SIGBOgXlzN&NhNO=ub{?&oj6{S?!%)AY1?%*cAr)HQ!Rr8BS31GSXeT
      z*j*ZCsN8b~OpYgu5WeR_2zv;;vUCwTU4v9B!jv=kXn?1;90|uNKV+8qk<TjCo>i*x
      zG46$0g_oQzVBW%0PUGXnSZ~q7Z~L(P7XE~b^(*+Ki`8zhf%3?+c&x}aQt8vI+|!JI
      z{BRd*7-_K7>EiB4>nS`Isr}Wq)?pmWvoet)6HzYp2=gpgD-8zLiIh4|(>i>Hk;GcX
      zH2rJ*rk>2(Pgm64{7t=TfqK<%L|(*iK90G}S<Ghn{KUkhOfFzdq*cF^pT=+JiOfVL
      z^YttenS*gMmwyszMw7IlO(K}b&ntLH(gg1~<^qq{0ymum@e~8maj2`Qx6-LPhZ8%P
      zDoz%gZkZ3N%7dzMp#;B&FSt-oVGMN!7M{a1J7~H;;B$u0AM!cR=a2bZ;Pa<^{;X}@
      zY5e8#ph>oWomVYF|ABP#udf@a+9ou}W;Dw6n8Cxq9N9uOyU{9J`4`}AhSy?8qQ`3?
      z{sw<bK4gKv!`~a#7UCc9k5sdj<>~AA2JJ6+4d3)wR~w8a=WtP3f1A%g^Z6G(|H|jP
      ze7>)2f8etHFRc$hK86qnev)V2#0mh3!jc|LkY2Lx!!-UrOKko{axWRjaHZ_?v0mb_
      zUV@+D=Z5tXkM$Cl^(^L)uj4Jln%9Lc>+{r1w`~_mynTXS`0qx_|1qDR^80${cg*JJ
      z0zNC4F<D1ihb3?vE#5EX$I%!Gx+9gxF*fq7uohJ6#Ol0mOSrR;ESlvY9c%~-<u>Ya
      z2+QRTtdzt2E8|_bR_?|IIf6}c6x-!q+${I|JZG1u>n`g04Qe5JS><Z;fUC_iimh?A
      zSxkwK@OhN%+xRr{nXSCW9%q>Hv-UWu^>gBJl;x>9vGEBy%wu$zPm%I5QhuB<@dPP<
      z2215hAFX8`t!1S37U=}_^2w!jn6$JwHqj~#b<#L2)4I!697k>2)P?7zvGt714&Z2+
      zOl^DN$+zFgb1)@HPM}&&(utp@E1V>k&l|ZB2ho$;<eH-zQ)DjVI6zZ3Fot*2VS{?d
      z^{%-@F2UtAxtt-Fv*dDyT+Y1*F1$;7*IedZg3Fi4<pR09L@pP|<;(AZ3$N_nHJ2+c
      z!R4#u@(Q`UN-nRE%h%om7v2e$=CY{JUl!3{uDk@7*U04}xqORUE|SZ)N9Ce^TH0TD
      z0r{@EEWHGm?~}{x<nji&yiP7Zcn@57+4=v%<tOCwCb|5KT;3#?pZ}k^h;(=@$7dN~
      zTIttEhUKd6DaTlMpOyCqO*6xj!jiTZW%V(%x1E>OoU!&ea}LMLa^v;R_*fkumUU-@
      ze+bA2zNrBL3*~_^s0xflU0^(>1!~a}sK=r}16BkkV_jg1QNZaM)_aLyJ*%7cN9Ft<
      z8CzN1*e}X<xzRPD*WHvok5EyG4m24+r)kW0H~fQ~ySR;?S`q`1;*|@0D+4YSk()#h
      z9eS2r?RE#2n*o__cjnbKEnnbjR0mcV9H-yNwXJM+<rdKcg2?VmAx4W4uO;Gj?||6H
      zvg&YLs-_~>ntYZ%Fa5=uZt-ba<7v8=MY*J=i%MyF3weETR9^dxru#32I6~9CM2x)y
      zVq6AFYpVI>yd;V>&6LnIsMk&|iswp^)AFI>#YcRLJy(*nWZcEQu0u?xv9m9s{+tZ4
      zYn0nJXeB<x##ypDl7}_5Fz_%!fk!Yd@NrBGJc`Q#pY-WG-QA6GY^v{K6T!V?8*!vq
      x=Q_D3@|@iJ63T-o%Zg4eWpjMAbGsXmkEqYfL-J96*7DmBJ@H}IU#G*U{RI#qPwW5y
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#Jx>Bb6r6>V)AJO>4`M8AEWpC^Vu>*^L=p_BiH3gRUS!R&OKunNZ&{gG_yhb=
      z#&=+$1<lURyxI5O?AQ0lCx93=9|eKK7dex!k)1339NpeeoHF`BYC4I1cmhXxIg)c1
      z(Tuc<dS+_rI*}7cnLz1MY2~g2iuFccz-yU=0u-?kVhtsMa#v}(n~n#RJ;^~z0@bb=
      z%Cs*tmGfWGb0cMWR(IttO@ZLiOtT@iRo<rZXVbI%l|b0hnzB|ZttD<&zR|<fSWeX=
      zH!_KjU4hz)0U`Erz$2`and_NErUJ+H|Lb%#N7gcJXL3x<Mjz+k-29VZM4p$?=i3G2
      tLOFfM`Wp)c1bhaJD8=x&xXC<Rni#j36|uc=mQh)Fmo0!Qc9?sNdq1wqWvKuF
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-}+b6r94!>beTz2QeOui3jlDDjqQ=hDd^8)kMR+u#MC#Eor;p-|}SQ!5`p{
      zGQI^5df?LOyf>ZqreEJ5p8(EL^HE^ff8kU98rhjt&(ZDu#7V6lxDv-rA0ER|-j4Xp
      zMPe$Hi(;Kw5$jxao$!ehhM{yRm2_7O#d@R9;I(xk0u-?pVg)6Ja!)F8myHL)Jn=y)
      z7^*!z<Y}K9ne*SG=SI>p9Q2lM)M5x8b!LX5BXgU|pM6jBR}5iSDPh_vw^oo@`9=*>
      zZ7EwU+(;)rwi#+m287tf9*wY$8yD+@rwoVn|Lb%WMOHlR7(N!QMjvOO-1MIyM4p$>
      yr`rYLymIo6)i){>5YQPAqSS;(&2{48LPWShtccCIvW&`HyRZPN*dp!`?)(7QHE1XR
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95Iy6%b>p}+EtJv=mzL05L<5f~6;c&IN);t3w0YqHZNsW;<*qBQ!{r0`
      z1YY<GKtf1;-~;%midkbd4pI;=9?#4<GiPS@*Twly01vU|!6Do~5pTu&s(GjMadoeK
      zmZ(T~gqG#qUQZgMjzXD>dT<GqAxb?uJ&Ux|NuF^TB$SMdl?b~sHeC9!@q|EogsFO@
      zO(JyC6=7eF7e1aGu75uNM3_k4C{unwSZEIQ8Az)!Xh&(4JSHq}j6`jA32r@lEel{3
      z0elpFjA1rFfUAV1znGVjYnC|OR9d$Br$;hA5WEAzY%}Wd7=njkKMT56ETK9|M1Chj
      z1I!%DWU%4qk?pXyv6<Bo+3r=Sk`L8kT&;j5-1M+aSpBo0f1v~1!fisa-8pEqTdz91
      zt*3<Y|Fj|aFQR_jlh2eDSIWJDZQGX+G_;m+Jru@B<DpELA8|3l++c`YA*}Fe#`rZl
      zSj0Fc*z;0vvQ)D7O8;HH*A!>2u=j|O4%^~Z<vXUgDnBsuH3ePcub-y&xljvp><3I@
      wD6V6kE#U?hvNGFjZO;9M#V>3fSiWr!yv%XkjO*Y|idw-cTR&yr#XY#c0SkE7wEzGB
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OHUI~6#h<W89I!Bg#w}=FQqRS->)Ku@Q5|FkN~q_V{YjU3>l_%W(vCYHyCy0
      zBkEqGn7DB1!XITkGgE{bh>Lr3@44rE=bZ05_t)?5KLA|DJp~a$Zd>e%C%U_5+MD`=
      zrJ83}?PX!haYI;jx$IPH((#_&7k0&xj)Ewm%a714!Tw9-ZMoqoXeEpU*0L0~s~<$o
      zZLyOqnyx2p=@42grm(7;gk-TP>wI9&v%|D$o8AneKXt4}+8{*dsuiiC1*bH`(LrcQ
      zrHweaE)5FW2%SaKmZkbmSvsqtY)L|*SltkoAso}cH;hql%XA4-&58a)0M|$rLPxE^
      zOV}Y{EUZ^QuK$HyX?yv!q2dhADi|OPoyb+-tKl35xsOfh9WYrEJKRT4DjifClE30P
      ztXbZNJ+EOHBZPJiDapM+x_{k6t@3RcBgA%naaCNvgo2Arl7^@nQb@BN@^M{Q%u=$^
      z-x1aG>Ge3Wm{gD>^fl>uNTP-*=!EXIQlV5>EzA}R>kIRbjM?Jaf-g(J!%<9?=klt8
      zD;&~<7*2?WYq(BOUFjL7YX;gzQ|tazP>nDg;+?Dk505WgbLIw(JV#6lgRfNU&W2nx
      z{lV!v@*$@Df(Tl{=2@PzgzHKsrsueC!eTHSuNW`*Q^|XTR~#x^+WEA|ci*CBzCp`m
      zzoPR~;B%Vy4vqyq=fCy>ae9da+j>K9bfbrF9ET*Ma^L*Y*T8(nK2d&~$nK;6A#X#a
      zTw-(|<FC*=`4frB&&Yg0d*%x|TlR73FyR1NIpJ%>=nYhQi#~dXA$re~@i9oA31R;x
      npTG^=<fJi-;udamS`~x11Dy+xAkQU4FpaxGnSO~`%s~AEq<I$7
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))T`vPs5Qg8`uC8tuZPoWTC1}!eDHRC~326|d_p44gvfY*L`ubN$MB>5^@T0_>
      z?V?4*&Cbru`<$6Gb6($`UjQs)%78|gIk&Iuo1%X$-P7XEzU>Mpw_d9W-<QXZXa)@E
      zgnXN@?A0$kSGYl|_%ld|2WQgHEfKPnHZCks;{2*~Ww1sVnEy?%P$lSP??fa(NLuJX
      z+(Zmr77TO~M!rFxg-Z(TsYqAsUe=FA<H+Vq5Hc07W;<28A(bBmb=4wa_Lustm-^^9
      zeJX;l!5nz%+`0LMh_<7VNk;~^#dcjOfqo1c7$8hHhw+!%!VrcD9sBFMn-xOtKLrTp
      zp?BG+i7lzxN;cP4P{jz=w(E*U*|B|J_y#6;96wh=NPRWk#4*LQkMUEXR7x#?|1{{l
      zfKHAl*jr&=W1C#eKf+whKf$^WMLqmA!_+2&8%VKlF~m}&kzq^dMK(I7z*gn-2lU;s
      c)u8xz7~5-M^@!Cl5~@Zq#?}n!aZEyg2OJx+umAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{kTXWk~5Xb+=b}UCxE=`-%Bxz}(P+OrjP%fn|Ev?f82loOYnMvMGl9Qm0BDu0m
      z+8Ku1J6`}k0I%%~I1B}bHwHcw!>)8J%f@-oZO@+H{&&x={`vRUKLEUeH3J!e>4)-j
      z`MA<LbiDn_>I3O1*Fa8Sw$EPk51PKGywE^i;B34mcXm{(<!n2y6F#Zj(qFC;$X|Cn
      zC%hq$EtNL}ay5Tf85k2d$vZ3ZFsv-Q{$WEt@!O#Z6XO;P6if(A^4pZaLaCAX#(sCD
      zC-+rQ-D2cq!|~L;_QAFaK9$=XbGqU0NOwa94u5N7F8s`C37m>p{aIE?S1DpmIjtqX
      zO`C4F_x4nvb_K+i!2GcaSU}#5#0wOU(`h1$aZc%sg|jFMjJ8zRO<CZah4Yw+t@oSq
      zQCqR^%N8!M^#u9$i{jN+EnGxFpwMpa%22J>1+0A)uGed>Y_;l3lxe9P>v1KW=UN!h
      zu~rLM6fmN*<t-z`=I5C>!ERZauH36=r)qhF<yS1chSvqo5AjS|V!ck@0-3fWFxOY;
      zJ|e}9r1H_m8ixiRr8M8Ms6F4MKKnl{9o4{lRQ`0IrURO&;(Y_x1!mGN>vi2n7OsFg
      z^lE=<t4V<B5Ru6u<;>^t0oUgeRh=^H^?%LxLiIQlC?|;?H!9k-%2_X2xPxUn`mVF9
      z64FIoiSE+i$aOgeKBOK>=Npgog`T?DU}6QUJZc{aoE|7a)C19(jx}W<58^K3ez<3$
      zfwF+P=C^|#we0ZVjm5;v9F_X9?s+PR`ccv3O$`R7rl;QmT_f}p;u_N2(|we_s*xQS
      zx1Yn@Jc5-w!o)LL$lyfeoT2+BENo$#-YnWi&Nzuv^kmSC2HhbL`zE0IA)q}1>_?#4
      z*ja-ZIg8VTVq{SxZ)&7rFAh`n2zdl4n32E?yns0ko6@j{6fjHriuMua?Zplj>|6&g
      z+6x`LWOwjNFXuVp0$(79FR4UdVFF(h`5Th=Z4~WX%t@jZbu?l}Nn|Ku31uDkQltaO
      zPTNlj8<#atM&P?tNwXR!xViP#8|2L;&D)DdxZD$HM%M4?G=E5?pHBqkX_DWJ!d}5!
      zniYQo1^Xww{U@#tYWXpxrI2W$AD`ZTjbgH9%eH^PH3D>Sb5PM!jNw^|V<nthxUD&>
      zR95B`Nk{E3Oj6seY|@d`e@2Z>JzWz~nV(ZX{6?JLQ{1BF=6EnPw?a?mju7i^4-yyp
      a@6_fIy*Y#X<etF;d`wRsiWRy(LGC{zjfvF&
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~b16g_ts7#RjBpr8dsuo9pNg%}s6#)PzBAdNP(R*ehuXkYM|aVD8J1zhS*
      z7Vh{TXktuQ@B{o&hWo||I2sx^bLYN$&b{Y;{QPxt3SbrU4lKg`cVbT*l=Qv|c1v4z
      zq4j<kbvBgrJB77&TWYO#e3=b6unENsu_+JYe@N$#gq)U<5`IfYT7|*$%_@Pm2*Z^y
      z(6I>Omhii>|M2z4FGrtWeIg9RZ<Q{r5T<LHIvIgw#ywJjiXRhZ7J2~}TLiljcH|&f
      ziw74&F8VO$!NWLV>M!!S@UkI})Knm!cHi&Fs3~|Dgt1!K=4J%9#D4l{8_9$RJ#<_;
      zQSM}PSH>3u-wsWk`Gv(an@Crod=-BvWpU*}OyQP;X~Nv^Vf8|LxQ!W}e0{Cac=2qz
      z`lh-5vPmfXPa%Ta2)j{RZYU#fJbM<)rZ~ad3<4Qdd_E<q9TW)p%U4LaanVdR9cFn~
      zeSE4G^619^drsnA$>q!flYg5RILwi&>^)?p#dc_^_#Gol#UB{`nt-nH*G)oCI8hbX
      z+4q>lP)uNwEz7{oG|e(w6SKb|f6Uf`;hXY6{SU64axL6RP_vk0>n7~GxCi?TeQD#0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8OLNm!6#j1PSc$Fh$O94*0<@$_9EuAR`Us^2CuyA;5*os@Ko$9th}e=V$pjYd
      zzWo86VbyhKSfo=RrOcFNAG`J!bUM=?(M_l4T*<bSn3*mjOS<QN=R4o|&Q*T<_s5?A
      z9D}c+O<><$<DPLp=dD}zN^Wk!@Vs@$EzMf8T+)yf*b`g7B=7rbO`t=Xt4@B^a0NtO
      zAa&ZZE&q%_Vr=}fKr-)?WEuh)9U63jV`IfAl21UnX~(Qpr0q|trCiw{3X8r=OePBq
      zva@K}@<Oe$EZs}Sa#;#=7ah|mUp8EepTn0)f7S8?hGGfgrA!L+1q5PQ6jP?c$V@M`
      zN>z+09-8TtYZaSvhyp3n0*J!WNFdWm74Os0juZ)03d<81j8Ti%P7<xVmM`a*?@E)1
      z90=hpCl|b$uld!QPr68>GRch7Gxtqd^)1KtG#nD>QOqg6FyC0AhInd6U6)*IJOO=0
      z`b&j;nL1yX7U&%t->yUlMyVSyb1ab(8QMD2Z~--*e30>??~-GAr7?R&psQ|~g10EC
      zRN8T!L^hr3gESfPgofkPr>ISq3g->mSdp%dH*r#62W2ce&f1h+nw7Fl%7%374vs8N
      zrtucu(eSpw-Y8}yM8~@zYxGuK=blxPGp_5ngj-rR%r)8-cEVWqb9tvyb!_%3*OM@7
      zL|-E^JP_28X<2opY520lo<FN&3g-fS>K+%^zlCbt1{q9aR>O?IK$L7ONXG~GP@t1V
      zkoJndsw6D%);S&T;UhL@q0pj%8qN#!E1#$-oANyAvV&B~X%sQfbGoo)OacQ^$r?Tu
      z7}-YboKfO|R6uo45+^mPquV{-DxBm`Id|@mYv`sNR>j7uyN#!C{6?O2z0O6Br11%E
      zX}Bq{t65NRZ0NX+tE9WH4yGyBH6GAY)o_hU5YT~T0V=d4Fx=dHp;j(0IF{{8H!?uI
      zL}JP`rRP~xP~M?s?)7-1jYha=l`a24Zd>Ri9|o&BEZh~?T@Q{R)fK8Qy$nYK8T~|5
      z{P^K^xS2Y>kj5Hp?kmk+c&yatBpw(XD~nFeHRY_u2W?M0;3#LOv!Y<z(p6`Lq|>nf
      zWr=Z!N>9*NMxc!kL%Q2d_Zm9r+DT8Rkfb}HBP&E=6Y1~hz71V;P17%Mi(+qM2i@sG
      z9Cl(CJuwC&F~(WK;8?<#Xoay#v6jNv6U2oWv;*DfArwaI-Hs*(TQG7d)_VzBANGW3
      zdqcE2;>Ptex1knjpA*^_3hiJJw~ZUKWZX8zl2zcEZxU{je!H?0NA_=`Kbv@hfu?vn
      z6xf#peuaelN+rk!8yX3^Fo+?7BM>D6OW37SB`Dc`4Ab=hz2gQQR7p?L6Gw?=qLc#o
      zI-&=CA5@39N3Y;jx(Xb|2wj=?>*^UubicNt(74qB$TtckXmcV25g5aGxHT7UZO=Z&
      zz@sgjzm05eZ*0zDBHVn2h%@z6b}%MX;Ii+@n~x(kq#8A(a757)#QbQ8buuK9VImLF
      zo_v(pO6Ns{PNqR87qLCJlUn-&-pD@1sivR-p<k$TzeX@R8W^YlH^%RT@kdJxIy*^>
      zGn5~yDa+&*7H62Kyr1C9Gtd|O843w(6rZDbZDJD_UMR*rG$<D-n)?>G>`!|07y0II
      zl`9yr;gD}1;V<Hn5{y1el&9{fi;?_u^qz-A=hTBkL0)<evIOq<N1+EpqBq*3V@Zu1
      z9}kzqA-RI9l#k7JT;=8Adx~pMabt_)M5={4NqpKcYd+lH$@@31bQ>G=f(N1<W>f;v
      zhjy`-{?!|Z0CqN7CUGYu#HRrx^pkT|e#Xx1bF5v<Zldx8EBvZSP)REeLlYzD5u*{@
      W{t&kfRVC49aOs!7ifi=eA^9I((MT=;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$+e*Vg5Ivhj)5g`LRjamMp%1l!wJ#zlz7z$eRZ;OhO&6OQHzgPKw*)WXgCF2W
      ziL-4%5q(&8=ggUNW@bM=-`)Y#v1USJnD4oF?n5oU_vLl%_$=(F{g#kvxo*N>a8$My
      zxRg6>_k@?27-z_TqvxrVZaWYR<4M<#%Uh(_{9AIDID5YIlYNF#<v-H;6@$?TJ0c5)
      zNe&Yk3p#9$EF1>Cq6l`=m*OP7ZHwq~=$>zeo*P`bk+0$rXsDJLivM_(>(r7SrP9J2
      z7EH`D6#j0Vqo~Y{xEtOxSQlX$dE(GlW82?5+f>C2{76a>H3Bz|1-aV?(hI_v*4q+E
      zH|%h%4z&8NcY`e&Ql~Qp<~V9r`WcN*78aos^xC0VAy#$c8NB+6smB2)r?5eWsx^*0
      z#hhvsI*l2+8D`;(RJQ3>xlHv5`~`(y8X9?PxgQ#tk%o>ERcTnn(m;8r0%9&xY|!3T
      Fz5r>KcNqWx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$$xg#C5PePpfi#d1%3k&yN|7kriS2?w0+mI8df=883ygwOWhwj?5{txv58$H^
      z<5C1daInYYnfLtO`0f4W6~GdF6B@(tb<hm%%E_&em*xHAsF5`exXk=z69$8;s^u`C
      z+EMMA*HaUn4Bq$cNhW1b3pqn)dL<Hnkr*p~Q?4`QnnCC{MIu@Vc21}bAw{~yP$>Qf
      zJD;mE7~9bW?*@Zo!$g-l_1Wl#WkE;3jU4g}dQr7H6(RXyc2nc=*{3wG64isS8pJ~7
      z?Mp-HWf=YES$~=I>TxD5jA7hFfno4(Up6K%$zUZst$tZEiY?XFX_UovzAMy#obTx_
      zC?*DbPf8wdhe48XlH%;hdKe}25eGcIiY~B7E_GTR&|Fv923${>rvKAu<zQ2_hfbT6
      z>lB^R{3Cixg-5uhXL$Fm#sS)`7JyW0WeifTfYgp53{zwnLB373MxCl=mmY}e0qzq<
      jfAMH5$Z4xTc<eThjwwQFn8pl6i+B_h;9-__LrwAnR4sup
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95It)<HFaH*lv1GO))K0;5e>W`p&%p_Kx&n?5j1(NwqX?(xx10q=JG8_
      zJn#j8gg`v-io_rAGl*GZ#Q|Exi^nr_&diya{r2PY7XUY~>ce4ZJmt^$i>7%l)v&qM
      z)uVK@EmT^&I~WLK<Uu5gpbzg)LR%k>v=S<rB#eU$6(eHFqrQlZ)T+06kAZD5%(k^M
      z30Fy<N2w?cy-(k7ey!FSrjjSp)UGp}?HnzvMVQ-C$>a{hQvEp4TA#sd>&Idmq#;Cr
      znE)>4LWDT=H*qYuWr^jERAMJRJP`37rv)&~b@YIS;4}*PdC;>`8Ll0pVR9kkwUYYk
      zP$b22A8K2FwZ4{D;rZHSB$JoT-*K&JEa8HW^9(D$mh&%kh>N(y5OjCDz3%?@{hb~|
      z?SHxu=aEk1fp{RTwsLX*4cnC=+*C@$?T8yAjE@?_!qK;4m@g(M%3zs};?f&*u!s_-
      z$n!JrM5SUcmHm5ksaeXLB<~g>9kMg)jSncVH$I~JE(6WeH?S%9HA?O)oF+dc5<#(m
      uGi2!@;apy3gRISY@3HuntOLup?cu(e;CeaN!Q~9Kj1{s$#=e59@O}be+0{Y-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT}$Io5IvLB#>T9zTI<)U^#josjl%k*2vS^DscS*$ds;7grQVbzt@@9A6CXtI
      z!5^?cN}SskL`fHX$elZrb7s!W+<$K`uK>2NXu%*9ue`Q*>xMT{UARXTzu9UY3)NcQ
      zuSe2XrAtp;h_VbLp+sOILC9!=+u*o+Qo9oM$U>5^(23TBr$V<9_)QT+cc00GWOOOR
      z<xRq5Ilkx)V|JyI(H>!DwI67$N=TIabCCk!hXV_PHcX@)q>v$)s~V6lOC|ocu4^JV
      z^J)!27%lsCuTk{^sr_Csp(PR4`_zh^0;?Querl1h)K%-o4d9?HRJ5Z-nW7yL@||M;
      zffD}oZT?$A*Qz#;XhsjlCfKKbE2xX#QcolOvFZ)I41#m0c*UiL7ltCVkSFBgw?xRs
      zJr3l#mdW1$D3j4!;a6tD(8W1A#NIFV47PTm_yni$jNwQ242<xZWDLxEjPl*lcV>+t
      z%a$;XTra~m`#J-CB|dbBx$e&%QBx-{$#TFVrg|w>7-MpZWTE(s>92XZ0(1!jKRf3v
      N=Gf{M2=iEg@eYD}$LRn7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut!A`<J5Pj1Y3Kgv)qDM6zz(k4hi1C6ksX=3ca9?nPYidijt$Ngh|Dz`p4}O3j
      zWt>)0#dw*wvor6_y!rTidk3(GH5&$D{aW0L`&M+Pf^qBQJe(wxQyC;%Jvk9t#G$rf
      z5$ZEtd5us!P=SgM31*`?AXuI7QaUhEuAqP-!R@L*o+UR!sV~IPmxO9J90`9Qv`X{o
      zrxjnRh_Kn6ne)#!Z9-)%<G$DNMHG2Qgj%DSv0A=h2fbLck#-47T*>+Q!hMh6^uk1s
      z<grS(aeplDrn6bz3j(P#c^TQL|23bB63V$QHozy~vjPUc*g8j>vwcQlENs7`^pcew
      zjt;lMe1K&>Vvh65cN610XM_c~98-ZE##F$pE<Q6DOhu*+^XV7WoKg)`v#w>-7@dr~
      If>o5i0F(x8%K!iX
      
      literal 0
      HcmV?d00001
      
      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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
      HIoJOKY85vw
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%T~8B16g{)8EL~Q*AoBesu1Q-GOW#aNjIqH4Qq%;}_v!XZhpf9gvw(k#1R?Rk
      zAK;H7+$lx2nm)|V-aF^qd(PbXbNlNzfCgT<a0Hf5<+=P(Hy0{7sULjS>4_#|-b)=e
      zToeTYdtQ$vpML6|Qk1!v5ZKJK=$w+Q-s&@k+R9{<kQSK8`pSem+@YNZ=UX%xwW|`9
      zy%kuijE7Y_0>xI^qY?z3`fxGnp@6cF5(0rj#RAH0mC(ntuU*o|vKy1YY&(r)+>u(@
      zc$h3&SputLyM+yw<(o`qbZ@CAur(?!Z+Op|Z&o`V7P0JNNnmlDT^}n}Ztz8EIvT0(
      zL@ak>MAH8~1iYj4Oh@!VS$8w}n|y71vh4kY@4gjFV~9<b_mU`14NvxvvVPk0@e-lH
      zT%_r*yT^frmFidp52z+~cmxGrPauN8PJ-W(!>a_3vs3){hGU!YYTG~I*KRO<Il#==
      z+~9=SPK;TOedgHgGtBWW@Er5QD(`r=RVHg!@UOA(PYvfAT<80s#{4~QSc4f@#Tv5<
      XSZBV24Q%pm)!ANP&I|q)d0tz0dZ@TY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#h;U2!v_5Sg?S#Eu}OUAjLbTRzphLV7Qo2YEfH<Fol6I!<tNb@!jRC
      z&pvr;yH-~plvTr8y7W=k@(=iLTz+R}NG3?256PT4v-h{ZZ|{Bf`TO5r{{S$7%`gH2
      z$qn_M`XE`puN!O0nFY&Sv$S$~O0|a5#UfYwN=fr?hY=D;G&p6<t!>lL4BPKg+YF;s
      z;GFBAdXRcaw;v|!0hZKKMHA>MYnHB-mNcuZo5qdo6#+3La4cgQWm`3D$E@X_$*1{0
      zQwy5{t@gTJ9=<3rkZU01Q<0+8CEd{N%L1pO&COy<0-=n#s<lI)M}dN45d?8U!Ey8o
      z4DNHSsY^-6&YW&&bCs<X&018MFCyg3B88}w!*_2pB<TuFG-ct>U!#WJHO;Q4t6;0P
      zR?uvLcr@mrHB0TDZA!{HrC<Pq?Kq9IVVn^-*(_}ehHy@x!?bkPRkc|T)*{=E^SBVk
      z$dLtgqAG|YCJ?zkpU*DO&n>2N0_R_ZF1aQ!7RIQ+$l;B%r%u5*k^(_>byXm`SFA&G
      zl8P-$ITH$AlPueort^#0jO5tL6HqBJyDx;pI<U#Q8w!*+WfP1XSsZDXYR5ZxH;hSv
      zp~J;WYXvD>5>OWM^Vjmzg~FYwbY5Wih^#ts*p&?=y+e25NS2NvHTKgzQ?V>|M7<Y1
      zloK9GvZQj3xMv|1#uPInMY-Eq!`9X`E5iP}qF@?VnRa4&5W#3H8$lY^<(bR!I7YMb
      zaP^m)N9}bh)DSeb9N`h3Rq#GOh+rNcg|WcVQfJ|kQ;>J!>)u$Aq!tz2kdfOM(jnD`
      zn>^k7#7g*E3YPH+GkRCIG#=G$&9Wb6)~TI!pY*dT*cK;i$|;b`bADw*E7}L_NVP5Z
      z+)>!$bMUfBUS?_4OO~v~Ea%!*W$S<RPD53&BGpCeR&M!b)dx*n*jaaLF0K{*3ueVC
      zYFBmH&fWfNU|i;teV8>2&B~P2a#`bO>#K9|8{;ff7UZu50S=%r+PH4#B@{rUt4q#W
      zuG<h|-8=cEi*J+s7T~iZp7;gb@x(4(`q^>l<A22Yq!R8nUgo<(Cz|3U`uXH_fI$!D
      zz6X<x@8XqQ{5iUx<JE6)Jh6k}D&jYvpwHV3eTxq6UX;6up9m9x3^jmO{%<l=iQKmM
      zZg6Or7{j&`y3e7K^g_2Fj@R)9gA2Tgw>%Q#&N~p=!P|A@R_+2{_ymM%0^Y-A&v(@G
      z4aE0*e(CcJ)I8brp68^KaiH@zq;E-)Rb+N?Z9mM{KA6rL%nUyCV7_7kf+RYY_zNw;
      zXYnd>vl1;)#atDIc+b*kV}L3?4n3oTo4+B}75I*|{hmNSut+~LuaB6=$GjaLan3(+
      z2%K?)cmx;@pW-u8=-@?ko2vlVcMj9``2pH?4%AjW3}*EJnBNb831H39xDK69IT8d1
      I$Oc0H0olPvg8%>k
      
      literal 0
      HcmV?d00001
      
      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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
      WG<Ch&$!m;v{Zx!heJ}8tEB_Ct4!}MD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-A)rx5dLOaSXmZnQBkU(Kq34jR4z@82^39A8c0g%g~pgeIjM&%=OlZ!{ydK_
      zpeDw|3m?E&@XiM@&RI8MtEus3XJ_X7X1<v@-+q4i3Sb9o0X#zOT)Yx*YWB6#{n|lW
      zoGG(6NK>P$yS<*YR-MMO7!KeQc7{kD)9=UfZ&oo*C|Q{(5qD)`mC+~7eF7a2rW;1v
      zROqxT;(;7*wCA5c{{HR<VIqC0Z1p~&(i-YkkXUEbL#0*vh_J9e8n)3T_ziO=C&4-*
      zgqR93hS>-at`QdhpcZx49e1Xsv^*SKoXVslcprq>mg(^<f+u1>5Bg3qFK48X5i8{}
      z%6*w$?z?SVkG1uUypqT-p<<Q3tqtSqlemqA0Cxz>zxVVnbc99RB}DDr{pQh&y^~Jo
      z=#WtTpFV`}*bI`Me4?DXa`91YyUtv;skKZRv9MO!09C@RQKuu!UCvP~g(bex7(Y-C
      z6^vtoy&&_hluGV!*}u<+o94___8u_OV>`9E^$9bZTc1(>kb$oAH_TGcxX@GFU_W9K
      vLotV&Y*`=X^D^6PUC#fA%6qmR9N)DEWP$7FTo3m$)Do82h8cSWtMGpT0}S8j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-;Wbj6#j01(C#q%vt?P3MO1X#=|UBCMY<}x#g$nXM3!zMZ<qF3M`vf6nW-ZB
      ztdAz@t3Im_Mic20OpE~y32!FGKfr&$zd+)-cc$$OTOtpgxpVJ1-}%mW&bhsN@8&N6
      zp221gDTcXs`TP88)&Ib9+ST=oyk)to-5_wC95M_C5~r8kcH0)=F~gKEJd4{~!t*WH
      zX_#ji*gC^_-F5tcJHZyWyCVDEm)(N){b%1W>{+%PD|ne9T`F%eWa@59XkeJop<$At
      zRN9cysx~Jkn}J7!YHFv?&TP6)?XvWp+^`&RzPo)zc$fGUTQJOQxJ}~1i4lEAo0;Gp
      z%V#*4K#AvAW7r=??Z;SY29!*#yd{~<N@jcIYEH)i6dA^R5rig`EN3Vtpd)97eMwM7
      zT;*(03X*JGR&`3jM);^?^S-b}GY~Bbd3k`HkV#<&;%d;xPMi*~6T1p~;h{8_YNRnC
      zg(&MVP*KGXR$Z?pybIiN6uC@^Af?SQ9mi3ns3g`|*R!s<PQdLI+iE-8!Xb{Ck|`M%
      z+fvM?@O_JFMr{*jP%f1teRy<e*;epjb(d*vjDkI@<2gLfFx@wfAuT*4P7W_HRO2;?
      zH_6dq;P|$NCA=sb<P^hvvUYJZY9$7pGHsZ3oBO^TlVX%%q8@qBXpF}OuwgRn?QoB8
      zhr=Liu%hD?EHmW0ofZ#7!_;sFYdO41eG%v1Fwb#^w}q$UHJoM0Dgq2A?;~1ww>z#w
      zMXB{Q4=;j_&EKvL4jX1I2O90fZJ<oTyFk)l*wAqf=P4GIU2;F1jFqrgs%V>T*K3M3
      zOAhdKT(sjd7n03%9N{V11kLg6=tAHz3ZAAbjV2vg?4fs#zEa3Tr!`G5J$2eyLWWjA
      z-e4@fgYh4g)f7E7vIbo8>tLEz(vR#gg95!JMlr%zBTH$k89Uf#RC?GyM43=5u2Gba
      zFous6(rjoQA<0Mw@d#l_%tI08Y4VVm#H%uj*C)j5(->Nxmt;7P!x7q}5!yPTNi`(e
      zp%GbrPH0~!v?HP2fLk9;;vOMYQ;Ox|yI596s`nM)e*FNJPvB_8^2uE+D{K_YZwc+Y
      z2e1s$k}RLvjk`EX%j<;O`(IqCYMA|Ggxe-nGo)(4s4UL!V8KZDP%@^p9u|iUFr!Rv
      zQHa~rLcfu)zpGG2=sFO(fPM-ERX|z%f|5K<;hv`d=CEO9DP<$h89(8~9ZVWOW9cnw
      zypz{)LT>#)XDP@A4qNXJiu@-b{iULYO*|JxWvF2}!aYWBiJP8zX$T?b2KYPXnvPsE
      z^3I7|tC4G#Xq>*^`Jb3`b`W=UFo36&s5D-NaRc>VVfOI)P`z*n|0U~tF&sU@N#PBZ
      R?FGC^Z+YJ=(eENM{{h!+wrv0a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTc@~6#mY#u(B*t@Jf}dg-}SSKAI9uDKROjkd#s%%}^#dW|>WPcD?)#|A-om
      zi4Xn&AAB@1KKeh5XVxWHv$4L+nKS46zH^(;KR<o~a0ja%9K!vl;+c3+GtZSisqJ>e
      zv5L0SB#HDxsnb>>Pb-anUmBy1LRl2{;1a3>B1O!zH$utCSc$MFW1}K{*xDh`E@846
      zX_E+@^hB7-(XB6Y3*X;8dPNvZo+wkfO;~OZWGN`M&gd<rRdSE8vNjxE?GfB&bS%fg
      zbp`M-;bR0d0Rmhil>d@A>!EIWQ*EW?UV3^Y<F4S@5N6s@pZgNr9sBvCYpW+Th88nq
      z%-q`aiA>IS(TQx%)wOD_Eb=X>P$e&GgSh%QZeY&CO&;R!8U70$U>*yEpwrlC?LXc=
      z>~{C}2$lcIL+}rxH15j>%2qd9^kFt_1uWmvTE@*#7$c2`3Sn{BdI|IAeHBS#iT60d
      zpW8thqZnh)%e)Jvl3i|gcX_#!9J$EeT}C==C)PLKV`_cl1E$|(pv!#vS?C)JeZ>{_
      y112#PS8<Ik;W}n>nN7Af=DtPwHCqRkZ_@)m{@}Vf*TG_jTEa40KV#p*3fy0ZyZFHX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+%X8aQ6vn@6J8|Nwc{NFslBRJ<i65n=KzXG!q$vUCRcId2Za{JF1c4%hCDU{b
      ze*mv7EZB9!zzoDK%&>uh8U84S??{SlH43n>^|<Hz-E+Qsj{f@l=U)L_#@kt>6sF!c
      zKQ{L(?p@2-tt{O#cdYvLrsvh2RqZsZp5DtMqc9SSYA<ywOa@D4t)^Yq+O}-VyH}YH
      zpKPr#;Od5D+FQEeT6Jf$dP6}iDV$uWJFaIs-j-=MbyxF&_uaQ^U-v8YHmwEQbX^G?
      zS`m81HksVI*I<sbJz&g8LZX{hh3>1CV|mvU(uLxdLS~`9qjOLgHZXt@g_*)pp#SF3
      zfoiSp%!;&s#d7pob8lNWHq33QV`!ybV;Lrk;dA&h<Gp9O3g=^xBpYX$bg=o6tuhuj
      zJ*+jh8fjt<_?3Bj-%~gpN6yzgTFm^V=DgHAD0hz=n8rCe>uN6up;M+GOKW1OhXhd-
      zL|^3fe|dICvKmbY^%r_vZR?t+cX;-9qPSSCjLRX7;Vhm~D98G3qrSUq>!2;CJ0Dhg
      zymk&1<R#%}3_Ob~3f#=|R}?1V{)C+^Dw@<w&GQCcz>5l9d-76YJmyAc{0YqB<t(n!
      z^v>iuLJVBPoWcoizaEvFDfopc%p15a%LbPh>$RpEbd|BIz0GRW@WX|opF!-vDQf7C
      zn%WJ7+~PyCVeSP3A*Q`<U=bXbVZz#@#{mnvq!>c?E5}V~7&<GKtQc6un!?~=u&pD~
      zOlZ&H(xcOU$jRajg}F|jl4fGMoomu^4mWX2ns8m=Li`|;!u_$$t=F54nqIVIV#kxh
      zE=g8&wCXsz;rp&Rz?1);3i322&0iN%ID;&Dc;Cy<XbL$#8#oy~_wk7zJq+@Hh!IzO
      z9gr<4)xxPCe9<WXa})#f=w@G>=AFnGhB1uuDu^>7VvY!jC8C^wSSDh{M~ntxAwpn}
      zVS*5Wojn38C*`wA*w!(yNxw{ioeN=$+)y&hm0Fl8l@D;fU0)xw2Hrsi@6sx>gPDsG
      z%;5r_2ooF$nM+iNvZqwOm~LUFO$;3SfMwY}Z7PV1Xgvrrq}DGyMdAQTN4aVufqR$S
      z{r}{aagh}Z_sJt%RZil5Lhh%>aD(HKeB0b&$i2tvGV~!&A6mFn`URESEnGgp)1@Er
      z+}VeCDTPw{0I#$S8fAY1pYaGkXa9Xc6TZY0zVbIO1+d7hd}LNWG>cpLX-J<h;6|8+
      zlqrpw9_ss^mlULTyZu++_~4*#(;-;l)u{E$j1;MAXBY_YcL-G|%*ZE<;W9H7UPai&
      zwtDT+U0WUEu4vaPmO`=gkBG-;)AFC_r*SuL6ZGa!Se939UeKYx@qB*ADg4pF9SgZB
      UY><?~CTBt>R`HXh@D?)v069O|)c^nh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4(M}Ul5IwVOS-UK>fQS?o!9plas6Lt+6H+ySG|&|66N$Oh8@yz>*X-RY{)Vr9
      zgNd4`i4T5&A7z+b*QGUReA(HVIcMg~%>D86+jju>u;#%b)K0`Jan`V}l|F9lbd8BS
      zLd)t_zb~y-N1@DP9$Z3w1l}^IFO8Nu9>(WELfOhliLfUltBiiS{fIz2gvplCHWoVW
      ziEtnbrNY~H@4p<L5ys;e%2w|Z=G!BEe#>ey<bl#Een_aS{{>U)5!{w}E{k9V0enpO
      z7{g3}0JDU}KX|#^W<o5rm6p4M(<2!j2%erW(>8q`LGU2#XF)d+%G<bH!tgeRq)#8q
      z_+qbJlT=?@uVpnvws94z_)TLJ*DPWYH$B`Sto&Nczt910VTn-e?(H2s>ul{lCRG2Y
      z3BlhtgQzc`s6^USe)-L$Cn4C@T1Kr<SSziEDq-%@D-mWd<mW}O%;y;6m*=2@0>;_%
      zQtwK+oZKk=clkz>oS9<pJ|i8r6C3r<C~efgV)|nWy2@WaP3?1`4(8Yon8Z+A!#rEU
      qbu46MHrXaQ_Y*1~*g8n~NqgXMi0fut2e(tyGFI67Df<pq;hqB_rq8bc
      
      literal 0
      HcmV?d00001
      
      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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
      Ee}9-Y6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Ad3;<|75?taBr}=5Bqd4Hw9_SBXp%{runR2|lQb<8(xjxDMWwtZukF;yOqiK;
      zV+Tb=MFa{h2t^cdDXZ<Y5S9YcDvE+Ti@SmdxS@a>`knXg%)FVVzn_0(-n;kRdzSBf
      z=iGDi%zF<%2H<!#+Yduw!X|68wY4p^B^uw**4>{-q?cK7+Yg^YUBRc$#L#deZpYJp
      zlqpPezgYtVb}AKJ7mY>J+uGXoC}t~+Pua<+6<cK|Q_)0xWn__p>Q<=eOvF=ZE1q6u
      z#YXJXt+zbd@x&=N?N#vg_VspgO{9dzL7{YUfBVud87KvFSx<YUckQA`dr#jInWN#=
      zk>169{Y%?dMEbm6O1QeKzrU~FvzortcJ}pfuJf$EzU5usZ>0(~iz7W<V|=2URp+ei
      zT3)2VuTZ(Vy}vioyTqd-pisUcW~EXBANBPJKyB8RbXyL%1q$P0);2q754wvcJBxDQ
      z_vF8Esej0hk91f`#-VW8Qg>dY4J6`eMq~_?@w63<+et2}7_`@0Be8VHNIIQ}GvI~N
      z+-a_>*6Wrf8PWEEG^3VvBWs~M%eBEp_Hfc3u+sJ**XWJ?cFeX?c6RFoGHNifWsyCQ
      zNLnIod3u`=V_eEkcWWOMCN&kBlXb3n6)Dk~7_@`r!U-l$#7TsGgPrz(q%ftaxp2GZ
      z>w<FbJjKK;%nssI%=hCoh57<YdsdrRfYTMqlJ-zyGp(HH+Eo<5=2hhswa~<wc)##Q
      zD7v<@uXjaP?~1iO?Q6RFIqO)|7PFX75r$_2qaX%!nCJwvpu`#^Xw75F_iXK3x5*wz
      zFAyB6dKk*yk)d^Va)q@{Fs$xL3^2DWW*EnM(wE*CP0{i~M6wypsHq`3xGCncCCD&n
      zum$3!CR)+P=n&$3bn1)o&4z~*;6l&-eiOauV~C<DW_EOt)DX>dx2gGDH*(DUJX!0s
      zWDRhZt`f5km^c=5#He#kd=LcSn1Q5CfgS<!^}{C4!&=IwC!SBmvCE2XUgd|S(3s21
      zNGxV=uwuFNT%M+muB`+1u&_0N0fp%URy>|aH*B;v+YMGjd?XfY&^gyI%sda`eAp(|
      zV*`;rJsOXu7c#+gXdMPDPbXPe8O9)@_=q2y7`&VXVzrZ|CSu}eIWb*kC7IEJL)^p+
      z%w*VxSqw;;$k1?1A^d+5Cn73KkTNlh3z$m-EZ=U$NTrihnkH4MkK`K*FVoiE$|_1@
      zmgEasQNZ+B;3V0FCZ?l7LUOT*OR$ZMbpw{$F5fOQak-?J$#4~Xm><MPag`q*D}+XC
      zF!6DGf^_4qRZ*TaLVsV=x#FF|)sj=6QfL_yl!#j#igK8Mu9v;nnE0#|6-_QrEs(FD
      zGjScRcgf}Xq%hT0l`V<go{vtH&&LiS#ElN~oe=DhVD2(84;3Q$789Sxtvn!Ij3i4a
      zBQe5Une0spcXFu}x7-S%u-nA#_yTD{EV5fd9?uJRxCnjG#8zw*y?2^e2?w>iO?+7}
      z6*+yw)&(O@k^QQPuZh`#kzvW+l@UMgQD`VAnAu`7J8yLmdvKq4e81R#l-eV?_n;1M
      z4mqhqu^=A64nOuWYn`<4Bu&RiG&X1_#rFLs4&WiC0Xf-g4Uq!1S*Sc4SY}7@s2`6I
      z++txS9>e1luvyxUzV!-oG;q%TY_av^gHGHa_QDR}N%FQ;XTI1i)88=hG!8NGt>Ixi
      z&YC{YD>9q-M~KvJ(b&ECripKfUx9SOT`zEa+r)RIp!gXcan_IT>Nd?`az`RbRNPnx
      z@ho=8p54Vqb+?1=f&hNN+-c1<CbIS_`MFz;ByK%bwkp<@QbM~j!je~1@`q#A`nGJ`
      zS4NzKf7!&(@N)%YB+5>(Am+~UTuJ46KYpnY^0KH%B308-QQc5TpQ3e6c9r0_CVqwA
      zDa;sSu~)AgoKuf9&ErWBzsDc^c&(@hUK!CjXW|9Cu5fChqVAlM1%<uG5uOWi-xO<q
      z?H1FOkxnV6kwpRgnL){0Lb?+CMTKqJ#G*KK>qbqA$=^&gqRHv8i?`JmS*v$RF?bjM
      z^y43FP`ts=Vom%DD=09U(q?p8!_ry=&?s)aXX3x4398pellHP?V%Scmw{>o0i^Ehr
      z%~k1kJeu|%*6Z9laz-Ll9=Eq-8`JVcY%u#?Pe4|W-9NISAXn<inWHT5HSz58D>mda
      z^Ho3}_U*|HBSSo2^T)gjvPF)@Sr?*%4Jm0+gUT-{KaY;9N^!g@-%@z1O@wNMylz_?
      zp!K@Lt&gVq*h36Ox7&k@l9t@8y5fQ+4?0zAstE#hIUA+yc~(nr^LHnwm)XkWpgBi@
      zqg}J~Qb|fR$yAe7i04^$am;O)L{g(pgzTr{>snThUrnXj0)Av^Iy-M*?v@x-Q*a-t
      zygV_I9IzKh<!r9ZeQgyvq<$pMi-<#gn>|O(7;<zrxHSzkNVF3Em7*Gx;YWb)<#Ojk
      z5R+h{A~&w&xXLpg&+##yaW%&^o^dV56FlQOjwgD?^&C&~j3;vx@{Ff&Jk>Lv2A_03
      zw9QAWXF5+_H=HM1Sm((^b)L-#)9x0&%j&tFks+M{XG8qX9-P0&adZVSkelw@a0bUO
      z4e!OthcIrgJTrJ-xMd$scIPUcxd(AZ2JH`Uy@4+NP9ttm+fb^u!&DcdR$YWi>S8pg
      zOVFY&#bT~$aOGnO&f<ug5TWgYdn3B(jluV`X^)|;7ONI=Wbj!QZpol0uP-RG>MH8{
      zxFfsHU6qqvre!O+C1?-DQ$<;&;>i7caZN9iNp-Cw#&j2GF$&AL*=tT-L<Z*+i`Y4)
      zh~-#8q2kM2K1ILb+f$_c4$n>_r<~oB-np1Y$j(|?zWOl6g&CtY8GJ~Fc`GUfU$qB*
      zbq}i4y&jphIhnk`Xqne=wIJKkau^k(IDbv`y8Re@Ttpti6nSK@k&mIfP$>_0#$m#0
      zp@@vfX2B@`m-7fJ)j`ZsPoPyji4)aRXje}=7P*n?$VI9H2{M;Gw%i-EZ7VqP(Y8Ri
      zW$x7dNEXNaIr{j#BQ5N%%Sj6$jRps+07kIc@i2fb<hx`zJ5#N}i|BTZ=tUV^O0TvT
      zBl;q>y+lM`9uraCF|^EtMzm3cFnPlA%-{-1p6&8plEIbEBws$cI`7nElreCxP|d4U
      z^BR-qbxcujV2*mz16gCv$wqwIaZ<^DDaLSUNIUeI46dc#p<;*LrlxnO>D@6M;x$Ce
      zOlyalNRe?uk^Q(q2r{Id8`91Vg<Fh5kDPK~l)`6}!88J>G0G7##-YJrCt*~0ylTpM
      z)kLpmQnQlVOwIzA_~Gz=+!QX^hn+(Gn=`nLk2@S5%FmZphkY5`#ka5IQJo`2+^8lQ
      zhf!|S;uvEB>Wn(tF_CuE<5*)7nvKaG48qzLpIn%<1t&Vh0m?_QXAP~mHxH&$IE+~y
      z0p&RX{5OIYkRU@P&)P=u00I1ZPs=FwuA!-!19*5p4pu*r!BZI=&fpn-d6rAQm%(!_
      zc{TKae#}F_XvIvU4fBlSJovR~m28}tNY7KLPp-sTc~UEHJ(}|G=arL`KWyR8k372T
      zSe#+Zr|t#ReL7=z2Id+IJ^EX7`sd{I^O~#mpH0`r`KnQzO3!}W)1or?iARA`vy8K-
      zAc6{`+atItC)kglYGS;A7q#FM_>_tmARS*ih+pL4a-*`s6P19Lq@*?0`#tB%e*7j+
      z8s}Uw&O@oO)?-VVmcVm}7m-&S-MqVMS@Y?l*kXpm2k<J5$>5D*iR&@W*x<3r%-Qru
      zJf!8!bL0Xg)qg5>XV|l~B)9c1_^aNUKbQ96t>Voip3SAX&40(+dh=G2L{9!W#PY3{
      zJJHZ`2tgjV@9e?^nOZ6Z?5%M1zvpuDKY7obvSnPv*j>y7zZCVxWteJQ&cwRX(deG{
      zb8^_tQHs3@TWM4%gKtDll_=jBF6=BiAdRcXazT|U3HEU`{h)TCH?#|<g?zhlQmAY<
      z+Cu)_2!{f@acpQj$J0aOIWZ|To-;L}(%q;WRsJ<Ks(im1Cv|P-8R3wWm>OkH31w78
      z-qrc2WFB0{dUic)$qlG9cF^S;>GDmOX6(dlV;924&1f@j!F=OZoN3&KMaFI{HE#Dn
      z(VK&!SB-btx-(gYrGXSEs&kFPe0n8>8c&<HXH?BD_)G4Fuefb6?(v{9J{wq7rzUDt
      zx`~R&sSoc}^@mXv9#vCV!_>5W%9+X&#ZAKl@EZ@&uZKNy>$O}%O{XM7HK-YUR`YEN
      OZJtRDd-$9M-~RwffW++p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-BS}+6#v~M5E54TC{R%>iir6DqWz|^T8L0X!-olA#VRhz6_##x>F!4Ht#5s9
      ztL;pmI(_Mjow1G$({`q>o#{W+w@%O9y<`I>;6t)|@1FBJzu!6Mp8L;#fBXgD5}Yss
      z49P9^fx45jA8N)%YPL|cOkJN+t>MXHk=wSmu5*7gjL<=cj9K0`4Q@E~4z<lNS{crH
      z5mX7N>6-H><-@P2dWAD|+T7AqeT7@LW*W=cYYc3b;aJ8rY)3U5*R197^3LY7!oU3t
      zt<I)q4_{<Bk!!3VO*WS`LvyY$oQgFwimxz)GG>WKz|gHg!LcZU=uvPSy)Qe~l%<7Z
      zM@}>Ne5Jh3ttFK*MF=^wNFr2{LTkAh5>y$+nsBJkTrK~^zITH=ewqr7>hJ=07!t9#
      zL~54OJ=?U9a$3PjoQhx&XTvzd(APL!3Wjiwq207Js;25t5vT&$2+rd|7$ZlP(T%Af
      zhB!m?`a(Xtx-h>qnPWKrDrAXi5@TVEGK?JFE_>P(j3dPmR7)j>*j{}P%}6@FD&$;J
      z@TOqdwlbYx%4P(|R*TyeopSq1I8+5HPuITk<V{ijkt0hZ?9vguj}O9_U>G`Ftgu#)
      z#%0QBA(LOo<<_Pq^9;jB<kXEq-MEjUJZKk=<meib!hUkkR4j}7!S6$f(j!q)x=M4y
      zI|J!3rYJ8$lDC~T9KOM=DD~bo1=E<Jq!Xru2*%>sC?;`ToV6?+!&p`vs(!n9)LySX
      z`+~+-qjYrV6kNqeQ7qs_7>hJcd=?%#1$j5VCP#@NwWMHKL~f&yE~z%$q*HxBtbo6z
      zU=_D1qxUt7FIwg{x12|rP0~(PpQvY5a4ednX}3Tg&xQ3ZUUVAl2(>K_yz$pv=OD95
      zyiC0$lO<{~N7JlaDZfN-5UPT8p)TrMdF7i^cbd3RU)`^{cvfOYY%0*OMZC&16Lp3`
      z*=gSWFlAPZ5-;V2?m1zQZifydj55P%ua%n^DlkQ~2oap#aj2t2N1GL^$Y(ThaytB5
      zW?TR<C|SecRz_ECo742{@n!p_I7_t&(ys*pnsQ;Z(R+k$w*aD@onn~NdmBR3U>)?O
      zlU5V-EkMuqMDjOuC6c>%?N`^KkN%_XryB&fh}UVYkQ15W1p4X8#2}S04<$@0v5SFR
      z;sv^1;Ef+}Joy~MRU~fyj6S&;`VsB4dr|BrpAk#|BGgH=(*JD=^%-%yL+iUVo7OOf
      zdv54Hmr6>8Zb1TX;cW`e@DARUB*xt}5PFXHeB@Tz1-9x0glYml#1-i~Dt!ZqgPxT-
      z&p^$SPM7qYa5D~c{E5k1LSz-0U3`2H=F2*mjvCA?K9MkAQ38TQbS(KdT7pj#RpjOb
      zTC$4yDhi42mC^kHs`xbYlpMVL4N+Zzuc@}*5YV?&q{o!kCzQwU=n{HD*U9%TfiqqZ
      zNr1vpzV8r)cDnEG(p!Mu*ACNmuYtCo8fq)nU}lJxD8hiRpyai~#_#x?q0|8LmpaS=
      VNjHFPSMV3G=qUyfok-XS{SQ#|Vg>*J
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(>rN9<5dLO+Sy)zEE&_tJ6)W}vv?^X}Or+7IS}+mQME))95tc05WOs|cgb(0j
      zm<Ys6xWs=xlyT0svRg=h?Ae`jX6F0mn>qXE?~fw@cko1oLRi`{_KZ&@_oHcVm0qnk
      zowjAI7*6)=tGaF2TcU2dp0I_ZB1%Zgn3Bc&r8k>9qUouK6EfjUVo%s!sXvww_qI(p
      zTP94`!_EP0g?*lyw&^`1%;p9;<r{=(wcQfKAY9U+Vn{;-2_3^o5+XV2kf@usSnKR=
      z3g?}%X$ituz1=jdhT)jf?rlaTB|>=s)*v02sP1}(C%PrJ2y^{(!vegJVpQ@C4bzxW
      zag~q?mw&-k$1JW9hPQ;b-tIU}=01_j`wYXXS5#a-mujWmv0I|`R<>-F1+qqvLPp08
      z%n^n-U&F9EoQ@@`$)l`}TbL(||39j^&s#ek*W+pMy*4!DP*9O4OollJEz?oN0%7KZ
      z>4<LZE?4X0oN1%xYPH&i>`KfpmXPk#`+@>2FSTXIBxYaDe6V{y{6f_n{<^;%0pCg=
      za<D(J)3R@b`*OH6g4XTGOH)o%A_({I5f4Sp=37#=4A&JrR#OA65i*=I!cPp8Ov(Y~
      zD;a?zF?e@`t!1_pertu|KJ>yNE`Mc9!6>hB_5t=W#;fjsYZ%7_TZAi^>}B}O*`vId
      zFCJiOb>S4LFGw$(AhlNb27Od{KeYHAX#%e|2?w|x0L=M>esY3e3~<Dt$DH_>=l29@
      zobpWk_Q4BXfF3wQVG&CVA43);lzqBW{I9u-ND^G!y&koBK8Y~3c%gWR<p4Kam@Hnw
      R1Al#pNBox35Mw`v@(;*>E4Bat
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}T~8W86g`6oh>LEmVg>3aT0T^?t^LAk8qy{;q#?24tq&_qU@7d9-4)x%zW4K|
      zG^sY}Lw`VjRMR`Vi|iV(56rML=bky|-aGT>@2}qgc5xU+fMKhp^ptl6^Gwwmg`?w|
      zp|{%=MdRsbwHh}~^`y-`t6>Bg^1hIg-s$QZ*DP<u<zg5ihGlO6?-908YARZTmsQi^
      z8aKj-Fsukv;e;!iS*RF#mmAi5Ka3&LQ~6m%H!OzvvX}L!N*i6;C^CesrfQ~l7#94H
      zfjI%%S2fi-U`S;~qOw(nU`em@2{7D{FbOG&G2E08!z@GcO5~;KVzwGZ9Jj)lC!Ic-
      z0}T=ukYJc>aI3GK6lb!2HT|ukkdTrvfoK$qSPo-}Va`Y0he}w%D(O|~^{eSy_bVP&
      z3S0Xk(h}COL4t^7R53Ojwrfj9bPUsFRpYNtJ15+Dtx!WT%#`(-(yl6oD!$#tpr{)|
      z!JmOa#=H$SSfyG@rlnZiF<WO?9qsbDXg*uhxNV+c$#<GJBMz2fs_Sb;hP7*a4-Q~t
      zbJ->znxH;=%;2We0Zv<wWkmBV;(>&RqKvZ!@8~_(T>riZz+(wdM1@igU{sN!$NH&J
      z<1bW^cG+{4w?*?%?p|ti0ZVPgG&v=IZs@hAj$+jK0gQtl4Fp9S0<tV_1id9e+Kpj~
      z#%cO`Lx=#)Yq|V6<XrwIW^(xp%$*~d`$4}8+;-=+?*t3r4vlf520Ao0iMoXuyhQ?S
      zWN1|)VxmJ9IhyJH!KQoE9({|W*nlWxgU{^1xU=a7iqI`=(?~sr9U6t&krW?BQ0(Ha
      zO>qzRU5XYRBNT4Bw)WilQI7t||8t%|h+;n?f=`g~8A*I0uV2aKH;?;G*F*qCLI<#q
      Nr!+@xC2<@e_zw;Qc9Z}B
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@TTc@~6vzLw6iV9#3PPb2)Cy|56bjx@i>MUQC5Q&3J}+g&#qBO`3;0>Y2Q~4M
      zNW4TS(FdbG_~5%=M?JGGy`W7rO?S@BIdjhMT;}`FkDmaHKy^c62(M`C+Jks@LpPV>
      z)AMQDGK`y=$@>f9gl4<pVhH@j%+WP4gerBbhIS{upw98EwPvR|gFnk{T{BYL&gz!A
      zpiVNdX@;hxWoC1lnM-NL8n6Gg^6KmDANMm14Y|8|wttu*I8*7j0xdyCW4fv5#u<7e
      zHLcWWioun%mbeEDZ8Bsuc~OUU8O`V*Rm8DqnbA!?yOvqx_APDEAmX+eD^0)}Vbi{N
      z=n_~AeYL`s>qU4z%htJ>({hwCrK>WuF7w=kVWsb>X4>W%QWgMIFAgE>#$kre8tKY7
      zf<E#|9#T5rShZ}r8;nG&N%m9;FOK548^;(rsvPba$cP}y;4ZqO))rmGwT)anX=PR|
      zlkgI54D4%rVIo9LL>UKV^q^Nni^~|sNSSbsr-`u2tvJ%mWrGtQ!$}#ZaGIf+7;aQn
      zsxA^$eNZqe<1Eh6WRXER>i+r#3%z%^%K=n1O7-?E={Ci5>hD^ovN5zf1>2V;b%(mz
      zRaMJ!L~5m<5Ef|GN_`W#UzTwZy@E6;V^WZISCLj-VDQd6Z(&Lo)8((2<RQ@^23a*t
      zZYK>bo8?5~DLp-esakdPuZM(gxY0<mhhDD)uiq~Qnq;AGMhkuYv`dn%j#i&Cu!B~m
      zXBP+FITr%-^^y|OBh*Wq=%jr>?BPQfg0u>$8zDMlqP0bbn{d$&7*)2>n#aLB`me{n
      z!5jMm<sm#uXcw`q*k>rSgC&b0C65!K4>;q(7G0Gn5NL`UNqh{S^aKIvDSD)52usfq
      zlU`t0dWjK|1(Z?<SArVFd4i(xLJSFvk+(4UyMS>gbLzvtgI=lyI`JpyYXW^kpl=EE
      hJ%Mf$=njGA33U6vK_y&q3NeMNw2DW-=;2?3>o=`{OV9uS
      
      literal 0
      HcmV?d00001
      
      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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
      F{~dkw#qa<C
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8BH5IwUjtX&pc5JAB&uo9q=%A+YUX^JM0`jHm<eyKNj&2lf<yA}OcYC=eS
      z@YRH0;;%5wT{qpTV0_uxnK@_X%*;Le`SlxsO{@g)2(@?Oz4%bK$4Vd6cf0aPBqB9Q
      zwb}1WYt?=%i(ml%PeRKa9vLllI!YJ@2^A|7CE}h;tTOub&NhK|2~#bjZ7Ouy6Y)Tf
      zN2kX>PW0w?!bJL3+3F+0jrPUD8jRUeTBT12i>sG`)_MfLW!}gVSVM#mlOe`16CuL2
      zzllS^4M!}um6k6Chx;<w6TASzOxyH%2*IPUp9g&>mGJNq4WkPgu9ekKAIP*=ZpXO#
      zE30dH6_Kx9#VY++{~gyTVG*|j+#)RhTF$@F5$@nFq11i)s@ZAoz3dRG|I>sJcFiE^
      z%V)|-D;MYAa7_u(j@B}1#ll)?15^of7oUnSTMST?!4ltOjGv%~1&m{Yy&&_hR4VRJ
      z*}u<+n&Qk=_8v3RV>`KCJ3)E9c8clG8EBTjVV2tFLQPy}KVlL?F^74!{El!lFSEhc
      j<@_&L_{7$O<Gc32^AWC}b3NS4P)k^58)oeLcmV$#8NJmD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U2_v<6n@^MO+r{(D3n%GYYG*bls1CpLkegKAgO^OZKDNLw&}LrvfYil8$K@K
      zQm(vVMsJ+)+6$baAHs;<D5K-8j=#q7d3U#)Z74HdB=7Ed&&PAldCu8C{(br!z+u#r
      zhzaajQg5qw3(g(gTqulBYBkkXUCU0QrTMOCE!QklGu<Q-0(+x&lhV3qnU1TPu9HMc
      zpx3`wt5wZ$^jY1|-Ft<x;LXqkb~u`?t42k$9o;ggOXmc{xWH>0ZYru#*ILC-1ApGX
      z`TVHBcFWcoTy?2U)sjHsly2(o8G-mft|HJ<wC1!l1a>RffldkrN>bil)=lkleR)>1
      zr_@;)x}$7W8Chj~z6Zh<cTsl)y35hT8U-0mBaV#pymK34yrG~C?Mb{TuumEk43+gO
      z8HTo?8e{fCeVJI#->qsji8qNpfv$$$q-(QaXY0B#r`c)j$6HDCvn0(L3J&0)K=QV%
      z#l*ZoCsXnO`tf`}gqB54Ld#2ym+y0x6b=dWWOXNNT5eX&(xE<=jZ}14`WRMFz}qaW
      zTB~X1oWRgl&R+5#<l(_MqTn5j2&7!g2gh~{Yzes+IoYh^3Qk}r4eGTy)zzli*VYBi
      zm1j0E++b(TQ0EIFL#IolvJs~goCY}%tLr4)rsjG2A#16h#QUs5w7<<R8Qk%M_xY*6
      zGIp*a32{!r7|si9r5%kddAJ3*XfkPB#CQ_SyEBS#x^zi3)dkH~@Gd?SII$Vmco=2W
      zukt3q;U$xo#l9rro)u8M3KtF4aZ2Y>xWeg*KoMx;{X}%!IAH|V#@a;0DYQwa6$KyT
      z6He8<ZfjR;tESoRz2YM0fuq*71%pc7SjH`b4BIaE&9YAwS<o8_u3<!u#AlNHp9>s_
      zdYG79(yDHd>ZTb;L1nZ<5lWxFIB~UfZQ}COSUH6%%ev{Za{lU6sW?{V#&PO|d?mmk
      zw?p$7j*`TzNMn0(N4eTvS0EQs^i_*4Q1!T~D_FuUft?%5h8B7{7*KcPs(E2<_(@_}
      zU@*#%#*XT5AZ!TJFks2$P!q^Bktb~Ws3d55(yH54?Sd|MWP8KIu#861luT2zJ<@1g
      zl)JYIhCUJ^ju=|OuM75K8ze=x^MezEf(LSG@>$BbNcrEvw-Me6o{4;X4ZD8uboY2#
      zG5%ktuN&y%lj3Wk8?W<Cdgu&1Jfx1)J)U2~-h6xoJ(;huKhyFpdY_?p<{7dxnRV=2
      z!$8O2Duz~ZcnwE?&S$8YU&XOT$O8lnET9Ebe9{STi7DMej^_{yc?8Qi2GfJH#}666
      zVQ?=wewsL_Cj($dc*@jL`6n3t1@ArPa||-MgeSifNh}p6#u*Ll&rn+?mdFpTq1eEg
      z_N4cj_JatPM2IE9rFg-M&E*>SI!POeMak#a@d3fCqTKB9OSbA^1d|eCy398D?Hcm@
      z0`ZQC=5!uKOyi;HN4Of876Q{&mZRtUrdoU#F>VcwC&MOx#cboWIsU(T%K)eS26s&L
      zWL7cVNOd1lbn}D_USXJ3WO?>ujZI$1Fn(l%pL$TTez*Wiqro{gdWJlXktSSLL2j<c
      zd$O4vyk3?GeuFN_yuo#RDw%iFXWrweY&MXErRbnf;8&*l8~Of%*nao0_+%Riu(a|!
      zJqOLJ<~-@@H)fo+vccU9zW4&|`DZX@h{jyOq7*f{)#hdP7iaWu?7}~h!gmJ|V)(+t
      OWW(Vp=hfiPMazHu5Kut?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+fLg+5IvKmn3ydwcj$#s>PktF8uEseszQoDYL&JRsq*eP(`J#eCEHMb3yHQ8
      z4}1V0z#DuDVm6qPwCTfoJ+tSWIWxPLx91lC8hB$NM_4-Wj=ht5@<WH;>mNIT?sM!m
      zEEEWiIjRSq9DL~=u%B9(B5aHj_?W}A-Wmvo+d4@(<d`s(4s_yfi+Fn!oT)bj@J@$1
      zeNR}eOhi<>ghDIoa}k863Kphq<WW*6!Xe}<22g72kUt+C_Bj6P^#Uf$w<F&Rx?ZeJ
      zoFxm!3}IzbA-5rBRFZlr-}lfbY>rzR?QqX@+pKnNtm2u4HNwJ#{uG`Ylg>9Cb7xFC
      z=Znemn2~?w33ewsihbVKrYDt6?X9UK;fGL0+zPxTVd<*07y3bz$lZP7bP)9wUc)6U
      z`Z53M>G59NO7*|RA5cwf%gpn#o`4+3j9y+#PF4}NWM|}WM`Dw)Yg<2|YQHgiI>gMG
      z-0(!$bcK0|m2gaU0gJNBlfZJOvMak$nXa8d{ldy$8gvbdZiX7m_qa?$7<hq~!p>t|
      W_&JoZA-i#BYC$-!<Xezi+Pni&<*h#e
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OH&+G6#nkaz`)Q6j|2>fnuHLT2Qa}mnHa@^n85)eLx{m=Gt+^_VLH{_lgBS`
      z;mRskS{0)%bP=mG6$hhLuB@`ky^rYLy??;+yWN+0-~d_7^u4#w`ObH~bMEP1{{8+(
      z0ONQ!jDWz&b^V%tBk5c>ORLG5T+u8T_TXebZ#a&*QZ&>_7$Jc~gK65@xN4P*l3Q<G
      zJq)8&;Dqm>D>Socx;K+G>?OTeHUzpH!#4Hel3_chRl1m&5)d;2`_fj)arKhxnYDcR
      z{&)As$4`GO(CV(4&fqD5-fROQpL>c1XUvl6o)tJ0ZE6u)5(uTOg3%6v9t|4yMG(Y6
      z4g1k6aAccTHK&wx?97@aW3IfhV%Up11tLP$%9Fm%B)C_HAxTnTxEX<Z!K$QtR}Hr&
      zP0rO_BWJh*@n}q8>?GrsZAvEbn1;hR(vG7z9>y_&15G5-Fn|*R9hPmfe7Z~3DS4(H
      zCovqx(4KYk0&0jNCJ;G4zmQp;pIe;FvX>r)DQPA!8pepg(C+=Qm6(PxBn5(cp&$_5
      zs?M%*q+-i5opB9MNS19&(+i84wB*=o8&0`MVIK;IC168!H`Hdql2sqtvo6vu)sE+I
      zI*bW{f!&jp)*4bcLyEa<W@>stU~msTy$Ec;272mN4e!a%Gh}xCbWfLUo4rtLK!tKp
      zp(Kks$AjPYsW4umCNdrWI8$<sRl|<3>83PH;~WJirh*7YW0?phab8}p3~ydEBkxha
      zvvbs5zcvj)W6KfV)>#cN;Kc~$@oE?sI6G=Ad~zBVy!fV?8<NzbhKn+C8$)`e+Hi>%
      zd0Vm){<4N;yiP^0n6`1jwyqksdo#Vp+*$F7dR95t=D<vO1@d{$udEw+x5<gjw&j{X
      z>w4-Ol$zva6$?r%S&LatuZ{A?|L7fsu3<%H7pYnK<(t)S?BK$lx>9xVt>~Y#%68s3
      zXUay_)QBIGQgWLql?*#w)E&p*0PC*NP<A*@p@RIiAi!A@MjO}d{GtR9>FSchl<PKx
      zSnW=}>EdpJ?*e>w#1r45JD%9Yfp0vAKK@6%S057Y13bdLMkku$5c>HPa-1oc>k1|r
      z-^8QY_&s#r!{Z-ef8s6%D~MnE0)6T*bQ>K!Jta>QUlS$(8R{@v`G1R{J|VZ;+<(d;
      z@fk+(xfi<6qmopiTM);Sc#6RVp2jnZ#F)1SLU-|O4Y`%4z*lt%gsKTVkF&~mMEM5d
      z+dc2sc?PPUY<1;1;VBMu{(#BLGRX?kn|OIU%ujVNomH3_yrN*<qX0n?9Zmd<mf)Ru
      z1=(4NmZ)H^f?T|3X{0eg1+Rtf(81SlfOQ3aWo>^W(C;kLAJp{$b^McGg9n`Je|ZFs
      z`9Tx`hQk|plN37m;dzUz0M~EtmfJf`a{Ie!Zu#9{3Qb`CX#x|#s+Z#$Og`lx5F8up
      G2>l1vJ~w#)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuvO;5r=5Pegs1+0R_?@ts+6piRv<Hf`TLp+EYuM4cWW+|pE>Ph`e9@NBxKfoVl
      zoJA7FaM<q7?0Ylw-uCnB{R6-b3Jxqn?poZ6`%-wP{ATH>s#QY<`HHAXeO5k^VY?I5
      zr30Jb^#QvG2g8K<zxf+2E=#{e!f<q@!u&R2vho+#YqZONJ>{!tpRlnu5YbJRwBYHg
      zQNTm)me<b-_CdQL6CjMba1c)-hLnp0(uAp>LjO5&cm(%H;FdN5lT4p*F^MUH6UyjV
      zv?LEYfNnabD$19~omNc-r=q4A=~dcwq0dF2Ox#P_Mlhi;NX&m<S-u^~`^c0s?(~gJ
      z7!q1FeFBvU$!hl{4wY%__Uzj-Bo52IFM|Uu!cc||a)itPuZ@EKXGN9`i18W%rPIbn
      z{x67E0>+vVK3(v=&AV6Jc!68oTztb=(Hnn7=9#k=rujR@7~qMkJTT`GGaO~RIS;d#
      f<B0i~#{%QcX%S0&Yhjrqi;*k5n|_2<<Y9dS<<z0K
      
      literal 0
      HcmV?d00001
      
      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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
      XA_ID1^f`R!%`%_FNq6EqJn;Vj(}OsW
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTXWk~5dPM7qDGP9wkc^GN}IHyb)2N8X;Ln33&n}sBu*$eHH2GH;*%mqmNSwJ
      z;gJU(xD|c?Lkm1I!)1nXrtJ)q2cGy*4109(Me!3al8(;qx8Lr5yZ`+A_%8sLpeu+G
      z&U~bQtncNVPYml`Zl%0ySeCFS7j;)GRSmapD@YK|_BIkbdc$;mJHk;%*oJOagzXr0
      z>(25bfmR5~Lfvv)-Eu3s*${nyfB(y8cgq*PAoO1~EW^D{NM}mD@bgm@LZVQw3Kek-
      zX;3k!;3y%}%esSdv2NFN*A=#k6pl;3VM07JRZ&5BO2Y_F5{}#x?iyp8gz?N&7lEJ%
      zvId?-UPTⅅOi3>I@yV({KvU_{e2fw_U<$fSfaRu5O`T+tqD-%M^^5!Wj+Ym>{SQ
      zGvQLy8nsp}4mn8jX`ItADMR!#`6a6=QO;|)&_dDoB+3A%Ii(?sX-<2`-62eL<+l<R
      zsJbEc+@c}OYF@!?q_8gE<re)GhYog8-)2pGs$vE?S=i?YS0ddDZQJ0JH?|ztX3y}-
      z=GLm1!@PpaQ3ZxJZFda|xI!4_GKH5R55l$o5j{x4(^slwSYo|V+Y<JM><r;}slLrB
      z)>+GZ4t^%w4-Mx~9S=`So}f7X3=u}Us~%XhN!$|Llx)xIUOHx%=}4X-n1|u3rR>@~
      z!(M4qxFNgqD$CvXi&zkjRaxDBId6NjV#&;<y1PsX11vS)j&M4Zv!{)+QQI|zoD%<@
      zMLmaG8kWIRueIEG4haj95$hqr9x72#;-H-)=Zmrx(wp&BtZP`pYlIVB`~p@AUMGxs
      znf0X2Dei;|gLgq!Qx1pYBnfvkRPZKGE+-i@qCM-;UCJJtct^q8%&#+*aM#Lx^e%6f
      zNQDAie*tl*a=l@1i=rVVnhbp}N<c35vRv8)Q+FJ}DplLt8xu@7&g-5_fIjr|Tj5g-
      zN08ue-l+W4_|NBjmUfr3)B8w1L27d!$JS=DO`K?Aw29Nf=h-Hn&HjnZ6U=PR?Bik+
      zm;UeopXcWo2LOGEKKcqt`WmD34bIVh%+a@af$zut5O@(U@ri>WkE=`|iSxLI>r6{h
      zdO4u<9aBoM)qIN*2Yh9Hw#_N{?Bq1to6`@>=>dl5A=30CCg~?$JU@G!vVM#fr}=;r
      z$3+2)%xNfK7iV5eC<g3S`5j|+!?GGp+&sW)X}XEE1Kj?df5#vTqDm9`6@&Df7i`3L
      z34#rB7v4abfp}NoWB|P2oq<8lbEAp34v=mG$_9cSd0?9S<_7xJjNv^m?EARu1(u+j
      I_y7a{0Vd`U=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      zcma))OG^VW6ot=it5c^_->q8T;-al!apR`q#s?@xgi66>Y=cIoGi4?|{+266!G(f?
      zKT5nA$6BNdH%V@C?w6Z$^YQuk3}6E*77~QwrMMQimGDM+=as{HM|qwMR(FM#do88?
      zVBZhgLTedVND&r#)mq-_icxkoguyN4DZNcd7E296YR7L$8$-xgunChUz49l|frBg|
      zb1wCP7i!@(C1JW)s`V3BZ6q<`U;v|pnPPv9xp}0fJb850K9j+TICB{}Uh|v6ZHPdb
      zINnU@3l$Q|5$HcQR0+BGT34`TbseyC)l$R46ru22b6vGNuKcyfMjkV!@El>R)phMS
      zGS@TZMY+9Df?fBof~MS8<^kEC_N*Hv!8tI!+Hpk~%Fx16?C;-K5GMMx6HDMG@kam>
      zyc)nDj}}LpQ4FNZ4@lo*_%2e6@o4i2=mi$NVw_`#GgyZSO!90PxtOtsl+hwvenS3q
      o?H<#8KyPs9Jp$#w#W9G}P{1ss5}0F10`pkl+2$R>B9@W<0vKSbN&o-=
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZva%}&BV6ot<%NTn80MEpYm;{q_zxNwDGgPLg24TgQe0mszVv_*X^-C*Lvxb~rp
      zcS?;)x|x|f{mz*?XZrc|_730x6&)I(bZb3WPy7C(bcXxqoqOpx!rN&}KRCITf$Ql=
      z61HQZV==HscEk}<N79i&ldx88$MKC?mym3^*TO&oX%jO@5wdORh|AGkPk2{W&lZGS
      z+wEI+*Yc#Qqs?S+BYi?8*7;An4TA1ZE<q^7(u~XwMR385*o1Pm_K%7ZPyvKQ!vJB)
      zL>|iogLM%=Se;V-gvW{%tm#-K<l}NMv4C|#aY`QfP7c*kWa6)Sx-V{~<Bq((IF%~2
      z%+Kk2N<=Wv)H}9p%l8H6X8b-VDtw^?{{eu;D}DqXb*`FRYdojwyRVpi3BMaW8fupW
      zW@vypt_u?iCNf+xk9lO-gZN&Hk=J2Z19SB;a$^)eu<^{O#%4-DZ0Lq&rdsoAVy0m;
      Pq_$AvStU=LWf|#jBp;>G
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv%Syvg5Ixg}X=7?*)mq;Vx@ap{-3f{aMM0^$sC1vUS9>L<lBCt&5`2IQKftZv
      zR=-4?+XpmSLNd(c%$alM-uIu^HvrpM*AODCUt1mPzUbXa=c;&8xs{G1-0W$qA?&jB
      ze8HK92*FgiqHQtiyml?>zJ@Wv>TtK{2*)p$nv4;HUc#8)lwNj=kS-5{2cvcwu_qnr
      z?-S;7qapb!AyQ&VaS##)G{kg-ku(s8NeJf@AX%1<IBVb3gnMDtY(YqsTXoB>TCP-i
      zzZg++2-%U7g1%Xr;rW&?dX^fztf0VQ!-vZJZoaA`gLw^egy~Us4J;_h=B0E+CBPl+
      zvJqAS%Knca=#^I6t&1b6OeO}4+*IRO@v%C<l5KgOV4sP=Nn({380I$$GEKEdz6l}D
      z<Iwp#&e;y<A&z=s;|WIL1rrZl%%rNRKlF(xeIUiT!9A)vg=vn28KnCx2OJektndiq
      m8MA*mzM#=}mm}T7^*Oi$i&*M*FLQqgE38?~Abv7f1AYM_Xr+n(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN+fv(B6kXePq9A0Ph7>RmE`cPzfg1v8Qs>gt;1)0>sfk;97g(ffWjQ0sE&YK0
      zLErle?M%naG@T63ed`Z(x{q{hWTU6PSm(0$T5Dg<_TT^h`3Ask=n7(l`S0`}^y8xY
      zqiMe^Zq;6ywrx0zyY1$I;cPTaujMF65Uxj>ts6&r+wuZC!e!TROx>y*j%&8;7n|z@
      z+9D*&E!*{U+pFtV+qkg$>t7@Pd|!J*xcI=dP45vQovB9Qm$G$2qTFg2D&iQ?pki3T
      zWkN2>x=(ba<urBAGaMBuToIn5gm@-fS3!7N!x+X1mtGp)4x?KfUnbipK_()|gKtw(
      zk;asQNy1E+{=B7zX<Q?y0-XbFwwr_riC?sI&U3lde5E`3fn_ji3bPvKFwY)t$V2Aj
      zoP!7<jRg&hJrey`kO-uk8gBKFg5x0$IIAItJSX7DJK~b}MY`2ZRb$UM_9~`fHA)JW
      z2$^t{9^VyZxw{TdML*>J_(??pMUmon2zLi6*|j|bUwm@ldJcPbuN*G3iWRIXxI>r?
      zvqossu!g&YQBGA4K<Xeo{2%Pn+3&Sf)wGSE=6j+#ge%q7A$PRSea(A$nDD+eUBW_t
      z9;4n)iJ-W_n<9)w+OtXAHn=Q>$m{5?W~cl>tdhRuqXb=3^BjKFetJ`QA}aI&H-F$a
      zU_rRrFb>V8ZUtF==06@=BtR6T&zdmAtsU4Arn;RiTO<U+&Aoz;G;D&WfY$TjS4mhK
      zcyJM=j_4ExRl;1jMSRwvWW9b+v5j2~8+giL^~noNxWAth#{Iy~tLE^Iy3>OPLtj;*
      z*f>hU3k`LA5<GfYiL*yPI9}OfAD=7ujOB%6>5gA9p1vSV52Q%q2GfYCYOS_&XjDwm
      zr^&AGvH;|4Z;ClywshAuxK*|AK*u}_j`M#2VG<W`k-rM>Vz`6^uX)Jwuf``o^Iq89
      z$>mRwe2vup3EtW%<T|+8!9)i$a(TUj8@WG_d5yw;;RMSa-2UAMe3ySGnE=E@G=(Hh
      zV}h<>fo8Bmv$)6ia{&eJ<2~Ln8A^D-0+P6ihj_%Ygrvt((l0D2!B(q1Nlf_u?$Vhi
      zxeRMs8q_o+0;Vi$%Cn{%MyP-^En$(Cc?K1IUAcg#r)yQ}Vs4bN&bmgV!Z>T&Kt(Ft
      z=5LG@j*5(Q@Zl-8tN9LgPVwwFK8`^oMHMD=55sidCmRb~B-t=m;$zeph=&HoCGeWR
      r2ZlM;y$(J-Mfwa-6cM!UgK1*TMGP_;!<RnoSNPf|7NGn121EY=MwJv7
      
      literal 0
      HcmV?d00001
      
      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
      zcma))T`vPc6o%hZWovEKSL>S+7j22gjhl)a9|<WzrHRYYP8iwl%I=i@EmwrZ5AdVJ
      znQhTfiJO@{bKdjJnfL75`|~S+4J=!T5ehfrPPB^Qz4ES#hm~99c`{fzZZ<Auuvb^w
      z5BB|_A+(l(g*YMGt=F=pi*4<fiZHOHJf*h@eYt#<5a03Z(#9Z$EZBsM0Th2#I&hFA
      z3|&cm;DuUvHA$Gs<;%V0B^!N6Iq1g-VK(=d%G{qSD^IqYJQtTPW5>#VO}JGNC=+)M
      z<N8{KgtZ9uKSN4{bmwYUuzeLBu#2U9)xsoU^1Jh0SyK(+wmq_u!L;c-O_->6XHFuU
      zJ=0)R+YKey6~7tO<i0XbNPdoL-6#ppftlNmE5cBQ7P5>siJ$M_hI@_{S@5{{w*X@N
      z)sF#QEsi#$7)TVJka)!KL!=nx)#eQ72o@b<jAMr@Sch>;@NO9C4r32-qeZgtg3QJ0
      nBc^(QPT|m51j@9<9T1mc2D6NcVU8g&%wvIfn@<RfSVH0hk}t05
      
      literal 0
      HcmV?d00001
      
      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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
      E2M#b%r2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7T~ixX7=BK^Nw)+Lu(T>Ir8L<9Y5m63Y7Eo{1BoO+iQ0BaPGOm_%j|Awd+Ch7
      zz>n7P${8<u)9GkO!;H>&>x@4{|Apgwc9$fCB=jQL-LvoeywCHz=e+y(f4~0;;3{^4
      z@G!)8lzrtv!o06)TZzTOURAa7ipD2X<uW%-b+gKwi$VC>6Vm$bp007tYE5V?1`%Mm
      z=u}W#K$R*yOf=!wlxmGL44B+dmFgNdOjXxbGxH2=k>PY&*Gx;%EIZ8qZ(?=kpN*Kz
      z5U{pYbMgwqnQUhTNs76qYN~ae;as#^P;8CCm)0x14-7*RB%BVzi(v`<7&)HUP?i*l
      zk*uom<=XBhH;M{5MF?5FOd=GLLeK7^Pf%r;>B6DaxrYD5eq@VVO`8gqV(|jE802Wo
      zMe1hhVQf-Jc~!z$oC{+d7lJs?FxuHJ2@|-;&`(8khDr@pEb0S;HyX?I;Sw$fF?C`u
      z?ZOhGh%tn3=2kML+;TCMWw`VrjEQa>GeJx<O!eL~hXN(cB0(ILN`)bM*yNtJBx5BZ
      z=c<I)1<TOd!b&ld790ZxH)~Zg_=Rw&71X1_BRyKt#U7YCu|Fa%*@t)WUJ!E(6TQWX
      zXbDMNBTozYY^Hc8pITmEm^{H#y9#Z|BNW}!cKJk(b|5Jnqx5vmFla|KH=~O(?4l&9
      z3JnkEAS8qMh<p)}oaKyW@hxtM4LC1hL2NQXX<pq|E8Gz0MQpS%QutULx|?(!qZx6!
      z#?0=ON1PrVDI6<>=?rHje1H$bSVlgG9L<#`6NjLLPX&jN>dq8FtRSH%Di2Y~Hew-&
      zgWe`x6uKp010~A2ry4wO=zH9-9;Ua+3EBg5t^5j>LBlm^x65Ii+uY%0tHX-W?caAM
      z;!sP1>n+jNs}<LM(U~P0aJ#kLWAw&xSArsRwnVilbKfZsx*${}@CJetbqpa~&}&AS
      z-%!QIk2Jp&v%+--DWhrJNLLlp<TL??n>?GLxIkul>F0-sCRGq2y6>Yeln3E~0Wpy2
      zJ_H}_jR?INpr<){=b`H<IsO|4<@f<!`o&HdrT?(~YKh<$@iIM2ltiI8gE6`?F$`Up
      z`z}mEKENwk`Bx0q@tW^P^v9oLvJQFu2}a!2A8?8muZYF?&jjOvD0LPA`d_C~w}@AX
      zfIp|vavL+aYnL9isU+Oee#m$OZ&GoFxA3-0V%B~Je9!St6FESuz)p(*UqitAxbEgo
      zySW~@J#)V$)6>YLgW+b**^UE|KakpRG^P)5qaEhU7MMr_CPU6TjrfWT@Dfou{ulh-
      zr*a*iED5xD9ZPkr$V02sqJVfL^g7mkPbu0lZ-SZ%d`*r0hETqx4t+<aJ|a^elZlV$
      zBl5jn{k&7btxmP@8QIJzejH!Wormsk_Y!uegRq}E3ft@jQ|<ustOJY(_iT+@*ruzP
      K6pWav@cj>~?NG!3
      
      literal 0
      HcmV?d00001
      
      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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
      LKSwJShwuLZO^YX|
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0T~iZh6n@?i2#Kpi6cm9H6%+y*wY8R_wlRJ*7K94Y)>`S3yu#wLp}WhM{kZZM
      z)b`4mj?-%|)S>B&7agxV)2~0!>-G=yveW0yuA2=XGEB1Beb0H$bIy6rS$_HN`Og4O
      z;_Db90>|d`C4D91EF0EL=IVq#JuQo4x+S}_g@SY(W7?FVr!hnY`fFTrrTK-DB`r7X
      z5j>2cLExz8p!<l1X}GJID*m`MWx+K{Rt${-sW7@+B5)=*t6MX2*l=8FNn0T4NZZiO
      zNohOux{<#qAg&7R%#|$1)h%~YHy35S@qPUM^ONll1RC5~!|6UD&^8<f59KvPqqBx(
      zxaS2rdbhOdn-qxVN<|rmz+Mfz(3C(OS~VoGPoRCBXHbP9<=8ZASn}H9{Is-LW>X3@
      z50?r|LuWF)_a8<TS%J(}B*JB`wu=d9%-xk<t%?GNYRQBvc}Z23oD%55!5C5ko#DD{
      zFx7AfhXvv@(j6}?+67YI+uK(mm@(O!%;@wSJ2=#c9)UfZG&aF<9o5i_J|=y~u;rLt
      zT9CH8>ai6V^vHT><E~9H4sFEW_(auJkWN=kwKgQ6+Uxktn>V5e>}G0J-q%a2J4gH!
      zS29}(SJ@54IZCg`aEcXwwak^ZhBt7UN*&8yximGAy)ZSLAD<BD_UXSekidZ&mbqEO
      zEZWk_l@={mpsu$spTHo7Vt89%U$~(mp=&scGXgt^MDh5p%^PtA4)^B07H^$Db05UJ
      z8nU>+xp4Jq>eessqHCC$Ns6Lm4<&FBmt(lZ!Bwm>p)(Cv6rHGJ+>^>Iui+}*XEJ0Y
      z(DIT(jmlye;gD{TU-y_k!`=ylpS(bQK^2KhWt#$1Agwh;2zC<J-L^Uij0w|J1CwPI
      zr+jVe%Wh_@WT?s8j!hgN;^P=T64+I#Sm3JRCPtasin6$+;nT|9s_OfchR>jrfMFHo
      zO4e1oMJ-hpp*Npb+7KvcIEVA<7nOJ&Ty|oCUGXL&2*NBH+04Ac;ZmzfC`h#;9ToSk
      z22=GgNjvXU7Jb(STRMv-OVH?4R=i{<+6<>UXcY;+bfOH{@0;v|UMyB^f{5NZm)0O$
      z4U6zz1nXnA*>b+LBscZnUofR^Z+gV(;VS9ycxFv=Q=^2p{Vp47JtRX@bzF6c8#r(A
      z{gg9x$B`U`mMTcd76)1WIz&(pzJPH6aj1su;5#`2Etym=75?7EXG!elcQfw>c^2Vy
      zN4oz<>`C|kgqEijhyDCcRF0+ycpGiJ*XTr3LbvnEtkCJh+(MM03Ep4EYa{9AZZS~C
      zkt$LvF@U@LHqnTABAeI=tAd*HJbhF}FpYlV)-!<t93uyT<H-1tj`ONmM4#cr6J8@w
      zOdBfCRzfVJ0n0aW#`itt`!=T6u&0c-9<TGiAM$Su{3&eTzr<)N%N{Y({t&5l1+#{C
      z%E<kIX8)$WjQ3t(cx0eTu9?LFzM=C2?8Ub@jPF8;_XLUe;2K65Dng4fe88*VERFlY
      z2Y6M9N77YfFYQMm+N$qfb0%=Z_naeXMLVS^_OD@*pHIrTeXipn;^~eurk|wi$|zQG
      zJ;qO{lc!|-jF@X7#;JgD3U@HWC`ta!lDlGT1mzAGN7onn#ioq8H+;s+L{c^D5+h!#
      z=FWFM3`*R&vBaLfex=)Q)Yk9R&>z(1pOr9a4=Nzt6_mM?N>pV|poLl-Wsw9*Snx^Y
      zc%nw5snX{%<{qIw`nYa=E`L>mw0fpNkS0Hfz~``iz^o4#S2<B9PIW%KN&B0#@lOaY
      z9>B!|xTOH@v=Re9q6*{b;olGh-|ZDWsB!hwC9sSYpHaVZ-vmN%o$|3a?=K+)R=0Q5
      YHgSyL9>F5`0$=i~b`t+D!&iv@4_3Rg;s5{u
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95Iy5Kacf-aw$PGNNL$k8f`s7>sR$tjkXnU{l;Zbwvb0;7wPZU5@mEM(
      zBp&zxet<vVBX~f}x{<I!dD@-XGiT16o$tTDegkk1JqH$H?@XMFcR}`6>675-SVWPW
      zycAltpCuC+4^@^+EmH?J!8gz#77Tn5oyl?Tph4I!6UcL^^I&kw82Pt$fpDd$RY@?C
      zsS>ezFQQm7WmbftOf!|}SBH-YbVOJhBs$B5&O;GTWxet9SIg@BI3_gmQ<b&v5}Lzu
      z+mh}B20c((<qrv4-MOe<NU#Sy;v!g_hs#)YQNy|i9~*>P*8rA>O3UZdH<3))7^8P}
      zn2bdn3Z8-ES<*J52%UM&s#dZ<k7vu}g-a8{ZdGR4!zaeigI?&Og&hamgpE0Kd)PI?
      z{nsj$qY6E-?p8(H{~ZYKD4C{X`BW9(QZn?8X~>!nHSfV77Fi~F*rm#PV253-!9pFp
      zRM^BKT+UqLJ+t8XzOlEs+idR&zpQd}pWiG#-Tv)QSnGem)ei;cn#q|L+CrV0Xmadv
      zjmd7}I-mTrxG`gS#HV3d=zql8XWaakV;>H63Xb&)+>C=Oa0~6CdXMWZ?4wik;1y)I
      HyRiQNuMEEP
      
      literal 0
      HcmV?d00001
      
      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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
      F@gI_gTZsSw
      
      literal 0
      HcmV?d00001
      
      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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
      z%0Dxd<&aBCQ<=<}kK^ZwUVeI>I0g{3+xQ!`@aN&6*Lko!%_cv?zX9dJXy1*l<t?<q
      z+6N?Qo!1=TXYqD|f7i#qZ>|~6FZA+Ds{vVS-AskJ{-bjp*4M8%*CBoVs&gID*ME^~
      zu>QAPl~$+l;ay~dL`irzocI>14BrYv+(t9Qw^Mz14=oJurRMM*)E36H47T(Hvc{c2
      zmhs>DA7GvNpX@kEhY<nq1^BhYH1YtyC6c_;Eb4m~FAn%Md6Hv9jXdFf@Q6Mt3g1g3
      z!ux4#_<j%Icmr63|Ihd@{x<*vd<5(S_&@v}KF8u^J~AdBg%5NRLxC3lJeLDl_y3FJ
      BwNL;6
      
      literal 0
      HcmV?d00001
      
      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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
      amw0@50srH(ma7%GiWx0wy@K;Z>Hh&nrgIVi
      
      literal 0
      HcmV?d00001
      
      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
      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
      VK8Lt*e}Px<Yu>yB-+qJK{{SBWl-&RT
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2hUW6g@L6EFar~RIErTYN^83cCGrRscA@Ru(UNwNPIC_aD{EQi(waQ|BAoC
      z7ZW!oKKKLtQN}y7U<q9lNXR{RX3o85?wRcGKR<r~*u@hSoZ<PY`N{ljc;~j;H(s{Q
      zu47gAdp*nZY=Zw;I2yjUoW{U(`<4oYAt#C$4&}y4_tfh7DiRDkVQF(x&30`6!nmw0
      zd(Bj0Q2dLJ76WTCBtO_A&wo8UXHXq;f--WkF?7afE<;+ZPm_c{u)XRo!)9xN3q55>
      zJhNTf-(%RWEyQSwU%f*j8+7>;7*;eaVL6Q$3L3Jw!4Rv}J7VXi1{FzxZfQt`XiY;p
      zMC%$dA-b(WLy{revR&(VeAcx_awrV>*05(f9dl$0Lne!gxFf^<B6_cQI5TLvz1p|@
      zwj4HTrg3K|KlnHCG-a*n(3huM(@`%?cBgsz&2T*GSqHX5-etlUBdur9nyzb&8f27b
      zc`6KsjRo9MK|bcM9;A16`Fg@W45j&{nTz5MSrDUt90@4G6MFcHa70G(Lq>8#M)Cs4
      z<%Fx03q}?>Vqc@|3pnwCd-_&@y#52%^|b)2dO1K*FDL;@dLbU5tQQgiD&OcNr|!VI
      zVDVRo^A||*LoD+aR`?N${1_E}g1dBPk9tvMY@kX}Afc2?B(%mP5^5ERgx<JBLUDo=
      zZW1TdX;5Ue7uUaI^(%o;hByS?mhH6gz@#0+{YY|gp8PhFT#F=^=E?6O$@NHbd7j*h
      jB<qpn$~<`xLFU+!lX-w`ig}vR4j$qWjh8-Jcnsw)<hJ||
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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�J;FC0
      zI_#aA5Z9z{v7~P?bHAZ{^f~`dWeI(zjuMrc>xkS|l;_S=&D5ksxYsgyF0!XAtG&gn
      z8q2UUT8rGtyQ7j9trrJn&uDtG=2UdGAYUlAez16bTdDQxuRlHch5a^Z(i_`~uX>%c
      zL%M`)UFb>FpNE#?)mLnn@QJ$wFZHFr$LkFGN@bK=z_qDiT`{+uMrKN>>qmhr`@F*J
      z$`?6`jY-It<SvizF?@Q>38oeq3x=Tzl9=4Bf8Qft<}<|-$Um==d-=bQ?qg6rz`f&j
      TKKJwU4nDs^`Um+OLF|74{8nwI
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(-%}e^6#i~Vazoe_2!x6jv=(a!NUF738?1!@5~M|;jcuydO>#*VHoKk8rclRs
      zpZW*zl8*Y&8J~2<ri_l-2OXX2_~XGDozd|>aXfc-(`*W62JYSS<2&bk=iGDu-!Hxf
      z@GMM@0K>5j^}4#9s%>dTIkj{_E$Cuw)--jY8X2MMtHLM=OIRF1hNR!tmZqsWv98v2
      z+wt?;Gen9NQQVw0w;2vC`yH1uo+8Z<wkuj~>^Q?<r-_3n_0yW6*=GnMv7f<sjv<&a
      zOQIVL2NZBbqUb`ef^PINbS1`f95IIYzVV~zN3ZmZD+nPhKMyH*1j7tNHDNEBmiC@$
      z*s4CGYh|M<44a}QvNCAzvSx_$^=d&_PO1#CWwWU2In~l6FP<<c%VXFt_x(twf_uus
      zZt=q~oEYycyQLz_5whGvd&aC@GYu!xv-?F&J8&sorDm@bHbl`*=kwXD8zrS~*{KHz
      z=_rokDULC!t%E)%sDfj7ns}ll)`U(tnrY0c#m%y1){PRmc$s^cx@i$!KgJa#F+sf|
      ze*NYHZn8e>@tlnRjDo2>aTZKVxN#)pafN2tgY;{T;)H_drSkzwvK>sqzM$a6mZt3!
      z!AlIIPI*)7X0cwA1HGt~E7bmqJ!@L@5~4`sWsd2GX6j=0oNB0LVJSF+R~WiwNXLO8
      z<<;gVy|b+a$1>$QI6TcLm_>$gBu^gBXlFw^om{%+6)fOYhJ%`u`+P~W<uo#c64c~;
      z1X-G?hYIvFlg4WbmT`_=FBOn6scj5n|C_(BT@kG8g>F+D#T!`TSS1_(EV-pEs72ef
      zZYa2biwylmOQ^P(uU@lnv`Rlh>9?k|wW~Vomy__Of=jqeZ-_{9hf>fa1`~O?1+EaX
      z4DHUox8b75<81}+;3|VsaJODg)$7C<?T$S0*5dEFD~;`aKMYZ=)(*$WD^gKw3vz%6
      z#xl1U81Wu1ntHuzP)}tbFUo)q&&!FPc680GTSc*;$=3C_OL<BrPg!OSLs%JIt<?m<
      z4|q=g)r%)+rFGGY4<IJ@8qn7#HzP@;v>Q><_t0&Pz5{fQBq#1bN#4c5<d^8bd=~?E
      zFqr%tgI!GweMSZWJWBs#2m<_Lg!nCV^A9n|Kf+@qR|t+kaG3t&ZxoMv0aA2IT}Xm`
      zN*5O>EQS0NpL57_W|aF8*O?V4cbRizWCw>Oz(f;IHj(hIlTD;<W7zw8uB|vpig<7b
      zC#5QOY8R)QI6Dy!#lua^?O@UoFYaQ=bBUdI?gZ8^RYCgg;&t+w{GJFQ39*p7jrim}
      z<WF-c80Jm9MM8ORSCz*QRrM8u{2TQ0dl=#0BEi4I3H}34@%xzOKVpW?IsOw?_|Nnl
      ze!(R=ukc@SmH&nkog4gjZ1X?xKK~OR@V{`A|BW5~kHgfe%f<tm8+ex_lHLYX6r4^r
      vP(;b;asz^H)G*SnqfA`NTZL|6+@zLi*r1sRV3Xtl=%~^u=Yr98G!Xa?{;U*v
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}T~8B16g{(TcS>2IRtgqG`L^BGE`BRTV^Ts=Lo^Xn6XMI#4zOgqYj(H5U-4h)
      zgJ66xn)u`o@kgjZ@9b7=+8Q4^b7$s$oOABoem(v05x{jk;7}Om_ss+I$nXy>XV-ZA
      z+}yUs!kQU~s<7>6!f6UmcpPyCz1uO6e#V;EG23<!26g*0sKK7)FDx^RZFGl4`789k
      zYB^T$kYOS}$e~bYh*#aF7y`qvh6L0UVmPOPV}v1=mky&FmLs0DTie155in#n+=gk_
      zP0y0>I+t+?g<)|(oj#(3Y<gGp6RNtcSFR(RfZ@?Vz+rO3Hc7*$+xwysRJOKiwL)}l
      z9tOr)hKeLIuHgd4I4&}bNPUcUVA+P0J%veJ;+P`k!iPW{1>wWG>$S{4!!#}vbpk29
      zYmOh7PD3!{@_(xJL{Pm+%xIX!9Lc^DW?@)}Sp2P9>0k{hYz7`p14WXfhD9tfaGzu$
      zEDYIBXt$?qM<SdF+7C>-O^7o6nlPj+e^c0`k7zQmEr#Tt>94zuHgzcGxrcOFBbW`>
      zZnqqUp(c^6NBPoGzB8q$S4wk-VLZC;rOmMV?@s+^-YbQ=<bFqvTarL;x^1r^)-9W8
      z4M#Ivmfc~{YK|kks%`qd@Hq%mrhncU(!F04W+;D*K0}sH%jqU721S;m`yo2rqLV^<
      zN-w^n<pkPWIw=^XRV5$rZ%C7^NgFAgM}~GL$EuUz3uTj;%6hRhosDM`S@i_j7p2db
      zc#X-@Crqqx^*wScNj;a$@nc*$#=QQ9BBCmDga!ONRQ>}g+DG_LWcewk_%F=TQz@y0
      z2wp~2ItZv9u0{yS%A*jnC__gv<Xc9GthmI5YxGNmmO++^Dax@-e@vW)br?5r6G@`T
      kNsCC6CCVi=Q}yBrZV%Q&YNp_BxZcBk+GQshR<H`?H_9d`&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwYfsZq7=BK7X&IHlVB7{ek;~Q%HoVIaAzO$uL=z!1A$}>_0ZO{o^a8|x;=j-j
      zg7JgVFMjYx8Q;@3X1b+GPy61U=Xu}v{QCX%8-R7}$dDM8&h&Hrvf^GC)=A~XfqrE2
      z#fI(EQRk-lnp++2a7RX*LF*0mL}aDGk9FVlg0$XvhNO3DxQkVWiM`&m5TQo?O~W$0
      zErzMWpnzhFAzrsTd<YD~DiTPh5W@`>GDa9;g<>m3o>3KJ$S_R0+<R_2#(UfHbaTfv
      zPOL7sJgQM>ic;x4!{RUf?h$tat_+zyyRDlo-7$oa$QT!-8CC``8qgF{F@M7Q#n<ib
      zJKGB2w+D&~%2!OCI{xbDjJLho;bF5`49)t5SNU6^CPdGwn8LJ-Inpb78D@q<O5rB*
      zGHy`|0++`xy-Fx_*LJ$Pr{XpisD(tdX}O+mwK>CVAp+|QC%_yQRV-ndk~+a6v~<&_
      zB<guXz!g*!q0t170|16>p%Ik}B<*_+?GhDYD63e-8iP#ZIUr^twnuyvDF&1X_KD8(
      z5G>OZ7WIfBWw`s?q<--Z13P3;PIY(JZu>N|m}6g%u}Qqzw&`~*G2;KbMH7>(V}|L_
      z)32T|_HEy3^IgLv$;08gu8BGfYSXf~Q#W<j<*tlpgdiOMULG>`UmxVD88NzbY;;tt
      zGJQ#8k)hCgi2ioyU!pUul|Cb-T|?F6E2KXKf#dWZ5$Q?>2_=moWegK!Qz@BJki{gO
      zbdxY0mHSDhMcJxWD$i%**+e#ZjhQ#)AIN>cT=_e48}b*-Zz$S~GDARjuCQ{2lJ=2u
      zBnZ3(q6TFNNo5%+I!BZhWR)UviiW&W!kV%gaCjTyL>vea6_O`-Rq0s|L{)JY_X7D<
      x+^4U2;C+CH)Cv*zh`y4vcH^{lkBNDn)IPxmF_2KB2nm~bN~hQ;hAnJE`U9lP82bPK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZux*>2N76g}fCc2m=hrdtSv5=!ERx?v|>Xq74=sA6eLKou|3bke$VY-Bra#Xs-?
      z`~^JFA|4PtA@Na&J9dO3r4ROu@7(2_bMN@i-|s&Fl(DWtVaOlxV}5G-Czf+yKHK4Y
      zw#e6Pmj_j0+grlf7oPA`#2JiU&p<kw8=}QKb`VDO`ZFYhL(9)EGK_EbhD8OI=zQ67
      ztYDR4vT%_@vB40py8B`P41+onNTv|OB^@e;7-EHDBSj}8Iz}<ZFyV{fsq0xETqof6
      zx@{deZQ%rzqfnQrhBqxoJnyvkgco9E7~6E4+-`8sl0>@3xCG5GcLAb)O^8JHK=gC3
      zy6yL_6INflkXxADv^nYhV(&;agQeZwdc7E#`AJ~@&#)vp&*+%Ml!_}vLrNJ%hAm3r
      zDsn2WkpSUIAWj1_qFHmjHV<@M$1Dj*IO~odaHlC4W(wU}eeP5*gS?KLm}5w_<P<cx
      z-Juu~ye6v^bQEDw`&washIC=0n=K@?9e6ZHl!u|D<2Du;RO-zR0h7Kx)VrRtJBe_Z
      zXg!XKjrF*76(Ts6zb$N1OYAeST?Xxt`!%=Op@zjg_k@gf!qs%`PTOG^?a2{pMeS0Y
      z7Q<9@(9fMpY`Yz=DQcEYj0dApU68^u=yk^tUe)HlFMJhGXn^|1nyU8Q9OOuf7~MBE
      zG9ss#b_!WkX!IVSuXXxXXdO1@zanLvLpRhj41Wn7FVlNShHEQGXcY`-%NQq{PQes{
      zG$v@JON6Ozy5E#qrY#%urEEH$PNb9Pn0{0Gh0G^pOFxmRsNaySXvVZQO@(fJJj1Os
      z%p0F6NP#RkOW2^jL{fW&6s<$r7Sh@dGTLk8v<6J=Z3yCBRHzF={!vWgCxMl*NRMPy
      z#vR-Z`Im8zcJa`59}h?idHRrcNgBFwnz=^=Jx8P-qe2K2ERlzTWvtLD2Z~`8Yf%0H
      DKZ6+z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxT~8B16g|_got71_Qa-FGO2KxiEcH9q7)c4ShG+t$CVktM5tdAMb$1KIU!X=G
      zjK25_eANdb@xjQeKgxJ#7tIoQXlM4$z2}~D=I;Lf^W!Ig8t!UHFidY-JJz1*@7m6$
      z`FP#xNKtBbU8f<WToulS@Pwx!#bCq}1C?hkiRV^d24PV=pCJ=$*?wt(VPqv<7U9?F
      z{J!nj!2^b|@@WZ`7DKAxZip-x26Uv6$svg|Iy4M2B+Hdnj!uSkoJF2t)EB`c*Rx-_
      zPGHGJX>U3`;RJ+HZYrpu726R{`n`_uLaq$?6}M~2mgU(>$Wbt*NHffw!svu0q+xPX
      zoRr>hdoNrkZ2s_6X(6~NEpq#5XIpfGdb{0hR-&-A8<_tQ>Pqr?9b*{RaDmjuom5w(
      zEV!uS5~dh5vOvWc3dh^3V7=1fxWWKcQPMGk*{EV&?2$`H6%nbmz@tf^3Wjue%e3xT
      zvM-crior4N3_06h6Owd@4F=X`;9Hiz>~{O)WYTkYDcGd@?z*zyBX(Jv__X49|7I^F
      zN_cB--|LEHTT;h?Xkg}5Uk1JDIKpd4%lCz^;WjafTN34xPYNkMj+i3ZNt$^!Jgi2E
      zb_x1v;1ti&Zjqi<WXPENj+}7--AL|Z=v$b0j{XN#IS-KLFOlUwMkuCJF_oZzQCew|
      zF@6Mh7(&x4X3SM53#mf7kU7A_v+5y=pOLTrLh+tvOlbR<`~q$;T8;eWeM}o)2`B;8
      za8~i+uaV(zkfU{wzeRz+Ly^BniGM(ae}u_Dg+x|KhkBnQB5HS)G%9j6lu-$l)nH&Q
      s^q__+?NZ_CHO!MAD$k@{21V++Ku`2xz;%iza054KRb#_&3wMzC3u%`38UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-}+b5Pe-fc3D?JMDR25fDzV2^sF%<7$b&wP{X}Ig__b$b{94ND-UYo!5`p{
      zGENr{B#=p_?aX`ayw{)KuWtY+*tKCX>_74+{?dq^r5-k}?|Dy&>dj=_6Jbjzbu08h
      zgd((&X7FdBu|YO2!~>tGIHAqr8M5(6M%816QfHPnec_b)XHv`foS{-%1gLiz(yd@1
      za$s2UkU`c(3d<gBtT3c%^{z{uf`?TU8Oo7}uYyp%20G@dspL?Pg^uZtTH9Qe??^4C
      zvXWUDik+a(RhNg-2>CCj&Cm=73np4%3aN1Kf=SpHmr@BDb1Lr0=w<NQT9b*2N0EqZ
      zY}1qTMo@9yZ0wP;6#Wq^6pV1Qqp;yn&e5p}ivq~|hwpIxPk6rlf&3elEUZypF?45y
      gj3bb9hA2_ZBQjC2j&g#lBzXgyv>GcJwy*>14`aK6bN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fEZv6kVrO4jo1)SOt|kwX~%$BA{RqFBL>n(TKssw`qH%LxvfgnO5=1XpEP{
      z5Ae}XFwvU$V0_ZVk23DL5Zknk4>LX8XYI4sUVF{?{pZ_v0CU*j2r<m>s#W!=Vn5N0
      z9p%=2wV;c*_s*GmWzV>4nft<W4svDH*by75QPPFQ5oU<GiHc5P<xXK&6djIEhH)=i
      z5UOD-jk$Tvc7!1;hEAuf+3~Xsv3zs!EbXsohUTm?3?y3tQrisSoLLePFdUV^(Iue+
      zy)q(*GIS(eKyO|%#Aao$AS|yNhW@-+RP}Au(%c?{VA!R?u-Kx`e^nr+J^KyvFiiT4
      zl~w|*RfXYXQ`-^-af;(4!$@1PJgkh<7@}5ogmWn6rn)Ccw`9sA?5n@!STwtA7e+in
      z;*qc{QF@@2oU(*5OmK`hOv}g1m_(ek7LO~cP7)jsnAZ(7n|dfAfh5Ni$=5t887ZWx
      zCh_y++z@KXo$o|I@6c6_D|p~7ACr}k!7Rs2ph0`23<czrKB{p~*xEDd)Hfzstz{XH
      zi4UPFgE%K+9t#W+I$_JKSj8s&eD`KK&NB?xcj@!4JJ4mlBx4yDiILsRXrj@tP5IvN
      z6IhXP$#rU1$;_(<X2oF$i7LaGKh*Z#p>dT1jeTr;-N>9BMN?-OZLoGTB?iftWnI%r
      znr{CJn00kvkZ&6F#pZO?wgq`)tWJwVM>bpxWH+iy&k?X_)crE)rU}s#fke@6S}o9j
      zHzK8{zd%lZMb9S>(?{=4!hl!NPixs-Q`RxW=$HJ76Tt}|DL+iH<>?v*`iE;6{QxEX
      z8FCG0ZfAaCGE>9!FAUN4+z%{nW@c)*;O}QMjMo1OCWsjLbIAM!V*Dir`74a_*O=mO
      zkl}AJ&);E*zxN2G{h|RODvwoMCQ32HaRpb2)D-$~4LK4ZgzH2wgf*;tO)$bGa0B=Y
      DT%~du
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv%TC)s6g@W&oVX?luK;a%2S|d1=^DhMk<wB{Y(Uvhk`W9twlp@c|3R>3!9y(g
      z06q%!j!h)ovY2~EbC1vQoHMU)&o2OeVBJE7uyi8M#ibiwDF4X)b0~VAti|<EUPf&t
      zy@7=sp_+ybXM~aHScSDM!el26F-+S$-%-Abb_vt<&j5`sA=e59vIxQ#2YHOx$YRui
      zg%TlKZ**-`Fm7RtF#f-Sg9%I$oFf_i(rVBOyg)Os-iXCqaS^%k*|v=;W-Lq-W<Rq0
      z4D>+iw&+KJzH%^&uY^ipOA*PA@?|n6Y$iYdfp0HS7&_OBdE5lgVubGw<}gnvhB6w`
      z%%?p_e`KsE8`1r<)1K6E2z-@J&=+1;Xk`q2Kg=1^2`isC`cHVAfPE00>Aq|$PqM{H
      z#GA$gwr$V%rEYm53?=iG(!pbquaV`qLY0aM#_V`mC~z<G?l(^}+^fxvd)UoKIL(a*
      yl=DxRdce0ko@B7VwPaWdx5yW+Q7qgrFW|&nRV-mS#;wG)hE?vyK8^uv$ovJ$1*$&)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah{T`vPc6g{`LmbIwQQeTnuLEA)mBNZY|B&6}u#`~xVBkiv24y}L1gGfC10e+OY
      zv(~n#c-cGm&N*lAIlFJ~FRuW$v1TJhC|rv>(JhA^<z1Ff8nUYo11a){&87@Pb>5Q6
      z%!WnS>4$4Ze{!mR`^NXAr+*TY3&OCzQel3JkgfHLB>EMG>?u#_eL`;I4@}{VU{(DK
      zISRs<i!_EE3}M`bjR`{jJ8!^(6{9d&Q=UA%ZJ*1aA=o2fy5=`U>r4d7^zqO#8xu-{
      zcll}6<i;N6E~W0JSJy(zy3~Z?Mj_S_aki?Z^nLj^wqhL3yO_Z&Asre8!k4js$pokF
      z-v&*2q>QnNB;QSwI>9~mJQ-A5A`E3{V}&;!_&EqOz10#CtaI)|{QpoUW5VZC3KoYy
      z!t+t?cDYY+9V?ce;1o;Ga33SkBtM<#%41?18SY&sF%(mn=E`rxY%FuY)yUYzXUx?~
      m4}46aC(&Vv`$%H`6BbLPxyxc9A}>aq9G18`JRvM&71jsP{lF9e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_hd3;<~b^h+t$TJ!}Z?dh}nHhP!D3(T>mn<Y>J62>To>;PtWXsrrB;%PUX_C=A
      zW#-9NAZ4e8rgSrHNkU9m4K!^NutyPwgaUP13N3qE(w0zK3WbzH1EE{WckX-hW+aW%
      z_V?=_nz!70&-u<d-#zEtr_a6k@h1UnQ`ZDxD6F|FeJVZES2~?5jQ8Do#F}yXi&i>_
      zfWrFPA%`RG_<%h*Wf!c1qp+f66?5tQs8uZG?84F1UIlfl!qNe|P;$}*XEdFkwi-Y3
      z+1u~>#O5#C3W1`1y2Lptg<!_cPfr&36w2oc*0ExGiUTJ&;G|EE<X&x2%xS(Haqi7q
      z$LwNOVad*1A?NH?Xz1u1rLX}zYlT4*Osqt!!uF2AMTqy>ndwPlP3ob(e418{I7J$p
      zOr=E1@<D1pI6ZmNDjrFn%u{X4pq-&jX<Ei-?`6Q5$Pw!m^ECMGN)m*te4Yl4QXD5j
      z1=_q(g~kpS!xeSbx+85bWs-<*$l4i&$UIm&RKDS1G+?uMsHKU%y2`|IG>g|dOmrea
      zWEsZWvG!VH>FK;PM4#prVjZ0?DN>=^L=WN$%_YmJ=n}DgCblBNF!H^yN#1QYu>)7T
      z?}jx40v&X|3|(vDIvEOc`ap#dOVU$QRv|0nH<(BY%I5L;YId2}jT<SF??sKmY7g=}
      zABWM8fgo-oRTui-#9r(psq$7~+?mj%N;Tsaq=MM5u<o)<GI1*oD44kd$?v#aQn;og
      zwK&3yUD)rCdnczIYs7MroufevDO_1aHauN$a+B7+nT$2%a7Tr3NTKa$!J3(}GLDsv
      zTa}TxoyklWi&nNbj6u9y;ybL6s6(V0SVtzf|Af?3EzUh+;wW0^{GxR#ozG=SgCLG6
      zv@bILrgT<zg<$f*apyXAzmAkblaEYc%VN9htxpE=N?Nx_*Wr9RSEy3zHf&aiGt48I
      zqMgs{Jy}d=?k<hytkY9=(K(jOdht6U3{RU_ie<w3jEUQE2OT_b@locGRDq<Iw7@`n
      zE=!+w`iALbCJ6e6yDudk8aFW^EHNp9%-wJ0#wRqT?=o?>3@qb-%Uca2h)IQw)qtk*
      zd22kK?=Oz)Eadwx1ZKl=yO<*e?bZ0?bjgXIwBlCInXrm+?Ui1gm3v1dH&;?>sdseW
      z@R8I&|6tsH$!Yr!4W~{VI(VdiFpNCz5r%MEHlNCsa%6y*%01(fW4`U2R0E8m&E|@n
      z&Ct^{ntQltjafpyYCtNXaPxL+WhaW<z2tL2szXwObFYaon&s{_CQLL3@e9mA+F$b~
      zhjAZXCy?7DkZ&+?3a8yD98C@6)1^{sZwPNDb7k*K!8*#4682+J5|c?A$qsJ9k^CW<
      z-mNo|w5m^mjuV}uAuN@Ezum;I;@602j7A?W+Ed))_YO>u6|4;P^7IL=Wi1-Zr^mS=
      z?0i<&JmwoJ6lH$>5~JT?Vg;7zx;cL^gcUA+mK)cJk`TRz5S9zHhXmSs8db1P%N%)k
      z*2KH<h_}?X^LOWJGoiTji2F7vv)^mteR#j?mYZ#1|H|4>$t%wLAU+htxk|>YkzwM)
      z_=rn+nL1=Kmt|NKx72JQEyJxHeX_J>B1J!n-w)#V$U8scHRC4!0FRMwnTd4K+tY!L
      zfllcaCM&91tAwpt$?_{3R3bWHGlfbTzhI(_S=MC^c(rZVww-->Z{J7jRXA@n*^D_{
      z4C3PoYxPF-+9O?9y*Va6A^U$h#d~kGYBI+|GUB9*&Y`g}#*zGBy%UD|34jb$_(KyP
      z!@dwcLp=xWLXS0*D>>Zj@jNYw7j#n+#wh+scETlv);j5(byU#)v57yy=UgKAHpZxR
      zaW1Yk^7AIXP)TF+0Sg2MLoS|Sx=)kE%&3=_>M~zKv9FMI%@=%MHSx7dBJ~Gc_sQHt
      zW0k45;4e-56~5uh(U=a~rJS37>b517VMgt*@wY+zO}*+}nPlRd0;7pRs%rd}iN6z#
      zlFSLNGB<?3r>V9MVcec}O1Z2Rx5wgaxpX!cyS`)MAMxZo9;6CcYle-5yHH5~PbR)!
      z(dw2E4!iwB5dX})qPIg$Z+g>oE}ylEA^Zymk4#wc()83+KF0=N%JW5cJdEdXkNo_r
      ziI?Gdg=i((wH=TrDH*~~X<v8zbh;GJ6?C;{=kOeUCX4?~p{EYDyluP~7kBb=_zx5R
      zDIFM_fJzgzq@+7*zN^6G#w=P>`E<q_mK4g3sg$V<w9x^q!1gI}tg$3Jg$)>6J~!&s
      z3gf0Z6*Tb{?BkYEO(uTHy=yipX(^X8Xp;RS3pO;hj`c}-IGRd^)pE5msF-85t1HKy
      znklAgQLEfGQ__SKG&Y~EQ!3N-_SZeXe*{X_*<Z4j8rP^Rf~s}F0ZWUJ38q@B)-AMl
      zD$Norsp96ail|snMH#ayH-^&AgsIvTYe2(fniSLL2bvx#TK9Mvvx&DAiUm$-E9ReB
      zd<0CI%>~QKT3K(Y={{9fuclx7Ga0L-`vtZivQnYbcXQes%;j^=y?u+OO1)Q|rb?(T
      z)|txWJhO=>snRA^hAt;3sCuZjHV^yfuFX}g{=2a1Ry>5PR9m@u=LgWA!~U14a>Sl4
      zW~`fYa_C#;kM)Ws@-|f{SVi4ySgdiY>S)3S=I{odrI+AJH1d~~icbbY{9~J=@7d(&
      zD|=FX<>^ab*$40%=Ng{O_`8Zv*HMb%wJD)gL&GdqKdz@<!QU`N0uNL4S*+!q=}yEt
      zs)iO4@r3kKh|HysuDU|bQOJk1kXCo1CxlB7MT}wuQ=2F50L6)of+-TMgXuiQUC`p<
      z?!+2#;skAw^m<e#g4cV3k5X{J!x@d$5&UTi{)`r!a3|IXc5w<~QK8M%DjKv3@v8W<
      z>WZ%V{`@>ueBm;#*no``BZyl)aSu~bBgOV5X0a);B6I=miLR#+PL#3b90FZsbah`s
      zDA8R;Zz5L4w#1r18P`;UxRL6>;ugR=i2E6a?wj=Uv)F`hp@Su;7vI)ku6EV<_V$r!
      z0*0z}gv8!HZMj6IPg@?~_{&fs!Tr=BW7~-Bdj9P!V^5cw!_5Jl!}6hv7(Cu`uzMDV
      zpX$1VWkkN`EP|Xj^0-#hf;DVA3<&eCB(Z@X^39LviRTIBr|8BDJmvqaChFUKu-oto
      zO`=u?<~UAJN<cm|cs|_DXE7vn5w{(m#j76Uy{kvI4>N|A>9RZI$y9QT^VZ+MtE^v<
      zIFCCYKrnEQxMy+l(FJmr*2r1m%gMs><V@2&!oFBE@CZXz#@M6L2lY+v(Tm6*Zz;@T
      z>M37nt3*U?Mx$y+SY5>)ehXHqPOZdcXUum%3`LYQ$QT@toiR-FPT0wVj0fQk$`n(2
      zXv)l4Z06<FXA!%I`;N;kG36#?NWe|Z;<b;_&evD{wM+u6l7zAo9cp)ty*<9YZ^VtB
      zvL0SVSwqX4sv=yM@2^?f;4fvp^_KQ|OB)5%LO&1JEN=7{^OKIZc#P2%y0%5$g=TT=
      zEPnB+h)8-j%tYjZwv()@ut2j--OkUCcfeF>tX3JUQ(45+nAYT`tTx}-ZJPXI8{2|9
      zfM*s0w(A1s=c)e*@Qepo;;{(uYY6y00)8z4zn*~KK)`Rh3}81YD!kPvb*+c*TnPB>
      zbpgK(zw80N$J^@b>C`(Tk09{4-0TwH-kE5*KPpdU{K`TXzY`(#0GiZ8B+$Fa<%ijm
      zxuwNT<LiAFug9;mR<T4f75)Z)Wdr|aUF>HTVt31oyPK=*_^rCw&s4CV(b&%<T7Fxw
      zpQ(fWW5j-**vrH|OYBb&`<!;u{|5W-)Fn#$LhNqoS&03eK2d7@-d@4puCcc#S{@MW
      z?PWZ;(C=R)_Ae3pSBU+q#Qrs6|N3RHbIbUCmns*KZ%$s=4|p4E73uge|K3x^2L`)V
      zOqTJxRZDc&puRz3K2t-+RbFUKwkwb0qZFv*9O?<aUOxlNDfId|oL4;MJfV1sscca<
      zYdl*+%jN#Y|0JFyF3Foxk4AMBek<=K)o!K0Pwk34gis{<ek{9)(c>+jj?Ch-Px+c6
      zb9mao!Jaw%X{|;#`+kSn_q+7k_qe~lk52Uijlj*mTYa`}#h+=fHKGfDuCs3^&HN(1
      zq_gjr|G)5kWih@V6W{a1_Y>lKf%x3=_<zIq^*Z?8M(;^2Pl}s{BHeTN3yH}y3hzOS
      zJU;6`x=#JJb}9!LJ9_jVjGExNu6z-VOv<Ybg-wQmUL#OLz@+cWB);pp@><=12m$#u
      z)Z<CYBj8HHsuHk_?^T(i>1Q;-G{QCXTj|rU(Wl=JaLE(<1goO3Wsg{Uut&O+O9)Gc
      z@*q=NPt@;XHXM_3auLrRZ~5UYeiSX^$1Oi8<ApN*T}rn!GHcjfZSWhJUK#^~ow^Z2
      zlhKBy#(KISjx|O*HW*v5(da~<kwB8y8;$N7cJ1+9vIqaAn;YW8i<(`H{Qrb>XHwh$
      z+iz~4rVY|64v7^v1fsF`VN-Nnpf+@?V)Fc~A3MJ~uH*D*c215Ky!Gu3921jvU_TD{
      zCSAn_7{*pCF}9=G*nx;~HM)#zu*0|>yNw%gz}SgFV~;k)Z7PR+Q--`|pCDC(Hbw3N
      zylY^`cZ)WPn^-ma4a*!&l3uVsQC3T6SZ-n`?{xDtv5R+Xgw?WxJq=~G`u=MJJpp}f
      zlzt|%Ch&y1GP<UbztYK2h}-n(j@USWurbJ33?XJ5M7wbaJ;q^NXS^J{c$MSMZdb7f
      zK8)*BoIv>@5j|>y1|Q@1-i>M#!M7u-HuGJ8|Dal}+IiPVGp=IC=AH^}<%qOGYZK>H
      z$J5Mn7ghK1#H{MQpgQDL6`gLejN1@2UWrx4t27d~AguL}7;2l?qPD9YyvhfPZvI`3
      Gz|R2!975&*
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$T~8B16g|_HZo6)&6sQ$YK&mNXTzIY_F$5A#QIithr`st^-OePtQ$BtcFPQj1
      zc=ksb@60x~iFK3RnLGFFxo6J#_50@ofCIeokYi{J`4ztj(`%_N!p~>o#+*nI_nQYE
      z3JmMBT|>>#B0fe&YQ<3eAeA(S46Ch<1%@#vlCDXJtG#>9P&m?k;UkZ7fCUs8svW7s
      zm+`14k~7|m1w*Z)BOaggMA~|CSTL6|Wmt2p^Tf3oo;11A>UN~Z>At1;M*vOZPUtt0
      z40JLQeTL16P=0MfaV3-qv%4JIJxTVlj8zXSG~4mb#RaJ28AJI(n64ft5#3^?wL2r=
      zYi}qb)AsP3p+4*2)L$PBtOwY@3x?%^Ohl$*Mryug9b9lK88$Ndxq8TqvdzW?M~VK&
      zHG=t>-V<q^uTIsxw;~yWPfCg8DCTJ@$o}fFiejBon5V*A>OS_tC`<d~=%qlZ_GouV
      zwLK}m-TQ&ko$LGb_1)=!kQ5iy^$djo6{-l2MO3NB@DxiEt}d;1MrH3FwMR5g-`!(v
      zO1bEoLzM8HXktgZmHqISwt|<~B$^Tp-oiEw&EpkO=CFe%tv>Y_tw0U0>06*I@CQq6
      Bw$A_n
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OHUI~6#gz02FgfFMdYECN7YVw6z~B!2tp}FQ_zH_3wG1#4IMJf)R`&ZPcd=t
      z+C*#O!nk(f#u$w;{uJZ6GeZz)7q`=U?z#7Tk8{5K{rCyM93D$(V;J1m4z=T~dt_L9
      z*{4N*>}?v{tfb~8L>S`YG;3;f_N=_mbx%Sk!<Zi}bIo$I&mFtQ9q(nXN=dw6xE{B-
      z!_etf4L3DQ1q#h8sFbs8ScbR4Fp_SSq?8yUIlIEU!Ei~2gsv#s5tGr4I753{B*Y4a
      z#kcDRW$qNUvdI||1zXq5lI9p<9|j`=62owdTB&)0)LT2lhhZXsmTks1f5<IQRZ39|
      zVpzfuL$akZey)rWTqC@D+&j^2TRR}U{b|KV6-d3~Ipl`gg(QQ-EkU6Y#VE!ljGgf$
      zNR%;w6sgHy)HRa`UI`)pXPc_*3Xr#C+(w$AhX8EzqmpLUFBA`aRwZN@`cCa%w{4RQ
      zk3zwejA_g;$mJjwK0{tmky%jZ%rOi!cU{IE++~Qm+{*{V$lvs?QtHBeqPA1D9dCoX
      zx?|Kl!=`exSd_7Z2V@Q1DN@CvQ4?)?j%TQuXon6id|?<3ByH^+m9~8O6Bos2V7r8K
      z$F4g%-!w#1#ZJd#MzA9Vo><iEIa708PQu6XmTuZEdAG&As$G$h$0ozL?r_cHYr0@`
      z;`{k|SvorcL9!ZlMKcN~qo$HXGzhdhz~XT+AvE4?w7L<cXb=5cq`inlGn4NjXFj0!
      zt)J5;V*Ux;W?zw@y-asR^fLPCODba^eC0J|MkuyC*}&DUsl@dLZoI+}?QVXC(!k_O
      z<{e~;X5V0VDsj(0?h~;fWwe2X)4EAQ3igfaen&6+LDTb-y7(8S*>9-qkB=o2)C;jt
      qWvH|S(*-=l3gH<deo3qn|8_hgY;9P>I(-Fm!2|S8j(#Jg(#AjC^FGu7
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{%Wl&^6g@X}>f*X2ls0|wZWe6<1a_bx5DKc4C}NW~`)PXB4syqpX9DFf_z89_
      zU{O_K!3XdeEclFyYuDgXTCwq+J9EzQJ!j_o$=7cH9;5D~L}<QIZ`EPTzSCy6)!XDl
      zx1l-OslObJ*jl|Eak1&cBRn}vaDqQ&b>jVl*syWunSTxlRm+K1(U23XW3$zLMW7yG
      zrV|_MlyO59jk%nBxPSEX<Bv~-Nw=qM{SjfYfA*)vKyAT1(?+}Jgq5|+K<h(-*NJ!d
      z3S@>50j2{?U^YaE>xBB>#0xC7Q-w-j8-6|B-{xdfNi2lfemoL4N<2xQZ+hv>ga?-l
      zb3UCcY_T!F%dUug;FRM5J3?b^Jy%lsh3H7T_pN`i?bOpsh(#<B%95v(5r13zFPRVw
      z;&C$K4V_x66d6BEqbG!2V>szV%38KQ?h$Gi-w9!^7_N}PT?v0e9$pE{C}UDOKkKHd
      z)$~TPwI??+BPUm-dn(A1)agd^2$e?j7}vgJpgH*l*-=k~x|o+f6p}zu!-7<KFj&fE
      xUPw)4{Khes`_0d?ETNDXh{RSVQ9Fg@5@qRb;ATd?m2qz4j?_SQNW84V`vp%e)jR+I
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6>rN9<5dKanENzxjs@w$;3ihHbi1#AemP$$*AhguP#K^WimL+9ZcTYhcK#gzV
      zKmRI;nE1m7@KJmS<LtJv-AK_NyJzRjd~^9`W`F$p_8q_?G7>xti~H)K`dYD$G`*^<
      z7mRAP##4163_YAIm$_wWr5bnLOYkx*wZoDnOPFd|{DpHXB=j(h+dxG<5(+=$x=^x$
      zALKMkaGjeBL5rK3S}StX(hPkkyUM`U8T!(OZV6QvMYUGv-S2+BfBI(k?GuI`v8P$#
      z1#+8fPso*Tg3OjRT@xz|laX`mqD2O8+Nf|J7(y~+^!d?+i!uTjWVr0cx@${Bi+&7a
      zRKf_uXvbV+jA5LiU#(Q!g-<n{cOZtm6DX(Ye4~C);$}gmrcjPKqfBI}L>bA=ORr4{
      zHK=o;of=C-4OF>kwSC*Lqs&F3O<!trAhen$jup3E!iO2mN(eJdH_AWHTE-l%QeO+3
      zYiqg8^VCkEu(`ny{+~cJB^nJ)UZ{en_f);gD-087@|Uqk%xO&=*CkwI7&&A794i^~
      zP#6M4K$~ZVu1GZ7i$$WpRj*^<!xC;uxXCbce!Y&hjN7=w(3{WXGU-Bw=6d!YwK}kb
      zpGNVXjQgPGgkESS-!hGt+!V)+%1PNQyhcPQd12BTCmhd;bF*36=VfumO|)ni@Ic0j
      zotKo^NTzajTHVfCGK@8xxEHm-Cxbt4)Xg$~tT|KY+O~O{3<f!?(?X|fs%3GS#^Dxu
      zE^Az&`nu@phKE)|LN9&$==bD-KNz$(kiKnw0R8k1l9VEyht6Ou{sjZE_*Yzr$4)Wy
      z*+E^RcYqK;o_ub>k8MnlBomr2n8al|8K#`bw!e9jY@PQ6)1T<{!1mGO+&yc<djDV}
      zh?3UE?!xQjG8I2X%=>|I3N5e`+&IPEkLV-e1j~$sR&F6e02<X<!ysN!HkK1(sNts>
      a1C-xGJfbKbB%Pd6NYiOg1CfbUcz**L&V=j$
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+fEZv6kVq+tqcQ{izpx$1+)y85pSqP6bdFqP!g~S#FuF~z`!tLW~P8I#4pf9
      zpJ-xy&`6B8kRT+O_@pm>f`7o1A7EnKXQoPx7$4@Gz1P|M?7h}L^X13xM*uw-iXgzy
      zv7jw$tE#i2n{(>Oq%}8Z@WHI>T4rmZGiJ?jBZ3e^V`0J&pVhL4>nC_I3{i*Mx@M%f
      z?dX<yJ2}L_Mi@#Hmg%^f>83Oz%Zv8D-RT|aAO6Y^?$b@(?Pmza+EWan1eKByM41c;
      zB@E@Gy2)>5m(tvx)Y1lLs2sI2R6wIL<mbVVJFhzoU89Bl{fAJTL2|e|Zga=sGgLb^
      z-JX)bP$T0AjxrSM&af$p&>^)qEzas>)aTFgi2`kq(J0V}?hM#Vd`4i+GL8#O(wzxz
      z@QmxjEizhB%}_$6f8oUxep1FM#Hc9A<nl4iStR9>;vz*xhmayVtJ{1+oF?WqbB@nM
      z&_xXi#;UgBs(hK7t~!u$N%&!5i)&RGr_n<L&^$b0EiGv#@u~EbQVqIDop5cMe_TQ*
      z&I;MjF~nj8=eN=e)P6i!0OeDBy)MY;#YKiH(V$;{oZGXOP=cW;f7O94#>LRtUHVAf
      zAezO}LSCA5o3OHWhF{mcq5m<<Zo!#BPMRjS6NX0fb0QdIsQu^o87lsI(KH_#Ed36o
      zB8m{EJwjdphY%v0-XE<pAu8>R_9A5mrJG(zIjtfASVNRn*$+SkD#;@)P)(~y-lMnx
      z?e~;z9L^!MS-%d6?Ajd4>T@XZO@ec%Bm3AosubFr))5JAAQalh3Cf5nQ(I_@+<%X@
      z4U~CK^!pll6xvRy4Ss5k@&TPwN=0x_*+TaY&TQlSe#3)as}G3fL*n>|-t1#E;RzHx
      z#brE0Kc3?TULb{+n8qt`yul*g!o)jd$zH{#cSDU&C{LEC;S%Kwjp)VaX%}i1e@*-Y
      z*w<|LK+WjC$S3zxw9qW9)bF5gpMd0{pJ-U03mOUkZX}E=ULygbA}U_RHQL2b#4vya
      GihlxMC>3%5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8-%}e^6#foL2!sWM@*`0CLnS5Iw2f3-DXFy-iUa|*5G-x|v4m}0XW1~>jn+s1
      z3I7D2b;g1}W*py~@lkzMpY>fI9nZPD3A+%+K4kCiz2|)QJKy>4o&5Cgx8DPp#-k)U
      z2xA`_9~qAe?#Gr>Ei7-;s#V*(-SE7clSG^_9$uc?cD=e$@tW(MgtPv-QK^`&Yi(P$
      z<$Y3^3%+cV@QiELEyLb4>#kLE%B2MYEfad@YmVy~j<;#p4KwlUXS3IruYCT5(0Rjh
      zEbk^Emd$Mv;`6l~GX=)cpkaWJ&92Cn1>0c0>t3B{7u8I&hEk>G6z@xJ|BB_9YmMD)
      zv%X<$3z@-{T7|h7%!t2($+-7{<q}RuP$Ehc38VhD%}wSi9#>P$Z3?xtQ0tYqaSf+2
      zLg;o)&kx~h4Z=_aJ4hxBM?n>HRkX!52-~puYLzh3CP!7<<(jrx@ys3G@_q|DqLae*
      z%*S36JF?osj?60TsizWM)QBOSM4pfjQ;&!_8TQyJch^oqM_S~&tf7Dx2waM%RtOW(
      za((BiwLttU8eT+}jUu+`W{|5IuHj`uVpp));1LzW06n;lViL35-7wowh=v<@h0w!%
      z)?4bvv#g2GeO1FP%(0iH+qPA8c1_2-$5gV5qV!NzOyHjj+ho7{%IC7VfYC{ZCI~G`
      zHFq>D;x)oRGdP4a^^`bClnB$|5~B?{BpI1cVF|B`wO9C<N81pI<3<oPF1B2nw++{o
      zBR&)q8L?6q-X!#e+h1m4J$pvo*!54c_-9?iTUcWgH1>83&n%Zx*u=dg-eymSYbcji
      z4acaObq!l!!zUC2!psq>^R?Z*n!}wbHg)&!x;@)?RA?=hOYDS)N3KH^;@d%J5Z=}B
      z9^U7@xZ}e8h%AwKB};0()~Hv^MN8d25!o(FF)Uokam>0B&g5HY^n_-x1H!_o6M$!#
      zQjC8I{*5DvE*`u2Ztp;f+s4@F<!2wyTtl4SfG(XVc7XmbRn#CqQydNa%-O%-6u(Ix
      z$6*M=JPO80fU(Gt5}VQwFskSGF?NX3$2@@Fc$eRq!5<1~#E%Y;WTy$7VJyKs8(`kz
      z48dex`F6biWL|%T(3-r2;W?ZS&_oBRa+%SDhoDWgsq$||`$wUj_v2dJnrMRi9G+)R
      z!gBH$%X~ZaSg<6~2`n?X5U`v&#xhTBSdzwQy(h5r(V{G~$8j&V(UQ`PJNCc0qN-p0
      zK!E!xYZYfzGu-!_{vGtK16<t4B|Xp2Y5gm_bmkk(bU^Rf$IU}ajH8qNli@!R7tl{r
      z7^W=FQ4W)&D-ya7+G;@t&EhhuwPK5mYKB<+Hs(WRibd1B^TLnlXGTj~Ol|oI7G&xR
      zUh9BZTbYusa@jLDMYC#G-`?q#y;rdo;9lZUaASjS971%;6x|7>#)8zi+)_bmAxKRy
      zjk`ya?}m~St$jCIM{`!m%?D4{zef27JlMxOhbpS$Ne|FN4?{RwfYSj(RlAJ}kAsY~
      O#8h@zS)E4{-TwjpV+4u-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{+iuf95Iy5Kb?Z7by`<2VTT5sYM{3{^1tGOTh*VLlHX#o@fVN@PE^_V4cDVc%
      z7oiFs_y9f%F>9P#3Gm|a?4EPx%*_7y`RzM^`*1B7gss=&jd)j$-YWm3y4MZ@Z&!rH
      zoo-h~kvjHd|Hy(#sEmQ@!P$A>OFtfk4-N_WNQO#y9T`R{@Simv6KIc+s|S7*3qS4%
      zuP3vg&ljH;o;JP`rs7i-74H$2n`3oSQ#D3BRKAKI5mri*A>|IitOu{;47k1n8?!bt
      zSa9HAk+61&HZWV$#JQ&O<$mw%ScYxEtrHfSL6;j4+y>|Ap{Z>W$`c)oj$-J$a3bU3
      zNL#UpWlP2cx71e=>A;nz;`h}*u{GVsnuBXtA<U1-9R=Fz=6|I$t~P^PShsMSu<?7w
      ze=Drf4mNOyFx@^lXujOtIU*F(rvJs_J=v|G7k1?nrJd#aPiR|LBsdM<mtox#Q6wV^
      zCBo9Ab@TLxW9Um@o%fpI=WAdUSxj+eCE0X7ub0jL8JN869N%2w>;WSUj<as%3+CL)
      z1?E2{geCsk$<-kX?W4fC!z6}c8CN-y9(F2I<*4tn?gdsq@Q(p4pz8xKM#$L#`8sZ-
      g<n5Gfe!|Vm+|v=RnQ{#jlL~jS$<a>OTPVZ)1%QX<v;Y7A
      
      literal 0
      HcmV?d00001
      
      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
      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
      K;HPvS8h!vd?cvV=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+int36kVHZ83)=@q+V-lX$v$K8{b6xAfyQmHYOC}>!Cf?F~f{GGuXy|@gMAq
      zCO-H9{)s<f+-GJw7UY4DoRfW6Ywfkyo?m}{`~<L%-7FG>wGZNxxNLYAmUG@XI&oe5
      zl~9$Q{3w+0U6n<OP@cfV{}GlvsVrd+r1C7+>37-$IwIs-uH*T_@dv^l%k=L=;mcO#
      z>Lnrb!g4JCfRL=#282}0J(C8KD3~yCi?G<W9C<t*4W&8}Lt7GxUH6n52yVl5^qBJB
      zTOMJ(JK^g;?@hvLHNZ5)h2LmfBk5?L&Dy{K;kJn~R)Qh?H%h*fO3AaH^_jb-yx=O$
      zA`{GW>GwM=TX>$HxKyo$I9qUpJzsH>%>_JQ^O2=Ev3`f!F?*_A`C4JprcP$v#6zqR
      z3e0*fF0Ijc6j}@(IL-J$>&A^j46kSU$>_Obbt(@n9d7=5-+MYp9<1XyQU!xaFN+$_
      zHY;I5E^dSkPBO{g6X71x$nc%zDuD(5k=`nwCcix6oA^%GzaxJYKo<El7z*0vuWScP
      zT$>>X%P4ZC1y=af0*8!bEDSAB-~EQtKb3;EKzpq66gk=tl*%DGQqrAPafh`CciC#F
      z`6Q@;Wbyu2mQFxh(ldab->{R6?eH!lY9pfRc^*xZ+c(JRn7lC``FJMz@qFaBGs&Ct
      vk%u$Mm3RdQ(F!tC@rO&ak)~0g5JsPgqt8UqC$JTyyp0{b$RNQg>d5^CfNjhi
      
      literal 0
      HcmV?d00001
      
      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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
      N-8AmQd@e)FzX2gT@bUlv
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%Wl(95Ixs%nkIF~qb2k~fR@lEF~qP$K}aZ7rBoJ0jhk)dhD*7~wIkbs@F#o#
      zEZ6}ms>A}ZL*k<la~-EiP}GgbGjrz5nVI|N?~k7V9>GXKVc2<NzqN-(@J_g=#=hlw
      zjwSk)XT2T|0&(K-aVQ0qL7xG)ytBUNayOiYUj`ZS0r!RNbh#f0&pm4IGO&GyY|C?l
      z(00SF?F@MG^QXeA55LME85Y9VBB(rMD48>TVo^;(JQ1!4pE9gf=R;~;2DRnA<Y`cU
      z4H+zDkU&v`hGmA0|H>}KHf3SX6fS>0I6L9KWz*;kMbqoi05*+5ejHS#OorNA1=FjT
      z=w3bL;bf(|Jm~qNAJS47R;nW+!?EcAozSN{G^OSZ4Xap7qm0`r+#=w-ooKj&O&U4m
      z!%)hVm>DM8na_iPL)pTNh(k{fxE*&N8g_hf;fV0PF%c_q%`~=AO<{*&Yoy{Tw1yh$
      z42#ymfq87TUoceSRb5p@*Ufaif#2hMLMqFSA6`RtWYF5K%l(#P2LY$;7bgnGKy1>@
      z6ZEtdtRsm9@=}qvn9s|HK>rD-^boR?xklb&LMmjJ>iT!&>iPu=U!#H*`eve3n~3&s
      zoqUao2#OMJkY(~VF-?c8q*<<CVBOSz6W=*<=eTL=Uns0V(iN#Qa7c6=q+y|eqlmUN
      yDvfEAq-!ghgW)bJaf1d~*<AgGdlN=EA8<S+PK{X<=#)`#9}mc8qUtglQ2zn{=<*T(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?T~ixX7=BJjNJy8j@FAtOwt|v`v=On|mbOYmsX=I~Kx(U1m$1O%vYSbkO2>Qk
      z&KqZX=e;vt=#0?X&NyEAQU8D+clrnV3ml)bd$QT^Av2skyXQR5`@HY_oRi1@KKuc|
      z7@RmF0=?_{9epcb`^dCc^D_&MV=b7KIHCgmO)CXwqvF_x?Z(k6aLixR%VnchGnY)u
      zbnoUT)thAqbk&TisaqwZS~DGcu{b3lW(3*`j$Lzg+b!wVrV)EGwmtLty$$Y<y2h3(
      zkeZdmc}u65dACYU69R4JdTfCKZ$qFrP{nPn=S|ymFAB7zGbJ(>oMj`47W8W9LU)Wg
      z%fGH9$fDse1}SIRtm#XZarq7ts}Yl)$&}=VqZ*z@w?JaEvaGwtVo{)T*0hbQn;T0;
      zbwOgJSf|VsbtcMp^)c$MnPlp3)~V`BmC04ZWrY{KbbHg8y$QE5{&N~Mw6i<h-6$)I
      z=a(s?a9jC<I-s^rNV1HEEJg*o>zgejU>Z?6>r1;kS?7u4q`*j%BUDbq4SjX{B#}d2
      zR{aHm!|DAiAzP#|yP$&tgF#lxjlr6i#!DJH&?yijN;c%!uI&{|U&$*`i$xD|M#EX0
      z6Nqe@+}|X`+Z_bp{y5H4LO8=_LSOD;v0&-7T5&3YSLw_koWP-qUez~z)5dX0ou9Ck
      zFKw=@7*%P>DGje-D2Yi-%Q9UN=<~}I-ae5jCBQt}a;{mCeZL?9Z)ljs9Nn&0Du%r*
      zklPQr$5npp3CVCx!*vYN+pgoQWqoQ(^`jM5pg_#L*3_sYyLuXw(UaUE56}$_Z{sG<
      z$ckAtu2-FkQFZSY)_AUYaL(={Ii&d7(z;Q0C-#1ko)Kj#cdTXa0^xC@GIg91cuyd%
      zYUR)5DN8~}ISwY+7jEuiaZb1ORimomG+4$n2j}$vzLD9kXjsJ>tw}Y~nkSmc_IOPu
      z5_9YYr{djKx0uJgvso=0)26&w+Up1DlvK>}7j4_9dd4$&x1{!-IGmu07XHUL4kC^O
      z=WV?1B1m%NT_W#3d44z^;u>#6jw!xPdpKT<+570p_M&eGPi1#-<Xf&qaExOLQH~Zz
      zn^=b&6+FW)8X1VgaYhH{&tgb%=J}LsvFvvk{)Q8usMY)UaR?j>z|UhufoB*<f(Hmr
      z|BTM;Bjj#U+^KD(<);Q;2c-j_Fx^klgU>>|0|D<CUR1ncQR58~U(^>Na6{B-ysW^I
      zM2bpK!7D#vVmJQF5IzwEzYtX9q{6qPF7AeY6@s=XXjI-0DzwEcBMhB>gh^S4!hKwx
      z9ZkKygP9w$zCWR5R6gbV=nk$n`1@%GV26!jYw>`__@1l}y?FgTr;4ZHDBi?dp2&GD
      zsK~e330dJD(vQz&N4GJaO)cgaq_o=|zcAFV^x9*(<u@<DaUZGzkOa5r9O=*wyu(?9
      z^LKG&pHRbIsNrnt_P(KhC&eEO^(RC9bwH^1Y501mb}tlv&Q+*$-aGA^%|5^f?Bx!O
      zMmkBaE`QVL|AhLY1!<UAS3EgB1*;Q@el17usQ6}j5<*54GJ+4iT^2U@l$VCY+lc-L
      D#|jO1
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      SYx;8!zohv;N&ov5vi}EIk57sK
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TW?fV6#jN+4~I?<^a2G76uHyROj}Atl))ktkU~4$hpXV}%x-&NIs<3UAk_zB
      zEGmi7XkxVW$!O9S9yF1uXhQUb2mgZaCjJTW+xyHgLp#x=nZ3`t?e(p1t<^vN`Q<Ty
      ze%!IpAh7+0bH};cS9sgaP4pc<=P9-A@N~|Za?|I1H><ys`HZq41$Ne&`qcCtR^v`F
      z>yH+FXDq8K#sZP_q?^s8oNQ4Ew2f%LzO2IsPLADBX+I&bGMjfYDl??*Je3m=mj#+8
      zokCTzY`>dx{XxFlwKT#~Nq0&>4l&mVLRe`df@XpCI<DQRMhLXp2xFPPt+HWZxj^%X
      zn^Vc+)R^+lX*fFbeA>yT9M3iI0-^LL-2#&`8T@bI2sL~ssKato6a#j}gz^p0p?opt
      z3xvA5ha*g-)5b=;C}8XAR4YMsN~79rV;$CO!>u;9VLQv1_LSqRs_9?=xRTd@u#~7@
      z!j7))Kv5+9eMfS|Ddjo7o6jY523<Bfu!96w032lY8@q-BpXXk!bc6AW+vrA=KyT$)
      zJ25P<%q@&4XWU@FY+*NfFl}O<J?0c9O-osLNuZ^wNU?kJUIZ`W6$^VSs+!ia@hbKS
      zEZ6yEodO?QRRLtIjF2hq$DoDRNP4w5jmpLW>=Llt!a>h-rX!q_gEkIn%<`t1E;QjV
      zj#@av)~aSzQzaX3;21kOr|$YkvT90cdRIS}LU{&s=;Jm{V1zYbx&k}uHS1EAH2+E6
      z-%Xm4Q#MZH3`01X45zsc{fnkE(VfyD&e=Gxkv4PYM)RI3CtHYM02gdr#3feI^)>l<
      zPhd?2g5hVlEKfAy3f{DEm9tVUM@4Jnny!V^wa|ud*>Fs8`DBtZ3u)4GWhp{-$1R70
      z!kW}+tolobgBD`Tke8bFebz_R3J&zz8eI)(+Lz?=m!nEcmz335R`BQ`+*BdQV?iQk
      z^F=SMj=FkLM9kvs)g|EY4(D>pGu@;L76_tMD=NcbOo_YBmc?dL8{%>fLF(<qo7B6>
      zoQ>wRXhG)rYg2j|4aUAD8e71MX#62sqM?Uq`;oc^tmbbUBS4-+Se`;eo<_4ggLcX{
      z1%6nAwfq8F@B-fx=GMVm1Ml25<#+b-)VjuK2^*pd*z|xO!2=PVkSR!c!34Gg!*XD$
      z_gOi}2@@1(kN$+VIcCbU<!5Y($~qZeg(a^s+v`{@otnVy<-kJkp>p8G+3oycQFe;i
      zjn@Qed=`XDsT|}Gvm+8j48-*dh%Js%U=-g(Srb@3D_#UW=w%#%KI|&T8#CWPT%&w~
      z9s2kk{c~6s+y-<7C@W!435i*RLl0!NssU}&XqE3^y?hrjIbD-~y!>*b{wEN;Cw!8o
      z8|M2MUztTB_8a;~<0ZVFoX3`)M;H>=C*vKmgyDVR=&ul$I%G$90iz|Hr24GD+|xhj
      zF+ul%S@hC<poG-uJl4h^f&ZJ6#;2zz@SyCv_V{Zadty(}AFIIFNyo9#&>;PcL%ef0
      z{{p9(km!s*{`TqL)%HB2n^e9}vOj<=XNdP63I7Ni<j2@1?_+@92jnL>DnCV1eumTX
      zb6k{PK=FQCeu?+wSD2As<G!559MA9MH>OVG91_+787Q9mrkh$1%>c$RLH=6F*d$zz
      z!3K`N4QeH;*^HaKg^|QoWHCj%i&%jiWg*P4lk-SZ_8~f{?WL>%w-~(vx8d>Bn^~ZM
      HA{ze%GoBAX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUW6g>kBOScOxSnC&BKWKzLNR08R)fd_(RBTLIF~+B18D-6~+w2Uezs28R
      z{Ca4jiM|{Eh5y5NXCTn}QRHF6oqO&%=bo8wKR<l|a1*NzQVgrl#ZbJgs~17^tiH3K
      zNLktHALv(mGL*g!;^=<dm7#+S!`e}(CS-k6J{5ydo2lb?hD9ZlK!k0XC?a{-++<)o
      z4EaVJDJ>%17U4khx2+%LuixLiW+<qhNMyHZyS`+&-a0DxPiN~4xeY%IqCnqeNLOoZ
      zhD?JzyC4%DipVo$H*9~7j!t=SG0(8j3L?2X=yznYFFGL!mRhk-h6UNC+8(+{W0ClD
      zFHj7%YVE&06_wPJNFE5?qxqHUlVkHXLX(~8uN&k1V1z861Y{_RZufWcr9}4Q;q)5D
      zn(kgaNPM{+m<?T<;ti84gV&5AnKVM7lvEC`5$zv=Q(S*}47fr$rs)l(a2_04svKM8
      zP&VPx|15Iwkf%<8s#}CKzxmH#j}Ni%5vBK3rm#fcf}!HuaQGHneg~&*2gsPKn-I|J
      zp>w`=h~??1Yk2uRWcaQf^F|<?u^#5g%h@qO#de7F14{2E(#ARXqlqNLIofFC`S#cb
      yo63#g9SdK!E3vT@Xy^hhZ(LrSO%cwZxHOw$cp^m#E7tyHx++i%#@AI;;Qay%1Ig<E
      
      literal 0
      HcmV?d00001
      
      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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
      QaF*DVjVU{-8gGIB4_Vd^b^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&U279j5Ir~9ZOnGHY0?j^*0vhkeA!g+3nIQmg_fvbYJ3osO>#B2th=zgNktI+
      zOM*u5L45Ybe<Yr}2{yszW$)aXxo6Itnf>+W`wsv&u$MwYpm^jAocGo6Sb1-&2Zw=_
      zdHrchS9T)hd(UK71vLF21w$aC)2pt-<frW;`cs$_*qH>81L;N8DUgN=Bk4&(oDo=x
      zA(UTj%0M};`rx!(N#roTwqy{p?DPEx0^&g6Y~A<5$nm0<<MyTb`{l=B@m1xMz+BW*
      zVSY~_*O;sxw@_pFp7K<5UtpzhO1#(-FzS9+ra?kB&SAkq5-T<`SQSVXbizVIdGbmB
      zU0Vi+BaYdI-*McQL*C>(b{d+9K>7bNvy>z~d!XB?_b8<7athNVPm%DUR<%}aS=hi<
      z3Y!A?$+l;`uyF-f*-FRtJ^4aKy{6v}I+S~RRB>{YwPM`Dl*__3?4+<QusB&RR@p`Y
      z>m1x0E=W9`f9)jXfEA_$nMIIVqyu>zsE8XPV2$`aQhFt<xXi9DOvUy+ZcyEI!cbD~
      z)u{zL*-~tAqDdrRg8Pj%q+!uB&y`QW&SdncW82`U7a7U&c9*dPPpee^id^X%mOsZi
      z=e18q%rZ=~fD63ae51W<xX4rB64u8kubG*oZ@FChg4__7e`4dYHY-EqPXMzp2zU$g
      s=1th<Z7i90V&Kiu<1sK{P(+E)Hd`pu(iAI%PvAOsV+#C3IG!quzp8%oT>t<8
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+e*Vg5IqxPV`J2MsrOr@h_%q_qf`Vb3QAE?sn4-4b)_bfq+VYAA{9jN!4L4G
      z#Mv05l`6jEWX_&5Gdr`dZ_h6PmXR@_5prktrF~uWucT8iZdawax^TT9yI!ja-<QV?
      z5pxD~LcT>_cF!+dM>s9|m?R{EQ|V`y2qTpi-)ET;OID>LgEhkV!Y`U!m7tg16Oja=
      z+d?N2COXh#!9Xuz;)gFTUsA@tigd(I^ZZzNhc@4aFi>%8cB5*0QpFLet48^D?OSL!
      z4Q{=^E`qN)?Yk=b{6a3uVMh~`4H?`NTXm%*hB0bjgfRCpn7`B(#xPFks%~u@?d|R#
      z60-lPK`;;8rdJc2QgzlFFS4LY609x95nj1r`@ZlE%n;ITmqZx+>OM|_3~!@@9}=Zf
      zY9;)qLFbipF`wjUg=3AedolkAb20w}>pm3q@z)HGuG!c`iermSEJZ&C7`Y;bqBI3Y
      ib*4WceaEOl`4b^``^~FIUJVnWY7$e7X6T;AEcAE$yuoJx
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%+iuf95IyU-HMQKtExkawl$HQVkTAR<6(J!5q9x*ifZw<A&@M{Xk-bS!KLd#$
      z0Db_8i_{0+;S2Z_9uQ*I2{$Qyux57V%-Q3!^Y!P^X8<?Q^56(;K9@uJA}U5o??pR_
      zqESD~P2DDKRT$EgdvFETEiRHH6VZ^giQ?>_pJ~qSq_S@;XjWjU1gR|QP_AT89m?Gv
      z34}#?Oeil@rk`%#6%acD^KqsNBeh9nZ$LBOzI$JeemvmDtl3vZ{kp(vd#buEhTKwG
      zncD(ujbkv)M8J)+l;$9?7$CsBj|!FoRIw~jX;?t5tu#Fv9PCp5WUO_uopog|k*uG!
      zPl~P;Bv7Az)qiHOwy^u#o5xhBLrU4@vC3)w-LrOXH4`7_u<qf!!1C0e4sgNh4xg!<
      zIz}3b_od#W)Xr@NxM-VxPD8dm<*tB3Lw>eW^6~fbOeY)UUAnLAOI81Dz%?sEAlTNt
      z0dY?j1+fFczk7iVcDBOb3>>V%!wJskc()w*VQ396bC(UTaVO-{P3}1y{nphFSZIC1
      z$#*4Y#n#HsD`tC%RXztiW2>idnj^n7&P-Sya<nY9)_W{`#MyD!_)Aq~S-@+S^oB2g
      fThgtJM<#SUj5;orM3))s;0hWXeXa<0v<deY)%d~%
      
      literal 0
      HcmV?d00001
      
      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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
      RN^BuE3J{FljTS-K{{okzmm&ZF
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO-sW-5Pj3e#-`DJYdwk;wFRR`sR*SYSb`Tzd)}stuG9pwt@Uqt5W#~#z#k>f
      zra1@=3p4v>-ptOM{rUa+25^Z38#%)9vv?J6o?fZ&(Hl-wIEz;8eh^5l)pRb?hz*Ny
      zWT>84ExZj{e==If2!+Ly((MaE)6Zz#W5Trx)#8TGI?ZI9jS1Eun#m#vB^O&LILKqi
      zg^gW8V_o%cj-II~`zn<8%a^H)M}h|@)chzA^RbAP!D-Mk(-BUxUfz_=(>f2)G7jXe
      zGA-S79p^?F!@Dq)@n9~rmfFTXp`Ia`P~F%k4q02Czkw<hBhcJnvA}KiMMhW1@c~Mm
      s?gyMs_Y>|r!yL+Noh0RR;Sd$ZE*CKsRn!trJ+Tcm**lyg?4bqg54%%)s{jB1
      
      literal 0
      HcmV?d00001
      
      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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
      Os(i|A;}ZW~M(RK9k*5*>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU31%15Ixt9KkK9=G%dALD5Zeoewem_LY=e?O47Q`Fas&>km*Ae=i-VgQbv-~
      zlt=yqe}g{712YUSyzrwsoV`+l;yCFbk9DQJch8<ZyQ_cR{Qf6^>sTouqcHW8y>0I_
      z!<UZNYd+GiR-?dwp$iyGwwm_KsJZauacV2Ca9X^Yj^A9>fn&SQ&-S{j6;6fbwWEX3
      z@xAZciwf$Y!noyoVPtzz$9DTV_lx!Sul?=P9fjgt*L6H6;$yZx(@_|+{0&`37N;tB
      z2a`k$bk7MR9jx}(yRIFEj9p(b(OsL2EwQ!4_2i1<>2La*>pFNGvzc7+ySCf0$&l<4
      zV}8yAlo)3#n8G-NM$aAMo;9$Cq-ZG=>Q=kGHq#NOX>qF3_Cmk1p4$O4w30Vc=UZE$
      zwCQg+KRQ%Fq2ha#?mO*jJCyA;ntD3gms6oyw`PtAU53J^71S}q{OFagL(1_`jmWuH
      zx7Ln=RVXj&tw49}NN-4tX@%wiRhgLGrRuHrQ5fRZ6l$Nn&36>LsdNeVgONyGgg!=%
      zSqb_1frF#)Ys5JY=1YP3N>tiAHwxu)S`!WiN2GNe>YSj?D;({2I7$I`6)yhQ&~4Y%
      zJ=<Lfdi_o9MN2zfy%lkoI3Z!gZktRgmr&wJq&sTa50<v+s&FIWFC(nQBm-{tj!k2!
      zf@R$2Kn!)<{{TLmr$Ww9P&gN7FoG2Oa@Fq#UA^qc*JNUUNUn)K_>e7^<v+)N6$KQz
      zmiQ^lpv+$p6^zp|K}&<HT=_{gz{%Hq%HUnz%Upp4B3#93W0f6#1QNfST*Wij*u|M)
      zw^@wgmT{}ZhwvWG84!LD5`brf&e2wG)TYl*jqRc~j50^c^9E%$KAE5hx$}76AeZq0
      zE*Pq1CVhcP%kD*dL<S{X!pBLp8(f8Mu{yvfe?k4m=Qz>4u`j3C77aR#e}ktk^DK;5
      z_mDTSDt|!zP|ap*ySOrp^sPZU6Q4_vK*5ER6yXvDjisOG84<bEs10y!1gTC6szj*k
      zhDgaI8be81QpE>M+@xNuO%HH$1lCi7wI`5>CRZ$)2osBzF$BLDCRioGTO&a20|fU#
      z(*$oPP)l4T%!$STEkSz15{N;1^A2T@o|`Z^c(iPhM_|C?20DRz>_sWb*RT@E{gM)L
      VaRj-Ylz)*5wdt?$koOE8{R^t9n7{x4
      
      literal 0
      HcmV?d00001
      
      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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
      Tt&HEs`0f8k{BJPhI-LJ6kM!Pc
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKT~E_c7=BLIuCr8eb93O=6cIK+CK^WsHPPwJ%p4{XqKP+WwZW3onzjS>Z_w-A
      zc%z9I#%q6#zrgsM4x?g7j2C@BpT6(&oO8Z@|MVHa5*AEo0?S)+NAA_*T`$<IcjO@K
      zC#}%w$Lo>YaiduJPeb2x2GgTfGu(b7BbkJe30>f%`nm2){<_xNa-GCPR-l+x`-$h*
      zf8hnPx4pni?h0h8wG9Ei8NPBYWH4sKL{4D5;{|TFzuj}Ab=mV>fkG#Aq`x5}Pvr+i
      zJ$dcL0=GK<NqkknbW$1IFk4N>{4Qbj?@Fz0;uPtmy5w$>$_fKFNGudkvT+(^3fgp&
      z=c&53Do@%t^RxUyKns_Ypu-17Hd=UHz)+NkD2@<+EFmUs6Q=DEBialG475E}8qiqJ
      z!hYnqEl(X=<>+f%RQm<&b`ZEx)0c7V#wO+jX8!FodF6*60xp80`5Amw8a*$Q_87Ap
      z^n%`)`v~iO+O}ye!hjX%xP#-2>=6hjFwTrCkf&7xz7eT>cm4|s-36Kz{ptr48wTw}
      zBRi?9#8hsgkt-P`b02moTgvUj$P88R7Wq+btL{4(+E5>IqQ<SjBF1R%k@|f`54iUs
      z%4p#N9^new6z~`~(V=}pyOy$jIbw9cmfUa_=TZe-oM)tQTALFp>S?3N<Ec<-o?0(q
      mioG(HahXw;m}{73WO7%H-xLo{!%WI<7FBwSa|L_zuzmms^Ub0F
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`yGjE=6g`uN(RE{DjF0$45RDctR)P_mNFWkKNQ_!oOyZy;n;n_mjmAH*6aT;}
      zpkOVQHvWxxHxUeCu(*$zIrrRq?!0|Iy#Uz2d<-Fm<xAe=H<o)XopY<iTgvwes_wfL
      z&6`5I+&)mYthZu_Fs$@q%SwAx^EY^aAsv7%sjRZllH2l@*KEO%bUVi?aZBYK7Izug
      z9z#5@9M|KHSLL=ZqPdUv*SpjE2Zn)d=}2#fA)H;UGDPy~OvI36*z6sq|KLmAr@U%h
      zam_uY4J42<VIpoIjC7EVGi0)*&b+=SZR-b|3wkC>(h>W9qb78vD<V}=b#7NV2_sS8
      zml5wmx(r>S|2LXrFv`l;by1MPVix*qSPw>HFpG{Obl&E!E2vTOw=yh()<hO1n??+S
      z6o=@qLog^K0>sIW(9Ko{2bgQmNSw4W+Q!&p2RT9BpbFp!!#KtyWhPYxehL|iA>t1F
      N3}z_?%n7nN7+*5Spzi<x
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2Oz#InQ+{o?Y>ymWn^%;FN~)SR54)V!3`qSPXG1{OvJ
      z0gwv)oJ63!e^ORzatTmVdTI%}TIc-Sg8aPHJfO6lh7Yo-ULd8`U?F5<tUaTmG$Epi
      z<t6%X{nm^OT*3LJMaijdnK`M945H{Z>46MqV`N}tU<P`Gfq@a|NLB_m5Q~8wNHQ^S
      F002+lLk|D|
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%L>9k5X<<gZv@d_u)SD3dlFO-6c2*;wH->Owoun9ewqhAz>gAV3ySDvvqLhO
      z<ng@S0gTYLP$2a7DpMEtcn;&hU4}=!N_>tiln5O|xseiLz1y>=30A;*6JD86w4DW^
      zDf2Ai1IKzIbkANm%iparp{sn~cu$p9207-GFtBs&`#5Lfl1KQKjh!u_pYkEe_}`+w
      tNlvN9^DvS~?N9un$xtCkOsNW#q)izW`A7v+bF87BW5b{*oAMUWdI1g3N`wFa
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&OHbQC5S}HF6j~r{988)P3Vk^(YQ&jSgxqQ+Csa+yfeYHkBkIVkD|?fMzt%&4
      zKz~%l>}Eq8NKd2hF|YOb@4w%F0N@yoO0dFUZz#rM(#(EE@~Rm`nd)MU0~IB*orD;d
      zV3k2xdz!Hz$JzHGsYG>o=S$#UcKyIV?eVh?1I8I_o+dI=LaM%qM_8afz@TQmywmf)
      z^;^L_NgEi0diy-+@vl^FxrN3oXSg^SgH?|=`lMVvPzqjyX4x9VDAK!i7!XZ<hy3kG
      z-tk<9II*;t+^4srY)WBhjk@gxwVes{QvUT%bz|z2;N&OeQeiq4F@rUan{gcxhPfs)
      z*-h~}8RHVA63GlxWxCJH6{*~XUZ*lmyeGS~WJ?ZyB=i04_%4mNT&Yq{fFeJgd6_C@
      zEaNN0o6pR%RyZ7GiY`chmFZYi?4h_z%P-uR1}HIQaO4H~OT;lswRn#+?}=W!K3)4i
      z#WuRhC>`MEC`JbEg2`O<C*7(@Cky%l3s8eKC=x0WT7gG|*K>G-@Z%hQ0uKEYo3I7?
      z=h%j_iBI8~i4}_-8>_Hmco%j}tif{=>o&fy@g?jTe&6C(Hvho(Ikfn-#c$xP@xQZm
      Q--BmxLr2=>gW2WdEkz&v%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv?@!ZE6g_VnE0oH{P{u?BVc<55l~0<~m>3k(q-p|g2_N6OHz>TdrtR>@U!{p=
      zi6s63{!zyJ-fHX;KD2%B-gD1A_uT&e^Ya&gee4-1Ff`8jCI4h6AA|7J_M+(GML0MV
      zLN@melo+ZiZA(tccl~qWrv}OloB5)y`%(<~Sf)wS<6l1axEu?H`AaUF!$8t;$<rjE
      zNbT;C=P;C?1!0grXIO5{rrJG*(m^y33t+fm!N9zUA}SUZP-Q5#6rkb-p?EtU^+o)i
      z_f><M7x`TFcpRvE7A&P_LBg=EJ6t;;DOvPm!BdfGemIr$5Bz^Hr#;n~^T9E&#;}n$
      z;)CQv+x4Tc>mG?D8ppmcaGT*)9^{VrsZbyj4ct+KnI`JEr%oG$ot2<~jv9I{osPOT
      zGfqw+gL$l59%|34xm7+={TVDb3`Kk(d6Eb+rt&KEWt7m`--z@q8W?!MP|r)vQCMiB
      zLrWd;3oV}ENwzv|i6(V&9v!DK5npE;9@A=z^vr=(Yih&vGZyF}BPhB^r>AsR5wo-R
      z16F5(rEeOutYSJt)ocqjx?5DEqAR#bU-A#D8Ov+xpjcL}P(Qgs<D~N))&%Pl-2F=7
      q0u)_Ym9t$<wK|1oR8)vf+^2jITN=NOCViDi)e=;*L+=uH(fSK6%*Vz6
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbtRO;5s55S&GziinUHz4!y#i;d?V30}1E(8L%#J?f^Gl=nzKK>wNtet<v9xP7T$
      zf}XtWCOebN&dkT>`v$-@Mh;qpi@92<SHD=NI`Ko+)g<Eu>(W7+Fswm8Qv%)3<{X!V
      z(K0tN7e#2Qf+s6s5~l8*C8~AlbA9r6Xz*mQUlf8pAmU6kQlmqqRl<4TJrGVC!CQW7
      z<R16rzOjFcor(2o`^NZ1obxlG?M~}g1__r@HER+o2$!z+w>?5%_+ztJ8f{}bcfDOs
      z+j~IhMW)JQzDYBd%zu<{Rma*T5Dug=pd+1h&_&&igG0NI(6jp(eY;OE5T@iNvxVUo
      DV=$D1
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmX^0Z`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>^^~=QA=e12HQwFj#<IWM|+2G8h>+8MweSHv<ot<^_oZ)$svICI)^0V4PF6
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(YflqF6g@**wv@3v3krg$C~Ya!CqAeTEF#5fNU9M1wzL}<Q+7#rE9k#5D*6?b
      zVl*+)kNzm*y}PSjwSJiH%-l2Qo_pp_zyJ931;AO{)6ga``b2-K?_}+5Wv*wJt*!dj
      z_|mE}E7rEV&=3~r`3ED=P6r4ikSGSD{@Gc9XxTCy!*pzceixF}x1DU>+T5~C+9pJM
      zPMONNE-;mB1!%QbD5O>d!g;G=#1O(Ei4Md%AkZbDA*!KAps$6V82XUV&@V6)jF!0S
      zhmNW$M;W%n00ybrb;I!-m@~_U?N~K|iIxgeO^M!t*%-QUghdTe)qyj9IJLrBk4i+)
      z&d^bbV;B>NQ_8$&*RpOJ0t3kaH%D}38a1LnfpHBd1$wy*-%&p*aSEpeLVBelkPako
      zdj1FLuZv(INr@EF0-d(u6s@xED9aRxB-w9{XC$UDEig#&1*=@Q^|h+u6;*O{hZKjC
      zkNIl4iX`-YeRIvIJzxweWxnc)UQ@jGH^a_`qQ)3=4g7!iQIkZhZK_;A?9eFCct*MG
      z4eq>9lEqy`P6Gjhj`*cXTm!Y2M(&o>^S^DKSDS`uQ=#sy-ISQaEdo=89(XWdVH4~5
      zF)wimmr2Qn;!f<w9f?KW&??H_vTVu~D_Qkg*;r6)Ld<<k(|l<HvS3n4`KoT)2ALp(
      z?+s(rAR&66Z8WG$+!=K?eM1zXZl~W)TJ2IaLf>3^GBc70A3&xv`-rDMqx;e1NAw=x
      z@IHpqA28g&NTz|~t2`%U0~0(8H88p7vS;aclwJ?;g7{w|j#n7LYifvHoW~o?;w{cl
      z^n#a<{yEOkiZW9)N@{q<3R!WEP#0bOIn2;3OmQ;G*Sts=#t*On8u13MG;o7g4dk0@
      z;x5A;DS3wk-n-eQchb);aQipw3`LkV>hUZzd19`nucYo<fFtU2w4p$!+OUMX^krY!
      I`68k}0V~ledjJ3c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)Yg5}s6g`WLWjks@NO(iYgQi9%p-|eUkfcorG^S2)A&}BXQemrD#7NYZF{JO;
      z4{9fNGR;iCcBV7^OP!u88(XII!)jN%_v)T=?%k`u{`vh608{uyLx;k}ZFA4upDa~u
      zXKOO!?v{7Q()L!~t61{%H#CG5PXEVFq0_B6R#D+>S`H`8iZ?m$?(Djb<#=-n(X8uu
      zT$U8nK1Yh<fL^<%V-*g)4nr?xWS3qi3g&@Tv~u#UFzA1}X_RiA(KK@1c5Lsa!j;5v
      z2#(uJrN-A4!t-v<iX((GI!>W028A9SoruV)Plr}t4d{p>CVN9V;)umDf>90U2rH<@
      zs%W?7*#+CPt&)!OxIh|Pmbc=%UY*AA0LR<O9h%R@aS5+#7$d4+oTWnp9hdQ%!bye*
      z2%<2YIP%57>739Q*YOHYDx6B&j&;AhvuPC{n41Oa+?{r_W?|hd+VbAm410N-$s22f
      zd3=pXx{FP^eQh31+%yW8@@_>Tlo($ZKyT<c0bRqJM9@anuZB2g@U~=VO2az}XPQ;E
      zSa2)k=9axUu3=70uCp8xDM_z*-PG|e-cyK`e2Hkt90rP{?tIU5%q^=pSNFNCV;*;i
      z&CKN#jDU5ksO$P3sq{D&aaY6p4G!(6I#O6t(3q=L`ze*~Z6wJzyJPQIPRVv1=6nWe
      z9rtjb#zb8=?hBx3*$UnaRy2I5(BCFoAmKVz@qnU9kubL&gDg9%*`j4R1R4a9ac$n$
      z7}hbM;UVj)sk46~2SWnyV;!I1Q<k=f+V~`|GgX&lX7EVIV|>o@%yMQe^EiELV_}5=
      z>esMfvcII*4@7W*zbSHO|4-<E)AHuFmG$NtnYDC$fhlTKw02G6Cfq`+DG-)ISKV3K
      zQJosgE^o_)pTQFy1?;deD9dfP?BrPAZ5df%EJ7_<K1f%`F1}=G6|Eh2kJ$?*Bv2OQ
      zUlR2Q$FE~Qxy?_>;gCEkI`$ExW)(Z<<z?roj;~}VlK1<q2=k3F{FV%*oc(qc*=!&U
      zG}`9Jd8y*7Zn>DX7Hzr7asPr|l^iPQDTf_;zF?M07MXS(ZSCw;EO`D7A{^|0d_uaP
      zKePAwGdmyW4!NoR%of5qL{IikK2P)Q1-&)S(?)V)q$m6w-A1yCv&KXfy~aot{YFo?
      zioxUy49|8Bbk=ZjHew7!s!06mf79Uevcyr$jp|^NVslnu^s7$xTj_;SBvp)=k0VLj
      zyY*<8z!knRu8&^%E5YC4uY`fHo0jg4Fvf`dDkf>0q`&Zp5dZ7^8P-|+-S8|M&oKQb
      zMva%4*?5k(s^rC;m$<eO3Wc6ywuT$B!O>g8t%t4kLJc4AEm6aAy0P1ze1^3gUk17O
      zC|ARV7|7vo_$*X|Da#siEg=lTh3bK(`p~WVaY+qfQVrvV8o`1(hev9ZHGH1ccEJ~;
      z*QZ-<h_OIITga1=g59L{grr53WIfuppz}f0;K-8LiX3H*J&uDKzHR~Prgl&XMAbO6
      lV!%+zK;UE}aFoBT@9;gtcHjqw>cEfqiF4eC62i}j{tJ#b`APr)
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g{&|y6Gm`B(2|CZS|q`D~P^T1PKZ&!HSg>9|Sj>A(^n53A-CN{w$vg
      z3i>Gcqr@|tl{6BNW#-;<=bn4++}U5hzkUbs2)A800*z7dDVVjAOzA=EjhRd*E=mG*
      z8*W7bgGarQ3{!#ir%J2znZSenPJS9>X{&9<6QiY04_C!}|DY>SYMZ|Fu!fBq%J2l%
      z_7A!)Y65!;6+epPAc&sFgXx&%Ud%!{NtMwas@M?N>?kc?PscqOzYBVi6liu#7)0G5
      zRu&h*QaV(Lz*gSO(ya~!$|ln?7T8|Zsz4<)I;AxEV#eijeP;K`&}1}2)u*a=Y^HH2
      zUn<*zm(S~=y@Wu`*R0--f+UfNiyeU-d$82RomVGH_f3}bNI45#>=pxArgYR`m}b)M
      z1+D&X2)p1=`KUmNUm5GfE|Gyl1T^lRqH_Nys^3t3e~NQIzA)(EJohFEz!CSisNfiN
      zoM4lYCvzfkgNP-Vxy7>9+otE_-UVFDg&Vj;Z!Yc?;*V)<e%XpI1ihU4fyp0pq1rsD
      z5E8hIzXk4*Yzv45*<K77ogwm9%{vsh@_%Bwg6QBXOFFoQ>$FXJHz;zG!?;Dehsqy3
      C$eot}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)T~k|C6kP|B+~jik2nE_GREww~q(rRvkzlc<&<1G1(t@DXUXp9Lop5g^xiQpd
      zpB$eYeNe~NqN2X}(J7A1`0-+A{85hUoCK0sc*wc??6c3>`>eIk$v^-8_B((vyse={
      z;KVKSJ##Bjs@P60vFH}cg&8yBxy9QWd;(o^HIX;Dwy=K7%6J0pr46%aWouCakIf&2
      zkP-+?*pBU;6=;nPFAMml+^nUe6>SDI1O+<hZO6J&-dwke*Ua_2CD1+ZX3YGuS+wQ6
      z=Ja_Rc1a*yvb-ggJ?)e{)5$P?AbNEE;bjfo0)zEKr1N<zXXeipbLCCT@us&jR>8Af
      zM@JZKAqeyu@FO6gy<260Npp`T?T-#0omD4Hn?R8J6rTc<)fy9K#Y;@Nn+4Zl?vz6K
      zpD&$01URK(K%lRY=2?Y&*>cJ{`tgK;Cvi$3VwdLa+=jPe$x($&JCeq%5@1coQ+Qg#
      z5JhVQTawye_w2mw*;dKGGkBIKVEI>F*IP6lvV8i`6ExR4yC0s?F^mxnG1A$X=ODm9
      z9H#}2F@;oH3b5cTWr~*NumNh^DrOd4n@s6QU`)evTvSpv@o3<AoS|S+Ci{KX+Sdqh
      z!KTh7CQwC<h43O?*6@-*#{rVcVc-=c1;iGAX&E(P;8o?h9l|8eX?U$M`vI(h^D@d`
      zv9sQWjJ#lAT6zK-N(2oTYYo_R$A*+nmAXzkW{{SbV)iJqk7yUR_`JZ$MxK@ML$fQk
      zlXWX<qGJweR_Rt8t0>TO7#2G=<2oKYlQ+#@kS_rxdbG`Xt9|6O%%`JivEGt0qR7?}
      zINls_&>)mc22gxHG4*1qY6}?qg;WJ?DEEMO<_JoNYJ|SzmWvr{#+ENgSRJ|cK8;FZ
      zaEe#5m5-i)F0VH&A8o!s97CL);aBkMkL^PLiAD<yjyk`<B?ix-ot9AzLWhC~p%Yy-
      zfQyWj0O8m}wCy3hx{G6f#C}0f9ju!$z$(Wz0=>hnHyc31=&OMq$B7!~gh~(e{EVK5
      zXy1b%Y=oek|46KAksaz}E_WA*SyY&^Y+iCaUPTfGuIlvdh@?OM7y3U#XZ%m}Cj*hd
      z1DsqL`4xlG{u>qPh$gl81B@nva`HklG!W75WBeY{y*_EBzQJVGm5l`N<Lu2yh~qY5
      zwPod<Qr@X;^z30~btFE}>)XYpr2jh%?qP1<aalUT&5nq_ezx;G5%3XD_%ZAMgtJe{
      z)8~BhzM!UGB8od0#a)c!E6Q{aH?WNozQzammXY7n`a$tgK$|>$O*m;?!GaQO2aB{M
      zUpw*zP+acFn@^oux&L)sWyf@pza?Db*pCl!9m}+$*u)CnU>A)dM_t$0P2<$`O<MAw
      K<Sk;h;KqM370dYm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O-~d-5Ph{fGCS+&u7LOf2;!Q+nmFvu1Y<%F6O%<rG<)#YJ6kMGhHmL;z`tc8
      zG4bFJ@JAV|$2no#Lr+iDy!Yx=)%^PX<0pUtp2lbpR!`K0`jVBG+Dx-UXQz(K^1vGH
      zt?Lb9M1*dDWQ7vI`|%0qKE_;4%+#gN_=1hkc5|<-8S2urVMmzr$GYro3vf82#Et-8
      zYN_^$u)aAHxiun0dv?MJ2)9ziXtmKqCq;rTp}83VouM}T?)-Gj?xPwPOqd_qToohb
      zbcpL@6wDFUW)<uW#9T*JZ5^^ZvhI{8!ujj+pU(Hg6n3^o3GU-zj0c3}8GWZ%#tNa8
      zE0c2(bm<eJp~Ub?W$Hirg!Tt}?s9&kLvxGQHugM}B&2VR>|n1@Wy#WJXW!(7EoH+8
      z?2qjvMK4S&%^fSxueB=d6x%Y@rkop~ZZ`~9ev*cq1Z~OQl(!cWhfKTw><VfBJ8pli
      zFn2<(`XX#9FfVZ`oRD3>qTGbLSgKWaYn7z`4QX_Rd)GwhGg@?3i7Zv3Ni7nrtm2W#
      ZG_fY44XopFRYZm-H-xhx&qx;V<PT<$tD*n^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-)|d55dOx##ErB0-K3>$h$#VL2kHW$1zad;(t=$lHN>P)eqQWtveo&{x;rQ4
      z4+v6)K!6IOEfnz-Bpymp6A&Qai3eWzBY5T!A%TRLz4KLZrRL#ocfOsOo%v>FfBWzI
      zp8!0Jr37Mx^aXR(Y-YVRWiMw-uCwe)&zo~><vZ?pS=FRlRGu$w=_X(h`n7u2GFkb|
      z(gj)Z6X+z22B^8_XXUE2{p@tbSB@PS61seL<oRZ;PM`uoSf=MkmobzlbevbN=kxv?
      zq0?Vc-uPkmTihYK94j7E9O%=8)WnXO=|zGu<5XoA2txur=uIMyVSzr35aJW*MSZeY
      zpc^8IeK?T7{<dTn-eMAJ0;9N_Fi>f@F6XJ~nNyafyue36`$!2Su#3=FRJNRN)Rv@M
      zHkT|(7%Vy!(^@oLrR5fA=u`=lJB8m~22Q)r4EQZc_q^lQWR)-$=AXU21SfSlayq*S
      zWD-ad_V2)`z$B7{;aZSW*_o9URh4C@<kTB=?cyPULt0~3z11ihJS@1G7>w7Ht>s4r
      zrb5|lYWax3Q7!jGZUc8oK6ygmNzK2gxYG3HtTHWUS(_XacnVzB-sqn2h(l}RsSv_B
      zZSsu3G)@q@Ba;)ROW4=0AGI8x<&v1isRT}P*|$?t*rp@!ES}?Rm!-dGS`DrtcS>Fx
      z76eX5M`u;lU(w*4z&y^dzIRLCn8=6ZKQHhC7P!szByeCuZGi=I#u2@Uvk7po4s4Go
      zI23qEGi7+b!!r~!IhF%~i#wE@L$#eXjzu=>Jf*rvI;zt0O+s?PX}A@6O6jKD9i`hE
      z`9u0<u1MbIiJ##y^(41vPY^>i&q#5f$NB4k!7mB7JO6<$B!iVl2<Y$EL&kE9zdrP{
      z_5kmSY^RZt%;Y8pGv8u&#@NK3%y+nJ6Js|5{d@R7s6Eqr=%9DdMHkUa@8Tfig8i^H
      z?!`E-g!^!R=$SrZi%!P=WmnUgo7i(17gM~BN&XGq!~^S>u3<G3*S7`0gW-~`Ucu;g
      z#YZB1U2S0U4kx#{Sg##5MvM@AOkd>c{T3eIz{-sf&i#thZC1y(FjGBZ47bc!%&&wB
      zw<55vAss@;Tc%qmZeTbRN?R!F9c`kNNwv{8k0EB~Lw>L?p_@L&D1Cy1bQM$dDdy=j
      ztn$7|pW|)%0`Jq8_<+8`Rr(s&=^Omc{{EmJ@F)F<zvyTDL%#&nPjR`K-WK(G_cG2g
      r`3C;RE8GGxG_e=2^3K3@egR(Nb}$%yovmVc18?%0WPRdcHG%&D&N-dn
      
      literal 0
      HcmV?d00001
      
      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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
      XJGw-!;@7mDbUaR1zv1{2|2XqMYE?Qa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTWnNS6kTT?op!jqN(T#_(iSStOo0)kwK`>xmWNXdMGJ)%(B976wil*zn|p5s
      zV+>y;eiDK)Vp2c((L@9~#v1we!^9Y4{8oScF~&b}opbLz(jvwtoz8jewbx#I?bC1n
      z{^}b5`%#P_Ah7$g{<eNC?OZiWv+2{eHESD=bJ8lAu4U&+3ybcUYa9A}1R;TK@^0F+
      z(#OrBYt$bLMCQF1f%cK7KxPC0AhoWPcD-Ej=tHLa3!)O7Ueq9IQv1sVtPMUy15
      z0>MOboKZto!H8lbHb<~YV56c^)Jb}%NDvLp*dnmCU^u326pmD2$6VcAbQH*B69i%!
      znh<6Dh*>gDEzVCH_8FO0pn1f~>&0>1Hs#viY#8uKWD}~Yw0_l14_WgIR>>&28E;Rq
      z7@fXs<SRRrs7|{~ay*J4+BCExF3{>jJ>k+0bVkrYT`EG?p=jvBPJt%2z$|){sZ1_{
      zZh^L^C?3Tw?3SsY6FBt0s!(;Y{d7hqmrIUI{gN8OXo#Svp5*AUYk6Zqc9DH@=S=GD
      zCHik)(GN}eik<>3Pf}T$i>B0PRhMdw_azr-aFj>cT`zo<vh4o6eoY`uYa6aWv`W{J
      zed*WG3oXjxUe=I-Mi%)wBY(vof+4+>H|R@w^^k@Lc1j%%%WsWR+anqVF(j~#*p>OA
      z3<(NGD>Gd<abYl-li??1&@ma5(=aSEh4V$rVOgPq?&<=83xh0{_bIoE7?lwxS)nyE
      zqqsK|jnb?;#|Y<&xghflCx<2WSq*PsEX>Kq^~aANM=(LB)wHS(#4+2p>?qFTg7gF_
      z2o=s@Y@V$Z;MXqDkw_{{|D}_e2uOQJ&8~bF?8ODwDCBCUkOk*86y$(LO{XGgBW48R
      z70LXJomX|IGhdZ_3UiXC$=3STtv97qI67u6+IfR75@qaIg;qB{`y@w>5Y0e|f(S?-
      z^IJgn5!lo!-vzFtT&;t~d+WK{&%g3#bF)~+hC7Ia?jjVtkCuDf3}7oi8`PD4Jfn8N
      zRV%jn;kO7TThg7{TgLWaUuf?#+WRENxzq}FP4w&$!C0t_XCESQk1>tdfXztx$lDdc
      zQ6jv~le0WI$5-wm)x4y#9rUoV2YZ==S+Eaj#ikq2lX^hy9l#4Lw-Iq1<Y$QIbUV-b
      zcq&&ZRcMCaWT{Q5GG65GOSJ+wD8*)Yd5!=@m0Ie<%YJHl7CYBKUSfo#&`!94fz$&e
      zQWFo54NXlxM0Odk$SiH2@`9&hGp_^hu%>sJ;ytwCx=OXx1MyRZsqRtIkZd_iYm(j|
      zS=r!ps;7+OhvG}<P+8+sOsY7Lf}i{@qH<>$uf}UMb`Tc0N$GFV3%AjN572=Ru^S&#
      z<|Rd`(@RkmK8@EfLP8BlDsllu?&KPBpRhz}hu&0AyuFN5eW6%r37v{yEc8@{vCwLY
      z_bC5;`sE?rw#?pti5`5719+q;dfw=*Qtb69GC59DKiQaG<*T4-qtsNofp5qf+BbdL
      z*;GdvX9mAO%N=Z^a@iYQdJD#HFJavZ&QFvv`AC)0_5Kq|>H3Try-s_+{*H2ePuu)J
      zS${-7e!>8Lu9G)g<(?(ai%Q;p%6pOG3;BAk;hE*Ww53L8UGh7-+Qz@ImR~vGzo|@~
      zjWs`$z?*oB2y*b{97(LO#QD5R-5d7b>w?36a6ta+sG~HcU`{BqK+K~v{Snr$U}~b-
      bC}Z}~YHokfaDUQpf7QXqs@yIs5?B5KctG#o
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh20r#InQ+{o?Y>ymbAb)V!3`qSPXG1{OvJ0g#M-P9jj;
      zKPf9UxrC8{qd2uBEHS4vm61VA!v|g7I!ZH)k%1>YwZu6;w;(?+H4msoOhXf*FtNNu
      zA1-dq$iNkxUs{x$>Xw-UG>sQ#vmVG$Hbw?U24<im85o#=4q;_rV*ojboq+==!pOi0
      I5@+B706-fuw*UYD
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=T~8B16g|_Hu9O8z5s)td1#GuK!EY_1SfY{?Oprjr+q6u|LfLJ0x2QivqYwJv
      zi%~HVlxloXpZ!tBJF{z~MtInry?4)?d+wP#KYxAw24D(v8bS=oO}@h)W!#6RRmv=h
      z3O6lpfm^&JoZ%o`wVf^DXoxVxB|1~)guP$b6h%)%lp*mqyHvF-UMLHONZH(>g{?6}
      zy$#bHo@D6DA6+d=xM|Zey%~mq<Z-~%3bE(xb<qfhRvnFq#SliDjwU1+!pYQ%{Bu%=
      zh7*Lyo0eFtZWn~J>`P1J?IJI)aL1H!kc>!?48}2)>kT2nnk&4#YBQ2tld@QWx-eZo
      zM?$Fiuv4{S7{nP3Lv;o&Z#aUl>o|*HhUQ|`afIdhNfMt-DIvbsel{y<Ms=J+lA)y}
      z0`OhOu2vYj|Fc8=$~MBln1(b%&(Zel7{>%dXP~2g63CY>UryCC%b8Wdx9)LwV}Vyl
      z(<IJom}2NqQ}8c9#|2y@7f3F{sDG}92Pk{EPk*L})4*jNSLA7S@9?s@&OI@2sjr;9
      zU9l~4%9W^VI<8Apo0{7>)A1fJiIQns^p{~;M>l#HnmlE7U{uhF8e-pA-zJ8Tv&|5D
      zU{{@@xMRv8Zm;)YLbk}D&s&yoa%Jwif~;w-yC-x;)Gj>@2+=*G5d`9KIiwUtDBlE~
      z-pv%v5<+5Hjr0LpjL(Q0;RCeqQ7VKEdbbb}@SLcg62UWcQY1Ii7IfhhtwXZIfNmzB
      ziyFOkEHPE&1+lzT44o>D1`I$Hy(E$mS0DNVt_-cRPJ{6Y?Ys2h3yP}bt3yH>0vd+X
      zNCcao5IRD8(qAx8!$^J~sdNpQA21fiYPdwt)z@fRG{QAx$G@v(PZ9T1{XeA)W!M`s
      z@EzLlmdJOh?0Z6dpi+BuZT2xjtAUS7&Y<!t9mvrrcLOuTnjph(5|_04mSUg9ZCd4k
      J&~--+q2C%B9X0>}
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O;6iE5Qg7L3<hJ$_ec3^D{%l?uqwELxF9MarBDG%rJUG=ZP*ajXuVG8&*Fr{
      zfgiw+Ld-4}g2JH(+dJ<(JMYY{?;mdO0DQ-n5GBHDOLW9ll694CCWrD;C~bcVEt=9S
      z7UA#IoJ+IYk=lj`2n%jYBDyw_PD}Q5Cv6C;Qe7~;g!!h<lV`4yc7GX_8fE`_gwVUC
      zw6fcTt)+^`+JgNL>Mhx@n=h2ZTx(Hp%a>X~)t0M-U?)A55y}{d5u%SUR8d;)=NENp
      zj@?GWXob6LSA|h7F2ul|sf>_#tN$K<lN-;{+%$aIH+>WOOwli4{Jkld(5Y2_lr)5p
      z53O;wdqtocCr(v%=>$S~X}RiVnu#%mX+m`5J%1=S&e-cqT60|x;ytaU*=dU`lUayQ
      zgc+B3e=<Ikw^xhLU}t`M`0pt3myeU*{T!XJ=G18A>$la3;0DpPXJV%@3$&O!#~`mZ
      zo=AMa5JxUQj1jKmR-+j6bcAu%%3hnmBm&O!poQBye;wbma)Xcm8s!XkyixoF6-Fh@
      R@|F_jFz?H{5(_+1^a$$ev7G<_
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9J%}N6?6ot>N+R=8b^{*o6zTFsHcPUsX1x3Mqtf5R96PbxtU(JON;6sTwnPy05
      zGY4`{zMOmJ_wV}$z%@=2v<R0=`5`|=xytlHJQ!o|rB*jaTbXH9B-keOokir54R_B=
      zHMfNBLfK#@oDWB{7&8r{F`-u~>u^eYGU06Ky+W?6sNWfnp4iIJ4eMadZFno_On#|C
      zy|}o%MFkCeOrv3qj?M@d&B)P|Q>UDIlFPEJ@SB-m-;CyUJUHddk+G3DI0>Cc^Ipu=
      zZI*M|LFlL6|H{?ZCJ?sx-v9~MzJoSg{Rwux?xEwgi`45rdR`CE_j-sUzDYRdZwn{?
      DwDyII
      
      literal 0
      HcmV?d00001
      
      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
      zcmZwFT~pIQ6b9h4C^Uc-3N26yEr{PARMb1KV!F`Gtl3Nw+QFMl>|`96OgqyS^|yK9
      z5Aa7hzG<iFspRrG=iS}2oBa9v>o*ad(T4&p32NL#-=m++(U0r?x2E444wA%;`mr_W
      zkH%4dJSxzAL7Qo)nM8=_uQzdTEXe5Cvg>Lu5VWP{ZGSw(Mjr(gXFGJF<Tf^F8M%)1
      z0^2fG=v$sv>XYdiv?{3F)}H-EJHcXSUC^4RyJ1_JEs10?-Bhc~&rVj_5L8mSE4@(3
      z^B}ae=cLI}I@6@=*%$43eH-yh*Zn_UL3~<XjPGK!+3se`b}q65s)8!hPT-lg;;kAM
      z&CXa{bcjXM&YeXKLDjpD6S`X2)|ElWf@*nhlm$)%9ptPx{m_xJC0l}oeGebKENCw$
      z=SUROK3*bk4pVi_D?bhF2&(5!k{y+%>Vo!jQ`tedaQ=<vM;+nw`-9tIFFwCcVho=1
      zbDpL@-U@C<lj*5S%d`R&FvJoW@GA2fyw3apE;2uaH<&l!67v?k&0K~n%scQd^B!Df
      z-iK<;2k;?t9d0lm!N<&x;1lM@@DqBP-S-*%ocRU(lKB<<n)wZU%G`wCGN0iU1-+ZR
      G<@<jX7{I;&
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%}T>S7@RLj8@ooURZn^m1g!^ycvL(X5DG!WYVX^)>dLw)o5Y{T@+5fh0emR&
      zOAuN-lx1gjK8D%Z{r>s<0&s}+5FTOoQ9jGpxOma_J|1Q+H|A1WmCCogDtB%MSE|S>
      zm#Gi|VQZc_M4PZV>zEjM7f&My?GtTvc}np2`XfS+<hM$|$6|yK3xsZ}t-7e5#>!pG
      zu~CFxnrG6Cq|>$j8wTZrE(rZ}_OdzMj|pPfyy9Hfp&S3b2Xzo38d$4bVq{S$&KJ|_
      z*any8-Quq!UR;;4!|JHfKx_X4;++Q`B1XXsoFPDhB|b%LV-uFqW%jVr;3|5|qKWXa
      GhR!cNXJi!s
      
      literal 0
      HcmV?d00001
      
      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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	gu0D^|80TCfgVFpm~2F1rXxx;06+Es{rzlt!{%
      zldQLQG4w8pqtz~(G|47=7enuoBuP{wvXrF|q=T;Rr>l3OKumaL3nOn2rpq=|%XTc3
      zAeKrWqi+Na5~Zv6^V9htw#g1$B}2GccH$QK62D6B!XddD56NykD%aqQT!-i7dPd_L
      z@QU1o*W_lrF1O+hxeag29)4`N9UsdrtjF$<Y`Ie=$UQPi_Q`bF&zOC$ERwrriQFeE
      z<bG+AL((S0eDi)t{PM8$$Rn~-4$Ce%BG<@w<u*AgcgbVqIwl8XgwIiVUXIH-_J1i)
      z$XoKHd?HUda^$3=LQXj@kTZ@NdB)Ks&pFo0^NuU!1xKfR-?2?zblfaIaC}{U=(tCI
      z<TxNNJ5I=t9nZ+CjyL2dj<@BfPLZEE-Ez)3Lw;_Bwm-7MX5fj3Humh$<}8ngHs=)U
      z_1TF6r&k=L&%$(Pj+I}SRh&+7T3KbL6OzTA3zd$Kn4QWP)T$jHN)CIunCtipb7L8E
      z*nG#InIX$qid^jY1M_4VE6Ih9_n0lqn8B7h-jO^p_|m@8@un3j^U(&UjANE6Ko{?#
      zdoMXQGPjknn0dvqM*Z7{wdiY(D`Y%-MR=Xq<g-`IZzwaRKqk;GmdLwO$X*FVikOQX
      z%*E>GJpTC@h}Bz>Bc*Jz3Q~E;LP?iJjyOuB)vvn_Va_MlMCNk!rZ3FrB2$q2ce&*i
      AWdHyG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKoJ5R$f6oroqZJ<2Lgaj<Wlq^Kd-B5*ygajfyBsSN*q;8Fk977O4je#G)k3!r;
      zpwNZISJpY-eVos)_YVNa7)0m@Y|rG2d`-(r+ak@CcgD!Ep$N+YTeX%N$;!oeMk)v#
      z78EW$J&^Y_Y3;X~swd||uHT4z#>shu$||HI{YbXd&JG23nQoyQt3zg$CpK{Fow$Xr
      zco>g0G|aLj6WCh-PmELZKji*`dhMl}m%kg`=}DLhEXB#az`;MpGt$MB*XZZ&*(*BL
      shA$bk+aA>y^#r&V#|Lydpe}l-gNm@y)YYHb$6E7WuPYN9{C2SU4aDqhSO5S3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut!AiqG6r8O!(Q0ceUc7k`(u={fM?nZwJOn&=TeCymvTh)WvESyQAK*ucZ&wtH
      zUf#gWyf^Q?_m8&?fJ+>w7$}^rbg$QW`)d6%FQqt^bgVjC``g;kr5GwqgDZDhJa>;P
      zQH5Hv`*PA0-f*q3lg$ee+CRcDE9UnKlgd#yKjUMA&?DP^4~o=-!b}@;{UmW**tVl*
      zqi~)re(%bjzRR~wS0Ux3;d9+{TalEqerYP+SVx7^|1P}<;}Zp0LLLMpa`-M1ga@S9
      Yi@1+b!~+~g9AgskD4=vsr4BIr1X|8pdH?_b
      
      literal 0
      HcmV?d00001
      
      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
      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
      QrBP-#2f>H7{MLBrf4oFR3jhEB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)-*XdH7(F-HG$q~A(l(KHQwXS-2HUC#B8BoZNSqEh2J1M?Xt(JlEVJFz%?2op
      zjt@NfpgzkJ3^Tmoj0y;&9rQsF@DI=#MIHYH{{ZpayW4FT@g=$U+wY$5ob!Em_x?X$
      z-v;nJ4yBP0SbNewWuF;uo_4(Yc-1*8tMc8J^lCB<L!ehZ9d~U$J2HDx)&hZ4lSxg1
      z#IcG%$4<v{f=Pj7ab#M+*x#6w86?qVB8|>f5a>3MLWe-ll;g?6t@&B$AGK#)DbP37
      zsM+qc?K^581&!c@L-3)g|D!d*D#gmkbcWais!EoWiWNo#GG1%G>;=A~_=!pegRs&V
      zT9(lY9Cv)L@7s$_6L}01>A2&%R8c$@0;EpaZj01X45$(turZAe6HnqP25WA^<HLdC
      zh-TMr3t6R`GEn|8(edWw8KNtv1Ul<7s6-Jmr)!-HjiwVg4Ua4x0n=}J9_>Hc2yC)R
      zGd~3Cj3B8-fv6ytMsY-0-^IvlF^=Ij8VhvW@tV>PViP*(j8?J@+tYYy*$Lgy>S8mH
      z^Cn)#4uMs+@}<^TSQID~|EsU^n2`27)eLN(W6|MCuO6HrQ%|0bn0EVezHv%MY|_{x
      zuyJLeDy}Q*w!7D_x8|i6l+V=Uf-<EO`vfMc3$o@McjR0_7Z?xW3&9CHC^*eR-IsPC
      zeYN)roKeSBLsU?XH#69c18OwN0@-#gRgQ*NpU|UHZM6KFJm{!NT%-6d&;6KU$j)=7
      zc}+OyYJRygx#mpscNKS&j0+Vl-9)C8T*};l`33h0tmf}(eRd}d=5>)xkID@5(Tg?Q
      zDXhK-Yd5nKjHOFf@+SIMU@|&fVfj}zL@rE=Ab0>dJV6izmW{yPW{x60pov+USm`><
      z{4K0qLGB|ppvvDjNN^hccvDv>glFRl15pLyVI6BJ(P^xYYE5yki1+GRo4-QgJ8XE2
      z5$~{$P5jw56}@qdUTv^a@pP=>7<niaS?dD&Eye%#CHl;ND}Q7~M(DGPZp@RQ*Crtw
      z!)LKcn?x`?6G<pyB$DtUsVOT;$z93GE9e>4UX9I6o==E;RJX@kj$V5BSN<xq!!EC*
      z6~H2QXNhr+yZ2c2eVTa=MSP&yltT2FO$jB<Cc%u&nvFqz&vKO{qtTex>yfoN8eoP7
      zTtq5)Ra-E&!Xb3vBRcRg>wVH@a4xQyiyRObi(7Xf!Z%BgYg;&YpK>%Vv>}=?qJF27
      zufRB-i=5o5_du7T7>>f{u~i*>2wc`+;YH|*zy!ZU%gyj<f@;Q4)C}E#;jx)r=aXXC
      zy7=(#HuH0w8sJOHxJKiz6YUz-;)bpenm!cM9f}M{Fhkj&V3izRh)myt7b6Mxc+=EX
      zujt0-XO=QM47E%S8cFLGwp!a#S6~hr+0^in^C^){S@{{V(mfe8xY6gVIi{8djYlp*
      z2^j)^Pe*@X**h4<kNm3KVMp#_JMQrvaToh=ABXUhmM|F-i6vAp!E?&Q3U+D<YNf6u
      zKel|!>|(xwA>INtRVijp#+T_c{R}8CGrWxMZ?OBVzP&fG|JzXO+*0PSmO84HYDxK-
      z(QxvtxxCgi`iP`W`bGFN%m2bszjCyGqq`5V1;3Nx14{Y>2k>WGN6N9BaxAAD$yv`H
      ODG}-#9Hh(yUilY@{&A`R
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)8TXPd-7=FGsY0`A*A+(`TgisLLqz7p^m4c-d&_F3jOO)bilWxmmnv~6^RN%@B
      zZymi;8E~BON-l85wkqT41{C!lc-CLwadaHV=lgb>ZetjoPP5;B`yQU>eV_N+z5Dlj
      z9{|`6JAev-_2>0jeXcuy(acVDkItCctYIC}ZR2=u!pH>R6Nq{(22*+4($ltU=~`6@
      zG)k*(GuJ(8Sf-vaFX^d_A>f-}EIu7pj|;Y$=^oNEMs`BC`UU)XTeob1i1Rq36T?t$
      zdPcXTHw`LjDX=Q-x*Rc$4DUrkpgyniBn>NX=CY>~hq!%|rbD?bgJ$ido+%jq_s0W$
      zzrFb86@jXKX4bSHWXQJmBykOqUjS<aYL}5o-XTP=R>NvEh9J-)SL+21w0Q_fv;Ojk
      z%kL&+#=2oMYm5}8Q-(F>)FwQfBeA5;dXcTW>9fz7d4UZo(!Ki9A3`P82C!M6Rl!%4
      zOJp*}l%5&1rV7(W);>I!HfC%VCy4u5;*mlo6Wul|%d#!1yEa`Rv|^hi*(T8Bl2pM)
      zZHtQNZ%@`BhK>N@OD!&Gl7>!n2~?+5+l;YXNt_d@^G4e4Z%+jA0JU_=xKJ=HBdTyj
      zbJ=Llit3ZLVMUb`x`OBt*jUagWlZMiNI?+v4(tkGr$BhQc}ud=up4^>YNiZ3p`?(e
      z{vvJdo(3+N_E)pTdo=_Qlp*(N*bgcskT>ixbDD0e|JC;Pr1UwUp&B8%I;f!rAt{wZ
      z8V=)#5~jVBz}2g-O)0>yNYlatMQMp!L|fuSohD?4VGSBq5fx3OHA$}^qasN7CpA2R
      z5y#MhAEe8uGhxk3J|*qrj8)O<upBdKuEvI~USaO`P(Y)_h%x6_$((02jN>fF$;xFi
      zoaeU0xYT+eOC$1OOu2GkOO7WkW7f<S@@|^I4DTH~xsrB4q^KZQ%F(oU@MV=JG#F@P
      z!6vC9a<h%0b38Q+37>6q*{<~}*>j*sY*jRK=yKuWSfTtS#U_Iwfd*v~&F1W=9-Ux5
      zsxN}9h8$)XjB?g9oY%4u#@Q>+iBK$KXf#)_(#8=}o{&wYhi;eDG&YfJCI9{WtB?xi
      znOz}Or>@kTx>6auu0t*AXj`xL8n{R4qLIH%+}Y0vg4ep(Ekw>NqFIRGBG$d7jPK)b
      zh=IXA*5WKSaHTos*oY|aWT^FSs2>T*&%IP^5u4(7u<90C&xE%uV(W(;x3Q)p{w~@p
      zaLwKCmiwLD?{xOBy8GMZe(W9e&Z95(Hu~ZV=#O>GV<6T!kHJ`zZvjKg=yoZJS@>{)
      zMX(S?p15qDN(Jn}EDqu#5}2d*pG6Xv$l)?{Tv1GRIA~oa#EpmWuws`|rIfr=a)8N8
      zu4FlVe4fBjmvJ|*vUq+1J$8eO3doXGsm<p-<?<KHbsQtEbC2sBlq?r;;%15eOCJAV
      z(f<@iU4L)#fl}w|9_QucV`ZHOOPz0&bw14kI-2<}<cl8vW#o?*{a;`~Wl49k%foS(
      zKHDsp$JpP;*z*&|c{6w$VR`9L%DD=^xY@A`wpGdgHhXf10{;Zf_>|?pi!Jz!A26Sz
      z7hfnKQ74&OLLZ+!PESGGW<0@;S8)C0{{vU)0XN`)8*so~D+}&Rg8Pc#zGkX#nDASI
      z`;Gv<C%7N(0q&_HxTjrkd~>*!e~wh7EPGmBMN><C!|SMPsjs_^>X!QY*W3Zp)c~=Q
      zE!UyNTIO*qwt)2V$T(&DiL(BgXTmQ$uYTpo{EjyK!MF9FME93M7I88a$D>CLfE4^B
      zrd&LyXe05+E)B%rV7|DV)D`){tO10Eps3}WstygJ!4p4Rj2~7*C*z+h8-H*q{$RQI
      zn;3sH<8NX7t@ns8M_I-<ao)v$*{x@9{9{C3Mxc0VJ>wQp4kpz&{feU47yk$mc^<7G
      qxQ+u4u>&<?Cz`}=es}fpqh~L_RrYy+^cIQs@|?M#fLLne^Zx+!_)abW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)-A^1<96fjW*ku_$3WW+qm{L&KwY%2ODzp}%)om$Mmu|oO=)m5>G{Y>JnWfO!
      z7oUAHHYUbYV`AcCO>7Zs>YEQ56aNBZ{2w$iF^%Wm8J6urA9nWMJNKS*?(dv?=a+{+
      zJOFSQ^Krxk`mR~4)>_uTZo7-w{EF?m(wnyZ;7q9~ojB?R%<35v^M2r23qdq9n$;+<
      zSIx@WrEFe$w&mD2ta(QYwEMbSke+Xs+;h1p0dY#8WwPY@f#n7T%PGr-%;$gHw3`3=
      zM4;XwH<wLoxN=}SS*2!7puu*Fa*fM#0*&LgYX`>!>PAKjTr^3sNz`Glfp+YPqg$YJ
      z8(_lotaXKwL>KlZ&_gh}yb`Q8V?UmZqfel9d$yWrpdSN7w~9r9u8~lTW3fWB^Vj4;
      zFgAKA34sF!260dz?#n<eBWpBwTe#BKHf_6dro22ay}7U~9n+-+%PCka70VP2)(1<r
      zFVL^)9%l(F(Oi^Qt+EqQHs$R_*9yuWtKD5oKb|@^rWABP%D29<#o1X?XthA$T;65R
      zg*dVTgSu3@7&*t0i<UFtEtZ$18=P2MkShUgPT;V>z}%8F{qo9+W6PpxDG$u+mT%hb
      zD&tYiB$2`M%C8q{N}LZoW|6X!cnL@1c$sn7wnv-k8+Zk;G6$9))_r(a!8LnRA<{bN
      z(=Pj?kBeJAc8rYfT->!|P*tmmL6|ULphdtSz>HiAQ_VB6wV*mWYW@iWt!Pv6d&9t+
      zV4~}N`vwhUo^xvWw1H`yVV{7iJh@0tH4w|fw`V=MYM08sK1c!y4(VnBZ!t=bc;GOi
      zH5Lfu4a{K=v98*l%m-E=Czlv>$>1j#>j-w&Gf+@UFBrIpORSwfp0ihL%-lLJxdh%3
      z$ULHlIVelBSdzZ!mI70*DSftUs$*a(vGhyN5$M<%M}ee%nG3IlWWH4P7UW4=-8x;h
      z7g<IH2nSgDI{q5?>_r?2wwrht#*pNX4zm5Ba)$rPCf+4{cChz8-^cjBKed6*`{=s3
      zfqm2Ijwd$J8^ifj`X0=0`8tLnKD$W(yoY)$5LEKgStQ*OhV?rQgQxH`dj_dSNXuJ|
      zWCyu^l%p}EH0cGl)a;}pt#H(7j#h2~SSQB^lzOuYI~iefo!*i_S~CfS#F1wrwnNd@
      zibPT@reaC|j70juXK1;P%*BppH}Kp~sr2`FahLslOzvCM{wen1HU{uTl?Jn-!NeHG
      zHRDknBTu-$*Yy6fdK_p-eTU<BC?PCgBZq-+G@PN^4H2Bc>zL$-a-^W01ctbHN&#%*
      zB#%+?E0&5qHClgV6Q^RhBet=_vTYDylUMhTRUAVVj+qL_>4>98q1~<mE<OhMSBC00
      z*5mgo;GPQbYz6oTx2iVTx+OKlt0}>sRVb|$6n=3kbqsUzQRHBT?ip!ahb;%sY6n@5
      z^w%&_>ANh<J-nT&yNfB6*Dy={R1N%1FaM$Tf9d6a%-BPWh!_ruI<2CcoZyWe=2o@T
      zajDLh8VR#?j^>0Wt&&0IRGD;~%Ff4dv@iB$6tBx#TpzV4QQPOI7ma}EL$l~dyBI*P
      l806P@h+o=at;Gy6D_Vx|E>9c3i|FA&ZPT^ALe?0p{{bLH*?s^3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWl%WA?<6r5viVy)H)3jTm#HioXd6uR;SLiV@jV6VhP@~Yp~g&*KYm7c^zOuM<m
      zy)*aB%(?u0p8>qWGSMK6_9{~+C;rmG&e<Gw5OA~zJ@!pB30BTJz7lTrvFB|<XvLhk
      z%1@avoXr37Z?-Fv-Ayu>*#9+zjwqIVss>qdT}PbhFpbOEedT$xPci1XjuVztgz?p{
      zO3N7siBlI9{)31QVa9ca(B6b;wB>j0OZNVK*J)nEAP^p8HGm=2A7LP0fr(auPbIcX
      Rd`72u@8&2!U*v3{_X}Q$Td4p5
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{JyR1=6g`iG0GkIJB1Rx68lolv2`L@ahB0Gig5wNMDw`!)V42OXvzs8lz=qz+
      z-p0lm!5IsGfIq-OZK92hjrNY`ZPwtJWo-7|z31L@?#Fxo>+L%L6;#GBA~3UW92kdX
      z|B2=7mbV^zG<hO%f%GsUpdA=?e#dBbTu(q$!+;;uk*q#kvo4UhWjR*oj=*f88kJFO
      z2*fwsmN@}|Nr_P;l&4FKVO&ED(-IR%3&aX4Rj*r)dB5A<Hob?&wr#T2y4y7DhT&Q2
      zKMck@dzLSdiBQZ}*p<F(b~cSetKDrk47*Dj($|#SyhIkWVFp|OlcBJS5*HLU&FTl9
      zxnp{s*$V0vdRgL<LdS^?f=d!tf}kG;Ic=d<Y^Z|k5_wz|80B773!=uAZn<5rX;v*Y
      zTC#tWRkc_FS#uoI+prDaH#wVr*J;|W&zo(UojtcDQN|j{d~Soa%Y}&9*Q>>-DAu^~
      z7$3$+Dy<Fx&~p8Z(C7L!;z@e9F%snIrKMxY(#kQWN^g*QrAl#*UyT+_*6;x{^dx;i
      z$9ZIeIM)|aJz}Q9a;4Xh$!E_oNoVQ=b1$Ivy@jU=+CO^9tUh~&%>f^&^a=B{S$xJK
      z?Wt03pu{8oM`>Z8G<Swlk4j&t)T7c@D)l0jc=S-|W;m1HA7F8aHW7^c?Jt_s)$o}_
      z)8x*e`5sBb7ZuXn<Ehj&QmUJ5K;j&o;M%{}`oa7B47f7={BVb?L;*#z#ZU@vu#6R2
      Q^%&IUfHZFK8z;W{8&@mHz5oCK
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TW=Ck5dIFg<+2ot6x3csMO|nuwOVgf`+%B|fHA@F;?ow6a187=yGv>OO}?05
      zO?>bN_@j(-*ey`IWV1Va=9~G>%s2Dr@2}qg9^ptqfFb)uKh@7F_E;FbO6$ZTQ`}b&
      zV#r)Y7?P*@px7~oC#Jy-hteA|s-lmbO6|g1Wr!RKLpZM)@|s^jsm&0onOz<OLqbIu
      zkvM`#s!*`P5Y%Kqsv!*iel$Gh)<^w#z^S5!+0h4W-4gQbIYUlg*bKSpJ^wdCrKEb?
      zY3gTUI2yL~!H8&xz8*&o*A?WwHZM1z;s$Oqtjsf8;wvTQw9>qrH)6;QTbM>Qh7D{f
      z*j(hAp(<{nzz`mbuG42=b+01Q=b|E6%Uu=4*_|%t-nmLee6aXuZdtrLZ9s-UP@&22
      z^djmeM9DRa+g7n7;}mjwu<gM#0j*wY%i{M`S_djJ(&wVrcjN_+RXo7~B~rMX7}n|(
      zPMy#ONEKQ4()4EyljQN1IkGzZosdIIxJ$Jw_k=;M8wR&(1KqYcO)d4-=nPDomafU2
      zzS)&((bkmxx5j70RqW9U1!<vKIwSXp{^YA5O8yxAJx72ZAYR`7L7$&cztbszl=Mvz
      z>WPJrrn5>p(z}WbS%z!KdMpQIC6*{p5I@J-1nb}E=+Z<a#G(rni5bQ1WfXUOD3ZPu
      z_m)xI_o2x6Qk0faP&-!|$@@|~#IC2sC(>IgzUFFCZc4kpGePAX`*U$uWDwgxlx-r*
      swx*;7H_=mvDDV^oqKzVnXVXyy@nWj$OH|3m36rve269N>5aqx62LU1C?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TW=Ck5dIFg<+5Cgl&bZDiVC!rDpsqsHW6<mU`#N)__T#190R+}?ot|mlP@M%
      z6CeBm{wU)db_>)l+3e1qnQy)`^UeJE`|CG=hd5B+W5|5bj<u7rH5PiW+&VJJ<SPmS
      z4C#vzhWN2I$ajq4k)d<lru2qHm9?>5uAO<S452-t3;PAbTEPoYY%>IEMwdsx5K|FE
      zC<;H~DikCb`~?X}HiXXKkA{cb{HPrcI91dzI@+MEnL?gjXTa_Yiy=F`=l@2ilw^<F
      zP3=SsN5i%@7!eK8*Q3bdvVt|Y&GQYYxPq$;iFsyAe5J%}p*Zj6l^Al}5{6!l;2Lfy
      zxW33Wi>kPZ90}6rqSq(ESlum&1Uf587IQ~Mes-x7b1q$>Dn6L}GdE4%opvDM_f-@m
      zJhd2g62jz~;WkukN}NJYH*C3K8bP66Y|HAmRoVxtGB_4pyD#}GDjs8p@(AtZ1q*dT
      z6NWZGs>r(Mrax<#B#*X?k=fyIgdAGTS*k6$Ck$#`*ST36XqLrkYRT7nXJA;gbWLve
      zjjmLSwx;C0H6A0bVw+aTPYcabX}L%ACtn3&@<-@z7e0D`XldgIeSSjyPA4Cd(l?Dz
      zPppg-omI+_-W8<DGF(E&W!WJsW3kc%(NnBWu>OsX4oyggSY?4CHlw(;jN-Nj#jYpC
      z-DMQ_JSg@(DT>P|sGSRqy!51afGt;xPo%e0eAUsS)RcB}g7W$)9?iu~NDzCAFnfm#
      st4~RDPNJ(0QQ!%3L>opNPp6~u<JnZ#=ctm6QcTJY8ps}f1C+o24?0QYNB{r;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(T~`}b6y0|cNJxhUri8E1nrg90fKsBOHc)ASYFY|aYW#R|AVZz5WWt&xl}G=H
      z{s13zEt{^TE?<05>#O>#KC91N)z#%bcZNVEyyV`wcb~KOIcMKIeDc+|0Os&+42HtQ
      zUHhKBH{1Bg_3q4W?)qHLU8z)pT?|nL>nK9OXv`@LtsT88%3VRB=bl|{ISQ(z5O3Bu
      zo06F!*_;lVt=ht;PZ<(ju2-BGPAZH@%EPx;TW+=D_;Cy<^mmkH>N}YP`eB(kg&~FB
      z1=n+%mlaakqxo~?J}3;E=s~XpjhYz4ID_onUB{~^%p4Bd*t+X%H;YGghDwTYOt8L;
      z?NzjdGm`C@|0M}4J3fghI%^^pD0<FB0w)xbYp&<4w`yCCf7{-wvVYcEecP^<ZQqse
      z@G#o^&}}H3>C*p$;jyh#L0wOex7a1Bm@6j`L0-B!r4Y&H%8`%h5>a`<L>zt8cE@Sn
      zwD;Uvt5yzXOIS(53MOW8kyEVMd$fftbb!WlD*JdrzHH*90O@)f>3T#CGV?9p*>QZ|
      zsp#B-T`+M;usyrHB3Q3P$BFKMu9$dDC#2mZAs2x(LI_W?rJ%OgO{`!w!GcOAuH%M6
      z9}{s-w(IGNSA_JYiFIu7jv4mvqS=*PnGohyi0$kjs};h0r^a~tQz5ZgZ~5EKHCM)V
      zB6vU-#LWt3$@3h4xoS5W4(Ha_u`w=EPlSz*z!G<IXNf1c8q#&HF(T*<{+j%{PNd?R
      z`5OK2S;+?&%zueg8zWY_jnmv`xNqax&vk}#{OuLI`UaESn?Wp|$9aB5IqWP?B=0u)
      zL`N$B0J;3seQu`jBa^rIJM#rE3`nwJiiG-}e+xg*5<l|6KIH5BNhi+)3Bu$|r3(_V
      zDP595D%vC@d_N={3iQt{1ls2o(-R+j*5NxTIn~dIt6%v3e?7!A6!OF={{`*S0T%Qk
      zcfv!Hb?2E6dFH$E{6?PN$@9lCJg;<kUJZF@(C$3Nkf+#<=TGwdMV`Np;aTkPTn>5Y
      z@sOv%j>w=U*{>OE`csSt4O|KdmlpHvAcrRR2aOB{_lQG#j6wAe#?-&as3(U6Ooj~|
      zL=soEfH973ITXOB6AJi_^fUoB(!w6f_=J9;53T7ou5ptIHi3EaX;IV08zq5c+gMA>
      zrj4b_d{n@xD5DNMRuDrPar7DqBn=azMnBFPNt`zZkTp(W#u!Gy7{MiD6syJ<){Svp
      tMxOJhtd9RSa7&j_z-hdRx9E#iKBP^aMY+GNJ@z)rT;)$ep5Z$f{}0ZAOx6GZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`)OK%%h7(Msei5++1#3qj>af(}7VmnEb6vE4KAPEFqoV1W)sKjOxPur>NvE@g}
      z28lhdHLw67(Qa5!peX|J5<4V>Kp-Iyf(3{jKLK&>y;CO;XEXQCz2A4v`M&Rr=Iehx
      z{tUnzo(Vw;Bre-m?CqJxbFO!BW}{Z;a(vC+HoFjl0`dJ30<tkDFi_Zkl~s4A1iG%+
      z<(4BL@&e&zb)%_}nUYHDq?xj<`1C1Lf-BXM6GBvASV8W+U2eJMl2Z?(U!b?GELpvf
      zjGz~B3%6lFpnJjf+~%UdU}`^py4VAOAq!pTR!N5~j9`>WcCF@kC4uR^NoO`MJ6p}{
      zex1IOY#0gFm$bc-mT*L&-Tprizp{ftl%k^+LPpUY79uz#&{uFhXT4R~bn55q%`*EJ
      zFI2bea?!54>fJvKHZQpifg>IIzdJm(b<))J-|=QUWM$LE2m;8cZcYjWQt4vg1-eA3
      zJZT|}9%{SjG}(W*(yA2AY#EkUX{RjAU^argaZd>I0@2+WuG!5?7VgD;1g+TH>{}|I
      zPty}YzR^Nzp<6UICwL26q2?@PF{?scPe-~QBV$x?w(eYT>UF22b*R{73lFK-t{Sfx
      ztXD>d8Ql(g)WRbgkk(XyTvSNI58+8FZ~Cxi;WQps1)Z^Q)`)jKmcSJHyT)u;V{T-l
      z+Ny6ktFD^VA@j|gRK*KedCzm|D`mUUa5$<ScFx>mmOTxyw*kbJA-Rhy8*r7X(Og4}
      zpdI+M_;#9+f@|^<^q!CR-9#+&AqICa93R`kIQL2JcW~@Ijc}aLZWS+|#|iE&lZ!hs
      z!M7mio8pPW-6EgTF_^iDbY}7fH&Zu|%*6SezRn8?1vW&HkS`)AUqX+38BzHP2IQ+6
      zJZS)Ya6;*Vl-NOCk|Y(K;S)aV6Al^ua|=fMTy8A!5$<}o%@|dv@->9z>*$wn>|q-6
      znZk(Ter?Wv7W)8qiivLN%(UP$Ep%pjhfG(=bnO79#WvG}J`=sxnQ6&qTI$SnolNhO
      z>4O89R@zJt`%E;f&(va9)VL<twdwfOTS%BTuKJX#xs2{3ho>TT+i3>)DTnttV)6@&
      z$S-kBezix!gx}T}Vt7nT7~wPTOW>E_OZb}tf|THmDgF~i$eZ*H{TQFxL4lj3*%%XL
      z#*7-ebt$JVxh^Kg-^Qp)QF7P)ELyp64a55Q*3r1R-nHT)`e=-A&@I13pZpGo<@Y!$
      zf53$N5h?i-rsdC=m%kt<f5o!=4eRoEoR@#VmVcrm|I!s_Oa*PrdU!%tJWoSCsVmO$
      Z-?+hDfTlX9P5BgxTqEp)`f{Jf=)YwbTzvol
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvaT~8B16o%i~)_yTkSqmtwSQWJ`9|aLmYcP?7q)AbenkFWCv84lSUAAPqMK1j*
      z-g)DNCR!3r`~m(b<2k!)t=YZVojD)RoO$2*_51rz0Bd-ZgeEZGHBODQYX6;SA6A<u
      z4*eGPOncDx*Ga?$^l*)U=nLc;;Y>{+<@TB`lc=Ip_G+q@!F(@D74e;3M<p>KFw2DT
      z?9+j1b(E9BMS<+tB*orAF@p@U5|=O~ka%p`rn@aLT?(I2Zlxh`S>gf`+%zpQgIQ`a
      zPEM5F5m+8?dfx7;eYX~#G?=Bvh^rDwq-dswX{%?0<F;~M8f{CFJdNJIVYLj$<b4o~
      zyGJG|RE$t)Twl^+)*t164{GIB1~C-*vNr@`rE-goK2+|Wab_M5j$4K`pra{X=epYx
      zcW^7HAYJ}eaIPeAlXFwl{lZZP%5hZ3>*wsEM47WG%8r675=&mN9|Xy<QoY=Yy{DJM
      zUF#B6tkU_XhDA@IE|6*V2F||PHCd4f|M9G_w*s<m+sfIojDBB{Bokw%VwG%)5tLM9
      zuV|H|H3?1MH0`!2E9js5fy^sio@27|75WglA+CI;xQ03UCb&jhLY~&ruSWsbXcs5_
      z<^$F)RcjQ>RL*g|viJ@97uxxRNuEO6KwR5ITHEqSGk$eI;*0ZybY0dnV6J<6AnlK}
      z;C>n*{h^+W4V4a1g3XEs+zkQhkpS{68c+!VnvnqVHyW@U0=$U?kpBVTb)ah@udjVT
      zmX*-ghPd|;lGk~c*8h~&$rEUYNN7jUwJ!47TaWLnT^Oldz<q4c2^uy%Nw@HTy`u=f
      In1`7A16KRi%m4rY
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<OHUJF6g{_(X(@xil=nkGLE2F%_*M)Hi6%|JnA9|JInWOrGo99H3oKl?a_w4O
      zxY7*^O#~86`~m(b<GtTZN&}6XxsSQ$-gD3W{`~#<8^8)yQ-~2}UO9WtL7}nl`n!cv
      zJzz6ma;tSug+U4lf_1)#5U;vEfr^AgJy1K6a1IE`J;!S)Lb_QiHKiS4D3{-m4h7GV
      zAv(Ltu=QF+rEq~TdiL+5mg`kikj4OEpp(vQZD%%vK3FEQ7$O)CUEgi45r%W;N94;r
      zAdHykfgzwV6XTd*kW;TKze1SG70)w^X0Hlj%0vdeg#HcJS5I5jEfqX>wme?X+Nf<i
      zUfBs;iKAqq`O<9=<}{W6h|0?wxni-HFJ}<PW!Yt(^~;5Xub4=}5b8M-snD}cq+u}3
      zSNofydy1WBT6Uch<@<M4bJIC+tF3A|ya9LQ^XNRwbebRJN&%}NP?e}Q%{lGH-}3X|
      z`!%AN55+Q-nIB)4kSWz#!M1whiVD5qBUzIB5zM0Rt6<%88V$uVn4O2iGWU#g=L9TS
      zk3CD4)0S6b8<RV+O>rfw&R>(GHAWHJp<n2GVfCM2(EfqpV~ieS@|#9Y^Vg6X+Qvop
      z&9ELbnB|CA+&TVAuNKcpupPHgaLJxL!h$_@ghhM$2zl{_zw^%+q~U~6p(?-r8hWVC
      zuk<yt6kv=RdWao1iiU7YTn$OEca6Q6jKOvGg#Ho=5e2cbPLj9CAGXJZ{NHr&Pqz6l
      zcLgt;1;6VGUg-*6JPUr`6?~%&e#{FA?W~Az-TaI+JBx=Bowm9l2c{3K*GJatQ%B2e
      zdzo9f9VxNKEkz|m4$+}}MzZt;N&2cgjD%Hfr48KCO2=?l%Xbg=*=Dq^aXi4pKh|W@
      AMgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7&sQ5&6#iZq2pIxx5z6mEEl3E`2((oTjaGixD8DQeMYMKEreq+Q#F+`;&W#6G
      zu3UILZgimwtE~&cBj@PK<2kO?KgZ+uW`+>MaE^=QzV~w9cfWh@cVGVa=jUGljAA#8
      zkU;a6wxjJO>|Mj$Oe_~InlKcB^YT2A(|EeLv8AUSf!ccu%QGtiA|=o`RWNNwGo4i}
      zSJG=fB%(mwq+uFPQlKU_v?`!X6*9Vt8Z<@`fhurr&M@_bQhr0XR<w<r&ggT6w3b`d
      zEJN=7L&eD&wm{3=X=)P!^=Ut{KwB&|6yy{}t3dDR+x^Q%zL?X!ELF6iO%iJ-@mMOA
      zl9X$9w46YPyA497N8T`*TG7%U%8j<iv^I5TUfVPBrMz1WH-Fa1J!eHu&M(k&i8po2
      z(lfqqJ<t4QG8Pmw=<JNN2L!qU(k8j%ocl2-bB+lN|NmetOvoOUUt?4O3s7Qv;(_<i
      zAa+&YQV=l-bxdsp&q->G(-sU(8iIlA?Q+2s3V^3gEa7sN(%rsGy;5=l&qr|?y>j(p
      z6n*IRoM!flnwcp(O-6A^{uGh-9ZQp)rF5s|wU?uK+5>ncitFBLI*OapU+nNx<j3M&
      zvN^u1#HNQ<<>l9-7{@j0%JxykG?DF6K8&T{7TwNdj_a_9K~~x3TyQ{wyEJ=7neX{!
      z_U3k>l*=s@4AarAnZ2}Lbc}*ok2hIg+nw`1&Dt#Gb<^oH>^_suDps&2d+@eEtJeb$
      zi3##um>60O;~frWKqp64tmD4C`<_61Y&KA|Y*n2Xnu~{8+9|MrVwTzN8W|^B)>J~<
      zbrMsBe6e7X-NYHma{hvtjH%F(l}wDXlBxkoB$7VHKYnSdoJcXN8=F}t49X%X(zuE|
      z$XZ=4l&rKqYsiK*cx}8YYa|d&nWk<{<uu#YDcxx014ItxuJhjf$t>`f^2jQesizwE
      zdF?<g>bMJY7eYOnp)gCSw+5b!(+b+!_#vV{xGqinR_O}N(De?^aTWEPa2^-9ixA`~
      zAK*ISB|yUwTGl!{I}dU33AZ6g7#SB>u7GGj2TwhSP9Gvg2+7rh=;{uDxbH&rd2Z-(
      zA$S4ZeuxJ2a24V|5Jwa8pNP}zTF$d;IhJnN9$fLmCYhbgQawWdT738r&r}ot*o}J8
      z^TLpuyR1!|D^?rBc-F@nCo`F9<Om~cEM=k^>eGrEL@*|yNRs2uOCkAE_(0dVlR#?x
      z05|w~A@j)fIH~5B6-cVzkdS;~0uUx7$|;1e0}y~)NcspLu`mjw4)OL&lM>=qSNB(>
      zbcoyEAWSor?D-tEO0ugvv){8{cwDB~>2~H@HuMqe^c_3(J&8T$tNO$Z8ux&G+O_DX
      z#-vD8dd<oX@<tP0<w^?T4pKg)4~SUHlYzme&%XFC6UlF|XMg*X2RD>>t8#$XPGl^#
      z4*W>D9#9yE4EIw7jRBtqVKIk!hLW=Of?wjiNNRFc7J?+R=t|~|>OTMG;-4*<yPO7Z
      z@>Yl~<<}nn9gRm=S!-TB#9O}}VSViiOZ@H$a+6z(Kk5G$i}QCygmygeMcEDw8$^yE
      zjf@|mLX^4`<>m>bJD5Uop}g6SU<=!%6G1KrATI$5)c}bAfDnp=3E_QMv^QDD7V@#t
      aiA7q6c7(P>+fTbgyG}o__PTHLp8XfM69y>&
      
      literal 0
      HcmV?d00001
      
      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
      zcma);TU1=t8OQ(MKr+K{asf&vlL-=H5@CiwQcO)t#26%s0$Q<<q^<D;jxgykLuL*k
      zsWm3H-tV?u%ih#C-!!@^X8EAK#<lv^+jCoebhX;&s_p;V`^*J$l9aWEefB>4e82zx
      zZs+{ri+A4xup5s@5fN-V?w)i{^_CX1`I+AF`67oA_jF;w-!@ptm;9oe&HJS&>ILg{
      zXK&8szB`W{_ojS-oDzI#<WdX$ymeZzde+O%%yQqV#q6{{E2#I}l1@vs	c`kK^in
      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
      N)DK0$BX|rA{{u1PE-C;3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{h%TB^T6o&sZEfh)tDc-M`xWL9}TzlDgNl1t>(Xg*N;uvU63#dCE#RqU>;w5q6
      z1NczJGtw9gVbPg6fB*UCn=@bEAD;j=v1~yQylcPb-)+RVDrjz;+(bOp{rj-nS=pDD
      zGK%EIzG}-LR$*YlB)G$VLaOJtx{^ROLV8;Ts<TTls;doxxffnY8wPR?EM$xaK06CS
      z!9faXLb0v_dDLy6$>`KSYjKEM56}Hp!;h4%6VdEkshF@<A3lB*?iL{v%TA+@W>#w&
      z$6!*{n}0e})@<gPaWIQ1LWzGJN6FQbz4l4ijn3tv(s-r8Car56f>R3u8SS<FIF_-6
      zCBpP5P7WAqtXW|IgBwE-x+}agc+KtNG0W8s>%?=;dx!10&MWfITnZF<Ea<HQFol3E
      z42-en^zA6Y<%&?ocoMbCRyHH;&HYQUwJI#6MCLbPvhPX~*pCVR_=z!zsU+)wJsPX*
      uy&&&8kH~m$n10gL6U&2m4zePTf+!5&m6LFRxnK7@7I@Z=L0Ck^w0{8m<bkCC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+j0^?5IwV87M4v2kc)~J)WiVMVAQBFRD1waqC~C2;?>%~1jb@_Q@e|azW75v
      zXjQzF4}O3jrS|LsAr&lrnVz2RK7CI2{QUL(2Y@wfs!$k~UmI_X!;*U-tWK%1?~th*
      zZ|%OfSmk@%ad`VN7oD!BBFs?yXL41T+;W9&F|ZcHY+Y8Aj03M!vCVzk;+D6`5cBMY
      zCtFcQz7XW}3`xL$rHpXJZu1xt4B3-Ba`s-%wN37I{qkg8So~Sv+~v+oW4Ff{(sjFK
      z^qPhvq(68JQ@YC#wE7RV#2{K0mhiS17V?us6q*`B$mp2CEJG+?XvV=XuOoseL%cOq
      z%aH7FZ^t+kX5VZYy*^Q-?3#uwE~q$9ginu1$3<LXm_Dv-h<8*tKOB}E=xEfNaa_h#
      z6<5ZwMo}G$SRy%He~q*jYQ2ntiaa&&Tl<sWF}$vhB36i=DQJC>e63cfF-#qZHt~2h
      ztoP;6Xohm6kdls@Bf>!}Ae^Gg7tY`#`RZl*Z5?-H`pkGVD9{>q-)Zq}Ay=6i|BtJZ
      zD}!FMEbdf#hU;=y#RkI}8JM(F(s%OjAV(_-(dTDS<eumjp}UG0opJJRkY!{;Y3(B!
      z1v;Hk`J`-Mitc(4#x#=TkpiUXl%?C0t&r7<Uy&}Ze8$`-@&bfu*;FYbtZX5!JoJ&~
      zgX{qk)nUQ!M0#*`fcbQQnJFG&?hDQxAy-bl|DFAYYad47ngmj+NGOlSfHMQ&1ZlgD
      zB?4rmZV0^Y`#>T9UM1jTz(DVlF};bA-nG9$+?oLKd;)}mb)WfN+>^uddECbXXnz29
      CBlqn9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U2_vv7=BI?n@!xNHf<wPg^E?u&=S8D8a@L^uvDZFMX#3TP}kY)c6K*_T=7%*
      z0bJ;e4Kp(15Acc^#*Yhcyz#~xgd4nZc;4NmBuzTQ#h!EaocDR2_v@Tr{{QJ`0Po=I
      zEK&-4zqPJf*Q>!b+g+=!toxjntna)|ID0~0(Y~)+@n#koh2o&GLMm_+b}kJb#XO4&
      zhHkCtWvi{p5ZP57OVmP9<GET@n2ZmsYhktSwbwmYyP-fsFE*n^d2SduQ}<dri!p_l
      z#f4t#;~m>+Y2U!OLa9HT8Sl!Bc$G&16DB4xr7%*nT{}FiFjXEDnrr4j2@_cu0(!;7
      zPD~SIt*>jhrLZszG{BR%v}oWpg^YM%V7Edp@Y*{3hUpOQ*G;?#Q(<h$cJ*?neOdb#
      ztjkW6K5x}>nwD?Nf3le&Fi?oI^BkpQTI;d1!;BXPd`@=yOEcHZBaO18ZcZUxj`Oq6
      z#0waaOf8tmA<x><vy5b#L9RY6tiq_T1JAjt<K|*{lH&Gzw3x^H_%MqP6n1RaUnV}n
      z#|nit9o9WJ2z|?TLyFdtdTen!imqQJ>GvKqbq}JJ1v53fo$hRpy@^9$-;DP8pithn
      zCHftp%ow3(t?PEX({5T$huLCE8+j)3xXHWvt|a?}i6c0g*s@ih+RE7{CQi!PIC;+b
      z$<2+J<n)Y*({gI?baV5piBEAfeUp!Y=$v7l-19nQ$r`i_5=-uu8*#BOnmCUYZUpuX
      zI+$PaI{vCYWlLj@_dXr_C1(m|!*#V^cdQ`LEJ&gM24aSyX^N+jlBVG*C6_Cj**csJ
      zTJR!p9Od6>S}M-F?xJw1_|hE|D?g&t#g5{uGVJ2e#mx5+eh<eHu~zr+2G_ztBxdm@
      zXTBwPi=(hQRLyXntlYug%DxR$D)SpCRTefd{{#0^5UvtEgu2f+@K@y2Zz!nWF`@p5
      zxGOO};U*LI$J$&~8AD3g@irrpNLkB7`4Ioas|kit;WyvKdvQbuwg&NMPY@HEL9iJT
      zDxnlAgFzhYqJEp}*zq_CfA!#vO*|WBIR4aD{NF?IY^mY+##a14L-Fjs1b>m<rs(rj
      z?Eg}2y10Cc(RA@yZTcBmQ8KL_z)=6P0uNb%M-g!;1}A|Ttm`>^PHH9nnn)Z=Byu7#
      q-Nl7x#mx&`JtpmcJ#@Lvg67bS=u-G1%IlZ7#98i);`8(s@=pLjJ&qs%
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2hUW6g{&*7nY?Is9>p9RH#60v1<LI@uf`@A~hx$d^B5_mND#Zv%5(3#XsbO
      zCiNpe_yhb=>YZJnG-CR&J9B65Idjgv_t)<qKLKo_u0mm0ePg^ePHOH@SVy(iu|rGK
      zcxMm1;x0erj>EgJMAz%72s2bK%-t0xw_IUc46MVj*p!HxG4yIXws~w@-16!SbKAla
      z-cyELc~(ND%@E$PyIeyEaUCjjhETcEj)7rbM+9>W$)>RQ^MQH5otMTzpEIPJcE{+q
      z4M)g$bQtz}!et2Fx!5L&i*?3I8KR!u@?=TKO1Tnf?HjUC{%Jjm97FzGp$hh4!L?0J
      z?@Czmh<p3Si7*Fd+vpESCK+jHSjJTqS4i}~1=6vCYh?5c*%I#wm>nyS<(w3{9>aCq
      zRB>aPYjUfjh!R6&D0@gfp_gx=qM}Uv{>#3beZ%YNsA7%OnSy#3DK{FG27^vGlJR;3
      z_svl2#%83AnvOdYxxrl^H$}h~&S-{w?=t<Kj{7owVfr=zXf1o-boic-%}h;?;)aw;
      zY8sZsot?hny4+RqnBlU#nAKH=#JR4ZK%*0)v1d@^{Ln5!dlgao$0*vPbA?u|`i;J|
      zFGzf*NI{bR^Af4#5LT8DQ}S4#vuu!!6w(wC4jE#l3S$wMMx5(@4206zPm~gn$s{N%
      zK8Y^(L>`ck9W0HY&nR2U$y85~_=@}~3frj<f0n;v_2Yy}lPO9Oaiuh+DKnyrlegO_
      z`5M+I#9Mw0!~^0DB0eJwv{k3H#V6V}|3`6m21RWKg@P?#`2#$pRr7T`!V_qJ0W{0>
      A)&Kwi
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+=+fKqj5CG6wpe+_q6mQ`Dt}hZlq2fZDV3)Kj8edE$je!tI1k`Wy!4L4Gj57ty
      z_|l!TvopJ$@1M^v0Jwq+3sM3qz346asE*#dgO_SZ-`a368b^ci$byW3BIT?72(#+B
      z7k9=2%$oGI3<L;IKw*Bo9rY)18aso4v{o$&g@8;`)-}a=mwBzUR=1?I03+}kZj!=l
      z3||G>6<{aplXOCjwbR88)tz={dqx6kVc_X$=3a(L9}`RFvGvz$zLUirR|Vdq^0m_x
      zkZsFAdo>EJrgUyRzd>zn%;>=JnltCHsV^Ur3-Xw21+wj_yO7Qn=n2EgYbUOE`>}x1
      z{{ddo?C?=I5IkIhG8kZ@EK~}z=mlmQony|U3(Sk?CFUY}nVITWn5n+RO!ceGRKLc&
      vj^1G2M3<Q>s4eDg^bRxq&n`2)XODRweZYK(K4LybpD>@|lmwh5vpW9;4E9sr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3u}%U(5Pf?boSY~qii#E%5`h>m7FHS?5)u=l1$qVDfg4$K+$Fb%_)#`iCMH@~
      zSol%Knd1_a#KdA}c4qdyc{}s@_3{Sb2s;)Gf!dvS?>#trqJmqe%l0}}zKWI9dzX_y
      zM(xNONeiaHGCy^^N$ey!f!wJIRD33osW)5!vlZS*8yVya$Ra0D?5IFqj7NPLU3q<9
      z3aoa*f#<tkq&QBKW;|3{V88P(DJKH9ma(g}N+`{GkDH4=ot{8m>FzM(e<ZRf)2#oK
      zxZ&C$0^;w6<7gn;iY1qS59N?W3KY%*noZ01w3gaJRiOH}dSaZ761&tSLmL207(6J7
      zEs7lSf_%35jD;t<7_iB58Rjb%>0X#VAiqQrZ3IQK3_hk~aBd#>o&YP;VhUtv2`gl2
      zBPgd72T4pc=3_!OYyR=0xiRG^kxs0o$QpTW&dS&41x%H5*+3<+8`vbzvliIGHtcU+
      Cuzpkk
      
      literal 0
      HcmV?d00001
      
      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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
      QJnr}i3GYmWe2N193uXT?T>t<8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO-lk%6g|(G8Xcz`wd}h#F3ccx6G72N3<4`CkruTW$45RH-@trWe=Fz%TJ!_@
      zQPF*)P-Kh8efOMu&i(lOdj9~>z>a|wLviSgoyS`EAmn|mBSt(ZHw@?uwjyetL-1v9
      z$lb`mJVW6Jy^5uDdLCz(j|L(v*U79s<90;!v5+D<VJKDp;di?XdeiUo3>X$H7)YDY
      zkh741&7f6OL9Q(%zlcXY9&{!>3vJ(Zysi@nl}|xk4Z^TI+os&0L9`&2CRVU!V3i?1
      zGpmJl)iT=;93fj{E+aBCul+c1`KeHwn#qOsm6E|aladEb&j~|Lg}Ih=JwK#7p7Utn
      z_fe;XG<tJjwypM}v#01~U=o_8-y!7+F{^tou&QrZd`fEa3QHKJzCnR<i!=%?Vu>Ox
      u347{tKv8k&>NBiYl>U0$Qt!K89_guvh7D4su!*h2dEx@9+@@ToL*W~fg>3Zz
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&+iuf95IyUJxN%II23ktFG=<PQ360AgDX0%rv|J*Dlqe6pxn&6pj$M2y@G0;Y
      zRJ}+%@Bw@jVrE^GqLi1}ot@ot=A5yA{r>S2z%4v9VF=8=_jbL{Zv06F1GlG!GOG2w
      z_=AbOz&WnDX`=kB!Ucgs@=nFIRVsJJ-nOayNChfcBV^~4dc7}@Uk~5NA_Ph{&Y)l+
      zhqE?JObX;2zA)8Mfqa<`w`A1wwtOj2>4e*!-}fTL`SD?%8xfcrr_mCqmt2$vMa<xW
      ziCKZ^v370D;i5p%4+mO0p^4W;T*4I-mj%jNzwePV-7j$>hc>QafndWl5tz}ut_s~(
      zkqVM-5=n2^p1`8OqGoDoQ(GFjy0TXNn95W>*_A=!)Gb`c4HLD$CjX0KV+qRw<_-h<
      z0dZwsx>+v?9S_>|zD3gNHX7`lH9}{_H*Ku2G&7Pr(o14Kb8W1mLjEUuj;+(?^FJ?{
      zOyCZWX@bbQVH$1A4aKvuw7?ci7O<ZMfsEFDFODU-ndeUiReGAEZ%&lUJaF3OU@#J$
      z7b&|-nL(@7XdX~Fg8iK`15*?WbO(5hGDTbOEli_A8Ci$PV}!SKo9{V$IR6!;J<M0C
      zhq%_*hjj>tmwhz9p~O3JfYu0qUiY&>ag)%Vl1<OCfEQRs=LDydaZ(c|{W)3JOT@{l
      d3XSFwZjTU8cFd{_(#P>0?$gRP(me41#vf!OyhH#1
      
      literal 0
      HcmV?d00001
      
      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
      zcmai2`&U%g75)w|3^QDOpb-U$h>ya6ph-<4AgG89mb?Usn8xNhTyb=m!Fk{-ZQ4X*
      zVwyH>O%rL7)}+QZF{v*g5vwLPYV+vZrjNg%YxReAt*-XBrr$pI&deRe2#Y!Ao_o&T
      z-`@M%d!OOM|D8P#U<p3;B1d8BHgnM2RUh9OiuBcYh5D_S7kLU(WVt?Ua`C>++pJ*1
      zi+qLYdNmZS@3dkeGaTAuZVp@A9M_NCRxBQhM%K5lR#0mdidv(Qc*2Y%y3KIX^8EAh
      z1F?f;v41Ogdt+uOV#O%1Bco?sG7=GajS8NG03kU0butkO+t~Qd7moI6oN;Q|s9=Oc
      z@q|Tb9UK)F=p!kEtU)W1sBe=`d7auuF$KY>8Mfj<!uQ6k0n1EKo~PFeo4YBuopM8w
      zP=ZFTwwDMgxSd<_5@vk6!ptl+8qfSLz7g;{l2(#peR}MO2D!c1WvA^=fzT8Ti;`xA
      z+^Xts%5IJJT3*akn5^BBvAX~Z6bf~a>a;RHD)9vaRj5|TZ*ru}sB)?4OvD({#*Nk8
      zJ}A@}n1sm`+(F0Ro9y3g#k%a^6%(Nu?lu`vI^S8GSJiHdGIu8GZ6~e_CK%k57aOa)
      z{m8{)fl%SaZ3@!_a?0<vLzehSvoFe)r3wzXtR0jh;O;bFpva453iI4jZV){`?!sa@
      z*JPj=(`43cU^=GCY=wba?Aa;<<+xSWRvVas5}B<rFcT$y&h9qQ4w7`L+1s0KnnI=H
      z$Imfdh_E$8K1{ow2n?<2Wq4D>RG4!UXObX&Rw5e)Wmi^JKXj9mUUVvyYqs17t+;Ew
      zfo?oVQd3PTgjBG|O_<iO8IL!nG-~c;B~GIkJqi^!LnJ)460Pa%%Bvy;>5-s<KNQcb
      zlk&`7UuUQ<VkVL?CQL(9S3`qs?*!VLufy8Z)z#Qcz#Lp<plkO4WjU2Y7cko}GBBIz
      z+~=@;hOIQS*_KS9w4@_dZiGL52Bu)DLQa^aMmsb0mht9hrwwO4n0(a#X-&}hl+
      z;jq<bhF8Y=lKrelZM%ZjfTWZcQH7GsK09$&B}3s}D^`FVOxpIyAggU}g)UDG6@Ekz
      zm$V{?TikAOa$a&Xf<Xg2v5V!w92l@7B;;(Oa#@<Cr%_JqF|Zep(vn2fe#rt|b^Q_U
      z4TJ0{AekJ48BCVU$@D<Gt7;bDaaxuF@6^+j5u`+jM<~O6ge0Mmb*X}^*aUo`c=}o9
      zY!fVO5{-ifN>L{K{+5Af@om;oX7hx!z9FrIo6}=fe{|5w&OZ_RT?5|}vHA7}-7478
      zVhO1r&l~swDp&~OiRgeVylCLCEO_)5FMdeMxyxCmOZYK_mnDF&DAd^j%&v<XZq}0B
      zT_my!KQ?dxn`HK?fqi&PW<N3Tb(vM-bpyxnQ{iK9tJRy723_iqB-2oIuUflS<W=Gg
      zIq{~#tQ&08`AeIJ@V0@UV-p<`G$TPP%<{J-6muMRzZKgOjrCg$z#K==_>!dSiEbSV
      zrw!bX2MVzc!v;ohl3Xx#i*d>E=ng>U+Toj6oLmW<-X8a2jMh$A4z+G!%`XhhLP-HG
      zFj7u0J&X4w8t*GqImlf%pGKz@>Lpi(Dg4sF2?1WH?=xCKTw-y>z{A)ix_)I~HVS0z
      zBiUO)dh1((-s{J&@mnu`;~-9jyHl=W>v`qj^}}MC{|>*Wicn-Qy4~t96LK#qaidJ%
      zn<PyB&S)|gwAO?q?0#)tow$S5sy)I>lCFgolQ&NofVo7L%Rdi_m`Yw0aPH&nFb97A
      zu_<%zmzx8}0x5kQ^Q7r=gtS~evf=8HO;(R=v3jJN^~faUm?N&xBik~^nS7dq3Tm9o
      zrv}QEpGjk=>?xj~H;RR)5je?}9Mtl&SiiTBk1fP$5m_S^>9?SSD%3f0-r&AmuCES^
      zqCPN&B|V(nK8!m!zpG~y4Z~;*<PBrFe6(;emy7koSQ#iAMyq_Z)m}zHpmqdb%4n}c
      zA!WWv*&FDE9kgeV$oFCaUd3X(g{63#7MwscPNEg3G_ndC2fmCBo+TpOLw_heyBGJ-
      zE+rY@;J#Bo14V%|Xe?egg073$aDtm{^Yit=^IEW>=S7ZSg^hT~5z@@vIXsgub}Y}p
      zmtX=PGt8f82{Y_nX=wTQ3PY&)OWr!N>h&|=A)w{Q#{v1P3y3ETgjWm-{;J;lh>ogQ
      zDXM*9RSk_2i*j{9ZHxZy!sAQh@xjDq>JM_aZLO^Ia>d8cr>wm_g|PHAwv0FSKaACX
      zvrul;EcGFjHgP@$$WPuWY#C>v%F$;9yTUeX=cllAGhHZam1QrXYz*O^F+_Tb2SyPq
      z8$ogeyGQZ03z|t8Jes*`3cpoN#cWlKxoVor=*qOwl@33Y6mmzOI|!}gA<oV+&!(Be
      zH*Ny<o7aPF8xOXIU~36>5y95o0PGW*%u4#t1Yq07gIzWu*!}5XW>L2#14vU>wZWs-
      zxPauRy_SzB9qO_rP5`83Jdg(_1oBk+@KOp9S`?D9PhW;7?|ANb5f8gW6sFnFuM>{`
      zR#IG8A|jZ}<oz?_4eEnmZFL!x62n7~;vg8l^Em>a8!vDN1;%b7@cT$r+eWQG@^S=+
      z`1e9a+$1SmY7ZH(7X|83m#L}zRC3L6Onr_8Sxj9a-s-5if@NbE>ItY(ywpLtKRS$(
      zQwY>>dSpL8UfVx{qsK5gy*7fM1!{)zbVh%rGzs+t1HKPF^(3aL11MEbp-vq{gL(!n
      z>RFeWD;)QG*ba`fEQ{ZGD|66oAT~ia-9~pAMU2H;4+d10#u-d%s6*8FJT<<6N$N#v
      z9dc=zp4Kwi(UK>f-_eq!4ryNHH1O0txy`h%w*0o5cX1{M`*Kxz?fE00{VQXjt?o6d
      zJIa{7PE|*lYR9y?fGsG^?sAOc9jfuLTfU1PD)RE{t)!mxI9@0m2zS$IiYujTXlHu@
      zfu1usw=wULVVo;IKZ=VZxRlXvXVeMIQYT%(ElunEAT9NXQ|(&mzLh;4@6*1^hcTB=
      zSAB<G;ba6K9-~eUqVcNV8pc)o?aQD2BjDpx&81_=ueo&Lq=w#v7J_WSN<G@0Ex-!~
      z)H!(7d3ydLO4NI}Rb4@)x{6x$0snRI5#xRitCZcl?0(RihWl|E?k)#zAO%-rG966*
      zLqqWM%^mOHlWbJ;u#l)0@)9AVjjEKqhPp;npYr?OpUJ?#uohn9zgzz1a$3Mak%K?z
      VlYhiDj>VKQ#BltH;}Sk|<^LQ+8Xo`v
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T`vPs5Ixf_%UW9B-->vk#PTK~LWD$8ABm>#x9!E1?OoYjEzkTRiI2pCAK*uc
      zxvL~dJ!~d3_nb2`XZG#=<rTmxW^JShOBbRpuDz(C^qE%-0>7v(4}=zHGMrO7QdL=0
      zH5qPKVijl`79ndGo-Y`GRKAdv*hV{HGO3D2?8&;+vG++Rs3?|NhJ^O`Tt#y$go#4y
      zj_ZuuP+G;Cgxvgpz=aaQ+6k(%6NGLTHaZ-nk#W(9EFnE_0GWc)^6;uwmSItpeM#sm
      z1Qp?zM5s*OELvtX!ty`;{#wDKW<+Aju?$axuqLbDGkd>n*fo}{FO(dNV9drSVXU<Y
      zF2>CYc61&z_!xw?#L+M3T8I;zli(_>$US8i?f-eoWz&w}?rT2AjxVA}^2WV?4vZPL
      zGtFNcD4R8|@~@JD#jZMB?c!{W^AtxXzxW6@|BRmd1k-D3$;%D1>*(X$Wsa%#V}K)J
      y5JOFsEsjQ|BmV&R3B$iNZn^heqA~P|Yick96PQfcQ_N2xhiQ&xI%0QcV0{3Q+_9Gc
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqOH0E*6ot=i)5g|l>#J(Dir}Iu8eIrNMUbK()CX9)5rk<w){!)kBvt>G3lUuS
      z1N>3qowO=G+C_4?cg~qP`6h4gFRuW$uxKJiSicc>;=vB?mD{qbp6686?Xhr0OZv-R
      zCk#|mR#jX2`;Aa}t_g#X)fU?kY&fmo$VO-)Nhm~9aUa_9PP(DpHB?j(N>}=XWO%KD
      z<xRqTrT>v7*6k`+g?og>;vnHljbN0$rc8k_V!^~v8gXPSq>v@Vi&~JWC|90z+I8ty
      zMct8v@ru_FPEGhq_r0N^qY>-@=l#Qivt~p@<xKilp5K<uuh8~y4hNb^NoPt#cs?=o
      z5fakpUdM09L#0zs{JfYA4Uk|RxlFd~h#-)Gi2@<tpDcg+-|NH@!;ABi0A;h9A^#aM
      z7|bxu(_!v*xQ}s7udY48T7AaoW270=vuNd#-4__=-eQlQPGFKNVG6n4F5BGeUFh4K
      gjKnH3=DLeLqqa_ChTk#FM#enmxavsE4GS<n01HB_<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+e*Vg5IxgIQ)9H%YQ10ap;j=8FM=Y97ZB<NEPda$tFELQNn-W41TWx&AK*uc
      zv#|<_^&t#%cFviZGkJS|c?GbFc^fIh>Xm4TJ1@Fb`ogOOfnQPAM?#AW87@Sz^8G^{
      zsfMhmrVMxLu?n;ei;y!k&lgNOsa?r>Y@?enm7wA__GC-y*!v`uRTN7tLqd0asiK7y
      z!eqH~+YPSUR9eMbgqh-hg^N{!wHq{K4+woOY-Ajyk#*6793fpa1=+IF^7y7%lVL^F
      zd`TEA2X*0BMW{^P1}!rhVeOxO9sJ;Vvm$ZkREFn4*p!X$!M)#J>>FP;7OM_MF>Ygw
      zFy7e-7ZYX=`!YGeHK8l9^~=5v;soa`xC!g>K$&gxKaaX>+7aAC%@^7AMHES1yYTm^
      zF~`QH`RfAZa>if&b5gL_Ux(3N&el0kadb*ck8n%R=)X^D1`L+G>@j->gPgm}F=!q`
      z90|iHv{kk_8kJ1x0qzq<erp_Y@8d+H@LAW^U<M{Jm9VFopTZ1gIhyH+EuMq*0W`6;
      A!2kdN
      
      literal 0
      HcmV?d00001
      
      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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
      HIYNH|!5q_p
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7ZBr9h6n-v=Y>2Bu@D;J9qL>8Y;!Cv<wN;R+1+;>pXkXkU3oa(RakD|t+ShNL
      zerTs-XY3#77eCk;4Krn0zxPLV`rO?ONyb8*%x3T2mvf%;oadbT_dkF91>iWoQ_v<b
      zw5TuX%Ub1uX)S0oj&4=v4d=3M6^e#)__|}44aZ%n&+ECOp&%^KDNkudooBA)7LB~C
      zpk3gQH>*EzwSw;IZeVQPsyr>wk+(}_+cGRyVDCh;_p77zm5e~79QYPE=<U*S2El1{
      zNMlAN@0exRcDT9ytZA9<d4Z9{Mi&3aMlvf99<>Wb6d~+Tu@#*Hp+qv<0fCqb1ra&g
      zsiFf>fgKa3WlU8|Im4Op!-`GVdA*p`9aDY>lVSI+SrItV0;*2tW+XEvktZTag23(t
      z!>ykhBeUa0eaUuc_(&po+YjtD(i{6SQM`q?f`bAFyaa7Tq>8t3h_TUIo#mO8GE>%_
      zNcvv9gpU^WN+qM<u)v;%45nR&3c6S|iv`1ppkLsaUM?5SyzZK|r7frB*7V|1DP5FA
      zrEO0(jxnE!=cU1OQS>1piBAgb^3&)G%(t9LW}_HDTEQS8HvD>MR2+jQpb+_#ULxY1
      zEr<gP(!+5TCvcLAAvnV-2&DhZRa3MragoYCyrbf@^cHb#e^J4^0&x%0CTWP`3=#^M
      zS$}JT%PHF(x2sm+(sJG?OSTxvd_Bc|Z;)UXl@y9cg+NymdOuebQpuFG#F~}@Qb>jG
      zi{<ODZW05*?=mY5X-!wlW!rHL@^~cRakJCOTattiR9u$)ZTEC$mUL%D$}EDb0$ZCj
      z6U79k6il{s8y~fbYq(D2#{H^ZWF55V#cxO%-`Ncn)6!X#&Zet5-_cEho{a@5G0v*^
      zSk{89yc<T@F)Hj=o{~LAr4nzcxQ$N;&a7OhRLliS*8R9+m!$fdc=l6}yyX{Ga~TVq
      zeiPD~Yz3h)oOP{K6zD-0*IwiPrd6qD$nP2J#}u%=bbFdLZSBgn^@S+AoS|Y2mt@;m
      zP;nQgz&4Kuy)bFGcWq|7x23*V#YNr$n!m~-xrdU1BKv!zPFwe=uwXNRrnO|>qcDe?
      z84IEegx_?@WSZMhuq%T5OjEsI#T`R0#OHOhXcR``GJ<pzIV7UEgQ{#UOK+&utb*k_
      zK^}s2f{2=AxQ0U!HKnFCKH0w+Uvs@RayM;PoxCwljFd`U5W#J5Ofn{*Ua>60@uXug
      z!`}$(mkS%*(=<~jpl(iz5pm`+#AgfI_~RAEd%sOyV0?%9Y=z3zZ5+*UKE(Hq)GD^8
      z2412oHTV+UzjLY$yZ9gT4$SaBO9Qjm&idHR`M7@!d$5;ZG=P0{BfL=$9kp@1AH9K_
      zS3JLkYnjvwbk}fTat(cRu_LQEI#@%hhM^ixO|9X~TzVD5BjNC$9ESFVrzd_x$83mS
      z69dm_sux2ziID(WKLLSBjv$XN6bK~G9Si8EbWdUtr%=Q&^(Nt-N4s<%z#Ss^vp7eK
      z!?fj(B0O^*@A11A2k|~Ga8Exux`<JN7qT#dU><Xi<V>pvGf=~L>`DzEK1DCbAH`<8
      zapxdEvNg;-#g_21&@&$KIo<7X@sPkDVJE&ImydamJ!;}rTjy2t0Pxbm(Ey&nr}&JP
      zKBv8QzVDC%naUTmDw8{wqT9k#oc7_(PY!a>C2CllN<W`nLvGF^zfAJ|9gffcDk`tm
      zaA$5{749pB+Ue!*L4esO`+MT}fh#|v2S1UhpK$<Bkisu)oli*buU-r(AIEwOV?hj^
      g?4B!lNQ*su9x?I|-;X_BzQk92%O)i7HNHjkUsmeOhX4Qo
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FYjYD-7=BKgvh8+hX(_cSU_q)j7l?PTfnrGu6iY!{Q$@UNwx@M5*^QeGv_Hk~
      zUS`m7s3W23$nZ&LoN*lgkmGaqlBCiy`X#&P-Sb|a=Y8HczyJNyLjW(r)Q}L!+%j*Q
      z8~OSj+gZ;qd!|!glip?1S*=KKB0kSpzU?|1k^*C$_h-s=-!m;g{4StbZna8ZfuRL;
      zFJCbkb;<V_ydbdetnJwTw7{Xs$3Le_0?DGgDs^<B&wz%WUI^?r(2acp0}Hkz7aP^G
      z^p?$XMXD68WmZb2XRC8$O!}YLb%9(E|G&XvVFScKfY+tB=6Y4h`p2UR%{zWx-j<G^
      z4>8WE_d>d);}D+GFcJ}x-}Rn>QKSTV*QLMYHav?(4^O5$pkFKBl9pf4a9CiZlh`Xo
      zw_0-@=F%~SqXwSFI1w{Y+>)q8s?spx9$*VPNjz@g8JrL>7@%0OYh~B;2(l1@j6K^)
      z3sI2@)vD>6Y;vHBe9M_(pT+YUo)b6_bXr|qcHPRSwr^k(X@Nl|o0V&3qvA&&I^cI)
      z4?<-P<ZzM-C`(xr=$cHIdXVSYa%-D9)%voAm*QL<sxt5jUZt|+XAQH$#_v#8L~r_r
      zj?;Ku!x@3Yoh<*0O9NA&7zX7=&GlGw3#`DoJ(&u-`2?co6_Rs=WHtOAoEPY>nRTBk
      zpFvT>1vaq7-|kc!n8lnxpX#0K_|yb(p6Q&R80Q|f#4y#EknGdAWZ*L91$3Jt^ZZ$M
      zSm6Bsg}5VZ`UZgogCcOGUB~02!*Sq}2(>LR8eH8)fSk!#bS<SH-ElciAAM%ydabs!
      zkGE^somJj9;tb(Fnb^Z6P888MhIb5<l)!a0j-lk$G`wrzJ&*=9rAwP^akWE0C*rw(
      zf>Jcxj076(O=&ee+uxkquw+f`C#DSd$VFQ%z~Q*Eh=Nl}NQ5=-IMORt%z9l?DgE)S
      zaDm|%_dyr`00a_hv+}Kr@7%Wh?d9nb?Fl~nGT8^vGuitvws=gSpTGTq>lbwV5<0%Z
      z0Bs}TbsWGTPjn2z3WgiP!7!-kLNZ9@W}6s(gt4o+CXOuTwsCAKnM(c!eH#-^WVSLt
      zz!*B!#0#IJ|70$eOg8b_*C+($vu$&CV4euf(}8(3l@v|9G1Z;w{uO<6<&}#o?ZT&n
      zQtuMwH`tGFS=e`6&Rg88-(wv2kp)BI0WM%0SMeh|`7=!Xf;BvZgGYh)bO@mZ)WsFN
      zNq{|A#{#_)j9kVdu92jJxQXj{i?B^v-^LP2(bW=;Sf1lkD6%q5EH|-oZ$;b-45|_D
      m?_m26TK;5f{tAjPLbo8H>dFTUlE8=fh)=cZ1?T%?^!x(}_8Hp%
      
      literal 0
      HcmV?d00001
      
      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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
      T=Czb}duZO@7&jqa-+}*sFcAG>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+int36kUg*jD=}ID%jRmtAbpLMXYzKFIW>2tR_`_@aZr;w9`yy%*@bIUw!ft
      z<EPZbR%4<c;71wvnIQrZ5+CMV_GRt0*V*&y_xGOwD!8X2#4x+d_j$MM9vIek`FZ`J
      zX!DNgxtWTJFhfFm%O)q^lh&@#Jrxm#r7<}T{`#=V&5mG*csmAxFytCzf}c8e_wa8<
      zm0@b1n;G5YuDika2qNic2E{i$hxk!YWX-S)?*YSF{y%~LMJY5H!ZmwKOoAb<LB%O~
      zI;~+6(I^zmXo%qqgOZn_@rGfEjm}<6IL~;?^qJW@H=Eos<h^GM%Z?f5$I+?~`<U(s
      z?unj8rEx7(3j?GB-K$Y7;Jk`O;?sYVnp8`}1uQYBZQBWi%LceZ$_*m=Sw7$;4VRH&
      znBEp%&9+?6>FA#AFs$ZZ4p0aZ1|b~LHfb8l14#sU1$h-YhQ&U^5rG;CD3TVIIH*%e
      zZs{axZm3|d=fR3SlZq0<Odo%}tBY5jVOtCnUhq1zV_tytk8au>M;DI_`HJ!Ww691&
      z2CZ&c!tuKmu8LKLtaOa{JBEi>#Z89v=ui@OIG75rTe@kxG|-QQw_|U~X}imi8ue^V
      zT%*xc=$k+&k&v?rB$9Gc=_d}+7lTILDLUP!yFz=sxO|N1V(A!(;#VX;`++H1qkaO(
      zfHz3fT_#dE&SI8!hB?glpbUzX;B&<<NPNRN<p&l{aFI6U1lgk(?8r||5zI0LO7M9^
      zXnjWv-(wmd$o7`J9|`=EUo0H}_KFcSu408y6qG41M159hPtxf+Zr~PmD9K67ZCb-*
      Gz4HgMe>126
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#k}Ly0$E|6hy=es6}Wg)YdB&4G}RRK{P?@gHOXUg~jcz+1(=eQ+)Cg
      z<0~eD#zcRBKgxJ!b|Xum2@gAG=FIuNbDjP3_vdc_Rov5&U>MruTYS6Xzp<S4%JapC
      zqRHEK;1_B-k_<U{Td_IaJz3opW}qX*FxmmL#NX~TxZM^EsbItM3sr{kr4GhVJ$HNO
      zKcddiv&HR#X>;FS<}ISgD`e<=CGaRdGU}B^EfH+EYoS$Y)^e=iKEv|F2|XR9J*p`-
      z7?Shunn;6+U_i$yxyu_!BO`YM2D*{SK*OK`17{et2?@$BS&mq4w^oJsjIY`%4cFv$
      zgL{@dN6Mru55sV$kZY7`x9JHUh^V0DPU+Q)vGBtt)iW5uB^{#_&p`v{WoZpu#uWy=
      z>3U)P#zNjhWsWl{lp-86a24YW>2(o2RvloNI|ltS7Eg$d^Le6a(;QVo1|lwEQb#Eo
      z#4wD*HU`R=qKUGcE%y}_bSCaIN;vK_QpKG{DjgMu{)37vY@6bBV7U%MR}gk<s6$7n
      zADI=m?U~|{CA*qEcq-G9kil4V9O0>ig|Fil!`O)?U&kGW!Q)M7-VZ+$a=hS}w(HYt
      z2rDS3Z<d}}yeQFYiS;4U6dSlk!>iHP1ud78a}DJ3a;lZ2nWle3f<6O1WYtT%2Xs!7
      z94JlhAzLc%p|3QxhyK!coc^k;hiJ_x6vc;kI7?@P(1gJ-&XHs|j|&l>L;j_Qi=}Vq
      z`=La?_6sBXC@_-RJ|=cwuw8|h=xMT+9)^*k^#jHH5qW%~^Lx7eOw3=D$H9;_@<{xY
      hYn50u)CiZrb=)ACr`=85#th{wBb1uEv?fVg{|64(PX7P^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#j;mE|i7V3Z+z0)FNfM6s&g;)QXV=(FCmzK24VamMptwcgw|Jg^5LD
      z6k~kzM;XuTE_NH+#D|?TGv|EYxz7Ij{pA$EJRU3PV#w|CeSTPS4-9L&^m_G)*y455
      za|>k!afY<imP}5%7qwlXdkPW^V;wMS{QXgtn{~mE@OBKhFwZct*1`CtV;>&<MJzD%
      z?{l-Do7{ER`5sYZd}QE!!*eJ;GU^G8T$l83BL)?TJJZ{>UDBVA>VxRXAhBpzhPTAP
      zi~ku}#7h`PlsIr4y$M}SRvF?IdsFm+Vo{->NA8AH^dc#D!z%iq%H4>HehefL!vz&7
      zTx5t9B|NoeSYo}tR};=FUNilg*g7|>+%e=iyo}3QGvqtvQ>L{0bVqPcgx#6$l>5SD
      zB-=2NBnr5$V4UJ<PJ^GeiU|}Mlr7r{S~ec=w)8B@7!*qqYAU8M%`mVnyoznPo>SL7
      z+hHgdqqPhGQ3^+FnKXx`2xuXRS<ERYF^o1NY-6a>)Zd_5SmI!nTyjgNl1{WZJZs*+
      zWl(UF`q<=OIn>2F&#*0qZZGIgu0sc?{>cry?&#vFA-kArzOz|L$e^xTmT>%Rg{y!7
      z<5JP)UA8_O1rHdq?M<n;t;Xbd#nMgNrKj{<csur{oVG^{#Wrn=cHyijRm{<}#^~!t
      zJe`&!4Wu)2pnXZ>>`NME`onb5mqMDX&(ZD~ox4fqwW$U&+H?bh+DrpkZ6w}6PWy!X
      z2Ol#^YtqNkTfqq~(OD%9LgF&UNHSc()sWR7OX+7s`-s8MxJDv-f=Lp&6U-dHVaGmn
      z2w9ZLP?G17p!FLCe@bC~CnsM?`vb%H={w5?grPH{#x2|?mKg33t_yc@k7R~+_pyj2
      PN?ryhZ<c9|)9u4Ql>lOq
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Sx*yD6#gz<2Fd`n$kKvXwFnGLL2-eiqJRkrq6u0be43UE3=T79W{Tji!o;HS
      z!5`qOPcAY3663k|4l)Fq@G$q><$T}S=j-3kUjR&DNkbDu@3y&X?iKyFma|!WvAoDP
      z%$gneg=r0OhO~Gs+9tg{t!(pZpdrbSZ-7}b-|d%8yT%!k!ItG0rWl4+8Yn;W+`aw(
      zh!R8Fu4xylw(0w;<_=M0BvKh)3q10Vl-h;T4iC26b*0s;P`*!qR}sX5AR>T#cPrcU
      z-Wh#Y;gCXd&T_2aK7&7ePFEvVLcdPmL`^AIqBo)OkupPk!CmJqV7RD5L$la*>u5nr
      z?0R*ys$EWpjy7@EucI9uDa0_KBaO=pv0*{fv0^!VwYF2?-gC2J%LKYr(=MByCC=ex
      zToi^O*C^I$N=a+g<7U9aQjRssOKBt$cNkI%Lm1I8O#U3Vj!b|K1EUPuhU=-y4JzIf
      z1&%VRv<bp-9TO-rv~2R=iL5=t{2AzIiWNG_=kX1jI=HA9N+}wFn;LF}BcR+ksiR{W
      zx2QubXV-mA37v`B3<HkZJSywyv}m|P{db&^rM)VD6IiapkO)+@dK*-P>XBM=YhIN<
      zwnSAsj)!zY5Hje?j>A0}F!wc3D-WJ)<}}Pxvz@I<lXh}I$?%d>wOya)P-Reb-y*|o
      zG%4qrhodx=F-iR#qc4F(IxX5CNM}UzOG&LSB{ja3)b{k_YN9WV3xvwhZk5hSl6hma
      zj!t8&jxJ-ojvgZ$uOn+@6Ls_%A93luMCNHtNd|^Ke8Uww>%>HOT*Wn#3<V6*D!3i;
      zO;{T+KA`Ipu9N7YFMEhFMzZe^lLs%^fyC#C?>1@YNk1n&`a$vhB%WV%{!XvI(T_jU
      qVz*)qEfPQOVun~^m?d-*N|+;=q1`<^z(dN1@KD@5qBTyp3;zIT#(pXQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXJqp4=5QX1FP0WvI<pIP(K@8TZL=gnRLbPAQC<#l1Y!W@2g$M9Z;wBcRNHa4q
      z-@Nzc{dv9sEYP!H5Js^m#KTwjD7pH_?V2wlmzf$b!z?QJBxKGO+Jr&L`BG?Ve~vlK
      z2yU3N$bJlAHrX{x1=DI#zYPe^;g+W%Zz9Qr{@-|BiV(bQl5o0`LMc`jT*9zfUB{?J
      dH3@{4eh(lWx&u>B2CS-fVe9T_LfgYL?JpjPM<D<J
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O-~b16g_V`WoRi>K|U%XAfRojR1r2}*g%L4MWaX)Lx{YV2Mi2TGBZ_i?VoVz
      zimfIhMiZi2xBegXOj`;Rs*Crg@7;6nJLlY+{`~#*2*6!T8qfrWw&Y9sI_<tP?Tz$O
      zW>&4slI6L>S@~u!WAB!{1-WZL7r5jD)0QOcaehk`JOfPv1OG_RNvos;^t@@W33M!H
      z>nltNG(9kF)0-CPieC^<<d{BFTvK5L&>BGqZ32OKA{PP)MPQ&=AeuF8^{BLySI#q;
      zxA<avwpfr>PCBN4u3qZirs)cdlv(^oFo`w$tmz3;S_+Pmo~p`8#T!(ZN}LyHAXaDb
      zt|iyg$Hp#Yo+`IkatajKgH{9A1UgSUI<NK?J*T)`j$e<U9|JUiT@k3`QA19hXOYMm
      zxN)X~EJ|%*^kO)I5!@7rY$&f*LtwO`veNGgx~lKkx*C{f1-**#J&mjp(9E5B^BY*f
      zdcx$&u=j<M<M{o&U~<BXW#i^dzvI!9$sO~t)RVDo<;+;pb(L%29w+Ryu_t&!PtQ6A
      zIa&d(AQ$`z<F4^{2x0CmJk9Z}@f%JaB9a_EK=fl7bD4V^bAc7;c)^TSwDZ(eL8Aj#
      zcw!zpS(OSI>8{rN#rJ}Yt$ahz^Fv%+2u$x|Hu(wBVBhBWeLbfCK<_)mQZfBIdaL*P
      z>iB2$?N@IHzhLN0;B7!KSzq-pkKX?|NPXY~8hn~bk^l;%v4&Qxlg0*TYZH^$!Zfz=
      zkl%U6ma$WoFi{~_ldytYh?9CVmXKgIjrE>j6e-H@#sqF-j237}mtVZYe;Z%6FL|8N
      F&|fM@8AAX7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXy9&ZU5Jm6!NX$dDvbL~L5QB9}MF<2eMEf<2lCVU`CcZw+!VmDH#7zpdNHa4q
      zXYRf8dOw~3=IEMe5Qd33i>s$DaeDN&!IBT6khvO#;(pr+S+I!~p<hy-6q;G@6OM9%
      z6J;!Nt{B2}9M%i@lWOsQ>l5tFsmLN;#gYlVpY5y^A-F-Ba<-5{DOM&N!k}KAV10uc
      c1VU5429S>2hM}hh%&K-^>27O6o5MA%53ig>r2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTW=dh7(HX}#j)KujpLBz64KH(&c?2r3!$t-Ta!|f5&}{nQUpTUxJ&EEu_fDq
      z7G4nW6A%L4c;W#eXjK|P)x1{RRrN0*REhrpoS9v=wqmzZ9%g30*>Apcnaj`r{J0BX
      z3NM+62prvX-*GP&n(tO>7Yna1o%P;!x2vt@kyjh_%U71&_pYqD)oss&CNLmV3sski
      zuWW33<(3IUV5~=haIJt|snxuOz~SYG<rW2u`AV(QIwg?Fs&pT4wbdZO;>4POwot#|
      z#Sz7UB>K=V5Y0}knHUfl=}~?vjuZxEc3NQGFZ)o*#ct?*Ag?4$!~{~ym72G*y|v*r
      zUUN69p1|O8z3f)k+(t#l!KBu@RA~x~_tM^JGz}2U9^4Bq&{wXy&E|@`MX2#E=ImV~
      zeR;CCFVk_1;*j*^u)xaxedz{F9c8vHf%ul!x>Ud5^UikR{YKk*|6p;SO=M~D{S&t!
      zwaZ<%lbA$KAa>DfsY!u!cA~9>nk<?)-dp%g9C@6O!lwk>{R?kr?!&gvgjxh5b#7|9
      z%TFHX`o<=IYUOHEZhU)=Uy?3X*p>vGF6Olf5AH~Ng^+>?o~&N?V>S*4&q+IY?V9_y
      z<H1}WXi%cu@Z6TC9vgvNFAl}_jSj>mpyT-@PU8$;nwEbPM--L4cbq1~SL@r2vUjc`
      zZ*1!Ri+5a}HG$-ke5({!uW5p=4|ji61o}I#E)MZ=h_dNykZ%Ng`Q3*&`vjx67)Ln{
      z**i#1zHHw_YTeH5;NbTdy2|+ohS?87WB&pB4`JXVr11$J;mnx779+42u?il=W2|hT
      zACL1ZqOhI_u-@mq&MZq|t>heyaHH#X-qLn3)&V%I5<ey2XI%6-34cM5uNCO5UnB&z
      z@RR~&VH{DQ1_?^|DAx_(D8DpC<XAxDHmxv8q!bddwB1`6cl79-@fFgRo-r&fV@%(`
      z#OlX}kkRg!|Nc$7c}Z87gbN*nj}Z#^hCttv@OO-^;vlY(@O6^9h5~Nj3~nm{i#~WL
      zpcD!yVHz`Z%|I~}a1yhe(^%~Up2i%-4^hxFILR!zlg|dC{^IUR4vR{Zqvaeu?--V$
      zgqhK~m=tDaVwRDK`NCpCMu9MA-L^C;Gc98W^Bvl3o)+LIa`=VJe`WL=4&ZlW@CTXP
      zL6+kT?&3xKsr0?+^9c1VhWZwR4I)dWG|GA<rBq|pQ);Vp)-Ec|1`%eIW|Osi%`vLw
      zy$Up+rdJViOW4;jH2DKc5nBKMp_TRk_Y|dJKP{w`zyi+le*`b6{BtA^*fdv=+Ib2{
      PF_s5^G#K;2==kG*D~tkA
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmah}>uwT36#j<W(siXsTUx;jt<=JT#Y?>fV^oqRB-m=IG}ZWHfhlg??&9vErcdFc
      zXkuxii4WjI8PCj8Nej^*%+9%e-#Oo$@ay;Yp8#&)zJd_L@}BX*_*C&ens&GHvi{Vt
      zjV^cd4aa%+*zT-zZq@BwM?r)kDN-wzL5Z8KJ>K>iBDS&58B&c=Xv=pAs>%>;TgJfw
      zL+pWRoBl(FmBM)1xTn}8*qYPfD#Fk-#Br7(TqriDz%Z>LikP^a)1V+mo`z}jjsAX%
      zyDyBEC7W^DhSfA&Q`kdi#D8mg)Pm&u@3_>x(&he!9B#Hy9Pg4rqlB7ecwUed_nlyJ
      z1zCplX+56wcXzp~A_Gm#bxFfz<QU?|APh4nXe4q~#S-!guF#kxKpE1I#=L;Ls$m5M
      zQrYPBxZPnWPf&S$fS?~D$UqkeC5CLF_K!S<yh^gKYFG$}uWLAuc?L$ZE{q8@#Ai^q
      zoW9%U>!x^`#NP#574wjYb=&5yoQQi0?lR1Yz}N$ccRsn1Sfp;kw8$a)(N53_u@Q7e
      zC=!QQ5|ykS$`E<e`Vr3Pr9&k2@*$F6$rVD1&J+~@4LUce=ou1tjv4agf-=lvjw}L@
      zG)&$EQHTiW5r#As`ifXo|AxdDx&+`c>3k&twIE>#NUBXNPM$9AOe`kt2~G_7nW%&a
      zkA5JtbA$_xl0Lx20Tu^X-Yz9y4^Z3|u5w`Kj_qrK{YKgYR7Si@Bp+bY=}@yhWbqz(
      qxG2HH8hljImp!Ee-r+!T+@pV$o77bZx1<1TxJ_TNHVk(tI`s$Okmwo!
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO-~b16g{t<=}0@!+5$yUi-Outp_RHZVu%T1(xlZzrAgI=ujL6thN+pEBJl?p
      zb>YU3g*#od(1gZlB0s<%WxQ`X!HGgr7w^seKKHzPGe3WQKLD_Zs~RE<%UgVh@0Q)C
      zroB;KtJb;AH-s}+?^&Mt#1gw})m!2*C(Zq1TeW-J!r`9TwKXUVDOsazajI~)y(K!H
      zh8V+yZ|!-eRSqREsDjd6hN%a&BO{g=m`SI~5c4)ocW#lP=!Xu~CZ)%2n6~LHGd#@y
      zN8T~r9Ahpt8I+aox)=e&NgWC3aYT{PF^X}9Xui;to=F`VPDp7=#|YvK$(m`4JH73;
      zaPIN8B^c7RZiib<?wC>!jEbbraC3M9N6v>{BO>Slv&Ybo?g}-v$=!O_5v!Ki7Pd#g
      zMBsh`DrR-e;5<XZ7Q0^HW*E;G1_eVyUy|XMb<E)+rSEV{GW&ZosGoSF+jBbNwkf%f
      z9j;tShBD|?+ZN7>#a&mp8cGZW=@@GC8m<Iu_fI%O=7^OhB8S${juK;HKu4t;a)5M0
      zjt@ws<fuuLo>7cZRFWi<Vio%4jA9=t<15mJ`U7e!I^Sq13ynS|jA$R(FBB5NDZ0~s
      z_$x|#PK95P?Ili=ea0`G!!*v2Mg?&e=O{-?Ig(^sG>`zc?(4v;u}=v5$X34L0>cMn
      zq#}(6%KAsB(LH64N(`W5lnlJ~;dEb~4d9p@UQqfOm6ovAL!~b<)IzF{G#x_vgi)hK
      zz{(@yTKs&7I3W9mUg|AMc!z6v@1su+5CZfhipZlt_z@U>ZV~hJO_RQWGX1jR<Xb=m
      Fk>7K<Admn6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~6#k~IZE3fFrR5@usEBR1P*D`L$O~f91kgkw!I<c_47jk}lI<4Jzhk^S
      z;4OhR5rr2Mq7VKg<C)#Hv`tIwX16nE=6shkXMX+pdH`SycYJU$#MhNAWjj@Tq3Ua?
      z#mu~-D{I^snlEXlx~cK)#mrs4s?e<HgNLEJe*3>Q2LGy}X;~$=!O%O`d{dgiJEiKX
      zInB@?Yqcr9#Ne4JtndKb2ukolVsOXeOFpzS3<&6yrjXc$lBPW<sJh9G+3g(PG}VG0
      zKnTG$Fr1cf3SNeeIaTKirF@nfkCd#&8NzdgoT4o$hAQSx&|^MViwtsus1vF|X4nb|
      zTjM6fu<gdybw9h#b7nejVbz6%qcakE&`XIM{G||c?8nKYr7cBcm~4V+?=G3Dma<&%
      zRxE>pWq>3Ski$`%MF(N<d|}I~@ns2@gd$H-eMR-5QfGwFxP)O`p)d)h()7g~Ll(}g
      zUdnSr5hYLiFv2ihf8-|=?zpvTKm=h*LIQFCNsNh8zsB&Su}MyVP1n?>2DnvNbeW%P
      zJkNErDA;dExDJ^i@UT!aa{QhudZoR3Ax4Ei1}UTK+?dgnVv*B@xXlo4YMh~~$qizN
      zRHHQ-F-Q&TraQ^#rLLu~&wBk7X`|6&xaa}86BPvHBLw#mTCSkuFd^@u^9!xG5Eko{
      z4ZMa2Z{WvUbmASNc#ke?%|bwgBI4IgkC*V7Xh(<VDd7km(S%$<-+b~2QeqdKa#>71
      z(}GPCCIVoG(mx=8j|Bh8q8PN3s}xc6<19gY(SdU`a#>^p4%r6n7C1c#Ia$H^g^?qK
      zEVg7>%o^!-sU~{}qD=ZL7G1(luhR86bOebDxJYz9s(>JN6D75{LtN)_sMaM-8fm|g
      z`tRiOfG7|D+a+Bbhit-f4YF22OxP<U_H3tGN^t_f4+~hb#v#WK6PLjOnWl3U`y%^D
      zE++_S)J7Vu;Oenp8|!BcR-}qWt=$T1+{PMjg7v!zmJ2s6^%Iz+|FC867SdFrBr#0E
      F^%p9GQJ??-
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)1!AiqG5PcJ4qOsZ<(YxS5EgC#2v=l__DR`;&zD*Wgjk{r!Xn)I-;K2{@qr}-L
      zdhnn-FwC2M^XARl`^zhUBg7#*LjP7gh<Q>yDt(<?>8dG9V{4hG#@wCid@N;gKF?%X
      zE2BgBgbg>46oTpBAB142w5msh&E52eFsUue4)&%5|IFkv!UC2%SVTbRrb^3;=6)va
      zrI;0x5T_;+#Z*}3@K@8XZ&XD%XjT8|b3h=TiGMpGL=)54OpcY?xbw%shwc<?gV?uw
      xtn18k4jGN$aR9-7{~1e9TzQB%M{W0*nI~9by!FXK2dj*jk2Q2#tsWx}>mS>(WcdI9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?OK=ob6g@AQNs~!KAmKNNNFquS5~6^=Oh6zAB!mz%Fns)w&P<au%yh?|o(xc~
      zTw7(8Ra&z1gTIAku<|KDEl>+ASGsY<#s%zMxV1dDd!}c`pf%O6yYIXAoO{o`ujiM)
      zZ+s8nX<XJ&r?BC?F=Jfp%@-|uvNvU!#c9X&hK);3!P5{?SSkCxS%bUBCeE8_S{oGB
      z`c|Xp^#-m-4cnMBT@A|=R{MLF)0;G1%g9=njft#DpuGQ@GTpr8*e3=LD5xQY<pYkL
      z_YB)h8QFpv{j2$lg+JfDzf+;1-?A-lk3xM%XG$S5;AG4g>d~TO1)3F_hb`M2DdZ+h
      z_jth2GVG*{Y|0=j8B4~9H)Z7&HV*%Hoe6~&Ba;a#8E|sbj&0hWLT85`6cnHITq=|Z
      zEK+#rnDEoHjU0<?SsKAI(-h@lfeLF}Gv~~hOQ_eCsFxD8PP^tg({;^KzDescdAn--
      zZO@=KZlbe7dcew=wg{il&`#cJHHOM<kD(1)bUcA46|_my6FYm|QH4{fT0=)^4$9M$
      zOuJ4tE7~_<E4p-SL$^XZfkw+YS6s@RLH;!ym0V-kj;A#AQrK|d!VGlIF!5K`;8P6^
      zoSuq*h!(>Rv~aGb4cBjPO-ss>Db&qOE3EUCD;E|D#7T+F_@b=JaXNE_T+lfwLg4#l
      zHg_vTI|c`3Dw?zYLE?x99U<_;8<i62_vzS=0fnZL^kY12|B_!!Jc?N}A#^VZ-N9PW
      zuw0I%hQkUgLghvs%k~;EgkcRwswE0hbsWVA2lgVbLGc{b@v>N=MJwY?i6yDyxbJgG
      z-cmYF%3H&fX-!UfF&sj_H2;i_SMaLBW|mUv`El1sU&xm`e^Ma*<9())#f(baSsmjN
      z*Y-bghkYsuNi~vhSeB&dXX-d7ax~?G(G9vXgee^s&Ih{6C&J?~VENT!?Mp*V+mO|f
      z1Gk$?Afry+3IbZIS{L~H2VcII3Ng9ucM5ifADgPl3Z>=fER)fZqfp~fX&8Iue|(*y
      z>5hq<9PY{q4k+0QUqFTRH6vOPnMARqQ*hJfK}){7t!2G~QQa=%z&a^B>JWv-rwwRC
      zjQ1w~FVsOt1E2Yg<+_rVoxCgFqg{(wb<KBa<r<?auon>wU^SogzzJ)xmTw$Ntmi5K
      zFY>AvTP0W+fFpk3=3uiFD4}s?B>M`FU?XW19>pfE0`?3qAzlKO^ug8!n^j-}Aq6~!
      z%_WGp=@TJD_qJPTJKDW~$47eZAl`EuTd!bw&n;}dj!uQyo(1&G-o%d6i`X^m(@Nc&
      zC>d~;(v4FCgF>armLa~0EtvAN=nC+|EV`NYvt*BQ#Gk|S<d2~pFEF!uTKmGx_ApM0
      ziwUcyEh16j4J0d8RT&HMV<mirJyhElO8r2#WyE?=RpnhouCd;|eGws$`WA7ZFM1P)
      zPRAp27?kDMxU6HcoETrkslJ9lnB5{wpBC4y<FvvRw8o>p`#fHYN9yMp%$?V(c23O0
      z@OQ@I(K&G<_QzOW6-F~X$P=3Vn1(q__#s!(Sc0Z0EheLE8taZn7m(?WM;0)-fD4t;
      za;Ylt9;<(!Du2NKT;V8xNUc7i=AZCS<0|@j--pj}7++!pU*QzK#sp^By>H-R4sT)}
      zZ{a%L!3{>=#Ao=HySMNiZsSM(e#KAt9d~dKcX1y-`#l*8)DC;{Anf@ca7sPDSL*p1
      l{Dx_~!EUz`$wi*o?!%|>P~hPk!7j|8=pW6CtfdZ@{sFt8O)dZc
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9GTMB|;6olt=vzuM0muL@3Ye=gf!ap#oH~A|GLln|3YwMu}w5aG96xQQ6XJ*bk
      zp0_)IA=(;pg#JOD)zyeEez-SQez=P+qbQ6M6(+HU0-==}j6m^OZVuiyA#_aX+Hx@!
      z_QaL8JDN$yB9I{HpX^cvCoj)`z~WSx*4LPd#I>ey=A8S{d5><b#o|ZI6RJ*hI&QtO
      tA9#fB-^xKcu*Cn7Ru|Ai5hW&#DTgw1CBs$bT88V)dWIYC$<24R^#UInI(h&A
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`&O>^5+6g|(D?bcEHku-)tk~Xw7iSyx<Kq+xznx?ch&d?bOfp!(y5w<#xWF&<I
      zcJK?>vSP!M1<cS1rJeFI12ga&_#vzq&V5p(X=5}a>Am~zJ@=e@@B8cDpPm4?gn9uP
      zg~|KYC)R!?*mK-=rRn+GwqIFm2BB}Y!fSe4fT3_o+$vp*PPd!)?N(SoUSYIP@L|v~
      zg)=(H@hW$0-?6&RXI8Uo6D!c$P1_F~&wamsT|vFAFu3lyL1?+*rq$iGbN_U|{z~n)
      z|5nJaIIa`c6tdGZn+nFdw`~`Z#gK^;IH_=Q!*T6*c6XY#|6Y_~Xv1q+-A#*GnK3pR
      zVaEv+&TsS~{j}n$!a&b*+_(S=3)4ENV(o>Mb#JHVxwactQ`=47>UEq}P_6S3j;clV
      z>3JH%qqf3udX$9nWS?)H@23j6J!d=YP<zLA+MSRh+jdN+?gn;9Aya)x&7{zgW3_;n
      z8LnF){3B}-7ceFDn^q`HAJV?k7xD<=(HzGKH)~=J6Qtbq!qD3h(}IbLn6jbQll>(V
      zugE^<izu<YYT`Aq7+w1#s?0mFxYI|HDx7eFXt-|otdDm&NSudztTQW9cSFvU=fBIz
      z<c!Lc_3xQhnqnvZ)glyDO)R6PQ2+ljJabbbK2h8Ip$;I2t0rE;`2wyf3?*Gi5*M+C
      zDfYan@S;ZOpFzQF>f3nO{o);O*KgT39ML-b^!zSJ8e@`*vdEA@fve|n9HMc6cRvGD
      z+jx6uIYrA7|BC-y`2eTC*Dk~S7U>GqV36b)uFS{@BPemF@El<yfHwC9v8BOz?fiib
      zycHeBff7237xX!0V@#(}7{>$|%jsFJ481zXRZg!axe`nklV4$dm3tv*KEj2&Sw082
      z_#O8d2>B?#qw|*{za+mI=NGh@80|wwNcPekpX|K{DD$1?yZ8W0b180Al+TI#g~mP?
      zMJ3p!L|X}$@j5drT)`W0mO1{V(wXeH&oKQ`qeUgoBqd%(HID3%U!F1MY<X;a#2Cr_
      zh?SI8r1l$)QH%T%Mu%#pfl^~#GhJiRYeH%))ixnD&T&$B4dSeS5=$D}nEeAQv*m|)
      zGlS*)*l7L-EN!ih%YS~WHezUld=|I1FO!@;kWZQW+#{^rjYuD0JtaM%p&v8(6Aa>K
      z68?n*f5kk0!zzB)VxrM$=%SJb8n}+PbO{@Ym_{O|k%(!;Vg|8@8*GCV=qBScxb+`&
      CBVvsJ
      
      literal 0
      HcmV?d00001
      
      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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
      T%ih=V3MKjD_bO)?`0l>}+?W|D
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvXyUM~q5QWcpi+62(0!`y$olZd!ey|WM?AEyGif&?dy*!(R58y+|KS=}|r<j2`
      z-(1e?{dfWxq2-}K=pE!$-i5tsvlE*r*{Vd0v*Mvd=%%tbN){KJg9;s?5ld}c&Jc!!
      zzYLK#CnnJ;j*K!c`1WRrjQ2XU!JNZi5js2d8J-)foF(*suJFG*axfsYwaxD?VtKwO
      wLUG`)3H4=kNkTQ%M{YH8VwiqaAuz*kfg+nJqk`0whiX=9sI$T&oC|3F16Q9*)c^nh
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM-A^1<6#w1*8d!z`OSgzCwOA|5?!vOTW!r8=3kp&xsI(aRV3=h`b_~qy$E;M1
      zY2rtG@xfQp2aP7SiI`~YO3>Jt7(q>pUx}|i`3LyugT{02EW1G0J~+wDJ?EZte&?Lu
      zJ$JtU=kr?t5_n31OQ838?FH>hytHPR%khj=%<9GXxV4(M%4T*<stP=f-Ogo7c2Qfh
      z9XEmYl3p~lm3h5bGA#4b)T098yg=)?WtMEswCA;zvhIE5#?aNj=F7hesD@cGvifd#
      zXu3fujxkLrR@vU`?K^9jhCM3a4)@Osc*d=)?uS5!idF;!PKWORcLx)LwM`qQK2u)J
      z=*5d#W<?hWOj}FTnMVDQUfuNAIin<Syb;=d3e$eLaTiy1sF`ZKTZM`imhMsEM~lEA
      zqvUito7W0uN=RK@Zox6!r=VA$`#+gc(SxG`EqTo_YX>pt^d8sNZ09UZ-L%uPOu08%
      z)bcrFsg$0gr+=RFJfPw@?q?~iq8||=VOg&NPMIa$rbhc3!uHp39mjMtVi;5~Kp0%N
      zOzD_Z#4$vNwW2>~({N0&=dg+gdDCrMdDc&=7-8L8G?sHV@0?O`ns<B|%eJjm3S1I6
      zTu&>xmMxNLS)j9Ss&z`1EA+ldxNAn%&JkKp=LGf1+HJF=9$sxo;8erbZ*#nz3qRFA
      z!3RGnpoAU1DYsFjRL#gM=H%h=eS+Dii_=c*&+ec2p0ERd;Ih_k2p<>$?YU9@IjdY;
      z(kBca;m-XdImkzYUP|evzX44ryzr5xkmf=YJUo~rdw5i7Z6X_uFMZocJ4q3ORwW|D
      zCfYwC(S=U>`e_9&64WIeCP{VN5X2GE7$Q)GSRhYM-4@wIS0q|NcO+Ips16mN+<;Es
      zWi%s4xeW<<%n7SP5`e6bt7(%pyC?x&ifWp-X=U3?<R(HpP-*Gjf!DL)=&h`8;a&mW
      zAPaAVY8#HUj*gn!I>)*<2+?WysATLVs_td9<5hIwHDdL3gz*N3@#Y>9W@;qRO>?Rf
      zUW#ratODb2V~&?-tS9IRdV{_#oKPTlw$SIo8KtLNxrylFXwbt#VsV7r<Q9LDi`fwh
      zk{14?NcT~6Xd6LZ_QTd`ju2_UH7evCbmLu|z<U_L`$*wBCUFDL;6pr%4dn5WZ02dF
      z;2Qk}oIzSrT)<g8B+tKqQ4GmrD&S#~_#g{-ge0$&&XMG!Ov4z%IAs<*^i@j6$-@4X
      z*bV|;AhzJ9XA_TIxQ?zEJ?_gDr07l1o2($p1Z`ui&eKe6fmj+~rpU}nl9VJVNmdf1
      zBuGiHk|HHVO3ERMQ9@D4_WweOeN2Trb1_EK0DMWU+@g!|75eZs2JsF3$+j_p9n9fd
      zEaE$?;s@CH5m)gO-onpV$1nH*zv5H;Ch1N}$|^OwD>b?+c$~;{5n>WkB)JJ=S7JgV
      z4xw~7Zh0t5Bq~0``Fe?b-GM)3nj?-&Esau5BQT8%RiHSn9N}fI55oMpXVSg3NuOyL
      Q96A{Mcf;UWN#>LP0wcH17XSbN
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxO>Y}z5PrsXx-{8*w29LsO+(tWjlD534W*R2w6x(XRRAF%0wjdi&SEdvyT-dA
      zEpXt-4e<jwaOVJ0-INw_twetVXZ}USGw*I~i+H7XXWpHeXP)`6|9<k|F8~*C(?UkD
      z^o9Gid%GO%`$4^24LiGDr~G=W9pAZWbPGAb=^;Khs!`l=YjNTxn2NlP?>2Y5PUMHd
      zhg+`+<d$H3GYq2G4dNZQx#x}i`02ktkAL);Bgi$q&tv**2}U}8y+J)2hi$=;Y8c01
      zi^^3$@Z)O&tFXnVxWk~$aMv3}7SlE+F~g8Tapx!mvo^*trrMm1(L`IYF_CDCHf)Ru
      zCb#{-duOjz^*SH8)utynz8%&`+9h?~(~r5h;YWhy?IC3kw5B4MDHxx!yC0Xgg2;=b
      zit<^(tcA18rvL*+wan>jL0^lbq+8TNrUZ7<`UFI9>=3SCtnK<iuixtfsW-z`I}E%a
      zuJps+?6~cQUyCYFdnYyW?c4h?970_%-8c0@X}QgFha=kecjE?U((sa5P1e1X%2Ud#
      zLkSi8uxW#|>X&U?!WF^gp)rR-hJmc0NIJf0I@uQv`v@ldC|S>U+wNC;95>hH6T#^F
      z;a;caz2WNyObtwQUFU_<B$(wdWCU|OM|iV%%itO0bhW7Gbe)Xk(izD`qqOMDY4UxH
      zx9=G<Lb>1^;J9<Li@dYg#R=zB7xPX&*Tu=-Y0co2`Y;dR6ZuOVMU#u$!ZZTRBg7Id
      z7ZW5ri)G%_Uo(r*lvBoN%0ihh7=Ag!MypXa?-4=0^3K{_oZ&ggbDn4Q0EIr02?OvA
      zNqmbLd}or+CV{==c{o@jte}MFQusQdwN288(#`=t8Hl$MV-G^Gj<T@}p67p&G81g1
      z`~@#i%b9N%sc9DlFH%#?OL&QIt*Jt?8fiIeau1h(qnflcN&U+Jd#jh)N>eM)l@#a)
      z0&C+oN{=x45Gx;N`5d6~cFDPm6J4BB$qBBi%y)4{<$M?COZ}Wnro=93-{T70=kol)
      zVLd<r4_V@$hRbr2rN?EX*M<#TWluAvyjN0I7wD}mv>X{$-eUu4CoU<Z;2N%{;U!89
      V&t!l7Ut|6mh|KgNUo~Dg{sa658V>*f
      
      literal 0
      HcmV?d00001
      
      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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
      I--PG?0som!B>(^b
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxOLG)e6#j1JJv1Q+gk&_~8DTPs42T3w5J<wqgb2zbngC*F(oC96x`&<~5_LN}
      ze*sD<tk_T`M3YoWm6VUtD)%m2=x?yJC?AW&@80g23CYY<_r3S@Ip6ut>;Am_^)~<x
      zU@n3>f%cpFZGA3Xm^H0zdct-l4JSQfTE>9dMi3O(Swp3NqTo7u#`V+$8VZJE>bX(F
      zDVVl(dFZ5o7#7$#Xj=tWx7<-ZS2RM;ngT};e7wI$VADiS&rDYx32Yy!;ijt4Cs3bt
      z^be{MftWjGW~MEpP@uOVo^vEVXy<H)gcMv_pLNqpBJCZ!XiXZEgSKOlCvC<B!beTZ
      zbdL#aPOi1+92E!-+LJ~c0xcRgqg9}Jo!Zd2RNN$qoh!~v7|tbqB4-FRjo2AxL}y-j
      z_Ju)Grsq(`W4UELTIXmS0c@A<b_fKLoud)#64)iPlg{a^(oimEWc6IXlP%5|mV0V0
      zW8__CJ&v8&9wXP6G;BhH-0jt{5%qG{si6@~<eza2-8BZ*roTPeS*rkEefuQB%NpX?
      z5JMUVBG}J#Dn^wAYj_0>j7$|)X6#iN!WMxop2suK6;A>l)}VQSuW9I&#z9$Ofem@x
      zv?{H&@3|b!<ZX*V_f?BU;5_@F&^N@N%-%7ah~T(DV})Q@MMFOZ1fp5P_1mP$4|`Rk
      zNPv?XPD$?3g0CrsXEeM4w%Nu>N1weQd+CCaaoKiB>ACFttcDT1NmHez6e3DNc8SO^
      zA64pub~zk=%CZNmpURZkw_=VD(-N9BC*3Kw?37_<r|39p=h)1u-G#{(WLRFkhAi@C
      zo9(TcI<L?wVo$Lzf-5wyq|1}WF^+4ph79INO`s}UA7?#sj3Do8&{0p`6SnKxGg6e%
      zFeya=*UroH4Gmd&4mmP1DKRzNl#*c1xWQ1vrXNz{I;R2}1DE6H=RzJYRc{845R2AG
      zp{m)c`R5nj0QF|U%i8(8eyhk~Ps7zvgzYs-e=a|z3&bzlMJHpNHsxrmVfT#o$*ghk
      z7z=OJFj^7fTOh(y9iki=4h{El+3Q?`av;^p5mhV4lB-4=jtk$-Je{Ck9oJ~8D;QY9
      z*2mn}A;EWC$)|~*!wWob_4M$fLZ=1Vh|7i{TDy-nOf<=kXl=F7J|x;l3T=m{w+>C>
      zO5Sw}x7Eij@f;*>M`{V%x_(5Y?JhPv!OpQI?0%Z+THuGa1?)++FCbZsV4KR#9a?_M
      zsP8i7&luU~*oJ%9jr)p6%EPVj=<uVWFQ13p$;<^1Lke9!qvMJ{&@zwipV06GVr(A!
      zmT>S(bW`+*WW6-jE5$EZsz*%JymBfN9>bwpU_BMEBMPi%9zAQpz9raq1pA=^CeVkY
      z9y4)>QOD`P?q0;}y^-$JSLj&8U@5dx3a<ouq7TqZQSuHF-R;f6=1_B($35~{#OVj9
      zFH09OTndO%P?SQ;rSNhoDw?BG>;B63)as3OCnAJR#GZPa$8;aYHU7(y536?jh0<SH
      z(BGKE-&uk`NcvB<@n1NMXBfcWy#M~;b@wmM;y;|@_iI?jb*zBxk14K}5Gv5C%o)R~
      zl**>|d3u$yxA3-VPa7BLOSYhmi`>bkv2lsJklJ15F3i7)Q8sS`Ef~Z*ltqd2F2=kR
      z@>&fmwALpWA1i04ye{EtwIFf;A(|9FZ$Mfr{91i}68SwJ`3jLGyF@pC5^;P1*ZEBF
      zF%~ejs&Ul(iM?nMNd@msOripxsDz)uG-p&!%nTFi&2^fqOihSRI@a<%r~u_fKm{LA
      zz+$G>8}E5YC9jpeV2{-_&f``M<K$Z7vo(#Kit&I71861f<R@s7>=#jJ#L7K{f)4|0
      Q@y1r+l`}7JTT!0<ANElSQvd(}
      
      literal 0
      HcmV?d00001
      
      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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
      AasU7T
      
      literal 0
      HcmV?d00001
      
      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
      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
      Gxb{DX2}D8w
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)6OHUI~6#j0XP=-f&Q~^ct1uaMs@QEQYC76;zOp1*zFVh=3W;)YMr-Ezu>RR{e
      z!UaYi2@7@Q!uV_a0mgIhOlix*xVeur=X~co-#K@F{yF#x;0EqR5nz~k#-H=8bam6P
      zHqyFn+Kyhb?W%Cn57w)$!*w?!jTz7Qh+D#pBE-<!9Jj3O3_TQQaI+wss$pA?vx^LD
      znV~adTUD1^Zh@OM5&mtjz0CbOc*+p<b1@9(TJV~4&ND>r8<ycNFa*bw1%^<@E{Yg}
      z=+U5|lc76jSYowSUKh?9UpEEO%h@^+;Y5e-zA@yMj4H!iORoQ`nMibP2zSw_R!sh4
      zm6s_;|9Da%rA<!S<z0s)B)<;wTd_phwhUb{&N2)(Vnwn3F>4jY7O7LK6uB#Wg&DN<
      znqd|XuYDAnFLTrMb7ytiYUHkWPFg9qbk1>SL$o;e8B%`JY;GdM$asqm%PpEG3+-UI
      zq#=fm7@e+Y7?w&8)T|T15|mg0<b^48m%6_~Ju(@leUa)!TjV|=Vm^i>CZb4@Xs3>Z
      zhDnSu#HBPx@=2S5U2^QQ&!M;8D8A{Y)kl?OTBBDm#n4s{VF*{aVYv(mPn)z1c<As-
      z$<V9w$%34@n;K>?E2DfnsqT$Ii!(zkZ`T}MEE#ehM^1fBQ?km?C}|v|XBof{!idl<
      zs%~v$p%&1&lWa8Xw06;LmUc#aIJJ-N&&oAUYmD512MA#iy>!w%C-k8o^3@I?K~{z{
      zI7_PpnxtI<1%jXC3W*}q15cU|0v-a{2aiVvjz*S_M^f$~B9Bl=&XMAB4(HWAB6mW*
      zfQz(BPD{i?))7lh>|!*vhs%u$yOd0?NTk<j#~YO?;d%QUr3z9qS=ZG=%mp7al469}
      z!1EM)OL*^^up)<8kwdI&81wmM6gCh~?O^l=I^?#8@olzEq&*2en(wKLAJC1DO@hRI
      z=n$@B>Ysq=<A7fXaEAbQPXMHUxf%<pV58cJeas!L_8V3E{gi5N;kK&ojw<EuUk#i|
      A3;+NC
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKYflqF6g|^!yL3gVMFi^uOEqZ;aia!^!I<b`QEZg3grxD)bRFrEWyfr%t^6za
      zL_(uKfFDJ?v)$BUQZRhEkI9^K&wZSopZ*5$98XN77?$^Wm;bceJwM#DJsHTzYf0G_
      zk?rWj86=K8_#s0Psv7r{j1Em040#Q;15Us%&3)l1hU{xU^wk@Nbfvn>U^w!du#iS>
      z5*cI}rs{quK6eh9BHH22Krj^Q(&ND{k9?gckA`abZHCqQwZyG4%<c)bF23_lppp)@
      zcqjtRS*d;<Py4pnRuQ#0+Ix&#GjW^Y#aKOKfhMLe!zCi!9#>v#RH}snawhIF*kg+(
      z;1BM*i^v&`y!Ri-?TvqsbI8#WyFBO!n$_~PCPiDO>2F1%>x*7IJceSWdSU3B!-Jy1
      zK4w_Ds>e|}3-em0<;qUviJGs^s5H8<A$fAG&onzqptGdQ2icT9N6JmgUXo|zGm9sf
      zIHn*4i>yT+Sb>38xIxk6;1l_ql;v;>Qwf1bWSZb<_80PvbRUJr3GTQJqmLPiX5B`n
      zk2#8p?x)2g`Zy?1Bn7}a+4sn!h9Wkw00(7!92P9o-}`tF7kr3ENx@1i4VdU-o@h&d
      RIdxCKPK?*`88Pa5<v->A6OjM_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYO>V+K427R5kn&fx&_yqRM5Ky{b(Tn7fx19qKO`0eO*7IYB%F-}2jEauJ&9PP
      z?PlJL{XLKE+xO)PV1XwOEyDXz73v&hWs>fL$Y^7ugE1M~VCfzk)*R)DN!KQ3?V(M0
      zc8)+R;Xijr$x3L?c};R$*$CsAzp6l0=5?u1xa<!%nf=E6E#XDQ@$w*F@G8l2PT3Ns
      zHF@uq3r?kS0}7q@)$*4qxS1jJH|As`{zx<v-u@YG?%M4V2oJI!pe?g@(3K0p!(*jA
      O^eY`W6>=zN3!@*bTwlfj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-*XdH7(F*_nl{-24YX>l?b=dplF}8BA6h^$Em{aaG*D>q*Cx4;WtLstY+6TO
      zbcQE=@Wp2boMCuX$F`%)pl{AN{vAI0C#dJ{ZqlSpg@^3kd-uENJKy=vz4_yxUmgKC
      zh*APEfy1}V74s9LwrV*yjk0UIUb*VJHR&01@`hQr{k&Q$N?VqF%XQAX6=^5XEwD#z
      zG;EXGE|zZbYXUt2(>ua-#OW2-7vNZ~QIwu#+SaFL$(DpC1x^>GS7X{M3v&YEtU!O>
      zb!xup_=~1pm+`NcNB+8G4gARuwSc0m1bMi>5a61tz7ed<3Z%+avX%2I((whxf`CTl
      zQY{+!%>c%0wpH_`BfSFO0+Ss!1X${GBaGX6PFRlRpAzVr$}9?W=P6kqp2lzj&j{>l
      zr={Up>=uZxRxMv9A@H1reHazkJGHd{1-83jIr2jNc1e1dL!HtEw@jH#ibdU`#csc9
      z)dY^TF)lw@b7zz2!hXeKFo73HsI{ZpWJ+QZQz|$kFc?v8@x*Lqv5!UNH0;4Z0tW;p
      zw!>``F^OsHSNmSlkjCBw4zcn;w*Y$H^IWeNFSEc7rqau%<G8+Fl6p=0y6@^$b4BV-
      z-L~~Wf|(@Ee^hZkwuN)i_jn2-&aY_L6|^SUL_^(_es~O;9!pPUwl*m+ZhM^S>T4Qa
      z#~?r6usm7xO<#sqs|XC3l}b2i_=r{umF#5BMi5yhz(b*L*Rvf>iFroDn|O<kWG;aN
      zt$oVdX00|GmQnXD+i2?svk3Isk--JV+Z@&Eh9)nbXiwgDSE33V>x#yC4Hp!Ro-jZl
      zO-<X`(zTOQnd^^FqwwC*P{d^(RKhg!5THYS5u(wd!US02#1mx{xTfJEE~SvivWDw;
      zm$`WxwRCfQ=gtMf27>lA1SMHv@wXt5EV^~CEYDc#@*CUv?wwKn#`E-47h;HmcQJ<1
      z2j#L9@AVio{^(qe@2FG9cegr4eD^Yj$C}R}&W<upsMYL`cxnS9KX4qw7@tYLfpf$z
      zK<7vc<Ct}vGlel4VSGkx6>DTSFp+(T$t4b6Ttk-Q>7@<Ktij0rj{b)@xRgG;fg`_W
      zb89%hnQD|tfUAT#O|o;m4X=^H5;9oE3>DV-btp^`rDrm{%JL{1W^p1SVgz#_p8W~O
      zzvrf~k{&Jtm6j^v%_>edtEdKA0(v{uoWi;fEufrT$Ei))!{{OIN2L8Rwf0ESC-pk1
      zueMOuo0Rn?<<od0qMVPirkKV^=X2|r-%Jp;;B&U(ix$9C6EKAZoDFI|_dkGzt$<$=
      z@T<oF(%=!pV^mSF&i;_$I^O;bSGJ1#O#l~Kq(9=<t!}#r#34u*L3Ap3wa|6)0n)jV
      zLqyE}jHMXv#KcJM(Y=5F-lRH2TLa(nd6#tWQQW%}_PZdD9%4m#;uQToEHYDqf3WZ4
      MgMjdd+#Q4YADfmF0ssI2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ESyR(c6#j0v&>Bhs!3C|Tpk0(wK}Cxjr9jwcU|{quZ7yw`kT6Lp=)dtFsDouj
      zXMA)V|Bes7xSg968fJWuX`0-7*6)1xocrzf$Ik%rSd|c9$iGw@>VD4I)6HtGVi}fQ
      zsacl8?c6lqQg@B|+}c#pldP&HH-_>OLJU2Aw|Q5?5UJO6XK0jyF8bB~5w$?hle($b
      zA2W=nPVJrEU<eg0jYq+7Mn)Ks7=q}OAtBBXObLUoMcw4fyW3@Mud8K)QxS_+MKv~5
      zTNnG5FeHj#7&|S9p*$6lsPg)%&9}I1b8St3O-cGwX*X0(-K*!O^=)oCx@8t5^tV_%
      zsfeKu=LPNy4B?cb2;|`%RX6J*R6EkFt?tzHic?5$L~$8cBqSMfr=(rRAg(fWR&7<&
      zxmj1X)ha<ww9~kfLJZe2EMbVDTV!w%9|4eY12-9>nyv1&{KtGay#R{R4ylVIIaj_?
      zrbcUUyO4e%Qlw>MkY(r~7K@@4i6K9GuB;HnZR8}3FvO3+xEdLw$P-(ebIN+@L=~Q+
      zNHHd39Cs;&bDW~rht@OnD7`OZ0uOxbtXl3V_}FnJ1gL;V5+?nCT#by!c*4N;>8}W@
      zXELT-$t!_nT1E*oghf!d(ohWsiB8-*b5>>OZIgDyHuYH8Q5#%ih^<+>c7@OAqLl~!
      zJ*^{xAqH77O>P$r)p0oWc2~))7?wj5zr^b`OOvr8#zZdf>W0=DcH)u-hb{`1NQil&
      zmDow>AbFHl69~``h-I=L=yeGB9qj_>5;9jqP}z4RXfKnGkanYozEl{_9!Ckey7(vb
      zJ@3X>dJb{!Em?VyB0|f4_@cy*qg=#5E6N)}D9|lr4iG!Qr7!5owwA$Qrip8t*(Op;
      z+4s2B#GRJv-T@v)G|!CIPa|3)l87`>%nGA+F-a;K>?dOE7Y*efB&q6Qx;aaM0OkWh
      t7uukgz6FhdU>0)(E=j$r&|MoK{k&V$0v72TBb}fGM931oLo~w6e*u_yS0n%c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@+iuf95QhJC(wZ3O)Ha2-P)-4o6zU$3Knmi5mP1g0N<l$zw{f<~f@@c6r$sy!
      zNQFuuafuKQg_w0*5+p8&EbU=t=bL|a$3K64`37JeYbFea^*8*0zjMMv>GvEr@B-!b
      zgCG>j*%rHe;6;yH_qT?Y9qtRSykR2EFf$(ZB=#^&M|~NV*9h7icmD^qPQiDjFQa=5
      zw<;4ySKAEft)MG1U^s1K3ey%+$l5TGV@Or>fqYZ?;@M!YBh(At@dOpo3|#KDxsrOH
      z7}L54hRsPulsBk|LQh0HO6&@yM7Jg1Q<C{gHAXr7Fmkr#p728%_;nNW$u0ivuu#HT
      zt$TrCs?um^<x~4y`jJMBNRJfX?@KqVSKAq!#|0D149<ktZsQ^@F<6n}?%T#5?~&fZ
      zC`W9mTeyO&Cdv#&jgRG?WVdk**BLTh#SfGC%`uTfK%+52N}a@s?aw>ZWd}mltFIYY
      zk70In?1WEOYPEuaa>YZbUu@~$O}VOtG1v{?7i!DnVJPSc^ACL23qoq_ry}YHT^o+>
      z2D>wmUN`A!tWn3L=zm~^f^HjH>79vFWY5s*4h;GLtG4oqhGW<tX=fm>ZLx>m$FNYK
      zy-hLNTEq;^R1oG8%59`$U-m0XuL{dW{5Zy$4|He<n$}JuHwMZ6fh=MvfwW1Wma<qo
      zf^~#*-!Ze2EK{l4XIy?cl9tnD7_+d9IV>2Zm^?p>PRPVT1yy3FP>YqU;0DbWS#%ko
      MB5u-{rtVt(4H7E=n*aa+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-)|IE6#h<k=+NnfmbR8E3M&@bEy%XoBHCJ|OBc4?0<v|L`it4!%kGrvOfxe}
      zebT5AjDf%t2_(GvrY|I=_#-hs8RH*iJa=XqW_2Iz!<~EQJLjHz&Ue3a|N8rv-vCVD
      znvO0)e$~8gewOn$ET@sHxwh-ony%|hFLy>>HCuLYt~{5Ikc*}x?a|_z*^uR$=h}A3
      z@&oBePlrb6SAlZ2$zd*3S7j~G(M?Dv!^`W^33B-+`^fFRgzlhe`J>~6iBi(}f8;XF
      zn`bP?3T6qDnH}%WRtQ?&t;-$|_6X?MZ6Jj{fgbb|QW@pYSF#*=zO`1B-m+P>C1IfC
      z)=ax%dY1Z+K}{7wnBQp<o#^DUgddoJjF_qu4!0MV<Z)hcI-RZbU<A+Uc$SdcA&UYB
      z@H}C!<pk1mOglQ2Kr1TdL4iX^6LvSt>z2cpO&D$~av{d24IIX(j+Y2S$qcsb0!Q#N
      z$7#r*V%jYxawwAxBPB&Mts~Q>rHFb1M=>UF497VFCmKiKD=KRFP4I<{ASW;$X6nZo
      zX>)%@me&L(LrXQbDEE^BuZMN}QC-WP)o4i1VAC4{Z-Q@Om~+jmmMBY`1#P*`605}~
      zjK`UG?3)fdxT?39VMR;M+~5{aK@H5{ZGm@inrq@N3*1X*=UCC1LZOf?Dr;UT@eGSJ
      zQ_NO+QNTGJX9>rX^tQE0hoc3GSYSqd8AMgcdgw(Mj70S`p;$#Ffh9%E9`4h+&CkM;
      z+w!?bMsPvkBHrZ`ecP%lB|P&lC4?{wp^W!*Eb|e`Oc%<bS)hXV*|e>LqJO%++VTTF
      zDD1fvbpw|LR#Xr6w$|(12;rNf@Q(yOPT<R)S-Yn2PX(?hT=(R<$@*aRvcL|trT5>i
      zVXr2S0uSz8suGN{+wy9%V5vqw(D?;Cp^D-bEvjzF+otbJ-aXjiT|}B6mK2X&p#FaK
      zzVO4_#iIuXqrJSE<bQ=2W5*stj6K2LN1@L?{&uquD8K-(g<A8jK@9QC%wsr;KquL6
      z7h^w;Z9;5f|9xnWqU8%)c=2}}-9q-pz$?yt1fEEM6HXxlUu^?VX$sXIV@l0iIQ1)L
      zE{`7Bul<DCCz$&g^IcGuRP3>d#Rtelk<R~tgYjw$mmXkW6yk$u`Y@V4d0OKv`na6W
      zVbB-or7w}DuP{YlW0Af=nQq_;-9(e;HTo7U`VRN#79P@Vd{1}q1Kka|nT+a>xnU+?
      pqRQ-~aSJunncpdFK=LYuMYdh#mBwg;S?fX*R>&+1fQ7UQ`~y!n+k5~3
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIlT})eL7=FICqfidzXN<{U9Wb^*!4-5cH|EADFuK7&yP-pIoVJJdV0TLT!{(h=
      z#>5+M%`RuM>m~dcO-zh4S-erBUVH0b)LTuQKJV$F6vCp!nCA4H@B7~Ke9!Z|-}|1=
      zAAk5UfPSRCa4AHV^cDS1D0kbmlA(Aeoyo>inM}^ehDMD=y^zjNL`TBKnHk+O(w$Sf
      zX<f?d3DdChQ<*}}m^5>F!!oj7cobR$E~MYihl~{lgzSim34J*)0Tl`zy9G>T@@B@`
      z1X8HTr_5YupF;oS9_bD7<#VQG=Fcmf>e}<$-Lndwa3*0?L7_&27nMG^QLCW}bqek-
      z38<YkE#qq8R?Ns=(_?8vp<yx;*VD6l)|9a`=@AhMSN2Nc$qrMTc1tXu$r`zwkx&Q}
      zCGIqQOuQfJp7r4=9P*-Bp?Npk?Jx~3XjQ088u^)wY2~S=tJ~&mquO&rRS2NXiz5o5
      zJtjm$J38oP(m68D9(6l+@X_#24aabt87wR(^gMmtUnZ|eMEqA=Y1w+e?4T8OZ@M&^
      z)ssmhQH35n?M1JGzhr_9rr{()guBBlB2oPsp0Q`%;LNgu&o+B1vmzh?3~D%y=cpy6
      zTZuI5#Xj5&os-qG8isI=My8_6rp0<tXxf(g%g+3e59cxL#RY}Nax*vAHC)7qLY0{t
      zv*b82%{+H=V$i6DF)_$nG-yKhy`*8n-Z$sqOW<V<SIPpTGB>5+YT4X~Cp-Zj>i}NR
      z@S^DQGy6u?($irIOd4KXQ>eEsOLH8Ga5ZUUJtL0*AEJ0kisEI~OIJir+Ih@rcm=Q0
      zft-<_)zby0>41|!8(=!NWW?oI%BHVrxM|alm1qZ`Ylumm`Lf1}o;HhzK(UC_IIox|
      zy#6MIs1zfjnL;*hjGIz^ExWg>lfs>cAtKobr*)PLp_-rAz|cl;H?MtAb#+qv?2~d;
      zQLjQZpH9KWAN2=&)}RG9;D5l83-$c3U<~j98u+i-&pzx&BS-WBO%B40gU}dUh1Ro<
      zgKIb(l=}vbZejV!1NfACJ|xCxHfEE(bEAU^BA-APQ5CvN=x;Md-W(Lfsoqrt?;^lk
      z-(4J(TRk4#LygSy>3w(}2#a2!(7SE_LsSENK_|ZCE?;q<uhEBZFo17uE^WnKN?ZmV
      zF8lahc@`aH!S-8XH9#zJO>GG*n)O|oFjl*5me^Gk=8|r}kr@9j0R&=L2z%BrAoo?A
      zS;zD5p*q;Jf$)8*uqVg2CL{MzDT|Y`;^u2x3_9%8e$W3On4TYT7(XG1pV<L^VVVDm
      z3;3;!-EfKBuq{xL4NK8s_mD<;$Znxwx`*Drr7bNsOj~32sLvUVJIrSsk{=;@qqE`q
      z(mNZNUB?ZFptCwJtH-vlu47>*``_WmA85s&=)_~3#b44mSd%W?RBoGnu*j>#e!*ey
      zXUWHrpo&(E!r+se&+HkFqE8$}^NyZ>l5?ggXYs$tQ5vdM4Zl{kXjgSOt?Jn$8*p7U
      zva1{@lQUnEGw;Z$rktcLr@2fH+ui>nXZ&AfM+GS72<5a>P6y>2rJPR6IZinz_8>>{
      VB-u&vgt=g1iFav8{QTo};BUn^CddE)
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EQB%`E5dO9;#Fi5(A}T1LqP7LCXcYxSZ2<)fYRfPqIu2=j(m+U<Bt;+e@948L
      zh%-JoKKr8__mT{T!3TLrZu8x@d;9I~<=5};KLCuOsv$-wZs<Gu`@H+ku-5Z++q9i}
      z)3#md<Y(kty=8h&s>M=(Jl8F04p;PsVOKrflV!v8q$M2<2|`-M$(uSyc~;wybx%V(
      zVJI41?nukamzvDk_a(G@O~W0&K^QAX$^VhcBs)(Tmf=kk3YjB&XIBV`lHHI=5RMCI
      zIF>>jT>?p@3Gs{~bd?QDF15C5(plDPrX+Ni?YeHR=#HVjLolI45N3{=#6POZs)Vb`
      z8x*QRxOh-ow2ZT=q?6f|6waVe!&$=lXb}%l1^RK0kX)Bu)owX;*3*;8`dLSNH<`o$
      zhBOQk^3izz(G-CTxX6uZ`g20)J5Z7ZA1$^#&$j$Sh6OI;3iD07zA0HO&8xFB0$Jn;
      z$C}k`!{Qku^d1Zp;(m}(fouMut{+|n$P3)?1Gphkfj0$i`Cu&sHQeS5qY59@T+h+#
      zUXWr61&j;a#XUmGaI4bf!B$!FaIB^<iTfI+xP;LN3t?=5X*^&zS9-IS8Wna+WL8zL
      z2JlFrsD@0mwj12)s%bQ&qc&y)X4OVVu(8a!Y%2V*z>^3*zooBBg)ay^Rk-HJZQZau
      zE+F@G@Ib8&O@X>Nb^jW2e!(2f8EUrs|9$7LD}9{oyy`^B)LmEduy-H+6JUt1Qk<VQ
      zP&%z{6#r>r{3MZLw1ceze=8)F8~F;6`-aXhKIa6#+nEDeLO0t&+3a-^J-iZ5p*M&?
      zarTch_Hkqnr*pdyyEy*|y~>Jz#ianby7(D|zl4#Hkk}_&XTnLvZQF;&7DtuGPZaiW
      zXAcu<cMlJPr4%f4!7~3h=?QdlelO8Uuh2`cae>|-Piq(_9YvB@ptq=yfi>E|I&H!t
      z6D``p2eN#j1uhng356=Fj763@z#^BBW3dnRtqMj$EQV+76~lA9;8hh@c~pQuMZkI(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E?M@R>5IsW+OUnx7(+^syh+4|Wf}$WrKnh5uqDf5?jDNP}+AglUW_OFeicetT
      zKN5sQ6CZ$wGS2O7pjCcIliPb|cJ9oXGiUeo_m5uyX0fHAjj+CN9+;mE|C8lZjIwLH
      zUb*VJzVM87@y@K-!B$}{t30nvN7!Qp+u9RewrV;Rk+=LnIKtBqCd6bW!)Cwnva~PC
      zfrbu3vN^vv5KdsU-X(MdRm&fnA<X8RgZ~3ehA%H!juk8u=2DlwJzgY)v+kaVfN({J
      zhR!HL=+O~Dj1Wr6fS$bNh@IMplJH)eC0h{s@^0C*i>7BuyWtGWCJ39C1#uyt+?VbL
      zW*`(*dxX)}?wX0*kfdhDixFJI4Gq@`#wBUgF^o8&+j0WoIi{_u66lSFn}pu;!R9!k
      zB0O0tspA$#c>sQ05QM>&)}Je#WTF_uT@7~#{mrNvk9FKbiqKgRLD95pOfHk2iz0!v
      z9Kr<8CzVsJP3f41!S!sn{9Z66l#?)Kb==1TPEjp<v>etVVdyU)%Fjq1VqU`|!ayq$
      z^<2jS9&;Z549cM5yjju>nln0<>P7uVQHf+($4cE<IzvL-&`1lKe+NfsKTxgr*CSQA
      z2GJ~pXu+*{WwB{V=?!1}QclZ;STi|EK-M;WU$7PjE_zjwWUYsIwS!_YDS7@FwDF1{
      z%HA$M&9N;#(e%W3=;;%5AJ$`f`M-l>KvU@Bvo6nks~-crvj8yE$Z*OPLhP%ikDwpn
      z>KB9$e<HD~%#mZ<KEe14WletLK>lUbR<9iAbDGzJ3YnQa#@tuLm9?m>Ze=}@);Yd3
      z;{nYhN(<<sMI>kmtF(e`TEz~nVVAOaOB<-rR=tO$!rAD75n~lkxr+q0vBsDr6YGqm
      P4I9|xU2;S`>}S9q)f!V$
      
      literal 0
      HcmV?d00001
      
      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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
      C*nx5Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FZExFD6n<`+#EIvv=}Wp6DBGa0zJz9lF<4VJ+LUgk-CF3#Sb168#7$hKcCp>2
      z<3$Jr0%_m*14#SC2S6f2An^eqfsp7=LOj=Y6Ax8_HL~xy_nh;b=e+p#&%b~A1;7+^
      z1u=o?Eqzbl&$~_2s^u$o!*(il+jb2nKW}X6yA5yEG4@QOxvE=6V<g<n*-q7P6vPEG
      z(m&tO>AkYCWmG%`Nr9m#>V|Kf51a(zMzv-Lh(&?pMcZ;c-SSF$W7p^+t$ykohF+C&
      zLZGXr??|yrAnDajcjTPF<Z=}JzbF^zIb&L;cS&Gs^x<5`N@P>Ct410ESq<IDsOZ8;
      z4Luknxlw7*y=+>>_1*0a!?~evG?-cMvR%;|CEYRQK0J&|`T{c##o)nuGnMX|;RSVE
      zv|Pg@;MpLjyx#QkMSFY4whYTFjQL^w!@#hh;56O+W=YfFRK+PgA+vc>Kp9=+pUg;9
      z1o}Gw9aMo6rW=G`+0ozIWv;Bjy1=m=-LyhtY|xREI)GOkeWz|#+(Hmg#RQ&FkQ3->
      z(>pZLFp0cCifI?+Y_hnck=*>Vf&`e-@GPDqL0T@@mUqqY9EK1WjM_&ug*2YW3kojK
      zrybVE)9@lL3MA&1XNyZ5@DA}#xPpcmyhLJbLP)Idfvm~3FjkVxE^ByM);Cpk^roDZ
      z6y{j%@JmuLj|By<u;OhN5tbUR;416uG8?OQ)2w=RPGT6z|LE3yO<`<NBE70%3CjX$
      zR$<nya1#6uQ8$6>8dk6>ph_Nrm%zy*pu!=j3G{VRKWqqRQ0()$!vZw}I?1|W*6NIu
      zaP>W-DiGV;78vOGM)IM1in)ZI>YBalREz~vel>$f+&7c5CIZ@`Wf@Mfp}Vf(D!46>
      zlZyX)Yw@0W;NHS%e$HKd5{TmwC`eIG^OlK0<^EV?uW^4ovOkf@$XkH6aXvlhrDq?d
      z^Yo2zRmUfOK>zrC41C933`2Y;X#-p)5}^6AibwGncLKwBJVcnMokYm|j8nHV{lV`(
      z&V0+WC{D@883=4c9C~2{PZ3GrX`BrabN-&*@o)Zxu@T`CYjYXJSl}t{k&8;7gIo*a
      z(+c0`rc=4^alVD=+;B!MXXAVYLN-~>sMQuOg^FN5oK48%Y&@bqJd&=5azq`4O$8B%
      zI+W_2ZJ~G}o$H;I0aN8<pc_iHu$X9+Tey}RPBB<Hn=WTUWgDNzlG>0$=ADkLV}RMY
      z%+g~=_SnHD&S0PUH<7~~ey{K2D%T}^fZO;GHLhFu2%q9(+{GvOiqh9y@8L82h|lpG
      z*Wd94{=%1jWjBNBwYzf=c83+kYk1x7-2v7(SMq<`0d7!|^K^hWC?$NUL@CMNAGnE&
      joKX$G;!WJ*>0K1D&NWS(w`d!~+jxho>i7Fyl!1Q$f3wS*
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7EYg5xe6g}G(Lc;<P6dxc|L~RQa!1^qRv^*@9hv3xFZ=qcwOiY|41wQgO{1JX&
      zhR3Kg{s4cJ<K3hq&B%=MA<5p|yJycm_iTRt`t}3B1Qr#<7^ZiOU1MMO_Dp+AuR50F
      zR<|9;6RtidJ{Wb&UtcT~!<jY17S`~FW!8lI(y(ima1|sNGzp<w1_7*Y?ue?dpp_xj
      z3@mnq?d!#D$`NJL^Mx&3hE{*u^oGY7Cd$pp|G^?po2N|M^q({2(ih&HsW2ppPE91i
      z(7~agO+_4C97$*l@w80nDx0=gsejxQ?i*v%5)9pCr)pRg!!>2xm`unb7-lX?A}S;m
      z#692eMW|7YVJKQwvx4(d&3vYk#5LSdaGgQFpne>E=%*v=pK5>3WMJ<l;sD1WQWUK-
      zT!~b*6!t!^VhF<uZZq^WpW9gGxP!Y4ZCk>x7*?HhBRxwJIn9v?kQZe%!Z8{|1sRQT
      z=m8}!@K-2<N(&PllX$?;OL#@;&kbRb$4tjwrUqIJ<LOL<WyC(`?8qy4$j~X7>&70r
      zQi7_;;jwK06LLnnl&Q4i8Kx9aUq+j2{1-UKG{}>hC;X77s0H{WRoKt7BdLKTGRZR-
      zq5pTI8Crs4DZ9j=Za8(fDi%!X$iDM0>6oNU?Je1K&x)4ed4eq35xKfZk@w^Dw18=v
      zyaM!Bh|!aTO0(@W%26z5)a=MHc=i;Xhe6IIdbd&zFpF+_^I)u^2bU=#*Pyq7@C6Av
      z19+P~0zbml&qy4G!<#3#rD^+Na8Cwp`v+l^rRZQ<juXeYFTW=k|Bl?d{!={qil;Hi
      zxj3zz(HWoufF+{-il{G>Wmc(yYgoZ+RInb<Oodb$G>H^u@Pdd=l3{022#PHdN(^(D
      Mr>~TOkpmZi-|bmeRR910
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT|0O7(Gi<0wF-<=7l1N2yM9(w4zc3q}+<-GNASHmbME7L&_v6@W|irXE4KM
      z)EUQT|BmmD-zEWC?SnjIvwQa2v)_02?Ed`y^*ewutjnljnA+72w4=CvsGHmIe9<Uc
      z`JH0X=2m=;Z)qjN*;t%SdC0nEa-(l^UpGx|Eoo-K;Fb)DAtX5BhDHo)xm})jWYjYB
      zlr!@KZaVSQ4#n_{ZabVP7;2pz-R>J@7|WCg|3?~0T0E(nx--R)h}?K}G|M2RiUnQ|
      zhDH@K>J$XftfC$vhCoCFG-q^^ua@?5+<K$s49?J!DdsgJt691j`=BI>V3@gS5`QU4
      z6{)tPIouPez|dP+SGk1qLe69~TaP=qC*v+d{DuOm=tP*dEbSMr_GDlm1>=1c-RNPc
      z+wc#Yp`)U@Wgkx}=tZB5hYW4y`(Mthc!Yl9+2&4GGfJdjTO{f-mAfS=BT``^PjdwW
      zh^ZLF5HaZHB?FyJS|mB5BJL)+=qDq<F%^$paJCFgsCX)BZL~e>dIBpH{!GPlyrAkR
      z!Ibd+CO62wdeK}VZx{@te!5jJNR<^-3Y}w<&?2rKlHmoZf(g77&LXc$k#scMfEmon
      zc*QVOu3CldtB|WmVUC2dx#Q)@3vLuctLK#KEy)^mn51`i#ku`!A@aJ#$!jdl5Ztyn
      zHz~)QdsIO;9|mQ!ShDhbK^Hfmv-+zrBI+PFrNz^bGBn%fbS0YnL-5}U^w4Ds&=&*?
      zg~Xkscc_NGdMJc8P%lAafhe)TGpMl(G@ZCHx2Ub97~nlxs8!v*f>yNAh@l-FKEp3a
      z6baa|Q>dr7{Tb4U*X=sTgC7_;NA#r!3||3L9x!?Zj7#BA=%_1HcXZq?9ghdaymW>q
      z;(w0uZ<zSd9=yQh7fjbcfB~AkPBlga0UEVADyx7nIEJx>Y3yJHyLgLF)Ecm`=aw_&
      zrR<kO$zvW1R8Sc2u!tp+WSGWj>IH}+fo1AR#MF=1)C<ylhW4u=WR?CxOh)cr1O5QM
      CB8FoC
      
      literal 0
      HcmV?d00001
      
      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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
      WsKu=3Hwi0=JxS_Y#9ttM8~6{rq4d!J
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-)|IE6#nkr-I?8G_)%afMG9C@+wx<jmIby@kd_~-Eg;1rAh6Tj>F&VpOqrdf
      z#TQ>lOnfv^V`5ZH3??Q7k_L>1zL*H{*}q5q?#y(zKz%Si?A$YF?)lC+-*@iaKmPh<
      z0l;3=bVz|?*UekzT(&W5JC$t7t+`&Q>becf%Z^&pX0zr`%$k0wIubh1nvPZ5F>cyU
      zV2zo#-KMW2F0e-7WNRi-&P-jmO7v<18v?I6>u1BQ<ECR)EKfi?WIMJ$ED-DMn-qwT
      zxMeGi7*-h2krY@xW;@pDW_`-?&YM#;OJMDoTQX~tre~}7$Qk#mc0*uv?EiN$#1v+^
      z9M(DF)@NMDa(scl-T*voZNm4+(@^M9ZM8NI1#LKHJt(zJMijvoOT-jdzg#T)tp!w$
      zxQ<V96+@j--Y`q#W|lO%@QRL2EVo5&E6l)VbPKGkSbnQA^3&PdcX_$I3Tvx@ZFp56
      z#h8NAuzc=c*W1_L9y*6~Y+ssk)UI1j!*-oCUc(zYUSImLmD@ls`ZyfKKI>W2mgiaJ
      z3Hu{*v|(wA7T8b<J=ker7j|<-s+L`;QUXy(Ba6K{-V|8Xrgq%)s|E(}7N@9g&Iu%X
      z3x&Rdg4kyuryvrucG<70HV+s$s7ldUimD)mAsp6mh}5@e3_CS2tU_bHJEJxoHSo52
      zkJqeeUo|^oU=+tm7`Zy;Hk~pF)0vsMImz0L=>>E1oY0H%u_84FjL0l22;=QYgN~OJ
      zU=1@Q@%h*`b^JUx;}SZ4J6KZW<W$69+IM}kc0rLrI&DIDR^7d2y)^C5PhE5fg4yn<
      z^TgJh^)Mt9v48m)ZCBo|E)9VX3|s^`TBq6wW}ywHsJ?9A!$37p>8?Ci4O~+mZOZk1
      zx1Of7rn(`fBC*xgF&Ahbza1<~Sa0VRNKd#;uVkID)lIVHUvIWOY7_*Fg2N*?QZpM3
      ztD)n%z<~Pj-)>0`)(iI}&l$&xzXb1JjX&OWd`r>Faur+?{g07;NJGNlQ&Ubkij}mD
      za06ChHQ#uq(7~q)KEhv2`Cbe>69jGxKSqHnbS>5eV7!fxVJe<RbcSH!K9i;i_H5@P
      zY#irf%jsPUPtcQ($8w2SPK)LASS}gMrS4&WS3Hy2l}Qae!j1`L4?IQuVMY(kdG!B`
      zJvlv-j9v$ex#XRcV8p`RzZLp^ZprB7L~Zvx^2MCS<w)or%p~b9s(egyFoM?ZVW-NL
      zNo2G|%*9lXa4eHpbTY7&==U}!SJ@-vMI_`Uq~&FF$SYVc>6O>8Nfyy9r?6d?k(Czq
      z%V`{t6`Yh+oTvY)yn&mthC9;1r*a0L$(#6GdUzlkctYP(*$lXz!3xD)i|c1Nfs<r5
      zf!}Zn1#+Fn0^Y&9)T9HCF@|x(slq%?V>fqo;vvq^(y$5lah8^jZv2GzXeBv6!#GDP
      zg->uavIHh@KGY8Tm|HG42p<Q<Z3sWMiVNjegZDlrBZxfrC<v{eQe1ct0JbOb(<L}s
      z3rCBZ6zX(`IAR5x(HUKd9gYnXYNMJTD%ekvG&L~!L|5V|=*evEO3Y)hc(_}wYG{V<
      zXhKQMIr)>JTk_hk=(*UXaX!@JQgL%pt$FphQtU21MzLLJo@GIP0V%&kTz*BRzs4H*
      z4Hf<tTjh7?k$2HAzsDf`N8}GUF7IJd{)iG+b<EC@XO`V+t`apTVWC9sCG{$yOe;n$
      quLP>bsa7|&wAl1Y{vj!iG#uw;rIgkfGaV3FL6xhz2?cE2K=L0TrXef<
      
      literal 0
      HcmV?d00001
      
      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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
      HHlqIot0Sfq
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~pIg5Ir{(LPL<smqHa$tG0y_z#>ASfQ3pOz$y%*k0HH6n2<0@3jPg$iZfV8
      z9~__kQI30)G8BY|_94m5&feX#XV31RzdwHgn8F(w62sD=exiTYyi?QO*9^yUT;srT
      zJnm|%{F7d_{OwcSHx3G+v8>zNN^Ck+kFV=?#p14v2t!;1(ezVa<0stqwZLJeq96O*
      zW$5q^OfNCXklkoLS&r^6n6~NX8D^8M1W4^NL<&xYN5Rmgq8%Ly+R&{+#w~`nq;Tlj
      zFm1k7J=){$j=pDchTaXw(5+qFHN}737!jo~th9jR5^GeIdL&pZyWI15g<&MD?J9|D
      zg3nxPSHU3e%DBTYbRE}$n~EU}Geq~fzwK0AgNo=+rUIy%rBi#~?j3T&&&jyQkZ-;f
      ziBJlG1_YiF6%Q~<<Wj;90g)wPex%~@x%s1lIG(6@if0Uc<W~?1D>`o3@l4-zYyq)U
      zs)G~)3LJ7#q%bBU%`n|OP8H+GFm$`zAo9w(#eJW+D7MnH_d$$?!gC5VOvxZQuQm@Y
      z@n1X@(|At$(<_yr^d0A2l~)OFUxOe*QiKXpm{IWpvkZghY;JRlx=LJblEy8D$$HPP
      z9qJ&`<r}#!%z;EP&oF*tMc3R@u^^DgJd#@gfrk|cka-nLVz^|NAM2*=GcYPC9%}K*
      zo(Lt*(0(kI3&V0NeQN9wB{K-uMY51S1|=MeqABKk<i`CrAy}XRE!j4A3zkj;N;9uE
      zZas|BE@`7R%3?9GQ0OGlBcqe-Q95PmUs#m%*f)B8hx#?}>7jQA`9PXPjLxb!L&0tI
      z(wDl9{(6Kj6hA_?nXwuMej~m)PKW#SJggzHl|F-VhGeFO3303;oB4s462hOwi)6zB
      zoHU0{X&wVo4x`cnGSVWlQa%8X4wKXYP&zDQg&=eygI6d}5d&20D%J>&gdzcw@EYp@
      LXd;?=T>}0Ak%-8{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cU2has7=F&#*_n17C<V9e@+E44ZYiu(TWAYK*@~>RP}^FH__5R7X?Mu(Ofx%6
      z(QE#QS6r$I0fGrvN)zH&yz$CEfEuIG3%yXEGc)eCwqBSx$(%Xoo%ic`-uJwZ{<!}D
      zz;P@YkOC9etn1c|Tz%DXmvber>iMOL=hbaLH(@VXjcPEvY6YcAJ`zq_u3hb&u}iia
      zg!@VBU9S-s&;)iUPr0f^KbID-*(FMKfv!+$tp>SBb;@$BW!o3fPdTm=j0+_CvhxC3
      z-YeTFB=Cd@18o8wla6a&Y}6KQf6iL0+5$T#y^>X(w|qyPW1$vQoVvid$^Qe#7=u{l
      za+GP_tF3r0feK{%LiZ84*}x}PW06DwYbuU~KwPU9CflMTwjjt7eF{9el`RohLo)N8
      z8(73nj=JNxQIuHBC@EyH$G~o;+oZQ?W@0b)32a-ogJx!AsJkzFb*s3_*Hb1A;AsJa
      zHnYxqOuwry+ftrzYPMT<Ja<efKWm~F2L;-xTyX1lK<B&Gt4G4Ib{t05Kp%lMlZ<|u
      z=*JNjKJZ9}D5P){IRnQwqKU~j@tn$R2ZK%f_LA-Uc3GvUybqdqUOCdL_EOM}A)GKU
      zyxvPQaT6z%Vsh0f2Nk6`YGO=D^os2)R|1v7X%pi(LtKP()@!(B;xhUQd{kNW70VBM
      zVMFo$E(u+$($XTmCCRjRVyZe@yv9T+<A(2FA&?b9+|VCQ1Z+*=2z1tXYif;J)S^+X
      z`nT?qR-BfT6a=PBT*L*|Oa%-1Y&lC|8Z!o76WHEr-zh7on3%;JOIEXPFkP~eEvO32
      zo46bj>nj$O<cf(mLSh%aAn<A_a{Z>d(Qn0Oq%!T>HSfB;>6UHm_PGAxol4Dm4Zmcc
      zbJQ5v|F47Tn95neEV#Tq`Knc~+jRqFfkE}-zYRH3y=lzxl8^$vNe)n*F9#J*?cC+~
      z75paq?;`aPHxedST?yp}*v7pXDPTJ~cw$SVldCd5!#AO1|1`WG8Xky##)istCw7I-
      z*eXaf6z?m#V`q<<ok3>{NA93!ip&1XT%Ngj^fnF+Yl&g~7ETVN^}#zB7)@r9YoMT4
      z38-*9t!0w8@q$`L?%-5(94QWKH+7NL2Ohlt=UOYrK?PBMf~5QuDfti`at&$u2z%sb
      z=#`%%E5E>i{1SQj6{aY^EWZx%oR9Kr;#t6pc!}93*<)vsC!P)zFoBneJI(Vs9D&A}
      zGk{lco?1O5tU#F}_f=eoagWkY61Uz@xRW1px4s15hLO7>jb>y$jx5xTi2MkR5!z^7
      zPMl7RE9OQuu05m4#ISJ-hcn5v5pt(z^oL0A&FJLo9xk2Ur*<R7@tcN78<`}j`sQN{
      zUD=z_$ZJupuNU{J&!O<JP`rz)tt^LCe)2J-{0^G@o_zj*9r8zX$)9jQ{)~h27v$ux
      zI6>K2`5R{C?<n%C8fzxXw~4A8qmo!uV~?0M6xFyRpDEr>#jM8mn+w@ava5H8%<Al_
      vT*$0JF5bpFF|$J<mz&!&p|2yA6C><v)t;&;1;Z9YLyKvEfz<^m!A9F(cqZ*v
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVM+foxj5IsXS2?+~?TU2hMpoS<!@rnUN0!T0-3I%2Pk|miWtD7C%-5ASX@<lB!
      zRa)f-_)(VKn+VY=AM|0TdwP0Kcc1Rr??1kL18@TyVYCS>yfWSz?^15vw9Bc2vXoP(
      zDCJ5gwJb|U&GNSDhF7R$8pch-mexeW<m+K*0==ym>%LteQjnIlYZkqVfXE6&dA}yj
      za>Ww}l#P9XuwAP@S9Q0cWt2r)XwI}vZ-HDAlRE-hMipfg0d(u=fF6NBkB%Thto7*#
      zH?#pA?W~=_xiHQOba6&0qwb{$RXI8aF(eS&UCVB-2*h%~AE%=PHlkw`=LI@l=`9(B
      z*JVf5>>>q8{OQekb>~c5Zq%xK(%CllEJ-BfRKc)z49Dbs)2MkBlZsmOA^xA`H04~D
      z-lii<(s5*Q%Y07}<B7@B)RxVvv|Ur#X=dh%j!1)<NgYvyxWKDAu3?HALr7Vhs-(pF
      zS|J+7bQq~-OML=QfFm?BH^Z2r;!o&nT+wk0A?lSSOCEdO(Q%gzL5I7|mRTM5*%I*7
      zKJVvr%=139r#w$pqnO46Ztx;qN@TOlaH!Ipm0-OwL?N@8bkAwk&6KGSD#~y5s&Y1!
      zYkI_lKtE%hdixH{C6AbCSj3`lA|j$&s^%2rs>!V!{p;vYbL9eh*0!aSu?*LhZWuX%
      z89w;81`BkwJS1(5S`?s%8HC33O`68j?Ms?%Us6wfNgeei_)XBgPTIXh8)?8u@)%vo
      zSo9Dvf9*|bhv-j!M*IlFpU9yNW3&$X5Jd{|j0R*IG3;Uh62mCr0-ZA~f#D*?NeWEh
      zQZvv8KSkha@&K3V>#eY&6>06S<mX5v=!>y6@yj}&JVJ8gE2duzPaWWTo|fDBAzJUT
      zn$90%;Uk4<O>G}>yrGG8Xk0ujqK3yLIkhAuP2roV#W9PARE!|saV(M6MmI*0!7>8$
      db6UYFQK{h(mBbO&{56YplKd<L;XcvYe*!T!DIov=
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtW-&Yey6#j-;NQf&@P%2WXR#cLJDTt`xk7^JE16rXdZMB^wBU!uIO?Nk-5A91|
      z`_LE9@u6>hYhT)PG@Mh;=^xNPs;75$mt+I9N9hB5XKv>H`sTZL`0MXK{sb_J7csOk
      zj6D<U;(6BHFs!v~(Kc<TShj6fI@xLYRMbpwX+wC$axPHb7nU?*(EiKrX2JCwQS@@k
      zS=5f<Kt&kVePK$^lMK`OcaJ@|KpujW{9L9O4mz?ZEwABrW<PEp_&!=4>lM4^$~(d;
      znbKhx@cm}RhL@G=6fnD>e$E@NCoSnvA{|!^%kZu<@S)TSgO;;PG69aHjswscl6k|D
      zi?vEYI?JM95(3?MyC}>R;TUQkDmAZcxD4a_C_|x9tCoZ(L);nkLd`Hs;Wmc%7;fzo
      zbsz7%cwyJP1bUH7fZ@1~e!S1n=}Is7iJ^a}2~?n45SCaYh*B#t3{ch41m=CW37kMO
      zhEw~`E^>7VoJ6vdvK!RVj*b}464#<J-;U;kyEu`+nZR*MM-1^8GCPaOi-I)c7-5J7
      z){_aOkyQlvh~a36j47zsmOO`A&c|eo;l@7l^Z6IjGeHeKuEJboxD<qWx2C2<6l9ll
      zbRwY;yrN?gM5sfeRBB;5!>Py(@6`&a6@}E57^oMHs>1xHxn(;g>1-3|nj+8%9FOA`
      zbxw}@Njgd~t>ZRksD~&lLn;y}XIHAWMF*z>e)%ZgD?F1$&qwjj|GDKBa?b|2-BqdN
      z8Pa<uk!rHMnVIT|y9|dTbMB69QrQegTKYMlJ;B@4GQGABx0{McyNrB#k&&kS6Sg(W
      zuv|}=X6u+8XeGdWbP^L(D#?dB9;uns>Bx$`E^nHqnpB_ZSjMMB-eNHBshL}|Zt=v>
      zwI;o3!>yX)#iFRtKsz!N!V;x;9A7cSg9eo}*?P!osX|$YrgKG`irF^ZrmfN{eCTjq
      zIBT-yaC?;i@ECd{S2OE~YS}2deuW%sI!d6F*cv%$-c{pNko~f4o6AOZSw1Ik*@(9Y
      zuWzeqKeb0;<eUNo5bb;y0wadRl3jC(a>h{ee&Ao<)bpxMXj;!%^p@mI;kwd|foOAm
      zAA=z>3+c^m*(G<ppTyN&V~)~@juv{jlu@KZ8b%QvO$=&U`o}{3(bT0c)R6QgjTDld
      z^hXaNojXXY3nUrI_VgyYey2qn4$(J361)o<PvS7`)p6yp8$Be6CJhG}e^0umafdq0
      zk3|e=K>LOoj&2*W+tA1%@N0Sty{nrzR!83!PSEOud?**_r<0`k@C{DW@(eA{y}{5H
      z(yQIWn>fEn%F$KI{K6Ydq+ipa*O;i|GKryJc{Q_zYh-q#j*m0yMEA`)a>HAgCFL9`
      zhezs|e>kix)FKQ#sr6|YweQo0l}Pt#bu2t=mbj?O;e$B9&!UH)LqAX9EKg&UXE4P_
      zFw4*50ng$wA4Qpu!QtchmS4p8d;&l4%XrDJ;3qzbpZQh%!ms&IjR$aqQ1##y7IBZD
      z?8lF|PpdXep^8uNfG+nXJ^f3h)981a74%h?`H0TYz2Qij5lrfHI$g&~I<tw@X70Tz
      z4xd3gpGAVtp^MK`4R`$<dIS3~2l9l^@dbHjc#J1ulo5YVF1o+`je-S)3GRG3a_783
      z7J))&Ivkp|v7MGrB9?6p%i>#DmiM%zp%ccu9)i-LV0hYuA)vTJFu0M@I~t{TpbW#$
      z_ZhwpeNB*50PoKKyNHkN{1rAPD!z^7BW2SC0%O#d-;mbT;(ot+)SqW)Un4n6a-Gif
      NlH8#EEXn7H{{wdg4mAJ(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%TW=CU6#j;5rCUlXLP6}sdMS%#W8zzl2?11)7DI7Od@%!^)NSal*<D)w6(;@?
      zO(Z5h_-f*h@MrjFJTqLR&H6HPzBA`L=R4=j&p+S31Go<(ju6Af2|wfS4DZ~sj}37q
      zY~QHZec}0zTbC$~2*ZjDGWa>Yz3eJCL&_7b#RsNvJ<G9QG-?d2$*@#)Y|rPmZ}P!V
      zL_hrcQSNMi{LPT898~Lv-FD}7rB<uU=th`yFv>K0>D2ezX1yl;B<&w#<_$9}d(P19
      zi>h<_*0D(-!&+;;hvw{Mk70pNdSOVbDAfc>^tojVmm-qWi09l@*<ueZ+wvbV)OP-t
      zw-J;o$X7HOB30)|BoIbkLk8CwGUL3)fYZd=y%W**_Zmg>3K(u^Si!2aHZ)vCT3TBg
      zt|3i*w@C59@U$n~F7FKl!)nXv(*iiHf$+o`@!wb;u`Xy2*ekUj8&8rUWF0Xq9t(fE
      zc`33O)DV4zxv=TTH1f@+&XAvQr@!jLMiPf=eUB~G!L*?IQ)RhEY*Ekh1H_R>6fr_^
      z`5mx;91>WZVU6(898MBmp2I2P&@dI3MyYNZB;66pkwKQuHA3&HT9odrUMhS=PA`p6
      z(04~z*K?5(Ha{!kO*%6w><LMFN@W^Ip-H}H*rvA!;}p1s+k_|??oer_th*E)QkIk<
      zTg%FgDj7Q{PGlH#%lN4N1?!*42tgK={R16UL>mW8iZJMb<ju?ESApab?om29fceUW
      N%j8}lc~|Kx{{@HQ+`9k(
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZ`#!AiqG5Pg%zL}N8tttSz@wF)jhDO7r?3PRL_()%VZb!$u@*;Ieali<M*@T0`p
      zt>8gqVRqiko40T0^XvTszyRG49$|MT=ki6=&$^fjHCKfZV_7M4ZqpDxp=%kUF*+Bn
      zc$3alW(dKlF0>gjp_e#HE?HvH9rh;#e_Y<H2raC%v4nsSC%RDA%~PtXJDKK+&`HWn
      z<`Y?Ii+_r~dC)as&#C@rZO8`dvZ*qs^5=c-PL(+;*=MWQza)eVuVnQ|h;H53g|-Ib
      z-_IUd5q}>%!TSM6vbH&fj7ISI0KviG8<t-=^AK^2T=kflCs<{?vtXf(HAc+GI${v-
      SaRZyM`|Q}8Rkt{L*!~7G`&h03
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmZvXy$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
      HcmV?d00001
      
      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
      zcmZ{f&q~8U5XQfWF{!cITF{$_H~)Z(=SnLSJq0}|y>H^uZiyR6Hnp$Sli;Bb(1$9{
      zZaoO%4h-|n{C4)+_2z2@;1<0Y0pWBe=W-$H4{atw&6TlYG?iwe9$XzGBpf?LG*%bF
      zH=nba$}J(f(?;6?0~e`B3ce?{)Bfd{5RS?>m0$;ZZR{c<bW&~9Q}dpw>Q!ciBJ|QS
      zm&I6C+UcKWXs5a+ocXQ)dh4@;x@@Z4ulZwuki7WmqjnE<fBovl!8ix8HFt=E{c(<2
      r4G?eu(be@QT1&11B%Bl99Wr^3eby&i3T+&)VjhR+_+4FA0gk=_2`f{I
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaKoF;BxV5QX2BlC+_P&>6(SkPKikGoetVNJvO9GKJ)nrb-<taYKF^13!QtRdJ3w
      zq!MEByJ!3J`Q6X%>l?rw7A{7Fn|0DAooYS{ohxox8}(SF+l>@U>#mn2TNAAkowJKE
      z!MBJi#jBT(HK&F!$=Sp@<Bo6?gfYRBjXg=Y2*T%K8^fJZ`_p^ELheSZqReX6ue_;R
      z&Ip%5`2HW{51@xEvxxUrZR?buijw8ggA}*6Jz*AW&2>~JO~Z`~pKvw&*B|i-^Me66
      n1c@l~1I99nV>nU}TugeM!t3?KDn^*~>l~+|o{)qyoIBHBp1f!e
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2oGs5S+`G9b;Muv^0FBKwIKe!s3|<38g7iDye9qNPR(a%!#^k?P5EH{wolm
      zN+9tA_)&<tO;m*X057+@=h>OrJ^%dm?FWFz=vXKzc!$AB@WIdDN6A}XpXj9UH`8!(
      z#H44c6*-5e$J#<g;fjI#aX|3y_)v$1LT$T0=<N*^)_4A!>j~TTdM|fJJto~3&-%}q
      zR0^snG=yfVF(@+nBHG>v<0y%WrwZk^HzK&3zR@<S4rt27RW!)7F@r3$FLHRJI-%EH
      zR8g~Gnc{{E%M`XLZo05hQ<&e065XF1jdeB*#<3Vm!yq07S!8OtbWp}!qw1R0Wfyfg
      zW`Khzr`IB#`lejlyXZv08Kjde)LW6z|F!Q&W`_#yc9Q6<8wYu=a|>;S)<2f3P(Obv
      zzApE~SFWIG=4IA2qe|qIj3r~4vCOG2!6p7Ot5?zmtbT{uZ_J%x{xhygz99Lc<V%t_
      zKMBn(o(&2C`=oh|C4^YP5Vz&45#rm-=(kvvc<*%1aHq5W6|FxUb0VFP>6q5uN&n&$
      zjeBC5ePUXX?LHpNIDJM%&T8iiS|3H!SgOh8snD3|2$<27XwTSM#Tujee-s|VL-RME
      CY?vVc
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(yH3ME5Jm3<;>CGDFfUOc8Vb7ri#lZpQbeQ_@B_x0IEjpdV&}oHQSbrzsEFCM
      z!>cik$7A0;d*{x2^Zo(g7H0|-!sR4b1S>yXj+4me1t*z*Hx1`6^3v6v!Y-kuMSdKJ
      zWbi!UFe9jlv!}OLCS1E-zXWn+P+Hz5*m80(9HuOk9oOsSU;3Ox*@#e=zgq)@i$Cm)
      zSKs~$R%ax>#K(jC%Z8D5W7d<j|KTuK<}e}G9;fqJ$oJz|(9YJ8nd3%JOK9|xglC;N
      zNK;M~97&=yhM$)ZnuWdmQiT(OSBlU}$%D7QQnd(@rEC?b%DSqspx36bXR2M)8tSHR
      apef1<_RaGEEvb(5heA2BY#d8H#rY?ZQ=K3H
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!y9&ZU5S;TBjS1L@y;x}DVQs5c0SnPS#zimWA;~5BZ5DojA0_Su(+C#(p4pv!
      zy&q2i3%C{<0^`sx{kzO>DmhCkDbaG321U$?r*cgRWfocj1A~*1J&q(EEf2#l(3
      zp;aW;hFenv+~C4kI_<9~Uz5OO>ixe|ahJ1$fTNO}GF`KrjN-JUy0mv`kp;9-5pNv+
      g>YSScEJ~os*5)UhEZjmD=7HWf+9vY6&%OcY13|h;`Tzg`
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4TWi!{5Ix`Cl8v#|t*u>e_0sBY6oVitScGMp;$mshhD9H<YtYn~l_ahDuN0Mn
      zf<M3?C7zjG6zPM$d~?anIcH|_<LB4!0B*svP%-fKqJ!w2U%XAS7k+#YXQlt}{hK&X
      zlk8O>;i|qNa~5g_C#2p_BUbN>_Tq7AU<KP@@FdtUxUu#BX!i{o!P7w~ea&7!91MHv
      z*Gf_uv=nMev|Hv>#|C?SOkGL&z@Xac4h?Gk$@ADo-2s)kIEfZf*JmY*oue4tVUwk&
      zT-4F9VM%b>g(ZP4!5J4e8V2)QNfvMKzaGVT7>!aDG#N+fFv=5&HR+&=3&QG3>qQq$
      zIMh_WObTi(CsW;|>vWGQF>rP#`}sKDOay-6@2%gIMH;w+EQ|Ag8WlxcSm==DUmNB&
      ze_xDO=B9Y<8rm{3y|xUimUGfpL^N%cb034t`s0iqYZtKg4dz*E?hx~zu%P~;`b+9B
      ztKa^pFlYI;NCey=%v~(w9#(N1=k%)(@j5g3O-2>w9q$n5z3X4F@&{v1se44~Q`(01
      zFHNg)NhPySMH`}B#+4bSPiu%-_da9ggOZA*h9(~=j7-OZ8BB%pMAjOv(#juXa1C9w
      Fe*t@mnb80M
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIl%Wl&^6g`tB4NVL!X$zzTD5XH+KFp&$q@r#Lh@y&06tV?39knj5Q`t@d@!qju
      z!IC8lJ^&;tBo=%CzrlYX&Ww$TLnK(h!kIfW_uO;t!_L?5pT7V&jf;6?1V%UPZTo>0
      z+;_Y+OKwXqw5~nelD_MB_pYdI9$A55<z=-($F=m~(#nQxgaQMB^c~x+OFwX$-tC3U
      z0^+*B?)jz{gtiyfZMP+J-yR2hm*1^l63B*(Eik$GC)ROIbBo@y0zEC?71*OemM25&
      z_RU2e7guG_@SUxY)B>gG+O?U-a_BQ1y5yxRH<^UMNQyF)4?^oobVs+|OOEG+a{^1%
      zwkT1OvngP=3bkpC&_5;C>dbh)xhe|~*k_=G{Q{5vDMg#yIO&w!RGvys|Dxl`8?DV1
      z>EE(fT=t^0*le(aHv7nZe3%W_oj_nL6|7tCs(3-O<u`OBJtevWaqR@`|D0~EUO*2<
      zRdJ7UPP?$x>U}K#F#`n@m37>Jf!)eFX<!ffl~pq^fW4gOH5o4JbmHL<s8nmIDx^xv
      z?1|tw5*qup4XDApWR3-<J0f+fXWJ}s;)%c9KI20_Inq;Jh$LTiR6hsPukW<#iGZ=-
      zdD5SE?I4gr9_IzjzkdY<`jRwol;!H-2PB6PKE2%KxyxV|A68h~tgl{KUA?llT=VoT
      zVUWK=+|`NAaxIt>lT$)`!te*}dqABr7H|iBxQj9^Gx8+kLGILj1&0_%S&CD67gSfN
      zOmQ5JIc##|cvn;$<!m>SO#(elG84HbB*lcJn2;1>5{6WxLs^P$e@yp^LV8J8F(*FZ
      zh&j1~F>`7M<7PR#gA-;sw}a}hBuBLGW3oPB{HKie48wTN6kljPb5X2BPbJY)N%T|_
      zJ(XAw+0`gBDqD<+SeeCDl`Cg{MD;z53{;&}_kfq0&WIdhI)0-u#S_)3cJO#7_;pwC
      qv<7v8$2!4px`I#f&*^vO6P@6<UBDTf(aD{~3|IBpJ;&z)%0B@0_<|q+
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaiy%}xR_5Xb+O<wHbKPz3ejMZtr_7`<SO1|`94<RIZ_QkE(u%P!en(1S1K$;5*X
      z;6oXwyCh`w&_icBotfXXGyVSg`~q--y)>2>4n};&U+eyhbe`*CCY+$&b^_r!+-`Y%
      zEUpK9LS`BU!@7#C+ngdh{gJSOG*S$Q8iFbPKsdr<NL@%r2A2$pYOTj$G~I#7B7v10
      z(#SC6P3egH>9{YvF7Mldp<ucew|m@^%AOw@!BF}PRZ~-Ve)R@JNyeUJ1#-p%F<_`^
      zA-Ad}4RzgQ*d6Mau5OgVP>fY=+ODrkZvH!^&NGx_$2Wp6F8S9bE!UAxQo-U6YcCw}
      z+MNjvfWos6?$onHORC;h+OeiYb3Rr*HTFR>qLrkNk|9mgA-PP}DQQMJdGvwoJ8hPb
      zBbg<woCeOZO1oSXgf-;JqMw5ek_vD}OU1H9aw-hI3KL6_bDpSD3n-GLzUdKn8pM_!
      h(bXVIdc>m!v8_i8HHfkv;b{;RJ>pG+*a=6u`wMp`#}fbm
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ=OHUI~6#i~`bSOn&cvr-th`eM31i>O^EK?a$TSIGElA%m+uuMri1x;MIGsYOB
      z#<*tdYD`Q>SQr+rOnm<le}VDbX@k=OHo4RL-Fv=szVo=B|LlJRForoVJPdss+P3yU
      z%I_HFx}<OGrX{JSrRPj76Uk|ty26jVsAg#9mXfw(N%C^iIc8|e>p4Tqr1V_g$eMT6
      zc?Pz~&=Ag=c}p{`l$I&zHG7{99xw0y-eu@iV@YKxCP!ByOY&`HMGhy`l$=yJPptyd
      zKN;F8Y{JoaLYe26-x%7Dxm07f`0ZDQK*jC6au|SH{5sA;4aZ|@L@h@6!O&XaBcd)P
      zlAQhJsQfbScZQY<Zd6Vrk0unqqr`Z|wX=q4SaS@)fvCF+i)9T6se>to>Tq^V_n``B
      z{Wy&v6{5(IG8*+QzPh2Ot)gXP)G+l}VRKc_CAHOz&LBp!Y3h+iog!R1thVkMd4~S7
      z$S3tbL}K&VLM~0-y2}_9S{XdX8jZ!eZj~j$&@(XjKVlsihW)sJ5w6#nG<RlRj8gAT
      zE)qlimPX^6uyQoV)WlM>VtI<EAs%DgkBg`m;1kdwpiw}xfEEEA0s;akO@G0>Z)SJQ
      zp!INzlJzB=tRn`mV@Fv^&I=gjlF&<zX+q#b05zy3<R#>RfG#?#Kg52*4K93&aH9)1
      z5pH&2k#LI(w-Ro1;da6uF5F4D%Y`{V;KJ>slF|5d)AtN1R0(t4-l5^{J@mYHMEBCy
      zN8*7jrLu){v<nu^a2|bxh(L|%CntPI<s@r{0SuPhj?+KC6NWxu=m3{&+Iy%-a7qI_
      za(w!WHYJ}75-ykcuS)y{;*Y%}8vSJc0QnQ9{T!`vS`w`gt!Y{#v?j#~TfAb6leRcz
      zi&t%N+7@SQ@!G%m{iq|mClu)^Ch!bXc#avoz${+k243SP-ax@ym%fEVeY3>$;QC+9
      C?--5%
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%Sr=55Uh^T(fCNjpyCf`E)JeOi7~Jc$U(?`TwCcd&dTm&_1ir70e+M?6DB09
      z2M;p^{iy1yukVjf09QCvXc5k5rZ(@odK34oxn}2e<~*0q*imU-cr2A?$E8A>(2K*`
      znlL(fm~rkEwg@MS>fDRfcadPZLO7Ons+-(PZ9G2`1{dRhbQet5gDK&tL2_%0Dl+u{
      zRD%J+X`?)3v(o(ClDu&8B$2FnXSQlIwI{D3i7?)|FXm;=Be6_4%ho+Ey<bLqAsfO*
      ic$*<`)g~xxBj&i1u#<2%;a<Z1ga;ABemDFr^nL&<$$jMj
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>*-{fh6g>@z6T=9I;DQT+3rSoeDsB-Jk^rM2Q3!*(HNdE&VL~Mn#7F%Czr*rD
      zt29zt<p=ly{*9KWrvr(S@+EWc?Yo?F`gVT&{`wuj5FTl05$Jnvty*jG@=M2k8n;(%
      z*NbPIvX`<vD=j?@0f8Qw6t8$rA?^or3(xIEPoT4GmmI5L+NH8nbmxqefVd&BBUyCI
      zp5=O`RjAm(fuC=G%}>00!u(_|n@?x+vyYQgW7)~H%r{zz1_JE{k7mrV%;T|CDxH#1
      z!HUi3OnN$JsyJZ>yjLr>z&6KSve(XR7(+C!I<Di53ha$!eAESt#1!C!VHi=9#mVB5
      z9Y!nm>gdKk@@tYCHMbMhejPi}7REvJX*fib^`6s~_e{rO^b52uJFY-5!uE!&I-;XX
      zRUOlDTxD2m@+6{T7up0mGLCC!E6WRZDQ_(lNTn-NT%?p11*KmL2E1oZS)kvi@}FBu
      zka)RRDJ}Yq>KJRh1-3u6J)@>oYb0tkL@1iZ)4VTe$SclzCGLVicO=@Npo%6mToBk(
      zAE3hH6{oOdm%_M&D;h5I+Ugk!f{p~P3WPW)S+L6FwCk_-elQWnD6VU`Mt$lH{39J>
      zIIn<atz}+b5@`+GpN2^ai;f9QGILe#UXDw5yxHY$WfsOT47m?n;J@~v#yo0<kfF@?
      z<>rmZ?5vI)ZZTx7tk~|7z^TSb8)aK2)x;v%Va&)DvjPVq##XU65<{4yawpZQkAyJ4
      z=?&4l%Qy5;_PVd*oYW{h>o3BDqqeH?F`t&IqMv&xpO=PS1hI{tMy~}S>_ZrBo4!te
      zM}yx^zoWtLWDOsOU(0p(zg%v9gY40b9{%p8_nOm!{Px98e8HaBfzRlT9qb9LgVunu
      zj(*1AN54Uozq|ePJb&j1$YiT|9Ks#Mcy?a3!U>$D$EG-i(;Or%38uxjBpgYxPrfz;
      zcpk@@8k{)4GCvsmgn{=oS|Eo?9RSN8qN{}35WzpoX2pa57Qbj(e70$E@4v+_n-=p%
      ziAAcoLP8SZ=r;`Cja6~6ijj4Uf5BAO%_^ozrnidQU3p~>NZVBQptSGMuHxPYc2IoV
      ZeSuz+`x{*09Z7K&@6k=(5B%(he*osNKI#Af
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fy9&ZU5Jm4Ab$z0Z*o%cWF4k7!qY4NL_G>ceN=zVGqu*xX2l!FqtY{-x%v|Pi
      zm^+W>?G9j!rbI!YchtGQs_bIoy`r3At9+B$xwhIV#gs}E1=?;;MVhx(yCVfwqAbvT
      zchA;DYT?)~BG3wwm}#5M4$M#}&>#5!Z@uZsa4XO>%%!=GreWx?*0)~MDal=@wn@%u
      mKuZ&mK<C%($Q@y80v<<+U-j6&L<R1R>PKr%d0yvSK;s2heM|KK
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|e^U}+5Pn`n56@HS#I(}7R17d7%gRD5e-?#WS(G;YamZ=sT;RZ={+)e;zD9r4
      zOkq<qeSkhx)9xJt3RBGR-tNA;&+b0^?(aW8egT-kGYKAnksW<cKZq6g&D?g(*fVl=
      zEM*q$HN!GCZ8M)+WRnE1Kreg7O15dm9OG(chg<~YEwfOxlew&MARv+g?Ur8EJIvy2
      zcBfRd37&2@1lp#}oN3Pp^oLRoqNP)27c8DkZiLeU-uZmikkNuJ1v0uRcN5=mx*Y;%
      z6ttp^r5**6EA=Yyp<SRmW#){P(z}dNc&=wGLqJXCH+3tm7fjYGMz8(WEDDS|<@}F|
      zICW6WmkOH>T0;W@o!f@JRL4k5C`_CvWKGp*=^-_(TO}h|PY<~gK|VXbW)~d30-<mn
      zN3Jz4VML&>mf1DWl}syZ6l9DdB;ksHzvkhRt00UB!Bgsanh<r|a{}Hm#${YZRKhs1
      zR|9aa6kNuTjBB_qVd4b7TY-Wbm=uuqxUbbMBDC4i8vBtkj9WbC+o$GS={KDA;SRm3
      z*P6?Ff&=0Trjejo=)1c{E-NrzpX@lYAz6i`IKP*B3eMvK6BhMhjs~aI9&$qCBnzBm
      zQD7jHY@EX}ln)PRyju0mCo~^u;9XkX%Xi@(GhB+{HvR>-BH+>9aQ-MQ*P8RzmP~%V
      zeT|zL<ss2v1T72b@8NAA$-}$gd}$Nt+e#iXI_OkL`{?)q!N}MVIwLLL;O9f-BM=#2
      zb&%CwFX>+#n6q>a(OLm72rN!uv*^YG0!ZT=Ug9ENVFc^wBacb)AaL~44gZ2nG^J*V
      z%kwxA7sy2id0FA5`vDAA3XIX0{aYhn;r~Q}2V6j#W6U^76xX4WL{I_Eg4NT(R@2~1
      z&<KvHsm~lZ9lYN(nAV~ad`Jy(*~>pMydEhdSjO0Q#Ex)NohsulH8WGjeUj8!SM`@M
      wuP(W=%JM^34wUgoT_(AV)z8)TRbmNvPqiLm3LlUpnfZ39Sgum>#EE$N7w@_~_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmah{U2hUW6g`)(Ez2sRU6B^6t+ib+k@#pdeZiX0fKeelpf6h(VH9>Z%WkRvN)wHV
      z5B`AuDC3<eno>b`vomM!J#)|fn6sbXe*k!dih%@S_q}`Kp4O%_=?!b*M0ioHCA|1q
      z=nh+cJQat^WFSQ-DQ3-`MZal(+=Nu%MkB(;o94xED$wCrOgO?5f-!MDcPK)_&R?vy
      z7>j-+eXn)SVS47N^kj5E=sB9MmFxZ_@I4i;an#_aw_5Q38kH_5UiSyWL=smlWO0?S
      z^)IzbHw(fw3u$B&x^BV18X@15o_G;Yjz!pUkH>;NO~3DsyKX4e|J<00MsiBnTS#qH
      z&s7ViejN5W+WN8%5E61gpaxel8wro$5g|MA2lAa1Aq&wde;)~Ee=PeS>VE7+1S{}^
      zIOv3OsAoYvp3G20FZBS+PGxmR2}LHVp<W&rUn8foP}MRPS7f$zMbD+`QBjc=FWN(O
      zeXz}~P4XR0@XMXni2KZYl08|Nyyp1tjFH8=Q+-h0w$paTHtaP!`wdo=z9O%dLbYTn
      zSjsW}tRvmvbwfveg#sSqCJwNP*R0ycJ~~)uf1u+#u-U5~2SwasRfS4?I-$`f$~sR6
      zx7n7~wyk+=2X`15+IE+b%HCm(9nN1NRhOxesw~H`?_qadSB-b2m9Bn4{u6@)RMHu3
      fe5(_*&I$7b3HPzb7S)uChYObvi=~J6wS@BvhP3A=
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0K6VBsMh5k)#InQ+{o?Y>ymbB4vedj1ec#l)QkSB{bl?2a;#8l^
      z;*!+7)FO5U7DfgEkYfFuM4(dtq^#8B5_SeQMh0=PXlY4ij=n3%0GJj=29aE3qd;b+
      zr=~D6XlnQnuoY~MwPqN)5w3Y9sYM_ogi%a(t;j3^iHf3#2BqetCKiLlxq|aci;`2_
      zGILTH8KkiKPY>iGpl28vn1PrT7(y&8j124y96$ym11FT`g3{a|8mNv3NHQ_-0svnK
      BV7~wW
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{f&q~8U5XQfWG0|9CE$F56(3^k2#apG)i|8q~2TSjpbkQww1IecPTAl<CK7bEZ
      zoZX5SaR-L^W`2A#`?db~1aOINjDXNv%9VT-^@}!-Lamgs;$E5N)>Sb=!jS_+V|5{X
      zbDAwxZVAz~HrkFEI7vNHNOssvN2hZ_cvCJ^f-UT}u#Je&Nwrav<~dW<OlE~5bkj1I
      z#avd}>7Qn3pL9*=d)I$18}a_SY^vOw{8>*(9{lu9yEX0KA6+;U0}!9(9&zw(oMTpF
      p1ROwgcK(i?H?9ICoD<(2GI@nP*2fzPE$p*m9&L2I*8!^lhu=g)QDXoA
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U2hUm5IvW#El5Rb5kahNT@^5q_-HhJAvK{=t=15uzHH$NS7En-rPzO^Mq}cG
      zKfoVlJafBE`bEqpd(WLYGjnF<{`vdsH-Lw@=OCuA^3gl+J~t*a<M$i-K>J~1Tl>>z
      z`fyV&4iXAQ;WWHi7!i)03W<F$94M6EwNIvz1e-%WV*FzTXXN=_Uyl{m&#`v(P<KNU
      z_}fPu(o;{2Z^8|QH&siwb(_IxKky}AYpd02&M)`>3bhVpH-nzeAdbZ>(zvWpnP02c
      zNkidE7D=Q8EoI?gK_S;RzJ5L(?dkDrZ*QpSX$M_z*zv|j?vXJO4$MSh^^~ylbC$*@
      z!F1eZp5=@BR*0FNf@)FyY@mI@Ers+b=$Q{jk6FU`qz|R92n{?=Ts3*?>u|@esZy=Y
      zpB&drqO9)hQWV^3?UeqDSnMFPYdd&qWEy!P9lw+Z@;tD{@x}S}V*EHwi#SW3aeC6o
      z@PCQ7Z?t82y7l{&wL-FxDmXupt*al%$uD0oEeI^7iND$`SNSj7j4!Z=M_9rJirB$T
      zyu@w1!ZQ8uS%EoGz%`zNinz{-f=Y~zS#$#xtI=g_nJUG*66JPr3#;6|*hIf5cjYxO
      zvtoDak^Tlx$(yWyNA3$j3?eXPjc=`(>=7XnqbSm)MVdbuoIe}fy)gKWEphiBQS#S-
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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)rRJn2g7xu0MM5eIK*n$d=a&{Gr@Ce4q%tyypt)2JWCPGy
      ij10^`%nI}+GtlYm3>*v~FK|L>E)Wfr=LV8Y3_JjE|4ID-
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaix%Sr<=6o&uU>BX`2ZoMLi3hKf^R9q;cXa%8Fsp7^}+J>4sospSL>ub3ZT=)P!
      zlz5U>6c^26&dERd&zGE>&#(6n06SR9Vu)e2#XJ1Pi@P#tdZHr&<yFEY7MH<uqD~w9
      zS&1kMhhbbBJ)e{9y4DhPl|_bOZBThx#!3VtV#plHK&oSg)W+sLgL4)(go_kL^2j2`
      zFjkg<xJueJ5#8~cFBm4vVV(Q;Jd#@Xe>&<>#tiG_L8taFeaMh+>rT#mS$`4@hUE=Y
      z=kc!k+i6KReW<UMHvKa!4)Fa@&m-P!YHIJ0Qb6yd<%l`6^dgm3u2Ge+^Xt5cL>y~b
      zFnd+u3vRS~8zxa*Tu9x1vGRWi+q!3G1@wmWrD=pY%Jg~^he_>HW|Y%gZ*X5}F@!ut
      zmol&i2L~w7D&I3<6l0`lteBvv0sHi6FZ(Ud81soKEcQ10g}QVSQxqAd?TAYYV#bcB
      gS`bA$;=zKLwIdo9#GD<`wjk#1h>iuZU`Dz44FR5>$N&HU
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      v8MuP;ON)|I-7<4h85zVeU7!at1ZW*212Y2?11keN&<hMe9w(4wV&DP*Vr4!o
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKn%}&EG5QJw#NFWqiir@^K_>r)<z@exY1gG#LfqHj>1+IcqC3fMpI91}n1MpCY
      zwaWz|;gwdN-B083=hyoOfMfJiM1<|JoXS_xzG(9()KnQOZtIDgTq)x&yi5@jHa#Vr
      z)s+atn_{d=OGwVN(RRqdULKH2vdw%u*dGz%^ZG$$Sio`zi%1CFTpM-mo(t97%c4?*
      zeqNWd8p%d`{WFa1lWqyS!S%m*0}j#Ft|^1lpA3ZTE^IHge{19S-;O+w9S{ffhqyQ;
      t_mtHT5f_jg9L})x#<vI=_bg0Lm^{S_>#aG34pvz)k2Q3ISC3VM^=}(VSE>L2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-O$$L$5Ixt!^I2>t*-5c+v$i8j5v5o^&!nsCzL)pGZ?o_N{3y9so();dOwBoG
      zX3pFn*BgL7$~ICAt%DOg7ap92+H;CYg?#Dxkv}ID%|sBAqLYm@L&XrebTn<TJ&+sP
      z$THMl-6#~2kBvByFjW0y%*atLN!l^AJF`FQUIPZ*HAC~G-3Td%<a$S%s#pYKD~X};
      v170U!VdX_9mnOn6YhPY^<^X*-gQX**KVfNeHgYf~^Y2<PRpUjSQz$(FW6xOX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2yG{c!5F8(Qpi4p?kRZ`O$xAs=2c=0s0!4rnNbfsL;^?p=+ZUjwMdDkikSHi9
      z`6$HRK?g`QyF26Enf1PZyu1R~!)g&8!|s&N`E6itq#6feE|d#~X?<q&Oc;09n{YK2
      z!(=wo#ubrc*hnXWP;g~~U%MD;Rv5|SkuX+jb#c^ZV8;xVo>taz<wiVCL_WHD>ptGs
      z9~cVzQc2fkXl@QN^_Wb9({L&x*V!5|<a+v2_*lSF89qu3)qzyvB)JZSIp<+47#af|
      zktHW%!rx@hO{8ULXR81GWrr5BIx$hE`ePpkf0(@<%G7uL?{l@&S-Lc%#X)fmc@!uY
      z33*tginLIoSSF@RoJYB^z4MI9Q`S?Z=x1!7W)Dy!-1_Q59SuU%k7cZ6T1`S8TAz_s
      Bd#wNf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-sW-5Ph4(RBN<;f7CAoK^wu~$wS3Uu^Om~C_Q*f+qFj01ln!&M|lwx!Gk}*
      zA0^IgD_XxUJ8x&_&6_v-`u6++U>hqb7y|3pK_|HNS~p=__hd)L$~zA#kt`%pyAdBH
      zH5u)5HU&#ynv1=*3L{S^Pb$~4ssx5En@PiuYw}h=_yQ@F^ltWU7>8<4Ah%Kas-#%s
      zhf?16b7cXmK(c9=a2yO`gmk-PFA8YLu4q129)du|!2oPV;|@}=DN_n#dE9PPWK$av
      zm?$OHASwsVkVSh*OI?L68mn)rfBfeK>{illR;9pNAL$P(WP`UNV5mgEsY_M-T#~tw
      zqcx=|dH%7f^qKBn3?ov=>M6hf!4_{2t7O)sA2eXGcS06Br)bj4Ab1&Rx^;8~kaaho
      zFzlL-80BNkU1YRG=w5f3pfjuaMe4Uh++AdFfGHee9zG`N-6ajKn!+?iMl+Zt9Y%A+
      zH8h$h#4}{E(3`=d$W;UG14i!%7+^VDCr@>2r(4i#EwK12dF(s+;#cyLmRNoVz&w@a
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiwF;BxV5QU!$C8ecMR0$>)CW;UiGgDQ;)Ch?pb~iZ{SFSCkN#M6J@B{jzD$a2r
      zOA&*8I{UrvbZ@i$`~q-?(+Dkr>!m8yhg`pFyO30p&E<=l8=5#%tZeL3GE=?I$x;?!
      zUtr+%(kNCx&6kwq5e@{-tJfmeMm~7Pk42!DRG@L1QYvtBHT{2HMYtcm3JileR@p+^
      z$r}&#kjq_=@Y`7Hxv?v~r5`}gv<m%M=x1bj1MM32XcyaW^DAvebZ4%}5_;5z1TOwc
      o?ba{M5ee+^X>;^#jxj<9KF&jQtJ<skqq_ES%u0b1zFQc416}ohTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O-~b16uqxAr8q5uNI?)#Koq9p6vS_1LQ07>11J=XD>C4KL&ny$Q_z(wje9rx
      z4_x>GMnj^BJ2!4zxbw%T=e`+Asgp2^_uhHE_ndR@ef{z0%Qqq#rK>TD2<lt6Hmt`+
      zdDAJZ8TN)<@Ql2*?Ap`C`?i~993xdwlEaLO=eUNvoLyeGS3E&2WxM29?xI~PJH^66
      zZc>oAC8#M=ER;Q~;4NBi#g4u_^1}T^V{Zh-CrooGGixqP&&(q<r~Jhys9`c|X7gD=
      z+Rg05WOi<8ZuTy2b2IbVxx50q0%+m(<U~Hph=5j#ZslP?P~)moDtmLqO+hi&3Qnr`
      z<dKb_>rTP(ZlKB`v$jr;E3B#W+VG+vHG`6sr|_eJzdJ!4)FWu{fXo~|&TclHf<04t
      zxNMhX{{*#~#T9hMLVutZT&ms!rz~h-pPkUQUxWQ}u~J$=9liU)|8p;>{~(uaQ7Lhg
      z1`Z09<(xV&3Sk;4G|YX{@j(0p!?o~^{MUi59zrM2Cg>=|`E)KpZT=~pprn5qOHez-
      z1sz(my-YAtWoS5ur-GZQ>TES2b9cNkfV`ZrHZNN=<+x~5n{4vl%RR?4r#>k2qtU2~
      zqSOEs1By^1b>c2w#R=f1I()beH`m}6#2=}_t)z0H;8wXzxuZzAqeSf7gAO`|wG$`<
      zFA?l<J*BjEMU)*nz6}_mUaXq@X%+h#od9n4L+K>S;V(}8GyozdJQWa{Ae4pbsqXGj
      zz6vaCNWPOnOLqCRfRB|2!5)#!rvv6iFso42z}yqc{0z*`CA02FR-M)|b6dD%ji(O>
      z?EXxkVL>Cxm9a)r4Qt0MB)*m+<9=vWWVapMm|c;0Ai{S%7gfsj1aez2(g3-%p4y=y
      zUHMEYUPgE^cp25Z8TK$ts{C^@irc*r>2O2z4o+rpx<k#BhxR?p_B}@U0pr=CVcI5x
      zK1$Cwe7&mYbhYK_s^@gob2{)0hx`YDilFl}9=JEK3#do+Pn3F#ga2yyaT9%&atS{m
      nkP~zvG<l>x`Fm*c#n5D<KKW;8@}<z^(fZ`yp~;tJaaaBU4g3}q
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaKpTT22#6vzMLrOj<kv+P0y1rfSMTTeY0(FJ=5sUY#8x6uY2*>+_e&5u=31U>Wt
      z`cToC(Fg6e53^^^`Jdmp%*W^3JAi$xScoxfwt1fqyzYYxnx5#3KzY?ji1MJrgRTsN
      zvUXWWFyyt;>nZ7b#(7n5i-uxIbhv6UtX9TJiWmlTO~Dew)S(QdI%3!>7@g;Hsy9TG
      z{>d!XsK8lxCv3zq<G_MLo&3Tm)>2@Yb&$jqL#84FaoM}Ci>S)$zF^2z!Up$iJd*l8
      zawb$ub{V!N8u)7odWvq?iyDSzmN7mAgVhvDkIS%DC{7^1Z^OPZoO7u=Tl%^0T}{UZ
      z4HT!Rq7CS&$cm9|VVceq-EQfw<5_q66}HP>kal<IcrwZiojJ+`jw$;9HcpViDYE2Q
      zALe0>6#C0z9t%X(mae4h<gqxa<I!KolI}Cok7UFM1d?gzg#kK4!3an*8P)O^lD>_o
      
      literal 0
      HcmV?d00001
      
      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
      zcmaivy$ZrW5QOLai^d3cf-j(HJghAxRsjpe{!A9Ra9l!iiFq~)AHata?*ev$#j-HW
      z%zpcNKb`=#2t4!{R+(r-%d5N8H%<*{!_OsA)D}WlGS{)J3~4Go3>fCl%$2a#<29qi
      zco;D(I<+=Z@yHc?BMdWRtM<84qNpfk2-oqSb6vqMyf6eV+hL?G>YwtuOz0pLF)V)~
      cZd|wJVd&c#+9!LK*~1u)ed4y&eWzpk0gUiU{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^-*XdH6vw|e4b3)PEi}a1AQ~#sB;AryQIr%FYSBWVXlkSc9=7S)E)&yEvMIj#
      zs*jFuysGaygXxUS_y_n$IeyRG?dAtt9A9?No_o(ZpZmS%?BD<V`4@nTc$h#;A^XTa
      zu)i&J9=olbl5^m+ywXP7ac=KzJIz)3Odzh1mR+T;=Qc~)xxV$tX?O}|W7lnNueG+_
      zhSO1q)z=gZ?Q1(Ng;c$w1DiIJ`!QvO_`dD!DxA@4N2NU$)s^pZk(<Vs-InWpsF2S;
      zpCck|p~l23q)uWCQzj;HlGqWkh1vuZrcIo{xLBu6Bw&d3iirs%6L?i&c2Jcev?OMb
      zk@RO6kUs`ws^YesJKb-#oc4yj)pS^|ve&SiHM{M~ci@bByDn9m8xkVw4n&X6Ubo%Q
      znIa^;8gbAFw)$FxQ<Phbh##UF(x5CMtN$<L*wRxwj<+(@Me%$=`e^cKLAO$x&gUCJ
      zA;DeJGIB5TCJM;=k<!HCS2&w5yx=J8S8uQCwb}mcg<xw*H>~e1CvZ_=rZ2khzTRcy
      zJMAPE@s6~^C55qkp_asZct3&53Mcy!e&?I`09RN}j@7g~y!g~mIqfV<!etXz!PXzQ
      z_xGLFw!%V$*8ZUeNdu&^fsYlE*?LuX%$2O9ye=tMMluBlJU&yBQ?Y8|20m4oAh(}!
      zRHtCD4e-)TD|@886jr!p!oq@q+nfO_t1mjM{}-;)@pr77$l)ympX+G7gE#K4RZYB&
      zyn!#No0XOO^!@V&?kT8;a<uy<E}+B{`*b&4nYWZs^nYR(<T7xMJY)R#jUg`6Pb)67
      zuiu<}zU4PC36sy4_|@UM>_1nWKg7#L^#@MLBPEY?@fl_|twYSx{+*j*c#Y4DPJ5H-
      zFEimXrf?0XaSK^gaF**?KOtVn8~kEwdIU?X38KU_z+3?EM1um>e*qL1gl#rXxIW9A
      zKH9wzmQ7Z?PsQt)#{<oDi91*$WU@jgD`1jU5lqCev}AG3`DVb`B)6<(A~~%Hg`5$p
      zuQ7|A0fjOlO(vwt$nQB&=zLK5Cw>ck?%2vNkft*N;Sr+C!Us5y#{<&jLYQ0#lM7&2
      zI+P|CO2dW@084x;0-h*7#i`$D_<b_2o!{vq(r(-k6j9Rg^hg5^2B$`YzmE*&4=@N`
      z;#(3MteozlI2!-sK)ewa=deZ;Pmcya83^u^a}I;xAM`x|)n{1TJj7D5hj)7@Pk+?I
      zHQJwu{h4py6uaWvcf`Ky+h2&i;oCK_zoOm4W*=pm;{p84QThc-_!aB4WypL%tKpgI
      I^u_StUzzI1<p2Nx
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKo%L>9U5Jhi%)i(;FA0UEm46a>@g5U#G+}Ap2rM8f!)o*j*2l!FqM0_j+7s(C7
      zJ$GhuyI-yVdMH~+2s96NY@cO#a{Zm8n0zf)if9^a$(y*LCZCjrlt9H8rDwBkzB!Pi
      zEo1~5&uXMyPYw<IM%b@8X2vn$V9yY31zPRNpKedS-&qS(Kj_#GNom7=;}&!bVpFOa
      z+fu8@(UGE0m;5q_ltUxeBZ2zQGF>wQPcD$;ljg5T@pcxn{1C{!H2>0qQT7%2PN4Jv
      Drt(+H
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNOK%fb6#lMX6C9V6)CqRtq#=dGV~0#0g+2_l0YV!o0;GggNmdj4))_jCsXZoH
      zRejK17u_PUuT-&UrG`kQ4TvTC{($bf=}!Q9&YkHnHpZ1IYkVJb&Ue1^opbCb&wf1s
      zFpDJ(5rN~^&0FTK(b%z^sv&Pl$2C^#Qm#l_mR+mnEb^6xn7{yA8co--4Rv{C>pGbT
      z#BZAJc0(Yyxg5rF2}MC&rPn2agjtuD<&HpPb3-6qvn$KetORk`N?^DvMB0%%9h?$p
      zEXQ)s30QgMZrCQ};?XO0Bel8FC0v(R`kFxOLaic`h~o7WQaD2LbO^4m9fH6cDa4WB
      z-9QQ&dU$s<g+oa4E}KFxk^+6pmLo4WZ*0l>s<~xLf&S%M*|gWpy2WSzGUjeuB=$rL
      zy;s$ZWpC7)^|C@!^$TkwQ0+jv1-Z3~|64B&<CN(u+k@ofCZb-l8mdPGwTM=guGbYK
      zdA$oMfgazIbQ#U--720$5mOoxDV)SKg)7@NhqOui0a`jopx0_FR4TIKv54k%Vm0b1
      z_V2{B>Z5NYaSZb*yp2;Nz5Kjs+C-{jYiwwEM_~L#QI>35R!w`MUTxl>nOoc~%bPrb
      zJ$O$bbItk8sqHvplPuKanCV+hCvh4jZoxBcaaP<qjdY27Rao>ak;wTaP9bhN6}d}2
      zNU~k&IEMU&>d;}<`jldySnl?U-&YeITF5I`i<(Jl^-Ik2HG!n(d&%N1Kl<{|%`}Tb
      zLJAr$AVwdWAGM?DQ7g@kT4{1<Wo!bb@56NZ4iROYD-`$9SD4yEf8pdF(uHhn4}*nl
      zd=HtQ$u5E+`W{lY6^bAU=Tr2diUDk67#2OiIS>jL-?Rj^a&<#5-mcQ9I_vTys3t
      z#Fux>Ev}f2`ONP4dFURq*zY*D9-UfYg0bIX>(P<b|DgFL0epoc_?qCq!8mRsk8eXX
      zb-MRx>H$q1ZxIouspB|KD4KdeQx9lPVA7{KOV*sAR`><|(Yc>!>uHrx*WasvDbK_Y
      zD2RyeyPu+!-Fw;nJ_?UeY=^iTg6It(49xftVFu~w{Jk~?KZe}3ko&Cf{skq;)tF%h
      z2eHc8A27t*++6WK=I$U#hjecK-tEZq+}-DYJ;3Sp{&)BB{=*>7APEf|kT?&K!6T~p
      z0VeQR#U1mo1F2_}!1OCblAoo1Vet%n;BzU_nZ;)@)59;N@`r*P^h^Rs4IdH^%eW9!
      z#ZYG;PC$e0g8ms&BpxVozN2%d-TCj1&KGdePvIK<X>khK2N3H;7Ls#e8uVoLvG@Y;
      cu+ru!wdgaNqNkzcvO#iLzcmFuQhI;<4|h_*MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmah^I|{-;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
      HcmV?d00001
      
      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
      zcmZvYy>0?A5QN8s;6TDpN0F8SnpmkRqoYEi0Fl}ptH{Xmoz8~bvr+H>JQQMm1VkhX
      z%i8hmH@iNb_6Go;=t|TCh8w-prSiYV{V3Xz3u;jieH&|&GS_ZBH9nA|LZU9vi*98#
      zduOW+r9q-0(67{OFjggzaBX3K_+x!#*6Q4oz-Tyq99hMAlevm99xVl0Ntsd}So0FE
      z0)zX`h*p;wmlU#_RiJZCy}UAKo^6YiCdTpr?~nKUh-_X);EB&Oe^HGWmU!W+$yJ^2
      O7AtT66;|8Pi_RI~sbE_G
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`$w~u35PdZ!M&r1}821ekOcV#fo69AMpu`PL?vtd^mT?AVdZIUfNkI`j_yPWg
      z{~=a)axkcPnW^Q~d-bZ{KVRPfY+^nIi?Dp{w%j`>x|RN=BU-{&PStM)Zru~*rc`BJ
      zNg+WP*FYy$(sNAlq<$?LiZBw1P`X}CgpmyV>OqM>hlIgm;77{!Rn7Hck=#AC7wG;Y
      zOGpT&B`j3F3&$+krMpe&-I2ajdxWi3gLOQYS8U5}|1+Jhu~0E+iZpsKV#CHLJNShs
      zU+V{9%tjgmgyD+x#c_O77vY7z03lNe8f?yGi=20g33VkS!b;Z?f80(RiGnz67&3Fi
      z?>-2rOQH0o2}`T_F2>)El0G+F`%*8L`|(m6S^!IIsfXX#!ZecT<t$~gKCZA&6BFNL
      zkUK-1opD{`2MTL17%r?oBlBoLS^f^0R*{KHJY2>&*B0Aw<S@Y*4`LEiOr|3(U~xQ+
      inGU_ff89$Ko{)Lqz=9^$djUs=&~5`dgoIgxn)?EI8lGwZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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$B7!88kF}@LLKt##%Fsk%22XzqBYh)h#n8m61Ubo5S=#Mgd*H$iNK5tU#YJ0$s|^
      OzyV@0Z~{pt1}*@Butx9z
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_u};G<6ug(F4TRFP&>sLXBn(7|F{lfODT1M>1Dj(^>ng;R;}(9435kIZ;G+;P
      zDH0=t@7}Y|_TBsX{`drNj&T5waJ&>7@tW2zx|*j?x>RyuOs#Bs!!<9bYyh7yY;<WU
      zSanw{m2`yOrLMG_5IS)(BluV5QHAJWw~sD*gecdQx?MjP%HE5jRD^@vNKwv&)lL7q
      z>AQul2`BmgPBQ*fNU2u*`zUTNq}sGrv*dv=m@9X!YH9V#X;Tr#ak5pl#;4A5N`54q
      znzfZpJT?{mB|U2__($MKJR&es6NNG0?t+<^yQlBidE>%E$QUvM8GKBz$5nqTV%|qH
      RxdEb<hZylG4}sCc;Sa9|T0Z~)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)3$xZ@65Pb~;BjbWAZWosecyMA&Obo<>8lwrpgUG!ZTWB)Sre^>-_)mH=@!$ve
      zQO4>44kXHWsjXkVs(StP{qYIl2-`Li3_C5}<Iir;mz{?DD1G5Il?sG*uPClb(YIkS
      zEE<&SbHd!#Tfz$&(k0oE;Tc0RU#Kxy7wSPcNFp<b6w(aYvh0XTw_O*y%Im&hSS~A%
      z`!%km$wx&iY|4OPuN=2Wk-=_=u)^C!wU>|Zu2j*U#lkR+7Q72J-9m87oWrm%38ezj
      zT#CTc@+p+6LyJ+NI(QNjMKkQiGta*d8*64TG;Cf5Rn2=s2g76cr)+qxlrOmH$~;I-
      zYAQWoaPCxBd&1~WbYuAsjV{(MNN4&rAWaeJOV+0Bm^>q&I(Wy-8wCkCWF7LrDJ+yQ
      zOVQjAM1Gz!QUF=9hTw#}!6w+Nu~D}n2d<;e-0*eOX%LH8qIVMQ9~}2F94r6esK;=u
      bVvV+$ev69X$YDK}<K+*IjgcOkk$zi0BO{Yz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O?MPU6umX+`N+_L5cvose24;>kjV%lY68)a4;@G*K*B^ogw9MQY3S*mGu=ZH
      zH+noQ{0AOfxbn!x1+oYnIl5%wk5cdJo(z)^k1V>Y>eZ|J-o5o+{q^_ne*!oSFNv5!
      z|2^x0wVLx+Y<DTQXgj*J?0LSf<*vK->Lk~*Ykr_BMO&{VVJMvVFaOQH3cCsu^LHj^
      zrp70(-6@PtPbhRv$=RG^G16>MW58jBjxo>m1IrDHmQ&X$v@5h1^va~?lyyxZao%?A
      zU__y<FH=-7#=NplqYXPvq_KlhrfgRi>Xijuo3j=iEm6FZ<rJ-&E$fES2$pSMVIa)l
      z&Db)xU8S0~0^O3%;l7B2?d62;aAxyTAw98L($&BwsU-F*ycJTWdw!<5lf(gq{adxT
      zSht088a+6aM6ZImaa1CiIE*9AXh{d73%=*n1AWB`mKFB&HF9W`HI29NP7=oyI=6-~
      z@h*-lBp-;}GmE^?2Bq-)%)&ig3N~nMhU~^k5xq}gZ|jl9O=gPi%)H;kDI|D>zOGs|
      zEAYst8(9;B$ni3*YE`>sh3s|!k(4bl8;T4I#Ay>}M1WM_MFCSdtDpvD@0`GYsL<P&
      ze_e}LAU!xK;trV@#(9Muwm)vy$kwZ^h2?cqc1KKnBD)FO7um%$YT}}p;+6Yln<d#%
      z^4!2;S-MLEP}sS(2I3{J?gq>*&yNbH7K!9q6&9zlSa%#+c#YRQFJMXT?#tZT3?MP5
      zO%!mMIy$z$;kk#0qGlYo{i<WF6+*~k+m~dEjucSgnu%G=g~TMX1l}Ar6Y?*bm=~Qp
      z8EnjQJ=bP4Nu^0i-7s+zw<w)s`9a<->s2YBZL1+K{<lqhg*#FW^#wm{c=6uml9*u+
      zEE5Y7I?2!xHKQR~HLUcGCjUHdKw*308_g{~!%471jxV|OT!|_Bf|DzFLB3LTbVa*?
      zE;pM}p}UDcw^r5T+Ar1Yu#-i;`z9QbuQRHP=pG^=)3aW^R?<=~Z0pyb%|U5F93@B_
      z-(7`+h$F!<$yE%gaO7J?i%Cn4qv9Cve}<0VLYH0q%K_jVI{7yv2kb@{SA1izhd_Hd
      zH@Mm-FiPIY1TD3;3##w}-8W9H<KS}~eTEZHky*z;SBk%Nyf<V##>4?*DBk-Mj*8=f
      zc;wdgJ{@`=#?(4K5Wn~f^l<YTJ}P9_@$rvHbGYybDY~da_T@i+aQ*3g_6eiLAUR(Q
      zvz_Luz|3aYsaJ4_<1t*taaLmnbI9U4E}_WTJa7L7G%IY0`}c7hRaTGi9f_DU_>vRG
      zFixg1dQ4!FqX8G6(bh)nEBKuL2GK{5=PXXoOSsIx$UDeUlr)}W>Q$zZy2~x<8clU)
      zh!~yynfM0Jo>kMQULw~|Nv}S_4pDacF^+J&UdU!cdA~63uH#Eu+vjP%J3a7(82gyh
      z0RNFXC(ur;2VAW%%Qfu8*WCMtjqokKzN0b^`Q&{c=F}g>Z7Og!WGf1sL5ZhhJhdBT
      z&e|A9W097PdRPj1pQAm-crmq=^$%eL$x7}mswtU?o}!ga{%?-<%m1M94I-x8#1K&>
      bW<qql_iGsaRi!^|!AUf;N;I>og#PZob!6p<
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}T>S6otQ=rj5pEwIB$t1QB&%k?#Bh5d<N+@TdD}j5-pNlBDWuxe{FX06vs>
      z6QnID!<;+k&Y5!$^Y#7l3GCAGaD??o^K4$b#fwevyTioXb&sRcX6d;Z-ke>=MK;Q#
      z*uxc;r<G%oM@v|pzN$?oZ-v%@O>KE3G&Z;Tf_swP#y$<^0z77fc4*W1V)QhK^J_Cm
      zVxbdekxBX{w-x_wy5)l{gpKgeuyL5l)P2Ffs<WTk%5mi%%}!;+8X8P@Q$Iy?X(Yv2
      lWxbk1bNe0tO&bn@qOTS9a5-dNPl3u*!~$)t!lI(X(htw~R$~AF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiz&2G~`5Xb)$k~klxDWL_@KuaJ%653jv5Gsm9Qy~RKRHBJbTsF<NF*0^#I}LE*
      zz{jg_=0YS6JOB^FBOqpND~(L0CW?1vcIN+^oveTV{rL;PBW!9&5gxx0r{bOAPc7%z
      zII+c%vFmyx=?%KCr0-6=Ls{RIr_xSFHKYmai^apR&REFSkR?<Xb3(wGw1ymEMI{)P
      zYaB?=61Me03~fnR_Cwc{o^QF%pu0z)7lg|l*YN}41g5YjGV`bR`s24B&yEP$r<P*{
      zZ9=-yZJNAv+>tEc63RN3P$HCimLp$I-VUYLj}YaadnjyEFqV;VFdd97pYWvjU*E|Q
      zoIjWyLVl<w)_;G($Dl5u-spyEhL{FM$F*H=C+Rm$)oN9>T48~)bv(BD7w{aCseDv_
      zEJp5>uy?U=vO4KU;F<z&5SHfP{YfCb#X#3_RG=8K<L%gs_X-E$g?VnN|8F%pu5C3?
      zf*vM!Y~lOT*U%!=E}XPdJMR*r2I8@$kb%b58uBRcTIBnkg3dd90F?N-%#k+7QoLqc
      z)fujQ4|A^av!J51g$!+Dh5c($7FO9(pDeE925Ts-O03mKn!iA<Ro&d0VJ)dPfJSDh
      z){64xYPndAYjG2|LRJpzY(?E}#DsvkStjU;P)S!ZGu%F-l$9!d;urWczlUE?q^}{Z
      t9o5Wf`kbcYPE6BrH>9yP>TIcV=(xvLhP%1XUJ4J;;8o3%(8NRJ{{fm6^2`7L
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%StOj5Ir?UM`OIc-`=Z&3tu?65+ArQB1D1<y=LD@T5Xwh%k+$j3-^AEf-Av=
      zTfvVKYi5LGL<DK*uIfHjb?Q{Vy+6MISjCJBhp=%jF2%KHuarLZE_`v~?U<l0gX7Yn
      zv?dB_a;|6^7bep6uMaMAgxS{kY7**Y16*_vCR<@inPveOorIwn;3?xB$v_ET-H56$
      z34JzkD>AUk=;P8Zf%XYKMWbyfbXXC7B-_tk3wO7JYYjrjmeMNRCalkwTT6a2OIz6d
      z;c1~l$Q4ap=Fx_M0{)<v&|6ko9z>0*4F0FQ2Fj);{EA?%%=7ay7oI6g*vh2;ou-@I
      zn~6fJ>N4fZ(q+<R8zB^wZUyI$l9}zPSiIphMN{dOSQ3sYX)S}IFRYc;#lJ68{FX6c
      zEIZa_R?LD}EC=my*_uEX@_cslFLO{}i((ad@8g>iBis0N7nhcw(Epf#26@jj7<A8{
      o<pD$N&!jL6V}v~pz$nHzNo<X?<?xzd&%q?7_>4;u{$d(kA9^s!_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g@ZDWKE3r!=!4HR%=^rE4T=PNTm-(g_YogZTHzpJ8efcJ7H&HwU7QI
      zp9%{80739sUq%0gcxO^<NCg*m=gi$R_ndq0eE$966M(z86{0}6|4O_TZz6N3vi+!^
      zioNKO&Ua<L9lwx95Aq$k^rY9fZ^xq{0>b?0;jTXyjj%(M3C&TC7dTBF;vAvw2$9m!
      zrp%Q{)sg6?k}zrfHj%keI@^vP6X+S?LR)9Xip(Y=9mvwhFP)=z;nyF8@<Wv=yFmz7
      zVt!T=LeSQ`vWg<6Yq*FB!bC@9^7)|GmHF0CWxAtxM4AXzX4R8mU=NfbJm{RUKHi0Y
      z_hy|?w7SoRV>Xe>J<ImG+FIQslybFyz=8UTPalax8^xKC)~v54&g{H1+u{?-M+sAB
      zh=l5<pUqR{TGbf0b;lVe)Z#3Yc{>%xNE2e2u<+lCINQhsPe+9Xa8)RvgpkoJDyZ^$
      zp082?HGavpn7@-8dC9C2uhq3?YpxL-W9q%<U2-wzg1(_b-%;oNy&)3~%<#_rzl<xK
      z$Dyl?n9XRGQPHC&qrj`RPSiG-<5=aj+sBw2SNe$({qjmPL)KrVGOpn|=O}P(u8JF2
      N^a?yTEa4_9e*govy<7kQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy!EVz)5QhJ8oY)D0me8h!lqPKhByPbfTo6S)5I{1DT8XB)Z<3`kGInJ<1b7IZ
      zgbSxg9C&~}4NriWwWBsNLL9uiv;OD%cV_qE_m7_d_OWX~BRqXCK8jCvG<E$m``i=n
      z>=!{elHsZIRz|@j9LnaacsQ1$?6v`&P+!a*B#HK-+(3a)TNEW0S8xL+VMPgSH?U7+
      z=nBvMA_kr$EJsP$mto`v{;BhlKyL`wJAog?!jJpHo5=jv(R$_Eh4@7%Ja>IJJ|yH?
      z?LI;81S45O4wW))V2QBQb$xj>`7n@SFLkJNgQ4*Hf?e5hzNyD!HzGXi{&nnZ3;xlW
      z1NLq??Y{E9t-RL=rsO8}KA&@0<PdgR3EdXc*zN>g5FTXXG<{R0ZxD)O_iXI(7js*(
      zQm#B2i%~EoG+R#gZ#GWBO$FX2lunX6e(kD;uVxE;q*_2IJH9W&jwhl>Mh4o1t^f9h
      zP+fcoS2vC=@C`vj9tN-OpokLB*Z56pC`0Ep-xiO{yz_)-;yG{4aPxa2xy56NrO-_1
      zS`jN8ms1f|QRPSh)_7EaLsqgD1*<m0dX}(>yjD*L)l@Ynu$~WAV}@dF%vlZ}JI5@;
      z+TEMsZWgwWg7!FpHB#9n%s?FthHxrZ-(V|+-JWB6T(i#qOslr{aE6^M_Xvh|oN%pF
      hcgZ#9hveMEK^1By4ywQRIMQ$*4|rA`CbVFo_y<**(;NT*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?%}x|S5Xb*D?9Q<3DhRB~mx6HMBXQ!zkYG5t#$?RKgUDP=jJ-=MEkid>&jK-#
      zXW%)wc_Q)P1NayoeF#Ez@5Uv=$w{WGyQb=2zpk3!mp^|2c#7o+0pZyfaU@P+d#v>5
      z_%IWn;uj|0mHAHcR$9}`yK=d$v@AO#R0#9eb2~mQ9tKAU3A5Kjy!=o&!YE<N1;on4
      z+cH-oQ{O}<lZ0{WkEzV9GI}R@Nubw++byGQA#{<7tS77I??3)I`_TML2%jshiY>zA
      zO4}=n<05XE%;cM^DWTFbyRwcEOf+x@V}vos`KEW!k@>rR#fi4*iYygO!2|<mrPx!J
      zu;DfTze}5hYS%&Vh00ib^&6<kYU&_o9pp5j#?`y~T3SY+gizo119_!fhnnS)JaP9X
      zG!m_4-pYiv(nfepSiCWVaw@Y7=QbP=7D0>?po)lhGpM1?_7?v>0UG?0YbLMb?AhXT
      zz&2c4zrfueK4y~Fy7LBys0Lp##piqdC^UKJo)Gu(fHj=f^gt`&sw4a@T3esHz)V@}
      lJHp`9i!JoS{)t5cF;2xC<~`Cw77FkP3v3-eHv~(lT><7{x8DE&
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtSO>fgc5Pjpsahry=gr+4;8%RGOO%WC+go<(?2+1gLpfvYQx@}##-pbxk)IY(Q
      zpMgNC#DP0KbApPWf|zvz39h(+E!nf<H}Acf@%fLBp8(v$9S0WS{-Jm!Uc2#$AMU%y
      zf!K2&sc2V5JKhT!tA5mzYtMw%GM#mhB~-_YyGflphIWu6RK_uhz=+zx1YynqTwl4{
      zGV(>>pNeiE3A1r>?8qqgRk-6lCeTyDm6i%)EkfN9L0{T$PQQP>c>86VkbCHdzHSm0
      z>K<S1gjJkqx1|CVZEbW2*_PUsd1O#5U>Y-onYJIw=l!Fuj9v~@i*3~tK}WC?b}>w5
      z^?@G~9weOqFsm&>Myq3Pz+)4E+|z8gtF%@}1UvHg4>)1>j8E=6?VL~^b@WT!>#2}?
      zGR@pH%~S~!+7G136N-O0O|XPg{c?7|ux=Pu3Hj}0;ZK-{;pvUvH4`NiyfBneD-dxk
      zV+RdF?b3$RrOY<=Ta5OP8hA9YV8h{P5tGRCdy4;03kCi{W>5T_<xGGa-$0>JSz0b-
      z%k~+rzDtnT_?hPlSnn}qeZU-_n*%ILnCBB$VFA~f$wXz27|qclN0}t5aFk7=B`mWa
      zqg?&F@{P3eXI4J{Pvsg`hRUl$<tF<yPIHaTGpwaGzrnUH63zJm>UXy}p6m*9Sh&U2
      Q7H*@?Z!=rM1~xJI6U+?V1^@s6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbuA-%iv(6vn@4cU!iUg2*BZ@@EzKFGU13Vn|>OaS1Uhu-6tSSW;WkcEuQ<MSTUY
      zHt~W7@R2kzo|!3KSkMIBi*`D5&iDJynVIbOU*Apu+`~g13d5sA=biK3j*q?Iz&`Sw
      zeS0;G_S|T@`pS*NdbI0~Zh49C?zK+q$T19`&E64-_StY98pFWZAc1I#>u6)>;Q_W6
      z+M90VIllM7+3{V5u2_85+$i?KV7vO1fvq!iRKg%moFJ(=e%;L<9(0Z^o*b(T+7mDE
      zl4XYC#D-Ax9ja+FiKw)t$r?kh67IPMRCJrL(8<ub;RWvV`r92h+LFxfjd0iTYYzD!
      z59wqsdE><lkA>>L^lFJApYSd+bYHZ_FeDA1N~evK9Vh49@&LD7q9WxYb@iN^^C=8-
      ze^b0@K{7@-V~An?YRT2AOux<3%T%H$b-f-Z-oCf%B(!<7b5+_ovG5{{Jvp~>RgN_7
      z94Gc#7$j+DCOLMTp&-=x0^eA10J2Dim;cFX3RXftj8gV2XU{Mgf-P3)+_uKj`lh%_
      zYaTxWMY*xfOEAmLGMLpMaHERv#IYOeSY#;kh0{}U>E&eT-MaL8q6|jIMnN7rjrvi5
      zLGO0D`U*^FG^Q&+&n}u-ra6V)+SGId*S?CF>-04EtnveS<tKXRyH`e`NF)B!a07j$
      z!L>@4Y4x{gscp!sg+FNB#9*p5lxkI}0+l%W)bvaP!>wX{(A1I;8<Am|F&$EjQiVlD
      zSmZ6?<-Vq-<mqjY>|in1z^zv06%^D}p}Zg?Gi4)FHd1BYrcvAx4h)RZC?{y+DeZ{b
      zq!G=Ov{Jr-i6+nDd1^qFglJcf1an!&XG}9=ni<o~m}bf(0;Vuce))FHr1X!}0iEd9
      zDZQjMaJQBJiTIz<p?(qkXEGz>TN&TV_*TZZGQO4ai3S^URE0wSGyK5K<38^<d16?=
      H0~CG(jR#zJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TT@$A6#g~|97s~64M~f%)V4^u*;uW;QK691HkB3y8l_$jVV9ita1xV4X`S&&
      z{Ryr91Fia?L5HC@`pAsqc>4?b)MuX^zr9bI1UxAXldN<0TI<{2y7KeC4}Ju26t;l|
      zfde<pTjuRVaoKVf5_#Lao*2s&=4Ih(YDyM!ONERy5EN)rW(nJ*(d66>nQ;v?33Svt
      z&uPE1yMbnb&RVs`u0;(Av};r=mzb6X%e1Wz%sE@~vZ8)X%R<r0IagEX1jHqQ9m$+i
      zbWO)ioA#1y{QYd{^HUEWz9bNrZYC?|w-P6TiCPAm2o4GCwR6j|KtFj)+CI(&(<;{0
      zcFfsk=H`Uu$p3pb&r4e_m@Y%<Sdi{`9d`SA`yR_Ln9R+~76?2YK^t}&*eh_dHXz?}
      zb^BizLMOT+*pFufn$B2`<qiu3di&A>PpK%bEG^E-!i-mdT@$&CX{SvVg#{@e?q?_y
      zkI9%~`fLQd6w|{3C$?wmoA?lV(5Hy@3j}*pieMLSo~mCAb@6i%M6r`KrRi9`$|%F<
      zBWPC)Ul2IHJww0xw%{0!8(`nHDu9H!>?V>qJ6DL{1WpPx>ds&n>*7|`Lm>{`X%!iJ
      zFWS3Rs{{2;AC2SYhV4s-5I~oK5rKpHW<8E6TlJbfT3A?Gl#V-oJ0tTh$0mefbg78P
      zB8aKf1l_Dv6gaf0=X_g;{K9$Da$K*q1&(ZDyO_^8ylJQ!!G(gE&sv${P>P?vbQq1e
      z7{NHsb8s^p^QvVs_sE;71?Hius(?^)o8J__cbLv)Yu?SWX|vK=$hvG-RbstsQch92
      z4C$~hJ#V;l{yoDX#p`MWQ<!G$tfB`pnK$2G;-qpGt|^1r2-0|6AT+JF-+4=Iq?l)0
      zU0+930R$o`$B~7kZ5E4?L}I=jZQxyj)7v+j&drkJv&Z(-QyG|hqDdQH%)58C#z4Mx
      z&g1?&L{-vf;Td2dpJ3cCo387#En~jt25vmjwwtkB+i&&9{S`RCi3sqo5e8b&ggpo&
      z!m}OxpV)v_gw(3#b4V>RExA{;<l4|S945+UddIPwo_qLqhQ8|4UP8wPcC4dwb`|?p
      z(82d_c;3K!LG%EBKjN()^OjF=P-{S>LlvZPZ3Dzg=-xo<I(lY<tLR-pHxH^%aRva~
      zCDc7q{ggr6BdyPBAP4*)2g{HF4LMlC;8w^l2zj57UlQ^@A-}4DJW_!iDYM*NLSh4L
      z>o_`F!i%dowSokXs-RxT4+y%>1^q(>OmGdJDJSn5)1%TC?_b5s0~-jhW0>hX`&0kG
      z_Za<FCrPExi}@D>@hj8+8&miPH`|{YGwvZEiF346wyI3rAZiPh@A;4=H>ivDe}~b5
      z!F{n{tTEQKh6@I&mxMIXU#$M$8u+5;QUQ)4g-Zk^3|_&6wvOU5uIP+JG0CT(*1pOo
      zRir3h<5LrTxOmD`M(C$P4r?lFm}x*YXUY`#rzWm&<@#{>dZCt78SEIP@(3xgHM}A4
      zHQ&6J(^w*)u~eI@#`bd5fNR?7O}s^Unql@(|2CWP9m@A8P09>qC*?flQA$a9oia;l
      IQQkz$f1^@~O#lD@
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlv2MaZ41Ep>p#ci&R?&s6Fc2|QbpQzoDPn11Ki~?7!W{}1;I}$e>d+71qYyq+
      zCYEPEKiSXr>HPZ#po@A4kMO(}dvT0+2c?(sHWgoSKeyKC$tZ+Rc)61YX0tU~YC9Pb
      zif>9Q`%Wmlwx$GsU=}h$0S^@fC=zOk(sG<{W-|K}vs4nE5;GU+RAkEW|DtbKYDZ`!
      zcW$?3dW7i1<k?&fl^avN2_4tsH^D3LRp3a@nlWS+UpWx8e^C17f`^FF$?gSZ#>zDh
      MI98bv9vMB<E-g_(CIA2c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZusO>4qH5PcI@V^eENy%vf$+k-(01+nxJC<wueANN(abtUe~CRYEJr-Fz6fc~h`
      zN%2s@%X{;NH#2X(e-2*&I=J@X5$=}qL++w%tId0~PUTw^+tj*vVQr?|xbH&{ZqJxj
      zYipFr$9+QOSsR_d5K6842|>hmt^$;BQ9~IOLYQcy2AkDXxsjZvig1(InM^0r=|Ufy
      zB46l?&`i!;`yZ)C2!?j!X6jWJ%NnPN+r_wOg5&U?V5TAlqtEK`PXpzLPgM8Z@DMNt
      X%)k=_y13-3#x^!FUojKvj2^;Y$LvUj
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O;5s55S$0KP(($=&*CSTR7@nEF(yh<(}Z|X^j@&m8l<Lx__w@B;=v!_k221q
      z4VV%S``&JMc4qeV`{(luzzGggNC@mc*{}9nr91FCZsnzIKU8Xd+YfH7Yp3h?gO-zm
      zA}}ve6?@PNyD6vw`qboPNI*UHI$rOLiD6mR;hlg|^Y5Jul9<gRg|xsz-Rn44{pY3=
      zH0);E5m>7GExUbZ2cE2>k4o>+>k91Gr}Sb@s{$fmSPYlZq^3b>sktgO^8(4h<!99}
      zO*3q4%Emg;rogf>(wOX74KdqU>|mE;uG71|ydaBlC`DQVx%h-Y=4SM6rYASb$2=a(
      zC9nr_FlP886yAIeo*JtLYlU~ZtQWS1$h<R8Aj>nu8!(Bz#2mA7h{HS<SaAY5ERscL
      zOUxuXjb&z1iOWX{XY9zHTGoeHiSsw;>2}1w8luMhD%M8)l52g+ZLxGP#73OWCHC=O
      uxBA$vK6a}|ZVQpZdE{0rAANuiGG%zcCExxS*2ac4KJz|l1d3cYfzmJkz;t8)
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gK}*9x5QX2SX{)hXt$ML~@YZ@T6hV-R2MdKr5Wyyg-ZpX7l{6c&N$ubABzW)#
      z_@l&0+8zq^GH+&i`}Ujt`ThC^(8FOJ21EOePx;K&?=pU|lZZdt12qZMt(tjG9VWx^
      zIzysj5oeymP`j3~%x)MeovzPd4%CydP{C#cRn!=ou8hTfJ_$rR;z1-BTCNIt<nvS(
      z^WxCVUZrL@ao4@J!0A((7TJSJ^2C=~mTB$I%9Xn%eSciw>`1+8Kl;z!9TS<<Llx$F
      zl=7)a^&HoFRCyYTp)A;&%XrT@FG$T((B|}=fJq%~Otnta1t}w~o_%8DgBk-CRf`n3
      fB=Z%vsB6qkq}!B0yl9rXi@j1?g_38Vs)2()D8*_#
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%Syvg5IqxPVq>*hMFbIa=Zgl{l`aejmFU7p_qXw?SJHb!9_nwo5?uHJev~+g
      zT2s1^fnm;Y=5Wq@e7?N{IK-+8i*WED9>uetJt=+XC$YHo12amDmOAh2q{z=ia^1g>
      znJLmpy08hG^@}O83x}{#r&OYU8U*J^X_fbwwiDKgr(?11?towi=0<v$!F&@g<_N7&
      zX?b3ZhBCbp!&nm9p@~F15UDEh&(hBCRYvGcX#bb2OK3#D!3paV$2DUF@3MNui7E|j
      zjV(_<t5asfHi#n-X8GsD#Ywm~81-Or0nXn3E4&w;EHt@$)%KV#0xU3I`(|MgEk?}8
      M5|%5iHX{owUvhnV?*IS*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8U3U{z6y3K;n-8YY52(<lHCT}(g+xUVNChE436>TqEl~WLCewCsG81PeQhf9W
      z_~Mg`Hx`dP=u21&6_!5w=wI+J`0R4uJIN%iE7Yu&x%bY!XP<q}+2^kL<Dcg*0K9`Q
      zV(1e{-Pga?w+h|^)7~i5Eq%REa%y$QHf(>n979xKNS-KII`<dX?i&?fU|`m?P5+!g
      zB$Hhch?bnHkwgRu4gDAp*f($5#zLdEX1KTXHOmkfnRhC>wW7PGT(@3E{Y}#on3{hT
      zhoV5jv^`(9tmU%6L}uIRYa!dBWFjg82YVe5*we7Pp!(~&X)~I909nu<_=P!FuWy<a
      zuh<JjdD##cRR^})FfomKRri^TLzswRTwts_v<_JfDNG8)O>eQTf7M`un90>7UdQ1W
      z(gMRO=iP)fyn$(2Y#4sYu^g8v&15?q)Vreedql%q^5h^-UeqgJZn#dvu1e^PhAeW#
      z@Is8yuFwOB?1}_Arr|j9fxFvg)!$SE%W~^&joRT>g7{Yrb7Rw&*e5i+hm$l|H!bU?
      z5=ksm=1<}Yysu#t`?>8{)fWAso#d%BLf&wVb;EUy>XP{l)6%L<TcDi`7Q2GKWY!GZ
      zGaZ{+*-MP;RA;SGlL*rJISpsg-qN?)TVzvlY@ZsS1}A&UiXp60SX=y4e&V4ta}5?*
      zs_}GBvw&Wk_s+&D#&DHw(&?<ruIspQToYJPipi^n%uBm`DDmZTy6PBS+IIZ3S*u$H
      z!}il{HpMhM%nFxj$4={Mud!CKbkEBtF^75Cp4SBqw5qOpddYX$`l@@znY#;>is5-C
      zo3ylPT2<GuOVkg$<Q0vlbn&r<n^+Rqza4}bHnwP<ZK-vuptn4jmgzq%bomR8QpC%+
      z9Rs`hNYFgH7-(3KdK}sASCSVf_N-62U7%j*ipM<-ckqe8bY}PS6o)C0Tyh$2#kgY1
      zTW_eVba@#}^f2`p;q?n>obj^cGse{kj)G%<?iu1gangq*pGl4&g(&V}4`<Sdhd2&$
      zq}s8MPYH06e|c7Pj3qYktuh=7Hd}_$bO^(IGH<&>e7_3>Tbn?V#d-c^c>iJXL_ws3
      z%`O%PFh<ihpFYlC3&Fl)pi%DSk2P`d2Tad2F|{zm#hXnWory#^ldD1#@6H_OtDIb&
      z>cl^#C_U%%7kd1axG#8#zQj@d#@p?8#V8ke2pQ$kW|UVM>f_D?PU8%j3we#S0zJi1
      zrn^u4D4(iWLB9X&N|v;ig_0-Q`JN3i&ho9q7|1cQ4|d}G)rB(<;tYg1=l>_p-@D*^
      zhzqTlEV7aLPNg2<P>P&p9%Fd&5e6qYFFZzn^l9X&ibYCuudJmQhbAU4!BNUH$Yv^J
      zn`*HoCN83+qD|ovXZ%*cWn5`_o>keU+<(U0-I4M$eDrdMpDe#ba{RQ&DnCIRBo(^U
      z&H@%gq@XTwQohl|tqxyR9dV{B8}X25Jk07H+-)Jvk*$<+LL#M_Slv+|QC3iaq!S@j
      RA`Cf!PgTeQpQ&Iz{}-s&<sAS3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkO;5r=6r5MKRB9FDnGm?C2OFb_2MHI9Nt1>P!hNZ$u9n@VAL8HgMB>38;EyuC
      zHe3jonK$!hcV~b9zJCB*;lzVO=)cJi`56{#ZC=7GmCxb5D&9+*MTs@@$b%sC_A(Q@
      z%B)eQoJWNANE=;_39Ym91wl;glk(9*CxDAKp&M(Xrqybx@<+K$72!0tiA)zV*R|f7
      zqI}f_VG!@Vw$td2;LmK8C+a~rckOI1>%(FQF2kP$Gu0&+JyzF^2HcAc4!+oM;4}Kn
      Xzzqa$amZ7^F%B^wF%ym%9d!QzX8A`k
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkO>4qH6r2}V)5cGFE~VbA2ZIQLSbDJ(gis2t-dA09HSUHaw*6Z@6+HL@`lG}b
      z=|#NEyqPz<JNtLo?E$n=bKwx~R`OGR`^lF!3qK0w+<#WdI<?W8G-@<-Aqck@nStFz
      z)+m#XhJ?bSHadMG<QflSf*9DD@{q%I33(I<)j%8dy4_4v{2?cyBHRRaD#Njib*BGK
      zkuG&YxDPH~J8RS@c<*)_Pt}V)-F3EYWrsx_T!udhX39!1x~w`U4dk1@xcXtkfyd}E
      W16>I8P~@q^F%B`8nF$p}2h}594o4;c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZutO-sW-5Pg%zL}RsD6@+?F5K#{X&x$CD5C|Up=zZI+%}BbDWNZ9eo&*p60DqJ?
      zt3nU$W#+wM=DoN3_5JY);20YrJi_jidQq=&RkIn!&$)VxuXv<Q#f5oDZgo|R%f1fb
      z6WVSwR<)gMga`<oDTT=)Avk5j_KYyMpCkuef`3^Ibc6;Ln+P#aXr*lQ&3M$)<-O|V
      zTAb3Nukx-c+429OZ!@k4d+C(jjKC-2SM$JT1WF`Crg@lILUi~0o@;hCn==lNoH}+u
      z5>PbcqeQ{wl)4}+k$FRUc-Yx`NAxDpLsM!b9XLmT3oHrR{#(N`TEgT2D_9i~huVTX
      K!E3@itp5PVoLmk7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%Sr<=6g{b<)%t$bx9H9XIEc%ts1>17+*rGh<86(MlOdDw@ma0}7k+>rCElbW
      z7D2(q+;i_F=Onr3zP-P^0@%hv5e0$e8+j)m!t7op?J$jHD?Cv#Rj;+q$XwKl2m}^?
      z?5XP8R40_!i<&^+u1b{M7wB1AZwdreeMKeoU|<Nn=o1*NtAx(-+e<PHc^Q+yL|sQR
      zZc3wE{rNMn*D4cOssA{w>qZrUa+~a76j5pq<Jc|oXUPa0taXu3zY#0zT}v%yMV&|b
      z2X_=$dyusqt*Pi<VE^BOj?Z#a?y6~O^c@}L*6O4|4_097Pu(z<Y{<Da><jCRu+FiP
      zv2Hh%buBC#$|9Lmb7R<sV`V6^+B^y@{U*)!Oj45N#<h%USyN@oJF@u;%Qr4m+Bd4=
      zEH0hv+(cf3&2&;<1GDAa3s%9?z*7bkIpZndSmbJlQ84yyJfr`KlLAT{ON_uC0vuqF
      nv!Tu=#$mVt9Koo^F^qehz@*2iPn<^C*E5)9w!j?60_Hye2vN>>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;+fKqj5Iqak)>=d^f(nRuNw_2upE16ekTfA^Eb_i!!J1MGEu#LFFPiw^2l!FO
      z*#$KOW18Ka>72{V?#JibJAh*xst7UUZ}~lcsQMGf>sRkw-mBJ!UT|ez+Wv4n>e?z4
      zhKK-F`6Q4<70V2n1>P@*Vfn=IoZyrpU2I6M%Sqk}M&wd6%~G2|IU8QvI>J~rph9Da
      zHXP4xjt3ok)Z!i2W{5Y2UGBE|$PxMMrxM&aK0`t3{?mAkEIdAtG7Bv*EcwBs@L(q4
      zeCJ8vX1#vTSu3?ge`y1o*kVxocF>f9$zo}7Dgn(H$Rfv}5!9OMhl?dsl=234MM<bw
      z(vJ1S%yTzOJ?oad_PQgQOU%E;kpQCrMtU>>y<&(?x;)xfC~HBX575e$Z0;5MvqTuQ
      z>x2Z(344JEMdc|DYlu=t46GwYDk6#_A<-I=6bUC48#4!!ctR;wuDl>cYn#^2A6A?M
      XJJKpOCHz>$Xn;MEW7sF55DvZoaeaq_
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuv+fLL_6kTVSVTPgO;BXg_ix-%SQ&GHSjEMm+H3TAqH733s%Ar$I+DY3H<PUuD
      zOMEfW5H!(86aT|6@ZGr2nZkgO=CnO~?Y-9C>zrSIzkUZWhx=(H7$&y(TfVD@JC0}T
      zO_y)#hUI%Nja3o)t-um#BpLc-lJ0U!Sy|r_R+L6}96c<RRcT}x#!e9)C(AMnC^E;_
      z>mqQt>+JD$R}fpMwx$R|M>ep?z@9VY7JM&^xEGn+ZHZL1lKcJV!~121%!Y7<%_Ax;
      zEFIUBozxh*A2^;9J!BZ1Jq;I4hU9|3A+qSgkcI+=8M<bRW*Vam)17e*SBkig0=u;>
      zyy)?+C7KcSm%$jr=yJ<-Cua^DnVIBqS~ZIij7!=}NBV91>QO*O*NSEj7$!CJ;XFfr
      z$??Q;YkOS;Yi%<MOTNWjlaoPYP8>`|4JTxnIx)@}M@GZ<G`ZtN(g}u2dw!koMEZii
      z-Sj;gq^3wz>}kN84aW*=hEX(ok;1HotGGt?TXa~RyiP4aHbZ|0I-($CmzF{69fM{I
      z)x#@iBWfsr4at8?!wt;Q(Z=vI;n<BxB6l>*OC(!YckhWKFGl~#3t5$igDJAFi=GtH
      z=s|+)?uACN99``M&e0-g=|4%a0{ZDaK)W|ok)ZELX&-~-pU8c~$m_y|eO&xeDu2Pm
      zCsjQ~?;&CaR;d03GFT;!I)<@^X@w~cT*ejJ5u4JYk)>_1lAwCYkS~44M7c6Pm^{Et
      z3LSy0YGjjIwH4`nJN<|>k0MG$MieNcqO$Y2jw+2HV><oG;mFBYa-P02KPx2<aFgL9
      l?Gj`a(5;ZBQj#`NR;<LN;}nth{Ks(nG{fGR40n~zy?<AK=3f8+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWlO>4qH6r2~MX=7|u3O#s|BGeuX#giyrgo2RvP^<UVZrhbK3Hh-7Tb_g-`~m$@
      z;!CI~$g=Zx-p<Y&_HXyQ1@M5n0gZ6G6f5!L#NW#Qa6(VKJ7YgglP3{Q$1gGt(r6(K
      z=!EN2;Xz}dL};Ae<QB)LgwjCyDj5<AckLNL9|dpHL;+<B1}+G;t9<#Ke$8d{D(0Rf
      z)ZJhqyqSnp#{Zjo@~L7%%RL)*$Z{OoCzz8w`J>7VZ_Xv1%mz(xEZ#-_5aPvw7%!Q1
      ka}E^mH!#=S&|oo|T!9{R3{c^d#WEJ*3N}|ll~F@&4;Y74B>(^b
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWmO;5r=6r6>YY83?)zW|kZQ4cmI-ZWk?CRO4=g~Y^z3ofu`>5_I)<I(@&kMLyT
      zLGS)3<7?qyaGP{zXXnklzJC9Fd;-|RhJzGC<(@zACog)GLC5PW-uC<;5+<tq7b4Pw
      zuq7N=470J!<Bw)^?I6Q2pOA`EWmV}w@TMa51Vizk>0djSVIirM+Pf5?<Vrrrr3|?!
      zIW|NXNgdSvV+MB0kge(<GCVL1t_H$Bx4&A~FE_6YnL`;!bHw0m`Lwnh3|3X&2^VQB
      zOe2RpbzYN!I3M(yBD@-=%++*@s|KfJN*$4w>B@*<v-Yp`@p&9Dq>b)VYd*y((Kggb
      zQyZgu40b3xT_W7eWOgSq{;a~d#cmve3do5b8xAH3FJlVRv}ft}q%cE>CW1V@=ZLu_
      zolU#DQ!JGW);s3k5?vwYNDrKn%NZ64?GKe$BF}iaSivg!#HdIpR=X$>N++mH$fEl-
      II;F7w3qmq`cmMzZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWku}%U(5PfqjoE{*CSW>7JP<SyECP-{ZF1h4FgU~Oyz>>RNvK-29S(#Y)0eqBU
      z&R9Y7-n^NYnKy^u?;ik<xc1=@ZrAc%?!)beHp_66%0(EPTsb4t$jMAiVjqIgI&%$e
      zwy{Q;d=e8X18sEvLMXL6Q-T=UHx;0S%Nok45E_X#YP8E{%Du{2stC=*&Sg54P8a&W
      zDe{%x67G|;YbTkW3BlOz++0Pv*miR=e<&7+J8&R=70grwVf0z`{xneTe&OPi8y*72
      YfEjp#Kp$1EYHVW@bDf!R#pt1N1pYrsi~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkJ!`^H6g@XSjZIS(Cn+x7w1Yu96m01t2tsi2V}H@7z7pS)7;FEQQ^CO>;E$5t
      zNH&*q?m74Say^{^bWwBR5E|d|NB#!8gEp&R8_Q)7%1Fi2p$kE1-evoCv$aN<bUGxI
      zKDE*57opH<&j_M#7s^8c4?c=05vrj!YP8=(Dw)VAR)l(J=Q5tjL}xlTMY`5I!gF}H
      zEx+Z1;EnA*nX7@$ruezv$r{89_yB$h%#<x=bXmRKG*Eo~L;1*t1CP;T2Hqji!y`vN
      PmvIsE6EmU0=%D%!n(05B
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`$O-n*S6g^j;T2IZgFM>90LJN9Ct58}b1TP*DW$s6vY+{@d9n-(nDrnIU=to6&
      zv_)lY?z#8QIrnScKVIJe9Ahho6k+>OJc(&EnkdtY23p)li5j`PIER3+yYSes{ed;o
      zFoTe-E2G>QAzi7q2tmVkWr#GE3&<c#C?(3st8u?AhfUGel2A@;N9dLqDj$C(1NWdt
      zgq>ue+kBK7SJJF=%9^H)O;=6{`;{N`OHZxMQjwUr=-MjdYE>Sxq`aVMeP>_cA8B0u
      zEhZFu(lw;k=XPwmJmKMAJ>&1n8`*Kf^t9xe!&^HZcI1Wfi|6O79QhT4J@Co+4}gF@
      zJ{8*>M<<NLm^paC(la|Lglt1b;FQUA<k>6CNsL9VKv+R(hO1bcVHxYpB5bftVe=E5
      C&U>=}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkJ!=9%5Pfs5o?bMHrP$c1MGi?3Fk+z~2xpq8{i>T}!?`Qxoyp&_5-j`y{-}^S
      z5gVKL=FQieIsY9`06M6+a0s<;xs$*C_D7pfe-p|Nf1*q>kkM@HLJ;bA^`TvFtWhSO
      zjS0D)HahMTGR@YUAcl6OJY-NPB8wcM9B8B7lJ!DGQ@IEgp&Hnw4CgY^slFyf{H3>S
      z7Tmeru6ZSR?>32+YNXRWkGINGIwTt4Bls~eQ)<rWvU<K~Alp75zvqMlkI`cWULerL
      S14l(}<0j@3Gp}cKQ2qxF8$tj8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkO;5r=5Pj1wR4Z7*%@7XU)B}y-KqABgCMHcP7e4L_uCk_VN!bE_i<1cle}F&A
      zI3*?=xV$%S=FQj7@8KK318N=|LgQ0z<StxqwfP8FiF^-VmB}NkmXpYXAl#f82D!DV
      znM8zgUmI<o2=49OlpvndH|4{{Wd$Xa2|=ul8s^KH%Eoe*C_+6>=Q5efOc(k;DeOY8
      z3C;Ly)#;WV!5^i0HdimY7!;gJ?V?Szz-RDdV5VX{qsOXq)IjO}3m1D%IPe*LW}pj!
      TM_h4KVH=y6tIULJMhC$k6P`jh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<5PeS52120}7#NBWTVWuAwTLAWQcwg)kPd8aFks}^QQ`o<#e~Gb2k=pd
      zGaw48#PXicckk}qy}iG@0@%Y^0FPngj^FdgsD6<8CMp%bj!sJ}jXvXAWJv&@VK7q?
      zo1!#YXqzProdc<*J!EJNx5o^AY_3Fz7UsKXqr=ckr4}bmF%i`TpD4kwlA4^WF|VYH
      zzdwC@D{F?$bY|LbLnBhxLW$faG*r4Ss-c#H;UC@cR5Nm>)^npRm%5Id+M43WKMnj(
      zdC3r-o2JUek#xrU)3#Z%>x}wapvCE)AY^V~!hoWPm=U*ko-y}C4-X-sO9T5@Anbk>
      V5HG^rc?rEwUPhm?v?!s6)el7|Yv%v}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%WA?v6g@YNrj7A|t0Hc?Qx}F(5Jc%l5QHFws{2vLIud6j#@63*Rp_E0;71j2
      zBs(|f+;i^x^8fn>;009|4&iAlzvL-6d~5R=>?64j-lb8|Z0tf18h6>D-R-SWCYg;1
      zg@HCYc_ZYStvNvq?Mivb;n7DP1wtj%Moo^pg^H(g5h+3~v`ZPyWvo-3nIhTf1EC(?
      zZOd-y6TA<5jF)Pp(<y%DchUy&3_gHg0yCwH8C_PdHx1<5KX^E^;lN|`n1L<?dMI+_
      Pa~T&gmzW7<MhBHExU)aX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5Pj1+aWKaH08C5MLZO9xKrO@xg)gb1l2M9~+Vs$yn{HD>Y8%^0+yBG?
      zE(LMm2k@g1v+H1|Qq;rF%<j&-ee-ty{QdPCz%w{HrU=zf-q1U9l2bqEIZ@v`az2L9
      zAleqepyTS$CS`1fCs7!PAnmw>@=HJP)7OOQT78e8ZH9-!z%;IzD4|T4Y5RfrFgQ67
      z@ve8!7liqC*!B8*UhK>L=uk_K{e-a6zKTzaVEKt6xEuSuo`|`krb-;|G<C#~Njcl$
      zAQA6m*sAXvn8QsS^Mpl-JTc9Lg<GnDeL_ir5SFfhB~*GMRXhkzM&Q4O?{ocHu3Nv<
      zj=E_XxQnWeCBnjZuj+Ek>!x9RZekfLggJg>=h%zIp&KNr7j#*?YHb4MsEncS<AIJ<
      zf;|phP%`llYXpOV-C!7gmIB%%L?uoBwTk8=6L;{K@McWoBBKzfIGfxus~X9v;+8K7
      zQV`>xr88bUP;|}&cfvv36<fZXm)Ts=j=LfI(pJI0#X}6XjEyo|op;aK6Z=x*2P)q=
      zn1aF9U=O^4hPSxRk(nj2zrj16Da^2y0590f+*0!bvtK#L03<%pQN?zaFe>I$+=k8f
      z#8NG=l`uzqs<F3zVv&*VHLJ@PSpSye*?bQ~%>E1K$EYA-l99r1WR*F-g&OMWeG3gV
      Q)$10Xa3p(wsxUYH0c7vvkpKVy
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkO=|)%6r8t4S65q0&r<YedvGZ|6l&?ALP1zW@Z%me)ySGicGdo^o&*p50sg4c
      zx6+GvnRzpBl1z@jhaUisxbfi;?v`>Zzrtjv%{*Mk@-yr^J9jEc-lZFLeF#GBBGa*}
      zwKdA5qb{NFs*O(H2)X9{m>@cKrUK+psvwU7p&DtUdYjcmxuKlIif|j*sf@?c=}iBd
      zB3<Z&P>(KNJ8RS?1OvNqQ}v-wcb#op*<sNDm*G!>nX(d$KC7pb2J#Pk6u;T<5HJSJ
      Xz%vA1Q0A$^F%B_bF%zyCJyibycPB?o
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkJ!=9%5Pfs5o}R{&v@wNUwD1riAW9k`ARHmYXus;JE9b79XY_Ab2`T&m`B9R&
      z5U{X$Z{EzCub<2J89)ma7Y^ZJCBNh$*zUDi1e-|CgAZ$ycWKmU;6f0pH-^4lZ>&)!
      z84U=zo;EspA!MHFV}j`0nevc9p@b}Q1V7Y9z3tW$6@SV}qzLz+oyuq|W1Z^%q)3)}
      zOLz=#wq4KZ61<_^#Z&dF(?R~V)J)q%4SWXw24+gvGrFwWe;UX(PRJiQ;lN|`n1N>q
      TbWr4|#5OiD-!T))j1K%?eMLii
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ+J!=9%6r6XiUUF)b)FRj=7CAy7AdwUi1mUppqhBv;va;^VddB=MD<MUGfImv|
      zPEw=@HZyOAd5?LA<JUKUd(=Y&gvLUC$j^Aa)%Go3899$fsdvV_NIw~b5dS55Zn<(+
      z*=#Z(l)BpL?3qxwxt$V3&%LS$1zc88M2S#Kv{l2+a;E%P&Ws{lCoYv{D!tD2uPL&3
      zy(To1bA6r&(a3Fls`@&=RR7cUE?*Qaa1nkF%#;^k3|T##G*E2saj|0~K*Sg^1CJ2s
      Tpv+T+V;o|xG83*C1Jr&1uF*u2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk!A`<J6r5MKR7(}~j4|GXgN^ZEqQ(n}Nt1?<Al#R_!jkPSDMkG)P9`4w06&WO
      zN;r^knRzpBc6at~^YaVf7Oemt;bJa7<X61>)OH##jC_xWS>cQsNUKIk06}OUM0ze?
      zIIC<qN(l8QZFTufs9kr)1krPEDnt#(5q#7M%~V^}U*!{3yvm7Dg!9y8(u`%HE4?#C
      zInztRWqR=1exXM~ICQHbQ!l!@>TG{`Qympo;41t>FjG~5F<^DK)qvmq#?hJ$4<Td7
      X4BSKD0S%raj&X?jgqd*4=%M)!2=+zf
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ+J!=9%6r6Xio?c9p)FRkv3XhN?kcf>C5RNo{^sBCM!?}B`=f~f&5-j`y{wT@2
      zkitUJ%)A-qJ?5P+#}j~ORDF1a+PB=uUAWq6^A#qsoQDIINGDV4MtvXRR-$K@i8ack
      zqduX~(MG3TLax~w6GYF>RDc{xW#myHR3dHE=XyC&ZYU?QB0NTRD&w(qI@5oqNEdoV
      zs7L?xc_#z|yLMCcp|eZXtFG;AQ8d6s_&qRFR)EoG_42EM{L=x&JsTbZ#()`kg}@u`
      Rcq(&@L(KQgga<|sl^+DoMH>JB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkyJ`YK6g_tx-MH})?1E|RG=+;;2r4#0Kv-;y_M?tEvd+l5K7K2eV37~VM+NVS
      zRyOC{bME`^|MCl<fj1Wp;e9O+^5pN1+ARHTC>Q=H)N>V$2QCER<0;*@o2@m<#Nz=W
      z)73`DJwmEln-E0b&XtE0vN@!YAru2`)NsF<s_0uzLq#YBb|%A#jC7*!rifR1M<@qR
      z+aAYs2;Ru<qnY~B$(Z~jQBPV#1$+X31!hWCGrFvrHw~me&v^M^!-2=>F#|0KwDHPO
      Qj?1`+InPWeFghq+0SjY6C;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkyKcfj5S%p!216jCL^O1eB36_lQb06Fk&rAJ9{m9aIb`lEV;;Xng+##z@KF)#
      z2+`2Y?CfiHuYczYfDgR7a0s=P+{uH#*=w`(qfjpVVWf>w@wo3o5b96$o?S=QD3gr)
      zgj`1(opcGAW@|zaJv&z(GANXgMUGGjv{8fYdaB})oQ8@}4eU&Y6B+AN-;*Nw)f+Yo
      zp4=YSv<cqOZsVEy(dnM@qw<~(i3a!xehkc%nlrkrKL0h4eLEq4<b(r{(PIX_An=VM
      RM<s6KCgvArUeD;DaszVkLZ1Kt
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqO;5r=5Qg7{0$NcJML~^;H}pVbJYu+DG#E4_eB2kh&^2XCw&f%KD^DgK`~m(b
      z<FpbIBXF5#w!3d;=AC|he|!SC#z_h>hO-ww<#WrQNj0>_E+1H}u`7cnSE5r-!C3X8
      z=8eXl5-RA_8IreB$)L&*FI{#SjGAW)6LD;(kwB6m(~wF$PewhV+q~xrhFrtzbGOU2
      z49|;?M&L-F;k>b_p9(`>3tt3nuc^gAXf5oPd=(@-E&WkGE~lu3UFAq~C#TXDIxHSY
      zPtjm&CG|)%T%p-ehP)_}<caJUO-BE!MR$C@@~$u-k?#n*$)yTt6E#P=wieW6d2N%?
      zycVAY)`R9_NA~?_RI}wxbYI-d(CX~chEBa4I%`~jHbwgfQk2n#D5mIiLuACn)jPJ{
      wD2c(OXcB=63{<g0S^D=8aTnpwv4>2=EcPSja1ilu!Tf?pI3_hifnp5BAG8;#)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5Pb`UYDM|*<K#!Yfd{JbSi`|4BsIhs6z*HP;+nEc%2xbao=iOW1N>3O
      zX)!@V^fGT|^7g%%*^ke+cK~PDvr%9;c;rv~*`3X$8oSe&-@A7_3`KOql^6szEQb9R
      zimxYAt%NdzfT4ULl{6iOVzV`5uzVc}2Suz`P(qoZ+LKCLr;|`5BpnNeMo*7;JmiVY
      z>hGpy9^{PSsJG(wb0CkQW_Z}uiLZ4MNyQBb9yWiyx>~;Qf}lk+R>s0m^HQfOB9qg9
      z_^n*Z<#Xfq#mI0qjs>}HEfo5x@=3(dRsPn<9GzR8CL__6*~0bZK!c#2EodEs4o3d~
      zSd`JBDB4t=6Eecm$t%`gC@H|9=nw)PkvrI+tg;{xZju6xhiZ;B)N^cLn^+7x6bsn>
      E0w6_vumAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkO;5r=5Pee?s<l|+nHasP2OHyoM2!~`Vv~jo!hL~3*OXmSiukuYnRws_@S_Y<
      z;)V3`-h8~7d9(fd-2k{l%ZEoe|InZMD_*XReTx^Fp2e?vobe0mDd)q)ha$8qny#BK
      zoMl@K6GG$3SW`R`YFF1Ig6g^{2dLpVL>&!6lp4$Z)qKqPemCJPbrYS9bZ*L9|3y{2
      zn<e2Qtz0{B^hgK>Zk12CXEK&u2i@CpSY1NQ$deGJ(uANd+5J8T>Nh_)`j&!+Krj#n
      VI#77PiA15uL?ql4CY%a-h;{^{Mxg)z
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkyKcfj5S%p!PK<ddRfK5L0Y$8c0trwWq)3*mGy(d99LXVbhm3jr78OzoJ|G{3
      zSR;2dGrO~o+5Nx#odLX|?!qBFFXc`ig3Vr=pI{x!MKG4LSWQ9~g3!FHj_hh}jWX#Z
      zB$S5Q==7aXXtk#VF|yyvLjjLIiYO6kkv8gcyPB!www3S{*}06TGSQh!E{gP5ZwQU(
      z&Mm)XK=8ioHkqpr9V>#L>#x~>cmW^4FM*jdV@8*=?kxw3of968EI9BOJ!YT>fj-I{
      Q`P{}$%oS!rmC-@%3aTbQv;Y7A
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMO>Yx15PeR!4J4s0r4RxIT4*8RzzV?u5yVGJDlH9Fm2M&=PHy4`qs=<nb(;Jv
      zI3aQ12k@g1V{aQE5!%4Tv-Ui{dE=d#??1kN1Mm>#EHVtmkNkv>+;}L%uG<gzvFnSG
      zZhBcb3~N))9o6frP=thFSa>Ewsh=~<l`Aa<XGe8J4s$qPz&sWhmg+JT`-9$*h<tt&
      z2!@rqYV)AQBWd=hhmQUrV}??FDq13?%8>67b>OR(6hnq5<v*aB1iNnxcC4=IRV>8i
      zL+v(1Tl26R2qMbWMs3m8QiX9AD-2t|$FxM-ykkTf$QaA;ZibN4q7GCn4bkSd<Z<;c
      zlJX~%l&{{J3>hA$2l|!Sfs&!FR_IqW|NYwgRK3Jo>I%J2FWZvwfCp#!>_)1`&`po&
      zrN!`OQjzcQ9`A|<{Y5IGyEDY~OhF#c0!&kw<~M-~^h&jk)GFGOn&Cxy+@u!H`py>K
      zn84IK5jK>fXE*i!^uPGbU7}hfDqpF<mwnSB47GGNo3rhm(+W!t0(yV<P)9T>h&ZF$
      z3>(wWGtr4O9Rfwj<w;U%#zQrT+G1Cl(U3Rln%)D`kj@6^8ciu6PhT`lXwA~@5m`od
      z{{9!7`%E7h<Y>*21zy3yYq|gw5)j!7Fmr4XOLVeK9*68jdva;wWEGb!b`@8wE#m3~
      zqJ(SKQ^Iv?*Kotyo47^H4C^qmjm(#1jr<JzWLB%uqySd5`qmR~qR%33<BstYb`x8)
      JQkC1?y`PhqpGE)x
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkyKcfj5S%p!CWgd_64B5l6j+ENQW8;sgk;I0;n5%D2#3raGA8g_RFP8T1NbPE
      zH9|BrGdug5-P8H^4?r6g7Y?DelHc+WZ1>uH1)Eqdg0Z!6PbQPlg&@@L>V3Q3Sfflj
      z2?>P{ZFJft<ep!q1ktyj%0mthW#myH_>nehxLeOuGM2Mg5vq}$%Xlgio#|^*q)WYJ
      zv*^z4cFjA%8`)hlR|B2xdAe0v*^p>}kKo6^Oqn^O%c^tHK)(5d;*k>$JVuWhc!j_l
      SN*tBBjhmPsnRz{<1OFc%!9p7V
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkJ!=9%5Pfs5UOY95Ww1#XEj+{`V8licgu}+uel?r8a_%1InfSL-2^RhUf0Q^E
      z#Kz{mdGqyV&X?l}KnFD!4&h}jf8^fZ{%Z5>$C3Q<Lu;c@$Fs2uL1;YGhjtTNqf9y*
      z6AFE8bUGm9-kNiQ7}`(eA%|iac@zlMKpQpLZ5ApC<swpqdSI6_n#)9I`j!;wN^jXL
      zcyPO4^Fi>Yc9$&GNN0PV@0E5oBwoQs@MB=6%$(6>)&18%zIDLUA154mj2<)a4uKv@
      R9F@6^o0u!iyq?iP^$JZbLSp~`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8W86g>kg2#8v=P+D50zK9QQ(MKAR7A2t}O+(cO-^OJM)2uUOcPRcXpG<u4
      z2lPiZy*o=yiK|WeGH340x#xb&ou9vM?*KHhlSPW5@}2+SS8h0yYUECQ{>?oJggEVG
      z;V{%5Tz2&3L@S}pX^$cEUMgwY4C&p*8H3Z&Ly<=sxfLuS!?4zuN_?JPUWnj?U-*Kd
      z)Yl&O&v+msdw%Gcu?!ii{Rh$FR9XzhkuYDl8GqDMH6-rQ?gIH!L~Jb_89K40L~gBy
      zy>t1@xC7xCu13E2OSY?nfu1omlVp3b^Pe6q3dgCDGf6~|9?^IzHELvm$|H>qRc9E=
      zNm(?ARwY`;*P#e)Gbm)#P9wEqI7o8p{Ui6B43CG>(9=H_^_-Fmjh@`oiXK;<@bB&9
      zWN8{oq2Ym<^FG*w|D!o1v`SUaW#SIMODgs0N6LTI)4&s584Y0}9;^Lm+?+aSeCa;`
      z1=`Wr(wZgfkdP5B?cHGcnl>rqY0VP?EjVbC1F#a42#bh*%qrF_uH%`-5;iPu;<?2#
      eDi&X$YVqY9U!i90*LY)b3)`g5P^UG8x4!{p{sZ6u
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0c6J6PMh5Au#InQ+{o?Y>ymbA7oWwN!P|u*$;{4L0<WzPB7DfgE
      zkOKXjM4+^PQdVkm2_pknFj(3xGbfdifghn>52Tchk%5tc8E69tFfy<LNhSt102X^4
      A<^TWy
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkyKcfj5S%p!2J<kY1&VZmB36_J36us23CT*6#Qi}IIArcDV<5kk3W*{gkdH#F
      zBP0r%nVsF)*WdZ{3*Z?|7Y?DlmV5afY!BKjgCv%VAkylP*fjf`x)6lUondS@i8acw
      zgHRf2qqA2+;jtGH#Mpi*4+T_eD56C0Lv7UCZZlKqhn&TV&<gEb#*s{QuCGavt@M`A
      z4ez$y&KVNCce_jHYNGQ&{;l+sw}}Vv8T=cVDPPa%vU>T~K(T*B`G*q@JVuWh7(if%
      RDn~W8v5C3POlUAV@Gs~mL?-|M
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FZBr9h6n^ezvrEF(h>D8TR+J(M!6+?NfvO}Z2JxjJX{A=(Y!<Sz?9$!Ep#Owl
      z(681Z*q513`-RT*W54us-+x1=t@hlz30bw%88UNo&$;KGm*?E)-u?dBmtO-og*6ot
      z!^!*l1AQ&$*DPl-w_@uHxw7tCMlR3)^R8DhJ-;`<8U(HrYAR%go~Tz@?8=Ro{lL?W
      zpt((9*vGf!EH^i6dX{cmkMy!_s%T^Ajs_5E=ZZ6?@2+}=$*|iO`%9GDa-F&21OuC5
      zc&*?%exN%+Nw-(c_&-0i&0Uex>kNut)hlj|9H&J_y%yvOuI+lG49SY_EzLIUiK?|&
      zwP^$lyTp9CwV;eyjuo6^DD=M^W~X|(#2^>kikU<V2Q=)(L55g=x|F~nysn~~(!W@#
      zhQmma)1s$8On~7{4ZD!y+j}$|<)(Pq){P}@>(#J3wDoB?&TR>SWwPO$*3c2!2Q*}b
      zZ>?$tCigv|VGmzPO<Rt6ZFRY9dN=v0FzlIj4c#v3bW)@@7UiI7`3ys%0Xv}yb-sN?
      zx10tYDDewTU0!h=(+NgfjiusOs+Qr87U`ERsd$&+P?ROx{1RkLVi;#MoW%%3+oBm<
      zrDog2tN!#0rH0HE#?f|+;hc*17!E|^Mz&};j|<dI%fI27zHe5<q0Mv0yoLg|sg^(P
      zEt?e;7a8_O<4lEtl9<4xhRb|&%JL`71%1^HnzkuStGL3Dj(Wa)?V7Ea3oP5$a2406
      zri!Q6^5!EB@^++^&Ap;+^Yg8KhWy{D&WXzmy17xu=3$X(kwCXh+sVnYMx#jMAu+XP
      zRe~yA%c>b(HKn{99#5C>ZSpA6d7?{-PBDBtijHpv#Jb}VoCUX8MR>qDe#gU&qe<fR
      z#~S8whvCeB`m{=JxV#!f#XYKlA4?>35_eJN*OywN_J_<&(3+`X0XK;qfxE)>ss@Ye
      zagPJ$D@z(|z9QS^f>>}gxO_n=yY!eYlVCMqcDzy@y;`&4DZFIyo7oY4j8E_q8MLC~
      zm|nrwiKf1a2Movlk5XY{si#`l^iW3+buI=8ai}y7A_3mZcKSX@&>-_Ch-8^RH)5t|
      zMa=Ysh?&@cedN(eT3y5e3Yn+apBdPKI`Ao!C+Mo<jZBu*tWb~CaV#@P>Yz~Hs-r*C
      zC2ygvOBM^6ItD+Za1wI#-$x~Z{Yc-OpRkwxjHB!qoMOM?H2V!>?01|eInVyUN!t4k
      zL7?>XX&a)MOT2t0Bo06l5{D2I5(goZ{cZ9LAv`DOZDcdph&u2shS#ADe1qXloE}lL
      zhdbrYc&E~(ZlSwN{Q^YUb#!oPoJ%T|FUQDhf>z0EViT8|tC<aI!3N>pAg~)4{2av=
      z#3AZ5*q?~8zmQ~q6U^u6rdp5C*Eu6eI4i|)L6UJ@isLSOhO(pxxHDm?+i(qB#|;73
      z!26gHa1G4jrhsc;jwG3bLy08bDgz&oq>%j{KEy5J0HaIvQKK27f*F9C8DN{Z{g@oW
      zGf{XFsYevCU!+mDi%=Uy@IZGOfdY|&&NBNQQeWZjt+=8nPoY1~#_OnLvsq=njzt>x
      z>sZdV^6ckDN_ogq0lTG(=#(y@SDF-gj|fnG+j;x8!S`VWpHNj2JW;WafM!l>hE>#%
      F_!rJ^AMpSH
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+fy4=82_DRlO=H}6bc1Nt<Wmu0uimWN-dVOKrlcXAOc$LCRvhgmtAIeF?7bi
      z!3UqLm*+lOI;3@U#?cp?@zE#WbR5UqjQ>K%@0<-uD*8Y&XV3SY@AmsH=Y0S8%dY{9
      zp`<`!NZ!)k({_?>#jr}rEmPY_<~7$SB&Yay%65vn<DQ*1bhGF)3S@?XW~01NN?y*p
      zo}(4K1GOMSf3uqKy^_xAuD$IPbcPOBcMQ$UQ2@iXR?=4(*c?M!%C=ljv%H*UZtH=z
      z#Ny-+*B`&n5Om90(XNnThWkxw6)%~xP1~7Z2p2Wy_EJqADjTJ;Ny}q6CidCJLGYqs
      z8Qvv^)bPLE9F>pe803^))Wc{&w~FKFVQ3kS=0fPj(+c`1{F6vk^rMZ8N{)6X1cp;8
      zRJ3vR(<+|jqCno%3b(mzP{lD{c2>o6Tow|!%+zd$RJ8l@sEU}dt&|N<=e7wI9sHy{
      zV_5pa_GVspmbJV|Meoem1**A5l_$P-D0^kYWf&6$IKnJY;h);l46D|2hS4W#y18Xr
      zy5&tY>PpzR%0|JRNYgKx3*#Kd6}-$4Jv1pzQ+Qyt;u)r^;yf-;VT+Ddx#|_ldNHdP
      zsL|_9p$`m1m_~GeSdPl`F0%r|iDtut)JRlf=xT`Sp-HksD^2STwY6dty)w;kS@-9%
      zy`<NwmbP5oqv{VeC6KZY0z@0GeZ`3|_4lfZDNHk5_)nWdCWoCUn5F5c52x=sj2X=F
      zF@A$V8TMNgqO*Aw3!obla5#2;a!ti`eiF>vo@a0Jqa_u~{75$S4WW}$@g_fL@$4-H
      zYYeBGd+g~uUUF`kzV%$gSjAf^-o_0Ybt=!i=9CPJsylobKZQ1Gbvu42T@r5AY{N_9
      zv6(jb>>qD_(?&TO1~qM2x|1?B*VSDGq;;kl=Knm1H1|zUA_k}>Ewlpk?}dU^qC@n?
      zN(e*dH=Jmh-)6DXtra`nP_Yv*bdp6Eal2#_pgk3PgcGs&K9u-91RvmJ6_Hqi*o0u8
      zsbU~DLhOiO&s6bztWVxYYo9C*hO3D0k{byl^c^HXkUoGceS|LQE(WEKF(!S2^U|l7
      zq<u>I45OrX&JT?wULcM@2<S{u9K0kb4!=cEJOP=2kKx4{{0}K@g=CS$scyMD&>f8J
      z5$-(#yGIE35dQ)%HE{Ltc+%%+mF}ZM+C?wX{n7)0W!Cpo#}dISc$K1%Z%p8#z!Jf0
      zxFoPdFiDgwq^}djOBlgrqJm^IMVa{Jogi(Vg%XRihq!W|NWVl}4br{{-Q%m&Lo2n=
      z+|hK+(U0Vqhcgr3q4O)utOe-z2<iEIIGLbdV7-bAtwmbdDpum(V)ZU2<KJNQA=VcX
      zYkOE3p>>mFoXHZCB__+6MPe3-S>#NHm<%zQL<4P%<_gkJ)X<-)p}$~A`W2(nZy1+;
      zM@sqw*Q7sjL;4H1q`yT*F&}F^BePyi6Yt<%%6FWaf0HO)9!*pwj{@!dv0*4;1EGHa
      D=|%38
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|TTc@~7(LS|EL~P^B69J97O{oma!~|9kQRXg;tiVU+qRClrtCJmTOm9d!k^#|
      z$g3t&q9#V4OnlZ?e~R&&-9nq7ag&|Pne(0bZu9;3$Ik$Uu%IBsF!<7VWo+s0rfIF~
      zg}m`x&l;|o)01*c+RiiKxIOm_XWg`doq{mKrE06J&(deIuICsz?}%2*&?;%VY3q-L
      zV;XsL+sNjHf;xt-Y61V+we%z5+C?WP7@Az4pP{==+geM{GO$I4Qz_eWJ;U-cM!qO&
      ze*SvRetdZHhM{)Sv`lY`fyd$*hH%P$CRA{=XlOtqL*ue(iIw6;RyeED1%{SoJ7?rG
      z2DwH1G8pz=m@dQc@(JhulamR$VqKIYPg}0=NakwH*U^nlPfyt!1=|vqHxaLZ0dYb>
      zCz<=1lGFfI(SdW)`|}J+EKOfLqk`e0hO_8q82hXE3GI`&Q6_U#m<qGvnt~pN&g$5Y
      zOIq|i+forluZF9LF+?cbpeq<o$4*|OppT)gT5IuvT__gr39G0gj$Q==<^DKozQtAB
      z&L<5=MM54AQn1zbp4jsA#Z?-QJyxNkH$s^j(Qq9%7-}4I{e?#%rX_k)!<a;Cvo^WE
      zA)#9uCL|Qji|3vMZfls50Qc+yG0k%Ank)G!SBVZc{8zxBKK9#m&XkSRT>Vh4NrxG<
      zv}Fk=l{Z{hxC-VNqScZ7<CT$J^*h5QDmO<6HBe~PjtFD})YIDyL8B8Udz;24LPlt2
      zG}rVUqWPUqIZdNVRB#Pp-iTJ(YXJ#o&_+8(t<+AV6u65z$whNt|0i@j;q)D%tAq=0
      z2@FAs)k<T2!53-^$YmiiBX2L$xs>b<Bv~C<gvoA~t@M9IbPo;vUl1+f%E~@Q35f?t
      zyo7#2dI(7bNTP&mgtQQ%@1dTo^b&?v2EL&)K_7p5fMNPa=^sD9<UXQ_f%llCrJM;G
      zm-8qw<UCC5L?w!(442<Vh$j)@DYWugbn(0B<#QO|^BCg`nC5BB^Cc|tWn}q%yyOqy
      y@Q2vukFdkn{0#I3u^ne%x10fr7t^>y`3YeMGqjR5O!`?&VU}iDMMepqN8}G-5>9vk
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-E$LF6#w1c&2AI7O+QGXXep&NwCUPdsfaD|(G)Nk5K9{ceds1xl6BJE&hFO2
      zE8~mK$b<9`@U2fc6lqXUeA5|U{Wo;ff57qFyZHoX9Fw{Cp6~NJ=bpR2{QdYTfLVN`
      zp^IVmWAhX9X4>DfopO4kYTif}Oy4f17sbBldL_&ACoWme=A!9^tOkW)tlh03&C+KJ
      ze&CtKpkbymyx49gqpxO{E#KYriWWnkZ+W&^%~J~7byl-W4D2F9PsVlpz;uGVS>3cE
      zUmY6Wx$+&m!=U;Vv*d1(V@||Pn_EFT<5pd7fgxJ4%atmvfb34%jvbt07@vIB@L7H;
      z&!A-7k`)8TppH29G4RQ$d=x`CpkY5lZ)YwY!{{NWvS;3kf=bk(qeqyJ=r|-)k*$gy
      zSVDJLN3W2?bGBn$-drzO-ileMQt1OZw@8(nR6p@`p%PSVpW&DU`M>Uj8t}q~X*>1a
      zGt6{UzP{l)mJ=+rs=wfw8x_0gFJ$RAm5*T(DGgH${mp6{COW2JFm#u#KsKAePfoQW
      zg%=<K%;-qtRkHM(mV+HI#7%{{Uej?5b7Wfb%q`Iz25mBgLNicg*w>z*0iRT5hQXGq
      z0g=jQH)&;Q-4YjImx2n-LB$FOqT8*O>e%B{MmV5Zhj3E6k9J^e<Z7!hG+c<$g)Zti
      zjSRzyfAwhrtGhfOM8i26hh~pMyBL;mLCoG<l&GwZi<qY=4BQRD=X6{We8dyQ2+6xT
      zt_X=zwQfkkvW}}lpcdR9aMy{j>&5jyhlwF}RldLTwiv|z_J=+rfHCM<$FaOj)%1PK
      z*KnO4l2H7|MAF0U_)cJq8pdfwXg>fA-9$&})6<0*EqXMPrUyc&Lb^EmXzwR(o%Ec}
      z@zf&>q^5s@HoXJ&0TO#Sm@<epB>U1HMt5b9G1><x2>54E_?H;ucX5Po;|R$QhoLZz
      z3F0WIOwA-El6O(kmyrxpvola7$ZeyBqw`uqNvLa)(s9K|J;cEpUNJ@z%19zYvV>B@
      ztYDQjxrJP)5uyeq<m5amot3rFKC-4#0A;P=q!1@u#3`ja=$-F2hBfjU?*1_(b_rt~
      zx9KmMC~BUk?+f@nsQhch`7ZYJ2T1a7FvlMv$7@*Ok6`m}ahpHEr~G?-&VRrcbl&Ap
      zWp9@0Qh@DdZ?^F|j#CyPdjlsZi=f`5JmNaGu|O1cnW&RQMI`kWQ7ZlK;1qRJBk$8V
      z6LypAxs0KurdbVV?~_9aTop<9uM)&iXwn3s)j^0rnR=jr5(o%M<7dR5VCfp?5vuL{
      zeZw&L^*y{z>zzGZHX?g?&uHZt5+M0+G!(z1kN<&D{wF5*Uu}btZ01cii%((&tAwfx
      Td5QRad_br805Dv`hlu_IF?XCE
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+jA3D82_E-B%7p5FZ2Q_pdh7f+R~sx!4?W_pfnJ$^b%-9VUs;=7Ph-_cWcnm
      z7hh!P_{faK(J@cF;wa!{#?cp@@sD!+&TiVKtvWU{C+9og<$T}yeV6_7ub+Ma@H!j?
      z4GgF5X&-10Qf|etmQrO?TTB%+*C?hY<o|^2=)!TkXEfcgCssVqwgQ#{&T!)YnATe{
      zw79}CG&4t+8n!i`xyZn-FziX&mg{Mjm($D@5$;TW^4-Mve3Bt@*02n3j3M2ZmEKZX
      z#Y?4a({@I8drsyUc-q!Q93eERh@+9AIcr$r`pR-aICEOT6byT_c98<qC`>xnnA|HF
      zF2iZx=dQsTrFXa`O}8rq!1k~i;=1PCpRLJbC1a^%(()LZ{C#SZ(OA|D%L_8VFti1d
      z<+5!F%d3OsvZIwtM$sM3&@Y)&aDbt!K4s$t*K@R@7o;eTE*w(v3SMQ1E(z}%L1i)=
      z=u2*Sb)f7EN2SRT6|dnay~1#3g(-@j&>2E~$$TS@p;ti<!@hc_b@nRyq@`lG<Ib|s
      zr9r=n0m+LQ?zAIZSLo8maTP<78!c(>q+MKbCG&(zHB8JVBj8O-Y=j;I!<#DF&@QP{
      zDmnt{w2IDvdP~JVw8t@ua|+HfB<sW5-T~_%&U=RGsu;t0%AxLPm8@M6j?gE>M-ruc
      zT`ty5eB8IEd$;FgP6j%zVghM`MS8Bey!~%3^ZDI6*{&~Jg%ugv>jmotMxrH#woTE-
      zdr9(uR)*Gx4B?8QdnGFUk_gH<Qt$@|!$IG6y^Xe3q3o5ya!`7SEqZl@LrRJn;7`8t
      zbXt^EAuF$$DmQ45jO7ZCnzpwNr?kEPilC_daS|v}F*Dp$F^5|WXa3P<^T{=notG$}
      zXqq=BRiGEg0&dHJ^Daf&7j$Eccz0CX1)&uw*fd#}C99yKC|M!TF3Yn}u_(`BM`9>B
      zB^8F`a8oSOjEESuXSVK$j(T#|UU7<I(vX9#wSJ-x$q*UTjAaQYZEDnMu7Wbd(f?|O
      z+UJ1o+VMfa5rQv7-xY@a2qQwfLZ=2q!HK3}OaCfy?vgZ2d%S;O@OXm1#GY?`y=KWH
      zeefQ{crRM$d@|5PEB4Y!%BijC9!XJKOKqa4t$ojN+19?d{YV7f*edyLB&{kNQP@Z{
      zG#m>J#|M5x*BV*|enr=al2BgY;7BwP{T=5defS9uB%(i}n_&%mB$Z@%0wwemoDavO
      z%HSHB<(^uD!ih~+cEr|jWbjZ2?+AB9`oG5;v`*3*rgi2Aj6B_xhC1Rq6)tRoP#^%o
      z#}MM@5#bjIjB%(ujW&J>2|kI#JcDEWDvt9kCTXAI*KmhVL+3YO@)>x179SJ+DWAt9
      zp2I4?iO=~hJmw4dig@4fybo?U0A>T+DlX!Z4{jBcxa@;l#S}6=xK&&sic2VQl_;6Q
      zDzZdHNd7gh;W{Nef-mtlrYY$$e1RL7p<Tse%n~L0YYy{4VrZs?d=E<h0DFPlGrFz;
      zvIb=3fZKkEoq@_mh)OL)dC{%fMP)w#pl9$8H2;i+g)seI;+<!M^b6;o<2_m$E&Vx`
      z1~>iem5<?{QBohGg+D?!U-f++_Mh9c;j?E0mLA;0eTt|7rXTGxEZXI>7;L<c*xv@l
      BJH!A0
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM-*XdH6#i~<lWlglrKOD!YPASzLPLWJ1yiWDK_FNVDa4^Kc9UJ3t()DtyCH=K
      zAAI#$XWD<DPcYLNr~Y^lbsQCOh9B~PM4j=+vwwo)xw}al7@bj*xqHt&-?`_W`+aBk
      z+dn_~6u>ihO+tj>(1LbRTgrJ2)1J>QTG|`AvgVnU+?04uIj(NF-tM!GWjPlOcdG9D
      zjvaa>aE5*VW_RZ<hF;HbP0cD%UemG97mqTqlMLMj$M$^9_Dh;oH)4ae`s?psd+!g1
      z_+isF{RxIbdRm;8(;9xR;8>13{$JOb5(6(dx*;Qq9u+bahAq>kZJe&x%7%MRD_aJ`
      z)@i3g1!`0#ty@m+S51#0ADsDr_!_6HcvVez8pOfFl{3h?=Ds=8!V^_<zG~6%8G3^G
      z#HK@8)J)qCMPL|xfR);!V;i>L!OU@2TdbNDZ@fsqOi9Kdh9o@7(6>QmJ4D4}c$}eY
      z-tYr{iHUUP;Yua!WZ2Ou`()YkU9IAWGRqjoE)~1+WSHp`(QPpdwlcMu3xfl2T*1@G
      zNJukm>&)8`qGAt5h$GW$cOpYHotYIo_o^5bV8ZmyxQ6E$y72B(sl&-Dnck#Z3w_V2
      z*xyPsV^~JTH}nJ;##HoUKv;)VY{P({D6e81hv^311{eJg5G~p-WOG8r3wV)2bysVM
      zUZO+OA=%W~6^4OM3flq^G|$k#3AII_HepLNiZm`U#2TjVSE+TXM%WJVaxG*u73}>x
      zJ{c5ION$N4GfUMumfjLIvh*xN<PtsP8K>@6jAN$g`o7LLepCp-pcZZ0a0`}3w0aWG
      zGwkYA=pQ~8bmg{8ov%K262(#a^e}8k3~`zzT1C)BgNlJdPnA4#gvMx=_l#usruc{G
      zUJK&32p`3QUqOOjMK7)Qhmq*RR$2+1w4^-3N|Hs<WIaNbI9V3@f)l<Ssqi#*lPc*Z
      ztjY3Hb{#wNiILASybN{ZGYqfeiM*7OzCw3O`WR0!tbnfxGt01y9%1D+okZyh`daV`
      zr06O*AL|-Q#^$&_CMS6^E(|4`>{_PVeSib2kZ3x%j_0#O1j}4c@^u^$3qCiLRJbly
      z?eK$P_<=B7Ny<qjfJJ7qgWy&4<kf5{K`|-yT4=1%RTprb{(^2n<1A4E{sp4^OQP~?
      z^zv_z;x~}y-yy?q;t0Qm34R9``1jEGT`cf>c$@!#clmuR^B-}A|AdeD&$!Ni!43W^
      zZu8%8m*)HY_du4*fsoA&S(=!{6jebqqkyA<EKR(GV}UG994Cth=n1lf_)QeaiW7bh
      zC-E}1$_2cGX`G^VN#G7nlaL8$xQtgQPNw_4g)?L+l>1fMAHiA7&@9ub4Chcn;xAtK
      BvtIxJ
      
      literal 0
      HcmV?d00001
      
      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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
      BYVH64
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7TW=dh6#m9t&pPXk(>U3rcANB)lw9n_G`$e)QcBVbE@@M8qYad1V{hzjon6<v
      zY0~}$B;I)77Zf2L8VNZF#O(zn_y_PGcmW~71LDlCy>?oPYHMfC%$all=FCt3eEAK4
      zlW=8(7_xWu2l{r#*)pwCrdrY0Gi$nI7BbUfoVII4qvi}RR4b-?L${2J<^z*<{Cyb`
      z!+s&3spup<w|3VkkXFu+XxF;tX~{H&A`A!H*`Cp*{Ji1Vo3(-=Lt*Ikw3>Ei!Kj&f
      z#eAf%RSX7x&a_PTJj1@xv1JBn#x5EP_MuBf6e>g4tZ5n7H#gRd+M+KJpS25mWmzXJ
      zq@l4Xxn<K~I5+!@8!sGtjv-prP0RJ8Vwf29v}N=yH#1{zRBg+!++1t#N=>hp&4QE5
      z({F4!f_{dcAg>c;vsA9o=PF3xpo}Dg*6!U>{+e#-C8MU|5C#|`CBvPuD|U@xxM8`i
      z2D!18VeeEfg2Pm+mOZDe7ws(t3`bQQ!w`c?8Uz0G;_>x1;c_)NpHpxgBQjoM==Mq{
      z($EZ9xID@bAAQCv1>;D|ND(uT3X-Sdgb?c_zozxVy;9BIw2BHcI4R?0hQ9Xnv^-HU
      ziBk+QlA5cTR0G{LZOcPUUO0J1#aX;U33P%4_UtJg<uo_8ERMdaA`2>Xq*&9p1hN?9
      zQNMh`jn`D1$Lo|;GBs<gQ#l${C*Ssl+C+npdPBvukm@F>c~S5{OmHu%xFon;#9g$j
      zdw5q=yeW8b;!WGGYi|T>23DX;(_ZwZO=6V@X)RW>Dij#orY}$5Lx%8{S#-;E#ma{8
      zilHNbB!$=#_u)k6d<0Q;>`JkLM5$P?D-5CSNg5uC!KpGF@Pz*ZGk%!<1<G4g54w{h
      zduq`Pq769y!JLfuNjw0JzpLOjRz)kI*kY#RYo4p>_cy6@)G}6N6dBU(z<Ijk1&D5R
      zIt2x+t0;j|(<2fu+G22MiISIU)Vdkqb2TpI>6Y9@MaDgf^M#yP%8Sdn!H|5)NDJ>2
      zs<PlU&da7~k=^Z$dqP;DtDUzjqc&5~9mjBFP|q0pKl6Uxs2F`gpnLj0j!@g!NB=Nn
      zbkJK8rZx3n8aruqie@Hu$9ECiAtHqRG%7SB{5z!ZpXjEwI4(rv=%Ja=3ynrn5LyIB
      z7j32EeP7@}R*nyfDKehg#gS}hqVq>cI|EvHRVtp1YLdnUp{DB?&UU2g7|SY&&N?PO
      zC9S|O-YE0~kLc@9CzLu)rw61}5{*hlO{!zcTdLkt6-%Mu+z*H(<i`j%1T<+t3z!!K
      zGZHX0;YZYCKgRv02~Cn#Nk%FPmEs85q(lB%n3#FSggDi7;PPG@q$w~F%f`})4vHfY
      z`_?CRD8eb0WJ!wA&-Wt?0$hR2qloeS(0DhJJdT6B7eib_n)hLn_hX7DvB(Fo!UtjU
      z!`S9W@Bu%HkN7cs!iVrVAI2^p!Pk5gKl3sC%E$2=PvI|~W-33yl6;aK;-}a#ewrPp
      zImOR-_5BbrQNu=k1(nBDQ3s;l!mL08QP*&tfF!6nq9l*HK~&hI-X@AeX2&s)1p-@)
      z4Pud~2sQb?u|!k{rtk-riBjkh>%coC5k;EJ+$2hc#`<v!D}*bCckv#L0-_g4E7^zo
      z6>i^>=(meIPlC*G;U&N1MbYP<YeqpD{U{i8tTnWyX%_ejNuNEX<3=0OLk%4v@!U2f
      zZ_+IM=uLf(!pDfEzC)o7qYm>4Yx&bBvcd0AC0D7EI=X3&^Fo_{y@7wd4gW&0JYQ^7
      NX%_E1!+khV{soX8N+tjR
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ES#Q%o5dOAt?8X>+b2qfKl%`D^&T^z&3DBk#c%W3G;sG~V5`$|;wo3}X0-ku`
      z8Sw-yR}o0Of_Opv0}%WU#H{TcP=u(Z@y^W7&U|z1e){?LJ%IhVte}Zu?3R8<UrM<Z
      z!z!lArhYRuue(M*l@b4p?G(7<_RrYGqRBIho@ZNuPJzU*?|;rVo?>Wqxnt<&EO|9-
      z>uT;S1Dj&ln6)j}(=BgSHy3&Iv+`sq|M1IW26^1D4DTdEc5qrmOX(Fam9<UVNv~H<
      z%rZz>yTDaMut|f84Gb;QhQ%)}F3fXhMxQr1L;JLyCxAM^Bso+{UdeD7j`}gzU#&DH
      z;+FJ+U7-s6iJL(!=+5mc;eM=S6iX(N$FRv?C+mt0W!<p6pal%0ztv=+Y+Ky&8tO9P
      z=;e};chfog60<Qd?9kAGPQi6+=nA-98a4-9uZAt?RMCe$3i=rm|7vj6`&G{{T@3@+
      z%MdF#dL_f}ag*VC1G=iMk7RD{&l0Rx7OiA?hR()=)%<Cz$k0*Wss*Q=C88YBU504I
      zD0n66Oo<28ZYlDxv^mS=9`$=~Lkd~D8X!@39T=uns^=k%?$lwLk-wf<b7ZX(1xIKe
      zYeOEmRxyTSVpfkcD1+5Lj$vHG35*c<d7CcfLX6B#X*exZ5zj6QIin#f<ftRk6Pj}x
      z&I^rX@|!eWvJs})wgw%|<Q03-$@BAuxD#!SufeE*$e`sci#u6UcU|r(xX94=uW1RN
      z61rb&9~1Oa{UY=zF>FN?GOY?pO=yNhJY7`!YoxhByHQ%zq2c7nHfa?bSA4q`p(A_9
      z_YspHpq1o9fhF3|PLkNC!6!e0qrn%}#L?jUkySDHezdLF7DjtSaRrWevb#&_igwA7
      z$k0n{C)!CAC+c~F-E{<UVJ$yJv;2%uEJKx7&@Mm6cG7jrFML#!fyWxEI0ljMQN=NY
      zVINf-NsRcY;us}P5*UyoPUIfPKH@};_TxZ^G)>kbA7yBmy~e?1Vw)g}BFrFv^h0kB
      zOlqN(Ftl)VICNB|6QU6V$q#6Ghp}r>`c`ptIZ0o1?iJERCyCCy!r5d!PP+gpe}yD}
      qL#zB9{qhe#W>4U)7IUDM?f@n*Nr;+|^U+S>0<GdAF-+qUV!r@Fjf@@u
      
      literal 0
      HcmV?d00001
      
      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
      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
      I<X@ob9|V&pGynhq
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTj$b5dO|?p}VE)A|kg%@v`b(fU;gOYfNB+iMk+(W*>Yz?H-_{+miMG`m=lx
      zqYuVs|A7x0^@kYew7an+NWw$UWzNhu-^_gd`sdSU01Z6UkzttM<p=zY6&<?%wzcQ+
      zEz9PS>sYI5UEP;5@Y`-Ag)hQ#Lx;vNla5%iBN=i>t~k;Se1>7U<3{Br!fmJBP6uvM
      z+#}a_<zoh`a+bhqhe2xvU6BXFh>0N#8_1$yLdQ9VY(+T~+paG*_ItJnUvb+L3}fxU
      z;a-P_uDbV)nxf9Ic!vDt22n3k`BeL+2)BZ;C%O!CNevc1l$JOUzO<6|tf_Oe+A%PJ
      zDIJsjUY_h{Vj43H`E4Oz2K%8yw8tyen4INt8rBPYS2(h%WA;BYNv3C@gv%!8aD^d9
      zVC&Q^kD=7Z8jL=1jvt#NxQ4Qh>kO0WA*NhR+`vu3i-cTBYSt>Rs~r_sF;P`-2EA>D
      zB8pT;7_pyCxS!k<Qh*(cZQwWHH4s>moZ3CqOA44iHm4Lf@-dQ*J#p2rr%sUaqN<C*
      zeCm^~TOKEtH2UJ2?|4B(f5N(uJ3&{+J%(Dk1*hxS!~-ldOt^j|x#v9>Z|#7G-DLQL
      zUplVsXRV;O7x;-LutW;Z(vQhTN0p4}l%Y>Yj_i3lEz@0Dj9UFYEgxXMi+zg97Qaw$
      z@C~DMHz`J0&tr^sh6@<)qe$}9$TnL)!o@Ert<N9f(#C@J5mz%%+pP@#;Z6`D@SQmP
      zKmk7q<rk^xcbub^;Pi74B5J5pmK=G_V}bG%P{blEswzv>sd^f?O}jx}iXVvG9a=Tq
      G#r?kzx-VA%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+fEZv6kVqsn0A<2MC4W!FI9U12I>t{V^RnvYC#fBAACDAJ;0FZ44F9v{VX5E
      z=!5au5Ai{x{(*6ynKqULNO+iY*=OywZ)?8&{rm;MG9KwjG0gAr1OC>E4qbo8+V}Xj
      zW%I~&tW~wHcBKsbrW;A&i?CSJp)t%1dNk}vhTM@2N4kN}Ff4c7sJKMD%|Y1N#C7s}
      z?E0>J!eEuo<5+GnXlp@RWWg|EVhF<q(#V<6ae*OSQh<EZ^~GklV~g-Lw>`ly)(jl(
      zwRq^Nd(Wt;)EO4f5x-cY)bmt6)xIUd?I7%kHp5&}gT)V}B@Toyt)xBc>Rd0k3`}53
      z$7HXUC*w>^V}>ESBjl@~8#<Ksc&QvGXL+24_0rxGj;!mLJ!K}z^b8bm)x;dGF=U8r
      zgSzE06nb3!(I?>eu|9$uDC)S$FgZBH0f>oPxXoZhLT-g3id5BF=}oz%TuUa(>NP{J
      zjie)tvY$<IKe;KS06P|2AJ@;TFR&yywR@<O6fk{kP6N3S#z;E$)K$ZtIzh^dsxAie
      znNPZ2^Eg#NqtCDVju%AqCu|708?<%YXQ&Le;A|b6c!(8-3D=J#_q-S4ogMJ7oeZD&
      z3&*wnd@bng2Y#XnERllK^kcHoQ6*zKrRdX<A$yiiD|A;Dqf-4q%SV{+V@zJz;uq=-
      zzGIZ`Ciy7qMU2tTa0%l*7D-5rY_ruPT>gr}#{3bkY%Zif;d%;cyOY9y-U(s^eoziS
      zk;5-y`Aus26UV3|JiQpihzhC{B}1rrEKr;r@>qmLRi&vqRnIbNv>Sv{`GK;#ORI)^
      Gc<>KLp)aKX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETUQ%Z7~LlsGD#Rp3{6`q_F@rpp-fw;wFRnyhFT35NgEYi#z{Do!DLcrCZ#T2
      z{*U?xeDTEx>8cMdef8Pj<8q&w!458T$;+I4`EL8$-#+K}KY#uOz*T&zBO!2O*LrL{
      zF}*$8d1yZBTH9vZ^6ZYesJ@E>-|sth+w-L(-O13bc6__<=+Fet#*?dU&v&hkANmFK
      z^^IDiQM)6Mud6t-Yq3ScciCx9U}UN9c)sQMO{+VQX=Ir3$d#Taw*=A~wR)|}<TMOg
      zuIx%HaHRYl+nc;1FdfwVf56!-HE%n%e_OyT9w)KX6wsFXTQUQIF#{twkwp>(1EV-4
      zkSwZz(Yo!()j_W<-TPL%E7idLj@4~iuC46oPfbA=xOt5JhZyG+qokMIuS<8k@Aec?
      z=fiPKYtJ|3W9j&2NPkWJo+~xeI43aNYIXX(p5<({T3HTq!N5hlN?sqzkbQxvs7`!G
      zrP$im+Pkvj&t)-*DIKpxt3SG}f!9$K$gp~&KX5xF<Ye)PVmiwIBB4-dS(Gqs;4)@H
      zs4Lt<SK#HS*1_(>;J`_IS8z?oRe{_;C1>Cb%u)#Q%YoJ99t!b^qwz|c!*~;K>9`?q
      zI<D<l4+A%Gi-0`oSHm4>#m!PvCC(dIP`)gE>!Fm@3~w8F2UP*X_Llpdfw#8D%M^%b
      zQ@NK6+)-jOTtbtcAH)a@1?v=;2)A(bf?1{0qYUCVESg0?v=6cms5-c!;W!kO=n0G;
      z5@c*r`ZKmybCia+6w);VD{7FG7p+y7p_7F+1$K^gwGMSX#=}EVD-AzTS1?DeLy0Zh
      z>fW6>;?<f_dnCK}9J0RDwfMkzItaHMU+{keV0y?)c)4(a0Frz}lQ@GRq-g215=hg|
      z#_Zu-PCXg)Y4j2=BVVF5ODn-MTdw?seEAtp{utz+=2uk%>Z}A9!S5`_ah4XPkBO+l
      zAIu-(f6a3Km3^FFsqEv@uPCiv-bdw@mQPRb!+eU1<C^vy*AocNxdiCG{T(jxSo|In
      z`Qb2ZY+Oq|2i?KR@E2&V5d-iU=W7xF=P1C!Idm|EEzCgTI<_&79n`Q(ZG3?T=mp4U
      zLv#^x;$*}!vFljFUA!BxaToXSo_bAD#rvFCqko0mgdFvFYV2Lm7An7?^b{kNXu#El
      zi67`lK+$z7X!L~ESIFRNlKl<F@NEF192WQ+L;>q;Ef_n753s@W1hWGWIdHs2)Ov~@
      iwcb>@@(lN1kP%;vT3>==sqcsQh^JDez{mImiN64bu*qZq
      
      literal 0
      HcmV?d00001
      
      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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
      Ne2l-r#&O(!{ui~=&{hBd
      
      literal 0
      HcmV?d00001
      
      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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
      WAXgz~0w|)EA}Tz@hQxtk<o_?`Iy`d#
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIj*>2N76g@XfV~0T7(9)HyKuLgNwg)6b9~u=YQGzO^i3B{Li91aUi5+aG4SxkM
      zR04?);G+<C9JkG)=8c!Rv)ps;nKO6({QdbGz*FQ>h!Gxt5=WwM_{X->G`ekZXf%Xx
      zTgHwW3oU7V-f{aC>GX<$?9_@WBnX?+Fz301nOC-B2it^rE?*}k3hseSBMv=-BxVS+
      zW!sT&d!2^#_C=#D3E8r1iFRFhwpvG<iJ)csgeT=`btko&1kLiK2xP5Dc$pi4mkMsD
      z>pId2%>2kf=)u`xt!Sn}&<SJ_mPay&C<yaS8SHs(S9-zMJx?CmeZoR+Ky9=In_CS$
      z_Sn>LjW9Q^mI=C^Yf0a)xIJI)9<eaOmod$!-kPBfLmUT&RGG#($ow#(Q6YBQvZL-f
      zaZr_QX$7|HRD>g%(lhh*G*+>m!Wv<5*zD42<qVc^o$!7j?0+cWHnF+Y2umY+&lK>h
      z5;w})6bqQ5D}okb^<py!sm|cmgpH9(>Z%jY5Ykn*=UMWNt=e?`g6|RjCfw$ZiSr)=
      z5<KHh=P|{r=NyS+^1%tT?>vbi&10G)@S2miafxS{K@!KyywY(6vk}2F&Qt{2FVMRa
      z%zfkefJ2o4N<(-J^T_gE0#~sR;kP)dym)qT9J)UQjYp;V4X_+RKQd90q58u|TPukl
      uSQ*!U01YxEc`-<gNYo8(;AU7?$1OHT-B!m2?t~`kxQlzCQJcIU!~K8iY$=Wa
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-n*S6g{`+$I~p!>}%O3G{{G-0;7dOU`R-%&~ki@I;C&qIhOsaS_K9DfPPeT
      zr>xYV&AD^$J?DPS+xzn?fIV!+F-O?G7Pn&L4enIX_WE7X@|t3xe6M7&+>!oGNssE4
      zI3k4nf7~;1rF3a%j1KA*LhMil${Z1#T)shwl=YQN!a*X1C}M<kRR!{N*lWu0LNvRQ
      zkf~~4bQ>a6)*lBWrlSUgT=l=!zhf2&t{+Naq@CelT6R*_y}k})V2b&_^?s7|N-+sS
      zf<QiDV~ROZg0S3{rWWeH49$Hllr1$PWOHAoy{_PUo|}-*T6D3-^}eSp5R&J582a*9
      z*}bzfr!Lr4vBe`e{7+ycdosp2dmdY28{K(=`^b+uBpGeme(F49>Wjd3fxQG4k>-dM
      y?=#!-+!xU06P6zMJ*hvM(7RYhhVz6KWXJklwpQ<CR%fM^38^z~O<4bIu<-$Aor;D4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Pg$`8oP#s0{x&sO9_y;sBUgZK^(A(lq!5k(A?L~Lbh^uBik+fEu;bx
      z2ks!jPeRNlIXHk2J?yS`{N9_HxAX1i=Pv*{*mh7M+&>g2;$4`(Rr*ahPQ~jm7P(5o
      z$99iQYO-i#OfIv7UbEw%Mrc?@m<q-}j}K*1I9MQTmUZNb)I}JL7$f^CFQk?kVWAkQ
      zyt&Ic`(^OIlXjW+P-#^>B80885ZePnEiyytf^flygYzD$sQYlyAXHlxQ12@(pB*2?
      zGJ7TBR1%i@CK2gCWXj%W!I~|duycm|%?_9D=Y=Tb)QBNrYrcW9O?%d|ZhPQj71tcB
      z5rY3W$;UdbbGKumxr4R2D)+gCSPozCudaui*mST#SSgE_AU<wcbDT_$h0+CqSa4%b
      z@Xx9V-b-_wCGv@~4zB)Xc6Mw&_M@kH6rxn*xnw`<dpb!?&ZGBK79%tC(MCXUm1f`4
      z^q@yrpSNs3GDl;hr(R)~U$)BY9H`N-56pvI;pM{P=puhT;Jb}@!S)CE!6#gNKfzqG
      zvB@9H{)#2O`^>S?%ecZP;VPDADiNPnWidE~e~OilxbeHpcP9Rr$ShBxGZ`jf3%6OI
      ZiY7}`a0hoMY1msn!JK=%*ZAFAzX0&9=Q{uZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8B16g{_vuB?kxL_P$i0%E^p5%G%>6KynsR3$<C<jZtBwu{Sdv%7$Qz#n9S
      zkoaJH;=vzfyt6G~7YxcnXLhFd-gC~KGxO{B_a6Z6V^u?nu(Bm~#b-0vv)z{2al}Wn
      zAp+YnU#PL_Ii6o_dtM;@_iJ+-zTCCtUd;|d=}KQiA0eyqO-FF{+s2l(LJb*0E?!mc
      zN;fpCZH|%0xr9vEwu8AvLb(<XKA%E`^Hy!w4xbUs{6!KAbwXd&Ysvu-1`TMqq$7<X
      z0|Uqs(s>myRI^?AW@o!0{dc0_NWyT<vxHL@zOB~1%|1n)uzCUf)4gLMMi7cncH7b<
      z%p~Q+oAy#Quu`ZGU>r9zOc09y-!cP}m}2c6;j*5I1m|@Y)R4^${;Q(n7IGS<31ji%
      zu@D2dF+&(>$#7FTeAKd8^|m{n%j^iF`9f6N6nlKw$NLoxbA+XMMN65=>YB=Y-Uvcp
      zSYh00ijJdW7V`$~s>2!F=`^EOMMhLzC>SWBM9_M52$M-+@p>%n9!w1jEI&?UJsxCW
      zQ9)_G><C-wA@0_6qUhNpA@r-ZI)vp!<o`)z4}3}<`ajH{z&JnljNb}%osIuk*<B~-
      zo8FFZ$yc`W`1oJ$`hsc{dvwj^i(Yj^5J-0X(5V*yIj))JUq2|DRd<SCmNZfdgm*9V
      zYMEClp7mns8;s&1u6*TH3Rii|a18JP!#o<%w~lKV;T7RJMtc>$@SNtoQgI)~KE{qP
      z(fc~U&7YWkT|R<VKER#sZvFt}6Ns6Jl4Lq9hHP{37Td?h6t<YW!!Fv6;B#Gw9z28b
      x1G&V&<DCCMiO7OQJ?v4MX90>*rdT?}qZ72aASF75C(-y6D?F=~sEQS&{s5|9cIW^A
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTT|0O6#f>Fv^87=<c@+MwgrhG%B6UL3Idi=E%e2anQgm5FeIHMfc_zP*1<aC
      zgX6P5%JFQPLd(Dm_>gUP_gud7edp|-zdwHg7)M$`4a4j%Kj5D==TJAdwSvJvYFX~+
      zIc-6%am%pm_>N^c!rojNO4(LH*zT8QZsrYPE2v{=mj0T-$$LG!D{`)adWHe-G%L92
      zXl1YX4jGAr?zqAfHbcF;qdP;77)BFU#}FgGIo;IV=L}l-I*ySHLtWg;iy#;pR4539
      zP>UuNK{PYehNVGMLN`Tne=jTS4W2awLrcQSaU;WRUGDwEItiU&?i%^elShR#7JNQS
      z%rFd=3eqm(ZSg>uZY+`sp%dK-x)|<U%CTpwq6fWH(YA2Q3MBa+Rn!)ac(_ZVrCpnp
      zj|FgtSjm;7PH|HhP7wXLr(l2~dUbtN3}T2u@gp(xRB^Og*-^0&h7nfqfT620LzR(=
      z2%^+xREFP(C3Fl^;mG@{;5pf?eqwDt>$o=0xs?e$Ps-YlQ56p{#t_)!pQNZH=5+YK
      zqD3+RP!FpGTO8=(&`Tlfno#i=lV$$T?ijj#{>wv0<?a<MQ_3r$JykJ<X==RvLY})K
      zRS}oitZw-VSBYbmddd+74WVwCYt-t7)NoG4Gtjuy6-ZX1x{9+^Dn2Xn5;kRji3J7o
      z3>{T+oSCSI;}vxfiIMj5i2NydhW2t}@k3WTJ&!3^Vwk9mcr~FySj4i56*-*^B{KXD
      zko>+;k&rivEec#WT?R(Q^_M#P@&RH9rLBECCzf<M-JKUab7K-JDY|0PGZi<u;|OYx
      zrt%Q^j~@o;8L6f323T{md`;+4t)YDoAzE+JZj$yj^c#wfe1{tSfyS?%%`IB%$p%<J
      z3$3d6KZI7a(T?FZ+WiRM{0LhkMRc_E9ibz7LXqe@!QCS67cp{-8Shd%e>q;nlVkLH
      zmorCbEqTR?c<~#HMZ7+ZvU-MUn9zfG4Pp&_ND|HKm_>?Ie@p8-q_Key*z{1hd$n!(
      ZsDUl=NfPcF@{vrW$cJjD6Ox5|*+1Us%0&PG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%ry}6#i~ES62(0fCK!+go#@>DI!mfnCPMjWd2Cdz2A0MRxIt(cHkrGUu1%i
      z_+WhYk20RyO=-a(JoL8r=A7?*-#Opy&tKoZ19*UkDinrC+kBUQFvC5^+cNtue`i`e
      zbZqmfTwA{D2d$p(haz~pUU|c<*W43rCyazA0u@<?qRcm4PT8-lZDB_$at!4ps@N4?
      zWVU(~^Ea0v7xkR5vdqwECxg$X(4@RI$8(~`3}*EriM0+xw&iz49t>kTR9x1OK|x0z
      zMTSgO1{B(kCtePAED?}aS1?SpeVe--9yoG8I?PJy3~Lvtf3kNZL=Ph#iD6s14D)F@
      z$)-J%4Q$prdCcItidhEZ{4LXQ12;)~pC-pJo8r7df-KRMLv3ofjk1b4hUp}DB1Fd>
      z%ri`FiD*-}G-}ap`8$2zBX$g>YAwb#`5q1X&v{ctg<&O$XiHPsLsOYgtS}0=9VMM6
      z>9`seu&Cpn9M0IF-;G-p8<ByLkhzqQ)7>J)Hj!XhO$DB>I8En$dK~|;Wva&6v8S9+
      z>u6-jC22&BLEH2Pfi0dp(tR`kxP?oym*k#xkFH?L<zXnui-i++6J^58&~pi_Sd?z3
      zJD-6fi_qy6+O5(~p|@t#zd|>TF#d&h3a-+cqZlB<1g(1ftzi;Vv}3r2(g=amJ40ua
      z#sTyLOdsOb4=lWB9OCXVREa16`$XX*mEOlVJ`wEa7`i-6A3+lks;Cj@IOQ0qLn(p?
      lH%8?aiJUB#GwMgUe_SC+Rti#J#_KZu<VYT6Qzx+k<u@l=QFj0U
      
      literal 0
      HcmV?d00001
      
      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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
      CI`?k?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5Pg%Rja{SF>Ot@%c+egUBH}^u(4bHV9{lKildigwW=l5J{wvXo;K3i@
      zj}j+A=%F6UvTt^VnfLb1_s{1SfJ1Eha0tgw@>xzp`=axQaGc5eFp*ZLVXwl-j1to`
      z(~F@lO|g5|zgE^vid6aV2;Id;eKZN%bNw?yLi0@Lx;!Vid;0@|7nz|FaIqY~#}c6(
      z>s(z;Mu{qJWs)gECpM|f2C~pq{#W$MM{Nlw@toKqzD^0^rgnI#D~YXt)^JcU6M}x8
      zt0KyzwTcDB%nNqFF8DTh&%}rS&)DMZsLp{#_XFaM3l0KC!4Y_chj*;-E8sS6!YbMv
      R9jw*3jt)mrQ@Geb>le(Pbn5^B
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}*>2N76g`tJSumsoC<V$=)-)_;D_hyx&_W=9#8L^d2qzi9m185@Eq&qx_yTx^
      z2VOyfAc4dy5+8*)Gd776N|D;JXMFFu=bkw?KYxAw4&Vr`r;!pU&0CAsk{P_P-KXYr
      z$9iJctiZ0D(`qey&6+puEzLCS(DT#i7Z_6UreiVsW^G>9!!!m3HYZVfvoZpsI?H+y
      znsQOPp*ic-7lNuCgwmD1z@XFx1V*Y!psRP}QaEc%r!mQxv$ku8=LPzT<8uQ2Wv?M~
      z=tJJXDi~?36&PMVIfo(Svk+KsAd8&Z4jb5r5rJ$V!)ecNC=%O>UBzqq*o?kTj?byI
      z%?7q$R3OK+vga%`-GEGr6-6jtwOx5*p;?pu9joR@fkM@*Th5&2+iD*l_J_}GCLQRi
      zwX*JPzVK9r(Irsa=blRq*=})MqnJw9_Bo@|q*n=LQ(!~XQ}VvpN(Orcpc*O~7)L3}
      zP-6FF+zx%(LO0)s0|pM_kU%E%qH_xRhk^D(98E=RUAz#nOL#?bV<!=}?&Qc!lZw=F
      z0~4x{3XMqdnjBhf%5l{9QwC1J5Lop@x#+S*-5c%e(_$n{HlzH;4g>_RWJ^b|zhdYH
      z4OsO8>af;oG^XmI?YSMB?u^y!__#YFcFB~1^SHo*j==Wbf;}13(3eebQFfoJHfIf7
      zQZTvO-hyA3v$pco$TD+zNZDS%sJI-avSS5-4AQtJFp->xl|8omZsnE?bRkykY%s>T
      z=|c(wNb{{<4G@1l)HHGGxUS~zJ|k!-jFrA%P3aqk?tMYwGuD+pVV!7UgL)2STiEoG
      zK`CtII!r*|A_1q7N14-j2|F-@Z9G-51jBZofbV1285c77RNn>^;s?G&V1xSbW+Hi@
      zoxBUX<Kzd7PBCY6{}1F9Kw(b{``(i=-}kq`zkMBo1yTbZa(%?Rc+9!CH2!de5#tjL
      zCJt*_M{qQ*q@IdqMj^Lwte5G0f@!ABl%9_BPju&>?6At|>OSuxSQg_n&cqlKS{=&Q
      zNseTCnP`Ll)EX<5CvjGnJ@<czSO0;a`(qYUvF6!W<BJ_OQ7f;J!J7nJw#_I@XOuM~
      gPQgFmW_sb?67JoKa4B5Y%3MK(&m4iT^1q7gZ@80h2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5Pj36ja{SF>Pb(62Nf}h2NA_X141EqsM`A`U3DehEt^*R9fBX?N$}tY
      z_)+2{2tCw;vh16A!^|7re15%u064^YfEwZWK|ac9R6J>O7madx8>O<)S=1>pw!_qR
      z?6jxMKsn{MZ@N8I*on(j0H3h`pWy%v!sgt>Op?$z(?*Za3Es|bpWw%KpaeWDh6u1g
      zXeHXH%gHcR?pmg~BD52m$-FO}F8NQ<AK&YOaFWa|`<u5@g1D+&Ug&bk#;?aXDAfsJ
      z*BIsETo#4mrDEm>TVN;r>wItG#~v7)%#JD!)c4*XUb#?1$S61h&+zerCC)-_<0dSl
      T#j%E!3RltQC@KjLYiNE0Ex>pA
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBrXn6n-v*Ziri6!i%*nNVRH`Mq;g6Z4f1CQ-W!!1foq_bQ3Og>9PyE31D>`
      zJ5GN@{R4chI+M=mjH6$4#_#?e$LH=Q&7zFW40rE6_q;sMIp-e!{QIY00G!9Zh8}_R
      zrm<`6XS_Yr-pFiQ#(Jh^cxFA5Q)}MYsyR7le@WVF(v_};h(J7Su~0H<($a8D;B;7C
      zGQCD#T2|LGDln=vGNzL$OV>0k^S)8Dq`-08DLD0}mvdZ35ja%}d#d@;OmLYMh|bh4
      z(>5Ek0=<c3MIe%Q)})3(fypE6u54{Lz6gwC7{IWOI7S4H&9r@Ji6Vc=N<Rd~bo3)8
      zFjz8edA+$+lkRc=F<x@&hE*{Ln~;5B483?kdDCMwJ*DF`CItFD*;w2*cADfBNmP>+
      zb@`%>DVzx|J0vF)|HIO!)wpYV0@H`oo>d^`XJ|t<Zn$z?x~^O+oA(K1JdyOhWQ@H=
      z=CZjZZO?S<tb+EMjs%hd8m*S)euG8oC|d?QqTF!V7}+S!2_S~ok<l>CAbur78am#<
      zd8SqFG!2We#{zm8UuChjDeH}FvZ``+LC0CV62;pBVoE`{sN-F{M+i(^0O62v8-YrR
      z=2&ZiMm*pX0zl?sjp&ae%HAZsf43x?d)u+4P0q82i?N_ov!M`e0>x@Il*p&{OynH$
      z8gc@|;STiO=(vn4ECB(OrNuNb^Esn_Z^Lz(HUY;w=~lJLJC@`6b-Aiz9!0(lCMB#s
      z(#~sFTea96KGIS8Pn?3|${>!)^K~7I9hc#oIee^RNf{p}$Zjy@c3H<t=jO1@CptdG
      z&7g4#j!NQin28ekL~iN0jXObg1HE{Ng0GgWX!xw%Q=LgvtUI;>ZRn_>9+)fH)6NPj
      zW>pR(HZ-gsYR#Z*I_|0tk2aj3mH03%)>mM}uW-jvP;`O5UBgnZH{4?F`t#D{AlzrG
      zu{1H$3o0sEMo|^e>l}FVhUX76-j|)GTbBh>&A5|C&eLhtE;KCKwsiBB;d#>2u*)|Q
      z?xSZt`m-y=CF%LW7`1!A878n7J?MkRoj=?-`6GzpIi6T=o-W`RS77jG4BU+H_XI;f
      zV)T28dN9s4#xK|k1Gt3eeJN<lvDbERmG_(t7*0LGiBzP8lc^st+QMYlMVv8#0@ryC
      z*dm6o;JZ>TXo#2aGQUF2g|^d&blOW<Ce^~LzhhK=;#|_-A<8&!K30NKD*jdr@2K;&
      z)H&|bk7*L1o+M?Uj1es31ge<8Ee5&GVRwf^Y}F4x6@+MqpCG48$Pz$;wljF&=QWED
      z+K~R@S*2=aEb<8BD&B`J6x4U2g=+^GQQI4BQJErjuC!21|Ay5^7)Ygm#cB(mACOJ@
      z4@Bds18C_M))a*<@DvjcG+47;)@P64zvMrUuL$aEj@WN-5f6~Vx1{#aCovm<YLg&5
      snAjv_wYvw4pw(^*woi5i4z~SjtYC+`KHj_3=z+(Ws@MWe{_Uav9}QRdb^rhX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yj+bx7=EVRbdxaBd#Pv?G-57D@KOa+gCtl8CV&J|<l0FxO}8eyWwW8^uhMgB
      zIL8lu<O4s#pW^YIoy{hpJ;yd@cXlrC^SsY{nZEh=ufG9&j^`$(7}j^i3-L17+qdj?
      zZm%P@a}Ck6nz^ESmz-|HDLOCjmy^TKiul#(dsShJwscJx408%0*AZlYyRj>qo{1TT
      z6@OLid$|b<h8b_i>Lo8Sq$<aw&Xdi$Wm{f>A$x42be+K{IV~9j!#f-%qH#=PmLrBa
      zhUt_#Fk7)~d8^-TNcWy-bR@$<#c7I8UAUH-2aASsnW1n@hmVdG$ygArmW~ERbI-A*
      z?J=aaBptw-=TaW>K2c5uFFcs{1=*tOJ2?t@U_oM=gvqdUlr6)uE4$7Md5HZ~z<!u(
      zanF_8(sgCva?SdUs52AiZBI}D-F$jPdd=!eyJtCeK8`c^$i!LF9o9n02~0RXMv`i$
      zExkKK9?h_lIuebFU{APy#3m#TU0|5+Qjv7~U9C}pDG$;d8O3yxn5z1K=9%sIl^lA+
      zFd2&>aJnAH1za?dV>oxbisjT@UogaovTXOHN42v!u1YWFV}$z^#~Qw7h*I|aRwFki
      z%IqdpfWJZUyo7H}T&84>yAdAX$YWiz-jG&%hiZ$eyc|OT-<!BX)gGonJHT-jMLOg;
      zR5#2&c#Y!+wKmgmJkRMW%Ih3AP}aCbr*F4N%|wpwQp;2GcO(h=5mghF@r;MN9Jds5
      zWZ!CeJ4*T;j-POs;e>EqXTR7dLYuTrs@KcD_In)nmB1*4byI^Bu*vbjhjo?WI3D7$
      ziANOgi4bWNjwg6ZLMS6cA!e#ff9bmNXNyDNG-;PD%X3_n^(IG4X<v1R8aEub)TgGf
      zy}Ic1slv9gW1>B-IBZ$PXHAw>7!ALj8ST!GS|=zA^3acnF4K6;>AOw2VX50`>8)G&
      zf>O!A%QkgksUvzlN!eK*mW=L%;I775x(KJ~iGa<`sr!)r3(U|whB&=X(CiYX=m*3z
      z*+0QEuW<4YnoVI|t*ISj6%k_@3pD3sqgEHOL?e-6B|y1C^J%p<GFCJ&lD^>?y%`uP
      z(^FVg`}Dkv(?rAY9^R+7a%qho<<cRroDa65H^;yf1XVK<_#l9|OrwH`WC!^0cOOp)
      z(mv(KU?L$*1fSrX5A*4fFsZj;uKy2A7Uu(R{-O9AMDJz}zz6uOs>TC+IlwpP5AYp5
      zrL9&WT--Ro%}qVK{Tj*OE8MQp`FdijrA!lv0e;py&t79G_)^0FjRE8+9U00Sj5?ym
      zCKAR2WQ~VdGajL8JVuSiy72^C##1~up82{m+T$=hZV;X*cIo#EMK?jM*+G#~JB6+v
      PVjB*Ps<Ie0(jM4<y_W!S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|@}EL}#Z1^JK)q7|W47DehujSmn|Od}>@O?aEO0}N?*o82uS`s~*~
      z(0^e9nE2oi@JAW%ENi8Nho<RF?!9}@J@?!@zyJLF1>g=InTRpW?}%NoZ~J@7*|Hlo
      zv1yluuPXMUK9}5j*<Ez^U$16X+)C4bCY)+bdL|5pq)xPJg3{K?JF*g(=w?WVUa=S0
      za#uQm9i|nPA4o@f4Bf%D@-uS`)5Xr}7AWVja#ZkyA=h!zOo_o*a;q`{h6@}fdMw1z
      z&yhfqAwI1?=r1ZqzG&9V(pwkhnq){7-HND{gr~F}ISoyjVWC69Z9)<I-c2psQ$e+=
      z4C5y)*k=S<)>;*2N(qeMvWZcKsm|o#7(<$&XIuE8(hO`vgN$=b;3@?w(F7TW+ZuTO
      zZ?pvq*N`!Bo#E2ynyn8wZfMO+Pd2EDfGUtuV<Fi2Z7?Llo{O#@Sjgg*i5$b|d5aPD
      z&2byEB$V>kWxe5g!h0KzXhSob<Fu(19aVl&ZEXi{q&{D|jb>xn(Nn5g)b2dTJuJ{j
      zeR&cqDPM&n9c$m2R#$}$y#m%Nx9L^niqg{`JhSq%nlS@kb!c^$YQpy=?Ew#UjvfLg
      zX}{w1?*dCE^_tPk(slwCoxNl|K#YEXmCYT2XMdpYJ6SPY)IJ?C8t5|WNRiDcM|%e_
      zNH+}xLlMeagffsl1UHT_tnWiyImYCFxIQWk;{ZLzJEV;FA>>e4d?11Z-BY+pp!5P;
      z;0KhaDdsh3oWOI(nE8f@Rt@_rQrd_d@nhU=#ZJ{9A{k(Op!y$?Ha;O|e8z(D<rI&6
      Yi$^}<5ksCT$8ev7(yeP|BX|h*7XTO<oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6NmCP15dJz03`s_bG0Kh`A_>bF#C32Zg(X(N1Iqm+dB9MU8EP^tzr@nB>(wg6
      z(t}42{wT|SGZRRx(#j$8s{6g}{`%{$^XvEb9{`G2)R7>}ZHql|U^ez`chlT)#D-ZB
      z4ZCVCs&C1wSG+~<;N|l8av<wZg<Er^uR|kbRGjGuj(T3%meoK<4`Dd;iv7Tpd(sU|
      z6;-wyfpn!$=n1y$#`tx@WVy4d7RM~ut{preOm!TTUngiKuO^cqoHC%JH-#?r8Au{S
      z=$cdy`pUK|S9j|b>Aw&aM-sASuPU5%;oHiNotlD7nC}p9D@_bOV{`v&fe2)2i<y!&
      z!f4cn+0N0DV#~^}CozB_9fO34&KNQ<j1fX_HJ%iqzYXfM<_N76#&A)`1;V-3)W;7D
      zT*76}v?+rX=FU-2^KH4Bslsb3jd4uqxJnpo&DZwGz%@)V*PL@rIxG@dQ;Hzu;?%7I
      zvQ+a015=phvCEnrc&wRR2qC14Q}1}LB1-i#Yrq6+Dapx~;>TnEKpfqNVRHs<V4g8m
      zJ$J+2-1TKMxY#bRW+QQI1fxaoJS_#|mVw(!Rk|;CgzW|dVl54wpgviIXvl=_dc^PW
      zf7s<TdrFdu+BT91sWorcugWL35^e6UJ)Knn1Y_CdjVn2#(U2_Pbj$Ygn0W{I*A2>K
      z)N=5@L4xfhQv6M`b%*T)pQ*ys7Z`=FIQ=<%b4K~pjrIoJ+ACz)HaJFk&mzYsiwo!D
      zEU&qW#=eEZA&f)xA7ON5`WvngRwGaTCkEoX<0msSM<^a!H&5ygp@-|fMOu4@to9xw
      z+6NT1kFc~)A&x>+E5^Z9xr@6Yk|OTGV$@j_*n6K*CGdc8CGZfB_*7jJOYbr053ABp
      Aw*UYD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*Zz%6#h2da>-?(1);Sx2!&eGRvIe)K!PZZ1wu=#6oR5Y+$L+Yn%<kqy=jZS
      zJ3jkXUZ_v?$&mr;z)17~9e<2E;~(UB&L#~F_MtP$-aUK1{m$9%oZa95eOL!Djt?Eg
      z1jax17QN+ExMckKRHf{Fl$!HGQ%Ftlm<bl<f{9@HdUkM1-@4@a#j>tCkOF<YE#)mm
      zDZQxuC`In`MXwU+s=$t@WWvFd0?Fy^k*8_TS>v1NoWSU|Hx1_nWF{!;I0SYnbYh2#
      z4(wKNut%UH$$+kD<Lg{)VNO@Cd2?kgux~mjc;&oTHEcH*C8sQKYMTjfQiF1LKhd{l
      zsyYmHQ6SOCzg?P1)+jxkkD~|AI_MP`+MY5BeK;tvv(PMrKyO=$mp3Yuc9Fny4h{(%
      z*i795C>+KSVw%^{71FFMa40$4#<f9Z-RWI8ia`g*nx)?8kT#IQ^B59vh;!C_O4^d<
      zSxzLWFpLp_xCtkHmYIYh-%S@UV9db@I>!I|$BLwoVoH}NsinBOE@?Kd@FGr8HBFfF
      z7R|gDnZPGMH9#`Uv<bYd@Ct`?DP++^9F(J-R(K6(o)DHiYEVig!+XvuybkKQy`e7a
      zLUhAKB@SvaGMQ=Q`=-Kq?kA@Z_+f2<SQE%7yv4!xm~bYj)GB!s8XK?&7ZffsyuZOo
      zeX(eQ8o@#f$$RCRJyKTTGUIw1xSU>&p28$Bt#E}g@vsyu*+AStZ!65;9f8gYhZZ>2
      zR>e(M*w)H!qiW9Lx`S&11Dm^JORz$ogUXUAQb`5<`)q`*TAGBN4QkbbzF_!n?SJak
      z7~^09D(m~Ynkjp9Md+5fBy#gD!2sRe4tkD6cQ;>Pn#E|v!A=_EWSu5EMqhVi^g9~9
      zhq`MqUA)E~c@LfPTXd7HXb-RM#XkB9JcIoW7BSLfsgK-;dmjhZ(f<Gg0xS5YwQ_s~
      zU$HT|4*H$EjbzL9(rtX+G|2VpI?^ks(d>;i_zdqJTE)Q@dSV5;*;vQq8gka3T*dJ%
      z{Fl}+)>@ug!+-_5ccAQ~e-&K~ckThM3OqUaInep#LmZYr;DoH>jQkN(@+VxCk5Q68
      zqbh&FXYyBkA%DY{@(<jRf8uNT7w*cx@kst-)#|aj)|+Ypb=<(aq*n~@k$N%Q#QRoF
      LY5{7x4<P;nVbhgA
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-E$O05dY1QVK2uBfrRiSF-U~FOXN_AAQuTHAwswuNFZQ9Wbba0Y}nfkdwU6@
      zf?vch{6;js`jAJ<s*n^~W%)!|KKd{CX!-1$*t2`LWMfj5hr6BW?&<0N^{;z=|M#a~
      z06c~7G(;FW#`FpOYN|A8SR<)%Qy)&{^pcTJb*cYuyO^`P?5k&vwVZV9ap}0Pb&u-S
      zh&-xW1yed2Y8dL2hm=X;)QQ}f%)1&^GwkrBIjLKvRQPPhD7n&-4#R49)F`#=Wr$~1
      z7DbxQbQqT59%5)+@u9>ZLru3`khNfVL_k9{hE-T6P>VW-RdHpoE@N0STQ26Lb6U@t
      zl3_!}&g<r&?igxc5!R@X84j&5;H6=sG}exX@MPHOr;}O=u_F`Ga?^>yT5QHv4O<v?
      ztqd=LZFrP2F-rY}TCrRlFs{iSgUZOjhGJ+!vxdhQnwBk=ceTI{JWddeNVi(btX?FD
      z8sZ5L2*3IRu0teBN72HdNlT$th+!Av8g_?h;u{JikfegjD`njzOgB~#Siq!oVo2rO
      zCh#QoFs#uX$DZseyRL1KeW(U~zBsMy_X?u-(+tskg})4&!p2o%r(@WMXEn5wyM>VU
      zRSg98;{ZdgQ99x$<ne`|JBSVqRLJ_!F+T`_=RpjOm82V-s)-LJ2Gwnc1zu1tW8|`6
      zxC$jD?iT355xR*$R&tyAqp1RKwLPmr`TF!4yoh5Ojxuar7)01gpby810)bmnkJ}az
      zilMPuK7G<n1#-fqUnQ5NQywou+9*yEuri2zGfoK%s6JYkx2<7gr0hsPz8F>FjKHAM
      z)#`=9L+Lqzmz8vV*;?Yvd4UT`D;!z0Cjw{ta8ck@rHDClLN|?q?s~}S0y!nt967EV
      zmK#NZE+nnqPd#rcmJbVzV3Y_%D4Z}0gSuJ%AA9}TmDVuEuw^McJ#UI$ra%!yz&evA
      zSr6UwaH6$@XeL$Prj&M}71hnaxWE-qi5vYS7uzuG4v)8GTq#O5!4)W1)62?9FFnPn
      zNr9`NR*zEJUi1vxm!XuW_9A;-;0+a7J(X;6SW#T3Q95i}G~?f*SsKuzmqZGhcLd(W
      zd#b4`6mIb6Lx@5i!KMV>#|Kn3Y7%vt$X4lpWve8Wf%lQX$GAm?CgDhL5k(dPxlaX2
      zE<eSThR=vp3v1^oRkKdfz@w5k`{67<WC<+WEL6bS7P_d~S3Xqg#R#QOvmiELmz})q
      zHPrLbu;>NdqpXS5$1HmLx=p=Ql4|Hx2WseDrFlzphJGBZu1-Bz^kPS7UyB(1uc6%m
      z+DGUcOSayHNX}#JkDkqXB~u!H5S;JF2HFccqonm{pf6pDM&Aqjn=Dt6s69CgQF9lY
      zTIaBR!_GN8F^z5|n?<YtNzLJzIXo9^I;UAA*mT`PFGH{;!^{l+^n9K0eDwyp&S^BL
      z%^Y6xKc{D~-d~;dKSSy>3%c-?V0CE*w>@`x&s`_2<*zXM+wP;T&9}OI4|W8kD3Rhm
      zWN>yO&|iyS1{u%Ko1UM;zWI%Q-{kGKIo$M@AJXy@f7wdQ&;4aMriXw}U^@ZcgDCGs
      z13!v5??XF3jvk&tmcFNX7MJ)*6!|H*d;r(^S={93aEqVE9ex4d^NaX_>zL;`{LJ(C
      zjZ6H&hw&F5#Xo!u5BOyk<0jk4i>#SjEXi%QkC(jSCQ+jbSShYreSt5jyz?{wzQS!P
      d@B_5tI=-e=1b2u45qyJhJwi}ZP}5F>{RgBqx@Q0Y
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T`xmH5Ixggz0^e&r9K`cji8CkgG5p!G(@8j@f9x~w(VlM_BQw4mi{acBJtn{
      z_)%iEZ6c%(eVN%aGiP?@?0$WJd;-|Of{hrV@F1Gv#SNd8zH{rIxOFQcR8@E1*rNYb
      z@lXAFqn<12re772^7XN79SL3YWMIQ0WK9ECJV&l<N*%eJ-m8gvBm+Vsx>sRtov>W)
      z@0tR0wv|@VE+OAHY2}Jw75$nV0%6#}01`>WG2+0+C?URV3dYJx%ag`aMFtn5;z>ff
      z%o}-EB2Wf*gO(YYu+!(jJ$2zNh970?OnOp;vPPKitnyc-10z?#j7B_6wtZo*3PSSS
      zZv<6&sLa%p|6XRzC`)ikTFap5i7=F*jXA<nf0A>@UT=#<)-ui?g;FUaD4${+u`$SY
      zh|w0~82jXE{*BE$oY!{En2DK;b&Ub*5-G+Gb4+v`Y4(H(Om@3$GB#c4mz*%g)=it3
      b=_I>EL!Cl~Z4A?G;taCvlN=$;VjlDZ!Hc&}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8ZBr9h6n-u@VIeLR5zz>0t*H&51l0NxKno}}h)O}JQro)8Uc#lzZp?0iwXOEe
      znSSwG{b2t^XE1i!nNC0VM|FD6CWck96=rt1_ndpqxzF>Qv;6(f?|%Xq!9xQr0^_Sz
      z)w-MU*R@;BlpJe0lec_b$V~Ec%3I5Ob6%-ZO6A<DSFi%@xtG0)uP$1y?WnSWm_RRw
      z$XM$^Mpcy?WI~4t+bRXBEYKRPXg@V9ke+?BRHJleOuITbD=_%Rhx!)<VpE>2+99yb
      zL>#RNNOYJm@Roo~v%~gT?W!x4wY(}{v+|A-=$fTlIg3_V^SZGa<B|o=y<x$x!G`W(
      zt}#|~W##+I7T90E&C5_-VAMwY7Zd2g9s|1t_C}FfU}~-h+R=elzKJCE3hdDStXd92
      zs3$8y;JN=7eyJUO*l%E;z~N~4*K=;-0Nxg8E3gVCy}JUtUqECglm{6`6L<$H1BV25
      zMMF0oOuUQ30`1zr;4;pH1rf58po-Ea`q3@WVJk-!tw2qCg^JIXK@&%qx^011EIKNb
      zp@1OLdc!idhLIwLpwCk{i%?IH(vKTBCXnRPwmf9w1m36eiYi#}D&+#D=uY?7lQ<Uj
      z#nt?(Dg>hjPLX1oVd(lL&n4~>IEgbRvLMP04x;Z-h@R&mxHHb{HRbx$Jrra-8f2aV
      zQwoQ4dkzx@K8PBdr%X&@N+7<j?O=sK$g%eY6Vtrgx}tP(g{m0CMV5Pxsz~SPhb1+F
      zOD1M<nRuki<~;2Nlp$JLxJML@;i`!_d=xV729|cI2X;mzTX(F}wqW8Ku9FT6o?BJr
      zx)4Jl3!ILeiA;os%>RQsuAzfvdc(v`EKx%{+NW}Nz9_p{+N64K;WGoDQVB0ej*TWh
      z$8EYL3Aa=U)S~t^iH?yb2}g=+VjnhNAMz#&;6AOCY*HeJB6Tm2k_tTdroD3Gh6f@+
      zUb*2C!+s0PCW;`gI$0252xaG7TTvU4_H*1at0umHLoWU+F0pjTULRZ&9(O@(Me}Uy
      z!yOZ45HpDti@J$MEO(O#d#Pfg%Dy}Nz$;Bu0&k&E_8f=C2Z@`(2-QmB-sGUEVUljl
      z4|N-{Huc9dIqy|mn-WLtn*fFh+-d`#c&V<l&do%1@sKjB+OIQ_sQ22m<~iK`()VVF
      zNu>drb6r)Qax5C4l)7i@uMiH>%$M|06P=wr_~|c+7<ED$?YGnFG+O8vNDK@<rN=Xv
      zztXA&+j);IvIB9MKqswDI>Wm=&_!<&AG#Y+>_(K-;BVOV1P2B-kk~+P4F{i~ix-16
      zyvOev1~%h&Q6-Rj&@K0(Pxj)F+!yBQ2`fr9@&G9u#Smo@$UM&|#=|=Rk16u-UpRUB
      zNDZg2{DHBXQXbvF*_chw^D+AwKFr3FG4h(J;mR+#(WquV8&Ae*Guz5%o?$U-uw?@u
      zCyg3DNgByk@_&MZyqk>68mzj#x8YWUszLLjhBbc4rzq8z!R8guGLSNjHrbC3Ie?TL
      z!mu1hR*qmo9>a`0jzxI_x8+H!%2T*6&)}gP#UnX}pXGQ6$2^fm7j44vxB*8S9$_7K
      z39JtMgfDTAs7>JxzQWf8Y!;XB4Z#-21kU3=9uWC67{#|_rGIbm9mQ<H_xK^Cl)>%8
      HkBI#XNx@3L
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>7%g5dNOuCa%r4`ELnn8&c8`=cjJzU#LS$;v}tu6VfI)O`5h@+l#$nv+M4z
      z-A3HFbFNY$A>a^!dO=ED2_z2O=$$inxFK<*VrFe(H=rno-8XOMy_xyun|Uu@{_qok
      z3&;i$5Qwj9CGBz4ePmd<Xu;Gzj;1x&$V4ajAGbHs_Pkvv7J3s_$<An=VOz6y(bZ>d
      z7H?`+*3_LK6oDRg6xAMiQN5&FUbODmcvdTTx+Bo&<qfy@yg+~QaA9L~XVkC^Z%knD
      z(3c`90VQr{^$-MJQ_+CNFeHwu2;!K4?B@ebNyF0TiW_O&S=7>|F3_4Jgl0-}4Bl6j
      z3a2bEb;yJdtP`P8H@JF}j+V>mS%K3PO#90=#TAT2Qehm&>p`3l=sR4!RCMAEfso;*
      z4A<~c5!w~@b5g}AoEB)w*j7n*Jf9ywkif`+Y536pKgA&4q`K`fe_PLZnw2y4FuHLx
      zL{Z;T(TlT0hiSN;K-(*2oJo>07RK9%1kq2a)r0hnDh4n}5i<5hq3G#VP#i|!L|xK*
      zf&HQlBO1gxfzG|e>RQr=tl~T_2pq}j-n?yC<gK+oQp4%%Vj*0_<sdEz9NTl`TU1=Z
      zRROU{Um`?MFZ1u3iWsXK^SY7CdyM`)6=S$A5YB7vltm-JoQoAUjjNboQ<LG27d?9+
      z<JhK2Gssj;s+i(NZE-!ju+Q3!8!B!hLCF)5o@Q9ooo#icsN^2;gM6SO$w8V+npxBn
      z?s#^+=z7&Cb1FW>JoR9)kkve$xtOpYFX$#!mu7p~cB<XcUFUs&A!93%6vMf#Vu8Uo
      zxjv9d!>M>-I3KA<VTnrYdYa?Cf`=NTKf%)|X#Tot1pFrq^)&ZwHKSn3a4SvFUb|E4
      z0fB}>h1KSoxl$LJ{;WYSQFy^FIvIW1;K6U-_t>3dx@lGumZdv!Q*&LNihS~*ClEdK
      z)JS?)MRPO1HzWn1(0g-)^dZ`f&^|zGcwlgse$SzP@1JR69b04)4Kjgd+N*SjwJm6+
      zmFPu##fx}BF&aqKIIx3o868`A$<kmMU9&%;d-*wf=2)?VGs9){4V5vpgLj5^F!B{v
      z>vp7hcTLHDgByHW*~Mt(*85wOo9{Z#r>`l)ok|(gTX<4EH^b|YEMt}hxr>=?e9Gbu
      zMz^q37vgIK<u(-Mic&F?>oXPUR)_K>j<Z}woR<!YvAB(k)q_tFsneb!a17!Lw6XTz
      zTq%XcS_Lh1Q3V$%qZHcY61wCa^vPvhk}F8aRos&Ia97?(T0THtuHm6fV^e1EnatvI
      znZpxl;9I$l?`VA{Kf%v(1HVWMzsdrBlMnHSbn%xg;%`|J4RX_GX^dGGja8Odx`Sn(
      wtv|6sQh;*$9e1%xoaJ#A_i&#&;u)^v0j`o1z#6d|fQB@!VY(@3STa!l0Ts{t#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~6#k~Wu&|6!E&>)&QN&)96+}e~CDLeI(x?fh557&?5r!<gq`L+D10=p0
      zFVQFef(g{b2Y-M+%6Mj}u{AvOp`ATv&gDDb`R3Q}A3p&sV9i2;VR1+7i$f<oQ2v&)
      z=ZV)&MTDyAtn2?`uv-aU1bdCWSvQiqPlaFeWZi<vkkomOCn)QAWk*&c3%v|eu~!^K
      zj@*}i<mjxD3M1*uIzw-?t-{&c4CzvLUGtQ)qI?w<7;;@FWy%a@F{sIYFr4GC&}YNI
      z5Jx|f3`SZ943(5GpEY(Xvi?$3JjpOp3aY{@i@MTw%V}!J3`<=CZl{UBCl$@V8Hq?1
      zw}~lPW0*c2!|CMcv1TiuDchJt%EASP$upRYqd2B;kzsI4Ms1bjvD|)K!W9db8Rohp
      zm}3T43Fp4>8qy6P)pi<TL`q;_uWTwd%W++EHXOe3t9p@}(xY9gz}KyAaHNqTvOT(C
      z80{cwLx<;eSdQZ+ZZY&#wVc+2LxzdY&{$`5k+<Ps!2(I-eER?!e*-uc_3%kOe2hfa
      zT)!p{Z7kuQg}a2bBTr-CxQ}IqG3kemx{Sl!u&hEAZ{1A0S`Lf^kcvT_xfup~GicPS
      z@`=(?8T;>b%<HBM-1SN4MNfpGB+(4Cy&2+}Rz$xZuw+t8lHOnfCP~sJ?*LiLWGCpf
      zv$+%S>~{=)i(`hhPv01C(PJE8gltYZ+B=FdI*Bcex2hbqsuXffOqgG>oIM6V#`G7=
      z>o4;J)B0@Unm&w{d5pQ!xNH;iP2Bm{IfY*8{0<|=d!&pHm@z&gV|>D@@i|5^9%C-F
      bkN^cdz(c~4K%S5#u!7YXDN#&PD8T#!Xn!F~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4?@tp!5Pj1gJzGy&5CKJzl7?W3oRaV(ftX0aXwsk&!uP$qRhC@un!9V^-{ONI
      z@q>Q=e-vS+mPm=(=5o7vv-950yxFVkpT7XSMb$=*uyLxo>fBAwO!VDthw7W_snq!H
      zuB?r?<;7p(cBfrynl#%}nfj=rAk>Ksi%=1+8!Bdg_D;2**(eYe?<(r9jxzU_EW3_$
      zLMUV>Cat|8EI03_|GR)~=IofrWbX(oBa>bo6RbuY=pqP@9N2hJLLOxYMN|m+Wl1PE
      zO{5PxEl(#$$_q7NvKjj-JXVPj+z(n(GGS}Pg6})V4V3*j;{LO=al)SIfKVIkWYDdB
      z@orlxB(AACaPQwTxkJPHNmqsMgFxiVxA?1W#a)S%4&zSZ>kmfSoVqvURT%}r`4sVt
      z8lg&4o!WRwSQ>3cJu3&E399USp8qjWr6Tt8)3X>CQR4L>qb=n414{LkA8_iI7{6eY
      z!-T}-#CnY}tBy&=4s#^>7*o6xo?yDKvd&mk=nuId$<|trIQ{#uPZa75W_cw%9WJps
      bMB>?SiJkvS<S^GO|2bapF2)e%u>iUO(T&nU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|^jx^!KjU_r4JMJtw8S^U6{)R;)4v7{Ozrtx*!9bwIOx7pnSKgh%v
      zAH-lyeDDYOqm1`1$VcI!X)@D0bI-kJ&bjTMzrTJ1xQ9muQUZ@Z$!)o7M?0>+X?H#O
      z(Qe7eZQHB7)`CteSP#0rZn5D;@tdF*sn^nXJQW(y1@a8G<xXs?ZRN*ylJLTj-B^VJ
      z>3GYHipv6}#&Aulgn8!rZv0%JGBjwhDWKN^M`a*z!NLgACNzv$FfcBll{jId;ri-r
      zuhUZDd)e}oz*Hk>ORp(Im*c}johb`E9g^@FRp<p)hgDh+RTL>lVD8`@gCf0Ty{gPi
      z5SM(?@BAErv83WV<ta%eGnhr*z!iao;Z(Iyz*T|KHk-K`><U~u^}MyjWxA+x>1!6Q
      zW1bZC$Z&y+r&D<fswQsYmVu(c<Vgl=d}(0;w*|7BD&8Q%?N~W=-%-?*e5jjPM8!Z^
      zVEPpDKLZPQaF@{08MI!iFE&l$XIofiTlFp1A>|C|CsGQS8$mB@t5+_Yn;RJ4C2mLF
      z)O}xtHBXW^WOH_Ks4-6?q|vWKWV1X+^i6|Kb2Lil8H%1DMIXQ{SANj)6V@I@DNOJg
      z-)LVjqJ2h|Vv8_*I*BRTNlN4ntE^DWRm3qk&B@x=1UPeWc?e|aG-hZe<Bm#vpd2ny
      zDDT7E$K``<u8$jilsM>P>A3nhKT7+CoVJI&_WeYc!cmt3{Uvah6z(VV9^fJEX3}>S
      HE71P|{v`qI
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5YflqF6g|^zSy;DH9`X?6C1M|x1r-&`Lm(0{g%B}K<lD9#amjYK>FyT(ieLN>
      zCQuSJ`oTw(_?wJ(b{kp|lYZIRIdkXUbI+W6_WS)O0CRXOBgC+DpjY)H%{erzeXVTj
      zue7}G7zJ%jeAn$#-rljxUU@QWIPRA1Ieg1@4cmIETSb#sWP};UMG8$nbTwY(ma8>|
      ztrqpN%PS0R?rX!DoMnh-TPv8MJBx;8xXTQwmM<l84B>UV$UDGrMMVT{3M52T$hgWN
      z#YI48*0A`tSIYCs3q5aghVHCg(9N7)F~q(Oh6QDYl@<yAM<MD%DFwP!d68ix=;fkZ
      zPlR%rL{32;24wUz3|^+HAEsgu*BRRPxw~T<mP`EO37@5()yFb2h6z8<@thZ2-P$*~
      zf+0jZFp6;*V+>QRy@rYj+$3pDasflnUy?i%*2pNhh1)Ww7`mEM`iCmwND!NXT`GGn
      z&l!$EG7Cx!{Y`qDlk|lcLQ2In($s0ewp`t?=rwwp!h=Q=d!idn#VqC+VpZMr_@=X3
      zJn$TsJk7xN6biVj;vVKnf3IBBT`oAU*+;wFBo^f74ZGrN%P`thp~=s|1MLa_$huXJ
      z9crllPbfpA9K24f5fxCT6jj3s`tNNVHrgl8?Al(Xz&8wG&)y5eI3pBhP&X}$SJqA4
      zaX3lScln57oJK*SiD$8xm<Rd`Ax!hoPIw3H9@0KUtCCEe(B~BDJ3ppVVB$pjjEM9R
      zG1{wiN1$Ekrj?!pz4a__sYaNvN2waFZGFJd%TwIgP98%!#z?w`$@Fv$$u}4lQ1}Eh
      zVogak+z~$#0gb8?#0}CHs`?dC=^F;5?--MQATIsHoOFf->6gzY8C0yZq1w2Q2gE0W
      fdFpC`xJQvDG(+4%SR{5KEMeL2fP6u&SV8y?dW}<K
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%SyvQ6g{_%jn=63{Z<6gs$g^>2vrvrMWH@G>3-6VI+7+ONvpr*LIf9nfFC8^
      zTMJrI=pr-R$2mFo+<E_aeFLzKMH?wX;a)Y>qZ>b%;MT4C>c;g{Y%1=doW-!_g_mKy
      zQC}{ZIJwfkt|TT5PE=6!b!5XL<b=TW6~iyQd#>Ba5LSQE>ZT47w}U|f9q5RVN$yO%
      zyhX^Deq#QYQee!U2~2W8*ytLxRwh`*u&Vn&7;s>tH;Xie9P}YaNav+tsAK|t-l%yx
      zx>laA2_vPjqWrRojKuAvC6WpIT?+owJD$R6D!-wNcWj-m64p9r`NOm$@v$I6iKVS{
      z{Qlo|LiQ?bL=}B(WT3HMi`^8{S<7j_+bH@fj&*Efp6R>W1~Yanw*54)#5Sk->jC9*
      z;x@mz6fAZ-%h`U8b~#S*on7B}hO_>H!KYTwu;ip-ouJ1$!U)F>V<bC@F}?}om}s-?
      na4anJ4bDijb=Cq-d==Y3flgwI&lILxz!}W)Es_XxSb+5jw{*_V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XdH6#i~+%C_O!mQqAON-HHKDX`R^XiC+_0;y?QDGgA6u}Ln?GB>+%cSG^b
      zXW#UV7yk!lFwXek`0O9xj1P`Fjsgnff8coT?q=x9kLg3Q_uPB#x!?KDcg_$0e)}DO
      z8Q2E;7-p|o*R30-ziB%gW?NZT&6?%gb#q?-7u{CPU2)r;_SA~!wxt(*T5MX*hCF9E
      z4JADTDTWap!Bn(uF4wNfdSGA&!(_Nyla}L~$-8CS52PbKh8;oE_NPuVWXsz_QJ_1s
      zwqpl#4Aa}bl&dnNif%&=g5enf0|RMr3=0fmgn?(Z!*JPlWTn%pN$-MHQ<7n{?A9$+
      zwLDwf@n%XxW|-S1;K$QOX$-X!d@>x4(lH;$*ur(`1ch8Rjpwl6z&?iYC$by*3LL=m
      zl+%U`dfZp67UeXS&4tLLa;*j)RlP8PafSg;It}SbFO3PjU|=#)*vM1hFs7&k@{^9G
      zh=n~d<}I}^<kkm~LDs-ghRpV=Dv(2-N~A~_47(H5E^4(DbjV`@$8myy*0m_--5U&h
      zldhp!>7bCtNxW!ah7fK=u-J1DcnL2v>?C^5$5}H>#MJb9K|frSO7%P_>Z>?q;5CL_
      ziKyC9;B~w~g!?jahuR>i(no^oqGm8Fa2llPLEEp|z8%VsWVx=--V%6Q%QV%r8*%_e
      zhW-|5S!ppW2%N#$D3fK?s9LJ?NRgwSEEp&;?Ar>w$Hr0=ErWLj%2;AJ)NyRb4=kk;
      zE*iV;TPpl`GOL7JtkY$Il^(Q;+zg><2G0wu;sTYCs0v?Z*q@B1-w98`NEuWGE^1f@
      zp9)IX{IbA0-e(Y0*is-{MYrRSqKL_oKK@YPBYaG{rl(h>qDdtiB@#U;DU~hhA;5^e
      ziKs!I+=qnSRgD<?frJE;M3AE+H)F^2s@w7E@{FxV%h>;>>j_;K!d-HR-=ea7U+VVi
      z^=@M3Vv?p9r(ZwV$cP?hG|l^vqG6V%-JN8eBD;^i>HPH95czK~bSw1PrT6p+{|Wv4
      zM~sp!=#JjqjWPPtqj)xo!bZcWz?aiq>>WMW#i5(X=5IsX#*yel2WA(qXrqh5O?od}
      zy%}DZ4=-G#^*i6=+>$;z*2N;(6|yT)gd@khcuz0syB2Mc!=<k<6dSyY5A-q-|6w+B
      z7^ZA~hTy+og8zy<{|z(zcbw*bV1fUMC4L8M{4TEWduZ~%(BXgMGkzbR^9T5X{}VEh
      sC+;ZAm;t@I0*g3Upl+z4PAsfp77bc)T1)cn!&PjAtdV4>MVm<d2m5gRBme*a
      
      literal 0
      HcmV?d00001
      
      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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
      Zi{oAO!FTtd?I-4mX!oIiEZWP7{|_T8*vbF^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+j0{}5It=h)>;NE%>8aafF&DCCftGuF}{Hu*<5VI{b3}H?Ip{u*c}=2DSSbm
      zlOjr09`c$hs(1h@fr5NXik@8=O94~nVK38jy65!i?s@*-AAbTE#(fJNgn<WgNj}Mj
      zj~#CzTXW@nwk$)Zk{vbgaTWfk{aT^odp8QHVGCV^q;bf)lHpg%4^%~4SWh?@S<6a#
      zVfJd^*HoZ?8e3$LDmtN7o(c%-^`aA|a(rfS&4=dM?Y!eT`T}97|112`B|_JjUsVYZ
      zHVRniw$X_mfdrC-&VB>vDLS5-sXr{MU{01@Md&U173r2_;FxvO*ky<lj<5ar)G!m@
      zRBIE0a5zpN`#G5=mXxRS>5`3|*ll4KVgIU<Mp%J8*vly_D7`HBjC{x`Z0%1+MB^IG
      z>VPYo@5X+@I_+pz+33R|3kTau8N&n)BgKlVM|J6P#@m{NTdJK;-$~#o`YjwIq}N<W
      zfiyB4xm?%U_XuacLd#LV?o~%4$GkavP~bR*2pg&^?a5r)B2E=NtpZQFlL3p8nri9f
      zyp0@ASQsW8Yvun17lChZlJ#P(+v0MOnqn_cP<s$Q>NL(;I78UI`cVSkno4$a^tre|
      zd3<N#JmFNU)0c;{MI?a>_?}>e98W#b|0`p&A=0I8TqGpsjXq|;4b?G$aZC^dQ;CE#
      z8!H{PoTRZvmAE8u8HK14^Rn*h7~b1fi3n^Xj~@hzn2veHz-D{3g*6k9!xe$6W=!os
      zElJm@O3iJX!*zjKW3~cSla9x!5jT8a-0rJS6_0y8WS~9k*Mo|hbj+mh`1FPwGIDeF
      z1&{BmF;|A6;vwjn@G7n!@)S)gz35j3?imhA#|yP|-R1i&WPW@QKkGorq`7eTn(g2x
      z0h_HG`0p&Qjm6Fk{05Qv9h-iMFq@4n+F@^cfnHt<_A%Bi*velnBDOc9JZEGl+ZG2J
      z*wMSMfdfymFY^rI8IHss-pDp^s)2JqBNw4YB2=n%dvtp6FIc}~a=Pg|*ud0Bz|6<L
      zYbzWx%m?%mf?nY$y~YXp8zb}&#_0_%(_75aJKU%DSfGES9QtCO%^a99=5T|v7-35Z
      cg(#1koJj|6;dYcQSCqeC?>qeN;%UG80s8aI8UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C+fEcg5IwcKGVD0IBPw_S@v;x>5*g&l1Y=ahWRq1%)P3)rZKQGNCesZV|H{Nm
      z;)5UHSNNd6VXPX~7mUgJ&|OnCb?Q`|>Tkckd<Ad^?Fco(@~%2mZ!>>n?CWg5P}|v1
      zd6Q?4<bJIEo8b0)xwEf&?X?IELMni)P@MjJxU2IJVT!O&Mb%Nr^r5yPdzc5~Y~T2x
      ztu6^uVaNFPD)aRxCR}IOJ!4I{Pgq&{4_s$JXl%HVZh~+oL4@fTb+i&RkrL`llF;fK
      ztDhb04R!fa4GT?}>APGN163OF$H9g)PPjceeS3`?Z>dUvEnRNAa!-#4i^mgWCpFp>
      zz1BN}7?*G*!ev5dVucc1m4TWgZFoiI9S=c#=BsA^!9<8(xPvm+PmByb_xGY#grAV~
      zEU#{(P~K}+ptWi9!g+osPj%RFqXf5vJ2ln^RTO_#?Xk+D*ZG_RrKxDoudT+XiI}6O
      z`RgwG5{bLZACYuF<Lvt?=bXf<Ka8gDm|;I*j6~1l0$ajG%#N!(U@KLoyC0Bz!rX}(
      p^aBz7tZK|2=Z$MH0`pj4bRE|iU&A7<vz6|I3yitJcY_yl^Ea8z#@zq_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D>rN9<5dNmLUAtYOfPi;Vs`MrcDxww<fuKvOQL7~W@W-}2l-2Dn+1(29X?z4t
      z5E4y%03XUYr(5X~48cF=oS8Y_%zShC_51rz05f>3AV!#dZ+<j)bbs4&n);S)Zs;}B
      zx9a+mJXeJOA#k^hy6e0#vP*8;X)Lvaz;zVF3Byt7T4*37gH6lNP7{iisQp;iWrodL
      zjuk8r7IXiB>wML1lXI^I9#bgi*9q}uw;@s>q%|avRMCgi8Wi*sMndmLAOjW45zpJL
      zn($tmHCqsdDsJ7h*G<ooa#tCb<Op*oPcd3GrkMz=AoMPab0`f$rYV9Kp4bqcCmL1j
      z6K64+%ZD7z?Lc3#TEg)y*D0rP7Uvb5Bjit9WDOT^k!#ZEHI?Cqn5-F2AUwykS3R>O
      zvTKq4msMQGxPmK$$!N%9AR4aX8X?83496D%7j8I8CsdXdWVza%avUO=!VTmUOcDkT
      zj3Gor9tCc*Ej9uI8S-aI!%eA7cvf>WkQ!aXwAA$R1WWmrhTBq3)?6OpmWm0?%Bi@^
      zpqydI!AV-(JO_J4?`BEpXCBXZNL%fe?2XFvRn{<q(XPqd`D-GmRk!Wc#i}KHJ$7`L
      zrX(YRW;l-UmTlAb1y?5>*)WW=|2|$+%4Fma^DE981*iB-v9yd>$DS?}zd<dO_Mv@c
      zbqoW1s(gc<B0*1(VR=-_NMjH~e9PA`&ajRbf^DHgo5RRorNS=MU5xGFQsoCG-VWk(
      zaTnJcd=wj*3BIP}d#16EJ74&J7;%Wx1HD9=Uh$Mwk>k4;xzvrE=8>4gJ&s7Ye-K&k
      v$Uvg7hX*~ENmhg2b=+w3%?XAC2=gZcH~#^S;bAB11w7(gwvl+777_acPm?e1
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMYi}Dx6g}g|uI(;K+QexR5}s)rJ0Wg)1X{O+#HEQ_)08w#NqJOjdlPT7*)`rx
      zQ~1me;0GX8LPA0!AD|+R1QOyipFoI*Kp-9h{srR9tP_VuLM^s-=g!Q%=bkxt?tbz2
      zC!Ya0hSzjN1oGF-8|KZNzizwBxw>O6<;tdSS8`MGea7-v0<T`Ic<$xm@UGdE*Qi<z
      z9Wj9}36OJ4hR>F-Ta`eECeXhdwyeB!VUR$~v6cb>Q51+0T_E1Dmup<n%3ct7t2Ba|
      z?GGOn7%lC_`A>RzhMlxsJ2)*cK5`FnnFUfRcvUM2fdd8%+?PTWJq9|ECdHA=g4{W1
      zKu1Da{RWbub-#gBXbl<IhlD_9$#$&^YpZ3eF>jU~i-;w!Vmb?E!<O^bVoV-T;MCpI
      z+^aqh+_`K8p{hmKw*n#_2~VCg*MnTaTdjMp<p%kT%A*!T$Gnb13|FO-uHkA5!#E<3
      zJtClw6#0|dh>Ac@8=#FU&|&*w`q{eq`Wg>Qv91d2tDCmlBDPbEJ1DgQryFLyW>@@t
      zm@tK-cwEOZf&Dx5wp|Q7fhPr$LBn)?#|)S;PM(<s88l(wX*?s4peO~;@fy^AWY@{n
      zT0V&rIH`l;b?m^a9RsJptCK1fr)TD`P0vj(@@}_ThS4(5a|R|c#XMBJm8bh(sxx&y
      zq;$r>^HR*jlI=Ki><yWH+Q5v=6rU<h7S2n=a|X^Uw`#*&mu?h&S)jX}eOmz17B~64
      z!SHpv8q|2{YgX7jao@aQRav>EneCNYNp;%Fy|jZ$`aeGi>evET<Q?jymY2M>M#Va7
      z%RV@`_lq(vD<EJLUDs+99MktLU&ku~8M$#+9C%Cie3tMKn>5NN&Oc<=@(tOuYGlW%
      zk^KsEb;*9`JdTJY&8RNUu5lLOcqlu%iT&9vbZ5I#o9NBzo9N4CKStjs23q6bM|6zf
      z0ls@x!dp!BE}`B-58lThKEQ+AGYCyUl6#n=z$19Hm8=9!CF}bX!;2D|PcNTAJ_B1g
      z{2~2Ad`)3A6<%)`)4~J#kU^IF{AgmVg)B#zH4@vn1LN~uoFY4%9>aJTDFSjzF=k_I
      zC>?7eH`c^cC-kw~INrpwW6`LjnAVyo&`!rW>r-}Glf0{HWl*jtYoIFq2SWebI2%Hw
      z<FRU5i&dK_rZwG}NJz}MGm&H#<&sXO6Y;o0kyfp3Yc0E9mrz4NIu?*)yAJ1YfZV@i
      z>Azxezh)i2;TgZBF5lrazQ;xUfGhYB7JkACeuj@<@Fsr6Tlfuc<9ED+KUl#(S-HQI
      zPD`N{J6dnFw5C2N;RRKR4P4-bib~BeODm?Vi?rk=+`x;pG_tvcIdagMcM_MlmSFbd
      wnCF<}&FjGBR_zWGRibIx(Jd^r&lcW+TZ)&wq7l5L-ix@(F{LX0GG0aGAIV$D(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_b$x;(h6g`&=4WWTBL}qXRO)${nfJzX7Kp<67C}b#?kK_T3O?Rrh1NcvFbP=mu
      z_yMl{5w|WZ@9QLhLs=|b^c&8*_nvcy{_^9~X8_Y!*3d-A9f=chW_YKjePEO=v2W}N
      z&ny~CYF(Dz8{aACi;lgWAIsambZuefTyZRy<-Vv`{tIbW)U$>#A+BN>mf%S1dq=Y9
      zYlzm-27|ICMCVM~^ydkoWNL>H&N?L-LkO)pG&B=B3Z^YzR*v_iyCwE4N$4s#MPcm-
      z*Hrg981@fMkFZwwKRILwZ3og<64#`8aOem6@&vt(?wTe4kkC>VrX83O(#e3_5U0M8
      zb&ku9Ep0z@fvvitd}tQEOg^95iQyXhH1rZWgGwo<hJlWL3~+4U6}D#ypL32R8%{$y
      zhA~2DW+7R}a$GJ*GIhZcV3`(N$4w142<_+LgBKmQFvewGDr~QCKYsU9vTp0RgCsL}
      z=M3Gyq{gI~S_Tt3?jp^m`=(`Wa+e7jD^*&Rf+-z_VvFpq<+oN8GOgo&z`we=_*#)Y
      z)bS{YP;$j-Edmt@J(q<wN=cvtLifc}qhQ=EI^&P~LvNYR6DP7nh`n+uZc*k;H8s6|
      zPVtl~4YxFJ+tSTi!t<o3VTq8s@(>Y*{`D(x#ymLuMff)h^T#92w-!Dbyc6${iI0fA
      z=R*^8UZVl{4Q+hZYX)dX2j93`=;T#7Px7vuL-F`K-Y&a-zvLP^ckQ}@D~12++Krw%
      z>sL-A%5)p);Y7HKM7oN>*+}{WMynW4hgeKJT1AS1$pC0(psfbnJGY2e@gUtFQTJg#
      z5%xLGMfOu@<wQH7Q5V{%2R)SFS?|R-^}(P4%+MefXc##f!8(lwdgp7J>Z!6i%;0fQ
      roeey}Q!b9eW|84WsM8#uRHj)x!x(4Og!!O^&#}OJEU4@vzc&8_Xl)fR
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTUQ%Z6#fnbQo?Duv`|aAR0|e{N{aR(O^b3V5`-3Mp{-X2<`AY0lbB4n_-3`b
      ze042d`U`w^Ex=VDeDuK|<?`E;Ar~qvO;+ZdowLvW_T}4q{`&j(KL8A4CyE+{#1nhd
      z-j3(DTrU;RrtP)(ik){?<Kyz2H2J4~CYxN%c#Fy2xlAE%l3uppPurf8Hn}Jw3KuI4
      zm`&sP@v`EWV`qJnQ;2TgTU*N;UqK})?HovvtnC?vj@e2pGa>Fg&k_pt{<@p*y`nH!
      zrFE>ca_yGux&ElaQ2+n9H?X7-naDV%0Se6;F*L?di&hPd(+aiyqR=$!dgg9nW5whi
      z*ehuU&^nu0wbM&>&J{WQGa`;F-2U(IFXxzn=nYByWX?{djHA$93@2`H`SFT;-;vZO
      z29_Fd9$is%DhyQS^w?}^bfZV1(J9xP*Q?x~NqQ`#XQ!uf_J-*_D3MSj5yPvv7{zM}
      zmntETxuVgFK81#q@y9a-&taC@`-^}<TnlE^x4l%_BpPrD15xxd#bUeqRKr3&DYYHL
      zWei2}hQhg$*5TY}#6c28i1{ceWKv4}rbZp=1?8&7wZPhrSi7O|_JR6iQM{=UEh^s9
      zxGjoxTdw1;%hh)@-j#pq*NvN6_hVEa*O<Vh!l{kSrWx~`1(UU1kNoecX5-96W+R*N
      zq;^Sugk6e!Iv*te-)l^b6@@cpjdHdWVgXs^2ui9HnKPd=`Mhz27_%C4xJ%d9q>2ii
      z$JCf*oyS5HAFw@-F000UJYbm2YDL%5a#+rT(Q-hTpr<9DOByH85W^#U7{z0SSE?{7
      zY-xOij}=<V2y?b)r(~*h9|8$)h3APze2V2LK06dZwU&krrn7a$q+Bm(GETyP<gCJx
      zwURoW3{t&d(#B?b1<YuyiLqwmIaQ|Qa9zX26O!IxCx-xCM*;{Hq_5H%8}N9G!}Fk3
      zqWvYRtTA!bH7xUqT=&ctxh@Mce1gkEp)9R&I~{P9jJcmF<W|j;D|77Z%X5E73PUa>
      zJ<sGO(l)uoc5NvS`S5K(XW3SKwM6htdWySe(lWuyQUlG+GEOPiQ&Zz4pQk8YMGe0|
      z%o^N7ll2=~ex+1{GodChi#F~x^{It+oaM^EaW1s*9W4rS!rDdCE;{ycVa^Komv`~{
      z;64VIDGxi8-lB9}q!E!4{EhBotPI&s=fQe4VwoY?xWV-%Rst6;6k$Ra2#7nFq7#j{
      zg7+{@rxlVVx31BS1g6TyC2}Ag7;7&cmW-*;n8HlS#Fx|&6C;+yu!mt;ukTSVhWGwH
      z?(Jcb!s4H3mt`Lhi$@(V@JS8I&>cZ33hcT~G-Hb+e;a++;h6iP!kv+lJ0m4`R!i=<
      zp*wv?06I0WYQ;-FM#|8|lzv4ve2oq~M-RT?3*g%d*uD~MUkR4;Gpz6TA)h2@#@QCe
      zIoR3t0;vdo!RavM&aSpdTirgMma$vON8kry|Hv?Y!T^2_a7Tl5SS4Hw8DxX%SooZ0
      il64EYkXaV;+=(R%K6iCIFHovsGPk(O$mhIZO4UD5_cZ$e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7H`+F2u8Gg@_WRuMR3D<HF3Pch%$O;jGhC(6SHcbi&B!bu3>=34GX2R|)H><^}
      zz0lIDsI`{T3)Wj{xn$9%B6w@1R{sMZfAd#;)F18R`_0VG&Lm+id7jPLb9=w{yx(`e
      z^X<(K-@XQ5CH@jeOkvsm`VswDs&Le_22;a1{Xi<C7tDdwX8FIxC>(O^;q-uQ?M=r~
      zqp)Dy^2i#6dXtNHn<oqfl~$PCWm^SDx12sbS2QNkaFarVtm!wi&OsSCr;w0=9fmo0
      z(2<cP3XR!{X_D*-o9#|pj*++Y+_t<vWVCdL7<4Ms9*|Lm`BnCCnKon>3&sxJ%I1u`
      z!qUiU<A`B7sa{!;wuXyNk6CaG%gA$IU8d+bwxzHpvZJbUEt~D4mEG)aB*fI=ygh8>
      zo#TP^B`#JfW9U{PwacIFI;dNNM#wZZIiMGFj<`c%TExDL5xRc;K+d#GXM@6|wq<<^
      zHC=Yrh~r}l+rko7ryJ3Ci)Xagu!>?Nf%#ad;ZDq@7VBMG4NzFDVK(mI*?LUNxUV>r
      zG4gx#Opbn-)?*LoxjsE_O5Yt!U=kLRn{&`CD6~foQk9vUa3F8!j<J`qwYDv?v%AY4
      z8n!KZt}_}hE@UvdH{F>aVcJ&%3U}NJLZVb6H<uGr^KNabFOE+tw1(BK5}=~hDh-n{
      zC5}%i%#>{@{iu`LZ0EB^zDGZ97o7w;urPrX)@WFZb)-@-9B(S1;%@TBdUZ=5WN<F)
      zlRcdp*5hu4ra{ArIFgsQEh<cuXQy!6s9`FaM4(L?Hj9&|`ZD-&P>{JT8n((@vp*Mz
      z>&|Z1utR2>{Mm8{b25c)4fmqQJJQZ!{cw>XQq#6yVzseo1(J)Eof>ut&a_}Wgrx9U
      z4ZCG}dN3WOu~$Q%OEQ=*A0dv<DXb2AtZLMSuWthT@r5`(uP`^fKdPjLFXBrKReE5L
      z>BuFR;VYlY@lL09J9%bXhG9RxB3DUQxF;H5Rrz$fF&lwe)+f#z&@de{1lG`S0D}s%
      z7&trZym`X57|NS+=Abpi3nG%IC0zPpYPerk&WWttV;pmK*#*-v<;L$vPQwtGbTl5x
      z&AMI=Dj%!-ez;jkP=_@f2GeSssNT|<(F3|Gy?}Kz6mf(JOV4JR4ZL-3cnALMOnZSl
      zW|VuFp(U!0YdC?gG9%@UA^QjgpFJUr7*zP0hOgs6-hD5Xj8F3lZDVfAEguAt{TmvZ
      zF->TEQ^U9LZOYE0xUjvpC|C|#ril=(5N33le~};2@F*VRH7bKuU=~dbQ(i!TI3A~#
      z;SjAFQY|YJIEB*^j87`8@Zif{t-6!8M1!X_%)~4Sm1i|Phwm_;NPFU^jIXWFzv_c0
      zhxqPo9b#1iXK-5L?|BVBzza-JB(Z5A>Vw7O#EY(Q<=>ANHJp`m%=bcS;-iSu&uMsB
      zoIb}}IDy|~)vFp_6K_rrtt$H~jvpy>espJr3Lfv-NZ>qvEYACh!lB!7UgY(w>gSem
      zM*T4TnTDU^4KJa4Y~-Pd0B78{&41$D;C%D8ℜme#Ml)1)TPtxLtYUfRWD|S+C|C
      z6T0JS0yl$fF_{DlyqKMFT;cm7%10*>xQvnrdX)ubTbj92VG46!FAJWb;*i*qO!Bsd
      zi@4-Z>Bq`b6vKUdnf#=_iHb2XrL-lB`6T=rH{!U?6cP@H${r2x;5Uq-@_QnsgTI$n
      zvxdnM%_X-Vzn2``6UVy>ce*Ex-nKr&v9}%@FoxxJums<27xM$gHdCIf+2gDK6#~Hr
      zAZ@V@?#k(fg2A&jk8=&j#zhJ*QKS+XQ&RHf4;9E*L}BGuKm+EY7Io~!*^8l`{f1CK
      z!G2??uc1cjDz2@O8iwsdl9$<@lxNZHGe@zlms*u=Gr!Ft3X3ZCQnVp|jiZ>q?<y8t
      z#-fYt#;}C{6EdmRvE7aqca&YmM|pDxdy3<=$*cJI*liYnIURPlY2G3%MJpFKpbg77
      zBGy;YfB@8wLeYBiEq?b*ivmy&g!b2?9m_ed@CmH&_di3;g#X>`H;{TBYm@EQks86u
      z<Q1$OMF$~Qm+<MNbW6Bv1RIhi+`~^7Kig!qri65b_)?OCdKhu_D5k2%_ygh;+SC(R
      zu1>SueUi27(^#*bbxF<g4Eu*71(%-a(Hqb^$~8i-RZLByDVn{HpU?2KC#i%FCzMcR
      zXJv)RV)_W`1=On-p{cX{`S=oMsFyKEy@EyRRV-Dng-EmpBwBqEHBzbi8l7c435o9H
      zDEjw_78^>SGG87+hMi1p30Y~I8cR6n%^vD$e;4sfSkxmE?IqZ3Mbr!rQRuJm^aOhY
      z)71scQ*WY0U8Go-DAr|)b%kQ_(CTW4Yq!sJITqk3<B>&~6tq6qE;5yPXfE3;;h0F1
      zshFH1*F;@Iqq<I6ZiE7)*@v!?Lfi*@gzy5mHA%@I7{N&&_+$wWRlYt<X-@595I-@3
      zr#LKbd8&kG*knd=MrOWO!uKmA7Rc>X@6kUudG`0QKz)Fu`YTqezhR5|dx+H5fE25G
      zpOo&OQo_PF^+P$Om=={u?xo7tS1M*_(UnmD;MxDlv;T{d|C^!kpOCq7DAdT$7~kAR
      z?g~U5#rb_ndgS#Iep&(cF8Y57`e6vHA}D`S_+V>%?hQha-W>}Pt3`dRE(FpL2*C2w
      z2kD>>g;B#OE{M2qjk))+sS^Mwd3Ah%O?0co^yE=o-q(zCO-rs~WGu)$7sR`#lYJK4
      z65P{Y1aNl|OyKI0jP+lR#c2)U)CD+o0nX@0#Oe4yIPc(B{_)na6+X43b8Rf0jUkxY
      zfKF{d=eL2cwi85To=jhD;LZKr>!{)7m7#h*B7fktWO?^S#nNbu-3u+Y(}nj^c3HI;
      s-s8F${)n4wSMm9|K$Q3SInU3ZI5VH^2Sn{>`)Bq~aUJ*!o$=cL0Z7f!uK)l5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g|_ftX&o;RSNQ16tykb1;zMKV}cbDNTZEtNqBO)9bk34+w2Y>{vuy^
      zA;FsX;3E(IDC3=NlP($!WRtsdXYZVQ=G?PCe|`S}U<Io>5)4m2@*{p?g~yJ!Z?#>%
      zXEk`}*w#xGUy1OO^xHM=iT9fe71s~Nnk^mQ)1fg;#*eNwLK$#dcE2+W$O9)_SY}wP
      z#>@WOp-jh~JDww7FqHDwI9I4MXcfOHQeYS~aRUPek{B|fW0)bCR|O+g#}ls)TMZGs
      z;|*6ZWU9W+-8v5(mG?F^MV#T;)!WB~p(~7#3M5fY1bcqa5>1A=?p-W?EG=;)JZW`R
      zT373Gp`Jn(6FSBj3Rl+3#2rjB=*{kkXd0IYZ^cGeHZYA@9Wx9Qar}6Vi8<sL()&Vg
      z3s=}uG&cg?B9UhEh0DmBo)m${-RL`E-^GHCdw<wr>r$18`*^^R3WbbJM4D*%-9lYQ
      zo*}0=Sq;Ix(5eM~TLkiRT}XfZ#1?I(Bm*NJ(-Dh*Xh_&jxbCSj5;o0ySMe&Du&~5n
      zIH79W9lEjY9|pGAaFhea|F(Ha(P1z*Jx>G`mxrMsI}FCmk9l%glKvr<PAjX?DhZ9O
      zc9Zr~l&vB`4`37*zf$-H^Ng|tMko$Y4NyUvq8Y6Xj3PrB!!6wIAsqA&a>a8P=NRi?
      z>H=f^MC)Mw3$&dxsvp7>X7R9xpCKkdm3C{i`<BMK6ZOhQjB>qRKn?{I=`{VISfZ$S
      zzlm~Srr+oSqy40VN2keCD(qfmI1=Flwc<pf5xde%uT28WQS}NQ)7yyPvv>mSH%#*y
      AZ2$lO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc@~6#k}NS-UQ@pj_ly6tykLg7RRjF+qd`Qk4X)32)Qw0E6vrvpd{;@KyaK
      zzVJeVHSxhm9{f?pGuusQF&fM!XXnhE%QxTo=I5{PKLE^Q!9;@L(JtTThfa7Py=|va
      z<6BOJhthSPY5QD+@08zI=bm`8I`x7d%DQ|n7F{KM&xFA++@8Hy301&d)jDVBQadu7
      znq!zQwTJz)Ns-c?NKdM#470ia$jg@*j3vJ+Qee1d;|jVgB++fdL=QtUrvuU@>4}$n
      z^@<2y^GZ!H^p$*<*UCJQ+K)F44V>Ze<=bE2hHjB2B8a7R5p4NET~rw+TGw&-fpWyY
      z@RZXcYFV#~`Em*a7&0-)kiRrtHf~~=!K}6hMFZ);yw*0rqJ>e6n;2slYOmiOV`BnY
      zhRn858=@v$C8{d{uM<z>xqN5kRZoe)<F)9VYTv??iQ5+xvDOh~;|}gJSfNmnl=kX0
      zvfO6AY$C^y)u5b;;9lsg2Yy2Y>ZmM~zkKM5hNhB%5s=Xc#$QNeNXc;7)1xH9Y37?6
      z*sKi)GYs7_j3wNfy|v-*1+G|;S_p%G3Vv22Vz5^|PXtRf9)^Nc(bM@1FiCn#(t~1|
      zj20cOk}ybgS7|>*-U1Tz0aju9E17SwPsmFkO}2|-fL&zB+R@rVFZ#%1xQ-ifg`K!U
      zwr~pT6#Y$%oT2~RF`AhC0^{uo#dl)_<G2^s?;|8YNV^BLdqmUy5cL{}5M|?DKo)rv
      zD4U)tX2@#XuOc59J8yJ`-gBpk`^U*+3T$1aCnDh^wfaO5KDS+IEN+v)TogTz2lTh1
      J@&kAX<2ROeA#MNw
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g|_ftX&scP(I|dC~6DHg7RR*m>@z@f=YtcgtzH-fYElg*&ROgU-;^S
      z@x}N;R1(C*2OoLxM;Y&Io6ur3m`(1^ow@g(Gw0s<`Rn@+05h1ikzly<g75G>FWQxA
      z)2mhZhF9W|^t}hhJ`~YQ9n@C263+@_kED`S`C82TS_aC7#n9iJJzt7+$bDTuXK2$~
      zG8&s^m{@5J`zOd8rQIVOeV<_}_aAxrB7?OMltl^*7hIe}n}a0UUD)VgNajpHdPOSn
      zc)MB>;Zt6!2!^hez~_}B52f)No0cKYaQE!+r?jD4q)7-;X;p+9L0A=KhLQSpJie<v
      zu_KiB>Ow7=^<2J~LJ#_E^fKhnESHPR=x4CY^+r)cS~xE^HE_<sAck!WG4wUpZ;o*>
      zf-FO3Q|L8O5xy4XrI1%ir{P?_wQ@me5h`AZ&#CqmjM=z)Y9f|fqFh|Vbs`%HUGM`%
      z{mQN9i#Bo$S;NRH39ce<H4JJZ)US#{2a9{Ys2Lp@7_k_PIs8RIhLnsJmFXj?O$}c+
      ztfpLem}F>|kpYz(aibZWwO~8+#ga5r(EI1KPZ>rGZb2y#E>w6F2^xux);EAr8nz_8
      zCYH&ViKA5#7ERoF+E0-;iv)duGd}T^%s03P<Ry?M+eR_K8)V43@!CNry2xX=h)azM
      zTa60Y@k2O==sv>0F}hD2>j<MCVLd;f_;w6n7&jXAyNC(!mUiFK?t5zOhZw6TW|VDU
      z0a@fRPTBNMF-g|&eiHk@&<W5nI!~M<+}uy@Q(*ln9kB?X2<kIY_|kNxp$1F>({c0+
      NZqeU~%lF_mtl!;DAu0d>
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~6#i~Iw00Pvpan!8f~YMN1`yF$LxKpgq*fx@g>JlUFF0DJWM%+=fWN|(
      zZe-(z1Tnf`<NKLtbnOo?@h7O~c1CF>AZ9Y>-gD<XzVn@P=gp5N8vq7zA_yPD$s2r$
      z-_q@6!<^F>3Vc@2a@)x1XQVtU?3+$;VVaxba<V(kmy9{?h_Rew6wM$MhL&>gv8?S_
      zJm<LI83N9A!|onn=uMTI?U*D%Zl?{?a7G#WqyOO-%P=V8#k>fCp;|)~0xJBd(GWx}
      zgFh+_>QaU&(u?z1VO`?cf?#M!6?43h;g%tF?@*Dz8BXm!{a@Tr6?H@eu{15L*`hTs
      z@(dkrIXYi<bg?8%M|X*uko!a|6G9`JgJ@!i?V2tP`_aM>%)5=EhE!mlDr;auMJw8a
      zXk%zDk6&)1p#ujQv^n976$+CUpBKbKM>KY|GHlXxgk^Hqq7=AG!y$AtgvoVA6hzJu
      z`I0|Fdo=bh?;{$HB1+!&7H^NW-xE4jnOZiLQ5#!J8MdL8Mrzh8rESMT$k6scy8*Y!
      zN;wUBlMErlo-pO)P=9H}t}v)G#YHP8CJi}VO<QkKzvP}MPMW5$#tYoGCB?OscMF{~
      z#D2P^EF6}TOgldmn&drn9wKcRK6(JPr}rU=N6=PD^P!GpfNX%r2$R%GdlmI)AdO)!
      z_IVM$QN$`b<2`Fo*AQ99f%EZ=J5W~R{-N}r!_F6|-Bi;45oHDS@rW|icOQWj)ZA8B
      zM2T<Q`}tiicM%{9&t6)s<M1Z1(Gt9;sKzq__nbhzL<FzUh1clATMXbGj^RBL_<&K`
      zpTkF7z$aY9XI#UVQbEHmXs;lGj~IHWq-tc)i#SmbL5iaFQ+WgQlha8m^nDORUg2?C
      hB|$#rfs|#GeJ!KR=VkB_B55^@<Fu+J-$sl;`33SOR6qa#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DOHUI~6#i~IFm@Pi1qDRpWyQAC4k+TI!~_wN5>OJfChTsf7aVP8nwjC@&v3~v
      zVB>}aF>&G2g@44YE_}p=a&Bh~Q;h~Q$(eiZJ+JS4=e+;%<}H8;Osj}7Og`nCeB1E0
      zEPLH()cBfF;htq0ccr{1yl1}CSmw5PR7yW+2z$o#Eyq@&F!V(|XDXiWa?=mq8QT3P
      zmX{u97+Z{*{WC$4+@>wt^6xMdGXLS1Ei)*yPE{np(4nIZ?Hb}ZsYAsnhImFABo{4P
      z+~25Ig!_<JYJ#D2(J^_g%w0?B;iV!AXP7#E`bb|0L6Vw49a<Ldn&Z|*m0>V|V(=~B
      z5SzmGji5<$@?6Z86X-^-iXMjSv0J6%9Qqj4YCsT?(Ngb1gt(%HehjF%z|b3wAGOgj
      zh#`j5y6{&-O_;u@&bz!$JsQYlTO*fjU${1}HQy=r2+}Gp{x%H@Emk@%VU)PFyprkI
      zO+HqoV@5|7IYQwHKX_3xtJ$)A%ImlyeG-<p#J8>bMqS<-I>x1gMh@Y%imMDm5|>dC
      z-1dxR*J%jXe_j^8Gq-JuhGc_*5tjZYlE3i4(6$yp4$OY7L@N{`m`a+n<-icN+KRK`
      znquCP<J9x#$`oW_40_47g*#j0o+oIww4+7BFimWn){&)Ba%|}oheBg}g6<QfO(I4g
      zpykG1k$4S#kF*$)B-_ab_<$5iy?NGf8l9vubm2@G;RRXC3`TAr+CI)6;QUhl9Y*p8
      z7~VlgK7N49yXYcyYzMkj3%gJr?~!{FIig`AOgBPB0UyzUPxSJcruGX4@Ri8@MpoZZ
      zz|UqWLqWQ*6iSS11cMe6X<Ww?MPs;u(XhNc{UwZ;@>0qpU@Q><77L@raI<N33%BX7
      KHGR8LgmMTt<1k_X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*XdH6#h;~*)&~J8lVAM1r)SRlqkQUpoLa6(3VO`6-8x}+=iveZr$AgI_jgo
      zI*vN>?wda72*nYH(H9<kQb+$C$8&dYH+ReM>tXlqxqI$+zWbeX&;8@SU+w^S5$_vF
      z5k@atSFCGg|EldY%S$b5p<J_kyIwva-;=^$4BVwz%MsOzfi&UCd)yN~giO8V`r@?s
      zfKZsyoq1|5@Z3c)M#xTzB~R3?Kr{$_ZR?udwm*y(^|ftBvmEP+-DJNI(A2Cwgj^${
      zH*GmqQ+R~oL_kGM{pF~J@+WLfIG)nBz;0`gGK1hH!kUrMc|v-^ZHO$^V55ok7$Edd
      z*^Zd$v}?jUXVqGQke_nvR%_n!Y-y{>ba2V`38h4+2MWxwGj&h!ZmSi-p^?POQxk4`
      z$#sMijEyFKgpl#iYGo`7!bSqs37Zq18U%~i6v4C<zSEv#?FqXd60dAs4a$>tTR6V$
      zI$@L@CZ57J!g|J<^~8ekJkf~ILU@_U75IMJ@dK;XniLCGrxp0U%<>r%IrL{Sf}(*@
      zrmNSBo)r@%JV#i^aZXtE#ir+W9Il-FNF+r_ZNhE2-k5>igdrU#)TdfGD}1-()kOxm
      zEEoS?16)CybjNB%m5Pad*w4A(Xdx(JXQWNJW$__7Q@bqcD_PJ&%Y7U)aR`T*sh?!J
      zK><h&BcigjQne<F7v@OAVOp_P;qg<n3~){E&>1T&lZBqeF>I9T9yeiPon$p(ViK<q
      z2AEaSnXoOH_T=v|$#PJ!;UidcEw6FB9&iEpvdmsHQISWY;EAT~2f|zBL+DkDWknAq
      zLuutWIxo?tP3**g{5oUeX!P~EiIXzIK*xzii3*6LYIC|!TuAYsRfHt?yoom?<d%+e
      zU)p^!K(!**yk+8CMCgKvx#;U%6K5q(b}lTeleTOHg?szvZkaNIS#ccUO|&fE7rp^L
      zo%{7%KCm<FoRCd55}q5TW*J!ER`KXS;gRR_zJirYP8hHs4^B1fE?i>5K<lyKW>mM2
      z;gS;uT*AIb-|U$s;jBPqy9Rb}M%VBi$Tu2#u$C=@EwGhISiK1=o3Q#479X^5J-0I+
      z`x%k13V!F=+RG#H*i*cP4L|Zn3Y++y<q>p%FV({sWZR6KP{3xkda(st6~G?$lmMCA
      zp!2sd^aFoK7?L_@Qd^(FFrMK5d{bkaT7QJSITqFyOUu~4di89$dNA@((b+e|k;I>V
      zM4Sr`!Qq=i@j1Yw<ddS+Tx<;^6>~``E@{~w6vjohr|rcX*tLvjr%HE`E&Yz?ucKd1
      z<;y?gg=HM*>YeBGf;?o%#|8@c-s))4wyS6vR{sdbI7(W!AQi2`<svgsDBi{~PQlAJ
      zF)pL<Gro)y-5@zxSM(A3=wl4hCt-jnu>}<%E&G{*?N-JzUhRTJmGLQ8#%CHpj{+c^
      z!f6H2P$~@b&PT2@z0z+OxyihiF~!deKeJujt(;ZR=P>9C^wXED!dEEJ*BGL2G$n>(
      z-G^h{xyh@DrLeXbrVASt;kO!9Zi8VFr)7gw3lB0?DPgbFjS`uO_WK=Y=6emKHwNK;
      zt3bvTNUlgK1B`T!{6C?GZeSg|bk9{TM&mxN&~*8$-Tg##er5UZXaFnnr{(3L0PZWs
      zU2Wlt7=$<Dyv?h;<vBs;`FWe4cjTUSb!iN8YXberH2z{`{)S2a@NM&Nh#Z~Pe4MGg
      o%2W#P$#aE^uy`yoLXD|5xRwQvO&%}tc$vpV9@{)RJT4*qKVE;0)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C%T5$Q6g{`6p_#U2#$g=s3F-*UKxoF53C4w^CL}Wwm9QXeYMN4t6kVjd$H%Am
      z4{S_)Brc3=KgxKkXcJ6az@i@aan3z;Z~glH{Re;^76N#Ll>_lsypQvDDt!|lY4JK9
      ziCiV|W4k|5nM?|keHfZOsoT8(KA~<Au@;=aIXd8YfJs8rdB=s)ao-#siA*q#Fj?%Y
      zyuHSC24^p{&bWsvRmCGhymTI5XPe;nS!@-AixC1$g{Ytwp^7@8vSbr#1C`3><HM26
      zw!}zFLStYOp|?e*tX(>NE1j@<j{5B$OAiwFex_YK(SEvD>yGUoPiG^*EFp3YR3?6=
      zv<z_#Hv(KIbkE+l2sd$y;OT-eSC%gM%Cdj0&JL%Uo_)BhdTN;b0MFbfgs;pvOQaP;
      znElUhShYx&y^*Fe>uZtclDk!VnkL%h{F#Qb*f)Dv<3Ut-O@QikI}iSQ9<M4w_FmxI
      z1GcRv>@I&n)cuC(PcG+@^|=V6X@~~f5o4@(22DN*m(eO&cDYK0eXZ_iM9V*MWrf#Q
      zT>Xd%@7O=)hzH9!ZL{bF8uSuP+H$P(C&-eOIWUKLSE+^DeDgSd$1&VRn@_9U>Hwqf
      J@$U1q@CSyZ%Sr$M
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-BTM?6#v~MWFagqg`&iSLTzfvwlr;_euZKowHi&S1sW`Vj7zeWWtI(Q6Iylr
      zXtmaF9Utrr4}I{3SD7&weXuijMrZmL_~e8AKOBE|H<;M+ATZ44o_o%@zjN+6_x!l?
      z_s_ooIEq&l_yo?)>r49OgmcNXUr#Jr`o+Yo?wGm6nEX9u7L8n~P<-=DA#Yf*f47-}
      zo}Zd48hSo<elf3?j7fQX!g!->I3)!Efp!U-uylf+ot-C$f}lW0T{}^>ZGF}<1e)}G
      z-pKPv#<iA9rj^K;PAMtSOjFv<8<zz{T0kip3xy@=+v-U*TQH~FIm4pUj6kq7XF9Q?
      z0w-O(tzV7tgTtn6mPQ1O{_TR@d%5&|ig;EakYb@*Akd{^C)z{s<3Sa>&@JHak7uRj
      zAr%Umr4&`sf{>K<sA%<ceJWH>_ppjK>=4+QF>PbKyfAANr@Vr9WC}Um%IZZ^?rX|`
      zEStdOHt)H?dte>??4y8BHz~4n6pOA{wp%fPgo48YJO0~!6-U4(1|0J(z7bwN9l{`v
      zD;N?Ok*-^BtcpkRn0#EhoZ&dJBLeoe+Z*3R-I5_Zfuw>b1+@Qv6PfieU-f2EO?qi1
      z+?mR{qs-tVIH};N^%-rjsTjqWK#MnAqZTJB?1l3XQU%K*h*_|c@fnG8O2yOiM3DWZ
      zyS&#kDxL*rb-lXm;pnDPZkUT&#__BKeqKeU5%`!?j;lC}7wXXl1yWmx*1%KAblQtI
      zp<=QTdPv4QuOcglvGXFCF;%cjhFx+}bEG-RN+G+vFtJWi&D@N7%ods~l#4mzv?=MX
      zdjn=YET4gZnzn7Dn6h-oF*u8z8}KbT^nS)gA34C!uL(i;Bt4MeeUcp9mDJ#_BnEdS
      zEdcH9l3=*^^V@|Ep6;ad70(5^?$-`huv_~P4`_!f2x~nRM6__Af*!4_se)e3U%}p0
      zI{L7Wzk3)IxWoh&8Mep(4&h1&ql{iGAx7&Etpw)ZBV46)fQk8Bsh_FIMD`<2UBHzz
      z>YA9=L3De`i7VVo+g<Gk>|Ms6TzY<o;$ML(#h-9UV3<<4t_-`%6IAZ5;#d`rUl{*2
      zauZ#3g*>^26VuUqwc$0SrfYtpiqm!Rxq;g&2oBu7MWh4KW$de&>Ps)h-pFf#d=+O_
      za6Gb1zndHQMd%lax_;+Y&{hLj!_+DZGlHwQ#_L|gb$9hjokbUQZ?oX<Ac}YSkNiD)
      zUcnf>r|<z@#D|#2M=bnxyieQ5_yk|$Q{3S99X`YN_#9Pyfm{6U;7j~L>tFcBZBd`w
      zguAsCMe!S^*#yBDtHcet&1ze32OH|64G3y{7Y&cW^ZS;~y5XX#o>vXkhYLL8!wg>H
      R+CgcMgY~kDHHcT>`v-VeHD>?-
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ<O>fgc5PcInjpMqMhLW~?w4|rB2rS@&lnMkDpo9oTYEp>{(#GAEMX4P*TL}LO
      zE>r>uapp%MW^I$kM(SmDXZF2$vv2qJpYJ~bJivAZB|`Iq_$a3S<dX_d{P9Q}`$I8N
      zf&bjZ7e`7*aZiMD(5}EHY+r`%%c&l;2~H48p_xK>-0aRXI{VS-I0|K`TRXXfM0j>M
      zXtxOVesm;V5UL(rED{#>RH*b5g4NtPBrJDTDBql&4rSaI!;vJ^x=|oThay%c&x&@y
      zl7#h~+}s>4EL2%dzgH8&ZVq;t9X#R6iPXI~8p~LJ?#1$0O$n>b^kV)<u%8DyW?Neh
      z>IC<~OoGSMG=Hr$;c4C`%|`kiW9Q70f?o+@)}U3v4Z>Q^=?gU%8@T0R4YvuK*?9jR
      zywHcRWGXXNLL+BL0xt~4H#>;V;y}Js<`L@ueVqGdE;RThE&g|ajVj7m;Jm`wLzH+2
      zI6pvd&*6OGeF+{%g8-gkiKCZda0Sbpu_P8b8vY|*4X(U<j;mjJlagItfmbZnnQKtS
      z3Tj-paSf|kgL_#6t9HGp-Jhdc8I^s;dPd#j)yOz^e_`VrZWj6P5`I0!WPC<r6I+Ss
      J9p;wM_zNW))f4~#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CTWb?R6#mX;%_ebe(^^}tm)hEgq=l~fAcc6LMubA}r58|qnQSM`$hsS5x7r`&
      zgF;2<gFnC@C7v@IG-{E`vS;R8zH|A`eEWX-6~H~*3E&YPy;1Mfag@I|>0vZV)FA4s
      z+{DpSk<U${yTdHYwcXoZ-HKy9Dz=hD%={PH2Ji_hlPL!5i%UrKD~?bth9+OVOIYts
      zhX1o-hhYy*YKq5%jn;qQ+WQ2*n;qyn2p2<KK(&DiE`<m%MX0nSV7g~g{o?3tU)x>P
      zPc&h+m&GdCSJsF=Hu};y;mP^SpGB06q8xvOnR1lKWR9Uu`xSu(geh0zr<o0hx_GAZ
      z*qTvcvXn5_YL_vI;%)5|mY3G4V-Yt3Tqm^8&1{I9xJ6hfTl#IKyZX2gDkN7lS%=Wr
      z$&PF+t7ozn{(d1Ff+2+4X{v2EQF*SJxyxs~8!Yo;D*Ozo*_7?@t-_W7HI{YOHsSFH
      zG}hKXv-pDW6Kfu(#pXP(8TS%R)<edKbq2G1azV_EvpnEavUvUnkq%vT(L;xvFTG==
      wL|nl<`*}KCWhtH9cREm8J3-?F*FOG{$xif88)x#c<f3l#oYI+OT*M0e9}%Y1$p8QV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-A^1<6#re=c3`-$d{p{Hr5{*XzP43cm8}RYty1~Y-L8V4cZUlM4m<1205<VS
      zeKAp^(MC=5#gE{Fnl!0HBZ={e82<p@{Re#a#dz+_EbK0&so7-a-m~YN-?_ivxo7_P
      z_m^J*oQJ2OhGBSFtcf?1?z&l6OcpJ%kjx9$G?Jt0dBwD3ddaq3>0BG{8YvbXdrfAf
      zB@NHC3nRf(LyX~Ad6tp9>p8;k!v7f#dP}C;b&jETqTKDSU?~c_WEM<sh+&}nf5atn
      z46(F5FYCe3z;OTv>(I#1EUK#4QHwZ-hGvHQLWHCxh=h#i5Em(xC_Z5p<kad)UOHKk
      zw<JUBglz~bCmd7lBV$Y*kYV)R%iM=cI(3|gBW`D;vtT<ba-N|xDo(6>Nx3EqUNR*1
      zvRYG_^*DlK8jdm~?wMYW<LF?}i^8EKGs0U^M^oVy9B8<on5#BxILUCh+B&*wTJzG;
      zaRR3~&Y+7yTNBo*oL*o!TTbwFewi95mDr1?qZ4tR&hsEgHxeY^qV!Y~PKgyF|4{cn
      zF})mp=%<z;k!686>o3PE3AzU_DmkTKlN{$1Vx4D){^}rc#qGl!kKh8;vOt9x;ccLf
      zuMqoc*-fEzkK%C+k1-r67o^;WV-QMgI$n64<h;s2WS5R;+DT;zl0CsOgeMtVA~rJD
      zT~Ds$Ou5d`69ts6a9NQ-f?Z!qHG-su(F#dJF?5XKiiXRiRC&q!C*ybuPg5epk;0Rz
      z(l8Oj>HVoMKhsr?XE4FgXu4TPtVzcWFIY<yUh+-MDLSV(rZL0N=1MQU>Zqn2Gac$8
      z+qq7>RLA60%yS$WWEt8W=^CQ2H>|ch5jf^J8j)3P_X5YP3TZGbnt5ZUu<S(*FEa3;
      z+oPIP@|QVYQ3|$^B-NR9%;7aPSp>tGs?zrKAYEXEY;eqj^sf_!A>CkFrozyYuy-Gq
      z(ZwjSrb=AoSW=wDiL=TkV+7O@R&wW|!cc4Hmn%m?bZZ$H-RGt-x&%iA8Kg=Hg$7H;
      zUUiJ1FKATk{gw<UJ}GLvP>@dA60R$0fVSWH3xiWM%4_MH#hRPdJf~F+V#IG9+3RUH
      zNc$Rk^Pb+Hq4%`%O*GvMyjtj~2mif8k#D0_c~O*lw&4)HY51c(%)_?G=Kz@+*ksQw
      z=(liq8+}_iF}sD%*~oGmr#A6`+W0u@qsPa<CeBZ8peb~C$j8OWzHPj;v%S>kW7tP}
      zYR7VMFcz)*eT;vBj%ar@<|9I;G|z6}-JOtYYUShk4HUO97ZpQJ0Sr~LiC2UCw~^mQ
      zgL0--2{A-D9wnn)1xV+veIZ)<DB<nWI7c)A?-Q9H5P2Ws0zSepKBmF(33B)pdE7t|
      zpW!Whj`#2-S-+y+*YNQTe#5u;9pB+kY~U|^kH7H){=tu|7C$i^Hv?IQl(4KJl0~gd
      vER!%btRAn!BHSF!oD~$P74k^Ird5oxXCqq;p{vGt0}j1)ilq4q7qR~Ul$mc(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G+fp1=6kTT+7#I!&hKsp@gp0y(ncT>Ym_$GVkpUG#3>vi=8t6F8V0RA*&whZ<
      zeu1yCDj`;^Qp<-tSo)?P;1~D-YIN=Hrs<)Els?S#oOAYGd+oLN**!nKc=jEDGkB0d
      zOyS~vW7~L`aUNKO^~_e@Sj(&!j+M)d%lDL(HzziVMaQ&n&-8{{OO{FJxI$Odd5y+7
      z-#8<VVx>@L<%)#~Be!8Hw9SfrrsP`r%(UTbxW-D}9HY&GwO%mXl1-b7m29s1n^w^S
      z9`javoM(tXc8w@C?uO;`o>mwvJAY|T;&#<4Snf52k^cYTH?X7-pD3=Hbx=5>QHNv_
      zRcO|zM@pfpe_$zrR)v-d87I+#X7PJPqZ&2zpS23+TxoN~v=>DZh16^@XXKX*+mdy#
      z8J7eVF8_C$<s}oPb5aSBOrgimH*>hE14}~nRgEs3VoqBnSK(6Nl{eTg^DFnwoa@&k
      z6Wtl`IF@ZGs5ON~|6ngBH!aCF+DBeNX_?ELhAj)PdxS~9#(=0>?HwsJtedWPxaw!r
      zeIO&BMOmW=%&^7?GE9i>3a?d2r~>^2&L}h;<Vl(YnKYf8ZEd-h$Xc0%FU5ju^O}t%
      zS^H6q3pl5cp#Pk)$(qYA$wN*rYosw)hcUd7z*U8TXyBK2w8k}DSE!HNMup>L0^f>U
      zYjSxL6A6qf9F4|^+GtGTEvjufi?*?C+K%6&%?H(97QQz%rqM_1Rm)~?6zv_!NltEQ
      zye%iSLTxY6tj0-nuol}!K1ri@G~UH~zN`_N3Mc!^s~IKeC9$Y+8@!dxlu<kvb{yB-
      z^oLOTfU_`&j;eiILcNdW1n#miqIw+eq49y#v6W$cm`TfFg?9X+#tU9;{SGf{0=9mR
      zpKS$S$GtW^JQDA3icuDKw#-P!iL^P5Ror9MDY_gjnh#ysU(;BZeJ!AS2dseQOk1m~
      zW`!XT?fmg#kyo(bN%E;iUYbDfxlR!=i2}9~C{lFM%1<xw()bKEo0@ekne)8)?fuJ@
      zz!j1U#gd&f1&|{#e946Goe{xi<e5Ujv?ub0<CvU+4WXfw7^iq?s`y%qAucnOtAw|z
      zZEBL)%-=F_>!JDGz|~D!$M|eZ4?aO-`YD>y-=gL2Q?xxn``4c9QGPdipg$7wdjdSe
      zG42Tj9dR5d_+)3IBLL0PT1eEVAESM6XcwJ#_Mwtqyr0SC7Z0Y(Hw|Fugl_bB(Dmp=
      zAFbJfNCnUr_>{1<0=<jZ590pHe1D73s}1RKjszGth$%U1kKQhZe!%HRT*n}(ie|v?
      z9!9%w7jn}9H-)n}7oc4U&}!0yyEuOk=Z^?ZO^8zy;#>?_eG!N@Dma(2L(fq?^oR@_
      zAL9ylZhXn|c&n-GSDvywn8~I^-r1r3u-&L7{Xdz;UzGT7R_O)9{=<QzFsx#{qE!*u
      zM?*@Z0i_ybFc-+q!5k#{Ig_j=ZimVaKF3iZvWxk-;ax0Ti64uT-<@oP#Bqj)I>P@|
      zO?<DX(5PDYC!iH4RJ#}aybl%z?+Aj&*h(Mb9)mTqJ3qp8YSPMzevD7p&k9CJXgN^5
      zvrHjrILfjT=w|NA;x(}9CX*httG-B8IztwnVO2I@1&L1uaZ*7XCd_2-e}m0^Y_DU~
      b*$8GT#7u>mIg~F37bQOB)uuR?wh{jqpfzFY
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DU2hUW6g?Mck!2N%LTjzoR<sK!+xliO8j6~<!P*4d7oUb@Xvb`K&F;4KZ<$m~
      zeDDYOql|ahO$tg(eVMs;_I{ju?%AKezW)HQg{N7h2roa1Gx6CD&y{y%e{#jp?u$@4
      z_O?FXC|7oleLs}J!A`X!JV&}c=}IS3zSka~S!4*ylSSJ7Fbaed#or0@(Xk4vn}kMp
      zGVGtdTAcP=c`ABAXj=b~S34wRI{rZBK**bz!@PksuA9i>2B93+vR%Q`_M(7?Zt0Xl
      zS9x;p^rSC?_oDAgLaFOJ!aWp$(th%o(W4OBR|hnkG#;<O3^9rOG8p>7i5w7C6Kvu<
      zvgMidB0FaAwYC{$4izkAu}G+0nMV`1vCKpad67=MNZ!^I{N0Hqw+yV{UKV!=OOrh&
      zV@#~#KI0E%6iY!4bOpjff?xTzeqhA9+PaAcs1k~Q#50X0>%$m{J)QB$#0D(x;7sd{
      zkhXNq3hE{rIwJ45EX`L+xc(7=7{f|ja5jYmqvxLnj*Rgx{w?vQ9-3h8c%BS8t_VZP
      zILkAIk2O|Un*Ss!7PZXSN+H8CyT<Q1_MWky;yYh&e1%b`Z!o`%g9>~a`V)09N82c}
      zZ*mfcVgV(-2{&;oDdQ$(toj9v3zTVuJD28KVvg`oTO-sidsG+}sEa(kMTPcwYwxf@
      i`{RC<F*Gab2UvKFC)_cGCihRl#wOnezYr6?h0Jg6eiN_&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8BH5Is{`maeNU6#)?_O4WX7S6{6$!K$RDAtXRw^>%wpFK&06yGzlZWrCXc
      z;1BRe8RxbQ)<_zBxifcm?wK=ZW`F+r{sX{MxE2zG-4ihsAKmCo1;_5d7hSh4BIUU+
      z&G|<8vfc~BNa~|Tq23e0u{;d-g_c45N@?lEq5ibv#VQOeBnfNNU_0$7*20U&-wE?^
      zPep|%gi3QdZD!3HKYOkM6~7=<i~sSi)FLG7VMnGxxaJ^*`2}1jq;|utqk)Y%WE@z?
      z5^jxQU7wqC4`R(a)XeKlQw4JGwBMHcP_%tX$TdSx_${H8xle*g(-om{b#AkD<c>2e
      z8Y{XlbvM*~*&*a79K~7e${~yIjzxWKd}f=*D%LFACX}u$t%EyQXKlJXV{bfT9^hYX
      zyq%hV&Bi9SEaVBR(>11Z9Nfh{!isnKq7dearIx`dIJj>zZ7qkwR~->c6MpERXu_73
      z1EGSLKrH+Eh?9GH?~HK}o@!4Ts$BZtwXGVq1g8-MQrCSEMUv;WF>{%@4<^fh31zcp
      zb=XTF$@{Xv@igC_@jb!TDObM0F6W$Yxbb<EwaBM!zL7wR-XmwS_?0<tVu>xU9F`|I
      z@7NlgeEA&qIaa=6<HFm%@E-hu&M^(p32gd+CGxRJ{ZWbKG0da{1EPfT2)x4Z2|U7M
      Mwl+t2eyAe(8yE@;00000
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7D+fEcg5Iwal46LIp7Xc9k6mf4d;sp_m39gD5VocC|?;RRwGdn|i8j#O2K}>w`
      z1N;kp_VxwF>fI4%<0bgg)!kL6PF>%BfBO!=EEXJO2y-vQu6XIidn(-Ywga)@)kUm)
      z@18v$sz6q^q9~U7`O4IC^eAe`CEuthbdV*Crm;))*l6LKmY&dMwp2WIl~7(yoBfkw
      zkzsdKsLWl$OyNIp#Tp@7jn-uk2q#>0qN^Jx3C?mfVS~=01HCRB<O!!+j=ex|#%o4%
      z;)@pFyQ)I@WT#P=`kAN)lF+{z`68$Zt?WDb%-XyN^T&^_t#F)TFIS06_*CkRNH^p<
      zVLS;*>={q)%FuYNDn77x4z33y7<F)lP&{@mU7W=j7h{8a=(l>v9czpFajL(IIh@CY
      zgK@%0nj>xFViFe!eVfu)<l260WTU3!9-&kywz*ERdhNDMG=*sgmk85oqQ4_tTt<PA
      zXIk6K`$|jSM0%gU5>`(|O_pX7B^PB>2m`S+)g7(5gegd0QtF?GV$CK#<H7^aYEH{t
      z5vX-xxcwc4mhzg5>sIM#xh+&^2*ld4X1?B^TgIN&q8;r^n>%6n_idW7xf9%#FqFC)
      zh&Yx!Rc?C6xY`^9?<(c<cB1)~L6(QOoBw<GwZQKTOSe>hja;eUeS=f4npS;$=B$oB
      zqLV(L-&!%so&y+U$$NmI#E(h*R7wZP9bh;Shd6hLi-#y4y{{bIW`FUF+Q{e=9Quqw
      smc#S~lk^p3`qtzfYQ|Vec!3IT;3hL?FvoFZa0~M+bNs`jhug^h0K1kr3;+NC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DZBNud5Pqf{6iVfe0|9v#5$+D9g0FbQL{CUC1WnN6^Iln?rnF>RIQR?x5kHe4
      zCVub-_@mU>yLu_229suYc02RTGtbO^`~KxCfCVg@FbGTU#gRC6qPiFCItRYkacUy+
      zT<3*eS3O@=_QEid>fPG(hODoK{<c)l-Pj8Q6B)vAI{bMpij{EV=6^y*yyr#J_Xu<A
      zX}5o7DRbDe7kKeA!hGRB;)+#5rV?(;E)cqHw4<XF*9aEVo^0~A(1xrH6FI{5Cbr`X
      zu6r|9Tz*+YWY@hwZXE8{q<SlAz9i(=Ls$4!p*(#~E;G6`Liy?hf0vI7&9YW3<Qu7W
      zLbWfq2@?q`QI8#YB!k##YPq6q=GTQG44b$?C|+4n8zUHHNp`rIZnK%(w+qByr5atf
      zFpfzR6NI63j<k=Bo0uZ>?#ft4Zk|N3+^>4FPAC<M7obyFor}JWMAJ5IV}{VjP?bZa
      zxXhQHl5QNT6GAQlbG)z-%pnDoOcV(-X>NZ{Vq*?>SZP;D5zE#D6UGyze<3$nrxJ~0
      z-i8C7-T@^eR|J>owH1n0t=6KA``Xb|@<4b&Y~mqTqzP)gwbv`ht~}74CJ+zQXhR_9
      z&pqaW-3$+vE45gJ!OQP(UIP>CwIGnH;)^JfJc-#>ZOw_{4iS$#K)IZL3v3z4@a%W;
      zeHWje^4Z|sF3o*{Rm$6+(R14H>gCna|M+XCAINJjj?!x%`g!N)gMkF+LxQtdI)inF
      z!E=nYtXt=p-TH|3t<%=k-Ild*+Q1y*@qEA-I_ng(gV7Dku+h)^h|z;lBZn~~k6EJ+
      k3r2r~&48wc#e|Kv9^o;g8F<3?29~%wT?6aQ52lRFPdLs>)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~pIg5Iy%2NLvE5fbyZJV1c$k0|*MVAcCMk0cVOG#}^Id0%1byBmwlV_y>Gu
      z2CL(P<C`=71b>X<-lj+j!stVixtra+XV0G9AHTkQ1u%kVDmX)G&p0&R>dui_*wNou
      z#<sp`IA&g-lkY{-67##oq9g3*OVO;bMBX)vg^cOAq9AM)3PV^X&@F?)*EjdbK}8)y
      zzdx-w6a`n8Q5RA$)VaH+6CGw4$oONfgp#7Lv{^9S8HQx+KjPv!24%juC4yjR(4Zm^
      zLJgWU1QBMaiAjg1j9CzC2m71C-Y_;T!O)y3<_#-n*rq&JjEV%#F#Ye>Uu2L9(GCsk
      zfLJC1#TG-nx}3jIw;<U}#d9IFqf<o(L)1^)Wf2-~;3h+GN4VMIft{zaT4V7tcz^d&
      zDsC}E{27;J=R)Yh9Sz+wM_A@4i$QGVB>EukqE|(f;QIrw?4gD}^fT0Nlg9F%#uz%Q
      z$Xxd6FBL)@11b^>?fyIbJ{krwMBoXYjLg0xneOLIam0|QlzOUk->rJJFI`jvUBfU&
      z7y@oF>)JFL=gIP{<a-a}D#jT4{Gcw+uHil&5QBMJ7_N{vdqcy}<2ByvMJ0WuJ!Y|t
      zu}s0FhAEJ28cb)yHV%dDcoL0N!cTqUFGJLnX$>=YNOc(byl|W-m6Wa)*p)p>dGh#^
      zlQb8{BMozyr!jHPR3Hl>;?HBCVPa(OtLo}y0;Qr9i<HLDQsrNkAN^$8au6lWReGf;
      zNjF1dHCTp_r*jWm+r@>Jl(}dCmkPAY<}Jf<1kH2g!j2-*(`uln7Azc=JA?KoheA6e
      zMAmvbP0*RsH<TFo2rcmmjmKr5h_uN+Jc?T0jb=J)6eF!IXr(X1HC(S``AMF&WP3eO
      zLfbcVtqzuOdu`}Dl;gw+v=j7{5F08XS;FX)QZaQXB}}|Wr#!OHNc+sQAJ8U`9m<)V
      zl`wmTEh*9SAq0354O~Zr52KlnpqGzgjE^DB$FagEvB9VCil@u?$2^P`{Dc;du|O3B
      n@B)i?LNzoXi>Fv3&U%r;GFFHyjto`Cv5K{F_0&(&=Q@<%+fBff
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C$w~u35Pda{iH@U*`;G`XxPYSvMNxzp6oNqnHTTY>)s}HadfMf;Jc!`I5AdVJ
      z>Pf(eB6_LnT3#)$`tAMY6~G#1^Kb|oSK>}Q1nIqsFM^v$oCgh&sxa8I@<2tha+xHl
      z)MwSw*-cXzSq_a#;yhf!R42CFNR1YuX~hXSbE(qODq*?Snf7aoZHDcrSeaeI%ECWz
      zi*<rqNt&`3ggzhL$a&~OzmGfy2&1i9K_qy|6Qg<8Z3`*XR4k8fuNzXIibf;}L$xFn
      zQC(<d?Y7gks}MH-KF}Agc&h>v!>k=keV*uR*(A)hM-ulYkasdRL5sM3`_6_V9%m+N
      z8T_0?@J^Cj9ZGv9!ua=-tyty>el?Dzu0$eDWtzt{Ve!u=VRYx+G0y~d@&BP>(Xz}h
      z2QIVR!~R~jw%B%9_bn|y!CRtd_>Wmqfu(0dP7U48A&PAK4B}J_Vu&?i7$fa6>ulRH
      k^a;+{WT&11$6CQQ&_YKs#?rxf2AseoYmYtrOEClY1Iin|g8%>k
      
      literal 0
      HcmV?d00001
      
      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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
      Z^aaqPK%WJj3VIKy+<GCUi5x@r{{hPFB~btX
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T}uK%6g{`ya@{^m`+f;}%7WT5g2Lz_K`<nOQs{A9r<z!IWgN@?RXqs>{eXT{
      zbT=im4`1%b%sJ=YIrIMU@&;fRD+!DdcJ9Qz=y<IM72bHwKwNt@(Ney5631es8^Rb_
      zzmy$QR5GYnN(tD6^--(=Fk#|Ig~}Wgtn5aWU>BmgbYUSmg>g&}Qe_p&vv#8<^`)o<
      zl8`A!z6h#9tGMqU+U8cZ2)Xj8!GEorCpf;A!pKUAaF87mI4wktW)#ZM<Tr*czKr<3
      ztd#OD2uT9@gykXRfCM3ZBh9&vno^s`b1kn`hcKV*Nqd1{hcAp~qw@|H`Jun}CAb$+
      zTl=!8Vk=hv{e|t=2dwc{7Jnu<QtT(k1b2I!iSzho7tS*mV{kdToPiu{>|>IvsUC>)
      zG<QkNAk`PhF)|i#UO`t~%sz45(}+g^hXZ^EX=M1!#vJDR{4LHg&dMzOq!tFKR(~{M
      I>1)99C+1w5b^rhX
      
      literal 0
      HcmV?d00001
      
      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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
      CAEU<r
      
      literal 0
      HcmV?d00001
      
      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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
      RzrZi~l#d~WU*R`M{12t_gP;Ha
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0ZBrXn6n+kG2_dDBmbL-f(ia3$Xl(H{X{{wt3#BgtrP5k;Np8!wVK?1ufL7}#
      zKRM$M=!`n!INEWnPOA>6%;*=#4}R3qpX2!4-2fY)_#xT7_nv#sbI$YJbN7#bfBpr)
      zF}xo_m7wF6F=s3!i}R*+Gg-(RH<Hsv(aa_X^#9q3^P?fu2%5B2GH=l4;`A+*bp;It
      z$1W(xy?ajG6~so@EXG}j&eDQy8QUtlhUHEg`H~8wUQjdR&gKQ%b9S~gt1Opc6di;S
      z71ZmsqYSSEbtg>AbYBrvclS(kTgJ|*2&&N>#Wpn3!Ki7e3#Hj<<xCjUdG3gf+F2t%
      zX*i}HmnUo78M7!j=%L#xOQLPeI?8aB&Uw;Q^MXuw#kP@*JzKCXf=+Ktwx`0>RSRxX
      zJ4uHSXZT=^y)~U_Qb!sr*CB#EXbz!WaOmmALpjs6opYueL7TSTFWBjo-L#W_(Z`gL
      zQ%(f?a6lL8prFN1!so8cOwXita5#!iJj2>D?VKQ4Hl#1#i=X96(LC5IXw$<zlOc2q
      z_N=jfx>%$dOxqfA9NP&aA=p*2)Ix!3QMr!ci$e=pRnP_zbfH(n>strUmsVQC>q0V$
      zXK{?G&_c)<C9R6yU@{Xkjy<orPW#38Q(T)3qhGK;0Aaw$X^nUo*RZtV`6yn%ixj|3
      z<!aK-7+IE?qVDK^3aw>}v}Wz)C{mz&TDW^q-7rddcg(ikp}f-i7PN2Xq`aDLz)746
      zfjV#BKzjg66tChm4~4H#L4Tz(J#JQ9J_RzBm=W{^qilBC4{K3s{5pCB0~pdooe`Lo
      zA=e*<3YmDy-*_Na<-3)#w6M+!cC6?+pqmgz1f9VQyu>%7RUlcavjRf^GTRCpkl=8I
      z!R9BE)K=d%No401#%rmOC4HWhL-~6flIsp9{Z*+2>Sc8`kfIKz9PVxPSG|r~d9rBI
      zwGqi?MbMGvZV2{mG!JNtRy7U@Ux``4<cg?hGw1ch-JAQOldyK8{j!x*82zuzxH)PT
      zwebA@w5}_xG_9*)kTN+Dfx^uYm{{Oe@{OXHfk`M?+j0%lV&`uQc8tu7;f$+0C1qvV
      zH0bX({qgJx4I4{^9J~LRvdEoguWxI?Z)m83LKN@7h(O>(u?xE+a4{D`iAo5Hc1?#-
      z%!5j3E|lC%-ekA9RK8M4aS(U8FM3rCUc&5@Bu2|t5E-{iPF9^U^<CJwdV3$$ky+ni
      z%Ti7zZ?H)-*=X>T;{Xv?^OK+oanz!YqmVZWa~uhb8&JbFUcda`PK$m%h0of=5}KZP
      zTVni=&=KTAel~oB9UMn}BkV*ANA<cgz5^-Jc|GUuFJsTt5?aqMqm9qK7nZSa>c|p0
      zQZ;??n%?R~9D0cURP8dlreZxyIFhQ1*TriWar8>O?$`4C@%8h4i+C<o+q;ODXkHty
      z`w1tikP0nhU@8$0_4O`cFcpr69}{jX4)QL1&3m52FlTfkBl=%HMp!;UlYEL+`3#-%
      zIlANv9G5SVl7~1cU*VKIV$1rP-RT>Q$+x&Hk8w?&z>x2dm+x^;e((zM0c*!(aSo$=
      z>bH8Yx?z-X9v2w33A4C}OJt)JS-g%hR=kS^8^;8hIgSQg#w7Qg^5(8^Ze(@t8gqC9
      zQ=Bu<j;pvvyF8llCa#mud-VAh-UdIyv`BpdFvysi!Pdm@*qw+?FCzB<jfvPT@1?fp
      zQS~FP`qj|7fczGqw3YtrxL!}xR@viqA}0OVd*nyh573;5g%f<evxwqDL^u+@t!X7j
      tbI6|v$zN!Zzxn<1j~8H<?_{-9dvVt*RTUG_fZoM>eCne%z~6mD{sYFx+q3`x
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%Tg0j5IvVXCW!-tmx_uaq9hO*@h!2al9XV|pbITr=z^Qcm<)!Q)XebuCpWsl
      zDi?l$pJ0^>H*S3U0hZ@ZUP!qhseAk0?mpdpPj}7xKX2awn8Un=9)aw-+>$$nzim5J
      zqfwX7jk5G@(^yn{(R7_9X$G#hJ2|HzDv(z0MqSeRVR_v$0}b((wjD%)1md@C#|{<*
      zBAM)}K(yditP~<RqC-PMpuc20)`QKBvgJLN<+>#>SaMBSUzMJ%?k#0BsM)^2OzF^N
      z<^_7IR-mf5XW7+S5SCCB&|BIkb|t6@BpcFpLN|e2CX8>$?Z7Cw8x7a7oFL!TEqk(2
      zvrRu=EM`|zIEv#MjtLBeWGGPELB}Xg2qc)Q;MQG_ugYY*aY9`_iBmYOVN9T}6Ckwc
      zID>J4*kb8U;XYYC2vnITbezK^Q}~?}L;qCItode<7j#S^L)VHYw-wz2TBgXKYKSle
      zhW96EznZ41z);uJejAAuJ6xnv?6OK<Zdnz9)FXG(Gp!|C^>F0i*vzUIlKZ0LSYDwn
      zecxg``|mnt-Ss(gD^^f*D;ll~OdYbtI&R_?izmk`ma|z5tc^m=GG8?3Zn(ww{%OqP
      z5;z51F;0GzizCQelBX+_f-*M!2B}v(^g!pHq69wDnd8Kh-gH7A`gvn-Fu+{}xJao2
      zMAE%4DVp$jsQR=I8tFg>4+H)DU+55qTUkFK&OcDj?O|j-mV1qpdpMhmkF6y}qH7fC
      zB;_8?=d`AZqN7UitkIlKj;+O8Zc3-1N~dfJIvQilE+-Qt4fw*mUs>HZjN?1$`+;Tr
      z#8do&#P6``g=S@~2eU?GF&z?8#td>Hvt{x&%a$ms!Bdo&XKd3rTNL5PNfCLO(N!m!
      O`~rix%6k;oaN{osZ2`Uj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH<QO6#h;h36x+<A1W#j6{Lkg6a|$q&Ok?`W6^~UZb{SFhABxW2^9AJ5m#>9
      z=mKY0_yhbG{t@-uG=0d5&fI&>J@<U)@!gaD`g8FUz$54~VuaG6ablcme#dqiTDxU@
      z)M|!ro7%S6E2iu07-rylXLGAE5`>I!*IEWUzpWiwW*|d~ti2!tM36RZ#|~Z);>FTF
      zAyIbgRtj;9DUdNjNLOvgdUJeKv%L34tz{9iRo66H`-W$Wb7V{eP1`3dRj*v8P8e@k
      zfv95FvK!4HETKYBBI^gc9yAG~ZNqj#H-cIW<7-AI(8}&n+jT4_&<D0xp3!dFrmt5j
      zrTrAH<ED%ogo%(00qQv@n8Yo@2&XE$E!X3&ilsrE(58>#4yI*H5w7(Egf|LiFiS{o
      zSGUTqnbpfck@=p2`<UYtem_O-zv?-w-YxQhf&~=WweA@mK{r7zR`@3#giJzyI6<##
      zzG@J1gR5R|Oe~%9Vk+s3tMrW%tIoPjNWF89J=5B;#XA-*kIstdlKHPVj^&kGhVNVa
      zr0JKA*>ZgzyFDvtx^)>(2@6+zW(Ci&!3;6adzN#&<#}$WJ9qhr@8N0G@en)(yplZm
      z30^#cd>Uo#F-u~ZT>OF5H&$X$cu%ne#o3w1iO)*c3D=P36KBQ*?;^l5OA#QR8Trbh
      z3zvk6<RNIh56$+WY6OkRmyu&b$XFklL!J>L=>;V20oYW}QP@bT-*NjKcjN2Q7tE+r
      z1?ixW;H|4<<b#4#Kgawhi3*bZ`R{LaGRfY9W~W6gO7oYT!8lDIM_H&W*C+>_@?kBz
      z-F#6koEar7hK+Ax396urZOd3;o`t5dmf$ManfqDhJ%f4v&skwh9INaRW9FZ*Ohp_3
      MS*-Cn!H8%70E^1;S^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO;6iE5Pg%F7}BJCmlpZ~s8RtzEhN-SDh@=VSc)hT6&!lnEK9s#){(s_;XiTV
      zgw#WSKz~%#S>uujaX>xn&di&6p0_jp{paT|0Gn9$Q6g-ei65dLWS81>f^IBMgSN=D
      z40hZd%EasnX_NHoeKS(>d?)EU%!fyqaLgbU%=_9tQ_}jV6zIS2xmrTyvo_jp6Ur;A
      zM+C2#oTw_wcvgdtQNnmj8@1oNXsh&_Xvc~$)k>s@k3_0nT!5a9bVm5p`X9v&LcOD`
      z6SSvvC$hPkkWeeoV|`*H!dO>mla~?JSMpYYxU@ktx#%WF8QU0OUsBPHw9Fb|=-x$=
      zFf+&w7@X=5rU$8eB4_%1SO#4Ys)tE0m1<YJ5zIbZz(@CN)*Bk5(q=5OOl3Y62_K#~
      z59SW<5R2d$@EPI1!Q;cb;Ao7!fGx2dS-VB`hMf{>d{=Vt0Co0jcLjKkagKQHnB?1$
      zH`qFId7^&JW|;bYh+4j<PCbQs`Y3f8Gey@!Zsi_A59Ri9;?`ZV=;;K{;zcf#Fo&0{
      f(qXSK&l7Rp0(%~#uQ@8=4c@Y?GER7hC5-+B7`v%S
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTOHUI~6#g!q&a`!SQx&y>%A<wKhz}G>Frf)D26cg{i7}?r>9rjgW}2BnAaQA2
      zyLF)nKElS0E--OnT>BUN5B>!8+@YlvjWMz5z31L@&vzc*IrHWF$4>wzkyFsdFuP(r
      zG&VJV!*VKG%{CrrCBwH&ZC>oU={gIB8MxloP`=8|)p>XG26xu=fUk)+1rkG-@SxcS
      z;ct~zxEUyr>)M82Vap)TT8<UWF+|dt0)v!y%RGSy4yjNOW9VG69DZ|st;D_CM#<(3
      zJxi`>*agG0#J#SRf~w^+%q{&-<~fG;3J*kLi`=SIgD@+dL9J`=SmmI~5U&}Q6Pht(
      z(_u)>*a)<|yH;}@?gY7}?wV)Rs+Q^JbUjm0aF`+0n&S0?3?`7oQ5F3-#*nc5Wo{FB
      zyc}k7H;xlHsUXGB5%Rki)OI};0~ln8mTbdZC7zq{^DaH-5;%<^1!ow#_koSfR19N;
      zA?EWSG-l}ir6z&T6oiMgiVVicwCouhqAv_eTBo1r95WgETH`jjpr;D?Y(6yt6Wwf+
      z77@(0sPz^N5W_%d*cg)E_z@tBs9AQ`J(Dk3Vj_|U=W;?6No~^|hkJS3@O|zpm}VGl
      z<^C^&O{E-cjF<`xf*L_9N*{|vi$;`gaXM)v8Oi9_2PEFnp$#hSa;SWSb~>wj2IxR1
      z-Kb0Grd@!~k`&-bSNtuBR_K!!Xk;JS^Doe+e}wj;uO9UqWv5WM>iB0QXQKVlT^xCa
      zd)fCmzKc`YlvGSgaxoN2aTlZ6RFpJIF%&VOiA>2m7|y2TVv_z+j6}I{=@QB^89kO+
      zQjTr^_}XM;B&_;5#eYF1ZPUoV#3){28n1B`Z*ZSv1v_E>i+efNOQ&oxj%>(Qm3W&V
      svV=~<IckhJP0~ps&n2A41!~kR*<U1`OqQ2Ia;I>aWFqAJ3T6=d3Aq&*6#xJL
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D*>2NN5Ir}WTi2!O3M~{0v@~f$O({zuPzeHQEma@^D$h5LNn9m%WIJ8{fluLu
      zmmu-L2k=pdbDb5$Ly6?O%$+kcXXfPRukSwqY~zWBguwQ(JdtN+c<OpJv(=EF%!&+M
      z+kB~3%l5spv?D(_UwzeXHqVtoLrNg4U}i%S^tN*B*pY@z&)N^Bd<8PkT+fa61d_S@
      zkwB{CR~;QmOc>BGCNOpAdd{16v*H9FWToK<%pCf*Y#hnJRrj7T71iBPVCV3^%Pk5_
      z)|^OHbKtnOdK8yp2^c-=N4FZ)1;$&_^<p=HLN3l@%G1a!`OTK^IbKv8+V%t4s=Ibr
      zw5<G*js;xNa9LnFZi)i+9SkgDNnnhrN`Au+$S#*3#))l39oKMO!!jQS0R~wO+)xn|
      zg|Z(wwZLzCRh9Clfm^uE*x?}d>>p(_U9nr;nt?l5r)xEkr|&o{0WD|orzRq7fw|F=
      z`gHkJ6PO)7^+~a#;*1}AD9$<3P@ZsX*`Z^XmcXNKJ$*r3NL_Ks0uuuId%qpnPT5tW
      znEzXkTdGwYqUCu`P-@69bV3b}1=cU95Kep`X{>;%;Fsn<BaMWTCU4`sncRi4ZhV9O
      zm4^fju9?`li%Fi1t^+P%iZ^xw(_9t!E_Ve^X7w-JMxoC~pveJr<|5D+|AfwBu9x*Q
      zDP)*#rO?6r({y38gR33hmgiGhJ*#)HT3AfeFl4h36Ms!qnWgMgv<H-(73bOO#_E;G
      zsK_B7vs%FhHc3j^3gnuMPg^{th*@Im?jfB8o4HMY)sHpq%3n3}{xJP$Gu3kfJMsDe
      N54r0EQA^l`{u`gO{0RU6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO-md>5Ph{f?&xMW8b1@`X9&aulR*eb*pPz@#(^b*ik^FC+ufG2dztC=<3ELf
      zCou<4o^s9q30992SC$+khwiF+Rd4Eb)%^PN^BTY!Uil~x){n%AI1AEKrQ1O_7KcGo
      zq$&zF+#N<nZ;Hs8<oxxHXeqPNv({(_`|t>3jvT~-soTvX8Cf5t9R2%AS4${;R$AFF
      zgyPEEeS%jvEm=kpPb%;+Oc-q_Ex+}Sn=;uG%~%q~8zvI*zDSgdbI`LLl@dNR{!?^~
      zP;E==G;K-M?$}IFNT}rKfoj<fVWcaR&dLa@D_OTdoZ6snj=M%nZEJn(Ya+TG6{WQ>
      zbWfv*Fxk)c8JubpCi<y+B4^I{unamUly^-piR7koQ<xfD!w2_r)*EUqlX@)DRHi<b
      z2yY%a5}x(ICb0w_1D_%OEj&KF5spUK3)m9dp?8-kU$9d^h3`@Z{y>%e%3T4TVw59Z
      zKA!RI$nV)Ya&fHsoy|k))dOnro;v;*>dil?6PV1q?s6;l5E_*GJ0pI)OXfYD;3-UJ
      kG6^$y&MF=D0<%03=e=alV|0$A0_L&6w#+zT5z8391!5Gg_5c6?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^-A)rh7>3_z3rjaGR4k&PB2c6SWhwF_wxUpNQUjWRHsQ!@mk}1*U9#N@cq`t7
      z!U0ASPfhe1ybjKc-}Gmh_QbVK=bN3*`+R>h`}5DY?*P)sDF`r3?&}})BdvO9TD#go
      zS%0UM^r~rSYho-Iww2cn*LIE-gcxFCvsTt=>#Nc}H(UkX4DtG^X=_{DG4-<fQ7@G_
      zZLZcIi`=Q2w)Lj)jDfvih~{jo>gtwT)XO#Awec&udGU$8Wr!Gi+<3oc9|^Avi|alk
      zOXMV7hM~{VcT9V&=DN1kKrQ=5ZMI8^)}1vi(_LW*CR0U*P|n`rDuRed5W^Mnwr*Pd
      zWvx=;&g(|r{p+@&my0^pg6hy*47qz|l_BLf67n41<?aTzY6X{9>M1soi6`43Vl|`S
      zCc*s{EUjV~@pccZj$<DRmV!GBX}_pvwMyk!$W)AAOw?qYT9@>jX2R2FM0I1$l%-(q
      z{zqPODkel;eT0z@MHmcI5kwGGaF1c$Z*nq2#k4^86T0J&2>NUUz35Xg$FSs=-hol+
      zN|J*?DfU+P8*N!+$ogfsB9{p&7KDSL_6*v0Fg%K2219f<42SD3e_lCokMoXR;UWkI
      zb<3_f2G5(~h7WYUBxXc>bdw8~#hqMPuU0u7`monz`l}UL0~c>S%3)9gJ8FYbs&SBh
      zT{K>Yf*zWO=`9w3N?&R$%~jC?vZ5b!HEHapCygv4+ckBDt6yjmzyOWi^~HHyqj{vU
      z0fU4V@*5bU6(LU2Zt>|k$ME(UZhfY?tp8oti#=i7_EaefQhdVa7};iL810l@NV0?{
      zlblVEv&jw>3reb_r^+@%jGrL&1JQF#llJ~8QuKUD=oKNcQF>dCA;!if5;eP-tVGi4
      zq%@HpoI*Q+)=AQcG)ttkM4I<VQYH(;Sh`f#%g(Zr>Y=Af)Y|}rzGAsku_`Gtp5kAH
      vW_eE*K$bcZz+<eCoumGbkh>>zXr{?Nr31A<c9m?J>>Al&(Ly=}6Ak+pAFQll
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK-D(q25dJ3JcAM?i#Hdx<#72#pq}o*x1S7>-T4)IpXo(Q7PBtfY%Vsz1p8ohK
      zK7rSTTEPn+z=sm&Y!*pGM0+!HX3jT%-^}+PU%vr(0>?y#uy!Dh#EBChd%=5W=!?G7
      z6|v_!ueIC`l#Bx5Z$)At_dMmxmI!2J!w+M*?kX<~Oc;d4@f_>jSVh8BqkqDT+V|qh
      zW5ToMIPBj_H8}pI7kFxo@Vt7F1hqE7*a&+v3&Na@Y0S)Go-myZVPOh68z%CEYoq**
      zFPMp46)_<V9i3}>fqZi~=*nnMbbU!EG(%VTZ4r6ePMwCHlkn;SO^y@F6X%#crnV)c
      zei#j8kFcD!CXSUOk7S^n5xblE%}r);1B)hZ5}y7)$2OKwWJ3CS$%Nv>06P;W(6Dd|
      zWfRN4?R*kt<2LRPEHBm^k0_g});c=4V&fj}6SA>X$p&~jquQypO;ibG-M!P5B8Z(<
      z6b@yiKD4C@H&0wS)SM9LSBuV{+2F#v;bG*;El=;N{Fg&s)#V8Gb`Z#D!xwQZd4qFf
      z=gpH4p9nztygnU%W!Ph4mSvW$7i?!(+x3;tu<8Z-3oe}|sLL#^<nJ9vc2LkLj?(f9
      zuCnHn!$O)zrg=*BGgxQ1evZ;d6jH-D$K6jb-kvgeo>#qu2MpH*3NTpq*t^f(0~8S^
      gg%*;+rL+)GLJf6}&R~V{89c-z))sq+^R0q@0u5^qZU6uP
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOHUI~6#h;bI%OOzRz*b=)T(V!28fA?7$Xo!YS1)+)P&vbaI4o$XULt)%ayKO
      z7&j*R2V9dNCNBH|{wU+QZ9}Lr2HBiD=kcA#ch3C$_5BBcY0S9D5FWo0TVf|jw^jTi
      z*oZ_kXoysW!Mv5#*hn3VXi1BfTvaBLH4)2VHB4gF+?@-JN@5odVdQ9*xkhTV2u;UN
      z$eNcbElv^cEgua#Ua?umKUA?Yj|lfmCrMDQ6P$%)T@HY7%11x4ISdkVPdRN%y_O#O
      zkoVzYh;Y7BB8UXjv0^l{GHVm$msKpEZMGUxuZl(_35De(6j5DhW%aJnv7-{^Pta#C
      zt2}m|DP(?YQa2OblIw)AZgXPW1aeEpCg@PSXurA50bIn0i%W!=|0mkVWsDN~n|9ZP
      z(Vh{W^jyNMhpQNOG4{ved!u|@!*#--N;~(`=84c(Dz905(Z@~e&vyLQblXP>WrCYZ
      zV==t9(ptIhVuCPkCkh%;#A#5|$%fQsw=PYxxD(0^%M*bP+YbKD5W!nXHgzbMl-=O?
      zKW==|mLvGpIF@=L5@{-VuY*08&-3v({4deaki9DY%CN;nj^zMr4_MFe>sKbe!mAYg
      zZ#cczjyl8AYx~|Z@(l_$icwac#W{ZY6fxY*qq})3m3?^oxNv|gpD=c)-1v+_S8)z-
      z>kFLcdyE`meoLq@)>bRPVfl`&@7ekRWqfQ`9d36~=~e~D-@#o*XE4d}83dT(*JBIu
      IbxnhQ1LA@kl>h($
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~8B16g^W4OY8DsQB*`hKrKaCKop?}mIe|C8Vm#z-log6uIcWQ-6>T63H||m
      zB|<frVB(`c%6MmYK}w8KUS{UrIrq%H=id48^XM4BDDoO&47s;_n^z5g$8t)>R+$%#
      z0{1P`m{aSbBZcSi@`A^0v1ZA#SmBNsc)_cdZM_#cQ(CU0A<ocsmL^y5rN>Pf-ZM1G
      zH<mvz!Z5yk7WQwiWhs8zax6K+Fp<6p!QeVWJnwFb1Q;&qXhc&pS{Ry7>PVsiZ8|ix
      zGh7XyFv^_tSd|{hl2rt4%a$WvR_ucC)_9>T7*flw$;<29vy>e<<Em7K`~~tnCo9$6
      zMjDd9E5a+fo-H;RdZO(3jx@x!aHJ7xJg?4_X9CyJrQrs{*#9f7<0iTp8jGsi4Bd4#
      zEY;0IHi_Hl)zEXU^YthlchJYsV)>EMp>Pf9!3`BZpyRH(Pek_>TY2y6NMn#8=?fWz
      zRcvZsdLt}uNXG*_q!^o5=PFXV4z;X4(a@b$QW!c$Fv_6Wma}LoY^n~cd{oLKJk~JI
      z&~a9?rI1I*6HE{TWfL+)19I|Z0*WxVNgY$+YrLx58m1X~6{k@U-0_VS&)pK9e77#7
      zJ6|=$mg+78I~Cjbb6-h}Rkz}qV!={_*ZY^hIjo*z&=(y?c=<B-eL>^cdNS$Zv`||Z
      zjXc2G+tqKNQ;a+snrTgtHAQxec0Dt6h-4<Ee@5$mfVxa;GPwIlk$Xrf6h*1E16OFL
      zexNhr`4;h%G6zT=;93p0c43?v{U6X58SxtKg~v>|4c9QXhmqgdUGzsr!+Gq}02_b3
      zA0$$MK$ad>srFGxz$bL!kY=rhNqoTqj_?X!33ZGjz6T|A1|^lE5`Yq(VTRaZn5Fm_
      Po+C$ll01yYY7XodN?~M6
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTTc@~6#h<IyJcN$t%6!aAn5~?#8m<@5ida^2}vPMO8P$CPGQV;mds9ze~Sk~
      z!UI2mSAF%b7|(2*&<A3amviP^zH|A`-2A?}2JjY39&&__-^56K57RTHkHgbg^uw-5
      zRTO@4a$j3%w21eN7|0`KW7!f~)(?`A+=;A8w1)zrHeF(;n_43xJB|~I_C%%iH-ydR
      zblSgl+GhL*rIr0ec(;0=0&5*YVK?c?84w-@cz|LFv+Q#__{gIiz(a*FH!dH>f_Z3L
      z!*pyraJi|pJRA<X(j19yED6<S5{bAYjB@tGS#WC-KHp=;DLQ%IGIPhowxsDNW*~cn
      zrO9OC%!YC#wGGGIes%9`M&hYnW}U;klL&r08JbA$DYwD$Uyl3QU5OCvYc0)gEYeh_
      z9u^53|9?Jid;3+e!WYQ%&!bAkoq=CD_IN0<oMG!d+d0-jWBmetqZ(Y|(Rr5jn5Cb^
      zelqe0sxFIBPCmg?)_gzAPwH&3?ds4ixR@pX%7F9Z-~{NP&+wdO4lgob4GXM&_Ase<
      G1^NSuy4FPi
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKZBG+H5Ps&a^z3oc%B$}n7SmS3A@Li&L`a%c3o(&2k#E~`g(b%xx!sCC$}fCS
      z5=s04{wQ^}ZM6Mj(A{Kac4nVvW@qR7kFVbVJi>zj9^vVc_#i&U=2Yo}_#_qY<E}6&
      ziMO0=X)ALr(q=A><({&sd@Z!BI<eKWHq!wLgqcx_mxBPIXb+XCt`i=&N8^`EvB~%+
      zN-O(}@T&Gd1Y?*NiB*~2tak{7?d+W_fiM|i0>uzMu0{wjMOYY5^cxhQLMXdO#NyP(
      zEp4PVA<CF`z!^eNYw@agLZ+RIFpmX7i7)Ml{6J~K?0|R#-7lrwR$A`%j=M776Wvr2
      zrrTK}(vHZLI}e=&*GR(iu@_ygjUzwB9VNk~jIj)#$jwlunI%0lD8sMS_X**ftd}RU
      zsa$1Cf0>6h*BV09(pu)*sW3*G09C@qzkfWZ{WD!y;)eP>tW>GE&tl7CPk<{dOML3E
      z?cz5Z4?iPptezukT%i2c=XH*2Uod;t$6RMQ<!<u8PtZ?<9&m$w^UTL+-nUpg>o)H6
      tbKJ$^Fvluu;+W@uauSZK=sezJpCcMXha4W)>~7t|GHW*wg!@>5_X`XC;D`VK
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH&g;5dNA3Hi;{b_<n<+CLy|tC~7b~A_y1|6?4$jB#b!LvWvSLd|dnm-nBgF
      z&9j!qDi8huf0Sj<ZYW6!R>@&^r+fRG?*96l`T6Vn4*(Z%$3Pol=80Gr&n^F%a#pN0
      zTRgI=!dEqGQom=NKzfd_r#-PMmsDWOMd8SSMbBN6UhtyySU4+kMmWp1^bEua-Fi36
      zX18^_`b5?O1096E&|8(l@vT;DS^0r<q(|ro9xH#~JYl%}{}mM&KdKxR6bU1lootY;
      z5aK0wStdc)ZNfkzg&4X_B+*TXWpqGSSvhi{zFL*ulBn8}kS@D5VONBwwB2;Zbt{Cq
      z9n`TkwcK9kS_|id{-{lBD^{o0r4tmgl@t!*uz^E_<J(Rkj5TotN4dWh8EnjFfhSJb
      zo5_Y<L?gWyc&w5_0>=r7n(g|!=@fc#(m-F!@S{i*{TSfU$ftE-Gb8(&HE+^KA^SjA
      zdD_GoWC**sf(7}kBJBEK*&{&}lE@)%V35%BM{JX>YqPveoW(gF<kH>yQ-nR6N^b@f
      z^iWSGS^XCc3=xL@Uu!0YafvI{{maRE5V#I^)-vn4$j!+{aMi#SE@g9`=5G_%z>`h+
      zGN>qDg?fr-9%L&CTxWh&&2==ty4W!j<2q?dJEP4LnB*c>#dEc)UT(zQFfpa$lI)Md
      zQjET7Vn&O2w+uI&s0GS(cpNdg9uRsXmbTXs*P_K22_n6T)21A_tb1<VtI27lk3{c3
      zZjN)B27)>3@R={!!uO??#fIiu?i2L!NsRH+4(jgK2a<2CHnx*U@p~6r!)&+lH<cUw
      z3N!Z&ou9&(9)5Rl3@C>*uT8yX)E?~RFDJzQXb0NQ_!#>>3^s6JKA%3;z=^lWvvuk-
      zvJF^o(UbcE^9#<$8@T)tUek(&)^a{Qx-Fs@A;u#_F+vRG(-R>gyG4#tgy@VAC5_O_
      z2B!b?RYVuJFpPG(giad45xRmbUBd{CVw{SYr!hRF2`DPTqba<iX}qQxyrDU~r&}Q(
      ly;09iKDc|#VvZSU$2;6YIb?O7S!u%pZimbf|Gj`k&~Fr<qsRaN
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL-A)rh6#h=TuykE)t%?d%s#a}_vT96BtT6(C1XE2Tq$b==%T(8FcbnM(>ZAAs
      zUXvguUibjMjNW?T&zW{Zs4+&kIWy<XcmBR}=F87dp8?#3XCp;;@<!~4z8CNM;VZ8f
      zh>q71vETNVj9d$~RG|n~mFUV1Uk9=wLRoqtV;w2E*w%g&+OP=IN24sZVy#4558nyn
      z`n4aI?hx+RkHY>hS&jW4`Jt~L6CRXL5}?u~Sj*9t%z$vp#TdpXFiEhJHXNjpbzvh%
      zI6utb1%laF*NRE08UJkE59RaiZcC~S(F!CXUys@%XbR;UJuzCQQ^L{-${Zz?yUsF$
      zOm9P~PNceWi!hfICw8?bcVwu&A;T-?&ShqB5z{s<5$+wIXBRV=C5&~<s0p(pEj%4r
      zgqnlPDB76&WA39U7gunVkn!VZqVIRNyM%PPvT1xvF0SJS!HK0le6-4&m8Oj{p=hf2
      zT2h3u*HBSUD*d)8b+poN%bwwcK!+uIe`kY(uSeUeEmwUrt>Qn{dBLP3xNBi3)p8)>
      zSn>=fN0yv>;qv+0P%dW{h;J#j*qC6MVeKL7DL&om{0BJIy!#QS_XemlES<sIH}?FB
      zyg{*-k!Nv^PhLArC2?dDr%>I8vyTf0D7-^HQPKyv_8!*DJqAzmuxD_S;U+;I7R&E!
      n{lV5>JV|SiXljtSkR$>MsG!Q;Da<oIg<H7Ir^6QFcnhH43y2lz
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKTT2^36#h;Uv$|bPOf^=m#)1zuLbpmw!7El82m}!#zE9S%9ofv5*)b9Sl@F!R
      zhyH;6sM0gL!RA4V_2ry7m+xG@GrxZS_z7SO4G#sv{*@Srn=l<J{W<&^i_5SlQWb?C
      zoos6>jTUjsh`u~iHkPMC%k{3hl}C|PiS|$;ERB~q>ZR6*$mVfE*?v*!`dh-g&Uo76
      zI_)xkPibWj2p?WQrNG8Hp>&*F$SDw>1(-m264UH+JNPJ~62L>1FrSwXW5GOhtzkNL
      z9k|j_TAp0@d(xbVUMvZ<P7;auTo~o-k+bC1Bpg0r#xXj1-wJcb#GXoXnV7!3AT&mk
      ziJ=YUKx!N2+<tQJY)0a#US^%chm#0?H@P;EY$><F+CPr_#$AaJw6&JzI2LItQx7YI
      z?f*ZYYkU7y@QN=`<ex{?syhR}3hePP$#ROV9kvUsgXZQp_|01I9W!@X)+|fk#i))6
      znn%rLG0Ms3m}AZNLw!`|J=?Ah{RNj@GBq+_Jr9n64!VFBEDKo7fJ<0r?X!nT#VY6z
      D*PqlL
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~8BH5IxfmmM)9bf+&axirSV+5m3|`W2nKDfSQ1P@Woup1s1ovbw2=~^auH(
      zL5)86YT}PF&fPY$tHdDL<bKYanKN_l{`mRz8-N?Qt06&nup@TGe%aeI?X7al5}W09
      z;hBx{f*NbKFI`($i>_$OHPg4`Q(?=A)z_Xcn=8@|7KE!IMHq;pEOl-OUH-P|O-vK!
      zmZJv83sYhLd!}vr_X+d)lK>RzgjChpkQoqq45ZPeBZ*!E8cq?Cd1cVIY})d1&|H`9
      znpn3aA-C)_gjE-=srH@2l%hgdI6)rqdNHk>=`A{qz*}?0u5`V2RL<r(q1*JHw8X1`
      z(@3|3Y5Ro1HutjF^UIH1(b_f}UZqgaU<l_m3=?MlzqSTOaDhW?s>TvVVyu>8ZLjFK
      zh;a>LgyCqQxRrrRxJ)p%q#uf<)^Kc=MZOS2R;QH=uHc%6tAs)n?@v)Yl-^6<X(^Xy
      zH3NARxQ82ZQv{aZM$i3?-GfP7*H9v4qu9#cz!b`aOjy-6Kq*q$s?%&awzU09h#IeU
      zt)`ShTZH~2ZW%PJV;j_PCAZJ>!wxIC-83+(<fgAWf!mOarqbBhKi=1rN}X$2vu){C
      zE#Y~RmDd}4br@$!C;1&yHmh{at2Ccz=;krQyE!EI1N7qLM;<=Ic+a~8`grVO8&Dlt
      zUK?r+9jB4wnF(T`gHYmG-6c}*)EM!65%Em?_B?Y8&z&PZ2XVF&(_$8i)oAem`T@>;
      z!strrJG2j&SSb}JlgTeArg6w*knKS}dMH32?V_LdSl9bul(9BaCqKr-H2?KjM9gsp
      w1!hF5F`dY>JS(<oF4f#&09_T4-ta%}Z6x({2Q-0OVQJ=Zn`b?Q7{VRUFB|hi5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNTW}L)6#h<|WSj6KrH~@^hKQPmOAsL-LBJM~)E3ZU5xjMiY@4mgZcR26@PZ27
      znQ_K9AN0}7s3SV1Ohp|B9WOjHKKQ1-%d1b0=j^|^6gtjGJNftj&wsviKj**r&sX09
      zxC^HZv=RCy%p>N}RCUUB##56eb1aoJt9CxsCu`R6tcqinc2~@@b-?yY)_&8mRyB5m
      z<}tVC83++NMNX<@vXp(f2`kUk2%+1jnp0j%vksY#Ic`-55wB=hSFI;(9Q^+VWEj8A
      zc5H7uVRPbI1oVy&Lj7*Rih{6E!9Yh0?O3D`MJJ&>Aq<NKZO7VME9b1r0W(*!2wj72
      z-Ykun6<f{$F(j@Kc3p!VS4NT@>oN-k9jkt~Jn1@?;}LqblRCV^UWId&@ztdyv<=3L
      z@0P>45>uNA2@nLz6PC^gWM@l$F8f`_GudrU(Xv3PRuPa{MGQA%g@IdGM<crpn8K}C
      zNifDOZ`eN0c629tn+kW?Wy`7Bu9FcVs}yd>9fT+|XPv6$aTJ%dvTI@{iUg7ddRrAX
      zBq^-M8bWx=E_g-uFdM}>tT&Kimm212L5ho>Swkgj%oDD=6*l_VialOrN&;zx%|eM3
      zElpa7dla?`soirY1+-1!UY{lBdY)U3Vh8Rsu#>Ri|JSiXANo019F$t0$szCdLsjp_
      zfgw%jVBL=g4D9CQwJNFKE9{Y&cXAl_SFACsQn3mWe1Q!pJcvP#F^9L$tvLmbv60B~
      zU+;+6zE@!%_7fK5OK#QbtFccGAwJg*O=dG5#sLGvoTWKt=xc>Xz)cgit0Q*R_S=Qq
      z=&&exRN)W~^PR6Gn->+jKI^UuEwccR<4FTg1jD5DPT?tx5|mU5vmVsRX8Bn$YCx3a
      z6$;`>v}_*L772AsVO&%jOckWiY=sHojM+?RvX&Ie!rCF^I<KoRiD$UJJehv=?x~wL
      zFlgqi5(lP=0R!Bqen-r`tz&{#t@jbvVbyPtmVRs$wG22r=!nJ5_6hodO_Yk6<Xm%I
      zmRxRXmGd*V$1hvXralH?T3qH?S+14!SkY~noWHr7x|+7cctpOW@G?$t;zg-nU`=5$
      zZk$sxIA7r~acRjAidU?%d&IhGkj<Sb!F=<_R&3a<Rr1zuTcW(;KVF}8QhV%i*5N7D
      zUoxvzi)(t(6>k!cA&w3I!l2GhneY7OMfe<r__KgdThPY;KrFfXEL8FwuKR*dZCETc
      zxuJIurnk|>XT=zyF2Pd%vVZ6fr0n2xyU?0oQ3HC<2d>bU0Z^dJaJ}5~Z#jBc4dDjd
      z$Sa%F*2m`Zm$t2*!A(QF+_rbkH11qGjkN_{HWbn!K5ydf7CC1M>2PuyY8u;Tuxo21
      z*bBR`ERQfY9-cuq9unGUsE{_~A~c%rh=+|rI;s&vGkEA-tkH*qvv`b<j>V05EIi7H
      zfQQc=@mM@M15;CStte}LRPHKNu@&|7{HWqpDCb8cwN^(w@jV+ASK@}hmuRdlh_97q
      z9ws=xpbt2SA0kE{p@%+3l0HS6KEpoxoO}HYa-6p!eTf=P<0PHMX_~?NG>cE@JZ9-@
      zT%d1oiN3?{bOD#?d;Cp5P>g<}rSvoP(l4}yzZtsd=lT>DO77~p=G}7CIJ05ej3b!h
      zT*qhwj^Y^CL=UZ$hYKOLs7oFl&U~68IL>?#9L67bmT3lZ_)Xp)F5e<9;W^$#agr<M
      zdEUh^+t^)h><BO5gsvw>>JpD6xt3l$!&RrtTUY3>zSZ4Klh)9sEjw*BNyi6rcCwwq
      zrOqR9sI$AX>l{vADecb|X{sSjHKe_Y*8*vqd^<Q)%~WZF{%R4yv&Qc=W@8aOytd(W
      RANU5|<gauw@i2c2^e-?vlxzS1
      
      literal 0
      HcmV?d00001
      
      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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
      W&%eX71kXo!-of)R9!ScckoAA#VNQ4e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7_T~8B16o%g^OBdFaR=^4szY*FZZ2jP>#zd=ynnp~NUg*`d3^-)jZFZNUw|ech
      z*Zu?(#Ka4KfIrH3W-WBr7Mf<W)6UG9XU=)gIoaQTe*OY*7ppoF43%Bp=I<^4Ksq~C
      z%jVlwgZr{+JyB!T354fxyW;UZv00t(U93qz5RUM4Xbfq^vTRPIjmEBM20D@qi_sfI
      zTR4Fg;~pazlEFLa&lee%Ytb_UyeiSbhtiS3BZgvbsFV3RgI0F8#5fqvo6s?4U<4@>
      z<47}%<di|GCLQr&f3G3D*Suj1hRK@S<aV8VQq4PynsT0DeHaJM5R{_I$f*2}n}KZe
      zKx{GO<5Bj}^qG>ml&_Ct23Z}m3`;{OYT`2H7)G~M+8O3zAw7>JuVmmVuIsqQkd59D
      zw=!`9HyO+w5v<wV_g`{{xS3o&BwPF-u*&XU%XO632IjG#<2LE6i1A$$i^wq;z6k2l
      zmti`z+#8iAM#zPjtEURXFcs6bY`eY^cDiSkx`JUQw)|A^ZYuuYl1<l<+fu>e>8o}(
      z;&*SfsDH@Zc;)VUO;M4m!e)CrZL_+f<RBHR4mDg^=_sh+vc0Cq9Yv~B5z{*gmQJhc
      zrp6zGM%8W5>N%P{K!P5?C@g)4S@?m8Z!}Bb0*y(s0p4PgMl<|xU<%VTW4MS+hp^Tm
      zqzZ>H4{_-TS4NI-tBWzh3$`!;5u!5TJk>z~DdbTg7}e+rbd@eqZm}-rpEqs<L0JsF
      zQT`kw?hHnJ7=TzlLG%et>l4~X3hh$_+Ap+~6X>a-eU2ddg=P&#d>Mc!4n}-E6Oo|r
      ShRV!6+^1hvMARKrMA~1%qhb;O
      
      literal 0
      HcmV?d00001
      
      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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
      TP^jMIQ2~ZTU3pI8k>UD3@Iy?^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc^F5dMZ<me!+G6vPV`6}5o4pn%GyDpjP|)(eV>Z`<yHu4#A4?gGYt;(zeP
      z1Tpc!2Of>_7T^6R#yQ(&0YwSj^z4~AGqc}(Gjl%vdjA2yFcvg45hkA-tHul6TeIvX
      zeYt8Z>LtUo%KEfgbG9#C+o;aCMom7+^=6&gvSUlzpEYc=DqRgxLP|x@s|NeuFFluK
      zUqhVG6KIV!Uze-wpogw`%k!lzT|(TiSYGcCVKBcB5EJY;Y1x*aAq=JW<=MADh-MvA
      zCO|kSprJX52wDUZND(4wWzdqhY*}2Xm8ARFC{-n)HSd&->Vn}~N^U5l3OpgR9{_*x
      z$GNnWLryKzls4f^Jt=(`?(QfmClpFzT;0L9|7}M&6b3IitJ36Jg^EYgvtCLwfm7(x
      z&`B8BM-2qJ(L;zWs=gqc+CjqHj;@(V;tYB<oF$yt{)L@Z0_Sj^kg&Xh@xrRD)Pia}
      zQ@&||KJ@e1lJp-KE)zg#Pxo!*o^@>B;F`Josf)OzVUSA}c3*fZpo4o&g~{2T^tpIP
      zwuh-JgBX_uu3&`F%(hQ0)2{?*atVy#nue=fv@m?#OW-=jxwoovk<n3LIVmuulrh&@
      zs`v`p4S|~~tb#Brl~zTZ7RV~Qi0>>b`HsMhlH(=E_nn%eU{)Z9Id){&)6R-*GIlMU
      z<DY7U_;Q1lqq}j!a4f>%t)oVs3~a5QTD%fq+1@Sl6=#h*F*)z7xMewGsVO+V+l_EZ
      z5kU|+oB7XH4bPK|Efo%X<DS529=HhqW1v(@%^lxBF+_RplB_+z(g>RP0h0X#Zz1~M
      z;m{kFnsAucINN|;qm}nU?b+)Hj`Ew(hW18;QI=H%`qS}U;MiV2Y&a^{W9Z<OGuu1F
      z<{lwVgdsLLuQ;P9_OC;%<KzZTzd|+?E)*_qV4%p$@ZdT|O<pF<u_((K-riF3ZF4Nv
      zu#ZIAqHVDa+}%p4i`fHx!a@3s4*J5A`;{C18>Z+x3iKnunW-ZPQ!O@9?Z7DRA<sl~
      yVh9Bkxh8|?!F`N#EvAsd1Kx3s@G#8hpRE4;FC|TQ6qI8gkNK^N%+~~-Ao?4;A$uVJ
      
      literal 0
      HcmV?d00001
      
      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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
      XE2LRJ;tmZzhT^??^6)u{mr?LPSPhd@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FO-v(Y7=FI?D>EIYOBX1+MOeTEm!B>LSyAc!L07OVE(%Lm@ORn{?XbfXW`^I}
      z-aMHYZ+rD%Vmzq9ZlZ}dFM9Xt)o47Ln3x#fZ>IET#RE-dzW00QeV_OL?T`O_`#pe3
      zm=XdEw>Gss?I7vw8&)y7ZE73IoaPw$<eYeCELXQJ&78NjEqygJ*mR#O+Xda0z!?S_
      zL2@2HIh%7_Tg$sAVl52MG>Un)Rx``GQ{J`nIzuS8VjR)QG7OP)*>YUXa<iJbs|U&7
      z5QCC0+m>z%DZx<~THKQ13{EgyUHlL9|A&zx#p{M;xHlOlhR>uql4aoOazPJ+p+iLk
      z=M)4HQ_+SlhTyOeXj?Qa{od|YPPgxCIg>(aUo7V}GppH#xL286IL|P976(qN0EKhT
      zaQrkcZEHKbWRM(LCr65UHT@aO(Ooij#Sb^B?Yqfzd273D>6V)s@m%njzF<m1KdFnH
      zHgFa6;aL&sWd><DLq8EM%QJM=0qUp>t=pPmRXt!BKh<_!bHUcOOGe&F`N#@JFeYJ?
      z;e5@H6A={&TxAGTgISKLxfF4T92&_ArKE}pOftw6eY$LxZOZ>}Lx>(P6~+`^kZ_G*
      z><q1=Vj3@!u?;a03_VS?yW2D#DFrWs5;?=r-Dsg%O2u{Dph&z*?OFw@QCFk0%X*&1
      zplIp@cMG!;Zc{Y1eAJSyVorn{5inZ*VbLxVmPp1O6|Z2Pl0o&aCZnUN4wRqNNH&aD
      zaaRIOULCw<TE%OSX=X~gQ7pLv^>r2ZL>I^#hG_~pq5p=8H-%hi-zd1HFjlZC;XXBI
      zgS%u+MHUZeiWZh<*BGMp`ulYe@M|j8@iq;-fS<Y}43I6a<JP^FE7I`Q6;HZ?27w*W
      zb4Wfo+MZq@I@i>kwUC4;eGVK<i5E3N;80M9L@6uYKAJbg;Kol|gX1C~1~p^RHcFeC
      z<LFejj;8AS<A{D*6G3`H^u7oQGSOk$T>&U`Z*91%(Wuxa^o`TghA2s%C+Zr>2Iy2q
      z$G$=P=o55)MYjMh(7T0X5d4Xd09DY08b>#sv}@5*MM%&oz6JOf;@zP6OM_;hrrC>2
      zRn6OELD*KmL*JTAzb6>@@+pkpJ&Z12u8JYN8N`rh_c>hg(E<~MM)9%EL~o2&Fr27h
      zd`22QM*A_Iui&K_d8~q)GvP!$TtPY!49ao&7z-6F5-rFj*`qzKT&Qz=s!*4&GNu)e
      zm~Iuvf?SwZJz_eN_!`Sq6S0VoA8Yl&W1fs}DW=pR6TztB`xEUf1S@ze5mkJr=q^_o
      zRXd*58r!?cg{Ref-57U87UB}QQm^SAdZ`6y!SVniJcu|Cp^vv<h)bB{GH&oNmbe0q
      zpTj0^!w&Dj5%0t!-h~hO1$@je;xUioGv1A3-h&@_FMj5i@GI}bZ*=~_`|%eaV2t-O
      z&M&hFA7mYT$gAQ<etk}=$U3W4q?+L!yen!<)O*ym^#4oL`$SQ<5=DbgJuWC(6;$U4
      zlkfo^P{+sdH#Fpk+lN1qCtetv_#6e|DA>WL(1~ir5gucMC>4+J35rBT$X?0oHiI-o
      LZ;L*j!b9L+t*i4-
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      E0w*d{qyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g_vlwsu+CiUkEx{HWNE;38>!sWAePq)9QDV&A7_kTu&`vpc2wvrJGD
      zAAIz|A4R;=R;fve?aTd`oqO)NXYc&F`2GXHGn7)W2(LbfQ}M}*`@VYbeGJ60*A}tg
      z@pg=@D=i}>g1ty|<-2;Jc@p-UpJOe%`%?9`JK7Ib3N~S79A>qvC;@H-)?PyD#B
      zN!VzNU;9t98W+Csm9JkCHj6V=mRbaRH$0MQ5awK5L()M4^Da`z5E4amA=~hkeADZ;
      zWppUofg~(6!j1@9BJxc>I<yUW!p<xNChElVWLXqe>_A4xVbqmJgtg&dp6F{&o=T;?
      zp=hs7Tr0KGSi<cTZV@UoNatc1D}=Q6bs!If;@PUx^FRDkRdcY4dnw!{Y)#$$Z?%gx
      zBX%bKXJ-h+Y*q(su9%t-&Gx&eAMJ`2W}zM4l!Doh>jbA6_M(p5^UYE$PkIPXjT{8G
      zu9S>+0};oPcO*aQdEh=HC-}ipE@u{zqXaC|h|klURXMZRJLSq(Hs^4^aAqOPHpzEj
      zZy?99YhpOKfd%%2o5+t4-m*6ci{&#oXIT7+`BC%@cP_y)hK9Wb$F3r8KOcZD4GTx0
      t48e3CFjX+Yha>oPzGDVRmMiCYbcr`k&a}7icwpD@guM}zczcVmeghj~EUN$j
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVS33yx8l|ILL&$8v~-Oi4a5GOdY6FUi^KtdpK2q@S|Na8>!U1aOo5s@V$$ytB`
      zO$%j*P_~4n3uUL2C6)sLnv@p0(b8F%QaZ!T6uMEEmJZX-Obhd$x9L4ew#$5p^q$_m
      z_dowV=iGD7z0cqO;F;%%XfeMOpc1Cm3nDusyW7*dVu^wFp?IXfy*HAM^|h~-?{Fex
      zq!N+%+EirF=m`f%W13wsAg>owRc|sCHBw!%bjC;+DW-W{-a*DrBavzEP7bGyaAIgU
      zvnm=Hf}G_{wSCFKp=1Khxv|HZW7{LUGVRvD&ip<YSU(Vtq|+NC31dwxJrv3GZ5Ofg
      z#}(^{!0^dKspOE6%IxXf9!U%sP7BjqOL(slNu=917VU)LjWMsDa-+}m$)7;E&4n6w
      zkRYPWh@>+zKc=ZZ)OD^p(5pO=Ol7uP-OAI+VduVVm*I@Az(f<>Mq>CZV-M359~K^M
      z&ZLq%3_u0f7(*$eFOo5$z|F)mal^tr-Zy02No{dP0Z;E2A7Yy68@|rxJLp#LS7l@m
      zCgDuk^not(QFkN}88BU@B5I^}WRgP`x#@oNHMurmm#&B<Vwsgpvs(P!{3I4^Wzss6
      zQ6or`Xs)7J)XX%gMIKjo#S+H);lW-bwI$LU$8_qtl6{f*)<`NQzwL)wW_v8nw9qGI
      zTut?a!H;`k=f0Eyo%e*9PRwJOGxUN&V7C!S0b0m3-MixaY7P=pyUc4gEE`LtGm&^)
      z1kM;+;MQ`CS*mCnO_$Nj6rCViskTS2G5RCJ@l0CUPE>S~wAI*cjuV@W%N4DV##+14
      zrERvZRCKDePPSX&kG;uAD!QsK6H6x0rHxi8T1}mB&sci15jXlw_k?lIlg85(t)(-V
      z)PRvW!wCq0Yq1n&`j0Ddd62?%R)E&Qh@vZhtD-LIhM2UG*&0j7Oj~O$=ZO<=A5+C}
      z!sgf$mPwzjXp=CX>OL>v&a_2Qk94YcJGo@c>7S$MTxqX!+kLt_PtnJvxz=sYslAOp
      zq3DzJDKNv_HzkvHte9p`-3jpPoF>dZLZ=4^F4ySu6sLpCDyqn!eh{{t(zo>BVP3WR
      z+LnvAY*#dcW{O!ZP_%>M@HHsY>gW1ektMxgYZ)b&8hnd#k(E(`G(@QYU5LQtCEb-w
      z?pT$Gt~HFfqBJ33RNB^AZ6+ct#W7vmTuSY6g#C8JJ|w~ALSQGX;3p94OD2M}n=T3v
      z;-*h$Jz+Z>DY}?0VG6(mVRT0Vvcy{O8+tE*zb^MLUg-y0w9%!CE~CrgyHJvuZY_jH
      zKXJ4Bf~_)OucFV<=aFn7tuu)Pl(21{=kAG21VJlhy8D%izCc$&Js7h((zjzEl^jk)
      zF;}lCJCpHb3PI!=SjnqpGl2DkHyKDQsXj!<FkPqUdb$C4AnnDgx92TM+k%sYQ-QhW
      zXf{}yx4PI_A5w2-YA%p!1%U3zkXQUZnp;M<LILUR$z7ZGpw<|aycVF_nNBN!7`v)z
      z-s~H1$qLeKv|nQ60j8AS1``GH!r=T7Wy1r5w2$smbT{3D)PoX<X+aTJ@=3CIn`3v=
      zmlb`5zG^v#XLZQB^ZTEt5z7A>({bZz&eJ<c_tO1}9-s#ik>F0NhNH2hYbU1s$m2G_
      z5%<x<iXNdyt&p%Wl7jC_JSj3C*xa1bWAu1{zLA&KHcQdklZnM+nV6AQ^aMQ#UrrgY
      zP#;pLE0Sr6AKOzjjVY6<Br=#^Lz=dCadX~??5*{pc!r&Pfcd`SQ6Pp?Me>y9FUMRt
      zP#M!RiVoAW$hlT9UZ1P<PRN^_FL33>8_&!I^m#?!#8$wJIxeC#998r!kF?EBEh%l^
      zR`eZbkgwq-Mc<V{RTjn5?UGf-d|%NIWK0Djh4=Z(ihkr7a*kc6%8*wS{lppKeg5}~
      z{(=4x9%e~#6TP?cZ^?7>{4Ix*Sj|lJPm0PZC?a1|^fO7ZGc0JIBAp@9@8^pCnf?Vy
      z%Iarj8K(nN=SMI|J~L-CBq{V?73owe0{>mnFX&CAJxiclH{@hCdqenG8zlk#rJ?|p
      z3FxmC{f2&vlH39<zP-Wb%|RY_7bMWXQ&d4plGD42{)2vxA}|t-nj5_w(K(iK%*^kZ
      zywky4?QQg)qCe7qqIPotx|31^I=v95io^K30Ze%Pm!e9l5?+5+^xyP9sM7#j)VfS<
      ze&bmbi}tmt{zcJW=>zy9FvrrNQwWT!LJ9j}dRM;Q16eLnJV`QqIl`+IB!jGTAi$-F
      zauTNPlGV=eip#hhJ_#B{{9|5$z6v^FKG-A;+2PoipL0b-8&@i>;%X~)JM~qQUujmg
      z)^4?mn!vkOah>p+k}?L9JB<SAm^L>kZWOCev-+5x<F}~vnxc5BI9I)=m*W_sx9N&!
      zh(Tsr?Zs^(9gk7mB;GK?>R8ms(yu|jrUdCRK34HuMu4bwlZ<(Sfh;v%jtTp6f-?eo
      z3GjTTQ^(7=K2AO1X5VkCm=5whZb7NS3z$0mcF0dZzR}nz3WHXr4gYTjW9XJc+=9g~
      zew#A-ja15rZjN1q?eZc&KTkHY@}}w0Yhr^&B8}B9g)w(1UM!msSq0XFD|jg{3-IxX
      z4(=-O?LQQsz#oHu-~huCZnatzLY{>nb+c6+7Zo4ile{a<<rU-;89UioyaMMME#a`a
      zE8L9|Km=k1n&!@%3RYI!KFyGdy&FdngTsSDNv6}Oc#Tl59kiZ%2~WZ^tCH)E>~;nP
      z_)L2fWXkbPe@O+O!Rr*CWg%LFa)^^I`|!gLQC1E{K)J$pWb623>6qs6d9c@Ph*`{M
      zE8ZljdUDjTH(ut_Ju{Ms#*LJ0+<A-Q9+voGtu>JM*}>TWNDO2?SMfH%YZwdd<BHGc
      zPhb)Vc1(Vgx==YYxWNWRS4H12{L$Gg1ro+CnR}2UJS89}Fs4tr`(<~ebZEdA;xoS9
      z3-AC|{NKE8+>@{%_ftD^5@S<5g{I;(VOM}rW}f^vLm>$G>y04Cxh24eKx;n|NWlTG
      z8$&rM%Xe}tjYEvpu|yPA_9kOMPIIx4VL8-r#asA1tQYSvDPebF-PikuI8STvba+TM
      zZ5wbX2}mpe_fcm&nKsO4a-8E9r@3>7LK{gn$CoIor5f>~OBJu@4c2jxTc=8w&nl{;
      z8oB$NqH3yvQ$U1MmdbN%l<S@6PVH&!bL=BUd&kezlvio`+sz1et>WwWdTR-LP9%|_
      z^2V<7v@Q?wjl3_wH=$VZn$_D!@l|}a%=C+jZ{e%mdeqMWF=}TdJ`5}P&tCn#WCt^Z
      zg%IHVOmn;v?NcUy_aNUvb8$Y_Css1gD}=|s3ciQG9N;hIZPff@72hdGkBm@Ri69gk
      zL=ZF~Wc1e*e^pv5%}D5Nc|h@f(xPHGM~L<Bafdvt_(5r?LiEXN`nuvrOtgqNA`VvF
      zL60kbOj@d=MnT(Cil3m_0Ulvm;nl<h>9pAm7IxqZ@<CadhdyGCFS4Tv@~AAyAlw*7
      zFKc6R^gONbg+Whvk?@6%!U>%Dbjlg1fs^Rzg<YM+4z>Bi3G#OSJg|O!m4lT_@U#e1
      zyfg9jEnXo6_}d>*DLzn(aXu~QX+yCC9hyT(7kKeiMVjoYaHq*e$h>0vXI`;;!F8|f
      z7R=v>4dxXA#k?YFm{-IG^V&d-K%I<xK|?$@uQ(((uQ>k1buS%5O}H*aPaL`9dk%h`
      zf@=w`dT5l6eF8TnG!NfFd8q9oO}mKZ<M(8%6CFn__=WDY0N^NwC`7F`)CrgtqfH$q
      z-WEDSZKJg4as0LrOQlV_(nM2MKVS%bRExA2-$LhV^cFhHT8~oOe(DId0%wGlgtBxz
      zJ|Dy9WPDBu9i$~$I_&^eS$Au+ES;I7KOe+MyNLqY%~Y-3LiO6MG)23OW@xw5ENwq6
      z&<@b?+FhQhEpw-~jMjq|<KG6C){srB8L~Ixvl*YQ_-wPJpP!{qPXd7ugKCaN6YNUb
      zeNf{4RHi*ZN_&uMw1=rldxYj{k9wpxyV9F&>6*OQu$6L$EqzT0BKt;YK&0X`kfoU1
      z)(sw_q<J%Zh<0V^GjgA$&vv!GNOi4Qy5cBZy`RcjIZM~(*jYMy3d{~dKO-~~Ds0i7
      zp$_dZbn`5&)SjnK?TClv8k=PYHPDT86WD3;p2TLk55BCybc+wuzHOuQ#je)6TMpB0
      z+d@1_cVy|#L-eI1bZ>WCmhM~Mx-d%*3Cq?)^z|GiOJOg8(syC5A3{+tLs35htye(n
      zCnlAUCB&vu1|NEg4uV1x66FYGp{lu9G^2C~-l)k-9-H0{+dCJBLY8`-&eC(v{gEua
      z;M~8MrSCcSKg`mPbMz*|?MeG7?D!f@)o?(gy$)JGH)&Zez1XIu$*U(@@Sh-9T>4tE
      z-rtSTtGN8s5%Bs5y&=#4ZG_&E>#s)WZJ~$H8(DfMcl!tX_WdmV$-aF%OaCjkSrY%l
      z-K$ypFz*3sQt81gzEIJMA8%z@%S~w|$_~<g0gb<jX}yJM{gP&Dzk<epLrb;a!U^7{
      zu=YFJqP;_g_Ac$zeovQbf1thEAL$zHeUEcoYft@Bs^lP7VDg&0CbE^#1r<nam@ITS
      z%gVaKf3ai+a(wE<y4qjB=dV~QA5f$Ap+~)wUG?Jqm5sc?Ms5tjy`Ph>7v$@E@|ABp
      zy_9r4Kta8Xs`YYe(1RZEMi(3}zijYd16*u(Nf9m92=%wjhMWPoKL3F^V?2C2%hRL{
      zpZBvo)4qKp%d>K~vjy^P`FcaX-j}aebILJ|rPooJUQbGI1pg^CO`k>~eL5}IXVO~z
      z7&=>TqVx4xG@#F+xIULI)SGFiK94Te=X;EGi9OdcyrXiAh4+T8v8+H|C(IZtRIWP8
      zhdDVe=33Afg3BVR)Z3{F*IK>9qt7~5pLlm?BQLcVVfkU6w=Fcv$K~Y*{Ui@SxeI{P
      z!9swL0JP-;bQS?%UdW4VfE(ao5~Y@Kx6CTb?d#>*dOtNTe35Dw%8#dcNeOj7K-Gu&
      z#BDXvn&>E>-0hJxU9z?g$I~~$m(HfiI&`ORp$@&rlx~HnB{qGLb&8o$N~nWZ@~QBs
      zAhqym$jZ<&uX4FvXLIWqm)mNSTcvQDG^r@F2$=PPSs$21!K|Ma=>r~S9WJvDm)Rmd
      z-DWo5WwzF3cEDz~vVhqvXl=&AqkP7GYFK!L&#?3tHaXS`$9nF<|Drt8;F$r>VLC?N
      z368sIg}%qbbEV63rOR^#ciTLVw|Q!^xw5T$5p*lHRWqVpO{g`?8%^V8d2<_#8*0n)
      zIr0G4^UlfnvYB@DD@oI@qH_Ie`0;hrsNX=-^&4rfzRzSd+ro7jHS;G;n?e?U3U?*=
      zlO!BH*gU%NTjEBoL|m-#PuthNoX{!()bGRsx{GS`yG<chl~wBssdb70IfWPlI%-23
      z`Opsl8uf<$(D=~uGRKAv!^$S>&|&W1);h}DM;HYL$8w9ztPAyn2tOmmVR?sH7i#i0
      z#fCirSAi|z9FAEH>PI~oCGM<CTnxPVnGoaU2{7;?XhMwFCcwZu78~OfSWV`F02Y_{
      zlgOXaTOKGUfT6oPB~%SI)N*KBQeq{vofNDK5%F_Iv^4z=H2tm#X%!fiww4+=MV&TK
      z8?FLWGU-wIHtTmwzkl|OboAT6Y3jB|E;IY10?&yx2bNCq%mS}C?4lnp6*+^UwLCnr
      z@Y2en!go$AeCoKuHQwc_uoe7e<^}v`dt^KOHQqh(z?LEdnfLHTw#M3V6^S~Q#l?BH
      zFJ0^ztlL^+d9P^??zNq#2^A<`jOg^4Q0oY8j&lEgs=!u<`?271wlH&S>2fMBT|rf)
      ztEsWHla47}<55qOYnvuJR4`vwl<ejCWV?%!#rss7>{&M1Y9V{ML-z6<J2QZlo&$F0
      zg55R`t7?~3wZlqYx)uZ8>j3Y~2kr%MAAqCd1M}yLPIqtqbO(!07w>h8vAV)xbwxg_
      zU0}5vtgJL;#p@!|<u4Rvbwxg_y+v4Qa+qeb61Ow+8FxwE%JMbcNMzQYm#@k44PC9+
      zErqgtb60B)+stRB*HKC7^%N|<0d#MqX{9&8clOb-r8k>0{rRkfj^$hVHb@K7biN&%
      zDamIz%CmVa!EbT<vcr7GwoyKilV!z=dpz?fv#qbm>6$&h6XPXpR)FeVtxxmaCHNZ&
      zCsvt}uJl1r^`@!{*NH0lD^^aC1GzB(?=1v;5`a&cyeu;n1H?Jr7=ZT|0zM1C=OzHe
      z`QI3T4;2Ew2*8&n0K}=`7=Vu!0=@!3YnMFslyTTN2H-ae0e=R-*C$|z6Us3FpDYA?
      z6M)_nS;Q#v2L?8vXS;AvGGsR2@4Tte$+nvORYoDer~o{j58%y^4nPS%BfiOp`B_|7
      xQyC{wray-T5y$m;TyfsO-^6tuu1D}0#pft~hj9HCJ}=<&9gM|-;uopp{{TtV3g-X-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|@xwq3WhMJNg=Dn<H1S?Wh(Qe%P*P0)fSYTswK11#C@;_epoN12Ep
      zHSxjt<byxTcxQLfHi3kPosT<r&YW}Z-QRz{{{YayLj?(jl|z2a-|7B|<?QQ6Hs8|?
      z?pvn*RE`~P2>Z=;si7dnFh82QY50N1&0y0EEZ1R}3=S;6v_XKK(X<N?n{?r^<ygTJ
      zhI08*H!59*RLkv&3>dCxn82ipB(fS5Ofe+OG9lNo9I-p-8^U|d4O=iwcU+U(UG7<O
      z9|u#CEW_$$9xgSAY>t$Y%$LI3bG^RkF)T%_b$$});#fF=9yzfk*Ud^-MG@B&%*D2y
      zpQqtE<{2{kB6#HvJd^m&lq(@C-R4w~7sjD5gQkK-QZnl6v#>NO7I0I;5^j+t1QG_@
      zuE$V3gOU7NZvV)2Brg?rP*SiQqlK*gooZN-PHLWbI}m=*cFh5qG!d#}Sd3_$ub0wn
      z*(=0<%+rV_8OY4DqwzQCNR6boEm^L@Xy2_%#YAY^afH{hx$g@il-qJl+x4kmcSLaD
      z_7pT2mPgIGpy@Q+#{;s)a{PeX_H*&xaJkou>PEnG<Bb?|uXM3N9hankhUN3J?P!&t
      zPeGdE8CpG}y^N^U+E*IBK|2j|axxa4kU#7L^0e3Jj*J#CO*6w)%)}@T%_)i%YeUTb
      z#KO+n5I1(~zo68IxcwioNF2aEBF#>bWuH)BpE1k6gy_`>Ax0-G+{G&4rZI&wD#RsA
      ejH{@To+Q@jwFK%|4;fLBXa@1pX-tvodw&6wF9$XN
      
      literal 0
      HcmV?d00001
      
      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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
      NqCYo^B-sMB{|gmu)kFXQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc^F5dO|ms4XkyrXqJKYPTROib#SnLDZxPAPL%p$L;O`4{3MJ?sEHCCL&Q2
      zpN*FXy!{;Gceafd@e;GyIWu!+=9}Aj`|agx0MnRD!w{I=a(0|OJK9zLrv0SqY}gei
      zQm%bR(<K$fk4obUZma@d3(}Y2Y8dS8r;!rqZ}wfNL~-c2aot#;Eq20984HXoX*1i|
      zjcvIj{n$PpZeF0fqI{3|i$SgC_}+?BlT_B-st)s7i$h-1vh9}gReW1urtpubC%vt*
      zKx#4YWEL$rZ6bpXftG?*&Oo5kL@U}f*KHz=Qv$gq<;#`rT1AErok}&yC~%!>*$I`F
      z8_HDtSVaPJ3Euzrku@1r#XQ`aM@;sQonDpUMiAB{H6wqh^PcYHyj4zPurY@d4Ngq5
      z7{IWJ5sV6CIF7YoJ9Jq~Z^3Hn(1XgBbmMt#JZ2(~ae-DEm+mGFDrx;C6PLB#q<%T@
      z)P|B_q%SPp$)bSO$TS&PBVefsqcOvhRc^;5rqZ|~F!a~WFmWFJ0)pud)&u>zL-j5&
      zDNlxKM|z1YkgZpFU+JlJHf{2h#-n-3=N>OsohXt~8nXgp&71uDS0K=Hd~uU^fKjeY
      z3*VE$pBqF9y+5P|Z!*Y|wo_WCtnG5eLzu;h12U5b=z5wM_K<cXMf!&H9o^oe10T>!
      z&1l^XXK<Dh1K=ECM8fqENW-vC4VZo2X_)*g46IK)#}NMu#b@Z^dGQd1W%9Yn7nm^c
      z6MC2#14j(@5hgyN6Q2ovgg$)17``^8k^hlK9yYELw2#$IlQZ~TV-y3|F~d{WEpP)j
      Gk^K&3NEkT)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4(N5Gr6g{_Fwr;6X5D`UDa1&rj97%jbd0-<-(&&S-FFwt72OUyd(&+-f#RHJ=
      z;0O3o#yhi3Ktp8HbY|}4o^#JVcYgi8{0U$KF9LW3aUhT6i7>}H|0WJIxi9+C=u~Xm
      zHPNQp+imX@>Ck+T`5;qe0G|+BkjNxMKJ^b&S_Nnlp150iTnTlg@=7?ErBJyl3C-%e
      zHtko0c5-{oP0oL#b6sr_R#wLWtn~<fw-~4v2zMg{xD%p*sR%8^gvP2(m`Zf6J`R8M
      zRry8sGeww5id1GjS!x^Cm%f!s*chYkU*@pt$$e|qd&zYMgvF6`@sBC*tUsG;y^y8O
      zM|flf#-%!BRMk~k=A0uC>sxRdZYChKT(zVy6(Rgw49isQXxmnNZGJDU-Gpd2=Q(sU
      zX^b)fmI%wY&w*i1Og()pvEl~*6QDS@9`jT3Ic~xBGRe_vc>DojXZ;LO=K}XmIr1>g
      zYm;+;ubAOAa_12DG0PF*0p@Ckx4c`1iOxA5UV%e*IpA{25zLK}Y64EjV=OR~AL4ja
      sIa3w?rSk1)YE|n_B`dvBG-~JMT02y$@$i(>JuKoG@75Z^b1Z}Y0M`z^kpKVy
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVKO>fgc5Pjo>m>9Q7TWHERDS;*_)PQ;mLV^GyC@K<dBlWn67rK>eSGE)224~<3
      zT!CMJl!C;8AHa`7%!X9NRRmRK?XJh3d2i;u{rT(r4*=J(WWpfa*b+VQ+=-qk|EaU%
      zi6>55M5^Q5(R))x@p_}AkGmok4}|Y}GBlAU<aM3n39fq7-jbczM20XwiY9x~kDa|@
      zeM(=3giO4tqS7@&sX3ZHp1j8SH<hpATZD!3K?*7@Lb@KfG7G|l4HHK#q>!_bMV^o<
      z>x5iW`EsSZ-In2+XnT?{-3&UyYl%?lc=$1`TO}+XfOo%2+<2}N_&jqQ)i+ru>GH(M
      z36cuk(|Xk^tt{qn%EZZia*o%>#%Y`(6uLXEh-Fi}2)glV%&#j_x|)(28t<Hq^SHpm
      zcx(e<CNa=M?M=<XJW3`m5~fCN8T_<yNo!|?vL`&HnHZQ?F@ZB~9JWBQ2qD+qb_WgR
      z_TtBKJLu^at<|6#cI17feaMg8yd~WT!EX3`aq6CkBFS#BcZvImA{(9Jbp({pYrpw^
      zr#a5T;{6y$%P{x>tm@(}?CLj6e&NW#6z>_%0bXI6cYE+|VFt%JBAmeN5MhlOG{Ri9
      z4|}7JLi*({3OeZH>{k^3;!ScU@EQ|%g96?TaA*J24sjU;m$AUegz}*o-Z8^_X87<Q
      ghRUHCJ~G26X88P11_M=|*T5pK@TnCip6@E?H*IA9bN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIQ6g^uau`x>dPy|5~E6`R5Ac|1sfsTxEIyxiD`?g&nOh}m|1%8OX!Z$}K
      zjt@Ti;E!@Vo7S;)$_x*=o15Kx?z!jQ&9C3ze*joQ(L_pMbzdII6DK<Mf?em(mmi&q
      zjJ&F|scqSd;ty_CFWbsj)!3^CuVhg3RcOKx$mn3lmkfPd+2_8Aeu3FeNOh!w*y%#h
      zjtW#L&>!!4QFc)vTkeeMO{2*3&%MBlH<)7XG6A_A0i#r}sWb$x+c0s}LLUZfq>&Nm
      zo6`pd%3h$}G!7~%d@n1$5*RAitJ2?*p{M=!M?+H;Si3~to_dkJeI)&cD(z7&RTIc{
      z*U&?#ms-1GZpXrHjGGvvPMtDc6k+2ICRp&UinqKlirt{5PLgt6jda(>l-{?wUzY9d
      zH16YpiD`l9&J?{nVIzx&l-6e>1%|sMd9Ax!v<NqAV-C3%kCO8J&3YrKQNluZ-K_xE
      z%_T67JdT}roFt0mE8-L|Z{m@_U?;64#>N610W(yG(hEprv<3Vhgzm9mS7*9tUZkBK
      zGEeKZ#3=W#v&=L#c_5R%jr1ZaU~ShMVO4E;dW13^*JnX9r`&G9nJ@V=iWF5C>ADi_
      zOGVY#Cq7poG8sLuys0VrX;`$^=&jICakcV=GuZia-1w558Kmv!8Q?R9Xzk?P!Z1eY
      z3Eaf3Ho_+u#0M4%O^m*vncT>q5{l0$?oCWKF|%%r89y=5{xoJZk^h%voOyt+#5g6Z
      zGfbdK-shOdw<PmQ3%#A0d9cX8jjkz&WjrQ(i}SO>w?4)W;R&9SQ3|U>P2m~Vxaw*J
      IQP&~<07Wk`YybcN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~ixn6n@S&ArQ7Dd|QyJh;8_=u}Z6!7H#<`OG%4`g4SAHk{4LI?AF~4F#Z7V
      z`~h&`^rpj&j-qX9z37!=M;$-LnU3DudoR56g7LhYWD^LQI+^V5*>leGp7T8CefRtA
      zukQmmhU*b1g#IOcMPEy}tA@3ZxMAw^i8<XhQi-$jI$^lpWvwe|XI!CKH!|LsZlz7(
      zL=YmxWM;zDIq%}!l1O<GR1vyL@x+R-yhJfw;t5MQgeq^*aJydM_=(bly$cxN_)~^u
      zc!Pu^@yAK%o*{&W?6jx>VZVw9s-xJ4Iu$jD5%$GpK;494i3^$KIpIv}bEY6POxP*i
      zoY5Ua+WD6uSt{YgW2{@w6ql|pOZtXPBXwP*35RkGB=l7;QNquNq-vmhCW<G}7QsQn
      zL7(5f!c?^5Nka94@Fs1;^0@GLw_l!*>c1PP!67^y!Bd3J$_%S`2Axcq$pR4?ceFY#
      zRU3#hT$hUHaF~fRnI_M$t!Z1c(qfHpc&944l-(6|YqGhxif;4}Y7KX4(U|v!?N!TH
      z<VqBMI2yt8g!<BoeJ~XX@U+CZ<tbtEu<`0i*4NKu+&;Xh;wAKRh+7B|>3nsexF(71
      z!wD5HOPE%MIb)?3Z6^TpLuJgXDo%oBYYK39Db4bPv!a`Xa9qoSomMf3*O(1%#4l;b
      zdVV)&RGh^S_p`ff2I|a9R@i%z<)9kbnmJI55uA%)l!vC2kn%_sW3u&TE_p)e=>R5Z
      zYFx#6zbQRk>diGJRY|J2AXV9KxI?z(IkqWvk$g<5ctfVPI%3&g5hd7#>^@AXn3lXY
      zbDw(`Fr#8tme?dLH{<YO!egVkGlpyU8!znd1VVdpX3F*kbDxr%h$SvY<z}5-Ms5&E
      zD{Qz)N4Ty?%NE{Kq08o)9PxfexZbFp%D9>}%Q^Nc_v~-bORS;J35EO-DY-OjefP+k
      z;T4_3j=r!U&8Y88GBMJavNKLfj2iMRiItq7N2PoWtXX{c4VgL@#wSXBa`(B)yO0N(
      z|6x!pCQmIssjJzpL6onxZ1qFo9}w;7y#ux9E)Hz5rJ$a#RU8Alg$90B<uhkBqKWS;
      z4O(&t^d+wl;#ZBmS+pj5ZZiu1Z=<6xi)RNrl$!``vFpe>KFm9^=-ohl-ss5U*e1Ry
      zx<WV6p0|RR$2sbiO?+JTK8sW9XbIw8@3@Cy1)K27A{jy3#8s|jVjbf_Mp-2%^Dd5O
      z=!SyD=EY5Pl$eZmpkQ(j`N#Y%i%VHtE>d|7txVBp2-D|irY*G57ieedI_VA)l*MVf
      zi*xi9#`u1o?juFt;sbhskLWwxq95=H{fK+?6CTjdcu2qC5&eq4=pnZ0H)^2YeTjN<
      zGUO#<LGUKtVv)jh09Wufi`tBBT*W*7NL(ujh+&SABT&#Si+5*>l}DwI{y;4~@>gle
      z#THiK!N{#bm<te(Gnz!?Mt9EApCu6dUGQg#!vcs@Wr)8kK%^@|DB%haB7pcbH`~xE
      z%=QMF<zQ|6kBR7%n^CDlSc#!osYjdAfOe%3-AWVsl@^RCt$vxls?Y+mw1TRvTS3+S
      fK-Kx6^ncSp>HN>`6)gCgEyCctJSF&RfhEvC&+0<e
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%TgOh6g}M%Xb@vt2x6QE4q%9pa6B;qKM;v+1Q;119OKAIHmR1TLE{=`l+g&x
      zE{lACx87x!s+2dW!geK9aXFh*C7+NF$S-7<%IzM6B@7iWrssB_d;7l5?LYth<pqFC
      zxR(HDxcWeBi-%TY$MH6;x+^xUifA}hYhJBIrxAW$7`qerbs2=a`I_)H<+AW>R|W~h
      z8B)sHa_QJwt2~g^FoAA{5q(;b!fRNaw(3IZ$$+6dtT~Obj~K>^{~tk)^yeJU2|r~x
      zKk+68nKDB>@7uBm3@1z^U?dU4DHA<NF~la6!l|O;$x?HxB7=LP;!1{e(XR@(ECNUE
      z_YdPLREF6%@OyNrDEyQ4jv6wYi_)-;s?y@N^uk=GoWvQtlfc^yXOFF@)-~}i-lKdr
      zW!S2BNo-L*0}~k?b=0EuFrY5y44h@?+M?pPNep8&fsu|*MrtO`VT|f7ziA4W(tm3|
      z;I?MxGGD0>KQM6~6AZoNe$BPZ!fn3hI$}pIfh^tB-f+c;RTWAPF5qGUA2N)#<404{
      zgazVG$|dUs5sFv5>ZFrYm9!Mvu9fRW22&<J#x%p}KyLZl^03ZpL_6lHs7sekTxpe{
      zBzJTPl#^>FW|fnEVcUm2sD$TCd;%i%V6$$EP!`3m-wfA75=&Cr(q>=<12>324e8Q&
      zIliZhWniB8z2SSIfdxW0oQKlROV_>c*kR4U5|QEHY*{*+HBwwAeiIEtKisWLrL4m=
      zaGSxb()O<OY#FHGWYoXmh&addlfm#^TZcmlbPR_|RRhF)!;?GvO38J<8C2zxqed;&
      z_QG6L9j7P?9=#2DS2P+@F|Nhsj&}zmG|@5oy1-H?HQ4l;aoYDFNoz0drfJXVpUh4^
      zg_(VhlRs&lK3cm;2Rwr`$)=LYsviUNCx<v4-N1e%4>3AQPd>w7dgvM6e~hn59{(Mq
      z>h~Kmk8wsxFOgZjkllm1hsmFDiGvPjBCVMNt(i`(s~pPW%RS`c-#$g|2RtFG!Sr?Q
      zr@w`DMc5;a-R#5?5f*AJud#uaUCM~S`x;z41g0WzR)e<=fx{6vq``s)`wp(Xp}<#_
      zEK|L}r(p7F4Drht=T|VruOZKKSmAT{f?r3C-$cmg@g2|O5nsUfd=XFh5`N{k@CRSU
      zU%Y_7`EC5eS6GY}Ss!23oyj7us=wbEC9R-Hy&1;|tfEBST_I^rOB{EodmNwPuI?t$
      JmnLf+>_6&*(5L_a
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)4O>fgc5Ph4tF>wt^3zR}Bl-AIsMYy>k1tF0@rAh`4K<;a2+q$^BmA&TcSHS^+
      zIPe4bF&y{-h*>*;(?it5uDvtw?YwzAKYoAv4xopQjT%Guh`-_Q{OoNk5B!sa@B1Oo
      z;>aJEJy7cPBRSp`BJp}QEQYp$`w1uT^YBPS+D3z6t$N9;y~kpo=ZVg|fPZ*D;z=$T
      z8u~EKyd5eSRKYVU_KEZ$ma%@waJO@2R(Hf;4b@mQ!EoM%jdKp_Xt`*j%~0<cKr4u)
      zc$OcBB7Mojg!C;2D&onAr?ELtf|e1@uzl9zUXMi2N2%aiO!_{h{J%N<(uk^;eFw|9
      zX5%Wu#w?QtDjkb7bFqT!)XRa;gIsGR%Q(YoXWHbj!24yI6wc|g=jExsD$*F77b;I9
      zu^St2E}tHTdqy3DyC<bchY8OzK{mCX$S6@64boGg57pR)$FMo8k;;6zxPwh9WgdK}
      zj!%>nQvV$!hL!07sA%nuutP6hr!@!GZkq?E`L5Aw!lCFq{oSXti8x!^pW$wO!G%u+
      zX2HaY46)fyEYjH}j)`8xCHj&iEd9HM6<F&lu6(3i4Tj$^c=oH{E|vKS7qGC38<el(
      WW`SSBE&3W&rUr<!PP>H--2MZ61L}ML
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g^{`n7D?RQc9sb3K*KS2$!yqf{<t+QY2FrK=u=7(ztbJDtiJgUj+*U
      zV!;RSQHVQk0H=%6#k}r4XYRR=pTEBU0Pq-17ZyWnm%rzSQSl*_JJCVLN6~;6X%cOj
      zJyvS(xg2(d$iht*4nttzQN{`Udax@J?V`r8QvKvz?}ZrgNv4Z1<{yvxJevrHnjWV`
      zxIqEqD)^L$Z6ZBQWvZVsJZzqs)#@`i9W@knFkJBA;=BhN4Igy`40h818gVMc_GEt`
      z^0$1Dk-qs@B|Pi%JT>pB(J`VK*3TL|+$7O+NiMh+)4We8|5u#$aUrU;Y<pP3br;td
      zR!=KZFHy3~6Rq+iAIrEw`RoYY8H;3ZOC1_7!$Nbm(8fyQ?4cMjEX^cT(Zt}rQIk9o
      z-P9E2%E>8sWMnb;Jt;-r$#_u+s!!vkOfpr_1icb^tcEVa|71`ZEFTZBN})`rJ8J(x
      zNg?&031V2D?R-URtB(z8u}$k7SP+;_(_mY)>hQ=qN4F>RHWqJf{R{lHuekWR#9T7A
      z(nD;^$2`4#;uz~?EYL}ku=w{ER$`rRxcZ5F77V{;@K#WA7mxi@F5uuMZjs-{?GnF&
      SJ9HXVCI*Oemv#sDaQ`>0ZRMZ<
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5PfT#n7D?75=x+a6fiVt5iaTlDF_Jyks_sV0CL|ro5roPTiI)%{3<vg
      z5C?t$KMFDH25@>PJ?z^1=DnS_GxPJ;_a6WrqUFM3Xz%fN{6m<%kL7N7knl-3;#nMp
      z&&)nhYX7Mm_k>7-Z5Iwh-O$5?6ZzF>Pej^9g<-9H$=m*OG2wZlvtYnK9u9eu3x<lG
      z##yjM2?u5J2^l*idK}AGKVi7vI<=}jWN^A_EUI8Q=flNW4>oE(s;D#AEkmdcVkutc
      zvyn*O@KHkkmIo^0$&jb9InP1Im}b~KZSr87OfN;L;9AVzea!j4;&hG*QLbgjLlakB
      zTwz#0sYv}u$sUiiN)LUk;u=F^SLhuf^S&0d?o>qkhC*;_vDyYDhxS-Z7@7;ODj8$&
      zUaLHfL@zd#xpaIK9vE*7eqTzFb`zduf{IjoA)`cPG)6l@Pu18(@SkUtrpw1YtWzq}
      z?yj00C@G}=Ge!)ni|sFYZ4a?UeYR<x0jt+dyJ@;DT2*+2F45m3Ivd2>*!%*2<15a8
      zE;ttqRzyf`HLy%)pEL%&hz5Ph5?21+!V0eQ4VOPr%!1KZ4Bu)N+LfdDTnjk3jvExW
      XakJpB;TC<3E0Y7HxlOx+JGlEB{7>hy
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g?B0n7D?7Qrbd!6fiVt0T-zYq#z_3h!n|%1(5y3nKW*lnaUnR%U8hy
      zfmrYXd=%o28^GzJbTO}c&zXDX%>DW6`wsw*(R5H@XzlU${4mHq#Bw({Ncboi@GOpk
      zZ8L{T?LU{pt`Ld8<-lfW7<iCy0>2*YiAX!BGOU&_dDnX(Mm$e+=7;>_QJ*KdV5sVG
      zocWtnFf4;lsn{mc(^$s(8N-9-nOUtqgWXX>Q3JyT4-U?|uu%6<LxaI;8bCdarFfN3
      z1|ogS2MOt$4^_mIK2KwFo(63rnqlLt#r-W3Jr|{dYcYNI3FZIHX&)O=_Ok6_8P^<K
      zWmr4Sq+X<Cmq%KqM;=yiondKL=+0O~``hYpN65UV#l)Z(7Min$n<$C2hGN99JoB)U
      zHU{^N%F{@6V`I*hlil#h$Ybz&Qi`;b@GKMLQ~jlk5|vRW?Fc<qLkIqUUQ%i>5BIS~
      zrOc0a)Z{=(A@!e5Vpy5&fRff$ADi^m7L9XYjfVMgYVZn;8eEFb(e4SIO~hT__yTYJ
      zD=vO6FqcfM$Pl~I!aSWl;+W`VEYM1lu=w{DR$%RKSo%b{3Jkw$@Rf%Jckwts<pMTt
      b;3nlQ+$!*^xJ|23Wom#pcWAb87x#Vx%ChMS
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E>r&G|7(L6jjjfS3-b%p>YS9*uc*9GpC{!526!2PyKhC7>D$$rYNeb#C_y)d(
      zI^)3Tj1S-+pTfVsfsWrMRU331oJq3T?{?0f{dPZnfBzA{X-q5VV<<l|*UV?Sziv4X
      z^{2M^KyRA9)zW9=x9+-+r=9kk5O#4=L4qMC!*$!F;N|8c(Fzo#7>0X`+%>L?2WH0(
      z{9@gF@w{Q$9l?+aRxQ7HiU8}q!T&(4QqpD1v4Sav@zS=l$_<7@&25V`7<Q>pup<MG
      ztco;p47?-*vUST5OPwc8;oUKtHu2kCcUz|2Fg;7oyT*hh%`moI@Zuzq-r4em8Hnz>
      zw=n-LPBjvuSIeq`0fzoiVskyvYp(5j8RRi2$q$hpCBrbvjSLRru!2Jjg<dUZT(2#>
      zIkOeG-g6bhI70gsk&(-d+zb<umijM*suAClW>`m$;;U)GKc=FH5r*WwdE?G3RSgB{
      zsUR7hP*FmeL5m<~#G0^wV%{$qTT}jb{x6OS#uzHST7-QSq2D!b3E%B_Em5qwPoBCR
      zr@hsY!6;5jjVBl`#apcz6C>6LahGhXWDqseKrF6j&l%D-ZAG}T6mB_=@EC?-;qkK6
      zPyVXecGrz4wmVzy1Tr(}Mq?^UV#wSMS2}0Op5C|h5Kl;n7}T&<%{F~sP<v-*otEwT
      zbO9`iVAX9axWaJa4>kXOFQ~YRYXl_^YACNGoZ#mLKue3O*&{`{fm3usIlW1+TuvTT
      zx|jOsO(R3ro%DB+=F*ZG9eW3LbOZfw!Wd23LJwv0EOyger5tJ9gS|8oCG783`9=t`
      z_R0t3S2TQ$o(&Wh#}k`4uoRg$HGJ0ah0K+NwB%lBc&Xu)G$i?39Hpm_EKtVrO6mhf
      zR|=_<8yK%B1?4pr?}H>&K|jFvK;wIn=lf9R`%&R}RQUj=cmdOV5H&u8S+Xtg1GvEt
      z;wFs^ekfeTt%zuM5kwh!D3gYHy0S+IC65`L!C4ZnOrCROOAzW|OwwNx3&`R;c~fXm
      c#0C0OXuKHmyF_tPAQlP*!mH9efy<cs0c+=w&Hw-a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+iuf95Iq}*m^g-n(i;?L3xVbaDK8aL5C}peMM^<}HWH5;XG2{aZ)7___$qin
      zMIiA3d=z5F3BqY5=)>-MX3xx=IXnLO>)Q_i_i@)mN}zls-^ma4@V)E5sgFE4sP|;(
      zI`yZ#ceH-{#P7G1@`^hq(gFpB*F8z#7ri6pL?$u<8_6UG?PqEr$6gc`JM!bCE4{H2
      z$V7*3Slp(9oh0}l6&n=v(DmKukwC3<=BRR4Al=k`m4(0s8z#<MFp#&AMM1zQF(BV@
      zef4}i?5SX1_B`UZ(9w?cx-xLto;lM@TA+H?;>8^zopS;uBQ@*$1oOY*G^Ro%wQQJJ
      z6<9x|PutP{LHnf&^*C^pg{!z`VohM{6f*I49MqCdq=Si#>$oAXI3>0_97U5>Acu+}
      z<SxxW340qBR<Oa6Z3-;Siyz;!h(=!x1Xkz7N%SXRy^0C9To!og<V4+L_5ya>_f^pJ
      zWEd*aI=|~Xo(^dm_f&MK`zFf&X*4mUHmaymDW0099*(rH{OHd#3argHlHgkIVw=Xr
      zpmh$SP~fSdpCm;q3yZut`g%Y%d#p<J3+&1<E`E+Nm)IBIP_$9P0@*gju=g?+=_E>6
      zo@IGVRX9uTJ62wQ#g${Me<CvlPLts<qZX%Fp2B7+C;&Hci|!2+WBhI0p_9pRDNxK7
      J?P-)y`3;Y|{&@fZ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pch)n7D?7Qc9tG6fiVt5ia5oq#z_3h!n{MiI3bj_NH}lcPo1hlwSo0
      z1meIC;71{5-2hGxrH5U6-@Lc;c4mJ5`u+pJeY73a7&^QB9sdyI?-RKl?5BJZjCr0!
      z!KT?mrQSY~@j!^w?>ev<T818^oX9W6yCTvK>I^H@OWq8hiU}`Lo%<pGcrfB=AsFg<
      zC&~Q{N*Gqj$7Jl0=usjQ{g~ly`^2iwh{5iwSTw+J#)E^?E-W-XG|*zO+J?{!6Dgh-
      zdt;Hk=Hrz7&4()D>4;~EIZr{`m}Xc%X>z|yrstwea4n|qKH~geae9Y^sMfOQVhNWW
      zTw+)~u1Ld3$pMeF$__j%;|jUo7WyTR6SY}rt)w9^EVO59ZBX)O#bUy+H1np4Ee7|M
      zDzZon5>uB8M+f1aamL^cr4(5|<#{fsM9pV1N>xrnv?cV8iXHg>c|>KlJlw%5r83R#
      ztG#_Ch17qBh+%oQ`4z975jLpH7OhiYt(Ivv&327e11_O+^!Jd?265Nczrb7jinE_f
      z&N+jX5mMU^Fi&TXGzLA71^SXDEdITPm0bH9E`Fj|4Mtx#e7jp}7Z2l8Ey1{oYZSL|
      Wz2vXp27QeylLMr=NxO|(xcwUdoabWz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIg5IwgP10`BSQ4myAL|TyuC~AvnMNpIv6~X7*_JYAQ$t0;CKgCB!XMA&H
      z1`wUm8DD(x7x-%&_ufPdr8Cl*HtF5FXV31Q-Jid|d;>6q1q}&?kyZYjzcl<8roCdg
      z7GE}s+&4?cE%`g+IL``pc}fVYw@@vcPN5W-j;$fda4havDEfiNOF?L7Xm}=GF|^Id
      zJBGyxdcL?SN<p4sU+~oQdoMC%lywiGrPG*co5484c>kWgb_dTaF(fCPvS<dwejOT`
      zQfNS0M>AT9bbn?^TH16pVjn|##<ay;wNez`V_vj`Ovov5Yl(ZN{2v`AWkL*>_ev~Y
      zNlGnEWuuxt5Z<!mRYaNLWSFDDUj&ADF6_Vv%Q`9F^O+?L#~51wm3ATUsCg-L<AjFe
      z4DIpGEKbjIo398@$4T@sG_QytbYSR<0>v8?b|vgtcrTyAY4mD1vm<EOPaS8`$IwKe
      z6BhTW42SyT2<ngk`jOR;p=AHDRwf<iF+fh_|48^w)hmgDPhkbGkU-+}A}$fQ=@`?t
      zTa}s6RSGbOiy927U6i|1wabRjE3PHVhLY~WD?bnworFKkpee$p%g`P1B^~bYnXpV(
      z;a<{l8KWUb1r!U+a6RH!LugyuJ1}eA^DVfFoQ7)*9rbui4m$D}BiTBxu(wN6OLiBq
      z6bVhsKs{8c>P4Fd)3l_DCtsF?8&362%2G8*W-}i%++rB22eoMXRo8XAK$I1QDKm!0
      z(5Tc)H4aCyzMd&Jn^)9usn|-4QMYOE{YVV$Ax2G|$+<*DqHXkd`gRmtHIbo(%iR@f
      zg;Zbn>aG$pq!yGQWl}U$wF_}jvSrYxZCiLs%);03kl|cZssC+M;-!Ly!;K!=JPov%
      z6ZEC^1GKiv1r?n%BSrQW`gfmh$b0GR`3>mVPdJbr*ucRxb@34W9#H0Y1oDRV+FKl^
      zvm**NjdpsIpR@{*AjqTWh=7059SV!F>^cs9N9Su?l5bn+n$2$F)W9ar&28aAE_q=K
      zBe}-TWM|`NTuI<P^e6ApMBn6-HHzH@1H-tko};*-o;ef<U9uZgNqnGmKB5h4WL>A!
      zH_?j?^x+eEe#R)iB8Ts!{2z+_c*tv;{TL>2n^?CYgGo#gau;FT!Ci{pL#NZYha{ot
      ZRIC}wG=W))oWLCB=_w1z@BojH_yZGf=lcKv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7U2_vv7=BI?x@}lU8fYU@p<*fdWJN&HAex3&3i*<jqQ$S1<fPrY*^RrKqIZ5f
      z4!-~{82^IKm^wPcz>OFFA8#Gsvx&*3FitMI*>m<i&-1*`dEd8x{qy@H0O!z95MVgJ
      z!*}`TnsZk-x3spwn_7)KdR<$R&!T00nl~FOLKq8GtKDf|6GmIu3PKD~c~CPr9jnxK
      zMBP;|!En;s<#%08><ZJ>^0(KQ<x5d_Tww~EVZz<korRYflEpEpb9CskZtCt8hD>7Y
      zQ^^g6P{C@5DKH#Tp<ptMAR;QJ5M>A^WI&{-o1)xl)r7syYldKm6|FiqHn^?Jb$>G?
      zMKfF+m)!3b$&YwuT-BX6ckA1t!7$s)Lz7PZ=TR=Xq2M`&WBWWTSsh1sE`|}u^D2&G
      zj^V(Ta96K-d8~#h!xJh_VxB>5$?&Qz97htJ@DcT{WC%xugyZcp9Px4+6~qws&^&U6
      z<HL}rpu$*0Lctk^dH=PRgxOgW29<|ynI&%WEn%xjBE@jHA)35nxcyy*g~Vt{JnL*u
      zT98qZ#aT*~EGSs5wq;U<Nl$y{y&MMnIR#W~v4N)r%XB$ix-F4jQE?s@7$ym+YUvUs
      z=11}Nh*QI>Dqh1Sy2_?*HU{8%I<V+-xEKFS8PcFPROE1(K!~pAifB~1yUj3{NZuJK
      zE}8tYAzG9f@h{?vins7K1?tX#y~=I3(kygro1)|ahPY46ATF2ORIo$_`ETa>;PWJ?
      zj1HMrftz(<czqs59xE!|!8L|y>9U~{Mb);b``s^wIs4i_*U#F&HHGUaD!4%)p8wvr
      zCCf4dH&v8SrVd@dd24x4ef|JSJBX@^cX5*jfcUJ#4Qj!eeu93Q<fe3JUBxZg*wb}_
      zw@2*_h+PKOVmS4b$@{BQP8*lolr+Q9VZjgFqVK$?VT`Gn8=)I>yi!}rhW=0vsxY<S
      zn$@xEVnvtJX=eXiJ}Zr-R#-KuqzeY8u6GpF7|!@F`+t}j4*Etr=7~8-e+R&#Q8_c|
      ze?<rZDTQ_q(&_@O0`wbBrGJH*+QZ?WX%)aUJtrszXd*^W)q4-)2#(T<q+_;^utU*7
      z+M7#1LHs`A>BoqdGF=>-W`F;L$y8<!FAOnfNej>>EjD2~gyPZ!-1Ru-dpLa#Ld1(W
      zMJy^JcnJ%hQksf=-alv^BCN`9I9*D2kuGPSK)a7f_AxYCpX=gcnRLAV=pnM1Y!`1n
      zz-juHj}^LD{u48U_g}EuMdbk$ie4K^O_52!mqhXv8TK`z_=Y5XOG3Uw2H)cnexQ!{
      z5oO%-<fnRa2J$P|pjc`O+`w(TM{=jIg7>kBU=;Lzr=Q4T-@u7fdJi8A`Th3GD+=Hv
      R@A)x4p<j7{RJ^Do@Go@b5cvQA
      
      literal 0
      HcmV?d00001
      
      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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
      S2G0HJgY6||zd$_k0{;j2c?FLE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6iE5Pf5Z7+kl6Z%RK%5uZWApu&l&2clL*O4|bvsh3upWPwFygKP)*TO1G)
      zhyH;6sEU~+hd3xw4&L1v&wKOs&HnrU_!qzqmOMCwj~D7%-G<4Hv1j2`q)x+{N=!XG
      zkoCK^tpgRG94?p7l|9qnlx;*h_K+hK1Q<q~4u94zbUpQuClq_>^tHBW*nw6|l4`4C
      zLOwk=$?`T~t<qaOu=hSgJ{fD$&xF$YkeH1sAy;lT^cV;)19%wq;bJ_%7zzY;T?)o4
      z#_Auf%bJdlRV~tl$x5@XqN<9G#NA|01QYg#Yn`=<#Ro~MQr&T(L0HOOq1U4?;@7??
      z8)>Hri<zF!YYBg{bc0>YFbyp0Q@>I5*}pg9nosbLnyt95zZ$V>D*HmVWR`r{L(4-h
      zM=D8l;-N@b8EVKpq|6gTk^8#*jerUT86Uq{7mf(w><f-|IdXXSOPluyN)LE-$B}~x
      zUh`Z7`h`h82XbcA6sCD6%wV?5u*b15P(Sc@8#vqf*#!!84)ZJrEaG*SVwG!LrpT8z
      bAF$BR(-9yo9K3C>@9>^?xdIOtAK*LzE*Rg_
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLZEw<07(GuxDz&n@F?@GyvI#|3O^h+Ym^h+w3u>Io_Y1vhm(r59FkgO^$#jVy
      z`~m(b<8z_15ns~yq4%wQ&OPTmr{8~k{RZF`932|r&Yl>HcTT+T1#g_8FJ3!65qo`S
      zON~!tFxnE)tL<7l3=-i5GI}fm*O!rwJi$`6jxV_KS#MAF6CDLYb#f~96Gx6^kT|o_
      zju$7AAqa)!trypB60UVJUEku8dtTrr_X&1AV@;z=$hSjR7C|^|LdQu1IV_kc!Xo7A
      z>Vt(2i+Va5^kno>^n6KJ?1X*ccSYo>eR`Nzgb8=EUHzL|%)itR2g5L6Lms%UbO~!y
      z9nK$&dZ>JBHM&Kd!v!7Z3G10`GI0@?2>M{!HbP~N?@rpzmVqm%>R2I^kK_J&Z(>y$
      zWJGc-e9sk$R0UT})YP#a$ss2pArQN@GP&XJA~+;7;k$AWj+OLY))vmu&mK;;&fuQg
      zs?!Dwc@d7HzI^1V_Abo_ds7)eFt-B^X4@BWEV<9tEVF6cQDwXwKPNzzrJ}^YP#&7P
      zfKN~H?l$i<o(;SC8K!-R(kI?&IKyLszhS$u$ZJ!rxoQbzo(apSqzKP>RtU@X0n7uO
      z{esK0)!GqQiHU#$Ru-a6!wG0*T9|?|1lF;^aQuh;AN+fU|G@Ac{{?S>_19DO8%%+T
      ep<p);(Kw=eT)R@Ip*b0^;|9;lJ>r;eLi-6J)fVdj
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc@~6#k~&cFVGYQf{r><Yvol1w^Gq6bK{`K$0q&_%z*4%ffb->~6uo<x4dt
      z7@vIbM;Xsv(3Zf151pNvbIy0Z^PM^U_50g*0E>7nBgU|J$}jjQ&Al|Nns#pTs#fN%
      zp=+D|dLXRECU@TLPVU%x!`;w5!?t8d4B6JOjk4=GT=zmdLvqcq3~!wwp35IINLzMA
      zq|m|8;qfyOKq-i$Q$+$QLtk#+N7GDB6iS{$Op1P7_r76?!$!R<oVUDe3WlD2Tj%C6
      zcMSg=T}s}G;W8`-ApccKk#Z1is_95LRokhH3d3l`hF^M`xDb}7g=KB~d*Y>_7yUB&
      zA`P@#{ZtHKkm{`ouVgnIow)br@-1b)DW3}6E6T`{rB%zlNOJ{47?Cl|FxG1JttDYn
      zEU`Y|7Ox3M#VE!Yx+<c|8>ScCGE7DpuQj<Xwx}S3aTODoWRQuj@5Iob+YQ-X#|E^B
      z?li-|O+MSEsFOAda+r~kXL!)+5k#t(#T<i536AXZ#(9_}dxPNKUmMXH!h#A7PpC&O
      zsTkBODo5NqVHnPRZ0oiU7qJLlP9kU=!%(RBtu3PF%S79M-&AiK+;tDgWxUPc=eemq
      zImPPK-|XF#XaxLB4CywsP*Vmad?GuB|HRYngSX&INy6<~mT<OA?z+O2L8CR*s_~t3
      z%h1^}xflb@Bn>|hqhA6^I?J?Mp);eeJkyi<0_AhyaF13caC}dWAJ9c-HFQHa?$e1n
      zjh+bNihz@Jw>sNI`Uf%xU-9s8F5bkWLL!s+iHYPDrV3I<iqDlYl9Wl%N`@vLm*z84
      z6Z8L)E})ZuI8xAQSEi&@q*22l42<BE-s&0hFtLO>Uce5Bt%u1YVnl=f;FgG5ioVNu
      qN@b{+r#V?6nj^^K8J<HT)M-LkB_(1gP|g^NSfj5(kqj^K3d$e7i&E_X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH&g;5dJy|#DoRHLzG7lH9!)O1q6|Ys34ZH617Bg(9<T2adFvDn+@;-`~_as
      zQp$rT4^|;md9cch2R(bX${(WkY{DZvTn;<4J>C8F*N>U+e?ET!FoYRDJcO}DZADvC
      z3#+=BQ<n|xiJH+0dRCp0Yf6~K8O?f_h@|qxf=HOlMf;X!E*Qe{!$$~7XVuWy^=@WS
      zWNkmH36Z^!Vnvv?y6c|Q3$`$YMX0u)>V?Q4p*OkL;YbdX>@uaBx;;&ZM~~?fOA~yv
      z`2`UGp;mz(CxY;zUO@mMf;TD+>XW)D?i80Y!g`=(3_)m2=ChiS)+}Ah<wKt&Oc+02
      z=z}HW1e7IN$5}(qJ`)Rs&QcnxwrZ<;3N<HdHW^C?a2joXv=X|HRUrlK=pgu)N^K*w
      zR8YNLZs%kWo#^u8454{1?zUdRS)3!(<%B(7%*+{r@oY}KBN}^L0VwgxY6ml-pc_3*
      zfIX#-2}BdI3Ku5^8%GiMBSvUAKtMqs`Uy1!jxG$IDOo6A^pR{7ackNgyu(XI@GP-O
      z+tD-`L+3BSken4WY&wMAcAxH9qEL|GYn`^;XF8fA*EsUrn(mM*HT8z2<#N(E=qOY9
      z6)BW-bEYjUDQ1s5w-v08yb_1ZSS%gnNxvfJJIGw-^F=EwZt8NVn=0@0fGj;TOqhHf
      zXAO;0<t8_z_TO}LF`$>fDo`jSZxBBp0eEBtKCNMCge4E}!Fb;%DDf@SePqdl241V#
      z2J`}r{IAG=_G&^i?}U?RDI>gM>nc7Qj&DHOz^P4yQ{L(K=q$_OO`M<bwfepx(CYJU
      zqW8I%!u?;?|Nh>M)XCgHFHu9U`EI{KnBMXnuOrIx5WRC4jFh638E`yYz<|S{7b*ss
      zMJ*!yI1Y2hVb1L$=jLPm=nm6SW+`)}-N2<3KR5weO3Ix8R1QG6<PNdr0x{+e@zn+5
      zvOB~N7l?6ph@UPH6Ydbd{s$3~6F6C(ogOZ^mpf7&@7u!E{<f4RPj<|MX=lBPYrM<Z
      KC4OM9!}AXb!+6jD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DOH&g;5dJzrHmnOo!1zYq<Uv?ae6D(c(h@5oRVW8<lVl7_Z8l+dgL?Gr>+H|4
      z3PY6#e}F&AvS+gtSqrM-Au~Ijp6>6_^ZU=wUjUY2X-E*PU9m6Tnf_bbt(i?nyfMqd
      zw=3qVTAxd|wJN+<>oc2Pqba@M{o0OjYx1dZtB&+E^byjkfa!49d{N$&l|Vy3VKR)C
      zrEq;Sez#=%fpn!u=nr;me`bj=U+M{j#aABKt{prg<g-2A$!!z*)*4kg0K%XF4JjQ-
      z3>z3gnvl$@gyE9y%8gdNEWMYa>`1~$sZkNmw(x9qj)Hv(FyUcutxwjBNene(ViKl1
      zWXzM~db}^)z{+jwxQNRdE)m90l{U;Za0OSHQcVU&!f%K=QyR<WLf{>*wgQhGw^A5q
      zS;`HsD!ol%yMe6gn81{V$(XgBbOY0vVHf0HOE|2=`3QKI`&RDt0OpX@Fi)86$yWn8
      z<Oy26Gi`)SOyFnH6k0kKu&ANPRJ!XP{cpfjj%uE4Dk3Q?Gt#>7YPL%t7GR=7|8$iJ
      zwO+?6hVVb1P3R`!wi-d5pl>x=UPV5!)!dE7-`%1jN-)-4elcr~@O`OdKQcD<8re3U
      zXa1c5rPFHA`I#q?P+d5BmQO2uO7O1d3qN4w4>9zePYImkwV!i9A27n-hWh4PqZs3z
      z8zK``*o!I@3vFB&xz@(@Zy3xUz&OBc8-*~s^l$XINru6JKEj|+$k1m@(HAVx*RW|O
      ygjS520!7@wO{M}SuoAVO<D8@dn=c&V)^Xi#@QPppcf$29?(weZ6A$HmB>n<as7LPr
      
      literal 0
      HcmV?d00001
      
      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
      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
      MUpY2%{2K!Q13%Fb%>V!Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8BH5IxhDuH0Q|fr^SnsupY^an<lvV}gw)O^PuA`+mE<g$vtVvbzQUmWf~S
      z!5`p{GS1y@;$mpR!`_`ccjnBQIrIC^&tCvu;HiZI;pM5kke}T6QU}NGxi81=P{!JG
      z-<b121=C)lCLepvuCKkbeJ{~rV4*}<&*$wA<0O(^GJ7YKlM@{`pA%aBeAs;W4(Ghm
      zflgi%c5j^29uP|1aHJMNupKO*EKtO42NsqH#g+-E^mU-#PbWha9m%1u2rK>2lm0+P
      z+T1f|$xtTj-H>p89!$Q%>eFsAwEU6Ez}i&bn~rW#Xy}6(sI#IB$*JX%7U}aL>YB
      zLL)ySGx0;^s}$})2J%=%4(?-}uryL*IrWpwOK7&*SJ+;c+YzYap@j{?cD~MhDI9E~
      zL9j+)Dmh{6svg%?F@s)6+a%OeQga$7h{JFidFq`uQq=xivuB1Q!RZBoin_jxW5uG_
      zx#dHHwJ!1kQ?+UYXRE-Ug<I@jWNVM_#v^uizw+@N&gV3y!e^OdKs8j^c8m>yWvuX@
      zu!>rS(9IC+oi7kSaOWEy{DTk%oazv?k;1H{#q10Qu<;0w8K{6K3|l}GTWJ|$Ume@P
      EUmMuv4FCWD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUI~6#nk?(xJl$6;U3gf{4(EGJyCjx}ecmQgwlL!N%OSS2{RM$;?prB_<{=
      z+-TIOi3vjD!syl?Wjwb`r8O+NnEN<6=brET&N=h@&-Why7O<>CV_4i24Y6nWySBSw
      zZ9C$*RTjQou~yXjP`W#XKyE!POsnmIaI22=bZ~~ainAO+QIE@;vJ&WsG9;Q-u^U*j
      zA>F`IQAOJiq$@p!Xi&5L>3N1!vAe7}idnW@JGje`?K&u3V&M6DRmQ+@%7l(y0}%|E
      zh#}4pNhybcqV38@J6mPxJrQL`G7J{$72%YGXRCW?<O(vwQkQ_+Wg_r#oA|E<B9QqS
      zDJ826$s-z8r$+abTDf#7h7pYE7-g90P9YNsj5G9Zg_U9$?tr@5Dq&8?dCK1Y>T13w
      zD=${+do3RWlbF(Rfnnr?IyNzyxQJ<n{tX$l@oI`%Fp$KIiCLrwkRLiwDN^g{l7S2^
      z>&P;k?SRlqZQ_cmjp50LaO^56rXnm8^UADya$DGLKzU??*0CnX6E$S$@s;2VY@Oj*
      z*G<!*T6c3m^)jf#Zm7O82>V)n$E(QuwrZxK|K?{-v1Tv}E=@w-5xy^}t@_%ginJ$s
      z^!0$n<Em+CN+ZzJ<7Dll+Y;S0+Ko*18_dih`oGdm!)aQh<OBX1gLF34nWD~Mh<1`3
      z=fW3Wl6Qn`%aJ>oeVF?g{)OZ#B(evX;BU~wTjrlgjvwGs=yZVezth}t&MAeFzlFx%
      zVSvBKF#mv2{t>hM6BhVq<oK5+p2?$}As)(3f1gD{q~SKMDpqk2%WEOVnGj<%lRd=s
      Z<818=l?obeHrHG9iegI@r|HQ-`wKfsGf@Bl
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+foxj5IqxyEW{O}T)ajxMo0n@RKQCRK@1X2@B*TgPfIc;tINj9E{fmcn=d|F
      zg;3>#AK*t>c5h;m#iR-!GP~2;efsq2>B+C(KYjwZhII`Af%IGBgRz@(KALtZ_1-ex
      zq_zylETr!9npgHt)>YdtvN3*rP&G>V%8sK}47+Hlss<?#W`LAsQ23Lrx2oW32nvj~
      z!m1C-c2hotoawmAR#kzZTQ;58lt4V!8q=9dnquZm+jQpz#*ZA7*btCQm7?l}z;PWK
      zdP3+zzm8sn1-jzw(4RAHwYsytrK;=3mZbzv<|+ll+Ayjn@9Rd%lm+e{k#Jk>sEWbu
      zR!v#lk}3)${57=^FT;AK6B{9%##s$#1Y)hyb&Ak&4(A0<m6Xf9SW^~t%dFUW!!}CX
      zida11E2*7Vnv-78aS<Z|8bLiZ+_J#=c;fXxu^CHIi7tgi5z}y4V5F62J9r&eFiMSZ
      zlw0GcinRohcxQZWouFoo`WSSQft1&_|CSu}g|uVzPopxntE$|n0V=LJ6PaDpW$Td7
      z`kX{I993l1QaYw^jgBFy_R2eQSvKF$G5y!P*^61+(r}ZCX_cz;H0ZdEI|4nNl}DBO
      z>nrII*Tf&F3v-y)aF-~yLN^?A++!L&#O|e8bj$3&sN+5xd&#(>%u?A65y1yKGFT=V
      zi<KqIEW8uA;y<&T^YHQV&TAAaI<h=)CkiA?)!$>WOMT4J?~_2;kJwp&w6EOGe(k4_
      zhe+TF-vS|l&{}1uT2RX-kN)7HD{zuk6VS6Z-CIkR;W&yefkCeI@WqG`0_~z-H$*th
      zcMaXRK?FDpS&z|fnsxzthLYpop(hW}_l<S|obWsaAZKur-gWXPFAQLip42-G*Adpq
      zyNhgn<NG+3pP)6ek4sIIKK?52p<6ECxLowmMrsjtG>XL-;)K^t%o0cvBHgL~nIT6R
      z@|0oq$QdRY8D@w-t00=RgG2#x(*ql>eQeOB{}qp}z|{uC9{F?=#Ih#?EtB)KT%VPZ
      z&zOoN_n_}#W*_M<hz`lmhz!YwZQ%?0cr&q&rLWNF@vzAw%1x6+Do!CJ-ykeY7?Wkp
      zN)wCn9Wv7LI8N8HH#jagBwega%7gR>k4gG44Ns2VWEdoPzTU`Ds(>3AOpYI5waK8S
      YMC}-`NC7<c)@OK5Pd-S3@YWFc196Gm2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5PjpMF*T-jODW&b(x_?^34=t%p@;(&h=>3cl-$?JQnqrO%61C9aOVf`
      zLpY#H9QXnJD8x*%huWe|4&L2a&wDfP?fm)s>o<UhsJn0oTL<b$eF?MACfN@UWA!nN
      zRA##2Gg)8jWZ24e|3j-T$5;CJrAm6SPF++9fk4ApG4O44pu4$?8e#P`p+3?{9$IYM
      zWVudsN~q<ZOjdtD*l3^5KD+!jW1g7A<WC9BsX?0^LUm`*)3YF4^5NowhYIF>%pxFE
      zHY8!bZ4&)v*pGC&r=nOB7TbfaiaRPb65GqFv`lzBWy2-Exc|BS*umXYXPNF1)`~g`
      zRy`NrwxvDdhE@ti|C7inEc-hhYc-<x?akitp;U{C)y}cHQ0(lyvck=d$1dL%Z#{zd
      zelSeC`h^igmrBEQUml&{w-TO)omjCSnTvab_35U8&9ozB#}O-By29TKC<x@8dBSJl
      zNH2VQk)uZ(IlOy~=1=&I6U_bK$iV`yHO@gb!y=!3IWy`qmUt&z!Lnu8;#e4{4E#C*
      zE{}g&pg^zU8n1-wlPSJUptv!a;`@0N0oaP0R>(ScT45ozM)L%>%4)_oh)@T2M(bU+
      MS1b`Nt5}2c4{mt&MgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-%}e^6#g!IVUw_hfDlUCREiMt0|?d9V$)(J4U(GBSX$aze{GW6ur=9bHXDl1
      z{uRFTp)Wo=gVFK9u`@pTqQ0yDfQ~x8TRnFZLZC2BC$mZJ*?YeGo$q}2{P6UfZvmV|
      zUPTwf!UKIv-;P%w8fGcJS=R5z^Lo`N#FylER+zQ4BPzGj6IrWP6=`#`=B(&uu`FyA
      zoWU=%<7J(4uje0#f}^5`VWJ&VYzfne@1<vqsv}HcGxRtcMs;G2A)IMXIGRL)axNLB
      z;Vd%5I!=nLGw`HU6kaeK)1boRgMxkyUicZ5u-wp}F-);qtK@}!Q_q(L!(hfL=;d|Y
      zHsrb)<dQPO#SRHSs~VM{Riu>3vQhY06d6u83W@6vop_s8DJfebvhKrioKP{!FxD=T
      z?97@dlj4SDW_43930uQSoMPxJiu-!4>@=g)j&Nij-@|ef@|@EeUPgdnVAHk=qFQyE
      z<`Q9GB*{q^=5VGAYNbJgVf^{W?aFY~)=MQRLqnC6=?GgCeV9T-MVMjKHP~U=Xow=l
      z;4KMf&8pc2;y2VRwB3*i6*JV#7EIErY+5F1>%%nS8s>1e0g}^giZTRtLFA!H%XD;d
      zhD|W9F^n8+L8>e&F4jCQs5s9MYTt3RlQk^hb&`z8=X7U-;Z!(s?-|va=x%Qk8ZO~7
      z8MR9Fx{VjbMrts8bf&a+Pjy$Gz4o<KAV2oHeoSo}j_iZaU1hDUy{6=B@`79*bKl*d
      z({)<QCZ#ki<1M;hRLC9oE~RBSt>M~k_^uc8$Y{u7mBB-5xf6x7+*j^3X-YY2sMs8C
      zsCb8AxLwQE1`TTx+CwMaHj2)M+<!~Mx(rG)tO%pDLEW9l9SwK!E~#9!+}p-5xqoOJ
      zdJ&{#Y@41mJ)e*u4R<XYawrTP7>l!#BAGXBl1Gwdophq{FyLOC_F;)LG<y_!y21Q@
      zIf7^ed%$S~`6${;s|9q?2k=E>UqXw1g}yIn)rA2WlW&yo(XBkeAgwjZk<phhM8BjI
      z0!@@0?NsEuuQ8IHj@1#|L+O)mlpn#BpWsz~c9F&!yPHT7bIj$+(SvckLTEHUUI6_U
      zLjRS}f9n{1vW5OBoyLj#6wwZShw1Ee9kWmH>Sq|CYF1~WJJ9MlSI5Pf{e_(%vQU19
      zNBIMT%AW`*f8mVsH$uukE{$jdwpHX*vq%q(yG6V~#|Gec%atv<(jxSHG5@7<pHjL1
      zbzJV7ouhLfIPZm*YaOF6y#V?Mp&uvo(T>rRE%Y7IteaZ3ENw>3xVlJRE9ZIe5$1xj
      zPdj+Kj_Z#xKFl8>ILuqIn~%{a7u4I^pTl#&qT}*n@JV78B4$(Q=V63+1oJ$GD|{9y
      z9(UQEYn<Nd=yJ=pOHJE)aT)jU9@)De7w|s)<HY#`;@pJ~@e%#Xi^ph8=-~eYcRu*%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8-E$LF6#v~e?WW5DB_fdWEfxB`g7}pH3ZXzC4M;z<6~vp(O}k~Y8#bGkDt@3M
      z`sVn;=sy4tKFAEVjGb|Kf*Jn}-*r&OQD;QY-A&qTDKmZ8&E0#?J@=g7?|074Pmg~1
      z5x`!2p`d}`z$BmIm-X_rX^-nAix>19FPnybM7{@vT}gYQIGk=j<2ohbdNZjBZjXx-
      z+|FCVRS;oll^%49ruEagNnv;jni+QbvpK=-vL4=>G0UE?h0D<FO_=5O=NLLND~lpY
      zdk&bk=^bL|Uh$^R5r#<0$%_^+tk$3)s-h8VHMF3Wp|L|6tj(CV$X1Fu;STYfB^Y8E
      z$KciocTM?Sos7tk84j&5;N@YXG}e?tcrxq?($SYgtba<_Ub1sU#U`{Vh%;<^BD%h<
      zhRxVQIgJaihJBV7DW~-voqps2U4x!WtS6(`#;}STh9FA0=eR0%;28xwL)-?&8g`+b
      zSP+*g+#(>Ju7+Jlf3kC|1-sFqU=PFYl@Y6<6I~3^VpVVq8$$@6tSK?6q6d8ndKud4
      zT@OnA4tu6$dZs9A&_S|VP5BR}({`!i4e%1f-mqj&rkrBQu_d<Y0G3)E)V9!Ro3KyA
      z^Vm-ak+;)UeuP_<$B+z!pH%Q7K~f*rDKSI9ITwYBmyuBL3UN@sUOP!c5(fxZR}`Ho
      za^DsXb-@j(Kmn=0r{0NQwhPJBTn?wtin3F24LbWEUXyA+%&<A^xDJCrUnvboYuRSS
      zw4ZGh#~75nld??XqD<t3hBQu6=@7CMOW5UNtaVbW0@OJYMTV-;6PLXxvNS3<HjU0O
      zY#FyJeSTJbelzN`o#QSqO_)Y`-%%B3F{EISluu^5VexXg#Jvf9aE6*mu_|((`C(8s
      zORj3lClLk#hD5(i9Z0g@)G#X3Zy^VRK6nb=TB5bXxw7YS!#h&(JjYfshVvTUmIbHK
      zt|33QcNnP8<QTTglypAr=`vIO7`@I4J1^W6jmT6%o?+{P(YSDm`r$%>n$eI;y|duB
      zMHL3ts^A!x98NH_SM!lxm)npW8<R4bWZ1Oe*gsvymf<r_#gkE68j7%ksAXIX>uT*m
      zdX`gE047TE*h>uk%fJ{=ykNfg>7OTEgt8_1MnP?3mw&y~_?2~A?lZVCA@bo6D;lOS
      zO@WcnNPSeQi>&Uc52vcH<rK%jsGxQPOHXdE)O||To-BL651ilCs$G)QUX)E_gTM4x
      zr&!vt7OQ~HCmn1FZ3|0??t{jHYtW?`9Q$Oo$P3W&2_#J}F<wNDtkgif$4q&XtzUAP
      z`(?(UrER)~Q?izXY~?j*LsvXq1r!}UO<=99^6sQR4-NFRK&9DLG}=$!az^dy{vKM_
      z9M;_SZPwAdnQVZc5u>-}k5xQ{_4GvtVng78T_^7f&E4*v#m0f2*w$HW{~GD8JJ9an
      z*`~Yb&i3BNx?Wn|dk-(n;-#C2&Ew!`)nX2>W@+sRttBGy$bC%q#v`%*SscHK3q7$@
      z<n9}2J+T4b??CMIUA+DP{j}wcdl<|1&f=Wh_W(-lLLxE`J~|I$bPl4iaSnw<(>%=4
      zc!bO@#+&BgB$|6;ZoGLG-eRITY97EZl*q4GgNKydZ<O9cwBdJb!yj~O{YfqUFKVuT
      zQ}6r-L--fx@dyR{M>W`hDb|Q9EP|`73D;ONzGMo%qTd@Vid(D&-?3Fbi024+0;&q4
      z99_l?!Ptav@h;vYBHEC^6}(TR9Yrgh{Q)9WL<xL|k7(`+(Ul>)2yP&btN569-Xc;z
      Z!KXx41Fn(x27HF=^eYLb?upNV{{azY-q!#C
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5PjpMF$r#K(o#N3o3sR)xPS{1ry>qSR1~FfDCEGQ(k5BjtsJ}Z+6{k;
      zLxjYEAHa`7%sLg=qDYnHo!R+%Z)fJ`ukSwqJjJ#Ri?DMl&czpBPgHp9p9SKxKM-0C
      z{a5BZkYW09ztuev;jw%p!cib&8)brPviyL}{`<kH940m@gl4{$JeOhO&r*9zCo+^V
      zp{Deq3^+lK2=s|i9y11Esh7`vYk+qNR;mcCg6ndM99x?Ry%!BrZ7MHkIlh=MgJ^sf
      zh0KLxD#?k`tsPcgs8A&@2}kX#R4>HL$Q4ZgA=T;g`?}FcR>71UEW)XwgcS!aZV^iD
      zPTzR$IH;m#v{eV!;Sd&kDwOZi@j%8O#2}D_dM_G^pf6%&?ia?gc@E*(6}S{<$gQ9;
      z!O@9G<ZMLTw9R5K@&kNrhPi9rLrkVo0Q@(OhjAFC@lft5!`;p8(i1agM&1v39lC+g
      zT51~|2G7s`@_rKL3!8`yZdr-{IsOPXuJK-z>18IllbM{y0^qu)`+T=J!o>|f>wG)n
      zdzt03w>`y@_YF6_M^oJP9#3)iYZiTv&$@}R8kn<IQMJ~vV69_~?M+7KT&$zP(r8V_
      zwldA28*Ureyuf<ScH^VJg)8iWwUrfHnK}OyBiu)e{T3c%i4U>Gvc?ud8y@I4wi4xx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK=l)82|nMO|vvEr4OK_Qbml=v<(sDneZxYYExP$w3N59O_#8k?1t>74+Zi4
      zxOj2K8H8~dW)zP)gGHUO<INckoValCAQumM_Ta(s`!*rX*3@#?{dWKV@A>;)_x|~D
      z4!~x7q(BPnxTsBP(@}fMFw@aoMmrxJ*K8vdJ;3iF-7FkShM4r`we*lxu=Re;oXF^T
      z1wMfW7LH~#5<NVAQBOGv`~n**RqB(v=|nvm1`XTMO+7E*cP<!q=tY6hV5LlTH{!&<
      z+b|7hFPUh65`plTfUn1z(CZ+uT!n&V0n}iHiaIn1)U-3hib2EF4;8ZGdVW+J&*%b8
      zgH}q*jA?m;|4WBHc2!{46WFba7kR%jTZtnBn${--!roY_0G413<KeM7tU;@Spuqa2
      z;ZpH5)(R|Rqe(~43bc59AK;wuMLd9Kuuj3V0;?+3mKjt$hxGz=hMh1O5%QU!I~70(
      z8x*`i*{c*=%zqUd(N0dJb%!mF=ozXP!!n07Q%iF(gxbR%2di<BuOW1(=tP%*LaK%}
      z=Yqi6_VDTd$R;v6#qPKwn^Z(Wb+(K}EW>mt%O!JBZOVzdXYo30!Bzz?3Dk2$^EWEC
      zVY`5srYFg8?NqS~v7)}?#svF7kR(~bZWVi6<{4((r(!=d){)_U-AG@c7C9i$Sc#Ym
      zbO62RQ;-l?S9w<r1QjoH_$x?d5k-B1VF;ibNfiS)D4@D=<_bBM7ie7o?ZB{Ax+8SD
      zF{I)UXSm+5N3Gl-WiZ2Xd^N1%$m2kJ^^8VAg)pLGln-mkO0ri0by3Sgr%UJuZ~~_k
      zob=3!kr^5QSrw;ohLF+nd2J?T<z@srimgyNQQ}EAvEHL(c#QFSMa8Q)M@ZOSBm~;p
      z7q17FU4wBIDNrTXlWZY3Y}wAJk>xU6?QKUlIn;X`_jwg*P^uZ-9xI!(OsX%IC>E|;
      zFXeMWwig#wyoL<rJN1~o&&rnyFjfkd>u+AF80~ybE~?s8Veu4eOl5Q}Us(uLq%_4g
      zcp74{uB5S~WFL3ndXGr8(j#_X&TYBY#Q`S!Im-9KNJup6R%5frOc7uL)pjRBv6jgz
      zQ=cj}w~w)-={c`&9<7B#HDNk>o(EJjn=0?D#I)h?=_=3ZQ8K96e16WG^F{WL$L;Do
      z)ki;9kHEXUb^-!{5v!0->3s(8nudx!yNP><fJmCO9D6dFZR@mgR&pN7k(9PC){(**
      zdTJpW8hEkMO7}yu1v-6-{<hMeBpT@G{0?fzUDSU|e-e!@r=ZUWn&?|4e&RwiRuUzQ
      zu)3&0+$Zg<_s@<yQ175+7H!w?TjwmEAEH<I5WONXU(k04o3G<*mzFtq+`?yk62Fd5
      zTw1=_dkdFKKR=^8R@*g;o|r%ApZfyML8iWmEy3DZ^nZy0)4|WNis|8NSWXs?Hj2M*
      zA{?3Xo%;#LVoIbYsMJK}zQ^&P5}9)aN4kQ_EY9A>wyp?KHpb`LZG?&n{<?|QF8b6t
      zf>{``+F<Q3P{@<)JVqw%Psr_9E_b3y?m~-<qfPF{4!H+M<UX90`;n5}FysMTl0BFt
      zIwKSKSoYyl*^e7CiLc}UzL5v<gFK8mIgER96c6MW9?IkRmFOdR0>8_X_(Ps?b8&|9
      zM|hWV!CyICqHHwbA@Z;(do6eX2L;M~8}4HgQ}E#|vY5sUWh+JV>2<pG;|AToL0<|U
      zk<QDw!j*zIQOYgtGp+^7_k6&9Vt`D$j;t<TmK_l#M+B}ets=jKino?lapnJ1G=M^S
      po4n;R-$0($5cPL--o-l$qbZg+2P*NN`+grE5alKjv;{td{1-`?&XoWF
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6&rcIk5dNk>SGFq_)Z$M>M1@jW{E1pbrGjFLnxL3?Tgp?HEZb&x0ptJRAK+i$
      z*+emVFrGYk@vdi$#&}kvG0tq4cB>dY^v%B4nQy)~^UZtp^VxF%2QjH3K^UC3maIFb
      zzihj=%!*^(G-oZ}E}3JpPAPZs+GMYo3zj?QC{IH(AuTbcV{ydg*?Cn8G$aXKaU`{*
      z+`yE;qU{IDRURQ3+_wGRAwq94?z(o;Jo}H>t{sdL_V@iyK>rM(xlo={tsty7pkbYk
      zCTuX!iZr3APaHNBZC71dT$okfRcqE!gpOjlWH~dIXUjf1Y!<47q5sGmuMU$o7WmEu
      z%PlEK%@MjAsn^RgE(OZ>&*)5ci-E1k5ZWa6oboxe6i75Nznu*neg|m9PVCaqMd<l=
      zO$~HoH({NmnGDndp|b(}qV!At$ZOa`XpbX?|LN$#UIY8EpU`?s1y?MOZ$ZfP^@l*F
      zwH%m*vKv@jWiK!8{RXla;JexW)pDiC{2j>>_Tz?z1B6X~q#3h39XXf=hH#L1aHi?7
      zCU)7K;s!e`p(x|3a;I6oj%xJEr*IfYH5}nK#B;3WYv7oOq^;yA%d5d?IL?=g$6mZr
      zt}IsM20Dgevf`wegpGd|a#ajfG&Ltz8Z~elX9y{O^-9v_&Z<bF>Mc~t?y5G1!ScV}
      zsG+~iO9O$meHx@%mEJj-4xOM+mlwT~ny_Ug(y`$W-v^fUq{|&GIF|1#9*mS!AbJv5
      zRNPJewSdxT89RPnT96Q6K27oN2=5YX_3Xf77}+Oid&s*4+IdZ~59l>I_}h?gj@pP#
      zYzdo@i4aC3gk*ML1)cS1U2y3QTIg+vkO}i7BLqR;hV6_&GGP(cJ+@7ZpU*ym@d!I!
      zpl2$#g5H-HVAFRWn`QR`ybeCaA;JT6R8NLia3VaZ6WGQnK<|*E_voMx*h(K+?w@dy
      zK8J+5tEp;)@)4mFYx^YfOqVcHqjs0~LM_)wjXAYPoY<UtfVPMao3nK;87@2M3v>C(
      zT)v^3zB88}F&?=Zk6ew%?kbNoxM5>aiS|W2xZF=rsAq^bOB$NMc(_jBJX>iuKUlbc
      F#4iMNgxLT9
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5O-~b16g_uZTB#$9sQ9e~ia<#miMqnLkYFShFp6Ecd!1fk$aLDwOcD03UHb$4
      z11=1S3x9w=%6M-(F`cGZ7W3ZRH}{--?s<29|M~d~z#5i{un231=Exko@h3mrcRPXk
      z=r&C3d+rNew>j*-->T^LnonMtuo-YvM4sR%%ngiyb{mK6B}EhnbAx1j#9`v5*qR?F
      z9CAb`BnN(6c|@qx2D3+(UYGo5e&{F92}{f80j$&s`HgmyCqcMmqlgP7<S=bx5)L7^
      ztO?UKKjfWmtHIHpX#`A|skJ>5)J^1ToF3*?D&g@t>JE7%x~E!w*WN@N$J`_=Wc6q4
      z*;KFART_zya;D&jMCl-9f6D=z9=)BO?45M9T50px<4)qY!?=jMgvI@^>w1BS<BmxV
      z+?{r^)#?N+poE+MatR-@D$lr<jKI-3!;Y-fOL8M+y@!&>d)Mwp9>4U}d}m<T9_mmK
      z?5$9yWkdC{G_XjRA3rT(`gUeiQI?W9c_u)Pqq88BKLJZM$mvCio=9ZLUaGGCfL%Ss
      z)OU$2T$Z&UIj}xsM&50G7t|G8m7Q=6vnj(<iIstdfnR#S+5X2AsL<=UAuHkLc#5xM
      zC~gUbh1*g+FNAk`9i6G?+yBTMh$;7kL```hq&e9O)zwqnAMUGfh_-BDuD8x(L3XuN
      IerrYl1)w1Pg#Z8m
      
      literal 0
      HcmV?d00001
      
      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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
      Q^g7;PtA$*6LtcdOe;pa(X#fBK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#j;`EL~PwP{eW(#42sMEOPNe5rhU!39XoF6GbD_c7P@Aw%Kk${)~^l
      zn;;SsiO)XxlZ<D!Rohac4?8<^&Y3gc_su!;{pXi60Cx~m(8e&k&ky)Jy?khxyLu_l
      zck~P|8(Do-jtOB_Uc`ebkr!E8E>^O(Q8X2}8T#utu4Kx##j|$R&(Ln~8Rg(KLvW)$
      ztabh<#V;DBVJ|U^h5lzlIL+XW6?4K1hE5G0w5xF8k_H7`46cw2@NF2TNLC6NVLj)W
      zykO|rC}w#+%`HQ&Yeu(($}s;Q=bjUSko$-=NwO)douX9`IfmgX1)U$-x;PM~tyfi9
      zlk;de?Zs7GQ_#mS`fqJC1klgWQ6TZ-wkR<4H2__gw;~-;1%nLT^%)(Xit89rFw8Jg
      z?~~iA*Gk|M+~m8$(r^Q#3|%>~!z+2aW~Dm}g&WRnwKpoy32L~7+oZ{^u&c>MZj;-4
      z41=NY*0~&Oc|o*nLLMSo&FE@g6%kA*7-#Uy2tCiKPE$u^qO4&OQw&~iS^OwlEFCdK
      zYT7$dPc!>ew$ZqAaCPHvQ#_njF@R}}`e24ZBfy)*Ql%uRQE4|3UjO5BXwGSv$6caX
      zZl*aDx|pRbNsm(xBu5oe>k6ULCRqr^<p#x^+oXaUZLqey3(8P(WbeNi4ufKf!|Ls*
      zsba;-ipPd*5`SIiPf5v1p15fWE0*WwvY=M+H@^oMp*D2Uqr&`t*^4x5qfbEx*}XKI
      zqqVfCk?~J7e1`VXiSg0cPBFkU_-WLfxr%P|(25kmm0E@$wY<s5G1O!9e#1cG6hq0$
      z6Wm;I2i#}xF&~hBcW!3l1Hy8){S{*io`BmG@VIDwN>*B(O`JeaO$IzCnEi_)0+mjD
      ziB4>x3$NhAYxLp`#_*O(WE&5`@dOzpkaLhOIV_Vkq(Bn)aG$VtB8CT8Ahtd%Q$IyX
      imtL|gQU*6=8pIOKJmg=d^V;wTEA&@sC!=R!75D{*TXwbp
      
      literal 0
      HcmV?d00001
      
      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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
      C^j(zz
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLT~pIQ6g?Z#ri1{YP(H076b)FZAbvm*g^Jp-$cM_<VTPHdgc1!&CkbB<KKUv?
      zMjy(II{pBEl;ho$0_qFnWO6rm@7cTOoX!6H_4NmUaV#j17)IameSVnn4=ksgsn~ow
      zv&ns{l$jTCsS;SOv&<dyO+GcQKxUY{G=9<aeO@;6CD&ny&RC8W%rZ0>BWnzD&fPLq
      zG@wyK1S-RnQTU(6S<$SuU^(W?z1>aId(Ag(lObMkOWa=Lo+a|rNjccDe1`PpHyY0}
      zG*-Cf1T_)q8p#Yl2r@Z$x8gdc6J*1F;oLKiS9YwDpUvk-))d4UbRjCNExYzn*>zO3
      zp+jg+FvN`Y{JMau=t7TzZicoqe7%>3Ui1--z~hc@^MKSvjQXOahO6kOPGvL5xwh+(
      zbYtY4P&k)u#5D{l7-VQUYadoLq%cfJvbykusQ$f7u)3kazzA*NpKZ|ohY7SNoq>Sf
      z)R4w4hNf-HwolbEBrc#&CkZbYWi;FtyGP~=bGa9y!-R%An550NJbtihmI4NaqzbVN
      zti;f9kz(C`DwP@9&r5aZ=<wJfy?J_%NTn+p#?NteIz++e`{ovd`pVt&O6F5b{6n4p
      z+<-CR9)p&59Mj9$-1klTpIR53lI{9*eHP7N$K6suW*P!|nOj935H-4wfJAQuQOXti
      znxvf37#(FNh<y(0O%zpulj4LVCX{P66q?aO8PS1Gkvgz`ilWo;H?$S?*mt!U(HobF
      zQN3@esOYJsVoU@*%yorIA*MlKWPyo@a#RFGq_Gfjg7)c1I+>8G=uB5}WjdPvf`KZo
      zr+Xq*j8ZZt61`d1bycZiJlzu&6UiVU2ejr~$b_ITb;6LkP@r)|>c(5C7aLL^Oeu-?
      zQa?Ot03W15e3XXpNlJx+pVvg43MP5Di+iC7$GDFNp^e9w!gOfsF|za}V+AwxJS5vT
      fkijg5$>;_=B6}n}#vF|*^$>;wam-Vckpq4MZV)X#
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLTTc@~6#iz~?v}d93KT>EQ9%nXEFy@sh(fv8SS;~E((p8trL0+Yo9=S^6~-5y
      zOiX;07kwy+8h?O4%6Mj5z{?BqVZNO?^PO|PbI#6>pI^QMxQiz$IK$9uu`BjXf6sQy
      zX2lVk=DP6hk~t@_Pzh|$T@kMJD%U@zBFZp+ZvL|6`=V^+N}kK0Oxvy<%rHb!gR2bD
      zthZq$5J8iM7!nLqsr>&0&d6XbdE2#~?QE}G)t6%3u^3wOUP(BsqH4=?!x#;=Y@fk6
      zf1<GrLsLcAZcs16sEahkUSMXu?TY7GZjcG%g|?-tsBGCKKa<N1t|rimb`@<5mt<vs
      z5HuvwL9v6XaD7JvBsrEkak{Lb3s)H8Wh=;fj#s66QiEq%LR+Q@-RM=(!*KC5e0Zbb
      z8v3Zu&llzy^uOJtsv8<^qMs7@rwQ8rsEl$_V<q*LhTBLHb<=j7!me-_R1zwsN&!O}
      z?#N`Zx%_PQsdO0DFcLa!RK=cjP%%m}P9?5*&OzC86EHC*M}LoEr`B?7C&f=_xQ|JO
      z3(~(qW=Q@fuVD-)&q@sKzn6G269!ghXgj+)9Sz;=)5_60AmP5)wKk}zbuS3KZL+qW
      z`J7~8NWAcNswHdDmOod=KTl&smdBvwT-T~*9pU>H{b(%<Zpra{dRNO<u;p#2SYk*?
      z>Uo|UMnOZQhYE07F(`CaX*W)1Mqg!!9V7lJyuU!0kUX9uCMlt_R%f9Z7wJTDpc7IA
      zwn!)=9T`2zXbqQ)8amT4<1?<-aNUSR^nSg+h5<4RN`tQJimKLNe1%!m<KGg+h~82t
      zMkU1b=0Z`Cpz584VqAi*=t)AAu))?OyIZme6unon3F7idY>BF_5&IZ-(~8lh)G%&z
      z#bolHAQ=rv<5`_)Sr0d$@?kXdQMB_h^zv~G@ClfF5`sU#8$N}%v_Ir&yyMgOz#rlx
      zp9%Z&q+WZYFVqD*z*N|)BczcDyM2UdJPf;kgc;gJiTxgr&_~@pL<b&YmgW(`9CeW+
      Ui+TDcD2AL1=oKswMzIL|0@#B(?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOH&g;5dLP^WJ6qFc|=78U!Vb3qk;+qQ4)Eq1Qt=TQeGUw8rE8OQ`r^p;K{R9
      zR(X{lp@&eVmOsEBW!bX{LGVI(n4amLufKjw&#&L#ege1wQw3)jekC@=b|%<zymF@E
      zikF!+5jdqxPD-m1I=;6oJo~9RFrq?X7(Ft6(GCJpw#}07F~lbw&k3g(TGB(S3`*W#
      zx07f=tA-eo4CCp-{}5*-Sx3R~?4>ua*X-&OvF6$gT?M}++*MI^q~0(p;f5117)K8@
      zl4WSE2*(TSMHuxYGh!>u<o(wb-?P0i8}UW9xvHpaIHe$KnnSBebfHH@H$$ha>;OPR
      z3de~%tO_r1MMx>f(tA!PHT2>XL!xYldEfP`R8M+nKT2fFw&D!>RrE2mH|e7r4QFwV
      z8eW_!6s%_q`e9F**aZz2F+eebW{mCw#Zg%5t%^%T(BxnC-M3}mOJWdd`EEl*kbZ7H
      z-^=`p1_M_aj=gkTw*h8I{YBg`61B`fqv5*DHI^$(=NDvNH#Lkz4C_^~)eP5#TN-ZT
      z4uz9;Yg4!kDm6?7W?&_Tp1-Tydl|YaGj#7?H6Ms>wrQEP-ctNPY})I@9@4;g<@y92
      zu9{{+vA0VUIr-RsQ!UxEjszb6=c8Pco(!7ld3H7LiXgCQ>^f$=lIsWb%NFf$!(Uf1
      z&ybeTqkKN<6MY@}wg9IUL!5M#PNSqV+T+7)7l|*?{V|eBiQ_p!QYNHpbrjmrP8y{H
      zog^_ZlVpNyJ4RnhsiD)T;lxDD_=?jtod1r&V*E$4sOVi*F{Te#QfZ;RuI%FSMBM0&
      z*Dy>D*BTCLgz2!zOP9bNs~Fc)R^6PC=2Oy4BCaPaRg$PiuUf+mL)Z0wl}@8ZZ;aTC
      zzA&YPl+=D<IZ7OS7Al`Z8=prHe~3Z8fDziqcmY#<2{U{dFZd&D)BcXH;5~ng5Bw=U
      z@l|~0&!UE`)QfI3gv!Sl#-k?fU;^2w%{!RH-Kgz5n4*(H=#RLEbJW%`*tm~rdWd(V
      d=jfyoGEa@<cz_w&lf)*U1~k{RBo)j7e*mh3LV^GQ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOH<QO6#nk*3rZ*f3i1#|E!twFsPzHGs&tU47H|;RxR6U4+F(d(5@^}GcE%aE
      z_CM&N&baUg_@f-p4R75rcIMuk$9G=eJ^l6j$4>ya@gxS$Fu5)EL^JC(OuL$`TVgA_
      zDLhlp&dYnH?wgMNQrO1pQYsfim?3v={F32$qH2_M$7YDmnYQT{7((gHIzzbVRE#)6
      z=u{9voM9$i{-4BonXIR5+Q#zk&Zgn6iA~F3=qo$Au-1iZO8w9n_G_lcpq;-^F3-?e
      z7pCnW451w~nH3E`TXc5nj&0a}KFAl?7F|)VnYx!Rl``vb^dT8TKSQsa><mD`00t?y
      z?+V+qgikF;(nmo<3WhPl&`~w~qGLHO&6CcYR0(YPPF%#L7{(Y9$LRx)g3B1Ee2c3K
      z3(E}Z-+{8Ps|v0mMJ2rB68&dpqpC!$gkD#018IV8nU=L`=srV?T9wVp7A6(k49d-y
      zpB7)pfLjWtf`E!E8Y_FklE!I;7EWf7M)_O}OlL@*ZtjRra#b1nPh7{elBY?hL}#BS
      z^u(S~VTiwSc3s_gX3Ccz{AX{cBs~mD$+iu*XbI0VXbXB4Y~6A^TKXl!uQ`<%9y6rR
      zyMmYoZ8H6f08S@@DCseha-=i*Mkm>KbbJl`U3AAKj=v!!bwavwfI>GCq)|Ii>81><
      z5M%>d+Sow2jb5#d3$qdJ8%Eo>qJ=_gN=>yfL57Sps9h12er;%)n&?pDYFvs(Xwp;a
      z$Qd}95)zcv)FG04)xkg>B{_L0lkJo|9F5A9!x33-%pVB*)YZvk&*^o+-y+60(9H#s
      zT*oDDV1idM&1=Z>ZOrp`SmHZa;|@0Xdsy5>lY98Uckz)o@R>L9h3^N<6o^Zj{*W0d
      z-ND^}troF+FW|d{`*;xW-@-$Z!i4^W8H^KmA<R-dM;>$ZjZ>t24^Wqn=nkU*`~m*U
      B9)kb?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8>rY!{82`Pc<&?u2uyUE*n45~OEgRj2S2{MK16N>x7Rt@rY5T$s9?t2`IR#9N
      z`>HeXt{E{iQDcZ7G+DBBW+nt<T%ytaNyg_rr_gfwK$@P*^FG(#^Lw85@Bbcb05}In
      zf{&qhQC(J7<MxVXEW``CIv>xfww8<ci|bgy(M)4pHTYzzqrd1lrqP!Zq7lt@xWO$6
      zeugIDBCf0CU@W`HbL6;|;kYYRSDZLs=7tmBX~<BYb^WD`JYQvCDTZ3-nr3&LWr&R&
      zG^qqxUC<28xyaBJIk;IWnqlxK%{;FIL!*K^$TDhhSV28P3^kExMx3-LkPsw|5zXME
      z#icB_Ce*CX8A2mwPSrE2rHS{l&@U=rxOCt|_63!SYE)gA$GJ6cT1!07aKfuDz8la1
      z0d69ik<iX?xYCJ~;qV1+$vB3`MNucH-UyXlhbQoqgeMsy2L)L{2cBk-&22U?gm;uU
      zR3S=2#wkQ4L>P`#2dGj}5JM;VTi}joN07BfqI0gxY95iVGl)y*VmRtnwr}wY&f*+H
      z9l1-JMJq?mX^BMlI+M`N(7YojkJ2*E<2eP-;{^tZyiD*_XSa{EW6^*lf_RC+H#RII
      zfnEt0c97rGQE(BLh?e|%QPthb_NEe@4Wf^9lB$v8dJsus+zhva7$EPXrhxDj1y?{r
      z5wy9JQS~BK)mo-N)ud75WoqcKf)PR6MvIer$|w{)8yTY*moQewZ)?ocV%R4gP1hWa
      z+X`OAYeZ-g=FOEs(@L641=Ao}F`TMm-L^PU23K@r$~8(znAnZ&Wlh!11sQ2%6ikWi
      zq`YPqOq)xX*_F_cV5?=Q`k<vQagp_$g4gi|WkvnyBam#zw8rL>x@r@oiE1ERS;E6u
      zWVCOZNz-st8exklHI26vybYBoLtrI!%82I6ADI<Hlw&yQQZ36>!;X(zW`SGIyBY47
      z1FJdiP5^By>PCAdWc7mc=8++=>@_X4xBG;IH%e4W^FFMnWE_`*)wX2<l4Em)>Y!P#
      z#4k62NTeC_TbXS&dndNETV!ua1~sw9+V<@EE>S*%k}@ca3ofTTTlU-j#5{^g-vE5@
      zi%khMHHlqHKQKO$*F&M}A$l98_Zqr4#yanzA$A{4vG#jtzT+yk(zU@ozCo_uBM0xJ
      zjbv?PL?$?b$LKDeL<r$HjH8}oc8lz4>Fm*OI5y+EkK<QkchPVcCrfx{^vpwqgq%dp
      z;%FUnoh6*!#Q74Q?eT~Gp%+W&S%V^!YJ>)fUap7&Wl?`cw54^qBJx*7Jzc_}NT7tF
      zavs0ps)+PE(rc&>`!|s;VKOwmeLA~|>7GD1@DPW>0e=Z^uERfdhpPJnf8ifwsa}Ck
      z*2Ulh!sbJ?;3mC&L|fuxbmJ5B;!_ObGmPVN%-{>;@FjG7g=Kt=8@NT<YjpYzZqw&S
      ze2bs)Jxcfv8~A~utW%Vq@GpLGF~33>6PnwYKSCayvZ=$Ln8yNT(}D-M290p<rmeGx
      kcc}HZ>Hma|C3@OG6AYLxB?{!phwHHDE|U*Ngt5W?2e#-#2mk;8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVO%XbrX6#jnAWX8rR6xsx;Exth0P>H;%v=CbAgJ`kkRTKm}O{UFYGO5Xg@>Ed-
      zpFOf<=?WJv^qc}7J@N<W&ZF+#x^}I8cV<XJ3FmlhPcpyP{eJg;-@SM8)8F6U2Cx~6
      z2HF&MoU~3^r_<F1$DK>h7p>X!j8%1V={@p2G4DBLchYk0!`bzFYMxhiM=Q29Zk;LD
      zJOi3Sr<kXU7L6xnPTD!H>Iw;e)mre<!O?w|Yt7jeg_Swm_3TP@tl$*$728!%M-_~D
      zE1&26oMja{s%PBXXt8+2$$N#WLf3)}CT2Oet6ty*PkC0c*fiI7I<Dho6r#za+5Ra7
      zZLFNPV~Ak2i52Klh$Q=`+My6PVc-E7tugUnFzPYUju`zLcU=3`T4~0v9I|GLw!-T1
      za?UDFSrtd-;iBdh9C|i9{=dl^CNhH#=ou@Q=F2XbQRq+lm;s{)y$V?gZb=K9^@GC_
      zp<ea(#m9yUp$+5D5mli(*t^@BCUdqowp<G`L^WdEn!F<jmncammk!>o%F3dj1Y>2_
      zv&b2>T@$(<Too?U(HI7>$-vXRw4N4qGZSe%Lp8;nJ1mgdHOc;CtsEDuEhe^Nn?gHn
      zvToJ(BuA3{jpM=Ma61O^oPlSlYW?0|%ft>5TPxbLUW|D#Y+^k&2=*=$8SG|8O2E!p
      z>Yr#ve%>kBZj~iL@KKBz*wY+Teb>bEf*<u0S07=u$)DV`*F+XC)1w)`m=2T|#%*`b
      zE8Lg8Yz*Ug)xf^yi|S07m=JG8p2><mYga0EUfh=C-fzN0O#D1(;*j{G7i?#)z=+2&
      zW#R~4BZs7KPr2si$)S<V@=x?qIBMcaJjMN7L*KhH>5jZimmrjJr^@t=w^WUFeVQMK
      zl;@oiuWEv-lQtYf9<v6>`HDt5@3Xvui8+v=NXa5flwS5{CBTy=IuH|YizbrTAbPtd
      z%0BfKiIjKd6wJ`UkZ7H%ux~Klu!E2oCrqPN_au?RsuCMZsa6U~HAsq7>r`)8H%Fy#
      z#>81HFiYp}h|~a!QK0kEp)Q26v9J}-#w&KIe9FG3LEK$sVc+oE!D?!GPf2UZqtYrK
      zaP5UDt5_qsF&?Xzx0dvKWsKYPwN4&bR_w8Z<ys|YzvxIuOx*Ko*d%(9=&Z{|Fjlmx
      zRl927GlisV{Fj#tb2w=1jn@kvqp}fxqWssSWwVAfY196bjhoN+CCB|IQ-RM8o?n5L
      z{O;sz25m$Dx>L8XDy7}v;Ncrcq<U{)?YCTS!$bT|5Fhx3*gq2eSK9xEF8q#%x%y~e
      zk6!d~MkIM*5M4&%NgK!O@JM*yZm!FHssXP1hyQ2-Q*|&!cnOjQcpOjoVC+L7Sej4S
      zi>8*){WS-Hw*lavKA;&K2mzIpYzyPH%Z>kPY0L_0VVqcQ{7*~cexw3pwSh|M^!Dn;
      zo7lLIUz?Y(J(IeLp=(&z$NA1Bj9lr)3+2?tTX@MI%`Hx6B7@p>92tmfTW;c&AqhHh
      z4eMpz7vW^GC%S|KH*vU6CWL!^dOC9*PXq^KbEJO4pM^&*X)3M_-2U>PuNs<Um>^K?
      zh^iPm)Pv|&CgS`&raF*TE3jR4BBNH}1=WQksvEOvEzYPOT;|>vs@EqV69ie;@+ywu
      z4N?%rXE=@%6srT5@Fr6vf-Rg+bENUzvKJQ9GRl3v2SUmU+>vBn^eKx76_LScWKh43
      zZ3A)LC&cLMF&JYQRb2CD-yt`s#iKGlAmivIUBz{Y_UBZb={}i?M{mHP(OcKBMtCR)
      zz`$)SUziqny>Cz#iH3~0E-2gOt2E8MxZV){0FxamNxo7r)JFE#0rIwqzp0)<uiA`$
      zwS}B*#VFTaQG?j8o+WQXIH87-Q#(=Qv!XJnsS%u0qxe*f`5ex(m>6}P!$r)89DW>f
      zXy6Lo_Bo7^&5F-q2QH$@QIsV<?DMJ<VS~@B!R{ZCmoL?+p(h-jV>x@A8|3>G76R5W
      zL=D<_zn&rkr@!H-sle2P?_nZ1QTI>}Jyg=qL!84@Pl~?F&*xn~VD$A~=BRTE=Nh2W
      zDWHz=xAAcwIOr=~b>OZLSZCV2L-(bxyo>k3E4KU25ulO7ej89ulb6kXWuDzcy2nK}
      z$e<Nw2pL4n4%pqm2^_0X+iDY*Fd8&G9Uu4&Pm%u*TVXXd(g5o`u`b*P>oP+Vzpk|Q
      fE3w?K%fz~JAFRNyHhkoh^D#c*GeG|opQHU>m2r-g
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVK%Wl&^6g@XiW9p`DXiIs&gOnn`LaLBZ5DOv!mI6g;3G0bFI8(V}%XVq`CpN5*
      zSnvUS3tP6py^h;Ng+;`|_kDcNoSE;xzJ3Gn5N#JV!sed(ppN|f(AdaNWA)x2s@#PB
      zGqGD~VG{dBS^YL>ztVZGA{~T@bx|j@1nI|$aa+SZ9TqMcRrUCPGD~PYG1e4M2~KBY
      zK&bbUUG2faLK7~|5SIJK>emPRL!IrYVXO%&{UlWJKxIbqs#q^ZCMP`V{}1CXp&98y
      z2)#4A#i%3`5EiTAOKqZ2L6}dKvE>-yUZ-5;tHZ+YCHrY&wJo}n+KWu3BNOJ`AdquW
      zNLZV6CkSpugw;vw1jwBu{+I`SBs?DPI~H%&%jj+lJP;NL-ga`3h5ES>4cGs=!3QE7
      z>kwG0vtF$7T<0!s5jwLf%3G#h0dDYGhrc;~PjjfrZE`lxna`f2diM*w&m7dyWZRG;
      z{lFr}&G7)1u*?}h9Gqn<;QQ<a?6lgS*iA!!PC=a$=*le6-~WWJVy)V`&8y@fbc$|m
      zsRVA0o7GMsd=Bd+O~QFxV3tz5h)b-9M3*_Lx4@cQ;Y^NohrLXRCRa}_sWg#x4cAJ0
      Oo#h4OW(hZO8{Qu}rNdMJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CU2D`p6g@ZHHffBlt=;X1)vnr)Y%2zzw-oE5u(H~Mx*&ou$<A(5(qu_yTmP0X
      zEhvc3{ZZnbWMLyp!H3+Ln>%yvIcM(muWvs9Jj0#|gK%&v&czomy9ncfH;hEz^F<a0
      z-U}U%hAK?rV-d>_?afKjijqto2D)aVLRc$f9Qv6`MWBj0VP-#!Lv=uyavNPjrIqxg
      zjVa7Jn8plYz7xjs?dZ&x>3iWvlCaoG0ugmZ8tQ!fv!YJIjPSfu?)CqCo7|AeX;m`q
      zC+V5&5jNZ$)e{%Wljky4UP1n)-ZvXv8w<E=VsWhW-{%}Gp-Pw?NcAomr2z|BavKG3
      zB-q>||5OI5X=0hMTvqXV;;e~P!h$Y(`JHyG<Upo2R&Y=Iwax~*ZOy2L2M#t+Cs>(O
      zT@j7AVRbB|+)tZ6ovR|O-=vdZBtydL9}btev2}K#>{Y0rsrJ{1Jk`VrPCJfe+KNP$
      z$;?E9;Fjgy^k^($Vn%7qPzMhXk1b&E$AiPU$vcl%(tmcZV13QYHb-3sKI0Zgr#Qgt
      zZO#aDnCGZ3e?lb(t?pgo&QH|dJo%25kH!_&E^&VXHkTjj!Gh#B?&qNO;^G(-sNx|W
      cF|5T+9%GYP8rb3%2DY)otIaj`0lTn%1OJ=h2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6SyK~15dN9~8{&#_0r5molq4)Jc;FFF;spk!3gkhbCSky}mf4uyp!^IUy{}Ts
      zN2?I4eDDYO?C-Jc*(@a~p^Ar{>7MSM>F)3A{q^U^PXHq*8fYS1d?=R06DN4=ss*Rw
      ziFv0a0=Mjp>Ge(}bbU1?l)O9MKUMWBvKlTI9tgD{ZwfW%$*O^7LR#P9czo>KDLs_s
      z&_FApFFGwrp#rBdw&(_-RI*BF4Ij8c|1cp}+-e?qjymruH@rv~%4|I>J4<LT_;a!i
      zgzY8_BvVLWhlw_%35kq$*im$qyj@!?$?A+Kd6Hli{j%_8Mb*`MeAukhCS2a~>l-(Z
      zOKGn(bd_+pUXrs>->xl573Q<EDeT5x1A7QPoAx;JHL(x-xvB*jt|4$+EOJ$ynQWAM
      z9kl7N%IN2l=;0Q*WnZPxi$ezb8lbIvnK+DohCn{536Fcw73aGS{e1Rb5=YsjQF4Vh
      zEj{K06KPg>HJL<)V8*8SBu6k7We|u3Hrs@4u`;t<;e%s@lpis%t}|VXx*jBPoQ;o#
      z3WIS~sf8(=#HfK&gv?g?Wa6~OzoVvH6@<d`3jSinSKR49-*(o-Ic?whpS6vx=S^Gy
      z6EV(DPYPjA11%>04N*RY%NR3oh0wh|y>%`o3i`F=lJML)5%O)sUvC|(%{jplYedqN
      zjaU&O5<|-wPW!cLSzdQFsdxQ1-N$qY<1(&zE(@Lr0;$1WV@<=%qmL&j!Cwm~oz{cI
      z|C1)x+mPaQ8*3+7Z{j_b8~g?{_Z{tDBcGkTwz3cCDJ+&vEpt={I(g>@u`9meH^(RV
      zY<_SR-IKO;U=;_SW6ZXWM8a9y8i<5p+sa15fNilW`}Ek>P$YEOmJ<o4ZH=(-4Eu5`
      zFjsM+zMawA3i7MC^e?+nZ0AH?poLzdonE1vUZa=ZAWLtVYwwV!_qa+QFi9UVL!WS;
      rK10%%sG8n-#&I>AJFemy*V6)l>$nm1<R;hDgmFwnbu+x&t6QMI#b|j~
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7DZBNrs6n^g5*j75Ab20>9Kt$OFOz;gIkc=4;$V3sg#1EKs+Z|L&JG)N(s{g`&
      z;Y$KU6QiF@{87epyHdIl6aCQk-h0k@Ud}!J_4~^=0CQLlBfv26LVcya$u?hW#%{Ku
      ztMzO}ZEDr*ig-U!4X&5g!U!@9pGkD143XxZYVlfWjbXBQChaU<j-hu^Gc<ddp=T;p
      zW(XF{8kf+6J{e&|7zT=(!8ck56>e>-6`eE0i)K~T%c`Y`y?Yq6_p~Mns9IdLxe%~0
      z)uCX$U>-C~gBx}()e&&4dco3KE(+q15kjv-t3HNML%1j79d$lHhNxyVZB?fhF^vA5
      zxGbDqkTHa07^6hv@6o!`M!|VW#${X~?=I>?URPVXP5zQy*iK1KG>%p2X)q)@MYa<n
      zxW+K(tY<4~b${0~TShH{>)vVIwD`&C6ob^xt(%4|A&u!UGDPlITQtr6yir@_T$eF}
      zSz>n87EIl=nj%Kk44Yk&y;kQOrCD92dE2rr8oPfwNtGkG$soIKOsmE%p>bZuE!<{^
      zxiVIq2*b>O@QX(FwG8hv#bw-+u^=u(@y<`KL$E%OkwcQM%8Q=xN?T^js`6D$%&g-7
      zi)KY1F;3V$^#9S&idmyoFRf|j=^dqAmcER>q4W`?kF*Ftc9Vd4#Aq$I6VUIJM=^jw
      zw|JGZMRDR2l%I%w1$%acbDyEm{)30r?+D0K^$JxMe3%I&aGvs*7*!XO6Q&THOlOWT
      zocV!~_lRY_W8_hK`VbdSB@U4vV1wR|N#Z6HJSCWI2Y###;Yubjj1dtvh_c6Vl_-K@
      z_Fc*n?E-|QWa1O?$@q<9q%!gBG3L6-cBuS0HE#zJ>f~kDAscEJdt{13A=-M!bCstY
      zK@m+0D~Gsy3N1N-2HnU@A6(Rfi@Mr_VnAHQOY{|Rq0BMvcSF4;JMVl@ArGo;UMO3n
      I;sBQZ00)XKH~;_u
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<Ur*Ce6#t#Iu&#o@1OyZjUmOr@gpg>eJV+$YEM^I836FQ(1uyB^r7doJD}7o5
      zi66iZWjuH7$o`nUoO4g_@6S0s_s`$E-vHj?RUSFQ-nIB4x=!3t!IjhY#ii2_vGSZx
      zI#xv-cfzQ7s-)knmGdwOucr~tWjD#dgxL=&P{}dDDDBh<=1JI;HVhQzFoRjbLPZ7g
      z+fAz>qjS;lC81aeJ>l0yq;#EqG?VWtChS+H8IN`9vbz^ak+A4tX@r?@i_T|Xwq%gF
      zJCj#+B|B~&ON7l~!#-``qA@lW@kCFu%*bgLdUVNtgpEnJK_dh!?YCAYyc?DKdJ?wU
      zVKCWme_aokwX$o2P#};;SR3&gk{~Qy$)p;EZ5buE)kt2dE@8Qp{tCwz{0`2Nh@XRN
      zVT&+77`ne#f_)a=M4miVdSUDTdnRx6f5SHSV(>!)Og{0#Ip(=K<V>7rc6+dX@gWDB
      zqs<vOVDJ$h@o6pvah~Uj@E8jmwZKP~)!4#47BBXCDE{Ok7118R`@X<x3d#f+juou(
      zeF0CgmPs8jMl-B?&_xgH<4VUvtytK=Gsc>Dj?Ij}&sp=0;)`+Wmm#Y0FvUv-=dk?`
      D>7mZ=
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>>rN9<5dIEqudae}74J7_DNt@AQWUue7J;DHB1U7E?V&wp*==^W7JU?-LJ|W;
      z6BGaXHokyy&bG7*5u5Z}X6DSy_sz`y`t$7vfDx>Q(8MtOPJ6HIC7p^e3(1n9?IgD~
      zN9f5pxvpEKa%q*D<qclaY|XXoOgaRGq3?gMe8vpHX<-WYAwzR4o@G$xtvrvS84(o$
      z1Q}XZgvr;+yW8A;p=}$S;lhfgYerVHg}m2<idz&8!|2NY0{<)B6hm0Ix#sdrnqe|_
      z%)#=!wOg`GZn~-XF@;A&U71OzqF{(HFrA_Mn5EAJL!hJy(`6W{hDmA_H@ReMrJ~TC
      z)M?M+*$_GzuKSTK*P-05vl&7+kt3}<zt6euYG%P8HoFjs;u5ZeaG9aU?`K1nHRB3H
      zxPm(>uHqW`AbRz(L6oFTliRbz4#V83%y@Yp4_RaDgfNO5xD~=phV%6-kI<{QjXP9|
      z0(a*v!?G!hSe0_mi6=`%2uYuc7~(`_MdaNgF`kyvgo*(vWqa~Aq#`MA!6FxhqANus
      zDn>nn4-u-=xQe@&po$eqZ%7-4)&`DhG@0(Ciu;(NyqtPoZNA!74dYp9I<4XXsE@;W
      zTdT;XWeCO6^owU@$VVz>WyqjY)bdt^QY|pFHDVqSLH)=GeS1SwFC?h~yCOfkK*<tM
      z>o(uvw$1Y!;v)sC_0-X*`ufht<AT`brXwtq8nzkBDwgnsA-Z9eZJjR)IbK&!o$Mi5
      zH9|_WN*@S7p%cw0ts%ON(avZO^dBO;PlqN%X^qkjVn)G3oS~CiHKP42-6A-LmYRc6
      zvXl<O-@&#H(fXOrRUa}0koLU~<2){qj3`8V?fq{`B|tJ~;3qmhLD~O~F7k76ZD8;#
      zdNvaWxV|~~1-$`7ZvAo@3>dTy=O&ay{}+rM;9f$iIuyCmzc<&R93Ul?GYzGZ^Qn~_
      z88qOI5-=b`jARkUOSEDOop?pl_Zoe8gK@mYG;(-`ZPMtlk@sMYS5vRiLLe}Qc@MVZ
      zL2V*WIu`JlxF5$177_ROr~1|4PZ3#?>R^B35b2ZTmAojORf~F*pyylG?J2!%!pdLj
      C1!dv@
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)7TUQ%Z6#h=mBvZmbL*>#SmDr|j2+-J4Yb6zxNCgZR8!p;fbx00$>SQJ>8KCdJ
      zs_#_&0bX9ZtO0MRFFyFAT<((zlT4slU0Io#b7o(@{q67U`S-tH4*^_-t|Gv2^P#?@
      zKT1`04Qne^GWE^WhF&r9scCs#woBWk1z~Nk&c(gwS=}m_qO3w;h)D00sgv*0#zT>J
      zRD>8VG{+P>!g5lcch;yl!V+bMkn_N(#9v_;$u`@!!H_1WTZUygQw(E?=k^*|V^A`7
      zL3DtjOM{A2VQ`$*(18d8Pe_B)S;G>G+r<r0UePy9!Eh#P=XG;UFB@`Q-&7=MhRNqm
      zevCG%p{I02Yeu*7!W0FDi~e$2NSl!yrbpJoIEz6QQHEGEWwJv#ij#K?+gi{qeM^)z
      zyoe!&?t<9Vw@s(M%Mefa=|0IfE%UsjVOY}BlQ)H4cEgLpvhF-!2-fg1ocGaiB4`G+
      z=pt%0KQS}IkjKutVVct-Zx_X!wPREa>Ou!DA)(?j!{ufI+Gs|@2$BpPUQ~v&KGgG`
      zG^y+{Tv0L3(BB-rVWA-f5^Q)&I0VW5Ov<>wPH0Nsby69-Sh6kItT3+Ox{3*g!RA;w
      zdCpcH!!#U2R5ZMb8^jRByJOo9L(-K&ODwlzEt`^xn;KrnB=yL#OY4SJuy-5BEA6YY
      z4MXvjR%Zf#3sWlIphF<R`!j2J6K^pLltt0r5njcO%yli-yj)EjGa@Zh*~Srvy)~@<
      zG;~n9%0x=Wwj7<#CQ&`;HL)R$HCGrC@of$7N@Tryp>Qmtl=Pg2dAvtwo%r?(dMGh+
      z&&QV(=Zq<evXv?psNCi*HocXaS<<kK_X#h>^%B#R7&waBQkle()3Ab7!cu9)axU>~
      zD78^ms-3~XXIs$$&65xbL7!{XlAmGIKW^HnBkiN5jp6Z0C+8KzM{>-D>Coit?Q&k+
      zHsoyWYyG@jk@PZXa~5?vW9pTPAovmQY}P+Ih*3mN{~%Z-A}2Y0%7O^U6tvq(tLwB1
      z&^??S{TW(vAKg!A6+jPNLu3Q~InL0tCZEac1@zLLAfdk=VTtaX_BswQurOA|xki9)
      z`GS7|g@1`t{Ht1^m}^`QL~aD~WeTAXu=BV;scGtZ!5`6Dq2RIPQ)o|dv5L`!u>)LP
      z9RCO1<L>5bRiqm^`za3i9y<ABMEKX}<=<eKe_P9)bYpqBWA)sfRL<L&rd$#FW#~zg
      z_RbLs#>r156vg%^W{81FC8|_0d-xdB!9S3l3`T>z?v?Yr7bio}(BU42qal9nZ)Eq-
      z7Y!<M@fWhWs1glUai>wz4RldS-%&~5Q%OHiNk39aPY~xnVVqYn!S^x64=~Sv!Cn3v
      z1pgf-|Fc%|tP9*Lx#*R=;gx*9UUD3BwH7Ftph3BYb)s^fc0Ry|2t{P8?h-9hHJ6Ag
      h+4E3xbRYK`NShTSRTaSf+Vx|6LU*Y-M!ugS@IRn}aIF9U
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO>fgc5PchmxCtgr%lBtP32nZpi^K&5aUcRwDQPQG!g*tFldT*(ik$@UuQ)&v
      z2hNBia0br688{(k^U<g@NakR#cRcg<&6~IHe!qSL;3n2}L>O-G@jicQ`UB}U&5px&
      z%?9_SW!_WoZLiboRE67nyph@QI!~l)dxMJf1L2CUjwnM)m75Ny;;qJ>umT-1hV(GX
      z2Z1U2!VS!_*Y0>OeNAc^VnIv#nRSL-B_x9q72T1p4DK=%v!SbUb%to!vqc;XCk*JA
      zOF+ZCfjCkOT2>{@SEMU8d+mnk?(l{q7#1s@#hp6uO0^#cqlz>`DeU1#MWZHC)<lg*
      z!k5p4&9FRb$DE<qeI;NiS5M#^F6cNv7I!i+HJqAoNO<YFRqpbp=o+|)OAJX{?DC!y
      zjH3*h>|w2E)t1ybR}3sEZ5Av?@a_m+*xNj4F)-3*Y1se2*)r(u5fy6fkXAE~B&r9J
      zRK30uWE!Zoyn#ytI>>k^ZCg;J8QubiDEyblhr*Lbm01!DiJI5zTH=9J4mthz6<Je8
      zW-vBfx*cVQ`@ZmXtTC*HbT}z~<dz{#w$<o429`=G_tNE!A)*LT^f>Kq(Jn%3B42m`
      zBfpR2bJ|6)FwA6t_7;ouZBRaC;UrGcN)6!57-5T6jbiavI9n~g#N{bKQvJ~0BdUGC
      zoc3`DlpZCIfvAi~UL}YqkzB?#I-1ND9{dx5e<tuRp~0_*2meao-w6DBXz-Qr;6Dib
      wCxQP82cA+=t&TNcA(@osv3y}4*{R?$`ahYNnra03;k$q$t!m~BH((<22OnuxzyJUM
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7@$!-%t5QhKu?#Vbd4p|6W5=`&{o&>@H86lDggpt{U58T?GCUj)aSThsD18@h9
      z2(CN;Qb;5YJOB@cs2)4^I6+o8xZ5?V`l{;hs^5Qp{sORywKzfyw|01!zcbvo(%LpU
      zE&keQa91{s4Rt<s>}^N5?gn>WR&(oCQ@Eb(Jm8ku5>6ZuhKvd~TAYHPG<HPOizCLc
      z6oiVdusq{1xF%gsSi)h5d2ghfTVW{Gg6?B$s8HB#X-V%6LplE+afLcVWYac95)3IF
      zaU?W^k=Bt!h9R6+4(Xb-#N*v|LpWQ!(Gm>Vn%(5BI(MY9`yV5!aE8js(;t<N+DP%f
      zn(L-1OorTOH>0B6QxaAR^(5vnAIBMn!igo*aTezoCOX5nWSAeR{bAspD;h3fA&!d-
      zbHN-zA03NWBDthnwM^j&r!6h+kz6F>D~)Q*>A0+9opL?yc<YvIb5GjVmTaqskNV9q
      zERGcMuZ}6lp-j(3+wKZe(Th4tik_um>>Py;bbX}U8RV$0<ELw+ps}vUUbIlxXtE47
      zPa1>v!rpb7;=WWvG<$rP%1T-Wy=u`aY__=T3Yw_&;ga+>3=4z|(=Q5^$*7s7#f>7Q
      za?sZavew87(XACrKcE*6F!`OV5Khq<BOl;BvUKYHe+^SOO%}s6X8MF@bSuJiaS!?)
      zX7_RaGvUbC$E6``k_rJnAcc>F_~b)pdVzf?A+U@qgk#7L@OS(8M2}b)5;Z^i3$^t%
      zKuZj0i2?2EfOeB=P{pz#rq|`S0D|Vu?^5;Y7nA`hc8x5h*fIfBE3snf0Og~co?0qJ
      S2rK@%itBVMy=fzG1EIewk3jbT
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKT~8BH5IwV7yJcBzL8Pc4sMXLmVb$=4Ap+5)Nuwlc-|ucOaLM+rxx0M)DiRZr
      z1QUONKgu|FTf}HgiVr(?XEJkU&YAiC<Ki2D=Xm15A-vcZhvGQQj+EXFKP6%(j6|m5
      zaMRjtlkOUsWt+l$>@+sC8i+hK9!i9otqT*uRqvvG8Rs6#goPq1j`C0*N}Y!rajsI`
      zRaq{zG=y@#r?SQ~Lc2S5-!(3KskF-12`kIjsB88JrLD9tCqTFvz(d7{i)w%g)Clgf
      zO{jL2mTwORku)Dflt{vKH;qNo6GmBo6fD`n39I9`|0NgCUloN8+tTc$W+3~7#UYXK
      zPpMv8+18ppA9J|p;Vz*$won1?TV8dgV<QKQGh7%ipriZpm_W>KzF_c=zJ%yH0{@Q~
      zmKtHn?!YJb@6!Vl%QwmjU;q2&RxEi!(9wK8TZzar$y=ygULuwl%jNF|s8+KJ=F4{B
      zSa6O`vbV~f!>`|JpCM?S<JM>P989q-a}IEVX|_S}@8dRR*dyG*><Hl%zZRj=Iz{jW
      z^{aZnh+lBuuLZ{JFmHsx6`02YPX?an!3gas=eUekZne*`c!l-*EVi42hlPEF$NXA0
      J#3#{!^Ajg{@Ie3o
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CZBG+H5PqiA9=#q?QF-$P#42q`I7~<gDe(i1Mogn7YW=*|u4T!&ZFUdzZ<!z_
      ze((qIqX@ItCftR@;D?*p*_(Nu*=Oeb;?G|IFHrYTAnY886Y(Ro-<2MOqgZ?mBVko9
      z+;{ea84irJc3+s!2etO0&;$8K=zc7Xha#csio=+%!}rmV>?Iybgw-shJdrvH$E6)*
      z6RD*kl#)YbYg>ekPB!_U{4FlqQ(7f237hr*sB3fy#rCi-%OK1I@G$LT3bO&qs1l~?
      zE@8H#w0w8`Et2Mwh+;{Y>kNA$?h2z^Jh?2o#tFMOr_amAj|glc5;<0+Pgu)8C9Bsf
      zr(LVjEn^YO9+n7=8><!I0Ui=6qpJ}TmUC^t&5XC@<1tn}tPmEn9NC-zPn=$!kt3mW
      zLLgRYB?o!EdxHOQcx-y|wQ`~^T;Hor$H%f9XkLwWEUcBR@Jw#on3)H~-z`wJ>L$o5
      zT;RA2pKXPsZH^1<{pQ9m1kK;L{WHzE!?wgZz!%K14broZyST>@;XdXk2yONbq0&4>
      raEgU9Ji3DL(_ez=q7-I+oH~KwBCO$Q3Q%K+0-oVHd)FK*ignN>b=Tr7
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtS%Wl(95Iy4<hZxhEP$-X<v?Y`{ff^)Mv_hgOh)7X|fM&<y#=aC+t{vI#L;MvI
      zQ6(0zV#A8ZkMISExyCe=3Q{V(7~i=wb7tn8`}ybl4*>4sb{QJs{+8Gk`);}yM4Rp)
      z6tCRANCVGZRrYBTZzeKLS4FbXskh_pK^(~_dm<t~lt~#np{D9xv6s1WmqYGh(nDVi
      zGMNyJ>~)aV?+{wuv3o6Z*-8)v*#p8-;{<h1kD#|>UsgakW8oAG6D6FrP{stI)KCeN
      z-5`?dJKKGkyb%3R5~|(U6Jbvzf%1z>T@6lH8NdB8ig*v(`$O9^nFep9PgwZ9(cf5m
      zq)1$Ldd9~eEE0beT*8$yE)$%w*|TsJGX$$2@2|;$jC{r<(3--!W}${T!UP9992tc>
      zD!gFfx~kQK$Ybq@xvAy*|9e=%)=3olA2ywy$+9+-n5PNm^LQum<l{goIDP!VE-Av8
      zhE5d8q#cShl`N-y_(F?kj5)?EG1X+->b>x(1WmQz`wDya*wgrLHd{kB2e96<r(u$<
      z!8yPu*lex*Y~mcM>=Djmsz7*|BLcI{cQB`LVTfsU(uPNF=0~7a=nU`$CcZM%H_YIB
      z-r!<B#%$4m;ZVm79veLDV$o`mbJQ|Mvvq)*Bg~_Ns%11dxox7we?=>?{I{U}0+a~|
      A0ssI2
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH&g;5dJ2?ELoOUKps&M1ThcIf}%u&B8ebaDYOdAf!idEVX4h-+}!}`#lOKX
      z@N5-^Di4-tf0Sj<CKO2lRp4P~r+a$3zwZ8e{`~#<3&1Sa6a*L+cljPa(A|B*D(h8~
      zf6$BEHA;F`uJ0VX><HJ*a_9Zp6iHR#c%O1R+$xJzZf%>wQP9EAC!Odfsr9$TT~YEB
      zgcv4#ZBcN`)!Xmp4c8Nva2P_~j^R$tFeLMr29lv`3x;KQFBnp>E8L407&>zHwg`iv
      zTZ4j56+!fB2&0c77?TFQdBYOxwMtPqo4jZWhDhEnakIc3L&{BMhXl^Bboub-*N>9v
      zskRlCVX~2weqQO8_k`tT;sq5Wh$<Lm7`w2{zO9BExJhZ1g?G|~bzY&g24is_e4}q0
      zo<j`CbYhH3V_4h56HdjjxF=MM<Bo!fwl+7+HB4fPx*<N+xJlKx-UQylgiL%(LY>xd
      z4>5)=g0U|43*4-ofzY5%MnQt1|CCW#+ct?qD&n}W;Q>+%TCt&Px}nBxg)xJN3T7GN
      zmnM>iN0=i_RR0s2Gep}u`i5$Da+Xo?1Zf5H3?r>ET5U8ul>ozryRl=-nNkT?M#F+6
      z*nsPC$6K<D3ik}#+B7P{k>@WoEXwnU>)F-zV+KZb8gDe}Vm>g~R~dx16#rxBef}}L
      zl7pi%s2g_8DTx(BPRsDwmm?*sMO|C7Xy$V!cU>XLaze+p_k_qslStn+u)aPyqV!k=
      z5s;Bc+eOkGNdfw+iR2GxiDUG9Cn<n_T0>+57>LlS`Fj-u7$k`TVyNliYtutIS;uhX
      zRvotwk)r+G--y?dJVZ2c1nmfV9gh#uErmLseWQr}?)hoFC`ANn6l)Ko*vB*usG*-R
      zk1sxkAs=bFi2+FCC6*{NP(IlvnrX5Ll9x~-d5qkt@77#oz5y)z>k3}eUsi)rtW^a5
      E0l8R+Qvd(}
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIj-%k@k5dNmU(z~;Y6p&vkii)j@7sLmXLmwcRloUg(ZK6Jy?R6<<u6Omi1^ln{
      zMG{T?1N@_mvu%O4K;L}XncbcF=9_P4|NQ;=8^9`ZX(R}%pT&VVa$1LeSa+I%*mJ6)
      z<$KPCUf+tEA8oXiiozWkwhKx&%7rux!t$uJvsl8|x*z)L6(O0+R|v*tRFgK6urf$t
      zj4)pGL;0rNsLJ@As0NadEk>RQDkApvzISM-eZNImD~_srAzhbXda)ErmJ5UzxdDXj
      z&8X3gLK!MIKXB1e;`FjyaBUDQ0#ymK1Cf0Ygo(OTyK&T%vHH3j%RT>yFqP{<JAq({
      zODbliT@yD5lNS(XjAk5pvenv&+AX<tz}yI5hG?HC>~^R);!rtKM>=Oo?#BU|I%6x4
      z4c+Rwi;@har+j{85sJEu-F(HyJZ`43K$z~AeEXzw1~a%t_|PTxKN#?^_&jignE}41
      z4ESM*$7NxJ1Psv>YM(HFxfq0WquVuMX`qsB^_(&UyA-u!Prml`ur6NyPo8SsaF^#M
      z$^Q*7*yEAsHO;#<w!}8|=osdAb`r38wb=se9Q+bj*voW-*k0wGg=-k^0X*YK4PgEP
      zy+6kFZ|rw5bP1r)mv3SMSw1r`iK$-x3R@kQ%uWxdmikhYz0&*)nC+#0VxSbKT92Qs
      y%o#s0H_YFIiCPEbc{i{JqC2>a#ZFxdcUT<Vt%W7r>xg9GJ|1+0TITZv9{vMiyDuXE
      
      literal 0
      HcmV?d00001
      
      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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
      Xt|n3G>HNRkWbVQoiKY;vNFDS6x4g-^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5Yj4s}7=BK{m9aX&-P}b%#R-h9oA-$^fvL$RBX}cTV+uRW8fcgH!2IB!GI2Bd
      z!H<6MM;YJKGDjyQwn<OVdEWPV-rM>0`}+?7YbdBt7}h@+UE`zf?wi)GzSlCEdfjl%
      zhF+52C$=rBhQ*(6rtkBn(P@dQ!(F%75T<RZ2s6y}yBF)OaEylVafXP~^JkbT_Zw~<
      z5f>On#Cy|CuQFr;Cc{IKK6g#a6!#cP|LqhYKi1FI7{VL&4j%=>X$>kOQG^iFFp4-s
      zD3h&8<cx+>7-5K&O^a7L?K*d!8TA$?q--~gR?Tosx$hl@Wlju*favgy1{9Z)RGd8$
      zq;gWNtK4bYPMhyAB>j|iV_)dJ%Ppb%<$fUl3)xx}^EjtsfnjQ3$u*ouk|Dm!MX#r&
      zju5s*J<4PQ0dM(0A&LvQq~apOM1awUHKcKwdQE)WRL2&>{0Sc4&I1c$xPq*T45{^V
      z^_ghMVTt%$E{cA};moUSO*$@XSdmziFmDiLJrv$$SnvWLQWFMNr)mt$jj%SuYyj&E
      zhT0H)YImFle`v~XPoB6ID>4ZNZPT*2v(YkKm%A#~85aAq8{T=EpMNhFQZ#WPx}yrc
      zG<HBdE(g;)0S#u9@G;swB3#<Va!Uu$a$hl?%O4=|*)yD=@3;p)CXx!dRWV6t)8s@h
      zn4&-V#4tk=3Q?ZLY>)U8?Zbqna$k@*#N2lNC#Lg<NL7}@->|4aE_nsVN^>$yyr3Xo
      zLc?n$@P_!_B8hjNYR>2TtD1t2RZ@$P)f%pnUV@^%hU*luf*Zu8;3jU-DwAcnjXO~O
      E06FY0GXMYp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g_ua*-}>8%9ng7RT0}#Snyk`CV-lNKnQ9de4Ca5*DSlZI|UPo8vl`r
      zVD!O9AN*0qJKZ8JX%pLIcW2JM=iGDe%<n%xegc?7$%H{Dy%BrjogMBw-nPB#iY>b$
      zLZ@mk=;wy-t99YYmrE0m<(8<qYD2nGgmS*B9N#k$CyX=`%vVAch^mTkLLz7|5QbKo
      z1DB7fON1`<+6gCS3AvV#&c*1Q2ae~cM}&p{PHG`P(a)C&@kM`Ac7t%%f{8>DF{CVX
      zBTb0q@@0*jvv3Aogw%@T$+g-}MFuZK#g&Y#_*LPSMd0XlV>7Nj5gxXPc6QXZy=>D6
      zc3F}e%H3X<!ImHF$W6j{WZD+{%9eZ5Q+CwwC;GdTFDEgI3ns=018tjb;UdNf>20YR
      zb6uz@<$FA(T)w5`<p?MxaS2yUTqg9jFh;P230&oAGv6wA(j|<Z;)&wwV5tY!kT;QI
      zwPvoS5DNuN5t5-)>wyeI?Kz%%l`remX$vzNO)xqi^}~>Rgt2<z9eP5b3U{NeH^z1d
      z!!1}-F+7IkbH5f;<x@w`yZ_YHn9(K(){^JRV9^y^ZfN2jVY1m>=h-u3yUT?vpSl>|
      zRD=I~^ni3)AI|y?_;4l}@8Q)m#&uk(Fm(v4@D06%;vq6$>VbXy?5)F!N#1f=h<@H1
      z<RnhP0DtLU3PUVmFy(m+H;4~-9cL_C_=?OCMplczFjzc7c5OQL9g_z1t7zavX+)Qa
      z_gv%wEPOx)ADQnH#__qXT8Q}msb*ngmemp*HHYi0m*Hw};3ijW;1+WkxQ#pf)@BKJ
      HaUaHCcDyo<
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GS#uOs6#j0K$qbW5aDaqBL^cD-gp43-2EinN3??B45(L~jGfilibcdN97FS$x
      zL);ZNRIKvF2YoQ4OqB&%WtHfIT5hF2Smh7Uax0%KzuVo@>COWBFt?}s+;i@C&iT$c
      z_xwNae*j=9-VCEepmv{nP(7T;AJUD!#6VWvljv3RdOFb}*DlkvI#omKPK8k>Fni2i
      z|Aumbd2&OdS5u9AqBCa>XgTXh>t5C9)7tdBr5RdIpnR=v=+-)c(#3T>0%fgcMvI~p
      z6$-+L2ux|y4XvZl->c=etG!uGAl7E4)ohQN)8)JSvCP`5=LHtGjlnc7{-i)8ozql{
      zz6h)is%>dC`v*)zGpuCYSbLtZJC%$=ph7?#7MK~>=`$fPNjLJAn$60iW>0)nk92#c
      zf*Gg`W0t@Szbjjcp_ND0D7XxB7#r8{25pa8$XfJ&)+qButz;do3(Qq8PbyyODtf-;
      zrF4OUg;F}zl@^m^3u_fDlEO+?c%62n*Hm+v=Cq}o29FkLfs)*SKvggj9)u{W(V$=n
      z8U?D=OlBfR)H*&~kT>)vj4K5e`eS6%)xp!Q4s@rww7gl!rAem*Dk8W_AT*HE^7$}U
      z2&@^SIWAEay0Pt)ijM6lmSdG<=W2nLV7w<TnB)XOk$Fj=NkI~8Spx$FOQ6mTK$ew~
      z*xI{KOIty82M1#i!8(C(PRnX)UJK(If#m;ltIJU>I<_9GqG-j&FgB1&epB0IL+G~j
      ztZwOAUcn|@%Sy~?^f=8L@}e%VEEp1BB?Lm?Y1pY`Wi<GYvjgd|Gi5L?qf)vV*U21I
      zO1$j~I<S?r_V5%nE(9kPz*E#99P(K0XDbZICn6U+Nr}$gjbnFT06(=Z83=Slmfr<<
      zzww~mjYyUq*crwR0&`@z#;p;1uYz6J&DPVWS=;O)5SYH$>1GK(ucX176x@tk*iN{)
      zSd<-VKU-~3Wt){F36c@00+TaN&uJ-GmT5$h2Kkp^@33LnCpg;`>_H#fymp|VX4xiY
      zj6?3aT@r?_V4uWXK^Ps{p&m6`VCl9ZtDqkSkL366R54EiOD7~+D%iG*Dn!oqw5ZsS
      z8Urru(2b0Fh+VCPf9NKgUJh0m60)C}-KlofQ2Vr;f&vb*WQmGg8P6-55rJrj!AUV~
      z_gFy`x8aU3ZfE!OAJ%4?`<so-CQV}y?!;ZpQPxy5K9sDRU>H1S$2mndo1?fljC+_`
      z|2ah^1^3CB8%ndGa5jfDNjr`W2k>}<+#x3O>$F+{rATXsK{21NE`K<B4L7}Vn2!*~
      zZFQV6_Q&EaqzH~RQ?Z{@$ITDl3Wht3x>Is?o=|XHHUxnu6+C6nId4aCL`vy13Z9kH
      zX`a-pRD0AtuiynKk9qRIBz#f9OHw@36OWpOa?rh^;8i*3YI0h?c~C2s)#%$#)G5wQ
      zy1dv-A9cxUl%ZinQwDEJtywjn*T}}$*oj0{_hX=+V;-F?<uAkw-ef*`q2fA;ZwWpH
      zpP~9Qh`!4|B~ZAQ+aHtM48GeNa0#aHZ4##9Qht%j%eY(0BEt|n&mi^=|NHfi`Sc^0
      zhUt{Eicsn5ALZ^+eygpIpFvgp9I8*ECVm#x?ez_Vm@Svf<uYF`SB#*WPx!!NbmutH
      zogkhkX!A+TX0qqvX<WgyO5}4L>n?JhgT=(a@xZkX^*p^y-k)4FE2vSzpBOpF3BxJd
      zSfwNMjBz~E1TU(L?nO<!eGwD9Zn-Gd@feAsJYGMD_z0A!{q;TiJm|Ak?!hVd;P7_l
      z+B(fVmeE#n7zyTQX?sI#*)W#xl;K`Eh&2tdtB0}Per@J!ykQ6}!`Qr&;w>HV(2^mv
      zjR2^%Q+}4AKZh!O$Y6eiI6mPW=sZ^9Q>@~%37^^E>YZafa7h;&?_TJ{^>k%9IoO45
      zHY>NI+Xeh1C1C<?i4USj@_^49JC?+59YpU*H1ch4Q&~f32>Y8t)ny-}DrOGhz*!t>
      zDz6Szmk;5{TZmML266WY?k1uDJ}2%ki0w-f<tx<S8z%l+2I?DT?`tf;ccjJ-%;)zc
      z^^aJKpU{k-ZC^G!h&*3fa6cX(-Uz*Y&?eDjtiUlmL|<x1y@&A#y<b4vU3iq~T81d8
      zde|;0b|u%-0QDaqP5mb%;h&bvb8<O3;*CT7UugGNQvWwn`FGm<gVg_%bpMOz|81lG
      zFVtsebkR&ieNk!~o0$4+pBFPR`64FRVO<je>c2eVvrT<biIAxB*&2`fY{#yxPG&=v
      zkrEdqbv(q?$7R}LozJDkc?b)}l+OyWz-L|Y@~ybsEx{?;E5U1cozEEmE$3Np@VTDP
      H(<u2DccPw(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVq&q@>YSpa=+pTBSD$^{&Ov0HPMDI)n7VCr{G@gh>-7IR*R_Kf?#>
      zj1P{_ew5=*Qfn24;UOnyXW!OdYv<>$Z{GowQB@IR$nWz*er)(hma}Ud*nG!ma^EtI
      z)!^JRJ=eBZxwl=*mQ}<VrU%1Un!fb7DOXHsxemjy+_U`b5*6JX3_GK0g_4#n$C6cs
      zYVO=wVW44ig1jX?LSD%?7~*SgON@XasbdJk8Wdd6q2eM#CaQfRCADce;&rFp6y7`D
      zv<1WHrfYJ$!96RmdmrP$U<}3c0?d|auw<4yuJf_&c6_2_^dx466p=^Fy%pY$>$OFT
      zVXg<1A4x+T3P&0dx$D85rqnQrX%$mFC5%(!bX>s<!^p0XTW-fQX{_;Fq)EiUo94bS
      zWktnRhKWI`Hu{Qdn8mz~Yq(B@EWcs-R>+T%%fAnNSsgcViy=)-wn@O6V|t=ZAW4T@
      zEnf>_ays%TFeE6Z!R-#=p!CpH(s3J$<nsHjAdOTU3dd%ci3mG&Kw>xMHyI}X5#%p;
      z@(;CyEja_LF=!DB&#ge<%>SFc7!bgq*BnQ9Yc}_NL0YHQ9n*Gw+O4{fdu~g`6NZIB
      zuFhC%9m{x1HHZ=}MWkSzA23YyWcc&L^<5P#(c&ufW3qHQ*j~ED=uwfN?;~_uBRlXX
      z3&k(c3Z<{mKZijnI<+vErdFOIP4+}+Cvgd*WKj~vFiziSeDXyFkEvXoeDlRFF8{!6
      zz0}3rCybTiUEHXa$Xb~F&_(fYmk9y}<pmPTOQe(yWRzE!Q|e*ILR72YaUMoEQi2w?
      kj62jjLn!a!9(7f4pZdn|01xS{5gtZw5Y|U@#_<@H-}d1mEdT%j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVq&q@>YuD*}R`R_RRwc(>RY%HT{L@G?Mkc=9woKrl_1<P`8z{0twg
      zGd?&z`%#WNNi9_vhKHP-oqbz-t({-LzyAQRh_Z?pL+*ed@e{*8wwyiV(B`{Fo%@z)
      zRDyHU^jzDnaBsVsSyB;anCuN-sr%C7rd%<l<vI-ga^LbZ3siKyH|&C{B}!Vh97~oN
      z%Gpb2g@K063G$}&2ze=2V~DT14KV<Qq>euHYfx}Shl;BV>8SRZl+?QAh*zy<U3go(
      zZVQItb=Tx}jeAyLcRt30!59jc1(;c)!IBy7xX!1h+wzH$;j@?-QbZmx_eOZTuGbU|
      zhM5jfek=`fBphi(<gNvGno`3!CRI#ylrYYX({UYB3<G;YZn`bcq_IY`ktPuXuj>cG
      zlqD567{+>~df8Q6!!%}f+{7&^WcfAAw?clDY;Gs;Wpv!ZU4|iQQn6k0W7RP|(Ik{4
      zM7El%20>XJIpi4<6jbAOi-1sm=ql>Chk0`OU00AsGWLaYGfYK{ojW1X8}sW7<Nqjf
      zik|#^4Pi^pz^V*dM8gX!P&obnYR?A@Fz8js5#FlJeP58+sWr#6U7wa~L&$x%q2d|C
      zTrXJ{?6r<%Jf|8&36~<0aDyK*OmuYk`^R-%B`nb9D)eWv!NFjC=@z3$MS{K$&~26M
      zz@N+)zCz0vzd`>J2BqlK!eE+Od5b}^$3i=aAq<m6Nf^N>eWUTo7Zp6Aa&hv_7TUP>
      z6Vn^THfBC!q!@4GcDYE_-1LVw3a4Gh2pE(tB$REWly^ug?=hq7gdOuyt!~Fz7~x0>
      n+So-bQSUUNypIReRl!5*8^a?!rng3T7`;JQpU@e{Q<VMyf)FCf
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~E_c7=F$==;*4Ozz`4wb;`b^Abt;*z=FvPs0p$QFN~+%0ZO`-v}b@n#h>AY
      zGx5TB?T<3PZReOm2p2s)Z{M%yeV(_!et-V~U>P+P35MbUKjJ4waBRDK#-YP^4U-49
      zWvqwiw&i<{v(EjUMt(&_l3{u<e9a7`&n>xTN!xQ7hULB;<d>-E=3v+bRjZV=YP+_q
      zG1Ll|&WZvJhZE#&=@as5vB{9Edo3{nhO~|$3~NwuMTd&347s@WnUu_??TXi(wkiB~
      z+;jxP=%#0Jr^$Ugw0j?u;b08q%L2@=&|v92cRlx0+v@~G$>>?k3>hMin0qVyUC(ce
      z7Q<W*C_k2lI1;WjVsbaaJ58x!64NTCdP*4Q#_70$8HSNPA-BDbZ_!xeg;<lAfj8!X
      zuw+%mO@@g<sb2LJ*D#BD9k+0s3fV!^4(x~@rBHky`tmyN;vPemn(UB(4cGETn?RBd
      zg+{Rv#uRiEQDR6@Op`ku!a?bgtD@sR7ReR#U11ujI24V|FcTAY?tsK@A}|>y{}JRA
      zJo$%O!jYVTH5jy*g_m|HaPI%jUJMCf&>OBR{JO(~K#<m%4cBtKfOcz3$bGM+;yJ^@
      zAXgWxwT@N1pc+I8mm*ehiytyf^<?<_!}VQNEYadB^kcGYHr!siCFoI+qVFSgtCJo2
      z)1~rPXr;<G=wG6s44qmOOj9c#kR^K}veUSRQL-orV;HAzG(P#_f+tiiNxu1V7uSDc
      zcB|6G+-Hnc5?$P>RmfVH{n$nMw95nmgTj$gOk|W6a*Dv5vKMtM#kKk!=V3%6rD$Q7
      k@ql{g2;~YMQdb3!sBZ#~@r2$Q;bHU!VSP$x63<Zm14y<a%K!iX
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+fvg|6kVq&q)nrRLJ<(8YL(t3pm;5I1{j>F1L_Rg2cJAm4-iNbOilqm#n14;
      zI^%=mvmfQSlhjg$VR*>N+1a<X*V_5@`}+?7OQ@-cF%<Xt5kE2fW6Rk!4sE_;G`Vk?
      z##(T0o1SaiYutNR&o8TpGfWSLuQq+@aZ|3E(sCV!VYz4d`9&(aIT&_9)hZ>eSdJxY
      z47I|gv%)~b<^*|LdW5`MY%s*v-Ihp#A*Evo!x|J^(V^lhLpG{?CMCUTIpS5P-4xzi
      z-n0cnX45sf-Qb=T*u9VOU@(UAWdY`wX|PnDJFfGo?RI>kBy$!sLz>7V=H3Wz$MxEx
      z#W2?c%8#WXj)WtPh}@0fPE%@_#I%a3o)X5naXPMJh9S8t<hI-KOd4yv5NQ%I@VdD#
      zOj%WNgJEJ&s+WDmHOwNX<0fuVA<J)Az7_JL6pHTyUtY%@++`T0CTq599@HJv6Kz6C
      zLKN!7dJt65QACL$K|u{}cL)gOhpvi_dsrZs-**LRB;!yxH^WTC*truDy)nPZF!_%n
      zr|8K))DpJj46M$eMKrvy0)?~xul7Q~0E1q49O13o-1h~Eo!)Rv+x2O=wuIbsTPmJ0
      z%ny=v!CvcF!E>rXlyE5`3Agwm!&Fa)zkgicRmCE0u0nq%8yN}Kmu@k7R3zwol5Xo{
      z2mVy4{1sZM@(uczFepu@76#MQ$^k~mo(Sy}Mv)<lk}!sG`bOiEFDiIK<>KVamAkn1
      z6SG^DF6KUCtP<<ucCA9z{OpG=%BNi>2pALx3B^TP`G~CIVNQ`@$5K?Q-!TUx94SE?
      lyM+7HJ4+}ZV41oqcu0L?c!bCF)(8)yHwfz!I^%eX>L1hEBWC~r
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|@|Y`a}8Rz3=XpjPRZET~nJ8WLzAsiA68?SpT#+X0qrcggM)FdF0E
      z@MriSCO#OS{ZYodyA`Ss!o$waoqOlZIp@y&`u+U}fE7Gdkzgq8@dJKj1c$b}W9&P8
      z+c0@xTgG}gwk_XtoOSNMX%=cKk_<D$<!fdjeQwD$OWK~xFe-QLps-A!Tf=1+pw?;A
      zGuyT0D#L2=(z~KU!{J1^Eq!8MFLfA_4X-QGV94kg!KelWS9GYj$}kaQpV^Y#vR(0_
      z-!p~(nwySb$ZdHRcRJj+!+5Zm423aNE=#abBVm~WcRlxA&+7+dN$xCXhAf#!&b<=;
      zw&(XmmtlTDlpjh%90*q$vAG-JoK$MaV@AdFpcBTqbvkZfmLa_(WZUce7Reef#yyE0
      zcxmnlOV(A~WSAUo)$@~%Yna1=j$61*Kz7iv13U6ZDVE-bxq^<nxW}N;AuZ})uis;!
      zWHU?_b(BzMNCiT6xYH*B$zn6?(MTkUVK%noT>9i)A}|^9|JZ#>jq+NoYts%}Hu3*m
      zT?!>J=uOuZe#7BGAgFuU4cBtKfNo1m$X&0i;t|8*u=)!ws*cBaLKv1WxD;_uT6~{j
      zdSL9|Cv=jkW0|g^LQjp2jfMA-W(oRKq-Z@&vj)XsK2xrIg;uV9gZ?Ed%F?Js#blUr
      zgfWUIqd0?W$WcU_a2?~cM)D~a1DXTCeB~HZKQY&;9%KG9GFAHDImY5CdJaiId5@Ix
      z0a@iErj$?7DGL#y{K+YKR8S@K6lL#YDZ)4C^aP1pp}$5s7SbVB4`@u{A!>gBb{7^Z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g|@|Y`a}8Rz3=XpjPRZEck&YH6%bVsiA6u_QAK=Wq={uU9vj`d^gb;
      z|A0Tk2Ql%%`0S4|-rcQGg%BQgcJACeXU;iy=GX7<KL9M?v5pi&WtZ>sLn}Ox-nO;p
      z@-55ep>(X3XxwlD-*s1b@VZ%A)RAVG=r3QkLltmGEjvp39>bv8kzr|`K-c@r&OvR^
      zrYF*qYKdW~eBoVjq2+R-yrBYO-l()0(yRWa$bunfVgQ2%G+Z*F<1)iYf_-XBeqDOv
      zdADPW;1#!B!BAND9qzVyAfvdqn2v-o)GkV}v`E5oCGPp&+m7E2$&$ip&J1}nkDPlc
      zf-OJjh)ss+9#MXvEU_;<WhLgWMRQVVpoj?_<GoH;XV#gxhDnC(won^>H*iSSa5?Eo
      z;=l`gS2(Jn<2u7=f2*Dycig}fW=!0`O#+f(TZS_BM=Mv}M7ffQ+qlDE&><~;C_CK_
      z10|bLvTUM)Dnlj|s?FUl5lEMtQI7^<Q4Eub9cR)f?^2=7Q2fX46Ka$<5?xPa)UuKP
      z@9JD6iNS1oo(NW59)^OtmtXT7*AMBow1nF6H+4K<nC(}8&P6q`h)0Cs1cED(^rXf2
      z7{+_X{(VBnsRrihDr)r9*w9dPA8D4NPe+E<vou?!ILha$wXZO$^=~l0#6@`;jkuT$
      z)81i-;?X$H;R*^A(I#BQFs+e%$|Zny53pD}!q`ttwdzNh{)}9m{<n@WdxBm-8qnS&
      zqkTYL`-m~^Q+&!yOsIH#N)a{G2|YvEyO@jdEjm3#;uh#{P>w}(h}AtB)3}d^e*l=w
      B7HR+h
      
      literal 0
      HcmV?d00001
      
      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
      zcma)++fvg|6o&uZ778Ii3lu~UMG#s*0*Z(hLCT?mco>CVc;#-ofnZ3OB<1iNz5`r4
      z19ip=AHaulTssLA7{=*zCf$duwZ4BH^5^fb-vB1@HjW5Gc9$RUBh5WDtZi-I<Xc*i
      zyN0gi<ny!c*ru7|&gSaig5%hSxw7Zk*1F+(!V*p#F@_%LK;ws=CJuz<Y47Z^D;7$8
      z-xCf)y|-hygA)vy^%?_Z$!ONF3~!EMEM2ozroa$ev`eB93{5KPP_H10W)*R?FhtYx
      zh1PY$67S1<Md57lqA3{K)@_}e1@0JfA0EaeG{dV}gWr}LlA-R&RD5)V>xvRXUm)gY
      zs+MKevYA37I&mkCE{5S6Go_*%cS)@4S82o8lL>FX2JIha74)Jnj(ZHrtFHY^758O+
      zVy<WJON4$E4>7>d5_r8RHN(s`$N%e;pldEHDf%M}$1%h(eKmUR9#o`}VMw^b3mft{
      zXWIHVqE3Iw6cmi&aU5d|-O~T9`BgCvjiGUyT-aqtr^<JvgO=1xPM!auxGQuoD>E>u
      z;t8HID2AmwLBlhouBl%Oj(us*R7~SJRh#gZ42QfJwk6S4gPOij@zQr!5*O}dJ!VzB
      zl4cFkOql#w9?q+HEvr%Idff3C7;*Oak#AK+J=W~^*e78MPEDo|{<4adfF~H<<4u|+
      zQWNN2F=W@LZcg{O%p7T0wP>stO->z41JHiU%%h*?D@q>_mPp7Uqg50!8nOmDZ=~H6
      zBJ=~4k<oK{{Dk_0b`iAFv!31o3P{jX_16lLXrmnkLr3W0JoLav&Y+wjRY6a%dJwH(
      zaI}JvU^{VwWOxy)VCodT)w`J!w1jsNx(k-6M5%&oxUOKX3O3}Ub0{bx1sww@(HBx+
      z9$Q$$HX-leD-0jJ)0f9XaDZb0IYMVxyp-@gl#ss+7D`AZ*%&cYK}m!UN(z=v(OtbD
      z1x?bL@RzEfeUxdyAy5}x@MyHkn7{$%a7bl8x&oNL1k8tk5#-4>f;U*Df5k`cBzdua
      DGChHp
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Ph4Pn3!!70)&>YmJ(=^mKr1whae7(Kq?9!A|(>XwX-E#El#v{3gW<(
      zkAH(yio}5*z>h-AI)TO@p&Y#9*?se7=FR;0`RzM^o7i-bW4OI1_Qe}NeyyUH{!oiu
      zKM=7B{VjWTLNm~MOPJ@|)klM#)NK_fGLpuH!%(uJz7`btB-oQ-;v&zmGEFG=Wt8}>
      zK4IkVScZJkS8??QL%lr>{!jKM1>IGVO71ai)Mk#VcNv@(6<z?tJco<p9_CQwD4@hJ
      zSF?a(TSfBm=v5%ijtI15D7Ocp&|P7a^(U8(Et=uZtjV*2Q3E_qL?Xvp^cYsNZA>e5
      z->TNEcReiPoQoxfwHbBdIBy%PQ2F6VQ@W={?n+~1ucO{d%Xg9El7$pU!ydiw^r`V@
      zG`j-5t#Dk%DnlVo=N<^du$bxh;h&9YdZ^->i>s7vy0{|*$C^##8aWgyN*EYPyPTo>
      zw`m5iGZ>jrK2UZNXZ~KpO`D6f+>U4qTUx}iq@m1bmXn&G+0u6mtW>f?r+v@Cp`m+p
      zdxE@M<mbqGjrA|!jjvevoMKMWnI{bJ4rMxd`tRWsPLoIVpfX{2LDn)XH4eZJadvDj
      zSaX2oLtHr`EK_RWJr(i+3;0Mve@e+KV}c1eQK5!<O4}fO4(r$;YfGjv;5wXN0M782
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7+jCPz82@crdfIfM7cSxjXr)NgR#KFU8nBvBpe3}}mMB$`P0qGG_2isz&PfYz
      zKKRIkPtGvvFnGi9Hab(|=%~Y!5B^b(-|i-94j|LX<m~Qu+wc2*m;LA8-~R$|6gMp-
      z7*4N>HE|;yt~=gxy5fqZbWwy(DV<f{`BLD!ZdL@Br-m*Cenke+&D@IcmgRZj*{%#M
      zv@`T76KR*o>Dl6{EJYSN7zQ=9D1{fM<GOh#jHD+6hK^{(35UiRQu!^qks+m1j^{+L
      zGK>vxSu0gwXwUh!>;l7f4hx-0w4sNi3%v|&!%Cnh?|5>iS}w|9K@?rd(4Y59!Yzov
      zQRh0bT{+D#vDM2TjT{BCqY{IZ;h+g9{V32T*Q6I^QiUY;;wcMHGVK3ffVC{g(|Cr0
      zT9#1*{uxoGpmq%#v`xn5qkuA>>BN49ZDm5pO=1AgS{RHa)`)QLgbUatz5FxXvp
      zxFz?Q)S`0nIgY~^X6UBtXI;A>-0DMDn_|gW7-87gn*Xd{^=xU+sY1J`T<XFYj#zk}
      z;c%<mW6G5y4XUf{I-<>jJGteg>3bWBnQo-;0>_IuM)(D??5|1F2Mq~^L-A^qDqrci
      z5T#E=a)RR|USjA9b$b;Bb;915W7EyX%Ovp%PFbLG+0z>OrUb`nP&0HA(AsC}yn2Eg
      zUHuT8I-J)yURUAt3EPglnIs=`9A{K#^i(Uhh~&ZwwZ$B@b|=nKQvJZ8=tSiBo)SLK
      zF{On2tDfV9k#OAxETLjw;K(cX&L%tOmn*(UCNzJBV^;C|n*1|zNmO0KeS>38dr~*u
      z%3I*LtTpSrxZO87-csD&2c7D~B7-G8)zr4C)^|AGZB*-wT-ViV;XQIm_n0p4tna%t
      z%v1seM-e54q~n!>Y&D8}k9r}VK|`kWU4`UW!ZHId8WZ(qprJ#p;^2J?s{~FgyGEPC
      zMVYP%Wi)A=r71SNXsXEPsAwl_x#<L>CL7R>JZ6Y6up(V(#9CvcB1_Ku)u1HLI%@pw
      ze((`EqMW2araT(oIah?CR8ycaUt&)K25Ho`(SI9QZ?BrT^y(z&+=V24yXka{&IwwR
      zBcs27kNk=qKWmvj`gV{E@Dcjy%k@5qo!CVux)6Je1vWwYZAANXw1y}8_tkLVHcrs~
      z(0!yvHo!M9`WucWVD`src)3ZPFw`2d_wa#MpVaE(N}`5yW|=n2MYCKo%e+|%_i#=t
      zUeSsf+P{4tSGDX0uKkTZB}col8tfWY%*kugy*hm}=xH79Z3_4k9KfeIj?XZGJGg+m
      z)C8a73ckQKe2Haz1rJ~22EM_E_!hVD9X`hQ#Q6a~((e!aq%92?aO%JjOt_AKpu2@}
      Xgorf!Re~>pHLTOB5<~AQ*=7F$o~byj
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O-~b16g{sk6zTvK`BFd-5lTTuR6Z0$DHJIoYQo2Yg~_xGFfg=aW&qvtA6)1k
      za7_Z3xNu|C#FbIEy49^4qsFM`%@hj+lBSvWb>BVj+;i{k+dt1=0O&#@2%kXDlD4ir
      zQ0)yPy`Zj|+Ps?7Y$K({<T#nKGNu{Rtm#Cvx1KO;M^Eck5CMU(^i@rbo_CW=dddl+
      zP@vvD)ixYeU)R%)I+SvZOnT2zpm@%(c$a4aA|X(aG&8AXu4e@bokhcLz9i5#kteTy
      zIt>_U!x<Flh~(|nHX{%i&dlk>5ICve1e6f`IHjNj6$1W9+l;hSDF~uSu4)t%BP38Z
      zVWjmtYb#0Jn$nV{E>J#^NonScW*KsyJq*Y|1p4wNbVy!C)tP@ViCGzrpSlVtw(gAN
      z1P(+J(iY}vHkl7&p4@?m>s6+?sko<G^BHSJpA%^C9##)$FfOy%FLh}_B#2gl);x2h
      zpbb%h635a~%eg}6&0CzQ{f_-1bf7bcivrzw5@<dEpg;vnOtBX;Yv!CM3#)-j&C1v=
      zE4YFpfl`<5n6a>E@^hrATR{(cS;Ds47)gzS*BppqJgc&1k>)k@2XUQMw4Y|~hJpcE
      zYe7q2)r_<g;sb*UZlaM=c@M<AWJ$}Af|#@@dzNX|Je!6ESm!c0CSL-f$;_IS(nk$h
      ztd)oRx>Ir^Y$DCB9yT@G)>*fuUKo41!Z~(;pI-sTP1zFs2icSj0ffV{dAKj2y#%Ek
      z%eWhdk3XOy+P;Hu^cl*dfgM!Jp?ZtwKAh%QjsV9u^nFRRSM+|3Gdxj<LSNLPj<dwA
      z&*I*vr}Wu}TPJbrkHGy%+;_x%PuveKZX@~UaOLVOV{v)9(a0DZ(3pK|kQQkxjMnmr
      z9P5yK`ibbDUDPV?R+cUAy9zNm)UD|#tbGc2SYL?s^%yLvvcx)%<}B8uEU$QU8`Y1|
      z%_+Q%3!Ex<(f$Ng^1#1?F3)gv7kyiD>0P+-6s5V{tz1}5Zd$*Q{CCvg2W9w)D1M<G
      mzgfzEF~Xe4<apu6|A!mLFh)qthd8Z1jN&$Dk8}&h5cmhfB7AKC
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Iw>s_r14J-lI{*Lx
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIQ6g^uCDQU2Pd=?NtDzv2~R1rUlAVnDK05XI2!6&!r0>Lz4k`&bc;1BR;
      z_+Xhq2ldq-<#>}+sM2A0=w^5Cx%ZxX?%n?SeS88ShgAt7hV&jk;O|uDP&aqfeS>eS
      zW$x&jTJY8_&9)3<lbhmIF_DuHW{5ZAm&%T7bIo1ST-`DmI^12|Nz72xwPx5wVe{lQ
      zubaBNz_6ISyqk|y4Nk1LT${+}QzeG*vQ-hCV2CPcM~93ybSaQ<g`qzPe$FMfrki4;
      zRxJzrB`+I-p?A&FxKZM^?wuQ#VXriX%%vG7a#UJ0!A;A2U$trusnUC%G((K^Bk?wc
      zy=~c5QDGQwFy)7?Dh`C{s)4>M-k!>oF@(5;;YKsmmN*3?7-i_(5$={%vo)%#FPUm0
      z@S?mYG&e8d8pB|7x1OJMUB(!$E4YE13<DJDnPuxAEYsyifGKdBNHoI!9ioOm+43?H
      zn2>Oryjx@-gn~&ViKXt8bVv8qZ%d|LdwyvJQ^+v%P~L)JX>W_BW{WCGKy6MIQ$-In
      ztw04S8zE4M8#Stu{C(3M1$Qw^Cg;@TxzUic`=T<825PjFk9rq!_8Er%>35SfKA_An
      z)C%C$PI)TAa5)1jGRQ#_R&{T{2F^XMX-^&orD&SMUN*Sn2pYE7im4fvL&Lo;++C|8
      zp}>%AR`Q~krQj)6C<v*>T@j4XI`?Y&uVJUAJZ9+Ww9&r<>+bg65A8zqlMtc%PTDQg
      z*|SH}Q(qvbGe=N9`=A)DvJa-Z*%7+wJm8<B=s_=?$O%``M|boV$rc3sNa5PaHaS(t
      z;17(gXX+T=$kuV|6Z*5EI#P4tEFH7`;Wu^U&XUDFcI+4t_7z?18~WG@M%Z^uu%CYN
      z*&ys`@=4so93_ol9QW~nXmlZthj>H;Mu=J-^9a-aF_8&j0gLpN3D4*YD&PsNVJu<!
      E4--OCLjV8(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+foxj5IwUjBqWQ8$Tfg?iI59nK@l(EmV}_O0I5Rq;FFWh084Flsof2z|KJDs
      z89o@Re6W1>qbz%OBSfJn9x^*KeY*Sf>7M-h{rv}kd2ECrF=UVU34gCTr@DEd9vggL
      zt#L=!)S|cUYPMw<JKPj|mE`<f2r@&W)1gpvT$^idL34G>Wax1ZbtgH;klE~nT@^P^
      zUQ4>EyDJQ<sq4G>NY&s(d)KvzeLh`fkV{rw^nxL(pc_3AbfHf{2sao8gWwljVw<`t
      zwwsNbu;1{SAsG5MEsYyhZtLE;eJOjTG32hzkOZUJqDgLA=7)yWbV!!|i>w)9Bp|7`
      zBkX<4ZiqU=WSc5Kbyaa9OjivAE_-{bGlCH$LKtm#L%kHIU<~67y$8bGwVJj@g$<<A
      z9Ryz2j)dmsL%7W_+}W;I=Y5Z00(TVL#XW{0iuBU5^^cb6awEVLxlJV6VgHU%+n;Rt
      z2$Glz;Q@JHl7SEkrja6+x>MC1-Iu>Bm455_WfWvF!w{#udo&;wQ?o^b6reVzD(Q-c
      znN^^Igbfp>%8e!!N$$Ssp@K(PAd_=u^4w@hx_wO<#se`fRgYRHImZm6|Ma^<86Qw%
      z7`Y7Kl}>r;!f-hQt1v`@9&G5|fDK)EU9+A#3`)f`g<UeZ;|LnISlQGJ%c0@k67Hc@
      z5247A>J;*-m!)7GWeP&7aaRNrw8g!e{_EG7DUUgNI$iYlz~XW5{m@RLUkG8k@1<Rd
      z&YnG*$$mv7GxH6~7atU(HR6M*ZfO~DIuH5hC~l&kPUM7J7@#|Pi)0G|exh*QWSh>m
      zF#Hn}TQe<8Zs%IK{~3chxrOwioTFoIP=43K{CTp3$4**9SSp}TDq=ud$Cy;cl=Q++
      zz7T{xOFoUqSfr$3OyUWi5{*72@C?t1z!*`>V+k_tmx+vo6|B-XLU=}BPyuVS$|#`p
      E2PpYZ3;+NC
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUI~6#i}>OqotCVg-sIidEZE7^vWbA_x^@4Mh^P3wO7}1%^y#$jlVbf8yF-
      z;KG`?Fm6ng7>)7&7|%>ARA~r{-Z}64o$s96!`~l10+_->2?2)e4&UPks<W?~Tk5XC
      zH`OY4bWL6I&UMYU3}cO(;&~~Rmk?qYY>!{8I<Cz%cTsb7%Vg+sw{<5qNmW<c!%iz(
      zpsYFF)ZKZ8h4k6e{7BW{gnHez349?_VF(qi4bcsTsDd!MWCRgYAmJRt#b)snDe)EE
      z6sz@GRoKsX)esE5E0)HM3b%DnZy7^gYYe$FBTVI~wP=c)mie+~)g5A`_atbBIPpj1
      ztqFV6vTI_4VWfqW@4Kql6Q-*+`Cay8YE#Al1|=k0!%#cMDY%3ohVCulu3L3mqrMX9
      zOdEiw)g7U^1qqiK`rD`V<ap{bhH*u~Rg5z9QKiS0t-rENmmAHPC2kXlR@uKx)XFDc
      zK}HHUBwVNL4mVJQf}2PaO5LgGj_$J`OlMwrd07Qx$T7%tZ<!zHwR(+#oF&gWp+E&O
      z8gYbM;YOXh3#CgQHN(g&xa9#(P+~>cu1>>jgB$iKWf*F5(UClwT)^37Nd7bJHex6s
      z=v1c|20BG}t@{Cag5PBSk?w6)--%Z>;qk(tluT3DMT0wzpe>6po0?%cwAE$dZd)4?
      z9x$ZaDLm~-DOf_0ifFdru4wK~nS1U0H>o360h9D*g7mk*dV0KvLsEc#5+Y>pCaFle
      z=Z|K`-a*dh-a~oo2gT`>{a}VL`-~pa`+Pl$^XMgwl5hbDve6?XU$fvF(!=DN8Ec^b
      z6NbyV21ZuL8@Tow(Q*1_8W<<r)NCjj@~yF?FM0Okt49eT*cU|DSH##M66_nT{db!G
      z4`kU-OtW7;r0M2mN04SPjTwRx!8mT?4uOdwjk~x<U5*mmS&~8|7YJeibGT1mnc^9J
      NL2b>`8Nvb<{{Wu+SPB3D
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-A)rx5dNkVTH3`{<hOwMQ=u&_3xfDl1OXwb0VF|s;gzS`11#C@lHD!nL-+tb
      zh8Nbv3*)sfV4_Cjix_9O6{<9Zi=I8_%r`UNd^4w?e}DK0U>a*71PGY}aU@=<&arOp
      zsfUKxRZGIrHFeorw>8@`j4ffxokDUZgdic&j9)4_t}QfoNpp3}By_m@x|5vZsO!zJ
      z^TOuYYhE{XcY&~&y11K<R1Lwbw_Tgb=hH<(aK$RiP7tCB+R+g~8@d#PaEZ`c4}Qia
      zwyv9Uvsx)h`<W;ilF+?wX~HN9Tldb5%b-^pA$wtl$r&y!niQsGzN%PNhgIo5OPUa4
      z{aCy$Y42KgMV1Mp4W{DQRppU1UA3<7s<-DdBN#v;guzBL)Rs5}Ll`D>?n!sss@fXY
      z)ssp$5qMfUkeZth;VPlOxm!<8yB@&^t|_>V8|=-Iiqdv<)~1eF7B*981pPZg4R5yP
      zBS>N_gj<BZ7V#OOU>qsts5?d7(S7aPQt9WOUq-<MvV=Hi-Qnpdn3^psTtD|XRY(^+
      z%%lPpENj?fCX6bV$nL)Bwt^YVvdK9yd2T!*?Y^Rf;kpzpwd2MGoI}FkKh18^#RrrK
      z1FZmF>71u54ObATK#0^ku%>&{)pzD)O?v7Ol!9qWd&LlrBYDzdtEOgH4o~)mboZ@t
      z2+M?2vykUKD+Q0S%0XB);mZ2_YzVKW|N3=e%43S(O&k9;P(1EE9^M7`7ebitJ9)Rl
      zXU`tZOuR!RlYI~6tq+Rv8u7tgH+?~z&wc(mip%Kc6FcDwdiahXBHQW#Uvs#2wvA8J
      z(EkY|8`&C0H*+=Ie1qOxpoa8ZFvrJSZ}3G8)2GQ29y|JqFnvQ8eMb-dz!3e!82$2-
      z&(_19Bp=5e%yH5%MsXMSm_`>8xQ_=+V2G*ZF^?ecA2OK$7O=?Q2;+&r-~t};8pIM-
      F{s7BPQRx5x
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-BQy)6#ljpQqo{6@>@XssnC{|fL8n|f>2?s1IP^03$NU!3xr7%CP_hk2Oq%4
      z@WMLdh2ypF;fy*uzJcROQlU!6;i8+}J>NO!JKs6mPru%O05FSH2_c5eK0oBoRp&@I
      zchv)f@2C~-=$g9hty`LH8OA0z#dax~mk?%1wBna4j%#zxUD90LG8wwuJ>5ypP}H?n
      z*#E*7$ZK9Vb$5YbF?Dt~AE_FgSZ}#DkuRjn4B?_x72RNnD(FO)j1KfDkZ_KnKL~!x
      zCAOxUVxwNG2>S`I7=od9&C<A0=C<ygo0nm)G=}V%87A{oS~ST`%Y0F@>JF*Wdzv&u
      zjPxV%Hif-o*)>sR7;iG=N3JRkh3Tq+zAN6I%9JsLgoNQ{Gt{;?1tS<`=-w6XmQ}Yk
      zs;e)RZXxivvM)5ZAmJjzU~9J?opfEs7%nNej4KQS6zQR5>n|<S<wk&6<~EUNhW#@{
      zO@Fc#WF#>m;Tn0j$v_ANlSmOu-6`vi?yKLCN<a1dG76@UWr$PWZJLjgsoA1N3Q(6*
      zrF6-|Oe;`9!bS*F=0=^0BzNC*UBM0H$>bcHJU5z=PG3`o(Ljv0>QU=L&H=;lU+r#D
      z#s^dwhS~wV(kV|>7%pdEB?dX@!K&`f*TAW_HSMXxpp;Bg*hPaoj-XkKt(cl&IW*hr
      z!ril~5|$ZKtwR3qVJUck6$(PCaaRNrw9dVn{^{4Tsel=JIUV%pz~XW5`Oq#zKM4`K
      z@1|Xm&YnG*nR*L3lYIx}jSq^^D*Irnn|(%{&IA5Aiu35D6FK1m`sj|HBH4m~uP9t6
      z*(RqN82pH_^=t#<8@UFqzD9p8)IfSJoTFo|Km4qL*^^`mj~)Ah2>Xg2_6>dPJ4V<K
      zOt7DR@_Z2XIQb-QVvdqVFpgWeO*DFtz#ZHr0wYANfO&*ze~-w7uz*GS%7kb11r>0g
      J)-aY({0%lFQ$GLz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc^F5dNkVTG~Y}axEZUDzv3#K>;sCkyc1*07=k3_~hyK0E^pQvbzQS5&i&w
      zh7Z=n2jjDU$3%@r<LtIVm4@)pv*(=oX6Bo3=JfOL4<7-{VJ(CJA+;|K#Y@#W(#>7<
      zzz{oXNjSQu=Dc-Vvn|8e5~h4wh%bZ?B*dEWD<#LZh32kku5Oux4tGy?;<Frey%}~^
      z*erW3>89@9CoCt<@8%;_Lon-Y*JkqBWRVceTV>e^LR3LJIwEL8mx2&35C-bOPq}oj
      z>!#eSR!Y)-B1(oN^sQT(Fp9#~y>sI-=#@rDpPONPflG_Vg=v|uDpu8DRr*eoCUmoY
      zEZ&y1cPzUi%Y=yrQ*q>~@=%(tTGw~g+jE%_3?ml8NTV5QOPqpHj1f9_rMqoaZH?>d
      zPb8ZNJTC1^&CP~zi7?dMtw$$ak6;{^6<onp_U1@MX}daWQ%B^4%@i6z|Bg_@n{C+$
      z;+PEKI$^Lyd`2jkLV`K!PEmJsU;DO1@|owCQZS7)p_jAf3`=`aFg06NSO9KvqL3_j
      zpcw@!Sl6&eO&C?Kk^Ozs4Fxwb&nD;C<hk*PwEL10#_C$M6puR>a1IC~|8%=a7#~m~
      z47UP!wR4`bG+aTT0wGdw!J6)k*WjtAHRH)cPzt6g?YtozNAjq3ubP@+IXv1M(%rMl
      zA>;^&W+l&hR|+0tm4mQq!j<&_+7Mn%|26E`l*KGRoHqV%pq?J@_3$phzYxNF-^sf?
      zpFMjtHT@2eRQf%Xw?3$w*N6}1y6Fpg_&n&Jqv%B+pV$c((a(4M64_P{_?pADvu$d+
      zhM`Xw-$>Umv6-pi+8YdH0yQKTgBd<%27=FPm^(=p^Vrc>gy|c)=sWu92S({9Ch3=-
      ze7+v`IQbM7u*gZnn7}REW*S|H;STOHfl;QG#S((NzsF<(xQ}K2Mi@{01sCvu*C1Aq
      F{{zX1QvCn`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIg5Ir}fq)meb<g<YIQK2m@0mb@J1fjxM2ap-G4?cODULcqzOp=27AN&FS
      z3?HmBJ~%%6qZ~JBg(@9~huqwoJ-d7M?B4wR_3b-=MQkdN7_vwFgum0hQ`0`sk1f8h
      zSGi{z`g*YL8LnelyWAG9%Bg|^nIYMUU#oh)%ME|c@J+{N==BdxFSS5Xw>n|}3tJ?w
      zWz#nO6^7OH<=sN0ZgFD0=etC{n5i(xC8s80V2EpopjSl?`ZOrG!Z6$le!(TNW!hq=
      zQLhU3C9hh7VQ|YaxK-h<8Jyc6<)Ac%+@%?&3RGG=#cjuaUw0ZFsWNzxG(&>)Bk^{H
      zyYIMlQDc~HGv%kgE>48)>n(jZf<2X~Vhl+I<LzeXU2z&FFv$=*5dNOia1E+!D4ppb
      z@S=Jo48N%08pCL3x1OJOUBwixYq)`%3?mfjnd6!t9NXts3$xB$BGC@}XNcPVWGkvj
      zVMf7i^6rv>5E^EYCYGjGF+DR>zbBn}9r$H6%pu1xKzY|K$9P+|4Oi4j0%~)*oGAyO
      zc?~*9*(iZ3+-gvj<R6;uXt;|dGI?jFz>S6^5{k+&*;1pceAGM1J7yUFtKS{cgn%l;
      zST{gWJLRbf%jXQN%%HZKuxSPZHge%|%?I)@Xl2_LZpq@FCurCb8@6FN9u4=l@DH7u
      zf^~*;r;`7>SsI>VgMyH1+!w78+U7w`|1|8(RKx;ZogVr-u>Stw{?JaMM?sXn$7olg
      zb6}5W=e|JA=DtGv9D)+Gsv(%_rr%0GokzlR90M4n6FK23hUgpJMY6R5exz^_vdzvl
      zG5P~j+qovDck)f#`h?-U+(f1z=joUqmftk7c%Cd7u#;p&r3m_@UJOZ5Oh_@zNbxZF
      zQY-9P@>$$Nfs#fsjr({&H2RRlLp&k^6GW|uWyrLDOk^aiV3pn~;TgR_1w5fu#u`e$
      E0q3AiTmS$7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%}D%6#nkA1i})Agrbr~RDj^BX_lC#WD|{;GZqiMUDm6vv+O#%i&p<h&;12G
      zL^C}!J@-d7on1&N8OI0ip5OO7-#M3GzrX(gFo)+MNDRdze!}0Y&Z%x5sK*B1SDW0?
      zHFd)~cQxBGj2&)@x3%0-2r|QXfBbsWac!=->zb=uCc`!NP<L{(RCTLA?6R^I%39G)
      z-Cbo^%U?ask5mm#sCQkPz*h<l2DxhOi6JmV6$EiDf&gL)Lb%Rwvs?T^N_<N<#df>Z
      z6!sh5Gz3Fp%hI^f;I{7RJ)`Wk#!$L4!rT(I7R_<fGC#DewnMBWE`nx=6MsbBj<EMF
      zyCwD*rg}*EsjG?;VY+IU-%U@ZHX|6rcnIm<Fw}u@3MMegFmxc?U8`+t)K@ZJ=mYS&
      zc_cKq62dKp(f(<@I-hz38QfNI2U&&`ReEXJ`bW!jxzUZ;;5LEimHoR!y?pXjBFN!>
      z2=^#^zzr0k-~sZ4Qg<4<qx<X!@`ZO^UQxj`N(>RYw@wSvYPT53S@WDT3RDoIVMn+P
      zZnUX8IbZXr$zWc=Ll1D05*xyHbsA<L+@Mb>!(^9>f#lKTB<GkR{m-=fh@pUh)0|@%
      z8x-NS?gz{h{4V=1bZ@g#7hctj#|wi}GfiPv4emICwk*DBYKG;|R@a4lXzhjYj3M7o
      z;bl)s!3L^SM6(5VMR#}V+-v8*Nu9YWn58!ppuYt+JnTIjk|g?t5GMN&NmbH4f3!IL
      z6_H};8<a18P@K+)AIuPx;ut19<?B)0K!P+%!U&RNqen=-Zo$u_2g$cM-NEQjWa_03
      zrnbu+-2H@TnZAV%%4C~cmeaCtjir6bv!7p`C4`U?2umY~Nl7H76eguHWTiBU(gYTy
      zj1Os{d)XPJMJ!;EpoCGzBP<b^81i_GC)8z@;4YISlUyN)5?1h(z7dLN^aZuGN~er9
      Gtp5SB_))b0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIQ6g?XPEorcTd=?PV0{tYQh-eX{6=v!HGK2QPC%5SW!8Bo#6!b^<1N<32
      zSZ922eD+5<-Xs;ObQm7G+1-2Yz2}~Lx4(XW{{dhL+Yv|%nG=4-KWOf`VI66wCO_1w
      z+%<Hq=&uL5W1Hqax5S%ray0^(A<>TCth%1Vb#GJm4BKMp@s15QxkyoW+F{p)Es)om
      zVHw^!!$#`nZUIs=Ik7(Q93o#xR~Y1yT@$@vh^gpCkAg1rsfgef!*Ce<ic5UQu*6=Y
      zUKP%3UNr^7;Et_xv%($2KesMrzchy2jTt6askB&<TekJFZZ}*~W$-F#hB)a*;_VCP
      z(01yg#xUJt%FjJboC(X*LVdUVJ(a0o42cNFTg}iq;#5pvlA-rVcn5aF(W$PXRJx78
      ztLll+y+Q<c7)IN>_42ao3Z`&Z#SHF|H$|!l$1_Nq5K-g~QD_DIJ3=jQvK160F&Dus
      z!$^ntgitY$6mc}%is2f8_Fbv;Ti-9EB8wcu0A($jw*J0s>5izA0Mz7EIbHTa3o0~_
      zu2G*FHyczV`3I&4Djs5)OzwrrccT&M4kTrm47KPe9(7J~PZ`Gl>2{ki0ien-)(PO(
      zPI+p=^f&`6GbmvTwhe#0My@=q1z#QpwQO0!DVf}L1&vyK%hFBTrP1CM-mzVapvaJF
      zSMs`drQ!v)C<v*>JrNGjF86EtuVELa0v74vbkTnU>+knp5A7uSMG&R?UfPxD?Av3R
      z>{lq6+&8FS0#KY*B>+?1(hU0PJQAE^7{DN%$O*SGM0fNO$rc9uMB%#0HlJ-`^e3iv
      zb4^U|<(s(w8N+$GiS&w`r(=Fte%Hj(WwM0NPD&yw&7x15!;qB1gp|gdlns(EhhZ<0
      z&*KqRC}|Yac#Kt|(T4<{;3*N9AZi7yL8kpPA|qiP8}wBO&*%#(;5n@_Hc|QmFE&k1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIQ6g?XPDQU13`79uQRA@^}_!6u|5Gu^n0b~a0gHLYL1;V5Wlcb<O!XMzz
      z@WDFcgX6P5%JC+xP^H80(9Q1NbMHO(+`Ikt`}+?7^Vn7(F=S5pIsc%07p8rzpIQ7!
      zuW-*a^vz&BFkHv7_PH$%OUb+fnIX}R->7)L%ME|S@J+{N=<!cXFF8k1ciLe$g)NZR
      zs%e}48pC?(_HH3kw>Ysr@LeKbNS7JpqEi*UV2EnyMvsav^l4CVhheZ8{F+N_$F#*>
      zy;c$KTVAmQL;sFraI4H+GdQ;{<)Ac%?5!Cl^Hf?i$!*8}Saa$gsnUO)G((K^Bk}fy
      zd*rw^QDvBHG36J&F3yGR>rH*Pf<2X~Vgv~VqpfD>9dR1QFwW3>Ec^qf?iy6rKq}ov
      z;7#RJ7=A&)eTL!oZoR(hx{3)r(C`qC$eSXSh3lK7O%t)nU82wm`gep{-efDNNMcIC
      z6NaG<@d=?}8Y$vvdS%lyL+!g#>34x&M#BuU3~|bONYhcW4Oi5te(G_mlr9CBSq(Z!
      z)=0pNTXiat+(XlXhD9uq$-6WKZZsj?p`r}qO({BRM~#!bGltQBn%$;L2&gcObOHpW
      zQ=Y1@e9pj13~I9j+h#CbL)Tu`Y@iN<R<dp37A@|1f+j7tWgC{`(PZxm|HP>(*knkx
      z3whJC((npf6ogdczG%+RE)Qz@uV0s@0_N!5bkSb}i^qe<LpzCn3L<phOS>YS1A8<x
      z^A&0)`wiNc5EP?T4Z&2mq$5t}q3|5VUG&q5oNx~VbVm=7Y|Vh5C|oz$re_)${)vg*
      zYy*>fxdtA8#$ZlvAiXT-=$IRn-#0LSl`IjklNJz>7SSgyVL)2On6!c^DIX?ZYKFZ`
      zK8>eXrlb)}Vg=8LMjsN$<2ex+BWeY#LZ<x-A|qi9>-1F#&*%#(;3cgxHc<Qn*6~ed
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6?NZY~6g{^TLPLZCS}3A?h}srPQ1Of6S1U-Jip-$(_qHr0OiVgSD2$Kcn>Yh?
      z#veX_59N517TQ?HVKUidckey-+<Wfsuirm@0=S2wf(T*lP&CAe?j9RfO|P3`U#|$)
      zsOout+^sscY3>M1ek?9*?dA&y!m7!V;d;`Nj)Ev5?)&Q|uj}tChqCG^7$D4cqsoS~
      zJU#4781N1ZcVUH)DRmqFk3x>U)(y+>o)faE%e$q^glNIulQ9skXizYyq7Ne)Vu%y^
      zQog}R$*|=1(dUYEK8T7b31cO@D$KHQ41eBUjQX?*>z9t+TQ^Qab3Nh7R!Q~<^WkK=
      z3%21GFPARIFo`JzNkZzf<<f8+(*)HGRIIa#gk*^K+m66F6*n=fV1_W!9iYoZ!yM)b
      ziJJ7bY{&RwTb?jm2zlWUrc&vDq4Qn<zM$bY?huC9zii0ky6t#O=x?X<E%r$vqaaPV
      z79w<RpkWb9tXmsy$94_Rur1cD4XKM`Pv5Z(uAho!tSHc#eF*D<y~YRPK4H)Y6Xp?D
      zio2p1!zvyrct{xb-8z689^(mtPWUbQMAtOru+D7UR&pIS<1KAFzAPr8KhT&k6RKFR
      z@XX`Dtq>+dc5PAo$`T@tI%^i*Kd+JBY7MS+hfX{&>|(<WvTGkXRk>;SO`qsF_{)Ck
      zj8nAu%oj}Ix{?pTXwP-P-N9`6?FYr<{vqRQCc^U=R33+Tw#xGef7Q(58MMrI41Wu3
      zMtK}y8{iYhc+`S_72~+dGj0GR+6Z6Szn|BZGN;f^G10`0cNf36wzEy#U5h58OHE|Y
      z@F1IvHu1C*V~V2y73NZ9#63(ya!>AaBh`Yqt1awyT#kZgcpgNa!wbCR*a?1KA<ubE
      ZBaQ-IBg(5Aj2giv-tgDYmG#0F=nsQqXLSGo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>+}R5Pc&rEZ!`(47T}5OmJ{Ok_8KdkYGCw$T3(%0%O_Y<3QC~8ep7d*R{Jg
      zA^*fw4!Lno6&Q+C<(NbMKrXqaDj$^uNEOFa-mDZ^U_<$!9ZgTa?tX82`p18td=KCl
      zE}KXRj4Zgz?w3w<NBK9MMbEwA%)61QIR*W#)WX2?rd?mo6^F{fQY0_mlG2-U{kkVZ
      z6NW%q;~mc>`r`b8ti>j_3JfMz_fG7{W$DMx8n&dOSo$&)FhY6@^p;w_Gc+)eCr1Ug
      z#<x^7bW|XhoNuN=jT%$FipK>GXEqPZR$0tMP?wz$=(f=b%R&cwY`ldX0v(xb)kLqr
      zj`f9F*ohtu+hxPVHo{BFmlu|9&&zPuo%bYBrJ&||RX0?6-!vMUoxs?pi(Ich*>>M<
      zT}e4umUV#x4cg8|%1`Q>7|m8Y@h%2U>=(#rLYq<6#(Ov*U`0tkEV3U2_PkX4`L$LV
      zweUU;nK(#Q+7q<7*vKHuV-+R+)WEU<Cw;9Ec~J9f7KU-yL|$NDOZZp2DdA+}2pp<$
      zQ^t)*XQ+$M)?$>RF6Nkx<M@EBMvtltW5o+;cotkX;@(VlBQ886l@IZeiIW2T8&IK#
      zjgK{xP8C&Eq*%PpH)3N{=j&&_sUTEe1%BL?Q4{;b#<(szO_xN2nILv!75Mt_w2d?R
      zaC?i<?A=91p1`Du&jb#&*Rt`OWodIo8)tEjVWQ;P3U}xDHrRCoFTaiEy=c0{Vz#Q&
      z5P2S-w;>B&Q2RpQo!2AvBNA+j{fU%sXh4e9tVe6V`*q6Gt*-QhpeBr5Y;~WOf}2XP
      z6xQTfrJq>;x?y!hD<ohSeU6$5&y6BU;yr6)s5!zg$hX_U-xj2h)=wBnr}YHjh)luY
      z1h9F!ox2J8rMULxh99CU_Xz3Sci4IL5&9mY|J%fUH@{Zm^b<q;j6K|II6>Hpx4BY6
      z3^W72V8AW3E#@Ae>jCzyVrT_&con%7TyNQqmh(Tr%CF+YJ!bvi^OUxp($*CmCuHnv
      zn5p|PjB##0J!$kA_t2dm(7_&~a35WLhVc!y<p&;PYOU50bTR)g=*6#`3BMtS-`Vef
      z;57b38GoUIzi|amaShLKoogM>v4DRN;6=jiM5F#DH!?wqIKf!cxPXgPqRhcDjZ0)&
      YA@dpjGia?aYYMZN<7&}gBdRd|0~W->h5!Hn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-E$LF6#v~cX+FC4W2uEIAT33cG$o>dNU%Z!*w!?y4MfGyo9w0C&UQC$Hi>n7
      z^3^9Fb)50Rhwun9r3fm6U!yQS`=I}e<GH&D&6;+mlgaMh^L5Ypo%1`7{=Ih}zzM8`
      z5nz~J<8}UVy4ujqm2}16*V83l)ywG_`7D%e%P^L>DXz{<EZJ5?*v>|Fm76PKmYbR(
      z>@b21gEB_iAaQ!Jv?j_<7`+T*uCye$Sxx(Wb9&Vgrmz`$omIU$@jOE^x7R!}<aJIr
      zb!VDkD!zBOM3EtwwKNe0!xIX^h{Vu?0R>SEGW5iy!9Y$oMZUIP6805dG6aK~v&!5k
      za$A?@mM|#OW;nm++jj<!O6jloP-Qskm6YBIw@Y<lI+;W<h68vij8TTeyJGCxDtH<P
      zsj3y>v^$XJ>r~ZnJmKc<HLc*-)cs5ZhZ!PuT{J3|?Zj{d<6(^X+Ur>=IEo2sgZQY%
      z4Z`8cR?Zz0kV#yN;aSAPc#a{y*WM~fV1z)aRW$C1Vk?sfCK;l()tD7r6Sj;yrQo=<
      z9Plic+qwv7mXxw()Yi>y>lYNfD6Lh`I@_U+;1t8?s%7h+Sf;}bZ{laTy<{1Bc_V_C
      z81~m`>~)%g|0!i6FDp1JLm%`)Keo82SBXp;?I`CMhPtB2Hcl&e73UfHs6~s0R^&#l
      zt34j4GGWXxjC4Xd|M<EXF5seqOSnuOq)-bq=LS)*)#f(8XRMm332j*t*fq&SsfJkv
      zbC{PIR!bhaw+TA#8*w2AFzvU=^dX0Q7z+%CI+N?VOTi+RX!LBcZq<c92*WWym3O?!
      zoBU-3g*Ie)(QqM?Ib2mxlot$fP4h>O;4OxIJ2Y8Ve@($VZuP6()idhF5sxUl^N|pj
      zB=(4<cGHR>WEona#Bjg|=63gJ4}?t7kS4K$RkO?DvMzVeNY@fRE)k{)pEGHFW({7g
      z3dz4VxxKPms~Kao=z8cM0vjBZ`;OLrfX-3G=-Ef7lXMQyJC>Zh4JCO8{kL43A$s<b
      z4e%{gdMfUB4Er!lC%O<LUIg|9`G-jM&*T>NFQn8%TX^P6^d~o=kmOhszoyirPnK%p
      zW=c)_WG9;VI;EZ@*;g2lk<`;Z{h1~{O{p1Ic82t?Jivwg)E2Vxo=v=V7q16E@;69+
      zHaHsW)LaRmiRqO3rt5vG+xzWZy-7pf+mIBgaA1=PzKwotVH9^Tj_)vqyEu(|#KG?|
      zj~{3Ze+0*Utl<G{{DjZ&Gd{;J_y)h>27bp){6U(B^m~NA@uv&%EH#K=Y(Xr)-o<+a
      xatMFneSAPL+jP%|6t{<B4WmR~L5h@Y$sS^;B@3WTkpj>l=q+2#Xw0vJ{Rg<|Fq{AY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yg5xe6g{^TLQ915uuw#Kh}srPQ1L|(v=y{YMP|@`Ps<8nVp5Y(bjIgj@SivX
      zb;b|=0DqL@-L%lgIu4V`CcC-!+_UH0&9C1-ege3Tf`SlXd0(&TZ#DPOuy(boslU?7
      zx@%OloE*0+j%}J-x+Pu~W=q?-{GM*@ilX6q!V->xFd-)MHIvu1=jDA-@f7qBrrJ?O
      zO<0~5%q8@Adxkr^NJtmkga1b%%ULUiWq7NEO!Dk$sS+Waw|7JYgmWqs^hVKz0TmI%
      z2wh1TFi<osv3c;iESwj5*%XAKqFvF=lI|FC-dqez+Ju!eSMSt~x1qY8?umvZJA|3w
      zX4(Z?m*Qnpr3l6_t{_23o>eXt7cfDHy1t85c9D<>@P67dI2*+!OevTojJ6kO3sEtR
      z8N$e}@Jhn*3>K%6pVJ+}crx`bZ2sm$&#JhBtAsw8ZHU9F?RZS*@1&DYoRdUaL5grb
      zK<6Yt#T@3@wI<w_?HZn8TkKjBQqvDTZOb-Ty(kv2s6Zpc16Zf*RXz?k2)z<aHxF1R
      z?ukMKOSrAz7NK9JwE$Jz!CeBq<GUb<F0065h1s}`&9&GJH=J$dvXz8x-(kXJK(S8S
      znMchn6UG8@O-rP*gix)@js?G;Xe1l0##*=N#QeZEHryWD_JLCo8-{H8c*n6{kXvV*
      zg2g93Z|bfqxcvt^eg@nd%$DzNP%I{o82@BKJdYsCV;|3!cpl<sG(C3=HT@m^-~5<C
      z9(y<jc!MDxRsTJTVT|yM8vyYp!dK4k=C%3s5!54$)^YLK>FedqOdZ#j!-?>G9hqa?
      z%p}5f+-ubs=PJN^=JJ6NKVkx(xF<hzBYpAfE;X>5b-4=eW7V%bjWs;r+Ht-fBFFoj
      ZKn!_2LYP<A88w6rJm#m|EBl2fpg$gQXL0}l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-AWr#5dJ2KS+iX=wVJkSjfxjBQn!M4iin{_A*f&*uTM6o=E!<hc8`D0&=+VQ
      zqflG$!Uyo7igPxRCRijFJ7;H@@0*!#=Kk;P9e`CVILHt-PsD||@{>!YkNvYyeD#|m
      zQGvg0?O_l{VR#_4{Ia{)Q1bFDicPI8^s(F#x)sXUL5@(g9Dc}Qf4_Mm1LGi1nCoSh
      z7g8I)1FfsXNG)SR-n3P+_<>NZ_a;Br#yX=mlvZYw@V+uQY^g!W)uNUxfH300!LW-g
      z#yk{IBxEZ#VXUsS+&e#Q%J{QrhLSK|j{*@kM69ge4d!gygsp+A|6e;E#Y>DZvLj22
      zu+TqHuV^2wfa^;Q7jH1-;4PstsAL|d?TAy!weH#IkuvSal@f;1T7+`nOivpixQEes
      z9LP_~%2RrBCM&ip9&A_hhHIfn63J3cK33{G9?bJDviuE!ibcB;KFkdJ1-NWqu(!s3
      zhF`b3d;_og2ctjJoR@6#oCAErI9o6Mckv1n>~TSqx(r+VT8823FL=N4`XAm+<KMaN
      fkCda-$?I}30yB7*qGuVOK^b%W+RliVz`Z{JJFeOa
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+iuf95IvKGxG^RP1wsq74Q(j7(7IgSf{<vqs8YCyLU`WTOXJG1Bil*%Eu>N;
      z9{2!03Yc}$RH`XN)~>yynKNh3&iLoA?>_+C$3qP%!tS9MiO*&@cDw^~;EGRXSA>pb
      z?y7y?3VhdnD?IsOuhMbkc;E+7%l9JTcrs`^VI=vjAwwuC9Mcty@}_$ztw=+bP>!u)
      z9GP+?y~s?&60%Xx2`f8<dV5|fO^$l(cuw?$uvMKutkxl9TD~oFAY3w_VL?Y41p_%0
      z3F)eGD73k@*Ta5S2Jc1Jm4wB%Zwa>}0!N*v#*Cs(cs6(T^Y!C$@|NEp_#R92)V8Hf
      zSf7+-{zbayO37xeqhkp-G%OQV&Qm#dHE<KR2nz=?YV{nK!AsRzOglzzon&t2u!^#V
      zH9~dXn=o)2>#R`UABOT{PfGWsDF_><IVP9?D&f@BQNgB$I}9<aVMfTnT~rCzgl#87
      z37ZLtl3pwmf%p#B&XSpR;zUkv;Mo<tlYM_AZN+WNz_#MB6vVb<0)oEp4+BfSa8#?5
      z5@WNi>LM6>9#2Zk6=5j3ZI;g+CX~51)4VQ#ibd6;JgjM6Ip}P?$X}0;;s?;{jju53
      z-;n>prxY&po@F24Hx_v};%^;SaFtIiBuZ0+ms5m7;~3ZLM=*}Ca*T~r7+ocxEb^qq
      tP^CCwVG0ElP(z);2#x=M-a8ALXVAhwK~pf9Zwfp7lj17lG^=<3`~koEI7k2h
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(LS#x@=clxriW$%7SgVEO<9HCO|N$0W?8)@NK&tV9ByecDEpp{tSPC
      z&pwEW4~AzG6ED%9V?4WCum~hPbY{MpZ_b?aop1Z)&!^7-rtv6?l)&hwxnsUIf?eBP
      zH?|#f&8V4yZ5gxCxa`<<>917v=`1n={jIq(wIK9OE1a=H+j9ll!woyor--=Fnsyds
      zg*P7Ct{pxRs1(n4CC)M&lT4RGpM)!=Re{W$SC<_S$Z2RpyNWa}XvpHCKu-dE;!1wO
      zcI8rIt0w)IX3dcToeQ32I;*B{M{#pA6G;*{A3J@Tl5)D~dhXtq*9cgN&Xa@%@~jyP
      z_Coq=p1&pQ0z*xf=5A=n9qEQfQq%cpO^GV5pg)VgrUAyOc^a-_K%iq?hRa^Vx2UPR
      zSZX2gytXN=u#&|!fv#4Eo+U1;7{qlAH*iy+jVLQsfx#xivHm!03PR}udMngfW=Ghg
      z8g8M;5)r%V?npn3w5N-uS1N{4)-Z-~0WGk6&v9n=R@fT!wpfiUZi~wzFp%guwE$5=
      z1#!R9_c-s6byFY{QVm-`P3rU1j(tDY=aZ2blBl|_^yeHi2qgW_&%2i61?;y)8E$xW
      z4G-{;+m<iQP$ph2n%e?>|CQ_LsDdf>XPTd#C={Y5<toKr77F(}xSC@eo#)D9AE1`U
      zKSFySC*?V+aWc!Gd_{rr<v7ma5;__261vdMJqqVp0{Dh;hG!#V`{+Hu;Nti`h7K^i
      z#ChZ`aucb2l-@y^$Z-DmRDZ-x`36P#j)L+7y~<AvDZijAzvHLN3Fy(&BbdM>pH%3u
      jL6s?H_3+Q7oodp!O#&(0!ClTOvjk_5^gWIlx_<vJH^Cty
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(LS#x@=clxriW$%7SgVEaE*iCO|N$0W?8)@NK&tV9ByecDEpp{tSPC
      z&pwEW4~A!df{B;t|1h52Em#B+9y&AM%r|Gw`Odff^5@fM0Jrfdi<H3VrnzIjHiBK-
      zT{pHJbIqukfo&PH(YWl`b?L8E_311!0{yMIGqoV}O)H$SLfdl%+QSVy(5HyF(3*A@
      zWQ8{#+pZlx5vUZ;cO}j;9Ft6!L!X2zrB#8<oL83}5Xfn0L%WJJE@;T&qCigqeBw%e
      z!FJ_RW2+|pmuAh80-Xz<Wjd>-Z%1)+GZRS?I3GKGnv!z5>3Z(ome&YaiO!RR1@f#J
      z3-&_#Yo5O)>jFbfmga6~$Q|j1MpD!HXibSKuAo1QzNP`jsd*Z%VnCo{U53kE!?&oZ
      zyI5)=@VvGut+0~CHG!^Hhn^)as~E&}4L5L8pp7UiRe`}K!m<81Yzji@0(vXdS!PGr
      zqZ)3Z$Py8|>h4HCjI^hVrB^D3QPwbqaRDu`e9v)a_g2^%^tM=yEN+X-A~2BXIkf;$
      zLj`fa()T#;kabfa6H*OZKuzlN)Q){W*5{Lv7?P;EuJq>|GYBO8&(FJ-;|1)uMHy~*
      zbqx>jklU6o%}^#@Et=Z`egBo~=%|7z_Gg-(ohTHdCgm!{Ult1YJGh!-9G&ONV;`WF
      z$3H@QA1CEGs&O*QpnOGv@#Q$q;SxF-@e;bw%{>a|SpxWmafW9jWBcemz~JKeK86l3
      zyu^9rEpii?eU#oonMiT|_f&txP5A~z`Hq6}1HH;m3@N{$E5GBX%L(Yw(<7L`B%f61
      kutAk6X7%vTrJZWhm?nV~?%*zGm05x_NctYf3|+tf7iQlfe*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|@xy4^0e77#(ODqCzzVNv`{jR_D;Y5+|tJoq-<4zRf0CA(9QM}LOD
      zz-J%C#0SH(f5gO(=r1td-7Q!I5*|7;cjnBQd+xd0FMmFL25<`xlZY`)Z1Elb+VFQR
      zXT#XG`MS~IzGWKo!C1Ggrtns4`fL&jhLLXUT*H?hH|3luE!Sb_m7A8Y&k*BMH|#9R
      zD&2TwIhK6PP%WPCN{BLSPMOxFM+sL;YYd46w<%I!NNeapuZlSOG$e6>VK5>-aV4{4
      zIbx;VY6$NIZ`gt%x8$1KUgMq>#GTDVAc^68+3B++DXnwIb@p0r+oww8PA1Hdp_);_
      zo(pf?^;)9Iknd#4ccmeAgd>fpri;OvB&xWKktBvY1{kN}G+e<bLuy0Fy4&_l(lk&k
      zbtUkuu_a7dP2ws;f44(VBbQZ-;hKi)xWUjvEUPt!u@1wr{y1z3qS6`kZmP4)4!9>Y
      z+(eN|MBFuJM|d*O9xs+&su)LE!z3yUeZJ|rwmrW$Z@cCzGPhU@JnjkW!Y~>MI<*2p
      zNBLpHlJOz#Fzt>)0>s)DgBlg+i4_`utkI_fH4IwKafG*EbKe)#0GUO{v|XPXZdu4p
      zx2fSi9?-Vw2`)us)-vB_82+zbM@Lo6P=m(lyJOjG(51AB(Ju*w_EWT4pg1^BmnT0!
      zEmuB5dmn-_G^!z(%AkBjmf}lcoW@1uD56W~#{lh-a5{?!-%y;Ov%=&)h7K^cT-itd
      z0OKn(7v3U0728MY9h9jA&HtVn335}uK~cUVtNg%_@)LRG7j)%!_;fiUJ$kx;DNNIo
      n3R!HB${3*r>EET7)WmU{5{O|IcW71##b^d4eV4`r*?#XY?@A&l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g|@xx@;F)3y2_Cl`ZxISXBH<jR_D;YFad@@Zj5YJHX<yOLnIqkNymQ
      zfzLjOi4TTne~*bDQRCg+f<++Vp)+%5&YZdDp1b|>=hJ5Zx9~8D7{lZy-{G$ff7f!>
      zjcuE+8BOk6rm+x=4clr7Z>6fwC6Qnl?Z(bGed%#i&YRM59fn@HVfp$jG1j_aXHiz@
      z#v{wI<YR_P;e1y@lwotqv>`o8xKdnYNG!T7(FcZ<h92~)h@)Ra5*HYTBH|NQ(lyHw
      z%k8bE@LuqyEf}&j*W~sp_pBi9Y$gIp4Cl*EpCd^rojb0xx8=5dszml=!VGDu85Qig
      z@YY;!OSBkroh<pTG{lZ@q!HD0DOi(46_+uZ#7M^g<5Zl6D;Q(wTNkq7wmp+H4Hk-B
      z2|R0V3R6~+xXLil?a<T6WfkMNrr|nnF!T`1N|j-}!*HxW4x56gbOybf>MXMZ?nw<d
      zQJ@kLch%Vuo(#0d3&oczCQ#B)#uP)pZ+fn6FYGPYuK9}0EmQ-Kd&0Ufj75S@tw7LG
      ze%P>Ne26<tyQ7c*v9`saMg@9eg~lIi^qD{ngI0AM;Vs(S_XRaTddV?u*QbW73%TL8
      zG~CAn+BQAGrHIU`^KFKa|LS#gRKYAYXq>(~mdONNN~;+Cl2B;Bk5-Em2j{6$`2*C_
      z)JJIVLr|JVH3U-`l&{E8d?}1mxQHx8bO{3(q&*T&XA$8WiW78}FYjac0OR$kedG=>
      zu}pLREmG5oeH7n8nU2x?@2SxsH{}}?<vTLU4-6|mkyCy_SAK_2mm<=mr}LP`3_Yok
      m#RjR25o(D3U3y7P9JeWf817(>W|dHkW>C_1X-tsq_x=JNc_M`X
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TT|0O6#ljs+N6;pAWEfzv_cD&)C=C~I0GG=sYBJ7Di6MG(*?q$2`1ZuKgD0*
      zvk&5o5020ND95u&sda!E9<n)S&+R+sJIU`qKYjwZhgu3ThNT1E=f`GnWV?Ijp~H90
      zHV<se+*D`Fu{*+l-zcu9kYLD-`fjuX>2phNSkm@fhB3Ks2gNF7+#YqiC}oWzp4+Z1
      zUog~4mkSBKOotQFmh=g5t-QmKsCylufgxici7_2<TrrTsIK#Cl@tKh9w(W}7y>46h
      z?|9o043pcQ#ho4Q+e#l?CR9rdmqS-vr<O8B?t1R0uGb4_5|d{EGh}IIG_beA-}U^i
      z=rGI=Q1T;bioS5A8O?M{$<(5b8_1<FJ0QS3*U!LB%rR(tLbkk~Z&6RvrSb@XH|+yq
      zNh19g!_+84uOgOp<gsAjHWsN3%F=NA!j}qPyj1?6tVIKNu*9H~waJg|Zm$~}8_HNR
      zP{s;FIuLS)J3XqOC^Z!LJSqn64g-nvFfbXm$}ksUJhv&eBtf`?#AWDrx~T)u<e*3G
      zzO+Lc|6AKN)h2_{a9!co9UcUN=*(`pmg5DqK20I_y-o^`8H%G5xoBq%JjF9gVEKYe
      z5s}p7hYYiWNuQz{nrf)hV#euvV-pi<J4uSslR}#AHInM2D|=>T^&9k+%6AxFL#HgA
      zdg#oM)EFj6p9%F0u40lj3c?ho>5isDwkYApLBhi739kP_zF9fJ{AY|;=v_F$@)u;3
      zNY>?lg=PpFv;@*x5?O5wIW3JvO$&=Ig!l@>q6MtMq+)5>xGMce6#n}JCWZ%iNN=5N
      POrax?>vSgY2v7b33yu|~
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-A~g{6#re=*xD5~#z2`M$R=!K()l$%W=wFwWQM5;%7brr-33az7TY_(KgGYm
      zXCK7G2jjDUl=0kl;0%!P(A#tF`TCvnJMHg3KYjwZi$($?49olckRO}Dk?ro92M*sc
      zJ3O#0^MyLM9J?$0_pM?*ffz%6*mu1XNS|AB-IBKFGK|SRJ1EvD<L0p2WhomJ@yvE@
      z`JACqx>`u+WjdUYZb_d2H_F=#v8LA*8W>Ur;uzC0ig5!8OfXDGiO+?kH*HtE?)N&v
      zf5$tHV90KI7I(I}Z!3Lp8B;AWTn$~ZPA#R1-1Xc~J+B|oB(moLGo)!|G_beA-|_sO
      z=rSw}Q1T;bibLT_Gn(m!lBq=<*O5<Pc0ho6p`U>pm}Ag(h1~M`zC}IdO64H{Z#w(J
      zl0^DVhN)qOUPUbHn8%`lTUeqtC`-#d6uwmWMoZ-n%33sV8_NtjS=&Tiuip!eEoCej
      zD5JuV420a~PM_+>N-YI`9#sQ(&I0*y6c`U%WtfXFUf7gck|5kc;xhC*-P8eSa?qo8
      zU)mv!|E=wsYLmfexvub=4i5rBbf!04%kctQpSF;DUN?b948`GzT(+|Yp5Q4ZuzbO#
      zh)8Pl1BThbq)*YEnHs3kVvf@H#xfbTog|IWlR%R0HIka7D|@Q4`VD%e`W?pC&?!x)
      z9y&9`wQ*!fp9%F8CXpqLf-r>~-O+T&7A5>RNLW}s!L?tQZ&y#S@EH?TdKXTx@&zd+
      zl6B=@p&7ykErX;siL{nQUdv%gn+}UEhWH9+MGIJiNyU=1aW(pnDE#*b%n0t|0ljsy
      PF@=smKBO~-Iv)Q8F76fY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TT2^36#h<<&1y_Fwe?bK>n(^za4X_dN~skKDWMdidGKv^GwRgMZkb)Rf2$87
      z_}~xl2MNB2XJ!pGLco_Z=klG~cjo5)>KecXmR#fro4>`G`0FL-DmwE1gyPWiMWO=l
      zn~|+hb)?>JRJVgv#ZfEJaTrSNqCl8=nz-#JsTM(+;Rwa_SS8g@gyrT_*r57#&iJe%
      zm3|?7U3pnbAL>UoX}xi<+9nis;*J~!VWbQP#S-#(RfdaELVm>n#+oXUKTo^9)O*4Y
      zC1Jc72O?|>t&IKXESN0_TYaqt?eL5vvr=N|BTV!a=*`N*bd)AggW&jK9GtLzz{4?*
      zO!hCS4`bbx9l~5ji6_oePoBvr^)jA!jb1kkIo3^>wVeh438hwisss65*_HcFyl(D9
      zC^w==>YY#|iA-E95UMXZAYn8csrN;&!1U+&pHZb^ZopcOJuZe=4ztx}+u^rVTf1O!
      ziSj>-88bePf$reYEh=o+P_W+D80Xi--{7smur`57+oyynOf!z~4l|EEwisbh^uKhG
      hL&)WA*~u)3URlC>%yK-34>s{5=4=Z-3+Ay1dH@i{$)x}Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-A)rx5dNmru3ZmMiWL9(E7+EVRl;437d9F(4PF4fKiwYaA?qpGJw+dcCqQ4o
      z1Tpc#2k@bcbGA+F#+dYCXLfdHzWL^x`Stt9PXN!c?IB0lJ(CymQ;>Yr<}^5u<Vnz#
      zi4KET&K^d(r{d%NYO62Jsd_6-FH*6GJfY<3f`~r{@4IIzv>pnC)k!pUp^ObirEQ&9
      zWmHTk*uGAx&j?%X$>jgFZgRy7ZM1z!sMn?|sdotZ)}W_~Aj}GQxb0&G^8!Vb2s1U8
      zFyGcj9SlEoReU77ks_4agHT2t8EY4hKjs}>!roM!vpO+#kyvTfNP-?=Jv+dpK(C!x
      z&3ebjJv{JmpHQ7f9)X8$qzV%chY|NW>hnl$5UU5K$Y75Jo?wMlOwwf%mNKKf8|}F1
      zV+|V~)(MM~eaF8As;-R}t8=N1B@pYik^%a67=nK|7{;M`qf>b^C$;0cut58Uuc8&n
      zBvCB$Z069I5^sy2TcA?Ot&tBm$8ixp+dCZXahzlCH@3e)G`?f*Ynrpbw!k^SCCY3?
      z`tD;9cR6AaP#Gf}uy+XM#x=wZmYuuCqZ_RLMVez4z!fw2j0Jp25i6srF(TJv6I&_P
      RQ_jtyhB|x4lXwda&>v72+^_%u
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4ZEw>+41U~}hK8_Zg^hR0wz9QDA|QeIP=o{(FGJNnu&v*($qjBwFV!X8fFFf~
      zG=>-wKY$;F@TFle0aCx%XP^Dpe(di*j=ll7i?)Lj;r_1J6K{ibU+LGuC>A@xK%^=R
      zo>;jVt4Nyd^=3C2juI_(_Cn|=mc~Ja(6Fh2*v|sF$6vv5(BnvqGHD3a?2SsBcL*!J
      zY07js<Dt?jdqilrrb}t}36*XV$r=b}Je)$+MHy#3IG7=nTQ*>}r?lJ{4+qk0i9sw0
      z^<EN+xG#*dcHykpb_oxrs{9ux+`S+E;^~!4)q5EcmL_xji>9ZRwNAV5VgVN&Tp%>3
      zVadZKJJ}rfAC6;@$>%Z|%FMj0G0qhaS8<JbO!L(d=1&asa<b8miv|`Q+#sC$vt;q@
      zVaZl-j2sE2GXgPVjU4Fza}eCkWNbqDOyvZhIH23M3c*{~TAFSw(o{0h{_({WXN5&x
      zVwta#eBW-8UnTZ9IL)%g);+dMtlhO+pICf`_c4!|Wm)AI-~)V?UjBA5hdNt4CC(QJ
      z8>}rteeD45A?B?*z~w_+|BW=0_wa@59x=k#9C2ZiRUmRcmeI_yZZcX4D_CXivWIvL
      GEznOo@!F99
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C!EVz)5PjpOF?JRjS}4$#0&OTskT4b8f;bRSD6-(tHusIQg{_QTd7YNuLMk9}
      z;KqduoZ(*(vztgX2%#X$vmWovo44=nm!BU$0oX*#hey~vkVo=OWR7+AGCEA<e$<yn
      zC($DtcTzo2#ol&fD^G^zsmuncDtuH3b=wxDlAB)i4^&e6s1jD(UwK?c>PTf}<l16w
      zN|mXCP%U3+)3{66h^Lv_;f@D7)8#`#t2tdut4FAG^MMLLI4j`eOo$oG2?VGUW}3EO
      zF4mcPK78F*#jfn9iZCDNiA;O4&^90ctXR5)ds9uGkcgSr_N`=3Bu^R;R!8)sKcsnV
      zRqC{Q0WM?7#}z_j8es&MvBKgQXAj}x1jA<|*E%6qaoxu?!oq3L@wUJXD~MmHL*`f#
      zh-FxIK!0aR2;7n4+;DZclMjnTZE2_8#AUf-rxC<<#-?{uX^dhO#px@=v)K!NXF>J4
      zHHmMe%>#rSYn<JO#}5#;Z@+_Rf55r7oOw9UvC1{TXUuaH?mNT+E^x+LU~!Dl<<%n8
      z+9wbvxbz-Ze?x?B>no4@=3o{_rDGUw!Wz~YfF1cC!0!zB<DY;YZZani8@R=*JuR{M
      GP0%maz11ZE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXPge6#ja1naO4h$#97`0)YV8Wnlmjg$*JJ5E3>CvdgM??VV|p39~cn%xsib
      ze}($ulV$0fRj?F3SUmGHeD|)UWhr{PXA&|dROMlMPIsR^m+yS%Jb3ucw*ZbqXvi^~
      zS>`MJLo52g^%t#{$KSIWJaTPoQm$3cbwqf5X6$Mhv_u%+np)!iqPWa`#}lE3ZiYem
      z-ty?!T4*c_JJ!(4Fse=)g8Pw`eOqy(Sok7j=#7`$XzUon!OB)*DAS7x*LUNW7z*QC
      zds3(~bWa72=mWzO1~lk-bYYu;J`6H+jZ1}X71tN@?Pf!SHQw+9gINh|?$vqd%6)p+
      zEyHD)*plbX0izTKS{Wo6_9v-Wn_+cvMfh>KP|xE@Jgwm=hLOkOs&oxJgJ&tDMG>!}
      zKF^z!(T?$giaRM(H4drTWgR07{XyuG7aqHTpT}P8(=eK;YNBjlKgOs6;{7)F2!@?$
      z*y{>kF5J*@kU@9-72=9;bc{3PJ>C$W!ca$%EI0Xb5Y}A#X0^p_3PVRpp1S`3PLI;t
      z7I*zv>P9+<DCs`r_DvlpD0X#Ukq)9fPU4h?=NZPf!X^VRNCpg1o$a>AV=*m)rijB^
      zePrjffisYNixmGU+f31CleQ@5aTez^5FfX%cbQ%rcv*VTLZPD6G0D)=BrbZgoEHpS
      z#3f3BO10oQb?&t{lqu<_vWCkHyVrY|4BEaUoNKZd=cGj$^sIp^s1U<!)uWI4Y+ojL
      zAvt9weY~nu?#DFd4J_a)Q6&`3U`1p#7!G7xZc{Uosb_J`KovFO0i~v*qj8YZZ*|UW
      zNI*qUH}I;AV2C?T*1at5>jrK}KzFT`thPi=D_d1^mw^$0dlQyFzL{tq$PSb}u3Aa)
      zH|+-sIq;k`<UJYGHU>;=tOo7S7MEN#GBWe>sI<*s%=k3vraT@+LiWsRPbSHwQxu~#
      zo4V-h0UI2YBZ{VTj`n@X)7nqFleEv#KVLk22S)KO2EJB0L$vmi4)7gJS`8)Vu^l^T
      zM-H(ovA|Bz`))e>>Tn0cb0u?k2YWunWXU|BgwrMSkP?oS%z_dQl}u74osp7xL<u`f
      zrlka<WF9Bs6ATw`!|32S`MZr5JDB(aSEK{;yt+R}^3;7y&mT!NX6|7whc)e2)=sY{
      zryabub~*7V!&#Nv_k_<67{HGh#!ob-entVm-~@g}8NcBIe#adCKn;I_<1aMvH`@3I
      zAK@WB#=rQCK>Cv9l%-;VM2Zq&f;aFc;naiA@fO}Dq}qh|J9w9>k|S%f8V%U=m-S$D
      H=YahObSU~0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6*-{fx5IvpMgdv1oOv0i8lAw(2LI7peSSdFk4?I{kNd_4hGStif`pTQ1pg-U<
      zRe)7K_yK;DW#5@#0tHp6sobUe_US&i&&{8|zkUN4!+H=N!o;3(tbCTO6Rq+|KGc;R
      zxu{rLNnRG?hOU)Wb1RqJD4B+?=QYb#E2<fUj}R4svaWF0+v1*DvV#Z^5{^|lv1RpG
      zt=RHX$<~a@RUjc$)=WOjHUi}c{-SP__IbTc2-v%tm3&GV$~RI}mLul1ie@ho(y7Km
      z(glKV#VD&G5LzWPK?=i*b_vbsAb3;hg79=n2;!bt-IowTn9!2fD(ah~gQ99~Dn(r-
      zwB?PGq8AiX6Z@*sCnyl68mi{TtumjH25IEB1raabC0C|6*ZEF0cMS7DEfe}&6!~Ts
      z)<j3Lg5g6XgLp(pHgeAr1~EivwoRq9U+d&#V;nc@qq1S7kO?A97;hwX@>;Zn5j-YH
      z)~<1+mt9G6J5#yzwxBdBK?bX*$#TTHsU4_%J?+=Zbc|fZI3|ObU<uS$;W#Bs2_^U}
      z+c*p}>WqYEm}UAd>hhOmSFj>&K^(|Rm=_16s{>msNftCqB<|$CqYolNwO4D;A<A2q
      zR9zCM(cul_$SkSrnxngGFLP87V5nS$-{p#~SeDBAi?}#f&B6dH*~>pakEcS~{0DF<
      zgbhTa;t}xP&;Djacx>U_Yk2qrIx-^{h-QAGE#tdDXU2Ph?lZP~(8FUJd;lfjryhhT
      zh6u&+fb9~aa4ceo^DJ-^Rossp$uae~ae<q-1vkyOgN!@OxG4v>pX;yTid8Rjaq4u~
      z2#$T|ujcy79^qTaoFjUU0iHT9G5j47*YM;LV`seV{)SdzasAUjT)(@UtC8*Hivvxf
      zm8KD+8N_Lh-%u7~w19b9bPDWp6IO|HYW^0v9Kv(VR?AwfmKDgvn0XC9EMn;;lYUi)
      t75I-8a2hADUSR1qth&aySnnC@!yQ<n`NSEQ`GP!H!79(fLM-Vu&_7k7SYQAE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)-?{5@k5XZmM9vr<sZK0(gQ1Ay8ddH80T2L%SpcFkU&>u&o71ZtB_PVg$J$Lt7
      zeux;wmnOa~n1}>JjKyd|PvZ+;Xe0)WMqe9^k@#mAXLh&SD}hLwcAsZvo_S_IGtczS
      zzh8d?U_0K5ql(aeN}JTqq}?gQDx{01HkKaMTqBp>FMkJ3Bd<HhGObxh%bo5uTu--j
      zCyp3ledRfQQn$SHVY}q&8LL?G_T{yrr#pnYT*+}*=c|qrD07c&n6TI$8*_D!7v8wx
      zwr(SA=&f}AprAVW#BRefygh_u+ru464iRGAc3!Ump+TVri3F;#OraKygz7diXy`R8
      z{YYtIRClu4sHqbgd+nTN4rz`d`%oB@a0wj`b@M`k9J-niS_d4hP|)*)bwL7YZOThm
      z(CiVgoynmZtVT;5YY43mgGOO3))AKE#XT36!H<ZG#}ppN6U@!^3rlET5d5K_-kk}w
      zVnZBH5}GP+3)Ko6(MG5-+#XACaP-V=B!Lt*$FYg9N)FvO6NN3<$`vT+9ybG@%19ly
      zDJ;TbIp41E)SSVvsCFpCMb(O@6`ql6oA~UIW|s7fyDxvL<a(T*=$}>Sl%w^mKk68a
      zP4f)fN^sU)3VZMzVcDddJ7_z{`)t<`Er-&U34++CutaWJjc$bl3(SY-%;lbg3eV#O
      zX3H(>#}WA8wjpkmH9pV#=FT-=<Oe`V__aT5PYS!B5&9h6b@ja5a8#jBGL=jQEv=Zf
      zvqtW;E1?Z23`%GXV}_OQHf>jTJyA++k0}h{C9aD%&aFG3=lDe}pASa_npH4$u5Jp$
      z3L|)#v*0`WY{O#P#<t|VwJ&4KlXx|bS6CU9H1ebH8Z`Ehvl+Ev@k?l`=;6SDbVVz2
      z3VA7wT;?N_RK^qv!f~aWb8OQ*P|~w@x5>F=EPvR@K||pbPP5}V))h4u>?878>wK64
      zx~XdnP)Jw`Hj0GWz;)J`kWtjMpw)dLC+NV7gJWM-+33Dfp(G<A=6ZHff|*h{BZ9c2
      z7dc-hrrdG6WabC`1cEjgVg7l;Vb*?kB?j%1lhY3x{t#I(Qn$*5>?33GMC~>;u0DrR
      zw_wonW93)E!#c)4{6zc}zX$)z-3lySDkF^di`lXkivQN}t^-y410+(LW>KH|5=+0}
      zT@{)_OV9}{=e5|g6`HYvzg!GF5_<TZt>xxo>K5u_vsfkHTX?jL_0u?++Ehkz7HRoz
      zpG8Nc+&PWC(Pr0WtdtG^rpwsPpS}668(1F7I?C7|$V9-tTgvE}k258Ck%J}VqM1rq
      zOOrg2rqE93_z9fHAYDM7F2bg_{ajMah~o`&kyQqVIGaAs<3;9E#Z6cnt_ZzRraSnQ
      zu%h{^1t#b{-|dP(8M&p<E#dH-3);+A2&|bf5g*b=4}`>A8bb!cg^@IbTS3wlIXN;7
      zB^&0_A4;<f{CF8BE@NX$WH)-<XIvjEL%)Hf$gBM2y3m9b<EaY!{4Dm)XS)Xtob5E~
      z=n8}WfI)wV6kWwGx`rOQjsg0ZN5v;F=_bz6XLy%B$NO{(S7;WW(pMGmXCg{7A*G!W
      z{2q)&@Xa}LxXXHhe@P;(zNgI!4<yKKwlmDFT5=2erwk@Gm$S$s`6v_Q<_h)`w^0|a
      z%6L7pnVcum&JP3hEw|oxOyqkea+_Q42X4JP=%OESh<<`jKXdE-g0u81-l5+rdgW3?
      z;ZoEqXK^lkST{Le>6QNI;{R!fHL<H`t|;DhEQ-xk&s0dR1rl}|yztdB8R!o#=$~kz
      yzxaR2-`GNT`PKYWQLO$b%zm8r=f|q3SZzp##j3&^zTXRYlfMa0f_TDS1pNoUL0f46
      
      literal 0
      HcmV?d00001
      
      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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
      NQ$B&_dX77g{tt)7zjXir
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~pIQ6g^7|fe>jeSWpouw9*zORQwM5KnG`VYH<ebgKyh(p<&XbCMoE@@X4=#
      z;f&T99~__kQI2=hc4!rxw$p6)=H7Ge-E;QW@9#eV6!1{N2*b)DKjN=-|JZU4^rp@C
      z^(yx*Q{R%$y{6?j!h5lkE+~jH#AUK>b4uN<9tty1FvgGyqgBBjUw`JgP2mM^igij7
      zCCd*40WgdOb<0n$6JKd4LW4>+EyoHTG32vD*5oP-(V|-u6JR)}LBY6+2x1y05NC*F
      zWkRfEIilQZRE77PS8c(ND7hxLE8Mf>z8j3nh8c3hQKt*k@KkePc!uRp<N9ewvwb9-
      zz{pj`F-N0{niaU7ic6SRaG7D@%p(o!G+e;~jdCD@-hr2SgGQOjb{g(zv=?}!s-a>L
      zOA1m0`gPuESVmg%ziM%t#=X$(xKCmu_fqzCO~VSZ43osUYu75=ZvDg8@r0ou&yehw
      z`AN}jG+l=#mQdF<+~`4-#c>FwLI-(_43g<DJkyXGZeoK(_5`JvVmmxPhK)h1obVb0
      zI`+k-B}Ro5gJCgD`j1=;>Ym&3O!3%~#+e?xBx|yB25m>)nWD{oU(k`pwjI-UeG=lS
      z2<mQ4gMm$kdD9a-5Iy<+zAu@ckf(X4cdZPplhGse8wHEUrQhjhkI-)dDn%#h-#yyP
      zh?-yh3N8N)Q=h|}^D-8`k=1XJpuI*lGCGYJTFDJac2V|;MWQSvW>?#|*v8e5n9F~G
      zM!U>U<Y-x?rH!={^d#W|?+EohX7K?Fw5ISWWJ-3>x=e(NTewYJ5!|7g5!|J|Whacj
      O@{_=QdPd145B>mI<vip7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TW=Fr5dMzsu(q=#j-7;%O9_n=YzJ5fx3&gKZnUOOLUVB&p4d1C*l4|Ld5;tN
      zSNboIa#4%aM^qttduShkO7uVUx$4Y%Nj9w_<ze^SX1;Icn>pv@Ki~fV;4;3}5D_@H
      zVQ!jF4R6bG9vgMrd}OSdo>eub_`g)Q97i@*O4$hwF@XU#Hq0$$$W7@eW6o`Qa&q0Q
      zE7=f8)Ob1LZaD(tfk2zGYP_E*hdGvcvnX&vJ+Zv(C5qtC@sT00%T3F%)NO%6?wCIL
      zia>1IU6%<6bm~YTnM4#_I@*yIi01MY4c!7=|BFyV@3F<Xl0*;s81uBi`D4bGoharj
      zNn|j<j)MXtxssn%NZ-k-vRtQZc}h|l$ez>qK!=7nrBk*XIp3_U$;Ps|W=nx|*{zy(
      z#cWu-4mM+~vq1iMicwSox?jlq4e5Duod{bQh2rw-KFclO$25kVhI0a=VHJ-oq>ela
      z0-D!qE`i=dq1_9bu9(DmT-0zupgWBF{#=Iv>Yjw<%{rVe1xn?7kR*jBbX?)`CM>7g
      zkTnXEb-t$KI&P3|o>V33Bg?dBq-}mf9g-`xO7XFdPuQ`|Q)WXEpxmVYz<<jUN?+il
      zFV>>8rAcZr(Wg4@FiOl*Zk@B3(lL!0()F=a^YW>xn0AxO)tze<#js7fdkbqDva0;7
      z@9Ovrp9{pvevX>g78nd{-`~_gB>%M7j(aF;_(GsBtW?-W#~kJfk#Y~%dxENl$^Gl%
      zP=wq|40R|pf#j0gY*gi4i@Pmz_=&j4_LO6ZUyNznq~4*n>zs9}w(HU3GAGp&cU?yX
      zUkUVE4oPg=tj1JRse>jbpHrcJn|5n;*J(8xE>Ufx^mau_-!`0}8TcvysTALATE*yV
      zhfa1UX|_tI5gN}F#&^(B*h8xD9GTVB#B=nl((=?E`gbt&j7%apL;qfa1v$6jM*@6D
      zknfPfUl^uc1|=w*#fQGl2(kf<P2NnCEo`G>8>71z{}!=lg<V{xouMxA_b#sTY!@FL
      zaP|8MyrMvVLI-|E8oyu=zhVTx`Fy=C%z%&3QN&GR6u7m|e1}%d9B-lDK0r_U`@fR_
      ze}vHD`)Kh14SZ9AJRXt{qYdxpF<Bmefz1ALcKkb(A~;}4`+~nF$={$8Z%Lg$Lu|tV
      jTRXju3%E}#QG7}G5iDYf#x%`XQ=at%<1&pgjA7+pB)*kB
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4$xa(V5PfAE22UojG5Z!4A%P8IST0CJQ2-GM$w`m^-`nE`8jX9<%mDeVNC`+B
      z_<;OH4)7U>s==2aA^Ff<Rj=#S+JB$!?g6Y}&Owf_aIUV@Pd~Xf_SC-!)rsF!i3$82
      zxeqUlwK_iDpWkp$Ae6<~4;8!qXrAjJb<j(g%20Kk`ua-S)ZY$L6WO{+Qq5#SZ+d2u
      z`87hd-d(cwEhc?3)})^a%ZpvJstrP6H)`o32=6^O=yQ=r$wLukLVi&kN_AuP_se!u
      z$49CeYC@$R1uAT)*ofT$3sQ9VC2w%aC6zUPpyQJ$ZtE6d`lWXN^=$TJPFvN6i&2a_
      z80&fs>mDYgm7=jhtlJ!g(34G_FqzHija&rxFuIHb{nbdz1OKmgMfO7Q_GR0<p-K|X
      zy_fcE5Jm}qjBh$Ui&|LavF7>ofXZc=F8`w(pCVjF-?6sIwjge8=?}cxEk69peEJ2;
      zUWEM*6}CO*2s(g4mV_Y;ccOe@DN*`rzv10r<aLY(&i$Ch7=H2V#9#&{F~#gWJ~BUt
      UY0R*!ur|t4G|4G)mhXa~&-m=QlK=n!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXWM^5dPK|WXmFP>?BYUnm`QL4n<r-Z>B(Qw5ASF65NKTD)s@y$dbpBllHIl
      zUoZn<T4ws#hyEHKpqB?2c4Z||V3^5+bZ)!fxBKm$^Y`07{seFVKWRu1&OEj@tzS%k
      z%XS}{UB`N0ZdktEG8g2(+O=I*_3qV6a~e{F2{AUUt-w^9$_>mFukWk*w$%+(kC5%i
      za>?6r33Q*34(yKX7aMVoHQB5Y4h4^FzjU4>*mwNV5X9w*?b^XrLbZHApGuRETJ+i~
      z3&OC0EOZ@7j2OtFKuDG=O%0=jkq;u&Fn(ZhF6$V>QNjF#aQ1+)mF8-drj8;e#Bq`^
      zQ?7?u#q^zT1-9olY(G$32DX<pJ~f~r!|60^SKaD&HdJrT+He%1(C}K8)3kcFtfS48
      z=uD^_Ofim%V1$Ld(^I~$+DtgeC>B>(_ho5;Fs9QeYdAwV6<6`2g)~q>m7w{9<|2&m
      z3+-mqbTu7kaZbZ$gwZ(e&ba{-+&x*_Uv?#34wTDzUuT6b8n`6o&9+smr#c*_=zQ70
      z=lFtk^HosiKC&%mNjcW9+#%)qpcG#j_*xv(eqi+i22`8;pLoA4vGfUtL$U5EM_H_v
      z5M48HT~Jbf;B_U71p|v%BIF;cfK}bJ`JOZ_r_UuDEe{G~Iu_r*+Z&HnD+n{cVc=VQ
      zN64_x3OBGrn2c<9Zfhh|cv{QhCK?*PCmfBd6}K_4f?JHp`A6(yQDx)g;g#ufl+sTE
      zwJ$V+zUuXREp@||jw|keCeDdH_fK73jYY@e{^8aeUUplK=ko)zqJl?W+dvaPa$DIh
      z%j`HiiY)YlV6WNP??|lg7QIf_a|aEF^IYR3zhOz%IgLX+gIoz9pO+iXs}z4Z7;JZ#
      zXX|{L;Bl%t`wT<X=g3!IptzpD_yS|=ygc$8$DZN%6E;a;ivQyb3wBQ9C9;%(&R?Fg
      znC4vpWhk7$$<Ss7rHIC1Z=oqwpJM1KPHkiMH>93aw{d}Yj*rl*ZOqAR8(;2m9Sak9
      z#eu%Y5dJ{{|6&sVVFv$)eB%Smh>y`x!xd&Ee6!1Zomaw~8K7U?L)XLoH!Q&07+Pi*
      zEfb+ZZcLQN&+H>;)4O@hH)j7rad){q`#b6h?6DL?a7rLYNeoj8Q<RReO-F1wekE_?
      e4zncj1LG%f7ppuLcqW?4Y%Chrcue6m?!5y;laxRJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TT2^J5dJ0?*WIorMr+eHskR83D6WD+!BX0W6ohC6HSZ^zqaNAp%I<pkTS8Uv
      zp+BHMs&r<Pmj()XIA><QGv8d#??2DK0Bqxfg&bk^Qr)OKFS#}0xpx()Gq0x-<9pxa
      zKE5(xsN>W9m0b%3LRp->K(XtO-lg_a3sZ!8hN|1t(>FRyy{~?1qOfC<R5O_{m0p-+
      zWt-6GOqOhCk4c|QXwuJwjkSqcjV__kiu&3HVaA1pX$N_fT-YcR@@wKy>X=X;UJrUY
      zK2g0u6Dpm^S3y_BM(hz-kfJ9qd6!ErsjTrM9iK(<K=%nt!`i*^*|cR&dyTGxD&AOl
      zJ@FcLT)dT5?7sG6J>V#WVm5U`Et}JSauJ;4=sNcGcOxy&|GVBz*$ctlmu<HKl_Z*b
      zFSSEIh!Xx72Rglo`q<*J=J^ys<+4nd|51*Q4TsSetbJr#5U08R0Jr&s+560APO$8S
      z*<_=_w#ytr=dr+&@DhuoC|_7gl<DSAxQ}=>7K3JB(QFoDap*US!3@+;XLcU%n4iNE
      TmRVL<tFjbLa*BM<cR|p<2c5SH
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      A{Qv*}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ENo*Ts6#kyq*qOFY(uTB-S=s=$lg4eK4JB!4>^6y0w@H)WmWFNYOzeT_jF}my
      zZ3IF{J#avR1F9fw5?et6K}!;#G(}=NAaUcyjWg%oK)in@P8<{o#ggY=-h1Es-uD0c
      z&y8CE_M;ethj8>6c~-udvM#84DOJ(rnN&fx)M6?vz7rKqwZ~*#Ii}94(~8;Q+>YwX
      zq){!F(^cCx^dNkMmU@&CS3vOPjt@=}C`;IqF?7q8bvrL>RmIB$K=6-ehlVG`fe68i
      z6+_i+i{P1JgW#pwF*L23O3_vgoe;3gs@1WN(4DLI_<y{6*|Ja7RlA>XAig=%Y$DH*
      zWQ=Jg#FTeP*oH_LUfdy}32g*#JdqcYT@tn;Aa?B%8X<|@of5V{B5cd4x^k*|zMz<s
      zazRrF%{ikeYkApJ#d+n@C!!;yH$`xxnsB^c&Ke<PDR$a0xpYisec%P>I^{}xMUYe=
      zMA!LVufwcWYtSfGtw~d!RZPnbg%fa&Ygv)GdW2TjOG>_Ar-n?qQdWx=qld5;sUW%u
      zU7IPKgnigA!l*SOp=}+*k<}LM4dVeE4B|oNQ14<*L&72Sa4VKLCvx%Gl4(@+X$~r$
      za3CGZ8ACHnhB}PiARZ<(38;0!Na({6LIY>kQRe2a3)!_#<ilM3M<g7@0IRaYGwQTm
      zcA6zCL>URkgeb(KVMQ&KZQ*iI!VrepU`Exnaqf8@gLsyIZvI9joIrrkXqc*^+p-vm
      zFiv7Lh*N~E4pU9$F+M5VWeH<A%?{72JT`ttNn}Hqz@tI%M7p}7L=ImGd7NRbbZ#JX
      zf)Lp#9gj&khbeY0xQ!XwrIMJ(hWJ!=O7P?EDRCy&ELUsK!(*v)-16ZGqiPnFK~?ns
      zt_|OpZV>}P%IdmeW;EHd6rP8c4PG7G%~=#LM*wZ`^OsY_Cl4C<9I88q`HrX2k?|}#
      zE6*tqiHJ$&vycBxXl8^K-pQ;laAV2NMQl%gjn-uQB6cPNH^YmFx=ZXDD|m1he_Po(
      zFw5WP*saA+fQ=ofGCd*l@Hd8gu$x!0+ry4M?5G3xuDCnM_d<)-AVn;|3w02*3PHFJ
      z_p_W3M`8t{%Q-WQ_cI4f&~h;@I~Wqng%g(sA&E}c(zAzYbF9>pT)_4Pbp1l9&Xw&F
      z4lLoJPOmq)gns^~mvEd#JLmDDtC5{YpSX_%zCrE?-$lLNQL*^i{hG7!w~Hm_br+u_
      zjq&AGEDF#%Lq{X(YD8;hu6_;8HGF=vzH1;36Tg>zAO4T;8fllZtM5h<tM}b`9pfS)
      zB0>>WU<qf}N_K_o3A}<ZUgh?Cjf?a;zjs&AgEugMH!+NPoW@%?i?{I<-oXssMFsC;
      z4j<qpe2ACv5nF!D7FY2eKEbE>9ADuJEaOZ3glqT>*YP{w{DB4hiADT{Z*dzp@Hf6A
      zA8t}3mZ=%HD2nfCH-4Z5exyVA*(ra&Xm;wUwGi(f#}nKD14!XXryu85cgw50+x&F7
      VQV%m0?ejE`1~@{|e0x!V=U*dF;?e*B
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-ES0C6#w1cnO(ZQh2^7#0;_x}{XmwY6r{CC3&>(y&{h!eqto4Kcj)fSx;tB1
      zc_QI2FwxjIUz8Ug)L<c+keCo2h%Y{9j6@C52Tc@X#1J7t&zU>jZGo6H&FsDRe4q0>
      z=k(gW&n^RK$5a$G0=rLH6V_z1blP#pl7*Z#njEo8PCD7czk`LG;~%kHd!IAmWbERm
      z@a(guys{sKArNQ%WX>Y(!y~8cG*Kf0jRDm<?I*QpzvWtEc2OYWXPwffZ30{S7UH;*
      zG`k$v@w)}un-`|qa#X<R^)hxX1nL!{SQLZA5`|jC1!OY|Ea`Jxd!U>jv5Q02NX`~m
      z*5{?I+)=CO@H-?L9KJx;f+Cn-HA-cfmC5M3^m_S%=i06>(4y1Qr5yB&ghyxKCdp;2
      z2zGL`ky60tAgkpMbp%9OV8z2!Da~AfT(9T)79~u8tPI_1Cn1@f)Z!7Wi{ep%Eeiok
      zVLdho#B%ni-&6K|&lPA0Vwvr+Lz>*l4mK$~#^QBFXDl1aGkvo{Gg<^{OS26quxh@Q
      zN^5q;(1s_X*b;VK#ZN^-VJnhU5~p<7wTHZNI=g?eV7VEMGvR+CMn2mWw&O|iIcEDQ
      zw`BW-^YZ4FY8^E(h<k@Z2X<22UeO`&EZ^ZgMT+e_t*{#e@*=Wx%*puKpv6+Pcm{i-
      zp#EJ_nGJ1G;aRq2aLHJzN1>MqW>AzE_T#xI4hSr+LfvoqS%rg0k?p)SNwUqUR13M^
      zkLMNoG~IEzlmiNfafCofQ=oQnwgMUiN>Q9(pD!v5vQO!Ig&1DKu_&m`md`~##7*I4
      z9A{)~zsD=P88Q(i=j8q<XMa-R70#Zkc+h54+5Bq?ue15ch(|4vzpp)Kn~wNSSooz6
      zl${Dxa^9r56qK%*5?Gq2eULBb^&kxfyw-;|bJf^BCvUqYLW{aaz)?7bG0L-0v`6h?
      z(GI7QjYW~8@v1;oQRJGs3Ld9Zm(gpH<zpDf8@y6zrUEpmeho!C?@ibbjQaeU3pYS8
      z*s(#cTuj>s9Ns{yAG(9La!dj$<<k82=B!f5CJgH5ZDtxm!je7{A|B_BM;ku^gTmvy
      z>*%!$HS`C>TH8K_YQ2cXAJeM_OPR(T`2|dQ8O!LcNQbG*v4T#@3yq<bJ@l4Lt13rW
      zSbiBOuG7p=kyTe>74zw9!fJ9Oum)@CmqMyJLm@_pm1?~JbpeU1Vz0h!yef9K@%00d
      z)Rf0(&^j$@_%VZR{hIic@gAl$Y1ftu=*rN~-b{BwUc$caL_Bf{hq|?7|1_G2`9g;o
      ziYGE=uERJF#d;lv)C`KD!Duke;Y7mB&R|F@Z`8E7nkApdv^H~sZL-%_|IaJg55)to
      zCV7<|Mm3zkt2x|YlGDUoujVlMtdP%RqmCyLzZ<`67*)y2y9&xXv}Yl|#tQij*2-_u
      zBELhsypAsUJqF|t7?MBYq`U!J{)BP)GtS6ga8~|`bMiO5C4a};biONZ;(hrCKBV&#
      z`4_IpTev3w##iz-uFHRLL*Buk@*Zx<e{shUB4*TxIyx5{QZyNcSZ|nO1KpbqC3YG0
      z;-C=^n&cen8T8pEp<5G%sU_NR8x}^WNd}NX8at_(Ch5!2&A?gW>)SZuu!&~k94&f%
      zyF!{;;|6iH+^venO|qip?$G}ZeG?ePm~KSc-+DG8t!*>Nenjo6=OSorV@(isBhh%K
      z^i1$gM=f}zgmw;5oGjJ&ImVA`u=3$?5rzBhZk}Vev0}HeVz&f8w7VmSh>BJPSckTK
      ejtN?8!MKuGFl&NBDF=!ZI87%n0zu1c62^bn)LKsf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+fvg|6kVqYRBBoZv>+E16}6N~z`NW;ZrT|{1{lW6gQV>#1Vh3kDd3yG;XnA|
      zjMNz)`~W}7aqkdHMZn=9=a#eAT6^t%e*OOO6TmQLqKF8LZW=qrp6>0M_PV}p8D+g-
      zcxF+b;&FM~GW|uvmNVv#S(0wwjBBh<JGSpSmL=UNRDmP|=$1j@uL_&8=nFJD<+3Mf
      zA@a2GH%zZ@NMLaOJXE6;IcD0XKOr!mIbUdSTQ_!nUG7NR*IzmnPtNjkw0~7VopwsH
      z2?B8qQCx^YL9>P?Bn6aA|7r}aNJY^m&>5t55{`y6+6if0`mckiJmX!`(11pP=6TbW
      z3ze;cbXSamB?VgNouXl_8m`Iv@K9xE1jf&m+_4gnO@i>d&q!GyYI>`NWtIY^Zw1oZ
      zj%WI&W6wG6kv9TY4tzevxqJ+LY|Kr8+<7V~&_XsXNLi94wt<NS8Z!BOKedP0qwk}D
      zR;0Ev?TX|U3x8871ny|Kie6sn8isJ2`obt}Ry?2O+|_Uo_o<R4iVB-_#i7Dv@<F9-
      zxl8p?X?pX&^a8Rc8m{4bpk`~^l766uiN-XHGf}ckJ?U+*$aQ)#D-H{Ls^Jz3i!D19
      zw<zaKE_v69FKCdRBmBH=OLy8bJWo;!B>sL^q=8CBk2Hc$+)+R>$(>3kO;G7$(u=fP
      zpc{OzH9N2mE&CmbY_5uyeRO;cqC06!@C~IM4N4oDlr*~NtexU03f<_TnOB!_h0avA
      zI>gS=Ea+cE{lX&{tC3HX-T*^8_#0xV>>Hi1syVtH;17_N>^Ept+*qTzqjVf8cZM1&
      z8@n1}PSPAW(tR9bB*5qm{W{Djg3N(hQqoT=&Mk|95bYi97%iQxBKH|d7Mbntsba8-
      z;p5iLA*wt_N_kO7l&)Eq#)FV3jfXX&M<LN7(XbV%1ES`Dh-`U$0?!ihETc_XsWT;2
      z<4FZ2VpB$HX)K0mB<l5#9_f!UxAGowWvxzoqK28MnUtuRG=f9zv!V8Qo#=nSH=!vX
      z>IBDY;PFr}_|b-TED<F8o(jyKVBk}GW3Ntfy$y$TO@)#pm?Xpqo?(h+ei?$^>on9q
      Dc?(Ag
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~7(Mq=s0_oyDy2L`!78)`3MwiVP#zLUiXmVcbvLwEyk?kbrc-e3e{kW>
      zoof>wi6kyHaqT1O*2h}i6Tdqh3K%r$V&=}h^WF2E?|kRpx4SQ20T{w$5S(G;p|NH>
      zN*30owUW%6#{J~7QIOf>q<SyqP3bNemY9}nGAEqqyj?7aS;NYi!U-b4(5|*8jdeFE
      z)`aCIy?}|Fk#|)<4MX=)0rR#iZ7VGcuCRo|pvl6tW2~$Y2L^VJp~ih63(-M_fpjJO
      zQnYhaTGAb780xKTYb?VMn6h)C77UF#YN2VU!f_pS2r*Rks({9{w8X9A>auWd8_T9(
      z2&L_;VP*_Rs=2=yQ1ls66)`v@E>)thDzO(FQ7DKULuaX;zqP)pWKYF1iglZgAdc0d
      z1D!#fV(6<xI~}KSh9R6SIu1el9aq(<UQt`-6mYkWvns64b|gi4|AIJ2wN{cVs=7U8
      zTdrf9<RlGI^eCNs8PXND&6D`wqI4jxBY{4KU`{zqxoxbnwjAb~3Sxj^s-kK$!f_?J
      z<S>$ke)MRh>5z^K%3`6sBl3nLW^6}A`lo?B*8ZO&8R|WsEDBQ?WE7?46&+U*AqQpc
      z)x0TOq2Trm<w2L?QaVQcILnn*(T~$Sz<GO3*-l%si%wR|NM-i6BX5NPB?iIIS#+4E
      zOoRMN=GVQez`rZdMfR+sry3lOl}mx9CUwT>Dyl|+dau*pdYWCL2u`CGPi&$gzKy0A
      zG~+ly?;45$e}j|st>P&P%?Q)T(1M7M@Wjgk%*6wnXpL{6fyQ<<ZlEjhthBU)=v}px
      z*v9!y#GWIpW;^KLTTRlcTH3<kK7mf64*m|+{5|UV2SoTs4De5w;GZ$ezj(yL9{o9=
      z7}3B*DvAyehRYQ1_(eu2L+ev2(<2v4Y~gaeib(Hg43RkCUlHWr5aQp_!hamd5-Dei
      zl(USKvn={qywWxhdwnp`wf!6o)Ee-g(D*Mj^WO*X!)5$%8Go#dKTN`_R<V7kQipaA
      ZK(I0d^C39Ky^Ys#gGSAhrUMfQ`~kT+p`ic(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOK%%h6#lMX(>S+@lhmQjqbU$tI|(r<B`vrKZPG_voF*lY0_8QfC-DS(9LD3M
      zfY?C)0vk3h3mz+^qTnJbv0?=hh=%}yV8I3i3y=^(AXIVAj5D@_t17ZQ_uS+2{LVMW
      zAKiHW0{|l^D)0!zSJXB2Vyw8X8_TiPoVpZCsYN{<o8af%YEHLiRYN<Wujv`h?4L2T
      z`9dk3J)XAof}y}C5aIx_oJ#I9sTD14DF_Jk+FEtpifL<_VZ|JWq+YZ%Lo)>eR#q?e
      z-y<-b+)e>;@;s^=x-~8^64{<>bWy-JS;%Nj5ZEc9U`G&Mv`RD~B;bv(L2FVsw6mpr
      zN;BuxR8A9UPZrW@Zc#OLzE_k!E?;15TNP|Uk9uiUZ5(GcbE#nFwTwWY(^PCLawi$Z
      zcyzG|yV0d!kHFA&aFggpk3ds#bD#pd>uNvajyfL1UhGrQC(v1&qG};=JMN%h%bJxi
      zikd}0bVQ<dIJ<5~X~*f8xC{F!64@rzqE+D$L&^lQQBQDB5s4@U1e)Cn7ZL(a&|9)|
      zAwkK8Fs$HifdjQg-;~e`35ghpf9+J+|ElV)r&hJ~cr+2jK^#(WuRs@PYCI{4`!MQ2
      zG*>8@Y2wkYO^9k<l{mM4MB;utAP~%HOV&imvKW_e{d63)ZGKc@3`GCtf~gZHDmV(N
      zYcGyT9A~(BG*g<soVA)TiIWOW5ZBylo%u+d;xK_!fimWURLC(7LAadZ5PK-Zw0cp`
      zm-1WS2_lKJ3Z?~G?2vXp)2fw~n87TKG_O+w{zxJbrO{5}VTn1;<h2T`oMAy?ku&U|
      z4CnQXm1UzxBpziWzsXf|H4ChMT;d5<`xqN`eoEqLs5Ca>-Ilt@Dw2pUvQ=6l!&aSS
      z)sS``ZB3x3O4-^a<-BTyj9wvkTh*>YZ2=`mY$h7h*wQ7_q(Ru1fT6A1f>F<)oAR*I
      zL%eR>x3b>4NVsVMgBMwl3UU~CO6Tp>)o_mw^WX$z!k}e5Nv#w$dWl==w>$PxP%nM`
      z5TOvSOZwaJ!oyie+f27Zbo0;|92k5Ta^M<TuF}neHhKog2KX55^pv(7L<e@!jo6J&
      zCxT~*A_hn`HLwA>f!oUHop!}L#~ty2s~H^i4VE$D+z-Ej7ab}7D&k?EYxUsJ1|~9m
      zE#q|NHFUbaO!dBpherKx;yRg}W8s||zj;!gulPOI*zaXBxxjwU*JkEmR~n_6cQbQM
      z=iHh&!jZ6#gEjQ)as9Za3vNxL{;)6Xzl`q6?_qx#Pj1S-GE!CiU!wT|pV6E?C$zty
      z_4*YK;~QEK-_ncq9lclIV;MgnOXn(n#B=xwFW_gqf?seMzv2p=Z{asw#h<v2zwjac
      z#wYj(pVIj?Zr~5$#lONY0`yVnY!yKf5iKGnLLx5O#A(rC&;Am2@_Z|^XGy~nPhX5t
      z{w%SjQyhejabiML^kIc0AM$j2h9p1MT<LXJdfS!0bfw=nB_UlYLKxUlLLk=W9L`}s
      j<@6FZfq}tm$X5}oWh}GWgM$5B#j|uW=jmS)COrQEP-$YK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95It)<33W}IhLF-GlokTyMhwqE2$43DrBGEZio_dEya`(wJF=a$d;;(T
      zd;pKUfM}3--~;$5#B3TuK%r7(**iNkd*;lU^^c$5z5{rGY61#F{n#Gbr)GE}yq?*2
      z?XKCjL(wsx$nR0#714q1@m(<#4iEAz9z>#JySstitNUIQ_^!)?1T==)LO_25FvO#m
      zBFx`ss5TeDsnN-Y!V}RWhGt>0qvLGTK8Z{|<X&Vx^#>u}lV+{hV$kZo!<WFYY#@fX
      z4i%RTBydT`D%KK6GHghya}f-raD^~>JbKQc7K)Zcx@sVUb)xKdyCIJln8mQ#6dvCn
      zylV5{nca3dL#pYM#4S4zazAluQXq!Cg?jwYyht@hb+Q*Iz_3Q#_c?dCBk4rK_ZVUY
      z%PJCQc1rJSYN+prLWUZC@JBv|t@BaLm8Mp-bljE--eIULGHepgc8&*Oq?49K16#Pk
      zpda~zpu-zNDz`cJ)>dT^2E+0^9@Jes3^^&8nSYnDL*Od?AS{`bb0<rqhvrWHCE6WO
      zRL0Y#@)`6}x$+f8sWQUK8PcD~uizSeS7eU*4l(r&mese|AYX=JbPk)y(kiVSu9Hub
      zolMXlPpT`qkCbta6(=9m_hXFhacyOap<o;9GETWWWJ$D}xHUm*&|cO|m5E>J3-l54
      zFKA6W|Du1GVVIhtr^XB=`rRqR!)gE7+z5pWQ9sXcp6&ZL=k$cLg3`EyGAgvn@iMw1
      H_n`d(xabvi
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95Ixg4F|`d2fdVas0*cfd!p#FuL6u5Wq)I8O6zKcL+0w0?-DtgO;j?%^
      zNIdWXd=z4AS0zw{V#({7GiQ$HvOj))`wpOkXFe7Pn`h!&d`$8Sr9UK-Oq?V`k*hR$
      zU7UkSrreRx^8G=(<HIAY%+mLUxw9g5d#O`K6B_PR<?S67?a$KwquS-9S4u0lOW56*
      zJF6rnnc$KK&T{45&0~VsGb6bOLKvZrMt~Y_M(}ZquvBSZONskR%eT|<P}+B5m`Osb
      zZ&HyR3#$tM67-732;1`(*zRy+VOwaUKaI^a=aICo*G!0ccs#iyX-|wD%MoGivQTm1
      z5_vAQORC}S7k1fYy@Uy?mEgaLgkWH%HkEHw(bUr4+k8>%hY%fTEp0Coc`muXcweWP
      z$$6fK(w&--kH>`dIae9s37)b>YNc?ps`^k&2+JFPUWcnt7dyPH8ec|gHj9n1wZN~B
      z8;mcq)nmVihg;iU5NtjFis*AmiunvmGNJB;XtIB=^h4Z6i#<-l9o%J%+viv%_>%GB
      p7xY`E!6A6@j09at5bomv$7@(F6Ibw%zX2nh!%qvVe0q3<wO{A5)VTlv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8BH5Ixf_tlh4*7AYU1D6G;C;v%m#B-lWLDTbuV`|b83Yqodm?p@HIWrCXc
      z;1BRe8E3bE1=RFm@6ODfIWy<n`T6Vn4*<`xZX!phzZWOsqZ^<4>YY0b#F5(*vG2Jr
      z)3ZAae0?C4e7omtnlK29<LTSISVzLs+n)AAMVQvde(Y>8XlFd_Kd3D(df_WyZxOa?
      z6IW%4ZXkH%u8w%}R{fA*w8OqEfKaqCg=q_U+_quj4q<kLeWRq*@s)g?40<wpBYJ@(
      zR63z2f<qDcsec|cQeuSWqysveOswb#6{=5zFo{``%FUSxB^HmBJCM;)7!72fuzWtK
      zIMuE^kxIKGad%RiSr#ylMH35zwFxD*aUV;BLVWR-g!wBxUR}O&%fdrEGO<jkj-&s{
      zu<;lx1Ur%+5*h2=&`VgCd@YrKDw~(EG-CR91_Y}cCXpw1{Z#GQ>udHb?aK}Jl#)?9
      z5OFNIL1{;MK^XHx?@N6g_H8uK<ggb>q2)-SeK8~~)UK}H<y8wCycl_2d@7gI?O-d%
      zpNU%>FR;~SKfNzDnqOcw*1y62oF$d`w6bL8Xw0C@el_!pxQhyVT!b0i;}|pIy9+=X
      vWi`%Vonh`P9$W)7s<4c?e*mt+$tHfn@Hsri8viYhP}+~%*7!7d8|uFSeS7q7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95Ivi^HE|3MftKEAxCEL@g^T(aRH-CIDoRnMK;JjcmM(JEk-bUbvyci%
      zJn#X06k^scA#D-L!(L`~=Iop^^YhpD9{`?X%SMi&_JNQ2M?X1}>b*Y<`HA1-i46Rg
      zX73I|sgJl4?+z+EHY|qK>F~W?qGKNDy+F%IF)Zj)nN+q3v@;#{AJir#y^u=kU54H2
      z%voumA95<Wt7EFXSvzL1T2Wu*!BB89j|B&Fxaq>iEr!Jm`&x?EkxIN74SFJe%X^_<
      zD0QNMhsQjY#=dY`h8RO*)&eU#M66KZDpH>Y(I_EFO4n;<@JKvT?nuNZQ9KZRhVn(B
      z{7m~|ER^;$are!gSmv>eRU0b|n=?x6Vh!sI`Q%S88I~{ccs=QI)4>KF*eEkBO{4#f
      zaPbh2h)g1MTaIO4#73^H`&PAWx-g%X&9I&k{x=Z@ryGspK)jMh^u?>w_RM_G;2tO?
      z;#SC$M3Da8z6!!9p?)6<eH!&$)X^Y!5DTtFCe$GxGOScDPvGRKiEWyXIhub~ESe#q
      zTaK2E8|2T^twpwZFVq`f;MBLi!Tp>Dd9*ueFmbfjP$YXPwF|h75?PdlJGe_eVnlBl
      zV4L8~7jFF=&N=RRUvd8mqP2m7Rh~k0Cx|W{qmq{VgfMb=icLBl@-R9<|5j<YXew&I
      E0b&;SEC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g^WG)^1l?svsbWLZx5C#e}yS5^OQS6hczveYzcF%yzcfofiFBCa8%I
      z{s4cJ@y;&R0><=VKJJ}+&)jqF{rT(r4*)N)Z6m`_{lG{3qZeOD_1+r<{LJg}So+>8
      zvv&r8)F)htcZa228y3UrWcYqJ))DvhzOQAd80Pf3j7vKN+MW#i4{C#wUP>kP9>ZQ`
      z>Z~Nt3pkbB(GgYNsGc%d&9Eo3V92?c#hil~+;w4No?$V?zLk=1OC^qn{jP}K@@^m)
      zitW(n!6}cVv9Fw#A;wUjw!qRZ5zCdh3e~56IE+b>;_aFl@+2N9cOs&*FzSmQ!}?XB
      z{6c$TB$W12aSzO$SZ1+|RU0b|<tZh0@epea+4xT{8J4f{cr)&D!@*-bv9ZpuG>QH<
      z!o^c;5Sdu$mK@2Rh>Tom_pM6HbYV6rn_(>_{BI%*PA42jzIZK-=!-X}?Ya4$!97$;
      zM9qN5u^|2P2g(n^nEHJr^m*8GQA3^Fek8aSsZd9Jz_3!eK7r$>26kvZW@!Fdp<srD
      zZW&rO?vOuAw<g)<Jy)xLfm7T52KRFkl&9TEf{CNGi2~V6iJij&ieym|?%_W9h!MS|
      zfGvVEU%0hPIG1=Z{}qpJAX;0<S>*{tcZ}#_6Q!i&XM~Z#7Rq!w<Y9Dz{;kk%(Nt7_
      E18|!6MF0Q*
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yg5xe6g^9Wv1z1;6ajf^g+7n~imxIwK+8;&3PZ6oeqy%i0&&uWNy6)A=^#3O
      z@CW##9PcK`Ll}qYbaU_S-FwbG_a?u7|M&@D8gnYz81kR^K0h>q1KZs;b{)QDG<aZJ
      z#-dznyN(^MaaVjWv$HA`hW?A;3ymQ3xfL#0q3yX0x56De$WBqxm5X8j$y%aIbGB=T
      z^9=L38{dio4TlruTIdt=QohchEO||l1Vc(kJ8o%6;EoOz9SoT`_mwN@726f>_gW3%
      zZ}5gA7`j$Gi#v7h+tNSXRAgZc#hVh$&Qf8iEO$NksO9YiBuUp*&J1Z1kCa;z{+8#r
      zM3Z6olqf$44Y4oW(1^vYNSmrmq8I%t`WVJ<D6x(Q7+^>Se|yQ$d#R4MXI(C77{Z8(
      zVTPWI+0P?%jN%~`vn|51y>B;#FXf86pUCA+NiVD8F~%4M-c>#>t}d*XH_K+-ELYYy
      ztE=_O=IZitt+K(uObs~{ROA^tBwE~@Di3#b6fwb&Xz@da_MB<vDRu~xIt)lDgKN;0
      zoGE9ZJra$;W4W)Fk%rE5n#7z8R~$r!R`d3JODx-R2r~ap|D+_ypqs8M{3VA6fuMOv
      zS6s{S0-C?72zR`uj@O{Zr!8ObP{fU^@?D0$+~qgo?5Kn(n%4xqkF2v(4lP-2^jC44
      z_LF2SkuT3vh2mFeg^6#_KSx1nTD2&cs#c2VB)=!}Q@D#R^5_!op_}%oB07r`9+9um
      z*=XSy+A;2*VDQbr7d&bvzGHm;baU_oPtIX_h#8bgq?9RiD+V&kG)9z}2(l0-JA)jh
      rFUt%;r3mmT#t19}9nZ*0&~KK2+wdGO=&4Z@qbG>$OIj70omYPViH{$I
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6Yg5xu5IvU$V$(<~QUv6w721LXUsWhD1GLOUTVW`6#!q;gULa1IFiCj*EFDD0
      z5B>mul;b8r-s3Qx-t6AHchA|goBaOs^A~_;n3K`Qko(N{`Jv_=nD(}|Yw<0u!9CN^
      zmV&jmYnlEUx5WoNQ;;Ds^j{2LY<RxQ4S&(_O~+>F@OMlvGfhb=7sLLOwMdudOxyGq
      z7#6a(z7+;)7AMLz-zDb7T%AE$cA6p%hJ=cCbSQ}7t_m5Q4CyHMwJXVrX^Z!Jt%h(n
      zc*7D5T@}aRR-L<M;Gb?vL17FNw<VY<P+^G-w;lVa<?MMRN!NAG3`r7?lv@+-mgBZW
      zlVSLjC_nHuu`g_2i^MGlHdPr%FZyNlF^u0*VigZDz!3NT^^&3YQXOy4x?EH+gb^9T
      z3_TaKpGT+|#Um<aTlgh&-)ssukSpqbESu8<dKnc@Fvc+OuKaOnb#cA4S<>rzsl2{f
      zU9FclS65bQ<qZa=E65@*BgfDgpheB8a(_p~1ST0`Eq=(*p4Ign#SURgg@!;%?*?=!
      zs|PdC9*Rcbk=!@SNJHmXO=3=lEe=9MsX2SDAy&*_2+~)le<~ozpz5|Q++~Y<o}hV1
      zmTkjwJet3%@OPZ1idj(OlZGp}FQUd(`7T3W_VOEXc2vYP&1;O_N0v$jLrYd0{bk&t
      z{Ww|6<Ok=8{KPjX`N{84zl1?aT9q)Es+I~!k>3;g3EV>$d2|W)(M@|)5uHT|kI0wk
      zY&3ri<roi6FgQQ(6^}o~eqemzbaU_oPtRd`h#90AB%~s`rCFq<IgCj2A!I&Eb_O|0
      rUzX<tl_0<u7$dMWRJ<fBM!#1C+=c>P(^H`+Mo$pgH?&GLJ2QU)tEnHv
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g`)2yRcntDWZZXYMRJbTzoJ*)R5GsCM3m>RCu3m2N|=SX=bOOKg$PW
      z;)6ecA4R;oOR$PD-DGF)J@?$R_hT-ve*6UR3eSDa5jH=GbMZM!FO>cmjT3Pi4MeKq
      z=xuiP$BA-BLd)ZW=AI9ausTg|4^n4E?AozYMiVOTOr_0T7VS;b{-fIBq&G?{w@=vL
      zm^mvaMv35(`_6LZt<4jH*D*u6075lH8I=Gf+zH|1E@8RQzLiqzDJ|bmMgwU-h(RI=
      zjh=}`aw4qC{A<w58Y67aT3~aJ8>=>jHu}rROi~_6<95x28V`>rcO>npu_HMotX~%@
      zE?gwfrFKy<+-_#)U6ym0uvQ5En@9-yW@2OcPGwCk|GmwZ*?tJ&f!5M?5|O5o`>S<z
      zoS2m7c_`hP8TxoacroKDLp;SZ)`+bXP8L-kiZNkj<In4G6KY|XmsR4+NcDQQF}CLT
      z^)b)*0$UySvv_rD`x}C-o$m<0=A;^*K~5%=y*BFX-_QLj7SUjjldyz)jB)!MD+FIN
      rp8bM;%Tzc7uRA3{Hxh&gc*yY*R`SGEJmPP_2<PzAz#5+(9%KC%FSXS%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U279T6g{`uWbI}(F|}%IwORu93%5Q9g-D@>3V}olv3;LxrtQdPChSgH{aHSU
      z;DbM)KdN|Vx727wvaqxFo_p@u`!SbSKYjvujWr*0gpE()TzrnQ3#Ct^aUxElfyh)G
      zy>n-OoG5!Jv^?rGcYSz-<!So<AhW56?S5>P(S(XUQ(1F|MZ43q|ERV&>8;Yr?h*FZ
      zXU@urQ6jkHzD>FE*2XcxYn!2*2ca6Gj7oqK?uPJjkFZ#1-%6=<m6jhSqk&96ia{a?
      zjjoABax7Bi{A<v2jS;qHEwH)Eja8dM8~tTuCK->Ual2+hjfcmRJCx~(Nk?)>SiLS(
      zT-ZpSOKqcKxChS8yDaB0VWklKH<1wZ%_NQGd*zy1{Ck_P+<pjQM{Ak36Om<-`>P%3
      zI58Q|vnTDD8Txoecsb)LLp;X|)`(LntSqYTi7{bm{m<)g6KY|HmsR4+NcFng7+Z7v
      z`nbdRJX>w{UA(%v^$o%1_IHF|b5f1ZASV;bUI%sdALf1)_t9XFldymXjB)!MD+J##
      r?tVePWhxwk*PD`{8wtWAJmz=_OL^ilp71wdgmd_5V1-W)PqF$7I_}j&
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7CO-sW-5Ph4bjg8UPYW=zi1#PQFuPPo|kp`j&)!w&tTUX+yB&lEj%7X|V`~m(b
      zaW;4=D3OIXJ2N|Pci!yh*ZT*6eXLn97+Sado<F+rgH$7T9Ppvr=dm2PEsfoAAd?HO
      z#FbY|13eKXa=-(hKZTRzj4M78kp+|C<X=3UFp|%qN~V|?3dxO(YkLfJKO^BG6&*<>
      zlVgVMt;|*R9)sBquSF3Ivkvko*vMhdfrWX7o$O4WrYiYTiSx-_UqqL@9|(quACgc#
      z9!c&01Wnx@iIw%4f2dA<+ud*y4aBL`_f@ASwyOnXa6F|%)DCzYi`c>n!)8Wh8P<Ov
      zIyOkR9DO8KE^G1hj+TWP!XkMGlr_jYjpi%tM$>$Q^FqFX5}~bghKIb-L0O-oDvb-M
      Sq-PdWTtbzsoiZ<D73>?lzr|Vr
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CVNVl55Ph?)J$pT*pi~h=ks=gL4->+d8WOF5Bn>gC^rK|kTXgZfYwoVCf6D|k
      z;R8Q_A7z}qHc^Q&XD*qY*_(Ou_RU=VxVQxH9BUQ?Ve3>5<rg;|>EMIg_vMM(m9g%*
      zuZ(T?eVx3OfjT;<?uETU{6+?zuObV1!h)%E<tTC0Pz8ybCcN}yKT#2(kbKl}b(2tQ
      zW$e)4q8B>Q$qwP!dgiKHhmdcEo+^S+a&Q9$8#zoluyBizTQ>>QEgh)C!RM}u-pQ`7
      z2(zuQC;g6$w23E|c|)48owfNNqA>r`i4kdEax;&xG=9W&iFS=zjasLO3hr6BOIXXO
      zkb`;LCs>{yYR`yV&qnn1IKN?I5la>xu)di(PU;*yG)h{L>hsGIf>1*qf7<)+k0TUQ
      zC0b$3>2^CDL_M{qjqY>T7prcl5S)V`P*KyDajbX*&hP7nWgcygmzK(9Ghg;{d}HAz
      z+agC>5c~o5#?x~)-{E}aNMM?6fpZ|*D6{VvA2wz%%O~MB?o1Gxd>Vw(#u@B0%zeYc
      xF9_TG67OM);}oVcPMyGT5gw%!36K8=@RR{R{S#1Ng*gdSv6}KGW?8`#&`*!n=Q02Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-~y!5Ph>rvn1V;@KH)j0U;srDHbF+Q6WCss)(pX&~o=~1~6K@XxAig>tEu4
      zkb3A3=#N4jFF8eul!Isd?0MsvH~#nh=P!T_%=+*MyH~2M?!vsI%|&>VsPiyVxsJnq
      zXHRbuZI6}VUx)KYd>^GMYkf{T=0smy+HcCV63%>-2@RJeOqAsK5nXX?eN+h3#i{Dp
      zklSo*xEEWUnx@Vz8_oz7d#UsJb;43}z$&(d^hq0ScL=MC1GARS2<3yc#Z?gA1n@Cb
      zLkaZ&RWt~tMHf(SYQx`euOrTWswiQ?Xfusfa;7rvaQCq6iYDw2`gmXAq?fuX6glSX
      zJk74TMVNhQD(n^QixY6$mFaPt@UeKkPZXhcn%-tHf7Pywx4olWb7B*MLnBi-NK~G4
      z?qiy;FyIsjll^`J=0xF=tXH5$!wD^a%@bTjP3&tyn}R*@wdIvZ1j|ntekfu_#8xB*
      zUK^vb58Pf@V;C1NePE)SVN0;fK)uA@1##l#vP*Q-cbF9G;eA2;fGP2=91#*Tp#O;3
      B$$9_)
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%}(1u5Xb-Hgt!SV2_J<51%!meN2?m7_5uj0AP}e#An|cu+XE~zYh;@M&%l`n
      z;eaY}=mYej5VIzy6r>zHv$LN6&dhK3-}BR7085y1;SiS3RZHFY*|j#O{$;FA{6J+o
      z^w+IDxQunauM8jU%>3rtAW><wX`*dqqL@<`WkSR1{aA^5FF5BgcTpis6uas=_qoL;
      z_kV@CPE1p0IU7z1mHbR+GmC`zW|#F>M6{}n&esUv=DJqR9}~(ONyJqUK6-HRp@tIb
      z9;#>%N^>@$-qeP7uPy>k4^<E|VW63WDn3@JwsCv2Y?~&mc3b=nWHLov6)g5SJxS6F
      zjtEn)<M^GpHZ8gp+n~cO!k41%J6VL<L2{LbyrpgbpE|GayTwfKc8u`fh*g$x=3;^{
      z+a-Tt^8X9Kv`{U{*8^%aEL?e6j>J{e#P&+`Lt;mKZQ<)9yoEpLdnj`H#a1K-&K(A1
      y?b)@c1~DXFCctp}gr5@I6R1;oUkHa^f3}5II)cw)9gG&jF^r41?Fd3lf?fa<(!v!0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6iE5PjpMabsMP@)76<AS9#`TGb%6rxYYWtw6O}BtGtIXJ|Ka*2p#i{tf5e
      zI8>E-=nv?Rs+e_hil~&s&g|QrH#_rY|Ni^^2f!9qTsVYIPYu*{kY8!@Ex1V3c@U{w
      z$HAVp#}|n%j+Eik!?n+R6QwHa9;AIfP^O!3=Auey+5|zOg#I<^aa_2l5thnRbyWmB
      zU{eIUaiLQa>bzjX8KG8u*ZJBep&d?GKu1U)w9&;5;m!KQto9k9x}SEr4#E>3E*^WR
      zpy8vACZV!!0~(<={N=JAadx7jgb6cY8mr_?W!mD=VbvB**q-$9hcuHm8mbiIh_mxF
      z>vNZ|GVCW9*XyIzu45~7ctChrKK!33f_I!=W-))#wt@Na0lu|56Z}IX1K3Ygo^$SE
      ziSTN|0T5;%_ybrKT`RI4ftpP#uY4{?a2=l5DM9Z9JL0{K*FWKJ{KE8I8S_+ZO=95O
      zVn+79-3x0LbK<21v_=`;3$__(ocN<8wuYA@qNOfiQLKY!CGk04h_~g4hFAvO1F0&*
      Am;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-%k@k5dP*`d$gXmprTl@At8}p@ifsVj0rRl8X9bD>HFSws7sDLa(5K)zw&{Y
      z_@M9pQO4P8pPJD0VP|%B=bQcJoBjLm*KYvt(Qx4qn&)byZv6CGo1uRhsWU%NsSf>p
      zYrB_`&N|BQX>0wMZ-ZDRgRh+G@7#-r!-$WR8AP18C=zP6kRK^2^CdXvFmq8Ntmdcc
      zI`etNCiC~gOvk3J(~J!#gi`iRr|a(so9#J?><Z|UHah!E*x8sHwb>^WoAH3lAUyKm
      zVxfWpsvgRy5egeNq1x7lPp&QkPI@Ycn6T82LlyN^qHR1mELzfpgLxmHrJb}>Rk<h~
      zPR`=wf(L}gxG#TNw*#x;u4U@*i0~>Wa8DMY(v7c@kPo$O<k|E<-&(y1UdzZJnvqIV
      zPF<`L-pn}&LVd=cz?$e>ko5pmt690_(>W5CQ4#x4q7M=~;wxL*cks4;;_;6>XHjfP
      za^T!yN%o%I3+f4;ikDWfJgM+eVq1Zxfq!z~^7wKBw9w~xA=bf44t$BacuPmL#B0!h
      DAS=zg
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6iE5Pjo>xCy37DPM(BR0*j-tC~vmL<^z_1gZr{eB9U0q+Mjzk-dcSvp686
      z9{K|~_xDttH918f<=~l}^}IJTZ}$G*?>_)OVZnz-_<F8->Q`7?Y4aoOrm7Rhs?bUJ
      z&DrB_s_l_7e7e8*ov-6e<?YjM#2ve*OgrV=N0rcW6k)1_;4nVt#QLZa=F3}kWkc?<
      zvEf!?b!H-6ST>v!YWAlt7FP+&(U2{y3+RhB+HMd&EDeoXJ|k4Ovo_a37z^OzSpyX`
      z1JuzXRF+&qGt!0+E-zxvPgI;TVLZwbm7b|wySRT@bxjjChb{iNYBESum2w<$-pTR{
      zZW9(BCJF}?+i~ixyB<C65nh+2pU5IKj<d@=;a%-Um>gW<N2fF)*f+9*?Nk*77e3|*
      z?}l7~a6bAD@K&^~$TtFNwVcHA#5{@XXoww^XiZ{Id}HPPErOLhJijS(UWlzp4!nDe
      z%Q<joLA}I;cqxdfKEr2;9Rm#l|CYe1ho60*gHB^ctcO=6a29joT|1&8-hloCOfber
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM-&0#f6#jN|A&{;>X@O`d7K&{GgjlIXOhJJZNt*^NElR1{O|pgCx!lB?3$%Um
      zp)>sh`e3c&gHJv>&a`nxJN^Ow6Fxis8Xd>+$5=gk?+uV@9ma=yclYc$XV3Y*bIz9!
      zKl=i}F_>X+hS95XLtaZ(HcfjaS+?YrWL{RxLUKy~7s{6D&P!We$n?)UrLuC|>$B1>
      zTFME-U})3ENlTLHT>h#mxM4Ih^m@{~l6ECovzlHdC6zTRuCkTG(CDt3mHuZL;@MpW
      zkRqd#rfs?t3`4P9Tg4X{jOkKQHG|;^fiRjP2%%M=8Ep)qm{w@bnzqWVujQ3<Ugj;u
      z(4H+7q_rp=Q=bE&p@U`^+wJ3zVn!*nlmi%jKo}1DsU-gmu2UPzc2n`i2%>l@j3*g-
      z9t*9fD{uhal+KEBYryB^8l|&8=Hu*hwct9$cB%<I410>^hFMh3f_Xzla0q>2^wtsU
      zD+?S(KQW-*UY8bO&=G{agZotcVl$2)7RFJAqq}5PAdUfs=1Q&77@~FXp5Cg#R0Km9
      z4kN+Pxzqc$hCmWjQZ1BzdOItR<ctpOIe`%zr!uhQ_0qa~R@!n!7voIbi~rRGURTVP
      z9P>uWcBPfw>4)MwffvFUWk~Og@BjJ}7{iMUO_Yr$hd?)C@ntWOlL9>$XJ8rq=1T%E
      zW0Ev0Tbd2A<xG6B3DZO{MN4HQU9)6s1WyUf;1z~&;Fr*>6^Gn(lWB8J*%i|D;LZq~
      z#u?&=lruK@rzrOARQH8m>SqOVn4{Vu-N_AUTDo&|<P5Q(TIwJ0P)}-E;3ZD!9Kovs
      z=deI6NPYqubu;St84lEU{x<h1-}r*SqVDT<M^UtO{OIIg7g)kYx~9v2_%>o`Jq#EH
      ze8`XO@l8qi*=p0zuE||12MqD$4Dq0E%CbOyLTmCGLnP=iN`pw$6M$YxlYF7H?iAFF
      zsV7dyqZ4;n7ZHQV*fcSxEm^7P8fdLGb})z0OLHwmUjtZMn;vg8+&P__5uyJcIvuAo
      zr!_J#cpqZmQ?z{I>FlL{Bk6#Dg?8Ety(g=E*iS1(gihZBbIE%n$sP<=(bayiil^Vh
      z{J=ekdw8ab!Et|ktcvGzdYfn%zK>KlEyWW?qM>^(5xO+oVKi8m=MqM37uY1KnD_|F
      zb3ElaUJ7pfh5V<tcC%Gvy~nmB^AiVeb>AwD8Cp`s`KZx)=L2*`jh1)cM{A%KHL7@R
      zJLeo_2>vw${{~(BTlDeoFvP#d2>$`2{6|dkpKyl%j3xdH6#o?){5QNq>rMVUZu38I
      zm;Z?m`9pln|H9{?y&iVwJlr1y*b!1##w9|p3sZOl<Ai@7M)4-zBCbZL$S;%3z)g}#
      h@Afug$kQ%_yToV#MY`osggM6*ta!Xo(U9dT*x&8%6DR-x
      
      literal 0
      HcmV?d00001
      
      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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
      E2N>r*FaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc^F5dKaJUArt&5zD25pr~!REOM(@G*KdosbW&){j@#cl4W<@-GYhF{uO*S
      zK}>w`2l(o%*H>>p!8m7kDK|};Cet&sGy8q>&76Jz=j}THS8!cHjA3S-Z}Mllw`Evs
      zx?}QHy}~`Cs^60K5wBE4?IE|s<E7z6yIS||a;s(vS3wIyMwaS)%h$!GuzWp8xLM<l
      zFI<L%|HSZyCm8ajW+94HHE&pke}iEx+k9DWg`s7^u8AZV+BCExp(2iU4GK;&#IrJ?
      zqhwg(L4BhlTx!b{44oyr%FPw-8q$w~Es{1vp=tC(x=;sgt5T;soX~0v17RCSRk|$&
      zE9O>Iq|u|Go1yn#Vg_j%deO&_ToZoTuDexY-j&S-{B)Dk)RrsjqUsluIEw)V{S4V=
      z1=ny6gAA<>P1t0ZYrg4n)wNBNc1A9T8DO8+Z~?;%iq9)DN<AHV-@W~9Dyq1Itb)r7
      z-3PfINYRj!v(sGhv@Se9*ezK#qG41%P+Z}V#y$fhq)aHskzEW`rls;C-8zq}M#2UI
      zE7_her!l2r8Z#s@$-V42wrBWa!QOCeizdd9-cw#eHR3@(1r1mCD$By8k%(F&gFy|4
      zw`j=KOCP&l<5CCecgeDZyI^w96SRg}(06p{FhuJer@PBiDY@fxic>_v39?D@rV*nb
      zpyo$jlX(N}6?rjqkWEky@Bt~ZT5wiz3Z3LJoJLplh8L7A5vE3VapwMLeh2CfGTTUn
      zr=eY3e2JbYKD3SYMm)a{)fZ6vNEAO2+-LOT3$pl%Nqh_72SbPmp1?4MaU#%4R>uTU
      zVDx#~qx777*;IijO*Y_Wk8sLJ!qL<J&`J{k@SR|PU;sa9jecPkzXM9?5TZe;5K)R@
      Tj%s4Kh9do|M2yibn+N*~{vl7J
      
      literal 0
      HcmV?d00001
      
      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
      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
      a{{R;le*<q5yMcEw#kc<dC;U3P2>BmHZtp|@
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM+int36kQu=2d2}D^h(8E6cy-Yyd}n9OlqSEO~sm8-VboVK^U50+WK22S`!~k
      zpZzG~nt=$Uqz^vK;hZyT@3r>Yd-(n5=Pv+{@ytL(@Vu$c)fc;a;kXU^w595HMRlF3
      z{W@4bs!B!Ij+CoUikXr+cN)sqdsW}*xCUZ^)#2d1O4s*P)$hF*Bx;VQL##lGg2|VT
      z>-et(OWDI9&Tc7E9{V1d3&mVn5Zmw6w23IDEEuo^i(`<vasq-G3lo?W%pN+fE}gY2
      z+N0Q(79<ZlRn;mh&k4@`%b5Sk=?Y$i#Q#xkf#O`%4%1)LE{L*JYGLto=16<>j@Q;T
      z!Fpf6y6|m%u3g{mne!&t7jk72Dcm-&+IP|(i?fi%9opH@{&DBbt5U>5HaBG9`%05O
      z7YwWmmWMlXFzBC&HEdeAi+h3zW;$U*Hv3sd{1}9s6q)kAAUmA$rU@~T!9xpK<OK6>
      ze_D=pi{f;RdFf#`?DItEg&^H4Vr<oPJmQ}UQX?%Jswe=QIfDEM;3j>HFnbQZb%IG*
      zx;EpxL8$_(=(^h5Z>erqb82QrCm$P}zbHQ;;lm;18sTFg&YJ{xA9xPlPvy6Mz|5z=
      zWBO|dn&mnZzN#@$!$ci(yxZu(aSKVF7>Ic+gz2ZSNP-CWOIYrwZ}S`@Dz$Zql`E{h
      z+rGrc6*8rr{5MQr;=zC{83LPB_L)R&tiTNk^SuQB2vf*oi|OOM*~ShD=2*!tYzm9u
      T5y>L_!+649lPF=IpCbMjU&Icy
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtT%Wl&^6g`tTj~YWmX;S*24@e<>nnK%65GWLoj7o?o?SAY`gR690*^|ctgg~(7
      z2lxp#MPh-v=A#hTj-{j!b;D+!=bm%Vy)(al|M&@D16vs+7#<z*Ht(82$CVB9q{$CW
      zn+L9AJ`Ts%+_pu%#--S|idEir8(fJRZ-^&eM^+r=dNKozVQP@1Vh76Sj_Tbrq#wA_
      zRSy}GrKJM~ZO5yNEJhe|@-IdmNnA3Jg29k4?S`aglT%)M%BS?oVfg5-D@C<+Yzv>V
      zYYK+3UC-go1Ma)wK0egc8#iF6L?r)VuS|;Mg^bpOf9UzgqRucE=f*qA6m21u+4K4|
      zTvL`h#!<*19~Z_PiZd{Q>kK0eq4vC%?~s%6($awGm-dlxR5^nwhKa!fKkv6i$0TM9
      z+`ueDikS8-hJ~2roa=tbzD1Pt45dNJiy9wl+%#|tMQT}?t!PqSqHf8$=tf<&bj;zl
      zfjcNsJA&xGD!Ph9E%~Y?sp%yvY+fp=7Q;->=FqxO#S`j;Ve(w-20Vv=mdmhw4sekJ
      zieMDLs5pAB*3aDV<rMyT<m+Kk7z|5F;qNqg5D0ojh2c*h^C0{5mw*JVQb^O7q1{%r
      z2QtfJ+3(Q5MS#mR>U05g2-w9HS{W2TFpMHcGs9Jk#S~u%nWD4Bl~Y_h!{m$AQ%s*>
      zu1fR5wwBkvBAwjU*7DjZ7W)FTk^Wm`@s23pqks>X#z)NJ6N>m8iEj3YV^Na85|&9e
      nOV4Npt0bI59&1=9Zv{e`xC@O=Hz=J1?%_VoI^pRbU=!Itq>B@<
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLO>YuW6g>|HhK^&42vph%tx^U0F;?4d@FTU+WDFv)()}BF#cAk3W(L|{VHX;s
      zQGbLROk9|*{ZYm{!z4f?UATFl=bm%Vz3=`0^Ya&gE$qk$F+4iveSW4nr>51?x@~@>
      z8Qd`&+EZ_Q!wo|;YuplbJzwR0v&CIe<1JC|?loMqW66*h7RD*|49B&3!yVo;L?4=#
      z={{x%7m9}r(tf8YVwho=wI=u!gmFbh1S&(SQ1K|WHm95pT$@rWd%<%R(-PI*i6Lyt
      ztSuN4l}>}V54ml6``}P=-<l4?6QAV2t(8fSe2~eSu#Y<SiD)w9g3S1-tBJm_Ty5y{
      znYX4K6(o_CkqU~UO~t90#|?&=mT(U`J-b0Zl7-@!<yXeBXt-q=3k>t)#eFeqh=L53
      zRNO?CAwo=bona+lneaRcsp~|!%upDoysYJ(#w``Mk!Of|*@`yhC7Qa`6lZ=%bp<)x
      zQE?XqhP30~*KE-@J3WVlb?bG{qNW#guYD1}Vhl?|t5a)3RS&schRj6s#(aB#p2<*}
      z09@vRA{YfQDv&a)_jA*GJL!L(_@-AF235B#VehxO;|O|3$!QNC%b)_#KLSFuiXcj(
      zOuHR_56GoN><5(ZKHw^i3S9v22zZWJTB#I3Fw7xNGs86`0*Z4&M(AvHZGh_+$h=%1
      zVDSRED$OgqQcC)YXn0rJNJ#^%js&v4{(Hpmfha#BjZav_XJqjOd3^Ilw}-@mC`q7*
      q63NEsA+2GZgyTqI1DoV6O(+fbAkpa-r4zz^JfK-2JpBZ0BlZ^yWD@QG
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TTfh76#n*^fdj)XP%dq0X)OioFxXC8TQ41oEtJ~9;iABZc-=FzfrE#0rstf2
      z;*CD{ANXSXU_vy;qzR0T55~mA2YoT|!5?56W317{H*az6b7p`MY6zLLZ)>f+*0;X3
      zHedhq+2;UG<Ax56p>JL+itBNA$*^YQc~i{9Gr~2p@qYE45Sfh3jR{LmCcDNQJ1-q?
      zd0<Xhv+}C2a;9{2gc%x@jkrnM@zKn@%z8Si89Mykj1-m|uhdN$t|u+&FjRYUhTC<D
      zA(q;$9|_XxH7vvHV>l7ry;^sgAv|E`WGxu>aOkLsAcO{vS~N0*qDr74Wms~gu#k}s
      z#coQ5rj(r(W?DFgT9-D%%58>=yS{yA@F<k}d<Ciuok2+Pop2jml$Mw1PDgM62X(YD
      z9C;wdzAVQfv{O{G(ko|RL@ZELEzxe@_aJHGo<rGB)ZhrodLok&%XYyVvrQwr9Klf>
      z)6r3p<v@X>6J3-Id95H!f}^$M`W7N2x~FS#98n#QFhqBoVvcUa7@D&M$DxSFvyN?=
      zqcbzE^cYxDS$ve^gpz5kkWsnv4BLv3M4aOkPAe;p6rK!X8WxtARm3}320$!%@rtvA
      zGXEIIS)3!Dm_8I6Y6k+;c2;_V<4HWlpc90uW*FKk2r@+MDV0+qf&?z;=w;Zy6_qU_
      z9DR72p_YOU{9`y&0(krN-RT-!V&Lj#Q)J}=!KSVl;JA!IVlgp*ZVwCviS;R;R7gF;
      zaTQ4-MSxV&Qll&T3!Z0N480|&cGV<;ToIcBZ6C~MIZ_yAh!|wKZ1sEvH2>Rp{%ceD
      zJjyY)#pla%tIsNf&vT6Xm*(gwxKx$RBu5%AFw_wsqh>BG%)+*E2zppT$BPVm{Q~nD
      zowPhj+=*ZcFLAuAV68DM&o`k=zsm7i+4P89D(xSK;K(3L^%Laa5`mkvD63R4EzxAD
      z4pmBnU4l$vR>ut0qJR135yzb3eAtvTo|2m9ctdT3JUg#IS>Ui#FKa5~b42;HA(zH%
      z*C<y+p5vN2-V+=Lpty=AE{CU1B92@XrlFM8_9DlU+SVPJ7ZfTLAAxl=sDTGJDB_`Q
      z<~DdpON$&S(~@o(w+l{IUNKaE-M8(bIjN#1rKCkq#DFPWSE}YxZeSJ94?3ushv-)Y
      z*4U_eIz4R~t!ojXZyl}9(psZ266;w9k9~^zJHE_b`c{(+*!O6nIahPiYDNo<bRqTy
      z7T8^c=?|=?r-=Pchl_aVJ)DcJkumy(rq}WCI(o|MB2KR3j9RVX@nASp#Q9a+^|deh
      z+8>wBi|7yE#`~MPSJpAKxf)r=bEGx#1*VFazChDgf@$C3kI2V_?<XjJpsloSYY*ST
      zaC`M_RIg&NY>Iq-eGNJCbQQ<it8SsEUH2tAD<uq)P&-AK!C<R_0x81Tm=!khv*>*R
      z`vIKYqj%;<;^I%}V?Sev-Nyv`1(P&Rv0sVHzrkaFV1@mOo9r)qKneMf{`vSs({M)%
      z<4dgyUuinN(Q5FmR*UbnI^5IhabIh|?^-kd)>@dZwfcFA1-U5YiL!$0Sf)&^5QX1F
      ejB<Sw2Hv7sh~{q-E*jp!yEH0BFe;N3uzvvtoourJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO-~d-5Ph}m?(7c3hbt_fiUKB!CQdwfS~P);B#;dfQSLpn4Kx{Mw7VDlLweAY
      z7fd`5&;BT5%}3${2nR0JU$0)h*HwT1{<;M40#6)N2;CELCO-S-T*XKJ$4DIdfiNoc
      zH`DlD1c4mviCBKvUVSG&4W+SLNjNkcp;bxjph}o86Kn*=Y7yG}olsv_v9hlTBb~Ja
      zLbaC+WCKltr%P-uMlkB329Ge^>8FH#Bv{YB)hw%<rcU%#EO&>efz+%jl7v=22}N`u
      zv`Wv#Wz`-lLwJ>u+|gE-tFZ?*xF_{tqEF?3uvF+0=hl~JGPZv1@lCpCg)XMhb}(Ih
      zh<_u_!whB#%_C{|lc5gT#Z+glWcY1xB17ACFi)5%f9%fxR=AkMqK78xgjyzru$Xh)
      zSd{I!d9^K-{#*N6YoDi;xF_3jEOjpu#z^B}h0rNWxNSJN8`sAJkHC%RSpzD(tD(-(
      z;nU0P3^-3)jh}FTWPmY_E<XTY82A<Ayz@ALVVJ-quY`MO6%;*QQ|#!o3*7&WxeF{@
      krTNBm-!qza4lQUn2@mivBUoaJ3hR8#tIIcpWvrs{4`P+dMgRZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_b-%ry}6#j16)>13rgy9h7hoBoEjSoJ}nBd|P%)~`>@3-9rFX`IZdk6koCOV@J
      z%Cmoz@wBT@A|XDQCimAl=R4o|&gsuz-@XHQgl!WB!`=};<{w;jBEv&>5by)n<4XGO
      zvt)h4Jx}yHJQQzt*ItYFL!opl@`tJw#a*eS7l>xmA4H)D^^UJ)6q+b7EaWkFJf&mq
      zXLg3t6B$bVlwqP)?=lpcQBPQyWLS!?PGDmK*Blh#FwE83Ne(yQ#Cl)HM81)rO}Awz
      z_J(~=#Kb)i4CQv@^PtOPncTC-f_^6zLnj6Kf5kV5098sdbVPg*#eLDEvNEdtM7!dc
      zgmTA9Jx|U=+Quv@Cgw8P+)Mo&%;Ofr<e|{}(J=O@u-RHYr@<@lNcg&8Vu4{kFaL}4
      z9@?m4(ZL<urRW4n1Qa8BXDwu?`~gi^oV_<}EMwKg3dxzue!=SC9!d;OzI_bEv{r`2
      zG097-BE1YfV5nZ`Lyj>y*yDOzGHGVzuc_Ql_)zlQFcfh!;7SQ)VvC`c7vZY8W?28H
      z$tDSCX6erX3_2B2qSd6^<Ma-g8)fSY?2oC#by{sQ0H4V5Gp6X|Pyo4M8Z)#r+(0>l
      z=+d4*&uorx^Ay#WTO-^aVd)%eDz$%wg&!1un&K^wV=_F7#v0ZM$)fK*9#D1zH9|E|
      O#|G^-*%&tQ5Y}%<yA#j=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T}uK%6g_wSO5M_|?8AZ{gv`LLx2OnG2o@wF)3<_IooZs+jakk9Ru2*M&=2TG
      zMR%lLl){I(cg~%2=iWJYKEK{S0PJBS1&gqMFP_A+6Ae{x>pc46#_>d?x=!8LOW}F4
      zcP;|icFV1<4t<|#^+CTM1}Ve|TmNOBXdMoJ$w@+Kg4}j5WE2i`R}zx_I~A383DxEV
      z?~j%aIqOITs((zVRi;mKw>yM*BkajE2(va)n8_f9oQ*W{d{h}Ra!nP;v%!NWH4EW$
      zkA-H~6@Eu(W$;fhZW<>XOkICmNq$DGr!;|FLZ&s+<5Zb?#fd4@j5Y+@4FahfzK9|j
      zrBEVNrWK8l8=E9HS%ny{1Sp?3V(|aqZdi;A+bp97EM@@N>dq_d>iQezUKm=KXPaS<
      l<TVn>D-;+P4d%23EV4JdrBTenG9wEsSY>anCahr{);CEUtaShY
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU-%lGy5dPLSd)V0!hoq2Sq(CS&HgK4blGKEjxP=^b69Tc@yhK``7yGK?jLt_v
      z%6sw;B+t!TpDPg(<)ME-|EQ|7XX+mySrM`1-J6}+nfbn%oqzuQ_&0zoo*9TRJp4`m
      zE)UGczT;KRT~}_KW!Z3S^MPKU%5qs%Hl(MD*2I?W*Ik#)wCtV`i<W^H!>wN4!h1!F
      zfd@6GF_C4sSLkKmBYKXUEIFPNEHf;n&g^BX#1PBZD=H3#a{_(f2}E&Tz`y`QG^GtL
      z6dX@I+S@5BpE7b4!(gFqOSdF_N6W{DF%61g{jABHB9t)p?MlZB7-pLgO}QVKYrfpA
      zId&u06=*$Q-`TBu$_sK+r38j>#lSGb;u-lBxQc5G{nEBoBP^Br43@hx?bTzsIBwvk
      zff0t(r)DnjB}N&HK$dlbF<k8mx8CleTms{mFmQ`uxYK)wiNIHwq>@)vK=(FWX{#OL
      zG;9S+CzleKLYg67bE-9${-jHW0mI_t>u%krIMbLlFvD<B$LT7YfQdO`wxNR1nBh`K
      zahvz2N;=fMz-=s$-rn<lN}~Dx9&c~cRR$KO^NqkF?o#g(`W0WvO=Xkrayub?Aib)q
      zh}v(lWPrMAu$5FxD{x<j>f3iJK}}nJC-A*K;Wec}YD5nN^7w&L-*#NL8OTUk^wSMD
      zj#Ys*&0UhX+fpvYRTaytsDlJyu>{uf6N3mFnyA&uGF<6^-s)@ZknmLrc^gMdOB$Ol
      zcGtMw{8Slgu>Y&}^6X996`)too_Mz>#G)0xM}{puQ~DVaTlGEPR;!L4BtxgB?5wU0
      z@nm_P^7F22G!zY$f$rH$BzGSaEsW9xi_%<Y$)p}*^c6)!hotj3Ned)JXiuaw?`U}s
      z@fS%ET%eVc4fr^c^eyx^61a##+NlP(-1NZW<TplVZ_<ZIe83lnxPFAO<xETb`Ushk
      z*dOR0;csEK&$H2%$(=*o>lBucu<|FSGi{4(r}~ubu`)B#vZ5S*Ji@~^n0bN#K7#>1
      ziyPd;7@xx=&tjg>qd@y6U%+#I2M4sj;EQ<8?}otBO>oD+2__2oIV9r^9^o-jHGo&x
      yAR?p0lYu8qS};i(O*~I$-ea?!M<=P8_z0ecYY`>d2T2~Hhw%&T)Cc$#k^cY?KLB9>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLZEMp|6n;+HCSA<3SiAXJ=Sw%+j9CYQNQdACVx)+$rQpZg^iCr&9Z9SH0)LN!
      zT2Sx@_@l&gYhYbACG5+2yZ1czJm;SC>-YDc0JhLJpb;Lt5%0u@PWnEKUv&;6anKov
      zGz>aBO74rnKn`DsSo&UbFGxmF#MhJ`87LEK^U2R<ae_X69j48D1h+ST{6Fk2XKjaZ
      zIDSOfY!y#y_X*|Q(NHdcaLz&nx``4NEf}x~rIxy|)C*(zeDZc66Xp|1F1t4hMAR2a
      zsQfHgR%H_&7Jfa~5av*w91g{pdu3pm@U$rV98k{nJri|YRFp0eJ{Ipz4ySuoVmTb&
      z>$dwQ_xp;4tGGs}q;l+ggvKeQ%|>FDK{z<&{2#M+=32ATR#msE{2?L;WSTa&2(tL=
      zIl|p`;m+|4n0up1638c^8nl%YTXa_q1;O&-SSGuXNK=^_SSPfKP7A?4zKI0qc)<5?
      zga4<*TTYInmV&J^G}RN1FR*u?J&m>LZhU1ih4q;|4NEL_z5~4hhiyyQFmWC=)`SbN
      zGlXr%RcE&Q1NE0KO|kL~myb|Pg|9!xqP{bSWdB8CXakK5X`OGXT6K40it9%R^K~$m
      rQ)N~+vz#^7>h+5I1?DF<PL{6dX}C3$x6x!>W1p~wJFM$$wV?e0(Be^%
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtST}uK%6g{)rn%kDErF~e@gM=TH1wEDYkPuiBk+tvRI@QFsE4!NgtsX+?p&!tX
      zita2zf(1qlbD2B$oIB^<J0G8K?*R6(nSjP{_`sj|b2S`D@2=W)`E9k$L+Mmcl)dKd
      zw&+}PPuw&LEhq3@mteLOgRUR+5{NTo$N6X9A)O&V9*R=mG_FMG_X9^T=)HRx7WNp*
      z%?aEu5{`&flb-AyGwc+nr<H7mc-`-aBpBvRBrt0rhLnjUEQVN70a8uriHrVYTLe_L
      zOA0eh-{G#!1F8JcWn9T-s7?L)WZ$R^`3Lp?d8uR@RPwSa)L<}LQSVQssxCJ%;axQc
      z2D9OLBB;AO3`Lm0Izw^V0WqW}ehIcnL5%hcm}RNn)9=%0ktDjEBkv&c0i#@bg;^eA
      z;U&VP$?AlGevS;CO?4*LB9;IPlp#CHuuU0a3SF)Yk^7mgQC!1HWLL2kWn#q7V*}b3
      D);!N?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+foxj5IqyZt_g#z2^aAK7^5aZSWvuRkOza5Yo(MD&HHS2grU}5YIlS17e4zJ
      zRsmM|;0O3omOYyk2C*m}=F&6Wr%#{h`Stt9PXLQ}ZX(05vLp7yz8!y7!Ir)2i;uP|
      zV%4@^==r^HUFmIzKz?w_WNb=bwi6WwuSDSaGBS~6urz}03yOd1?$EsngJGs0SMJFm
      zu^ZduBbzEtWFR93BiUAQd4ZwU>~}toM4h5mRG^YohPlec!>TQYY$Nn!4h+K_CNAYM
      zfDw)yEQW!Kb{J`@K)&gGa%Dud`jVm04BNtQiAZU?cbL_*8CEZx{eQ|)Av{h*BD<n^
      z45icM^h@?q%U7?qa=40XCMFpw7Zr@-I&LtSiE#BZGEAPL{hDg(y>LB`Da@FdW|-(l
      z?{nd}g%ZQimP{zF5q5$k)y~nOWsW=g)}q^PpGeOMJh`7I*7rCns8Y>z`K}YJhgxBV
      z!HVNl9bMKe$9>EZcAU1D^vH{WrN}nNf<`WM^ESmn*hw}*U$qZ(;s+cL^&{pZxhH((
      zk*NCk5yxYFY({cdD9w~n`O~M$KPxi9Y=)hvE!UN9fblcmU|wrOg*XBAaKjgIEU6ia
      zRL;MjgTx|rXbgf`mTo!vb{VpB$kRMT))LtnTJyEpBk<aHT>h5&T%p+@9~gru(4Ol(
      zMHMkhE5jJZdk9~UO%c{=hXl|YhnP6VO>L#S+sC+jgxZNc{}sb0#^T9t>2K~SVhdvg
      x1;fHLttF!X+bCk$7)8SvOF4~q^Y%CaYj}dE#43Yj;+VlR)Kku+JH77;*dIy78C?JX
      
      literal 0
      HcmV?d00001
      
      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
      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
      GLi`W5`t<|=
      
      literal 0
      HcmV?d00001
      
      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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
      a%%_ulUuk&L`h5%gd6X|b#b2>+L;D|IC$d@q
      
      literal 0
      HcmV?d00001
      
      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
      zcmc(I34B$>_5YcBU*5g%zR7!R4+u#R5D^kK5rZtEfFRMZFA9hfk{1YuBqm{16crW4
      z1u9y>4b&Q?C~763pv9`7wR^3t?XRt^)h>3ocK^x$duHY?FQk_C|M`FZwz)HR)-z|D
      zGiT0yeEE|XULvA1>~|cp1PxqKxw>-gu;w+j^~;7e)>YOFTUyy%TQzJVKj&61U7D?)
      zSy`W*SME?uQ1J<^bDP8k^@=u`!^2K$sBdnmtZ!)+<ki+!HBDUA($Y{bXiP=4>8H)z
      ze@<0XLtP!l(tXEbr0Q%qlDoP#yQZ<BsYTGZ|6<VjrZ<MoYs6yf1daYLhG9I_VT?@G
      zs-~uFeTxRVqM@p?rIyz#$^~`Jshd$#)0_p+ZdGMn)$D8)vfb3g!z$Ob4C8{z`ek)l
      zhN}rLKwxH3$Ms#S8tPjx=fsAl>TFYaJ%&Z=&S7I+gps;6XX`Llwi=Y1Sy}Bj&2On(
      zI-x0B>AxrN?&rPg%BCykEU&C?SR<%YIOe2=x`rkOuBM@C6{brpuU)ph4u4ojN~Kf7
      zf_SqTK(4G@i@B#}b;G27y|}izWjQd>w5onm!>W3Wkn{nay$Z-<_>h^gI@?rNxem20
      z*|ja@SoH;!je;Cq3mB|Lz_K*2=hrs1psiSl7688fqAcEes0H{ekD@s(O$}EtlD+e@
      zjlgpykb@3&*_syB!EItlRW@%`qe}DDiYscHf%9yWpxz-;va3OcVN)0*em#cHU)iv#
      zIqMg6&|zA%9v!+jHZ?S60sf@r;DJcbQ}t9!vz7JD!)A8a2;Dma1MPeE%UQUFGq(*o
      zGA5ak1r_8pzi@7#3wSx8LBpz+X_fVr%Xs}g!}V80YtS@_0hzHhdnXN_nm3l}29Okk
      z1N~^(JfpGl%2k-X)9Tvh+NE{bNewF-8|s159MK3$85W;U6gx8Uvnw0tf;;pa>XjKq
      zzsASa*4MU-7i13{G+$6`QbTptBb&-4O{OUhT_mUrtEF5C^yoq=PmrMLk|t3X&dro`
      zzRt~-)Rnq%*<48j=yXBpirV_@^i?aDs+HAYIbB!{)XlGKs;$JLuv{*TwJfg%%a-II
      z`qT6vR@<!#xNOOmLyu-Fo3p+y9XD{$Nsn@ZHf7K+mE@4?&}D+o{%_T?M~i6*<FQiE
      z(19ln&)D)o^BIIHNoUh&kFvDPp&AHk6pjf0Nm@>|K=QI|3lKT8uCgk-QZWcfTFx+B
      zA*qg5f)k(xp#q@ol>Utk#6$rG&&U1|Vvy%=l$0PBvQtxAUp=#-w!URb15{~sb}jTa
      z`i4BND#tRUEs|C-Fr5I*9HUrO7Y_rjk+har<3uVM;!x{$%Nf?_=mePUDoIyU8men8
      zzg;8gT7Ju0!&)*y*U=3QT@MrloT|G@+QiLbth%_>O_FX_{gejdk#3Q6s~UG5zuhM3
      zc7BU5SIU^X+$m`*7uhWhjr{%@Nq4CxOB=9juXN~c==NY*g$R$f(`T9N_X5I!<qFAp
      zKq2FeHF1POfvg&|#%s+^C9tyy=zjra9@$|uqOr3yD+2(?W28SK=~4O|R7-91<a!pR
      z>IqN}Ox}e|{#HqkGfiSZ`z1`+J(4<6nklkZ(v$QQrT|zV?xY56m$mhfCurnchK=ys
      zSS(2i|I?CEJkDZzR?-*zDHia+`z5u}6v+9i#%c`57RAhl=2~Vvu0AN~d9Kda)mmzK
      z$Aq-|+#9Q|t*PPVy(sA=9z3ZTTy2Lu=@CgU)0dzp!PaKoyy}I_)K*Isuk<xZ9wj|G
      zMsGOuI!vsn2z{Dn33Y;R3`zPjy{V-vx*9Ces2ZgqHGvY~fUEd%3s3!ZN#CGvqATFc
      z?b=o2IMS10ceP5JR}R(FjtHTi??Al;mGjCWi-OQ!RQY?6zrSA?w1V<XfZbXu>*{!_
      z!hb#0eBKbgFX_AVJs$UeB>j+y*V*(AMr`KVA4__dYtyFo{A^9-s=5|c_ftvlaa|`<
      z=kNcj@_k7kaAkK>3BzJ(LuFI-1f{N2lV3>sCH;!6My2#~wpLi$Q9|U@jb&c=wWKkm
      zl+<q}{f>UmQj~4c?SkbiQsnk!k|bBv8>r?%qYC;+(w`XCo<VsB(EeG{U${}1pi$0x
      z|0e10T-`aSj-u+HlKz)#y9TvUG-v6!6vRT&MGJ)nd1gahZPhwQ;2bmhq&Xc*#2jk$
      zAf6B+2K6QK1P#e$icgc6v1-#2j--A{w}^zK1+);D7fDGY=uC*L$d@7|piMhfR#)d(
      zc!K&yWI@|vISnv85HC7Qs;7mH=qhN`Nv|+CEvXZUC%T9XudlnHn*U&ZC%u1%x<j9U
      zG-7&6l9X>>d;IuuhM-W2BHkbz@Zg-<^;s^<XJnlsX*iw1uYINHCr;JK%CVn2LRL-#
      zg{))ZG+yNZLAC#HSLtg=<^VBJlsIBgbWc=fs1&7C2vuECe!<kamtQb@0(OaGVu%z&
      z#V}>EwoI(7x?))qjylzBU4*uUK2$OFkBKv+7$MHoNaI;yO60UOrm<c={T7>tD3fB8
      zI2-#nI1Z*|$IYX&`C~X@jG%K*n#V#ZGRItH_IqNq7{^pNM^OF$6Do8(ufjl9oGZn7
      zjIVf8b|sD#u9%1ubJ%0((g5eKI6t?lrlBdT$>9p9p>(8I4UX2Hm?|!G1on*_tF)q_
      z;fe|M)l;(BIw>v^6|gRi-c)34<~sBiG%FVwkzGmCq7H|=VK|7w#WD6|N|-;gV!9MF
      z*dk!Xt`APGm<1Rjzz0WiPs|bX95ENmjuLrZxjDp1F<)Ga%^3RC9Hjai=25WCSh@ms
      z^w@|ItQnO>c!8weROpIDklo1C$^*dlizO9v{pC>pk$UYA;0BeFPT>aFy`$s`-45I+
      zE2$SZT9!MDI*D_At)wEZzXDroWR{4ZfKjkgih9ui7Qs5pnKGG<R>|g`xKh$-ly(K|
      zw4TucqmBq}w@OlfZU^y<V!p+9pzyToq*yPm0;SZnAQuKbt)rPk(JWV{F>mE!gQNoL
      z?uu&#of3h>Klq|3I8$)*>m>Ey<~N)Gc<ABbb~j4u$?a~2^&1(s16LBa#?c|et+(V7
      z3ClExc3$W0Qrsc#gyO?GCpI+H!AtQkP^@;!ZIaHVL9Vz92FZyKFtm!xc>22~O=R+Z
      z7V3~8gzJEdcS!22j^W}yN#k_x0ZHdj7v4S}l46(G9T-qKJFK8SQ3I-@J(!1hM2bfR
      z4jbm+o$D|W)W6-qyF<4M1Bz2g8I9r*pO9jY_`IMZZPj(`!(sL?!uF}I9v=EhNh9ej
      z9(tb?Pm5=Q_2z7n9j-U01sjVZpC8Xjv0t=7T(OI^U$J3Z-@xv0!CE~Xl;U~u0z63=
      z<zKCGfDwXEU8EkaFGKdC6fd!n&{eDW9Qe8Zh!ijLoJG36<7v6!D^k45OYEi_=B|<(
      z9F^i2+iqs29NuBu?kL+V>hYo@z9Q(Xs9OCr%dx*2YHDSDbzQc}6K{%`BfkEh^jC`x
      z`hSi4e+!=Plb#=vrhOGSod&~vlZW|^pz$X?OfGJNf!-1^S9~v5_0+ICw7kBNU51UU
      zC%!Mm55)h#Oo5&d<TF7BJ59965kCUGqVR=7zAJv}h@W(H{V=bkwhjmJY_k;aiJyU|
      zo3iTEJ+IvFEog-1LZ7E2+jF^6$bN<21NMe1KFC#CmGxEG<`(uCnPoyAe<8&$1rBf$
      z%hcyOtRDi=PH6;HV?FV%__Y+j5x>PzCjd04|1?N*01bKoQfzitWY?*QyXQ3WA;rnq
      zUdeFfy2isXVBTT@)8IK>xoRa_?<e^8A{dL92<O+rG1m+(8=Dk=7JqfbU$8eb{Z2e~
      zO7S=GcMxZ#o<twb^i;V<Y<){5oU2VyOC+4e09v`$2h<V&3q%G}1}#1DPr^=u>mIoI
      zg4HOnE@-N3TwYt%tnDzL^3esd?PXcgvaJ|4quS>Am36f+w&8w+|0!$5rRDHZ)?Llz
      z@CJES!b&=phvfy3__Ih$@`=EONuahmZkv);+UkVDn%cTL?Y4H{S7Xl_l)TkNT3xMf
      zU@8SXgqinA$eYome0AiH&aNxfr@ORzaGx%!&!p&O5xgcask(-SN6?ukE0k7|RSa1C
      z$pp>oaH0+`rnK}ZwDLOiZB{r_Sf>0yFeS|0kHASk53U-%(Tml?mk;b_`J^OPFosW)
      z)&R!6TkD%1fOMd=23aNk5`mWJ39Gn6m>H+#@SpKQ2TN-RcTf2X)mLd;HB4H=tur)l
      zu{l323q!q%%|d^RW}HWA*d1k^DXo##Svc%Lbol-O{zd@B){t=}`>e&4y!Be6q;<A6
      zS{qMuYg_8F?A8pL4~w1=c!IIg8fW34m8?@|uZqg0d~<pAzzEW#Fqz`$D7o5z!RUxK
      zCtIcvnYGT9)_K+h2nN=z4?msTqe<aslC;jZCc`Aw2v<a|?vP9&06bm<#*<lIJLWUg
      zzCc=2Eu7}`<V*n^emk68qb-M4Av_@in{h9aR)sYU;-nU(Hfp%KYjLO8fNQe(9nSE7
      zCpnlHf&kGmE_JsSi_uEM<+G2@#+o30;H=ta|CRzi;~LzN=p8{JDT+;q9ghQPQj5)5
      zK18#Hxzn%AWlZs|wNP4%tV@9e&6vuO2S0~l&{mBEf5?bp4e=TUMVEd$+p-*oy+f*;
      zY?*(#6P<-c>@sOxZY_b{1}{T+)e7b;udQjh1e+>U@<P6F64p{_Rdv{G0mNXXuPxLi
      zwIT!V!p#^evmj~JT30yM3Y=_ntQ$~(`4mz;IKnxBV>BWOfzDP6AA1NoHdxrw+26+4
      z1hFDRaEbDn2&+k2%@(TF62UL*XYy55ulA~n8EP1}80%T9t+kGYGjEPNA!s1QaSK;p
      zzGauQDTP!)P(fps0kN*KHaOPR#=L9Kj?%h@eZPEop3q!{yFS*I8>Mxfbv<k_l%8MP
      z44ZCUwt8AUJU{idRZ1BATOrUWYi*L&jl5?hf=eSVy;)kDty}ap2UcxdK-@9+#!ovt
      z91Dlv!YGN9oj<R9cDA`;RZ~^gwQkQnOY0*#ETC|3&$`pv=2%+=4LV_@NbHSIQ8r(j
      zrS%yLXXJwFrph(iOEeGnYfXrV$>QMB#PF6z$m{nt3=-vP2nwS+VcjjQdn}khUN~mx
      zUd-*m8)VknA+4Q0s=}>x0$gJQt^1|*fb}5s&{B2N$RPna*F+k9+;W$+c5}-(J9oHU
      ztVVHXI%EpPoUGFfH@3G+10I9j8n0CR0J5$G<&6roYS^IZ0QJy$OPBFl_DbtXWk4*i
      zY*tE|iLy^xPg^)Vrx+vWS2i!tR%_+it0UC1%F&qo0$gX-gN)Pt(rQzN8;`&-0Bprn
      zuFh8ToX<<^1?FP*u&HPlE<7x)7k$>&5iwl)MR<#>Bg}(?LbQbbAnQw#`l?F@>s4vJ
      zW*vnPas<(;IvAT!Q)~~Kcp6qx`u5U#T~Z(2>C4i3lRI^9-^qtSSYMUa*DM@L3)DU~
      z2_%BlX^UuXL*wM?WmsC#ze0;b4AkN`rS&Zyq}PdqRN#i1M`7*xmbAXZ&5BNJHc?$V
      z`whP<t?zNe!V??L<`5kXmaFW>Wqh8A!)8<&K7Ro*6WQGkyKT6JJlKLzWv+w}ix6Tw
      z+(&SHv3?}2A6xH2RrtG_If;Z)!%B`(WezBinhPyl0Zz8w%WV^m%X@dMQH9$G$O50T
      z01M)rj2&!H+!3I>^IT~CQd+;VJ_J)?tKfODICTZTkQG9QTVjXnV>0|!T0gM<hX?(=
      zwEn;_vs>9mS*#j|TW};GoPR=OPWLFEhT9W-Qx+}-&m&la5XTcbde+~pe>fJ7ec=f$
      z=q;^(S~$D0&YxMy;dJ2F+-ZD7^DxJyP5#}ufe*#DC2e&`gVHyp7_ll0De6+$+`OtO
      z%LHkjr0!U&J=?Jpj*U1FwHF)XW*s8ER!ZBmlNg|~si|^ZRYN28H~(y^6sGZ!8?@&X
      zK~>-g(@=*aOqc9hP@Kc>K<DNOJQlX;`s^Bh)vf~M{4H2flZ_0!i?qA)e#aa2%%<$>
      zT11TLLAW*}?d~?tjIyq>nR%$Z9)o}xYHFL9ZZR$f1WjD%m^Nx!ScqK40W5m7AjHlD
      z*r1yADia{xyu4vm9RflP^h{P&GP|Kgs~$AQ&2`r9EA4)K_)-3D@Funil=heQX<W)n
      zz?Q8-H`w;({i{n<83l^S9w_ZWHjZURg0&J<r=qB&8r=vx${sB3A*@mTW0x7q9%i56
      z*ux=X>IklgGp({^xwJ<x+Tj0Ki@lKdBHbaXQl~`%7THoc%m^PP?E$PrJ4fL*TDK5d
      zH&i3MpP3`$*g@qC<5+2rV;Ff+ynekMSgY;v(mvNdPg4UluE`>hw0aKM1r&rWHU+cW
      z6Qw=LJ|D-vW_4X;rp&p<Fc(RK%5h*`4JN45N5gIbsCq?uTCAm9+GpE{yb|_B(yri;
      zCBqK9lW5#><#cHmF$d-^Z)mDr4^kT~<;RZtn3IU;W3DpQ90L?=NgiEiBTR0x)rm)(
      zFYSwM*wV5|F_2H)sMTml8=}(`D2a;0MF1Q^HQ+f3cn)?cAL^`qDNgV9VnL@zwku^~
      zL^NTPL}2Rr%GI^Yz|j6#34+1UE|GR6$CY*0rbR>um9%k_Drr}9lP<c+beJ%{FmiQ`
      zw3pcka|%Vv4*^yV9(|m!S4jH`8%Dng)tyki0zpFcj8Tk*T}|!j&?kxNFt{z=pkj%6
      zl16D?$voW+I0*niG*$p)v!va0FAL-<X|HB*J3%}9i#0}+V<MG##C6hM&m;E4h&ikF
      zM^#ta99C@R<4zl-eGPL9uQdt=MCJtiar^6}eLc75EvEe>T)#=$X<Kp4P13$u@nJYJ
      za06{t)6ldA5j4m#@Tx2ZlbWpz`!;EPVEr6bT%embLW`<g0>N%R?}1yHrTo{lex2#Z
      zX}LD+@NS@kF&Ktcs&E~6R~`HAc88(Bfy(oLR@(QnD>$uheZo31$KEOJ`|SInh2S|3
      zf}r%yWA+ry{?RSPaBsB8v0+&EKjBajOckC}Jo^DEckSJvywB@15y^W#Vx%4Wk^dwP
      zV7d_%zq_8yvmd5%&)#l7#w%;ZQO5{h6kN3?-?Y*F*spFs0VN%UY93IF>#}oBSXkt=
      z6cS`!dH*O(^BR4K_V9|Ig0At$)~kK`KZ&gINA}0uXCo4Dvi$|NO(G;R`WGt7wfAFN
      z@n@XZ=-LM&5U>^O+RsCJ{1(cNb?rmA=xxd(5V{$McU+yo8fb5IIrfVPM?Pts%>MMz
      z`~@9mB;n*Cqq95qmjsRducq?HeVL>4QqVH9!-#K~hxSoP<2k&PE#F8La5hIBsHfDj
      zpQ-!A_Ftn6WoQ6qc|Gm|Cc&O*&cb#|<<bWo{eoQfgak(`d>(<?j-pA!j*Hl6VF#4(
      z+et+#a}NgCqSt)T3>{vVK>$P6tx$ekKphrEgKMA~QK8jzcyotU=f-<MzXk<<s1npp
      zP^N=Vae#!r!CxMg(ngN`#z#RLIRILvh$2-fLbz0lxL1`TjuvT*@7z_2z;~4*GC-w>
      zJ5VX&3RH@)1(hOlL#2q&P$}X;REoF}l_LB@r8uFgw694KTc_SnH7Nou)H?z*REltW
      zq(lR0ka{n{YTzwXWic9(^ENc+ZCK75LeNxy#O<jR_vtFdmAy(4n2vNKM^vg5kp?P7
      zoB>jcnOLQWW>6{4JSs)Vf=cnxfJ*Vn0Mhw@5nmhNc>&&P6&;95OAgS~l0$Uif&)~s
      zpQeS`8720Mbm4xQRno~j?CqyHxX;n|DgL<mBRIX0!8JnH4-Q$Hs~B~BXC5MuBU
      zH;JWQOqU=f4pB7IZUX7KZeq!EwCEUh!gPxll*A6u<@;$7%9gfKb?hNZnQVNQ$}Wnx
      z(TY||awivAPM^jo7BMuv!ARuvBF8DDZcY)M;uHgt-gK7Jht6^OMj)CPK!o^41JR8J
      zqDdIEA%MtL5H%Puav@4{%T7)JQbSCG)X*NJApmJ8KpF;+h6AKCsLVN&#ycY;AWaHD
      zx{{hSNMa^HVu^UvOn;6}o5z<FwbAM^F}p0!E{hidDz^w28e8}v)n)R~XjWmYdc<?I
      zKFn@dvZO4pu=r8BD3ezZdyY2p<HjY`WqGZ1Hu{as#KXp$!|WFHi*vuOnK*a3gCE<_
      zFMf!&FUaI&;s@xSF;0OKu6ZKj-N~7V?>Qz>C+B?X;Y<c&Orc_DDxL0JNTp5%UEoZk
      z3THZ9?#!hsXFgr)TuhssOK7`uDeZO^E4<9sYY*`9DD42B!`ndj(@x|p%(I>DL(WFT
      z(d{Vh4&BfTpBOxVvOGk6-AoT67l*xR(?hfi?9qvBPlMf0P!l5(eG2ary|Ln@g>Cfk
      z4$-w}4^WQ(?!q6lD9-kX?b7c>3Nry}k=d{WMGbBAST)iosuzrZ5X`&)+2SSp>4{bv
      z9PPpN_ftXPPOz}8s`JCPB_(LOlt=NqY;L2^@27pOv?eI=Gh58G&-}Y-nU*Iv?W{tx
      zt|#=gC2jN^{tkrV{uzXt;mR4JUQdIaCJ0tDxVVYVbz1QCQWL1!LKh*O<*cI1oYi!t
      zvzAsl>u7^>72WJyL$^EE(l%!!J%Ic!=Q?`Cxq;f8P4pttmymu5>Fdso^d09W`h~NZ
      ze(l^se{#0aC(a#+54lt1J6lCJ<a;=Gi9%<)IK{a~amq+gn?xU<Q;^e~!euWgPMHn`
      zaY%8>YY=#y>%?D07+xsF2o@0?0Jfld4v*7mHM0V%E}sty%zFXqSxxPWEh&7Mh9K9G
      z$f5WNrVq2nqvXU|DQ36P7hCCE6n5A>NAe=wpNVwm0lDhIaKw;AQ?NOb^B{!p5gO>U
      zLeV@<)0`(jlE-N_(n^$7JA3ev(_WC~NxIE>inb!%hIALo9&w%pNuE<^?XFQ`(CX4Y
      zdIczi(ZFAuXvEROXv2t`4v1cDqoWl_S$8wy^k&2xHX(vgzZaB(@4r&Y@b9Ouwo)gP
      z{R)?Vl?N$pqpyYQ833bzoWoep5v=D`8sfYLwmV8^JFnAu&Koq@`3lze)d;-P19+z>
      zp~p#;zD3_Q@QwhqOicF>3G8%lg=#C#<<9riNP6FL={xi`+6w*_!}Q;3)_ZnI=>dAD
      z^kvHKprIwDM<}}=vfD;Kz~7JX_Y?g6tOSpr@23wLC;0oYjeZlZtOOs+kn>Z@bKWEA
      zypQeS=hV~r1r<5Jq(08CsK4`T2-$CFl=HjD>dy9=9AB$3bnvmz9|Gu>8R!a21W(&W
      zf5hL%`1>pV{=tPyLjd%4`Bwn&cS<<_pnT__)Y<u8$~ecV7q%VVz%>gL29p+=Nn`wJ
      zh(-y5fb~}X9bRS|eX^6}A%x|Y91!-?C9(a2H<mfJJp<SfuHN0j`@(Azl8ZX+SL_Uy
      z)<xiM7Lt-fqRWC3aX@t2FM6P^M^{mR|F?-={GuBdn{4kk(FX>^G1b2RetH!%zWS^<
      zy-l$8#hd8SCWdnsF?S=8GBp;piL)*?`G!dTRn8w0qt#$zL;jeL0911EiIba8UENO9
      z)9p;BxLxUVw;PRcyVDrA2TgW+(loahEp!WMnOj6nZZU0ePoZ1gKD6EKOAopIsMYOH
      zUvN*OFS-NhO?O~~-@aqe9OEy348N5s{sRw&bW@D#j)-&=K}USWVmhufj6RB&dQ=-y
      zde!5RG=wEsJD0o~mH-3e!|4>8xTDE&$50n{92L0dP=EJaDs|7JGIv4*j8Op?_$J9P
      zM+2mv<xMe1S23ZhnABBFJ}550luPY4F|DMln0Zjl-Y+geZlTIuiri%?w*<MRDp!qM
      zjmj-YZpA@Sw_h|O*Q9bS$gMso*6tTqBX^C;ZA9*RmD_~eO)9q;xmyp4+xCmC$bCkQ
      zw;k-U{TSt=;2u-pTfyR9-{cLfVX-sJ-X9`qHLMMCrvgdkV2}$bANfx1MPQO?)X$wx
      zgWZ`x)+{>DokJJ8^JuO+pDuGRq2=xZs&yAq1JWjU5nb(G3WixsHz2*qy^OZHOKGQD
      zMZ4W<`n+31ZSFF9$z4uwxV7|_yCQ=8ka_T(li`6wh6iRr^05{?cJkwXRs?hSF@qn|
      zxNI{&Ht}O4Kd$D-a(-0vV+lVl;m4)?*d8ui?Kkd~l;<{K;mwFdZ=r7PYH-OK>g}$h
      zQ{DA6(7lR=xK~3;uAx!xwKUG%NE6)aXo`D1UF2?}neL5|h0F@L2w$(6g?!d5WEv}s
      z2loq)(}(wq$2fg_zu3#^Q~R|Ur**@#%wWhq)+WASvU}Ua0h5KsI20~IZ8Gj{<hr+m
      zYIlHYcTyjB8(91^pxRvkb~{zLcSnGn766Hl&J2*hFhE`(&T%-L`HLnCc)nz^UYmFg
      zStFfBC%%pnBb`PiqD1sKN-#Nmz4wO6VijLzdi3VUUVc2r4=-Gqvc=u|Dd|3d==le!
      zulo>qaW|dmK1}1?N1?Dj2lThn#qJZd)ZIfX-6z3^Pth88A9(R;y3Tzjvg+&oRdZas
      zS@oH)k6FMIhs2w#^S>Hu%s5xLFGL1N1Op&Y{KNsi#shq#{Q$3aH~_-pPaNQzJixcx
      z5Ad}P2S613i37aF1H9dSfT&RrEP=nDGy~iN9PlY&WLNRsgW{bd;)lu%vP%z&A9oe+
      zM~Y%x1YZ65H0FW92gQdWt&~CFz6&w>2{xGbsMviU^!fn$<L3~g_i2FpOK{|`K)Vms
      zg8Jw=4N5&K5x*0^2SlZm5PuMV1UJU`yGaA%Vne4wo>*XFPHkj<%$XQxLQu5M|04wA
      zBkJsaOd0pjV4uHG59E8fe~sYNHw}dNNc_o6H4#&@O~{9LHO=$lV~g4$HDRk!w1JT_
      zi$EXWsuBN)j2F}69TNXs(D~Zq`2PX%N&E4%$KhX(cN`!omxqYKV8MZbR`bf+EU}Y3
      zo#Uf3TmL&L_KeOpk1xKT@@(E9*{Usz=?rX~Ghw)jOWQ1$)1B(9%?S*6PB!RdOPiHn
      zQksbsw^^M{nhCM2gfr2LyhI^&PQWRZ=uJh5KGZ+amj)*KQAwgdotYR!=OjvLa$+#e
      zO$?!>NVAEdv@&r9tx9MkKplT*b%4XwR!^${YsCr`HZ2_6W~(ES4F}UCb$E_ZjN^C>
      zMy|xs7}hA=XAr>a6!Dny4y;7koJ`)(vN*dIxK#UM=Ga5aaF}2sqdK+(Zy9F?c^M~G
      z-AYa-hVE`AUY2O3KAA-EL)4?BR2`o)33Qo(ziDk&uT2S&No3qdkN<d6-tkP{{l~W#
      z-$&g|OW1co!w_xL@q-tXm`I7l`S{@r_!SaUfv$3(>LMDSsGyk%Xy?QXTAY|gHHq0&
      zkMv5EU4`~HBrc(w6AS3h#6tQk(w&J#iVYi;$ML=Zh4%$0ywCU=fE?p%NYH1j-Z%)c
      zAF|0h1v&OLTxPNNFpkejZHxVf4!m;bnA}V%wb+;F(p);-VsBys=tpF;LI3kWz6AQ;
      z7?O#N7z5N{-C(!oUFL*W<^u6scfv+d4BLMP^#z79u>u^_*7IXCKQ{1VOU7-pPXE-}
      z(vmi7=$J%FCe~(+7^7I9vt?tFB}D}ZjG8R)3Y>zxf;f*gM$-avGTv0G;)!|+uON>b
      zO~D&r_xoHJ66-R!W+-t5#S?W@kf;YwH`3_DmEh+_nwnTemnK$I71El-I;u;or<TN3
      zbZz2lx;?Rhwjte~xRxGGY^2ALem-#nJ)gLVUP;_cuOWRsu~`vsy+&R@yf*^ky%7-a
      z4gQrBr7+*Hrh@={CVj)20f#7Sf;X(0$i?x$SFBmcIXJIAZOz6B*2Rx`EVkxYb3w8e
      znrF?k=7U(*B2MLE>k=?cjH93p8LtK$OvbGRxOf3!__<j<H>l^90!Nke6BNS}B*SwH
      zlXY+b&}ZAWQxFI8nc$5FtpyjC6c%R^ZPwy4&*Uo0k_8U@OY1Wp9891-@|!bB<S|vG
      zob#qUq{c#ah$kKbHFl9q?8XOc4^z*?Bh)+bD74P!K%K{EI0SZd;&B?2c!I_z_RzS*
      z=jq(UUb+C~7bTved5L{=dEyzmBJnJ(NjwLU+7EGRi%?=~K#8pi|E!6&TGhZI?+RNL
      z{&~CHs&L4Z*sAc#l-O!z6(u;w)PYAAIi?OfLbocKB;d>$Yt?{?9$ijnSj&)ON+70M
      zQvxo)Jk_(PAO^#!K*>{SK^{vB9-E)HmgiB3l@#+u;x)=k9EA=(rd9$|9`h9iD=7+i
      zswm*8qF^OO3VvQmQNUA03RbunEd-itxU8$eVJU1wLraIWSu0C2d2QB}V-f|JR~95n
      z3!FA<)iVW<#q}UJc!KM%ElX;tzhMV8nL@ZJsm5<`(-@g?cTiD*eA&8n2X*Ue-G*b#
      znEZnLqvRCikCCMX65CWJX+1=Rr4VZHkFPesLkF!pT4@)`b4uH+?X7gHKgGRfko*4K
      zINduKM@|2b-}96Zg4hzCa&v5n4@ED(ceDnOgp_)aFI*DufKuP5{KOByzdxj2i64P#
      zKcRk!_h?AsXEZ7C0ZmW*oE9a1MU{zPLc4rO%M-tbcKIzeC4Nt96Mvu$i9gcyiI3=3
      z<hLe1rpFS0qh}I-rxz0cpd*QYLc9DgeLe9BeG7T~3I~1YS@b8*roVeJI_~9(xEIH#
      zijGJl?c~KocP}A^cuB=M_ktTiVV`rvP@i*9rrp-4wH~$}VXi}t<pP|89P1@^WDZqw
      zftwZNnDfDj$Z2hqFZx=KTAzb9>L;Z27<za#L<p-Dxg<@eORUFn=_9F%64n#Q<%7?!
      zw)Uv97>APw5`v%}@M~G&9z2Oo!5_;hmvO$YNlRmUi+7NN@nbs2PE2brYW1B<7w+Np
      zqCVa!)X(cngS}G~7E1K!J{IuxDX*PpC{ycXO;D!RWMjOllZJ~g$k?xVW=Bxj?co{;
      zxXz{$Zw!s}&iOCk!q*f=a+iQId>Q$H7RJx-pdYcd^N!lFl?}KYEUvE(?m;^rmz?j7
      zzk2*lDR3cp@g-#m&TK};<ID!P8af@BEuG@kWwMpls&;uNwBu^s5IxXtrfL_AhYotY
      z_U#7dwhQLXZC46A%*!M*@}TupC~-CHx%FmI+M7ceZy^<Xi)fs88BO*sr|I4jy4b6v
      zN^dDudx$*pvb5T(p^e@${1(r0y3JcbcY9aRgI*my?yaO}yn1@hyOLh?n&_z4OyBTY
      z=pAnjz3;74wE3s<5`Pfz%m=>Y;HYIJ2RVNq|3L8(^XmtezmI=l_Hiy_d2!&g`-a-l
      zU0ivd!oO+-$ypiX?hbM<;u2TaPRAa3E82Omp8ec|LGCDe=-P|H4}8&-q>Yd_oqIgU
      zeFHP=vP#G~UqeZ{CCEJ!<laHKu8r{*V4B-v6R}S~?bxZ(HtX3j31%zaFaxfFvxyGl
      z^>T>e5I%q`0rTOUk%=$KtIp)*EeWz22UX8;lj@*JENsGA(<JBuh0Fu#R;KeMrgL7L
      zE5j~$%~P%87>L_)El-a>es8rd;JHorpf!)JTXQ?z$L}4?-~eJhARxr}F#yIh=c)2=
      zMQR9#;q}2rqnO{wV8%28b|Q_`NUh@06EUb-F)D-k^pe!bs*)ERohKK)(OKgDIy6qz
      zh|wV;h;TIO9X&Qzgvir)LhoQa4P1a1wd7WMyM3QHBTu0_#F=4~6G$Dvt*8(H989VC
      z>x3m}Y@@SAi5kT$qCFuxWYJ)Je@SR%5Ui<P02>&tD1X;!LvRIow^H1@jrx0cV%OP5
      z7kGEk4DW7Q;oVD{yq(ZK56}bNE_&K~gpPQhqgT9EdeeJ?e&p@NkJaoG!h2Q}c+ZKx
      zaKnxF4vHz>3!=(9ENZ-$M7?)J+~U0=9`jxkPkG108{U`2&%Li&<bB<8y>D6t-dolg
      z-gm5#-gm8W-aFPb?+4aA?}t`{_pWuD_nx)a`@lNp{lfaX_o4M`@3*$&ePri*e^Oem
      zMoYG@<?NKN<?NKN<xs}907M>Ttd*eUkYl|A`v5uCEU*udW8DG!06nyQ5Vu|H0Csym
      zVB&*Rtxv>SwC0eSJzAfzy_jM)*$%9>5+Add!bNfK7_Y!PMlNnn#(1R#9xBaUcvD38
      zuys(5zcTzSfxNR+;tzfSKKaApf$L4B26Bo9w`<8{Mazt8>33I!rR`{~Jj_X)&5|x9
      zlL_jMAGqq1%%{_mh%-s1X?U^=%}i#fI@z6;C417EWC5*D7SbKbBHEVhO^+n|(Gy8+
      zmFQ#s9v}C#$HzVG@o|qbgL{-2+#_djkDS3hat8P4VQ^268r=7xPRi!;Km~mHtf^oP
      z#~B9aLwy6)W*s!%B<oO_c05@xjfoe;5t~tlLm)ye;690|_iBFLSY4Jt>;_k;_ifc>
      zo+i(V2z5Bm_6EnpoR@J*;Bny#IP2v$>y;(&&?GWy?2XkJt(7X^i;1>Sg`+ZFP<X7(
      zdIR&cQooFwQ@8}cc^OxOgBIE>f@h*w->ZyCmKG${rr~5<wk(t<tf)8>ynY2fgUIVQ
      za$mol`}%e$`zsLQLCIm1NDiki$up=hIg<J%&!R!eG8&y6MdiuSv^+TuJa7)(oE%TL
      zCeNe$lN0En<Rp3~c|JXtynv1-r_#5R74*a8bb3EIgFZ~oq`xHRig<FK$Ry{B{>h8Q
      znaN9(yejX480qtj80qs2%6xl%r0*IMrTkl&kk>AvAOE@~<h4)~sL+%+EcPynqZ}F}
      zl8U2T1a|#HaZ~~_^`YV@kKU&)ihKA>i|?R}4Bug7_=u8WWpeVi3dGMU_5(LSzv#QF
      zPys4WFtfyV(fCZ_J{qmX6WpY>9#8EoTGyK`hxG#6gLxUxY}KvQMfc+EGuTaZJE(m~
      zu)nXyl)=G!0rp(KFi#a0z*Q8{;##t6A=xV^m8_%Q$(3|QvYyUDdUmpjCMH{GdU6$A
      zo?HXTUQ26}2qQ^upgWV-(4)y~>G|Y!^u^@$ib`6tkN8xgBR-Yrh)*Ttbg&R1=S%jH
      zK(dbnl6}NTcAQ>N^6WyQ9=6^AH50gX-)wy!IhJgEUS?>s&d_FG$FzY{7=a)mZTMZ$
      zMn&-`+T`WZCdN)5W&C)I$*7^>;~btkrVg65Qa7JA9km2)6n!|wK-#QoM+)VNPTmDl
      zYzHas0VzHUQrrttd={kG2~yk-Qak`sJOong0x2G$TaurHf_;o0Pd-jhC7+0pVP8Oo
      zeE}Kv1!UM4kO6m0N>~V?CBA~)7m#6JK!zs*GHeUTuqGe_KHoD6c9JH8Sggt5W0}L?
      zqUcv)aV#^TXvBBX0TzvCBc`Ci7py=Q1mEt2*3&PFw{uLyh<T;yU^*J>NO$}fW@;#L
      z%92%L7f?L_K#QXf3;b~%g6j*N-;NuBPt*ay02XNy7-)vE%(B_wHntkZ(FR&Orcu7#
      z<O^V$!`PKyga&?zh9DiDJVIlVUjoy-LJO0x(yHW9+K@a(cO_p3qkNg#l5f)2l3$@;
      zCci;{NPbhKlHU^DliwC+B;OXJliwBdlkbR2liv>+N-XvnN-Xvn3T3|bUF<Uy$_zsx
      zXBY}OvtuKtckH;h*f3Ogae-l|;bKU@Q25OA(;4a{<k{(fp$s~KV1rp-#+6mgf*vui
      zjVAW#W=wHIx3DAFNq1yD9VNK0Ce)CuEA%9W7yWTmIgeo!NtB^Z05@m+jseSQ5`w_C
      zyjiv}>pRp!nxQ@fL;V^I^&2qMZ^2N%0Ym*B4E0Aa)JI^bKY^kC42Jp(80xQJsK0}u
      z{sD&iC;bxE)gPn~_z4@)UE25s%eWXV9Wh@f#HG^v|HM#&ziibEMc;>Mz%Gk=brbf|
      zZgr*eVd?YM4=qCA+b7tfXK?fhtFEFE2dtk=N2v;?<1lLN0ANo5$9402;ShHDEB%Jc
      z0EE-=yJk;Z2n=~zj}u;%syk*`L<w0;U1eV?l&8`lc^XZXgJ_;Cp-UvL7v(ToCiT^#
      zcH`Ci;z#w?&tS5!bE{t6d|7a^jJII0;IJb26DPAyZo@7<bz>NM<y1s~9IptWZ))>`
      zq4Uhpf`2624D&XIWk0-*D(v8<*1wQ#R*}%Hq%RobBZ_dG`2}A_#yP+_e^Xp!;+fd)
      z<L_niLTEHHrjaM7Q)fAoddazTs+<ReTuf)n1vE}Bq;v6JE-zCM>pOvp0OE=O85K(J
      z@PaFp-mzh$jxd*mK(M-d&BL$rpQ@0?cLG1Ker?t`3k<;|O%E;swGf1C{ie<O-QbXB
      z9%EA0Q@(6aVD!<=12EF+z``_1TYm&4aPMz@Wcioz!!QlkffClo;h>rl+V7^L9eql~
      ztiOme4Qw}KFkaPI?tB!tjz~&B$Dt_J$8FYM8Q#Y@8sGZZZnHiqJxb})HXHZpZfOkf
      zC8hhVk3+*<1r<pAM!dX{isj98n%qLe<?VEqypzVrtr4ae8?0@t9mBT_a8=uRaNFrG
      z79N99%`!BRnfoP#-vT<CHLavjf2A<k=2v_0O9$=v;Frd?QdfR2HZfguHrayDyR%-}
      zef(D;Z2kCpN$!MP+)pWqSQ+^s^^*_LK)DO>Jwy}a!wNnv58>wn6BUv16%3teOX>z>
      zorWtQz7vL9+s+T7FV+KQM&t-gJ?9uM&CRD2I9PGXOP#zWhdt)<Id&<-KZl_Q{!aMV
      zLVh0KTkNGSavyN`G!2%|&>8Xz5!{V1xGSb^a1WfWaEC7!4es6s=HNJ>*?cU7vPl&I
      ze~F^|5aY1d2CmL5DJ&^&vpcuh-C|41VwqUsE{fZbvO<)0E6dB|744>ECRX$a<rVMM
      zxD@f-$KQ-x2@GXdgZv^y>Iihq%hXf8LIdQhfb}&RCXdo6d5k8>*J(29X38%s*vD(A
      z0=myOcm<@2yDhj=#~Qp2pi}G~%5EG*DZ3|f;0ONx+^q4Nz&&3jPB3fq@G%50O&xSO
      zdLe-Ywc?WrULoT;6B~*U5Z#Ke*tq~*ibGAI0>tF^5dMi%fczm9$RE)u@?GjLe@a8;
      zdtj0Gp(%c@mZCpfm=G*wLa>wxb^(C3-~+JjUW!FV1i5p`GG#?5D^$ztPlYBI<4>Q>
      z@}jD>B?M6m^hXg+@C6#OuS_MDqT&Ec=V3TjJ67b<M2(S;Uy4Gx)-qPG49kqcJ@hhS
      zc5mxL15_|ttQ|!8sgoY<6!Igw$}lQRi*>?iy&~&75w;lr=9z(L0Y>04lyggc*+CMt
      zg?_dB@V3aAQ$u~I?tt?LQZj!Kb;~b}Oj8`7px7wd82@IGnI-^Lgkxzmj*g5G0o5Oa
      zzuz}w90VbFmm5<Iek|gkjJ%S<qBi?<xP$VJQfCgVc-}6>KjeUr8_1+`y6|J$l01B#
      zgOU*GO3CJ5M0S1!dHK_*Oa64~kw1e@%b!W3@@FZS^gcEwSl5_<v}2600T%mA#i2Gn
      zL1RBg3@6^<=9az-?n?O6I_zWi$bc`O0-Leejl-8M)-jGTnKro1K5M)Zwt|w9LJotn
      z%dlA-!#dDpQ%v}gE{As?{|Q%w>rfJxznJp!FULBTP&$7pW%8@2cYZb2QbhytJ}SRP
      ztw+Z{jSJQ@&aB779?X#&7T_OZ*3*SfQ)&ce82{>krhwpoav=fOmuvJx-6{0vakRiT
      ze%!buj_;s2nxGqh2lc!?2EV?65Dor1iu+v2pFkbukECuwNJpD}&eAPq@mA`|jE3s6
      zF^Gg3g5#4t0Ua{&aGgq7=C39ve+|~S4(nS_r{-TxBlEANvH2V6y!`8EX8tBxn13T>
      z^KVw`y;Q>*tao`pzvTh_maBVZ=Br8*n~=uWcl?P|9=sVBDlb(WpA!zTC*wBR!ACJk
      zdkP|2T;Sz`fTs7NHE*>enWir*n({8u6VxmQai@Z2FDqicY_?U7o`aRe<>4CD=9+&O
      zXn8ki`B|*<Uhw1&to2^%i}zvq_o;R1%{B0}k@l|%a9)X_qcj#2-x=dagpB;`Hk;a@
      z63Fz0V`4?c%Zp;w{4#AhLfG^NZ|1`_d<7RZ0X1mYQ}g!%v?nP)|0#&flhhUO-SeNO
      z0r}4=(DeQ^C_wq30Of=18DKBgG=rcsdEa;NZ!+j_(YjMtdnU?&ME;?q{{&p~eO`y)
      zehJ{d0&rgixUT`+R{`!T0QVTcedFJPi@RI{E{CbL2Y0pxmw)!efIA5(Zxn3GU)^5G
      zy{)Fxd&P<S4LTWyjPbukWCmOe#lZviI7HViK*W=Mz@CF}Sg~<%;X!*|#PHQR`KKiF
      z--GP`EHYJ(fDk<lAtd;B0k|8+uZ`aj`8QK->UgT(W2!%3sz09eR15#@RGT}V>Jv<L
      zoH7Uo3OCzNT^0Wbs99AxR>=(4nY9c5AvUkgUQ|&UQb(N`QXZvKIw(aSwmKWMfdQ02
      zu|;s1Z&!;iutLYM@2erH`kdgy(q)C6oL!hsS2VZTm$%ZK!gx;6(pEZ;ZwOQXt!c;}
      z=T3!q@TYH`Z5+f3T|cI=&CcR8R?`q0Lv2wWf5wV=mT`~V$>wsuND(HR;CDXkPnL%!
      z3ea#ifM~wDYd>3P`d<&RrBruvQ#~j@)swoUdQs0*Aq_|sQE94}MyLAH#8f{jPn}BB
      zQ~haC>NLuttTr`(no_4zGt$+m61pl?N*hx{=*HAgx+^t|?oAD+$5Lm~zSKx+OPxiB
      zQf2f;Y7~7NW#3JmP4A{g(@&88EHzH?fZoO44><dMdnII%KX?71;&BU~YUkVaN@l+s
      z<YG4BE(~9+gIF<N3^9Z{3=P;YPNRoC3uzeliaynCwhARfeM^W4WjdrL0})dwfiyog
      z6^JOO{;7*-aH>K9srhI~0OSxG+ZLve+4yamPXS}?e+tGtfH5Cn%mWyg0E`6yV-di(
      z^xuGSRRG2cgN*^a5nO%p^Yac#sVv1)%cyf|ITfc?&}peFBJ&OimOmg^{<R&?yYWAr
      zw*~XA#=L7V?>fx8{@=`tpX$+Q7sU`>wj#HH#_%0!w~)$g$g9&Q9rdOzAGm%C7w4(?
      zufgai@W<lMu_XiiG?Q11Hmw8)A~G?>SnwI<;R|85V-QlPzMR&cE3YII2d;ILVmybp
      zM)1XF>Q?HJ+CoE9w^K!G8_iCAhUTU2hCuCrFzuv<)cv$R^#EO$dXR2S?NSTZrs|de
      z;ah@zcS~UEY%xO7gIbLHcPRe7GVT7Y#a_Gv9LlCDe*4Ivii3VRoV2k7ej@t@m;|vM
      zI2~YF_KjGp%5*Ms3S-bntmaN<l$I1_9GroHIE6vHqPcp-$MCJxKevs#V+h-<N1GGO
      zzSIj~^25|S^&*{`dWi<6zDT1|M`#Mtiqw~Ymse;7(v_*#6fU&c*BIcUF~CKmI%2Zu
      zH!7^~?%HT?hD8#?I+xqG00VirV6+vc;$T%j*PCXmBPRZRUH<(eBf)db2GezuI9_<a
      z2|K65vFg2rp;f0M|57+?r@lo_>f7Miw<5gSH2|}#&7@!zfgfZt6U;UfblD_?(MgAQ
      zu@B;e@!!SxKcQ6Wr_?F+US#|(!T4Q*@$tJ;X8c`PIG;sEz&5w99<R*#8_Hrud<X&2
      zc2TcP>_Iq&3ONYgcsuyx?C6<anTDx9Kpy{y`9Gq9)Sp1AkHNlwreVkrPwDSqwBGjJ
      zE|@bo?~hQBSzx}wiV1B>QGa!K=F<m$)5<`53t(kvPiJU12GABqz}p2cn}$6KqEc09
      zghr$tN~K*YPABNJwBGSGSf>YQIz0gE^Z=~B0ayhASooDc1J-H~i8-mi-cIZ-*h2DR
      zdzmNBDT13UD2AmFvW5CdkaQ1{>7Ib87j;b+Qjc^I^-C8k@@ZSKe*jm1n~#_Hbr~24
      zcOb_G9DZNRz_1DsFbt;#lNlHUVDQVBb4~<d5I`sa2!jE_5IQA2l=`NJML;+;0O8aC
      zgicBr;Gy9khSMO3vke;dm{^$hk+Ks3UKW3wam_||?58_8-MF7Na(d%_x{=du`)OM%
      z)tV-%3Qbf~RH-ItiY8M`YgL8Ow()y(v{pLR6#2dViBwZ`xiQ?*)i=xONz^BO0S!z~
      zrQzvvIy-$KotM6dCZ(s*Md|4@Cq07}rDsxA8lTIg=TLomF0D?_qifRh>8A9>bW3^x
      zZA&kt9qC21JAElVk-j{F#Xa_&u)6ubJ@!`Qco*4YZ&QRM{^utQA#07q_w8!qv)gx$
      z*xM^gk5RXhHv66m_>Ge&E<I@PxHw|NYEG&mFP#M$mw}AS!AZ3sWpp#{YslzP5B1d>
      z0N|fGGsH_m_*gG)Ib=Vu;DG&5MQK-i*CG31<R5LbKZm!+57~S0wpYJBdC1<kpsW3)
      zd%%81mprFSo{I$~ZMvkblM@sj)I|s5LCFh;?86xLB|XR&57{r{?G=6tjr7@Y7*o2D
      z+;kIlPd8KlbPK4oiq1q@mR>_+(rall(y8h7RFS@lE<w5|y@4)IUqdU9u1s&FE7RA}
      zTBKK{uLq?zMKq+pX}WZSK}^hkHLy~~8+yb`3isQug&d;}4r!d#)7v9s#RFN1E0w|8
      z{21&}?T{aal<AHWqWxN^36vWwy;}{Fd&OYcucNtTzhQqFX%oD-`|xXAZ<1?2jPxr=
      z_aOZ$(wC8b4e4Q|U&lX>`!%HBz&~yBCem*reGBQgkOBZ3Kk*>o(6QelOQ6pF4&J*U
      SeH%+XhV;8g7bE>1S^ozGLf3%+
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU+iuf95Ixg`IthkcfV4oH76_0FtsAbD0ti})8k7POkoS$VO&mFPWjif=5fAW!
      zR0`sO58$H^vrdrGMo2+<@LtZ&oY|Q@<6pmj`~*<Jx`r7-xhwX?d&57loVKxNi(R8B
      ze9JU8)c963ZMiK)OM35W`HF@pA*CD)Td?`7W>=blhFQX5h>C;2ko(dJjHhN`xlY~k
      z1L;VQFdK9%KVKm{s!twp$L;&F=Ir%@ZQ-<R=~bENq2*Y?W5ScdR7}MNA-d_dWE_Mu
      zIyA%*h#;vWjuatMPzK4m<;a))UQ>EuDF~UmYYMv|JWG{k2u4+Mgq8oeP=!-Tim*tp
      zrMK&PJ=r2G4RSJ0)^SVKv|4N=Fpo<bE)uF!R8hxeED&PCG^Ow7*9hGyYdLx1)i`ok
      z*04k<PMm^{E4a!}-wBmSSUwgnP%mM;7}07qfjn+#xK7B81{t^1aT5hDMOy~Lx6Brb
      z$JhtF%vi!L4P{oqDC6K%$BNQStmW3l2e%&(ND>x8o`1Y0A@RoTd!~GD*=##E-fpWZ
      z4neOu+(4VQ@O{Y|OON#g>uAd{ZP(`p-jPAaZRxm=2khBX?eokN?Y7cZZcJMt)n930
      zjr$<N-ziWkrP_gi5;Oe8kzn*Ruhx05kVL8c6?*9#&VC7P(h3Vtl=nwuc(1dMLeJqm
      z&x8xe4q0kEE0%QW5c+q_9b)ka*N#v;N%jdTd=AO71BW3QyJ8gv(?s~v>XH@Q<~hTw
      Tc~;jQK2gCHa+k*_qxb#*&SF)v
      
      literal 0
      HcmV?d00001
      
      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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
      Jb0x=|`5#}(_GSP8
      
      literal 0
      HcmV?d00001
      
      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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
      VOW4JRjNum0MF{VrEXc+|{tIYLQJnw)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~7(G+AtSzHlv>;+dxmk*^h=K|QmCB`9)Of+fC%5f@OO{>JZUKLbZ~CN9
      zk|+i*7>!T<8~=duo7qh%NKDgob}rxLob!D%zy5sM1#l5}b%Yp(SIu>E(<p6N&WiEe
      zHkXZ@S+erRv>YFrIa@r+^vt^Xa%tXl3brWf&={JemtmXab2qmt@}7=*hSO@--0%#s
      zE*#HLZdt432}cwe>b+-Hsb`p>H(Nu}335nTj^#};BoZ}w^e-`JX}2IEU^vR5<46>B
      zXyk~XiJ>kb4H~nSBkq*fa-yi{F|=geylF3)MN85RHZ=*BVWgJC`}85)4a-umIg=6<
      z7|!_MjRU&ONQox;m!gFABuBeM*jN<L$;-<Mvyc|H&A<dhhr)2UKSM+%%eo~mf-^X)
      zqm!Y#27Nisp^G8xNzx1__7PoBDojMtgFYR-q)~N5|CHlA5=3@Ic=z3nv|DyOrEx}j
      zB{>G<=`lJ@yLNfaQ3mp8kYfl2Lo*#c5H>ZB<vNR0HKN;<=--D!HqU;Wi3V!jOFBkK
      z*lJAwT5?>L2x62*>RAbsaSCEn0vY4Df~(aS0~CD+P$-EEC5g{P*%6X)4C<hQcU2=f
      z+*&4_<e0*BUou(V`^250J(0;g@oB3X%U!xywovll<d{a9K@VDkp{=T)_H1QqA1PMq
      zz%rC3zbCv5;BH7A7^42Zzlap9qW8i_;`hJ-5M=+rEf@1*){=eFT>UT%N!|=R<In|9
      z+h(aG=+5x!=YqP7x`O^;u%;$?CF$|eXdQv<{03TGMu>huG&%4AJoypFwrCYXGmZ6R
      z1H48Hja<#6IF1vvqROH*h%iZC86iy0ZF|m9wfTn9y;T8PeWM@%nd1~X$dz8M+Csgf
      zP+R{E6_OV@K=qrf>j~9b@;&%_#JAC%s!aPQE7J=*pht14vL4;RH3qdgro~^vh<Cg~
      zGN!#mZ%jM=3Y~#vJf_ucBQ+il*6rbK+}LA3q{Q8!@e{H8j6Qt9D85qDenASmSim>j
      z!*@Kz57_vrXifQm1BDup!!67ZomM=?EX_g`WsZI`RMHe(#Ce)&6oDf{@xpX|n+S)H
      O#Ug!Wf$5s!4%lBgV2Ggr
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~6#h;rlrAF_M3h>*L8UFq78P&h5@|42>m`7g__l3FTwJzfcMI}tyu^1O
      z@X1#nO%M|w`~m(b<C$qKB{AA;c6QFpxqRPu&i?%M{Re<4%tsI+Os-p7)=Sghw%s*z
      z)3KhJCCj(V=7L&Rtdb)i7sl?%ojaCWaikYPm=IGjrekr$!_vAe2N84;;`-Fu4otZv
      z-N59aqU{ILl^&rhcy9Y+SwgbdM!_5h%-F6S%n?$lwj$E2gmAuEkx>wi2t?3rpaXpZ
      zQN#!xDdo^tv|ah2wo#IvrbZYjR?C*NYI(Mz+Bgg=u!L+og<G^?)ZH)S&dScFtPm1)
      z+~y%c7L_u&^lB6*5RYJ(FxrM30w<9mbOs6|Vek;HyBc)Pz$u)G;51We%~-z`IE!<H
      zsO>LS?0`G11$nAs#srdo?p&3>qE5#JQb-ee*JQ9P9d5C#ELFF4SV1{V2wYGO{Vfjp
      zs#Du=)$OE!32t_;?dPTAsG@b~ovA`0t?OPAxU5_Z$(PFMR=^DP<Pe56!@o&KAf6^F
      z@LT3!miv(>eP0RQ!^RS0wX|g{S8HBb-nNxu{jJliC!Qb*E>C9Ou{fHWZSc4@W}L-h
      zqWpG(Vlg#I{J(_Rj>6!zhpj6J@dFr{iLVfuZ|MEPRtWvPcCioOVSrbm_Xdt)kS)S7
      z3^g)*<_cjxyPw&E*u(LCjC{mG(-_^wbkjIL+uUa68r#IkJ}&Me)?!XQIRFu77{DvU
      z@tXVl23fqtJl>&*_ZnEHUc3Q}VKAj>hL*%QuHqU~$s&R4yi-ElXu_W6tco}tl&bUn
      lpwkZ3FPmwpk(O}t|0zEGGernFU3&(z{8f!0{)y&5zX9}S2krm>
      
      literal 0
      HcmV?d00001
      
      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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
      HixB?<x><tp
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E&vz456#nis>9pxs(o(=EmI4Kmlro?w(qI)LNNQ4kv;-(WbTWCigOiy$nWVV!
      zxOL+>E?nTkt!vN0a_YiAz(304eQ%OBqs=*CG4IXX`QE$t`|gjw|M~MT02lD34vld6
      znbo$Qo6Rl9TQ@gd>npQnH67c$Cf8M~=8Aiz+1r7?DT46Z;)dm|i<_2LcSWEhK}gHv
      zrpspYR_&RvLmk6}<H}kSme(}nXUk4A6rKnO!{LV0oIOuCRUROO0w1{Icuu%T$YuvR
      zk*g9CMZYdaL3qP}j*%3GaKOMQ(uAR`1RN+ko>*=*Y9df%36o{tw%n=}IFfwFn2^B|
      z3WGS_Uo9puz8RB|a55rd?kCjsw(!D2uA0J|cuPlyFx^*Fg*EUtjxwQj5q2eCwi<#k
      zmCdQJqb#k20cW}}f@wms!Rojv%;1EM<FRB$Fasws%gT#yT9(WF4|M|W$#)^QHj2~8
      z>NvxM2FRp=9P;ctl=5<PF-ez{-h~v-;+&3o&PMNz(O&~5xNIhv=!$T;<Q(6tNFsz2
      z9je`Wmem%=6vpr_F6wx%qi27lf%j#ZjN7iTg567GWS0zlh|BzoBPjZAtI>6T`akX!
      zMN?7g!Ep!$$?gir+skf$v~;*=;A4D37-5GUrZfFrDFi#YhEH`A2}k=lQ8)wFaf2|%
      zH{bQQihj!rRcn-_PB#sdutYf06ya6R-thNyD0y}9ock+V%2g$_Y@i~chZtHGR()46
      z1(d<uGH_eE+EcCLO%rXxOjM%%JAv8D_K8Y*^8W?RRT}tP?6!MX|IEr+V*9SbPRGix
      zCk2s;1beVy6T9ZM#;EFX!Xr7BQiRls-wJGT!;#G~(L06D$vhH_lE?G2=vvLDkS*D5
      z_SkIZmgY3_lLV#Ha`f@YAA%-*uyu^TF7lVgdn!No2aNnHjQ`GG8YXxhW(=r;Nq#rv
      zJD)m;Dc;#34o5f80;7l7_RHKhj#SQ0zO#*EFYsgjC5)FiwT-#u`5jy!>>57U!2)3+
      zkx9huA1x#^$sJrJ{EDghp&fjtL2jRG_ze^DT4dmj4HCF4frm4R2&r}jJ(x*EShcfh
      zkI|CkLRBQ`KE~-G&(k#=qenbQ9^(={;XbiYAseey$5YyXAO|jejW#v#9eMbH0{lcx
      zyr8yHWievjQH3?Y9o%JIlK2@bSY>50_#XFAW!2Ba!F_&9pvdbq9w3<pXX0U`BTr9_
      gQLK7??iJSdV(!g?%#?=5YJGyIyvsZipZx;bzu*`MeE<Le
      
      literal 0
      HcmV?d00001
      
      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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
      MkHU<d%wpvI7a-k4umAu6
      
      literal 0
      HcmV?d00001
      
      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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
      AD*ylh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fvg|6kVq+B!u7vxd<vEc!5@lfEToQ1ym5Qaw+1A6UqVOq)ko3#Sic!`~ZE{
      z8K;ag<M`}HIqsdLr4i7Fp6qnr)?RC${QCX<2Y^AmP!JQi_{Q8cw~f-4RaiHQwz+1k
      zm?bM`JmhmhZhH@0X)aDGNC@=&FLrTKK+REtC)ph7o37268gueRryvVnx<BIZ+g6>6
      zlWBp(n6oN12sG%>&?rzpY85Q+u0Xu6KPzx_+A7G|jr@vq7t9q~3N%kUIn&OXuEp=+
      zpNSl`6gU}aSA#=C91YaXdu^2jqHqr<gYeY{Qwj`6lRRR~n6PDj|CGKfYssxN&()@*
      z9VZ3!b?H?{7wGMaQsXC0u@2Rsw1Q57)(Ep4z(Q&0z-b+4&?V4Fm6@d_*CYyvwwLVf
      z)^U!#$H>c`dGDPqmmGIhL9f8M+NyqUjw#C3jBQ#42Ctz97g&>v0$u-@{bhevL7zb9
      zzKS)aE+NUKQUYiGQHu3WNaB>LMTGPLR>&4;k2rnOm=jX#I1QU|ouYKTcNtf%S=$0F
      zA=8F!(&o>5E?t1MiXqzI3Y!8)iec8+Yl@;R>kV)kE7B~Kj7rVGJF)4Dp4D&zBMNR3
      zK|K87u{v(yD(!L&x>++XRS;y=4y99ZN1$n|R;mWtpL;s);{kb?gz9dPf)NsYhW=U~
      z4P%&4FfMR*pEl7@9gpxhSfp_$x4}EjN*%DF6?eK3lX$9NN}yw3@k)@6Y0S_D)7ay3
      z&D^lPImhur9R*Gw)S#j=U!7+<PN0RY=Q`#vFQAm9$ID3za=;$>caE1RCN~ATeS!`b
      zg}B$|oeei9A6fieY5D6*IKXq!9il5mpHZL=4fLz0cZJ@D5F-mvcOjN{pnfJh2Axih
      z014hiryj)M2#(SlHAEwwoIgxYj;l-V;Mf;3f@F=Jz$g;9S5u%4$I(px3+5v%@Sb8A
      z*l@Cp)}QE@xm?Dn59p%D*$-&iMbC07v4iuUeJdVVmzGmI=-<QINoYYTshA;z&(MYp
      zx{2x}7X9|!L5r|GqrQwQ1VBZKW*Q){2^hE<LShfk6mK5fYZ1`#s%DyaSS~^3u7#;3
      zYQ&Qp;WSIBGOjn@{s`SSMn9oFnM{7g-7+42!xMorX3NOz5!XiA05&1ZQ~3fq@s{wF
      W{I+dD>FN{)7HB@knx&i=mi_?I)X6pg
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~-%}e^7(Ew462jKfP;4pEmQq?mfoQ4PlC~-|D3o92N0j=jo8$sZm)&%;0URHF
      z@x@0wQy=V;@9m5eIx^#oFFNBN<#_Jyl3y76vb#6;`_A{B^PPM1_dmb=4&WUWB4`n~
      zx~=c(`^n;-VQnT0roNHP>O~`$oK(+Mx$jOJ(#)^TL=Y0V^t#}+8G-O^!!q2v0<A-d
      zj6i70&dV5D(XOElVS$r#h9wtDJ6Y+h>RD3?#OLgsZf11HQ0w5wkh^6R1rl?ws~I$y
      zV&$A8b(etSLv>j$X(ZF8+>w@>st5G8GKSnsMQ}>sTx~IL&qG%MF?6C!Q8+Eo_kZ|`
      zvt%)%HSa<o>Nl$tyIBu6J7w<_Z0mTl-gqjTYcr`B1lk2ePT*`^tr`e{Q=8IVa_oY1
      z+;5f~xnb-JoF4LZNSZq5zT!F@e=3R##H$RQ--cCmb<<Q$_BL-aqsBX+;UfA4-Y5j6
      zrnU&pVGQ_*$*k0^V)CdFe>c7Bu_VA%BqA6RIIkwqJXXUn`skq=N(=gqjADd}%Dmw!
      z2gNXkw<Aajbb4qt95ovMI-Me)lysB!>JFOoLKd^zGDn9zY^Sa_G`x%V1WqU$R74l(
      zuM^ty$gGmA62ht6#6$$Q1TGx2Q+=q06mGKw*-YxW$D58_vhq9+N5j$g+~kyP+78{x
      z19h<$E-(W(*JhSw(JnbT5*PST!&~T6Jxpqt!aX&`V%k!=5SnN5VFc3xXBw56EE#5A
      zI!e1wG|XUDAhN5QCAqjEaOJ;b@`R`}Pz-6zsWUR)plo2UL?((wfv&N<QS=(BvR0`N
      zG%RC<)6okBse~A<EqjD<tZdLZbx&hWLq-`S>e_yM44;9F*PGvTD_goFdBfe48+yrf
      ziyA)17ewGtJnaQ8H*cdlA*J|N8opMF$EbMV#VB+|*s%1RYwXG@;V5`&JI1n=xhnvv
      zVFR0VM6uoxT|o!ca_VYrlj``;7rrFT4;T-EA5zVy6>O6dhYP`t5I?3XZ`9a|=c{Q$
      zUDMr-{|RHtL+GdJTKSIxg!#oQp3ewZ<9rLg+lCJieaVj&#Q2Qy4N?u^7CQK)`9XZ2
      z;EMMLPV%V$?hsbRwjZK%{n`QIFSzhQR1FoN0N(V20sw}io4?WaID@kR)OE(FjOZc6
      z`T=?xktS<eiQ*i385>gPD99h>TjjUL&o`#d)ugsoSnw(gQtz^~Vi6uDg-eY(JfL99
      zH8jE%8ey*u{+Hk~27N3sNJZL+_54~HSK@q(KEsd0zhb<M_y541XZT*s2g`-wGCr6H
      z`Kyn9Lhm8c>ph`Y`1k<#;|pahm9hE?pU#i`g+V{+%f_fjby4*Q*_ypS(K#~u3py0c
      zNE!Jm$q9}Vctlcp^w8S9*u(&~kbpsdY~wy2V;v@*U<V~w_yIPaa`iJ;YPL6gx)o8L
      hGuNOPz4(suY*W|)d`paN3X@=tNt_V(E#|hs{ufbNGzkCz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>+foxj5IsWzo2)CB0E(i5ijW`>@3(+TBEdj_NJupJv`GeBYuTkX69vCYd5}`7
      zET8!(%bv}KY^3C6uBW?CpYECCKR<r~xQk5%9Sq|i^-ua<y!P3!w&S~|z7;R)HKP(w
      z%5j75iJWfnLPkN5A$k^ep=t=*X`mUpW(~^_&lv*ISdk%^va4K00AUTC=wj%}8Wvxz
      z@07W-p_fh05XssV-7M;kA@|;4P<$|I6gYcU<QB^WL#X0#T@Yi2C+%iSDSKzvwzwq{
      zvD5xeE(@823WhL|u8;x4P#f6ig`sboi=1Qca!2gv9KL1jF$_c--s7fDispqw!X`qv
      zK-8K<$-80Igl?LW=J5Y%7NumDHC)7yf-4Mzei@dU?n1c6pj7#mUN?n`VT@|HjvEw^
      z=;g(}RClToq>WU&3W91)bP1gZV+`X8ZZVAb1GW$;Thg~gO~VAD3~JhT__kx$t*R`f
      zG-^azD}Uq_kx($nFzWZ^c3R3dZKse~=QX?TRCpLum{Bmz(CvEAKa02v(GbTShR$Sm
      zKDEry+X!%SP4$Z5o@}i94E<iBt=m}f93JAaf=3J&{2W^OXn2CB44Pi8&I_toxh_bv
      z3BP7uCZ}_Y6{TDW4YQsSmPqS6hPfXCwSQ-xJI0noywor+5nUN7yio}wg#`t#sEJx~
      zC2iZ}x}_nFMY2uLXY&h`k}s%-a7&cYup~VOleSrvA+j1)<UuHHTOx0K;R@E;{AVn|
      zx4ENY6>p?o>tr0w$Op<Q3>|{H{h}MJ`5~P27`-gb>oBjQ+Mh*BOG2u7x1MQ3cHY20
      zKgo<tm->^w2Kt78Ag$<2pi!aSeVQ4~os)+MeWOJOR2o&9fky;>igUEm8X%g_(=Lo|
      z^mq>L5mGt`9f6e&(fgIw4IeTDFz2%mp$`!{3!)zbp8Yh<5*LUJ{%gAEGYxp5NiYm~
      zrpJ^=kW4oxZy(~)?cW$)nTlNfj*->r1Kd19taJdnx%&eT0-&R3k-6sb#Q~Dd^=sdH
      z`3S3}UhNP$_qHX-jLT)6BIZe)4N9bdK@>4U^BCUJgL#JpN?61ujqhFbWP_c@oOqIL
      Zgt)87k%t1w)Q1fDcuSRGWG{s){RM7tbO!(c
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_%SyvQ6g`usjg8UP`q+pI#f1uW5SNMzBSIj!(6;+Yoa#tSBs0<emMg)9AK*uc
      zH$%aIpbT^FgLBWFGoN4Y9{`T9;lW`TK8R;A<N8JAcl;?6Q=SN|Qhr|JNY2bS+O>Ho
      zN@+Z}3|q|+Llk}?r=rTtoYG;~Y*MW1IJ%a)sLE6_bWT;S%o#&#Z-2tzhQ+P)(ZXT?
      z4+{*vSmpAndQ4<F5=llAgSbdVHW8(&>v_{P_ewMH_}8+(ESxa-H})Zys+R6IoF3Ln
      z3_+CVvJ5k!wbUNg7<T?&L9##pgl&*Jx^4PuMu&V6cBwkHHPAkIga1km2LYi^5y;@8
      bz!GHv(TId)^e8&$TU^0_qHiTuv5xLH_*inM
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%SyvQ6g`usjg8UP`q;Sgu}~KVDXtV3R>VMXp>6k*IBiE_BAJN>{3=(13qQb*
      z5^n~Dh>J4Zb03_0@0^*>ulElCN7!&+G4${G6EA)BEYqp~nDB`oaV2B_yuzU<^(fdi
      z@s*s;5;84v2R6e_y-^d<zYr5%B>E4r#jsf?nhm4iMyRaFW5Limm8sNc42`}0F@rtG
      z?u3g57CksvVCaN071zZ>B=RAT66)xMS<I6$&t;YW6m30|is3l?w`{(g69)IzT<20&
      z3%WJ!ht)g=FGy374-&4FP!84@w&ySUom6`eY=M-LHR%f&9nwhHrmSyrpn32H_mv73
      jJVKW|P{PIwmMHRwMkFkwL*7Ey;0k)=T{B`8>u7%i%&mOa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-EY%Y6#v~csas=cVWTW91Sk|*p!GV+J{sr>p{424c3VO^*yoLNTMVvU*$!=A
      z_B3fv+k~`fQ-{P0657ioUIN;rX-_=tkD7L_V;iUHs!fsaweLM2zjJ=)oc#6oZ+`$7
      zM@>PBLBGrI^G)5`Fzr=+-Qp{HjeDk{Uz2M^Z2C8gr)M3b;mvWoZV6XGnxR)J=@uuI
      zrP^I#_zF51js~ZE!`H=qVf%WZRx&+b*urJ#ylmR0KgG~7JW^#y7o56K(Sdy$6m&84
      zluTPJHr8swt?-&97!H*jgIiVZn({k5O#63Ck72y@KY`~N_N~Z3ZgBEbXUGi)CiESE
      zXC(H#M92ujz#cLT-GRZ9<M}H3@S1`n4B6eX5E#{vML&bKD*S@8w(i*Eh@o$I<fV`J
      zJg?v=!|`N{K9Ql%OG;uX={2X}I8IP-rdJVU)#dJ1kmK7b1~91M6izc7B&TIz5mlyR
      zmwoP%XX2qKWzJ|gD`k3;GBb8v#R$$TIM>E^d5id5({KT!L{Ok%G+fi)THrQcl{_Dd
      z0t)J*EZVN~Ds+r1cs)wgZbBN~kOk3i+!4mTmcxQ&uGbvy)~_0d@H`b0cvHcp2%6-u
      z;yBhl)7S78-fjhaU99ki<%bsxuSUoc;sj^{lN$249L5s_80U)NR8p(XeeS#5_Ev<e
      z$DoKUs_UVc`8KJt?^18Y24%*lHC)BDWX45Z5}Sb7%1fY15U=36?2;LV!(r7X??<XC
      zZlI`OE-aa#rrSWoP&LfsJ*pN@7NJe8=~FW;BwC?OtrCVR`!D~pOxt8)(@PuF=hQh0
      z7N~K8WVEq6vuTKRS$_(ah}}3_bAr=k@w~+S2T>q_fud!JRc=w)`XUx$*e^RG?gfUE
      z0l;XM?b0qZ0#e>u+|+I0!t#|OMlG_nM;=MA+lv~C;q1R8X9xMDHPOm-1oJ<PTuP}5
      zqKrW;I}O(mv!<Mmy@?S$CX-2{rDzic1&e#0@DzN(Feoqf_C;#R0gn^ptAm~l{Y#{g
      zlEaz4y6H=&ozb2-_YCS&dPzZ}wKF*U68q_0YYE^0dgzNl;vlV3`4T-TdA3vWt3a`@
      zbr~v3)kAoNR%(gJ1Uo>uI>|)!d=rQN#J~dW$F@<t(8Ni4h8|(+IffTUUqBgcV(d9C
      zHu276I-7ohq2F=k7RkK(428)|Hl596Gfm7sfwuevUG$`vpOW<)iYU=f?(btU*emqb
      z3Ur<@0bf%-zM=5GC4ArE2<`oNK$72M5I^7ye#97l!bNP;Ao`i+$~LC)kZe98JC9Mp
      zFSv<cgP5mU(Zn%V!<f6s^M@#t*BsfXkbDQ(%%O^9Vq}`q`4Mg*(+lF}c9`BF+GTnr
      cHy`gzaf=&yox&%<`YAr6U6vKY=ipHP0p<K1RsaA1
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FQBxaL7(F)x7QzC77Ah86+QtG&Xt36*q@sm_#nMm-M6FicWN%?{NibQU{VDzo
      zXDXfg;5g$99XmQY&ghd*>JO;?0QB754P+q<?aS`od%t_n`ObIlw@-Gy`4+&-_*_Fs
      zAiiR3823_@O{=(+TC<J2sk~9K3aJV8T#)yi#hKW3qiEW)tRXBARq-j?VDwymMHU<l
      zO#)}!*}OE0mDH_rX-$@$`;*HIlCxIDkwvw+S>S9fnB0&>Cv~k<SYPEwHBO+(S+**%
      zQGwWOZFqfdX~ti%ik34jFgWxq8-{ZN;mMLITOiP(qXm%&8qleu6<q=iLn@$S)+)-(
      z`f6U57mU0u1-fQS1;fr6WlN3y$*`g-kbDN*s)!`qz7|kO;G9Q1RZqVurBZr07r~3@
      z({NJY)S+6tu{!#3iWw|Pr&@`OvC0gN4-LCKz2aq^GAo{L#(+Sx=@%h_vxsRp7bvqA
      zspBP_r`Ym~b;D-P-9G0UC!~jOE0#k#h7lKNC4)KJ%o+Cj0d&tgX$?t%-r6cVblk2d
      zT5tiQ8dCd=Q{M?XE!`ua(RIqKtw`V%9hdN`Ku=k&mNw);tL<}4eMkD@zoz5$YFZh&
      z>87PX#&o0=$T7n-_aj7@z?(Y8m9g|ydd~JPg{c<a)^P$a2sFB|0s~%k4mSY{Rod0F
      ztEQH|nye1j$wA;`z>xt_X~5>9&!0Q^>F#JNxYyNOTr&-a^@;^AQ&1Y$Xw*d&XjaEf
      zWO!(~RC02b+!PoIpw}-~Y~Bw~D=lv6cn|aRC_R(2Di*KUlxaDo@;o~X3s|+TvFW7L
      z6g!J8xpM(I4T}PaS`QrosN;Qnz+31-$<1k_K%D#3-v_BSLsvDGkRRc~-PSRKj|AqA
      zmd7iQVw_zz)?_*$%7MdG*9plDw$eacJ>BUgt5{)+^=hS5_)Nzqik9v<eQ%+l!%z#^
      zAm92D1u52#+3jPhB?;VBZBrMBWJ~Mif}FNguZ-6GJT9opkl0L-KY>Zxs8l4ohvxrM
      zFu*e!5JDp~h-g%GWB#0)IKyMP*2d8#jzWA#;)$=(9)F1FR~&_K%#9R$KEiQ6RXn56
      zjUK**x?TPWe=xd{a|?+r^md)z!kI5I!SBJF$!&Beze6H35`Td92N-#Tiy?67a%N;3
      zCq}q57VZu2F1`_h`rg77^<vyxdt5G(0q{Ma+vvn&^7w)6@CgR-Ba-+Dqxcz@@e8iu
      zSKPpF$l`aG_c-$<H=noqx{3)h@5C4;86Dy&ZJ5F|l}h3?-r-yWPin_?&V?B{gLnN*
      z?{KWN>h~DmNO)}L{NWa|TljE~au>saKhc4|(93rp{&p$#c!%s#>c_{pLkK~eJrC5U
      z`=Oo^>K{TqCDgx1KpD>kmERAwL#Y1<wSzwTLK)<ctfHXVOkcqB%)EiIP4UD-$h|Y0
      ZxL!4y5;%k<_qhy<Z*>&}``8LX{{x{6UDE&n
      
      literal 0
      HcmV?d00001
      
      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
      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
      UT*v(j{E|<(PAL9o_*V%055Bau-~a#s
      
      literal 0
      HcmV?d00001
      
      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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
      AivR!s
      
      literal 0
      HcmV?d00001
      
      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
      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
      ZF~!T6;yx0o9mnU~wVuAe;H(Z`{tM?zL%#q3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g{`Jv@8{nFHunNleQ|W#s^J}#zG|3q9#y`kJDu+L$<rk?p6qo{vu5@
      z7)|^E{wU*}-EF%xL3o+HbLZYO=bStH=kL$o03PCg7AeBYzW5{#P5(eSO|xx_U9%y4
      zWtkPdZn>^q5#FY33r_^DSFdJ~CM^H2Cs9mD`|3y%rfa&x6bFI1rdrbRmFtuV!_SnX
      zg6D*xLUEgmSKS?HU<jjmWRW9`*OVjQc3KVTZHb1>K$A7s685(6l-|e5bg-v<!h`UV
      z^Gjg@Im?qGko79zN#R8M>s7bab{**i<>HBh(4yX9y;?Rv7$uNJm^)FKfM6-g@dIJo
      zYjRg~?11Uc4_w&utz6vBVU92pyT9Uh?cZcG4P3!O7V~_boI<_2Aso?^ULIF*jgW83
      zpl3Cq5M5^4f~Wkhu`jKzu7RP9u$rYjG8kq_%yK|dpClpE7Rm|u1;yBUy6c{3?<vbK
      zpXP*~Gc^fQVL^C#uZJ+ftlxWbS9+e@(Q13>-LWQ2jpj1IpD@N48~m<XomPYpCd6Ss
      zVQjh`&yuf{eo+gjJoNCtz;(7`i2oMCXYC0`S&sQ}@;bshlfT5@Oz9ZLR}NCh^Ew<R
      zAL9bY`KSP680XyxCUB86y7>`T>*m}q(8ps;e&IOT|1!~^!xX0ZJdGL5#{CtpPI1mC
      zO<wwe%iposXJCXUZ}^^Ch%y^h#w@sprQKj0!cE+Y@m?@iD7Ft13HcC0EX7VlLbNBh
      zafeqOX>wZ3G77wEaZmZH$z@94usEo!k>Hf+ams`+np5$7FwPk;rSriYodI)~Wu$QL
      EA0nU_O#lD@
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXWM^5dMxWS+OIGaUd-rkhl%S7r^0CdNB>erb!)4LLr#a`?00iqDIQd3hpoH
      z@1aZ@X6Q^G+nN5A_O+cpb-F9bw#>BC=s`N#J^Ssq-|jiT{{8YN0GIHMhM2(eWBF8m
      zTka1myHnon$(?db_N{ig%I|H*=~bospuTj=m7Rx{Z8!rBioj8hD$9Xa4vYfREyp!X
      zx90R5S0K|EZSXA>frPWO(>J{d-(APDJ@$EBtG~1?aL$kWUpgFe-LfrjMWC2JWK5wc
      zpwt}0Oo9r~kwhwqW0=v96*zk+8FU=S2?5m^*d|qZd?NG4nk%1}l@#K5O~*7|7nljS
      z`9cL=CULZ3+2-cnla}dj%T~`6$Tpm|>@}rp@qcJkSQLTF6G;x!AyOyZF}-TEA=!Mv
      z$MLBIEnyiJb*M-r@dlPOyh(ABZPRfU397f+SgqX_ND^w@rX~`tnJ8djtY|1iM<cMN
      zkVlF2I4_{(>-4Y&47C*w#00lsB$(T>4h>V3eOJ<y2+T&rTzBPe*J}4Gg=Pv@aZSV9
      z0>?(=hi)D3;Ecc&CG%@e5$t<9-Ums<464qaZBQ|@(PHkIZBN>r9=B5910APvhLhaT
      zaTBYAMgoLm9_?=+YN44#4IgT_MO_{78A0k;!#b5Tuney&AnLrku499(iLPmNx*q3h
      z=(xjzO&P8na5U}hkm%zc4ojp;)V_Rb8nmM|97(^+qoh0!#Cc*KM4J>K<FE(ON`e+}
      zm&9%my5(A??McsaY&t`E>L8z-&vbl_FQ}_ta7~bo6SKMzULU06SCAUMCVJ6hHuUTG
      z1dkZ7t;4{)K#HmkZyRobBq9!3?>l>L+g!8w#LP_IPZt?iK(E_$Fl#;8@0--t)cDpy
      zj)3BH@5K@0k*8IR#|y}0_$Hu#TGN#3wC@P5D&&vR_einy1JcFk$h^Sp_hg9SB)wDY
      zRDOr5{DwLD=P=rgQ<$f(;F$@5s`O=FrnrxVU!Xll?inwikuAVVGcn~4Xv&|MR{o0M
      zWkz^!;arG!jmR^e{v+~_;`F>gag62r)OZ9#A7Na;#So)RU&c_0Ncq*^bR<|E1z*DD
      zF!(znpipqJbbu>&iU)XivqbOf2Usb^;}`Z(RSbH6q!<UdT{=(Zv21g!ym}I<I){`x
      zkF0tcOX>m&>Y|^u7$ApPDF-&OMR`@ai0)EsjD%mr$GAt53EanO$Z3T<+^qz6Yhj$v
      zZ<AV}d_^CBHrO@7Phi`ZQ{Vxb|Atk573&INUHuQNhcrVhERA!BB|~005<0z)Pfs1-
      z%V631nWoA&w#aCX(_~o!^#-QZn>eAaVo|L|(&a|fbJ)Q;rHP?Kg~!l^MPEKIbQ9t+
      Glz#vmI-EQJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+foxj5IqA~0%5rb2&gEaAW1+XH${UN2p59^EV*ixmq{|fQp-+ib_o8F&sHH;
      z`QRfD{)Inc*^`8jlsxb<)6=ulea`9b{r&gnF92g$38IE!;(+J*mzaO-czdy&%XedG
      z?mL;-oLM)dbmzF*Ob#q6ekf9ouZ1U65CMiB^DxGbbxh=ir(@fWmzBq}S)S8EG1TdO
      z#~*meFqFDdhB!T$aXd#qXNZQc_$IQ&5J<?ZXaGZ_4GVQ4)S}5o5X}s=Ve>&t%JIbN
      z(P3Js4W4!dLt9E_xVy!bW6mXKzyM~Lx?1XLK?r;k2}t}CuJlPshTbBF{{&hvV#Om{
      z4d_I75M2y|SJKDE4cuf1>S9S4I;(&#mr4~6p$B(@xXsW}8Tb6&Mlbpp8uo;K!xcfH
      zK;cLsQ~_#2dYY47iUQrmKoIvxu5zWzw>AcGpDL!rq0Ez_T@`E-@-Qd83zlIU5kwh6
      zQaO9)Njok}X*3zJ@c^R?-5KfmS`ijKCw8S0i>~ClAZ=Umt;?xn*R>*FydKnP)~Zx`
      z-{2m%F@Z^H0G`b<L@ota5o9fWATsAgd1T`;rWx8@?&~EfvunyBGL&0-3@m8`erh9*
      z8HQ$G=&I{LI2qY82%g(`VOlWcczNzRS+0d~&)S$X?)pmSyp09p3@VW`d?^b_+H;{$
      z<$x9YhosMy$`@LfM=B#09n;zE)nhwqD#u_aJ*sGe2>F6qys2uK(ND8eOMe8`+G+-f
      ztQrJpfa=NLK&MGM*U%n{4u7ZR2kdW!Z(3-rqi<j((Mq;$Y=m$PZL|{>bd)0eq4*}l
      zar6YC6I?&Vt(B3o-CwkZ&JZtIrK{pLe1@iy^%YiI>=a{F_fw~MQgjTR;#t{xS+)`v
      zaK{NGthZ>i*3oHgqR-mKsI`M>>mBCFUb5a}$NGS@^%1W133=;tfm&Y?eu)|p!6KH3
      bTq9h(LbM=Ik_gsd8LtZ>Pz|Y>QwaP6VwqeY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%Wl&^6g`ud6JyelhVTvzO^K62O`()R5Q{`06-5Qnl0|ltWZJrN?R4w}_!K?^
      zsRW4yOBQ?-;@YuABdC;x$8%@y<J@!Z{QCX<2Y_`n6vP-dkNB8>G~5rSeP9eNzHjun
      zYxa$%zwSAX)#UR1cIB;fhC+Iu+NSFXTSx^7hMXU3Sezo?^o~T|Q;=dP2d6#3ZP$px
      zT8HE$qF{!UcWAnm2MpErT=g3i^4zpd?*&6$pEIV`VMw%`fyjX2q6P(N6>%(R$RNiM
      z*L{bDwrPu<(Q!}6J>IhfL%!|wxz*v)^zHC4;R9yany>UfbP@jSFr;wG1;g^R595DK
      zy&MbMYt%X_uHw3aYYe4xSq*$O+`vuh=0JE6=R5qEx+&<j0P|F)T~CtEjWkLOY3W#&
      zGZs?C67DD{&j>p8)Ub>SaW76r+@k(3hnUZ3-l%mmxC>oDm0@KrH8s>wXHdN9crg@b
      zXnh@yT|>n^tSPupU7XDu-D@yFBcz({yRef$)UHZ!9%^`m4HDB8UUb`Z<UmO3BB6JE
      z=^4?pG$rSJ4JiMvGm?Gr%Jhe0arRxT`M4OgZJXXi%i^vpD1R=JAR2g-X#(T)CBbqz
      ze-P;f#*m;vRO$2rSsP@>=&#mSze1~jL-tGHbBWdz`5?KEJnc1qPf?2~(4Q1RG0ZRs
      zGw7=mT*=>>;Pz*f>Zj07vGNlIe-~O4kjwht{8_?=<PgQ=393mM)F}pN^so+~<1sd=
      VQVdV1ZVX#^8sH!riSB1e`~m)P9by0g
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6U31$+6g?Zuma57mRoar2(gvC|cIsA?^aJV?aK5NhH~nyufxKka@+MZ0rF11H
      z{VVhj^ck3OXJ7{U%<tiu;jSz<_K+|<c(uNJ_w2pro_qiN``6zA+{T8E5r+AFe#l=r
      z(UBMIIR`%9bs9YKTxU_O8)4`#a=BTZPInbI_QF7i#&BuyVx<wqlDl#5oMC*LN0E@q
      zIa>B2-ta|}fo(Gw3$E`4Ui=k9rcm5s(3Zlc&~cVwW)ShzP)y`8s^bHOQRVOWoC06+
      z={*Z$ILC0YDI!mbW~CoNJ?3#IO5WQ(0}9SU7CE|K^8&HnX*Y!2P!TfNwb14M7MGs-
      zpBi%uNxUX9n6PjW2E`n=JOaF1`(F_clUJsPi78^{nUK4oY%6B277{3jAH|M16hZ9t
      zm|Ri&a&gPR6^64rJ8sx+^Psu2V^SVd7CynJMCqQ0x47S-1g@tz2`TkhQc=sr9&}=Q
      z+SnIvTsAR{>pEuADxUnTg;^9B&JcP%>`0g3&lgSr(=kUUgG{WYYB5nn$-+(CV#pHA
      zW|iSe3Na+P_c|*Z_>3VR@I!Bp$Kr*z*NRPijypQ$8ODwa-b=*7UEE{HiI*MjQ$a2a
      zrl00o+%{q23kzT30oA?_y&AfmNHmwi_5sziP*of+Fj)Qbn%IpEkV?(IW%IzmHv=Ba
      z;SqJhBE!USSnoBrB4sEIEE6;JR@m{I!E8Jw1$SFhEg^-83RabvzC9&qYK&|m1cuB1
      zB@I%w+a>|o|1L6v9{2i}dLlXQbKb8HNpYm(G0YB~p4xfjZuXS0>ZxuSAD$7n6b-~r
      zH3)=E8d6Y6@<WpYQ>5DrjUP5Pp_-6(85q#%M@mb^5~CG3XPaGEuc2#ipk;o6{Sz5S
      zaGus2xdIJbNG!Cdo=mSh^i`+XxwrW6<SSOs0h72yjtn2+GOg<EzbKY0edV0}aTiyg
      z-00%kI~3P%c5&k!%m-S@cDlIzBdkd+*TwxeSS#7(#FC%X#`MH=zhpn`J86k!reuHJ
      zw-||K{Abv&k^c>q@9m|xSoz~P(t9-BfPG@*2aLkU1OjUE5OX-dJYM1<BvujODPnww
      z4mgg;`YIvgPA~d2Gs**xP^H`y)*2oYeWP$u!xJ^hu#I&>(a8FYUL3)5yr8d|D^zCG
      GVf+IC<Aja?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7%W@k<6g@3zdZf|Vk>e=Xu^s2(#FAwqLWn}F#7V5giGmY@<0#|-<*_uDCM9Wv
      z9&upJnmyjJ@`eSlaH^mx1zSFY4Ie;3@hBdrXJkue19Hvu?K`LMJ@@qO_V<5%{Sv@g
      zyssl5aPFz~%zB<~Z94UGx>2<@((6{sDW(_Hd)0NT3s&=feyVFNxXqH?)DaShsfFpP
      z#bwLuPwiq`hZGp?54Y~2)BYj>>27Sa?6!c&3k>AkdaG^K+XbuIv4dn}2<T0_+^Jek
      zH6=HB$*DW-d4XUeSr7>2+>&h|h#?aL7!)|L<kaoEo!YwHT(#D#w!pz9w`f%hR?|`Q
      zt~1oGI4yzmOa0vbXQ^3cDcfzognXU!8EHD<g-TnS?R3tqHQc&gZ)cM|rw`2P7!^3w
      zpY?WEM*|}mGck?{fkDP!ZaNHMwH>$aRhw6UNfXC#Tp;SS7OSq+_DiG|k93?QFK+`B
      z2S1&G6F8-mIZYuGdH$4WqDTroW<9zBf%dw<;eD#?@?+Uix1ZCX)ABV~Zdf05sI<|r
      zoO*kqQ)^I=RG%O>n^vRZ6kA!vAm5+4>Nc~<f`QlYx{k8~Lwg16t}$^AZwQ2`NX{jk
      z8=B~o)$?UlfQ*R?c#}wONEbQW$H52sx#mn{l_cQ}r&?WMpHh>uz;KV*Zgv(ep7Z&T
      z&nBM=Tdw7N#A0JTupe4LYgy0i5)qZM)!^{V8?>U^sjCbQpQjYjSIIjE0%!J7-0hoQ
      z>^&k%xnv=NJ6P6nmo2iVl$YMb+sKi^gIoF48wLbcOuULS3cqUNzWNrrxpM6xA)8LA
      z%{pYocFGkJGw!*aX3<`B)M**sf5^|MECOb}UbmaMs?}=QEgeq;PN@(7c}MU}@4F?~
      zyzFH@8Ui>19bwuLb+Tb_9_^c(9)@R{hyz5VISP*2%nQW6^p+gtTPmma1BPjvJ^+Uh
      z=Zt-fSNK+ocZdsdyqo$CBcEbE^({v3%<kaGJYPq*aNrx9c&PFB0#jd1Y$4{&V}|cg
      z6J>i})g;KDLNa0iip6PFg!U73?Pr+UFBsB(#fbJBrnKLY(Eh-A?N2O7cr0gpCS8`~
      zglQzm(?kYI%rN2*Z{ifCP(sb(c(;aGj!J+)@bkUAUiH%Gt3J?;8&JFNuM~MoImk7&
      z)DF^f;nb+ULq>5~$wYMZHiDVxc*fkum3Z{ysL&c)&?mMLnNXOu%)mAdr{ZROATHx_
      z2N!7=^m5Q9);|0DM}CT|WlRpCan4_+M#GHX+oBBbAILFCISx}E#X&iV5qS(_@&t~{
      zlbDmIuqdZ+hjxL!4LOafOn60o;uGH!tA<Os?8#8WJS7UKvT(%{OIcTGsg17T8ZFJU
      z7HCm>`lgX%&q<VVomQAz_ZT-gMtHN{$098QV_3mWT2UOuE&heMF&8k2Jgos{zKyrK
      zvIgl<z3cc*RZ>kgrz>%fWWw?A7G`H=C*q-)5tpH_u=E1&a2{HVheB(y2z@1b@6o%B
      zqz8;^G2`FBxE3nKB3)olQm^0S1?ci324oh8<YkP?D@e+#?6d1wkvCA0w>$}-_$2ov
      zbh`aU;+~jFLdO$R{fl)xF_nZ43M^1b=->e@$?_k29jY_ds@I`v1KuSffQNX*QC&QO
      IsP|y}1Md;4e*gdg
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-%lJ>6#gzSOxfO2U=geqN|9PvXs6OzTNkVBwiIxI3Y2QK>g>z~28S6kGfUOP
      zCu3}*F*a3`z8E!XpG{y*d@%ab2mdJJx$|Rpr=bak?C!buo}b_O&f%Yb|M(NY3-~}q
      z6T`&~eOv!f^KV<unzm)@t6Ew2Eki5F?`7Au3%YlGW+;}5t`n3jKM;=aRJ1U3NOR5B
      z$#|i>A&fvpE5kr|tKSYZu`QfHlV-X_Hi<1mYp`zlLuVLHmiCoFo=hez#|kbn<c9ZY
      zGqS?aQgltx28Kf%Dh_1OjKdsl=wN6bmI{YUl-Yb`vn;%2y=)7Hu99o$_KNOV@*H2b
      z$b=d4`wP7nU{pf8;cjlZ4q-BBn!;olj7rh=!0L*GE<du8!P9s~#Sw<SC&3!3ay*Np
      z3<uUkP+Yfca^5pM5@s8EFD8-mD*73+ji}ESDnZ~n8T4U*<2VKx+Q?18^-SSW+}KY-
      zlX7^kMbG&*4B>edCm2pN`g|gnI8I`iL5;i+q)$ajRsze`rgeWkkf`S~$YD&yXq>8+
      ze&#rZ)6~JOO2BX-2C;#LQJWfxnUAq(RLW55XE@EmI76r9FS@qvZVN9ej4~sF+>|=!
      zI9|kg%EV7VS#}d;hTeuA)=`#?8^Q&Si_)^E!E)Yp5@U&7o?`;95FkM`ZKRyy*lav|
      zgvhIyRPh=^cO%frJ4XRUnn-HgHBYPx&lBd7^)c}|#e>V%rf_`Ab;8D7;h4fz25#ua
      zx-biF#WAVy?mBPk`ZE3u$1GkaB2$zF&mxBE0r?7{nvvDaam-_Z;EWumbXchI2FD_n
      zC`MfGlxtM{`eNv>hmMv<>YYHijvFdyZo6vJPy?OgO}s@A=%$&nVmRK=qrKe9MZgHE
      zV~<C#t*&SsNvoVNHW`O_dT6|vk%F$47d>?t$^0#fO(K~o*-_>&Bs)4&?C>^qTb3y}
      zR%JO^FSK~9qRf(8@eDC#$&Hmwuj|ti8fxl{Lp!%<>%K3jso6c2I1M}Xjy?)lM~7UH
      z^uM7QEwmsrbbF9a=g>rdKqfc33!eKO?Z45f37z!aN;*(JLKn$g%4C&AH~kVw=!rZq
      z8KIf(?v7T``#1U?U{Febp>J-iierzE&Fz5i;JGn*tYYMbJXfJTK&O<XausJEqP>24
      zNs98bgO{tgw2RBBi|JjIq}g1ga_te?$6~RH<$3|<afk}|6dC0+bSa<Xh;j!b$`?4R
      ze2GcrE0mP4aZ9-eN4XDQ`39dT-{Ow)U086AV4|Ypf~9m5Z&S%#=*2s@MG*M}!Mk{m
      zB!>4BIPg84B^=W-p{O=JmHhv!#;jM<PYs0f0}d)b;;8ZyPANZQT=@kP%CESpJPflQ
      fh+@~Wo{qB~ujSf=HOj6D>#*oo(tr_HH_-AQ96Km?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>f#j5PbtU#>6CquO_8!XbTM(scux|MAbv6DuED(hHzh~OE)rhWjk&EQO}hM
      zNImqJLw{72u>%rTdO$0$cXwvq%)B>$|NZ_0;1n$t3Bv0u@l|{`{cqBlnqO@3$s7w`
      zPR#RgAG)r6F1*WbZFPDlh3!sNqzHx0z~0)hL#S*TBE-w?2g`S_y@^HG2|i1|_KI-Q
      zzvuVA%xw;NBOMvMB^Zq@W11sEs^fmNG!U{nRHQRVVqb@b93k0gjx^*^R8b(*x2i)&
      z31xyB+)+X($7<=V2x@0=h=(eU2*pj@wOvOAj~HfZ1p_f-K8lTI1Z3KR1-J-2)}fuo
      z69O_^d{xI&JmUa=9Z<R>A?6?UyWf|NHMpLQEpI5sHbdw8?nKxl;mPp6dQ64<6V77Q
      zZ>c+Lk-3O;d@sWUh4_%X3>zlsUB|J!jxBuO;!N4t=%C6?CHYf8xm+j=&m!^CqIP%r
      zHbR0IP%~O{=*ALzM(Y<27I<)j?CSIbO8)Tz$3NLGf#<yMF)EZL6lD%gS)j&mI^!}9
      V>Ua_PokV*BP5y`EGDR?uxCI%%$mjq7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~E_s6n@UOQdcSrm>UQp>X3aP#Se^e#0wT7GgB|bU7B>=3zn3YtR3*TOaK!v
      zyfE>`8};7bVmxnG=w^1YH2rwbd!FZ<^Ym$d{QdG3z(YJ$ksv%jFptes!#}azedEY6
      z_l%b5+m^8<ue+Y-Y?+<+^+NQt?O9#FVf%q_MMp)7kdb)9F&X`~bs(%j#Ta2BjG8Bb
      zA&!L`7y~%MSn$#I3+sfH#z^I>4B50@J9t4T7e~aDnuJu%Yl}1p*LA44rXh(*9cg3;
      z$)Ze{Y}l@N(>-j7&aT;V1Yx@2S*Fu8JGNX$!IW&6usK@kp=$9A<9kxR9g|D835&f!
      zjQ>=6DFv&Rni^(tQ^g!%ZkU*1nvQua5cGW!)V#wZ&t)hfS1g5nhRj#-Y8s1JQgNHG
      zJd)@-?%*y#4SFVE-ht^~MV6>)DB!+|WkR-}_i|sy3W|iO{vPXYTbvT|eG0^Vmg=(8
      zvW^N?*<Yb%qAm9$7}W{HZ)!fCvd?8b{W!zohT@EvpO6kY8=lW%Y45yl#}eDNeD^bh
      zu3wY$u)KAb-ClD{-xq9x?67ZvwPH*0sem#W={5ewl1Q=FG>(q*>KPJz09v_n4!!&t
      z6Q6jMz?6*19pyU|<r}7XtusbOXOQJP;RbRM%Lisna%{G8f&A<888h*DhFhx_xOa|H
      z%sC<Rl%LG`3wh;t$h*|TM!d{|2Uuffg(C*mxeMYy!)2`vt|L39m~@O2p!^BRa=pzf
      WGK$C&coYI3;|bs8_-uA;AoUM`;TQ1$
      
      literal 0
      HcmV?d00001
      
      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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
      Aod5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+g8&+6y4L7ro;%f+{6ol+<Ffxc%k5h3IdkGg35z$DIH2!A*o4<_$m70H~1j9
      zd~o^fN4Y$cw$K7~@zCka<jkDC_t|Iu{Qdb0zymBx@G)fewL|Slbw285S*;k_u3FR_
      zeMemoW5KeFf?j#IGPYq`6>htqvU{3Y=F6H{GPo@vzz`M}s0MAT>&1P(<4OoJjCi|6
      zu9=S7dN!v!E;qT&5Onu+XKadLGIu2q89Fkjo4Wg)As)Trnb<Z%AZwL)Cm60PkPwpL
      zN4J7bgc<x%5zw8}O`fkF6uDi{iUwzh<g6Xd*w$=atm~Tr0hnR_YN;>Rj7W4<TEt`+
      zt&veLlWXyin{FnyE#oF`Nf=}pYAdZ5tKc^75T!DA8^Y(c1ESO$jd{Rpwc2uRs(2=Z
      zAqL6SD=t5BWenrKgprn_)&dobVvO|XAF7%`8uZm6H`P58dmq9Csl98NZU|8ZdDpUe
      z*|w@?Nx+XQNFd43Nzk^es=adoRLwvc32B1c?1|O76J?|@rI2}vp-k71ISU@}N0^Z?
      z%`n`2>b#wo3u`$AkMV?RP_2|Smv3^j#BE{5RI8y@v(`byGKKaRMH7}`1b(>oseRc<
      z3{h)gC$DIpT6N{gdn7wUzxS!pfeoT$lYl4*L%9{$c}}M-TEp46r)^jpR|<nMyb@g@
      zleD$+Ea{>ZdRm`?v|z%ZteDiqSwnLi?nqc-82_L2r!dJn4O_OnC1gEPgnk`h;jm~^
      zdZhgD2|%=ajaJjN^3lH>Pke_GKS9?wTKRB;#vsK2uMwe9@#Zpm&`T>yi2nKwUn#nS
      z_GS{t7+6b2?jGab7xX0~<K9F`MkZ<U83Xh^_8X~u>KN*5AT=2Hfrn?wh6o<8N>{zb
      z0CEI9k0{oW#s-1h^gvA464gOaN<76gg3*B~%pyZTq6Bmf^F%UD@SoFOAPl1Wq7HU~
      iV*HdR7*Cww<yrP-szMGQ7Q8V_^hq2#&9I0!@cjcr?1l&c
      
      literal 0
      HcmV?d00001
      
      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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
      Ay#N3J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf95IyU-F$qo++H${_&?ce6jl=^|5D!FLEQO2IQl2-?5^v?&k-eeipLpQ`
      zA@RTm@KF^rj%iv6snKe0Gjn#%*_l7bzkUPgqT|34Xzt4|^2o~$bv*Vak^JlpWu^n~
      z1+TlQQXl<h*MTk2;7Bi$6!(6(uL9$sTv-3%{UC`2$|lrVbDQ2Cod0-_;-BeQo96<X
      ztwjLsJpsF)j8p{zH5U#pR8d0RMFkCkQi}uX10Ab((}ST(cjYir0xN?gkkOt@HQx)P
      z%~S<87RcM|64lyR85a3Q>2YZCWWIn~SU>5J2?Z(>spC9MU~4AHlZVFZCkK-xR<Y^j
      z>2llaR8B%2WIf+!+9D8Gn|tR7a*YL6=dKeVd5&lj4e?c=x|2-PK)uo|xpAt9kGT{?
      z)sJJ9_9K~PiiFo+#zB;1RQtEegvrRkhQRvyRddloTi`MY?@!Z|H1(6%q)9aE0Pk!e
      z4YiTSz4Sqvu-88G*$n7mn@U-txdhQ@a7C#@ZJHHS$$F7aPhrsjs+~ta;C6mu`8(Y#
      zTw+`9A$08+D|B}W!`4--(M~jRrFdnFcJ^7NZ@lK{GFz6dQ%LIsd36D#^IzmOTrYC&
      zP^Km3F(*7rS<8V>X3iod)4hS4IZ1(AxLruQgS+%W?7c@Po6h%h0qb}`JAV?(0=?Lz
      J)y6|?{sneu(;WZ+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2D`(5Ir|Zo82_FY1LZ4wJx|_!6=9b6(0;03yVIq?!&&_&5rh#+hj@7>faLl
      z03ZAT{s+Nlebz^DW({;}tCo-(=4Q^BGiT=0&kr8~+(yfXqi|<i@99@@`O;)B;*r(Q
      z<AE+s8b6eCvmko5-b%>YwV|o<;<3(#mI@!9LL|u8YQ{YsY*SkKm{w>_^3fh;RlE=H
      znzEvd3We!v%apBKoZp=U94%m#^Y5F?R1Xxcw~qr@=_z<gKBOiTPK5B$2;gEaL=%yM
      z+m?j6uF2@h?#_UUO+B!ru+Ys@ZF{;f64#fWNL9FdjJk)NV(GKQ*0H-ARX!TgP+|FC
      z3$;mGY$UCTVXG^>082RM<18ot-<}ZXae>=O^PQ2Uieyw=k4<a$`+ezDac`Fo=s#SP
      z32LE<&Qh|XG}y>@i<BN2F(;Z>iJPKIAzaURnu*nANo>*l{-o<g!BzI(<#!4yiewDD
      zdJ;Dg@HxZLJvjUTLFdL>gq`=8ea(@BdAXB6jW3vLe8vLDA!FqBBu?>H;WQR&mIU6I
      zWv256q3e3@aOO{%uLv67#x#q+Q)?QqjElI$L~PRE2;CzHzcb;Fe-b*l!a5yxVR@`u
      JN-W_T)Gv7I(p3Ne
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%lJ>6#nkAbT8{r7D~4iT7H$nvTWH>tX8+8fUST_#X`}dXouZPoo1QY%*;|l
      z(pOV`(xe(|eDJMCqtT>nwN;}pwyD+lzxb}6Gczm;rAb4W%f08^d%o{GKe+$z?Oy;4
      zK}8S}7`~*h>hGqV%Z7O|T`cI!=_TDUa_KSt&e=+xo9r34R*IIXOm{*z^95x`5Ekg*
      zi)sC`n^vo2N>`jl^Lo)`r(FUEw>gdGT*ET6hT|$z*#fn$vBK+~Y&DEIKFkQzIXT-Z
      z6vlM&XxZX1HM?OUw_WZ#hSPIYpl6HE&ScpCq+uHFh(KTBaW3@F3xvn5ysCphqlPD-
      zMNxx28tTz3P?KPXhOA+#Go_U!WzXqL1trjwwQ_o4UbhY22Zv#XDscQU;y$E0A>W<b
      z$i%d@s`3KeK7*aoaEh~%>7QrR2Q)+=qx4t1h7NQJ)L&Gtui=bt656&z{}xPvz--J!
      z(T$!64pF%3EbXkXhQq8%v{cONu9`L0R1|&ak02qiuljmb1Pw_H2s9I>d1bo>=~l_F
      zK<m!Xs46nd?TCgtM59P!C;}>i_zpqHSHm$3Q=xGTy--q<&S?Hp$#JRdy&Ntu%;OrK
      zVkB|$ny_qR%`)98EG*y&4bON49apzquTljBDcIrZ_vlQJCVn~lg71H%+z~uabym&7
      zixR~MM!Dw31P&!8w@2IBS(JD7e^J9JoaV^NJ*$dJcd7Woi3Q&}p<$A#)Ou9vD9bNv
      z$YPpYTx$I7T{*?mfQsQ2yc)sGHi({4!&%Hy+md=Sx=rOrN(RaEbQxzksZVTr<s834
      zjnl+L18Xp42+^`tGO4^pk*Z>oX=TJvD>UfdD49|AvSqJuFLXTA3%({BjlhB|YIut&
      zhaK0Vw?jIyJg^zSpJdh7NV{39WardrgPS^5H5LaMxqvol5~J~g?l_9nja5Jf!xCLo
      zH8u2GOW!c}Ax+;f*DMf=@id`*E!pd_o4yUSJAn}W0MX>YI%3INX!@RZA?)Qdw#X}}
      zm1~I8UZXpFx(_Y13hYN~@X7=7tf8}|<W02Q#bUCIgVU+IsHc6bjIJA)N~X%_T}O&e
      zQonl!IvD&6N7(RW#n8-lGF&G_WjuWYjg==Ne6We`7_*V@AtJ9rlkX!YKR~Pe5Z&@4
      z49jcC$d8egpI}ygibeT3boqtHqSHqjuprEM78&B9QJtK`bHpUfZ5J@R;OPbQ5)5M2
      zn!JON^NqMiO1-d-Ha-oPG0tllFKwcW(>=&93EfwS%dgQczrkVoZIzC_0fI13$spQQ
      zT3N?Ik!9L9F;&Ky=^KzF$=o#Q7ES$zzU%+}<1KXjEBdkn-_Z>}W8Iu_c?%)=1M20E
      zq{(gUrL|MuL7)5yDfx4i27>{D5K?%Jm~&lp;dPv+*8~>uMu6%H?YTyV2-B9_bu(=O
      z<+Fd2AycxGf`y?^YEzDODn`hAXq5NSBL6^#e1Km0CkEtSI4b}4K*jwamBb9;ZCoG-
      TA?O~#CFE%3!ASodkcapmTNeg-
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8BH5Is{`)@@fP1p!4su|PkR6~7bI2M8!;qXv-o+x7xW)?Ko@1^<=_*2D)N
      zeeg#aXSPddi4oFlZ)WbynRCy~{QmRfCxB%<H;^INhw4~;v7-~$-?xuEwP!a}<TmY9
      z`QHh({<K-%2%7Eat@2x*4h>`pMM<(f#VH>ehq@UX7$n?Iyy_&j^|AJ2J4tigDAv9X
      z34`&08<igt%Fg9AS2+Hq>$~x5!eZqr3DsRfb}eXW6NKv)3|z}&0K*nc6bS<r2^e-<
      zU%zjEZs>4FH9SoyIYCo-yDD_WPMukyN?5)^-9B-cbzx7$dZV~bi!jrrZeI{(UG!P0
      z?&g{5q=lP8a46JAoE1A-wYGv20x`R(gu%bl31(8u38L7<4DJ}1CCpu}t%bXoW3giH
      zE@8Cqk?*ACD|wW$U|^mw(hHYdT3AGdFt)D~s@vM*{=0$yQN;&@=}NT^PiokLDc1>Z
      z%|adbxkU^h&efppw?ypzF83#PK@%OexEv3j*JZh6!3NKik*Y_S=#l(9Hkl5Or9IR1
      zY~=gv5c1nWJ8bF=SB9h5vjt0{1i{+$d79Te6-Am^TfMu%y7Hj$mje}xGJ(8kS+-3`
      zrweSoK!$%nzE=MRtM(m3U)joFM0|2%=8!WpD6wsEj(A5g#wXzh##5A6d<sgg*1^O@
      zfDvTPQUWmE4N3tx9JesVsl2LJgPLKe+5bX8hBsxU`R&4LzIF=h6w@8tbLzh^nVRWQ
      z@1WYjgLBp;mI&qo3g#k)%?iq9wWs8K%D%wdm+>fh_+u`T!4o{?Q-tL`!!yud<iQ!X
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~`xV6y29h2sez1C{z?|v7iBjDD|tNSd3aD5s)BSs@9w2N=Cy>IvGTs>_cDr
      z6Z+z6U)mR6T+60iedrJ9V}DTFeP<#h)mpn)E6hFjoOAct`<(OppTGVF;5fVl+62ZQ
      zs>kX{y0+oCtLbV*JxCW+%_*iYn%^Z~>zmo3S-p8xxuuHs6R-sOOh{U71Zn+PyFr@Q
      zGbL3Gv@fvB*Hx_oV=4xY=L+o2HNOy9rv#)^qthjCgDzr4pgkx%wV`7ILoNPqM#T8`
      zbB^l-(*j3Q?-DSwEMR54l9nJy8xqMRV%Tk?6Ws!_lyTUVb6h>QzE;rwk}6cRKzGh7
      zs>-tR9dm9NEdx~`{SNOoQAf-jkM!o!W>uF2`Xkh>EM7KrPK_)lu^;^j91wW#b*e)r
      z8v{5fkX+S<>P%UYde)Fh;sYE?U{GLB7+FzN)m*D0<+1T0h6FkTFXwG&Kci|a(Mn}T
      zG7^W8O5ljVp=Pz-%)X5gj507_ckrPW8m^g^nM&d)CK4DI*xj5iytI)9W!^*RIju^0
      zUD08uEP5MZ4cR0WnzZo|PO!jYSr;E&S3$8X5Km<@BP%BNDI2G8hJw{}(3-$XWetBv
      zan{C^ap|rVeXmks_9buGsX3I<T%WfwZD4c~2JbT7x*M<&Sx;YB&zpoHf*?{)WC+za
      zfJN3&cg4o1xXPwBl;i^yFwfx@Ud%;$rceuv5;?W$tp^#!;z-ps<Pw-=<2O_FZ~iu}
      zV@_ZPVK1nle8uxa-VU<t*WWW*7%x7ufW-uEG-mhJxQCCta<Y-f635l(qH1CGjJH<x
      zT=pc*sVILs?5O#|LyE?<%ebAuErG7>Zj0`0d<IT+N8sfHpR47c86qn)+`+vB?zUuz
      z?reNv1ZuBncQq&*M`fdcB27g$^bA26v8jYrWsL#{-a-JKTn@h(=xwA83>5JRJB_os
      z;Okn=OlKz#i)>5|2v5npx9%796~}CZuBOE}VR8xBS=Z$>RTP7{7m}RF#=68HdpX8!
      z8-s;7+WBQ6fexUn%d8-t<Mil+&EFk7ok1J_faK`dPuMy7GrC^z)P_CAW^UvK#N|2c
      z<=Mm-YY%$)pSuG4qAbE}HjB2e#_H(%1@E69eTkhfF<i%(b$|Lt93CC$ujBZ)*x$Gq
      zsN>}J=f^L;j){S-m~-F%^+)V~M~yLR8~ZeN5&JAUWDY&@I`+wV49XigDi?8D=5dC$
      zth|jmxq@5r4hr%v*5p07v^|w7toH=DVoi;D&DRBd!iqca1T(luc6x9E8C+uZvs+&<
      zizMO&KhVc$Fd5Z$`9K}nx$!#Y>$rK=>a*(j{26-ttXLiQPsRIt;^gi-#I5JC=ZuO}
      zI7s~<E3oAnD{(O(s~DDFVnX^jCW8>^bo9y=(#a5&QERe+)aKGCK@({YH~9msQm<k5
      zL78=!j&NRSiId^W)OVZAb~->l4WH^YO~G^21m-IuMd0Cor}*ZrDcbNTe7k}*{x@5h
      IOARi>-{n2wzW@LL
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtV-)|IE6#j16cDdV2DX<i_6x3R!-6~s96ev{bwuQwOY6~qOBGcW=?$GH>nVD_N
      zi*Nh~zO=@~M58hKAO?!@0pkk~nE0abXrd;@AJM4M7axr0%xt&2rYR(5vomw<J@-53
      zeCNl#^Uo)@0PMz<C~5>!my8)>F6GUdc0M(285dI%hG%9|z5G1sYJDoxHslmNeblgX
      zmUg3v2yEj+DPz`8=^1VNsX*ay&Y1RDp-!N6C50i!HywM>^n7h=S75!TEuHms?u0$;
      zYR?l8X9eo~g6Xw&3A7E~-?eViKWN&f-y^WI{Xq_Nj0r^2PEJdZ2MQ9g7}j8eLOnJL
      ztZ8S3^@FCZj~AyVw0qK+u(ZI&K__ciV}@(8Tw08<s{*?pz-|?X<h7b&PJ^&@PGCpq
      z`+q6zXLh?g#$sqjOBCA#5-SlKs3~m64uP2Ir5)QVPBAP+b2dhCKCJKvwhGi2f+Pm|
      z9RH&VQLH82DZ*_*6f1kM<ZqvA<ns(13)~-aW>{Dk2qTnC!_zs5B%X+(vs47DmzKhl
      z*hLBPsn7&ARS|iNtFJqTF6@b7x4?$VatJmRp5l<D>Gj*3mRyW%?^SpP&xWfx)2Ff)
      zXsRxa5Sgjz!hVGV43fxeKV#20liC~go$0i;tp4yggC0~k#Gv&a?UmQN@SMW)d^+yx
      z%SG+^15UQ+W$ba&&N;K3wO)lZ`Y1wzKOH0_!^;B-N0ye)uz`%iF}x7Ek+vL<u!ar4
      zFyOdcc-%Jvdsd1flj*2pjhRd_b9|iGOJYdjI8IQS$OT^Pb&7V5%C>JMxK*%1J3)br
      zP}>@I-qPI?FJd%`5$cd~WtMjpPT~|**A@C_SaV$AG_TYZw3#pXF`UJ@C|(k1uFUNy
      z&!SVlX;JpHr|>e)Q}#`7P+#<eNz+^OeI{h}uA%fMaY4brgg{HSptF-iXWBBelNq~z
      zZkk$wI>mP#iyEYwi)s>y;xYC<r=Wv)=2*%r6j-XAHFJJ}ZCz5B1c52fH(b9|B?9|b
      z!(OH7xIUAx6&y?xz2UGd6-Cg&{{xzb;5603Qrj<eX?5U~Hli-R>|;5zG{It{PSMTk
      z0h7mLW5so`i*rdVWNe!9Y0L1am`MyWSGq)K8c{FMzZNz0qZtG=Hu5Z{o2ic0>!Ikm
      zj--8o1`tbj-ate0CK|8NY7I8gGe&R7H&H9!K%8Vg!>gOoL~nsD*jhq4UqWf_Tts34
      zjmgfNcqkdUf!24iHo1o0%cxD{736z}%J-q<2Z+lLk&qt+7Mj>1^>1i_zuNE^*${ZV
      zY-=xRu$EYc<d7ggt$+|^2)gJ>5IgS=apyh|?PZAJQpE8v;`PbvXkDOKIq+r28Yl~p
      zU!p;Ng-!Bq1$w;fV7%mD4c{RlpTb3i@&w!?*oN!qxQ#DLUyDf1<1-e@3s29ZwJhwL
      z$L6Zt?gd1ymA8Aw$=}0==+WO(q1Li}5l0V15|P``70ZdpA_foCZco%+$1p#}F1&@l
      z&W~|sKD3{R@X1$NcrW`lI>HZ@E|O+5LnR_)%v`{_vM{yG&j2<MKVM^u{04jFw-}J$
      z;fVYmBk~7~%O7!0{sde83{U=otMXU8CV#{0@^`!=|G+KzCq9>d;ja7}T%A23V`X0N
      vm3SS;t2|dIU*~XzCnn{@Mjn^JEMLViJorJU6obl|!7RP`S{F1Q<{<tB+GJ+U
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7_TT|Oc6vzK-j18L&IN+E|0u9tOAd@&vlQanlZ7@)1&7}>YGo5xO!rp+WEm27(
      zdF%A{CHgHoQ<6*{`k04)s7}w3Y)KS`rVrkW_U!MRJ^!=ozyAK?PXO=Z^DI&VxAx6L
      z^F`TvZrQu#gNFI6ykmM+t-QePmaFxX)#94d^7N{G(DGMIyWY@l7HNST?<_Y=+PAT@
      zuWNo58G&Mwrw_I5m*eeK%k#CZU4e|}wA`8&$X5f5`P?s8oaTXJ(~dcTb9L?cmTmf$
      zW0SSNXL-dNL=UXb4wrUk9$2>J&kO8Nzs-izLOA<d;$TaB#<`hofpo>G>t0Z16eP|`
      zbYVb2VNjrJdS;tfE-GZv!=oXEUi3(e;8GT&0s|-0pl}&uL^JF4Acb-ECc<NtIctef
      zItCOCgWplOf(d~_2e9UFIy+VZS5L<rHw$0_?<y2ACD2p1yaUs(?Fo#ZzCBJzf7P<}
      zdaJpk-7RycL23_FotoL$HeHM7?T=|zSK!WDNOiIlNo_&kOR-*wgoL38s3uo%rD4^+
      z)%DJF)775G)APaV7rLQMnoAPrhNAmHvgKUebPn~h>ogy?>or6z*}it!_7?7Baa&+C
      zS@w_lGClFFhUHt@Q}_^f1uj@#RX_6sB^O%0&vkuv2EU?f5QMh$!t&#|7hQ9Am!~pV
      zT%!OfkP$ponCE&K41*3Fb+qR7j};zqIgBLMk4w$RsVFRBiNdWp_Mvvec!N9&JWU85
      zU)D1+A1}q`Gx5h0N^zK<D6C+WROu92+j$}3{Lz<Np|pJMQu-$4BGhNu;wsA}9<S>x
      z3`xFf)4Nk?m?XKE#fHFSQnAw?KFUIn#pKh63964S`gK#A=G#n<X`1gckjwGCr#aV<
      z!g*@@X!bKwWDOLJ(h>TNSGZuz9wBdBJ3?XBc!^<d#*LBmD@^`Ib}76^?KrU^N6{?@
      z&?_&ZPZlsJhcGOMF(yZFm23?1Ok7N3hI$@xJgH#B5p@M410}K(n8j2(qIt4mtBg@P
      z=2P-lStOrR0lyGhMf?nTED=NCTEx0d9A=3)^b8q5mJ<jOAw-0@9wC+qzz7+HL&+$|
      ztUf-3yh|b7qcq%4FlEG)5%XrmT%j14sY<W$!LP`kMy((#7wMs1N>EiqRT1^x|DvuF
      zb%Usz|3SSUQO}m+YdZTk305YGFqUI3Vm)l1yZiWoLuGf7mU{_QcZBM0A2!VoA0fDI
      zpHc!zNK6{PBmV}2+!6IbyZ^`#T*cHBV!1|<A-Nn%!FTAFE{3F!%d&+Dc^LRrA+hZ@
      z#s4X7Zw?8~^*ToQ!W#^;mlBU(V_}W^*_T-Ux1;aL(GO7aN93r_%b&>EFM*>gAuKxJ
      eSo?r^x)z^O5p%_TM($FmVvTyfvI6Vag!l&@h3uCA
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-E$LF6#v~e$+owP6eLI>AcZPviiC<Hw8&Qw8!V-^P)ZbVliW62x0|}V{lbq2
      zUVP()86VL%MhCxUn%0UR!-&kt_^dC!IK$uJc+PGNn@(qBGIRIdbI;fPo!>cm_|Nx0
      z0qDU;8kz(SO&YVte8!zK?TO5^WsGMEhHDlxCwV>ZD0Ly%Ian#FQ|6SiU9)1l{f1q#
      zl%pXca3E~$k#^=p!Sx)Y=nWVPl^HK<6w7Lry+F(>n{MZRfzE-j{o2v{NdJgwo8D1@
      zJ*g)#=o%G>WGUxX2(;;lA|}y{bviUWCD5E=h4llbtp;bN3d%We6f7mMaiCH(tWm=;
      z`CJo5I8}k(Cy2Z1nKhUw{S6b!YlKkXSn!gJWf1J=3X`hn_2qJTKTO7$^D@IEp*u_U
      zb*&|A#b#{L@QlE&|A$aV0$T;zRmt?I%-PD+bj4P-C$Q<U@4B>)eJ6En#|{Bmvl*_;
      z35cA;PVCaqL1=MUKhwIQj@{^_F!bCZM~y4TQKb>{8bP}`6?#OSNqv$6J+EUAQUW?z
      zQILLRPLwGzDpIZ$Y3$X|9S&AE*6{-87c2V)oN`9Te)I@DU7VrFwwG0wHLUECa+D*m
      zyP<+URhivkCI8_Ebi9O@i9oDE&Kk_lunDF83Jz;HM3oI=?_cWZ1(kfA>C$6Hltook
      zCGwWab>%t9S9Ki4F@aWgf0j6E2_ze0@I{8>__uv+IDxE&lLA}A!5X!6oWg4ahUpF{
      zV_YD<2D`fQZFn6y4gCTgYq|<!q2mnRpwy@;oJ;tsUT=Zpjr|zF6HqEl?0i0-%ZC_H
      z_uwObR>vUD5d)}bezArOn~>kpfJ!(4zNaF*i4hIMlw<fYtMzo8#|5I3QKBlOYp`&C
      zJ<egx#F*$8b&T=AXqh!Evt)Qm(mcuQcnfa}XaQfx1fr>2j>&oj?`XIhCTqQibr?)m
      zG0$2>9VP#?zyu%HF~O(koLTb9d_T_1UP;TlJh6x%8bzQOJl2XtY93Ym=7!-xZ*;gv
      zqa`)%l__a8KTU(0$tUt;==zNq>i2qbMAw#S>erxELmKs7BaK#a{$FoKxKP}?<X4VV
      zW}KorZSn+d5B+KE;|!^&IonoF)-qgI(HxC8&cWJ@L<a%eOn*wEy`85u?V3rVp@r5~
      zIvqk2{Q#NnuF|p${aZRUVLi+EMt*{*yoq)?>tw^y4cJIu>R@aNyomecuZ3if(u<Ib
      zh(ExQV7D##8G35MB|O_3<NXqzJE+CATPVb}L~IdVpJFT#i)&SM-Ns;`y)XE@*j@W3
      zmvAs12@XfPS8%)u$>tTDZb7dWNCy(y5{54FI?4+LOGF=_ClO62w=dyR6_*oHKU}h0
      zMIqR$D#|r!73OX1zKbiD0{xmQf0Vyp#$<0a5&eeV8Q@dE7J}n*#N{1y$S;wWU*WL)
      z8d+JzFun4!T*g)T9W1#5n`EwB#EiU)>+%PDEPuoe`7>_Hd$=Wk!58vA7Ui$FCx64A
      z@*)1B@89xwANO&>oUpCo&buktek~rMf*o8Xl1<Z&EBy%X!9m2|x$vm!9oU5#%u@Al
      zV6?VN(;wFyS!i@lU>;j(7vcU3DvEyc#oi=?yN%FaxI?Gl-7$_W|L}9$8EDmWlYT}4
      XPdFoH*EQereSE<F$d>-K@FB#%0SsB}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK%%h6#lOB7<=ZDq;6=-qixcrY2ui=K%pTn(8f(@isPnnY9Ktv_DwSBWX7Et
      zCrx>6*zyAq65Ft?)EL2{V#NX$@F$R1g8(5=#kqH!)T72~7xw6$$35Tq&g1@g@4LGI
      zp2epcVhrP}=DK+^<8N5ba;9dROPR9iTb0bD{9o{dxHdC1=eafE1)I4Q(^(dmOs8rK
      zPeUg|pY+byB+gtZuZl{bp_^e)Nz1}?{7lq0Z~1|6gvZbwtXTfgX@;Tv!x3c3{+#7l
      z!7B_WM;^stw8YSvbE_f&hQ~NG#C3F_mm`5bhK><w(3`g$QK+w#g|}dqZNZStyA{(e
      znVu!jO<|{m$}sT=ardT*;P=!b95Nga)5z?_($u<eg6wEX$00na;R%K#Z5dUz98ckC
      z%4b;wJA4<+HOi-dWK^LJOH>Rzs&Y1tBMgS;x<SeEEy`2J0FG%GjMOtU<~WWaVqe^-
      zn>LZ~coTL@$+M%22@GRI!%2o?4=*OiC{hfE)=k^0=FG~9sLpv}NqC;97Oh)^nyCxZ
      z9M9ksLn5FqECyykn&C(dq#|>n><6A%3G(KqTMyKIS&8Q~ryhTfx<Fbn?2mX}mYto|
      zaRx7Hc!6PGD{Q6YIE!&=9m}7;Pn2q$MI943r-7<E)aup_4adu%zU}cv5V@*zWKov*
      z49;_0kWHz1qGno75Jyg#+cZy>>&#LY+tO}|V;Zj!SSoW-v})y4goWOjWCcbh88uYQ
      z%y3-B>(uPhD5_^T5#g!bH3nvJMMHu5_yGzYjLI>Gs|;K*urX`aXqzw`jSjL3HSadn
      z)ctW38M@YXvcJYr!W#^6%3e`IQ_(JIrKj=^<1LOwyiHydyXm!8T!}e!l5yW9tQBF~
      z^TMeLPk562_c=a*8O~U)MMsRaL(yucz*IP@pkC}HFs(}J>pi%Tm|CsWLYTlZ$BOKh
      zUdvGvL~|jh#*br_(iBxIkgH3s4x3{Q4vji7RuCH{)2>tS=t>B;c2+~JIRxRRm~>s6
      z*0&B99)~X{ftN#>x<*o4=UA7GZBRB-&9GE3A(t1!K)83>uQvj_vlHdsm2DK+QVe?0
      zt$P(QZOP5t*YY5plE#E+#-XPqXPdq+<Z9YkeUWDhgY*D&(60-uuTQ=M^!UZ-oPbXM
      z2A#&~9HXzE8rud>eS@Cc%4VOGNsay+y7XU>q%$WUDcz5L`chCF2ybBpvg{z)FJlcH
      zoJ}VWH*oX|q*HgmJGOB`e(zu`{A3z<zJZr^53g?F%XD&5d8DLtS95V2m%>ByGxja=
      zF>K*_IytZG4@T@48hCRHg>>>ArBv~DFMF?na(Ec~0V)n5YG7##hto+*IrK|C$*zA7
      zw}BfC1oyd^1~H=lPF(zf9{o=o(Emb8{~KrZe{f#^7gzQFu&m!hjY$2>h~aai6JHtK
      z_}b90Z6t8l(DAdu6^{cUS4|#?HEiG}G1-Nmu!&o$A|Dc)F?@uN731_QP}6+^_CM(4
      BYBc}=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5T~8B16g{`JtnDtapdz9u&|*tXTzxaC@xcZHN&N_5-)GAehOD#A?gIL=OfW_t
      z`~m(b<DI1;tP$zM&g7mw_uS9<_4~(90MF2JP$Fy|sT1`nNKdsn2!@gR5QHk#gW#1t
      z_Y&s!+l^h0c#!GXypH!ddY8mQPO{J4LuC$lOPT$M69;92Z?%F*;NWd|BrXmn2`f1o
      zvNCB<^zG?1W5WqyGCS01<0+xhyFQ<e@Ly=7vzLTsYaEC5KB3%|<f|Y|d2n!}h6&7g
      zsKO^qv@Bt!rwzY3{upwyr^1K{bG>+=qP|MBwMSstrb^fvBknkjlVYZag^m*H=S2no
      z>e<E#o2;|muVMj<4(<|GukV<Ld$=$4WHQg<FbQjgLM$V&V=vM=E*@an!9z*za=0t#
      z9#(8$XA@32+lfyv#0V9(1rV0=u>UEMP}_}<lL2pPI}88PLO!u65WH<8%hQcinzBr!
      zei7yBHI=+%-11dGzHj$Ho<d3NDr$1NVm%kTBzLX-_$$2jH%x!YIkOhCf7~Th+(pcZ
      z?TL>?Z{n8Rgxi=Oscgt?Ri@f!@Xm1OJC+E43pL@ntz2mSoIDZ|H>{$bOEg5Jgf%?M
      L1Cd}0XoCI#IV}IA
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{^stlizx@+Df43RZ0kviK&JnBZCyOk+$y9`tFt9dyig*X%CfU*Tt%
      zASOQe1N>3OJG+QWgviUx+__)po_l`&`u+pJBdi%H5T1M#2ja66AFANJ^T`)`&OpS<
      zbDrsQCzA5bR#RWD2t4WchAQE}O)pVlV4y^(=kqrQaS{nH$^3-z<b#TvYlLP$A9it@
      zF2`@EKqXHJ>#eIKq%n>!82NS*F|KZVmr!!Up)7-7*%-sPi6SaC3``Jav$FrBRQoEB
      zul7d+8SRLHF9}oq&=dZyh?KTZKTCQX!p0S_UB(#?Sqj7`?Vu?+2Zc~&@|fAzGTIBH
      zksJ~lr;x>A;>ZITBu++dPrrFylLx(F<0k5avWk0w#>;udR{L!k^H?x&o3QkM`fW6D
      zhtVaxY{K-p8DDAzbWJRwY2YqlGG8ur+PL=zK_(F${J=&FZ9>J%izmg#dm?T#pRMrX
      z;Rxn-xF31)h0-gj<s`YP0TAr1Adr#ki#V3Nn7K=YibW==$fBoOO-q7b1^zK`jn6V$
      zF5B8~b(X)v?5uo){Ur^m@@cXY);h+l$EdM=UE8oQi7CGIYZ^0Y!CCfY1>f<lqZ*wP
      z%pIZLIfi+RTPIjNLgmc3|F_A6?r*u6v7TeW>g5_W&Kfn)!E#!7g-aLk5UYG^0Wgtp
      GK)(T`iSpF|
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YflqF6g|@xmUb6g9s;6(V1>3Q1wnZfA5cLsjS_i$;Dct`9q5wnw(bsy#_#?f
      z6R3$F`~m(b<DI3}79o<RJDodo&pG$(z5V&?`wsw9c%dP{Fnhp{_;K3%U^)Bgip}@Z
      zdG1+-^s;(xxk7BO$JMfOT;Yyqm7O*2n6_{=gcxEfIc;-FeVsoL1*xHxVXP5S90^CJ
      zn-FrACxs(ihE`d$y!a$TJlB|Wv5XAeU$h)cJ|T+4RT7dr454h<6k#y58_>`eK@d>`
      zVZ<1M33VZwvmEj2u#^|>7SG#)p)*%5aC?WlmfF{XAtjYz{tCPo`bFvu`Nv07m<-A0
      z8ZIzuMR}J=?u5~YehoJmM*eS;ft$F+(09ab%gpjZQJ5R9*b}ZR%uVYP)yH-f;Glsa
      z+-3+XRhyDaIvH)MP93C|@}6{gLFV|!@}czcG7*d*uHg>7w?;jeRbb#QMj5nyAvd@z
      zG7Kb={}QPdQOAUyKuSaM9QtKy42<I*wW24a-=pMht(u``gMENH%kG)269&?t1`L<@
      z@tUyqi<10VSN=ROFpU{%AeG0^)ui~P!Xc%PFsEUbp`+0U|Iom^>amC`{1-v?s@oX@
      ziz=+SqQWhQ$Xa~Y&Rc((mDEM;N>8?I+q~ilGeSz23@j_qXrWxH*g}dG(~>mK#J*WR
      zbPHnDQf(b;80iV6mpXFYp*hUj-17uAcekqQ{Gel)h9^kh7O+@M%@F;2sC^g_dg`>B
      zLx4U&BsG2tBlQi}zS1s$4i!@;`ZikhH|V6jK{+bgg>G6IuA`@h@|jQ-%1r76M(`B9
      zYCXZgcooB;D#mKz`)A>)DjwE<E&S!{M=SBYMVtN(y*kH`o<~wIU|KhQ{+=_A8b7h&
      zF`keDhNpEUUusG+ilB;THReV^!7B?IB+H<epy>{xdKrWIdyMKXCUp-Bx@-`Ysf)_g
      VL<Nu~Ljrh?72h-^vk$9azX4z6ayS40
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8U2has7=F&~EW6z^Kv~*Kffj@U-LkNJC{l_@DJ?861!-9otuo!7(!t#sn3<)7
      z3lncl{NR>AG(=;tCZGushKNy75)f`Q-We191Kb&}OpNcDnPq3|M!4BIbKbA#dCvQu
      z+57+8{1(7Q*l|P{HXhebX{WRHv~C>Bo+xRP*>TO*i`iZBchnN%aIQ-}_L^nUUvzZS
      zh(lpm91iOrw;f9>I=-EuX+pPz=gYuy40D_*-R|1J(3KB|HLli2{@Zm!cXlvr>wcVo
      zoadA+X~bZ}v4}`ty1<|em=mH240Bb)kw_wn`6`;w%n<EP7o;VnB8E8$w2=3(Ru)Ox
      zYg6$A7BM7FRGflVstATPK8(5wp_&KAj}u$3=KQ>Fh~Y|kTv(&pc!^?Dd9$dM3Yw+M
      z_h3_zf-r1;40f}`Cv~EvF5xu@uS_o$twY8zpU#2~>Y%VDO{**>7?uSLv}q?RP6@-w
      z`e!vL*Mz(YE3qn$E`}A4J|PvWv4#*h)D{d2>qzXAz0xOjOsnX@TGH{DsOq@7fsW}A
      zfk4PO)-g2C=9NH}f!m@)S`X=#?Ie-GMirZ|nL0+CtY{^Yv^89!dN4<lMDJ-8Tks4+
      zi!khpB@UU>cE2SGx~+TX6zk6A(uE{?(HF-yh6Q0AJXR{Ud-1k#Mm!WGan5jrbxJEG
      zK;7CJ0yi*4-6--xn~=44s_4fq>O|7wpyo^snHJTj;q%c}$Illp=Sx!ElqzSXsxpw2
      z?Zs{tgBT(vghW<&h(>xabk--Wk53m8*h}LZf;xEG5k@VEtguhT^T^XI5Z->HIAvP1
      zYIJn}Kgg9BR&f9aeagg@82jiNQm$*ES%7mA&><Bgl5!hSZU88O!wgBEQ(lv;u@Wz;
      zcnL34%Mb?wFkn^;hZ59_<13!dCGd);r)(~npmux-j4`y=Qa4cRbrnaYS}j!RKj$IQ
      zkE<w3^b75xWtK`(h*9%l=P??hrT!E&9#4jN(JYrWg9bUNdB@>vx#WLzqg&W_^%^Zo
      zCrmrKJ!r^lh}Luk(pdDuQ1J#zlz7CfSVb|U%S)>{bo;NDgTSEX3`1B0CC#=4&DlKJ
      zk+p9Eo}`J7(q|<CMP8{ubF;j3X(vjSCdeCs)7w#cSLoT+v-UdFo*S6gv-CO^^rRN9
      zbJ2R$%g|20De1+}BF5iA6Mql$`1@E)`^&v5ZCHY(^hSBmLDeGOsuRn+YRf$|R4wu+
      zWg#r=kDhB#uVKX<cAF}>=)Q%_{!D7UiwzgBNE)M27f%IVa=kT^de*b9nr)TuRYw=k
      zxfsZ#_IR%5Y*!b#;dOVBs=CX(Gi+xl1CidpMXB0b6><n($nrw44Ea+AS#bt`XHuhH
      z(M-tdqM%IdkQ*HxH9B&=bq4n`sUu!Q?;|5Z4ixJbd^eMN)eC<sWNloKXm3;6l^XE?
      z!JbfLJ5k-gB_?<1Tsm4~HRjUPfO>!=hzK4oUUQ+<+U6WqQQMqDlAlKlzkm+@0ao)5
      zv58+qAO8ru`NtUJpJ0+-g2_L{89swI`DZxGFXJM=g3J7Kxcm$J!mr{t{v{spYxs*_
      zX9~Z;=JKytC%?(o@UPhb|AyuHcWjK`Vw3!PX7L}`G{4Q>=6Be6ewSV1KeDU*9=p$f
      zV!!jBz1E$iA)r>Qwl1wEAZRRFn2Skj-3ZRmjdcuD)WjF*|Cvs$tKb0^;W(|LtdqF;
      zt1*;=l@&xN>^yx4WkifJ(m)5}Hb_rK!?7gL>(0YwbWy&5m~th0h0GDinVTbB`L7;W
      X)ej56MqqkgCvcLUa+Vq0uol?ADGRH|
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZEq7t5PsG+95zcad266xk`Ta70P|AX6jKVg1Og_6*ti9vR%?49hmLc&Tc;F>
      zw!fe)U;Bag5B*vRf(jBpfFFgJu}|R+5*b;(yWN?c=b3qS=FQueuK^su6$>$eLpRi-
      zx}EobvEA$W1xH=W*OYJ9^C$UP@wC1)HOjB^&4zZ)D7WEg&q6{V%?I<2qGK0oH+0=t
      zSSzq298NE4*W{N^mu%l?S9=0$&Ajc8?iUy>h5c8CFOdIH+qKOxf!*0pIgqOgB#J~h
      z34sj~7S^Q@$3}@H(gN`;J8Uf3uAXk)tZA>JYK|7@DK+cLsVdLrb+DOWsse{U0r#Ui
      z5%aX6+D#J`zc^2&(hY%~(HuS~(kZT4Ay-Xe5L+y478vPXB8e}sRbX&YId-F{>hroW
      z<LPVK^K_$Z-=W;Z6%Lq@*p4BAB(o|TWyrECk{KKFCu+X&RNa)+ug#We$19{Tf>8@Q
      zNV71X)%+#;F~E?!Bz7Z9da$QJZv^dZg*GYl81`5g7uXaI-8M?>Wyvg0FDTnJln4bG
      zi3C}(fE0@X+m)YkeeD_D;1mu@?8iV@msx$Yx!5rtmN>-5K0aDDUaM|eo(_adVFE`i
      zd?PRvX1Nl&L;**M^mT1!l$jUk&*rYSIfwhDz~wn6@g0r_inM!7U~42j=JLLW3hQwa
      z-&-gOYzfnddP$tZWQV|Pvq@F!%jQ1D=bkttF@>|#Vft1}IdswcJGV1JG)JSNB(Ql!
      zK+Z6QbC~Aty0A)sDr<aEViskAl)k+{gQQcMOtc%8^I$8r0c&<i;wzRVRc^Mtx}LPT
      zS<|5bwU3Dj$SIemOVLrjuPKvsg(?>wTNtKs5U2kdh;*8#0?k4CCf+G}uBX)mV)O%2
      zW8=>u$6nyG|7aD%Cf;L<{26QH9C~Oi=?w4oqL1E`I0k|!KLt@TW6vPt&+$3GpJChh
      z5{5gUJC~4qAGrq!3fIIsxqx1I3)`gEMi^*w$pi>M2K$gF48eD}JJx~KvF;MqZ-n(b
      zVg1nsi&~;P)|abe{YhAV5!T;?b*~E+=^SAFOEqC7=BQ|2zfL^F1b@U2c5uG^A14Hs
      zaQYt%1<0>(?sC}p0_T@7!#hz0DuI7QfehUS$oojj2N;$QsVyI2Qa+|D`vh0z(-7;q
      ZWi{pkHDag|&lrBdkL~-w`V8VS#5-O8!P)=-
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#k~PtgXAYTm%tO!3r(61r)gyi%<%b6i~S&>eI9xV9Bye+9~J{@&}k8
      zB%1i>gMZ1yc%~q9p+p{bXXZO|&YbT%XXe+RZ$AJGV^M>TVQiNl@Q-Hc&~moTeVcEY
      zIbO2z=B)a!7lqi!MAfh+Y>}6i>nw7oV2h##KSM-0n>Huc)!Z)GHPkcoREHD?!jYyY
      zLe?rt;fNwbz1*=%(IJLtw%Vt58VTAzWjU5i(h;$nIK(#@{3*8}f?zOoXt)(Z9l|<-
      zh%nT})P``@a>Pn`FDHuYJZB4r#;lv?_9ib{YJCR!RjLdVH#oPZUX;Cl!0oa~?T}oe
      zz!3Lxs3BBZX_ts^hHww}HMB8w{a+>>?TTDD@9yo}LW*?3l2qFeI`BxtL(;lB#&xIa
      zc#KYl)@>nI?Lt=Y!g&L{=5mLjBNq2aA*n|yWme{dI_-&$=)V{%;_yn0AhGJ!(SsO6
      zP`R&3E=m6Gt8r&?C0XQondP6{vP|*(j!0<erBW#_CO?$sTk1X%))pbe5e{JhriQ^w
      zY%59D2&Q8Q!;}TFopsAjfeM}WR>w=PlA-t5#Hk#YK*jNyj^`MqPE;`%nmqKD)(IrJ
      z#xS8_oS~t*I2EIgNl^1>MX}E<M^a5rGrM$>YUMzsnwJ&4uEZ47=k7DKdlK>zr7aF^
      zVJ<^+Ez)Fi7(#1qxtJI8mbyKWs+VI>v7yG#ICR}pHZPR~N!zSApSRQ5dxB27qjmHJ
      zz#<WKRq2uP(K?6_{cqE1oYp=XL%n@pq4%EP&X>xb28Ah$F^YgOf<{{F<fG6gG}Fj%
      z7cFN|e#4J?!nS*lpdX{P?-&o3>DRT=KkylA3O&M8g?>l;-3e&cKk2`KyQ<(ooBt=m
      zr?!zc|1n;)1*(7m0T(GI5vCNUp&2vKjaf7pX|xy%=rk4)qjA8<VBA>3G>vmc78zq1
      z8^#LW8>`qd-c)EMPg6gmMI<nVmqbj*2P82~A~awVuV_|BH(&xYm?gS%=t7ES0kY2#
      Rbsy50ugF97qYhmF`wKfEm+t@o
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g{^sY`a})DIfApg;m>9S=1*}V}cDPm}*FhM17lX2UxS+n%x2XE&dA=
      z#KZ@GfIrH3XScyNpz<;^ckjnJ_s*I9`Rn@+01xrlK#K6>gE$qRoaoF8j+~FaICMH9
      z@?7V+UiU*O-|X6YYbz0|ovx=iZrfE}KQNFXEDWb_cOn%ES0#SJxH|SCdy8PVhQqE$
      zX>j~gFYweeCRMpfLLB4xf{C|P$h;cW145?R@5&qqc?)A0H<89I3kD_#GfCMiDTS67
      z$k!*mjtuuj$CrdstM3Z`K!l#Q2Ol%K9YW&<-2O5$?lBXHUJRfoGQxyV;MwtD_hfk3
      z4|}ppSRF7HXUdVMGEh!3+Z}!8c5|4+f`NI$+W#kPVG&ErK=E}FrbgO$sqeU9Vg+Rb
      ztAxqna<S9G9jp<ikECiz(QQj#CTxW|CM;K~BlR?fqigQ5JFaV6xQly)oEHsbL`YYv
      z?=@z{LKQV0do-*vrE>`@qhc7XtZ$sSo25hy*UyQ2_L(wa@gE!sX1jk9y7Gmm6;K>{
      z0GoOk1Zy`4WZ3jY6iL>>tZwh>vp|`(m*y8n#iAA<pHlqAK$h1WTTQmLKVRGU3bR)K
      z2J1^4RN&QQC$jG_mVJvN+q2q69+N2Xu1`~#jtkDPFDV!d3fi@EnCG~Cf#p}1$Mw&c
      z7#Q^n-2a1ALWYq#$Y)*5WxH6<${4X6ld~@oZET><NO{cT0X7*c1&5iWu*E+S&6sb1
      IW%vmA4cUPlqyPW_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6%W@M(6g_Q^Elcjf@*^f-V+SIPBpwqRNCM^&W8@$Z#vq|ZvY=XW+a4ItxMtdz
      zZ1Wea@&jyAMU*NQELrd&`HU3z&P)`ExCo1xzTJK9z30CA{oili0$4;Ng8_kyPt|kv
      z!if%Cf7{vf)Rxmyk=u4|@xKvj{kU4-r4ejzdwQj9+`!Mk5;)$gxYCMDsM;pE7Z^4>
      zZdCY2pit|D9d3V_@Yh`5H8%vV6hB8H#yFlL%5@VG^W{=gz*-G9bru4n5<?iyVGy=N
      z21f)2i>2lW@`PDeyE;dh35iKe35@LRo2K&iwZNIgcc0xJPY+s8b=$<A#%ivw*Y|f@
      zI&7$xN4gWWpsl>73SHi(hZbi+;PPjL^q(A4QY@divT06XA1i?|N;XwuLx)>IxT`k>
      z=2Q0Sz&QH3_KlMiqrx(=&SDN<WiT&r>i<h3aT2G9fuYI^O!ftEm)l`EhXNKdI4v;V
      zYc9T&ID;aoZEI80YO}6AN*u9$6dc5*sOE@ES>i0tQR&@?KwIRjSS|g;W-mxMpx&7#
      z{T08x6NFt08_MhmoG6z17%@wSS@CtuY)RrGo0$5T0wdV_Wr=U`oq$aMK3faInB8K3
      z|0S_jKkaS~S0t{2DmHH7DXF~JQ~qY%C_~Ac>$lj?wbbN*uS?uu^{MEige7bX_(5WY
      z0n-FHBqMBNRpK^7CZl#3cphsuf~Fg}aeE3PGMn_#;r&5_5XEKURuWZ#oQgBgb_8ZV
      zk#5rTsK^O0>qZryCxEQb%*Ew=AW_48vRDuH!?s>?d0z58@5=>lAOTtReI2fPDvC5s
      zO`Z$d`|40jl2LlPL_W{+P0}EpWH3ViEbZ>op6|!YXa7L1{3m32V(eT8<G<740KTCA
      z5eC>T4B1bRwH2o6Y?|&!2}kiItt=hGaXO>0F`JtH3l_NqO!+l(uW_P-udmMz{Dv*w
      z&vsCHiJ!Yy=hwU9;#G^~e?HPA@TCsEPZ7tg4z8v0`3`QTV!Cv&*ukxT*)MRI_A`vy
      z9%gJG3wD4ddk=T)2o2ldiG6^`{w0p;Qo^?zl|cn-6wN4H{D?ag-vTA9io2ANCF-tw
      zBw2J%rAlM2&?+eAnUu{tOmumzzr>LBYVZ|ZCy5<qsQqi~S|)0#>j7-UsE2q&D?hz7
      I6R1Oc0CrNJEdT%j
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8-ES0C6#w1rwA*g)rOTG0EnfnaZVP2arD%&N6ws}u)OM+gicGf`IygI1W@g(W
      zA}W498eXjOU}B`vU<^rF1rvgrfHA(vlZo-!XZZt+=ib?_yRZqo?A&|4&-tBm?*97k
      zm8$@@;G-xa3|o(x)8=f-pRt^ysVUn$k{UOCE1TM-elwnw2h#28lkv=H>G^VJHn3bL
      z3WK4oTy^KTA9!Xq2>A>R6P72nECWk3)CH54-~JFo`(U|Rb&q`{zuj`IU<X5Q@?I3u
      zS}0|kl*MS^Q8Im<V+=;WJ0TmuAUL9^kD&%l91Vyw)FeB{6eqz^i@JI&Bk3VCCu2lg
      z&T${^XQ-db2V<t4mkb?Y7!@AMeC{7VM%ikgO@o#rhw`~`>1E7un{*R{Zq~HNOwUsH
      zBGFI<Vc2#L*;N66Dr7hmtun6aSrHdQ6Cpt`4NLEc>*eGG!<u6J=1h>1)6xl2AyRwP
      znc{B1I<!Zzo?+eH@!@z78z_Q+8iS#^B836fEqyU0(G^7}!_sndn#r*dn;4cImBFAi
      zCq|_mHp;LWOfsxWc2?L^K2pl2Vv}8l%^WFEC)JaIB03wYpc9%23sZzAiia8Ex7Vv4
      zk1}vyhcRq=RF4>qM-Rs~JVuQukLOLBkZLLSv55CUm1r+VAGR~ZEPv1Jl<7>Ug0Bw6
      z7e}iyjZUq%gX2j&MZUAHZJSfRPVsJ<V=?T)?kM^hTFXmY;ecb0DzTsng&C>hDaEHb
      zo&k*`*PLLo-_1LL9)`5a<XMhE>?1|XA93Aa%<?VW!89y7;{6=MD&n{=g9_a0F~ZOo
      z*06ulvL}?Y495Y`6l$bRpF&X%b5pKEH70Tq=?aKcAHKlxA`a3HQ913S3APzlR&NT;
      z?Q6u#I26Szx9y}-NwgHlt2i9iL`PUmy(+9}6~;J67KEe@V>B=W>h%qGhOxN$2F(+0
      zKIk{IldAoXpf`%6wC?V}sEWKQy~S}%A=7;OSd6$cif?n|6u*)9MAFeKy2~+z<23T+
      zkdOe4XENPM-I9dQ5h&DRQg>(A3rS3K%qViRpY^B#6*=RUAZL_qSoBo&oxu>z<~=no
      z3@h#|OJ;Fom7JT)(OA$hP3iek%Zp>wcYIVu(0d(sAUh%9F}ZQ{|||Nj;UsyBzPR
      z4vmevc`qyXT57?@%U-L^s^HY%X~&UXzis-yq~T4da4O$0tOYebJ%te%>IneiarH<L
      zrG_{SP`jp)Zine^(06&)#!KK`-(gAD%1c<<m1yoRpyi^r&`Q4vB_+<GR(yg6@hO&w
      z&(KEn2eg;vSb>#vBRkq#M4wh+wf44#q_j77h2n`4?^f3W_yX1z(6MjR4Hy^6Ujg0M
      zuw|$_@kjw%=a32Mq1>hd9-pJAO1CHGagK;PdyQ7(IzDbS3fOCWj(ExLz#L8%FN!%d
      z54$_@oVJ`L#nE0P<UZeOT*gZg^whT0mOPjwA?J`PS(`Kt_tdr2mF};7fmOvzOI-oZ
      zJe92!n^!!Rq&o`8|6j>N^!!46iAHfAO=2E#@fF&{*H|wuphJ9vr1%y+;v#m7?=c`Q
      zW52ipDSkj8uHuxqhBM+voE1Oeyts}9aRWb#UvN|WhQGw`_($B-sElZ&Z<SEFg;|`?
      z82pXbagtDI!ykA<<1>H`oFbZmGdPGhahgtNF@U$IYihATGH=tVj<l&aLmX)V(;pwg
      zaYZr5>qwNcJu`<|<3h~^Vn?7_N2x;msRQGoS~0K)-qTX=;{*DtmZTRNAA<b{xHgO3
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma))YfsZq7{~vI71nKq$(RGh8(wf1U1dO`nVQH5I<jaCY>B=*+s?33dS=&&A4}hW
      z(ZmnnhcZ5=E9=H3nlz{9^8A0#_4l72zW}UYEs6<-<&XR`|6=wIEoaZ{+Pq^ndCzK@
      z8)|J>;;<`SuU?HpV^}<68yYZ7J+&Omd(IHa<{AuIMYcs85yT8kVu~SIvmEidf6x@}
      zE^pd`AytztZa27VsdI3tc^|AEL$-Ft*|~w032Zq%kK6X9=<vSnk$7=jy<L$9UFitN
      zE9V+<%wjHz6hmgzLug|ljmr$Np77pu`KLYws%78j8an0~=1wv$HhF7*&y{_rt>en*
      zLr1#e<YAFvdZ_3~$BW}SZbor~VSdzmP0IZjPJ2rT+rTX>F{Fc}D$<s2PrZ?v;q8T)
      z`SmhwPHo)rT<T`|e{NK#Sc_p{tlVKSsJyd%=S+e1mMgd?>Q#ov7e<sDWBRi-Y(%|U
      zj)RI!UjVOH)v)9ZWRX-)4-Cv8$&eVjA6S?M9u6#44BS-~@g3QBTVl&nGnGCyxJ6ZF
      zED<n5Qx8nhj>eJJD4k6DGx|^FkD-5~%>?3s5l}>e_Qt?~{?l~QR8WC<mrfIOcd4Kq
      z(UQuf7E)Kg<66kckSm}>>ne1t5o49q>pnL#&<0$h;5P0MSyM>`9@a^%Jg^X{A_ty~
      zAlMMW0z?e=upA&t1W*e7C)m4V-2dt$!z7=LB&qv)a;JI_=wFgvg^<V>j*-h3j!+1L
      tnemIdLHSjvZkr=PC5AyIf}ogc+j-EUf<8J8eMQhJLAU<_E&2JZ{sk~8`c(h`
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{g%}xR_6opR_89)X6!KKlSfsKu8mnJ4EL=z(mcb&09No^;z!|1EA-~oIn<Lv}9
      z5aXt&xA!}@x##P9u>^35ZiEWM*;LHM2Y0zLW1ed9#$(}B!msUnY#(i!r4gzOoq%yI
      z2zrR8GVu&mH?cXxR<A#zVxnFpLqoZdaw^tzr^X9IG?sp#9P!;=f3W`9U3k8t(L@Yw
      z=47a)ku!$V70N~KxtvSm`36C*<6qa%dSy-NJ^#nM$<c%sO}LkzrSs&kbFCj7nNh}h
      zp*4l|e9O>$ve_(=H!AGgE+e}Ld)62z1d1A{Q-a&5AtV{Cw2nqmH?dRbF7^s-p<QSP
      P`-L6^o+cgAS;5f{tNe7c
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%T5A85JhhT4mzSJFP{tD@kpGw6=Nb0lZm4XQT7cq*k+g^^APl_bVcIA5AdUm
      z)dMPtEZlTgb=^9-RsHe#_730}yGg_tiVysej}3n$oxU-&dCzEbUv`X!=<(1Fu7nd>
      z{K*Z2BoYkyd3DVlf0s0dz4=lEx-)Nt?}lDSFleXJk--_mcF|HogO38E?m7XNj_|5x
      zsl||}yIr9pj@1;BSY}9DRJ;xcZQ<SWwoRCf<#xE;;+|Cb>@gACOP`?}f&Vi~mHY(U
      z>x+OPx5y58;bX;QCPQ}UiJtI0(Vb4)l+Wa(yl{@vFRdX5!ttf+RMkjZDddo6(3{ah
      zE~J{K@Mp<KYBx9pqZWoG`llG(v<x~|C^P9jPIt0g*`GjvjRYw=brJ&S&``q~MF&$E
      z){&-+8nA&)f~Y8iY=k94GwccFs$VNtCMdj66oaB_QO9LOEKC(YL~TZ-FOBp&U%=;y
      A4FCWD
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TTc@~7(LUL?y@YDf~|sh0TD{8Y&0=3Y2yn<LAUx)!SLpE8QR6Q+w4X3UwKKu
      zXkvUb@kbfInO*6En)tAn`R07*obSy1`1$!OfLmDCkYiXq;IH``D?D@uJ!|OkeXGku
      z*ReW%9*Di|t@~o1$6gd_C@@S*u;p=rKJ6X|Ct{ci74SEVVb)flIC4E}lZX8_A2u2E
      zmgBhtH@e4=udVGc6gK=lp<#ld{0H8Efk_in&>4y?)iw@NH!+4HL&<gr;z|6fD}rad
      z>j{P#+jqFP!vj~YRnb5mlOz-M-H>5Tnfi}0$!fkQXs(r7GKU(r69p7cGhxZj-;`G8
      zOjI#{rX|Ve?=1_M({PEQlFfd5tIY?zCjv=%#l%%Cl9ypjUhZbSq{JC_|CS<xm*TC=
      zXLNAsEDX#)y^+$;Sy2ERzUK!F%UR{qDe%L{QYgxR0+tz^*U+FFp|no68H|n}2ab5)
      z%A=~By;$oKjz!|g)3qeDJY@PSK!-*T!#J%h<me4de1Wlh4D%yO?`fGsncjxlY|-})
      zW>i%Y(e*iLrfI1@RzJq<sI91qNsE~Pa1Ip$>T;O0`33os+6y00svqHk-T01j{Sz+Q
      zvd}of<>!reN>o~@l6&AGF>J!bBeM4x^Jptu)r1F2xJDSAw3cz5RCKIhHC4M!Uujh*
      Zh1xgNN6d-aUB#5R)l(*h8`P1*&0pZE)ffN(
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      NK*|C51P4&ve*xiYZMy&f
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc^F5dH?XyHHjT1nLa|L202<Z-`n&p$IksAH0zGxNVQ^%Ce`~U93K+@%j_g
      zf8eV=h(;4%P5e>DIlBwRV9++_Hl6wAJKxOd&tG4^12~2223iPH_pJxk!<^r+-D<Ax
      zSod;kBCwp?vYO|lR}r2+IxqayK-P<8=|(048ew>QXeo5f&6fPYv&zAyn@%{i-7U;;
      zr+8ENa@{Knf_}+%?O=w`n$D~cw1TXNBwEp7!ay6LYsq%SjrFyX@NQcrha-BHWZ807
      zEYDWw*r)|H+b2vf?MU`N*U599s)$J!U0(!@HI@#+a#kbA735l7y21_enWiyv%qKzE
      zXJRjU3FrSBvm<0D2!YCk-lk_Wqk;WQPu(k|5@k&yg@a0>Lj)sT<WFX$ooxdqj$n}0
      z<Z>})QQ3w~991^W5%&UR7&UQB8T6720=cG4V<ytdl<@3oEg-bJqOmDNcav3oWkN^Y
      zvfWrP!sI`$z35r>nqBtu5z!<janeAJHQudUOH!`Rx|IbX9FzO?H0#4fDo8i*q%&`M
      ztG8-aMK%bd=}6E&+PEMc=`}lz%XAj!3``Nax3t{kWnvoV32j{XFpLZO$Bh^%pIK1|
      z7fs}q=4}<vYTOiMmWrzE-jrw)lY5FD@_599IZ};~ycIV6g00%Pd;1HURFnv2(RGDa
      za4g>!zJUe8$Zi6~&y%rsJWvdASGMv<@LSh-<;TQxJD<+*O1vh<KO^~(H!U!EPVx$>
      z@WZZR51-A*37zQT6LEic^Q-{!49vbT#wTb4Js)@*LFg)kyfC~!a*4y)8GY#I-xW}A
      z4D=K_LjjrW5A=LP>aMOQ^v^i3{2r;S{t1WGG?Yzz!id@(&o)yXVL;GhX8Q#D=ovqe
      z=NO<DI7%-uMz2E(LlO8Eg-lF=6Y_VQ2@)odjmf-XGK|TYzu?3M&SVGrw7!H^>C?5!
      z1}-#(>Qu1w1_r%FKfMc6U5`SyQl++1rEm$CLoHI6!C*)!g)6+%R5D!UovKj^v%J&U
      UbB<3fC}5sf_1{9chDEgf2DmUs4gdfE
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETXWk)6#kB5S+=V-&BcMzrniK~HYRQelu)NY>X6pp7DyUH-zr;bEGkPLX;X(^
      z!wfIX@Wjn&2WEJph2a-)zx)w~vyyB%Edzr+yL<HQxqf?gzyIsYuK_IKriuh%={^0f
      zzE}2pma|jt+WPHs#}v9<z9#3(u4kB@Kfht``t9ZQ@KZ&SaAwr38K{-ln!fP#mKdm|
      z2**d&0`J?kP1ARGy_QMPLc^Nlo5Ckd)TMS=?}>5<RS4<TmTftfc$qMkFEj|rs%w}k
      z4im;7(au7{xQ3&cAf#3!BQ;;+U!jo!VM>FFG#l0}$GpDVX`0>*y=ikIlXbVH+YQ~b
      z<aYpOF@`6kw=BmLZHx0;4)Xh7TyX{CJ7&blpw5MSTxiwpbX~`EM5Pde!|JI;n2zyS
      znXvMYPGa52$KzfzOw(x%XK<D&6>gV6HHpn@cv@mf+q^9#u%IC?fmG8K!tF??sNoq2
      zDW0{{7KDsr_6AiQ>gtvgRZ3X=kMyp1dbe%0{7QH{S)9jnDwenjhNn7E(Xfo?xf7Vj
      zs%yI*A6I^)tN^QIaRDnTUL-6$)^Z~aU3c9(YmTvDnzn|QaFOW^+&aQ@?RDL|v(?rO
      zw?~+dLL4~lAXMDI9P~U^HCzIBXPSFBN^j~w?VNF?(2%OHYFLxanKnGVw`sP7OuDLJ
      zUFI<r=W&(EwI#uFe?!9+xu1>qrLUTX*N47jKl3r}u$Q<22J~?Y(jJfZd2nIWW?#O3
      z*EFJRkH#h;mAt<dT+j_m-i?XTmtawn%NMuiIHp&%b>BCA74Hz{{*CqULEsy7_`pNL
      zJ;*J{L*en1yqo+kDLiM8W#kZlEhEJ<F#Z*^n+pH#;mGHh{FI>trg_ft3i=R7=mX>e
      zlt1OI9XjBW8CQz;F!QL{NBoj~9GGdL5}w2{R+iZuj~uM<${~>a43nP(0c6;e)Te%6
      zI}`3lwycR0nB{%x<s{Ftjy={H<F!~~H(%gXAE!cTu8+A;I@ia!P%89MD8;d6m=n-9
      z{183BG(E&g`WAWmE{J_P^g4`PjAC;nl$gl`$A1=!VHT9;yd}q?w2$&dwR9gZ?4wee
      z%_Vb+V&qbav5!|6y&Ry)Te&2U13Rw`cXFv)iZLs70%;#t*^k1QG>RpOA5+;X=Dx^>
      z1Ns3e`jMaUpKyYH#vJ{E3-l{4(QnwM-_fBz;M1Q$jhkW4!y3h~Mu9g_57-yDhO+?|
      q0@qne$|~_DOUxZhZ?Tl(zk|22$(@$K7UK!rz&5Y4SqKfhi_G6e5SY3E
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMYjf087=F%aHra;IZA-V5ODWJwcgxxpt5VpCwu{BZ1)-%C@V43Av<=NBH5+Uh
      zKPdhHM87zGR)-mH!>t!#2Je2*f8h^N-;?aMb#%teBzezs-sipL$@%Ti2af<8K~Vu`
      zIC@2YTVF|*mrZ*<xn${c$&%seR`QH^PB?DSaLWT3+cR8Sw<cY^WCWlBiQzyaIqy3s
      z$Ma>+)eBzLO=j5B=;r5`$xIn#=c-#U7_@+xvCD>6X6VQY@1(x$B?BnM5FRU7rfqsB
      z7+PZSSq3TX6b%L286um!RcMH4Xh#QwJXRqou?$`D*;X*@(4Zhp#H?u>XRns>hI>KJ
      zTU1DA)+y-LtnQj(?Sm>>uv0`+DW|t!Qhmq#`u@knsE^3JQJG7%+re19-Lz9$a%{u)
      zQt>)in*l2@bk*^?GsEaV2C4g2Vr-4tO2gW(;Q$WOU_EDvfn@|Xpy4rrNtQ9^31Cn|
      zOaOA;@jRy_pdk&11r&14`2~-m)i#!^U2R*^O}o-5!|;EUcgoe57R*996?`NGPcZCm
      zl+5WS{i#UeNev@-ia|BY(}rafJfrAK<FblpFsk4v!(d~C&BD$)&f>UToHPte!!aBu
      zjnbz%=b9zmy_R-t&vmSmy1O{NpckEGhJjcxyr$2db}YxOD><cN3?~#kOB$|;vf7)5
      z=kPoUnKbUxNQX^Rp-8Fttf+oMLs}HnMFnlCM5K5@!=zAmc+Rw}De7IYUeu5gEVa%O
      z@Jkx90uBq|S$bhn1UReVWj{dC)tALzAUw}&m=c~lx6C1!f$+JYVMh40*OOES#OA4^
      zy5g#Bljhk9-Ph=*F|q}^=NR_-p4DMCe_o=f)Be#gX^OwHqwypf7K5cDBV*f!o3`|F
      z*(fW>GxY!4*A9*%`geCU2`PX{{UjZ_Lv-&JX9Jy%A$qn#C1e||Mj+D@h&+ULDNNTo
      z+U}wA4nZ7U^i=5$ZlR5vi25jqN~cCG0QF6HXlNbXn`v)B;+{{_0w?rf7deY+_EZ9l
      z(wkC1x{J=+egctJ7XJKQpW7YmSGeSfz38QV5oI4eMIS5V(?ai|1ckYezE$)ER{tvc
      z1MAQ#4h2?x74bwpS2xWB{03D10lN52?BgFI#y|3N?+>EZat~E<Qzj&6lAQ8Cj^UsR
      zK0|fWjM??W-y?Zk*`=)E$S2sI*uc|kNZo=;);L*--l!A}h1YOWSmCG~SfO0F*szqM
      zvH$|V4V<bFC8_Eyk$3Zo7*eqc34V38fzv*{y)74&Lb={(DAyh#dMLMsGl^awCU?15
      z+woWaW{4={&@0}A63>SzgiH~{PQ|QkHZ*>&*7$T#K!l>mK>=+<mn#JbnE0Wf0I}n*
      z{7kYaAd>49Z;_*|RzOG;Ks!``Fl(E2AzmSofPV^^e?}Vq96kIN`uG=!^Di;NzrqCn
      z8t3_KT;zA4^Sf~PJ-pBF<0fCn$9x0d@Ne-ue}F&uL;S@bF@=A}I`|K)hyTcu{3n*>
      zKeGb=g}ujr^#wB(2%st$cD*VXvS#s$kTO{paZm`0tV?7`zIB-_5+Y%*k|jfC@8C7O
      XPQNY38~%^+CUW!^e;$L50$TqDv`+$?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETXWk)6#h1nEn8KaCXK_TO=)OKY-3_V0t6gd64NxMP6EvZc<b8U+A6Y?krWbs
      z3cT>bzzk2^(q_0$d1Quv!0neXoL$Mbl6IKEp4~lr_FTSm)35)0_Y;6wylY^HVfHTn
      zfFG2DecNr9cO8DG+!Y~r%4>38_WYLcgQ+#)?k#gax*E_KCX;FnC01T)1fkEHVNWd0
      za6T!ftZ&zDiNM?Qn}WfL6l-oE!hm6<E~U$SKP*SA3PWbG>DaCvUS-hog&hXH>a~P{
      z(+tBWq)k{Dws00B4C%#K$;j8}SJ=sd;hY5n8B(m<u2|peHiW;$8x8>(t$R)G>~P<f
      zcf~ZJ;W25=B%fi&CVX=W-~Y-LMR01D+isi_hMD{z$g0=f^<3eGl>zUD&v!d^GpIzc
      zO-$e^0~Z;lAIfB+PIb?Ff5~mF2;o?`gh`6AEyC)a@00bdj_6X1SMr7b#IM9E1}>i{
      zZlWhPnu5DZE`uwS&$umSqB2%J$Ma20qhKJ<kV^vIuB~yGw}o$^h-ay+5}uT2n2Iyv
      zaB9Gf#$C}2D-lxF2}-JB;yIKJ%uti`tKLhMh37F#CaH;Hljn{lnY>gAJ2I1V7UuCH
      z!&&9s4Smnq?C_SiFHt-qJIdUkVHJv(EiA|m%d~vHFB^%0H5tYRB^;EMp4ybA!BY=1
      zwFNt%RipJGEdszgQPHB|>5atnu}FIDl1NW~P!=93IdB~dKCGIhv01Tj12kf~BkqKf
      zQM2%-WN4wcEAMp+Yx16Mcwy*uC2PaNTauOX?RF=mCp#Wvb5o7?iY+H=B>5egk+q|-
      zueq-9s}2tW5g4GMzMSlpM8hSO8BQPj3}KQ+TBDVsr6!xcYAIxpg-M)Kbelt(c3}8>
      zSnuhYuHDC(Z!r25v4${4yGbXsPjE*27&*lSsnX2%4Nzf-pDNzR_(`=-p=+NhH7gRr
      z<9LFE8J@)X*uWQrz#!iI5iUHy(;s2DG&*&JXYQf&In2@#ULdM8k<)YO+j?svm%1I3
      z_wdrd-#Enu?FVGFACc33#s%#G=Cogw@72hD?3+B{6}+nO%%g%u86fdq!&S<aq^=RA
      zE9!Nk$S(1gh)R>rGO97|1v;gs{xwFwq%%sFl!5k}@;e^A_x<XzUuory*vbLPNUy~b
      znfVsi4{<%BRu8cnQ8y29GoscHv0fVZiemm9ruGNMv_ElC`wMyPZ{_<^WVP?R*pIo0
      Yx2Xe$=zmM0-ozH2vYZUtcn8^k0cVe)ApigX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F%~u;$6#qTmOeUF*P>_IFX^SlqAQDTlwm@4UEp2LOE0j>Mr5Ta|rc5$%G6;30
      zt1j!ualzJ2UHVaI)pI=R%Hwh4LjD|&_r1v%MHdEUa^HRT<M)2|-k0D1{^2J8r*Kb0
      z6T|R*^8<4$QQowRtBI0ht|SVUZ#s!-@t$<OyycZoPFux|ly4P+wFZTur_pa&+9f8I
      z%f4sk{Hj@q;Yg#I3_q8evC8g-m$Mj*z%f-UTYj0LH7%?Y=BA$rRAUU`@tk89ZT|uT
      zkM(C5l%$)tG`zsj@|?8}11$y)qm>~vUUAZ5Df;whB4BvYfQB$RrtPA2eWS2!dAH1E
      zhk&%D-JI!UOwSf;sno&IDWd6=(_ga*--yKb|Hz^v94eW1u|f*NP^^B+q+2MtMXTtK
      z)pb`qv$SUC%3}d;9o;yl;V47j0V*3Rm3H0riDG`rvK#})(L>CyTK-MXE|}hfq+9eo
      z*STbR>$7WS-rZz48S6iIn565tUcEkJBKHXcCq=lI4}`mFudX@t_!?fL+BKrPCK^UZ
      zFJcDzF~FeP<yp(Ia=w+9bzIaD$B>5CD~__})sq`Y;0>xgHHAb(h1<s&fgJ14hzP?5
      zPK#=X^PagWimKsFhUft(qIY$S;4K4Z1su&TPk04^h2<F9>*Uu9LR+hpxV}|IM+IeD
      z^rYx{Ko610)~H4D#4f|(x`V_{)~Y0lEDA(QHDtAkBvWLh*aVTGb6-*9roc`HEyRB?
      zSJi3h+eb>Zk%F@BpP{q=YFS5G8McG25t^uJ1J^;*r#RM%FBCToyekykcS~YDYv7hx
      zhn8L6cMC$5F)%Mwswet`w(QD;>$7t5r))8Ft&MlgkSH462&rPx@{*2OE?Z>{cNtDJ
      zR`WkDD2C?!R}^|^+&MieJ#y;l%2N?W1UhLB(dslp^afgfgt4H~=P8=ML)$l`YC=1`
      zb@~QBk7j-jQK<#F(tS`1K$R!GI`9-7&$~@R;g_YG5g6embdfO)5{?7`*b_palWy-B
      zUK!P%;nmUb;4kRihBNpxdPgH&kzMp{<NJ7*wu`}dcT}POXehgjQ^7*bMwMWpX4QOD
      zQL^39K&n`Eg#$-5tJJoI6l_1n66G7&#ysU43G$uU#+k-^)fCl8!d1zOG%|{kr~Hr6
      z5wGpnAl4bl2p;$xRGxv(=h4a+(8(8ZjNd^ozl&kMgp2$hZu2abxQP#W9v|}+Jmjl*
      z#BF@R@8e6pj<2|bU-|p^jeGcuZ%B4avX*-lc8N=z!>D9@4`Ub?B_!Q>T%c|c(nXRK
      zDZNdSDy0dMLL~o*NhIkPLdPGtL{b=?$l)@ksB0e55M04kk{D9B7F3Wf6DBh#-=ghn
      ziWM|YNaW`qNqil_ehr^e!6%};Q;D)gHUiy1oWeXodI#x1y0L>Bfi$y&nLwJ`!Cbta
      zt3#ZDKO$Z~K|B8xNBL)n@y})M<3ZF~?tvON1Gr76YofmeiFy(5(YI)9hC5h7<R7MH
      B*Qfvh
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OK%%h6#nkq@r><EA93p@PM>K@W2dg&2ZRzAN}7`5kfe{afkG)A+Y@`*@r;?7
      zkQNECLE;}&f>k%D8y2u=T7iU$kU(M&V#fl!1&N1PAR*43nb=MP0$Xz*XU^lh=Y03f
      z*MEKT8Gs|Wu0moMyRN^X-z<8|rd=<#EPb)qG<@AE&WiDr<JJt<+kdv@n~r_j)GenT
      z%2db<!@ahZK({zi@qAaW`m1UR!}eaaAjGBe1;cZe+^WH#oG@+Ee};i)a|;aeq*F7J
      z;ONt!BF?aB#<Y#OrDnx&FX|PGEK)O0Rks#&*A)9mDEkf5V>mvuF4+G%Pl*E6jR<ww
      z_6(n#jbsCFMSa;XPCCt&V;i<#%5{aIVkrrREgCjsD*^aNn{_7ZoiMN}!`7~5H=>F`
      zf+r3ZKnbHJF@PbFqwNf8woJd=LV{#FHSEG}N~iC%$Y)u|hBfRJGTAZ~eIeMd;V~gl
      zDvs|vO(7c5kQJhsYt|b+L&7$eR}<0SMHL;Hp|7Qzc9bxN!han5jH|aAX4NZ&KvfhN
      zhI&giUABG0wRLOC)tf|s!#Jwq2-Toh=}~^pIL?g;yEbJQmWE?^oVZ3sJm;EC-MuyG
      z*uLvnr*-$nd_%7}%MAOoVcys9ebTWUx64SX<`|Bvc#@&Nlk!#g8lJ*9L!9^#m{Hx=
      z9GpCratlcu!U+vegIK+h00|_-oO8NO?A;b&h*)L<#lXsd$!Qp!cxT;jI%^Nu0zf
      z4U;$>I-E5;Pp=ynZ?(uF-J5b8Qw#^Y28Gv`46l1<3*qG~RP^eNy6Y_2wIrU$w2CrA
      zx;N&f@~m!?XIH}un4yCP=;>4<cOeNZof^g2%5|f<<|+i~D8(_yFxrD-S$A#fEMe<d
      z4<n9q4A~xi!*w0^-?T+#E@+q+l#ef(mUV$Z2&!Dtupp|RjFL@dC+gR!I$h$fmXK~b
      zyGhS2dWaINLC+$?jzDvj7;D)`CUPq%US_RU7r0RIgK|g}y2hKkal^zAw)vppO_`#F
      z_4l^df~Ww4R<?-<la}szhNpsX?dvVgqudW0EOn_=h@!VUW0*P;rzb|8UZ$BkDUAu*
      z9iy4i92>ol<j1s-pwXD58PYe9rSGtT_FAZfjo3sxIuQD46b?${m~^3z9%L&>eMHO9
      zg(6I(9|H4jp-N;<%1C1yy%&zQMvmTwLau;Z{wt(D#lU5Se)o}?y^Ddoat}MiutyC0
      z#Bd<r4Yi9LLi&l&{){csFBp`5#ZKur?3I4Ui1bGQVNdA110fedpn&urC4h8ekPpGI
      zKPgpx1g3rPAr6hJ`3ESj;E9a7g3{+W`5vwY%ZE5Q9?!&AFfo=$CzLx#r=EL&Gvmoj
      z@=GN0nIzey6R|rOOwD%W`$G9$45btAlf~K2o5&)+GcBiM$_mblm6DEDv1>}LXDg=_
      zAqe#z;39<*>arZ##jeSuy>>?ya&1*4?4w<`>~GSy0z3|dC$NDhG05pl!8ahsH=@Y<
      zafENi7*C<Zw_t*&afT0~%m*;XGnnT?xWacp=etqmyU^f!(B#AL_yN4dNANDs;x^CW
      z1D?l+{1EQ(0>0oye9I5xM}9OY(mTP}?i8urDN-9R;-!E^ZCu9gpqOpEOe<NG39ryf
      zu)B>bv{LB*Jzm9CBF0{v$7{GojL%^jI=xL$-{?aHRigPE#R^xAj!Z(0JV`LHNVE8w
      JGt^-s@i$7iFFpVO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETXWk)7(Kg@rPx)P=Hfu<y$Ox&x^Y6dgg8)AmlPMLgrxNh0}rh1O)M%)9!ag!
      zf5j~+12g;p{t7dFVWy9rek;kA(=sr%N2}el=ewQ#R)4+t{Z9ZZXd2)QD?f<G;;<6*
      zZTFzkbHsk7D?{N_w$*sc^V`x77IuUq!%)Uc0~*7XQ8O!|RW_|4^hGNi&~%1#qqNBT
      zgZi!vyhnaZGMKSp-3??IFibTRyCV8wC5EaD;~Oo<cJ1&}hOt7i$)MG|wlpxoF!>5Q
      z2NRPf&R~i`-$;y%LY;oaW)=)HCJc;|VZ(Oiy+>V3`uBz9P$JU}uO*zO@NKn@z#PW#
      zmhzUPm|@4J{8pp<-bgE|VDdmFiVW&pETo0jyl&5Pr5jd@DLAa2wHRhoJS8)%{i~Cd
      zoA`L$YnEiXY~l*8lBA*6V_<cKEtq&$VVWcNLj^3FC@4U;yfE~-3M!enuAq!>A9O;7
      ztSkG2s!sKU?Ix8nEd5V<cYM+7*sY)%A5RX;c+bEJHNo&y2NV;lc%M3fbgX%f=hJZ&
      zM#_q?Y7QS_&A>+ti?6lZNJBR~@8PD~-jdQW@iEq^L&@!qZ+C_Nq~^Jy?>V=H|8TD(
      z+FqYwA&GS2(4&ZHA5-jQY?$~2)THCo%1M?pCnTW6tHq|Ger94*_2_up7yVt?3RUhk
      z6Sq}5xv0u055?UwaVO&L+m55SbXo`0$>}){RH9B}hx9z5hZ1KU@)d~3vYljeCN+r_
      zqy4?;9&Xv{3QUb&_$8$w-Osw~O26iaAdrE9`wa8{C2oB0>7q=W_+C(}QK!+9q30cS
      z1?lsXp)rdbA*X1y3Y|t^@(-BbX!LuE)4yQ)CxSR;Y0S|Z>={n8zmbnnTB^%AbU-B&
      zo+&-W+^c5)&<E>zWM;-Byp6L&R@t0O9IVlsLO}Z&(?3Q5R9Ic{Ig4!P;{C*ym^hCM
      zw6DBeq*2vzNSrZxm&)YkS6n*6rFb@fg!y=O?FiT6S@8(PavE!nGy$iQ_!MUOG%oTP
      z6!>fu`*Q4c7`v3jrbsB0lAPk-z*3UMbIMz3Y?Y5uSvShR;e%sT%NO!mKBKksy4F6%
      zO+s%asHPp`bK1^)PrD@k=qj%hIDoW~)mekAQ>9CE6yOWc`64EG0q6O3%=0qJ{07$f
      z61I5--|}S$z7kcm8)rDI$Qo8;;S1Cwtu5Te)u?g{U(!rdHK9Q>Qi^8VG}Gz-9q!>P
      W>MM>N!a2UiF1=N2Fzn$0vM&MsUWHQt
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-*4Mg6#i~|9Veby+R_ZV(Qe(^HEGiZ=r%^(4Z4hWfwXk(772-mI<eQ7Id){b
      zbo(24;suF!BwpD@voZv)2qXj&NNoSi#JSgLlC=m#BwrsNpC8|MemK88fAS-MH&9X0
      z$1wki`KfuY5biqOcA@E-cM1(VGTp+eIIsDEWe4HJy5HPsuG-#CtWd!j#(N#B(y*{p
      z4Wq!UMF(aHhEu&}GXCw-h8_AlLCt2+W5<#g+EK_bSQgd=b2lo)DuW@pSaTiEiLNsA
      zXLA(>Ui2+n#Y+t7L)IE}q;(8nkRh?yc2ct?`sFGqFubfoMUouLj%Tm!G^%!R%dENt
      zWT@=dOt)eNj(C<z4gGjUMAIl|RCfs9MTzf!R*N{Kx9xUK4wz15yHtyQqv?CL7a6&(
      zvdv#3)T261VvOPPKl&VTIU0n4)fk4mmfeggD%n{b=P*I#jr=B=mW1xSjwzwzu6-vG
      zikyyVp-5EyDDoRZmDe#VR7&7%*CX<D=(W>s<*}yecx}=QbN>N-B`}+HrxqG<uQbf#
      zqKXR)Q%A<9XFSWke|O2VmTlYBaS3nHv{9kg1E*mI_lv$41-^UT4DN2$P0Qb9n8?Pp
      zd7*(t-}Qs;Od2Bh+d39RxRXc1-5{#2psQgKS5;i0q3ulJ0Sg`P;9Z(r8fqDx2JZ#_
      zl+egkM1*TPieg%mR$%UK*fkmUJsry(rI=JI?KZ{e_U|AOjTXB{*L}K(AFDHHRuAEU
      zu8Rah_KHMLcAIhqmmM+vgT326C-~56mORf6imn-kcBtYO!?}O!MZEH~Bk4mQ3yjkU
      z_tT}&CHIfMJ_?dZK@9gXdYVUqP9Xg~^p6r;;g50r5r!U+st?0-YIFzx9LM=*$Ve^7
      zl{T{zfXI_xnSP8Dhuyva=U+-UJvPFt7$IY7FHW@s7=(~gK%JgpExh)P%po!-gbV*l
      zx}S(m+U{hG(>O!#MWC^Epr6Tuliz0kC!7~_9%ATQjLUOUo>_U$5XH5xF`HkTjV<;t
      z9!ryZn2e?D9<s4Cvxk}4E~sfD4*r06J;X47gfn!X;w|K;aPxd0SNL~W;ZJar{~&>1
      zpn4Oe4)D!3aG{%{PV`}d_!mg(M~>D!mKa{Ae~Gw5zY?t!#W42q=7PG9%L~c;h}wdY
      zAI<QL!mUh#TP-Z*N0L&>w=$e>jb@ZB#S&5r*Sl>QqsoE*28I6)jsJlG{wGfJzc9(4
      zVu3%CkUx&obs!rZ$Ocw$Lw3SINdhNWc%LLucLN`gB<LC_lawI&5>~NBIW?m5AxVPp
      TI$8ALCN}6Urif7~ZX@+K-WZkw
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-ELAr5dMZPU=I`uE&f;Av=@M;N7EZ4h6_kk5;STJ_Y2*^Hiunu&Y|FAdDX;=
      zK0qI;arV$iW4K_G`JefAW_E9G|6Buji-Rmugm)M6QqKKorp?fw1oGS;t5^p97sp#R
      zJX2wG^uq>$y;Naq8pqZwyjcjsn{}%1R}nHFw9#>suu-k`2%>Gzl!py$=8;B*Q0!`>
      zzD~z|75<d{KoQDaJCH$7hT7S8P7#lEM0np_r-N1fHwd|j)FxhxLpZJ`SiYRae%p>G
      z)+iG<mcCD+oQ(7!YIOM2dambE9t9K$G$8CQGndsI8WMJvp?@G8nKN~melg9MMg;HF
      zPQ!uvsNLM9`)_dU<|O1h#;C9z$S6`#7B2~hYb=1fTeSilfS-Xs1CU~k*Uvo5)(J~u
      znXX^q!S5vOG50tPq5&bA$g!PYB(dCLi`*`lJAgTJCkypgulFjVlCET~u>C*MH*AUT
      z3DW09_8k(}p^Tjby?|X*+`a63h(}4g1w3X=B)%uCr4#KbYZ=ab##Rc?vB%P548jZS
      GWAiVA!>j-R
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLZBNrs6n-wdtfN-PyNW0vZ`&BucaaejftV}-KB$4{7t@Z*sOehL7BJEH{&W1`
      z+aS@z_|3#0Wjyz`unG9ZCR=Zxp68tBIp_4(@2}qhTt-Pl3&ZpiYukEihC7Z|H8)*r
      z-K>eoa?K_AKj#N)A_zzB`L644i(ttLs*V?<8aTsHGuu|t<{dkX0;>|mVGKr$m%UI#
      zAw$Qa<e1h@WX4d5Av0TX9nXnwGo*6)6$U=<uL%t&7_x_=b?7*0;1se9>Dh#&<;ryB
      zSK2`N4YVRn#6`yw%Ud;D1P?6R6%3t=e#LTEtiX}a3e=H8kIa^#n$d<s`eu~A|LF)B
      z$yP<;d*AMOuHkpyuWkCC@S;+_0VYk*N%}bhXV6bGIhJ#Tax@78t1xsoA{!Mo3^MdJ
      zkLzGgTT$eDItFmjz%WJ_+Q>ybYKE@d(K2l`gE0f+$k7aJpXfEJT$XUbz=VXkE7l_k
      zOd6PyKx^PsHxzQopyeYZ75SS~%M&~My<#>)zY@RS{=YR+gZ2CVR!|Xl9XZgB<|Uny
      z-e}v(o+pBN*9t=sYPiKP+-&+E8%|9-ZpSf5Q%TX+LV4v@(TO7ijeew@o~|kk$bN(V
      zFiqDUjL&HQNUvJZN&h<C!5`riUqzQfWir~gg9Ow$!dnY_=srw)49;yuGvXlh;xq*_
      zT9dO$f)eSY63_}0Y!`hWR1H}<Eh)UF=)G}BLZ@Jy#|3&X6ZI#F-V=ipZ=v`zwv(cZ
      z>?}?Ez`*k4E{0Z%pV0mVqjikNr+gjx_*AT;7@y2K%wj{um~0b&Mn;~aoxea2e~CW+
      z3M2eAruZ97^S7Ae@07|yT>n7jLZXs1;R>m1K@Uu7`88$vx^j90H|Z`v9{OxBgUlZg
      CDHS~c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+in|082%=n_1eqU&dDuq2{bfq>@<xjEp3TIA$3VHN~?-MD(<|oxABtAZrI(D
      z@(R2LSKM)s+6V*>(EC0ELPA1Fy)ELK-L=<EBP2$enScJn_aEoUKR^El;3C>O#sn^Z
      zVSQyiY=rxcx82xtt^18#JF?uyZFS!8gPt9Pa~s{jcip>|XD1vTQebw}ax2zstZs!-
      zV0EK`T3+DPs9Nmcv-T%;=syU$wm{zTLOTitCf1c+!`hD;?U>aRD6Di{$8)0V0=Zg!
      zQ$V)-o~`4UK>3ii0TX2t<Cq}kN@}Fn+FbR`A_S&P=qS)|-SO-@4|ccg;8SbMWeAh&
      ze%Eq0t-w+5m}ww~6AI0sP(zAJHj|F=*~qP%UV<w)`pn6G8Iw*1{a-?P1_S<jfm
      z0*J1_bjHt=1zy>+94`eHSUM6iv%D2pdwr)HHj{!Fn8g_#Z!(sbx--)Lb>H7v^?GZz
      z?V6awSq8&oTD})?9Bx{{&PLzr`TGKMwIuo%%G2^)KgfFBR8Hqj)D+HmhLd0@;ev_t
      zN?4%qUf+pq#k^o*NimJg!oXX2TgOEX&2S0^37WWs%Y@)i#s1m&7fQpBn)OYEaK*$`
      zH7$i+VC}1+5D?o`KcZ-qJmhY3f6dK=MV}G%Mk+9#nZ<tDc+GXT`w_=+*Xi}tpcxzS
      z(62e_F){kVmQ)@BX4~`ZpygU&Xoos(37q+__N2d))ja$^SvP(eZjIYegU=r?c^3KN
      z?C^C7d7eP|7nq+*scDZ<`U#UikTr&Bo(6B^{zNJFJ1Q|3H075V0<a9^YYUHY{IJ>I
      zkhy2EnVBfzRaB`ga1y6dfNQ+z0`f;pejhtfZu3e%_dK>ep2$;MmBDM6p<Li~yup)s
      zh$pl#c#j?6^s;_{bN3EVUoISAak;oy)gPg;I8%``6|JN7D)JHDNuIKjCnI?#qJatp
      zvJ(rmP9;$r5hXU&LV~MxBtex}-O4hBOz4*c)#6chqfuy`fio=$B86oR8N3_@Hl&D=
      z_26SnvRKEU$r6gPjFKG3l$=6UPNODI;Ho@{yK)9Q@-)7bv-n2N;afS6?_>?X$~vCP
      z1^gk;3n4GWeYl@gc+dwimiB>F$2GjGx<qOjP0pO6R!GU1dXJPAQ`br5Nk7N?_<$2x
      g!ZWOrDqsqK;RdN9aa!>l+{A~x)u0Ki;Ug6P1)<DydH?_b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DYj4y>6g`u8*1L{N5|T}uwgCcx?4}`GS}0`~Xv3nwN`Vgqg8D7addQkM_R97)
      z^fy(lTB%J?EA?Yr-uxoO8QWyTLr7Ti%$@t1bMC$K@Wo&M062xqCI$q~+;x6*?$zRL
      zFW9JcedkVXOC^q9yQbGmVdSbPp1J9)`|7H4c*s;H41wwWq3fw@ZE-zLBBz~XZUP6D
      z>m^|x)e2&j!~&zsI<n?$C$&t~5Gb7Y0x!8JFj%Rs3K-4MRTc&@WWz+!#76?dZ$w$J
      zF|5ra0%oPfuew?S@3bLNp#QQLsO!D0brq!qXju;1j=$<eo+gwljilod)Y%l&2Umj7
      zhc{Ht_Z7j}N}pjf-0Fsb3X(>(uiT?8+5+Q!ecxGNsOxyaULhCWnX(^wC33nQuN^nC
      zI#@V_BPI?D%<k{fn+;wL!_CFOT~f-oF^!`HLo&@UNTSfc>_nR@9mfr~1!gK4`q%2y
      z4E->=)w-eLuotyeLti>$<G9XKWS-j{FJTjBQ8iIv+xPnS3apJee3AL4x!9rno^&`;
      z9kb5jq>TmC=*a=fJ;z=v2!S-JtJ?LHjj!}X6y3<#))OEgHU!4rQ7T&Q@o(|}i9czI
      z4oA-=Z-J41K!!s=`rbw-;fRL5D`2gptd~5WSB&m|FAJKefZYlL6*YY)j#X^plEAU|
      z^&)?4%=OlDV{3RTUoFw;*`_o|nGb_&iKivXg8TT~F08q~VgF$8+r@!DG5S080~q6a
      zK<AJ@!;rsVO#X^->g+5IWlZoS@G(BgbDrZqK%JcX1EarD$dVLvfZR=kCo+dTm}*So
      zQ`!YS!{=NHO-vK6#pvFBOx4Z%I94yt@8CqeG(TC~!TkJG*_bNJHR+a(9ekM`jdFns
      zeVjBiAGv1GK|AW5W+OFE8Eg6JEz@L)k$vt97$UxZA?1It<o_6v4=^Dg;<$W-)ABLu
      z@(EVtQv~uE68Su(cP9hBN3WODBN=>+(<%8L&fuH0H$9xCWN51RmXb`RbCe2{yQrhV
      gE?L;bc}hi$K;Z(V67yV4%ljR^=WeA1TtpM4mp>OxKL7v#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+foxj5Ir+2*|01^z<38#P;xUX;spt!2*ipNtx^z6EH9hvNLH8K)b4WeQ}_a&
      zeTkM2mcIH?mOY!q#7n7DH8VZa)7_^}Pk;UP@e_b)6jgABnb+oyxn~5sw!3N69rKm3
      zB|_6N?#cDG=Uc)LCfCGXShR&>H7`^s4AcK(Sai07+RSp>EXHv1H?v2jha&K{{i<My
      z&D*XWE->_@((4S$l4l7GJ?Ph=BF->awq0?5d#fV+HM8Q7#c<iHn$EiE+w$DHRKl7a
      zFkC7B7VO{26&U*KrtOAJ&<y!h<i;>}Lu1L?s(Y?*!$Rloj&Ig$b~PxJXr$Lwj4+IM
      z2M&on<F4fJhq;DfBy}9YQHDM{SaBtID@uDq>W=F;A$1z*EIX81Ny8}}Lr7>C!)X=c
      z3<((~0@enh;|$I+#5V;6b3C62N~Jqkqq~BJNt{=4j$x`B=daZ-d)}Kx*D4C(=$Jx^
      zVJLFzhQ8;l)=bOWWteQa|LF@wVLElCfMdw$$RbD3f*;UEeqxr;7SikTX<mnci}cj;
      z&E1Eh8ZxM<Cc6x*%5b<lqjp6|waGBjQMEatin2YLC7N$(5^7c>@<fw$S(tXM*#-j-
      zDZ-h^O*^SSRFIr%fw?2B7R^JQxJ{BtzZ(7OqAmYvqPwB;l6D5Y<hsINa?BtQfr@2@
      ziNDpO36lQxpoHAjk5qH|Iy8H!u{rJ3E422}X@+)2dvE4Fw0DtOr&Xh8;0sXrA_nNJ
      zHy_~;2I)kFMuJvyz>bkK>8O(Zg5iBkWItngE`B`Tz~Oxi%Kg|rROJ9l&sFsRF<O)A
      zK1MRx+-Oos_9kQRaq<A?at(~m#d9Ap(LlPXQmkZ5u^PCLlWx)-bb0g>x(87CDhBu(
      zrubuI_!Ag>12_3ItnlY3^A~u^U&7>-D1*ARL8X;}l%{bh%Bn&nT$cIL-4$FVqNH?<
      zBqfq&Ns`1>aGj(W^+pfoP@udsm~BY|)Q<DGLA0*m6c%ukB#v8T#j%Lnv}+WLVTts8
      F-vMgfM+yJ{
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OLN;)6#h=4YuSq0yqYF%aSKTxcH_n^P1|6XK;kqdkQ9j16j(*Ege~ew8A&09
      zAHWP-ScL_vGVGXvMKCOQ3~b5*cI+7jh8g|=Qy%9^cI+f{CYsUJx#ynyo!58t!#`hs
      z1>hoHRnbAX@`mxIaX060+fF67Su<YGZCHU(%Pq-u*7Z!w^G8?QN~LDaZUuqsL^>4;
      z;lfeww%;PeuGx+qOcOfOnN@;PbWKY`ClWdYVubER+p%tLZLC|~im_g^2z`rg*{H1=
      zo-Owcr4m$apD?v}ln4$-Um$dC8nzQe$q**eAyUrR4su0zW7BmkCn&UZH#}prYM1@O
      z0za8m6}^O0?Y?K${lGKIL6ohA9`x%tfdN9iVg*Z_WsPt;o!J*~WE>tAGz=oCVu&!-
      zj(e~pi>`ZT#xdtDtES@=P7_Wre$jOT&#lcF-knm_Fx_p!=mB3LP|>Zq-mQgY%XhcD
      zvK2Z_={O^CdRjOUhK%S@9goRFnZ)g?9dNG(F`{EsDz(-P4NoAgVvO4*qu*ag9T}V>
      zBy9h>BYS9u-G5C(785GY6MFaVH0!J*hYRf1m$`Awg#LXUVpSotDiNO4aS4-bYI?@@
      zvQ-WUYC7st7p`DR#Z|&!dr8}>uHz{gnQHqp-iBpLyn>Evdw7zJ5@lM)GtyAA{gPE<
      zC(?EhGdgBvA^KW{n6v#xid5#_v>4Q46@e<8PwS|ebb(Lq^1HzATl{htsmdd>z7f$U
      z`B3t3WM*6Mds^6G^%ywjH+UgxcBRTiif!1YDd$Tog<P1o<)*iN>?dT^2>OEKSYEMa
      z_`c<<xJ?*oFXusqHvSo0mBVw#Wa8fQ-v{Vmi6@>{m3No;OZ*k*K1cl1@L1zjV>2j!
      zKvDig7w`4Rh`+~pM>vjdUKyZMV<??fzf)cv{}w$v(8s?)&o27%Y8@x@@j4#KC+awx
      z*XkI~ca87j@g2ICO~!XIo=puX145VsF=6iFVp9DAmkA%>vusiekCinxh^;ARYC!PX
      z*z6+DHzS3z)|5g!K9VR;6LyfuCcE}fBD)wvC~M(;3C+rehZy_MXOoFNdqxvx^HfF`
      zx#U>oEp{GBtp6AvHN$;qOxY&V|76nU^Z;^ns}*DvMw|W7gKU;!ubfd?n`z0?HtQIs
      zl+4!g?BNcz81f$filF?3PUQhK<!|&W|6)i0DM1((9T*b|CWMMf5l2yISQ5uj635|)
      zZoDgc@V@B9j_AWDq95OhlejMi@rxM31CgQ*afVXjEKP}FnieBe5~EZVW8{c5y(2R8
      zp*T<X#01qvj(!r8^s~53zlp0MQ{Rr**kCI25=G2O_Of&x^ODyr-N18l99UXlNeQLr
      zS>gm(_X0~XbkeU_#1gZ7h<?OPyofkbbRRFVl)x~3kC$1}_}}|AmRagz>{2*EE4UTT
      LkQ}X5yn@7k*bLSB
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FZF3V<6n<`+lWo(bq_n9NtWX<h(uM{^q!L8i)V3*Ype=O9QO0bNZL_l7jk~u7
      z|ACJBK^?#F2l$E~fR4^Mesjhj!p~qlcQ<bo$CqUG-gD1=?%C%#=ia-2zWC)g0GF_(
      zAtG?;Gvf>6LC$Yl&R(uz8@suEQyO+|L$!;pS2I07b;ot>MZ*h+8lnP|y~`>AEVoec
      zrDs%S8x|8d-3tq%-z{#LzI)(RO%445r+NX~ibTP6d}%n+7l>WA982C1=u2mI1fm7E
      zX2#KnV>$*97dXCdIcDi#zhZiKjEZdvoLG0OhP`8WmKwL5QCYV*+U51$cl{@+d49*9
      z*%DNAd{eQSP6vT<MpNbr?ta5{Oh@K3U1tc)$03l^aROrk^MAYMl_jqR5fD{@(Jr$4
      zMh&NUrdQKit4?u@<8>Vqctc=_`QP#^rf5jZb%I<LHJoK-YH6S%Bpk;Xys0ufC7`8?
      z{LAbNu<x9X^O)v^(rqxEqVi>Q%qU;fHg~0RWOZCnj#$N&(%o0CoQ{jiMV_@+mjVNh
      z*=*-<xGSiYErE!v2#f_2?fuvm#B~^K7?#tjguvXt<a5O{8g;Ac=R+BB%;TDdce!}I
      z`8v7>)?N4hf>T>IO<PAE*9As6d%Pi~=h~~R!VZ<B(qW<6G=n$=*LJ<`?&k8(<A#p+
      zRhZFkm?guzzg;(KZZnPr6f`UzIZQ`M-IbQ@>sZ2v0*PJAwu6&-+mO=qxSXZ`lZkHD
      z1Gf32V|B{J9?R}dbTY{^5BT|#pC&(bf%tZCj+ZTU@`igaj5(EM0lnxrrdO~H-#2{?
      zw*{vDDgCY6M&Q^>_YEfbAoU>vg2oqDlt+B}xgF%uW$p#{H1iDl&um06#BH2=Pyta|
      z#&I6&AqWW!^N8;WjBu+0<b%+FHZv=pV)QY)!VodFgf@faV=5fKJzTD=*Km^ORiLp}
      zpy!A&H=r{6JH|^Fp5pXF%w_+;$geo_5hW5t&oH_12q&}j1gUHy@dRmQ&Z=fE`?w8N
      z$PQGYQVQ@Aw8L?c8G$|l(LLz&DH2r1S*qe3)i6sYF48WpP#ssvMxOR@lN#8h&#^-u
      zJ|-V!ItcX5gv>koDlL7ihCdW<v3kNi&h^`zEP*R{r=z(a{miDMG+)!kwLo=hT+2>S
      zIT@w$L}HNpWUSm@JH*vPymyEX9$~TvkR+Z<Mj6)ubjvuWN<?2FMqguyzQGiIi}Umy
      zGHmDQdo0lpSfL-W#`XsN6lmEB8FjRjI$BCt#!67h5>_$IT9`SCY^l1Hu*Mbz)=joz
      a{9g?;^LG;K?2llBQEGFk%HP5!2L1wz&9i<0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTXWM!7(EKHl&Hc^>|pMpgaksM7y^U<Y1$?xkdT0z1Sq}BjxY+c<k~XOKK2*2
      z&I6rhrmxKOCv<w5{(w$Pr_Y_9m2FwF0=O?a+STqk-)+CukN<xE1Aue*N<oi=W1IS8
      z{b{E9#I%c<vZX)Blnht5GArUa=TtU~N>xFxgaNTIW9eLWJHKfZTnSpf=DLpESS8`$
      za*!+U?aeekUX_q^onp~4=0aNrH;n2d*C{U++B7NGajd*v39n4J##48}G^~x5oGNBo
      zgLuWUEa$ONX-#M)y;3xN+a^P{d4A^gs#(a)iDzR|b#x`LhbGH2rfs^j5_XNByepx1
      z-q|oz>_SRI0s|5f%cgDIs+ICaWnIr(2Ay1X3c7Vyub5)ooa}WUnpFv7Q4^w}rfQ;S
      zxMAN9kDm<f&4)tU4~AYt46=g563zyb@REd%2KiMSLP{mcn;MQ{f5U)aBorKza3w<9
      z2-=;+Rio<EDg|S7-YJ!xn%zuL`-6%RjERsPmvDLf6`s7}lZb!JskuglXxg^GJq*-(
      zq^LwVPH9j?INp*l6|p-S^wB7biql9*7@|bBvqXi$ISqY6;k<;4-6%vzR7?tir0^kJ
      z*@FI(2362smT<ls`VI;e(}H|=lf02B!TYv`Hw5oH^q?Ew1*=wlcs|=8P%$f5(_Yvk
      zM^w<yYv>pB*Cb4LL%-TQw83gqkwr?u4GBks6wR6s*O-dy7!$%bHS9)Q!OBkc|C)oY
      zVp+H~NVi({v;+3O22FUh_CGxeAFx#+pssnxWWf}TVldcW&j?4^P8UU8&s%!6YE(H4
      za&SkagqYw^eiVG%Wm<E(Ww@@<aFaA0<3vX}DfpZv8O+AZ`pTls6Kd<$LPan6^r;<Y
      z6%@KWo43oZ>DXCQx13_j;AC`C!2=1C-PpKd*tJF1D7DDq;Ryw1mr)e^=6Fwe-I!4f
      zjTKlDE_7qhT0z`hIo<XHHV~Z}@=G&xfBMtG6QtmaF55=VDc8!L*-al3k(p$)H!7%g
      z8KHIF<iQAq#tNQx**v{_^oF7HU!)c6!N?r%E?(69v*}~&<YmY=Rons|vR8Y^?&Kkx
      ztA}ic9`cNP$R<J*9fcP>pMxA_h!Qb2@eIjt`O<?SK4oum348diH5MR^y&UypANF%b
      zY_`$M^}t9S2cF~LHV)l?hT)sv;mGnfM($6XdWO+09N^b)xT?WCOtTUD33BXb#ACl8
      z8T%D`W4~b^aX9w7r<ms2I88j^8J?sC<DNzRIJuMdgr|L)+GjeoC+e8!)c%9oe^UD|
      zYQI1__BXX(Q2U?PXlH!w8P98AsE)JGv3nbn)V{EVvmCe8;v!)(f3)Nt49L4Yb`h<9
      zT=bbX+Yy|i7mVD^ZA_ExiWk9C%nBnoRmW7D_kf6soFMNYR5^*HJcNUC3d3^R_dsP9
      zMa%#ZJrPHVx>tA7o$+;NsrznFcczY+PTgbF9i#4X>W)+Q1a&7~soRJ5BD%-xn0t;R
      zt%})3mf8!{zV21c;uhw(qOF}~(L=sK?J30NOGwMp7?H2|x^ep3sFt)}Eq&sLuUV;q
      zj4gQ?Tc+NvEiBcs)K+O^EK8MZ%-DjTu|C}PnF2MR^XhJuOzWL>m#ZV!=Jje`&XISO
      z)~_*g>)0#b!9L=!d@tZdwB~zo$2&WBagX>lPsJhn^Z~OuNxaX7FiZT9<By1+5T}Ws
      v5<esA#5{3>Xb_9Uhr~_dBVviTO0<btqC>tivBL3bVwLC;9}}MtzeN9k*nwba
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-!A=4(5Pe+{bVX5A<X|F+7e(X7GfE;vjmc_EG~Byug_@;Hx&`&KJehd#1N<oC
      zbn)O4q=#wW^v#=j^Y#7l3E&vj0vv|=6Cd#xFL{=#>kT6Q==Fu+k#}ulYiLZYe3=-b
      zgf1XAjUVtthF;6YET18NB9$~vhMhhCZ=bUuF`9>F%x~;>7;^3SLAaR1ViEJmGn9O(
      z#LciD2z}3kNHCQBIOI`>YiaRsGG}@+VK~g_&-T%v!GhEo!*-@_VlIZ2fsO}4o7Z-a
      zt1iv3J2v74f~&;4&HSE^gfe8tx>zq_6>AKPYHDeZ86^zvT|CsGxRBOob;|CK?D|jx
      zBW-&edeNFF76>&7J9Ovk2k%&TOaEPpZkjzMW)n+<D`OUlSSCb#te`|1%nmzEt30W7
      SNm^I`Xl-CK)vA!PgRLKqnU(DT
      
      literal 0
      HcmV?d00001
      
      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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
      XRJEhlZDQqlwdIbR(!@?UuDtYrqxs1|
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBrXn6n<_=vSGVW2&9&_sI5pt2&7hgYbr_tq)})sDWTvSn`9fdELmo=6zq4a
      z<I4~57x=|5&S=`v8OIrC{NQ*0j^lH8mt-lOjwZ8v@1A>Jp7We@&tL!i@*99xU??~t
      zkh-Ve*AKF-eY4rf?ppfY?2h5;R(4sw3tL8QJ8vJ9YIajWL|{N_XDyw&H>>xInyVld
      zNDqDZx^aPX$2_l=R*aUt=hPTl6&UuMnRd2pIHqoy5A>>K2*j$kQ#TxeD@(^bgs|m3
      zt=3q6&vosl|COWlHM42DvjRP-iHbm^VAl;5Js8x`hkgY^0+;`<TNMcm_CnyahLg|)
      zPA!>D<Hp`j)o^b6pc6}WO}8pK6JZj8Fyd~RErIki^9XZH{JnKY-}ht!nUrUl)%V?O
      z!QR=mn?}>kb!A0I-`z56tz4-zQBm<cUR3acK*Hnoh>?a1xJc(_YoRFt);)eURE%L<
      z!OH@dp2f+MZEw#t>x+hAX}E-xK)hkNc}uTt3yh^Ej^|gfE!*jqJEtOzjDksl!49}X
      z^ctoxO_wdh^~?l@j^s^GIho!VE^BOCMo%z$!EU;aZOxl4FCQ7;RSh$Ejh-ZhvO)q%
      zs>Gjc1W{wdb*byp$)g5Cc8?Bmu^8fjPl?ZG0{z{fW%B`jv%z?zQ7l`2&8)jyDtly3
      z!`op0^#upl4YRT3lKWlVY<jA3ERcu8x=%M8y>7CwDvBs6xGs<k7h|=wtT*+B;b?dd
      z?=vj@3XBI7g|1@GuS58Dl6Qe+4ewx9?rv(x%iS%M6|4wc2*-Ky?ytJ0)zWYqtIWm2
      zPGUTu0#l&^b?A~zmwXyMRAtxUOz}#Wz?z0TSQj|ydGc?oz;wt@w<1p|g>*epQShO_
      z*)Zt2YRh%>n(Ge%6&v_i!zZ%URkKw#EKVq+E>qvsa1Q5L$*RD4FTmlvI_iQ&SIgdr
      zS~TS_I(=*oPRsbbPOJp~Q7Dj;0dg?#9pj#JhVN7S%2Pw04Wu9O`4x%vM;QJY$sZ{@
      zf#>+{r-syvV4fBWIKwZ^x4{U`@+%^N2mb!1|0rdR$u>s6Lto}GUTS0Fd#K!Hxy!^x
      zH{;33CYOO;u5Db&D87hGM-=B?;qgH4=w>WXlQL;4W%7)sU6>aUXV_azb_Ij%i8ENm
      zBr2H28YOpd7waDM86RE%oj~zA-tf|C;7z>6q^0aCa$edET;ndnKW|Ks;uKd&S<gV<
      z4_thfB&$F*#7<8TLdf0@OtXP$G~LF#Pa0bx<7mg2*Wtey-+!ucp;MPXNKA|fi;4Ni
      zSo{;o%xE$~6ia+=M5OS8^iN1mhQ)1ECV$7q)#ymHjgMH&^hi{mxAAG0_i;8C@HyFk
      zh+%xemU+mg_!86jinH!(^7joE@vR4M)`!sHzS!Zu*x|m|;l3DfKZ7CYq&7+(Y98VB
      Fe*ry%(?<XR
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;T`vPs5Itk7AFDpf`u5^QS_vERBB_vQA}J+;Ht~3^i_3Ozv%RJMm5&DriC2jq
      zC1%^ANW9FPnVoay?A*8arxyTAm`R|AFn1xYMANNbtKiJ7`Qp^AN+W!CCyIr0>0NH<
      zX1SO^jF9_pc3+$*z0oj62jwCmse-x@fhP&s(to_~9eF~0RRzkd5v**kLWmXgiL_y%
      zFO39}gu#*u<Zh#SEW<-_?6dfANqfSth)_j!rx`Qns?Hv~Pzoa>J1aj;Y!!61rUMz6
      zeD1HiuaD(oJ_X*9Mla$vqdr2)`=k;kesH@)37Io#_Cj5gp}E-$<*8~CoNRlU>kB^i
      zfeHEM`6MP;^z#af1p7cYLQih0==Ypo@30u160>Z@;z#7+$QdJxF<*#dimPSL#JP9=
      z5%wK}9;7+ioPjmOu#SF4>Glu?S`sM?VyGjq$&-<QbC1j``kz5Zj~IDChU;7IxAg{E
      tCbpQp&CF7lrUM6~JVzMAct>-AbEIhvPkc+nTdhhL)#}(GOtltGe*lY&mc;-7
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7CU2hUW6g`*HuB<CitSefpsHm_suD(j+L(wJ}XqwP8@y!LMFlIl@?qZ3*L?6{x
      zHJaEo@xdS9k22m_h^Z|h_GRwenS0K;U%!6;_zB=4Y8q06M=zb%&e)C)q(87<xz4`r
      ziP&-NwmKVu*9|s<@zcJHgRnd?yJ8$~N#XW2qzUG6{IkD*gr#^Wqw)j7dh2+|e2F^a
      zHl#1($ArzwS%68b?K)gVCl0xodb7GmNH>DM$bfL(z#^7(EZ~9x4Oz~7!haf*Ye`>h
      zkG!r3cb%>)2!&SAbKE^Al**qzrd5H2jWc9<vV&YMF-75Y@&v6HxFgT!Z)y_q0}=0p
      zVqb)z=y&8BPRguQCphOIwx38(_>m0!x+?Lify*dna1GZrtg(Qafc;OLfg3Qn+e0A-
      z!<ZWtC8R5}C<$4XZ}VKdk*CC!M%lnE6bX7K7==BtB~_z}GuGz55+@i<-xp!Sb)rZ_
      z8ma{A|M!BBJF$Ey@lY3dktv^7ljWQ8G@Rr24BxidPqQ_w+97mneeDRwH}+G=@u{-~
      z-ZAnm@_Z{LXambAu*WD|#7Yul;1W#!CDqa?cbk2MU$%~LrB!?W9jn@lL#)=m^5aAx
      zn-IQdfe$SBF%dB*psC0ri<EGaDM@v52KDWE)SsC8GgE(=OP#`<B&EB!$5v0oDzK3H
      E11o9rWdHyG
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMO;a327=D_a-G$9)AY}8Qq9!3>LBblpbt48A2wO!o6%zcms&}WeJIU+}H8Thv
      ztn%jFn+MO{EVW8R50+l_FL?78c$F&4r@MC<ND&S~P50aH`}F&~U%kKo`|~dVu3)){
      z0fB{k@?*JGO*Z|oU0o04-D+2*GN|6rYdz{VqxooS(eu+N9zR4kAH|-Ei*N+a?f29)
      z`s!RWNn_bcEli+r)err2Rv=fIToZ8Wk*7+?VaP=u1%cx$eyHBu=r&b+TQ&nFaAGBD
      z$zV;!zCQPqPTKJkfu)uGl>ayQn!vGj>4$qk&Qy%ws@zPgtiXB{sxYl(y6drA@A$2x
      z*5KddS_vZ<E#id0hz`eG>qA_eL|I^nMF^8Xrc5Ybv6oKcY!PP!CXUKsC5rCPh2D}<
      zfs4oRI4jgvX?-J(8Pe^J>eAuG%H)xCFtAz?V-K`wU%lRHDH$4E38(Rti>Gl;;H0LC
      z!ZeP81sUI8?MN@$6c|5@uO0<ae5Y|sCDBIQQZ-$a3ogcSQD899erOjMJy2SzYPNn8
      zE-IKL)Qjb&o&kX(>(sB*GcKleM8jD`HX0r7jEkx^j%LPXzugJ=rP_YQ#dF$T%IpH7
      z#r(3CW^JaaO<$R*-%5^&*y7jV_X$5%LUe3D>~uFm=E<p?IFMt1d~A=*a9Ch%2ybAn
      zh-(5<M~%S2H|Sy>b-oH^UgSaIku2yQ1(RMi{aEt#TRL;d1D?^`0&XJ=Ra_5bk|^eI
      z_7J2c<7n{p@&^Q5In5|=E%Nj{cfmbB^&<wqqcDIH*AjQ&8XVMdjFM|X+#lgd;87gs
      zN(bU6y3&qzr^m|9Hima_>Nh;`C6ehKJh_eY)45zZ?|8XwT%wpO7aY%sTF{2RVh2+i
      z?KtIp-lL;S6rFM*Z_q}tXsggNk@~t(e2w&BeD(r~^F2PR*umvKA6@P7+33jkV06zK
      zwDz(W)mU0~Ql^}h?IR8@aEk?5#W3#hw1)F|8<+78X7Mf-@g8pCeg1!d03YHrNPLba
      zzCa6K!NWID_yKqEE86%29sCI&f8iefCi)+AO)HjdxqGc(;n~9%OnY|mB3?3$+r`Ux
      z#q@g@uTpY!gYX)qypd{@^aNbR>$Z(N3v<)?9<$#PW5+;afKLtYDQn;3b$Yx5STOiS
      PEO9UKhTs#qj=}!`mOPuU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2O-sW-5Pg%Rja{SF>Ot@%c+egUBH}^uU{EMT4}SE%X;)oIvSpKM|AXLv@g#Wg
      z2l%7JNf3IdhqCOOonhv^ee?bE`2}Df>pmR9;gfupldyQv`9nBL<$ai`Ql{Z$g^|e;
      zb7m&zLtPrXeb>8Ig&Es{^5GG>^N;#y5;kZ0r-X#&iOzL-N^o~}`vfmCLnYv1F@TQ+
      zLOa&Ex*BJRvbQox6`>QGflT|->MH*$dgY@o2uJaZ*gU?D3F4-9c%dtajepj#S1}WU
      zUY;u(rLrg#3yP^1Y=K?yZSbCn5C5OB#o0lf1C8zn#5)%p1dM_s@CpxaSmIZ}ZQO)q
      Tv^hFhsc{t@j-sY;v4++!O=xu*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95Ivhqoftz(XhT|POWOd6DK(|Q1Fm>Tpi)rap_fQ`+$0MaIX1Fgn%_bN
      zf*QmJ@KK1_bwraYs){AgX2&yU&di+r{&V^Zz!sipNHCZm`Dfm@!ehsKZ+&w4JF6!m
      z?pkl8t@*vSU-kR1x=!Q=8dB5Z+dOnSR#n=`c!s=CiB&)7ilFX=A_^I<H)KhRA4gW~
      zvKcZv9oO-k=mkTvTxl|-YJOK}xWbS-7p+6bRRh<MW0=_)C28e4J(Xq_gl`~?8A@z8
      zo_KrIYm4B3w_QPW8h(enO&&P%uADlOn3rf74L2E{Uw#^;cqj*=AMHBA?PjpRK->zr
      zCGl=ERLiQ<%MI6#r{Z#2!+sRdHtbP9%LZ0(hnkIt$xxhtef^JttznJf<$ts=Wy$fb
      zbgW`t$6eglaF3xdj(JwlKp7Q=EbTQ;V_2T-xve&D#b0f;*yw{pBG{Pd;bPs9KJ<P6
      zDCme?N3O9rh4!Xo$Y9hxPXslWhoPV<3sWLvE*iENo{qP5F^AG&eNTjn1hE;v<j(1U
      zCPyNse;BcmLZn{_WT4SYqoUik@&UOa^j12ZP7Yw4VD^g&%#+nA0XQKMJ;M#<m0%>%
      z5kQLoNNQL&2beR5D74IcaW*@^;x{arU$HdAYHNV??<k#t=8>Y5A7oE4hauMRQ-K>X
      g6ihr&r8bm(h)p^dsSnwWMWr9n`Iz_@=-fu)FZ6RCF8}}l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5%Tg0T6g{2COc*B;f$&ffA3PEWjEJHTL<M=IDv>Httg_UiGczUw!%QkOJap|(
      zxOBzFjhkq>@B`fX1^$S7r}ILsvP@O_cHh4D+;dOg`TFDY7XZ_^D<i~^+TjQMNb?RY
      zr=(SE{!-gBeQs-oU|n|iitdtol+#^DMuZ^|L~Ayu*p1?jsrxddhPR1PkBu?(h*-<j
      zHqENVZR<5J+9rdvU^$k*$PiAYw-_SJu3;(&Bd($Y3PWe!a?A(&dquPQsGiZ4cXe)W
      zaY7-4hBM-qEstS5|G)gR3~I^r1A0#^!!HX0Ifi({xo%pevd_>_;g%!97&0jVukk})
      zBP}YfV>*7e?OUtzO4-uAY%Z7HQqYgHG6opVh|YtgW`K%wIL{EHTFb8ORvEfd={An=
      zWffe&MHxeM*#c-)RdETIiJj%GIDrg?;Qv&?Fh*sJFpT|6h`j6W-gAsq)3jBLAyucc
      zWOIF&VYor1`GR5!1f|Ehho<N5S9O!f^<!Mc1TvKCwc6<ZO(E(m8wfFsDHU2!rb~3}
      z_*K`wZ+U`vfHbY*8fFN|sPe<$!5QRKj()*NFr9|yq&Q9C>8ixg-M(tdOK;1L=ugkd
      zUNI;hKQN7k(1~_<U1o~0C}vaiwQ2=3+56YDPX%g{<fJk}h(e}MCPF6~QCd&YX@)E#
      z8y)`$^#g4}I8CcU7MP>p1$5F*tp_22Gjt+B&`oOqFiAE52q%>HWa{aXaIKt34YyKz
      zTB(^vYAE(+=EjN4P%ATuUdjlHeuE@>DP(Hsn~zS^F!&bn%qLu_A$<&mc9XOV&q~J_
      z$_yr@?PP?O!9>S)QZmH8hO2KRmXu=eetypkL@B!6{U`|pJfkAd5yuPkVVj1U(?Aq)
      zo9rrd<Y5Ss>vbXxl0X61aYM9Uz$|VG9SgWcT80U;fO(;+gf(PI+bBKG2w~1qErvxQ
      G;GJLAn+g2@
      
      literal 0
      HcmV?d00001
      
      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
      zcmb`G-%Hz26vw|Ot;vkhR@c?dUvpa-TMNs49ExBALZJ$>>4Wp-w!7AhG$~0s_0JME
      z1t0bY_(zH7rnQ(_qz@7}x##Ad&pF?7Pi}6n{{vV<$$&=K`Yry5GdntU{g&PF#IfC$
      zvGD92Wu2hi2&%!^eyx=9>*74<#yi3nEg2ff5;h)T8X|I=c2(I2nEPdlK+xk8H!6K4
      ze5yYJjjU&#V>VphjW-FEv4cJz5VB72OHP6?Wnluki43MK7?>Fi8YyF4fpT@%m%H6|
      zLxw*@!;^%$de9W!fe2mY_cyaj8o?P;*b|Lr%{edWyc77b;Orq`z9-%mr?EZQ=K4$&
      z@!G&V;p2E6weSWDgqiycy_+W-j!f_jYE%#PjtHe66AB4%NCn?f)a}TyH!SL=-dcEx
      z0>S(qbi=0Hc2(O8soC7GeNlo5R?X)QIi83j$rrGYI+dC~yyJ1m@J~VcyqXDKWq8NH
      z3$~N&eS^jiFjcPngITUz!Mb2qLyoPPeA?r{UF6xfIEas87IXY2Rd63uWvs%O<-ag1
      z<x9L8ru^h|M+v3aJK3kGEQ?rT4q<t~+vGEfr>lxqhFQm4QR@LqAF%X3OT#KhYb^i0
      Lsw$xu@d0!PZvhQ^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{`pUDz(RLM>m)ham=vapi@WKzL}C1XGNO!25JN;+pMFvmel3r7=R9
      z@W2o7M;Y%7A9bY<Jj~6UnS0JXckcZDb9n_|6EAEO2wUI8spxyjSrDCgy-<Adx-u1^
      zcc5cab=#_;`bYb#L;OkgvYw41;pIJUTO@(+HFPvwlS{DDuR*f<hOpMUM;Tden>jl{
      z6r{U^#)C;Y@ejA=x7Uve#ir`W2@pyy9>H=jhDjGT9uwyC`gvZt6-4r5)@{r9P_#oy
      zm})6sgvTNdG`=}3>IMmKa}FN<n%r*D=XWN|<P?Tp2$LNd$`g^wJ>_RyYw_B)C(cq&
      zp2{fo4pf%N_j=1M>kemKJVlK_Y<s~7kIp7IpH&w7axc&wR)@1Tvwy8;#yRg~FP1(#
      z=n&lfD3WnA6iFfz8_T0U!^p`J%0qecJ+Q)K8RIWWm5QDX?+SckW1Qmzqb6g0U#f3h
      zz^T6)!2M~G${ZcO1b#5_J1V@Z8C=2>Ofg~-rcpJ5{1i8WyNor<s&5Q1^S{<F);j-3
      e%evFDFo$_#c7fRiJi~Kc0*kyHJ|`^cX8r=#|JybI
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-*XdH7(KU*Y`QF^gz!tWQmG|P0t<*%Oo5Wn*w!>4Em5n8H=EmZ%XYW!ZfG6e
      z{J}WY8As63>Nw*I(^qvgI_fz3>L2C!-A&RorZ5>^cJGhxo;~N>@B8+je}DTEz$sV?
      zx){=n{1#u;y%p0g>&q6O*O!FPEqz)(GtN@cNjt08CI^H071vo7uK#Xkf!k$~Gd*9}
      z!c`Dr7;VETa?dpMw0v&CX@!{JcF7Vh!w!GJ^af8d#Byyw+Y(CAnNia={qqcojt>nN
      z7(yARBznNGQ^RA}p`shRG$`oZ9%x$`DG9VYXWAlPSt<&5mKQC-5Xm_Pw+h@f<-EQa
      zlF}G1btvp%PLt@~<(4~OI9e007X`OHz180FTf+8<tJJt(!(K#H9K_=a4l(pgpC5cm
      z!(lu@8q30OVCMM}X^h5(10}jeIiSz@E+tMXjDCi&D4D(#uHp!uRxrTO7kp$(q=usy
      zq^lF}RJcX1?5nd6LM|5<g+YAhR16`e;26VDXW5`(7*U1;4F(O$wL~q2kzi1SEy<N6
      z_;C#<pc7?o7{Ut@??UHE)N+$k>5A_=c1po1hIl7*YX>BaXEmI`b4?nAaPd)TG-@oR
      zVgzRuyg=q|Wi!<X(C{KCkyO(guiqC#cTAc-f^!<q%gr9zY`8Usw1SHadt1<IA~a-h
      zi9z#(pLL9iS1W^1Y)<Cf2(lVp!US3Gie+xve(<3}7*q85A~$Z9U8iExg&agq!!+_#
      zlaz0Hu~Ohxr7hR$>7n2Xm4PIq^A%suIF{q87{gT!Gni%AMP$;O;KaM0Vw=H1K@6dw
      z;Z?lWH2*Zixkoi$wn8#~4p$Yt!LX;rD!CcPb<#ZVxT2wX3^z2q-5{LZvNMMp42<L-
      zsTJCTE1Q~`9Ta7xy(9_3paQIIG_@0p8K>eJB5TTy75!hIKOvdZg-+Vk*fSRQJV8}@
      z_#xdN1Jp{p>5szt`eZ+)Q5UT!2-CBNW@l;MMem*Q#LrOUiC>`o5CrX}ry6Xn(!mP)
      zXs*#A3dJ5o=uMZ0XbpxHC^AHAe@KLVi7F0ECnHZ*@zgqc<3B;Am1j2aT{036*0OT#
      zS0w+&$#tyNC$-n<DxUuu(ap)|I+V}`Lfutd*jyanz-%%y8DI?(_RD|aa=s38yoy(9
      z!)r8reFO1i<jo**pgr=fW+ZRw&XY3WJ<|O?dGG<vK14t6;21ulmav8id`#K2hU@qQ
      zi}(~CKErL?rHFg@9ADsDe2M$`3g2TLzvG+0yEBAF{?xsbqaqA)PsNWYL6Cp9aR~D$
      c({<g){`#m33v{XrCVfZV2jvZQrkh~@0bXl4L;wH)
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pj36Z5pf9s_4~Qt6)$sV#I@$LZo`p7Cdg_s;g<XB&qsYdMYUR0e+M?
      ziB%f(AS`cY_PsYdJMSMaZveKiTt<P=ycPH2(TN{ac<l@WapeqTA_C_m#UmNtC3@)j
      zI_!F7n19LpB38b0m|{*&DDA6IB?knf(d-e-mcEoW3{<KpqC}{5R47kJgT9Q;ML&>)
      zdPn;r=!r<B_2kk_Zd6Rz==^(9mtgsk6p8G5gxyBYdEC;2p$=u3xXm1qeg22+daeyZ
      zg^&MjAgtybQ>_U0nI1*HY^(GmE5FybnU0S&?rHG)fdXf|2F5a1I~<8)aeWNyIiqbx
      zn`OWrOt_fgtokM5ILlQ9bEr)kY-bGt>lJh{#{3iW1@<F*0%%Y9Ei9nU3}G=-Eqwx&
      CWPf7-
      
      literal 0
      HcmV?d00001
      
      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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
      ASpWb4
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E&2Jk;6#tFA&Bo4<q-oQblJtuJw)3$GgaUObv`zyKP8vw-KtqAadYo)n??&rQ
      z(i=kJ(tiL%4@I1MMrw`PL#{~NxFf!WKp+9)4!qfQlC|4P;V`>1Z{~gde($|6|GB#b
      zU>xu2h%ua76&vEJQQNefWn;}26{9MBVH-2*J7w82zv8+z>0K%ePLjy7OP1U`Yx<V!
      z6s?*s9qH-N7`l}m!xm)a!qTcVeI0EK1A$a*`i9()j&C$8GPL<CR&8*MVW_z0IC7+R
      z+Hx%a48v&pf9PdO3|ihT%LEu6;?U8aL>yfl33M~W)9OK2(Q@SMdUZ*97sZk-8G4GY
      zDeRK)EOl-OH5E9+<lfys5I)MMO9X(<Nw4C1Ras^@8YX76LU&%ln9GzBNa3)KhZ!<^
      z29Dzq^fR>E#G7J~fn8R1j&K~sF}kP_-HKF(15J5ND`75)6ByL-D8v4!%ixmZF+5IC
      zElYo1+Qhyr7o4(XO2SA>XBG=d@{{JsAj{B6uOgMj(4WpU`-|M>RD{DEBN!#pwj-Pq
      zj<gvLHme0vigOH4>KJE8HN_b*%JCE?sEj;WbvKCOz6jcRx4Py!yC|RJcm~fhB$V$4
      z`z?M0Dfvy|6h{uH2_e&y!k1yk)IzYwnrn4B5>Kur|LsIlIK%M*US#N4Un`TrhW|sY
      zfNd+B!=#Qp5z&-+pv7?>Qxw?_MbyDF)C>gUi57E;?vTdqH@ObHjA<POh9gna_rBzK
      zMKx2WX-nbl7*Xmo9J9DUq=|BQ=c3^F(%TRe#J+T)5Z3jp9Iq+1J9iKd(rd>>qAX9$
      zNKbKG;#k1z)VE}h+Tgwv2K5o0O4K?^_cF(#3Nz_Ra&9STmG}zBTS}~Za!ptcH3FmR
      z=nt*jzZEHP%PGsN46#K*Csr{T4mX!&lxVVO(V~~hd3W72rMjd7ym#D=Dx4X3!J!eG
      zw?(a{nkn_5A&g@*)Z(=EfpvGQ*+xS?Mk|3NNjqpaL1!gNW`}NrXFo^hXTh8O^lhUz
      zz*p#@FAw%f9Kb<3G4$e4Xn~DGBm2N7*<0YZ(DyMu3U>o_9G_9!I-ZzS|M+e6jf8hY
      zbr|99=`YZwb|ZB>w{R03YG23m3ys@4&fdXG48vPDkd2?zZen2fX1G@yRqGClaeSb$
      zUTt{m(|><x_?YXNuj3NgeS_AUyJ<~9CHFN!@C~K$Ee7x%O{(vS>K}0mKVb?#Q&Ikc
      zEBF;l_zf%g9q-Zq8vekC_!HOh7jEG10G5d`^#&{i0^Y_u0X)|rNIOQ>--n4Z(I7EM
      Wt3q(auuKue$g)L$MFo+FRp38V=LKj0
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTj$b5dNkt6l!GwQ7*0my2@UV0%~Hi#t2oDHJ~Oa&vv^9DCzc?_HglMnc$lE
      zV0`vR8RzU)?1n(rmvf!@X1;G`e*OOb1HdXCn=lCL2i}o);v~mGwC8*Zy<MjzlovW%
      zdVLjy!rhlL5%Gt5@kI~|U&;8hD_ae@Ay3wQ70Ad$jxd{rS#KmN_I%a-Ck(0mAStd8
      zs+(D}OQY4;?P(AN>KS3V^dElZ9YW5PO)&z(6&r&XvM_+FHcX5X21?o>zZpd0&0(t{
      z;`d%76oiRQ>3iXh7YF*DKIU}d1h@b27m37l@~jBU^-jdQGH!_`VXn)|@s5=vjzpxK
      zu3|6sxmMn>a0AmOrU>P}b+a*pS;FX^P?_ox3Z-%ni`SXo+6V_K*tmt;?AiQV<}DU6
      zBy9BfU0SsB>^m4W3-h>RVuA3yZz309*|>`$i^=@9Macaqnsp^wgvpek6MEdqZyN{v
      zS2J;+VC$GpARSHFLJ1WUWx{kem8={#s#qdiON4R{<Ctr4*7=0-v}P$BSBXH}KZTA;
      z7nG7<?D{+;JxXRna(h_Y@-X&=&XF*6e*Bhox=f}XMIv@XFG&Qq=G0kgy+erw?*0Lu
      za~d1dBfuvEIUa#wejnl66TTa~Tb1fpUcSNp(y__wH~nKQV$djJjPEx4=+|*f@XpF$
      zGDZ2wmO9F8<rG#M*SD7R;S@L9nEQ!)Z7lvn9o3e`3WkkU%ouAO<oT|5ip)58fMv!W
      Z=12}!IytT~zJWD7?Bu{|bF)4|?hoE5OQHY(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOLN;)6#lOKP~#|xlh}E;P)J)_uHy#Et8PgXrv<lh9;7vtw`^b6>d00`Qrd*S
      z!Vh4>0%n@DhJj(n3>ya6@&j10V%>7CB-?5pOj-C!SNGiSeCK@U9RKp<yB`6}qb@^Y
      zxOz{!ukGaQ2YTynZp+Z>xh8isBUcjZb=}~FhH2W|x?P-I)-7IjOl!AbHY?_mxl=N0
      z+>jAwI2lA)tk{mFRh<>xc6^g4!(`Cp83cxi?(n9~5ML2Sxot-`a^iNLVZi1FdF8cY
      ztHyU2Sdk&>G<19R0z<~Ne=ha}6}_ytbmwh`xzzu-mo77e3lwP|7={(}Lx~}TQ3V4?
      zFoaU+vWzi?(H`|h%hGlQ{}_@O7563;$T%V1rWN!d#xS&^xA^LIv%;-gTE*ZDBP(WA
      zGs>E!i@pCbEJ9^idVa#k$VBnWce%5ve?hK@bg>^V<BW`1hQS_lL0Z9CoTiv<*HocP
      z*9_j|EoaeTNT!NuPb5R5f?2EFBXRNqOI46Tim>T|P}Gy_1nrjjmeU|Wx>}6k0$!0Z
      z-|_0Alr*QI;8k3t+f9u`j--lYOGy%pJNi?JFeFk(xF<vVpkdO}I2WXuE(@ZU6y$|+
      zk*dKpD~2mrkU>?E4i@Ntc7lSdSfmJuU7$l4W_)s;g1iwp&Bsu{H5tnc6G2Bo8wJ<#
      z4i%Y?ySZyq%w?TFU{DW0*QqnBUT5Znm!55224zlhHPub`P(*!G!3s*0V69eT7)uoo
      ztC%jwu!ap8>kMau9FKRV;5}?o=@R30&7vCV&IpE6z5+gpyf0j5D@ff|P{#XInQpbL
      z)kS?B!HcSf;f{h2@e%b|oyJhXY&qo3E;OhLIR!L+#67AZ>fPba00~eVIqZZoQ@8Ik
      zcsLyekB?l;lPx!7Dg+O%6B$En)7-YITnIzd4v*3~kzEq0*lKaBU}(0@smaH>44)Z~
      zI8D)q=og_?5_5#cw<M+r5RZ#_MEfY64`7hiA=<6GmcW#n*+X1?gc0?7B=0=J_#P%y
      zX%AE1x)?LGjvx%MKM-NRqL2MXo$)(P(szZh2mz<?0zDaCba@E$i?kDGG4&xP+IWfK
      zYuZT=Xo3gWp8<qe7vUUIbSe-Q$XcRjzd)F7BQ4>Z0}y|?5M!R14?!1jp28OHvzYV2
      zF8N^5>Cj{34pR9ifD`TFM7ubz;dLLUNH`*_aUwPKC58nz@#@iIJ%WRjU9cyR*;6Fx
      zFSM7f@oubd;7uR)2hxo)j17U;##_|O4-wzT<$WxbGC$$n)vu5cXQ6BxH$pg{-N))`
      z_UEU6tKw^>jaw2(F;xwD2$b(|Z66=>BveHyNCW7T29c14Fe$|`BaPskG>R;}&r3-x
      xNMl%+#$B?iN2r^P4SbAGh;D*r;iveF@-RvCKZoX)QN>lJiW)t=++P7l_+M1i@V5W}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVNe{a)P6g|&P;xzM0o05z&I#?+zPP)2mtk8ya(1f%pX*+01mr$fR$qO}d?aFqb
      z`&OF-skBMc{@z!bgt*U6Dq9RhQ6$^%zWeLkd+yD@Z~punzzsZ=Au*Jm>o4?U&3$QD
      z&$J^`?`ntK(@kwtJS&FDO9!^?a_4b%wrn`O?b*(6CHt^tuiD3txYgkfcVxsEu7(|z
      zc~|e5Ud?d55;x7EB16g`6U(c%ZHr;C7Pk3t@am~uks;w781C!>L*e5+2(vqeWq2zL
      z>$x-7MN~IJB`K<PhFHn&@KG>)u0TdIg%O-nFp6=8k(^qWk!HC0DKJx*z<J>*!!UoA
      zeAT*0=L-dKBpA-s42y5|4qM#W)mtWKNZ0JPZq{|j5a)p~CMwEsKLYl{9eFPusM1om
      z&2TZ|EK)g!OV9W_^dMdx*%r}*VI_)qLoli6`_oLFn7ZA1PFyTjn@u&4>MuR*)V?U%
      z@U?=ka9PGx21PVLGi*(CFNJIPM#gmp^`rZuAP1FUjFJu!fKcRu@WTO$fJ~u)Z)MCe
      zTnGmW>nNCq#vqg5E&Y(1GZWw*=2{$}^D*yu4h<<`W4NK<JA6-uF86l%F%>K`Fbr#|
      zb&<jk3KnrI2olWQ{|6aj5IPiO0!s>(LCq9F0>eR&h^C<1HT<Yx1wT=RI>RNgNpoQ`
      ztVT$1Mn?HQD3^OE$yjB$8?NK0_)<{DeTF2}yUdTg1DfAlRjmrNYYNs;r8`0!x}y>@
      zERmi`3}l#$zzJx{5PzYYJ%6-(qJ<esmty4|Gca<VGTa?*5_5Tn1WjUQo7UsH?pEw}
      zkLEAdC4y2F15OVJOD%{Q{=!U0qWg^^|D6CyYRB$5Z7%pp<Nxmdo)@`M#HwX+r)27`
      z%PHd2d&d}82>A&8RY>%sT>^}cixuZf7%e7Ina}9-2r*wTn=ibEl0U&%{x3{43MZI+
      zjqD%3{snrD2`y<2ajA?^se&nzWy!aAUc{I57GIYzO)@5Cci{g&iaknqjeKElIupyp
      zPjF>#?jOu7C-V7MQ2LmiO7xNMV<B|Bxh&HuJ0<sVTZmub&U7Dl7n4GoN%m0@#@RkL
      z^1qXF2_nUL0Z3{hAw5Bo-iox3wDc4+(yv&MbSz0NRHQbxr4II_t`A{9NbVFu0}oK6
      z)G1+XV#^2Ez&3vNi`2kFzhL5ahrZ%SV-34_OduDaqK-W(as`w4g)EX}-SD$(;t9P)
      K$r+8?KJXU0LKBn#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTT>iG6#lwd7+9MCix3eKbHT_ik%<~3vN2JXU>3O;E~~EbGAzBzkYR?*%mQk>
      zz4+#vMOA(Qk7`O+%LmI+D^{tcr4L%ArKNww^7PECnJuCfA9knv^f~>V^PNk7{nsa-
      z0=N&aYv2s0){ISKTlcn1yP|JcMp<8%zG3Mz>VML-WNy`QJn1gw2i0y~+AGqPu7(7|
      z(YWn|EE`qJpEf-|CoQY4$k5`in%>|EhT-YB{(oX+$?UXgoBkPwk)i)#mo6|Qa?Xlu
      z1H)|s&1gxY3GD(J_AxXKDTR({)0VT<^=0WU8q1bsNKHE>!zviAsrHdDp&Vxzy><8o
      ziYSJGirhm;&RO4ZY-#%pXBs1$Qru+&G~F^N9dpZTvgBv;#bP>?8e6{pk9{_YUfiK!
      zKSTPKi52L>oecZPu~>4+)1eTeUI|mN(*S5d-~bL1r;%mBlv{fvh+8#YSf=7Bg{7n`
      zEoGn8aEL)D=XKKw#7P{%poXIihvG5a%v#`X9AnVPp;=>{l6WMfvwl@JA}yeD!FQ>^
      zDH4VufiyB?=t+N3Zc`q5BEz_5x}aP+E^seKLXdpPvHuOEPMgvRKu!qiu=_)h&@cjN
      z&`cLvagqVbty2OIVU(eb+?v}kE>|g{#86TBF^1C`sGPdulmyix@Cc|ydWnMtNd)_*
      zV~-o9OBL6t+ACDoQCjt|axBLUyn9sOF^n^`6INWkJ0jwSb_hQqaBdIIq~ppEN4fvF
      z!1?->@slx32|S^U+sVlrU@EE^f!X>=qs@~77cfs`nBF;CwIszty<1dBivmlEs3bWb
      z9jeQo5_lTVgsGZzRC{&BgIA&;_Gbky;<+$0p<XH$b)crw@&dyF)sG`(r&RUSL_2R*
      zRxSGZ<Bm%+FbM-C4a-zM@w6=EXAIk@NLOG5l)^R@bzs1t$LlO=?#3=z4m9=9AaJ)L
      zunIFQi~2nW!+Ywb)M%70sL^*xz`{C_Zab4IfVyda!!T>Kq<XU`VutPprEn}UG;bP~
      zD#}zii{cZC4o!L&wi#HS5@UK{F{-SwB6WC4(PwypCnVaWHfn&lS$k8xvocMp5G@)H
      zBup+iRktM73}M*6_n8_|*&xikZA&+28J;I;hzq4(f0J;S7;2(Nkac#d7lKwC33?$~
      zN!~`gQQC9*CNsky(%(lA?*}>^N~TWuH8k^g(MfwjHcHxs6n%+2+#cS-W(lK}WILG;
      z=o0$X&{ISISj+LxaMzgDr(MTDrmv+>tKo1B_e9I#8uVT4%cLGqGDf>hqJ{^15?9fi
      zp~Hu3IIF(78YXwqt(N&nG)*G4pQ~X(eG4@ddz!DJBa?dmW4u^Hd6yiyhBaDc-XqUA
      zR7A7nGx+D|<X@nde~Es69mn`rILW`k82=V$`FEJ$-y_d|zy<yzF7ltS!heRve}T_`
      z#TEV=-sHdIZT<(|;eQ6K%!iRjtPlsV;RH<WU;~!}c6Z>y3-Yi7A63eL(%Ym}Gu`nP
      gwy;gP>BSp(2`^K2I9>^SzJgcjt40A$KD>s+-}ZxE&;S4c
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+j84f6kSKhv0_I}Z0FL3wz)MSwwy$1xD;@k)HP}Al1qzILt9`*woejuWIISo
      z8~78xfEONMhJ+br=pzq&5Yv_!hJ7R@mD4o9gC(8IUVE>#FaG22U!MWEjIUHE4A&l;
      zPs}~TeQLF~j2+wDG@8OQZDUnFZ(6n}ZMWO5aPF5UY2^v0)Na<=H`;rv?S`;b#279{
      zA&NEEbIiK8V!2*;CC)G$y>bkpn_*lY8#Q6JT;s0O-Vu)XO=;U~Z3zh@TEbyaH+}am
      z!_=ddC>-sJdJv=`0}jG0Fm$_uPCU_I$oLk9O_0WV?J@1rdEDE!+{t-{d<WjCB1p5V
      zR?G4h8RoM8!!B24h?PjQ1Q_}?oI!6A9D^GAFvP&KxvGkD3={uOO(MLdA%SEP7cipY
      zB10}}b}9o6qZni8-4dQuD@-rLg>0^a&Yj3<K{}eya0!zPLu6U3*Ts%kwEYSR1ZTM3
      zsYeGuC-&yaDU-zB*3biup>M@%iM8EkO*k87%@#6;?Ye1KO~;b!a5E-z$gtEA`l<X+
      zDr3rO?@mYEF<c7RoLH61PejWr<f=)`VP1v7F!II<_U~%cZwo|<q&uwdHM2>i213<?
      z(yVw6wPB$f?=qyNNP)CLD>RaLA0Mc=!jSU4`PCelX!sBxQE7^=cTJo07z~4t7JTku
      z5?8UP;u^!bXt_iarC|xz8O~Cmeq~6hDTpu-LY~g%{!{xUDVH}il<+Z?`=;fHQoBW+
      z?71Ns@^M0p<#HhEO%1njo1ur|SQAgHroH=`SYaP`;|_Jr3BiVr4)tbW1Tp3p$|*@@
      zP&Vt-UmXP%RfuXO<&T?C8XActOP?#eN;q!Ho@l-y1vCWWlvlC|ilNg)CAJmoTMCoL
      zL773L^|CFRBwNvwh~=P-j?J+ytJM&D#E(ppmG-Vv_ftj+zdpq0Wa0_A+@hgcvQ5_&
      z6n%eKXVKA)ampZvf-b1^j>&mL{~L;IPau_&6O7hzI_X1-?xtzgpp`;zUC-|$qyK^d
      zJ@y;U?qgX08N)oEKfw6|j8}Ajxv-C^pM1<|dJd5%D1V_#`4b7{Inv4tj4CgYr8AB2
      z2^Bf|fxh#Y2|d0bk1^U41U;L1=K$}0hXq2<kf+s|0~FTuS?ONq(&e)Q6m`0}OrCXJ
      zQE2%+W_;7KZ#s6W>8oHDi8Oc&8joXutHiAvBRqi|PvSD~L4lva67NNk-nV!f>pX)E
      z-j4@-01ZCmlUgM4DDaS!{Q3kdL~8)kSj8F%IgAOclkA+HgW=u=i5=`Q+{L|6hI^s#
      z>HP2Llj0xJdlhm<>cmG8<Ksy138eU>AI6ZMvGh?GX?*JI%}~MZ5Z<7-%s>~(GxZ~V
      zC={biK5g>ZNQ%0SQnZ2lq49iZ9QQNu!!heC5$pJobrqk5)&=q<OG=g2=NFDUFGV=0
      cM;ugqjt2yw;GysC5x$_eoJsUYhc6NP2jew1VE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8B16g{`wcA>0*KtVq02UP6`vg(tuh8Ri+B~_y!CcI6TDGXV5$?g{VPy8GD
      zAS6B*pZ!tBJG<4iqC{V2_TIU3&$;K`*>B%Je*y3ak4>Zq&yU2Z=-T0#@(%11SG4V8
      z841^Zq1O%N%KD-2hcbBED6$pFpza^H{58M(Mtb`)kb#LbVW~gMx@?P%8#PrJ)urqH
      z3?yWuLlqVu5~|Jq_$yIseC?U?RJ2N1DgDR2@-87=_xI&62qP9U$mU?+ngtW11f!$_
      z#+u5LFFVIA8SIFbD+v=#-x2Pv2$Z&a&a@^@So?SQzlg=vEF8#7(y*o{z9+qiusT@d
      zmR7MA<Jzv^7QJd6Nhhi`_V&t&SDZ!mulqG!;<SZHOqsYrSnSui&E0g8ZrZxDNk4O#
      z!JLJ8ED%PS+qw*$K%GR&_Xty^9!iY89R)lkj6t|*;TCQa%uq%<vdhHt3GswwFEZ|d
      z%M}nN2eeDdB4kd5+lf`zL<cJ5L&X!;B~XKqQ{lE``jOmc#~#6Qc(gV}xZyh;ZcUbp
      z<KZL}2XOveGIt@j?RNr4OTg$emxp~t^I?>R=kdt9A`E3{f=9R9ujrMNOPEd+{{6+^
      z4hv}T8>I1ZJ(m2HVvmU-UWeIw!gh-HT&4PnmkU@Q<Crn+(<jCbGRA9+vu*Jm?Y)i(
      z-dSf%^|HL@%qIH^mFjXKpU!74kbk%Q6*Et>mD%h$X3zQP0|%s_6VGWPhD6qAV~BUl
      zIKYH)h<QWBK$}Uj9uTMHG8SX-0+vvW2^Vk|_u|qDxQ`Oj8Xjf-$}qhVR8VD<6qaMu
      P2Uy`<PZPoB9}@ilQU)yl
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOH<QO7(F*_QwTw75vm~g0JRS!s1+X|o8lughzqf94ehlFlO~-e2>t@y>cWj1
      z-MeuH#=(U@z#rxK-J3v5QAQUx_wjw-x#yhwO@99R{sX`@+)G1YC~sJ=tZgIMa=eDo
      za;=v}lZTdTJQm*vj>{{y?+3j7%$zp8I`=}e=6h)*88V{Ma4o8PvcAD<VH#?Dx{oJv
      z8B}w1`Tpt}12Y*0E4~+mmKRnncatZGiN=t0WMX!un~W%4U`W+@E3^qEw4Gpjj-hlY
      z>sZQEt}Z&B6D~2#=KrIvP$g0ozs~!?a7xDs3~5MUR7VCmhD2T@46QgGU)^l3^Y)sx
      z?sA6gieIzbs?~PHK0Zte;tccuetnnIq#zw|X*$EmVF}WpLRC;ar(*y*IqWd>QT}q|
      zSu$@%@o61{=%aX@UZ4@-J>pKo4y71#04Wr7T*eg!J&r$j>Y*(HGdhYQ(BHD0==~XH
      zA}WTp6&e-4+44PVjRh%Do;_?^E!(LD3nnoTAagpdVwM=x$k0w+r<OtuhT%@=0D>ah
      zG+r}kPyNkyjf=Kq$Q^CbS<yeF!1O%cuDDhZ@E{HHu+ZID$F>Yz(&=-YCvOupQb=M9
      zY4p*$pL$k-MuRMuYqA!|WJH(HUZs)2Ny^O9s!Vwb&04Xvi{auojC`e?g46U>DF;du
      zXK1a9HKC4SoMzxGCSru87(o>Xlbve80LmMrl(!OLRNkW=AgIJXLcM^CN3h0sG1ZIp
      zj<DYU1?!U3&P0pESY?_e=i&|~_mF4!LcF_`efWbiCVDAGSd`uZ*$AOTu^mihH2Xy_
      z(#I~OY^;!phKiAz<YkI(&k3Z`%)~y<NOBKG3cW%<VO04nA<I$OfoVDVF<zIla=0NM
      gk3eyg#EV~54)e51lE_<9>TTSiS)+W0yI2H%15cz1(*OVf
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2_yg6g_u$$Yhr$2_Yef2_OdD-F!^Yh~i=dRz5cFhDcyh;#X(4H%w}FCN(=G
      zylUx#{sbSa;>kzLDp(6jqoq=U{tJJIdV6LGvk6wkho0%axBK=v=ia`5{C$4|z;P^_
      zNDxl1$TfM(YOdSvvbE~Sy46sDbgZ)ep0^!UxZ!zC<zFq1mh5IwvDNySYG8Y=UMW}k
      zCJaKKj$%2IV_aHVQPsdi7hxo{%JslfYsw9*&Vz)m;D+5Cog$2tc8ns=$4=R<9n26W
      zGymgUwn8upUQMMy*dt(~JB=iI1yblEBr|$LZ^?Gm+|9<4@~_AxM-lo<UR633>DzkU
      zHX0f@;q1<@{}1t)O|J~)oL7F`^Bby0I2_TkwhDJni<r+=QaFHvCY~W=cPyL0vlu3H
      zJMA12=(>(`NZ>Gz5K?tcb(`Hl2d&xAnor{>Mom1=io`FCyaLDY0#jL5!Gdx){i=4^
      zTW5ugOm?xD=6f;%S>y;kyd_pugyBrK^SYQfuMv(5Okk2vZX%qQu5t)lV1`zPIfa)@
      z948#;fEkM_@G_>kihR}Z);PmMF}Vv~W7TsbnKkSa0<YpVLb~cJ87N)zgsIN5n~lZJ
      zZy^(b(llNd$m0}eK+}lg?CT`1jf{T=r%k*`*xP|$I|a_*EIT$;=2uwef@Up_Zc$Nh
      zk23LiPkuMv!g&+t2#4a4x9=3VpdUm})lt&l45E)01!nO!D=%xcO-IoUl)ok!#I8)S
      z7*%IkU{2?3&ttNo4&9h%*$b?$@^zjr3oPIYKRph|wfxjHgc8LY3)jCsTM@XXQKo&x
      zciS~ijyAt1a9x{CU#&{p<zx|OcsPpk^!LQLZMUXw5fY0<{?x04gPoa)CzvDJJa}h%
      z!Mo{Km3DFwZSR+pT4sVMy4)oTj%+p+zli->@a<g`N4P5`dF%r9_37rsJvzZ7g*01t
      z^K6>e+LF$V-G#_~kDl+sJ$w1v#e0Bn(a&EI&ePb30bUUXu|JAH128x~@MZ1}#2pNM
      zg-@f|NDI%E_0+hFA^mUR#kq;dH`aosXA>>FaxF5QY~hW2C=kXszD6#2!uSRwPdwv;
      z#-twia50I`3>q}XH*Wv)S36v(|56L@aImX9-hIMg2EB~zKC}IS5&wu0Y;aTgiF5ih
      zPU06_#IGphH?EimSmA$w-|-0^;&VL07x*(|J{_@ZGiRPy#QUKF0Y1Qotllxy@DV;{
      arROmUi6vGffhymeV2|RzR-2m#>cGFcqUF*6
      
      literal 0
      HcmV?d00001
      
      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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
      JZvE5+{0H8({0IO5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~6#h<cVM-ZG3n&Pvyo5f0!S|!+rojYkaRGGUZYZ}fWSB8CrINVz8C|;Z
      z54a}5nz%6TO#D&CbK4T8#Ro3hJNMjkzWaUWaew^$@)f`p+|v*uJlrv>=Dy)SwVW;E
      ziEWmRU0E@0qoDpDShmb<yRI+2^`*&n)2g&(sbaZK-tsHbk)DPyA+7)o+hn*$8$0Zv
      zp_4Ejyhc`~Q!!N32?#=GW!v&6=Lwm7Fy^n+vK+QxIacL9VJ`U}aj7C9oO3s27YJu`
      zXoy51(4(UZae_!Hhn~FU$d$d_4e70!8@43$=G~HM7fsJn`=&9hh!YB@zy9ADWnp^N
      zwD-6QoKU$*NVUrQO)3{vcC)Es7X~q;;XKEjI*~etF+zxxx$vq!guWIz%gUII;vz;h
      zTp}cb$n`@VV;JWy*pkiS%FUt@K<H1V>R7?v$ZD8mi3-KATtoF+lxa`tm`0KiW0XJ-
      z5=NRBM-96iIAvOC%xK6E23u$ae00oWjw@~XYo1w^p5LfvqLI`i3fa_Sg*C79lw9Td
      z`^Q=o7Rzq;=Pn_(PqifLkF{avGK*_uqbZv!-CbtzQe)f*LoHY>LJ84Tch4)y2AhHQ
      z!CYUOQwiY2E;&4wIotGo$*noo?s#JSFv@cv_}2l7$JIFSQxQU#$05qrZr<JIeTdg+
      zI`av7`ZHn&b)ST?sT1)G9bzB7yw^EKS^Ln>E8#58HBsKzQTZ84A3{IGKn)kZVWKee
      z9pM9Is^Rj=>`V=*59n5_@ez?(;`R8laYar%M@+mxuXu?*@e0G@H73LxWW-y{i+6Pr
      uX{N8<y9NpMbq&{<Mhp|UftyTZm}%W&VS>N!ux|)=k*yQwN^v_b0KWimH)H4k
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtT+iuf95IxhFm>APs3T=R-<q{wX5>_SN!bK3ZQc-A;(&l~ROz9TKu59=6TSx^Y
      z9(d$|k3!5kL8uTUq&)2I?Ci{$IpgE+KfZhgu#T3E1w#K&ov1S}Io07i?<i3F-k4Jr
      zcyG+UsRQmFL{Y-=-d3Y8A#xA2|GuY_ltYdi8zY^H`=y`iDE#HMVG&9O*b9`v?hFsv
      zPi^E0^~|eIQ;$zLOudVVgnW9Slg2vXMQ^UgIs)}nhdO;uc-5Q}t2H24-Dt!G5U#qg
      zaoIr*MHdB>2)U*SDE4&7+sES}$Gd76Frm_md=(5-tj&Guv<yMQ-h3_1p1Y7Ps_aX=
      z<#<1e$2=meP1t*X&V0knztb8NP{mCfHwe$>nz)Nws1XV*irCZ~Na^YYlCO99Z1U1^
      zq~@xNH8Z`UAB~R!PI)RN0?F)ZS?WKUCOG}*IQH4-ld$r)Rv#NG1a~VGk#+->B%IiI
      zKxq9pN5aw!!4s~}lss;WG;*>ofl4K#5c$UzWEJ3u_lj6g<Ze7p`_V_Z?ax^Jkj0c`
      z&r1xfGAd%b#+IxlT$57@VtI<NEvG@Kw9nz5W96G*iS-Hf-$;wn1*{qztB$g@njtPv
      gvZjcVFWuhBu<i=l0`8$<P{pd^J|4o7w<?;zPXJXSApigX
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTO>fgc5Pg%F7#q{10onj9<s(26B&<r@QdO#=Rw@bw(UAMbnbIweUD@u(-$E)N
      zao`3APQVXB%sN4+v`9!f?9S|X=k3g!=dV9Megd$Jri}vO<(@iJ$9{UGqu2g^sCN7j
      zXDalcnSDct+}Vxel#^GR^`08YG1S4Eu1+(KIH|7>btZ{xL8jyAchrVOs2E&7RD$|^
      zu*X4WqeNKDqv|O0`H-W`Kb=S@WxG19FB4X~)6~@#q!k_MY?ZLqm=3DhCs>_$$PNgX
      zJ=nPDqKL8w2NgoGVJ?)rI^wN^(SVbjB|^0u2P*8VL>ty7LCds9=uK78`J_wBWtETN
      z1t&XkGU6d&Y23U2H{t7s{C2bNpoSYZt`k<Kq1(evED#(PHEd`O<>lI`7N7R`c>Ja9
      z%9FP|EE(>~K|I<IIpc|p2*iYiJoO(n6Ws0iAPLw=lQ4f)rjJc01aC7Efp$WbrkvV%
      zKxqDVi!!~lS|?mPSM9hhx+u!J0IF1sJml{x$a3IH^pbc_<ZL2t>(M)Stq+)ao8Ot0
      zy(D*FeMVJ$&-jvc1y{w&gP5BjY>71p)z%5T6U=`REb-oB@ek6BQ~~Q7T<be#tsgn!
      h+&F83DEU(DogC|~pcQZrb%QEi4fpX-tc(r~;1^z@A`Jil
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7Id3;pW75;8=CzA}<B!ndnD7A`^g*Ye`+XQJt07-<<k`N@IWthB#hm)Bw?<EBH
      zR;*jKwRSO7t$QrmMI{4nh+Sf}wToTdT5EUP+RfTk+wZ(Llgxz3@8=(xd*8YDEccx6
      zoO5rUdh?-!08Uo3f+$c}vOPKw9gH|T?L<$cFCOiV^jdB-9$6#5EA6<|v@Mx*tknAE
      zx$V)d{EXYNb64ArYbC5y5L#ijNQgvtx)E!@O1P0V$$rOb?27ieR!Sk@3YWt4)wzmV
      zJXsA21>G@)S@~-@TDil-qmJ8V#jTiYbtzPMdn55E&0V{7JE`1LY<1bLuql-K>vl3C
      z-&`y4*Q_|1kIq-rZVi%)E8JG(ZnK@a3l(bf_8ie8!nVXt*zQt=%~fxMFK=tc7x}bY
      zA5?cJ=%!?sRRV<>24yG@p%9e@Q*pFHVO4d9tjsb9ph#xN7z9yVf;l)Yh<7Md=equg
      zCo*^^j;BAn={pIs!nAz5gxC<mT+9pNM1`rjl3QfaU_Po8%6qJ_pmjv!{epn1YEM>P
      z?8Mv}gA#;7G<ShP9ZsVDXe?$q&fLWck+<X5PVvMXEHpS7rw}@h8%?<@hz){UL3N6@
      zcNt89k=bH{qfn|)w%Sfut^K`Qt&|5#0a-E@jdw&-wtzQ7)PfL&rFjlHqBkeW7(&MM
      zN`iQKB!HgdA8=v<t&m)5sO|`1Dc%>vduddjuRWs-8nKL+&vEv;<W3I~%@U;L1}m_V
      z{^W)=1W;TdoQXm<<t1j`Qo|IiLQ4?M#8|GTu?+@iVl~aDtQB#qm*zDRA2X_&Ckbl^
      zt$2SBYngJnvRZOrZSVoCBZ4SSsBODgQhGaVi{{r%uu;$$^UIKz)#G~!#ddTAv7QGL
      zMU#5bV1sz+C~ES&-jwW5xFKxBrXV^ARgW>Jpcrh%*-UL~M}IWVh|kDGC}&GUb*E_l
      zpurXqT|&{z`dv4fkb`eEh=GyK%>g+gMNO@$-sC4iwm=C(w?PlKDOB3dn*O+J`_;})
      zCRQW_e-y<W?+ju)z3&;DVGa?*ae;F$3k2gpuqY%A`lKwB#ge^!am%$b_?H8x3>+|M
      z#cs0AO?gR?pOrq9ULC+-5Ddk<-0;1191M2hJf1j~vZAgfhxKc-!tuGz%ZSeaCf5ZQ
      z7+i>p7$n<iPeli;l;gLJsTua{Uh#V?E;0BJKFs3eFr@vd6tTG6PO%pxQ@g~;`7Rc}
      zv|_ixW#X5aDa(mP6BF5F%jE`Fh}bfU&2}6)i>zH`aJ8_PNBjCx$pLFDM&k2p46c>M
      zDX}<v<#Ib3PxeSX`?$e%_{4ZUJB|I;H!hogN30(Who8g7Ck;L&U@5X4v8@=NVP%Vi
      zFoe$ru_q7CzPk->#7(qK`e<{a%NktUJpt3%u&`zf;d2JJ;8tSV>EG&PKr$i8GyCO)
      zw;SAnJ1Lzm6LVUly)5;48IzUnMPb<BZpoPG*|hf>JE1N$NNV?9gL_a!_1%=_6*;MZ
      zUoiNhI5?QH`l5D%5LQ$(+xO3etA}4XnKLOVg^Km8$gx<=S^NsSodJdX2#B7yC@#F7
      zIP_K7gp{RFQgvU{Wf*erBV&G9ibo6{#X<T-ijEbJuOm36_%=6pX3#HI3zZic-c#g|
      zhYTLaR|M6uRMKZ@Pj=Xj?OmWMGpNqz6Kvb~n!(ov6U7AfhLr7EK|DdE=jLw9*kwl;
      zo-}w$3PF(ONytJN#kb@>ac2<UR#=zIc|?d#(&FZ33Ql9pWn86w$W<|fr}16U@I8gb
      z{0O{V1zuMi#rF+<fFCm5qg`G3y2h){I5hHiWE$&_4SphMl%B@MxyrJ8wz(yE4le}p
      ze5T`iEoCfF1~1}%0$`VT>}LiqNx(`7{$*?`U5<qDWrJVfmjoN_l3q3r(k52qWWwv~
      zlMzMauMK`9KsPCNAIou9CS(1SI*Q*Jydn$KC0F6bIN@Bh)l-_iT<2R#NR8rEgFj{C
      zEC49RUlbtq>~DgA*Ty|HR$zV0yk0kk=OJtoo_`qp6aOMW1=NR?-SX`HE-Om9$bY0W
      z{8wRN#tqrE!?hgN6l}a{@IPq^#VqgyX?v0tM=92ERiJQeK8SL!7JhV<HY%W4N{Uie
      zFDo|t>*TSJ>$OYggj9)|5>z2xrE~G$CQqaFt{vw!(sGP4>L@~k#IEGdmC4jtP!;A+
      zE`L1M8$70lpemyib9J<2dWI@hQ;n+dN?n)j^s$@p36<Q*1R~H66QmGoOZKN?UdQG6
      z4u7<rBw7fk<^)AFu?0AC4XN-7Yu;0iMSIe`#c}L!g?um;@sIBd{z6_C-pFgaH}XR5
      zjl50+<>m51;dg+XQ&GX+Y5ckl1<)K9)zpq)dd+^!tXVLEa82C^X4lm2!?9_cFoNpZ
      z!UL$SEgV6lMvZVYe@?xRYy~)tzw`J~fNnuRH=;y0p;Rx&G`#|I^h%td&p?%4g*x4g
      zcXRJ?p4p4=9@O)TiaqlSyqO%JkcKs2iEm!P^)xOBCU(s}gwr_vbdJ+KtD25^5N8yi
      zweAV%`$(Og#+rIvn?{?y1#9a_sZQgpAuK299Fms!d!qFLe_{=xEF2hBmEpiaeY+|r
      zm4YLCR8dXcA=q-rW70Tx7_W=Wz^&LaE^~cm^ALhHX(Ym$-_*7vjecKzIFQEqL-Zx>
      zlKI6lN#oLC+?^$T#3x-z0UsU4b^H?b8HsfiRv!p!;q9+4@_35U@OZ+UP<EwoXhucG
      zaM1yLY#7sIE|HQ^ktAWP7KZDG7*5$32nQ-YoyHA%OBy$)aoezOWEyu3!T38!mB~JQ
      zK8<_FgM1gN8RRw;>vn|odK{}e7~l<<ug^k6Z$!QB#4^1ZXX>*N)#u<`y#<br;(XnO
      zOSOe-br02U!;RX;UcDV@9miw37f<RPct)r2tak8{9>gnp7hcup;Wd3e-q07QB7LE%
      z&=;#&`Vuuy?^Y-2%hY0hxoXf?s3v`-+N7^imcCjg^fhWwU+aNvvj9@<%7TouFX79C
      zRI%ED`*1&D8&+HJ0P~~}^VK@+!w7+PCKe)%{RHG*EXDz5PXMpsJUobpIC}#-JeuSh
      z@Af`G@jCe=4|mgL;n{^cjfdCBbU_-Aaa@$fSBG$p_)|;rJdDweKKUE_@l7TXKTdrZ
      zPj6)AeJ71)7D$u`^dD^-!LzbPIX@MW%+vV!27mmOKm2ys2cT@oi&ed3yuJZb^biwq
      z4`X#BPSiKyG<`Ex>RXv3w_%gM13mgKB=j%_^<G?{?_r$o%}LVTS^r_T=QZA&*fxHT
      zKhS@W=S;>2FVhD?xk#)U#TE{WMj_{<$$wm3JBnqs6@R`HO9Yp4Kzik`Y5aW;YUD$R
      zOkRJGZ2NZ_Zw#T7gy|lU?K<lLRVdW_IwXsEr(eu}AV5FBGBkpjjL0c^KTc<=tm4?J
      zAH+ue5W4gui0enOLm$L|ehe4tL*B_}`X|Ypd?s2|kkRMWLY@+t^KRfM=am$keLxkj
      zu6<mU4k1)~NR_5l`FP4y&@s@@F=d`dnSO!ByqKe;GNYszWonw5E<)7|iY-txRVBv?
      QD&apO)X^NDhEieR|HU44ssI20
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G>vI!T6#w0jcGGa74+vO!SP->MvB5VIKp?b|+7_iyw4%68Z`*~<ZrR<m6(9Ik
      z6j2mW@Pm#z;zxCG6`eYM_K$Kr=WbFqE#u&HvU~U5^ZcFPIk$iR^ZTCw?!)H>5(4=X
      z=8QR)^Jgt*GB<6T6S=YqOglHo&pyjmg(=tdm3O4L<*+$sE8aS!oN?tT&p=Wj8#fTJ
      zNN&HHFe`ST<qOKTYw`k(!Ib51*(T6E5Lf$8zj;#IX*pJ~TcD@&f9Q3M2qX*cxN3sH
      za)|~srm+kwBn+$+Sk}n`%>$OBhAQPT<>`0@+6LT`X^)tm#mQ7RlN`9fu3LA%6fR0+
      z!=zdYOTjHqyN+@Kfj#y4^=t2W?KEebRH1`oCsZlOkB%0LUD38V8{`%&<kMJ#+YGD~
      z=(=TqCE9Vjz)FfOR&as!oso+gJNjd%+R=K64cJK7Ry9W~H7l@tQ4VpfdV>?hrBXz%
      z980l&zKJsEkl2LH0x6aluzW&hRUPvEyh$-^!QBS#5@?Mls}CjaK_^+D&<2SDwm|!$
      zbl8MG$}dM2TMcvzWa4%f1SIZ7kAOk8hON^|Q>VyE+a&eT{Q{CsdTmvv8t$c7Go7{K
      z#A{~YL6T$#Im^}grtvVg8+b&ZBkuQRut+?L9Z?9ylIsX;j!>?d%GV>yG6avnPKjNh
      z#xZ;qM2eaE@@UDfku>&TpMkvsEjq$j;1UJwCnN)RIPhpn2&}Fm8BsFY)!zCf9>;;m
      z+hH}Qp@@;UD#_ji`X!#gfIt&Pc5vD}RUurHouhm>geMIgq)v>Z67_<_Q#eFQmf!1e
      zdyea3jIzPQ5=YoznhaJCnIK0cp2jl~bbT&2S!*qPZXMpzu|F$u49`WeM{;ddh!@1V
      zMwpz(C0>9@rSt>S3wp<`K!YMEh#{0D#zC2^AV%ynOD88ix8hKcZE>Fk*LFSabW&mp
      z7Ku~Laq(3#*O7FD%Sj2lX1>q$RAipBcO=}JrTEDZPDyyIvxe!bsN(|5b#6H0r~`@0
      z5|JBLQlPfpsAo~ngj=fkJk$?ZlT$YRf_<(>w?P^&;w1y87xmDQ;-Kl6lgg8L8Lv>`
      z7#FP|kgFyc<Juw`k7>zVq@V#iBk>wuk62T)v$3Ah^-5ebfj1@I!rO$i<Mwd^HPv->
      zQ>9*0pdnz25#Q^iszaHMXH1(}+ZLmEbv_ddEk6RADVmxxeeIXn>bV4_DAJ`?a_vf)
      zT3O6cJJ-3m*#w~5BVm^X*49Zb%qTie54#nwq;F^vTY7=_a61uii;knbf^GV~qARUc
      z*OkX_?V3ghA-0VEM-VM7d}-1uK|2Og^lYN9?ev|XcRJhs3q5{?{7K6+^PWDLBfVL)
      z(6=NV-fcx2y=jhPb!0`HK~h_r&oo{^A$yH1(Jw?M#JU{@udm^b5O?lKWg6O3*U=^L
      z4LY*zMmud>M=pWC@IZ)%LgcR^l@;{PZVmBRh~8{6L^0bPVlc#TcEQw0h|%cd`O8RU
      z8ZX1xa0P2va4f_GzfXiHU&Sh3PFJ^l+R7v^qdD6)^Bd+uyn2;F{TXl2D*GcPl>jF`
      zM5zI1De(`G!8vTghjeY6M=vg*AD`k7F5)OY!*N_f8D9{Mui!m=Nhe>?^J{!de?Q<m
      zT*LSHgH{aQu?V0lc)&c~!MhsJdD1<rp`OS4Fm<`+$+JnIvfMfH-k?|KY1K#(ZNo?S
      en2NZGX5s~WLd8swZ;t*VMa3l|CenDj1pEuJD!<bJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E%W@k<6g_Q8)0P<gP$C<H0RtvjvSX2#0Y3;tCPZL44<|NnGLqWX7->d~#!27@
      z*s)*>W!}X$P{E{Fq$rkb*z++Ir)S0^5wkF*(o9eHz2}~L?!EoT-@o1iZ~`5PK7oa8
      z>xOl!*tuytTg7(M+AOw|Z#9b*{XB0sRjJ{+9pzmsPp&J^w`*3jV%Jx!kK7$!A}KJW
      z0g6qF?iZ`us>WSIU?kYJZu-U0v|>5dmhuD)zhQSKpB0#1IdtR&x-Hs{?Y}56JM};O
      z^6LW0l3Q142s~&)qCbNK22G?fB#@ZW27@cMqgHoXRpni^s!b)3U2&P_y5-sWJK9WY
      z;sQ&D4}VZFCNkIzq$|0OZ!s<v84WWkYO&(&h5UL358+{nG4hGUjL%Ixf^mW2E#;To
      zR@-%y!^Mu{2U(T1?_(w&$AmzdHf5)ye6l|>l@Is_!NSc2ZTqB&r!XmC_Tp)3<sSPu
      z5M7R8O5&M+Q;TSr$fLl%Ak-yKZ7R=G^)>rr>N?UJec5g)r(?TLKw!qiah;GRdqLS-
      z4L^+{PDrp*2IKTY#wJeU6!Y}mwty&W!!su4^qx_5ecx@R@jT`wUg+f)$1|}Im^Oki
      z87$$f1UqXW2op4N#qt{_Uc$?a(z0#|q^8Q{d=RN*Vp+Q<n`+b7(w#T)s%G9#<{Nh1
      zZ)iSc6R&Bjl&4e4kj{!uuo6^fS;xF+;u0=veB06Z%gcH0AH$l7tGGrXSg>;}XuTsK
      z8J+Rjt47=MSZRTy-7>~K!R|`c!X7Z}sNln0yQtihtahJ&R5<$gw^^~USUnM9>1ZJu
      z<ZRWq*?VMew{}|LfQL?n|L)~3i7r%zBUv}0P-R={utB5rf@Q6GbkW3}Cy<XK1a(^T
      zJziT2UHI6L^TQfBRx23iZe=46>Ra0%8-bjsTJ8-M#*QKGpUi!gG;(Im-SKKl-;Xpq
      zcvsHqh#aS~!x1kvtxiYry8V#!^}(U8TMB&O!o>tdOYon97#h;o8E<lf|1`9m4{&uF
      zef$BL!t~ED3%_9CM}GBTm`{T?ke?yTwW-(iI)bBoQv-~I2qHmLjk`6yhtZ|+U0mnl
      z(beh19-f#_jwSc-^n8k2)5q^%w$8`t`kax-8DptCc&?sm-o@ga982=xoVLhG?f;7Y
      z)W#R;W2rs7o-;nVi`7r}aHUJ{BuPPjj+FcYX}OC5`6Y7lD~!vpF(bdhqWl&W`5iXo
      z_o#8bDSrr3xf0TiQXz4yV}r@0P{kWK#pDP0eiLs|x*RU!ZM=gd#yO$y;yqf;U>@(&
      z&cGrHxXzWNw?*$z()mbIqrgOJw<%4poIeE|M!2U14&~IVkb}?-9^tG;I9bAs?!pWd
      zrJA=z7ju9dA@4!T-!LS9@4?Q-*x49+levZ*&oVkaA-Zyg)&4Vpm<SJJ2!RG{y6Vbr
      rQ;t5qKR`1AJHvgQ&H=E$diZc^gVx!H5Oiq;jt*SDbwdiY;Q{{uYbNjX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_^31C#k{r`97?R#&t3;_}XMi8O`LIMO45CSM6;Yc8WTpIA&BpX=SWaDPTrS(9(
      zwbrxss)`3zZMCi0NF()Vy?c1oTCG>Lwf?NOwqC7PexL8W_jdPf*8Iz_e>ItTGxPn<
      z_nPl~zcUk`{^}<`C8EQP4K_(Z6HW<l4sWgO+!AfyP}va+w^p`AlHpio1OHwajYVoU
      z#^arl#F{#r0{MnFg*&6omGk+xZ@8esmS`f<oQx;7Ee$tCVuFg6@?@2<Fs53SOkl>@
      zf`+6=)x_JH;`8HM1r65&J*w)x4vfy=Y>2lo&iTHf{W377)}zNmsBr*mK`R(_i5$rF
      z)sd~qh0#c?MbH7h3F^~502_dz$w<Nl3?}0pE5hwe)KEW+ZpHXubG$v7h{rks+7wSF
      z<8AKv0Zm=_YInZ|hC4bE@y(I>x=~PxADh$6=rq;Q&ZMAX|B$6<^w?S*Zi+?vkfd8N
      zM03l--MI@j_YC5Z=J4oB`)J=h{Y!hH7ET{ghnthpczZ**BUjDUUI()l14(P6ku8G6
      zIzg&48BQb@v_zAz89|}WW=Ju{6bdT!kyO7b-32s(&hTao3B=;@O+X4ub9I%YAl-`b
      z19;k1kr)dEw(i3m*&Jz4R&oypz^uUpe?;0N2|x~NiFZM0HL+;(CI@<yhOP{6Nme?b
      z4e_qdNH$0(nDK$^k91f0fn72RldQTdDvt8;(7(d8O{8I6jKStaB%F+_sS`AFybl>K
      z%Z_+Eq%zwtDLqTNb4?v9q6Vwgrs-Ht+5V;;HsU#$5D7X`(M*~p$eI&vk0y^2bWqNe
      zS>tC<SPQW)jkZUYb+t7`60V&WEsZyaV{5~SC`-a^6wQ6sahg6*XE!@OPSAmV4zs5V
      zkwHh=G#_rv$AVrbHq~MgYVXDhUzCWpEDdjqcO^qqLkpR!MS{%nb#)WghNznAxTRju
      z2!}mwB+mGTaC>+IENa5q0?1>jq9Pj15X%^1xgcY_({qfXVj2v=CO1amPAYtK_p4?$
      z^HzvG&2vGt9m^{gV->puWqV#v#UR|E;}oqS)C8?lw4RQK1|0iHFJ3Ij@qTkicg<#&
      zPE<6CMuUc~_Vm1rIjra;f<}k9t!e#q+5|6Ll9uiKc%p@Ut|Q%MS{9;dv_a8E7HC0d
      zB<XbVT&E}+M1yVOt;eS`z2135yCRdU5N)Ck7VxQ<$W=-9Cgq5{Q_*2GK1f}V`mvEt
      zsJ5E6DB4Qfpq6k8h@6n6&NThAwQ8JAZ+X)x@EopkPg696l`H5Qiq2r=4gr=LXNz#0
      zJa|7#(Clp5`_=83wUI<J3j1%!*x#A7gIPOA&}9E&>K7AeWXjG}bRL~AXr!a%{2M5g
      z>c^bDtn>MXuZu9gZi8k`U8tylLN;CO+CsL8>Zl<^7ty86={E(9^3wxd=poK_?`ZQ|
      zifjrpk5?$VlCBao`fGSx8EJ>XMG}I-ezgDp*z~5D%}iXQ=-c!itPt3;*CFU&|J=Nf
      z)I?%2Z-CZUHC@N{c)g%<XS8-K8B285Wlm#|ZiGQE2(v-oM7P*<GnR0+#W@RZA@*%V
      za*B4*t*}%_RtwrXlG~hqrmznG_}6}uUaXbQ5O7ybw=24Xb~`K8gUnHvA85kbAbk(c
      zb6Gr*+{kNv3oGp&Mc=0%AQW&2akktkei`+npL*@JX9wv%Y&JF6!XgRA`Xfa@ruz|P
      zZipo3X9sA*a(tQ#&oC)PJ@f!%=1_ty1IT<9C#X6Hyx*laCJzejI)9>QBpt+aKB#Cf
      z{WQHS{Q#ax2&(-rruDGQw&`I(!?Fz`69b3nAzH?(^Jj__4dmKmiUyFywI>u6l4a9V
      zf@Wlc_s_iJ_&oRiB<-;27w*=YUh>Wu7R0X<{hFSI@S(73Cu&YdXU@I@+H<7fw8I#m
      zq379OynsN|Z#eD<$5H%7(NHSk$$qQoW%?aL>C9vfC7cuVaj$u-&zJe|{I4qdJ#RWT
      zmO3NhSzcH42G260&n)qHY<0B58TSmmrRWa~Tgb54U4q_G^hf#=LY`a{4egP(czYDl
      zP``my9n<z_Meou7IBqBd7Z|TY7(stg^Z`qr=coy{H%DSQf@c%>tD?V=C1`N79+8n2
      zcm7?`Ke%(auQS65kNHH=r}P;_o;@Z*ji?LKKj9lzA<}|x5cGwjFL?nEVa}VIBb}Y_
      zS#BmHTfsNy0Pc4nrlb5p91LZxAU7vk7H;!Wpg<zN<#6~&6jPClWRn8ROvf>4Kidf}
      zC2S>vq5$3{0g-bO;@Vh__tiEg1}Hj^27_TSP|*mE>$C^TP6`X%xX8(yF@+(9C^3j;
      z1w}Eu=~84kWp(XUWsIam(Kxb#VmLZhAp=Txlqwp_;m$NMLWz;$An*!7)kedy_=eTn
      zIzT1j%etW8_zWV6l(7`5%7Wrx1bW=iSr%_C<B{BWDEm&W*q|7THCPSDoh)N<mbt-Y
      zS&K%^G##eIc-G_yD8M-sSl$t7cPzqFXi$_x%-qfp6P1{x?IRBaFM^<`gj9KSS*Om(
      zA}yHDMa~EgS7It77?p0#OqsP}c<3}GrZaU#8zZrfT%wKyQH#;e17|5w#W)Ky107oC
      zz{*)d9_QT807oftGy{}m0r+fOR4XxG&mHe05Jpg|!~#8IrrVhj8AXwwdlo%|)G1M~
      z=gb1}&$(2I20bSy$hrI?5)H7~FsfseSgB{v40L8+joGzrrDgBUzE+82_3T+7{@ELq
      zSjV#u?doVjZkanjvI=XB?qLc}RN^E?H#mE+Lqizu#~GMWd>OB5<i-rztV9cg4)=j(
      zXaQ1pRdM{l32&z@HekE{&$p{u&)~cr-`P7tqLp?am=mWcv59vWPE6b`tiCoS+C>~o
      z1_A$y1hkY$ZmZddW3lx4fS_@12-g$|w|7?NALT^p;#4IP0$JdQOfZyo#vW&a7Wg;0
      zJo}Tk!S;95!E)_VG=a*whWuw34Tt9y+mzTYP6JC04YmH`5SFc=hJGmUC9w5OwVOF;
      zhnepLh37}+R6!GMai*ZT|GCogoSlTk8RBe217Zh9Yd&K7jaQuP&J&zVH|OqRr=m$T
      zIV8>#7uW(R)R1iY^gtyp6c@pSVFb)?9+ge>Q_`Pakgs8?OO&`&AORW-oWAp>bOQ0U
      z;^c(S5Z_WF!Y43A>21w3Aid>Wsl??pi#L#~mAHmYc%-wx<+o2J={rhX%WRHt2Il3I
      z$6c?)4NQ8mGtNgn%k#U64xm!5-K?mRri8>UalI{&jQDeV_sB=-2*5pRw8b4cX`{0i
      zaS9m{x6`tqK!!2cJ$6m&0bSy5CGHX5$G+Ing%Hn6@b%$<o6P%cB^@~i#l3ts;t!01
      z;)e)U7RAffbnue-u@d)l2vx=*lwSR-<14}mWFu*>;^4#dZJ-n&JxV+v_8^P_h<hYE
      zIVZf;=9+aVpT^~6zbxurHuMK^+T}MdR*jb;+XCsuaG%L$PF6!=uXvbo6tFrTRdgtg
      zVZ1+A;xP^xhr-!85&ZH*6zqgq4Yqh<zY+o7OuZx|Bp!!5#SBj?@eJq2gD^vO`pbR4
      zRN`06RS<oe4WygmStXw1qm=^3s;Xl#CjJE_UKGDUkOMLDDRTz`7r3q*N!EK^vqR#y
      z;&--qImd|71C)4$V?7Sz8O9dBcdb&dw%TZ0q`ea&2#Hr|Ayf5+5^svPU~&Lhk%+WL
      z5{XF5s_6EdFfk1XKcCLIYjH6XjdeQnyaODpr0nCRp!gFuaE{!9;?KO518-13EkQ^n
      z+8T|tu(bZdmh?eirZYw`K>SsFWQ)J$Fr6Nt#NRoBv>`*D!WJJx^Xu35J?^r_r-Ba6
      zwxuMW%~sY%TEktjq+YO&!o(-ybG9qQ^yTC8p~{1u9p5g2z<;LrGVSF&hwMz0nL%%u
      z)5KRw?2||rhDSRaKtVLU<QKFvWjM-19J~&ArBu>jlV(k&M=`P7X)0+++ewjDZH#Z>
      zV_yh-{5nmOEKoAU-KBu7iO0Iy+S3?dhw&|u7F(+QI^NTa_!fp7zzbuS9Hiu6IRsXR
      zxm>w=i$~BbXPrAnQWFbzcKWxiEGcC#DhSJ#NG|4NtFGVOaEvC<cZCp=MH2bQOgT)@
      z@qT~PFDgHU^%`+b8w;YwIk{)O!U`^dkCdfK9>_W104M6xkkCrAzIQ9mV?pRdYS+nP
      z9F0{W%ixl8TtSwEw584t$wTBATOtJ-s@Go<2}xxwg4u=fL|Zti<XAZldl}XSH?D>U
      zsN++1<jL%Iy<@V<956VVPvm$dC-A~z=d?1ur6%6hp5*olB`3;Bh>fwgqn!^n@-Q=D
      zE!M59RC0<$&dR&sf>;FpCs_>-SAy(4&-#={V5DXv8n0xjhU8Q^UC9{|sSmGjb|&D|
      z6^j2D15%r%WR=9dLI}pUHXQ4U@LXQLo4r@+`w!rrtK?DgXs{BCv~Ngm)XS}&byuzA
      zd|3lbty+wZODq{*pG~!Ub8O26NMAM8ou|gM?3wIEN-k#93TDpRfaCCFt*mDwT*Aw<
      z9>xOoH7L1EVr#IRxde@Imq}ML>frMt(CoVa*2FPNu4Jd+ZYod)+s<kw*GTwjPTjT9
      zEslh7a4hJMyvF31v@-^J-z$$(vXOU@;<USPI@!~61Q3UB8S9HS9INc(MxhBAYl8-S
      zgVTPSyIY{3VU8u_njkNgt^~*~boyPB092q;?@%()j9b~Q_=$$(1{t*_6sQjf9dmZB
      z<Gginip0$;AICV&*{i@+swN;CXtp&E4;1(xYu+@c5|XFNPFpfnTH{(H4dLWQC6f{t
      zGDZh42y=XG?Sxuu-WUhSns<~_3Chz1QBZyZoG+Rml*krj1In{eE<t$?K<95uMli#<
      zZq$=)<MX?sF({ImJ)dpn0$xb9c}y}SFOrwo5?2&io3dlBN?s}v+}fLYc`R?uq<7iN
      zBQMIG)De`IL)v8_xl>-L<W=%&b^;wZEr3N#%J%K<(&&rFWdUw$r~I~(-{FOg_X^H<
      zaNoq-V~%=Aq#e{bj~@E!lWnK13BNY+uMPMmYEg+|C%aY964s5k_4e!C$K*aQN$-qo
      zrkpK?<Ss%kHW-$Z6CveXWA(X)_Qza&=^*b^@^*<3-#ZG<8B!o#m3J$751&bxTcRz=
      zjok7BCGX`HYhxt3VIvldOm@HtI;(<jc{AY|`kK%uTXECK%fA8F*KJ*G?7n#Vl#=)J
      z^tvm&)$20O+_!IE`Vc>V1|{fd|E8HIZLjS2h`^SJiC6sJHItvNknF|LynIN|y#E|^
      zIu-E_OY~kEl0Risj|!^!FHm{WPDnl?f6lJ{F+q#{qU+Zp`;9GZiQHvB4j8b9=3WAY
      zBvKe#KD}Q8^W({|_!R9x<|Tir<getfvDbBVER3^@s>1^##DG4(&ux6!A)iz7dHI5q
      zr8ooKyKZmA>X97tAu}4ps?f^>9y^lk49OQI?muQq<UqD_(TDSbXXGnNzABOJ@cC9l
      zII$s$`G>kLiPwk&t;231Usv)CPIw1li7bjQj<-de{FZrnOUXYlFNGV?oZ*Ipf_Ies
      zBZC$3E)v<|bY>vmRr1daIk4U9V@7O=4cd2)S-(2I0q<>`(?*{1FG_x(#TSFm;a!&D
      zLh?O{Ym1rk1+Kkf%fIiJ#@Kx^Du=v`Gy4c(I`Dm><fjrog>U-(LpV&xxEAN6$3KFF
      z2o(QR@?Yts!#($AZoX7hMhA24D<$_aUxQjQsiGE%A@E*qKh~HA&%=#DFl8g)Zk3+-
      zID%c2h<9~_3<K{n48yQ-A8iD2x9(qw)lHqrM7TNWfPgXVMqTc?JAywp0jCR0q_yg`
      zgjikP#|WRT`&5j*N;wkn2D{JfG>I?{AE+}%cL8vyb6im4dyD~BZWJqHD4!>U5)o|W
      zQ9i!r=3&Yh&dqir(h-ifb99x6bmI7@2BB2;fewz&j02T1!Wijf2f6*&@w_P83%uYT
      zjZw-NZ6Gh<a}Q^$jI`7xBM9<*?^V+8OG3sW#u(c;6nS(XeShuQkTS+H4?{f0I1{J|
      zH*ZAf&$$SHaw33BUt_#7CV0ugYJK~Od#+BT(oQm*HI!b3Zd(D`u5$>b10d(L3(<>v
      zpyruSo&(MW{OnF!hyWeqd^-Eu;ZEG(UI=^IKiqGFc{WmyjCuzIb`T8fOT;l#-~{~O
      z|G{RG9YZ=c?qWk?mb0t(kF9S!mqpst0vy{S2=hoig1_rB-_!W}n9TQd{^kYe5;H?k
      z<^Hh7hZ|%VHOi=EH^gUs>3!WZ%?x(LnRE6ByW;{q(|4v?tc*GXk*Ug_3U=z?t;`J0
      zOgmFhY=5S8B<$(GUv1=lo{^auXXo?(?=xpCufVevnBIO}NcdTCAF5!3_VB^@Lbxwa
      zH1nl5melavP<&0@WcC@5cU?OIaeZFI$-xkv)H0A4h;R;>cfUgd;T%);-8`^{b0^Fn
      zVFG#Du6*$#Nbb|&?3D27eR@1vZQ}$%)A~5WuYHPEheu!SN!~Uguj~)ymq0N-b7MV_
      z?r-&o!1-h@^L-K@><fABrx5*U@%zr!pp!li{-8F;dpQU2bTE!Nv0vj=f#j!-s7ZeK
      zrW0d4sMFtgu%k;n;n5|Y?dTGZCv}Nuin_#GR9)ibsV?y@1|{(ope}Jgqf5MH&?R0n
      zpp^V-Ntbx|soN2!=<*P^#Pxyx#@hs4;_-qm@!V3ExNOuVuKIL|do^9+76|1eJPbUX
      zrh?BS@U;-!N|c4=57V@zy(AhddT7RdXpvNf-y!Zbk0jHaNwe`i%o$B{XfD1?;5v$q
      z1};2zrdck|2qeZh$Cd-vyz*YEZtSI+M$7D>1wFL5o0jOd9%|^O6+gs4XR0C!0ONd2
      zRYRp_EsZf3WKB7iR?;er1zK9|PKmd*?v(Yw;jn=zk1a1xQDZlqkilKZN;T_%yPgJ`
      zOS145rtubPrkEAHtab4&a`6seR!%M#d5|s#(iIdkkI6zhAdPfD8flX!ALDzF+W>IA
      zyrP$y8+#~{qE=T*`cum&ik3}{<@Zxt55>DFfm#$liK1kRHfQ9w9ju=2Nchag@*X-H
      zzzyZ)6)D=;O&4I?MU3Nu9=fEPE<^1y?z%ihS5M@R6kU5P%IHL|f{*P*H}DK-9UL4S
      zGzJGBpzo&WwhC@3x-&(0F^0RBP2yhu*X^EEbT9X%=!aDSmVb9Q?Qv({gW0RhQWLGc
      zm>EPp1g;<HrblxKud+%lWAISJ#aU`$&PSOvXPhUTD!bHnh4XU=M@yvCF12`MX`s~3
      z0}(6@x)6`2A%Y0Fy_tfgrVAa+KtIU>eHsF-Dge#TG=lzL_Rw?P^djhbk;U**ieB;R
      zuchcsul{z5-YqTQFO9VTax@G_P%fhPfv74}8p4<lfkan60tQ|ASc8{_T#^ckK8Hq1
      z1JFg5z)J(%d{+gi`WLJ0u8g%mk7u7`uA>3wdOFBFo+g?n&@A&rsx?od#b%g}Gn*)E
      zHdBY$LZ_P%I@fHaZ<-tEdUGS)V@4@uZlVXx7(HXQ(eq}UUN$@EP4iUxz)aAmW>N^V
      zOB9)##b|Sjm|$)dv&?N`iMd^@GEWoh&2NZJ<{9D}=9%I`^DJ?>dA7LL+#&8VcZxmc
      zx#BVNJn@`)zIe^NK)h>SC_XkXmcqP5hRjQ4vH49o(!5NLF~21znU~8s<`uHmyh<)J
      zuhxsJ!&x@o;*!hh-`W!#CqARE;5;QgD6XV^s2TLK*usAd0H5-Kz_}Y-xG9RnT!B~@
      zZ(L@HVM3y2<GIN@!ayx3?xNfIj|8Yd3R)%taMpZ<Y<kO<ZgYJ>EiZ*7DPgfYSb`4`
      z!UvbiX%q@QBBWQ0J1oj$FW_H~@~_J>x|)iYpk&@eLGxyKrdz1Q+y$N8N{5)Y(P8H8
      zRB7Hp)66@ezwgme=3P`{-ks%WYCTy{tt*RwD5U#c?^THstdj|XS7dy;#f@gSMx&eo
      zE}8(p=S2(e3@hQq8MutOeS(H-pOfpy(UrmLIN68EHXor8=A&8o%RK!20?)xOmbl`)
      z7p_$dE-w~E-C`(;Vcp_@ij+7oa5FX~2=#z&YTHc%xH=S7j2P8TKSxp4O^=rw-Sjc)
      zhji12D8_WtM`#k`P@m8(Do{-B7E`$C2-IhEi<u~9cZ<2)G|w4TgJNN~Sj<gJP+!(9
      zR-jnbE!J?;aj38F7AK%Mxmz@4G}n$Gfy`gR{r`%T`D-dRp9R~`(Kz!3nr!}trkgL(
      z9P?$WHh+gz_X;gHe^0B;*J!=@IyISZ(gyP_YB&EtUFJKq-TWh+ZT^WaF#k-Kn(xt7
      z=Ko+d{)KKfKcL;_hx7yUuUT5ZH?8%1(^|(f6jyN%Vte7eumy^{tXH(ci;0aX5oLSa
      zlM*rB9YjaBNTLFvZcd4<-Qx7}UU5bv3wd*oIICNn!!`UQQ{r5=dU{G+>{id=D%6%`
      z$K@OxnV-`j^Pe=_{1=s(U(h7;OPXu`8{B_ItIU0LBI1;03s<<H&Iu%1(wwxUIl+q=
      zmy;V^6RG35u5jtUirEt2Cqv=4GZbEzp^&RLJ`N*7fuEaF;+Bl^#vyVc%OumXXdqr)
      zmsmk6!#nH>JolVoDVl2yq{UWY7O8b<QtQ&B-bTl}q%H)hyjq5Wx)YvYb9F)x{>)h+
      zRuS1&F%7bYX04E+-U{JA6LN9J-Po+6SKQv%BX%#XC>D3}CX^C)q51<<-*>9_m8Zmy
      zxSE-27_5M-Q53XBQ?XS>qpX8zf^|q1Lly3nK{^yJX*4Dc@E-}dlYi=3(KRg4C#b<)
      z{@xx8{|1XW4|}3W^@yKz!&rL7Uc?$~KM!?_N4OS9iJx)VD;{Sfd@?1T+D(UY3xlP^
      zFHnW={56V4QsQ~;NQsxYQMc&eM1*?9tBpg%)kEm~9`RaAyw3d@KDGa}CPSoCsMI=~
      z##>YANb3kX+L}hkSTpH(YZh#-icYoW&^K^XcDYrZC4+0yO1&nn)IWGK5M$s15tGtA
      zeVA9)Uh#ILQ7rzrsxeS3-d)vb7K`^*H8?E1zejwCi;%~}KjboqWmjXb_@r^t#2)ck
      zkN8)&xDo5`-`6^ZX{MxL?*<z+P<6|ITL!r-7H{{;0T7@Zn39F%y|PHJ(;F*#<j`($
      z6A!`9O({9NJS7jvNM;77CsqR$S<9jM6*SvgNz1L(wANZfVe43mT8)s(I@)Hfr;Du<
      z=mzUV+HIYzrBm+kotDl$u5>2QIdX&?31gp4r^<uG#~fGl`vJ#l#9pK#oGiV~RHfvo
      zhs7sLQH5IHZ?LQf<iX2CRbZkP&kVC7B@dfnl~^<E-Beh?5>3hSowg{kOUzsLePnR^
      z@`)w(9ywXk!*VJDOJFSxq~x>`8`7G|pXK~Lr$^2!u~E@YlX_)sBR4PXk##A#w8Vy#
      zXQmO~x0_VOPHSI@m69t;tP=Cqeg6O^*8*>JERgLN46I5?1jxLxvym!2%rQ%q5p*l(
      zan>m`z}keR7Nen78~jNO=GaantvHRbI;h<0q{FQw%|cmYZKgVFD-^MfBGz`=YMn+`
      zpzQ|hOuETBi|#~uueF2rTIbL+*17b&bsoKLU7!_nJo_zr+f~c}dReZM>mmGNdR87U
      zPk>@d>1lbQJPC>!Nl(a=Wf-a)Ll4O&`V33Doc73O)GXwLC9(xI8#&-w8PPS#&k0;r
      z9*fbO-`@IwY+W`~#)iuF2V}=(M+S6#v#wjZzE#(Qg|kA%a(k5;JuKK3y6So=9(~cU
      z;6-t6J-tfprlUp=3#2;&PRAMCF?RGYE8Sr^9cOWe8hsH%@2FC}a%bbD141cz-UIT&
      z9(h@@{8ma{QL6AOC9lb-q8>3HSyxiPx{3x{S3~^Qz$1JcZv8tn#kvmSzk#Z)8zKIi
      zXr*-vt+RGflXV+yvhJWxYd4){-A!j&_s~x3UM=pG+L~`ouY+6VwemU$C_p#K>*Wm)
      z@?g4B-iWpU#C^W}E@~Fi@YCc?s0H!bcB^cXH)C&{LY?v!^daEl*T;^KkwiP`cR{b*
      z#Vh=_3@bWHv-WB-oXxTzO-6yc90l%a?{HCF34Ouk({yY((UjZ`UxX-C?p_9?h2VBq
      z1=x|62JV-4O}t-ze-eI9=CALc47Zw@R%hYX6WBMNgan_05kIX-nC2i)lQ7*)Y=bmO
      z-Y0(u!y8Ov<&RJ^V1gs%k5LQYcIE!BBe2^gu-hfDd%p;L5d{7Q1il0UfBRn%*pnu3
      zJ_y!_2rQ^#`2ha&iN?{$TUi>(b9f;4$e;98ZZ9i$Z$`=vs=sBS>Z{xU|1D`>R6k`@
      z59gx#;{SmPf3oSKI?ClT)GHrpL|`R<mV?VK$ifv$D?H?Fko@<1F0Lb>Y>s+hzP!WB
      zCv#C1YgA5>;c*z?KgR2e;3-D%OfG^^c@f~xe;owkEBG&)NQ`mvYVjlF)k`Y`Qfh>Y
      z@)s%jY(=kpu@ULF(Ia0<$=_jBY)9tKX9}Fr%hv$VFp&XpA|l@ez{I`)`h3I%cpCuA
      zCNaPy0Q?C6*l%)Yn51Wr?;#+P@At?Ls{*9~->ARw_ead~KT`7J(g1d=&&vbd@(ZR9
      zdlwVvfd8Apae9&iZuS}ka6>Y<iQVvX4XKYYdJUto$1wRg1*i-zOca^ucRT*5oa}L=
      z?89h?J)TPK2{hg=r^D@uG}oR)^X<u0Z&y;IJ%yU=snl*CL7nzAI?bL=7uhrDN_!^V
      zY|o<m>?+!8&!(T*bLdHXE<JA_O>fxq=&yD)eQD1Z(ykH8UVt5ap%`f|5{KH0wLTX+
      zI&*DHi35xRq}zBiK<^qM)Fic2${2u}K{wM*Lm2~MwQtY@qYyPyl+Yk!kby*=0>%)}
      z7HBCjur&^2N$4FLg;AuxjFJrZ+Qr$+$+lNep?wUM*ekQFY?w=xFb+s3A|0TJJ;Qk5
      zx}YLul%|Y>bO>u43<ZC29RfInUdQgH0)04kY-X+lK_l7gX@Gq^71<|1(kIfv_Q`aZ
      z9oBO?o_&0Jm5uj2yD?54>DV}qJ@Hlsvlk1*QuOHK94_Kq%s6amR=n>pbqYy)6BXDo
      zsI@I?f?{_9NkfcskOV;)6?CdQLAA>spIAK#_9kZN*XO_X77E&1v(R}<87tqwADwA*
      zlMOy@;FE*t_+ffQ295T2_KqwRBF(ZerWl6<G+<0Mj&M<M2FNJ*<l@C#pKx&&8Z(W?
      zbR>tPwrR$67tJ`AF{``+M+Z6N1RPI}X#g|B@T5H!uxv#<bz9EVK9HIDK#W;AAhbbK
      z>&#M>7i4ySAanA9%<T{4sJtLY_Xjf1sO}@O5h-JSj>s^Eb9aZC1;)ZYFfg7){lP3T
      zc#*P^WQ%!E4ryjl)-(;qvOFNUMqwIRAj^#vc|f8$vjjfQ0y!ox$o5>2&pZ&4#!8li
      zvC3GDat95@({f>~LDNSl*AhGz%46}3OBLfdl-To(M*L5qT2Zc}fP4hydW=K5Z=8t1
      qkE1*Z?OdLW@+p*IL{Pg>HlhCvl+9=_LfHZxoQX1mxt~PYO7y?ZQqfib
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH<QO6#i}>38{e=N>x-IDo6`~hzcrUoWYJr$D#`z+;T}{8zv;3Bv9D<M_jpa
      zqYIp2;Sca%xOL&ijc+|Seaec=+<VSF_k8E^-81?4=lBDF1sF17422!O&kyvVVY^km
      z?(i4-t`%}e-w=Dr^xQRWhMs>oxgaCKkP+^>!^!!{_KszSGNhKZ9YlZ_q!rt>!+Q+z
      zd|{IzQS>TS3UQoKA)}8WUAA58@!syX<v-)wj>Rxk_Dt?<a^Du`mN605?0{jmeCjd{
      zhW@G*iYnGEyIKpQ5=sne%lh1|gf#}G&TThxW6<(Ze4RH!z3A=MJ=bzWqicKU^LouT
      z1EW+bY^HD)=VhE@7>vjeptggG5nN#Cqf|xD@qFqkU+Bh(Y=(kM7?Ux|FwhAQ-KZGH
      z1Vi$EdA0b6SUm|8nXjn0ib+ZlbW&vhtDdqN%_6U<m`0vlD?V=sx*6nri9Ycl%w!nu
      zP0;R|uBr^#?p3=tB9<M{A}ZM-RT=Pot3tZXkb3Iv`KGmIi+9YO9G!X5CGlT!UCS>z
      zJP0g$()0t@bi9DZj{Iw0MaFH0=~F(lin~}QhKT14%iUY`eXr4+yWtk!z0+vmI%o=L
      zC28^#v}gqBq>y%#BqN!ed5_dvQesePPmzT3nVe~y=&UxKFn~0jC^H6W7Xju-iU9FU
      z-y0H5xFk%<mmX-m10Cu>wH7ocpG1D`LB=}BEQSdok{&~%9)K0?2)X5?_6`@1a5=st
      zy~emUnv=G23EG-UM&8Ovl_N~OlvqxZU;X{0jU>st+w7Q#rF?^=d`G|X16k!KG?I(T
      zFBr=2sFw9+zE&-i83oKljjv!9nxKnpbC@Tdg{G61pemP$`w8MbgDLvw%#$UK8{`oq
      T=5LWqwKxEVut?_wA@2MGzjOOE
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH<QO6#i}>34~w^ZB^c=AT0!<D5!*S20J1di!O9<OGvM6m^A4mfx_ND;>wL1
      zUEmB0e}MnOKcb$SK4nE_?mg$8d%pAd?wS1hbNLg%Ll`m=45ef1)H>6{mgCj*rfYrF
      z8$7aHeP8UR?R&eH9r?le!n%wULsq!!u0_sokB+$=$&fnMZV&-tkhUGqiJmhgi=_jG
      zRN1d`1xbvkkTJxNsW={gbJ95C!F%h-<qYE$-?rQXD{#cQV@ySLCuCTuT)RwzVYJ30
      zQN<p2YV{~C!DLW7)(=iKsxu5XEys)97_?#>U$<J3UiKSJ-{W3n^lh&Kt66vK&@j!?
      zfr6X3E#nr$SWJchbsbbpV3J{oQk8wz52&kRsUIh{8N-;ytc)3k8@&MWjfy$UGo)Ws
      zcFM1b)vG{}`L2q4SfCVPFGcRZ>M5(yF7m#LB^1fE8dxnsH-lU>=@SpaY=-<`f^OGz
      zRb$BYue!YvvFwZ%QOVA!%FsIHRni>><(+>L*nHO!?^w7xI%}d!;@|W<9+X`x3^_e%
      z=A~!5en?|S{&l}9;|askHJ@3<Gi*@<#PdG)PRximc7nifwP!Ei;e2o+4Lkr%0<APn
      ze~K23A)SUvdqk3vOfUa{@{N=PRN57iP)5j^MvBgA+X*+2p%c9i#%LD-R!NEg$?VWq
      z5^cC7OiE?|n(RTxdr++dO~_Y~`2l32hs+^Q2$A#>67>LVYZoYNrM2&vy1<>}rt}4K
      z+Dt(@ETm{_D_QxlAXP80_(@^~N&fuzw>FU`?|!qhB9<}%Ntwi`GKHKn4UOc6G6O@I
      zjceI!=j+r$nNh-W-1s(Dpb5Ijwu&|4S!g<GDXMalxSuE9vsk46&Kg;gSSODJG5?sP
      P(%}FY#|E8Kgn0T7qL=g?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TT|0O6#kaBNxKFpHx(5{L}{TAwO)WCj&=ky7Jbmc2Yq0hu5B<)I!U<wCtviT
      z&iLRD@F)0V9M7gVWPG5V-Lw0h>wf1<e*O9J6Tm&J>lk9l?~6lmY=%dUS2tU(_+&O^
      zBwTYx?UwC(Tf&a~;AFn2Bgv3e=B6vi_)T?R+K~>ei}r#jCkAc9@tkOrA(6}PG9=4>
      zO>!h~!GMl5!)V3v<m-cGRR-@w)s+n672g)_t_U1;?}Evw;e-rJm2;O_Vi>N=NLBGt
      zI`u{rmtZj%UG%+Eiy91>mT<h-jG>T=<D23rGRuCm<$KbLN&{>=5Uqw|hb7C(?{Zwk
      zWgV9o#$qy*Q_sM_G_EkDDOK5b{eWJT%MaqjSSf>RxUOS{VWb}*))=^fS%%c}%Cqt-
      zV)d+}$~<S_7Un5M*iSL>PxX|w)G6|gfd%Bqv=)dXMK^<<v*@Q9!fb}g(+PU7CRLqb
      zVxa21jfiE(w1`S}LRE(1P}UguTmK-i<(8v*ICXYxR@4iLd&~1=P<BNaN^0lm3(t1_
      zkVcN|8-7j4BZh@@w%EWb)~I;mct?5%RwSF{hO|F-=5Dgf_vvXY;Vx(jXr*ZKleB0A
      z>6W2Wkt8FTTKo?Fl@3ENXy+us7s;5$iS9<n2qPG!8}$Zbw5tHiBvpV!cK8d4j=QEH
      zzH-Vn(RUp`k8AP2t`nH-X8jF~{y??R#?*SM@C{enxLMF<_R>?yJrdar$u@2m^bSO#
      z52fj>lRBH3+0(ja3RA8MQ#$23ouZfnPUeU-@KtDh4a0mLv%G{N-@rD1f)9KXf<KL`
      z-t1J?eK6ICJQib)s#ronF-zDoR;VTFWYQ@~J|C$~v(%yleVi1L_o+Fm6CHkmaXg@V
      I5)bkCFNrAn=Kufz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO>Y}j6g{sV&&0!|bw3P*Vge;lyLD?yp+Fr1iAx%n6i@<*)Kw<q*La%oOf)kg
      zX$9i@OF~epZn|WZ4I4ITg%D!F3jP2Rf*-<ya^ACDrwKw}%kSQI-o5AEckg}v`LFMO
      z0B`~?Ti7KqddYp$U9To<ez;U!3EYd-woKiidS0y!FA67JFOA~MBlVW_mM5b1^D<m*
      zq_VBfEEocL#ZV1g`oFq(NqVUTvy1k4JGKJ?2X{n!qcJ0sXf^hv1zX^NCiA1}tc-m(
      z@UOUwffO)D{m@Ux1Tv-aoPbe}n$kuFdmP*YM_|viAIeu&+lw-Oz2mWOI`Z6L&Ls;O
      zx}cG^{6t`EdPf@n<I*(&XGx~&PV;^<ZRw;M0)t&}O8QH!R3NwF`k^)xsFZZbs=Jm}
      z>rs0p3T2qq`q<gnU1|AVQfoBIa~2*DC~i&h-1g$z7{Y@Nig-xC@{{qnEt@)z3pO6c
      zAq$TP9Nx;Xy|dF%v^*X*C#4J=Jc<#40j56@xZbkBNU6NDLiH$!;(oVkHXcXG!eN2E
      zx@YQYy=yoq;|M7enQAwI{dX0BOttcyO10wPn2LUY(d$u|#!+y_jhAOzZZld_A*v3Z
      zzzK3SV|Pt;nHMfK`04ncbnsL!`}vliaw>*!%E2?LGPa-0%77Con~Lf=2d6dFML!5;
      z2nz_0q5Ey<w}wYc%({QnyBfPM*7;+@#br(+L$(Em@2c01b}1*H`ONA;pY+v87q-8!
      z<Eo6DtwtEixE{DkA`=UY^RJEE@<e%+?Q^0|S!Ip}zgbww@#!1f^VM)2<nAP;pv)e*
      ziQV5)*@Zk;n-Z9(@dfOqrp#%Ceb`UQP$+O!1ji`VStf6PL(y?JHRNq^&D?Rl_rJKd
      z|Izh6+~0{RZo=esAhJh)#L(&NP<9gsZ(y);3&WduYy&p6qtq(Jf>F#5EEJ4Q99J7-
      zfeQh>%@U{HG3bHXI@<#+ZFvh%YBGZkWXM}uY7Pa_S_#5;pnQ&IIR)lApx!874eA6`
      z)=%F+y_<EVsPf4!WCu3!Z03}?fkPFYn%OKE1+(MY)fwkQQxwd+`StDJ`)!+HV}L6x
      z&Rf`xw^^=tFpPIm!F#CTeY}PbAn_3be9V(ia1Ebg1E1l0e2$;+1%APo_!U?22fo6e
      zxGD@>*NvF!6ua9)mYr;)s>jrx$Cw%xYA@hL&Y9B2sTs`THYQN#*!;$SgfqlUTE3*G
      QWD;j7ZE^@q;T-J00hE||od5s;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-)|IE6#h=TyR!^aciK|5#TAqayRdXb@E42KvRK%pDk)N5c<Al!r8_X4*~|=-
      z`Um(=_-f*diTY9-9(?gZB1nRopivVf_~>6?Vm$ZWS+-hK+|Ax|?z!hX_nh;coBisK
      ztDgfngx4($5N0lj%i@Zctoq@y*A2vZZ$+je@ZL~svlWH2qLoJR+T^Ss$VMlM5*eT1
      zGe21H<*IV9kR!M%j28$F^48J?*-9-GGHWlm@huW|Zn^Sob6zIVrMM+6*n}NAm>+p(
      zWbBK;e^)F8l2AD2hkiOu7_3wm2)RbomNo`aa<Cl^p)}`*^36*tOEP}jAV%h*mIxLE
      zN8t#WF_(7ygwUAVlE(k7yiRbIWvU8$$8V<{omrDGlo?M+f4P$qwsnOcYBxfyqVM&@
      zYU(wjm2MQuFs=7(Cu7m=_^qVgY*rU+OyCI%I|;+OB?{DYa8SmRgd*S7h=M34j8v-q
      zINDaXu^UfYc#5#^->RL9qKh+OdsfQ8!5&PSu*U<@x=5JJ!uEL7L!!g?Y2%9~u-Cyp
      zR2ZAwPigco)pC|~Q`CM32T)_zb}UvEZ3L^*<c~VujVTA7%3_#{J01HgB3^4mVH!t)
      zy62FC=QQ}d9|ZF}YYKA2!Sf0-u?2F9NeB!P)Z*dV+@oIq3A9WY?H~2J%oNiV{xPex
      zMz9lcS+=u&yM1@lZ9YGvr&zre!r0&6(3IkUXQmm3GHwJSNn~Q7@gL-DdW3}We|(1A
      z1D-$r=3!wQzwjLI`Cafj#Jj^RiDiEOXL#gORtDhmYO@4BVCN4p%$jm%CyZc}C3g#B
      zys7{PS*o)^cjO}$242vnPc}gZ??WGb80ggpLLbB9=2p6m0)IhXZ5`uB^R*4^TE{cB
      za(;0vmtQOwwOB{BR(1=l7Z#0ltwn8AZme%LGB!Kw``IR*Ya6T%=x*<UOPeB=9%N*=
      z4w*T+Dz_p#mb5fEDw{i$8Cg-*4II=ZnfwdZI-aeS)rRjjyA2%H9u^z97$u4(8>PCA
      zF=gS#^X%Ivc%CT)zT_reV;Zkx7jEDPzD5%_aSpf8#W#2l-{O6IhmUa^U*LQEfFE%O
      zKjAn0jNfsG2Jj2*z+I}~9!=p_P1&@eC1aZj!V7p&O#^E$;bk>etQ|$2CsJw0Sj+K$
      bLKUxIng?tEuj(m!4KpllMiP$W1nfTn+&+OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOLH4V5dPYdb|rZo%XUPfBqEOSLw4jSjzJL1I5-MQM43R@V7Q^RG`2Qg?Yef?
      zkxdmjapT56$cYOVE{=;segOOja^sXLs;Huh6VNleiX6gIDsA_C^L6+1V^-h&_U&T;
      z3%IRgfUtVcyl)<q{I2Efl=f_MyVMbZX_wxW&wA5!YGyNVy~D|xWs7Rtb$#L8aXX^s
      z+AZNpf{r*LBi)p2lbyV`bx$+{9a@C;oQK>b;rt6BKdi3{-`)3`LPwf#S~;`a(uVLX
      z)3!b}w`@VsmMzB$RtT}e>?R>zbz35h7={fD!XON<S&q27-`Nu02cgC2n%gw(O_RN_
      zhX{-ZZObQA*Iqcr|INHYFm^;B6Z^<&1#NY*I$<aR?+9zB9S~A`rsXIap;%CHOJ+AH
      zRo%{>>j)>P^s(EXx!1Ouex+WY-Av;gF6cN<7*QpWMm>UoJYFUwIabxRU5_wYnC<&f
      zSS5{dOz5~onE9t{*IajZ)oIm)unoL|$<Xah+idO<CL_1KKB^&6?)z=yK<6-RU<L)Y
      z^`9MS?73|Dl$9{4IRlqbWNOPZyRvNry-??m+#bgj10{Ki(<(V9@Lc<r>FsW`&6eAh
      zp%x5WQ})}IZLjmVNvl^4ye6$i*y?@H>X_bP)m6p>YO=SJ)#+89w{{3){jFYoxw&+}
      zKkg?T64JhTU$ml1XZrN8&V+#jNw%1{p$1uA7ee;W*XW9D1CLGJafDa3P2U&3j<^4%
      zKPT=XA@{d8k!!#s$lnBXr1+A@dCgaYpF_M_WJxR&bB}Q98&(F8;b)p9@C%cF#RzMX
      z&LoUtj3t*1S$;|f^DO0FEHnBwi_lz?5OLKR2~A_qOkeshrh|WJdIo31r~`MQA;}>g
      z6pxTwN)(TA@d#7Je7up3XOfLP|FZFT;|R0Go}SMPhnou2q^>pcN)Cs_NY7`6<Yokh
      z3uZo#DsGC=lMcd#MAOnkDvBR1BDCjskSPhKN~uRoBf_LiD(o2ZoS4j^ti{UuSC}Yf
      zwXEKfwpqO)b!EeX^ZHz;tgb)&{fA;+!hD`gDshCXT!fTd8yqiEWEGCFsHvT8Ce
      zhf)<%V5*VGXrTjnPBxC#Id(hMpO<aqxEp8r{hq@RUEr5X9%UNGJ9G)3&;<5r3SZDP
      z9?}dR(Hy>~%XmWb_>r#SDJ|e<x<;pHfzHq(O;eec={i+ui9V(ZU&UqW(h7Y>H`G+D
      zhn<fGie~_2ysifB0p7rMIk}82p~6EiwPn`ge6j<)i4~sVr}z>#7}M|*3V4e({?o&%
      R8s3|zvP`o#!Y$O0{sU*WhZX<;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOK%%h6#kB1<4z~dBq5X}n3fW#Q``=v<yDuI)Fjlx6lftxz#<cS8c#c!F*B1m
      z;U)1bR6HbJ5)=eK0I6bQA{K1AW5<pi|DZdzh;#29#|D>|E#GtQchC9mx#uDO^!pD#
      z0yvC$4JpEj^Y*&EVMT4%U$I)Aea>2SV%xJG6Kk~|_zQMD4#Lgp1=n*b%^--Ju;xbb
      zqU*H9v4#x66eN~sGsWY}=bd`2A(x<CYGs=zObuN4boGoA1#4m5(V!D<kYsLPopnOj
      z_S_fkWzQkxj=R1a&l1wbnMFdT5;PngX$%|K34<_PbA9LZ+Ul|sKBYWHYeC)i7Hwu>
      zh6K#SO*bOU)ds@&fA206j1?yq&w9pf#7!Ajl`xcmryO^s854H2Y}c1&gi=x7YT51B
      zssyX8z<2z(+`}FT?N-yRN9AgDW>Lo^Zq_hG7?BAPPF({71>8c&^Ies|3qrzZai+&3
      zv9gZ6*r(xE!v24HYb^*a%=wK4$MFo@hG|86(zELq2-68|w~DesBz>=Fe9<KCFt8s*
      z_Kmhf8vE00Im)tn)Byu`qQs_+&~A&O5wv2JKjL^V4jHgS6eIk&Cqj4C4mT@-ABTY_
      z?m2AWZs~l^^}I9OX~N~GfqR6@<bca5E`p~DL3M7e{v37lPoNdTSnsHtWiByo@Q<rX
      zn*=?w*PTX^Z?k8vvd!mbWe<xvA&mcZeh!HmaL-hI-w7+89Ys#0q4F=q=^H@8?!Os9
      z&H#5Gf3wiAgJ(O#d!7kihj@2{C9%vN_#V5yV<iQXSDhv3G>`9-7~#DzXCsVaj3ws^
      z<Gc!jgDk~a+8q6sg>ugch@S0pO>ev2_+MNb*LB^Eo7Ao85_0@Ss#fY?;#jt{g*_eI
      zUMggl#xvQaLSBjvW=aJ!$9ir_NmE;rpfF>75M<xvtY@byK2uk|lF;1Qbsp|x9KIgN
      z?vgSwWEvTwIn)>9t|UewyD>^b8RP)UQFc$&8wDpL1xd<^LZzPwR4V=Vn<COdR4_=Y
      zuC2&po<SuQtI+u#1+t=0GqF^%he=BTCYD<`C<~>klG8f4t5gsh&S<h@O;oIZw|%&U
      zBhp=C6Rw{Sc@=?BO+!K3Q5njN@ohV)3qz%-_$RW=+Ux#H*vIYr0{=~g7@{@op>-Uk
      zHmbCN=jkQ1=w-Z3ui!GhiYxRQuF~uHh2Fq5dXv(0ktXOJvglo!r%Uu4y+;APPjAr&
      z^f`S<SLh?^(8qL@KB1rKQ~H%YqicNf8-0<|=yGa`zD!y4RcfBTPCZKB$T^r*y`GE^
      zcRlXKePYB|yB`mTS!L}Q$~@*mJI-1Lxzqw4#4Jy33Mb@fK7=`zI(rgM;$i520PUo+
      AEC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETW=dh6#h<PdmVR^Y!U)(LLh~dI*Hq*6bjTOv~h7`5eiBmyn13!<83xO(eAcx
      z;79Nyctc1C9zs+k-gxOF6*oa!T2U^)0SR$tc3r0pSFb#0=Ul#X&U|O~+8<Xx2XG7v
      z7J3M$FN(|JiW{}PV9nk1#RYdm#=>`B(`&7vf~si5D%_f?dcLf*l!|0{Ubd^sZ^}^H
      zEo2CeMsa<?7_YBhl#SRzF4cCh6W=^xd{4%=YD+Rwm%@g$P#`>Hz&zzH%g__P_l{Wg
      zB_Vgp3%q!a&|92dA!I75DGTVuppAX734@DXAkSagSe4<MNyPA?Y6yQtFbX52%1qqy
      zBEtOQo-+Pt<7I-qCS%>#+g>wnnZjy>{#3ajy|q?M=-U)tVB83$qDkwDcI;Nv#-<8n
      z5SP2UbD`L5d5x%Ct4*&IFos7hj1z{;iRhq?gN+G1M#yunit<%R7%onCag459z$Biq
      zaFB5LpPF4%YW+;mtV-$IcoI_y?7S};>x8KkwnL*C5d+_4jT4RGDI14T<k;w5Nh9}l
      z%T<<>re<u+qQtJvP_#8`1glu%pEgh8s0~+FG0x4s5qcXU+^VP`4wZjagzL*K(Nt~i
      zcg)5!+HYu&pRVUw8_$^}7d+oz;*r!L&)axGhm7qBSzxmKgfMFG4DLS54o?JHBaC!S
      z9X5Cr=nDUtecB=vB5_$ZQ(l~|d%_Cam(8&28$}p>@TMKrT=8txf<T59Uqq3NEL8u6
      z#9ddFu>bEaD<1)mDL+|Q=;O~ohWC7Xc<txiahAj~JM$?9KIWGmIJ_2Ef<EGl{t1S7
      zuie=R!x&-7hlNpIHNX*;+Scm~f5;*U&uJBXwkx#vUg*RBCG?BG41EOqldN<dIetL1
      zrEMHInJw+$@ogL`O=Rn%nS6c1=`(U0)1?Wg!0%3um4nGkqSYJiX_NzXqtwyPzyr!m
      z8g69bxPv1mo3oE?9pqesVbWPChGld+c-pw<G?G<!EXUf$@lIv=dfv%(_qwJ5cFd=t
      zCz4F22@R`l4AQMv=hy9Wi}xu_GyO()Aj=?Ka+jDs(3kwZzK(wS3X}9TPS7`amA*xt
      zzC%pk<6Zgz@6ipsPq**^{fMh{8`tO#ZqiS<OLy@*{Y(!1LR0iB&CqX#uDOJglxZdh
      yFXE(`gjtkv%8b-3Ucwwtqqe@xZyB!Q5KiL^4_6Q7%>-3&mSuq>39sNB3V#Co>5PH^
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMT~pIQ6g?Z-rj3ENKtNRdtkRZ96agLUsL+`@ovA#a^wloy79t_(B!R-af5a!B
      zeF4V@e}KQi|KSV|>fN+ha7LXWGueCZ?#bPI&fd+}AD_PfxQ~Y_6ozMS`5xc5g0Agu
      zS{;YCtsN0^$9gHpYSVKoycv4_L9SvuqP*pKf$-Nm70+o2UoNYNF+4v<l2y?iWMN1=
      zv0XcS$}p5K)EQ!BuO&1LA*CaZ1Vg%JyJB^BXG8d}`GzAHMr&S^J9X~cGVV{t!Yw;s
      zSgxI;qSLfW45<#c-B5C5F!NDDi+4k-?Co?sSGZwmF!#deoh`c=l&aN2T|*XQDn=Qy
      zvWn=V6M&9!7!1ix5tcp2^NB{jFvt_ll_c*;9V19<n8IZhml$ULMX2U^+skgNB7~#k
      z3Z{D-tT?>6&5-MFaORMsjn=DcBJg(orl2jexTfPeZqT>E@8ZVJ@TPi8J$kov<Zzpy
      zEuVMg$uOw-Dn0V-Sd(G=G^Z22XlavSY_N2q3aQQZ>8;Xxz@P<uPqg~_WCrk_It<Fb
      z1lt6B6;&@=lfn42W#^=140_ddg<p1f5Qsp<;(xR})$<IKf9ZM>iaM395ulJq9ZI80
      z(F3xKY`l1c<i}`PqfsLm*mt@s$GAYT-UE>xrijU-rcow1rc_C?ZSxSB$MNE<Ic>y_
      zFkybe#Y0>*r!&ch5zC|+eJ9g6#7*fhC5D#N56GED!cbcg#84YD=;6r{@}0^IRek^S
      zn>iJybb|_uR3nrG5=shbMaP6P3{x4wypqNvC4)NIH%b;l8I2gM^{VVMpn7o!GZCvc
      z@+e5YG*`rIBvTtEc`@SFz+KFdVDngjMRN%(66zj#^gE)zk`#2FWR#joDHpH=?H78O
      B9!~%O
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~iZR7=F&ll1<_Y3z$~h#wtY#G_nPeegw4`2ThG1BZ{{<Y>wo}vde51fzI?F
      z^rm<H5A98FDANmmKyUji`Xgj~&+g_!bm){B&inbi-`T&9|2hINhnpri!~84pTI@NU
      zUFB~$+n#voY{^J?&O`my-N0WFZWM(3lPk)TTAo`pVKCSl=XiopkJn#GH!_h;wcTji
      z+eD7xT<og?XH|wuc<M*7?n#F1lJZq_iy>2<USlw7K}!~p!C4D=6c|Pt%9oFJw$^3%
      zEJ2Jl0#|rzf}&7_RB1$Q)nQm@{Qpj>4AzE>bfGU)D{9B3)EUmE%KK7nw4(wTKC<vJ
      z#u>)RvfOH^NCm#|5<5eFTPQyc!%!*5g*ak2a%#cWcHm1ts`hpFLb2UeZl_wWPp|3F
      zpIZ1#ht5&x)wX&``7Yv;iO(6PPHU+V1e?o#Yeh=W!evY(5$<@x-DH?7PrpBpTHpoY
      z^ZHZS33ftPRtuQKRTEbjM&k|XlDp+um_nICc4QR8sP%UmqexX<|0HHCe2EIVwnDM1
      zSH@tL>-4A17cpzW(Z!8Ydrv~OCBpq$;74KLF)){oqd%JdxX83Y8T+PgS+p^>NB^`W
      zw$D&ljXTk|$xu9bv$MJ@T5;X?Wmxk>rz1NiD8#9A9XNVQ&_8>cG2I6^hG5bUC`%HZ
      zDZOV%a)>gbLo<KE`hysb;nWHI0!E0p5(n5AC5d4S<Me9qHKH1vvF+c93_>RcpqU=@
      zTn{==-Wr;-?U@4<n<w$J1NdAIe;yZ-)a+;KV~Fs_MT794G#8D^Axa1MqEadvB|G0N
      z8V8uxg3+YM9%-f`aV6U#b63?BQf)SIOte|@?S-;ULJg7Tj7E3;awJfS*v*KshqxBk
      zVWbufODv^SrHMV9Bue=-YN||940m&xX-ztpE}%d(*7X;5hh_v`MV>Fg<~LE|w@~4?
      zahrdS=X@D$Uc*oPE`H%F_?6$oZ~Q)vcpd-nAMh`KfH%AmPkbSnYC3V6FTSEruHMu!
      z=5d|2rnv>&po`MnB5?-U=_8YD1{I>(pJz_)^u@qVd2grm4f#)``vD}!*E$Qn!M8;9
      LJu`fVCFI`%3$Qvx
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOLH4V5dLN)Ygb|uuj7~i!ASr^WTRwpV$4G!U@M5I$~-CtbE7nt#@58^U9;L?
      zn-fPayq^gia^u2<f-)|s;s<cyN08q^(LF0$!lp<Ss?zjK_xJVmYxeiQe)$c+H0lnd
      zz|3{^j@k;kn<iQfHbS)$tm{;T!OOfhT5(iYtu#)yC+cz7)(LB-XC34Pd}aorBHpXZ
      z*L5p(Q0Qs*{4v^rD{$OmO&l!h#Hi4`tCmA8P`G3wlU^3cl_!@3^0m0FOUU7fhayS>
      z!wV+TuiRK)*2(J`<JdynQsI&!FXW-8%%>gG6_{Q4Ke<!|yj7iYsBfBf+Ofej1djBS
      zSG8H~q$LR4>)`}O1xCp-*KV8C#E}X!yFhV6naH{ksFZCef!a)iTD-myM><NYecelm
      z+US^8x7uh-F0t#A9v)=ZF1cRpm=(J36wWv}EpYa~l3Ix4wYjKW*E;m@5FXAv%!jJA
      zCNNQ+JY11l9LC8Tjcd9a-$+`zTEYY#bMUCZi0u)FyceE_vnZ3xu1+nDQvXL{<f+Q>
      zPhiT!<ERj{ov2N2nt)So(2vchaNa|}!HrOQuO(((CEK+)N|QKb^0bEwmb_xZ@EQ#g
      zQ)WCo$&?d^D2pA{jyD<el!vDobMg@8ib~cpoPcQ2{Pk<!?+2MyDW$$?FK-$Nu|<EH
      z0<kSnTC}CA8y?xQgAe08myKqq5k)$wg{s@tT?be0(zt<_Mcl!+MQx-Jgv1aWdZz_C
      z(OaPP9y$di1<9eQpW*#L8;PSm5ab$$Y42qK_!yy+z%h){%H(q-nVj?e?@0_&(*bI3
      zpL%?sdV$bPb$x$o2V>2H{Pza<?mquM+@D=763SzU_;<$g#DAbUo3HF*d<TzI#>eu0
      zp~>rTa|e_5Jlq_oQ(v`r$h2;T^N%uusD3fqShnxd!EKJ`tzgwI&e?m0809p5$9H$|
      zM5RY_n|{G}Sh0(X7H8d&2kSq(YZtS9lhX^%>4i}uzZ?YzTwq<lE%Q_f$PZAIAHtU(
      z;f(wk7v(3oDnG?r@-w_GKgX8*0`JQ&aZ`SU+wyDtByZwZc?*BYZ}6x5*4A|<t6i_I
      zR7E_4XKg?3po&Y>8`eFC%QQE<d!BZAveVZpt3N6vxqmWuuyfxHbWZMfjy^_rW&Zdt
      UOo<ox7R+IuBu}kC4KJejH!sIpmjD0&
      
      literal 0
      HcmV?d00001
      
      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
      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
      GN9;c|w^Mrn
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-A^1<6#v~}?+h%nbX%mAwrI7~E_CgRpOtN^e7I#Rw6wI)@9eNUWv9%}keQ)C
      zjmG-YH=j(5zM7~H#zdnOH8wt*zW5LL>YES#0mgIhong0N)CghjnctlAJD>OP^Pk^8
      z05F8>1~i88Th?uBwGgg2-a=u?wQd#~c4WDQDe){<eXnFyBR^Q{FME+4c$QlVtcE?}
      zMpM?R({S$CLdQUgAuE^)u0=d&=Wp57$bcTB3BS^9XV|yR>&5bUJM@=>s%;?6@R%fX
      z{KAYKIF{?&vF2TyAr+EG23BU!k2{_dog^$*9+;(L%&*yLv|*=-40bWJ<pyRuKvX6=
      zVKVHPbUgdaa%0{OE-1ELlYZ55XD#wT>@k>%>Q2Z|n%oxR|0qn6!CbH-k@uWai|R5e
      z3O*Bq6SlKZj~F_ZEXR{-4EdaNU9eW7!kFJ!@;%#&icRcPU@g_1YFI2&-f29Erwklm
      z*eNR}j1mPCPvam%JNX*(T|Z#hl^baCNUUh!5X0WqTu0`^D4?c~E=Q5?rO}VWCUO{1
      zOjA^4ml_x|C7o5u@?)_RNARqHJj0$=-WC-TM^T`xop3s^!_cnDx?D-qRK8%~d4|KS
      zhFhm{()Slfyjsb&T@x?jCGtZlP6tlI3f9JaFA98jrf${z6^8yTaY`<kd2`^3qKL1U
      zIEGg#$8fV+-H$Ya3Ro2N9zxN?ap866Hm`!{q>0z?IuYG;T=zU(0|p~krXOWIYGO<n
      zi>{2iR&`M@zG0#yz<t{o$E{#d<s!HzOq3;eEwEO^I1A%9O-v??b9E;Y_oGT<-`eS9
      zis;h<LwEC2GAlHwY?c1j7}BA2+pfhElWnT1c_E#7hW!#wn*Zp;5LJ3c-sF-a?rhK2
      zRdQ4`mo7%x^Xy>EwP*lB16Tj0>n*#8{QuK7!U4MVZS>1wKx_a_ECAYhDUvhjqUR2J
      zD-o{InI624?BKp{(ft*@Y3QM67g>WJLW&<o2hU+QVY`(!_TX`PBRk1T^*}H7#+(H@
      z8GYk}-=O;o5)_>-Kt3dCOr;RhP|yFHaq(}B_oI*KD4Vv2&?#GJ5Ay4HVwfNK3H`%*
      zufC3FzQZ8HN66$i@Z36H{tRi7hDplz@k&oBt5>o{)>y}ht=c1-+T&6?Ym$1Z(wEK1
      za~-Ghec4WuIbq@(uP7`{vQC)zrpH)&tS8P^%&6!T<cXMxf>Bf?NUjvAw^#avReKW=
      zYT^rdRUSLUO9$CXAx5P}CIK@_Ri<oKRO(7`10qw3K;)n(k_Zh#M8?8@D)uEXk+C?F
      zFlDL~r=*Aj?MWFba6=i&M93r#L>J~1h~(Z(L^vWOMmt;66R1p2@o(U?idtYI9(6Xm
      zLf&PklCFrZ$@<2E(v%JpRmw@BA~@ksoeC3Om7z%?&O+9>i!>$JCCr;+^fB_AGp4wb
      zdc}jMx}dV`<&;kI27XEZM8GGY^V2Z-6ngm?9OTm&<mWKVFW?lvh;w`nm-uD4{0iRX
      zSMdSAhR^wRtn(Xq$Se4jTlj;|vvyu(ecWb4e1RR~b#|IN>;}KZLcYlEahH9_8|+i=
      zu^+h4e&I{(Hy*Ixd8lbT(suJ@EzfUjqkKi1<*S;@*R;F*E$w~&w)P2sN4wAOYCrP#
      z<n5eLH!#@{+5=4CjJWP3oyD}+A0(ZlT}0c3r1K=DplchL!3Ek@ruH>1VwP^QhB>)B
      QF5$A=G-9h<!8N4+0wP8y5C8xG
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F>u(fQ6#w1n*`0QomW5KVzzRy0wydo90AUe<#f6muwS|KC+Uf4l4xR2avjYWU
      z_~J)QFh&#MgBpXN5g!;R1rZ7Oeth#E@RRY2|9}bc+&eSfr6p0@bk4o!{?6|_?zyKw
      z-M)Gqz$y&t&;&LdG!L6cGSzXrGL#u}%mbNG%Qv0O4*4yV+)Cao`L1`gqfqfJuVOlR
      z&m6UKj$5_lsSXlIN{)<UGQ+OHgI3Ac5f8NybAW9WSTw`mo<g5hbq{$ZOGiRro+7i|
      zOuyyXrehy72OUd*s`fD!q971oZ&z%81M4~qT>~s~ZrMtp0dovAW3E6$XV*Xzn99H`
      z7y`3<?25JX(CDD$?GD)H_P8a}88F!cvxiFZhwZAs#-14={;!f`1&krfml^N1%l@#6
      zhr@0TmD?<PXxJBM8Z+&Rf(fKMmD7wl?q_oD=$KovDt@-6+v=HP!*;2fEpWyOEWv#`
      zmI};KwUR~=z`*@jCeX;fa<1cg0&_dNYCKAp)$xG9!ul*X4OV@RFM9JK-*+nsbYQuG
      zPILuKJGj0MUtP!)-Dv<;huK+JfroUY1s2rv)<F!cM254rtG%98ty*POm;DLu#7A{J
      zBCx#PaC#^9xbDcNN;z*?j)BMUIQ!ugdp	^p57-ito8j|FBth#|1j3#i_Vd=CxMK
      z$|9~Y@C4R!j@7AZwcc?NT)?cX_bOx!te0Nr%<w9SHW+vc8=2^U?Kpk>00i{T0{;ZY
      zn+@covAmVdj#(O!j87ZLOXZ>&j9W}^B*;bLwizf$+&spGiPi&_V7q}H<-F{f<FeDG
      z)lLJuBA0uIZC^f}5|h-oLeyq_G$hbkJBpf#J6RmzzoP<)s(IKdhb@(?L4$^3%%H$x
      zrH;De&X!^-uCl|WkryxaGh@Gc^Lbmo?zZXUW~FQfen^E%#qx5F$qiH0QT&%Kshd{<
      z^Y1>fu#_i51OLXLLrw`z4hf!!#Or3X@OL)v@~qcbCb};p*}dozS}*WULmPiv*cvnp
      zqJwCn5zJ@Z`~ZywxQBOar&u{vv}0k&nPDmTEY^Jyt><|W(8Z;ad_`jffRKi}<G&dn
      zzpL?Lq?nGgY4`(iG_t>2=?UDsF1F$ZI@ZP8;}dxB3c3YOp*cN?hbOT591^@*$E$QI
      zR&1kKF_}mvCh+8R@FoRbOsn-aJuu%gWxiFJ6Pr^pm26gW0?(vVQWYyIku-`^Dux6w
      zUMQuqVW5%`Qij886;`BUsTf14jCEG&#aN7kPNy1q(^%AXwMjOqqf|1XWZ){&N!b{<
      zmkf+eDVexaCkgqiW}9r}IHfVO2HFr3xCyb7kOfPp+9*g$Ays|YFw8p6BzoXA9#Bb*
      z3`8;NA-#+$@)_b(`f-j!mLoZ<&Y0^JD1&lOV#n0oBwP5bMH;k(%yJ`dtfs8p`f0ox
      zRFl&T;)&9Yf=q^G3yL61ETar$UAbhKs$5Y%5+O-BZndb{vnDKJkWxF}>FU}uyvqMk
      zKqnBV*I>{|w9^|{MsK2<-ojdX8+kf~UU~=p^e*<%dl;nmVbdABLLcBHoy8eChb#0U
      zex;A_JAI75=sf<WPsD8cR4k*<#2WfsY^Mvtq%XucT@=UZk~l#V;xt_r=V?;hpey1x
      z`cnK!*TikQuEpqUZ6V#zGIUd0Pv2<0^sRP)zSEA;_uA|9gLamF)UMIb+D-aJJ=ebA
      zNk$_>yM<mnE8jn_`p_>23a@taaN=>pt3A9T#I>(5fW17v4DB-Z;W>WV{mi!?&+|aj
      U@Pe8vFXAONgyg_^8730{01Y%k;Q#;t
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLO>YxN7=8xNc<p85Y?7vh!tznl;!u-qfqojODn~As0!2xiTs^TT@xppHT5ky9
      z&>z8%;M7YmX@#mvz4q2)C2pwao_cF(-<h#-N)VuW<#}eF_j}%VetGinCjjr`GY5wl
      z7H`Qr@@_cTiIUB5E0!B!U*$3muj{qdNt34R<Y~4$*Gh7gB{FVivac4^hTM+x>nhpS
      zIu1C4uRVpaBtKuS-%_32L2<~A{9D};!?6QVziut7LAsrFlmnOHHRCKw!xfc9GLG)a
      z^;j_!FGop~Uu7s%=T{kcBkd{|1x$K443A-QDN59h?f$yTzOok6OKC^OtCGBshat)H
      zUNm56E*(hYe-vM5@HSPhYg>!DdCw%*Vwf0`*HpCG%NfdBGD?gZL#=8;hjJ$m8)<(l
      zO;nQC$J`g0-0DT0LA}+QUv=>&jypKUaP~#{E~V-1&y#Lbsn|n+6Liaz!Obk{%WSui
      zCV7^|i!!^t(v#hEhheTdf3W^W8mHN~7j+k>@Rozq3{$2fI^j`r9?oEnp)^prF=Lqd
      zPg&%tuCqUdcRZX$l~gyPI9{gFU~sA}`dRTg5AParH<LTMgSz7L9u{;FQwNIB()T=?
      zV3L+dy4H(wnhn;Wu^C_C_*zM{Nx6+hqXMXN>@NMOS!|cVT`}|5jP#_<KKlR`bp6!o
      zR+6Z!5zE0q4IEr~NmKT{Aco^FdP8(gG&%GMI4IK#<#eW@rgef&7YP}mIQKm&-_hm}
      zd|F*X@ZZ4sBTUg*tCJF@F+)fff>~O%gY$%1R`C6A39NZhQ~dXRriG`bufK}vAI~*?
      z14nFB_9Kdv4cLj=4>-DqleK`iXSrVydw9DR%yQlqe#Pu9-yVtl3h9ldf=;D&VAxW7
      z5A)=&X8dW1X!~AKdl>~O5?O2q7PNNY52+zqu58tOi<a|-oJAWcd>V<&ea|nMjBVt=
      zf-x?cTmlQ$-H`J4bBC>(Z;|xI{amJwf&T@E|BV^`1Sk1FSfC5MA{cIp0@ehF5=F$q
      z!8f9W`=X2o!o@@3;b$>{UquCv#U%a|J}ZkU7Kmxnp-Z+4!{$;yaKVg}-d(~6dWvZG
      dAwHr3)Vq&q$BF&KjLN5|6S`)CF5@cPe*vRGVXFWD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETWl0n82--e{yW?0v@BqOQdUq<T3A>RFW5z-ES9de+zKrkA9lJO+M&~(W_F;!
      zi!VO-Xu=c5XN`$57-KDJ5XCDdUNLx$nrOr*@%rM6@jqu~yGyH4yXl;BzVlzd|3CkQ
      zKc7DfU?c9;p$T*ywvJlIvXx1vJd&MotwY&yJFwhrpZpd|Ub)*U1)hI=RiPZ%e%W%n
      zeQVtAvyM6A&Iwxz=!grXq?xR1v60<FhwW0JBN3rh<DqO)ply!J1BHEd#XI7cY#oNc
      zHOiRdW&3U4v0UebHRRd?i7igq3APHv+B*gW;(2e_HW0%+6OAwh=Jh&dd)JZiA=}>{
      zYAopWN|rldu@$xuf$?C}sR-nI=Y;WpGtUW_BX%GY8+3+)Q59K1peX`-Y-eON5NMdN
      zoU#%V$h0fJS!*)L=DqO=uWXltTn*dlTN9&Bsgf%cItC0Z#WEdj0`nCmQmHCnB8_VW
      zlI$z*xt=eupuMAJM`1Y~D+HF-C)zbs34AW;_9H>yl?^P%^(IzgRcNV?DRsF*k)>+s
      zLSc28Ys8Ic*Rfh)alPF-5fdF)!&y6(J-%J3*u#pK`wV2TUdK9t)%A+Ad#=~>#=6SG
      z-L~zT$YKNg;S~4y&bZ|t&wJ&-_uT$bYuK9<ST!q7WlLpV>!_S0@g@_Sa5LvvnPF?;
      zRfS*zbCT~2ZZ&b6^g4fzS83>W6P@6?Cl5KUyN~-^KyNSbU#NVCiLFvuR%N?umBysS
      zZ6>-T*fz)F4$B`4bCI_5CUz*>!@e~sds!-Xo7h>kI5_GA{0>BkpGbYBt6jubBLWL+
      zSJhtOfW<NX=iU^@1&oSy)E<tyCRGy;dxm9(1ePhd+5lH~4VyFi)pPB3<il*4JuKGC
      z0`uc2l*_iCcP(y$ijKj5seIkE5orC#d4m<;hT<PVM+1+tIG=d{@VALin|Kwx(wgVc
      z{4{Sgr1)#_3VIlEI*Ivwmf{Rx0T%MggrbGN(!e@i<y|b5dXkq=Js}}_v`#fPqq^w7
      zs6O_$s*ABC^cvra1gC@8vdk1(J8A7XEbmOTCZ=%R8QdUn3Qd`5tewKf$6@g97T#sj
      zRBVZ-62+9B(x<R_w)B=6={uEls)5Dh#dOM0>lC(U(y2zZPq3rSd@}i@7m31?luJbN
      ziDD=(ZRioEhgh7UBt!BlS%WyRw7g=YHB|{J!78dGnyO$^B&th2DVhv7p@D=vNaqTT
      zysN!*uWlp%O246)R+kN-QFU(=)9TI$F-2fwF|F<z>o7BttHwU#CECb<rXd+-)+Clr
      zHSsr$Q=TQy;TmF+OJYot6mc06DTSg`6pfr>#DWTr0}eB*7C_3gm578WW(9K0Av0mn
      z)3}Snt2M<V*f!HKAu*9j<%eliYebeJiHTvl*<F2An;DeJq?)5z$%Euyfz<-aG^^=S
      zBq&==R!^>xMMat_bTfmz3CWTNNuXRq$yRR3jkVYO3O4X_d<F@67A8%jmCj%#y?{0J
      zB0A|TcG64OOE2Rforg=W;sm{hhv;=YN^jsay@~Vm7B0~RT%osxM(>Cv^sZP>?}<FU
      zF9zuYF-9MX2k4?WNgs(P=wor3J`v~WQ*n_#6PM|8@dtgOCFx5oO<!r7=xeQqzR`Bm
      zx7z*moi;(2wFl{Y?G*i}Jw;cv^YoK;iGJ38pkHEwevP%zZ?QJ|UCo1@@Xbe~gkL{;
      zP>`dBcX#6+IkR}zi#{HAa<_|jaU^1kup4`LdYQ2l_F^B;4h{WkSnbCFUJbS(Fo1(F
      F{sK>VKTH4s
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOLG)e6#i~!=5*5Ofgv%(5F#KECS+iMAg{qdG7vJ5gqV<EDT{PwI!QyPJJr(=
      z$i}U1bfK2z#)TU;ZY--JYL#WVvC1Fd&OhMNA7FXzz1_?}wA4)Hp3~nw@5lY+&+mQ!
      za0-hi41uwG&O_%>sj=w=tECO!St+f%vE!Gf<yozT!Gu$b!|3r~HHh6PaQunLS$C(s
      zz+3mWTq$58BaoM7O1{HJZY|$)Yq1GR(A2n=Z5Qa@;c}rm=QhFzQOz}B3B06?d0}bZ
      zjXcNqwwz_(6`)J(H69gcD-10PWGZ3Zwa|v$HacMo?4I%hcjm$RvK!sj8eLOi&G8o<
      zw!#(?FcYtN4S~wkjxhdj=4AnU)s1Chcf5MMrXs5f<Pvbw^;XwnfsPHw3zV2Zv7r2x
      zoXxmY3D-BmzzyPZ6T2Qc8*5&zQLa{p7A@?<eiQuydsIoJQYv6$0IvwNv#(0%hmk;6
      zVW??GVPz8s1@^TjI=0-1BW~&VgE$TY3kUG3jl&q!mZrI+K6fawl(tR_tIKjHj-X)T
      zs6cP4-4+oWLpa7+dyU!1Z8Y4vs>|CJia257xWLg?#TRF8Dh%(B1@#Hn^=*`JQU^Bf
      zJGJ`)gD(W8lvS$D5h}~7owhN8GpyTqR-W$XD$f-w%K{g1*2X#Mrk^W08+q$a^tciR
      zaTNMjo#_7jno|!qrO696E`nR$UXPqjIcfrCp~`={PjA>5Ro5$?@6YiDNZVIzjHM~u
      zS@U9^*CHx5u1c_XhePd5K-72%T6>w!316)WbT_ZkY2diTBmU><6ORR~hV#&^Cv%Z+
      zitDLhnPq|f3Qk-6{9Ld(YhEqngeO<8=f&sXglr*?e>Di)sNy@^=7x#e|I*u*_e7xY
      zA72z41dj~=vM|xXk5z`hdByq6@z)4b!8Cj98|?au83TDfEvE9($xsG+_*;sz5W3LK
      zlnaU;KBa-<Oyyl$KK~^Xtxgi6T#IVkGu6HSMYZ>DReSNW_S*I-h|_`bNpTx}7qi1Z
      z;=o1fqir1e7Ox3>hFtL}hPQF*2`uJbXRbJqx0iY{nWcezPSI_gXRMR?EMxL6yQDFT
      zd16f7QG&H6a+0=U<`S{nONphtRFkHdQMNLYZ)cD+(*!$~2GpgUI8Xu%YRLpu61f!2
      zX;B$Mo+T5iOlBo!FAXGAV!8lH+5@c64BTX17D8IcB>p8P3n6J5J#%L2+|+UmaXNe^
      z!Kkp=u?i-MTJctbbtd*@F=ZiSb=np76qj{hWN6a0rYav*d+A&DD(#EpIW!HXF{&g~
      znCdzSQ>P)zsq#sJRps23g1clCtwYn#H5*qUsWNux);_^-QP-8tDQg`%B_+gZDyq}$
      z%d&cNjlMvE_h1l2M_^L{eKdr_bR5U1gi$()IXZ<EI*lzF!FzNDpVL`<P3Q14oyTu<
      z0e?_g5M2`cXjB}c%VLDCi0d>a?$WpjsUqH`tKuWNCZ5oQ_?{-kPgE7Z(hc!D-84W`
      z#$K8>iZo-4(X25;bH)PA8!L3j*rK<L59l4^W4fyrZBj2&vZK6KxP}S2!^~aBq<jpR
      ttKtT~Ba*wxTn1!(h$&3-vtS$VV+OZ)DGki3SKv*|F}2u+z&sXU{RQm){xSdn
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7&vO(-6#lw1yR#W4vJfH$SP_Y`2@50s0<(xF3rSWt5EBhmp0;<l*&Q;ONzF_M
      z@IUwmc<}7SgI*$fK&!l19KBoqC{e**sCUcPJ-gW<SS3lN`}OPZeXsj{uP3+u`Sd1$
      z6Ie3A8BSdmSHx8(+Hn20v*w9Q&Z>-s=gh0I+6?>|(Ts!e+Sr2dWE{(i7erF|O&AP$
      z743L}VlOl<%VumM+x7N16KsxQkH)%zvm`@Tc<y!4@T3WgVgCbXc&oZ7qhLL3N`~xd
      z*LUMH3<JgSWd@@Xw4{Xr?6k21Hp9-E>&x@&s|^{xsVEtC*Mg?-mIbAub=PUc9XDc_
      ztUZwIAun8Ju-h_L_qph{;*LI0m0_ssoRe<56Eh613D?&!hEh?dbHqmMRD#vDz?Xhp
      z?)zp#vDR^$QMp<jU$(Fh2Tbf|*riLQf_eZO1w77>qg<813qrbNalFr?ePt6*Fzid;
      zZ>kZ+AqhCW9>;-i;UJ#0aTsF>(>ztuqw;r|dWt1ry;<IYr%^O<gkf)*HwCdVjtRQ8
      z8!dz~ieyXI<!uWk95-={;Yd1gdxzD6U}eg0%}D9laPUlWuxU>;R~W{&9ZU!7tM>b&
      ztg7~`jpy(@#YS7@8NRRbRI#!ua0xHkIH}U?(UtV$F!0WbaAm0@TET|mddbElNbB4s
      z*Yg&sr5Vg(m3|U|Ubb;YZ?{6Rp*l~IzG`Dikq-As=cpOHq#;<7(xtWP^#KEGQ&4}a
      zr#7W$SLu(si(O-|B5_5wy1M84@I-ZbAq_1r!vVe5)A4@siPKurPin?hk7Q)~3qP)O
      zq8_jMz6>j#AT1*kZ~TvdsZRtw{OunJ90Iii{bpcdkUl#Gt?AX$I7BOlW=3;n;$uAW
      z5g8nL8nepDZ(<kO3Q7R%#xTuPNQ}^^f{)Rx_6G9i2Q;Nazf6S=Y=u7hFri=lXXsu$
      zmSkn0(dkS&$WUn$qm!AVpX1<Ub~L+*L!aO&hIcVkx`CscIPpF#vR)voRLImvj7&XC
      zs8gkaK?^-(>YF%SDvTILT_cQSom2a2=<b_j5+a|~vkp-dW?hqzyUUVGSaN+9f+(II
      zL=h246D6n{cxCH+<SwWbsd(~eaQ7hER<NF-5|3txp)cJc2?YKPviw`v{5y>D?{S#_
      zfC+vZC;5+<<v-yf{~2w52iN&syu*LNd;C{?$bZ8Z{CC{qf8c9=5BK<=EX)65Hvd}-
      zGM5y+t0k2m)2Jx<$vTU3q`tCdFiX9rtU0m_`d?(Cir1)pY{u|9Y9t=VyzZ9sxInX|
      Kn`i-x82lIJKd6oX
      
      literal 0
      HcmV?d00001
      
      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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
      E0;n;iWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FTW=dh6#h<T?M;>~b(4k?ifIUe+O1myg#dABNCIhGQjn4oBpy&E_B7sfvm1Fg
      zNeiz?AS4hHyp%t{rR7ppxD}UDE`8yVAHf@c0dZz_9h){1kSKG;=X~e>jq}@I-`)W5
      z7*5&fAxx~wO?kc?ZF#{;dEJ+1%WEo@e)+UMtF<tgk+nE%UKpL1buXOSh~qFgt%8ke
      ztk$&IhDFHfAZ1^2h?kdFRV}uWO||XN3AUH8|Bi&OROeL`ZZvDkhC|qEf_Y(iK{Y+;
      zdvC~PUlFp$y}*l45JaK4NU)~Ex^f_}+r?dQ3A^XKK)tlFwyc_G5|945uqORQ$x%2$
      zs<h&U7ZE1s?kMB`^<5#jD=OA)z3SEDhN-Jc*p(`0mABG}34QC*3k-}<DwwQgxfPeE
      z!?pD=P(fVj=uS4}dc&(lm1?!P=-@uwZ(~1Uj~R$|Y6D#4@c^Nhb4`bS*d+89ik&z{
      zSFtfn818QK)DAmzFoIDV4-pP_LvLroTo|644C*sV`7R#DBT4cpU)IhMM$_c&T^nap
      zL}#@X-A}<q5r^0}+Ae(HA2Z=zDoN`l7e{cEq4lQR(yJxdg)0AO^8q~SGJ_u{I9{}%
      zd}f@gn+?3C(>&qgN#lFg^Zj`?>L#CZ@wBdczzi*jo1s6;EAo>yQH_b$J;C;N2(-dZ
      z9aDP;OaMC1f4p<Lz=cF|Q`OUL<T~(V7tB|W9}Ho{SlWZyX(1ffSun3*#?!nXy!|B}
      z)q7(0Rf9k^r+pbkDzY*AFAMB?%7lG85J3Yl44xwYW?-X_za=dG%&&{jUHs`7OJbQh
      zbPac3;Y$y4d^#*4-hw6G#vcBx;S54Q23Yc3G03M5aD=6{iJWtpMdF^-D)B*=tJrqE
      z=fAjqyrb(r+?!<Wc^z492lP>?g`x4x;hQ)xo-JL+gDo5^<uglzRz8>IvxUQ@e9q>Z
      zwbYi0u9tNg)@jMm4v^6ak}pQ9qcJQA$QPruw33mjG&&Qo6HS{qYa$phlx?AW5o4vi
      zu8eahC2Z%&F7-0vSYqaqj6E&wI>t<A+EaIuNaJcc&^jH?N*n1*GUT*u_hA5hq&=sN
      znC|*msfWaP6Vr6X$W(6YxG1Aa=cRqQk3?wDP=>4QuxOPZF2pCuicjH+&oCf9$B4Lu
      zF>x6$iZ39=m)I0v;a%}HE{ZF-B(CDB_y)H`3%`qN_(Ob$KgIXV-ydkNxIsnnBTa~#
      zbVmF{4e>L*DSn~%#IN+BxMlb<n{Xnf8nXk>U|ds?ZxtNZoaWoJIKj_B-zNBG@xQhA
      g@f;?Z-7dX@DNHlBdhom<^9z_^>2M6fNmSwd4csTKIRF3v
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6&vO(-6#hCpyVDtFWs(>*!Ig*+Hn=ci6flcXSP9vxh!nwip~~&-Hrav6OloFA
      z2q*k4XlbeNM^MFuOQbA{6DMxm{0q4GFHpShnaM`5l-=5X-Cw`&d;R*o-UpBWya(U_
      zW=-@l96m2Dic4<1<^@aciZ9N&%Q6wZ`-vKx?J$@T?IeuW$InDkHp1nV)kH=LH(@Y1
      zitYM>xSuYbm+izvDMNG3)R!~tcqY<k&C@atSEIHxVKKa@#k|m+mysuY@3L6*B}3_m
      z7kJ4uL!mmcz+g1Oj<is~b{pGZGi;yp0(o+Ec~M4ZQpVt1*cSeRAQe)`KqKjTF~ii{
      zGsk$&gzF6Ul1x-SpL?C8s}Iy<C}-fT^p?5_L;s5K0`107tLkvBSW8@Wd0`-fq~60$
      zL}I1uwc~oTIk8}26t9}t!7!k2LXmO@8x_39z$sQE^uvf@usYGx(OBKW7<QR>ong;^
      zB{>&{7mfy<87X}mZ(ux?J?4w{1%~lVHZPxU2`%5N76lr`ZX0`0C2qWVq@jOgOQ)=-
      zN$s`q7HZ_$iNu<!7K2%B(kI>CZ^PZ(K21%e@;G4Q9d)z;%J@{|EsJQq5e7*V`YQOl
      zHr~^ebDr<#ltVTSD~h8pN&C)sMJHTiU~Ouzt=E;8g0_|zhI(81g;TZJCHhf;**Zfp
      z78hlQw0oZEoikYTx`k&v)vUu$znlH464W`(AdpeR7jZ0O6Epu)qAd@PVm|%!=z6I6
      z=v#z|etOIXt?4b$Sf<q^Sw^<F_Yb^qn<jm5Xtc<JpM}A{zyPh4J2_zxLuBcGFifKo
      z*hg0F6&&XlnUr2q5btiG7B;CbJr6bdSL(}nC5_7NqeNe@vDyYkri!&Y*tvl>Yn4)K
      z*f3fZ$JTZO6SYc_rp1;v4sU75DW{mWIjE>ke@jb{O&yhv0<~a{8Va;pPTAbRzFLLT
      zvP3SHwwk9P(oL~EfJva)swm@_nf|sEbCk`%J9t~CqBP8wQ=%Y~l;1%OI{K70DeDk+
      zCZj^r5wl~a=tz+my^5YxmE%`X;$NZ6zs4B<29x|-%<}JWmVb|k|9~&~Rb1!SaFhRt
      zyZk3S<Uivt{tF)QU-38pjTQLsY=mEDJNXS=pXsy)S!t;ncpp=$^fasEi0UDleSm3d
      iKQ;T1W(NJ~kK!X7rEcoOF{qYl;A65DF&U2I1gs}ah-y~=
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL&vV;E6#mwhwYI7zQb=e+Nui`oY{!k7;t~>v6fjNenUv0?9e3K3H?kV5D3V7~
      zo0bCyCj1FxhBF5)TwoyWzzp0O{w9XEEB~OK9y%N(t-kl(_rCr1?O*@=_6L9!v^a7M
      zs}IFv@x)0E{BY0d2jYRV@1-JeZpwGdjlwPArcwO#{GHhIno*d>k%Boi21^z@fuPb`
      zyAM4#<<JM{kWx}`6d9&ft{*wKz1SCl|E1UsJO=J3+x}iJWnlLiN^TScqMvwO27SX1
      z{dAK-E8nlQ>C=q5o`F0p6DDkie7Vvtf#D4kCtxs4Zu_D4`J??^FTRtJPi;r82-<=g
      zQnLZ5r9D4kSlj-eJ8v+Y@RR0PsJZ8*a+`PkZrW3_S_~%#;0-U^U8yhpP^B@{%Br^`
      z4pOHX?f0Y53)99JyB>>v&v%nXt5s=pyu&b|%**nFC^m2w=cEhokxk{6Oe+y|-oyng
      zFcc1YeoEe2V@i@6#SH^xR5>aP_K0xU%)}CE48_DtRWkYdf=pRoX-kG>6Ams>YBv@K
      zw;qdtPEm>=6*7F;#QQ4zzz+f$mf#f=AB?~qniM*3mxkiM3Wr8eXpg#&Lqmz=JbOY9
      z*~^~NKy*d?1?@J-9Ola5n=~Q}pPG0Za}37q=uzx?TfQ8%nU`mJS(?CLw!+Yhn}J9Y
      zFX6b(u=tvzK{NN#wZJ**o<|M^(Dj0b5)8U+IXR*9El||NNqSGv-xlFH`Wn?|n5>@p
      z6;nT{+-Z7G5DR!78ZV&4b<7a<W|mFgQ}jo5I86_kfmysY;Jm2*fxI>KBc<dZ$#eq2
      zCl!e)*F>I?Fr0av($lXjC5yAJY?F3YB-*3jarU0&+W6YWpU?2_dO-p<zPIt*#@`ar
      zf5!YeKg<^oHN7^gA7imLH=|j)Mazq|*@6PJ&WxsYip68BRDZ$LcQ{p>vvdV&9ZRRA
      z`VW|{&1oH(Ns)pquh(YzpgbecIt7_Jc6AezWW)k&zKD5VMwwT!#Fwzl9n|?HT;(gc
      z#xG-s*Kv<u!9HKbS9}eJd>!BN4dud4w$p)uv}dg1LuKj_*08S5=m-sL$P=XKN3_yl
      z;~Q*Zfqa@rf~&OB=~{&H!qTKLd_43L9m*+CrBPjy&K%>Dv3^6c^BXh~Ev2QNWsbBM
      eBQ3^Ai!st-47B9XB>o&e!!_B5x-*(ZV*M8{?k-#a
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-Ez}L6#h1mrL~ZWk~B~VZc_-w0fV3^zYc-K!Nk<G9YVtuGv3%sEKnqmBoe|C
      z^d<TRz2PR!^rE+&=|%ejyg~2!0G*y)`6o0CgEiW7^zHe+v%BZ)_>X^o{SCksd}CpR
      zq4Hd8i&tK<<A<AGHxSRfEt!hId#J{GD++6(l}7RI?BiI<S`c-+yDPE3E!C6-gTYk-
      zULc76-Ntj-N-dZ@v@e^*a)#+c$$qFml1cP3Zb=I^!zWtIkGwS*`y%jPi;X}sm<xXB
      zr;7}urMYzmqZ+lPjZus_I0A=Ztl@|9+m~A#GJc#fCK^#o1nYuSNTCNBX~$0(ZZ{4s
      z<Ky>SVQ@BOs<!mRZ>Jr-raD8R2d+wgvy(F9yTT837(=<FGkRht^{UZUHwtB#R)*O9
      zSadsnE2-4$bL%!v;*^DHhH-ruiqsEqP{d~poN`s8Ac`3#N^?UUja6*S;IxG=7|wlY
      zpN%Mbu@tszQU(srU^bIo4n*q(!)#BsUqRg%T7FnCN^}xmIyi?Cag)K4Cg0gDt+JAB
      z>b!#sC{t)V7CWk73|6U5KQ%prOAb7>igDW9_p!ev;@xT#rg0RgJXaiirOD6yAb3Pw
      zrYK)KxT+|wJ`Wwc))DP!M@?RLaHGGgCmlbfhMB=F2NeY#Ka?aRGO!kP;lU&Amy4!0
      z877BQ{i0Auuvhd_6R=%|Tq3q*n-(>U%<95mujx*&`KqU<{(r+RscKPo)x%K6)j%YP
      zOe~P<2g`Wiiqh)db4h8})T8v|U?ER8-=J^0H8d9JYo074n>+stj=mvh1TKv>S@1C!
      zd;;V2t->h?6PP4RM}#RFmB2-^YHrkZe<qXBO$G7k1Juz0_1MQy&%T#>9G_-c*<Uc}
      z0XtLP!--qD@;*M_!`X7tXigbMv*;GI-NW1fQZw$+<^UqUNbeBTAGvqIeO%PCIf~0Q
      zUB`9yaG8?LYm{fG$rV_%loluck<8JVOy%dBMQsaNcGu~FnUkUWxTZBpVahO@IdiC)
      zZ@OHk*vHL5Ue~5fc_n0Ls)|Q~MJ+&%N`E3p@x!97)5(L+!{k>{;MXw2uVbFyz$(9q
      zr@VqTUqHea@tWVkkNhrv;!AkLm+?Da!Jqsd-trp$=BxOJ*O|p1uv5IjPV<MlREt?T
      zdR3;vU;(#P7m&AzJF1<?yNf02MCC1$XV5=I5ml^EV~yaR?w%U%leLM-u!;w;{{s;X
      Bb$9>(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T}uK%6g{)9j&7EvS<gYx2hk#h1Vs>nBv>zsJ&(JiPK>*;yY}&)dg&?Xp&!tX
      zitcPtX+8LI&fGh5&OI~p_Wtq;poVo0i=lokZpFPD->G2e-e@s!$1)Mxy)fAF!k{U<
      zB#a(5yOEU5Q2R16T@IV!a9-_?u2yHrov1)1rwp0xogRbT2z}`wgF+Em<QPhA70AoU
      zxG$rw=xfPPZik-GJrOBWe>Lr7q+*7n_Pi;kZ*a^|8Or3$_f?|8K<IO+hNC1+)ndrg
      zUT35R)NnfCB=TfanJCrShuJsd8H%kSkWoX6IF>O-m0@enTntOo$*=)RL4O27X5NI5
      zQ*}Vhh_k!T$Uo7-f<x#KgLh%`D=bi5{5(XwNEO+mL}(25h>d}jeKeS=jXAjZrL?}4
      a%YT*DtWy7@w6K!;mr)^h(y6OhL*WC=(Ty?y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TWl0n82--8?*8pC3j<gcuz*seg~AH;2E{5A3!4;4D8iFThuxt&FznRbEd`Bl
      zCO-JYqi-5xe8C4_N;T2M#4D!WARylH78NC4q8P=?e=gG<#3<c#{xjeC{_mXsJO7+x
      ze?I#>fYrE@U<s_<>mTqB7V6_+b)+yF`FjfcgN7d!w#sL*6julQQX{S%>ex{Wf-Qcn
      zyr~u*2;>AIBjCyOLgaJuw%vP!QiG5)Xd<e)EdmQJS?ccM_Mje*)k*=u5x7E$g>hjh
      zsD*wM-skU*0)gE6uo^b{1nkbPodTKuxEwgJG0VjaxB{~V!)kEX*#6x?ZHLa7GZ>fr
      zXs6FAtYE-QqY~BydIvAr#^qMrE8va<4O!5xu-vGq9Tf%g2HX;aBbA0g>!=@A6-}VK
      zQ>|C<#~X$Ic>icz4XO>j2Ze2}`J<JvRPQYoyLLL5k821E1ZFEMWKu$K(T;@zExcBL
      z9K|((Ih|c;ZN_>XEXH+&YXz45SCxZtyl+FbJP-ttizVpLvKu46v`?VJ$R_8fnnEqv
      zJT6{nKCXAM44s@?pWf2ki>j47(nT$Iu>##pE!X^Ud0Yb2S>!)Cy%?)p6p~%+s)P+b
      z-uYPVVvWk#6GqW?ZY{~Y(Zx-Y=_wnkjanQHRs3>1E+9(WL1{x0vw3PnU~Y3Nv6RnK
      z9OQpKLUBkSTlWtHW!7#oRoP5)hE$ghgt8yo{`qaJl3sIf6sy&s)*t!xdQd0y|IZ<$
      zJ}y4*OFl0ymivo;SrA(Ji_P#m_d7rH{MN%!aLg`0ikVOIz=Fq5ha>1wWax3s=66YF
      z66RnoM>Ys;{FDMKIm$WP^Nw)P={X6}kyNTZoqFZvq)z;6>Q%T}ubRz4{$Rh?J%M@a
      zvfYzdG=Zhv?U~`W3=ON$GCYB<?sjjchEz0|WO;_>rFjxm!~|7LM+<s0Qi>jfnrYB1
      zYvzXAb1LYST@88pCMH>)p>b^TB&di9s+g@>&}&UI8PrUJDyD0gZkoxUW*U@u^(<pE
      zR8)&gNL4K{9yCE&paPu~m`}jG0w=Lj*)COb!`bWvZeYiy2hvC#b&Z<Q&Xq`}###(d
      zM~%r9r4>3VOx8z<xGMJIHz%1>wQ#bDDp`%$F%z2@d!sOI%_MqMA<8bfcX?*U4Nsn9
      zi@}m^k@LzoGtj%2Ol}?H`bAu6r{Wqrl`5BM(4@B<vzCrp)zs6@>#=;|o^+C5w58Li
      zI<dsSX;iAIeVIW@S9Vj{9CbqcFuF<SDP4)0fmTp*vIa9q>B`<q8EoVvsy3eVsgjeZ
      z8AyeB+(%2BchO0{szEOzM=v2yFJlqCf*yJmo9Q*&L&tD0y^e=y3Xjkmc#7V{3-lIF
      z(c3sn?+8K1MH`(EE9j)?qf=st-W3%(Egqov#e?*LI7}akC+H*b41Fx7=o4{<&WLmL
      zsklI&Sq^<}Eu=53HT0!5Kwnu~>1)fUZ>%voYduWgT946p)=@fVP0{z(8T!FGPe0mu
      z`pI5GKig~R7ke9>w*&gszMp=x57Y1VlXSs;j{dNZ(_i-K7N{GpPv2tZa^(9AH{%w0
      vdGhF1td+MgkJh1=FK{_p&!Y@-_6gjEKE97F+^#O&JFtPH!<hmbu?f!K><$cN
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%}&BV6ot<%#X?0<5M7&?_!DD;8a5geLqa5}ZXoQ3GQgP9nzks$wR<1LjVluu
      zK7bEpyi<)K=z`5Ty?6TEIWzO|`SuQ=iVX_};rLqIiis27sbJvT_@eKOWFma$Qft!-
      zgNE>uFuLDrM^d^{^mWgINjRLBY$#u9s#+r~oT@-2XN1hoZiisj!=AK}LB4=276?UG
      z1@dY<>dL4sy1pco+|Uz#M?^~3KTR_ks+dr7=glyk{)A8-$mG1&Q;7-#;a^BK7$#|^
      zCLzabt)c33!)}G+$dmd2gv#ud9O%sng=P@QsP2n6ma&BjVSCP0%ueURCO8AX4OmIv
      z2dl-^5j(MG_g;~E;SU2gtIZB;0@HfHBG-lQpV*hUA}piGst4?|>j8%KtTm<ea9EF1
      er149x{3Wxq<kLT-fz@<=31xOW-E|G?$bSJ3iHbJ>
      
      literal 0
      HcmV?d00001
      
      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
      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
      L`%vgbA7cLjmL+Js
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbVM+fvg|6kVq+q%Dz40Yy}-g4hBQL=>@zN(CvFi(EP*FM3)I5GJIUq@bU|7x1iu
      zmGQw3@S_~}NyE?#w}F?FoMfN1*WPRG^Y`EHKL8#hry#&k*yKC>t7h-&=DN0R@HK5q
      zINZ=?<eD)ZVVT^RwD^`-(j7z0b5nGk^KafNZVSu#mfqmzx|rhTsv#@|A%>|FiSpdm
      z3);9`&q#DC8bhtKq1#;p3`5xypck@F(fLu`)SWSg;lxz{k~xM@y0|JLV5n13gW4#9
      zxTZou{pp|=mYR~F4O!h3v!$)Pu$Fk<5Dc+wvA~TSw{*GpK89rZ4B`shFD)H)tA5+3
      zDMM$aYg%4#)7JbNP3#EMp<<%Ajy4517&@dxXUD3ziFPV|T{uTbvt%}gmPFDmP&3F$
      z+M;8TK~rJeW{9jwJ7x++Gl~wx72IWLbhA{2s<?;yB(?Zb;s$lA)g$eO%;h&lfoQHo
      z(1mUV4;Th7?<5rukzlBC<X{kCpB~d$o)<<cN(p*Y^rDX;%nJo!yT)C(n(_P@d_zN-
      z`Z1tDV`#4~W!e{|(%cU+sMKwDrezb4TYYp5$ghMqgl7t#k_mlyZe1#d@ti@ig;Rm>
      z+Ur9|=E8Wv(B`MmuiNw75RN0HM@Ch=1WjTcF`5;-Ic}6rXz!^N!E1~wc*D?iEcSS@
      zXpjw6r16%fa%o|Cf}y#}I9>piGbyd|&S#YhveYP}VjAxmqEwMbkKht3(#b*0sAxtD
      z10!zn3i#RPC!yuUR9qaZqT+d&k}MWWRzXba(l+sPZqt5QD9M#EO<|=CZrg&aJaEp5
      zqZ#tuzlhUC6{Jg_H8#rIirxbBMM0R>2<=8_AE0MlPw!7edwPFC{q6=e&>D4rEz`jz
      zG}2zBLllZ8#OO)gMvDh?NRcwlN^cphGjfUDD&x)`+ItQVJwT^?93ol9qcWcCW2i4S
      z;{NZZ*whcaDq~^~^)f0{#?(HV<!jJ=4NF$pV^-ZR@lV9+Gcm~{fmQPM8pg1W40PgZ
      p;3KwN#_<X(k1_GXEar%F4VE#F4{q@b#5;gRIwvb8smT<}z<-8*1v&r#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_dYiv|i5dKcPySKX>U@7ck0i|ly?b5Qmx*$bR7J-Eps)h1UYj1aNyBBxwt-E(y
      zK*3ji;9Jxv8Xt*K6XOH56x2k2_|JqyW8y#k;~x|MOX3gW%(-_T#Kr_74R_DXIdkTl
      znQ!L&aPjMJ0j$JH4GjX@4(a3i;Y4Y|v_=zSd3_{NFdRLf=;d$Pa*U#-=eHL1g0aVR
      z@<yL-8EtB>D)#6{?6RZ5ClKb#5_z4j+C6;8$dEQ55LH@z!b!MCdv!}6HHrcOCuf%0
      zRtT)=xqKAeWWT|*OlPCO+Srv`&^{pGOW9c?2!YuW8k$0A#9WCW!UBykJ}|e(w2WQl
      z!mv@?qYvi|f#x1Nqvr?oqRFzS^l>Nx=_|l7V>&6iW<8sA6PB_IW42{jjzGH`shi_|
      zr$|-nRz4G)-|E3`6`Ms>W4yJhcoqU8Bd}m5Ly9=B3YxMlN2l1SP76J!t_x31E<(5l
      zts0h+k7|jlW)j!pIst9eaQe-ogd-YjuQ}Xe77VLo+EzDT(k5{OZWIX8;j~pU97^T<
      z`s1#$JBS$K8rtg}R&SD6h7JM$gqd}66k$4u<yfI1K_OM)xfe;IKOObujS+`Wt(I7$
      zY>Vb-jx;eOCDyVgkTYD>a@;Jjo>h&GJ;p{GByLehhHb~O3n6U6Z5nPBSatbime`Dx
      zK$D)y7^PC%N`akMMroDdN;~h^Tqb0k;@h!J!&XXaJv47yVms25d$TlPmP|!)qW(dS
      zXQxCDdTY2=32gr#aHTT@Y8H0m4h?<Y)Tm(QJ&8NfFCdu>B<^zyN}$pl$zF*8>?6R$
      zlg)P7$`V<$SepJZBRAoI#KHPxu4d)k68F?cvWAuSN(|MX>|*7xM5g{^GDu28Vg#c^
      zE{BI;rFANpcl7APMxN4a;yw+BJa%5XE0O1R2vbabMPtM$7L6?TMF<wgG}r=j6iL<a
      z?A4u|#QmV&Yb=-+`K9<cdJ}sq&b@}ObR)63q}r^mtE;WSv(ohXYF@1gy{;lBd7I{e
      z99DGMt{5*c%N4!sH>=1mfi5tQz?p?|!5vd>o5yD!7B#OmR3VzX4@*3P<HXFdN>*x@
      zapoVBn8f3Xo_%`Wa2(3MILJFsN<78=*F5Ix)q~`M4^am{&13u-FLgA?BSoWNj~oA*
      zsFw~mZ_ujw8S1yo#f-7l<chcc$Ah?>D@XZDTQn|HdA(FJh?5IudM43IF*nkGKSVgp
      zPY%7s0g{8@Y|J8Q9UABl2*sD3fsCKUoX<&Wz&zHeonvHu6wM?{vSICfETCTs5>fA#
      zO(Zw6u4c?`KsjT>R(I1gWYdMXO6?1@U=g_ySd1m~B}ff%f*7Jht;?oybuWFc-_<dN
      zn>we^nWfLFY|=+^7cJMZ+?`GOBR;j^%O(S?_75esh+oSlo8nWD=df`aTTUV23Ol~S
      zE`ek)5{Lx-LuBEdAz6zABTduTGa2~XRqj`Y9j<U!ouO7U++Szt9vrN9r_XFPSZ6gE
      zxX6Z6$W9}-KIp9}kj|zd4yPqZ;YT>K&TKf8J%>WXKaEl?*A`_DI7x+inKJhZW%O0V
      z@jAM2ie8O3kiwhj!&?}{+Ze?=ID&WaAl}0XypPxL0ZAX?3w(s{@G;Kg6a0ct@drM`
      zpQOEjFGUlk#3Gy#OK80mXH`unF`H{tsVS{m;7|qqVlm1Xr<#UD6cad1wO=Fx{9M9E
      zsQ%)oj*xcI?MG-8AcVj3TSxRv;a8$s2hntp-suNu6(oF%z18`u?gH8g|2XXm9K&&!
      zH*|+f<v^S`^U!I^h)ZLaiQg;KQPOb>xD@7<i(2qp@b1YGPCli|K7~h5q2(LI4!C7`
      z!uvUk6Q@}lj)tSWu6moJxc(#6;V0t#&vjlqs$M&)UZ2Htp4TpQ!wfC-Tiq2jxm53Q
      Z3vuHJ0{Xl%d;u@gFL$+|Y4s8s{sB?z%N+m!
      
      literal 0
      HcmV?d00001
      
      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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
      CF_&ln
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g@*LYnO$V4^dDNq+ma!Tm04{el#U%QjtjM121M;Mp!c4#oaCFpYXwG
      z48Oo<iPppie}F&AcxSr=i15&d-JQ96&)hrbocrhRuipUX@l-<(!`wFC<?l>y&$2ho
      z9m(IAP2qECzEJP7?F-lDa>?aQu~tsbYlt!=6vULA059v?qTy@kWta-0b-``VTydQp
      z;rj23Ta+X!mgfswxD37imgOb$RJGDY*#ZF<EZg!I8S<&Fkm(vjwCHSz7#R8uXgIGU
      zg1CVg5)6@)N{Cl1TP(Mlb>UWdT?&Swiqqh-#$8M8!(dc3&tP`bKysd%AJ{oT2g7vd
      z66R@Sm3D>g7t%EymoTnjjA7zTVuM@*mvMzIu_^pR+LuW!hLKb{Xtkr%s_&A*g%~C<
      zso@$!whILeOyN3%US55@@~l#-R!fSbps&CN;o&-xnAI?I!Xll225ullI*PX~E{Vkp
      zAqB@=R7kJKkikt2S%$%*!=F2jBv%=jLypv}zFMQ|!^f(J2?a%2-XLe+V(23}mc?F;
      z%hrEXbWBU>8O-X$$6W*WaG$Q{5rtd|-zP{kwXVFuXgS%bb+%drU3FS+Lo8X!J!7ZM
      zPEK8j!6@4_2}Q|0PY@09lHHJwN6HXp%h@pSMENpd*&dCbJe(X4dGc?Bo^xP{gt9S>
      za1T8(=oIav)dSkAh@Q#*fRXu$fp0<1po#^56#4^(Xm1ckMTap$Us403;VEu-N-o>R
      z#RFVzV|pLc2T0T2Y~%Jm1~T7aMBBLY6@6+Mq2*DfQK|uaL_a=Z9G@|RFQnUkP<1ru
      iA{SN#a@6xfsvE&0!t|hkg`g{9oxUK<V|qtPp~ZhHhA@2q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TUQfT7~KaVA?au(Di;BzYAp$B#9Fn+(hBtw1w;e1XuV9rLB>vIaApwc&9*+b
      zuU%d3TW_ywHFVXrx_s(Ge^giZnVE!47GT55Oy<n__P4+NT@L^J`{!Q(2JuxKO#%aV
      z^n3dKth;1bx3deTK9?;^PdBq;>YBGa=~%jX*3rvyDj!E|ErX)&8l~*8x;7XHB=d!v
      z6Q@VdOirE=NR29ISyQL0g6Gg<PT<uA-ISguM-A7LmUIO62HT2Kx7_T6V=qX@TOOIG
      zRc#aPT2GZs!!o=ff#&}7v_Ndco|UcGEYNu&!sC$PP6R#@pg#?p(8BwuVaf5ua#1>y
      zdeM}Mo?X(-Y27i@bGX=YDs-~D-=|fTD(WJao=&0}J2a%Qja0mO!xcCfv3QBN3~AGx
      z(pjJ<V%Ok_k(V5)d(4Nxi3U<5c6q_Jq~+z(5e(mV?d4QH7e}wa&idR(-6W~h4uM3e
      z3P@EWh!<*TB%UxVm*rwAO5N*I@-^D0;Wg|@q6hmmyn%j!w%gJhF%7b=CR<>CfD+Wo
      zrQ#h~s)iI<iX%h&)v6k{ZIfk_L>dP)9K<03tr)CL>*gZ0WvyIQ!5!Av0!LV&uJpp{
      zVBY$#s!9?ie&<wJ)xzQPRel!)w)rXqBtmbhh=Y`j+m1Isp<DEGtU-oIMK)xoPRlq>
      z2^^`<%Z6n$X?Uho4wJ}Xhbr%PHN1z@<nC2p2^@`N&IeqtXKR2AN-QbB_cfeB9|5gu
      zaLU(V_3FHaPISd_L11tr%EPuZD;;-VsB`d`L>{B6Uy`a8#x-2R1idgF!Fz#SQ3;Da
      zN;Y`QhKu8h!14d%H==#j`(=!><9wCYRA{|1Sg+95u<om~%T+_*Lk-hN#=(L)xDmSu
      ztEv3H!6atzky7M3%QG7LhDE@3PEV_R+|&?9tCCaKPz0;EOP`&sHdS<juC~~Qb5^xO
      zYSCIN&N&UULGtD`7`Vf^<;b#qPp;=M99EI}A9T}8DYS<KF3RPitvj=)OP*m{zT9OE
      zA1fL*?#96ejSRJdI@YE<!!$fYx*8mCEN|hwnaT$cV>(R+qhi;!V|0qvOmeMQB#t|8
      zFBO(~Y?a5PwV1>bmgBh3!C9a7nvsT2@TovcAQE>4UL*5N$=#%v1v(-vTf<;iCJXkW
      zQ<7&5b!2s|bxa>p?m77K7LU^rQ+HkIa^`aO@!W5MfByNuSS-9Jcuhdf#8>!~;az=N
      zQrhp>@|eGxu$9*&@4yhx&SPlvSHYb;?LxaDzE?Y1G6O5v-e`A@cISP&_Fxy<(ZSu^
      zuSN(l64;6E5bGG3Di+#vh?&d_^sHdlBR&UATKsnfA59DPVK@5tUZ|6WR~5&1+`WnS
      zwBoaOfFNVdLkFH<O9ijLK>B2?EA}@MU9k!VhBCbsWLGKg@nyMA^BWBNCI!1ik~(_X
      zQ+rWDKkHsea5QjG3nh&=NrM?8oudp&N!^RLC|EP?+i)Bw5aZw5I2n@6^GS);mU)ic
      z42iz;3`3cx7+Q@s(0zeWckA?Pt2u4Mu&*Dh7)L_bhjgfNJxHjL7s!nr=&s;w_xIS&
      zg>%o5pIO1h3dVk;V}Ic?7YbZh)nF$R1AI;;zQATYpzALw?bkSrhdzzIz(I}1pdTmy
      zH{r=Ui77@EQ&TV`bcIhUp*@)ue85;|X87aUGu%+_`MpuWtySMC?gqZ$^;?$S4=jrx
      zeV;+HdqSTvHGM+-ak5ePorIMNlX(tcZ)XJEG-Cfm?4Mb@zpw~@t;6oDVRNK}*w+|~
      z%25ZgO@;jjtkD71&Opkm;NB{9yI&5E2>qDZdP3??30LvqgR1Wc;Wbw1XB3ycPI*;b
      PKcKv-#{`c6^-28)&bHNb
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-%k`*6#gzO42<KC1y-fD)e2S?Rz}4txJs+5m^GlLx<nuE&Rmzl*%>lB2>omN
      z*w@-7XxgN&O-%fkOuu_)fZ2uzv&r0Z?>*-`-}%nD`|<N%{{Xm#M-~PIrZ(kUx$E|J
      zf~ezeh4QuARjCZ!HT_+cZ56hf7D`7swq-By-23{QI|?`^`e1u$^$XzZ0>gKLC`gwD
      z24|}40;NXmD;tA2=D@;;z{%AhQct$KZI!%`?NAAft;U`V*JTpueSTO<H-etPh?gjt
      zs#a5Aai)*K<3`-wiX#=J^=jXRsr=xw)vS+#IUEdO*rs(%VAR_W6*$`$TL2X(Z^<A^
      z9|S#3%YUJEQ-S6GkudVq4TdXsQuk3Jw>AQ=mmh_at$3a$>`1-YtghRb#5oIJ5nQX;
      z7vkV+e8Y-6Ds9AJoRIWPR+(`#XY~=B*PL}T=lz`7N}Q-p5^qPojqfmJ;i5pL*sNA_
      zO-8b#5}jgNU^*+pHSC_YH<h=qVIh;I`n`k8m?5X$0jKdiRu`L5(pAl(W?_zui)kMl
      znhvgDUSN`CQA#%F7v---svAdv*Nl9%YbK>><0`IOxF%37Vwh$YrgLB4RvLso2Mf4C
      zXg`rVnaC{yCLsr`u_2Rt?AKg@?tbi%y~&$%)4?q)3fPC30%wYP6}l-PLV=0?3Cbpd
      zR~>=zBL;&voa?ddrZ^u0Ln&wMB^@~J#(qU2J^5Do`9PdH#LKkjEO)78uA}`t-cCHV
      z66jY|E<XEtttp3tTJsNsZ(F|xT7$ItD)}AdZh@=dIyCzp_B$E_bOda!z<rd^z;Rkm
      z=7bXlViYHFDhF7hrv{k#1Lc2l{BMX??=k)-%H03X^9=8VA@PLKPZ{~FfH{E)ROna2
      zX`IP1KauJP&z5R?ID31zHumiYT-d{<xjj^GS`};HSCng4DpsXb8TtVCH#pqU-op>I
      z$zeJk7Bb6H0LjE{lJ=O&$2lnK@)}cItJuJGY+?~_45^>9#Cf5lz~60C;1cS%V`N#v
      lT`Ze|mhdBfB6aO|kCs+=fwDEYRxphRJhK@6kRAhA`46!NVD<n2
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>fgc5Pch)n52e;Qc9tG6fiVt5pHfsK}ZmY6v<GjfbSc7)4DjjmAwYauYv;t
      zao`8=qY$%h0H=r2!>+w=-rIRQGe3WQ{{f(fj)NLQcb~uGAN>4%B6t0Rlu!Jr&^+~D
      zm_1PH?GqUfg-E@g1Dm03=zhwHygl9*k#<mLSgT(0X7o%<c#-Pd3;4&wkf()UsO!BX
      z_qHfuP$i#`u}`8$iA?lkhWnjUtGXeBJy5Y|fZ?1A2WOkG&~nj0o5AWBLMuq5cv(!x
      zB74opDfwFrRK(MeXNft_K--vR*gS1=uScdAqD*itX74`c{9keUM}?@?vfsoCt~$8F
      zuzpgJMv;<39%+>wx>&_Ea=$C|4v!P{w9r~fLtt3y%-7nW<j;!5gkfdwO%+=V%~z_(
      zA~8%%T`nCTga^hMgFBK^WP_CFxu6oYp35jzISmo<_f+h_`_CgPv*qF*)+v=~_CQS!
      zloV3`86t+&`Q}%=c0+7Ymn~Xnz}juoY?|#Ftp=KeF3{gYIvb?9vH1n=##fyGTyicL
      ztc;M_-oYZBUD6ozB9`b&mazQy7FKfYZ@B!4Vl^0j-SF+O)Gi;zXIg@B9XBX$;bzHS
      T!!7z6S0)EYbDMS>cX0PN_mSvw
      
      literal 0
      HcmV?d00001
      
      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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
      U`l4mR>F4wZ#d}oPpXp!d|6}{Q`2YX_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc^F5dMa?^x`7OO_Ylw0&RgVf)}ue+8VV6M8VeU%jtG)50>4!-HLyOcN1SV
      zCSo)(@x=#!lyT0s$~IzRlg>G3X1<yEW@dl<{QMQbIb08;gD|-*UWwOweOFp#y;c>^
      z^&Qg{RefE_b<=8Ogp<#O5j@PbDC*MCGfMt(C3LPxOS-FsKs-?(1haO@j3I!ih7dXl
      z-D}b^?>2Udrt?4)t0tj$%{D}}ARMXQEoIQH$U0$q?Y}Ba6C#FV3fIi%2utxc)Saxo
      zQ?o78a?^=6gGcy}F`rAvK!_5^APlv6`a&?nMy<q|2&rZsUF^F0El1QU(x|8Zg-aA-
      z7{pK*#|eXeQU|d$oWM!0plrIgO<AtEUK4W)H=<z_W6V<4H)`T#gR^sgpG0t)(9`OE
      zs_cl8WSTLY!Pzh-2m}5^`P{m&MA>vSOk#=ya2~=`i$qoM3Tza&P2+c)biYa!5!aAF
      zlF-G#j4)o59lK$bc!2R{U%f_T?W*mh!<Z!u`?Gt^&gVAGy4`RLUWq}ZH0X+OgyTJw
      zCASje#as+yfiV6T)VG*<S61s9&f@~tQWMg0x%(b-!rWmq$*G?=m?oz!*WravtC0{c
      zX;?x(A>>6;t9n^OpVCm7(AR{ujhI)U(wYzPy2Z9UMmMEe=Dzk%C#85`oYMsOvja;`
      zgie-We(8J?pP}SFBJcUqff!3=29|MzrPg%dvx{F*97Q*46nKHXm0#ow=<z;!-tpa!
      zzv072a16a{=lam!!hhf>LDpqwKVo2&#qb^$dry7B_;<|kbNU-*_AovgdV`UfK!7!K
      zqoGnzdCVu3!^O9V@?{^(2c@UHq#Mlf9+!NdlWk%QTbMu|b0}b*&qX}K3Z5c^XP$Sm
      eSw@Q@7lbt16}7Bab_YjW#TEXm?p^h0Ui$^U7##Kh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;5r=5Pb{fs}vAL<z(VX@L>J8n4nxpNQz)g5E73|UA3lco6@R3%Z~$zCSFba
      zQO0RS0*P{&o!NQs&D+_}uh(|~dnl(6W7xgrcl<#g-COcncWr*94~5Tdy%WYW#|_+$
      zkU>|t+~dCE^^6o0hOI@c88AcIk|Uo>Q!wne7qR}DRbxmVS<>?B4Dm{}&!9A%OQ9l;
      ztcDcQ428BO#c41c2=AN^Y#OuNc1&*fxo3s-<Wli(tP!~}J;8m^GZ+plb9Pz{XXrXo
      zNWWH{YeYMlHhV@b1Dc^Bfuu@VmLX&QQW?r~+!;{@wd(|)DVkPja^v6q?u1LiCP~NX
      zn}`-pqAW%^y_jN#sslP1or&!+)TgMeQB(;A9791JIm)yj5b}{k1_dll1e%c`P<lr3
      m1GzV_i!oMSP^9{Cs+W&U7{qQ7^JGS|gc4Q>$FLTm*S`S;^^c<f
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVOTW=dh6#gc0ytcEw$7#~i(n4utyRGSkP?EOfQqnq2FQiRM%B>rFV{dEkn)Rkh
      zp<K!(6;}ZgFO@*z0U;zFKx*BJN<8s|;FT91pg({Y9zjBUGi%3dS}r1rX3m^BbIzIX
      z`)1{D|M==_06Xx!h8BUuS>wDhpRUYVc0OG$8Z+sV=^4fJ5jh@roxE#SDno`lk<k#k
      zQ~0z|v9jqQIW~n0g!fvu<?R<}?MX}ugod4*8AB_gI@%BxST<(a=F!>GwCSESri-S)
      z$}uNv6ekVWlIxl?<Q1%nKx*ticiJxy$-1WDnG+d-Jv~h)M~9tK*|AOA>rXUosLL;I
      zPGtIH5Qy?WTR$Ms)pR0|N?>`}ux#&u>6vcHvRPYTyI(nN%z5d9u2C*n*-HQ4Wk^g)
      zY&vzULPrc;Sfim^V1>MNQvw}paThO`H@#t}=(t3!$G?aQQ@;KvTVJo^Zfp=}FE>~e
      zSkqiTKpF3Q4>oDIm)8tJJsOD7aUV7l5*E+c71JXxtAf>ir^?i$BY~vf=qW4b6_gG#
      zvdC5)+vJu^bI7#v1y6d@I_{U=rSu+iEfQpSmSe}T6T3C+64(;#>aS8AbDVR7c5cKp
      zi#i@aF9}fy*`DhZPZW%tGbgaA)@zgA6=D;aakJvgx>=LWcVUl?htS97dB+;cs{&;D
      zASWiH*o*xd_EF1=Joymlco+lJe9@fo1Vlzg4(S+{&Q{MU%k?8VM&!E9^&#lOAsrcv
      zvTV*Z=H%-T(0Vfb^Gl8CI3f>(ryb98N>ZQ4bR5T{0!w(=!ICp;dn2>OqCjV$+Zrj%
      zLiBgygpQLEpS3)4+_g%Edtum7FdZ=5b9Jahp42L>G^vkIOJvz{#W-)~h;bvr$AsG!
      zRoigaiqlX01x3*AG`QteDm7|CGpg@cF3`hD^`tU(uJNek8_DUIMu(L6jE+2*Q=4|?
      z$IUE}?r2n&4#UnDC8Gjob({l%3G>!N&b&Y}fKVee@RAzNC~TB9IDBf0G%xPzct&y}
      z=4Dhxho>l=lZuy~^E&3#{sp<ZpyOG^U_r@VAa+8DZp4zGzty*Ybhpcb*vJdC@}mue
      zXz}C8QR8YCXTiBGc^#22X|y25F~%7bSP1*jPD}TLI4|KUiltaqOR$rXGC|}f#ME^x
      z|AMxkLzVyz1<psX0xRjGF3{nhZ)s&KtROZfQ(Lbio~mN?(d1REt72nc$Tzn1w)sY?
      zH|!hRd$k+b(HBW|N2+)*)g8KuemM-r+vId0rxsNl3~Z^Ocvwz{bKFXHhvIGVa1}>;
      zqw(lR`0xhC`(ml?7&FGTE7<=JXK&kzo(V11{1oHys9$JMIS=PP#`?gKJ2zQxt*Os=
      zRJNMh#-1AFoJJ=>oFH(Mgzglfd<^R_h0QpPG@ih2Jc&L$&4@E7!@xy~{StCmfQh#-
      zgZEIt=dkb{O8AMA`i;6=3s-DFMUhqZ38|4yYM5zKl1b|n32Z^T=w!_)Dyl;)Vb#Ye
      zlyxG++5^<qX8g_$2H0O3zv3xc8hiSM9Zey^Za!gO0~FB$K45oK6q}IGks}o;KI1tl
      z!COiY*?$v+)Pa`j*8aZ^lGK!0g>?<4lt4{Xb)iukSFklDW3Hm4bXBwc$!%gj;nVDI
      z%_=Huwm;1?`gTG`)vI`s7k`P+Um_GQlh9WP<f};GHU83Cz!)y`OZ7S_dIR%#6EBd;
      z%XpjPJGh2-@gr&d8Sg6sXM6zb1maemKw32d@k5<Jd|xLJ-z*Y%vqoSFRYjY|nwBCf
      S!m6hgsq*vr9Eobd#XkW@nOG<Q
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7+fo}x5IqBuR>%uBcj8>I6L64(QEca8M}~w;aO8j?Tx7_V(P|_uS$5^!72v0Q
      zK>i@_sY;b!k_rY_T;&h&N2SuUyGXl2sfr$Ec6z4!boc3Qz5eI#R{(C|P(c?%dY>Qi
      z<D7G(o7G(1;Fa8gaJi9NmFosC>()ZUbuDwdpdi-id5Jr^mRpc(<T*pCVrdO$(K0NX
      z;mV2x%JCyN=SlJmmmFaT%?%#(mvx7i3{l<^$LF%decjaEIfm}3bde#pXq80@-RM=(
      zgA~K%72On%8V4m|Z%JK-ffY;RMv>dPJO{#<Thkqetmnf2ij}-eYPR66*e)>Kor-8a
      zT(l1AmMKg(pN?F3>1$qY7xF1E^fL5l=L!sC5si>3ibgjbO1iNmD!gI1<neeEc)sMg
      zHrHIAk$k!+b8%J0D8?kxTPohhI}H6*;jY_OUD)o^bz4;QV}_wA-_@MKiRVq%Cc5(q
      zt}%>yyoAIH4c#aUJB4>Kq2N8DuKk6IN!(yi4!O|~YZZnYzMsDFwbDMZ8l)zIm%=!v
      zBz0+q;jl{JPr8^ymO%|yg4DUGVg@;e1h3bHS!TG|N!d$m7%vEfSQy7G6}M$>lCI^0
      zrSKs>R`3yd67GQQ!YVg;RoE&%!CiV!xeN+)A`BW0vQ^bR#KWg5l1L<RpCRtGfE3QD
      zh)dz;6oy~-Qo5i*L4tvmh`vZ=v~f*Z^?=HO3xQI#_BYJ7>XEfkQ1Jj`41E;EX1Lh~
      z&dZ_YIn@ZgTDsVTy(C@^b#lDUb<<^-3GyLLJg|AarfW_<5<{rE{aXE6#UrdyxK)Nh
      zKa7Yr-Dos7JOB@p^7fx7-YnUmQlpACgpcgWmh=N*I=W?g9kPRO6zo!ln)Bz}Sry;n
      zJEGWWQal&}^QTn0*n=Oir{G7LElmqeR23XV9it9o1^Ke9LU@v=@>Eq(lc)HRUUq9z
      zvajMNDM{3XUah$)?BGC!35)zF+x$pcrp}rw&`*v$MyH`xrkcP+Iip4hUA3a73~pKt
      zTNBH=9EqbBNBNA51lOqmyXmi>8!=g%^c9oU=<QU%w968uK}+i;I^Ch2(H_s7LH(0H
      zy3j{!igw^DQeMGj`cnNzxPpE<^<V&lfq~ofQW{9U1lv8s&>!^e+emow$07YBhA~3-
      z<Uhs&{bz(B9p24k&+ta(6mPC(USfQA`US3^;r#)UOrPR|7r65r_aZm>(9LY*=Cjbv
      zd@HD{Ui_T$QlbDgOrVT8qIL%r&&g}PBSDbl5*D#UZl<t?FR)Bu#boORj_=Z0CTUnY
      z{$++q_h^}wO9*s?-~fx(IvILGKsJWpcz`3mfhOQ^02sqV%Dqoej&`4*6U?_K_vcV@
      z<AE7TStsRt?aIG&R9@|<Jln4PYX@Z}2SMO=fpRHnRWjM>Gpx5r@GI*#qT+YYgr9V!
      znF9qI*z_V+utn7(lfI2&V75VeF)}-u&75HN6pyphC-^>Ard9LSN^Fn5_1NAij2390
      n=gVI-!cU0x=N@pzH`D~4YywXbRZl!>CW$PEbQxR%?Ly;UWF!*l
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GS#KLv6#lL=_BifjkDH{$O$uqVnYe6S;;<wsDK1F~Ns}%V>WMv$CmGL#nQ79B
      z2c*8xzOo3hicJcO1QbXbfrNNN;*o#BpFo^5<FTDZ2qO8;xo7>(x!=9*AAkS+D}YB}
      z$Os9XT2|N8n<-~qH<wbYhFVCKG*>lJ)4a}FmOG=G+I*(h+fUkRNgKE9yk^Ug1di4Q
      zFM9ga*rMawYR>iD1R|rlsk=`J)b$T62uKrFUW=g)^$Nm>2sBOUrgq^*X;HH;s*8pu
      z&^l%1RAWK4b>5eil3UarfiqLJCI1KBG*w#C%BV7?qq&srbibD_rLMcF39GbfnVRXQ
      zt2*B=J+Mb3qlNM@6ff5Ii=i29+*P}P+@GPpfrWa~9aPYPP8xt~tqO<?>kcV6%sR=?
      z3N9-W3XZTMvS_)kRbo|-f}^Yo+xk+`rO2E>dlgC*ut2@3tp`oDR9(vW1^V`FbZ=iV
      z2=psxM3caQRaG}D$2h!ihH9yEwz^u>b57dtTSihKUVB#O12V-hj1w|a0*7ktbIibb
      zS2uK5*Bpfi`lvt)9oZ$_%v<YYW=?Zl%l;3&_yOq{9>+-;Pt+ciZ&Gjyrv;+AGnRAp
      zHKH7G^J)wu7?nXp>8r)Hn`2X!wK8VrCpFDb@Fa-XhY942t(R2$)`Vrcwq=}E?UlKr
      zO0Wfb`~5NRxMLHRVcGMUS<SI-*g1``K7(-?W7KhlRKY|QOyDe`CCYkX0&P3af-<EC
      z78w1cf^!V0odE4Y!X+{a&NDls1>G=awVcaQQwpXzDprkR^$QASSREzxxS{4&IKixf
      zIWIxpR@eFBvgf>l1@`RNGY5YL>~mSc74~Va76}F<mZ+nBh(v_HNxxh4qcMsi{R&jX
      z^9+VrAr+lkxWKOyO|Y7)%mjf^e_}z{?lTRjxz9W2jg~GL&1cR#t4W>TsP<j&<1ina
      zfRZsy&7Lq+$I%=a%L2#$jZ4+KG@0EmEPCiN*3nZ9dQw9CSkhjmU5dVfwS)H&y+=X_
      zF<RLST*m=g72kor4YU({p=ssd*U68Q4kUj^>n~`&5~aWUXr10bM>4vJI4@niJitqL
      z@_Taj3mowhlpw)G8(u{xY$V{|LAdC{npe2TPhKueWyt!F2W9}hI7XQm%<(dqG<k<8
      zzdSf3w$N8C<@a*iOL@?Dsic(4DFr1T^b>`asjGTw^v=+47#fkg<ZV1W677m^;j#D7
      zkle<ZEj+z}7)j5PluX2>c$louu@sF*d?}ob=4-Z6Ji-d!ZyV2-10^Z&mdJbOjv}Od
      zpyK#ow~Y&4cynVmE`_s+csSeKMB(A=7G6vyJT<vT@)e7>^Ne8%A%_HiNlS5_no>k4
      z16#^s#aPq$#Y*Fsd;m?9CE^2Ur0_@?0IMlJ>;qtnxAQ7R7(i1t!C$V?SOE}b0AwKm
      zELMzFR+{wh9PlQc&s)UBw-LuX=*GK5f%kC&AJEhAAu{*~m+=X4_fr({8BytT+{G8<
      zwSkZEB{uOD{>0b#3*U$cz7>u5PITg)=*AD?Bz_cg_(?2dQ@nvKk1^MLE(DAbcLEZU
      zbQLc#pGdk!1g4un(#s@Cp7aVyVNbeFQiT40avNEwMEnNv8Wxd5w3)ACzD(d_^ko9`
      bRn)3Y*Iq?7hfwg=C29|JS^56zSV8O`zQrzU
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN-%lGy5dOw?I5=N|F|-g04GD(W=Es#bDFr8KTmy{>q$ChW%}aIIYr5oohwhe;
      z{s(>OL#w_Zwa=FNRw+%RK2+^%|D)z1>g?GqcA`iXmUee`cV>3JZ)VPaz5MNW01LQn
      zAVw(eJCB_wc6cPcJ^R3Q>UKjY$F(>0e9!mQmg9;0<xI5Sk;)bNAX9SvP!y|5`ksLV
      zVYJgtaW_<fQ&p{dLXY}VhM5Jz;zp<1|9-8&F0M&WsvCsm>?wWZDuhJIuZcbok`~UO
      zrx#}lXCf#j;^?<vAVqkq^@Qy@Ov$zin3;mM?%$A}xO3Rp6~T_P>k2}8!>>AS#R;U|
      zw+|B<EunO}I6IkT-2F@=bG#*jx*s$|jc}nIopYpY@mP4uZqdA|Wsb8CBN#Pso^bV4
      zWLtO#V}#zIoqNJ?7n1dVi=trST}&9b@JjZ#bt&Cf(v?bz(85JrA`I*a^+0+x|ETCy
      zMX3CMaJd6X$!{F^UW6ce&DQW*1_c8drn(c%`dZ*Lgo#N^TeyrYVTAp!h`Mv=swkhI
      z9f-iu%n{<*Tv@B;EzDq+V1`0fWGJHyCbAE66@5Ez!Nz+8qb9=xuI<Q<Z{Eih10N7l
      z`u%oEd=)Cuuy7S0a!H9NQt^^4=PCw1A`Er~x*{Fd-!rj@X+7ojG*2M*KXwB2^*nN2
      z)-^_E?nJH42Y17M`*Nr|H4!abHO77|dY5atTcH&WYna>qVNexoQkU`2E6qNyArP#x
      z=ZT=?I$<b61Gfm%o!H*ozJzn#p9^ldjt>SVxC7(-4Wd*^w;@Y0J~7bCb06=Pc^~7|
      z%Fp})GoQA8#krp&tpT3R=<Wqu{*AQOVk<olVu)9UjJI2UsKlBHKKn8M6y{S5Kgamy
      z?4OuC#@6f~n7lLh3{yYxeUXR$>6o;<#AA-f_+0!Ma;!BMe~yJF9{jg&;&voAQEK8Q
      z`&>N668l`#K9{slZLfbChnA;!oYywXtWjtp8Ocq=Pk=q-z(H{&DS<TgV3>44nYd0#
      z6v@IWo#iC-W0O+2O9R-UL3~a__<}}Jr!hRDaePe^_=YaxTe^hrDT8C0!VfeP5p{(r
      zV=~%AY3UlSGgV1^ha32qLmkE~+++&kc*K7YpP<B23@dCE!z$KzO|vwDPf_MHaMxiS
      Gv3~#<`jUwN
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUT~8BH5IxhDE-Z_bic}GWVueyZR#XHjAt4PUH9&}bJumGouG#LA-3!GR{T==c
      z69nUf(N}+zaqhOJExeHWa_`LS?3p<;bLaP;?>_*{Bd;MsD7?4MtaCG{+3vA<;#d{4
      zDx~F@Tk3r4d2+{c#eOjp>U*|ygfe7`CC{}hAJ$6J_FN4y!f-3l+EE~Vt0e2+332((
      z4l?tE#m!c?TgS^Y#ER|Oa+R>0?GR(?fDkKqWzhpduYoSabwtr;K*JqEG^-r?H*HsJ
      zpH`2Azh@mef{@(wN|tkA`L@y<#+V{RSnn*A_VO{gey$Z4a!2?T&##IyVYJTDv})26
      zXTp_cy_V}r&QBfmU<mg$qzDTgRn))(3=_KjMvDolHZE`e^**m-1dla5y4K=dH8K0r
      zc5G>jz`!WR2m{AL9@=i%tF5^u5lGJ`Otvs7c-0fn4H<;dLVEQdcpS$GcNCe>y5U<@
      zp(Blqfv1=tBp7@BTne`=%Dd8%+!}6KQMqIdOd-cE!3~#Kwy4_L71oe2(hPgEssySr
      zho(y-GqzV4ylD?}<F<Y3bQD9V|9o{k1Ue7$3pKvo1bx>#^-E&IRx>+z?fK5BvJ#A<
      z>k7Z%SV15H4NHWH+YJvlrhNer`r1|i#yFKI?-fcU)Wc#aiipaL?LDl$WG%wCo}2#4
      z#}$k(tVPhzXPkXN^GL94C>c5ikmQ?i7lRFikL(>|+j#B*`UUQN!^5qaUr2vOa^@$}
      z+q0K=ayT2i#AFkBSY<+s=%pnjX_=o(9wW4ZG_8iwa&^Q;G{(j>W;k9iQkcaYM@(@p
      xCY~Y6$!WYb>ue_Yi((tkO<&=8GhQnb#Wupc)wzIId?#5N!XjQXCb6`P$Y1;?bOita
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTc^F5dNkuU07Bq1pyHSq(Ui|6%|oxObC~xT99ykUfKg5)9#Yp10}xb-|%Oc
      zAQ&HvzWSq#bG9`t@Iva#IWx1f-^@2NXMX?r{sX`)vIZiA<@e5sb7}__=^olgCFj5{
      z3+0sTHGOV+p4xC+v6D-M`nFUhp$(}u=Tw&E2eDXC(sK>O2m_5si~E7{or0=<C&bk|
      z8Kh<j^Z7=%8wboX#7pT)^@^~NZW3c+mk?X>ilPmKb_*?tn~36;1p^&~Xj(gT=A|pv
      zkIVbQ-*)y(f{@I61*f#@_)_aNV@wkwtTva*mHIKePA(Q#azpqBo?jM4!cdi_?NpR4
      zPK2xMYB5)|oSoQhLofOb^bzKoDyfA#7$CIzwI&n#E|GctulrdOgSc<t-jyD2>6zJ4
      zvLuxhfrTLq6S@wC+LLb4t1P+&5h%|mj5jb@^2$e^8!`x^h4iXF@IXEwbZ9c6b=7yu
      z!o&zt79L`ZkYMbUQzhJ@C~hf7ac{V1Iqj0RFo6ua1lL?*>74FsOISm~U_I>hsuHNe
      z9O^E$%-DXw;B|YL8@KIKv$GgN{qMWuDKL4IpXdQ@C74^@v0o6YQcrEql@~mt>q@Y4
      zt}Fbdk`n|XFz}o(cC+c>&RpIB+Hh$LV3>1>@@}C-LccARqKN3!*xtt4Q`RDUo0-Y4
      zd|bf#!de8Ke8$-aw1Nc7mX=|n3rW5S-RP+yd}Qw!+eR~IFwb!N8}6=6{lds+bWi=n
      z$olj-M)#%@@pFvVp$Bv-^akyeN0Qe0#k|EJZSb&dhT$?*$XYlC$0VjWU_1ITjTsKv
      z$Fhw_h;nuYug)r+G5(_I#xs)_cwCRyNJZ0)FmZj(;ThjamU=Od7fg^?T0rD4l9+an
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM*-{fh6g?f13<;wKWHD?mAcTNKL_q;j_5=YbS=2WMrp2*_8EU3keDR;GVzGSi
      zQLFp`eRh5E8!T^kLKZBmkca8%+kN}=x#!;7AAi4n2cQS@8UhTXFN|$tH|6hG&U$Lo
      zHlC$6xG?P0tQ;S?u9!C*zLaTI_M#<hE*Dy7-7TM|4ac;(ry<DDQjEj5xg%1_C*y2x
      zi4oJ-6x?Ho*@iF1J!5^wT{DE`I<zz+Po|6=k(zfcM+`EA#dFJV?P2Iwd;iT&LJV1s
      zC59OW5~sxISY`;0xh9W*;fxLq<x!O3oQ?=$3}p%FaBjwO_}tdUD)$zRRhu(Z$;j+w
      z!?UEFTMWv87{*UWr9^CsP2Z5>&wJeWxyjI+jZi6AB>aTT!C=R76c<phA<hub3w_*8
      zM*|ue%GbG2IiN5S9mn$`b!gTRLYN`Iw;37=9>)RmEM>0OxfwwVu4-syIGZP-Zqm_)
      zb_TXfUq*U$=t!!Sml1TKTf;SmTgA0?;u_VF!gUJD%M~$0U5WnFN7X$T#SPrl(92L?
      zeA9yLi6vp#maw?5;}-fDDoLZqmSeg*BhDK4g-cc4UX+0`cVp9al=KC8vIpp%+ZfPr
      zhw3J;LUv2XpiDpofgg2-biS)&824!1FRU|!5}AxFKHV&7q_D|tVLYMQSCgkSp#X>|
      zk^YMc6|n8DF}yl$dz46d;+&M0vMf%9wCt!TLv+F2^49pICEKX_*!$Bh1*4ENj>Ek%
      zdPRKhYnWwdE6&)zc~Ie%zF>q^{D$EYF)5>WF+d-cI1r1;mM1GnYebOtE6BP@mh_1x
      zJNKa{4{`Q2Spihi7$zU!1FC4$)jW#xs3wb{2DLeaksLxK*?EAveKZvSq6+#GUHe&q
      z)G9lY0|C*vsE9IL&cnSYf*M_smT0qGd$^L^LlgbXVKNd~BVqOhX{PU?^9_0iLh;Z6
      z`Uk@CP&`bYO)K)3s0pqdV5q>RS>b*mIldB`Z*=o_YRMny#ZOG(mtvUC-koQd&M^#O
      z4EITp0D1Lc1nng5B_uFPvml`~(*8Ih_mVIZ<QI;~=q7U#wb415jBv8^5K{$4#RAJD
      Y1dvhVG#=2uitH}TU`{2g3l9<a1EUtc3jhEB
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKO>Yx15Ph?oX34T7Aq_3xUkxP*6{{W)hav>6R4FK}5R^!8bGN1#ZEdvcP<|8_
      z4p0dsegHoTG2TRw<rLMH#^V{kH{+T4_51rz0PE-l@CZ-di;v<{oF6NF7=K8`+xSRY
      zk;XetzA(l<7h1j=bc*|)vZ-{2juV?>YmE+2AuP_aJexQORr^lmopr*);jDk|C>u=i
      zNNHss6L!0&<S4<OCRQ1}(HjveTjoI4KsXy=0o4#b&P51NCoGp^{RIVR5*qF+u{gHz
      zK<CotAsT2o;36UD4tVuOA=6%nu!LnojUVlZ>`-Y!dqO;eE>dX>m6p5XqkWm}iTzX(
      zT0@hFbR;t6?o(sMm6Nbp`qA9QoM{=?l>}!~BAWh^>!I>(lZ^98CVsc~h7i6q<1CTe
      z$|cwSZ#M3`iV&iK)-u~lMV`w%K!@<)R9z3SN?4r_N~o6ylT-aSnz+e*@Ojv&*>pW-
      z&0|Y|Gc0R-8?o;Em;3j=BJ8i7AnN}><F(K01n0k@{iVQMWLbAFNn(K#gmi#QY+GVJ
      zM)SVHr_-+DS`p(qZcJmW@k#9S{LfCpaaEm#Ou-RNyi*R3b9S$8;WnQw)>d!_ci|>#
      I1zmW50AjE8MgRZ+
      
      literal 0
      HcmV?d00001
      
      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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
      Z7~7+4A7^`v?Qym*uziB<8n#cu{6BtqZm$3U
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GSyL2O7(JJ17-(AsWKk4FM8yGVqj8C2jL4!GKm!Otl8|Pml`%s%_Vl1+U(CKo
      zU$l~Es`8X*)le0yvOHyZPVxh?Rpl|;Ys|UbJ;MwJ6N{qn^zCms-}#n%zxn%<PXXM8
      z%V87=Y&mPp7#H-^`Gj>wpH3R5^(oUel6s$f4%oJP!m!MfJz*&SCOcuI5;6U-d@jfe
      zlqRf{YgjQ;pt<+|Ifx3ZYBEwO({U5FmFi5SjESTf7Z9gt??5b>uoCV;fl%|dVF9JX
      zj+-i$V`UgC1XfBPdeUGB9Z4F|P>u?Lnz)%tIA**(Yj)5z+;qw_a;gmUs3D9}>h~rr
      zvp+pGVLC(7tw3e39W#={hLe!*!Dh(;4}^*kR%@t%N+9lJf(A=tj%m2$Nnl@L#K$`9
      zscG9XEjPODRw{BIPxeG5pn46(C{g)qwLn=ctIF2`-8`cd^T<vnrSr8*J0F&?n>1`h
      zV;EZms`K-5ESo(Qo6)Rc8zS_1#&ky#R@^?{X~t~Fkck;|XC*z%LXSk*s$o0YC>mf`
      zEKX|b7D38-ipo5Sm_U&;El^t+UrtD1S=!14C|%yIVYhTym)pO^sf={5hMi~>STXI`
      z(=4jlj!BjWp>Oi>=o6-4rSua8U%O_!Jb6?_HSEJZD(=O7VX*Mldo{MCmWD%UXC;xd
      ztj&I7ivFsa{k;3-Ip{iUv}h?hm;v_Ot>mic!jUk#1<Dty+E>$X6ijl7c`j`vNo{oy
      zidXo@C(fEN7TGBY`F;((=wodV&Y+!kWG5B^3B*aiIU~^E(SI9G1hg!Xepr>hhUYp6
      zDvUvaz4>Le^gL<u=1aFjiVoXO+;mh7;G}FSR>gtBlDPvbEGk*S4{8_%=SEq|bba&8
      zU!l<n&#Uf#rCJyd3GBWT@IwhVY0BxSVhoQ+=xt#<DzN8HjL1UoHD>L!t704z(h6H*
      ze<9ZYA|Qt(2;bCj8fX0QedD>wpd061-QVjoEaQyn1Ud-~XYm;Og%!i^Cda0XO<-M6
      zzu7b5Sl-vDiYeG(SeyX)QRmBOn3lt&f_8J$uES1SZWvCW=C?*}N_RPq?Uce5Xc{pa
      zQj>N%8E=?0X3PeoA!b`HdsISeFp?a)@mUq;Fe8aOzeGn2ml5TxhR5*)M}GG}dtcXh
      z$MOE5uKuC%-uBV10q*8ia}Pa8USw=fX?PmXaNZel9z~I$-z0~*SfY8VK~wd}(N^YW
      z>w`_<$z&P)|LK$vUeIt6FS7sg3FN?R?g{2fAsVUjvW8diDhGvQPT4cep+aFoDoS$F
      z))ipM&lHbfk>Ec^jOq`K?t~onRg3NdZ8Fsa)MHtu<DIuAhf(?Bj%F=+Te<4wbj(@u
      zOOS^Vx#ex72&z2zfb!MyMCMK@|H`<_1Hikj2tI*|N|Awf6=7u#O6WQ&Kjvl;s`xCS
      zC~y+h-VXT213FOO#Z`VSj?ANWK}Dr1LSNC+*Pfc@3t^2!Lhp508yM)Oq%=@<4eP$d
      z@*5DN^H_f!>-heW=TJgeA!7-Bi;~cHC=Y#~XR`_$&_D^nh#Lc&CT+^tYa=c5*wpel
      zHutq=u=NT`BdzmjS%6tXY7qJX#i1XehJHdt=x5Y~e(}sV_$C6#GzOiHm_Xi*cJPuX
      zVe=eZ>~gWUT@u5d#V&uN%ip1e{-Dc0>GH4Jx-3Rz&LvOIz~yB^P#EP7>0y6M1_%0D
      zD-UPTc?BEzc8p>7Z}-Ap7TM0Q=NLZMT?<$mWj)YDF>j!%QiN5Cg0)I98kG`6lv3!5
      z>fws`esWaoKtGOqRBXWsJU|?4Styc}5P$R95+MALdNL13TW(-rRLo;2gOM8;8zta}
      z`?xti%6u3Z#IK?9Dr$*(GK1s?vJB3RR;K2W{!H$*Uc&_?gC`e|N0<gE)zFk0R4cXE
      zsI0+O{_j@m5LMRUkW!CMu1A#hdCVToMR3$Z%c+K4coxqQb&<UL1h_BpO){&uuqQ?&
      z0$D#vC4O)YYg+3wc>W8FUBNQ>^QAec7ehDe-@p0m0z9ACW)i!N#70o1v|@wOh9*TP
      z%m~_)oq5FSIaqoCOP;i^;dR2OKt0~Tn;x-m5mFJ}#yec=xHCYw?~;fyuJ3Uj=Xwe1
      EKa$oC6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6YflqF6g^Wa3(E=xii#puLFfw>-(mr^6{J|eq=E_YHEjo2vTSj83;I+11$;Jv
      zn)t!^!C>N#GTzxPLIWhtCiA+FJ?Gvt^XKpP9{_G)PC<a-#RlKzpLA!(u-5b~ldtNV
      z!sVtuFUNe*E}LeW+e_KO`h%Btc}v*t=gc~{*2FBgN~W+C1Q{kzBrI^pDC%iB9#42`
      z3WjEP-EaoS7-G2-nNEk6qM!-GGTbSKWVGR^*fK*fQ!a^CFtlknhh`N`IIlrL`{|iZ
      zXOfbcI&y|37Al(sVZY)9Q!sSp%0+H2bK8)6|1c=oG0ZoLvXQbA|MsoAelQHw>Yx_{
      zw;a8`)YIF-atXAG3%I1<B16Bd^x3`|dU2U3t_k-r(*oZlis5LjNxDfY(DSZMB1*NO
      zkD+(&f2&6gXT}yH?~+K!uA(0i1=kot-d~S}YPgOY)J*ZQ!cD4Dk59sLSuAXbBEepf
      zum?5V#1OTOAT5ZUWo}kZ!0`hVL>W4dew8klO)83tVZ=2gkYvybwKG3WQ#7{HicyRy
      z&>4msRG~&!>Na(vo-G6Oa^2N%5BH_nD%yfOB3*Iavc(W@L<yd6O2tDwQZUXCZ2*%O
      zqalR}>YO9o<2@kZM^|FYlH`<z#~!efI1WtSgr^$15heyy+K319Y>AKtgHnSG-8E0I
      zXMU~8sOHNRyC`N1c{6(I-;$;5sN_R^$Xb@LGbVQ&LG2%?cRQ3`-IId|UEU^o&sZoV
      zZ!oO_bfTbz##Y*m(>_3RTRgE3HJ<ne?W^b1L8I!K7AY`?5bZSzB3E>xi)P}2u%G4^
      zdCK3cCaUP^x>Ci}FL+Jsfu9(jkMBWE{)Q6Vg_5iywvQ2cw1+zf2>YwrG*ZQb+G_Fu
      zeg5jmw2Kyr@W~OvA&<lgA$vnu-jZnFk<Q*DjSqyG(^!I_Poj_15c=o|D|uxIf0#U<
      WVcILi4EY7{9J4g5WMd?OEbtE)8Kp%4
      
      literal 0
      HcmV?d00001
      
      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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
      DPEaaN
      
      literal 0
      HcmV?d00001
      
      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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
      G&;1YaFMEst
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6*>2N76g|_V&4Qs&N(yZ$TY)q{&Az1+NT3uH7Aa7PHyn4MMy?&%F8lVt1H8gB
      z{{RS42_!y%k3yWW9VaOTAw`~<>pSP3d+u?5{`&R<z#+_L&?8X1Z#*y_>Hb5@xu-X6
      z<F39a1H;y@s%PEwT-&~3IP%uz4AQG*Hw@o0^@@6SW()L9S&kJ<3#5t@a{}qAJ1_G{
      zA*Z1ieFFV8%aPZX78}yLX*6spFi>+%!=5udOP%9jI#{rLfl}>%d6osTrYDVnoCQu6
      zyDna-x{FQMkxo#a=z0-$p1izuxtxbUjz6<?L11&&jSeWLS&mP=Y*ljP?<MDy00j*j
      zF_<I%W(`{~ERgp@otxBIU`uzEwy2~uim?o~3Ji6MaiyK2VH>s!6z<7j*7d9>u9FP0
      zVt4|>#qO@-t9)0^Vkc|21Cy3N<4IW$3}>F!$YC6NGT1G!LDkl6gLbL7t}P8m!(J2x
      zdS}kp>K6qzh7ELOka`LGGuTINt59cs4F@nu@a9rbwJpx)hUYe=7d#f&8|fJVUT@r&
      zW>D@Z5l1Gd?I;dvG&U6&qylriZqZPYJYoOBq#YOh#vijxa_FAa1C_95$w_9argl=p
      zaSRHqkE1oq52PbKdUJHez}xdED^@8?X*h+`$(+^qM7Jje5-62>PQ$dSGZJ|?Ay$8A
      zG+T)RyW>IX4eIafEwQQ#9E)tFQS}rqXt;<9Nk(|9XOddoUGhvhW2q0Z@W;nLsiuY<
      z^lXa%9YBUVe#LxdcsjyWaP2KEBm0S)9_0DVa|Nc5#u=>PPK%PbuH`9*b?A=)4l`2$
      zWWPh)UdH;5+(#Iy1TfoiKZ^|*V2nn?V0`~IX{8w}mi8@UQ|SwazGCF+{(&8zvFj@)
      zqJVzwKr7JZILs!1J8Z@vs|E@%F@||MT81@C5pK+x6>yl<1#?H(_EEANW1q*kOEF4^
      z#Ef3WjK(|2h;Az3k$g|AWb*`BJf$|zFofsCe}P?i*}-N!VKW}H$<q1}n;|l5v7zT;
      zHq+#(X3?kgDYxrI6MDn$--h^wC@aD5<K%{kA?V3fvCgi<dPl7H|HMk;JSs6SJ;aWT
      UQ(Zaq4<SsqX#{52Mh`Ci2CSiXs{jB1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-BTM?6#rdFSO{BMASfw*RjVZp5DHpbQmcHF8swuwlZw_EZZ=D@bh8^b3)GL%
      z(Z9hLed`miZFSO)o$1sUo$;k_zWE2}ll=!Ae|Hl?z%pZIa_>3!obx;9{?57k+dn@&
      z1aJl)YiJQTwIR3U&17ZUatg_^E!UGJ)0cK~L9HuhS$fiUy-Zp|=xNS5S+R`dlv<md
      z1==mA;!DRc1>*DnGet_E?Skc4{zZY-!FX06H0|ci2wKspLqog3(Rs@;7dJ~e)4M8j
      zHqm?LT|?Sg=~+szABOy*Rbdf^XG-79qy^3m?yF*M+AWn`$8`MEQ_5=?GwD<Zm_tVx
      zZ4pYH0v*O~s6hW=paS8tv>abxq?R}-xBcX0PnL_8QAr&Z7SC#kF`ptVh*&lavRJT5
      zLO(hqcn&XUcwXRmGo>r4cNyQZE#ERLI$p#}#2_oirp@c89mn)0$%Mevp)3Ry?N3=}
      z=D=YDFXN<!R|L8nRqozP$E$dav=>Z&+O=JeRSeeX4M2jkR67O*qK#o0S$93N;JKSl
      zK7!L2(vT47YrbA4y&xS~Fg*o7EO4^Us7+#$OSuhF)LiOrmgK%HIceOeWzld(;F;zG
      zbB$sm7{$1b*YSox7jLoTSsW4RTdos~WV(ZGcvHtYoad|-O{-93i$z+IlG1SjZ}Ik(
      z#_fBXdS5Fmo>d5M>v%^Yh?`2A(lH%qpDOK=j#;IJx2?QiRKV}*NMnw`c~5Su`4`Xz
      z)BMG=$~>=QAuz97wyoxcxCMdUy^ij-hwn=m{If67J!@mcXbxB8mYEkgwr8%@Ezn|+
      zwiaWI@qAea2ERd|!YEn!$*KB2BM@0}H$B6gwbX0vJNQ`{QH{U}KCM=Ml<2Kq8l_gs
      zeDPd6sEu<M+{35uA##U83v{j#?!XK}xP&8=^qLd80*DSA#j!fTEIk!K^e(!8#gPXP
      ztM}0R1G=f-=6MaTD=6X$qu*!baua40QS{M|lY?h#nBp=0RB=xppr2^R7l(%LW8hk%
      ziW3u|o>TV`p9uGisI6`2XN-OaedrNJC$t@e?!>ez#=gh(;U94}Y@cmU#KKifB&c5G
      zf3mNAEtIb-Gi!~LDlR8tZ3i3=x>fPs4pw<eU=_LcAM|>}r1DwYkIBR;Ca@^CW}U!^
      zScuv88juZ0$+J%;Nna;P1q`6bsoX#uH!y}0d*>pBPdMWq=ePnJo0PWjEk467e2yJ_
      zfk*ffzu+tUg|G29z6ppgqf?PvZ>EwKu@p4%39c}23$y;oMlG{xQT%}wT;(7P;CEyw
      pg;~R6WGS^FNsnvzfb%qthjnS1k*hdQj9aYg!$1=FC>Vw7{{qwqxGw+z
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5TTc@~7(LTg3d;)RDqcX83cVnUccJJ5L?fo43EC(z(P=xtl4Xm#ThJfj5AYZG
      zY$BNWV0<(2M;Xs-ms>1JUuNc;`7Y<2@0&k=fBXb+0}qmj3CwQF9r?lXcWrmw+IHlc
      zwWR{-SW9|caqOz{UM{9X>$z9kR$lP2X#0V3m6t@KS$tXgcEy_4>tXys=)#6{*VPm0
      zRvqODv;`ZspPm*NFSY`sz=%29wS$KO*-UF8*^)qFp;lEL5a={<25ko7IBOz_uI6c)
      z5Gd$0-9_6~%k{0Y@?OZYqXc@3wTg5~(zCT4T_!Xsfw`9OHCL8IyS5{>8<Gi(H3(Z}
      zC0*Y-Dd?je<p#uPU=Tw|oD&$)dY<lU;yf;p(Ygu_GA+w3GV0G{L)@0bMp-L?$FV51
      z<B~w?X``D{w*T06991<ig3%-{^C>KLEW*SUTxGM=`?_?f#Xy8Tba__ZR28CK)o9Zu
      zu3?;=A(CaaTar%wKNL|w5*dM>qf+y=nnNu*ki%pWd4Y5*Gi2gArUcBjkVAu#fFPI&
      zOq=``H~Cm@q>j+UGa73gw@vh+pUy-$+ED5AX3(uH(05GC2rqkUtkmjWMNvjQLnnUP
      zl;%JLi!MLdf+KxjY5ki1KZ+~}3lOQ4o@<_BNN}#(dEY^6hIWj5XD+`7BbWaU^K0nT
      z&D98>iVR#tinhrhx}pcY+zB21QJPQm)Mf7F_c73WaUa8<k>Ppl7bcb_f1@k+4Muzq
      z*)JH>$H{$Iq1CQS-a0BdLTo^ZrCu@lYYbr(V|YW+-{LObg)l}Nr6L$CiaUJcU}Bi(
      V`yrzlW{F`I1?~pl1V>;FiGR58Kx+U1
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E-ES0C6#w1*q{|cvWubf&MXR>k%1V)<6cM&iy09&!yR=FbnC?!yL#H!kW|j|4
      zG!dflE5Sq)i!t#dT21r;ETxc0crYaTKw`ohFTVQ^_@w^sOuKBQDr|CR&%Ni|-#Pc3
      z-#NehdF?uYO*j!nKw#%_^`v?_>73Hdk>t3c4kyPnS2dE|@|ztubhlSEwcYwjy`b3*
      z-su5T%UPv-F;#M1%Zwr<P+N(z&sPY9GJ8660wOI?-C>!ItD0`VYLv7f1AsudFTJ-b
      zCpSVMlD7=Yb_A9UW+YltJ>@1l<XO8wRYAA4ysKL#4c(&dG(07+(X+eX*ohL^uA92M
      zL!h<s!LFv8`uUm;tDsde>=g=@U}+3NtW;2gRRY1rrhchet)Lo_DAo!rng0f<tyi!Z
      zionv0ZfZTHu_4XQsY8Y)usmbsRij_Eb-ABC49Ry2q#h{Lg(}3C2bn)+(b3$LWwVe1
      z>*uFn$U9E@+IIO|F(j~dp6~fKj9Pa(t$fMJ+3HEncKoL>6^B{baaA{6ft9`&ua<jl
      zb-bwO9imsE1skJyQlO=hIR8gK1xc{(Rn8nO1?uKSxUWpu_81f1s$esoCizDAZZ$tT
      zVp}D%z`z@uylWK{i=hqAM6p%iiT{cyV_BoS%tEK8848}oHl~Q!y|zB4+Gj{{*S3t^
      zsy&)5ss-zmK*Ox3c_j5neJI_hIabNeYYepw+Z8+~;o|qerOjbWT0E~{r?gmek42Y0
      zQZ%^S7*g0BMF)GR%)Ys-E7*fhfkmW%=bt@WQ5(O{n)+qdx)h|bkEV1qpcmYt$M3XM
      zWfXKvRTWiT+MLS+3VLyn7lw7i=wq7-L>trm`FL3cIUMrwy4gYollG6a_yfaJwlBs2
      zUX0=efmM~2s4!7*7>x`<cY1BjakPS@(@P3o#t}AG>QF9spyz0|w=bRBb2P)?2M1Hq
      z;+O(;0gFDV%PS}#BCy!9b<K2Df6|B%X6Y_d=29sqi8F5NE<0D8;b1V>&jNwL6!)jO
      z@&d7}SKCfqw)dI^hv`Q7JOL$bnws5VsC)_Ay>@{Si-(zeIVQuX<BD(><t~6l+*eiX
      zV?5)C@pK$SKuwJtRosWTYOstqms1*`oy1#}Xugcv#1+I7>n@`%5&aQsE@RzAssdQg
      z?{e?r2|694Ba2|;c!=jKspoYDwt@drdW7x*gntwbvre|~Tv~~{a58e>bOnScLkK*E
      z$EjxrqHz|Y#oH4m_?-tPL-H|R_b?Rdr4v64fhHvUn}H1snK=^Gi7C`hq4}l=Q(6~H
      zOk-14N}(BS@r3XU+C3pMgB{ssX)ujl%|U6pmuvqtdid9O6aSn6GtpKz<ZR(Aoh
      zOBn2)MD!AlcJqYphAyBdxMLDKTk2c4g@SG2NhDT>;^ED0k$7YRYn$c$c%)T2iibnT
      z>O;puA^JHN7V+@v(Dl#%x_vGv>RTw>n8g13g(8eZ`&X#Dg?NK01KvUm?_dSqMLphQ
      z^55rtJ&&#UfV1L59K=U#sgKzh6BxxOtp2AsgU|39zQ9?0iMR0;t-q$#H$43o-}7vS
      z(oeXEpYa23VG6e~jXSu4-*6Sb;~M_JlnCOYP;kR5;46}>qI!-5lr#*pghkSG1V>m}
      z>D8BBMJLZA)SSf@=r~SpzKK@G7Gbf^^9=^22yT|`Zk6qRE!*8G+XcvJNgk6vz)VQ$
      JwUFO|zX4NOD_8&k
      
      literal 0
      HcmV?d00001
      
      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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
      EKWcOjZU6uP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4TW=Ck5dNlI7FKL47F(}vwOXi6*UO6u)dy*e7*G=g(+3|8%PE|??2=_E{w#gM
      z*u)>;k220#wk;))nC#BwoSARFGc$kw{`w8zDGCM_2;0ZvM0~UQL*=%uo+FN|t_*}@
      zRkf`392I;NuB?|0#AgLJMPJ$0Yb_^&3CVrss^AqNmM=62@sih)CSpiukU)~KR8g*c
      zKj=24|4B3*Nyt__TR08jEA2;z@t~vnghJ&%Sr!Q?+m|9>#)KF7OL^}~UbpAD(hZ6;
      z0M9S$<)R5fnm_w2fv`3Yim)=Scp#6&zzGi2iE2ro@FYK@%B+4x8O0QC5U!uMaj&D=
      z9f$wG#2RiHxJk%O_Mu*`3RkqHpTTY1;g`2%Q1Tp)Yj2HTZaIRd`k{F&?Xx#qVi;Iq
      z6xX}Q<S**Ag#WeH5iM_MV1uwbS!?cQMC47Z<G!Bl1489;+vlcoqr;|7P@4Aj?j*t<
      z5SFJed95^Mf?4whzAfJ<y+^s}&E3=Qz$TA0#(NKzjEN*mgT3dhiFIOUgwzi<7GSb8
      zSp)ls<0Y=Jl^F-IzRF%2i&%;Po^hlGNS%TXM_B&O_83E#0NzgIr*I8fKI1WCCCdN8
      zWHhnWZ0;vkE7`j&tEX5$+<Ck^!sZ3sVi;Cu<_)ItIfUI9r$)4r48Mhk44mQHM{H?o
      I+aaO+KY7&t=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-EPw`7(H&&rt7k<jBfmNgZ&gJouD9bGZleEC8VGZO&jcjJEt`)D0N1X!r*1#
      z6}Ui?xZnYJD8z9Z){7ObvSfds?Q_0!{Q38vpT7V+#2p(sft~mAqdaNHpM3qUeH_TQ
      z?V(C!(B3ukE9rS^uqU;8?KUP!Pks(Zi4AKS+>^22Z$C5h1Th6JP)v^exbZ-s)tgmB
      zhp5NC_LC<9_nNcA?j8zQ-Eg4hATaNsfMOYWEI6=HnNIZ|A00!r*z>h|IU0H@qQ^i9
      zEcL>^3=U=Fn>^dJj6s3U%sS7#G5sz?VImVlxj)imD>Pl#XmAqg?FF*0hDs*_!lkiT
      z1*)H@0dERaj^*GW+aQ`u|BhWfP$vRa9Y#YL_+KXEHpvaWd7L!|*HITJu~0W0nIeTa
      zkrCJYP!eB02uD$0J@?H6tepEW_f1o&)74r<-9W~%if!ByXwKSgN~G}Y2aZ1-HrT*C
      z|F5W4O&1wi+_6#OJjZMYISydHwfzI-*7hl!?@V)8<XldVb_sleDszV*Ud1IWakX$6
      zwT$K|^R&zaTud*&NrCI*!wg6@SjI|vE^viWj$~IaCOf*2>{>>~PGrh7)fcF)R=2*Q
      zR4;ym)2gqoEnBBportZZ0zc4kL|1WI=g}B<Cc1Vex`rER9kSvkBjdb=bw(DgY%t4V
      O6I)!%R3Xs7ZHT|V!tJvF
      
      literal 0
      HcmV?d00001
      
      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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
      Y*O3ODMH)r_DTn{*g&F)`t|rKT0aksi2LJ#7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3T`vPc6g^j~-LCqoZ(fK8Z6!8%5fu*_O)4dXHt{&S1|!?uW_MfluXt)g;s^Lq
      z;!azFAd<=bm^t^Hd+)rwK0X6j$3hYVgq0i75^XEIRo<1=aK)unmyvL-Lv7DwJ1QyZ
      zUR29T#D4<YB2<pGr|l;&A+e)873~sY*<6hfFZvhKL=34k29Y3)R+J}?nsr+SXTo+R
      zAye@k;nqZ;bl$&=N7pJO<SPH{vOqALK#E9K%Y?1$m%4+ZUvK!H^rFHKgddO9a=`>4
      z#m9LsAk6+oMHp!WenSS)UGZ9YS3JscPuH@g@IveO%j<rtt6$U0m`-B?le{C@iU^Bc
      zg+Gc2=BeKd99dF&VN>6~XiYB(OWb>mKNxIDFPm+WvrYEIelXvG@xZ|VOtvO_U>k81
      zFvL;12Vy_WSqdW<?GtP;QWF?Ypz{vK?m6ypXbGV7souaiGJHpRz<&KMqqSBdzuLjn
      b_YRJ^)srs6bPv_<fbp2YEOQX%x{C8}5jmi5
      
      literal 0
      HcmV?d00001
      
      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
      zcma)<&2Jk;6u{pkPMo-#rcK(UZTM)~0!e_nX(-U96cQ&Urb+r?C!tU%oAt!rWbF;R
      z>!v**aYW*X#1V-j5(hwqNFag4u@XllZX7sq;U7Rkytg0T_0Ho%Q9QeE-tWCPZ{E!8
      zJpAk1?*U*M-pxXnfbnhpu6{4??wQS6e%I2s@(t<fR(^$kD|OkBS;z=DL~40UN2P0<
      z+tTm^^vo~M6|M?6wXB#Z*p}_Am2OJcZaIdWMdgj9Qe{y<?`5-TdRGK=PfV^0$Q10V
      z%t1G38uUSb77hwH`CsPx;SdaE;jn;%epLFNm-jtt&;!F5s~=FlEuPK6030O;BLape
      z(!G=G{UG2N!M$Yqga%m{CfOtO)GJ_c*=)+yR%25-6@Al^0*01tL$}s-$E5dAnDOeS
      zE8w)6k90~gA=#SrR`mwjIx;aCgyd(p>^V3Ss4%KmtA&>9*^R{}%A{MdLqB7|5TZ$2
      zD=o+^y=8gsETy!^3qm~B5k^7@$BMq^3`1Jd(LLKK+K#L_cB@$xa3%~UGVWJIdOCBM
      zn<)*Rh6w=&(AIUwZ0OGYX`H)G%Vl(7c(NLMAoQ#Tc|!Y8dEU~E9RWFfEZ8_s+aitg
      z8qAQ!0E)}fu$xshKZB`?)fRMTr(D;o_8tMxYw&^sU_3(!z;r1wRZ_pC!K|Ww9*ZMZ
      zUovZT3;#XRzoNm*QN$Z{)5BRi7^{|=TQ*i*EC}N2FjtZHaDccf$lQVkuaLPxL>8pG
      z<Jr6IzE?F^qP|34F)&I*(KcGHuZP8f@9hX>wZr<d2J>WL40TFP-SEu2GR$p<-Zc$g
      zB)t;}z4Cq6la02TfWz3iBAcywoTjKoj)$^^Fr)G8#`;NFq#soSXDjMUa^yQKtwe3S
      zuEDKTg0M1Zu${VbfdoVB>}@Acz)=MaCX{mA2}Scdf<0xqtNW`bIhu}+<WQ&%mE4kJ
      zN_9JyaB``V)?D0cqM8XRX~S${wI|)tIu4{2)3fBibR}b<HJYHJ5=qkkppvwbSXmTj
      z5f?9RecbLrT^(lul|9u|%+X>hw>Dz|O?{lNz&K%1S^^2hkQhlI%$5B!r)bhXJs2Nj
      zXX&iSjN|g_#^bLG|8T$epKy=Ib_RR!2*TeSzHLATp8&?E_Tj+PcQA14D;V5|BVWU4
      z_;%cX8~f5X@hJWdAp*EhWZ)t`UxJgk3?D;@78ruZQ9?)QIGjQ$CJWAl&Mx447s+B{
      zy*{+&8yE>X0|P$#1U!lT0-l12&_v#U2k4pl1}4Ao?NLmDnLCL%dO|Y-o?+o<)9^M6
      zpJU<aG~8n0=UDhc8h)RJanEALd@&7w$ikOd_@y-bF$?3K&3IN4_9+X`v9J>M=PZo-
      zIpevI4tt-47g@NNhJR$?(*J{hV&T_V_-fkoFD$&m!mDZcHx|Cm!b-OPVBs4qtkm|O
      zEPRuN)1E~i3zu0qU14H`g)1zao@a5Ih1XbE@qCVj*I9TYHC1Akh2LP|^d2UPEc_-5
      zr`NN%!NRv$SQ+ze7JiF`m2B5o_-z(e!gg5r4ht&@dyj?RVPR#=AF!~_!pb~<#KM~_
      zta$!}g$))~680GjS6NsI`vD6}7FNRkfrYnNIK7jIhb&xUVa4;$44k10mU3b|fYJ1l
      z{FR0AuEW4%Y4~>)&SdCTh@Uwby2bb{eysZ~-p~9NFJ69&7d&hQ)WP)I?XcYmTPtiE
      PVcVn@!?OL4o87+wF2l>e
      
      literal 0
      HcmV?d00001
      
      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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
      QQOlc*nudSTVgvsDKk|lQ=>Px#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-sW-5PjRm#-`E6*3Y9*QCl#2EG<1WAQYk=ti5mQsw-(C*;M^o9z^iq5Aa8c
      zv!No=2xVbr-|oJbnK$|Tdj9}$f*lhDhVDIo<j<~plF_aE5b_&$B2pf@XF3k!IPCM}
      zYS74_7e^_Vkw|>0QbE~-!O)&l2)L4Cx3A-`!fdBCe&`IP^iHbAF~hz;r;=AkhbUbc
      z$+XANJXnx(IASoo_*#^~P_eOul7%8xY?xTh*U9Ukqjjo2^?yE{1R@#oAQTKWKOXaN
      z#1pCU?9kACG4vLz@E>=nS?e;MCS!3b^_S{@XL6(+W3UGiO~MPgQbL*7V%S^AN`}q+
      zp<<V8D$*~)97lVlcQDASWy)njZ4_t$m1gS|R<rd6`-NZuRf<-2bwNZQ4q=-}^b~8T
      TWpC<PT*n4wi|(ilY{U2l)||GV
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g{^sU0Ih>DOPJMiWcbyvY_IFCB#5AsVPb#5_sIU)4JO3n%yn<w@j2K
      zn)n0oUHt+2H;i|d(hsN!KJ4thGjq<lbMDO1pU+<bEaRbq0O8RaW8ZkMy9cJ#(BCzU
      zy516=(bPBPxNY0bb;Eg8O8aTiuD<1MWz+S9B^(7I!pa$Z#c<84zAnc;{uGoD_FkKA
      zdWkS!KEp7of&xQUP0RGw2#+)8#0+hF)~%+H-64cF?3x${;i85ygjEDFp+P}pH2bJC
      z75>dWSvD>4yxpn@XWOVW1!1aeSB>V5;g~Y-PKKlhgw-LU|LXzULLMPLMA17bL2KD<
      zS8O@Lbw!OZbL^aM9C*6e7nY}Q%JnBQWM8BWS2bKlT){O$M0UpCyJee}ry_+J1=k6Q
      z-oj}T4L5L;?QIBemk`WkOA>WU!|jvlJrxPeNw4n^#xkXnl+7TgAWN7#*Im$%#{yx(
      z6<*OX8ZYW~jtH@V!}$gKohEia>Dx2<)F&QEriQ3V3zjwLh!fP8cH60nr>5*+Z1_bi
      z%1RkqviK!zG!6EbTRA=IonV&lS&-ixMWgbvaTMek1s8Z6=d8%NT-S2>Pf&CDg$}e2
      zoCh$;qso8a8zYYp<tXmw8ZKdqGe#kXX`Un5w=Ux@@0O@kF5khG+()Qikl4!~BFW!u
      z2kAr1_Z1?(`gg|sKoUO(R8l>a6z*b?*-2W{Ras*VsS=hdOMSlMihnWR?*XoGk1O2e
      U3g8~21GtX|{8xSU3|0{O3lGI2AOHXW
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O-lnY6r8lHYqzVdt@Yz5RMZw+y$DkE(1K8?B3gTuY>gV(Zc27r^=Eky!Gk}*
      zA0@slib(fR0xy{)GkI@bKEK{S0PJDSMuwsBz{mW_iymco=M4jX>kUNA1Mk$tu2Mmh
      z>#KG(ffp(W)L7__jA9WAZNp;NpAhhQB>P^|#6N*^t%gF!&%a!T+4x>Y)m?_o&V)o-
      z4h^Cl%239~47IH(Iomx3tEFy44h(r0GnjRd#k>m}3+Xy(={Jl{p(8_aHX8Uscex)3
      zhEhlMdC=op8vL_qnYtK`rpqwhS*q2!R3qINC(=Ar{@;!rV;F<m4yg;RfJc#tY^*SB
      zOywj)CAFVeCzG=DIasl1oH8p|<kTF^IYI}>&;ata`YW7T{SEF5!3+u%o#e<T;x&qd
      ZT_Vv{ETWX$DJO9W6`CD7V_3#2tZxf<wDSM}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7G+fx%)82_CR35lDkh{1~13#dSlh_)(Xse)BwgIEQu_PR-yuo`yb?gq5?+V-{Y
      zw(sp@b*3YX&UEUF5B+c2X{T?U{?1;)=AulQVb9t9&iDPk@Aq9!e*gFJuK-5yZ442C
      z{WsMm^-jiK){Ro8QdZ|Pi<+aBGgI<8W18g&)tb%55N&lduiAPcGa;X~qXJ67G@P7n
      zJDQ<c0{e0jBBL%l8Er{3oXjM}s!myOW=vqSWtPk4(%LtHUQaKtsfL}oY?&3!a_&wp
      zs76T(DYl=|4c!?RXzL%C6NpZlMJ<6gBo)Mw5ZII>(xvKRUbAM@d|4Cd%$WtXJf~W^
      zeD^;_odw+%IOt-oO9vh9C|H{6XtP;?6a95s7bnfdifJ&?v4J{)%Wh3Ln;lC)ASn<p
      z1PTJ%>oh{91X3R2l_sM0_j@>*b*Sq03^dU%&=**EaguxkmrNsYV#2hFGRM1o0|9e+
      z_j|?@GtO7ACx+e3>5Hn(J8di2i=7O&q&c#v@~SmabsW<Ou#&dsoVC=_^!z+`0$V-$
      z-2%I8>XP=kIGNqA-~bK^B#JzIO*e|>vcQo#e%*|;D&jr~;OWr&0i<IX6gb@E{W`h|
      zhS19d)6c+LQDL#WPJ|p5*yiQttXa6lMhxm(pud4wuY;z{s;y;>O10KzV=){NIN9W2
      zt7h(Vd%FQjGWM#1*KkZA=6HS2B-GJ$(Qk56GJ+Gb!A1p6*H`~@N61)fQ?hB}x?ywL
      zlw~vZ)SC-+z`&gB>(>>W1fzXJper10;9CdIu*H2xhjlxs)C4B+W(;RZby#gSJEa<G
      zNwXB3!+919t8RkPbLjA-Us+|&oXm9ordD8W-AG^@Sp^sImcT}4HbCI;>AxYv5e0#W
      zlc%(5)FP9<UsiAloE`1eN|CceU^rB|=Pk9epcm{0o@(=gRh_^L=3<!ToC?R#NO{gQ
      zZ=ErU=QORX;2PfH5M)%7Rm<W`npw~mi5$#~pkW(rxW`EI4S~JS!J00RB==kg-eXZu
      zX-1Wo#c;_|i#m}c;~yya5Fc?k(*c14t@!kMAxv=sc@$$Hi>Wa5S}7>dFwYUJ+tU^G
      zc9r39_%kngEGW=%lOp0>(~Hi6E6Pd{xmc8<I7JsUy|h3FP27%w4f(tf-A0*p^fHH%
      z1>O(I3NJ2)sd6I}IMgbES@{<V>#Ae1r``MsR23}YiogcflB|k53f`7qM2WM^Q<G!3
      zRu3%7t7g?IXy<f!eQmA3nTI7symPY#FVxAhYTKF}!xsXl!rV2bH@MinS<vE2NVzag
      zf*9@zjQtPOL3gZ;v~8~C=I>qZ_lB{=yMQU=@0AFm*noEKqKKh`tGqpV#q+t5Z%4Tb
      zt{VndpgiOzf|uMw5k8lww2V#MDc&J$#umQC(TT0Tfg{wA20ETVTwg)g1MWQ=?e6z`
      zA^i?)LyGb!y0P8YAL1(YBcf6ByO3tYM~>oU>{wUx`<9wL*y(Ey`<T&H>}o{)F{B%<
      zq3%PkubX3ZlAFzgzo73KHp(Ua2>ol^z2p-AGwFUnTMu1(DNo0@M{OK}^dgE34*Qmm
      z^G!05e1ehdgS2~e1;-oRdmM5v>6_yPhB4oWP9T~0p274APNkn>{64m%f5Z6HQ0M7Y
      zOgzGcHBVD44d4$x|73>$Vs8H?yZ^Wldpt8Wk9&|~?gY=oF@<A<5ppW~u$m9s?I9*T
      z#5STyKc*WX1@B7H21P`%MYJO&Vj;-x8f3Q*snEdyk}dB;{y>6dq@%02`V`miW2p1p
      zRlNTUeM66+-bYuut&O`9|8GU5$QVp>@BD-~H!E0Pb83+70I>sc(L;xJVY}GP-yeI>
      zC-&k1_XDDrKNAk(gct}pI$Cpd6nF74-J&zD%d$c~;adcs;xn#0=;-H^f5{Ag#r12h
      JBV4~h^gk?*3f}+#
      
      literal 0
      HcmV?d00001
      
      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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
      HB75yWxv{?8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL+fEZf82)BkyRfWfsR;Fi94hpnT~I`m8og-1U}`mK?S+XK(=x)6?Y8c2K_11&
      zFwv5D;RE<k#(%ckQi2T)7oF`t`48XWpFe+p{RXgs=PDG2%|m{~znb2$<?Nenn}0T&
      z!soX6R-RQ?h!4A|lI4hse`1T0<@v%9u8JswAuCOrQ{B7zp=kIjVhl^cZC!B3GvB+d
      zws8HE;sGTMiWy@5f#s#v8B(Rorxz&yh2>cOONO=dI0cy+L$ui16O&-Lu0zFyh6tv0
      zOu}G@q-DaiBvtM->%y(_x-A$IrB;L6HSSt64lkn;D#O+ob1%w7(BtiM8ZfN%D473K
      zX!}Swej!uSki=~jw-^>isu|?!xP!aIWncJxt;@VgTxQdm0CCTritm!Ug$XQB?i*=p
      z-tJqfVG+wJmd^RvE6}lm6sa%1bhu3-+zg=)SzgF|lwenNtRc-XML^2pxW?_y1rWU*
      zDQL*zp^6;C^5x#^c!WG*-V+V7bFhXZppdJK#xC}lj~1BW(^z|SHP5Ae3{T{;X$)GW
      z)o~kQ$C4Xn3_Ys6WY3`QI`p23HupS163+}c_MaNrLn}+aYhZ>UcbOh<1d41=w^I~t
      zQl!vV%jSMU&z>UwogxJ@bjBzLc!dO=dhlPv4a`zRB4RG=Pz^gIb6w0Q?sakh8{*j?
      z&?$b<MdqwuoMr>t)N2Rxcpdbe3#KQ-zMy?Du})|~7&pQRtCS-vW7*s(9-s9a#wR%_
      S#73S^u|;3WkkP_CgYpj(NipmI
      
      literal 0
      HcmV?d00001
      
      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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
      A!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmcIo3wRt=75?w;?CvDpHrX_#4QVNTlJv2$4@%n<N}gmPO=@<Vc4?(db|=ZUlbx_T
      zn?6LTAS!4T<ylk&tD-1c0yKp{D~MW3t)KdVJVX(p;sdHwKYUR=ckb-YWV89yPm^Tk
      zo_pr}=iYlB_nh|FnMV%;Sb`HixEN+_QwEfsHR&CRWKT`MrgYczsfMD}w8vB>8R=E~
      zR39XUsxibG)ovxD8S6O4lxFbMx7IaW#xT2e6sAGf^wfq>hnm(ishC>JAg}KTt*h&Z
      zF0sj_Ho1(UINa3G-qt8Y><J0k6B3&eYO8CAggTqHl60h_y>)A(X;XwWt%+%gWWu<J
      z!Ch6|$sjf8aXL~N!@2)%d&LN#+>a?Zi^03b(&DWOg+kSxMPQibhX-Cxo$ZHDP}BX8
      z1$B-eMS?olk77a1_G5ye=KA3m)O<fC!pl(7nn<c`nZ7PH6;Zl0m7%Ovk11NGl1lKo
      z$t;E&3;32w=p;sOBF!*ow3+igNOt!1s79O8M_S9Ps!c?VrjW<OMv5F?E8{)nIMe40
      zlS#HgPZ}v*i>Nz^B&RXVwQwV1CEuaNWQ^s0oDc3qQd6%fvF&s=A{*88c0=zs5nODg
      zAFHxr8+#K5ZLN~TLP;fNBnH&c8>pbK>(peXF_Gr>h&SsgwI`)#l5vI!^lg1A(Wj(#
      zQ6xELv=7IO0%amehSiv!j0@QjbCMo0C;6#LJl>E=8+u<8StOyRBf90D%Bm5T-w?8L
      zAzfSDDWi!_U7s-wJsIptDe;7wG<>*(p_E6Ruzh>iHZ?}v5Q*B{W=&TN@7kX%Gk=QF
      zf_2>CZRGH(Mjm+U(c!~;877$+WrtB?+SHFQDBwLCTS5_9yi_<j_qmowb0^odkvuH6
      zUSof)?kq+Wn|-)EyTy!=&}!;ZDP>pMk1co~<$#iIO{5Kmc~zSoAta7bYekg_<6^Yn
      zRwzDP$#9l4(`-BW(S;c0Wq*cruC%sfMx~{4%tf3+GAMEa4ZUh?d%eChXKWcg3>8^6
      zkDHL8_BlQ$=%AckucRDY3fA%ta+jXxI~jcp(;Z(5Xw)fX!!gPlZKTet$iHDN5m)Vn
      zylbD{$A9jWk)ai>uibhqlfJ}?78yI}T8rpCJ(@adGrQ>G4kZmWl~lCm6y<eLWKASt
      zXsWH@{S5OhY~0G4h_3VP)$1wRPd#O)NFf;?U^vH;HO7*;hAzEUrAyU<S#@?2%J>ik
      zR@S0jrhYRpWn5<;QPGS@idMD0Tu(_K?$;8=dL^ln(gALzW^M*c;G-l!`PQYzO$o|d
      zgEFZur7D)d4Rnz^1jM>6iJo3V<1b6<<Fqx0R9e+2^VGPEz2sHL2Se%Nx}A3U6vIr1
      zL?)R9JB2<?E+!#OrBF)5twnF<iwaW)N7&<5ip)q#Rf9rRLQe{JSh(96X7CIOn(@$}
      zY8pR}c^o0<!#;);&ZII6xA<t6*SWl+<TLrz`&mEMU}-V#09{mfk>ADE$68Lt-9jeM
      z3qo~>3}U2x_+s`J<CltH7ULd#iC;NirUJz4CKXN@_fil!3~C6I3xtfXk-6=N(35IJ
      z&%}B~V5Zyqm8&vp5x$Q5efS2Yy?t%glcA|&@#CBL7Tto)b*<qhvcKaBu_UP0JwQc)
      z2Wn6^^~rdUGB@j~M7o1ASRYVRe4U5=ILH-Bk&X>bG7jZk4?NkqsEkLQmypeVjI3g1
      zmCZcNP-G>_hLDVJ(~W96GiY{ULGH|;S;K>7U*!;ek_u9ux)9|=WLLi`<0(3~&f7Ms
      zy>Zc(rFp_S1I505sVQ*9mhcx<Jy(oMoh!DSzs~2amD!&)CwLoDVz+`pt_rg#gxu6Z
      z%9zF*Afl%6_QxEl`7uXoeaw*>A9JL(#~i8YF-K~7Xe=Qelju!XG0mPQZT#n!VFaS3
      z%lPjQCO?R&<~$a_wE-M4ITf4}!2SRZ1#sMCRSFi(e;B~)CToU?+a17-0qiq5Ge--}
      z60ElZ;D4sn9KqU0s4Q^a1GFy}&ZGANYUY4i+VRDhjV9`KE~OgXj>{22AJx!3RQ7Jd
      z6}TBIP-UV(=cA6zI%N%wjQE}fL#VdZdQGN)_=Nx#Vi5^4EJl#t+(e6M<Y0GM%>f$3
      zjs&#ZTungTIp`8BwV?L82eB+4tUJJ-9C$@R@CEtc9R<Owb6~!CzG-O?^YXEK99Sv0
      zaP5DDy`cbB;=QMJV#m5u^Vhw#AeL^$(b$T7>|F)17Z$=+=40<Ih`p!~c1Aw-Ktb%<
      zLfD!4*hdOtFD`_gm5+V0Ahxa$c1}L_SOF|UJsO0aeWjF5K1zoAg=LNM<7ke$htU!(
      z$E8DP4M!zDnPie4k(4h7@J0ZqDNn;uFJ}#+eFz)EQJ?s3=YRMRHXXzj8yA+v$4hbd
      zcq#6+6_*q=ME2CC2?BUg{Fzp<4B=qq46)5t`~S7DHeQO8<E6NN48`S0Im7K}02Fa=
      z|5xE=jGyX(F;xH0DYA2X6pNg+jkr!Q?8@3E7{{rKi$cDdQl6Lg9|!Pi0H?_CtF6qp
      z1A4W0VcG5qNhJ5xi^cdsYuuClaBYQ0eEIMqF@D4vKQ@R8!MV}me4@fD7@r)(96{YQ
      zh?#==OjhA7Ioxf-xFfpYAnqK(=Y-JbM{&L|jC-O!kJmed{X*s|oa6DhOKsLy2XUYH
      zcpyg&4&ouf8_H3S<f!2s^?2D4A@)SscQ}!2C0G)hsoFkEJ=$~hUr^6sIev-`nn$U_
      z+JYD8U)?WYFJ7eX_IV8AB|MCuVVItic$rCfiA})I*(CgemD6(pUSXSQ-i2Q>6|b`G
      z^xTGDv4?0rjMvy<yw0AY=M+x5CgL?$IezV$iZ@&{=xM=kT-`M9!*5;v_?>Hjp8fc}
      z>j|14#hb2Y@RsXG^qj#d_jJ7Jo`XNQ=i`s=Mf7aM+wKg_uf}QjHTaYJdU_7v&+Zd6
      ze-?jnpTu9?@8EAz5&kY!;vdptyeqB18R;VYQ);Gmy`3>>6LU#dGPl&rBq_x_(r)IJ
      zu46uFFO#L)S&?)%E0*qK6Q%pvB<T>1kFgTz2rHG2(RhMQmR@1y(rGqTdY4V}_*jJ}
      zz|QtmvP#c9Hr-RhR(V#kHJ&<lp;_TtL>03-7^-LZF1`omKFPM=`_${Y-0!f<aFi&w
      hRK!-{X`&>llAVWRM0upeYzm$siuZEI&Cc!z{{j}0a7X|E
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      F!oN$7?|lFO
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      F@Gqf!?Y#g1
      
      literal 0
      HcmV?d00001
      
      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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
      E7ozy>sQ>@~
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      EUt1jTF8}}l
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_fYj0G?8GdH3_WA@9hz&Njx#K$<Fd@VX4#t>d$$G)yOE4wjus+}e>s@p9tT7at
      zeCoGKt*TZsjS?wp#g}|Yl*EKmMg36JiXTv^Rn<ySP%8BYB#M&IXXc!}dkv)sv7VjF
      zJJ02vcV_SZ@cYjJ?84hYcm%dw)aUhuaOR4cx)7dA>gU6=*`#fTN91SB%-G}6AbbMr
      zD&{$Z0^Y2d5m*zG6T(^BOok_ngq^k`0)hQz%CrYKr=xR1z&DhhHbU^CPD2niK|CX{
      zx_ns(8tQ7n5e<F>1nOgE%7|xY&l%R3elBUqz0wIiIiXvo{O)%8>=}t;o5Ha&AtI|u
      zScYyJ<57Wq9VJVS4y9-3(kUZlM><OelsNgp@n|GOkaZz6VM7qj0__zF6)TxeUm8qJ
      zA2E!ih8DC6)aDQn^h_y)ik&L8EkXA9kZFmnTNeylV12a^bZa(i5}=vN*m^Q4HQG=L
      zuz14>Y1lRm+p&YPnzmu-G+&^x!;#NPiKyEjsY3_4g6O1+1?O|48oJTLJV_Y~MEG1T
      zLQ-dL9y@oDX%z`#r$9@E)J498(2M6aY{nM3*KQ4c*dq{}(KB%smbo}3AQIf5NY@+$
      z=7vYIZ!3|f!Vx;3P2~lWTShdzge?@9>W)Wg>gJBl(<=v&x%0AygBTPD@f3}v2Q5p#
      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
      Dx>m4J
      
      literal 0
      HcmV?d00001
      
      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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
      EAAE&qZvX%Q
      
      literal 0
      HcmV?d00001
      
      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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
      B=E(p6
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      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
      E3kc=y*#H0l
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      C7wh=|
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Aod5s;
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Avj6}9
      
      literal 0
      HcmV?d00001
      
      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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
      Cob2@g
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb_gYitzP75?t*de^KcKp+Mi%o~I4wb>9Th28Kl#=sKW;bns%kPP;K2iCjpK6oY}
      zNz-SVzLN&il29t4R{7DYiGk3hQKkMUYE`LKA5zpbQ4{s~t5wxjO5=X_&g|^V_Bu2|
      z?B1Pw@44T1zH`n!<6G~)@*04ZxZ;N<u=u!f(l{MTowDM`LPIg*XlO7KOIx8%`MK9T
      zo$ikM;T4!&vd*3q@MNr%z>E&LAe2d4u~3iMmrf)j0=|2#xRu_(H4TkD0^YVnzZrlB
      zRXY5r^y3bJ>BZXu&`~u7oY7GMpTM*ZD{gjW29KD@y~dH4DbGsu8L=KCY02NtLvMOO
      z;#jJ1OiYN#D*KYAkv6-d0&5!zw(Mw23=SpYW;`8fESONvaVNW@kpMwf1yGB*e#{YA
      zUgDuVPj(~{CtBnETTL^jqYm=~reqNi^gtnml9Nh(TYzlxkSR&pNFFoO0yX2Apjv|&
      zivX>7Ds9AK(noU(0p=grBL!QkqaMrXRx52L4T>)?tHE}k9THLJd87&rX!4_xD&~~W
      z&guxFnQ;<l+zH&3wGcBHoA)0%&ajI3u|lA(#MODa1ki%Jbu7YSdDcBTR$;Y(f51p}
      zDYJ~l0|KIt2juxR3xTnrN%r##+*6_mmCwXo2gxHNI@Vz^9Zc_bM=9!}hQ@;v8<DZI
      zQO72<3Iv!%dlRk6q;W=ImF@0=Y$|6=#&jZ{HV8^!-ne>2qm2h7+;$zC(MCU<=6@<I
      zc&smJrkM8pK?nIVL;cJUffWuI<5W7dEolr5SbeET0kNWRXhD~b`_Mr<#{_2DPA=Fj
      zP%%WHX$fSHj$Lx?boy;)(mZM=lV<-O>um1iY%=E`lQX)-8Z_f6D-mZtwqT!*z36tO
      zm8a$w2u$T6ovcZNnL&Ak+;LDxuiT-gjMMp3hjlz4r{-{1YhRz4N?EKoZ39-UKWWC>
      z5}7!CH9=}brTrs19>hZo_fjJQk@0oP79Ybo*os-{Goc&|Mfa$VKJ?SkjM#;aCgW~k
      z%nq^u$Mz<AEb~-J;Y%|+LOWztcatd+b#hqxaW~VCi5N4PB7yePedbV_UQhWkC{UlD
      zkjl_zqhD5Oxx`&7OMgO#h2u=JG!t-9K^Tn%fW>Gi!GLyBwHQZjfdQ4Jk^qad!2Uwt
      zj%7VsuwAX#nMhd@^wQ0ik#cT;P~owX#wkf7!%}sG%W}TAuhB6K(f23m^u38rser)h
      z^57IUb@a{zb0yNqaPr_09cOWliZk@IA%09RUMJA~!HpMIsxb)Ir+-|Y{y0U6B`BXi
      zkx5H8QOL6U1!|c9vI6&5sf-cJ`gv<I!T32=9&uT%qGd7I96qb#Q}{IRw|*<hkfzoY
      zr{5Sfj+wg|->f^!CV?i}$cxW|FX;Fjo@PDcRhgt39y88#JUSTz<zlbgyba*162O<q
      zMgg$Z@DqeR(&_W|ev23KeHPJeERQQ&cJd<GHNcYN!LW|6;W^&HrTB6S=~14%JCUH;
      zveblc>tMN8o%y_uuj3nRLQBt7Ygmx>Br?f9bE_r$!|8d=>k3(!u!yaihg~ldRyLI!
      z&El9nC_kt0*JjQNeot?@hCtIz=)Ko4^<_-^9-nErlb=)7{x0s{iD|sCX7HJA@4-ym
      z#a~lUt*lCWJGffo_l%nmG&Q>;7<>uSny#bfyL@U}45$@{iQz$IZI-<Q^Ra+yDiOd!
      z+GVB_{bGJfyN_{=m)}d9Xl?{cI<I0z^9?K)cpWWWEx{3l_;aPe@aSK2*ykw5$7%Bf
      zsxU~Lam?X(35L|kO}0&k2d(2H#K4AvooYSS@XTs@?W0($yu>bN(rCitqB%?J=ZNMJ
      z+J2O1&JoRHw}Iwftas4d!*8i!rS#2pY{+@qr=CBRr&*=LRmdjD+5axR;OG8bo;6;_
      zz2S=53gylVSSd%gpToXdU$Ac82)3;8UPaAV6Z@Qf!=vw1dtancTk<A~3S6QapJ(t~
      zX1H9TGrxsqTtx`qMg-r%7LL2{q5`{{P9h*zm|c!A^4V5wQvtIJ+d1;^Ul*bbJTEP`
      zE7>Y&JD_Cq(ee~$BxGymP=1=bDtN+jhi}(aRJXV^y|vz8^9VZmL`Bq}iX-Ye;oYEy
      zH%a6Nn8)!lyrzJ!w#~Z0m*alsjZ|m3qM&i-0tM2;y?zDF%XxN!9|YR&aiRT$2izjG
      zpVIu#2<;Z3{rvxe#<tRd_G9{8daYe_X8mU4xPYcY?~R~`8Cv90KHTTxZq7xi9UO1c
      z`0pv(+w|QZSPR~vm;T82m_PG1<}V0y+=jm?A{$gzx4S-WcY;IXiYWHePJpt@{PoaI
      z*2k;dk&u1wZBRNe7Nr9dP<oG0{!1{Um?`*TB{bBF3N#2mR*6c4Ic^hy4~Y`{_1mCy
      zXe>&H#-}9a@J}am5fJl8X#puMB&8*!R8LCFNNEWvHGD{v`1Vjt$+Ny};2G=32s|T4
      zsjjFhiM6D(j+7##w4RhUkWwotwUN>mQfeiot&^Z6t5UhZ<2#E(>DLTSc^!9%u58U^
      z*>P&_3ORCWE-P`cZUiPv)a)@H?{hW{kG|Vdlu}|Jne9iFIDl&L02YZu{OiL*{5!)D
      ztQCFO#PJScDrVc&1<>K9REJw{J8(?ZTa6VqiUFdoLaRzHFR$lHRlq8EL1srnzU9yp
      zC&*0}wwSuUC&|_$?;XiDUcff@cp|nZ$@Uc4o*~<FWcx7Lo+sPK$@U4dJx{hzj>C2c
      zA0t+(fn*-r)EI2jtbjIKIg)HMC2ZXbRfH$JP(AjA+A@NZ;erb_ZzAtPt@RcQ{0uze
      zS?J<9%o4-=8_Y%0y@Zf>0TFQ-TR83#R}|&a3pGo5mqS@zt*3E@l<f;OHO7USX2{wX
      zsvHUVLdH+opSc2iHcS-GwvxPCAKs83&bh~V0?#W>)R!pm%M|z;1-?OnU!lOSlJO5I
      z@aq)#RSNv0aRh$U75KdBCGBvQ?L%=m7YoeSK8K?#YneXDR<D_|K2g{w<xS+tTGA(p
      zUr^RxQr2Hl*56Rp-;(4Tl=XL%^-aq924#J#tgKHeqEgmR;FGSb+a@6^-x7;sTHHy&
      zrO>^eHNLFE{#w6Nu-3_uDp;OyWo>1!uBF;rTQP#qtnpn%-FTDxoc+V2Z&mwpYKQsG
      z0r7V_;U9FuKk0;j(Fy;i+W$e2-*=1mSeoC*Mlp&leA(E}?+!le(KO|hqb$P&>K3zJ
      zcKddE_qws(>%_WT_Y_m!t9D37RnS#EEOpyRSVyNSb$&LKQ(5ZLEOQ%ihcgoL4cLi|
      zi?kric`)l6=5wxGI|YoL^XGHrx~QqtreTUU9lACHHQG!p<hV(zR)p+^C+HFix`cxG
      zqN-Os7+>PZLyZ<Y)wxF1WV=f7P1ynZeZrKzbtnsz0?n=Ux$03<w)nM5y|2jUssnzz
      z7;HVkE+g0mf^Ec7j#p^GypRmJU_&n0kP9~CfF%q(!<r+#AHuU7Rgl0kMZkv|`d|9o
      zPw0H}b_h(S3H5|!3qOJj`R$GSFxLwdH=$Y>nifGoTaTIAM$FeXp<Zi4gVv5!+E#=)
      zZqv5sX_DWB+CgSFp%<Ay#l1k9H0>r-j)Z)%zYR*4#-em-0!r+MwO&#>NJ@uD=`bl7
      aq|`@B{iI}&($Ps!dSMcjE>lMh-~1o1vY&qd
      
      literal 0
      HcmV?d00001
      
      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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
      A?EnA(
      
      literal 0
      HcmV?d00001
      
      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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
      AO#lD@
      
      literal 0
      HcmV?d00001
      
      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
      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
      ArT_o{
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{YflqV5Iwgq+HwV~P_0iu)V4?$6!AgjVQC4m(gX^@7=z1pg~igX+pR+U><9mg
      zAJj@nH1P-cql`0mtAd#LW#`;GGiT<Uz2AR)`37JNGac{=^l$60^j)p-+Ny18^{W0{
      zYwXqBEiGqPZKu3fH#-mz=;11@s#8sAW7{-bfoP$$l%HQJtt`$73>N=KGf5o}W^)gJ
      zb##~WYvuLB9Nx|0nqZ-nTUi!}Jeplw&(Wl^fLIU+8g{crEBLI6Kxf5l7>-qUExRTV
      zQ;T?;F1rqiqQT*;QMGE8J0;*xrd9<4IlE$p(Z?!m$J}&?uM&m8X^AsP2!yij`o83G
      z!qjSnO3z6I5enl13)77k9tmeINpx^#K%lE^?z(?QaQ3o9n6p>f*`vMJBqE$mk;;N?
      zG#lJ9ED=SB(TGGRBqL4Y1f)QB(W;q?&7BR?DeD_mlP$0fy}GJ97N6B+6n@-fX)$iS
      zCDDx@Mz<xpm?YqCSq%zoB@Ny*-39uo<Q176c5Tl{f!<{5xEmyY*={<9S+IC|*YAgu
      z;U|Fs8sn$;7D0mjB9vfvR3sl%B*iL{NEJyU#V8A;=;Iw#q^&6i$iI__5$`EFy;JN!
      z{wu`eSnmPiEu2;Oyuue1?pJtF;UR^uDx6d}9d6;ezlF?4HD;8)X&Mhq(BMh3ZI)!r
      zU<mUVK>?#EB8wHed4f4Qjj1kPjNVRrt*5lMkM0xc1Kdat?_)gu37LIN&^Pex$f!8^
      z0_;$`O)k|*<4YoP6m8ri!5!rcdv}-eg7n{`#XJWzih>w|>Cc#WuXbStA$9pi(MYeL
      aO(SUg`*g$h9c~`~@K^KOe>P94s_CBrk->Zb
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+;T~5M46b0aO5t&*=QT&Mu@YRV+z;>FDRBIUE)r_Pnq$$Q0)UEm80$7yc-X<pF
      zOOvm2a?aiSe*XZt!G%JLaJ6u2_o=IodHJH>3iqt5ud;sCR=&})tZG-*l|q})lc+8n
      z2eYR|KC21J+z)P36BB4i=>FxWu2|(eyh4N^9@-`&4hZ30HnHY0o0^gQ;S<!u$XIJ)
      zA<w8Ji#Q?VS_IalCK@+xu~lr6!6Y5?bDJ63<?4NwC-WjF^#5OdEeCg`M5+}ov5SsW
      l$Swl*p68Ig@A-h;^?b-a^4wz|dp=?JJ)iOl;jGy@-va$0JOBUy
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8B16g{)uQd*afQYy3vf_$~>$Hv4rjW111FpVZIslbEDb{)%-c9*n+z?%>L
      z93Ld1G4a74;EyuiJFRA0w!F-}Gjq<pXU?79e}4V~@D$Yy41vuP@3VK|^v;8@<(#&?
      zPfqVLRL73XYb^?uyiggK0`m-X+8)8)HczCl1hRhAIgLUYQodY|7kXX$ck^6esw-PT
      z6bjrQ!Ni)q(*S~|d+M?+N!28zmgO>Nfc6xj#U3?z5rlzyDe$2(!i^~zIltL`(sium
      zUbP`$)}oIxhZOP_X0RZTs#F_U2rODiV~Vr87BZOTY}rB<InK%!?!Xe5s|TTcbJl6f
      z?!MRL$1c<(-)lF#ZovEDp{b68p1}64s)q9+E3B4O|2?N>mFfsF<^qk4umi^hHpYNA
      zZ4sCzytbU=Ooqp763EBpxJplnY@#{k+~}<9%U1!vJRkpMPxu32gRDx?|1@E+o0J*s
      zrH<sJj^rc7G$Cg&OY0o%zGys9wtryWe%MFBe$+?Ne%!~BT{QbBU1{zLtz});r5+8M
      z&U>nHfC3It!V&J#{WGe~s8y^{<cyUFov{`}XRL;mmU*sJi~cv(hiV*(j8EIwD14{H
      z05={K@pThx02nr*N#H>Oxj0VlB$79=l|Wt^C!Z&hx3QBzE`1x5{WX!it5KD|pDX6D
      
      literal 0
      HcmV?d00001
      
      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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
      GeDoJzb!`Cv
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F$#NT26g^LptszZJ9NP(Dh+`5W$#$9$h6FhQM~*>3D1)#Ukj-=JNp5I$t9nRm
      zHhclUz?KCpfD}WqpeoxG|G=6x`xN)RZcD9}ta3K}#(Unm=MMe!*`I#_xQu2NDTa$*
      z@`rp+_a2#cNAFp@t$X{nzpFRpx9&J!t=p|lA*?Ji<1X)T&ouO#@*BI%pn3kjB{sR?
      zJMKP1xjyNcX6$Z-VS3H9P5%Z%x>(v~$W)z{C?Jhv8nVbS%+yU=G=lDqa6jWamSC8z
      zI|jG5xogUGw3+dDO^=~8@#z?8dU?hZew+-$YH^}@{BotVod?574O5tANO^4n>?8qK
      zijxTqAu{9+02m$&Q@LGrx;@7hwqH4n;(gIE9lLUb2P*|)en!JQ77BO;uVwKnL-D9F
      z({Ku>8JNLvdWcJmBOSX8XNQhs=@wC?#0h#W?h7RYMekJTw9X&-`oLkC7KK}ThUod^
      zpqIr(h6^1#&<%@wUXN4$HXOg!?OCEr0*O}tF2kInkN{-Jlh7dvhHHl^eW;Xu{yD=H
      z#DA;CaP@g$`p#|DC=m;?0!(h1U#ra5HLS|a*8+R^;4KYr%7bIXenYf*VEH84nM96l
      z)eg=m&S|`>;R@bnSn_tAz-ny`1ixdi+lKI{W~;m0?ueGE!Oy7%Er-*h6h*^y^qSoZ
      zs8-0?ZkT_%MHYHh27oFdi#19HnLxTP_I&*=cRkUMLKalrOX^fv)htVNxV7$f0vWIV
      zJqk<H?AY87T&nVwqrJXXzCi@208N`=K8$vPFe&K@&k0;ZQ0pS-6XCU(3k(axO=Z7#
      z&{(1j8eEnyG8|Vi@C?^fSxK1|g&|aiw4xSU$>BEj2-RH|Eo!fe+-@zlslhT#5kPGt
      zhfis$E-++itHHa(@TBQAxNklbv5rL?O|KdBdX7suK6FrMD(^N;*&gSU&HR#-9_Og$
      z)ATE#bdxQMW+!M)EtbA{T3w-$(KuE99fhB1l7dFx0*yce8QjAQG}FRMIF1=w<?*6|
      z83uTa*(AUh1n^)8U`}z!%O(^tIIp0A%rBVziNHew(`vV^Y$cVvY(J63b@E8<{ehRt
      z%fI2}q?xD87Q#z7i$wyE5a+O@AYR9LI=eu78Ct)ggjlAP6oL(W2swNc<4?^EMFmwt
      zc?4pG03<|;B?)~S!$?Jh@>s^ob6|Wo27~@x6v?D3@t9s3xD&?od-C~*7}Qi0Qzo0t
      zM5xP2sK*5L>sTmiJtI(hq>jwAcaj1<84L3su8zR;MNa=HrB>M*2I}t^Myl`CHM~#h
      zB4eGSv4ZOq?+=vahbr#(Xs!xGdY6vD{iEO(!@~$prpP*Oswgv5u|WiGkzH6Ga%Yov
      z7(T+s^p)kYN~6q)^lUBZ^S?2^=|102#+cTVrvHsKZHzG;dG*;?(>tVeNcd2FSw3bt
      V(D&}BWhN0BHaFH%Dxbpr{{g6jCW!z5
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmbtWOLN;)6#lNQM2<1!0Re|l=z~I>CUr{N0Cfo^Nz<5`gux{PnPDM2YNDV>#*))`
      z!HQqNW0O6PO&945q%$l!?WR0_6vKBV*;b<QqwON{)w%b4=R4my=PLjH_vZru7x0OS
      zn82xRZCBgNI(H0fGg~pW+gYb>xm($yd=}lhsjE-~hUBrVsqxTiX<IM50{vGF%W&re
      z;uD!Qf#mhQvR-iw+j3M42%O!tYT2@>IZj0*-iqz!cPgg7qg$@N(L5`lEZ7@*5^<zb
      z=tIB2V8O8TmD)~8uiny1rY<m2u*;gcrd1939vBsO%WwqF6uKsmBmGU?y;0RFTSnRW
      z+%-%(em2q3bHOIhJvW!>c<Kly<HXDE9#ik=(?AwTkkx{1+Esxsdt=iM*h9Hhujm2a
      ztaiuEdPb5`Ty6-Q?(Xah<@qhy)uOAp^i#=liE0SU_D0f|%%dRv$Y3ylXn_vUlD8b)
      zWhL^x!Fu#PRNpb2YG7egR&}RllIw8fI9rrKKh+EtmWmg8i`u#V0UA?G7|v=%`=&<0
      zCVE6(XTOk<z|Gzq{ER{~*iayBBIeh6UCzw$iIsIQEXUPMb5XyoQ6*~MD_0KqaLtOi
      z_j_ez3c06EA)m=7A&^bsEZ$Oa;mB3v-vUX@;9?4wa9PT1xoes!W#+Y$7f5aRxdcW*
      zQ`|0X`^BEOZBy5*XP~#9SyyqD$+y%DK$FN}E`<+qjU-BbpcXUMR`5^GPQGlD!86vl
      zaYIY6oQms#OkuNt9IB#Q<xMW|)zcOv)HgoXkuD2NDyVblo6v|F?z-S8D^av-)v~^1
      z$h&;7^<g<LHC0Zr`f+}cfFZ8<1wafc-xR(jkmTwjSAxHNllSr5JuYH+p3fwIfjJ(W
      z#|vDg{6iQd5V#)3NCaw@cIg!p2lDCR^m~5G9>&Z5Zh#?Ayoi^$FE9$Zca+#Q+9mZU
      z+Ny_k(%+4sN!(YEModvKMqJ7ERg6dQ+q3<m6I-IbMl^|f0<T9<+q2fXvVH?6iO2sM
      za5{q9p6ymAwnRIFH`}8rcaK%d?t;d9B!bpH=iRP3zl{km=L{wzxR*U{RJzrcemi{|
      zBFU!rT2dCI(N5={1nj#mU{jbTv>cT>JFbtv<CEv64srg9GNwGj%sx_M%0tW?;+?xE
      zT5^tXbb#+UWj~PLk8H)Cyg-+Hh$idtfHh&^iy>FDc$dKv+<T7#$!UEbS31$i1vGMp
      z_#jH-XF~l#8o!dpZ%;(yqhmDYu@KNOxFb^>_0?FJdW6M&B&Hu?@gQ^o_&WT~;r@ex
      z51G+@kHDnw+|*&Tsl#ZXgUWL<`#1wG;YJX4m+!I&>2ML2_c0)guzWDxx_bP`kD2;k
      kO#N?O1^<LnPd6i{n~~Ga3Zz+qkG<4~niaUos4*1&2eO!WJ^%m!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3Jx{|h6g;PCQ$nH8ft@YwK!jimVyV;tMIaH>iNy&fb(Pvx;sW_uOh^p;0De@}
      z=TfP3Kw`P~bx*!`{$7550XRp`gToL^`3rvwt5>P=a9;4|u&R}rgo(w()P)%F%;>WA
      z;4&Opc35!Y-lbEK8HU!CRMK2CG=lz^!5!)+;iG}Q4w`5&bYrQ+?P8XS@`0y?VCcm<
      z<HeYl($<@%YbLT{7{ve86EU=NVb&5E9)q35o1vb~wGzriJN;h=-iusn74`p`Zw;WA
      z{6sIxOpK(}f3h8Iyg9R?-BXYWWG&!OM#mF+R9#SH6q|z&wBOfbpU@|o{RbD9*r%-X
      TL!x*9>-8bJ)Fsae9UQL!%Di*U
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2!AiqG5Pg%Rjg8T2^(Gz!588u4L_8>7QiVeBP__4MJJppnDVs$7El+|6KfsR?
      zCqZa0LRofZ-|+U$y!rn5`~q-{Z66Nd^hv#_w<v$r=|fbgk>RMvQ&pPct^zR|GvIW>
      zmhJw1f53TG+A;g^2;Jqs`e+h%7Wp%yrqNuG(7e#8E-ne~!QqhL#o2@dxL6J0V};O8
      zbjmm7^N4Ld8KIM8V`YZQ>T1%zqE|fXoN$&bHe1@)IU%^M9bRk0gx&vkaa73@!hV{v
      zjg884maf6v5cVKe<Thm4Bu7k0YzaE4G0^CKAb6L8gHU218R)^o71rbx3Qb5@M_aOk
      QjXG|kBRQxgTx_BB3zflkyZ`_I
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      YD#<p?JVs_7_pPVMjA9!|bE`M~0_D7?lmGw#
      
      literal 0
      HcmV?d00001
      
      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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
      Tj6M!Wz_2%${*X2~c;){A;nAD(
      
      literal 0
      HcmV?d00001
      
      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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
      H4JiE-2|Jy%
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6ZBNrs7(I6s>befb1XMson7DPy0G+5sbXg!47sQv4__2%zYD!DGPUJuNK@CEp
      zi9f&}WqfW|*)3B>mi4|p=iGD8^W6LE_xGOw=J8BMf}#B0{9t}8H4bcdrxci5j#XNF
      z%bVwxxo!EmO1*A18a7Rc(=sH6q6l59dVBkxYq^04Ih|za3wG^BZjNEHCgM7`)G2n!
      zcI{x9VLIO}xUk6}RlRL135Jx4Ui2yGL0W~3eul9)L0hHHfde($wbq+^Tb3W5nIT*A
      z>ZY@4`Zo6<nv}S7hQ%&g#DfbK(s>4Vte|b=YtOM5X7YuI&x|a#9XmKI#pCoOMsQWe
      z6^5ynZRbU+xQ0=N-i^xoN{u0RkqsC|W9q8AwzKV9Zq;kL0Ygu|U?eetNf|d7CeBZt
      zikq0C{lla(48;s<)sL<qhZz~S$ZL_TwW{Ja#u@raQPp#rdw*4AJ0<esFuGZ&%P2Cu
      z5;qF9U8KhUlg<@4@DCMexXVjymcfgc*oFCZBW6!0PLHie_VKc1HvJ7M-<T^E%GN?l
      zOUXP4N*kW-26|VA6iV)W6=ghNNY_KtD?x~5xZFu+D0I&rs>q{2BK8?Fp-N##2IY;{
      z^y}8D&Fg$nd^cu!CKy!1buGW@n2m--7i*+l^I|aF-hVHIDWFoL>ZF&9WitHMQ?C~i
      zrQ{OLCuvkhf_^|sD}IBb6;Ggkp<x08^zEY{;3YEjRl|M?gUHf|PK}|6VwPGSCw;~6
      zXKDp(q9S0WQ|uVVBWyXsrnDm{N4S2B=}%`URt1Xo_T+3tVUSFIg5e*~-f3f;C?Y$-
      zowIsggk&QvK%|GDC}A#CGLMCbwnDaX+O)>mipRKjjK#Bb8v<SWlrD`&cuX`2=;2wG
      T@Pyhdjp=Q`GWoAj?<u4|RfU{G
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      zV3pQjF=Q*OqdYw|A)<-pCHim!tQi@&g7Zs@l2hF>b5a=@M9^%~0~ro<9U}uX5VHb3
      T%Lw!VI|B!Z#lQ(9nHabLPkc<Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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%tu<H-*&yqv
      zC{IsKh;U+gi9Xx}YeojH;QZ2}<W#rJoK!{zF$~M}K<2YCGB7eQ1O3FnzzB3GD+3#d
      L#lQ|EnHV?#!T?6f
      
      literal 0
      HcmV?d00001
      
      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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
      aP4mBmSN2`NYx(@%VxQ$#9N}fQedGT+B;`8*
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|O>Yx15PdFbLqchqh7`g#DJ{DkSaBr?sj5I)sTGG*fXd13T45{4D{Z`Ke;WsW
      z06z*bo^_Tqp>XkNJa692Jdc0=`u+pJYrL#uMWBB!r}8qIT%=|cS$V2ebnMQ9Oc!Hw
      zlqE{nQ4`p7xJXMveLOu^XI7vglca<ZO>p>6qCxmcU_DpkZ0e~6n)A+T5XTPFnkegQ
      z%Y2j?fm*<UjnOP{kQIi?-w48(NUH0JKraZnji|7xj^3MMta547%nYd8VLCF>7P%65
      za~<yOf2MdxM1LBIO`<LZy5;Qi;tX7CjjA=LPh7Tkt<=QasuGU;?Ct7?Ywg=Fr5?oI
      zq0n(=r7qR_oF?`gDNxBbRGMCiX5ZI3yHJTsJaG#5D$ZpHX?h~CMTjz{`~#D=wIKXT
      zWw)1N{yExIxgzAf5!ku96^H3$0m5tHhFr|-`xlzY^_NuYrCLC)=P=5sTp+qyS51|%
      zOKUxYa}T}w)m&g}4znUZQy)@ItJ7Wl9k1NpuL;mX(zgOS^jTK12KQ;|-rhum{U&a)
      zUB_*<8)#A9CS|RlP53Qz`2G&MY_~n`F7C14^ZtE2VE-W=v3-muY@ho0GxXWt!E?5|
      O*kk*`S*jRt#qc)*j~x&I
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuu%TB^T6g{H?QsklXGVudi7dEajCZ^G(32GvSg}Z^?kdmQI+9~*LF8lyL%6O-M
      zKx8u~bLN~g_woJn`32wx7bP4BTu$X&ez@r(j3%y@BSr3;IiKQyR0&4{4Wn?C<oB1+
      zl*U@1G9mpMFT6O5_;zSJzCevRFIL$sTG7=%;#tl}pk@0`f0H%P34ht!F)Ep+0?l2a
      zXIR#i2jL`=I!idKvqy4!b!XDT)FY)Hf-rAJpkVvH^Dba<IYX&3y62MHhTJM<*%;fc
      zbW7E-|4Z06<X&VDY{t|NQ%w;i0?yL0o+r&I(p&Rf3wtJ`o6szt)4mvM5NFAl9z(^w
      z);Ef4Grpn#&zx5XlzBY`6k*m>TH!Iu`Q1W=btkMkK$YKXsONkGr#YVCJjW(lIkpY5
      Iqmw(jzb(;@ga7~l
      
      literal 0
      HcmV?d00001
      
      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
      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
      NY&?{h{uMKP;(w%+%~t>b
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLO-sW-5Pe&<v0t`+)Q_X$q4i+UYeguvf*=SM6uihbT}n!_k<FymzvjUo;Exg~
      zp_bSRDIS)$?ChI2JNxGI>-_`384fJu1kOitEGKsO>gu6QYC?9qACi#{T?J0$D^163
      zBIEWWQk_7@H!Q3Q)MB3PNoL*kN6I0AvK$O%cLfHG+r`{Jsd|c9NjRP2kCSFb4uMKq
      zH57PWO7{1Q(^X|FmWGPD{tLbFBLof`*$m4l$CIuvaFkVD^Fg3$lpl;$s+ad!w8dU#
      zS5=#n;pROqrxTIu*<H={Fp}Irx3a|wJ$I-jMMeoc{ZHlM<Z=n2VlRk{qpn?#mFn|m
      zK8-EOR=v?$nT{vJP=yxu_!}3!IyVRG`Pq+5Cm}B&u)@;>SUeMJ$RnN&3+o9MP)x9d
      ja)K3XBv_rstEe%5li4|J@!C#yJE$`jIU=x&{e0mY!3`|s
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtU+iuf95Ivil8^^S1Xt)GQQyS7-n!4pG5rk9%NRguQ5EQA8>tqS89H+83rM&S;
      zfCQ1K#0T(Eh*`&=P$Q^>rS*<yXZD;uGwW~PzkCI-iw7EF42?s6%uh`JjqMIiDNdxh
      zXZh0Oeff0UpNxbnOHb^9{mc={){r<?N=NWlVG2V^zPA0+4#P(0pI}W2e`LG1e9X|Q
      zoFhIO65=-7?RK@tkZ6quA`OO&fh1BIE)bCjkFGsBa>SmLo^4H}=nARBz>)zCS%!F}
      z+S3t7PJLfw;Qz-g%6T4`h*x`Q<Z)TUC5E*qSNYZvt+DG%?n>Xl6<lRVt15NGv2Yl2
      z0f6anD(MUBQ1oR}!!?FwwbjhscBL2!Pe%c(>QFaGs0!igBvjGBI&Lx;d@%S$jA3(j
      z=-;-D0x8LtI<_nJCnHOEFS+Fi#c15;PLF%G`VO55)fWurALRH;3#tw|;vO|4Lm`^_
      zv-%84(#NA9)}{gqcR(IzrjIrha-WZg*Gi>2cZ4og-yJp=K)tG4q-QZq(7WS_*B8%i
      zb(Z|u3$m?bCAr$JE4-G&eP8$*?lG)KN_RGux^nJzp-Ae->2k7cR`n`bF&Y{c$e$+b
      z9r={ET&sVAUaN1N!Z?^>aW$WqV!8GaE2k(N<daie|BST{LH-847uBwrT_iIm@|hi!
      z$aj|zXeZpFp`J1}Q3>$MsG=6|D5FkRB3RubD@i;W*bdn=XlAq)&zbLOia|l8lq>Tv
      afG}puAw-P+IV$Ql?$E3njS-3ai2VSlR4@ks
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T}vB56g_wIvB_prlc@c&LP|x9qFeECi(qXFh2TRYc`dV>A&zWzVRxeWS^6M?
      z5B&lDDDlp+55)+{!_1xgan9ViXC9v({sB0|rVWd5cqy*L%*(D-JodDlY40S+bSgsq
      zBMGMy8SAa@YNY-oiT)W$<J%|`yd_|%h{KBlM5yWum2G_`eCaR5`dt1^#Y!I&ws)4O
      z?+pp%(_|#;AT(T5P<2p3(}j&Ugulyh%wJRV?$2jVv`$qp)p8)UZ!TZyt5}{*CxJ}Q
      zMG#3sr=Nr(8j4gIzX+Di5C})FFfN!nkHj8JeI_Q%y|&ZK8N5iaY6I>i9{V-CCDa2J
      ztDCY~1ZR*;(@_3Wrk(YdvK|-}2=4DVmg#9EvP@<+HVB^=%EQln@h8ybxtI7`QLAN!
      z&nJtQjT*=6eDYDwBhB5tJ2<<0ME7uS^RgA*9g}QyP-(Q$V&7#L&_o*@wuDuz6-4`N
      kO|H~gzhPs+z^f+I*!T}xDxenL<yG(TfvuB+KjIUtXH(kB^#A|>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9TWnO<6<ueZ=h_!zyNrW91DHn=d+fn6ZH5HLPK<e(7)Y=&0ougZo{K$nJTsZO
      z=8--^9!*M{hDt4}1f?yI#y?b06$}juts+%QTdCrwU;U|?s$Z>IsZyo<l&*d6jAv}8
      zX@xvzpL6zmuf5OZH~)U`E`V;F4a29<b<8?$o$M-}NM|Rz9Q&lx)jwWz3f6?PEjKYU
      zZD*YgTMJfpVrqNFmR%SDh3@|?RMt`wQ>ZW6g|w9!wF|{`E_+~bn}XV{uxucgEjm`#
      z8MQJqcJS)vm(Pr~-B1d8Vk(_U73{1+^vKW>gC)H^3bomp>4AA(HK<@@tfDiRP1z?E
      zLe5mWxZx3n^-Fb>eJn>xWuYh1*|gKA@Iu@F!M~KH?AFqoe#a@K$7dXS*mio_M->7C
      zxs+`{A!1@V>TBS~111{K7)G<g%KsLzNJLH4pjN0=CQK|7YK@6HEK^uMl+N0FXQs#P
      z!iY7Vu@xGJauZCv#q@JuIt)l&SjkUt^i%6EIm%lsi=)u8RJa_!LXA}pm}b^2<y?>t
      zh32+)m#1sSNoTsYv!-^za)^|kFycgyq{F)#wI`fhp$6^flyoH&{B7-{vhOnS2)enq
      zQYog@t6*2gBC_|5AEQ`L`(fextclN|jS#avOw&QXGo6=AEjGh&gJ};*4U@LhpULD-
      z6f0<><--h>H>JQ?k+wlEk_Amw$;<Kz^FVG!(nuu)ZPj@Rx&dk$tYK;UO>9N4LLEhi
      z9joB%J9@NeJ94$n#CEwdMQb)yx!7r93wmm?68-YSZVTmHDFt7e?chr@QNFxTc~Svs
      z8FplvdppCR-R@HeQ}14DnkZUPE|8ngVS+h3*`q-q8^nV(S+Md`G?Fe3+162ohJ3D=
      zmimq4=2N4~XS64&r}~1O&sY;w-`X}f_$h5J1%4i5VZ6XJxJ7c^*kd_UCM=9Ii_;d{
      zJxDc@v=okpLA4%kJeN-u9ediuB<QDM6$;j=iCq4aLi`heGUy?p8aq_XU_%)@JLynE
      zFlA>POXd`n>?q_IO-RU*9K#}f_vDV#emHBN7*4-LD#XGunG|qxUiQK$C_GRJ#yj0Q
      z!?9-<G{{=FVDz@t;6)r4%%50<?ou@*NeZV-3}ZxizhvUe_zF#1`MjNFOC+izEelme
      zy1)Y#_hq7?y;W4bBC1|hh?UXpwbf#Q*9oCcjW@W|h}hRn<T1hy8P3fVChQ$)nMaYu
      zb9bZUfEXUkX6?cNkyx~gVSGzrtz0bVqs5|pKo;Z(YncH*-?t!I_!r_X%$*OKf1H^v
      z&57x*oR>g-y-Z*3myws#m%pFkZW;mp1J=YlZem5eqcd>}P4U3{Sa}mIasN%k;=Y?$
      z{Zm&_D}S444th6&dIwCs6D#yCH0wb+1hl#?t-(61=Z;FT0T0q4p&r7+yk&~eRx<r2
      z_Yy*P{03s@5meXjp#9J-bPV}>XVK8X<CfT_Icz-mx=+P~>C*kbb<APYbqe`t3|K8u
      z>tTfT2n;=n2K^kG^dYR}+NqCJIn`Zqs)2HkBI&x&jLpo3kMv`ByyR3TS0(xbSLdxr
      zcA+O-ZKiiy(xzni@I*5CEHz1}k>~}~MqPI$CW#_i<#L_Gtc%Q@gF1cORodhU&gU)S
      zIwp=hf!>n(F0SHOP&6<0?R1rI!Fk{M@T4c~TS=n^pnU#b5f7yLe91t34o@Xrb?0ID
      zlYv=$6y@2#CDeILa&(X6>ewahlXcY<?2HRBhaFqO&EcP8mqIcq1Sfkk6paKgp)nc>
      zU4|)aqM(U~mr*O*zFBBld;Q7qEQVsMVyR$eEE$eR!lF<&>#{-;6@~S#!kS39N?jz(
      z7^sfxSZ|De8IgeRhxf1X_eUj@B>_WN7;Gd!7)PqA`nG^ne+NGOU1H}P3-UcQ>hlEi
      z1+3BE$HV#}Ht9>)s;^*3zk>t%$9P`9i(`5gMST^g^iS}LzJ@pS&u~WHz*~9_=kzUH
      z)VJ|21GuK&!yWxTKG46whx(Ver$4~&$@fS7EBr-&h`;Jz<DdGs_*nlA_w_xuf_dp&
      z<tqb$)NZ$5`2mZkU91}T7(=A|{2uz33zGnQ`5)NBvml?2HtZ!8!ZkLWM-369``CtI
      zoWXHC!`m<}67kRSOcNh`S3Q(qf?5T^>sh4O575A+MaV#E(<}_x`8N%9xTUE8uu;Z`
      z{u3hlBSg8z^q;FRy}lGmj7Im<pkSC&yJRro?g4+}fl5z%-S+n?MEgrhlzbkPM3eMX
      z+Cgwew_M;<oN{#-fhry5ypDrQd)>cSvc5{PTn&Zi=6n4tt;^Kxl1U}$;-K1_aGi)=
      z!SX0c;`cIwiR+cw^#@f6(j8nzD}u&4n8pS)84se>cnIrwmN42~^Ks8a$#ELPAr_BM
      z6*@|T%j7gZ%&f{>J%Z1BsZj?Bgc>?`A#pdBN(Q2_v1Bk3jIawrQq4#(#g-EyFeaYg
      zeFsm=6ll3SRXV+mFC=w@&|SI3t9rBHkKV>a!ryE}6L(1odnDLwL_(3UY?}?f7PDye
      z&fQ<{CgGP&N$8Mgly6GqIqBo81mjVJj3mGGH>1&b3{m58#0`!<qZiwZK0ISQiNnTI
      zNE`hq7~Aohu>)s~T{v%e&(2XV-1$UZD0K}}fHYGkn7+VI;aVmtgmXB?vjBJB#urHi
      z**|BHAr(Rtr}-jEhxGE5$dc07hK<OPTmJLGN8U@a+be><?mKw#P-F2HW;i-e&f%rT
      zukuGm>l{uuzUI*bLVu0)9Nw&8z<mjf{fHRDtoi;b$dw-}A03mY?i=_fSNZ5scnfbs
      F{Rg!}60`sS
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*Z%@-u6vm%B_D9-ICJKsxfK2ShV4&a|j0vbDOQtWJ!RWiLT%e|Fm+lVnTWO-0
      z_`(n1hcZ659h0mtFw5F=?|shsopbK#?>|3(0ocTL0T}`NqjTz<)q9`3;JB{jnX2!$
      zdn$5V^&)ip9T}+d-si5<>lKg{sHM~ws(sH_GAbvp#6uvjPP|@uLtwd?ava6%Q2x{l
      zJoQXq#r_X{<v<|&JUo=+5HKy|kT)=fqJ;vk3yj%XFwyh^`MTd}%jm7s_NBmNGjtvQ
      zz==G)9&BcHq5{>cv4d_fTk}{Bdn7P#SJKWG&7s=zf}V_2OGRw7z_#6p<#pd--;>>)
      zbbwt&eY>w@OR61RkMZ)%m0jh90WV}m;6bXdd(NS*P)mkd1GAVfU`}8ur60Wq3->TB
      zP`aFNqto?yJ>k(&PbvY?;DSRES2CHdgZJVvae;*^Dq@&OcEVF$OU`aIDhE1I+d>5^
      zEHybAuzeXEs}q4jB)h)j(&Gs|((EgU31Zzs9W`FzAXvi4>7+RYMl0+`uH-0_GBw(t
      zb=^VUXCnw?^xWr{A?cG(Mjnft#W8+fqEylYNh`;H0oS-cPHPJp{s5!8`kjv-u)cDY
      z!33XqYGCf7MBCCf4BWsZ-vT#rYY?H%w?4~NzrpxI<FfPqCFk7Gc?#21-KI86*E?|{
      z?`UVaW9l%owY78H{g;WMb2OVU%vW*1Y9bv3<PjF)O0~6w`&vzF8D-YanZ!y8*W`)r
      zixK1I&hc=R_6Fl-E2b?b$|21d(hO9|&5*H*T8iPa*Sg!qgt0c0J;&N8<~=O)LyXx<
      m#6wJRh$#**3>BBB6E9+e<z)%o<SK(lc&y7|DuOe+1^flfODB*3
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO;5r=5PgH#0xIGM_;Jt}HEAz4Cf+zHV$y^}6QcK}Y)VPln(l)9HV^&)f0S|R
      z2a(pxPUg*<nYVA=KVIJeT;kA1iQtaKOw2v~5~<KLa&Elqfi|fK%xw}(CsLWSPNED)
      z8)ZTxqkFMn^8H{e14F0>sT4*&Bswxtq6kNh@Ae8~f9q{Rtve6ob4J!Ss)X|b`9=(T
      zNgy)Hf=jSssX{X%tT?VuSdWyJsp*@PwG*x!|7+{Fx^J|-EM%&NiTB8l7{szWj0}sh
      zQaMRxl5pzyIo<!!tD#(MY%MyLb`mN~>WoCH3CGMSn$eeGW^LPjVmJE9G!5ik6tjqC
      z-u;Wr8~&@WluSFZ&|0!-`-GE%Y57)y{c}2tz^3ul0gI2g3X5}_vogmDBQ>mX!fUXR
      itJJZXLmJr1A=}vbi=c#Eo?Su{Esiy=5%zFkRX+jev88zc
      
      literal 0
      HcmV?d00001
      
      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
      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
      PKrGlahMfp`T!i=!*3F<^
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>QE$>v6#gz07`5Bja4ImI=%&z(b(_Aqm`uhJ44OqZ9`vcun^6O|Nn4Ode~>XQ
      zk(l`45Ae_U4~*xQq6CmM?K$_}?>px^=Un*t`}+?7hd4?g!ccy1_RWFeeXzxq;q!rS
      zoHRY(HCz6v)9Q7(@VBcSE^XDa{R9+-ok>bhSk7O{B`wTmhmWA~spz~<QH*ies$7j@
      zSK6ky;tVN|ySCYBaM!aPaalWMU@sV!D~|AdQ}_+D)8nyU`RmUw%g@gl6i(V0vh_(x
      zK^39srwlP$SbRW%Y77aNcbz`B7;^6xa!kvTsQ9rhZ2uX<Me+ae+JaCEj!F&EUvVt1
      zB8uA@(zwGAEtVQdP(>OvEK6@w!wOcVcUMCSYtp-?VI6A>t94uOSG{hNyBD(W4C{5L
      zMg23Wi?j|m6~AqJ4908;i)Kx&OI>ll(zZL6%f-p4Bl%)!K}{rJg7SLYY?U^{flxuk
      z(yWkw<60tYZ8R}z2F*-;<MiAXKeJ_h8`FyS<>VQ(nh@NrbWG3VUIGUUg_$ccO=Y+d
      zrj_><1!`=R-WWYuB(Ow&l71->sPxh_0-t6PSeis&X%1v#giYfneK%<Jk?=9HS^XPs
      z>AOQ@^vxl1dU=Svo>7L_x(>Jni9sAt_n@c-lIj6g)I+4zBV^RaxKHO#Mv?FU+q9B+
      zse}cd)Dj6isU{kDQjbFCJ9rqXF~~}MO#h0lFXTk1R8U&lRF8us+6WLPVR$r`oS!D2
      v%_SF6qHwYglbJKq<ny^?9lLYLxldEF-_9XNuos}p*e9z}7`pQGKbQOiGl~!c
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIm+jA3D82_D+TQ^HvA_dAdwN%=qB@_{ma4V%~AQrSx1V!AYr_ExzTQ(b76@_uU
      zkB`py2l(KNGwO`Aqs-_dGrs!n<qz=L2WK3AXR}E|HjKXb(46ml=evKu@7w<L_xC>l
      z7{%QfLINW<j9bQXwz6be^I2CeyV<dsit89f_q1KCE=bGWU697yL|H02hOofszpK=3
      z_-X>(73r8pd0ILZ)3z?<PYZ~%0_(?ZtKu4#J8hJ!GV<=+%}>uA7|9C6$#vWdc12)Y
      zA>faE)1{r9KvY_@o><f^nU&r91p0&W^>FGbDZQhnWxB@&jKTjP9~AL3%LQM?T-PyY
      zs;-=pZZ4l6nidF;+q1F*0*~ofk4_Ei(4(UZn*^@^ukMGYHEhAw7<vWz0%dG1i;ivB
      zF3?$Yq~XeXkp*@R=7)lL*57j~v7I_JBovj>p(7E);{sch$86akvc@U|fNI%<<Je9N
      zy9G9{y-u-W*8HieS)P?n98U-go-$?&cG2)umWy&x5h=Ii*h^NbBptao<ssylhJFmH
      zS`G>H)M{DtShJZ^73fDs$1q0Nbz^anfDzbUPpMhh4<Hu@5f~j#QPQ(Ns<iiWR@&M3
      z3e(=o0fCO;R9RZ{Zi$Ar;Gm8}I85%mbPFC^VBO$QUWIr>M-E4ceAljpF0gU1R`zD=
      zISqX{t`a`clJNPN8?xwn3HM=4$0>}{lS28pQLRXU;pXr!s!|#=WtnUCvBr&ILSP^O
      znRaav=qi|&oUAU)Nav!mDUejnD^D97dft6zSdFMaHi)HGBsT9HHLQz<!|fxmHK<x2
      zL;=mHPad7@3Q9gSm;w<GK-@!lHo*f$NG=QP2`aWrno)%e`l&@!>(Ij>r$oG1BBU9*
      zKySU5Ro5(MCoHa3$3r*8HV_VD<+8n08E?oF7FU@PUm81fM;)^dt?RY?Bc?U0GU!@U
      z8n>&eY)zbeO(slR%sXn&%~d2Nbfsg>p7*W^%wRT#BBKrfpg#3FWF5&hC4m@iOd1PP
      zt+$enIUJ4S2H8d1a=q?_Exsyjv`#*2&`ISfwe#!NqGm;Xc;Z-ObWNY2L5)kM6bEY`
      z8cL~4RmTDj$Fam-4lBm%I$l+bH_6ag#3{S#6y+IH0kfwSYI{{Mbdk3#>5P{RE-IQ%
      zG<oE}5h46$hOre9M0tzx7DAkV+<G3(od<MxtM$%%f-+s`=I;jH{-Rc#r;*OwLo%Hi
      z9$Cf4bfzb~g3b4^gH*($c71`9N22%9cjZ3%uOtUnu}8_IlY3XNPsyZ{Pm;>4;3?88
      zczPAbj>LLnz0nn%yxbf6@f$kSk>WNv&Ct%!<$m6weS(N~8@hG}o3y*=*WST^_8#_Y
      z@8gj60mifsae?<s+DEvieT-+Q_pFzq!86YrL&sU1qfJE>@SIl;1Cuz<qA1=4QV|Sr
      zg*}fKSfWcT!4xjiiXc7h7h;&FpnOPtt$w`-RXL%3=6Tg?ufA7-%XpC-Rl<hmx-VNa
      zKX0pf1y_B|gFIE-L7!iFnwx5`jZ8y$iMgmaU&dkI#-qL8Z|nUUUhy>>-b1Z%KX`=q
      z>%Mm)*tc<jr>dHk{uaBw1HsyA>*uB@v_|zffWC!Eo~j0&=~c`ZG7k_<nuW|-50a{j
      z+Al=OujtTzBT{~EimubQ7(oYKL)nXl1Lxarj&4WW=>BLMofYhDxHYdon>0g>y!e^)
      zeHV#CRhdz5UTn?_r{X3@B<b*nw5w+3R*ha(^c$o(IBThQDkvwo7ZM?i@KoTh!En@f
      V7{YDxLU;>r^HlqV|JmRU#6MUrnQs69
      
      literal 0
      HcmV?d00001
      
      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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
      VB(%3xFBrZKSNV=X);&)2{{Vz=I5q$P
      
      literal 0
      HcmV?d00001
      
      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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
      PS3XJo^)B5|hWGvh+oM!I
      
      literal 0
      HcmV?d00001
      
      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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
      C+4?O2
      
      literal 0
      HcmV?d00001
      
      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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
      De92U}
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-&0g|6#sm``{VAeS6K<fO;kkGWf90U%0(nxqc&GaKrCLG%kC8}E_dth-o&OJ
      zYU<IKW_-{lW@sqNY8n_=rypwS^wQWvGrjuQn=kbTRG%*kEDZ#6=iYP9=X=iip7Z^j
      z@BQWP@9zLOf>$+2fkR`)TgF6d{<39{v=+>XLTgw4ik&`{n;5jr%MIOGH$OUH<S%LP
      z3WSw&Yu2D^@9>zJE@<!zRF=^`*S3w}tSR6xj9U4Irv&z<Hr%0|t|u(pDx4Ikk8a}I
      zI4Iyv<T7Ru0$X)x2!!B4g^nP?0-mUHs7P71+2f86o6bO~mdaEvZDa=x$5QqZ=v4&@
      zG;X|Q`2bj`$8qftY7o(|Q(*Uoed%}-y9Bn3n1$21v^#Fv1%^b|*=~8cUBhmHeQUE0
      z=L?RJUP%)|E%xfDQym8!)5x&9ORB7T9sAKBpmR?}ULxnJO?fKGAeRs7ID{yd$1OYO
      zBu2@inGp~}DmJF035Nx?F*apf$+?AduIZA;y7fw4<<YL9TXeL7TyJG`V${lJ`U^&Z
      z!OhX+It~A4z{>9JK|GCP8jcD?*B-*^p)AMfcm{0(8e6i)-Enr)t+G6)<G8|uZ#d>f
      z({ap<I)HW^C(yxpqj#VAra){H?#uhIwi<NmcwWV8Dk~GH&QIw`C?aYus*6I<wH#BC
      zT{_>qBI^Ym-O4AV$U1LlNf%kk<kAAW)>g1G4jdk%OufMVwZ2{D^~DL}j0&4?lKI&r
      zFN-RbfF&T)oc1%D-LQ4`Sbg#<zk~M1!4U6Yzq)xLw$`6>owV6)sjI(zHNh>4N)BDp
      zwoNCIHS&3rbp%%uagJFmUmrv`tZp=aP98{=m*^H+$7o5)P^@VIdh8aq&C-(C&aa<7
      zkXKPjT~|7zo<J3)KsCap3~~>>L&W}y%|kC@N2=)_YOh0Y`U$mX4;QhggzxK6avle+
      z<GtERyjwyWFDU6LqPb^TiF>_mz8M@<cD0Wyaeu@=k0Z@|uT6qRkFuYQc=;iqMf`E^
      z2R>2ltDXAiR~7YI+;?Be<^{x+jCdDtGU9tMLto#6y9z3zYX%46T1np#4@3fsRaZm;
      zEIS^I1dBKw(UyGwXML7uc@<NbX7|&WS(LyWpXC#LpA10WKtO(s3i%1D<Ro^=Db&eN
      z(IThOCO<=`{2WO+gI@V1hU86*$geOazs7|82JaC6P=1T6au(O*944uMA&Z!k-(g<<
      zfZOs%{4DR_p}dRV<URaO>=Cg)h&?9ur@X(&-rMAl3@x!2z)ie}m&jigyh!3@GFXR?
      za0V%Aov?5g9qcWM*U>}GOZ+%``SoE4^>~GtAGaB;vIOvGMSDmOl`n|L%UT$;&Xr~b
      i2btf)O8l{=Tj*PV($q9c3@m=nV~|qKD*pnw0QoO50Me!a
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ*I}U<C5PgHn3R<YWowch+FeD~c7Mx%q6NC^<b_eBb79PMu85av06Q_7DnR%ai
      zy&q2id(0F9!mctm(`k1vn?ehBq7Ndr%v#};Ws_WtHMy`IwhCjyqIc=qc+WYjI2S^k
      zUR#^<v8<V}9OOP^+lvYFQ`4|bYU3O`g@~~J+f7*gwuc15$p7C@fXNp_D9^FK5T=O3
      F=mV0~KYjoJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh2a%#InQ+{o?Y>ymbAN)QS>)$C8qw%%swi)Zo+-73ch%
      z{35srI|B<Ng8)c}eoi7#y?;_xYH|r916Oc<X;E^jTV_rwBZDAZInV$-kYYv#9?!hI
      z)FS7c#Ny)AVs-{jMh02D_A)Z?q1w#G$iT?J40JaLFfp)#Nj3&{Ak77oVPxQ7;9}zh
      E01G!fS^xk5
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh5My#InQ+{o?Y>ymbAN)QS>)$C8qw%%swi)Zo+-6}SAn
      z61V_60}CUA07!#=P9jjbe^ORzatR{?S8#r5QF5wVW=<+2gCJZvP`@5XF(U(yXI@@v
      zk#kOBadB!fI|C;pgDhTa85wv{EM{Y5U}Rthx*7zS7+Aq18v{F#<^swvGH@_(v2g+b
      DX<0jn
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ*I|{-;5PcIhYodkP+gZDM1Q7%)g`8jwLre%!b|;#%S$F^sC2lOz2u|@H%)HOM
      z-j64MHAV^nVO5x$X|%iNRi=d-(Hjw)pK9TRWpOmtWY%2I-BzJbn6xfk8t*xr3QmO(
      zCzsl$yvs`_Ogp&`S+-)rcwbd)x2188okB#I|LrEse%nI=q38c^C&1u~A(ZFXUkF3Q
      GVe|o;hd+=2
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}QB%`E5dN;zhSs*wDryx(DnbiLK!q0=W}FB!%rM|shX==(YdFg>=>?Mu!p{=k
      zeDDYOqa63rPA3p5$xOc7-hR7Zc5n0N@2}qgR<Uj&!!UKi&-l3={*bC;YjLja_gV+C
      z9cj@L+Cr9L+_=~tCx?UfiEuSTX`gq+z>%T4chhHsc%MY*duK_%(M{KrO6o0!kw){7
      zA?x@@B99`<7D^1$DK#y9;R(lAq2@}5MchL!4~DYgREn^A%L>ETo>XE#>b6DjnYTS*
      zMENfF4tXHWx^JwwzS3N(Frj|Fk(QsfG`~>D6gy<7_vk~5xM7%O*FU`&<RsQiqZ#KI
      zPGcx`gdT7h=5Ep13zF;(RlbtsIew(5WmNCo8#|_nq@>nYVn<qf_O^<;BH&v3iX!D(
      zvZJ_;0;=caFu%=(Ez@pF+VA*B9te{&FT)Sw8};RgVd6INR2WN!+utMZF%(*U6u4qX
      zn&wpo-%ZDG*&GWh$F5Q$a6BG{BDAo`u#!42N!qM)%meOf5e%%<!nD!CGQ-jxp?uFz
      zhABJO3>H=y7XKe&hfZEXNa@<z!n->^hsw%30Y5!XM5(5YIYt9ALNlI0&CCnE)y$v}
      z7BEV;8K45K)(Fj2y2Sk}j9p^<3e}%v$lw7z%W;seL~PTrt>a<5WBv#ecm#uw@g&9?
      zp2qkLlQB-=d5qI|K`CZpUY-13_Wfq@D&C(ne9AT-KO1Ng){(^mv6g7gUlZDdD}-+d
      K-x99n^8WxaJ500y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaixPcH*O7{;IJU;0O@w6sb%h_(_N=ZZv&q|!(zd!M#bR@N@NQ+jfAa`Z7=Bt+ui
      zAWpu5FXANL*)|+BahZLed4KcF^Ul71J-+~0#atLZhQ$+p!F!r}X;?>^6g{a`c)M=5
      zxHN2QtJe}|st6;%FriS*<OKdS7?Q4V3~uVeaS1%EZ8ESOhIrMsT*)n|bF(Xgx1Tpx
      z*B@`M3?aMIafKwRMq<sd47tvbDb#=68`7aP<yui^2vqI1h`^6z3^9x|q=%42eH4^0
      zh6thziMnBl-R@~qI0w9G3Wk&#$kaInB|X>-$YaB0Sn@9Z_XWxfepfom>rYU+vOm<m
      zIPVHqiZ;Q8BFz_R*j=Y3whfgcJM3jwlp7W(zMuYz4><%8A{F-32(2`eS2LPFPMtAQ
      zdqgTeT3UWWqLhC`>fVDUX&v)g8)Q_W!&RhdZ@!NsgDFyU5Yxz#nX1$UKB{w=8Q5#|
      dRlQ*80jWDGd{D+J7f|;MV|`#?$dLD_*>BeUgr@)i
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWn%T5A85UfF91yOnXekGbL7dM{0iP2yn5-}XO4KRU$WtZ%Xz_)qu1N<ms@30{d
      zF56SnHPzMK`}_C(1K<HS7GezL5ufpeqvp~ZI9e>UQ{{os7UB%qFz2|OGVk4y=xK%=
      z@As=ix)F7$wD3g0aA()oMZ`>aq_RPJth5=5ftdI+v6*48q^C4@U549DA>-!llRQ=Z
      z$<+5q*65`AV)Z055c<iL-uQ!S!LVajY77~*aT&L3VfiFcpMB~fNojMiLOaV7<r+K~
      zGnC9}AbVyEO<zeZeUBk;S4@`<pKGV-OY%ZwQflyRa$(uX8aFhMm#QUP8Y2m|rIKBD
      z>A1sCAffGC-0p<$Qc|txX(FybV#>(}?QpH!Yrv;N*;8gx>6ZT$^u&t{E2T|G_u;CN
      z3^XhH3xFK$Ie{d?eOpo7MatlG6!(xZcpnEQ9!5AD;an8+(R~3$!z-a|;t`HbJi)1n
      TXAwS+@C7c(3BwhAW4QhY`!l3(
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%Wl&^6g`tC4Q><M5DKJFo=S{_g~S30#3l_=Xj&F7Ms$NF?kF8_?P5<LWx+S_
      zAFu$43W)`q?)WIgov}fEExO2^`#kra6aW76^A~`7xLrkoq4S!*<5M?%FQc)m#8kPx
      zEgp@<COwHKRDT+X9VO$aiW0-T?sjGD4xSw-R2Z873Z6(L59J3w3I#(WHK8w(lpvlD
      zmKoSnhS^>mrHV(&=ix+@KYn`fS>507Q(^m6knQz$M8IGV4Q@ymxt>bs#)k~n|E3kO
      zOMn{;l}9p?>M=vBb9`c>>ob&k@usMuh^B=G&NCD{U4I4)7c5wq)!s!5bEq@ahcXgt
      zlkJg6)-xLRFb;U=bD~DH@?=SE$&|q{3s0jUoqqNZyILL@8gpZza?LaD%})0?7n1ai
      z*zLca@G#B04HeR$=EajF5Kp8QzD>oG{>8gmPh2CmMf#P=UP2XT$e*E)qJSD~EeH9w
      z7K2{h*T6ZlHbpO~r$}$z`GI-o&K_D$dk+iWC{-XRJys$+AiF}4LjqaFWy&mNV`yWM
      zA_Bk_TEmQYm7)UqOXe`W#-&Kt%FcJRzLJxHS4{GS0kpD)9FXBUZcygv@WPiP!=n?2
      JZ<?-Ke*t*Ls5t-t
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OHUI~7(E}YOj`z9DxyL`9<BBPl!{M^7_FKR3mViWvYSq?bg-RiW~RcAaAD#r
      zxbU@cO`<h%;bY^%U*NAXezz1&MIn>v-22_{an8A?-+zAm1R#S83OWeGtJ-~SJ?*R+
      z=1STX>ux${Rcn?hOt)Z&wP;3xmk^R!>59fV*Ndw{cNKIJ!hfPmb<@;}6+!59%Z3x3
      z;?DWqTW2|U)-VlsjxZMAD>+dhcym@s_(AAap}-e_2SF8ngb1FvObF%;Q!Li2MPc9C
      zLKDtgx>hM@wjuYepjSd9jP5Zrnqi0@yKV+>2uBngCJgOPNku;f2wf|}y=>|ADvL-M
      zj3;&u+CI)I7$l7BXnV2fxVEPMZWBNRM^y|<u0C66CFXTc;u=*kCWGCMaBpZfPn@sT
      zD)J<z;uww-R7R7tOjl!VY(ifPPFh=&cioC-Wko_o5-CDY%@%hB_tHhK%y%wIgvdW`
      zNE#%&yqqWmFoCp!$!$xtwN^1D0V=krF$7mKIiX@&#sZSbZL`8$Sm~0b69#tCiXBk4
      z9G0}Vne-O}Zg<nF+q$@FNFRpVd^{-?W-aDT79m&B97nJNf>%tvVmWO61>u&hl8W<S
      zH~N2TN$CF{??i!lF=~GIfkGkaNd8}S@aso_qg}i@%X=9KBvbF9CO=^RW;3Tp#+oNw
      zO%D*}y~;H*dH}urB^*Sk)#V4g`~b_zcTgMX%cs5~vVlPA3nC2+ZAC}6KGB8oZ-~h?
      zdA$w9#~T=bi{8bylFY>C_WdSL@?nM_$v~o;Ly$o{gpVE}NRQD+PuQtX5u;~F&<3XI
      zIcDeuvh)&{=oRMaHLme`iPv}NO_R|utHY>UjC@$aNu1(IG3Is}XLyo_6_OLrH785e
      Pqz2&XEdP4hle517M)o3Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~U2{`a6kR7x8yZeS`Dhi}LPXRwd{hKMEuv6FBPpVV07X7-lS6Z{xhc7~qy^L&
      zXGGuhQGIYmA9cpjk%SpXdGiY$f0E<c=cZ{|Q|ZjT=iKbG*Is+Cy-)A|^W!}Ld+=Ti
      z5ry<s=ejdL;#Xa7dL%IO!N^#-G+XwJ7vx-1-JbCRQ^}jzpj?R|s<1)Mk2qC1=LL@I
      znTkS3$@LUAWt+C6ZpnDQTlPj3qO%oqMb0?$3SG{OJMEoSP{$TO&T$hIU4Q#i3P}sG
      zIvv7w9dtc6IHYhO^`OH`e406p4(G^dtXweNU@{sSJ#lnklSTr4WSJVy#c6p+<6&%8
      z==M#Jbr#BVfx<u-&?X=LHtu-Nw5bqOd<HZIF+>cfP+(zOPPc?_$4Q*GY9xig#=Mg+
      znx?~qd&Bq&>#{8LiMi60sho1AW(=uk%Xw!e=TuzzZu}UPIx6gZKw(-%WkpqfnRd<C
      zG{s%-Iu$E8fsrZ=YdncQp}Rw4Cw8$u(<V6SRM;&F{i)&B>>AxM8pjCs#6Weo{C}@$
      zJdM2y>!n`|A@gRe=y=nH#T;y-wY2Bx<fI6?rchoKDONFl(V1n1VyO)OM4ApftMLr>
      z3-RYQMsbi)NW7WpSb0top!gX%b4cSwyriI8&#)&_nPmw!#)JtT!O<ATmJdh6s_`<|
      z>M{0_XsOUiTEbaz8dQeQ0-q|MA{)~$maD?|gho~heFP^p-oTqwf&e+!cdhu*lubKY
      zbPHCO(;5@fJP8sW=XjLnN@1{Nk}M6SBzaC_Qha(!&cc+*HB^?VcuS)bT?)OTt<|Dp
      z3W6ubOByjT+EC8?Vkj|9X{-@b5B(0ynDY(@IO;6xF|l9K=tg{n{hU}_jkSmitG6{~
      zP-4AY-%_&PlVT}r%nIK%OAUDh6^$IuNSy+W3*qj%#^rD~uaQSVtT!~K!9I#ll;?Px
      z9dqpnHT9QP+AYmV%`+aaw6Ph-_hs<bw%mUlP}1Su*~Nzy;u}&7yE1dTGDEvEAE38a
      z?iYT`lfXLq_i}du5sR}qy`zTp>ATpNR(15Jch>R98Gdg0o`)iMl<$590(0zS7j#qP
      z1WsWSPGg(3Mfl!~$FQBN>>kGx^iwjVjZj%cxg!o?Q|UU=zoI972kTWdTF36CI2(8l
      zxXAY<N^zO~j*X#1??w!TeNE)Ov<PzNa>8*E0Ez^1TL3zn031WQNfq8_Qj%OUJuo=b
      z7rl!E<oDbcNTfUJc!9svad<g)Sd3W~;u;Yu7=Vwh2yC2vAy%^(NxXtrEx{x*+zG2B
      zUgJ&_OyW3qQW}mK-@@m(EgjIupyMGGZK;sR>nkgDlg_tTsduQxyDf?KH527PwgEoX
      z3d}tJ1N;GjZxi@K0)NyNm<`_mKEPEZ=qBT{RQ3FK{0RFdl;LB7ebNHb-DJmESq0?c
      zN{~+p@>yFDj@c?8&PtFk3G!825KibSAm-Z@>3mI)Z`y)zxK{xwt_1mkAa~k;MC3Yb
      zfE?l~h1FE+>gR}Y@s>IuVO!`Yj{eUS>Rt<$Zqzrz23y3sO+}>n_J_*vu`QKN@2KNi
      z4d-R`Yq%)uTn&z_)f$Yf3pEs%qHg2m3jD&TzwtWxo%nxX2=_Vje_|K@;{Uh5EtCE*
      cT7yXsQubC*{Pm_S=PmXucsWUiBkbMCztl9`*Z=?k
      
      literal 0
      HcmV?d00001
      
      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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
      V1^6TW#Ahkrq__T=&r=+8=6}R}o?`$2
      
      literal 0
      HcmV?d00001
      
      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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
      Qna!NWj~|!Fd3EXU0H`naTL1t6
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{i$x^~V5QhH-3=*Tbf&0E8mQr54s9dlpQOb+TNe?5A8Vi%EWKdtl$M7PS2Oq#E
      z@?_bQP`Ke`Ce!ox*MIlq?c?PYz&aM=h!7^P#jUu{`FFN+nN#v!<#vRUMc2C#N=Yw{
      z7-8v;rsVLQBb4nrqSg`<dVT5HqE?Zf&sWE#9RlqUx(lx3E8(b$sMTf1e&HnX@V<IV
      zFt%*RR(V1+vs@v>3hucy(SzPNl7vBB_qQnveds47FQw8>O98kl3B#G?a=V006O6K8
      zB1IU<wAbkB$+GRpgZj;x^p3<?jgkFjx60iJ?upOMU`$=vK4Cfl{XaP_8^xF|+ocUm
      zSeVoX624U7z_|O1V9bPcdsCV)tMldvsqe-^z@|2B9=dg}DvNgD_s83<>1kkwi%0pv
      z38UzM!F!xf5p;5t)6vDN#gPq;5$~PZXLL6(@EEAlyqbIiY;#^7L;PihIt*ikPnwZx
      zGK#F!S~J_gXm;fZ<6o4Xz{M_NC?SEpfRql^O_HuOg=uE-Z`oqzn@l6S(!k6YFLZUt
      TJso{x87-F4V$HLo2o^p8q}QFZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C(M}UV6g|@|UAnAvsai!qDimzD)J5YP#zd<oCJmU_^uf1j8DMa`tGm;}qb3@^
      zfiK|Mgi7LrAK*tB@2qPeDi9xbCim{S_ndp~eE;$F8-Tl5F_B?d-Q`2R@5OsE*!Gmz
      zSKbq`#RtA>@<^!4V_ycZ+p;gBmW-7ML}Vh%;OHvP=Tx)N-4#7$BF8Y7Wci-*#83pv
      zd(=}h41O0f6y$agMq-^<o@xLCd&Q7bJ2I}UGR(Km)v`v=2QrZAA;UuT0&K0rkZp#W
      zA`jxVk%wi$z?6*%6d8=F1{7K{5bJ|}S43^z^#wz*752E_;gQsFn#^i}4EN5b{D)Pf
      zxWE$+UWjNbjQV1eru-${`_rbxk+oV!3%+5)#CRUFxM^Z8HTKLU*_g*TgE^G3B-Iv`
      z-LkQu=QJbnhD+`ASh5m^*<^|{*csXv8T<bx)H)W8bXz-bGgvRfLDUn^q_%tN^jo{5
      zx6fcd59pOOeICbxTrd9p0#T-Z27P15&`Tz#0LRfQrpTZi5z*gE6y2vtV=T8m!lZi)
      z=QBkaT&6Qe7$CqEIyIh9xQY_p4A*cy?eI43&~T41eSitq7-9MlWeO+tcZ8V(n8qQp
      z*%4-R<_pRvBqb6Fyd#nCQNRZ*;UiY?DIqN-(i$l#(7+-pU=C=2rIdb|Fa~wVx%Fc#
      YpY%N~UJsZ-H92c=>DGqRs!>PgCm$m3^Z)<=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+iuf96r6P~Zj7O6xwn*tVv18F0upaUJTw)OMN}bCMd}M^lPqD8V^_8l%3p!R
      zMdE=E;G+<;wgnLpEwa3Ob~Q8SoH_gB=eO?w9-?i-67b&2nLO#F?{qZoWa=dA?5o#u
      z8fIOYsLb1Ye=O6~MpfYc0`fr4^jKy(j-Ki;Q;An>1xKKsz0s-nKwz`CK%GyrOXy=A
      z>FkNXmVXAe-502K<B@7W;GByZ>JBP6@506ffr@Vc%RL>bgXv_Tl0!KNmB4B*9?GyU
      z6K&4rWz`fYuzh;U(gRkxG**Qz0&9MIk(FCUoIQzWYCq2Ct{*JIp2w*+rg?i>rn~LF
      zgKJo`aa~~JRG(a|;|7~9)q}}#NH6@rbX*ykbRyuzfT{wmv+~mPRAsEvq`&RLGulpZ
      zRY*H8;%PEe94ZZ5nV(qx6a?HLid51K`9c&^){DWT#mQ9o#6+`c#>1$}-^LQ}8;l;o
      z;s-c8_dav^3il&V7M8izi2)AL<m%?JgB7guBybUzN`(%0gRAX)g7bmFJo#vjT>DMF
      zj4LJi8PTS^h9R$i!PP(6oxHA>tn^hb(kg(Z2r1aW%{+4ho9xqKeCwaWTYn1=DLnd5
      TVGDQizP53fyTe3+bMk>-<nqXr
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|OHUI~7(KTw)V6~ypr{D)s!+<K2;vLy)k-93e1ylsuyAOvbV!+LW-f?7z`a{>
      z;YKAIHzvr-h*9Il-{J2tes^XlEi|~8J9FoLk8{pF-|xRWy8tdA<%fr%Z$VvFR}$7!
      zO`lH)z9JGS{zP5Mi==9D5ltDHrA4lbyQ-eebJGtWLqw(|@+u|VpIhJ=;YT$?dubuQ
      zOgV|Y<g{i9u5**2TI4h<I>6A9E)74_cZ5PmHC+?esc`H+vE4HazNC@m0Wj1k@Z(qz
      zUW63{5Ml7fWI#Br>HOZ(;v6@p)VVxos7o6eH9w=8n%uiTeG(u;;^>wKWg)mVnH&ki
      zv(tsFDyVw29Cf)McceTc5>}Ocz|dCKuu?RGqUjblh0`H`vuO6CiJ|#OB^8`Q3#nN!
      z@>=E@1Dgn<4IO^8Gc=ZFPD%$%3oWk+jav$$IL~lWvuvy>%_^uOlbgz!T+P~=J_-_o
      zE(I}kQ~7x=QiiY(CPL^zpC7$+%cTt}kW$buvjdc!=K8$I$(jQSnRAe8T5e5WY(h%q
      z&B_Lf$rp`f?uZ~eT~crvR~SMz1jnr;O02s~QO9AfnMXpnCK1xLohe0F7DTYJM#h1~
      z@UZ+k4;!{Zw<G3=?mkFny&)|cWC%_gOJ;_TYtomsr32V6@e%6@o#rQ*S1pT^J;QsG
      z<&Gs<shF3ZDzHdI4ggJf6+E&!{SDFXBJDi%4#s;vLy2$V_$S(VP)lny#Q-l*N2_9g
      z2T_j`v?B+g!L2Y%ds%@UOnhZ0HaLfFqD(!7)3lPt#S+g6q?bwz#n+*%qp|8W>bKDP
      z5>fZZDjMb220F*&yQyazafZhmNbEOlB)q^|V)c&DuaRTkqXQo>h>tdqR;NV~$dC)9
      z17QrIg<vvLV~^Dz7gFIMq^=^Q<_eIq1ZfR6NaEphc&wtgnAA?thZ(kUl{sO=sp$<u
      zGN7r9&md_IY!IJK;<H73c8Jdx4C5<qVi)81h6nhLS^U5}e!{>nn`az8$}1Fk7K%LU
      zT%NOZHYyoMKu#DV-qH!3q=3AH>Uhs4uJ7ww>H>Ms9_lXFTewYc=_5wilJNWkwl#0C
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O>^5+6g|&YB1d_ojvE4L>33*j$Engb;Uj8+)=6lK>l6}P2w#=0N2-o21zAqQ
      zlE1(%YnTaJX4-VxMTb=vZ1@2T0}L>oG7QY{0~qd;Y+}`MSx8Us>D+hkJ?Gy0?LYVK
      z12~1MiUh-%o93Fiq1V@KcSR4xMxf7%kIjY?6ii<PqgQ=zRrtZDg&U^3A}*S)<p^Je
      z!jP7Rx<kkMLgl8Y1}b_Pj)bQbVY+oaZd<hLfpCS-&>P&a>!Xtlhl)>hZV>dW?b^XB
      z3`fWQ2b(Q3C<V_FePDQsLq$qM5_>rMkY-4ZNx+_>?TS*PRuTS^S#bnIrs!2or)>JR
      z+&2#u86d;-lU?r44Fx^08Y7M2SQNaz8!dBd!VQdUS;Mo~r(%TRU{?x5EXRI4N2#oc
      zpha-WtWhdMW7#m^NR!3DCq<1E4l<-HuiB`Q9}S0bRK<~)dJ&T27)FV3@kzsUDEX(G
      zF}De9WS3=>$2m@5jG><*Sa7Ve=`=dLM-^eH$T5s`irfsR4|$waF~M-46Vq0O96G36
      z(ycUhN@+AEk&s;Kv(4LED5D=)oaQ)#DTZNR)VwwEIELXwyui9#73uT>$BQinN@6`^
      zKstGuV@5jJYg*Rh9#S|<LI}$aWTB~`njQ>=4hg>Cc@FiAhI4q0<2)`f@Je*n<d+I~
      zS@Jc@F^737aoMW{ueR#Blr%M7jES(3FE6!23=J1?S;ZylyAHPFP>wfb1budW&Xv(x
      z((x6J5*DaJ%xYk-k>YGQg*O>g5n<%@iyTYRQX|V|ri3Hx;ixjZHvl!S8&+|qvxdp1
      z=SV^s_IGC4B3e!hSFDGyYjH6<#+tFqHEs3QrL(2@3?IsgqEU{EUc;}7d0UQ=!S<nf
      zQqoHTUUF&N6&$l(7qX#R-5MLE)Q~is=;;AVr{&b5*_=c|`k>Q(+D*|eL93P<zYU(d
      zgMqJUm%t#sdkF)4hYY=W_^n|thG<6)F&y2%W(eIwXJ3tP<C!b@%z<qj+Jr&7=f6R=
      zH1PoGiQFylTNuBKQwh+IY5Fmvj3^J#7*YQF_fi5|u<{urydW>nBkZ|tyt;{@2w2$0
      z>zh!OEhx#`C~o0&K65p+$ac4QtIc93zxgoB?<x8pFn}K^qo1%3KhpsE1(Wy{)A$YZ
      zc!&i&!gc%(pVkfhfzR+KKF449lGZK!9r803anR(4*udK;6GJ`t0@v^kaWqVKzKdnz
      xf0Dl6qc0^5QsVuHM;s?il6dURjo-lsJ5jc)AeBnsqwswlCaqFOMh#R!;$NE7{W$;t
      
      literal 0
      HcmV?d00001
      
      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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
      Crcv7f
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg7z)7o`SKhh5h1nAcxfFPwp;!soxQV@X@Rch7y#@VzBju)*rZN;HI
      zlt07?!GRyZk3yZbeQ9#yV6SKQooC+J@!x;H{{VQ7bsrvK^RqY==Z)-4rN<2`&uwE@
      z_QW8uZ@bEB^HJH2HzNLWCQSErY?V%ZR0uCdvJN@55Ny2HMt#$%70I4Hm3^6(2ZV`N
      zDphueFjjwbM5r`%R|c3QOvl1V`?OP53NePM2;+zdOZB!Z)<^^!Jg|m+Zns?aOk1V$
      z)1cpx=1_DJNvO7UERrK(l#9#Fiak*oVJoNnPovv}d6BogFHKLIzU;R8UlT&DaCC#!
      zbpD;MDJ)>g$08daxuaYZ;Wn1}Dl%zzwdG5w=iN|DSRVCQa9O2$J??^9gz!KQOf26i
      z*Ye`<w4S-Dgs7FK(lis1Wis=zN?0ASGn~p}xH)R9fJenY3*hlHjtP!^{(8x~#Ovha
      zYB1~nMEE0@+~RlWq}~Mr?-J7-M}-hGnB}N~IaEu?2Ua?G@TB$&^B#s7SMa^>Ib)^J
      gl?=|n9o)^i0q&v391r)I<lzAx@*46PvH3Lw*LuXYY5)KL
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4%TC)s6g@XDC&uLw2vDFv+Ab1=uvoAP0s#dH5g{lM8`w;efesiO*%OlAVgrZ;
      zAHYXdz2jJ-N;Yif-aB*7xvzQu`}zi89X~9j2&*^ZLG;|HtNd$M%bs?B$t%(E^nP3E
      zAUsm~=dP6ZJ1wmO-$I5kKg4J-tq&mNHkGgR79m}!o)a>AL0jfgV6VwCHqsbzkcC4i
      zRq95`^#o@=(;*j7GnBEq^5t>ot|`NYXnK-RtOqUOor_SJIJwN|KPn=u#Uh_=pvLkd
      zZskOVS3!6u+k~a05Yg4He2~6&`_1edpG&eag=q^V!gyS;!8L-wyH(o33}y)v*HR~A
      zOCAVQm1@7g|KK$vHRqs!93dO$A}oBshO-mwv!D~U<bg7iC=D)W%~V8i4t-ySd!C3Q
      z8CfV3%0pWkq_XtKW>E&OjQ<6YVlRsvpB6_OaST{1#r!ku#~AR1Pn#c*K1DA58>1XM
      zOkfzsFwT}|f?^`E&6csSUNHHDuY(d7EO8l2O!r}lgb|y^LQMX~^b{7c#Mb5;!ZN<2
      F@DIU0t04dY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fLg+5It*$I1O$?xrA^jka9~xf_uM(f=ZwgEg)1-`fQvf-72w>y<C2yU(sh?
      zQqhM#_MsnDb=FQ*f+f@k+dI26XU@!-^{?OGe*k!hH3J$$<+FWipIgD1aGRFo=hE8X
      zNA^ieZZ?GU{P#l6t@EaE-#Aiuu7L!@L@eZh;vxrz<ce^GTxHM;#X3Wx<~4W<w;1{z
      z+vl=!sL;~T(Ql#;Cc{W!TLD@vn;7g%pNLddWM*5qeD|b%$o&KRu*De$w>`&h)oouW
      zyStf?pG3f5g&_Z3NR{yIu%tciA9;S8HyEb7Ozbmh@l)<fD=KPJt%*|_48tZykYyNX
      za;eI$dF^A*rE`Y0o5SM--}L}g)5u}mz!(vUb-35n!~`Z8QpBOAn#wR<D8})_vuZ!4
      zFk@hvAsd4YJxt_rpM(pz-0%o1QP@(o<}hbs9t)&gn>1`4cy+<g7)I$hQcU&f19v0|
      z*WyIKfRceC=@jbOb82D<WkMpxN<=kF<kux_Dc3zuP?HteWfK-2&|nau9lI%<kma5i
      zh$w96N}r>sV%@+ahWS{1>vrRBy3KQkA4dRvp|}i_|H_EV&A_M^`FK}*rJzA#4nr>P
      z7j>T@z3-j)4u31u2#;L9UCW9ygSq9p+^@ClAmD+4*OWO{%=J)e=as988JbR=ZZ@FN
      z(}yJ42Cbfw&FE{C22<aVz6c#|(>tvk^&uqnVca3xjNFjH09g!oG1!IpLcj^yE0&fz
      z7}_cSM84d?=x#;7#61m_vfjaL2aA`eX!wf6#|sL~Vh)S+pV6R_O(`yVj*^Wbtxq7M
      zPa>;NV^Pnepf7|3N>P$70ZNC*ctS`?%u*H42q}XxJjV;7qv0i?YIubzebvomSive%
      Fe*i2*KZyVU
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOH&g;5dLO&$-=S<27&Mf1xz3ic_|PCC4h#9MFHY@36r?ivP*4-#}Bf~GgTIf
      z2ag{7J$lds+Or!=ldZDK!#;YZ`|I!P>7FmwA3p(@z=jTmVdAxQYMp1wXSQ3)2!1Xy
      zE4*l(IAZnC7M{Ohi@{}HvfWMF<xdL2_FNqrLsukhk77dyhS-Ab+G3GGO{Vr4w48Uy
      z>(Ri_T(EpD#ttOnm_v{TR5Y5XgUQgE+?1#p$091b!Y4*q8QvswKR-D-;QpR<;Bbcc
      zrdP0>eap9{U0Kw`E4$1v6@dJgqAcaG0&UyeFM9qFKV;~uu(8fWhM#g*WI}bT@}GDa
      zV7P6f6>TJ|#D&zK^Nx-^m-ZQ!{v94Axn2d3HIP83jt(LcDRs50i7s@99CEU{+g{n0
      z=M+>wZ=e_bI{FwoBRDUF?T{-kn;5_yhDMUH<DKma%O?dxp@OPPR%g!UQ-q(upot+2
      zGt^UjK!K7aQ&EY*UbYcQjOa))v_%*N9wtVSrY0(LvEmUCEt!|)PGH<b2KR~Q5%rU^
      z=k444jG>*j!^V+EwZjX7`p4l^!AVT(n4)$G+Nx^T#0(yUie)c_^@>+WXQb=4XVW=L
      zva=@UFi-tSgtn}bU8pH@%U?$wMy2+3EKmg_`j)N3-|1G*3;a0DTNm^fL-!vU(T-za
      zREvRVRcp?K>g5%SGzctDPk|v34G9l|!Pxaq`~qLI<xsWO4*s~L&tT?Vm-{)#Dwla#
      z2cZr`bk&B^K-JtD=%;y6>EZztdg>4(Tc^JnvKf8#k$C-k7#D%V4SE~WQTd9P@(nl1
      zHbXZwp_wd(TZmU6-Vtyet<8^&UZQ0y{TY+#^d;Iqpl7j1d4oYR?#^o+TF({kDd^DB
      zJ(n1}#KaXIDtHU+<pm)bL}eCP$||!Dqk*!2r|dsqDA#CFej=eV^r{MmRTZ;p40CE@
      zz-&6qUSUQ&@Cb{97{fG{@R$%=Xh5D|nRxc19XYH(qt#W)qhJkB=_{`jhG$qu{V!;s
      Bc+~&^
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc@~6#k|xY%Qx`E0+S5i=ZvE6a>6b1fdiy7efTg^U_Z1nq`-4hs!_m!6#m-
      zn8=eM22FhM{}|8g)@Zwli4S|3nRCALedjV)KR;don8t>R0K@bf{a8OuS5FM9k{0|_
      zq*r-aKQcwGWC+{YFvREzuNc;z?Ua^_!muqB3PZooZI^sK1BSK*!!pDoLrXkSU{JDl
      zi3f3wp|hwvT%`6TV(Nq-Luf&}hE`|{UGYtcnl^Q!vLhT~l#%Won})?-93AX)XII}h
      zIYW5UF6w4McMQ3%Zz|%oQDvBMLH<iohGOWhwr%c|ZRdcO7zXQX^b?Wh$J`QWPhC#_
      z6R!{$ZfWR3H_57SA@yhNgG1Y*bB3jVyZcG5HvnWp=tZB3C=v0cy3tfaKL$JwS()8!
      zyK2Zfx!KQ$a2rD^1{wN%IIo0Zk}0oh7{&;LMlxibcZBYcgfUM-Ln<3XXYvUO(2G$G
      zW4Ox@BmkEKMT;l=8r`!@JK`8ukznZdQF1LbOdv^JROMpTCL&5aFZ11tNeyXCF|;30
      zLz%mF!QdwhJ#_4Kj;z&7UKG?oCZ`nM$E=DO>KC`K8csFL;Q=8LW7$kz!oqdZX=%D`
      z8&qgX_K}9in5PCMLR)&pC^qFe@>i`ruS7w`0%g#rZ$&Tt4wpME@<T6ftJ`1<1Ak=r
      zTaJNIE{6SCZK?_7%PyB`5?G#|B15m=#VZ6uXvaQsihRwGQ`OZx`IC}9wME{txRW*Y
      zYL!=25bCf`SF<ZkRMWMAAsUz#x_N*AJ*{Y?wMu_;v}W{G$HT$*2%WhG*XbQ{4L_0L
      z1#Zw<^UTnJPFgYCM7R#|j(}TfZ*F{|hR9a(5~*aehMo_IEz<YSyb@Jn=eQR@R7u8a
      zNYyZXj)wufg|c_%!cJiZ844%^k040z&lLEQNPIyASBT;(4aqmM`i@!ra0$(NLF<I1
      tk|$Usv^J!$gr|fSK@7`SA$n2tAd6Kfw3{RJ0M_t~zVaGjc#d@he*tkndGY`N
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&rcIU6vw}>+wRhJrBJQEKmkRASlD>*RHHE!6SWc(2#Lq(c7QS4oo03lMgJ-<
      zn0WB$!9U9QX4`~7je41xH}k%qeBYb*^VhfU03PE(fD)nkQ5=a;oFA*~AhvR3<Ck(@
      z3{$(+Q&yX|%C5Hc;N(SOmCgc`2@6w-U6zd#2>w%*Df^7ztv%c$l-s%|XHX@~Cyd#!
      zdLv2IpsR)Hh464GLIn|_vDR_eI2CMT#~OCia{5|FWpaDi?@F^Px~U}8J30~Ro-oSA
      zlgqL_R5@X@fc$SYEyjzYuJ_XHYtxrK!qUWuIJU7ol9`Rim2J5*TM9wA8liz}gt-H0
      zUF~h%ALxwV3D5s7pZ53W9H15A25tqo$wsEyd_Fb80(@?;Yb&8rcqJ^3+xTbq{5w_{
      zHceRhrxQZBqlYGuuas+h<KkFsI)8-db(TrfPDP%}JiscWr;J~eGWu+$u)-bncp`xk
      zpDOTq4LEvI#6YlKpZSXLOObGy*N`9JW$-<XS&kzXa2jfu<DDlB^$FqwXF7Ck{n06|
      zylehI&^*QUGgKXAMvWMCg3$YfS?_a!Tpr6NNCsdLw;AfAiaS_hYzfN@F0uQ&yt}C&
      J+{1lTe*^P7+%EtC
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O>Yx15Qg8$CcDkDG$jzeT4)Oem9}BUfm09&g(3l=LTXisqqA{~(PmwFy>0&m
      zT>1DDT#CejBL{vIV!Vk!Z4hv=J@&kh-WkvLA78!#xPzMkDumV7VqYA_`GLxIV=E7B
      z{7CMIBDL!SWwm*x>{7R|4->0&7NAO)oe*rXYLr0m@2O1L`vh<K);6Kq)dM+&I$<U$
      zY}@K~lB&JF7G@B_!>I^0M1<CI&r#!4u!&7;*h|OB8$FfDjbhlBW=r%_Noe+TBGPSP
      zl#9ogRr^Zigmww}&ssW67iCp1q}kDCC<lc3u@7-zW4SLg8;|N*cV~7Kf^aTE3+K6@
      zU1?qAT|L~>8NU-A{9Qh2@98l>C&Wcu4seN$Of>m;YJ^$%++=Plp;lTY%#E7(XY>3u
      zRv7k7Sp26ELb$05lgP))HNACmByKx<gy>0@Nz+Y5p36MI5~C-4pOg~nzvc;x+)s~(
      z5vcH~2A|h}qq}7c1S`#{&j>%238#4t`2pS=_}*Jga~!dN)6l>S?}RgGju9_8)1ezH
      zt4BEdeC->8wIf{kjcTIGsCSHdkI?&oY42l+To}p5NCsdIR~YJ}j;okwYy}GpuCV)S
      Nyt|noT*nR6e*&T0+Qk3>
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLOHUI~7(JJnc1j(f7V3kCP(^8>rOHz%f~7#HJVHX#g}NEq3yf)J$aHvZ^mpJw
      z<4<r?6BjO7xYHk?F``D}#y?>E?o1N`C7PJY+&lMv-*@Jm^WFRQ_v<$RZedPA9mD7&
      zZAaTnly`MwBVqGBJ2Au8we6xkThMLOTF~w8>c#@!&+c#WLMm_TrlCM)XsapC5`vq+
      z;GNJ7-JWESBGDX!oHh&GhkAyFg8PfOE%5x1a888>Dnlr;C?FF>jo7T(7LiJd+NMR_
      z;LF>kHEw0KwIXK-E}D6*nA0p>tgD-{y{VTO#vG9U5S64qX^y-VZmpYEi5D0;tDLl5
      zJHdCjVJBRHv*MfB`N7blB7_SJfemg83({t3%QPs?F!lHHTB`R>03`jmgjNNYiAasx
      zCsS3lp`F36mqqVfo5=e60^y2^P7$o9pdmtJdl=UgTxDo=EI(78if&wYWx1kBSV=R;
      zm6k}fwp9YNM@0lt29>N>G7I{;&MoQ*5y|+`hq!_m0iN!%ihfb#EplVS-V}*9RXU>s
      zw3Xk~tP~k3M>5g0&@!ZASR9ss#kY!Dp0DyEcbdlFaT>(X?s7X*6E)duYZlRC2>;W5
      z1|@GAw$sXBtzr^ZGRY2>p*K%&ni{ZbZd-Xir;BqMI(?n`g><qfV;I~@7qxPkmlezq
      zmzwsTE<Hv&c^Aob;z5@hsG~0ryfiAb8g|xz(i`->g8!wH&_JV~0+8OpE4@b}tyL<Z
      zG&CVVGsAfVs}M(&>7~7gy?qrlFU1a#?K{Lutb&UN$k5brfN2VKEz@vgM2;U~FkV6L
      zGsHr2!1wqmx<j&urjEE&L1M%c@&vkGpoyj@&*6(v?%*-60b&B_1M&KZM(GpUrOyaU
      zN9d8hU_kncap@aU(s#^DKai7t;(_$b;Xmnetnw$e7{Mqh@FIuX7$Xf~jMI}On|d&W
      f3EY8<c{F1ZQ)E~j?vlnjq%cjhxX}!0%%c7ep{G%m
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2_vv7=F&lCR@^#U?G%#L_k53wh&RNm0%Ilpn<d&62cXO%jVFov)S!zwjaO7
      z3vaweXNq<Ff>FkC#vkO3<8yY?k+O_4UhLWPp7-l{-t)fakH5eF3BW~kO-O<HFYGOQ
      zr#jen{k3YOcB1N%dSq{UQKRQZL3qoJ&MYZUMQVk*`nnxnb0RnJO&9`GDc=r_5(9zU
      z71wv8MS)DY(iJf3K~Ig~kicj!4tU<DaUL0rTFAl@D3)6~VAZn;r5%MtRMVb?mg}pP
      z&Hh6bcI=0q5*TX*j_q~r(ADzr(1_OEfxto><o`3OF_9f}TUFtsAndE2z{w#bdpoMC
      zE#*hmgk3}L2`&$TV-|`yE^uT`MVfy-=x+o*^#WJ_+dYl+=79jUJWgQJ!~}t)N`27O
      z!W5<jUMGe&s~huZM|MaMEPqo6dc(p=ZBuyBrs4Or?zDwB@fNR!x~0I`?8op+<w_dj
      zzPdJwvp8qsZGnjtxP2oFWmMP-q3Q=)ytr(+*{pQ6=d6V}jph(Dwv@jXt!o??EL8E1
      zzz9$4cBlw{@>L*W9TB{X_f5Pfa6E+|wy<ys^GrX`tQgBEGrP{SVBtetCf`1r((43W
      zS8WT7Q=PP+zVAD%B0JGjyoM`SH1QD|FK*BSS_@b4aZ)+mm3la6Hw0bPrmKO=X3=1;
      zTc~4+olZc@_L}R&C|84lo46f)p<fcO3a9jjz}XbP>vnHHU1P^l8%cm{+@u22|I$de
      zt$<)HPN%Q-U`ufzG8+LWN;J9i6ln=Z;6&OlxebAQJJ<{zb;H#&T73B(xu7`+SWVwo
      zVcoL_12r(wA(9limt8qzuX==VisP5zV+KfmS>!02++Ct9_%~<9MxG%5I5v2VYhD}5
      zZ;+GU;xJ_^F+%}IC~<x;HVp9>1Lt_AW@dMBbb0PM?$7OFe3473)SEYo#+MkQaH>=^
      z_HZVHuQ659@*ZXczQW;Hm#DZse>ppmE$!i=#6)(kw2KdRQQN~cNk8M>V<yexb2w-a
      zpawdxSNViMze8UBfP(xH<ML-r%U>`npJG8iLtXxgru+@J<#Ralcl6|+F{#A__>dGS
      y;1hhx3^_bN6E~TmfDUe<MT+BGm-!jgOkxF}v5FF_L?Ce+clg&&oIo3QG4c=cTAlX*
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOK%fb7(MrT>`9$zO+!r*h|8Ng512wB&=^9&F<_E_i=&`cqSatu!c^m#Xgp5x
      z1G;S&?V?p%(T9YPx?__nU3A$6e~2CQ+!;qD3_@bz@xAwZo%7xE-6zlf{s+KGG)+i>
      z>93qMXT$EUyZ(wDsg1~<Q}>*n7uDKs6om6`bYxC>DpHM5tyS+k;iXpO2EGYHU|%YB
      zi3t)1f!ul5ccWQ>OnH1+z^DdoHGsDS3hg-I@l|GYgI+g}3<fP^VF?t=3p%OoIfT=U
      zLZYhZ=)!{Qs~f$}T@@}lcReLAv=Fo$Z`lc5z3(3y(S5foa4t^r=Bz3#<iz|MD!dnj
      z9n}`t--qO^N48p1eq<*MYkEy^c?i5`p@=;KyH-@Bdr%EJtAS6uz{S^xr;%RYk)V>t
      z2=<y7C6H9Rce+~GhcSV7iJ{33$2^*m6A}ckpso|WZ(+aoDZJ=Y^V`~X(83`c78s;$
      zE@<^SG5k__JPmQ%Tp7esd|=|3z-S8Gwv&Z2#wmwTb%HfsT((@V>#mJp(!vyu3k<Mg
      z)d>}W?tN9c*v48mPMY{oU{9)6>|x;)K4PJ+#?M?vxnJjug=w56vkoQbEd|T2S{E3m
      zIT4$_*<0)vHRmZd{9{y1%ur&n6n9uHoX3TvM_PY+6zJCnZEM#?;8GSE>_rQo;1V@W
      zK#R_b+lo;(g07o{?S4TSN!0kViK@WS6u-+(d%Ik1qor1p1ld@Q0%QNvNDEXzuonl@
      zm$*|rlzwJ4;OvMxSDqp*(GnO*$0fHRkZ%UPu%)iJdK!x_zZxer2LY?@`zow@PPePN
      zCO##S6uFl}IZm&7a&Ulymf_O{NdB_Oac^>UhI_$(b7E-VFXSJ`4sY|D*N*ZV<m9(_
      zhkGk=Ljk+E<D_7ypW-PK=Xmzz#N;M+FHZf7+f$nup5>=hYEK(Q;{k@aIZ!GZTR4)z
      zBTSbb;MCWd=kaNB$mPULb~Ibs!U>7d>{MwJr#EqK3$v0D#_h)}m&fP0gUf`bA<k%E
      z@;gHO9(nl#3i3w`%bzeNf5xQz1-4`r`718S-%ypmV_yD&JMtmEkblOMW)s+bN+f_e
      w)L12l&u|4-S*3s*xQ03j4)f$XR|cwF&tri-lvpGRNuQhi*H4*11Gg~nANTZ_`~Uy|
      
      literal 0
      HcmV?d00001
      
      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
      zcma))-%b-j6vn@^6n0q_!SY|Lf^bnlY4pMyjEQMAsZ>HJsooCTsSMffkl88lT3#8w
      z@Bw@%!<pSpjO`5<yR+x)cYfzPGxO)~uipS(VcUmCcyTGN#cd<IQR%mamAAIhk^?bH
      z?1#Rx+8imn)6zHT``9X-`lt|IPgI<7Ss~czNn=$klF#~D4rN-V2{Uh1s_Z+$RDHKc
      zs5Et72ACy;u`trU>~oJ0Q<#e|jfk*X@3=ONM6j){HSF%N?J5^KDwW5h;kh(t;yjUr
      zYDaU!o-oSAWwK%~R7N<+Dfb=kkgz23K~JO^Xfu@k_V6kp)CxEMahlGz^E8KLtom4C
      z(-S+Biz2LHowp#9wxul(U(Y9@n6N(Sui&yu4+cB|wRw-adSqhxQMqwf#?R-#btOdY
      zG?k{Ah%A$tk1fL1gq`tHM*llpY=V!6uLj`pGmROJeg1mGS>iR=s|LXjgx_<;JikMy
      z^iJV>T|D48Ds))DB1aWGM73mmVx?mT`?a4~@-WW$!i=vuW3$ke46eWi9+lk3s4>UG
      S6DE0hif6or{EyiCa|CxN6s?H>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~pIQ6g}GnQc4u$yM+o=&=yJqQa+>zLMd7(4kHXchjd%wv<Z`@z(4ZE7hdY%
      zgO5J=qa5!hMTIzy4@q{j_nvd^-n0At$Cs}F7O<}%#4!6oztFF=#-(XhHJ4wx+77Si
      z&6-;%o38Ebo9<M>DsLICX<G_phS5O6F=hDy44vzyWx5*-QZjYIAm{Be52K5r%g`O}
      z&T*?8frM@q9Z(qtlO+MC)pTM%avc(p6L~!))8cQN^;7N~>!&r&&{whzy>_BIrkJ;X
      z%I=xjV3_kj{<DZ2q3d2bhuo>yPMwz-#@jmdOIPC;+;TO)pn@2aq6ioUR19K>p|{Fi
      zQF7j{pW7C#Gi?4lJt%MQ4nQt~5yTWkNl0LK?}n-v#TY|3Y1pxiX5FKYCsRR++vQw0
      z9%DkmI72i5ejB7>5(#P&!IrpHb<ey87KN@U71Mai5T>=f=pjSwZ+zYwktH#sAjL2g
      zAoC(r%py%bX@~*{OHLNW_KqN<Lc=_jRwv8Uj_nhZUos5SvTqU5ns?lA$tg8XJN6t|
      z1&d@1&p>xpRV-oI-z4E0VO@%Ai`GQwp>0xMh1gXUFR(^VBtZvy)igYnhjzpC)B68t
      zt)G=TQLxT19jI?xFW=G?t_*(e19W(PVi@~fM$lmljP_zO*u}fuC-2I3r9zfxMS2W|
      zkzk772!_a!-E<7TYl`DDc>h#qgnS0IXj$CJ*Yrk%Hxv-+WT3A5spOMiR{|#JWJq+M
      z03muh&`EQJMoTnj^i^j1!k-bj_5vQzJ0b$53_2wZ4{5IYVdz0G%@`h`uMP2ufIH~l
      z^2}@t{Rio9$fR2szCoN}gGNu*<ft6K!Ltyeays6^Tnh^~SP9`H<oDNvlAvoYiyScu
      z<^;mTyhzMhM5JX5NGpg*t4K&WWTlr_lD0iXS)aA7i1_gm8-&)0d2Hepp$*V+*}^vI
      ci_v+^V+S(*Ef7ZtyLe4sabYmL!5+dt0h{h)mjD0&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~6#nioFl877TY>Th1#F=(f}lVVgi^FT3<1RT&|YxNFhi!p;|H0zCNWi9
      zxOCxO7rM}>i5q`|@!XjjZ6`5tF^_ZaIp6utch0?Uf4+JRU>s`-BnJJ7able5#Z%Kh
      z&^><U>C1fIIJUfO!Soz=&GZJcc46JL`C{HP9b19S&>0Hap~%32p>EE!O>dr|CXw7_
      zkTXt!M^MjjDQ~#k8|8Lk)FMC?HE7UK3yq;Au`V!m%OD!to=a@fBDhIpesFxa$K4%c
      z&*BWxbti9FyM}8DySylSkIf>(xDWCl)ubtd;n%gv-F?SB<OPP_G8g02)A<RvJw2!_
      zEB=X<3Wh5hTF}bSe84?Xd&W6Da%|dXSon8%nBr;$Kw3o{9SYisNJ!>NR}G!$3OHnh
      zvYSrP6g~2l&#CA^pMqY7ju6g6&$P&u7d7<bDnmV$vE`gnrx^wV{uL@#=1u34gdWF$
      zhCvK5L@3%PK&cYRaDo0_x&a9cD@Zc5hWPj%8b*+!@hNg|*&!k2L{5ku$Cw5kHy9cY
      zX_BlRXV>JX3~jU>42@{i7SDS$I~FJXCNQbsCXI?eQWd)zrf`dph_RTXK&@z*v@TpX
      z9h15&$WCjR!7R-t5!x^g%zTx|vA-G}L?w3>%#nhj`j(8s?{wL-JU<HZ*80=M(DkQ`
      z@VqfF(xN}CYE@52FK2(B4gt&2lV^yBLxM&ysN2r5o98R0I8ZIs2YyV@XV7xC&E1S;
      z6pOs5fKdBGbybHlG*;Xe=%cezL)Q%;(Nl{$vK9K9BAd}y8IDF?Kt1;z8tJVHN9i5v
      zr1!W)widXd3C(0NTt>7E@tlBbX>E3Rq=eW;>J27RsS?^=qI<qudWr!uuFcBra`y$U
      zOK6u<-6f2cFn)pC5}rYRbWTVrQJF@XvWo0OsHf~7DEmjK(kH~E&xlK3&?9}tkn|1H
      z(s#^AKYV7BLH05;;(<GuC&W5TVgYvvF-FH@5lh6g2W`k;88WSADUXB|+@r6!N*L~A
      G6_H=r)_6hy
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EOHUI~6#j0RGPMj3TY(m+JOpi_WkA3OMG#8S@-RfOtcUg%$FwtKI#B+R3s-Ea
      zxNzyhpP(yajGDOc7Z}f-snK>46Bjf0b<TIb^PO|=yPvP$0GP#=3?GB~Ogq)i)M`yP
      zj#QhU+3GqkX(wenThwjS+S2XutWi8Lt>S9I)=fi(#4zY_+9yxffT4X!H*|ZMp)H=s
      zGe{Y;$OE{<&{fbZZl}0WOw|Z5h&FU6@Iztfjc*G~wX6}1J=-ESY2n<xtsDH&N#&4R
      z``TfdGlaIyf>zFJmM+$fP04<$R~cp<kpIXgO%XIFuU&4HOsm3+48sjBTFqAZDK~7@
      z%`7YC#3~4eD++qi$Ix@cZIOG%tQ?yLoinWb+uciXvk4#_L<9peqC~_abF-;}K@7PZ
      zGD6v1v#N_4Im+jPxQY=O!wdr+oF}$kCR1KjFp4pTAf+K{Or>U+a1&^fu{m%$mmv5E
      z#uZH9Izxcm9R?IDp73VqoTWPu$E1t|L!XC`W1(OQN$Q^}x7STlQi|t<+7V1EP%*>M
      zQK42U@0)p@*BJWg*zFoosmHuvQ}dKL33wCpGUljPoSterRj`0tghY%*Be`;g8l+WW
      zx@+oGW<mCjg1cCx<|INp+L2ypQ91lqrCqN?Ud9qB=*e$QEB+3bJuC2IH?H4lFNUE%
      zX?Posfsq!YUR7IaLVB5{65Rrpqp!da@w&K$pnC6_Csu)P=;B88w%+(@L7zd%83wm9
      zWvyD}RT+dj>dC9sm7%lgxxffrmNt5C03UsRw9{Iq*#fN@jq+qD@Djmu$Dot`LC5et
      z8Gb+)trgb{-RPke!)1gT5HASWPkRfKQ+0%Ql5depChO>bh1fEU*A}Iy6uZC;AEHt+
      zR!6Fi*$dqE;W?y(a|d<?b4XJ_5qJy%`hTRrpNPa~gz*JYe5DKWjjX<79zPsH^KQ@v
      uA(6>FEE8HgQdq%#LJK2?Rjd)cDEg7XIwac761oo?ctE3gLKq%m6M<i9mv-9#
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O;6iE5Qg6|A$E-^5Xwi}P(BZVs<n_%FQ7_QC~De(kU-oQX9J5IFIsN^^<VW=
      zwFiDce^k|3+ZU2k5B7R?-+AVp9sl|J`w_q{Hhp-6_(t4`hd94i*;Q=igN+YmUkp?G
      zxu>i)-;~`t(&k>6-lxPWo%yH{_QsOVIkOaOebGjJ*O?XRvA&Z7nN<gb`hm)n{YaQ-
      zZC?;-ZQYXro)M-KVWfT6FAIg3z*K}uM1;jw*VT$s!S>FqVVC<Imps!|nLHT|E~Pma
      zm#HK)x;hc*g)qv+)n?6JtDLY~Q2wLMeZssb8a|bVeGO!<Gq_C&&C<{lRNJ|Cwx;j`
      zi#`_E_t*^;q6kY^=8MRsJ=B)3pj9+O31NBMV##Hd?)SL~>JY*+Jv50tQm*5L(NVp3
      zRS8ii%cN<iBF|;+W1X-*W@j{&hwx<1SOd?Ae-yyuXA*Ueeg68uyTog-(+KK65&kF?
      z)BFyd($nz0TRi7DDs`B_EJroWp;0luveL1Gx6NOe_b|$^%orAowNh6xI0G;7s^Y#z
      VlQ|w%nB?INR(TEijM)1If`2A~v+V!?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?Ur!T36vfZoZoBPvfwEfvfdYbB5#1QWQ;kL|CP+0VCA{!7Z3i6P?vmLl@U?uw
      z#0MXJ@Ix8zY?~NZqcNMz%-y-?H|NgWA3wi-1MnCv4-VnUM{z7pqwGW_hmnz|CVC|g
      z#5guvLuFFEqs-cNl1Xh|YAHUw7#Ni%9$dmgLAcB6NdlqrR3*whBa~YA_Xut$9m*<d
      zgh1uAhkc9lQ9?aH83Cc$>RMtH3pUa-n*Fq`bgrus`EESwOT8=lu_T1ubRgnAp_PrN
      zKV9=dWrWQf@}Kpz`4o{?_Fn3PRFCA4ur&1}PD~_^Wn!X9ZCiHD&U_Fq2Wa97p>ZgU
      zt-h0vj?#qp3D5s7FWP)_4$!XR8i9NtH?Zhof&CQj`@AB+O?!<EEstU`kUbg8yd*+7
      zw@+A{T=1U@;=|bW%0GP({9ZcN1NmCnw`gAMmPghmKl65yNZpA=mdVV+T}BuDUz8H&
      z3$2C~zUC75E8y^|j0%q)N1J&Jc<W*H3;fS{!VHf-Z`l5<xDIAH4p_ixm_vhSJ_F$t
      zvCo+nJ-`0o442++d`E2~yn2S~zhNO<hSeDsz;|cRaA$Mq@<cd=G6J`-#MlbzSZ2=-
      Uf43R!U=?dT+h!r$!9CP|0dRHWR{#J2
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-lnY5Pj2byLDZwR_ixZ!Gj;@;z2wpf>Z^uh@g0nZK{zq3)!^wZ+Q|t_yhb=
      z;$*ids249YnaRAD_a^TjuWtZ$u;`;e*nJRv@f4*4rSBpupKNq2yP_A{la8{9IahY|
      zOsCS=W}>as_NZ-DqJ4OT#b3~C#^(cs@`2LI9ukUc>o)|inRH|YBZR8T__o?PVSpk=
      zLzEB_>T4~>8O4IdTv@}K_8oY<rL?^0J>E)lEpB5;sI`)|h;M{Zt{yf$d#_T$UPkh7
      zPy76i$lP5@(@o5y><}75MPgth*=PSz?(f8%Gi{};O<2mM|2;?uu9BW<%Twjl*MIJK
      z+u0_BXIe|sj76Ht)W<ww<=2jXLJ3oUd=OT^o9BN93VbS|%+cp+H>&}EqgHuA@SF{d
      zaSZqZUIS%s8C9-B2JjfhF~ONIiP{&1Bjw&V*s;Ug%z!ib<q+tgQ<&yhK%GGa%wU#t
      Lz#YOI7BKP&@;{=i
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?Pj3@35XIjln{2XOXu1&owa^v{gi=^lhyw(HP?}0D0U@R8g_D!G#c1QLyiVJ%
      z#id9bIC9`aA;z0Xs0jk0m2A&?-p_Bw{_*qcHvpSx_$UxIKZ#>;8fPa;AI4Um+IUMI
      zh*4tO17%b5M%lF;ok?T&MDKOqs#N>%2#YhaJ=TsB2;~<_EBlgAY&_T}c&&6GE2t6z
      zm9rjM(F;(-T!<1vLcP&(yf_hTqH7I%X*%J2M``(PH0(*k$0w2yb<(~__JvU{p8WLe
      zN0kwt<dFZWrO9WAysG!o9HeF_2ZZH`8*yS|c`UV!$91*cntcTzTn<sk6+-P$T32~1
      z9Ui5c_X)55E}u2Idk)a7;2MFd0d8Q)$0GZg>GgR<h?}m7H6xD_(U)DB$h;&%DYs8p
      z8n^e)1@U3*di9^a`1ZQ#$n@p5ayL<*ekYHeO+vV%wKT0nWSPu-++*~N|7j`T!qg+f
      zDmS^v?-VHTs)RC+K1WaU81UDl$`=Hm^MngL2D}098Oq*sT;w=p0jFUeHJ%9zh$e^+
      zoaxXD>krRx>FvgMR5zllXSn_w7Qtg!i(y*`yf$jyb`D(`3nx%U;1-q{TgDt#*mHru
      T+l(&Y4%T>fPla$7_fh=?XhPv;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT|0e5dOBLq?RaH<WitQxo8V5;p&AV2&HJb4I>E8Aw6K6k}zqw{39QH;swPA
      zAARsgIqpfyXqy>ld`M2tIlJF}`|WOi{`&SEz%({hL<mzKjSJ&SuU%U9iSCIjPhS(q
      z#(C8%RV>eOH!W{;hffb3x3Xe-mSd|>2>l_ieKraV2(62jZFx(CmQ415pcI{oh~XZg
      z-85X`<!!djUov7GEojpag+}PgY)MePYA}&K&t*OZ>D|6%*<$DX^hmh-#!*!e5?hXG
      zR1XZ-lKc9h;(f4cgc%>?fAT4C2*b~8SGdQHdnzh~!8#e^($mF-usuD<tt7vhRvd&!
      z8oJO;=r|Fc%)aQHo;fz(6PEw&9_F~w08ogd7kw&{Oe7?9qp5~|3<MmCQrlgpX2~k~
      z+Lz;aj3E_+guW2Yd(Wz}si<j4W0=s!Y1~zsFcxIcAY^0YLOIL$y%^Onh9`s=`}-6)
      zSSA}z(Z4ISA%k%hSweS+k#C`40y%D>n()>fmQu--rQE%k)SzREd7g4NRrj3(OI#9q
      z_&VqtS*mx!^tgShf)$*>oQhfQ7Qd?+ZZ*u~S&*@8r9iJlowP1ZcO8rCEXlsm@DdB$
      zo=j-lII+wonLGa~b>NjfP_f7ghVolADtF;ZSEe`%;zs@cA`JXVBiwNWVlC2PRhw$U
      zdO63(JO@<f$0YQIU4lXo;(N}yYl?MC&Qw?P)K5zK1g&h_!Yx*fT20hcFlsuKSF<bO
      z!CfN-Q-dKMmlpo%01<woXyv`iU-P^tUe)nL><i-8zQKKd$E6{4qm_E_fcIKphIVxD
      zj_?qPI>cuNj`G?3_{0r5w{t&`&*g5=^A)KjUPl&`q>{SD(+HAEE_H+a4W@7LJc3V9
      z4zGRKDa@k40cGG}#27!tfd>(%G&*U7$8Z#B8slclV2*M=p}8Pvosi7r6_yyS6?rV<
      kHKTPRg%zway(D^2#2OSnEpdzp*71f{`4b_$#Rg)(0kn{D>Hq)$
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O>fgc5Qg806T5LuQv%_ug?@rcX=-uc6a+${NI*c9T2<n>Nj7DX<Bisvw!eys
      zOMxPB<iL+Y%sP>v4FWDZJKlL8y)&NgKTf{_xQ{yl3WWMQaUhQ3>`<lqv6V+Qekyxn
      znAokZvf8{<c6D21RzB%irPBaK!rX*pmvy58g8xvZ%041^Yj^hu#is7cDU=D92aZ$k
      z8QrgU5;bURVY(qaOh+goBGlGejvOa~t?XFCjv5Y8X{l7c9`@VP?22|G3DuVFh-6O~
      z<?`{zqJ66}LYzbXyQ2p4Mc&)CG(BzlvP)PPI}wLAmIpGm@u<5kcV|x_xSa?!Tp`Tv
      zOY8b?>i$5d{7!iMclo5j7iR#C5Z7=cz;!k<G3v9W5$50%O8ICx=4J`=qe1@JKK~*s
      z47(;Q{nH8|+|fhRk<XMHeC_;lY&wI4=y{q-(@aE`$t=JsqbHo7mlCFb+bk^cOg&yq
      zpuo2hd_Dut9^^R?tXHQ#BK(jST;Mb02YBz{d&ijJJYoTtp@LbCgo~(-5pTHCp)2e6
      zPH^ef#y12TC%F0xRYj3epBVKSp?8WI?@Nwc9LdH=24EgH8S0~qTUcOh0gDVSu={0>
      LZZ8NcxQ+5pQXSxN
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E%Tg0T6g@YYWMUWri9mSCL(l{g0`gD^f)GH%!%7K;^^kOMtRzFtOn^Uf;ff84
      z3zshZBHgIBXJSd1Dyv+~qq}dPd+xcX``gdYUjWQvM@4`z|4u*E&olO!Q9sT&;@rt>
      zh>G5*I-6y~F|8fL882Ak)G!<Np=p)ZN{(UHRVai3-_8Tx?gbFS%SPRBRtUjFvPe*J
      zW?4jVix4a6mT=N1P0;iiqec-#n}!fHLU&?U0%xi^6WVty=9QHQ9lJ(dylT{rgms`F
      zRRy7I*DUGPqHY;-+?-ULw}wqvbV2^Nt}Lg~-3klBs+d+ylnKL4Li(AL5vQW=WV{+T
      z<v&x4f^b(uH+l%2$HI{+<jmTMS?6`a>c6-9d2Y7=WTS|qUqv4i@d@4<s$l?w9*3ON
      zxM13b?3UYud=&REqGFiP@56cH7*!4xwuVuRu?Sqo^{x{pyee7*ZOxv|CpkwP;~FOL
      zfDmB}mj)+HB>iQ&YuPp=FsUL*=<%^~BQ#7Q#dflVvthEFN+K^Mk7HUx1~Y`V8au0c
      zU=|H=M(E{b&p)zVuSLmW8&w6X_z3eV=GZl^yINK?EMSq5n6b2!r&(8%bVi02OoMwZ
      z$v)BW6iaMVCbXv?8>Jgk$F8;8+m$S;SY`!%^{wmWKj}8lOX9@K8*)8H82np?-*p6H
      zEk^yS-slPIWmYPD9w^UGi4ga1@ftyh?wbv(B(@BBwz_ZL0@IQ{LCe?c!pc>3+ZMJ8
      zMjiFlb#p6ge%(yo>A?sen;>6AK!BeR!aP>_Z-K|eUv;u8@)6MsH{dqEqi*1L4*Y?3
      z9&270I?%}@!X0!qAwDp0i02k2r!EoOOMOK;mAXXlCk(Cd_x_U7rwm=;VE}zfYUmQ_
      zOUz#3aRBe39A3DvGnhk`6UxM6i17Ot!o(s`5HSkzaSUUWq@kjir*@anyqB~|NLKO;
      qD~uLK8moBDXfX_74eLy=5534?0}9V>GI{`8c)?$JnGjxL8<F2?kbH#z
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETT|0e5dOAJn^K}6_ge+zVp}d1xhS+0p@0?&!w6HKLpea4G-1*d_(wkTg5raZ
      zKKP>?_atSs#Bs)l<m8;){r20l-{!~9uipU7VP8dvF!xcv)UPwOE5ka=xZ>K)Y>HF8
      zZn|41hHE>!hC6;JOi^*yO>@2C8n&fEAq)n>jyTqLAVhP9Ww?1lIGHLFl!ARCVrU`6
      zYaZ5&Zklm~(W)T=jnJJeNxY1yGl@gjVJ=x2*j6$uv0twq3+G5bHU*)hWLI>vtUHF>
      zHx3o|+^7-eJ&^yZCCfQ<uc`y#oZ3!RoDhZ^Z1gKPBQAyIX8gLg<Tvw*gV3d+8$E>f
      zGvUh03wHIww%ATs`*(Pd<W3VnHjX|FsOV=RflF?7)i8)5LMwCFv@7+hmp+k91ykIc
      zv#ofF5f#IP{s8#BlZH_|BeXDVNmys@x!1>{<Tb8g0+WOo+X}iPxZHui<@0QuEQz#=
      z6rm@O%=6GNg=v;cO%}jdO0t+L%cxlm8EH|g_N8Ex%sr>!CFZ%@Dyzvnvdf0JBJ^^I
      zFCN*h_bgP_kSX{U7x7BP5=+LDR+Cl3Yb^U0C-o#%&3=tSGSc<HHn`W4N>)P-tE^Eb
      zxu>5Q6_5FWT{HZ!&Oh4iN2SUt)(8`Unm6>5`*d5^6>;GML_CcVhJKe3R2_l%enx|x
      zZB_*9S+P$~c^Ih3PleDI4Dp-8!+2=dor>5t<Y09_9Q#>GpP&^jOE?8nuhm3NMTtoS
      z>UtQ;L-pXFff1gWF#mRd5I+$_d9U)<BJYV;HQf>WjQEY`@QB}W=|~HR(jp%7Ui011
      zhIZZ&o}i-v@r8jSe3nm7-J)}E`a71UZ_#^)1R>8~V=GF(628Op5c-wG9cJV@ow&t|
      zTP)mRC4^5<KHM-`8q3`4JZF{+Cegx)mYKl{;*>)dtzv-kJQ{0A(*|<1$+{?d>=t|m
      w4R*{0Z?MjYQ5M<;3XIr=6gIKNTn8|QZM=oTr|&pV2u1AhDt{}4UF;$D3m+75TmS$7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E*>clJ6g}6mt>9=d1Plye3A-I^Jjp;<3}JB`a7aQ(f_WBpCumBRC`noVXr6h=
      z5FX%Rrl=a0;$irnDNakC#ZeViluK5(`kvG0-g~;=|NZ(6fN?AtNC_r>u{Nx&YOra$
      zYt>L~h1F@bYOOnAqhp7j|IiN4E-Od1!#UekciW-uxdzgLkpymq;5a~#y=l94I3*Y;
      zmRf>z-Rr19>=6tF5n06{TMh#lGLeBPC=};3Vb!rHV>$Gxrlyg3z3sw!_nGontY?lA
      z49|IO%V}A@t>?Xu>F~K72rfq?-<M5|n^;j^i^^a1{I2Q<PWI$jn_*RLC^xLenKks7
      z!g3HCG*Q4I!M-&W>fGyI_l4(jU2yx`@TAJwK7v{fM{v}@j}($9bAPCb5gZc?QbXPH
      z756?`EG7A)wb~F)VAQ}#!J!0g6k*~NPP2PtoA$`X?lp5bi}MD~kvRc+655U(+A1({
      z0Y!F~z$I^UIkbGD&&5^fYe&EOS~KP!GjUPl_r&;y+tE@hCN7~$IYCcOy4WnW^vbx2
      z3B6);y$waBx?Yz}T)`wYbm=u`#cSDWQ*fA&*jc)jOY|`f<|tP98g3Z4PCrGy>svKZ
      z!_7DwZ8q(B#`Wr2)uD@?O&@3}QzmZX4h>9^^VXW(jtaTx1+0sP9r&LWVpOSR;2x`!
      zsOCMZ^UrpTt+sj*6J#R)36A}jM$(Z2VZl!&8^5dGjB5*yB;#U(2r}O4YB0{QW^X(p
      z$Sr&8ep}7h`uG)gUk{gb9s;xJy2`IRRuHJbz#`Qo65I{t+1Y)!V3a3ofcF!S;*&v^
      zbAzKRoD1K^*zn+Q$i0jLe&Byj2g(~{<t_GdZpLBAV;^UN{TS|1{6*p{zdangxQzqz
      z<#(u;w{du(T-m{K!7H4ZO#eGBO=c>E%nr&aR0`=G{KR*;klDu1+qk-eTPggC^wXE5
      z&SM5m+@%aHXN-a%zf;a1$jLk8<xh;rdt8tYbnHi5l}~8OXUxi%NbXcDsVA4>P{%Y`
      vvuN-)L)JXqcpncaeuU?tiCLt1+D<cami0+tj=QEXj|IN<y(D;q#~Azy@qCAX
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOK%%h7(L&__BhT!Lefb>+L9L1lB9M_OKT|ZgEVo$trJX>IJ`Df`!)<Xo@hLA
      zvSNwYcF78=A{Cb1goXu67W@TRfIvb>umTncggAG`h$JH+v9Ry!JLh|yd*{o)KKmTN
      zX}oU25S)3-={Vc@_LkdP%Li&Z$j_@=&So<xHQd1Sue-s-l4`1Yu<H4Z*?Qo5EfWdB
      z;TUe2;K)Fby5P3l;F6$ca;hds%y|u!Mz5f+9g^j?$d*A5`Ya@23GB&=Cd@Y-hOrd*
      zjHalO{S~*R7B|;#Du3Cz*;InTidT1<HOF`Ly1SVO-gMi7vmwd<%ce*tPMB9!`L{fO
      zT{Q&b-Ef?(Ag?;A738DLN_x(~G7ucHU}IP?u%-f?`<%DF;k9@!xcuMnc$C-n5fn2R
      z#h8gl8Az<m`%Ntz#t}i9G0Zu>qVKWEsW^XlR_w!LIA&s8FdU-|Ei4?z<Ln;U<~?$;
      zd*uu!aMHvHGRHtGf!lNgSG6rXiAjM)pw`J!;P`}}h{~|9AN#{EmZ!=(s%Z<SkfrB#
      z*K=aBtgAeM84Gz$o#|4SS`7_2ZQ+atnCo6gF;;DQ*1|b$+DFqxHbh6F_n)!wtlsbE
      ze$`hU*V}AIXQOz|LJ=2;S*Jpq%U;b@TY?dKkMyVoaD(cnESrjbxrFCUT&4;`weCB$
      zFpDdZcP&wUQ)t)iMqZm%J(udy;m=zr;VNa%d>5QGw;q<i>a|%-4IA1cpa?ZpGw~uz
      z8tcIor}2-w(so^KL<GrDwSpu6rV-b%K-i_@ak(6567A}O(YReCE9#`7)gom<ufEvb
      z_NQCjCQuj~d+N?k>|L^>Z10k{>DSd&S6^}a;1e{XvnETq)l&Xk(`mO=+r+DkJywo`
      zP~Ojj?-!2o_V(}%1PuO?NO5g)c8+V|Xig8NKSkz#Xz&pKGulwTLQ1~I!(3aD8Tv86
      zmEaK!MijC|;$H53GJR?XLkrn2a3{Nik;U9DjtUBitetp(CkjbBVJAPtSk6xFV#+`+
      zYbPIoMo$^Ihe~MmbRiXvg@T#2O`aCgM5XWGD2LQt4Cm~01h!LM;84ysyIVXWSLD`C
      zd_Y&(Xt9IyJGi)uIqfO2dY^%h;3LjoV3Io78#u(AzG1T8A|v0SU%tnP{J>}9N1T+O
      zFe5+XqWprA{E7wn4J-0H>hcHPmOs(q7v&wpz`I5ow~b!hGy3qcF%TB*ji@l)qOn9M
      z;~KrEa2MB6q4$2gj|D8Ugd@0(mrz9l<9H7*bC%?VnPqHM+ArWdmN+x9!tdBJXKA8W
      S7`uTQRypeTS?~&8L;7$3bH>2{
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~T~8B16o%ik6n0rw!6F}ORZuRf1{)I-VoFG`#kg3BNeTDU?Nmp1cgXA%i2uqf
      zBNzSveiY&ChZnZ-#*5vVGxMJ3yk};vt}lNBc!j4f9KxHg;!Iq$vU8PwZdrL@TU|L4
      z<JcYymDT2hvRi!_%g8F7z7^58b76-2MdYGJcs-SV%#2d7^<EqGU8h#WAN83`WLj+y
      z=5|%8>>gpJ`Rs&H>*%5MFi)swe~N7ns%k!Fun=Gt0b#Y-%L}$*!EXE3u<3S~6Bc_a
      zl}F=bAkDED#F9xp9f|lv7?sD>V$FV08KGTJ{;TUYVObRYf0AaTO(KV3avBpFrM17H
      z9bu%+4KCm=R$Z)c2U7=Dhytu(o!};XP+e{LNSZ}o6cN^^-Iich>CuS$p^)JB_1Hx6
      zoywbEnY_f8d09dbrl~ZYSY(;ZTx=3Hr~FK&64w6l0<ZzTL4Hht!{03CICgoq!>h#O
      z{PViE<o<;JqmbO<zn@E;E<EP|w>b_<Ar`U3Q4M!cuONr4%;DaP#xE>8m}G=-ox_5$
      iQR*rNXW$<07hDey&|r>(hfH$t2#<O6d5_rq6L>d69>KN%
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E+fEZv6kWS5omxhVAa~><AZ=+GuXrg!q+o&qK_DfX7&Ekoddzf&%nX;`@GE@g
      zr3N2-^udoZ?lV)OWsHdr?VLSl?X}mw&5xg7zX7<5B@Hpc{73WHJT<%%Y1a*3ochL!
      zI53Yaf3+rk$9*OJsU2a7sxKXTS=6QdJUD7d5QZbZyG#%Q2+0L$OMj6N&*mzGMA@l{
      z6s{05-UVTCUooZ;N2iVs=!D+vx*|0!ljZFAE~_dj@65Wi#pY3CU%0#Gz9k6V>rU0Q
      zDyA!y-FlhuKS+=8I3W4|tV$fn4D#C&?t$YrM2#@kl4PFvhBy|sZ-g1HsxymAgK$Gf
      zFZu{wb>XWTl%2+*WAi;>>EG^Ar7znEN@)yWNW<iIlq?s$&=<gcNHio37y4L)l!E
      zKe#J(Vie;V#t3~8+5n+r0=EcS!#Nf!4wEIaYbx0ROzD`$Z9->*J8JDZ6)8>#{d^tv
      zP8DjKCx%;S3D%!QUPF#M7Ie1lR>v#~%*2vaJJpaeuBF;g&@D%Dm6h5#9R}|3h<L)^
      zFzd1!$lP)~8M^iSQRvVsSJ7~fFda#7*{ofJTRp9c!;qjO=q_R8cN)=t6Nqau5iM(b
      zFL;uuN*IXZ!txW+JI;|?6)&V3=HAOoH>Wfc^flWSZrL(DPk0)hapXucmtA=p|F*Fh
      z=Q)k@<^wVQbs)*M#;1pD6F;?lcj^n$X93_U|ECp@UL#4{xW={~!jM51TZHTAZc%(<
      z;sn3T<!77d*(iL+M4^fP&0_o<H)ALk;!R98F>{V$44;wMJ7dQ_Oksw<Loujeqe=@^
      zIM^Q2^adGv%M0}mGxQ!=ss#e_VUU&p4u|`Az)VR@au)N<l))e#;W5jJ;R&<G@DwF}
      LsvRXPU=gWbH;zu(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH&g;5dInh8^dZ4<RKsr1xX-beE=#!5dv6IpeR5*FJXvdZFZ^Mh42^jpk<Yo
      z7cZVXbBT|GM-Toe%bwj(Wmxs#VIMuy{q@(~-^`DnU%vskjt3eV2s6*jL-WY+D$*_)
      zzBuxYMX_fdSpL$k^d0w+^oKWvC5pau>;+Mh_KLK{d|+yb5qcx>TMQC95SnMDE&Y3h
      z##DNn5X(EeB91eJ3*HH6c1NLRErv~?5iL5Jpc6V$D+<}LOy;%eyG$>qAd)Ko+Ch0o
      zxLf9qB?xURPSLcsO;;+rwixrDN{=ubfc#&1IZkE<g{}*C&vDCQmoQMHWmbGc917bv
      z!cv#iKNC!VYtzwzPC{!*_^KIsr@Zgjyib_>cX*WT!#aRm0^R7*aFK~b`d;s<qZfUI
      zICIFGuHf7~sdN-S*vqw`AA=eO2%Qnwz(dCnF7r4UZP8&Y9%mteVO-TP!pM=J$G)_r
      zFNLRL6e&Ur2W~i(P2Y4mdL-;Z-B{|`=L!nH8)G`gk>U6<3&+}Wwxy^Lx>AL(6hn<+
      zgT=`ru>^N#0@pMctcgH7b-OxC{zk||2}bFe{c1f4fYu$!GgQ5p)G>u=7NIBnRkI|E
      zK@-*;k84t4?Z1sNj7o27xXqPCI<a8xo}^nkDvJFOpefJ}p)VBqpVdSlZq`tAXs3F`
      zenmoe)Gr(^A3JAnj}HSC2#HPSz%7bpsZLJE>7zcO=o9pUZ3{PVnVu&+4NFWSQrGEF
      zCh)g=0)u=g8u`uv8u)2KGus;fO|eb<)yCT5pO82X9M1APp&aQsn&}13v8{)0NTQW3
      z!g;jSAU-f~6R#O#<5je;X1-%IQ$^QWCi?}K2%m9fI+o3J#HvVF!D}}g@DZ^m#~hx-
      z7_zv<sZ`2-#fV;V%2!CxYb5Cndg(2)^bQmBKA<rfrmE54q_~3_MruYHIm|Lr5(Bu4
      ddrYdADbC?OV!S%f_zhS<p1<mXAS_}T@m~nBc{2b2
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH&g;5dJ1CYz(U)kw<vQL(l{g0s=k=f)Ij+hea6-=Or0%t<5gAJ3Q`svMfuj
      z^58G<;E78V4<0@Eqbz%NLuuI3gNNOjp6U7e`?`DP$Iq|d08C;{MTlYcnSQ7rr`;pN
      z+Di+5EYiz-S3fXCu51X~Su@0Nft$P}4BJ}bdxo`bJLN^sRG~2R1kP^}i0{DAG-p_b
      zm}h8+CyES8)-LlfE-+ki&p=Z<5;b*1un{z%SwkZ<hW7ZnL{6JJ@hS+1=w&2C%erCl
      zM+cQ1?riBhCTD0{w@bQN)Ez_GwM9idHC%={59I&kWhj{L3Ekw*uI*HKnW4W%OFt56
      ze#kA6_NC_JoCroh+BCGIgQ0bg3z>|pUD>xS+Gkk!_wgXx)jEJo1YPJ>5hEgjyw|&G
      z=s~Z~A*(xFY}&3NYv`3CAHh`&sOV?t4&XcyhDom6)i8)5290FMq8Ehjkc1ImLS0Vl
      zLuc{{3ebgN4I{YD5GDYR14WA`f*QTOOf%vbRgqxm2vG7oG>jq1pjPZdzHAc{C7zcF
      z@4~o-G$t6DE7V@*mR&UX5kn_!`#mI!^_W_iTFK;;!<(2^F-4u@by(f5h8f%<B%&<a
      z%FkF^jdfbOZrTP_TC%;P;Vx#WRb4JN^gW|=F456HitV3D6jjVo3IhU{^zvD_+;NHT
      z`*9n+4rA#3EhE@-42*Iy7)<NAqENo<-Cep9EKgsFp(}XAuLMJ+U>`UozGBGx)qeg#
      z7?<>^FY=bfovf+5E_YQB>R>?E`J)u|Z?6dk=;}1k%LIhzYeW;-D$QodW;Cj!ZQ;*|
      zoOliw=^ybNpOfPYTq0ZZ-Oz$ovKTI-tp@RlfE#ITW^}BI=tlB8Qpsc$onO#5Pvf;&
      zC8qS9;zkHDCD~U+s*1@|+z#O*l<gA_b^=q#P(T@Y2x0oaq`<F;#A`(H1~I&)>++7g
      z-eVdcJVMic&>A7B<R0b;tqCbC;69;6(T7DW5xp2Xk;O6;TFnu92rGC%qkK>p9%2>Y
      EUsFkh;s5{u
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CO>fgc5PjpOwQ)@gDJ?0arG*~SRuF*%9Ey-o0#YELN~v<+CX;rN?XA|EwttHg
      zf&)K*AB7lya3JBr!QP$mn>X*x_~)<hKL9+%BOe~&`Db;huG`s_PS4touU)E%(9
      z+p%`We$Z}jz%h@UHfh&frEiLxj~e0GT<M9_mw>$?Tc<}V{%9^a;j~H<mR{*pyVrz;
      z*8Y%C>zFYIxItLS{<L{KmOddCupD6#5n-d%&s())B^n3LiqxZCUcK7aDSw(Kr)*Eu
      zY0QLr-$>J;vO15eWX+xHjPSBx`ERdBgf&&TK4v>HHsNtExrhnPQr2ID9c9_&;+Am-
      z8$Q-W{oI%eP=vc^5d1_2)HO~<(JDOAh|ri<S`rJ&OeW%mdW3Lbrgp^dbZ&foc5P4c
      zwuGpcrffU0$}-M;>=Jh8^vsru;eYHLJCLo(uLF4UEMiGwUv4iXOL7JW^&t3)@JoTX
      zDeo{xdJXvACRQYlN*q>kOQITXqh4{m7i7*I95%mU&BH9mmT+tr96Keh;*bh#;$Fpj
      XA5G!$uq8|$w(&sDP`;69e~92W_prIu
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO;giQ6g{^DQc4iy`%?iyTfPcfP$`1Y76ppK2vgUgeT6t_f@xZC-1u+YxM5QV
      z7cO1+qa5!`+R+ln85c?3%e(iSbKgDh{rLIy8-Qi(s|XPiZ}qBv882TL)@j@omu@^Q
      zih9L#GX=x7oqfZdJ`$$LyM}FLtiqNzP@xb;1DVI1?gtRs)(y*WHwZ1!SdO5i?1BiR
      zozPisz%2-?5J3w%G_*n^^hdK2GH&WD<;ZndQBvl1WerQbs+3NIbF813g3yz-^SYVS
      z9YfCRKNa`PC=*sakpHbH$uzoG+o5oZwo?)X!ri(c{lblls<7O+UtLCySy}{yJ`MdC
      zAatJ!SJt1hOXs%5>x9jJrw4WJH31|e7{Z8(VHOhD>gG@lqZlJ}u!gjquarFc@n|ea
      z(O6D);0`8K+$9VLz#BmtCNV{5XV|Q;PTe!Fo4Zoiw1yenCxm$|r8|Pl9r+udx5i{q
      z%&LeH1_ESWgoZiH6V#Gj6=|Enl<2P9-ytk&h+~OsE3tvhV>@Sv3&J2T`(}~7dCm4@
      z&zOR@>>&~=9<fC{D>bcZSi!2lOVU5m(HvJ-9haepw!w{+YM*F$iZ%9RS-1!Ksgd_&
      z9@=HYPwV}ow|-VEr(&Hj6DV+7FEr>fmw9pS1GIXEB8>emBWN)K@m@>@+t}QGHm_nA
      zi)?<{<tI-V3a0p-AViMrijx;RhCE39HxK)wluyuhElW5lQ!kfASp}m`2I{(*%6l2S
      zDKNojq=oMrAjD5A+IX(=Xocs*Uv;)8`~{IKFQAj(5gAA(+NgwEJlFg%bfKGPgxlz;
      zLwsi7R{pm-J6A*R!TfhD&et$_jd8*TkM6B0!^-$I9)vKg%#YWwP{Z;y9*6J=%9|@j
      znc{0Ofh03Z<|%}k;2kqNh>(jus$hhwd<5PjK_9R}A3a40pS7-t`SA=JjMj!FY~nei
      i_3^>k!Zzz0;ggv{8Vdi-Fh>YGc)?$Jbr4=+58+>^t8*g&
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMTTc^F5dH>Q7RqW7EFd5k1!+smdI3a=D3oHVKnP%cUfNS!v)v`T%jNHwXpF{0
      z@d4BaAARsg8RzVl#InQ(ANDfm%zX3B%y-VO-`{@#xPvDOnh3M6^aK4!a}Nz`SM$V?
      zr!9-BzHfSkis9MLGs7F*5~e77hHVwB%Bo?BMc+^mA@ql$w;3XEAhgUImf<ZBnv<y#
      zA(FQ%q7`j~PWKElE38V^WY8Fz(XJv2m5@lTN?gs<nbVf%FtwZnh|BEj`?Ve6Z0kFw
      zV4zjIteYj>F{E8zjCd~%moVpp{7-2)PNn-rZV0DpJ2g=u4An{Lhn^-5gym^LnFaaJ
      z^kN`fRgpk9p<`EgvJrW^wr5+sPk8k2@G#e>4FI_qdeNug8WRciywO!fKL!Y`%ptEk
      zf^+vJQ(=66FV~Ji3@aESbcbMl4;3T0!J}lfWt*{hl*JfEaZAA%BZq>XdxmLvhHzDk
      zBS~oEz)ky*r9&7CdeAVEM((+yMDImf#RM{h_8LpZ+_p=GI3)BWi$Nip9Kt4xk_BQ4
      z?#(1_E6`XEzHS<JRhIf)Mq(aPEK<kpSMP`qv|$@OLD`8Z71Nku0lLCl(|3)s-+~R>
      z<%(oj*Iz>nqEaOVvs_uI4@-LGEM4KKEcOC`sIMHtKp^mowL~Cp^hkJQ=X%9{WkPS*
      zFBmN!IJ;WqgFr<>Y|Gwv%3{TkrzUa!h)+uT1hr^c!pWPu>k3yvfk}kwIv>iyx%hs-
      zFdv9!zG;9aexhh$Tj9THwu!$=y0i5Zv18xi62D{8k=~$%-r_RbYT$-AI@lsyL1!J}
      zH3LU^O-oOlpldDj6XTf^^sHyH-*BDq6*p%h*-RpGg479k?Oqe!A@bsw!{bOJi~F2P
      zrW}-v=sl<WfEay5oIatSJ|jzCFiEFAjj142odzex1I#f}3sT5oo{{1h!b2=DseY#T
      Y2#*or)kVf{!V>cQm6roy87pZ0149LM?EnA(
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH<QO6#i~WNi9*3%A-8wA!rLN0RcsdAe5rz;V^<_9oh@VNfRasl%Jz3#$nXK
      zMHLq=UHGFM&rQl`8^?u<JkGu6eCIpgIrskf`SlxsDQw6HG0eTzPP9|isp#gR>he=p
      zUF8SbvEk-Qx@*}Rx;wJN4PJD0%gmXjJ<BdFdxi{&p*Ik{OAx*TL-T@e>h2;#QzBVl
      zkg`^ZM{tdy-MNBHbF-AL5NH%lXi*S`!qAb}6u7FP5vLv3CTbZ0(7LIc{P}TtpWD0I
      zzQGA-(<*94L9=yX*A^xBmF_Uidm#T)T82_-UXk0}KCtXEFEI?%NNE*U<tN;9Rlm%f
      z_$PW%Fx*nmflh|DL+%P8vR3)XGHIV->EGc&uIqIGnJBu^BO^{k0-D#mD(FR@&mpVX
      z+}*YuU3AZDLq3Yz7?d%<&=bIU>FNf#a!0`sh8dz%hG;nTonh23pia;F#F>1O;JY!R
      zU=(*5A{6d1pj?S$utIMy(}D!XWF#3n1B5&e1>;CD$Ytw<uUaIfl*kLYyD_0a#Uw*Z
      znFh<)wF)|~Fm%zjKR=>XFKBdWj0{c+-p7oLX_^{uy6Scn%;Etd5oIw_zFzG$)~ayb
      zwsh*VU^}Pa5$0)39qw*vhkCI==GY&t_M?&o84Dy~puiQabd@f5TI5H5-mo`c41K@L
      z2u>UWBQ1u4vNkk@^s){P=sd7IJw=A@V2IxdYWR+IY!~^OF3wg*<3%tb=rbsJ)8uy6
      z&>V+5G6;1jP*-CpHTUng2nOlcG|_zogy;#QnQWQ<X31vsmB-p6pAo(A9In$l>N&n4
      z$G5maw&J^?6>VfO+(df~;+%lPv^G07UPWvx^&RO{s*0{J=wGDoop~uP^<Uy%2yrRZ
      zUq!l#sY^Tz;SAE=g$Fx{X=Es&NIZ-Pz0WA|J0fw87~Ug}4|G&MlGi89pz0Bt@srjF
      uiAo-0k<glv#uA<oS`7VI#tPAkqYGKALZa0ip@*=Br}Pz<3Bxn2Bk~K!T!G5~
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~O;6iE5Qg6|A$E;hAQVbzD4&M_YNJXOR1K<Bg`%dU6;crQCE36t+l$s4K>b%e
      zA$sT!;73&*e{g8RiG#hK-FKdOXUBJcfBymS4r?wP!iRHlDX#0um5NX6R$klsp6rW3
      zXutH7)#gCi^^Oc>*D4+FYjY(`?{gNoC=uR|WFIji7p#BPM*Y;W72$V%DI*yd2ZZvj
      zik1CD7^`g@6G~0plOCQBrjz?xZ~A#LA7hvZFphvQS8J#B>Y-q-9c$Qfqm=?C+bWhn
      z2GNN$N8%)ugi2d?MR+WXO5<X)WY1JW_?S^1({qC`BeL!frD21S?6snckWkH?{l{zy
      zBW>z$0?#q$VwM{ixvoqU;05LhZp7ELr!8MdEo+Oqg!xgkIha+t-{*FyMesX%V7hW&
      zrM=G%Pw;J8mJqb!Sej-il0+shRtPI2euh)o^TXrEGI)IaBLNOS<0y0N^4B)+60hE7
      z#Vg;y|CK48^4m|9&Nf_U2hTVTavdfy#Zd{<s1%HEtW4S7R`nJ$4u%;GX6$B+<y==V
      dI0G-SP;g(N${YuaOmgrVOT7AgM(lkR-aoW!z&!u}
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM%U07+6y3L^q?Rby3ba7wA!rLN0Ra_?Ae5rzwOE2>9NOC&SDIjw(hmF|2acFj
      zap2H_ALa5SDNEZd9XQD2+`G>{`#kRb@$>690E^fc5nxz-r(7yc*=neIRknH4mUnnX
      zscUw=tlEaTuiDcmT;nBMHS{CeJ~PbnmTQR+7)E{Wrv&l<487~BuG$+6J;_v&LC6_p
      z9>Oh#sCC1c(Fvbv5NjAc=#vnH#4wmVaEN71Ayp@~N#e2&L;r!Q^P_t0oSUc0xyBhH
      z2S!QJii)W^c6(8<->Mcv)+PC`<gye?ann5JX2mdTyv#7(R;4s-nO}0<mc2yt&Ohl3
      zgW;ZpK@2erRJrYxB4^Yt44w8FHvjGJ7rWO%kPRb-5fO0`;;VWmRKh66JPkR;<o2;)
      zsZImkMij!hj|mau3?n|CH@2z~lv@%eF~!hFY237(VaCg#qoSRWvxOA#$1p8n1`ioR
      z<nKzLV9As}MRzaTha_f2q!@;Lid=+*IiwlHnsLc@463D&EI9R!VP1la1rl1L+0ssp
      zqRJZ#!?f*9kkhNzG`=)Q8mAII#<GYdnj3e%I(8+j;E9*AGgMx|B5l>O13flWYP6&F
      znS@oW(V$w~K2)k|sjJS>KYHzXrHUffsf4}+x0UiuxO}t3FTA)xcfc6Ney8CdIR-|x
      znDm#mt0`13qf((0!3y-07-D`GuM-U66QgdH_^#@luEFlhVBV3>AQg0-n>kIfEN+P)
      z)=6Jp-LBM?zuY94po7yxml6=5Cx~9MMfzJIo6%RCjf6fUeB}ae(>v?}D+H|K4%w0i
      zLq7({Vz`S)o8l7@2Wf3(cCLl!Vfs5V>2wRjUy#_K?}IfVE+nq;D1f+-PPC9|VeuMI
      z1NaEx?8>EGz!I_)&<Q++5WQ;@*dP(_5ru^~Y&tA;LN&3B53ZnPFKAnklgV>z5L+)Y
      m*u)EBiz0z7Y?Hh=hLOV#1X|4#djPw5NnhtWVR(f-gnj}0Y=SfZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVMOH<QO7(KV7q?Rby3ba7wA!rLN0RbPBhfs=?hoXft<HDKH-eR1zVUo1vAGvVF
      zriu%fF8ooBUy?G?W`>1}Jnp^UJ>U7xckccD=f_U~^Vk#NV_5yH)Rha_Y^c>U+2R+L
      zyv55(O|!Bk)zXbU)tbz6jTbFduO1q_uIe@OL^nzs&Ws3wVb}w4L^y5$L-&eWRjoCK
      zu6UxrAY}9s58w{Npm~j(I&T4|8iX7~7kVW4Au;sF_ib=lQ;1#OGKgf_M(N#GtNcx^
      za>|V(<y7Mgp?$rmXa&Vk?Qv^Tus*3K!@2|V-$kY=pW+I@jk0c3c!^=O#Y|~fGOzQh
      zCA$S@?SJAJ1j7Rf{TN{AJL8ruNk*@n>s4AOO1E$K65eeCNCy$YkccP|@u=S(Dq$ES
      zE{BX_aO+SvRlAu^Lvlep#F&Uth9M8mv88Gh%1sI5m>?0TjGGo<m~yLVQ?@;OI+vgv
      z5ll*$!efR2VK_7>VLah2(^*URAdYDf35Ed=D<?w243Z3DMX&QMo%9sqIa~7xW+lj&
      zW9X@n&$J`Gpz;QJjh0;}+5LJ?b|yn<oMe28MG*_+AIE2Hs}h#*jF5=3Z7x@|P>Z!}
      zhaT!GHQQ$ULc&WdlVMG69VlmNu|w<djefhk5(N<}B%!CkO{H|5E_+er=WbrVV={)3
      ze`R=W$G}L7aj&c$O(DJXa+yvB%h6M0h<LZSonQ#&^_o%S+p2xa`a3U&S(`qCl&e;`
      zk<k>><faHh9rx7Lxs@)CTW%JN(E;kBiwf}3<3~4*MfzK!F{7_I9SVFy@X`smOYfi)
      zxI=+C+@rDNhM^aIG-9}qPz&NK0sCogX?muK@ImqyQpsc!gWnNbqwk|-Au7bK@Wh9x
      zkc>5vYGVEh&wcm;;pEbRox=jsl+aE*fdIYVQsQ?+B9AbR5k-Lx%?U+)z#=|6gcjYT
      wEkbrBt5_qnZlth|SA-Tu3>(-adQl7_gDnU&n<aD~w(*+2_O-&WgIxsv0)iEZ(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O>fgc5Qg7z-P*W@(v+400a~a;_$Uz|xD+9w6r@0kkWzBrCKFg>d!zNH^lx!O
      zaNq~<qY&c{4#X!8_IlRuJoC=%{`&pnCxAz|9l#?z`K(UWSvUWpvyWZJXRdq5Q#DWA
      ztBH2TzSVAT$O(^~Hra>S%W@6i6CO7bk0rYj?2XtuJyyw)IpvhIdYiEFTxZ(7AS`w6
      zjtG9wOgO|jLY)6CvOk|iSi)+IWyFN7&Y&pNO_cZ>Ix990`bF;AKxh1Jo}REhRwoG)
      zS_2~`N6P9Vt~Y)6N#}&8CFMW+JRoeSvg7w`r^co{>8G=V(5_7VgX<~FuCTU>OV|pq
      zDc&0+Dn&6aW1A49GMq!>WDK3MBN`L7n?5VBsLXUKolu_;4b9w+`L!<E-dsGehecT#
      zX+O)@_7aunoCnw?>^A%?rV`d0r;Q!RdC8RlJb9L}B5@#J&t#Wm4ezx={~MyOrQ*E2
      zqeAK3LEv?8LE^a5VGS20^0AIq&3Gfqf*sy(f5(Q0MaBbR?3aw4N>?)^16Odh=3YZv
      VI3BJG$-@oYlr@rnB;Ic!`~&|Fwz&WR
      
      literal 0
      HcmV?d00001
      
      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
      zcma))&r;Mt5XQd_fy5967eUlj`FB`R*@A-?D5|VQt5#RbDsayX*@=#o&1_9(f!Fe6
      z!GQ<hp)7lncyRaPA(`~#>tBC8J-5HFZvgCKGk{0f{vpoAWxKdg`M0)}m$rQ*Q!&o$
      zyMeOWd{lPp>*#G_mCghBguN;K2`5#8t-dr?B_jKz&*f0&^)_MdK;_CF5@uR2`UJnD
      z2QtJRLYN36?d$O<!VKnP%pxYNw0f>cI}>c_*cx`W-*tHlJ(bJP<KdY!C*mxVgho$u
      zxxO&U#r39dzpH}qs-*m1Yx{&HQ8xKSnpB&i9CU}HjL@vS{6pzD&(6_29$+QFGFzTH
      zl~NSrAy&ElLfRv3x$#!n2PK5nX?GQuRXR=CKXnPwu^yX5zE`f<<;ltHxT=J>o9EJW
      zGEo$=2(V6ApRzNV%18fqtXKmNhOY$R@iU7#jsyOB!@I<5xZMc-Ux<E|io5)doYFf*
      z;0fI0IIeV9z#>OJ?xRsNKCsfU!<Wq~EP0q@NM@uZW3AHF49>tKJg&J<&}5E>r%dwj
      P49|Iu_#d(N4TOIHm@TSl
      
      literal 0
      HcmV?d00001
      
      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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
      DD$<`p
      
      literal 0
      HcmV?d00001
      
      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
      zcmbW3-*XdH6vw|eO`A3>5=wxkq7*2QrYQwmR16}ev=A&mv^C|2zc$HDyO3n#?xrn{
      zkN$XchVemsbH=g0I1VGE{+Q7hpZud7zjt?=<`)7!WOwiGx#xV&_nvca{{H8;KLDJ-
      z#~}m+PTkg5^tEw&)hI8GJ95n#KQ9Y<wdl;6R!MgpX${w(&YQVvNtT^iqsaFm1O@iD
      zPj503=y8?}d-%A(p}BV3mQX30pEk;db4K7u{3+~5G6KPAGcWrfuuVfZdcx?!b`2ps
      zC(spF20P}Avb<6)Wu>*CXNyvxf6mP5#f)wlYV5xZDo}yclfynv5ruEblDWbV6P@sz
      zq#5>PJa@OE+jc6QR;b~bwVbRthFP{l*eh_jO|o-(UcoDqx~)n%rePPNVao8lhJ7me
      z9l2$hyOYt2Mm}AxR2}v0MGgDCZ)T}vIO)Pvv1qQ!Ji)UrhrqE8`TqwuXPSkAEgb=o
      z=AbCcOU|-@W|VDdIrEOi!V<_ms~j%Hcu{9ndOkX=%alX!*{UPwrIQ-T^dXK!2qOXq
      z+GJ}jY7L`E3T)?ES*w=e$jdAurf@TiV>lkdxIjcXX(Z4vj1z8ArInTw8YXd4AY{o(
      zQO|L9{#lbu|Bo!yV!xu{FpjYFRl}-sZbfA!hS|KHIxOn_?TgwZo^m>&^gE;B4JAx}
      z&Mgr8YS}HInY_XJiDOE`IZO-m>bab>-L{_Xlyqxfk2J-<w7H|?7sx+r$YMSf#tbfm
      zFx#@FbTHL$QI&AmBUEG|ToM>?HE?&ZYr192hVGcboQBJ|!nInGj*2M|jeAUu3rvVO
      zu4#A+Z?iOPw{#aw3Q*<Z`ukCneWQ!3+1oPbq?CvY8s2fMOIO`xr^_p<2~~!R8m{98
      z^&^Mxw;9CuqCjqGco**xgtM!1!Q5=6CJ^7g5yWp7748EKA3|r^>`yQ4-QH?7XORgZ
      zw<)08aZ|SHUA4tnmTC2Z=?}OR_E4#6J40DHR8bnM-7}0VmehXBrf>4TiI!0ow>8{B
      zQJ_!l?$dhJrpsg_%fhl{t}1`2#$2}EvhNB`fvx?-N)iZE=zY*@iVg+A<_PFp79BFC
      zh5j^U-NfQXYTaiZdsK{27J;e~u9w9;Z&t0G<cUD8-K|cJsnX__nl6{6HC^O!A=%S=
      zH@nDcK9?~>$6Y+)MI@pQL_YDPS8@2hkE2PB0=$P4qmOvmfcAi+0Cw=&LmS`%BD`wu
      za~M0(&yi5)3$1qZImpo-*H@m;LB5G3M)$q2fdP6O<nM(okNxiV>x_Q`+i;UnZn@qQ
      z-aOwsJ&^l=8!>`|IOGyWxZ@sTE<6Zvq%HP6(sna;GVu`Mhd6p4yGSus!`N6XSi?)}
      z(9}2<+`!B2T!XGMMTAkpAWX)o;3z)gxnQ|`lb-K7U$V}Ztn(%DDo(jtC-E9m%t)v+
      zp^fwt#!~ALRVu}TvF;6=ZYT1T`jjetMwLFN-e0&RXS}&}l4zYIS|^G6N->7Zq}C+r
      zGIf)NXFkc)+As31RygKq_WFJ7R8PO)Yz^nv5nO!0&tXp8i!>*ylJKy;<lB3E`xOT8
      zwTtDIN6g0xs6QQkkiRI20=VeAo>TYH8s4no>f$;k7QNu}-ylBff6CNwvxfKAvFGyd
      z$lmDBZ=i5xELnrGIQHiQlJxpa2l>x+vd)$u74R*;en+<N$@T*!`H>bsaT$K*S@w|I
      z;3F3FuP(D!bQgW*UYzCPmq~q+S(+?>0B7{F2rP85146L<j8yTdmg-52Zot_p?#6ae
      VEfv6udtJpE@2bNEck;Uk{0ms>(jWi;
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmd6pOK%fN6opSEjuT8LaS~%l4+O~YaGZdF@HS+G$apb|m_?8!W<}d>piw6VyUl9@
      z5|4j?#A{g3G9wa@Sg>F*NG#w7uxFO6VS(mUb<=J)oeAT`h=se{<y+@`Rrl6SUVnc6
      z0>Exeb)!QdbKbaQT*=ihTk~ggj(Nq&O`B(ohV2xpwK>Ca%v!-HJJs6NZo~u*2BUxZ
      z5>h$Ibp^|`D_f40>Q0RdzWmf&9T!N+)j6x0n>A~eVO!UXl5GkkD<MaL$(jFblo#kV
      zD^}B43S0FHwsF;mVaR;Lwgd0+Bi6j-ObK*m#)<;5<JF3pKqrzKH1rDe&sg*3iN;*X
      ztetde2WP5f!!8=!0qMQTm~+mm3uIfc|LrtMyFb$s{Y|HtA1khcz*-I6=;3Z!PENpT
      zN3v~-A2cLfir_H|Jo=v~+6LdKVU+|=H0wp+?e|OF_C|lyuv%@jS@i-#XH6%3#|8Ff
      z#@eu<T0Kflc?7G1eZ-6XYBouppF<ayqTwk<ooKzgNk)aHG)4t(cX7p>=G)nIg57hn
      z8+!ycuF$45?8QET9%2;@yTN9c^3FMD8*I40md=}HCocsLXgG*Nj6G-63)OOi?Swt)
      zH-Qf4jKJoVlEa3Qn5{NyWwT((rn)|yVy}(wl*HJ~Ceq1I7h?Qdz+S>9<fTv}Z?zg(
      zI~@BM$6m;1AKxZ93XWabXXyWvUpg?rXM!V8q}(YC@|)%cVF)R{Nr5$dN`V3+Wo$wU
      zWXG3~ZmRSV3OG%b5@E_pDeXpkO44Z^u_T0sVNdfEW8}(yUo$(g1idLdsP;L>=LHI1
      zBuGt(Z*rIU;{BdDrLdkh9m-~dXJhkSo>!{XCc9$^BTcU~PZhY%$eZ-KMX%e`zoY!J
      z?t0%Z<@=>PKdNIBon>}3l_z;<H|Q)?^$6$eaBK;qO@AG6M&6~<1NuLt|0DYS&ck}F
      z81}kKK7;Nv=stt)G0+iPNE0K?R&4XmA;;0JfkmVjXy(>HTuuI=Ov3r!?&p7s(K7$>
      zQ10CddP2BGrQqg0?qkMPnM&hKB#0gcc^L^Z77Y@p6&K_ULEbI{BJYO;$wq>VghAd#
      zf{aIl1PaLoc~6kPmjRI%R)S1Kf{cbiK171-hz1E%lne5aAfJ{2k)1+<?1ZchS+Vyx
      z$}~@pze1N-7=MaguXsNfG5QyJ<RGW^-&a#3?$n5ydZ4CscS>JiXrRQlv7#Xo{8w}}
      o;-VKR(T8D?#C9=&2{DAjB88tsIzTz?7tk~gBd;irsFFSU53vJmC;$Ke
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7DO;6iE5Pj=7abw(&mNr1>2b4e)^I=kPYt;({6)7r6RJl806O3F3*_)RBi2jov
      zT8W6lflDt{e^k}kO^6U1P<!z1jA!1PH#7F{Kj#+!s#vpNFuXYQKl;aB@+pYgp5VvA
      zd&66PHxzG!_CZLG;BjeaZ$={iY{6v6OPm+_gxYBw@}{tmVOZ4IhR~}t493wK!%R&}
      z-|ZxU2s+VAnNnr2j{G1Z2@IZ|Jd%624<Le!I0%vw)mhM?dXp0HDu@E{n&C_NpAdS|
      zQ2u{~ZtbH|XD~N9`#cMV`wkr3wUNRD2RS@sNR=yf8JToo;f}PX9c25~i~}2E4CA#R
      z;_td28a#gQH$qN4wNBFy>wX+afAG?j^I}-nwd>Qm_DRt2a&0d5gddBYRx9B`Dcc^y
      zJQggJNY#z2cCd&!hAiPPp$^%b(f*}tlRH=|L$zGd1>QPA279m5jhlQckiAdp-K<J+
      z49<2G@pvQjlY}Q0RvG3s)jF73AC_1D2WDvtDSFZ{=})7z&<VK|b<;|Kd|ob+e3SBW
      z7^gE&UJQd!K+#?5;huYn33s`Ng1geglsj$qQ2b6&1CQt|sLXRZPl)@JSbksvXLw98
      zS5+?J37(Qid`g9(EU6=<EU84+pT*pu{yN=^VzzsN!Wo`1d?l}6FQXzCir?vH4fq+J
      xk7Sq{$?$U|Lm3s~lr!+?mKxHeq4@1u`CnJS=|Ope+La=guuQkD;44I9`~?OcEtvoS
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIl-BTM?6#v~2Sh8IpQYc+Mv>#MMXbGT#4J{}%w5g%R2BP@cCAlQq37fdN6woIh
      zeeltl#($vC&QOXv<Fqe6_#gP9&pJ9fI*yKxj_2OQK(jcd4<@sB?>+aNbMN_`-#Po`
      z-=BUCU<9@XAH(<!>!!64DXrU1HX`_jh+N<+)>>X%va`87J%YRa32T$PH9^b~?xqGm
      z!{|YbAGBi#6fN5k*LYembR?vQh_x;vQeZjRJfC1_5;?onKg@7S?LXvt(%_u!*kY35
      zgV2F2yh`(hk}d3lGx11Uwb%%x+I(Kd$K8p66oY@Jkl_I^v>4FPtfK*K1_IDEJjT%O
      zjb29(howdbLqljFC2fxwXhai3Tf%num9^Dn?k-r%c}@-zg|wAVS*|VDRiR&^$8gpg
      z$-z=fc>0P2evj8d4JD~E!oZ3Q5wBVeiv3_==u`|)q~e*HF2nUo@)R8|x>hk~r%My@
      zxbm-r$(&W>`()_y0ugtnuv#oQ+!6aIq-?%U`Opc>lLq>6ilH^jMN(L<xVo}Z;>1Nl
      zJFep?3}^_^wn|N&7#W$fM9x4MgQT-+Z7?*3;&G|VaK^xpbY_sVn3Jivl1_#VsxW0>
      zJ5up!1JB@D2AveE{9qUf4Ll-t8pauhJyll^<-a9cJxRwH&Kih<GOO=m&rtZE0k6;8
      zA)LpQ2CCBvyt3|9P7OSd7pOH5I@5(UCqwi-QU#~3IRvOaW(-_FjPkH<XGD%z7?;wE
      z1};fyQ;y5FB@1av%3m~)kaD&mS62*NRjW-MFCnSn8bkM9K$Ef)E($wO?SPjIEMSrH
      zn<jFt3BKr1i(nWc0_^4GZttojwC>Jyc9!ArE*dp*(`}cl@dkIdD>SDP6KRIyUW(Mw
      zox03T;x|K=S5*<8K~q`hE=7`;y}U-jQLo8E$V43STQ0Zg<*FX8CktzCn$Oy@A$56M
      z%#cKv4vsqxcW3fesl-bf2#}L|VgHX$kA%(p@xd`FsRsIr`RJk62n2(&y;ddEUTOaj
      zt!~h6BfY!BgLhzr2Tz|d{ddtC{tUsTyJ)|I&X1K%7mcmT<2R)LHO;@mQIdt>m)0=p
      zk-u*ApjVyRjXs*mJ9Oi5JfZZC;dtd-X47rt`Q`97PW0~J$@4Th-M53tBuz%6nyKB#
      zSQ+n{+C7X#o6Y9I-agZBHkwV_crF?+1NRXuqa(b9&M(kn2JRsk)o;Tv1E1g=LsXYL
      zTbM4Rr81lS2yJ0g-$tB*x{VVw-@;`%%*kO|4zpo0+QIw-VNarsF8VEfalS)4zNfH%
      zAb5YI9`+N)@iS)e3+C}Fmhc-^@jEv02j0h@_>kVW@Rx$=9T+m$8cb!R@G?OmWj%-~
      zz{&(zOaWHLE96ZATgIz+O(m#|*YO4=@+jWJn*^su=f91&aGjDm4vYRvbi+BaUnVV`
      XR#VlP4{7q`Lk67QGVu&6$iepyh>UB-
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7^*-sNu6vn?hR7ToiUj&qWk+w($+*uR>6BG17ln361_KIV=;LI&c;!1o);}R48
      z3=@dK2cxh4QO561o1w8a#x$9GXU;v}`JLtV=dZ8d0F2|N2}5A|vAt<;C%i2uyPi;T
      zTO}6cLpz^V%W5YrQwzCdJ|nYga84=LS<5T=Ae+kBYiYTda+HaXz)-0|p4P<Nnx|Yl
      zsY;Iugp#?99f6*u((``AKzmuLDS_Io+zLK<0ujf%CpXe|l86FgRlt;Ksi_1y%heVO
      zHVRcwJ6T7~3e1fB{aCprh^=u}qbo$8&!uD-RcNqap;4e}B)U=qfo2O~MD(uJf{ALq
      zJ7wV{Y9i>sX%n3S?Pd8E2`!vK7t>vrDhSDR`$nSwV2YpzeI|MZy2`WzCBj?i*8%Eu
      z;e+p<W*oF|0@VWbOHNka&1cr6dtWzIplK<Ww9_lL>*)95$B=sDkZiV`>pzBt4KZYz
      z%`3E*dNuBGTSIzsbcx3-jH1!Rc~X{TcPFnjR*(#nj39vt3zN7Y(BR5UZu8j882uGm
      zU+O*;UC|1cEL_$KwRS2MnCTv}mEvM%3V{WN%WF^pin)ednaT--mvebHDQ`KtxSbWt
      zHKx-Pux@9w(w$G+o+mvMHyEod|BC(`z5u!O%At>)uHsz}@yB-iI}WM8azy==<IA;*
      zCoR<SS;w~*Fz5jc#J-?D7C%H&Z1fN<v93e3#o|Y37dS$<z##@c^O%7lK0AHk3>`Np
      z{e(g;n&EK-6^3b#6(n&MBYdMcq6{tkU5vhlzl+mX!*B$OFuSzqBt{8yE_Q$>KmJnu
      z2NL_}h<``o&M2A24W2l_z!5GQIHv06tpuJj_A?SaM=M^E^c739i#T5UWW5FbB3T`}
      zafLkW78$PM8siI01w4C2p2<o)y*>{)+V&AH!D{&ftDk=nz#g&Q5bG_m-Z9*JVtrtF
      iK4Jo&O3)?)w4ng4y@+ODno0&{Fv~SeRDtW5L(Oj+ziMaz
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_cTTc^F5dNmOrFD@C)Jqjwv|_tOwkV<oW1?J=#zr4N5_#KpPxX*xo9qSQU-(yi
      zXqu?ecOUfCc=;>FIV+Yl<$(|%c4y}7`DVUv&Yb=H``t$X3%I8tM!3IY?OFS#|5~~)
      z%|Pr2=Bj90p%ZKb2ad2;JFRe6xIt;n5z0Oe+il^M)@&JQND#6LZaNl&pEY+xD<F^{
      z<Qqe24-+gClG3%sK5wiOG*9ey_JmEyMG!L#q+>qvJnNt#{Xp%uY+HTLNPpe4T0!V>
      ze%dCaf>+WnEfAK5i=99Nr%pYPt_&U$Hp{0=F^u}BvR>IDBvv}M$bc}ZBa0m2`Twu8
      ztqP4bq${3=yG`M3T1|%=G~Vd6EN9E|q>2w06RKl`<zd<<=vQ>++_ac*xc@TEvZi#L
      z#aIS$6qLXsAzrR*X}C(5h~{GOFf*7zLE*0JNF$@X8#>PX^(s1&NU61|4h<v9yQxFR
      zDEG0=2hS6*(FwhlSeHs*{#eTMsw_dTyRPt79Lx8Gui-XfacCZo#Sf0ThC77WlOYMC
      z16PDut4o3+>xlDxOYy@3`3)s6vfPBoatk8MVu5T{HI?HSKUth({5X407@c67HmY+|
      z@g64LMqAGFJEOMJ7mUzXT;RAE6-?tIE^)*V<hig)m&Ro-t?2ML9wvUnagtYRMzxD8
      zMi0}*d(6D(;aV4^BX`!A>!NH-bzvB}L>F^M^`}`7=ogao4Qcv-N&18WeMgCYph7<*
      rPDVt&*5_2~bE@?@)iBQuNH9~A`NUA;pA=Yp47ad|CFV=)-39&t{&y&`
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0{ZCtE6n+jZ?QK^!R$(8EZS1Qnts4w+Zh*|KfMX&|i{PA2FYSfhS#I(6c7ll?
      zQ)8l8qH%H27<KWNCB_&{1|+)p2l(gc@5bl7_fksfgyi;p&w1bToacPq%U}Qg{wIJ_
      zD2LG?=((Za)EB!-Z=2R!mt!nCT|>sKUM@IUXQ^Q1hl;uKykR*<hYN;UvkOKpjG&-d
      z*>x3kT20K{FmjF{mUVR7nbhYdmlh0xWCcx`qE&Kq%bC&(Wg|epB8U!KdH<Huki<4#
      zbBL}Cl`0@;y;L-<%eHaTES5_{rcDoK(Nc$WzEd5JlkA3rMnQbSHs?%BcZ>}uAs=tV
      z)^kqT-gp=m1Ra-gB){fI5Gu~jmJCKEqZA5;HRoIxgmWHILBrJyBheklHfPF?Q4$;+
      z+my=lYsXo`=_ky9X_?NT;7D?dyV=euvdR?mMihd>F&w}V!O<<vMwQ);G1D@}%kwja
      zJ*m$WSc>>qF{c-%blX(2uM9fZP15e&Ol8XsU@W35W+}xiEjYd<v#Xg=mt26Uj3R)O
      z%CbukNOn#|h;%B3cI;QXCt_$tNbR1CVK?@u-BU5_^>$}tXv03G>yKd<SlNKH$T9_0
      zy;vaD%xk}3(oJG`ZcRZ??8q1|RC<HPEIF0DRHba9SScMr4<$P{C#iD5tF5MNY+GL<
      zm1L)CjtDgqeiP9*+em4~{7%xGVwSyQ%?Vn3cyF3KZGRXOg5B#w=BY1~%|hO=qZr3Y
      z4KE6`wV6|@$rxS&8z7`FEErZ^aKbCg24F9gYLyS#ui<6ddc&#V6(-XkOAW8G;m@5@
      zKCUSruM66fng2u5nbhhD){rCFwXxN}ri@f(RRgo2tqrI0Vk$2;l$X&*dr=n)F^u7P
      zw&RRouUn*gk#SP9#j>3<MocvhZFL*`q)Ikvk6M;tX9{|$WR${S`4gMwx~@H6V^uFn
      z9Ab;A*Hsfcw-F&qVfC_uMmbU?M=5Wsl2xZSRms~a@2HZSDetV3<CGt(l3VD7^TS`L
      z`EXZGk-Kt++?5mLuADfoF>*VAgZ%BFbO}M1x0Xt`2Uc<DH|iR2l)q7~z~7AH9~|SZ
      z!@GwBj#C07OA=4qonp}7;vVsFr>F_?EJ|Dn>|aG^4YC9fk)Vs5@@`g;qZQ<+8=K-0
      z#p8@7;QC1WKE9_<6>%c9iW8~yGP+ak%jik92A9#BYHeJ`>C}m3oJlo@meIHF|1h~j
      zTKH+%MGm{MUG|_w_M%PNa8UN)n6$gR20io&uSA7cqQWbI0cKZKK7psnP{o{Zxi*sJ
      zAkO(*2gy~%5lZbN#dR)jmL-8kIqv%0<=v|I47r}z@puO3eXK67D({V{2k7~k8?Ruh
      z=^))Mj4CoO_%MPC^@&s^#Us*BA_I>gl3_ZO<Dt4l`f7;`*CjHH5khp3Ty+%Pzt%)C
      zQP=ocT&!b!rq=jMUE@*q`ex6)wX}0}ji0M)e7e?nzOFG}S)OOP=y$=xKQMk}6_>|U
      z1%G1f{OjYRil%z0olk;KcRK#U3bNDpaUdO^_I54l_!Vy#O~<dQUAnn%1+PsLtIx-}
      zNL$s3>K)X<C&j0i&tN+KhG&~h$7j49k@Mb;$g|$A202aW(<`_>onFD4>)F1>?=@rz
      zn!JOgyvy(Vd+3o5a8_<%Kt4i7KE{ZA!WZ^un3UUCl+W?Le1Q+;OMEJKa9h5@9l49U
      z@-@DbZ*Wh(#eMk!zsNnT%8za?y?J=(H?oEYn1{tYHK53N8nA%3xT=3n1U4K*{sUf#
      B29^K-
      
      literal 0
      HcmV?d00001
      
      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
      zcma))zfRmh5XQf`Gd36l$Au6=pg=+hI1wiWN@0XVAdw=SXdKa^J+mB(d~3;G6KF`C
      zw+TfQDMcQDheFI=tOz(4G&`O@znSrVdwciiFM#)0_Rt_~pNk7|85ZA^?uSNRn(#oL
      ziZV5^xk}~9L6(#Qsm*FE6QeTyDV5gs;1I$Qbgx&KTqNc{^)VMZIjbOoYtB@$`i`*P
      z9bs$7M$GIet;{Z=^K5A2h~VsJCvpOW$pB+;eKau@z{51*xTew5&7;u;tG}qp>=~1*
      zUTI`3O=O49bd{Ee<)A0?ucDVqLc5zKB0UnhvVIkG>~#=6jLxdPj3*lK-FSUz4#j}`
      z&#i9^yM(D=9b?`{_oH#lb4~G2If5T&WuC~-$}Y56JL0XCg%EtvTITzyC<<A4ctcow
      zo?e9M#}5T7EJ2gs8?{<i2mWes#KSnB6YNEBI08&<c7DO%>=6A%a5F5M;nTNC_dCYi
      zYqZ!87~^8hqRp1@0&`WPEw(n-Y`^@;rU8q)Hst<zfHo_%fmg$-1-xeK58*{D!MO+P
      C^w$#r
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>fgc5Pjn$c4AEHeo#tFX(%BiPN|E;iBw!tkdOi#io)4RmeiH&Nb#nW-@y+6
      zegYD-5(mVYABC88EaE6e>cP7^tC_d&y`A;%KR<o~c!Yfe8sW)_cjleD(R)7}xKf-;
      z_fWj^#(_MN9|F-o9QMYiB9xUlY#n>yK(zfxicpLU<O#N_cLUycUw2PLPa4n(<us}|
      zV*q!ymY~aHKdS5#YVCCL|0y)N=D-hq`IOMOa#6iQ$hU@lQ3Bz*1p`GBIV@Tz!6xKt
      zDq*qhhvL=vv@1q$ylx-}%k5#$3p(D&S8=kLSCk0{S0tR}8H=zY=}9rMqfgkGm6A5=
      znKG_f@0eJ}hJjmzt+Z8hsTMYIn@}1Ec{Ci4daPr$R*%`HZ>VYD4q+_~6}ui^v57Kv
      z4BRDD=MpkI!@@mOVpZHP|5R<xs+!`n96}+cPS~Dta!wDMRftp@64qxjQ*eYq#!;C}
      zoAVf%d71a7Zh`wwwT($IC;mS76}OE{ls#o1`|={>r_u_%C=%Q|D;e*I9p^^muK==b
      z)uH@8bI{aLynBtK#~f)qn@;09EawsnUpdmS#G}qR&_80C*Oppy)e2U5CfvYUg7B8J
      zbG*0IxWLU{*m~)FgSC5s?J3ZLO3*){sDFm7e~AIhlcEHW%W)r7hAc9<2dF`_!K-?5
      gNHsY`cN&*)rpRfEN`{8rczlRGo|Q=cWx$2@7bsmgfdBvi
      
      literal 0
      HcmV?d00001
      
      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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
      EAG*ZNVE_OC
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWkF;2rk5S(=`F&IOD2OyvV3QmX)5(<crB3U$q^k-)Shm0NBXUMmxkSKTnk3y^+
      zil8(zyQA6N+3%mvF92uQ@!=8np3SS7>+;QJkJ|Cv=>bnomAaAC4?`b{aJcN5rDm#Q
      zQ`$sd*SPQzIz5|NcSUF&9ghjYfM*3K#_@!pZt@8SXdwvEMu*UiY{qxhOU%W{#3>VY
      zqdYO`*c7(z|3u}UY)ROUmIJJYyp(hIc~vBQYnxsFUO26X)d3`#{0(8ML%@UI^lO6W
      mjS93+KCu2Sf`<*kKp41yLLZ@2q1eQPO>7B!=r*{$So90oSWUM8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuwO;Zy=5PgH>gM@?tk_hr4DzFhHdhnE!npl;pR7nx!;%Txw#-%p1somKa|C$GX
      zfIrHzXLdK_>ohg}y5GF+e)IR=?>_+E;cX6U4Ey(d%qNZTrz-~yB_^uT^6h9Sq{?BP
      zp`zi2#|iw>zZbTmik=DtAGSnj2kuC@zPt|nkqFc;hMn$1KBW<7lcDs<m!aZP-El7x
      zd2BFbL&HJXt*bnd66CSTkWo6su*)4M)zWoCC8P)#E-dpzs#uIk=~Qx>)~w$#)TsWe
      zbbQ|TMB8yy3Nl=-;#iexc*-`ltHiY*y1H40W2;l26Jf@d;?!`VJ+XzEOqjzS!`ae|
      zKXRw*+g$Taa~bvqLbb$q9(n4<_f^{ydJhbT){6HMl%6Y7Sz9`(0EVMg`6)~V8&uF0
      za-e=NJhJK?h9X7MB`}=F^O;?HGgdGcV%Vax8Kt3l`rGns9<)}dqNjMEQaKDc3f+?N
      z7^+q$nQZ*d)Ilc%EVK5+K+nf4Y15S<Sun0(cyGn|b3Dro9~61CA1TojF->t4&CDV3
      z+Fa9yWG<q;mJP(vACqY_x&;bU<G`|i4`N`I+YF6#w99L=8@P$2)Fw8K7J7aZ*y6LR
      zzep+NztRrNGSEKhZ?9n=8D!~}Gq*h53p4j3w&`n^P=@~ETd0_G8#`37OBL&MJ|?7!
      znn9jWz0N$qQ*$2T$ehPGG3T=cKgII}hEu#)h`hwvLgXA5hQ&gC0eO`uyi63n#v4+{
      JaAmq`{09=ZOq>7!
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVKT~8B16g^Y6tt?f(L`A`dM3R;u)ev~8F%i_HNrMkHyib=KoMyY*%uccXET2qx
      z;0O4l2xq#MR2v`QWzNjG=iZ!q@BF^LyaMnR)iMeSyFGoOM~&>eNzNNiMy~NOjfQ<m
      z+-DOzv9EGC`Z3U1Rz{$(<TDzvrv6K}Cy`Sqy)%h%?-k~1^;3o5I6adPbC|E7h?2r$
      z+az)_?03a})!kSWR@!N#<5O*ofBzu^_swJqd+ob;YAP(8i<`Js*sRt6Ux4b0Niwmn
      z<1AZNIH<M8^1P#*ZO#_>;Hd8oopi)CeUss*Q6vLr(u8Aqtgt;}`beMoF1_Sd%UN0J
      zrxzSSvDRw&LS-w1SVv?I$=uINCmq^IxGGjzos1&i+@ANvu3JeW_BiGig@!j3sxyZF
      zPGrvX?t?9Gzx+AiPU#*co@KuFiORD(zwqEEF9n1=Ln81R0p4JNw@NM|K7{{9kFYq#
      nB`h<tLPbDaWn>Lc{$ZZt*)+q->(m$U9509=V+tF18O+}Ri8Q=&
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVLYfsZq7=F&yQMOe<z{?Z_6mT1tX}o-yA(4y8aM9?@zM8I_L9uH|dxrS4{DO%e
      z`~m(b<I{GjZcSX^!_I9_pUZpR^XvDIp8%fVv5t(u;)!`?p4WmewtG}l@?6#SJgeW6
      zu6k`dO8Po9f$0!bb4)_sbxx$E1SVeEuC2BOvgJx!K-={WWdT{_4dgH(Fx9kO`L^Hd
      zNdKeRaiqXZ)3Z#cZTfb&9~^4x*bW4in`3O$1q|B_q_0}ar&R%~Jnoy7IKj@>Q!@za
      zjR+oxh&k$Mf>(;{oxYMSsp?^_!v47>PnGStfsPr0)s)X2^Dqn+LK18NbGW7BrocuD
      zKV04+j|Q&ew!ri9)x2i99f7TMsQ)OktP@_h8%W-$XmAq@symae7BAUkdDt>(iJ`iY
      z#+N<sjCcO@vX|7Tw8P>(G_Zsffn2%46B0VoJyOR4x-U;1(<1fZrK!`A#srDIR1B=4
      zD)53{u0X-Eh0ltu)bjeiCE1j8KRbLWTVb29#T%|G{auIsD)}mme;XLf;A7*<1vIYs
      z$T;fU)i?{zx$1XJe&Zs80>|)gpn@VtBL;B3#+_iBO%XNCbx3t1qWQ#ijwku``OT7c
      zf!V)Q1%iP+OkzKxdlmx+bo>N&P>Lk-xQlxcI*)lQM1J$QkHtu6i5W&^Tf}H&*VpG4
      zF7RMf^nf|uM55IgmWb+!sGf-GSfzZHR@U$+CG|Nf8c?KENh{?pP#%?g&(eK}<hChH
      oXd+ik<cf)0aUd7s)|ocUQH;{&D89j62AkO8T%e^n{%TtO4_o|4tpET3
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+foxj5IqA)7D5Qf9RvjhO%Pd7ZW_xH5~u<xP=n!tr(rYVQp;{?Gb`XP`GUS!
      z`rrrnIeviJGaC{jH(#b_`f|EYPtW}P{rv}kX*@B|z%a1SKky^7d}zCSrW8lgTrS$u
      z^IzK1K!l-P*-eL&b#r%LSfq_Hbk?+4$8!bWb%cQ?hAwTeJu@$Sn>+SLWg(QZJ{E*u
      zwmtXlYL0=eF|=kqw=B6U3)~4r^xL0LI}5*Fe_@C{vt3(0XJ|~N3k;F0R}^tHq9cJM
      z+8El_ZC7jr2fM=G3Nv)9dlq*JoU&5JiZUYK+hvBq^~*_S7^0S<K((jR+VL#gjLJHY
      zKri|X3^I)VLwv)N`Jhztd?|{{N0ul_;>XZj6t-gKIFvnAmwqkm?<?+#jN-;DhW<-E
      z7>p`Vi{%S0MV9+Q(#2J(t-CvIBTC(&Yfil5fg^LC6&whcf`%>%IyF;Vd{4+lOL3sK
      z^`_E0b%li%a!ZmMU7aM%t>e<U*5##7(^T;**y3=7TQpL~48s@YKjT3$5h7V+m<hXP
      z(kQLEr9cv<;0Kwydi1zft6x>!j8`wAY+#CE?A*;S@uC_P#j)yZ;L+(!t9+YP1A|$s
      z;|&!i{A){y9{RSVp3K!EHv{>96f}paTHv;Vx;kY@JMRU)C01<p*pk&3JgL}6MnLZf
      z4T!>^-2j>qC)q-uKm!tJr9HhVTH8tUm?R?^9si0OpS4RTt#NV%<`KbDbkQymI-wgq
      zbfQr~AFT>tiKGH(B7pvrZFZth5lViOFcemjiUD4bW(hIm&fqmw@rH1#f;UUPDmSYY
      z6Vs3zI<O}+RsvNiw=qmB!^rgz`Kuu4@4JJ$P=DYk#<aYL`&y=u)^Z#Vw4A_0N;pYX
      e#;6<<(-bqITUoE0!R$G|8O+t|=rpf6FZ>0Z4^_qh
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuuO;5r=6r4qDwG^m|iisY)!Ntb2C*w!bgosIR-j=d$N=ixEE%vv0@CW##jBnQk
      zV(eunZ)e`TdAncVAD;kjabcsyFkJ98ul@2p%@bdWTKZ3!Sc+WQXft?<^)pV~bhZ$Y
      zWauVB-b-1evr3AR;d(Tl{PWlfLLu)MI@I&HiYn#HaMjeYp-JtK+JsQzpuykJB<}CT
      z535Sq?~TU6pZg%6i<+TLPDHq>A)im<xD=$eseIu}!7wnfe%B3Y!#tq@9tmD~LCLq7
      zE}ItEMe0#UD0v|_Gpw|n2p;QbZ?s>ys)|TFrx{IkP2Y`rLyLh#^gDn<ufGoq>KAMr
      kXgq|Yu>)6Q7d?%AQ+qhl^)XH~4$S>2&d8DBoX!@8KVAHTD*ylh
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`+fKqj5Is{06{uJdQSpX^2QDi5jL`?85ha=^;l04BC8bT;qWqQ*#KZ?bz>hM{
      zDnw(_n9a^*=giEWnfH&^HvoqyXix~%f%#~TYyOkv+}8pz4r-^i7z!t72EsD~*DFr_
      z8*!&WB^WZHW}6JZ?hZsRAZX${g^+87m8%n?meUtw0yPP-;KA~X2ZTas#_R)}89TBZ
      zD>x>cl>Uc@BI@N1L2bBw5eH#GM;wU+B3RUsM4AvOl{+$$(Gf*VT3H<$<`~<u9C0-o
      zc7@kAyS5;tTW-&^JEmtzfBL9OQiQ$GAIvEInklnWgiT1?x+AYA&Ma9y^JfS9a;gNq
      z={Uk`*rx9bUqhad4;%Na6Bqv3AM(s8!poPJDYAql2pEPO27AOe37z#kTWu&`*i5B5
      zL8|fsqp~}}Qbn0y`I+MiR#>K?vTSk1bFOlM6fUvKFIkQQ8LT14T3YMeQ{l70o`Owm
      Nu}*L=!ZvoGd;)^-q1ONa
      
      literal 0
      HcmV?d00001
      
      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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
      X?%^8;4wIn+M-bsv{v<Z?GXlr|Z)kFe
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2oGc6g_TAvu1&IWemz^*|M!2h^!J1NJU6!3KCLR9y(2ew=}gHPl+=n4wV1I
      z3lC@#Nbt^&LR@FrsK&#l$aZ{v&pE#5`uCsjKLPa7Gf`o1j{J}Q+|51-Idc`CE7yyU
      z)#ukrrDBpRKIY2lo2W80b*3Bnl=p6O!~<ob#&D~M=1N4aC-a!6z7mOKsHsq7&MpZI
      zFIN~){!1Z+dd0Bay$Yar$WYx&ro0Y@>o!a*SuoJBQAd-(=<0;VP)I(?;|Wg>{7J+a
      zTEispqeDLxdS3>s`l<|DSI~9(bk#=aXZuOYy@<zLDuR;S2Zm)y_LV_~)o!mKTy$(;
      z;x0qypJk(DoCjfv@#X<P*6uCgKG{7=Ix(qqcqwC{jfc9vN96jcNvGUnYL%P~bj8*<
      z$<u(p5xUs5|2p|hD>K+{rR3>e<YyVD+c!KJL`g;*`&@;|)Wjyk`sH1-v5hXn%8aY?
      z=Q8qRP1!yx{^G+JV3!(Z(6|QHZ0f$zV>D>gVNrCM{$8L$A7Je~`38IE1UJ6Yu7VXE
      zD^4_eiWco{!szHttkO!xV69|%N~=Dr7+>^Upld}WTtHUNk+*TDL_RO>N31{4e&4!x
      hf(O4YFvJTCXW9ljMb=}i)2eIH>Y&UGnyYZI^%vgU&-?%Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FOHUJF6g}UxrS!#9P!Q!|g?5UJh_Wdf31ULhpb<hMaWgHSI5?ewc_1V%T)Ne0
      zjQjxIu+WuJ6Qf&yl<|Jk=`eIK#Kp|_Jolb+@0s@ZpKm_^Ok*|)iD7I@-BtG#`<Z5J
      zDh}Usl*RhCvp?@RmR5BgzQUa(;tXBlo}#OC>t1z>*J!tm;X(u*1~RnGX@=(9Vu%%r
      zYYg!PbAzW5LnezP+8H`4n!%UddX-zNYE|b9Jr%R2>T9Z{iM78Ocb;fAL%tG87a?0_
      z=&qTDqiTj7aABAzc-XLja&)J-P8<!j?(t|9Opz12s_u%zNCsjz)<|)zmH`7QW4XAV
      zK?3Kp7{DO0+~iJhykNS9<5g*iA+0uxPf>@Xngf&w%Ft0Ww~zWokkLZ%R8TgYonich
      z@-%`Rs~9nS%J*BiFH^lJ>wuqCaUD%p77e$~E!ELXqnyNL>fPzB%TK3~$Aqv(A?Vn#
      zaz?u?T-8Nd9&p>#clmwQ;-Zi#&A!7Qleab)`cBeDjcylZ7UUU{n!UK=sycOFY?5!e
      zSduDcGDv)fCWJ_@n66dhcQs+u{s@^VA(0`wWEk99&{f;!Hm-t-Mo)sixePsIds?Mv
      zrqIY}Ovqo5{!9}IS$em5n={DKJlnW{4s_Crl%kv70(_gs7>!cwP`pFPIS)C~IQ5a@
      zMh|+uXcErQOrm)o`u%A0G)fdFSNe*x3<pTW4<mu^c!B#H7lXh#oW~Hs>9+tE{cw}s
      znv%+&TF6yGvZO%PFh+djERBMQ#9EQ7q3lhhkTvSbBKu*mHG4$CqZ6}_;gXM>@j3;h
      zz9avTx-#BMVj~nF70@q6g-7V`g^*493^Gcs!Xu<#{6qMpFZ{~?b@62=TrSkbDZh(K
      zK<PPES6ECg$sdr6e?&ZXbLap=rC&(AM{nsT624oSheuW%BpU;-$nmeqx^IZ$TTIYc
      oz&kI0!=7@GU#9Ow*fWD+`e(XEnI+74-not&G^Xh+Pb1Lt7vWVvRsaA1
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<!EVz)5Pg%RHF1|D1PD+{TS|Z=NVvHn1#z)j2`Rt<lnVlB<BXau#zywG>2D!H
      zkvQ-Hd=z5V4OIf7mhAPuee>qc%>MlK{Re<PdLBxIjYEB`Pl9}Al7qnVi4FD*$CHua
      zS-bC{LTETf5NkPqH9q9XdRQfFFUIjPCpHMD!r`IGEhn52R_)Z}?On++TqG|i83^yG
      zNsN6)*y>zF?2ZVPFr9D}gv$yZF8L^<u24mTQ0_QFeP|MXdGvA2*&98Mna~`jk&Z_?
      zGj2ZzE6y5W^MZWszF1Sa)t1i+n-F%E4K9|w=UOo6j(pt2x`$hY_5T;Ga2p$<e!w<N
      z6RX9u^sCkB7JdRflV<+G2R=5j?O{twDJHRWs&Lm8?`8Z+R4ieoFeSZQD(zpV1pjq<
      zltsL6T$gI+Q-AD|h_~m7m<nT^=PaG7?<G;3=5k41u$`t8g|5q6i>4fXIQNQO8BJN<
      z6;Pw$CL}klBySbIplkB?MD`Bxdyl?C^}eC@x!_!JSaIT_-=ZmdB{2@YifghGuA?<q
      z31xLEYrQW}r?_#7JAcc(lfd_dOzVs~mysas;GPJS(H4mk?&Cp`h6Hm@6A$HEkwJET
      E1L6<9Hvj+t
      
      literal 0
      HcmV?d00001
      
      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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
      E|67aIkpKVy
      
      literal 0
      HcmV?d00001
      
      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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
      T&Ek&oA%Eqo7hhMnuekmP`~o!F
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{TT22#6#hod)pg75eznXD${;OzD|!)<z%EcoucM7NWxKIEmOrYOpbPZS59mil
      zXBK6H!X9?cWxns6@0{7sulElCTUa#^Vc5Lp_q<#5AEeVND$!NN3coA6juMW_hwiEC
      zOC?>$K#alGoMM|3<D`Bq8p=SNVfI(0K8YcA%e@<hT=f?wY>_`A%q~M*T}eM*V#o|a
      zYv7)Aq}pf5t_?)4*GNFwy%b3>q%9<2nuuc5LJDIH(KQW7SEVD4JGXV=o%4EIFpO2*
      z25;B6Cw1IQ#<Vzw(x8Tatc}zrTSA>Qo4!y%%R?<@&Vqr2i3Kbg$j~7Ft;fPNW*E#f
      zx8pU$fz&$F;R=JtWUvk$M|kBn_kH0TSYenSP?#nSEA*cXS&|o}ZwL|kTSz5f+j?~r
      z=}Zb1-42ttL$S`7g^d@C6y9Jz1(<O<<Aeb!n4nYR357{ak!5<4UWIM4`Yus;#_TKR
      cAIXm(<X`;YCwlw{mI723%Vf=<LJoQ08)2EQ)Bpeg
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TTc@~7(G)8l{yM)MZDmppp=5t`wc|2a;c&*pe4STEbRo=)LpVWRepsJ{t2H=
      ztR|Z1i$P;d)EMJ~iAED+{1e7A+iOI5=<dw7-#6d+&N<W9zn?q<a1fUw2np=FY2CJ#
      zQvMy=nNMl8q*D{tV%l}Ia&%9|@s+2qIe9mNu)yBN+#;i?vva=otXz;{%@x#G-qr%m
      zcNUbV1Vl!lrJ$U7y&w=ahYM_+GKZuJ7Te8ek6niZS{Gg4*0$^TwS=O!3#qKiY1d;y
      zi(at(o&y41LHU31n#5t-vGs^RJh5tKCexQCrnH+^tzc6LiFHvlAttdNn+2K@eOdEm
      zi$pV8%xbGd1T6w>Q?{cn7jMle@2Z*EKz4IhA!~WI*;j&L16g2I7!3pyd$X@Cj}$eL
      zGGa3X3q;43a%wT)CW3B(o)sFTEyr;K1!}2gki8PSu{nxf^hJ;m*xp$9m(UVP^b2g7
      zSNcj-iHtK%jW}JRJVL5b5z<%Iu`y^!+Ak5sTGKTpaR3LYEe|aVEzpsu6*d~c6dsmX
      zgH}^`RN@$pQ%X<Wa&Hqrcde?bd*D4|%c|#wqKG3F!KuGY8q9gl${T?Uhc$-Cucz{^
      zA?mcmP?@MR5~DaPAnm~SRn$iknU$t3&%YX=UZf??V~o5O7xR`@25^mDI_uxOW+RyR
      zzs%DFT^k~bal~km8Mo-=)VOWD*jB&3gGO;qlW`p7r3;qtD;hFdztl7c-NrwIX1?ii
      zu7vS8-!N+M88UJL?d|4%aNop?^=RX>ox2<S9_Bli>@Q(M@-a3gca+eP>?)!2K~TMo
      z&y7LOD|UFnGnZNa65AQy9rTW22fDc9DcH&0p<uO(E7OY>W@HazVeaBV*Lwk8V3G}c
      zlF5hIAo%Fuuk#W1l`s&*>Y>3B4w<Za<jCxO$l0feUw@1f&mZvQFg-AWlk8;>?<5Pr
      z8%E!v6YtQE_x$<+XYdgd_!OX*tRjXAdSN`Y0_oiVH84t~!wnD)J;KN=_XEr5t%L{a
      z=*}ethbSW)C&I}J!o$25RfKWs1AONBU&z~6BKn3wd}qcF9LG;0{ndbSw1P5(468!8
      PfQx)bIf3AXn?mRhsPS=~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~pIQ6g}GyN=t+iLB#?B7Hw0ZeE8k!OGll~6j5>TdE0IwP!deGT7C87-JjsQ
      z4>|+l_~7{Lk8-@5#8yWvLuNMF+?;#vIX8EI{QUY2z#?wN5Mr3x;?H<H?>;xJjl2|X
      znZL((OSUD2CDSY1*^VK?kW#38lM}`fjr<eAw;zdyaD-J843QneF|aa2pWHOv^a8^~
      zr3Z0=fJM_X<!y%POiyGvyG{j4c3s55a6&^2{RxCIq#=$Z!>FI`Yg?^uiJB~A*A-UR
      z5JexuP{p*w{nk!ZIFEU?NqY5)UE|Gl?wIO52u750hM8V!yoM<8cBA16$zUHLz9(6?
      z(GP6bl%{PJJbbs$ogP1IiIyN=%K2I4JjJkli1VZJ8N$0Zxm-A|Fox(;rGa6xcMXR4
      zhLEd4f5Mq;Igay~jUgRO(SK%5!v*!T`ZxIQn&ggDSs4vk73`zn9jl%|4s$VFVi@d>
      z;|iCX8s?EFYdgG6Iy2>RmL@Um2r@cAVt#j*VJVY6uJHs-(q#=-aFr;DjA0}o`D^52
      zxXv)&W8~BS{%wZDn%#10;;yNta;S^&h#0i8WeKO$<gTl{MAUJ_6bTB`0S?ik`390n
      zbtdR7LMsj>cz|{lLMU9)$n8Tj*Z~HO@qG+`qF4wg=|1Rvm&D>wmWvUJo$`2-7^R)M
      zk~mE@RIND91k6>+i&8}QndinL2N*k)`z7Jp(D1_JHavxThg<J(>lnv`r$)yl&Uv^g
      zOb7M0>5Ed3GxjiCR5x1M9%kNSH05tE29bKb7*2hG@qysJN!=rRMM7Sa={K0g+dquv
      z0x?mVz6CPMC~px<L1Fb&k$&SdmcQfL#}2EHeCIJ~J|<ua;f9C0i2^;<&tNpkMTC9<
      D7uG}g
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>YuW6g_XCe2gQdR8gU=ZN&<-mUg9y#)U);3AV;s7OouNfm30onHjYI$At@{
      z#-vzN6Muj|%6KkfYFvzy%*Vaw-gC~q^M3q1{SIIo+esJ-YX|mg`=}PYaom0_)JI|M
      zk$qVA+)%q=Y2WR7PrTr%?j;dd$VzQ(V6$?!eV{v`LVRfZuM}3BQ8bTPb4S4(k#4uw
      z3p5*5Lm?5qbb`{B!eUfAI}>*u*9q?_+%HE~MuDY?i%N^0>t0u<p)hM94bwyna~94a
      zrw}VwT7q1#FoT4NJT513Nn!ba<5{?Zf<n5l!#@*}t07zq7LrI&t?9UWXEbbU|C!w$
      zXoXzU>)3;q?K=`rlW|#!Lgb)-{TOaX4Hag5&9$ac!dep76^aptE!+@4slI)<7ur6%
      z@~FtbDd}Igupw}Q@B_EY-?rzC{EmL;h~?R{)3GTM3Rc5)wO=3DL7?f|JUcU3=JYY1
      zwHORpC%+6?1(40k;wLe<c#C!C89gU1^@ZyC7@6t`vek_-=Bw3X%zwefF^ZojJ&Szi
      z5a;s~dEb-k12XuCC1&#EAOo&aU9JLFs4Tfv_WagysiK&<P2wW&%rUOL#hl1UW{mPX
      xEKMU~qAw*~0bdaP*To6dzhVKWxP@;M7cvp~r!EZKWMp6yHNH(^ii_TY@e3Te%~b#Z
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKs-%=Du6vn?^7AFjCAS{AGGzP&eOK?KO{KJswiew@hM6*;bhutn1Yn|De=~W&f
      z?~n(`wN-#sNmX)}i@Z=OF_p@9W|wsU^=5jy=gjHf`Oeq<=YPNa24Df}4hjmF9|cc>
      zT`zqaM%$h>yVhF`TGcqRCbHAtM~!&HJdU3j2StUMd~BQFyc=7oO@g|Wz+kIsRvMvI
      z=zqFn5~HAeg`(tC7+I5ly=K5&9@vDNEh!AN;xx2j9HqU0whfzJ&D3q2FyNHk3DfD1
      z6wYVAzXnqRuZK}+mldv--x%qi#F(uSvKlwc02JQQ7=(7whmyu=j4Je%XKV6hOrsyC
      z<n646gST8vVA8=kh2i6sX`IIeGBr)KZFjO1zKe^Pa`3*wxx9$S1lPEPX@%0ZvFnG@
      z_|XPMqnhPTX<l9;-=FPNlwTCc%Nhf46^7Qr$lPl`-ZIHUX^;pV*Mnv)NJ5!+7mFe^
      zw|J9yIX6)8{?rBu8#|a}{%AbR+FTS@D7Y)Tb<@f^>wxW>&exn7ry4|2oY|%qDyo01
      zF^^FZYf<AGK2gwNl$ykLJfpB!epL&PU}yRBhFp?-pJ{xKFQ{$1)d;MS?>&hX#$T;%
      z&4q`OgD;PHKWp2~pdnI9mAx8hrNlI1DdlU8<xVL#HLAEpyR)r_b&QpJt;?SYA-%1!
      zif`zjj<O1uda;KG;ADvozJ0yS8${|My6{nAiyp-7q;779;)$V`Xa0(`in9ArWRhw#
      zNK->&xT06*CLkd#%^Rf1kw=1WkORSIK|BWx56dCqypIv5@iw1BoV6HT<TzEC+sAO_
      zIYugz`#4jX-^X}mPEF1q;N1hfw~v`;S*{QG9OFO0zkL41+<!CIKPce^%3QseQA}YL
      z70#F!bEGL`Zy%CJcBh%Ra)oO`>t!52X79i<5f&<YMA;+79>x!Fb(7=FADHPb%h>%y
      zv`>GA-uxBb56`jm`!nV%@)ljhb?zXn7pMXkc~SQ9;wbWJ=*OaRa7_)+K!X{xmH_&q
      z!>q(1C-{D1wGwrod|y?%Brhp$h+ML&j=+g-Ct_DNJIFqf?{txG(OpN8hlo6a301;^
      j8pWy_qx;TcT}|YW?{|?4SR+~icX5xSOHjo|e22pSTWo&I
      
      literal 0
      HcmV?d00001
      
      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
      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
      H?uYUJ0Fxp`
      
      literal 0
      HcmV?d00001
      
      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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
      A6aWAK
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~8B16g{(SS-uoRQNfCUAQY8?2%1z4QmC#$BtUraLAULME-Aa4-4^f{nHV4R
      z$;1bLfc^zdH2UaY(0FEADxs#}L+8%U+>dk5y?6TY_xle3rf|!GAuzh->^OVLXxH^N
      zlO?%VN<JvQ2nrjn+#S}t702~TGPGa{bSdRz(V^;-?3T=x1e))-o?E&n&@`6V5HQnz
      zUbdkLtsRJ=S)g;t_2hDSJ1fI=CtH*P-AjJXDQ-BStG=s;W~tyt0*R$#!bu6VZpzaA
      zC?`FlxHQ(lFqOy%v{8FOR@Ig1L+Nf7Xxh#FykGY6GQZ+SZprmMfuV-}>`W$M3&a9N
      zjle=fWeqIp?2_2f2?}m5O8q@rD>#8n*|wsteVf!3*L_93z_W%<?fP{0!4J>7PJM_9
      zu^L7tCK*}W%gI3H8(HWR7^$Ov-pQ+4DV3ToaqbY{y8l?A6<BSEGm|-->(ir<D`qX$
      zWG!%5h`EOD?SJsVhFaXCZC-|{jH-Muoh`GmH{7V~6!&S$g#NZb*x3D1SPv&>A1gbt
      zBM`55U7I`hc2nSU8U(2jS%HCi<^41&)ux)m={yXFGm>{hj;ZcxE6c`Mm2B9-BVlr`
      zLm8EeR91sieFFsS#(dfTGrvYKDPROs46){y!<@{x>UlU><6%NIq(F!5c`{5FohXv*
      z)ER-kx=yXxQ2pSmWe$R5^0@=rx#Nq()#BGQrJ#(BzeCGgZVa?>ZKDKMU}B91Ku1N1
      z@&wcacoLmjc2(u6s_e#TeSQW#TAsx@TArr|ld_kV7ZBGs7tzmCzE~JwteS=f^@%4f
      zyiLbvt)AE`?tm133aA3D_Ud=_z+Qb%$Ia)n)=RX<&AgILJ=SX;S5oTNrk}~e7fj+S
      zX7CNS@f~;Z19SMP(_F2Dt)xlIGzKxG!=`Z=!<v*dMsP)QnZ_u_n3&Q_@HVD*<Al}B
      z`#D_WnMLdCnBb~_KcZCn#`qhxYN}NwfL}WPc;&Vh->AhmkgUcxh<=#<4gPg0A2(P-
      NRWMb@o0v6Q{{THF!J_~G
      
      literal 0
      HcmV?d00001
      
      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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
      X&7LsfbJKGdf9C240U+D)2_pXk88O9A
      
      literal 0
      HcmV?d00001
      
      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
      zcmbta3w#vS)&HNF+3aRB36QXaB|#ztg*=ELMhrqBfd~jl0YOkd*(94}HOa=^4G(Ku
      zt=3j;wYAy`ZNb(D)v8qsiAt-`2e$U*v)0<T+G^iV+kWk*-~Y_azLHh^`sMe_%$<Ah
      z+;i?Z|MR-DkH7x#BLL>gul+CtQ!b2bkL+wp?uZTaG^L_DQ%z^|?HcUe6pQZg!xDtX
      zjJrccg6c6t8zUW&j=rcnBOs{I8BKi=F5T7_ABgIp!0u5B>msp%R5T%&y?V?#85U}t
      zmN#{wpeWwmos6agvXT#d(Se>+ufR%0I?iEVyP$;4<vRx>16{iGabuSzi|KJ)uQSrw
      z8||VP#?IUj?dgvWq;%Hlv4L1>v0&<~vD23KMV)E0H<6LHcvmzC6O(OBM97aRg2`ic
      z=PevW7}Yv&s=%Bzds8t4(`=NZLR-h%D1oi588%8`3&yRE4Mf)t^>;)Q+=L3Ue097t
      z(zhv+i0QM}X{CB&Nh)V7rx~eoOa7?KcEO#ew?vvf(NwMq1ogAtzP^<EMjOQlawV!Q
      zf2D>3!pyLkuXvTMe=rRgn=0$P$OA<HCo2FFL(u?E;kJ7QhUPdDpW{G!&OrQ(L}aix
      z)|s5QEQnKanjZ@Y3{Gq6?29CmgOOBk(}rEiRJ4CxB0d;Rq+-#ejTTTyCEUH&xl3?@
      z%dZRP4XFeTW}z#KysjV?;T?VuE#tH3cc<G}f~AC0^x~mNA9WPUUGc1r3!|N>g|oN%
      z(I#;BP|z%EmqoiHLw$MD45Ag)L5jQG#u->4C?o3|QjtXJEYDzwu$4Mtm5noXg3Srb
      z2fEy09av*yEzY8xIk1s_fI^zJa%BN!r|rUzcM9sppgXI=Rr8kRYFzQY!Nx|MEeNFI
      zu1EwEJwS~TqF}R)bFjr_s69SFh9;z^Ms}o{v}>Us=hA2#Icr}x`<#LGQFQ=qeB@4o
      z*oyPj(EdwM>xo=v_eA6UO-sAGX;vE(k%44)Jkh^!>(<$uf>?)b`a(poJXc4a)*aJo
      z$}o|AEKGl)!dIwop9A46l5~YMIu~YF+0YvqjPfPbO1F)<nCb_;TzO`j>j@P4)V^p5
      zE<~Rn7g67tLFa87{TL7wQ<tsrp@A+EpOh=S%nA#Y$e@jjL3gQ`P?^!t)O+T=k?D8d
      zNZA;|c0noMXpbkNJqe{k9&?Gb#rxt3s%WRDqP!@xN-@?J?;m7X7@&%F;1V0}!lh(7
      zmRvrd4vp&(wOe)UJvQE}^d^$tvRKj?br&EB-NNNI-j`;mHPU&J%TN$k;wnGhPv~Ui
      zlNPv*58#7DBK?xXD5F&lHeBA-DPMyR`EhN&H9PLY#)okoS&SwqtB|X{SiET+9Rp1-
      z5smb7?;jCVI;5Q-=;Eh!DAq@G25<xU>W=mG)pTSyZm9|4dfcesyJ?hz@W7|IxE`Od
      zaWi()mqZ2!iFNwfT%4wTiObYj($wMg*bv00u-A`Ir{i=!^EUP=3;sdfPv1Z>dhi(=
      zpVdetJN4-{8@D@8yYy+ljnC<mZ%3>v)vG;s+4#Kn6!k`9J-t-%mAJ>oz4!u!uDezY
      za(y}(x*2Y22ky7=0KVutuN8c!Pv27{)_AbWLr~5P3i==er3yN4%Ie6jXd>E`Gc$+-
      z7_spn9wNRSa~wT~rm`&u2x+)1T)A?zg*wl9^zuRNnsnX-&5Rt&K7=p(@g>2DV|dQ`
      z&s^teqZ5w^mbsket(kct$Ax6L9?i2WYQbR}N7UF#V#%}BRrb;3)sDVu<7?VKE|yfh
      zT@>BeOVjS@)v=>C9>X_Wud*(ZpxFw-g*4;rQq!PS#q{~#vhi&P8J+YIDed{Ljql+J
      zVkMGDL>O6(bK8P=3eWiQbQ+6p&e$7CL^_E88_(kV^iQ$m=H6H;%AnoJ^v9ajrrtsD
      z0~^odhc0e%^1C;|P0kG3!6E#}#*gt6H_mKe<|tV5mQwbBkf(#(HQQ&m>#{$y@pJq_
      z5LA~HO?Eosn)a3}>x)<7B^xh0M$(mt?9iM~SNoNXS9CS?=u5rDq=(YVDmbHa8YlzT
      z`0R)qP$=iYlk_r|6KGTuvlFu6fJ2>mLs`GiSG!3uXI<AxvOmRlj(3*JlgcP_;KU9t
      zAdF=N67w7*W$I=0an{VSOOCeIXo8cA8GBp^bM>v%WYU2yy<*XzhttZjOF1YdrJWRt
      z3=)kgEe*7T0<v~(>}TJ2ihErm+D#uH?Q+3k&048?5-GM(hkC!1yh$aLE;Fb;DYd06
      zt-ckWI}{mj%LFyHQX1P3Q_o~)A~u+^mMj7MGEp!+8#z|?^+kIkeM=KPLt1St-`N=*
      zOvT~@0hvU*@J4GQJ7dY9RNzK#K-;|0R*2}5eikNu8{@iXLEEgi;mg*=lQE@G+Zu}`
      z(}}KTENL_aGfX7?avZfa#+9{3y0k*kRWfr`8a1{|k>dpyyrng`Jmvu^pQkK-y^Lve
      z2ZQrqoI;Qex`MF)$X|^@+D_?gjIU8q37TiMw~t=%++!`GIrbr$Wy?&NEm;4S`}>cU
      zr=1;>36@>bU}HQcxCt7aQ%4%T(`UJx$`fm@_j0j)k}Y#(9@CRS2mH~2&S+aNQ%=pv
      zstfGOu_aBNmG*oaWf(_8O3_K1@jkwz<p@JYDi-N;t;nafg=0o7wk(v>T|em+o=T%Y
      z;gK#&OJp(H{ql}NwRL6%Lv?8Bae+=>r3SmqmgUYFfqLY4r(;N3(-$C>9$r`?D`b^l
      zPaDEx;GLet!b#3#j>|2L#YehYn!U*{YdntKQfFy0snsTJBaw(F0>awsltLC$lkANT
      z^>x(@#8WjL(V7$k@{WO;UM4nkY6efLS)>`Gyp#E$tXIK#C0lMe<t3a81G16Mv7u&g
      zuJ_g^eQWcm<T0IRy5KLAJj!a>!VFbiZNU<DQ;;*xv*mnY#Z|0lCvB0TB*Ea7{4Q^r
      zS?thEKJ8o_QrTVtC`xyH;#ip$l9I-Z2uZjHIfW#=&@V)yQ!M78e?w{)YmKxr6)4>{
      zLo4HtRyRvij3pgIOgd<Kg`kp|upycvTsq}K)~&*l?4$yAk~i7KUAB%4N<TLHh3-0A
      z>Se+&EvYNcFk3ZN9BI}m0!u4UJt}e{N2Wrh7Lw^*7L3&SGT=5AOLtIq$S%JWtlpgY
      z<SofMG{xhRA-O~__y4frbn0M5QYlJy+Spy?iK>{qyvLUJ%4KvE+4@e8z_KyYt9nZ0
      zeR8E=uApg;G1=TjZF#?3<rck}?rd%DfU!Uw<#qYxgSkbwvmF)KHO!xd)#CJH%7Vtj
      z<a@(Vha2_v<?C$ukX);+k1#WETQ@LK*9Co@dVtE*%)_9IaF3gyd|Yn!%O~=xRCmml
      zkI9Vz*&~?e9Ko)Qr<iLD#uKS%S0*Ue^baLd1ssfDKE)%Gtc2fu1qv=l6K_6Gv$YP^
      z#uvGn$W;2w_Vxk}*a;{aOFv`FXXREZnzra1WkkEual5dTv*nPktY=<wyDfLfem9$I
      zRpRNagkse=<V?ELmb>KhRB9(@q@wMKh;#f)i_<A%@#%0#tK=axG1-xbUlbj1H)T2n
      zdBE8wDY?<lp}W~h{g{@{@^~}li?-Y+_p@t<H|C>FC0H$oWyF>Tg>|aMb4nUD&q7!x
      zh2@YfU(yr2041`LiSJJBe8iSVwNqVIYqTdekQq5*%U5)j07LoqSbQjH0&l#bj4Nx>
      z#&<g1(0=w{7dJj8ZHaDY!r7E|GRyTTr_yv&ufpPKXYm$K>~hb)xNv@nP-tB`@$KCO
      z%L5f{dOfWK2Q+x5Ikpqg{`mH&`=}bfS)ucUEl<i*Zf4<~77JDuFw7jt6w-8NIR8*u
      zk1;YJ(WA4aJg*qg>|8ncK5ZG7vIv$R*z%0{wc6Ej2H>uAHCPn!D!DM<Ud!{aO|c|T
      zhST_NPsIBLo4jN_FJ`5uxXHO|dD+~2<uOx4H&6YkEkBZ<2@-EDld;PE|C1-GJ6KoH
      z8+64IJP2YMM9FB^di}f;+z=m1bVl1_`kA9FqX6erT<e_y9#FRF@x6v++ZoSjc-*LS
      zXBNo?PRwyU4-QNi@WGEFeh}kV3SJHU>f+q_&BeJhm38h+r=2^$&+tBtZ}STeuao$6
      zfwK}&RaZZP%DO`cZy7<=K^#|S9z=~^rr+<pT+8bul7w*seC8t<Z+r|P<3>y|Zo*7w
      z%;2>OC*VZhwKWT~NrVUOsP~99InRKv?f@F@<0J#RY!SO*eAZdU);7tw%kXOg^d;qV
      zF=s1@qPqHnXvi`Z)L!Fm_>6mU7%9pyQiPKzA8JjHqrJ86XOFJ6Mj3ewE6V4U&wmij
      z!#I66CQt~i6v8r6*^kD$x?wEm|H@&kUd^F(Tk40go*kPGVe1w#%@Le8f(!CkYUXDz
      z7zg1uMo?@#h%(+M8V_T-@d%oXM{&Aw7)y;KXf?iqHnvx?Z?*CD9QN0E>^G6+4ysM%
      z*oiKeee+r>o~o3ulZ~kIw^$i$wi=G0XE%Zkhtabi#SIT3CTQ_-EZ$PYYqG^JErD>+
      z5$xEFaJc9&cJMJUj9q&W)cd<z{G4`KOL4gPC>GR*i-&Q=1GxGSuHRDr(Gh%1J3c;)
      zJ;V59eb{#Zx9H_oz1*RfJBM+1IB*mv=vw!+1jE52IItU);oxB$XekMo)K3jr4dDQ3
      z4A+PKTwKLpSKq+yVLZ(4N1KDZex<o26x@SAsAM-@;`7&A?67?ltzml@-wau|U_qVp
      z#_E>R{g`m2^+vdK%K<!Ybsfax;ZnBtVv^p!<2+bhRPB>{-uR)zadRmbT;5#9>vJvR
      zLS<9;Asi}o_~1i$T&VP_VZ3ndw&qf=my~jP$7gnY=Qii1Vf^&kuI34$;BHI`O=vE^
      zvRvvzrJ?fB_)z&UUeqldul=ENZ~8Aey*zhH7Rg76P#90ZGM*%Cp29fe8O$`EMZNJH
      z<{Cf1eB*gS=LJIMM>x~?G1ePD#W}{$aK7;ibQ&+>65}P@V7!V?7{9?@<F~lO_&x41
      z{(y&#zu>U(SA56#8=f{^!}G@9@uKlhylVUl|1e$`G2Rf%6!Dvel(XGv`eeRYBrT?2
      zmY4x)H;d&wGbjnumaENDxy~FXH<;t)CUb&(#;lM#%#hq=PLc=BO8J^O#ewlFs8oQa
      zt&pu(@oU0Y`+kGp()x;-3;d3r%4ESkjNh|mVW!-IKj4qF|9aVjKjF{x4Rhs2`~`m{
      z<mbyr@i)AN0IQUK{GENp*o$iX1OKEw-$SGOZ~Tj1@M*sHZ~PDYo+qW(*(xFR7r@kk
      zr@5@<9Fr=Q`TWK~AB<9I!8KyARVGVtrI_@W<0OIgVzF<$T#beLy?}=jH?ZHwR=M28
      z59CgZ0kcT_u3<`u{HjMDDp8j~)0Dv4s=L_1zw_Li$^eu3zf4*z2i(4}?}!jT!LaYJ
      z1Y4}E%L!X01mp7kIH8eC*<4e`(Q<2RE2Mm&gZ*WPq+&~jghr(D(b{{tsOwNy@l!m^
      z6JeOMP-M<ViCKqQvk@nnbI@ou;S}>EoNmrVyEzXld0%6mjCJNI*km^2eDhR9%?0Q+
      zTaYwQca*u<-BencteGZL2+VkplrV#ghMo%@H*3=S&vpc8p%F72k^3m3DN@CsY*dp&
      zi%(M>hu%#!GoE0)imAm4TXj{94Z|`m8yFlXZJy0NY;yRR@6ONgF<z!Sd~gj9RBXu%
      zsU@h2`03st1eD%PIl)yBE@8haXi{1|EtG!UjM~PqH7qCIosnP}SAf|A%j`wajO9pS
      zQil2@eo`9esB;qGp;FKYso>_jm_$D6NIggnH2_fxderankrN4}KD%Kj5}HYe+^9$>
      zjWWl3`4(=$B8dggCJspb+Pa2=QeVeb<LwC6(U^y&scyzWIax)UiC{Wm1_6}?$_ca}
      zn3r*zm!sHxAIi)tFv+|MQ_T-zx_LF~&1*29cMb5m8Pd#be?eyZ3*;193@sW>(#)1g
      zk)J9HJZ`s;TNOy9%Pk##Rkd=$|C95WakYIjnc3|StZ`q<5Uh0Eg_=*L<1P#m;4cO|
      zG8d8oB~#5UpSHUGAz36?M4vl-FM_0pnr(}!v-)*18S{2#GIzi>_oKr69Hy9e=FqM7
      z==xA8OPowbUBOanQ|a=D2p-+bJ-V|Ux-P*=m%Kw&d$ujwk0AS6$<i1m4w8uxGVvg4
      z%!g^BhjOGnJHte+$HY{o<t`I6?+iQq`Gd#KBc4&MAUkbU)m2@jf80ZIhK2o@xAu^%
      z-lEaGLe?^zR}IU$3fV9$XIHbuxIQB1s2w&A%ekAw)}#9BeOwpR=|mc>>s+SO|HAw>
      zCYs+x$b1qr%%_NvCvlqjG?tjppv`>F*@0`UD>CX^kx}0YPkkZGkqcxS)pi<<H6k5q
      ztoq9dZ!fo!qGE2Y?q#*CsXro}472rzrE{%1#OOm3Gq8p^0HGCM+jtZKvfj5QC$)3|
      z{vt*E68z@N1o*G0>sN5R`CFV|{tk8K@6lxbF^A!~8Id<gTn5RCA9Zpu!-2t^tBgN}
      zNReS(SHlybu0JR67~aggVvzi}7#!k{QyLzW?O6+V9m~JT(Em{9ujc@6LWZ!N0h~|X
      zC6|)0=uZSZA{X#kiG=frJRt9WNG>;USUxa{m_^@Xu{5y8=MW2Lh)v88E6ot&chqC-
      z=<2K~IXkkZlE`r+GA)P5Tkc3}%wrJw@Mt0pB+^JCbKW))exy1Ek?ThjSx6$MlgOgC
      zOGH0MAA`t8M-y2^B4?7w>bFT`qMn6$MB-Gx3xE;1>Aux!(-pFtw!5aGUM;ubQBKrA
      z>yu9sE46Gp?#|jmqUWN>Iv*3P3s7lo%ORcyL=h@zlb_}a6KLljrcDxkvRC$b#9yO-
      zq5WfPU5l@34>n|+diBgohR|D@i|VRFMI&-svp?iF_JP;tBKl-3zXf(ktB{rZFjeOa
      z%jY!s9)awJ&C~}nlL0I2%ffdaoh^SL2h$pY-`ar^YbV0iE=;#B!7S@tXs|BDBI`Y9
      zx894j)@9giUE%C#z008oaq{Y=D{MJFNCWj&na+@{V%#csvt_ZpS?;0WeEiJ6Sneh5
      zB24EG^S;0q^E*B3@?=2kWe>2f%DM&P>Z)pIj>rSe)_%Ohk%rb6PK8?+^3~3CWD+Xc
      z!}zLGs@dtthq5V|;D18<0u#(vnyrwP1<4#HRIqNQzF3c1pF+s`G^(t<m~HLD91@*x
      z-HIjFZCGL5fi;#Jwz`>Qkf+S9*JXCS&e^N(dY!XZlOMTEIlz5sO`L8m&$QNLT2+`Q
      z2RYBj09fnE#LyE-PZGnFnx<2&#$rZwR>&GYhGn?fw;$6(KGt2kQK3B#>*dQ`*0!o`
      zi?w;U*%$Iv$XE9vFxA-i#&c7%dp}NPYuyXO`T~O1eVAxHfNG0{BHK%>5l6#rLfV?y
      zYpcVhqQ2GPQcnt&$k)iZNvSMw@_mblZo;2fe`rE_R37v8u#r;GC=+1bM9!MB^_Y{8
      zSVxJy#~i9|1{BCp4ahg-n_PwOX421qJTBiNRgrHOq@bDEXbR7g!uS6J3g3C#6d3%h
      zm;VC_JXZFkbQ`6n$$E<maXD=*!_RkVw5su{Mkn23{aq8bm~-&Zh}k?<#v!H_-{av(
      znA%I1C$5J749ofpimkt*-1-})S+C(l>+d+#`iH}(n?1B-WZja<9$LKYp_rASCT1p!
      zomuiU3lB~8d0y#qERB3tE4^4bR!i+9#{nmCuotk%V&%TTr?+1&pj*<yDqt_)k2bcS
      z-HmCLR>@6!QBi4C`YMY`2Rgbdt%3cpN;sv)9V^qZobKYfsu6i^c}^X+n2v>!9+uCC
      zVxJ#nz5qhLVpRKrnBglyozF&-uN2L`GOY29!&=_g`z9dfn~1n?k|PM$tS`<8;$qLN
      z8)&4@J5|S7nO1kE6=!njj+WtEr~WW`<hPMOYg1QOjWzN^wtTG6+T{hdSa|S2^~Yms
      zwCgBB72;%1?SYn}a8X@VLnBW`e8cjStl2st#y6LHorj?BWR&~nV<PWbI;?Ql$n0S<
      z9g<t#OqQQZEsa%6;&kOSS$^TTCicmTQb#U>bXZzL6_LM}IM<Mu<(Irqq4E!r^IuuT
      PbbKPOa84`luOjfj$i{A>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)2%dP=I5IyBFW9E8&fTai<6KhK$BoY!|&?sYM(vt4J_%;h4;G;y1FiWxMdYrC0
      zb*k=<>kYsFO&<k9=b%pN64`U2<H+&FMbjkSr}7+|b{_jE5t><Tlq#uQtPi|#glf!g
      zthbBZ&a$M%Zf{1Y3%GL1xDOl(uvCc_O2VMqoBuZS-7+MEtK+}f@FYoDWaO&Y^fM-r
      zG1HpOC{@<7^-(9ZzKtLRIfq9O-EtA2C_9$nA=}k|`w9a2DIk2=KUBqs(m|-9;RR3A
      CwOI)O
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-%TB^T6g?NE<(c>aE?vk%Ca$|AQA$i8!MGor8#<&+o0&oQHWz+?A4Rxr2;j!W
      zeLv1U_xJGq1K=6M7%jrnT7T)i@;hT!D)2t2safTPNMQGH_7~b%NyNA%+|?th&@wRp
      zTyqu(?W(R5(#N-^sCPlVI$h-^^GTXslFM9IoHX$t(Am2{Ps&YITDBn>eGq!fa_cgF
      zF$D|e`4V>H8iFuLtz|bUwD;^|^a=O>ak<`cViOSvH}VXCgjXApcrC<@?w~8SCmnJM
      H22uA2OL1Aj
      
      literal 0
      HcmV?d00001
      
      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
      zcma))%TB^T6o&snpnxC<0$%X4Km#$_xMrmUwT46!jT={EJAsnYl6C~1&4mx(Lm5vC
      z8BtuYXiq!;cP{hKe15%u0Jy-Bh8RO_z{h;52NT=v=~7Ikerxyo4n0!%8sZFvkkB1Y
      z`u*!bn36%W-9U23VW>B{O9k$ps7%`%jyzYmvekTMNLxasWVvOj9t@p^VJz2Bfbi?;
      z`+?goP1R~f{NhM0hD>K_ijlNEH_(t}I9{6Tid$XJ<RPM1hLSIa-dJ2Zj_MOItTn>1
      z^D|8e4CUE=fAx+?vrh(z1+w}NX&51!>j|kq>UG*^zO3i~?K3e7U0|rp>+^}!Z+t%L
      z+h!1Xoq6=$d{bQ8j-bO+jf8(5I>L}OTvzyQhX;WmtM(X9maJOH`mvvmQLSq@U^rVX
      zZ+>ix!_1eG3}iLkMj%BuErBG$8>h`<3Te_aq{b<(laj+mMC4J3;wFlJh!VCUrHl&Y
      Y#ZZmj+t{I4r2k#wYsobBDIO-%-$PT{A^-pY
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZF3V<7(KVmOPg#1RtkjjRs>96Ao60>2GO=OZL}05rC9N8o7|?0+ucmEh4NWt
      z#=ihx{Km+jqce`RGNa%9QI6-in{En)X*1pIz4y82InQ~{z4`aQzy1br4sH@13fVjM
      zU3)#>yytkee4y8Ze5vAl3y!{*L`<P?$FeLbBrZ9g6I@m}lAGNTGUe)3?FEIw1%=q8
      zU)3peqT50o357kgj;H6=R+n^R-d=LGLhr0!vE2o`;mEi(84FgNrb7Qt^euh`g`^HM
      zDID4vx5YvsUbh`DP&gfO&D-~a{B*;vuQ-)v!E7{B<rTZGNje3E*DdTrpF*mpgBFm&
      z;oRV>)1+|#*(44s9DJ1^77n3bp@*2`LC|oP)&k8M2VMpn1(bDANZ|;MC2>^Y*beM+
      zaNpIFzSj(FFKAjgjsXh86rz*Dg_rc_Iqc_4l1+s)-oU9OPAX(1U0WOrr}3sjH_<2j
      zHLptY`&;Bq&<$N7i<+y+SYgn@5QY^jhLd2xCg{csJEHkQH_jlR#98_wN*du=cnjwg
      z)H?r55_!SGMKg0hjZwUt#5)Rmw`(JXSa=U(q-)wA$}zId0+aq~-S@<(Z4X4YD3!#$
      zszxikWR)v66Sh}E@6hfJ^NOWk<U+TqC53(MEm3h?+DnP9H}tY@G<3CGw+Ru;l?IDa
      zT+zZbW<nXIh+9rISW)QA4VGm2BMTqPvbai?XS7pW36i*~aKZ@bvLpGD>*|{AjyGy+
      zax|ybE4m&yzL&x*uF1)~ZV=_b+Us)gVok$B6&2E}Ji_k0AD;ZlT&Z0{SoU+pnmgpW
      z-*g22<b-243!%l@He$i4h(R-nPZdsW*ULam*j2d~1SN`1vGbn^+uO8wuEalSQfJ*K
      z;p4lpQ0UMuyFd%3@A49x_peG_3ZuDV@x_vE?}jGgA3()IRm9Iw{BmG7f@{mmP0g!j
      zU{`>!q2sPo^Q0qkMXp#_#ueUIw#-tbvcJ}-=%ORHWREmgT5wjR!T=9gC+~3}!8hKl
      zd?q=%j1GP{J2bq3uHX39ffS!9Gds=58KgPhA4b7K4@ZKM!5(7Ji+HVt^#h~hTpJ$x
      z1HGHruka@h&y8&2gu+<t3}<u0+1T$Gk;nN>yd6h7VJ~9bS|<EF`f!t1!GcMAF@%f~
      z52JufOvp5N-_Y;DQG9?8SzaG$j$?vI3X{0fqV<H-1$%Tmt*iYHks-Ayg$KpQ=<kpH
      zXvU>*oPLJc#SP5;bLtoF3?(^g1Y07*DofTlO!Ws)!w4K+E_V#u%M^y0BDSOWgg>3^
      z1_lks4rIym2J7tP%+}jQW(emLtG~(70#T%jTPEjIqDr&Iq=K<nOVM~Xwk7gd;u+2?
      zX5*qQALp|PQ<;3Rpbaek8dVYM{4Ei`V++6MPs{_ud?w5gF(1R{hB>pgbe6Yqd_mR;
      z*83&fA0xsDzM|rB;v6>>im|?i-O}FUw<wY^%;VYkCU~nojo5@Xd&rna+w{vsEHb>v
      z%fui8bC#)$yh-21%o+00WRXCZ;S*;hPed#CGNUD`S9;rJO+7~UQ2z#MQzzR!4b}LG
      m{GZVBPif|#4UZw?nBIs-Z>x_<B07f0UZRI@ioF+)eDgn~G6gUI
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      I?c+G)uLf(&FaQ7m
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~S#uOs7(F+4mSm<$Fe?+nrU;n~VUQR^LLwx9EJ;8@f`mmoGYuIs(-US11W?K<
      zN~J7ccu~}HDYbav0jeYvA{IW#1HStQeDpu4=XUq>ESccL%<b-bzw@2%e9L|I&(FUC
      zcm>z|s1fKsug~e1qS=cH^ISA%T*^fc9^?N|IyIX%4KufXk8xJdCv%64`IJ8Eheu$!
      zGKnU28XTTFZ^Uwb_ypP(0of)39#c;l0*%8(yRlq`{`v%bvwDVJ1VYws84=r_ha^1<
      zwAl9fTp}6WuV<%o`c%^3?y|VeaCa=1NSgx9Wk~i{<!NWaOymZL)47;Pc!D&C(s3gI
      zi6#vVXr|lF@I)O1S~d7l>&FU#CM$$;3IVjCNu67%AqY*NVK`wLqxsa7kvXO~s?gIh
      zJvpIg66)Rg=*dkdvI5aEy8oL2M$)3k<91m4(iw_GG1D{jve^!-prO0dSLVSHBs`&b
      zzocP3US_DXdFEhysWNtIZQIgh_k~O3a}E(;#+YXflzA!=5D>aR-8myyNK*GwTy6A1
      z3=UaEb(4l}Y!(Q{(q>Lim|4PCB-3FNo>b?zXsq$AWJa$78>)m>B@jPeWwuHy*=C^9
      zyG=tK0zr7OT|*dMOf;bf(|Oa$29w#=89rI2K}i5RHS~k^=gB56Gh3{#1B&M^4ZATY
      zP-`TO6kCBPp-zXIRcL$7e9Fk^s<``t*n@q3>}BA^N-Q~`;Z5wPMkZT$uZ_osD8QAp
      ztc7$?!yybaj%htRlFk^81sRasB>yu?x|XUDF{KQ`PIz<?Pwpo8J3uiD8oAX#`1VSf
      z+|52e*oszgg&J`8lv;0VIHA<?%oy_oT2ao;J<2XwPRGvdDimF-BSZn&NsdbH84b%&
      z&t9jMi;`u36>KY-%Q3CUwrkm^=E#(Wn5tNxaUriK$yUq=_~~HOnuq0SaVMhUebmUN
      zlXJ!qXEv^^;B5^F`r=qrfhMxncuCGPTuz?2(zmP#i?mc$>oZ0wJ!cFi%s6LoR;ilO
      zV5*7djU^2|Llx{JuAOuCdBD~<$!N%`p7YuE<d$8Ogtl^S1tFPrb+{t(j`G8$fvb@%
      zcr66R()mox*q2a)wyFH`+N_#HKs#WXMrJ6fXR}7ukM{)Dl(u-4naf+H?B2s#)`;ZK
      z3lA?(UI+Y#ng`a(v2U#`A+Gg2*MQ~xe}Qk~w5#FT()9q1U6K2Ic!ahS4-mSK_Iuo@
      zK?naE6|kIyN1j5RJdI{~2CMkJ)i%aztl=ABEawcJl-4;eM(9FvFWB`H+9R75@Z#|z
      za6kdbDFkH90$gh!bpeCefQ<yAIXcO`hR>XC4s@FDihaa_UO?m)8l1=I6ZG8WbMI5s
      zt0nRfuhrnLxXa^qOs$lQR||sj0@`E-t7R5pnJ<Ye;?jsXGz4D94#)XTQdM$qRUQ}6
      z_ZU6H_Tw8Pa^N-^Bde}UvFRa(1W0C#Pn<Yk{QGyL$YC}0g1k%)SI{J{qD8)k74jN3
      za@`_7u()*DUK}n#$}xgba%iIFhjE0_wD8<pI7&VOV>q@Xzj24(@hberpTqA%^81MV
      zJ|@2#<o5~r-5|eDm*h9OB)^k5<?xGgRf+Xdw9`dNeCngTX+dlD0Vi~UcknL1ux^Ei
      z!TM-CEBkHDkB{C)yL#-l1YbZjvH<-SeAjCPKUvEE)$thPJ3OT(8|~vy_+9a64|!cn
      zE#&E-amYJXu>UjUDe@d(7eRi88u>Y^_ZF7PFR@O3h4p;ymS3YseuG~5E&Anm*d@Qm
      zA^8JN${!KudrIE6;v2AIaLa7gs&T=TnpQ$<*uiJ5Bun)0ejWi^khfw8ah8FXS{U57
      zJGoTOmLg4C&O24*JcsEj#=Vus_o^BvaNaTQCtuZtbxJ_09=XF8yT@$r3l@MqE9%@}
      z>)f82L9+w3jjO7OT05!9%0cl6e)&rYom#gv(wKEH1|2#9ht7pX<K_ux*l#7A0xqY3
      z%PEJvgE!#d`P6tkUCHQoc;(X)ET4<zbCM}Ahl|y)dMmM>5$lg7ur9F_RAJ0p+Fr&L
      NuIh`xRlJYd{{ZrL)BFGc
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ;TT22#6#i!2w6#r3E4xxb4{FlVbJ0UWP>DS#LXV>kHC|?8cP;%{JxCCAd+kR>
      zXVxI43j=e$bLKnWxy<{=<1>JLY{XzN<Xilf_Z|OEsw*cD{lGb^(p_}BH?9&Y*f|%2
      zW2u_-9D~U)r}<8Y6Z@jx5{-Z%(iQ`TOle$+vMPb+w#5NMoHqjLsxt2ihEzx!2@r#1
      zi4i@NN(M&^h3p?HKeKW*2D9ikMH~^#+OUwIR<gO81?tkq6rviXY{W3lkSs|h%Drw~
      zcvW8Sgq^qz-l=g<YX2)}2G`Q3J|^1ue=T~#ire!V;zVlQ^yC8f^ja9~Q>BDg>~P-~
      zehh02o8$ZXr3A@-?;hJUON9Q-AWNeWVtTO9G8#Tk{tS7S#L&EC{sDG=cSxWx#QZ&l
      z45aB!!6f(u(|Cbpydq(|VS(aXqckjHi98Yr%dimXLI#}-c?OoTLRJ@KSj9T5Pte+p
      A*8l(j
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIkOHUJF6g^+RfuS(cQmpduEoxs-K*dLSh$Kp(tqTkrH%!Y!N6HLo2VZOdgiBX$
      zTwo$Gn%L;p#J^(VA5hQN*4nWqZnQ~f?sxB<bMHC#&V2gzt_ENV3pxS<>HFpb^HI9`
      z(01;oJ?oK|Ub)TdlDoa*I+o*&ty+(_&7H-PXS+_`+|i*4MB5)~g#;us1%`9&;W}mm
      zBqPx6-LtD>lL99@ll+BM@~rLH-n_tE?629K3C)`EbpdV3-L!%bIAB0WPcI}w27(B)
      z<yd@OMIr{e&@B+k*^X7%-7Z>{+h(zBF_LpjW_jJL*y`MLYKn)zRA*T~i{IrVE3w6@
      zcP&pK)}WOxo7DbR@xE2^GI1YbL)(mwQTEZUY9pYC95pb6VM3O+H&wGL%ZEt%Rr?8v
      zkZQIMr*THdn84w7xV9k~IE!-xVu#n=U1yUru6Y%A%Oc&8Sp1H!zg94#T8SGtfs?Ga
      zWj$tg^k=rO9hEq4Ac3Tgv_Saxeg%Tn-5sk!XkrXD>iG}^bnaOr-cxkFdks_A)HchY
      zSuQJ&Ds<Vv43Yx9Ywm8PWZkgUKnMLJnou1G7+J@$DobUvTD7V=<^+y+DCB>T%fdSC
      zF9+#UX1-kk{<%&-III?~ej+jSGTz72Dl=4GD3RQUk$8jtL~0)cujmS3kk@_{mI-vp
      za|p^f4$^n14jV$0mimQom?Z*)<N`E-3p}ghk>p2=JVQ_N14i}|$u~H%M{hg!1az5(
      zA*b4~BQ5L*j^Q{lg_>v+`)a)wIVE0W;4MxG)Yy4!<7ErEo0*U^bwoqi2saUh8h8`u
      zGc<|=<oR?e*8<BYYpL4CdrTDMjP?Tk<54Xc)uz{;YJyhn`S-7N|A6w>Hd3unilHy#
      zzvv~XGGvC*%_1b{FeK-3OfKLo@00QxX5=Ckd0&;+>y6H<IU(O{v<u6a<kykI#XP2I
      z1t{-DoTnu*%B%}KX*>@#EumKI57aLGFKRbQZJE@vq_#q8tE9F<YB^HNlUk0{3jc&!
      T09Wd>y^0L)YIy}_DNEo7od-_o
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+in|G6kTVI?TMXf94B_JO_S2l#vZ$F0}YV0hFqGGi`~+M@PH5*CqwJTu`ORh
      z!!sYiC%{u)cqkHWl}h-rm5_MiBM>}PLV&nQ4eN|u$8HE%@|-h!@3Zz^>+C(>K6_LJ
      za1l3jXacc2){b>IUivtbyA?0ncgyj`RX%6)+l742&Xq@(?A>jv@Ltg>6zrl7mq4)j
      z$U?4ADJQLhfMl3J|8ld}0jwcR33$r4Go{fB0;i7#wPsbpmovFcIU#Um?0=(=2Gnzg
      z*92U%`AypkffELFwD}<6H{eAlOCAfaDNmOHH#`FV<xI{_RkqW1an(v^ZF-jT8&-DB
      zDrVGs-RM$01mZ{2wz6o|j-136%PD0(Auv-fv||uMI!+4o9wVB8Qy69yx9svvzLMJ{
      zt(9^yzhyK1z*zYGmI@lqDaG-$fj;yz5zh*kts)+Vh8>7_*5dVFPv5aO%2TSWmkpf7
      zIRP(EPj8en`5as2zcHRSQ7xP`gkkE42!xu+H8LBBs`C6yK-<+F_S))h!B)x78;FB#
      z(n;T({gGA4Hfrb@s}=l0GIeU)z$<vQcIu{G%4c`%8&;990)sD{YHmxV)r5hUa7IAe
      zqOQHih{~2^hZpQkPC!dYoiML=o7cN#@0Jv1!oX#9civKkgF}jh?mO<n1axB8g4)vg
      z^6lDIWC*%Ir<Khri^9ET;HtuvrL8QV+v@3C$ybUS_IyUQY<FuDo>%G%7z??aU7XEY
      zrIKCJkrEhgzLtNPd=3nAvaI^-V}z3;`RUO3=ePi!oob+*H}Zs!{&v1CF+#=pBj$Y=
      zk%#DrMDHW;6-^qt`Rq_`?I*akAK=w~M3A-~2iA`eck1UyFH>lQWEa<gC!KfZjeL#3
      zJ_ZD;L?2oIlJPZU4<n&Hbr21;M`s;Ts2i^1JYuwqzIl;UNU1%TF>@cI8j{f`2$~Nt
      z77(9(4qt2^G2s~1_M$+Fem(Z&;Crs#i1`qg?nUo4vX8@H_FtfBze3l3gHQV%UD_WQ
      z(f-6a?Jt<x-x#NTQhSDkc7Qp_R^sVMt(pe+dAx?#S*wOQyaB~p$D5d<9+FmeRh`Fo
      zJm=>5BvrVw+z=&cR-@JRZxBw&3D+JvVj-6qa*eNi>Jr>lzc~2Wu?LjBx*lz~qI5lt
      z9ny*LMj<_LOC5gMhCb=VDe1#mt`}rGCZvIBu1oTSLnEPj0?9fJH{NE^Z?RNA5}4*r
      z<5gb540n>_8p15;xj3_Z^_@_SU85#C=+TLmCbjt{YBIsv&BySV)kO3$^k{X$H576w
      zwv%o-;n{<~-yQOpArJX_M94Gb(4{?~>_epc+!Jz<Zom7G?+lv-vWtAX$v23A3?V3c
      z$h#MVvJb<uA7|tMqLLpQc@k4x=j0F;<te<&^+P%A=y21SiF8AU4;nhG)O85p9jY@&
      p9fC+<!O<a#2}c_@zkM}rJh)cZMh(Iu)zCOw%Uso@u`h8Q+CN~suu1>`
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVT31C#!x&F_|ow>>60wD=VOv0|fBq4$lg#a2tC;<Wp0SdIrkPKvGl8KWEi)-sv
      zZR@^N&|0-9))f>cM5;hrLG5O1muDAkYg@a$wzhq(t!;VVf6l#k?%Wx$@2POl+;h%<
      z{(U>wSO5L|i$pX{e%mA|Xv`&%tZecNI^o9k22?Wy`j?fAPn(cPQqiT0#SG6aqE
      zE?VT73;O0(b|e$=cw}QdYEq$~(RyE`qa)ha7uy(%$5K1$o9tilsGyR*XfhUwuZ|}B
      zVu_wrt@8zmMS_MjCwlr)k)G7*NW4E9xc+xnE`00Wr$-1HI=^K>)2b!y7cXvE+t##P
      zQ0WprqCOr0_A66K5Ybpj!v&e0(M^&5cuLTS1<RUOt-QFYxw&OY%ZjG<Wh;1dA(aa%
      z+mz_&?_+%8(PSi*NG^`<073TF_GF}|Z&Nh6Fw)bBc|qr?vrfUQiSzZLzMYLgXG?TP
      zccixu=xBudQ?Ypc!bo3NikXEKLA^pyMeZp;3!Aa1#E&r8)r{9Yk*%@KkrY_CAQn$C
      zt`l;hEcGn{yn@a|hoH*bwe!K4Zb%<%0v(ZL6nq?&yQ-OIu%s~B8B=rsoppkWyJDNW
      z;`pO58J)XtVP+n?L+XI$L_7h!OVsN6$hK6ydV~4lov}V<Qm58SwQP7FMAnhYdN)+R
      z0~2gm!R|<MbF2ptGC*5<`l6{mKrQY}MmD$fD8Qg#c1Jwc6HCnnPbN=UEy!q2bV7&E
      zhLR`+%a&J&rqc|I8t5ztZnoN3L{JcmPNPwRhAoNpM3?q=Z;U3}`2beaL<iJ70%gZ<
      z`(@GQXiAG#P~BvWqgRoq<Z{l|1U`SRMd#B6z!y*io$1}bY~v+hPNUwhZNq+L(mX+@
      zd97KQyn}@Rv#eyaJFzvYU-3Z;Ecy^16x0)f<d$whMUl=<XWIhr;kFf?6!();WzrHb
      zA_uu_f8^MhgWqCW%7R!1%gTerl-0%5L>F4Lf>tVTlUfn&OT@QEmqT@Xz_%*BDa)ue
      z=*B6lnfg^0t)?|#b8kPEpXWWp=BY<;Cucm^*J~dsw!q{jpPUV>NguJOf=-7Trn+Kq
      z8sl=gnavd_bP*I=V{TI9Kj5QYyCxaw?Tscww1GO9kDY?%<Y9^Lv|MyNJQK9ZqRrF=
      z8-r@L_JDD1kzP2q$*tK$J5!AzP<)9+TPTh_Aj6pubo%7hth1aMC7d4WH7Oye+^aIq
      z3X3i!_!G7<N7kc!Om~(xngr2K@IvX0M>f?v^Q&4}Y5J2L(Gc~}R*SaLcFk`Gaz!@F
      zoQ(?04Ybvy%LUbY;pYjo6EzE)I@pbaVIjJVI+!z8S#&jh42B6(+*xL4HaFcV#m;Li
      zx|XiPCa}|;VSZ+@)16V6-at2+^a&V}7gKi$GxTF7eNxaw@4VuayU5F`8|c%_s_U4L
      zPZv@J({h_dx6>W)hnr%_=<;L&s+Zc)+=b{3Cppt=TwXVl<-!yJS#Q{1%Prf$;w<7$
      z&SP8YVKhTJx?=H8M_!2iSrDA}SXi(n0;e}EYx?8|xctD*q3Q_t4cu=Q5O;zPNyK4)
      zp?D(Vy4H)b1?KVAjq9`EoCKM9v7Sy&in15$Lv0WDIkx);;cH-@s|)F2jFv{aqs6qF
      z9yRF^2+J#Pz15;U^ccb>R8pmAz5rwkPb+AatcvJydeWpP1ckj&PmR4rPth<iCZcSE
      zkz>#Nj758CA3R1!q9+xJ_4L7jd{Myh$Lsjm=PcS!2UwK6E?WxN3Y-&LqKzCc1}r*A
      zgMft?r|DgwaznjD(9~?9WHx6>#APy$MEVA9ZPdbmL$Ax0$EnGOW|*3E>>QE3(>??;
      z!wO7`82+?^SFW?b%hM)L$-9d!@+FIo(Q%}C*suy4{gFx8cRMPARjqI=uh3UbdexUg
      zc$Qf7HTt@CRV~N~!L=A%>-pLI%0sQ4t7L^?7XZ%vCVk7K*WkZ$l*V0U(U<7UAu6C5
      z96-NgQ6*I|f#0*Jk!JJgzbtB{MJD|~(78Eq?9|-_=gBkLcl1VWJqXboG=o*-#}>Uw
      zZ|Ri6-l|2x+|I8CjKWVX`Wd~g-SPr1K6H9$OkT&?hM-?q^h=)SD9EVrbO6;F|5L~d
      zeq+&Z>30ASRjF&sR%9`durYa&2Jm}}{=fh@8(7vGxwIdqBIsR<{=~UzVSjIDBo$>j
      z7op05At=S<)0~VSMO!xhN?Oh=Tn2OZZx)TAu_pZ;sYwnen>O~PlF&wHPl(>5_bvLT
      zLLeE9bRrktQb_*>I-Pczfh8bG2woE6C98VkSOnBXfh7$4_0~u{#_03wpe0OxZ6>3=
      zuze_5uqV0=M`8dkss@~XI7kSp_QlI=x{yUEi_wK@Jc<I87YLf-ZaY~OYcFjy1$@+b
      zIqb+zohD|g-|UHy7%GOt6N^#=*gO)*UJW^D8MoObPPyKq3Mae9QKAwfEvltDI0eqx
      zL87yv%%;n`1MGw*w1e(qQ6)y3q8e#N4nYn}Eip!n)j*d-dp4(#@S%2UWm%55!~`)>
      zOD7)bKx}WA+^RD<9S!UNk!2`KAWbP0@f-V7(Uqtyk-Y<tGf{ttN$^krq2ElgL|D{7
      zW8n0WKxklsX4uK%|Lq7<fIF%r()(H=_+(Ec-jYlvk|9w`Gw_!<%M#PXbWqF1UUQ_s
      z4>Z-<JXbYadsi~Cjm<Ty?8>|~#W{k`$YJI@We%!zZ`s}v?d9YT=B#y3;E+kVJj%C+
      zV+5qjvV$r+vh`Mz%*sYfoF`@@&0$t5z*)R16sUh;-XRy2KDM<cON2x*8`h>x&<_ma
      zw!DYo$d#T-oL4Wf#D`cfhP!hhX=N&sOz~{1h5im^GdnTc(u1@ofQC;Jz&Xub)!H17
      z^!2sQFBD6$mZ@@^PVBsjQA<U-wcO$I#f6qwCT7AjiItXU7pssD_Q&AKvUsP$lm`r0
      z763U6&sPO{0-DN^3dCAVtmf9nxNOVJ0m)_=fFoj{*^L}8%#gT9Y%s;ezEpcvYg?oz
      zvN@VWNERsJ>|)aiikZHfFIwhc!Hn);j8V6a2RoN1qv&HLqn(-d-0E0#TW<ok6T1vb
      zHqucT?z_y7q4UG-I4&f_W=nLj9+qUmQM*oO3A+uyRWOX!o(?n#RAFtGM9RIaKsN#@
      zK5PSO*IFdvqQ_)^q!P>Q6_!ZQQSfkEtTWZcD=)P~lHUZoqTEq31yp1_n~`m;@pyD|
      zB;J(Vtol{1;ueanf;K0TF(9L?YixIaUux{e=-6m1)fG*SRhBqawLPb<<mRW-a_pPB
      zx@ARsYje|*v58YITexgR>$+u2+nbhzL?1y<&8;ysIl0|au5F9CnV}tO>%j-Eq!Tre
      z%4m^wWwCM|2R{!lL$N+58BjhJ>8ubRvuFZMETjo6rE5`F36y(w?vZ8H>yTR@)<P@o
      zRJ{-Z(i!4h)y3n|FuR^q?pSyD__$A6G>*mt4ot@0QJHNFo(=4#ZxOed;#TNZj?Yuu
      zEpa=CI;0_R;;BeH&O7e3#9jQ>wBHrdIE}e|B4ch3hd7wq&Aw8v3afXGjP`vNO`^#t
      z^c=M9<z=3DsaJFDgDAs%veyi8PP2b=hA`jXi{wK-Z_yM!q#TFjEGVQYfXbkBhm)ar
      zeWrTNP`+SM*nyI>ppe2om+J0&+M*iXhn}bn7`Cfs3kgAz4Oj7Od7>}I;e{FfoF(?N
      z8xAr_378Zb@!6|br)TiegO(WN@-WE6@zTOx8xW4<PGJu47cB82?=X2*Z5fJVJWXFg
      zWAiDSXN8j8mn=Gi&O`-`lRa}eURWufXMxHaj<NcouBpmVKhMfyaZKD<NN3;-h}|=R
      z7m%3e1#{x-miPuUjRP&xs4XG!n)tRUzJ<jZhtw8Hby?zd@g1)ExcRKo7KDQ=@woBu
      z`<D1GPHw<mZfG;eA6VjtdV2(IreR*Gsz6x~?dfEjf6EdF=s_O+)Dnl7;Yj)!NK+hr
      zv=Su7oO)?Zg4jdi7vddL{1Q_cY;_2=aEUOM0sYz%zY)KMqv}TYJKmn)D8Wv}Nfxpl
      zS_tm>zb)~5@dxYxPq@de^Or1RT%JIF-pCAm*Ajmce@4^;O>L3Qv5qX&L95+klzJC?
      zE|cqf6;p6s0sS+&!FwnHPRv9fT)A{?>2spmLKQ2RqQ9eUCH~=yaGbHDXox0}v;Wf<
      zgcmt5LgL?&OmV^+rreE|6s!rHQ0udbWP!NUl!kY;8%Uw=r$BZMhq{n>Uz(OI<WS45
      ztz|ot%+Z-4LyZcOQ7-RM-*|$Hiw|;{5;Q9mKbOS%u$M1^e04;Wi^ck^H82&p9$8|^
      z;Szq=irae`2GZ56{7G+D6{m9qKO0S1?z=|Jb5KZ*l%q^}ny=4#5}1~(km!CFfF$45
      zh{_8ab$IRPJG3l(Ko0zqLj-gr4*}WqL+SLjM%HV_b_~i6MuPL$tVxJrqQ9Y%hhom2
      z<OEAjlyEPc)H+PV{;b;`O_JTAsn0`{Dd8Z-XLoS&9SCQ^ZB>QrDply`xJu79#W<DT
      z3Rz>xv2t9oER%JXoGKBpiaYpj&w&z9`}_%Y4lo#m!+Q`JK({Lj4>l4~)Sc95sw>gy
      zumPow$J{lnJj;NgDI1)ej~&oSmqIR?yz8W^U@8?_<athmvxB7aOn{zAj?h)cdUE)t
      zM1^&R7S{(XMMF)_h0m4e=VbdTsQHTi{B9WG2RP5qTxYUH&$DPMO~e#O?aUOsscsy>
      zu8Oz9ySFFW*wyFty(r~hkqa%^A`!mM$&>8)(91C2cHY<~d*Mesm%4fePP`-0yMrxc
      zsU??*tDrf^arJF%p<EJ@D`dMVS0XX?hHu}!x+Pah*t^OE0nO>ZImL`qH|h7v96xNy
      zwGw4qNoT@=<?NbbE2Fn$&hj2M81^s)9sQ|7xt_7S$dVT`5^Uhj{q|K0biX$OCtN5u
      z@R|-wcJdk)({g^VK{554EV)^BA!uOA!N~pIV2m$G@-5&TN#fdU1dTK$B-r3(RUY+m
      zI+{K(A-P2iXIv7N?3I@S7pRPH4JT|_%<#=CBZY~m_N+(eHK8pWcS5pXZZqZ9tn@?o
      z=PkKi%!J=gCG3h`Cgo*lg~`hWP4<e#Zs+G|B=J4(Zh568uaZ~84MtR1wLF^Klt^|*
      zq3dI8Fd6^hK}|&sqX*Xt$iwtjC(8PC2<c=-$+ZXY!hscmcdD=J`KW}uv(2hID?foU
      zP2QNlOl!s(oR2&d_X!vv|5SrAs75YGblRG69OnF=b-?%d^hW7|f0@!AT*p<@XpOdi
      zfqSLn@E|`Jh4d!-s}qBJw~T=1QY?Y;H`0kbOaE53Webtr`e$&m%0;oTby=o%mpeHj
      zP61dqx>oW&OWrR(3x|c9WarK>6Fs~@^B?m$y9o7G#q;_%p(PTM51_p#ACM1Q^7C>x
      ziyyb)+>NS)$UM-rV(LweA^E6$%#?dz(GK>SOiSK{JR0D(u{}LuiPQPJ1jIr0?SSnC
      zGfd%{KoL1V+Siec*}XsS7fm*=koN&4vC;VmCzlZJWo=8wQqW*0iN-l=_)XG|@oDb;
      z%?!zd@_ADZdT`gPEcqNG8%*@4eAwDhwEt>PB;xI{-gebztk1EkwnTqlRM~r08&tCo
      zj5{K~WXhv<SJ~qzGW#s~Wv(aqW>LiojzKS3@&$QJP>Vh<OCdif2IUA5tddc<p-MfI
      z@dz0luq3onUHC7EaXY6h`;e(Db-4W29%R`nd*jr6)X6&g00u+0FJcj{@B_Cl_8l~w
      zmHw^$2=4u{!oE<_6Hs3Jx6kPs;|QUMBn8N%QaYWA2x>>gxGIvw-;WHXVean|{4VwU
      zF2h;`4y+CFH%n>{zBo}&T%4&VTmzoOS3T;9{*QX1?S!Y~;#@t^U{O!>K-3dm4E01;
      zLOpT+pq@xb@LWWNR8MCCvuXHM4><f!@gbVNc7V=#j?UeOpOR+c?+{NKQ}A3*v(#Gx
      zk+{vXH_yO48rD?&ES(!p)0`vJwAbAn<SApe+Gy!z)C>+Vi1{vv3ju;L7?A<7L=Rim
      z)MS7S1*6GWLd8ZKl^IJF(2;th4YU|oE(8OS$?z>Bo=jdh_F*TDIYf)sh6kvvt+r;6
      zmP-mBBa6?eO;h`t+RQ;CAx$JlRAh8gi4mo8V-r;yo7I71H7NT)mdl6j14q(YjF=gX
      zw9Y=d9#3XYAiST}XAaP8NqN{3ppVi;SSaXXTB$e7%gKOJ;WoMEIBMWMWF4XnYr{1I
      zw6QH*kf!L;y5lrFTmbB2d+3U~G<7fKzmCyq{5VP*cF_<$>f3qZZ5|z`;yNtv-$QNo
      zlAScU7EtQ=r}__b(`wycJM877_42-*R9<_GO6&!CHiO+|3cD+28PJ0(X9X$($Ehq_
      zVWjEfd+3geK$@=Smv|hb3iUinm+hjV_VA{iC*D-U<20lqz}r5xht@mmc2a$X0eF~U
      z2<kt~H&z&#-#5G4CfeI>+KH2lV^r=gbJnmxW(C7F2WWk`^p=WXO`2}aDE+gzuOs7T
      zDm8AQQO2!QW!y$*823=vxRa(CcTuBpH_gMi#n?$pj9t`jJU|y257I{CA?h`D)8)n^
      zbgl6O-E2HXw;RvUPGc`UU<}Yc;~)(fgY-q?d3wn>LSHjppzjzj(p$!1dI#g*7+<D8
      z8DF7)8ZQgecvV=&S4EZa4Kc;|ra0U9u9$0lUo;zUh&JN~qTTqZSZDl9Tx`58x{RMI
      zWm>2e##Sb%j?zh_lVT0sNq0dzM~MsRZn_6rybs@3e1`6Yk`2(aw3BvGK&*pp-UlrX
      z!hr6l&uT@apTi#b0=$d;L+y(L^uW@B24fGMUROK9m|ptOAbnmE57~~cGsFm^_Qi)z
      z{6ej%udBhte)>Y1p595L!}`~=nYVBly9X&<Kx$(RHolgT!<oQ?jDJwbcpsMdPnwA5
      zRO4TCj`45s{{(#$<IO;g9n)N34IJrt;Lrbb(INVxvc4{QfnEgdA(+@<_}Ky)LgVNN
      z9R=;v@ZF6b3I2A$rno`bF_8sL{tEuQoThL1%r`LHW4@MazW5x~hVd}YVXrn1F6Z0f
      zf&=t=X~{wQ?h@F`X{9CNAbo#H%^`XN4)=$H^dop9X#7w3ub+p@>76wFn#cc*!~dA!
      z$8^LL3QQ!!sG*|3nKUdgiOK>~==4CCCI#xKHZYZ@1?uU%z*#gWFpZi5(-oH5P0q8i
      z97bo;pTQ;eO@E>PvGIKg+%SOeVwlEX+iH)}dpjvqdxYLg(?8fw{u(a*S1p^#9x7j&
      zHGQJ)aQ5$TT1fl}>;vckZb&8otd1tL5D+QQK!LzavI4V!{A?N(m_ri+7tq8&6V(Lf
      z(eywwor7^B#`6O6X+fZc76le4LbUr`>?k-b7KJocow7g_VFdTf_oOySUibS~zx)<?
      z<mb9yVTmF3=CdI`_T5E?#889{QQ`;C?g3EbD1ayv<u-u1z=jooy^I)<5u%Eyfwkbl
      zI*)LIE=@sk8iF;1BSwh|8<vL>F~X0?MIJ;llpyc5H}8iKH~_9@$tt;4@d%<V;OC&I
      z6u6{Fi*b8s2EWL>9TaC2ka|@k2E}9pU!0Y-9TK%`2gKCcw5UHKY7euJq2<&f&bEa-
      zn!QjUN}<3e2sTCyflH_*&<#QM(yBmGVXFnX+9i6mn4vPG1vE@Fh;x-7kt*91blS2Q
      z&$t|iquT4ob5;TET~j9J?8S~E<WAKtHY%D2t|T*X6>R1jst#O7qXVDt@NB#*JY3A<
      z|Hn8V^cZ0O*(!ZlgtM7@@CD+6%Bn%ZN8z_tXcfu>_j+h@d;xZddGImJ9W?hbV&$Cg
      z(sZ>AcO2lh%*I~}D?8^@ebyn)Icbexl1f#Ln9bnb(4a?PMSG|u@EDZ_o&;G>(->GC
      zyF<<3aW-iIsuGJ8GU!z(v>2HsE;3Vb1|w>ei8eoRFL+pG*zgR#>&K31*pt!C0kPb_
      z`Iu+3tDF3_o4t9ueQ;rTzgTgEUh(gL&9lGIl@o5&?fo7j8xSA%8`%%Qq8};<+5>ux
      zY`yr1IvXEl*|27@gjibP@ImoWAd?mw{Se=#;((5|I-hl<El?dsZ8#Z*q{SvbLBH}4
      z<T3<b3|?Yyz5;5&Zg^tVE-J3sFSe9~;!jo?52_!%{Ns@5TU#dj2gJ6+Sf|xcEBPPD
      z2>cNm@h%My{D~?8e^F<JH9VVnfGoC)9g5J2;xeU{{O)p$;PAv1E+$)TOhyBfLdHa)
      z!K2<&;BbNr#NnbKO4XpGvY_F?VYG|GXcvdkE)Jtz9Ig~s<*;(UxcW(#TxE5^(tNDs
      zZ};rY2@uYfTMga1y7ECX_VHj&xblFwI$S0`UR9YE*JK3DX%7Xfs4!R!{Ko+QvA};E
      zRRzbZgS16eyEIgb>rqUBPPnWaFk*}Pgt##e<~RA2AXt+RbMYzhX?yc+Hs%dL_@-kt
      zgdgESaWk?6jM_M$+>||a2d2uz-6}w5NE(kikAgGE3^vg4;CVDMIFl-ajWj+un`(n|
      zX-4pT4`~f9X$|5Y)S0MyX{`7RMoikhVrL%GcKJzb&P&?;!bv7CvPmlk{<{<<yMXuu
      zKEz8|XM+nV5NxGTa1rFN*n?=fi)gv{912{{GKPr<F=9j?%8Tg3engk$MRa#wL?2d&
      zJ`6-3$%|+^5M2dCR|C;CABgCqHllm-BKnvgQC)Xyca!lLkLN}7F@@-3K=g^ch;9I)
      z5g@t|h<5zPh(4JY(Wm@~>I&J9=ref{eM%wv6cF8;7tuHn?FOPfKs50mBf3v;GB^!3
      ze-57P%R_7?gW_31e($l}Bma=CP=assZ3rnS6Q^&rI_EI<Ro+J>mHa~`OuNx8fg>Ie
      z>BD?P<)9dlsHq%>tewd<u)J&GP_Czn;0-h`cq7#WZ&K&#cvR~ua;<n?g=fKE5&VBK
      z_+l;ww*!MafWckB;BH{>8DOBZm6Ky|SRAo2$V9UJ;;3KT_j?$a(aSH3uh^TtPVA_5
      zVn^Y`UQ$l%sFMFtu+B5}vT|at_!L4rv4=p&!*F7|;lv(+6WaqP_86Sl<8We6cof9z
      z#9l>nOgpi!V#L1TL&8yz3-~w0HPTfOJ@}fSgW{WhW!dkcb)>5--*rVb4}pf2B^0jY
      zOfD_Hmr(_k?+0H*OgZcky`ys2V`pZ9zsj_EcS`Ku@MHIKUhIC92RqI+5%qGg`!=w9
      z{Uq4^*j7w@BV%KCJ80z`rOvg6xs?S6#T&CLtHHb3Rh1aesp2t$ZCbn;u1braWEi3a
      z`eRu4TT~MK2?Y8x1lhMC&|lD`;4dN6cN8i*ajA1{q|Rm(4i=0QSM(E9X3dGq&)ht2
      z4kt1|Z&)}}$>gE=_lWR+@NjOJeb6}Zwo^KZ63~gPfKslO%yHFZE-Lw<{0lV!+dlKQ
      z0lhD=upv-Y{W<i$;44NLBLX9gPPdR6Vc3-v25Is04Re?`Z!#1f{3<PeHz@unQD+%z
      zxUiZ)3H%>)PToJ4Tc^Q4gK>YM^5EZSRPgU$+COMQ@B~dk%~fv}&^e|-^G%a3G()u3
      zET)Uhp_DXBsLw1{wCXlV%4KRw{6!UBA-Y8Tk78;$Z4iIOr~n_-wJMey$nl#M%L8Ea
      z-`wnMrENo8!n}7>yuXu1@hC0+g~z7-QldmLo-Dw>V4+S_RTI}7MIp0-#+a2J_B*AD
      zkOB9A?byW`T)2P>r1#L3;6tiwkBIlvGPqwB>2r#9lZk$mQ82qQbCODl&9NlSab%j~
      zX{b4YCYxud6Ll&VwwWMlvJ9zI&ZG&lSXxY$93qF>>OS8#ZY#WB4l9#oHEHQD=goR5
      zHqTP9wO@7W0#p;SQdR+ykkzMxI67k=%3+u@0ddv`K*R?lHjZu^J`4oYa{Li_rq5rS
      z-ps7nCf$&e<rEu4KgedQt`4VVxUFFB9vW6#J-ud7)=IjrKvZ*6@7)ZRn!igaU@nI=
      zFQhU&tIQP&V{N&fR9V(buCf9&N=}oLaF9tO<aDKELY^%-T2I5#K2Fcb$LaOp%STSi
      zmvaG0$n#DGF^AJpK-}~J5NFC+HjZ9S&rqCh^mAG#EIJW#I4$_AzMSU5TwAq5s?k`P
      zmS|u&rlN`*Gvz_d8#C;5L0;e*izisiri>kEFgp|&Uv4Iw-C8MAM^_$@O&KX`UAziX
      zzS@I`r;e8MmE{P0p|Zf{P&QGJ;fMU#T<d}5AxbWii<SJAxW1e<f_-@@l(KCnDxosD
      z{GhyWK*BvbjM6^kMp*exG~E28htg78&4pa=LR@S^tbo(K8W$QFz#lm%Kbi;dEpQ#T
      z(kSyb58w(H@P_{YaO9xem<RA(0DLz9-;)Qh<d0-*em;s2#D+N+s78-d<+Cz|$a6?;
      zL0eLGKPO{hyh+QRLo&HGJiOr7wRTHBEmH$>$I{xmL3xEYGgMu5^FHwFvoyqf02n+7
      zU%Z<pnUBzPJR8hMX^y!^VWlm3u1zj*kRMawf=3^h*T9k+s1VkDEpt^~C$G10?g7T^
      zxw+H$x?OwI>s))&>*3Nel-}}&j09D-Y(7DS=95%pJ`KJ+1AnrYDot-QtIEZqO5TJX
      zAD7-k<tH&>fBh->Y5Q!CA<*l7)jQx}wwtxeo8>LJo8_&3WAwJdGMjIgci5XVR#bC9
      zdhV076}<#2(*3ZUZj`(e_q^=6?vi(BoP@kbdBx-4WB|OJgS)qph<Fz)twTCpS0?YR
      z9hAEY=#YG1?SOo6=^k9~jWF&=%ZJv$=pI?yVBCM=-Edu6ejzO%&oDcTw290gkzu|G
      zX1@g$_z9h6z6}+4hsK+~qA;H4n7^Uf=5H0R)TI*5ahX3yJ}I99vOq{aEuR7Niy(%*
      z#6fiojh6f5vlt=Clf`iGe8pnfBO#xY`*X-^0tC*Ti)x_X2hwsNgR17+d(ex&D^xV!
      zoMt<=$U~Cvcm%#pc+r+Y6Aou^LzGJeBMztKSA2pjG(F&kxRec%$K}faBjqaqAmyv_
      qt9VYQpg<}hzlNE|@%%dI-GJveaLi?ReiKi)E%_QK-h$`1i2fIdu<?%o
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%TmHX5bQ-I0`d@fDB$as9E9@BNy_pfrIu8A(9;@LDi{(g2?)RD!4L4GEGJ8d
      zB!ZW8Wv6?mr+2=-KRyAR<5WR{p*rLfK5e=0hBat;V(PW7#cagi6l^jS{9?=GRJwg0
      z3f*HU^M3zA_YB**vK^xKJjZ?&3{ADWd{bCyM~>&pw)Vh~8VGOx%W$?%tgTWr<VoAH
      z$5!CPr7=|PX*IXF;D(lnUW?PiVw<KW#ie-RV>2{ZQP()B5I5Ai6v<+wSRRYPqb5To
      zbyeu58$O~aOF^@F@DwmTO<?O@xVAYFcia&cJw`odYw7)bf#G&-otx&2rZFth_vem;
      z^xI#1WXL&UWKTrLu=>=IQrb}chpNnvLvB$2?=n&q+&>{!qs<qQ1mxIgjVO6}GT&6X
      zXOA6STp1<>mLYGnvQ2*hlMG~>797aZ25%t=f0Gq#OH3gxF@qh6S>z<<QINQcqQpIv
      dB$iQ;SjE1?1Joqe(U5qEBkII(Oy2}fegN9F_AdYc
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;5r=5Pb`UO0A;!fmfpkFp;X)8ZRU&rco0J_oZy;lF~M95&T)6Og#7l{87f~
      zN|aa=J<R9MyxBLqZ|^U!08X)|qrh-7<_~;sB{La}tW?ZX%i)hA7Q<^f@_dq1#D^+%
      z&t*V?4vk?W>#}@KJ$Hk#a8n&+hT|O8GRT*|0AeVg%Rr_V48=yX&!Dx#p)gRystFw{
      z3{^)4;&wV2h`7fGzF??1q09X~k7X7wl3MD?gyGD|jsJs+&0s_sD^<r3HWY-#XQ_1+
      z^T?BKVs|><$*#vEVdv-E^k{MIa1w=q2-05)`clm7=1(9R-wmg+D=uY5uAaYcE2G3<
      zc7i~}ZJ#HJNObHn9Q=bT^({Y~wh!7gNr|4nK$dn)x<ZjfmXR$TJ;QiX$0q5rO17{@
      czWG^zbyT5#05(-!P3bLclQk5~4(eLv190W4umAu6
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=5Pd6!N<~pr@ZiO$32I{XT;qjA#WZRH;p_qvSW;TDT?BuYCle3;0DqKm
      zT1_P2!Nbh#%)a?}GasLC?*PuRV`E8Re;}Xa)Qu-9?74=f#`WbhY3kmnUO!+lq-|IN
      z>j}^eB*X681L_zXIf31U^qD+?+=U92xfIA$k6Hp&E$Whk3|0!Tu`E#ZRY-T^VViVQ
      zwgVC<`B6s(EvZ%F{{$`5SFymMztC-QSWlolk}5RwUtHj^npSY-#JJa5j{2$-d-eKn
      zu+f(z@)q0NHhD9(XgG>O3e6vYmZFK5P;?s6Sa;}3C1fh|Gmt(_C<qklVMw|b$T+6h
      zMp@wOAKVVodJhRZ(p+TLwf4YkX36q(m)P=xS?Aev*$TGV<5xH@>34y3E)AYwmEVPL
      a0M<}MdTnf^xKgS&vBlP5%r;BK%6|c>9G-6g
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<Sx*yD6#gzP9Vi2>SXxwew=T#46&DsC6fq=KBQ_vDm<;U&2g(f2!s0*S7w`%$
      zkVqoNzWG!95$d^jMkxfGWai90_nhzh&hq2em#+YZFrlE1p<`KJ*Ecn1!!VaLmv6dS
      zLEo}G_l3tjt{}`17ZF-Tr~Bs%%e>?=sAayWdlf&3p{wvekTHgE#c(JsDdRNHH7Z)c
      zFjsiFKz_P!7%x=}({LX!gwmN=N_b?Ic@zxIDq0X_h>XkoMsmef)FZ+WBMAP?TV3FG
      zQD3NVhSq{r(krvNZHTjUMiD}@f;NVPEaMb+6bUp7&~_CH8i?3^Yd8#wUM?4PXN4h^
      z_C?G3XFSss&|{fdk=d!D3*CNnK^GOa)kgc>lCdH5s_2u2n3iiSZV4udpEwJip=m=m
      z+$qbRvuqNPOlQst6UC)fWCU(lBnVMC75%tH4##*;J)wS13%90X5JLoP^Hpn|PZ_q*
      zn>Ya+2v(4%ULH^VZ`BG$Xx7L6Y18Gl?X9`I{CKm(*IdIgX)H_JojkD~JpsviTSf~I
      zb51Aq`kg#CM{Egu#}IvKd3K5F5epEn+1&vl6umUt5UqP1qGD_09}SvpguadBrIyf1
      zqX_Xd9fHjtK>di=9v$m&fxc0BIZReVtMr1>XfK20heW~1AI~1(V)hUTLP&l_>KLI#
      ziWo&0BZy%_qNsijE=gGomvJS)bBIrf?#_NfYX0eWVRHNE5OyCu{nZ^r`m0BK6sDk^
      z(m-#gw7%dZ)e20~?G({HL6ZKvFfD15vY76GmPl|F*N8Zb>$njJ*rpiKkGvF6_`ZWy
      zpZn$x8s>6Uw(B3W+rNMMe*@nzoU88Usz(GArLHA#o9I)tbRa5C+CdCU>x=A@W0;|+
      zB4xayjMr$x8;UNHB%LB>YWkE91ZQvucLSM1ws^uH5Zfi|<3^-+`QM~6xQF{eMxLz5
      Xsn4D<V4I{nHI(%j4MsC2!N>mq-kAzQ
      
      literal 0
      HcmV?d00001
      
      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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
      BwCn%?
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{hPfNo<5XIkCZES6A{0Aa<5y3wPgXfCiK~IWe!26~h%9b>N&1~Aw=D`o(hZ1LF
      zskN<#WnkX#&Cb64{CfWYaE<){HHFimF7+fT#wHs?OcRct9P1>dJ7#MV#}pF>SXT%=
      z8Kqjd=VVAd>DCpFm;Ccag_iF3XB~yJ^T)+8-Q~{3n?ifuSSXzQIRC6V8!S6^y{Thq
      zl$XD|D;%u2(39Z;DK{KVQO72Y?lU(ctJ&mPHMtR+L8jSRk~jYY-dx^RY*-M#Qjw=6
      zy=Y4rD>UQW*&aQZRQ!i4BEIsmNS+F7ayI0L>XLbYP5A5^XjXL#t*W-MEmTLS8bZ<A
      NQ+>x*QFbe3?;FRYiID&R
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>Pfx-?5XIj@p-@o}#eX*v4nU&Cc*J-BV?sjEM8kc-2`(vJ(=Lb~%ae%*KY$;~
      zI9)s#IT$bVo87**nR)&Ae0v9QibEGEfs?6R$fX}Ysc_;OS{i>K7iuDn(&3c~3`MmS
      zI?s<Xj$JqcrNrY0k{#EhDUFRl_FRR^TnMD=jiG?k)%WBfjeG$aWCe<S71Cfn8&Py8
      zM*#_x`+6*cp^Q{={=Rg~gNg-O{r^qX7RXJ=bY(<5%Tc|t?zi7q=g#zkE;Y+)_1?Pd
      zM#m~yz1C4OZYQf`V=`9n-RgNXCQgH=ul!EQ<|t6;g&{@VfTJP~YhR%H=PK;_8L?9Z
      z$H>13aJb|6xVn5gV+v-b`HI{NHz{~rJtlC>;ubczE38D!O@2XO3q{Kkwk^vE*|THo
      OE-FmVKD~znC;tWDtB5K9
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVM-%ry}7(I9EsMKl!MMO}T4BbE&{v>e*4U;7^1Wkaw_+qzRX0dCRwjlmbzW9QP
      z5B>rEQO0w-N$94T@nQGZzI)Dh&iCE^`1$QSfcse2krK!r+Q;@uG5qLwtzslkqT-Hy
      z?6mC2@x6-UMl#T$35=<*qH8ngb^TB_B7u=-j^{)h0_l9ACZLu5rZkYosEG_l1gvex
      zlRHQ4x(xR0x+?`Hw*7|f*6hGh``)1zy>~)^h3%n<lmzs)e=J}6WZ%mVzmV$+*!<M7
      z!?08xyzs^k9VIlk>DXbZP%|)&D>^0wR)=Pj05@?NR|RtUe;^S^9n=NZ2Gi+xK0!hC
      z>84UHsx-UKgazgYF_My4rBFsROewo*Vn$^--ICD`D_wKKBisFbp%VCQfz}^veYMBn
      zvfu9bp7f&OK33ljORGQ$#@0zgc9i>}j@tr@1CDRnP1P_e<Sf=e4tI1c3d{|}C-XFM
      z7kPmU#qN`CCSOQo)p6~Eq7t@WEg4wCJsryeQ|Cd?g_yX7Ia=S~gGs=|FD6N>3f1vh
      zopjR)*s_6)RD1E}P+#cEu74CXBpa9SWwO5^;;s}htDYx=vdgZP#5K>iIkF%#A2^_K
      z#h1uY=k6hA!8x<^6&Jp6k%Ga|;0&xY_$e-OWp;x&U*b-%uPu%WV3)8OXMK5g<rHK6
      z5YNf<B8FJ%hV>wL0h72E!|IsA^_Wn{G;R=(h4~A?Y(K#k2`c|Vz{-(wo|!8{vayyA
      z#2Vp=wS0;N>Y3E0Gp8tg=26!c<r?rVrrYR-p6Ri$g4Otc3&oxutEY#MSmT*8%Hl`%
      W0V|NA_X_tB9&<K$bDX~?+UPH8!B2qz
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKpOHaZ;6ot<KwpuF>6;$v6Zsd_j+_*v6n1Ce2jmUn$5o@4L%Aou$H)34)1N>3O
      zJ8c6*#LexU&YAC=x%2h?@d@AzIUON}>=S?H<MQyuvU_DI#<F}f8gztPbKC)!Qn)%I
      z3?~b!hE01mmzHDm{#4AMU0Ajys|?|Mq0JDva_)tJHLU9}7*dL}Xk)^}21BAJr0?Fa
      zhmzY}!H~`untvav7+{E*SV5d2lV7G%DPm2_7CyPfJAJ}#Hk~f-x4CPnb?`GHAFUz7
      zv4{F^CS)B(N?GqPB<HRDNmL4L6>iT&S}E3sLi!stp9gQS47<w$EB2mBIJ<U0WiW1?
      zk=qqDOWk4n*GrwM1IUqam>w8Z870)H>a;pXh&o`k_>R>HqOa74kf3VN7q}!<6`RzV
      zz7AX1rj=sE14f;cO1oYxO^_^>-mp8vL_OOY$?Jr?_E0Hb9-!zTGT0{=y(@MCXf=Rp
      c3VJZ(`LSBWyPIQaQ<g@oLyvVtkwVD+042Pev;Y7A
      
      literal 0
      HcmV?d00001
      
      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
      zcmai0TT>Hf7=FI&hQPX_MG+x@h^R?K(R!+K7Qu#sTCvzl4=!PWwIPeia?sASH{P^&
      ztyk?$2c2rC)9KV!k?C}L=|z7*e?xyn>GSS}m>6kcvilw0!}C7R`+dou|NQm`fMdu;
      z5K?HpX)RjI9l0eZGt=SO%U;K2D{IYUt@+t;$6ji?;x0v?E9@?_JLfKog+hfl>*U&w
      zDzuE08I=U<q-~dzal9Ud?%4ksm+udz?KwN+b;idP^Z|Fuu7biA6Jb;s(6H4+1l0=7
      zuL!;2niSt{BTmM?xG*<qXRlh5X<MOY#7$Z0aVzV{Jin+*T?%dGKuW3-idb35PAfE&
      z+iql5FlTIU#Gdw&nVjt@XtDU1z}{`57P}0V(qJNrMujRGG6hRjsE@_VV+!w`2Aa_l
      z!5)R$GTOz!#9p*2L>Mg4sUeo!ELIiTa3F&HB(E%1NwFplB1Q(Moovn%8k3nRAE!zZ
      zclt$jYK&sf=ZmP@q=bNz{<Jfb5n-t+Ar2V?bJS#qzOGPdrBZgz@2-8XkhKI`XFRF*
      zvbBZOlO_)12m@NnqG8yQ913bkVOO3ILB8DYU3PPh=eXRI<Vn$?%S1QWqt&z=^Q^3Q
      zX?l7?GT)%jM86n_qJx>KU|T!~Oq}1?5Yh+Sg^VW~EuvPJJo>2oyepU-0YH{Ai?rl|
      za=4h9b<$HLIBnf_7rap?<7WH)5~^a!<OKiY;}Y+(iMMf)5GSpiou&>WzP*A$yaIdP
      zVnq?x2hP}`3F;Hhag~#1_Ihd|ZFzPf{uTSyf|K=+7Y%x2$r8oJoI7^0MQ3Rrm2C^c
      z_e@;JHHDoU2#W)-*er4UcM|fOcCD!aVT6Z4VeczCKv*8KQl6W=?cWQb#p#y=`?p%L
      zo%Y%K`nrJ>><GwpwX}Rk+TsN`YI(CJrZGd2<{YLBll3^Ms|c7RZZ4`taZa0<3k)r)
      zXpFfF*_1ux_}58EUmlV8EGC)B*x7-!mCM=WSmU*U780egW!3iWa*J_P#ZLs4T$j;#
      z?#jNIIP?@oqFs9i^D*ZkY~$158yKYLd2Husmp?c08frMB7j|GL*LXv4FNnCvxkPMB
      zJVRYqVionH?axuyuC1ae@etL~#1j}#u<ypbuIP`n3o<qM*hZP@BC}pXHM_44SI~;9
      ze&&`SW<GNmdk{y084Wbx5ZZkVJdb${zvnUZMZdvm$+w1%ADAn~kNgQf8MpG&ByV%@
      z5q8!b=d*eXA61FyGn^P~`-yu2z5_m6*P&yAo*y#zM?C+NI7*$4Q_nZxpa(a7tUZ1$
      zeFc{KaEd;PJ{nHbGDNS9(aFN7hwH(vjx#u$ujDybMYZ8jca&UquApDuz4vj3uX8=x
      zDg6=lC2I9m44w@~>%*%UTERAdaN#~GYW42Bx~kQi?xV6X^zHgzjW0M4YRWN#M?DwG
      z_Y&E-js3VoB%ct&65hn8MKui<Y8vK_)D+@7$x(>j$1u#1Mn#U`Esk_Xs>KM^33EJ3
      zWrGg6!FiZ98Hs4);d&y!^m502PPV`B^PUJS3waIpgyfap6jr4_4UDl%L{kIraHR8p
      z9M|&M2Du}9kwmn874QDcVIXORALd?BdqoOqB6-Q=s7&B}dg%CovIhm6^keW)y}%s=
      z``Ql{oDx+Crr0Yt=*r(D?2#bER}3i}#A+-#Bj>uco=2!lG>MFQR7e?G!(`W8O*J*H
      ztp8nfQkn?~SYb_+6c4Z!-|-AS<i-C02k?CnYq2~6jXKQwtX1+paD3JbH2NB8^flPG
      z?JQ8qcTOJPmw9{#wN2n%Si{Gg!+T8kUkLP9UJ*}uN$~7*ydP^t@DAqTg$nQ@1$b2j
      YcsmO4Ldf{MyO`%&z5)2t3AccM0rC(T@Bjb+
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      ZkZ%&XS7DGw>BWzjK_SUc_*I6V{s#n?#-;!O
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      O^Z1A)UnV_EzVg4b;Kq~y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<YfIcf6g_uei7`I9KH6yOtE=v=bVJ2{5JjlMLP1ne7W_Dy9oo^DKoTE6OR2J;
      z&>!HBD&Co0zbN`)GWXs&=iD=Q^7#M$AAs*zwvZ#toQMl?<)@b_`t4`(D)SHGRAnlT
      zD%(n=77Bz>jqyXli2e473^IbfErQcak#q=iyYEYE5UggL^uUEkoJm62aC(x5S;D;;
      zWp4(did42m$X9DELSZNFNE<~5gb^2`_&_La_8}A1*BZ6f07J)I6j8Ea>15J{g%b03
      zRV4S$&)PCM67A4<hyxL}M51(ViVpIa(v1c+^|K2b18gJvqf!DzY%z;_b_wIv+G_&@
      z=P*7`0@+l$#nAIC8+t?p_g56jWG579DtWYv1n<q+abNua{7^g&ey}_|eJzeWeIwp;
      z+MYSF;b4$)E@wXtno$p+<ML1!!+%jW@wka6ZVdG!e}@h98`B#2gcV*|R4*QNU#`iS
      zt~vECy!y%=reE?`QNS7-`C<5zJv6=;i_F6epYilCi@Cn0Z*rhmzs2;mX{ha#xD2ct
      Y8P~+czDy4D2DN~%yzAeAP{9(sC*RYA00000
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`zK?=e!5S*>Gv9$%Sy?FAV7lU6=5PGWM3t~x2N=c!K+P8V|0X|Ah1dkqeXJB?_
      z=k<O(0ql@51cba5H!*T^SGwU=j+UQ#qpa#RLr7S7nRmj8<)xLCCB%)iWnCNT_+-5)
      z2+6s>4wXErP7<=8f9tJ;w9r}(hfWwH4a1zU{QGjXSHciN4-vuTyQToSB2z?;1z_Jj
      ML+mhd7k*OYALMs4sQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>U2_vv7=BLJCLvu)4dpW}jfjwhLO~FPB9z7=!CDH1VgaGsWLuUA+015x^-4#t
      z{Q-C-qch%c0V8c4JEJpRIDU-I=s!?Le}munyu0gWDIXWR=RLdcd7kI}I^X>J>1P1;
      zz)T>fu;Hq4-I(idyl&NI`(1O+?H@O1ubDMB0ZpM({`OZ5{yRB+)hzRCTwzV?Yq4tA
      zOk=uAu%tr9`{AJ!uNaO|c1@?m$8c>&VO8C5T+67QHr=LEQ&8s>66L1jkd3>NLYv_@
      z#v2N;3q@|qc2j=D?U|W|DaIkIX1RwIR^;*%3R=;wm?^BlS{+Xyt+0B;s+ptBYtyE4
      zMkFbuN9?juoiH3r_Q6NZy<#;KHjO+g@&U@qT_~1H`H7WK=+?0c9b#?P(Ft9wtd7;t
      zMWe*8(3Q)3aM4r^h_<adp2U^}wkd2~mbFpa9dFj_w&R+W;kmL|cP*P)VQ@vE$m?i_
      zo}#rwM;~@7w9lIEaII3RRm?fhue1WVcaJJ&ET`d$>mD7?i0dl44w<u7EpSe9ADCLz
      zXfT;tjkQ)t)*bV@WjC3SB$NEVPp*_NCU8(;OG|XAS~X{l>QQI5Dg6;jPT-Kj`j+3g
      z>#&!GnpU-9I!Ulzsk+^;B)Wsy6b3LT^*XAsHW$g6e`+8<As$5?FJhP#H|lk>R$&b&
      z=mF<|Vjzi^6gv8{(_z3qPf1WtDC~R~&tuR=6!g9<dA)2L%qB6)?DS=&uLW6QOvfpl
      z=114|buaILAR38fEQJFYluQRnNZ{OkgXR0CFo8))%%&tRD3GL+^%%Q<Vzk_Ozb7y2
      zScw#erp~sv8q3_+LL9BsxZQNh<}phqK@X;Sm(+<Z$^JnMZAkEm2^Oz}m^2($whubI
      zl|AmQ?0T-N`G<qX_Zsf@a-~kR6&BHTheizR_)c*J2BD#d^|W-~2^+AHI|10lw*XY>
      zsd4QRfWnS>WD4E$=qdEfqql{(jsk%ZdX7@&NeUa|=~Etd!9O2h6Uh@UqPk>IJtbW-
      zs0>!g90troT*WI%=BI9-Q@6dHMy98EMxyB83E(w;xr{iBNF>QHl6Gtl@Xqp-;Pn>n
      zqW1<mxa0~8DBMImz3Uct8TqpB7F~S!v?sjA?Ay#|9c$r4D0)MR{*dByK+!D}@A<f-
      z*ga3CN8!Io{I^(;x5@EN1iw4P=Uowm(9hMc=3Vr(gvPy(??w){g@<`31&8+q;!>2-
      zBLb(EBix7}q(X$fAwrZsxBT!2k;5(eePM2<yz&Cu{M>XDB=<~=<X%jz^6)JAt#yZ4
      z`j|~}mswgwH$I85Z40G78?wy>Z2Nt-pu#zA%CGo+?2|0JHuZ4!&Ey5X;`?jX=v%UW
      zhhBWoCjEie{f`k9`$HA`LlxyfMP5|2T5k9IertHdj}7}L693GQe_`|eO5)!lg!z#0
      zIXoZK_zUl%0A@1Mb~n*3YvDs2S;B$IB@9faUs%ME%mRke#};s0oWy?Fx49ikzv9~`
      zxh!CO5obOxWSAQdDA4_2EAQf^1pJO9{@_gi$tnJeUGq2Z)PHcC`w`s3DWx!}Vz{U@
      zFN$^SM=A}X5bLaW4=K5|gLqCb9%=Y26PWoD8<#LKDJCDUg%|PaM`%l*zfB*1XuVlb
      zosm3c!#rK&UE$wqhv_Zsaf$6x>mKv&Mb(Wq)f3Se4>iUy#Ws*3G%y`tMW^D@vZ+wp
      NBSKnJQTF6k{sV=-wL<^^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)A{c}`j6@K1ilT9|400Hs=G=ww-l1<nGRcS)e5YiS%0woYk>PK&q+vLJ#@3MQB
      zFA-Z*tlwI!El^6URn(?Rp$#HTq0^Z<<Bb1+b@UHV$2$J5KIgr6?_PGpSeQw6-;d`!
      z=bY!9^THqg^SgHeY`|}$C{wuqpn1eRmdGBpQ&S1oI_4&Z?U{7a>UG_WJ)U!|Vatso
      zqOeE~CXyzP?H)g9O>nhRp{?ZlV9qtii|<z{EY<gICoybgY%^(}kW*2_6qXc_`;tz|
      zk`3C+>T@GjCTlyX{X4cRsGSN6`kYkOHB;`0nao)gnOhgn-d^>_`wA8PgM0RkDy$kP
      zp%nI|N1>bq6_)99iJWUE6OWtOY0a9uOWMpVO}jLj-EL=v%p^^ZDO7ElNZKje-Aagc
      z?IQ}2K4;R3VL4Vtu|i>C*bjmjxDU+=^^;cC&RCPZdDvmsbaPn^GFA<R76VJMEQ(fz
      z))MahGimpD*nt>Uqs_nrXi%u!qWK8OS_6x)m?Q@5lr@x_8MiX~yg=3sI1^@a#AMXz
      zi(ZVO9Bol_=3{?%5Mqd<O)wJ%>ac`<y3;oKK2RFjQmrt8t?Nn;hCS$MABhqDAp@Vl
      zMrPEUoD8;UMwtpmc#Y0^h+*~hc<Br2QNza3ZJ-BR7~OQvRoMLTZkB@4>y$Y|9oEga
      zS8+ttSA$;kMX^oczLLBJ9<hE5Y)8Ms;wj4wmWK#VXPefwd-ys9{i)oHl`%zoJvDd?
      zJEC};O4Yh5K44%cb}7`PShM{}YsN~^-KBZBa9o7upn)OmW?;h{6xPfW9-q+N2#?_j
      z1A9fz3#ZNOpp&tDoAe=O=6i)?k0EQghf7Qf<Hk~*kTMq$jv6?CT_U*AC_bmqSSX>O
      zT>3K^ClkYyqS!C`9mi9G?iNFiJDf|Wos4Tu_8*(D(h@ypPe?K56HdxC?Nl}h{Kr<)
      zSQIS$<^rRkTr#=Gu~V*<2@F-?X;!%Gw5-*dSleP|rkKT)yFP{qOiQKO%wagt!)&do
      zDPOOL3?wnbMCO_9vW^#>_xf#5`<MjEF_4x_mNSzQ!i<5e+^@6_=geeQDl2E;2#&Ia
      z^2lB*>m-j@d(4a$$ZB68cXj+AHq<J0*Nfu@OpG&`X{IF4D>$Y5Ns=V%O13C~|6l!d
      zLxI<8C!BPlwQ1&~vUS?PSMg<qsGaQ>pXjSIez2&1`kb5yo{e~iMCCaH-^3ZFJ!_w!
      z0;`AZsT8|xhM!mFYofS<wsdUmk-OhD@I9%|$RX=^R{Gu#4Ezx6@{9c71)g&TQ2o<h
      z+mGW%2A&tA)pmBf^)&k~^-^V0cT(IQf9c+0<D7vP(JbCwFz|Jpktkn~udf(5Db6m;
      zSToL%!q~ls1lT#__=$m^iUcaXJ0x0kS;z9{2EK%GvGEH7m+-2>a$khSfuIuE!tSvt
      zQIh=%X@|^j{oUi_c-k8&M4!Lv<-VTgcS})tT`}+}Y^EP+U!7I1<JCrSC-W;toPWo_
      zRa|4&8Fq4+3F}c?9t#bngJ``JE@ve*!oL-Wq8bs->KYhaTfiq!8EVlaQ<I+|lMYza
      zD5IF)8c~IMH1K32zkQl#<<E*bHHW72h(<0WQhp7qZesQ5b=-dqYu@5^8P@S<Odo!b
      zzz?HcuYxd~*FM-b(otMr)Nvgh9XAmtLf1Q3UqGnk2~Z#r^kE@qhoA^)-ob->xp{aS
      zeZ2iVE%cTZ;dR94u&DrAM>uc@M6idTPtec38o1uO>;n@9pJYT>`;r^q#2`%wrJ9bn
      zu|D28hldXofIWYoqTi+lZ1Ii;fHimoTM5ML4CGdtQ!@B{=yN<>!M#NM20o)Ocp1%|
      zH}I&!P`v8~2FlPK5u;sA5wXgxJqqXl``3c`W@Z*h@ux!yhsiy|EN2;T2kVj3lpgX-
      z1e6jO);>m=uzlE1N{bl}p;@jKGQv+0669?1X`bX6338_zV3<F92WlWLyyh@=2XSWa
      zGU^Uo#j5kDxrry4(a+zGU*X*{>SqPMz~3T`<*4M(Q~dTUxt`|E*RT?2(1GVdx#;wH
      zmT~<lrdx8scI-2Gg&ZZ5-JQS3f}5Bat+TFU>bB0z91fnNt|UowNHI@`XFKNL4t0G1
      zqbttf9V^Fd`7CdHd|Ih;;05CSn6>aCtKlWA!39>?%ShlN^M6V6>hLTE@#_v!+U=(_
      zPEDO)6h$TMIzHD)+L4v!0=uPQcIQwL3G?xUKTDy!$+z=tNKVax?dHICb08;nP~YMu
      z+7mf#2;{V?L{3^ur_Q6Id^WGAzeI|Ia+89(#U#B;r*1QGchH9S7@S)S%=;lxZ3u{M
      z2t?Hph-z6NDg${@eFaB-vQh(57gbEsGk4H?g`d5|RO<CVYCB%#SNV37Ond+SUY-_F
      z*2mvNuOvQBkU2a%e^@`HM}KB{|4E~IWnUk#ucs8HN?CZ=?c<*&x=5`xpR>Wv4^Yv0
      zC9kQPE=HLpdPNnOd*%2yHrv0m$^L_~_$N#2BbLFx(1L$!+n$_S1KX{BN~<YAiBcJF
      z)cSH#GA(^Rg?Q=8`$i#WI$jKAp;H#(#kV&RzoldQZQag`aK2Mu@8QJe#o?36=dqc1
      zlDArk%T;`zwN{!vRUbmB4YJ1v!~EWyE%v4*bid%u3qkfDAq&ZVb-uWY0Xj8+m+0ys
      z*ww6cFVTFE%unT|Vx;bQsqm5J-<J+5RGO%a^VG!43a?^;44{kiYEkXP0<{Z`{4E*t
      zC^iKYo7nce5yWSUZ(^HoBIbMhTJZ!@qo`J6A-q_C7xVR{@Om(JUh^Bprl3)@&fh40
      zc8>MgHHXXjUh!dJ_UQhprV&*(|0ClN|NWiBay5fCl|nn$HmbBH<jtQ=0ijJntLO|`
      zMPtw^76z^2b^MZUd(!=tmagrGq2aQ`R}V^3;|Dz!KN4!?derD~uTG*|onov{qFy}{
      zicLd6r2%hn04g@y{2N17-sFnHuY+jy64lch<<7MJrVs-?{?+rSQfEU3!g_nlPbQyj
      Yelm*+@a^IPyr_|i8{Zr$mf`yU0QNM*5&!@I
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}U2hvj6g}fOF>!`AZJo5GAA~k7_6F*deo#nKXiY*50YM6mctP6OqjbU9jdsT+
      z|AN0z;Gt3rLJ@T$wWyV<Di8c9#JRJMvjU<%cxUF${W$lWJO1nM$4>!V#AgNM6e{2O
      zcm0iO@<R}=R;}5v)!R1az7~bngm$tXCMLFDhpni9yu!JxdxzHQjg`d4e$%=5D{V91
      z3ar9lV*Qw_sw)h&O}J|BD2&9W74;G;9A1=M)wa*VY0Vjh;q@p9Y!HP>-=SlJcC}%e
      zHj3#mWbXvY<g~(s3*R5P_|67lV6PK(`DM=adZnR|uSG3043^f=c(sTDlr#=tOktp0
      zX~@k{jX?~_?zlz)Lkb5MgV225Sz9sjS3-aQkD7kF;m3iTd&ax~SD1PUk__SOATJaP
      zj0ug?7#qeJOcrof;dEAq|H`Iu4kJ`y&5yrNii~<wql}8ekyT^A*rm80E|Gi!E~ord
      zvs9CjRG_R;`kvA#VnmX@t#JWWipHd=f(qm1eqdHv3B0KB3Wg={lE!6Rp+K=&i|!J@
      z*?!cnpl-Hg>~?2rrhs=9CbNAzpPC<rk(<8xjiy<b*(u^GN(H?CuW@xW-Sk_cj=1&x
      z$+JwR@I0q6gE7JQfyRfpp`Ziz0(SemT&}0IWV=h5+8?^)t7&|Mc`DFZZ~4|pYkeUU
      z#{NfvN~3^}_iuTLkozqZv4E07@pjaSn`R+!W0+#@J-7?P9NVdfp^0m4KS>P7vAFlX
      zF+q(6_}4IqoXj|PIhk;`QaHC#d0=!@UI)(uj5vUU{EqVUE&cOcOWsr$hrDeZ@lJLz
      z?w#u5*rtnqjo-u0=NDGE$DBVg{%4$^eZti);UrG+#4HX&&g}$+)Z!E9)w;)9#k(bz
      zdEI-2Lyz#r4vu=VRs4+ecWeviyYQTC&-7Lo)8e&fd1v`P^zsv2{bn22o^3L39`m?`
      z_t=jhKEtsE?$i2!Xdm+YE3V)-di;($Ht{9?a2@CrQLh6fgVaO&qeBnO5$$ZI`1BU8
      zFMBFQ<n5%L@ZQ_PO)+~Zumu9U)dMz-OMPJHohaJ`_Ly`%!EyXa8lPec&*=4>Z|ntT
      av6BHe*8`U$aFO>De9E;*n2K#JBKHr88h2m-
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`O;5r=5PegSLansow<3~=31DLNtnt#sgot{;a4)!Mv9w9MC^w`3$OAF);1BRe
      z8D|?WULc#@Hy>|j_RW6(e0~8q!JZC{us`&kyor-M`{BJK#Y8$C8MEz1p%kI4U3u}N
      zjx51eL?`f=cGDY*z9eKvoFq_-kdMW{jm9BIbMnDYYR80Xdv@(p=AQYXFV6|J`aE*0
      z(dCYAbSDZR6iwt&Fpz<5!oV^iQ*U%tX2rw;as;dGhvIrX>WTQ)>ji>PYDax9=z6iQ
      z{J&sUy_Rq=r+qpH_26hQNCc}iI?*`piwi%k{BLGQN;bi4g`tSuz)KR5=-4GxX3vA=
      zscECiDl+^<YO@qR0bQYOE79x`Zv%^rCR>-#Qm)lJoMNf@0jpV_qV&!w4Xb<>)ASn`
      ld*SP^SmW3_=KzawgHc(V+(P5E#h!+3>@XVKf>1^U+AqBCg2ey;
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!&u<$=6vw|~J26>?HqiV48iJdq#a@%Tp=tS%1ZYj#E~KS6#SzDiJxUjx-Dr1Q
      z@*i;IU*N{MQtV0~!L0|blok$1AP_=`0}=%xR8@RucVpb9RWCa`Gw;oO-h1CSU)}la
      z3jnjYm`6sS^uBx9-Ks<%dj5Jvt1Vqw(INk<fv=UXr)z2>xUAmwn?W8qfkXY~ZLU^M
      zu0=X@8`_w-Yb~|Z^t8Z0q}`CCa0Id~<qKHGIyqb5iDh$6rRDO{WNltxXfudB?FD|+
      zGiYnCRjI3n4ni6X>PucUeN><jyFZxP*e-a!r(YE~QGA%Ovm2&V7syqErWyiSBqScQ
      zkj03^9*i=gVySL+#w7+YXyGaB&*N!<;d`T!n7}iHVFuRqrP$Fij?YTuF=+k{NIZg}
      zAsob^Jf;OE`xCso9ukM~DAT*)h95*0y^0bg*aG|3mA<f(KgX{zvr3?t1YhaTqvMp4
      zfcqB>%JUMIIehQ3=d1JWjWrcsG!-?~2pVpy?uMS3r;9mL4T17Q(%YvXmL*HEFttVt
      zCZTf@FJRQfaYEunyd)q!KT@II5z1Wge$~0_%2<W{>YF#`y&^G>1?Hu_*>rU*;9hzJ
      zM(>lCQaumqWxBrr@!3_^_k&p9OIr=KX%uQ<5hHn=yr&`JdYy8cCSAs?XU~vBm4y6;
      z#Hl3Y(-LQJmbz!@cH$i?_R7=W944YSCEmg^#T3RZDR8i7yVD7~Q<2B{2ZvN6QV-F>
      zIgGGPSAurfP^Z1P?g>`<7925|VTByuS7Ei~Mv-Fut^Z#L6sV#sAD01SOk?mbV{{&m
      zR5?c&i2=jIrlmN`(qj+y@;l7gNA${ZoVCjxJZ@jbK6|2rF?*(qCp(z5XF4d9w=s2%
      zn`JR!mb-YagYp$RWiZ3<BrgQM<3V5Z!s|Tz8;s!w_Twg|@GXvTw-7_lqJpEGnYYlu
      zX5znDdKoCnGKKm$o&$^IIc9J3>TM!zqtM0iRgUFr#7vgUUA$}y@|aKIQ^?iNvH0Fq
      zy!Pc49+u;E$MAXzdN|I<_gwt}BlwYkKe4xeMj5}*>Q~I+H!R@y7+BJq04cCA0!raN
      zA-dVC5w2>d7=~`LizPCcl{jJJ@uuKB-8E^u+um7Ch|iJu?UZ;4XM4m`e5rsxNc<<p
      oaSI3V7mnj^TKoeC|Kc6o?xU@xv>9BWSBASajuvUDT&y7TAG4mA!2kdN
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|>rN9v6#h<Iy4`hwiUqk@L5k28ST5d+pw^g>ps1J<{N=Vx%R<?WyHmwy@KyX{
      zQXrAU2k@bcXO?0>O!=`pb7s!vJKy={*Y6)c0nFi<h6rJL$NpsRTft|?tyxm+OKV;F
      zyf1pL6t2vyOQ*8?<+T?$((zmkF+x&>Saq8N*2+7gA~nPb0~ZpV1`%R=w!cdlU%lXS
      zzSv84D-hyx+X*tWgpo@El<%VBI&z7SnY_$-C0k-BMQ=;!AatA1VHk+ws);M;Aw(y$
      zB?Bq+Y3L=S+ha9xUBz_OY`<*RMA56)Lna0YW9=g|s!Id?7*cgjh2@3`4GEpkZkiau
      zC?VmCYSC-Bl0YjugBmlD!8oBqQ5g_=!fvgGbm~@#D|>#yzyz`yCQm1H=FUV8dG65O
      z+9LFxFm-l<h3tC`(}W=f{p5lHSR2CLeJiTM7jA_~OTjWRi#dY%u^}2_t@>Qpa+|q2
      z0TW6>#r=(WqudzS6c$vocL)prDc(L>O|5&?amA~~URn6>>~dYG{=JG_FWJ7M?ABpS
      z35Q@^qJ)1$tyJVytASv$^_q}ttv&03sqe>QH65ObvF<heig@9K_0K7HM)Ah9thlc5
      zi*-8)1moyB|9E(^JOchY5aAcd69<w>r9!qMe9mg%e<xdC*(b{DaxQ;>uG|rl`9oaG
      z9ix9UKYWD20}SVy7~X6m9s6*AbiRpO>fjK!H;yrtV|(TZ^WVe7cln>@a-dFhP!u}F
      z(Mbsml8y;7us|m6u}@zJYZ>?PfGsYLhZqfkJwl-cY@S!*yM(IN#Ns#JN1!Ui)j6fY
      ZOsWm`X=RFFDfC*#6JCulLkdq3`2)S|91s8i
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4+fEZv6kU5-I&>VNl#7Cj1<IuZq57)CmnKG%Dn_sno;WS1Fwo8<GgIKVNN7lW
      z@B{oP<2nOL<BQ|NoU<=$t$jK3>-UeJ0N!HVh9#(7s4I0-kFWjUte)tbq`sd-v>RcN
      z=pd<n4^G3cVf;;ZZR7<d1F!cK!F%ls-AM%bzKSjdtIZ6h&xE}fI0Gu~b-S@9S9S%3
      z<lK*|Zv>SL1(FLpe&8n`1fMptz!~{!+D@&-{u|+`E<!Nrq6o)94pT0kpe)F3)LJGp
      z<6;bjBIfYi#xudne~fA<<A%K8!p1n|n|`3b4Ek*y9jJCs3(C!~qk1hB`Nn??=FK_;
      zn_2yj9)^37zF;iU=}w*fa1eF$M?Wp`*K2N@z6I`X5a_7UQ*o?g8>@oFe-Ff08<j(a
      zL*@7j<zSh$(6Y>gK&fOFnEK!XUE-e7J7(VC7rf0OCcJx;ysaUoJ?{?FcbFYw{x;>j
      z;8{kV=Mi-esMW#*4)KzaIciV=udvA5Sg%>x#46-G)Okl=7;%j-zxg3%N6Jo$K4D)f
      ZRW#iZ`>1GPiJpaJtnhZ26I8JV>kr4!z6AgP
      
      literal 0
      HcmV?d00001
      
      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
      zcma)9X?RrC8Gg^?-kD^$vcx1XnIS|CnoKf@3yhdx6b2%rNkov)go+s^mt<rz6K5eH
      zT9;Z>Dr(hk)KXD2)@ofKi5d*HDyY?J7wx`j`>(&dK9BZ2=gt;K8t2EHbI<+GIp6nw
      z@3-8yK7MH$z<Kza12%!0>q0w2yIPW?k=S5M%G{M|*_cXj9*D<MW-R4^CNN*hv_wOc
      zxN_TdW|*sXfrg@;tF|RmiBLGTCLT@?b8}tpkWzsPbx0)Mve8ULLea<#p>0u<XD8KT
      zkC{kD;;~J^H3H&tfz!A(nF_^HJ)vmY)K}w~m;E1Wiv=8EOECf4mVkgBj;CWO?g?@}
      z97^m+3Y2%MtJ0}Rw55mI#uIIPxwdQl)x847^=UJ0Ub%gZ8A=V&d`ni@mN2)sY%sT*
      z2{RTpuaaWiSGqDBjl?3Uc7c-mh8_Ve5FaqhAmBDofq4S+IwLW&J3YM3Ok8c*RNfg6
      zhoU_p+DRKTi}sc37$<ku8mPe;JgPpZPD~9&sCKPV<<zcdbD{)G<<><GoFm}Ld!<-&
      zC(g!FsioIIC934C$-rF9le1<6^Ra*+OO5D@PBS(r!8m=;Os$V6xkm7Vu?=)MJyc&`
      zjAt;|P`v2C1zD~XVDH5FmL`4!<v3kFt}t*BT8V8WWhO%Ok3dy@;eo--dfObVM7skQ
      z)2Vr%X5SjP1eX%U7+FhxWlt#JX`2J91<sONPmOC`7im+5Raj$St%OCBJaXW&&!YH@
      z;HcXa8;BDylE#S+1f_4t-E|gVr@pam7EddU+8TN!R-FdA&`t7%1_lHwGrlOav7t|*
      zwBEo~*ueN03MIQ0Af#&_17oLvJ-&T=(j-RqXvWiaGKPxNR_OwQSK!Soyd=LE7FhbZ
      zlogm8PB5g*EPohUWOwo2?0cT>T)Qi5jwrG@a4l~t^3&?jfD9!ml9P2HB;YF&o#~j3
      zsYrOo?(AJo^dl^tLj>z)b&iTjTXIC8rC9y{cMVM<=1fFJB*v_kvSbC8)dwwjmDjA*
      zwwchRNu(CZCYdnS4n$H6c7YuRqM!>-3lEv$9a$up%jy|_J*9{<+=8*4Or`_1(F{&b
      zY{m7`Ruxpm_j02Hq=L%(R!;9uN2BZG5$5|u4rM2jSn9+mb~~^u8`TB+8@K^`1m>jT
      zfuT@hRU#4EE%RB!mVi|JCIer>%_L*O9Epa)Od<}dyd@whJ&IcmY{H-eU!Fa{f(l3p
      zj1#xvE7GpLB+BeQR8G`KhnURim1K%&WXeK;5p<Z{auqRUwMh^cJtBP}&^Vj#^Qy^X
      z66SDxC$Bn7x@N}KV%IwGwb?D-pboSwAH@UG@&_f1TLRMePTYrY$hB_@_-99>m<F=$
      z*qQy!VI~1R@i}eID@A@jgo6%zmw~S`vx2pYHPyiP@GvnS4v{yCsX-?m!C?m;oynu!
      zN#1VYF+46%7Lp7K$4AH_?`Pz=!T_>bkTwYeDJN4K_s7!1mU6l1%N8|#z>KDtGD?z(
      zFae}sm-3W0U?%DBvY0uV6?Jl+X<7J!#V{MeRXML(5tE5w9?FEuIz~|$22^ATC1<$b
      zYN^aY*$*+Lmtg`gI4~)&s5pgLQU+d>ZH2BNk@8apuEqj6Yvzq9S?sD$eFw{UdSrl^
      zSaK(u0jXKGbQF|kRbo2uV*{^Zk)(mCszljHwg+GZi1122e~y62+{a?rR*E;7wX&%x
      zVf7Jn2SbT%p+Peck4D**$qwah1MlFc^x_ED*ip?W;WL^V^6fqR+<~77EX?z5hKPY*
      z$abKF&M0HTe_vMfK3Ug)W#HGcu9s3gAlpS*SAT2Z9#vPlDBvoHkQs+Eww)W}=|tG<
      zh{$%e+;V+}CCyS5GA<a4nTbF&luVjL%9%%krpfMtYx#7+hkP6{d}h`vHs-VeHt1lN
      zjcSxZX4E-s*=;cR&mK<A*}-vy?5X%)EqhV*%x;h4T$ExV7ICMGPmLVq&rxzrKZ5G#
      zIJLpUe<w!>H!oU=#cGw0Oe@)q%lTezb$I7HC$Z$y8-4r^XjU5yOAKe?EQ-q`&fvei
      zdyle)I(R2h=bggYy_2XPM}u2?1iH4;>prHB^W{-Amdtl<@@nJo<*zxDW<adqN61Bt
      ziB?pIHdG1fDlW!S(GIV;L|tDc?Vy>~^>Wric!)mERe(xGey<<}`WjE-v?-iVJ(i6@
      zYi!kc`SJ-|*s71=0+;?G==4{xs@3js*^eUdC~DN`S=|39PIqZj=;-yj?2}kGfh#sk
      z`6~queDbDCdzQCYxLSJ4Zn6W_;xg(RM1#1TjqDZZ;`3(FrSx7$CsU)G-hJ3ecS^+j
      zWXvn8`dBR&5X1!tqK9uaI{Q*=#usQ$1M1LASv&V^!51li4fkq%+N!`G;=F__HPXbB
      zm`nVX-Q!q3h5lZzdlK8an(}&=Qy$_PIK)<zi)-N#{YuYT>y(_HHA*{vgYZTZ+xahK
      zP3ONvx`m^(LFcW$r#P`dkxD}BPzPFk(K81M3?cGq<;B{J!}fdKB@?*LEl+zGbEmMi
      zw>+jzV&r(!Nz9o-lAcT-Z<@f)Zc6$laig^M1lGwx`c-rL^-BE!e43vwKF6iyU93D?
      zsUN}um%W$H<|()Ik0T&ulw04Q!fnLKH$92lTeU(Tcgw&Ndl&*YVy?IeF7YM$`DXI+
      z7V`2|oF{I_3b7Zf#2r{8?nF@Bg-)@L$KH)CVn0lA50ZSoN!*Wp;sFKA2FZ8q&*8iu
      zcPJjqwL5VaA@U-OeGK&yCbpG|1sc}ybLy*<)5(EF89wZz#NFH_xo{8eEdqBQ6N{a9
      z?eV%jT0h~P!hN)J3ZuP*t<mk7#Ql@_IuZ3ekLnzzT{%q0aA5(Ex=SZ|Zco2NQkO`2
      z1_<LA%B>fNQ0CIzg}}b<%hRr1<}Ps<rQ$Ix6pzErafx^W_2Nmih^GkS(+tXI_(}FG
      zzj2;Jzjz)IafA)<)7UL06m;#DIXUR|<e=MwZxI|DmM}oRjROQ`1;LX6q~S8uE5LNV
      zXUj^kNMJEUC}qYy=$rOym6~V3uhTTYoyPkr?E`*CrM*(`_m`??y<Y-0eF&FJzBf(}
      zWmaFncl>3QWykbZr(7>_IZNCx;E<0KccsReT&=XboRy`O4*BSEG7*lU)>>Ep)*D}m
      ze8_Afwmx1yBTcU6_dLWD)8sKY#mh{U(=6!6iQy~k8D1p?Un6#}W1~2MYs5)J#T!VA
      zx7ka-gZst1?Bd>27>-z0=P*2ou?+nV;t7QzG0D(RBa+|en#LmXAfDt*rx)+V4>+@v
      zhI{c8XAYu%GoI$Gl$bBW4>>C%>dknD(z3EWi|0N~PNq3sC7cSfPf@dglzG-z#p^=`
      z;73Y(D@j%4w6Dl9paReHUYVqh;AqipdwCnv9(b8_rSCB2TRDc$GRycR`r{b)k-snb
      zJmWZ)FHqHzb>bgH{hws+zliw1Q78VxWdC2Klh-;qr;|6QlQ*Li@5RfQro9@Dv+h_a
      zbQeddQ*9#?SQov}l*w5g-M$I@h)*gz{XMTq6|I2Hfl^x;%56?malXW66lhVK)1nry
      zsWPLpl)TP3u(6BKZ~`Y4>ip&`!stQ1mxZL={m_gItdjC!EU*BR=t;zKKw9f>WY_cB
      z*2uzVtA=KCW1h`}g|@|5YO6tuZ3!;6)fV`(J*Rbh4!iaoc5mfcl_Ls4Ai&ESCh(Ka
      zG58x#z)Jw%eFgnpO-J#|ZXcuP1C5#K10N>`U{H8D0sYP9?5@U>pS+z{vsng&t&yNM
      zVUDets-8<#&x6NyKF+pX0H19c{5C(@`F^!+MFH4>jM}AW!|&L8uy183oKUsWL)c~2
      rmTlf22&xT##GfPq>B0_5{+TPQIR1s>Z5%)3cpt})IQDb=D{TJ*R5%Ru
      
      literal 0
      HcmV?d00001
      
      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
      zcmZWk%WA?<5Iv)|S7R*-;ul!ZjThIhir`A^BH;c;hcpr+#7VTj=E4u~qr^!-M7o%n
      z#W`~x*W395V2n?L3Zb`kxjWgzF-k%!d=l%+U(5zILc73h>=gM4w!9XDcS8T)$08FK
      z#QZIiMnNX*vk*+kvUEEpbO*!vQ^{9S5>5ymx7kd8Rh;M1K{(-*@HHrzk35`nBKDOu
      z8Lm_^<=sB#SA^jC`z&4aEQ;0ED~pT@XH8A0>bz<5sx~vIqiEQGSKelE75~s(LF*3T
      C>`%S`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DTTc@~6#k~8?Y1mlsv>v=MFkX!h<E`}TCJcJFGbWhx61@pmR+(tMev9Cu8E0>
      ziN-btBMFHnCTjcx{u$$$Sqdl*#3tQyo$s7E-<co3KP>||jYkQ@7<!&qbJlz&eCl|U
      z87byvrYIL&k@LM!TAmDBb5mAe*-`|nt^~F)9Ny$y0&#}!4M{^%22QCgMN!B#=v6O6
      zDr?!(lYw9MCK%EM1(0zq>g{&viLhlqLo(}3I0Z2$T!t-K-&J`ze`ePAgeTV_#q-vT
      z<1SEA(Rn5aIqwIehFm{l``-HG5ox)O%}`&Y2B*c?6tyrpMb(PsQfLRxtYoMwmS;s!
      zvy%6{2@$xCN7%-IO^PE28F*X!IMvMg6C#Nw>`!1HL)V5u{5xge_17kBA^{@_hW!Q(
      zQ4gisjZ@@nHqnA34Do@LihJ7DjY+ldP4>5stK+REk_zZJ+7dXy(79O~dEb+(Jex>G
      zU9=fENnO~rAuH%k6Lk@E#)KK=WmKge6ZMhVqwas!#J0#hYv4Q$#-YJ0fQu%!M*ssR
      zc0?%y1}+l?p{77a6sX)G6FXrT$Wa$zjSm&LW+JTu*NL2PjT{vkF|kX9ZqgZAridvO
      zxMgBD42JCmqHeT2Qxd_LRdR{NbiubRciajbWou^&9L?0VoN_{jUOnjldo8rFZ2Iq2
      zUg3yVvgnrsTjU*8eb?VBp;v~%9PvDQd#)9Rf;vcVe2%mYv~~2~N`r4wn?ujLNfECl
      zai}G+r6qBtC6S~hv7;rCp(RnFB@J9lny;2LOf6}4BxCg5g9fU)m#kk@U;P#;XsqJE
      z64;~k!9^Ud;%EiOs%Y1q4(&NrL01*s6`Zc(Oa;AF^y%n19lcONe-)RsXHa{tXg#a-
      zt6I-%eOT)^v|e~m#bX$yZ=N;<{1xK-HPZYI8u>f4@V98?6?E_q=;j~M$Cr@h%NXWg
      zaF>6^82^gL{5u@}4KDwQdHx)?HKIbL$F_3KL9$}xk9VA0#GSR8Ddpuau$8~m=Nh6c
      e+{Hc0rhF7JMi?>NCo6_=JRqswvLfywl79eH&`8h#
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O;6iE5PfSy;utqTC?6@5(2`bsiNG0z1d)&`AvmOp)Z^ML!Njbk^`?cNg?c~&
      zsXw4s?jRxYHxRQX7$OefgLh}<&6{~M`~UvpAAnVS&%<I^KH|UmNiF#k%2rK_6J2ZQ
      z(@4}~nP@I`Qmw~PtTHo?K8DI0IeFw5mR^B2wN|0u(V`*rBW>o%!(mu?Bjb=O9%!Mm
      zECzQwR-&cij@)M`?HGbu#7W7Xe<T9EMu;sQw4V^pdJu&&)Ef-;+<cRvuO9CU2SbEA
      z$e3IZmxmF2WXP>|@uPDu*c&87w$|pG1%i%wD8O|vK_q@w%tStU7=X(#xD!gT+d1}y
      z`pNxBm{#L}M@_CmW2a6RHcHfyJ`59@MOy9sdm*K)-8+JAlhjos?x;X)ho<sK?|Req
      zGk8Cw6sjKaBoS1-*t>LmAu%>A^n>0E%0@3ep|Vj&rv(QdJ`koz)+Qm%SH1-MRT@0U
      z@L!Ck_wn>zKBJ(8N%|KJ)V_sh-(kYO!c-bDQJQ_1Zi6g~{JDk2b9{czb&c1)M!$WN
      g=8Zj~FpUbK36GhyZ3|z?vM`G(oo2O0$~P1q0Cl6issI20
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T~8B16g{(B+U>ds7O2!OL<+Q2*zyb^(I!nu8hu#P#K+lXgu!7q*_|TzuZ#~Q
      zn)n0!E52)DqVdkyR2vg@A9l_?Ip^NFckajU?>+$7MYjTnVf&Py^NX-}CDY?jiwhk_
      z`cjErmKK_)x@h*ZR8OJ`N(?LiuvAcH==>piq;)Rikrt8AHtU3_z+>qC-OxMXIZw36
      zCoYE4<4hef)CR^HDo!0djZa0Q_ZZ53ekRo=fkVxeOh_Hc*Mh;@Pn1lhK45TL?IH2K
      z>_~X15sE3F4~E46OQ@4~f2>?;{Z=EQKGNg8_OMFQ<p5Rq9&VBPg)M2=I{~g4_8zg)
      z);H|^0D)m2P^p40W4LC3S@;Zd1DT2^qqA7#&v>lpqP0Pma5dz)G_fUpxL72!K9L1O
      zXz%pjZ%0F6FQ=z9?u5aQvQeIhzBGjwrZ-^6OqU@zOjD8f6fX)v#b>AX0;|-D3kNfx
      z6+y$ygqEyfreII%+n&@boen%)#~gX)DdOZb-|l;`=d~MGSa^$@7B?)uZSh@;S1ew&
      zc<l|D9IVs7PKDuqMc{tJatUabTy)(}*suztqW2t^JD|uRzP#1B!sf3WzG2<Zm~p>Y
      gU;U>FEwo8ZdTgOXIUGEs$iX&t=rrqMS`ShE0l>_}p8x;=
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CYflqF6g^W0+HRMJg(3(FNR{$zc_<>41c^kFM${4#KbW{JV_95w$#!`7vy2}|
      zH1P+R_?L|LUJxXFFl@4W&zU`Q=iW2-=kISn0L)?~iG;%3o_FM(6r0C>*eF_aVvAM#
      zIWTKc*tA|~oB7vX>@{NVVE1Av39T^npM6QRDU_~>R;`Ww+MzX7V=q%*tSY2e1HTdO
      zo6ss`E4;rLcvRYEZO_#0vO?#&A2)5q56wonBQmFAKH9$|!+)v=UY+_;$ZW<wX*}yk
      zA+fi9WA{Sou*$5~q9dblMxL7>I#y`g@@iC{LaJO3{Lr^63N3~4Z3Vp+?U)pj4itJ_
      z+(sX%%jc3@;h%b|)MwaO9^X!r^p1-pQYoaF+;x#=;xHL@;V{WC8Fi6i;xc*Y!e!FV
      zWZXqNlMW_RE;^WWGAX*~WYWcC&P5ke<Pn?j>TthiVrnIz{<4**?giUk>@$}|2QBEO
      zmh7(IR9KMOZ#D>Y8|u^5YdUY64UG=tx>@)6^zN%OHN)4c;BJJWiPr+J*)&u^_WGn@
      zgqmuhx0NjGXAfy|``JE;<eWq@O(OXvk*tzPE=eSVB$7826ZE}>EM@H`_KWiKv;Q6H
      zUAE^Gxv%IKJRo>b@IAppf=2}37n~RTK=7F0g5U|klY*xO&j>CFp8Y}xCNNLmbt(nA
      z53U|WP7k0@4`W0RA+Ph8)}tut0+#d`%6bYf^dw&D65i+{w)6tt>v??8iwJZY3zCtu
      z(oCMWwn8jH>unR0r+9REro*ec2dz3M`+Cn*c#K6-lO9j7L^%?8N-Tk8lqvGa^JP3k
      F`VV=!;`{&r
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7C(QXn!6g|TNE3g6utD>#7iV9nG#rRe=X$YDov_4=+)E5UB%QU;Q$?l-_cYN-H
      zCT&c7=m+>w#yjguNMmaHaA$Y!oO|xMbLQu-A144hcwi&Lu(r=X@&hmaB-Ng$#ewz)
      z`m-;(p)#9h$3~W+YCxXP3G!;RFUHzNo?$u3&b0Kso|*+B;#!7^fk}#OhP<B2xY=Ro
      z^v`ZG2)OTWX&uSYOpAfgn^gQ%Dyg3{JZYV~x;<pbcEgD%fT7}`fMO9AmK>B&W3XE7
      zp*gwaz{Uka^raHJvtT5m*L>s)hFU)ybAQMqY4&L{YsO(%|BsvwiLXp~yc0&E=Zion
      zO;yzMZ2>E|VPloSJLi2kSi?<*9H%=XviiG3!=fS7w4}(ev?C4IYX1vV9E7uIEM7=6
      z=F+0o4~-@UXIm)|b$uSkBDQglVf9S0hUK(<bOAjz_QROo)Q-^8aN=MC_X)Zu^xWrN
      z9tawy@mJ{ShqQ@DWRgXZLxx@~c?DFf#!cE;6eT!xdXfIN2w^Z4cjFjk_dBYtb&UEq
      zN@cK2YdI+(DmFoZeZXbPnPMuz6<nn+DZ#ar?ip2?v$}hfMEMBUPre|RJ+uxf{f9Dd
      zAWSY$)#p^}xRp}9OeO#t?i=FDy(d*fY6uN?Zu0o+oUmv{U;&CuEs!=+QVX{eWD|Gj
      VTO;fW?xIC)j8c<n)0(BM`x~(e=Uo5*
      
      literal 0
      HcmV?d00001
      
      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
      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
      AO8@`>
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4O>YuW6g}@Td`(B%0;O6(tyYDhDbbyQxFI1y@pBqtTy?;w3>k*X4BEQ(PjuHG
      z(2a>`;=<_0g+I!8?+mdeCdS3QcfZfM=grSwU%mpkh3zDy!1mC7V;|J~w~qI!7N~=u
      zW(9|?YK}d2wk&6~@2VDg*1qZ|p$V*TN6odV{!wqJ`hh^=r9E=oLxF7PG-(ABnpqc!
      z`#e!Vv;{QZc}HfV;doAPS75#TcSpNj=~88L{6gu7A!9(tvOug{>82sDY9NjTTR8(s
      zq}W<BkVZ;ix#M{1;dInflU=*VpxMs2Z@XQ4;;=stYQezq1$IL0|6QIoNvPLT+ojI6
      zv$P`>>Xqj@O1PZFr3H;584PUTBJD8l4Hs3KHw&Z&wm;yV!%f>f>$-ufxF(=m<LRWY
      zS`II?diH&GSZ)EM?Rjd_bZy^PeiEiY>7UOkkXd|KTp<x-^jq*p>e30;HoQq$x?@zK
      zV~I|KJQorg-Ffpf&Y9I2R?OlIS+g`l{sYA&3Un4|7Gw*Wyoa>BkBsafCm&#)a%R+z
      z^SD4BO$u>EXfd)3EyiYKQg4p@o-&+kRDa-3^*h87ZdboSd?X6=eM0dFn^7Q3f$TAI
      zk(Vbge~h?x5<8*(h~WnBDjyTWCs>kCQIr-;xr;i*m}Mct`opq8N^KGo!7nps)Sw#X
      p&2WUj#i)A>ws(q?;0pOHoM}YW^O+JiLN+&1rdy|+Km}FkzX1@{xQGA%
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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�HTG^A_YMQzE5Gag%rH$2Va}PNx4k~(M+jKYvrDv+E9`!`u7O?7rbBYQ
      z(6F}(8riy4o2!>5o^a*L4OJr}eX@H4$ILCvFIlSsxoHMf0{a1GzX$1t4`G7+FkSEw
      zoNPbJ@PCYGA4Z-1xIyThgqQf{b8v=yS?(gT2|Tmt?Tf|dFu9xVL&XZe!}3uxMhxnu
      zQEkZj<Q@Z=(R-hTBXU3gHdeoY5!HS2;1OPqG`)xus+v@)*@xx+_SyaN@F97`#)d#U
      zW=<=1Kg#Wc7;is~sQq<R+t1)E`#A&EJ6<jIp_XI5JSvY7&UpUj^egf>p`JpJJ2+;e
      znwLl3o29>;@ImXzLKA(3r`{*{-OxbCdx=T&Wy8*^J{3MYOZerRPi7lgX=seAdS1rv
      zMn%;T8A}tDYs>Jp#_D{LFsEVrHRb~z|LoT>)_x<P^l`bE8Ry5b!@95SutoHi|7MAS
      cDEs6ovK&vwos6jcgp%U(0H1I0*@wvA0hEmWF8}}l
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7?O;5r=5Qb;*qsWJ#2#SE7OiE&`oO@D`goH#B5)a;%vMFHcnq>?4*F5+G{87f)
      zrPL6LiHGi+-JN;fneKdje|!Q!11=0m5V#!E8C_V@`N(%I$rjS;$#;(pTHFaH%$El2
      z63D9{%cB_b*dH?oPxlFwH&Rzg1d?<x&>#XWv-_LglLC!weX{9l*SB2|NDDUMGZsRN
      zG0^%m`npVpA=hys+xev_lg%L&)R9cwNvyLUNH!&KWp+B7X;DOvN&7`vE5H-xyMn$A
      zqiY1@u%<3|M-KJE(kf=>k4|$4T92=qF%@W*t(*&J5IH}1OuZX{TC7QUZ7;K;hNG-3
      zvf5lQSMb0e5NIs_;@Vq9&8gm(jaYOpttR)lK(b=oQ|EQXFf>!ubo&oloBI-BsU8o6
      z!`dT{Va>YfXgF`wVBsVZ*uifP$2x=4YCsay)E+=eYZ@|Ivv8<27iu1k^!^wMT2G*;
      XwG`?poaucz)N`ny1A!{838?)5>N56e
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBNrs7(I6zl$8QHc~O}%1a#{r1vK%)h{>{Gf(|n?vP8e#ZI@BgwWPfR{7LF3
      z6JSOYe}F&A_}q3G%n^+r+TPpV=bY!Bb8dhB`t}3BCZ1}DF>Ji&$Nba^PHeYrNpUKz
      zn*891)=tZop8v|0t0l*7yB*=mQd8QVt0BR#`Om5dWuE|}G6u%!+GQBuwq093XPD1c
      z6pZC?qOM7wIw<bu>I{jp*AhD7m^7flV3@mRWv-qC!?b}hj5EwsY*)PQb{fLp=M6_N
      zq$*yMJ9X~cYTkdDkcW1_uoV*j&#sFMF}I^oM_MLw9x786{(<LrM2lgm-!MOsmN+Ku
      ztVo3&H7@4r8g4VJjEZP?jvP^vq(!4EMNLQ@3%ILPSY(K2b9Ei}u%zKWQH)kA<I0{J
      zNbbtOKnBYUMj+(CK?XBwY-sCyU8y9xN~?U(N!}F$t5{=5wuOum!SL+wdmEDWWmHt<
      zt|%(JM+UOUk@eJ7mHWKy^P|H7F*&n6+~3vuA>c5ngF+Ij_)aBfEEJm|9oclf{1h-Q
      zC6TR-Le@qcAm{a(*Y%s?g{^Wm`^WiMS3Z!=yRIwzvcrQw1RAy&GS?e)d9o-t181Um
      zV3{<E)9IwNsa(@2Mq>>VbWhUk4b9c}Ni*MrZl=#M^(9<1L-*<M(?=@&1RbAogWhGL
      z<+zCy&8QH!FiT)+qzDxJ9OnD*2S|kL)8Dc1wud`=1@jD3Uy(M=`~@Bq;um;$$(N$l
      uz!^1nPFxpQMDGe`dcc{6i99h(5OV>Ki8F?Es*J(H20c|U=$C>gNd5-0H#h|V
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6$x;(h6g@8qX$b9v0>+s^4S^7Gmf(OPC<sVZEURSKBoAn->9)FGK)1SecI6ki
      zc7s!uTdVvi%hTNf5);u)kLR9y?z#8fpTE9-2QY$p4H1FChsK)mIP0yO_HtIq$0}P?
      zPb^t3luhNhcTClP)3M6qC1pCchM2&}KLbL7d*lkk1ma_+ZK`Vm(bT|wfmq%t%T}}r
      zv@JQd$}BQN0#UT<Xn`)!nVRvFWG#c5ipr(5oFBJm#<b;JWpz=y_l!kL3UtgkCBwRJ
      zxTgPJ{TNd#rYDdINdB|59NCSa$a(25Iqs?~3mmWNFxFL8u1Q;E!-5L_GZiHua6m^V
      zx>(7wRH0`Amv)Y;(={Ci%^SAN`Fsa;BymV!ANfKfC!A7cl?esLLf*}iYC{L=NNf7I
      z8BOvdIHuvKKzD5iYe;k)$BAlYY01EiqB2}&X5XgT(Tjc!ee|W4ph+$rCvi$(KTF83
      z7%qL4Zo!ga5l2%~O~h7z=h~4%TEhU1Xh>4U=orM1z%H_nD-OqEMM<{1C)I>@3s97b
      z4h-XrhU{Mp$UC;D3|o0RkH=Y#t?Bv0FVI_Wd{A;7^}vFL^8$Shnv3S@BTLp|6F7&9
      z{-DQwJ(qP{!Ki@dNfqWwH_0_yQT}|_(&QGx`5V)56+Bs8B-k>03rJsf7@EeJ*$VXi
      zVg`YhVDJTw1mJA*qd==<urCCXb)+@Z#S<1SJ0&)%4$)+Mh>S=};7}uQb4&!p0{4ia
      z6e~R0h-<W+q=}+aaZ7U2^f$+WKi1r^-#P((%C@DOw+zpdo`yMr6OBEsUyvl;UXkeG
      z8IE$l0ues3%e-oQyAZqsTDqh46A~W-z%E`B`~f^A@ELaVNoN3I*n_>i^EjfTO7R1+
      zfU1xl+`#_X^w0*n=Q6w={(_zeMq|m?7n~OOjLgNBZ#ehh6E2L#lkv`$_t2sr5Q}}r
      zrSwoT9^F80TR<;bndmtMykPQ|IEYv1$7^Kp24i@O3A_u0-42sig#iUz#|=u0^FEH7
      vEW@AWJn>O-WcYuQg8S*n2yW4d48PvS6!8&EGh+mIFvGjQ^#o>d7j3@*n7z=H
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7-%}G;6#h;~2nlPYNL55+v4A1`h}K^%p;U~~Mgvx%%=DoTo6S|$CcDhtyNLfv
      z|BKEbPTQGQU;Bsn&}Vf<?X*32lhob741L(m-FweD_xsNI&dDEt|MDAv3%H*~f-v{U
      z+O~EI{$s~|SWsd|71q>~hNze8j`HLkM@^J0Db%{O>>q?oBS{$0E`^504tHyhgssx(
      zC5%M_iEZJkLg-m_d?j2V3B795@h8p`&Q_zg2VGiZ>qW<P)DmGbcewfV1|eDU>LLTe
      z5d&%TWzmD91~M2R^yIX`(W>K$)u34ua^0#m1Yxl1*;Zr2l8*jvZzeTNLgCO`W0_&Z
      z{kG23w_9~faqRIp>_|q+IyuGZjVw;$R2svC)6sl%TN)U_X+q|qP-|WwZH_&Zn-0-M
      zi%?ACOji}c%-&w-qL#eomgn-dX_$nQ9}2ka`$8(mbIVeCvJYnoSHiM|Abpb=nPO*)
      zi!AD<@=V)n3iE;Vnx+*GJfFoFCUm|h37@pM$KYwcqc~?EhiT3gv$^5fL6b2NM%#R1
      zI_w-Xv6+L2wRGCC>cbr2*7~L}J3D6JGv?Y8vrEvv>G)AfHDOw9n~tllOu@i;TwooB
      zNEsxHsM3!-E*iLm%Y<WmP};P(F_e(yhUieKv}zOM(mpO`a1~#q@j1bami(X=Ft7j?
      zRn`uq<Rsk>T*9gSnv6#N(!dhFVxc?kR-l%Zl1?p9g2g<w-*F{STJ--}tqE1kGQ4F2
      z*HPjc+ETEPE8U?=ab1VdJ0SkwExH#IVw-R#X5X!QJp=r<;0Hs?n4Y-d_1)ZPu_z&)
      zxHLIXPu;T#Bl|5o6=$11Uk^UsI51>fZMrb6X1wX>K{C{(v3Xrxf>CjK@|7AEcNtf~
      zh>lX2JgR#5Nr46i^u*$+oZu&eEbsR7>JoqJoos&QDUAFxeDqUj^D)1B*#`6{26=7h
      zHG3Vy5dU)NaJ(JiCEw7?d$pN8oLHHCfzcmv<X4P+H#q(bpZ-4k9HXmqdze~C4kuqA
      z-#MJshr`L|$S<VwyD)}R>_7iAK1<*!uIL^8?6#J>Slq+456I><c6x;ry@o+=aGc&^
      zgx+DC-gD>wg^TnL7MNC*|9z}PB4n`CLfK}(cyR+|=8(eoxQSbwg%N&#jSBM_$1-l?
      d4wBp;IaIO2Rtc;!%LMM?n=li^zE^P%_!r{#?o$8&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g{^sY`ZKUA}uOaT0Vr9%8ESrP+~$FNK`PGk|z2#&?&6h?wZ{xA3w`P
      z!D!+S@JAW%>^79z#^}rL+?l!e+<VTMpTEBS0I-2g0|~;$2XQ7Y?C{+2PHZJFlwDVs
      zu59i!9pwkF9ksOUdums-9rtqkSUJ9DAoVY4ahXG|7^e|NTTvCl^qvN_UBQrb6)<v@
      zPq!S;Q7;H9tAodbJEaC8Rr8zDL=s~b3|NHhkknEm1Hy!b5sVTh_Z&~Y>9mhza43#k
      zshjbSh1(E;qvP&oN}W0(VKc)0FLrp6gx6*u5s`HugO(q(Ws@-9ZBCpkTb@Zz*)cIY
      zdR;9w49pT12jy_uA6>bvn5UzTl69#}<Zxe4{D6>LEj3K!@yNhKh8WD&V%B^wRKioC
      zg?SVR<DpbNRSDI&v%Wd^J4*9$8@D=41(V5Lu&{_FLgqxO*f)gdf1kFG*jI7Vf$(Hi
      z*L!SX1*?P{_gOm?0aGc1n@(7lt^S5@=l2zk{Ctzh)K%YW-;6}`6Y}vu!v$e`38ffp
      zd9Y-CKogeTtoxndSnfL7RWpCQqIInd!FuU=GN`#C3}t9wgHRYQS?~Q3rg~b%jzN)0
      zO7bISuW4KJD#2?5Y5rz7ddsmsA1kk2!z@?6VEj{bX_CJa`iQa^p&U$_#T4%q;_JAB
      zX^uD%ceyM@D-EE_&mh|^-$E+7pZ|{ByKCIruarMy{43_l<+UpmE6FP?_wc6qHmHC!
      r6){B%n4`s8nE4ybJW41tLYk4*P+`mjo^S^Vti$HNb_U@oo+0xaiOECn
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g|@xmTni&%7;poBB1TIvZ5wFl$ekPl1ed{k|z2#Z3kG>?wZ{xp#RE5
      z!D!+S@ZYGfir(2RrL~R5m))7&d(XLZ&Y3S~A3p<F#X}7d2J0n1<j0nOWIOwo6vxu4
      z$k$EL*l5_&^|oxewCOssV!sjVb!oefh8V-@Kbu03UBV077-BwQFt8HC=$h@=@-f3q
      zrmT>xCMWWW^k{}cDO;uDqT3KUqDUCfU@%M%smxa6V3;s4f>DOavh9ec?N&{AyS&yU
      zs$|)%^JbNMw%T_-#^izR(+L9N|2TJnA>y<Y=)lCp%>!+AgtzB<Ezw|@@65}Oq$Li8
      zBdt(}4Ye+0s~WB{EDp+Ow_Y{Hx+E!TZ7C{3>X^lKCBhs-G?T6BxPf^MH;H1fTRB&B
      z9ba-s`UcWiU`Y5vo?FOZhI92De7h}`K)tNW1)aoQG_ZtahWNgaVImkF{rzZt!afO`
      zcDN%73h$1A46<ZA4OKkg9_c2$E;0GC)<0iwe;;s=)NUi`RCu9sGZJXckP2NIu0F+!
      zOG#wQgOHU01IT#2;<mlI*tAuurvA7eE6N52qvSZkD>k|B3tz*1hV*cME^ZcO_uQB;
      z99STUqI5YaYbw;ViqKla7(L^(dq#WpKVjxhp_{4q7=IfSP118B`1O?<zd^@$T%vF3
      zupF0>q#ZTl3Z@85trUTRpT<lFeh;yrKJ^K+&rfk}J8!<j_y?p+Gk1bp`REC5U+^WV
      v8u&rO{Uok4%;8rLXR6DYf{7e4j1hAlcZoBC73z$@!aaJcT+oHY1H^v=l7Kmx
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYflqF6g{&oEM1m|m4`}|BA~QXR>Z`Z5);xuB7(t`G|_KEJCrrsT{Alc{8=Un
      zMiYO4iTc&Ye=*+KCA6iD(J#9*JNMjk?>Tq&^Y0Iz04(Fa34>wzB|qfHPI%<{bw`O~
      z<&@QHPt?|Ht_tK6SIun%Qq*P8^lNKX<p#cq<iEh;G`o~BhA|lXb%xO`P3Z6=<&*+1
      zkVS_6Ro8dbBZm2f_|W52OIb-OsdzCwS7At&f|{_9z@QBiHp6%iV6Kt^!?2A$^fQcX
      zxxRSXZ0rfS%lACNklqTa+^cZu>iyZrq&jdzhLwo*zf_?<48Nh%M*X$7K<qqHZb!)d
      zKsH2;Vfw6Mt%EoezH(xf*7drWtC+aLFx%~o+j!-PHAUL&HI*m}WnmK6v<y=WiG^In
      z!gWlWxIq-%Xzgq%@I%FY723#RhG8fas%0_5!??1J=C_+li`35B!x)S7p0zQDd4^P7
      zsCa}J9{j!64y`w1&<^)SQRlmDV*xpa397Pmz$FPO<ar%r)oN$C?f8zw(P*CoNx0$*
      zJxYC%_zaoYw%&Ho#BrsFY`!~Xxyuon1gji0WmRmrdeFu$T&N}O3xoaG_k}EZJPbu>
      z;vPe`w_&ZTNVliuR6H-3A(0YvpK1K`q|?fvwTS_GrfBz!_WFD<zjz8OUwDV1H&M_C
      zJ%^*CF9iGw3*RtG-?DKyE+I`j0^%~pD4AYq0-b&w6KCo7k&NOqA2Ip-6j!$k`L`H)
      zk4!$lc!HaS#0hS-_|g;&e5c}m5Z6yk;a3}H=A1KwJQj&zfS3!oL!1Vd2x-8<U3%-u
      Kpnninkop5}aZE7)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6+fvg|6kVscKnbGUiy(I`g%S|~rFg+oq)?EVGR(+ZXb%u4B$%86eu`h<voBn9
      z##d+jD94?ot*Nc(%gN>Jz1H4qUw-`j@(sWYwj~4@lJC@0^<1&fG~-Ya{9Gt`@j>Us
      zOi>f2wV{cztWb5Wuv`$DX-Eh$%>2{EgV-T7&y69nq#2rc&Jc`G>@tMXW|23cnW5#t
      zG(=K!Iid)nMMfAhLsvZK&?ve}api?Y;iVkUwwz}0t<v#6w|3NhoinuO%z~=#s+Q(_
      zmw$%Dk!CX}F35kUmm+-CO>~=E2c~t*iwuM1NYpc-@KbIG#Y-yVyi-h3Fm%f3LN`P6
      zAs3!<3=22=)kL=LIc=*3PdRwKGGgdsxI=iJm@8(XbWDT{OCD||DZlGP4XCf06>kFX
      z$2|!H3_boT`aon1VyMi_b?&N>7pg_fRJ&{oMldE}lyva}G~kjkj{6K9ltTJQwMbWP
      zWpwT(F%Zu-2)2BkYC#+c2@@nl9ZA_n#w4Z~S_yqwP<!l`1gC-z#~Z*_4f0%&0@HXX
      zLHTO}Y16QUY6x4VA$i2mq}kpGFpShn?<QRXKCvg^F~ewG)OqdrMCX3nC}uJ5G<(E}
      z=!uM{SfmEBxu~!u8nA7agwy4Ipwyn%gG(}=fhMe*AgY2_4N03D8mGQ*s*a9k#J~`C
      zo1dZIHC7sr15G-2HwQzk2GrMKG-bh}S)gLoSTtxMvJ7yYp|9Ss(kcvWkM@Zw1Z6m0
      zZ&xoofkyLY$tv(w&DkHFe=NLdr+5r<)-br0)>Yf)wuCK)q57)Uu1d$rw=6MClN_X7
      z3k2wmDov+EUvus^ASK$HE)o6g8nn_Gr3;`)h8(x(O(q92LmO_>lZF!QWr*(xxlozJ
      z<OMo56H^!H*-FxR_Zq_iEQVsCYdm1MLUKO*6|-+IF}E0rMY_TtAq77n6uQDfVk#C1
      zULf^5fDtqikwF2NM1F!^yvG<UBw=F-0xKxFfvtJu<-mXpUf?B#7NO@dUQrrOKc~q)
      pNEk`FU!{P@NRb)5CMA;ecMVyx4`7`b1K2>0p3d%L*u)z&{{mG<)N%j-
      
      literal 0
      HcmV?d00001
      
      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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
      P@mIYP`Tq*;yZrwFEOAIr
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}%W@k<6g}5bJn}@~c;Y-s9DxnCEIA@^fDk2w*w`SVC?R$P3J@4cUCtPJMvTU>
      zy@EerK|xh0_H4sODsUBSSh3{&EFK?1aato4j>i=i^XSvJZ=ZYm-2VEX&%Xe05>*3z
      zf>X=(ZF@c2Tyxx|Y@pVI>_V_nSGBpC6L|h5Cm0LIB}c8z+f`y424aG}dR?||bJdl~
      zvZ@9K`UOWL*|w|`^q+HFCwNA%Ya&$=#AdykGO-JL5-<=K3>F+$6<1d(%3riAbtSM0
      zUe&IbY~Ru2E*J}LIZeUoLS(o9<(?yns;}&Txu++h3Fhi*MY%yP6`j(R<n~}6_8S-$
      z9Exn-U7NrG926K!Dk$13+-G<q%oeJ(5crfj7sp}7R6RG~b|xOeF#|{Mku?lVU<AiW
      zTD`q$*ID%bkn~pNbEz8!9u^#lFe=y;RoA>tBr&Q*9upk9U)iNN9uo{SY~Nn;?Zzzw
      z6M~UQ;;X&+F!?w}<4CifCXL{Du7RnY1e)>I!}tucn#|)&eIGLU6xp02o2s|c@LcL-
      z;Pg&xW_$Bt_G!)LDcZ}Syat{Y9F7!_=TsPd2BQYfb?Jt(UTij%uj`oeea|;Q!yeQb
      zwjSWjs#C8iKaOVw2d=wsx!#(a>^dMBY&6u_q>1yG(RI#lJGQO`QYG#Exdi6%ydX}$
      z%+~ED&v@TGhUtJg6M1dC7uh8LQRz(SZ3+ooMv*qL8x7^w1XEjW(%Y}&=^cuo8LzS@
      zlOg462`p#>#{(~1Xd;K}x(>GNj`kyNsIYP9!f5C8nu<r_b~?g}FkxTDZquk#I=WsT
      z6a&l!Z`H4=c}HIi!`oW@gjPk6$h)rcJG!W*0V2uB*>77Z7>ZnRY!?c`XE(3PK0dsj
      zI2zzzmS5p__hcL9r=95p-~AetukZl>6JY=z#2`m(Y7Fts#WKc(F=8L5KZ7N>EX9m<
      zsD&eUFt~|iIo-x1#ZT}~#(J~|j%zSQa5-a5cEG)x$duEuHck*-%vdLTq0>6_34#|g
      z){{N(j0VpVoZLjNyovK=>p~kB(=9yL!V4{2vaaxz;nTuPZ7hB{b(j45SOe(GA#(l(
      zhJ1?w`Hqag$B6uZarqI`@)Nt}XXND<T$5jMQ+~se{Envlfp_IkyeEI*L;imxe|I#Q
      t4D0S{LIv<LUZE-mK0p~axZ?oc$E$daviITj4u_j~gI|+Tf;Uk?{9hny&5r;8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ESyR(c7(KUJpaf9%BFL_#P|6~p6c;Q-mV(s+j=Y8T0&zm(B)5P+#b4mFFDyFa
      zt26#6$1h2#sjWD^+${I|&N<)u<L8%e0H%<Y;A5D4r<^Ef3F}nV4-<l)i9}9((0CzT
      zP=#S`sA70WFK|;+b-t7rs-a5=Fiic^%SG8HK-Y~Sw5aN;c*5Y1j_xu9QbvK-p`M}X
      zz|cj!cuf<A9}O~skQv&e8Jj7gDWonZOcI&2otrbHXRCO;&&_RRU*ild86&S~yNapW
      z-=&`caim%d(+<f01eqiX#R)gd%>%<c<^_hnk{IPwB=`x}MZyg&ZNHPOFc{iow4;Ne
      z{*Vhdg$(mI`&Ecrcb&3|&XYD?my8Iy8EzAvo6=<?Upyv4hD8_mIxes4Xa%UJtk>QI
      z-h;amdKo&swe*0<=tF;rnQPq1MouUuF;fNC8Zd}q2}6_@FF*}086&vI&`Kesjueyf
      z%FVRK-5`3SYc<4{u9FRjA|_#!5>Z7`vXL={afU`hUlP<I`$fU2<^$0huw{cB7nFes
      zOiD=nHGq_%TSC!=CDXJ_Gc>4Hc@`K3E3@y!U4cKkC*c9ZP?hkUdi-AFUfVEcFlV=X
      z$QJcb#v?2+$QBnK!dMN$&7!c|-HVmnb31WS#$(X5br4E9?PWvC&<*WV-92STJ9EUq
      z5OhX>p~o>!)E)|&dhRR|hDZgdr_X5C`~@RVC9ANg(MV+J;~GPEwc&NcFt9z^Es78n
      z;YhVzb?yl?oHL4Mp0B9(B5C_$|4rESqhhS-IyY0AVp-ghu*J|{UD(RaNjs!mK6g`K
      zfJWL++ZXWB8`YamiN0o?Z$OH*)LkI_*)eFOGfWr23K_mY6TQjgKxSyhEqc;)qNN1!
      z9RUX_9UD7G>t<~H9GzQnI`3Rzz=wrEByffM43~({1;1kE?FD8RLXl8=@FOJuCj<hQ
      zn2(J|LjH3ke+w8y9T8<oz$+qujV|OcjBUiRgGKCO8E+h6t1fv-7?8$OJR@l#dM@EP
      vg<*GfitPP_5vThV5<E;9nWE5w^rs7}SR;EM)``)F4P@wPFF}S)yhQykWnbGk
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8?ROki9e(c3ZfCNcCfjXDN-UT_fV{FzsI?j>q)7v5leT8lXj-XGb|>kS&1{^V
      zO`E8I0xF;&6z~mvf2CDHDWT-(K|koxf55-MZ+`H*=XiYX%<N`1yPo9aWbgd${k=ZF
      zmwW&I-}nCrU=Z(XkOCc-%oX!Wx_H@k7So<}#Y<<r)x4EEp0mAzd(!qa!~{BPxW=pn
      zvy}HLYy!!m<=SR`)^dw>!8toICLm4->=`XMMbC7+Su<a<;^x5PnHSft{YxN`ExE4c
      zc+(|EpnbB&!tuPd#N%OsX4_dVc_W_Z+VdsPDhk|P%RW`|%=x@k;mTM_)X18y<;}Qe
      z_A$#9NY~133AbxBB0vSZS8VI@xS1sws{)6%mk;#KZc0(fuKR7r_KpfPboa~(#6}A_
      zD}e^I8c1QEhW!F}*2JH&mzJyJNuUj_jS%>d0Rwvo%%tsDr%FrnmOG<@7f4MOvdn?W
      zOpp#YW8OuZpxv>p^K><y%@-UhYU%Fr+0%KGg>icRl9ly_mCtt?=s+jaw`h4IS&ylv
      z>bCBl^Hth|6JOvS16{aFLl3=+1{ttu=wn)<`}K;jYrNoi8GFqNgmerrGYi}sC~|Y)
      zNCLe`D=-fVw01`v&#-2k#o>vbSsg<xhfSHmgE|gX?+ocUT)lHh$C2ut!#X}*y>mpz
      z{Z%_dlwz(Uw(g_ULsdJ6j%YY0Fu0?@$IT@>zgiBReYMvQW5M4Z$gu4ebc{21{$~Os
      zctl|_A#hI}ENanF;G86IQLR%2r%+rrvsO;W6tf+rPYc`<<;|E*G4$dS0*w_?Lq_1>
      zwjqw>?L|kmdO5<ggeq?>cmtP8MbBPXO<)>n9iI|t%971;%Lh8nalp9t;>8NDhEEIh
      zZEN#bA)gD(C2$_C8a^X1u&vaDXXfo}S?+?8o8L)<XPuno=Gm)dQ4_5RSXk7sz;3Rw
      zJHt5~uo}1so3(D178OF1cF_|U>8{&sbvNtxrGRb*y*tQU))izTm%^H3gQwW-6I-Wn
      zcQ_-eu8;b2ct7PwFPfagOkZV2`=kFrJuT(oucn=AAc5WVGwWKWXN5P<SRq?dkO<sX
      zPeJ*3Si=hMiyDYSEy1)dGbd0&tAJ*!8!Mj|I1uztIlvRab$7;etl^$n4WHjh(L^tl
      z1lI6H)tiqC+*Pf+-q@p&1fIl~HGGLPHX1|369Z4-X<ol(F6Wz4HDWpHw(F|4V670Y
      zbQKQ`Fwfb-(lUp>!t&OtDIT%Ht3mV1*JxwT3L#SYdCou+nw6tpH}DPR%RbjyDy&#l
      zruZ75{wCHz<Zk5qqh9hN9K*`O%LbCztKk)ap(qOVFzc$hfD^c?vKp38O%;z;qvY!>
      zmtPec{z<*^?wQ?<@8EkHzDvw&{Hr5j;B~yglm#$V+CkmXb)2c3t0#@J^#lA!!w&`a
      z*VqdEHt=Kogp*NS(UDhEXFaSd3`)C-<7WnbuDsjBf~p+SHO&ehWPHUGEv7P&DU{r-
      zHEyeSN6VIH)V<0zj`0bHl{lI=i$(QpYu+*l6+>jCQs?GeCij+$LBrcSyD?pB(Jhpm
      zaKIDi@xs=vrtzu=h0o)7(Ti5YyF0NK#643P*wj?JwYR1w8F_Rrpp#YJz-M_J?fl<G
      zN+Ttq^OwVqzfey;e`T}zD_eqVg1mf0^0$T5F=`Q9lfCP>rFR2ubL+VE2HM}|p2PwE
      zHYq#ucEn@{nq?<$<DL=7;C6hN6r0lbC(tJ-M=R8K#|IFTeQ%KpG$quD?1e7-eJ!m4
      zXQ)Ld)j@sid-eX~FZGGn85ivfrSI;^Wa<y-o@>}Z?_8=ssjuVS%v{W;29pV&iu=@k
      zNyDdh`P4^}O+Kah)JKy^pVEEmW66|HB?H#s<o<vRcppf11!TbdVDex<Hf~^KE;X7u
      zzK(}8bIF8Ho=8mw<Zholl{yoU#s;S6QZo(fm?iHXpZa7hpqhMYE*?<L8#qt=A0=CI
      z0~h%DS$^)_fXUBnW~#6MJ>)j=Jcm}|`2gbbC=B@^+T}y&mLoVUk6}!XVp@*Dl*h3w
      z$MJ-G7%#|2@P?egb$J3C@+AHyC-DzCg@4LZ__sWb|Hw0<K^_$`Iqm1CBS1dPPh7-t
      z36DXD80#(1FUcG&!3i>jG*?wg@!ogPzUibYO~^+hWfQNIO##bwgg>`c*sd#Fgck}A
      z`JMnwQi(ua-YUNmk=HB6uV6KlKg&2(FA@H=Io8=12=u#nVrvULg+}=_n&dOSIv*T1
      zR?q?z#xwW|6*dx_uaZ*We63<)p0qO2LU5j)>i-LLW#ai>aRbk8+G%AgL%z&}UZt&9
      zXzNw%ldnbWwN&i2g!baJ^+IUxMSL?1X@b^NGTLbGrN5$yoqd(iym|vKshv%Pg6@73
      zn!JXTydFWSEi@IwYxq{E_FOrP{{EZzwnTs5O?+SACVnch8AhP<1M2(}-T(9dasL;b
      zQp&{^{E~A@^6yuqB;Ld|uG5@TCeN=E&<k9D&GkIj-*BDg`dhAVas3_FUar6AI>PlG
      Vt~a=@#~OKy3%tjPxW@G+@IP<bW_tht
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      fAQRXa85kLufi^QRFak|wWncrb7}$X%69WeT+Jhve
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ?-*XdH7(F-HCL!IHHngQBNgD}2(xebX1SM?|N{hkrLkdNHRW|LmO(!HJ*+BIf
      zM#nc^oB>4W;Lw*ophBvm2oJyrqyK<2J~{f}{~(^byCe|`583X$``z!H^L^*Lef;ka
      zcLBVPaW@<S%crz6+DyD~Hl3Y_8~Th9Kd7aKbi)lrph13&XEc7=mzvT?x$6>WGI!It
      z_>i7YYnk-NS}LP6xL_`a^?V_n%N|PZ6cD=w>iTlof}v%NVJ%bCYeK(2c<_zm#|r|A
      zp`{7}{$qoSQZRDU2?1AkI-53n1==I8i0d3?y1v|)?u8RR74=vq;EZ$*d(n&*H|kU@
      zN2@^1XeO5>)uu?N30f^Ju>=AuRH&$PBOuWFGFAdh2h&-7Z}C)0&$C!kyKgWzs%3^X
      z)`M$%Q!ysf6xg=7KHZ=^VNl|PZt#RaFp{)rz0eL>3pZ8^tgJL7naSuAT4sBGqIgQr
      z8vQe)`n18qd$5)Qli4wSCX_20q1<>Vl`Ce)3hTXCg-%(Vs6cb1ssKYqp50H#DvC6J
      zNr766)b?>h&r4<luVCh7;Wnsr)JB@XI%mS$hZP=XMo)$%k^~7b!0x2SX38*qB*;pz
      zV-;vKg@j(be6l1m+DR9&Z!Zt>!jB#mz1U{K?avj`77fCYh)X|R)H3YT|4L%nJ<)ko
      zitAIc8C&FAzlxOz%aprRyo2q;&!whh|0|8Lk4l42YE<PRLtCI{QY%baKJ{a-ia~54
      zfxKQQX3W5x)rsc~YWK&DA%T_(khQ&|I6kiDy*L1$2kfBZSV%5DP;mrDnO&Qn*0W;*
      zU5j<RigtCjga^kdEwqlQ{1{QOAMbl`lF36SWbzTd6<GGxmz@{z4&{pZQGFmS$D@}1
      z=AE)$a>r||qm#cHIIse4c=*1AH<ANhJ~@7T%2}+(Qa&5F8s#?!|8_(d&=`A&#%QdB
      zrh90<jkY<|Mx8&w&)2UR;y{qk7A6O_LP0mv_i()p?d(^(`OQp)4urU3QWB~o5Qht4
      z8}KLz%BXh#WvKq>EwtU8Mco~&I^tWifXL5s$G`C=BP_gn#shnqXCE(`{Z%;aWt?`z
      z&}HJR!+INMgy-eSrf9f?cu&A_4K?DX%pR!9?xPOiI9xb^T8t3oq=^u+&Xy6H@CG(9
      zvx}vBlUNSE)3-L(2L2Vy<1*#U^UdP!GIyuUjH(r3XB2n~Z*xbs;FQg@!`U+jpT#hC
      z12uv9a}E(OQ_ep9$5BaZwcrdJah83YK_kwvH6K+G?<f=RV5<@Ya?otDNRl{j6C3(8
      zWy&IjC3H*J!Y-lv^DEE6|NR2|dBT5!W%!i;2F|n3pH;z!%kW{lZVv7|gXe79@J|RX
      z-IR<)saKhg-G{h@8s~iM9>kt#2|Id&U3^}Zd(O?u99Be|l@fM#na>gi%;<B9XjX!=
      zPybRXHQH=?{UXy};v8IN+rD72uaNAQoQ$h9<TYN|vxwq4jr<kwuvzTF4O7G>i&R-e
      z67M2O%FVREZdzN;RvhoKnog|cS_)J6omY-6><VL~uy`ZxcS{{T&fYl$qd{`ts<bH&
      zQQxrIKiNhtdro$rbBbVK_UWJg3jLLwE#O<Gy~TmOP5KLj|Bk@lV>Q?7aHooD+@`9K
      z%07~jL%)XOF56v8sgj_R=Ns6kgh`c`j!pGCzeo%8-@$<+3ph9!^BpST@L}nQj=)8D
      zW4>c@9eZYu6LMAM%s*nj56yrQw9447G4GuRl<|-reS{|bf>t~x(I+JTi01#5m&R{Z
      Yrs=mu$V(-~dr8pOk+NyVNYMfPKZCQ}x&QzG
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`*-%}e^7(Lq%64Iq$3baM4P*jp2q)06mswE@=Qnm?@5DRUE4Q$EMCBbBA(MM-|
      z^1<=JhxVy6I)kH(*0F%o&UEy}2cP^?{0kh<-CbY{^x@vU=eyrM-_Ltz|NigU3jlps
      z_2Gnsvn%R-bt77RpqG}TrnX^5b7~=Lme+i!k<ci1qlU`8OkqV^G<~R*&}2#Vax|+|
      zbk)#5R||$l<*EhqTBWL&OEam21nIhj`gpliHPw=tSB-VeyPe4luKfGW3kiXkk{V0T
      zE6LFuHB%mX1qml@>2zvrJSRkw1lbnFlj&S?TFB^ky)8>5<Ea}lMF{C`oh=-RSz2BS
      zlw>S1pU$L{d+S6dmnEYmAD^8ZPo@b^S#TzuNKPxMbW*T+_N2M-RD426>6)dMoSKO#
      zJmgs`SLyet1TS;2T#`_0XzG$y;o_=Z(#?+~)PzREd4A&MB`v_<-jQ(uT~r8-rcz?3
      zLD5TEdVRH^RhV~?#h_ANRE@mK%o01o8ndX=SgZ1?Y7GV8L62bXrDvgVzK+%|%6J2B
      ziq(5E+EFi7mt=IHo*rnQuB!$)n?n|<yU0V~IpORFGOl2dVJ~auWVx!Ftg1ymDt52R
      z_z(=Sj=PEzHw~x6-mr|A*ps;z6S-N{N+$DEHj5%X!J`%>_={?_DDuRmS<adjHY8gu
      z6m}`w(jh;_CBP3hS8YXKE}HFrC=z^&w4zlA(&Sju7WGxtAev+W3Tma@hiM6C4m#Rq
      z8(G&47A=4r@;=PG)bqB6jE`}X^!G*oX6~|z$EED3n*mH=PL$-<p)5OLg!6vfVOC7F
      z&^|1b=VdHFWl-wcnpRqp(Bn3=cj|~CCjz#>6cz;qPqwk~Ua9B@gOJ-p52AL%R>R_G
      zQAQH%=GwK2c30ncxlE36UfOJVy|So{>Y`U==dI`!No8NLJ2<>(Kr4JK5W7R%Rs?Vk
      zGV1s7DdGkfZX|xqg@eSWUAT$3*@at(&$zJQJL|%N@0<$@zE&50ow&_~1^;;$ZlTw_
      zIh-NxjrHZN;a9|T0iB%RA{s^wqoXv^>GAC1?O(Y*fe`0_CBM!rOdw3$V(TG-ZX&@W
      z`1yR0t;=CEs8hqerpPYdjdX4!8fn``U*!BY`VW{}m|x%~HRqV!TR4T=%+(#sO2j_D
      zZ>7nxLQX3V;cJt)|5lye$7RRz7ql$)2D|^lK=+@J9^zv6ACPu15aIat5jt!*L^$*q
      zr)_kN=-Oj=YqmUFJZ(qbidwF9da{C(xW~L3%*ZOA65W-F!F?YGF@m_22|gK)KT!(<
      z-pEt*9Z=U&418wM$ky8H&`9DfI_7Zy;lp1ZdzjDMF^8i+?+0aD{`%O%iG9n1Oo8yQ
      zk#0x7;?%z&0$4cg#6uTP<9-CZe2x?Uusot1MsQ3K1V3_pg+p+Q;&*U#aR^xtM}IJ-
      zY@#_h!MP!LgL7Rl!`bs3Q?uQ_BfE>);O!lJBK+DxL3s8E{@~aqyg`lf9V|Z~k6pma
      zR-=DMAHHYdHrcR0pcg;!k6{a!@Cyd;gz5T?8GnjlJmcf|97TQ)+T3tr^04GO+d#DW
      IJ&WJ?AG1b$vH$=8
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvWF$%&!6hvpEF&a@kfR$Bj4A#~L0)j%semD7q4NH``nw-tT19&L$FE$poGxM1D
      zdOw~3)))uy1m=~z%PzjQx-Mf&osExDNoDAysSVH<n7Ku4B=>t&QEmmMCE0^)td=Ib
      z$XdXU(sY>!Ot@fPQSr?eQL_7Yu<aNtsM$Cu%+9war$ig#x1al!Lk9u^JvIhBw(&85
      NvkEZeL}27{gdg3lH)H?+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-Hy^w5dNm+M@koP{abetS;ZB)MD)_E@xrbe5@O<NxbMQrT2orn7U7}1F_D;f
      z;RE;-`UXCMai*}Kblupb=giER`R4oPoNvFrd<F0T?L0I><E``FnRcRy>z{ODHH|y3
      zonue+T{USWmaRN5j|^cemH8x?N*+NE174|1$PEH-Jo4Fy-?&lZKB3x6)h#<5aNZ-=
      zcjL!|ht2a6(`QdTHBx?j(CQP6L-j6H11DBPLdFh;ssKXS#03-#=(uRYz$T$~MvqgR
      zt^k#LuCHE<N5?8mND?-C!NBqQPUy;57Qu{&BkZMFEv2o7$09Z55w_FWr@aZK6BXOZ
      z=<HzZ$2`(zi^o~y@KG>X#LAJ1pNH;HD8+8TQ_eQK%v;3XG?7J4tX&g%<oG&5{s%l9
      z#*iw;A#5z1c`rVE6^z4ydggkHNi5mllRG1rUEf!s?Kx4TqC6}X@$btd6q0&*FxX`x
      zIzKZVn($&v6IMW_BA3E`jx!7tIc~BCZ18```BG(C`!kfRw*DEFkL+u>#H+zO@PqNb
      z<1$-U6W_!Yw&XK$4O<)|T*o%=E8I56h%>az2U!y|=@0x&kj(k%0*SEmzx50uOxEkG
      zxbav2m+XnIqO~(a&8p5&U&$)T5tWdoG7PFDfc1I$Qd$wWl7TS<ZnGsK8*3yx91}@d
      q>l12gI;r{x&+Jm?opT`S>kzFoAav|;M-6uu!)~%?Bs^N!2mJ=cHOn>t
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>TT>iG6#ja5mVsd)+?H_5#XuC6%Z3nlO+b`ziK_$<A~B%RVQFBfVFq_+1A!_p
      zWy)tCd=VcM%c_)BK6nXGCAz-(;BWBBzu>!ix@UGEY+`NIZ1?HY=R4;+-|0X8`8f}u
      z7k5>J7+P12d&XuwyJ6bPahGqp@mt1%#b-^v(I!{Z&V~wwp`pm}y0a<V7)sm~Guw8F
      zp=G?tDTvn3P}^o?vpnOPj-4GbvjS(4fz2_L4x}y9Hr+vnaC^rrgEH(aaupQ}O-~Q0
      z;S{P>R56?qPI1ei8ip+b(NTk1hWbUGH8Xs1r~o_T8g4EtLFUT95Y?fgl<tq4HlN6?
      zE%1y?n4xCeNgLLzkugP@zOiJ$Px5N}|5aLiHfr%TZoB;*vjVkQM+7Ar!Z@R&0cRP`
      zJ|SM=PD=72C}y}=96BI4XcsXZ;ubMi>|BV+pl0~GWu!U7nf6p_zSvc?mhu%@KC7b@
      zZ5n0XuA>7n27Q^k!eQ9S*{-BBRR$ehI=azA<fR=ew`NcC_i{wPsGM>?_c+Lmxy6q=
      z^s5jGI^OM*E*j#vEEv-S*cBbmBf(JNflV$gWx2o!&C6U~&~a59mwU%E>xP{bCG_hU
      zz>9RvGVVJ$cX)+FBV?$wOQK608HZ$<B4JzHUUpX)BKN3Rirw&d4RT&2Q4D3m#pi>W
      zBq=ZcO=H!`3~h?$l?kHh*D<T&6@Q>S%?A1$&19U6h8wudpt(kdXcmc6c7_b0df8F1
      zNLCbd1Y_DBjOf>tjtPv>8C{>I3E1Mdxw*VTjS@vtUDba3hTJJ9Yl?Yf=xI+$5yXuR
      zH$KhNF7aaV{*I?8L*UHnn87V-|GGn&FoU7)Ng=3|87G%X^D)yRy;TN^?Geo;F{Nyq
      zXXM;+ic>1j>Dj?E)UGhSRiUaXF)%<?gBVw`h;JE0JIm!;#^?)F*XaAG+<~e*gcAM<
      zbw7|XgnIgxkSj2P)6xRkHK5VIK0+V@Mvrywp()lCK0wRSO^qS|la#=Oyj?H%I?mxd
      z+36Ogd4X*7l%max$a<lObg>(2Zs|V2#n?WcODM5NXnKUs-%%AUtn=R>A<R+bSH$<w
      z8BRnV;<WD=jT|C==K#Gk4<alY@vZsYfB*89eH6)G<)g~is1%#1@{6{IKF^*EJd!6p
      zlCkhUt{s(m4V9GeTg2?!sK8w+^&Kk5z$Gjofiy{S0k^?nV+r@Mj8CzGFJR&;tV&u2
      zy@CT;b}@*Thz=qFFVjkpxQiiNC#oy(8HUNGppP&{XceLLD8~GT{O!}X{Uhpj(9oSP
      zRQV;!4{?JiN&O~|8XFb=ESW!fR@<GY(_>c2ZEJUd$i8T#XR=W#Y?ERudG02L|2!h*
      zf)w2QXvPOf;zQiTN2L0XiJAvkr}Y*-IYz*CK)^O$^$FO<Yd!(n7$-7?*0w25g36pi
      zEFgep)+gXyA|ygyn$S<9a)8OBd^|mVPV(Q8xK}*S09OlewE$NOa5W#7;dM;=XbJik
      z?Fogy6W?R=@~uSh6dwu@LNYErCSv;i7^D6Ssj=p+1HAG5i9m-k(0N(98U#{FQJzLr
      Yyooym9m1TvIZsNY@+mky52Q%;ALqK_dH?_b
      
      literal 0
      HcmV?d00001
      
      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
      zcmai1-E$k&75`mnWyNCc7za02WC&>ju@x&yQgBNg>?V#)1&IlE;u6vnHqzRbk+o*E
      zvYpTZDd8i~7WzfMfKHzB(wV|cVlzN8<%yZT_OYF|)6bdy0ex)xJ9pP>$#Ub-?C!ni
      z-h0mP{LaU&e)r#xZvxnlU&Rqo*fwL$TZ`GsLa{uR_3TA2d(t{rvL}l6LL7!dXT$mt
      zXHixaTJlb*I$M5xa<XE36@|!|oWdQxaD2`xQ`GLy#_Z>+Mc1CS%d&6#nPas|$BP&2
      z+70~*O^1r*qBo#$cX!=Zjc>T574`Q_C>TRd!A>BGRuc(qR=DRj2XZ|VaonlUbvx_L
      zP}pK(6Pgt^A1jva(dz6u+tsAdpJPtmDot2!QAi4ehBsZLTV0J%Ln`T0#4eHT#yu<U
      zD8yZRu4LtHaXXi*CrNuQw9{?z_ihv0kV+8jb`$qv2cuE4&O23aXxb`I*#%P5O@B$H
      zqr;=17@Ve(U7qr$6=L&LMa-T5&x%58-nA{y_i@Z&xDVfk+MY(gLf?1k5mofZkyhAQ
      z%YJ>rg*y}IL9awKqwvr=W<%ZmjdoY~6z4bB_%LLb7=R<|XbVp?Dhmzy&_oAAnK)|C
      zxptoH6yi9buxlfi<XnO!*UK<XI_`qy7Ea9-cwXURJs^9YHIhB*<f~FF!!p|y;PWF}
      z@9{d@{S8@b!OM<MTXS~(fiRCoti0#A=XDiD?7Tv@&ii!~uff5LBK#d2og!VzQfSlr
      zYEZEt<|kRNb>|z<t){hZHO$!E-MKUJt2@`wLZnETu_lgSh*@6MWDjW_wXH@W+U;*0
      zHZg)nh==8!ua+2^<HfS$9$qX~>JJQd=Qc2X`{e}MkTdZp9#hyF8ar7m*@Y8MrRWtM
      z>6^nFS=qpUp-2iK;aTpK?MXLgfAL!Z)yFD+dp2DAIZl<kHV_SjvX=b*64Ij3EL}<)
      zlBRjeL<~(b`nriYnj`?HO$=aA`qdc|V;E;wvdE}#@J%W2A!CrQqGnDl6X(DzY_>|p
      zsj}ogVU5U&ZDJBTiGG$xXREU!n>JDOWqeNrvS&?{MAppGoU~n6dSI0P>AN^tRJfB|
      zNE1Emt#GZdH=tVQ=9r!L*gs2l|2iE_w_kClVqy-Wc+R2XyL7<U92f5wOf2HOf*DvH
      za;oAMQ!XdV&ztxbzD>u1WxgHQvg@)ZtcQN-hzoLiK7osPIgalrbTqUbL1^L<USa#D
      zR>n%$@uM&AgOLPY!{s<$=eiuumgsEuxaE=1H}EF0kz}R^11lIW;(I2(FWTCu?ZgVN
      zqE8mzHt~bdlph@5)F#(iSaFs^h5H)4TGLtO^$>nM1ZNfV!N}{jy|qz+jt09(p2?dS
      zcdBmQ9$^*HvrzS3@sa%J%4ORfDp{3^&3J9n>omw*(L?FZ#tud#%4C#_dCWT`i}jNq
      z1AI!%61anRle5RTGs5TQ^d4gwE$QeDv|UI0hZIF{7w@g2N)4k)9YU)bK?h}D@Q?7h
      zl`|ejCz4di&?6NnJ`00CP-Utsvy85^v4nfpsvSdIjl)zYwc50QAXM9eFJdRvQ3-Z&
      zBsg1eAMPh41G~{3m>S?r))Jqf=X83{GWLAHnGe57&a0<uU?)QTi2$~Ny~uL^KAwVR
      zrAFg^t?^51H98w;d;kvy=*Fot#!Ia_?}M7xDjx6`Lr@BR__B6d;VXDZJEm|D{W_!y
      zhww1nHKZX01}+DIPNtXf)pS%X;po9wDj7>(Lwj%LBYbVu@HWW=^$I_TUnT3WVT*bl
      z9ej4G%NoppΞbCW&J~1d=$;HDNi4QH~_Pl6agMWstEJoWK)=VMuojU{yI6zf<WH
      zk(}f;A&8dnq+~>r+4j^bFh9%Q<!9}C*rwjEVI~!VNrhli_(qTpDGf`&q%<sHhA+SX
      z!hbju2wv}K=5w@ug0|DkI6Hb3otgHhuj83a^g0T1o08j1w9mMT!OZDvm=dHN#sQ9=
      zkyVOjLeUIGGa@R4q5?&QONQz&M0E4Yts9xugy|zaP`}~7ln+=%AJWHb*s89hi;>!)
      zmT|xOm|s+%Vo=?{n7Rp@b60&<!+{ra;AzjLBs|QL@(6z}${a=6RC931i*Ufc9&j+s
      z72zkIPW3LsU4`W*;qSGXd;Kk;nK;$^l^18~Rkay@g7_-cZW`D`l`p23Fn=ie@Kw0!
      zt|eUfEqX>XOL(Eri1x*<Vm#9kTf&P6n>0<a0|(<t{zz%EDY}H0-uwu!l3QOkqh;Uq
      zWi!64pk;6Qvcjd9>WFn1S8o0KQbcv7uH1TSHG2lwfuR0?nEE3U>Q7ATKO?FBg6-<B
      z*scDCed_Nxs{X-mm4D(CpHHfPp~Urh?tel3TT?LRyA)6m!v*|MQxL}jlUth47Uc0G
      z{FqcFaTY((On2cayu(q9?PwT3#m`t8`&gqtXGHkF6u%%%5&RPG^4ZQ&4=H?)*M45_
      GL;Vj|ig?NZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EU2oe|7=BLT)@|agTSvdPmUYl=Nt!K;jSia8wF@ovXiHhMz%IS?v@>$-%5gu$
      z{{SwK5CfqJ2{8>p#)br3alyafk073NoDNc#NnF@IKIc8p`#kU0AAddl1;8cTF_99u
      z@}aZi?3J3kuD@A|<X%*&@-<hF+`yk$3_|y#z>genIoOd6>9-F|7y_rBb5kI_?uG)w
      z7U;g_`ffBMFqm6XS4y5kS8Gv7k7YYw6EG^ly38PrtOXO6z`!Av`C2aoj#}tKw?N;L
      z>&unx#$6d!ox7eC=wAxzj#qO+SN*p)jp&}+6qwSE|F6n2nfXpbV<(6U^irYJaUvZ@
      zFIHu^5rhr7E^xXn!P$*Ua)*&C#W9^%>vF!9p_ma1Cvi&P*rtqB)GI+_EAV+PaQ*q$
      zlX`A;0F*Nr!)X&Ql1L&=ou(GXaVF+aaY7lb22EEbpDE1c?F?SVSrZciClffgBiEy;
      zY+5*n^OQpwE0j@lo7;}JkFyX44S{p9o{kiB@+jN3ayN#&g#so8dI+Z((RVJNRIJY^
      zRN#Vzizo@4IFJRqvE>Pj9^yK_%i>cGFIjjMmj$v7mZ4V-YOdTB7|PkP(~?TzEoPc!
      z>q$C%4OdM}vEp=5bevjv9d8hc)KxjgaqMri*FdX*%lv0i#+xRtu_+Q^)!Z!1;5r+j
      zDWhd))2-{x{g6`Wzse&<%-2lJk+tTeJIwYY8TyVlABI8Lg9@9+_B^@ic;msw27xn}
      zMOM8QEWC|HR<vr=inHBh$rsxmG*tCo80@OHDz`&&VAsS=fwKuEH=OnTD9rEG<yIVy
      zF5M2yOFRt@ZxD_ScEOos)(;d7TU3dmd0k*QX&xt<wXA2v`J};N9NGApXM~BJSqrwq
      zx?FJ8oay^#K3-Ic1uWb5Wmxf?W>eC7_`jy6G0s{|bM^{8oML>dKNCIN>E-G@r1Va<
      zF!>mn!sw4U@`&3h^znUEAAQV=pCE%zag2N8u{n;TpMO9WC-8!X&tiZMQd|#Ws15%o
      zt-EMt7baU6UM~KQxni+}(ZUZn@)KT~;W{^M6h@4(7K$TAk)Kyuxbg(kDLlZy%Fmd+
      z(|_YJ-n!7j{BM~3^$~%)aT!yv+a#w+6Znj~pOfT$68e(lzap*sB=QBRe9eY?fC+rV
      zTi@a;9<ubl!y>-df@XA7>}P^(yn`j}rGjOw(8~};@h+{>#2LgYV`dQLIBsDLX~R&1
      bfc90gF!)uxZgZVN4e#@-riIGE2S(4|=iS{9
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYi}Dx6g^|F<HX)JB_&DI1d>7@w&TQ5N}zRVN!$cB#BQ3nhVp7Q&LrJxy=&H+
      z2mc4DpDVR44+#*U3W1Q25J(6RNC?EQK%Ch%DUPE`eDHea&V8JF?&GV!Kl~WL(^!im
      zB5?Yqxn=I;8rzn$k@Mw_pDXh-UG**3IbM;TZ&gjZ=x)iHbXwv#G=brV*a<|}EKfif
      z0$t}V$MP=-45Sv6NzOJIXxaA|FK?tP0$RaclL<tT)Ded+(7%sny3zxIgF0g966js9
      z99i0|txB(KuG&(dZ^0$bis@PE-V$p54XYt=CJ6lha?BH#W7Y!C9k2y@n4b(dA{a9`
      zEJ|<P^=fiWV6>Hhx$WoV7J18se9o$KK3z#Ll_4ERF)VOsL;8yGf?KP*4&MbXKHR)B
      zoB1{e`2-%rXdI6dNJo*{RdtNvm_Ro%6iiPt_R&<j(|_=mPvS|Oh~qd*+2J<O&~Xx{
      zSU!3ynj2O%5H7k6OZ5^<)N-9uv@E(7sZcJ{Ix-k%qtNV<O9;_a+E6J>=$J%KAX#I7
      z*k!k3$!&qblo28f+$^yO>?d31d)U#>#BrK&f_kYSyRSOVsJ0RB_FzhBJ;zqs)e4}f
      zfM<1_0}G$rVx+QLRAB`U|EC%u>JZ)wIxZ;Os(@{oCh#I=;+Q6x9Xwt2Et_=6hK>R*
      zu?uKiV)ZLlW7D+%<!a7zYXT?3z-@ioUcS6xC@cbVI$pxd#JZ;yjar=<jO^nmEGg$N
      zj(L(AkP%F#;rP;XOncVzT(27oWXiB@xnbI4?)rK|`Ux0Fs?TK|i@3sBPy=2tHya$5
      zY>TYGRr!YJZmV(3w<@+r8ppE0i4Klt%r!O4s%d6-s<Iw-Pb?TDCKGOv{YQ%>W&<7T
      z?BG4TQLid+q*E`Xg*{lS)>+yIvBJvpq3&{{M1!4ks?&Zy?Chw-ZXz^JEW4XtRnA#z
      zZ}mRdwv&np0o`yM=@o3V(U8<0*nbCWV=Q}=dtC6xoyf1c#nDYk4^LMR2_(tP_&p>t
      zBX@D&HpLP2@_R6N`izF3BY`h)h_bOz9gm=oHz0|_cr<XIL_Y&WcpkuD=w3`xTLtwp
      z<4qhXX7A%>wuzC_#0Pjn;G8z3-N)FFmgPMq&_wnQp1O-?vqM@F&rii}AsN0*#j><J
      zpSgnr@8jZBtUnfc52Klh{#X;Ux6ohu2*$O(SMH%W(M0J}7@yoGf-by?>sV@KGan%S
      zlG3l4%{R>OTjKl<Blw;h<OiI^kC?_!n8DAO!!MZU`7(aRRs2RTzheb|qK-fC4*m+5
      zSR#qcY?lcSW$LP^HY#{Eh+4#JxJC{JF^kvn1~e{~C{cBh(`gL1PAl~B7T!iw)6{^{
      a$8~zv_^+_9@En1ORsO3fRt2qU-Twe+W&rE}
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8TXz#x6#h;!>7?z*CA5VA;Zm@+N!kD+0>MI!R0>VF6oY`bX*#r1l9@U)X@Mt~
      zT=dnod{7@;`qWo_DWXdjzTjH^0sn%(Lj2Cmq$D&|S5`9Tvd_2o{`PnF<d469ehlCs
      zmQ+LpcFgOG`mLP1WLmR1&$#8~F7s!s;+eLkLJ`>BY%n(MdX8QR_XRpmn3m~{3iJ+6
      zO1oTDC(M-R5G_Ac7ElWIjM0TCIyJ=5A+T}Mw2V@{Hf=bU_35f1keIY9dbO-Orksb1
      ziZ^Gv0x2JLo$&I6xAdA1vBtT;rdh+2xfJZ$f^8X=CvY;1QeX0N#v+$;L87PSI6t)3
      z+1VC=d>6K$S4B_AO0F%AhCXZ+=%o88yY5sNU(aBG9nf=rdfupbc@;^4-OcR!^tZa~
      z0!yS}CsG1ih&XOn>aH=<l+(TtyM?4y5E2#h(-qhml&NjtH0$tmhh7Bs{wEhScEj`%
      z0jOX5Fgby4y*^tbt&^rpys^RSEr<c{`L>HgZC6#iBCy%7bKNtmxih*uSJW4}Fn}Sc
      zt+YUNaHt$dma-^O7Tp-Z0TnqateND%v&IW>NFdH+%X+oW8V$5l@Y=-UI4l6^^@xVo
      zag<&c>P+xx^YM^`wWr(2KtdhYkjDwe?V5KO3iFtd%cB}j;uMKqlp*puY-{MqXP{tL
      zs}vG1YQ7t9;w=>gO6@sA&-XQ)#yGPzJ;TvG+Y#t%L7E8HiE{>LRZN7O<$OPlT@B}?
      zuoa7!N*We5lyF`^ozvYC*Zjb*QEOF}{2+Tm+d78(BwuACVergrOTbifT`5Lk^2<<!
      z&a~R8hnFlAnK2^}F&RN%*BUpW`dWL;?S)34$*=W%Vr|*lIUgl#y6JR-rQmquHikMM
      zW$X9|(<+!s%CC^Tf#;0d)3)x+_?Nn<Tl%cwXsCe6?4mFWb;scaYG=g@+9=?9K)%Nt
      z8fG!a{0Vo#aB8~jgTA}-OP0~B0|~R*RhU}z=8YQLQ;^`gK3K#XK}TAp{zag;>}nEO
      zpeyKy<ECu;8)a(^=oyiW2xt=)V=7d2*EL)fjP7vr#r3=6^F#a3*p7L}wmiLBv=<H8
      zY63J~ll8V#)CCUx8)(^ZJd>}Z7a{xFZzy}&pQC)80t!cb!|_+;Y!nfGfR1$LA>u!B
      z6k*eljYF=Uq~$4ebJQ1DLBmU&(H<MHkr+MLgv}w=13ne*^^0QWDS9$1NR)<u!?v#x
      zAAW*u#q95hr&qAOnEioPfuDZFIWBTmBIX79x`+fWVJj|U2j0ORlzso{0D0AaKXzd^
      z{Y7Z82YdPK=3YPcG0P<O<K-YG@g?US^zhv;7`XZngT?6RGKSKrL&ue*lE^&5a0JI=
      z*<|b~;>p-DVu@Fi$_ie)axW@U>Brwc`_n&=`F{s8@<4V4$9}~~DSAZV@Qp_p6LhhR
      zp5b048GD4c1)gAJ>YgIxY*OHxXMYV#Mxs9R<Kz>(TyYrWdX{X=Aq5i$I6sCeD`uep
      zn|v)m=X@RxKOXA*+{Gfk;PYE7`K;X`C(NC^UgT4bE^)*Li?1+6hGh+MWVuY=2{L*G
      z?~>;f|2=FVlQA~?#%^JCx3s$J@WpkNcu{)H_$UfKq1`oH=h^q@PpT&H^*%?z-Ur<4
      zk$)6|3gI@NQZ>n+@ZlsiV-!Ux8>l8r)s%c{0<rA!C3}|+Kjo2o=)`@d`GBE+M!|gE
      xB$Q+*6a~GcZk{eWDb$;!OA2KJYLrZrV~dU>By)k!1V<m!(pBQ5Q(#ev{{tk2s%iiL
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_h3wTuJnSTG1Gjry062j#m!(<?UU=j!cgi#V2C0sND0SOlYyJnJ^gu%&7m`os8
      zwW~|jMpw74twmO@+PD}itr)@9TQ7pt>vpwnyW8$=celG$YcF=~J$=7(W+n;AR`z+S
      z&&m1EfBnAqd%w#+oc+Vo&jOgQrWw!_Chv&sigZ_X?v5whsxq<eOx4CrJQ2^tW1R+c
      zg<=`6N<=uiws}XaC8OY85>Li6wF(7g<(m}rWvOV)hXQy_xZqY8vpSxPHFUK%$I=@j
      z&54-8xYenaNMchY9hdKHr=Hm!?^GyR{eMePqfiu0M|N{Xb1b@n(kWbBHgZ8@tgStk
      z%+%D^+hbLc-I=N@(vgns@s`e-k<+=|itdg`G8#+Q)R)(LF&5(uj8m92LX_;zCMLjA
      za7EJT$Q}i4+cF<6K)}Exg|Rk5Lyt5u89|EP7R#(mB{OScnKT9A_GRUR@(mfO@gan%
      z2Bs)X$Zs}e+(ap+DR{Zx(#{qtYC~_!J;TI>m`R(YT3b6~98h-mMJCFm+trflN@hgX
      z3KO$2hnonV%eF_-l*e1PZCO44E8ipn%r#Mkc?!N38QmO@X0|IB_LTB^KNeu2fs1Lc
      z5f}}D)5Ic#75qt>irtNwR0oA9TUlSeQjWOP#9~zQU^yatf?l?)yq<DXp2;Ikm9s1-
      zbn_whs!d`1AdGo4bA(KrGIEO{;*n4O&P*hoS(`=6-Q3mM8cS2p_MDL>4(>g~1YGIv
      zh<C>l*AV-T6ooBF#FG3QOGbHe3!i1=IW5HFvRut7*!U+1JNj7;i-$SoP$fuNLNM&8
      zoIV@>|7U&FVO!-it+kzhy2%bLLzJ}+wp?j)OO)TrcB|9&v~;D@Bq&jG2?zN0$Xf`f
      zu;I@yU3t9^3LiJI7VBtSg3`d_HmA}QZ00D(T_r(eS*pDwm9ztfDCb+z-4g4_#8XLz
      zyk@Q&!SK3BR3ey6$<Os6idF+eW9o?c!%s2M25}{^7*D5@=i-1JRvQ@|l5LCuJCHDN
      z{jiYhjG1T`|96vdZJF&Jq!>!#$z72|JX-4beQ9S$tR>zWk41fmV5bCP;yuv;z=_`3
      zV{B*7V3&a|g$wLxV@LhEbS!dxeI}NUWKwApyFqswLx}~-`Xrqu*+Nx=Imt(^p#mA)
      zVB!<Fk-9P#Il5Y-$RP11gPTo!5`W2H(3(mlQj&j|OUg)Y8NAiRUy07Tut%Wzl!@D9
      zw!ekhW?d?t%q(U99q2LeX?laLhz+MuEz&|oOx%gP$iH~!>R5)~&hA@f(cLEQkufvg
      zxp{j$6YK1Vw8T94j6z{DRob3P$4YloZ+iK(k?~}>aTyqNu>oI#iR8LLS+bbZVRn;O
      z0cT_s=(so$>EvP~>pxu4!pN!OjuF<SW4q$1u1+zApmV^)K^wY`bgU&7C3Mnz*u)XR
      z%)?%LIu*=Xuu+1Z%z4<v7esSkyt7VRHj-vY^<`(R5O<a=vp%((ZDIH^6OW>gu(uQT
      z#D>(Scx*R$Lo*GAuJx=6SRW)}HC}uX#|=DA6l@SADdtB_)JjUyx5wM)4Fxng^-U$B
      zSK8m=x;)kvRMJ_39>)pA?6#?y^FJ})Nip9kZpG9=duH$z6JN~{R*H`tVP))Dq2zN4
      zrCB1{@aIXAV|<NW$+Sn(^gmCt_yP|UD^OIenP!l9yN=9ild@t(A|~~QLhbp4n2{99
      zuBXdHaoWTgyyV2L<*Ak~XX8-T(S{{~+;EM7Z;cjq8Z&zmv1o3VA7}B3iErRlg;365
      z!}iOG;m7Ov2Lo@AqGGmTb8@?x_%{Ag!6FRHW37>{1g(|I<bfy|P2R!%-@@AlzB5{Z
      zm7QbapM=m7ak4%2EYG_AcnjY%@z0`zurz;OK~&5W90_esUixK0ha{a*ii(_EBztEL
      zvQb@qIH2O{X(}xq7D?OkIRsso>SV#3N-k|q?P8FebsnU!!<@o@n>c~%d~};1n|KHB
      zIyA^}oo<wix8g~5)T5961V1(KKI_Z8kJ%$8K8BgXsGpno1wP<byXdSNQftI>N#HF1
      z2X~T4`@i^=fe&+g*#UG-B(vSbuf-e%k!A)qt%E8T5Bj?!2Q$3HJ!W{X{g%8t9FDpe
      zeVpl;VF-`lI<ib@rYevSB|&Djoz2KOwq^0AcxP86k;8IjI@L~Pl-pE>@;Lt25ZM)P
      zv$OEZc*2h8Ge@J{xzlRA%BM_2`B@&0;CJr43+v*MPE!@CB1WZ^sr2rMln|vO2{vp&
      zjZYP;afTX8`i$86TscgotMLkL=RuE;I<|h>N6ir9MwMl%iRuEHiWqOKAI#r57w<?!
      zTB{^cZ>*;(0a0agwk#NB3KJ4d?2X2mb%gJvMzU35#z<MtRh_QmYfN>eTVk{vU8E>~
      z$($>&VH!v_-b#UDws?!=UxQy4^R4)HRXhdHm)OwY<6j@&Al-Fb4nJF_Gl}m)eg#m3
      zG0q0s3T{;dD68TGimTm~{g_y71dM)^Yz~G!?3^C<7KDA$;4`Z!?6>>OUOXLeTjs)W
      zp;dT{dp^R)%SZN~#^)wJ(kIVNmhS*&RC2!8@>!meew16DfZ=@iqp~UN;SrXpH-)_c
      z{Y8WVy5+gea#?1R92Px=`31N$?CHfASyx=zk4w15@+|4a{PWvern>j~)LxS&xBQ0(
      zR>->2KPi*t>7(!tpgow*_B8}+8$tXy#-Rxonh`_`rXYrLmaq#D=k09=u4OeEL6ZNc
      za5Fk^3(~k9ow$q1_H*dMe!joJ0`kk~#*^5CleiJj5U{hH{au!P|H2jjid*qR?8Sd^
      z-=8w0{}Me)!<}jz?zRnjw_`NaU<u`-`6RZ9k=bGuA?9c6GMb;PVQVSsNCs&w<EZ=!
      zF$T-2fg7gsVg*)`O}xM33XXcH)o*YmTVCq+A?n%kQNwp}6<dB@f?tq3HE~#s$FK^k
      zY4iZrpuwS(N^yT7;ZYi|xY|_`c8eAHkUd60j#Rza9&lOSg+d-+D<7ecth<0uUFC}?
      zskGd;S-RyN#sYUQ=2-68SrYJT3cqA0%M-OcHk;f$M9l3`d%cPS#^Hhcok_-!NtU}L
      zI%wbqjOVdO2*|?}<QRX>c$9+lp_Hj-37#O3CkWV+RPqG2;3;O2lQhj&X})J@zGrE+
      z=V`J&8u^<zfYY{-S{)d2M#51WXrj!Pn2SbYOH3oKebhFMP6-~gP2-{*57-8AQ<{5h
      z@D0jzm;7=;BZWvWF@u-j^KzF3{~*B^A3P;^hm8_(ldyNt0JbNG{k^z@eZ`i4Vc4|H
      zV(&qWwY;+})AlTHFXjdG({@)DXLf}wI;Z6ozw{5a2%R=$c@AS9CmcbA<=%%Pc0?_2
      zD0+k*YX^*I*yu%(<=35+VZ-u<J$wDi@>{+mFfBvGJvflGj6suJMK1$>OhDeDlJ8Qj
      zpI{Q+XL$J;Dwx6N;{!7MLxS}ytS4g=_`TG)xPzW@pK{|MnSGS=`;}>%W3K~D-W;cJ
      zHF+=QIK}mjIZoMz5p$eEqvJDdZQ!WO?%Rk>l*dg%Y-XQ9xsEd`h&c*r{4H#GDdS<=
      zSU!5s=WRdoQ{Fw~_-gu$7;BqjEXE6idogHM%r23j=h9E&+Ccy$$U~Lc!q++z^THSA
      zg)httUziuZFfV*zR`>w^0@smoO*~HLz7a_uY7yHW_S_QOkK$lOKU(?`*P{=i=qre9
      z8J7$`g^uT>d(BC7HdM~($DYbyKW+-^Ocb|-UA<Ur>0;Vxb1deJy<xZIK8f2OfM4E!
      z{Q%sS-nZ9KmSMRL4}9Np<rZ2l?a;t!`;fn}51|lFq_wTC7GtccMv1CnF|>rYqK~0M
      zUB=&JFUKWn8Gj*Lfu-sS)T;(ut=3|TT8C@d*Q(ZIhiXIz=j>9OY~a>A3NlXJ%QL7d
      z{+3o^IYKDz!)JNwOh)X_;eI;de7e!+`K{v;T5um*E=IqJbi<j1zm|@-pDlwn{JT-W
      zoRtMLZ37lO0Dq8x#fO7A495p;I1UMpm!2n%!NUVT$im2VHjHNq1}Wp9*9Mo06Tuxs
      zFo9ClP6U(uaWjPlDvd=dgC%MgmaChvTHTBd>XX>az9w}GE23M8V44ViY6yDiJbLLY
      zdM@TT2fb3#&p~evy~#mu0mG$(-ts(pi*ZpNy`v-1<9wa}1B)E=_J1^b5AB01*e85^
      za1em$Vs3RW0l1F<e3k&*PXH*EdH|JbKdRJ&wqg~|VR^+C<rSNkSIo*P7C`SP0{3JE
      zo=e{;%K6UWkMf*BNhga(t790W9>rw!7^bQ(VupGgW$O443Fqb|oST(!Dr+|f`Wc+(
      zKp&9%!@1tguvlP6ji?RjoYQb=eKsZaXfWzZG}Q*fx-gV=m#ZSwkH0^G$0`V?ybq!z
      zM1JWZy~)z;$(Ad0XyAJxJ=zxv>mhzQy*hipNiV1A90#tYd{EER0x!U;z6QTK&3^?r
      z!yo)#qJA&)=kHgsSiOc7>UFGAZ(yx@6YJGm*rvXNh<e-B-HCS5yzbGwb*{_mK8eBf
      zOLWEp7Ay5ErNn7xFqb~TmWvL`TjK~k-p}H(Z73eK1!28_`dj+B08FJzx<WYsqG85o
      zOFuO5wx#P$eU@I!(u7?^L52i|XGg;D4q<qgFuX??evU%*3lyslFkXF#i`1_%Tm6Rd
      z?6;^@zr!+C11mL!^_qrjw1OcpY|F#2Ef2${EDVJ#NE{f7Im>}zJaf*ISs40rxrVX8
      zVD<rea=E5}xklnObFma?vvg+bb}1ArH;e0DTw@mqo`qqr<>mG52m+S(B%a!bC6;|J
      zh>|vp{M9G%bhR(wBc{&;Sl#PQ^vAH@N&62WXs7n+cK#o;*E8U(Ju>j{&`fU^U)m&i
      zv;e$(7ip6*PAfr3n}Tw!6brOzsMan-oi+<=w2QD#tHefaF1Be^Xw~K+r7b|Wwh*7-
      z{M)rlZR~Dvw9O~Xo_z7ulTVmE`Gnb%tB}!?t&odY);&)Y-K;{oS@BBTpT)E(8NkC@
      zzaC#B1-;nF-mf!z_|VFFTB>G0>GutmfzA!>G-)U~eklQZagA!2^8(K9gEi-QoUPUa
      zdhirp*3i()0-58d@R~xl`%MjDmlOr3@LkTRJf8QkSv(fnO1kqEFtjTP*HxIHtwO1`
      z7PGZ=SfpKz%d|!thASyH56@F*sa-S56><qL8sDdI2CDG`UN{O^Wt#Xm{5w5qHrqdB
      zpN>UT>_4cK_|$*$I&w}0fgf?5oUo-LcoILV4QYoY%2Y5+(4G46KcY;@lX$NpK>zw#
      ztsQ3AeFE=E%n`E4EctX>u9E0U{8H+2zK+5b>f?mLz%o}9(purxw!^Q*QK%&l(2|&{
      z?Zhmt3m0p<$dEl~)NUX<ZXBZimc05~vg%XdYzgjWsU#Ia0TsNQRpf7}^u@I4?`);(
      zSaAQIEjLI1Fj9RL%&Nar)E~&Hud4My-KuroMK%ZfhT#yht*w*-@d^>IK^)E(7XFrm
      z5=<o}ow!@aZ)o=rp3e}TdkN2dDAo=To<n5D5lq(}Mw#{qs<dNRqCJXQ?QyKqj$^C#
      z1g_Ukpk3=90@=<yWIOYa?aV`VeHOA}p6)=lDi7J#JY*iF6EepQo+E^k-m5D5m8*fb
      zy9t#Q!7nRsiT;f8^{X+xn81+<L;EK65j8G%$v@2I)m+JcjE44gvg|Zt#Tlyl5=`wZ
      z#%SN7x-Zia&S0|k3e|p<YQKgV+UvMbdxNUKLgzS*Ioh{Tsl92d>J$N0w4zfRR^?T#
      XQYEyy#<MF_NKK)Ym6|FJs7n6`4g*xE
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      qscxA$KqCZ@?9&4o#>U9N$iNJAA_D^>(0Wz|HV}(}9Y``UZ~y>Y|1{PB
      
      literal 0
      HcmV?d00001
      
      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
      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
      MM<&7Vxjz8^1;o(1i~s-t
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4T}vB56g@YIS+m_}wAOE}A3-#tQIx)<NJ~%<f(lBCkCS!Kk#!@xYt=v07he<<
      zL7_jOKdN|d47RwD$TB-KmvhfKb7ubhefSMv8F>o{!s@a5sV<7)x$zH+k-mtEKLT}n
      zst<NNW&Enq=lN!#Vtic=w2JD1g%lwtokdS^-*)X-yOD)7VKl}k92?5zwo5`fIx=B?
      zi7;J>0bdK382;7xCR!uR%)SFZS0$v%^#h#&A?v_Gr;Q}K9b}LrBxeQCE$7%eJE`el
      zPt`n4=&jUU<yBQ+WZx{N#3<oQd)XHGh;vt>V)m65&euJCqW!2e7iX8WN)`qQ3vC1X
      zU)jb0hUK6mgl{b*W8uc7UtCFynk^EB-$oJa-TGPJ>J1|yetIpiDE0}?rtj;Z?5Qx+
      zp@k{JWZQG`mBim1Ciqg5JUT$RoZKzH;slQjY_5Lb)hh3$Vi)G`;1urBb<@D~@ITEM
      z&@c4z+L1MPeMBG6>>d40hVMu<7_yHT*e~3|nZL)-HG>lPM{?C5>3;?`Nq{UyF~&3r
      Rj5qL~*|3NZf0LL7o&ZsC>?QyJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb_h33yc3b^ebuqY<MA2*ChC5=#JsMiK%;u#pG`gk;HPGXi0-lQ7aeNrOi->S%;y
      zlQwOd;v}YxQ^&O-aU92Pa2sbKu|}2`jAI8<yII;KcK5UiS-bCTlG^>xeQ(~3G-LbA
      z_ZdFv-S_UjXFvZr_v*!0pS%EIgWMKCiD1R?$ce~!^T=2%G0>d0$J5P+Q<33eJGws}
      zi6wes_E-Qu!Qz5tJCoziY?+|8VD@07w|#s#l8D+V!R!$`Zuh0_Xj?L#<a_0AUEdrT
      zOE;S@t%A9ui5ZJ#M`I(A-nh3ZFl47wvAz+(!rb<bWFo!C`A#C`W64xh#TUp?LB$D5
      z-x29cCsVfzmYQADG*$WCdG4O$2oOsqy3>(Vnl!oumiMte5fudEv4q`e#|8#DA4o@f
      zcSc5RXVe|LgCnzG=V*Vw>b<0pWw$*rWGB*OH-A-RWW-LT$!}zrt14C4+D8_#^fp21
      z+WH=WuPqt1gIJ2?0W71PjOF4HI;$;C0v1-_Z8S;L9*L#w=#DH&s*oO~tw`kPEC^Ov
      zsKy-b-%SPfjt=$ODY__5iK})e`y%n4NGhi9?#HsNt`K!=3w3CZ+eU}_o**fQEv!KU
      z?fV8Rj~Y$VgE309vXJ1+h@*9UjF_RK7R+)Fq7)mH_tkIAyQ{t@fK7r;1u;64?JD<!
      zny4*hM;JFjY{X_|a*g1sA_~qV(OTc5*4|=aE-H1@YGJn8efEHzR=U~Hs9jrMXoqZY
      z=*H_TEW+Xdb`;A!cVQ6Q(WcVXFxV5!U3#xOon-j?*LHN(cPO3fEi6Qpj=C&_P{ptw
      z=TC<lv}UzW_wqwxbcht_qadYKS|+3!LS5?U0~We*keoQVE7>=yF(9Zbrbu?WwHym8
      za2Q7dxLHtL;DPKq3rBH_LwSEHIn1nJ!n*cuHo?BH_c#%x)iK(%PXWABFfW%DU5T_k
      zVAFHA;@uXGVLy{9mPq$R;-e<ob1Pk%oR6j=W9l6S+}f@#;~0ZZ*Aq(yi8-xZj3Tw6
      zZDF2c%>fJZQKfc?SvZc{m`F<HkOyN2jZK$0K{JyY=^2|2SxD&KO5NM-qNMH&fL>f(
      zV6dH$sHUreM*Dc5J*)#k$?$spwSj&eAg~mXpEI;*(AzVj%8XkGpgf2>@SXrpW{s$*
      zoYmXHuj1EepAkFlLihYUeH`p|P~g`sY{fg&*YC6Nn|ME?Nn^;^U|H6t)4(?y?7IIH
      zJ`lj2w0?oYhtjclEFH56bRWcr2-0dOhGwrFb%@_oBrCI|i@LHf?MN<Lt6J$7iaz3?
      zw0ifqE&L8X%tAnQ+E{H^6cySRx?%4YG533G03Q)7E70Nwm9;H7G@MK@X@a;L_gMI-
      z0{5)gNPEJRIrYfzS(t@#9o=ssh;rgaI)5k2b)opvi4!}mcrp@g8;r%HDVx!;qKJj^
      zE1%=QPgr;mpL9~+g;>`0V#%Ea;0k;Sj|A{=F@SQ{SonR-zqz!X`=u>8nqY9B6NCz^
      z<g^oiAZRL>nu)XdP_1%&Mx}pD(Wt8ku4W|;;!%7~@$&P6?M19IlS^x%v9qKcqn)?#
      zMSO_?ld^~7kv`%F1?ak^aGR>e+Q2mIXKhO*lSIx6!fnn=<$a#R7QY?=ZjUkaSg!j<
      z<B_zzlSS&b{mBs~h{AxMyz9FHc*gaJ1Cw4$(4I;qQ{{M;NJTHiqlq=?<r*o=HN=8=
      z8qcX|zD&=!IX(?|O|5^y!dDES(xHcA(e$8(>SYTRur!JP$ij<wiD<@YBU=`$1P6<l
      zJDaA)Tqcq7+c`IRr(wp7OjVv=v+#9%gQ!QIIb7J+-%rdE9D3{79#w=87D@k@T7WIq
      zaFTDcM~9<yiQ9|@@g2Mpz{|9?#`1KOu<&R2a|a+*VFGVHnCPcg-T#*s{tACh$fIU?
      zh7qiB{i8^2R=ZU(`<`ux6~4Y}VITGf@pt%s0N)cV@Wja@Y2gZfKrHGTjHHZP8KZ04
      zRL@y`S<vFvoS!@(B-*I6_or+&yzD=_+4AdVHXq9U?=5@_HQK5DqlF*iC!C6mYZItC
      z?O}^KG&-bPbj80~_-9>Vrno9^>OU;}n@(9VR@YSekg+rylIhO1PY_$1vn@rtzBvhO
      ztlvEt8MccgbRiP{kA?rm&nSrF(Oimd`sMjKF!2iu|EFL-FE+9x9(U_E8<JR5jr5wu
      zcoHXqyAmU@sGVDs>w?s|jt+U=KER%cM}fHAS|O$44+u|c)2dGqn^;n&DLjiFaI%Cl
      zNVz4mBuEMQRV}h3or9HiYx6py9LFL!YfvtTPm5*YKk;8wi-<VAViggHF(i>`heAhB
      zerBP~i@F?dPMr`edL5i)prq`f<O$me6cuQZB_S1PHbXoyU`L%9HQEwOYNXb&N1K@x
      z+&JCQijU16@K0k}M4eUHN@s}CF-v86KzMYUR@L5gqa`bZAyY+%WFzo^QHrNf_S{8E
      zL{>uOxXO~%x?PhqyM0GAYDaZ)jU{WdDBi^r`nX0w*pdcmWCRSGT(%Q^wqp+Rt1V&=
      z<Lje5*b%B^oh8kB2+=yo28obXV$(q-c3gk;37UUNs~J-2LUONp16_&25mk$Qi+QS4
      z3eBz**&{@LPg{TqJRb^UFbC9LoK?s><hp?HEI!ABO%t1zY!@EPG>3Mwp^1{^w1&{5
      z&^k+6gh#X+^r&#Rv|G}lme(|Mx_uUIbK9V^otAXzthP(uEUz7O?nX;?%O0kKH|I3K
      zZd+cJUqPI{TzBoWWWVmx(`QFAWe=oOTAevyNq3fB_V&SPQh7teav_H->B-`RbK${S
      zFE?9QU{t{?JU7TKmfR{lez9RTC5l#bLdC1*Y<dXp@@`A6l`VvSttZZU=Wxk`YKOBV
      zY7qr`1!aTo^-8ciIhyLTJ7RiE5t`YXty7OM)4LMv$IVrUO)pfr%kqx!Y_#$|Vg(Vm
      zls|r+%c18V{)Tql=E<JhJlW8gC(rKY$<w@f^6+P#Jo=d@jlpM$9<0riM{Pder$=|7
      za<SgI@I6GTOHf0uwS3#ar~aE)B^lJ6MZk9szS1vY<#~QA!D{|4GfS?)Rptx$wgzk6
      z?blKK5`GVa8%ifppW75Pp9i@)W;QN#mZ1?%T&}vVLo<meu?Ck|FMK2iEDksLCb2&J
      z6gD0SPvY$pxHeonftDQgDy{^ENPRbTOi;t5;j-M>?{Qh|av@E<`JfC7^knGr>oT?n
      z7KI<jw#%49hTD%!V&??5>6b5%g=2v^hU^%H9w)oo4J(U8xYcDP*oAhN>}js{b1uB{
      zE~V3P2Fq98#X)CO-{PBnIu7}K$MkjZ*tWV;pYu2^G&@g`!ks*FeUM^*hz2@sIBs&N
      zddh{F$Tu1(!p00G+_eUKC}Ao0&Bb1heEiRr%a!aF>Z9JO31@Iq)uAc$lwfzmWt3Hx
      zKh|&&w`TCJ$2?IS8{f~^JHvQ8%L|5&<$1Ek6+`cq79v6hKJ=o`VI&`*XUa(F3RP6C
      z`ya&o8ht*Didy~lDO81<LcWl{rZ$7Y!{_j{PDdZY5}oF<yy-ZnA8@BvySsEz25L(~
      zMPFS)BTA>{5j2@^k05VHl&tc0M7cw0?{If)$<dy<QfU=u=R17fxZu0^9%Il6mkwUb
      z0FUz^GQm8{AdD%r;7N4h8Qg?tX|0PG!3(^ZxP*Ifna9$X@L7C~vtP$I@eNY?Q+yvU
      z8*6WK?C3fD3Vwxd)zG_w6i4dLE2NgD({)5_H@R^Iqa67;=9Lato#3pG`;sQ>KS8Pi
      zerar=W@8!L&VYDtOPPj+Iwj<bR+mlTH+-lrtF3DYhkQ@qw`NAhkBB2bW={PC%kfhq
      zYo|lgleN*vrLr~}xm4ChBbUnBXf)A0ZZw+sNoy(YV(6ApQeI*eNc~ODC?a-J&eIoh
      zcS~7ySq8s*26I%6d#T1bROs-&tVV%+jRKBFfg&0$HIn~~$oq5p?iaMtt5`+B!y?!!
      zB}Tgg4sS~9AXulTU8kpAr>9+~r(LJ3-7H+kOgc*)!mghDTLyFL<4(>n9s-;Lc2VXB
      z_B2l6A;C5xvhRG|Gx&6iuXMBj9BQiRo~Q8Wk#J+kKZQRm!6ZK0{eHiM{B;k#_JeR~
      zX|*qdFXWIiOc;Swz%LdonT<-BgLzVkMKTX{QpNk~d1#gSXp;qb@wUs;au?&ck`nqU
      z{R9!agm`c*V_HFG5iK!^C#b~|R<bEK-k!u$jz*+jZZsNpadoeHqo%ed+GIR&4hs%{
      z5i8GP_EUKJNY#Z&Tzr-*o;Lv5at6z4G>0$or&E7I1k9Qz@YQ2#hq@wjrBC3GIT`Xl
      zM*h6(WxdO0WQ$flc^mJrR-;<hV2RYzw+&b?O}tEB$9wH&?BTOpHt+)XYV^xS9OrmQ
      zHswY3uxFKFFAIm=EG)+$b9XVVvL4&<C$xo+uv^MZ)+`+IM$j{;>+vYpXilu6)~9!e
      z8yYhBb_RbjL7n;KZ&dlpp$z_ZZ~`4UkDC0JE%ay$J=uztven4wRM=InjD9S`5Ah>%
      z5<Tm>9CwnRatxCGPs25n_=jBSF%?^O@$YNxdGvyw&O!VWby0de8NVLAf0;>dFX`=j
      z6M8&OzaG7RpGog#(mV1d^my8H>7A#AHK(?O8yY9^-;I}8S2Fnd8B~NDGkBG)j<oo~
      z4O3FWKM43T5@_*P`!B(&_BT}fnle(6GdqKaA=HO5>1PNHFogP1D}xN97@Flcu9e%2
      zSPo!s@yxbGW;5j!1h>dsCZ3vqi%F_d!c3jaW19E~33FvWQ_#=0mS@AaNc@E}#ZOcG
      zF^WG<@y96s?G*nGihq*gzvnFyf3YWiH=|zhoz0<IKPQY6YNsg7orY=HS?1X+;MpwT
      z*(~7NtVHia9Q!bd1B7f~j81)EZ$s0RRF|N|SM9rm-fG{J)CuTN4pwr&VsSx%G*G&^
      z{2Ufn2SVirNUO_2<yRXNEtgO^7d`aa55v0YD#nEWLUn+6%D|Zy79S&|o~%x1q)8Jf
      zr_eTbL6CcxlON^Z*Y3r9xsTSpAFJgIn&d1t%E!>o=YIJ(j>!Xv%7gqv%O{bNhjBt4
      zF-Ex6QN=UDn5=gLXUsK%pX)aegG-5KF}a!;<zoo-$R>F^17|f6Y%@n?MCEq5hPWIc
      z7A-fpT+XoKk;gTgo;kEZJ=yr25NCsp7p3JKW;IU9R>9tI)8oPx*ekL=Rh0(G$gT-C
      zb2_+w0{v!i!vt-wU-nMmUNg990{7*n6v8rca6%3<pE7bJBS$qB<Xt(_InX?XkUYt3
      zcp6v91qS6sn(R52-sh>x3)m}P!C|>X(_N<7zKXQG$n)My#%xYke9|-9Nv|xQbj=nb
      zoNJbqa{VDW#uCg%NRM}JmL2E2HYByG=t};2{?xs+O4i>iS4~P^PF~ZY%eROe-=?d-
      zL%Cn(Wy32*7U%d;>&a5fLf~}hwPJHb@Fi;SRKdTD4f3h&+eXR~<M>fNj|2Y?9e~IJ
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8BH5IwV9x}_`?s;Gd)s;KSyQAv2im?*)dNuwl?M)7HBFL=#zx7oc&{ZGD_
      zNQ^%C1N>3OnQd!gwvtVD&di*dGc&ute*gFhU;}{%hp_e`{1^^f>6tdiEvtsMbr2iX
      z)#_|rfCraQ%W<BkpG@yXJQN<m89X7Zc5<xUIMr6iW=kj=gyK_ew0%a{Z{*24kvdVv
      zZsjw7+gy-pH@gIPJMOD83h;fDFwe_fpu-ijAYAe>gQB2CA0CPv>1d-~ot_-3WIsHN
      z6rtLQdtuZK6D|HY=-T%>CDijn{c}LsT}6bIJa4iw4?c)fKA{*slN%1DGqnkoV`cYj
      znAq1xN2#)eLZjK9!%f`sP$w+^_vAiqqehtJ`bnwJc*pc7Zh0?0O?v93mJR18Ge4G&
      z1ix*JO17ggO;zflF->Yx!UGFLoo`s+Kg;2VPnsb<C|ik^AU7^E8n8dZwi-NGa=&3N
      zczBLV@aP;1UpVTZDml3Pe#0N+Eqokc5$|xBBb%d2T)`51!n=xV+*i<b)^akm%t$n=
      zSivfHBHTc2tiH)s_~qa$D&Mh2_{`o&wU}l4nUX(Zjg<&@rgm7E+QCfe;9xz|xr=+E
      Lo=tHdO_crsfH1_L
      
      literal 0
      HcmV?d00001
      
      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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
      HKT-BS>8{X|
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY%}&BV6ot=}O0ggm{0B8GGyzO(+-Wc*qBdzlT&TgV1t&0CT2qSfEItDpR~Q#Q
      zfDdK7Q_z@TnoRGxbLP8e=JV_Q1Hd5)8We`D2j|%tnf;;gI%dd6q1g?4u35io3O>}J
      zG8F%J*q$pqE?o@q6XA)l#;{##%(*XI-s4_aEjJm|Gyk6Jh+#2>1;iOL4T4+_dMzH@
      zI4zem<Qjh4ahpycq@Fd^uq*luJM;8EX{*HNG>joX@B2x?knZrX9&qRJmWxg|r1T}*
      zvdXrMwVZ;1EODHXoX2d2*pn|Siz=6U4EnV{2-@5dGHi1CP6zVRD1tonw17etU5{3c
      zRE@Mk|9EA8g2ZdIuhXhW-6L`yBT0H~>Ou-jq{xpnGQ?mq(~NZol|H~Iyg<t)-^P`~
      x?%o8sG4&K8g3ibcr{t<5f%Ax5nV$J28(6_A5s5=n*Q2=xHmHhGcQaz;zX54rZPow)
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgr%Wl&^6g`ti(*!qtK%t?~1SlmjY0PT}s?>&5ieynlg2mPe)5OKGt9U}o3i12`
      zmiz>Z2#EzBz(*m@I0$7C305p-?m6T8JTw0B^V@d-w{b6ngh2Jked(TB(TNxIEG18s
      z)mH=G+VjKi3&)cun~%fDQ(hP}gTpX`l)#dXuzZ*P2c09?RRVLZ_HMgb7Z6Q>g?bo7
      z$_<p``XiZSEeOm%Y1nje8k!68-M!X<{j?o(wvpa%K5IPGACm$p_3BvC`0|j+x9nap
      zvSzp0jUvmIK~MGXGsn>D^%;;<;W2yagi3`2f(KsUsU3mO<>tSo`u|=PhvU}6=Q4*R
      z3I<kjk#m$QPL|qTGO&m_jW!G{VOgV+ft3lmYT)byZ5lX-Wr0Q83*@8Gpd*KEx8qaE
      z6+7&@zT*x(&3_-JRNspPYW8etXTJc-oaF8BrhTp<7X=p`fm|yb4ZCvR)AjOyf@?at
      zfYA&BIjs9`6v-%qI|9YORAtQc%R`An>*tZh8q$~}%aA27PoACPIr1}8+#p|=;(10<
      zP43WI#+FLPmO93kD$)wBRh*~2K=g^VbX3XwiZye6jCHd*#$|JRjG|dcjd8^+q{q1S
      zg+2*f=e`kl_!=p^VTW&#$2;ECdlc{iMSR2-eRd`}aRX&CW=AFNRU?yKB;vE1M0)lT
      bszj+6Z4;&Wy+)RRg<G^a@Gkgg-$m{hws6-J
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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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
      Olz&k}x~ZFC=zjsoux>8^
      
      literal 0
      HcmV?d00001
      
      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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
      ZiltPF(R?sSkt@cq)qiBjh7e<s`(Mfs&_w_M
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_u};G<5PdEXw`mC!#LU7_7Oc*Uk&r4OQDLdOo1SQkn^d*~<<}Va06wbX(u6Rw
      z`1zjh-o1C<`_C@`V_Zsf1jcLgW_HTIuksfaXcyEnY^+MPo*L)L-L${dSUWe_tHiOu
      zc{Qf2;i0GbnzA4;SekrcX|mZCj?1gj<6n;sj`i<vX97JRj0?}DC4r++#YoB*b)D1_
      znk*|8PM{&CuGo?b9|HZlV`gm0^RX^Um(jzj5=&aAchzDxG|6*vsWsk{mlz6M{}WbV
      v*oyqdjQ}>v7Xu;=egY;KCAtUfH5fO1zrjI;=-~A5COBh^S&2`Fi>Uhpb9iA_
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%T5A85Uk;~u&#&*D(b~V6ZPQwxGCxZK}}FhAS51_Wg<iNVRi?^&oUlJH1Pxc
      zC}Yn`B=MwknCYqRs;=&j&)0VV`&iQuW7z9kLu+J)kHWh*B_Bz%Ctb&^`GMOUbX*~;
      zL+;6qYc6|!xApYEH6$2vie)+$aT=XIw<Sa3w$W@c9Mu0Sc+3#Ls1h|@wjJRKc}l?6
      zcAF$CewXWDFbvEh!;mUR`3ymG29ijrXx@N^6d`rt@tc9$;X%vlIGiD0_if8*TY*sj
      z2-FdWLCUfxLI%C*4+5LlgsLw5nt4|ZLcOm%j|UaU3PT=hSYg=w(}bixT^iQOXq?s_
      zLrM9jsH9v+NE&IVL3H|^P=z|hH?X@gW?qo}iE_`Bh#^mRHWE7{$~g)+!a|f$S=!S?
      q>X2SWcyecq!j!5<9coD6GNKvZMJP_(EJjjGSf*F)o{`g4WWE4%ym#pU
      
      literal 0
      HcmV?d00001
      
      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
      zcmc&!+iuf95Iviln_wCe0wm=QDNWK81LCcSm(r+6X_1<c_f4`iF1{dpQ(EyGd<aNX
      zNIbwhABC7*8xcoAg(qa$J3BLH=IqR@zyJ916~IHZ4Wt-W5BU*4w!*izcVJ0zEUk%j
      z9joI9Zf`ntZMl6UJZT`qu(8;6r@!0n1l$!nCvQaH*xqXmVaT~cPW&;$qwZqlT$1{(
      z_U}`eO@_>vOU_W%Sj*u=uO|ayNw(Y*+q30UhHs4-^NZo37|G2<GNIU8NoIA;Pp65{
      zo{-kd{caMeYq9MJmjXnV1c^kJKh|ybNHa|1gER+p%q@Q`3P|I;i9D7W-u<^DH3xYx
      zTriPEPDy1G29_9#UE33TQ+FtWJ|8+lHN_usXTSqn?PFy|PVA6j?e8k1x)}P?V5GyT
      z`H0FJH<1b>X$~0LiEwAMlOa6~9ERnn*1!77kP@U_NrX!Dm&iyS90<w4TzY9}4ca}^
      zBUouPqj<?7%#%Yju?&x6moqQY>_9LSdb$D~TNSl3cOCAlqA-}xJx>H%4i7^S8fY;*
      z_}AM+iGE)#+@{v1=?{>ihdQk#>NBlMn@54{=SX@_Hl?k$*4rDkOfCBvW~-JvMX^;g
      zPEq<uwiGVXw~P#ZM}!)q1c57fg$il*BRnqQGVLf5S*jFWNj0nxT1i)NO=qs+I&SDl
      zRoo<GR$Ffo3&pWYyq9Pm8Sdb2%+R7$Ma#B6q4a@-h)zx`eNDlP9AXL#b*z#`9d8y~
      YoClvQ0H<(Ir&vRSR#l}Yz3a&T1Xn|3?f?J)
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TT|0O6#lkU0(Fs66s=dpA`rlccP(DA2v`KUJ>XMFSBRzwlWq}ziQ_Nu$p^=_
      zjyU6t<BT)<qa4pBtu`adLvqfZob#RU?0%acKX*O@7{g-?F^1k}=9al_lwR2Gx*^53
      zG&W?>F(y5~xMGVJnK2D<hNQ|e9Fub9)}9GVYG`Fh{fRD=UDsT51VgLbuuGXShSB^U
      z(2M1@qAiy;d|?){4BD3IWD1_ekoiaD)Y5GJzGsz-!j)8zPz9o3OV4LWM`~trL3rMD
      zMI*5&<c3!u(m`T4%cAsYY|7|RP^Kkq&s|=~GaLw$Tp<lwHz1_xuM1gcTJ{|pcHDMt
      zd5hugV5I*p8yT7QAIXscBRS0jh1`O}s1FcE8f^FaKD5FRpYRHz9Sny#G_)x%&C!m8
      z@{V!r2Up$+jt(49-YJewB$aoXqbrP^;YcBwKnwagx^b4FWl({4=51FzDi_y;zZ8lh
      zmG>;uSuuTEt?R+KQVK&~WYAr9ZjAQ7#V@-FjKa`xj!Je{R`d38oCk@p(=JW=W>GX`
      z6Hr`D;36(-xWq8LJJN6YH=i2E6<lTLvPiH}gkN%7q(z1&;qgaQwb!8x{b%kb@N5Ft
      zk=1a6&Z?PglOj0Aag(9@sqKrYmz%<OZ1?%{W`S5T^hcE`6k+3cR=__yw4$2a=D35q
      zB=3@t^X59$cGbsfC`;u{AgAFzbyH*v+cT!;a@&^JRCkACQmLSGldhFql&1B3$u}(m
      ziivH8L*b4@OVr(3^vb>^CT;cm=xA*HIfc)_r(IY06OLIbiIRp{hLg>^@V8v3r1{W@
      zP0qC(uS6GpHuwc_4C5@RgQP&uK4{6Lx&lBlr7l2VN&bN)@duWqA6OE8U`h7$4~@~&
      zje~@8h`d!=6ADK3;VOFckt&Ypqg5Q$)A1^f>*;+}oYd2;RrKm<t%^SV12XRdlmU7t
      z0yKsJyvHD|IiV63hM<!rp%Uk?&nx1rI%o9?j?^&nngA=*rb10C)TlyjD(J1@LJim6
      z1VQz&uZCN1(3T&r;oduf8o&iyrqhg(2Lf-W_Xnc!5k1(!QGCK_@(1vRvc8h?zu^YH
      r2h@7P_H}Ak5XS>d5n>Cb2_uFXJS3YU?;`SeL{^QWB6IYPQ*{0pAv&&j
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{U279T6g`uy-FDryF&eeD*3?GLM|CZ}2oXW5g+f}yNM3xJG?#Q_KV)~36!lLD
      z8o>vDfImvSGl?{4X<v5s-Z}T&GxwffzkmD$u!Dy#asoT=<w%|c*;vJcK+}m1j&&3U
      zdr2B~6^*M0$uOf=BZ_rfWtw72T{r@3rYw+S9gw*TEbK*Je$bQ(Ea+pERUZpf+UL`^
      z82e1cN<SCas$B%GcLki?q)$r_xa{K+7Chup@Zn-vAYU_pm9~oMa2WL{eJgt*36$E&
      zkqo;sRVJP#9V1cT$pt;nct2|{L}n^)C?uItUtnV@{oi@mv9;=557%+i#SMYgv&Lp&
      zK2~u{U~xeDb)sU;vTJoK&a&EE%fmW0T-@f4=g-y09aIE-X4{YCfL=;11*&s0r-ZW(
      zq2%RvbjlvEJ?{G0LX~H%OmSz}ixdkg&&ub~X5u*-u^~>i&N*T_0p42Q3MfrM^8^B3
      zCmE(kw5QCj3V)6F$UKl=uphJKc0-wE#Oo^kZ%1sh8S?CCQ7jrq@LvuNJ7SUZOB_Ar
      zILD{gXny0*clci{X2s;}&4}wV6gl>}#$>Oc#HYYjT${1HW2EU)ZhVE;oS;0x+JX7s
      yo?!EoaM^-BGSMe4{cK4q)4~}kQ{W!%Gp*0^9-wCB)tNen2Aa0L;M;X<!}$YqVd{1O
      
      literal 0
      HcmV?d00001
      
      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
      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
      
      literal 0
      HcmV?d00001
      
      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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
      Bjy?bY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*XdH6#nl1$TrOiO*Pn*0&Q(DNt>pEMr{yDLu&(VRe}*3oN=3OX_!s6v)Rz{
      z?myy_&(1&{oY6nP7oU0KFHyg{*#u@1)Y+NcbI-l!obNm5+xy2~zy1#31MC`51ePCJ
      zkFAq@=eXH^nD^}yKY!@AocxAowd|_x*P8b6LVt0`JvN{TObx}XxhL|Zfa<w?i;6(R
      zKWuguRs<HdhK>)FDDwQZX1nQM7g$UGpMc>r>yF*B+kUZ<sR?Lhci)ae;4Kpd#>S!I
      ztcfTl1TK!q|5~gJnlzy!B5-!A*|vAOtv%bjYwbBUcedPy<<u;%Dc7M>lT-y(hA|Bh
      zeZ7|?t=Nvh^l)4s4_oO8n2u}hmk*oHzGt@u=0*^Z-QTbpzUw_HW@_W)aKXeyToM?6
      zX!~J0fthsX&Bdaa!+Qqi1?K;IVkQ=l5*TZDTe3FkEA@(j_XQF|!SX;187vyej#5tu
      zPXb;d@O0&0K*q3)6$5#48CfT6f=Pj2p{N?3ZTXzr)e$}GH+e)giMS}c_@Rl9P!KRY
      z`^d2x%tUyV`fwA22&p`AK#7gs?+=LS8m`lAwb`|)H{~LD_u!yo`%Kvo&>M38l%!)l
      zal8Ju^~m)~CsKA%35ZXoCI?tDv4%1SW9@ZVLvmN^^@`kDH?a|HdA4Ku&By#d=CEm^
      zBAv#O?KSxOjMI19#1^&%V!c}7d?&&>K`~j5+VU-r@~R$Ll%-|`aEu;m0@FM6^J`Ee
      zygF#91SRhXsd`NoWQwZWW#Nsc{JY})n?{xlZYGMq(r(*c*|9nuo58XE5oW|JC#3Q+
      zQ~2<Q1tuos-%gM8Mj<B{qxCJ<8o%-E;xm}pCG{7a$zFJd_|J4Ic$@DtLC8AOlo@gp
      z@6b0J_~J<599Im-yO`p6X(d@sCY{Flu*gfU4DRh_PcgHdeG2m_X4U22aCwJ|_`q>k
      z(A0wd6D}<!w1ocsbEFllMsf*#F&TM|oPz2Px=84Q^FRLmBCD#oQ(S$8_A<!<w}|#O
      zCONEmY$J^?snxGgqJ4+YeN+P$n>|zm7Q6TupAfT-Z$dtk*u<w;C7*fj6v<3O3OQV(
      zr8B3A&&XSPujBKO?Vm&-F_Z>43nAni>Xp?<&wG=m(KElGIVR2XGr1&rCnHHCId+O$
      zuSiX^1aOb-zt4v6Qiydd;Q?;oyMV}pUcmv85_T9NBnVQE1cNED0jXeYC45awW3~dD
      oA&H#BB3qK8J;%}BrDZUGf^A4qGYV?Vq);pO_?61xO-m%oKQZj5(f|Me
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5PcInF-c8oD4&J&1A1sugy9?n5>*kAq9PIG3m2Srk}NnI$==ZZC@x4;
      zNF4Y9{3yh%lNba+IqdGt?7TPgX7|U>Z{Gnt#(fVZLi2t6F+LBoGo^>2;d2v?%s2^O
      zzMdu=DL&hK&O@cO+<I^cTg%grr%7V732Xh7;}5R}gNzM<I)sWDsci2NVYj;+T-0h4
      z{2`koeY(Iq`%PhR4=1Nw1>v%fGAe}iuF`xw9rrnX6ZaD)T<uOy;v|YwW&L^3wUr46
      ztLpyNC>_+LgPw^~v*@AnL}_K75}xg^B5MDeaFp<vwP|;nkyUWRhlfiwIJo6w1Gfo{
      zC9DfjGa`6AV<2q)pIxRrnUB2In@rOaexdAG>cwmy+S$u|J6dykn8aDenTK7%_KHU#
      zREsZw9g*P3?<vWWmjHsm>JiV8n<{FuujRk1Bo^SczQA|ieG;>Ty6lxa+{3!q{wxIn
      zu81dZSinQ^EWB*te}mut0WKHd4O|n5tsO}zSI(eyaDnTs2VZfs)wqEFSz@y$>bZuI
      pC>Th|Va~Uc$AUSZps|TNxy}H0rEN#-M$WK>Z8@z{l6l+%egRQ_zQzCm
      
      literal 0
      HcmV?d00001
      
      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
      zcmZuxTXPd-7=FGs$u?mrl(rNpDMb;J6o?0mN;wFnrKv4oi$y$klWdc~W)qSPDR|%p
      zf$_rebmfJPGhR8hgWwdD885x?SNJcyb9~<2WYbc1W_Q2udr!~%zR&yp{ofyd0(b#8
      zG;}EJzGPfAmXftb(at9wbIC~-oRXECoUL2te9>%Z2q+9cSt)H>McdU<=(6jUB?bxu
      z(;L)9Fscxm98aH~Jg=bAv^bKbdC@th&>4%*D+I>MIWr7}%{nx6DQuah`!n@Y#;l$<
      zGM1^ZZMvK_ta+nalzsCsbfoDf8rv9o+%ik1?Tp6fBj`l0j;-inD5p@YDeT#(zdn0n
      z)=bZX!p@D_E$<55dDA&rHI2&`%woRaFxOamVj`Z7FrPskyAV~-sWWcp&Mq$2OlmM|
      zSG-%tu!zOQoMTj-mO{W-5|o{lGQVnqE6cPMf)%4^(|(_qZqjHt$<tM%QYdC?qb^4G
      zXs%#XOy<1_F(fp^89@5dmgyM5euc0gFW2oHgKUq*+YV;UtYg@D%Nz~kAfDHdWCMH`
      zzEmfd*etaqS}*B1<nFG?E~VoY*##TLoKujK*K{0~lTg7eQ|S0V<RYI4j^T9;$6FvR
      z22RcxPC>^BoTP`UAY|iWr{Ys#oWg{L@s_d_V61GFt2$0&lFAv&$X-_1+Rnulk47+s
      zX$@~E^!RzSDyL%xXUIyn##L76T~lArUPv^Bb2{F{ELC$=qahR}Nn&X}@p(aZUdLO4
      zB5Vl}=>8gulc&2jnpRBGOBw5MdQD?}GR=<kwXOV$iy7xk6&NHVob%=`N)V)+Yp`yj
      z-RaZ7NbwDmxt{NPPn!9nZSyV=-ez^=!0aNz+tw89YEoofgw`BHuz<YG7@-}1!Zfar
      z=8^S@j#x_;q1>DlnT#0@L#bYxs~8-CKr9`f5QrrmHp<>;jg@VOlVMgL<FS9v{$D{&
      z0~Ojl_N6);nZho{x*&87oEiorgtKk8Ynm}uE>+65+$`)LP0m%#MYCEpa{^G1UDt65
      zBw=K(T(4%$iK5(J-Tu9LP&z@}X`6t@ETdL4Ie%fl{=5=6@0^SdzCnce?UGxOfBA+v
      zF$$Zwi}No}P`eNPS1vlx&2PjtJb?gG*y5f_GQ9knX2&QO*P+D718jTTuELO4T)XX_
      z7W&XnZR%q?2Ixa!2cByB%2Ovm*}&j;=u50(C*Pr5;3sH3n;tHAE>q-z>UJ}_P7oi_
      z-6w8<glFmp7{DIpCpit^X*}bGAHZI&I(hmm_BDh4ONdg9?Ec^JoWhv{zu`bC!0(Hx
      zpse}6ypRgX0pC||_hIxh-~2-yy|a+gM($y373q=wK!5ONQ1yrUwVRq+#aRmGS^_!c
      zQM)<`))n}SEx3)%xPxANjv;)(8h?qS_zGw7HRkaRGWga_Zq|e7Czqx4f}30xZ{s49
      z)9@bN!MjXuGiAI<S&m+ulUtMt4q=?~E>=B-19+b+jn*IF!)6g0)Cm$%bZymp9%12P
      zf+v|>53qPQahD2f>;FAN{eVII=t4Z?Iq)Gy{rX2yWI!QF)a`_@G3s_A!0;q@6GVl7
      zkqxo^I~dlQ+5Z=GS*)URYh_z~<sS4~D?W;yE}MU5qRZs*FGRCKQr#t;?z@PFJ#Rju
      zp(dg*>3bCoB2rlLqaWtpBl6%XuC=3ts0BQ7J#Hki$FUCbP-^orxhNx}czr2+3j7Z=
      C6YRVI
      
      literal 0
      HcmV?d00001
      
      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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
      CG(gn=
      
      literal 0
      HcmV?d00001
      
      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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
      Ve<#0hs<$Bd`?6ARt9NO{KLMR>Jfr{s
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%Sr=55Uh@ytO<#UG4T-}ASk}T#fz6nJVeCE>Lrhx!XysK=w=poHzxR3f*^SC
      z1HAedeuUV&5j==`nCa=FsIKaH{dj%>u!m(6F~a(_xDzAGA1d9o0yzq-UeI@}lg637
      z*3>uJ9qNYYnlK0}e^4V%f=~!KmU6AS^ptSay=Xg<kn^LqB|Trcx>-9S&?zBPb+sP|
      z9khfqkn#7&xBc5v^N^4@P+A2QLUGfM6dl3#>Vd~D%UdmiQFX6m3KPhskw%7)wUw6V
      zgMM3jjq%L9?RJFI66}LLe1S&LQ$ArMQvEk}nFndn=K%SiHVCP@JMcR4ScMUj;mUSH
      zvxIa_Yw1-T;rr4zu}CQWzB|_WUNlxgoQe?VQ-X;}u1Wr{7*hOVX=M1GVx+=YjB8?h
      u=Ly+|h%?Q1DnyM7#Enbjxt|@gFoObj%tw(iVswtX80N9Sb*x^(5|W>`DTBrU
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVO;cM{7=BK;aFcN9C#`^iQh}C_mPkP@g;qld5(!XA0Bcpez-_n?ZZNq4>cVm1
      z!fj_9$LYcuS8iDNF+-`&bUJQ2>fRa0>9}y?uTY<JZ%8f$u`_OR@}Bd4Jm)#j``(}a
      z`tAXM9=xx@C(y90uj`xP{Dx_z!?v+$hnMWtOn5Xko=~9(9FynajLy@^`DJ6l7O0(=
      zP9)|csnk?_XgU>}n~5Z*V*)1<W!I#gW4-}_nrPO_+qz}X=$V4yM?k>eG8`L;OeazT
      zRYOy;$XHT9#4CtN2viOwCZl80AU5s#RBU8&YMiBF!*Y*!0?8W_snJ*}9+ew@=CJkj
      zxV|QE)U98z%}kgZEFMUjX-l^YIYS`2_jGVSSZC*8CR$T^df*x}s=96GoNDp^l`q0H
      z=6u06oUB!Yre)gK1S;A)W(1UIcF_o;0*xB#(I9VTTE;|Sb>7IO^!W^Lb0U#l&@(f7
      z&Xjg>Q?ZxKyg=xXi|`63(}o?%WJ(CejN1(AXz#drNL*{leIST7oL6y9p!MISQ})-;
      zjuy)3iK;9abhk(?jh6qYFCQR?3+PsHQK0FN%JkIGflksU3+xijYYJRxcVEqsb5Wxm
      zPj~GA1TJZK2DK{s1dcmeceIwu83rX0L@yeH^m<9db7+w?^=r5SQtr32ZZY;wyIarg
      zs3L@FT*b>OD1e%BTBg+S3L;d+T7g}6*^Aw6#R1Q4iaXxy#jPNsh^ZLf)5~sU4I>g?
      zwVh35H;i0V&l?iUsD?ORV_^~~aPEM@2b6J}V?tl0JS%n5&R0GEl$zoIFa_#ZE^gUI
      z+Q^lj%^4d4aTmj$?kxEv4cld6&v9vtm9;n!?}%4p3MmyyfyR9z@@CX9Eh*5v8j?NP
      zFX?<k!wpHC!Y*D7;wIi!@z$;=9B~!zq2V3OQ2=XtE^ly8;FOomT?xij=<H1A@tyG4
      z=7O<in^}vGke82eX1_|kXo)4D?@FCdw%_|8I(WTB<Cb2?xYL=hu)cSU7Zt=IOB&c%
      z0(}R;KdhQ;T-iGr4JT16`=eX-aX;l^>uFam3ja|pXAf12OvIs)%ocJB#)v7WU_gGQ
      zx+QD8N!+ri;EbNn8_X3bu|ozKs$x^1ZQqNRS(&z0tn7wGR~9K7I7`IxOQUiWSE7oR
      zDnCx}qYgn-mu!u8jmJJh`>4l0M*FzOKEY@b!uV58zSFchTuOGGQ;XxDJI~Uim#g4f
      z*?AA4ubq%4{ssw!GK8XR;0$febwV?N0|7aSiV0es6FTpp^{Z06ybzQRoLFXJ1V`uo
      zh^{9iKK4X}@q97jE)<8X;cw9M2tD7U_r^WE@GW|F@M5Ck>X)eFL09O~HZJq`J_ai=
      z`;kwCx*mM-_n$oK+{Vy-yz0Y4w3RD1Ny?Qws8T+`G38U#DxaZVxr;8Yeahz!l4iFq
      z#z-4TV>1#MC#utE!USpe@n(~_Uc~t!ZH0cJ&aV4--G_;bk5C!fy10#*ZOrcA&8^wc
      z7JcO-*5h4zORgJaZsh^|%0p<%4>+PcB90%?p#1D$=yY>p9t-qlb}YhR7Wwa%gTYT^
      zX)F<I04A1;XgsW~cv)N7!Rjt+D-LVcL9DHKSiA5fYrl}SU&-2UWbHB0{!Z2&leItg
      ou$C>cwubkJs?3@XIpX&r51VTPk+<=@KvphrUFSVExZXzKAE#-5=l}o!
      
      literal 0
      HcmV?d00001
      
      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
      zcma)*T~8B16o%g^Eo;lN{ZK>{u;Ple1q$e0jfp~yt3{1%ns{ZV?WA4Z?wZ}H;t%o%
      zXktjb@Y;Bz-l;#vcxGFQ2oyHi-7_EOJoBD&=IftNp8>36LqmkYe8FGyonr9DcH2cM
      zc4V<5yH4?bZM(ANHG5s*N^@O9lwsu*JC)m0!CS&-7?&M8FxLoCIoY#B`)}E<EpIbC
      zSUQb^WmzM(nKj-n<?0O4O|K>5V3^Pm!*~K?nAD-+3`4SFyW&x=+Yo+@Hypu`sd!E9
      z)VXh~@nABlbTBNApzUXhbWE7s_1w2zuNRPbW*wMWKQP)jFuK8z9RUd?F&G{0wj5EF
      z+?OQsgmi^Yhl6hSq*8cCO5bkuq^Js6vU2q}E@4i?EW`ZqB~u}F%ww98d-w6yGnLY;
      zjtiI}wUS<bWU`JzGK{_QD7SiFQ`v2Wip)_B5GtaxD(sSuYglARRK1?x6!&aZ#Pq+t
      zyQ*{$z;a#TZ#p~(1o4t(x9NBRwfwe_9j~Qfm0{s{$$RzHu?DJOrY)r92EvyVVXxhT
      zrBig|;YySpq3&2IcX(-d5z8%Gdj3OOnoqb-*iG&@4c>fNqT^5s={B=eN_96`YDC>l
      z^Kr7;G^b|M`NBse@`c&Cspw2>7y5gejKH98g8mc$G3^VIWZk4d<bV{t>PaJmv*DgJ
      z&XJ`6X-tt74XyK-CJ(0SKY%``6}6Tue89zb3cEbFi_7~+Lj}>kLDRm&(0+v2eBWh=
      zP2vg#W-1I8a5X$Y5@vV+rm8-G)hL!alF^67N#icA|IhkKtY4Vaeuu1V-($!!hAbl_
      bL})!nF(b&MK>q}>)JZ_8Sf+0jD=7X2o$N?~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ET~8B16g@L7Y+1KZJ`_bPpcVTC1wWpOD1t_l7K|ml>U5oy#qF-yog)4#H4zdY
      zeAL7rWxUg_QdlCIO=frQ+<Wdh_uknbKfinhu#9^KI74Mm?2Cg+_|EZK6(tW;WmmP`
      z%G2$7ZNs-aZRx4pBiFazJa(nt7)YKKwAKt&AZ&FU69~`Vje-~k)vgofmKbui^AlFd
      zf5q_}waV}+|1SY?pD1%RezK-i;50i*Hl(T+b{LZD{%bh|h6@%3FlZuyv;_mh3@^{f
      zep>1oDgGn*NX_x&W~beh!M13+l3}do+rr%ufur}4F{$gvupF23_jc)0z7+vAj$tYu
      z{F^8P6AUwPhZDtO$h4$-Aw%EYm(L^AxqRW=FoVK2MVrJ;MBWuw(7ZLM6JD!2glS|A
      zTq6dt;b^G$u3Y!MPzg_k7G^NZkk(*-sOggFxE|(Kb5Gi;YEnP1TeyK7gGK54yytsO
      zJ>lNdaKdC_9(e<|NcCxS3k6Iuq?F%Nphu=;;fgjUlxWdRd0n~v#3Hc_X2b6UwtV8~
      zZjbigv_+kW_&)PI8LYb^3}tBG4k?M%CDwKd>%XU%qXH!8qO(j!Pc?ld$YLNx>k#d>
      zkfaAl7fYXE7E9%YBUm5Fz%fFrNpJ8126!GB+Rt{u(ip`U?I;Z6n9x4-brF}k;FGu<
      zftTsc=!~-udhH?(Y71ZPqFKGu2#x8=kww!|<gICEi=S}y5OXzFFMUI*bcmbv@^_?)
      zM<~|I$EaD71YSjoufXK@G0ayn&L3csKg2X&>*Jn{vZaV^ne<R2NWlUYDI-Uv%X5kT
      Ni(0#8e;aqfegT_jQP}_h
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DU279T6g@ZDW^J<Cv}*m<*lvrq=u)95MwCz$18E;@==)?dBqN*Iusf@H_8<8m
      zf)D-xf0TG<Q`*uM%d)U@&&<8&e$1KQe}4V~u!Bt(6~c>8;<K0q=@+F(fsr#4jLjqp
      zKJ@o{Z{skVNNs!zK1wl^iQh@2=!8ba+J!@SUM{*XM)P1o&5Tv*?+}7sDULRWzEWD5
      z*Mw(}O2$4uA~<{TP%eVd@UVbd9aUWR;NlWtsi(9&$R-1s^u-{Ogq2<#is(or%Hrcq
      z$CgfbSuXjR(Qyw8sS$}GbpO|a&+}>*v+QTaR?{&iQG?9LLuuN!v--PPD5v&rQWvX)
      zjgiiRFcN7x6=ob9#HKr$M$%rX9G>_Ri0fz-)12raFN56#VYBG=uWATYsfUF13%kqf
      zK8&*@l<$?D`0`ohJ+;yxcwMb!vS&My+}cCJlTw;-u})aKID|)dDs={@Vn>SwQ{`tv
      z&8AfiTNbfucz=<tT~zo38e7}nQQzAB0q+~b3a;?K#!hfFme}^JjRu-n=9LwOtL$}+
      zZHLkIoa_ywJlT1QSx(WKA0AU!k{h_0(-LmsHq#OA;BJ9-muYQ{be{HWPP;lkEYMbP
      WFAuzr2fVJZR|{+KISI=K8^B)$VG|<&
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc^F5dKbCx^%lrL80EQxFT(V1r#x^F{$8%q-a9dCO)2BPRf#Yo9vz{KgmZi
      z5-$(NXMdD&PFpG3(xeZ&J7;!gzM1dL%&*_ye*jp;hK>Zo!vp?~AKLNzAgtL^97=m%
      zHtP0Ecc;A7^ji%PN=qGf1>X~q^_0h=<jbHL>d+WAM)P)gt>es)l>0$!tuol<kzzRH
      z`Zx#!`GjF@VMO12l|kEV?uir_(k8}{G%$v9CUi_NOqPRCylOQ(5xLx}3x?@()93Xn
      zj{<e>Dm9fl!=ur_Pf<rTjK`8kl3{yT2^R6?^rP&wq{^lwWfXWVDJnub`Ko~#WOd9k
      zER95{iA%W5Fu{Fa#Id!)@Mc&}1De9g_vhHxL{17<ab3qX2J7tntdpWl+`vt`Yqzxf
      z;+e}ZKLn%a<)m>7w{^@7LK(oD2@7`^%$krV$b{7)z^-$eiPzqN@QL6y{y!=mcNsFO
      zn2x$a_Yu}o$fKyEz%X}qoqt(0v4|xG!=tfsc|>Wbp8G!}^$VjPxnUHjRv|M!kf{Nc
      zld(~0wjy6V4^*d5ou2q*l>yPR9fl&>tn)Y))bK`c5742v36P^{8l#=UG8r{eBqivf
      zks^JHq;)zgO}bD#hEXVffqB$6I#2H;8A1DiNs>(^BaIBE=u1@KLN~-)0#Fdy!e<y?
      zadGhzu6#o-fuEQ^#zHTgp^&tXnAMKjA#)wKZb%A%W!P<)ELLa>s?63Xa02&mpT5&1
      O&CnIDlMN&30q_T<Z)@=Y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@Z)+1l5XPUmOOxK^YSY%H{;g?ywoRgj3L+8_Vni%l6>P}+&1GrNUhd>>qy1Wf
      zR`7)%zz-$PUV;r;T8@L=nPuiT&+N|q`u*c4fIZYpFbK~+h)?3Qm3|JQqn47Vs&%YJ
      zVe3urz<U+@<B^P%tDW~!3}xcJ3}gSK<EtQ!N+=MX=1cF1qe(KMsE&iw-6OQTT#PoS
      zJ`bWmy&yc^&6!*86AImUC@m1m4(3p_VPe5S3G;+SFNoyZ@n|5Eo*0CZu<XUY2>T)l
      zv_Cy8Xz7G@zT&fY$4$(oN+gP~e_0PMU)Tj@4#rB$=_r*1gRzo_Qnl-S8>?6=p-Om|
      z>qZ^izzV?{=(m0MQAPw}VYN%z%XD#=AZ-61c9A@SDWf4_>&kW~jno`$V4YxRs=8sE
      z@@v?K@i_72>p(xv((H^r(j60={V0-2Hxy|q(-O7`n^#{2bI&K7$6{v2Spy5_--Rj_
      zJuGaQe8R)RtHs_E82ka{M)Mo&M)NzIFYFq)#%qy-U@l;hZAaTEqk<*gd9biDMR<(V
      zCG5sm*v$uLxPDHsHQcPiGS@OnZ4x=9a1L(bRz|jQ8+SOGa2M-Sa)*5_&dSJVxc4u(
      khIw-%16L=3f5FxiY+#cC2DaexzRcDt?qi1w5L>&TKM2|lB>(^b
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EYflqF6g|@gw%xAfp`iHSS)oq~2%?r(EgDIR7>oUCw%Z9^EZb%~Rfzw`?-JDD
      z2Y-M+%6O++w+aQ*G}*Z`ojK<|&b>c>eg6Sq0b4433~L9*d*dio|6tksDZ!6Ksw@sG
      zsTX@Yxvi?%IOMhn%gt+Ul(-YlmJP=+1$Q#0u&TC-9)^|fAoh%X_c24CC|mXL0z)d-
      z6-Jt#u3EMw))^KfUA~PL7<#hR5)XhOsG}Es8Wdd9p~BD5pR;WKvT<1C&Yn@MaE75=
      z)if#v!?EPPb=V_aXV~bD{Cxf>klwm59Ko=CRUBbTTKXc@PD4nSGD0|3u_1V#i*&T0
      zVHh`6j4&j-%BqfA7^QG)je6Oub6y<F94L`!A%Hu$r{XTd*yXs=QypU%XJ8qIiHlBq
      z`f3Ihz$B(sOfiJ70QDl&5ypK6{Z;<io2}iq*<2={XPCK)#e19fW0p!^vFvw2L=jgJ
      z>%`h2sX7u!601=vd1wr?ZpBg+gIZ^|c)(5J*65!TnYUr2bj*W<?l-A{Bt}Q4J5Z;k
      zs}FQ6VVNOhR%^$e2PD7ANc3Xp-UTTKDg%j&8B{`Uml&r1D>GL>X&tLl4TH66?YtPY
      ze6``2{JABSG5GhWn3FZ6L~YwPcd`|uUgvcc8HTCLi~DEHFlg;TLw)G6y3>MmLNU<f
      zVgm!RXUS6NgnE{~0opCYM?WAKi+_O@i+_XunYKQJ=-Wq^poGy+wk~Z1F@Ql@N$|Md
      zg7`>~k|G&9h4vLU;wQNM38BOZCWdCt5K$oiIK^B%afU^P=24qug#3b%gsRLVq%2@m
      zSwcctZjw&8z%5duz(b5T9Z6z^rm>IgM|j+FWRq4Ii{EwRNt;8H=gJy!tT%B-+<P9b
      bzlH0=8ol>n9UHU`ku{7>JSAL4Ru=3xhYgHD
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+jA3D82_F0B-^A5v_;UMU@0jyy%0dL*l??X+G5&h6RMyUHk(7THObb^34%|&
      zIOCHtjMTg1gZgd<tM$S0$p`-^$M5WRHpFZhGnvWx&e`AjF2C<`{{H9pKLDIWO+$zw
      zy=vSx?xY$YSoLyBiaRn@k+o`SuCS23WSh;JsLO=fED56|oJ7X1-xiLXF{NeKHE@Qh
      z?i3V^vUiywA}dxSagrgG?Mg?QuAa5(mORgJYP8F{$z=wfu}dNfhCUr(L}KW{E*%<r
      z8TMqYx>#)1ioz)v#j0Q!%-W_=T{av`?Y9rPa-HE^cgEY<qcFk^X*iN${z*|Jh_ZC2
      zp@pVY4$VmESjDCkc_Guu<rwziX$|`sCcENP$1{jiuxrgmB~vjR!<53w%e#t!p3&rT
      zl=MEU<2f8;=rswT>@pnve}47hc^uX-#E|IlDj*IW!#KjQ+qBp2`tcFnhewm0_I!XM
      zKp7g*aTLcGbfZ-AKQbKiI8Id!D)d}&RhZIawe7@XFsWk<;}of3nxfH2oM5>6q!a~o
      zN;<&Rj?PNQFo~3g;|#+c#B`u_oB(ypuCkDBX7UvwsCW`Vthkq3sB{!B;IxJp84m4i
      zNL8ASmoP;wGMig0Fbs9_?YrgHWfU(XtzkMSvn`~b1|4T{j_N*>%jT8>%O~KHo7D?C
      zE@FnVO40l3NJBtYJ?7iesv*PBuOj!3^VBr;auk>Gs)kvHBf+F(^7({sO!+>?FtP(B
      zZCFa|6=XHMMid6CZskVD0v2iVP`Q#0-yFlufRYR7mVnvdlGyH$>-FQo)38v<dtJvH
      zDkXe&CUaR4lGjmCarUVSxG_7kFrU4qfXh1Gbb<N#>n`w`j_V2-b%E-XMujxWq|1<!
      z+BMct^JBY8hj*Z@#e<rMrd_pZtPFN~OImLkCQT#Wus&2nNz_Y}w*ZP-6{H5I*U-0g
      zl+}D2ShLsuJKkb>yXlx>)>5->;PHp=xJn(B+<d(*oJ`edG=vJP^&C<&wmpa#qDQ5N
      zURT!NuU;0C)Q(;jI**cc8X@`tePiRlAT~DsEA*df8^Uh-j}Qp_W9%VWS2Ft0j{#bV
      z5$yF;u#4cN5Lh33gxDsYQp+P87@yd}A%-m^dZ3Pe!{{a^7RNVm>L*kuHgIMO=R^1t
      zuT1ke{|kF3w=ZtsQk-vMo*+3N5{`%4AWQME2f6A)BJoHY<gIvwAgySwkk8<sK;xg{
      z0KbnB{s0sFGfeY`xWLzu<DX-Ne}N+Z5;gu6Y+4=uHSY0m@DcwO_xX2tK<h*Pz01g)
      z7xgwH6hGd^l*`gO-oZiQa0KsT1@98&)Aa2IZW2=~I0J*EFz(R{RwPNWY@+0`Ni&7H
      z3F%dAY(ljBkEwJ11Nr}>Yk$9o^X>O;+Yg~a*$BbHDy@Sg?W3Xo9_eKyRe^s274D8~
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmb7CO>fgc5Pf5(F-aUZZJ>NZX^livfmI|9D1Zb-<wGe4h;rXJt7cngUD<2s-$J57
      z;=m8!zi<R@h*=Y<^it%5*E6#_Z{EzCZ@<5M1+azN9vnh{U%VGbQT{>cy~xNT6HU!5
      ziCzwO2hY>Em`QCy>%5g>BC~KO&1OTf_cS&t)gEeuht&X{C24%{H=R&7Q<aBXglJF+
      zrO&C4lvd^m;r^Y9xf>%wZ9ARF1_&)53#d2YqV2=OIl|&VY5As@jb%0z<3tjc2Wc#l
      zk;s(w=fRq#PIz3c`04p^8?Mw7!unY~ggo#5#>jHK;A0ux1}@^Vhf9RJm8Rz73a%3T
      zabZlVUu0=<$Q^Xc4x+*+R$b)NU2({~$PiY~=&dA0XueB}ES5XU&S~l2rMYLRaj{og
      z%WOLlc`kDgYlOA`b7tI=l_RuIEge=_HkUV;IvuMWTMmD$9mgANJz(EPTD{F<G<%z$
      z;eRY21$@@|5!~-sWZSnkTIgVj|Ex2*bBNb-h`?r_?|nj(j<Irr5?BK64=lJp(RP28
      kXe(vWV2%a^xQ6SD=immTJGjZj!8IIK?-thihS&;$Kjii2!vFvP
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7ETTc@~6#j+|tSqY_SP>OPEZP=i#Vb%n%T2096N|hr+eum7ZprSfg3taDpL{j}
      zG(M<LCSIb6zWQ6#Guws|K}^%MbI$aebG~!^^y|%A03(>!(8MtM(0XjGn!yvtE16QP
      zN^@D3U2|?>K0jTt!?N&XLMiu!RTO?=j*hG?or<S{GmJI%deW`fkE+iZTI8}5Bt{s_
      zd_z_;^z@qJIdX#GLbAcPsYM1pRVj*AFtizHMvIOZ_8ZW!kD)#9c;aqYUK0L-wd4wh
      z&V0qT+(pZGlwP~!iaNu1W6rlFk78&Jq~%M7++HCh7OYZcr<eIqDmGaueP=0@q99~O
      zMW)ZJ+G0gjC(v-1VW8xNrtMlmuwuz&^KM1v$}6r=MHR&@tV+NU1D)t%V8p0zr^BtD
      zhzJqPVmPxCwi_>onDB}Wr~eygYOxi4=+|(H;ao#4Vc;|p)E0qUa|IP99#Jzx>9}Ur
      z_pP<O6UdB?Ge~MU%h08)|Mj<l6w=fjf%BBg9!sWj3O{7v9EM3R3Cc`7nM+koyB3Yh
      zy`_i3mKhD_89E}9(RG2U;+1rY<${5WxWur}vTYFr3Bo<tD-F9$T&C)9?+K;Qu3%Kd
      zRfhimC(gha#u@fgNClO!!m?1oC6fPgRY#GdYnae*ow{UqM|G@$8@S1!S;gZ0P>oW&
      z8oIeHNz}Ef`z8(a;sish7nUOfR6~}duM^D)aa4o&cZO+*^g<={Z87U8#KG-LYgnNf
      zjGX5Qe@cyjY7D);%9OIT%&1mWV_J)>qeJZkl9Wa}f$m#Lx{N0J0Bz~P4e05?S1?|Z
      z+Jpo2+d?4lb+nUgC>d?&z(G2RHo6FPh-6M$JTjIe<B|FF;Ls~{*A3~)2Y-te{w^}s
      zS7T8%rug*WXyib{F&rl}Q;DNr#c_l5W;$=B*P*ZD<Oht`q)iN5k4?P5Kuz!6#Nd0F
      z<6P;lF|vuvJ$w_HXED}${Q2*nD!y!;RzIZy{3CS!8FBsvNBLKz`8SM_oaNs!%YQ_4
      zFIC;wVkaUsx^WC)3e!Zd8)?jt6r-~pvxMMuJ4d9Oki%^{J4x!JZoWf7QIjDL`~eFE
      BxLN=J
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@Z)?*~6vm&^X3dgjuG?(=KkF9f+NxoK2zCgiA{%rHuJnDHT()SMNOGh5T7pjS
      zg&)8VC7zpxZCY`Zz`f^O&iS3^+<Wr#*Y_U)cF@vMB0PWResoWq^ivQWIZ~WR=U7fc
      zXK#2gco}=yL`2e7&RgO7BC+=Z-xpEOlR+Hm&<M}w%OAQ&(_}(L9tWwtLvRLjF}j?(
      z8$^M8L3pw~XKrgm(E7123=pao7Em!!#*zgci-hGt5Q*2>WGs@QI}Qb5br5@QIC7If
      z`Ng58q!V`MEB?pjaTg1zbQ4L~|6da}-&l9H&Os)Xo}QFRFwUen6tdeInW*EMjt1e;
      zTvux0I@SorIE=mbZ$5~KKrE~|TlZ`@a$Owe61HZ;{w0r47LiZbytLhEBTWnUuud>@
      zRsAqd`8mwPI7>Y7Do}5;a&bx@tBwiQeiVtMAG&EOQXN}_jmxisx#u&^jEhswB3L>9
      zF;uImabc^>Cp<2^8tgqqi9ev)?tF#W?tFvwncWhu@LJ&@Xk{$3Z7Ca7)Ud)kj~3Pn
      z#DI~igxUTAv-9v2SI-Hif@>BGZ7HWTr;!DPb8rJUbFztBxXsaoJ6JEsJ@%D2BPXBY
      o?%&`#7PUqWZcGEuz(xTsVS@oBY{KS!m90AN;{g{SwzfgP0g;&w8~^|S
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBG+H5PqgTdiFS^1>Zo#La)#lpn?)VR80sku}Q1OHck9^Z8vawy(4#9<!@;e
      z5>5O8{wU+@(SS`+(l5I+vpdf-JNL}}`u+VUfK6=ch!HC9?T_|JIsD{!hh-^FWcf(;
      z-15t2y|(9f`aR)EOF3_a-4%gV4IQs5PIfxd@jV?H;pun)P5baXnUIi2PH1fs%C)gD
      zDxCVv@f`Vru$3P(x6mSJyM9+BL6|f#frNoLrcCI#L71*No_N*owMEdh+pZwY)clU^
      zw(P)B{vfES(h1MUBOmS_KVu@4b|4AW|GmQEmQ_ZH>V2sS+L1DF+I=Y+LRJc`ByQub
      zjyr_KfA>@&nz)BKf?ln^sa5y)2$@le3nfG)=(tbFj-WQ2-tll52IlcV^>dLB&lg$-
      zGFaBJL|7lmzM!~5Y$mdpB_!Lf-}&(RSa=F3XJSP~({{JpI2IkpcK2POWU5Z{CJHDL
      zj3{T<^+W!G*=xJ2L_z!=$R@0e_Tj2lGe^Vk2OV+XD3zrD9+(aFOoCbUJQ3`=b{L9K
      z#};Av`u8*L<+u^1h6WBxEZR6vFQrmSxopKa!ph|}$=){mG2SPOrEf5br8AhHqf0k=
      zP4FdX3z%lxR5m7&LYjA0Ic5hCKD3A;SNsa&3vT_u{JS$OoZ_Jhl-5pR4Ngw6dI>(m
      zY0xaBwH)TP6<FG8M3gxP8xR3GlrR^O=dgzLsNM}OA%-#@@jk;=hW}2F`3|x51oQ`!
      Ch&V(5
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F-ES0C6#w1rot^D=fObp4MMNws_Jgt%L~$3bl@_|XEwo))KoF<1mv-pxY?+yD
      zi$0n7=3mgH2|md)rrr9H7!#BxhBp&mOlmbyjmD2?Vtg>fb7!|7&;`?ncF(zU?m6f8
      zJ0JI}d!Kv;pcQYc@G%^@tdHxHQD?%mhNG^SbfY6~HWTeibtgM=Mm{SnHzJijp{Io%
      zNt)JZyWyHSO9f|$ZR~cJnNAC<c%Q-Vj+joQl_8qkkefJNJ!)E}`x3*!h7I0r9AMzb
      za%oWshAIsT{6SP;lLi$5hAjk8^yITc!cOT!8Nm=r<_tYEpxdU@ONU&hPVhGtd<}bq
      zL2+E&b{P_nf)GjR!}0Y|y7R8grrmXIb13hMe&NO&2PBX>4I$K4Vmrbr9%G0+oZ86B
      zbqzc4IPsD?d#aOR@A`NvJ+XQxUWF&{q>5eTVwA~G!)`pqpbZOmB`(D(f{$i&YQK|1
      zmxVz<y!iJWso29%Euj>T`w6!-9Kh2I0k3Hd#|fey&uC~sBlU;4lGig-p}KPZ&q;ck
      zHSCk1EBZQ<Qs1v3Ds`p1vm?<iPg*q`^iEQVRI)RGXUSO4WMrJ@G(3+Z)Ie@7nVS&y
      zG2Nk7+1ju+^<s{3X&%!M$595=w9;bo<fRAlDp@ur0-%=mJBBTU6~N03LC3wC5zdGZ
      zuFU8a4adAfb@g=~S3$MXJWed(Mo;%8gE)bNiY|thhgZGKRBLz@uMv~FVF<^G9AG&8
      zsGcn2p;WU+?~!;Vx^YrP4@3R`=cnNmdWo_jqL#2RY%aD%2`lm1fqpr)DTY0zDldOq
      z(?HAI(r|QOK-v#JgnhE;##s&L@H)dLYSVtneZS<MTD(-+^$1t3D5VRysNxNV-R1GE
      z+G=<cI<>T!9n0DGMXGrKiyUhMLPeUP)~mKRE1i>u7?XQg!zB#U;u@ogAV<0}nzD6+
      zy0N06aX^L1u*<t8x#`w3mvVMiq>0cK2Mmk=?)Era4^QrXZwZkZC0u4Vl$rH7?GpFu
      z7$p%}Ukb|178x2e%EKg=e8d(s5fyox4t-*h%CqLuN}A*|*q_VWhB$7@y<D^QiP|qA
      z(ljJ2i-s|yJC2~?53W93q^v$&w23GlJ%X&dT0Q_I`RI=x06MQE=`iW?q^hZT7Qv?G
      zIcPULqs{c+Pe$P1U<=8blu?Ch)X*=%MQzaqy94gIT54+EH;1kJKE$?<vD1goQQy-t
      z4}U1q(-Mjluy+by(#NLdk1<YK%ZjFuc3@c>3@h^ph7QG)>j;LG0uINNFu#R&!(7Td
      ztb`5~@PhAsY$owVDPF^Hn1|ZDI2XuQ`?9Z?pT*Qq(Q&qE2EmVTd<My|e-3>y^*Xi<
      z$`4XKEmd`pOvCCe>@3+9a3-u4aGtV=1;T*>hHem@)3|{dj9`{9-lX5#_!bM)x;{wO
      zZ0sb~7U1XKp_VUVJO3U#_z&2_@1T|6MH^p2lK+Ta{u9pdpK+1@f;9gXqx?6F^WX6f
      z{{!#wKQYDs!ZiOIGyEUS@_%uY-@_LQFt1eLwxVJ|sl=kP1$UJ?uR`aGRVY;mSi)tD
      zdR1FO23g9k7GJ|cju5m`{$nI@wBZ9>AxXg$l9YRnsy>Yb9Q0C~EYi7)Jhh7t<AlwJ
      U2~5&&h@=y=M6Qy5M$%irf9I};rT_o{
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DZEF)j5Pl|aXOh#VRjXBNV{<LqQjZpjNJJ@BX&~tb8~S~7S(1~>Ubx%S{4GC-
      z;0J$zKdLx;DXH|tava>w?9M#%%<QwjFMj?4u#asE1;VS(;)|HM@mF7sTrFqX9qUQp
      zp7eX&_o0_eq|%OYK1nf@k<$~?BTxIGvQWyM+!v#HGNGc!e(dZM+-@!cZBBjTD__4Q
      z96ZmN`{JBXIu3`j3PRmR8I>A}xNXD2Ey7aQSMoHO3}n<7gFq5ix}hh6a}oK*zuYVt
      z>V((%ieF8RTPVj`M4Hg~Uk474tDP;<OSB<#q;=#E5-rc9ZkxtxA7-AMnyZN|tP-|H
      zDsjC)#PL+<v3nZo&SV-$bD?s$h$Rs7XlBbSRFKl(FhSVPhW(2Tp(xdm(7Lg^l=oSf
      zM4tTUn}IL?t-F^-83endl#Gr|Cz4xxM%c?G84E4K=FKTQ!YiQ@stc*3$#N<3o1sR-
      zXofB0v1WL`%GMzY`~mfy-S4RF?EZlLjokw7@V~-AD6e6OZQIzWqk&~!SzoxzQTNy`
      zv3EZOd&gc{>^ej%g=o$XFCh%b13XM&32S)7aD>Nrl7T&BSi_O7!|tW9tMkJQYys<O
      V;!|w!y24RSY{KCptQu?qe*gjZ5fcCa
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7D+iuf95IvKdX<}$vpxhy}ZUwEt6sZC=2voHoA|-vGQQtStDp};LBYO?`EgldO
      z4}1V0g_w1!wyF`8Wyw2dcjnAx&;I`N^A~_^Y&a+pUVj!}#LQ2=Dn0UzoEd*?CZYea
      z-|HSkK{}Dzcouw;Vkl#;Cym$(jEb~_3gK0;=)M@ug9$Y=R*APw@VkXL+8p{uX=UCL
      zUOp)p`}CMl*^h>D0fdH&Dr$9<an*%`D}=?a((*8!3}oCFgHRHdyHOy*V-YKhPc|#I
      zbi!`2<mX1mJya7TVngWsuLY0i)y`+>rN&mXXH2XHsgXz0v~6eg_p?Aw?cF2}RtW1O
      zo%%s2l4L5(*guR+XEF_?y;3<m^(7G3(aNVe)j?JUy9vTZ-tAx25Xw>y32T>jm(_g~
      zrEwrXC_C|`^U8Z}r9p5zTFZFfb|Sg8$Ao8vG~-~6uzGn2kMK<D49>)k77M1#&xV>!
      zs~WZ}V%6~e0$V#M@dq?Ex4xskx%C6?H-;r#<A05vP<??#wq0wZfhLxCWrg87d);8W
      z!sup3_Ks1O>>|Z(M$wudo={klTezLk67JwG(-H3BevWpBX>E;kk@g^?U6~)|XiIpI
      V1wO<hUYFUcg;jW*gk^(u;4cr;5|#h}
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@-EPxB5QWbqj@>4PrYV$vNL#ni1h87f1xhI@MW~TdglLrejk8J&j*aX!^tHG^
      zmAK#mcqqhdVznqiRF<XPnbn+cXLpZ({r>S2zz!Z-C=gzL6ko)tn|$@dp{wMnaz|<$
      zxJTXN&YQ?f$1+roPCiI6kg@Y##9|nW&!YoR`B7-WAiT(jcpXIEr>UG^s*#^KI|R3r
      zi_&80o*(*ZpRoHVr*^wXFb<=ETm+$FqXe^zBCgo5us~Sq_@R84j{7q1ihdvowNB)T
      zpeJHq=h>p6TPM8AxB2W1@<B?860st*|91|jD~7H4t&UTrTRKoG_WP-lCsMVxd-^oj
      zZPc(rAST!6h3Bt40dtukY|WSbi%%%Za6s6&wBKnb_iWt89YXmeN@GvH_4So5|Lw4+
      z`t1pJI}Bxf7>Fd1iG_8-lU$~-;1Jd?mvAc=mge`KF*VlM7DfI?s9M$D;Hbze><u0l
      zIeU%*e?X<t{El*?c?SC%rv+T)(c~f+4J>hN>lhVOvCK332rC()%}Bk4)o4CG!?g=}
      zS(A-jn8vdSqCPFl5G=qdZcMNiZsHbKlfK;yyU)4q%+yWYou#%=GWI6a)oIl^)y${`
      X+-G$G4^Zd1#?cx!u*r1dXbbcQH@XS`
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBr6a6n+k@E-zaurj?kPq5{64mYHFeqKy=&6Abq9p;_RLuHoV=i}|;5(xyK2
      z1Nu=-=Pn32XbrP7yXW57d!Cnb&i(cK$4>xrc%i~YSUk{=^^;iTvtjPVY;j`8_U*$`
      zY%`lqt(ObcLt)w>xp*V=qOd|cmRK#=M%h%M5SH3IyjCg~KGlvBI_-U<5}G5#Qf+04
      z^U-C)H0%|^e7McCksLuul#9X(f?q=iI(=~Ch6WWLLRZQ##a8t&FRZMdF9|{*RW9hI
      zoNgI%UEfqBbynXVc+)$U&{45<%O)iMr682m_u{P}>8dTstlG9^<g2#G2s<9hdC`a4
      zD*6f2ZTYF;4(<{>hRL;MKmxt@aju|-LG%*5d0DmXBVl?mgkcr;38PmdBr=&$gO!E{
      z7-5rlH<Q_okC~m-#0FukRgKebmrlk#2oc;zmhfX7VHFdEPz&M}E@+4#O3?ITu|b0{
      zQL{K!(z(O8^9Q0}*G#>%BMqFwjEZT(PzzXNCS*x8#4t-xlj)sQa$}t^e2pqOH%<-N
      zQ?51Xgz?s2uMolw;udC+js9<YL~^oNiyEF_f#7qBl_-@f+`GO^xoQ=}OG7qt&)*Y0
      zBL%WiNz)WoqNG<UqN3s%VdQ${7q<cDZQcjm9*rA;>&>+JYN76KIanOId4~s!-(FrV
      zz{L;Xk4~P!7oGeD?F%nmxXJHM{t3z&x;WNk3_rTj!(Sdk^wv`xb4m#jj(&wtIm0da
      zot!$yz|<-31xCMP%niAB3TL;Ozn>{Vc?FO18a+x1gGw3`%9evST+3O<<LrDp&N>{z
      zn8!nANO;8bYcf96Wd!Ru=Xfk5_XQhXH(>)%7&gabcM(wDVnBK4K=wOM1RIdSI;0Cr
      WEYF3fi1RnVQ6HAE!qCLgbI>2C=y8hx
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7CT~8BH5Is|tuH7!ug5b9l*br&a4JL+%stG}jB#RHW>HF>W1}<!O$?jd{Z<+X!
      z@Zb;dM;YcWjYw)V`*81_xtTe0X6F3-b^ZguHar^@LibpF6lZ?+NyUf0mS@^O(&NZ~
      z*FOkeCt*I8vG$DfL5h(~z22z|m56pjt&-S=Mc63^&=-f7$%LvtQkl0+@PkqqT~2+W
      zVx?aZo;@y^yE!0Od&x-FK&ZQzMb*I!=3LmgL6{FzEZ^tjp-lT?7)ioHkc1){h*TMW
      z@@X0BgqP)tU!NYgF`H?TYQp}%y6|{p-RVLHxi*A$wNBMA*Rm&dcXQxi3Ab%56P}cs
      zsf#;UBs9fnG+FVRNSfsnh)-*}{%@HS{5VVyHm1Y=Mw8(5k~|INTV*EP{8MaC4Q+zE
      zAICD?i$s>m%*HBV?f?BS?v+#tbJxU*RbKcEE1wz-vvsyA{KH%4yT;yg_AC6>+nuj)
      z+MVxkKNmqa`L1#htPt~TyT(Qx4K(>>g<x?45pV%h!fAhj)7kolTUQ8<0k@7(vrY<>
      o)@9@bg>!Hh_X=bO_wk@0^N_JBc!U*x7uZ@t3u_!hY^{SX0GX}*UjP6A
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7@Z)?*~6vm&^HqDYo*G)J7ySl~cIy6iWk%~|z>abI>rKs<2+sk$(O(40^`LP6t
      z;0r&1A4)toEv&Gz5khj$xt#Mm=iK|`@4w%F0PNtNjS}JM7x7gb1?e{x9Ryk)>EKY0
      z!{Bvqzw;s<W@8y?-#8zn7|F!%>hGa!54DOT8x_KnV(C3`Fi9p<^`T1r9YWA4#AtEq
      zGZiWQobc#=!Q8Drp|Tr~qys|DgN3S#GA?+qu|Qbts7Sue#siu3#2}P}<xV^lVP7Q5
      z_|wgbX`Rq2R($sCcnB-iBGH7svu5!5z~+?M&$MZ$t#zUXnU-CtTU&hxE4X4~mGGd@
      ziF&w-YXnzC`R#H^0)6I}yK9^=W8NHx3Bu;-uz5Wa$}$=eHqM>dT$J05vt%e=DsvG_
      zvx<CZ<|BA}Q6!VyP^76$ZTN)s^9N_{iJn;mGm1uoRZ-@jgX(o74YrKO(%^lEt;Z<w
      z1Js(^$8ek5zu^5~w}gxQt#S~oS6F1*Gd60dV~JOm5iU&;Z#ddOo#s!tm1A5!0l0>3
      zy~Bd_K8G|Wfl~;l;5u&PU<WsGi=zp*u{H&_**CrA;PM>sM+Se&!K;(NQ{WOGfSKkF
      S)_GlKYXuv)%LRz7P2fM&!U|RZ
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT}#|h5IvKu8#l(fuC4aNwtg()2O5+XDO*~^A{Eva>f-y|>_x9+6G(2Xf6Iqb
      z=tF-%f00k6GwY(_N@WR|JCi%-%(-(XfBydZ4PX;>4-R4bRGq2wF#m3n<Iw7J8=ly1
      z9DZ&cG(V+L(bb8qOYlvrj?U^Wb-WW<lO`TYgsOnUSTXc#`&37kP_`!~uWu5<=1|NH
      zhQ2q6u^$Lq%R^#UjtHgQw4*B^j0G4$*@uhq03IF@++|6aXqrTSDY|W)wNyLSgjzF=
      zRD7f|BXR#@Ne)1GH=Kl<#_&N#a;q}##s2@!A&ACck%PjDm>p{~(=Mz&)V3k&iTUOR
      z)2}b9N5^T3ur!!<A1n7oCmq7#gDR!If0!0or1y+8Zu0hcY{)$mg8d}X*>0@zT<0EM
      z6V`_s01xwog@++5<z^lUmFtPbJYT-cqfOPSOaOZ>fAKKNw!+aHIQ#(q>e>%BKM`DT
      z<Y0nrnRDP=qRM_CK734~#w%e8kNXTCIqp@s19bUU;H|l<%|1||PcY3^ycs;@QiNxC
      p&Q|2S<yYj;T{6E%Hhr}@K<3~@4>*gLyw*7D6&GG$Qetlr^bZ}G@D2a~
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8B16g{_J3+*Ze6~DE@LKLDKOb8)08iE>|6dt7E$(QMNXvb`4o84LH-}1qj
      z_}~xlM;Y&Ii8ho#Hk<6;J9F>3=gge_{paT|09#mhP$2An6{lkCCud6ceIv)lADCh2
      zf9f2x-$y|@l-hVU`7A|G#$HF6Q0@grMcP4$u#>Z0^e4@PiW#WH+ambwTo_GmeWSE8
      zZwarT=j?rPOepO~Jvk3T%|#iNDvG$_!oeJ2p{=w$Oov?=cSJXogr#;Ai11j%%I4>b
      zB}<*q%r|`c>{vuOF(NjE)>Rt3j_6-9<{&ke&Ym%`>ZV2>Nz=5_svpLI9NEiB94r&o
      z`a1Q4P$bDnn1O#7nbvR=N_(lY_pg>f%%gFInv4dQ3Bvkp*=1}9MX7s))oaydypN(Z
      z4&+B=k9=|3d#|iF2yRPj8Sh&qlBGQ(yv$`92djjY>s$B;|C^m1GG%u(*fK@_bEsao
      zzTwDb>>FO6=V%)Ret_D>=66&#Hh;kV#%TdJ`CZ{6l)qqsW7o#0p^ioVvd3_Xt8Q~#
      z;_OZa_Kve`*hPqw45BgFJcqC#cX2O+CEUjYh9f-0qZ!z3hP52&BJ3!GU7l>tz!va0
      VYkY#I{9WRz23Fwl5cUn$fWOuw6pjD@
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%TB^T6g>llLgnrInP6CeMjO`}6N4H_sw^NZ+zl|mkkTgYRQWAeCNBH{Kgosh
      zwgNHH#JIWV&Yg4a^X=p16~GDhbi^1A$NYg$P5)6kLsN;VGDm7+n>X!S>(cE76XB>z
      zLkW*7*VCaf6heV%bD}r9W6@I#$usFlb<Pm4);bJY-R%nlailXyAjy!oq$BQvNmqDn
      z-n9io$#Q$#?r=|r?^#e&Bk407S^sG1lp#A5>Ov_`b^|3yU#`}EW>^qfLXjpznk%Q@
      z91MIx15n=$h8zW3ihF7v)*RXggD(9Jw`D)#-P5?lYx5z){%@5Q>#GolN*OIT@Ot7}
      zhI1Fc@AWvGlX_`5j_~R>_kH2(*rB|CFMuI6zlv4{bw(!zbn<B9WOaI(gp4q8@Ql<G
      zIWZVy!*8&6ERmo2A`oT~9yf=4gas5MEX{D4RN?;$RwG=)dX#S?vYXf<G@^3b*wxaX
      Db&Zp_
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6$x;(h6g@WsfzX67$e@4>QIkLjkwG-bAVY~nT|fnK*GZbt8aid?1^E@fzzqwm
      zGE!=lOBa5IAEMrubec#4#UlM)_q*rZbMHMbzy5st0U(AA4;+N(8}&#%juzhQMm8$6
      zV-Y<Nhq>s}o#%<Qe7bn386uF-)csANnX1T}9=HhO*8o)k1gB85gyF>HpumorjdNfo
      zpC$yZ2&_utV23UUqxG@tIZcYLrsv2eaiA9hQ@mNw4P7h}-UjP&b!Eq|h$#!c;@s95
      zN)lYF`Ha>Af?q)^n!RwMQ-Ojmt~eM<%99%kJZP4?UIlJ6dC<=tt83VW+Pvt)Ey*-M
      z7-~>bjS5LUq@V>}LVH3tv=_z0lxFUzshmdWOytvQE~%Qje78QjWZMX_Yn1t)L%8F_
      zqoE9;EvtzYAxu406dH4l1Vi;~cEGkK;<BWmf)K(4Pr7KDJW9eqBb?QYcq=9_=|P0h
      zcUi*}+`(Of!gAJ)%**}#g2t@e{7nhIuOJGxhmVi9g=&gQfIOO2FfET<2Hy;+ZC=3~
      z!t&^mf;bk~RC+<)k22kB7OfYOYEI|ko0yJ$%_eQ6-nN_NeeZU@Xr{FdUCyJU_WDiA
      zs#yG{VQA)RPAwF)f(L8NTUV}4TAe(@YA-K_*#=I&{Vx8o&G-pvyz<K40Q`Pw(ehWu
      zqK)Hy{PvC!5;GPaFQGkrhK_KggzoS}2|eNO=-Uf_M)w(RmN58<!yLHH&mK+znuD8S
      zXrXENXofvM%Ob!(DPs&H80A&&##oM{ybG`ZCnx5aS?RZUB|hutG=pDo?<f4$?kmO#
      zr*z7Pm83pNOpEOECG^sAIhj%cTgmu84^#X_)^!zejBw&Oxj_7kiMN<I(U6$Eat-2{
      zM#Q^J{ECV98WPW;%OcM5Dq9h$G~mJRN3>SAc6U1M?mQ%X`1||fOjI;e3aympd89Bw
      znVO^#yG@U=U?rWmlKSinZr6$Pyf;l!5*altKAU9`OBPGiVsSG|&-uhE;G-I_+X6eV
      RTyFmgp781|!&k8m`~xC2Z@&Nl
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EZBG+H5Ps&`a-|+n-b4|BVnt{R#dnh$6M`C>v}h<nzi!J?j$E(iZj1P@)I>=9
      z;73jTQO4QpSqevd$tAbDb2HC8^UUo1`1$24fZKRv!XT_1h(mEy^xxTTv#8{eD(<V6
      zQ+%;qtvqcvIxXp{>{iEp=19FY5x*#8z3wYdG*mC5BE?=9LKsl{wx3-iWGjD9R$~9h
      zwri^=g!<CI1Vnwp%%$j;b)`JJ-chn9RjFKF-XX*{+PiWPgi96@7)T+8Aqysk3F3nM
      z=S#gH$$zCEso1XE?6m6A+ZJ_462>a+hH!R-XX|rljB5=E#b`-?YL^!Ct?;;Ugz0GL
      zZ=wVegt@508Mz1vUkQ()s7#1Scb8x`rP>rNW<9aA9K;tL!Gly|ncZe-5Z5thVwS-p
      zov*3)j@)RwjOi-h!aOpBAr02cs<qH@UCfvD1KCie6u0Vzg)D9oEKc9&z1Z#78TWox
      zJ%n3WHnBuVpGUWl!!<%uwYwGQX((8j*2b6;O&%9FD7T+jSS-Uaoh|9NokRI5R6P^Q
      za^{BhDC;RCq-yPs*O1R`-Tl%2o42a@ahYY;mEMLUd|&z|9uO8Haz@60aZm3pGOSvR
      zuRW#HddhhhV~dF-zX$o$WSh2*=JKDB%H<0ylkv&K39OH7G%&*N6t6JeAYr^ln$Pzb
      zhy(Z;<5lm*F`<2UH;KzZx=~Ew3gUt7D(@1Uj>Qa<D)!c-W^<n~bBu)wRrBAF%pYU1
      zTKJA+?gaU2;RAbg8O$<a7y?P7j+D{Bu(6AALt@I<!;H}kSj~44Lsm)Vu@V%YVs5J_
      sG7@2p|9;)F3%ruXr_(G0+G2PCn$`Upq8YdoaJkF1Ydv)AeLMvH0?rav#Q*>R
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      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
      U<jC8G7hutUfCMu{P?Q?}1Oav~W&i*H
      
      literal 0
      HcmV?d00001
      
      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
      zcmcgw`*&Pb75>i6oku1&BuzU>r!;LETFI*o6q<$v+9qkC15;Yt*wRNZx0#z{U@{XY
      zGqmLmBEAq`sI)*^L5L`bMVe4ho)S?10e@gEP;|M3rAvSCv2;oO_PIBcjCsHkm#bYl
      z`<}bcKHuK^+xwh5KY#zZ7XVy{p9Nqjv|eZ5U>|NCIh05ZG-sW|+2+CQP_lVz_qN!U
      zcp{t5T$RYKjHX7MOjhQ)snOAwO{7x+m<nq@%<95*3Vu5t@3sdNYGQLQUrCL2g)%#t
      zbuuYC>vVXFD)KWs?2MDjYD=boR;bVho0B$u*_F-EC7LK6p3?JQnn)$G8x#iWW~$CH
      zGkb6}z7N7*zgxlVO2?fL6v{1FSfDWaf7$wjpncGLfnF9%q@1gBLkFEqw|y|_NPyFQ
      zc5=6!NyxJ|X=Vo#BMNQvn4F(VOp=+hhZv<IES4xm6vDGaseX4c<9M!xVuVDhwon4U
      zNXsqwTxo@cpevncAppNZD3NEcLe4cinbRv>U_0!T(>@RU&FQ|}5V_VK)k*~fi@I}@
      z77I&Av!s5vICj2;I@FT}1CFkwd`J{F%?+x49#nY??IAQ`bpTBY=gnPFd36gbu}0xQ
      z;jV?iKdQ$8T%fQ-z_`KMnM-98L(Z1Nea^6Sk092PU#ws@mYT#!O)8g6t_h(Ti{;Nc
      z3oTgB(v@oMvU4M(Uek0!bPs0IhlGOdZh+iPre*`UM4@VGd$$>M<`T)clL>-^tL(Jn
      zLS_MzN7YsnLaRV%#Rdx-u}PZM@UWALD=e*xPT#A*A`{SxP77VwtPsqm-IofB>Siu!
      z58!fzg&JET-5lMX-#vh>3ae%$a5kXC<>>CL5Gi2DbV4f>#nXKXD+@H{$TKab`};?n
      ztb&TtiQ)9{W~ORT`e$xr(32Gt5q4{!5IZAkIENL^pSjm;_^Dp*mSsn_Go4Gt?aUE{
      zCkq)l-ItkW^T*VGP_>{Cw<H~1w=U%A=fXS&KV)l{o_>vmy^u~>;EecE>dtroSPL^Z
      zoCL=f#qeevlF^BWa4mWR_@qMZ3?|HQ*@BIO%m`b`W~blIC9^xz>1=+_r5^oe4M_>&
      z=nsGiT|8qW&w_;kkN{;g@6AM0amljDT8N5)>nvOk9=xF`6}IKcN||%tl!Y{g70%(Z
      zU0FMm-R@DZsLr*Uu`mKs(VrNJId(spTvxwOHoU>YA#qu{sC)i<$U-=Rn*z9zMs;cF
      zTyL|pgBEVaEi^D>6S%J~O5~Ec+oTJw;tuZZK<G<9Owyi5nO`XHP$;wYU1x`r=}%{d
      z9JYbwUK_FxWt*KFcqTNv*P$&Uw@a&6_^gG`;q$B<iHcXI>*rrrz>ev}7kgi{a1XxZ
      zCPFS#lZ;o`ICsU&cXCV`VBh*Oz8b(+yk<F>uxS7+d`&X7Kr-bd9UTsxG9l`H7QP{G
      z#nG6P8psX`+;3U9A4fTx%^Zp9vsdAcxq%kAK1X+o&ZG3<%5|S0d%(hjcu3M3zb-d2
      z<&Z+>N5mJE`;uX^nwDy)&9n1^)EY_WGJVujB$Gd>gT{92b_*ex(nue(FpBT;nCefY
      z;vU7x=DtDRY4wfQE(HAF#%&gsc)O7s3g5Hv3206~Vc|*qfJ7h(q@{MTYiGOD8q3!I
      z5f+|1<}j~ftk$f2ANb;O0twN6WZ@Z{RtS)2-TVY$V5E}WP)~2`A&lcp0MD{ROtk^`
      zIJWRGhUNY97JiJMF#3IicBX^2q@8t1DZFUmCA=(2(p2~Q1vBeUC*veIg_Lth3#LSz
      zjc=Du=j91~J1+QYS|b1ytY|9bWV({}$cS{5MQ%kDeiLB@V_n3rG9OI2$Wk)p@~TH(
      zXZ6TSuO4~j<rw4&3#I&f4xbKE+sDyrXlz;?F_jue*(p97sNmlaNAe9N%E3ZDU+n5)
      z5yE`pDpXQOX-RgWHs@p?!KAOTDH@b)`NodDm}HZ+c-s-fvLmNcwBjin6{^E8$<
      zM0}@F(-85WM(q@eWwJu$;8TYYQb$mxZbVq!gmcx+SfOsw$hNvx^T=xR$ZF-%uaVW}
      zk=5#0nSw(u{o1QqTJZCqDec`wtK>tVm|8JG`?03#h#B^U{gJ>J8b)zRTkv@_@2$9S
      z92Z4`W4QPwG{5N1J&)GC6>a0Vw0aDejiF<@#wm@Zf)U(8%N3}{6`YZ1uVtK|j-pr{
      zqmM`F<AbPD$9eZZiAMD>TGb=i$gz{-6&$Zpk80oh=^ruXeUBlED|J?4xQg?Vl^C|+
      zYMqssj)(Xj!*<R|_G8#VN!St7kqMxRh(3;;j7}qJunXOkOetwEkN5C7Nd0p1hGB{L
      zB04O4rm|K+eW;iDA@vF@j%DgqjaF=OT^?<D9&LFZZFwGTIrd?{SmFxFqo6I<c@(te
      z9$Hf_Q}puy=ODZ`F61r}O<%-p3sygbV8nbK(WWu<v=xtHQKUFhTzv+82F@U1ppB0c
      zSR5%ngCSl+PM}o8PbnNd`%8JFA9MTy=T8@H!ANidPZhO<idsslk6~TJoWKQ<pxCXN
      zVfU_(5(5KydvA|opD5o|bao#7sr}z}mDQ}uCE9q1yPA)keWxfKGULzUa7#!h#TO2R
      zON6VpP9^1THVmjY>Bd_qRlmYQ^=nkB-{5?X>(x8hz_CO97Q58%aE<ys_N#Yst$Ggw
      z>JPYH{ShhkC)}p~j5{gcr~Zoj)!*=d`a6!Rf8Z(gPdrWeW%Vz-rryUJ>MVZ2ABx^I
      z47^48J;R5;7=C3MK~02vB~i*ZNd!tBZ7F%QrR33;l1Bte9uX)>t0566N%NCmmK1I$
      zVPuC*xPwwL@0s<UbU%`wv>%V-PEuZuh{y10N+l%rUHFVg?{~E|pu3@Q40ms9nqUhc
      zdA@Kp|J>VRt{%hJTYP4VzoBV$*lc)){p%Sl8^<?~Av`%%!>L+MwfMvSqbSwWVc$58
      zO=Y8nZ5YM^_>BsLj72Cn!l*PVvDB!-a$_;p8cWb_oQsVdHyhQ68q2WDsL|1L8(#Nh
      z^jM(Baf0am^yMVW-(Ycc;oB_eBDTWIbR11A#d;oQQuNE&%pbvbsBg%n%k^6sjGQ#Q
      z-Xighg*}Ex+X9im1Xe`?ZgHGs$CjE8(7z>8`D1vTkr+i&^>Ng3kr|g|-){+qgT@I|
      zin6GNgGHiyD|N&EC%A{(^wu!)Qm#eDT9g_Wq1sr7HAV|AHd@hYw9)T&Txnc}eZ~g#
      z7#-U811`qA@4a}+Yk0kr%t7xYb140gUP=q;)hzKbB0Zk(rEG1&k^nX%f>Vr4khpl&
      z^WwoHp6`Gj=A9X5_cu>qXLZ>3Fk*DKQ@o|KPq)$kz#i4+kN79BJmMe2*l~6Pf6*A8
      zD-WH7)mY7=;Du3CHddRx{I4I18%-{L;S@KkVqvZ<JPC~LB*qRbG<KrO*n^eEUaT_q
      zqt58TI^$YwGI~jfICdKe959kPFm7+{$p@w<ADEteV0!X_>A@>>*ko|_;8jhE6%5T!
      dSrmT$;<Uz-47{e3HG$VT%4x57CcJ^-e*-W2XzBm}
      
      literal 0
      HcmV?d00001
      
      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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
      TE9FsAXZV%Ze!-+W3*UbL$d#0H
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO;5r=5Pb{9N<~5N^Jw&d#JKT{@j@^Vs~9C5ylu-y7MGT67v*nxGV$OK@JAV^
      z#h7@*%e?t~nR)a1_5K0i4Eru}42`jP7IU7wsOXVfIk$XdCz^Nq*M57bY;3NSJ-QVp
      zk;a9?P)Yl_7S!Df#xk@FE9WXw_JSc_KOQhRt#~Ls<WVf4fE9+auOfLfn*`GIMW7`^
      z)sI7=2g0Z{{z*D^q!NY`fBB7?425aB8$+j_&2bg;J1K_JH2=ZV5?Ti$d}=<V2YBsy
      zD5qA%QR1S?P|Hpx;%@J^LS6Uq%!Kk%We5Gy>ogr;D0QPqnwAzxB8h32;c$u5NY91b
      z&H+eLdKHi(kEA5)Qp5=vVWIJc)z_@-kxk3U53ojlY0*Hqj`V9AC{w0F6^C$>2y5Bg
      P7PbjJ$}#L<&nbQbHjIcx
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVN&rcIU6#k~$Un~_66~&*R1xrz?AbNmkv|_9lA!);fLo;m$y0G0PyHg<^J$v^L
      z@NQx}m}uhJc=Qi4zL{O2P-@jCvorhVecycVy?NX3KR<s3a2xj$h%n4<@t1rr=kHq1
      zW=@JdnQO?VoqJkdE-uwA>3YvCnO^0dFT6ar?JBQrClF;AQn;MW3AIw)5;e(?C@ilQ
      z3rmj~hKomc7Z{R@HQRD5d7r_^Osz3Q^KM-v(a+FVv6?%!CF+$vFq}vshB(7u(Q?F#
      zR<kO+GOyY~@wzo`uW`>(@1Zfis98-I7*1gbNn(}_%V)TwW&B%kBs8{RxBLc!xwKak
      zJJNC;KY?=$6CJ5~#Oq3ta@qGK{SEHaZIO4IP2o^p;+ge)K?R(s{We9`^OTSs*S8dw
      zffX3e1h6HizOtbrFG-JTLiS8sHUr~=V(S-9z2a_ED5*L%2PqGo7*hL`Wll`#fa&;z
      zq{(GL%QU2N9{WS`v@a<L={?W&7)FlK8HC*wzRx#F<X`|OscKXC=#*zYC3VVJZb?=C
      zhmsOhZAnoQG7xU^-zF;l<lg}q20~Gids1sM14EgbL0u(1nI*U7)x;A^U&BM)F{2Vs
      zxh^;k^@z=VU(kJ-XSmjJUpiZhjz8R77^e;}s6iP<RU6RCL=p)a)F<?orCI&r!{$e%
      zKF}(H0eYG=!|)I@wlS!!ii6rA#LdyHkg@D1oIDEKMbvnuVX43gr*N8_>Glyp1S7PL
      z(%V@rVOsCd?g33)!Hm~!6l|Yj6z6GIX@5XN$95F>Mgzyfz=N~Z=@)QO5!1MY%cO(h
      z3dZQE$mVHK$ek+QYO;}FGgP4{#&MONR2QT}imrOzb<s0{NrJZPxsFUPviDucrnH`R
      zvMi=UvH~3vJubK}nk*Y^wgq>f>;`Uzp{tx3L^#u%_S=8Z=6culN0-oV9jR-C{*P2O
      QXE8^!Nt)^Fjl1ak1tTy(rT_o{
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcmchX&2G~`6ot<;c1(WSnoxdR0xeKb6Iv`Jc17JlqAUVPB+V8%=`?k4oXVM`MQr*4
      zybDMmBo;gX4~4ihcC9!~$%e8?X0GSX`R+Z}{`LFEPXJHx$iM=_cF!3*C-(5z^}Dv<
      zC&E4yeb25nU)8ID)91AhM?COc|9xf5ePKXjSf5PcGHfSLG3134bh&tUAg^F3)Mbk8
      zIi%4L0ZHvJq@TOKD|Q(^ZcaRY)9&$(*in%)tXUcxil<3*;aS_~!rpsZPiCruDjx3>
      zWOQy4qSRv0UJUkm7AfTNFp$3#oJ8e`(h`8BRt5}9dFV(pEZ1G1zaI75JZL&?PqlH-
      zalDojxN;u_HF4+;8SL}d{>@0)|KVU1bf(;i+D~l})LMqE#I<vbU`UMuk19|}u_Fuy
      z4=rF=P288Lo<Wbs#rgLGk#L~Yl78Qneis=&U9#H66^Ct_9?0B2A9e!wNVo%^Vfa7j
      zrn<wBp_jL*USWon&C+>LhHOKPPt}!^S-jwT@kGA&xJOf+qHhj;2;^wfN~g7fEA*S8
      z-I!uBS|~r>+O~8{`;Khc(!XKx3q=>OOutL&hL^~pf~%;)q}XnlMf(EnC?D6bLU+p5
      zb=;s#xw?s4Dz^X&tI$;JHf4qk#fYItd!3${ih&63lr3!rL4$~!M6{;}o`pFvff*B+
      zF@YHqn2@@fs(mfeJ*9{tnL=GlSGA{SD08a)fRwsQxfW){%JXVpSIV*<vJ0}(f}%+)
      z8tIU9LeLZG#AFv{`7ol>W9q{3gb!xSGOr6~EMY&S5BKpPBCzRSI;fYwV(~LALi;5q
      RaH{0;;ekkwVMCpI_y;U9p;Q0>
      
      literal 0
      HcmV?d00001
      
      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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
      JPg$G4{6AVVJfZ*q
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{O>fgc5PfSqH8D%#rU`+5P)c1$U4)x+fddhUNNGWUa>#9yY-3lBE!j@ezlD^5
      z#DO2ck3!6v2wH;F!|u%NzIn6rW`F$r_8mYIM<z6ey$dlFmtHyxqLG)$%gpn$ap<+j
      zVkEnPoH<Ps27|3&UML9ku74p1nTa)q%HPuulPD7XP%^A#evmrHMBTZ8`-Gt|6`?a_
      zsIOvGbwU&sVipWDpMmulEEW4Q82K61dLBeU_LAX6W0l}~BPXkXyh5*c*kv$U@lX~)
      zEpeE*rMxOf5tj1qa@+=2-aU>x;1+aja+I*epf^-{xf4Y4Y%=c4<kN2zDxG*B!mdaH
      z6)z7BB@M&=>Qk=2)oD`WdNPSDJc46lpJDd~EjbSGn4y-6bNN1z=Q5GeK(>6Em>e=}
      z|3{xI?OPw?NivXc0yV(WpW#1KMHzTIie%CXMVd-_e))AY2;-DK%&E-$c!*<CMyFMP
      zVcSYRz^*9qa!b<XmV~2!r_m~*OlX_Dw-gu1Zn{Scth-Ma*l>3isJS&`fx7z@_dn-3
      z+q7GGF14t&u|qK@4$8y>?2=`8h^-~-D;W7*)twXRoH*x1IY<2q_Wt41PO+h#UE!-P
      Z`E)!XRt*gtlC_9WRRbz;X*bkdegVk7ytV)U
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{&rcIU7=6>-cDH4PidIpp6s=N<vVf)sYxF>3(xed+6_WL|ZKvHOWg)u@#f$%k
      z{sUgTn4l&eyqfq&8Q)BSa3JY!X7bH9-;ejcH-G>A`VC+WYZfvBwH^P^KXQ{%7!BN1
      z9;I%O?hf77u0N1lp&V5=JBf@BWo*F|D5_|8=reY+vm?8yg`7ZHd;L-BhAM5Ge3~ba
      zOM@_}t_m!)Cp2p^_*oc*>2rZ<ZDRD&mVmjj*OPe&TykK+F2KNygFK1?Mok6Gw8Kcg
      zI@s;V_^sa=N`cw-Ue_OP`EjVuCr(p=6sS*XdNvPYozisQ?f3kYW#`6#T{Q<izGh2(
      zOI{vxxM|^r!2AUM4sM|=kWKdeh+r1qw+GRIdvQ`XN!+%K25HbNu)!S%^QZ`v62C8B
      z$FeVD8Fl4GK&@nt8eK3>rEk;o)ReNC3I*2u&vD>Yf9Ma0Mzpw&xIWM~3VUflwE`Iq
      zf>glKj<asUqafqEGoKMl1{U7z9mHMvGE_=T>p3YHD~cq`w4zAH8$&-yBwO02j|dei
      zY;a{EibW+fpKyjNj{?0@w4U&+Jcau5cR2N*nEs|?E_2T@2Dpz|?vAz#xPq%ZabUPM
      zt{^fnSq<=vhE+B{e!^`17|t=S8|#0NGaHuCu*=zVesk=%OV(%DCHo{nC6%m_{R6kl
      z#R|hM^9xL)kuT-HvU&yzQC)XhCZ~r)@Q4DgP<xlwD*rV+#X4GejBWB#sQY7NC#Z=L
      z3%IM9c({kEX6}(;l@-<P16roG7HMU*Ril;T{Wg}^-(tTPSf*vuqj1zY%?uGJj4Q;#
      LS+WBkHWA@Jw6yM=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)B33y!9b^g!Oj7AzgZ^E1KCL7t-YGDJmk&KNcZ!#m<Sh9r;E{rtK(%{jIm>GG2
      zumvzX31N#2v@A)Sro^!+mTjDXNmG-MHcd*BHf<n4nzap(CT&8~lK$tuH;WcN$NpyC
      zoA=H=>wlJe_1cFoz64;gJRX20m~(A-Pk3K_YHu{&Q=fMBrR#gseX;tMzHpDTE$ZwI
      zz$ch8ib!7x>{uck*%V*n^o8RQf$R|Yqq<TsF{Eqi!+X;%uSP-8ylPK}(|j*Yf|8`8
      z42&$UaDQ!1Ci<OZI_jhZ#l7J@PG>Zd?&WH|-{3@hdeee{uA|13x7U3wErP;c?{!h4
      zE9E5jI7z|moE}EJtIa0wJ+<<u`onR`T6krsCq7U=%2MNw?o_Hi<ivZ@y=q4|olZu(
      z2GXkH9K(N@16OBWw>xQ)7p{oLqv@4`S(T${*T$SaC!TJs+9vQdCn8P|1(;={4CfYu
      z+-(#i7{FXX#h;>`t~t-f6if|ZzMyh!YmCD+f)yD*1W|#7Dz%b=#!z!OCaA3ns<v?s
      zChJ|T4I71ex5!3`dw0GKKMDmCLeaR>Hqh7QBs;=gF^0Z0l;{q}wuO^X{p~&UrF)}v
      z=iJdQ8X=p(cU-3l&K*siaj2l6(pB?f8xvfW8f}bo?=G=1-o0C8BY+}ReYK5=n51{j
      zHcBxm$h);R)?pcen8m3+-C(0dp9Tl|BLs7M^m<xl_c-a*v1m_R<H=xFwp6WC;#M1N
      z*d!RI?=#3yODn5JYo8@h=oI5}v<I+-AsIW48#-D;71<>=I<S>^UL9&#-zHcvn!EAj
      z@I{R!=*0E_t{^-|3CXgiHa2$PO3%uS6%^uPr9KvB_1M&Pt<y~?8^OaK1+f!X2k>W1
      zaut&Q&c-ze3yRW-b|#f(^kmO5E|vSVu?XGFq`qh*5@U)u=m}ugFm5iLjb21a=v+4t
      zj?u|e#?o(xZxst*5n_x|%-NMLLY!_(YGo-xKY^1@^cR7(qp&NHPAB>TU_9sL6mN;e
      zoStxOb+TtbW4(4?x6_}FCgK6?5lqX`xhgdcL}L*rS%iHQ65bb0l?O3^>owVK7@?qN
      zYt=TTxY5Q<xS2|X`}-ZOt}}_KJl786-l!|C4kCr?X_QJ)VT=>6R+xsC=B@PNq!fzR
      z;V(TM2yTPtbO&340`VRj_bR*!R);zi*7w_Z0H0tDCz+`yTepN5kWB32PP(2?7`F!n
      z2;w0;62Qa6k8zLp*2be6`v6(2i)v-ClJv9;2*$hWX1HilK5k<grmN^DZTva@!p*4m
      z^!}LB-s?DASTR;c8O-OX=%}ahYyi&)%2kzNg?j|8jnCk-f=N_Qi)A(&=+ot6)JUcA
      zz(0&@cAeV}iZTwP-!tCIbxF1FFKv85%S(w@UbJEA^XF`Q5r^H#cx6seF-9556u}Z4
      zL2Cd<1=B|v>(OXz|Jue2CbsQcnpMz{jpI1s#&%7j+n`+A*BFvAuNwn+(MytH#%D`T
      zhA@be__B?!D0VdPP2m)cdk8OULY!vz@-j9P`aIlb(<6Ydvax58)EbWMN+kQ72mzN(
      zMuN#9?h8^$7LI~}q$Yb8WeLuq)Q~$q7~r;aCzu17s*}-PpAsyu;qL<YCi~h)ci(I`
      z)g|k~-RVSfzl~S%b!N9GD%HL}-rbu_#1jLl*na9$S;bLlJm0n@vO1`+@7VYUT{w}i
      zHYc53PBQ64+Bu+TSiWoHb2t=4Ilgb>pYYGDnk3s6jt$T%vNY}HUu^s<e&`nJ=0rRl
      zX7^<&o0<=`>~k9UCf*9*M^whRGYdo;Z{r<TfH!~5^#Y?LQJwKdOj1=Xs^fP`@Duzj
      zfS-EBIp3W&evV(bnyITizEqqm-^9P$_zx9XOq<*>Pg%Wd<2_xZ-BTC2ZxlpN(&k8l
      z!L2Y5$q34gu-fP{sN)!>-tI^wVja<bt!di3)~$2Vr6#rahWnjiy~~4}TJ_&H?$Syn
      ztl_ebAI8w1(iJpwBoDsor`L^y+`IM3aDQ*KJJpzb<cZuCz#mx)vi{$~Cdzgib4o;{
      zARtzLaLgK8eByUK)sz^BM_7=C#W%}=BgBUiu<<*cYd(}>8y}cEtmaQN2W6a02*`NW
      zxUBSyp0-SsNt6*uhW8qX3NFe+fO*u|!hbn?#ze&qMp4eOWwJ~mH{%$MBWK1uZq13l
      z{zP2o;2gJ%A{3&-v2ZdtXN<R|OS?W0;(T(BB<BUDe$>cxyI=+?st18FCFRzGkxA;S
      z+@XTU>*#lNB7Swm+vUt4eQuMoE}7`dR`?XVi_Ej-JgIQQv$j?18w;arY(}yHX?B(N
      z1x?<kWq~aVvrDhgrNvSuH36w+Vbl-}V_<4)b9;N<2q?8uNBniRtm)Vwm~WhMmNl#a
      z<x+3U`LdX~N!!-3YN%)(A($c@qN&3Lwp^&J3pcE7S-+t}hm3Suhl>=y=6!^mytd1g
      zPM_<GLT8_QQ?iF0vm?>UT@S1C(lOHU%F&EBCsI)zwkn#U;Z&n3I&z6EE44^yigSCJ
      zOmEt?i-u^$ClN>Ov+`lD>r*v4657SN1E|cywVS7BRmBjP4X?X^jXK+nQUO`Zc#H~R
      zQ#hiVAvGvV%evN|pw_-{(qYXhKbv6oQ5vh85SA*rOgCW5^sd#Ga^A@%xjZ17y?Si)
      z(=xa_nzm(&w7c`o8fRB{AZF?#U*x)BK6#_E+R7dz%!+a^doyj?9S!of`$~L;E!*`>
      z!0t~v{j|obBNyalex{D(oHuqAQG>3s@%Q*vK)8)C2NFhFs}qTaJCfn<-A*znJLMYA
      z5kj|3%M+3-FC48&(``#cn3YB0NapZiavr&-lS|uUORsQCQM@-CWojf_)-W=h#K~y4
      z^aX^-&D+y-^fG1<TjKZ@A;l)Z20qZAb|L}c#=;$0%wDM__bM;&MR6xnY_0U}>|n0_
      z$%`55RUqwJOB-`u%Xb55{Du*$Ce>T;r=Dv}NriVg?$qJLyPf7<b|J@XJVry%47)p6
      zAcOKTxhWtwax<Qf?sh#-+M15Wn5<69mYdZfQ=+N0dsyYyM0w_t?(TKH6_8t*qWO#6
      z^4OJ9L(`cS9+X?;Hd}7j$+$?p%*5HPusC4Lox*L;B%+K1Q=aO&<ZfH;F?)4gvNay#
      zqJZ2tmOxWZP3+aUip4>>R~}F_aZ<g+g~#Ypnx%I;*D!)%K6=oWPsu|D6nhf8oe*bw
      zwyO+E4JNh>#N&D*Vh)2u_mUsscfpL&Z!&&j^n>k*fn>Mi?y1ISRa~S#W;V9OITAL<
      z!YNbZi!x_Gn9E70fIH)H{P5_8-_WxWbLA-%ua+L}m@AKa%$4UU=E~C)bLB~kx$-2%
      zTzQUSt~@B>6?!sdese3w>oiK_Nf*Co@YhZ7Q39~2y5=}$R{M@&cD4U2C_jdI)u&Lg
      zz4|y797C19sL`*w>VjjaKWg|b=J!0K>+RHiJ+-}qXE+Bi8+YP74sVsX8+Et`OGr1>
      zm4XX!A%9UGF2Yjkpw=z(ba{rqRF@ShXt@e9(i-$`MYSBmO1-;OznZAm8h+LvLP<y;
      zEU$UlT#l00dE~x`d@QJj4Lo%MH#>ejObs95xzwZd%VYGxr>W^6sh_|?JjoSLp&n0D
      zzh|h~(`dxAMsu4SsgtL<U?VPb^_BC<)6aMJR1YE4TKhaUpTsr`ZFR50Uvju^2v;@u
      zW*kIynXj~K2$4Y)mR@_9KX#iRB;kFZdv6~uIXuJn)M(m79_@8G+EYkvKZSwqrF)NK
      z|BNAgYzVg;$E`0@8`tU`Cgw+|-%(op0uK$35eLT^^OKl^Q>en1QOh0SQoMxaco|JN
      zjWzfxPu{*p`_5o1H&a*O>*&Ha5aA{%j&Gu$tsseS8?RjGTAq#PJ@`0L$0A4!+(w*P
      zlzIbh=dS|FOb``!5^16%z3V;PNE$`{LiOJBxZC(HRC5MJHT2vOKE1EC_Eq}qlSgWY
      z@TntN(`GY4fFCkt-k``gY3SP&@ea-UG2!?Vqh7ho+EZ^F;r<v^QOMg2`yfS&o)CJf
      zY$UY?d3yB=IQS|iR8#m9{5*9G2lY`-_IShhU25<iUHX0=K&EE_!u_JhSAng3i;2|F
      zlhMi?qaalPeovo#kjJDr%Y^4V9+M-aQIs`Mp}z{%oWz#|&*ORHuG4T@rLFc1lXeKl
      zPUGYdPBr*W;i2tizS`q>sqGMaopndZsfxH>hF2&xo3&C1zXUK%idb)pF-uBNCF5DQ
      zCt|rw$%}G>r<I>M`!^<Qr!i~3#)w+XqPh56I<$ZiCJ;A+Cd%B1d)hDJRbAjafp6rj
      zFVtsJo@co)YdOaaZ*9G|)=$^fKSw66^6ui=yv6?PVs7NU#d(6iJyP(}ytO&O|CmW^
      zhQx2;d>g$Q>g3n!t<2+ksxfcIk~0|R-VEV;hw1upwIuk#5Z*X&m^VK@iGLFuFv)zD
      z1;5NJ_?0d=Yeui6f4LE6%r+n>8!=u&j9n|{N*n*|unF~YIU1xLt7I!S$Tl8fcVe4d
      zfoo(3cFRs<vYQsSdF}!;)y>)<_M5I_F?u}a^IW)=S4HVK+NIzMF)`oI`O-jGdQc?2
      zhPhkf$9c?)=)+&*KTQaKgWq~ATY2@7rJpSSE62(WY09vvb_udN`ni+-J(p>J{D60=
      zkstqqKbWNbU;LlP`lqx&`(T$QTkR|Oa1g=T)A;ZZifd0Q2-_(0^#)&=?+oVFl=<pj
      zkV1Zn_zCh;!k|_SiQRdKosV&B@R#||U|N}K`h%Jb@kuGwikgAqB6csxZTxfH?I@Ky
      zFrC*jIe<BGCo1G_G|Byp#RF)SPw*(?L1W)aSIew@T{2a)CsT8oPOCJhTBJ<QrG0bI
      zY~td>2J)RDGikZVESc@uypq)FkHYF1!@9B?nuEm3<9VSe%*rg3In;uo5bjnyUT@Lw
      zT4#3A;82KPPqfz749VPe`aOTSPeET$^So4gm8ZPjJYhaeaBt>M^9{)&z4wu9$uKfs
      zhRnCbB^&9(XQ}IFi0jW{qI{0HKEzt|c`T7HV5K~V&GJQTmoLGQqsAV$`|R@U@zb{#
      zvFC6I!&S0WmeD5@iT&k7O9AJdO>(iRv?2}C=vmvzt6IzO%8HS-<;6T9ncAYD`)DBY
      zt*nwu=|Yj!(!@XVHj}yjTEm_L4h=5ut=f^Gf6d5pL2qRPWHHgTof2rW-he{yRx$P2
      zsrYBt#hw}KdDSNBSJ3Bt>c;=OjPLgidpGa%O_`X@sZx_u7I^&aF}<8u6+MlytQ$n2
      z`nYW5ZH?XzNhl{~s=83#KtSF^iTsEu@D`@Z+eV~2Hcj&^vh+`S9{YE=N?qSUjNKQK
      zR<`_gC#0>djyUURt*f;x3S%mEcCxy%xXP7-n14!kZr4maE>~*`*A@&(SDBCByAGkK
      z^MqX6SzXHk@hD|nN?9$EAP5#yiW&dp=Zw!UsOK-K=dUn9-o+GokEQc{)XHygvHTX7
      z%I~=918kH(pp7}z&Lcn_TwSPjWTCc+jc<@r0!-@bIQ;6Mvx=u+DaPSqa!tzs<8J96
      zD_wh~l-6p^J3#$k*8%5d-mtA`J}qgbjgvUveDB^)oq8J%!LBjp;|)XM8%ePupF-V6
      z>V|^|^0HzO)9ZBgrTjGUW1M&h6Y6SmKFvjMBZqZZLHMl_6kFpk-kN|Z)<l$9rI=%#
      zgN4>KoNt|rW!4NdTC=d)nvE7~9=2HXIp!`v#9D~`Ru%5BYK*5`3?ImP>Q>o9|8NJ&
      zzwhmpee}sTHYwLrdYXH^>mU4#rAQ0+&J%LOATFbGj%kQrky{2)Qsz4?w+zY0t7~S?
      z8j?E>VLA)*@OO8W`Cs-P&Gg9cI)q85<lgPN>bTs0LO!X$n281apQ+tTb<brjN1@dK
      z+iJvQYXxRntFXXoLZ#JA)7N0RwU(wgqnY<@Rtv7OF3$tS&TP8wl!xUJN}v&}JcTq>
      m?@D=Bz=5*~zm`W86!Mr#mru(eucf4_U@{+M3f;@!eDeQwej@n*
      
      literal 0
      HcmV?d00001
      
      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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
      ST~ESDf2k(kU+Aw3fBi2zj8@G6
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FT~8ZF6g}e)7TkrT1VS1EF{$GiLvfp?UvU}=1gCDDgy4jhelpl2@3ianc0CTx
      zL)*9fhd%WmM5>h9QX{qR`B72t>~3rfC{-<a@XVfj&$(yrU7o-A>u&(>VBbK5Vg3jH
      zkazN}1L@TBN_14-QVly_mMyg-#esns!-bPE>vpsHqXsb;E|-oH9>YrcWN<}2vPH!b
      zLZx-?tpHzO7`ZMTsctaLWsiq$+M*#GRao3%h;1}$B7rDgGhx6a>8}VV>4;Nh>4-b+
      z#=h|G^L<+|OqQEfZtrkU>V0?^Q<iKoq>j@MSwUJO!e%&s9QRTtgIO19&6agX%O=g)
      z(qhrTS%!<+mb}f$<&tfSI=9!ndRwD5J5}K-*>nt?W0)D>D$1ivS#L|bCcIIcXE+yz
      zrg%rTQZDy+Ly+s&QVGmpR@*YiFdf(ua0NNYKaIFxB83IAoV%`YY7Da^&#&e%I3z6S
      zh&N57afxA6HG@nHQ`zGogq_B0Y?b<oYS!WyScxI-w*^Bcl*A8I{+7pGOIBNjfLI?@
      zEba<lV-#<h$YF`X>kMZGkbV?Hg4@)1Tsy{adH@Ns&~u-3!y?-lmR`-gEvkyH#1;i=
      zm@yLno{2a{#_$0?GVmcajDH<kWFKnc8Wu@lN29Kr_}Je)(z{g?pXgouK-QF{Pu5Lr
      z=#vpk$hxHx*u*UZMTX`7GbY-TPZ_S9R7{aRz6nD^tjAK<r03-`6IbvqDdu#01HbwO
      zQDeuYQxhGAWJ{<mujvX;Nzp2L&BmIdF5GV`L01~h1_|$(xP!Y1va4d^J{~ZPQ`-+F
      zoFN@H$&e<0ng%Fp8ip@Se2Lv4!C|U}lM?g+6`?5lYkX_q8yejIveLwN_?}^cL>_wg
      zFx(CN91=Oi5p?>{^CLwZd6^|D&9+w+MX6sl<1b&LD_S5HsNASOArakU^eav$21aQe
      zqunY!jnH2sw-oCk@dy2kV4T*3e|(cdHZei_vjGgJaGG`$fY&ieNoZg&6(-xG<T_b8
      z`5RKn*zZU_!}RVm%<N9S(L*xX#e5eRd&vAVdHD(90;UOH;5NyrklY7{*wTHrG_qLq
      z*=SBfwi3nZ(n$Jp56efT?~!!wCrbseeli0q$Wszs#M|^gDT0{p)iCWt@+L;lGP$R?
      zy0rWh??0xcpqCqZS$mwD>*6Mn&h=0lum)wgn8#1J1kY#A1)2KHnLcv{pQG%XmBDQ)
      zElNmg?@&XL_FCUmu7|B$u8VE@?sW0hpSXII@n?$sg)ZS&pV18BLPmx?$`S$p7sUX~
      Ag8%>k
      
      literal 0
      HcmV?d00001
      
      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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
      R(B&R<h5(V5HPhsk{|C{$)g1r;
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~8BH5IxfmR@y}>pMru#K-vXa!Ox@wV+a}ol#mi4s0rJ0Lzir~W_wrrFMRh+
      zUwq*~69_>QeD_Bg=PqllmIr*e_wLS}Idf*_+#f%`o&uP`BMlM4+`je3s++a9w!3Fa
      zQI}>}RvdHHcclG9O3yC(QWS(73oLo7A{Jf0B0NjlRaZldkWvVyV{!aiabJ|AhBiWP
      zVD+W#m`wqMxb5zWI)Ro5TFLi3;YvdP%DL`2LYpkxwXr*dY~XSMrYdO8c5OLNn95u@
      zD!WODEmU_!I|x^FB%vn|MYoO)^bn$%?54Wu)1l!~JFa3-!vJC8g8kER4cEE+ifSw&
      z{i2mvbGvg%3?r@K24ScrL$jlf5!__LdqOtMYDzW2K<2Dx=D$<OsY1qdv?D?2T(Mn|
      z_bWx=ZCFJ|5V}^XCCk~gJX`&T#+aG|VZN32f9Qor(^<A^t5r`dI-<g(XGresb`o(+
      z>Bzz$BwbcvcunZ}T||?>avE3==|7UmR||fr9L6lxOX9UsX96a=74lsjw=qpf6so>g
      z5>IVaWnYWLrxhSUUvgdHEjU)Krn=a3p74?84n}#!d5<VX@RN$Dh61US(hmPed3E42
      zdv)^HM&Jny8<R&!8OP`{qDSa8CJ)gcojt)2;RvH&0-SN)yAb1jjWaAW?keNtaf>ZF
      z<1q>*kl~Zx1&lDma=-`}F%B_$f=R-A^znBuuM}rFjqQFwJbDm2;J^q}lC}V>&;&fv
      z0Opp3!0$rf^(Nr?zkxqu+}Pq&u^m-Ym{7SiD*J@wH<(+;nE8GNGfVi~ATr2QfahG@
      lHiqz$NxZ^i?BE%SP2|=?auM7MBJbk?p9!W({2(79@(VzhEmi;k
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~+iw(Q96jI8>@M9-p+GMz?aHN4+TEoqEk&gl#Zt7|7Hk0pyfAG?7~GwO-C2Za
      zd_o^I8Xvr*#6%&+KG+ycWU-Loi!l*>!DkcSNPO^Lu%2&bIvu);Jj~3u-{t(y@0{QF
      z+dKc>ybWL%j3`0^JI?6m^$VHeo2GRtV;dLj%xOE9&5V_@wz<!?3+7bGHYN=_3RR$9
      zZq8(NZap}4#+c@8L?BTC5j-dm&PgzV%_m0xcW0kKq~Ekmdr&~>=sYT*4&`Tz7!=fL
      zs6k9%&8TS^<E7k`Q8=tmWetIKqxoq)dsHu&^0zms+NaH;KxbvV>d7&3TgSuLbsmjD
      zpg}_;){&YdDj;$-oZO%xid6z@r}LJrn^w^mfC6_oEP|@_RnBxCuSFQG8sgYUa7)iQ
      zxvkWjM8oIxY>A6X!I1Hf^P#q4gi=&Qrv_Wy@b@|Fv!kzlZsZ*rI?%}sP8qhpJWdvb
      zh<CU`W=gi1%?w+moKetiGjH|PB88n%qy-usrYkpS=t4%I)?!@^XN{a;k#fTlT%eAK
      z6vi$M-RKd}f*b_es|e^33L;2zcF9`Vqv0_;&RR0gmGmt6H&z3n-YM+W(1(7O)oHyr
      zmM<6{N1kE*QQ4TjbOSiGsj`}UrKFHFfwnZe-mX-FtI8Y3MS<1R`Lh@ObA;XE$?;%^
      zq8Mg<R$QG)Gj}#?_)w$}!+zAs*RvW%@SH%MJ~QKQV62B1gS>Q-p}_XabSon=t@|ow
      zC|{BmQ@s)C=phYb7^g5+6q5q|6**MDj@z8>Bdae^Y%xsWh-?F-n66UP)uH-i8>weO
      zO&G;|_PlXOFE~Y5V;1)tud|uVNS?<vyd+Czl}^89T!E-r9G3MX%j%GPy{2Iswo@Lt
      zhov!@FBPVZ1Ey?3O%?63OQy<F9<eN=FqGAcMR}7NswIZaL|6EP`9L-jzBNAVc$}%_
      zsE1#<7Ea!P_B{t7tmZq$FOY|d0@iS(xtmarwfrRk)_DL2xKr+pNq}UkjP=VXs~H@)
      zNR+pD;%x`1$=&TE#n41rk^-BbhdJnBMv|%PXkNy1S-s12-V0zwe5{Cv#m0h-9@Z!1
      z5GHz;GN|lP=MYc+faXTEJC$BQi-K8%)xk@uXjJ9=?W>3;W*7fT%=3h+#70CoexJWS
      zAkPnp{1I9>PUB;T!)_Pd=g@@&9&z&N!X}QSI%yiQ#o@67ThT^6gmm0v_@&3NR~<+#
      zpj}{m4vC!$NDAy#Q*m_xkA{$pt7Ysiqj#Wn78+Nd5V*YfXX`T2N9Zr`DZ_n6u|KC}
      zvuMC&v~%2pF9KwHeX_k6z#wUaxI<D5@njlL;we&UpdI^|fF%1ghCH%Gu1Hh2-@^W5
      zH*jE78JI(TN{ZLoUB)w)LZa1C^2*{rscXK9O^!-esNhx9;cGPW+lFr(Qkz{skJKva
      z_dG@!E=H}TS|N_vy*&c&@V83bb}^<5&SAX_mguH%6lv^|A`(kJrhi$ymtM)>Tb`b$
      zP~S1Vd3tcoVUTnYeOcO_#HB3TD2wz^<yUf%mx+DH<8sauqfP0TGBmWfGA!Vrz{&oA
      z6o0oY`{YV-ouFkB`H^K`rt&ufQnYzQLY#krLD?B7%90fPGxfsvICOX!Z(-sXuixS2
      zY$MzP{N#YTcelm^6?oA%GtFIcUr4Mx`E%f8$Un(W=7siMPzLUI;aCU*K^IzQ7w-j%
      z)J^_ZCVz*?|3(+?P~+bp;KB*#Cb=%i;taa*vVVV$a7A{Yc(ROFSO^sVE7ZwW^s2nw
      r^UAXJZbQ1u68r-jaMuazHl(<3ejF#gJE2QyFokJ;Wxt%@GlS57g>gAY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+YflqF6o%g^h0>+S{UTmKytM^cQBf2`3DHj#l@bzTOx(f*mTb4UofeFK&@cWT
      zO#~86`~m(b<2&1>v@Eq|v%531=REVC%k1wzKYjt2#^V?w0%O}&+1fLUySBS&D!Hf3
      zEtPl7XC+73S@qtLF+>Hf|HEogDbLQ8l*~#MLz}>0$k+!7L|rQ{1$r~uz;rC`n5D0~
      zIVWIPN0_3(Ro|jcRo2e$II?yxI<?K)uB{dXW|Cp%>oBCwJ+($fON9+-paoqCbf8<{
      za<aKw9E>4>7}{g#r%O28kX8eI7}Q$~3A7|rYZ`GjfjA6-u8i%<<x)N;y;Upc_z5bk
      zTh5y0*?Jx<M%9+h)QpFtI#Dp@MYz24EN-)41Y(;~E&FBZPo~026zH)wHkP(nE19v2
      zO1jcxeJbfbDv&HoSDE!jb2`24PSvGe_o*HN{hrJh%Cep$kf4NW>DY|5#eSaKmg{P+
      zMtQK3TGL6NNFa$+ea{630<C4sDKX!jwS1l9`tbZyQQe<i&e$}2I)N#eY$8i3dX0uF
      zQ|H7=SHi2V3JjbQN(Fu|fjgKH=sw}YjYa~elCmB1iCfA`&r){5^;6!e&lrt{Dj5mc
      zkXV#zMHUNAS-!A5R*vUrCm0ynLdjc~Pi@_XUB^FxDc$3^#I9}O-HHe=_CNn45#7Xm
      z8(i-|g3nIQ-qNmx@4@usA<m>H_R*96iN05d7}&?~H{WlB&t63Nd`aR830Vwa73a7z
      zR`JGpT;PlxT;y)TAC2;BgyTyX4|X&8*56vw-_i4xg9tRd&0l=u1GO+31VA2IT;YnA
      zI^){|;#gJ1aou+uB#a-cO4$6k#yQ)tIby2`f~^^-$OH*97{c(x<N?yhatvRB!$jw6
      zl4DdQ87##lIl2fpIMT^sV+Q0!&UFZJpL~FuC&BNSS+7QDyb6xv7H$(GbSpN%-93pb
      z6Svy{SJ5dji~IkJ`#{{s2Dk^9^VQ8Z3^t_h6LFs#;EsZwui_f^#+MpIZErjb^0nYM
      G)uX@2wS$TP
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|QBM;=5dNkutzHYLh@t`(1-%yJM3I*oOdyn0D-uh1!Iz~hbj|gyxjUf#Cu8(Q
      zqYwT7f0S`{uN2yvkjw4v?0)mjH#56`{{H$6U<ofWND!t!iWAXx!c*lPIgxBfP9ti%
      z&epN(?kahjL5eUwfYC>U^h@QbXq7N!R|g;)u53y#DiwAKsdfKAT1et*4ns&2Mytw`
      zTgT0P8SIFCR}yYi{km{>MWD3Z*-S+Z6%z7;>^&k&96@q8!rejSnGV8GODHcQJc`vi
      z;xuwL1JP=zdRQ`!W~<f^Eoo%a5n=57po=9CtGaf661(u$k&Lzjc_@QG9@JXGV_|ls
      zQ07UrbtY6HWSd+JcgK%wxNcYad5qoDl5Ia!k@CISH6_AQq2GaEZM5sMr6FMk(}cN!
      zcC3j5U11IBVhPEXuT=^D_y1ex-pDNeggd|Eztt%aR_t=QU(DX6@+%g&2{}B5&C0oC
      zofZ)$?Krod<j)$IMG*@b%o8RCvg=@Sc!EX32y@mV5k&6}4@1cvPuc}8Jhl1fUeG7P
      z%%w6}TFpNW>awi#{Tx1f5sNxF@|;4FpAq;z^UXq<#|&GmNbm=wi}OEl<r}XOuz0l0
      z?iwT4k!AZ<j6x2>Y%v}q7-bH=L%81Idd2%X2A$LBFu)r_k&h3%6#RxTX3hyWG0p*q
      z!`$wWt?;acC9+@iXhg+q?=J{SblDP^z#aDCH-&qQpJcBTTT>>@*Stz;o`tV{Y<q^S
      z7@uBXyKmTZ<h;?QS2K9PIS?LVmPcK_4?GX?Y!$y_?k5U_&wc!L!@nG(y8IR#JY`>9
      X=p|n1Of3^h7trEJ&y4!#hHd#D!!r?>
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`(TT|0O6#h1prnEsWB61a|aw)fn7t|I|tS~ZD>H}JwQO8NswS-9%rrlcp5wH4!
      z;)BDpf5ZRbc(Ms4wK$z-b9TRT&bQw=C%^vu_z7SIFH|TDlZVD<<5;gXET^msek}9@
      zQL*(`#Y1k2g2fvuA`G|MP+7Nf<T~7u7>4MY<yc~aVSFyvhTXDxg^-z4fgzH0OFWJa
      zbZO{Bl%XeQIXqvl6nXWvQM5Tjf6g@xyI@o;&ki;t;=rmgB-^9^!#BgAaGPPI9eKfn
      zlA2X+2;RH|!{A&>I_O42=*|6191Pbr4B!Ssyv#)qf?+Jcw@7!9Ac310Rx!jd^gl5)
      zj9`?Zn__MXQMHP7!RdZeSA}f?_PEHzFwUTwwo$8Dr35B0rDBqFZ%Y*R(vZY$1}&V8
      zVaBhOZW~m4zv7udh47Y&X@*`ezK`4^x=uNcS)^3Vk(if9S&x>6c`OjePi{4DRH&fS
      z;XJ-~OCIS(QqN*Z!!mS+gu@#<PE8n&N&W*DwP|IwLaicGx0Fo9{h+ITwla9$729sz
      zDQz8_{76`?qvBx;YR9&D*|0ZFlh<k?)T36Eq$DiE3(-VTQ=2pm#Pg~SqEkZ%D(ysj
      zLxxL4ed||sr{s;mrKW*kB#JACQeKFmF9h)gWQbW!&B76a(ozTSx%H~aw=HkXdi-r~
      z#+SWpn4(_qpicv!&>IaWJyo(c$W~~L&M$mJ?5jMF(=#r2bA;SQg6u&b1r6O~5gymj
      zLop)gMPCr>H(|V(>nt~aivHcjGYm51m-@%fa7)2C?xZ8bk?)vEcMf-+Vlf>Zj-KOg
      z?gZNY31ak*>@R#FnxoKhkAB{|iU)E{)0;xHKuzQkdP7!$((MzGw}f~{Q}7-sd?3G%
      zgf)>y85!6T{n95E&{t^xF`h`;tMVcWJ$3TP$m~h1VV$m)q|0sKDT$Cm7oK5L%J!VH
      HE6Dx@h{9mz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OHUI~7(KV0c1k-y<tY|K5U`yp<NH-a3D#&bz@peFuBPP%hD=-1-Xd;w?+@^?
      zcH=^c#NfiX(!?KS{O-(93KTI-=g!Ri?)lDl&S`)D`Su;aCCsP@Fbu9)8`h>#dv2Fk
      z48b>ru_{WAv9K=eN?C=%5SJB(W6}OXVT~6BL(~$YY8UE)*BFM)Ll85&+c_>W3?auV
      zaEGDGt@NOB1W;a~%}9+q1j?5g*b+l{$}Zbtnqf3~3~nmVpv+d5c@#l(YKS4u5KN}>
      zF?69vMK{CHKbdLhMIS>)v9kW6!I%abNv4iz-3Eq}8bS!myHgreMA|Tj(<+7-#twCL
      zC4IO!XO1=cXc)#Bnm(5`v$KoY`wSC@o3=QYk<*Q8IEyg`ZH0>lA|ZH^HG7ruM%njD
      za-Pu8hA2a)X_xtYy;R`UMXTU&X;P(VIeDvU%V+<kB35lu=JXL1y|j>-ibc-5o(j|R
      zytkQ?Z@P4jQ63^h-!JR&H9ruJ_T~YJKtxnL44S>hMb3>51(iA{mt0sXirO`ALuQHs
      zL8+3R@|IKQ(xuxPGE)0ce#U&9RdHuu#&_{U8?v6za+P|u$RF5JoR~N1q;wb~q+^hN
      zN<jo<6zDD>gW#?tF0B!&h(V)kJ3W=$N+6|wMTef=!3l<K^y_RJ1A2N3i5-jt@Dr-?
      z0ZMQi<DXrqb9C*a2EZdIFwucIbYmV#EYMf(1?ZZhk4~$+OA{GV80T@pZ#_*lvMQ{n
      zso5TG)P4Je(4RJ8g&SC5Ou9ob7`W(T87?*u(!XHf6M+UGDaw{W!G)0%Q-Ke|=+CCF
      z#o_*ghf6IFU;e+&n=KA2xPq&G=RFA$`=s?Gcu8zu9U;Lr@>0rq9XDD`G5+y@1g~2V
      zVYu0t;+gM7g7oX(!Y$YJADA-JzYvj{n&~}Zy2x_i4dQr<9=yW<-Z!yK_zK4<Wz)V<
      JcU?O7{sQ%bAff;O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)Ad3aRS75}|tCX-AqA&JT&i!6aAlY!Bqlo}G&1VR%)CJhK$c_fd?!&&0Y8<W`9
      z)@nh;eJ9nb*fz9SQG}srOQ9{OSi3KFu~zJ6)qbD<w|@Pd_g-cunV^I(@7;Iqxo7>I
      zb8a~O;S0wAT!Qy~DAF){hkm`@A4>I^@kq!r`mIop6^n+}>q$M5)O&k6O{32TkA~?5
      zj3an7_;t%ln%mNrk<xHcTLJsB;q9<tHE8hl>So+Bk{ad}^4d0pt%0Z!?lBCjW_hB2
      zy~ECvrCq7iMzh=M(J;3y5>JN;RN2SL6>2l$5vzx1%J{X~Fe5#dhLXi*+_aiBOsg%_
      z+#EGxM%-$s>(t;`k?1!3C`P4%!Z;1%+swGJHXYk$Bs=tNQA0y@TcS&kcIrt}zFnfn
      z>M<FEIfc>-V=Iv`9Gx02EIcu64_!zZ7DG<s$T)`Ok|~-k_Fkwk5tIDTFjZk1rfZlY
      zhm(n3BWamNswJ6-Wz#`Ri)+Q*l3rK(#6mM{;Tpz83@iWO%-Xs_-YkP8x{OBDD0opK
      z=FC<21Zo{Qx%84_EIFe<(BMY^K_BWh%osc4If)AMFkeFz%@xbD7SY#5XARxQcp`zF
      zDo$LYFcY)NumG3&aOqh~Xhk?&lU1y+5T9a=bTn`3xMo>f>#DV9$H$0+4dwVW8hp5%
      za4qmUE1r>7Sd2yuDnCOExZ`aos<XV;ZQEgV5!$w+BS?NM!7?9~YN!+?`Fje>v4TZs
      zCBiK4ctpebZn7LMhuTnzW)@7;*lzi;3avh@9wE!&Qdon}5NO7AX+6qZTrie(n<d8W
      z3Tv^BB8b~H>6B$|H@kGpOvI_AwzaOa6jx~QCZ(WD5vIs4)`gKQ#b;ShJM04kf|rd7
      zn{cHAxLgy_uyza-<VVvDQek7vVJyEX3Cg!9_)zM{)wsro&uOSHNY^Mp=Lt~Q3Y|e_
      z@>=6`nFU+hT8Kxd#9JglT?*Y`1Cp*_A7MCswPF593kV>h&;yhE6xrOqTu+gA*2g+c
      z(E(hm5X~OlBu547afO6H*t@ZHWyfkCu4C1nOY@b`q!h~F_oEkSh3nBrn9}T)MBEbT
      zwA@?U(o)wctOE+=@N3W#(p*P_k=@d(N6iRfkiY3-P(x9Q!e$i)ZdBwcro@OjLD5>|
      zqhCHGuD2+B6+1PQGj1yrU1=ExGAYLBbHm%L&ReN<>~yd0Xm1;4^kWz1vfFkix|rZX
      zD~I`Lo<EfxejL3VF<t4XZW--nJds@1Z>Bb|gv_Kps_5~OQD6z1HyHUGqtINiEv@Yy
      zg*$PVgy24f`|*I-U|8%$;a;8L9)+C(5v_H0-9Du7FdlK*P#c?pi)Id(u!tU1_?m3X
      z9N8enYwyd>V+voF9f^BKqBl!_Lg7iFSCGCuVOfcoy;X*%@J%1S!3mci_t9o4d<#P?
      zj2I_=EFB}PTIJ-o6}}_%vfiYz-AE>lZlOM{@Lh*n?{~O8Trj*EFDcVUq-(Su0aQ#+
      zM$EW?{CR~#ILsiJsr5!uI+Gq@`7sELQ7?`td=E#RYVXveX=jTtEKW-0Yny49nd&rC
      zCa)Bdnqvyz7kOU$%9LyBdY=_qC6_d_E7joCijcxRdauEofDb=nnb;*H<PGfooB~m!
      z96!M+A5Jo;*-iV5!b^DBX&K8C>3BC?pD^6(M@ZmQKY`N<uS&SIe))P$;b->OfPDQz
      z;g|B|?UQ?&P=2lO8=;i+*talglfP5=A%4$!>P~?X?zHe{M9A&CY2F>@4|4iA)kid(
      zmvcTF5ALv|R_1n`uyB0kNZF7uf0YE-`e8UYn3qXoH``;9g|`*n#9ujoQg%TIAX$zA
      z6yX+*e=7W4IP5J4L&IDDR`{1}`NN4c5z%7Wm&Xw|==qWi-Ykd%-p@TKl1md;MKV_G
      zH+!i4W`pEgk(0MlJ}dauM7|=vO9J&rF#b84uZmB<O}&b;u0}P#CpcU<59jlX{J4NL
      z21{;?uB^4LtO}7ex&9P<fefbPWLDEUaJ+b7vaj!;4cF$$uE@%+z(ts0%btl@uIx4R
      zPUGoGfkT-662=E8dJcc<4r8{Ep5<N<#PSL|4k>z{ro=v5gZRv|t_F|XZ5_GV8S;4n
      zts-y)ArX49EASNlXOk%VAU=5%i;B=jms;yHXlf5uugsuj56T0@8MF;yL9lwgOYqu+
      zS;6WJF2Q3Hs)E%WHlZ|7LV{yHWoOWN7@GrhVY7$YuiAaTEWNp9Np30OBtr(<xR}!(
      z6u&dr-r_EHEb@pPnj5ptJ&xYPNRpB~g>mwlGm*Afg*^S-?00zj9iCjyZe%WiFEevD
      z6E(Lmf;*Y<U8upWsKxEPFYo3R^$z0bPTt?{!aCf|o6|kKm)y%N--kFJ!WY@wZ^I*a
      z0DJH_2H8U&X2*OK2k{tQWcxlz>g#xdW%4B6!Cw3qPie*M(c{>K1$#|`XKffCHRQPg
      zpJ)E&VHv(a=|z;Z1vlbLT)l`5wDu-q;3QV#D_nW_kAFNk`Nnp>rA{U>gg3Wo?e!<H
      zi+QX+j$Ikt)*j5^XoBDZ2l#xJ7<rDkI!MGnZ(B6Ok>TRW%lGY!0|y2Xc!zC=N2a2y
      z^B}ne`D+4Gf=6(7dmuRF2<{z3!<0b+IfDoJyJzbV6yJ~X_wlVw!7C48@3ij2*ek1j
      zvf3xB{j%DhXXRX064;p8mr=<+JOeMIj_&|o!KFCO*uBa)yk=V+aIA2xragEDL$py=
      z2k2!HPfe$%L$tR@X1Qzs2mBKI2a21f4x-UPR7_qO92`Vfy|c{hrn!0ReR=Eso~9vO
      z?%-@e_GF!K^k<Mg>8|aQ?wTj3Jx%3KaW7=k0RGIcHwcP13B|WC8)p#0+i1Ywu$17q
      z0`IbEy+`=H&ld0>wtx@v+#krgKVUm8?hn|3kVe>t7YHF~HJqHT`ysxC%gcW7gPbWP
      zHt|DSw9{V%2htrinJ|1xe|?adk=Qi`PvNrQ37psifABa?452J|6hG!)6b!-U`gw=&
      z%1%ChDvzJb<5xS0gx?10iI~@O<!FOaE9ZZ#jKgG>#6qnSi?yme{~ELYHR6x>lWk-p
      zBlZTpo6N>{0DrOl<4kf*+`=6xiK_Bus(fn?$^yjandX{jNOZz(cW!MO|Kn#m%Cw6x
      zUYlX7bn2igtFp>PR1wBA88`8?CZp{m75$@7(L5@ePemary7-(GaZrAwqIU`vHBwO%
      R6)mBnrRS{ZT{|xC{U4Rh&T;?%
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      e^gx=~7#M(RftCYlpn<FmKmni#JCI~z-~a%m{3a&=
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4-%ry}6#njhm6bZ!z=@!+>CmmiRebOTf+AqDI0<oNMqW(U-E1{oOWHf#-@-q@
      zGyZ@?6MgrOGM-!J7A+5^>22>h=R4;+-#I^jef<t#9gh^m7}nmI@6DkRe6ZcFA^1=j
      zJ<)fJS3KatY&-nGF>QC(vj%<c3Iz#<<p|=Rm=r@P67zS~mtKcE42tdA!ZztI*N_Oq
      zF^NS}_(W!dVXkBb0r!RNxxua-NID$`cEm8XX*m+R#Skx7S`3LD%BW%nSp~BUGm~sP
      z4kgi$!yH4t!vovro$Wtqo5B=>AWU+U2E%m?X{dy6*e>56^xND&lw~DB&oZ5s>D%%?
      zGNv{|5-Q?Y)UW`Jh=`s|32R|L|EnwYnjyXGmuei+6o^VWDoLd!NftCHn3AQ!z@#r{
      zrIMqhVHNin(p@eZ-0g~9*jZir${H%rNphbbJElb)JucVl(GpSK+k)oN9ths#Vx!Vh
      zu*R@3(RZxnp6`3UiYgWr7!0eC6?kTLq=<5ydqayK%O3`{=?#2~KewgIOIPn*P3A&@
      z+KAJeM2sGi0GM5n^P+W5&}|wTd9Q`b&FBQOId+cB36#Vs67f%%KO<udc{)=R3K+N%
      zTIi7D8^I0wN^erXz|E^6GL!<agj*7e+gKifw?cMQK(Btm$^@;F9e6^Rr(w~2cu$Qp
      zq)?<DWZ^qwB5x^L)+y?7{Tz4o&sd>`?w=y}`XlB~F#QeHHy3#D<17rzAdA|lzZ^*d
      b)XDOKc7GoQ9E4>ri5Ev@86Hwp4C}uEIoRgT
      
      literal 0
      HcmV?d00001
      
      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
      zcmah`%TB^j5Is{Kl~P3o@qtDcEC7vFH!f5b8c8(hLI?|Y1#Y0G&;%~ZZ<+W=T=)Tg
      zlyPoBY<$GU+&eQpXU@6PxA&J<0J~Vzp%Hd&>|1+i_3xZ+%aUR!t+wpA)|KcBY1ds*
      z^;#`g91o=Qx))wkxH`gw%^>SMh{*<vF(FFG1_{5&_(+28bRFr~E`hEI(L+@h387rR
      zMhKs<zJU;?O~haj5@n|=E(e{u=v9?h!hG3l*lx}4IllK%Gc4OqpRiZ{$HNcj2LyxH
      zaQ5jboV(7~VjwJ-&@n}b^rbCXHquk;GWg4~i4`OXajq-E6%8qxJf-3ddJR!>l*jeI
      zce|||VuR;|I3gUH65`(#;@~%PC(fD0H}M@QJj1-_M8gc9QNOu`1n1@mfLY9O#hXEr
      zPem>=T2tsk<`Jncw&8b=Shna-NRLqC32J(pttjEeiIIKAC?l~#;Q^^9EPWq$%9K*T
      MP;6o-!!!-6AN)3n7XSbN
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<T~8W86g|VoQnsu3LDl++i4U+QZhZ2A#<bcru|Y||@V>yPV-~i7!Sb_eqBiM6
      ze?Wg!(=)q7h*|qEJ9qA$d(OFc=Fi_>zX2SgltW6Oa_isuV{iCf^{+iG$J)Emy})bA
      zKz8(L*lUL;;rKl4${>e~Kxr2KSzh_0;3diu*qcR7NgHw~wcie8#3ztbeWjHj2yEAq
      zE9&303j0+7>x01_3#7}HmO$o|j%=hc=O7PTpionNc`@p><>1mN2rSjYjvuuAfimYw
      zGNW(QP+<QRxrDB%y-e3<vC|kpO9H#)S4bwFE3G^P-Z{wO4gH5vCnUR0A}f_E|7R1(
      z4$Smya&9=-#1?zzIW{D_XIl2C7JKpnpO;y0-|`BpW?XhN91S}1i!y^*OX%{zj2|VE
      zr@69RDdU^(B*VoCGxL^_$6avGx<BFEGe}{cUn@#_C@^+n02Z*w6R?D3W=!!h(JAhh
      zyZ?ydwAzlcA1V7OVpxe$&kPn;XvN5`Vr{}THS&Ps5B{1p@-@MT!29Pej)*pNdDmt2
      W6V_jPX;7~@Lz16(;X{q2cK!i?&b8M7
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`%?M@Rx6g|@qO6y920%D7Th|pH)ir*i^L?vhwG!YC5L}QkAq+^ygX}6X5+m|r$
      zzkf9mNHp;Qd=j5RJTt7@EyiqicV_Or=bm%!{QUjx2Y?0KNgyI{;f>RAcJ0<%Ro}Kf
      zx$D_AZ^yOQq$?}lifVaJ8dd2g5EGaPr!L9YPTLJ<^a;#_GrC}_vL!ud%asO8V4!8t
      zRio}7%&mkAL(oSw{wCfP7*uuTDaQ>00>h@*ZhOkLA1H54dd%xv)QR^5qWQwQK<pt^
      zq!2~g!U<Rj3>{Pc-<~N9BAtZ5h=m0D6Br{2%{JUHh0&v=(-x9Q38Yt4T|RB^Y{}+x
      zEnKr~R2+BRX)3+<4`W_UwFG+QcYQlH1j@=d)oS@42V(hhVO?`LXJHzX6ivS=T3a9>
      z$^!AG9)Z>}XCV)ZGpM-IX$Cgx>Y{~<xWu}adPl}|uB?ws7HnMRe%pYu*QN%#V&N*T
      z(HBw*V9Iq*Ham{Xj`=c4vAYr&Vr7uxk9;~`=oz}cYP~s>n_6qMn-#gNw1Xo@;owe|
      z^b|0~(M0*i5#hrL@oq=-5crSr<+K?+$<;HH2jq$e7$|<n;Kl)l_mJUol*?0l82@65
      zv-}R5;w65Uk;Wrr@fbOtYcN7!0%!OK&SKJszi$Wt$>LXx=k_tx1xqoc`}bqjfQ*@a
      zG5|^9JZ1>PI~lO;kgcvN5iYZjS&h1n!r~`n{RZ<NVCi6v%@*E^!`#QiU)`Qr^s#z_
      zj%-rQ3(|dwS+3{tD#W4Wb4XLjb;AL;ft$W0+i(Kny3J?8Md$+vtUaiO{D}K70=G=o
      F?LQw^@cIA%
      
      literal 0
      HcmV?d00001
      
      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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
      Z&6KA8ir(_!*Lar30PRKp_~1GCKL+UbNiF~Y
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6O>Y}j6g}5=?8G=p>!yLGElJa~*iPCh9|cNEsWC-Za-7QJW=WWgAMsS<nc#U2
      z?T!_HfIq+wV9`nhBo>G@3q;wlLaMrK`x_AFjZNYxm0Ve#_wIf7-g7_Bd%yqt%dY_5
      z#3vaf1jW0~u5-_dzV?D`ORIa@YU_?~+4{b(?6y*Rsbbr)ltD^x{)oBlb#{DJ*1GF$
      z^|Z2;&LAzAJ!)t|W-u<8F=v+V5U~<=cAT!W<tstvcH>rM^G;bHRl#H>3?l6Wdc*O1
      zD#?@~n21g4>y5P}<lFBB`B+iD)BJ3`v1#<>S`x|0n}U<WC)Ksv>y2i)-b^C(-DAOt
      zK9qf{u{m^<p8H0S-RUY<wN&6TrSVAl%GF_4P^fJOJ?ltSaktzkvh0E7svxb~UbJ*Y
      zuvmMs{Xut)^>r`s^bJA1FxtHOvRM>21gT2cQWFrop2KT6l|>Q@In3dlAXzAGn3MB4
      zoJ7{_F61zaR|V5GFHrSfXG?XP{ki08q3ie?PS-Q?K$$W%3YJHvyw4w&nlim5IJ?Sm
      zZ!2AQI_&aHp%{nhQ^F>bf^AwKcUrAVn=DZ^FVZSdoWg~}JyN?W(AHt2Ra5%7zwdH*
      z2ru+t3SHF+ch%uY<eMAwQ#C^pst?^ya((MAd9hloX7MiG&)_}5#h2qp4%hI3V2ah-
      zJIeLG^juHhk0(Ob3xV=O%^2Va#zNgT4anMIuj{H$J#%BG4~TTxFinuF2JBPCccMr|
      z8GI~Q7)3!g>;Ef`1ri~N1jfLNO3q9mOU*01dkGj0O%BOZl&6Q}W0a2%$$82rhU6K>
      zAlJ-AHcSJK8IMzx#`vGZX(FBB?sM9uxXzT8_i(oKGv-TY_OMvGw1=gK)F*I}-+XNI
      z7k&R=mVaUjkMIWd3(TLsD4@vI>`KH;#Jgpp^4-7+E)B3&xC+k_^1yuK$mv+~cN{I(
      zKOIC9T!uxB$?|G!&o}8HrM}}ovEytE$yZ~LhTsaHTm$yj=nzjvgm@e846^u&Fs9!5
      z<=-G{D?eh9|D~UB^@|esEq;v9`eDDgIi$IN%C<e@u%2@u&p3?dILq~*ee?Ty&tnzW
      b2{y(7eaKo8{N0G7eT17_4Lt;9RFL=&hGJ;1
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7OH&+G7(I8MFmwPR5RnlP37H4b1T_z4f+8A2G9l54V`(-vGq<2)(?fONiDBc4
      z(yfnO)J0Zk`6#UlNlHr=E?oE%T)OaQsOQd1%>Wr37Cn9YKF&Gc`M&$jAOHNk3*a;g
      zQ3M3Cx2)UN9n=57c2`X$?<jLktvhC3Z8|c)CZ!r*%;%e5*DcSN-lF9=D^~ISC_)0g
      z8o_idp1-zoOBPiW5dm}6t(dK`i@t9XbU&0p#Mhj@z~s$b>w`@h4N)0^*oG&IvLxN2
      z6c9@UQfsz9J|i&J7Kg_pS=+VMyud`F{r06~K_IkPF3C;^JYk><Mhrpp8#spJ0>MPG
      zpjQSBbRs6ule1m9Tv=a{-VJNTp}@Xexo9~B%d_=&eKMpK3(U6_(1^R5n*9zkmXNkW
      zpxalLr}D~Da$UNLjwWvA{y!gi=`eF;FOy_hJR^`iat3s`&l-rLBZd(?r;QjFSU!rG
      zN7qDWed$ovk>g+~*aC)hOAQ}7k-}sYX@Svp(HWS+G)Y;i0t3~wm=$F^=7Q&0n>pK8
      znHXj;8^vjXevNiu*}(I7fdE#iM1YzZd+$gl`K~}$NfsT;vy@$S1y1eVl~*1wWTwVk
      zy<7E}WFdxgn2X}Pz)<Tjc()8>kY)I*QY|P#tyC0i?|ch}<RLXjknzS*273<k242F;
      z0v!Y`SWbn2R}Rba{?jd@*fUjY8dZu{3@qYR8bjNbTqQl%V$$Dh!E&{t^!;fl%u7`>
      z>+x3BRtp^+!9@eF;}R_+bp!Q4QtC<{*RH!l$A(wlke=Gqcf48=d($QmzFqSy!kQw1
      zz{%>ac6wPuJh&gTu7jA>mMM@v1nQ86nJ-toqP%G9e$><4Gp$wAfhE^vi+3#F*WGxS
      z{x$dPZ#fv{<qz@+^EaS-0RLG6y7d9Qy}CK_JH+Q0y1A=|qbpnw^4*h4@1QsJ5Phlm
      z4hDYWQ~)RV+g)A$n2=ip`Up>QZjfs{f+0M`w;m0XB0$JEo~{FbNOBE4lS=RYijf_R
      z1}|)5By}I7@n10V4hOw_2Ga4_hZxIm1w=f(d+*=Bn#_ab1U@0_r&RG7Ciph-c~!w^
      z4ZERW1}C}BO2s%%)wLvWyspLJZml>G%x>d^X1<T4Rx&*M0Os3ULJaFK(*K<jRC-Xu
      zT`Kv4QQyTFz9jxvdt6A=H3VqBW@e+qi#Stf{*BC0GH26|aCUiW@)0h~g@R|o+ZfY~
      z1L4`Z$WTPjFHHT8E)Iu65AfPnSPX>glKyO}nV=WIHr0I1RDOd#d`suQqpI&2{STPt
      zTn0Z@)m^IbHXO=g374sgTA1|9^dpS3$l)p#8tk3RxW>}x!DKaxFmd~F9d97Qop16~
      P0D0WtyB1*zZvp=S9J)y!
      
      literal 0
      HcmV?d00001
      
      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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
      G!~H+g$g2YY
      
      literal 0
      HcmV?d00001
      
      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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
      QosR2`Fgof-bra?MH{nTHP5=M^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}O;_7i5WQnu3maiOln@d~fYeQF;l`wG`sEZt93W0@AeaDK;l4veWr<49#iyJ6
      zoNSw(Luk9`vWxzR{DgGVb{R5HHb&Ht9v@5ZjqcpJGw;p(`R2FZ0o=xxh6o|MYyM!i
      z3jV(3>=dME$--0FunX(vwk<X+v7adk+g1w=QNqO8==-)?|4xAjTHUp4d!|F6GVeTh
      zzrBmer<R|YAxu@y=IBN&5@L5P$C9&z+3f$KdjSi!Xb49Za~p(c$^BNuK}hQ8M?8T(
      zq;({4fpF~%?qk=o@=aANM=UoR+rkUP5r!&m-LyAM&r;>-7^5mPg3&AFoJw+n5n&Uq
      z^m-h}XLTH?-n30As^+fi&9^LnO?=<9ydXD@H<vA+@~>GxiZG&>d-rEmiZLCdxZL;b
      z=;$bpYnaq9K^PC8&wp8UOd-bS+Av#IquJmB^Mcio$CBS2kTB*8x$3!l!jqQp7d^Kz
      zFQsQ~H>F^TzHDwoiOTBu5I5AB89LrWEWxY1j*oDQFt{UR*k>wxI?Lb!cL6mai*d~0
      zV-2?nnQ&ewH~ryywUX(&==cPma(<<iN^Nz1nQ-G&Qs=o92k;rb(C|6oYEPIhIqT8!
      zCB7o);XF7<`zjV}lbdj5dso!?_6C7ZnG(2*Sq)zk(ke*!n~pi$BlJtR#uasT2*aJy
      zv{7wqF@gJdprJ&#aKcb_q}UOjjs+|-#h&T;f^CG0VObr9Tv?sWLme7os<w}Gd=pe`
      zZDmtcOhdIZCfb49{j=zL4O1?(>S9k?E)R#ODJ7rzL~nJ&)#6SeSGC=V*iLl_iJIH=
      z>SEEd1$TFMdfZY_E^yg#gjcdn-xt0H?&fnwSJ#m<KOS|M<P`gONUA^IKz>5y3#8L(
      zittW-Nnn6+I<Fq^URiWw`T&DQK6;4M3*JXC6yPHK{EL}h<9%L@u${3O#zlUs)d()J
      zEvlNa!}z4bm@>xlhqzMB4~-w-YW^pNw@H&hz`t46KN!Tn0r6yDOLd7;xXz-9eNy-U
      znIHtWRwu+O-Yd~t#vyJR(F5d+mzb_h|BS+~xD!D&{|7D^`IjjEf_eV>9P!OIjIm1$
      zE1v~hI)*L1VE%F3gn<f5SjJ<1x3$l*9^efpe1tg5OA=v}7)>!4)Q@QzzzijEhf<iM
      yG+)<YJf;z>(PeDXcqrGcPOeEj;s`68*(mN|m19Ntw-!{ZhIM|cDMEOHP2eq9b-|+m
      
      literal 0
      HcmV?d00001
      
      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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
      TLmk`XMSjbF2>kDj&4RxH*e}Et
      
      literal 0
      HcmV?d00001
      
      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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
      L0s0ZN?-KnFH88$l
      
      literal 0
      HcmV?d00001
      
      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
      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
      CjNPaJ
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5+j7!S6kP`bq?DG3w%+QsRe@I0dVRoghC(`%DVGrfTJHhQK$Ip-a?t*kFFNCc
      zAK)kWF^)SYjF&!ie8^dQ?c3RVCHemI>o)*9c$h+rVe6g!!9LQ1kB&Ri1wRt{SR79D
      zsqF{c*DFH!PJbqN-3i3TP6`S`dF0OY6RU#Rbn5v+r^F7`yCc&T4SPD}K11@6<2vFo
      zLp)#TF(_4U$kT{pA%g^x4B5Kl^5*QY&wb18PdG!a?hWio&-R^=&z*`GI{`zfe&Qg<
      z#xK+L1E1T1tI!w{)mp`>q(N6?a2jW5CVMz!Sk23>`otzlq6Nxkp{HV%>W!vlS_dl5
      zF{siujgE>73^B8&VvV|*wYIUR;xZ*mlfqYN(PpJ#sJKoEp+(LOhE%g*wf2psiksAK
      zPAHTQS<9+eW{YA)>eTEuc8#`*t*}Vilva{t-eEhe=}OXJNO!!MKj3?gRPY}iN}*&7
      z8Pj#SU!B-Nz)8uh;SMHVKrgGo#n>CB@PMKC|LS6!bd1x71;pr~cS$@&)?GptdWv75
      zev;udooSiYfI`7V;+ZIkaEX|L<=+i{P}{J9DCV-tXPheLRuU4<CMBFtNw}y=xTHni
      zD_Z2frbYgBZ9&FwXlaSJv_**pEhBMLTatKNTb8J6S;9Z_?n0v(p3q8dnyrHsSXe_B
      z>*!$<Pif6(DB}QCJjXs>P{vC-UtxgPc#k&-@b<4g#eB~={fD7occ?zpB$5iq;T~}X
      G_kmw!WW+`Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVTUQ%Z7~KQ8XG)QqK%v-(3PUB5UaW<-RxXk@P&I(o8xAm}!<x)wWhQO)KlmG5
      z`s{<P2DDXwfUiFL?2~Kx=#zDyGZPG9WTECE=gT?YWq<p-<flI${Rm(Rr8wFYXgm5{
      z{eITHXWFH#XWaL)cf7Kdt>{(PsAjKwUe(;Fc}Br>y*MHYI)#4L(y4uGW5?L!ZA`)V
      zkzVFj=4Kt+^>o{F<47pzkxon}TQsVsZkeCx8<wFUR@N&OqpILap=8&xNBVSYm5NjK
      zvQ#V*qg~3|-jXz*CP-qZ-!-G^nvT7ipHraRP;jDwVokSdM)bE+Phy|$3_ej1v6;An
      zvxOr=9w38JBDP*8>Mm*JQ{qG6TlB67!Ib3b?rYUN)5@-qHm6FhWYH|yx>u`Gv)6ai
      zq%fmhrB0&kY?<4pphd|usP}P&+KHJ>%d}1Js)F{h@ipGhI$K5@&oGPQCowve!U!@d
      zp2aY+&Pb0*D0ogq5-9~I3#M%>*UB44b;YkySHamNvpV@@&4SC`vBMmUucgqAjPN$0
      zq6^&u`yG>1#PoHaxl)K(K7ZKNA!erK&GEW+TClV8Un7Yc{JUT&COjn=9TTaaQ*jD|
      zLb{-0z?WWD(SvSr_lk;M^a*KNMJJw;-1r4f>Fa+NKB=#78QXfzVv~00mgU?tw$>Y+
      zCFqpx+jp=u?3188>5}0s?ROFTg?$v~-LmZ8p0V-6lm`mZ?_{8GOul{76~9dxMGhN#
      zy&<v#1{xt{x6j+PvQgDNjw<_o=%3z1DN<O*8*$uf?4hP<QSl~jaxe_bC>vZfj3~M+
      z=hGS5q4^Y6@pc?+kfycf&#;PjFs~r(IjdqP&FZd^!n=4sj`vut|FND_e1IaSmUIxU
      zK<Aes;W>U}0vESAe@1%8@*(9BP&S1pT|uho)T*1tf+<#L*MTK9DOQ03HE-KY!O~sV
      zaJl&z9c_q$yBLFF(D{Ebh%{8boS@u>4od7t%5;ftd9r8a$&Tgi(^9XW61!U7v(I^|
      z^f`oK-k;{LbMz%X>Bktky@xYjWAp)kw&8hxcMt}!L>L7^Si}qRMTF$=1P&IcD_o?s
      zJ&bD;b!e^jpCN+JnZy^;zR%ajSqYwYc#*KVI_YzgZ$9j-1ox1?<Mf@;Cid`>HdIGW
      z8?NKLHV~=fqBan%<B~QItK+hW*)B1kmKJ*??_2u*4kz)5Bm9^{{yom%2Z>?P_qvZE
      z6JTH@%#b9JPX<>giTpFTN`w(9T_d$oDZNVkF<hrCiXybGp`ULGUc)TE1-V(C;w`Fu
      zgY#cf@M(?7%bz6_-#8jTQ80)35M%AD7UN$+jTi8Gi1FoC<6lFK7eis^T4DblYMc*+
      zeX%w2AECxKaC5)#1xZ|vX$ayHB<|8KmRkJqNwlKRT_WHviMLP;(!W4|!an^FquMT3
      zc5%BU52droMH(Llqq82GM=SkGf0J>ec1e5$J&2zR;wKn?a2Fe`_(z-U6XO3zmUl~j
      P8`$P4{-j2D0$qOrIK&@7
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7EO>Y}j6g|(eGl?^aQ{#q@KpKiu{FM&0X@EKjl(c~qCj|wJfJHTNrpdJSOc;+#
      z!m0wc6@?9|gg~@HY`Q2C2?(SL7Bs*Dgv6E|KY(9AId5j-ObQrxF*9%8yYJj{&b{yb
      z^w-xn06dBp6hs8FXZ7>?npS_qw3ap3SaY=%w^r3wb*FAP+O%!ChUL!LOGZ^eRG?pm
      zYgL`Wrxwo|6<0y0K+2mnZEeADOucHpsV`Oy1`~q6Wy7hPw)N8NaRG5spqHq1SGU}<
      zUTqk$Kj$xup2Lj~1fmx63*<{}b1Dib6`!L((%Tm%$K|NIzDg=$R-kjjv`lwOpd*tl
      zb7h*U;^@GDiX`q5NR&*=m~Ye;4d+E)K(b_4$X}-l3JNBp?uuEbahcXMPgIQ>tt)2B
      z-4M86MIRCZ-TLV!-vjLd2xytv)}i4t1qmNi(T_b8t)KQCI2M5H^5>3WM^vcj^<e#C
      z^(-51AeE-<^-a+lu36Q}Y!BNZAIe@Zmo43GI4s5FKVv3Z^Vqg>idYH?0_m0w5`@Qb
      z5RWL(wwpG@NoD&VVjt*BOFNuHO<l~sD$r&46{M`7vqA{$EKv~{*xev(wV+9kdWyn6
      zw5?GfX4F>Qb+1p!BX-7g>O2;iOtw9nWKU13n8K43;o1wX!?Vpp8tnHQz@II~aSYQ6
      zp58XeGr?a|aa@|zX}sRht280z+UE=_j%P5d;8}sg%T_~cS%{jvHtL$|=vMuV?bHlM
      z#YsHJc4$rsy!JomXm@Xy+D&RPH`UEyQo+1H;ZF7m#24&_Q!!>td5!G}Q#dFUvwc_{
      zJ~2db9~5+P+|64xf;dM!Ash>N;=L~qBERw);61~4ihqas75v6>Ut;g)97J$8-*J8c
      zgRm>Oha=Sw!o2}xlIeVa8Ai(3xCF@MH!!$^(noT@d7`W_?Yf6F;712YGSdSX@<=4H
      zFTi|-F>+_Z!z>UpH@Jb}9pEG(feU=UMc}uo@Es3)*x%L!PhdYaOMMBZ=_Rbx{!oyn
      z%72NI+MOmhx`Fggt^v9WTx8_C%yo&m-lKc(d--zy{${>ZGhd4N5}wo)4luK<(!<Db
      zCQGyka-RDaIg&z0a&w<ysPF{_zeD~q5_viN7Wqw#zRY2IuCR6M4@s%RtIiNh4SdMW
      zACcTAOmqc<xQb!^r}1gXijgL@5te$4BqEf5#Is_Y7=B&l+GAW3cpOjgEgR#A_Yd^s
      zNM#GL=(Ub(oc7zJlZ(K0FOd(?6C@HiisHXOq<ulxZ-e;eKOhbT5SIdj#-%}?D>t!E
      znzM-sx-+qfr!J$96T|(5k0nXpEn2p9>$ec${X81L_e8r%$9`aOeq>pGW<h?zDCfrT
      wYsj_nrfcIkL3gEVV}WZzUT6V3$x<58mHP@an<(9`?)Q+ouBJh!JP)4#8|S_Pp#T5?
      
      literal 0
      HcmV?d00001
      
      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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
      UCv)f5+ZSYzQbZ2xczMf@07jdo^8f$<
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk)S#Q%o5C`ztB+k_<X}MZ%%2ke<a^J;?H<d+f2YZdkW2h`>6;hPA(9gyLAAk>q
      z_|H<%NO_o_cXoDmHot!V_(?=t)TvQP(Z>Gh+vv!heczjWa*O<^a6cDc#_reAbe2zD
      z-}v2w$*dSnidl^+idvlRjz>t2Kknzdg(9cxd&X0w0!0h|vfq!!hj|(2C?x1`V1|sg
      zqEg^<gi=o6C%VUQ6jd!!R#j0Y@<PpV4QU+Pg}S0z6q@+0j(Dx1sD4bl++@ebGeK<E
      z=TJ4u!j4Wjd!9F2+2jSw|Fsr*Z)Rzim#}w`b^1XUK{`y04iz;9UV>f>7p&lBRNK*!
      zPP~2@F@E(#zsrI|+Y4f}PA~YNeWV59pdZ+%n<a^k3^!Cp<!&5d1lXAxFEPg3!8aZG
      zHYj_Mo!JTs_`2t1eQYb)b5J2Lflh5U!Xd^Q+EZINHH>|YmWY=5Gm=UJyi7GYekLdV
      z`&`ZR;BdN|_x8rQqPBeKO@3p%f+DW6POIclm9Gnxs17%ToA8|QJiH*h2rmh@;I{BG
      zydr!8J}G<(J}rC(UKL)0&I+G{&kJ9GFA86RFAHCR*M+(MRbjs0HR0><4dI*chVU);
      zwlL4@jxf*TuJ9)83iJH#33LBj!rcFT;Ro<T;YaXeVXpr~nEQJw{0x3B`~rR{%=39A
      V%=3LM%=@>6*YGb<^v3>IygxoYcb)(M
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GTYD2#6kVr;4oQbwsZ~LgmSEGQFhD_+0#ec<ffgza1-U5GWJrciGGQ{I1ym4~
      zi{j<gXa9im)%txt_yhb=ey%e!O{S!6>`TriXYaMn-fQnO|NQ&c-vAEaX9aBnhi~h5
      z^*OCNYnBU|Ys|S?(Jfh8MR%%(qm9_PTFEH86W%gjDA)X%f{1{|rM9YhwN|Ovj;r}b
      z0_|?mtj6~X>>XRxZYk^#4Ud^+(>)<@F|j7g7KgJVL;X_%k+hvRq7dj%u^#O)tiwhX
      z3N{JsX@wWK*gR&Ijq|nAwBcm+Y0D7k9J6z}HKjYITnC#G832JJEqJXEbp}G@1$tXp
      zlaj#3qF&BhM%pgP{0Xd2Tub*)Mezo<D|k~NwT1+!*nxH?!52l0K6a{j4c*e)J1Tae
      zM_>alYn{?_GXjTJ;CCiFJ~o;+UE4Wlx^Z6<X<ALwYDk8Ew~9FSFdxONUXXtNx4<lW
      zR?FHmMwx#4(61mNaB%I`Dw0SsR<lLJVG56|jetzJYub{-UT6yTvAWj8VbOt#{W!oB
      zR$bk3C+w;zy)yTi7zS}z!69C5`Sh(8Vwtk{m_-U9BUP{D7PZlKEiJIg7tCm>;@<PZ
      zKhQ$@JTz(<Qe9pV#YX3HMny8MDmX5XXkwTqLcz#$a3&46eq8G5Llqz3Xbi(hD>x<4
      z*JK>-N)2QcBN!Ek6%1Ei-Q(Sx=wC&Eah@59QEVTnID-tMOxt1Cb<F9SYp^!^mNTC;
      zOBKtgA0vJG7{oahV;C3M?8nYO<&ikMQt%{Ak3%!Z@tP}J#S#=RQ|nw=4lCWtuS$)u
      zi|G(hgJhQT+?D~psA56}co11RyCe{A$<V{@2s}BC?Fe)yG9GWuVk)&sMy*_6_9en6
      zDyDE*B3zTR>+*2(S<h$0VzZ<GOGdS-7dY!|K3Eszq%4Bq7Sk$j;;3vpc@+ja1=g{^
      zq-+W*iZBJDx6GW>pl<QMME}(&`OK)WP$FJtd}1s!I<ge+!t`w;=dxyP+)+>w*ebQ>
      zU+|P|TZUd%;eg7BWG`N#*tUhp1_vmH8fF#TWe;moZnJh&%;6rBr04VXWJ}?N90#nL
      zcVw^!@jwQG!i(u4<?iuLFL}$GvH3K_{FG+-*vrH{Qt>6arPs%D#ugEg-vR6ttc;N?
      z!xdkyB*F#BQ(gmqs^S^C82P-*ck1~{3JVnb$}8W@{#A$;CsukjWyl1+moNGT-hR@q
      zIXUCBDIe)=OF8V5$zx(N<+9<VExlTm9U)4M`L7k9I$n-nPh!g!`K7>F6m8Nk_oG~;
      zxsv~PBvXGNmK^vK>hD~(VKaYY9Dyq|yo@cJb$ja$Y(*zmG{QD?aj#3ht%1WEbSJHP
      zlJkho<Mq@6-twn!r#SY`<K1}-EZ|@RW|PO@I^EqM-%mqOJ$0xa9Krj9=#p)h07Ha`
      zaDB|Xg~ho9O*BAHEP^iJWO4zg!`NpV*xkGwkRx^;+gYJ;j(sSEI3(&E5;%_w9tU=&
      z;JP=1>&6?%ABT}cH=b;u`Zt~-s)gMsh0x-4w0IqjT`E8;5=~~SH$dCLKwb&p1~}HE
      zd-YYUJCHr02UQPim+z&H)yv2qAO<}%{-1d%W#0-=e`Rzf>TrO{l<NL8$H0zrdFvN!
      z9C(S_FHv5A8xZ3D$t9%jH%KL^Ent=bn4@y;V<#Sv+~*Ac1BU-0OZyRyb3BR1A;QCT
      z!oxvux{;#Q7an2ugn;le8hp4&ieo)WUo{B%8F@lNPpQFYp^Stz__e1&;2V4!KxrIh
      z+}6|YlixV;E2rJteBrrK{R2LCmXU(z+>yoC$FN2?D#;WJ@4E&Y-~5tiE_L087vAp=
      P_>rS*4uXB~C$#+s+4WBT
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7FU2_^$7=8}fKteWcO=)bb*0xCukhItutTwgP0JYepsRg4+{Fn`#!YV9rSv39x
      ze}KQCx5jD6jGfU79cR=T$6Nn^_g;DD_?%q=L<&1za1Q6=ectDJKhFO0&$r(JxQq`&
      z2nfu7Y<y<yChDJ?Rw?1gT_;g?s+Gi!Vb`UdNY@IDs<fPY?lJ^TV0xgz;l-dpY~aOo
      zKAoyrb;q!rx<JtLCvb6Pu+<ShO9CSWqf%Km3ZDop_A$MkUtP%*O{ZqxF`XHYV2W1T
      zv?9V#$!Z8(?PKim`cE8YXyW0}K6u@<Oy`EcY}5xMpI(Zs3uviYQHC*ur*w?t*eC=}
      z>Ih*Zgi`{^|DnIbBa8^1R&b{UzVzd9G=~19eQq3q>rkRrCG8m<W6%YTub7s++o*0!
      zJ8x`Pq`<^VjmcX#Y*VdUo0?NLSr5a;M@6S7aKXnnL(0o;k_2vh!V_jKabFrmX)pD$
      z9#|2ZDo5eWZb9xiCMz_A874?&MFD5m+9yig3pz#-R?&~@IENT-_K=9JtMhps3%Do{
      zDM=?|71ti9c;w`#4QUk^j7T)*l1)?$_F>Mk*^WzLByc%|7X_|7xhe(;(QySY37je$
      zR<R;GE?sEuw|I8@Q%n;`>UbGf8P*4tM!n1iiK_iqu@u5JR(TJTWuvGvse;vxjgIR|
      zY?xwKWxZ~cSn$)hp(>P|g0`C;ffJtQPQnC6jl<p)7&l8+&6cUMVdtbHAT|X8a#vuk
      zH?dD*!P*%2<fm#?^^8$ebStG294Z{{1h!HF$68UU?l@oMjgr8EPZRM{rXm$4>pX;2
      zfoM-)$lEH(VvBw|HjJpFTzCoZ`}B5s5YXFMblHuymbP891tz1}-r8|rnhI--Varl)
      z)k}kFJGYj*^WN5<a}3*YJ%l|Ed43T1VyW)}vze<k?1H>ys_s2`^wV%jfs$v|vZS4=
      z81=ej8;`ahN}Ol64DmP25$d($2-Q69%qN2L2+#Q<ay-t}27(B1o{G;O;6yyWkBRtW
      zL^k5{;sBHTnA+oE0B1N(K;!r|!M`Hl9!}#MJj<O)4*<`#+)d#uo+rFuub$`G1>VuP
      znsyyNB(-7gB;yPFn2kTe)O-_joZbIT#GAOJR!uBE#Kbl2F{U@Bv?g9Tz-!;{5#|g5
      zXW1zpsk2lG{6NSbsp==5{>;-~F^Au<h~Hg;i=M+a!6a_tbs~`j-k=nvKZ#|eNNtWN
      zX=F%P!!5kYTPjLP{?skeiAK-`_@gTVqV0gMB(gl$@D}cLMPOwx*q?pC?qbaayGJk|
      zK7aW@yp8)Uh?|t7ilj%<-!8;C@32c!4tbi=0PkR(qBOkg%SQx!_`K&EVlmbSV#5t_
      U0Gs3#z!u);945O6e;*+5FJ2i#+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3O;5r=6r6=BwW3s1{8mheK@L{q5o1CS6BLY5LV~vyHd0fz&2~}$mKRMt_yhb=
      z#@9mBlkw1<eY^8!W?w%(-`)WnU^|5b!_GZ_;7?BY=*l}sizn^$^}uriu0o-lnkNQA
      z>cT+^21EHy4xK;w;V=k%r5z$(YekZEshd0qgkqRHa;2+}8Ir}_HiJ?1d%{8zQ)x_K
      zk|EP@rMMUlZiQ;`TTd`#8-AC2ZLZv?9v>RI?}iM;#-BmHgO|y;s|44=gv~HfJ*l)R
      z7Dzmec`Q&G-s>^sMtY9NX$+(2<@#>hM2`Be;wBTz)L&~}wmK$Osj+g=VX&_Kq3ViL
      zHwv5{+wMi#sH{sVRMq2QC@6BKCcB;=(o~v4_x)Z9d4|G&o`HP|oTR@7B<Q1YQJtdQ
      zAt8%SO0O`V<7<mnE2h<8(B(AM=@E%=hAIQI-vT!z8wun~*^Kdmxl(q~wqsnf=VDy3
      v=Lvtbb7T+H$^Hx(oMQ<MY@zwfCqMQ{VvU#ytYd>Pnt9{|WU)!BL0$L))pm<8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtVOLG)e7(F+ynG8)x0znOm5o5>;+9bpW2@vu?2PZ*I2!apnOs+}Cp6+3~2NQpZ
      zj~yE<iv=nsidF0+7DZ{fv9w&cv)oziTv+0{x0}f@)ir9F#oWG+bI<wC_kB0F{<?kx
      zzyK~JP$ST}VqLUWP5&L+T`~i?8koyL&N1^=!IuSd%8@zg1_{&&G^>-QWAWUng%z3Q
      zYJ)&eRs7`K<b>z?f#n8%0!e{g`V!kSXJx^*9Q$2s!I1(DIV+!+1%V@(CAVl+z0)t|
      z^Ijn^d2lu;P<Gl4rZs$oBB`49&dY*td+zD<q<}anu>GEjdCMuv`b%H8ec3ep#|?ox
      zD+qjn{!CTM;{k~lih<17en6I#T+KQ~#XxMU#+t>zcFb`*n3ej3?QWe&WIZ>ajRJku
      zd8ksIoAwr^Lz=opE3irgWzMTT*UHhjh+OZ5Zm2zP%3WmO=V+`q8(0N0*W2!*T;*b#
      z`@veC*yL!|v0XbjDp1?qGtc!25-0G4Kvz{eqN?Z|NTCz^4Rm84nMU<pjS%QH(1?`4
      zj*RWfnPP517Use{w`RO7vtuzw%)4Gpp%(j<re&LEc2zehVrGnuD*nMRkhbnH1?4XE
      zq*EBeZ~}(}M*c@l8F&f<G-yfE#0Kkp$Y^j{Dhh$II04loDWP>qDc42}G^3>vM{q0w
      z=A^f34(`Jn7()v^blJb^f^h>6p*@93oJe5mzSa$k#K3cSp6l{L(Q^FslIs=Zgypj+
      zV!dP`HCp$2fHlOT+*$6x_?qr3MLlg`2JNi3i>lKE64v?XYkN6@sXo}<^It4t*YSd=
      zLj(@|6Z*bhQvRMc(1zVqWcyROe6Xgg{#*)Y@oEB$u=-0@ew~5WaE2ku@R}rbrNi!G
      zAEg!7n+EpcQF3u>MmOrNNN@OnMy;xjj)$k_*ph1cmVpk9^m2B<Hdbr4fjxMbIZ$i5
      zpVg{k;1RW&4A|r99i&6EUa^psCv5em8d0+xRCUB@+I3}N!m)f``h5NwK59^p1PnZ=
      z`j!6_+Odr@K9~HiK@-1Nk^JU6gPnTZ6^(RK&mSOG?X%qUNS%75GCk4-Ju)VaO-SM~
      z?Bn^zIU6E}`rGyuI?ryP>ofFx!f6fq_}fHzz!c?8Qrc1U>mB~6*QRs<YmqDUy&E{N
      z1x@LD-$NZf)G!qh58)t8j*WOyN3RqN@}$~Jeu|#nbqrqNcSzr$*FP%5C-HO?<1=`c
      zy9)2{w34~E_ZkjQUq-V38b+u4Z=$J>U&q%m@&4W4`>&R6-Axt1=ltEE6JOBh4f=Fl
      zvvh<vMJjnG(&S^6(c6>Ef>QcIiTUG*c}z3+ZQ{^nw2(8iiTeJlp^VMDcP^ttE#5@4
      z5|mMb%J+X2TiOPhdEguJ-J(agIs2Bm{*FEKJ$2k>-hO1pe!?(*#$o)xl>Abrd#t2;
      z45uR9BPHE0;-$zjlVg}NI<`d~+WlLZ-S^TZ@G@p&z;l)0JF(z-oQc54BIY(aHg^*{
      z)Ub|MK0tl#mAcBr|5<ifTNIkW>v$tZ$@vPfNS1-O!mzLq1I|{2A(~^si?PhIl6g-o
      uc&X$;x%<nN;Qg`Sm00lGmEfURaPHs5JQ4%0fvelbL!M)b)^&0OTK@)PY(tg+
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(-%b-j6vn@y3mvzG4n@KLsDQLpS&0{3)JSSuV70A{yEfr+XeV^dvfJ!V6<^0U
      z@J16ad;lNHcy@|^u80>izd2{VocYd~A3wi+2e6ArdCW0vy_4_dnUj79q7z4}GwqD^
      zY3NL3lB&dMM>^0SH+S=}80sg{)VWZePA8K%(GCecolr$L(p@>3sDxqRSr7&KIYX{e
      z9WYqUc%*FPaH)uSEHIQhL8N-q(_@wR@;Fos<xV`5;Xo!q7M~|AJq}Wa?aqZpe*3P|
      zyTe3DtvCcd-RK?Jpvpz8;4;N>G-6n-m|{*SX#_Lhb+<a;SY?=Rwi<qe<0=*EzkShh
      zn;h3E?ak6R8Rq&f$884g`HeTe-#Fm7L*jO?WzP3V(e*esGqyPH)17zZ`Ry))?Zwk%
      zsP==b+rrHAPSzJg(TyUNG((xDirOu;qhT1QG|{fo<9L+ELxzq27y%wryE*!AV2&0|
      zn&Ld2o)B4<seJ|iY_4tEZ6n)*MVAGNi!%{%ks=FAe+qn}vRQ$Cty~f-U$9&&U$G3<
      zgl%|D6bx^OqTwyEXt*wx4DX7P;f4@~TVk2`*UOG^&;&;dCA6`IeXQdE+c<;+7f<mL
      kdw4~e4ql`CkKg{e-yCVP#w(~2v!Bl#17*}`x9|Y?1q)A}T>t<8
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtTS#J|p7(LfZCZ0?KIKhM(XbJ@EVHv_wXk$XbVKEAeL=*{lKsR9&CK`{enF)|S
      z^noA1BU1a=mr4aBx`aqY;uVP>RrTC^O>78+2fWPP&UfzlzVFQ2|NeaqU>uh$WCZps
      z%KP%6mpllf1uyj<rry1@8G3CQCw}amkJ2DrwvZFptbkr93A;A8=+CDX`UI*QhEL5*
      z)mu@L$|y|)`kJ!c_G5w5(+km(w_#+m)NZ%p)Fbdl8dF;%O0Vef34vTBo4!DCx+}?m
      z)Y)B`N`cJnI_K$fn>f)B$R}pMzcwERQIJjwWGmHKV(P8CzJ+0du?+>8O6(oCF@%zX
      zZP>zuYMQD5f$a_~^b2g74kG{RQghCaXXIR{Rkr43I4k2otvj0|mG#;ix9ine8(EYT
      z;WrKnu+{8a2VY@O&GtALfTQxd7qFgVn&UIQV@dkt9aAt)Ohq^`<tV6wqh@pKM>JI%
      zHV)#jg+l@pU(hrM9$c1u!A}JWGP>hyW3e~1gT>t`-L+h$s`^$4l8b)i$1>Dix|L<_
      z{3+a3-TC24b$$H=27=_ejEPA7IE$Q$DKN%(Lly9}gH5n4oO#dA=G?|4&Z@?qqgyJf
      z7v{zp?ID_lF0ya5mg0H;LZBKuU@UQ1*+#%=L{wZ4Ws>*_-!3ZWKhN)oat7Zxih-?1
      zHc^jkE60q|#IZosW^5s@$kj3KtIxnI4BcGC*1s|GCzly~&F3J=fionYWaufB^@+M-
      z8+LRELSk7047;n?=^j|YE_cTYM%_az*xh9+Q6R8LWJm!`GDkFcOEbDA9(yrH44JTx
      zx3LwR?I%(R97cu7WEoq9+qwBNPt;lQFO0Y^aiCWI6;|$d<jT*uYcjAkVwoxbr0*)3
      z2prL+=;w2sH_#tA%2Jq;czO-w-G8wA#Tr!~w}D5R#?kY9N3y_ioah9f;spvf$l%f9
      zcR&AveC}DcE6A`s?qL~RV>!tZua~gvLkUlMg1ZvF|Ad4eJ|W?^9+s|zi8TpV*cFvX
      znTgcipy<BB<V{tPRs6Vun%eCOGe-G?MtO=7p7&6f*Rrc)>Lb~Weps59J;Cp?%iz3j
      P!v$RAsJt=6k)8h^s<<pO
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+OLH4V6opUAvSrKTSQrx?4iFM0kspa-9^v665M-MOoTr2V8>pICUG^lS8Q09%
      zaSArDfCVhb0v2QuHn4yNP?eY}7W@Ey6veqSW1$)|k`_`=ci;Z{^nLyP&!2w*n8n9A
      zWE76wG`G#2vVYrh*2{t33CbHm(=KnCp0B;~)o>`z=8#n=uRB}ij^_T>=BDcf@iB#g
      zV8il@r+Ld#$8*s&a|-?2rd_<rgJ&(r3eGFIrJhc9Hkz-`&vmwl1xzk0WGik%4?)2&
      z(2oK6I$$7&fjs(9FffQm_?|AZ<VJywE?JJgyw$v+y}EhB)(T@w?wV;Yo1P`}crhz}
      zQaI6z$l@&hG+Z<t*SXVlw|si{Nau4RMqy;bbQ-p<xXq?^0=l}iTA5tVV**d-a7f{3
      z4-qo(1fEpLt?fZFs}(*eA}?H7tU4`xUnzngHE<Zu(TA~7b2GS8H`f(ry10-=3$_-m
      zp(pbTJ8OC~uw2K_p`=jSC%3{I)^&q}SJOeuTwXY3pon7%eSzFO+1Xuf7q?{B0@Dk)
      zA+WN6lL9m17def1<9P$8Wn(zr@I2R3I9RHN_myqRE7t;#g~k^N>5PFF@FG*rW|k<Z
      zDqY*uzHhE`Hn#tiLOw#*S*HRxXJAeOl9j@3U0k;UTg&zZ1Fy?=e;_MNfu`x*TC_Yr
      zs9R0WC%c5;KmQAD(Le?Bl&GVyC>-zX$i3qVgMOR;-Z4-WHx1~}b5vhiiTrWJz!EO;
      z2DfPifo{+xE8-IK77K-eyVk4T&brzHEbn^Pz;)CVuJ=e^={<i0|Gwba3i6g;llJJ#
      zyYe-6%UjcnmV{+E>OQ9=qnTD!$I)KJHho{SCyXvQYqsk%X)ftt!)-9dn8$43nL<JO
      z6HpkF?!=V?{0%}HR-RuMkwKPYVQTszhNn(G#K_dl9~k|eYZ;93KhF`NwTDOfbugS4
      zFpkGK<4LYO&b4u=`j~owb2&9M^#CK&yLc*z+opuuZMdNpZV1odSz^YeA;h>d92Iec
      zg4@NBB<&ME?bDEEM0PQ4T<V!Zj`M7mJ14>?C&f)Bai3A#=PBZ*F+<R})HX-)U=nvK
      ziTi@MFT3E_5mIooN!(Y&ecc7eei7rAm<5std2!vu%r0I^^1fj%+zok$Bg<AO@^~4q
      zkRv(pDqag?%tn$T^lTFRErouUBJ_M5V>X@?+#5;U_r%>x!Mz#d*m+WL3rXC4;(kcM
      zy~VPSAhQ8=&7QZD;2#P8DFwWjJ?vlqr*mQ#my@`kiTfo5cNN!&$x362ap$PFz3}S4
      zF?vxQ56}eoH3bztSy0O{>SBB5Ods0Cdr8)VkhMQ+B9>&$2NakgXC+jziVwqFii#QR
      ME+288W%n!m3or-|(f|Me
      
      literal 0
      HcmV?d00001
      
      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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
      CwXRM8
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7GYj+b>6y3L^groy4r3R}M5sFP85}pMuqL2nj=?fYvQcxzzB^j8^#F+^#zTaQ;
      z5BM*XRqI-Q@CW##T<$xQCewtbv>$Tk&YZK)KIiOnZ~y)8?|%TC!Ou~22~0lLpXzHV
      zch#^;DNn9>sj^owQ&rt@rIT9pmuYFrlJ42gaLK9#ucC+uq_|CW^ml93s_l4n9DzQ9
      z8oIeG9oMj}JK1RgF(a@)ZCkFVTi&v6)?_#7sXrmG*DD+D@M(clvmN8K@SLLOWy3PO
      zD*{W&-MMzQp3Y5AjV=pB(sohCz>GA+(G$lW^lQ*?NZ{lS0XHFfXAMiv*D87G<n+8L
      z1^Q?00*j-wMBLY3MpOv|E_LSBQh;WoSPD@TINsS^abg?Fx>Yn~+OAZj<q32rSJI=)
      zF%032D2@tD?4}1Aj^Ry#eay(brWc+FoZp7SjojR9rf5)KHw|w%$Rtg#JiVq=jZbJ8
      z#z_{voYPAR=cRRL+N-IY{X|;C8Np~2NrAJw_tr3man@tCEFJdg;_e8ju6mR^IlPTj
      z6sH6(?25xCfQHjJ!!~hL9B<Kf4TZ}7X5%=A3sIbBaxZRCrxI&;4U-%gHan}N9W8A3
      zziTBea3Byxrc(8u`Q@M3LEkjWm{KXopOkoJtstw4sT;+60?9UpX+|i?A{S>#dJXe9
      z-pAD_J`fmba|xeO&3GEFfsErN>8XT$w#SpB9b`95o2fV@meFt>AF{Uez3O?6k*|4@
      zV>j|5_a&oJHD$w$q=|73Sq(F|DbO2KEU@xP%xqUOMbqcd&T+2hsZ(G}6u&=vJT(N{
      zWmOFhZid}#f`C?Up;hE-#dJ}_JZ=dL@5sxK*i-j+9NQ5{B(px-l*zWGmRKvR#7-;R
      zI~s0-5=sQPTP%E}h{-dL601np)l2@7r+T}^upzl6C37-X2he>D4{%su4+lpH<5LX}
      zp$o(w83m;+-Q>6A=)D+O6f_i}qGab5XR{gJG5sOJ3;D;g;Bgj9Frp|69BeYUX4|IJ
      zEe(&s^D2_NeJ3MuDCAr>V7n`@qu}tJXwzo9Iy6-A8QY*2i;Z?FX@!96tlHlMg>^OD
      zQ__m-A#I-Yt+(9W?Xh{R$Ak9ec)6=4t!a3w20o&0d(J%-&*NW-VFyjAOCrXL?kf#n
      zW03VOdc0YF*-k@sCAQp5Q|+X~!>nR-wrIf%-E^u{0^g}?ct5jVvTII3UN_XuI?&>E
      zN_CAL$y%0l(x&dZYS?2GS76Ayi}~??kS-pM-Pp@r)Zgvv>r?kVpJV*SK>TumyEJ#o
      zzGrOwPxOvW{Dp&m_zna7jq@XrA<#5l;Zwrj_i#PT9i8wh2KjD)!CtQe&J#{~CC1j#
      zyN)B{T#v8gt#wRn;A|^)mbfz^>_h`Qfs43A%mKWEcZoPf%n0|FecBKBtfCBUM%loX
      zu?<XzgWYHb>!&%efL<(;@B)r-+?xpvHG&Rd7IS{kc?JzCbgQ1wU^rALr-f#ipkB+Y
      z%10si!3O+b1O7Ia>hO07uNtsfuZeI9xmN5I;@<bMj|E;0>;z+;A*SlmU3~0!<z6F+
      zUs(VZWim)&g{7Js-@qroVgJN)<e%fw2Fy@`TUa<v7Ds(KJ!I$e=tqHtlt|(c&T_qg
      za){YvgV|&~>mH25L(OOQ^yT!j+Ke33)?|c=A0^OYSTE0fy#Sx%i+XKSTvbK7nc0`W
      z^Fc`!{!{?252FPJ0oguqGQO!hkFa1$HPNwgPQ|xPCTgg_8(RrTX|N05`@cWnN3Lp=
      K1rPq8(Dgs0*E-w)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7Yf~Fl7=BL3rL2ooplUBFt+YTu(pKy(wJHIGHb8A?EQsPEIV6kA26s1=as1{-
      z|3Sy;jN^<tqs~~hp<`$Cn={_NI^&=4CpbQ5HwNUAHkss{J?FhX@AJO<>pwsI2;dY}
      z5{L*4uE?8mJ>|V;Ii-}Z*8No3U$s+f()E;^x*9B_%2p-mSKI`m0?FMqCT6FyV?~Qn
      zS1i9LR7@Z)(52;5Rwb2Ft|e{jeYs>Sf&H}4$GmbqtKwXr92F3k1==zd$MdD*=cQd$
      zvA-v>g}*-h$`EKN`bB|b+1<U@;~kwHO$+QRNZTHfg?9vo_mJN$+6=Xps6`7cC8sKI
      zZV%<%!Ret+n6?h#V!^f?%fCchef@cXXr@wB1|G+g2|Pg%DV%DWijHt`_~fZ^69;if
      z;E|H@Cj)2-M6ai>zj<&PiB<?4F=3)jpgn6jYP!0*q}<uC03F#1amq_pfd#1_#xDj@
      z8)(5%6VITNk^5!K6BuglFU-8b6haUSU=o<<3p6zYt|?hmZh8+(O=~i*K{UqJ3u?_L
      zU%UkR1Umnt*5pj%Mkk##@hIB$ZqUSjJZ4}BClg2soN0>rwj?$yYO-HggE(tIU=2Kv
      z7ZMmIiGu)a$=;b+T2Tex#2K8WpnA6|ZK8Idp8OV(bpO1L=e&mZg1|?i#KX4WUf=~_
      zyD44vJ>acN?3rV_Kd<AuXrc!%65AbR3-4bt@iJavTN8^hr#Q2$iIro%%F)E^suMF6
      zWSsL|&Xu%*48{^*i=W;d|7N8(F^*S>WLY{zTWz`wOm9QD?oUUW!K8`Hn!vGTyXut<
      zWHFt<l)&*FF^tHfZU#-P29He4=rj$cIi);Lme{?$cuiN0(Zt<=%4EQHa#KYv>H(xj
      z3Fnzraw@LMl%<<fK4;v#Kt!zz^zJOvZeg&I+B~vOEz7E{$tTcSpmSdZ`x_5nPlFHt
      ztH(pk4g+suF@d)Px_7{}^$kG>Cf<f*+G|xE--Pta0%y1KzFw7`32!q*2C`amF_`pG
      zN3N1j9U;D3*~IBeiN!Tn-K5uCrRo;cxTW7IUE9b#q(c`lCmlz*8C!auVo$a<1~ray
      zM6~c1LllRQz&`F<`F4!J;Fp7wd+1pbtehlVW0dMZCndZ1G{9AV68CW6I~=~lZ3Iv8
      z-{1;-fH=<M>EIL;<wUJ3rnqX=SaJj1n`-gkFjO%^0UX1#6y(syaT-0reUwkVf&V}0
      zAjXr0<ltTOC%?zQ&*=OXhxM+8=V~~83!TaP7@AA+RBYhfT@2_;-ln+*Dm7fHVMIUG
      zF!4D$E=2F6ckW=chASJm`qLeH8^I(SC|ghNM1ayQdj1$ka2td81jG20QlC-g3ryon
      zyn(NS#D~N9>RB*STthC%Yyq=GR>QP_>&UYb(?tAr++cnt<{D5v0OJ}V*l1vEVxF$U
      z;>^)_3(dC=B=2E?`A;QTqrq=@6c(w2o`7E%;cv|7cY6OLFw`BYVX4l5b`(&g(N?-r
      VJd5zV99Su#%+=uC5PudT{{qMZbf*9S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6OH<QO6#g!+q#*)U9wJY9wn3=k1GFdz@=!|wd5o~Z02c_fDU$|a;nJmlz!~>!
      zT<DAxM`m2Q@JBhGn}iZ;%P^hky}3ExcfRkObMyPpkDmbUU_n9=L-&sURzHlS4-9iF
      zV)H{gvTY|5kv-i?b1Sl-Z;dB-lAE@K5{4=f97*UDI<vOJ*KG!gyYCsgVi!_*JW+;X
      zTi;@6Ef7AnFdgflyc8JNG}dh+W$FnAw!%<0WSEBigdrR%0QO{`<q9t`l#Hb|xB`Ys
      z73HX6&@KsH5$MX8Ve<HXa*bOH`dWfB1Y@anJ+Y))hIsZ4OYChUO}Z|YbzV&}r|9OY
      zS33p8s1xe0Q*lD!r2whDp`sLJV%Ml507XGFS|zkFbX=y)DsG~Uy0gXYxSk~0)gf1$
      z+r4?)qJBpebf8N@C#B0zDw?698zCw_QIP?Ldv5*yAu41%+e~3ZQz1c?aEqa{aJr5~
      zbJt8An3PLF5Bfx1A`CV8vQmRoBfaV$6B<c{lzJ1u5b}H%9PzVRadASh<Fc(FF6)V*
      z!bs0rd^2Swb=&3}PWM(6JVaE&BZlS+Tv8Gh4=_M!*DS8@rY91q0|9-aVn`gzcFOIN
      zgr^L3g34d=(S0Ma!7T+Ns1wuuOhrHLipL2RlbE80>3e(JBvHNo(z*9G`u{L^gi#qU
      z=(Y{Zh%rF$#RcC?4vjZJg=qwGPQ|d8LS;U+Z>{qQL)@QAa_-f<Pne=XrMl4<sTe^q
      z^0W(zIdN7Rd|G9SD2Gb_SLkV&B8zC1w4UM<RD7jv5w6m|;v7#B#S~EhwQd-$p_-lu
      zfEs#7=EQfvBm0CB`T>L532L>TW7KPn$7s;Lp+1AA?`V(r{zAFddyMcAYP3`IEPL-x
      zAPw>gsI#5PO!bq*DnM?DtNge7$1H3qQksM6egSyh9cD$;=4j)!`*(C1kun@sf7
      zQyQU_I)YM>{|jwg)4~w&#-SD!q5zMYZYu86iKv+$9L@#r<OS1gdf<Lq1+h$-!x;>I
      zroBIT+J~33$!Uo5;~(eZ-{r*zvUtDvhFtJ_ANbrkjh&Z#nxqQx?WY)7KEbG#!B__4
      hWToLF<lyrolm=gBFrC3{Ze2e3sN1u?UODdP{{jSOh^_zt
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_-AV#M6#iyi|F$h{ODi+*CbAV;x;7#Z3_*fY47wY2v#oVE#<jfcmAVk2iyokd
      ziq4EuP(n8|bIyE!=X`v=y#qMLUJ@F^{yl%<6KC}71p_B?Cy^tfTc;KVkqG_kQ1sj3
      zgBv8FGZdCW)jxwC@S)3KH6_ULIjOZGL84WL_#+p5$iNy5i4!mIqEm)k`7iXaLqfH%
      z@5Wvzq5+0A6KP}^@=MSS3C}dWz`Ym`yRK;SuCF45J??k7@MOJc>d~DyVmMHq|BhQV
      z5JOH{=P6K`jM9{4+e91*`6`%5BE?{|!m;SNbx-={elP7vt^y^($7mXjZlcqRN%EqT
      zR#UD}bw((S?v!1z%o$c+6(UQgq55@VonxKq{2T`h8&nZP>C$@Ts_2wzH-wR{SvxVq
      trd^q0%Pvl_^P_4(r~gahUXeqKm~EwAn)ANZvkP_7Qn}?EyTsH``~t~ZaaRBU
      
      literal 0
      HcmV?d00001
      
      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
      zcma)4U2hUW6g>kAi->K3R>j)dTC32njj>N+j9S}-l&C4BiHVwQ*|DyH-E|q1{wsa4
      zi6;I4f0Xgef)rg_eVKb_=H7G9IWymXeEA08HY^hffyKA>d%JISKe*nZrDR`Op?YoY
      zHFvfhSNY+tt4tUI3$e0>I%-R2R3(tU=X$QXFOV!(_63YB-;r4)aW01x(gKrp*OO0r
      zodX#*?Sr-yDAfIy-QKrDSMP_1hI-?61(xcuiGLES3QQbIwdH$Cda8L85OTU)i5ji8
      zO+5`2QdTvCyg=rcI8qCx?Fej^2c@oW)x4mmSS{^NH9q*U-|BTZqFU3!vfKTZ43z78
      zT@x1tikhgUL7t9oOk5UNjwyI#J6f{t9V@*eFdr)&ihX8>T^VLk!c}c!QD^fxT+@c8
      z0)0v2yAg4LnZN4cgE)RmVD=1QtO<O&E^35}U_-unyx})i^xrzMaF3qK@E`7J`YT#U
      znRE0jNY0rW(H>&Z<A&c0TXM(M-y}c&8#lC5SOgjK7Xt<}elM;jcXt>CV`}9XnNLg-
      z$a2jx0uNaH5a*fY21Se)xZ^j%Bv%cv&Zq&Bg{hAWgLaJ$?2ff2N38`ESvAf3G~)~|
      zMKEo0O7X1l6{Y8^Yjek#y=#<=&zL(QH4!OzL8O<+<5h&dIp`XqvmXnQR-IkP5+~^F
      q2A0{I<HVb|6**8q`M+3HPGR8_Eg*|`r?6PXTI9jmEY`^`fsLQ-hwRS)
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!A`<J5QhILg=$4m6b_y|8NkHGnCJn62O}q943OTJy5btzl6I@SmM0PqK7bEp
      zoTW`j^x|b^XZM?b=HIXHk52&SXgaV6CokevEWPwiMKe#!rS=m2<c%hS2a%-mZW+jh
      zR&nIOCL9^on+qmKS)^6Cc_&n^Rit#EP-=I4f_)o5N*5(;S5ZcVP#>yD-e=)dCKEB8
      zOG0B92V(AvM47s{wDq$}3GLzk_UaLuIh*e_)(IQwb$l~=&y21SoKU8zn5{={EEFig
      z9miP`$bm9Twf<N?Gc7m<JL7)?EIzR#jt*BBoQZR}yTaD{`q|~^G6r12#uaw>RLvpI
      qyIdK88b>40XVS2h?&%8k-wJ&uZ`KN}oGKKU$37aYK{()U3x_{$ykjZ=
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~TUQ%Z7~N+Qm=K1$)s|aBwKW82EN#6M+S(SdC<O{w3S!$K93T)TaWdiZq>t*-
      zrEB@3%LjcDm%ga06l=9rUtId+FS71)5)#@33TtN0oP6io-`?M4{`v2h`v6X0-Gm{~
      zx@51~>(TUD+*ycva@~u%-h6ayVqnyE)6zBJ7pPS>(S%Klk=Z2~^90Ov%yt~<3bYOF
      z<zYN)(j(xTOU4A6iY@z+vCN8eJY|zgrUk^HKzVQ6iF@Y+4u|(SG1z`hz<((@Cxh^z
      z#zG}(=_TBLtpWn|7EA=x>M08q2ny5;#T_}ES(%mYggu*(v>8gq?8G(OjjQ+Err%qP
      zGmcO(@*}!1;8WS?qVZ&O&`D*yanF_ZN>A~@JV}NeWJFCWR?9>S89qU~AewPlnTG@p
      zmd4BSJz}8@<<u^%qYyZt<9IwcfoQ?Yn6&4l`^12o@w|#4EYMJNR^_0awCRUsl84NB
      z7N}g1-VS|%mT>z%>IjsjRLuzl``2SK<;9au+QbXQ)%B-z9?Ab=qFdl-k$e~JIh9p)
      zHgBplKV{*xs*ef{F%VC%YMSwqg_rRPcNK++<g#?w5T$}tx!1q<RG<fEP4o&h7J=uj
      zESys%=l3>J(!{F*$4c7nbXh*q04~z6Tu-sb<Xk8r=e<xY<0dvjv#uSJ=^)OdPbH(D
      z3C<-$w<T+j{o9kRuh%SGR$MDJ*ULIPN`u!eyrK51^!`p-lnz%c3~L=yQZ8$r6&S^s
      ziK~w^|M*7QlPea+F~LrgE^}Tevr$H{(*pspF2bZ2TC-h;k(~+UNxAWb#m8A)$Fzy5
      zU5Vc1%)(oWu9;H)6HJidoe*d)E~LEr>`lY#HgRjO={CVJmt%Povle2QQ_1448Vb7D
      zcB@*6c`TY(5I9tn#vK(c#IYn`#T^b!B?CzdoDL5byDN_Tf=Bz=j3>vXr*oKqV`Ak|
      z?X^n_Nu=0v3F$0&i+bE~VESZoo}+V`9pq(;xI&T96!#ouc@ZdAa6FlDV^Xz+K=n>p
      zy2lk=gjhO0eldJ7)QsWEP_tD(Ia&D(aEB9(c2#_v;+wLsiEN`f(y@iQNb?pNe$)pJ
      z@Lmr;?<2fl<!By5H4Ex#?u4?(@C**}jSe)7&?^OG5TFu=axgKTSAH5Ioh{pFjNC)>
      zRL3@2x6oFAs@5)VFzTCxy`^Cy*<*Q_20V-B=#;KBprKa^(5C^9?hkmZ1mH3O69in@
      z1F#*DJpnt=nFEaSslqCY+(z9GTo_RDmFvw_?OJJ0gB%xuF4WTMxVAD7<yT&1<YeB_
      zHcl4AQHlcZQjYgZI5X71EaB{1%A(Rcz^K~p;KiYi+c@L@3RU-TeyaY$HZDD2;s<yQ
      zW-W%Ubkd^iYZgQH#N;L_f5J%pn|Cl-h$f;->3tT{2gLmljra(y_!vj<3Dx=(-S`Y=
      z@j3eOrH(dREdx2~0Z!Z*yiKAJ&a)d_8T{uM<c^Y{gO`#@6ace2ezS|Z$T>6AoGd~8
      z-(1Pf_<D0xG_~*P7lXWvhy3HSkC!UV#?IeybC{-eyc)W0!xncT{fJEEUhiP}7F%Nz
      z0e|l%d`(|G{H_pRH#-X0VjMqHn!5<&SLXLOegf{Zc^<HF{=fwO#3cU0b!>A?{;j!W
      g>w6~8Wg73mCHWw(AgzVz!cln0==xqIhJm&J0SIt900000
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ@ZA?{V9REF+16QwycQFtId@11~qNSLCrub5~F8BhXn5hRiz?I9rcsMBO+}c{r
      z+G@-7qFHO^7Hw^n70_aH*-W=;Yt`1O^`-Tt53NtF*4nb)|2Y@#C2q2v^E~JIzyJQf
      z|8x25pO3BrSc^yf@F`Rrvrbr}b;BnkvA#Oj9(C&+x3_L@`_8s*D;BdIKMaLDQL2kt
      zRN2*a%<gs-e32N>!&(rD*X^~f9@}YD$m$yD?X?|+Vo#=x+FXb3o3(^G^P|?V+a4dV
      z>7q=l%}GE@#a&Y*7I8N#WK>mmC>Yz~J$3*Y$ThJ5rXTqVi;~Hu#t9$~x$~j0(1aiJ
      z6mr9nnB6)u*kwEIR#((kC<w>9t!RhkMC3bhXt@26VTGmX^GX84<ch0i>JP<+MqGxs
      zt-;3XjsU~v`cbA(G7V6Qf`?TAr6`vwO8lstu7XH<DA_&JS`}C(TFVs*li?C@S9eH(
      zcbdpV7O@)E@fC{FrbPv&$1W+9rc+4xRLB-J-GI>GP*kD3syaOw(@hHO811%)+(<k&
      z?8j;*I#cwn8A$+ZaJL_86>_GfUO*G~U>!RvL3Nu$e$*>07OnKO2w*+#6-+kLtSTgM
      z=b_O=llaMs+Oa;jUye4LxDQ)+)MH0&m;ElQ3WdB<JT9lwrBN)JO>Dz<T3ACvc8uwi
      zR&BeDfx=D`_oIf*mh891W3CgA?vFb?LV%Eo2Sqkd!^z1~$aFo@t8N7q;vfv!_JBrF
      z40f9cqDDHp*Tj4TDA%T9Bk=7r(V=S|w44D+_kf8`9ApGH?v+BaCwi4yAWK_=Lna=9
      z$rK!W*mnImLf)i>IHih2W`|)3+Fc}8f`KVRt=Zm#UOxzMzHY6ShGMSWXFDeP(9aBq
      zEN9r}+5h+m1#lS0B+39sAx#u^Sz&>|!HcBT8e}lV%8i)b7I=J4O^cN>rZuRrGCg_!
      zTW6ym9Q*RLn6$Hd2{0U3$wcIwNyxRS5NL~!INkQnh+HkX$%|sOxI`t}n!$TF13sBn
      z?tF4B>6N|aI*%v3)2NrtuV!j0u6e;p<OHXX*ExxTaTH$B7DasLXn%WPpbfcb$0DAI
      zHEnPQin%gTlqCH1P*377roY8gDDAA7#F7>|uIOAfiKXLMk@Q?ZUEm1cN12O7A6?pe
      zrRO2xoxX4vR%-v*s6sXKmx#+#BKqj3QX<w|L&XIw2-Yyr7;<%7W-vSMA|eCC7&lHo
      z$5Dt8RN$nJy@=lFYbJIjBW5v@PiBViRg@b1t`+oD2{V;yFRF0x1FV=p-KMg)_#GFm
      zTm0i%&F2uG7Cxu>tmkuv&(<ld@AOS#LwF2_WN&!;-LlX0_S@;TFhgDwXqdpJ{jx1P
      zH-WADS?vy5F1xM91L2x?8OjG~<WA)C{W!m#AQ7I#Iy{9<cp6*q3_^GoVLXR@IEMpx
      z0sVLp4qhTC=Wz-bsr3q;$E&!2ODQe7n1IR0^M~k@<fM-<OBE1X=K_XCN`yMuLFT_}
      z9DA7lo@9yvZ8%1bzL~<a?3r$~rEwXdjf5)|S2svxF5#e}Z~BoasTg>ze}^M+g(Q9t
      z3o%aGO{CORnh0hx39qISy7zWIxrO;Pn*^gIgb?bw(WF{bE90*)CeSV`2~ls9UO+{W
      zk!M{(F_%-9kxx-!k)hi-cI#^%uDOJIE*meSj@nB^K7su$vZi)FqiL4qdFtj&>yDB2
      zo|$AY%Z%U5<YCod)ZRqi6b{QM9&Iqjkgq>#KScK=A`M1~k!;0b;sAWgYHzT<n;e4A
      zc@=!Y(=SQsudo5%U<bY>bH2kKe9!Uy0p0kK<Mb29>1RBKUvL(`l0U!UHT;g(@dw_(
      zpLidC;Trzdh;P;x)b#}7K74{G2FVWtA9Fn8jGcw67~(F2I%hSr40>9|ejKNkPk#C4
      z^g~8cE|xP!)0o$Wly-RYiF(SX2Q<jN45+L!pt8z<1~uG*+!*;vOufM?efieg38Y)5
      z;0TuP9LQ^vKsFFIDBikiJ~Gt;WGfRzDx3c?6rx!zL`W4OtcuY=`9W3A-@gj}IxWR%
      qwOoU=PLu1*3`nO5uYgp9t%*_V;=gz&G+YBH&{UN>{Ul59Vf0^~-gXNB
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#!AiqG5Pg%zu1#aA)q3zCJ+>8GJgfB}C_?elko&f-x*8MMZneMVK?DzefFC8!
      z#^Oa~V3{{F@4cD*_<VZ@aDa|LK-j%gk7^-jPo}t$PA{Ca?pmgtq~*OX1VX~j-!r~X
      z2tA3=9{C}eE0!5M%W8*&`jIJ&8xlIb-|c?J<kRv>N2sA0Lm=it@1mbIKuBV&piXFw
      zOrbC54-;)uHOaMiDyJ&Xlr<hNi=n$UGeWnr`Trc=DH@k^JJn~#Yb8I2?)&x8W#=0I
      z4so#kG80&3++cK$fCFd_#4Dn~-V4^A83t(an^e?eCJqtd1nXSe{vO8$+KiZ3$$I%s
      IMgg|I0DJ3K@&Et;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gyH3ME5Jm6WCIRC-ctgS?C85Bg2GIl}Az85$i~}^t2@4pEjhqdS&!Rv`6np?5
      z1zZP&(y+zsp52*yXZGXs?H#}tYI$e^mFwU>c(nTuVSH&T`KatvUD#f7BjY>_fpYe4
      zM*&~m?zQYG0e#<X3Wx)NLL-U$Du|UIL<6aRaS7y{#!=fj(P<(`?LVTM)o@#0+jY)5
      zZhJ4w&;<-{|JcjUbTib`on+BY7>8<?ynaykxiyk=X+p=mg=s9Xh4s2W0f8k8Q^*OF
      zoG_NH!EINjUeJvwG3_M1Ao7DW%=q`xP*-7JVA=V9=xqV>Fd3vh*$gusbNCgTSpjNv
      z%o@#M31f@`d6I^4^27+6<jE1X$b}Iul1n38rV_`X7QdAP&M?lBn$*^~n;Wl~+o--^
      l@p<T1VJr?i>A=7Vy-!i)-TY5Bma#%&-B2~tTqS8(`v$9qS114g
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVJO-lk%6g^kR%*p)fgSLSSZP5_Y$}q$Tgu$S~MY}iCL!XRqVBRz9XSE7i^aJ`)
      z(VekHf{SQ#&;91yb3eb{KLDKJu!tO?GZRnZ*)vO}C!S5D^!kCZi3qJPUgCuvh;S;K
      zqxex?skzif#o83%5Nhe57YQD_31%|1gslsumF*Got@fDU40y^#9;Gr0*dkPYrR8Wb
      z4`gyLf=Ch?ejJKuEE1K*KS{?<l_8w_|De_-)F;xe^CeuivSq*Nc89}<RZ=XicgqLx
      zDUs~9Hzf(~UA#y_d96~~M;kOcP1zF4L#<^ph=ehch1w@H|8fSQvd-B#2J6U=0&?uJ
      zer$^zbr^}UaPo%j*R1Tab-4}b!9gE8?3GtdjJrtRRY5iDt!1{32BVv;+QWfU`UaD~
      BjMo4F
      
      literal 0
      HcmV?d00001
      
      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
      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
      bsg2{Msied=>D0jC{uWmmn}_&%+i3hBP?Xq-
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DT~pIQ6g}H61WFL7e2UVFrBI3#L_jDCf;i($sShwX@D|#|2GbOi4dPGH@tqeR
      zbVgy28THxU;%`vzCgnrG2OpB%y}5htIp^N|`1R#0fKkk82r<lV89T;q#(ibl&oj~y
      zBJ)UW8lEMWJZWrLVueEaN>L={9bpt@>9Og!a?$q6!ZD;-u{CgpW(AV541##Nu_X#p
      zLoGv_AN8bZWzJk+sCnrLPcXFSP7`vb{X!ITrYo}ywKJw|$_ETR1AfY1^o|K-Q>zSo
      zfv80gMx%~;Tww?gq*gUFGqhfY9YGTs>%nkUhlV<JY}3(>4!UR*i$pmncvea_wa(B)
      z{6yX>ZwO~axxx_5RSJf+YB;9vQV`^_WV#FwFS7nWQ^^BvlQM?xi%=&95UrBoE>#?{
      zXo<40C6y-q>q^#59leM#Xr{YZ-j=T!8f>vEtBGXKKq_$mOw+O&k__=v<MNeduTZMq
      zS==p%ZPoEQ3{da#m3Wyd$3?Yt+!C8|ID$S5s#c`WdATed8ZhdaB6nNIFcL(`5#`E`
      z@JC9+2t${ueQCEFkii`tW4OyuS16fQ(GfOXIF@mK%CZfp!Gw-mNT}UC9X-m9jzIK<
      zY=+2k#d8Y8MK!nk@^%d?dJOs#+ZN7(Ww@?zHPD>)U*LT?01^1dZ-h8aWtg5CdZ31r
      z-eG#`5ur!}?bhfVqP1)A0Q%q&n$`}`@)^;=Pl%@X(faHoeGH+K-cfLXC%}0xns^eO
      zydPZ@Zw~-)4c&AiC|t)4f~P+Xv1*xV{|q!M+<nB~Knw2?(tFAe&}%6JJnbXuYLDhB
      zB2#`>ao!PKC1Cypr|}4VYtjA#q`n2Qq3_7#(uWvjSlUC23Jx7&oI$Cf-6X@?-#^nI
      zPAc~*Tlfefd=#yG3^6{AB%eTvPhyhRIX>mHiU*aetYX9}(3zxl3{#{dglQi&iy2y#
      K#SHf`i@HC&R5%0x
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7E&u<$=6#mAZWF2RNT_<U1Qc@=^t$!tMLZJ|c0C8Ptaa<%<smg8ROzUmeyVmZy
      z4O~D7IB)?WE)fXC0U;0vkRTCMf{G)56ym-0CNZ&vgydbnnR)ZR?|t9Q{`L27zXMpp
      z4Gj^2)qBPRW2fjnH0`@Z-&Lx3McpwvmcP;QjV(*vq^X*-t<JsSc)sIqE4N~ITFNzi
      z)3G&3fh1QbS_bXEv2{;1d=0|_lfi7qH?3mN27w`)ig^Mjsz(WR-)P(~35?XuySCwX
      zTqUr0e0?>T_!rXyZlyKaJl1HM*0!r`h9iLCRns>8HG$d8f9%X|3dk~1iX)1o4jm^1
      zqM7WbhH-(!F^+MhkQ{-)NgWzu96hOH6fs_y)-i+ARIc6engZv$u)V^RvfZY7v?`5a
      z7HJJ<1Wqy7!2Wd1VO}71&>`h!!cxZtCLt14(^j=kYfHH|*+GF+)oB>krs0}_quojA
      zH%*dhtzVq~aR3NTvY`Sq{dErQAx=%h+i+Y}u~bXhKH-waZ?b9y9Sg__Xr@<bwf(mQ
      zMs2m@hlv6c2c7ncreR4SePm9}sdpO9a8G5Yq1t>pV|a#~syXQvA*WRcown2+e=d%T
      zc$V#cj*e=tQ+3~^n^4MbGP&n<ynrHGs?_~Bxn0t+iWkWW-!&d6*Q3Vs;qE>s2AC}{
      z)ja`y$)gy;%Q~{iakQ>u5k+QjMMs4hMB7d~kmg}IJm#!C3B~RPLiFk*5U)EOx1p|@
      z?ElPQM;CdYfPT%km0Pw9&r_a;4S@@NCvk8Aa%a$20clbyO3x4?^rfMTLh%Si5ya_D
      z*M;7a9vx$}@&rY1Q$FV|=k}4vJwodCJ|=#_<WV@4`x%q@J)F8l!BqZNJSD)RpJ-PE
      zXX!nSVJiC`q<jYn`7WmA`#38<z>@qB=V<+87XeS>JdFqo7my)*!K#NmR)R5*WVAix
      zccDeUrHVgLeivn!G9W(+D(V~~8CIlk7K&k=X4p^Wu+G>cT)drH-p8dsxPd)fevBdd
      zRde}$to(RbKgG((j}e!jU_yS1dHGon`%H*6Prc4zjnE=|AVbtYX~eo#NuHMkc2S_<
      z6@kZ?-C!aG7OW6RS7Q<jft(AB-{n+hajEaiLHZubw+ctha_pYm#fbbI<MIofmS2*-
      zU!fqs#<KhdEAl(6%kOcW)MC9ak^jWyQ15EUcpPT}<yp@Ju2L6KtW)h*@fz`u;98)?
      Pb-YgheCGt!s3G<bfCZN7
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TXWM!7(E-Wqr_HlZn%VSF-ZVh4soHRPz;okIAE|1GtQXX@SrFgERZEv7aAV>
      zGkE5ehjgZp0cI#q?M#0Z!?&`M2oe~^)@m=`o^$qm-|GL5Z{Gtrjk<z9hVo<mslHzF
      z{xI!FCEpdIv?$i}!1C*Xudi5QnWh@fs+hU$3dda)Zp98d!qt7#u@!KJVF^&OblQGv
      z<*_h)1^o>B!`Z+$tx{|Q1GmMx&oEirMY}~*W*9QsrnTw{TW<9jM#AV)h}QIV;|ay|
      zUo>sgzsztX{|&4{izpXJehLX>RHQM?kjNKW3Pu?+J0e5a6h@F41gTdsh?MO8phCew
      z8WWgQaFAi*tGZPj!eNGiE$tMWFT{k$Y$!{jqbhPZM)JCW*Je1;J4W2da<o0>Egd{l
      zGi}ibIxE6mmI-1QtvQBnwRG1E6V{vLe%mDLF6}nw`}0d|+$Qsgw5@w}#}ySzbcF2_
      zFqwFtAuZDxO)`vc9XPI7!7M{=$LWUC42*WPr?PH{t}LYi%rRsePOd{NIT6w1EV1U#
      zrBK9=GIysbGjW@mzDreGF0`bdKdCqiP5LRslN6=yXBFpgo-*RQ`cvV0bd0mn?l0>y
      za{9At5UWSU2wbX0s@u_CLgVM78u?0=(@5fyij&C8-mfYO(4^AeR9uxx6J4h($BQZ|
      z$TKLWSLt;9XAH@(h!|2$CvXk1WXd#8?wz<fX)S|VwQb=pSi0v4Pr*%wle<cFZvcj|
      zJ?=IYCn=;Si9Y&V&?TT2@>)>K=}AMS)gkIVqBt2dt!-kT_6{TWHZk@J<67|*vfAGm
      zFTTM6hSxZ9=PwHD!xXhy0tR0K=Znbj>lo)%Oz|6-4%b3B%-}eU2pA`bp3#rIj7aCh
      zG07l;?7v9zmx-4Y+5_*WMes%lCRIwcJuoJd5JCJ&x)Zckk`Vu4=pBmpMo(>`^pBjV
      zN#(C`<^z)SuWQ=uCg$lt#f@#6gXkxkCKSGm5#B<U-^C1nfK&WoNS*7!N7PyRi2Q;J
      zL_R}u4xvn9`(%kma$e9#%BhlF7a5-8Fm>ny_W=`isbzNC#o3LXwkvmf?}g_`vJLGs
      z!6bG^=#<PJH!#Qr#`qeJ@iwNpg(B}_p8t+>+>Z&aZW~_>Wm17)7)yj91z!t~e;rkN
      M%WKAP12qhM0=SNM0ssI2
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6T~8B16g^XlrFDUVSWrYkQA>*~i1-D5QK*8|s37kP9biq_#qCy&f5$(731H#_
      z(HBV6_z|Cd*BJkRChD2(mbMzAFP)t`_ndR@oily)^Z5pV0bC0qAaLfM@xXYb=O3EZ
      zg6=v}>SJ==DCFE}ey3zEH=Z?J+vzSv<s&z3%3L;tpg^n=JULxD6Nu)eV;Z>`>Eun@
      zx;rr@ASMOsQ?`|N4a=P|as^rY<k$BnKlIky0=s5yCo3I+_Dm&ZF{+Pxhr>*B7tMTk
      zzd*byZRfHTX2i5i_o6`hzd=>x)iw0Y2n17hR)!(atU*J41T|>U(15)HHSwMqb<(OK
      zg53g*8Pk$C3rn-onKou~l9-G=$H5pJ5BGjBsQMB(S0%i2SASgw+YA}SDe-GTx@p^T
      z1)AbL9;0qNbafRPR<(9&=)l1Ut30gX2)YHrMBFkQsW7oh46n;I*nvafF?5D-oDHZ8
      z@)%S0(z0!NsNlRO*!YJWr@!p;wv>;yaV%R&mkRIjrAuzCo;*#Z%5>zsbR3zTG9PoA
      zRn?A}OVUz)^V%HH&<8z?K@5d(O5j+fv38!VhSNABP{(P|kjj#Yf8NR+KbN|L=#1bz
      z20~zS@qbB{fMHy~r4VS+@^rVm(Qp}8ILSq6E-dnf!~`vv_u8)*>UKJHBU5(4nUiT#
      z8E${+<yO7tK2@54HevC0Q#m7_mo#9slv{eq=%P((_;*o*Hq>GlcOmWqs6$XW9Ee8M
      z8(=KRvj#NsH_F|0<|tfaBDsd9#53$k^sXWH)C0Hix4}DpNzx63@dEo8ixET!_M@Gv
      z`Z_>~04Zr$pZGpkMchu#Lz(0jiPzC}qjwW^z3Vu-B36<sJPxp45TvSoO_4Vgc}vlE
      zXvTZA;sXUgdZL|0I$yMwMa0oVkp@a9ko4qxal)6^xe9XDCRPzE3#q{XpFBdXnBWr%
      z<w8c(Pzoed9S*Vf{tOwKR&jC@2i4a)&TgS4=?B+wZWSYI7%A_|V$Ga2@R?nGq2O0m
      h`OOn9j&EqYlYWdMMd<*>m><A6(p=TU7xd{>h~KGgc=P}O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)8T~8cU7=8}B+lB2=Xz7=fYKs+N2iaC@i-lIp(vPi6t)+liYZ-P9yHl4LoSo$>
      ze$;48FN_)!W7KHWM7`An7OROjCS2&Pzrdg1l~=~+%nZ9*(ikpg=bU%W`<~}{-VgZw
      z-=BX4a16_FGzgryWy~9ksnUXF=Tn|5WolT?80DgOjq9{57SEZM=eS3LSK6^X!?L9t
      zM^s>!@=X~FUaD#rXe~+CGK%BUEm@8|mKhchmjs%5q~sa4H*OTmGB)`~`r|+Ue)BJZ
      zZC=4D9XTq{o!uIg0s0JDw&k4>(6{W=GcFKKJEm*`F=|L)djb*c(x9PDAky74p5T`~
      z8untJKvPM2S!2m5djbc7OMIe%ZN#vRymSXt(3ULqxLlr{mhLrUx+p12*2z%-gEDX*
      z8l#G)K>rp=Zq}QmTQ;RYAU4Nb5a8ZAfEQe2u3+U##MXpE=#1mAK-bok)$lNm2yB;3
      zIm;oFb8N+?-dWiOlu%t79z{2W%1iH}wDJYwpop36NTN3mog#1c)9{$`Xr_k>6L=+%
      z!m&7*{~hXls%WqdM+~o^;c+~{n6t(rnRaI~LF^|roWM!m>vInv_SW%FJF|0+Ep2bW
      z$L%MrstJQI%ZKokhEt%V`v_&oaZTxt%A(A9EZDSDbX>CT?y33vHnKjAr{iGN?evkV
      zy5ESb;TfD2Xk^ud0ov}t#F$Ko(k-oFSgFv+t0yeeE2yyNHC(_&8co+&xJn=baWW3z
      zMsP{PK|IJl$_upBU~ODZB4UY8hEI;V*G>e$Ra_@1TvZaI8m?iC=fX5s6%*K9@4BI5
      z0uz{w<Ar<sJ^ZTSMO<ervbo~Q8R@#x9JQ9&1$*li9JXeqt>(diLU2RF%ec%oc4lU%
      zn7Uv}gP{~qeK+KkZL`#b9Aq43{k7FF8fH|0*n(0}g=D!{xJ9O}w3$xH6efK#|2NvM
      zhG&`DqM|s<Ayi+q_Zx>BJ_??rVb14K@EagOldI+l``j;BPKStTF>0NzRSGI=M41?M
      z%5F}cx76flzwhkrQ<wy_jLpHDE*hnhEa5O~DZ)A4fc=PJ8+UPk*Vx*sW*gTr+B7ut
      zcL#T8d9s1;mZZMQpEc}EiVAlB=sWG_?+!oQ6y0v12{-WoZ5o~Ff_5C>Tc87NVL092
      z(^d<hFo0R8Ig(K5$np&xe<N0f`+9N(Eh~6v9eN~L!6V`JE_wvaSn((HoeoV&J<@R(
      z$74|Y3i?NS*U_%`RxqeXl<QE`Q~{!91?Q6b8ZtFVU1S23DaaB!vCN6`Ivf8DoWX6R
      z@fODLHtY8tA94~=1uKNCR?i|!(4A<-2rg5+QxyF<T;WRK`Kl80zR*B_0Qc%Tj)toW
      z#wWsM@OsII8?JrO72K?$ZKpKAdqn#__TU2?#fLb~_ep$ICu)CHRCZn{>OaJ;M7<MU
      zw~lhSB8IF!xq|8N*2bx+)s0Pl9R~w*zJgaqbbSSOFCS{Z3Oo41{IvTY!mXd5;DFw0
      z(qr1+On;B&Uyz%OMAq<XR{w!mRAB;rekp!JPM?y~XZ)M-Isf(e0)zOH`hLX>e9hkb
      w2Cv~;yo>MZGI1y5xd(Z8%%R}-hHy2=nw+OimGpvt*CI0v-omEhH0Xf%4|)0`hX4Qo
      
      literal 0
      HcmV?d00001
      
      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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
      K4)KSr`Tqji$TUy@
      
      literal 0
      HcmV?d00001
      
      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
      zcma)A33yc189n!9k{OcAHY5-rk%(I|0fPGyL`WbS3`-3}jkY?;yd<N;Oq@&rwY6^D
      z>_)9sqaxNWxYcS41KQT2R&cM?s?}C)ZL4;(o84@yJ^y`gW?m+b2ELEn`|fi7bN}uB
      zcOHN5{s#aYu9gR3Db$}A-4NZ>G_*0E>~G4XZM$ii-4`8BWY)6ZY9|t>*~yrlw$nib
      z6vE!sD>|Y*b|Q!}g#*3g2BmnrLTJcN*u5D$rl7j{IS?IcOZ5&9Da?wcqZ^%%mQ<S3
      zmZnp~$yj@DDydN3n@A1W?nk)8D@YbJ6DeUw`<%t0)S#Voy5WqyDbs00##71GR3epD
      zm}2%fMK@-e%m{Z^$+}gkWbxAKo@np+{f0>K)a=5P&&J9gbB5wgWsBm;cxJIeNqs|?
      zLZCGjv&&I}nHp7?UJixX8a1e;lKbt9YlM#c$tvp`#-3ev&C#gCfeIBvcBZhrs($S1
      zhAvrukjBA9QdYZ4lj%b>4$HxL#~U;vvaPZ}t~GBM**H&QzHFRG9)+0@niQsqGb|82
      zx24jyqtkL6jw6FOf(G!KbY1((XfoPwr!|hk(X=haxwbplIZ{(1N>5$ga~^%E+0lu|
      zp2Fl<jpJ~<LN%GJ^*8P`7pve14P7D78>$V}p`6=z`6`^Ku~>ksT;S0r4q=J+s4aQ-
      z5l$@{t+Mq1ZY|7=@tzQtkKs^QE<h)1oFYK8M*$TxS)nj<^hun+GO84q4vm!pGecl}
      z{56EtbS(q1@8A?0en8_ibkeJ7D0<JnZR9mu5bG4CirpP+wxm*w;bb}1;&hEOaHfLp
      zamKo$iDBCWP4@)yK1-t<A%)2u@ua<KczutZUK{O6a7DNy)f-K8MbmNlb_WBQfjARP
      zWK=L@{!f;p3zTe#CIqfP&vmvCdg<OqC%H5u8n89`(611r2AtHhZ!P2!t;t*=#CZ^d
      zSIBW8oSzetOKWoO^%|3)nKt4kDOONcE;?oU0*wlpo+#mx4@;TJXiStD*^x^RGQLq`
      zGNv#U^GsEolRz2mMbv?tb3E}STR*HZRkl{U+s1gYEc&QMSQgFZqJjsHmLTgc*O(^j
      z4j8r07xH5om9lh(EcNkOnt<NimP*nQ!=3<_k>-Z3Ag&@EZ?YLoMEjc7wV!4WrH0eJ
      zCL4c7;}iHK)zT+EW?VpWgn@8!Tj4O0y}zLGd5NPM(M8dX*_v8Em`d70XNf~6XZ{tk
      zw0W$Db$55ScaO?xE<&@!?3Xl#Q7gUcG_IFiE9VtglCc{!QqJs68fod>j9Y@(%1f`<
      zlQq7KTbWxksm@HA_dc_F&eA4Iolzt6s~TU!*BwdXB6JpSh`TEry2O;XX#^3H-W?hf
      z5E52*X?z2BD@-TTQ&Q>pMYKgUu{06yPp&tb3Dmbc_tHHY_u^X$6S#8qVDtis`apfR
      zGr3)3hrm>Fvdd0q;tcgXh{)Ngu}gNBbHVbYWPn%*_Y=*8S0ANHsD4-Ddw9SJRmV>b
      z@}6ewrDE(Z_`5YO#YNJ4NaI4M_XCYb#P)LIc`u5?u~*|!JjPSgD>_oC^Oq)LZML0o
      zFLkMSif;3D?YTK>{Rz1kpX6?@uNGDaiKjKLa7a9(@ey1^Rb}W>ynjYzI>*mwX?xRP
      zlw}-CuYhC~Cb@KKBfY$xX*g&4yq}9-za*M^QK57&8W#ti?un<9)6v0!c<&HnO1QkD
      z@v1P8+~W-ng`Z1iG!FZ^#xL<Jnulx7Sl!o0jhUR@UXC~LRuFIIt^*;F!`JwYsF!u4
      zQv!&v-)a0_fTS)sJs!&p$l%)=f0V%q96ZI2_Yct6Z{W`wf5Bh5v@b4IY%e7S>)ZLy
      zq5U_FzvCaIWKNi?ME#DL+f#ynX}pY|Qf~|yN7E)X<_Poh2=?^5<w|gqb50@nzQ)JJ
      zTyH3)m1RiDt?H0cn+SLz|BFEesFvPTf}7L?t;!`#<zA7{tKi;AK{e40=v*$5_}6N(
      zoL_ULeC8CRrfL<IiAnB+z?>W%ELW9kdQeqyqL3O^Ml%Ci%}~{3us%vorBqe}9Ypb#
      z3Z!T=3MS5)wB2W?({`*gei0pRy4QV{#TnE?EVt>!CF%gJW~-VBs!q)fDrPJ5crXgf
      zuhZ%vyg*SK#gr5?WH2iWi8sHJx()GSj>n=IN-a;@g^ys`cD*!Izrrz=f|XfM>a2sx
      z28>7W+VI#`G|w_JVbg~xHk!7hOfChng?ZBMi>K{1X<qs1%!RE3+(rV&d-H~y1;^&|
      zu_H!YGP<4+-U`D-;2Beim|OCMlJ-Woo1^Z{&Mhs1rCJIH^Uk)mn%P$W+0ITg+vz_m
      z5#m3yV#U5@+S&|aoBzIL%gpRD|JiOPd78A-T*7T}DduYS@d#ZY{)z(`QYHLf%AzMA
      zcMjjP0l9J5T2ddfy;2Gy)3W?AE$b(?0V#V-%NoYCEK^L&GQ_m3G1xW`pYJmMox!iY
      z#I@M=M|Pq*63Jp#76(W>H;Y50t<Rz{5?-(i3$r*T5<bCn7Dd7*na<Kkc$w+6MZ)c-
      zb82|iF0AQ@H15IF#@$$(Mb`*|fo%ws>_GRu6lLLT{yoBw-b~t8v-d?7K-ch*cr6aW
      zby&b6;8=`c32s0;Zp3Qb#C*F2ALPF24qbc*=kRMas&Ou&JdBdZpL?i<<{Kyr_v}LK
      zp1jO5jsv$D9Buk#E)FYcpWOpKySMx9=JR%p?DKqf@Alozcd5I3v1^X9NaGG93fd|+
      zr+$i#@w7(^Ircm$lGLJTfu)j*)nvYb(#Uosik0xPhe&B&34G_en@15DEGF_MiM%xq
      z5mstGL<WnAyyHuR4}U)*Lq$XsLxtB)!7uzY!qU=*$WRdxHOZF<pT&MeHWU+?MIy8J
      zL1Yu-PE5n<%7@5?Vj}gvMELOcBXV&uk)ufD=y8a!uJR#raWRn=Um|>@`w_XMn8+#;
      zSv?LBR-QgYE-5B*wl5L>?BGY_vSK0wBoZHo2y0FsB9|2t+2Birzc=_1xw4qZ<s@>&
      zI7C=Y`4G9Xn8;>dB7ESvn>*b+GL30iH$I3@jZij|@=koZz$(n-3w0AJ)D}!sHzTaJ
      zde}{KvjX^x{VYC5U?nfYaRqEH7H}H{+)e>^P{5u05ReOzt9cWci%F$;5z2M9wW@Rk
      zljJ74CW~vgVRlu({T?yj6*6@ryODWWY{}v)k=h;D7O4vE!0nOJEbfeyWbsY;^X*6=
      zi)<u(-!6QIdZ-;ilkENePHdL;!7LuG3XUKg*@Zpf_ADOH;?!-Zizw5Y%ke39?GL%u
      zj7JKF>BCHFb2s(;Am8#2p-MfBI`s(Z)m|)AkMcLa$M`$k<NPh{3H}!LBvz=W_*2x=
      zI72;yv(>YRsppVT&*K910@CV5K0IE)rRpWV*<ZnC^(wAcuVIUN-6-%hM>Tm1ZN-o9
      zEEPv}nd?w)^sT0TC^5a~xSqD=*pJyOHNEHY0<R4jllmga-Fz3h)-7BeJMojk5zYOn
      z-uCr9J|A4mO(CoZ+rWEg+XyN|$1AsCD%+=4&fAL+J3m`#EuOarbJ>0Ebe0~!SlmeS
      z{kpNXgd@MLjq&dvviK7bZXZE}P4@^wC5yLVVy$%x5oAYX)asphN8J0L1@Bu$$Ax+q
      zLG^D;R_~!wy^m^Yrq(LK94ml>tTNPFLCm*8IKrBM7E7bunuImhWURBMpxc^?bF451
      ztx61ARp!*pu5z-x;y2)3{F~?2^w$3{&0DNvdfeU|oR0re$t4`+gUnU!wbV|K7<D}2
      zdnc65EZc(_jWf&S@HMqnfk3RPG!V-w{$!A=l%|VJs|ICOEh?-zm}=FL|6If86bCEM
      zr_SX=d{si(;s|vrU|2}6ls&OcohoCmlw4-1AbFQ@CEu}dioy)nh~pe8=IJOokx8T`
      zl2xHSsA{}VRj@|o*OWkPmzs9&i8Xf>F`b7}Yd(V30)(w59BeH#OzRv(muV?~<e6zI
      zmLTS+S%#^SN0rN9rO_JbG&@yoN8_2>)ts_(cc?jy1!tTjfYu2V){M#4A|u2p4yWdY
      zXmzkUgpf)dny+{pNmn986*O%8+FEWPoVrlC5K0|3{>GKQ8|#%++EQanc_JnsBk?RV
      zwV2u$N=`+~o{FeOhoZ5eSV9>aish8z!%{qgy?N}ByQ)|7T~SAKTx>o@lx;*g`tgcd
      zpd{7<YN0yZg=pt?BdAzEX#){)COvGAP)E9Kk76Zmq_YBv(maZ=$BYMi$@sA9*c>c-
      z4(xH`!Cti=u*c_Nk9T2D7!UT^{eW%G!#2CHi^hY!b$nP8BVzTV*>jX|q6gOaP_fDG
      z9v_yj=9-MXfHB!(53H{z+`k{NC*@&Ja@j8N!1}V?vmdZa^RP=@wk;l5U$)PU56cTM
      O=eHrlwpHRtE&Css(DqpX
      
      literal 0
      HcmV?d00001
      
      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
      zcmcIqdwf&n8GgRxB%$qTQJNrywosJPCJjXql@^Lvs1$l}7I1*K&;$t!2_z|?(|O-?
      zn-h1(xr>*LUEIVQ3{iyXrgNLl&E4<QIk&mF`*b(<yx%!FNt(3!b3gweIXUP1-uHRl
      z_j%v%`%Zb{zYiP&aH4Yg;8JMX9N8Y(*`C=EPhQlXO~+#GOJf@&BZ=%PUiYV>v4jtX
      z!Z9+eJrUuc!3~>Z!&x7^3VwYzo@yV8rQ?xA{F2CqM9hZ?3R6qWI`(KRqld4Fr8DtV
      za&_-g1+_w<x;vH3WFyJ!nn+?K=K0YlrkuR{kqJQsBb`cR6{hu-H9A0$oeE|mp2^0N
      zv2-856=oF;j%|-6v+c{|Qy%AraoVIv<}H~ei9~8grh8L75lzREM6*u8yD*-NXS);{
      zTZ&BS7zr8ew{;ESbrV4)6sDN)qfTM^cr(_?l!<-uWNct$%Z6BbmBfrV`clJ@#F_}>
      z$lvx&BfBY{Q8>O7!004(R>F<x;(vyMyQOuF4>LKjFkoZEpb|}(UP1J;OdNw_eVDB<
      zyKtT+Z2RjU$!d5u{Yo@jbAu*oFj1_unV5uH1yAH`owTYQ>3B9~X~v06J0)Y?8XU=P
      z9mx*SM`TN<M5c1t&f(bBEOn9b;UtAxfg<C32c0KmnA)&ep<c&j3}ZA!qtTpaJB#_j
      zy~#qyKAfg7L;KPq?@mNAnSoTcCpD6c7C8297j4eXiLtynodHTHkcnlNl#!RwqDA1*
      zwiJ9EW(CW4QSQp$(rS?_C^@QiA_w#)qp_WX8?{=QDobmHrP*0Jv$a?Bxy(cl&QzE{
      zE8|S>E#q3`)oWq}R<bf;+eRV@>M~Hqck4Rw)Nf({gDmNsr*6iPRatgMFHLTZu<$rw
      zQYm(7X;><gWf|wcULPovx)O!vO0o*8@n#ci!30$1+%KW&#ul4cQMb!YV{nZm>zKKV
      zM|X;m^M%6&I+ublp6QE4Hp+tyCWgWB$I^On=a8o{6Bo+U2~s!GBWO6mnKY4(B~p>7
      z#AmaKw;;ieu`!;G2?SQa$Z&Qf9qZo29vdUsMP-7!zBD@Pd&}IELQ?Ew6LjEuqdOH`
      z>q)};ty^4enQ4M7V<L+YD|2T>vYS?=ENLznucx(I#>NV4trmJuDlG;bf^)~PD1$mn
      ziMFn(#Km~450{LUeVJ(DQY_)Z#MJafGFj~~wPkB6Np<<~HoL})fR5^ERk#dSn79&G
      zF$k>8)m*G{O{A=R*=kchY!h^EH}MW!$BL$VaV>(kV^dV1GWMM&-X-!f?XkK-L_jx~
      zcn@w=sL&6rvS_f|K@o6Ax{|k>Oq_vkG5kIg@5cvn8I<`Jlre3{W3C?;<3lDsjNKIW
      zR^B<|;w8~2HwAX1XfGp2t51|*vh68+#KbM4a(_<cQVv{ZZG{`+Cf7;JTcKo=u^oCp
      zKnV{^{SULOt!^QH6l&s0W+*GBdz0Ce!tye@8kJ*9UPUfPkLYb(BTD#`i9Pr<lR+h%
      zW%sCAufc&e`?DrKhdZTtXp9QYuVE@ZOG3Y3;x6oEGNdbI&WWW-Pl!rym{G=zqlWb~
      zV8zW&-Ar9f<FaLsjmxq^Ia)0v8I2Fe*y8=^*p}3G-N$;;sV!CrBrrF~#}`c;zzlBa
      ztWo(9Lg1i@2k{UeIt0$vwupb;`1s4TCZSX%hHUkSgTp3{h`a(t^2$X?Mm%ET(NY0A
      zFeX~CqdHEyE1DXsqfo#69Nn75@K>cvKB3St9+BQxX^WmHH#$^s{rKI}ABjdKxq366
      z+r28Z6uY)|cO~Pvr}E*OWp{!lV`V4!Efe3yGhFoOR3U8nuzHu?64{M;BpXi@Z>RO<
      zZ9;AjUVi^w;*rbbaaImW9toHqnE0W9;le2*WTx2?OGZ+qEx9h66Zu%t5UW2m@iY9~
      zYP`8{(ncAsxz=5Vtq;FsH5VstET=v^$C54Fu#6hHOwJ{hcoxsg20kGId%?ty@Z%~x
      zh2NU^9bRM^W$pb$zJZQvMCGjNw0JYAk@PU*=g~tHiaSEtd2D&PWM%}$pH2KlU>xhf
      z$Q7DA{hNuu7lX8mOdh^$;uU%5m#L$xiGGIS7bPRI_hCIPT-DKGt^H+!-c=&Ug{xL|
      zc6GL{=NA*21H9_ut+aJ)!5+fWuEONvQx?bBC#}h&2V0i8)(q*`^~B|n78rf(nj=}I
      zrdTj=!2_O^F$EQn6jt$+?SjcWJR0%ZkmHs9<^hS{GdRYN06!=5*J5n}@C8He{W$J!
      z-g03oKP&kSoDDCAFpXD}^=}{Q(ZFAvpv`k(l(VO8>{1$Y^I3CnKN^Dv(X@6yj=vu#
      zgdRiHK{WGMOJ6W_KU#zJ_al_|)ktf=`GmTZkS`?62z_oK)M3m*RQsP{S$6z4Bh0Z%
      zyvfOr=v<hCc7D#~J%dk9)CA}AmoQOzcV0a$RX~f)(5A&j0w?pi3-fV`ZOqH>6LISJ
      z<}Mw>+yZpa98VbN<fnwZUH=9=!TS)pQ^S*hTd1zpW=sy@02`IULM*Z;cM*%w@dl?A
      zh0sdZjhwTq0EpM&<wX~RBtRBBxzF2@oaEzU+1gE8H;-XUlqI%K#}a;yCe^xk6sg<G
      zlH$J6o_q;&YjDm?ch?>Sf}w_eSlYG^%L$?3&THJNAsE_+zFUvJ;L3+<GU0(+6%X!a
      zZ1158@1kDr)1HEsHHZ96oP{^h7d=qXZ_*)bq^?)duadK=jbk03h<^Q{BUrr~HKD^;
      zU4H=QxVRz8bE?r}4pXy7==l-t(Nd@1@#x2T+oK=n(vOQCcrvy9$hRc1*78#=eh%O~
      zg*)AOf|i>n>E<cc@6!dDsCC@b+HMq!W~FWXdVWhVXN%Q-(b#ST+72M1up2)29vB9r
      zT**6JX}cQo4y}m3z=-~q?c;Z7#P3;sf6$Ik*3q8rIG$}g_AsIwDFzouxp5IC=H?ui
      zeWkF8Ik5!t00k}?TOK5&R;F{|v<EBur#%Gsfcq3<52m&SjDRs14j6hsz@P?(t}#@=
      zn0D*Y=Yv6mBiFiR?oeBJAL4nrHnZ_Txly4ER4WfADIcb&3N)%pwDEers^;5=ngSln
      zZ5|aYhAqqv4=t?DBvM2^iDkbP+sGq8?4l9rC7Yb0IY<^>@>r}jxv2iZ%7J=9>oDA>
      zc=ljQIN%9*2J4J~Cm0HNGzX6gc<L$MU{I!{!*!%q0>6RpH5*Z>rsEjZgvsi7)T<NF
      z!s`>&Y;>s>4Zq8B?WAEb(;$`T#R5&l#kM_P6LGWaw`(E>lVXY8!;#yugP*Ke)l4E2
      zNMt)f?HmXn!DYLV2p`5}RL14h>tS5oVes>s4i86M+u`Ns^~N1o#4%LsySZxmj0Y<_
      zj5@;|tn)D^y9V0^IOx5+{9vEttHV?0afgTGp0*GS)_LoUI)>%ueENE1byBCnqZYta
      zo#eid+!ygZVi)-@#$2_8?={ZA>8hJ=ftI3QE#sS*9-OPrq^6f+vs%d)2mLxeXIqS%
      z_-w~V@iFoxOMF}xzK5xm(sXmoT6}^jHz?sD+{*hNw4fii@ybg%wCkqf<LujUhZQrP
      zvfWz5O(6#9lP<J{8V=wyY+iO88U}-HlHSkf=}ncCsdM2|=V78cAAWTK-_>4-8A{eT
      zaIul9XmTJov7g<eAvY1gJ-Sac;a=UV{M6}v8nVLu__Ph`7FrM+b3zBOkMF=F@&jRa
      zXefs&*v1U(8sy{s3IdP`dLWN*rUXqTh;R!NkfZ=p2&k=?uC`&8N+YZ?1xV*ONarw+
      zf|RdriBx)k$x!BMr_Moo$f=zV*+|2LLjCj;Ac5NOv|vO`p`pS`DNu^uCaB8@^lhk8
      zmot=CV5+*3K(At<UtIt)?0^j072@MI!2(%DkP<{Uw>h<Tg(x}m+Tr{l6DHxD+jd9-
      zshd-+w51R`)EuWPg%90&^hFz}G^B^~0ku+oBP)6r19}tFy$i>y_o7|BuK?p*2jg6g
      zOjJ5oBXbc!&<<n;QRbQukF_?&2oXw;uPy-ar96O1@=)EzKZxAUu6P?k+@T#?>teOz
      zxY}`S=}Ok5YJ6FDKZURSzac3|ofVS17?Qn2b2me>mm#@_A-Q*qkXViF)k5-^qpimn
      zH0jGLbL-3K);z7CHOn$m+?{__w8E6{(GM}0hq%N%%s(_7A%#b%yhkyI*Qct-utGhq
      zsaQRFr4!_pwgM~oqD&SW7em}-_vl)jW-D+qTY%(QdNf~z+IjAzN+l_>JKu-L^Lr4z
      zSyazxhow7nD|UvwE3ge+M@5KWTDTRjslS=cb}v`0)q8_hCDt1k()>U;e5gKZL_<U2
      zyeF&Zp5q_mo~NFE%_ZtL>|-yYLH!=h%Gw=Rx@vJKx7d{F4`0)i8+a`FD85cQ3g5t!
      zHmYu$UKR6k!lb9zrJl}<SnopB%XIik0nIAMNfo|>@6wRM_r@{!{ZR&8Tq0fWS24&V
      zu#Ipr!!LzdZ6Vx;pB%<7^1;!2G*=A_*F>27mWFQa-E&1|$g4=(*uxa4thn<I;@P#K
      zHi~RNe%0X#?!&J;ymj6~M)VZl9!#q927D*gc@E$=E?na~8t~n6^rbut-K|~I;d9ME
      z1;1-tGvRlgfJWCW1o?fEt69Uamcn^XxaM&;XYGOKF%#RgtmfH`kdSN{*61DIOO&A>
      z)A2|Al8~q2I4w;%Wb(z=>m>81vB}IMnUhIo9?8rnnNvyTG?F=$WEQ-EWcZHmb&~n(
      z*kpQ0=1h|5A(`bQvw~z+lFSN{>3ajo@b5aWlgvNHCbO1g){)Fwl37nO=aJ0$By%3g
      zT=0gGQSzdU0{tgz#f5+A^W`9~q!U(1A+k~YM2b+BaQoowN@zG%FRXA>Ux9z)Ka9(N
      UInLxa4e-uUUMcy(|B0af2i8afr2qf`
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%Sr=55Uk!rW8!Ljzco2{NFo@#s(4XEAwEC}=xwqY&4h6`>~7TG@*si-KfsR?
      zYtWNHk)><8d%LTqd)_}@-vDf(l!GVO?y7tBSWg~Icw0|nt?LK+M)hraN&iAy9i%1-
      zPolQA>*p%%oLd#>qsX>(oI_SH;ri=VvHPsmWwjvNW1V2RF+lA&9m$Sh$RwxwK_J(H
      z;awA&bWc#K{Lyn=ZIXMRHz^>4F&}x13o?~zGY{Uw#}I~{H{~OT5kawGLVeo5Yw7q>
      zwXEi!MieO9RIzdKcQTuHOd{AFRQ~rOIF9sap`dUP_2WPv8mG7RE5oK+jle$+Lmls1
      zl_WaJVO3BY*x9cfobbnkpv>_zd|Z#lZ4lvhK@?gZ1)ihyu2|vfinSN`wT)*wE6<pG
      zV#>obaSB<YA_i=0V;mYY%#^>{FpD`xB)~jn9C;B76!Q2jGV-v5Wu8t@u!1!dJ^=}V
      Bn7#l2
      
      literal 0
      HcmV?d00001
      
      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
      zcmaia34B%6o&WcD?|peM;j;69kOYE?lJ~LzLeK;dS(Io3gdnR5kK_Rlvp^OWwQj||
      z)vC1>kj>i03gf7i2Z~LxGe)YdOY2N$y4iNR*m2tbj9vbnnO5feJNLdNA<z#Wa?ZW?
      zoZtEF+j(z(@=6bYsq%6VmLRevwmr79qGLy*byG!WdpusTAigoy)!ez9^M-hHys<OU
      z)>_xr6mJf~5e(Dy70ofOUb0~ezXp*b7@2uHzqze79^23y4<aNOWj-X@DjMSLiCA;u
      zX75X$;KH*GKKn!-*J1Xph_`nTjq7R_2;>^U;Q4K>9i6e(&K0rdu6UsA@abEQ*M54s
      zU`)fp+J*C%*DP7Qu5QVKh3l3sTe5WFvgNA<BWg1^HgvX=-0BcU5>!Vvk$i64Oyc4V
      zU0b)dwRZ~2&At?e;@jh`ofQqrt)=a4TjTAWyXI%FuNLH{0SXG&_StRtt7I;Xb#CTT
      zw>i<#8E=iZ*K!n0>a*B8YM~yepHs{9g!Z-_b+N5HohS6!V-8rB`pTsv^n|`*6kO70
      zk1uaMqwhj)ml{E+IUZ|LgarkCHuk3`R~Oc_HpO=ef;uN6Y5v9yhz_cXfl<-bnP{$9
      z6zkaB5bxwcq0W}AdIlHd%u2K-I_C)N$t5cU&V1@#9&AKhT#QR{At-fm0mkQXR_>w#
      zQ;eGQMV|X6*OaUXVj9_+t!d|^HV;z~QRp*V6rw1Inf-M19P-FRrMIuj#aQGkgjp^o
      zVtf#!VYpGcY+~~;+gpF7i%Gah*UxuxAubXOtxdGX7k9O6h_^3SJ5i-=Ym7Coh|zZV
      z?7wt6Hz&xa(zAtePSYia1C45!w8+UNo&>UNn4j|&?re;2Ra@@}qE>KG##)R;FK+Af
      zO(NcuUaDeQ>|zmWl#Hb=Mj@=TWiCczOdghFaZtypSWLMZ1e#RVZJq)4N5(fx73>-p
      zYjHgVo9IX@<-(S&ox6-$tO?;p@^)?7(u(8y?S>%M3r1%!_W;i8+PE>^9>NBrC+gAS
      zO~o{!j;i9dd02-gRV;EQJUNRoJ}xCI6q`*hHX}h2HpM%QQjhnRro2L5ODL&Ps5iN2
      zMho|-p|+Cj0xINL2Y9$u>xMSnuvOR1Kj*q2X!2vuCNR<5q!iMJ1WSw6^osMa4NZ#s
      z4i`H?wv8n2wfvH1ry+zkMr^m?7Crn{x|4yCH1LV#Hr(c7B~~fEcj%TosfPox?R<pZ
      zM!!N?j6K&HekQL6?PyPQ#=RILnBX76NaDR(($%@OtCLcS$6Bh@(C<%0Aug#|l2%a)
      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
      A3IG5A
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(%}&BV6ot=}pURJ*Ac(rr#2AXk#x;rygHc0F45a%3CRhV4X$$gNE)0naAHat)
      z-kCON2qr8#ojX0}>%C{bzCS(zT;M>5#&G<?r+jAmueLKV15XIEIU94QZ;8Nd&U#`T
      z*sh}^&QO#}bI3`z_`r}5Q{e;*C#}CAb!c`7r)WMgno?J1NM72G9W)q>>UtK#Vu;_k
      zeUU~CnJjc<8Ddq#N`WDlMFL5Ne9Lyk<7CtoUWa#wf}zlIdwghd&z5y`7!RIpf4SNJ
      zrlw}=Yxbxn3A1Sj9z|I<EZJ^Jwp(T>g`6b?gFX_z&j+gA-*_VgL%Quwyq>tV<v^7c
      z7jrI6IHDk8bf=V)OoMhB?R9L>nxg8KYK`9M+MJ%#cWk~XO`g`Aa$b?MLE39<(OEfE
      zV;cpk$fu}GF^duNi8S(`ncCSLJ1e1gWV<KxgMuE0@&z;#K?#9fR0zkgM?ekxKP{7+
      AbN~PV
      
      literal 0
      HcmV?d00001
      
      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
      zcma)7{cjXi6g_Xd?Y7GRr9iQ?1&XC~w;zLupxpw(Lg~`&hi$F2pg7$fx>L5Zb#|7v
      z#%LsJj1r9o6E$M|N%S{Ox+Rsw_>(01KdI-=to^WS(k9z?-^aP{+;i`{^T%Jm{0iV1
      zyct43;pD7w$5_<!3zj{jyN+q<eb%Cx?l-NOjGHu;as@YTq%vmfP%dqbnyH+V4k4&e
      zD>yxC5H&nKYo=U<3MaRqpb`p|X>;DqC{)cGj%jnNF8SZ%F@>N_mkMDke|d4<u+wIm
      z=qaM6a|Jt{SJ>yHj0IQc%`WfCnu41*#CfB)yNUWZ`HyguhpOC+m2W+v5ZQXHe1rn(
      zwQS2hr!d;SZB!!Rv)mv>Z0ky7g1qC5w+0FaH0(iL7!_#Huonj@U3+9gcA7L)qDrho
      z8bZExL_;-dWbLSiuvo2V3*nf;@onZ#!*R4LRGVuu@AerMTq~=OnQm+cqUa2vLt&?v
      zsDC#!bfKHbRL*t{%VtjY`^s$0d@M30>`rLd0Zn0d(z4B=!rZj!j2qKgX1FeyOBvY-
      z!?9#uS`12p6i#hd=nVxZHDHWNu~iwD{7S1dq&^iw#z?8;LNlf-wV=@4UZw`tN=2ym
      zYS@ih5%!#h^LSCAMxMeTU1ph-trP|A?NYgmxD-NM;oz2Rtew(u8GY22l;RmHn~t-<
      z`6|k4nGlct8WOllEs03*Wh@Tg@_@{F8U4$YTOx!cAJBR-nUvdRI%(zIFb2>d|AsY;
      z;3a0)NT>TOC;xwpSedOD(=d*g`LyNHN*!#dpnfBtaV52}FkZoA2-g($u3x>jtzin+
      zS?ml-p{-0Hex5efRtT>$12c9(-y-i7yC4acP;P2?9R}0y<}Nsnu_W3?u5Z;Pj2lSF
      zn`5gv&|c=ilswd$tdaK<r4X=F>`FER&-!hrena5vqOv3d&OD)v?P95Y)tBl{-`v2Y
      z;A{;$u`2{3>O7$~9SI{R8EQpdgNuT~9(tAfzGTgrcHYX#Lp)zbzeHlnXSc~+tR(B^
      zMK<2CT)|11eU`k@#_~<ETi7XR3EMWEICaTO^20*L{}|v1!>Qm0r5d%;yJ*!)=kiAO
      zEpKGk@<#Rtj*!^-KOm2e$7`h<axPx>VjunOr}Y)*;zf^k6j2|2gr}lSMKng6i)fBE
      zR2FeK+7K+FCEBr!ryGK+hy+lC{xcx~e%*jWqyY?*)D>Qz;FVYDp0$r84r2%>xqFJc
      zyaLbCl0O~K@zQ{2ou(y}bethR=vmLx62uGW@oB0t&Sm96bQ!THxL?sr<M8h|&7po7
      zXJxjE3jv&M`j%wZ7iqSv;z|Y1H8%y*-=Q+t`xpb0k1#kG9eRi}on1Vzf*}rc*Cs<x
      z(8rH91XnQe8`MzO6YT1g84;B-{rk`8W89eRT)}INk1$<CjF8w*B<PDW;c5F8rFom7
      zyhHupMGNlY7~W$@@8beKKpY=YrjId*du$M&;2J)~O?(CupQC{LSi%=Xd`ZMTe2A}U
      zedCGQ?+N~(BxVg!CiAW6|0r&Gvi9)K8Bf*$de6Wjt3lp1OZh8!x>>$-p47LIE!9DW
      zYl{548OYod9E*wu{E3#0{5A8ZKSqwqy|DtPh&e9Itw&t%rRRHcdx$3dfHsa1{OB<j
      YcJy3g9Kan<rv)r>40BKM4K4xy0K*wP?EnA(
      
      literal 0
      HcmV?d00001
      
      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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
      AQ2+n{
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0VRi;4Mh1nf#InQ+{o?Y>ymbANqSRD<-_nxAq@2_cAlolLC6%3l
      zg^@u3q)I<05vayLDJwO(gq?wnkwFqeFH93716yWZacWTsBZHcT4~8-{E37>=!+<)9
      zQgidmQW+UoG{AgSA~b^Z@fN3+gaYk?IE;}&6rvB=wbmeY0ub}vit=*<5{pvvfNo>f
      z07-BH4S<Po1?QI*C8xS&<^UZcg62*=kVk<225JOiR$wTy0mFu!fr9}QMw|>>P?{S|
      Z^Dyv&X+8#iFfG6U6bI@P1d>b)LI8x<W$gd}
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2;@#InQ+{o?Y>ymbANqSRFVp!{;*#Dap<B6bEAMg{?p
      zynaq1P}V;wD>b=<k%2!wwFIcB*e$;(Ah9H)n2|w2BiaYUoDiU4AbD%eXir84uHgLA
      sqU2P!%$!t420pkQdLV6Vj0}tn%s@vmFfanGWMyCju^8BaBohM%0MFYmEC2ui
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      zh1OspWDBgLqM|%CA;O8}CHim!tQi@&g7Zs@l2hF>b5a=@gi$Th1DOqU8zTcV5VHb3
      T$_R8nI|B!Z#lQ(9nHabL_4i9-
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh3;K#InQ+{o?Y>ymbANqSRFV5Fp{4nv)ZhnwOGVlv>2j
      zz{1EN08*x(lL%DgpOlrFT*Am8lb%|FuGTp}w;(?+H4iB5py7jTv=>OJHCPDQ80)C0
      zD9<QOh<IXoi9Xx}YeojH;QZ2}<W#rJoK!{zQFOcXK*qB%GB7eQ1O3CmzzB3ED+3#d
      L#lQ|EnHV?#h4V#u
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O;3YR5S&*Pu-XqT)x<v_Ttv?tNt%#gYSeh}_AJ{%gS-SN_P2TP2l%6m3#K&+
      zdf9o&&g`4rdH;BQ18{{C9UXzQr7Y#z$zS4h;S?E>bI;{kg_P*n6&O~1Cz0HpJ}qfh
      z2<QtcZk6JfY1zT=zAIob!HeP~6gan<1iw|(+lV~1N_qCUMQQs2TAT+Y=YJ3$1xBSz
      zRy0xBjVvNBV&}w0F2BY#Hmyi*)1&<$FknZ18q#_?|7V*PExR;j7;X<4#Cbs}Wdhbu
      z7gSPOd>?$nbF1G^GkR7fwG8RrsZ}<kNt}>Ce@nQilF$SMb~s<a;Pm#Op-NGQQR6<k
      bH6Gxw#vb}L4lu0o2*)*!D&$Ef*AB*?LhzhG
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ-u};G<6g(G5+CZQMmJW1I7c6F`ssbreRghp}Gs&a4GO?66wBN?i58$H^&sICO
      z%R9?=zIVRgzn=|&J6y-;2n?6%TdifY($zw`nn=F#nA?(K91HY4EsbLG>3vCs6X-3-
      zJ*%23KHp^H*<OQtfi7$Fs-(5RC_A7W=K=|9r=QxC6E+@Y`C;dDr=Hr@CppTz$AE7q
      z#@JO8oH%4)-UK4u%t(E3q{8nA%y64twoV)QP_<uFE2nM6$&(k`)&)IkLjviplUx7U
      pNPu0rLm=jgP7uLY6{8!lha})B&H|=54|uV~J_h_!;F4ztSN}<AWTXH9
      
      literal 0
      HcmV?d00001
      
      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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
      JrgrlW{s)eUkcj{Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}-&4~-5Z<$uDz>$SBGi_GqL?TW@wdZcjZ9|JmLY`)ePE9E2Ev4-lcWXyH6Q!~
      z{G%NAE@#?=T3)iVyWj49``ulB|M~d~0CwO@4(<@xIHx0er3II^d#Z&#V_FwK7IRoH
      zv^}@w^_i1{EP)aSY7RwM=j0r-1ePqLy=Usj-2+`ewscc(c8yM(05J#@nw}ek)D4fQ
      zGh`W@NC;G$op#sQJM0`<sUi+QHubNDH50>$1T0MOBal@L^$0VkH!>MTMKXz!eHxw-
      zXej2?&3Sg0H!Dw$;n9G=n)2h8suJz@V{*}?ayo>K7JYW%jm9!Z$jX!`f)i^+$W=w1
      zK?KQ9Dj~@?6m=H+R8i9#x_HDzJK*KfO00jIZr_ou9mE3Y7lZJc03HG+iam!>KhB9T
      z>YPWN54_739SoSyCBC^>oE8U@$KB!xCp1NhIKP{c4-=?p7Nx*zv4EXgwi{Ezqzuxl
      zWUycdn2cgv1%BahrLxZ=_Awfd7Mq%kj&FhJT1iKvbFAXs*!Ml$JiKn6;oD-S9fZu~
      zN^C|-XeW%ifi@i_1gS^YW;%kv3eHHp>G6oIq}Xi4+%Wn6|6#?TS~TcC&E_p{==az+
      z+hGKj6Cm*y+2-$U4*w3oAA1I>a2Mv#%kifV_t3vT;m@Q0V8YKs4c~qNiokzH51}M%
      z85V?Hgo?0B(tjlVW$CX-zY329t_F2sS7o0DtO<V|o(TICHiUf!&xPHD7s4u_3j0#l
      my^?kdUW@p)tkY!tjhwdwZ$<u{wC~}A@IP{k8hjEOeEtij+J7Jb
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7F+jA3j6#jm>bV*ofrBDsDTxuyzC<K&?Hl<3#rJ*-yX{ANQZL%~AVG}nS+CDit
      zI_QHkIygGxpuX|qgU*n4kQv7(nbH4A{myPmT2p4Eo!Q^{UC!-0-#Pj7?_Ylda1@Ig
      z0t&}(7`KhZWO>1|=aa5un#pOyv5dKbIb>S%d3VHEDpuUIk<FW3W5t{~VP=a?PD4nc
      zMO2dogNoyGH_WW75Oj(Q3M!)z&Y2}Quh3L79Mk62wvqonPbq|KnpB8d<+F<=!_JvG
      zYR^(@u2`{iWrgj&ma*U_>Di^Pf+>0>LyYh8Zr4SBnJHZ4B_B1pd8^!YM4`9w*)x+A
      zy?)EK+yRBDp65}_Wc*my0Fr7viBB{7G_#IC;YA%UU|SSH#B{V`Cjsn<Ps>fajxd@;
      z+O0$LrM)^fAtGm;I-(+Vp<Ba#g~b0aqK*UTQP^ZY#k<)Lvf^5W<fQ4QHY0&v4F?sr
      zcokc{&~XTdshKU>u3_0M&JG`+wG>FjXC=TRIyOVs@Cxhh8Ch4rDA{*R5<ae=^<?<x
      zCw)@K7Hm~$9<gk5ta5A4bS?`Mg*?TqQCKZn?Jy+uRXF(^MOs5)VUaN*bZs)u_*@Me
      z!f?i9T&$5+n>SrylR`&NywT57vPsTq9nENwqMX%n4(Amj(odr_Sztjo*7j}*c?QE8
      zE-375sHFJtUg;RYD2u|7(s`?pOS47TR~r@~BNoSXT*M{9NsSD9YjOO#r>JmXgTnbN
      zSWDh`M#Cgqu+9S3<))b%vC3`~6Nt%YTE|<sLRuKP+&RlBKPw`#x(l;9uHtPD2WfjD
      zknhxE*pN}qyHf2`6z}3a4c8P}>#m<(>o73KMqyG4-5Vt0*J&LoHE^!9&)bz`1H9+$
      ziWFE<xvpa#EVbqqPdkpWB-qBUHsTUR7B_^xH`&2G8$6hmCXW=1vR^2LfSu)Bvzd6o
      zA6#u~60d_wN(P(~RhiphZ2-2_c$Zw)L3|mVELNPXdCrpl*uB~s4MY2|WUQcPY}<6w
      zjHxWZN9&^;d&%7(e-SpJMP?4A7MVES%6a3hoHpLdrsfK1Q+@+Ncs_5DDaO56X~lNh
      z+d=84nw5dX!7ADkD|ji<Ud66NM-?53Sh$KkiCCzLeTjn)@p3Hm2=M@_NG2ZR=u9vW
      z46fkSDo*_3`FV}sPDTipDU1t@W`q%p(%Tqf7{?wm{V*=!b-p;p7r+4ekm4#*KeGvV
      z(kV(3<pBR92zk;QltklAoc1GElibV6{lr5IKEb_UKZQMi-~^Yphd3j<M;Hp=RQvag
      zzkWz@-y@6#G0@Q-%KeCNsQ)o0W>#={G%@x7CwmX^!7`?}&|J4HeIZ|eCKg)8JHJDX
      z9eRSTy|SBnfUs=;`HPrjXL^@m?plFW#UND%e`bII2r$zg+#e9`51GnGEXl{%hflB{
      zcL>6#OzShG@i~U^1tGgjsJ_G%e1&Vc2NPeTf^V>dZ>jkmHSbd6K6gKOU=GnLfvABQ
      z;cbBwP_*BPTOO=^^l5vr4%2!OB}O$$U+)wCAnkX^kCq3ugK~`;Nv?`^!%XBvJ&`8w
      b@PX%8obW--aR4rN0fu^;Yt&Qk!UFIwcS{`h
      
      literal 0
      HcmV?d00001
      
      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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
      Y5@x97OoyRXZ~&LHwc;;!iVYn93;DkCsQ>@~
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVONmCnV5PhE{Bq4?+!(zZ-WXE9<U<EG_gEuxO*etdIC6LX7G>9Q$BugVg<(B1|
      zTynC{SuQ>}RWZ2Ys<<ktN~&_pKgb`*DfcArn-S80<lxFdn(rHRzkc1XyGy_Q{lkv{
      zhL8=wBk;<mwyo_%a~~RJGMYCN>FD@c&dO?WYnc~qEu~K<3@ZSiK!Y@mrZgHZtZnLX
      zzV!=qmH`}e3<@;ajz&7VsAml=Wqc%IiI=mlF+H0z(&qBalz_M)P&=76bCzaWF)fwX
      ztAe%1zxdNr(;yI(!1LM`UDeqVmqjZ}?qfl`B;b=Kw7jD`mO(V}rMwB$Y-qU&T{oxF
      zCK1G{Koz-c^X$K5n1*#lz}wpwqy1z$p@-l_hk{nLRYTx}f@ZYHQ&_<<v<TGC8m2y<
      z-&)hNOHMlKY&x!`Vj5FqdWDxhYs1J1^w@llEb|zH=j{wa(>rlJW3eu|0D1*ZmsNRE
      zGtIOuQqeR-eh~%z7!U}=HPa~ulUfa-2OR{@vJwHj`g}ZDssngu6`b40lRt(Kl}O%%
      z!NLW!L_)TQz^UHy3}yKJ1{&*Qy?wfE+jWE~rON7=loq#Jj}2ku7LBB7tQ*XUu^N-Q
      zbt|jqbkovgg`AdX>g}u46judUm1A^~bPl@(F~JV5)bVGe4omuu6~Yv*2QV$r?ABm;
      zW==D;q@GpqI^GbdW(21b1-hMLxJPBI0y!zy4F#8QIfPlv2QYVF#vC*S3%JD=P3dOR
      z+OS)6CV)Fk>F@+h<c(B9&q}N%1<R6DU|WvR!g>g|@uqC%x0r>STw!+lV$xz&!P|I;
      zv9wG^HxmLKy_4m%3t`5j$9vM_eSyJBm}P3XJv9YuxXekl()(5OZsn5fkqnh}1e5Jn
      zE*Nbp3nqKp5zGrMh)sdIuxsQ;!;*1IGTxG@tv)}sAmk1S+uLC@ED%~u=d*GBx*@k#
      zTg7gXV&EhN^}>TH1o&x1HKfEf+_oMl=s+Fni}wcJRoA_dHe4~bEf)-*wY25>;deW4
      z<M8nW)JOJkJQDG(K1SzbbbV(#oaA>MLjx(AWq7`aQ@kmT3tq-)-ni@u=Rr5m60FAt
      zzR5QdxH+<mz6Ypzik_7{3_go^8KDHP(gpaKnSDampP~t$xk5A-LvZ;JPBOm4rvz3b
      z-=ph36h1odqssTt`;c!vtQO$6ExvRisYRqS2gpXt$PU?Lqa=I&S;SX?>{lfFHOYQM
      zvfsKwl*n?k{Ri0x70K?pkV<4P6ooopsHa~R(4|j^?}4A#7(crZ{Ka&KF;d_%%%`;V
      zlojfC+q1>_wcsgB`5G?LM_}{?F#b3KW2{&cSsN*!$9Gt;zg!u3iWzW`(OybFSn%|!
      zR~|_Km)8HdT)jotYem=3*~YSwN7V5rn4InZ6@Im0mc2PMH}DHW1G~6MUHTtA#qE{;
      zCs^D=tRcLM75?z<F7B4XouK*<P5g_}jF4zSt!RZR+R!Q5(Iq-;8eu0?frg)disJT2
      zs+^PrPjWK!3e?t%)EfUkwINbFOKRsx?E<L{liCQWU3_6`+@OVm-(@0Fs)#HLH^hch
      s8P#A_<lODz1J!iST|6Hsls(zvD(b{Fw2N_c^ITdUk)lQ!TgiL>0^v#m_y7O^
      
      literal 0
      HcmV?d00001
      
      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
      zcma)1u}%U}5S%>@4i6MUW#~+dQ3@``L<<cK!RkVRhW>H)qDzkV%<)e6Eh`fXKfsS7
      z>@&v7!e(Y?cQTp%+I@TixI{NXKsa5hSG7&n8#Yf#WpbO0l`+=MbZ#fxOusm`CPGN)
      zduLK8@y#mZc%^^ugvK2kb|XUV{9;ZB$2Qk7YB*@4js~HVveDCOwb13GS`?blOKql#
      zxhmP~pJnKtc}+M=|I_N05I@+e%=A6`#N$7j4}B0$AjRZq2$L@)7>T<2)<Avmj^>*z
      b0>px`FmR0!H)zS!7Mqxa4}}Rwf&n^vK=)3l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)1Jx>Br5S%>@PES4z6`?aRMk%}y8jQw<V0EEDrGFeRy5xAz9Pfm`Wo2UF5Aa7B
      z_ZeeFK{K<nJDJRWeSdrc=;Js-Ksa5hSG7&n8#Yf#X%;paDPydAlySVx^owI_B7}sl
      zcP6<K-?TK2SNi`>sNJw(cT1?8U(5*M$S!n@3J&Y2qDE+?Z1kjD&2{mh=D8-cQ=6%L
      zrV94@ZyCC0UK7sJeOg@;;(J>bnZ9G6*xAwi(g)!LQcRwPF!@4)k*LA12CBVx9K6XQ
      bKr9#w14D$k!jVjMv585zAxvlr259{NT7*u}
      
      literal 0
      HcmV?d00001
      
      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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
      OdDK-;;Z?hUU;7_f8<0%^
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TUQ%Z7~Llc374T4u9ad<DMgYXNvgEvB3gmASW1Dkso-@;Mi?4qFf&2=;IDA$
      zTJ_PT%SUeoR&^~OtWQ3wzd-!~zT4Hh&&(m0MV5V-<Xpb9_x|?xo%8GCAASOmh800T
      zpl3th)_0Q5ho-fbELnLwnQ?X3n8}-N1R;U5hxRY6I&M+VxwjasuNJ&efrh22%<Qy4
      z+nhX*Ea-&GxJ9Cl3$#wzmgDM{o7D>?qY+I4<NdSwv1plVSe_c%j;4ptN7JLD7n12z
      zGL?>=OO2&Q#zxXnN4N6kRxUcTvlZ<Z2-~Y0M$Q$8dUW;mOK~J`+$tI#k3gp{uH>49
      z<W=2ScU4GJ#$2;>w^TGJtX|ASRaQ4VY8B??sa7UQ*0g0iu42=qol8dEp4T@C9G);O
      z)14GJGx#*ov8+I7%FY|j2%<|v8@dI8gRyKg1fJ2*gOd!9Z~`MwMXS=TDkAZZ&Y6}m
      zU)o$XiZ`VVvUGM%FJ$$iDd%c2<gS~JK=1!ZX4*m4gNiIB+C+(GG&G|{j?QX0j&KCe
      z3$%NUQR{s(2GAwr;u<ux%F&R9V`y!`Fj5gD1x_7mz;e?_nHoF!oItbV+T}8z@GVK!
      za*fNZgNButCXQ%0FHP+z8k_dE!78y>Y*1CYkSv`ve^kQ-bW1hk8YU!@Ry3-)LPZu>
      zM!urqWr^6nX1EKCF)ZFA)3*HLcMQf3mqBJfrC}N~?2bFe-HgF{9zTfm)N^UP1y?W|
      z!ByU)iiO<J@H(!szfIRD>P%mttLE&iS|`AD+=yVFC9VJ*>}puRqO6^<L-tyos<EZc
      zjE0-ICD4+ynV4xg*NnToP|E4*YY<zJ@wYX+fn^#_I|K&m#Z?(nCVCTZNAQ-wF;8d}
      ztcG_aec1S*q!%2S(R&(nX?WN#p(M@8rDeIvzIY#N0+DsynfEf|^;r=RCUf+OJ%0~e
      zkUh)_)V^Oz6}u~Amx?*#vMI00k#hfej}}g|oq~K(8_>%y%vpr902&dJw}9i2>}{?e
      z@z#%W&JM4c^Nw(@k!x*e=WhpRSBM(me@lEHo$-X&!-;P_fL{I{@hCqg)F&kQ6wh+4
      z%MZsXJjWRiBFc|B6ZE74UF10_R)G%H0sWkyUl8<54>anB9|D!|r>Q!?Xg)^@{v!pS
      zh$nW@7a!V1fBZ)bEbn7*7qQAPk%-?%>;YZ~ppsLMXTo<h@q5zWM<;ff!5-q+uac4|
      zOG&8wfP|7F@FKdElxa#6%(RV6ef$z0TYL{MRTzC2e`YZr@|pU@W6}Imibcrle+Y3O
      z7ZoaV7^}{~NBoVZ{7%F_>LT))sDn6J(OC!aPa^(B#J}qzzKTl<G0A_Kbpz4*zu_Rj
      zu7uZ>z&}-o8&rZJ`3|bXU#sdZ@^EYquRXwJfw`|RM(^eXu5&rTj#;{gK^eheRxM@s
      zuyPM=jC+@FxgWNAo723&XHOnh93Mav<@`&>AMp}ACiN5a34x0uh)EG*(?7z3X!L~o
      bt+%Lzw(^}^he@g3NMQqay!sZr6gU3^P-WVR
      
      literal 0
      HcmV?d00001
      
      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
      zcmZut%TB^T6g{^J1q8*eG%=<N7D^05b)jtyE)XM$iHS|v4|IaX+M0HXe47hDz>hKx
      z#l#v|%{`Af_wn`p@d?0!p+h4a&-k1#So$7BQ<g=3%sk1Z82EwY<51|>CN!5G7INiy
      z9M8l=5=u{fZ+J^E9{w~>CMv`wH2QIrN*>7(4>M6gm2lG<`i}W8y0iRwHaD%#xoO$<
      zCF|O(d!<U}!gf^g%9EEch|Iy_&1@0siAZIfh&+REaI)&0$slC+Jbli`bx%ixsuxTn
      zF0(`sjyBq^+wER%tra7Co4th%SKGVm%x{_(XURm|1)=I}tS?(85Vq9u35O`5tX^Fq
      a4HanW%r)#Nrk*nmg?9^hPbtk@+5Z9kfp$0m
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmaJ;%TB{E5FD3KLqegYh4K&=#38*9aqbb769Pm82X1a+B3Hqw5*PYy9QXh}3b8gR
      z0#$IyXfw03<K6d<*EaxXIOJ$B98JWtm`Bx%(pfaqX%XGgM~rhhN|oX87}{16<$?s)
      z<B3cR0~cv(d4}Wg@?VGH;DO|c(6=%z7*@hXZO2fZD(U{-Gjua)Zc156ZG=&Uz7kKw
      z^}>Oh@D(67B?TQa^hs<jmm4f&&6k;$s$!LC^{6NhW%o*#$sf%VIkgijjvm9w(u2;0
      z)`c7QEoBHwIn71l_C#KGcN}|vx7$oV+Wokgm5IDiIX$vt$;Hx7?ffPK?S&2n1ayN{
      xG+}SSvF32SMjwHzH_&ppS>slX?ON9%9m6)cd4yeZ+Nm9Pe=&Vx_es^j!6%>$h@Sue
      
      literal 0
      HcmV?d00001
      
      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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
      aQ280S7%gH6+C-T{#%5cFz(=MlKmHG$Og#($
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(zfQw25XL{JX#%0NP$(M%TN@BjVF0P9O9f(xSc<Z{!3swCgB%C-wU{a~@Blm%
      z;+#|<AtABc`FuZr_u2mVe0v8l#=wQe;6L#fz6`YDdC6lfi#)g$m6D~F@vO))sjru@
      zcs30eHp8CbgOuk<@ZDf=u4FFtl%X{oMGW?=cn}_1*zBMUhoKkBT-;UJLa2MbNCiVb
      zEMlHUTuD=}H*NhWONNv1|E4AkgJI1#rsi77JeiClGk(X6?~<#mOw7n1?`w>~n-`Ue
      z#f>zk4*$CPsX2)wkQBWgV9|;$M$x6}oHC=__E*?=t=k?&k1*g2HUV3->NF7LZK{kw
      nm!c7v5@}e+KVG5tTj7Gp%Ua=}q1Fn-V;6nWpl_km7WTgY#Y<*O
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(u};G<5QcxZX#%0NP$&}%ThmHJzyMNF7X)GmEJfMf)CxwagPa8AwU{a~@Blm%
      z;+#YvAtABc`Rwoh`)z-GzP$rD!O%gA!F%E_y!3O;RmP)Srpmt+g_c<^qdQrO<#ic}
      zXS46XV%RgdpKulX-v<o#rBpJXF|<cs$Y5QiOW~r8%`Q5y8Tx@#;=Widgnr<QL@*43
      zG~!9fwKR3JY2}YHW0(a0_B3S}jw-zNG|#nE@ze{=^c^$3N2XR;Y$pC#Z!iXTo)$V1
      zH_~`I{Nv)srV&RVC3-lZMJu`%MTe?0%8YVnyvD|Bb?j1f2?I`H5wJz8ZVgf1rpgHP
      mC>ntok%qO$lQsIk70!vgs1y!rs!<>wyBLrLeF}BAu>S>+<Ye*y
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>u};G<5QcxZX#%0NP$(;6YYS=w3?LPCK_G^Rfuih=v4SB@DknjGEv8BgJOB@c
      zI42QENDM4@KHqo0f7>6QZ|?w((Ra{bIC|nQeCg$yCm9#HN)zu!7FuPw5_f4Fhg>{g
      zErnc|mII4n$4q!JPa^NT!C+sgMCDV4=3p2wSeNO8bkW3m8!gxjU0)^gwwQ-f-}5k*
      z3_U*;JPx>4rmi=w{842LWB)(4CJg;SIZ@e~<ys}tWEdC&TgE_#e9g1S9QxzF#u(gL
      zT4*7!m9e$|_w~nS76%|PdO@H;E4my-hpJP`jB;zV!rE)ub}71q0Vl8s*q~Lrf+%lN
      pWdu4Djlh&h!`h?66}rC_&WJoO74|BsRv;eR=#d6}4NW(&`vt*LXp{f|
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A!AiqG5PjRGiN@M$wc=54ZABN+gHq{56olZxmfW}L5?7LqB-_&8@>KBP2l!Fq
      zY+6)22wrA(X5M@IX5K$u-vFGV?V-YO{3K>#&P^_KAtIwP&F}O~Bx*AHZr#iy`D|w%
      z9EN>M;d!d~gG@6czorcCmD0)#7^<Ca$lzRO6X~Oh^*U;B8JdC8@_w3*Wj+$)L^8C3
      zED}j5a%JmP(=m^#VBo>O%=H=Cosz;6p<_NYxzcgJ8(Ifj)<J`erA2IiEqC|{WAKOB
      zG>_!1vc3-fxWb7g;}E1qmjo*GqV*_xRGm>~lxw{O)?Ui7Pthls9XdG22EFP_5ams(
      ptU!aJ6&MiGV%^@+0?pqF7lgbl750{>l>*_hjTUJz>=3(x-A~~8YzqJY
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(u};G<5QcxJX#%0NP$&Z%6HSqbfB~eUE(oTmOHg(<wSrNaM2Um?T1=G~cmN&>
      zaZVzT5ChAd&;IVe-}cAn+dF^@jBFSTr_cO_uRT@pwB(VJS?bL*6;yei6-q4c*OAEe
      zt__pnK*L_b)7bkyV6bjwD%FgkGj>A;^DbKo2OVtp(1pb?@MS9I)oLM%N4`h|!_dzn
      zo`k%Rx^6d3^(0FM*Z-%ZDZ^-7!;Par6*7&dZm4JP>Dhg<v?^mg@5gwHF*re16_I$5
      z+R^c!mp<2RI05O<lK}>;=t>lAs;($A%H7EZTd(!8L(w4&xP(c-4y}3(M0uAgEzqZ^
      k1!hEQ)|#AcF!-%-P2^3jaMVz(0`b_#kTmE+sN2Bd7v^7L+yDRo
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(!AiqG5QhJ4(?nx!wc6fAgtme~Jt$Oq5j_PDR&w9OC9b9$NmA)+c`A7D0emQN
      zCJ739@iMcs`^`W9?tXl}y#qK#-$6rQ|53ikrB`Iq<T5IBYP{PtNkSPtT`eQ^%sUP&
      zfgJ|DM4H(9J`k`kw9&;>pg9}`0@h`EuUs^--bM?yK-bqs-7Myz%I;*CD1n}zMluOx
      zrn#;+t>QuF0tfy-+)M=e!xF6A%!*8#crprj?iSDOkezuR^Q<4!H74NB(nS`jYt3#3
      ze=d8(E!YET&@%xITG3S~I#iuf7L;4#71mzMW0#^!7;plMfDKx;D~R$YRV>h<$O2O$
      hnYG7<D|CM=oDq3mDhw*BRv;eR=#d6}1a&vC`vpY!U1<OS
      
      literal 0
      HcmV?d00001
      
      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
      zcmYk2Yfi#I6ou~<p*-Xzg5YBdHY}mG)ik9oX$$^rM$#AvX%jj%uFW4Vz(pDF&>_sv
      z@0^))&dl%M_YVNf;ZcJNgz1ibvM-$<SXQtN-{zSfamLF+gG+>gaP>XQKJ?&ymu@&h
      zH;RpT6(xolJ8K&O9n#D^D>%#en(fQ9M)80!kq12^bZsjMgT><6FkRsyLSMSe&|Vs$
      zZ3&s?45VxZp6A4IrPmOKQWq(<b;_ZIJ!!0b*AL!&5mQGPOVtmOI5hl7j17)v<J?hI
      zJN~P<q@6otw=|jvBc+_w<W%26Xh(T@*rYGpeTvYje(p(p8ucKE;5N*l4h<qrJQ142
      uEro^OQTU3ut8kCFuke6)sPHxMNZ}jevBDGLTZN~@GllPH6~g^-+rvMzURkpM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ9GF%H5o5Cr!^NFWqY@BzBeVDSbdBr1wX^cTwkN5MwMAmC{fJb*_b><&@h>}u!U
      zpXUp}5~CamVb=1MZ^An^XO>=DBdWWR2WO3baJ+M*gh{N4j?G?d>sCo0P^}v4)XE-D
      zor*<5ubl4)V{W{1zdS8BF(@i~aZ;^yrwG$O%_15yLRbm!0ZFj-ks;c13<4nxBS-NC
      Dx3DrH
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot>wLZwzf{`_G@+yEvvMqMZdO^hTY#0{qVp*A=KS~D#MAIpUyap42_
      zP{uo@0mH`4%-orCzkAMn|9pM{I7Q7silIK{uY7JtlKUZdBN6!a;4O^2>HXaGUQ}&B
      zXDBI|J>mYyUOg~mJt+fu7d&|ktjCbK7QTo&3|gb<FzD*VgobSk2DTXTec^i#v+2;2
      zk9;_xu3|rM`NZK;s5-gSqh}E^9QFV8)@G<QV%gH$Ad<o#wVRHbT2xaDWM&$U)TDKU
      zL`Du9y{3}|!=8mSG7JVKa^pPaAec$l>k4JFyzwU|iiJ8gYV?;BUUkz+qZ1{iHA~f5
      z`~sv~3z+Y8k%C35Njq>39T(W4lSMKTA%{He3Q$M@9a1W7rggl)?k3@qdahzZb*V}S
      wq(=$mc({Q|!s;e0Q<-ViK2Tlra&e3fIl3X^w||)CifLk>xGL%aIZEO17srffWB>pF
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+fKqj5QhIjq=*Obh-Wk&B8jo_nkz3fl4wY%F^0Qk-C%WTO}m)lqj}*2_)x|v
      zsenTCYG-Hv`S#zP`S^T$2XKlV3n{|Zqj(XKZ35wiLK@fi?3+PsAx$X65?c$eW!IXI
      zN*Y2&`t7#M!NgJdmXJG-q<W5vLkm-cy-{f0*Saa>Q(tLenou4UUaC&uhQ^iGZlvyq
      z<g<k1KjdRB$P+dO-W?^GY`R0pdBW}}(&>gqwfi!{+`ZClsjfo56G%lkIJz1wi-di5
      z_N}Q@%MA<5gwnu3RcqA}+A+eYVY>2u()a(Tmm7qsmNGG`6ZYCrB@_eIVxKB-x}JOp
      ze9wIqaZ?C~<B-2pmAI4HAn6k!A1d?xsWne`xy?@R{THt0KPU{1$w~ak41taCXaN>a
      z%_K6sw|F<haTYmV=TP921uP~f8Kkh(%dMc8<g(1jCfQZ2CD}BuaqT)b#^^TtcMXVJ
      NzjIu-&2CaCeE~gS%=-WU
      
      literal 0
      HcmV?d00001
      
      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
      zcmah{T~8B16g{_=PK!`bsi+{|YMY>q&pvBxB9gF#_vv=B8JOK|c4kTY*L?5?_@fAS
      zU|km0$kWc8IrrR?v**v%uipSZ<GnzGaBwa!<!tCOnOGS*ohHN6yYrDuWTY~ICSlbx
      zhejsR@OXT#LPuB_t4Jq=C;h=0Ve#uMR8ucu1v-Qeb?Kj}3-akS&77K)Y=NhQ-8wm#
      zTc_fZMreg;9BU`gCG6MvC#f-G8D5kV0;_~Uo%mhlnYK=cM|yV8$8*Brf9U^MutwPM
      z6SuhpDr99huQ+%~*uEo-j8Ty^fs;;^Btj=r&SSZ~$#O*KGE(^uoKJu7qi(H2`NH{R
      z%I2{m?DZev4$cI&2p{W;qvTQ=J*fy+e73V9V#115?r$E)iJ236j8w)>b*$2yOVaF*
      zd^?2A?NlWb?n#j5S*X5g!&cWTBSqUjc~>n0XTe1UI$XX5wD>Og)<OeqEHbuKVqHEh
      zV+GIf0==8Jb-XJ0P5yfJYrJ`YY+$oM+Pvv)F}Yo;dbG!ietM@w{r=k>yV!f6xPN~K
      LzaFsT2Hsr*l8Wa$
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7AO;5r=6r3%k)rz1f#w$0##A@`Q!EiBpYCHhxeJPu|rrqkcHT*44Bp&<${wU+y
      zLezLL@$x=)=FQG~?;o#k08Y_yVKE#(@Mpg83(Zx|qe5oNpMKY4@l;AJ<~NH-JQ~o2
      z&2VUDe4R>vEYhqHUnqlfC6z2j47FZAWU#NZx$scKW&?FN46Q&aaaX1@p{IP72!?i$
      zMLY?)mZo1n+Qq%h8BT)#xf?Qcdew}da25NLLQ547`=PP0V=OeuS(?Y@+iHoQGzM>y
      zl{yl)(irRhb%*L~=z`?vn1DqUElAO&?u;^{Tpuj4@lwGaMUQ9(v~i9tsv0X2<!$PW
      oK$D^o7!lKOox#x(t=|e4#JsE&4pywS0`aknHfb>I(X@sAPfRaud;kCd
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7A%TB^T6g^W)s}(^}j9cRdFtNTC8VnnwtHuS8?x$r^N81h=is83hk+|>!{3zp{
      zLe#i0adRJY&pC7MegAlU18|C#3yb08kw5dfUud3Bd0a@9`=jrApwd)~BOX89&SNn#
      zV;45VzG3+~lm0+tst{jO2IpGlvgk8Z+MSTWzENZ0p@Q`qs&E(@fy~AIEQ^F5@hBAx
      z%|OLG4Y`)4Up?BzgPby)1^@NeV`#NYmY?!G@rQ+$dD82I#>AE}Q73QNG%+8SYy5;U
      zctbVQvAC1Q+Tq`~I5vD7fCTBJfJGH8NztY5oHC<a?JltPQjR@}9>L7e#sxO0sx3j3
      rH>ooMb&5uyPe_Axx<?B%ek)uO@~TwWTcTD9gvU0Tq`|O5Yzw=eI|y%>
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<+fKqj6r6+50$xA`Z>YrhASA}dkI=}2l34V;tea+W+md!`;MaWc1N<oCE?_|+
      zK6TIR%$&(iKfm5T09>PKBS$zJcyHdwQLz^$9#bL;ou`Dyz4>e-PpBH2BfZdfy8QuX
      zicsitUxb9UR{NPyz8Nt-H2TCwiEy#(`w%HN9S);d@t2HkV|`@^cbq65WHf@sq972;
      z#unjx+59n*vhT6iOktx+XfG4*cp8gD33e|=zjEvlF8`sgSWqK0jAHsOE@#?VjTaK^
      z5t?&CM@sH{(p8?~8HrGgXVD3jgsY!D-B6ARC7&xJNR!D!cL;UOS!kyx0v@Hhj(n>#
      z>A{WCnDJX7IidEa$}1DbB4{uD3jmgGwg5}dwwaJa5oL{SWZ0HIZK8s0?4mxo+t2Qb
      i+NG{>qd3S=<1%F);%Mfa*I&bG;CK<y=M%j*htqEc!K@<y
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiy+g8&+6o&WELTM-mK~TU0;HfQ2MLdIO+N3m+CO8eXc*6>%La?N+P+Yv07cSQF
      z!Uyn$JcD~rT9}0w-emIq`S(AQ+579!=Pv*-3uX*D7)<QAAKZgXGjRPqx7zd?e&)c<
      zR8;+-T6<3zgD8U`a%JkSzm+-pz#v`=f<};QY}Obs1G%EE^K4cv=?r>v4S%oc`pvRi
      z->*e*$4wN4f!n5;RddU2&e_FcUNuZIVNz()bX7C$+%k!88T5%t!*cW`Za8bCZZS}V
      zYC8p;ld|1bR=Dlhq<9Px!s8f4-ClJ_+i9mcT(wGuZVB}rgKpu}EiEjv?4q&6RY#|y
      zco<#KS9w8wLrV9lf<Hh?EW82o@GJ>kr<S5oA*Hjmi|%mo4|uiW(lpyLg%A-XI$u{y
      zYgR6De0+S=R(Mh8oRmMJ2tAhVs3iPuTMVnLnxy<{E8$I`@{>Uic9pO5@UBt%(KczT
      zD~3j8-^HJ!39qVTXgX=%7<4UozSmr25J{%W45HL=1tPGJfXDEJLBHwwHEVx&qZT;s
      zMjd-NXf~>Dz3c`aaZ8Lgx4k_EQ|A9hZl1w#Qn<pAD>Vbp-<nUAY115Ss^VF8_izFR
      z|Fz)(lSZl>2L^=%bW#^$IH*-Irb?-?A5?33k4`xtjrj~63MR3L`ZR_sR^r<z#Bjy7
      z;d=+fk(D#tBXI)1_e$J{+%NF}@;QkIk%uHck31~#2=WDqFCveg;W3HF@#`gtFC$-(
      z_$u;*#FNNV5?@2UF7XZIn-bqbPD-3YPD?zEd|To>$TJdWknc)7i+oSwIpq5iKR|vc
      z@gwXGqoKp+Q|!nbt_;`C^dZcD6fJs&PX${AU_um%u!wJo&;-xn1ri0Q_@sbEbdt9#
      zJ$(q-vk9+o2)IZX30<uO^n(UEW>8kXm6dO0DRh|h_$OF8&Fd3mRmKy&#v!UmnaW9~
      P0*3fi1~2hM9kBcte~<B%
      
      literal 0
      HcmV?d00001
      
      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
      zcmaizTT|0e6ovO`+NPAN7gSWBDr)0}h(7XSrleYF5+)}wh!4&o9GPI7bdr|oqrb}s
      ze}F&AaV5^s7z;jSzIAriUfE~o=dbTSh-i!6s8nLKekRVvSRckBOoTrSqEH_T{m^h_
      z5{+VCs#IpQloshd5uWPK@tO38jOw0c+B+_988#!<VKm>0!el7I;eqIlq(a|_7*##1
      zZFIUy106H^;B;(-fQ)85%XZpb;~iIU3IUdmZSK7{xT(C&l$vL`Cf~PArIzuWXK~MP
      zy{xUmG7UC-ztu81SIQHC?;)L1`Xd|~pWPkD?tV-g;k60`XBT<=sNWCpF>B54^f3e{
      z+eg{~qM2h~4$|o)Dm552rk5KRWsDRVo?PwRNu8@-qWDxI!|D|o(!ym_d6Qf6g1(GK
      zcu#3+n0_rtxadpQVzhCY(Z!u^Ye$UKK`aL%mjCGtZ#9;FbS~rcYdYGe%SVM6an$P_
      z3;!$fCe!nl;eqxQ>`I*O5zp4F9rTc7ak6)t>4d9TElMwKmR6`jRgelQQ4Ktk<2raY
      z$8+HM94~+ubG!t;mgDQ-8#%rSUe56?@a-Jm0k7ovF6ds47pRWk=02?=@fs4B@mz=U
      ufF2f<N3>B;9@CS8@|2ndMWbg0<vG15C@=qU-Xy(H^Xl(BINi$T`}#Ly*~q2<
      
      literal 0
      HcmV?d00001
      
      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
      zcmY*U%T5A85UggAMIMSCjQ#;!ocIT_Dr6IlLC_FAHOq)Y#+_uDHGG=~KfsSN_ACeE
      zsZw24-PPYepI-nja1^6PI9>AxZ<Q}N-*D!Q%hi_E+$>|%3B8~y%lS&(FV;HqgwEY?
      zKAt_K*VFX*hCnHyd*$+t=iEQBEp;T@FL%CV@;JQR`PwV(N3M8hpDqbee;~ONnT@Sm
      zu$}##4|2Ufcu5Gyq9>wcZ<CU(c{REqw5F~sGCeX@6Pi-=JalYG6NJk(oM8_QVR6Np
      a!uS92Nd9V}jqqOw-3ku^O6IW2^nL*))jl`?
      
      literal 0
      HcmV?d00001
      
      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
      zcmai!-%`^+6voe%0=4|Ff}nsXsDL)xQf3r&oQY`)oe80nq*$*yOIX`5ZQ4n;wmz0u
      z&UoPi_)v~#Ln#^1@g|#JcF(up**zz}e*gFh0D0J-gam=53-*N#=%C%AwPQo;_@Q9F
      z2qz&)U|!DA7V{hQ<m`gGg20qnHH^Ax*Q-{UK*qRUVT-`?8*d5BT#1~rR*$FP4gnyr
      zP}ECm)o^5N#nMaV8i6$KIMhnP41ukt5ZyPF_WOOMUr;(hLwch5gM-)9XKfyKnagp5
      zVc4Zi3g!unp?}N;Cs1B>9IO1H>gXfwy9Cy5YwzW9IhnX0QUY@~VpFh0U_6>7u=uf{
      z)#a|XcBCJxBi$7O8-LZ!OXIfN<ZVV^{YG@zv>nyduI;T7*!iDK){AaN=D!l@RaEDw
      zUQ`{``Bb@<dh{=;0?p^?pvy!vd(H$CU%NacFe{TPI>k{&PYA5uw&GaS(zR@K$g`Gi
      zs5SF&6!Mh7<}f7SEjI8Q(aqthh9c;>q8D(QS90jPq^nNV((AUa$)RGMXu55e&BGLI
      z6L>Wgi3(D|y%aQeRZAiL%vmHAau*e|-Js+0FvOB0F!9dwJ@FpPV0-73KvL_R^E8Y>
      zb{ckI7w^{ad~WvIXFPD&SqqOaV{}~BI%R<;dH69YnjW6Xa#Yl}TLMcvZFhQs%S)cr
      zScuzGq-$&{^nlGZ4J$AX6G)Rt2}mKQZ}3!%<@(te&mk|wID>pI#*4`JW4w&~AjS`o
      z*J8Ymyb<Ha$eS_VLVgzG=jc2k&kn~Im_Y$Y>|z+-{SGg`MJXxxOyeT?CrQFSP<)%d
      QTm(7%CVPGlp9v`Z0T0XnnE(I)
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>%TB^T6o&udRz(B_LA)gzH(ZPjK^Ka_1!!VI+(6h5P+<(Tq!h)+az*082k@bc
      z=Rku<(8SHTO#k!E-!mVdZ|?wdIMCn`$UVv@InqbHuHKT4bYA*~UUrL;Wj?6((3Xy}
      z%$rfu=yRdLClKQ?y(`VOKKmdLxKgHaiUQtLx-Q@=SuG<7FIGeFBOnl|DATwf_8Nv=
      zlZ~z+5Up5E*{w@kaqk}boQ@g@<SYO7RuG7%CSy}?RmWClyO6H4iw$-W7SMXeU?AI*
      z+rNLql?r5*0OpXjj%_`&S(h4TYD~c2l*0ir<4d&y$$9J|WS1dHfne1d+D+qD@otX)
      zeuq=`jw8^v={*4-RkUS_8g+Tfg0ep|#>y)d9t0@{DFbIDKF1nWp{a=SI&};PQ)EDq
      zl&lS8vSUOR2^XZioDdRIl}jK!HW4KTvtlmmjx4fCEt5SNV`~vsq@n8x>~JcZ!88{}
      gqex(zu3~J`#s09kvq&wGviyrhX0gRRGUdVk7esNHga7~l
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3%Sr=55Uk$3OkB-FjqewDNP@U{Ry-IDL_`ltz~dwt;>c!Jc1O{F@}Qsy9{d15
      zO6=JL6yw3mbWKfnS9Q<F=i57gZLDYD5NcQAR@`}aec$T}Bh3A^^bUrg9_YvjZK92a
      zl72UXB%xsQJzwaaciO&^9Yb(bmq1NIQj5MMl#ai1&P=FuZ-<cHRa%)nLb=i$eXq8-
      zx*l|84hc-S$YPR^s8m~7u%wF=(iW9mWH3g^A1f_SZu)H*o{P30YX%+Rw?wGyeMlzF
      zrHTlfvEKh?WT&Z~G)<m}<$0zt6AWe`OjoL-&I!4*;3n+IhO$1&BfHzO%OJQ-tz}sE
      zMHI;>gH^)De>Tr{;@$Iqu_OLB2L-zgMg_YIj+V_L$M55eE;z$7`PwVo+Tsg?%@-7(
      zm~t@1X9-C@_xU{FvO`RwfoW#e24$E*nQz=6mZ2C~A%_KKF*lU)ING;V?HTz827~75
      rm^_Lbx`TvaL&7{3n6Vyz78f6X6`%f5>|im@TEa3%J1Sv?9nXIOdHjq|
      
      literal 0
      HcmV?d00001
      
      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
      zcma);+jCP@6vn?plO_!Z!JyTGcM9}IQ@|@Act}p#)Z_$msRYG(njYIgn$+Z!Qm=T$
      z`yKxQUwvVi5l3d!7hjlheDTF`#us1I8DD(yg;Bq?b6U>WaZ+Z;+P}T`x7OOXb$aFR
      zFTVn?8=r)*PDAfW`?P%~c4n>`o3>rsU7B}d39k{a*P5<fbDJRqG;ETYv8r90iDjow
      zI%QWwXxy-hMy{kmOKI4!Jb%KjE;t<wqG<>x&BHmFBg}ZgjFF3v33L#QBe_&sfc`r&
      zhME-A5Ew67rgV3zc3Sm^G;|up(PF+JBVi3)dGkoY%p5jz($U3qvhhOJ!w5rL*@>0m
      z_2h&ZUtyiz(q=wS@jv{>T+E|IL*)W`8qJwT!OU?{DJx;Jl}TCb(6BL?GSi94B72i5
      z%S?2fWo)WTrjg5Q7)q~YKYNoEr#ii#DP*!%VT`&!!YI)M$FfCn6Joex!IW0sjAyL`
      zTj2x~D5Nq>VyiDo&7O0b^LE*Z9ktk`(?DwyT}r}{QAth3;g*f627@t{8ek5sKI%qQ
      ze>hRh8HH5V;*l>mCppsc8eQq~x!s&Gj!nw=@vLP|W|PUhS>U!_{X)ZLu4L5^4}Xjc
      zI#8}wY8Ce&&%UpJf(gXy(@qG7H4LnM7sJ>YfdNxT5~Ezr0ncT3UrOy#>&E8YMx{2h
      zzki~Ohn3Q?6MbRy3#4`Q3k(Qkbqoj$3gmPQ3JeJpbqopY5;&$~7y3dtuA%2zrvEvK
      zFdoy;KkK^l`(m-h#l_*py~Fj!Ol;4{$nMy&Ogdklb>{4Ce05HtGUtTxxCTT}!V|I-
      zTf@%2)eBhN(^^tl$1q}HI2yLM4e2tREMrE;h=?j{5lNmRI;FFAP&B7uux+H7l4CbA
      z^_n{?(z=d4B7KSn++M0=342MDO&xnhxu9W3d!+;w)uN8OMYY7eY_D2L^BEoYi0rww
      zY|D(7;R`zM714`pI`f5w?N;hFN%CbK_lfXT4I^!noVJ(bt|WZ=b2{!9{TmwgwAC*y
      zABW$=TRI*<jHNAIsX5ld+?3NO*i%(rrD(cdwyP6%qav(2Bj~_;azPLAy}GlNCQrmy
      zjsE`|!on2E*B2UPCs`5S-K)Mb!}63g=&4%GX~e5`v+2-#P}NG_IaUdl+FtY^h)z<7
      zv<_i%myaXl^*+|g8+?2nd83avk+1i0l)Tx;H;`}iaX0xUAKy&w@$nYYRv+I&zSYOK
      zk#G0$9ppQGd>46}k7a$mK9==u_wf!giy8N#N9vfeEMdyBdMV4or7UZfvaA%!^6@Ln
      z_pB@*r?Px%%JT6j%h#YRFSxS2ugdb?Da+fV>^@&!`<c%HA3vzh>L3pB<R0P|(?Wn6
      z;P=ZgN`Ywn5)v0NCJ>B{D|lF-Gn!Fg3523Y6dV-@NAn5_0-HLc6N(<Wj8ZB3X!OJ-
      zOkTv4qG^wwR5a_+NkvtUYKrDPYAA9&I<4r8M^7ty)}!YYo%QG?MXz}DnxfY|dh-HT
      zyAE&jcN|gve#U!w0bB4n&+jq|)i?Z#eTyuv-~_(MDg1yX{D^b-8Rzi}KE<z`{Rh6r
      zpZE@c;U`?hZ!F*MD6is~PqMYQES3C&jQzoZOL+HM*a#<qg8^15k?E~Tcpo1qCm*Wc
      PkMJ>VgkuK(pGVKX)nzck
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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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
      Q?s+!trND<=(Sncu0l(4|EdT%j
      
      literal 0
      HcmV?d00001
      
      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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
      E0mNLnm;e9(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!%L>9k5X)G#Rt3HI2O{<2;<-mb5JW}s1J*K@mOf-%WxvgXAK*ucThMwCFEb&N
      z3CZJmy91b_>!L;&Ch{tcFj*>cneq7~Ll&zKniaWbqg~Vq{Zc7XnMY!MNI2AlUc|c6
      z?zaoV$X|YCJFVh83dX+_!LzR$#mCqXIu+(K!T)b@(Qzsknw8Xr3JC38aZw@9<CF=5
      iD#<(bq)gHz5FA?=aBPVNnkdV-@7;oDFV@M<8agjcbx#5S
      
      literal 0
      HcmV?d00001
      
      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
      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
      QvF}q{xp}`xYZuc00pRov#{d8T
      
      literal 0
      HcmV?d00001
      
      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
      zcmah~ZBrXn6n<_9goYGa%1d7;1*#PSbj50Yq0-VqZ8Sh7C54XTxFomfb~d}Xy8-H`
      zqy8R0*e@{3jQUN-ALaPmyLs7!Wc-r5_uliI^PK0Ld-Bh}zx@ti0nZYM2~55;_sv7&
      zuxuN9rsqq~H&)z2r7WG`e#Nqj(n}yNa88*Sw&|3Njop{B5D4_#u^cN{66l(q$qU3E
      zxJ8*n7tW;6jUIu4tmVk{N_kg$Pt09g3Jhl5f@$YX&r<v9VLW(Y`2yFo|4U?1pj&ek
      zn4i|>hUFR=XRi|E0#BOd#hI+@m5hU11*7Pe>v<5DTs<tvy})uEKY>Aki^@*r>@)Y=
      z@^<|?fgynlI$7m=BXTh!Fx5~YW81Q1+RI)^YgM=F#YKT3OOcxJHLD5BpKvO+oy0IM
      zD{Za_3|IMUK}p_nN{ci31g;8<MyZ9#xfQQKX~%F)!6!(+L;Cq7NHT?fTo+iF)@szU
      zjJWEoQ%sd&xUIGVciTq|t(!7wUj~)IbP6*{fIeRaxmSK5%bB7;uV4QhJnfFH=4%NA
      zE_F;vAl**W_Dp*5HYsdvW*W5_!)11I#j^x%H1d3C*|L*by?9R`^_&(pFA2QQ`qi38
      zVI$3%#BF@2>i3br`PK+5+#M_>@G(6`@hRNJJ+^(|Zf$1y3a4j6c^nxSJXuWQK2{QV
      zP=i&^Q&`1A${M&~Z?Pk5$Y`Ae#B+iE&?VblXUiy-ziyVLzh@TY@`35`<?@L?V+_mB
      zo3>Rn1NJMkU=3HDzzSY%O5e5jr6+K$x#^m(+2R}v3gvmO_sDdLw!&O(!9*@KqR){B
      zwV9-PzvC+(D#>7FV=YtOv!xnf<moybajl3}6E#>oNnQeH=pt8mA<L%9B~&|{j{DWj
      zUB?Iwh#Ii`?Tk~fE5({n$(-&~r6fhKv93<io2s<&Nxso8PGDdFaWyKrPjGjOtKiz5
      zK1T0re#DUEZ;~spMALid<5wy);(C@lmXB^?ILGfEuIF(<J9|odg}XBQ7tWqwcxQ0*
      z7?=J?pI~ff_88+wnEZv;VTgXsCrijW-96S}MnZTs3?1POyr~)X;|A|q1AapvaeAC;
      z4p@t~K0kMax6<=XaYvXv@C9*SGVWIxg~<`ItK+9bZ}s?7)%c8nG-k<Qly-BNXIv%1
      z%{H7)i(o`WSZE>>icn@)m+rpqAi_Hgt;*ETa-A08J0_$`Yt%(}R|QleoZz++{sU^i
      zHaB~O#Um^$MJP+85}_jBlEn86@dL*3Bj@E$n#@G#x~_<UPw<FT##wZwLyUjZ9Q-_q
      z)P`pnd<yj!{#kX+VomSYv7y(;_*}1>$dS6hlX^$a>OIdI-Kd%s_*D}MJCS3d+KF4p
      q^H#O;99Lx*6OASdk$*;zu{!c8skI=xepYz>0z%~9ZIRpBYUe*GTkgUD
      
      literal 0
      HcmV?d00001
      
      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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
      H&-?!akMiRt
      
      literal 0
      HcmV?d00001
      
      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
      zcma))O-~b16o%j1PdhUL77C>*g80$SpcCV=gbfxq1rs5SvYVEnjA>`covGG;rHM-7
      z!lfquDC0RZmv*d}xVfL_JnuR0y+40_{RZF(wu;CISZ|!S&e$Fg2llxmLsy3Op3{p0
      z`F=O>Prd#~I*}LnEhz(8L{4Cy6YPQG_wD#lpyZBw?m0&ZRNATQ%j2d%VcYY)Xh$Gh
      zZ*&B5yTOU8Aq(9=5!Z;?_I&qXH0-+a$mtGTfpR<OIfITPJ>ILsTy*Az0*_*q|E!wS
      zEA>=ahmrLBezVbG{W9w>P+7yU&zjTfRhU3Eo!pxAl;p2)esw13=u8IhxM~t9L7-+J
      zkAi@pw#=((e+wu4HRj)$NmHeza?*+dTHlTK-7s|eB)C*>qykkcx4vm$9UB_%W3z|{
      z0*lk$CtV5@hnFCOsHuyUKe&?%a$7qLMzZJbdHjrP|NKplSq~fJPnQ0pK!#1CRe{#@
      zCul6u?kUZJ=Dc|U?ISHRFlf|h2AarW8`o)NBte+NJna~;KqCWoD3W6frgecEvxH|P
      z+KLIwNt7aR8H-pV2D2)P^<1%ZW-Xi6XRJ<vb8#R01U#VfUZkM<1ghg^+#f@4Dd<be
      zV+Ra#i>SA+q`so8*U)hsQ`eLD3Dr<kwt<Vz5SgA<@sDX{18U^p-L~}uW%CnOzeDHg
      z3+}b84|JQ@S|&pQhkEFefhVZqG}T8<Ddx$LhsvBf8cN5eIe97KPLceafFEOKU&)Mx
      Ft=|Ld-s1oO
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7BO-sW-5Ph4biN@M$wcdMcD;P!4L!}BuPeFuA?%TM=m3)*<BKcdM3Lg9c{wQ%a
      z2?`zrFY{)0-n@M~`|<hq4&Vd>8wSJCGk@WwTgH*Q;wlp=bMGpgr^%xX3&nGpCf8*k
      zRywg^GVJLYH{wa?em5Ab3z^7##?Ts#eFk%$J_rXbY<AFw#nAI)B5sR#Dbzh*MuMU5
      zr2&t8uB5J;Lo<Jp8N;#nKVwsd!Kj+4jV*E|lW;orwS^sRp-ax<EY#Qj_-|+o&LS;T
      zAa0~KHvDS^)y6Oc$<ZDGgED#`MVqQqLPpr0tg-Q0wH=BM(SS3UIL8)coti|rO_dht
      nQq%%7Vrs56Ib5UnTj7$JSCzs+&1w{gk6rXhgT9BR4eWmb?$~Q5
      
      literal 0
      HcmV?d00001
      
      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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
      E04E!>8~^|S
      
      literal 0
      HcmV?d00001
      
      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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
      EAB_eFKmY&$
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh2Oz#InQ+{fgWi{o<0M)WlqU*Rs^S61U8plGGx01{OvJ
      z0gwv)oW#6zegCAa)Z`LI2DZfH<kSKnLsi2ELw_nrf3bdquMgNHYt1M|2Cm@z(xT*4
      npsA@q1Cead18HYtWME`q20Ds?fe~mSD+3#d#lQ|EnHV?#z}YV!
      
      literal 0
      HcmV?d00001
      
      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
      zcma))+iuf96h-$mNlg;dKuOz_OKG`CsS{x#KmrxohtP^jX(cG?`!o#3D6!GRLE*1J
      z0!8A158$H^=Zpu(gjC{XJePge?6b!|e|`S};6Cm;SP<~u%a3yGj|Y8!m}n&j{(<Zz
      zvHsMFqqku&(lQC-XkY7CJ17d&Snu~`6!>OSpsdC{^?_9aE8X1jpY0ui#iwBuCc6TK
      z=Ju&Tu@k>h6$n&aIB>~DGgo+$=r9U)ay$DOimPkgFjB{(!I{#p<yl_|EO+Cc?4L><
      z^4e||lXu}zplvw+*C9D=<elX2WxH3{Zhgk?RFrdUdtkeQIxS$0OB<9>o}a181i$K{
      zghh&IFbue*X_8hZ;07wmt`k^mZs%0l0d-L!;gK2+WkBiF|B_i4d%ES~CN@cZ5|4CG
      z9fX|a#<}l*j~!u)tQP18B8%*oW)96AT%fT`t4DMyc-IqRg31?~F5n`K75V}XsN^A*
      zXy&Fe)NqMbjJRwOdxT)E<FyE}Jd1cth$jZIn#wGKovhFqMNYH2g}o#V`>lHI30A$<
      zH>^*AOXlbqHL^?o_6&40m1oeZg%SeSaGh|BXZPIhA*mVfc<t64uO0I9Jco5MtYcs%
      zDRV)JZCLCy0x=K!g0P3@M8F<7f*aVdFyE|!lJ^zspUG_cAe<C%WH9Mtl(NU5|KgwG
      Q3ASd7U(GGPZLYZU8@*7(F#rGn
      
      literal 0
      HcmV?d00001
      
      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
      zcmYL^OKJl#5JXG<P5euO$;LOZHx^lEX$TmGI4~#B$nCL=qydd4I9Kz+2gsp9T8T|I
      zUGTb#s{Z;uUjRJgK0`-fepDaoBu~!DCI(VY=CxMQ)ILK`;4!VGRlbtj@<=)gOe>1H
      z@$}ZZl7c{YvD^qeFkRQSb^gX@i5yf=I#Sr~_YJXm%<#P}t<jsEz|&%x{|6K?7+<~o
      z9TlHVB$tjxMcoEXuf`IG-`cH`Zy><={0-3OvV9DYN@rKSyXp|5Up`LCjtS2Wray|V
      BKtccj
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4le#InQ+{fgWi{o<0M)Wlr<U@+yDnNyNl#LmFN$RGex
      zqMwtPm#*)hl$DxX!pOjun4Fwi0A#3Y_+S_i;p+o2BPca7CAG*}Gm4RcD>%QjC^;2q
      nYAPdxAhH#DApLBN42%rSKxZ*9Fam94Wncrb7}$X%69WeTK<O{;
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcmZWmO;5r=5Pgf_3iyG5pBED~1}-+9IeEZ@1V19g7;kHx)Z)^T?Lz8b^WYEgM;WKZ
      zV6lhI?##S-@6GJj_s1uI3mi%m1dc{(reY@^YbUaX)Yy5v?ssPt*n3hhWF(3LwFKm7
      z6?o3=^N3t4u_{ncvs3G9r)SA18ybOfK(S5x1x{P-evY0J?r5RX5vX)ymnPN^gGiz(
      zaFXj`OM}$h0x2M0RdmBz0xPZdlR$Ao^d_+Bk?m?4v&b;5Hh)db?K6!Zcq}RtpF`yd
      zRJr5MgcCCMUEr*hT3$lWr^wFVk=PM9{##2=Yx0!7G~P6k&iE|3I*cfF`M|Rd!l`lT
      z%GaD~EU)@Jq2s+WmQRU4N%HO`);KD2ROGwDnRRS%z@z3WTd4iRZs#y{G%}bb^Xy_T
      Nld14~pVbOD_yHSigf9R9
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%TB{E5L}m*kV2sl%3I<<f%HPexko6c@(`7Pt4X&dRgzY=Q{~$@@Bw@jVv{HV
      zoQgvnc|5b8@$To>`v(AA!jS<L2FDXV=dlw9z9W@D9yl+z{oWiy^(;Jv!hkA+W<qj&
      z9*&*+*9p4HfMo_}C26EQztCSzLm34q7}Q37B;Ob;*_|f_^<M1aOnG!{z$$~2QW<hE
      zNWBzHs^R)miBy9RhYU{beo2LiX<1y~P3~$h;N|%qkq=R%G;@sVLEy-XDOD!P(vl4?
      z9CthEZGRvJru-3|FA$YAi6e_t*Er&lukLt&a>iXs)mos>*#(UrRAH<bbbhA_^D2%`
      zOru#8O+R2@+gYTn@&A;db`7SHaPh|T$)}Y+UN#&TNfT%is4eu>Xsk?{76VpjXVR`p
      r|2iRSC8PoC8m9pp8q$PK4cP)qL$;x%Av>_EA$zb-UKkwET7koF?Ty8b
      
      literal 0
      HcmV?d00001
      
      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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
      Vyf3jBrOfZ~2j)$%EG6V${vUmLeWw5b
      
      literal 0
      HcmV?d00001
      
      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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
      TX;d2|EBFg*5cr(GO<4Ue;39`#
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ+y9&ZU5S-PRXteMH>}<60u(sAJA{Y_d^Eg669&$M)-)7+l_)+3U!3T)NvOBx8
      zyEE6@`2t{yo`(iukjRs)M3tqYv_{KJ?3Te=9|~i&@!$~pHAAE_kHl)9Xk`hmc@PMj
      zQShFI*2H-<``dY5cyhkJ28EI~F7nxUOYrBF(uW$B9y)~KFOmF?<-VA_6&6RM^de3*
      ftNyStsn=Zsp~=nxVplD=j6FsU=QfAWbpzcy59m^V
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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|=ik+eZ<vu0%A
      za;->CEhx#%&nsqU;ACV_#^z?AwLsUyRRVPd=a&{Gr@Ce4qyjyG<SRXpb~Z)^Mh0eJ
      dKrk>c0zJvfzy{>A19>b!ngfWrfNUlPZU9UXSQ7vM
      
      literal 0
      HcmV?d00001
      
      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
      zcmZY5+fKqj5C-5G5y}}v1o5nRxU=yQ*6pHAXiM6~=oP7?F%k|52g9>@;RE<k##yjt
      zqj&vgr~A+B=hyoO0NlWp0UHR-LHHIf&E;rl&gRo79GQ<!J6L`3$#^yo$Mcy1n+Rpq
      zXb!{ii|IWNqW&DA5J=|Bo@fh4xDo+vs>Odjgu_LYpd>`d3D=6-REctH9pB?32yFMR
      zXS;#)yIk6yt4<RLS$@xa#-;EBRiSu;dyYy`Od=$M4&y>0g-~42VR^h8w-^X{6{^?L
      zv;^H?%cq_%TEZ9Z`i2ZbhDqt$w_UlqGK-L~q@`}pQ53hBWD0p|beSW5vkM4S*ON?5
      z-m?U6)6nr2MTE*v+MkmW?H5cI(|*)?9YzTC|1W;69-B6!K`6Hb4M;+YWRNx>P0nb}
      zl5?8#<bviRxum&F-qKtlZ)>iScQn_?b<MlvhUPuezUBk+q2?p<vE~!<spd0sQ}a1(
      KiEy#n_3|4An`D>(
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiyZEw<G6o&5u<#o6r$e1EJoios()kIBnW}3{IIdPh7LBE*}8mNI{pi_R9CN3s^
      z@CW##jORS9(9ur6w9m^q*SXJqo?pLz`~+|pH&cia);^e@%!x4>^o_AQvdn?;?p5<Z
      zt#&4D>!WKAofI@eQ38#=>2!_h1tHxZwoQp4RGJ}F)4$v#Bpqw)S{*`3g?XUE-e~yQ
      zJnCB#@Yr^2cZ(3O)msE@d)TqEAe_q~gGItlEs)3pZKu2WkBWidSrq{<HEqY*KOP)e
      zqeCf8D2U8{%N*IV_YXC<XO9W%;SyngSbZr%om7ht#$Bl}GtZY!SP7<_));ep1U+~k
      zY<S+gdMk@KE{RXY3_Er?hXj(cx{^Z*X~LbeP^Shzot6kMbS-yZjVv(ja;+ZdWTu(0
      zz~O)M2~|HX8c)a`439@`>$xrVm&1nM7Q1kbJBagBjX{%!c%?}@{7>^u2J$)<c=v$M
      zNltYl`i|UJUdOP+-z@)udz^J2d0yqbIGjg;cfu(8jHk?y*tEV8$#}?&M~boR#rX`;
      zasef#2yHn;Bie{iw8gY1XVA*3JE5)kv^~})K8UtP1Z|sX&lGLdiwkKJmBNiFm5V;N
      z!+VXnd7U+0)Eg(L=(kQ#o%vT#_q*)=3-)r4J$<R_=w9BmPTu!`S!z<^WL{N_tBO~{
      zoiw5*^_n|*^WRS7El4M;>V?P)FnA{~AfbOl^$Rb&@h8>cTLtt+pO}vRI@b7hKDjcV
      M{5~@IhAOfC2PByBegFUf
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}TUXOS5T3<ixZhDhxd@7>3Kg#?-mnx;&Z&sBqDP*VbZNs$lbUQf<*)hR5Aa8M
      zoZU=92&fP3m!0dkGqdyS_m7_dunO-D=wdK`#E*HW&}q7bPzHiG3tvB!EBb3!@R|q=
      z$T1jERt1-P^}@%4BVkJeE;CsCyKm9=LdiWDGU%@hxfA#;5y%q;OJ?~r7Uprh`g%Sk
      zio&lm=qq(>(UJ}ZGN7Nq!l|3(x}whAjiBCc3Qs16404|6NCub8yk)@fKN+UHj6i&E
      zJAq(enpTPn(K|26?=cv{Yn5D~2vl{_2{U~U@?~HsN>yIRuLcjdV}9Qlbla{UVp3#_
      z@rE(pHgAfs#clC<*ZO~{k`zNuSdl!4=`a{@!je}bcKTRs@POM=1lSPNerY&TR8%Gg
      zqnLO@VkZvTQtWZJjk2{1x^zJq&WkePihkR}evG73s7o@KHLa*z(d>Eg%?qED9{WF;
      z_0fevdF&XCV^V}O_GRDZZj@*&9cL#HhfXI$sCv>uLK9AyRH4!mwsYu+8cr0Z!(OQ(
      zsd$<M-AYAHWO3y2v=Co`)D1UjHnNvZ+{qH}J%9m9$7-rHEd!6yd?^a*E8WVRncpum
      z=rOJRqGjcAXq3CM(gVR@kd9^H)ny}kj3v+ZYxwS>iHw4)N2-dZ-W!9NGjzjfFT`r(
      zs7OWCJ!|R36-v6O=%kvVp8y&$=tV_bvp)RZ!_m~aaXOK^SL3elq1~WbBhjHEaFnLe
      zHmN{-lZxHIhe)f&s`3DhD227jCC6=2@!Nqdwj5WrI<w+d)M~+fhEEZH-MAf>apxJ(
      zgQs3R<q-Q&G5~`q$&lKMFq)B!!FWb8an5TJu4HVk!nKTK3Z^kJgX?Ik@CM-w;Vj`C
      z%xnEk%%bcTU{T{OxUF%C@D8C#I7gU=yV~v^`QIn`6yY+gXnle75Ac2}&ni45e3W7S
      zm@J<VJ|&N5#CQ#!YtI+3uJI-5Uy*)_&aVmI5WXe-2H`uB7YR2NB9{{Wcfr;l8;7-^
      
      literal 0
      HcmV?d00001
      
      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
      zcmbVL+iuf95S?wCx=llyCJmRiK-vOz0AcZn`cx%BiYQPK1V}t>-Hq#NZAa@hIKRdN
      zAHYW;#=FWzyGBJkd41;WnK?7FzkdJt2>>tQxdTfC+Sl|O&AmM0UMdBnk@w~8*-)K6
      zi%>G*zzTtS!SXnb1MmICHS;Bb?e9f+D5;Qr&LS2g)^gA0L=*|*;H2}3K((LyY%Ieh
      zP90b$aP;@2GbVxK618&uSO3H;zpH)pqp_UKd~7Li{rGZ*EW3q|`V{Xaex@x~e4eC?
      zKxM?U^oqcyqMS-Jf00QHy!p@C%B$7#?`Xu*G4)ZtrSkRIh-O?a;5CJJlSr4jtA5W#
      z;<Gfxu?%9IcIFo&!SQHrk4j2lO$&bPO}+GE8Oq5AHX_haF*Wmf2XwQ#S5#0R_a!CZ
      zxL>=2LD8`FfXQ>gMqy6iNl7C*woAN}&M!6bY?~|4nb&R-OP1sIb#wx~%<;5Eo=H?2
      z*~G%k00Gz41>Gn?U_&`e#!Se`&EE8*IdPyv;Bfv#2As2i@>3D0ZCcp<>M+TK&t8Wd
      zXS`!P$rpvfDggq^_>uwI_(ChNivJG&t>AY}Ayo_6FpwIUoEq31Q~4Hb8ai7RQn!$8
      z3u#!{8_+bA8&*9#)~%N1{kDbNDM3u{cP-963)!`hJ<Hc#3CGN}Z*lhFzTy1=JT#ED
      f<^90YIfNtQ)+2a~Yk^w|#|se`&rfk*mf+bRH7rd|
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ|KyG{Z@6b9gb5FIWe6tpJLLF2^QiUh4dLzWO@H>}6akll5&J4^7@EO-DO%J{Dm
      zttjUHojK<mzCQN=Zqd`IDGWDuYj<Xs#HR4M*u=<IQeT*f_qkh_UNq_oy^5LGrjdDC
      zZzS{@7Yc(@!O!#Aef5okj>JFOL=>(^<JrGYc~@jM6tk$F?-Ux8D;t-j{UiNN7_g8u
      zqG(Y}m(%4(M$>jhkV)v?oV+TWjm9qo!F!p9^59~EtG^Czs<bSZjN_c$*V&RrgByh=
      ST0d+1c)mo3g7KVd=zasW^i8_}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fv2Fq}5Jbo15)(oK1@uuWXkt;PBp@MyD6Rm}?VVPK(QzQ#Aij-)58$Js>?KIh
      zQ0$J2d9&m5&+!DHhlWN);bTR6I+(*cH$FI~wc$M%!JGb)9HoJs*N7CFrO)J4WM-PI
      zI1L(43h(#m`D8pOa};#O;hO>}v^w4KH6;$t7TK3V-TK+m29CFsvcf~ByAaCy{y){W
      zev}m(M@i1NzFNH5xs-=C7pQS<`&pilYLX=LC|`}FzD89Z3eTwh>B~jyrHb!Wb_H+0
      D!v;u0
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh5w;#InQ+{fgWi{o<0M)Wlr<)UwpPl45=5{M=k1gPnne
      zkwE~YNIxerFJ0e1DJwM@D9Xmjpnywjgs+b)$Ph*b_Vm<}kkkqwOGHD{2VqKZNl|8A
      zx-}yMS8#r5QF5wVW=<+20}s?rJ&;161&j>LK+FnsEhEqo><k<r76T`cWMbd~0O?pY
      A8UO$Q
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gyG{c!5Jj&;U_%l}gs7mQga(V6c0;v1q@<uVX0&qTwUIp=g<qrK1NbP!>>`AO
      zL}6cBI&(bZkI%Pv09Tk77$}^s&Bko?w(&Z1BGYKvP~fb~Ras!DFz*2EO{n$#)0!+7
      z*i$(Buk7)*T66-1lbX1Uwr%9LdVQgitT)N9i$US|{G$35FFCnTUn|U{<{?E(In%Rr
      z@E82<K)|VhcaeKrRyg|6wd}mETxMY=!Yl$ib|lDn8QWy(#(7d0iTkp9Uq(^bk+my-
      bGL&%(jO3uOk8z(9O#3|OQn*9e2bg^U#Yk1z
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4}q#InQ+{fgWi{o<0M)Wlr<)UwpPl45<=ycC!G<kDOq
      zhn<0ikwE~YP(LRzFJ0e1DJwM@D9Xmjpnywzgs+b)$RI`ruHgLAqU2P!%$!u9DM-fZ
      Zf%F2+U}RthVpgD|7=Sc8kYr-u0002xE*by;
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fy9xq93`K8ztxvSF6U0gzgSGVvf)B*Tc3gufv#acm;<s7&0e+O25y8qLFq}EL
      z+&o|R2Y?Y80dj=i(Ok`qZ?WafrD9^1t0XStFxiDxVtofF5L(`2Ymz-Lw?~PTmI&Q{
      z+nf0;^f`oJFK%ICA$0nK+0RduWoHu!ul)Cz(D<4kni1MxpD*rUdFmuJ?v$!nU7s##
      kB$I>H)aI|~(5GuFLSCn+SLU>NfHM3A6;zcFYM!J121M&e;{X5v
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`#O-}+b5S@Zj1r=h9XOD8R@$Air2?>6Lg~aPnC!3PCYjy{+{522!0DhElDw}vP
      z9@;m3dGlsocVC}d0Jw#LhL(ci64zLpI(SoYNf->RDRN~-ksWUy$a*Z1T@f`LC>SKU
      z@fdUSvRIO34IKqn|Czi!O-9L1K`$qMT`jz`<97uY*Tc!LQ^uu>`Q2WWZ7QaaL|R&&
      zF_40OstW#DW6zumGo=rYmV)@tsFoRBA@8xG`E)FgtXP$n9-SA1%Rgyu(s)^2L0itD
      e{76UQX*hxu^SHrogS`e%8az!XeP?pFp#Kfbbyvp#
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fy$%6E6ot?AH>{s1Jb(@b6SWqVpTsuWvAH(8*&WFk!mBAffQJ$@p%97UHYeXX
      z_ngP`b_Xy<Q=mZTrRuCM@{(urXbr1e@|m?g%9*x_y>58VhIPaOB|_W7GE+L1>s`u`
      z6{rxp|01@_#mt8hS~1%xN0~CpCI?Lz_6Li9w)f{Rd_oW|V5M><bUw~^jnJAz#|{X>
      m!^uQEPcqN^lppz5t|_7DuI%O)+!}!@{HhuPrx5C1N8<&1=2CqC
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!v1$TA5PhSG7d09STR}T*vRJ1zf}l|pA=r(_c&zN5vbQJqZ5H`}e3ZBcqLszW
      zz?(Pk&HKNc{{Rfp3{WEU_I%=8<*`wzv%;~GlO!%xKO9SX<WK^<5LyLI8BQWK-|i)J
      z0V;&<v*X{{^t+HDR3mW<D?6PN+Wo=wp|f&UC(#$-!&B~V>*a*d(dkHboS6qclF+ba
      zrw<9C+#hTRwbdcBp^UW=Li4WhSy=ezJk8gu&sz2Y0=%IJQoYR@>V89b_q~M16`8F`
      A#sB~S
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ`!y9&ZU5S;UMKEcAm(ozvTtZh{gd_fx9%ejQeC4uA;^w%u>06$8+Q^7`y-PvJx
      zhS~e$dIK;;hoi(WKFLC!#W~U<GbzbPP(iWD#5OU~gh@OnrDggWIVucYClFf3f!O&c
      zQih|(F!*P4*sK@MkbwtewlX4y-f*=3x_BlH<6y?nvIqOz*P&V+-^{yYh9bwBUXrJZ
      mmZ7%#{*P=EXJ~^klx<b*hh-a<qYf9k@xi7;yKmWELi-8o;z!p2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{fy$ZrW5QJy_I}<G|tgI}x(8JnR1wm1Wh3y%RkdR#9atS`0g%99EiF=ie7P||x
      z>^HNo_u~m*g`q%;u*g)S?($ybvT|0dLh42vSIM(2V_j9LN%n>}b?nm82y_S|e<E{b
      z5_!61I(7m*!t@{LdOU1Bk`N@?U6kcc7|-U1FDG)Ajn)Lg%Z+l15JqKfW4%jrO_=;l
      bv-AMACbYS_{8fwN3H0G(27a<0dL4rgO~FL2
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{gPfG(a5XC1|yV^fm#giv5LVGcI_NWyK6%PRsZ!tS;w`>wf(o(;g2S0!xN_>&6
      z;=w~Qyvds%^YZce_D)1sbX-tJ(8W@(^+s-NBV!7zt>iVk6s1Z!q+4%R7P6pSL8EMy
      zjdqoMcv-SRw=3xUKfu%de40^$`V}Yj8WY=DDd==Ong5bh3bm`Q1)afkv(Q1C#9``;
      zFVR<K!InYbZG*wv8Bd-C4eE#;U8x)IU>U|Ap|Yt5-Xn)tdk3NXDj2@28#qt?M7zwp
      lAP2BGd-$3zvKF*YIrBkVd({8dgSHOadYIoacZ9n`qc4MOT3!GE
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ;O-sW-5Pe&<(Q0jL#hc(kBwk!R_u>Z?3RTe{c-@92q~t?3lal^55B>mulsKD&
      znjY$5ci7qYX5PH{{`vd@aE)UJErIj7TBt%6aU?S`TE$W?bV8Z*NEsSOI_8&yZGpZ;
      z%19-Fe4fp<&)K%X*(Uz`<8*8*2{?hKClzafQ}=TEhfg?{eJEec7yCUD=rZz_$b_?;
      zbS7|8<7G}^BqyYeqSVwt%PHv$JZci}mQ}YK_n&4>A?t&$1aO~WExqh>pC+UW9?0D=
      z#!69*<O02Bfw$L*z(u91GScH&lVDVdSxX6Yyfinyeh4FWZqQuEmGzLl7ue#n!`p20
      gejMz=?r9I5GVa&$0NwI^h+Y}{7%+o9<GY37F93&`oB#j-
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ<%T8M{5FJx!3gii;Pzo(Cp=5*AH7i7egcQmn<)QA3GXzJuzLD)f_%#;&fPNHW
      z>^Ov%vapWFo^yO=JpUi={{g^H*vP;bgO!%J5k1~Z+T1#WBH?(0+F5>aP^<b~2F4i_
      zeHL#E-Q<UtEtGWnk-_>KE|Ka%WjEE<3DRMZZK4ZGf9^WS;6u5x&tRGkYpE1YrJBKV
      zxl((hHMrhpkXN?ugmKk2CS)my{3Q`(cbqfovg=5gqTeDx+YyqYtg=<zcp{X1=#;xV
      z!7DVVeagJDM<$hMt<ueX@@u-X?}x~{*TM+t&`<@1`24R_cKh$=g8DGdi&qBA?^P5#
      z`@9q?E-PL*-5kLjR@CP`H#v$o%p+coT3?sfn27#|yllQ6w2&YBZc_f-tx*nl$fQgg
      z*f`b7BZJv;_%p6je(p2OcIAx0RJA9u<J)L6usU)^o-&D5PrF9qo@$eDZZLXVekN$n
      z=)Y-A(9{-b7Blb({7g>5RKRJ-2FyjwM=V4vMl3~~i8veabHq9L5_INaA>db74EPO}
      W0xrXMa`A&)j1#WVTBH3KtUm&7^5v5N
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+-*XdH6vw}}O_O%JEtCpUTBW53O`}A>AH^UFB~_plhL%cs(QSH7gPYyVW>e#f
      z`lLRo5B?cEz>H3(GNW%k_(wT@&+f9>Cfk9B?A_g*`}v;pz31$||NZ$Ffb+PSL!Uza
      zk+oyBi|x8yZ2F$I>cy5{vy0^&?fCb!wWYo5+SXOe*EwVq4oi5^ww!A5&gLUs@pH&3
      zoa})-xV@Y}C}bO!N20>a@(W^148B}*YW@|4{<-|RLT1t3(gyl5Vqyq}!lC7wqgPt>
      zP3^5&o3>Usvg}qYd)@MC@*KU)_}jInLZMgjpc1KldagHoe=()}`VbUeF_FU{lci~N
      zNnxm|{ku_>L)Fgx>|FkZNbYuY+Yc<098z{@Igw`Zc`i)VD7P!R;n!TJnZs)evuVz*
      z28S9)4r2f(O-$fK4l@eV!Epw5thlSK%68e-b?U_N2BtB>BarM^bCg)J0ZM{AV`3Jk
      z6>{5Fb0rAn(LI!Z=1rW%90?7rzmgYknJD0d!YD0@)Yekq%)91P1NeCp=TI~-C7I+T
      zlQpX<sCP|V6x6V|?YRx@`QIp<2~RN0F~Wp??n^s|OA4og`h#}9VN09aSG{U$p93OP
      zGVvbXH?V*Yr3KlUN7F>4R~@S!^kWAcrJyiSvE8N?-lB=C(#Y(cy1T>4T2eUM*>T@#
      zwi*rB^Yzvp7G=p1Cr+d+J{YTR%d6<6nzaA%#H>9Z*K@+d3_G=-zXAUGq+vPwBfRGv
      z@jA?>i(D1gf%#pSPkGaaQC<zMz$Ii*!Xe(7VGs^uj86hM!m9w57%8!a0OkvSV7x;a
      zr8w|0Dc87TF(4faqa%_i9c5aQ#IcxpC1Pf~cwtsIS<bBlD;u-2G3!+vkMb)9Y$@<}
      zj6Y#IVS!n`2JWR6$MIm)B>&GaYAPu67T?H@3Bmk>5n1-|y26uZnBLgMslQ`%SoH(i
      zy+OAgCL|_e|2QthiGS(fHx34WPVg55Td819TLdn1m5j&tWt>-d-2b>M*Dr~z61kl~
      zj>oxjUVH3Fhrh|JRmbDd2#0W&@J1?}qum2fx8&`>k|}z9q1)>nN_<U;c0!`#H9rzB
      zDe=z165mqdJ4$??D#6b~LSi8}*w5JfG8mJg|D&=L_V7WUw9LXrVHcOX>-d2pKXM9w
      z3Pi$5nT)%85+8Av<WTwbNXUf^x)>ezSSV-8vWII5-Q)N(MSdal*F+^_@nK(&zYG^B
      dA^kJ>3}u@BNhjHGc799jAB^{Z8no7p{{g=me_#Lr
      
      literal 0
      HcmV?d00001
      
      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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
      
      literal 0
      HcmV?d00001
      
      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
      zcma)(O-chn5QSgmZ(`z4R=I!+BZ7_Vtb!yENDvYTZriqy2|YbB)052ETzCKvC00im
      zBI6>fZeCTr`ug?P_s1uI2V6yH5N@`5r%P2PR^>ipov6acRy{8l(;YiMu{Jf@r&)v+
      zVGx>?)$UC_y=>WdLf`Rz?sBi4VZz<$c5$NNn9$X~?lL$V)#rp^eLz~Ve&uZZk2MFz
      zyrLD)-n2CQ?&H+u5&DGd8ct<fbrO~*tgi$9N$OEH7D>R|2*o-rGQ+dj%G-vuFz*9Y
      khd^k`R{%}Pwv7%##u2)rpNZO%vv*L=j}^IJNVS2>AK2Z7t^fc4
      
      literal 0
      HcmV?d00001
      
      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
      zcmZXPJr06E5QX0$f}(|uComdq+*n&0tS}ZN#&(5`f$(EsA)L*^19&LoU_l|pWacIF
      zzIpThJYN8InA$K1t60{u5lxziQWr|5qS8?!t|!l}Ri+PlR#vGhY?y>uyDJiz-NpG9
      zt3VS5G7JgJwb#R_)?Rj?{pLb&+$K;D9Wm6#n6T)%_^$tp(QUHJ&#NL($0$*R`G2x)
      a%diNXh2H{*gAQS_wpp3nM_dli1}0x9g++=0
      
      literal 0
      HcmV?d00001
      
      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
      zcma)%%?<%U5QMA!jsJ)@aO1$l*_o5Xfw+&&tgNhA=^gB|Id}jMC3+<!!ojKYRjMmh
      zxBKM^V2rjxfzaETlgV_pkF{sx(lFt@o-!vqk5X@)WrY%<liPG`+*U6(I~#a{IvaM8
      z+Y*NT`LC4KE6?&Y3+%y1iJJ`8g!&s(g&Lv%?>C`r^J)?i8gJrfPl07}<iO6N*b=%Q
      k<wtpRg+M6EXrL%t%BTn{p_1IHDD^L;@u`TfDgFXl4`1I=@Bjb+
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{iT~E|N6o%hf7PeMkaYYnA5c~wRtj0@?No}ic><6KBBUjCAJ3>i6Htm$KKg%l<
      zFZ==iDC6mBLT|j8GtW8i%)B{ge*OOO6TnNn=%K@~b;i&6#qc6ahqB~(^|dIop;yak
      zEkB7_)kBwIt<elqo}Uc8$(e{G!;)hKA3c*{U|$w}Stj|(Ylao0$ScWnIp%3C6kMSL
      znUJSN%+MQKNB+oj6)Y2+i?T|JoI$Z%!!t+j2L*j1kw-;Lmocn+&L{}KICf}ShOHmz
      z!Tj)mDn*t^jht(-h*Dm1IloEu1Kl-s+jA`iHyG5$NzBtC7YwVWX9UNGR(SaNojo!X
      z+@f4uL~=G2+O(deNz@Yg$9`Zr3huN-)vS^tW7sfEJ<vnnG8#jnWm}Hr2EKwVszouE
      zT&t*6WJwdL$V4tH>cYr1Nu^+i_DLR7mJB+UInu+%mV!sbnTQjvHI_*ACdm`|mSJIc
      zZ_Lm&idd*vz}_+*;|W9GPIBSa*+i59pQLnRU>6Zj$Gl7${+H~^(}dpNo=@xl<EGiE
      zeo>c^c%L+P^)G+IK{IFUfSl0xQL%|dED`mHI#7t!7GEV^Y4IxYT8pm{UvKd`@kWbp
      z5^uKnHqqS{-y^=?;%(vwEq+MOI!%WtJ|%~*C^CwR``@wqZEks=R+U6Rgf0Z0(Qf&#
      O2+yGrF&xm^!SD~H`KYG=
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvY!A`<J7=-7q3YCf?>H(hsG_>*T39*_c1c(K$%~DnZ*|wy+HTY^Cd;lNHxUGqj
      z(BtHvneWeheSdrcxWh#i2H|?m-q_aJM#51ki{)#QM$QYDnNU?65*qp45iDLhqxqVL
      zN=L?C@aXxyhk+Z6rjzk>61aZ9H};0lgy!Hs;Hz{MFYgKUeiBQ?Vl`tT<0g&?w*}YM
      zT>Fn}FIJMx1@9)A+GMKBWym(VfzZ-OcUVR=aYDE$E8}r_mnFIK-=*S_w;)`#_aE-e
      z2-b4fb=mIh+Xyv3$<mNNtpwMJ-_`8=mkNP!pl3GF!VxN3RSRWmUE9$X3_Wrkr^v@X
      MLqod==Y_ZV1Cl#(eE<Le
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0ZgvJHMh2;@#InQ+{fgWi{gR@@yyCR{qFnvp{L-T2RCWdyMg{?p
      zynaq%Ub?=2QdVkm2_pk{acW6$WpPPru4f7(gQ$iNLP>B*QD$DcwPqMlRXVaN5e-dD
      zWsD455S!dGb5emiARIlAacqnXj10^`cQP<A0bRk$z{UV_4Lbt|P=t|z6C}>S1psEf
      BGxh)g
      
      literal 0
      HcmV?d00001
      
      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
      zcmY+9NeaS15Ji7E#SulkfV;S{aqUtNgrGuB(1~q`^Z;!~^lC0VfQJ%04v3rjRmJ<%
      zulwVA1297`K!q?q@Do3?vy#kNu8(_T6^l(_QxTbzJ7WXX2!j%1lIx6Zl7mPcp_2)>
      zEfSfhs~uq!PNE+ZJDcll{)Xbq(Fs*TJ#UF}E!Krfge6qN$%@eT+l7&Z(%*gi9blPD
      mK^Xp}nU+Ty1aJ0V05u=3j)rdt!AF~Dz2<hQp6vKqLH7x)KR#6e
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_F-`+P3>=4$g8&f{O&Tg1XjoBDQ6i|2f<!*BIXS0|_I6KuUbweW@Bki#@Jf(0
      zNL1F?Gh>fGzurFp++bE=L^$8rS38)Y^+u8n{W_-BEV=Ex749pH38#f(ybX<6tTtQ=
      zVHWsp`Ag?SxVXG}`qODgx+6><hMGHZF{tw);r1WNeGF^Y<YbFvt0kN@EQ>5%mgf{Z
      zPU5&H%zth$S)4b!Nm=|7bE^5#dDi2%@vh7M34ySuF9AlHb{`YPm7=lM1MN(4q=;}_
      H7&!R`9RgiX
      
      literal 0
      HcmV?d00001
      
      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
      zcmah|+iuf95IvhZH4Pz68ZIrjHoYe0Vj&POK}ZM{sZvC%w)A}yw&_+IJ6f-+@H_kg
      zPe?rQ0elo<);5V_g7V_oor}+zGdsV2|M&^u1)jMmFsxtkYd-Qu1LYab{qQ2t1Mlqb
      zNoW@iL)9jEiu--<sCy-PhGFrI^rd;ru+VIsGdS;q&!U6{ER|8jBExb=`r>0W=n8$t
      zyGk&ubb=mN=UhvBPo0jrlp#Z-Glxc-VQI{dq1~KWa2iCqC)zV(CnAiLX<M?TgHcZm
      zjST$I#R@}n4){2op&SZx%rzefBQ(Qa!XuI9)M)AV6ZEWDF=n|xRk%B&uod&3sw5qI
      zN^m`fB&{k$;nT?>^%JOTOJaMr7@3@yL4_D(d<<L71TjDTOcKdnC%B`?3?p-_gQ3ty
      z3L>$V@{f#E-XuUkF4h?~ClBUODbeTZo$f~i;hT(>bt3fdpI1{>UjEk%wLFzCb0?6_
      z#7@1IhokCwV@S(s0|@#+>p*v8XoPQNPiyn)O=ZQxR|$B^%dqnw>8H|2{Gt{FOfNQh
      z*&n1`q-th8pIf1w251jyseuX{yMJ_d>GqN=BU{}6jvL?TP(X>kC9=RPN_~x+bSfuF
      zWN*Q)dj-qnsZzutTO&^$x8uki+>Px$g0PvZSc~m_Jc#W>Jjzr)ri=|V;>aepa*=K9
      o<UG6B%Xyk;5etU>aZ69)JNYK<*lvNZnO0~|Z7bxr=><If0{{e2l>h($
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiz-Ez`U5Xb)uv|$1*{i4?TRjpPESjG!&XK=JL_|*<o$0DPb2RsdNLgFMrc^L0}
      z0&nb$7e0V5;M+LvNdiVp<tCi7`R{N4yBmJ|`t}{bZIm>m2zTCz4`Nsw_N|)l3fntz
      z+<vV!I!U+T*e9kjaD{I=_M>4}zE=kg8A54F>R3%!@T6-Bt1VrRvtJ!NB+wyYj_IB+
      zY`-n6ft*?Vx$~*_`K2Jt-ZO2}zfVY)w%deE!+9%p5a#pHQ6L<ZnyPrs61Gu0_FdC9
      z>Oo|(lVfM#c4gD)3g2-<Nto2?xz0z?v1DBpC^Su5J{$Bq(ru|AVM*m!ZNawr9tAUg
      z&-4hpiKV6vtxhN=_*V7Pea}!e|7nV_7Eg)0)^Q#eG^`Vr|D=rtd0fOLf^JCvNP3<y
      zxTlrUc2Wi6SH;+iF@p`4<JIGXPMYH0S>pe1MGZjfk4$P-xGchE;+X&5sE#z|xy>;8
      z*i@_An!1S{H85P|4=T-n1;RRJFw4Ih-%`j1XB|0?<T-K|89o8oG7+6(?n|Ir;HS=N
      zV3+guu*j!;sKXML`Np=e5;69fp|sg@C6V!f8T$caHPl56&Oi~XOi{FR5v>u?a^=cb
      ztWhPw)DxCJjRA9GU=EjYB?4|lz(WSAQ7C)W1ln`9_adNegt{?pWKS7Y+*DvxjaH2=
      z#;qoe?lp7YoWZ>ow5_<CxE^r}5x2#DGojz=tyA2XTuFzy-GEyTbuqt_+>!G%v$vR;
      G!p+~Jr5CyY
      
      literal 0
      HcmV?d00001
      
      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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
      YMzY^Y_6N!S{8zH4Y_g{*unf=q1J)l<^8f$<
      
      literal 0
      HcmV?d00001
      
      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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
      R8&)b<B@P0A<8Ko_{|~hVYi$4k
      
      literal 0
      HcmV?d00001
      
      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
      zcmbV~T~8B16o%jF2bHo=D70V|1^jBa#>NX11*1`f1X4|~$OXojr4HLQ?XH>K8vH@t
      zd7+6);)R!*_%r+=#&@>cb`3Q#UhK@AIp;j*yl3{uuP<K#Tt_v7guu<0)@$picGPLt
      z0%f`Wp{F{v-Tq0cO{*Dr>dm_69y)ecS%KrZ8%lX9gOor{XV==6YuCa{foWeV$7=6M
      z<umfh)&l{tEig%dA6Ra%XSKUB{kHY9^{&0XD=;pPn(~#V3KZ%wT>pAaVC=TzI>8-*
      zWVx~@kXrX%$ShdPfPonSvpg~}cG(D&<JxOFJ6CsH`Ka4DkZRXDXiI^7-D|RAi+$6M
      zE>l6v@dZ{x$p6fTeHY?=#ac*qd|Q_ts*Rii3-OeV!3=ccf|`>!t2GzLss5aSEG7i9
      zwhSIh-?waPnJZULVs+k%f%90(;v!ZuxFj$;EIueBkm>Y62B|T}{2$zbgCesHudAAJ
      z)6t`>{L7znO_#<pB_#PHCQw2eW3)1%bqaZ{i)VdjV3O+;ts9IM+%u*S$H;vMgY#Uo
      zL;$xKzKU6%j9wV#P@ts|#Rzei2pvmAbp+xb5%)txu@@F0n1FdK5TaqHPr$09`q?6E
      z`!BE(<@I1Q5p0JA^)M#PtH(HFRzG2JC~zut?QlwuDYg+pmwMrY4ktK84J9J%HNi9A
      zJHqdC*TPHYF_!Dq@5q}UvG|SUxP8Wjdi6cM2~HmTQe5|0?J1`5jJlu4WR#+cX%6>t
      iG?ObRM|Eo4bq{IH9U}EZ0(OY$y-s@YIu&{nFn<FvDCJ}T
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb09(D#MMh5w;#InQ+{fgWi{gR@@yyCR{qFnvZAkU!G;{2Sl)FO5U
      z7DfgEkRtt@#JqHU|D>$c<Pt^(_9BP^Mg}JhAB1#pNl|8Ax;3VVCRhmFqTu|}qU2O-
      zMg}g|isaOSlFa<PVs-{jMg|RR&I*A!FtrG-9H<pyh+Ae(D$u1!PS*pO!N$nI$iNKr
      dFarZ4&?l@6Y(PFckjDa~Ie?f8$Yx^T1^_CWP+kB4
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`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
      HcmV?d00001
      
      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
      zcmaizTTc^F6ouDmOIzAf5DF^ZxG7~Q9f*mEmk<rNXb=*LMBkj2p$tx^W;#WD@l_vv
      z)Hi>ECK3`K`~m(b<2q-Cw$ec#X3n0IeZIZ++Gl?K{_zvQ0u~a82#g;XhsKe9RI_!@
      zHJrv?-L2`n^_srC`E<){G;J?|n81Kc({014>YL>Qv%=lDz-ZWE|CB&tb>-3av#k|@
      z!S(j(lIL1Z^}aygQr&5IhU4uRcGFBEEik|Dd9Uy3x}p{-so0WKq@-d?lD=meUeh%N
      zVorUR%iwz5t?F-XSCsS(?y*AJF^{~GRkm4BAlZ1^@XXrdU4i%m%dxygfoOhahm0lW
      zry!8aU;x7cck|u2ke#lkB&>hka?Fipt!%p6M%nhYRSbK_a4q>AY{tBOt06F{ocX8y
      zY-Bh@kE}Hvvfr)q+{{q@r#3C85XB8?$c0{7GoC>PeKMNNAnQjrGw4T>gKn6fw471(
      zG|J^?x|IlIWoqYCvhqadMw%I=)}+{ZsLC{twX<Zgt~7yEsor!e=Bg#9kZoO_qD;j&
      zTZ!`NK@69XK$3AU|BDDxeAugs*{NFDC)YG{=m+0}{JO)Ff@@L}LY!deo5~#FTM~d(
      zQrB>iQO3{1C02rBj0TK{WXRm4HXF*=AY)T8M*O^h!4pcOP_!!n?Fng7pH>J{^qjO8
      ziZ<rwb<reO_8d{%tKD2t2<h}CxyFCF*U0v{!vWXkcZ_;-+6k^}v&R_I3dfkx=8iGd
      zc5{R?0`{4CzzMygJ{v=*sd}1!zST!AaD~jE4;jhIa@MzS>iZ%qOW)(FYP*&{xh5+f
      zcDNpI@#8Jmr;!i3(7DQc(4&3F*jEM-$V(7co9`6HzW_Y}Mqnmf$i!J8?<wTNIYQ)^
      zWMM5-$i!J8A47%AqCkYa&3`%4;lA(4Ckpv|ju828NFj452CPm;rp^la5-LPjzRmvu
      Df=Crt
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKqVQ<n<6o%hBpk=_uL^j==b2xR-8LBaUQ8S~sB`R)aAc@g01v=IVt!azSf2E1b
      z5<mC@{87gDwzZ(3AA0ZU?RnqxoOAo*=eO?wZlj`NMxb<Td@xS*lR;niUBmVc9e1F2
      zoq_&j|3$+Yx*bzRQeZ)*>3zfQ>HF<tv*W8!1XiYrLzRHKyYr~|>R?BpP#>uqzH8aN
      z`vP+{$M$@~_FG1OXr_@BxOL?F@9*h);94b8HAbousTw2cho<2VT~i=wJ6&#ty5sir
      zk9Rr&`X0|%A?<zgd~@)$E1*2EY|GykNR%rrs%p&0K;V21c@zaU%aaC^&{CSOTei73
      z9JEchX|(%c?T*oJ8LlPYqr;?sWO)J`fysZzOVGtB)hn$G61XJ!7G_C$IfoqPWOOBm
      zd89dC&-7)djC#MLV!1Neh(MO9jd&O=H*p`bwJdE$S<-4EO&}9q@2(|VpO0^(DpOG+
      zUV=}G>oQcN8PD=(n?Z&T`Gc7B+*N*KZ(Psu?QWpssV2l33SWZ6MXpi^JcfcAmKfzI
      zkm3ut$X!}2M-~rhA#+u2YnsI~T09Rdmcq2iLYhf35ttPtv)9Z?&@8W=VMW_I#j1Am
      z6l)`{0+RgvlIsCmZ175&f%$qUi_P<qIj!Wi(N<tRX5QwzWLAO_BlocDHyq^KF=Qon
      zRbu24u13f@cR8Ds_7$t28O%TqPzeq@W5Y|u!`r~MNc;!LSeqfpJA(B80V11{g|FjA
      S<TVbm_BV((6=XBOE&l@Pf6Nd7
      
      literal 0
      HcmV?d00001
      
      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
      zcmaKrTTc^F6ouEJr7fkjPyrQ`tCtqEqw!4*2_i&7qX~t^7as;Vv_qy-ojEndH~*0)
      z8WSJ<0sbiCIx}_3i~|pIZryvWZ|`&Z`_Io`03M^3#fZT2nfcM|8~u)LDA#nn)2`bw
      zJf1W*-|kDVXR9pI0+Tw-uuZ3Byg53P$2`pl%q1lUSpwOe?ahP3{cVAAeVE-)uI03z
      z2~2Et9Z#8#YMORW<}fbssIAodr-tFH)`(OKk!nP$g-FJ!G*!=)G-;d8i7j1$TlKEn
      z^6Sv_6j#zwuYzA`SF~l{IyUXWiNI1MUiOtyk3=vh=bd{>c6Lt$GS4l?QX2xPO0_AF
      z-s+ynJW`k`U<ze{Qr&Xo>t5$bx(DWwO|o*mOS`7&T6#Y?Oslr#39R}Jxw7lDU#vtB
      zV<lCaV_?+<6fhx>_vF7~xoKV4EL5sj$p}m_HCj3Wqt*%C3G7!3D569SI>t3tV#Wy~
      z0^>Aqgk7Gg{Qpt{qiO+@$T6Nq!}w`hBs{HrquX<j<&LHAp%}iJnhwP>yO!cNiZpH_
      ziyYTu{6mZ&&yUUY*R0B)Y06p0@R~VZ<L(J(!FhD;2d2OJVY3`{I`D$BFL9l#LJ))-
      zv;o&snB%Agb{MH+^IBkS{X6D|Dn-HpyHwdDR^3;c4Wb81+DT(-h})s&#y~R@(+j8$
      zSnlBktxTwu3AGlmIN&pUZC&6u%zq)y2y}rN9s}<Zi(B&hs*8(&tPBeaKw1Q8UkXz4
      yjql)Y0?0}n<U=CJJ=`B8M?flZkaL23x&%aDy6)~8))PP~agfi6AP@Y$J^Ty7C<^HS
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ>-%lJ>6#nkA?7}kqhL#1a)LP5#!cGxOm91?Nfl?QWKv(d^3^33k%P!fSHMK8B
      zV|+8l$3|m}8cj4NG`34>6MsFdiGP&wyLX12+3o7X%$+&+-0ytnJLlZL|M}%t026pS
      zjDWz|edAr@u739*tJ?)5SKQ4P4)h`|Ycm^b`BGuq3?nGeCEfI_k=xU6ZS9-eb{HXn
      z!A6IjQv%`nxtaCbt8)T9Y47x!U9fU{DS`Ice6DC4IXh!yOJ)n&1TNmO?ZatZSExx+
      zN>(W)Nhw*Sr0<%BT`HIYt@K(ojUBTfa5|kY?5Rv7|Ba=zv%y$xR_?H5pAd`I_$_){
      z^bB3Ga+ZBnplLLg5eUxacgzTy(5Imb-2$CyD`zg34z|p~y0MidgPwGL+sI~&f+hc5
      zW6-{16$Q?z#Q#@a#+)3jA><LSG5dMOGOZ98(x9PTem$e11D#}FaHSZog{(a*pcPHK
      z8ir-8^{(!uqy*Ytjc;@`Rzu5k7U&?XFBA<tTVoiiJMG()W#aj@_lmZ8u(%`8Kl*gr
      z#4-`YF&0LG<@Q(G2c+QwMg>}mRirl3@NoOc;i-O<uoD`R&;@#ns_)nHK2U+n4xRd9
      zI!%?T6~%Wj6=8iYX*iD;!niDOq0z_`Z5Hl8=WK9s5F?nvD;lOjT|60;15-aq!OH7S
      zEVaQ{al9%!l?^=L%2($i6`aC#4KsL+<3nYfDPbe~KpmUHdtKsjh<iOech`Yh&~QVl
      zCPiK;ZDp<P#U07xriM3U9b{2Y>}_bqgxp+~pxg{OQVR?>oD^4Ffq<2hUF*|Fz^P(=
      zJsL<UJIhj2?#kEi)W1#{UUF5tn<2aC&`n7o;;@;w<kWXm@1mqED9*CVO?;a9jv|Z}
      zez)?P4IsjYW2(M6q+Df3@G{}Mhkuh?1=r^IF?t^;w|?am;Cl{1EZ`KsG{*_2F~C0w
      z5an9}Y%)L-*G>r#Pdvh4eC!d1J*Xan0BOFL$>|oaiWLPp;v91!34k-?DY<mY>x8f}
      z%(HHodHzdEk&`gK2ptM3!w4IUu&K~bIo?(Dh{BY)jwrPx^{XysNYVBfOU(d-YHs<k
      zLRGAg%T(YwoOAi<Tpb-BV(^H^1CTm~lySeIhR;`%t0Ce`%pp=Bk>Y<4kwVG9oNvBm
      zQhp-C^+fJ9B*F{JJ)CwG>54zZa0P90Nt6-uv~jflkUjPhLx1d})m7D}3*)K-g}l&Q
      z<XNs#pKc#=85fU)N6~@)gwUT7`ZFKZZWp>0FRF%Ro??<kZzkXeA|3w&;yya!zeAMq
      zQu=!=(=v4*3$#ovjg|58@^}TEPY~Z6KgJb04A6LOIv5RB&@Ro<;4x;?G|s!mL<Oyh
      zXt0dM_+z96mc}X=Nc`o1j2&Z%AT0?Vh$XxPR?$a7pHssx*oR;8?<)-9Yj)f>EYP=z
      z;X7Qy4@luhT*ptii6hR!19t4scn4+d;u!mQj2xce9)837_*02+gOV^&&dv(g0PSz8
      qvX9^zR<TCQdEV6PxJ^k?+&Kd|3oHD3i**PRcSu!4PSl1%*!&ljNdlDs
      
      literal 0
      HcmV?d00001
      
      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
      zcmbtUTTj$L6#ix@bghfPA}V-CLl%N<j3F^XObF?EN%4WL8{W*Y%q~N^?PfaF^=J8H
      z;)6fHA7wmKmWJ%s3-P5h=bLl+<~wKl<L9^U0G{HpjS9n)Q~r?;y<tD{wBm8vO;q1Y
      z32E&fhUb7#P2SOo`fS5uSSt&e^kuM{{%-jGz-OojCdP|+-1Aym$+)-8FuRw;sphe6
      z^C%NlTw&Nb(R%R0^YRKVk#Y-CE|GFeNqJqtb*2Qv!l>Yf!~LN7CJ6n5DryYP|H*2k
      z>B>k8#W1rYW2s*<Of}Zq4Ax$9EF4T>p@vypW0(tMEZ$}PBcVcm6cM9(kaT#|=1LlS
      z1X}t;rVL&#%0FvQiY>+B(*>bl^Y}P2yxulSQ?-&zb;S01>7nWIWG*V=_`{AEXi3en
      zvBI$Rmv&PZyRw%lZbFJ!hW&C<q391Hu0?uTUT))(7g;oFomVTg+Wb?RF>g|%MoG*x
      zjV55L{8EL|iR$HV$*5a|QJUxFaRogR<9DIXS#n}P^R!a>0$kG~>mg_`>1kK6jA_h}
      zW#?9vZ0CY~m2k@pEP2e4$1_?Pt<xJ{G5;kGsnge?M1W7OudqnF+L;rsV+rOra0539
      lxkV=yt;;!bdjh#LhTO%yG2}iTOd#eeMP}NsQk4oG{Q{4aS|I=c
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvYK~DlP5QX1>x(cWq@Z!zea<TEuk;G_X;$aE*0^<hK?V5HV_}4i21N>3O*>$tV
      zghSh;eeZko`t^PI1n_|C1RX-Uu{*mr`@$Is*2lLp6ejA;jEi??h2xX;E5{+h31L{N
      zjk7*CuZs;YCBYftwhVbqsC?7X3wvo?gh9^IvIuwS_~lq+E13}bktO?x!o~B7aFf=C
      z-_%UP+UJw;TvZDGQ;iz#KN+EymD{l7$F*Z6wIR)P_thj?fY8--s^8Mpk_paHmAyc(
      PKKmHx3*l1t4z7Lx^PyQ}
      
      literal 0
      HcmV?d00001
      
      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
      zcmZvZ%}N6?6ot>N)v>MCzt)Ni1>LkR99(xLR<TeJY;hl_ahQ_HNG2oWtGVz2d?@kG
      zk98CYB;1@Y$;r7NpKtE~E^y$WMmSrD7m>PYs9bA=j-MhEx-sv}zAI^Ng`O*E9MlQh
      z8Sg5gefREhAwBD0jc^zlKffb8c@=3ZwOyWCCmdCEnOb)u)4&sI$utT3Rc16Bl^UTD
      zOM5TlL|MXdfAXK<LLLqt2+ix%lg~DYbnIY@aPnh#td#VHx-@<gvcV-tXz>%%*VxK%
      zJSTLEM~YugtqHWBU)}PnRHr}4z5K!mZH6k@5l&0)Z^#vB$hN0ZVmx^hC`ss5v@(YC
      u>>HdkVTH#k95lF#b?!(D8@#)jRlK&d9$|+I!Y=mmwSz9JoG{Nd^u7RfbCR0?
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6-*4Mg7(KU5lh*axC0omWm5st!nwFR`7_fF@qivupU8VjSJRop8H}#a*m3>3Y
      zBfRkpuLvO?ka%Je>m-oioj+>Yx%WCw8WM>I`(A(kzVn@X&S(Go{LjAuT*qn-0|M6`
      zyI;9S&QYW8$jA-iy)bGxv5Y*o;cVz--HV%bnL|e4v`TjBZcua9b{>1XjAjKc^nx%|
      z0=dfaz0IxlWr0GqT}@;^sLczUS`33&x`Etw>rHPMqXIYgr98OhI2yG~V&#-r*$^vt
      z5_9%ES2iP0U^xCdmR@7!k$@dG<v~-LJb_8m+7F$zjyT(A4<lcC5l@z8Jk$~OZov<H
      zc}HNdII}H~SqvX}76vh4Baec>c-0TQ2hGNg7j3#bbrL94!(F$&?MA+OPJ$V^@5cf&
      zy21Ytnw`%VQ#L2~&TNlB;F66~7$ZL;hQOJ2dP3eLUa>Kb(*hI8d+i$~QOcW)S8doB
      zZY#GWkZ*%k{JO_Pi#@N|DB`NXXza<2ROQSbGX%y`wz`7KFsqX|Bem|xxuQ|T`L8J>
      zEH?)c7-3;+U+5@F4r<{oyq&`hI<AL{V2Xo{cW_f+NQPVMRhru>3_R&DGH>BM+{)qo
      zR#_6aF^>hRAw#2*z}Z%1r*=7TDD=>qPhq_oNWbANAMJVv(hma*cky8k_vlQE)XG}=
      z*2bc0V)0<BUL3nM4%KZetD&k0lzMn&<kbu|_oMJo4Htb85PQ66z(i_5M<347D0{Ts
      zvNpnIwCgE-XtVh=%vV}gH1P_39^^HI49+8mVeUuxrx<|6i*us)96h~qvbfsJ;m5%H
      z89v?MD!2}np5g2hoi@q4DhHMbTfs}*sUjxf9NU2VJTCCA04mH>xt0Pb%|6A&Hp&>u
      z0r!crN?H#z(xk~wkW{BB(o-bzc)1_u<!;O^Vm>71r+qNhQ4OY&s3*_qZp_b#`2{h*
      z?1TB5mRIq-+8gs2uXkg5#H<l>zYpdNN}A_vs^^_V&uo{L#*vU79CTo1QysJF52LZ>
      z@J7PV(a*}<KXCDPS}_1+ZkA!-P{VW^TTV?lL8QX~L*yG0`L+*{miP|d>_OymH<9mp
      z5-IB8R?eLu(&3sR@;!<C(1%FNG5!Y=A|d@yGdWe7J;wE8y!#Z>zaqc-7jAzxcZ?6_
      zo?+>qCt9CT%6T_YtiUqhM@D|)|M_QJ!Y{hz6$6%<Foln_q2n~;W2~@R;1ewLP+_`T
      Oh2MIraGz}lP<;U$ta3;I
      
      literal 0
      HcmV?d00001
      
      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
      zcma)+-E-SS6vfXbj-5DaKHN`A0x6*+ae_r@X`wBJk|rhKG{s2`ePU!sNmOhpBg+sN
      zc!M{d;f+W7#?Tp>LOTOIcNm7hh~cbOUvZ=v#v`q~+I#MA?>(!h|33a5z&WfJ&?hi+
      z&-m2X)A!mf-E$4Qv*oyLz2mv2(bm`fVcqGvO|yWUz?fXDw+wq*Uu)bmn_dBVfzxRc
      zDoUWRymWozPHjn`RE?vlY}wma1dc2^cE>YpuWq!u<{*XzF79~V?qyx~RVxImL|_#K
      zR!M^CTc+W4T~lCix7%o0&6Q0)c0TWTW?McETlQ|(QxO8k6@=yJEAccr^4##I>2izF
      zf|@@g-(9tA%eyAfKRZ_!$SpdXW)b~3p`nDM0;5&SHg9#?4b$B)8ZDBPs!r2r)eYB@
      z|AWb#w_|k#=KKWzqvFhbYBr)t;?C8FATX(61f#@LMG+{cuT~O%(^v&rb`^g{!x0P$
      z9F4<*Evxr0Y8b<~z}Z9Z(-c|SVBNt?0^@P~vehz~y-4~w4Q0%*Jss0qkD8U+;tGM0
      zXxn}SC%7t60Zwf9Oq`rmh1CzWc8IZRV**1A3!h7gh^W^R=XPKtS>)F=XtGGd3=HQ5
      zj)kGgy{bjwUW&Mks|B!$ns0kz$-QWJ6Livm=iI4P>9$bFHa(p)SBiKW?-X!73=8Hp
      zEaDPv?K!H21@J)m=T4o*TG#fhwz;&|G<QAAv5UBgl>**ncf;%}YtdT`?@6^H_q1wu
      zI>t8bd;?W!=hfIo$-N~yzOmyvpGjM@kpg0i7dw_XS8*P0zNo$fa_e-0I)!SgBEfKm
      zHSXs%z~3_{V35y4{5<uc$cv@-pXpP7q~HCKzT`N@wLE~lALGCC90kXL@*^C7;4eGL
      zyOaTzkYhzo@kvvQnCvwFNr7j1mjcUNDc2UIKzaTlCSsKlLIPE)+#=qZuXIAK4wPi3
      z=ZGgEN_aldyvsE*ax~H`FFeFlEL@@_u)%ws!XNTPf8>i#sjx_VG!UnhJhhaSX<i7@
      z973OtGbr?rnZaO&Mh3d9s6s!Rg+85%Zc+FX3b%;f&Ole<2hm^3LQfP&p}WlBF+(>4
      zU6w<k&!lVaW45;(Ur_T)YJQcWIgbTj^X14L*I07tj(m?Zl)t{FeZNU)<)g;sBUe<Q
      z2Yhl=R{aGNKU1_1(yDoX@>^e~*QT#Ty*>bv=(7U(jv(J>fP_6hhgVZTrh7qtNCi2M
      zuyY4MF2og9AU_i1eg=p<*0KT@aVZ7lLNCZqsUYQakc52{$gc$XEdwO9&g-clQ@tR6
      zW`KmgbLc90+9%8N`*>p?Z}F(#$N1_K+_<~2kL86&c>j+F+%hoC<8m|TyZQz^<;-6^
      i-G5^O|M-d2H()Zd(j-4V(w6cIu!h@=7Wlw-PwhY5f35TY
      
      literal 0
      HcmV?d00001
      
      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
      zcmah_F;2rk5S(=`F*t?<LWd}ziYc%VC5Q$IQCLs}xj)+{a?$xL87JghR7ey&fJa5y
      z!x5rD(CqBq&8%kUbM^iK;2Z}&Ji_5jF61&^mL^_EqYK&S%Eps?s!HiY5QdHr8)={7
      zhis<uhS0mxRyWs#&Nxa5;-)H8fDX1pbkQRW5^dG}yv$VnC^Mr7`$?5clge7VdGjcm
      zseUFLC4X4BB!pJIq^-58CY+3;-v!?s){K5??xZb@VrlfRbVKD0!K9kkxw_TPe!tD*
      z%o!EO;KMmVa24)go_(G!7>Tia`i8AnZaf5B14b9OU_zg}uq83>z~#G(!50p($G;pE
      HR}Z5#IZbB%
      
      literal 0
      HcmV?d00001
      
      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
      HcmV?d00001
      
      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
      zcma)2u}%U(5Pf?boSrC1Wovg(a2gvEjExD^MT;}^b9Wn9a<`kT3*u*4nNauvew1+*
      zC@pB_?VEiwdGmgLx8DG6F^CWdBuiS;Cfzi3x~5uH<do5AUM^%qQ!1UYADN*_+6bXQ
      z->cJ_^gMkjma=pLod>0rdlYCT!<j(%WGWe>h0`wD=m_*OrRDRgDWrX+qLu=K%#>8m
      z$SThd&Co5>o4_bL*3U#B*7E(}QQ$t=jqc6m&MG~h43F66_vB_}OF32E-PJ$0kG-kz
      z8hj*22LuTHam*uTcZ`CuJ^I4Q=k7b^8nX--v-AdM{OaySjOXxKUZBTa&Xj9_%Rl9N
      BW}N^4
      
      literal 0
      HcmV?d00001
      
      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
      zcma)3Jx>Bb5Pb_L=mCNVev}qQu<&9qHX0LSG$FaD353FK?{2{*cei9&5Pz1HiG@GF
      zA7z|H!OFyD-pu69WZs*P&$o8~$Jovz!>~W(Q$F)%N$gE|EF*5DO1<v$NVL<wy4Pwd
      zBcbzf7%G<P#XKE&cfnAEh9P$@Q)w<3vW;es!MReAaFNAY5i7_slzo|s+es1#-Q__n
      z7^=PsdEDb#+WM#Im`6EgIPm{<%o%MN2y-2aM5JbMD#K2r=_@_(o?4+7sbndF_%-5R
      z8lz<}G2(Y(x6%G{q$J1fXgNdLi2J}$kmJrsgt9M1#Nc++M2F%=T50vg;)QERR*tg=
      zvWFZ8S>jk*sLoT>B4oCE_=?pRN-}UMx`e<9QBP5ztoThLEWv(Z9pyPzurbFfHs@Hg
      LNZdNb47R=ic{g?S
      
      literal 0
      HcmV?d00001
      
      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
      zcma)6TTc@~6#fR<F1<(*1W~yvg|;ZG;=QOb2D~+3tRc#i+jgi+wmZ%27SVs@izJ%p
      zyFbc!X0|Dt-r!}=?94ge_nkB6%-?@Me*?IMhX#fi<_@ew>&QH+JLaL~*j3B7g=_8x
      zOCb$J7{-*3=~!;f+$kUMiq8<+uwC1K!Z4i8?J`83iz-iG81WRMh%uy#w#&Dh^)i?5
      zt+K-z#*3n2IlGp$)qiU<;(xY1hK1r_6$OT<<Q^yDk(NqAoX>{Bd}+DfzL0gZB$~3q
      z3rbdE^QgibDkIOp1jDqDHJz$QDVLsoXdfGxWSG!t+QNLb(>_Rm;bIDDOfwV)^7Yj6
      zj(bhV*IHtp*2OT>)3c?TDo1H<N-5+^%dI+GGR$U+Vcp?FjhwD^M$BY${X-~Gq9A2j
      zkFw68qFD}TzN}Zws;HZeXBJDHUYc)$_&N_5GA+)*@pLB?y~QoRDd`F)gOUclRr00n
      z)(W{j1IvUL&YA9NTM%hQ)Li=;ueR^UK$c;t+qKkeG=%g+o(W`-SKYbVhgP+*Yt?nD
      zo-}+*6zQg-wRKPR(7mTRE=uj$BnY<0kfcoCO3~ob|EkN|g__f?5S}dR^du3Tgst>o
      z>W)&><K5e&I_Rq{TaDmod#u-#l*l4A_b|N$Knf8xxAbq&-#S@FHkv=i$ah){Awk~+
      zS>O@5ZXijkRNzGR9Mm&0N&uj}G{(sDJgsA7$8kY}J|!v@Z{%0m4@`B!z9#248g?ph
      z3t&|MF5xm55zrJ8d<dBKu3$!!&tgv7c`RtVh^rLKa1Bc#F&V6AF^^kf;=hpjxO$A-
      zA94<|R7C(jg`~vWQsTId8+6XF2D1n33xZVz?F+lFVHX0YE?5f0O?sJ!h~PHe!buU&
      btlK$7_Z{5r0eh-$c?RA0wC?-5kPrR?y1iyj
      
      literal 0
      HcmV?d00001
      
      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
      zcmah}+fvg|6kP`km6SVzihx(36(!<b3Mj*XI>Vqtv7@|bXb&Y!NMe#!@K5{)Uwn}n
      znUQxt%5j~f*3cGwXm@h5_qy!tonOCy`~)zKXGydOjO`c|V^81Pwe*T%nMETo9b3;w
      zmyY+su#1-Tl1K>js8roD?2`U!b4M0}B-#Xq9Iq6X`-E9^>_FN<wMsx+&Ane<T3COx
      zwj|KE@(&;vc&1&-3Uso>4-7jXWm%p@N?>X`2;3Q6fleuK1-vDVpzKLsw~bxtyGB9Y
      zc0IXe?nz&uZPv8SU|!%%I+GVjEILK0;S72@(1A{Y?iJIPtL5EI>8%@^mQ+%lf??$i
      z&s6u-!$h!c5^W-s`QMgMd#^8pddHX3D<?N3tK{{T8mmUrnbXQ>fmBPLS9>7>Bgcv2
      z4?~)6(!>u1hU-Y;PwA$g6l>CV%3eXLXjP;qFdor-x>wMP&aQ6x`bw@oE9C1ZU;P7)
      zSC#YhdXlqxeczQY?JeiE=Tyw1BG0h8>3r6wQocrn<!DL-2GWhQmf2v^(q2KjYQ+5{
      zCMYldu5t@+R~>pNI3?TsEQ__=Br*aw8dGy+*LA!gmZ@P9x0ASaY+0gN@4ysv&Z_)a
      zHY|?WF^SPWWiuNZ#xbqN_HJE9bz#E!Ry#m1d|x%ggG~%?Wbzu)=n-h;YL{6e*n$-M
      z#16aC3--g;+pv^T&*O{E_NK`8uWX_TU997O?Qq)TOJ6;v^jtV)%ck1Jf%=cllv0$q
      z3hpz1t^8d;5@#9P`Qd7T#`YxCX7i+rC-)cyW9!WWbbkv|dik$0705Dm4t>1ph?3Bc
      zb5NhN0St!mJmJ;-MGS@U5{AP#g3&Nu#+5K$#WkV`T*nO}kMX*Vahx4iB3@Ih;yX9l
      zr+vrGFKA7CJ;eCC$phRu;&}^{rY>dyc^Y|(6gEO#gHc_iOCivZGAnQ&5BRK}=>sto
      z%Fth?)FIOE4)E~kB)$*i+a!N6<hv48*Z792d_=?}JSL;S6U;PWo@1r**xpFg#v))R
      lW~jYJ&|Wi?#cUJU=T$=|!n!ftjj+^1-E*Ptd5UPk(?2ISp-cb(
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7DO;5r=5Pge45m8Y@@%!3(u<>AG(t`&BiHY%xgcxs2vq4B{o3@btHV^&)f0S{$
      zsI;XhUivn(vv1zK>AZiuz5zJHv4R{!eZa>&)We~rhb|9Z^rw6JD#$ZbqbuFwc2B?S
      z4ulyn6g=Sz!X;JfFf`~a(>vVj^R6Wxh3{Bn;W3=3H<`rgOhfYY=JIH&wjfbVPHSYF
      zLEo|emXpp*%1Pfc%$1W)H5h8-&MhAb-{q#ba_m5a<eU~a#{Rz6(}_|@jeJR8FsKPj
      zexYDcOlRo!Ex~X;DLa{FJMj8;&zR$EGjwUnKKVyYl$)U`+{jE{!44JAoa*$+PdY<M
      zjJY-90ab5jRF`9o|6N9G(9^CSA_KmpCbAhW7Gj-rnP{BhIqRw8_2eG-v=7&|I||y)
      z$TP*ibzT04JX2nIQn@8ZSC%Vw8W~??pxvYG1uC?l1r!l2s)CZlWt1hZpdxV<YZBK{
      nmAHXTi8X8yPn}rugxkc>!0t?BZzi%o6FG=S=zK_=IUIcgWfM(J
      
      literal 0
      HcmV?d00001
      
      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
      zcma)5ZBNrs6n^eDwla#q=Gz377j-YlDj;fr7}*$$W@}-ai+&<^rC}vqyR4nrzwoyh
      zKagnR5Aa7B&%M^5LBrDAbIx;epYwK4zyJ914Zu2{ClFz{cg8>Pkv8f%+NjTiuJ-Pb
      zWZ855fV+X8K#XBl+|eBFo@z$t%rXOpxc;_Ysx%npYZn1r-n0BZH!bZ*Cv%6cHCv6>
      zdX*tjGK^YfPbW(^_AAXwiy<Z~ioS2ukB!osO1X7hCr^zbC4>IT*bD}?drGmUe;3u}
      z&d^dY!?4^9g8sIqi4uzb&@Gx?kHDxO_HyF&7?fSpv0XcO$q>!u+myHLomdH6XUP1w
      zb_F*X@>hpnafiK*HBfMy0ZF8BN5woAsPo-0XEt}anaiGhdlK{*DkczDusB|BUyeo)
      zmsKPL@c~0&jG{Z9=UCho%ttB|!OStNj=^+kbZfp92x>vaq@X@#$c{-Bw4zFbiZjgA
      zY}eA|_*%T<SmN0|lRIrbumzURB%;_5Bb}pn3%a(?u=vNu{cB}uRgz6_I54dPTSQI&
      zz0pPS=2)UaqVyZYkr5*&D<dW-HO)h6YEEjZR_ZCJ#F{2Mf@^dX%wmo_De`<oj3iL~
      ziuC)`jnu7kWIp4rME66qB+*KU9!iuAQC_0e5UqWpP!VV(i<lz0Lvovv?opYquz)JE
      zI6wh)Y@vo1Xrhb;d7jWGnBvgP!s0eb(|Tf}aE|qh&`Ei5gDT&WG|?Sh!X}=QX5<xN
      Gp8W)nXZVc(
      
      literal 0
      HcmV?d00001
      
      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
      zcmZ{j%Wl&^6o&uFwIu0<hSCyBuUv8gEW|QV1q6zK2n8iI-A>IYF*tT)k7;&@9ghPN
      zs1gevfCu3*5NB*Fc2lw$`<(pq&Ho=ye*gXX3%~>1%Ol0G^`3v^6KyiGw8@yup?2J*
      z_1VM_V`(~e9vOzR(r6a92io)ph80h^Cbx9qdL%r0@sxqRWLRuFwkNqQb#D10`{y%n
      zeL4NK$&fX;?+J#rPK@ghUFVdaSfa_0Yniqw4@gi=D0<R0?Lo7qGi2J%J5fLyD<zb$
      z$gtcoZSmS4od~zDAPlP=#~@3bj8PpmGjeEp3_AgJepIrM9|_Ong8&qpj4Uv0B#p(^
      zYq~OZO_^H11cvJ+6i{SX7zo)8Gp|=`iA?cU$}pyUvM0Imq3?2oj!suY;BE<9*p5#%
      z9jzN`UBO2*5q0WKCEBA+jxVR9ol#yyymd_}+z3%qh&vZHM;eAg&+%PD9GYst<@49$
      zzM2wtDRi3dR0<Vjk)tXfR137yBxqGV`ed{&QFTDdl<L+SXITD5Zz)`+wGech#Asoa
      z>Z_p&Wn7_3QP!wO*Gx@1Vm&8~Vigr@qu%&|N(@{IY&|02V}d_PK#NmoF|eqho464{
      zHF`3FX6xTk`ARRLKa~PF3^1io5Mk(lgl+1mbPwqnZa%|K>?I8M3K?|f0QMrlx$*4J
      n61tS;O(IEdnk0u?xE&l$-}8U0>MZMsSo&O6JzzD0_;>#Sfy2Uu
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7B%WlFj5S*nzX!<<#-dhz8t<`f*9H?3e^&u|3x{(!vf@8%F^0)QC2k=o9n;=z)
      zfT~{X-SKK>XT1LTUIBQ-Re%oRb}pCF3%|&PH`2|-=R2QcZ%SotR_Fj-!gW0)a;a1C
      z_BB_DBMj71=9P4cFp4Jo?{R}{X|-G^Yh<Ft$19idusux($39WUv7ilbN{Ieg>vx=R
      zcR+quW9rIGr!nC<niOT)ShZ~VMVrb^i>gf2zt_D#PIXW^-0D1KIp=k=7x6>wwND_N
      h@W%jMPP~Uc_d(t9J!p`yg`BmJ^Ie4N3ufrxas#2Kin0Iz
      
      literal 0
      HcmV?d00001
      
      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
      zcma)&!A`<Z5Jm4)pr(K#T0}$>cZi9N3tb3dgP3TDF#(C&2fjc}X-Qk8JLAsZab@Dd
      z5AZ|$4CAztNK_IRo%inKzB70F_VMxx-~dGx3ZZl>?nGb&L(2$8!XFsdms}gc$d#UF
      zI(8%I$&t?&6*0p09QV{i$avB<h1HR6`1tDVgh1znbltH%U)X*}SYsJ~e-PEj$$gQK
      zsG7Fv*9dy48L|ya*nOkryQbZ*>~;vTx^p8nEMO@G4N1as)3oKqc-WP0TXZc+$TpoG
      zj}$zZ^|TrD2c}0TN7Vo9S0SiF-dXe`<gYM<{A|Sbz;!0!JWd(LTMy&ugm_PkJtpWg
      z>wJ3&TFV)`J$Y(|$+zbH?EP>&c0f!9*8<{5@Tsy=u*e^ikmQ=;PK~v~XQI6KjPz6F
      wS>~!m-9vtRgbeH4mkTS%vSL40vBr#$rT@js{bU_8t1^d`$40~|Fj>LoC-m@*7ytkO
      
      literal 0
      HcmV?d00001
      
      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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
      GR{sZ)gV{s?
      
      literal 0
      HcmV?d00001
      
      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
      zcmb7>O-sW-5Qg8WZ6m4LTCLU(1W$f}K~WF3^inM-MFh2Y-Nv<DNt2Rnw4TJ9f5(&H
      z!5`oc@n?vWC@Ov+9(H!$Vdj~4*vIGl2LLOWHjp5!o{4kOvw9uJ>UD)~TgUqxYr@u^
      ze_8e1Q`HK6p_S)u_iWjX9tM(xnIHS!YY4eO`bszr=?C0%w6jH^UBVzU11((L5Kbsl
      zPuHS+b8$6INSBqXbcIluuSaal5pK&m(7tk8rG*9|S@lk&i9QSsz(j_Stt(gVg`KAK
      z4@J|FgnZqzd8FXMtlyGJ-Btl%EvEi&(-Ohx$RH4{82-%`q4?SCVcYjEqRH$xGCCd^
      zEf7++2m>Y*J}vf9OE3?-(6?nxMLW#>{Q=975zK;k1~^V4g*4v=s|5P_FcTS$1DvU_
      zPVk*xT)M;HZCsP(XvW!f?%hC+_1J3_hLLB*^%%h@Ga^>uC)U_k)+Vz`zp#p!h*^_N
      HPGIT<PVSjD
      
      literal 0
      HcmV?d00001
      
      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
      zcmaJ+yAFat5S&F6L<?hYXN)#ptf{3U(Zt5~Bo~F8K;(|_Z5DojA7xxLG1^${V|Hiu
      zaerKI09F`!a0ru3*0K@JS&OEW<|Ou8_L0pKlNPxLmoRE6Ld*OpHit|lhTyAOYAcN*
      zOy}{dZ%wL2oK_}WybE7~kPxh!M3wE#%0r(p`@8o;X5p@|mqbOW=4Iob>z3_|9)Zx|
      Vj{xFhyXZ0Y7`YsMwt#a7gC}EvL+1bh
      
      literal 0
      HcmV?d00001
      
      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
      zcmaiw%}&BV6ot=Jpr(KzT0~&u#-JuPE_5M;4ML(J#snm8hdP0p(vtp2cgCHs<I2Q^
      z58#9N7{)u*M4}iMz0-Sp<~!&1_5Jw;zyYc%6o%~^e#;{xn%G7(<-ypvx}e$#9W$_8
      zryZGMDqmD27-|c(?P%%=-=9}A<bB~;+#U!|ez-h6VPIzr*_P}00e6A{w?mP9yXTFE
      z*<F<()vz2ZXfo)vu5>YM?u?9H;91V7zB6D*wA^c<VF@c4Xh<{Ux|So(!^u#1eLl1W
      zL!s-MWXZ{x`mbRk7+XF?kE#FfS!Yluv<)A{z+X`qO7j8xW6zyQH_9l(ZOCvsL(=4-
      zPXv8#nQtwF)^kJ86dg<Et}OoL`_dd+V8jL0GLlHqsZyt4nI7UGO*KQ4CiM!PsolLN
      zWFKQqj;a<<59#g^^3)eURaixVI?`he>%@>OeG#kplXXn2`X8(kHe*(q$O<YS2sVz6
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4Za#InQ+{fgWi{fdIbk_`Qb03hjBnwMOXnV%PwTAZI#
      zmRiKlz{1EN08*--lbDyT@1K;Fnq0!jz+VJW08`J%V5{MSFflJNH?_DRF*#K~&=1J8
      z_S8g@#A2N_BLi1(erZv1s#|7GDkFmwR>$apEMQ|~U}RthdW3<25$HBn1~w3jfgMOP
      HF>n9?tW`ti
      
      literal 0
      HcmV?d00001
      
      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
      zcmX^0Z`VEs1_nb0PId++Mh4Za#InQ+{fgWi{fdIbk_`Qb03aEbSd^KVl#?2iTAZI#
      zmRiKlz{1EN08*--lbDyT@1K;Fnq0!jz+VJW08`J%ps(SBFflJNH?_DRF*#K~&=1J8
      z)&$ET8)41Jz!jWdT9lmXmYI{v$RLH)dOeVlY>W(y49q~MGcYg$UBk-224XR=14$+Z
      F4geoNJ>UQU
      
      literal 0
      HcmV?d00001
      
      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 zcmaJ>U2hvz5IuK4ysqmwi4(`Tahnt<_#=r)1LY%b+Bi|ANGX*7<)M9AJ6n4rvo`hy zQ3R!`c!58F(l>bNO9ZJzT0~1oK?)KQEuVjZp8=eE*G){Zc<`OMgfOe@Q5OzJ+pI=>V35+bOY|rrvOFU%IX}4zuB6g+XG&@+fjq+cU-II7Ft7OQ%2&Z=v+h=G-)(q-9!4fB6$v?S zt=n~?OLPeCo#FWT zd9uHzJc&$KIL10S&hnl7E}Ro0e+T0S-6AUf5$k-cI*bH)`yIk+PV&QEPj#vlXk||` z_a%~BbOPWZ75qe%i3SOsG6GNce4Kjx@n=0BpTILLC;2=_D?1Ofb7BuMX#zsG#6hi? z(&%%}^ab_V>Z&=s4~W|o)D)5#spPf%eTW+{_09Y)#CchIf}gLDos)C^fC#V2J){FO zD1*|yjj0>3bSi3`G8jw+nW-R?MrNj%nd;6ok8YqpVQe6hFgIWtoBHNHkyG3s;4bms z0e&K=2ORJrLH>*}+B|+C>|Y7*H!R?H goW~z(xbXl^XE=@V)0iXJ!x+aIdK&$+tf*oBAKINT!2kdN literal 0 HcmV?d00001 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 zcmb7ESyK~15blwf0O3f$1CT>RapOV6TjP}r-KqpEH)0h$Si@!#h6=lJcNW1H|CbN` z0DqL&vy3@rtDtzA>2JP1zV501^Y_u$i#pBh#?BtI1wy6rTK;pT_O)WJm1}0TOn{gKM$yd|)DfGs6|e!!00bt@ zb!40CX06L#GJ^S<=a|SqT2;6+Koju@-A~UGt9X9N{dE z2qcv&{=o);5oMY9{gFSe%nENX!S`{fF~gKKqfLgk2-#XdH6puN0R&alQ1H!qvjD= z1?pAoQ8Yur%1)x)RgB*nzv{5e?b+*8HeuSxXi{-y$fq1;LSl`2%@bw#iaV>#d zLlm&Ah#ok5kWE$U<6_!U?{FoaXT=g1m+|8s{y% P(~x|BW_&G#|FHNEAaJ7RQf(15 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 l!TJO(NMY}x|BD)wo+xrXf|yP3@f+ds$g z%@<)t(+)by8#De$nY~*suNk&cm9B=Ez{HO6#K_hRyPDnD-jSv!FnY(bEpJiaSTeOK5X(CispA+< zByb#~0^=pimg}whwsapF+chaLRdP(DwrRMQI`@Pz@3GYsc%w8deoo+IReD9c=^3_3 znDfchaN{^8yIeAgOGa_Y_*`^Mf$snoEU6ahw&nRJB_f)7@)$PKL3KhBXkrSZ~yHoWq+M&a*&1Xuf7Nn+aUN zMS)W!+c}pUqas~_v*a5v?W%G*=JB?Mw**c{8YJ+JLYyIDd9Ufo`T(x-y^_GYND7>& zF;qt5Fa;)qS|#6Q$N_mjb?PRJN`<}j#3J^Rw_;ZWGQI5j?e|Kb3pDnIRmrKx zrS}1w8a`(!Lyx6zKyrry7F@^XYaKIPX?QZvgWTo$LUL<4;u-byO#5~+kPBZ?-jx-} zn=@+c|4<6PZzaNa-KfhbdJ#B&l;XdJndouq+w=J)BVGCyB(^#%xndv{Rs7eYm4>2i z{U12JOGy<=waM0U1V}_pI>i-Oigq{>#$v?FITFDA{|0a*%s9VbYtnqoK{1<5MOBuc z(^obH$L-cH6}+3ya~kfgyqfe@k@)7yPRliA!BV4Z+@B#C_34PsgM*Lb6PVu89r!d|F_=&Iz_}0|K0j5^dFEKiG zW_3!mIU*NcLOZ~v(n7k8%WGHLNWFk~TKWyw9xb$y-Ny%i5@ifYB3|!BPIuz}%mklu z_l(+KI0S#i9NPSb?{f+q(E2&j_`Q=^nmLZr`y1>t?_^ue>zz z##`^aHeQ&3@dx-{{0qkSwAHW~6S(Pn-se1T&vTxq>5pIg-vQjlV+nl>BYvxqbDj2! z+*Tt9a*L*^+uM!=fkEA}U)i~)?KN`7`j%5~Gbnncme&p4DjO>%!%(Sv+Hf~!7)}zY z@cfyvT&d~#a)Du(fF;AM%;n9(Ld`5JSBvum4-s6>&o34ALT#nE5R)^6nw90EzIX`a z=dRFT%#mm7P1keVPZ$zet;!(G`x_)$Wk~;{D1|{}6bxaQL7a`plG(MQR_zDFDFsQ0 ze04^F6s^V-$Pg1?2k-gDc?JE^#svkbXf>%|03yR+$@Lt)v%T)LD)xHQVaSyHy4|eW zEtmH(C^|1Yb~9iY%l3E{J3gbWGNcN-b!VsT`d%O*OXTj$5cMyClFOEQ0}5XvZ`#2o z_aii?NTJnj&-Yvs<-R6xs#gI|P5X~3vdr1t@mrL=kk!`a805BZwp*^(pj@-sAqf#m z`KKFBJ8Jl+RN331Lq~|(eVOQ68E}IC); z^DC3>#HEi|#3&DsR--(+uu^bgrNqKYd4-kIqMD*$6`Y{?lK`_q3~cfMgO)0NOIZoQ zumsVtk}5q!Y9!gPWZtNvXnaNb3r3DamLl@$BaxF4c{C);e`F*{Mmn)XIx=TT2#Jvi zQn@Nsibu{JV9_=unQ#3tb3Qpn`L zkIT41HeaP)pn5GtG-?>G<3?Dg=q=rhY2m Diw6KA literal 0 HcmV?d00001 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 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 UOSSq03Q`OkK{(U{Z>SsX&fc!R zYxFGJ>b*Mbn9mQaj#*cbVOTq#)O{bt!ZY6u#BuBdzJfW1;v4>!>rS9|Md)zX`M~?G zU|5V~Xp1nS%mb^=z@9S98-X9i+>dSUjzsok?c=x8??0LhbB`R~i61j8RT`4$a(}3I zu`3c$-I&LtNW*0m88oBa+;5mYvwqlWGn5;D zud3ydMoEK)WrhbcgjoLqBuW<=jxSmxuP?&h*o;CW7;x9-WDuD%Spn|^VOa7DHc9q=|tvT zN!H{}ohnUSrMNWCB;pE1$^I(Vh?DTvC%lJ}4_v4gHvRx?QejI1H7cUi2{6HIPB701 zlcqhDFe`UvsCq$ndMP30apIXO71wb?f>msxNSYJy@&w!?aE8FS>dxxj8Qea(HIUru bIPZ*`!%cZxs+A`suI1zjiPN_zO5ye|XOF_H literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh21mqICWI+;n|s{~#wvea9g8cuzle1{OvJfvm)`ME#t^ zymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC&`3r`2Cm@z(xT*4x6B-% mDsG5jdLVPyfSMS$AfwoT`WQg!7#SoPSQ*%WG&_*T#J~X-;{>z002S{cz5oCK literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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 zcmZ`)-%}e^7(F)xHc6LKpbZwHKrL;4RATGzhE{>nf`mdFz+zQg!kR3EU0gO$##hI8 z$8mi2$=9~yfFmRN?7!o?dhYI$kR^FY?%sR9{m%K$`R?Ao|NZ?Kz)e&XgarC6yOg!I zO4-Tz#}nh(adW?*e?6^Nwsl)USm45jwyR|;npw)uuWjf>N1$WOFb(IfKwC1kED)Zw z*7X?L5LMBR4uP(`Vd@X7TWh+#sI66Wfu6io)GEuGZOFO57vj}zTvpMK0fF{itx}}`7n{)(5Sl=50Fn-{Y*B8hj0?h$kg?9hq+EB1EDf`i zi$UOZ6<0Arcbxrg66ilu+9KDbbBw-@l!Bx{yiu)_2o*yZR*<2yb*L%Zw(JPr5a?T| z=-Q4xWb0C`A?fPSTD3G9LmFAx5^oBmlV@3;T3IaH)}GWkms(bEOJJlqlLf7~sg?BX zgtk6wm@Ge}KNGkfQ1FCzAexeO80L;{vzN%H5kacn%%jwDjCQ^+%lLq$CR@dHBd1~v zci3_sMnhv=3&J()EB7oJrejId%9=cAW!G!Y*`uuXcFQy~=62QbdbHJ%xQF`+rUb4u z7G7g=Dus#%m==gi)YXb*mfWL06T>}xtYQ{_;Y3);i%Rz1Z80kv;o^3chL}S62S}F5Yr*1&29$AH^;7cCOM#@c-s8~Z$ zAm$?b9)y!KvK?2UtN02uCF<>ZB?h@k6D0W#%jL#16%e5*E{%v4tg2nq?;G;V-OV($ z3t?0q|L`!sE^WL)0EJKd;`3kOEXz@FY)>B|@`4W`#P~0_fp>9^|Ed?jv6HhX&ZCPf z^5rRxA&#Bt16=qE@qFf2yz-n2UXqx*`2Z12yNTjnFcNr`F%hzO4TDS(m7gj<=ORK6`}pO3w|l8~xMW=pgb1nXfIufFO^xO;ien%Ucp_LGhfDs7+}IECHjc$Lwp*?gb%Uh zLkv=o$v@DYZ@cpgIx`7QXA0kjL?Uzi^MC(j>Jr5%03(ecYht9Y}fpbTAwDJ;#L#)(cJUhR0(@Mjl_za)>FK+mp6Y0$H z0lsh1^^$cQwK6`{CHNpZLTn}OMe}L@; A+W-In literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/AnySeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/AnySeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..ad1716813d7888f797e8755faf225b5293d59e8f GIT binary patch literal 1617 zcmah}+fEZv6kVrK2Fi$l%1yi>g|;Z8;2ls3-U^KvOGu2yW@sm6u*~2vMKQ)F{Scpg zRU?pS&Zn!QarMQbp=Dgh&{yP9AiS;@ zOWcn>NmqL_$CyB)yRmBI>^wcrrVCanAn?z+rX?Lm-u<3VX<(QxK{dD_!Y~!|6x^gL15`}Qsv=$%PqqjqaYw~n++(r6*&o1K0#uPb;)vQF0fFd2^;agO0FjJca&pF9 zQ@+hM!j#|nuzccd3R}l7j1X7O5PuTwa(KCiY2h2=dWg3a>Ujc=B(~9#_>R`cU(mjd zu1y^OOmhe)xVF;?xX(4o@G0JBaFP}Y!cd&TY3>sCOaS|oz9HJW_QEEHHqp0>-9bd) zVFmUhbRy&7cla0qKGD$6QrLS$F%V>W&qC{nFq#>mh5;L#PKAmS_qfLczkBg`R1Sh%-0_$UjW=kSwo6pRfZ!=`XkHkKCjoT zdaW_AyB(+b!qJdnSU285GD(_0Nrgmyn zS;s2H%acqZ7AZ>h*RW2Ugtsx}JyLw&LM6ZX2jDIh?kS*2MU*-PCYWne%pPIVv}X{e zcxQ$xhwgNsAf-v-sVW24aYKO(Y@tA!6Y$Cu><~CZV7;=lc6SDMKyJNM+{z^Hl&j;W Vx-HeJ6B5^Sbwc9wEs9dO{S!VHyFdT{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_INV_ORDER.class b/libjava/classpath/lib/org/omg/CORBA/BAD_INV_ORDER.class new file mode 100644 index 0000000000000000000000000000000000000000..29af5229e283ea96d24208f52e9d6ef9035e4042 GIT binary patch literal 960 zcma))%Wl&^6o&uFrH)gVmXM}Eni8NungUigNGJ%A8&cYkpg4F*G)+dq$o5pWgMhb! z4H63;fHz^s6CjQ!QKdk*EXLzAbIv#a{Aa%Y`1}RH5h@xI3`H4CP3cX|W`EGAn~i#F z)aluy{-D(!Xh<=XmJ_UZVI;iv+p#!{9O-LVW5~beZ@B45(-MKhUFSVNbp^v#s6tx= zA!WYkv>4bi!$wp3VZ{B&=I%_SC*Rj+rK4{JhP6kI??jIowkuslbh$q@ttfE(Y3;yf zNHyg|=-5I|!$pR@Wo1q2ow*_wWko!ig$6Dm&tNqB&z^VN!**-b>ob(Qf3K=#kwn3O zfgOeiD};3Z1&Ebyb{${zX5Og?hI2D=T{-5i&B-7#XR(-yUO6FI{0nla2{i`I6Jf}w zWNGeqV;GW^13QB<0~q!z|D`YOIlc_29~}mLJU32Es0D%Gq4XKDmYfA+@zjYMnOhQc zKkf~^A3B&un#NUV$k43QyGkI76#X06pzj4*X;7S?Ia@tUe#GV{Y=2OBm*X|H^Moqv zxI%GZo=LL2$Q5eoiN3_ zD^yu@r=fzB=ZWX4blkvA1=g{TJZX->I}7lTz$pS}s)xJxR&ZaETO-A-&hyT>8QfC0 UrCN1D>{>>h5IcRFq6F^z1X_K(kN^Mx literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_OPERATION.class b/libjava/classpath/lib/org/omg/CORBA/BAD_OPERATION.class new file mode 100644 index 0000000000000000000000000000000000000000..59d5e89b700aab4753680e0fa6dc7359660e7c77 GIT binary patch literal 960 zcma))%We}f6o!B2(#eD=Eg?;Tv?V}+G%bwSAfX_n+>inxshW^&<)&6JnoF6Ppuz*d z685lQ2V2-6vETuC3?70d;@F8Q1p;N^@f`b{&%giUZ$H0$1#kmJ12KlY9}I2Z9on_d zPPJlJEA`#Zc4Mc~Yj)ZO5)7-;3EgL5B;3Z~KpaHU_YBN2WFPaV+?KxG6@lcAe9reA z!LS(WurGp;G9NbU4D24me9ia5hv#zagiZ zP-ZY(5r%w7mS+Amh9O?u=%-L%0KG=Wmqsd?n#>R<#YC#})=z9$5u0IL} z;;vMU%uETou6jf7hYqHZq;U=gQZ$?Nu3|_dLH`!!>3fn^suag)PM0?0pRn*5OCNRK z8MUT&UQp#roTWH7&Lm=1W~h2YcY3QKg>mAMDiarRNrO$SBTJeUczFWu5ja8MRB3bN+6?Y{a_fWU cmd1HU+!QYB+fuDQLAjRFCn%?{P!z+}Um&Z$YybcN literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BAD_PARAM.class b/libjava/classpath/lib/org/omg/CORBA/BAD_PARAM.class new file mode 100644 index 0000000000000000000000000000000000000000..fe6319d7220c6638c07fd4bc5d56bc363be0ac7b GIT binary patch literal 948 zcma))%We}f6o!B2(#eGBg^;%N9-u&)03$X?C>2s}NGWMkbwZXzZfd1QbE#$~2zV4; zfHiE8Sg=Ms4NrhLcA`jya9Maf$3Ext@BjGQkI!EKJVenzf?+iXhj!o%?Rw{=R<&!@ zM*p~aQav<~V%WO8>AZIv-@qJ0{w06KZ5h~(2qkyrTYl;ahNVb{JrPEf z`MlL&U-S@BO@3Uowxqa!&_zA;uv8{k|V#R`m zRfb11gtYzzP)Zlu(icY~?^J}{u^G8`FyL;FlR;$8WHA+=%ZOp^7v!`76$Zl-QN)L2 zXYO}X7?Q=kUIqmQFzgopOIzBLeh^YGS`6l3Y??SD`$NH_z-P!h!6+Pvr&2X>VJhZ< z>IuCWI+RA5#ySjSXg29BC6Gmm{w>VYcY#)F6enoTmdeSGSp01{OvJfvm)` zME#t^ymWp4q^#8B5=I8rvc#OyR7M8IU`7UB=ls0llEl1{FpwBC&{zgW2Cm@z(xT*4 px6B-%Dt?54dLXmdfEpP<3K$cVXVo1L|e~sb*x5WME}r1Jdjuy$l>+F-|a>3jklVC2;@% literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh3b3qICWI+;n|s{~#wveJ4kk_yB(&Pv^+^Fh`$IS9S&# zMh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA2F74U243gHq)$ literal 0 HcmV?d00001 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 zcma))+iuf95QhKFp^k$~OGq1_2LcpGQ^4W|2?ZfFPLKjl130*s)h1nqMLtxvgMf$N zQIOyU#03w)L%^FL#v7|rAsjB&>)Dz4_TPW^>yOW00Nh4HLylo3j3#F2PfTm@w7qM# zcRL4929AaT!^X*!^Eyt1-+eU}M~Msr4GRp_7yKnRWoSAglH8MT_{b9s%drYw5ye#b ztk+>+4;dD%Fo+W#Brf-+qPY9LzyI#rr?(6X_hcZG`=q8}E277PiRmPf3?{8@m!V*V zheF3PDjLo(Y@SqRh5nHzQc+IAlWA<=EUFBKHRwOKyTfkhU~j-sxBuSNDkG0o0|sgg zcjgG`{R@yPU9x2$_NM+wM8laG6+0Yr&*fwgnUgIRlIJpJsQrS>>~Aq>zKCN!Au}t# zTf&fUY`Z1Y8NjgB_%CHeUj|`BH_>Cz$1}^sA(y`mh-DA2!wMf#qml{UpWn#;|d{0A(3#L9bBcP?F18H+kQI8X8F ztdfXp6s7rfY!D~qZDzc?iVvJ>RxbVlXj5Zf0S#)R(hQhlE@hZUgvnD*C(PQ7IjUSb z)4qb#XNAYAbX>+21=g{JDrru^wG2EYaDl+3=Fa-fIb2R|jTE;zt2^eFa8;d_desi8 PYbCWq>hv{=a=88zu)Vm9 literal 0 HcmV?d00001 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 zcma))U2hUW6o%j7qs!vfwn$rTDMhVHskrHliNP3Q!Gsn|;{u6SIHeO@v%AymE=K)V zdSl{+Kfu4^z47conpW}SVs`e-ob${(@0o8uzI+9+kFtgY!-fpTru4?9)qT;Zn~i#N z*n4^0vbxQdh7`lr<$e2o7zwZSZY0hkNBSBT81irUTW&hiv_;@>*ZIItT*0s$s&F8J zkTU!2CIdTQShS=cM%<4E+?|MY|NGNowYr~XSa|ICPV|IfwcJrem-}PWjsnLY*LDXC zDNCLT9m~jRSYaq$R%S`>%oVXHJL1tKG;j@h2E*z;Kkl@8t>*Bk%TVh4y{eW)5^Dww ztTQ~EBc%N=K&*7B1EH1$oKQU?OTL+LYQZ8-@>;+Yfoapj_( z2XSZU@zA+6(lj=pAw#oHk1ByIQuJ?Nk-k@Hr9p9m=4@pz`3Xy(vHDTvU60q)PMs2%I8trm|P4&fyNptyhX$ndY5yGq|H} UOSS5R*tLv0A$IyMMG4&d2}7j1X#fBK literal 0 HcmV?d00001 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 zcmZ`&ZBNrs6n-vjE3M_li3mef7|1qs^%Y+>4Pyz>h|UOE6hAE8){Ki?yOa*&2mMWo z3W+BE0DqM6+_r3M153KwbNZa;KIb|2{{8ps4}jZvB4LPO)^=K&-EL{+%A56)wr<;| zpse3bI&{kYiW~yLB2~#SPqK zP{kH~_h?Ksw>THP42zKtPU8_HuZa;dq%zq^!O0v6l&F1lxJ#(ancY;nZn&NMcpzbw zA$>+Wg9R!cVu3vLcIh{iusu>ba1m*}UIs}>r?O>torbZ&#hFirW|kLshprl(W_scn zLQ0$vx_)#!pwOD2=p0mvM=4q*ocN9X#@M?aawQ5OE#L0cR=TlyfUb$b=|;VJ-4ucYsdr(aFd|^XP7QP6~;6 zF9u?VNPVT)cPBwvpfk{3EMQ@{1L2FP?MYe5{XqH%_xj!WQa+QEFK0-3M5c?*3f`v0 E|1=I6)Bpeg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/BooleanSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/BooleanSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..9bbafe13a44ac0c78772aebf44a5dc834c52e082 GIT binary patch literal 2082 zcma)7ZC4vb7`+ohHrZ~Q23q>2HPq7Pr4s8~)zm6bDiLU~q|tyiZjv=w8g_Bn(DKpm z>ThX19`J~#`q>}l@y_l-$QC*MlG&Mg=HC0<=b6br|Nij;z)hG6A_A9fr(Lku+l86( zgXyWlv~70{-C8z&m@~Q?hNB=VaC%MO(hFVPY8T3lHKXYY#BQ6G>E00-%4Dko(HXmC zs2D;*!!Tk3$pzCg?)TOkhEvfST|;1G!EWl^s_vL_9xO)Pj=3q2UN~MwQ9v=Cx{fZX z&t*c zJ2s89V@QwEvU=%8uRWFmbe!CB6ArZySYa zy)|!IOg~~g6}TR9abI^RnwG^(YtwMpFXxZym(`VQRb{z8l%hXkxibDr3PlaK@d=yA zKR?ha*TPUob&7W%Ov|-pK{~p;EFG_ooU`kgN#=iHO4dft^}Eh*>ASe6U{>JDph*Y3 zhYo1?9CHE*$x-jxR@=LrB^7t^g@$=7u>ZZihJVNFy5s2Eyje`WRFbNPO-V0sHDvNp zY`hRl0^@C~7rY#@_nPdn&BBz#-7ic64^UCC%=R5jp)w=Os^KBXth$fufh@LWh~AH6 z@0RhkELTn7LfF9|#>?V~W4gQs?88CEgEY!Lw{Npw_eZEJ_?B1c6^>~54!qE+#}ham z&Co#=kI>Z6l2(uUyCJV*wnxpTe& zFMk!z3LFK;;oL6b&-oF7%3rw++`x-E zKjVTAqI#Qih@<2IjrqZN4X-mMP8FB&1|bsiJqaKe5#<*!`a7=d;M%kKJ>+U5H>hs% zFK;78=9>Y*DKDi8SE_`o9jJ}->s`D@m;~O(2Lbd$MoSBldl;+bcX4YmcVh=1_mlSF zIy_`D$u$oy?H|D%PcskWQ(Piof);&7^$~teVLG6Y>ZKtm8Zz@|bRm}?%D>n_Dc?86 zCvmB{N3g9!#-y-_`#h|$0{naMNcdz2(0NY?aAFVT+OPO>7hm;3{c`>2fl2-ZR8hmk46q{vZV^>+IUum6=8TPHNni zsM!bbLmAI)D+9zB(%as{Ip_B{_x}9#?F7IQ9t-d>Oqo_)Hh1cBcKvxKEoV$qR~4h6 zzFjl*nraE~GYoDk`--e9MqOU7Y^zmUK#*aky>i#IY^9>Ba>2G#Wru$<1ojoZL2uvY z21BoXu&Y+h8tv!ub)(@y{)z6%Y0FX$ijVYr=eG5b_AY7#~<#vs~n$`w~T!)U%+W=g~$#yRu^!+5NFPP`NX z!#N2dhztXH%}}2;b}Fh>bPWmT&8ni86iefKFX*?ov^|FDj+ULXAV&hR%?%e~PJ)15 zPAMwkA{H1zd#asRjk>)>R>gAMu|Dpfrs!pF41qF@rpB<)$-X(foUz-m-3g}RB@vgf zDBv=~Y`Y`f@+HW)LNqu;SvQTkGq)V?aaF=KTxSS7|9L)_6+UhTfi&eDx&e)&Gt74w z(G888QRYX7VImgqC}=%H<#(25Q&#Msn%5h4yXa-C2)IY5^dF*I3nbj<=8F!BBU{8W z(h@RU@Q@qsP#iQJM22Vw@21dJ1X3y%%!XA}S2cd8Mmo>MBEOz=p~-K00`SpFXM-+z zm>)xW2Pi@}hSomX<>03;U?_2n{=|0-zWRdjF(QYU{7hjV&eIyEBw&r!G?iy){{&MM z;Z3L%7cfn4-gd@ot5dFzV)K8uO(YL7oA`=JdS*|KFn@|OfgsfsT5w)q3? z_VnTmcrO3?rS literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/Bounds.class b/libjava/classpath/lib/org/omg/CORBA/Bounds.class new file mode 100644 index 0000000000000000000000000000000000000000..d3fddac0caf3712d4076490c09ada65fda716b7c GIT binary patch literal 426 zcmZXQ%}&BV6ot<~X|*6|1vb6_U}9rjDTYK4SB)m3-4A6_$CM74w#L_TMdHE-@S%)% zC>wNhf98I3?#ccB`TPQKj*f#0LtE+CSIgL+JUotX{IM$1MdrX_IN6;%XF^ZkBeBY* zN*U~HnaX^`Q0?_Y25X`g!bKJP4b)&Wv;vum`(im4`iajI!Qcfd;z`K0H2wC`%3oy0 z&<%E%l{SV9onG+D-?*RfH1=n?mT5ffhi1{CS=1yWTJX#`^8S+y?o1Ur5_i%#sF$*5 zMv)Fc-suoPg(~t)(V^~wGNW7@tg-j88M_o+!hlOyxI&$(MhQ_qpw0+1DH?$hk%qMg er)#wSD%=t|-6(WRYO6pzj^L37!!iA?p#2Ndc22ke literal 0 HcmV?d00001 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 zcmZ`&X-^YT6g>~x4jo27M19K@^IQ|hF1(9^fxIg zB%1gG{87exXQtZ(noQr^JLjHz?(+Wr`}GIFEj-rHCoti9Rnx6i&9%at{HmEhQ1&y| zso0)|n83)cwQre@Rj-t$qHaC@LTQz9jb8ZH zLBn2iD|SvGzHd2A0*k!Bz)IPXb*Y{R^rtgLff$1{3=7Ox>&;M~qTn+5_srLxtVt#J z?G|4WXK_x$sK8hx;o1vXuNWA^c}k-`wuFsGh55Lgjv-tyFo8*d#7Zb>GJP^QQ%pi& z%7BIef#D5Vw_i1D+qSnAv|)6^En7~}@+8~7Q%66pFuy@HsvWr}kcyCZra(=KrSn0S zIRi=P0%us0w474dy?BY*UJ+P`YHSbYdA-q8!E|z&qK*s}HDm>5dK+~T-oSO-5YRbA zt8p|R8dzL1tH4}D{7Ec4>k`k7YE5S%0j&WNC{g<4NkypiskIcEs<)VXxUXSZVD^+^ zx&sV6z>L74pQTk!!u2U>&mzLwm2^{(N`2F9dS!cE@}duShPA}Eg>DvYFg%N`2VrqD!{vl30T2)7|tt$r6`*8;Bhu z^_A?PI|=dvjjr-yA&bCma9=pKEoCwL1G7iC+o>*)@|mQ3IYr7tYC2bz^OLUp2bHN3 A^8f$< literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CODESET_INCOMPATIBLE.class b/libjava/classpath/lib/org/omg/CORBA/CODESET_INCOMPATIBLE.class new file mode 100644 index 0000000000000000000000000000000000000000..4c8429fc9f34cb3e956199d185aef591e17f3932 GIT binary patch literal 981 zcma))%Wl&^6o&uFrH+G3OGt0@LMR2&6o}X$p&+CtF_2=Cfu5Z)a zv|YQq*J?L94|lh_t-50y$S|y)%yZwyi3sdBeQ}t0GBhy7P<+W>^QtGSu82JDd++$Z zFBoQH9ri>NQ|6OalY#9pOgCg0Cp=7g+#ibU$Hk)$-`~HA8K!P~p_klYm@7M)=<{$; zb(6>o2er)}L#81Qgo#-c44h$DJE^Q8gF{~^QEtMMVQk?niVT*zk7IZ3=3cwQP;&lW zRm&rdc?%X67;a7w()t%bDV=e=P_&1^zKFUbGYXFEbHB&QATnpXm`PrEbn%T}krR4R zV=w{{$9zD}7Jm1KAzj|=5W`houWrY=hMj2I0pkc`kM6EQph7i{}!fcK20liic|E>SGLlhG4lm;pLE`$ zTGKoCsPaCRD4ri>5^Q1z7V^h`raqr_uXCf0FLgH3FpNSYORVGQmPI78rEWozZy1g;>ro@;Jp bly}U{;gY^B)#?+JYdL*_a{4kwDO~vp)=hwn&S%6j7^EsuFKZ48{Z~O=!2RDSzS}PU!^4?CvzXi%}oJ z*YFAS#>5LBz*q4djAsYZw2FT&W_HiaIluYlJM-1gJJ#Re&=l%39t2LC{81(d=qmFxmWx(uS!+zh(K~zzT?NPU|0-w z*cU-anZ5Ql1KVYoZz?~GxF7YoI~FM;|Ng`CsQ8^>?uqne^ps(_>}aCP{ZX|O1=1hY zHv0@lQ=JG4i^!T-Vkllz)>Pi9D`HWdh)3hl#uelkY`W1ir`2t34-O6)O3vS_Y8fQ4 zV#7wB;n55s?SBDcr3;Sq#lhG+7D0DnM%Gb7?)EtuMCMEvjp(He84AB5&-I|jV0t19 z`G_3N{_YDyvb@<(qr?D)jq-oVOL@{)0kxyeU=1g}i4*ETAb6;JhD=9|gQ3`waUYk? zzljHNXXx?JxinHVR$(GdUyB}90vQb`Wh?m!3!kz4QRiKa*Yr-E zDjT>)@yaBVh-(zZ`vt5MC*~EWyvLdkT&iTR{{gs5g?k!kQxT<3fidRB6thQ|B<)#* zS-UqwRhRD6(~#06@l2J4o4BRH7B-M0%`rGX1$PN-5I9}gD%_vJ9gtfuG`BLzJL9Ht WTi=#y^$D?SX?;TM^c{*4xcd`}?7M&f literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmZ`&`%lwg6g?koE3IWiM1KC{rUso7M>^=5}0z_n&H%IMq%^K^EIQeXSy#O zyK1=#Vgh6P=AmiWW}{|o?(SO^PeDRpwzsC~xSqLdTgH~>T4tU93M9O8g}A6eu@}Al zsc99Qs+AXrADVWHu%aL^vRbiaLwZjIhBMicK#V~OQUZ&$Mk|!(QE`Rx2gYkx)}<#8 zty4Y~XK_x!xWGiDVd0f*RCP??yny0;2z5;&6XGJCZ8>7$YNPRPGGLrr+#=H*KtEYjSkTr#P^LPUE%65e!~H%FspvXO$*^${ph{^&}NP?>?FY_`1KS?=M1g8KsV17_(i z(D4v+0-E0?oF?J;jC9E&y4r(uGmuDa%W1h4YhCgsPjyzc!e0t~RdjvniDL+9z7_PP zk$uqUOi*+NI>nHNNR>%T#l9%5yOUG#&81RDrV_qf;oD#fOTrXEi@*`&HTiChb8HYdrK@kB>tVxG#Q{n zCKk9z4~w{lrI2$iYMV~Q3Jjm_rtcz4T=8Qdc7*g-iUVg7 tlm(ow@nRv1AXnKJu5C+M&i%mrG46Jz3#5D|DPIOic|@l3WO={o>VG`@5KaI9 literal 0 HcmV?d00001 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 zcma)7Yj+w|6y28q19VzKQqxDQlG?O9YOublQmY9~4ThB1P!wau0Y;dV%*4r%HXr@2 z{+8C|N?gWO{p^o&x$n#*Jes)rg_*hc+`aeN=bXzw|NikDzzrA*0s_;P-OgE??OdUJ ze_=jX=xFwu{=<^q-O_CZL4olNZAZ&>HM5;7H#YR9BM`o2n1*v(U@Voc3Iq#QOOIg; zQ57MC1>z;c)bI5+8@gT58eLsrqGUC-ZdJ1l`Ry+TosO|BaH;e^67m9y{=~60$$Ks} z5;|}0=F{ti7!sINFd>i_hT^`8vv`F9e31H@W9!b7({iYZ)BaS_u3p&hN;W5R*;f`HHjCPx^gWbSlM&fCRgOu%RfoTbEm0jSC_+xZv- z-cWG`vozn?-6G$`7gDKkT^5GX*N|3_5||ox=P*J=5;F?2EL@*z(Y7r+f;Z{d6xT|1M;PS9ZN4x_E zRD6adfvDuDcP+E+&SWu$JNR71GD@teyVvAg*EQSLb~#YYyI7QxLx$uQxH97Kaa5dx zRe_nd+4HXo*?3Jh*miDS;vQBdiu#r1KO;tPqnHA?zU20-ej&OTn?AkKE zl7*@XTp0Dvk8x9YY#R;-fE_qYca%f9=kyKsD*h041>bUrUgC&~@4z{Zxjeqd!4&O_ z;UStTTGHfkZ+Fn;u;ucy*I!B)8P=?x-PG?I?u9vY5zooF49;-u$9Q!E3g39s@>k(k zj!(g7D6@~qGrj~6*9j4ocZd(Uf*{|3$=`8#4_BWqA0ShkxK4F*f4LiB zGT-nC&bTR6xKbrt?MQ8eZ|~q;!bI^N-uIy&Fj`s=KfqKiyN{bInd^J_sGqb4*Wn?9 zNp84sN$&`5yPA0zpJ1ARQCjpV)d%=Cj|HDXs+Wc&Xh`ADP$`og%Rb*jG21uABXOv? zN3fj%V-i@wJswtA0sbGjB)q15=&UOQICX$>?N@xUk1zY6Ub%jB!6bhaUt`@rxa@0+ lXQY&Gd`XSbw0~kkKQrxL1{B4i<9ou%v^_-vZGHvN`45+2&lLaw literal 0 HcmV?d00001 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 zcmah|dr#9)6#w0^u51>V17U!uJSKZ672i4pM-`balDIiz_+u$s9mUdO=`ck7PHF@a zHGBX+l=0lIj&6>arMJCj=bYc;-23bI_hSI_cp@UeFmBm(+1jql%G!(NoUClBc2Rq` zY8f@n77=8KZmD~!Y^Y{kUfbBxs*Z>d!(@Bej%7RQhM~zt$JW$s{>dQhsYZj|fpvwU z*V*6Es#cBm(}lX(@bLadcjcUItNSHNQYb0Q5L(bp-C1PlNv6sSK^~5v2Llq$KoW75 zNc^`?7=t(`Vu)d=op4Ecrkgbh!x&)@owt=L31=8CbW6)d5XC6R9b*_xcF#$b!(ccs zA&dyaKtVUP=Z)_06*L@(!) zkZ>8Z4B=hPDQITh*(8&adG1vocTQK0iZ=kELPM!B%yv?5jV*8PG@Rz_vZ-2y zD#KK}9o_OJ$hbx{I7G#;%(^?VJnwN`!VTOcGu;2U!xfcJnH(oUd6%o8b7+Q{4hycr>keflPZhk@aM~3wU{S;aI-I8{_7_N4;?7506jyTu3&=@W z=4zwOuwQP-a^V;f9i&?-{q0F+q-ZtlstH z^cE;WSA^C++T{_XFJLfzg#PpoL|=bJ>M&0?Tlu9uIE5J9JZGl^m)e4vkvB@j)h9kO|zvZ5Q$m z?s|~2yC-LP>(8X1=~{@wfa!BeXgPHc_r2nh$2ab>BtNokbRV9$(@!G>KF}CHk}IEl S^x`dgaVU7?(s}IiSos6puR`wt literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CompletionStatus.class b/libjava/classpath/lib/org/omg/CORBA/CompletionStatus.class new file mode 100644 index 0000000000000000000000000000000000000000..1ff0902f75d0cba257e7bfb0c13efa37db895e0b GIT binary patch literal 1772 zcmah}U2hvz5Ir~kjM*l|Bq?>i+=Mi?Q)(!bLK6zM;}jPsPUFE-3ZU~%8nMTc4 z4ZEOL>YC?=uXdlg{(4jw=vz)%5&&F`eh`jEhr%DP3Qdaxy4bzALzxC??Y~ z&S_7bs1nW|hkA1SSplV!vXm3(@3>B30WSgDT20{G?Uz^cuJ6jp1pITQif-ukH33&7 zS`cuj%(52XKw$;vFu}TWt?%wgCR*s_mp2p)Vn|x&6`W~W5e2U|t(bzd2oYgcH?*aC zbwjgOCG7&itXWbk1(nA{-w6ib!bRC=RF->7!7%!X!TwU`AU?H?a?>)a>$+hJOcKS* z=JVk_f#KtnCKL1Px#jdqVl|Un^5K1fGaWhQZA&+{l6AdO)+|4+3WPES8Pdz)Qd@~( zNpQUu4&VyrB<2qV1|!*%Rc50Fx#J@RA0t8f)SVs8C<}~8;3qe?TF%Ohl!AGrc_g;k z#6xXI{+q(RmoewMoRN@>x!R|5Q*j(VIf)!Bvo|c9voQxm01bSQ5w6Y&-RJmc=FZh$8 zB1KVE_cpZd;BA2k{eQXEooiU4cmjE|Zk4nJT`FlX)jpNHb0`<($owg7(vhoaqKS)v37*Z#UorP20u8&Z0G>j4v;*= zLUty2{W(6F`IBjqA1^*-njC11Cj;DP5&Y9m-^1V3v8KX1@)q8K73;32~J5tI0d tG(SQVKRewOR%YE64MHlt)id7e>4`l<{7Ji**Gc%LE7{XdzT@n=`!8TUZ1MmA literal 0 HcmV?d00001 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 zcma)7e{&O66g@A$b`zE#O)F?oY$;$;w4o@d4Wen9+Ss&#ZmmSr%rv*`SP$ z_>q)9D&vfN06vuCd7BJrHtE1W@4dZw=iYPfz3=A5fB!rOu#CEfh`=S+Yv$Z`Ggqwc ztQK-bx7}$;-*z3-xBOmrL$*57(-0Fl^U!)^uVbExE3Z{n zSi>d7YjPb|mY1%vUbfSf9tqu?l($gmu&jJ`Po?0pfh#IQ@kdsx$7)X@V<3w~ffIf2 zgOtUnS@i@H;BxaHSd2UOsu;ZKNsDUN!wfsF=c}H{m7Pw{r+jI(U#HZ|_)x=jfs3O> zo8->GM@m^zF&LHks zfs@7R)}2aex3pHTl}sHQd{aZyc2&n$oDW0GR-v|9N}_^o4O;@|noe)f%2jWFM|Ron z4PPD@sNxPwWU~1=r(9?J$#9PGg$wK$xPW(c?2=+QvnlN1o`!G6CIG<(YWP;*RD*5c z%er)W?YiF(xSJV&e&d$=? zr{XB*I-v2y>C08)SB|^j9$)+$`d>Umkm9O-2HX7vSEGM{`$>K!aSEqtQQ+&`)jfUj z5NDp@?4LXz#jhU0>v$XQ1bAkBfL{pEKr}rUhHeJXNC3D9bx{Q@(0yQAyn2XBhj?$u zI2HVG4?4@ESfA}*#ML0G;{858pqnI?0?}dq*Cy~k7~y{dHv>8!W?n6X|#( zbZ+BwI#G1K7|Oa!7*D`_;$IYN(R9hI#nNAzwRpO0Za&54Gu%y^O!e2pWX-Zt lz;Bqwul!?r!W{oWy-zTQ-(PZ{VcqWIJKhuco@)d@{0}nU-x~k` literal 0 HcmV?d00001 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 zcmah{T}uK%6g{KsN1LXZR`vzGtpzR7Q&>R>L9i%f_!{FntRw4etfSP=>M7`4W8?D=`OS=&$Egp3S219YcC*1bA z^6XZ3AY9FmK9fr73x=ds>o6FNpeIZuv6Mp!X@-I$m1vHKT@l{#t}hr$PT+FC!$TRJ zXP1WV%Mrtdvv7EwA?HqY+$%n$CS|MU{D^7mP%1BGg@S8w@AjqNV>q;alWKpC$oGUV zsCdHtu^=&(Mb)&U=?VQ!I$uD#`G0D&BO7mXSxfnd?W<8you|d+CP&S<1*(iWxec5HiBl z!3(m_lq6tMGzo!I7^q{JvfPwJm`C)BR#1qsh}9TNSc|cYN{s8+h;b9u7`L!ZT^M#K HCb0Vn<*uqX literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ContextList.class b/libjava/classpath/lib/org/omg/CORBA/ContextList.class new file mode 100644 index 0000000000000000000000000000000000000000..7aa694f06afe2bd56dc3b5c483ebd73f5aad87aa GIT binary patch literal 468 zcmZ{gK~DlP5QSf1+0_*V5me;l4LG>bE5<~KCL|k4#BeXW&04~?X15UjmM0Sr{s4cJ zaf&8ljF)-s^kv@HdH;BQ18|O(hXO-WXGx&bBp8hD``5uhDnMfSj_bHPvxb;Rcro=JQE zZaU^s<_xXyUw|G(@Hl2@w8I~avB{)LdN#Tg>4hR90vQsBG$OU;Vdt-%!M|BW;>k#@ zau0_L_20RD8Wj_dn~78}3EH7Kl;Mx{B8$YWv>&N%tmn)kIj5j_S|{l51O%6=N4J2K z*>3j*ThDYTz^7`TfeY+VEq@tEcVSn(hss*3*k5Z62jr-e(;;n;;|Rx_9XdDZwSbdP D!DnFl literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh4ORqICWI+;n|s{~#wvedp4mqSU++b_Nzk27#=^vPAuy z#JqHU|D>$cWS}S;BZCO42AB*7BZC5}OhJB8Nn%n?s=lX-k855@W=SPG0~aHMJgO?F zh5iMpMTsSu`FX{R3|ztarA5i9Zkai$j0`+b1$rRI0Ig?aUfJa> literal 0 HcmV?d00001 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 zcmZ`%O;6iE6rAU{acayrp-}okAO{DeS{yh9A<-ZNB?5_5ktz<6ldQ}l$Bs6e{;qNX zgaki;ABA`h7OjJN*j>%OnR(;qeSErm0I-F!1%u$mD)8c7;MGpgzVCUpp;98!ha&6? zRc@uQp@(e?CZUvN_hY5~b|}2l_ND0Pqh3F>kS7$gwA6)=-;t5jyM(e^&r)8U_C+WH zUyEv`Nib`1SJ=p5!hr>ckaH_d8-ytb(PbM?66 zhfQC}1gDp#zK{dL##o5|e|(it_}is4rh6Nnqqk(2TNK^OdHvG=?R%jg1ztld83k1f z%Y>QnYa1*0Y~d4OB|Dr#Z zgMr|b&c8nzt32QwuXp@R3_dLscz@66fU&`+y>Y{9^BR*^BhC!(Q>+0FVd4jKk1@+= z@r8{!%rjyg7Eoj_;>w5AbDI^!wF&bcOTTir_}KWv&_H6EAC=BVX3h&OH8VJ7!YW~n M&*V+;*su=!8F*EyegFUf literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CurrentHelper.class b/libjava/classpath/lib/org/omg/CORBA/CurrentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..b08abfc7a7ef62d2ba1da06946c228a6b10a6b76 GIT binary patch literal 2402 zcmaJ?U2_^$7=8``7RaU_G)=#3P100>v>~ZqO=wdIu@09b$}A;56P zvbD5T*V4J-`bsvPYuPq8otxZfa9cu<;mEf7KusH}siljRZC-U4!dG=uca|AO63H?{ zFlW_x3?qoj2qDaHxS*SStyQmZdqb@loFQJYs;W^|ZC&);!JxCHHyO?ro*^Ma@Xk(y zAWkQezJ(h!E~qn69K|sSafTC`*>WQ(+Ld+QbZouq@S2Qq9A}7@bW=09W0?%cd}tJY zCI*6#aT2E(0(y;MoJf1|mk7<&G7+3%klakga2C%?ILC0*8wTOYn8Xw@Rc)?1T+vO3 z+xOKfSDY%ta$*p9aAauA#AlQZs}@36{v9a)BuqBj+lFrHE&$vYBqlv3~ZmF%i=JG-8} z6~P;1-pSeEb>!;}}XVcCv2s_vQ3*BeF*c@$*a!WvO18h4Z$ zH@HTX&2WAo>0N+TcTq;dZH9!G#?{!lZe|p>TXI^J7>ZaIvP%pzev<~l+ofn#wizaT z&bfv%M0#?kd}{{rsCenn(hYEJD0kj$v>dt;xLSWkrQXE{67Dffdjsz>_Myo5P*n7& zAnulPNEbAegJF{U0I2Rl4{co-a($@mV$132_JO+jZ{HF%+?OD%9U{CRM}{Wu4Y^I; zl^(X*R16nN>xJXg)rny>#Ch<2CzvAEe zS)X{iC*2L7Q|LncV(K4+*ly}?EPYSxe_?4iMXC4=R|EI~V^6TM8DHJUjX!BBzlXOA zPf*;P-N!pUnrX5G_yR$ENwIxJS$>2#zQ#FxLr>4Ql;!XG^00^vyi4onDgH9vBRNsL zk4;xre;)2UB@aJ(@}S@&LW)8~#oh1mr0VzNC-UUyJ}qH#NGAm0$#&b506wN(00!#R Mir1w`|0ZJp1Nb93VE_OC literal 0 HcmV?d00001 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 zcma)*!EVz)5QhJ4ofsR_mK0h@DNtys?LaKVF;FOx3Pll-NR%5yPO=KFoH$zSBHjul z5D^C+fQLfN+9s{7MC!rb-SNyf|ICj6{QdPCz+*TnmKe4IF?52_(5W}yy*za4kq~?w zz7G5W7b+BnwG;Q$b$oX`beg>r-Vaq28FsQ^lR$)S&*x4n6xC!u%0;xvE~lp^+g~y85EgYe@zz^G zB>McwlS5g`On6leH~kAVf%FvUVR8uQ|B!o{L3&@N)06lMS?!-NzL8-GEA-ZB1rDI# z1y*Tikedu$!&O=(pp*iR$W!|25@1(;VEv4;Ldk(wL^-C2H!*1=@lHuH({++1wEzGB literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/CustomValue.class b/libjava/classpath/lib/org/omg/CORBA/CustomValue.class new file mode 100644 index 0000000000000000000000000000000000000000..7e775ec43ff0796ba578a40c877a72580d4b1126 GIT binary patch literal 192 zcmX^0Z`VEs1_nb0ZgvJHMh40JqICWI+;n|s{~#wvedp5RlKkAT#GKMpb_Nzk27#=^ zvPAuy#JqHU|D>$coR80l>MJ0(zIjQhR-~u}3nnN9)1`YUnbHXzvwxc1#i(zk zHzr>A06v9JVmv#LCQ|%!F*|!^&iTzZ-7n!V{?|C*jFBHgOXr2Gi~xz3#O7t>&QHW2kigUR5t3i&YaQ z))=175z_t_AXU25k%8!r{ZkS3CuS5o;gEYSCxghG>7tgL%a~zj207D)I)m3>XSdIF5$mg-lynnvwK4 z?GL>oI+{j~#s+lcX*TF}Wl(@d|0Wjcd!1GeDbCPbsO@JzW9bW4KB>H0>6+R(p-LC) z6t7M)iMUBox?jc?aZ=v)l=n>Wforwm&L4npsBoZwCKXZY6qsUePcg3ulcha_Fq;qO zs5+-RNd>7)5-(L5xP!Y2Y+x59(wu_VrrH8FA@ZcBPS@a5Qbl;2MM`ILfSNKT5>~=Z10O+973gvgw$b8Ta!R$&#e!4jA+L72z0eH< zkDn%RnIUz;e{#p?ot9IppLmThfvXIeVX!NLkk@_BIpluNEAlgsVN$wi9`R0}VL6-I z9|j7Yex6~5mehstJ>Frsl+Ar(m?C52m`NS}%U0j%TpDBuo5emo{^kRwNRHJZ^$%;-4B-OROv9ZJ4&G~9M=ol+;9I< zhc$5brQh{RqA7Q<8jEb^+_1@#oV2kNVbm{%+qAi_<3Z}Jv0zPg-sp(bZDT=K^`{Lk=q4K? zx9nUGMxwensy$7}SaJ5{q#aQghdSSIvEm$z0@FHGa~}-68_QO~qZ}-e1DoHm`Ej^T zoUWgV9ZS5TE~mX?U1NPo4H>I(neMQSCSB1B8eXNXu6Npc9{1Fxl5e5B`0{f_KC2n| zUM4UJ^=?ifNji-g(%DGoFi+zY7DyK(T|%11%aLBgbsDckdIPI8zKL6;Yq(8%C(;bo zX}p0=(k*P0?qHWRiyY})+#|h@2c&y&NFT~S1(o+>JRyCGXQa>Zg7hU`k-kQr^bOvU TzQcRc4=BhAFcjtY1WNw_qxiHC literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DataOutputStream.class b/libjava/classpath/lib/org/omg/CORBA/DataOutputStream.class new file mode 100644 index 0000000000000000000000000000000000000000..f685386b9dfc8c85398dadf8ccdb3a9eef41ad44 GIT binary patch literal 1296 zcmZuw*>2N76g@75&~!_e6hfhd-DRmMI}|8c6e(4uNCfqveW)g>NnN>_$gzpSr}4lC z@KK1FJJ;$s;vqh|=iDv#-ud(Q*KYvZ_>#kvgAEz=JbB*pYOSx;idPr0XeIF=iQ94H zi}M_&9Td*Q58;KP-}73XGrt?>aK%A68#$0sEIOg@9f&aTt77Oom>ESu>>rE%*uk2+ zpAD$=$2*$`4(5$hN6OF_eFxL-p{DbO?w*QBb2ZJ)8g67rwq!Tsqq+Wa4YmpOO2;9W?PztKouI=Qc@>@^xA$Dh%or6 zH)*H*HXisjd7}Qz`egl7B6l8;+W4`EBBAzPa*zJA_$Cc~#f+0zpGM@|qeG(?jIP&h zi8UiG8Ig`5RhgrcNI8|Rnu(w*u++9umwC4tnLE(?wj!FDd~`FZTI4M0g`~XdV$Vda z8jnc_Zk-Ov3TkAUGZ$sabtC87GKso=BhcqooP5Mvdb{eyI=G~Mm(}Ypt5==FRp{3} zgFN9Z<_PB*7qCcn0ZW9-j4N0ryU4hPYh+(%Ea3*(>$pjH3mb&D8Oyjs_Fdc~ypIQj z5Alf5#U|lnJRy9FXM|gf9-foEjTeM38DHTw*>4!%;vL!V89!i$?2q`QCg9++`c7f@ EA6LUgumAu6 literal 0 HcmV?d00001 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 zcmai%Yj9Op703T8ubaoogS<(x4OYtqE4L4;D72af*w8$XKoDCEH#aBgftz!~&AB0I zg%**v^hJR}AM^>d#ajC~w4{P}Hi2?MqxSW3sX;gIrL*2W z#)l!NR1UfMDUP(gr&}PK1=U?Se=11(!B9F|a7!OLbLjkMpQk<(ln;;Y8TNBNyGl5jT%CLEVtp_9pa=_%7t5rrBI@`X%b zS}G%#?S3?cs%VWH{lbKCaH6rcm$ICZlvZgTHCMZs>9%6*9+^Ad0dpP1C1I8-b5IrwR_N*SN;FB>2 z9q2T4w}UQAyB%~}$~xF+$#<~H(xij$Tgp4Q-BRG7$I`Te&6Z{y++pb+2fdbl>Y&fk z0SEn-?sqU?>1PhMSo*nxA6R<8!B$HTIT*C`u!C)u9(AzY(&G+>EIr|1ho$2VerV}Q z2RkjDa_}Q`@;dZ-zT00gH({HtclEuwOgcN1W({Qh)5b~^<5{zH!)Ak?b8shkb4!A| zJsz~O^l+4*X;TSx&wF?T#`3v|Vb2c)E4j)4J7*^BIR|&)$0kd!I(QAkJY8d6Hao0o zPv94VmZdkXv!i=>OUKrZz65^Bhl`b;$DYTyv*2Y%-F!KI#dF)AYiGq<+iqssUWwQ7 zmRZi*yyeN>D?6@VJ!CvW2N&?JS>NQOYYyNFvy3a9qfyqI9v2yROx|zBqrdz3($8;OjRWZGS z`b#l=HT5+y-A=tSroT*mZA^cK`l~U09rdc1PExOq={3|}i|OmBzaGF-dlkLeB6x5o5s)ZdNi?@_bfFgMFhwNcAjqn4FM zE$fV0RvERdF=|<1)Uv*)Wpz=@+MXctSM?)QPi@YsAV-#%UYtAl|(J; zh+0+=wX7j(SwYmYe$dvNVnADIZZB;q%JCBn^Q7(Kx6T|-B!6VpWysFrIixSZHCUoJ zZm?9*Ggzj$$6!Kn!eF^#&S0JO*sE+^rj)HuLAgTx_bFE@&nj0b->d8>?^mu?zE8PE z`Ji&G@*(9q<-^L$lpj>CS3aWLp!|q(qw-_QP0B}=o0X3#w}EPx0?G zuMhAsukRnwj8Ax3{*3GKS02Jox$XbtOXG7E@PA_rUm!2VI3VSCSgLVK>TyO|@TRQ5 zC0U8zN)msRRro~K;%{;@{vqq|FS%8Uq)V!#Q)=XPX_J1rR{G>RUV*1|2K>%6FG`z4 zzVM3p%M`Df!!v8HdJm@;=UHPCEW7w!I>K+qjP`G~-gsUQh&dWB=+PIvh?k<6DOzF7 z(lzhm^cy;;S$3Iel&pqvtV0y00x#nXTXxZFH&2=AoD6aHW0bv*R|su4y}jcy&hNa8 z*LT*xF^4zXF5;bwcyA8B{)pZcTK_I_YG#~fMu6<+KL-am?Sp)s9pbm=;n=uIowS)e z-$iy@&Pz`-{$98I1IPuO<*>ye+(Fus5aY&{hVYCn3$e%8M2HDv%R}Uht>c5e3Vbr9 zz()mziV*u0DnraFRE4-#!3nWnp*qBU3N;}PD%6HJq)->)u)?ws4=U7$IHJ%H;t_?$ z5RWM|g*d9v9O9TlONbK+tszbhE~eOLWrsY@{}qmMkDfrQ97DStM^aAU26+96`Zvn5iOs@E@F61ZMyM literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DefinitionKindHelper.class b/libjava/classpath/lib/org/omg/CORBA/DefinitionKindHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..4f7cc619f31d50b7db3a7990d506a8340187ee58 GIT binary patch literal 2646 zcmah~TXz#x6#h<|b|z^G;gq{rEjQbu4Oc~im(q(=N()U12GlrBPRl?t6DE_=3f>j( z!lSOG|3O`@!qTP7XaA1xF29qB4VgrE*=No^XMcO|@9e$juYZ311Hd8NHP9ij+x3=` zZfPkwHamA}G&!yoZO8U)*EwT5h1057R-S=~K;o*kY$c19vy_}&xT^BLK=(;~^+kcs z!J&*mWXvt77&;M+qYK>v8>ekY%~VSZ%A2Mv>&l3K#jXhKoqlvA zDLS>Cit_0F=wQfT)LBi1RL$9>hB5{=3G^>H)%NMS#e(u;NT5%ruvuUr?4$)ThOO9c zV4J|E=J**-96PX+2SLcWwC^da6fm(r3|w|SUmqnKw-~R0umt)-Y3WSKw|~VV5B;IT zP=o@8TJb$gKiHA5Qw=oqaC@EK?l|^fFQ2cD)Rf7-!7xI*RH7txe;iMtU!ZH*Dppwy z5r4JJWoHY(JoUPmQU(q*RUWyqoh1{`Fss6~oZ~vmM3P0pja4j~I3y6~_o&Z{3ss+| zM+ADP8FQVAZ#lk+W5Jb)mAoqJIydoLpqX-fsdT`5?55l{#1Hz+lo|Q3Vqh zf?YgT``dr*g(9R;;ho0YvOVc(F{{xR#CixoPjq5wl%tF)?1iU+F#yR zg*e^r}-+UNOI243!EQp#ctJHZdHYAd%ZOIilrJs99?~F3{70;Oq&{?KEdHS zqDMo!0ej-m$U!y&qa_35;r3i_q$#Id^+^fG$D{kTiW>%&TPAxuusBw*%D2+~b4Ax7 z*_`E5G2FyE25t%LYMyD$4-v<^c#rk8=((kw?Qp;h3{Hg!Yc^pg88$10iL_4qb`jE` z>xO6htdhz9rDwM4H~4w@I2+37zL58}NX#jgcB@`qP1^dexTBe);HNvHdm%EwF6rdo8Zh|9zbd7{U6QNd z+BJL+=1=_SK#Wo!14q$A84oUS?d2|t4cJJHHl9F)_krHw-;l^2xCgn0Ee()Z?Jz~d zlQp2N!DT##T{NN@9!Ec+qId#N)*+8^)vkMn*D&xW62D;IkK8^O)z|}3_0++l7{pK= z;%`Q!A$~|~{~g2GPWf~?8<8XFY?nNk&UVYg>8v4-rn9DeHl0m$%j1-WJV9y7lax{U zB4tdzOxYt(QO4ysWv`s1+#pX=Zj`T5Cge2bCOJbXO*W)m0k`>e2Q#>fOZXO-@g3LikzFU? zE;)4I(mtvOV4Z+Hwe*2bS#G!qUUac$s^2UM50$#XVXm4nlacxN@pjm%yzY>9@IF4M x*?)+S>h`02pBm=yfi--*hTGv9xJk2HHISeNqWB756GVr>KY7jlH{5mL&cFR8j86an literal 0 HcmV?d00001 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 zcmY+9I|>3Z7=$OjqU#f}v$3%?cm$syC=2ch{*|yq)?|rM(4$#+01qWb!6MBR|I9bc z|9U^30H)}2lo*D_X2P5@v55EcnOK?=DZL|2nY0`ghTf5`By!T3h|{AyIF1^_D8ve5 z9i_Pxo8@+;opLvhI>R7L{rSi{zgA^LBCVoa-M=(Pi(wox!JxR1mYg#B%n&8!Vh?hy ea>>vSVv}#VAIVTg1yyh~(DXmUU)o+v=zIVzAV$>y literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh4aVqICWI+;n|s{~#wveV6>)#LPV3#Jt4x)FS_a)S|?a z%>2A!b_Nzk27#=^vPAuy#JqHU|D>$cn9? DW+yfU literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DoubleHolder.class b/libjava/classpath/lib/org/omg/CORBA/DoubleHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..38bfcf152b704a720833145a12dd5d9b1a748c64 GIT binary patch literal 1349 zcmZ{j`%lwQ6vw|8ww0Fh6cHvqc*!=D`ozc3h!CO?oe{G5_+cqqGm721losO;`Zp;m zB%1gK_(vJfxh-XDU`cm-Z_oLh?|Iz6|9<@ea03q&bO~f#uWq=Fy0KDv{bbo#b%QO( zdg?kg%TtgN7~C=UOv5pob)&SkV^w_x8G*@8ua@iiCixi~zGs;Yeii8PD>X?I7+deO z-~80FR@|CZ6iDxxPC(XTl{}WJj@`8VM*`isd|4pHMhXT5X6wx$lIW9jmCkpKSDxLl zeS6P3;;9(I83n@vBZ+`3&+TSS#|X{}sQ!mo*=SOkG%RZ9$2lEi7#GMaMViKQCmZL> zDg@5!P|zbVux>Z4mqBC8@;1Xl46nOY(+EI_FX=$6W0y7EyCt9^3*>7~xg$X{F-=fb< zcwNOcOtS>e&L$ZzzK~9p>#{tIzJZK_w7}%BLkAHmQkYVZWBCSD3$|_9QM^ItS9-d( zrKfCNI+T*7OEvqQnK-h@%eucQkWIg+^2kcHYg$63WcU-D|t^-Oy}X+u>L-^HNEQ9yKJpz_ozK$B}Uw zRs^OxX5YUwWb3uqVq5uHiF;6&7#^UiV3plFoI!P7R#nAAkU8c&Zg{HLm;rV#keyq> zm$F!OfeS(Z{1`WhC$`~m2-t)uj-G`Q1A^0=_QV+_!gYzxXa`F98S}~ zI3A&;qAiUc^LB@wj#w@;JN~7lkz>{B+b#W`AurE~z_mOh=QBLT@gLz;4k&!%y~|&P zUwJ+SpQG75M1SE+2yy<(ZQwRe@mKW%_&m+87|tNU6?u4p&k&!dv%5I^H!G6+4d|Oz0=3{qqq;3F!Eaa58OAkwAxEA$0!(u~F6* literal 0 HcmV?d00001 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 zcmah|dr#9)6#w0^t!$RpKo}q*kI5cN#kX#vV-uM!lDIiz_+u$s9mUdOX)#3oPHF@a zHGBX+l=0lQj%|*ZrMJCj=bYc;-23bI_Y(k1cp|{ZFlCqx$=GQ~x%C$-St)PWo0?Km z-mMv0T`>jt83woIeOc0Ey&QnsEtyKCl4UCL4*z5b?8}->Z{J3q zq1QUtRcc0^_H)ICZhMG-qkB@;H06UbCFLk7%@E9}x@s*m^u!Yt20ssn(SrdI=O79g zA`<`Y6T&dg3m9P-X(wFHJyZ3%h*69&gsivKx+9%owAd{%9mXKWIr0Ru@9dsDS2D}JWrb=zv!oWZhy2XsWw(A-)e;vx4w?4UTR!^j{j zVukCCxZ!reLBj!Lh;`6z>TCrdq2ZEYn>A%s<@af%<4`Q}n@Lxh%%&#*AFXsS=z2%^ z5u|s3B6L}3?W0`*e)!{=netuZSEYdWgv{6!u|?)(9m5YqVyme1-N;agidt z36)|Rm*~yg&UkG#%Jorf{@=FA)FEb*-!Mtf?8y=4PjMy?q?%F-&P$A;f;qf$@J8L9 z9v*c^oTM@OC6M%x6%RR z@8GTnDLH#`mbd;)3S8HM6bAGbrvgoyT=w`z9hT%rx{dCmQ+N7lq`(In<41Dk UQwzOllU@`#ZAF=2k@ah z-kD5FnCa0EZ92c)ZSMch^!J~izX0GKd^e$sz%UD{Hmg_d{PJpU&Mvh4IlpCsL11v# z*>~)k<5%tFtzGIyCS)}G_zi)K6NX;ZCopa;c8WMVy-uKa{?Mh3$YXwJLYBZ(C(9Mb z-E*qcF8TXT&8rYFT-In27_+83MG%jn)e>>XqCT@qqu69bOU7+X7$so+tLU{>gD!bt-HF^C0$Cn!i?JGYurpZ42G+ru zyW<1`l^P#9^WMy znsLFRF!4KHi!L-}dZ7cVAJ;3gddx1bNK+1z z7YpeaQcT0jaXKi?Q-W&8P3oBrBD-o>Wloc-lWvVzx~|+VsqIMIN%h>cwM}P}0w=Ym zG)^)nGAB9-rEw!2g-(Z-Y9}JK1vh+ph*O&h=z-_+8zZE24kPAvmpA zo`K;M89|@3Fs6`km{7y7~ycp1{*o98R9WbA`;p3x&LdR|8B-KMm^yceMqnHC!ew&DHwFynr!gz!0zM;bScE5U%--BmC z3RwiaTEt7_IltnUN}<3X`MEew^T|4A;+$PO$D6Yu@|I(sF<=`Rlrh7r!U)1F=6L4? p<~e$SO(s2?Tl;d3caIe!Zeo9^FgK#c3e0n3ORPb7&($e>cmQ2!fUN)k literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/InvalidSeq.class b/libjava/classpath/lib/org/omg/CORBA/DynAnyPackage/InvalidSeq.class new file mode 100644 index 0000000000000000000000000000000000000000..60ca4c45088263c47315a3c487ae01f7a9b20fc1 GIT binary patch literal 598 zcmZ`$%T8M{5IvLEg)}7)9x0`*x~c+5TtSyXNFf0!<*KcklD!Gm#c*Q>Une5{0RD#+ z5(_?nkE%Kjkx*K7;hC|0=A1M3)9;5z0K51QAVc_MY#f??95%oGIBbNiv2N(`chS2N zu?*XKBocMrk=FrogpFD3X)5i}O-~M-GCDwkuyQFzB2*^qNUON>mpDsgfH}g)+17!v z&fkUYR&=DDa$~|G({WQ*+LZZD+bsfpA-rxHojRdiS0qE3zuQ~L-uBZ2LSbKN<+#Y! zHoJse)11p9vZ$1>fHI*RDJ{Pa`)AVr^jd^UWO^(hScdo0!<@TNDWMk4I{e>5)CsG# zXfkIabR2e^RXVP3cD?kvm#(rkD@AIwSNsP_D0a-y_T;hhp2{z8yyLO_F+346$RptD zE#^_={EELUgAy(0x l80oQvt?hff`J3T{O+*uhwP)0nf$?l?gE2LDl>HjAdJi8?mq;l4?oH4We{Et;sdijLe;i`d3yG5kJ7c@dw12 zvQT1i&zYI~z0SS-cQc&sWlJ1;{=Cz1qP}O&$r7r5C z)s`6~2@AdG^H|!w`=-2g%IFNzgvl#$Cjw=HnzV|!52DdxYCmD6mwIcg^Z$ZsCEU|a zxej5J<(O2LHfFu^YK1@tgrTz0u@l;LbEIC^3or4>`z9g1t+aAGguZ;CPDqx`h0LN4 z<2ejtgfJ2+Esxqa4QbE37hya!O*Rm0!~5^Uq`Ooxp&0fi{QoMp2vhm6J84VkD5yEB zbhK5dd-FMOKEvUx6tU6X^AD1ct(mrM%6;Wijs3jmHIL@!;i-^73K?F_V*pw1gZyv_ z-g$u;u3lh=ksg~au0CP* bx56QZ2)hc?U#M>d#&fU*)*vi0JAtK7^V5XT literal 0 HcmV?d00001 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 zcmZ{h-%b-j6vn^Pf2*|utp$`K;fj=+xG`Rq5K4;)vM908gv()_Y)9LfW_D_*??b{Z zS0pC-0KSW_U_4WLVKrRrIWx1r^L^*c{QUjx2Y^@D2#_JvjZH!`Ov3j25BsgKGtn(Q zIT7(^k;w3LGLpwC9SRrs1LO#`dHO7s_TVy>Bd3fGP#{!4i7z5lChSV9#6W!&7XumK z0bz5#bY!ga|H8vgbfBGb6T%Y9aZyj&l=aRII|O=5c-%HRbwazI7>s3p>-@T~_v`x= zp|GR0a=V0VeY;18427O+TIjFgt|#={F~PrVnR5}B9{1l#a_c9?U0l@c1! ze24d6MU${xkEW9jgigY)vq~q;?VdM(=FL~RIV(kKwDB|dr0nK@w-uLgU3Pp8l(F#7#s~g_S#MrocQmR$~pqI#*}#{0}{ag$V!v literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynArray.class b/libjava/classpath/lib/org/omg/CORBA/DynArray.class new file mode 100644 index 0000000000000000000000000000000000000000..6ed14fbb095756994afb951e66c729a10084fe9f GIT binary patch literal 303 zcmX^0Z`VEs1_nb00d@u^Mh3C`qICWI+;n|s{~#wveV58S$D*RdN_GYoMh1bb#Ii*F zoW#6zegCAa)Z`L&1~x_p5lkI8U00sX3{+sd**EKyx)TqkT|SI_6bc1JxCy zs1w(~rc5)8k%7y#B0067Br`v+n4N)_kwFdBG>}X4DgzRevlG)(^*!^-5_2+Bf>R5D z8iVsoi;`2_GILTH8F*nn(gS%0=zK;7W*}w-1_2Y$i|h;>3?Q#^GH?M!xq+fAK$-`L J`9LZd_yH~`OfUcd literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0es%^XMh4ORqICWI+;n|s{~#wveV58S*SykPb_Nzk27#=^vPAuy z#JqHU|D>$c!3=NKXm5dDhWr;bZsqu-$@x>)YnR)3zg&LYZ2or+AqSinQ zH84dr!x$O(;0BcDfB0jgkR;02OQ4156E{XIbd literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynFixed.class b/libjava/classpath/lib/org/omg/CORBA/DynFixed.class new file mode 100644 index 0000000000000000000000000000000000000000..4e07360689cad7b46c9b4bc311e5ca8670534c52 GIT binary patch literal 263 zcmZvX%?`mp6ot>w8m-@jc!t`Tcm(y6SP>E%3mNTXQfewx!>d_%01qW@BVxhgbub7Zq|?49%^~q===_V!GL?Amu1Aw00+|eaahcrseiKE8g{d1eiU?;T_6GMhkxO}_1 ti{yL^)HsUiMeUQcn}?)W3`LSn)e01yql~zP$rD#*RXZa8OR2E+36}o8a{D ze#|y1vuTW5Cu7NW$cr2tn)B8zIYHRDUQn7)bd5)S7IBki%nhPJmhce!h z_=6-aZtl&@`R>no|9E`^aE7LblE6XYv`k_xJKcwiw!EC%Aai+`c_<6i$7-fzq^y?R z;h2io4T0tg(zbJfMwmNCHXFng56KNC#*PFI{np*G{;_k*Kj*7}RWWgQ27bo!GRA5a zS2cZgP6dwq*3+N1_e}Rylv7U`R{-g6;Mo6P-|7ogu3kc#W+t(zhdqIl<-OS&zO$#o ziP9u*>`X;w6wot+L6WS2=$fh|-Pxr*&Y-a(C3 OyM>B#onxQt5*nYjB69iw literal 0 HcmV?d00001 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 zcmZut!A`!HR$IDCathX3LdG zoQD>}XiqWG8wNj>MPj9rnmc0|E`#v#5c7s%_>UUDOPwC#KTjWMLj0BzYAMLG`}?RB zJEXZ1v=;sMx9{9psWZ}!gZ*y!%Fru>i+K^J;*GC!$8Z#c3x;N}D5ssdS=&V1%bcA3 yT_{(jKP5n9I>(e^n^N-7Mw!+LI#un~__W48dR5;?zp4YA)pbY?4Ciz=F!}*A8(@6^ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/DynValue.class b/libjava/classpath/lib/org/omg/CORBA/DynValue.class new file mode 100644 index 0000000000000000000000000000000000000000..b88d8c9b4e27b459d4986219f0a0ce0985ccf8e8 GIT binary patch literal 459 zcmaKpK~KU!5QX1XbQMKWka*OKX)iXOJt1mhG(xQ5;(;t>vsq}jxU@w6ng@S?Kgu|* zA&N~rY-W;q-{j5PkI%Pv0Ox3NI1H`CDnE&p-|0SHw*9Mx>5C|n92JK8Sj>eV38Vb( za4f@=V}qetBHCubv00jYGYpL|vsRjP5X*Qd?O>wKh~dcf?pHTGb?#_#Q3i~NC2c3* z$54=3Z4`;Om0WI~F&w+z^Pja3L>D*pgtj>_`wg79|LeUzL-qPKl+#ovX2#KAI9>Hk znNb2g5l)1X{;ipdNRI;fLST?&Hk3CyBLB5zwrBYj6ePnM9IS)WcT_0uEmWx?gV-r* W4ZB6%L!Gqyxr*umy(aYz4!;0py?F)z literal 0 HcmV?d00001 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 zcma)9X>%J@7CkSv)v{;^b{0liNCJd-3xWXx*buTZct+S@2ZJ$*(v~`+gVa*mEysqi z2eW4g%PfQths_YSgr!Ykwoeo_H6JLx0N>!lR8jnhnK`#5+fqvbs@&?={qDW*-1E-8 zul=w8e)2hhOE9frfx`JYCmqXW)3L3+eOoriwvF3H)=G9~^BFU1+OFYRIa@=$!kS9M ze9m!=;fxvU9o}muU2#wdU2WNxyHTO8rFB4|erqmeMo@=F9SsO6ER0*W*;B|4o6Zh# zR%njrl1660a4dN)y{vcdutpTt#w(YsiLHyPTJ~t}P6k`u67c9Zol(>2GxrtD5w}Yq zMYfrF$4nZonTntpi#04#SYEkKg_n*cSgO#N%bSi*hQi{O*7#my)QDvaJ00tH9m`I4 zMWFBp9Z@V(2q&E4k_zoD)uychl(YCWtWa2#whN`b;HYOHZjHDREJvfjU8Q3+))0;1 zqzke=WGNa#E|-E7P~+{?O20;VK=SpkU6}?=a~^2~kUsz}f+X z&sJQcW25Myo@GL5Z^9N0o0(N5>e7zt*otimXB(+hLhMrs%T93X1odyrqR7j2xL(7b zs_L{RMjhSwGbL1F%CgIey72Twb&FvcPjMYLpodAi<9Tk`vMSFVd@r@_vwEYBo6yJ7 zBG0K=Qm;KNspX3WlrR@oxZZ>vI&K#J7M1hI?H3AV{uUj#%6!xOd}&t0Z3^ei*J!ux znvQK`wmVMF(QtdkWU+v^6s%0jbi&xBa8|cXZCI(*zLr-dajg2GPAtZIA zK(<0gK5yD7g%wg!^B5|YA#p=U>$pR-6n1mP$p{9qTdMX>9T~rvlDUHIYOpE)`Mz+o zZI0#HbESpl!F={nW5I=VjKEdUe3AF=5#%-CbcHdhpoRp_m?SW+u)bD`r%fb`yBT0- z1Xjl(>< zMogD|-7PqFqF5KpgPsBXKC9y_ge1oE(zpM{=2?|osacEBKLpu7MK?hPDjIP!j_7z% zQiv20Ng5hns_ODvsGSr$u{L)YtqhP>anP|ZDu;y;u$eua*bP{A47W63P|ASbRMN8G zyeQ{I0Yf335@7vSpZhg?ox~fiMpH~$CfQ}1<3Sm4BIHQ_DDonk$x(g6 z5~6rC4VCG%Sd;XK^ydmr(!9=+50+&$zd|mO^1~W_1Jv=`3jF1XhY)`?KE-%fyf?H> zBYcX31&HuhrhzV;!C$>-!26keVhh4TTAj@?Bt%`B;Tk#dQ(L=-CJ*P_FoWfT(^%Ql zzTU&RbsHM^H-#_PFKO^_UT1x@-b2d?-yMf}la&P83SI|!-6#eZdH7?e=8vM9hbuc| zc(sRXJ44ZsyxCr|`iqC&DeV3=pZ?lD9kVe9ZkfWW84M22U}&&;=QI)$t;NHzhdtA< zzBt&RmNYPzy~qD|%@kstp&4X-V|n*6a`b2}c-Suq4maP$5gntUX&m^XgPh#w;h`B! zkdj9`L+#O!hsQeP_bCsDIy^kX>$y(NC#k=Jq=sYAeJG(xY=~+;eB2Nrn3 zHzJNE9?(nCOUoTtg#oO?ZMYsg(T82Q9SNkd8{;r=07>?-6g!xSBiMs?ICByfKEYmm z#+Lm9{eQ+j{DKj+82i-<98ha z&#ObcALjfd8`sM?qW+Cz>RU{z?{HlGh?jk7zfH6hZb{lQI)+IKvQd4HfM3IWjluLmS@0+boiaxzR5iy@Pl8 zAIDmJiuagth*`XXQ(QwM{tJAMFcBB+!o<7~?{nQSaeaUf%S&&*dh0$z{v@}cyn0X8 OsNMxkLae-E{r(>?9(X_i literal 0 HcmV?d00001 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 zcmZ`#O-sW-5Pj1ojg8gD4^Z*sE%o5)SrN34ZnTr-;MlS=$SY_;e4KT0qHesDr&wV6I-ry-d0%HqX EpER6Q4FCWD literal 0 HcmV?d00001 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 zcmaKoPfx-?5XIj@X|I5XjdX0|Bd}Bk3ZK^&$$e1xmh3oAxM zf>fFNSJKMv)lA^n{|BMPAwd+8v;M2B|2UOqaLXVRLOoANMxZW%R3>BdrQ7)HlYqNg zb>?7Cp!$=d&4v-_>{P~j!4)ia<0SV^&(ly|tL0j&9>%VwamqRYF=#O81;Jo5I=p#Q zVX~*sSbO3j2ba-215Io&7C#H9n=saIp|sR8wwGGL4lAmxw5YqR*vG;549|yr&Ee<+ Dq%&r0 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/FREE_MEM.class b/libjava/classpath/lib/org/omg/CORBA/FREE_MEM.class new file mode 100644 index 0000000000000000000000000000000000000000..f8238569b1f2f69940daa7dee6555f4cf7f3989f GIT binary patch literal 945 zcma))%Wl&^6o&uFrH+G3OGwi~F9ax%rhvr;2?bTOsVk*T8dQfYiKgi&46;3y?I2*m zL+}8+18hJncmOs$39o=So}`ru;j$Qy&zy6<`RAYc`s4E#0QXQakYXsQa9}HcVAtCR zTbuUIf#dXAPRl@sVfk#%eHF#RcV70zaV%9}V2YvmoWJ02pFU54qp3Zj??ahH2Tk^TN=$y>A`#`rJRU|CE~3a_)!VJdO{e2*_x9Ti<>ueJYI&ql zvS4AJ;r;|6jeh|Wr87+#i2b2|D8kOjj6zfOx!2`n5ScSx%*4-R#IW!S^2GldgW-!P z;sbKC@Vh4r>B?F+hcW{gRxAG{E$hobg>)4S2D3l%OdOH>q2Q4U81k+fhJCRklRKO~ z(Q-Gr5qdDRCygwP%P^3m*`$Y*LLM3Vw=hlL^R%)>af;@Abv^w7GaoVcUe_%oYdZ6Y zIyZ5N;?k&+h>H{@`6Vn9C*iG(c@H!nI9DxP`2(;)jk_9XQ4^JpfeGg77_H04af zEZ&}=%B3@PG^9K#JXK}l8m?=wiB%Lya{`_pgF6Jy5I9#|U%E4a`;^@3X>N5?cgoG- WhCVIz>Kzi-a(aiv>6;X#aO)>p0l9eq literal 0 HcmV?d00001 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 zcmaJ>Yg5xe6g}G(LP~g*mx74$khW+8zQ7hy9wL=WXDHKe4wJS!B}|%h(iG)isUNE2 z2Y-M+%JFU*`mSGgvztBVo_qG*{qy(NZvdM}OYku)SawmhN=5Y`eYU@+9_idDoN6V0 z%#AX)B?K78ue57TH8iuRrgK+3?=TGR=%()MGWf%hEJNVHD)1oukQEGIkYOyPoBXs| z%5nQ#%Nd*@l(O=gk=1Nnti8>EbE#Jt7E}Kfk)U|GS>ZMX4u?C=?wL1?wB_U%Os}fciW{YOkyXLf= zJL4knyu%9$9$}3^&X98kcPz6zU8;>l5DXCoQ6bN#7l!bdFpYW%B8CkKYM0*xRjAsY zQXS=Ot~uOG>B7k~%!iYGg$u^#3SQtP)sqL+3|*_Z$ZU_x>bA6>DSd-dMO$`m2(PFr zlZUA|bw*4W+tD5I&DaK+Px%xWwma{)Y}t;eay4m|s}7YU*Gh>V*B8WVypcd{wA6li zy$BS%70wTfn2oBCbh<=hXISY-wHF07(!gh1cc@_EeKn`6PE&NZqoT8pa4g|H!*UEcnDYLs97xr&L0An=e1)lW|x zAki1SM>I;bQfX#14@7@p=o@|b5TsH32DUIvqf$RW^9ZeEjAD#-1bCND`)D4FuGcW$ zL?oLFD7s$Xa0h*3zxifw*Qkq+ zR_~>2_bg9AiXnH*Pq|@pr*Aa7$Cl|U$S|xWorbRG^R8_fhrVa=fjly#Pq`h?UTB1f z0r!uLJ<)$*nPR~08bjupaD@MyVOB4<8B+Uh&r&gqc@0^p42uonSg(UY*Ya8sGT(4b zZnwE7OX@{hy`!)ha`X)FJ8HHLX9NN~FoOHX$wogTxMJ^>#k zeBcZNKgzmRZmTF_Rly2FDJf=}y@uPk!=TC#o%gcr49j|Xx=t#mkf9hh{znR#cl=L7 zs{RTQlUiDIFH2ohuuh%qJ3-uf>0r`_lV}Jo>{OJnDO-}KmUTXO!Y8bLWks5SpDalk zRRtA>^`wkZNyZ&CJd|PP!YCI-$+#hsVRIsrsR(Medgun8Y1M@s!`#>)Y|BZc$)}N{ zCruBNjiX_tU}45*W( zv{fabQvHFYOUeQT2Ue*oOTLk)cbQ?6Gt-FnSjE53TXY8D*V zQcql`YI_=D0;4{hY_DnXa2F7uQwoxD2#wMc1d|h70FwPp7#FRi{IkYsDIbNJC zB_VLmfQA8qk#*UyU$p95wznCSVQk&4SWe0EB+vat9sRh(e1mdS+j5uUBk-;^P?cht zLa@!Ofh2T+AvPr~ryQ0qUZ%QN1?HnBJDqvjXtq?)o_w~XBZ~zMIf0qpN*$*+a23}C zbl##}IcgAfEH0TUFdK1y9EF=*=H>~cGTBH#yMrW3ls|e>kt%ayF2$DWP38{nYFH9T zpO8#> z`$&DIc~G4Mtpd%i^kN}J;3l{(9NV$7ko$r30d5~<7g+gBR=%8IG6 CjT8(3 literal 0 HcmV?d00001 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 zcma)7U3U{z6x}yXGf5Z-X|a5YDN@J>cEm5#AljD3#-^mw5RDb%BpH$^=}etY3Vrll z{VnKnwJhpFpZ!rT_nnzGO(-m0GBfv{yZ1i(oOAQ07$i)vdNxZmbziS0HlJv`qJwz(_h%6$sDSEhCN* z#8iwTB9JJVmT{-I-Y}es-sl~_pefs3VAX~+vG#$(sfCGqL> zQ0$DgozJWm;z(j#!I(gD5R3aNPT>tI2tev9u4CxyzO1QqW(aV@c3ioq^~3TCPQTnJ zyW29H7$$I5#W|c87~RslJ*FI5EeHr*V0?%|YUWPo6`6aW3<{Yofm0OOuK{(LRy!Yu zz}qS=V~YN}+Z!Z2_d+riuFKjm`YJLC(gG8M{_IDnNMTYzjAf&L&jr)t3w{{>mG`xWf9ZbG#vKInWK7TwUDXCS*(wx=ucRzw7-%>Ud2s(#s>1w z546dZVW^|J#G3@ua&1|VjxNWf^NqUekn}R+UU7{$NBAi8wCaP0+$9&I^aEY zK*g6>5Qs^Rde^qv-dGmnxQ(w=ETY5__Vymg*{^SZAJ#olY|9~XKaPD{ z#<#LmHG#9k?gcSk4v!qu22@Xx##yd=l=Tr{TRRko(c#soHMP4WNtU4{OZf)oK(Krbhh z5OEoE43S;cE~!St-XxonMebG~_fAuE*=s>arnb}><~q5z8do%Snzq}$Y^oZ?70e5` z$}sKsqg%cR3D<}QhmdvCXgED9@*3Ag+`vs5BIiHHV_D&iW)MhG(IFesI5xv@ zx!fT)?9&@I9Xy6a2kVy1_WGnVS~iy?NOwudGhF0gBE3TQ;3Jz;yZ>Ch3_zKE&(^&IH1Arrd_}3S+2Z2Cp5wQMaat zN7a!eX^eg;q&;NSLr$bKhsgX46Ig~L^>}a#-JxBHHFBtqI8-XV(FU1lK_+kuw;jkk zxa&bm&Yqm*r9YDb*R?Q(0i(^SP|K-%xbGdVczojyOY$S@qxIB0d(k?&HBp4U5L}|nQNMx^9v5_XFa0vQER<7?@uIxO@0RTJp3UWs!2O|N zAL_1Y*^+oH(s!eY63T!T&0>)A6j?drnJ6A(fyg!tR!!NJ1XA6 zU4h_%W!QwB_S>IL$j92NMIQzf^b7PiYH=oxihCFoxZDp-(A0Z(SFvzQm6|J9f){p-25N0WW zn^FWH}O2%wI&; z*q=kS87QK`0y%SK;Jm)`P-N6TtgG0-R|2YY{L@vY*UyX18LXJqC_(3-DM$-+H%j7i zYKMlbf($F)xL=8*A_tz+VA|MA^Q3j3QNrO31$j1Nqx(!^F1?gkPAo>SiLiogf!;=o zTEkZ&E$r+TA}~-;u>*GNg>+uG(>cAM=Q))*tC}iP1DJD-cp`Q=bsNK^-9%UHQYHcu zmb{jD(G2+YYlf58S&Nw=^&VfbDwH{7LUn?@KAUDd4!;$%WM%bdhI0+N%;ufzbxfYR z)?QAE7GB6eh;O_<`Kxdh<5Tb%jGiF$3ts|=@KoVjEnGUylN&}Euaa+Iu8*AHyE^qg>I2wlMTvp- l*&qk##3AnB2!r^6fq(Rn8mDE6_G46XpO&(Qhg=76^gkB#YKi~= literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcma))U2hUW6o%j7qs!v_AAW_;E2iduGmg=AHM<_a9%r0(gjuh6F>w4@Rc%j?6~qd41os z+Q$RiYFj-GDTd9!cvmbkEIg5(jGi*AR%}IdxHmGpQ6RlhZMV;m zYWU|u#|m;9t}<+0R@U&{3rEDFx)G1Yp@D12GZ>9d``B*wng@fU4nx`gdsQuqB-RWV zC@?&lBgFa_AXd6;OHUk)-7^vNCT8Spf5@FaCxghG>0&B+Aw!1sUy!o~)EG2Zgdrc1 zow?slVMtbX`x%rOz_3&KFKua8dVWB?uo(2=#58eE_6LH8zQ>U5`r}|Ip2@h0OEWPK z;-1i(p+jk;X%wL$L$gkADS<3f^lxC1zDu-Hr#L}#wz`-6gyqjz{iyP;$7^b5pDOEE zr+96WNyH6`;{6gfi4*g-ro6|B4_v9{Zu|jwNQEs0G^mJDr@$Cq%Qfj$!5GuJbBRgx`MI7l(-q0}WFQmFN5gH)Uu#B9h#bulc?w7-nJ> z_Cyp@=B~BPz;+m>TVW6T=RMrapLrri;!9%<4wzu~>U52Xt_o_w_ zS$*hj^epdCJ~n?O81wsLY$PhI_BL{eBe~QeEttWiwbuX(4Znp9RpL$g)!znVY0NR z6K3h^1XT{*$yJc*DDg;@jx}6VU>)nIkmeLTKL)!5&Jnm!-(0>nf%}x)+Ed*6DDQ|{ Xz$JBCs#PbXt`*b?sneG!%HYaRRhql7 literal 0 HcmV?d00001 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 zcma))TW-@p6o&uFrH+G3OGwi~F9ax%rhtWnkWdgJO@owT5>y92QccrQ7-V}Y+dogC8z&-YzZrf1`|a($ZjYhr{JpDDL>3hb z78V)qO%c-h7a&zS=g3fWN5Q^``eQRnjv8>^<75z-Gg-_fFJ;WI^b7LX{|18*h&bj$ zaW#S61YOslQlu2_6UYvmY1kMq-P~Tj+HHG_v+}hLJ`nc|dTfjAa UTI$t1q^=e84yn`EDazo+PyD&L2mk;8 literal 0 HcmV?d00001 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 zcma))+iuf95QhKFp^k$~N=Vz#69EdODPVDfKtYH$O{KIUscMr;qHVegMz*)I9Zqk; zW55j(7d!w@!xJE8H&LrXI9#mPvpe(czyIvFA78!#xR0uV6hm1?Lt6$zyU{(|-m+UA zcej7oJm@+GG7PKdcb#`}B7)}IfjCJ#85)>jD81sZx$Q~Y5s}Az?>#^A1;bpd!=8v@ z%6#71VPJa2@jJV_eUa|H_GORhu_~Y%slo&FL}Z+Uu|om&%>eZB#{>m>l;0W zOhXgL_o{jxX)IW< zu*mRWijda707_}0?S-N<3XVkNj?E~x<$(J=P6m-Vlf_K((u*0EenFmfpw3_fB98fx z{4DN3%)KDTO>T^lxF7z87g_o8lDB`Pyds6AGU(|54|a)tcUUN|jr< zLh-^llZeX{sr?nK5=ZgYCcHl?$;6E|>^rwo;vC5avnMtVPq z++ft$wHb0ocqCM;qNL!`oO&blk3Er!>L)xI#~Lo9%%B;){R68r=(G>JJ%*}v{ywu+ zjUuvG)1YCU;n4yi=Dz@`(iO`MM0e~DMKqY0QL;jZdp0M7$eih7E_vt1^O|P+&|pw} z5yyN)u9oJ#VaV2Y?E(hku>qO)n_XrTd%MB2LQNp7I_`K5(I4y8aj7J{5K)P@^JBodQ$LjVa~@VY0NR z5@zGx0#&c+PH!ZnI!QcJrQ#-TNwA6?lu2_6UY~*o1kMq-P~Y3UzkoX=w;ai>Px8*V Y1>BamrCNDH>RLgbkUD*bq73f-0UzDKg#Z8m literal 0 HcmV?d00001 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 zcma))%Wl&^6o&uFrH+G3OPXGw7t*vqngSLZBnU#JPLbT21l7h%qG>t`M!po=LBLD! zEU-ah!HN|d-Ux9#i7FMsWicL~nRCAR=Rfo9$LB8q?x3L{$FLd2Lp=(Hy3sq@YwKp$ zZChri?;N$ecH3~wURObZVf}oX{WeKOu>WQtPE#)m70fVHU-H*n_afaEvB!Py9Y6L3 z!+at`SHuZrJ~KNE?0{j`h{7c0Vd`>!B#K|Z->=sfUcG0SdEkX!`jBCl3{wI-W+6#uX?i(X7%-%b|<{{cD(|??qbKqc}%%xw)JFh`CQ#{2=pI zvNgH$h$`E-O!3k+~?$0Uvit{ byfbbI*W_)fR-TZ#R+1-VPG6@ehZ{cuX&=Gg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/INV_FLAG.class b/libjava/classpath/lib/org/omg/CORBA/INV_FLAG.class new file mode 100644 index 0000000000000000000000000000000000000000..04a21b792d78ff35953ac21b30f912f3ea85144a GIT binary patch literal 945 zcma))%Wl&^6o&uFrH+F`OGwi~FN9JcO#zDqNL3IbO;eO&5`=@7MALK>2KiFi4gxkj z6Ks$W;sIFj2s{FhfH^|LY znC*_!-?bVKHDnl8PUh@4Q7pXH>w!3oW#DU=VJN-iued1#(-xuRu6)b)UBNIHsn8K& zM3v9lI}B`(q0kKcDCU0baCaoKpWl7I^KI?N7Q@Uv>C5;&!+h0JM3?(R(~d*w59=Ea zL#7!V2pw}MYB8~0l6Ov9tA!_-VR3LKBSZfN3iLfoE87&OXwKI*(;qPV5%cd=-D0w)G7qS; zfeRFu$CX4}qA1BPV}&>gZ*{`kQheY{t$67#z&17RDWE}3R5}4Bn9CE)Bf_L9rxRxB z#uQaHovEiFm2u&*DjjRMqQE-VQ6kL=cwqwW5jaEOTy1mt<`nL8a;vYnwQ=1sH;1e0 UwA8D1NL zUs!DhcEC_-$sme(5IfwPi2VJM{P6Mn;}eF3dv4&y4;WVJT}AYGFgEQtbc1no$6?5| z&IEM;@(ds{a*6j>B?P0IaQ0xA^s#!!9s|E~I z8ScyxV*Lw{C|&Bhf#^;ALlF+9W|X^f#65?TL1a$4n2TSz5yRRq$XNrL44N;Zh>yw6 z^6#cFWa~Rl0W}6NY}fxwTi$mA8B#AS27NR&O&pQ^q2Q4W7>c%>gd_3DO`5nk6LTx+ z3B4IQlt!M$1!ySHtkYY{pokp(8z|9tkyiF8&d^+J>}Ee>=?hjqsl4;an%a3tm3vsD zcy*dd#C3|2{S9mqC*f_Syt|4IoN1IV{sCxF;ei4gR79yMFu`0(F;57Sr9GW6>o?}8 zvgu9(1*uIFXR35u#uWwDv5g98PQcX^JRoq6z=g){#?3k0m*mz^aU0XT8MlC|>b6v? RPDorUs1p*WuThl2^`CYWxx4@X literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/LongHolder.class b/libjava/classpath/lib/org/omg/CORBA/LongHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..1620deacb60a5542bca1939de74e6c0045fc5c17 GIT binary patch literal 1351 zcmZ{jZBNrs6vzJ;ww0AS5D{TMAWyOlr9R@r(1;{NaXKSp@!`c%wq{)H+NE?DU+8C2 zR7f=O1Nfng=d@+(8d%cZp4)SN=YP(*_wT=7e*oOTLj`>TFxyXIO3W7wZB8%QZ{d(t9M(pUYPS66~a4NMNpEw?l~@1=nbQSAXTo zru5{VdBjWOG|ng(5g3gnTzxL>x`t7l6&UnBM6`{?wfU|^6&akg zqnw-~(mR?GjV&n|EHE3>e;kM>UgZf=xw(8S;Ao8Gl&XGorAJ=56U!;Lz2186;I4ut zfteHPi3Vu6hiQR~pCwXJ%JHdm;9}Z3#Y8D2RNZjeZp~bieCUU|BU|K~L${2MGCfK3 zA^Iu!!v)^=zpqf_WAcB1i~bj; z(Gdz6w`di#pDY~WQa4m31n>e0l>IPvCnsFS6s-)HrhgW(MoCzP%7DV;Pt0^Ffq*we zc}E4j_eozmqI+ z(YJxbKC)lQ4!V<~U7!^yFA-7%Zi4&5u^lN3g&&wX!0m2zft1fA<;w|D?o-pbvZ9}K F`9FSs7#9El literal 0 HcmV?d00001 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 zcma)7T~`}b6x}xjCJED~0ZhNthFaQuRAT+Anpy=)B@h}cX*6QRNirrw!we1+S{{8@ ze@p9fflIntpZ!rT_njF?GR4}5%-p&6+`aeN=iHmW|M~M7fNL-mgaj^Fb}Mgfw(@i3 zyR$R-l4Z8!Z&m+sLGNtowt}$0sSRyM%Xc)hl`q#f^oAoaa>FnU=cd3=I#U%0&sj}9 zh9N{%3}ZwfUNTJmPIt4e+ZCvp5K#0-j;%@V z)9FC?jJaFLtS!cnz_@}jfy5vj*Huj5HHz>-)>j={*ET(6Q|U|qaLckCxt8yR6%?F) zsa;m5soPN`aaP4SoEI40(K=lw9$H%z5SqYvfJMsYO8e#cySR)C8BKu+O6?Vc>I}10 zh(X{j6_+r@LO8oypG52e3_OjW_V0#nB;Sv(#l(L5n$uDpz;PP>F zJQFKy-j><*uMgRL4K~?!en#RRRwjzOs3=%v{|@F*nUi%@aSvoxoCm(|_ zG2BN(MN=9*(Od0zdc<9*Vi1DISSK z&0T`+^cj=DGVXA*!V2*J!6o69?L+5WA;9PX%C+C{^Wpl3jbblu`1QS>vOi zy(L#{cGL|+Qwol)soVUMLD*A`I<0~A zRfcY7e@ClWRoYMIYi8ZU{1@F-GPbSm7bz)ANoj`Af^O>0B12a^QDO-4u!Ju3%jkhD z;vA9qZ=Em(abCm_!%!>XV)nUiR%HxhgrUcIS2jpE9}L6!PN``L0~qDlV+^D5&N+!v z7z`I=gds8X=XFziQQzLs>|(=_NZzWbMoG1GzW0JbXH(xLF>NJJb%Q(+;_IsojAneK~Wd?lgLsPLw2E z#hi$13{$O^bjp{Z;5yOZ5U!hU=W@Kp4H-9ai(#<&A9uQ}@{TizBr50f6?6{IFwTOD>A5Tfzb| zGM2dFp_8y*a>#Na8Dee3n@ar-=5O1#Nq%bNr3cvnI=F2nf(j*MpvV zgkMEk1&YwKp}CiKIRxno7)&0aFZmM#Z@wXNgy;drzfw4Wi!?_l30R>yL&ukBzluu~ z;YH{uCUBWnUUt$eYfx^0Vl$`9CQ}EPN`A*Ujj7{9%$(qiAw*{iKAcw=K?&1%?cxnL zYI=B79dVMz=$Am!L)JXxSTc2p)UO@_OL3$w4{p9QbVFi=9I7G;jY_}uLB^VpG2F%- z7xFIdd60^`Cue!-FQlO1T8P4c>2peGI&~ipyu(G0Z`5T;exzIIK0a}$k6H?Rq&9vc VS3djbMVs`Z$l{4h=c&tM`7fRmO-=v+ literal 0 HcmV?d00001 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 zcma)7T~`}b6x}z3Op;C;0yX`>YN(~nMIq290CM<8;`Fb(Inz(^)r69~^+Ej^AA z#8iwTB9JH>rhc!t+0gB(*68X2<7KO~xH6flKB8kx&#+^e2w3N#1jr zKfHU&f*mc@IlsB9b4BnJyp}0Yyfb}vK_fs=!X>*oIBAb ztJ~7;7*e>P;vyymMt8Jsj|qp?N&-R?mrfI&jyG6c>FQiiCx-1N%uOX`-Baj+)=P*J=8dD1LEL@*z!L}_siZ|){N>|sm z^|Y-^cha(G=|-k-bxZh6}Rv)+s8XU z)FfAfP{;L%I|hd7Sh64;P0mQits}qLZ_FffB23BL>N#G&dChzWcNHuMTpl**h7zJsJg&~ zpm%FBq@l5@VuN@fuzyL`>cxKIAgOd;=za$K^d-eY$jjTz&jH)y@3nZbZm@!zVc7 zrc~uhjd1lNwNbvkgLerN!+Ut&hkn3lX+h!usd|1NH@og4!K7~{-4N20F`9I_3Tz(|~d=I63-xQC;q2?aJb_R?| zVj1^%SYZYDf8dhvn)addt`OkV0V?%h@x?yA?1Osc`q2fG{4souHUHp}uPKp}Qoive fHG*mX#Dsok+P@4aNkKoU?dTORLBS0wgHw22B**d`71HjwyOobsHhX+ z$|qZQ=#I!|YFTeOonjWTB!F@gXNd79NO;JbD!MGL91)9nEa3?k5y~ z0{rmY%L*R=h6y>46VZ3y5IaKr0Fz(oIDjd7$0!I`qj#3lmuUY2m*|9pP%19t z3Vk{3vlu6vdU6=A6?t7Fa zk23BOk)#J5jE_zQ4w5T?O-?jOnB!xJw;AGC#)`|3!&8qzarfjMFa8Tbw0sHEG4R>v MMX2q?GdF7WFRKtkO#lD@ literal 0 HcmV?d00001 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 zcma))%Wl&^6o&sv()xl+OGq2&jT8zbDPXan5(+{}(jWqEgX)lNnWjT9@};sJ1UvvQ zz>~lRi3Ji{o`q*XoS9ga3gNOC&zw1DzWM#1`S#=U7XY_W)sSOYjN*|U1tYuN+ix}P z-R8dgu<2+hFsz+Uxo?tG1fADIah!Tls9~0&^pd~gwins1h&}FmZ~37w7#0#04n&+# z<oHWEzn^ND$YaTZ zg)+nT6d~Pz0i@D-#|y>YI5-q>e_}?_iH6)Ca59L@$uTU`q&hPCtioi|Y|{QB#GIEkeSEX*+EU-DPnmCEgiP;yVcc`O4NKVeubH4V|@!O-o*p$vwV z%^pLlrjCV;dE_iCFsz?fR#X0oC$y+e%;Qny;1co-POYu))2;9HTWyA7^Y2xaERtAq z;9!~I;S?c_e*v`8xuy(6Yvdn^usb#**Hi=U^*9+s=1dk-@e3I-6n;UT?LmdX@kpT=FrT>zb_GO?#YDa^?9*lhx$JBvP@JIy=*^U~81MyVqJ}#Wq zb5D1M9uJ*MBTZuk7BV#3^r#ZZB1QiWX6bv8R<{O|8 z8&@b^8fOx5l_I@gz#4HhZ+*ghWca{^a_;IMfV)(#pS$^QOCi35YmRy2ca!AO#zDy5(+}JX+SA?pgKfiLo`iC!N~ShwgZ%Z z1sfz52(e_#|3TcDM3D;Nu^5l<%)Q^7Id{JO`1BdT9h3|t7z#2R*wP=^)%MZ;p51Eq znzd&8=(&Lu!`k^x=PZhaUwhjZr?D#o12YWySNt`%U1>Wabh+ogo^@I}T#5^8G7A_&rU{%}Ar;S>tcF=3J8H$a+S5>k|V#$Jq z0>j-YLhAnlD5diaHxR9%e=Nez$c$V=_PN*PWDuD%UQER=-H2iN7v!V?WQyU7DB=UM zGxxhG49U_?H-jPr7`96Pr7i8dfefh^bq2FPGEJP2{h{EI3>dPG9EN@I$W=|8n~1rs zdO~l84yBQ%aRml4G@JC6638M&{}yKHJ4Y+~6enoTmUojMF#i#Y?{(f~wWfC-Qso|& zDP9_75^;qhwZDor;wawwn0HU}feYo_)jt61RCuU?78OzI7^pDU#+WCBNz$H4n3bDT zR5^5~j)oLRi4#>OHn6F|Cbp0#%?ex?gF6IH5ja!cUA;Ah`-0r+X>NIxH{oV*UEh{! S^$E(gj6Oj*eS@L|wtoUMT)GAT literal 0 HcmV?d00001 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 zcma))U2fAr6ot>^r;dY5OGsNFZ3$2yO#zD+BotK9ra^L>CRH8sNHk4H!N~Shwu7L% z;E5Hm0C)h22Nu8zSObed+?hm`0^#RjJiasceskvB`TFDY7XbHBF_2;?$!K89U|`qV zhud3rtKB$F=2G7Kw|3GVAS5kccsUz{YK3=PaM6kqU{-1emHipb->cgl}^ z!7v}|uq&dNGM_p-3~ZNSwl2ds;bGF{{!nDUf86|b`u5!$hM7lR=p~yB3zeoO`aB%i zZW4Lnptjy+$kgSrFfosUfeQ?)lgjEcIPrxN3g15wkb~0oUd-AKVa??7T)W; zOKMH;Jf_MmT&8$&lu5)AMQVQ;E5uQ})iLj(<^$)dg{yx6I#jr;fff}}>KLdn*T$GV z!lY@>Buwef6jd(WsiPs~QR0~@6W4J=gH5cVNSYORX$72f? literal 0 HcmV?d00001 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 zcma))-)<5?6vn>++Fj^YTBNPEv{G%Ag1Yg>#9&P9mL@0#!%}YPlumG({X=$_M!nNF z(i;;md;k*@pTP$)o*hWjD*m~cojo(>{N|hQ%$FaZJ_C4wl7_CHs|O_ObM2^n_ul)KEl+djr#s0_hE^ zJ6(p9<)4T&7Le1h$gpu)ndQ4fN5rD+h)1K)z*XcK46AkUqEYMA_Ik}0L$UGqs%i#F zEE_Pe!tij4kovy>vC?cqdZIaUk44ZKn~`hyeeQHQ8ARqx7E{qn88Q@pL0;@Zl|gew z81ex*n)}@shGc1{tE0#OhON?n$*D?Sj;;wA0e{4i&Gnicu0zNs9RR zRpSPU3vQA42Z;ZIIB~0KgYt3VILAKc@$2{a>yJ;L0X#s(K#E~mg+p8UL%Y%0uW#Ay zPJiEV_d0FYF_2+cJ-_X~jbh98ll zh%yhF+YD@nVYZ=yDCR-jI^k2Dr7 zSXg3sI7LYFUw}mETuTO`J@OAl*d3cuXsH4BdYlX*b0&+K_@#^(O1~h_w4lad_#%q< zkPI#SZVN-YveC<-%m9Y<%73ZL`Z7=c%%Y`ysJjxKs=SYjc4TC zPx?YHhmNI@rEwJoax|OtqEg5sL;n_L>3fk@>J+DF&Q~|nA29b33nx17O0uSRwy3g> zWr`QanM5p6lI9fzu1_$#gh|t$Ntn{z zDXO}3rvnWsj}uQ-nYe+Q8f;=6MbeyrmnPsYfincoRX11eP2u**trwbG9p{~LbGW5% UOSSrh#I>A0A#wUPMJe3*32;Ze2><{9 literal 0 HcmV?d00001 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 zcmah`O-sW-5PjRGO~16Y*7{k&TkF9fc&i9)Q7D8KtmG=&WQkjntfWcNpXEvL;1BRe ziIY@Ns_13j%+9=-**9(;fy+Kex_;qkyV z#?zUwBZmCB3}ke{kZpG?25q1mQ9>5Q3UbIZR81L(QS47ec*CcjV5pnQ=AOkvnZ%!u zT68Dp3{CU5*^@N(5+WZ8UoB`8jlN8} zmL@6=ZE+jQ(igJ}Q& literal 0 HcmV?d00001 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 zcmZXRO;1xn6o%h(+j5~63oU-)M+Fi~G2R%L8WSuUAq^NSS6Pv1nbaY-Gv@Y|1pkc- z*Tw}gap4be>;Eynb8SM3oAWVq&U4-~^Xt!#p8y_VEkqz#cIhB;!$H*Ed-HrV+Eqgx zt7NQSE0cyO3KovliHZ_s2hm>dSogCKGlHf3)VQdtQ=<~|N%ayPVphvUwC-QV64$c|vX?d&L1Hp}Ie)cwz2hQH;j zATURQTIXD5H%pBjkTmnuSd%>y6q@U?pxAatx{Ly@R!~D-Q0*A2cgMq?PTzWs9^?8d zi4}KZJ~=FAAIwN_`-0l3r{c6`^M4H&TKt0R@f--NU;&Fhx?8~<%6t@M5B(;gI-ERD zx$DMhU%xcDvZ-+o{kHr=u7&_5g!JM${MnnhgbK5H#sMxf;-oz0eyB5FV)mF`=u55d zxbiK(zD8SS3-Ag>?BF^h4`LB+5DUgNEYo_x0V@miRS#%woZ(jM!5QwHqiTcz`?T+< e>^+qnVKAA*$ppb_?NjZ` zzMub~->g;ARaPIL`=h$L?<5drk}52i2k?`EDuMR2H5*B% zW+Ty&u~WT~VJ)S{wPa2o)eP&bp3LZ$f*OHM^V)(INowY7WMq0?PuK$0Q^t%yFjjgq zZd-;q+ausRmPi_=VIQYeXIEUHCYqkneW(}MGtd`1%6Q!}ZiSdf4|MPML!d!LE$Rd| z#tc&*&ZVYxYeJh&>M~+Fp(W#*WytTv#kyloya1{ZRIv#@#%|%mB0L^Gouw9_h9gAC4v|BV9`sGU@2_`pu**TfU2w z%z6~;WEQh#u1HtklG$r|3YAXI=$0RC*rlQ!y9H_&WDy10o(NpQUV&CO=2N|WQzN7O zW4#jtBf~!I6KHZ}yGvipu>Sf?0DI6Wx$Y9!+F34xu6XsCDExk!J*VP%bQ4v|Fw>TR z7*McZU`I(h(WI8mMzyTnznIW7wvjezr3q~I;FraqsHQba&zqYIIjyRsKDUtLQkXS` z)){72w^;5&mCEf2>dL>TD;^-xM`h*=vdg=_+_)L9s5p)jlt&?|O9cD84k~HD=^=Yg zBj6h9hj~T+ciVuO$=L<{JVmz(`pU}hf*(K>!2r&H^*SrC+pUx}pz9*4cojzk>Ltjj ztTPY%bP`i>75nz&{F1og6nb~v9l)m-klVQ%O&g~T@D-tmpC9xohKb8xG@{)O&VHu)sKSL$xS6Q zI^#fGwew>Nnu0edN_WhO=%8WFsF+4Vz;9nI635Q-WLq%gytxcr>hDc~?Oq)eZMxz< z%n87U!vS2xRcW3SI8kQ4N=A8?l&?tXUw|onr3LybG`$z_ns;}`JOm^w>?I%C6>ubU zRN`;cGE#Ygv{mFJQFSDW`U&6~bUzkxLjlFKt>kCKnjX`o2IaI;@fL29-EkHq zsoQeCcxMX_KvFC4wiN3TAKu|9QF);=ELe zrm~TA$-~@w9hSB6Djih1l5(WVgRbp~E@VGA2X?b3&^lkW*Db?l%k+CivesoIIlDAm zJdRvcIaBgJzEJQv4=;D|D|%D$r94Pf2STv{0=SQ_ReXbQS-8RrXJ9mW@yU51N2HP_ z@6Md)@PMlrlk^3~(>W`lpEl&pqS=)~;r7!lD^=4@Syc1Z#0~OV!cRW_D*Pidehcv_ zf9isPU!nfOPgU5!{{cS1*~>uB;#AS)MLLwpx2zyKnMZ#t zOcqW*#-Mx-J;u3k30jchfmtRqNA3;Y*5=p6X~8%q_}+&gUMt3l<9spB&s>*rhHC%7 zg~1hEoLs@>$%nX-$4qcGXyh>;3stY+!er10i#$@}p&I8~W(C)1m(63rS$>G?zu{K! zHsQTng4WF{02V7^v$8pClY3jDxt HRrv8gp~?kf literal 0 HcmV?d00001 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 zcmZ`#!AiqG5Pg#-jmBzfwIbfUwH{nND}`DRgwTSO+&AeOwyJ+WS2*$E5KhY~6J?Q!$?V~FET*zhi&*B3^5GJ?OSzIFmnIXl zWU11c(7w?|*CRq}FpLTAq+F-~E$nvSp-l)QZPc_W5>-9QBv*u9RHibIWurs z`h{>7{ilCT@Sbv+aT6=uvyx$NgyX?5+Pa$8l{T5}U0KtFK9~QF9Gh3J2lKM2Qgx@T zqj0X=PhJ23 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/OBJECT_NOT_EXIST.class b/libjava/classpath/lib/org/omg/CORBA/OBJECT_NOT_EXIST.class new file mode 100644 index 0000000000000000000000000000000000000000..607b364f7ff16179e4e3f686f7027fda371be666 GIT binary patch literal 969 zcma))%Wl&^6o&uF&2eyP2}uj|LTC%5DPXZdpdc=BgGd{isx}cDsHVv%7}=i6b`Y@V zfnbBgf(Jn2l@Q01s8W+4Sd7PK=A3W-`Op0P{rv}kyQpeNF|5gOU`l^rTAjnjQ?t|9 zZCcLJe#bd#zG~Tyh77~%*&O?06brxkp(jpaR|Xn#45fGcJvUux+9Gth=YHbHo?uvr zRM-_^M42yJI}B`>Va}346!ReNa&IWI{k?-+@7Mj$47rDH;Kq*_%GI_adOR4Ib{x9F zpuW{*$XK#3bS$8#;lh-9OZq3CNJQB&kB5db)#ublYOW&XugOd zJ|I_%)7~(ot6SYXDhy!Qtp1n8tnUUgq?WW8^xnuj(Wfqif=4o7DA;ls_QW$c>1BCR z)19P4^pNOm8d(}wpdnAQP7f@F0y6Y(V2-}$X{AANisnLXJN*^&-%$Rd@-8K7YUeRk zKEY**7e|>yT&5`5U%@JI65iUF_dxN1bG72tzW|?8VM_rGDx%aeFu`0KWA+G>rahf7 z%eQ8zI;1<<3Q`#*o~qKZjtvFYv569CPQXiJutVSsf%CQPmD@A8ugR@9id!4yopSTI Wu5L@U>V(9#ygDIq`UXWQ-24N?iobCH literal 0 HcmV?d00001 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 HcmV?d00001 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 zcmaix%}!e}5QWc#B$tMi(3IcOB9?)wy+U0Q1wj%d&@HW+pS`(Q7elZkUk8=GK%b{8 zq%PR7Lp%o0ffy&*q*P+z8Qc2i%o+Rc@$U_QEvyB|5Iz~3gytd%>)(Ft?S>q_i}+k5 zGCa_+(Wy$E)UJKimvwU@17r!SlO>&0+UCz#_MI|1K%THZ3G|J1;<(3(ji{-ea#sPS z3G-*-QiRHcEoqhLsb8KU%&{CFyV9nt*Ewhq=#cQb&Ssp@t}A*2nY#^k9)4H1?g{y- z(#q8cQ z$RLM+ckl2D1$jKY?U<#@3}gI4^Q`;j0XS! literal 0 HcmV?d00001 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 zcmZvZ+b%;v6o&s*Z8ue?I@CEXL>v-3;*vb&_Y1w8gucym88C4{5?&Cvan|6V*Bk?FL2dl)LxPO&GZnx58J(FH5V~ z;2~xRgDl6}inI~yo$c=u=z!2yFgkKVyNakcW$HZt_`D`gJ_zYerIp(vbS*Ab2+4xE zkQsC#mqkAY2m^uAveax;r9Evs;yM+=+W?`2|ByEo7K$hB2UkB#Ic}RkjUb6l1)L1@c^Dfh{IuHod&^ eg7M!9ha95RQW$Gf-wMoguqoCcO!MCf%zOckqkt;_ literal 0 HcmV?d00001 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 zcmcIjO;6iE5PeG%LX!q44TbcJwkJnOje5>0Kr11I1SM4t?P0Zb2D8Yq!`g|$U+Pcj zp+BHMs_J-cfwItJFMjgOyqTRhGr#}*`~~16-dC_D(1=aYj;BHUcrZNbwg=y@$WJRM z32a}fg=&W?3JR;hmh=s&l%%2SIVGup@p`KXj^ik$W!mZ8u}7)VQP6P$`{SNYIBu2R zS5umdRXC?k%W)0!njL{3|F5W1^V8C&S*qjcp|=*TTGziHTa}afEYv>BCa~|hfw|z^ zR6_=o%1Jy`I+9Zrsenu(@YZX6a~^eKW6tsrX6{&~X5Gz&@<~qULZD`ivzRO22sFJ@ zxA3`jF}-@*WKzLXfxXp<9Cc6Rd3V@76DZ3|m0SvxINNFVs}rdNcD?(t}9-CrXZ9ee-) literal 0 HcmV?d00001 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 zcmZ`)ZFAE`5Pr^ftVk$@7%-3o8VI3&p%_~F>NM0b0Rkqbi7`!E>dN-jRccEf`J9G- zMVZ!_DKl+9_eXWula$!LIA0{)-R`r`?z4OP@BhF425<*lLxf?@^;$W%)5;agTWf_} zxxULA;t_9mxu+qW9j#>6jnk71#7GJ`yW#`lG1H3UO8rC1i6SNXKE7x2#; zn8jHQ35MBmbn-EA4(Ewe2wdA19=AFH(dCp1*mXT2&vHYvyoL)W70zupxu+wEOD5(p z&oH%Twfj_p*d&(ug+=Ea0lF z`8Bdgm4-qQRoiLh)79w1B6OY1mQCEi2gIghJFdsTHZ-KE_Cudy+v@d-R!^+&H+War zu0vK9!&!y5EIKJ)x0(!>m9sJ8WEHW==p2=F7$&4PjXMmWRU3%p%4p?8#|@|37eS+( z+?n@K(C{_GwQ<#tqK|->SVNKFl#E*o5@Wb{tVhF?X;|!@-^>ixmD){0Cxv3-RhOD` z?igf+_T^mXb!^~?hQ|yST2BA)mhkFZoI=^M4Na8rltJI7o@;X<8%J##x>^XRjBhkN zqmCF)yi$B(JA|@@Z9);h)~MVb|M~dH1co%*&+$S738Tz5MKSR$cIeV-aZ&4fcE=X> z9lbga zu#>oQfW=ZavGgadXaDj24Z=!==t&{~d__C=2(>`ty+)T-(T|o45RpNaY?7G9O?*fQ zI&S%7W!xnn5r`&kzoz9V<)=P~B&Fjcd>j&8N6d$v$-G5!CwqXq1AI2j*6srd&gb5R0c$02ZDx#tcL6}U4i%S4W{NgNIoyD$QN{8{Y{vbsK zqlrJjA7wnZZT12zENQ#b`<&-I=eg(h@4sJv0L)=SKo>*8b}Fh}t*F_;*4nCC*xT1j z?uKoabw@ymVPIc7)KpWmD#4n72*Y@LR?T)?ZO_!zZP(GYD*ww6b&Iyg#xRwySoNTS z`?02%?6Q8KZqd^z?@*kjIKvP=)XX|%#`Ep;z9<4jmrAB#8SXMex02jt2=Pn-{R|Tq zR}e9XO9EmHL+$)K+2@8;mNA532GM=bbvydovqF4eMnWGh%NW5ZLu4rsG^(6Z9e|U& zA{eg75D<;xDg$`>bs0A>PAwnk?q-=`SjjhyCKnB>lHm>Z=M77LQLpal&W>+uEN_=I zb60Z=9(yk(bYq(9k;xJFopHc0c1ld^zLJq=#0D1oVpB3iNDRHaHA6Ft!M=oxw7VpB z=5(u#{ok}|b=MyPk}pBUoPayDJMD&_hnH~|^9((_MA4VSFrp;SZG;bt!E5o^x|o~8 zi+u2C-p?>L22jEyWCSdBIuyED(;XR0Sl~8$Y?0yz$8d>O>1auz?zVgK1Zx6T874dE zZcUJpg~A|vRT{2DY>$&+x>N719MrtDZP%TWo-_El9BiG1Sw402F`xrQR~TJL@Ij>y z1f2w$R3Ji84`hmaDOx5R|HXf!@6{0oP7wcw#1Rs)v145ON-JHMpnIQ(Tc?~HhOvlA zZ-ukclm=Y$^rYi}aOwn8%~XjffNg~E(o5rT0^ufR=*bBbx^po(LUOFc2~z1FNH$q~ z0k4VW4K<>9OmQC_F!6(!ri+WXh1&t=YQQO`(#M!>qx6MU$q%cAPHfPLxQF{5-2*HH zbhBOzgnr`T7n16`6QQ@jVM}|VMthIRW52zIlyvGllE+wScIQj^L{dI?kn$AkUg?}y G^x1#-CrRG` literal 0 HcmV?d00001 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 zcma)7U3U{z6x}yXGf5Z-X|a5YEmFt_cEm5#Alj5-V^dOTh{lR>l8niebf!)xg+BVO z{uXe#T91g(PN1LnM zE6!?_mTR~x#*Yg|Z^LjDL07$i)2)tHX|5S9S0HxNv`qJwz(^)r6Nt{)Z6k>h zBvgzdCXgzdmT|Yg-ZY%5-s~9yV`aOg_iDOh%I{z?>UPadfs5srX($LN#$(sfCGqJ@ zD0bG`E@W4WNu)8ZU`!xAjKzHwr|=pT1R#wS*D>^UU)FRc8v@+09arvYgRp{v(=Rs4 z?zIgkfeD;daSrDNMz{1{pD9OHivmIy7!OfM&D`m}By$gxK@qbpaEc-aHJ~oj>J*X? zcvHn?Ow)gNdxM1Mo=c|6by*umUqx0yMqpytpZy3GlbBMFXYB@5^NwRXalA#}mwSf3 zX-qnX^k-7mZL-<#%p{S6CX4>IKrZvV%0nyFu46xv&K9yY1@8zAf&BgSKat052fb%&y9S?d4%^gbCGLJ%61az|f)zIJa01miSyUDGLFTyou;GbfTZYK}IQDG? zU&~U}1AM4q{hB{OL&0|(qgObh;(KtElO9jtax_E# zl6ZiYing>l?e7lx9J4)Qw)-n7BgKl{cUs0BQ(l|nm7)81M$Tq*ilaZmD;!Yx#tWCf z3coZy1)rn2UBsXAC4wY>x_w0#YMb9h=jaH0>~vq`38*tflE8M@?>!jx%${Os+;-S z+lZ0*dO&c(OR3708sX{(YU6x+7w-`!f%ox20DYg)(t^|;ChGZJ+*rz8+rh_!q}i$0_J2;XK=3@D^}X-Jxe%>5NF=kg=@XFDk62d4NW zE;aWFwspvuG?s9ehZR4x3^W3D`yxl^vX+zFpNnKJjE~>@12vV1VM&M z2qMHVRL~6dd2@S1waP6!!UeOY=oQ7%_}&fr?M-c$VWz93w-4lo5MR%>0HP8^^m9Tn z374?I5ZqPmf@(DEO|mJT=WY#f?=(fPx-Af@)RsEKLO1tz1xb-0i#StCCGBOgf zT<%CK?9m%A9Xy6u7wfjn&ibS?R5F`ZOXl zZ-F9oPiP&WT^@e=0!EWZ7)<`a@awM#A0cvp=`R%a;XJKjN&?ns&Cu~I?VnT%O+C?m`i@cG(B_2hnPRXnL>chlsa%;VgeOJ@yfv)Z`E}1 zs5;^#jnOZGq>HS&$gyPV5UHR21eW4ReJ96FC39;<%^r;dY5OPaPo+7M`gGzBa+2o!{9(;%e{O%*O>pT&55XYT#x%(?UZ$Cs}F?xSiT#ZZ#b(3Zi_Zgjf4JN8kt z>$DuV@3@_A(?Et{eLBH8ixUwv-wwoS;>pm!97FLnf5UB0+Kz}k?tAa}u`d`FV;%NH z6jSDl)*b`fXP9ruFiv=w^te9~*$*4<&%Tu(E-}nK_Chat!mwOzYogD?q3tA*7Y^%N zJ%&s}o(L0*C>XfJP@Y!Skin@hlqe_R$tbq4gd&60=sZ7aH{Ir5|FFYQY5%>do<|xh z7A&kXJeVP*^)G-@y3qDQaX1Q&MdXgnD758(`#nwukvWsaO!CT$$>Lv-Q%$Hd7=egm zJ|s&EzZ=7lu5R^ms4#$Gv-)59vVj-Mi2BiDFb8Af#0j+^5s*!~$ zLHAT|=>5>aG_o|V!a$B@lipPdd1UC{!aRL1(#kHyDVp=O?er%se8%!eop)KS>7A!k zxq~YduZ%N^SfWVnuVI}yidUZS9%(*sp;ox|2Vjc|_chR>B1)YA73TT`b3m9h?U{rr z-I<}vp*y)6QW+A5Z6aUsqoz*C2KV7Dfhv zti-ZJ{hY+SbbbG%tkmQZMh4ch#GKMpMh3=UMh0Hz{Ji3l#JrL)kQg)2WJX2?uHgLA tqU2P!%p9O9Arv$9K*q5F^)i6fGDtG8GOz)8>_DAN3>+Z+44hy#7XW^0BkBME literal 0 HcmV?d00001 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 zcmah}*>2NN5Ir}|j-gO!ft1p)6q2%-edz)uT_7bTKxk0ZhsaIbVo2=BaoBzUA%2Ai zXn{&pz&jEzd=0!H&b19~K!QB@&di-TbLQMpKL2?C5x_~zMi3C_x9la=YAmS}h1=PT zdQ-EthVJP0tX0z^2nuYyuRYY%x@In^g@yZi)rlZ1u)~cSmRi(pL#rE4wS_wKqXNlJ zz@}w8@=nc7=BG@@aGnsdC4t}s<&2YcQo%m#7YL8}_rX*yU5fGMpn_iX zN$Ze;ot~9au*c$p-2WEpI@T6S13X}UgTk0@eV>=jKPfpF>u}1IKybv< zKBmf3@Gdm`2I@;19<{I=eB{C?UV;x3!x@}qM52 qF_w6T%kMC;imRV|fH1E4@E+S|oc}o=^TmcXgP3vU7r5?{$^Qf<{1z=^mEz7pN4S`T1Sr!Oy(n3cF zF#{1y3Y^Ycw%qBoYtr2_Yb_}d&pUOqRW@Bq&HIaC@40m#u$VuQNQOQw`#`#Mej^b$ zpS2G&fhAuonPgeRnG@o5S`F#yn8B=yVNPH^=q8A%<1Ef=I45w%&!2n@yo(Fm=y9%= zJXf0So)XuBxciRlsjc+z6d6-n(>@fK4Me7brQ+UmlTus?Z2Bn*X!0k|HC4vef?gF) z@_)@$d{+!C;wsbE2l7R-ln4Th3nfNPuNn9Nmjxm(%~pri5cUrDIb0Y4*yFk?ri_MV zU*%C7%Wg*TkwA1eTg+}(b30L_1!BEf;n7|cs{&JRH@OhQ4cyf5vB0^e-RW0(!L1eL z0nzH7Y#8_ipAw@)?3VN#dsJ_>Mn;Fg=LXh6h;7 zZhoDY!HTNoF&D!6>dJK{j$|4CX0VzDiO<>l9j{l&CzjU(Y-`91T=BQhI4lD@C@@jV zeYNG-&F*ks3w5yiQZkSKxf@=9Jm}kvmk+5k6t_Hef z96uUFesnF5MZNW(+7vq8P@Dj$-+i*IB735`rl8{~sv5p$iu^GScpS$y@B>T%y-TLA zRG887KGB@F5iJFrk40igddcayb$QQHH~4uU#oqg{qM9JQ!1f67T>&)y@d4mh<1Ecl zaEzp0A^Hn{CZO}Hw!y}m;@9XM;5f}$45x6KE6R8aVV(!3Q@>-Tviu71BfK*N(Yu?s zX}Hk^I@>#pi+GPlG{YraCR7aXW4;f0lcRDyl{&)0Uzqs~OFwgZoYmGbR#Sbj7!pYK zAs&;Jf>@aR1F1?V{$Z&Sj<1v|k@)q}gI}@s8lS~)5q@I`9H$Aei&+#fhZ5No2Ttb5 z^DaYGq4Rd>J6Y_y07CJ5LztdwPrIf{ml*CN*Ed+>s8~hm`Rmu%4O%q^4tWM;Jnq_m sgG%2%OAWf1spTVldxY|OT_&L$xL1zC;(RsaA1 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ParameterModeHolder.class b/libjava/classpath/lib/org/omg/CORBA/ParameterModeHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..07b0e3b30500482dd7f696b2bd07acea610b3e85 GIT binary patch literal 1227 zcma)5+iuf95IvhZF)^ksEtFCyG_<9;KrF-)3PK8j3Pd1?RCxg@+9a#s%88?8UBq93 z1R~;r58$H^v$o|nE{*!&y^LqhWp?+^-(SB0Jb+^&!%*<$(D6q@r_p-%wC=p+l8=NE z^0hw@FMMwxqzQvz`H&xR$K&In)9M|HzA}+JRXp*f;yq6|Z6yUC=_NzZALK zVS6517DcUHZOq_A?^Yay_bj>u8x=q)}4-~_0DlaiSqlCd~ z`+@9>eOF)E^%=D2wp8^4pjSh{^kwN|`dZLS(rdb*G+w0L!|)G9%Rga%qd*3WG+HzR zk6@sNC0f~(rc0M`nPv^J5(Dg0rp~oAK)Lb*tH&sdL=Mymr9lS4ozZ zw}xvmW#Br1jBR_fwJ5XAayQn8Ur5QKF; Yt#qyyK?6RTpy(iU@4;<)ZhGjy0aD05*8l(j literal 0 HcmV?d00001 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 zcmZvZOK;Oa6ot>^(KJp9X=np|0O2L2LBc{TgODIirB)U%lfZ^n({u=fTu(K25M{+* zVu31Huw%oILY#2|G@=X7%jbUQ+?k)hzI_L97q?2t39J}9^3CDM?>>3{=%N4AM0$AK zv)0%W3Ic1hzx#=@y$?fmlxh=~FelKQ6&x9x%Kb?B+nYfzPIY=*!o0xJJNaJv+W4We zT1NV#(+JF2B@+`1h)|$LHvbKjO$hIAZ}NCYV4-W`B$aVGkkMEbKke>zUjN8{W$}F- z>-2#@zO^wBD0Iz%@{q?;6*VjhoDX!Y9*+s|RLC14$d&PY(;}Tb;1cV78G{ z7ttZS6>bd5psb2AJb`(+_a}R!6=dB-G9LM1YIQv7Q0<~zby1oE%V$Vj=Ca&7P^r`r z1JwVg2za3x+o9Uh?zU>DGTm{Od_;DS9E#vua?NOb+Er9g(^b literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/PolicyErrorCodeHelper.class b/libjava/classpath/lib/org/omg/CORBA/PolicyErrorCodeHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..08c114413297220cf4c9a3669fb4a2dead7c39fb GIT binary patch literal 1800 zcma)6Sy$6Q7`@YlKnb#_Rlp70+Nwm{rHDWQtyDmYbw8fa#&)nx>NG|9Pd=y*#UtnV z1N>1Qze!t4LLPicGRwW+y?4IMpTEC;1DM1+1p$WhmMCggrKqJ=*XQT7HLJ|?JBvbC zB4rhf$40qo2n8XAfh~Po*UGwC)K)jQjJ(azHO)ZWfc>7$xcH zh0GL%I3er#201l3ah(F=X3dcGPWUO$#&c5oSrz9n#-KJgw}3CPnzOQJfs$^8TN`^ zA#cZHhg(7(Bg34ElNgq$l!^t33KJ?_P_RS|<7atI@Cvv2wsFw)V-@MPH>X)6Sj0U^ zn^Ex;D-1`7Hf5Q%VcHVNFnY*XJ8s!POvv-|tM87SA_#vL+$O@fmvH~QSL=4C#hm`# zKu*E)L-&d=Ld6T&=)F#v{VucGUFN+Id^x1dZM|G4nUSnj7kOie%bRAzb9~L4Y(oCO zp)oq1Al-q0LSJ-M(Nm$3MsG&%aAFtT-{~WO2tDO8a2LJwRGS;<-AAJy96>+LxWNq! ze5J*M;8_ZY dGM@Ds|3sX^W&9;x5rZ`T+A+@XhDHIr{RcuRk23%O literal 0 HcmV?d00001 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 zcmai0YgZFj6y28uClf}+s35+@7X&0?-^AKNKt+R4LZN8ebP`4w3^VCug3yQB)>hlv zr}lqXmqJ%reSGeZ>gv8pN|H&ym9=Iv_ny1YKKq<|?)~TA-~R;Ai$@9?1P^wQTr@IS!%^TDXr9*>^+-myW+S7ic_Zx#Y&mOMrh87n*U>pC z;E&leMi4%z8XB=hV0+xOj4Sztl;KS1sf-~IirZ;DGpReK{4Ndp-8nNSa3ua58d17% zm$QV~+tKMUp5VB2A62mfI~9ZkT4$|%DWXv)HE!fw$4tA%jD}sx?no`1b@@aR(kP!vYCUAUsFy2SydZb;AdXi9IZ_nuf_EC%qS>=R^130AM zpunzbClj&DrbU*AaYP{C-bm)=Y=>&Mct{rQqCp(RaRtW&c2wgq2n{E2lBt_D++@}< z7fjb&G?H#w;B-fQv<-EYZaOuD(Zx{Gj-k6oQqP!rt^haL5igeqRid=fIwREt*K@X^ z(*RDf%IGX-TS2rSA`9!Zz+gRh8-RP_WWuE1Xy;@Q0%tV5fENWC%o*l^RaFy3051zP zRpd?z@v4T`(8szd31KXyjjU_hRzZww_1M(_U-J;FtgYyVig2&lPD(&oC=?;L&4EpU z1RAfKMuySt@%UR;p9-5+&X6V6>#d4@YdPv!S0M#OR1n*=f7qEB!wF&lLo#*e1rB;$ zRO1D45tkGU*Hkl^Xt<0xCyH#76wJ^UihbpT7d6W*Bc~!|E3&0}y0u)p-({Gxxy@g}Y^IvLx9hPOc;p%P406vu1YTD>q-s`-wFX^b(si+Uz+ zD7Z%2)%8EnKbRaH8yfGQ7#_V6za>@Uy6 zGI}l-({t|7|C@?gOB+ipor?9fR!pETrL)ivc=A`JL^Oa8dDLv$wq?s^HL$vf*1ut8 z4O`i~TP&~Vq&<(D3Kj+0t5dX|+zKQOOR^s|N$1I2p^+;1NT98HX+r|>zGmS6%+$z0%=N2q#ysA}U)$8?$1*oI1s=H0Rs9?%M= zg`RsK-zfN6;AnL~>%J?oG<+-TQY#QBsS(6|e5c`i{6LjT6U9*d9SOO^x7YbhWj!GxW6(#CmHUQk*p_!cieJ+d_YM|fEHcx3_<{^RY2PlaC*z6IZn;Z+2F<(~!w z`IOT@ADZ~oiUxdd<(GpU8{#;Lkphdu^yEhm zqMVg1I&l`SlSdnW=kNy6RJ@7)60;%NHqdTscnt&7U8@*e!G&^o!NTM;on0+}w-k-( z>IxTe8AdTiC>3vEyaaiR1Z1$s!YfGpje)0_dK_QF)#=c?t9XB;JET8Ds++-GpX&aL zYd|5JFi&JD=w3<+T<6Ffz0UJ4a0C01K|2=K!y|TyfyVGNoMApGw*{LhsyyjST#gp- z0beLvRtKCE2qwxV|&hMU^lv_ycej*Gi=X>j(rh0U60$%KyYU$w+y*6#|vrQ zsLwj5@>Ce|FWr$F>@zHy#WsUd^ZQ)KB5oMapffDj-4QsFGZVs_QfCWeL;z4@cuLh?_tt z9rv)IV*S!qb8pOrf%|ws)yMqm)%cf`LEU$y6o#FQ*MFtbHFUlRH=x@x=jLvNLAJQZ z26nJZ$&%pO)q*pU(gPu9An!++73y9}FQPAGwSL0*Mur6} z(Oah#*oT5wSf-spZZdQQH))lC)dX-rp3+yB0IT!^YZsIyN)Egw${|I(k4S~sJ0ZzT zw@H?iSHPWwSxuOlRhr=L3^Eqhq>xq$r%iDhHnA1q9%4I-D_P&MHo>C{g)#1!a3^zc kPp}u^OcWDbIXVN%1lCuoFYZ{LtN>4SOPO}-S>#pz2Udy-ga7~l literal 0 HcmV?d00001 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 zcma)8TXz#x7~QA0NrtIFxCrH9O99&i8^C*0t0gT^jSaT72#8^l9MXa5Oq@=j#oL>{ z`{slGhU(J7lC>0{T+1Kja-W%5xlG7f_F*P-<~#e_dw<_Ir~mx>`yT)<;0q0X0wbAQ}=ffyRa z=X4Olz!4l3=(DN<2br`be}!mHEtkMCS`hlA;{;yPa8h7@rwGCs7{wS9RXl0>vSc~F z^zND!S@J6avlHFG-77sMlYr%HN{_`jHxW}Z=WORcoT22S0jWD?q|B%?|I~tv~Su#4i^Om zADDJSYIsNBSZ8lsnwu{buPrRktu7Xq5_p#b6Ve!!TXhbYtm>G-oGQa5fkV&fl*zUJ zD|sZ73|la88CRHY!*X0tKrCulk)oVdX+@O3J0*$xzHvJ z9}A3izG+q?1YO*y+d5Wp-M}ZfAuwF3NxxK;wybd$1;%@qb3O{nX}HB9=uA@z8Laq? zvW}a$t!ng{!0EWOCY>f)(ARGHUU%z8HV7nI{KjIocjIvqI9aUFOwZhlPQBrWqt(k~ z9e1&=p(b#uQ)n|`8;Ai5=qql+tH{fiIuiGXJj0WAN{#El7%l7P(F`Q`i$^K18lSSf3*HCQkCFJ9Kl-5a zs$K)r*u$$42Jk-2rzBp$UaqLk=ORes7wmh2!>N&79N*!3J4Qah=nHn9!g#cE0RxNz zhSN`R`bOq4&hBEem0k~CE-_^>*nT(+CfoDe#BKZ+<07GwconZjkdH`4L5`+(@%l6N zL*`e!y>tC3W^SZrALG43CYApU^O-*xuS5;wD&v*d5y}NeE`eKIy-k579@KYm5@wKn zG>|zOWlzw(_wfNyj&Mf-AM#gH9qha-QeNlr~k&F*h&9| zxEowDBvl|C+qNK?>he%Xe*#jZ?`Tav32*6Xk$u z1=T3Aa!_$i&@uT0_gm;;`M(d4!ty7u0f(_kxTr__XX&4Ed?=mS#pm(r{YamFYU475 ThuC7YYA&8)LGEon_2JQf`_6Fa literal 0 HcmV?d00001 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 zcma)*+iuf95QhJ4ofsR_BLo`Cp{1p^1F;a7sUk|HLQ&Kpn&vh*$trc_#F4R!`c@!; zh`8VZcqqiI*GdyBk$Pe8?s(>#e`d#j|NZ_0;1wJd3k<~|>^VWd=N#5Qy*+R~2ENz1 zdLQ^*9;#3nRxaF2*YVv!&#AXBcqdYkXV{vK8U|tHwteoLMj?0mV#|=bbp4ptLT%bv zrl>IF_q~A^RT&mdtI41o23@XW5qAt|&>5C%-hiLP{WcF961i3jI|mFY zrNPyk1!p9s_b#qFA0$Z_b~8R>*;6Vgb1S+UlI)^sWg;467lTs~y)PMf0gHMoz4g-| z4mhlv58|3d6(`sjU|POpl}tU@Zk4k*Dz01;8%-#QHU5iIM~Fh;mF39}-eQdZ#3j=^n`v@(Q@0 zG7nOwW|u~IFol%D8WeIifz!q~4Uh38!9B%R7FV)=V10z`YlRZmBHZUWxaZhQa3-u2 dS5D4=GJ^e$>XRMIlNC6h=$10>*2~1J{2wwZ`UU_1 literal 0 HcmV?d00001 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 zcma)7-&Y$&6#ga&-DF*C8wylNA#I`N2PG|9e-NNTpfnl@5==|6#!WH}i^*=>Y+CSH zJ)Zs-KKWWb3LJYxpZ#}ySMTgbLKebl&dJX1%)Q@t?|1La{PoXohX8KFl;B|)G0aNB zs8tfF?ApS7V%4Z>rQM9yuy^_clw|U88I5(r|nl;DZjYRVd zzLZhsGQ0>V=)pOL^BGO&E6rMwo9k+^${B(gqoh{zs;Paty@dBL6x;3E1Y1Q`Y^db5>J)-0~^hGl9cib$KNQj@vodQsB6O**y1X&>MxLR`>;)Xlkx?x&kDbco~K&i!4efMOg zM0TPrwp7Y}uuE_Z65p{*RkZAcn@=D_yEuxR-cj%_-lNWKL3Bhvexeai3qL>#PAf=a zilOJJT5WO(vkb$XJ+d&rSjes}tV6*Px9I2Vs>rKn)h%>5{ z!>1C~8Lo9Idm4&@JRZ;~AczZ9L$BC}7-_UYJH6B0se+76JeKeoZGzL5or6-rDn4hJ zd9^%T(zSLa6+si(GK{$lPRoM|!Rqwa$nBY_S#&zy?aH2QT5TD-^n5fg;|aDTkRsPR zGd zfJeD+JS-GH{Ndlf<8813iU2T)y+QFd>5gyEW&G?|tfMI43$pQJ5UQ<|j6M{xOc@8L zP0KCn?G|+?7C+nrw~1r%(9{9GJR)va#o_&y)cTINzDJP8VLU&^8-fmlc!7|(0*J+b M#LG~pc@Mt&50bJ=>yGqp}bCgHXh^ zSImZnJGfgw@qZ0=y@4C(xQF{xcZ`2A9X_K1>Nl4v7`CQSNzHG54!EHEF*5VkLXocP zp^hzVQ?exZ<#fRrqUEjU{U{5=c9!l58I-yyE(fH$Xqc&pI@#q6RpbqnbUcPh-HpAq zV?PYq?g5vhxtt#LvYc}IFK86$$KcIgl!wlx=t8nYARr-#lF=dXD18<0OND)U7X(jefNHWth$&&I` zu$nOU5~gaEhPXX}jD^)H_j*N fW`Zk6XFwUk`a<=^9m|syIK9#>Wz?-FkyrUI3M>Kz literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh3b3qICWI+;n|s{~#wv{eb+O%;ZY{g4CkKlFa%T^OX5WO7&!-PQ~yc869N)nZTZwaEjiA2K7EZlG=p-*TWW^#rO8o$YfvOtdu zKfsUjSUm}Z42iSop6;%?_f~aP|M~mtH-H&rGz1ui95)|#j`Q)Q^v>c!e9N&!uC!Mw z@O5q#xT_(^(0OE@nsLjt^YL`{i033j%bc)44C49Y`s!Z4irzlsDgNYcbG5Q+M1l~%=`(9wl%4Pl1< zyj`rslXkN^{6xAUC;5Sa9`rKkyTZ;}Tsk&Gw-1eykO+Yw4BW&mhJZL==poW-3U&$2 z&L>(i$PlXLOUE7D)i6ZnwZZHyZ3vsVhcUv?DnITQEyvC?^!cdEcEmo02@T^6U9~tQ z&A>fO(tYH)+%LG|SV(co_hpV@I#M64VYU=a)IbdP>9TSzHznUUEn%K`aGA*Ufa~nk z3cS3DhNM(3j+>?G5%vjpsf_ylvKQ=9A{otuFpWnVX09cH&J8@q69%JSim@0k5;1Dfgo9birY`9Rsm0%=iN?f(KfoVl zoVJ7n6ArUGZ+7O*d;9bI^$p+vjXV^FdKkG@=(|?8e`B9n*O3eyIptm+8bf))U%2J* zz_t3LiEv^D-G2F%(H$Ro#8K&m4)+E;k_ny{wfIRsGcUu<%#$Yfh_VQxS1g)cmC{ku-O(>yEh+z|zB^ql%^N#8(wPZAUI(E5&Vta|ALnv9QxA#6!{V(O7JUpa4 UwXAC{h5AvWNL<#_y*rt^KeTU7egFUf literal 0 HcmV?d00001 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 zcmZ{jeNWR+6vm%Bww2W~5D{U3$eZj%sjv95K>`?px;P`a#J`rVYvzTnT}p@YtrQg! zP5c0UDC4b3%xuL#wxTW*9 zX71Q#!*C?T8AkTCBTY3mtEpD%`-bjHNHWaz2DWX-)#|39?z)blwZvbBgj>_BV}^-x zuXyjcZEV>Mqezk?&FqkLG9n3$kY=!?o802=I>SIVS7nHcUz(ai@kR!V*s;)uTY)tM}EjK8-a%= z{UK3@rla{oNzu2ks2~NIVMrL}npq3lo~Y5Z8Vt)(Kse8rR=eZ+LnW4s910Th4D-F6 zyiBj)4(>9fMT+juPGxibDiUu57a18ABbv)H2zgBmo+0xe^nCgxO4dF(+$B}EZ=IEn z+gs>kJdv=d Z^R0X)E607TJi~Ls#8C8-mas-E{sE`TI&S~~ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/REBIND.class b/libjava/classpath/lib/org/omg/CORBA/REBIND.class new file mode 100644 index 0000000000000000000000000000000000000000..96b5717614f962bf92c82bbed01997c4e61347e3 GIT binary patch literal 939 zcma))%Wl&^6o&uFrH&JqmXIbudI?ZyngSLZBou^1oFE0<1U11d(Ig!OBimDK2LX@6 zf<0`ISnvQm6ykUsRVswbVmv-`&iUq_f9Cs-uipUNK~qD9p(4YXDgBvg4Uakx&7)qY zKj>=6F>Ia9jNV1D@Oy8k;v{xupkalYU-38Gbfq~Gq02q@J)d}jVLeizBf^L(pY^*8 z>@mZtC4(sDLF{mEF7hS0_p$c+L!Dvez8kpl1BQ*Jt%x2EX67gk-C)+6+~ZVlek7A{?h?lx;cXp2Nu?GH0=vi(k4CL-iMA>VBI+^FD=>nKwt}HN52$Q9pPMG@5C8``c({lxB zq=l!dbX>(X1=g{P3TaNjwFP)g;2ePqt%J>5OSqienka57tvlrwa9y32deshzYX!AK L;`9xQGT8eGS?0A+ literal 0 HcmV?d00001 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 zcmah}Yg5xe6g}G(LPB_zmx2%EA#KqHe1R=Kc!*RgouN#>IZWE_lrSafq$$e3Qa@D3 z5B>mul;hnr^qG!dcC(v3=bn4+-Tm|T*KYtD$VdnZpBW(Y>2Ifl@lRpbhSkW~y|kYOxs znEbeQndkPYo-cETaM~*9<(zICV(o2)oO7efu$cazjwFRN%qq7jb|lhue8;>_rdt}b zj%}EwWHhH>0+SNL3=^IF1W+-BX@-#o=~>mqFic1Mh!~j8FzFMPQg_aE5*6;nF-ZK2 zW9!1NRX@$qUW|}@SH(TtXBhR+O>t8ZAB0eFT_J<#=x=A5r?f8$la#T96$#4>vn8|U z6+2_+Pq@gt;P9e~hgfBhv*cWvJC@m-E_Fy!0Yg+pOvnou#UVUmP}{pkK^*H6v>wX| zty0@Pp>8VJTz9ya)tOUZn2)6TY8Q;pR6NHE>M9Samkqt@B6B|V>UFiBFMWejUt4y5 z2rsEOQ~T)zU6Hu(w)dJOHsb440!pdKu+?4Vie)>Z-L;fisX5e`T)#~E6j8w|ypcfn zX|c0}egrDs3jc>i%w}&$29=W78J4@U^`oHcH1OFr9BP|HU(K1C(-Pfls<>YVIF#_7 zVX2Smb_x|KapP1sZcDdyqkE;F?sgI({7Ns^NVt--|&K%y^tn`o41rP0i29*F(G&^P)BK%r6m1~xHFquMw?^9ZeEjAD#-1o$5LpQ! zB9st3`5lW#v7d;9*J8ms9@p`-Mb%K1MF^)&x)9~EiB*Ei;x>D9OD-7@3~#mI4NE?` zP?5BZ1d<-0UHo=8q|}T?Hj~s{7rcjk58UD6yKWb4!c<*`8y7#|h!}*6Y1c)DkF*Nl F_#bk+kXrx% literal 0 HcmV?d00001 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 zcmZ`&S#J|D5FR&a)1)a)FM3~GO$u}=$5RnfsmfE7N^KP+ULtohEL%2q@One~vv@+{ zfgiw+LX5p8Dc$hm&vSk=p7F2WKYjwh0lX@}7=uNr0#9}V@A&lW?U8qeUlNRU0rCtg zSG>o)h>O5Gy}UwSGnjZCicr5{kgL|34D!dajU~uIu?*ud!C#9GC~G( zb?Nh{$yI1%r_Ae5Va#BuK9c;9L5a89tx&YM3aG?t?Uv(_xF)CR)JY~f^{W_J@D2_` zcdPYb6X#lmA~+nKZ2o5OAm!{(JJ3xT-9Rc*iAe{Arhb+)g*KY?FxFJ-q%VcWzVX_~ zcpaxU=bH0%pTWxiyeQdf_11g11czoOITXE7BqyR5Dk)5<=7F*AV^@b#P(@oAu9Lr3 zS5rAa-BK8L$)AQ=8rb6kJYcZ-?;PI~PjI2Qh`DblXm3K%lbkI>qsthS=rm@4=P*TQIdveM2J<)Xz>LL;!&#WK^1Q3^g%Ac)OTG1A3t*wT7;6^>9F{xOM2?bLc5|7BROxA5+7l)z26EDCE z@B+L8kD6$r=U$ZY-Cam2k^Y?Qd^7ug&-eT1?~h*qp5jpoF@b`w9n0@JR=IZYa@VRW zeXR6>`Z!R1lR`q^#*sXhR!4e{Rcjq7+Xy6gT+cNx1meZ*hCrh1w^bH#Wacr4q`+du z^;C7xZ7F>yTOB2ktN6C;G^BQe`{*%YKDd2>waPgulo-S|LxGjz_LQ#ddqxcn6&b&$ zv^1{o2`p20nsMD|*K_ z+c%}KVCpEz|6d`H?JLvNsz2zkS@~(uuJ3C5Sp`yBs6+b%P!MO`MstmyX<-~_RHNm6?Tserp7Y3kP{&T&VkGaZ?=)^oLDwuQTr15p>AEhlkA2&u8X zvdxJ-8=0;CSPZ;4VuV8Q+1znGyFU?Tqi#LSJn5|onZ=f?H}uJR-g+(w)F32-H-u2P zN{HRbne^@n;bN&nh}4{+&=7{9V;?%fu;ffMm(#v*Uz8RhZ8-yb(y?8s@?A0Fy~zb3 zZv`C&2D@doVxwCvbrK*P>xg4dolbQmpb@gYpu?Sa<6oJewVkCq5RcNg6VSL)d*e0p zJp4rw;>a?*dQu{cs=||TJmBnxkr<=p4l8vl1;NOI^5H5ZJ D5&Ll? literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ServiceDetailHelper.class b/libjava/classpath/lib/org/omg/CORBA/ServiceDetailHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..75358eb949e2848afd4abf029e6256fd7f8fcb01 GIT binary patch literal 3418 zcmai0`CAiL6g^J@SsXXq5fpK0NRYVHE~2&&P@|EkP%Nc39l{t!LxPhD;?{k!R;{(I z-B+t$f3#MiUukWB?jO~!=gkC?8KS~RhP-!|bI(2R&inVjKOO+sg41dDiXvUbH(mFL$)ie9F%&2B~;SpGPLLE~h88w@ZBnD4tDN~>-sSgR%#!EXr zrlDukZ34cXsf?c0&E2#LHunj5qPZc>hq(glVx93F%-1UOR>-+yOY3Go1m-EIMvcIN zxSrLz3nPP?(W?$-G?_7%QZs$3q08^Z#hRT~z5uFFt6(8~%xMnmc_xfMwn8HIYU8G% z%CfcwT@LNpGi}YTH3v;?0jxls7b^u8Idjof!79`fbTNLC9BJx^UCD-^JML)CFy&sP zWY*@zYJrAywor+#eYwn#X86&7Mg?opBv3u3W(uUK;gOKNSTC^3iMFG?GnqKlb)>yF zmgo*(9ctyr6AFT87Vt}gqiP|~*e$`buJ;ZbxziFfSt@Cvv|6<{3csI`S`=(TD-n+9 z*_-*|aq-Vtz(SC^#gwvY5=vfs`DwCQ{NoGpflXM-=o(XTRkv zeWlk63i@zVV7}9f?H%ZlUi}JQ!T_h4<&{gBnweA$Lp{R*5FF@;#UyuLJ#U>+f%UH5 zRw{zp5g9pb2uz@E)`{-rx*UFOehgyBiNq~&oX%qqnzC4$>~-s zb5(EKao8C!z2IbZ4Lf2}P{0`JO_SGALm$yieN0Q5ta-Crg2ia=0XRdKOf#eitIKPr3R;#@mwast##|9+n0W+xP8)%X3ZBL@ zK3w8U)S&{I^s<60xXKnyC$)rQr5vbK?W}P);DS}Iyjde;1~U(K&KTs`8nGlw@iaU# zkiZI8p0ZG$A=Ttdq58C;n>=$}ZfVUN(?r26jW<_32QzF_0H5PaFTUV~!P()8(G+}z zuLb5>5T*}|C&>9B<9w^&JGmXOx8-z_%ReaiQBI#l_Of&QIWL>2FQbdVP+{^#Sbmw%iz{1)O<{?yb4euMHW|C@vP z{0#63?4ZwfEU;E(3|_2?ei1&UXLV>2i%M=a)}rmA*aldPB{cM7DVA|XCOyyK5>!)Y z0?YqF!#%9I6Q9Dm{z+^&*b<(=#-lB@q5BB8{B6YuU@js>V0Bgz`?(T_f^No6ppGw# zMjW<)HrkPS!QILX3UhA5lZ>*2Wo^e(jN+H)qljd^6(8{2g>r}XcJX!<$7Txm<5^N+ zWAB28R=~W_6dL-&lW3d3?h*kuZ#om7u-uo~#zi=ELkF6yP*HRiL!MNS}ih?c(sV*0d?V_UH4t62de)}g;U&F`5TSvCH=0GK|lRIE7meh zFWII>$y@gXZdm+1n7}tSk&;b*`@YmUo6DPI>1Qm$EiA`va(N4D@Jm@I8}SovGA<(* LxfHaQ!nyT7y-Zn1 literal 0 HcmV?d00001 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 zcmaKpT}uK{5Qg95XKv=2eb_frH)_!mT^2!Uk|0T0MtC8sp6rP3k#!aNSzSobML(b) z70ppoLFr;=&YYcj=AAj;Kc8O!PO$5Tiy^v)1iu5rf{%?`s}DL1!e zdXR87RU+G}Kb5#jSq9&^u!M8L;EpGX44#y%aSd+hK`bIjWjSH-+it7E?FXfTA(E3- zvspB4q2ke{$9WZm+@CLEYHm_;5HDr_SDPpXz_1=f0Gc{&1mVX5?W_DZ_jriO)p!+J zL3Zsb&j_V9I=lK~wRL(anwdT?Tx1DPug6qF^6G}BC%Z(^DS1ZToBTlNeegR>R--f^ z0}pPnOed92Nr+&DyaKF}Re)#8bd%Q=AbHrwTJorm=mZrZ2yjRCkrWgW!qWg58Rc&-^kz%EDn<5u>egQ=~ijM#Q literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ServiceInformationHelper.class b/libjava/classpath/lib/org/omg/CORBA/ServiceInformationHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..bfaf11968893e3789495e9bb0d193c72bf1771ec GIT binary patch literal 3602 zcma)9X|X7hX{a*59Zs#b^!b*C7g}lwUl~sL z5x01;Phe$fY~@A+XhSf7{dmKR158M%d^D3z#LZE$i{5;n!+oC?*rPewm zE0M!)QDqmTNVBIz_|^T;ko4lDz~W>&Yo9tj#!#>nMtdz5i0hlM;S=XsJ}@Zsw75|G;m z`2<`qBp|=y!%^99KTxm+Ykl~L;Ora~-A`nKK2h)~ZqmXucB>97R;~t$r`Ce|AxNNhrkg<^mdP3k?SL*XWp(8#%5|b< z$+~A16YA#ulTA}z>-gm3pO;^5dA@}>%1?DL@H>>>_~gRN{0(pfkGd*s$6RYx+Tiuh z)(dl#npL4km{(A%wkC5bN=^Xtv4DbpEW{$tNT*vkN@ZVY5{su$_bZ=sZgcwkESEWb zA68+trO%?Y_2no(o(E8zx?Op=eyqcKTjMlIkTlfM=D|djdb4e5D^0D-rZRH1hI$ccklTHHI09uzmBWNVmI8PuJ-=3e;W(IttRup3I4v# zEWAT9ReDa4nqf3?+{QjH^AyT?qg0%4J~UHSqFYG3Du#$|1)mdqauX+SYc|fmSrd|= zBM&fqu<8j$qM=|an4ZGeB+hgbRkFwqXd|t>v0lmlGt%phe1eZ*>uih11=EKCH}i~nIT=`F1v`G zxPk+?hAv!3H^;-cnoop>GoL}HT|YW;3!ht|w&FJKSc%}p(GKtm!;=AS43X!^6z^#$QEY$ZIeR87rntFJ?9=6a!+2skCX z?p9SN_RPW-@+3C$&a}Tsp(w0yt?EXglGQ0#D56B1aq#hc!3kYgjG3OSlpiSSdct{< z^^_b2v*`!2%MXPf=#9&e(HK?q8===l==7!OV|rBR#pyH6FReG}_A2~C*3vIn-^s9m zMOsbTfwwTQk0m-;tB(3}hV;dgo literal 0 HcmV?d00001 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 zcmah|OHUI~7(KTSTIwiRfkJr|R4j;$2r5!UTUto5S}oXwXwnSr2p7ssolZ$GE{(s# zor$_YR7fPzz5l?yiSY-xHGX%Pl(sHx();?(Ip1@>{rUU_z&I8>a4_`h#+s~et;uug zOe`udsb+dxH4I)*mv>642QG%z4P{%Ai;A`;r&l-Byy-y`L!0%=b)pztDe`B^YLW0> zhETm^NjFSklaujOLNmF!Ly~2SlvRx~*R_YqI0IW`I60?lWmD12tWvC~?(c7Zz4-ZC z{y~OZG#<~Tvx!V58BY*6>7*Q(Ff1jOs|N812B{w0pQ;b2A;$<2YDE~Da@)c`gLfuh zO55W-<(t$NyyJ z!6k-3efF_vJa<2uiQe@&Td6c-1Q%^hjr=pxoC?0773jBC@p%E= z^bhQzZ+8!&-9wD79Aa$6fB67cg8R6-j~fTL`IRt7nfS>!uudh|q?k2?@YISzI?~6i zRVF4HZ~LAmrts4`@)1L>SMd68y@uN#-K}aiS@!2OI<0m#40DLvIx_7-$1QZ;HIQG{ Mklj^s!a~je1X*HH@7?D-=Q+>IzW(QrzX9Ap&A^Djyyw?bUbCLs$QN#B zQbif$52f!rHMw)NFYn35zVr=51t#|FLp#;5-Fhlt*^|{k;MBU~I>8qLk>p}YAiCkz zq=^XP7DjPOV0_DQ<%3qUBK;k^(vSj)Ew5@fO1AH)edjP5Ja-NR7Pj7kN}66B_dxn| zznau6GVW1YJJRAwFP03P6_~BNtv5vMHEPl~F@Z@H#W{gF-OV7TiSxK%U`pU@e+*<~ z;ayDgqRqNo418%f+iG0Xk@r16P*&B86L3dD;P7b2#c3jC83%Rsyrqpm)E^J(Zt6HB7 z<4A+ipL{1^QQv)|LitwElSl*A2`rXWe7mY|woN?24+g#;nB83_Cy^~YMOnZM>2&mp zGGa~@!}~8Lee@1RVo+w$Yxz}q$5FFculTURGw&56`R{I04r@4#c490n)jI)UHd*JlapP1NPeu2a>-sypu;boeJ z>mktj_Q$x0OEjVxE@OsJam?bq4&*9V<$7%C7*}3l;&&|k!tF^`8z)$eb-?0CVzC49 zl&loQrP05zv>Qo$P~43sR*Lt3!}XW=II%|L^&aL-7)hQHKV)RvjBN)~c#I2NFQVA> zHBP#>u|eFp8aW+b^PwjolGyA)w#9oEnksqXxP!YLgPU9xxfog8dx;0S)n3;jzafRk up?wM8bnG*fBE(!;KE}7l_)eF*MYF>Yq%C(G&tMZo(cp{^-B-99LG@p!g9_aM literal 0 HcmV?d00001 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 zcmZ{jdr#9~6vm$e+saD0h=?$}ag%K*^@^9FVUiGy=!_$amp_)WHKW+AOX)EFp`S@n zA<@JS;D<7v({^KPU`hA(efyl>`%|?% z^`1I*)pQla2&22kzM2YAVHYv4Qg_Xv2B}r(Q{3sF0TZ|EAI)6FuB<) z-}=-v*PW`FBgFR&yTxKE5(ZW)w$-q_$AtcLrbLK|NWlnUq1I@H20ae0@cN$q%C+j2 zXYHG9UJ_?;R>2ryJhI{XbE{F+FphJ)jrXB#Y$9sR*X2|UK~Y z3Bt4n1p|bUO{-zPY}L0-cPl8v*rro4?2_SHGWQo%^y9MdHO|r7vGzDV0`F=AS1Fb* z2HVVQNJ1qHi7Csl%VGKAWv+XbuoyMj>CCf6v*iWt$z@6^GFVcOCCv6#>Lk5}Yq(BO zWs7#@xIx^pxFuA=e8l}p6lr!@nny^bGm(IH2U(OTe{?O6Rq0c6DYU%aWbWdgf)&Et zDamvPXt7^!V&WPbBP8TlO!6mT_-N)VVD=8M2{W%aj zKcgX$!B6=-&)7YiwbTada)Y{$w{_6Oz;apyR@z{+Q~^5qmO54h-(S literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ShortSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/ShortSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..02fce8f10281bc86297c9f4bbb96f568cf991366 GIT binary patch literal 2066 zcma)7U3U{z6x}yXGnp_D($?}Rwn!l#*oa@KL9{K!#-^l_5RDb%BpH(_=}etW3Vrll z{Vm{fwJyp+pZ!rT_nnzGO(-m0GBfv{yZ1i(oOAQolV105EeMOu5antj&8NG#rnF@a0MbaOv`j{3XCLE6@l=A-85nt zfvRB?5rKHYw2V8wjk@8K^?Jt;7%SKfy;IR0Q+@}FVYh8|1uhg`r6DJv7>`^>m&B)% zL$Pz#b}qG6iXnk<1!DqEP{?cwOi*OM2GnI*ty~NO zZ)>=O8T#*TZ<6rr3(1tZE^EW+D@Z9w3QP|Avmc>h3eyTQtX-dK(Q#}iig)PyYRAyK z#*|}7f2L&Jrs}=cYz%2+WzpXiNGD%Zd1$5FcI=1J*<7lk;5~tvqm``cjR$(m$j)z2l_3xJbq__;vWRJQ4TrsQ`lw!6E2Szi7VBdv`V$r_>8~V^({KZyv4Q;a z18s7780x4l@g~8vTw4~Tt;;cKdv)YDJC2zoUka1AHhZq$aeh1B!fgeM0v88OI^aEY zK*N_<5>O>atz%m)Z!GgM+`?BHmQmmcdwX3u+cn*B^li=*6VK?t z1s^2lZ7v~-yazPt2je{6WK5JQF5oRfsPY~OAXgCP8!-MCF7Dv+e%d_Wi#AL63``W~aD1@S#hRx`V}zLLJWgHQWO`*3X@ zGMVJM2RG#(!A(yy594#3BcMu)zM%RL-{vqMP)POCkOU1`c%~N8nUT!%9pp28Q+yJa zntKG>I%G@&E4ahM3M;@r1&@SRbpW05gaF6(P^|ueuXpiHAJi|`FCLiWSMeRzf`iL} nrg&OP`96?TA5QyMCiENA{{4`mI1KzmIGMJuNT9{95ZeC(_!-n8 literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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 zcma)8TXz#x7~Q97Gfg_B5FkLgv{0~VN*fSSXe-c$TO~Bu)L>DJlXMJ&=}eeRN{e?< zmp-V^zNl|5-?%J_OV$#e{ZTIWnVB}1rY^HqGnq5z+uz>%`@S>%`=3Am0&pB(D`*qw zv+QERS}Z1#>Dj5tM8>fVvzXONRsFJFD(kj_c7d(8wIwZ4(#&EaoxiOY90fsv!N$%0jQk!`O{p1$zXxHB#V16??Idz7=d;bM%}3-qK6Q=h3W=5>2cx+?v%3R)?v*@nFL7lRY7!Y~3DP;n4F zRO#F@DzvdFi)UC}S?Ex(s5?1Xn;o&CR@DiU{z7g^c7wn~tO;?w;L~QgDhr}(i{n0y zVI?v;nU;)uk}b^|#)yKW0*4ySY6YTV6oUd?Zg$T*mfYYkW)L|1e|Rwbu5HkJpZ%Fl z*{7>cjlSnXGy9>ef>#>Gz;iQf?h*Us2R=ViVLft`(@ zS0`sPmnT!5U_S2W;e_p_p6x0TXGC|5(xCNvm0$(AGa{aEfdDuxS?R4 zZR-Jr2F+jC;(<1NvhXpWsu9_fKNiv0UC-b`Rrhi`m;KrpcT2{@Jv#=&EJs*)#5> z3yf{5uwj%oW|l9lfK{be;fz(a3;IPvz6qjrBE7fts2pleKezL*18wM~C7t{o;=8^L zVczq#!rxt7-GUxI*~+^Ud?r6#kFYJUid~Pf{~>SN(8upB1OqM;=n?@Y(CD)eF7mX7fS=erQNm z*$*9X16zj9*Ab0j$PYNptJK;tyoz{pHr)-0dK>&~+=>K_F--8ErI&q}`}CxpFnz;E zU*NUB&gE&=Y@z{j0di zwf7%9Lt#FmKSeP$9J%!b#_)4)_q_HNtkrmgFk7|VvyQCj+lK1;CA@r4g| l#upfr0#DYIc?i#`>_wfbAiiYX@BLmy3vqH*D)=V@!C_m}sjBrqIMfW4we+%UFkOcgc2Yf`7!{ z;X^~>gT5Polkv=M6{s&W-|d|5eBaE^-`~Cicz{X)8G+>}?)g!_=hvFAo;~$jCLVUp zmg;v@TtH4>?m&K$ejvl1-|QTyt|?$jVC^jGFp7=r1j^s6H=c(^o1+4z1-t~SBfq6$ zEd%}8){t_LxNQ{=bQJDx)&;~%f%CN}92gmzwhV?UzrOqB$FJ4x4S{KMbg1_B)dzva z#@WW~x5MNkfm|s23~qtP&6F945=?ZF(7${{RG;sGAVUeR763= z1;u?AcT2IM>QT;-A3VoD%H#JYlQuJHdp!1syqP!m-TU3|-gocq-~asj2Y`+ERe?`n zW!6l#WYfu(_U@kDZ7sc)nNL`qdU`-N59q03-BeH|u<)2RqP3*7OtPhW;FzAU1OnEh z!+LvmP#0Jhb1Ug{zO)L|XbH<0p^UhnFWZfbVeJs`H#GJORLRpJ_%UBa5FvpDF(adQ z<)!UDZ6L){wXtkMOZ97}A>Wx%N=JtjoFZs3qAHruED$1PgYgk9m8U;D zXZ5H2xW}C`j+l@dv3Ue!PRK|MY0Q{<&qo&-%wfh{V4X*3$_rPV1r&YMGI1f)A1D(=ET0iQu< z7BL~Fiwymz72c0dbSvnpxPdgJ;%?kConEG%$eTHqnz)q^h&EIz^Ab@4MZ~?lcW%Vx z0gx!}Rnd<_EQC%rOHwjP+g4pe$E>PDIE)SjtbI4R^>+;F8Ou0ol&Wk14=}^0ccsmT zRK)Qx%c5gbOBq_uHrYRedzB7*Qgh1RSf9i@7NQQ zR#{7fNWxGs#6Y`==xaY{WN7Lbjtk7Qj>k(dnM59KMNvB`(ke2@G8{?WiVvGc+K^qw z=4ONURyfDz@VY(#(`jh&LH%e57U~q_S!LZ=9e0X-F@O^Ssy9#A7#_ppt~_BswSgV^ zPeD84ak|_#@r zNV+V5uL6S&`HCay;5Qn$U+WLsoRfV5saFX06AG87U@2ry=|FQ6`<| zj7vF_RB$%(lH(A-YrP&ns`v?GyjJ$qBF8BfSyDE`&5>iyS&Yju=d!@AS!3tw!yb60 z+_Gmq3lmaVVXoO?E@h=4%gI*BmRJn+X7gr3-)G2ac4=?LbloiDRJDrT(9faVhmh>W zdP<;#SPq%hmX^Q zG_oRGz@pCZB$gL&Q#3M(RpDp>>+JW)w9+L+0_@}OekwgcbsfAhciBc(78McC2Fg$+ z|DD)GGu51mH{({q3StXxa}3Kb5_N!vZ=b{+V|*?Leoq4~#WQb= zWBXq?GmaexYxf+E{b|2id}J*48!k}fz0PRu`xE#e8Y$qDL(!|Y#Z_31FPuCGlN-jD z8UH2|_bq18d91|Sl(@hv`5q#8pBeT6ZpVi~GR@wJ_QYp?|0;9KgC z@M3(2@2Nj1{}FPaf6jNANt?rwpK-c?ALM#&5|`w9eiA=l#PUuDb61m%xrveggzJ$|IIpAg0v>Aplzm&*We#uZ);`M22tT<-w(@l+A8 MpLQlG;lnTg0{+MmegFUf literal 0 HcmV?d00001 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 zcmah|?M@Rx6g^W4TgpPA6w%sB@dMjpsVJgQ1ZnxOrbud4 zui!6Vz{DREqKOaSbNI)XQ17-S)KX(MGjs3GopaB*bLac7FW&%6V_kuRA!u5~xLGR3 zQyZJf<#_f@MT*kueqNNNW*Q2d4E|ld$KyITit){=A+?fd+3#WS)%P_so)wnHb?q(R z(FMa`rS9g0RUxD&=@ka{fT2HS8WqV6nd5p@bibcp{}lZ3^CLrV-Yk`MAw_{9l=+)h zsZYhS7F_ zWL47(!gAvb&MFusVeJtr&cV;1?AeMoUNKCx(%9J96?vJ6oMz_6FajzD5o8!?JSI@D%8A5QE14yVIRKPrsAI! zJ4Un9-cm7(+f*HC9&`1DJ5Y6_3xQrR%&QoH$F>$!sOV?#WHduOs+M+y^|;Zq-i(>& zdX7^cQx7+PI^}Dv!Z6m>M{Q4qTGGY0Ex{|M!Qef01GKO3?Pk;V@$HswcW2G2l^1K8 z{cL<~xKs8$Imd~17maS3{ZQZ{yO*A^18%ZN4cSy+c#$;=K1l4WYmhF4N+T+V+s=_q!UddE?~7YM8EJ<`8$HfdkA%V+TllCI|=a((FeM z&07S&g&>|`2G22v7g)qg8bGv>4okR49wo*yk`!%QDI(~oTPsA_7PLy918aW(`|&Cw literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TCKind.class b/libjava/classpath/lib/org/omg/CORBA/TCKind.class new file mode 100644 index 0000000000000000000000000000000000000000..0cdaf690431c904c91b80de70a32a445b28bc36c GIT binary patch literal 3902 zcmZ`+TXJs0MGYsDlXlwaIbkx> zrXU3@7b#Xiq=5dnchPcM;Hiq~2T1-y%(FZ$%0pMF00;OE-^K1q&%dB|F8&%ghD z`Tw)d%-R2(I0fJ${3(r;U`|-r(iQI5(zUv8V^4S2rqx&Ef{`@J1r6K0onBYo3$}Fi z4R7qy&2(GMCN>d>f@xW+4^fX6hJZB^<4d->)w4laj84km|?*%q-RlHDk zt5>kPI?fVii@s*b2-0?r7wop5*9eT2n|6=+tHTjZYj{LEwxN&2ox$CFS5adGLO+&mJKPc_6Q)bOf$+?SYjMpFcuPymOR@a{$r|}8} zPd7PdY9OEU#%-RtaUOpn>yPQuO>rK3ds8D1tSL7hFE)iXEQ9Ivoz>fT!7 ztKG%Z#amqv$BgDCe64b8Jg{@B4Hm`=>Hw=UVfWe=?=|p>xt)5xc0rStV3^6hY;hT9 zIYaT>RB^jt-qruFW>qV*`CO1It`d}WE*=n++b1qV^C%dMgGN)iGXA{0bKT;BYJRfQ zU>z>EY{K9Q$F4Kzb?l1Dx2AduGhQZa2ebeA`jy+`XdB?tG@CC=dZ7}56 zL4#`?`;LL<*mn(v9edIs>)7`UMjU&_z<2DB!Kh=;8*FhbGT7?aQG=Xg#|^eQ_I-mq z*mw24xximv+A-`GHhDBsL1S;2_3{H=A!l_wm|5eG75uDM^hYu%!;7{;p{>J92HQa| zE-!A)u`SED^Ti>kh+BY#qJFiZo>DG9;uos$GIzZ$;F`IS4r?VHS$0xK24`^2ZuC_)YiIAn zRhlY=D(dQl&QRARw4ts|=sN29gl?domC%jUvlDs__1uJRqMnz~^QoH?x`k>%Lbp;c zOz1Z1_Jr=BUX;-9p?+^dpGW<^gg&48{R!Pky*QzlP=6qyFQEQlLNBH6O6UuzFG}cT z)E`Rd4^w|6p)aOhp3s+2e>9;#M!h1TS5kjGp;u9VBB4J?-JQ@q)TBr%3Blr12@z_7rJ)inKgM8lEEUPLXD(NUKw%(J9jA6lrpbv^Yf?oFeUw*l10O z*kVnNSk7l7K*%R$jNdjdq2^y|>?CBcY!cTVLCMl`rMoPxP`caFN~PCZnpS#)rBzCA zw6wuR+^pP%>{ae!ZdG2b@wY3_D8EB_jq*E{8|C|z*DAkDd7biml-Dc2S9yc-`;^a8 ze!ucYtyjA(L z$`>ksPI;U1!^+#0A5q?+{8+=H7kP_i5la1oxE4^~9j-9K0v;rjl;bc7rF2dg67 z*w34ea5I5pdkGx8l~5hwc0wk?9fX<)cM?p5{e;>GcM<9$+(W33a4(@D!hM8U5$-26 zMtFcQJHms6IT0Qv%#H8}p((s<0h;Xd`2qq8Pro#*Te~7*W{M-KCK$BErkr-ScjaV-8(IahGFXv&iEWxN; zh=N>HT*G(QDE=&Y{7nk@mrO`X_DG%FA}z8{&X>Do znH-Q+@{n9E2W3E>lwmm}fgF|VR$fglm)BCByq?O- znN*0SIH5bY&k?_v@eC)aVV@)XXXC>|09S;Lpf6`OE7q&C=we z@k4!1IS)Tl2NV1lKXK0|J(<5OnX_WaQJi{)#9f+w(Lw&IX^abq(^TW9_!&p+h6edc zw3B)FlP$}hzv?7T51z!C!N#+bc%|hyUOSFoPvZA4#R)3$hd904?ce!j<{wDQKNHKe Okh-b`bDZ zut8$M1Mn1Vcn!pviB+i(E{pN_%sJzw{0%q#*mOkV^T2=44+FuloT|_jNlKOD z!7c-P!mwz?QJV26b9pco<%i$A?_T=6$*^$WkNoTbscGAa81Tq5ohHwXE3bc{!_a@>hHcd7&5f%zjt-3C}P!sfd<3f zIYI{i0!XDxwjYUuX?Q4-(aemR9Zz`Rax#d_$rnr6D?epu{DREw?=oniNK@{SnYG_7 zVJNn@-3nR^VAyK^m$Gu`M{zOb z(3UjHG%i6yg=U>zQ2|wy=-5x7Gjv literal 0 HcmV?d00001 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 zcma))%Wl&^6o&uFrH+G3OGsLv7XlPWQ^4v52?dZ+CrF`Ag6d$F)g&DSBVQ`pLBLzV z2E>8~;7xdhZV<;4t5TC7Sd7PK=A3W-`Op0P{rv}kebf|W7`B6OtOwp$H~L2hO?`0G z>{(4?(CPP%yZu&ML5^YTVvhAOiiOwyFcPP+6Zi_27|QSXd#*cyZi&$0uJefxUBR## z$RIH+;;L4nOBk)dLk%+Ql9#0|-S5aorjDGi(*&ei8$Gtv7)x3D0*{Vhn zS*&T$u+H#!fsoF>0EyBS)A2=b;tfSOn3_>CgAsRaP6m-V>0&N^>qPUKX8X`!P&^Su zd`zyE=DlIa)^_azstjP*sr{G4yyy5qNG<6wsH3TO;)J>o3LXVML(vK*;Yhr2l3rG3 zH9bl?L=TD1rje&{0}2W>tMtG!C?ZGy8kXsMnN|)c&d^+}?`6MW-*QS|7+@L7g-^3Pi65e*odm{P3rF!Y+Uw|eRb|p}wB1%nx3FcOcIV4P$_Ef@b zJXoO0raQfnkm@w?T$PI3xFf+Tc2FkG33xpP4+xwiaG}1p`EUW3lUqZ{txxmLxdq&n Vx20NnLgHFMo{%_wkD?6j{{fuZM!r_J8cC8hK;j%_M0RXLFe^IoTOe9Dwt!azT~gC?nSySVvqaY zTYlsVhQ&mN0}&^bd1$s7*gnI&5rs+0!*sy?u_%6f|NULh4QmW@54_MzA2KY}ElKow z=<0SFd!gIh888%#=vb&&L`A^`hRw6ej3_wqMJCElc{)xsTtt;YGkQ;+S{S zHS6zH%`);>)}Ud9;ob}(=Dz@$(gn*4MRyz=iP)K#QL&;C_XnH|B6FsTh4h7&Fl_&V zoYjjagA#}&;VwB_`Q0Cee0^t70{I9c*8fXpG4R4DrnZ<2>S*GhIHpd-f+tbPP`0CS zJQ9z+te>m1blu51MURTkr%|MF845}?tMu4%D5F6C8s_PHo>ulK&e2?M?B+jW;S-iV z$h=G0n%sFrl`X7NygbPy;u=NS{yH{@lkqmEy!(<5oNH9B`~hfE;l2cFR79y$V1~Im z#T*bOPkSn1)^5#EWz(G;38_sIPgSYd!Zit2v5hKe&cG{EutVSiflH0u_1iPJ&&jQ! e5i< literal 0 HcmV?d00001 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 zcma))+iuf95QhKFp^k$~OGsNFJp?EvO#zDwkRS*taRN$X5)`|+Lt&e)f{_oE?I1ur z3KGu%H%MIY0K5_sV!Vke6~f_Sy`J5fZ~y&gzy0{~6~Jv&6r>oogK(?|-dHz!{YG84 z`}M9>H|%z=JM8yNv(;?WjgEp0!^Y`M>rE63ul0H)j$NW*y)88oB!=QDaa%5k-7V-WGm$h#_6s9pq4E05!PsUqZ8<;|C!%rp=&^rVffD>P0Ac6!;8z zE0}~M@yJO!TAHuyR?;ncTBLwRmc}J0$kD9QlS?6w4E<|Zr0-c;X;7S^IbYpNf5Osd ztbCMt7m_u(Q>V%XE>gTY%_L%pqGW#^8^lR?n={@$$p_9<3tN8x?o(k$0yQe4)EO|r zT%KV%gh|t$N|@4(IjU^B(}9GPr->)3R9wMT30AR$&7sr+Fvb9InaRQms58aV;lLNSxlGD23}k0Tt53^#A|> literal 0 HcmV?d00001 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 zcma))%Wl&^6o&uFrH+G3OGsOwX$jCvngSLZBou_?I6(@y393_f!J?X^qhRDqWjhFX zE7%~hU=OdsbAULWM3o8&uo#ce%sJou^Pl=5M&}hPo{xmwWDe zKJWy?ax6nfL@{L^by^JU8N;F(264iJ#Npmp#P zwf(`Jp2Nu?GH1G&OJ2D#!|rd$ zIqhgLD87heJ|c5Ve_F(lt?fAlR2jgqRr@ccdEX7fh&t0@P=^x>#VIu-5Rmn%ps|vW4puuTC`(Qr_m2_ek=AOZC#tIY5gF4*|MB%3fP1JINHLUTG_Ykbup8aO-MZ}_ z);mtC*>MeI7}m~iI&b4d1kE>nF-$xe8kk`yzT~gD?Md4ak;i@S9Y65}!$PdXo`_<~ zJZkMRuziNvh799`he?n7Bawae?EUcLhq%r#v*U$c@`z!v($++uhXdP5A}<`&wt5Vi zhCCG}7Emy7kzxI;vW5(XzEGl^geRle!X*?LtVZ|A({|Hs?j3i!4CVIUt7>_qv1GwQ ziQ)b^LR$Xor{97TQc*i%iMn~J%s zdO~l84yBQ$aRml)G@JC6Qph7i{}yKHJ4Y+K6sKs;SGUujG5-aNpLE`3wWfD=sPZ9} zDP9_95^;qhwZDor;wawwg!e%6feY2b#vg$DRCu6)78OzI1gJ1qCzu1mq-oD2%*yR^ zRJnAgBMm8!6Q`<7T*Gw@HnE8!X;$FU1nd$xL*QI>d-cva++%XEzf;nq)1X1P}Y literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/TypeCode.class b/libjava/classpath/lib/org/omg/CORBA/TypeCode.class new file mode 100644 index 0000000000000000000000000000000000000000..a226a13c580bddff9e741c99861131e4f8eec866 GIT binary patch literal 1292 zcmah|%Wl&^6g`tV38W2ukd~72XrYCqKuyb=BBVAgQXry;lq}dp6MO1T>qoFBRl|x8 z;0O2s7A#pIv0#hDMBU-6bL^y)@!(^XP+vpB_2h+E#HSVL>WY%4dDmUbKg`q7}#@$e8qDE#a-3lc1NT?fB5q0=f|$eka;3qsh%>&;G{~5F{r6s88A%O`n?}byUH+O zc&_0KC7LZBh^C?(7>cFx$sM`PLqoI`jS*xq!?18X_bYDfb4%#!+bTV%<%>O4(A~b2F;h53o4!NET z36F7nRMq>hGfCNhj>34%cpwAWk~W=anwUB$IjyIX4{4f?XUZKZe2Tp8b$mlSlVP6u zBdVp)hc*X_9Vw)drMDtZBS-5nUBMJaP@s1@$n+c|M5mR}nqK^d@vl+IS$bw7aD|FN zEl~j`F@^Asp2IXD=V?cywMfW?1ac9V25K%RYGyGP@m-16tC%0?Sx6w)h$ZxJ9i@TV xG8Utq8wur`3FH=*;_eJZQiM*7%UDTZcW^g>-NXF^_8{TrVZU?gcob#(_z%pj7+L@T literal 0 HcmV?d00001 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 zcmZ`&{cqAx6g`gt9i_0jO&n}a_vQGQt2)IG&}1%IT(*dD1mjPnK!a}G`gKSs3d<^r4 zgAv`60z>FbGdhHyEY=O)=JpGQiFBsI5EN1*#2MC`?T#nWCW&?0KULpYyv1#Prgym_ zn8u8RYYcNk$#xHTyP;qfa|}`Yqfb|2SeFAW$cQ1K;0ERy!bMM2GCdlcsYJk#QXpZH zVd{{#_1B$NO}EN!A!ZKEx@J@~i;K0hDPsalf$j^F`hV5o;pdN{R90=A}jy^ literal 0 HcmV?d00001 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 zcmZ{h%T60H6o&tk+q5Ai5Uz!`VpEli#HeDK3Y7$qfDx^l%ic+>sY_x<9tV*=NY{OZ zu8>&p0DTCSyakBkB%2gP4E2LJFjpuD@9^7q4b<2Rf|0lOJy zcow9PLBOkLSV4|^o}Vg(0)OP^;=0NwZ@3fp%=QG2zE6?ITyu;8b)?b68m|g72xYAE r&I?qydVwP*J)7O$nc&HNg?AjHJylqrQF8_6Iarl72+#TN6khxVN?U+! literal 0 HcmV?d00001 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 zcma)7YgZdp6x}xjCK;wp11}la^IPOkbt%yGWT`vKKtx*&duNdJbMA)222GZfrRZev-Uw3GaJEmL*n_;(QZV6m2yo^UqKrtS>jxL># zC;RNDt({zIZ9zpGqY6d@;=Oo0*Kii+$RYr#uDFh&Z}`+Elc_$yP1|whS+;AIQ!xJj zg4ykc;Y2Zp3mPuslEC1$-tI8;(At84&;>^O+(_O$X}v@N5157_vmtPnWV`twKhtXF zR0zDK;R+_13wLLePA?t{s>FSnCt6=aN=PNP5qbK zhQ4Ja97F1qkU31$I?X8+X=G&qyd#iK9%p%Er_^%nM^fQjs;uB$fytAZEbH}$deg|x z=#53wV)!BBvB0%H9S?Z-SyQqh)7ml|*39{nYG!RARaTj>k0j}jnXsh46Gu+NEquyC z^6&SQ%hi6Uld8q*3e$3JnUIz)Tc+jZk!w~SBT4=zOy1h;xPImNWqk*C70j_pdPO?) zd*p(KFEB38$vtFO)~+saN$+=J9aaUUfGD|Fu*L}^wgR>LajIpRL7dc;_oea?M5 z)@~7B%XC!)F7zuH*myBKa!i+Pz&h;pcNj#m<922C^Zo!;1>doiUg3&{@4=QFfW&cX-=w`+4ICbN$DWB5uSGN^2=WY#(El%pPtorLXVelWx#H zT#J`X2D$FRCHyP6?Q!O1e1=N|j8dY{$v(u{G-d)9lD!lpPC;g$4;Rvzfy|3tw*jSEf7m}WpkEmFuSXcgVBiPB$*_G!0!^+$X#EQh$lf>r literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/ULongLongSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..3e9759fb91e5152768b337cd142812d33f9fecb7 GIT binary patch literal 1518 zcmah|Yg5xu5IwiF4K3kec@^-%tI~%O@vTL)RFPswW^AeB@SzjhSb`zJkl--te^N(a zMjd{DKgw}$5=&o<)4BKNZg=;bJ-he!pC6|H7Vunvk73dsvcY#S#!?m}-vQGfYd~(iEv+nTov2KN$iCvS!oi z+gxMlwhs4{iczKeOunYu9_T;ozLYUd`LIY%S#nA<1Q%6ZwU!vV;)xQ2pPR$zLcfR} zhypGUiT~yaVGzRth8TvL2^X_3RJ|%<1fvY1^{#AdR5@P^Bl%9g=`aQ`#=*xK#^RlQ z5~UCrE{X^t%+Q}#b>*eKyQP>#SCUBHsK{DLHdTK2jDBld-Dj9?N!i{HQY8@ITysHY zL*X4%vR3w55hzo8stj|j{Ob+O>3g>2b}^kO zg>en@0>MPqYLyPEz@UsaoU}Key_2+iEU*5laFd(X5_Rc4L5u$6WrfgW?n( z#v(EzmU+p;uDPw|py6OL#9ElwOKrrUTEhjyHY>`C%HP&#`*h6nhf0r|UJR`Oe6-Vq z(1VZgailXq7J56h_tGr~KYam%$rJP?e`4UxH$+YlJ;KCSGW&3e_6RuvtF&h*e3|ZR zxJ(wFghFuzlXUX5Q(jt)e0^k_ZBLs_9br289TT*sPmeKshBJ;J#S|KFHZY13X7Jj< z8*y`bc$6J+Dvi-Efux75c*wD2>KLhCJp`8GNL?P>LT6~V#0n`?MHC99e%k;Ut3$?c z2X`IFd${jGO3s~><*C0=1+HpAG6Q;pQh~Zs5Ae_nE_!^U4olJ_-9-1vnL2&cQs5)C Y@e`@?xq)7^PA`fqo;q}%IXqVW0v};dvH$=8 literal 0 HcmV?d00001 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 zcma)7U3U{z6x}yXGf5Z-X)%0?EmFt_cEm5#AljB0a+Tbrre zo1W5^%eK{CGJc*jx*LY0AS!TjP2bYBu5PupN@LAvx&pDAre(Uf1ctJ?nm}~MZW&1o zA)#UzF@aRsw2ZsG^@ib8^+wka7%AILy<5{AQ+@}FQMY4m3S2C|N<&dVF&?>&E{RWP zL$OoVb}_e7N+OL>1tS9KK`id8IE6Q;AOKliaveio_hn6Fb0NSD+i~Td)(? z>~70&63F1JigP$GFubLAdrUd9QW6llz-Wj+Z!Z2_d+sNuFKjm`YLh?vI3bwfA%9(jA2|sfwk*X%{q?l#PJS&U+fzC zrZMIi(w{L|x3NaAJ()xvnk@Re0{QHVDi5txJC6NOI$O-u6uc)eakP>}z4<_I8``wq znl~+`A2A*YTn%}+uR9b?%VMUrX*leaGe`BxN-0-MvREHW(VwtbS$`#sqKcdNj1A^NqUeJM=I+UU7{$NBAi8+R1U3S1gA>45jp z0To|jP9PyUR=XTuZ!9?yxAB#Vd6YTA-d;~`uIi4XZ*!)Yc!_4v0#lL;Tn<@$6ced_ z)dkLm%?o0@6dpRJ%L!l$4$>XuQ0cjShy9Y@$Et!KI7P2@p5MXAe~>8`{=}KbT<}4X z-sT+QD0x5`KNuJACS&4MaS?A3A|bDl0CE9Qz5%0u;nEJSJf7b}zCLn|>L&m8HezJH z9uS=HQmS&LM!5Qc+Bo0d#|MN-;6r>AKrb^|T9Dd9re4^^jfMQR9emnP+K21#kjW(1 zJh(Cc2yS_rc^IGLJOLB5=nJZk@NEjy0fkgA4N23GnP4W;^`o#m2{0V%AmEhofpedD? jQoau)HNt8C%7lJn+P@!Cl!Aeu2q)9_6$!NY6+!2J4LZ_p literal 0 HcmV?d00001 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 zcmah|Yg5xu5IwiF4UOSd5DF;Dqtb^G@vTL$RFP^&W^AeB@SzjhSb`zJkm4}ve^N(a zMjd{DKgw}$5=&FdIGx<&Zg=;bJ-hqs_xBS3^LQ#Cz;MB|>aw|0mvd_`m$UME!8Gbc z_1&te*HlYDkfDED*;iy;G3xT#=C)e31%w$U{c*ddWh`_Rd)C%Lug;o8}trr z!G2B12z6Gt?K2olVs$xpG7cW>wM4ilyXiwzEnh#n($i19CE4&Wl4QE~!S>C962GTonHf-F1< zh2jz})0?NA^wR3&8z9@vziCtHLrkT)aAj=cZPOLtdc@C#Gq2@H!YCyCS)A9amRtY zi+diV?A%FNp87LY;HnlTGhnnR6>2JV9}m3XlE*jZup~V)KDv)i)#;^{0w1W2A4!!@ TE%ahddNJhi*rD^p;j!`u3b{qr literal 0 HcmV?d00001 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 zcma))%Wl&^6o&uFrH+G3Lr5E-7XmGirhvr;34*vZ4I%|LAIx|9R$1& z4*(k^7CZn89)%Ta#PP(cR0x;FczouZ^UXj1%$FaZJ_ERhx`7PCyb4FQ@<(>7x3hWA z-tBI8dr!IsatzByQ|_B67JmEnP#nZk1qNmqDlhpfZcAmmB9z>dZ~2}l7)p^22O^B9 za<{X^z#cNpwp0+sJctL}8;ktccjnE~_iw8VGq+?Q8g~ClXO^%;Rxn;Up>yR;%~uvD5Cix1M)<3^nKPUCko0Sg>HB z%5Z&(kj}pViPAYo2BJIm_e9vAm{E4rkb47829Y`GVlI9mBZlfP$khHOgW-!P;v+J% z{JSL#+4}mRfEoiB*6RPIEbq%eg>(}g26H&EOze~Sq2Q4U7>ceMheL5+CRb>sQm!WV zL9d0jq>-m_1_lZ=oAin@C?ZGy7G~*toK`j|&d^+JY-B%R?jz>k>$+3Pn$Fyz&bv5G z@xr8%h>H{@`6Vn9C*iH6yc?Pi9BY)%{sH)a8aozyxzH#cUHMOF5G;i1&c>bK?q literal 0 HcmV?d00001 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 zcmX^0Z`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 y2Cm@z(xT*4x6B-%DsfDM^+0B_0S#aPYhaLMU}azf^4NjenHV@ghA?n~*<1jsBqw+P literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh3O~qICWI+;n|s{~#wv{ZPN)(0~B{pb%G=_yB(&Pv^+^ zFh`$IS9S&#Mh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA2F74U243gfJ5fRuC3AyP<7s`L1TR^X2soz3B)zZiBpMo-{M=|m9)0Y!i6*qUTM zmktEanmdKeS|yGo#ubbSB!|JcuVMnPP=XKAs5rK+ZF;(<)0qI^77dVl`9WAg!MPKx zvbrtZj$slPR9wU*fzfTP+h@|DwTghy1jYj#QZ#ouC*|&}-+o;tT0ixh~7Y=o`o=NDE93J9H4CB84dhIhJogwP4$p9mN}Tex<8x zJw0XX(xH?rU247Go{1xiysZ110@?J7DvzvGJGS*idRxfU6uc!ceY}ztt@&7M>-jmY zwPct~KcqhuxDhb%KzAUTmPHJ+r`zn7^T&0|S|wA9vs&*<(I2o{X>TQof{Hu%h%Mxu zA8M5AL8#;U#2p61bSznrjwUCi^WwV{$H4)xz%^Pp7R>|9_}kx5V$&Q(jo7W z11dhnqCiY?G`g1Ab|s zGQO0xsta5Q+ULi(IXtlqhcmz?9OgSrqTF`|9(zT9goc7|I7csWM8&t@FvndU-{x?d z{>AYKO%*Na^O(0gY;?qOnc46!C5;>vt8X{;`-Z$bCjz(fj2zGK6sLcLH#wm2jn^)J z6@KOU6nu_m_YnPsFCoPFE4P8$IK^Mp3*hrKzhXFp1XtwY1wKQ3p3d&#?BA?N?l+u& z#sv=~?rtt3ilPfN=>_9eTxLv^Dqh1CLd4`%;zKSY%r{{CcU;}Y^=C`_$kxYhQr*m7 z?nZ>nw|s&#Zc0_I)CgBUR2${n+jxgCF}#cSeCSn1OA8YFn5^gaaC

      7clUhxXokdd~0s&$*|6{{H$6;3-TQa|~OaZ=2r0HfxO|vt`*f?;rWz z2gl{FJ-5$&84|bl%)20ph2V#|;_ zwcL=_jry7Mr95SZ{BvjM1P2WBdZEoARlPn}F^?M>6sQb~b!W)mhJ!BmTQPUJ?)5CU zZTXHkCq^mw=zJnw({sf&QN~Sux>LE(R={vegN$non$YHmWKku#4prA@*q;zG_1A`@ zFo>H#C>3|HA!B`JtGPSkzJ`0aPu0i#%GLNY%AoE$LJGrf>NP_uT|?)y?*w#P`qbQw zFvu47P{S_vC|MF*y;^W8>GD8`8OVE4CWgJ#F{Ay06iVL-zKlrwx?adcw8$B-T<#8}WDB=$6&^uA7~XVDk38b6_Z zBf}gP=&jNU96-VgEYeORHxasoo3skRasoIcPvNTyfKmK`l?i2mk^`@ZQlp4B5otB{ zPDmotZIUJAt>R9?tRzguD2}mq0T~NxQb_9@PDybJHnA1q9$-6*D;nRiGRDqCVT^lE oxZ^3fN7#>WItmG{6rBNS4C5=+7k4aAR)C-DmXvnuN#s@f2f_;sB>(^b literal 0 HcmV?d00001 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 zcmZXMO$x#=6olth+iFE{C*61igJ%$gt}0aAKSKyDHGwqE;aqqC4<)AEx|$zmzR&md z25`bAM?yGQr-glLQPo#*b8H5dzO|-NF0@kRSQ2&}2NpdWE$T<7q$i|-`%w|7B5cpr t44#d@Pu(KIK`0tKI;k#gA6NT-@Nr^h5rFAHD3KzIn#Yu2HFxXT7eAW{Drx`# literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/Messaging/SYNC_WITH_TRANSPORT.class b/libjava/classpath/lib/org/omg/Messaging/SYNC_WITH_TRANSPORT.class new file mode 100644 index 0000000000000000000000000000000000000000..e9d0ea24f3c31862072998b0603b2b47d5654169 GIT binary patch literal 186 zcmX^0Z`VEs1_nb0ZgvJHMh4aVqICWI+;n~4)Z*gA^vt|;{oqJH=lF2X5RdqfAVwyeq1De19*1;gjz{T< literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/Messaging/SyncScopeHelper.class b/libjava/classpath/lib/org/omg/Messaging/SyncScopeHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..c1da57963e69d1b31fef871f8367ad4e3f691f6b GIT binary patch literal 1782 zcmah}Yg5xe6g^uCp(Tg{Rsmn2KwFiFPo#=M6-6o_t@S-lXm`p&n{<*C^V;1ysUblptHy6Xswy+s4X8tQA#h~!dj-|`!v3MJhUf*0=)E15X zR3aP22@EM1WH`~{Yj3L<#z}_$CdWs6+q8&@ij#i-UCQpxp-o0MrJ6vP=Oyh#ZSdu*BgOm?-E*lZG|b7)yvs1+&s(l>CXw$2iI21|fCSxFv498E zdNy~~^a{B;89&+zvVaVWDo$fWqS7iJNmMtXR*DLi8770wZdjrs9I?j_`+cfnrRB

      r^p)GdJo@OXHV)9(PqPS) zVSrY=;5v?fq0PhKB@Z};Q!bb~qY1v~(gIzBqhEc{j0+99fHOGT1S}A}T?ixI(UCrU~9cnErtHFKBPR zWA*@dR+EGCb=*t-z{5J0lE3hnHl7^dSskm%j=dO(1WLreO)s6Gd$NNm?6%|ek=b=@ kxba?Kvl-80JnJ`Z6Q|=b{u*zHK^lMS8fSP%vk>0@18QrE3jhEB literal 0 HcmV?d00001 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 zcmXAiK?=e!6h!A&+h~j6)~yFHcmyd5T`5$$PfG}vm`F@}I2RtkLy1Y<{Tb%H|M|Y& z0QM*t62jIx#qC}3i*;VKT2{tO*U5*sjvvZv)f^e-gmo`Q!L=}opW9w`o{)}050XGN wVO3i5^uqWicC+w+2zhOXpgP@jSQUTSE_$*6VH#nB6j?|tAPE)`#B#dxAH(G)7XSbN literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/AdapterManagerIdHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/AdapterManagerIdHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..05fef01eb52ace1693e0e725416080b3d20ca6e3 GIT binary patch literal 1808 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfoOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ClientRequestInfoOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..21f579a9face1c94710415c7aad9cb97d82bcce4 GIT binary patch literal 831 zcmaJ<%T9w(5S^=4tnb#=_j6}AlCE5IMNtzH71A0LbwLoO1Vg!adu{Bmx$p!0DB~2` z()wD!4R_9*Gjli}pKtE~P=x~prWl-Z;j6sus}>j1c?{8rBnlT}$%U$i0YF(vka>LQT|HCU{*T9N6BFGxNM4O=bJ2)bww(S__P7Q7XN$Y5`b!7wfL#_@ghth7ut8>C}reJ*duJfbxj93C5) zc-E>95!5_?{@V8@bzqgqCTFc{XSSs^v@2TV519^wBhq;oZTY)UvEMFI=k1t>f!kxS zH9lbKj+K;Z3apdl5kxy$Df5M4l z%-B?1i+Tj!aXfD{Y6nF(aM5--<>)mrbz;+ITG!KZ?Y?qLrZ)KtMeZW`eTV;q?xa5| zC5*u|Ju?*JJf%>9Iq0V`KRD-MA^Bc}B|`OEUBGirE>s7#T!hW;pu?IXS|e!o$d*fGSe}^`O3|i;rtwNoGkUBLi1(eksti rZkai$j1024Y}5n!6zDfb24)5p237`k22KWUU>Gt0MRA9z0Kfm5T0CaH>p+dNDK2h#DQ8&&9Jv4l61N)e>;JmstDcf+%FB8tgN@0+( z*CBN_k5DDF$9k%j(Kb#RH1ZadEiRuzn7Dfhvti-ZJ{hY+SbbbG%tkh(nC>tY#E)m-O3sQ>`OEUBGirE=B7#T!iTAclZ zoE#B$a4|9{ph^`$ouu#S;^UfEl37y8$iNkxUkY@dTV_rwBLffAfqEdf0bRq$zzl?} T4D1Y?Krb=?`P@K~iGc?I9+yS6 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/CurrentHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/CurrentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..d705e2bc29873592e5b11e16c9ddc577e424fe2d GIT binary patch literal 2240 zcma)7+j84f6kW%c$a2**Rol>(04Z(3mk>AQT00GO9NL)Jaj;X?6sSD5)oYkaYGrd+oLM-e>#Y|NeXqU=CkP2r$G= ztC=#}&D5G{*;>8D^M=i>2JhIWmCAK3iyQVbZ*{mOA;d7Ttv%9GEzM}AO7(5tuo=eY zbwjro7=p2Ql_8WfH+d96$O^(3V>naL4ZhlK*SWPW0x+lrv!S)Bnx%`iXAId}`VK>~ zaAHCk3TE$i2=H<&-gnED%8S|5I@tx0jEu85CqZR+rD=3i?rzDdm-&uu=?$B2Dmae| z401&`nk{ad2E#cY8bM~FAP5B)afukMam zqP+O!MFrEiLXjF4*KA(XMb^L38oXvV7#3njk&jwls+nq{8#~;h;$&hzDOqDT(>IN% zc_vXVH^= zB0Uk@qQ1{B71DGMXGN!spq-wZy&-{8cD2`1BMwWrO-ozO49@ z)bS=xDsObUHeDdDwNF?(33+08SXePzt}JH@5v-7`yrFeEmf4{ZW79NRMmBgahf^|r zl@zSuGlpk1JpIDV7vDI}1j(}LFw-XRPbvkrB^;wG&H z+el&`H=g1>KZE;2Dk2_|ET+82MQ{?op!$*DwKhba=7Hx>CE3DdD)A4(Y%lRQ(mzx5 zzmVR0hWQP3;Q)7D(7v07NfHA*L9c`>={4yFNE+bVLx%Or(G{Rzy^7fKfZ7(*^3e&{4dEKz*qkR DAAX^tfCD#Mfq1 literal 0 HcmV?d00001 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 zcmYL?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 HcmV?d00001 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 zcmaiyT~8B16o%ikZK>T>zyei3w0cxybfTWcCI-prYqea~~=b9TP}{PGRJ1Kdl)Ayky^d+Mm~Jy+WJ-GOKX zM(Cb6HcESSrB8glza!oZMQGAU5|)4KYuh^;kG*y%^wv8omnukOicp*s9FMSGW3#yx z7->$^xI~yg^xyiPR9;JH=?~<4TbeM-I6iiS4w=_(Y!c`x;c`s{q45LL@drbZTKTZ{ z(fM)ym5_cNJ0ujElXbVdhoWcJ2~!VcAk8B}qEzk>k~Ot2TqH1`!z`{4W|}e(&xS`` zp?6~w`KIcz2cMm=snKQ99LSKcIxh47d2#V-sTnmo@PoeBGFk@x^)Vry;K*pXV@)kv zQ`ZR#7vz;Y84zydFpU}R=H%d%kpCM`$oPBXu`HJURgU1c)R6ylUE0adP5$fq);2#9 zE(8ZD@LRzWGI04O%g@I_j(6;Y_X*zdD0$8EX^kUsOjXV>_bHMt@al33P)8C^P~e?S zXA!RA8b=FQIL+dY;uo#eHGCQv3g8*Bc|=~4pSW5{RMt1wp#!I literal 0 HcmV?d00001 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 zcmb7G`CAiL6g>}uL&BgK72L4yWs|7Y+8Vn+0Hp?E0io2kbVvpm8)o8UB2Zhk+SM*< zx4*;oQ}8Qam!JDb_3L>vLxvg`!+Bkxx}|kgAe68&dIZ%7tEj;SflW!n)CUW*le#@3?FdAZR$9xBYPKQ&{lSnk zW8?*nC!g1^IBhx$IpXeYX)W$fq=ve?Vj~=v{=~!Bj4cYH0!`CqA?D4d?8za9XB%lp zgnZ35w8!<^3Qj%5mLDMKS}ZG!CT+N@W0 zhXXU7ZgYO+$AVRigj8$hLZ$j8C$iLLG&0svB?5$JS)G=qh(Y!Uk!71~eIc zpNg|M$4=tomc)6eq7AGSXqX9jOT~F~Q!7`sY(ZBrAh4@c^W9xN6R8WmLtP{NsX+xP z_K$K!cNYvVp>JbY!B9z$^r~0I2riNY*Gg(ifSCwTyv9Hdf+25PJc2=tNsYWCux<4g zf4+6J7VolU?bYXVY{hy;Zg@|{`}lz3)^a)BWC0vmYiETqKML38hblDLH)ZCUldH0x5 z@ClpH%GUMciQpQ-5zOI+iktXs1#IPH-(FEjzE;EBcUwg>J{M>#W7%Iqc^HxgfrDiW z){2EWtC_P6hng9ABCV-{6YyFDT|Y|qG`xfF6nraiV1=Es7PuN*#rLx0RM#V)+6eC8 zu8MoOUz}K>X-B!oJ_WLsZm?XZ1r8M*eu`nz5E-@#yoL1{@}jh(^knuf51q0^Li>2W zSMxdtDE#6@i%*4rF}?-gHEm0%{f!@0i0~<=fjH{;RJ{d!*Yhtd?;;$Ln;kwS=;7bd za6a@WbNd+E2imKb(KsI6-658+XSnS#_C*i1FXF`qT$a8 zy+jOQKaOA<*MupWPS?qLUX+gVHd@88<9NyUpqFc_xURl!87Icum+lMMoDAwz+ah}Z!HI|He~?^8a(o$s;|%68E-Ya* zI=+ZYi{Ro*3#yB(9@i$>W4(pJmG0EjlvI%y`I;81{j#jqA7^ZO&GsTE$ z&UZ>)nM_zjX(iJ+Tp>zW-phRV4!HP0b<_?B_0pAh;Upblrl#O;7$bljYhpZC$Chzz zd+xd6>5pJ~yAW?D&Txa+%MWjERRJ!Nd3pU;9RqzL5r* t?nQjl*8UK;7V$%nij6L*cd3|r)X)7@$PM@rKM@&d@R0?6=3f)O4+Gbn07tWfAaEg@K9A~EgZTzCKvC8ovIpFhmJ`Fvk* z09(u$BEs4_#qC}3t94#fT4u&eSIdXDj-T@LKD!(l#)M@fI>EItisw}$Yfp$fp<79y yg0R?G^Yp^_viC+|0fe-$ZD1X4I;7@*+NK93p@lw0SRqCdE(>3T$>2=~o&EqQS0<_e literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/INACTIVE.class b/libjava/classpath/lib/org/omg/PortableInterceptor/INACTIVE.class new file mode 100644 index 0000000000000000000000000000000000000000..d9c8c70396c4387393f4527b6c784ae631455ef6 GIT binary patch literal 174 zcmXwyK?=e!6h!B@w$Vz#t$Wu7k03>%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 HcmV?d00001 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 zcma)%O$x#=6oe;Qjn?|J@Bo5q4IaT?Cy9dx)c?Hp*AVghm>u!u{_R2sH`xFD6BRtjJBcLYYLB`m+>=aIaeu*;!Gr# zqE0aSBOVpPa4WSsQZxt#-^e`L&ZeyR^s;cVUMef?g~BK3|GK`Ffm7ZfQnQ^flIQYT lQWN+)eRA9@SuVkcd|Y}RCP5V*YM^MM<-UizwB4+r^8)E^OUeKM literal 0 HcmV?d00001 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 zcmb7CO;5r=5S>N&5I+DvNK8EFtsJ!RA_q=NLej*f1c=wovYj?1?QXLyB>puI{s4cJ zaauqQ7^9cIba&pHdGq$;^X(k~?x9_U5`$Z9B3Gx8JJiOCX@Z`zXe4G<8`twko(i>} zp%FILYF>qX2F;mR3O5lda{cKHrDbp>f`G@`aH-QwD^!+S%`>CJI6($C&hw^?=MUY9 zh$0O7o6?@wd127nkzjEBJ1?i5M`$^QA&n6)k!L!I3dS^=N(( zh>T2fi)oe!O9OVDZS_x!Sos`bhz6C!$(l%F4Y@FMW_c(it&Cbf{7-AJ;*nH$>-G;b zYZwp7B1dt+V9)7z49as`IHSKY6^!+QLLC%ow0B~?%M-0IATm7-fEuM-h6?0q jSD{wm0n`gTgrfqF;be`C0-Mk(@D$ESfr6oL2`;_>15~zo literal 0 HcmV?d00001 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 zcma)&U1|a`6ot?AFaA4K7vP)VgF)y9Y*iQ#rsxWygdsAW3^59IX+CrTT~ujC9aJdd z%Z2-M?%{ktzsGL?BXk&Ygn>38*PkK((8h{YB>mV*vzCd~hWo+dre!D)yp7lk9*H>Q z!D=JdmZ3!GWnbQd#oL%CmtWkU%%`zc_KTrR=x0~|dR=`Ps)W&#$3Y^Euu8{UhC1Q( zq3kZtt+GkzX3BGhES={zr_4(8r8G)J>X33GRF`_^NX=B*bnaOVQ;7pZ$fJZJ7%Hft OftEuLH+^w6hxQ+0K2l!Fqrqad~Gt6zy zoSE1A@dOZIED#WuY%|H%Ozzk^m6Up8oVKa199y}G_dhYNv{f!=QwwwnlS18II`GX)uk%t9X8*Jo Yjj?wmbbR&v7s%fsFlZ(WeGf4D0Ou}Q2mk;8 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0.class b/libjava/classpath/lib/org/omg/PortableInterceptor/IORInterceptor_3_0.class new file mode 100644 index 0000000000000000000000000000000000000000..8c05d479de6f0d618bd164297bb661f65300b44a GIT binary patch literal 299 zcmX^0Z`VEs1_nb0UUmj1Mh3n7qICWI+;shb{GyV?q?}aGypq(Sq!uNXWaj4;vomloGAO`w zJNpMYIqDZcU8C>m;^UfEl37y8&cMaUpaoM!*tLudT*3LJK%cl}=A<$*h-3Oi59AG? a!xlqB=wQ;MrE9hxH)L6^Ye_wBCk0M-)h4NZQOYY@F55wOPk_hsvoO$#bs%gXLM|MJsFO?b_N)m88+8HEP(uUcCeqea^Ntxo3u| zfymJ1%B@icslss;FXAN{&5gZ+@4=eQuo_`6i*Zs#2uB2(Z)%x>uHa>XJuBTg5FU)j zMu*126Vcd+2d{8Kt+(6txg48d`QlAspSAn25kDQj!*e3RtEaSLug{15kZxTp!aQGxUbDtD{ zZ8kW0xUZj7OwFPo0_Uo&<@D+GyGy~8KoQ5KN z)iK5;1svMBa=BD$G&~kQ?*SX(u92+WuC>?N&xdOWE4VJuv2uOM_70BdY%b%2j%gJJ zZV0r-)4Cl`=@~uEwkyzCf8PwclR^qI>|M)gRx4G!7T~yDNcb=VQ*Mo{z=7&wm4KG= z6x&fYL6keH?Bf3uQGdZm%XY^Ej*)&b;ku>OJT{uxQSFoKXxqc`4 zFo$;(u%qr@)~l-hR)kmaF5VN^AQ8nKimZ4|L0t0kQ~ZGn8y9FRLxQBJ^)#r+!ado1 z%Q9rKFV-a;E7)b$rJ$>oy0+5%jQDULpD6g4eyT&eGJ%Ru@jyT=qAC&JT@B9VEnU%) zE#eb6Si)8%Yh`>g_Kjx?JmsA+EzSi*s+o<$s5KzA92uQ(WE>e1rz9nNH;?&l&d;}Q4> zLwRwOU>s0iF|A~JD6oJRp3pr#zv9IF@Dff<`A;w6)$_gn$Zr_z?ODLN3%!rIN>Xga zunT)X!2(wZ>@x4Ja^xB*CwM$eVjoicxavhL0nT6+7mJ6Qjv&Tp8#!|nZ}4sx@5eCC zxL$d1aoDWd--*Kq{ z-=K8~*QWf5MWh~cNMAsjlxL)*v*k1nw>w1sAX?tNL9@JIiDKv#sA@@gl7N% literal 0 HcmV?d00001 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 zcmb7@QBTuQ6vzJ;y3N)K2#SiLf*@U|D`v)*86%JoN2Vh{s&BR1ZbnJBF7*!Mx6(x8 z;)5T+4`n>JE!|i$vpux8_x7CM`JZ#o`SbVJZvf9=&~90WK`7k1&nq3l z!v^n)AhasAqoJ)+a<<Sw$ma>z2QUGVm5N4q;#H=$a` zBIIsc24KjXyMB+>?dpZ`WWmb}*_U3&6R#L%jl9jE>;+A(VHVePsL&YZt6qn{>$U4V zJc)xXR)dD?+ivK|eR8OXQ|}YQizx-f*^`WtF{NiYZ>wOqp(BSY47$w1ld_^hWE?6^ zlVNLs9VuU>)9s14hJ?~^2X}K=ng05?-{ql>dswC7#X;@Kf=-(-U9%@eGi;=;|4E9j z*7+QIg4)6uE2!2Jqh)xcV*{HMEOGuYnR6;>!p@V;mJOot44bLz5$LR^9n zh#_LIPp7k<_w@Mv<82M#5(g0m0yox|iLJ}z!TKNzO{odw6}e!2l4jFiZGM$sWRAQH zl{HO-4S~aze3glorcAP8MJhzt6uACB^M@yJBInX^cwS2*ORi0jfpWEEJk140aXLGD z5;*#P_h)_^Ki~Hye{DFW1$i=x9;tSk1125xSlQZHLnbsiF}ToGvuso2xEIY%{_ZTC3X_cXbE5JQ3LAdw~5<;M<8X literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/Interceptor.class b/libjava/classpath/lib/org/omg/PortableInterceptor/Interceptor.class new file mode 100644 index 0000000000000000000000000000000000000000..4984c4d397208e840f2e80e30cdd1b0d95b7dcd6 GIT binary patch literal 256 zcmX^0Z`VEs1_nb0UUmj1Mh5l#qICWI+;shb{GyV?q?}aGypq(Sz|O!4 O^eqFB&kZD*7-~5F$gpAv2$`{pn_ls=u}+koJZdLxB?o6L|Izs%t#FOeBST17x8f#vC$!>u*~-ch zSS?3q&7Cky(hDKfqL+kClAgZd!r4ZvJs~d4)ng7#=QG>Cpxso92!7BX1_IBWBf`XI LSa^r9oP5L|pGP>V literal 0 HcmV?d00001 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 zcmaix+b%;v6o&s*Z8uw;>U@m2p(J+1B_R|^*$z>9zqOMZ*=A%qb$TmTLc#-h2G1ha zw3RqqxR|wOCg1%3T5H}uo?ihhVah{-Fsn^9(3jQVNE;iS#iF3BFlBLNwFwI9I*Mhb z7;EbxNf`fv^M}Wq8^LK!nC)A~O07Jk3DZA;tCnU^*b29mmG;gmoI?@87@AJiQRot5Qk3MrfPMl?cha zt_UA($Y#)u9zstjl{lzho(Xf(bjXIf%mxwLuw&~oY0qVikPE+R|7Q{_gu%J6(Lx-l zYEZOBs_IIv2D>QP+9EJF?O9w-GNoP5u~ujRaEgcsGU)_?$cW z%M!@&BG(+pUcOo8Oq^5mkLY`7ApIPD#(;Gsv4H{JWttEMF~lb)FwD^jtTE}>^!&mj dMt&>oauItCg`p8GVsO1}tDLj9IhS_n`gp`n1OST#<<7zUG>IGMEYqRStk zZ~Y(DrO;)U+Gl^1%YA2t%n)d?FPWJ;_wIA{KKq=>KmY#m7l501q@Y9KhGkb$R;`j+ zvTR2yRrRdt=yqAJJC>cwnvb-qvA$BZoO!)k*KGxz0`X1lk(R1zW+jy`ZR%x5;Mgt0 zG@MC+$WXE%(3!E;^%x?Es_4Qof#W&D)bBNGCEZ??K?D*xtE^QEnr+Buf3efqFd71> z+-oJ3WB{9+JzQ^k4o33M3i0;iZ%pcuCj zKi!Rffu4}QF}#IK3I+sD?8jzI6@$3UY|6H-IeJmwlI1Zhv*?rs9u6HuKe+O+jY&A; z^h-r!JuSN=pwwJyEKUC_foKH7Z0I%}aeJsO;*`0aZY>>Qwsf+fU|8T{P^#Hl-PxYq zV?J+H*FC96RrKO`3`vYhucZXW!-A}C*w$m|upoAuF_MKCo8cV=Zy%7JDXVxF@9~94 zt4P^&t>!uST06tK-$AKh7l}|q&D=idC8>ur?uJISf(jg^42z*}IkqOdZn8ZCiTVGb zB=3(^OyV}%(Ffhf@alnfI*ekJ+E1yNMn<5E^Pzo|-A@JLM=3)Z`C=C^z|6#upr%#V;wt&dW!z(IQ@hNA4oN5`Z*&wCSFi^lL+}pvbf(HT@g09b0wMHYOHJp}% z8EQjdAopsA(;<+5?_gDEaTovEQf!ZTeDK^|08p8}0SUE#R7r4?! z{V){jln4pw+kqI5ZNp)W@4u8{zUc%UTak{CkKG@GiMj$y;POjIhLKf#Cq1jW>G(7` zQ!O{Rz|~e@uevRYVGMGNtyoQd!siV6p*<7o5bq;CCVkm?iQlOR{|EpI@A#GGufnGk zuY%XE;azn9!kZ4n_$yxn6X@Zu>TTfl4L(KX0OpE3yo65f2TuKp_(J4QoXHJ8!@0zT zksVxo%5@K`*9|C7X-f3?@N*>BMxJ40 z7dLh=9%LDF->)#A)fOuE<9&RC4ld`$_8ywmum%)c8t`smtAsF1>j zo6ayPGLWB6H}`&qHKLusIedy1L4NiMC_@0XXz>q(>CUrZY|5WK!Rv q>c_alXBoF!mUsuX_A2~DIevC=Wo@|+HX6LjJBcQ3=J2Tl&Hn)UBCv7* literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh1=iqICWI+;shb{GyV?q?}aGypq(SEl~uHgJqpn-0gIY3o{$VTdcOk)FTWdJE_8q90|!`)6U^oU E0A|E0DgXcg literal 0 HcmV?d00001 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 zcma)6X;afs6g{t7XbD@{6kJ*Cf;QlaEuySasnh|ce#EqWQ^J&_lcp&DO8tP2AN&FS zD98Jf&^4X$OJ3e`&OP_Md*7eGzkUN)L0*E7A!e8r#W=4h9}Lq{i&dW0EpC>0%`!|S zf4G?~@9}Dln-T&Hqi5=cs#I0IqU4Kbyks$i)-+wS)*1ZqM1di&Wt4dYeuQNN5n>q0 zX*xe>oEN!yEa(}cIisXj3#zG!xw{y!PPIBiBKMziG89?U>)a#>@pu!pMT$3+4gE5c zYe_w_Oiiz35`_rHFfJj=Fm@fL36L>?NroYZ^rUWM7$)OhL<~%2821QE4p^ruiHi2( z7$pA1GF4$)%u92k7b7I!mT?Dn8HQbSQ`|({10fV#*2w1>+U-p9nAXMpWWt!oqJ#y8 z>5AS^924?p@sNwWOBOH7cz_r~_=udVa?8+r(%2lQ0vT_F|AQiCvo?a7h`_MWm9iHBHB<1jsaaGs>As5d4XY)&*IChByV#TP zmSMh+=5`7hSI==McIt)M|rtM~;jJy;{4Pcwt8E3UuDBlz0aM z_o+_(^y&c;{n5ijUx{W4jf}=%@&^XK(T@)i`igBJjY0a#&H);SXcopWMrcKV*Xgv6 z#!zzU3ZpG_#9rN|FgrHGlyeGGn5NT${RVClM;J4hb-7wXu5jxs9cmYH&>_U33F96_ zRzk=Ig%X0tzhiDc`4jQzQqq5gM^|{#qH}6$hutEeJ>GnCgS;OVMx=NA>7)dS1xs_JnPFj WeiA*3q2{9jj<)|6zV7%Op!)zus7RCm literal 0 HcmV?d00001 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 zcmbVLO>Yx15FMA2w1GnD2Zc~5#|=nWJ(hBTK&6!`HcBKe99E8ZvT||k;B_MU*LvUw z@S_m34rJ3bM1qS)9?y8*do%On=hb%rIELqSSYvQ(UC!+==N;?3=xdCPM<;RQt>a1e zU2K$(&A=ujbiylZiaM+_*uD@G!L=|sPx==qJ%eW=%TlQo8lO7+I>y4Ms``w*IzEXJ2x_+pzM{!HOYdXwTL6bp>DX)Yk zx&w4*B&qo_x|uR7)~0T}{XHbq$~rt|@cJLS7n_ODDx3C>pcGb5@Fo(H9$UGgFFqmv*5W4TMM3haGw%r3*kYqJFpw<9_$DE5Dw-t9#Lcyo-B9{;VD(6 KwWV_nj(!210XQH4 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateName.class new file mode 100644 index 0000000000000000000000000000000000000000..f872a4b568ab4973c9e44960ba3439a64470d5c6 GIT binary patch literal 821 zcmbV~&rVZ86vn^lA1b#MumUQeR$WMo@y586kZ4Pjk{d(|Raa&xV;N~@n%k+0FW^R> z!Dnz`NL=^;zKO5k!uZW?(GXat@r0;@LegtpfSw`}a> zZdWyoQ*m4MosGlCPaidmb`A5&Zprq6?5MCd?00orI<+Z#Du;}~;xVC0`NME$pyKs+ z9-ytsVM3sEQqUh?6gFznx^dba=5S76_O*N?Lv6#RinZ+O_uh=a3~}7HR6HPWr%@9S z8v^I6)(o69t|hxel|A@S|Mc4Z%eYtwlkFtMuH&6+@Zx!j_( zYWGxtG-eB!!3BZoNE@{|?Cq*}dvtp-vTa^2X@PFWhZ(o82Lfx+abN#4I@-CteA?vc zlXA;jT=W)~1m@1DDYqseaIJtTOtZJQ`-f~*z8noAXxbrvXI=YY7Ek=WyM9D`2&_R0 zS@1nz0h0)LlIIgip}>q#=4ob}5!WJj_ZbCawsM4vUlQpY*MKF!1~P~+&&-!ogiE;0 z=mA%_dcYGZ(~SAb$`KYScfR84Kg?9}=@|>36Zs-Rl}7S0iiNmNUml-FiCHSaFOBha j?!A@3`>U*+L6B?Lkbt@t=EF>8=G=YG*=L_~@4x^3@fU#0_)$Zfz^LsM;&!PJ zpSB&>SS-qv3eIXcBXG1Ch*9V`hx05?LAtrJ zW0p+UT$MRDFL0@UZ?vZp(~ds!XR+>Kbm3K1#eUYMKkb*E=`qkmEATe8E$>rfX~lYC zU@i=SsE!y01=`FdGQ#@of^El;Ku41TRqB^?s`+)+An!;DGbh)Sd`;V`rFna=_;x|x zZV7E?of1!FgwnR1MFFi;D=1ak`%EB#1Iwl?GQXY{e+~7qZA_~o9rjPQwLl}*x=-zX z`jt#;U=#HE!fs-7!Y(dJCyZfSRn=wdj`%U`(_t7NU{u4%E^#s&9Z8JwgO_oRq)VgZ zje?85W3O|{_4yR{t(XogU|8$B`%h7&ntjC}k=Ghz?<)t^SFX8^p=R1_Ygo#WuaAA< zD~8fKCNaecSohS#Mc=MrwHFy7mTg+cN0^|@R*hm+YM2!`)jSeLN5*oQ>G7G7Y$`L= zj$0fmO%gaG*UFsUaw&`%%qtaqEO26v9vYYn+(;r6qS2#AzgoYV0I z3=S~03nYzdg=2ScCs209vG1#DlR&>A{kIx8rB3@_l0~CZNg5S*e7nI}{k&WgczMVA z-BuJrV9{XH^)__iNves9L_17@tDH&0+zy8nYtN}>^IkZ7dFT=qM+MW%TMJnQ+0h38=(71ptkjVjRzXO5jek1Ma#h1 z=}yN()ew3u#>T#U(5^)!(AS9O85qnlJZo2Z$hvN-Q%_G*1A1qwA;n|xEVsn~4{LzN ze>^nts_`k#yWssmbQA5r@=qJWysFQ@dpN|a?iujj!KV-o;|SlV#cRAO(CBaIycztH zhYJ4d*}%(_vA`C(79tl0#U?J!Mt{dZF@1 z__u1{U7j(<=~VqX=y-xqA*AqO9r6JKP>EfLZs6uW7=Db*qx2SL79!bA%uNnP7M|df zK_>M1{NUeQ1Cn+Ki$qrBog{sL!8dt&l|11r^8i-h@oA-z9V>w^L2Lh25pFOWWl^UGNJ%l^BTVF6w0QIh$!58PZaBpD~m2^x!J%JnZK_Vm$ zc)&tDBn#h>?C)!U9z)%@&jKrc!fGcVcnItGvhE~Zchae9yMeEwvBz+E_jx~DWAGG;}IuE%_bag9J939qWw^t?2_DLZ|Y zyIa40I9*O|2>Bh&es>9DaIYeB&!3z{PzvRVcP~=15zZ|FdWs@^;&aK^I`o{n=!?D0HU=LZ; zFw0eO2*MoZ`4$KkI0k}UMh0wtZT%Ln|7G~ZCh7x*`5|h=z<4&c#2kdT+?~PlZv{e< AkN^Mx literal 0 HcmV?d00001 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 zcmbtWYgZFj6y2AAL&8*Jd{)%rvjiy7zDukX0!nHi2sD;rrIX|uMw6LzGEwO24`_ct z|A%(9=&Gx&pZlY_y6?=883XFFewn#*AN!oM&pv1FKmY#m7l4bnuc1faitW@gcB7VA zupQSZ*Ja*vrBjhj*LE_+#i_hyx_Rr4yki2W$ zH!^j@s%47hyRza6?73v}=w*S}aJnSWo3pDjff(XC`mje}U%|BGe7jMW&a$#AkSf>} zqh2x`Q+)@Mz3#f%5|}Eysh?T;;BGc)=h$$%gO+26lbL1CEB~@_?8gBODS;z3tDW&z zi%xk_wp_=oxU#C_APxz{mrScxm#%FI9OyzLWLCow8rt^R$60cncEz2OD&zzN-qvvp zg91HfRp20<3Q6Qv;%EDDLSP_5c>?d?l!hUJ{m*05rjFA%LvJdMG+enRH&hZ$+gfug z0;|J2(Ra?Qc105PIQv4OM$2j(`reFB3T^nvN&mNW;;`_FUf4W zq+vwhWSG5~M$_G#*(PJwu2+5b$8_w)z68=3SBlICT!?bCyzbZ!lnz68y0nrmC0Iot zXn21|HW-DD5AhKf{7Bcxq%<17&d+xT-3&@E6YgRlq}8xCcgjmqq_n(lkibiCLKagd zH(bY1<$9yrDP<;1`Tt0TV&`)mm+=KlJFxQ{59fB&;ci64nW0G?Q^*PQvG=rD!G|K! z4HKndMqpyQE?(bb4c7z)x6k|8o|>FqD=y3|PA=z*^Zm%PP$T6yBsZFDcCwnlRa{px zD$u#8jDkW=mtxm)h{w6DsAB;)7)!&nY)3%k)!`)_%lL|YMK#Tw(QYxyu_#a&X0%U) zvl?y+91lB4u5PqiIiuxvq)$`p0z-wDmj1U}{_0VBb2?5#TO_v4O1# zWb@O73I1Zn6}7KOOZ5LTadG?th0emEopQH6J6g$G&9>`T&YKFh0;z$qb|1HFzk+{SFpRw zPn?Y=0SiqHw!oPe#2q!J<9nrY-SaSroE_cv{1G_U@x|9eC+a8$!%i&OZC*33n(EJg zI8syotzuj$x%U+Rk}+OZ0F5JF8~D`tmEl|P-8b?W{f{{4L4r@U3`}5vPu<_Z_gnmm zt6t9;b$9{2+z%Z570K(dKXJG)@&rdy$49qt@*(Gati7J$N$#EE>70jom}|XA;w%n% zm;*S6^F)o~T?_~4vvgCTCr6$ly)ya)qmS|47A}NdCcO1|`cv$naz8%CCp@P{pW-tQ zbpqJ{^%r`hh)9oY;nFjt3!}f`$}>zqEIh^4mDKEGd^tCkn)@B|V+>>Q=Gfmn2%1Qu z6a;h{{hV1P1>bOViz~Nz+4&BGFmMWGhEVa`8DWSt6u8sRyDH zEpg-O0u#7+#cMNxlxR>rskvHYkJ=6mmSNN^$_Nx?cq0ya%pGe2g9*dj6wcHiX$AU%dz z;kICiMjKp7%5Gg-H_sF4W&#JoHq2romJMML5d~p}!HeJxfQlguGxXI-k17s^VK~}} zh=J)0kq%+W7jdkUsBk-uLE)c;t>yiD$o z(Qa#+hqNwlEfK^drWH&vj26wRRyQGI=k~eGJ1=-a#eK{$1P{o$5*L=)o-SFP2!SD{ zA}-~5j6whp7y=jN6v7FYn5tI<_U3v=^yDU@h|7_Q!X z*=1_GfZ~Te3?Q;N_L>?#BHedTTT>)>29(wb4cB1dZ|jf zLkCus-n=bCzC@9Wnyf!@bMkTU-J|05(z6LD^ha+PeHEH%G%^}{;@=VYNAmx*{|aUaRf1j zahIzpq=uVc=+I>$=@ub%njr2%W+jEJQz$7o@(mL^@gInWXXD-)9@g-z_Qn{>zkZ+Ni@uUqoofy$(VSVF=DTo%846>{8&MmCew4F{aWrVDOy e@zqrqD})ga!-b1)utN;e#kAuh!&{npu=^L74yzvk literal 0 HcmV?d00001 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 zcma)%T?)c55QHcGMXQ3K2k_YkgWv`Hg@RDg6Qm`Sl$w;d3VJjjJb;H1BdE|f8CY0` zo&DzVyxjpz(B-HwjI2wAJ)~l59mzOXp&{iGRgiTe+Ra0wNy}VcmE))}^fGytB9|r= zQJkrSI2sJo|5KtuIZ4`@BS({A@V#94XR}{sz%VR3#fMLX%gxG=rVB%`w;q?^{RuTG&Bx`xVSjPAp?^S8QI=3Vid_$);#`I z+v$W1%rJcJk79b(QY@k*9lmI_yZ4-X_T0Ps@8|a)0nFg3fj)sk5Vq`Kt7WeQp>pb; zEc;4^4cS&fXjkhmWkZ#l%hGGh&_G6D^|xiH1kU7o zz{TonX~ACb-xfDY`E>)M0_XQgqrGZFNmY}7EC*gwhFOeYT#KC$7|3Z%7N>B=z-fWe z{Xmjh_y%XW5hdQNsZcsw(YdatHMC<>?IfzG*(u1v1zeTR2joXzD^^4GYooh)iC zmv!_Nfph5uy(sOxa0JFvG};B7<%L6!`Zh`ehJ2$!r@`szG@B02Z0=3&cF;)xBQMB*CMR1%54?8tVz?t_qZcq)?B~k zNfr19PsHNV6M-Kr{D_};D7PsvK}AVt(rx04Lzop9+H2x0=5XG?FGn{+x68A*hXn(_ z9w*d6_R z;{bzye1rHkII}qljst~v82XDpeaP~ww}B#t`L&_|j>kANaU3VOqQNW3FdmpFe89-_ zsdpIL!O6ld&h6k*!gaix_yO@t7^j_@^HhYxx46m~8E_4gWHoUeH)8g?9JPw!!VYqu zF!B#>{>kZ=0$08eI2@Ci`VomK?opto82uaeBMQ4a_VX@^JD5+1vRx(582G$Lmf=b7 z;|_tQzE3gP)h-p#KlUJjM@H4VP;G^&`y~b>-tMBDhIqYfG#`&p>4I7Q7(7p1nsBf% jwTo)vW~BEuF>ksIk&}aXf>lQA%JFd_hd_<9KCJx*JCueV literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactory.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..f5c1114155fdc1b9778a568691356919a75108a9 GIT binary patch literal 302 zcmX^0Z`VEs1_nb0UUmj1Mh2t&qICWI+;shb{GyV?q?}aGypq(SZRe8GjxaO5)mQ*q_aOWmwr^e@l?Pp}r(eOc77hF=5nU`)I?WF00 zY8%A0){G2X!TF^?FSupqq%tx{WA}s}$UvZr85x)vm>5_Y*nwff2=o^x0~d(Jzzrms G7hGv71(scEpZ!rT_nApE5Yn|MdC1J1^Ii70&pzKd|Ni&q-vDl)qM=RTj%Ak<)P3!j&&$fDv^BH~oLbjk=!uGMmg}|x zo#TdSI1>Va!J)iBd&(-wFaiig(1A{Yu8d*I#o9(e+AAubKr~|&^-5m14fS0gY8zeMwC=`d1^AT!f}Nw8Nz9t(GV3lUp8wAZ#HWemSxqkjiMt< z5uC+2fl$sc%N6NZrofq|XbhPQgCQd5!3BXfqa<*aNqus1jAoXTL0l5(Zq2HOD*_kZ zR_h_j>y?^Zkcz7?uA*Nfm7vhevWv^)%Rd z(loITPV$|UQUQipm9`^rZ?GxAq`94J3>{r?$)UW4kB+BRt5QbVfAl8n#k6iAUUXxpn&Al&>Zmve*^QG_}gep46B1mGK4WJ(X0C59{c5N%>LR{I2 z2)@ECfeu&r8YTrU9o!>Rlhdo&rJ3c)m2`G7h?Kz9)|;?TZf&yT$x;}1F{2bSD{!vG zE*i=Q=28fSXqJxP9=>M!4a2l-(w$b$3lS_L%f_L)VM?!6*@#B=2U=OPt(Qt8av!%MTp*m5U+!E;B=YH6T%NHoi?=d2oU5wnIm;QL!| zHt!xWs*<+%^ZX3(S^{W%<3)l08ov^J3O+mHy9oZumo|j?ucm=YG?&+s`Rgm4>o z>M4Gyr-;RO@WmU%GQ+>)%U7A#xcewNwTtP6k?7nXm>(J5LFU28KlD6@thZvHT1$@LF+EExLbCtjx0#V6&^wR9xNlrw;sN)unvWh*P1%U zYi?E`5Y77>daLnbA8!xwsP1r+PX#m>-^1fKSZ((D(e?7yFi7wP+J>mwQr&-o0MuG^ l#)tPHeY(T$=uZUxvm2q?vtpSBt(8J}Cb+rR`PGK+{|7nF>qP(n literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceFactoryHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..c1c714ee147a92b45d9603d3d7d1de5b81ab9ae4 GIT binary patch literal 1403 zcmbW0-EPxB5QWdSPC|@nOA7_cZ=j{I1F;ZDAc7EWrHF`#ptj@!Aq6K{f-A?4mUU6z z3M3E_7d!wDg_yP7q_xy4c;=fkvpawO{`w8z0qh)R7@h>8X9xYB{U#97X?wip zOD;NmAOm4H+IzesxA{jdxZmMbr$g3*mx0&iA_t9OVb9rjY|rs~iEj>BhQc9ptFgVg zVGk0ry(0y8`YH)SX5aBbS|8O9ohKJiVaPsneOEqbm@S%325l?oavifcXCM!qVZQGA z{B_uGbFmvIT&xEj$7?#mRr|!K$xrTQhNn}Ah`T^i9v7#Gu9(d{7%mvd;S7VJs&SRP zs41BiHLA<7K1QcnS@Q>>jQdF_9anHQhn4A$lY0X$3|zx?YGj=F-DHWUDV&bpRpJ>| zN8zUwM@QZIB3wyVrFf#KMkv$mxMN@yYm_Vrem`08NYa1YMs)$RK_r1;ZA3^Fbxb4a zYRQ8E6}3_{QxUslSJ%0sPPJs<9!xry*jwKTLK@Dht464B+IW`LWYUz=gwT_rhpDSZ zldryMM(BN(b`PUJWVL?6_(p~q%+Xt?6?g#+o0z9BgWOc;0?yN_0E-ErN}kGBR{*Q@ z150Dd93=;8M0rIK^@y|_dnY87=_1Ke@|JNaVQwVMyj2?F@-bvA>@9^fkKpnnTpl-Y zGs4|MA&o0p-?22r?Xkib*CO196L5F29^r~G6I?mk1KJSQSE?`WSeC3n??|__QMc|# GUgdvN?^+oE literal 0 HcmV?d00001 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 zcmb7AyKcfj5S)X6d6*~#bbNr_#0n|XBOxIL1v(0AZ8nxI`_8&tkoYwUJ|G_zu|`N~ zLP4=R#f)Zl_UHF_0`P)I4=sgPW3$LqS+p|NQBv|kJGLp;&e-TZDL8c>{K=Me${Vig zk{o+@PxswFknRI$P&2)D~W_qDUR&fXNd#wKyT zQy2%~e|-Oo?Ot3O$zW~1rNuli#c+C~$8!@RM=P{tI`Wma6!XwSQ?QT01&0j^@5^ps FbOr(1TFd|d literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..964b46c59c96f2dc3f73f28954936b711d66b185 GIT binary patch literal 2841 zcmbVOYgZdp6y28uhJ?^Z`hq@?K1g{sC<Tib^VPVFX(2z zvRR<%pLl!)*&hFns_YvH{O=_F7B@>i=qpY${PN39%ki@~6OkF@# zd6w!HYUm`6)RZ+~m?ddD0#Cc^07lKN6QwlKv!LPj3G3A=tSI?n=utJ;EAYUlb&R?v zhcNmvpyA^KIbd87#PJCiyx6nMxYRei3Xl2zytEc8r!DU9B0A5EZf+f{FD05P<~5y? z-mfZp9O?p^+;nU`M}#N!Y!tqq&Evo-Jsw0bgkc`zii3TTcO5u-hlL(uZXQPPIqnHG zy2Y#E3xO;9>wIiZp+O3yT7RG{;Slhi3Ui|kx-C5#ayRno@=E*x?cdKLnY zk_d&k?NJ1eF-89yhH2RXVoDi5jUa_-9)H!;l6twscG6!9G{0tBZ&jA5pnu%`Sq*7{ ztNu!|pqENXz2r=6sxE7&ej?UR+UVTMW^FXcO@WRY0tel2S72FZW4cx?Ag>np$;uA( zoMfiPQ^Wi!45$PgqaKFu4DbX5S@`s`R9|M*%ukucvg1|$3F}V7l0a-lxr(k^NW>SMLFt~?)jQCkShKfz#R-MR)5o1Og z-`a-5l6rZhR_U_ii&X_Z1}C?3<^^u=#p7muzgo3U!dQh7!8*PbXmRQ7>D6AT`+B)l z<7%>8o&sG}j&+@`)(0aGXRI>s8Iy*(0o*v^9D6s70d;zU*ZF}B@a6(&9Pui_e~oW( zJ_VnRy*p_Bg@Xo!`LC9NVYKi+;%(rwm2V-O!fDPZ;}Pytzv!F=7>Stalrq?IM=y`wfZrsSg-gjDER;vFZNk#P68w z@7uM+Wp0!~VHO?hp#tAdrIM M*T!XH@~r{Z|0#3$RR910 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..92c3659c5cdc748b48087d900f88d90875cfc796 GIT binary patch literal 1411 zcmbW1Z%@-u6vm$m-Rf!u1VzQaAjsC~8e>c}GejgoM;2$;vNr~oZoAHsu5GS&7{8S! z8W&&q0sK(LbK9~(6A0`@dwcKB`JLySd(Qs;`~3&NW7s;T7@h~BX9xYB{VovFX?wil zOD;M*l!35o?S0;nyZj>;-0$!P?}wfv`J2G&a-l*_9NTmJUSg~x%dmV1-Ky=r z+O)$2ZP%sXPG3b~$Q(G{fYztgL*sKOC^KYVxV|el7^d@uCWE#Wbh&|PTr!b^!7y8O zeg1aPZ*$RzBhFWYj^i~Q;i`RdsL4<6XNK}5D&jhjmS_1%+{=Y#4h&aJ=(xaOs(f4} zFse(YMYZZOtdH5LYF7MkAmfq}%D@fW)Uh<-m2xlS!o)4yrdr04-=8h=M5)vLyGlO8 z>d60;^ys=>cniG05^f1+K z^berEX;SEYk#Qi5BR~uY))%Ll6r|)g|nG8vYx)#KjWai9wzP-QwUC#OY-`}4BID&_MGzgrs z>`cs>&%}l;+tH`9GGRK>PRpEQ*|DMNIhl4wpD%^l8SX0Ml{Vx&>0=eMUO%?gpByVYBkcg%u|va7 z>=J0YrDqG2`FMSy`mtMJ*UBi*_MMv=8a_YLmr4u`wqUQo{+E=?|z}9fGQaOy=Ff+YfW6I*7hE5z32&gKG>xDd-cUN1dW^L=XQnRjI$)a6GH$^Km`zoL^K$Z&)U+bb-w^IZ}nfFSD;uj&4@y z#Fv(f0(+{MKTkrLP3toPyK8u?keyZy2936`q$(kKTDIT>$tKPvPqMvxRPxqP-E8rb zM|uvkl?^j5ZMIJGMXgg`IjJnSUbR`lm<&{eHa1_F36qWv*2q8j=`bUnpKv zS$w#AS^7F~TI&vAc8zXt;osz~t&gDp&IwShC8S45hTd!Seo^ z$yp^5&4r($=%fmH}MDlpojG zXv;E{cBJC{hB>3*LvUiOb8b%M78QM%mKa0~YYuC0!0Ie%-ZR3%@th>zDez|SXMs`%^YTa5pL|4or4wEWD61_b%5J_9GPj=x&TfdA|H7QhCy zaz$2iG{)+97lTQ&EZ`-qkj)CrI5eKexx4rfo!rgzmew3GP4<+Ja z4WN-@ss)4mGEDCyXu~M)LnGLZ6!zeK9K@K*BtlD~p@+1=9ZfjQdnxOcmPc`nPuuzY z2HvFqfa(U1=K&WP@U^}Dm>a7@oOT^Ia5aFF==C;?dx5n+Mf-Sk38w}k-9@}p(WlL2 zvOo?wZnTM-cO7-OdbA?$G6a=6hh20UprYr=Rq?ujiyq8^2eX&@UHSuqN#E(8us#}! zJi+kj!v+zGKKt>%f1(x6JLv|vNAd3x`aT7FK%wqqH$JO^-%H8HT!FT!+Z@4y*o-TP zy726E4}OC1D$N~FF){uNt}bD^pU|?1OvG2j9G}f1a*+ytJ0%CcAl8>m(pT7qubH54 zTx?Y)>#!9L3bYBZcW!$)b6%LCNc33|i*AsSXz1t@d|D2&B5eudJ4X75{=O&9BgXK9 bi&2s{#E2gd1H7=6;%h0#C#ZzV@aO*n-}Go= literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ObjectReferenceTemplateSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..adaad2dcb39cded6b5f004a3cc6c57e5c6769df7 GIT binary patch literal 1427 zcmbW1Z*S626vm&s6_8rDx#`sTcRE}PN@Gk+3=45CSvDnN2J%KTQs54|l(t?kGkz;g zG!kF<0sK(LbK8z>Bt+yzdwVbE{LXXEJ%`_ae*OaR2zCZD3>$&y+Ci^tzYc_SS{~o^ zB^PZT%0SrF)*)}pJ$}Fi_uIVAd!gq@UgIBj0yQep5u2D`wY?ytH<1} z>fZBBJ51mAgee$+)Z2cc9N(|`@*LP)^Vb-)74BA%E;W}nj@NL6tM$~ab0}}5q`Q9DmvLQ7Rzt@%T+d)-`m5z$$c2F$xJf0AgTI?B_;l%0 zBe*IBhP6pjq-$?}60W4iF~`cP_T^|%?ipA^j)Eo5`;$3Omy>G8bP$PP$c;Lr;nxrrM7F z5!5$L4ZY9P?s4=Bo#ubQ_(}&en4`B&D^P}pXPBoigUpoc0xr_30E-D=n=F;Bt^oPM zcPyPy<|sI@LzEZf@iHPU$JPl+MY>F~l)PnJNtl}nGn+3AaPYsfAufws zxE{)1D9(B$XTsCpslT#JhGi-2l_^GkuQ xbj!?1Wn_@S;Z8k}6WJIU7#Wy>K4xHG1Uj3QfepxK2l7~eGzSoK0ohCp+yEIFPUZjr literal 0 HcmV?d00001 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 zcma*iOA5j;5C-5s^%1QKERIcmNM2Mo`h63=9mz z{Csn}U#Thg7VMC7I+Z)THcI6=bZ4)v;0~g?eW=>J0t8JV}vDor);g zt1WRf8G=6}qC#0onb9Rji(&9Sn?><-@(J`AhQFKQB@^L%wa}E&nZe(f$|;vwt{m&j XIeroyilOGJ0gkr&7H;mi?xFht_AyE7 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfoOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/RequestInfoOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..ce12749a858320df2f1c037062aa96f494856768 GIT binary patch literal 845 zcmZuvO>fgc5S?vHoRm@;=y#z7T10Ze>bWO31<4X9QOpSr*4CL=uAE)7UZ?S2H- zkE)nm=SwsfKY91TOf;qlL30JwyY4y-Y_lqz=RD0X{NX?~lcFEpwMGcA?d$KM6! z+80CF%}{ZjNRd0R!C>c(kGY$25xd>nJB&1g23K)0LZNd8r>*v{Z!_haQt(j{xjnA< z2ub~lK|PXGXJWW}hP#jpv`R!wlueu%8>S?KlV!n9w}0)qKgtX{a)3l_4yC&1Y7i5872BrjGCxfT825QaS~xTwZq`7I)-FGUpQ5t*T%Ko+!MUz3!6j#sYOXJfO*fJ)P<0&LU9J%bvU&2yk` zu>qSFpTm~L7qCtIm&D#6+#%+xCnv9AcZst{oP(*_AsktiV>q$+2Hsjcg)@uq;Jw8U N=AJap>AMCO{{UMV-CO_w literal 0 HcmV?d00001 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 zcmYL?K?=e!6h!A&+iFF0>jhjIJVUS`2nwO@(-Mj$CKA&g&V>i?P-4=Jt3Q93dGqsn^-ExTCfWv$iGc;y=P@YXR=aefe@tWG(mgmote$+R>rJJ+3RJRu#V z?iGOqVacs|dTIPMdXq2$LLqD)aOF*h)ano1MOGGyh(W>zDY9_$@Fkdy-h9->4|07d ArT_o{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.class b/libjava/classpath/lib/org/omg/PortableInterceptor/SYSTEM_EXCEPTION.class new file mode 100644 index 0000000000000000000000000000000000000000..50894b2059c16aba3cd61d7f7974e52070e6a2fb GIT binary patch literal 190 zcmZ9F!3u&v7=-7y%rb&59eRgo=^4bpLn$axr&wi?WZR8x_2D}706kQ+dh9kc%zX3t zzTNzvM-HxW?xw&Wa>G1{f2T4evOUT-7Ws z8&O$;-*MRr0_B87q}9`MWlw!Ja#utMbKN@V{w7^(^^e{5#EF|@sACNu6Xyaq_Au=c Im<>Ao0V;VcnE(I) literal 0 HcmV?d00001 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 zcma)6*>Vy=6g|z70W#SjizcpF43Nkqt`TB1tHEHfLJA+_09|BKWQH0BG=HT&pyh)f z;73{B9)=|>mM`7YJ$=qS_w>E}`_Io`0M?O~;9`gxW>GONi^_Y$wA5UQCv}UPd0w^* zQ^|0%#?55mkeABbl;B|)zffzcQd0GzlFnW5yu~oIsp*=v#o!J{vJ9SGqrd}j!!N^& zA%?M(rt{22EKOzREGKBhsB@?W3 zl|%)5aSRgwY?-QXZn>Z4NH0c6zAfVp?lO!z=$5$2a36$Fa8)L&XX)?tG*4+?Tv5W0 z1uRKeWSA-HRi$A<+RUABk$2wW1sM;p%;3+Eb0uyWdT+X9bs_+Uh>WO^=h6y3tTOnT zwG%)LYZ8CkN^lj89}d#WSic2db7dwPGW)eeSB) z(LtUJ3`*5)m^mL_P=zMt}c|Vz&MWquTs5o7<+LC+C z6+L!zymT_@XdTdIc)I|{?nAlaQ9LU&CqRY`XsV^rw{JJ7^a6Kd9B z;|+_62f=fn3f4`JARy5fJyJAEv{GnhG<&1p;rmJ-E(B;4zkxW0X_OlWXda=JAEOwf z9Rc2=(=M8aqAPWbx6uK6caOsC+YHl1uChTvj6}9 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0es%^XMh4ydqICWI+;shb{GyV?q?}aGypq(S$ck__@MNG(b%$;{6y zW@q4FWDtRAcJ>c)a)cYp#mJz5DpLS;rM{<&k855@W=SPG0}msEI!qNdUm&@kk%22X vzZB>_x6GVWMg}nq59)#Z2J{Uh12Y2)11keN11AGFFt`|iBD_G7iGdFQ?IvLZ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfoOperations.class b/libjava/classpath/lib/org/omg/PortableInterceptor/ServerRequestInfoOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..52366e313e301370aa744b0b14b2e092dbb258bc GIT binary patch literal 793 zcmaJfgc5S=ZdZju5Gw6q0E!wLI>)f0!D+6W{|5sn%u676BNv8UEn&aPQ+qxP?H z;0N%d5VM;YP>Fi5NA`R3=FP{?U*CTKzzMtyV1vO&ZHidWi+HS!6|)i(Wzl3TANt?B?;40f)?Ld2y|MV!vAF|z?|GB|lia;+GHLy_m)U{&7n znu^K{d8Wz9t!2;;M~z~Vj=d?uhf8>H5ltC%L@p}w&1KG@6-Jk54BFaT^1pfoS}#nL zN|!Rbqmp3~{Sh9f=Vzxh0|yOA@6)Xt!LrdE1_zCSB`^6h<>Pde48Jny)u?i*3XV+* zgT3&+@~LvNTeY)MYHDgfOzstTlxP~jO9tF|*%X2hxfjO6M(N`iv2D{|AeB{-%u*rn*aa+ literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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 zcma)%O$x#=5QSg-i&g~}x_9T!&?D485QK_7L0UsesZEJv!K=CO03J$=s0&@mz=MJJ z=6!R!U#?E2==lhWrKutCCONh2E!nel@z%wQW3_P zN{FMy;Qx6dER~g{O>yLCGmJm6dAOSeqI~y@^Ta6g=(v~R_O8 literal 0 HcmV?d00001 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 zcmZ{fzYc;h9E7j<2X)amaMi_znTf@T1QIqEQ?O}@*piks{PEt}i-3w3rO3PwlS%-Qf(`t7;I{58)6hlVxqhiFfqOy&Ok=8Ib;`?Ax*ye z1N<%34@pmZj`g!Y%Hy47dC5Xf zvH3wnwph-jlU1@S4yhon;+lpC!@EtRo9yitt$JB>q@_2c*bU=4ZZHHZy3uS2X&MaI zTxbND3V|TPn8h4}N8e?*PDzJCR0z#zrUH16L31Pv;eC9d;Woq7emze9awd!@?og(N zCAbtd-H^iig*QY^HW*f7f9fP@dTfftOmC%^993GH-Ub!7gZ6!GivY6)!Y(I z+Jfqe$z+!n7anOKd2aVRXR@D$FQ_g1KE3YBq*rUDbUB?5;7dBdf+?dsS}LZagSK2o zTFqsK;l_kcQ^&uI)iBnuPII9KJIlKrnzO{HcXf}XP_s+Q59eTL)v&>EYq*nb@lGep zJ96!)A=*+`gXT5s`wTM!)tvFLFBK}@BaTRc5%h5k^77U>jpLjPWT1lTF&Z**S$CgW z+qvnIn?}1UX@mtoxVVorl)33?y+lm}JoF)}uW$Bz6EA32dLzb#3%$ z4-1?4hJ5^p;9KMfVVX`VPcnF@*dj_!?nPSL#lFGwol{iaQp~8_znv+zitlJYh%Ib8 j@yq0`gb$n(|GORElRbd%u|vM9XMV6{XZVp;9{ltl&65be literal 0 HcmV?d00001 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 zcmZ`#Jx>Bb5PgHED=0!miS5y_v9^MXR)o7iNkNu#vN=3&$+{4Jn}t8XA7z{~kdUCo zWIo@UdGq!C@d@AoU4;fAcHV0DW_9L#FsqX1?04*Svh|*;kZ#zUP`K({AtH3wW@mJ1 zDy!4gn)9G=MYun5BlRTF3Fh|rG*lYijSf0Si&xAi$c7bO#VXZnV)s@%Q1V|HRehRMIY_YQ$7LC{bEdZUd*(A^|p@$RHy)?ceYYmlJEz$eq;l%?Xy{e7&YlM#3 zxe6g!u%{}64&<}wMUIdQwNZPG%M;~}S`PWpR@p$Z4Li0Elm1NC2}|Ku_J6*}3SnqA zY+j`%O(e?RX%nr?RpJa|afT6&c5`+|$p4iQGG*IvRkfw#yZ3%S^kPipZ{l7gkV3$# zadaWWb2oor0$Cp1fgIO9K3V3OcuvhfqyMQX8Q_{>8BjzL+Zg0kwk5(4hItnQM!3d+ kHCD#j^!&mzMt>7Z9O9r!7;dTB1lDt~31$!`xjTWWPmjxq&j0`b literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContextHelper.class b/libjava/classpath/lib/org/omg/PortableServer/CurrentPackage/NoContextHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..2a84b31a0b9595157d2b734b7e4de9e7b9e77560 GIT binary patch literal 2767 zcmbVOT~`}b6y29VhoobhrqI^XR{ALcB&}Mjq}D=!f&_wqL97}l;Ton*X5wT*;YF7} zK;Qfy)uqs7m)d84l*@f*hD=CkSMAGu+_`t3efHVs-udU>KmG!616vxp1a8_+Ib~PN zsU_QSjbcTvNM}nrsZ7Ihq~$IdrH4jYrWWmtZMkyWot2fEbTo7e#2*-2Myg_1j%Q6vE;gz~>8z??0*S0$GAen)G1Yr8 z*zInbb%9&iS0a~YV0WiR@Uuh7CPXH;JUNkC<+vi1j^YGPYDfs2E?bS1|25|nmu1~` z%#tfNbo8NLAi82&<%)D|OW%j8mWq~Xef+%CzQYuZ-9EeYHo>cs9G zx!;yYE8p~UC1X`>rzoIRy~J3c^DhLV9Zah(9s1(lP+PB~&h)+lvvy^}7kpI5F&vK}i81B8l)&{?VOBRC`;qcn$f3<1$$X40@{WeLJ4!(6 zI^M-ie(=*PP(Eo?eLr7o&$JfwRVtjtM5v`7wkrX;8Hr|63szhdt^TsuyS4 znJDbAxGyWZ(&0lLckmILH2^=5@zstdJ1pfWYcZi?5*dM>Eu+$4d-k_DGc1XQX@S(f z?O&3nhI;}7`-}WyPEJe}a!b?86RUH%#a_&jf3v{`<#vrbmfVP82J^}zS@LQ1NYI$c zeB@pR(I}_obS&W$(yyA9?FfiDwRlCxDn4cNs+})mH0n%jv=u1KthMjMQ4MPX=fWK! zQ!(oGj8S)+zGkRRfx+yHeNW#+N^+b1(IRUnn3`5JxDTCgy6X_RxFHqTG;>qgaUKq1 zO4!3I5uOa=H^#2hx@-l4ueF=6>4`b3)^Pn^cqKQMAT=<;rGv#j3}44LYS%rgC>847 zMjOKv=2=2hu@Jb@romw-6fDuAXy6NCJaSBz#a@4Is=0<6=Gu&OxQ-nMEjNi6EYvjE z0+*kYY-VY#9ICA5%8% zzQ`jj!hZ-r;}Z{dUNyd@co)3)4DX@$7d~_$#;f`ajN>S;x<7&U*Z3AyyEI4C;w5x* zKG63o;`5O|aVk6f1ZNWGMs{)GF~@zZV_x71&Yk4yjE8xO-?|aU74&t4L>&1bp-brH$k&vh zz$b%WO8hgC7@&7AqRbRFJvzfok%0m_y`1|Q)`@lkXYe`h^J#!$et|EE8&!WB0maK+ zL?Dv*Dpb+0NZkWgszgb^2o~gnoZ`%>$ULUjDOGu4G+gc1;5#b%JwyKBp$vLD#7Wj9 zUJu94;sFtlkmzk literal 0 HcmV?d00001 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 zcmZ`#!A`AF;veO6U3O9G-|+bU+M%`+g)9@P5dlRCLa6%Kgu{O z#uHrL+nL!nGjG1WKRyARpc5ewI5KvYm|~XP8tddVr!m=zY;y6cWudaG;yI^+w3AL5 z9U&ChU7_$oshvRMRB7eT1Zv%bi9k3s_Y|Xs^(N|Q2((hA>AEbYWbgb$flg{NnNOru zKK@IF?m^83dg+RJOE>KEc%>`z#9jBg|I*>j=zNeYtc~cUq`B++-Quw+ZAO>MZ?Utq zWA9N`GTaB-;j;k&zt{$2#8JX5nCpk{SbO^|$Be!V9AksAx%j}m34gyWv^Xo!W(=_X E1Fi67D*ylh literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ForwardRequest.class b/libjava/classpath/lib/org/omg/PortableServer/ForwardRequest.class new file mode 100644 index 0000000000000000000000000000000000000000..9d2fc9ce1464608d6880362b22a59e03ea82ce33 GIT binary patch literal 859 zcmaKqOK;Oa5Xb-PBn@#wA4wZ%%OeFU@<3P>$08(18&qV`N2rek$K56yQoF1-Ek)u( zaX^(gaOA*OLPE^iCMY6s*_qv)`OSZ3_xsN;Ujb}jJqv?jJ&-*sIO$n?fmCjH$lF|= zacQ*zdG5-i1O9HrLzP9EVfA-tbNArcQ|mC~a{Il*^A(v-ZKlLN!80%kEsjhy!{7>a-68A@(v%50Xa|0>L2wu6!McuVMqC`~^7 zL)`#<7b*z@8PKo63UV;%Bu^j7K!H5cM1G1qnkTJA+C3u6$Y$!7D1C}TmuNL91=vR# zZIsE==@f)(xK36BmTA?1eTqzx&DR^3SgAkwjGKQjv(eRSO6(BwO@yk%;R%WoaT}Eg upT`<0G$Q<+1mB{)mSSps^~Mx>pF|F**S8V997m7oX2jGz-X)5Gd%plK^SS;2 literal 0 HcmV?d00001 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 zcmb7GYgZFj6y28uhm50QR30j=Zy`a`m-c~L5m2dtAW$f^LWgjH!H|iQ36DPP%YJD4 z1KR!z+oj+ttB=q9QC;0PGnq+(()wj4bLX6W_Bm&tlll9f-~IsbDjsTR5J=k2LdsrV zNR8NzYtH86m~>X8le%s@tEMwID({zM(Y+~i1?gyr3N$a7D`qNZ<`+_#*(I5E1$JGs z@|Jr=Akx`2ArS4e=cJAZVg?$qOJHBx%FE%>@~m{mRS1E2+RmD}3DdFEvws+M7pJiZ7n(LT~$ED7|wJ$SztvA)1U+?J(&UVbON5_5~&=42cUx^=p7&wSSWbH?q z8FL+JE_9EVp z!pbl7bWKEV^dT0b*=Yl3aFzs@t-S3Bh(YDtWgvm1Kun3D&ny*5y}KG{e9^I2Rngd! z5I#KBa8BT8_@*ys7K?pm(H&UJ%7Sazc`D4zuL~RqDiXAaLWpGLn!rm{*xM15*{nGy z&`}3bQz%+BSTs7w-iCbqLNwt`fxWd=QZXM>aq{AsXHI+PpenlDLMo!18?Ah zj(b?vklVI@nS_BnY^Il`8eBOeEBj!^%?jLk7LRRHd#8>jERD8Y zt`+~CI(7u25aunJ

    • 2#jApBTy-p$-OoICx-um<9IpUqN5z+GxrR?Pa6g``ZFeBT zYFq=Ks#R~4$@mkdV-24hcz`d07nPA|uP5tEUoDMYc9}1SGvHdcWvT;H{`#0*aknlACyE1DC@J=;fD7jC-%_-r^biZ0Lqw z93fN;*U;xfPSQp}wz3}mlUo>^+QhANl27R;7)ge_;*1TH*oPGYt>F;XtAey*9PcY; zYz04G%0aj^{2(q%uZn)=SA1|Q`a7o6Px0|kGO~r~srX#C*n}KQJjG)CA`8D1#%y6U z;2|S_OVZyF{d;2n5R^K~!WVFtHZgSIJ{-o|gLV|*GN~BZuJ{bnewxiH%m!8y$;TMk lz-M9c_Ldp`NTxqgEI(J}){HOl6=ML+er^I^^Qi&f{0mx`<%IwM literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmaivOA5j;5QhKwidF>|f?Kz44B`oVf*@4%1hIyYk|rgMf>(3l0X&o#(XL#`z`*d& ze0=kG-tGV<=u%V&M%GDYGs$+=d4AO5AlyYbwmHp;LP?Ve<9Al8^BLfW%3sv=fZKXtSKlWf?;|1LFQjOwpngh#w&j%hz|Db f60ufV5Db2W$8XnQM^Ft_2SqD9jxe`Fub}e+ItWf7 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..8ca64c3eb7f0665215c01c02ced34a1344e49b83 GIT binary patch literal 267 zcmX^0Z`VEs1_nb0ZgvJHMh4^jqICWI+;shb{GyV?q@2{?)S|M~B7M&k$KvA5^t{~E zypn+YoXq4(|AN$_#FEVXykd3+7Dfhvti-ZJ{hY+SbbbG%tkmQZb_O;^2055<&i+A8 zjzB|Ebuu!rmL=wtrZO@ZX=wVu)DpBh45Y`Jk%22XzqBYh)h#mzXo4a>C+dM*2Xqf3 Z12Yh_0zJ$KbTc~x2Z+VM2_%^qxB#SfPu&0j literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyValue.class b/libjava/classpath/lib/org/omg/PortableServer/IdAssignmentPolicyValue.class new file mode 100644 index 0000000000000000000000000000000000000000..5f28c46dd47430d4ea5341574850ddc6a24b3e60 GIT binary patch literal 1654 zcmb7DU2_sw7=BLpSRm9`)Tjg-w37;f#5J+&<(7(4(u|^k}>wO z(`kF%+x~=J*!Yo|W?JvP=r8GS==3=YB&pV!db8)8XW#dE-p`kR|MmxfdE8MjA~0t= zP1SBU)pgr(^{tjsGMsJ0QME><+cle3+pyeqyJgmQDtfDDDDVp$f1q#cYD>48YH{m< zQFj#t1x|XXX{%%~^_KZavMC4&B!?Qg;zl;3b_PnSwo=GjuIcWOvg1 zAZ`h~le4X^t6Q!o9!Q)S?X~`T^rt|uwk^Y&NK6+!GC{BOIO1D^L`XDoRGImQH=L*(@~tp83pNo zb*nEELM()FY5zeKXAu_|E0~tC)@yGWPFZ$MAXc#JdaI(dlYDz%1U}5mAQIB`Y81yX z#`xU(CbLoWVM9Xq9J^gJEtfWo@NLVa;8TH#Vb}Ttlg+HuitG7}Oj#?gDPWmSzgoI% z&uldeCxp*9h?>RWFdNB^H@C?;E0~PnI&R45KNmQadcE}NinPc^kppKhsCPPs)euO? z6y6}VC_PrAxQQ>=IM?o1m-?yKU1)m^H+(m97z^`Oh~l=aUZ8DSwxggZkUCV!IF7!f zSqXVJq?9>Gr$=VTI( z%enMUP9DzyxhIey!#TdbfuCPsaUY`U+rxWLa6w-E-t}VOcM0#}LaFNC#l_MSOc6>| zeX$uLu~`C_f2I2f=J=gr$UvC_C5Ek2{%ZztpLi2#Soj2OHgFlL=K)G{!3Ke>l4FE; zWM&UnW+t9t;gI(j%K~(1-=o5|=Re-J#)n>#^utG9`eA%boqlp%CM!9ocQF-TczkCc z*Q)!tUX3m7VLARBndivwK`YG0Zau@7voGi->l4Hp-DE=Jd;#AQ`HnsL9+UV1m+<3} z0H(3-b!C!Ce}xS)2sxgE0Irfpa)x(tdFCk=79R7_rw)2Qe)6cIeWO7xg4HVz2vnY4 VP}2LCSDb%7;v6_|-t??0{{Y^&V6OlG literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/IdUniquenessPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..05e41ed83f0a7cab717d5d49a4c3a505f31f0276 GIT binary patch literal 267 zcmaivOA5j;5QhKwidF>|f?Kz44B`oVf*@2B4-o56Qfi`U6ug=X58$E1h<4>d1_p+I z=Hr{k^L7U?K$D}u&@(m`<`9dOu}C+dM*2Xqf3 Z12Yh_0zJ$KbTc~x2Z+VM2_%^qxB$l?P$B>T literal 0 HcmV?d00001 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 zcmb7DU2_v<6n@@(G#_0l1}Ksi8<4h1i(Oj$Kw67Qn&M*Ggr*6T;UaF6B`lNd#?7Wf z_0nQO-7@QY6}{CnLI?<)ex&c}YD>48YGLP* zQFlWa5jg9irmd2})LZ74k}ZU=Kw=mpTiD8^)y^Q2s;%X7mTS6ur0jZ56~pP8wpG^F z1jHSIH?p?Xb#=@2f(NJFAM2yljhMhlZC9p4D@`C;D{pFd%ek7i=4WXTh#Ua|*Yd;g z|F6Vl0j0K4&TnhQ{E$)zjGll5f`-*=GyLNH*JmGPMXph^^tRCzICDRLEN97eOsmNZ z!YlQbX_@Y-fIpe42n4cr!-%r9DFq2!q5>;}|AC~Iszmtb9R)F*k+*3DTXs(%mbdGAtD>``e0yLNek{r)CZ+3j z1*b5^{M?5os|o4D#)Ka@cDrU;E^V0M>&g_uM*3 zx+$AH`HE#kR)nlXytHi4-h+h&CIz3f1!fLvz6fiL8^u zM?5-rfNOIT&#-jNdy29EUE22;Vb}8??_1+NuSojgeXsloK46@Faa|TGIcN7V6JL6A z?+`bthqzgdtsG!A{v7G&$Q?k-&&TdO!)Nn<(oO0!f=#-~g2wp*z9#Ywd-5%&@ExY{ z{fPu-QS`bp#iH+Giwr`J=OBUWL>ezKvgSsrGE}zFP;?2V8Lv6Z zd6}{x&O~A;`UJC9Y8#w3o)!G;4+z%n-s?fFNz`jRq#cifjonufrQ h)I}%aAag-5{{_E%aa&S?j*T8DhV~V(^~h!i<0pVhRmcDU literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyOperations.class b/libjava/classpath/lib/org/omg/PortableServer/ImplicitActivationPolicyOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..0b56ff4f1ad26d0eefd22cfb5d4308c5808c8f2d GIT binary patch literal 285 zcmX^0Z`VEs1_nb0ZgvJHMh46LqICWI+;shb{GyV?q@2{?)S|M~B7M)?f}G6c%o4}s zlFYKilFagNCGt}8X z$jK3CG^$QU2G+8~oYGWA1`7>MADCJq9S{c6Y0b#M6`WsMl$`38nFBOOov?HDKrRKk bjgf&Fh*^O_zzB3dI|B!Z#lQ(9nHabL`xaM( literal 0 HcmV?d00001 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 zcmbVMU2_sw7=8}lAT<^hD~S!JngFp<_W?2~1n_hG} zZLfRVpU|0VtTNL~^}au#Kc~~@EMQWNovAl_&Uw%K@x0Iboc;6f-=70GhkJgw1TL6X zGi|n;>7r@b>PAZ|X;xpe(n`D2((AgNsoQ#AwRO`dnlx-x)K*XP!y|C$f!bHoE!AkI z3mXr#y6uNg;D}?@%{24qYD@oG=JX>V5Fb~{71pzvbZ1mAtt{tP3|qIin6m2xRWz&1 zf_If=0dZU4ot$ZOZPl=y;@*p~!Iu+LfBh=ptMw%udMT`2Q|=V=N=_-)GP$x+$&{7C znwzac;P5_I0+;e*NdKq#MS)|rwZfaK34!STw*p?x=(P#=^8L51e1JUITFp?~T9<9z z&+iVQWLvt?B)Y&-y`>wveM7*VNLBuRf_QU^Rc z#t_^%CqYcf(DPvr#U+L_|ua3tV*tE=cO*d?Tt3>#AWchJbU~)X+q3E)i`(L3C#BNRztG_xK2qa1_h=!;vGl(@j7{ohj0xyWe*<<98J7FfMi8_WW&gT z`t_-uj%G9jreq^;D7GjgR>Qc3PdGl?9CFP1iPuBudj&V$w{n;Wa+eR|j^xnW)(zA0 zqacvjt&*`UbxScC+QUN6E^KDap3&&8JgjRS`J&0Z?1(biP>JxwOP=>3i&S|>kBy?@ za|@Nso>kXYbvf#p|NLE?m4I-P6L-S}FZeq^3_(aq9^m_QL8^~Z;QlxcaUI*=<(ay4 z>__(4kJ3(+(jJoeP3*n@+d)?s{=|#|ME)k&wGNsFN5zoUX_0U;>3KC literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/LIFESPAN_POLICY_ID.class b/libjava/classpath/lib/org/omg/PortableServer/LIFESPAN_POLICY_ID.class new file mode 100644 index 0000000000000000000000000000000000000000..37d54b993a48055d73612c9e486119e7558d13b0 GIT binary patch literal 189 zcmX^0Z`VEs1_nb0ZgvJHMh4CNqICWI+;shb{GyV?q@2{?)S|M~B7GlEH`m|*N5A+0 ze;-fh$aqf|b_Nzk27#=^vPAuy#JqHU|D>$c?0|Uc9 z^YP8|b$b)TmUxBOBDbB literal 0 HcmV?d00001 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 zcmb7EU2_v<6n@_3JFFA~6i5pV2yK!UR*D};3z(!SF2uDG^1ko0=RD_}=bV#2{(kx!fUCG4!iYfH zb~aSIy`e7Kj;pV=jI!Zu8ID>o*NtvRx0dae+1Re?t)3BrU*OoLzNM=z-P%w~Ynw*H z4IwCS!b444rMIcK%r7KU2w{Q5kUv*i$!65fAd0Fj7V?&By4$4edQMft>6*56Pg@ia zcLiR{*;d!pE!PVkSpDhTUw@{)nHLDww`4lB(gdRQ%1WkK*7C)Qk7Yq1vJVK%7KY*f zzdSM@sW0bO%38THU=!p&Km-DY)oU~G<<(c@WgV_jxAeBr6*#_HI1sVyI;OS3*x`jn z%d|}QmVhsrstWjXcGHNmph*P@oM+t&gYW*Nma0bhxf3#Mfhd+jyDsmPuQ#0qvpZ&h{nk#7%-!iTFei3#a?O~Fx& zGC%h-lhuUuVLQU>j@_=CmMfq#!&i|gg!cr-hrQ~LN;b1tFH!wWMJp9UphTyhmo3{f zTTR0W<0eN?vp5!JGtu!THqoGZi70O1w#@u}fs@G>WlvS5MOHx$oVuXi=@?d1U_z$< zAHn9O$C83O_<&7w?Y^>%pM24Uw%2jncPEF@2yX=iA4%l`ZPT)y5K02cgD4rt(YH0L zX*?+P+|qj1?pe)l{z1d&xLgbBEi2-1tm(|~?7q4$5sOj<1}nl*l1oyydrrexGG&8L zzht$q$TV=C-SuGv0dRE@M+9>Gj&Q3+ASaD&=lu+h@f_l>^UWFb@Dqpdlf*fZ#N%=v zy^|BiGeGWfOpxI$Uthw{UtoR@qUPJhxktDluYT`(G4M>nJGfA;`FC)!{0LKok~Lo} zO(Zr$VD=ZfkKhV_r0dE7_mGc1bV!Z literal 0 HcmV?d00001 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 zcmX^0Z`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`DxLjHaPn1PU$ft`U9 P=obbcpBqRrG4KEY#{oLo literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e66809f7f9d7322133ab83fa9fdbeb23ab23186e GIT binary patch literal 2396 zcmah~YgZdp6x}yGCP@cM!>dKq^vSct()uW=)c`G^;UOR`zUU-e!eBBJCle^&)t{jK z8P&A}maJv{?2mG}@63=VtzYJG?>YPIbI!i!{`2pje*w6I0}Ua8xb5T;b|IHou^rdQ z_M@IkP9Tu0Z<((=y$M0xiQM8v?B}_O^_o z1rZ%>XcxGcHZ8eSE@Y&$u5blnX*+A=Hw?#A|G{FbyK9yNuBHEvN0K2e!*T2bfqTOh z^O@z<=~O@}IZ|0}&L*khlEA?0!)WLh=s(-{ai>$WTPvy6)S`x7ZdR+X<~pX8n=YIA zZRx1A`*mE#6@hS0x-)sB#GJZ^N77XfZ!sCgTXA($3S;GO=u)d?~Tvt*}Mlgj38Yrv& zoK;Q){!V69me|{@E4Oug4C*_w#!ly@tD<%{piz9xL*P>#DV0aa+zw-g?7R{^!kmW3 z0+;G3&`HNU76_Mhq~Xdf({iP=V`Sx)n-zF?P8pl3Sfh2HdL=P7#I#D%;TfH5JSQpZ zFj-0AoHH`A5yc{wH7qr;rmKz>d_g7n@LOk-;7VhZGp%tfv>4W5bJ-LP)uUa5BnRI_ zh87qZ1dy*y3nfm`zV{ zLQbeIHV2uSoVd$e*hrp$=|+mhV5%k-tYX=v#-&ksGiMEyKySTb7E`Nh^Qm+glyt{} z#q;LaMUGLI6E}mQmbn>Ri15qQv4`&k+6ty+I|70lYco}3fg6=F`+7N-8C?oI5Dlh5 zc($zVz%gBtn0;-Y%VoEkXa%RaY)N%#wA-Gwz|D$f1Gzdl#`lJsKy=M6J6ZYIRQF0} z<*u4gGo$q?``5xN4hZv$ml2;D{}Ox)zS~BR5&n%IAw>C9+rWKX;8XVv`0n6eL}`F4 z%Gn^0vKt!x8(lA-oFcY)ik{8UBlI0%-~{nw+=`7HVeANrV@$sCj9ck+Hwe?|ahl`G z0z-aY6K)9a;{z|;hxjN6Hy&i5|Bm}7_#`%cgxQz0sinN`VT3%-&xq&~eMlR%);>xq z>1vu$Z}l1D8=haEZ-rH?(OQ*Z9bXb7f(<+guqOFdNr#!{(-VBt$Y8G~i*SGxQIjz6 zzwUVhEwS$!UELb;&q&E9zr?f^`PeBko3ZU L#4mF_g#G^jUzjtH literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAManager.class b/libjava/classpath/lib/org/omg/PortableServer/POAManager.class new file mode 100644 index 0000000000000000000000000000000000000000..7b87924561caf7b60e62d51cf957311822332798 GIT binary patch literal 243 zcmaivOA5j;7=$PF5v__YJbqg0zItQkxQE!K=CO03J$=sE8~1VPIf} z`TpDeas@C$kHRAuYonMxC>CmCMV!k>no1fL@?a+lp`@Xx6AUs@36_gOF&<|!u@p^$ z$=@#F!~f0d_NCZ`QBuk<#tur)SfAPg5huKHAvt``eYKhPIF1n{{l{* VY>tMY=B@#XwtEoHcbt0YJ^+CZLmvPD literal 0 HcmV?d00001 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 zcma)&!AiqG5Qb-K(zMZP)st_KBDm;D@YI8XP)Q)*p_ek<3^6rklZk6G=n7rg z06YQX6*eeKta2GISEQVP0V-EC=t#g$G`SZLUcV@+KQ%)Emw%chs2ncJ#E zGBC{Oi|$ABdCMPXg;i*>g`wv)S!V@!Q8yXpnQaNh_=?mcFIadImL-L`|b-~3}TV6@fQhXWSyc|Rxo>ySx3 GIQjtS!*8?z literal 0 HcmV?d00001 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 zcmb7>!A?^_6o&s(ZhNIxDYZ})H7=nfOo$sJ1XBwpH5X{CbnWyqxeSzNg0emRqnYJv%m5VuNX7bPX|11&v@-GV>}>KPvuw&Z3UZa+1FPg2%*e4UUromGViFhOQ27LM@?&nUK-z({gKLl z?Y*b(wde<-u&s^uJA}E_wJsrQ+GAD394aL|#sXm>(MBDN&U?yznL1Pwo3epq8+M#+ zM*c((3Gb4-?Em{TTZE<6WOApzG@0mlr%krC)(v5vg)lYF`0eD9Q2AFzD0b|~rRt*& zk5Ik$?i+#2-^T>xkVnk3=a@&4`$PWN97;SW+?Z>bciwO(?)myP7Jp78Pq-FY1~d?% zi7L-ZQxTT1%&P#XaSebSRt9aMzJ86T_X+zP;$T8po~mX9)^o5GW)NQR=^S4E0nmMr A^8f$< literal 0 HcmV?d00001 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 zcmbtWU31e$6g?X!C^jk>^VtMw_>Pk_hJHd!DUK6Jii6!GHBD(Tvb}W#w&cokNFLhh z4`?6xAGFg3rc7I&`=dHNYblmd5@skbl6JLw?z!ilyV5`Z{_z)pOIXv;CveSnYAL%> zOBHO#HOh6lB%L+sqzd`Wf?*jo=@g90L*7%Fs?l_%GjACc*Ibixvfh-AhJJzg17pod z)eWnb%9kI=iYu_^s%e?-HG#-zvMA7>wW~6Q2%74DaBSh7o}SFXJ<=j?*|pMioaIt}My*ifp>3ZI#@L zz}?a95w_3V4Q12II=!oKEVAvC1++#dJ=W{QD}m?^(`reFHYtpTB4(_Oba(1?EtyUh zHH-qX$SuiYj6L+e zhWEDBf;s5;03Y&&muHDON~7WV{Cqg&rr&s}U=pm`@=g7JsaP(# z?mFycfqa;f3KEq2wacKC`9#Mxe9E@=qr9ZSxouszlL%2(C!=E;S%HByquyr!9_}%1 zP$Uhr0++Ws;&u6IxG6BawcD%nbY`ZMFU&4xmgn=g2Qe>jEYyl4a=po;PF7>Mfm_N% zInwJjk>AM4V&rBP(I}VYbrkS9vuT)??Ffi@wRuU$GQQxsqK?e0(QYx%iC&-}(cW_+ znALDc;COI?Wa~z&l{H#!*Z2&zDln3Jbz{(2k&0Yr1NEr99ZW4N8$7p8bnUl;Xgt75 z0$1i|a#Q@gOe%SIEll{^GIeS4B2CVwVU+t}cXqupZ#CPl*EMfu*9xQthC2PS33dvk z<6CuZ?^WDNt)?2>hFC>`G^f9oB7e%?IC?G77(b6qB$6S_I~Vle60lHGPH@`kCt z_(P$N^8P3$m5=*R@f#W8ZwjFCiN6fIY8<6_7rYOQJ;mTJeCR`rSM?g0!d_l=ZvpRb zaTHbOJZIGA0{XcgIP@#xw<3SyNN(&IjwOzdZ{p+=&U;w1&Yi<~qDFB6qdxi^X)5&i*mERT#-CyQDc;@0#eik3^L~+hmb$21kB{&%_o=7L zxY9wLLfS`tOg2i0fOGlXwH18^Qx3?jxOP>ZV9NMBR^ZonsYuP?dNSjc^ryq8vYWa8+%& S4h~wpt0#q~Z02&*hxUKJC+H~v literal 0 HcmV?d00001 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 zcmb7DNpBlv7=FHZ8QU4s;PS1L!7#p0A^xO%oKYj8jqv4 zC%Ax+5c~mz3KuRQ6_+N62)OeDxbZ`{Af9h*H=zZIUS{5XdEV#y?XRDH0WgJCNqNJmo3?c| zoe~h21s+SXK(-hW9butU~x}c7?l*;jiRO3jJm+7t;`YlIoC0*3TF<@m#U^^x(fon*hpT$pR~(Hgiu^maS6j* zW4`V8$I>JDFg+tGqBtd`F%`Wn=~)$hElE=`*pjAHoWqj}X8v*aR_hR=A@qjO7s8;d z^pcA67!o*g?E2zHd^4S0Q?M*>_CZh+4YOJ{oDfK_ zp0q`>ndKqx5( zU%XK=c3nO*qFo|SNSbY(6P~+|?Z3c8mIc~Rjuay*k(}LdO2(2Y&l|}}l1|9Rc#7Bb zp$h>hP|=StBoVv$oVut-<(Vn>;UxbZ`{UHfM$dlwnEedx?PRKF?>}ZA zpq0F(yYTv-mFHkvzDEJQW%w5E!==a1?DF!@oT#7+YoKSw2 z!A-<+1%DHxxk8|c@mwL;#6<2cCh49o_@d9z8-1S6=nM2kU!-gHd$#Jr%luv<9Kc(I zV~30Fa->@r$A?(K2Ux|&DB&Y|mNDmLfMfFcwufF~jV{_FqX(ED9k_>uqq;qW9Qc&+ zpRvQ|UVd*Y8n1bPFb{DLsxT5rwrkc2jI24_#AN^Uook0k6%Mgfh^`#qa{oTA?Bn$V zT+NI{^Y?IV>{q5qEQ5HHX>y@nYQPt?e93#?=KKE&7xDG60fxD*y!d%u;BCCa3PKXS zJ-`g>$eQ6MW=DU(!t@;~t560AdHv(UA z#6iPz8SWJKRt7TOvG5tg!@;1@AolQOxa9I2Ji{4+Em7Dn7?y?&yAg<}1T_14&_lk@ zL+(4A;qEDoPx~Itazu~D^;+IPEy#i_NZ;ZZBTY8BXmq32GTbVrhPge7+i&3x!@a>d zZv@(dVX~XWxIK8nb{H;ad>ZX&w^fl0$QmrZ0wozDlUf?0G%&?D2E&M)u+bt-Jgti7 zHbl_KbZkb>Kr(x|4oyYoNoD7Ij19FVlq9|clkhWXxq2Yf8a`xLG!%qxXnd*ED(UrS zDD*%i1RtAlk_?Tcr*x2rvW4#%9t>usJC@msLMBc^k|D#)K*89B^Ws2#O>|4;xkznu z!Kh$q=clBj-ufVNdIq+I8-2#SL8aPwYi6q4z zmkz$&rn6BXVtw0A-!o~^u_+#1`5R{PQ9R4#T@eN+@~-XfN=n!DfuSir^1VNgxX-)Y zMn`>18GbkBx8`mq=F#!qv0F#n{Q2#7p!{ye=LLn(ddMMLk*xOP?CSs2))UbQ$6t+ zii5$6$joXo@pgt>&{$=A!Hrz>l5fT?Ls2>1iI@~L6LBElTuCWj8{yw5!=XU4rUaE) z0GkTm^xKqkg7~oos3zt^;jX!P2ST6N3XVdDKl56&;?uOG>DzfxZu=Mm!zc9Y2IlA~ zeFkInyG6f^VFcrtAl*4kY27Hv^Q5_mOBt(a6i9akSG8`O;!We4($3&|#`1HeyMbA) zlkueQ9Bx8Bvo4~P)7-_qoMr*{Rm4SFujyZmG{;Ey0N-SE z%L@4szSTOJ5!qpxI6m&l{X1n@!4DblNcSUtQVf2^FIrZWT)`71pJG+XXLzpU3#=*m l62B_Bj#o-g~gQnwi1(a#b5_CJ&X4{!hg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/AdapterAlreadyExists.class new file mode 100644 index 0000000000000000000000000000000000000000..5e9ffe5b944dbb05e2a761f9635b1519fb866ca8 GIT binary patch literal 637 zcmb7>O;1xn6o%hZ+Fq&UtMVbDgeBC(2{ADw5Rz-D3FZoomF|ajav8ncY35D~$FJ&6bWk& z1>LcQ*x!rlsnc!{;0a;=tL#gmjbLjn6Mf-h5M~+2+m^B!^N#lS2=tLKRWoVkWa?Tn z>8Zl+o9n6SZT~x=xT90;b_o;f8!bYe>R;TgyM$1Q8_EDBN;n~T6Q2AR%C^b#b zw$%siTd@4E*1z#^{y)YbhXMj#y}%?&JU`{1&7sVL{G++f^2uACiRVJ~5_3O>l4o2? zECWL1QNuj1$|DgLu*f?PSmNpdyR7uuV)gYUoJQ1Nlpp{A literal 0 HcmV?d00001 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 zcmbtWZF3V<7(KUX*(5AbBJTw$?@e18@CC3zB!of>X;a%8tRQ8RT+=PdZrE%}>-b&A z@9N(`)RvJ^`R0s2%JJOIl1-Dq4EQD4y)Vym&Uwy#?*8-d?|%X~kFPcK2wb+EQo^p3 z60^4B8u_xEm(Hqm60_OVtWkJqlw=}RG^(z2Qe{UP#r26bv*y+&Ww|OH4ZQ;WE5@pk zC>vHOk z0)cmQ^kG{Bd$C``K7suutDb1A%R2cvS#uq;;L4(o12`xUnK!LcS-Q5xt!;6sM^eK8 zQ*M=L-gW8)cUmgqQKmei<6RsT=rM}|dk8NOoJ$!$8OAZrbgNSoCvZx`NrBy4lQ6lC z(>Oy|1=iJ-OLDCstFCEVOKw5n?oel%&XK!qlv<%DU#TN2ZaaAat>STH@s7MU5UpZb zHR;ebG|Qd zu2r9fWygN3EEzy)vrar0#fP}4;X+3x$Uw&>e8hlo^6Pqzb7DS}eJVF{EfDIM34=IQoxY~g>Z<2ZH` zAi~N_=(vHK0)4ASxz2;Ux5chOfiz4BTzGjF-VCjV+X4eG_ckhgEp>eHX`|*gea}?O0)v^?p9}gbRFG>t zKP^Ic22;!O20Pc0ru(`m#}>w>b8+f=W}KJNn9{hjHeGL`@$+Nn=x}v63EXctXVWZG zR<-Unj?DjYYYCHx-9*JS2E7l-GFj4Q>Uu0yXM(hqHy49V3R)a3eK&Gbkvozbq}4-n(f>6un3%L z;%IoF$+$HJDM#n+x>JxhOm*uY?RKCVA0T7O#=XaQNrw1M!+q*<=99)}enap#!nXwf z1^@eoHxd1r4?WQNyUiOM#|}R0jRn|=U3`nEZqE_5c^SQ24-7s<>~9==iaobOf8bDN z_!$nz21hn<{1?PH_k?R2aSwSAZt{1EfNn8j1_yB)hcV;j+Q)TK#4yBBaCQgc81}M_ zVARh#Ng^t1|L}91T^xCa#3s&f;DZ2t)SJJ@{a-etay`b8JOAj z2^AmSz||Kxn;H2P*I!`rN#;3jEygmNn3*1pefk^bMoBDpXY?;_R1o{|g-`A{RRv6{ zyUeE*&Xg&Yg#p+&hAPhBkq2j(vN4elC(O0?2$Xjmzl-i;iBAI*`vDBbji~P%AL0ow zBM^$^14SE^`o;^aREeMn>2JvSochV>EAp6J9NEOf>Cs^KPLK1qRP;Nh{N9T)=#44x z6~^nsc0#ZiaVO#2pl%A3O*#z^T;;pU8&*Z%z@zpm{75-|YNO;1xn6o%hZ+Fq@dkMdCvF)RTSCqzO_FeJ6q1amEwO7}yVTt+W5&D<$pEB=xz z5*Fk?s464A2G%fnQ)l{-~V zwDxK(+5IjPC2B{q=ap+((>T|eSH?%k6Bh4p*7x>5)WkuiT;sf}dR|)-p-5PMDCmt0 z#O_YqFkbtM2u}zz-{h$j+6p$-GS!zM1YweKyzMBLG4Eh^hd`eQ&+FD?UK-z#XEfB$($D8AQ5`)$J5%4&y@uiGP4!Wb%LjAMc@5o@EG{gXrGz78EKvF);fWE*xI z9p?S9&Ip_FefIxp%NAjFB_6ydl_n8w@3cv_Ry!fcLI_gjd}qfOgvw(Xq13j0*Hs^N zXh8LG+usB<{~SY*Lje)5Uf?N8JU`<<&7sVL!h^X^^2uACiRZ%FHKu+HB-30=ECXuD zqmCI~m4_nCVvctKP~{o`+pG-Q;@azL%>PUH%psZs!rV|bBCwu=Ei!}fl5gj*bO(9f Bkt_fJ literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/NoServant.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/NoServant.class new file mode 100644 index 0000000000000000000000000000000000000000..b34ae168a1a7efc3d7a98ee812498fdde7d89d5e GIT binary patch literal 604 zcma)(%}!e}5QWc#Bo{)OKuE%GE0#b67DB9okkUXU&~1naWN%XI;u5ZrB2Mi=*)M<_K#mLuK+gjDL{fyF*XwBG7?Q=ojmKRma^B%isn(R zDLWT3QlepeO~x)jlCb#JP(M2UTob1~W%qA8>dI*o2S^i^{}x=0xZ+?h+>f1hcLBx; z#qaW33T*_lwe0G9?@gFu93R`t_Lz5iut%Un!iTzvdyYqF%Whw#9=4ZqKc6aFg!GP% zwc90(t*o{Q$-4QbG8jW4iyZQVe5hm9=wF^Gdopw=gr>s=l5N;=R7|>a-6O1rZ?pf$ zYg7rPm2hy4u8bqma#qJtb+zsN=e_?dk9Bi?M<~3P5i%{)w;lCG`+Mj9Jo1Jo^7n8r z5=bH7-2x_%;XKJ7mq3;mcOcJkiYr^3iF0c08Pksg$qdH~%YYh^sH4cc>`;Uf%6#&G oS&kmC%Sx|JuT`Eg_b=fq578J9%0tzNz)Bo=_X9WYO^Sd_4LkW*$oML@Jli~`^0MGx^aOqx8rq%k;FZ<_yc7kd>NrG;|B}JTz8~bj7gB>3s2_EV%+v zcfBUF_OcW>mfJ$j=4Z!7)ARnDjKJP&re(U<1tR^)fjGDUM7yR>4&92Wz={53u)K|D3<7WK*n_<>9L7-% zM+ATmv@S@vhF%&$(74Gj^VgKY|gaG73ta*m$urrfT}oa;17?vzy3 z#+mYzj?;KYpvznqI7E7($_yobCWDx^(EFY=2wEQENRD zOzon_nPfr3kihA%S>x53yFR{E{e)dvZi;sUJrg&Q_?H)5;$M|F%L%WdidZ>#h|#}?bE)EIj(uHzPN3+!1n zDh+PV!!2$MTcKf6U~tRoyP&Ayu0ZeBf@TB9MsF_VXU1no=O^>iQB0A0u%Y_oT8*cf zT#n-o^2!%8wV4_%>EX?+6EwHq$*!lYGexJ~cBu>;F6HBg4L z+nc--wvLDDbls=uEY-aOHI517**a4(5IEmf`%WknD$$~(?+0Q$c1)K|zW2&9^9?tw zGsx7bU&qDE!ypa^t_B{a=U!20E4q$`GOq4X@=N70YkLF)E(FP&Ee^_T#bBNBIlJMM zQr7G~!)q(T?+FI0>yjglV_xO_jqxeXf5HDf1DlBd!a)~w{_gcA zNAMQMdNTm~aez-Tbt-d4EnY@9fiTm^c#X$8p9S;9L>|UZz2${EQP^uQK)wyujs!!RJVC zVt51Zh0NpL`$evQ5TG(1Bgk-_8ePLD9@=$$>Z3lPL`tOOzy@x-YMxa6k1o7b=Q9_`)yjEENS-sBD=dlW!hTrYd@2;S6kCLd~Ny zK*^ZMrxRuD1AIxegZxVQ3QHXIQs}Q?5I3g2HhhZbyo^93Q4G~=cIkT$Sg8_YN2I@? z;Mdf{n!aHj6AOczcr=v?SMT>~{(*}A$do^MD1F{s4=SWiQ(zw{SVY`UI=85sB4x9b oX8&*SS>=tYhHv28_AWf396z^oA&ONzW;|DTXv%tPeCopb{}_G6_W%F@ literal 0 HcmV?d00001 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 zcmb7>&rVZ86vn?(+Fq^YkCg%f5|#xLCu)ofOk*jSKrXbQ(*5*yav8kbA=7EK#s@I* zXi|nDbaPjdikqR=alBI#Cp~5NK1b@pX_E%X6V`7F zE+!6Qe>dDqop!?j4+!&Tav+5^f}OQY^cSCkFvmFFww3KM?___MKnH~Bx=DLZrmiiM zzRF#F{Z{P%dHJ1?f2&jNs)VV^Mw^hWo31Kg3Z)`uFiV&Xb*hf~=N)A~j2%j$iP%80 z4LeQ_v+h*)2yeoh?Dy)+HlbVzM-NJ58jF^*I*qqC+CIrspJb5(emWfzO8?6Ug_h~t zNWIs-150-_{<&xK=P?Bt21Op^pUicRPhRm%Jm)qq@%YC`@`P)F zWxzXRv4eSD6~`i!vA{bISmf#fRaSa!esk**OaBr=4skdlER0nX0_!>03Nr|+d^>|@ Fe*rBok*oj! literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e3c8709290451f88c7d6867e4db39003dad8ffde GIT binary patch literal 2931 zcmbtWZF3V<7(KUX*(5AbBJTw(?@e18PyuZKNkgH9w5e?kR=~JPuIZL!H*7Ygb^Na5 zclB=|YRkx|d~?Ph<#_I9o1{r#2KCmUN{%!N>xsN;uF5G{sz^seuR#Bbv1-Ih zhE?YmG#2L4;^}6=s1WL(xW{HpC$ayrZKJ zJ3`oxgBlJ994uP3Sluq|({xB@dn zZ5b2Rdc3jqMs<%zGaAMOjyDT9S+2P2lUq7W*`-3g02g%hV{aJe@t*3;_XRGr%Cora z*iTeHHj%V7PBat7C0x;PxuXyypyNY)#20mvS&Ar)a=qWrw)3s{XEfHdA`vQTSnHh~ zrqof5y=+jsD{rY23nkZF$H+5AsvVEY&@A+u6+mf{&@q7|54N9T8~ZaIN3k3I5bH9j z;}&iU^sO4D8V~XQmR@a^N5izhrLBYTMqoAE6&ToZt(SKqaWk8qo19N9PN!#sm=QSI z

      0+bcWnc3H$=x_+A*@ zxRWg=ibNB)CjJzEgnI6Dq=UhQcGKQ-=AQ5S&g*{r@#zbI0n8`}FpS$G8yDQvH>_+t zqdU5@xyIuw++5=#AD{FbDPvjaVl!py87{gPxL7yRyt`;76oeSY%En;`q)mpF)T+L& z$4#B|OqhB;Ut~!#RE!vw;ap}2hI^M7LKAj|s|cb>g943VI-Dw7M6!2DMGfi{)H2lm zp+v(G)HBp%x#LsD&=&6fi|9%)G-^163Kh+0RnWpvS3+G}5nRt`XhSVA>?=pu=+v8i~2d^L9a`IWa`TzH%-& z!mzSQufhe#Fym8JA;*R87`8+e?+Adg`y=!t2Ml_6qR!+HZi=v*<1L*Gh`sEw7-%Z;m zBV@U0sS9qmrwuu7?FYUy{Zb$e$Bboh;lgrKKFKir|4mjf&5-!_c&dQ+>e0!2_s~V# z9i+FEUM{)fbdr{W!{n)?({u7m&rpPYgc_-5JE;DEhFvu6;Akp3yM@+RM8eZi<6^%g z&nu{S?eaAj<2^p05kolVMxMt7`gV~pLS$cZbGS?hQh^!`Nyc3yx5+AIDOCb*e5mRk es){QvY5-T=`(qfV|9Xm?z!a{L8b+t=2Zo$ckzDTOY+e;Iu`cAUp^LTlqxbrR_v;XfuT=B462GS`Ze@mfFYbr6}^@78WePsN6xTBzP?=%@-?rRf?*(M z>)b4IX?XL%81a&1SnGgUJNYT?z8ZI4+ET2VVp~`)Z9){wDn@Wk!BvKtvx}->6k`nC zT-Sx;B<>Oa&ZNz?N}@<*V#`?-H;_$PBq z)rKy1yyj7RceMOUUO&+ z>bhN*x_DuDeK6eiGMV%;Wze#gCFF|99Y;6{<{75{y-pdF;A&zRY;!qbjJSpA?Lvqi z>Q^8h_d1#`#0Xi4G_9Va*}U%o^ra^b(3?I&JRLs3;AdJ2VTisejX<7)3%EdkULd*S zA}-O$a2dk^RF*uwwbAq!4AR^C6;}>%{Uc%fliMHA72c2RlS>mi>bt)>1v`2IJApd^ zY>BcshV>xRC4w(U-Vn<}-2Jri9aE(v-2dr24H4Lb0KS(b05-@{BG~fZ+r&XaJPNiM qrzp=qnw~hq<5vDnl6gPcQzC??{&xnmG!D>w1anv*of!QsBJ>9^5xsQ) literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Singleton.class new file mode 100644 index 0000000000000000000000000000000000000000..64b8cc09988857e527dee76a5c9b8fb37c6c9f9a GIT binary patch literal 1126 zcmb_bO=}ZT6g@XdGiH)DHKx@zepDN4KEOf2jf$H#0U_2!B%m(j&E%O(oXmtblal_Y zE)@?$^2J9`5}7_4zA+d#D>o5%vN#u$1(~%pX{N5sBz< zBCVnHCQ^mgUgGGuwi4>F6NtW4)vi&BR_2^1hr!iIY&S)lZLQV3V+QqSb!TojSv$rZscqM9XGk1IvsW$uZ&e8S0$R zB=w%jV&2f=ngp{OOqCeP60wPlTZi4O9sa|6f@HJB0iHUQaNR z{Uqd$HxyeuQJTLc{!)5N_#epdi$`Qno~<@pDZb6d9EC>n6N(?$O5q}(D_jc*uCTen zL5Z#PMK&&>%of+hsKjV%99v*M;F~y>Z+t}YJC-s>=_585pxHR|HU=v!(h@MjWn5v8 zruBxiHLZ$<_<{TvY`mPK@=cqa1~JX%`(wy;o(~u?lXob>V`gJs8UGKym83^Rf literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service.class new file mode 100644 index 0000000000000000000000000000000000000000..72fbfc32fa062133a86112d0b6ede0b9d972da55 GIT binary patch literal 4546 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Attr.class b/libjava/classpath/lib/org/w3c/dom/Attr.class new file mode 100644 index 0000000000000000000000000000000000000000..1ff7f985b79ae651a4762cc60452c178d651f1a2 GIT binary patch literal 432 zcmZXQ!A`{NR~^OP@25E~(8ew`t%1KOmSf z@J4SEbE}LlIdm8dcO~CVAGc)&Z5ljXYb-`7W~eQL0m<6sHw9AGt(3`E%*4}sj$=JH zG3%VOH_yIi4X6*m~ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh1!eqICUo<7EAm{9Ju!7sn9C;MC-j%=|od1{OvJfvm)` zME#t^ymWp4q%5EWI|Ca~6j@J5YDEbn16Oc*N-qaq#v literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/CharacterData.class b/libjava/classpath/lib/org/w3c/dom/CharacterData.class new file mode 100644 index 0000000000000000000000000000000000000000..94a4a68ef65bc7a743d84e3705752fae200374f1 GIT binary patch literal 558 zcmZ`$O;5r=5Pgeap@<*Ir~ZL*u`wP!iY84^4kX@}c2Y`e+iVx~w|Vdf_@j(di&_gF zHoNm?-kaGs?;o#k04{NEpdv7gm2W>^xwaQS**6QRq^n7drIrS&0>?|amUbv3-=5Bw zbga?jmo?KWi2Q2-^Y+E1L;(r>M< zwJkMz6lid_2}QnM2<%xSN1&Ci=IK|je2SjsIJ@VNNkWmASD8VSlG+T;l-=D-k3!Ov zQ)-zokI+<0(FEX3hPW}U*8gHe}mK&&Z)ZnPfx5>x> kS|#KVN1WzG;G~pkZ`GcnQ>y8rS3>$26cK(8xqk&`pAC0;R{#J2 literal 0 HcmV?d00001 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 zcmX^0Z`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 Sn1PrTXfp$lW(Sf?3>*O3k0QYU literal 0 HcmV?d00001 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 zcma)(&rSj{5XQejWED}w#KePMmA%*)k9+jbX$6x_Jb0_MHYL!SZc(3&gAd?C5obf9 zuzKLqX1rA$!EV{DvfzZDBQ2Mocx=gT5II7Wq(#$X` zjMIM@>0bz;tE4MdTGt%!kA|7Vx^6pn$p28rwM!LavgsHpAGcB0qF;LWB>pF literal 0 HcmV?d00001 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 zcmZ8d%TB^T6g^{=DhQ(B1HS+^HpZo^Mv5Wfk+cNkii~B_l++Fx29#fO;RpCp#ybUp zu)1^3+;h*p=jZq98^AqkHVzo7Qbo?kL+FggpZ6ZQV zRNxIgzdd*zy|{j_-Fs$W0YmXgrZde`J>K2lfw#`kh`O3c|L%veolG$E1*{4*b%?EO>LeYv7axMPHc4wB$Q6@0gTBzX& wIYPF%9mj-Ec5t3>VF#ZgN2wQ4f=T}j<*c5s>jf$quCD7Pu1wCj&Su~I0SyFYv;Y7A literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh5BpqICUo<7EAm{9Jt(e_z+4qWmI{#JrT8)FO5U7Dfhv zti-ZJ{hY+SbbbG%tkmQZMh5N-usm2PBZH)d4>mKbHKQ0AxPtRbi;`2_GILTH8AQ;G h*8`c%#>l|PzzlQ{0|O(_HdY2U5Q~8wNHQ^S001F2ED!(y literal 0 HcmV?d00001 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 zcmZ{iTT|0O7>2*)R4ApTMUaCB5Kus*BA#)aS(9KhlO`oe3wVB>U`l*mvJ=fBgLRorrend4`4<&4=Aq`Qu)*d=_@fvQbq&HNE$d z9|jp3VYK+p{ot0{ZqO>5{UGu?-XP9sq#2%hjF`nJuj;aL>{#j>#ZgR?(UcShy~qus zhTHCY!#I#JDxtq+o2veLkQqmyVz#0xCO4(ZiDN2OSWRBWuuH{bi|>iVE=oKZ2}wCc5*VcM4sCvcXk*Db~2Hg5N-ZYL(h>a(axHCi^m3`{c0S|_^A zk5gGW%py(wP1}VLQ?VvqRjeA92L1DJCoSTVq*zwku7IH=-ke|XqRBM$*e5l`sj60$ z+fpS>FESc?;Rk;7lF{6TrCrY5in@N#+TUzo;1UL&rD591(H52A|Hi)(Cy3E*jz$Si z7c@Wc^nT~m>)P&V8_%Vrg-y5JaJzoY7n>u|Tfc|rrv2|V?la1Cyk5_3B`yAv7uy;3 zyG`%Fj}Iw|FL@`=@;5mV>g69QZ051x>1imKlb?^;=Z-SQvUIE_{con=R@H+Umz<0nK0&l_zhOyqo zcN>lz!jssq$*t|LbZ=|v3*G;m81(?(d=grPk!vt*o%XP|e4b7Z=@AHpiOnooJ*FpU L$LJ|&h@Sld#rw!w literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/DOMImplementation.class b/libjava/classpath/lib/org/w3c/dom/DOMImplementation.class new file mode 100644 index 0000000000000000000000000000000000000000..140b96dae03fa0d4fcca3a401553adde3a3fc364 GIT binary patch literal 561 zcma)3Jx{|h5Perl0|iRyfLNFz3l?HQ>RKvQY88nh1~y}?kSd8I*Wu%@G4KQUQHZmU zNv3R{w;>l!U6wM}Ck?Kt6PP)Y80osKALcU0m z$~+d)<3cM(=swHkSW8!0O*lKB{#DGKP4alSj)V_{fwJ7BM@E%?#NB(r?YE8EHxN#1 z(kq-p7I^cfbm3Q62G}E<)M}&IDoyCsMG@|s392zxr-vJbc~P-;tE*i%ni5v_{yo0u znVZroJx)?S-|?Dh7v7Byfw09!18w$j8y)@-0_-rp>rswfM)q;=59#5M^XxmnEgby- DGV`PS literal 0 HcmV?d00001 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 zcmaKmu?~VT6h-et1jWVKO($4vjH9bDA;B>C1r=W^gti8&{+ojz;71wDZd^}t?>X}bn*aa+ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh4~lqICUo<7EAm{9Jt(e_zksf}GUc)Vz|!lFaDHP)cnNr4FqWf8p;LnfLmrxDkFmohFc-BdLY-bF)}bRFaraIfq@C=TUG`( T29U4W890Cqb5%+el~1YUATfV7^yxO4h0^WwP5-W(9(h zY*e)rcg>EBz<9BI76_Sr&~?|e|Gc}q|FD!4#evv&#rvx*R(C_+I_jr9sWnwwvOZ09XEJ)KYW@+P3f#I|Pk&v^scOlt^OEhV6I86GLkz_-Nit1dKVx^9PF#6G$wi`adezV$u WYppu)(b@$F-?xj%HiVu{2mKdJbT%0P literal 0 HcmV?d00001 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 zcmbVNTT|0O6h2Y3QYlb`f`S5Gphcx3UeMyDlrmEXs6#8`@D|dg2AgbWvsLO(^T8kB zk8(V_n>NihGnwI`v&}i*`ObCE{{8p+4*+aHDFIgun5L|m|G8=98`R0~Qmf+-mnUGv zfXQ?7hna7gZZls!Jtr1QucLGje@Gj|fMk=WU zJ~ZrVyc8m354SOmZupaAq5RWYLisdt-7V$hRX2tb5>-cn)2)elPM^d4u3FWEC zv1g|pjsq57CILp%8D&~_xy`#r+VH4z<#_{tf#M|lC&E}!$Ak|td zm1yn0?TNM}ZKq9{-|W?F=#~gr;UpY|l=Um%dq1ohP>ApvSKnZ~(^^FZ@;z2>hZFhLtwP*up4!eT4Z0K6!%|hf?rxoCYDGF-bbQ@-i zy4bm^+1v?odP9nl>`Cqz7l<-BCd`vpB&Cr3@0p0~gq1JcLJ@WCd0=NfvU_dJW?i`8yVe<&+v^7=k?r2Y{Cmo r^U}9@g*JlowU69Fr1*XVZ#9boY)j2McrVWn@Np1<|BG1BE3oq)oPs_M literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh2PuqICUo<7EAm{9JvP{N&Qy)Vvb6qQrC%&CbBW$RLoF zSeB@tlbDyT@1K;FnhX?W1BxQ+^UF_3Wn|zA&Mz%WPIb%70dhpq&C&xI1JuaKzzoE! PKqoK&X?7sV#J~XnyjLcP literal 0 HcmV?d00001 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 zcmY*VK~BRk5F8h%p)Jrz960a*xL_fUTmh*P6r}J0$5}6n_-W%9NNOl`1r-WMIQ!X%G<>*(IsvQM@h>N0I62^4nZ?8!fj dC8fqbQrZJdesDVAY?vPoc$83d$8wJ_{|2bnQ1$=- literal 0 HcmV?d00001 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 zcmb7EO>fgc5PdF%KnQJ;rlC-v<*Q8!)KpwRZ~?VQl|p(*#i2LXS=>~yUBzype~kk_ zfFFf;y9r^vyAt6LIi7hl^WMyOe*XIY1HcY;N|^Jol#U|*>#NZ3r?I~`6tPJ166QTr zPlJoV9|lR}9~_^Gkk)Io>hNyb7aq!y$Pa_48^nBRwA!7&fxUb*NTRnMD#X0c`F4Ds z6SdK@LGHM$5Vz@wb7cBVQhVP*ah4C#Br9Rj!-~#(_u$ji?O|~w;`Bmj^p+iE+Duy2 zRgA^EmFUG}UUs0WE1AYxz;?$naYhEiad?AlCIibpTuvvj z*N$jMhiwyc6%;bpo0)Risbs5brex-;7sygX_df_b+FCCVp5$w~x+)93n@LS^ep;t1 zCqeeF6+2=Rb(kzWCnmQG83BMM#arRSqid>jmUCMuKl-j)}I$H&7J{;u+RHF%&( zxDI)!ZlJ85H&LPY7QOR)F31yxnqjG9NnsmUHatzsavLiOdk1$7>?-aVmit!i2Us&O r>sEz_cw}H6v literal 0 HcmV?d00001 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 zcmYk1&uRiO7{n*qy8fxUh!3F`L+P<+3xce|f_RPDutau~vVPm*tM$+a=tC91unT%f zelW}=Gk^a-zW`nlN9YL5e3i@ZH!U+?%C#d)*9cDn@mYN-Stysw-RW#JMd-2m=uUiQ z1V*``eSIpd-edyv#d3R3rc_y%zc;4zdLdH=)088LCq>q~M3wwV%*w`n*0groXPgn3 zuyiboyD)BqgQ+f@6BwqxuC)2EMQG7fUxmN9r$Cp_GwO@o%hmZO$0EysbJ JoABMi^ag``M!f(4 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh5BpqICUo<7EAm{9Jw4ypqh4%AnM=)S}e9`H~ zd(Z8DxdIr%b5J03l2oztNU%+^XEVN+L6jK>C4v|86K6ZF6`QYPDGb3;(&P-G+n@Tu z2MA3XX*DLaUqp7`LM|6mf@_sPYGt;BV&At)RV3Q*NN2gtw~4L;cwsXj+ocvbBKr19oytq5uE@ literal 0 HcmV?d00001 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 zcma)3K~95E6r5kNv{-4YRy~2C8;Nn#q+2y1p>)9s5MGd`@EiKAJ(~*;;Gr5HEEFgU zS1*}2Z~n}m@5AR8fCt>@=m^}(Jhnd`LpzeG?FA`Co{VS_Y;qgAjA>~)aE_VRT_ zp%NIxq)MKnC>6M~+&_-5@+6DrQ@19{dUL+pHt&u|t#`)rKBSFGWVY3D)-e3ET>P#D zhB>8jM-_KkQktAtPOEmGv$&MS>P_IpnmPhzHJ#@R%v$pOGqG7sTxg9O{tC?S<$E5| zOR^>=R13H-{*0?XA$93Z8#5FIsb(>O~*Xu4BMOIwGfrj(@+Hb;_Efh`$JPMfe8#lA^ZWJySJ8hA8* z@Blm%ALm}l_O+!CevQxUb7my@?|=UMi-;Z(Tck4zt%vb(?bYLcZ4eG?W;lTMEVM7( z6SwBO!Ewzxe98K$LMwVxZ|SDfGc8S5NU;@KRl^`j-5}j_{SjM0Rz;z;y5n?=ovxz` zPp(CoB}adrg>uD$LK~`9cj`S`R~^GLC$6Zyi6Vxx-|OfNy`!7zG|xGOmUAO-f@eCf z(2aJ-Qgz!l%-x=0+D@lCn{pAot5$2$I}f{n<~2+0&M24A)kNv+x2J_G3SFL98lC#? zOx!Y(nU+(Z8DvGFTa%EsWgEh(8MbPfCWh8EbY665cXU~))m?+rZ8IVY|Gg&c3W4ChN1F++aUj#rTj!pcgPgFRNZP$&%{n+ zFF4)?*SV9p356>9X`e-@hf7(c_Y}G+- z?H&4<9jDJnXQ$~z!RysiFmpIcdA*zS^+2TPrR7Gbxej;hRls5`?2m>Rrr6=w!in~R zgvIF&I|^eE@uXT9WxJ>;&dW2!Eb`qx6V!m0~99_ zhU<0=)Q1LZJMvEP8|OCu&5yPj_FX?aZQi`Rw+hTVZj$A=(hr9bZf(4Zc9?klzWGEY zgyTB-T{yT4ye?C*)iso!QB*J?8XXf;k_O|f_+j|#C>r;S#S|XD(kF7mOEh-mj{GSZ zqSsW@*C$^xsBcM=XxB(O_;m%FnKl=fC^PJ}5Z5Ww6l232ScZD%33*M@p1O z%`h_#e(DATpT*nq^wTQncI>Fo|B*HctJvWv?z4vH;|!Ph;1Btn_}<{1gV*5(U88e! z9%vEh3|#_POTe2Fz6^Xt!dHQ>N%%U@4GG@_ zenY~yfZvob@Bg-hdH-)onD=`}!o2=n3BL_|Pr~=<9=_!ds7n0*#1^DN?|`YZknckC zK0Tb%)aV1@`-nai@-clRT=!vs2Kh zq=|ewHH6%yr$QR^t&rd4vo&+sDokYN7Aw!x&hhuunX7KYGRu!s$kwGjQTG`=7jmBt dg#01LKj!wI=x3qt(Jw-}bO_!R>We!a{0kQuL7o5r literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/NodeList.class b/libjava/classpath/lib/org/w3c/dom/NodeList.class new file mode 100644 index 0000000000000000000000000000000000000000..65e13f68f625831197dc886250350e6487d77f7c GIT binary patch literal 174 zcmX^0Z`VEs1_nb0ZgvJHMh21mqICUo<7EAm{9Jv%{FGFm%;FMu1{OvJfvm)`ME#t^ zymWp4q^#8B5=I7=%#zexMg~z0PfZ_meb$T&oaw10KB;->B^iti%o>`Wj0{}C`K3k4 vscxA$sf-M~Fyr+=CbKaz09659!oa`;w2hU4jR9mUI|Bz$1ZWmWoPi4f105$6 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/Notation.class b/libjava/classpath/lib/org/w3c/dom/Notation.class new file mode 100644 index 0000000000000000000000000000000000000000..003e5740c687769eb5395f6f4b6172f5dc37096d GIT binary patch literal 200 zcmX^0Z`VEs1_nb09(D#MMh21mqICUo<7EAm{9Jv%{F20y%=|od1{OvJfvm)`ME#t^ zymWp4q^#8B5_SeQpeU;PlvG9r?)21>fYPL#%w*3Lpn)2iJ_wz`B}JKe>DCZM!Ii}& zsktCUT*3LJMaijdnK?lHyfAC^K>C1oFfuR$F)PrOOh9+AGjK3~+`|c?f#O^saRzPx D3G*;K literal 0 HcmV?d00001 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 zcmZutO=|)%6rAYRxVBXb3dNf@y%bkY+suk1+kll+xJbG*^2$dcx2;O2Gwkhdm$wuw7dGG;zC~=~o z3wj8D=Fd0zhk5^aeFJcgL4uAz=6oq%F0_1fOLS0&973FVHWEU1#Y#bdVR5->GN8o2ul@%u{W-t3{sXf5HFfow+Bk z>B?9RO=HYiOyEuM41Cskk6qqYf=#Z{Sh4ol>0_GsBx%LJ=D{D}j}qTX z#f6^s&3p4^-t5=+$0vYW3@jWlT&gPd-tH1_sR}QCUrS!TDhq7}XC=16%SD-b^Ou!O z8iv8d5BXvg^Lg+b`cWM6v91{yXRybrtQ%1_3z2VRi#!;~8yo&(><1C?^^B|?WA+g2 z`eb}+^k+PZHNDHwPi3PI3`8MG*d5OP4~&{BE7N<@G)VPYB*e6{dLpZAE0@zs6%4Ms zzqsGw!zYGbq&8I|r&+Fb{(k31`*tWa^kr>a;}9J}mX3uk;Ufe02=@(qOxQN?30gWc T9Fk%<+r8(wAT^5lt9kVUxxZb0 literal 0 HcmV?d00001 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 zcmZvY%}&BV6ot!iUIh0taDUedihP;IL&MaI4qdaGmqq#?bG0C}f^3tA z`fizM!r;#luFF9d*F@Q%iF1AylU??~0rR23E#|ht9pkCXCbIIaF1 Fd;=SzRr&w` literal 0 HcmV?d00001 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 zcmb7DO-~b16g{sk9T-Miiy%@#z^ZLQhJwaL)dUfeCdDRVa6N6G?IY8fX66;azv9ld z3rqwP7sfR)ek3mZHOBkeAq;jQEN14u`*F^B_ue`B^XW5y0`6&uFce&`VZK_fnRT~i zR$W*6(zDv;lgdV^)wX$yJJOQEb)NBtpwM2XpdrSP+_rWs)3%(3S*dRGn$!?ymLSC)j%8=WDPcZCs@zr6k-|2&NQ>)HYW#t4gnY!Xo;^2F zKVEK&A-3w)`4AWq1~d#R>ym*X=sKbpF))nF4AHDgO_YVhpLSYR?mf4vHdh+mnq_ZU zo>1q&8B@JrSU#`7Oo1*K6Oy+WX0xT-srtUY7j<02l!nRUv4t9C;5w!W%NMUnB#AGn z{edHW~Cyx8v3Lx=`($>Z3Vc&;`ZBV3Zt(d#kqP`kFr`!DZ8}YbY?7Vclm~Km*IT%P>x&`sjPheLov&(Wdl>ulS$osKO!^X_=z* z3?PzBs_g=jDYaYlt48S=hC$H_WIaTr>q+G24sbC)e}H8EBU0}v6u~IHb^3ymbsS-g zEL8|3a0TOC|5Z!`P;JUoxzp)4m`vwCAbE)NTcnhgKE%uy+}wY`_Srt=C#Wio+X2S} z;#BvQyx+)GuOMe0PA31se literal 0 HcmV?d00001 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 zcmb7CO>fgc5Pg%lHFX^Vp-l;e@>Ng^5~k!Bgj9tVMRF;kRXK3l*eho%#~ZCTrTs-* z;R1*QKY$;F7(0AlAd6ueHss5u@Ps z{$6i5O65>yR#>I8_cBrJI$M9?!XaEc7AGP|MV18n{bLzf7xRR*63t~aHp-p_?~FQ8 zsZ3z#vV(DCchXW%;?4yYlLXAr^+>;4-k!FIH zG%X*uuu51?r0wd=%2V4-MV^OR#L^I2=i<+}Ixg-IR{!O8Fm30~X(UIJHZDf9R4X%u z%n}j213fm8+~pzgaQ-{fXGJiA-^(&-N(RZ@t?y(}s&kbkd(sYc?BWq2xMaui9Ncj} zbG&mEK0Ic&7Wmd?O|0jhe24e7bo(s5;u&qjVP}nPfAR=dQD=)MgX=5{f{&~V$~uKV z(D;U%;b%A>o_;Ce1^#%O-34W{h)!Kz_g!AH9r*MHHR_f0%?ZVnzQWiV?lMCa_xNW8 U_wj(W$4HSY(7;2M4%X573wL(RB>(^b literal 0 HcmV?d00001 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 zcmb7CU279T6g`uT*<`z#G}doztwu>BxYoP~6+x;(A+@C`1?kgdGi;~q&V<=XB>zgG zMe)HO;ExjTY@k8mW>EhRSoPqW(rv2DLpeLE=%pTxf#z? z*a&bPH+|grL!tgOw;~I13%3~-5@C0Z9tmTo3=jXsbFS?#WrDsQn^?RdJxS;PuII56 zl_A_xN|?=*=eZ!7_17v+bxs;@3wxx8KJGC@=cFE@<>p_c`OgUbWPvBN50B0Tutw9Z zh2B?*P7MK}3v_!%zC(h}qf>;PPq_54$XRq)5us}K4o&hys&VLLERm(BfUC1EPszGi swR3{-Gp>E0dkL;b#o_F5uD&{}_i(4kTE+@lH;?N8%DhY8GFEZ_2gt#{p8x;= literal 0 HcmV?d00001 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 zcmb7DOK;Oa5dJm}b?cfWq)p2+1PG89HC4G45LE%GQc6*SdfzxJ*OecUy$%E+{tj1= zT0k7QBJraTvrbSg5rlg1?#|3N-#q>E*SGHg*0H7|$FLqoj`e!Owg#bZ^}|rcGU7w) z>E7;+KlFqz0?DNt2K&Ns$uzD%(2-{-9q|#jJRUgKUjIngQpX%aHPyz#P9j&1t(TEI zay{XQ!IrH!7>XnA)oqW*aW~`x5izWGPnot)4Vw(}3L9`=FqAW(o{ZeUA^Y4zH*n=+ zhE5}6&T?ebQ?KR$Lw-9Phy_qGCUnfJ*98*`Fbrr|GO>td2Cbo>#jYEO7m42&(JS8f z(o8~|dj~vnl{{7E<)IrhY;@1uODaQ)5^BtHqnXKe($Y->S5eh*jiEBLNhYqN#&F3I zvNw*U@b^U=CXp?+VyahgpP`xU&7USrBDtZp6ATkMfu_N3nz*GHmx%FiE-g}3R%UuL z7`-&~a~e1;!aw(CO;y5R?gW8|(qRcAEj|luFN|rhyFwm@108J!>x}JG$=_pmk}df^ z>oBtx+^3b$=sSm8sjPMcpqn;?{+k?qi!jN0o?eeg*61#_+9xQqIwvT#zM%Xm1y<-Z zQU~e|ORz$+awIrbaglDC9WGC)0zxYCTI(2vA4GPH(pOyRejswvDDg9HblV>ZlY`=3 zp#;I+Kxc1JU}KcoJ5<^GG)^r|t2T{OB&m+u6sbzSlb41&Dbrmv=r+ivG6TwJ(wRpK Fo!^em4Lbk; literal 0 HcmV?d00001 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 zcmbVQdw5%A8UKB4nvKUopX|$bYqU?kDQ$E z@?L)L?|r}b%gg_L>KOpF_?v{B9iP2Z`pO77BvNY9i3Y`nmW6B1p=+P>20PFPxdtk zOj@reQ)VP-c1IFv&4*%vWmH{5)iqRIbB4lgdfJF;tyC&7eM3`ong z+OO=|C?Hx2=}3owlCsvOvZ~W&JQ41uUAjTl-pk_2xVcuKw8FN`Jzd!?;90N7G(QS4 zUBwj45Gbsu>@J4DOcj$bSztV)0m zt3yb)EN4iHS*ctZAgsLx@uG!z8u-KiSOE$F? ztfp6%OBN8e8D0AIS~7m4X83U_8YCYt%MmxvgKoKEt%}QWg+Osq+izNX1!m+SmGy2N zHYiw6VP{2AMH8ASCqcL^_XL)>T|NtL)-s~M5t|gW5VQ$`Rcw|bmEF409_eR-ZA6=j zxoDqgqFqB86q(D5+`02EMM09KQ^huP3HT$iSd(3+Cg9{qt+a6JR?&m2ScdjQQf<1S zSx_P#{aw99K!15J9H3->yv3eag099CW8m zlr1Zjy@Jr^<^8+Bzzs9V(=%pe;cyAhM(&)*GLFlzM@1ah$!bIfTHv(E;e?8QBuNg< z2D*`cmsYg6neTvIf-M+Opqgxy-iOdA?e7IDgq^E?rle{Rp{)2y@kWS;|uI(*JORC6Oftl}dQ!eV;SswMl( zJqkX`Gr_&{JdWALwSFALt&)|u2{c#aX+Dqr4K7+b2cbOarpO@V4t0j6NRIHiC{M!~ zoU&kKAf;!_IJ<%gROB0W#x{FhLuI#uI|VMv6^Qn9BGIA8lcr{5PX<5kkY~U$+^yo% z_zW2o)!BW-lQb`Lbh~F0Ew9kqp^WR{mgGR%v?Z`uevSQ!^eZys#EbJ{FnyE^bRAwH_q-&qid_2=w!F$CL5!&iOg$ooHFmnPw{gFKg$n^ z)pn`)h3vyh$ofnNrr?(s;N40;UIhX6B(2_I9bQxMTf9zUQ?%XUotajZjyEojWbB_n zYd_ZE_cBFaSMY}mFmII~Z{RIS@jnVwyVd@mY-TBZCsT>?ZQ_AzNGkg6s@cpCF{o$M z)XYt+Mlzl8Y)K|H!&0iHc&(!p-iitlL=n7vQ}|W@A7;aklI*+6FQnGljberT;SJQaRga@-443v+ zkD$JN5G$4sV@5#`Ulc4FM(eZKQtu4~y~Ehb<=c;( zeq{`zm;Uq)QE36BE1j6ZZ-cOyP_Y*Q+(cJyrt!DX)Pq=vLs*Ji5yov;fse7#K8yz3 z&R+YI*n~T=6?dZ-ci|cyR1vP(gL^DEHqtR4dng-P*$7>OYY9gHJF$b|D4@jEct76? zDYFtE;FyP!mr}|u2J9NXM-j6E$0o`N%H!PUrM-2bCr~PGg5P(6Yw_2 zkF|w$o0>SVs+_<94*05rJ_hxWB1)B@_XIv9aP;(> zhdiRxGwr^j%xH$%I)#!k+`*jq)JX|S)iCZlf)eNF)?6meB*4I%)b|$Y z`!*^44r%*m%WgX(%d>Wu&`7+yL!{4d!9|ZHCocR|W`Zv@0KbBIJJ3L(TMY3HM0bZgxB9qxEGHuuiy2rVX7a2m z!%9BuL@96WL97w8(J1Edk~$Y##e8&%a$YkRx^kl1%4u0*w~<=1#1^x`JW1*l(2_#Z z>p6a3Ld@)6YglWZ=Q1yIWa;WDJl^9uZVh<}aK?!MH$haxD=vml z)Y6evmLXP!mMyO%Yy(xx&#Y0Lx)+KV#MCjoL>_%_6yJXq>v9=kOJs73%i$M|C=+X4 z68RU3Be9b%NCW3u68)i3{A3W*#_*~vq`$JHj!u-?L#bC0=w1TdV@Z{?pbY$)?n_#* zA$H^+rf2e;qF`EF79#UWj^DHmqBum_|E{fiXbf-khN?#JrlsxeoVJVP=^?JCwto7M zL_iE+mM}0|q){nMOLIsf#{wnGul$588+ZYt)<0RHnnld)Uj@t@c`*D1f8}!_cOH~m QSkzu}p07I3H|*#C031wk$p8QV literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSS2Properties.class b/libjava/classpath/lib/org/w3c/dom/css/CSS2Properties.class new file mode 100644 index 0000000000000000000000000000000000000000..0bff07ee66803f5f01af52ddff6bb19b0e51e7eb GIT binary patch literal 7355 zcmZvgcYq{C6~=o2Z|{!d@_CprV7NnN1r)Y!(%B!UX1=a}Jmlt*`2V}jkjKZLl6WfG=ibv zutso9nstT`p41v{r`_RJo)3>TnDugJhgAXY88!O zZATR&hoWx3SZoAackG<3T$)7|C7qMCPhRucwnMt?oYPLbmRqVtwUnXDp4=tPyPX+@0uo zPISYL8uX;N&GVd2^9a*x1lzn}D}9USKcjjo)G=@Iyq&rRzG>E0I?OfjV0%-k>u}?+ zm+Rm*mAul{*ZnZp^>rr*8%vL7FKp?Z)KckFO4T^cVkOoOtHz1n%N~M_{F#XKK z>1lRAs9Oi(qVv{);3%8?DkE}Y>5H%_da-g1y;!LY#Ol;?NHYVfgRwffbhZmg*^kwU zr7vQo=*2o8wNV7TSg8%f>eO;b6D!rhSe;xt+gK_4u{yEzMXVI7Omjl%MZuman`8D& z**1EPg{C$&qc(Hg6IR0`R-ryNtM#aC4jDDlNk3#nw2Y^%F2>U~QANknq%cJa<+3!e za$~y86)KxZTA8wS3>hg^oD`}vN_*Io;w!7*)7NuYg(1*5(kdeh`Vrc)GA*24?KG+u z(oDPJ?AA=I*H}NxQ7y1uu8m&fQKs()Q|{2KW@4`6QQnKg6?-+52Kw!a)q$|;S2J zvgOmw!r9oPJ!IG;*T#z2T8Z4WEmZtTRp>k@%R4ImfP^PbMu~DG;fZw{Gn$NYS0XT@ znu(PwP2Q7Oxj_w8pwy}>64mwp$R=|4%-NNm-Y^rnFJUeAhFK@lcQDq%wGpvxmp4?+ z#2#3a7ZUcs6L9XV;O-;bP`-jyvx;47tXkdX7)vUfT3FD`o?Y!xQ&2mg=;TN3VADpw z?6w2zy*DgPWU)3`;gH3ZWqL-5*RwKB&nT()EG?YjsjRmcCOQ_>tI7cB7qLzd5@%qB zB)sXcN&`ye!yBgNI?#V2|oH zWGEDxWo#LvoomSPAoN7 zyYVh7#k%K2lAGJj^K>F|Z#wMbbrQM9rd=_uG8(&Lm2Ky#Z5M@|XH78UMy58Jac$F# zi{^~}*3geMqBT6>0NA^Cz9@!Q=oBG9l$*vQdSO?SGqeAn_j&<+^)k-r)h#Vc%5FfOOq-|b$u*05B-dqgZIKz%R8|MuEvze|z`t3x2 z7T}x>NO;>ZM;UKBrh)mLnMAF$twy7EWN%bYz{qp>=xv2D=ZKL9B*Z@#<g4~VdSV8Viat}f7Npdeic9858^z zBRN5k6G=`IclBOWDBxedTM=~$Sqe&hk$XO(h736Uw zj~C<#Bu^CNNhF~l`$$@Xv`Lg83nU#u7D*yO_LD3L5|eZVNk~#bdL&O4BqPZMDMyi$;hNM0q#t4UrX$ZJVnC&=qbE*9hs zBySYtO(bs?W6KMskH9SCU*M$kim*2y!jSb%MN|-B)=8pcO<_TtfD>DwIUI(GiP-}Ol?*p!hNF5MFAKp;C{mXQg4Egazs)Gr17;}^unx9Wc x^Vw@msH=~WRFlA3sD8)jS_9;nAxV{{{0Yj%k%i5dL!Q(EsVVA3syb`y>w70B9#812Yh_0zJS8bQe1V2Z+VM2_%^q FxB$VgIurl^ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0es%^XMh4mZqICUo<7EAm{9OIy;$nU0;9$?(g8ZVApwgUFb_Nzk z27#=^vPAuy#JqHU|D>$csmw_&&PYuyDb@!o@yRSM0czm|Y6%9(1%u=m85Gg< zL0yhe0@TA5oL^d$oa&Yda+DB?zw|(^0(ydxff&IX7;1BReiL+_Z zARd+(=Dj!b_I-Z6e*hTa&__?;v~CLda;aoqKT2hcoTTZLa-H2SO7h_e?9H?1OqN+y z$l3jzl=ZP8aQu(XNd)=@*>;1#c^D;Kp0RHwnFk_kWJ^i3v15S&OD4uRy%9M3qguIg z=!zfc%1~pM_m0Bk*I{ZKT@~XviUoq}S4B@&*Ol?HD{#`aay6U&z)a1lBumSMUKmGr zJWK0Eqv%GvPYt`VT)2CjfxsHSbxzacoP6}T5!gh~)&aH{-F7I~9hW4A-3j;mjP`Kw E4W8d*@&Et; literal 0 HcmV?d00001 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 zcmZutO-}+b6r2Z0as2>|MiYO4aIrBSISQO47;C)O+B8ent?3rUzvjUo;EyuC8lxNJ z&^CQ<=FPnM_RLN{vnZ@Ui_n|vXDtg|Iyt+a zTN4G^grhaIL?LvYjmj1b^x@VnBjKPwxcVESV#rH3WMH)lJna9+4ekipcxmiY%zar2 z>=2IY;-lI0w@v6I_4t~MoU&{k__N%1cVtbWgH9vaNv8ZF7(2-mtyc@+EZOF52~9p5 g99xqU5$GT#vx$tWTU>4NyUmqdbos|K_-~=knjXenqj*e z)!LEF7{(b$P?FQ^YGuoEIU)q5II?HCre*v2lEqORGtN<~;xUK&JdnicMrF+bFUFM2 z3JYhHYZa-uQrYIUM8D2wjrC=+l4^^BRbq}Sy7>ZgLQsNtEGbX+cai5w35xNm#FSdv z{=|jTs?Sc3GdvVz7RnXN_R5Yt)~p(e=euQF?mnlgs&1K^%nKUhs&WAn;=qDBPTu$B z5YuY%no<#LdRZ9C#1~r*gK87U-?F7|D9MBCZ>qy{OY{H`K#PXT9Bj zkFB?~$$O>H;J?iIZ0>xfpef{;;Ym9RI;!O|63@NVUdAQ{fqWM)S|w*LNakf^@_2Y+ zVJqynUb!e+rJy3|g(sbQP;9m^$}}c^HeI>f8h=r|QH&XXF}g%c6sH6}kKta2C<%{i zo`5Gcr{F2g)9{SuS$IzKJiMSe4KHfWz)PC>Jjc};JK xe-q!*JKR(rH#LI)TZk0M8i*9BG!WUQ@<8N0?F>YAsWK3;$!mQKD2^&X@o(0{N-&Ziq9( zwnX)L%1nZ3B&hCP`8p#-v$W4oSVdn04EWKp~v2&Aa~)RQ+VKSHolx^HPz z)`J*!Pj~wRRSQE=EbPneZYvO>i(E%l^l_&ph1bOiBnPd#FpwZ1Sj^Mcb4DQAXriqY zvgEotTcPb@quC3Gq26L*TeqljIZdhYSJE7zNM4z2?oDt?0gee&_?5NQevl?mz@7tR z!EBFu>lvf3jA8RSHs@=$YYrvoBpX!v+b2-_zs67czNxcZn5;ALrJ3!MUHJpzB5(n? zaRI6jhXj&<6oDP&B*!V_G{+g_EXO(IU5@j}dmQg07dS3L9N(%02jKslGE_Ea6%Nrs Z4IRYrJi^QgoNh8_Q1|}@oNwG+`~nlsgy{eP literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSRuleList.class b/libjava/classpath/lib/org/w3c/dom/css/CSSRuleList.class new file mode 100644 index 0000000000000000000000000000000000000000..4a79b00e5844f223fd6db3ec3d42b94c18269a8c GIT binary patch literal 191 zcmZ|JF%E(-7{&4TAyUP~T@L_@jd64|F(Dx_krQD3QXvHrTJ&xX9>7Bx%jV+xhX3!q zKhGC{EfxX+Vb%3oK6Xl8yGAN&<)J9fgW+)VoQ?^>3E;TDhm}_=9x7ytZ zlO)XuVdc0XtdlIw{{;7hxafvn@v$=OyFbuoG$Mk}`D;Mn-6{KEA#`J^@_g!oUv0Whh9g!>Q#&k=3a9^r@Te!3JV0=>_f`VWI@4VWuJNF@f%vj+kkx$Uupq znH1F#@wF^hO4ZqX(EPNBA41+r*|^blM2>jiSg7@MT%*-5Wgz6 z>yD%sN>8mAO4RuVbDP1E)|mF_@f1k+Km@LOW7sv@eTJN;#FU|7_A`fG){Sy00`)Za zX+ka9O-4gHs8?i%bLof&PeYp-`|s$z<{5~cE(a*mIqV@1eHI4x$zLFEj;xLxpd3dk jIE-zT{@aM7HR2exe~~&Gan1=&W81_TRc1J+cL%K>w3E3r literal 0 HcmV?d00001 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 zcmZutyG{c!5S&c{4#y(|fuNu#X|NC_B_S0k5=QjKtWFo1Gx9kQevN_;;G+=h22O#( zwst(TJ3F6W?;ilpu&2-=9EVuy*K?;I!;^MRqc4py>CN-)!m~n;usgReR(o5QdiF49 zmlW0shyUoZgfJ*M8TLX9@s5{?us<4K|28oxR&{wH#AcOvF#5|I-xG?frQ_#Rg}PDL zCLFbgPi8ki--Ldip8XR}WNe$*-fqIq+h}u3aZ;GDh>oXKmJQnpoMzv$E}<)DO@ix6 cBno}xXf{v?x+!Q+-Yr3PFpx?@le>fAHw`afcmMzZ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/CSSStyleSheet.class b/libjava/classpath/lib/org/w3c/dom/css/CSSStyleSheet.class new file mode 100644 index 0000000000000000000000000000000000000000..297c66f0fb13b95835ca97d8c0b7e085f872f86f GIT binary patch literal 411 zcmZ`#!AiqG5Pe&t(Y9)>B7%tEDY>|a#~!OfAQEuFdrXIz5);X6Tm3Z;et;h(&RVhY z;9;5BdGF0U-pA+LJAexu_~UkjKpK#|o$abK`=o z@ViCD)Y#?f!ysPSG`1V!(Nv|Q)~QFt#i zQ_q@=ZVKmr_$QomcTkd0Sd+Idp?Z>*k4K^$RJ1NA^=0d+Gn TFat3w&?O8&njJ_oF>n9?^7klr literal 0 HcmV?d00001 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 zcmZXQ%}#?r6ot=7ElTZ=KUM1!l#Qfu>B=C+Ns5>bW!oT5NSg``P_3`#!Uyo7jCaOF zi7vl$&)hlZetf>Y0~q1V#1_M8UZl>;MdCc>Pfk*njw?hIFW1sUgQ2&GpJQhkXQ>lB zEM!tKw8${ycembzhYUDkGxrQHJ*BE#27kiq=ng- zi%_W)#8Rp|6=C2j#ULe>m0Omf+|aj2Lwo!iMpVT-OE1Y&);#^;e~TTF$=f7yRm~}; ziT@Tg0sz?-93a+<`$S@1jSm81`|X&ZzfNeNv8bLPYWP_Q4lcF7(g!MWZ(jd LFfwq1#2I)19aA>) literal 0 HcmV?d00001 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 zcmYL@K?=e!5Ji7lwOSQi2wp)q265?95QKt@oFJw#q|`*xRPkyqJb;H1Q!Tie&oFOh z-s}B%0$5>~AR?Gqr|4}hXl~C`R2ALY+IZ;_bO_O8R{+jn^kF z9l>@bP8+o$7zHfTm1q85%3sUmg*)zTSW20#osc{IowXmA&6yqnK^**mI0$sn QLnD&3*>5rsgHR)+AFjJGjsO4v literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/css/DOMImplementationCSS.class b/libjava/classpath/lib/org/w3c/dom/css/DOMImplementationCSS.class new file mode 100644 index 0000000000000000000000000000000000000000..73c918f1c3cc9621c6923c7e381fb93051341a8d GIT binary patch literal 329 zcmZXQyKVw85Jm6sasmM%rAZ1pilo6pDJgkKNJJF=0>_Lti}rzb&Fj}F_<(#=#B4)0 z+G1pn?R#{_KfjkNfH8UsHNr5>0)6~&dXvW5<++}%KbP??;+PX}eV8UwV-y;M{?;C> zj%*U>_1Bi2S7;Fi<$NVecy<|E&jK<29I^Rk_JsM{>W^l87AC=@dh)(1!wb28mvN9h`}wxynA HUqkl>Yl2-K literal 0 HcmV?d00001 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 zcmY*Uy$*sf5WeD16&H7B6J2bKBctd+x;*DO@BDX}s~&MAxuEOXHcR){KP@ij+jC`<{ghqT%} z3aoF4rl)gLskj9VFk|xkb#aDCi0emPi?IZXKIHW%ltWbFxQ z&b})UX7k1AcPor^>5jEgwep3t8^TDsYpwZE7$!{q@|G0X&rW0;z1?48wfP z`+Q$-085NK^cW_lO!;#q`Nb4mRuzwxv>qIWaV8qUb8%1k{+v8`ke-?QZuC6!|(@B05UfK literal 0 HcmV?d00001 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 zcmY+9y$-@K41^v23Wb4+Y7;JgC zJAe0h-tGXfgrNs51`}-(-mDalb-`6t@l%S;MhFi&491zfNS@0w;m0ULMIQ7ROn)sG zE3f!Es>n!1&TMT7(nc5OnlKi0&5^-j7XG?+ITlz_5PlyBGHICv^FN&fvM}$EEvj4^ oNvSRa2ENd>QMgZC`sf3_aB-H9LEBE()?~JY2Yq+J!0s0KFY5+Ky8r+H literal 0 HcmV?d00001 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 zcmZvXJr06E5QX0$ih_l)vb5C3jj^N!D~yFFz;#0)$QoGDvsrim4`m!E{7Eb(^Iqo5 z%$vvab_cM;(1Asm>M{|Rl@tek6slH*sYIaV`N%44tOJ`c%Hlc}d0Zr7yU&y~1W%SK zHmYR^i&^wRcBV{=#GglhcDKAwaKo!qCzI-;axfrFzS&^Ad5;<0>2oR7I?WYf{1a}` a9PJSZ9sUU*&e}zfy~EDt-sf^zTku}7X+vcI literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/events/Event.class b/libjava/classpath/lib/org/w3c/dom/events/Event.class new file mode 100644 index 0000000000000000000000000000000000000000..7d906cacc71d046e1ddcce43223f515fc8217fb6 GIT binary patch literal 578 zcmZ`$O;5r=5S^X(k~&f!FX6#}&|cD0uaM|%vX8k@0zCt6#80;>ed6FQ@sPXkwb z7*CkP36xs8Y4>}#_nnb>qg!nP#3E2=g+an;zz5V%Sq2RVft+rSY`xcM+d@FIqR}^u z?oX>wGXxZuar-r51S*YY_t(+lu@|_P_>U-{F}?&&vE;vz=QY?+#?n?A$GFCKUjZe# zm-$Q+w8}J^IJSzak&eecOQbZ!O++sZ9OhG$3FML6-jrFKP9s@#han_9jLbNUs7tvQ z22vm3f>A6pykbu@^>N&s7kG1D0@cRf<%Yv1wy9Q_#tysogrO?OJQF!&F>$+=6Y%E3hMRcY#%?NnVFNiTevYfJ1Rm IIFjDSUqWYn82|tP literal 0 HcmV?d00001 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 zcmah_O-lk%6g^K(%g@rxk2XmglW2&RMjLyAAYzUQt>igA?8VHRm>I3V)gpox{eXT{ zbZ3ep3fkPybI(2ZzP>%b060cHg&0G_^%ln6iDk@P$B-+j1K;4GNHElI z#7Y>p&Y z2zx2xqyh}dQ>9gK#<0^g``=s4z*BnBK9~@Fhv?IYBcDYY1%`6-FW?4|ZDp~BBtxOE zv>Ys*ne@hDW|O#L-?fB25uOV3&tf9DRzAai|KBIH8B&h)eX)qRe(7XLo9@!HWLJgT zN+lJ=*6t%VA0l9pY(8pL hh^R^&DrGU$-U0kkbCv)A literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh1oaqICUo<7EAm{9OIivedkiVtrQ-<&#-llA4!V#LmFN z$RLoFSeB@tlbDyT@1K;Fnq0!jz@3qpmy(kTR?EmBtKoyoAZyJqMh33n{L-T2RJY8W mR7M6N6btk~X0tIeFfuR$-NnGb2(*utfeplBU*Mb;4kX{ literal 0 HcmV?d00001 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 zcmZ`#Jxc>Y5Pg%c)0n7WtzeflE|Mm2b*v67A{Ob^z2V%D?1sI~#ouP(5Aa8cb0JX? zt{C1h^X3ijeSW=v0Jz6Rf)?S%heGWpM&*93xMCMeHLKxChk|2*4&idCE3H=A73%S2 z$tKE3=lPzN*)p=@K$woQU*0?h>xwjMQa_%hi}5qzD)8D@{7-P0+j66$dEL(m*P}+c zbi5$+XK#i#(Rx=V7!Yoop8xRVX70Da@Pl2knEGS2CAy)9*|OKO{JwmulyP>u z3M6c@{q~!0UY+^=`TPQa3pg%AiNR^2LO#6=_&9mzm}9I{K1i|@Z_K+4s|=bGkqaJ) zIOO-E2?k_cXK=D4@Tq5`7*s>lUZ4=;X9g>+c5mMFQjqINQU%hDb3y(Tt)e^pu#rB4 zno0I1U$wPWh;^glZ6XJ##lLWsX`RG2(4)ple!xg*96t(0guz*>-CxqUZM*R4FsRE| z>e&z&h*p0#15Ya%haKNvNR&&Qro1~!wGx3I66^HL@#%OAo^HtVCEG)qf|q0}z*`w1 zgT}1-xv5O^rk|p_MyspQPRg(WW;YdwRfjc)o3Lf|y2FOUro(O6vHC9TS=@&M%FN)9 Iz9l&N1t49Ei~s-t literal 0 HcmV?d00001 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 zcma)(O;5r=5Qg8iN|7%CQBf}*;X-3PdTRJcnm}u);lRliHnpT|ld`~n^WYEgM;T{p z6Crr;u$?}WcW2(6`TTnS0C1066GsepaS~YDhnY2xmzLNFsaDo#t+)zf+1F^|n4!Ah z8*W8h2A21_5Hrf=7@B|FP46(2MqbYuI9>bM@mvPxGnBirTq!Qqghy*(kO#()w|hND zYc!J`bKD@Ff>~2;ci!*eWZ4zdrHJ6E&ZeVb?mDolmV%V zq;kbJ6KS%QN?g9A!sU#*Z}doFqtzzQwNQp?ZyXFSt>HoK>GaUmq3S;wzdd0n`0+ZK zi9r~Vllor&j_ysfCx>)S=z9$ldHO%q6GVZyxWgsl@(x#!qkW#C3cc4F>S;XBVk3(e QxJ>g`XzD#t4PE=@8#c>|v;Y7A literal 0 HcmV?d00001 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 zcmah_y9&ZU5S;ZD-&%^LRnmBfjbJ6H5D+Xx3%fHO;Up%Ioblf*`~W{n+yp@j!D1im z&d%=a<9WLS7@=dKK DRl-qP literal 0 HcmV?d00001 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 zcmZvZ+fKqj5Qb+FC?^#aP*FVLq1@Q0mtGO0fry$&<9#Vh3+cgZ3(Bi`;RE&(%!C2t?#><9lFk?*3ut3P0zG_aqDoGd!YhJ z2E~yvF*L{UEbXZ`;wGwT2DSgwDUm_J;$hP?c@W(5DT9*Q=*;VMLoxKMYjg#FTxE69 z)OcZ#!(unKA<&J0>n~*GiSLVkz#uCRC{|E!2|i$;pc+Sc(&SSZmK1{Z+8v@t3 z{aGyA(WkPiY(I{YJ!dSUYM7WB_~sbjoa_2yVe-47gWk%*0MF$=$7x|2ekmM(6(_1d z2IOS3kc;*_ae;W5c!hYCxJbN4yiUA9Tp}(LSBN)>w}`iitHe978}(6xy=dR3^8-3R VBt9ap!*S$0kvqQY6xRft{Q$aone6}o literal 0 HcmV?d00001 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 zcmZvZ%TB^T6oyX`DHJcLfLFY+DH|Jg=?aYo64V6-*R@RAlHO8Ad^Z<9fDdIn)BfNB z7w!Dte=ajQ=lkdLi-<0%ty4jxcAUD_$F*aPQvOI zHnC^671)t$J-3k| z%9=F~aAcvCKTT|h zD^|=-A5l0(v#%beE_<>=T$U@Sakt$(cP4ev<)z3z}K(2@B{oP;~f~% z_*gLaoO92)Gr4?zy?+3}3G{TR5jf%^a$n9ucfu2QnkVt8I|y!ueZlBu%o3L7I%ovU zIen&XOw-7{8_!vYYMns$|F8-YXh$sXhat{R7#@ KcXaWr!QnS)iFnrl literal 0 HcmV?d00001 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 zcmX^0Z`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#*(ZG6f5n%s|Wv^b`}&t?UdO T3?MgiGH?M!7#X-h;tV_hb$mXA literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLBaseElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4d88a303efca40bf81c26edb12838e976da0c5a6 GIT binary patch literal 289 zcmX^0Z`VEs1_nb0es%^XMh3$cWS}S;BZDk<%}|Yu4D9KtB_2hoX^ada8k#-`BZ5nc zGV{`{feMOY3Pd$9$cWS}S;BZDk<1E3li8935YOPup_@{1T5L^L#g z5M~6I6lLb6TLV=T!&QiCU@FiIV`N|l8se6ioC;(C6+>A-vEa-qpcu1;rYA%O!e`O& z1Zm<5&Mz%WPIb%70jiO};wwFnV}M=&ngGPCz))cWdXt@jg8}4SP6jS8%?;)AK>553 Ud|+{Y1_7WBMg~D3$;2Q80Ic9qC;$Ke literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLBodyElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLBodyElement.class new file mode 100644 index 0000000000000000000000000000000000000000..c24b897867a85f0f6630db3df5b55e1120a8d1d5 GIT binary patch literal 451 zcmZvYxlRKy5Qb;M;jknSAc2a4E@`j`B^5y+ibWKO(l5J~*~Dv0#^HE13Lb!mLX6qr z5K!2jZ*KpuZ_h6Pa0Gh-8VCo@Yx!`T%feOiHdJOPFDF;&$Q4iLMpeoN0m}%TS$3aE zlUXgVZ)Ped?<&In|HWL0(9|lNrlp-Dbo+z!yT>^A(&`h+xckcJ_5UUerU-3nGRpF~ z_HJPdVk-H`NsQ|=XPie!V(=3LMe6B-+-#9=q8)*$(K*O^<)ZRQQ;P38{s7V|dq4s$m$&FRtIfZccO CY-TwC literal 0 HcmV?d00001 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 zcmZvZ%}#?r6ov0pl-i#fSxlg3JA>t6+1J1o0Sk%iAmDlaz-I*7 zh*gt^MHVHYOy&Pl9eXk4j0iOGu-hnSzTguAE4DL657Ejq?6C~Wdp@z4V}G zZZhE?3U=pkLcyOXpR8yp=aqDgV67pQi#+H7}|X7O$g9>7D1<$}az=J5TQ z-`pS98-OW#E^364t^~WxQr<8TRW3PU i@Jlv%RWu3qzI_OAENBBwyntP_-n$LYDuj-mHFTe^i9UV+ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh2z)qICUo<7EAm{9OHvlH434eUA`d9~Ym@;u6=K)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj0{}qsU^<&xdn;IC5#Nr8k$i+ zp<*N<7L6#)FrZj)erZv1s#|7GDkFm^y8U_}tAUmQO#ot6pyQc<4q|8EU;sIclYt8; M!pOi45@+B60Hp#pH~;_u literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh3O~qICUo<7EAm{9OHvlH434eUA`dAD7Ic)Z~)}XkT?Sm09@BO>Hq)$ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh1oaqICUo<7EAm{9OHvlH434eUA`dAD7HB*PPVc)VvaQ z1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiHvP>qZX9Od5jDq8k#-`GlENs zGV{`{fhvmODnvCf6=;SrGH?awmlh?bx@G31GBOCGx=jycB+wy@49q~x3iK8e(6Q_c U91I{wb24xNMHm^lLE;QN08%eMtN;K2 literal 0 HcmV?d00001 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 zcmah{$xg#C5FJBHXj#j?L)la~5CKO{KtUh{kl5}aHK~geS5DY|jRPORM^@@n}J(Xky}qAx#1q1A9+<3+(tZ39m+B4Z}@k< zEB!chPp%p~z`q@ghFU8>_>4M3o}PJA(Bza~ zbFH~%RKTgKB45OeIuKu+dW;+dJF51`s0^9bS-x(uC%L%47@F~_RLJ&_pmif8Ip2Yg?cM=iCk$C`Ow>;i_sFOR(%#J)JxNoH>fRLro;p1Upf zSnQ>~EZlBr%wx(Tlr zkTiEHpm&?s0s*b9i0I6$Zkk73us)*S!Ejl<)v1~1ZSS}<;zj#R&LgnL)#ulQoLORk gcJ>2=+w;(K$cWS}S;BZDk<1E3li8Q9ZPOWg8{a)DN9X!>AR z43dXxux4c73eGPrN=|jl%t>Wrkig;^J&;3yRx>g%12HSmH;h2%u`_UhSPYy%l8J!} E0BW^9KL7v# literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0L3RcvMh3$cWS}S;BZDk<%}|Yu3>@jHCC>Rd`9+KjA{v@L2s469 ziZb)kt$`|v;VMKmFcoNqF*2|N4RK3MP6e`nilHo^Sa4<)R1Cu63eGPrN=|jl%mE6E zpm{oj10^`%nA$uHlVNA88{d~zT;%z0@K`3J`a@73+3~H_&|O9K$3|;001Yy BOoRXc literal 0 HcmV?d00001 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 zcmZuuO;5r=5S>M#Qv5&#zcDfK02dqe=!p=BCZGq1_fj@(N!umMqVcbJ@CW##jBl3( z6XejDeQ);7zUh4be0~wpEnPa4V{|2C=)KQ7Pogf+?fxdZW8u&=N_4p0UUt7!@Jv@+?#lqm6pw ziID^5*-ts63R?U*=_?s$AtcUpaiLoOUvIp^KUy?{fKOB_@+Gc=LR_Kr(@o<8HcVN2 zV&sBvXMy^dz=Mmz5@j8P)ApZ;@%JWDxsT@SFYeYuJC? zT91qhNZ1px-{vz9gs=sbVe7ln58^Hl{E1>zhJ97h1*OVUFjkZFdt9hZ)#9(M6A%|w(#b< z+l-p%(Q;pZEa+2yDCW}RoghRVjo*Vh)1AdsP$Ir{Ou355S+qfVf}502)`H=p;Vr`@ o!)3!2!&SpI!`oC(@-%2CS$B=SY3zH3_YEJ=Au7RJ!9PRC-<+72qW}N^ literal 0 HcmV?d00001 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 zcmX^0Z`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>!}j0nmv2O0rV3t@2u=a&{Gr@Ce4q%tx{U~#e@$SR=w o7#Wy>m=)+{7N8&4890CpMg~p>E-=jv<@12}Ky|!8l8J#20QO}`6#xJL literal 0 HcmV?d00001 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 zcmX^0Z`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#0tx|j!G%~fqCm>nfy#n2tAJ|Q zfwB-5$o}xml#&dHMNlSJaDHh~a;jTq4p6ZWieL3WP6T=kXb}*z0z-)d=y`Sq4hB#l la58X#X>JA{FwM)r2d4R<@&ZtKK`37c#0Q!q3?!KtL;#E;Rd)aY literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLHeadElement.class new file mode 100644 index 0000000000000000000000000000000000000000..4d1d9d27ef213a52926765f99144ec9346ff68c7 GIT binary patch literal 255 zcmX^0Z`VEs1_nb0UUmj1Mh38+|;}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&>tD*Dx|L12HSmb4)-Nvomlo TfLzYWzy%axWZ(vgGw=WaWvN0O literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmZvaOHaZ;5XWbIP+kHeAU^OBFL1F@kDgQ{n1CKIdah-&lx%mCWzp~E!4KevGS0#v z5InS<-~T_eozC?8=kp5yF5uLIH3nze2>;_M^!qyY2R4?Me*3xGd1#p+=J%4vTv-n` z7!-!Vd*I7J3IFMB$U{^U3~K+EQz3(-;PysFLNO@S8=d(XJ!>K*t}$cumr<^-CNy3c z5S)4(=qm^j#QOF>J&Ybe-bps&bb`~}LmRS%Njwwr?V z^xZr|YxR_Fpp0v~=RiFnHtGLBvY6z8uN}~Ro2S31%vg{c; zV5x^>-h0!p`z8JP_5J|>r*N!6hCw5Ygz z<`m1}X56tx%G)1DAR(*wrL}}5?JyA6JhqXcdCFwUZiKQ-sel~x7<1K84w_)pdp`oC zSO$1^QqtMw8L?h zepE7$VOpV*MGME`n{bo}J!fxlEM1P4En2>~8if|kdotaTMowsX^qSz7 z1}clqv-lsIJ&N2cF})RE8wXtFyC=N5UX;bI-1QZ=YM#H<4SidDm@LD;Sw8f2KHdsd zNgweX)r_rE!`RDo#n^dTFm@5VtKeM&UIK0cUkAPcd=vNQ}*k1pXTMkHKFD-v+;h{1fD#BL58e=fE4l4)6=$P1-VZY{R~UeWfk$?=^pC G=*?ebGUe(3 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0es%^XMh2DqqICUo<7EAm{9OHvlH434eUA`dAJ1aXyp+@m*PPVc z)VvaQ1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiIaP>qZX?CGf`Zuv#Ij0~z8nm*VS zgXEzatQi?NfjR<;@^cGH7#T!>dJxtImlS2@rGu0dBb110V5-mzV`Sh8&Mz%WPIb%7 zNo8aZ$MlmP$XuWY7#Wy>m=zc#%s@}FGjK3~Jj=R$;6{9Br-8GAatxFceWrYZ;ZaR#78@p-y)O+7m-GMsENB literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLLabelElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLLabelElement.class new file mode 100644 index 0000000000000000000000000000000000000000..478882a400d929a7b9538385153f3eef1fc82005 GIT binary patch literal 361 zcmX^0Z`VEs1_nb0L3RcvMh2z)qICUo<7EAm{9OHvlH434eUA`dAD_ge)Ew8G)ZEm( z5_Sd_Mh1bb#Ii*FoW#6zegCAa)MTJ28zX}(cHK~oj127QsU>dtMY)U&sv4R;*cF51 zp&G0i8F+v?9Fvn%i;KNeD;XI?fZ7l?2bUCO=B0yF6{DyU)xcDw8OF%K1vJb9=qI2R zKn_q3f)kuyT9lmXmYI{v$RLXDV?B_SK<_a!Fat3wFt}KOLBP(y!2k*hP6jS8&CS3A Trg@=!J`f+Mo*zguF$e$vS94r< literal 0 HcmV?d00001 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 zcmX^0Z`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 ziK~r6N3N%e?42V literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLLinkElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLLinkElement.class new file mode 100644 index 0000000000000000000000000000000000000000..58bc1f2181b9f96abd0fa8a286871593d8af8a12 GIT binary patch literal 574 zcmZvZO;5r=5Qb+FX(@gn7QfMWD;FE}=+TdGfS5?*f!hLWDYnIwit(>`@CW##jPJIC z81>NI_jzY#cXs;m`Swmkr*vdcLD2Ce@!gm6fjgW;?kJ7IGq>e++U+2Iybe{Q;?$s` zpz2u8q#MfEcW?V+HGo?Z)cC)c3k6ktm0kr?*$>rF(2~>a!JGc{icYV2FUUgTx(lsz_xb$`G7;;jVIT#WC}3HF zd#6G{C3v~WoY~xgD8un&f)yHRbFDk@UY}InL9VRsUnVQtE3}gBtF)Hw>&#W=4dxp2CbP|4XWnAoX5L}mW!_`nXFkx3z8Y8y Gbod3;yL*xV literal 0 HcmV?d00001 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 zcmX^0Z`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 y12jb#)h~J=6M+tAWMBqjR$wqN13kyiz`+3WBqswGnC52S0m?8k@B&FD20j2)h)$XS literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh3$cWS}S;BZDk<%}|Yu3|#4{CC>S|1&PTej10^gno&TZ zVk99JjVR49pjdEzX;E^jTV_rwBZCN<^?D$ifp!560Ag04)0u$oVQ1iA0J)2kfeR?Y L$iNK}XW#(lN7xk=5lag@Xw0Z3rGrBOSgd0o*UYlaK6DNE-z@k6{3yq>8b?Mg zlHBh;&g9(n``Ze@1&$ROg0r$p^y^iuAIn_NT%KL((cNS`vCa%Lo7=)EYzx|Rvotz0 zMWSyX<~C+_S8)3OupbnJiFMay;iw|$_WI)=mB>|Tkqp@Lve9$W``gmL7qloea_(vP zyhxWs&TOD!b!u`eP%L~!0drA2qXR*}>~|bS<)Vu1O`5UL{blvM{vUk_ws>~9rY5~B eG*Ry$K=}FYd2V^$_k7^_&~v+H>KyTIpz{Ge#aa0P literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLModElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLModElement.class new file mode 100644 index 0000000000000000000000000000000000000000..ed36efb33ad1c507f6a93dd513322b53244a9e14 GIT binary patch literal 291 zcmX^0Z`VEs1_nb0es%^XMh1oaqICUo<7EAm{9OHvlH434eUA`dAK&~G*PPVc)VvaQ z1{OvJfvm)`ME#t^ymWp4q^#6rpeP$7gDiHvP>qZX?CGf`&Y2~tj0_?gnm!04f=h}r z^U|$>3W{M0L^UwwHNzMgxPeBvB$lLxWaa{m;RdQl@VJ8WON)|I-7<54Qo^XN)&toF qbRr`IGZ3=^Jkip2n$-o7sxuJX>5Feq%2cjR7!2b? zzDbeFJQC}tM1|xI7_Ra#Qu@BgN*QW~Bkl%dZGTt>58OwFAz{9jRSPZ2AgD78 zzN`_Gkj+P_7;Nr(hh=Ct5D73l%_bpTi(<&sS@o;r%zur ipxP#esOulYYV-uBjgD~E=sCuXUSL8AhD*A8u)hJ+o>PJV literal 0 HcmV?d00001 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 zcmZva+foxj5Qcj&x+GCS1jGX>0=n_Q3h0$rLZnC)=tUw{aW~nW+AOt))Mh|=H7|Ss zAIh?O=TESNi{0t3|L*CYng0Ff=Px4Kr1u_8DOxScIQYID22qg(1DmB=!G7=X;7k9+ zg!WTvGLu`6YKmr0^qCG)oyUO_J-VT2`Ra5eD)M4u_lh!8wC=YKt_~I*2_Ia>ZV?$p z^PF)}v}?;Gk0oGatP5E1FYB!%MbljLW17S{n;ZJ|^Bxk&LL;Pc?v$9i^ktr3` zSs2?*_DiK5J>rxm>Vly4&WHbKj^xm7ZMEywSyH`i!c>( zi3irTGO@)!8tTwxcc8*k^E;9(bwBHjL*$N}C3U-2=TZOMRh)pFuBZE*JTgDr=`Kii z!dZAHXGv>cN9IruUGa&{{v$LZw>P%s6}}~r9k^G3Imh1JBDXwN?IJvt@lv$(-)xK( ze(grLI4wi7m!y2G#Y>~PAp^p5$al)$bsp?Bo>h;gNoKZAjcRSu&1$^`z73uM&w}rO z=fHQt^WX*WBKRJ734EU(RCONGqiS7-{uufbdRqBc=vlR{LSKWv4t@@Pfp{PBE$ANU_-;knh{!h`nzd^O&%m4rY literal 0 HcmV?d00001 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 zcmX^0Z`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{(yf6ifZCucL^UuKfDGXZ z&Mz%WPIb%7No8b^z~U1EN?ZOXgp@2;z{m;}m4Z5?>d?(eOi1M5^S zB11DI*Y@Xg&Xw=a@7Ff~+`@$g4FXqr5!286kVbh*-()K8==1c&o4m^;&z=NNc_uAr z66h}22cv>zF`Wbp9^&Z^fy;Wi5fZRsE=PHh61a9;ul};)M({wOhl)r3%1R-9E-;5j z1hyP^j%Znfn$Fyvt%Ig~B?td_;ZR5B) zH~|Y1J3^dSGt2Z literal 0 HcmV?d00001 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 zcmZvYO-{ow5QX2A(9rN#kdP1ufOLZeEW3mvBBf+e#6Bb=HfC_YU*oqtsb7nY4++XXXm%h7%ti}L_p}z z^7mYs+-jA*%tRpcH2ajT_EW-EJV=DhS0sp&!80KmeH8rX7-E-jy8h^0HvX3hLFKt7 zoXB9h-u3889*VimYc7*z&v~4#{xk7SW%Y35P&9FGO~Ln-VZzzQc$ckHmmnczIY1z3 ex6ze?5MoDoucdNFLiVt~R1R<`RQ4ig2S>lYE>>#* literal 0 HcmV?d00001 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 zcmX^0Z`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&?gb=P)ub12HSm bi%dW#vomlofSk_Bzy%axWZ(vgGw=WapZ!Fh literal 0 HcmV?d00001 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 zcmZut%MQUn6uslss(S0v#)^#zme$0=DRf7b9hUYu<(zEHtlXM$M(WRs1WISg+lLNsecLNPl1WJ2$W>hfOp|ka# z+sI}J)c;SbK?0h?gDI1oK&{yte=HV(zjK{F3XZYBYX0_HtH@$`J)lLXjVc{&S4^Cc z)R9!B8MBedj5`rD7T(FX`EVz2%KFaO4tK*q1d@2t_(3{`)qZX9O+J#L2(~6k%lG J28lE9002?NGY$X% literal 0 HcmV?d00001 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 zcmX^0Z`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{6IifToC|yG;*dCeR^_49q~x3iKEg(6Q_c U91I{wb24xNMHm^lLE;QN047^NxBvhE literal 0 HcmV?d00001 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 zcmZvYJyXI!5Qg^Hq1RD9A~a8K^fSsObm&zY?L*=_I*^VD>9$`K$5ZL6Cps^4(pF literal 0 HcmV?d00001 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 zcmah{O;6iE5S;~sLud=-yA%qP0!}HlT8=$c1=L7Mb4bL2n`3W{(b|q2n*u+r2YvuQ z3ia(~z^DOnu;=T|n|-6Xx&3=hL|nkybv_%)aoeohYFTcuN@1jpyk+81xPCZu{-Y!(`)nu&<&Y{`6+zB@BHfFg)e(~ zlqP+f<^(N0RC3U2-j@d=j?yd^v;`3lapl5vomE3s6+>GCazVRKHZkN!s`R$;6tqsF z^&skdT_ppvixcGV?lNaNCt8>WHVc(UJ%vqZNEzw1|MFtwZRFWQt{q)*Zs2K-j@RYI zYmPD+^#VNLyYqzLJF(A{^-ISy8K>tMY;{$U8BxfN{Z9R&k6pFXBJ<@@q-87&9p7ht zG`KXh;Tyy0F5(((s*t|Q391@9NiU3j$@y0_W#VbBzeZiq47x4YS#-|RfJs#=5=P?VCMHcd6VN09B@_^2%~yZDdLr++=+*Ej$G literal 0 HcmV?d00001 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 zcmX^0Z`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+mrJ6`~rL3P6Ui0}TnO zEJy{ifQlh3uHgLAqU2P!%p9PwD7x45Ko$Z00dyM>vjW3~4d_>P1`Y<0pE()0z%(}l Y518g<-~-eAP`&_&57Z|JB$*h503&l!bN~PV literal 0 HcmV?d00001 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 zcmZ{fy$%6E6ot?Aw|)}^9sO=&f>I?y6hyJ2pIwu&GCM14@NNnZ;Gx89A`~cY^W~hA z@7^ER8-P9<4srx9NhP}sL$*y~wllFBu=#qqSo1)M2|t)9(NiU2p^bwAp}FU0&J@>@ zt%AJ>EiDnczeiq0LRktkR*}?%mg_A(8@@>+Ek`zSd?(uOcfi{as(x}xLoth#Aawpn d_OfkjM9AAK+DCKN+CdqaeFarZ2(^r({sh1`M&tkh literal 0 HcmV?d00001 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 zcmZva+fKqj5Qb+JL=ew-7SCd<#zwvLN{I#%mBbQFyeqJllBFf39-hq$AHat)&Meb< zAs6k=H}lUw+wOkWb&KBLP`m;287w!Bgn; z^dEU1RO3v_c#dr!g7?3<3D7?6X3&#^eR4>{9{E4eusA05lh=yq12N5E&JJF~ro8bK zx~vR4^bi?1d!sUyTMl&w zouyn$VPvkwc(znAR(Ba(Y!{$G22HK(ok?}hpz8;tKaI$iX|8XP@$$>)`Tq&QltBYU z!UQ8yU38*hGF~h;)0A?oMk|S%cKl$-fFpZ@>;BNmcu1JiV?1pBmReV9EqNXa1fUn~xsdR7#28VR?^O4+yFqa&YrlNn%5B>mu zl;hsrHZ6tf_#t!m?C!Js+-~;Q?;k$_U=7}uVTM6dWs!HX5qP0Wyu&<^>)v*6cc;e> zq}Y-o5ounA5`+08{*`-@r;)dJa3lh>USzOzKAVUP<|2`I_;DVql)}6?hFFF{9i68Q6yYE9 z;8a9m(9*jZPlVMtyrOk~AkEt_CtdZM{XvrO?7LN10G;Ja9Oj2M3tg*0CU`DrQp-~t zI~r^?6jBt7Sy%UEn8gli7-3P(Rw#bg^XVI;t@2@Iix1pQ0< zYLEq@8%yj_V{%Q~df2#=3}*4WfIHsAy)8op^!_?9ht?`uOL$&FOC2s7&pce2@LVO& zwKJXtXc*3QI&Z+D!8hTSId2obLwJesUBdSW-zU6GxJmc{;T6IU2|ptIn6OK@MfeHf mr|`_^ScSGZJ;KikuMu7+ya6vJ-u@C^ja%^k8hbVaZ~g#|`#z5V literal 0 HcmV?d00001 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 zcmZ`%%TB^T6g`7rp{O8&;samNq-<=|r7J~@BoGoI>Q4=2l!FOJ7okC zanam4_nv$1t6$$Ap8&3LrXj{~>G`%fx$T*KZ)^_3vA8jx+l_kL>I(kiO{#*Axf^PT zGh|2ByJZT?wasRC#CzmjXDF=}P>Bp_n};M+bNhVCux6BN3_0?(NWk&jMJP$m3Kt?^ zxG>7~)v^^&h*{ztgUq-Wj_oq!DPz%IEA$=LmW*J|C>VbUq zG-ODSQ`)G(VRJB;=~iaX6tOz0ixe?`-@4-l+>a(=I5%qlO{5k@&Fa-@kH5;L1R9PQ zipwi_Y&Pa$qV~DqA(!i7h?BS+q~*Q&J^thfPPr?NcqJD^7o#iCm!O{@Ls!+1guHG_ zSsm#JZ(uXBTgXHtZ* DsjQu8 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableSectionElement.class b/libjava/classpath/lib/org/w3c/dom/html2/HTMLTableSectionElement.class new file mode 100644 index 0000000000000000000000000000000000000000..0777a90b2162d8d2d08a2bd25487d2ef31285fdf GIT binary patch literal 581 zcmZ`$O;5r=5PgeaDfod3ii#KG0WNOTqbE}_nm|Z|a4%&kCCk>dtN7bI_yhb=#%WoR zL^y0_-pstW^YQil@d@AxH47PrMi}{gcH{A3IOStKmDl{S*KYOPffQZg=^#{1DW*bc z3t5KJ#C>zQbd}FLg9+s=Y%-j!7BNJIyf5^f41C2ALY~$J#?VG=Bs{HjWia&?5nBjstSlzD^N;w~yII3+`yRm{O0PD3y{Dr3xqx+=ehjs7YdFQTa6wet;ik*)z0a zDTm~B_q_MIC!LSaw|4+I13du|4N9(O87~*6(RXd*F|ftCaofJHxA|*O@i@B?+~!V@ zfT#x95qoBaV2))pdLwRPHLgK%wgCw>$XGnM<^vXrpu2WI0XrN<%n$zd66aF-l{Py?>{gW8c_e`Rc!e~!~o|+J+jtyKhMC-WE1#U}&g_aw7Ca(?! z8Wd)%`Bbh2cZv@9#PB!CcHZ5e-crgiXOEMVWc&)<6Y7O%Mg58kq7RBe;U|ON)|I z-7<54rih|@K@Vgm(7ixM05L1j|13a1u`_T08H@~^3|wHEn}G*R^D^)ORWLH}14$+Z F0RR^FO6LFo literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/DOMImplementationLS.class b/libjava/classpath/lib/org/w3c/dom/ls/DOMImplementationLS.class new file mode 100644 index 0000000000000000000000000000000000000000..2b5479c87e3b55f3c9dd20d0cb887212046b4243 GIT binary patch literal 533 zcmZvZO-sW-5Qg8?+Gw@a`dRfLcxo>V;;|=bD;Cm5TogRX8kdriZo+1x;!pG75Aa8c zvypxvIV{WUJUj2qJKsN_UjQ!9aInH~9_z9Db{V)Y@zjk{x91NB(&Bx-*W~=r`nBGYJ@TmBFf|{X)%U+&R#9S zHbMHeKucky$8UvBrDkY1xwp{bMu%$LX?g$JoberoO8-5OiETA?u+7j|MroXRnqhY) z#-$EL6nr zB~GGfLEX&EnK?6OX5QXkUI84Uqaef3@&iY`KeE(?@2PI6>ZbN!*|(AKrGgyQZ}=To zT`nEfh-D-^`@7DNv;2k4z)Xhx`N%M}E6p$%%41)K5tq@7yRn@mwJ9Y{&6tez$z@7P zlEhp+7E(kf49&i&|0tPJAfz+gn~}trBnrr)RzeBu42}L@#5@=_N?5@vLsb{jK8wA% z9bE9aOAFR@-{S6!2O_~=$y{_TLWYk1{|AN)if4x*chVuh7Gx-xejHf#sYqmMOV2w< z$mr2p$*EcLv>Qb`P{=c^QJg`ZaA64-slw>aGT90-ro>75i-Y}VR0r)R)F0EvO|q4= jv`d4#G^B?H<+`7AG_gg98dF)8M%yHop}{Re8MHqDCs}LB literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSInput.class b/libjava/classpath/lib/org/w3c/dom/ls/LSInput.class new file mode 100644 index 0000000000000000000000000000000000000000..b778c1210621502f5fa188d5b3ef85981fa0db71 GIT binary patch literal 648 zcmZvZ%}&BV6ou~~f)>!qzrSqD#))z1PSk{iL_^gDyP+LxNomb=PxGxzKJ;}ZbRpjUXBhbvC`aUbi5c9E?A?8yGSHX_%GL?Kj^ig4toI>wz zF^xhm^VZ5zcVj7k7!L_ps(vOE@jCVrA1khiYh|N1;6jE^A@}e3JHGse)1Tl<)T{nB ziq1q8wA^GNJbn{KoIusA@l>s)L;!!sodejo)lDdY+HM)P^xOtZ&k9uatig_+yI||N jXLQ}@hS5!r?e_7;g!+~+1z@>y?YI4lJ?oB|W literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSOutput.class b/libjava/classpath/lib/org/w3c/dom/ls/LSOutput.class new file mode 100644 index 0000000000000000000000000000000000000000..2fb4be066c173c9f2056ba5c615e88f7b9c28c3d GIT binary patch literal 451 zcmZvYO-{ow5QU!$G^HU>`Xk^5?FI|6WCsEXsZtk_U~L>Lq)KAsIG|pw3l6}c5EG|S z0%GH*nR)YR{Jy@op8&2f^Uz~B(@#v6g^jj6fBk6YD@iUYt`Vw=(uFzq!7l;L|_uEGj5nPjWHcanB+y!XOrQAWrN_;+A+4 z@sN3usSORaqb*8Onl)_CX}xc0=4gDZ^#-PvawWo6kyCpk%}gm)w^8hxM$3eC&lTNp z$}+zC9${Z@8Tl2vgO68K64}BJgEpbc6+M3<+=y_nl%8|sDkaU2uk#P(Lig45)(K&a z2dMF7;1Ei3>kC2Rz;O~^63VmGZNi)X^wEP^BHByxLnoQKfnXUm?ZRp8r^_-+n2Q04R5#J%jywy>SO_wgWmcd(ni&H1~BhdlWaPp^WX=9pPoBTmB3CwABLu literal 0 HcmV?d00001 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 zcmY*V%}&BV7@W086{w>4d+-hyH^ieS)0Cu2uxYCv&001^Qo5#HCd>RF!C}lBu&$KLTv>5tJ@hNyF@{~Wm zEoGt^oQXe;z3}zUb-f^FU=eYy%1bSB{VcMzv?zo93q$YTb7MnNX1BhM9{j*i7G>0w zKO@`lDX65B-6O|BdzoCxoN_OQ(`MhAza3G0MU9<_=W(xKQ?>BIVaJPYbgq;RHfJLJY U(I+d0BOF)n04L-|tt-#7KY*WAXaE2J literal 0 HcmV?d00001 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 zcmZ9Hy$Zrm424fxwe=SV2XSz27cb)ItWXdv)EB7rQd(-S^j;NwGzTBRhZ56H;*f+S z=a4V&&+`RfiID?~FjrM7?yE$c)L9f-?4qzzX(hGZ++=ASvkwYW(7BsKe|N?#whINX!Bb(<2rCrV|USOYQL_$A8@uX`~uBxK$HLg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSResourceResolver.class b/libjava/classpath/lib/org/w3c/dom/ls/LSResourceResolver.class new file mode 100644 index 0000000000000000000000000000000000000000..7b9f77b971ab1d92a65b260365613f92476c76a8 GIT binary patch literal 277 zcmX^0Z`VEs1_nb0PId++Mh3$&TEx!4 z!pIz0|5%E%y&=>a{Equ3Z37#Wy>9%o=+1p0@SfeplBU*MzpHve7 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ls/LSSerializer.class b/libjava/classpath/lib/org/w3c/dom/ls/LSSerializer.class new file mode 100644 index 0000000000000000000000000000000000000000..05753be6055520de3621eca1c965364f32a244c5 GIT binary patch literal 688 zcmZuv%}&BV5dIc{0)hg9B6#qk!iC0o zDV!#|`~A)Ae0_g>0yxK!fdoTCD%YG}IOb4J%<;_ZSr%8q9*cLb3?vzfBm31h$F}F1 zgXa-h=7w~HrV*;+`i!;m9JpU->3;|vwT|BG5$3C|5M zvk0czT!*wC8L}jFEykKFhLf0YEd2sT!dVjj<(xKGqHd-HMya_Hn!>hM34J-_opp(U zucyB5w4SJqt2c*FgT7}5_898X(S&|~00M_D_wwQHhT&|J)!Lu}kHV6+m>ol`t1#q- z85=lcs73S8S4GoU(pL_rSyAJq=q9v-7-bETv)e}4{HHC jVckWMcqL*bsg{XRK{a->kAvk+8VS@;rc<352{e8HWI(nt literal 0 HcmV?d00001 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 zcmZXOI|>3Z7=-8d6VttqV1MBC$W4U~22^tJoXq~H15%L7; zSM&$9e2lHmw=3pI0#&=)I`3X~JD2*00I>;Fj(8AC8ps~?$1I2XK%jiXJU(kHj1VyJ zSLMbC8YstzCM#Bsz|w$8TT&rWR#Goug20N|{G9Z9#$9%x1g{-7k{;GC!kttqH?)!8UGFN9^5LnmXaL9vJ;IL3~kq{`M zy!KCE&760A+Uyl!i@;8@pXBTlrVA*A?$G^2^N{tqU<6h(l$$-=#e~@EOEtK1q%cWa zjKcV^LCZSNP?Fr1!V3n`t((4q2*v6Jmr3e;$7$JoEF5;?`8X{@%kL_F z0pA6v+nk4ca0?0;6){?X62`X^v4QboA}(WGNyJrX;5)2A9Tk?e9&QDZ6A=6DY?utyo#;|%NxJWY9fmccSJuqHfDWxjxy pDdZLGrVwimc|D`O44XLTy$tLP?5DKe!n+jme%1k=e$e~>_#e6&6mtLo literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/w3c/dom/ranges/RangeException.class b/libjava/classpath/lib/org/w3c/dom/ranges/RangeException.class new file mode 100644 index 0000000000000000000000000000000000000000..fa743a0d0311150f6c6f24fee552b3295b9494c0 GIT binary patch literal 559 zcmah_!Ab&A6g^ih%S=lvQ(Gi$Dxx7;7J;RKFpM^1LMwTWgS{AMVrHye|ZIPfQ>W~gqk0WwEII_8~S4{5Z=fMHB*)5gYDc#()ZFx z5h^$0PG~MSG;`ubay;!5Qno*I2xJk~PV0^SY5US>)Xl3-yJd8(e$zAwi)X$UM#77F z!ksutPC$g!meH&0tw!HyH=6zKRi~-Qs>#V_kEJK06V}|e^r^iS1=1TG?ey69jD0gm zVkwI(mRWE6FXB81#VlqpOUUcebBxJ&-~?SUa5;5B_if?!L?9LZdQ3&vG9+y2|8D1q zkRCf>C`Pf?ubhO8R%&tyBLiQ0DnvmrSQ8_ImWHMeE)&5ffff2>7MEBv yGH?awmlh?bx@G31GBOCESf~fGi;ab=PBIbbuu>Z}Rav!A#=aM9X3W;8F=sl7wXq%?LVupTCaOrv zTuol)oLWMVvu&X#UQ0U&qxct^+NCb@JE6=DH4OKm=$YU@tW&P7u1e$Km~i>m*8OC> z9TU28H|8?8Gr~a_jR=mmydVt2(f<}QF4%J8btPDk)HRpcPwP*s)iUKrT`-}y{rbB3 u#U;oMNegf#ghRM!!tih;dRJ6OsxL}_lXlX>X!NoWJb6ooX literal 0 HcmV?d00001 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 zcmaJ-K~BRk5FD4%gtpKE)Vd0}tR)h;Wg)p~YzcD{c;zW`j~BtS>tv@*F|U!^juUZr)Lg6s>Cvoi5@;_Coif$>UxC|Rg7 zm$T)HQYR4P6APXa?G&ekQF zhbn92wr%+?%N;Z8Q5h;->rLRCcW;ybzJbTR-8)0i0wGs(?FwGy%X`YS5;*%usHRM{ zb*$4*s&|vpt@iVy*2;xXpeMkWa=t*wsqLZ%pI(5l#y#|F9AH@EJ`QReHN0_yhd5#d JKAGPRCciu*ZfpPm literal 0 HcmV?d00001 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 zcmaiuF$%&!6h!C8m}qPS@1RNJB9`_-AYhRb#Q51HY_gDD6|ZLD0X&qrTUyx-Gw|lU zKhGC{9TqVH!dj0~-1oJ(=w2B6P;44zYeeaD>2uK<8zUqvyXsa6RSi;{&K=j5FqdxU zLE45eNwb^~ww8OsCe5?rKl?yPN_`z`KDLSptKZwLe~btY?wo?(%jU%k`R~( zI|B=M}Rva56GTAY10*?+cd(x)|cT zkfPMo@Wh<#RG{OcsO&g|*&wF{=a&{GgFKYV$RLIhih7^`WMgDtWMBry0RsaQFi=?; b*noU?Addw|a{xuS7`Tx|fNUO+S_WPK_=1e7mIuV z9|gH13mCLJw_mrX_4xGgkBGj~=L(e=HIwwh`1>s~y2-VXrQuzi-h@5FNxE_CvX{ka zg@zc_ufn^~=!N|Y!~J~~M;W7umSs!f1t#aBEg3N%8c+H+S=i5hhP~Ukj4|vj(G$ml zOC@6LSW)etSZyVh8CCrw_g7%rHhNj*XMBvtb4}RdR5+M1IY^Pxvwn1>U^JQwQk>;| zVYHD8{J@lE;A5QSI;wq@(afNgBQ1Fzc%mgd;c%gXb=c8@N@_A%%%!&Ha^d@ya~N2T zFTKud%kMAlxO=MHsj_=)o0lE9yiY_TrV&sD?n_h! zk7`^4k7+y(o}kIs{3&oDHQ%s3c%CaW}SCD5)JX9ZG#Q7e0UwWxOqk zsk)gnnS0JRH|O)~{R6-`4qem;C)!NC)kWZi`qi^WWo%Lvdv`kIp=G12HZJOf?p$Tc zi&Zl9M$dB&EWw?!9cwMO{r=#l$|=&9gpL>Z8~wqM(3IEfC>A*3^iS~j z0&ACmjwRyf3zdX^Vk7%D<`*`c1e})8Cqg6P+!o&wT7Dkz!bUntU33XY)y=L(w?AV- zdto?>^fFy1osg{xW+n4MKoh+*0m~Lb?Nu8&E6Q*P;*=@@R|?vMgQ6%GjZ&LvmAZv? bsU4XUw#8i+-4SQ+-^(ucWG;QmS;N6MytHOG literal 0 HcmV?d00001 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 zcmZXRO;5r=5Qb+FDU?qY6x4$U4{)(D9z7x^CMpRKNxUuXP!?;q*)AXcH4pv(f0S`r zDiFN%nVp$;cHhqT&*v8aT*J8mDFzo(xz^&wwjB9xX~pNLLhe}ug*fEi8!7|R3@TGT z=a$EP*XoX@Xln+Bi@GNzMb&2OaeK#Z^xlqv9$w`*No2$Tk@$Zx(PB{re09GD~{{DAGRmAp_A~49LdJff+Log_y;p kUV<{|Dx^vi4@hy8RH_MU36B$=B&;WFL?rDgeN%Au3ugF>M*si- literal 0 HcmV?d00001 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 zcmX^0Z`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 q)h#n8m61UZ*%CdF`D}~~j10^`moYFf0_|jFU<0uj*nuPy0|x-YPB6d# literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh3b3qICUo<7EAm{9OIA%+&H?eV6>?(%jU%k}x2Toq>gs zK_Dx!EKxrvF)v-;KPf9UxrC8{FFm!yB{eOvGzYAVkwHmA(+ATi$E4ztqQqpd8f!)d wuHgLAqU2P!%$!t420>(d^gvdyF)}bRFasUOz`zK!mX(1G#A09vl1vO70EhH3?*IS* literal 0 HcmV?d00001 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 zcmah`Jx{|h6g;Ppl=4+zVPq@|7Ghw?N|;KE$b#5R`V>-yIC9*O-`0U2z>h+_QfQJP zuvmJ}=ezUW$LI1Lz$K17I09$d#PaPbk~94(t6bR^`FPJ~P^xsHtTrCD1cq}}Dw(P* zmec1sMV42QA!RA3azjOt=uF^gG_G->HAxox;|~5w_&|kDOEUg>7pCU+1qMMCQEpkN z@UZiT@n4vSU4hf4{LS=kL$dimZA9RD)UqLG$2`T_l@ zXm*P}DCj=SoilUpIdkXb_30VF5q2U75K6W)QtqmTGPI}4awgod(ra;4mxeiWrENtJ zA{1`KtxzVy8Y%6C<;tn~*(ZbyduS3!C*&HdIAY-5VGaJ zh*1zS39KMYNNLhCn~UkdbUI=%;X%`yZHP%%IMTx(#gIFebHbkX-#%)D$kd$A#mJZX zH6|gZ+Y84qFQjLd`MJ$QkB?oR&--(bZyu7fZAAFym2e(FlyU4Ej&q0j!%2>7%(!BX z_dZ@ZctomFd_el%f4IqU&2Qycc#B2y$a1apPDhSw-iiCRa3)%j-Fg>_S%UF zd3{#?NyVBlXiw9axpDPyHT@kKcK%z0;y7`15c8r)pg?G*Nne59Hh~hMk#>z1vk!!U qD{~4RJ=yu3tp0OM_Z7+}5HkD(fcUl?Y}SI64GVb`S(RB?s5}7>)Kg3V literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh32ClLBdXNm+zvjY$&G*mY3qTJ|4;4b!mYLeUq-t&pwO?zuP?K14s0-e#b;=$t2(6X=)GF5| zQ_*b2sq=6p>gjH1=S=8KVt+K8hW3p=@d8TyI<(4ADXgBIKQBTx()KM1UGsAY=)?dZ^3Fk1Fu8`A7y5EL^QL0?QxYog% zNG0O}+U{w0YYUZ-3lOw~v-<>&amn)6Mx~8Fbj5d(576hK) z{vzcUMqA(={Ot)d=m^C_O&x{cu?wx?-*B(rF{B8&3_?e8iLN#y7oQJDy+AgE-<7?% zB?AlZ$4X&}3C_|hMtiDp-8xr#DU4ACIY*(9`FUIzzWroMxM_mrwUWWgvd)2|F8M=(_ z^O9BPf1bRWjtK;J)OM6iz|`6)+$bc4kXsVg=}ktz@r*t@|pt=t5q4hmOe!2viFVjL`W z5pVpxdGd_M@8|dH8^9G#V{{nKic*VuW5ib0;>Ox?wXCe##@J^VujPjnM&?@FFV`xw z3_Y#vT;-^WX#cP{vuJ z2rVa1O@5v4`(|h6^XvTs0M6jZfee9$RGu4816R}7?MPv`FjrKJ06rGmy8;z2-KVXMW-L$I=LrM(uS(Jg1}nS(tI~&JT$%(+JOQZ zEXoJ%$N6sp1ujOvfi~XS-75a<$JaCrec=%}Zub8g9Th* z81RR&kD(!DoIov9l5wqZNCikRJl-PDU8hJ4f&#y4-cqk)VRoZ5Nk z2;e^PoB#@VEbEX1do&JgAm2oq#cv)-F-1zSm8jWlN6WME`q28J2~0~0V@SQ*%We0Cs@1xRxMMYtHakwt)P9*|lFUI2)V BWu^cC literal 0 HcmV?d00001 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 zcmZvZ%}&BV6otBdd9+WYRC_@$pe+G-&)_^qtEk+DOX$= zQkubW-yep<3^&6dmWq!fdYy)bbixHOv=b!-X>FSiV{KF_vcVXx_n7a-&D)J+ssufT zk+o~Brd?j*Hk;6{tWSv|yKtHuG1x`gLjomxr9&JcyOx8J<;Rv5?OV2_x*{V53 beT$r-u|=9Yq=oio4GK87eG9liCyVt9o^F*l literal 0 HcmV?d00001 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 zcmZXPO$x#=6olthZTv@YBc4Dv2G=gcMFl|+?8a>^p+ssTX_R_37aqVviP3^TxSTiN zn_+JE%N4*FZ3d6f*CyflKIK`I^FUc?&ufwC^dt;Jnb6rqr--MKO89EK6R{<d-ZvV~HgB7uLFm5Pq~?p& p+i)30+FYi>A-_vT&kvtKD7onXxnULfPBW)`c&MW8RMROBtp|upQGoye literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0K6VBsMh1!eqICU=+#LPl#0q`aqN4mFkHox`oYW$A1{OvJfvm)` zME#t^ymWp4q^#8B5=I90^2DON%)E3)1|5Xb+$mc2o7ut{*f4CDin$aWG1NCLqjwquDxg({@td{yN%T216lt!7oT zqu>;8!8>q=6BGxyQ^iB@7Mv)0W+i#0T@`T-nw_1V{dM=hdq#i$``hmTK1SV#M>rAd zPIa#vRTHsS{aUDYB=ud9NFOD_;tTOoR3o7})o)ubWMF*E5l&}6sVftjR}W+oM=z!J zafom{Yp*@54X8fKgyk_?9Q3=Zp$)e z@XkDr;BCS}GgR_kzuS`fp=d>taI_f*B6=)zXx|5mC9@kQgj3C|r%dMSgd;l5Crys9 zQEBcgv14?oI_vqBl`&#N_4;Nf?(0A@v0UE^WY2`LN_?E2NONcF>Bvkt)a$pRFle-G z{5iL5PhKTPcCCG0#YR|YO$HI+)@y~CXF4^N=vu}4swZ?J+iB`4_nSB57JC{6eJ}Nx zNK+d$f-RScHOo^O({ixBZUgnB;ijd+JzTxS2t8sF4olS@dSK0*wH`^^d4y|4xn(&+bW~hb>a{Qab`@D{65Y|+LO(xKW872JLde7 zo|dmddvq5wC-SO21#GX$o|fDpvW;`#YXBw8!pB=U%oo}Mukba%;{v}``APhoUHt`% zKl8-HQ6A^q;uRd@`Fy$o?_!DH_}an=-gT1aC4M{QFq=G^;T4a5vSWtPbd0m9b-=JY zmhqnBdU&5_9?w6(86Is=4aa6*lL0+oFg$;PW6qj*@afGYfWRuBFRqF34 zN~Ku7hWHP85;nD6{&BE;yL^IAQ)zJ>HyCH*zR5G&E}tF10WG|NgU@j*m%%iZ>B1D1 zzZfJ}f8!Q1~^B}NC{{!19fZb##R(Egh4?FJP7Zhb^-sq@! PNJH~**X`d%ji2}r-jcL> literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/InputSource.class b/libjava/classpath/lib/org/xml/sax/InputSource.class new file mode 100644 index 0000000000000000000000000000000000000000..799b311667339f36cb5846b0ecd620e0d30392b2 GIT binary patch literal 1772 zcmZ{k+fEZv6o&s@+5*D>rJPYwM5Qgt$iYLR!9*g4gs2h2ozdxZrwr+VOs583!00RJ zz1Ny}NWAbyue|py^bL%0tvR&AX69ygXYaNC{rzjL>Cb;(zX4dr&0eGgCYw&xIIP!< zmU(DwH4fVDPP6S;vKMKA+`jq3G-_s}YCJ6OOUo7LJ7||{wzX9e$ZvO#cU;GARBzFF z>!{_*I-hIhBUjRaH0uK6ez4sPF7dWGUN)>|g>nUktv%B*Emt~WQm&KqSeg~-P<-~b z-LTztfu2HfS0KI7tVj(#7|}6^ArjfP8}dQBUY5=ivs{ym*|f~suIbqP9&D!FJ-a0^ zy`5m6ZW=F~^jF-~ATXt48WREoE$Qxb>`n#oibX%=w2m{F5g4SDyOFYtc9Q~&e*8Hd zbC@M~ir-Mn!uLK3+R#rt7j$HhC7x<`Utp|IJZXT#3p#qk@DQK(7j^WZpBPCd$~YMc zDbD-?+za~03RiV#p>lM8RmT8yazn}|+~gzjoi=O!6mHtw!CYi6mw4u=HZ%Y<#Tlg7 zI{iwqCvPPW-by6iN;lIwL>V+7^c<$QRaynDnbH^JK6qhydTJyC+(#N)7^PpjAA~WC z(;Ev+(31r=DUxF~7AP%##$;Dz$U}QdD$fYzxu-PYM+ZuL6XP<(AZC&@PpO&?X}YA@ zPS9lQzUFL_=2=zqC278*yw?euTt3!3-|@a4c+Zv=KViPB=U49yHRNqXE8Fp$^;*SR z7jY@zGdyi>#7E4(r-G)yjo{J%?>rf`3H0d&$;UtzRFLm<-H!y2u=vGTkOdXwS1bs9 z&~YFo734R8{7C=_J9ZgY0V+1#9S;0 n{bdC%j`NKpvM#ychBw_sRv25S_ e1Q&CSfv&67gYOnX@YOyB?|ay)BS&s}7{35?4K@7$ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/Parser.class b/libjava/classpath/lib/org/xml/sax/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..e644bf5416c7d3493595ef831e91ef3fc72b5902 GIT binary patch literal 587 zcmZ9J%}xR_6opR_7=A=x5XHaf5;r!kU73K9gajkTxUEA&h79eb(;@h3E_?tV%Gegg z8CN&=p7Y%{=YD>@e*n0~v4;YIFV&o`mk~|anm#aj94y518h&G6BJkIV<3q7(2T{K+XL(|n3+OGQO{19anP{F?O S`Z&nXjB;pp7SO|yed-&r6qdgL literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/SAXException.class b/libjava/classpath/lib/org/xml/sax/SAXException.class new file mode 100644 index 0000000000000000000000000000000000000000..282aa37a78444be1f310f4a6581a325b7bb12dd4 GIT binary patch literal 1117 zcmZ{iOK;Oa6ot>^(KN2K%dH!{CjhA&Vs) z1uPaJa6v~N3j!;a=Q}UX`p3@Tm3`cE1Pm+a+P#iF@Z??{=E4(iC{VHfXP8OLwUnE7 zIPiRTzuu8)OERq?Q0P0uq3uRVrp8q$yO9PY6_X(#sA;6Hl_-^QR-m~~_2WkxvBsSw8H)6n zstnJT8qIU8&qdv#g}cyjFG6j^;R;0|%Ge-GLN^t(rJ%9B<{W!ZXzwZQJxejQgsEYR zMaRsGiusaE*%D>+<{aoDjlQPQqX@bahbPd9QE6G?Wd}J*g+Jmd`%qy=x2@)H7>%#c ze=!}G@7NwU$GnX@Y|uP#!fdCcza_1oDx;z@=GmA@Yp&p`%42eslgmr)6e+6(K17&! pSb2pJ@{dvCmJ*j{yj92aT%EGwAK)YB@rk_8DP}2Q?ncF2{|Bj>w-NvV literal 0 HcmV?d00001 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 zcmZ{g&rZTX5XQfO(rQIe6ywRn0}7Z}iAM~HF?wn^h#_8=vZ-s@E@_J)zLh5u4?cho zWt;`#0rfI}c7F5C%zl2oe*oy9?w~+u=rr_ZapYxU<_)eN`#QgufesV(D#y38Ku&U{ z69*RIa1H&b66`CLsJurgHd{l2b)(19MG>22lwcF8zDi_&8joc9AV!fS)O;O?Xed%; z^3|i2KdFpx>aR`ud#Ns=-t?cvi|`_mgx(-eRT6evLo<2DOs)`|SZ0|B7ZZP>1b3jP zX&~>E+3D!t`_D})j==}=-vI@V_%OB(XP4}WeW^Xi#@nLovUM2)8nAGJEsn}di2XKa oMxesh2=tgVtld7Fqq?qe!DMHlaImCS3d~~{HP#^Pad!dx-v{_)PXGV_ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/SAXNotSupportedException.class b/libjava/classpath/lib/org/xml/sax/SAXNotSupportedException.class new file mode 100644 index 0000000000000000000000000000000000000000..c6fbe767135269eb3ac6965a5896f420b33576ae GIT binary patch literal 474 zcmZ{gO;5r=5Qg7@LbW0&it*yXLZqpCL-||G_!5`p{ zGR^|=fO?saooC*e+0U={4*-3%Y?KIRIt|=;6uOz1yZ-IdNauc$Bs$II?0!C#Nv?Ek z!y+7SkUv#I^+v@i9}>!)?wDZR>6vs;#&!)AR0$1F#d1_c6PZ4WNhk?TPftZS7O67% z`q9dtRYqug8*uM8gF$y}2Je}{b%GtqEEB(%sP~wQsVrz4D&7Rm-dJAm5Ez1sDhcVzB7TVb1sJ4RG?{a1Y n>THd`kV(T@O9LR@7R7dF-Rf8iWJxF5&PSdI)2H literal 0 HcmV?d00001 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 zcmbu9TTc@~6vzKlN(*$MrO*XbuHNXjP(ehbTtbM(Cd80b3o*VdWmDJmLfWF`%{SkD zQ9prEG10_^;De7Q`U(67ehcF{v&&NG@}hm1na<4lpWnIc{QUFv8-OV+`QZ^5ER}PK zS|OjP=(R+8WpiCGSB%@Wtg%xyOGQ7t0{y41IHv+_JG)zXGn?8L2(LZSpX!OcUd$!Z z)v{U4CF#7fSE(8WKJUnzMdRLXVaq5Bh?IbmE#-F$#iK3Xf>|`HO9I+>v(j24!dfY- zS4-t&G$Y_$Eo~beXhBdx03m^hi*+;;Kp4G#^a%90C@F|Q6$s>v>bet8?|8JCgLV29 z3>;lg+u`y4c?B0RD9}kVYYnlsj7L*^KCEDb&x3Tn+7NmN1jZCx#3c%cb083P38EP$ zmEsHpkA2crUJjUx}~5E?Yx&%(1CXPLeiz(a@M$GauL<0+Dvi`7$t)i`hLCe zuqLfMtSD#FlQXH&%+diUGLG^&VWGIar=))#`OB>|(A$fl!sWi)rLpAMCO~axh28v;d=$UWY z=BwH%4#}ix@rj5x(t08%T{7NhbgzaW_N2EZS&oq7E#!C$Nj(om9Fj%jf`qsYBwvWz zfNn6sb(`Qh{pYNQwb+1JU}(aCTJ5!`V?KkC*(@6Kzu@Xy%S;)xKcn6D>U8_OwI}r4#OYx?npI{9wBn&z?5^ h;c85;x{LAL{wdGDT#f0;cQKwnZT#ESctN^Y{0qQBVx<58 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh4ORqICU=+#LPl#0vcgUmv&3oRZWcb_Nzk27#=^vPAuy z#JqHU|D>$cknnxPSKea=HYQJkpVepxZpDi%@Czow$I>4>K~mLl`;gyGPZ7{0&y zEcJkoWF+EyJ}zoKEHNBZONWy*l}cNcq>x!-Y|I(s+W*F|M8kejGUZC&F&xb)^DP4p z7JEda<|XZT4z0?{2SI{DUbaRUx$F z`mjMG)6PGZ!|2R-u~Cv(Ohc8?s&?GQ7b2bLp`54@r@kHz8CK0I$1=FMv{v$%VblJB zw7muTj{~4hXgst&j}ww^6-V_pm#8x^EYJZ0ExNHq)amWftBx8Tqd~c+XjXD9v@5w~ ztW*na?)5JBL F`~@8ICqMuI literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0K6VBsMh5BpqICU=+#LPl#0ve?iV}Utl9Hm#q|%bqVk3427Dfhv zti-ZJ{hY+SbbbG%tkmQZb_O;^1~Fu92rY~ZT$#l#smVEsMX4!_3@jR+no*1lq8dI3 zLxO?E=cQYN#MQBgV^_(YSsYxDnw*)I2{M)|IKQ+gIn^yQCl%;EgzZLpAZviGV`N|k pVpgCx*?>M^XW(D}`GlQ;6H0S|X>O=EHv^0hln3hL0g_A%ya3X{Mv(vj literal 0 HcmV?d00001 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 zcmbtX?{gbh6+KT{{jj}h5+`z^NJ^E&X=KT%5{H^Lu1%e!0kw`oV`CbpDOpP!dBa*# zq?Kz^Xla`K2MlSTGfepshPEF%)7nkb3GEaHC^Nte-#Y!sFw6i0oq>Mpw4C>LBPo^( zA&kfScHiE2@44sPd)I#d)3aU}SBhT*{8uYQ|EoTr?MtH=N^V4^_&bcfcq7v1ppLz`mufl{7mUE>ROb=eZpZE}60u)L2w{PM0wy4G0(;f~ z)Dd;WC30BD7jZuWl1RnVZ67Ds2U)zW)N{6NmJEBmR%*noBKGP$O-xiB6T*tAAMl;OPVy2q+d-t0dq({UYLQl@ov(`hwB4^AK! z!lXc7drP$pWUG8l$5*kb2LXIt$5uq;-ANtC5DnuLBOX37J~b{qo!0Rrz9A5zlv7Jp zmEaoX#@aDZ2w_%W!)k(b6v1;r^L)dw*_XHEe|+|wS#Vf4G_bv%^BF?|iCemN)np>) zf@0`KvDnN@;Pe_ocgl5VJMM&;*KrQt>_!FWL#W=G>r&k@`Mw6G*k#BOQK(dx1k&xO zymWJIAZ~8u)D(3T$AJaIZjiHZ*?j7#ZItM8ea)P&ESPQS%DJWH-nVo-g+*#qsad6C z2Jd=U5v>6iNabdvb3u}IzG)T_2jOI;Q7f27EjgbzH=Vm5l6$3+*uhHk^EUt=e>fNT zDe}p}-nUHnZ5kd)+m_M)dMY9^S;OJUph{(>k45 z!RFTKZteqz82+&G(5Ie*o(Ji@4_oMi^Bz&pS4DvZGO-_`Czf8uwwDmQj_oI}BYCoS z=L-5`%h=DN1?r85rykz*RKpava5^W%MDtezJ-DgOzL144| zHWjd&Yl_c<>?z4-+6~nNbbu@!ArOYg!@QG%4JwdQ!mT*!fqa@E{j?fL6U3KC<1b2n zJdBSJ<0@$JHfY;OIZ)=cO8L&?E|&aut~*gzkdm(BCZqvOC`dueU zJCjLV!xKI%SRKjy66`P9{8X&AjVYJzDxe!V|0i$J*u} zU$D5R;c@zwce1tkS@3A;r7t-f7uf%Mqgphu0$Yxt;b0^v)4%a!j6{NOYX?IzS${O- zm+Or;QBFrgq_X)g@4d@6-{s}`NKh*(I%ugCduO6rJ54QKhSXU7BWv&Q zExZYtZ57gt-A1Wa8@nJJgY}ajPF^>mW988hFaNp8H-NNQ$Bb{CX9Zg$eO?jl5(sU* i4bV~WJLqbkRGrpcReI?EQT7|20S@XOeGhd)3!^W$8i~#T literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/ext/DefaultHandler2.class b/libjava/classpath/lib/org/xml/sax/ext/DefaultHandler2.class new file mode 100644 index 0000000000000000000000000000000000000000..72cbdde85b3b3af54fafc3c336a45cd0a0ad4009 GIT binary patch literal 2469 zcmb7FT~8B16uq3OJF`n!w%gE#WaiGy?K$V3JG1=#_xle3tU^WxiNH+5tSPO!u2^bIp)IE5 z=oi)2*@0?Qb!x835GL@*n{-C?CN(Wzq6|?2)80G|R-i4dqUtV~3N~IuMYpX_s}alCNTD zU096Pc^E|vf_6|SaNHy?9w34f#4!CbN3JyLb!spIa`Ggb&+~Jsa)!f6mOw<{5g>Ua z(Wy~mcrvUqEU0WV%KJ*-G=Qd;T6@Xiaw7Cl7!pyPIm|Aa=ufzgcLGn(Ro%vUkm{5d z;%J)hNs~b5Fjz$bFEcd_Rd<|mU=o_qxj9;+Y~M{T+GUHPdAq&wUAu>QqiM5Z!!|24 zEyEUpG0||Xq2%9tE|^?aE&A~YJ1}fI59G3Um7Yj@vbn3UI1tzwf;4R7t8m1=)%bh6 zy;MNZeB)E-ZRBSH5D8@V$6CeR& zI3o@2NHC6Z7*`VlW>K8rsUKp+1A!fNAtw8QSPz7_2lqQvFQpo);dUckuVfQS`wtQ&Y_3&>Q1~6qy*OcxoV%gm~{o)dDS-h(S3TOZf=K! zcD#gFt{qXFCty=N)jd4nhDhW)A3e{#=0TR)j!5lSBEf4H8NWRN$R$LM1R~o4dEGe; zM7}h|;SlY6r6WzR-@5GEyTuF8yC~22o@&<0s*hF-5krYVciXTdtv=+7XAQ#l(_LA z-fa5stGwl4Y96LX}dNR?c)8hbp;JW|`<*phFm})RU5l zGLgK#U+K^ix`kD_4Hg06+?)OIbDPH|y7&)razk(@WvCx)oS8zPM>tw{Gxu-5X@aB8 zvfkJBDrLVmFflf^&xFw*9;&Gxi@s*uS}_j%h0p$(_$)=3rKvW2l<@Ax(`oH%o;~KF zzKj!182*mrw7S+I5Zat0AUL5dINS^FI{bDSanavEwz0E;>^6|ShHB72_HnTO57$H9 H+rr@oQ@Ldi literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmZ`%UvJWI6g|H}3xnchgUJ|GrpLam=s@Th>1@fG_0nyOX(KAir+#L z&7u!RU;R+Vd)p$#b!pn)AI>@VoO}8G=lc%;5137*f_bszt1DWF1gInD?_4(%+g;*;#jmQbWii3uSzF_Rza(*U!d|i zf~_VXU?10Muf_mWu|_8*uhW;wGZM|wy03RHQ0xAJ{1L70Psn}!-ZyLrd_|LYE#9>k z>P<2M^vK>r(s@M6kFkX(*u&GP;!doZRAe8!xJ5OqsNpv5P*oZ~HWL?%2w%|rM8Xml z5e_pW&{#9b?f=RBO!6N2iSs|BQW6zZ^e!b`Qk&U Ox1Sg|tn7l6d&6F>rHV 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 VxT3wYHcuy=Ar6c}yJh^_{{eIU_eKB! literal 0 HcmV?d00001 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 zcmZ{jTTc@~6vzKl+AXw$tw6DYir}pmU`0j5Vlg2xX;KBP>HD^C6 z&&Eq48Zq%v6F-#koZT(0?e<}3&di+u@0>Y%=Fi`gp8(dd9Y#Q4p=s6Bqq?cKwIlUF zH(R>ZR*TK5W;d-uy=8_G6o?;cFE!QF8Z~vda;R7BFcg95eyJxB7;kkdrco{I3rrPz zx{_@fjarV*+ppTTUgz_OX*BdFoq9#L1VlkVR-0z0-so;ATSmjM^8#b3bXg#{)7;l1 z7{ghKNt_Xg6;JigwTh{8M9SPOYnH)lZ!>5g7;S;YVt>9qSEb~VssEh3OXbq#C_+d| zoX4C%w5Hp8rfxrcci?~GY?SA(}YS`PwUzS+x;!9qQm~%zqYM0a9=X9=1 z+(1fTlG5oF!YNjPbs32)mg$`0_n!w-1vlWTgvx*z0e1Qd&*C+STP%)|xc^KbY`V=M zknpY51gY;zgfY(6J&6g|x-Styl=rqIB%<{DOU;f|)gKxB=i*+ix#w27ZKxP@7y3d7 zBEUTA+5pp>nOM$DB$_#8Y6%)+w7N~RpgENJhWKa4ZOU;9(3mIOLrjw;T_?;SK`RE# z(#U`g1!CV724u3|aZcbX=Gj_cYl*FEY^B*+Ve4iu&>R#JKc+ytl+zxPc#0)F!!k-v z;8_>$1*R~R@f`{+xWBvpxE{mQ!Dw1H{TCL ze(fu!Hu4eY2E}iD#q>x#ao#JtlF1%py;skOQ?Iww3GW<&TR-Kreu~o_Tt9j!eyoi_ z)(2vJ9KqraV-`K0A=dmcHV0WJ#QHIU#a+rQdP{z++#u^0v3`$Wai=ruf%8l9{{VPi B;cox{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/NamespaceSupport$Context.class b/libjava/classpath/lib/org/xml/sax/helpers/NamespaceSupport$Context.class new file mode 100644 index 0000000000000000000000000000000000000000..f109d720624bb544a0b87fcd8e9d3c219195a391 GIT binary patch literal 3777 zcmb7HTTmP475?^L-4JWQ!m=R-BP^SXKnQ`cT`*2@*WMFSTbnX)>KY_N|?apZd~HANtbiIlC(%7cxVc zVgIxLp8uTh+`b?F@Soq_2N18-)Wyi0mda?^Tx3+8*K!#(p~dr= zOgd}q8A$7fwrIHFkWh6|y`n}^sy-VzIdxG>7!t}eS#2h{__R8e(j@ptOpUyeOht~X zxjBQk`y_bs*`%#frKPlaO*hz)z2#F4Bb%Jc8(PU`*|avJ=2OOKT!POsYdVgTsy<6L z-P2kkl{@)43DTqlh2PYyY9!Nou6V)(GEP9#Sw_J+aZS@DxH4*%KuG8q`G2xNMqI{R zGPkEwLer*B@`*!9J!u@4(Au)OBdy~S90TcTtqc-s6;xxJ7czD#@S{$G+|oMEUv??* zqMW6G0tH)G+O41hl`QR1P-X2kDcB01m-bo|w6X(9JhqBoMxP|a~IuQJcSnOvtV~BaKgn9yA-%BX`cd*CGA&G2A2e9 zBBiNW30thXYNyOLlhE9xwF9>>Pi+*e;`#VUQCw)O{bEs_vHKDtBA|$P#KIB+I151q|c?Ch1_R`1Z zcSuzrM9DH$Qs#QNIRa z7ZnNOD1jIt5XVp{V%R1IQ7fLpE^)jhBMn8z2k{x(-M^{iT=a#|9W>m+miN#*;X8B} zhkr*K!CP>12}o>wh>FmAI5Ke;15~26RU8{>r^gB3Fv%ltqRux=?ZZgt#@E6a=3sIj$YQzNU#5n}Td31>9&@C?D zpipr{Okr3ga9U`X6myssN$BDdu85Qwa=;3!81e!psb@K}3phs-ci?$^-b#b?cR1*F z2Oe>m8|vPKLRfox9ZM)9p}W^n>maz#et@ab@B=u*%dYnk8x1>Y^H{vCs&^IB`<;HL z_$dbIaInoc_cr`=vgRHxQcA+IFB4xvBdx=<*3y^yhvqiFdc!hr#KVrTvy0v*+GM|T z71>@_o8RfUu!<|aZr^aN%S?EY%}iwM+E~Um!veH2J^B7m=WnR?_eDL_!YK z;A2}lgxmNMULexCjuU2?UATz>e3`7c@e4Y^1^3`xvSUfWi};E?0kdSEn;}@}WDjR} znX~&4ltUJ*+Q-(?ww;_od`Kz#BPzs4@QaVJL;T4M$C~nBF`Qtr^S)YiI%YfN9*Gv* zMAx~g;3gJ-rJ?v6x%#BUyuWDPZ^p!p{SvO(F~w-*ooX^qlk2{RmpP8cReXId2Fv(A z$oM~L;{IhCx2UtaX#86nnxw=OOh#7m>i?LOop8%8l*^tCObY%x-$uDi(J{&?PVob5 z3-P*&Z-0O>BIG5LaK?ymzR&bbd9qca1(oPyDp8^*Tf2Kr?BQ!AxJEN3Wy?DWVIAEY yyAYHE2+57;lYA z(_=|2AtWIXwg6$X6H>rW3MwB7#0uadPJk*Gsbc#8iXz27I|-0KmUFv%dIm|RWPPan zy?OWEbMLwLyng-P-+Ki>7oHBHPNAh>&L$Ug*VmY%mJ^laG( zA~P?etxPsKm@nrHQ@1jOJTZmRg}h}fS|x?#>EZRH z-oh-zg2tQDWz#hBmb;_SalIZQZuqeR0jMFO_p&}_q_d~YjO zhK<;yuz5I>H%803X~P`Xr?ZC8TS)8K3Ej-d+TM)7ho%Uv;u;bXIba$kgDv5=<|K)| z>ncrO5FHBb*TaJ#?bNUt_43xOVH>u~+W`$XU~2^XajVqgHX>_XABOmZ*dNxg1+fsw zvyTlXj&9d*1n*=c&yXA4G{#Khfy|=9zSh<4zIsPkix$hJIk#QH^!P3f1K6$*6py9j zcSkUYcL#B2g;jgFQcESv$Z5C>Y>=>Sn)*_@P+U?-)W&s2uy3d)aAj*KJ|Xb$)-a3_ zx*#uOgr6rnUF)lf*YuKvFQ+rWNZL{Fiw*51{!(=|nQx2EE2Y)UB%4byl)p>+*EYZ?*P zyc0T5)J+-F8`f}5n3>X1i`qI}wg@wrTOy}&dc&+?ojS=@*}FzWcix@8a)enx7Bpm$ zqfgp8U2T+P-_%eP%?Nw@vRl?rlGAP14zNmUMHj}9HyDdt`z8#8a^&%+sa83D($PYD(L>!srWMT;V!g4@GWx4QchU`T0byJu z{-=3UJ%c#Df&+NA2EaiNz#Sfdw`nQWeoUgh(qD<$O#nv|lZ@^^>pWW1*ozeXuEUB3lw&)*rYsbaCqJ*EQ zVsOa#&6*|r6h7_Rf5UD-aIh#U7i65CVL;W5>^#^QLf5Z;;Cw?^kne*`%>`{M3QoV^m^%lm|KWgYY;T7csKF4+x zx}L)0F6^Ye1_A=JI)YBl|EkG3;JB#|;q&-{YkbT9F|G^Q#%yq!e9&fx+dlDNPJu z#KI6x37n~Wfoybkw`H{HZ2MB6R1aOp-*O^P&GX=3()MD3YxVz;Q57f#JyimCrs_RW z%f1uG_0Va`sH%lGlE@2M)oCr1$tRn+vhT`Qi5CX3fs#P^7+WJuR>MxvJc1cG--oLC zzHB-ElIzMi)=(GwQK^lI=cr6aC=(O7Y~T`YI+oVLC-_vrco9YoXP2(s(Ca**ptSU= zi7O}@xGHer7-8m$g=>m-#HUB;4yE9_g;9JiaDM7Uhl*~`Re^EMMBQ$ZrnpRPNkipg zd2r3h+mlhcOW>>qNkcr0(Uwd!Qh`f-lC-6&fw{hZ+-yhEX%6E{mabUBAd&kznX2?F z3t!_KN+n`lChf2(uy}&8zkZ}mcP5fAeD=PbG0^h~d}m<>w@l392MY`MQQ)-Oi6R*! znXcpJW>Idvjk^Z!2u$>jtDoM&JuLE?dBI+|!#-Hh<>pM z5WWspq9}|^oWlbPD_G@?NX?03r^R&rJ&_-!i6uNz_q#^3bv@m_+%mC-2L|c_Grfe} z!fGtVO)tWx6EWG*buiH2L)6>Q2sb)zJG1!+Bp`MLE^8;$<;~B701BVf04HBj_S>um z>azT&I`vp=gq_HhtDbtt#+K%16Vhskx?Vc+2$y|5dS8 znl0Jl5c6wqU_LK#^zA|AJ-+9l`WLPo)PKj)FI2Sr4iEqAP9CdCN>OBO>#U~Cr$|** zrpUEi^i9eD??i!3KZ-?qaG!`(A|KMH8j+7#PCYH8oU$$834Y?9Nf!AOKU1tK_bE0w L64>NQ0na`FK#azU literal 0 HcmV?d00001 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 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 aOY9PfhFIC+-YPgoqkF0&+Hih!7 zEv|f_*14^vIyR7I7(3vH+;X{Bw>I|my3kunl8^eBVKHBcWwy0)yn4BCc54vV=xJ4%JLGOlnLrc&$ZHnF&B=Q(#iuen5Vl>16 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/xml/sax/helpers/XMLFilterImpl.class b/libjava/classpath/lib/org/xml/sax/helpers/XMLFilterImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..992aa34104940fa69e72cae6717259c4f71407a8 GIT binary patch literal 6984 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 literal 0 HcmV?d00001 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 zcmbVQX>%M`6+KTHYvfVOvPMh1$kvcJwluOe4%wsN;K))UN0t{kvScSfYo;x=J?a^E z_ZS%n5FiUn*da0dnuP5GRdI}P75N5L;ZFcxsX!Hcr#Sa@tEYQLDqMW zJ0r_u3SFg2v9=OFwiG7=SwU3)!d$HzQUg#$w+8(tX+drbv zIy5||keOI5T2#)jv%($_-EBc)Y|+fwM};R(mL{cC3|uTs7$cWW@|S8|#BI&c)@ zX*^E;aS@~77&wB*6x!VgaUhWh4S))rBysHQvFLK|P7#L$Te6<;WUkoYE8aRd1OxXmn#717Zs#Lo) z&MEZh*w~fA)X6BiX)G|hafzp#YR#Xm)Z8M=#60qHf1fe%G@ex$NOFp8B_&3~yXN`U z%2Y|NY}54+Ak)AiwkvF-yR~W*O^Nn1ad*BI;zZn%D{6npVcQ$X=zWG)hg?r!hsEhY>vNVNLvsT z_N|(0vsu$h1D2r;Oq4BYsS2lW3%c1@!r^)crG!#lUpDZ0d?6?b^+k%B)V;nGO8+GT zFW?o0!yB=R2P8T5FDRzS(1r1-sbIr(1K-B03N6KD{#+QBb}i|lpr)k6Th5Zt zl^%P^skqXJ&n?^hD3QA+_&+xALpk18bt^^7^OzY^j_13zqI{Rgj-MI$37#huQI{;@ zrb?!7N)#^J)hb(#?h%}pJ4~WM5t_86vGhf?BK!y%6~`5fDaWzg@v`Z87X9h2s~7IW z`&f2b(Sj{VbA&W!{zA&G9@#KC_H!3Mhq$ksZz;ZI(aWbJoKYN&{7v-be}_A6V$W~+ z-a=gPq#!=Q{l|&-6z-Ir!G7F@eS8zt9DfCClBZfYW;E8w21xTnI!}fdG*W-CJ4E6+ z&7HB4kEsx|#1n#<8~GDDZ{hBR?17sYekVV20|)cBFuFinhi~BCI_G{W0bJy{CGxk? z!^${_%Q1_&$YL(EsBk|Xpq)l-L|5{fY%B5olO9b zGn&G18Ye_nInos9qd0@LjL+qlrk_g!-Oa}2&S;@gQ2;lm;Pvm3xa#W~TT zi<$M2Fj~bp|KL*mg)IKc1p8aeNLOT}3nf@I(juP&p^^HfyTWTF>2pBfvlmlqSZ;-W zF1PCEH;_6f@A)-2Vw!b;f5+^m073Tc{yxhmDWRWZt_EQD6G-H30vn5|sG7hOTknfau0BW8QqKkh z6?bvCcW3Htyd>|3jD}WnMy^pyM-i{3Q0O)7tEP0Ze3eP&1b-9AwoIALQvP zd=eoB@l||{NQyo68%?AZIYTRn1Uj^aZ#E~;B6$>Ugx^F~fwqBw(P2$%zY|y&nN&KdUZDEs;?EfWx#Zmqu8s)!VWBY#r D3E=a> literal 0 HcmV?d00001 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 zcma)8X?GJ<7=CUIoe%=Wu#`<00ikJWBcO;>mQpDc+JY?<>OM_w%h1V8oS7h1WOLv5 z59$x#D<02jdnf{;!a4pZkI$V+lSvvlen{^2-gkN4=Y8+|^Y6{u0Jh@?4GjXD9d|r) zA#Y_o<3i@Fv+pg< zDUj-`91r=fX^(dbEbew}&o^v;*szK+j)jz?y$;&zpuLWqYo3>`K;sLhZTkBJ9&1St z3&gseoJ`;`EJ-4PMFLHIrY#4G`BCYfG)66{%sE-Z8a7;0txKCR|E%c=Z0Y+yG10xI ztSb#)mZKF|-IA`lTt1?7;?RYxEchlv($FlhDr#k@>rDALfz?>6VU56ssK^|+1M=12Ma@3i?20W=juS&s`E9!cfL@U}D0lf&_8kC+> zbhEO{BQ2zn7f3(cC)3IF+J&MYiZa@*XiuU;X`t&2b}6DgC(v4Qt;Ub}fTf2M$l!T(Z4Z5`Tnn{#hUYIN zu@|IuoPp;QhXt0CVHMy?m6E^#9MsT7O?4bjqFWWgf~@6uEDM1{N%Y{bz(R|B3D_ZU zFbZmvG4riGjN%%41)i)&*%O9KN_6Fnf-l_!j-g*e-y>y9jU$Nx9B1j|jR_elVZLf= zEZk?VkKiSR=b%7yOH~z?B+|oioD?|PZP;6VJ*-_lC&!GU zH>ymj%5ILNBbp@vtyFXZ4W>Az4Fag%w1l~%*1-pEsQ7A||C(s`CvyMYm>O12ol8?IW`1+Vrv~x=3+eusq%G7s4 zVa1Dg6ffSbw1gnNCH0YT%L!-6$MK%P+EA}PS|mpeTNxUadXWEI9G3;UN{bo^Gkhsc zK1eye#ddU=FZh#sp*U)pSv{*BQn#pHJ$X0d&wJ+*Th&rW0ap4jTx6grQ!Pho#>`#!~6XYk^USsWRe!O>}) zxN&+GD@Rg8(>Qg9VK&l!6VA}5qv*%WoQ)#Ov4Ok5aNy?zR~985?iCo5N9iJ(F^RQ! z2b*vaX&_l+V8@oZmK$$vbt9FFyMC(xZ>B zM2<-o2F0MS1!D_=RqMm}C>Y1^Nh!>u0nKhwa+XxQ#T5Nc@NS_6w+Z7NlJYLUIPUP~ zAAFPVVFZ5?;=c&$J&fURz7_Y`FCQ?0_seM_2tjgaiZhikRub0ZGki{~Y0kdDmz*8p W>??fD**It4;9JfFzT>S1eE%Ob>S(k8 literal 0 HcmV?d00001 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 zcmb7COHaZ;5dOBj1W^zbd>e0|(Z;JKTuewz8YO{vG+EXSE|#|0wj}&3J!w4n1N>3O zDaD|8@-jQmZ@!t?kI%Pv0OvT&!C)u{k!y}rAk41RVmyAVtax+w_K~(o;lOug9_r< zVqc3P?`vqKXnN%JIC%$nVT& zWrAVt2ft)o217UuwZ*_}Y=-LZ{Z9Pv9ak4i5}FK!t`}(`+bTX!adz;tc+WTjU6%d@ zV30-^C7C13q?gf~Iex*?^E6x_8Ha&WER!rI3G}XzmB%Vd1X3p5z}ghVCe0u_dwlYW o$`ffR%u!lXlxmWJ8n!4Nci6@bA@7o&bjVU{k1U3Lk_HaG0O?bz&;S4c literal 0 HcmV?d00001 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 zcmaiw&q~8U5XQev(?(-$wOWsY;-Rh3pdM3tDS8TCBDrtl8ds8C*d%=~PX!M?fDa|k zrUgL}FY|AI^UchDe7?N{xWdqb!*E{KDkx-`2C*iPni|yk+lMIA}!mQ eT&~gosSpx5YZOj4)K-Cb9AZEk3`f-M;P?x98(;ze literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/sun/misc/Unsafe.class b/libjava/classpath/lib/sun/misc/Unsafe.class new file mode 100644 index 0000000000000000000000000000000000000000..809f9b23a7c143223cbfda9359bcb0b0821bb90f GIT binary patch literal 1550 zcmaJ>+foxj5IqwDOEw9FI|z7JlBh&PQAtDrr79taRY9ucZP-l0!e%$MyHWWoFI8e` zm5)C7QI@@vg5@Jd05VbE!qnVRlsnYX6HD?&k-A#upx z^NhjGYG!-?P-regUqgl&hKgMoS%&_cX6UBwt}yf@Q@ae|b*n5?FhpaBp`X%oG9Dq< zKn%U;qsm3y6t5e#ePQqLeM2w|7cGq&yWG~jwREcJL6rF11KnYWRE67=$uN>kol~M> z9FqzrIyxvFJFck3FojE0f*49dYuLJbyv0pk6*j{xQMEem3TIW!;Ie{QhN%ldFcVz);jC(!a7cH^sWD9drv`1SB{zCQ7e;xzQgH_+N0Jx;YG`=UVtwYJp5=U{&WzQgDSM? z^oySNc%1Qi!`-&a!WLyIcOr-^?@iD^3)xf}2rYQfL<@QUARLphX!u^HH3T-SN3Vb?18} zN!+&i@fvr;>41&4=dK&vak8>63Cx>i@v%e~lJIV&%GGu)fp zlSiVKtcIBi zwweA7CH)Q4Ul9LvCSjOZfC7CtsceyoZ=G?5X?2x41Y@|48`9pyEopCKPTC|=(x!1o z+Pkx68=Ncn;5`UGeR6ypZcvtdV|( Ib=lF&e^pp^d;kCd literal 0 HcmV?d00001 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 zcmZutO;5r=5Pic}rJ^7rDxSOn2PUC_Y}dvXwk=c%2jehtd?TF;J#hvXeJ%Xitxz)= zmr%nF?`B3Cg&T!hKJhiRX6x?HOhSGn=Xye*9>MNMN$kt>z}!+^8FXY;!6DcQb`!|( ziyh!-apo`*W4`^0wU@MPb2Me3jdhNtrGRmRvm!Q8X2vuhr^8tNhDzh)nVAe$-JM_E O1=O+2b#^jU?SBKMb!8L) literal 0 HcmV?d00001 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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 YjXEKaRRcS8wWxNnM{0(BLJkgo03mRlGynhq literal 0 HcmV?d00001 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 zcma)%O-=$q5QSe2GmH!<1W&+%_(NjHwT6v>)dWp6?0be*n~dG2=`nCDS0pYxfQKSf z6F2VMyjQQPQu*p<_w^0n8od+|VYsS|aO$~Ir5Dl|>!sJ$h{?KC@1c5dcD+dv6M9Se zAw?z4i?}bAyiaJ}YNP#_&^W)C6XH9&P#GF%b&#M*=;qp}S^ZWh_auu-5&F3;Wi^*h zhy2@&{i|LP&hmf3+z_%yTf0(CbvSwYm-Q-OVgQEXKfz7`hBf6R4jD);w>bLbMudzt VjDZo_ter!hupe_GoUlgd?g3W0Nvi+= literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/sun/reflect/misc/ReflectUtil$MustBeNull.class b/libjava/classpath/lib/sun/reflect/misc/ReflectUtil$MustBeNull.class new file mode 100644 index 0000000000000000000000000000000000000000..a588d8ca5ec8b639ec022cac6248ac42eb05f3a8 GIT binary patch literal 392 zcma)2Jx{|h6ug(F4VXYfVPs%Hf-+#y71V)BNJs%BKDs->fGgLL;)MUjgv8Jvz>h+_ zq)0F!mOG!H-|5aDpYIC*$JmY#5cYlTWT_vm&MP@LK9@I3abFp`cUk-DOkdU3MhFSX zOuZ;+m3xxc*^D;`y;I{%H70ZphEqZ~DIT;y2dgo<=n?vzmpL2$w8bvC y5q}eygQf{{#7Z&~bNBEKE3bSAAQ+o5Fv1#RynMjC-p)5#>?2_o?fNFRAie+~cwCYI literal 0 HcmV?d00001 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 zcma)6&vVmO5dNOyphQuLNdf^9)6!7zk6=R!p^p;X=<`LZ_W+Z$0!M>aFefBr}#XolFmUtM_)_?zi9WzCZu|3ee53QCf1*Yo0ZMj=k;HZ87FdOYSp}?8?VHj$>Z0|^W_nu|% zS{=D!+cM;>nL>R4Y}K{GuvXmCaSYQMriM^A_rgea4b0#;eRX8ily)z0qP>RY(P1Ev zFBDVG4ybE7W^qcxN#=DRqJh(xV=Vey^}Ek}PkPbAy=TmKddOn}Px;9kID?M`G$&jM z0&6d(@QKo#HSj4GsG+kBt4kjQdRjA}$JyhrL!9+Y6j1nC4LCA7WH-S;HlPQ-g#LuwvjSJ{LHiu0kK8YKfz5 zX}hep*NJl%IF=$fp+g`Ob_M2AiUToN`m7gIF_kt-Kne(lpUIL+FYE=fAyvP9XphY_ zuq0s0NB`ikzB||Gh0!f`vFp}M)mgJxHt;pRA@eL=7&;wK_40b)GmHP~#<;Av46Nd| zfX=e^J6N%nX1#x0)3DBY958OWuIyNDlF?ca_<@c!jC1@rO0MeLv4myys}YVL$hJW7 z&~Zwq#b)UGZD-q&0S8KN`n|xG>yDb&T3K4UnUkT0`vMpKCx7%kAQNZ7 zrsoR;u0p*RTs7{hl!9`!^d4jH_>+OoRjGjzCb$}j0p&;Bjk5(Od7>`Ap|dRI)t`}j zT>k^rpDM`aF^Hi}m Out}-Y>K?xb(EkP5poB#L literal 0 HcmV?d00001 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); @@ -323,6 +351,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)), @@ -678,37 +737,6 @@ Java_gnu_java_awt_peer_gtk_CairoGraphics2D_cairoPreserveClip cairo_clip_preserve( gr->cr ); } -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)), @@ -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)); + 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; - 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; - - 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); @@ -1660,16 +1659,6 @@ window_destroy_cb (GtkWidget *widget __attribute__((unused)), (jobject) NULL, (jint) 0); } -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)), @@ -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 @@ -120,6 +120,41 @@ classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) return (VisualID) NULL; } +/* 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 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) + result = cpio_openFile (filename, &tmpfd, CPFILE_FLAG_READ, 0); + if (result != CPNATIVE_OK) + return 0; + + result = cpio_getFileSize (tmpfd, &length); + if (result != CPNATIVE_OK) { - return (TARGET_NATIVE_MATH_INT_INT64_CONST_0); + cpio_closeFile (tmpfd); + return 0; } - TARGET_NATIVE_FILE_SIZE (tmpfd, length, result); - if (result != TARGET_NATIVE_OK) - { - TARGET_NATIVE_FILE_CLOSE (tmpfd, result); - return (TARGET_NATIVE_MATH_INT_INT64_CONST_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,18 +122,9 @@ 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 - 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]; + 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.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"); + } + + 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; -#ifdef DEBUG - fprintf (stderr, "java.lang.VMDouble.toString (%g)\n", value); -#endif + /* 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 ((*env)->CallStaticBooleanMethod (env, clsDouble, isNaNID, value)) - return (*env)->NewStringUTF (env, "NaN"); + if (digits_in_front_of_floating_point > 1 && digits_in_front_of_floating_point < 7) + precision += digits_in_front_of_floating_point; - if (value == POSITIVE_INFINITY) - return (*env)->NewStringUTF (env, "Infinity"); - - if (value == NEGATIVE_INFINITY) - return (*env)->NewStringUTF (env, "-Infinity"); - - _dtoa (value, 0, 20, &decpt, &sign, NULL, buffer, (int) isFloat); + _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); } - - *d++ = *s++; - decpt--; - *d++ = '.'; - - if (*s == 0) - *d++ = '0'; - - while (*s) - *d++ = *s++; - - *d++ = 'E'; - - if (decpt < 0) + /* Handle scientific representaiton */ + else { - *d++ = '-'; - decpt = -decpt; + *d++ = *s++; + decpt--; + *d++ = '.'; + + if (*s == 0) + *d++ = '0'; + + while (*s) + *d++ = *s++; + + *d++ = 'E'; + + if (decpt < 0) + { + *d++ = '-'; + decpt = -decpt; + } + + { + char exp[4]; + char *e = exp + sizeof exp; + + *--e = 0; + do + { + *--e = '0' + decpt % 10; + decpt /= 10; + } + while (decpt > 0); + + while (*e) + *d++ = *e++; + } + + *d = 0; } - { - 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; + + assert(least_necessary_precision <= maximal_precision); + + /* 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); - *d = 0; - - return (*env)->NewStringUTF (env, result); + 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++) + err = cpproc_forkAndExec(strings, newEnviron, fds, pipe_count, &pid, dir); + if (err != 0) { - 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) - { - 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 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 @@ -35,269 +35,930 @@ this exception to your version of the 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 +#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 "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. - */ - -/*************************************************************************/ +#define THROW_NO_NETWORK(env) JCL_ThrowException (env, "java/lang/InternalError", "this platform not configured for network support") /* - * Creates a new stream or datagram socket + * Class: gnu_java_net_VMPlainSocketImpl + * Method: bind + * Signature: (I[BI)V */ JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_create(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) +Java_gnu_java_net_VMPlainSocketImpl_bind (JNIEnv *env, + jclass clazz __attribute__((unused)), + jint fd, jbyteArray addr, jint port) { -#ifndef WITHOUT_NETWORK - _javanet_create(env, obj, JNI_TRUE); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ + 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); } -/*************************************************************************/ /* - * Close the socket. Any underlying streams will be closed by this - * action as well. + * Class: gnu_java_net_VMPlainSocketImpl + * Method: bind6 + * Signature: (I[BI)V */ JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_close(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj) +Java_gnu_java_net_VMPlainSocketImpl_bind6 (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jbyteArray addr, jint port) { -#ifndef WITHOUT_NETWORK - _javanet_close(env, obj, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ + /* 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)); } -/*************************************************************************/ /* - * Connects to the specified destination. + * Class: gnu_java_net_VMPlainSocketImpl + * Method: listen + * Signature: (II)V */ JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_connect(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, - jobject addr, jint port) +Java_gnu_java_net_VMPlainSocketImpl_listen (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint backlog) { -#ifndef WITHOUT_NETWORK - _javanet_connect(env, obj, addr, port, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ + 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 +}; + /* - * 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. + * Class: gnu_java_net_VMPlainSocketImpl + * Method: setOption + * Signature: (III)V */ JNIEXPORT void JNICALL -Java_gnu_java_net_VMPlainSocketImpl_bind(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jobject addr, - jint port) +Java_gnu_java_net_VMPlainSocketImpl_setOption (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint option, jint value) { -#ifndef WITHOUT_NETWORK - _javanet_bind(env, obj, addr, port, 1); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} + 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)); +} /* - * Starts listening on a socket with the specified number of pending - * connections allowed. + * Class: gnu_java_net_VMPlainSocketImpl + * Method: getOption + * Signature: (II)I */ -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) +Java_gnu_java_net_VMPlainSocketImpl_getOption (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, jint option) { -#ifndef WITHOUT_NETWORK - jclass cls; - jfieldID fid; - int fd; - int bytesAvailable; - int result; - - cls = (*env)->GetObjectClass(env, obj); - if (cls == 0) + 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) { - 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; + 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; } - 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; - } + if (getsockopt (fd, level, optname, optval, &optlen) == -1) + JCL_ThrowException (env, IO_EXCEPTION, strerror (errno)); - return bytesAvailable; -#else /* not WITHOUT_NETWORK */ - return 0; -#endif /* not WITHOUT_NETWORK */ + /* 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; } -/*************************************************************************/ - -/* - * 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) +Java_gnu_java_net_VMPlainSocketImpl_setMulticastInterface (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, + jint optionId __attribute__((unused)), + jobject addr) { -#ifndef WITHOUT_NETWORK - _javanet_set_option(env, obj, option_id, val); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ + 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 */ +} -/* - * 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) +Java_gnu_java_net_VMPlainSocketImpl_getMulticastInterface (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd, + jint optionId __attribute__((unused))) { -#ifndef WITHOUT_NETWORK - return(_javanet_get_option(env, obj, option_id)); -#else /* not WITHOUT_NETWORK */ - return NULL; -#endif /* not WITHOUT_NETWORK */ + 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; } -/*************************************************************************/ /* - * Reads a buffer from a remote host + * Class: gnu_java_net_VMPlainSocketImpl + * Method: shutdownInput + * Signature: (I)V */ -JNIEXPORT jint JNICALL -Java_gnu_java_net_VMPlainSocketImpl_read(JNIEnv *env, - jclass klass __attribute__ ((__unused__)), - jobject obj, jarray buf, - jint offset, jint len) +JNIEXPORT void JNICALL +Java_gnu_java_net_VMPlainSocketImpl_shutdownInput (JNIEnv *env, + jclass c __attribute__((unused)), + jint fd) { -#ifndef WITHOUT_NETWORK - return(_javanet_recvfrom(env, obj, buf, offset, len, 0, 0)); -#else /* not WITHOUT_NETWORK */ + 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 /* not WITHOUT_NETWORK */ +#endif /* HAVE_IFADDRS_H && HAVE_GETIFADDRS */ } -/*************************************************************************/ - -/* - * 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) +static int +getif_index (JNIEnv *env, const char *ifname) { -#ifndef WITHOUT_NETWORK - _javanet_sendto(env, obj, buf, offset, len, 0, 0); -#else /* not WITHOUT_NETWORK */ -#endif /* not WITHOUT_NETWORK */ -} +#if defined (HAVE_IFADDRS_H) && defined (HAVE_GETIFADDRS) + struct ifaddrs *ifaddrs, *i; + char *lastname = NULL; + int index = 1; + int foundname = 0; -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 */ -} + if (getifaddrs (&ifaddrs) == -1) + { + JCL_ThrowException (env, SOCKET_EXCEPTION, strerror (errno)); + return -1; + } -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 */ -} + 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; + } + } -/* end of file */ + 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,29 +245,145 @@ 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; } - - octets = (*env)->GetByteArrayElements (env, ret_octets, 0); - - TARGET_NATIVE_NETWORK_INT_TO_IPADDRESS_BYTES (addresses[i], - octets[0], - octets[1], - octets[2], octets[3]); - - (*env)->ReleaseByteArrayElements (env, ret_octets, octets, 0); - - (*env)->SetObjectArrayElement (env, addrs, i, ret_octets); } + 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); + + 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)->ReleaseByteArrayElements (env, ret_octets, octets, 0); + } + else + { + JCL_ThrowException (env, UNKNOWN_HOST_EXCEPTION, "Internal Error"); + cpnet_freeAddress (env, address); + return (jbyteArray) NULL; + } + + cpnet_freeAddress (env, address); + + return (ret_octets); + +#else /* not WITHOUT_NETWORK */ + return (jbyteArray) NULL; +#endif /* not WITHOUT_NETWORK */ +} + /* end of file */ 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) { - JCL_ThrowException (env, IO_EXCEPTION, - "java.net.VMNetworkInterface.getInterfaces(): not implemented"); - return 0; + 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) +{ + 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 @@ -209,6 +207,34 @@ public abstract class ORB throw new NO_IMPLEMENT(); } + /** + * 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. */ @@ -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.

      VSwF-x)EQE0fY1Kb-#MjzC{vnQL0=JV0g=n^*V-cT{PT90{NLab7}WO5)DSbi0AZFOFScbE`W^;9+}XHacb6s?^;2 zY55A(wyAh0^PFcSW(k@rvjF(dILI)DWq9WQ(+M}-KIykC=@T!qORW~jPb-V zT^2t3O2X-y+hp9x)T!xfE_aTUFdVoVIGj(tf^usf9W~X~x(CiD&9QBJPz262VALC+ zLAW&r8HX3_nv<8eOm){E?{b*xUmatrg?mr%Y7Fo@hHmOg=1Sw59}fHt@hQfC!T-MD zO@x2uq6a#EcX*rQ*u}M8H^6S};ZsOWdG09ZW%SY>7<`7v-#GjX`|bw*z>(DOa~zEf zj%?uMFNpBnQ`*$y9`PXD=I=BC-C@KO4&yG4V%E!bfOcU-FvMN(?Jh(y>}4ClsGoI; zL{!%P;TJf+H1Zs=OB2L%b>^Eh_P?ixzW}ze93Vs3HZ~UKIu=c1o$Ms4rEFhW(QH(k zGP;tn5{=HKid@~eYUFfZ1;`SXUdn2XANy5t)>ZcKHc~fEn>0Y4u=-kXGp38e@2tsoct+g~4ND zLCAmCsdjsWiM91MAzL%&s(=ZUi};KZp%m&=)qB?+Wq*!3ltUA71IcZ;E^c%&vvQVG^0fqUEek>bov~ z0R9d{ZCSEZ-dxKc<#ON2G)X6gRe4G7+&O2TefBx`-1+C<-~R+KhHo|W2wb(Da>A~b z6VtZi8pVp7mClNE64UwAv{8Cwlw~4cd?-uqlnyLqk|#U(U4T zRHIsy&YU785X;#mqf#&&Q$72ez3#GE7r536^gojzlU~JF;Mici1rlHzfxz23c42n} z2XR=#A%VkXtC48h<(=Y;th|h{b z%34ddwsu_aWW1nZRN!R0a1+&Xc?~*|8t1 z9&ED+G)%k@#e2A_;r*^6ki3o$aE&jT2`*AVX;hm%em3cX$6oeQtDNa?tVG!L;4za{H)T}N-bv?Hv?gpS*| zBd}}5s5E$J4|eotyDS>A0%M!azhj~r?g{j7x;0CBGj(e*KRq#%n#<;=!kFYt3mmrr zxmx3JluJ?EMPBvGGX^f)OrvUAwj&_2%K5&I&oIx~p(bP6 zXw;eDNGDJ`!_HaI-qo-maJ)Sw(iNj#PaAc&)#D7cEHIFJ{TW~ng-UXjXQe~lZZKt5 zG&q}1v^s4Y(Kw_yTP|mB<;Ho*j4FA%D-yh6#>Yl4v5|Q&2tOZe#8!7?ty;rvo{Tr_ z%rZ<3l;rf*vTqkb$3r!Z_b5_}b#DMikwKniG!+klvjH8pL!oG~4psf$AjV_IbXjl? z;a5<}H{5o%Eu(HNUvX)3Y((L})xhC*j%C}UA#komp;`1+vRilx zL}%@WQQv#Hec7-c!8tLi{eFi@IvL(zxcw0DmKVO7LIsf7j3kqCa!d z1D(ISz0GmF#kJlvz+UX*Q$$U1?kMLa^wJ&}c!t>DIQk3+?uGuqvE0ye9FGkQujBMD zi1FQ1+B9(wkpysu_*oLVOT>FPj!7@hA=*R{!yt~*W*_(B81fK` ziLfHlcPRKd^)aWfnMY=Rcmt0nN7~+dy_~c^x7UXXsk14thZHO#?j@bu u)J>7HnM$+%H~6gLhE>7W@lCJ_PbkMv9aRWp1&?V@4-ZYX-YTDZu=XF0`{8c@ literal 0 HcmV?d00001 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 zcmb7B%T60X5Ue(~7ZxXgc|Q_y3^+$#gX&>F%2@v!Q9EZ8H#+f+hmL4#2-+_#B^ce0;^{s35M|E|d$&iF3x|a4OnK_s5+k1ced}sdo_xC>mT*NmTx&*G;P9bKO z3b9$+agA(I&P!)iI0T2E3`R2o-D*P^0qoSF zAtJ-KR&S*F-uy=bBCf9Km z=Ljpuy1H^nuH|IeHEnCj%?aEaY){iZa<7F_GxYdtb!5eDCo7yRZOcQ z9Xe}fuq9){T94O<-mdcTXhy@R!0|>2$4g~*eSAxZ3A>oDmEeMoUhECyJl zVXe1&Ov$6Hy=+jtEAJ{4OC{G_$53Z`x)qR0(J1v>mO!bJ&~XDvo^C(KHvVVYj$d&yYh|`ZnGa(MY2~3=B5d}Mf0Uz{!0jYLAugNOv4GD>sAO8UBOoT#=DRw+ zz#=<~YMx1>S|Qbu=0FXu&7Gn#s^Ol%(MAtR7L7_JX;j?0@0n^@pg;BIb3tDPa&nF5 zr%CAcU}{;`VCOnkcV7qP*uvO!E>GS}jqx%XRT{U~rsGXCc5(Cq9j@*sfd{STtea)h zDp%dwk@-JvEx^=3aZYV_L8ml2R#eyCsgNyIyha_y1kx<1slW)FZc(ID6v`KA(${wh zV?1$8m!*IBTE^+B+n`*})UN8Au6cHrFdVoV*rW$u!?`(;j;eCD?xFKpvwhnh7J)N$ z95oNr88^ou5d-M0X|EqdbuE!YS+^3$d;uA00HGJwveM*^> zP|=|cTz`f0so`I7^A#qZrCwrcF_PNE%=Ad)v)?c`LSmV_BY$zDg4l~MeR8L$DqvFG zWj?KNrbwwQ^ufkSlyMG^Jvc*@jfs3XL9V?|puFSwUGxA;eCngv4`DEFNPXY<5C^=B zKp>KBC|ax3w_aeSN(gyKe?!LS)JslZlgGs3@FpHjk2H4g_Bek>MZagtAG|32-k1Vk zV!R&gBm|2QcN5Mn>ZU;1q*L?2b-t^-K~?k(JZ`PRkCfx5rYZ!niYHvp9bPnLzcs#f GVf{b&?E8iQ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActive.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/ServantNotActive.class new file mode 100644 index 0000000000000000000000000000000000000000..9bb2d41298a06f24c1d4d6112dcd3b54d2630450 GIT binary patch literal 625 zcma)(%T8M{5QhH=Nlu%FOH)G1RV;x@J!;DigcJgmK!*?!$le^RgCW?+al+*#x?tM} z=n9Dy5(^%H*Wf)+$4OWK8y23iN58-M$9{Oay9e+CGXYYBpT;JkIZ48ru}%IE-D!t6`IX&)bM ztVQeEDR&Xz17Y+?bVR6(Z=ys~U3v?I5ytVcA#IC!dmC#6+9V8CjBYvh(h$wI%v}A` zkEQFse+b!SrIlMD49v|p26y3KeOcF*Ykyj~Tc{gooc&XT+5<;OVX;a%8EJf=iy`}@nOq@(gtKW6` z1MqhsYRi(P^3ApUQ7-qLOfzZHvVbqiojd2T_de&IJOBRo$6o+0;X4go0@rM(l&~wM z#I)_WMxiWcrL!WP#B?q-Z4@6FC7Dn=hUHG#ZmQ^-D{@?xtJ2ZXEztAOSTPc1!zv|m zg@>}}3WVLYs!ZEUQs78-Gk7{Tb2F8g^WP)|c3(Fw)BQvsG!V}VbSsA_LfE52Ls(#6 z*0khQy;6|QoI)iK%i2YwoHra(J^P#8?y^}E7;PqcQx=5MtpE!g9f&uhw84!);9VWN zusec-IIQ82z~PcrPc-auPGLsYT*oZBa!JP#^a?~~O{-Lvu5Hn^EiSc4YUpFit@6ye zPQB<(N<})#l*e_Pz9C_F z2HG;FthHow>-8(1jOR6s2%HE?H&&^-Yh#-tjN9dd}+|{=ci6xS&u4AaPoM{K6!UrXO1L>6-DIGVF=1KPBZ{dBm~M z>9~zM0=rg>a-9eFU`vYzh0%}^xV+i_ua8v2U4gz$zeZJWrfx0frpIPdbD7*!7?T3M z?PsoEu2wnz-OSU$`1jkJvDqLQt6Fy( z$K!3gvjkHEMLD&#^4q1*@lZ|WJqp!g%^So~j3dWFnhJ=(nKmW1i$d9AExP*M!5EJn z(`CsY?8r7(cLTc3Or2`(bbWJrMB%{Iz#)8k2fnRIbktQh>mD+nF~_s*;Sf06#L%dF zlWl7Z(v8mAb*CtAo9Z_2Yd=7ZkBSl1w%sRr`Gxq6LLYVMa;0(2?*jft_>|zk;Qy|{ z4Mcz8q6<2IcYB+oc!z7fVSv5Z$ES#z=G;-vOX#LO(Ekjvf6)632kwUc#L?{Fa~zBH z53S?WuZZ#8Q`$7*9wG?f4&!GCXo3;%;ut2qJcno#MGOPzrOiI>#WCn*8p5!jah(1t zW6$6VT$mqvj>HBot>bEdJnFq)p#OtrRN7+{N&2bPb$ska`vjl*QJ+vEB~pBF9XDR$ zLU!mk+nn2%*QFf}cJVLWK8743DfogzGSrh{MPvji(K_l=&xZgZbW^v_z+Kf8G%r&5UAOx z()V6qrAmYqk-kIT=hQ<^-;l@n{Lls-O%4a%dp*uSP|+Wm@+U7!zqi+eGNH36u!j&V zM%+s{x2c-~Ws^#y{x|rn@`hEx*YRz86`oLzpIfRB#tI(Oo*rH_)q1OZ>cZOpU0CP~ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapter.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..435f57c7b1beced68163370752880e9c1be0c7e5 GIT binary patch literal 613 zcma)3%}$#!5S$H3K1f4>@Yj~M>M?+XK^#GdkbngGL;@-4*#zs0A=r`Q&{FlKI3a=5 z2k6uA1c-GKBuXzmc-LOd&djd=Jl_2Vu!heOQiK)j5@9bBQM1m=)3&NBccq-DRZBJ5 zypV|!-<&l`=}dOKauL#mh3B4f^?0WwPP)qN{%ER>*VaVH62ANm=nSdFekI;DUi<3^ zqlB4rc_oFmf+e+V>z_fMFv)cMY$(@dzLWh5fer}cWox=#8sCuZp31a}+Yd*-?rVhX zrZ(Dd5k`uO4MMtX&r}X0DCF@L6NHIa8+F*bJXP-NK%o%ZCJRWGVZ~uF?OVD_SdE{( z|KCD32(!hwKS^7fMAW_0CfQhQ1Pkwjg?V=Ny>(3}{0k%G>bB>aYEOsJr(UjlC6Mwz zaXV7TAmZBxj3LMQ4gX*Yc|H_| literal 0 HcmV?d00001 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 zcmbVOYj+b>6y3Keog|F3MBb%X-c4JYqKMic5<*K0DXDD@)S`8gT+@MMCQc@$)$h9e z0r)!*wPndt`Q}>wD3|+ArpYuZEbvQm=gztN?6c3~&OiVD{wIKo_*O%gz$M!$CG1Km zF=sojkuS>y>8wd7F_%rv8HI;NNha<(wpB_MjjAi1X<4pHM?<$j-veXKNR$n$l*r~E z$bu^nb~marZ5O4$k<2!5Iy-+om00xOBn5h|n3m~Y6$lN*a{}G!KolYD)uACQ(3>$W zd8b~F*Hj;Wsg&2D$qtO;ChI(m}`NTXYk6*x8&Zz8l&jX>aS9edCd z!9g6>a7f^A$*LzBc3CGsFKe!27F=1>aRf&NA`7NfDofY4c(e_dIwUpp)8$TS7F?%Z zaA&0oI7*iTI!@pnfiANsaDen$LerG^$uLd|=)t^1aT;eeoDtZ+6P!+UoWpt2DLB$_ z<%(P{$f|4F){0vYSRU$x@7!5#3nfT7`BMFuVcW?IXcaFuCTrl8Kr9W@s!4~HG&R)b zF=cHen_I7!>0~^oVNBpeD`k_Fs=G0{Ex@#0E;b||*U^XlQCz^gstDf`7!T^Qxa!!C zROz)Sw3SLc7sdPdK*QyZ43N2w5AhLSG@@IfdeW#gO8Z=UpjE#Q6D=zSLMaVvqqC-z zEUJ`O4T?7YrUEfFa@}(c|CPwB|A4cpIV&B-U(xt{(}8A zDA%hTak3c2Eo4=V%+VrPBYtbfbD^7QL?Sd>(6NZm7(m6eY)3%MsKa-4+`|$lg&Kls zqh4cZqd}lnY{AZN?P^#SINq8G>9SF)rHz`~tZTYj6&TFCy6#ywp@Ljze*}c>1XE^t zgOg~WSzWs*#*xHfl9;)Xnc!vO<)bqfJ8qJRi(})gTy_GnbM3{~EQ%ScT6Y_*@PDeY z1XBaWIJGm|yTR*tpr-C##b~AG4caKCk!1o+MMB_An*zI`P_9@&ProXN@yIbp1%=3CHOD+zh`(0(Vw~K zg3jL_Z*u}~ajiEDun)a_il}ML9d)>fZrTHbPZ9eYN1x)r?a&`MmKlDAE&J=!=9%RjQSp@d0u(!8-9)p zOC!&a*uuq4Txv0odheHc{(cjc_LxAD=hW&7KK9VA;u9bBF(pzW#fLX>?FBAmMt;SO z7npvMd5&94vCJ0k%#OxB{SEV@3@Ueb^e-M%6#MYGAJ{1>3anDu5?3bQJfut&^uxkQ z*f@`>M`xIl(UDIlOxyeTf@u5s4f7>dxaz0SU%?=5M170+6i<5|flw^pQnQhz?>u0o zN`x7a{(+nyQy*jcnsH1ojcnoJ>}c!sJ}>6)spt=M`J;z2=?H+@i2F!q vin=LMHbZIT{~Di_->^#fCcbIU!eh$uQy>drtl<&udBQ_erMJ$fE^Pb<7{Sy- literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongPolicy.class b/libjava/classpath/lib/org/omg/PortableServer/POAPackage/WrongPolicy.class new file mode 100644 index 0000000000000000000000000000000000000000..378e7cdb4644897ea86c008b36c0a0df00cfe257 GIT binary patch literal 610 zcma)(%T8M{5QhKBwLMKCgj?IR6-zFn7GjwSDNRy|>J*};q-%4q4u%sua-48^fj&!@ ztdLmr0eBt67IjV%q+T{%c*eH=`TiOE_TlCyfGxZ&B171;E*7>Ii?(%M9ww@z+(8NaMhH4~=pyw|k0<}_q2HxU z{v@tO26+^D_X6y3KeOp=aJB9un~%e(0-AmXDzq@;xwQc~NJT8q|6dQAtCnK+r0R=?}= z2jK5O)RrYn<(q5yqg?JgnP#R*VS!(gJ9p0AXPnm zsTtdGjY3(@NoP$ushQl^j8S}Olw@kbv8~dKT{epwld@cuj)qQw?gz%2kt!QjDU~Zc zkVRJ@>TXnJ#$J&EN3z?vncVD+vDCc(CM~e{s%e?-HGxQfGB41n4#W{bmkte4f&E$2 zl6UKsf^_B;A%R5JE*j;$;h5^#-|Tc(&6>cKrlU6qfGj!{SAk>w$tFMx(-;Ka*0BeB zV>pDv8hQi{m#liKVV83Xv$EzoX3>=^I*#C|Ky1#mN@eNV7LT^zQiimKUb@_=%$)1g zi|({k@y6-$gpQMVN1(%85jaSCfzC7~emaU%0$ri3#Bm1aG@KPUuoIg;b)3fqvMD;! zaOJXGFUqQG+SamL6j%jm|xo|2xt{AG^XmrD}h)Trd5*;>u93C z#p9T@k#26iR-V(zyoM2hlR?5JDphx5VmtmxyS&m6{GyI-9Ef8W@2U#CEO0R_%lxWi zKT>rUFlZ^1WIm27_&~$^Z3!T89UtN&zGwuuO!1^qY1H-k);Ozv52gYu20|qbYoooQ zlq#x_R}E^GdP9Af7`g5`hU(k#RvrpDNbKtgt~40aaRV7PtPi~-+H-BKwp+L{=3zp| zP23XLvu2d*Y|=xanhesRVM<_lyWn4oq=q{Jz1v3`X}mEuzMPwxm>rv+%H54(noSpK ztvK2AQ%^t7VLu+pKB2S{3NazPjdFGm)ZPXK#dLZ3k0k z1%or_M6v*81ZI>dnT=NEO9Fxc~eWv0daJD7>-B2i2BBZ8Y6U2Drm@X5& z@X|nYbvKB#>8V}AT`psehBzF!8aQ0fyd=~xzK*&oU)>|+2g|W*dlUrDHQhH7-3&C0 z!ARqCcHJq;o2I&(dqU09_&OL-CE9t4S6PJL88lZ{C|4TSyx{p8<5Pm^gb`<@2Thyborx)(&z1UqfF{73UrZzMZ|ri wbCbF$QZ_?rC}grw(lV2c8wsYXATM literal 0 HcmV?d00001 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 zcmaJ)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 HcmV?d00001 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 zcma)&OA5k342J)ykMRjET)OZC4({Cg1VLzNPcW8HrqoWIj)GTn;Q>69I8wV5BoGKm zzI^2Qx<3HSG34+VX4)h|pAr#hW92cUh|HCY2-Fs-*MZt?XL`^{mSTV-zy iy+~h7Ogohk!{mqh>|^ab85%BH;OM$Pz}0=1Jq+G{yHxN1 literal 0 HcmV?d00001 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 zcma)%F%E)25Jmr@h+^XjER8m9tTeGw6Dt!4B=!rL5Xj2vvXFQ+3lHF-j7vdbrNvC9 znE&R@>-~5FSYhnJVc000adpXfsI(D@q?mL=nn!f2sWPEfDOFWoW}%XKdJnFog~?S} zdFV4t3egBIMVav+DJV4_1`N}Vc?hEY&XT{A3~nQ2O$_V#;?(W_cmLc5w+w!)YMs(C emliYoDZ6YvtriXS}GvmKhoK-oN1w@E{IBRZbMn2N5dSsB4`xDm&$1bn*Ltg+9z^=AZmg8Vsp$<%6kgGJVphr`P`HmA!* zf{W#W2U=ZOT27(xr!Ltg^cbV-K3uHYp43D)`0U~2)btBK&IZPiMK=?Kgd?lTb=z*`hnR~K#J#-humbVkia z^NDmSfT+N^<7CE~Mzx~bLBu)igh`Pam65vpen!gVbR>iuP-P1%0%s?l9L8ipdc3V5 z0qWnc)$6)h5jZdVcuKJa8Ie?Q3n`A$vDz%N{=}0Z^j(7LS&gH=m%FTjoTSiKGfc}4 zV2#r}tP-_tZ8u?7^n2;1lirM3O|#Na@0Ins!$(TuWk;0EhDL-J9@G3UWKmFz=r@rlvXdl0w?6lffOQz!2KXjaqZfl zh96@7u+B-63VcTY&q?VQZu~&oo4F+wjKhLUQZE+qW+!KZl*pXpEldy1Jh*d!rQ!i@ z6vMH7EDt@x>La|fk92Z6oOy`b)4wrHvgk*iVY0yio`5fD`HB<$n%sVaF?@Rjz&Hvl z3*H2A2k$b2kP7brm}MTBv$utrsh==E^MHqTYQKB&y_-sDJ9T;yD3Z_i5F=b&P%`?5 RW5Ihzf_;yJ*Ilpo{|1XQmW%)Z literal 0 HcmV?d00001 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 zcmaJ)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 HcmV?d00001 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 zcma)8OH&kA6#ni!VQ57V&_P9w#>@=h_`qlwH86+?m|s#2*Wi&QF)$|9A=xjj8^CS=o(d++(qcfRxJ{^IWs zKLM~Gi*DE$S~NWs)TUCwxTYJ@SXv&E^?6wj@|&a@Za5e=T$bjgU|LdB!PwYkIcYFd zjmv2{B^fe9AW{Kh+CmJTu+D}UTt^jEF^)6Xef~2Hjvj4X_P~xB0d7<=)J7Clj?PVu z$$EmbVW^L2Nhy6s(iQ%0Ejo-zWtL$_CD#^va#$-$>9nY*hOAFWNtuie`YKt)W8I6*WaT>%^37i2117eEv!><#AVop;3SnE{ewl$`K;S35LxDXg#sPaJMCN z$PF(;b5`KYRx~E|^~WQ<{k_qI2b)pD;1rcvQ6eY4a_;_-8nj@C8`~LtS)`I|mr)k5 z6OU1TGO&j#N|qIRHMb<1E>CN-ilOP(L}i@ka#dwjO%>$@W!8{YDlMuEld(^L9{~oT zczf5HT>K+MT-5Y2u17vgmac>05Z7a`fFSmfH}l-u0j`Ea+<5w=xwIit?NBonxGPbZ z*B1BNA>a_6WT+`JJic~Nm8y*cGk8SJ>`YT;htEG6=FU0=gm9Fhx?pqn+O9^!ZcvNn zMuVkX_;hbiLX5@|V(;0$Au7FNy!0I6v?g(9VF5inGCRHVewi)mm-dQo%W5ygCxb^S zXf{FQ{ceTG(3;1}C$%g=rXHr|rv*HV2x(q~awLyZlB;Y{SAcXQN|lvT=YkpUaZL(R z&x-rS4i7bYT%h54z>PtMhT=o?M%k)HKN13-14Zf9HO(+frzx`9*^mbVI4j^Br{6G} znaQG|iMl)?>#~}Z-56!ql5Oh@p>X#JF&6I~>`wH>q8^N(#(t^?HP!Sa3b+JHk8?^< zHJyR=@%^NLanP)-=EJ#1nwzEPw!%@8nAEkaeEx>~1udLkdN=ZYRr%!{G zFTQtKz!juvPZ=*_PqWQO6E|1eRys4O^FT$?4UJ)Aer)tEB;{#C(NrFi#|?_1JsW*V z8cEl`W>KaHN6Gt&gkw8+=J%>dayyDtIJ#*ro*6j^8nVP7Umxd>S(nN_1H)| z#UOXkuv7vvT@FHKP1s}^A0U_9LDd6nK6ekzD<$?X6xdf~NYME$*lO8#QG7PC5d!2q z(0U)+?6_Tmv1np6WzJa`Jg{BZO(+bHV~>S)$YN7tqTR<6wlc7H3kcO%V0Ao$6(HJe zDAnY>RUjCjY!*b9#iEI`cmy|lAL}ea2g}iJ7oaue2pz@|3oT-yHFJp1u--y?ijW@Q z7-{}=Ui0;4wR}Vs@-ZcNr2x4(huoFpS*lidIl0dZAo6ORK(9saIFaM&a|K%Oq9I>_ z9&`0eD%!71giP{Wx#YQU(yY=t-Z2?0Hbdmygtb^4Xdkg^{S^JTFxC1H{r!Pu#2#WG z+WrVtZFevfZKsvtrB25KjF1}VJDpx<{e`=@=yiG>%NQH>I#)U!?flflGL$90&o`!q zvj#4&tA3grxV%o&z_pT7)=oXvLH{K)=6w*eNZ1kf0xc literal 0 HcmV?d00001 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 zcmaKo!AiqG5QhJWv8z?92fcd{Z!UR+w6;*FM9dRR!m@0MyJ6i1d^Hb!fId`lL$#oX zTxMYS=b!(Z-TrF}Aj7plLU?puOZTqjtMh@YMwQBU%FDj74S5|*$H94llyI}=j%CAE z%c5GVItYvi55pEOY+0*la7M_6rN?VUt2_te?1#XZaR0kDE8eELY=5H4<@0K8g9)Dk tmxSBDszXA;xO5v|tA%M4;qE`zQ;!rO2q#E!3W0N6#Qz{pu3}9v`36;zTEPGS literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorHelper.class b/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..8fe337b3834318955f08e64bc2ce3cf6ea100659 GIT binary patch literal 2476 zcmb7F>vj`W7~LmHn@k9$1gI1cK|y*6jTCP*wUDMjE9r%#6zVNb(qlR`nTeB0DG%Ty zsBfVDMAx!q$y(xXAIjxElgXtMSdsZLmowkD&))ld-#P#M`{!Q(u0e(o5V&gD<)l?D zC)X_7(Tf$Cm-eo-lj@Hve`&B|E}7_oUA*xQF7!~3@33) zK+79uxgs6Q6gc5SBV;NHLd0+yqXGeAOW-6Y?KqMrnpsXoaF#~-O^o7AycNcIf#WTO z9+BL93>R>bQnv9yq#VWUndS$#5Qrl+olK?|?6Jm`}U#wV=mR&cW>=hF*?wRA4M9K|d& zb-NWq8uM%s)$AF)QD@5~x+`;in~GIG)9Fr2bVkEi5IEQQld0(SdPc81xA#i2<`}By zf>v=yV5Du1*C6gjLq!3(Cvd(Cy%&Q~!J^L29QA>;6)|GCVV1UK>07x~Xf0HToyV+I z|9aKDoiVv&)*22QTarzXS+xUZ)n<{X*oz`6GHq%4cB(tkm8YC0VTMfG;?-=S7IqTnH zo5$3YDzVT-c4Lr79iZ`z=Me8I;UhM!?1er6x%o^re!@w_qxVQK>*kF# zqcDLKZ6HdDk2_|rp_#ni{hlNVEki$YN3lf zH!?4wLQ=}hk%_-C^ECS$vzrH)TTW2Q&4-B>E?kHbGK^DZj_@6*@@`SUcQnxE@mhDW zFEo*G8+RBph+*8tA`ylV!4f_tf`)tTnLDfX5}n_7=^XF?HTt;h(O%(H%JcYhtZc^D z4v@=E#vlBFjmZ}rZBiX_>HI+2Ka$E%E@E>H;`j`oGcHPEU*Jn(YWNBT5Bm}GlqDVP m<%Ek(I}T(2OoU&E{cD%}IKGC?IOe11u5W9W0P#yM!q$HySW}z; literal 0 HcmV?d00001 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 zcmaixzfJ-{5Ql$@=n43TH=r_+#tk)%Xr#g%k;DS4VV#^u&Rraq)A(o>K7bEpoJ%Nd z4vNVnv%6n@^X<>?*EfIxx(ONvgCLm=ubG_&iL@wq#!|A_s*#T)7xR*0kaWdDF%N#7 zplQ%uQc1QTpV@S=WET@08Q9&hd-9a=Ka@d-;|mK@k$CwYG0w+*kOzMF-OI3DMP=IGV? kysA{HJc9$RL;ahE3Qlm0N^}ctopyBE)PACMR^7n)A7$~3r~m)} literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA$delegator.class b/libjava/classpath/lib/org/omg/PortableServer/ServantActivatorPOA$delegator.class new file mode 100644 index 0000000000000000000000000000000000000000..b6f0ca67762f08d4238a75d652c0899f9819cca6 GIT binary patch literal 1364 zcmb7E?M@Rx6g|_HE-hQBRTLEw6{M6xL5Y8Ah|owNHkMFABK*K%nUuw{i_FtxY5}#cX!>-aGf4`!zGaet-W7U>;8_LBkNmIyGCytW2RFAPkWSb z@#NSsLGV})Fx?Wa=Sc0zfO$O6vYaks3A69E*xnJOOTPHvsN=x(y@rK50ux>6R($irG%uBjS90(WuG!l*#5i~j}t)W#V4Ilj%+wQ7(jR6^deDvQZwt1!r?yNsIUAG63RsQS38UoHmGqj&9L+X0t&XJY zaY)Ik-_(v;am`j3zM#^09*x>T2qh9WG{Ii~CbOXb@KkxrXE%!420n?RD* z0ZOY}GnRC2`YY^QKKi3yh;O*^g|-N;@|)xz*rZ<-8A>-oJ&kL)PK`(mg*IWD%(Yvz z#mIg;?iBMp$eiIuSCR2$^;S@?o0gn3OZfV}_*|X_itSGbm7t QV2-z^X$%L(fj$QQ0C9v=m;e9( literal 0 HcmV?d00001 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 zcma)7TTc@~7(LS#mR_U?UJwC6LEC~XH?KvKLNGKbw4sEA@X$=#u`F(Po9(vI7vGG3 zM<0|#5`Fha8Nb=>MVD56neNPd-}%mW=FIfR&#&JAtYA}tk0D`N71gX()SPMAyr_%3 zu$sbB`exLEPg~F+h$pW;72rqFd{)P zT#X=z5JNPh8DhUtEeh*U3c@g&F-u%O;+7`ot;K+Ssu3HdpgCPJypLthc$2F-H!5o0 zwlt%X>~OrKM6F>{jNsM2F$bbvqlVjhCFA|TvJJb7#t_A6+gMmRl$9-PP<)CTET1jyxk~< zFpsDl;t?dUK-MW}WvYHX)(fBfRWmumWT!Dt4cCpqZ1GH#>_VCp^_^^yf(6%33$gAo zdosP`k_y%s*8BA0ji$PDWuc3Tyv!l2;*m7|V}@*B6?;H*&Dxt>Qr@l2E~0BWdIf%S zZ|}^`Lqm7fZ(2o$v5tgY6moaoY*;1nQj-^Rya&Z4=}(48+AxH*t@Cgj{`7lc3Fl7TN1h7lFDU8uf z=20}RIap*4+@R>2v=*S9aR)O;D*;*=y1>NoIVQi;w~ILFWLF)egd5XBqG(KE+Swn% z9n4UMT${yRV!?0^b2LiEY1)yz!WWn)^ao!M`{*gqa0<-0VVweDEaIV4AdDrb1jDdQ ze-AF~y3+u)c7fI71gWv^MSa&(fMq;sA#4(YB;6n3gM%Oi>q;oUp5hr{`0(86BT0uM LR~dPi;RWyu<9)R5 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantLocator.class b/libjava/classpath/lib/org/omg/PortableServer/ServantLocator.class new file mode 100644 index 0000000000000000000000000000000000000000..10ae566e4ce42bea9788b253764abef7f278a500 GIT binary patch literal 300 zcma)&O$x#=5QSf~8m+&e2XN!o;1T=kYsd9gY&iP@7ojLo7DhSlVZDC(T(JQ8ZFE&=FZ}I6Q`KN@o%osaS;jR7RGg z`qN-diel*uY7FA9TVXB@*+i=&htDwhEX~60bRzP1OtG2=3uO~~;b=1Szg4e%4E|1^ hOeB{{CK-C)OrrwF0Wg%|p#qLN8tyZ2la{L`w4bPaSTFzp literal 0 HcmV?d00001 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 zcmb7FYgZFj6x}xoBohN-P%4O4Tdh1IsrG4uXox7(Kxl#}eWjCd4MUTebTUEw1N{eW z|3U3X+qDE&U90wUe^giZolKr6i^5u&nKS3?v-f%2`RCt1{{nCor67C))0SO|Ta{9L z)v_JEP?kAq??^kYF1qQYt)lK&_M$9Tr5!{-U}#(4(c@*^EX6a0ZCP{#`ezN(aOMR3 z6O-!#ft0l=!|+3kpbz~5$J2%>SL&65wAWM$fvCbQuj{sX0>eQ>1>P!|^?2iL#x7)K&9RN5BR3;BiBkev&M-@5 z=~$+~a1RfuP)VY+X&_ zY;Q`1*e=fDB9+9e5nRIuY@Y|&5_9^%czJ5nOnel<$M}S`Hg(&!9t+&;<GKt=D(Z5u*SP&1oKD<^i>SgvIWGFdcP3C9o*&CsO?Yb^%}P@);X?gTP%iJaJHbm zC2eaEO9JEVH>t8-tEKdsv#?u~Ri%l8VimRpMp||Aw#GeqDAy-<1^-gZ{K!!o{PR_hM;Uh0)2&sh*_0;jr*znskG z7L(}^xEljYre3YuR+Xot!-F)3hw32RU{Gguz0+oLUA5_$MzQP}q`X1Yc!=`55C_hto+WK2KhmM}R{{5C4$Z>52H5%LE*@a9hJ9@cJD&d?} zw~O+Qp}r!c-J8((NX@8u3S8h;`uUjyG~V$m#NQyF;=Br8`=<60`kgmEg!!vp1J`kk zzmbLmuLFG2Fo@%{sNk3f8TkW4FEA1v+r#)X+B-3Bxfnh-@*TYEMb6Pj+4`rZ_i(YD zH|$#Pkzm@58)i{9}jW zJ`YgC7sz@7R+vgvKl&26jp+S-JV;MRzkH6breD$8pgZW&`H9qj#t?pS5gXlz;%j_E zzc51h7I|W7_zt><{g830IBjeeMq#rg-Ppep;VH3y>yRHs0Y&;T9-D5bn^}CsmoCDi F{{UL@QSkr( literal 0 HcmV?d00001 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 zcmb7COHRW;4E2;kX!-R5T_Vv9Bi2~~qGA!0h)8T$O;amM6UM=r1}?#cSa1Lig>VEY z?IMa;jI3wb@A=vD`Stz*02eUvV4y$~r<$Hp9T7XTC@@B@k#!S{bpa*D5r-wRaT(dl zgQ0@S%G5>|#-=)4tT1sN?DbOJ8EaD9pi(d@88cf`jtbt+9T9Ar!&@qr$o{OS*H9_$Mm2^vZqOXd)c L1SvRfD&XWB(U7#` literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA$delegator.class b/libjava/classpath/lib/org/omg/PortableServer/ServantLocatorPOA$delegator.class new file mode 100644 index 0000000000000000000000000000000000000000..77b49fe8abe7d3c578dc9685c87a071436c29d26 GIT binary patch literal 1785 zcmbtVT~8B16g|_Hmexh;DkzGI3fh*B1*xKzkkCc~NwtI$Ui#2%+p#PxyLGxn6Mged zWBe3OJG%=)p((~R+u519=bn4dy)*mk_xGOwW-uQ?fZ@I^>YBY%*H&%e z=oOO}x!C1GlY?$KdAq7RwpcAJj@G!z>v9r7h~Y-vYH7K`T6U3;x<)e}QK)S3suMw& zVeCx48N$w{(Hxy-NafFjplC9Lnl~)NSzvgUI6JJ1WhS}75X#v#9tA_6f(UwJ2%=v> z6mf>NZd934Hh)|hlBhgWPG{Pd$w;Ol`TFyQ#hz$MMoG`J=4j$t(o-d zwqEC2&bGG=zHFN{E;7k3Sc)z7^mUat9K*Jn5nSusUQ4!krHk4cf7#+qCyML18Nm&P zM2B43qAM&a7(p-f!TRz_F-Gv)3NGUciR1Nld8Nh>C}kOf4O?dz?i9M;r#sx)vZ(xQbY)=p9}P*OhTU`y>c{`Ret#?KrP?hT>R&0)l!9?g(2?|#Ii9NTi6PST z?i5nCY}BY92NKEBNlm1~2MQiyj*doIH_ftPIb6KZtDG>i9Z#TCyOcf6Bk5AKTcXOB z40*Z+PZWGg=FOn2SQZyKQ*SmURrK)2qkf=b)6)YMkIPGeZqN`tQN(EV9K9{mUXaFk zYWypd)I{({FJs?u{tK-IaDo0~Gy-qQ?hRCW8+7M!T*M`s5fTIL8k5aNdqcDqBJWpS z{}saZNUPKylsycOPfQMl_HpYot$F^#WDC4=eWyL!Bfjro)ZLF`40nCzdq{XOBZ-vD zMOF0k5eU-{P>=Er_3UG^J)`%O-3OO-!9yIfsyJX(4_Q?lu&U57?W(BK*JzL;rmqoZ qef~LDZ=lcTXKWwo_GCY~w2GTppHCaWBUh5gctWEr52J?40Dl0rSIoQs literal 0 HcmV?d00001 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 zcmah~YflqF6g|@}EPY536cqtMLEBYX1bh}rXoI1q(1s!jA*R{3Ls{JJHrp-HAK?Gd z4@x45e)mTi?`*fNec^}B&d%I>=G-&qZh!yz@e{xkY{>92L@m3lT9vYzwQNT#7(B=A zGj6Nmp_xwFDr$~pXEU2JB!=0`qh$;;sF%lhh?y$4HAlD1nv4;Kg=SJRvzORZs~#CO zWu93d__k)23~n<>``f7;gOYBB|BrQ?VR&6Pb!UUYAB`OlMA9npApD4g5kfcshO1!& z5M+p?b(8PbD+O-v3n>`J1zY1lvvu+AElSRbUSp8+x=W7Xb2NRbooT9}nPoNS*t%Jc zw;1*mRINJ{!?nu5m_1&rk}%D(Me$urb-PCxlc8RS6VSL zZZk}EhU{kYshwAYfbbo^=ro_HiFKKqtyvgXG zgzn<$TJoAV+T{5fMWy z3CC!ZoceMbq>FW)dzEZV;0uFOtq zaT%)&D+B82jHNRdO5EUO(ZWHj;Hj|uGlrdk`t<;`P1>JUT=dj>8?RwCYT|!f+dtF$ z5RfW<%PufXw4`fekf(E2-7fMsx@gDA9(qf{lMLaMX>vPhXtkQ~N1#=;G*A8QhYv%L zX*MProxXlUG^ggL@d~}I(>|kTP&vn_qI|>HS9()Zsa%f6=^wIP7M>bCHxrjE6+gn8B>OKY}}$qYSY& zkGsTz;T{%f6pT}}BY1@_ut?|+z9agj>wx#}0dtM8)&U_r!ejS<5SE}448t=088l$m z+ybby3#=R}q{dn|>TzEImhs#}*dPQ!dN6|JA_&3S5{lUiyd(@CUb%I|=~BchS)G2b FfxoZItl?JX`faicyN8WSZYZ9)NskQg7x02ADH*&*XB#y`sk z(?k<}_m483Sr$YLQ6F|LXV3SWZ_b(TKR$m2@CXMM78ssN)$?S(=hdXryd8+TP(z_S zGx1QDWru62YP@s7d%`P9dEtu_8FYoRkYZRr=R@uVJnVVZ_POY23u%U(F|=5H_2RiV zNYGwgE5ZBb6o#cC4Od>TG-4NvK0Z6HG#qSWg|NO+G3@^f)ws|f22|Rd zo1YOhC~j(LO5A#{d`(&IT(8wgPn#u;j3W#OGu%msf0Hmcbs4FSDEX%28`H1nq3Jrk zLTWL6OY~74VbjYrYicr$S7`Sn{zK8jOJqJ$U;(Q%Iy3_%q;P^YT4gBBNY}AJvjJoi zK#4L+5K1J{a5Nc)nJ5M2LM0SLnT#z* zn}Pm15ERk~n`(98=rBxvrd4oSE~xls({8=rD4W_FhtDvsZ+$`;{7_#_EVpSc8Af%` WS;gq67#glx;OM$%;pU!G5B)b^Ye_T! literal 0 HcmV?d00001 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 zcmZ{e!3n}Z5JmqanuVNfz!n^A!ka`$1(Pr=3G1#*))eQ#0xU|*7T`a;cY5$Y-`5+! z8P1_1a5B&7?)jE1%Mi3zTh+KoV!lcguhu=(Bu^1m^0 Xrl5r5zxq_dhCryd4`qb?#tO|3ynHMc literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh4ydqICWI+;shb{GyV?q@2{?)S|M~B7G2*m{$^%T9TSq zl9`_uke`#8T*=PB!pI<-rhxf$q6Mh0deWMyDy-~-#5Vr6!lKGq5o-$ia+s_78G$ z1R9L0laYb7EHS4vm65?rL(>PQmMH7PK>Dm18MuP;ON)|I-7<54rl=BfsvgLdKzA`R ZFat3w(DRHyx3e>FfLIKiK$3}p3jnq5RcHVJ literal 0 HcmV?d00001 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 zcmbVL-*XdH6#j00Z4y?B0gAN6281?gkw^eRTB%8zVlXB(DPba`nQd~ZTa(?)X49ei z;yCJ~o$K41|#V+VcrFY&K%{O%^971VKf*?aHVbIy0ZbH4NYpTGPH;3Dp5@Cl@C zXCq~IHd3p$;~ML2S(VO~bW-XtEVm+EX}P9tt=es~xm`2beW@WJaAeciGE!~B+DMhx zH)Ye+5E3}%SxsAon?~FGOl8y%7Ko2P{6A0w&mW-0!w2nAVljY*@e;`pv)*}4#nvNKbs@pjomMZ0OVYX&FEw`YvPkBh2^DHVE2$6<`IKKB!o zY&2sunD9Nv?lerx6}ZX@U!+wU-V&G`&2S)|Y-YJpUd>lBYlU)216y_C+4g1oX1gVw zFy5vp3l@c9w&Gn+!|^7&7?0vQmK1|`1db=3Z-26;JhD1+pbkSuw=1odz?7o#FJKEQ zVnxSIyvyOa_MpSWPdpz&-)mU%-^^hw!dp?t`>KP%j%nGBhO$6nA0^{B#&*GK$@}HL zTfUdI`&O%$zu%NywVCX@VnmUw8?5lu(=Pu*v)HQOaA_zhu1&OR_noF(G1Z{s|FQHJ zR5>`!Y5UHPY5N3DMI6X0bkJaC1>&#rtvk-;hO^m%wpA> z%Ctwi!VE%5bXdS8=21B#J2*f0Gt%h?d<;^DydU3rsq}%e~vd>VY)^Q!#?xdCbQ literal 0 HcmV?d00001 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 zcmZ8aO$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 HcmV?d00001 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 zcmaKnTMEK35Jhi%MXQ2>3lRL);1Ya-AhcLFkk(LBYExn?bZdUN02d`jYQZlV7#L>m z;mq@Oe*l=HPf;V7C>=3%iI}If;XxvNp>v_x@vH?uc`A`%LD3)>#60IL;c3L&AQqva zXc3I6_{u#j7Zy_9w+W`z<`3A-gyu%7^h)6njH^fq%f3czx8843BTYfz`0A!Zv6YD+ a82(DmK7Q7Spl+)PijI8~cJA62A!b_Nzk27#=^vPAuy#JqHU|D>$c%+M1DpD>%QjC^^+FGY6(e*7801>E$* zC6F+!wY1q@ORt!gt**ATvSw{)R=RS>($waP+0q+ZRkhXA{O|}IURO8NbW1hX(#6$v ztzrA&6FBNvbu-OaU2W+fNE|-`0`Vbwu2{-u(w#w$bYWh}8@6t55whz9RW+-to5qd8 zynt8|cqV5WU0XG5C%O02-|v6-{jY!gDd4MbNILW?2#nT=ThCQWO8t6qKCif083aZi zw+f_`A(4M8bC%`Q%Z24dC10;xE9Eoud&olI$Wwj^cr~NfCZ*|H|0mBO)@N&VLv3qa zBHvQ>#4X#FZmf|@V6M^94c)#X;7%l~0-l`N)IzLrB8)grQIEO7e@~*2tOoh#g)kyG zB5!BIi1u$&VI0SEek333VLwd(kpQC7|HUv)AVygg-O!eM?N!aH$X*IW6tkhWsw(@- zw_^;!jSG^*xD34*#t25q&%UFx8oxShQ{c8`w(GiK6P^tJyFh-tE-*IiTYrGEY)5e= zU&>Sp#brMz(D5fl%l7nEQ?mkigPklG92UJ9?>KWDZ&15<2$ykH@_tj`SmL1Q$*T0o zhLHnj(WiDgn$Z*(m*oE;*{qCM2xAe~*fQJf>&pCzgCX?2gsbkw97cn@DPdffx_R5W zVOo9^xsrQXGM1%o6^y2~S?t-x+gY<`G`soDhSssUEL2-o#L-w)$?)VOZJ#0*rSc9I zhl9k`36;&B)zB7n+1}`Zbw4jj;1oOSh6`SBoe@J2a`X;y$y|_A#+LJb0*84H?a%Vf z`E%??_t}rp&S|7QCTGz(Ic+?>#2&*q5l-^;Aw2v7v%3&A_YR)Fhtu-vajs{)KS}d8 zPM2$*ZJa6J!z4|KnmdxBB{EIJxgQwr!g+otNf~&D3F@T%F4M1*ghl&%NMaMO;eEDl z327$+OwFYl5LqCGi}p}z2QQ_@9$;nUa2w}R_c1ebmybTQ&-wAS j0~PK&4Qdf6qcQ+U^K?kb=x?70{$^jW_fhZ-$E*4`Ue;mq literal 0 HcmV?d00001 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 zcma)5>rN9v6#k~SEd?!9@PeqIA}vCfg0}!6K!K#DT0)@-5JRSAQkHCY>+BW{Po?pP ziHSad59A*c zLYfC^=Z?Qp^Q{x^yRz)JssPk3 zoMG^opK#N1P10K2woVljhJH_9D?)mf>+BTP7}#ruYkAl4d?Hujc1uKmo&Juy8NbEQ zbKo|;yv;q2VW6lnZSK@fEm~lRFV<|!vHT^5a5__Ah~(WvVPKFU_n&l2O(D5YY`h*Y z-0Z`3BpH%L%Mou|jjE8_0rgbTt#P};DIH3sEsQPd=m~^zw-0wPKn(mNi`Zt19pYbE z2TCP!U>%a*P&%{!PoiaCT26hzz!*K=MgD;}jz`7ZQ3VV$wx+f#jJ zP$R2pVi@h_K*lv&aHrLzX5XVEq-bzz8>dbWQFdFhCN?ZJ9K%<(MpjiFW7L~rgb)P{ zIfl`L1W9^n?n6+GM@>uTDB|eH0BKTmo1|TRvDA$(82U`75N^?$pdBcX^&)O-DaewV zx9w-rt~{fYUom{)7SqDOr7tkR2=0*~!+kuURRvu~MC+2#?-<<;ryiDfBdN#bPdbi@ zo+1Na8!_w<{|YfLYZd`y@*MIBCWvR6Y!zTegD=x5tdQ6RUO>y%7^8u&p6S#Wp3^Bxx)+Kn GUj79R4^`;^ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class b/libjava/classpath/lib/org/omg/PortableServer/_ServantLocatorStub.class new file mode 100644 index 0000000000000000000000000000000000000000..24aa49d5e7899d8a9ec408b4ae391c827d342830 GIT binary patch literal 1730 zcmb7F>rN9v6#k~SEfobSC?IN4Q9xip@kW6J3Peb?NU;e)BuhJ%g=MGiZt?QZ_}h2U zU}9pT58zAqCdM(BR}0ERH8A;8cpoT4taiu$~8JY&t` zS?+9eM_-krVS8zjH$35Fz4Drd5JTs#eJZmsIiZ&-UV3J2gXg{3t&*i7!qByAb_n($ zs)i^-^Mpfn$il>GVG$RmXZw7Om2E%VRmYoA--=r>p7-fOh$2@a*?6P9kaj_ z-n!`~wz#)03JFgnirh=QD%*LFl#oL2-2mZ@<}K4Uy>W(McTbKXloAE5p_M^DRq&Y- zcMOT>)`6kD9_P@&(2zE5{U~ByZw#lfz+acS>rqU8pHR{n0?U(BJ0)Q-bkt&$u`xva zQlv><>10UOayUhJq`o9vZ#T94|5LkH5q>x)sY%NI*xz*(HwKNmTwXH_i4!7{NzaP1 zljk$0ydPSRspkPH44u?YK?D$nMq@kb5Tlhdbm;|9k2cw7G;c*CnyTw@vW}t|Ewplh zc6(`*zexPz4%)uZEPzY&j?oCrk@Xll)GEl5`mf@r(qQCcy$aaIRW}u+);4{aF=oxlqeX+J%xTB56DW& sU!f;L4?7(9M@2C1Z&nHDo~#hCDgmn!Fd}%U!ew}b5fVp5uZTzg0v)!ouK)l5 literal 0 HcmV?d00001 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 zcmb7?%}&BV6ot-v>+dVDevi8vrZJ?Q}gI2C>9Ort1POjae{xqw%q%(V#aQ+S5zN@7G literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/SendingContext/RunTime.class b/libjava/classpath/lib/org/omg/SendingContext/RunTime.class new file mode 100644 index 0000000000000000000000000000000000000000..55fbc575e50773353ee65203b59d276fe70a83b0 GIT binary patch literal 262 zcmZvXO$x#=5QSg-i`M$Ha4jxf89ahk1wklOFAz19NSjDZMLn7e58$E1RO~`YwS@K?o`^_v literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0c6J6PMh1=iqICWI+;sim)V!3;ymaUMypq(468)gkypYV?RR4n1 zqQsKS{Jdgz1{OvJfvm)`ME#t^ymWp4q^#8B5=I8D;QZ2}o13MX_F-QjJ!lUNK@Wiulo3=?kR?P9GU{Lx>kjO$5&fbbiynfY zet&OP@Y&Yk|(>pOrAteA)}6tvsny4&HN-)r(4aVxmnRlIQ~ zyV{qH8lff(hHOx}3u~3rv%OtDsKgmkKTU%k6JtXbq1rN+tNZ5nItBWBJHYj zp=@`ova{&7)-k5k$^>coc<$%BpnvmqL?OxQ>LMa zt-WCCDWptOjECSBvUE=l2*_cEUJSFCqZl-A!U$`Y@rL=!Xl9}INN5DV6OKnFSU(e% HLe}y(G+1|< literal 0 HcmV?d00001 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 zcmb_bT`vPs5Iv(8k{S{9~Qa^BX{aiB`rYcZ{tb@lOch9WloC+CMhC@ zz9lOrn<7|lC|s^X*vpo`G*oopdbNDHqwuIeY1j8ej^>umZ(oTF`o&^tVJr; F-vN%>_-OzD literal 0 HcmV?d00001 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 zcmaJ-!D_-#5S&$Os#WR1A1D;ji=pS-TJU;P zi9MmmN%GE)cjCnnR^#P`v-ZwpX;g#MI&Rn+wKsY8mSv}d>-^|qSr{vXVWmB1FfCte69`R>4`^s4cWCPz=+x4B PuSgdU*NFDLl8gQyl|F2E literal 0 HcmV?d00001 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 zcma))O-~y!5Qg8$*EX9^LJ0}b0tc!zt-9)g6R17VB1J^0P}*=diM1FlyJ+K7>3`~_ zQmaTD`UCo-fU&a*mB@iT*yEXZo*B>j-|fv`0PnHwAVqi;#l9EIKukm58woA+k8A0D zN{r9bp}f{A3LRt!tC!-t@B+cgMSzf1;Ydyi)FC+EdMCXvXFWpcC<@0~gnA%?iA>+| zN5~zjQ0WhZdaKiYfc15(LjU0PfRH(gM$$zZ~Y5SQkb!R>X zcJLtFel&@P@>rRE>W{|x&M>jdoHYN76l&%wY&GHV&OGbQBf~bA;kC$~Q&t*%q5XD- zQhW0cs=utT#%tMz%uGt0QpPI#cII+C#~PnF(Uu`=)v?YvgRdm`kE~8{%xS0I%+Pp1 zyVhOh&Q>h8K9?=94h)Q60K+yC*gnHdA%@Ws*gC@+7FL|g5*T3Cj% U!^{bGKEU38$=OBn3#)p058umy9smFU literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/DatatypeLibrary.class b/libjava/classpath/lib/org/relaxng/datatype/DatatypeLibrary.class new file mode 100644 index 0000000000000000000000000000000000000000..ac751295384d40bdb2caf3149d00a607ab89450c GIT binary patch literal 381 zcmb7=NeaS15Ji7EB+j_d8;Iz}Anwdg)K$PmPSD08w1h<3R?O90cmNM2b|6lhfU6pK zpZfLhkLwM<6dfBS!XQzhqc{?mICOSG3!NU=S>}x=w@RqgMupJbi?eVdVYtn9&w(cN z1I0q~i(Z^$v|~k>kGv1;YbE2*9eahBa;-~ftS$i`v`pfojXGgisC&bN&aWH7?0*~C xeLp#=fY&l&Lhtokp2Q^k%OViUCPbiQf~mqXvu&n|sWr1{p!vNqeJf+pegfmBZv+4U literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/DatatypeLibraryFactory.class b/libjava/classpath/lib/org/relaxng/datatype/DatatypeLibraryFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..1ea738d65562ca2735fd354968b58504fa6fe2d6 GIT binary patch literal 239 zcma)1I|{-;6rATLQ7aoOFQ5o6wx*R-0gIgAWqpK%kjP^db2SSO;Gx6~1cX#J!xZy< zf1WP@2h2l^2)jmeqf+ss&dr4#yY?#P)RUyhl(mi7x<=a&6T-6OJDZBV{G63y9bsiv z*vY^|IBt@kICWaod9+RbDU1k5;r17L`bL5*O`kl7$PZ;Q;P969bbVqdRh8iVlK7uk$+uWA_#8idY@zuD%j zk@v+)TqLwPO-D-(?4pE%)-UJ6ErNE??Lb{eG||F&jKSRn?~$nfplU<$QSV844bLZ{ CV^A*u literal 0 HcmV?d00001 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 zcmZutyG{c^3>=4$gYZxa!Y826aH6IIL4^WRloWL4Vor{h-P7(8U4D&%58$IvoHP_k zg&7f-4mf-OTOnM)2M`t(O%6!)6_Q{ zlguA|*1RGN_xZn>ou+ZH78c#eBz(n6p45p&-6?gmN!TM04(ua9*E$}eXA7ag(H4)< O-{Q#zO?hgwgR?bx;94;N literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.class b/libjava/classpath/lib/org/relaxng/datatype/helpers/DatatypeLibraryLoader$Service$Loader.class new file mode 100644 index 0000000000000000000000000000000000000000..20f833b7e1655477e4d0304a38f55a0c045c2c58 GIT binary patch literal 1749 zcmb_c-A@xi5dUo{oRpJ~DxacY1uYafMf`vw#_*AtoHe0JVtl%`YdLbgBYSrU`rwN% z{w2QZ3m8p&HSv!!&hC}=H1MD$m+bBA%=~8NH?#Zm*Vpd=ZsDPZ1j8dwR1Lu$Yu~LJ z6)UiUgI#WHb7z+e-&m_3n0856;=uH*3KtVaF81s)pNK>aNrv7XYtJ$qi$I>1c6d2p z=vcO0J6K_8%T8@EBv-u(PoWK+I@-~}&|}&zFNC!c7tgGc!x_@1SGJrjOW0DbA0~rs z+h~=BJ{gFt8nC-3@D8Sb^=i`4swaK|`7n zZ~Ck{mhbDhh<=7{!d7xb3&U`>j-_acsR(Nj!y1Md`v1a;e07ZA5$oBzx?%-u7-v{(fyN^7K6YI$6nUIDU1C`J|Jl^A%rO7&{?wcLYeo-N z#4E;$)i!z}K?9zUZxzWJNe2CyJe@wmxzDsoAVsTG13tQF)guG?pC<|EMh~4x=l4j` z2V~Oh5WP=kexNJ&1p|eT=$y$NVzlrLV=rde5w3nBs|b03f&(E%cukS^k;WSg;jN0a zpmdo=qzoo7NwGRGitD&R2t8Cp7E`nik$1EMrjaAv4B;lpdRFDONV^1`v{Ob#GkjFo zI~8sqGH8Tr$Gi;JD>=GdFHwe9FvQQo$^4L7x!j4lNU9~Jr@Ij9T{24G9`4gWO}j

    • *
    • 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]

      a~B^DlJ?*_ zJY+D*4Hquu9l>2!GY{iqTq0nM7JWkXA->IG&Zm&-r6EZgGXH0+l+BIgp6{ZV8<^se zIMm!H*!B@)l32zA9#&WZ{xP^DysdrcoGS!4wU2WBSA4#QF9x7qxqfiLB!3KFVa-3d oGG3}p^C`v%bcZ8E^dx`|w{0gD-AIKEey8r+H literal 0 HcmV?d00001 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 zcmah|dr#9)6#w0^t!$RpKo}q*k4d*F72mpvjwv!-BynTL@W)cNI*O&muEP-ZJE;*! z)bIiPP{woHI<`4tmfrTBopXMVbMLR;-%kK6;i&*0!<1>&WOKJBXV+h@WaN#)wrSY~ z_1&7OS5-@ZpJ8xE*;iy;F>3Pq){a`S1q2yp+6(unOxe;^xnNtWvdcdi0{e>IptosIeVw@vSFpNvxbK<2C z7%qqiAcYdjODU2&v z6mXScw%w3!`66UoBN`l{teZy7nOctbxGv%bZZZrx|G6%g6+UYQfh6S|wgHWUGt76` z&<%`xQRe4{VM2;`6to_o@_S3ODN8z2@_NH=*PO<(fCqF$&(PdjAmSnSKJ1`4s>4Vl zBVvW?jkw`birNXMaAXhrF*!;h36Ujr&Cca^kp4pQl%%9>+AV@WZ7Mu-?p@ccSa_~mo zo*o``heXmC{o+V?$f}1NOC*nw{23y!BuDD;;Fh{WyAmtpP!&eWUL7p!!6u) zAn)L=2Pr#ya+bILObT4rf)oaf7N-JDr|#jtS6uY?Mje*qN2-nPqf>YKX{5jh8skTD Vm2Xp>$PSv+>=JaKre{sCAVNcjK& literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/UnionMember.class b/libjava/classpath/lib/org/omg/CORBA/UnionMember.class new file mode 100644 index 0000000000000000000000000000000000000000..7d83156b79312a356b9238c979ae8ad1b575bd39 GIT binary patch literal 896 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 pVGa)w>JEaG`&q~JDIe#8~>&* zir~UUm;Ixp=S>7ja53-Rcjw2s=ic}4_WB0ETRhJrC3tD0fp5r^fy; zy^)G`fA-aRtgXo-BUqW?rh%N`#WZkkqc}VsDt~{cvuk1{vygCk84V+h>E2ZD{DOn2EpYk>J&g zr-yb#leOjy=e(~41#o#q6yOPpp*fmN$}t39*N&sU+S6_Y^@n8NxOMTZI0;h7f=|Yr zT71C<=27Hrfq4q0P2 literal 0 HcmV?d00001 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 zcma)8YgZFj6y28uhs04a3Rs``Kp~+-`;%3kXu%rju|DBgsshOaS}PwpRQ4 z*7k?kE`_eL`uN-*)zy6`DIt^4<(GNf$3Exmea^Y}?|**#1Hd_auc1w#-*)nGyO@tB z(^D5m;y0`%%U-c=l%+Ganv*5hw5=<$P?C;@pg`vxW7&uo3@aZ`XYa_IE3o5&X_@X@ z0)hU4S%F~EUXWn~5Yo|(9Rhn&rX{acidpH*7}(q+cm>+W|bt*Y`QmW8Gcmanr92D5!xM(IhVOq3u7)QvJyOc4kdjj1) z6V+9TFplB4hF*cajVN?M#|fOI0(t3XN{(4HU2|Dx+?>GK{?=&QveJP*`XW7j!|28t zB~`z`Xn(4%FQX$R2|x6I%=*U1M^lRQ#K3GAR8dC^g92^l0tul!O|Tsp;!LY-QyiSt znV&CFiJT)1S7xfNG8MgeZ?$r>$-*t4hg;Q3Y)cK(*mkl4TG5l08F}P?fdtxbo3g+# z5BThD<{+syE!GojW!SIOh;`4;a4Swos|F_g^AxLHSddN_!+2Av%DOz`H@c05Fy6sM z4I@p-M<;b8G0KT*AQ^HgjbgQ$Py69Zw&SX)czqT9C$V1U`-@94pelLMAU~&k9Jch7 z;>cCkF;w$8?>DaC{NlDmQPHM!OyU|FQVp*muD+(O(kieJiN3DmU0h)%EE|Q2)G#e@ zsIh!6j*Mo~*T<$tX2#RkI&gzo)yk<}xmsdRl?!1^VNS_+Q=qFwwhzn(E+-KRaoH^$ z@8bg+FPfI^2#9gDIiuqv7;I~*Hz$osnQd}#E6~iMW3MQc$X2~{>Z2OiSPs``k_Dq& zP8wx*^HiXqIk_rubj$wcRn#_+HCP@;e9|^hlIVcRuE8cU%%f;Xk+=PEG<I!da+?NnZ5%3iC~K>B@KTd5qzU4+6Y zqM~CND*_!Jh*uq5O-ZK`I>a3;!9HA~&Zdg1xl~#?N%GrQ9Mh%vscm^mSKK;LK9O3v z@3r^`_(H?y0w=d&YAdLYFI67vo+mY~!gzqMbUeai=4f@oi@)3NrdQ8w9y@H$O@Th2 zi<@z8HOauk({{zl$xEiXaU5$ENcCDXq;foXoQGC`w<18}7w;{6YW$1yE%)gKPLvSd!1ucMrb@y~sR)mR-QLgK*uZO22h@Q7qT_5iC4 z_26TC!uef{i6;QTLlph9nvqn^NT|oZB2wEit~VS)7a0EsafV*LT{`_NFo^5C)rmD@`;u zzVHM1p^WDO=~nC#UI6!A&iVb%)BW@J*KYt%Vab?b(EV^=`NM&=*Le4G*E;e(dH$Jq zbi%_|pL;xr9N&B6yL}$YkQf$@?Ni%wZEs*Ty2rd1$tW|dPci~OjO?zAP8@RmGc-UF%c8R(TTnUl*FoTV8d z7zWinwN{&c9QOFWBSw5}+AODIRTcM!?i|fCJtcaW7#zBXVoeiG@2j+Xmi(bp^Cz@# zbTETCdaLvWb|B#e=4qvonQ&deB7Fs5DFf`2rLa{6z^weh@;POW#DUjDIUtY2gtU@c zXC$F?gTfNwt>9+H+|8JZSsCHh1Tqb*NiMAmIAx4ea35<4?g7^GxQh85%OgBIk1)l( pC)|fiaF4K^;B*)nuA1xtX$12t<(F2hOs4?9P%UX(ttW|9^&h#~DC__L literal 0 HcmV?d00001 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 zcmZXR-!20|6vn?(+mS7jV_Yg$M8^ zUP7F0n@}!x&&=81`M&dIKfd1H0c>J1i5Owd*oJTJ8h+{YY=6(c2&FxEtjl|+j84KM zOx%hG;WveD_`g0R2uuBw_r^ML)s%jv92{t;+*1;Rgj{D_8NVv65>53SF@y~J@UBPF9lC$y`HW=qCjo->!9W;;hn>?o~Vkub2bS|fNRb1hRCKsJq0j1k5H zrR7QM?n>J8u0u93bv6)e!;ZbC=WbL;SP1%e?@L`EOs)h!sjJQ^-6*WqBEOl)FVFi} zDMF(O+5aRVRW&VJmxn5fn(b5Hh=jdma1z82N0Lvo7($BcF#ner()@T)D(+;sv&EIT z#@E^yf9)U>{7x|j6dBz`j!)?>gh@>CEfUE01d2>XY+`M_jp@G%N4!L(qcGK_dJ4?* NVsjnyd7h48;Tx$cVXVn1L|Y|sRY{1z{$AfwoT`WV3K7$g~38Q6e4cAzdM1`d#322L=W3jiodA@BeI literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh4ORqICWI+;n|s{~#wv{V?BnKYu@0b_Nzk27#=^vPAuy z#JqHU|D>$ch0eu|x z2M|qs03XVDXS-0kS@h4&&dfdM-gD;8{QmRf7k~wB5 zuUK{didSn~YKSuQ?O6wwQMK%fQP|nzC6}RdN!Y^8GIS(UMTTh3Df0w65Z4hyCqr*u z*!*>4e}~I0Yp2Q?2J%kHsunFN)ZAZ;y1SyzFrNQs5hjDiKf2OVnP-!M;AQ*JOy#{2 zg=1`TN>CM_R1!0Rehg|DVCZj8Ko}iExXjSw6K{LM8Ag&9a4|58VK5{)LqwDrhE9>5 zQJbz5cE#+%Rg$;1nqMS~GpdMy&5H|}d9qX3buLNWT$s9WajBw`H?HF*CK&W4!>NqX z`mjcAG)6ABpXC;Wxqb#2W#;N!3 zX}C*A7GTP)3%ji2J{~Z1x$n0R)MZdkg~d^KW$;M#`(p<3J2XaJ4knez|JOxr9{V7L zOBu64x-(M>4Yy@}_z9}Um_b&Di6v?+$3rko2PzDwq#AtHiA|>=OZ=r!w|6M;E@aew zi%x(Z0D4ORjsEE3(^sRJK_jCvmOe(;H~NVnL0`2EETWsfdNY8=9-75*3B9z^4n9KP zSK2%ee$fUV#uX1df>9rQ%cBK42F8NWf(MOwfNQw!1F}S~);iO(N4U|dHQ}wkB~kA@ z+;B4r&6G;ZBvi7vYG$9SCHn-ogXu+Erk3WlzsfWZrzo{4pM`r&}b= xdL)t5&xpFIrYGd5@{i8iCpxF-1W$vCK9iy^ZHk`ZIWZ_j%bp^J6`Dnm`wKFbTD|}P literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/ValueBaseHolder.class b/libjava/classpath/lib/org/omg/CORBA/ValueBaseHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..7976f5e3e88558355c0bb11ba281c0e6cc3975d0 GIT binary patch literal 1184 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/VersionSpecHelper.class b/libjava/classpath/lib/org/omg/CORBA/VersionSpecHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..9718810626bff9e1d598221883885b1ced504524 GIT binary patch literal 1744 zcmah}Yg5xe6g}G(LPB_zmx7ACq%GQjFR(?Fhe)N;8OrpV!=&v_2~(0znxgzG^#eM7 z@CW##9Pg%~&vg8Sj4h~C5GveS@TMr zvGXTf`s^ZBdLHPsv;)j1&rbV9y1KK^o)Wy)+A_MjuTj= zo_k8YRIs`3a4)Gdr@$~9N%fR27@w(1(+RpCaba!O9Z9Um*QfxLQITP@v&I$6c0{jhDYH^@s4cmEne-{4g4cK>fiBZR zdjb6jRJ;}L4~m$L&X5c$B(XCrbtLOYL6@oTvu!xkG>M*?Gc~6vy4zE6yAE(D;XT7* z57n&{DpKOUsczh+ZtGU}axdMjBtrO=UapaFC2Q5}0zWXs(=yf4g7s%BE}nzXJhf|( z9y>syFM5|~lxU^V%xLb5{lLIC`UpUwQTzrrFi4|XKS1*ktz-;igmwgYn@$I4?vJhB zV6=%=+}#}tv+FWU)lXpx({x&}-@#qtkTHWb~BZ*@XSjc8;uN!@k9d)W8DZ7#m+bkQbE)n&MK@dJ*CLAaQ9U1a!3s{oGw E0TDip>Hq)$ literal 0 HcmV?d00001 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 zcmaJ>%T^OX6s!(`A>-g9D)@e(lAsdtEm0Iv6p2I##)S*cB=iZbVUjcHp!|~yWq}?S zet;k4v3imaG9+%MA9HWry4BVF=kKrI04DL?LPX$P#V@5Q8>Q52cKO*%Dz9p)pvp>b zy^`gs^esdM4u5nv-Bj82N~vt&qbzEHfk(npQvZbtRGstH`k{GUad1(jEmJ}ZwTLcufMRyvo=+c<)w z7UBX&I>Gqg!7&^ca2gn^we^ZYiYA!G4qR_b;Aj_AhUj&dks>Ex$uHV>P4C0q7$kFs zz*z_9a9&`j8QdyGl?V~lTU9D?Dv=BoTj9P@Fdf4vu2{ItHcMW;c_vxEuql0ZpZvoJ1jtW%AZ*#+ehL0sBK3X>LY z?o*XT9NfZfx}zlZYSmX8N~=w|s*3_Q!wNO3rhE2nL*TB1d$=zUQEOyPjoPluv3akQ z9>hZdyKPZJF74nE9@B6|U%FbZx@G0o0uuSeeuOSNA$eLS(UU5zsG9~l5!S4gJct>Z zdj5H4iZ^S*R0!X$smTdy8YO2oI~JC!N`IPLlA8Cbb>xMsCPr)t?U2nD^1HLdos+{b(>;v4Hxm&LRMh32gkh`4wlTt zJP?%GWm##lywZ#1UJOHX(=FFY)6P}ueo@XT^WYqB8>R76lL%~n&2Qi?4)E(V0yqwF6~jRs;*Lq4W^{z(!1(DM9ByaZ!R}+0 znGO(!8&Md>2%`=937jNG45x6qiPa{ugELRR!GDO}W${8@SjZ51| z>|kPnv!A#Ve=xp-sc*Y*aRvfeR$gSEOJwwR7usfj(|E%FF>@uG(4zq`&=-H&hH1$2 zAxJd>#PAHW&4j&;JP$Wg+O0;(F^|_l@&Yo=CrOP*mU@ IR}tj@0o|C4$N&HU literal 0 HcmV?d00001 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 zcma)7U3U{z6x}yXI>|5)(qj1(Q>2g&Y{W0rAlimvV^dOT2*!$Wl8niebf!)xEq(M| z{VnKnwJhpFpZ!rT_nnzGO(-m0GBfv{yZ1i(oOAQb#<$qD>qh+rYkUd)3i+YmcU3VT@?ry?3STo z1ThT}j0(g{re)mitu+j%qBpvRz*xy{>fNgDnDRSV47(k3L*QcRRT}aFit*TWbV+wzk&6hQmN)G|9+m0*ua{aKpg3~WI z%I>xdCx!`})o>2y1tObzx5t!2D+K|e3ycp@NX^{oydrZCltCf0C2)!&`!%30(`x5c z2)wP~GN$OiyS+}rb1x)Q;kv91qpu>ZASEy{=+AzHh9o8xWLdjD)tuwlP89FZ_oc3( zZx~6(kp3iP-I9%7ds;;XIa%~~1v04@RUTTYbR2t2I-5^d6}%@fb+nQtz4=IQ8@XA% zwP0FIKV&=>xH{zFzV4xDS~hB08-~MPIdfF6tQ68!mBsp4ivEPfO8F}Z>F9DyI$j<5&5mOxsh7eOt@WPkcbwnOw{b_ooWP|)lMZ+f z9nkP4<^^Jsqu#Zxwl|hV6}Rz~h6R*3!rtCile1md9Y^2hOfm6dQEHBul3d{Oki|!F zaTJyWCfimoxG!YqHQ8YsxfzMOUzQl|p`u`!%{!Ptr67x{;XcT$xR2^m6T5PV+Ye*g zmhp|OR88RQuz5j@m%^4~x|{&E;2_;W4&|QPci1oaL(~;~&nbG1BN~1HCt3A)0+Yij z+Na_nni^Wt<%GXGVDqT$5wqK0OBpGa?Vi&#?wIn{93Q-nr{!pdCpq~eyuks5Z@h2$ ztMDtwr{FV^*+ukszJ#FiS8fA0aE!m2AHe5ve#LMCajwY2b9{#QJf7LX$$wan?4LOE zgbO~1>TS*=ilPTJ;RoXa-egRaDlXzJLd4`X5Kd;+73SLC+)*^ zc*taus~%j^KZ0AHW*)}pI8VSBE&77$LwuXTY(OE^OG6Sgr0`dyl*x`{pYNcU?VIA0 zxYXPu*ybT)5?I7t9#&WZ{wH`Oyr~1|tS1CGwuf@<4}86g2Ypb#Tt9nYl0SxTu@W3y o2sFhrQp$IMq{eXCzc8U+nf7mo6vbiSN5aXpeMJIoeudEaADDvCy#N3J literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WCharSeqHolder.class b/libjava/classpath/lib/org/omg/CORBA/WCharSeqHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..4b2fa2f452ba88acae83d79fe7526b5a2fdd25d2 GIT binary patch literal 1494 zcmah|dr#9)6#w0^u56aqKp3DXkI5cN#kUU8F-4|}ByNrv{#eRZN3pb6ItWp}lNy0U z4IjV{Wjwd7W1S;r>22@Xx##yd=l=Tr{RF@~o{0!BTrjP=Y;M=(-0G{Pth|=nRIH-< ze#O*lswE=G(7&bZDYC8@b$NATORd@>LJX7sb33MGD;v5h7i~*bw)rQ6u&3w^dI#2X z4Bhs@j#@Qqw4W~2jfMyKH@YilElW8lQBsbQG7O;w&Cu*chOR`i%n;<^2)fWG;T$9p z14QD#b;20Lc@aYlLw>@g+zZX9Nf^cm=k~6$UnS)X!-YUzuwIfoC`25K}0tv z6qj%Xvkc)~)h?(;-QFad5_#@c5BE+}^orL4p+aq`G0e7eZ#FJ(>@;k*dzoZ8f~%Ml zagAZh??XXo#Hu9FHpsZ#08Qit-LwLF3pAGi@ex z!s1p`_|PznC6a9iTBoP7Z)rAVCC*g5+OYkS7qBSeAlH;mIWb#jE6Q=Bn`=uEK%=QT!9#x&L(ykWPd zhey?sAZd(#Nu)ev)kBV_(nm=D6bLNMk-9v%`OeU;#40&dLkudFe%k^WZ$id#8+RPY zySV2;%Fdpg<)uH90@t+=g#n|*DWU1qeLV0Empr~Phb8%u@zH&J>P|1U6!<`G{79~R TYM~cv(u*O7Ck~yb4v*zOP~Ame literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WStringSeqHelper.class b/libjava/classpath/lib/org/omg/CORBA/WStringSeqHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..434cf45029f3cf92c83a831bba38190c13f0d0f5 GIT binary patch literal 2278 zcmaJ?TUQ%Z7~LlgOp*?z+=4B!gtoM~RATG3rmX^{1qlTS&|+0OgfSTi8JtYGJnOT| zZQq1dLP3q+>-BJ(~xVWxuYnifEDQ0F@*Y$!e(0(80S!4wi zeb=@$37tsztVb(*+2r$FgQOcnHi9nnDCidGYIe^JDtggJQl8fpZqc<(m+5dK=|k8u zEnBW-8fIAq{b#9Xme+JEj3_RtxQqdTwr#CkqYgbSmf_+hEMTk& z^pbfC83eAWxQ=1w$==%{hs&=-xWIXtLyC42Nd*akXtQX?7AoQxQjlhj8&DILWm+M; zA<#cp*0ri0w{$65T;?~vS}Tr3kU~Zl$D0DF#H%b%%q)~Fb4SXZO)e?8BQV^W$(&Z$ z(29CyOk0~aDhxlM?+V=Xsd&uWXHCi4jY?IwSW(GV71bh5$)yMr`o4_fF7-*AV$y}I zihH=vx^oels_TXytW|M2XUeG9rc7B$lLxNkWSV0ZDr3ESs++0GR?T(`^^{}r5RVj0 z2wZK}wNB)O2NjPoDG-*RD`m4%bWZ$~f{&Z71^2{7@DMo_GZ+$3ogF(>=Q?5a8ws)M_Fc$Gt0k5In=71K)WnHLvhGm9e zZ>$`%iTYT$hOGU0JeS%1OyH7VU(ZHnrftVEY#yVm-=-eTY|U;Y;gm9YfmH=O_Sc$8 zxAdW+046=+0DE}|CZ=RTzQC6%ir_8L;jY#-?`v_)B>i^NVaIdjlc6Ovvk}RgHLIXM zGUPqp=YJwb3ZSsZH-LYIqYPWYwk>sl(9i4y5aC}g1MlKI|Eg=iwu7TE zE})Y$a`Ob+0Nak#J}&-+XfFLLUVF(2*Ga@#e2fq#9Y;~u7%{v~n-E!C!603P<(1{R zoI#L1pyxMS-N%iW(}zecci$qrkw2YTdJZvkA0&0(uZn zFiV>d`sG7Kpa^;}hff@6z8W5M+93*@Kg9g9KcCgIgbP6Fc#u)t& zpL|s#kZ9xs{1<;g-DhSjZK?V&=d!c+UTd$t&wT&+=lwyV!fD!)5Mx0zRq3_~?3 zYgtn8HDUI2@XXglT*nOt z(TX@IT9Zj#3x(?qlSk#$7{+R3t4D>TV=8@dn$R>KH-XL0P3(yrhUqA1rSGPDY1Zyg( zi%A;zlX}U>C@U&|s$I47HN{^n{U@kR^m*W-l}3vG9qoLaY4?zY-W{#Ybc@4HC!iy8 zf|kfvv_1KR_7n6Rq5mV9UARbVJ2?TXw8kiWiSBC{BnwYMp}2%0+IiYxCvAazU1S?O zpEfdigptT+^wT$TdW^9%oIZFdCRu^=7~M!=6k8Tvz|QI5QFer=G#Uwn5pj^;QsE7h zWi~Q-jLC19CbWk6_h{pA17w>`zHzYu3;f-$AO9kEh^}veH=N=Aa4;FvLVVu zW^og@ECRi_jXRd=QOr4%B-*)99uD?_4z{XZ%eYseq^GRpJQkebqEklr|uu&{m)gw@PTRsllQcC+Qdl)0r}v^nw>u z)TIyVvoGqK%Qr5I;*zz5XMdE-eP*W3wJx((GdX9@x4&=i?{fP0KY#uO;5fck&?3-h z*@d{ZScoT5vs07t>uJX}%tA&hmi5beaY?rovB1%YU?g5tRu7wAY>X35b^$2}iHyTGC8^T{!WG%Dd6!x}q2 zdQ2eXtaum#dy=(r%&jfy32Q+odT1hFG)%)eBM=xI$_TW|7hy!POTkWo?t)qNU8L;X ztX?AfyrVCu*o`iMaGF{ab;mLVcGh{JT;mb!L63sH0y}C$;7b+zu%9pTwyrsPc11#) zg{+eo*f%&mREM@1a~J{#RjB9?=u8@>K2u)I>GqryR!V5)wPHrI4Y~F=gA*>r2mo)464osAQd&#_Up~U_p1XGC#Wphni(5LIMlfWmypd6N7b-n@OKGm&y)PqHBxe zK8|6<(>g;f8h2&5lxr9x3XU?cTDh8ms2Ih7fa-ep)e}$*>PQy?hyPC?0_`idLHYgg z&ukffs_aza_hhIKe<-8i)tX))UFI}`*KkU~>jM2-(5ePkaT;T+doQj{V!H<$wU-Vj z1a{Y=UY(pxU!F{cz@qN-BIwgsm)Mm0LImSDCu?9Va4CVEVJ;IY&f|hW+oEAwwt$#c za7kc)r56)LtyD^ACFjCwUSDzyS?!9oq4SZgbgm{PTTRQ-gmMUUHP?^6nYZpbJf98` z6n)jPwYV%vGVk=cZ_Eh=Y{-4J zp-fGl&!(z&hlOF5beky}tQSC{G%I1r@{S5y7X3EQdV{1pr!<1K$|e^$Rgc+hE;OqH zdBK=6kE<#a41{o(gQI%b$wB>zicj$w>H8De)hwH{R^6GLY0`gb4(X+g~0#=z~MbcK;&g&Nqc_DOHv-B?PQQ6rX0X)yYHngCJqJ;Q6 z%zM8D5w3Z?@OL|Rx1p17wsUoY@8qZb5q1RD(ft?)9&*`&UVd*Q7;u?Dmk2O{KKBi1 z%KOF#i1R79-xhm{Llx7YyXl#z-T@rO5grtH83X*5-beV9#(`+$0Uw@M&-9w>%`*-7 zreT?9-?ZN~Y-&1R73d&_e1p?`O0I3g>xk8R(_ND;?||=(M-j&{nhE~n^okF2pPIB1 zrg!-03!GTT$=}d*{TasRqi;OL*_n~( ztl}W4G# z1M9fSy$>EdLw-K0KSd!q9KH1f#_)3<_q6tc`i6z^Eq38M?8W!!#}5?k$0|jJaT_1e zrk?>6u}H^Zn6Uf+rimp3=!j9-rI;JS%}OPBMf5Yp{Dr)Kt%B|FVQGpIp(U(?vJYD+ ztS0&T-G$jGtYu~iH0JF0jn7g{!MznjXtCA#Jc@^K~c5jW^ZJotDMtd)`6qs|iS pb9~{0o$(0+-NW)T6NWEB3Rc$ozyWfW2VLUTCPZ3_y9hX z@eZ(|Ztl;_H|N~BKfhn!08S9p;V>L%lZASch0*=P)n)i(w91BttDL8W)T$1bVSkl* z%!Rr6NX4547-|<%$)e9tX?GF^H`33-Lj~&%R8eDS#Zrm8>0~6#kdMZK!H;#y#|bym z_RB-Jc#%27VZ3Tq9;n9CUsVz mNzn@QiL`93do)9zGjTGZaG}cw z&`aN=x)i$XQhV(~x!h+ml4Jt4H<|Ohzi;nvpL6o}KfnJ8;0_KHv_Xfs72?VC z`s_@6%eKtIrmdM3E$#8F z+LP9<9!3Bm6&<)Ba5-g|`f9b5)9p=_k-k<_c?l3*O? zs7$P$(U@neKCE6`@_3Uo24x=>t7{6r9a)X%SN7;j)eLBBv} za{vZbF^D0il(%)w(X;wtUN6gfWSzXg&S-0h){z|_oyN2i=PJiqT6RuADY^VumcEw) z(FBHB(QUfn-l#9)jCqvs4f!=l#4-xT1a8*LG+!z^NAv#?UbKq4HJK+=T*BorVwjZn ziVI9N>ae+ITTi5^{2@ZR5R^}pIF(l9XS=R zuObmjr)9z^$ssH~3q4fHpWApe4-1P^RQ2x@jNGe%=pyB~OX#EBtaV(+h#Ten`a{ z#B2qV%W@iTls=zhnpES}lI6|0G?$v@B|a(jJ^Lb`zB4&R6VlX#T=4tqwEjzGx$4wh z{VGPwLsvk+!RErA1*hUGc}ZTB8DuN&y%@$EmRTo52IW)aBYGAJRf#sp<`th9Pi(_s zMHkOymaaN=YQ9K**YPliVWOYNFA_>QBr@3K1JS#{CzFrN)27!xxx)ntG0f?dakOK3bWGuKb483DQ{K zn)r(w!4MH-JVJvAawJO$9<%i&XL9`eu!~;k7@%u!qu{19Mv4sNr4!`ZPq9t3PF%-l z*kP-eVt$S%l$|FEO22>L!!=8bvS0L-u9dpe*q*O8zSRKskPN Wab<0}4mK+M%9ccvHgni(L-k+A{E)H$ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/WrongTransactionHolder.class b/libjava/classpath/lib/org/omg/CORBA/WrongTransactionHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..fa842cf547e77ff8e61fa057366bf96920817aec GIT binary patch literal 1257 zcma)*+iuf95QhJ4ofsR_mKF-M9D1(pKrF;%P(`T}S`;-BiNY0)oMaVTId-(Qi+C%L zKtx>d06Y|8*0$2dP^A~%lV`s9XLk1YpP#<~JcpxVhG8odeJ33BorC(j*ZaYY>GjZ_pF)+hakp@`g$&z(jjxI2(bhQhh) z$270iCXMsKDh$P!Uf@N046~-yVo(mk9@jC8TLv`f4D&TF;K%Wx!$mWNFV@1Y>$hCt z$$fUHL?68~hMg$^)9fhhra8s3Vzo3d+%cfy27@70dNOR1SfNeH_84~am~lCdf?*t` zH6fIa2Uu0HGQIrVA97*fAs$gN(je9A1(}u*U5h70k%pY0kzPH0m@1drSm;tI}DQ$HLuuI>ubU~S;;J_QA9FfP{gtVMm zXCxWvF3FPemT@m*?q^KRE{$-10+|YHkW2FtP8;JiJjRm*w}$mRu4I41(g+(D3RBz% o!kt`!+re&vGht=8aInT@e?Vs;| z0&oo^6IW-&(CZi*<>DzfNZWZU;a0+zQ?&l5DQs**SaB}Xdma?MR ze8!Dtfi1PLGK(7?fsU){4K=76!MJAXYDRxso)>5@*q;f_Ea*n=d~`%WoD+CHV&n>z znzIsWrl`5z`#br^VD#=^0?h+@PPYaHn!0-u0?vpruX)h~pMqAj3ADxZoHkL+&S~a! z$$~Ftq|{78rBzxi|8!c5dO=`!tk&V`xI+T_yX*EVagS&jEv;Hws3+ltzzzjFv5jsg z3!0UjFK-HX)?T~*mx|F?)SSua?x_RIT*yd69_$lnNv3HqV_# z3G{czY_&6LE**?prk+cOF4S{YVwo&j`JzRbre;Hu@t}f3=oWA%_1q2P8a*0oC`8TS zh9;u9Y72fGcB5BddpcJv7u;%qXSGaTGZh5TM>*)xyue^Xj?%^p|9Q zOy)){Xj57~b6eohvr#k0FXI(AjtlhG7EDFNa6X^WQ>w)x9=(;)^72K&t9VVImD#HD zl=`mAZ-u4`7jmP2T}O?Fr{ZVBG3n2Mf|Fn)xFkJg>LBa7tb1_+r(|n{Nwq;$l*%`v zU=KPa*4K0<0&ff7&L}vGDCx6$&M?`PQMo^+Ack?4pzOkkS}d?Q4p;L|FPg?p*=V6^ zZ`S_0F)7f~K*T96tD1#HHB*t$jW+~#)xytnWK;kG4n4wmyoC>v?)gE2zvXsEcv-Loo%e91dlW7Vr;w_Gic@81dxb4A$oF=-0 z1v#0WNqwFpcT0EA#r1XS24!ilFJBJ~3d&ogpI1|#jHq-ymG71QqkTs_xGvDS0c5Il zHA#$sH*OToly+K|SI(yDDc>h;qKkeu!2uWCeA|f@NY9_+1?hl-X1?=s;j^88j&T)S zUH)ZkdTc{B^XVlN7=shz=-``D0$~fb@=FqI<5LoxCQ@R(lEB})gzalAt#kvJCQE`& z%-Bp@OXxC_w6qJm$wg_hA}JlD*VS47P3+v{9H*SP=i5-Yv;DSG-{(n@fL>(My> z9gF>d6SI5?En{e9#=nH&DuCQu#>hm#H~Ivp1B9KM39R%xOAO8xT5&LIjY z4&ilsP0)uJlk3%8^s{^Yldo}Q6PUaD0xS<#_^lJjeT30twi3RAhUU?ri3Dgq7L z#qmDTAJFj+`E`%3KA=GND9}d?;bRK)2?hF;0^O%T4=B)m3iKI+dVo=UZj0fkMY>-R zWAs175VAGPf&b3H<;jQ)JY5y|Lmb$+ZWbS6^JZ{c-NVC8fM19F%zasK$I{yuJ;9H^};UK;v`U(2Lg2gh9bM5DPlIt*@Rs|ZV1RAac z+EUJXMx0Q_v Im^QlbFJS+n+yDRo literal 0 HcmV?d00001 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 zcma)7?Qc_69DYvM?vCzmj6uf$c^R+m22@^^4JTtTDC;&@p*T?MU3*e4-u0H-Tf&SI zVI_Ge4hktFs!y0)36kW!rI$SxY9TX0OY9T?2Ip4uB$#JEm<^NIh4poLGN^I#Co#MRiv9M z)D{KWmWF-*3q>(Gvp`a@c;af>bIUSH#bm~H%u;bk!#29Ld^(El*r{QMz{W-;zVm0L zRhEv9UDz!UG7C&YJh2j6Kr6_K>)7*c*rNpX>lnaZ3dlL~MwLqfgYlL7t|XeNnyR|x zs!Qt9m>W`v`*kGoDi6w;rJMHq%=~y$cN;c0Jt9>Ko^TL{H5?KcXtbf8v5|6_^=!B- zveUQnvaAL=j^L<3XHmKVFoE6ls0mCUjvRHEx|4na-RYNk=h= zH&l(XbYm~D(l4YFI`&|-^6R9IQSdT!Fawq}Dsozut$BexO|GAsK8Wyvglt%I`5(FWmsTWv-pNAvijsLfql(_Uz8qt*}byncun$lnNIYs z$dX_4Lv5H;*J4^n1{WF58f4)ge>vlp5v)O~jAV68VoIRB?7fURcfQOj<};LP!{sQh z;vEfd3v6%Vc_2MH-o;x2s}!-EWtWNy{yiO+)vV@7x9XJm4v3UMG-Fqtyc{#Vw=(cN z?N=`W`na(LAw-~Yv=OVIpxXJYhoGaCV?K&(yEt=*yQ52?qGt|6(DHsKXw32ere z8s-u1P^8+!zhmo6%Tx4a9`Q2-MNRPsW&*U@>$G@HY7l?(=m_J^h;)BNvOzOJM9Tws!amNk*yE-_E3Lgmv!|X@ckHPgM9rkJ0 zB!zg+8RmgGr-LbGBgCk+7)P3;Eu7nh333yv3Tx8;;dd)}jVtNr1JVbc;=*9W*B5!z z%!Nx!Axma3At9!IizmN_t&-nE;^5pdulKVvhBcg<=jw-~{1HvL&A59^@@+iBSbul9{~m3)OO(&~yxpVRF9KGK*R4p^t9&>NQ{CFR$vQppI6C1z?wYygi!boBHJ*f literal 0 HcmV?d00001 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 zcma)4?P?QI5IwWWCT-X@={DBZ&uVK)Qg!jCC_;@2DWMgkD}qpN)606xX794O5%Dd2 z69tRl4;6I>5sONyvK~H8%#OkBvA=HL> z7|LwO6t6l@2((R@YwKiaL}Ee_kEHv@{q**?`qd_s2YV_>M~1N8J!7_x#d{``V(@@a zU8^*1@ZJSJF562eV}|`%{<9oZ;9EJ^ z_pLyD+qxPS*!mp3;hF;9)z&vGwl1DlVai=5d5+7RSsl0G z3a)a*1h~eBa_>4n=&-+<4`!bUII@`A`iiB`?2O4vdGd8m=#2{|goK+|OsYc?z!TYNMReSkhx>7-SJ zfR~xWFyDOteE%H301WXEqao09UQ4&ra+)kAud;AHsI?_Iai5eel`ZL=Y(YLoOW<*< z_DWinYniOKv9UfzGg(tFWXD7uvs69X439TIx!_p*Le$ty>TLT!o1Q1e*LVpvn1f U5TW`*jN8B7Mu#UX#_BHT0C}81l8J!}0H*miTL1t6 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class b/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class new file mode 100644 index 0000000000000000000000000000000000000000..d4900bef027793a6ffc72310a4f7c44fddb5c445 GIT binary patch literal 4453 zcmcgv*>W326g@4=mMj!P3{FVGqL2i?Gs?`!aoBe# zUU}j%1q3KkMR;+lpo-;{51@GG2lxWQ>7MaO9%XQN;bmGgef!*VPv3jH_1oV+`~=`J ze4Ii;;6dA29JDKogToV3hld8Mw&NLdWjT06mgS=1$rO?TcbzwujKQ*DEe=l1otN{T zK+CBUrv*Aj>oe1yV_J)Ofepj9<$8wY%^KyJOru@k@@7TlRd26qT-95pRDUaQPWXGX=MXxj5edDd`D^&WgoDgpvKM%Ph*5#2fONNQ1V zg!^aC~;ubZNJi%D7RHMJ-~!J2ExpGasAp20_dsu5Za5iYT2Bp!U6*^;Y3#lf(zWeD7`|_t{A3Os2G;9C>`$V z-Z+@E5&B2;$}xXoK85W9+akL#Q5YGU96dUAbbKa*ZMa{h*#iQdUCrC7^0Cb`9C8xa z9B~y=-lQm-Obutjn3sj3ToA~pZ&jNzToxFNVLuX8VNx$(7G%P0a8r0#V9VMV4i6nE zOb$&Ajj=k7z)iusT&3V*ge6om+!6zib*pSlw_phL#@O6Ki!*e_Ma)!l$tbgq;{&_3 zQr$#I6QQiCS72+5Yh{*nWtl2wE!!%{W!92**GAt)ndxvFtb^TAV6C=SlFr)h7H(cz zX{B1uzYrQ}dF$rQn;8h?v*<<-lftx?>oOGY^~XE3%VC9wOpShG>v&RqN^M3b5a z5i>gF@B}j4f0LQTmJO_?WVOt~Iq)CVZPZQGZmX$;6xbCPSmOfCF*p#0;v6@fkI`uB zoqY1PG0sFm!u?&7E&}a#RXT?1&H|ep=~j6%OBP6#XSgh~_?hh;u5^}oTC**<-fEg2 zisKTKCeuE~Y7tS&Q~)dRaGaQH7m;De#F48+V(X)bj% z*ib#&zo`lI#L(|<5FohKr7+K{Qq1Q2L`QgCOM&&eIl486YYPj~QCGCZEJ`p*f~TF{ zBr4n0=+57{3@)IO0(<_(I+mWw!h+4@;(B#E61Zp0@_=myMckhTTX@SexwGoc%c6!Q zwl1Sul@>FS8&#Z5NP3VC78*n%7 z3C2!6ZpIc`kuA3JsX!0Xb%JB&M{GOYk-mZZe&$;Ob>vSp@@C)4M^^TD5IG3?*b!hp zgq^h6#knN0cWd+$L|383qhHbJIo~RZuKhfME+puOr?QTr7kzr{#{lPfL&2j#EPFYs zSQ0JQ)UzRmKN@04gkBQ-Pvyt(I58B~6W9}A9p`$*yuG*YDq54*njrsbAl@EAw)>E3 zA)druf(Sf?rvuRagj596J-r?KR`5)e=HCr8(;;Tsmzo&+ae(WU#BCf8;@R61S#&mV z&4jqY77{Ik!%QH>^$3mzT-Qwuv9p0~6Dl|C7>*NL-~>hj%tL(FnI6eraiD=9PZgED zda2Ga{p%#2(^)WzG5tP@@c?v+kV$@v%`x$!M(^>hLiEP)C$ykSh)Fz8Jb@`puSdER zLs}=5COLx_w5qc>6@Z=OsK_S7b@i;LsCc7+WK)W2+f|YYyol49-`mTpJB517tD?Qh~nwK6)dda{0&sc`#UbK zz&+KnH~AH|_H*J=XYz6NrN84fHN2k`ok{iirz%BfkU6BFyJcuhu ziO-Q0U+^#9mv~5AMVI&*d&D=$^Y;nyEhfY@%!u!FWP5ym;r5;jDlyCadk60_vhCQ1 W_wYU=+09n<0o#gdR3B<>Kl%rnuPh({ literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0PId++Mh1oaqICWI+;n|s{~#wv{et|WlEkE(RDDkuAJ@E+%#uoW z1{OvJfvm)`ME#t^ymWp4q^#8B5_SeQMg|eEXlA~CaB5LzVoqiiNGBr$S8#r5QF5wV fCWylaH%Jep8mNnrff0A(4R)!o8*8CUFt9`qGD{LZT*>Obw}O@GIIROIYOWM)syE^ndz@ z)Jhc+4}1Xs!EaO?2dF|Hs3ot@cz4Eg=J@8%)ir=OSji&Au%V-tt=lczseSpdZFh8J zcs&%htC}(r4I{Oxert$MQe=@~c=?pzpT$PB`;H7Ulur3qZcA{K8}Ts_NoWfoumC4L)m+t zRmmfbSqmeWV|csj^*Ro@YT3Stq-s^%{|T%GIZ&DwEDSS@dQyq~Zo4j`gZs3Ko^J3k z;FKVx_wX`fPGrom`H%RsQ>!rKxH@_aGwg;HI0T67^Ss9$U}y9fx>!mEd2}PmzY_f`;8Yrd#rg{M@SLaC52DK a^6-k#IyKx{|_%fa8KHYu#GMgX2zI+3411l*c1kU(;CyLsGE)TUtqD1bqVi9Iss6v@HrZ))7uyC~+SHtqmD) zJMyvXy5Hi;sYL~WG^5_QzNBcRnim-QqgsiS-d;YERc3|E@A zc7f)zLu`H*B?9G_Q{S$F}z9tG@5r(qq=IXyLdqkUa{owv@H|t+ERYcen`jG6Ct)-gQ2zS#O)%qpfweY?_>U z16){Lh8x+OQ!Ch(QKDyDwFi59zzCu#r65^ve4bPn6nP__sVL0-fB((DE{fd#7pE3GdzTG!7hs`uHBk7|SC#%JLYFvpj*5EKlJy%QHC3@*EYd{4U@k%S*_x9LEI9%T$T7 zUyb~(QCn1{*Xf?1zXmeWZIWx=i}{DYGQWk}oZ$}cvb=};EFWNs)Rj0=h}aXN@OI@K(uiD`o5zdHJpc^%T2Xd;BhJf1*M#-}K9#05NyBJNSC n==y7=rD!&bQDsZ25{g*HGUa|wzwtkP6vsQGQ;M1& literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class b/libjava/classpath/lib/org/omg/CORBA/portable/ObjectImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..3c4203072c4a273ee5f3972210aae70fcca1211d GIT binary patch literal 6331 zcmd5=X>%Oa6+O?IMH;tcOBObg@fI77lzv z$k_lx!V*F@vhQqWaRN?Y%wBvVRs4bc1M)rJN#(xRZ@OpROe0r{RHam!rTgA<&pr3v z_g>E@|9jWaJ|J*x3oAqK0R~rz-Yzw0&BtHqtgo~cp;c5Rh%qR4C_x= z%hsr4l^4~WEHVuJ&Ca0@LuZjYe9;Ox!A~}uMEHl4$rwXspIx?t{R|yL`8kHvxLf2o zbfDWn7jg{iChanxs+JbGcT8|&=$mv4mNRF0w)n0trh+BgXV{q(G0uo$t}_cBCx)iS zAEX9I)S%+RB!{gIw_D3i|l|5pr# zY$2=^!zN9zI%|e5x57P3h%UOPrJ@YEisezo0`5@{ZPaj7g(;NBgQ{01lR@1iE;oVk zdWp$$i)Pteewvm-uwpvYK@6KU)5d0C@bpsE(`(H~!&$XMlR8cG*RW`v5r!x9@c-*h zNg_r1n#F3xu?upExp+u7RKx`NQ3F@vDyn~j!=8jh5?~m*%|#xV@uIe~C1T6C(Gt@i zdbuUbE}JE*Y%R*(+CG%OTPx2YX>%kr856XxGw@Y>jbVcftV3Lzl)&c$Q|C)cHmz&k zajU>7rQ;&nJ_FYak$Oe6rn?MlrAx&nwNEh&3{B`N9hJ8v>jMT3Vw}n&aOy6j31pLi zNN!6xo586Ht@dn!HU-lz(kxvh#A`FXX>-Z)m&lCxO^B3kH86=IbRoPxm`H-KJ4)6H zjW%Vz?4G1}x9Y}Gb*HOAr5eyKz^&4lE<|KCQI3sBjA-8dEM^%-5*F$Mm9V2}iHbb3 zxSb)N;4s5Wmgg^7PGl|;zr(R~NgrL16(c7rAEweBR!gcc;h%n`>JdG3)pmkqce)}8UKZnNx`O};|g1MwHa zcm{l7WHjCo1LArMazJ!aGY92xK4@SCG{POyE=f~ref3Oz`0V#{bQHkdy5maVebAN-)cM&)$^ z5$D;^x;|O5Eq-C(m-rR!X6>ME(4kgo4m|+XO2IN*rd2k9mDpD!Dju&VMcYVAO&hL^ zJC^S!Zz9dSM7924;E(tdN!un?;v)ZrF`!AVS5j@uy)DUzY4@8>O1t!GL=r~Nf8voZ zXEmIz`Xxqqd@$W*?s;~RcIBxd{dA*F9$JxRc`&VeC}PnKuob!&`I? zNl34qU-L7Qf+OmI8$J=!VV91?Exjf*e%HWxyvHz{5U!0I^~0=N^$PrETRiNq3*(8O zBKC+7sU7tA+d=23-x2dWZn%pw)@H2>DKl zcsTS@h~$q;uti4c!&Yn~PjPKKc1Yhod|lGk?OQc6bLy$qL2mVFpfZ0@J;;$Bb8 zriOgXB+TigWN=Mr88PUI81zI8dLjlriUGrJT%n>}O)Q0QT{2n?d-Oo38pP|0#QQR? zRsgZ`B%bbky1_XeIbVaXBt*Yf2Y9*xAdbE_k^Yzt@N8Rv{kTCf*iW?)b;`;7H`j2Z zj_{mB*ce(xO6PD0H-V)XZpJO-&u|zMNtj($}ZRC}q_Zb|M zecH@*q=q@2>n91g^SE2$-h+GFawM$#bdLW>z*?Zr790yGDy(^>;Z~vH-?4spwDRQLQ z@dk>SDESOtqD@9nJcE}LDZZjptR_(WGyXy#LdnD1Yd zv-O$%TRb0OLp?$bb($LLu?Fgc5%ocu*&1OpIsm+_V(2sbj!yg;38l~M`$TySKKKs@ Cgyz5i literal 0 HcmV?d00001 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 zcma)6YjfK~6g}%Gb>gN?^CoS9mcEoyDhho735D2>!Ko9cb(+$&j7L^fXFIm!k>w^C zeiZPjGcW_+`B4ma@2(QrB-4JduJ`Ua=bn3aXaD*4kG}xi!OvM_1g?Zp(+S&6r%-*8 zUv@fS6uXUj8|mfulL#wKiX8n0+W@{b6Z<(B-Pp^t$0^<1+G=z!_K0>lt;c|zb*qZS?{t- zf$R3dN&K<`>TZZW6h;k!ng79Q1hhN67s;56T6S5rlv~;N{7x*xpqs@k)lLRct{(1W z@qxhke(&qmdUGbzp}s?u23(8LG16x0{83z-)3j=_;f{f<3(jH z>m>?v$0Mnm5rd)WUN|1aasp%8RJHNi_sG-ypeMb-b;mVyBa(q9J8nzh;vo8Pj|sV= z--&#Wj%-I@v~$FpAFy;p6F94@Y#wxcb*sq#V3A~tYm92R8ypDC4kDL>0|uGNH^Q*x zyL1|sy{!g0rMV_uccaK9m8|_@yR7ek-uHIhNO1~^bM7dYA`~>i409*!@twEqqM}S{ ziq57;MNK-bw_nM9H6}U$zG-bY-gWY_S@b>Gc3a%Wu))k84-rVDTA@p4Y1t)Je!}Rh zWU6|pug6vxG!L6oixje~k>+63rbb)#s?wj<`bj=TTgg8DY^d&O&c$FZ`<=ji0=W1au^8Aui&*nt>MZT?WhIJYAl+jxbT%~{X z+|oBoD~F<>IDGRhMt-M18RY1zwt;VOn!aNiK=BOJ>wXsFl%;dW1bvmrEs6@C5x=Q# zN?|pnkkJZ+oWvBNrU`4&YKAqID3hVg$e);d{uc9p4=8Q3(yYc9B|_soE^zgW_>iJ< zQzDFN^(3WNtaM3ZQc54;V^UC>mv9*w>hu#_p|zlqT_erw^dIl#^_LU8-hd53x(m3; zll+t>rzZLtZgX_-ImbKrg5#IC%kduWb9{iW*w5E=GP>7yP3_kcoGfCAoqUUjto$9m z=eSHKqa5W?;8?^8#}a&X(alGrXTn S$Ing2+e(Led_ms~Uj7H8r|o3` literal 0 HcmV?d00001 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 zcma)2OG*Pl5Pg+oG8z&SlW4#b7zG>2QV}#NC_y37*>_?yX_-t9Ju@OM#2a`6@8C*s z;Q>5?7jWej#G28C;KoJ0uJ@{`&wKrRegUwFj*9}JYpgHK%oqLB;oh!@j7{V?P-3WN z(#BI699&OSlxP#WC=pth@=A(8hQ9b!C==RwK^rkrR?9%&WL*f2IH#VnF}FBB+9%L4 zq1HEHoX9ZoWRNQ7;V$~PzkPorl(%)LlN~~Fwd)Z|eRH8ID56nC6*WSAphI<%&c@1~ zeNSi(%tQvBcg07r~{dG9D%c zrIulm8WNWF*Oau)RTYtzH-_1Kary%e8><@|TbC=>45JU=n+syqn3N8=B**@7Shnvy Y28OOH0Cb#EA0ApYzn$(fX!jVt0VL8s+5i9m literal 0 HcmV?d00001 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 zcma)2O-sW-5Pg&8!^UVo{((?LJ-GDZMGb=(LNOMt30aGL91T7qgYS8#r5QF5wVW)4svKf>vHAXl?7 nGB7eQ1HH_^zzp;WD+3z?$Vco99AKK0feR?Z$iNLGnHYEgJZ?*Z literal 0 HcmV?d00001 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 zcmaiwO$x#=5QSf~8m+$z51<>D29IF<0YNBOaG#b?Qqo3ZD(KN%cmNM2rY?ozW*CMy z?|U<^_u~m*i4jGEV6IKdbe^(xcnntTtc~Td5-hSt@VshIT$O^tBN%7=%9-Lt%ECAk ziKS>0%>Fu1bOr*dF>`o=dHlR{BjsTiRb`$`ws(8Xhy+%2~Htu(Ps zH1PxYZTtepIWQ6GLtorx{d_6)DP z!ah=Ols;9ZvxevzsZ|sahSgE$>O0?v&XCJE!$OeXe+h&MsPqw7uZt096S?)t!u3C2O#M7q%GtV&o zKq_e-GAw5P>R~wyk)m#jDCQW_zadrQN!2R!q}vo;9J5$RU^1olam8*C+$; zc74sSEuA8uq&SbqO1faS!% zkVzncNvfbMm3Y?c)P+|YOn0uV8{Bm`O`In4>u1EANT0#F1pnuT1q1a2_qC$&S9Q;8 zh(|Kmo#f?R+zBR$O)4o&-xxwzLKG8Z$7r)dh?7N?l1*DiZBNrVL+T|WbPKFxzhL(G z0`s|Zq|UJv{)n{;+|1@aVe3PmV9_~6bl?e6IKVQVB1 WZf9U%1UiV7feplBU*My={%AE literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA_2_3/ORB.class b/libjava/classpath/lib/org/omg/CORBA_2_3/ORB.class new file mode 100644 index 0000000000000000000000000000000000000000..fea1383b731eaca6e719d40f9c6ddce5fda2b356 GIT binary patch literal 1214 zcma)4OK;Oa5dJnz<20m{K9WLtl}AzA0~T;Vs1;IL5~)%iRa-^s1pt zzll>Nkl@abLd+)S;U-aX*`1mF=9_PJ=I5`k-vK zZ7ZSuB$$ofiI8Eno+|OD`VPaq%OmT;_F`^zd5>Xxvwmh@*rsRuu6Z0O;k!Fq>1?yr zIpa=5$%X1ihX;|6erRBc%A~58dzClVVdbdOFtEa~mVRuutb@j3z1pZYPYPJZ9BENJ zkfDgA`ecc&?r2B~Ls@ZGgb`PX>YnZB1ctXGlwT1ZNEPYNG26P~+8}eNz0oKJ<8P^r zsdyP~#{M|9r4efNpjSL8-^an#=3b40PpP69(ulj<~q&FG%pzC`{D85tB35bzS$$Sw{5 zbkCE=a2*STxomxZNm;BLY>NnLM(x_h`kB~v_sX&rhHy3a|PK96B~h)2Z0 K@VNiO8@~Y_3H^xx literal 0 HcmV?d00001 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 zcmZutO;5r=6r9(V4-rIBxf)|kfP)+L-~nTT7*CBPVz`oRUF(w4lCt=_^km|}AK;HN zz6FdSa+%q;Z)V=x{rdj+1aOLa0S@6P%_5PGBhl^MUw4LQ!*el7Gb4joi5nHGNE%gu zM>tp!{udGQmpakrir_Yy1A^C0A5{r1Hp<8$PpJAjQFpU(pt1*>PpJ86DC2?5w5^wy zo_W?&!m+E=PNz^W4hX7u5 zs^TX?eZ7%T>Zh|TRJYo$T>1T!6PxE9vft(J1ROr`GZ_n931$vQuJw-M+q_+3v~Anm uWGpWP%oVN(Tc|Qx^98fR?AEqlnH>CCJ9BG&(Oz0vh#Gd;MA)0__kRF`0cEKG literal 0 HcmV?d00001 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 zcmb7EOH_drwPg>DZM4hQHQl<+wowSW5m^PgxWt6o)LVkoZ zxIxB+qg!YEOOEHJDTL5Cu(^-qp6_w)x##!a?>_*{;bjOuh8az-idwBIX4f~CGsXGh zg4ob>Q!1&l_`2R`nt4-~rCJDnhN)9$JDy_*rj@#4E-`e);spkOR;$PYy3id#06~Vn zoKlz9nzfRwZ*mrfXih6jYC+N!zPCU6&27bCh~-Xkdg@CtjF8SsQ7RdxE|txqQa5G& zom3`*!B{-EBkf9}D%GpvdTB>4n<)Vdmm`Q`fFWXqmNZS3rMjhji~k;qU>G9|J=X75 z9K$G~of73lyb{4xj4=pS$gZR|iJwPU{E8;#WwNO%d)z9C4l70*mu)dj#~ebls$>`` z59t$}Xp$lB8Q~`5j&5>Cw>+Xcnxbr!)jdkp8DR_|#VBxx0^&%9kf2l5db3qYVs>Ri zEGSw8cW{@=failD?Yhs7HPp6z)<7I0$GgYy=3GE$G<)8|ter+Tr$+#HyuhX0XD}`* z#V$Zs5gos}W$lApvGV##RvWV3PKUF2LwHDK-KnPN4x04-c#RoyrD#{+uvh&hoaIAL zU8z^weC||m&nfOX&9HV+&;N&J=+)(hW+F!^x2K}Qnsh8zdg*V84hoD)0>HbN2%U#sPfiSJ8uhJNz zok%mIIgt2<@K;*+AkfHv0~z$t7-=1#xtDefm(WKe56;uRo1jQ%xauKJ@N|41-HGHOZXED& z%1yCN6gx!mp7hl$iiuXRO+hf2#tcCR(2v_h=A$(=Uz_YC6-S7jfVWcdsbearq1wTV z1jbVlOeBvm>yG~Ha2!0A6SU=U5py=q5=rJbLL$kIF#i(|+*n^6Si&)ufJb;t7#!$cr>3V^vT>eu!g=n-`Qw3;#fpXVg53D9`VVHn@YVnT literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CORBA_2_3/portable/ObjectImpl.class b/libjava/classpath/lib/org/omg/CORBA_2_3/portable/ObjectImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..ef1fb4b4ec5f65d40dbf2d0f21afbce0974d00a6 GIT binary patch literal 1190 zcmZ`&TT|0O6#ljp5@WDf3J6p!_g*C7;=KsApd%V70}L}fb<%b%VbZ44ru-6L{1^IC z9GUU*;)6fR@odvt!oWk$W_Q1HzH`1k=g;47-vKNmDO?dFoX@KXxfKn-4grGVbDFc8Vn1DkMg?g(hP(7GI#SuVk?*piW-S0j1%+J z)NQj`*7x1IRV}9#Fx*xV#&Fl6#BE+SU2>Qq2On9lzO4=@En$R!K9oPDE>b}RV=C@o zoI&*`mW*Gb@kCBvk*^PWq){7d z|JzvWwz1ZGl_(ymc#J31r)I6jt0f9?RrCuvdW0QKNs}m^sdz5RmtDuZR4{=h880Z+ zgJT}+_EbBu26w4`xqBwsy(ea;eg{8KyXh(Ci{kBZxiQR kjNl!{VL-!s(%m58cH4Q4dfc77`mup^`b0S|+p#kL0C=q@J^%m! literal 0 HcmV?d00001 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 zcmb`H%TE(g7{$-+Yp@iMQV|rChe{vF@bF!z(i)>lV--k^xM-&3S_X$sGo7O1pI~&4 z3th5yqr`>Lt$&p9yE9|ogc#h+edN2pbIzT6@2}tAz5|#;Qi6+NN;itKzFm}4nU&;n zZa%jlmvzHb@*0;jRkK_*S51Q}+Y&qslTF2)3mJTiYDqN{4DN6w%iu}r8{7{!P6XhE zkD)KEmiWW!cAgt+LWd!k)(eW3RSZ>(ok@?msa6;w=_b*`9mW}kUK*;&b4tEq8cM;; zsU?#e&y@m6oC>G6lpRIZlu}X7idN-GrNSi)Foc?`Y=j>~ z4qydz+Oqy;pSwGu0~1Eva9OyDyMDH)LpSP z0(U-uF^n^G+qfO!(xP=*Kp9C`DK&0Iuze>Oy41>FV{F}zDMTcM8TyN*s(m!%)ZG<1 ztLgzn5o7RL>I{k26dg}b+?H%fW0~_h0R}slFeIHn*Sff6_iDOH{T1J^{@s19mAOGG zBG0TaKF3fzj^TgMq9-x>`Uz{Z$`Cy)ZT}ZShW~im2<8e`VTw-|ipFGy!bmt6S)+?&18?STfhImNoQJgXc|EgX! z3jCfbo|^u~M{Pz_d&cQfx#>v+eAJ^SioOz!WNI0;-so3!eWs2Jey0dnMmO~Xb^*0L zG-BvQAAQB*w^S{lbFrT|`2oGu1ot3$_Th0aMMu6MG_r@@XzT}qUofj5c?kWw@@eE_)?wo6<2rop0AgGmmI wmSP?YBqgv{I%2Q3V&4(={gK!kxanYTb;QP7u^$Qh=}2q>w=L`)itWPkAIS^3!~g&Q literal 0 HcmV?d00001 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 zcmah`T}uK%6g{JsWm}qke^KYC}xo__;uK;$jmPAZo$%IYU_)WKH?#t5GLDN0f!7Y6f34u&YK1#PO zS+3Musu3kIDzNbhs$3i&xg8Tmvffti*@;&QA{})Foce&}ChB&Sz`FMd`8lV`hW&4V zK>7r1UjKriKvgt;#{?>fh#5W5fsPIZ;<@9dWuFG!(F0C62XY(paWqt8;}}467eLe2=gI literal 0 HcmV?d00001 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 zcmb7GXR9_W+%^zqlmrOM}Y0<8DdA43RV>zot~(sLs8QW{x0g8 z#r)X6ZhN%+gscbAiUT4J;t)f_jFc}ENqg6U>_O}Kmx%anRSbJ8a;%Dw4~__EXkdZiln$_7=pZ2 z38`EnoZa3)qf@#z%PAnnT}`>Gemu*t&wZ1~OQljmDjEHAIk{*kno6l8hHY-~E3Kd= z*U57X`#phc-N~vxE0LyKt0Gj;!((ybZ>JWzU>xZ;Dr!mANlV98(~=vwMoL{{0(J6b zPH~)&dc0RP-Hn8ZKJ=6Ftc(@mzAWP4P9|l4`MRSkhc~L-=u? zVUMG(YUl!z2nk4I$d5tlX00JjAlaHbA_j1g;oQbBU0sD*9xI_0ikd2`Ml49VheeEF zltIi|6E35Y3B#c$dkYxDtA1Q&I9v1EfXT8<{nXhV8-Sf*48 z9~L6sz$9(;5jqa?vcY#|^{yl*nr{k2i$kXwhcs5s8EKi1d;xEw;76XJ!!dFcRngoP z#axFZK*J3`iZvsd!i&&Bhe9YvayR5mNxo5*)tsC$aty~ilT`#c1y|2%=LJ`CSwsw{ z0+=Q0I3}KdUc^n@qT|a>B;^&UWM&!jPCTlWpO>{`67P%n03XspvBIUTIomHvPwv?eUPQC&)@UwTE}~_CZP-qRLF~XzTH#6W5F`$& zJ-mQjf1~vg+8(5qadlA;9pjIgn^oACkPLx>N^-YVa!2&_a|Rn50fjQ9l$aZ`zZm1+ODR?*j<&OQ;#2#;~2| z7wSAG{`^B^FEsptsnimt)8YE=1*mCCWrSwv<6JsYzl^Ez(Cu!vh_^47GgscV zR><_d(EHS&doHdcW@~jqXV9k^s&keaKZiEV(*^V_+gfIE?$`ZbDN#AUib(hM%N2J{M5YmkA@dG6R Onr%WDexz@8_~}1~)qME? literal 0 HcmV?d00001 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 zcma)*Z*S626vm&s6>4kUCex{#ZlaqjMQMyLQ4>HHO>iWR@Jd4pG_vP3^qk*$o_kOK{QdPCz*CqqRv7j?e{6b_vDxy@j;#rI$7Yke zBO2d$&dBy{W*HD2$HIwAl<&slf|Fw|l8s;$^q%m2u85Iob zi5L1q`-qDkEoBjqqX{J$_NZr778U>(~0FEe9#Hs>dRDWPIrL0kLph=Whl<_(uZN_xcyC?~jDv<9RZ9(*N1vBe_o0^J3B(%jww i9woVRDOKY;HfK0Y-NjNqkd%)(QmS|ym3|Txt^EW2p9bIn literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingIterator.class b/libjava/classpath/lib/org/omg/CosNaming/BindingIterator.class new file mode 100644 index 0000000000000000000000000000000000000000..9bceec8173770cdb48b7505a92d0752e287f2c18 GIT binary patch literal 419 zcmaiwO-sW-5Qg7vYq!>~s`0MiAwh8Q+>`YK1Hpg=4_;*3EMZH!Q#M;sf0~E>0DqLY z$suS#yvz)|JhMB`=hw#yzy*#tS_~&-b3yZ5Tv2&1=i20Aq)p~~?39&`EJuf7Fq1D* z6w=4(WTvK$qswsiFPtu_C7Mjh(PIc2Abl8JHmmwRsUOfJ#>#40=yy3O6vsBh@o#29 z)>WB^uag_&w0mRVnJS$nKefZ?k)dnUt9v#KQ5Yu;zJ6e$OLs>_rtC0!V(8Tn8O3lK z{!RTL`eRz!sk+sLXM#0t=hZ>pk^d7q*Z{{Sw!HYZx4DB|R95#esQW$+e8O<(YYV|Q Dd-HS~ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHelper.class b/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6f4bbf5dfc785d5b34c7e60a6b06a4596e7dff37 GIT binary patch literal 3291 zcma)8TXz#x7~RuLCYcTb0SXj~y#Z~g4JgVbSZvb*fnKn!g(4az$$DNC=SA%1&{p;Jy)1+|E(*n%)K+cQRyX@@pg zEz!&RqHSrS#N(a5+vr$-U%anyJF$UK2?e{*BxARPt>wI{0aWb4UKZeGNs~2Qn{}(& z-x-MRILw)rE#Ad_vxJO&8)~1K&*@eK&1g~4iZ%)L^IE<{^4k5fs`Z{pIwb5_i@v{a zAU%3OKhv0#W|gWfzhv1~5p8x(LW?>M^SVne$|#(4>?Wyw{8uW&F7sYu{d14eLB#wf`xdj*oJcokz*MA|5( z+2^OK@QREH2|L%ii~e2g8|xcZFpj8v`>2S+S&CcZ&OkzsK6}-;5m7dn^bWYFf z)0!bdl4=j%AeDDzZRIH|&1$#%!shUB2Yz)cxM-BxC0 zE%||nD)N|>&>%phSC6Q!;3RSOZ!mF?0HG;U#aW!={5OiuNG7$_m6Bg1SKrUn5WXF3#E9{O>Jeybfz-IxKy!-+nj^rJVEoiEoM{YT%uDVjJJ6j zRwzQjyLeB=opq-TJyg7p4;U*;Vr)Ha6ga1^Ygs*QXC?Fo`SB*w`WaPuB$cb;)>^PQ z_$6GZ+Vs(q?RVX$v#jolQW9dCeS*6(KIN{d()M6X6`$dA39196-1yy<5EqZ83dHUusYguqx>l;FmRBsghkVPvKb~TftV}E#xe^E~;yQZP-r3 z2zH>6DC@kzl5eG1j9xMbv9V5gH?Ry9&i<|>SFN3=2fogvWsHyqh=O0B+nDd2Sgybn zmU)ZT5tdo>B6K?vVDlfqCV$blmhnzyj31mBg7pYK#7CZIFLR5vP>dq{xU#E1azFeO Ws3U}XtW$hK;B}TUB-SiMbpJnq(lhM< literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHolder.class b/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..6b3a4c97fa66ac7037bfe02a792d76ea2829c39f GIT binary patch literal 1271 zcma)5*>2N76g`tTF)^ksEfffA=#~XyAs&M&+KSSMs6n&}kHJYsVJgRtrsE?13M3E_ z4}1V0g}7r|SrAe4;MsidS?=8V{paT|0MFolA#>q+ zAC0p)ke^Dy_PG5 z-Y18K`Y6sBN|$rS9*KFoczJNG)XIV3h7A)}7;LRoX!6KmrcJJURM;t`*}ByIVW{Hb z5R`>GxN9Q6&{c46$fb>YxKCAydFqStEMSWvC47d>N$7mtbfazcc}O>!FHY4rN;su+ zePcCkZNtVU3ZyoU&bB{Ep(w35S9UX0|JJ8yql7YXCdqFWOP&~++iSYL(m|*gwkFZD zwrBJ(SSLX!yZlh-w$A_etyJ|hp%+Hb^kwK{x>e}a={0pQjaO;+Jo-bYH+(fm nIa8T)dZnp{MPQ%c(z)J%=StMzqbL)g{$m48w;{CLtf2h`A*fKY literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorPOA.class b/libjava/classpath/lib/org/omg/CosNaming/BindingIteratorPOA.class new file mode 100644 index 0000000000000000000000000000000000000000..e48edfa0133164af272dea813bbaac4bd7727cf9 GIT binary patch literal 3104 zcmai0TXWM^5dKblQR0XKh5&9T*97bsFt?^OhPJj7h{43cP7R3*svI8@fh-wW4wv4b zExph5tus6@!yB({he^^hZQuK&I$g;(MZsY_BU#e!x8HudXV3Zfzd!#5Z~{LG=wTSr zjfI$AS%{_d+LT;Tw1rqw(aLmBo7|91-I&fM1b7+tv@EA}!<0)Z&vRpm8!_u9Yo-7{ zL$qbn6)jt}P!(OP3Fvi(&*qYeShWcqOKVH|Z9XY$WtAHY{H<( z03K`-(T4!T=8U58sd}ZvjTws?LolPy%W6S36zjS9(rYd%HHJf(*V3e<;{+?oswycO zDREPt=j3`S-1c?JV0jdikz(eSyd=j|nS{)n2I&|VFu<_I{W^f12npE5aQL-sCb>$o ziFgx(3_VJjVS6~TJ`l-M)n$g=8*yal(@VGbyeXx}39Oi85GX}UZidI<^{8#Il)FUL zx=AT=xf1VYljF52mAX~Pc%++Qwr+ONdU23SuJL=Oqy?}Y!y*phFume;>at2z7;w_e z+S$Y-a{)vU6)?hZpsi?E$|8>7C_{kgm!-O@YYTRBr3J(o4z~T>iz1`c%t>7>b0dIb z*c1T6Nf8HeiXjqCce3m5M@0MaHr^31N}bpaw3et#HxXy>E<^u3u{C*)SJnH}Hq-)L z+}EfXKpf`;oOPzPHk#91#Cv$3VbfhhF}YOIb(PB+t+?=9q|iqxCqyKXV(=}=YMnY} zcd5cZ1iMeT*^*Q;R2=r1VNv<<>0Eo3dH2iQu?NLo=1VJe`@CnHZNYCuWlq4Es8I*fHFW)F(HvXpM4( zVbr;{n-kQruwD&dZ3_MhHy3r9jluOZ%$l0i#X~M4j_sy1eaO~WWauipYi-gt;nC|R z!*Dn7HSJ0~<%(X{$bnI_`(;U`k+R0yUBJ%Fp;&%{*XpX}Jx7yVmP(Dynqhw@yc?j= z*W~Pz8XMrSb9A_^Tl+p$#e>g8e2y;|MB7tp>>LccoB(!7np4=?)gFoX5?>KjO*Rbu zE<@a{Wou-2r`#sNaAuu%F6rDzHst?}#s6D6n7jtWnS)hOqr|YSL$C3f;?jBykDln9Lf3wJiqV}}Z%0-j{ziX#@CIG|_RF)_ zO#j7(0k&W(JyA3D$Q$y%zz3@se-0@cyl8tLe~AqFO^x|RLcV2WNBs^jg0Z}OFOXZshtCm- z2Ip+A;K(vQY8gJq)|a?38x4N^JLDBC{1ftaaxGwh_+Fwcr%0|VBvB57n87d#IEt${ zjcZ6?4i|A9c}O(xWX#hjyG7T#G^rk95nn^W&rtCTDtJQor_gQfZc?pCi?(*p$m_PP z-7~VPkapHrjjTQNdx|RVP+5XhSpzjva*)m|ChAnuVN!jG;t9lI2={QGz80JBtb#wl zCyff=B;Bp9=%udsbQKRfnKl~Zo})2(+l}#na%eQhIbvn;>Klo!;PEQ}9@zjp8bh($ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingListHelper.class b/libjava/classpath/lib/org/omg/CosNaming/BindingListHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..ea612c8ad38917b653a5a2e2a069a2c60ede7a78 GIT binary patch literal 2886 zcmb7GT~`xV6x|mhlfSj&16@&zKFKG|7w5idcP+HQIGG#IUm)VJMBWtj!kOXI5eRgv*nuvAU3sIb zPdAoJx;>|rOkHAHWzC$|Y(xI`7rRDW#3(uuQ?VOiqB@I4osjvrV9Bf%eZ{dgN$pG` za4F1;jiyJdk1~U|g2nb~WuiEU!wL=w>}i6%_Ed2Mac1p@FS1O!w(L z(_x$v*zb#?-=r$~^_3b0pf5x*fP^gdAT1Ibbuc(DEmA6m@SZ?KZckQg)S1#ytM%NX zZ9SBXGlMNLf>i}+k_c3mHMM#@tJR%}m9k!Q467<2G=aTsg_L_H(4nsg9Bm1_(VbSE zC5>9{ZHut35Hgk&{66kjkW5qZT}HL8+tkk4&9w8TEs$mEMMf5KM4&IRo$WzfQt=5s zrPMskb%Hw84!@b6WJ`uiUZb-?LewLfjcw_gtJWHhr^oHuU;4t+>-7r(jaxP}9A=)uNa}LBTXjwWWRvXj zz=^_0qk}N`A-RzAs7Apb-q7ZAT$e*J6TuhwQo&7u1C?qcopqxY?9z-*NJI9S zid(qNI?Zypnz|$P-mY~zaRg1_D;1xEdb*2}0`^4PFrt}?GPu{VGU+&av98~5=+&}b zbjkwf61g^Z%`DreRP#ZUllq>D4{<(>MS-0y$A?T~NyXPNImCTD%`~*S3pU?61N=7H z*jWEN9|~KRT$Wbg;8yNbnq`+bBOls^L&NbcHBx9ef%dm+%{m$iI0J%Xb-hMfgQ<9c zhXPSI17H53L{3hFDLhh9!#4uix63P_xk0So9aDKl82w@9;ayD=?hU3bbtx2T!D%l<6T1>lWv0jUPPScdlUFHhO;=w z2t7>seSE+O5!nEK1}EIuKoqUPjo2eJLu!@TT zaj#yt34F(O@9~WNbbxM*;o$mkveR#?}2Je3w(`1j#6%#cqQ2jmL|fugMcEaqJP96LVrU7t<-Id0_F zaAz{r$s~%CsWs@a3U7_cWIOJC`q+$IC!T}DXf%n2naMJ$#0~Kk%ff9JrH1=H+LBK+ zo=m-3h3(Qzrs8MUu+pR%l+t7Qm|}gxoqo!le8QKr?^{^L@h!e18o2u&%W#vWz+WE!{QL#r8T1@d44aNS(4FBxKXArJ#*o_sy}|81 ztxZ1m4jrp+x;aP;tLMgrp<4!BXm!uco|i+Gp&Y|o?;HF2$Z7=@;>r0!}fgDX^N!3p)T?#EGfbu7dk;cnGWUHXV_7v3dt(GwMV`e zmZDy1%eaesIjsG+=%zI?T?Om7Ph|)-8p~-c%77uoZHBF7%u>@j-scfDZB4Dr08Z#! z^rkNI*;KHFGT97oXFH!$l~5vqe!ARG^V&1b(?3cu}&VU1`Vn675emCt-v^ zK6ZS!XTIj*$(H{412ysd>DLe~jSLMY9wYrEv8M-0^Hqv=k)j^llyDN13L z<^o}XJxF*?h!?m{krLiU5jQ9jOgAH@7NJsfwh}XG)dXFUh=5lS-5a7m3@A$>ETSX= z+#;jGa0#~~^8JWBuT>|wlc1FYc#9zKF45&^D9!J>NN>%%Y!UQ|hf`wK(WaYygD^)xRq@M<&wZHfp68QiC literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/BindingType.class b/libjava/classpath/lib/org/omg/CosNaming/BindingType.class new file mode 100644 index 0000000000000000000000000000000000000000..8e4b93f1bc24c8d2f98edb7d3d11288a3852f2a7 GIT binary patch literal 1151 zcmah|TTc@~7(GKT3w60zxl^DbN?VZy@q!j1El5&RfpBTUgQ?qg#3k))v%4ko+B%AfU}HLoesJWgDj0&MY&qM-1&trm!7dI61vse~K`X7>=zX*xgaN2%Z^j)Icb^4E6)w&Sm(|2-md>2sGO@93xnQ5rkk#7DS*bplV5GA_>n9^-Bu$*+{ta1f^2Kn4A%A_ALS?Yk<}2ESWd j@=jo$M#-(wEb9akA29y5NfdN9U!DO6JPQmD+^mH^g{k7% literal 0 HcmV?d00001 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 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 TKEQ70G~Hv<)sQWETps)ni=s<2 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NameComponentHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NameComponentHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..465313d11c07641aba6fdd4b064883eb1001c1d3 GIT binary patch literal 2932 zcma)8YgZFj6y2AEyc{3I7e!H2P)LwyA6gBy#ekR^hytQ$+b{`J7)&zhWTH@CeYd}& zzrk9CuCn_0+#l7|eJ5jP62J-zZgS_IbN1P1pL6G*e}DfIz*&4BM4LdLVJ;?&(qbZI zR43JvUS3Ra(NadKVwAPAbyX`?G&2alz@BCGzM3eiJd({XYXwWdm(v#nq8azev}Mvq zQXn*3DC%Y1y2Mlc1G57Dl(C?NutVTfdNgy9F^6RAZQ@=$J9H)tft?E45fIp&(aYLo zt(4cy88u(jWK^S|7H3scm*1Vuz_1-N0w1CZ_8`Q#){5=F$G2@zF-%K7 zOSs39K^%F5vKhq%%?zU(JqnKDxIp`TwOAu<$Nm?75WND2nvq`~8O>#{k4=rtq_dMD zoD?`HWzti4rIQ|Qr9w$)3lW?^zodRZV1NH+Wem*96LAHDI4uyC>8ztYPFhDtJc^`L91B0QRXRC zV6V%>tLm`&ZQ6>!5l_s`<~-%gs}z2Bi-#tbq%YYW`&d;MOrt*ndbz5Z6xsQ$MCLl) zMq`r3ZhRz(9uesE_;`&$CsGPVF-Bq5qc_R#q{qp&>a#o9T2cwzPvtVd@oml0+}J0#d#)t*jaI+;?CL_mI; zQE*dE82>%J%yfb}53wals#}C@y|c)EYqdi4c5Q0j8ScxOmki@BJ`Lg%HqBzWmPpy& zvSxltlXzs)DEJIHcEdDhXHm1HLR-~IBep(e+tr*i`K=YK2~AGM2nx`GU=}TdhsFv% z$0CP#fyr5#!$i(1u+{t1t#hXVJp@j(c`Qqv-4ht~wkRXZQQyK+!?b0eGhaSR4$Ovd zGs4MUmK7Kdp~4~Gbmhn_Oa)a?V;;E7(uR9?D-4?&>~2eVFHK%C+O=q4W@8&>o+2pO zeDd1peyt;cK>egZXG=hj&-MqVZc!rXZ964fv)op39c|qMq%eZVcpAhLffLPYXj~Xx zj|#q$(^#=#IF)CP2GwT^z0Zwk)3K!!Dm^l7)Xai*MVHraXH(7UuL(o44E|#*u8*%6 zG>~^UKZW=kS?{LR1!Btwe$JWu| zng#65x`|RhfW6qqgJJB)0q)44PY6kZ>W!`8;NR$efuqkd8#pl+?OVsGiNW|9Vz&mP zLobmS{LA(d!4ACRK28TI?j$_h>+Ee$9_i&Ce6yE>m@jksAU}6_= zkzT@5><*S*+dtrc4&@oo*VC`(al4Uv7$1;~I{GpAZE|+THqbp6U&n`Qxa?9;XKtQ> zRonbP{jdWE*oiBIDqW4^s^jtw&q%(zHjtiM$F)qH%w%5ThO%qnzG~S1Z)47h^D`?ii64HBJJ;I(z zsUb(ZFbjI0R(zerXQcSSPUZ(D`y;9N$wNa2 TzQ#8U0(3Yu2z<+LZTRj#w!_le literal 0 HcmV?d00001 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 zcma)5*>2N76g`tTF*c?xEtFE$KuZ$`Vj&)bDoR8bDQXa{!eelfQE=sWB6nQGUx5T7 z;(-s~qY!s&D@)ZVdGIXP_nu|u&fkB({{VOiM@NQXTZBDF^m|TCoFBV=FX%Zm@tWul zM8E@iDEuxDb!ZGLXYPgT_%5Y1+Go5Yb>tZeBY?(-w|mY&gwk#M+&PgUcl&C|kh^gG zh~`3llzcT?l_CGy3p}~YkS&&)3|dWexrr=pSTJBREZ4n&A4mN*4^I>H)w<}oe$x#- zwNHbZ{Op}G?95|K{1NX~ab9Y*)HJ|w%Yu$;43^UADdN~$u0?*k#5jR7eIiG}Ad<wxZYvsk)Ra7uA? zQ&nZ_sf8^RNNbXvZ+!_pNoB>Eq8pLCd^SZ3CD_E779TBEJk~X%!&FmcMI`Cm$GOv{ zr_?Z*Cn5?veBV>8ym7_rsHlfQFN%Qa%hAVFi_j}mYwB7WuhZ^T{D-3UFIe9xkiim- zCe6SuG`ztwtt?7Yr7O5evjSL60rn|V<(dk>F8{>Z7-fmbfp>&*Koy5E(t47eA}OZZ zBumL#$DI^&FU2(M@(>$SkcqGcmAs#TGe&R*9^z39_ZWo~t`hG7ZHOn|NKj%iPf_6G nggtF!ZyV3j+L4s9{R3-5?2O$dQd%VC(+nwPJddeg#H5w~(9#@G literal 0 HcmV?d00001 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 zcmb7GTUQfj6x|;QOcIBpQBg5?L9ijA#7kQ*s4YgsXe5?UthH?%!W0HWCQc??da+em z{U3emtFZQV72Q%06xcqeEoiBd#yh#GIlX8L1PaEqKs4*$$=eoPhXg|B ziY23L*cWIO@1GP1rp;+Rglz%`GMBPv2{kAo8{y6#A3PR@K)Z@ov zQ^V!uq5j+cVMAfk=6uC0>t%Z=g1zWcuuot|9qXmPiv5U@v4n`4%ybt{Z+98z%@Jp!!@TB*h=^}Lz3f?k3Bjf^i2Un=BojEoOY zWO8F69AzV<2oC8>74}=7j^GI5vcUZUyW_96y?;_#BvlOH9f7cHN?NN`NoZib^~9`Y zF3LoQ`q#zqPXnWAgu{$J{5C%e2x2 zb~cq(_EMllUy_n|oja`pQyNv>-4vmrHZqo!{x0^=k5(6dn^CUn7BzKxBTc=zH?of1 z_)u1QSfDSyHIKbWtGI*_3em-HklWE_DjTWI8B}{#BlRGa$_%e;>Xs>2YPPG?t&E9+ zo(Qhtx`HhA*{HiZm31*yj3Gx6Ng9QcS)Oqg2?g+xz`?rv#xof~9v>^1VC~*u>Fzfb zqu`1f-CC}`Fg8Y)Tg9k4lP=KfTQ|=5x>V^PO8hhA+FGt~T)JM_4HG<<8_h*0QDodpC3E?pd@9nQC-4U z3YG_-rEiqoEWhVEO*r}$tM7yS~rl`9bVj^p0x8hdnrc3dV^8EO<)ypTVTa**Ih z#S3Jztjg8%u|IGl8@TWj+LPUhHH_z10-`(l{KtR)PWm(tu#>Ngwjj(99aDwc1utlHpQ-GYf+B{B^^phQqt>N=)Pf!Su zmM%Z6;cj%EU(9O>pGhYpgX0jy0yA8~J}jaO%MJr6gdp2cg-x308skTdaU+@ALPp#c65|I_;0C*tUeevp_^&k4 zNc`Xr@JAWXZJRPk2z=;$IX&ljx%b?^|9<}g@CsHADTWQ<_boB#TXk`DY7ZQ*Z_&h$ zgxlkO4jRMqrG0H%u1$ZMolD-8Ib<1%NnP{oVBZ=FU)mj)Tj$c}_CPHeGS{{n(7gSr zkz`M>)Wu*ZJnqRFL-vj1Ir1$-+AOsgw7TeV9ckP#kcZAtXgD4}4F(w)MuH-XS&9N5 nZ`jikd%JiZ*CtXbfgc5Pe%hT+&iP3Ev+rl!DCxi;ojIH6am^qNXZRFC5UuUPUg>uC?BT_OEf^ z2k@g1W5==`6oexm*86tm&Fq_*{q_6DPXKT5%EAW2p3)OnO($+w#m9Ua$cejHx=I>x zVJy@bn&*7Z-H_AaXnZa_LhB69e_ThA(A)${#uhdiTDke?v~!dbH5m4nPa>raABVyn zd>r2N|=EmiOMORHDC51HY!k`qV?VK?*dKaFEvW#vpxGSkhg6!@m z-228S!aY`|uV&J>aFgMEMW-&8QkfI2JR!*Q7Q@?$o&!1OVc=64goWD-?<)Eog<5d` zvXi9Bu$?IO)mv1Np}&@LWoZjNQW2XeuN2=4?p_6Mrzp!m$QdkO#6~MB_Z8bYv+#JW z67{B0+9_cW8-`PRup(lIG@<(p$>fs?eW6R;lBbm!4NTI$N@s>i18pr``@pVpsk#=4 zVhlTrpF%cEi&%wo!SG={0n2^OP@l;~fWs;*$ryZAGwq3f5K`#frD=bi3_6WARe-*$ zuyBpuiUvIaTi7P_da^?eJ7{7TEyC~M?n?X~?l0l3#DnY~;9-W>XnjP;6YL>*WcKki kU7zKVHYtZR5}h98amwg(9A<1~^aWo2jndwx+&AF-0X?i}FaQ7m literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExt.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExt.class new file mode 100644 index 0000000000000000000000000000000000000000..e15c49c8c5898d2e4acfb0f532a905504ca4910e GIT binary patch literal 262 zcmX^0Z`VEs1_nb0UUmj1Mh2z)qICWI+;n~C{9?bv+|0ameF){8pI4GvQQ}%r!p^|L z$RLoFSeB@tlL(aePs&P728yyVGUyQ2?O%{ulvt9PpI6Mzz`@8MPe2Dd0~aHM0$h=Q zkdvc+L4Hw5Vp2}3zNd?iYhFoaNhKo#S8#r5QF5wVW=<+2gDAR_^+2u#x{r~8836y0AhnPfWL0u(3|=>=#*Z9q|^t;LcSD5fp8wNOOEBpup;G!rHhTD;(0 zRD=h8(&ZyQ>Z+(M%36X?uH}z%xxbk-lcdDeuGLQSJy1V>CaXH0((|nKoo%E2XEWbla4l3x|O|H?4|Vgf(nNkg1(HGsnE~_0~)L z3hTFZS>*8!-*0UE$Qm{*4OEL3m1P!~fhb0u!BuJd0&wF+4 z?5pqvt9*z*VjTTJ!9A*G-IEJ7PJb~-_X-}^4GqeA{4X>>@LTDa$qnq zc5Y~VU~+hDG>8KNyDEjV&sfY-BgTx1Hgw2FbP8SE2+8Kf^n8x+ zx=O7l=WJ_1Qb6i`x%sEHr(+0(80oM^eLu${sb|X;5W@i|IM)J7r`Y z)5_3F7uf34vDzgHp~hGg*jtiwtvju1lR77%xgtUtPcoJqmu>8>52iRU0W*^`Z0fD& zX?pVmSC^Y)vKg;Pt_K7TmW26#pPh(l7{m}|>R~7ofa3-5~ylu8VMW`@wO#xy1vMASMNk|Q8 z%nLL~6bY{_0-dG%#GT^O%%u!SRaqKN;|yN}X3kyBW$UtPVv<+q+|07gO>5db$#eM< z>80GPH`a0`7aHs;d6W;pt(qjt>0A%$kPO)v%%JCgZKM@ zswZHF)d?$ar;JmkyoBtogzR0Jy5)+mYoU;8dE=swyu|Q76+tNcWpnu{!l(QRgwA@!VRL0yjPb!Zup^IhTY-w^G3>_$=1faeR)n%pwZ@Z>Bs z#2Ix2d$@aBG3G+u=f%bgc#%0YUV)C`B}QpvVaHic4KZ+C7qGOu@qxMr(3WWLmG9MY zp;&qdFQdQUF@!pooDGpjXr4Z_f)mR)=~Lh_cbSQG*S*m*F2Dgc;1r=sA~@ZJkhck0 z@_j7wH|oVwc!Y`R6}Z0TWTbHX&G}5k?{-k8uPsy%M+N&Qm@lG z#8Pv`2vS~b{sTDVFZ}j0-t}W_bOmys_-@W(wTeVI=)L$jrJMu$O7^V#RQ}A?&Y2{6oGWxK6j2~z}>!DGUP5? ze?;?EJqeykSY^mR_XeKaWtg{0O$Mzdy4=7#u9?tbFf7)+0Y4h`+dMdl2$t)j6oWagO8o4Cu9VHJM$y|$!chgYmt9d;bj%0K{ z1ZCh3)(cq6Ru1kDd0^r$?$O0WL~o`v|A#1xF$U(P$}}5~s@jsDhE&xxt2Dt56He${ z6|JhgZJO9Zk<>=f`PRq4layx7l-(G~zc0u#QG!jJadJId@`cqqP~8@FJH6OADztZ)K}2>~KY7o^TKlfj`SokI9F7k+>rWxVJJ zM#jLRY41tT>Ak1t{p0lwz%|Y-q!=nn`?ebTwxgmp9|qF5zc)uoBc`S?HJy>r+yqKS z7Sas613uw)$mwS1c_3V4A;VB!p|cQSC}a3cDV(F~WR)mtqn7U#VH&bA+=l7D^?{fEr`@(K3(^O;WS=eT{U6bT+DV6DJbaMW<5q>zTj&XEL}MbORE{>WlI?{Br?_^!(Bof z%Y+0C3n#>0;Q=M)$Mx8Ty64f4NA!C=HP)_Z1|ivU@qf;)W`UqkF>KJgBN?P{j3QO1q?5wgC(sG$W&i*H literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPOA.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPOA.class new file mode 100644 index 0000000000000000000000000000000000000000..4232306c61b4d2f177fcb53217f7686de715a725 GIT binary patch literal 9433 zcmcIq3wTu3o&WvsO>&drB5x!RUnr0SXap^-30RX5APOWBgiS%yNpeX>CNtT|gn*5; zR4Eqgvp(v&yNVP?t5!fZ1XZ-det!tO=@7%d_XXY})4Bxk# ze0R>7bIm+y+_&7{69{!x#fSQEC~9qtHf)SG zH`N*_5S*Ua+8mBV{p~@k#fogOB2{YehoT0G1hW!*vZHJ2wIcp#AROv5P%Jpdg=kt) zS6kKV;I3*6Z3wTomiR-RK`SCCnjZ)Sq8AGE@`_c0g8Fc$<%5oqCQ9HFj9MB9S1foh4R~iZd}8Qv_O| zQ!u`~;&@6voThM|p4+lb?l=a~r8p#SpsTx78 zi8|ENOQPYnKHK93^U8C>rs~Cslo4paVgrk)NSAWD4|)8<#1b?LMs!fFsI|iC4Q^t5 zGc>Y*r+JMJmtdKJrGm5b*luDunrN4SNFZvtf=);^xFbcyDkaCICRQlk#>aVU*w|t9 zs>EkA>BCB_GH{vTi!SNRxv1ISvEJWhsf_3k20BwMx*C5aD75(ztj%iDG?|l%$(vkF z#VQ}ZjI{>V2&TI1rrV`4r8Z^oArh~_D6!WP6ie;Fn#=z4_6{+V7=f%S7Vtqu4-($ zjcYqQBUWEuB5+ruN6?<1pt;POm6&a0LD)nu{@ONPUpTnI_H#jH1}%6)%*kv%^r7DX zQ{iM+ZrfAh?~^iZpk_{1rW8arzZ-Ft0S5f%T~e7g`3|GUw5vGZ(Ht|#` z?jON!H0U%M>?2ahJGGyC^l(4pW?D7|((*WE@jGdBYVPdD-OMQcL88~JjZ|Nf#)-W- z#nfbQWSpd1{CxgUn?Ihc=;OI?W_1H%o|ptq4RXPp;J|Ix&gN^ZuQl3X3eo>n@2 zMzA<5@hm#cOx*6bpEL11USKDxh_rRYPwIk2C#B{r_~UKRizZ%D6i$f?lAxhFq#v3% zh#%4AnNL)Mz_`zYZq{Z&@QR6_;HOkte<iZVg!j2_D(Yr*{8Y z#8jsFrD`Ex7c^!y%}M!%;{(4k@oW5s$9>y4X^b`GBUmo?vpwJ~6Tem09!96t7mb8B z`S8#9oq@wA)d@B9^hP%&JE6D#KRO|shOL<|<6lhtt2)2>>~leXFdXVK@NVka%QaRV z9h(;?O9Oq;CE;MFIvBr$kp|x9+3xr>;OuVXC5=BCjwB%7!${?@ADZ}ge8glFBsRf{ z)NGiYU`+-)WTZpkO32(NCjJBe$H?2x!9p!XFJB%_+Nc>9ZPt5-iNm zO;1EuvHBkVTe12XY3CM^oc<5~V&GU_dQWgG)cPg)ahnGV>`jF?mFFFA_q1!BM2nxA z{tYQOsrJ(LR^DT~z1B$|a>YF1pZkMMdX38pqPuH0#6PDpT? zl7QE%Gjm``l|nW4k#^PeyFMI$O~OovE#dx1hqWl6ZmlPIiSknUbLym0a2A6~hlWBJ zyuUBvH(q@6a|FLtaTJb)mHS}s=0w9O&L*G{qc}I?8!#GU_>JcujN_*QZbAVO17ixG z#Q0Wy7!zAs3x-kFvWttUh%U7eof+TkAR-vfz?nAkF*plT3Bk;QbK=PL#YA30daL(f z+RP!$d3rY)K!idV5vt|$Byj@aVSXwZIdEX~B$a(6MKZ>C<_^jfyjn8jp4Wqic zNUDv>(xM?;RBg=OkA>_#3QG%1jUikd!;$JDt~EPrMZ;)`;qa^>v{o0{Fju6*45K}U zXEMM%5{I!r6*Yz4sxD5US8UU}&I=oeq1U@c9@eJt5c2X6iDAAMW*~-g@7iDtlb3>WcMtpl4efZK5w$A|GV{2bTXB6Px=Gy?NtmkSEe?y4!nrMK(S7Re_Z^DhZiqr>jH@=4L zxCRf}oLrCH_!c|(ZFm+p;D`7&IlBqJ#4T)JZpFL!4$ILU_yl+2PxvlA!@VLrewARm zjKTfn`g?L39*}8>NfjQFIXnzqfJdaBraHU`xqHiX}y28$^1Wb(9)nze}ePD)ioDJPS^ZJcdk zNfM%B%KmLouaQ`~HTo?W}`fl$U(XWi7x0B_MlN>MbZY9bJ?;24~@U9W12$Sy+erCT~ z$kgn3!7pNXCta8~yuxtH^InY1jE{NOhGMwKyT)v})w{+_+(%a4bOl4Fcgvv|nwhMB zKdihwPTUe6Plr`Cg50@%_izXl)$V)i{IeYOKL#tx4<9)?tf1UWKjpcoWy3)PAcS z=DHe>h^SF7=6f}kVY7a&K41TmsNRE3g*F-AWZrn1Y4jN;r)M!9&#~^mKxq!5oxFGB z$1Dx6P~x95ZN5smUZd2%V48iMN%9R!{%aip z10HBUs=Y7Q)2iFFqw;O-nB1rr%gwq^Zq>)iZF-s9uAeS<>eJ;eeYV`K zpDXw2=gW3ldxu^tJM~6+KyQ`@^%i+lZ&X`*!l*NJ_|kk@kFohW4VOp(N7Yc43dInc|*B-l3+Sp1`8l+HZY)+lm?) zAtq<-{7;3EataK6Jt`PWquJ63<7sTX8NpnRs*@i+^Ic}}wc literal 0 HcmV?d00001 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 zcmbVNZC4UO7`=nY0&SZ3TK1kMVzFi~rkJH@Ws;bned!#}026NEE-j1IzbZS&I(_H| z^rJdGGav*kUxLHF%*?&deeUzj@cYltUjXi4SA&mX-gb(HeONS-c4dnnnpV-M-IBKD zicjwPCwH6Y-}9m{Rtg12R4UI!sVp1~eui`J_z^csoIvT^JCS!8diKo%LnPIl$+!-& zCK!TC`I2dw?lP^4PVX`JlXgJ_afV@TV=c8vD&kU2cO|D17VpGoLtr?oqZa{&{*-Bn zt?FS;I9Z-62`RwN^U@x7O!;0P3@oYeVe}xP;~at{!96f53=66Mw1Lvn$R&r%+^3>V zn)J@&Ce6kJ! z)2axEq(!}?bt;?QliF_Rn7}02TSGTA3`e~X%0x~v{Epxh^I?0avhBFC3dV+2uDa9? zf**R@62mPGGYr>TZSf+|aa;OyM#gLi)J(FA*cm3;Jn^ES+WFnjW$Km-WNvH7ERDeSL)5fSX@{-9big3@P zhMiUI=0;a7w54q)M|)fvDve_p>qf%R`_VC7TC&)+Rnk?r*(;s;WS^$6rQs#Rjn>LF zD*Z2ojg2^!Q=K&}2V-2GeEw@xn;tr5 zX{kJ-=qX5FjegWA^cJVP`~)K5Z_vNelMj7#?Ng{n^tME}dGxCp$wS9g9c$2CqI+ZC zG0=nt)L;#w*A`$9L$ol2VT{m-4BP~tVDyV(mvL+0H5Km^dR4Oo=~)a{}_5Z zHr3D?!d1xpWw>R^#3%VU(`+*F!Em_pP;`gD8vH!afR zl&8#lmj35zLSDnKLW~|`ZZp<%f`_Tt4=hKXkgnC#Op`7`3xNV%-%{<0WZgkSp`Q$W sN>u^PoW(OdSL7Rb;g#)Xd$wiD_Cte9=D3Yl#3i40RJIHmdh;Rs7Yj4JDgXcg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddress.class new file mode 100644 index 0000000000000000000000000000000000000000..d139ec4edaf9f1528d6ad92bc1dde6ad1d80c2ce GIT binary patch literal 635 zcmb7>Pft@p6vfXiZJ*X6SpF(%Sg@dw_+s1`A&^>X0=}TJ(*4j*%0T;u%$s8Iqxdac zk+9G`Zv8xlGc6%OS1#t>naR1od*;s7pUWQrUgCL#oZz)}-PrcKaouM7s&CS6JWh3+ zdOh@wq5r7bC#tLC-SkZLOsCfAIGtq?@`9z?>JOjZ*5ZRqyT-7sPrb2egrZ>iuHe)< zuMT@;?IexV8-E_*o?!M^ovGN^xT&3CkFP-^m?nWy+7z5YWI2Ep_14(8z{D6 z$D7N%KQfu%O>*n~KS#46m|IOoZ|W%ywCNq^x>0QfGmnFr1$z8)bS|j;D-)EOcHr9j zoe4vjxjXh30n6Vb067#8arXrGQDT0;f6bxHCE>x0)4X}bEX;+q3q1NhlFTrcCYyxVC;Wd2-MTq5*dQ0tj^)tHBOY0 AfdBvi literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/InvalidAddressHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..b9a73dfd5ec36c3d45ca9d6b8efe6ec0a739f60e GIT binary patch literal 2467 zcmbtW?NZxD6g>+D$%+ER`D)V7B!n2#+6iq_f(eB&mvqC^Zrz%W3jf zZ8`&)X4(hnLuGPSQY_hqA8y3JYFB&DJ@?$Zclq!2-~R%*g`X7+2`oBpBj@Zlas{Wg zZtPojBNq$>$M(!;-pVs?!>IjcG|b$p{nTh$_2qiqHCwHRX7j*w6(j^Eo)}M!T+^U! zsrtmMc>==~t1gf#MqkRFOYppax=?Fcw&g8yS9*F|AW?AYrixPncUJEg=Se0jNu5ln zhspe{?9C(uPU{%KsK9v9vd#7Oe${lhjB3-AJe-=*+%{ZG&cnsg1)qh6VWf0SKqV7z z&uR%Q72i!12B}aw*N{q-(h*u|^WJi9*?yj%j@Aa0J+I+CTvl*N;7o_*TU;IQ;{$=S zHP&NkOP5H!?xoM|^>gbbO3Ys0UY=#$S6wIMy(R zK4?q=!XWKPl(zv<$st)t=g9q-QW~}Fmg!RDjb4UQS$y-0dNPXSLAsjUeGY zKj3h=?UACco5=*$JU|HZ|!*1saK5EIWZkp10%`@vd3b-$jER#yp^c=gta%tqB zqX#;!VN%6IfwAuHso-1E=nkK`YS+9+rfggqida|hsPB{$T1N>R?7HD8Coh^+yqdsn zy8o2)uk7|{7WW(POn&GcVJPD7uH{j^>WS4>YI{*5iM$M0B&<{oTi_Y|Uf^1{MxD+R zcctSoeh|=oew`vYe~cLN3@8p2^NZ(tMA47+Sa4R4R(9HM&3s_VyW~=LB7g_T|Bm@q3!LR?cN^pW7m34LDYVUT zl-47eBb~FKfM8tCwj90 literal 0 HcmV?d00001 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 zcmbu9ZEw<06vzJ;3P`Qn+;qD6FwxENpftvJqEjT2k&rRnLVU*xy}{1Xl5#uex6(u- z@r5724`n>JZFpED+3-bs?>(IJJO6Vyx4-}V`~~0%^b}$YJFeH&-CkF(xPv{TXE|Lx zTq>?3_^EhvD)x=eN2AO2nsZ{j%Q)Mo(@T5=8WAeO4biUr^LuUX9foO_>u$%en}%n}b7WM+2W!CaYHlfEM@Z0%?A(k}u9*hIH4Q0T zV$ft|mXsQ_Dbb?VnGD+#38tG{bNaprJ4`4QYq*ud`v3gR-0pKv!)@H5)`sbi&X<1v zCNRV-hhcL}m|Z0eQA>R8(-5s^b7uk$$u6g%BpdNS!zMCRMChGteex_pVcD70G<;zq_|!>{|zfcY>%r8r5uqI QV}_Ih9tEi%2T6;60bN>P-v9sr literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextExtPackage/StringNameHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..fc6cbae5d1cdbc4c576908544d1274a077d98b51 GIT binary patch literal 1952 zcmbVNYg5xe6g}IPrmYbb<>C7QN-5gl1JSmiP*5tBA|RifVV1JiU`aY@it?{~%%I~3 ze}F&A@$RNHv`xQQrrl(B&$;KGdw2Qs_t$R#_pzxV#E`L_iec|pjJ#c6<@=^pF}xvf zTdw%*E`4^_c=;o*2xG%_Xqi^UvZ&UCqang@c8?!$qsj?a+SwCjmm$1u?lKG%{S^SXih0eAdCSWXAvV6?gz8ZkSqSb8I+txb~#)+FrM_8 zO6v>r#=Lcyo#-|sfe~ENaFO9$EAsJv9hY&1p}$GGU03ciTu25GF)+?>J|HSXNLC|i zT6N)&v}BO9ZeUfM9hWG}ZlB#fRtGglu$|mp>Sq+)4qSK;| z9A@cIl}WrSn(1u2WroYiLQiQ4It0&jT*s9d<{1*?Z1bSXSa}_bSfb<6B;{3;*A?eh zKpDFW+slxia_E>#H>GO~Bfa1ZeV-iDr7fABeNt+;exr0NlTEsU*BXipqwQsDmH8xv zj#b&sx{B-fihbNGw>z{3l2Ehs9q?*{geNxahEotZiuTZn}mLuE@&Zrg1LpN3vYtSgseW@Qf z=R>1v(u3&U2AszQ+8Dd!;NCrrs=nVg^O?sO0 zlzC6lKRi!J0TCsB_!}OCkMLxL#-ErQc%C}K!b-}g^C}?7?e}C`r9~T~rx$psXqQn4 e%I{TYem3P-Ys;^MHDZwYy;1owtkYWv8~*??PQd#B literal 0 HcmV?d00001 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 zcmbVNYg5xe6g}IPrY#W!c_`uwK}*p_d?6H3EFhIik=G|@n5C>WT9QthD*P+O8Fc*M z5Aa7h-rbbOw&@qkw42@RIrrRi?=HXp{QL!A8rvE|470XVGVH^Wk+rMq{Lr*YhBstw z%N0lN@{zm2iywJO7(1K!E!UwPtD;;Hj)n-s`49XPH_Dt~h5Zkr=rV-&%mar0y#K~S zWf)@f#j9vi5<9p_}1hZYe)UI?_^4XDz;nx#{%1I2g|9=t7jCH*Z>E zy>_@SoNc~e7E*#;1C*9d&JU&m#PGW66*_o~WwhJj=N5d-547XqR(gk&wE zrd1UVNlOMvYgab8E4AI!F^&l`*h4oo3?_pR%0^BxB97n`^GR!{itV_v4o1$Z)Ld!_ z!4HFNN#Tx$DTc9TTY?C5+?76c%a{#;nn`vMJHvR3CqWccyNG*Sp?(=5bDKkM)4J@? zOdJpJNW(*h;gVG|vZ_u6XMa=3$`oC3pyM%S7~)%WKFY$it@er#D3ib}G8*REicT+e z%;PB?sUnGYMLnH8x5#ignd>MmL1*BZj%yf=VUYwhPN@u))v<(SIvjOQUN(7EQSJs* zvAwRH{OG8L&bTyFn#ORk6P%&zvtzonWv*kJ6l$*DC+*5)kFMdhhCIW~=BhQS{4a%$ zb=l0iitD$Eeby=yEm{Lfs8_l^@p6rXC${XGQxq$vylDm+rh8XoTHbw;8&sJvUA44X zUQzTEqd$$lR3@6GX_TL6f8rbTuk;i`5B>Hi)Ki+x6K)2*>W$=~>#B}5Xq4!#)OYmx z(5PDUAiB2!7cf8@;~2yct;oPW_!Prm6uXS;ftOUgGw>B$RbXnbI(S^s0+AEwt=N1+ zYaG`h^OxZkD3g%nPfeX-%om$btJ{?0j=~LjyWqu?dTuFAaok2SK>B2B__s~c)0C&o z`yTzT^MvFOQR0VBa6f#CCu=nRz(W7?)G1!9rF=TC0)pIrN4Aw3v@v>G!AnKEid;~B cuUhl7DZffneg$k0gUs)Z%8y}_W+80-1?W`1FaQ7m literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextHelper.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..1dd0d29f7c1aa1015fb65d2380d9dcace34178a4 GIT binary patch literal 3408 zcmbVOTUQfj6y3uu$uL%pii)Br7a>xjt<`F%iUB1yfCY+TFL9ELFc^|_G7)HPt-aq{ zs}J?9tB-x6+JdcXRr}Pn`lGtKznL&I3DC02T9EL~x$JZHKIfai{{HQE0Ecnchbjqe zIb$-Mo0$wpbA=&wM$b-$?T=_KYie`mfR@Q?h7UCoHchM7)o@0o$#8O7OPLa?6M9-g zFz!AXH4VmyNbvWhGI~}wPtvNRb6i4AG?&)=sF!dc))zm)oZTY#8hK9~?miTNgbfO6 zQ72(zT+eDl#hIjLjH$_tCbH&IYGzzDbn$=bu&&3-DWe)e1)Jb!UUNz>Fll^Ul@hs+ zWgDs}?`VhXG(2*qH{6?@k94|ctG6s7V+R_2*ePMNlXKZ!!7l73_)?Ap`=zNfc13L+ zp4gT{K4+NXS=cp;_^@XkwB<5s%?O|g%?kEmzl7TBYNp7x?fXyoKD0{MRgU~jZ(m~g zLjOqbSZsL6k9G;$ZJ9KuY@IY~b9qWaOUr0MhiHALgl!!wmC-paEDkE@!qXB0g084q zED%|j*LrNq$jyq<*>6`}?rHV8C;|aSI;2p`&#*pfH)lwYVm=&^u-kQtX4FChx?u zGbplStBK4FyoSa^8=G)iG`d$pt0%_4IP5@FK_B`lOgnp-{MtQ1)>NN0$>x+w;B{Hm zAW0IAS3273VI7m=!+8mN9jUDjUFI5yD~O<{9z(d`!!Vob_*h8ogbH552$hh~3kmYO zs`@VbFvcM$cX!6jjuV^7XJm|GT){Wwc4vq)=Pdp3}aP5vTMrX>rmx zl_koy>!?{w%9y~bg2&g&c`T>E2`q?DAnwBz2^}lrmxb?N-rvF{so)$^5_t%Xsj{zC6a@1Tq{f}D+9a#})zD`5{s916eNNY5@>qgviN#cXOyOI_2_iDkXj zaAk6^&Q%uT&=||+i>AFY*C9d~IlSRRUc&zJ!d8o?zyNQPdI2F}%SA$`cXL_$!kgAx zzR+?}5HY}eMlV>)pR`x>YPH1dT#Y%OXZssh$Zw42;&zP$@D|?o;RZRH%of8@JGGG< z(U?jX>si4&xXHac%3C_4nPL}K?m;?5{J2Hkmx)Qn`}oj@4_4f2v{&#EK4zp8+hS@7 zov#kYRW+q0ObYI#w>zc%w{jy^UVTnY9Ozj?7jqX|lknl9=`!v%)0w)mLLy>>KF60n ze8E{>gK}>~1z+K735o^7A$?~h8e0vFPHJ<@)V8^3EHWHwy$Q&zJen&SDebH-UTt=i z;k94Ey2Tw*vyb|z=Ia|B#Cs9H$?(I+UvkR-Li`jzbwT+7l%M#m3QzH`%unDHeNJGb zbt+=;{ix&@=BMzi4J~1_>sDtS+AfN1fGyZc!vMCSfhQvAJA@=awT2e4{Rx_W#@>ba zBeYBe+m>)(uI5WBhP_hZpp#X(99nV)x(= zJwa?C^bjxpioq(}!&V-QF5+djYC`0FMLc}H^w7`m>cS(WCzf#au~SHhOaethzRtGI zGW#5Yn8zLtemia;Ofn+4iPN~{K|6p+Owq5MD0NI*D6ctaua(fYtb(=@p##Kb?KXjY zOCWa$_eE9jQwE6vXv*Z74UrGB;O>(ilHt7AJ8p2^q#M_>mR3!7imG-R;zWrHMx3 z2Y-M+%6M+uw6Ki8hu)XdbDo!b&;9%F_a6W+VHS{K*!KLs=?(g3-Mcup2DaNbqp9w> zf`1W*p3~!g0Sd#?xpirojzuZW&N=Uj0`d%{1fcoh?VdUGd|`DQZk`CATLZad$X!}a zKy#^)Bwx=~W5~a@U0dujWc6~3L8*H^t|E(D8j4UE78|z9kAp#n`==55a>MIdPRsIb zxsQX2_+(!&?95_}{1NY#J}b3WZWY0BM?(QO7&NKVmc*gAT$}v%h;a;O@^L+)#Mh(~lD5zE1REHf=JWNeqrr-{=w(>=Du*CE~Gx?a9ga7uA` zQ#EPpsfI0-NNbdxZ-4e}L1p?>(ak_yJsVv^83u92#YgiMr@E$em~5)77YI7{G^BEkd literal 0 HcmV?d00001 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 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 e#vedGF7!3?{_NuuBDP^vnzSDP literal 0 HcmV?d00001 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 zcmbVL+iuf95IvhX2{EQEEwoUsftKb1u@FK61y!UGrASdz(JFnYP;in}aB;kmyDs#v zKmrl*zz6VAh*{gpr6^L!gZDC?bLPzK%!a1-X4&z$)jr!2zT4grPMdovXbcO-)~RJW7Qt%GW8RV}BpEUT(%Rdt zve^@!w3-e#_a%{Z)sZ1_YB@gbPpbpx=@pb1k}qu6mYWRmY_86rRYaTXh~tuhG<1gf zs_pV!zuV;AK^SqdDq5CPw>(?jBcmoi*e497SyY5|AT7_bv%pKadKwH@45V;@!BF|w zN?=fzL_-yvVPk}Qyqa&^o-f0a5|xhYxRJu@j8Dp)9`_8~#4W0282MMcjnK-!Ls?YwNW)FM^d;zHs=H|5 z)tLr^){As|68s@+{s)Y&WQbvoR-JZW6B=G(o=yh2Dd++&)2;{>BZ6)6RKB_*$QQn2 zX~;51!GTxA@|qAk0n>8m9Wkj$S4ozVw~UpDvm9}z^MyXHjZuceY6RIEp-T_w(zuN~ z0o`3>BD!L52edx!eIY?%ib=8pha>4}gY?$%Ai@r$6!PD&)W^m!yHHAlq`aRXrGSS) J=tn`&;$P^HQNaKJ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceed.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/CannotProceed.class new file mode 100644 index 0000000000000000000000000000000000000000..55d09f18ca514772d7186d1d18c1917788546c2c GIT binary patch literal 1056 zcmb_aTW=CU7(D~DSOT)5^@2BAZ2j-(@r3Ip;ewKYo4v2H*k8X(R+5>8S1MZriQu{+8?p zVcQ+1st%1hG~3dDC)>)c$}rSsJJP;Vtu#^sm&cPYc2=Le^}dQ~hra5WK!<6}3X~=f z^mJt8en+_*YhEohf%z!la43+ShKl-}s&A|bh)sbU$@@lzrXf26HS?+Feg66V$*Mro zKQsah-WYkh=oNu%r23|*-!wznRRW8zr_ZRW?)G%3Lc^Kar$HE)XQU}FH3U*s-BKAO zaV`r7X9V(I5UQ;~cV9(&b`ybur+vzoT!Q`RXUZG|eSyc*8R_u9tfh?g@=22`CvUUV zm;>)9i!5@sx|+pl^>5MocSB%)3W+s3 z`QdfJ=-P;1y3Mne!H)vV4SMO^t0j-?{1P!uX++avZ*iQ;@-Y@HMX_>k3eP@0 j@F~AV1QqjChI3;c2RCsm=5b<1yQmX0T4!#vOW@9L*ctUy literal 0 HcmV?d00001 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 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 HLD0%SY^F{r literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmpty.class b/libjava/classpath/lib/org/omg/CosNaming/NamingContextPackage/NotEmpty.class new file mode 100644 index 0000000000000000000000000000000000000000..800fd5348cd7588114014dddcf6987cca7946e86 GIT binary patch literal 583 zcma)(%T59@6o&tD8ztZc1+NPeH(nAa#3f#$fDto6Bg(#DGgg`DWTq%Sg)iVsxFT`k z1Gw^ujHjR^>c+)6r)|FTpTF(f$IB~#B9<-07;F`~w(?xNtfD&ir0?3pQdYheJ$=U8 zx7-zWUFoV9=m!f4hNV%{>G|P-eHn?c+G~qIOXXWgF|7Oq0u^fB>Il15ajL$S`hj7J znk4TuMHo@nWv#-%P8hN@H`3hKP2TB>Wb6HD^)YA=pW2bW)O!r^we==LqO7h&8gWcz zkU^GV(viNXcfFPfFU%~4oTJ(_fYTV-e;p?DwTu{w&dA~a?pNx#T3~35x z?niloPPVBss>zK$CZ7k$G-ZPUyGURkIa+0g5N0q-J0p;%Yy|d*G;C^PvyZ}Wg=4Z% V8z>Zp)RzMBn8yNX7=y;x(kHgrfcgLc literal 0 HcmV?d00001 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 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 GRq7Y6d>GIG literal 0 HcmV?d00001 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 zcmbtWYgZaq6x~;lVQ^v+V)HQ37#}G%#dO5(RQ_e zDNS3=YE~bg`=h#g?j2+Xtsh8m$uM{B*=L_~_BnU{`SS9PT{T)#$uOPY z(F!($FQ;!Zgj4R5jBOEej3GExDCvf7Kcroe;dKUo!rat?=wNt|oJ~yMmFFN8aiP+yGx2ELIEW3qYprBE7Q$6@OSr~xvBB>cRKa!Jpg`-M zbChaLEj!T{ z_2wvN;fta{{3$R*uD6sf+69l4&$kKsTzIMPgg}Ke4&MEop6dJw)Z4;(amA zFzG>V8RjZJSMUYmBwL4RlQ?gCpwHB%7!mfiN3R}#$$_ryd7e*2(8z0`ebc&yPnAJ;J%>-b8-2E&!2QHv%7TH4C5 zYUD~U*xIIoEWW1HWN7S{G@JL!$zCBN8f*;TD44*fK|E*ZY(8ZqeA{%sIKmGi&!Cj` zYL&2ahB!V*7afLa=L*iD6~q=ph%cDpND5&aI}-F$^OHCzc!3hRE>IP1EvFf^a?UO= zJn@ba$8+p-6Fxn?ECrqt%n)Ns0HyCQbW)l$iM2d7Zs19>q73$_G0 z+6Ee06s#J0_IgxM!!Bh`(5x%kPuin%S~8DSH007c8;N8T%9u5)pv~+29KP0ES?B#> zoX<4>Ez*FG-bl!TpW^f@NPiOjlYZ!KoUZ&62#0=w@-zKvLnnQA3ae?lnF1n@xvFMm6&IVjU7j2aB0WQ-Dcl-lEb7K7?hq&@LdVa;tSE;uc z$R1&6X>9Zmw>QSZBfnvE>@R^4LI zg?xUDPY9)p!n%(Kgd+2f;nSG2WUl#TJhM6|IIu_gqXw&B6VkOQ3HR@g(9vsJ&9 zCK`zkegHp|anA0BOCw3k!|u5-^PB$+GyCW7uipS3!%kv>p(wqMEqfiiBnMUAbKH&{ zE+y$I@mcNj)<@nEc2%mf^xgJ>-~;LI$!=SCNf->v$NYrbT~3a*=CNq0BoYki5w>>l zYS->dPw{3~*oVp!yr;Je@e|(lX?pptbR9Dm zvdB@)$hmPg=drGH^|Nl_nDiCH)|fC|iYbi@=ArbxmMA-VoYwz0q6IyjH0(sCCr%I3 zT}B@Oy{93e_eDBA34Wp5+)r5F=wbnj^fqY)c3|KomS|^@nRZ>qWm+|0B?6SmQrnsu zkjwwT>X@=f!GYIAc|#t10ckC?jz~JvRg$IUt>Ie4+>My2Tz-h_Q^-(Qja>F8aH$b4 zh1<9j;O-(F;R?YSFowAIl>~(;Cg>J;H<6w(N^c7fBHxjeeC|6|hu9ux7fNZ8l-3L> Nc{~h4KMH~t{sBe+Sh4^B literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorImplBase.class b/libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorImplBase.class new file mode 100644 index 0000000000000000000000000000000000000000..2bc4a1a33f0db7fa664bf831542cf400f499bc4a GIT binary patch literal 3208 zcmaJ@TT>Hf7=AuTvJm5eC{;uSJSKoft)-S&TL>sv4w_(EM4K+j3X7ZFxY?k#wzaL+ zL(hllj2E5pj@#BcNXxXn?@a$vr_XLe5*EWvcK6Hsyzld#zkmMw<1YZm@S}t}flkAm zi5S_LNX*EO$yrsOiKO~fJ;Rq_OEG23Fo&}_tzXV75z~&KESH=q2X~mqd-4+Or7-{+`(_4O*4t=K_zJAoBBY-wEk+U_c(!=hN zwX|yGkFI-CPF$Kp;TJ|mN~uoR1@48`60ewYrz%&l7+poqMr+B$m3)q=T1jX$TuX4g zU{$m=AS~e1m77*d_hT!%0_etJ9x2xgvPSott7(o;&namu8ouO51ji&C71&#jPEE=I z9LLK7e$vmR3YwwMIAt*`;g#xYcPD*B&09l;mQhSUPN2ijq@D~QjMoIhq2Y>mwQ(f6 z0a3gz;grC^8bn=j3*a(2~8ShHCvM!HuI8p+!D(mZnVI7lp6l4J@qvS2qxMkODIsh3> z5}3f&ayT6A{e1(e@$-Z6zKP-SvHG(ypb@i}lb{OhSuGkf?D20;{sb35As@gsXdG^_ z@zL`mgA;=TsnNd4eil=Eg`8u<4P;O<(CrCl2=r9H5HP(w2*yG%nRjgTq<2Sf= zhS`IeRlMItq-yO{rVnM!S%I2icl9R6YrRph1P;_vUfo`l_Q_eJpc5e2Mm{;Eaipw5 zyKAO0b8NJ!0RYIqq)!Zf7x!8 zMsApdQ83fW8P#6%yK61!BlZo%)4|rPM;*N2B@H{-dUmsJ;JvL50lxF{z;`biumw&0 zC&;hk@bDMdk;&hdXVk}B=vfpyJ?!@*9OycY$J|VV1>-9v<6YC*^ z2=&~8mpl$q(+BX8%`V)=hb*B4GxZTZ=D$;=GdnYP@JTTPP#s-BTh}5!Ek#2T3-B-F zKI8asw5zjw36Cm85p-(p0k-2lcHkk2KXS;oQxVma$+ywPZ)s!)N!-SFBrotiCF=0Q E{}7H=ivR!s literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorStub.class b/libjava/classpath/lib/org/omg/CosNaming/_BindingIteratorStub.class new file mode 100644 index 0000000000000000000000000000000000000000..d631bf3f4672d8485fd541fa8cd0aeda964ba9e8 GIT binary patch literal 3449 zcma)8`*Raj6#j0TblY@!6$(^9XnB~Vlu{m58$eoKEu;b3QlO||+g#d(bT@1^P!LfO zAE-FWI64e7!cQ_f$bd>=K;>8E@9}5H?{4BYeS~2;>3!s!@1FC0=iHlT|33Z`Knt#F zC=*y?JHyTP=y3B6JDV^@O>4M0*adp%!!+pOyouf zrPHTk6sU>YLp;#nv0N861MY~K6$r=u%>0mNVj(85s>pUS3p-_64jZnFMfyV!sMGNh z7BQt{R=UYl;Y)$aiD~`Bu_d6GS<*}~!rE};Sp1}M#%N9(l&IHrC{Rqp3Q{?BJA?+T z(y&tCmFa0sQKD0(Gt$wq8fyf~OtQNm9GQNQO2e|Pq#QG|uC!c__kk*=8P%a{C>9 zUr8w@IhQ=5%PKyh6|ZS{RiM%5Y_cZpnM~RoGF+DHuCXDRQ4<}nqfKD;uyl*S*i_`O z1Wb_~<=aAKCmVLR_w;tQ$3tkvHXUy$S%L~a6+#T{s=7N=HB6^6Uv)cmG-8h8YqyR) z=v2ZvtUV(udt@ekjx|w|wc^ks{TkShk;%dN9p58I4JSKdq0~<(NQIDeIZEVXszLa?DLKs7SbL!qxBaLMy~s(w%lXC7oDgpb`f|IE2F* zc&n@|k$rJ+I*#C|K=oP2bY(J^wyj}i7w%GW9K%~0-V|skfm1}dj<*pO&{^)O*;2_9xV-s4V(iIc3=GwR|N zSo%CzF7RfZ#m{b>~k5mdfGMh`&q0*Duws>^$4L#MlNM|R6 zGZ@owR$#fW&oq0VT6RwRi*fo~O5ee|8ZJEdNT1G&0!y9)rdWJmhXXzjRYr0!|7i31 zE$vfCpLCrtEhBB7CtV@Gg|iwy7MMTrob-)2_F45>hVUsq({N?dW0QaNb$qDa+fc8a zbB5$@Q$4kHGrgVb6fWu+bU8mkl<|4gP|0}}e~y$P#1CH*&ea|tasHpn)kcnjV=(#< z^X_}5^Z8$y1A7s`J}lr&&l{l@3%LRT78L+?(^A=n6hO3b9E&GVW-}O|hbX-aqt8QH zn78(kLRf;OUJ%RhashKQJycNDfj_YPX!#@5_uk{O3@Wq=@2g`)VO1Bvc>5w;fN18J z&+9it?o4qWDsm3`&b-+R&i^p(0DTTb>3ki5`yw8#SsNHfQ+IUjI9lS-zym~XV|6!I zo8wOqJIcw{huHq~aC96yZexBzQL(G(sW;q4r8nLuZV1b;g3pf{H=v7S8~^@KZZB#$ zAEk5_h05^TEO%TiMvh)*DeyV0!FhUKpmZ1M`2ioUOW4jj>EO7B<6e&YaoNi;n$M$< zV+gycXPjBqP{D2_NNGLh(fR;qLR}eo2E=+sTFFQTMIu_$t1@p3)CHD|qc2*=RZF62 z90RSvwM~zZd;nP+Y}KON+EuIFQHEqCp;%F~0xe6((5WJ;3eUc-;wd96LzEe{dgC5) zqSi-v`Ub|O#=P(ePyQ=heSvCRW!ztqm#W;+DrxCz)oJel-q~dy5>XJ)8Wi+CJ`aR?ah*dz=M$qK?ySrXbIm z@3E)ql~+Z9y@g~?;r5H}XpKt_ni4A87F8|-t%1h1kC1zS^R1(j8Gb%{cgJ22B{6oub`FwY;xpSoLc?wv;ut%2@Dc3P)R4xEy%T$r^^TdH zH3mx01j^k5Lempysc8r$j$7No4Gr`_?Vq-asMM;hsMLz0_D`k$sDxDY`DXT*U3=q2 zs;$|XdB68~-s5}c{eJb|*Ioy(4Zl!OB+zJ>qXA=lG|+0qd$jRLY&0Q)lSaQg%{E#=PDuAoHVx-?&J-`{^Z|NsMZAwcj%7 zamZn_DV=nBR5wGrsmePv6p^N`y356o6d{&fBhg4KV(k_vuB#sq@U$9X#^@>vECbDt za#X5VgH-~)UAAB;1g=q03V#WziQF=V;x-@!YXw%@O5C9QsKI)vVgrrUb=D6^of}nb z!e(NaNLT_p>s(NKhmYzbmfO1|rG6<>32FrtB8X|@dI`1=BwrF{v;_46Wu_iCqLaGB zr=U?_RR)|B5I>p`P_T8`0?AEzhaR2KO%)%;Hi4o@SfHZLjVT#pKW>ydw+qy!%OhQ- zSvnnsGM+c7xB?#%xUwq}(|Z!*!@7A;R+2z@mocJ62Q)Jx-)*8F#i(Q~t+5Ex+}yR) zO5VM|^6)s-QCU~NY<(z05xaN=PPmhj^etm6x8Rva^61)lC?8Ls9-lB`@zk~m)#qdE zO;{OivRGPF>_sb!WmIReT<^w}zcgf&+EnbuEwTXjspvo_%Rdsc2DE5`k!AUJ`f(e& z6?6%#T^dE^N>Amy2fYj({bSZU>hdA)jAei`yvwU>HO3hSJ!Xac%>3;ts?o;^s9TwT znPMx$K@2GP7{ijbmYtfMu&cNOALrH>p)Z!+r%y!h6WGE!&Lf_aj5~2i!CeBI3t(6A z2^Tqy$9K}*a6+?OO{prfb`>T6`I6W;b3c<8qp`Lh!L|v`Y{5wDTaS%+Vt|f z>VP(KOdGYEuojJk-B~;W0`S^+1Prr=S5V1WQzwOGus4w%M>uDeh^E^zq&i!#d)p(=P%;D!QGa@s?HY13A3O4z zV;rLL@#cJlIEIvQs);7&Vve3J^Ql>uUuZ)Phqd{XX0>VhqS;d*JMPMDjNI%Yi73?< z>Fh$=Gd3*?!%e)XhHqo`fE^?5+I@URCe|ftqwB+Q73IRh*R{x>AF4v?f38 za!5O;;xt}X@WUl7()prv7}2n9`Z0@21@rkQwIth|WP5FiE~g!*be%_~9~bZw1+NQi z7>y+Yt!cE85spQ+UoBy6!jcpJXkWB>0j9?*%jr7B8Twf6%jl8~SIlV}@3W@DcuQA_Aa|h&nmp??)2{o{ypn zJ)9*Eqo2cM3wGMvAW9x#lUM`13(~y}^SC*q&Sw)H5!GQp5Fs-1NKVC$qg#2G!k%;3 zan@EYp*XUKZF7#SCoRhph$CCP4;}^+LPnx-4tp-5Cg`d1yoIuc#-`?Z+mJ(~6}J(^H&~i$MTl7BPHx9Ke4BWD z^thTHoMdEm?)Ddm%||b*@meI_*;M!^eef`AQPJ&et255d>S=xp zr45bqn3-u#?Wld^lYeqUt>;zGYdf!77BS1N^`q`-Y+S?~9~bzzCPOV-#CcK|yBiz0 z_kNsd8oP-J_%$Q?TlSYrsGx^c_#Hj^J)6cKaVvAX5AUECe?cGqiaYT)o{Im@X#NAo oh+X!l1_ysCTdcP?@Fu-0V)Z@Gj22PzAv;IKr2dQ&Mfmyu04I+Fr2qf` literal 0 HcmV?d00001 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 zcmb_f`*Ryt89i5)wDxwBIt0yT|9k5EO_u zo9xdF3p}`SW<9DvXUT9(y*ObwCDXRfjvf;bj|yyIPZo7%n{gc`-7nCQv#mM9aScZxo+?=7&^shK8e5y} zsWNLjuFNob%qSWK-8K5-6EeR8GQa&)C0}_i@Ice0Ov!h~u2{T*H&pcE6AHFyIEX{E zQLboPq-wnyr>3qNIhU#4%_E}fK!ZB(qLaIco?QuX+J&X{#+=8}Q|f#gPl z*6o7RdhVKDpeb#4#4cNT1vFuAi;ISJ%d*|mj-4|MuKcvXBQ35RwdVAqnU`Ck9fwsa zJFMXtj+6DQV?0(iO0Ga(gTgP=S6)@|RN0*^vr#yPKGUz_GZyGJCET&V%T5q6rp&N)rTM3M5NaK`%k~OV4`x*gHwg$Lq#iLej!JkD& z0bA6b^-229SS{!b&eEx*h^=5?)9|&x_0cO%lNFuQa2}KFmXxe$=p|#^m@PieUELZm zS-FVMEBKs1_xhZxnhwp*7R{V4?OgS>hD*o_Y%LgWO`ZY|v9oOgQ!|gwxCmXtl$_}Xr#4*X@T8qZF`jOFvrr1#~sIZR1^@E0k3H|j3WwW z*u*x;dfb@NozgT{u5M{kt!FLzQ#J;^a%8Vv3*_6E?IU1XY+CG5{;gifGL~~Rxp={YH3LI`w+(vmCq@my$u5L&I zMP54ut@f!(^Bl_O`JO1X<0%!-$!_<&z@gSrD$D)OpyEZmq~NPGe(MNl$5TFKYu)8* z9t~B9^=-0t8#bUp#n7FwUgS|>SFJjgCKkUS zW4@~43|X)^y~aR0eK8LO(` z$v8GNo;fj;Qt=jkAWuj?tmCxOe&iWS;Kv%C!qWn(Ze?}fr@YD7WhZBhnDUgkr{Ov6 zfNW=YfCz2;5AnJO3flR(gTEL8Q2EDWr}vo$L5}VG>%=zB*v`8F1bGE^hTg-D$+jiz z%1j2AaBt>a?EM9w2XH^HTZs#j*oh2wV1)7HHy{QNrWK^4UIsvCViEfi%jlY1#KXTv ztRCeuBTh0CnKhW3;I$J8baR9}NLKL1h$mxgOLQ-y=f40>v+PMim>%Fg{-P@2HYD*; zLJIzTdZYr~>)iwDFR^z4AOAgi?=X;GYM9>vrJCf_3Km_6Bb?R8@7tMNKR$_1NfO0< zyi@q}yckPt9||tuXu79+2_uP~1*FFIFX41wII({L6Or(pG@o4<lIAC| z3t!@z+qj?OK0J*mox@PU4VZ;N8(qAvF`bL z3Er-ev!fckqY_-;i+G|b=#6^NpKk(si`+<$a1T~M!yLa{(f1PTX=kptL^`qkD^lOS zU?fO|pN#~m?npw)m`e97;e|d$iarrh?#L;WIxVl4`$Cb>5?)@wE3c!S^S-?z?_aOp ze`jSGZ%sx*i}=2@0lo608lB*>Tv&mkf5{u5>! Hz)$}JQ#*aU literal 0 HcmV?d00001 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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 QCb-28L<1taS5i{)Ki--wd;kCd literal 0 HcmV?d00001 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 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 Hh4A(_$5xgg literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAny.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAny.class new file mode 100644 index 0000000000000000000000000000000000000000..458677f46afa158c9367ce18efa0c5ec7e9f2550 GIT binary patch literal 251 zcmZ`!%L>9U5S-L%)cQJj@g{gT_zBf22tvVrK`fy}YEohp>Zf_|1Nxyo34IEvI#vZz{x{1D+ fRBU7gf^Xb;MRnN-8t~BsMF)X<6mHXZ)x+Qo((gl- literal 0 HcmV?d00001 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 zcmah^NeaR+6n)WZw2p`eaP7k25u6HwP_QS6C6q{;lo*A2G#4JgLy4(U(3P7%zu`Zg zw>yA21{5`di8cw-S;E$Z;+c#WswhjB0v=m!3JQ;4c;pw(Qmzsf9*!cm6itHZKWvx_ z!>!cnMA7=vT7~=Ng5}y+enGP~1}NI-xbNX6Jr`@}zW|{`Ofvug literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6e78d70466de161d416c970fdfca5e797602787e GIT binary patch literal 2755 zcma)8TU!%X6kUgllf)412YWw-=xL z6Z#MOVEcUqD&JT8+#l7i>&y(fLiHtcIcKlE*4q2*$v^+T_zS=d{G_2x;IiZ9l1?F) zoUGVJ!7|f!Mcwi;Wtg7hR;FdXC|wO50w*?%O(U5%>|AnoWkZ^tz>(XQZFzSD+6RZ0 z1Ue?1RT)D&qB=TpMBsSFvgN~aVMV%&#!6la#50a*ZYCh3v+FD&wF)Pkl(Z zKC~3UFvTaVQo?q;gpp|In;5!rRmU}quvkX1DD72&YX{-9qz>()sBT=>*{akZ@th!U z3~>x-cvs+Tjk0gzgi-SDZke*^S&q$)bXGP5daG^F&>i%tY@6%Sd?Ht~K`X@|@PUpl z9A_VUl_IS^L#rDLzsUEh$5T;!h>tX|^ZRmkIT?bxEAz6%7BD@zs^ep%1)>XVh`jU^ zrBh94>{p5un9wn)M7CM05ljgjYjScL_chE2oNOe+a2=l@LtxXDh9|R@?MZjdFlE*= z1@0W+c8l3{2PF_umB_kTc1gNC=A+GrjPoH?6?53=NDVE;Fo$^!pSEx(fQ|($Qf!bU zyFXG+H|N@KQO=ik!>+X2sK}_AtsA6z{?)X28041ca=r=NYR;y>YE?f}niBR{$5;4T zpesbHO6YItn@~dp-*C#!OlHP7az|7(4@)q1W8^wDv8+5c)6FD{j_axMnVhkUWse6# z8im(kt$}Dgja~F0J-;xW&Zs_I(~-kE1@Sy*d1mvL84T@)k+FaNTU#jx69WRBmSQDv zv093tvkqj`QQ%6>{@KQ?@cN7U5oILB(W^D_>py75!XUyV;mUInk6!#jxl#+x>7 zfWHjRqocgngAKeM<5N@(yfD}zkP03c{u?KrKiWflc@N#o!`tZH#+h9tc5pd9w2dp< zNbca~OMi0*gWd_#^zt5f$lp1poaZ-f0T+0!r5(U~c;8QZtD3gPc^9M4xmeFx)&+M~ zgU65xIbRKJ(0|A6U5v-?ZsT4vM#0Bu^V2>cy}+tF%%k2N8K$1unpZLZZG|Gf^W%Dh zUHA-3+^xKPgwKf)#WKDKv2OCJoQu$_FAq@htWHHFM2f1JAI4wsqk;B#wwe6Tb>t1K zgaM9UC13+FZrh4ykF|lc3}fgxE@6wg%D+&D9VEWNBOnRhA!A}7{M46 zeH$WbWQ2H+X_~@IC|0U<;@`4m=t-DC`^06gZnin~{y#qjzN%V#S$p6IM7o7&jur^!8$)?}Zx*)j#|uR@D0n z-K$r_)k1nx;k>!Bvb?Z*L*|Kc*4NgE-C`cthDJ-F_tU1r$!}ls^naG_+_N`4DrWN6 n-XA#~*AaCT6xJkYpe3=bqa$-7Q(NkWAYE)NBhqizyV&^xP|SLA literal 0 HcmV?d00001 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 zcmbV}%T60H6o&s3l1v#=E-BZhMJ%~Uj1a2|6e&%@r5bT*AbT^l2A9N+JWku;eRu#? zNL};+`cPGm6Ijr8)rHSFwtj!-x6jXC-+utu!D@g4Vc*y^GW|4aTIr(7Q31!4ZP_#z@@qK>pm^wh1_5M~+2+pe@3^Dd8D1o}XD*<>?LXxA0J zp)Bpry=#PbwIf1#Uuos)go*WyE}`gchL}LLf@#bUW@4q~$*_MV?Zvo5H8u%15Zs14 zJ{}g`waN(f_{sbKe9sdm8e+^*U!+DmBK>;NMT)oC5Le5h>a6tI^5)h9mj5K2v5E5$VR5W_B(R>1)tEte!?z1~`x`;2 Bmb(A| literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..509fdb24154213971d96b826deb220de63ca346d GIT binary patch literal 2917 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 q5v+4`1XV^lY_|M^y z1N5u^13g+ea#TM1qdeZ(O_Oa>ILMdX*?GCoeeQE-X8-y3kG}w1#A6M80+$@Ol5%R5 zRCdEQYL+==Z>T0;i-!5osL0g3{n)5l<$_Ud$~jrBOIJg`K>UI6*hp0kyOPS69!S#@ z*mcFSE$^y8WF%P-=+8K18AAk79Rt`Uus3Jf@@BJElJ1I8s!D-G&M}Q@!Ei10-RkW3 z)~trW<=k6POEavuQ781#kz^YnlV6&iO0BS8QA$U#5BoJF1P)j1W-1uXyQL-B@LbFE zWLd`n92AHyTXv-?J;xT<--SlVw1&eBv_&((S@ztf=`Bc=WefuE>Ntuafj+A&aDb#b zx^XJ;(}OrJpoe9S;XRzxFf6cdJ2->tIEB-sW4hAtWKpi0vhG=qUGz+WyCc2uy*+ok zQVCN|zfv`p)p1J#TFuXm6*~S}Ao{_w8`7mQW=6Uq(q8Fy*Bd!6oh)b=6*$qU*i5bN zZOm-tKj&1-f#Tyj_F!)eNlYl?r35a7Wm#EsohQm}9R^+gNETw;AD1+I&{F^s*YP1P zb0A2rNb#gm3+#NZJI}h~dTJ=unZ-n?q+xILT1u&+{JUmQv(*38hlP>ro@=O$nC<4F zkUNEaGr^SxpXs=Y&$&-q(A%;-+q1)VN;k?nOzD_LMqq#^Nt1i?V91l5a%h+lIKO51 zHzKLwy1>xZlAw&!Q`usEab{_1Wj=p%5c3Qd-dn?Rz0T80mSdR34P}rVXM_#X+Lp=% zv$&}vk3}8@>S)Ut%?9a@hi7;Ahqrd8H*!6LXp~6HI#zI-BGfF~aRtP@hC2esI_E*A zYBU-dqv5qp%~@*#!@1X+o~DVIa-Ewaq-!sjnpQG+3LS4-YX`-692Es7=Cip;UJDaS z+n!QvyAviaPF$dCxeEw=yW4qfOU&E#rWb63x3HoKse$;Xw%2+mbRGBAdAnN?DmMHh zHij&2P^a7s;ru2pbXdmx@mu7x)JElee1wm=PPIP4r#|W=(k;}V$wmp0 z9Nol~mq_Nue#5nw$Ue=z!0c*b?is#V7-s?tcg7R9e#g@I-&_cWh@;R-=oALobB_{y z!&Z?a27gLS455sZkWAsePiK@VGEj@oAm@IGRif>~5qyQaYzX(t~Ic-gVB4Ozz(6fn?ryV7BYhm3u z?Xm!`2-Dx?xfI%prb@Kz=qt|rD+)tb~v<65%QSB0PTjqAqA z{R5%+MH}t52qViYEkeF(&r}H`sFd*ro~q<%IH3~ShzCd>!xJA5^RBH^ zf(W0y|JQqL5@wde!9_aK#G>gEZQ{+9mUr;hJD6i*7wwEt`4=OUnzo-r>Z|rQpM3t( zpS>vm61O9V0s^iUFp3iAG5)_C%Dl+mk>doPtaB#Lh1FY3-VBf_jwQx`D)Ojfnyc~< v!VG44=LP0CdVwt_JzHG;c#HYJ6%N=$W1uiQq#hNRXJd=3L3qdAIlTV^^>>Le literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynAnyPackage/TypeMismatchHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..4eb8cf692c4580bcfd92dd6bf397496affb8ae4a GIT binary patch literal 2758 zcmbVOZC4XV7`;QlC2^}UzE;%YYY8CHTKht*6%r6?FbIgHwx*k946Dg*+-wxiX-|JZ z`?deW_O$4!r>&p+qk4L0H)NLtJ=QO~v-5JF``qWw%>MK5AAbS3h{qaw1THylCF9g8 znf!)r)GTwt-cU`x<_+_qQIVOYjk=t(8a2Z+*Jfn3E?o`10?7x)V`JCsejrUx zVAmDPw!EtXv7z*`KyS`jl?lWU*U^Vv0(%RVEpIk!W$7*%<*F1&6&%y3E*q|;zFVEW z-kQ}AxLkM(YFUQ$NLb+LP`V9}D=th<_=zY=**NxLzlM~+;fmeN1fxZ_ydWE%Ynh&0 z)o}m^1>%dAU8zdXu?6;bpb;{w;V=Vj(F|}FJ-2Ckb5doQfWW&tj$%Nd$66IQKvJP@ zoJ#y`KaLCNQJE8X4<|JY3hdhs&Y(I@;WX)(t~5MZlIy0ddzNFDJX7HAP&a&c&)tqx zqLj0*RE=eI+_HdH^K)Z`j=vU&ez5F@bZLyKp^k{OSGL{tM$XHomo*FvoCqs6RjYd& zQ(O7ZIMvla@lhRnus4A;#+30g0vDpPEUmfD6J@uML5Dxm%L(p}OBz1tDgcS=_z;&l z5F}Tkc+#i^c0SjcXWelBxPogMOzZtbu)c0Gr9oJfm0mT;RQ)GXU^1;ng|I|9eT^B`9> z8jYOM@Y<&4tTlnb!s|^>)5J`<&dm|gwHr)LD;qq8j<>C~gJL|6N&;iE`NBA_g)yaV zS1GpL3F8;XF3`2y1%$rc>AbcjX6<^@3%0>qSkZ*kK>SnNYrPY?j{EAo-K_|f8vYTR zKpr=!yrnn@oaxAaClrd6im2K01TmhtmPZfVd1a!-rWa<~j?|^$PS-2Xh6HTXH8=vN zUy*7QU&kY5U)?9wN|xuY<5Lhg+YTQTx}9hggPA54ou+HbX-nP7hoieCxbVl6M|)55 zHjDAs0npgujn1dWuMFRU@4n$@=>LU{9whiw!@xLp^Qi|D_`xpj3_r(_)UlCGoOsIq0BesQc!F~$xjN@#9^zOpk~o8dKIU$m#W|wJ@jixH z=rg3L(38V2kX{*ij*(|LzljSW%Y;9Ei+mQ^sGN_F@G;k^)+hMXM;%ADh59quC?V3r zo4E24>B7iwxb_nHr-c`oUP;Y7!xwX-OknQLXzJGQSQ!1A3&9XcEVmLmg?{$jqXgfu zRpN-jpAr)TSj9<5rf}b}ITDme*`c*KA%=FoIErKu$Nx6>ggb!?g}H zf{e+yjvErj8SY$2%~43fFfPluiCYpT8Lpn0yLV?33U1>L`L9`AwRxe&_v_ryc)`{f z9)waImwT>U=%WmVy9(~%J%&EL#4tj7G$WKFM~!l95HsYZ7fnI%eFY(eDK;(>wW6!F z292#yH^4b7?XJC>DP@Og6&V;M%=krqQZDI6jay`MKh$AFnHYQFt#xH-EW9P*Lxvm8 zSbGkyo0Sr`WJGaaq~rq%WT-ckjF0iDgipF+NGudQ#AmeOFfEYAT-|f>dbX2v)wFD} z6>VA(QPM&+4!e_0xX93N@0c}8?a5vg86I-wJv0uZ?(?vSmtXXc&xPynybFGBmx0K$}9L9 z6o~#k-7qam%anv~Nb_dxBr9sImQ-u@%7MnKwl2DZPvZv+w_D1g+lnISE2>nAx4dL^ z%D+tqs>vUy*QJ)zOVo51gkoJOO^tVHae;E$PZ>sliOx8CF-aNKy6vP`@4!o-5*%%h z&qh3(TaTw@l<-mlDLQ+$-^FN^^3Ajk&zfBsI}F2yX&2OLwW4cY5j0hFJ5Xyh+$9+* z(i8w)aBpqBcriDa*V;>XwnCn{>3&B$0hn#90MAM z=qn&z6Iv06^YD{BF#bEPJdOBHFm{BAbmRn6!Rfgp%)X&L2XDA>`3l*u63SWwcZ~M@ z^w>o(N_IoEHivma4&VbUxHpIs;)bEfDWcnR$5=eVM@^b?V>3t8@*bpsT0)EtiPJcGJFbkn{+;bb`1S3t+dANm&REqZo}BcPYsj`_FR+%p$O#O bD8DvPM3l%9222{oj5;gfFjVQQ5BvWES-oV# literal 0 HcmV?d00001 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 zcmaJ-OA5j;5Phki_^TgqBW~QdHF$(-6$GK6Cx|7KNKHzNLOq%b58$E1ROrHmGBC`{ zdvAC%&)59{V2%NWM=;hVVfvJ?FjxE}<3Qy_85qNJiYh_>$giBGTqP_z97Sv?>IBn2 zvM3XVTdCEVqCqhFK~-*li(pd1%V@U z;1ylV7!CQEu`J$L5#_3|6!bA%Ipjw?Rpv%1wNW?}n$0lqOgD6Uo}qUtxy#U(HH#vK zUPM*&V}RjuPB+AQy;2a?4lk4iLn3Etyu8aTUH*HEefEJ~W0=Ujkw}_+8r-tXV}>VF z{`u_2)AH*|fk_4L zGu&#ib@a>fn!WT=6IEL`4XQq~aL6#?=e?~QNTRx-9SH4(DCXVTiGkrG6>(gqnzb8M zQuzj{+@A9tT9@^lj^bl{qJXM=v}Dv%9=KK55;e-cW{aYVPmy7WZc{Ckg)J!!hR~=$ zDM*H_ibWY@k6w&mnSyPJxPs3WtTJ3}=RuY#zCeyJHA`??Ni@N!7xS?ner2RO$HB)johD~fK__BjG*{aya4#OoEKi?c0*TZg_ zHAxesmm7^v@gxtKsRK?dZ(qoW3SYdmEiR|iY}k>+X{EVaKr)=~RD6#g7~&p~PyAX( zjd;u>_>rd9>SAt=rs#}JUl;7TM>7v82udM!M>b5YYFf6Oh^bYhTDPhG1+Tn;s{#TV zZZDR#%+~fwCKtm#4iuEA`J4M8Mn+?qG%_u3z^l+fEflB5&Qk}Mbw*)QTn30jh+hqrRdG*-9LSb$nW&g zgBU&KHZYI3=&8B~=zWR)qH^lciZtc~B+pGw|BWlJo}VMJcaEXG=@X2c;KmuoPH``h zJi&V>NS$K#wR5*l1}Kb5@Ut{IO#<;-11+ z*rn4_!{_*#FrwJQHy+k3y`^Fi(&*bRQT!Z;BH|%M<-qmqCmd^_H<1sM|0O`4qu?1l zrLd*L_&Kyaiu(-W6fa)WN>IFC18(CeqeA;p7%)AQ1wxS$T#WKtK!!M~_=zmY29_fO KLyi7=VE+es;#Tzl literal 0 HcmV?d00001 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 zcma)3O-sW-6r7E<(OR{BH8(wo&>rmK*;D)iL5ZmJ;vqcKC8j2ukfg=^YaaXo{wVRa z2u390VcEAkZ{C|>-alU7034xf!xA`1^H8QqD9?W&bv=P|t^&hTkXB-Q(t5kt* zwg1$+J#i&#=02yWTd~*sYeRo1&^mt!RQ6?cUEr`*&{ c=JyKPjIJ`;goQP97~90w&p&=`bBBeUPaz4M5C8xG literal 0 HcmV?d00001 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 zcmZ`#OA5j;5Pk6%t$%Q%D;KT}9>FgNLcyLOEuo~eNr_R=qq*<^9!g9_7lJY{%*=a_ zc{BIN^#)*uK1GROq)p6p7PHk^@k~Z@buP-aI%X6Vf?mQ;oTXgF%nuV0S&ACLvWs^a{b26s%fFZB4ic8b}LB#ald?9Kt{{6DN}bk3Rbk z{0F{OAAnE3&-(0-@^hb=VKTWCU*>Yo*=w)8_T~KZ@1K7Gm_b894@1JT%PFf`PAwdn zylUtf^GJR!nvLqRsMLh5ppW6o9)HPG6>gSO`Qo0?9fpC&hG{rY7CwSlz4j@ZsQICyyTUJ$nP-Roea76(nbn3-3E|Dn2<@EWEc*c`1{GN2&NdW zCX9N*w44M_`1PS;2=_GH$26se*J{EnG2HKl(BaeaFnppRhRam1&QXm- z9wU)kQ@%;-vX;|Pe2S+EsKQ6fW+UZ;+r@QJr{wF7C~5c%8HVTvl|n^0lG0!s8dWC+ z$uO^BK?d1llp-X7ZD;k#i3(!IhJPH{YaQ*j=O{-gZWOw_xOP!=HmpkuXWUi z&pU!2X=<%3nR?+qRlW@J!IS;7|$W? zbG_$>ul<3?r^v<^kMVgs#=eWuQ-~AnzowP2c)y0+#!x|(_M@uT7;5;5EXW47D+5EF I{(9j22MCr?k^lez literal 0 HcmV?d00001 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 zcmZ`#%Sr<=6g{blukVjf0CyO~=rCOSLUW&M{+DX!kwB>K@ zMY1hTrwrZUyHtzz-eZQFe=mC$@=a*PGq)7hyiSF!6)kV~w9BI;Yg{M3E~FY6OO(s4 tWNyPRCn2FQ70JY@I2VertF}Nv~ZX$!%YwA5-PwKW6~G>{gMinn+&IfQ{^CQc>=9)0#7 z_z!%mJ^-J5pY_=v<>x*#lgZ>FeVNNSXRp2X+L!aszkmJ(-~s9idKktnyOgvlrR2hq z$t#AQHjm`zl5r@C%c5Krwt_x}OMCnkPnNk^O6CfCLU$Mjo*1U#JZ0#eN^CLoWvrr5 z(Tk{tehe^N%o?Uxt5*ub-sFX{V2EceotL+`ZODIrvCr8xY77(Ew-QN_Pm|lWb-?gw zDmb6Xt0Y^cTD zb4d2%m{9P3OIEx+4YzQc0ABHOUF3Ec?o5T;dzmARnr;KgAxz4=O)(6IP5k}DRs_?O zz%ipXW?Ie|A8XWziXq(9a1S$-9bT;pv&e9-8$^d!Upb0r2=_IrND4jTSe{E2aZD=s zkl{v?t*c*#*PO*eT~r;zGO7Bk!XCp&koT5yAc^XxzAN;7QOtX_qk`cR4KZA#nstt< zr1CXVxi#mTv@Yv86~(7`rhuw^v}D$kKDb?27d6Vh?uep>&yZ$_Zcr_hg(E2qwxLmh zQjiQ84GS{J9-|n+5(V27aT#AISYf!_%7ZL5e2FY!>bBsH$Q!03>>aL)yrVNb?ILuC z&Y`C8_y^HZ$_%q6Z0hER?F~hPAQi;Xt(g*ADxPCq!HW*sWUFBVn+z8`{Cs0*Ty1yL zs7ab2z1%$N6i@PyncC&V^5(gWsPM(1V{z@#nqJ>nPG?o@U{^tjn!mB%%7~O$B8@Ej$Q$q)3{VTjsIl|Z!DU1D#&yf=XbghR z>QbR&lA+&_$h8iUJ(A761M^E24wQet6nLw1j=x(E@LVrnmGkW(=pCIx( zee^)3r`!gf;T?Kv-T``Fpueb`Ifx9NxQ#^i6n_;ec$hbc+ zo!A`z}V0>vk1uzU5Q$Bi9C|DUMuIBh_6!Ao7Q<-H3Mz zUtx<*OATM*Yr=?P8{ha?v-FmVMM$G>yF~GGD2j-W6qN(lx1VsWf!=t&o%}B$@*D-< z;4y_Q9mdX}Z&Tc-5GUAwLn~qNehs;ep^OUcM`6P9QRWFnN^m~PZy_0CsNyHGARE}O L3=B2;>w)th@*`G0 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0A$A5PMh4aVqICWI+;n}H%Dlwf%w)&BN)Xd6vm!OczaX_Ju_QA; zub7>Ig^@uZE3qt5KPNFSUEe<`D>b=&!K^eONKywh<85ua!Q%mB@5_3vZ85u-0 zG<^_81(y_M=A~N$l@ueCh-zS}(2Qba;Bu`8bi5l?AE3 znZ>z@CCM4=4E)4s@yr7{G&3a(;##iY{L-T2RJY6=pwq=MgGLYJ6<|0pGB5)%D==u8 jfMLbXz`+0tGfoCBpeQ#`l#PLjfro()$P)mmVGslWhNo~L literal 0 HcmV?d00001 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 zcmaJ-OA5j;6rA{re=E3gBQ9MTJc3^kgn~UmT0%)_6OB>Oqq*<^9!g9FK|$of<9%j$ zGw=Sm-T+L{r6>>#w27I{VzxLdp2=vc&UqP#{ZXh$P?QL~gr7J|xr&(|CL*#F6@t-! zroR)0TdCE7qDs*JjdtfK>IB30dhTy$Q?}E_@-P)_z1S?3mDZt}1if$6TTI(+UJ|8d sfiRM%@{+R&>VZC*NUUVucptvTIo_EdD5C6wqJ{=q?lEw)j>`pjPprjLa{vGU literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynSequenceHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/DynSequenceHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..c64da94523bcdc80a4e0515471e3b60ab93069bf GIT binary patch literal 2532 zcma)7S$oq)6g`towh#uK4Jf6iEQwQyffky^G_8}6CatqHPD9hp9m^9(!Iq3HC*-Zq z{RjOAeS|(F`I_%5JoBUa^^PRV@)GEamYKQdo_p>xZ~p!J9{~4ISJ1<7!?H^$t5QnM zADFyi=o#}se&)opx-fOID9Tk~E9hf5zsvV{s?5z&YPGN{bcbQ!kzpFn3`6gDa+9HN z&MFEOy@+b)#{k2*tYM0kdZi%j4PGb1b@%;(oK>zQQ*!?f8{BdI<)W~q1fv=*;u1roB%HZ2uTgx1B(!d*V0@&l_x>(&NeaA!Yy%dsCO}7E$5XNKz#~FshCjNeM zGlB`)N*J|-X*mg=2-S;7t*2a}X0UabnV$Z)3{N{3@#JPK(DcQqvud zj4Akp;YyRRE8!fkIgg*~qUsoyNtI|7b{R&30%)lVQmJn0J3@adig~YyR4{y|A%=5Q zzs^CGguYBdx2AoA)@5y{qxc+OD4>cTEt&O{4{jIMMU4tTcSKRcm&h@f6ePo(hItuek5Pp{CO3DwN^DPhT=e$wzWeqo6D zSONWu9rfb#kKkA8x~2K-G!58EnaA$%)AuItQZ$rKYLq0QO?I3vN z-Ha6w)^Ka>EN9kpi}hSIpl((-;9uv`m< zo5ATe3N4Vt!JVB9YR;zve6*fX18nB)|lX4{WU89!nrJEIq(ih!-^i=3CMQ=v$ z{)r<*UeZSoRC>y7UBavIT!H0A^(&y7vI#`zadP7vQZ!O+&kAw~{y z`51{K+=?d;@zEhtN4WpWJ={k|ANy`%E~hN5tdPsKkh?KFz(d#Fr-8dB*JDh*pv^GX zLddv3FrG%*=X%=@U;7J>jxig5e2A~wF?L;y9@p(MQSzdkAwP0$V1nXUZEB>tt9wL# z-?ba@PT@Oj(rKyT6MRn?QEcG{AL~B7rD74%=*KQm{1%EL;v+@nAolIAyVgK&Jl{_K z_YirGf^RTIVM~Xx6X;tM_c6o~p1z`$uy}uj+{REwh4!N`VfiStgd!z)JIbFS8Dgm7 R8Cj4GY*z+`8vXUa`44V#XAS@W literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynSequenceOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynSequenceOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..66bdd7aa13440eb0d03068b3a8463b15fc2c85a5 GIT binary patch literal 621 zcma)4O;5r=5PgeC6;bgEl!G3;v-I51ZM2JM-S`y#4zA_yllQ*YAp= zspPuA$wKmbsa~Z^c1KU7?+yCWACo{clOdl1(n;*d*cqhSkvbJPG_9xGg>2^nwPLA2 zqnLl$eYj}b{3On6W^K=vI5PiIu=)n}{_~>8G@?5%4rHQuR<)uWs~0q8UFD-u8`6E==Rs$=@>|I5b(KSZP9BYhhU^Bm|V=Ir_*qLTjP{MAW P(?Ih##;1MeDB<7-`C+LH literal 0 HcmV?d00001 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 zcmaJ-NeTin5UjYxeE~0m2TvXiKEV|PVZeDoW(Y%unM7g~^l2V^fR7RrK|v5{Xu7+q z=<2>dt~UTv^e74hLv0eK^MozWisv$(sk1LbYmTv{C=qm1e&Q_SDq%sC3O}t7jQ{C^ zy)fKLtqv4bg28XDTSZYP7`@>|u$#}=UK`7!Ot8&zyHZwK$7&Mvzgcf9ZHK%JO3gxH qB+ulfBKI^kT%FlgfhRNh2eVNNSXYak%+L!aszkmJ(;2s(pdKj)bZaL#r%bB@- zn^!F}XYZ@eb?G)txgaVv;cDn(IJe99c&5Vba%QEtD@@5S@Wiq$InB^Jp5A2Wn{`S; zM=#ZY{T@VTd-HT98hbU7l%J zm6C83`4IybaFHQa7IL=2>%?quJe_Y^c#Byb@8UfTmr13zEdy8ZK7&T~%e+dWrCQAW zfMkCa*EL*gNsPZ|;0A7zgFRkph?Q-ITjP=Ne)34AX4ueW3S%mD;|xPllVCr+8N&pz z8MW%8wj)RRXjmsYQn+p44kjr>4;DYcMU2_;vSQZA5%vXV;UY( z#+qb2y!0 z$uMhRPLb@fN-@lnO+>{7e4$~H;e0C)GBxle^5oQX1(%{=*;2UM+!O_AGE8?-x5!=S#Y^dOHKZQ2M^cWOneIwS5&GW15BQNG5qJurU+Acl z0DBBS(G**p%TLibom3g@=6vej)6JQhBD27ll@jqB*r|+&lLfzi=%{9XS8LYOFM5Q;ySfuWq6N$2-q(Gd$Y{pv55}@Ma~0 zzV0+!Q_NfHvPzLuL^ZqyC)Eh*yGkwGOZO)br!Tta=&8|PhTe?c{S$|Xy{3;I==4=?*M#7EZLp<`reH4akVm-p+SF{<$T8tR?hsIOL23T(g z^o>98nxM;u%DHt=z*~xn=G`0|1|=hqZk-GCfX`s z;uz)@@jik$#Pc__5*6>aNZ14_sM3BMHk`oA40%x!obKiKhztqT@H1JE4O~wKhC2QA GK>i2g`(4lg literal 0 HcmV?d00001 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 zcma)4OHaZ;5S~S)3O-N}(W_D6pp9owh?*E55FuPVG{dr~3+z$t9fdOd-hkr8=(HPDk&qJ++3M^N+9igqhR9yz8a^-#muhpL}t7fZq zM}ICDWUgPi7<`Lo8Jv#ZO&cYd2J$}I!fZtY@gRK{1O8&b#v+hgHAF{t+vtR1)*}T% z-2!hd_oTdtY^6=Y6BM!Exwx@z49hgVP;+r39ZID{qx@cyvp6Q&2nI`ZR%px8v^55- qQneOWkb(@XQ*RTtW_mf;hIq?%AfJ2-usidn2z%2#s!GJ1g8eV7<;{=) literal 0 HcmV?d00001 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 zcmaJ-NeTin5UjYxeE~1x#fw*iPjCf67;x|baR@_XOe97@pXR{__$aYQn1dkF&~$fI z(bfHY-5&tP=y2p1`qst59%3=S8hOys#9Y&IYqT{S1%~!sUZhB*iAAv6tH^Vd7>0jj z!BIKsNq^!fGxUB_X%R=2VUWSIU^AVFqjg^H5+zpi^}=}ViB)IlezP(sO+r5Yv=yOp qS|<9Isu`-GJ-bLPb=owti$*D#>@(z1q~NHah6eouG;2}Lq5TH&Qcv0d literal 0 HcmV?d00001 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 zcmah~SzFsi6g|TxTUDIIY*||@BlRhT@0g^T})c#Vsie- ze=pCx&S_vkcu6iEW0Sj8zaS zx)IgTi#~>nS;G{owQ^qATRdM94Dqa`^U^lA4f*dc_BeY+m0>LVP9iDtX>!}P4jCRz z1m`nr8*^!&RVooIcZesY;4;JYa~vt?XBe&@@Q~-y^SSl(MtViTAZ<2;*mP{eEY8)8 zQbE`<@?i~EaFroa6i%kZs}xrML?YX;a2Hc5uH&YH8zfQ7mWKE70fR#JtGrB#4K$g1 z4#|ELV+uZO%8IwA;TCQazyUAS#M&;yor#cpFLR_(!)*XLfN`0(35LP2iNBxNj$o1! zIAT;sOv@SJBlQ|lF@U=o?qQ0u!z&eG78vezf@t&VD@XAR;J!u`Nufs^%X6tBj&TJa zGu&vfb@j{es#H1Jpt>YU~_!aLLfUaosdK>Vu%Y zx>V>GXXrH~d4^j-io9a$7#tlxv<-)PZ{dH%SgSb=H3HD)P~2-OC9j`8%RSC;J2=|n zzX^{BxHFPL-Lz`9E*1@WL-iAU=<1u2qo-$-TDP07Odv{Mbhpt{p}!=(8NGWaPY`)U zA6-!CDYt=Hyhl&XJ3#LX^cR&=hgPI9Cm?xleDV!0y?l0t_|6#yb|#N8bc}1K7&*b6 zc;Xlz9V2;y>DTVz9x{69yNS7+vb3^FF4sfu#_qK;_*w`40FwgjC%v) z8Kiu!cm43SzwqP~bMb{^eASAv?_zYhZdZts7v(JZk!yXE6vtXaBh_6!Ao7Q<-H>+* zPq9s>rH0S&9brVVgYSK;X?jb=BBap|9isRx6h*{GipqiO+mE@{KzBUXO8)l{d5*kq z@R-7u4r6D~cPQ>th!Z@2O)FvX{s_5^p@cH+M`6P9QRWCmN^m~PpCK7ysNh$!ARE}O L3=CEJ>w@zijRjYC literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynUnionOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynUnionOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..04ac9ea406cd42c33e01a934050fb381f0c73b7e GIT binary patch literal 724 zcma)4O;5r=5S>M&0)7C3;0Ioe2^_TX>9?3XWD=mfur9GV4bO)K-%HjvPHmr;R#8#@(C16<-4WgbJPTjn#0l` zl5&$k;_8+0-X!z}fs>^U50rJO!_CI9$L~epQO()}GIJrVu8=l?!c5X??eU^wHmbMC zV91!qy%zTk$o$9aMh>Ve>?U>loIrA{otS+8;TVw1qUE&Tb?po3pk20214}B4GA#z& z8W$k2QYt?a$b}8l%Ch+j?YnxG#m?j>?4mkRSAC!HYvH1CesTJzVGtZO`rui`?TO<$ z7_bK6TEroNXcEyVe%BG%gsl;i!WUB}jm$PO^GFtQKad^BkJJU&ongYdd-Djg`{){h FgD>tfy)FO% literal 0 HcmV?d00001 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 zcmaKo%}N6?6ot>NcA{-ZN863Ku?x2iK0@tOC=>=PxKD>Lq-2s3Q(=5G7kz*}l$aD| zQIKvf_vbrs&OQA8>;b%B$j~7?T32yfS3GZws8u;NO>94e-bsc_LbefKf@@(aUaU8= z^b85%`HZaCN+-Os=9A%yFg}CMY+YN!&?7wjj|D#r1Hw~#o)zz}Q@*v%i?x<~kuT@Q zD<7yE!swK04QJtUjG-)FNvDKX-%(BIt?bT~@=e7dZG%rD98wZ4ke~~OYxI%gHaret Jdlza4_kYPhT$=y@ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValueBox.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValueBox.class new file mode 100644 index 0000000000000000000000000000000000000000..e86fe0ca649dbbfeb151ab6b93790782e72f637d GIT binary patch literal 340 zcmaKoO=OQXpZV1s_t(44^O=Ucr z>%WcNE6^akUdDnefd|4{c^wG302f^3xPY_qlw4x LL4@s7s1>wN{_0>K literal 0 HcmV?d00001 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 zcma))%}T>S6ot>!YP9~e{?$5+frDiB1o_I>e z8tM$KDW7x0=h8LI$yC^hh7E@PiWwsn1WK02Y%-iLK0w|@BSY5}i8WEFaIATbWAWH> zGHG#{F`VkXhow`l85*~#Ey6$YU51OL%}?BZ=dLjBCAoOc@68#S6?2Am$#G;p4+jSE zl2bQcfqAB{pzMt`9R3IGH4DX~7Y97C-w3T@$j~WV3bNjqUg1T}B3s;fz97(rxnAax vQiu#|s9_x%eU3Usy@dv8+xd>x9a8qttSBw)my`qQIYPUvP~D*kH5~r{vW~L* literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValueCommon.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValueCommon.class new file mode 100644 index 0000000000000000000000000000000000000000..7bd8a4e4ea4898643f3f2ffe52f0ead8076a0452 GIT binary patch literal 383 zcmah_T}whi5Iv*SmRea_&|AF~L5n}Z)F22hB>2#ate54ovUgYR-7DBn>!Baej|yic z2_cAqnPKLf`8Z$SAD;kvxD==nZhVnRpJ#Hoaw<1z->qUgQMS?ppXc5Q>=D{?wN%n7 zm&s%{*J%(qAl&~;P8PaQ!FX2+91^bnCh$^$2H|?!9we`ieYx;OP&2FL^YCTlf(eXj z5xTpm?L8;l*<5M79P7d;Yu+Q9AWS)Rm9>QW?cE!pS?Vwi{&K_&A|4_EnMU sClmRdT|pk=7XF^cVV_Ol2u&QbsC8EA6m3Ms&TzhoofsM0WnaU^8V7@At^fc4 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/DynValueCommonOperations.class b/libjava/classpath/lib/org/omg/DynamicAny/DynValueCommonOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..55e9c058b9760781a8c4014d0f00374df1b1316e GIT binary patch literal 266 zcmZ{fI|{-;5QhKtwHhCI0V^9tFn9z}Y%K%}o3Mr@tn5RQO(0jZ@Bki4oE5=Fi+TOS z{Cx9x-tGWa7;!Wh7B0_XXR>%(TVYhXwsmNaLYH#mjB$22Diy`<^p!RV235nxQ$HpBVau^oe(0?Z`0rXjLF!hz_pIQ@K-`hRHv& fWq=|KGNx$Le@#N==prEZ5WQv~ZX$!%YwA5-P6%7Fd4Hp4Z@fJ@ehcGmmiIWMGH=q3n z{sSMY55OniXMOfZ`MJ-`WHPx(U*>Yo*=w)8_T~KZ@1K7Gc!auw9)@wtE+wr>DY|RbxluR}y2CK=%rFgSo}qUtkz?q~SVf_t z7f}uU7+|=ZHB7NyuM~v6!wY4>5YJjVFXy;z$bWya&)GL>3=`Qm5=oIyliRj+#PDP) zIG@?rT1fk>Qi))>OFStBR~c?z;7GwB!)W7xhrEzp%x|W*(rXHaX|pNBwqqM+X`ybE zi^7(Xk7~Gv>kN^Sa580Hqp$|264|DOyO>gO6So!IB8l3zG`x*>7!g4rTf__89I>h1`3YBaNDF1IQsv%Dhc642Mnp{X{N;X-eRj zQ5!QYXN-?EYDC2l?rV5}8Ojc?R)tw)c+d@^!>g|x#WRG58dW5P9&s$srHVKv6}-=I ztI5{YFT-oj(o0=b9m6uI`mDkM!$^?#mU1A8>ZZOg^cSL-_i9H4!$%roxJ)(c99K!@ z8>Dh;&Ua{C)^jR~kMW5Ds`Am2Sx@@lc414@DEqo2iW)venjyMPwNMt0q%_!uMg>Yi zGGsI?${>4;Vg$<+Y*WM)e6C=X;c6=nvefVevV^JIf;%E_n2xabxGwUJ&M@Ca=nkDj zP2uqmqN9`3fVPI>UQ;P~{R~*{afZ9W(Ki1r zctpURkqqj#RkwAqY{(mGkl;gC-;5kRedE-+y>w*)QTn30jh+hqCF#xR-9LSb$nW&g z1C^d~8<@vi^whiq^u9!YQ8{&JMH+JglIJF;|HhS9&(9IxJ;%`Q^a(~zaN`VPr??kS zoZ!6^Bu_E>+CAJyMvr|rF_%-8R@TYoX2{(np5O!5-G_m@Cf74OeMOsLu7!|se_%X^ zl+X3PAHMbno}FPKzI1}m+A$7Xj2_qR8d371oF_kWZD5+>*l22`x~qpo{>Zf(@lN3@ zTjgK`;Z>d;>H2Stn6hDWei1>T Kp++^mQ|{kEt*V6{Gz)aS17G)NNI z>e3ePF2@&ToDlnWX*w;O!$VwoHmn2kBbh0 zVyXN%mZ{cWt}A-8`hYiA1k$(fChL#Vt`j&P*G)Etx$4yHQH$x#pwFJT=TP5#(_nKE z%Dos;n|H#@(;0Dqj6e=EMw4pzk_!v-e5fC^jm0y3GiiLefH9Ura zxkQCbOaUM6A6l5NPD57So8x<0TEw>8LgSc($~%`A`6^nv;SQw9?zoLpDPSw%b@a#= zYD&041ePEH%b?*}rf|-Q1mg=|t@i1o0=7i^v|=B=s8lL5>d=037TCd9NSGM3{;RehXr~|g z1Nx&ny_;ZA2-7b~cC+W)bI-kZ|NQ;+8^AJh3IYr>rd8I=YFXR5FnCojt{WFxS{Iel z9$NDM5T=xG;QWR7-PK8C$V=)h~ncLr3*GPFP z+fsR8Te?wB#q$x2U{pbrVdOG`2T(DFafShx^yt*VFpS6ih!_}W81)HD$=k=AL`6Gs z42t+-TUiII|TtGI)^41-OyCvGg}gOCa?YGm;g{k@*%A??f3q{5iRyn;D~ z$+A(`ToZCuVPD9+i?%4Kcz^|l@Bukj5w>Y`rb||*B4CKCNJx1Bz0`+?gz=gtf+Us{ zXdQkNRHeRqOwClZ1h+*qr6aq@FdfTu6)qW{s(6Oy)KpCKaZ>9bHGN#uWicXaz_N&v>or0#R=iJh5>YCNAnsar#CA!mAIbLb( zD0s&(d%f>G)mJH0WaPl9PTZDm^HTSGTb+DKr0_Fdsgv-?fmyeTBCX5oWz6eA_u@** z+aPqGx;02Q9-z<{-AwdUXrN`etN3z0eTP6DvUu4(T)Va zrqcm>_a+t_7;d2>&h9paNjnS^?kP-Ql1@wZ8@NdvVN7AV$<-3lz^$)z=&F$1H6bod z822Evl0w!gloUMr9W%R$pNK^l6Tt=^HSnZG<*NFK5I%WyAUf3EL+1K4Q zGYU6lUoj-ymOAxO6qq@b$1+T$>4jUJL)FcEObOJ_o10rZ@7BU2n`W|;sBpa%y*HW8 zMn0|y%;mk>hHaH6p2K%#R{aZrfqnRUfoFWbN|UXYN9LUoHv{CHVCBFpV-Z*ZJ}uDny(> z%vZo{p5tjzV?4*`CB2|8HNNB4xBT}V+A>>#k0@dTcZnPgi!e`mM-^a!))DNpvOr&T x1dXRBxZhYk!NUuxfF!^U?Jkw=QB9mv*2irVN)n*X&yA^KkxD({$BaBI{RMOun+N~^ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairHelper.class b/libjava/classpath/lib/org/omg/DynamicAny/NameDynAnyPairHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..b83246e4c2d5aedaa51386cda337a24afd457494 GIT binary patch literal 3058 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/NameValuePair.class b/libjava/classpath/lib/org/omg/DynamicAny/NameValuePair.class new file mode 100644 index 0000000000000000000000000000000000000000..92a43f4296fbd39a7a565b80485316283ce24d64 GIT binary patch literal 693 zcmZ{h&rVZ86vn@~ZMjmbg%(usUj-JW8gGb8jS04zR2wiBuCkn#NgZ-KV{WHteJdBl z#Dx#wjtvjt!bdQEb3v*xE@sZ3ne&_P%=z~7%U1v!SPKyd)NDG4>~IjZCPof*f748& zEjd)NOvdV^)M<#kz}$g6lu;thAlmL7sJ;s^Be0NVwT-$e)iTi^WiL@7F8o1lZohi6 z8NIWq^Jh`J)p=^1b`v5;Sy8Ogk+x>H-4YPb1uiwM898ZOCZO@h-4+R3fFHq@BWp-Vv&44E}kF?S5u|TfA9t-4~c3%~d!<7;$s0x%j+NiDZ zu&2@;uhC;{Una3+PmIr!dG}V21Xj*p|KES{$$I@?A?I~d)$8#r1a6ivhk5VaF5xoD z>{R*zP`S+hK%m&Q8 zwf{sv>!;AKd|iI-AJwnt&BRO+i1n9Q-n;MId(S=ZzW2|+zyAr~2!2*jBXA&N&4x3n z*>LYtT2GmYp7c_9L{Ax$dNOaE(@kr@NM;R7L9IZ;RefF$C-wAfcy#)zk+22oPnv1d zenr67-Z3dq8_moZ0r;S5s6)NLrkI&FM)Ij?!E#e_^oJo-=a- z?XjneCPGj4QkH0~?H$E6(b2KfJ>dzC%P1l$8nIbHP+;q9Iv;jtN3H2GBWGJ?!Zv0! zY(bNNI&P+ClZKs13v8}HBVQ zS1N^FB2rveqV_U6$gzSmjKtf1W%C1>&{J;XIpBf2a?fTgTTX>ND~3!asf4wiK&C9)&YVs{_WXbHtc9^?Te|F$ z$0}V*Fi-JSbCsFCpEKZ*T`*!nCXudq>kcTJD&X7KVl^V5?H)!4TE+Id5L^H1{JVH@9-8ylX@-})pK^=V#3JUrtILp zgs~{Fs|0$j6$|N`)+zp-#X7o@DB~jH2W!_}rLmWBB%3?ML9r2Zpt9PU;%0X@8CTJ?^2qN?JGoH;#q7K zR`ziT|B;4|@ri)nS?27KrZw`D!j@Q{O1X`(cBV|3$72Q2>rz7V1uQ^Bq-v4ZY#P8{LHaH!T9eW5V=8(s{)6k0~)KCxW?-Hzuz)Uy4k7^3eO z{SKpv-z_+cZS2(t@fyP)U*|H;|Be2K zxOhLdic3?$_zLvlE~YqhzAHHQ2xiw`Tmw?Q0VyI&%3Db~kmN|3UbDQiT*nSr*n?a# zJz^Ik&`3juR_wSW<~r?Udc1NJV%h891HNF+W7Vzd4F^u+zNR(L2?It20w120iQFJI}WBxQY&X}bKZ}jJU581(&kRV&v3y{ uV`u0gZZ6{s`M$M`Z$0jxaag=dfS(9|uLQagKjJQ-!TY%jEodV}bMHU>r#wLb literal 0 HcmV?d00001 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 zcma)8TXz#x7~LmHNfV}A0+d1nEmw1?jer**6m8Q&LqmgY4Io0Cq+>cYnF*5#O}*fY zYw2?NCw%f1U0PVOM4$aTzN`CWhNMj!NggsYXTGz){q65^=C6N#dja4azVgE(5H+n* z!mN}M)9Z#>(TkJDdSYI!XgRf9*KVo0wWvLu)yh@P^1~;vZ&iJyCd#T&N@NSGTG1BR zbwxLH`>KF963q$tQs%N2gckt?eb^%$pH4_fFB`&!zH7haNcIE!h%+_Exl-K z%L)$SkU(HjH%evAHVuIT9cYA125}fi{1_5A`znTxUJCYLZxF*c=0{jy|I1x2g@q{v z$1y@Rik7C@TE3<|tZPP5%iBeP3z2jOhgL*gLk&XUgo2YeCE(GQ1rAb{cD@!FuTe_& z;|$Z-nPSQFH3bnwnJ|}-TGrKClT9wN9cPD?tr5POFiXa?3Ic*vG}J9z7MO0-G>bNu zA{|C7*5tj`TDJ;LMst3=Au!r5fX?t|&GNEl1(CpcS+y6K^iF)J{Fj(zZU`Ld%-X2dsB#2p%RyX6Mkem2z@Z&#HJXzaSp~Q7K095`tCU)o+Kp|t zURtrtHJOFv=DumKdatJt2oPyW!3SV=`YO6%S}fqSA9n=8?Pg1r)mkm3*6f)^QLEaz zoGRX;)(|+psd2VjF|FQ$%HBQJDr;w6Y>|Ua{D7k}J)ODC(LFAO>sI_6-wm1GQ^}1oo{?TQ`0;gNXj?_Exr@7F%WzEuUmd#vO7TLPpma&JPlBH?E z_Je2Nsh2`@@Ysy0ppHiZ!6p$`Nna!_VGg6Azy#;Tjo#?B;_fPv96`IxW=H~OTK50L zk3xBLmRoSqtXoCxnl2Cg;m*!=PRMcDFTN8zw!Hiz0sOqtcV`B9AiWd;B}0<9%ft*1F`2w+>JlQxedJ8rWtIy zpCh$Q3sOQ|Mv{>7?g}QFkXPx{A^n(Cq!OoN8+h+eB!0p4lgx8mzZ*(F#oWy?5}&_4 z7Fzffi(`Lq4=BiP+;#&wN@;*QT=|e*Kf)mHBa8?99>_Ntj5^pZ0|i64OG`n!J-A1E z55wcPgUdx;<hCCJyc0iSAReaX`r_9f5stt3 z;oraGZLmS+8dyU=8dPJQayM`cpKangf-)+!>1S#4w4kFP4!}UJ$<;*Fb-n7k4#(mz zHt?|NI2I3|e}=V|<922ozu!=;Z|Unhgm@js_nZ8N$>MYR1@&|M_S5edO}_$Pa@~W+ F{{j2(-c0}i literal 0 HcmV?d00001 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 zcmbtU+j0{}5Iv)d*On9mGLE?fvQD^2#&}JPLlQeAvTTD=!ge8}Di;r1qt!$Vtag;$ zk%{=8d;o+{P*8#Q{7&9e>D{&Di%9t)dYDU3_vt>Td-c~pZ{GvBfpr53hRe!tS*qQ# zR(l?AOQ+=ZESt`>uX9H$zgN@UhJh5rblXoPNxAxh0iV6TalGd=^46oD8CCUHE}i-h;|21N({Lld|#x%{^V`Zdas# z`|$VV)F0(%3}d$H1Z9^80mG?kgz0jxWkseXhVhNfZM(F!RjrguE7diI`~jz$_NCV% zuhC`4m7dhM8Ipx!ogr0LO<~|uhMD8oY<7gtH5D6-f#FOJ<2W&ja}3*uNSiV+x%-s& z0@GCvcTE+k7R;Fy9lm*DSNJA(91#SfX)4e3MO$fM2C^y4UCGUW`Y;#f_$-H$IK^=kPfuh@O5VNwBNckB}Q~J_(evWs?FX z3&n@S`Wd)Njoa5gmNkPSt{IqNxbl%KhqSpXToN&dSzKpG$RtAs$K^+oj^bMp^nZ9Va9znYCXX(TN&n;46mZgCu$uiKw z)7!m{h)3imsnSP?OSo6MU%OkXX0U*-L%nZ>x(%}_){}S2$c~ZQcR4I!nIYYlp7Lqp zDukNW-B09LA6#OP2nN63F3f_}$QXG@NbP({##Xf;>*s z?H29fFPooyiK+bAmpK1|t_fVAHIEdncPOMw(3)VEa4~uXh0(z8fh^D-!lY+j!`u(g z5DZWykc}uT7dzn#d`WhOOSnvHSj8gwgaFyppSZGNrOheSw{W#Szcc7DhC*I2waoB!q&zMcIr03DB9IH}YiRh$UijKlW82>{>Y kHo;~|u^;dwC1NOH<^Lp91lFO1zx-#y@{xqAQORrn0^VMJJ^%m! literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynAnyStub.class new file mode 100644 index 0000000000000000000000000000000000000000..5e1fafded160ba27a2f292d02bf1a0c38059fe72 GIT binary patch literal 6420 zcmbW5O>h)N6vtn0HraeE1OfySL>3U;0Lca+f(F54lSpt$0vm$i!*w#-*$m9iY-VN? z7R66g{K5~Uym_F?gQW)*tFW|`D!ozV(JGHtd9=!-RbDJ#chAf&*%>xY4%;)+-M{zV z|Gn;>$(?_{`w;+k!}SP+2;8q5xrCn2C5B3xlvm^dt(3^%HMVK1I1_;|fi2FMY`LKW2!DoYE0)6nLV+|Ia-QIT9yyd z=mIrjk}Olxq}iCR#SEI)EgCbGER8KFQp`l{%^qgvz9_7M)dX5oibltZ`59_V3gy~T z%*2$0YNC?%!-fMqtY)Z#Em7DEYcMoxPC>C^DUZM^QjMyFGfEamu8Vh_t`;o<4`H^- zf(tF1p$m3KU6D1VTy{Ya!lMZGd@NDqu-;Vy^=eB{zxBS%Uf_ zup9lmyYuM4@$}(=R5SF#9v1Rm7C|+hXIY~cES~aH1R_~#T83UiyRu%uW>baTsv1Ul z8VtIqXy|?eR-cm7aP`DpN2@0=gU!PiWLn@g6M;hnx*gZ6hEGWHc_~K|EYzclnU^ei z4%N!^64-bTBUl)+o-gPc)vS!H7c~*yC@v1UXc*$D-A|yN&KD)MmfxsNGpa4%TF>%TOkj;0Ng0KS$Wcq!!pid;(ZWW|=(hjBH60+$J_)R@Eh;&WO!WbuC9A$~xJlxW)Mx8K0rc z78NrFaYtgq3_43uR2i#uLzS;$Kg2@elg&BYC%K1d+e552+SvP3FQ>Fy|z=w_M%XSi?HaJZB{hgYi*@h+BdGK;rJ<5umqFeV)qG1IG*Gk zsPhWD!;v~1AL3o8x5INKkJ@8x)x+@-J`|;Q@FK!+e3W-!#kSg0SclVjgmpSBJ0Icr zAfJLsS!GYD$V*GtY*Kn2cSOtzRzicNiv`r2 z){BNrM-+Z!SDYF>%noe9gQ^ZfP!ADoJD~}h@ktB5XM`XM9qgdQ>qd5xVcUmSZLkJM zti`*1*s{NtwskjQeOt#(*!UIRhF}x^wm}$whoL?+50Ov-v5&(2yccj99&a{e54H?b zzvC9f%F~+>18@W(DLySK2EkU?hR+E+0Ne4GdC`Ys7@#Hm13Wlg_btTJU*fIsqJej% zD-bO%q6ZQ#qD~;bhu-P0VdE`$`1TUSSx-bCJhFU5&J(fERbnTaWPy;f3c~&QiiyN^ ze?JN;6xf9=n;6=$H1LZRGehpo$7-9rTrsh1vL6nhu8*TBCiy{Iex|jD*H<~BU3A*E zS%6Q#0QYwglGut2)|CI_3V+HO96|}I{izAN;Rzdt5!;_bd_`bI`Io~N6~Q_F-~>0g zC*iQ|Sp&8QVU!2D4Dc;q@Kap16dd&c_o2sp4fuQflV{LlSinNTN-WSxiw8}h%#L{Cq@aaz%o8^gv{24?;^d&I@ID^1 zK!a&#czQP*aDyV3JaM_8g>uCcHy7~KAlEofoV9l!N8;2_;GBnwwT~n6i7)s(KaNz$ z2LpfR3)VPThk_5d4qrC>PiFFsFL<7V4fh?U@(@^t6t{iB;(f*h%g1B(dUOwu@A!g? z+~WmU3wUp*aPXCYIt=j>~(_Es5^ fePN;!KE#ih<$n5w@*F0<|DCgqz%}$F1RwneNsQN( literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynArrayStub.class new file mode 100644 index 0000000000000000000000000000000000000000..4d3a705dd7431680439961e44de6b3e0dd5d4e5c GIT binary patch literal 6920 zcmbW4TW}Lq7{|Y}O_Me)w*sY5kef(aE&;hH7r``br6tfxO0h+Z+s!szNOr?!LtF5U zf~cr?Lk0E48GUdZ#RnK2bbNCh-<{qgyu2}~N)I~am2?XLsS`EPx0vl!taUidnvV{>88i7D-Gt7qt1QsMTT|HXN zjj84k54R;@C~|gK#uPAo`(N}eU@=tp^A~q z8#?MXr5Ht>N7jd1gHkk2{?;BRP_LdX%GtSGVpdn0aOxE(T!w4>`rI$=C($UN0v zn~^p2jJ=NOEq_FN+)9~+p;#)n=)%pFGE8+`#R@6d@V2U0`R0!8X2yjH-1J$5NjpO9 zI&Mz3L#i4D)nU&ra_7tmyXVg=v!ab+bwb5+-=dSj@jc0_!-_EJxD9JM9vgP0=i3jZ zq6Q+Pv_k|t*<_D#NFWkt16b#I_JC9BK%|=uVZ9w*spQS}T)XOlNH3d;rFZZ=!$72u z4WRrM*d}zq8SJNn4$JOGAkxK5uqg{|6IWlBSBlSW3pHu2P*mQi3*3xK5d0KZ7Yc+ zP*Bw~xHDl_PzgcH;0rUHG>WF8_G=L5y_|x(niUFYISY9c1;# zq`V_C8LpL;*GUQu-~b%NmNiOa!YVKr7n-KQ|r2Iv zS5NR115d+w4{#lRY6>o>94i9w@T@% bCyXoMCjN-2^{1b7oxv)4D$mU=J{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class b/libjava/classpath/lib/org/omg/DynamicAny/_DynEnumStub.class new file mode 100644 index 0000000000000000000000000000000000000000..c005cef95e1c755ead563ea4f8b77d3a120bccff GIT binary patch literal 6718 zcmbW4U2xP?6vxj^x4Z3j`DlS!iU<{yZTVObL7^yax2Y;XFJJ~W%;-rxD3 zbN;zE`SIVczXgC@@KFRL0vil7pD>E~MDMIF7d0iR&nB|?yHBqaGgf6H0wDq&&Y;xr zk)C9tWSEvbQBV`Z6Q@+g8Z4Fy5eO4#cZPXbHYx%Q1XiDt&&mnSNMuw~lMC883L&tv z%udHtv#c5V(ZOBDHS1vlb@9$I0-=G|#mbYO|9S@O$K*aY`PU^9V@0=`}J0kwch#o%7pLO{}T*nxQG+z43e zylQ3Ta<T7w!w}FY$tG+bKlcznil$p+9n1G*hygd;o;G2 za%3bum`e7f`v|nm4IhP0xQ`ZXH!Z>3`?P~GTVSPN=y}%GK~!D#swNQan^DvfYheWT z5!fz}$Q6#r%4s>TCIM0x7gtNn@I<4v0rZ9S2%j;O>xEpKkgwC-D zpst0}qyi6V<)UmUQv}w{gG9qCMzLh*s%~W!qoQLn%}T{I`MG_EK)rgVA{Q3Yhc#%J zG>u|b)-n6mYA(EPXq9eS+*Pii>UFFhYdM{W&xLSA6CE*O7zI_vQZ>*sWlA<#`BP{I zdLd_2*cyWi0WK?SMs8N;f*R?7$$}yCj`iCNZZYOK`qOnBE=g>Lp;#)P(PKY3raGx& zg%os0+Z?TYjl}M<$>k|rJDI|at&l%+w#BK%6tt2(+BPA3JlSt9hGkZUIpMF~D<@SkN)KGk!*&jREWZ&bEP&~zMV4auQH=I(3;=Sw^ z*4yE^C6C!-?W%|3{cI?f-of(>SJ>mK4G6`D=uih>Hz5@7VF2vJN_&c@8Eb1DXZM0m zX|1u8+a@Q1UEWYU!y;h2oJ5_{IU=h~TUQ&c}&z;~-+nv6# z&SRp&#`8plx2iF1TR6RPoe?Ul>SGz#^b=^pM~Fj!H=`59f6DhyayjLwr==8WPb{i z9z_H5C)TTT5xBpFxT7!@2uCC#?if4~47W^(JMP+LX~~i{A#NN_1XH(3h1<>lLb#VImlAScp>~7YsKp#HqNO25N;W#7*Lg5(rlk z;_^X_a$bm=3Tl)~LYx+~72@sj6r2uLyHAAb3PBgB&xE*QP@~)s;`D&K2D!~}qBkhM zYZy=xRB_>bj{M*YKEt*n6UxEBzxaYJ2Cl$aA8;M+(Ecxz2XqnN%P&7=4)U+{UR_!;;0cZrJs^9A!4;0y4qkK*}jEJc06QKtAgc-{v* ze<`FjzTg)a_(ixF47|}7{1OAd43~m|xB7xFGw>_!C(+WHC++nG^N*re;k96jlfK~B znc_DB+D+mgx1vRe+wDqFyB+gY%k>4etApR7_9bv^ct?I5`6eS2SV)h literal 0 HcmV?d00001 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 HcmV?d00001 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 HcmV?d00001 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 zcmXAhK?=e!5Jmq~+tiBS!i|?O^b7@|s|p48v4&uY3AAYs=fVScC~;DE^N07|=lgmC zD6tht2nRnH>7Pc{%|%xJu3H^Ofi+>@t652_oRQ6~*Igi_v$B&WP)*oX-i<-IaE-qe mCy7wBei}M`epsfM_~%Zsl(B{d!x1SmUV^0rc~r4k?&1g1Mj_n* literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh3zBqICWI+;n|U{{VgG{FKyWb_Nzk27#=^vPAuy#JqHU z|D>$c&i+A8j`{`pMJ0(zIjQ=dE;W#*&;IbgTwft&%fn2~`Q2w54}890G%X8`iK Jfg}?H4*+UkG&2AI literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0UUmj1Mh1!eqICWI+;n|U{{VgG{FKyWx5VU<{Gv*B1{OvJfvm)` zME#t^ymWp4q^#8B5_SeQMg}EZdi)DgixNvR^YewkfVUkU}RthLRJQL R22P-d7=V0kAj!nQ0|39+JkS6D literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecFactoryHelper.class b/libjava/classpath/lib/org/omg/IOP/CodecFactoryHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..6d6d88623cca55372e95a2537a9ef966e26a6d80 GIT binary patch literal 2591 zcmai0{ZboM6#rckvPrrEO5o-!+3TURyPw2n4-t-&n`L57h7^@$pwO$H_X=4?<@LHnpdz>`zc9oNiJ9?A{fV{gb9YR zs?mzOr&+6<=S@nDMiI(*8&?@31xi$n+or*A$%jUei7173O~$)W7zXqT!)0>Xm*_Cw zV~~6E6~#@wFX0x$#dbIziTsL;4=_dUG>fY?FX@KOtvyxaC0k=yp6ZA1mz*0oLr6E8 z+@kiFpYp|%G>#G-k-yav(>qbjVot(`eVoZqMjZ20Wf#2EZovt^5BGq;sNq!Os6VNK zgi~vkC{CVFhe6_pwncNm5chi#Al(%7g(3p^OvXJdG7Nbr9m?ZnQ-%e<>vn+WGY{iFb@AqEdXYwYPE_AdaPiLEyo42o@pf5-SPOLT&RD9EDv~1duT&=&UjU;?a zS$w?+nPk4OkxWPMJ${t%L(lGZ<4c+K2CWmyK*3h+R#Qd^kHl`sW^(B@TGXX2N?muy zooz*HXBTBrN7@K?dn@B@_Dx?#{BE5A9Mnae3^#qsXXb%n@TsNS)Cnu+<}KT@yNT<7 z`g_;$9WotVhFcvyH`I>v*TBg86SdYN@6m$UvNXP~i>qU-x5?eha87hx@H)+EfNoII z7uODbiy{n({;8|!ZH}JeFBFUZ0r@$78^92K4mno8)7x)kw}@fqMBvaB!i5-yWs1XnOh65)8(aRA827<++tV%JY_4g9ch~AW*oawSBri;EReRq{0JXA7@y#-hqXXY5kh$81fRY@!p~sG zL2{!Adq@#+$$9oS9BUvD`@(PfsE0hQO3%Qcuthz_XZ}X=S^6bXyRo%Xe3_Z0U>-c2 zedPcKDTpniFH$i|-+?-PniRrMlz)q4O$S|Zv5>>pq!U66c@zji)ToGULWp3e4qH6r2}rQmu#Hy?Lq>Tzby2L=c1or023-A4?M5m2LXrU+cji;E$5N6s7U- zcy9(~-pujza{%y!QG$pt@xdy;wQ7+U>e;W^%(ZEJ*ylSAx+%STPtYgaSNc<{jdoV$ zZxx${FfxI4!>^`Q5gs3wU9ZduUpkvkujs!QDPfp>8{VD$2L#pCc5@Wk)Y`IoakcYb t?qVwrEB_G;&&v%H#$CyO^jVuaCJ=hk86atLgII7Ps4x3gW+-=ryI+6$PbUBX literal 0 HcmV?d00001 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 zcma)(%T8M{5QhH=Nlppj(hvgWCYC@YEY$9(kZ1@}(BUFNvNs3!;1X=)IED1BSRt|C z0s01ghdu!d#5jQku<61xw)Oj)f5v|v@9qJtV=+R8AgoJ;y+}p<;80ZUsY-Ta;;ri) z%H&+8N;J*6u~(*M5__sm8X-%VdwEnnIQqUNnjPh8*NM9H+L{P?!qRKOrFCAOw3VoD z$2H@%??w1PDF2kdq|jD0l+&`Ue+La=f^mFoDc50Mv%XEBUBYP9nvR#ow`9AkauxOO z>)#&_YlQqaZM5Gc3@xv;2-(m@0YfMiF@|x%c&v@u?_QiJcRZ+2ifzILB$wfe&zD($ zraOf7_{IBwPGo~HwH)_bX-kuehIc%tjg?mL@F{qhW@}exJwoZdj8JIUu1nO84!xJ( zjC(C``LmdS404EgH;Z8uIFIl*W>Dlsp;3+#eDj4fan7yY;^R$UGRd*PGGGf?R8i(# waUjAJDtronX^sJ~$;zP3uYSJ8%v(atCieP-%0Tr@U_Bd~V+LWKUuUrJ1Y{SBwEzGB literal 0 HcmV?d00001 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 zcmbVOYgZdp6y29Vhoobhrca?D^d$i#ty-&1t%X1e5*mb*idE@kxQ1zynK+rW@I{wD zK-co0RF~2&yVQR6N4ea0CS=k9x@y17<39G;XPDB@fUzgc&MRE;IiXZGES|M znJX@4a?ZLm^M>g;?$)AVJ}@dWbK8DkJCE!c+jQ0~yD}@Qb?Iv87D(PV9vYddVOKK6 z@_lJ~0tc>Hw&h(Hh>fII1iBSq0x`sO^x%NN;eut$Tg_Tox+SArl>(`PV;a>J!?o0V zYp~nfuo?na3a>>j%fQ}No#1^V={7{JxHL7HDREqp%Eoa7M>V7bPFCz@CYUX{Y{_w!qN{8X>b9PBPFA(Ew-JbDO5OAXT0T2)wDI5B&mN*1Etk zk_wgMQsQTOF+g=9S|{)phBXWc9C;C+adn)*Su!$RX?Su?Zkn?0S&qHtnF4o5c1PGf zayODqC+qCK!m+lFTNco2etIm^z)OK>3d?Rtm+rVZ5{WozZ)MvF`@jI5xCeXOliY)9x2y_93m!3uO!$g?`e2veK+i*?+GLX+?{H>V5)Cr~ znH}4|B25i91^Rb31;w12oL(y~&MZxq=8Cs^F(+^;(q=<)v(D2?t|ySkymCr`tU8_2 zYEor~JZ|YIVvz@fI_h#pv%wt3J6DHEbT)c88oQZ8JWix#9VOhR5;e*a$Zn8@{#N7?1mX!^jNds+KYt@v->3589~Rl%EY=)tCcPfV#g;TaK23-D0e&6P7LOnSazDODf5>4QujsLCioMW zP-g8O=0`5ZzY0L(6F>F5YJAJ^E_m-5eS+R!_|Sy}uWA~|;vlbjuz>eB_!d_uHb>Ov z61uq_IQA=&^RYj1qA>atr&6cKwlVma;{jHRtAHG@)7+iMQOx+bCph1YB+lVD=i?kZ zj|)VO<86$zBFvJiijW+AhV<&#Q;a>qJKMMzGEMmNC33pmM&){ZfGgamo<77!KI&EG z6Y&0-QYbOfquaRl9O=T?Z@BRs(~k?!kY7#BKEbC8<4j`V&Uosx-?23QH#dSIl2~aa zHRua)54|urYVu!2qMr^PMuqe@d@7@U;^`KZUatKdt3*12Q}_aR`P5G_zrjH~~T z7QM56G$5AxI#e;JNW%wKio|h`p@V!@TKOcIPnkJPuTrMU!g#p*ke}~&RP%d={J}>V z^2d@SYZ0%9V|}kc2dK7U+~B*4+p9{vjaswq7HC+XTpP literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/CodecOperations.class b/libjava/classpath/lib/org/omg/IOP/CodecOperations.class new file mode 100644 index 0000000000000000000000000000000000000000..de771ce7a3f1ae4fe80b1e3129aadd6bbd5ceb89 GIT binary patch literal 501 zcmZ{hK~KU!6oh9hwpy#8Vmx>@!o`hePLx1GqA5{tJ(zXb)MD8-r4adR9{d6RDC67E zDp9!XW?p9Jo4oz}dj9}$gEI#f!$q1$Je@{-7>sx?9V;1RDi=kZ>Y0NYLt`Qqf+s>p zJb0ccSuog2OL8)tw{ENFz2M&O@~&QX+M&tYapZr!mB`OyMus)g;-J{K?qV{AQ6G=&0tO3CS&Arc>OB6LSn%W z=)Qjk^*VtCbkW7!Yg^x(bFTgS`SA(B2EGKy5SERNh3Unj-e`)dxlmD4Mn7e&#J;gT z>5g>DHR=S&5f)$JYU5;gN1Ua~)@~wo>9k1#6bRqm0++@*dEQl`z8BUKr`>IU5yJEj zc_oE5qNS{sU47>n!UW6lwykW+dS~@L0v!-OR85jPnYgy>_Eo<5^fh~U^5>pV_^uP} zwh7slN}G`L>5IssT*60;6UIZGsN;U`T-np1Lpd}N8%VZc$CtyL>*$nF3174S=O(rY zGb`a>gsx0t(Q;NN@m8hnz309697nqD+!D(FVuWJL^lhZ}wV!$F?Jci+S$-Q9Kn8gP zyjs90irmNe)iNmYM}9u86MVACow(;$A29iAfJ|{MG6qzULk-isDh(mbV3v1YV2-O7 l*k;nRh1InOe0s0Y;1JD$!t9WGQDB~fEwTpTGyk2z(qG7=gXRDL literal 0 HcmV?d00001 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 zcmb7GYgZFj6y28uhr}s{2tH6OiVp%vuUEOykWI{l#U*>Ti`<%VcK6mDyfB*Okzzu9E=n%MWJEf#uDJ2)O zOUbldH1s7+f2@^^n zTLPisL{1n%tDf{{vrb{zsJV`*yGBt(FZu)` zE2dQ{8?J2$oNPlQWJ1$60Zmy6!F-l3x@8XI1p$oIrKPO3Td8o#9yIRzsE7lLZdR;upK>^}2( zyIl0u9#hec6Hz2EF71{Sm}nJbb;GfrNRtJz+q{v;McEJUDtPCR^h{aBdw8D{KCL`u zGqj3t;;ZcptG46HsbsK}zpgPyz+B0@wEK{TikU?h2gS zU+focdTJ)0U7B5Ioy+m$S|2!Lo`}2kqg~TBNE}V ztcoQ(VD1&uvK;}jAUCh5SjA^N5#-sH*6KB~8fyg#Xtj2DFsk68!1oW|JME8IPX4!0^IMW|GJLxKy`UhPE?* z^2YcC{Yk$QG~4d9rV$pbYTfk>|3=o+VJIN-rGphd3RlH9@;p5*Q_0u7BQ%N`++)d1 z8C~FV8|R}?C{Vmb!G;fr@x(D*7WctRDQ4?#z_A&rsoT+?Om==07ODztfuWa>Y(-Y_ ztu(9ZrPH9v^VIf&3tVXi_RHF&*or}p(G|Py=*FBWzq4l#c8C8NAD5mCU*wl6#9skG z;S;~pyefQ4@-BGq9N9zHFMQ}glvg&<%@;h0 zM}Nbe7npgPd5*cY`1~F|T^x%q{*L=&q_O;P>~C%aL&T745W0jejy$3S>wNl>GkN}S zXgG%gEkT`!L8YvEW5rI(rt3XA+ zBDM!CRf*thhV<)@YjBE@Q-M5Y)+kkJaV*&F*Wf!U`aMJb;Gqn9I>fL6lX#sR>&GS$ zyP3{3b(2XwM!6B=4&Psz@Z zap42F_Zi&!1jaKhEKnCN=A4#!aQO1oxG7kThUccbFEK7Lntwhk3Ho^%)4mS3G{}rShHs2rSUyE7^|Fl z`}6R}_g5!`{7Y@LKPJrW?)3=S&_w}rC>ODWWx{f-jXE7)Un+M#t5A+@!UZIk;fi;c zS%0NRg#Gy5`+rX4h_JRBPg@yClZvi)Jg1|*UhwcFc-UZTAFd{Z^4~H-p=-x3QB56s zul#%JF9M$bj6ujChlqDuc!UDy1^&$pio7WF%dx~a2b_s>u6m2dpQn-)js=zhb!5@R zD({Lj5!SHIrvTXC7y!qt4BCA4`7Jj8B(&K?XG&O~sqP4@XJZv+5VrYs22Xzja*~c8 literal 0 HcmV?d00001 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 zcmbVO>vj`W7~Q97nI?=7!d1$pnfd46KmG!636C}O2wZmDa>}We zQ`!7ND&v%-xnP(Njj~K-?Z-yNDlKo+TlemChIh-qmp&0|Gr(N#GDk zh0bv)@zeb{DR88_!z%EmSeAarof%yoq=|a z-02Y2PCmV>e@wCC76r7buaen1`C1^>hGo~K%Obfk+!1lo-blBG-mnhS$%2Lvfm31j zW~w!BV`kfdIj2%;x<964ANI$P#JDQMl)%MyW0u!k=ZPx5kV8kUBnvV2%ZD01*pUKK z*YOc9bD}A4mG()a+AQu1ol0wt>#30H#J@P@R^Ql_?(>^fWM;n{Em+6COOJnOzN0IMxc+UOoP38xUDk7lxUa{ zNNtz>8`9KpLttQgQ!|-UlhdpDg_*_4prbOF3)4fCn0dYMWC7Pmeh6(YK<*94cC;jmilfFb?=_$ z@4>jL+1??3`6B$)05m@F`_HS!w-oP!_r8%W^#8(#9>jQ6)4&Aw@~Sr%@cs_pqU!wS zh}yh>UakiY{fhX_$e%cp8+ndni4&unIQ5L;3=+UhcdAW^9bj95yv?k=3A6w z=W&6kQM`xY0DX=$6?%N+1(GYH&oR1%_cw7dWEu14^W?M8LgjjVj4Rxyo<6~+KI#P0 z0qRq-QAQ+3HgWYOlDW~}aQ!8wpXFX)b|o>lg)ipE67#>~))-|h-X8m#8^I896aqmP zNE7&$7TiTY?s4Wj{=k_0ttesuB@97Q#(kgC2xT%@K&hYWzs3p?58xQS!5uyg(9pX? z>me$COahu`{ir}BaW8bTnUzOAuyQ8Kz(%m45a^0iSCLw#S7=vxek|PG%)|F|^#_Lh z(MK8dy@+EC7V-Kxb{r3gxQ}$E=$#_<5S1Xtb-t^({VL6ysCH)JCtC8ekE`;_b#PJV PT|Fr@RcapJdeHa}nXS&z literal 0 HcmV?d00001 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 zcmaKpO>Yx15Qg8`CRqrf`Jic_U+N_yDH0aqSX7B5MGD$}sA+R|w${dwtfO5A2>*&x zq#pVMI3Vu)7sNPeC7@Cdp0TZG-gn0S{`=}0z$@(d@CbF2M8b?C(LFg8ZF8x@QyG4g zkrL;#i8|8hSlV#tBSYA{McXH5t+(PLRmtI(P))2hv5y>K_g`RQ5-SHICAyv9Ft*yx zd^{kmeUP7|&_?uBqUA_`bqt}za(wKoBxSveZihhc36I+*POXe>Uyi0K`{U;?uigl= zgxnh)YkNRgX*BzUjO#s*6;ujXMUhYpbgYi2y^ z_j})ApHOWCivdP5jzrHUI*#_6edqklIoG(M&%+s^au*}yduE!1>Ya8Im;Zj@mrj&_ zh0Ea~3!irzc!)gbNBmzN3cSe8#<9dVuQ?Ov?A{#ZZwurJ$2?;|3mJ5<#=F82LKW+L rasoAuPT+t^$L984%<=Spg(Gg_c%iVqq;3?L=f*Z!gRsTb9=87gr{{rV literal 0 HcmV?d00001 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 zcmb7GYgZFj6y2AAL*i6p1hu}350C&7?Yl&+5Kt(=P@u6C+jKJAhS6juolF$k)gRD) z@Bgq}ExPJz>*xNcuI@V%GDARC{gRovkA2SGXPia!Yv>Xfb=*qEsZ}y_ zg~d$HS(oObVLmb{GPAN(mkU;-W_aettgP0htD##U`OtW5WU7W;$rQ>DrRfPAx?$Ot zcS|5PoGuD^ zBc&|Ec}!H`^l-YpF;`fcn)C^%RI+g#!*LBMfs+-xnF(eKZh1*IJl8TkxvrxR{Q~i2 z%dS+V=hy9}P9t>$xMWzHQ4L?2joL%KA?&EbxSllE4&J#?Vcvgx9R5rOkzrDke%Z);|U_pDQ0 z50oC$aRf&bNMl?XEhBI(D#yx(>pW5R3L|&;B3(?d58l!6_8#Gxu#R`}9w!1)C5k4E zT43LyPJVUA_0&`*Tty;O(6G1mT1ly)e7j*#t1JIg7ZyTpdaj`w?nY;Pg%}p{V1X6q zn>udcWAV7J)N{4y*PEB)G>veK+j{N+GG#*N4yuxuVF@DaL3pOCa2-9z?q$; zLAj5j8@q?b5~A-5la^E-UC* z#HY-=X4#G_Am-HOWgRQ{jHiG)&2mPwK}KUyppa6utHV(Z_XW;|{hq5DjYiIBcy04C z)P}%7{$O*{95GXFvI!!3?gdlJ$_7uFb8QRlqZp5ylEBd1bbf-z{J7G#U4mU_{KWO~ zYjh=DPRNB$hqWy*XV;rvVDs0ooC&FcxEFWVc0W`d->CERuu7!V@Q=&{rZLZQSt_=` z=i1Ea=JQlX_N`i%^7cy)|YHPON^~hdNz(!qzBXH>z6r;F0zEw8W z{bX7sd44*6Xf{hbY*5fP!6*h9CYGJ1Ysx#8x>HX^yCS%-$CVemFYs21@yZ7@zVSxp zug0$opMuYxk!R@rg)d!5@K;R(6FAIYJy^i!8~lo^^OhrO^CG&r9_afO$@$oyIFTQD zj#H_#quV(Dl;Z)`5kK%0*Ru0iM1^^RbKOYdGWz)y=hz^Ih#JQg47bo{nWjQdj=Vs6 zb@Vw#pW*5@u7z19{P_a&S!|JI$+^60?#792r1hOsEpP7vkB0aK=8!wU0kN$?+ zFERZz{{nYbQ?t+T$--D_;dk5{BaNl|V}Ela7$S*ci_k^%a^wLeSmWE5oGJ0og@H3D z;{r@lSohNzAw>pirPIr`pJSD1$8ZW?a4%0eiur&DT_nyw46PI|`4NFw>Z?%2pdyYB ztW=5PYlaN!P;7BZl2e&HrdKIdWnnDb9n|1ED*8P`{@|kw_&Ox90gHG&96ODNL_ETD wrl^}r>Jh4~7`OSY;`XW%Z==>(g&!%$Pd=`yE!V+CgHQFQ(3H(Qes!Vw9~2IsNB{r; literal 0 HcmV?d00001 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 zcmaJ>T~`xV6x}xjh6!WEh@thPR`DZAD}(i$SXzuCkw_3&Jov(zBzMKD$xPO8L&e|Z zL+b-ws}KHw{;00*J4wg~N%Jr>_ug~%-e;ea`_I3Be+6(CyB1;sSAwwS2926qC~dj< zpwSF`>FYvuUDlg2v=A4VeeWH5Zr$^1ZmIlURQ{^kYA~2E8>eX&B#S}CtM7TCGV9J}T)$HX0#}RwDv*;evp@qx@Q3>cAH`KZHie+%)E? zsPMeFOjj0-upwub?=CJ)<2!+wKD%sO!W9db1?IZ7bOh!%luz#OaaCYif7ox;1HUGa z8lv8f;&KUG!-9qD0_O&CD9ynQ++;gyQtvlI)lga;%6(lCSW1sZ8|#*#x$Pj040}}x zrKjb-S6ALa1h#74p*F+s7W`&Q(^u&=a)#^~o?FNZTpx6F zRJ?;1MpVL3bQMi1gC}rfXb48-(}>C6L#6p=%8b=lYU!T9s2>}6ZJ{WzFh*g2hJ#Jh zp_z!Lt8prbFa>Uo6WI@8R33Wu7F8y8f>v0OYsy?AslI<)`+{0D{>QI@z2~I{Sp4D* z#HYoT%eUZrGW!>%|Kvvu2|mp+u!0#ropu1_#@3N`9OD zf{Vxa;TX66;C>q`#VD{TajY@xB@xy!%kM6BoU1G@FviA@_^E@v!t5CLrm~lgai^y& z5$$df^G$@1YDeK7?lambe}IR?u<;0wJ6OFUkMZO)gZhhndm@A`bYN`!!s6RSF7R!B z6UkJsrnW!TDAlO6@hg5C!L~Zg<`1x~(GHWmjzTASpzK$}Wgk)Dr-8Cd*fQc+_M50| Kfo-m0*!d4q(|@A? literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh5x(qICWI+;n|U{{VegKWBdzPe1o~XP2OOAjdHvn4N)z zkwG9Uu`E$PCowNw-#;lUHMxY5fwe3#r!)FzTlcN&?$+exv=O{wR2Fl2rEMC}QhjX94YMpw0KU{>sH5bcRvDvnZRa9(t)5RJp0#0}C zf4Tdgc>@1BFL%r&=|_*1ozv2M5qInyxhsAMITXRg;3^hTCUSvW%)wiU`vpmr~Ryo}M E1H3|qE&u=k literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh2z)qICWI+;n|U{{Vg0isaOSlFa-(m(-HP%pBj;;^M^g zRCWdyMh1bb#Ii*FoW#6zegCAa)Z`LI2G+8~oYGWA21ZXt243g2l%6m?<~~D_;E2G=ggUB-uKM+A78!!*g(@kPM~6v&@%_2*XeF^>^LY0 zEbq%V(u-sqdfnl^3Q`A)0*&L+c6aCTBX4YyR1PEMbvFI2IMwN)gQCDnc2^s(rxGnA z{npkHImyDlN+#OG&pVp};;F#twuvXHjMKi1rfQ)cY`y#N@jWFJ$BB8RBQ+6Nd*L6y zY(?(MFjS-M+3|e=Cp{difgTCC{)z5hn&>#>@!|s=>-3>OzInSZP-vTxDj|<^Ww@vn zaX|n}5U7{2jH-h*fz^LLXA3WvaRwE3&eySeHa!@sWOwG#^-Un7zNBw@o+k_GYfTf? z-#oCFlOC0NW|{=*2|LCb;_um3@R#WuIV`~8TBp$xGpG3f zIh47h5$^drsAf6#5H-dtj5@4gZ%}J}#@Uv8{s^nB{8wB&!lh4H@fFT43Y=eZ9ugfe z9-+aEh4U)bah0pZUYle0h|M!s$*^}U_3mGg5s@+V8fqM8$j0p297zDKQ?-4jf*TxG K?M+5G-1-UnF`HNb literal 0 HcmV?d00001 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 zcmbVOTUQfT6#fngP7+526ug1r1q}%hFRda`TL`F;U?@}>(##W)w&c|Woi4||I)wEcAuF^CM3ZJ7mJz9IcIe>?}U7rzRq zV5m*0abIdO?hA(d>3`saoJh;606Rm~gfu1j5>hhm3y)67QH^26VI`?(M;UDH=3xeV zAQh8cu)!&!5-S+igp{OwDmytUt3%RgLT0E5rJ_<|SW*@KZ4TPCaV5jBK2+AZpMbTQ zG#PJlH|LiG!UJ8Mz9AatPW?_)W37N1LWw7{K4Uhljtyl9zfkkQeQIggZ{g z8S09>7z_O_Y{fPKjSSUGfry2O?btzz$7L;&R+ULbQ>NsI7G>DuE|0dXFb*^^2wcC2 z5_6#ryLoQh4BhUKl~9V1xcZB+bLtk22fIUDcz^S-3m&ux@G@-81;GnvNQ%ehSihPY zQxdXKLLydU4Uf4^gb#bD5~8XsX>ueZU&zYIs1e?Ncd*D;KEp4Fa36ysZ8*!g!0?KQ zS8;%$LWxnDsAx(8b)cP!mg<``>JZ__VUjz?NKdye_t|nHm7tw1;#^oS{$+U+fs{H* z$(hs(i#9;R3xOCa#}qk1A#Et~m)D4Pq>{|YDs9c(#f8$DoU!t2?rzGUfSxkDK9z{c zstesX&a34FS26F?vUTAkLIQeAN|=0!=))v#rgWF`KzK_Smnh8Y5?UmvJgun`?@uM3xUH3tTqHb>VG*ZshRV`3Uc$Jkr16xa z>?FP35^)v-l&UEyk(C9!&9FJQGmK!nI=ds`{+@x(pabCsPE$*jX^WnN z#6_pds4Y`{&BM0i0XUtsOcpT)YA}_PN;0J~upl>9L`>j3wIJS_15!3ajkBc?XlPtb zUF33;5>_c&qXH%w>aCeTLds+UQby~Uj>>6G;hobKm8TiD6xf%pq9oZyB`Vj3e2&T} z;CFzxerhQlbnLWot<1D^>}{hqVW+wwjDyS8OfZ?wYDVFdNv(j3bPVM(U?RIP1*Z$| z;R6BhGi=XI7gb{cvWO3PLs`kmn2p^@AeTin;Uj*kS#l8--by+ACnB!kDy2ddRKbp;rN|?RKP_~J`HqWB|SxB z0linzmy;i{G{TMV(vyRBK1Nk<498n^;4auf{RhYC!gYcU&y#SY7Y7j12{n>aJC4v_txl*N zNAVg_s>U9?j!r^yqKoVel0CGxg4V6_ETVhFJC9>?2wIW4^vTl{-5DLc&RC2v`pJmQ z@CF75%85Y?nUI%=0FQg8XAW=vh3+R9c@$d2xsjT8=J9S{OHK4CVl5Qd`018E$p)n9 zN+bxGYrBcm1!6QZMqbD1wxrN~Zh~%O=kwtaw#h)m1|*RplsZyAjSGb0DQ0a)enXY_31;g( z3;1mCY6Yw3U(X-@_m9`|V&v)y9Jq=qT*GEuM?u1^@s6 literal 0 HcmV?d00001 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 zcma))+iuf95QhJ4ofsRFo@fi@SZJy3KrF-sLO~U!QXwcJsEKk1k&~=~D<_VOUBp{~ z1R~;s2jHO)vtGw(4Mn}!^UOE@%+9ahKYjvu2uH;n!)g!?oM1R`YK=EE4qpa-pNA?G zhQ%ZI*mZn&G;kW-Bi@Tt6d5+B4*QM6=X=gL2qU-abEg@F+#QN7L*dxW@>XwkjskE$qk*}#2RR8eWIH-k9r z@dHmZTq*0^ifCHuZt5=@1sY6zH+8(&Q-{%fkxq}27rM2-!}vlMb12cQ(+ccD!80t- z&LA`4x`-uO1zD><5fahlh!FoL|P?TLf#tIQ|4aE z)a>#ES56_NuqL^*PT;f*r{N}UCAizz%;U=TSFB8MXQoi%-V*NJ8Mu4cNpL2t6jw>k afHHyonevkrE7C2%PgG0Es`VhTs{8?ntLiQQ literal 0 HcmV?d00001 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 zcma)8TU#4d6kUe|hKz%4p+JRDpg_$9Nh$S4dJzJ&DS;p$h_uB?avBCFGwEc)<;5pI zwLilrU#p)2pZ!Fi{X4#^`((yR2$zzFIWy<%v-a9+?|n}G`scSJ0Hd%aG%!R=D<3lp z`B*Z&5SuIOwpP@6!YmX`gB$jOWj@z*{)p>EZb|SnT;5W*)tIgt`B*x$#j`d;(_PKb z?E4J9P@V zU7S&zyxDt2LhK5Ky?u%F;^ahZndSwPcmP+>CZUy~GjEh*&T87qEb@|VX<3`+6kJ6+ zLtsfW@;bLogQ2YsjUeMPI`NK#YYhFh6qnU}p65Kt9IX_*jY~4R(IX+qaOM9EuJ^@B z1=rC_N@Ojr+I*wLUzE9#Qbk>l)%z7l;q&*45Z_nu z0Y0SMx=6=@89Gs@r$rMWT|ZVZj!|O1t?Fei;Vwh>@iLm6nA%7$OfOC>C)4xIpbqRm ztAqRaZjqXm=VZk3iOARlLwhJy?Pk)F%Aa)fJxm}FAhRh2)0iOw1b$C#1XZzoDB(p5hOMlMhjXW>cxmoXH?vwyVOO-(}$y z8JpOWpfL=bpUyPX-^J&_MQ>e+T1i~=nnbyfu zOO5oAm&~%2k^faag*r2#TM z#WLtHd5fNkV?bjIeFeldMKfY^oFIi=%g?wx8}S{YV;^0wXu<)JX$0=Wj|U!*p8)#M zPV)iuy|U+Yp;9Y|9DX@)Z?2sC}^zUQ` zJ=m+^+KUXbWYbLbOP2&WlF^17W-44cp1ZEMT-U)!^k^UXisMK$c>53q&v7*~j^A%d jt?$U!_h_ZD8!v1822sQd@(a?>@!RbAWw2(~=+=i)MLT~`xV6x}z33=>Dih`~zLDt;tU8MNO-Q9!AY)F7~U@P#!=uJP(HlQrDX(%;mF z)(5&)ANm9Oqq^L8@SnSJLlso$#ufve^Jp-?2eK57!;N-p0sT&rxYuDClq zH=&C*F5setjKFLoXu0j%N>tsF2Rc$UE$a?ua7n=4Rzbs;It&CZ4xtgUIE7jADLpSQ zQIQ2hYe1EyhYO2S_<}e+p=`|Is)a8FX1ZB)$gORtfN`(ky1H+-|PiFZMR23mU}{CxZlgRTvwTeG*1hwv7r7WW@fN9j3h!92HCX-82@kXu&-t z0`DDm>>~lEjnP#znWG!=z2N9{MGdNHpZ6YPijsgOf7Ov^IygIuLB3=NEIBCRvB24m zaW@ouoe&9CXQ|nWr-Wi8>dD)?!`RI*(x&a*QqXK^>MFhcq6xN&=N8rkZVoCs%HF{X zLn>`TbQw)5gC}rns0l{-Q;5l5BBl8w<;U`?v~-_fT#pU>Y@sYLKZfB+4+pPJh0erb zx*Stsj45z?9LbXqhUKB>x5zTR9k!yHT<3E{!F&H(`(auz>L+i2mFH6iSX}Yt;b?K^ zau%E?3x8qiPc9Njb2Qh$GR|;x+6J7@a%bZl&hx}Lzao&aoB4$4jY1}yxm@^!E64ci z7LkFv$;4yyuokk}UeA^>J1v)S`o-pxtg7cisH<8Kq^J!~S zk6jH*8&C0UM6{LRXu&|VbxL8JU!v4;9!UGuaN0*?_}f6*70O_~6yC&X3v6+h!1ia! Cw0hM5 literal 0 HcmV?d00001 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 zcmX^0Z`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 HcmV?d00001 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 zcmZXR%Wl&^6o&tCoQ4|Hv}w7u1;S;~MhFX7f{;iGl2JquX)VzL)x;Tvsay|oCKd2j zEGi@8zJ3RA7q@Eg1XfKkip=3CihD1jzABD% zsyZgO>VvJp7g#)yM>5J}K8kvS1C=s6C(xXAb$Tz`kE8dduyT;8DBkKm$*r~@Yd9mY zQub=&xLRiVldB2V-^E)q*+PPi*FUSV{fR?t>k zUvU0&`THWzfUQ6uK6Y@4p2M&Rmx*_%2G)2wz$;c(XzLEpT06#i>-I6Oo}wCr0J}V2 gQ`sA;d0Qfz)3y^N0ci4bW9qn0r5^noj6B@@3*@DPcmMzZ literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ServiceContextHelper.class b/libjava/classpath/lib/org/omg/IOP/ServiceContextHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..e89d8b7082663b4d0ce7107cae60aab875aab46b GIT binary patch literal 3345 zcma)8*?$vN6#j0Ll7(RlP__bPPd7qYLZ0RdOA zzF)u{Ne^p&xZqPzjX44fV!EMqXGe!LvripLX##;*I-#ceRa2M$xk0xzqGtrw$NrB; zm^Q4*G2*NY*5_A8dXBcWhWa=z?T39>gvA~N1ePU@Y{;4IF^7(78OziYmNu+l36=`@ zdUYe2(yX*0u(%A3kYNv&(a>W~4oJ7D6ps$ zhqM)J#ui2^saf$cQyZB;?uaYM?iV(%CKsweh7pW?8AP6Dt(xF zz&xIzq8HBz%r8BNl3=TXHbfZP#{}(Uw1Y8NNtqeIgJmuhXLESgi12u)%^?BLsGasa zsjHs|Bv5@q*HZLud6~VuWGo%Jk8>SVg`R zP&FoJ78&WOtY{-Db*O!k&lI1<*i>cFZ7DY@VG6;k;GgvFRRymh&g9PFl=!h}Mm4SE zh>wD*3WhMi2#>3&tmXlOysGp7wzam$dyaG*ZS9NpbbE1vWw$Hh6b`OmwJAn}y zAYEW-h5W7WcO8nr=i{=Jf>E$cSC8sO+7u8`xp_>%Y4Fb{yHG^UX4n{-ih=q@%=8%< z59(7m424k-r0|8ANJ`CQB5KC!m`G@2mM%MkE1^vYtSQ<*a}}fL8d9mn>UmECN?uU{5T7rAMfBj58fra z(qLAyr{DrEQglf%?zAbk|EP~ZmlZU_kY867?7{mia)WIW{6huT@Db~}y~(b)lq^`^ z#*pgL6@iUq(p54|ovU=pQ+>wNEe4zYU>3eTS*svWe$h<#c{=^Lj+-9b5ZLe(UbHS2s+<`!heP;OA3L1A8%-PsLfl_dNdj zFdqvzA~*lUrv&Y~hlQQhzw;*25Lg~q*>DfFQ&>NRU{|B-A!-H!O-*7NTYDQ^oNBSB zc6K$o?Wt#TQ@>zu;6URPp1(^#hs0(Y10ryvonMD(IEtlwufPk~f*5w9i@mPfCRs-! zZqB!Jg(TUI4jd%S6IDZKJ0I`8B4yRnBz3S zxNNZT0aswMpr#YjNgGc3?!%jSE4SfVj{NS2I6E+n^RY&H@%95;vfsaXAK;2>|BqPM zcpq14IrTx`g(^`i{~q1>_wUAnku`Q+T!0rBu@IN&*JZ5571Z;+3s;ML*^Q6!32Atl zg6tL~Qp;d{N`IvBZwL7NpWig{dC>>$1)65NC l`EOFNTf9KuL=$cok!i-a_>N@2(&Ug?oF^mjJ;$qX=RZ5qSo{D0 literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/ServiceContextHolder.class b/libjava/classpath/lib/org/omg/IOP/ServiceContextHolder.class new file mode 100644 index 0000000000000000000000000000000000000000..6a4f900a9e262c75b7ce9b1946bdea7c7bf842fd GIT binary patch literal 1227 zcma)*ZBNrs6vzJ;y4BVS2#SIr4}!Fvt}(uxA;JtYvpD0Hz0;-JZe~fhF7Z& zPw>y;IPlv%RG}~|oVY{R@!ej>sWeY`OQ^^)Y@PZRD{l`EoPH1rx9M}IDnjmd<&q&Y zbo~L%Yvohp|Ah(+*=JtQ6Z;Iard4N9ib0#}n8ghP8gz#Fve)CU2i+zQYcY7S9JE}& z?uMS+Cx?po;C*D+o+1`!MUorl6sv+&*T8VgfQoAjhK$aWa#1pw1|`^L*qb0yB`Ed! z0}Cy(pff3GGkk=Ty=A1&AlZnRq1Hx5ZJe9EE}ncVU<()xkXuW1-dSqmg!y< z2*%85a2L#)z+i4S zTGHfk*Q&%i9*Z}3Wb%_^qp4}mD-G!o_Tzwth`^DuRZsb=d1r1?)?CLdxpH2|K^zhY zO_^4?B3;`OIIsnckm)c8q2nly2?We}frBJ%1!9V5Ryo~`6LhUTdSUe9l!lW6`(L}( zkTN-@qYtM^T5_b}%A(1TJ5P*~EV?CutFd;H_L(=j&&-%sO*%}`h1eFaMy<8*;tw!@%1M!>-IrCyai)tCAfP=!?AtHjD&@G$h-iK}kB^!!Q?o*+s@x8cTl33~u$H zYCEo4O0}#gnnh?>YwcN7{;HB$Fc^*A9VH5AEPKaLr9HBhRpG>U+^+olP{&8O$YN*! zZSrKGtzfrvCB&Fs(vil9KFF{uH$ zDsXZ`U$n#0DmZ7bZ+n|1?|0y)__2XMBX4#*cZo;gu!?khW2ocs()rzb-uM`W-zPabAdCP^Sd3EjxX?#Sy1%Fifxs>gEy<8$iwjU_IBZ67$|9& zV~f7o$Uo?H6hP0$cIR0$r0txHd#9nFEURD)e5qprY=`mP32S=1O<>eX)n$8b z2n;kWcTmRQgs1GfQ<67Kb%*wDZuHhQJ**n6<20|VAa8g;D!`9=?UJ2YWfAHoxD1)PKRg7dRX_zK-ZK&ifd9ywz*Ox(=R2 z9#+6ZID@kdgb8%e8t6&9ME^|kIR@7eZ^;OIi?>Og^R^%Mjj8$^H*p)kSVjmH!Uc-) zMg2fp<>_Ez9UuI~LQDRNkDujU;_^)7>T_JbGZe}EhVh}~I&R$``jfkqi#=rUWuKu~ z-~k=H&(RE5X6f=n-u91h5=EZFk3B63N+(N0OE+VB7kQ%Xq2)b%%F$7dCox6bkos0= z=u@t%UobM=ij^PlryF8aAieLcs|iG?9F@ zjzy0+k&KSKK($HS%9hXj4HNz?xxPb$&lC8518)>HxXO7%8@%03UV%F216ckaHw>k? literal 0 HcmV?d00001 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 zcma)5U2hUm5IwhDz+Kn2wpz7{w)Sfml#THb(^!dB3=t!Q7gNasH+Y+cCEE+?ztTh_ z@xdS9k222P-9n22dD#0gJ9EyNxii22{QL#r5u6kj7BDG=`NEci=jn+ig4L#tCoA6p{>EXYqyd+h>PP&kv;A@VHZv0e3s< z$dDMgUZ3{#yV9BWzifGiQi z{HE*G+(4*%Y}DijamuhagKV4{(QaBZb=fr?4A)GgaEZZG5{2RnQ%ck+%@)JHHDa46 zM6uiJ%cvT8yJp}PZl|#E|H5;x#{(00kfusRB!&4%W@baLA(SE#Fppw-l={a&NP0bM zDtoyvCv)63v4dSAi-Vuf7d%tC>WQQuaxv^qQ-47W38>4@JyO46*%J{}va1fut2fD- zcmSI!9eEoSzaKRDkx=cMo;DUaH4!vP)Ufm==wqr$Xu8yyT9($!bbB2BA#3Ib%&%lv zz!I$n?Z5#vJjF7dOmb79E4WI#0$7a!j>uE_8VVqj{f@OU$`X+SF9@Yb5wAj|^~gI$ zQcTxLmXf!Q8!_f#jHzd`L)^Ro840UUNc9|?K7!M67xzNAO>9lVWi#KfHpKn0!U*n| p;NDMx+rxecXTgr)a^W4&hRA%O{Gy5_$qMju)zU`QdKh};{sO5I807!} literal 0 HcmV?d00001 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 zcmaJ>-&Yey6#gazmJO>y#L$A;DxgW)vd|w^iP9oU4Mc;4!%H7Hn=mI14ZAtZgo^%4 zeNZ3poIdmq@Q?EN%_bovB+bLj&YgR|``z!}%%{)){s&+QI~HOBGeKB&gTtzuFK)Rd z86K;O%(3qi%J?Rudy=aw<9U#TO38-@R&kR!Z4sS{#4ojG${D{ent zb$4htsdF|aaMeOmV5;gj+~#dDEN{yr9jc0!`wk{?O~5WGzgm+z@CB~+pb;`RiYfBR zKPfCzkp)AmOO@rNg~d^PZE)H`*_go%3)clE+f}s4t!*lwd2iwyfl>X}UZWQHRe@Ab z+MUQRm%uH|TDUDR(Tzh|4(2e=MpUKVtB2}PX>~03bVXn>-5+hBQYOt^2We#3rAjD0 zE%&^d@{S_7-E^VT>=LE(tGPawZh~iB7?_lE5`<-rjq;CV$oZM-rM>E(jCT8dNhruRP`yc>znl)}d!6IMt6qCT|EVJILXo zz@?URI~8Z05HYpSR&x|D2*pg)lec$!vFkyo&DgtnzuwT)ReFaxlk72`SXdLd-K}Up ze+N$usf0<ezNKQ{5)LP2150K@YU4qliJ zjYVnN97lo(Q(%4&$@36~<*`?5kY%D2G{TBpSLXScJo~>jAEpJPe*6~Lc|K);#V@`* zTrHkl?t=Sp_9I5$^CN}?S91-lV2rENbl`r8CmWY>g%%UMK_KHd`2pjb*<>pDRrUj> zPx0+3?!2SDiIqg0-%q)&Gx`sVb8q9udCKA%?`?dC?_0PljEvDXlASrl4;@yC$hyU> zFC&Ch(+fZ0XL=jfzu+D*Z2XG*Ev!y~r+DxWoz55d=NSrxYgm8S<^*uCh0J%YH+KZ@bDaV#|$ctimfYmZcGO#kR0eS2|olFcIApH!SU^W*3IASB4 literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh2PuqICWI+;n|U{{a0ENB4M7zYy0TKi80Wpa44q3nPO- zR$^JAeokUuy1su>R%&tyBLiz$Voqr)BLkx+BLlBz00BuYqjsO4v literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh4mZqICWI+;n|U{{a0ENB4Ly$1uluXMY!0C&yq{b_Nzk z27#=^vPAuy#JqHU|D>$c;LuV&DLo#J~w=a{&NU Cf+^ns literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_ORB_TYPE.class b/libjava/classpath/lib/org/omg/IOP/TAG_ORB_TYPE.class new file mode 100644 index 0000000000000000000000000000000000000000..d22683e21cdb84bf5e2910f705ec9c5df7fa38fb GIT binary patch literal 166 zcmX^0Z`VEs1_nb0ZgvJHMh1!eqICWI+;n|U{{a0ENB4ODAgB0{$N*P%1{OvJfvm)` zME#t^ymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC&{zgW2Cm@z(xT*4 qx6B-%DnVo;^+2Yv0ktxKlrl0%GO#kR0cmz1kBNZ;EXE0Da{&P8=p!xw literal 0 HcmV?d00001 diff --git a/libjava/classpath/lib/org/omg/IOP/TAG_POLICIES.class b/libjava/classpath/lib/org/omg/IOP/TAG_POLICIES.class new file mode 100644 index 0000000000000000000000000000000000000000..011cf550e582a292cd0b59389e7b9a42235a6768 GIT binary patch literal 166 zcmX^0Z`VEs1_nb0ZgvJHMh1!eqICWI+;n|U{{a0ENB8&ue;-e0PuE~}1{OvJfvm)` zME#t^ymWp4q^#8B5=I8rvc#OyR7M6yPeuk_=ls0llEl1{FpwBC&{&{}T*3LJMaijd onK?jJg2+bdflOlqYGnW^Wn_?KU}azf((E9O3>;uFPB5Db0Lu0v*Z=?k literal 0 HcmV?d00001 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 zcmX^0Z`VEs1_nb0ZgvJHMh2byqICWI+;n|U{{a0ENB8(3U(a~w(BKe%-*{igi1^@; zAXi7@9Rqc7+H literal 0 HcmV?d00001 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 zcmZuu+iDY06kTVMG;NH{#aJ)#615L)5C`$GBA8TRBp5aAphgHM$zgiRWKNl!2>LaC zfG>S0f)Bp<=5P2P;yTj?q4+TSHfyiF_CCMlToCm zT{Al}iArn{d4cMo{3!icCXwGCAF2tfD*~-$TettF^VB~wsg>hc`N3}QSz@*QRK%)4 zBkR@1AE;EzSbugHQqHq9ROwusWIxyy5HAESc1<$3GO?kI7pm~P_VvrpXlGL(XJtf4 zAh14JY8y?Zl>*+dBe3#VC)z$CaBDjh$al?Dm5{?m8FgF|sPuHAUM^;1mF}G?sQ1i7 z#-XGtDmp9X?SY;P-0UrP`_D;sIBhE!cDBPc5L(7MDlWQRMin)If*fUHt8#Q+YH45= z=|nx(?gWiQOjz=?Z>>q>=C`7FSNhm z@^SY23T=t4z-#0&z*R<$h9F!cy`!q5N$UvS5t*Z}ID&Tb1UK6EPjKrWRh=ZjTiW+j fHl&&l8D;CV?TnHHXz_DnD!4rJly*WtI&UA literal 0 HcmV?d00001 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 zcma)8X?q*h89g_WGa6-pL=cmh1hP4?B|Az;C?#U4Ejx*7$qu&b)HOvN%Y!nBG$Tf% z#AzE^C{UI*rBDjp7eZ;vQwS-M`(T!S?vLuzb7y2NW0~~JEO$BYdCz(8@}K{H@;QK` zcwfOLfxWgVmJ!I0$b1P7xiRGw~EQB#q&nN z71;c+X_@Y$0-=GyIe~E6UNWKxLDkTM%>s91P0N_9l@|?XR$nX`0nIX%$O`Yg+<$2G9tZQgAl|t&#F^W?ZLMaC3&tDT18>_hrViC#c?G zIZi6r)Go7h;^^Tc5!@rNrL9rLZrrEfUV*zhp=Z+*rbTXhuvZ}BUdY!uf|M&2z592w}2wxOCb%%Fxi67;j+7`kiZ z^^&PqJ-E4nY^yA&4FyegY3U@`bZWz(5e&1aT)h}YFOssFjtGo(i?soAAW3>8gQf=O zr26-3IJTy-&3bTUjt^+~3La#IHgc>QPuC2q;H!3QAQM3Re{y(8;P%4WO3E+kt{#Oz zO2fl=L|~J-#1dc`uM;qW$EbB+B}$GX8b*<(uWKB=V)Tqy=qAoOTlvYR>DjC(%U(*<0*e zc4^6QqL{#>tez=>J*_a^F{5}KGYY2Httax)FpF=n!{?l*Y=&O;ceH~oTz`kC*p4f^ zlC4o>ObvDG^7?&7CM!3!b2_Ei{iSKs0Aty8bh-21AB-w-S_XE@Q0Dh-4NoG^B5we7 zWYWKGOYN45N=0F4TBV+lgGvm`Evze*M2%cgo1nPN@v0ULH zVk|{bz&UA>DX_gu6%WpZPNku$99Gg$1~==TvT50lfXK+n6%9{=f2ur;(t54R<6)>B zX!e|AUy_zkq1KXUwJM;ZyIMWzl3uN*^{P9*TreuGDbI&c!B`f!w{8CVQ8Y5Ns8fuV zkA6vXsF8}`yFBcI$3{RNd33NYSZBmb2iTpwyg=P0$-IA7@gk5>3G`zP!?5Jn%NicSE8OlDMkV-9G<**~rG*0v zqk|a*KcnfLk#Zx`Gp9$gQCx*8osX#eD#_o9f;YK>JflpThi#ibJ*HGb;6QT;1y*Cb zQmh=-$ade%P9%CL%Dg!QU>c;@+jGe=UCtig(37c}+cKqz(?xM^3sL+5e^T&A7DT5C zO}*REH2fLw2t+*!4aLI)86W0d4Zp=-8p?9N*=&0}1p1pC0+O^tGqdQ7U2_V?NmE|b z`U3UnUjz?J?ZbO{iiLQA1QdSprpKqkza-y+@1FPyA|LT%6QX>|Zr~AY;ZySm@O>Nq zRNRg`*dix?$fpF&-N4p~p3iveiN|)t`r^kao z9nU4gUe{L}UH`&~*rSO$zIL5}K8d(T7^)_uuK$H z-clM|_Ivn1D0aD}sBh~P4^HN;a$$eJG2x#C2(#_6Ra}{0!4I+tX7R(Dc+q=*8o7y= z;)##(QXQ|JeGh%PRb1t;*CvN!Kfj6BhllETq7&Ph6mV!||xjxl6VmO#GGF@o8UKqr! zAe4$bxLZJJrfc(B&K-~Y8t!3>dJro#E~l`t6xs({+F{sB;}+PZ?dX5;?SS^Je4%oMLUp;bPD(jhyF0IS6RhJu5 z)$kZPbvlk#J0kRl{MeQUw>0-Q)Z|5=+e7D+o*X?)9uK-va!e1Sf!ChVKQ|M*Xb((>j~hPB4w;90hQ`cY)mODBo4eLN|Q3)Mx@O+ zIw47=n`BGc+r+Jed6Y1VmFfhy&mm)D9ZKoW;EE}(i2HaD;kL1p#Z@amura~Islyoe pfp8x$z&*l2geyZ&aJ6U-C=*n^QGId8^0W%@nQkd*x1K~%wf|$%6GZ?3 literal 0 HcmV?d00001 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 zcmZXRT~8B16o%i~wye~Z!h#=IKMHyQjd5eVA<>x7qRE=ZqToiuMKf*3b#S{wwo?=M z7hL)?ydWlC_yhPy-WcEALI~kv&&TXJ&w1y}>A&B906fEE7mmQP$>P9_;vnp92fH$k z)o?pAUv#2elm+JZ<#!n*GL3_7e_su(iy48&c~iUlp|u$tn9Rz4qJnU%^E$QK9=f8X6jTof6}a?wF^eisuJe%`c#JrRF&Br0;*1n5GGAi$oLteDk(aKWph8|wt_N*D!wys|K-n^W3cUKj8uiWx0Gt(k@# z*M7RKlSWx!cjAB0h|-01u0)vafxfzNEHyDQ9GT*O=|1YkCfu#SFR&$7s6?FElsPw{ zmo3xCSbA2)J=iSZoiqx$ylxc>0(ZBe5i+V^3mvUca&RUsvy!orx{Sz!Z2~*vqlqCZ zHz4h#dNtkR*`dLKgC6XlpZYH^cH%w-_X^z83Of}WGYaIj3%dn8)-&l!zF5c!^t91( z?4myG#eN0*1U9wekhY2gxSz?&=~lXA8ViPHoYB)(M&Mvzb+k2=ly3S|1QB8;Gp4Rt zdRogHTG@u14kQ`{L0u?jbd^7?1nXH^)2RpjEGJ9L`Ot%itfPYhqpSH^1Gz0o=0`e> z_DxImA5d{xHpKrYhKB^ylCy)-S@{a8Cezp3%El*4;~fR(6av|zhM<4h%u)t{OlsMlQ6rQFdewFZ4oqAadgd0 zFbzd>PC!|(%bgo^=N*9ry5|i&&)~MU`Kv3&j$stay2;it*j|mpg>%vRx{f}?{3%G> zu~QZES>5zu4CAtDQUdojT&#xY!#6RhV4`Cek%@{ae2Wtf+cX8!wFRex9cZ9BJ)u-I zEjblwSdlH&(+cN0JBticwy~2MMc8qNfGNDbXqlSqvmIMkqBIiM8J&#nDHY#Enq^&s zX^CQgM+03g3@_ExRLo(9$vvaxE4l*acSq~i8yOx=r;Z<;7@mr!#yyy4-)gDhUHW2) z$AzBtA%l}LIflUIRVue{+Vyx0UN6n^Di*-T+`V8Fil%^w%f%%Xr@@g|9y>9uQsz+* zZU&k%))nQw2W}*t25TR>@7?R6K|0skkJVc1|T8_Hi$PUR2SKf`XU0EgMH|Y;+)HHMl;baZ&Mojp)`nAK%~{`Mv0`TQ$9U!B`O&gNoGa*nWa!?_bJWF)E1>X; zcT7GNjv{;uzPp3V@LcCd7kqrmY2Z<;=TmhI_};*g7hl0${391%7+4Z&L&n+Yu=S;g^2^geqs&4{12!FwEIOydL>aT&gi8A5sS9n97s&y#@E zVqdU|C%?ehO+0-qaSNFlzrKuIGVDLKglEDGuy`W;IoE(XuSc24Qt$0l9LV!efnH0z z!JS4gOzfeB%z+G#*fjAGxa_s@0hj+=Lro{8=WRF{yBFWb z4{8fOsF5e(XJ?l2!$gQt{AdX;1pkQ(m#`@m`~nxM_}LOJUO~W~{LI6F>yazi7`lmz zy|n-J)N@^;SB`F9{?C`8hG!>_7vRB5*oc?01sAa&udw!BWp-Y}5x$?m8%=>G@H)rf zicxunlI0*X`5THO1AP;hYP`QBZ#V7ILArgRir_f*@U|YmARG#JL2WSsZc8-el>vYc1*4rM4Kql_nY& zAN&A*DC4

      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 index 01364f2411d..1d4cb6683ed 100755 --- a/libjava/classpath/tools/Makefile.am +++ b/libjava/classpath/tools/Makefile.am @@ -1,132 +1,133 @@ ## Input file for automake to generate the Makefile.in used by configure -GLIBJ_CLASSPATH='$(top_builddir)/lib':'$(top_builddir)/lib/glibj.zip' +## 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) -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):. +JCOMPILER = $(GCJ) -C -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -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_BOOTCLASSPATH) -classpath .:$(GLIBJ_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 +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 + 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. - -## GCJ LOCAL: rename this tools.jar for libgcj_tools_la_SOURCES in -## gcc/libjava/Makefile.am. -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) -## 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) +# Some architecture independent data to be installed. +TOOLS_DATA = $(TOOLS_ZIP) # Where we want these data files installed. -## GCJ LOCAL: install libgcj-tools.jar alongside libgcj.jar. -# TOOLSdir = $(datadir)/java +TOOLSdir = $(pkgdatadir) # Make sure everything is included in the distribution. dist-hook: @@ -146,26 +147,45 @@ dist-hook: # 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) +## 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; \ - $(FASTJAR) cf ../$(TOOLS_ZIP) .; \ + if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \ + if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(TOOLS_ZIP) .; fi; \ cd ..) - rm -rf classes +## 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 + 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 +@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\"" -# 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 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)/$@ -jarsigner: $(top_builddir)/config.status $(srcdir)/jarsigner.in +gtnameserv: $(top_builddir)/config.status $(srcdir)/gtnameserv.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ -keytool: $(top_builddir)/config.status $(srcdir)/keytool.in +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)/$@ +grmic: $(top_builddir)/config.status $(srcdir)/grmic.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +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 + tags uninstall uninstall-TOOLSDATA uninstall-am \ + uninstall-binPROGRAMS uninstall-binSCRIPTS uninstall-info-am -@FOUND_ECJ_FALSE@@FOUND_GCJX_FALSE@@FOUND_GCJ_FALSE@@FOUND_JIKES_FALSE@error dunno how to setup the JCOMPILER and compile - -# 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 ..) - rm -rf 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 + 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 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 ZLGsYRYP5NB2Z<%il0(VgCX$Aq{tp+t^bG(2 literal 0 HcmV?d00001 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 zcma)7U2_v<7(H(`-A%$mOCf525f9A><5nDI*S>(YNAevIOIH|wU-6qw9p-+lIZ&vVXso_F`#f4;m8 z;CYlZ1O(Ps?a55FaNa69GgcvE)}}N29LFvd>W-x$D9~}b4ax5D782aYq#v{`b3))uvPI57*{s!0@VRB@ z3}bx2SRSam#de=iE<&{%rFvcJ-lRiAD2y%Gs^Mumywu=Dm33@GNI(=KNT6Fo@_${; z&(<7kT1N_L$~JA=oGn%_&I+U!ccan!oUy1u|Ah?MqCn9Wh_{fihzGq=s^`v;iNRIb zlJ*zsybp{I2xvui;Fx@@mObOwE$H#w&qxEZ_Tu;KfcwSPn=*tzk3!!TNz+&}AB z!<_%Bozu|Eb}u!vnG!)3?P31y(y?2*8k{g4QwH|x*oTZ{Z&fCpDQU^fLoD%F5kTq| z2u+)p^Nv}(z$S1xD94wxCoZw?Eo^NvqN^be>p-<$;aTI!Fyw>`>Ifr3dy0*?#*}>N zEfz{Vo>4{wuOYAD#PZYCkf7rvPO*IzYv$C+gRd-eiU}t$qT^*SBUp2pC>QHweBiP8 zJlulrVcD0{I?mt?+Ckj>RMjT<=H#PVE;pXlVakmvHyRa3hKf2SK(};;q}Ti8xe(Zz zlw3OXFjCTR7;r}WZsgL=)xNA4oGWJ9x8&MaF``juVC_Z`8!|dTz zNR;4pA4_#3hg=L*7xU0>jtnAU{vq%pwTEdLIryo;@P&nE4#wKt*o%0H&09%%J83b$m~z5B!dHl( zF)Mxx+0mQG^{O$IyyNreYb!wLCnd)@HIitUJwJrQB-#N3uX^+@@G6BxmA=%_HLQ4Fh@Lqd8S1%n|K9p$ zTQ|DJud~R<1pS0}pHk@!v~#@%pSuJ%HGn*Vawvybm`n&BO!{}{{?AdZNp6b^^c~B8 zPjz>x^amFIksq_4*si-Q{>!3PXMG2=zJpoc!L09K)^{-LIj9gx3Q_snf!8Tcqoh%c zd6Ir*JWNSOs+W59#R)tT6P5q~ literal 0 HcmV?d00001 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 zcmbVOTX0iV6kR8|H}^J#HU$E-y`el>C@E0dVns@yJX<0@T5uR!Gmhk%htc9tc=>m%){&5>|fsHeNEu`d-_&3PiJK@sq-4{ZvS#X|AU zvO7#W0cBk%6%uf)Z4_|DBJs{tmw;&EWMMQOP1OoGOJ=U7-J-<0h#O9f_8<%HEC}Ry zpu)xfU^E_C+1nkCBwIt_SVUkrR};;~S&lO9A^K&8L(a)GHOO*eB# za>BH9gewGeZfogEBvbUlTud)qc5%5WE*GN~)L&VR5BXxtiFjGH|AijhO!YAwzf(hh@M4kl2(--%)>22+};&RHW0C7dy%ZzRWSwJ z(kN(a!bx!uYCC_lcZXSw^eeGmz+)GvA(;&I2^5vAZM-S7Zq%buL&HeeeLbm2w+D-` zSRgAT-L)q+&}CpaFP40(n})$oFPZ9bCOSHpT#qFlOV^}9vqmhL7LRORY)aqVlITsg zN0vsVa&v}G%pA!Grcgpo9x?}iR6C!L%Hner-|!^xIf}D7S_uA+4jh9g;H^KYA3^p( zE;!)jGuw1h1qHXlgZaqin#bCJF&N94bT-a*ww$|UK#%FH;F`Yb>8pXE8%!S>om3^J7&fy0I>&px#udO$gbd^s`t9im{MHDDaU#J~ZXTHy1| zyo1dDb|$luuJ6QT+=XJ?Z3drgxy=Nh0lyhs#Z;3knaU&-+A#LgTII?-38U7p4#7}u z7z>m<#ozCgP^^JLO#YFWrkXXlm!9q;rZ!>v+<`{o|s|T>m3^2i2DFfDew%VKFds=V?KDnQWRd-LAnBThIC2Czax44l_`~CwqV>WDc@J3|KYr>ggo10$x2+g+lM- ztvjkzi+7*umHA{QGNa5y=9Hccv=;uKO;;Y9MiKzLLh!FL)dQse5KHwMi+Y&f5l2|i zqga7sScT(QgV%Y8PEf3GU>i=d^l#!xoElc}feb|hn27*sP$>-A9-Z`>GAUB%yW1pC z<@-|1vdD5A?%Eq*)@_ewarKq<_@Svo5k3~TE5Fpw*+IPW}Q{)plB%dsYg*! z@_eVW=F5H zfal^ov3a(5a~|B5RzWVdam}^GTX*G}xiE;5^xn5EyTWVQrL#&5!qcw`pK9#6^wyO^ zd6@+T-er+a^Sr#rZ>SI0FV9fzAE6Q-ViGoC_!RfxGj`q2(S>tJ;0t!NFVT%QMbFY;C>mkRKw zb*l&bEPUxZ$SpPaBHMg<9Cd*;rq#$R%)C}bHnK$y#)@1_5Mxj*#_==GH>?enr_IX0 zQ$myo^OO-EEEc#z=wdQ*#1#0&RLm07P{FFmj~DA+t;~R{#8N`y7c!6dG80@55B_qF SWGfhtCPJ4TznOa-Sn(g8AWS0w literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..81a4025992e59ac6e75acdac34caac934d8ea4fc GIT binary patch literal 2432 zcmbtW?{gYe6g>|XD6j-6wi=VRu~iEsDOOW$o0>LaV`*vPSO>@YK^Iu*R@lw3OVTg? zPdcOH;0ONz|0u_E-!3G&r0vvU*nRJD?>XoGcz5{g??3(oa1~!Yfr5Mt3I&Yetl0{W{^JFv+ej!;Efa#-2;V{)(HfW z*``AJmg73XmcpgVi;Syn1*75h>>QFPn8;#5Az7)mv!F~98Jtomwj9^q9S=M9=qsx; zuoX_XyskB9TO&vI(V-DMas1~9j50uhsRIc~VYkw3wvKY~C>S|zfAeKdzKt7I+j*q$ zrin8+tB^UcN512^3aZJBSlzDeQ=H*iL#;o?s*v@azH0^J5e>5bc;6oFYU7;avT#3G zL{KQtVOGfNfF60{QJ2n_D{*!4lTh!wCNAO<75b5Ls%Lk`eI{K)?u|*U`$yr%OTnH* zv}&S)Ds%50x;C51=-GaEO0(^{USI_}UpME_Jg&}Zq$8(k>q!Bwnz(|x6o56>&7vMF zEa+&q16H`hkk}>jT66aMW|*9hO>E#AwOVvkI5$tk6q0QfrmX2Qz9?n$Vu>dxe$ov2 zKQVC=1kQR=hOis5j^Ia~p`+Sy>_JcA$I2`A@-g~w8f?zXwq`k==!S_q*p|y=4aWcJ z=?G`qm=EpXiARaUSCu%Y>E~$-d5(*0n%KeT3OV~(*WQ-~;~hGs({|VGNxwWa@j!-7 zF1$TEj?9~?skyiho`mQVb)fEL-7~x5-9Px zKwscPdT!9;8cuU}Hnc_=uX878g35s*6NFE}{E257zRR^=QCwPHUo;j|i|Gm8$lwS( zr-5!0^o|C;7rM-V%UHx)1SAZWxDt_NEaRLORmOR)41IQitCU`?FyJ(OI2Ho-f|n1%*Lf2K98gtjvcCf*~qXfSb^s|44a2NCu+F?D?7aJg(ygft1|!2+(E~qz=U>A7_jSZlz+N-?6X0 z*Pt7r`3$tE^B{VQ*wX2i)oq;-SxFlhB;yT^D2FU}n)W53Tw2qeHo>RqSb`i)xD^`D z2um7L2urgPl%f*I*|f(>?2o$?tK?ojm-=3u+W()__u14!%?lq{R4%R=#2mX literal 0 HcmV?d00001 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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 TG4A7l@eoJ465&|CC7gT%y0a7s literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/ClassWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..07de7fcc69f0a54dd8e191104676730fcf0b999d GIT binary patch literal 14071 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 WHnzZb3Sm-u7J4W*^GJ-88uGs=o*IDw literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Edge.class b/libjava/classpath/tools/asm/org/objectweb/asm/Edge.class new file mode 100644 index 0000000000000000000000000000000000000000..2cf713b4b9cdca547e2f2b286ff63935f533199b GIT binary patch literal 360 zcmZusyH3ME5S&e%7@I&scnCTgB%t6#4WdCHAz4rar9WR*=7Qss{0NA@qC%qJ1NbP! zo|O)Y-I*QD?r6V%KED8*V>d*Hu;3c_jw*ldTBx#5JYiTkDOHk2v$s;1CiZ z@B8YZFC7T6)?$QMkfbC~a6_09^h)pa1Do$cIv7dsx8f1DgnO$$HeRi7x2~OEA_q%p literal 0 HcmV?d00001 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 zcmZvXy$ZrG6ot>VYW@Ft0dcI0!PQOb6dp2A| zv;}I5w~E>+GwP`Pa7JybZ4z2#!!b|9Pj8cjj`d~1=BVP zVFVQ72lNTOV@$V3I<`BCVT2SGe}G}uESh${pb)T(Beuel-Vac8U+7fumJjK z#aXqGp351vX|Go}*jhugI`B+yrF{K#V2yPCpAxs|oo!hr z)tw(UV(??3h6QL+@VB;QqgaF`VJxoM%&Jf{v>>7o+iw<%w$o&>T&Cf25l30d;UJO?Im_)VsT@ zHOzB8eO$w}xK2T%r|!H}v@^Cbu5eYgyK??D3N6~5QG5cOVXReHFc)f~p32eg zpaL_6wbcoEFxcBxBcqCuH%QFvQwq&%u8g4?bLgY}%?jOw; zIDSi8Gqs+n7}NhYg=KU7S0ZtzB!;cHSzxzAVerFHzqdweRc~JUHY1o;=-1GIM3m3& z5;StBuv^1?B#1nzu+uTMmkcsAK|;E;Q)=ntnR>T1sg=rx@;#?co*mTi5i~|I zgyAqqI88OmRW^}W8-;%;U@M&WHe17tdBm{$&0|Cvr#2J80fjmT^SWhcg|uWG$25!! zG{X}{p-6`E0~aqwaEJrif7G%^4cpB5;R7NdBx9S5Lj@zJ+s1GNB|f^@Dvd|LJfr<( zN{ryBLb9)9+2*(*pkmo7y)8;xZ`Uw_(FpEfW}afk@+$m3)gjy|s&|nVYL%^uY&!RC z%w#fcLe)h#XJS&|c|tmfcpy?z9`@h(NRW3TXBzu&*7w4 z+$X#H6*kxMKPRjYi-8@=OSJXULx=L6C|K|Qe5sH#dQ9Ppc-4n;rI0*U5h{NE1rg&X zmITUQpU|hXl02Q2bm*)kLuVxwIx8v3SqXY)CD5If$m1G9fV1~edjA+t@A926*MZap zB-4{9CUN}~x?XSs_#}VVlDmO}45G-dfXykKKogGelX4VS;22W49arNxx^M?J z;skne7k1#Y_zX_s23p?ehKmhOQ5d*W7R8$Z`Kkz_xvQfs5zk#ccL8TNkGr6=i=&%m zP}qdcUK!q?SGntZ2|ar*;Kpt3sY$FzGo5K<{QTSf61MIUS)jc=cmdnj2Aa>IF&Ut! zZwfn8$-or)o<_ovWXqClGVnaT`XHIFV5Go(jQas3@g-*ZAXefmuERsj>=9(}Wo*Y+ zoGh<#qnXXJ&&flw?87bCLyr+`!CvfRmMOI2R<=06Tt3Y@xsBaI9jQfqnjsEML6-&& zRQgcw)aOz9d5qP1+|&(&Aps;K{{{^ z)p3?s0(vJNS;vsN&JiN4XToHWcb`%b9$FjXIB^b3L_Udw3F}0B^;4c&-c<{UTH-cp zxz>e>SWM!poev;XHD%dE<<-6!ER+`$M?}^Xmq_}iacpo<;>?zBk5_K9 zv$q2?Xq5K`#DVhreA75FxUT6r=IJ*502XrpRTleeoZhdK{h#OTeFMwzP5$dVg-%Rk zJ-$U)f19m+5xej*#_$S<;#CgBYXtx6ID_vHHgDize3y-y!L#@tJ$#>GZ-olsnMiSUDZ=ZdiA3$7*{!R@U3GignGj8JNbY!LD?(1i>RiSS%sB7!hHb z1ar6Ccp6@4%SEXIm`2w~5JNpq@7?0fMU8hSu&KH$2i_uj4Nl;mqF|>=k$HF_34kPu za!70BKy&7obl(>^m4#%IGrVNV-ld?)yUco*tipWi%tDFcdn-fs4Cfs93BmJIvd7QR zf}ivM?O%{Veo3zU6`TJy8R0klnEe*R_#Hp4zlViC;5Ph;?D}W2>R{F`ulmtgu2U-&Qni1&DVQH7LJicBqKDMMc$q z6;qbdR7usTld4|bqvGnUYEVz9`3?|UT!@v4K%FP+?IQq_>I}J0cv_MFWK7Qf52V(7 Ang9R* literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Handler.class b/libjava/classpath/tools/asm/org/objectweb/asm/Handler.class new file mode 100644 index 0000000000000000000000000000000000000000..1cbcd3ff5eea4ddcdd07adc1252834880c8beb0a GIT binary patch literal 428 zcmZutJx{|h6g;;{10m27J}VX$B@9sVM>-*yqz!`=CIt;_g6ue4jGPBPz<)WVR8=>=3ngAZdU?!dfFNH4n zeJf({Yb%T;XY$vYh*Xy63|*;nhG4o(V(@ZVXAE)j8#lH_>4LPLeSMS+?3SpOFO+=n zPqJHz^t}tEmA#}P$0rl=TvfRY(ZyDTJ_Zc^L}_`qn5WV_h_s~WIH@vGPJ~g--8DTs zRW(C6t`;Vf*QyalZpvx1CJsR}=&O2k{I&vt!xe|C2R0gDO&}D5YAg7+W&YstLF4wY@lxeb1GDKKKYgC+-Shl|pSgGZ{~h9kj=DkJ)2!D?1$@%-Pcc_!X)TT1TvS(n?Ln z@6{(1DxB1WeN;gWD)@894%rHoPAZqMk_v%jIyI?hYOg}oBgwSoZm0o;;6!?6ENQ#j z{XCq_WoUFN)C`qqMsgV^HQDQJcX_jJdYrPdQ@hg>k( z>Nx8rDq@9s8R3hZtU`p}5D}P$A1Q3$%y19k2JJ!|+*oulz>{(|Bo53-0SzTDYji4y z=;bhJGul(Fd)o69(rHQvwb)ej`62I#2*aLFv-N#!E?~1@Qvpqa%>^_IMhl1vngy7G ztp&6SwinPY*ik@-U{?WMrP#W(czMS5IAc4`E_?!EoL~$m5yO*wG@in(cpA6k84ThS z?!&V>{*7*AUi`ye{KMEvbwrCEPo4YeUsmeON{OEGG?_Iwn@lEh;KY)6YIqWOj^55v z{pVSr7s~Xi^Z4rI57X7?!7W9-9^fs}D{NK?OM?jGvNW7tmgZ$%m?h15_P{G;G+~b> zEWdA&W}8RjCKEOTLenU^yEKhwmZf=>G_TRk>!f*O1sZ8$seTXDc3X0^m`%M|twn2* zy1G0qXP4!9hl;$*U*xgm?_!>72K^*?2kU^}`{N=jFB4eVCWm zR`*I?UR#~pF7~)qUX2vHb$$yQRGRbxz883lKHlUIUy||hqP>&&5XTTll0()P_vE~c z)AZFuCruYn;h*!((QKyK{Nj1fj?#|4RI*Ll=DCvHN}KxLA$J$&vsg!~ojdK^ne}{? z_BSorm(v|Q-BCL2n`3z8^8dgV`jN@}ga>gIk7Axr!!J04UvUn~319@EsG|!#?0=%z%NdN!< literal 0 HcmV?d00001 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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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/MethodVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..d4bdd8f383ae9aa37300bdf7efc8b99090481ea7 GIT binary patch literal 1464 zcmbtUU2oGc6ulnXx|MxV)^@ z0sJV0eVwTtNe~h*Il9-^$LHK!`{%FkKLFqrxFwh)uq)%fD}!?usxb>(IvTibrp{!q z%ST+vxCHYAHqPlKbt5YJ?guO-P`fniEg__$ic9g9eWgjH2<$rzKg&5SOnI9G*8iX& zaOn8clR7HqqTl@duXI~T_mReQz!Zz8ClY8n-hU9US)EGj2@=H!>^XT3uhyH5E`ep- zb0mAZ{Dw2lcw!_7%sZY*tzeNSl+7+U-b}hnW1C*Zs!x+4vvDoYjG?nSk2#Baw(>Bq zGTVr3#<1DHV`pJj$oph4wDFFn&;Dtj1}wrJluo#p~Xb`c^n5*#2Zhx&iSt#waaK+fJTG3KoB*W{Jh1*WOzf;zcvaN3iZ=JAl zD~{>J>a5M$Oy?a(pkjT+lOw84y@_OaLEuYq3k$UsFJvy7ac|G{Wk@4Ef86wyK$N30 zJ2N?%qTwhMh2HJp`CPD*WDv0U>N2(Iw-JFQ?94mSBT(+hBo5gzHzF(7UabS;Zjpe# zeEO{esOv{;0T#hLW+hlcT!u2@O;|x(g*C)=*g(7m6~x;qZbB8~8q^WDQoI9qF}?@e uh&yl}aW~z!2M;iQ2#*jS!xO}(u#f0K1MykP^E}=6!syWsUh3~09Q+0mvagr` literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/MethodWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..9ec1d07de5ec32b99b84e013a61f374442c4c77e GIT binary patch literal 20587 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 Po%Y^4{0A11;;a7y1}h`Y literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class b/libjava/classpath/tools/asm/org/objectweb/asm/Opcodes.class new file mode 100644 index 0000000000000000000000000000000000000000..599491168d35f6139de25b5e35c7525d80bb8891 GIT binary patch literal 5782 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/Type.class b/libjava/classpath/tools/asm/org/objectweb/asm/Type.class new file mode 100644 index 0000000000000000000000000000000000000000..e96ca26ef21ed78ac33b1cc942e0a80fed917fcf GIT binary patch literal 7900 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 literal 0 HcmV?d00001 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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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class b/libjava/classpath/tools/asm/org/objectweb/asm/attrs/StackMapType.class new file mode 100644 index 0000000000000000000000000000000000000000..ea6999b997fbe103dc4de31b1fa75eb079c3c7a0 GIT binary patch literal 2422 zcma)7TUQfj6x|<}%p^n&Bcg)6Xe|=3L~XqWK|s)G!0G^YywOQA#KFl-noLw|U;ElW z&=(*2*oWSPuCm&`_eXVge>2gHCal#5W@ew9%Rc*@@8h3;|M&~QX?&xgOW?RyD`&jI zhE?>RS%r*QuVhT$uhlcUZx){{n$_jas->VuAhlsWH8YOsmNT~ke*rbOJioZM>{SIs zPGHZR=hl7G^;b=&VRf?#1d@SI&h@RbRg*R$kO*uGj%WJPLK=O6<*L^xI6+{yKs+$z zJ+~}`-N3ner(s}ud&xDL#ooG2x#pA@)z|rqotX} zd0k-t{d}ue-LKhhIV;fPQwf2Xx4vGte1XIHcIonF!E)#u3l(L>PMOrnq9Zv^33QL9 zSDAXwD^cX*Z;2chRxv^^N~~g3KxyizVoabn5KzTQ)(e$WF~MX~G8L!zCACsQ%v;;2k@C5d4q-VU^r{@j!z7O2J)S4VgbN_8UncQBK44Nx+{`pgio5T4oQ`3*0uE@f zz5n%fDOw3DDjxHOxFo+fq;^jPPIl_9t>M{*%#l@55$L*j9>;QF-yNWoTc9dOzqswvEeU!>=&isWAxQ%G65fjc8v#tw4EHf|1WA-{#sx3T>94umnZjk`a+DG>6#Lryw1Scw!$ z!wAMBa1ZyJg{GRF$HvBA;X$kGM9`tZMY|X2IQFLFm^}Z?A@B&RopPq^Z~H2^86Is9rR9?cHFjV=%AQX7G2EUhcxe4ob!^I4{R{ zW*h5y`H@myqJLZ~Z^0&9AFL&CP{exw$vJxdCw$ zwQ3pER6rbfnq(gD0V8@v$)7G}r8E4eCPFL6JRHvQMHPfzfzJH%{Z!RR% z&RShFEcX5P*=O&6fB$p;XXnlTe(eN+nRvetmS9RUwP|{??WSlXy*1i4J>1-q50GcjWBFYtpG$ zViOk+ix7M|)e|8Yu30Y_)!ow-O*JQC=~y@(yCvFAHr?rPWb>7&aA#Cd>|y9h$KunQ zQmOE^mRNV1oQAZe!ih+Sq8*brWl6ZZV|lnsC(Mn+V`O`|z^<-orBDkgTp>!h=ec49 zF&1>Op)`r{S#5cMn841T*!>O1) z`-9EZEd#Z?+~}({)*Ykpjm>$w_0=(RDPbNI% zixbAxE~CPY{?0Z@5cMci4s%@;VRRv=_oDuJzFmTt=gn$zF$QC4lypao&}s(J*PyOW z!&;qN1QP~XaJGUec-Z$%Ct+O4p>NYMgIm-DE#bCkTu?rkrOdm=npPF3#l<2l9)=ZI zRfv^>%1<$@i)JiUF;}}-gSB+NP0_Sq@?g3jXbxT2>SCQP45Xr+$t`rTg1CpZWDuD> zsGPIW3zwlrxaLH6g1W74RtFN?;NnJH$B@mL^5$4tUxZz>fhrl&mF#K_$9uTh*y@_W zUCbhjvAyo6T%hVcf+A1rkV_Oha2HXX?)^{h6&l z7Zarsff40NQBd7%#IVuhA_Y2&y(P@#F~Ur{G8T=udlMU~|Dc%4lg^L3npVYji;Jze zS;Og87q?+MQARq#sU{jv6}gZ)PHtr$W!j=#!e=+0Ol(@2T9oWDnZU!{oJcDi<#>;a zyA*F>k{K?XU}p2Cw6sUEQ+B%8flY z(~9U;lNdcMjLUa4UqI?l@jU3_0qmkU?Xgb6k{E;A@L9X9E1F$Bhz`BgUvu#le3dEC z+u9_vtQe2D*rU386#EPDm|)z%AkjTsJdOjDlo8RC+SJn-O{8_0Sf&nwx@N;5{;u;I zb)zR;JcXyJTryk3bHil$W_{D^;vk--Y<#min(j#@bdjKLuszPV#ZWSO&c*XMOdoDt z*}Uk+wb!m%EEs>j1$2+JCrinBacjCWP=cvET%HY<_H=f6HmIN<57b{aC#fNixOfGx zY5*T~aSTfdG2Gt1z#NE7^Tt3e$>ipqt~Fa@=}3pixBmR8ZbS26nDe*%hKoMDrdytH z@lBlMQJ&jU4LIlbF#kQ$s55SiYlv-*ZX+9O1Ivhj$#;AzJwGZYD$jNG)ID3u=JTuX z{QNv0|0@@#@djO~GsgUBcZTWH^YFJWzM}`J7BA^=EYZCzx=oL}zjN_je2;jkiKaLY zlM>&<%*nVg8IQAYizO3{HS3klTP}WpAChfX4+W+*`a|14j0cVknv3i4_bz^{&hK>7 z^A*ZJ>Y4Gj9`ViRS@O?%9KEe`-*xexienQtvp|w3;+kYnDiXaiW(u0KO3P^q(wRWJ z+iV3Gf>N!CSfrL}MMUaoNn$7q5>iV`2}4;(7|L?MP#*ZC#ava4apZOZpXPDC{wqF? z@z)+j>8q&7^(tTH3kwtYJA&H-jofN3nKWRcc>^+GW#qFuL3jlmUlOV<_0JMJoqimR+2q5;qX-vf4f@x1hN9pq6C*X^KWto59s5QP2O&>rSI6RHyj8 z@oU!gqrZ>_0}Fs4!Yp&!Fa;6Rq8&33#bxL)h^xHaa)=x7S<1wMlcrnGX0gwc+e26A z@;N}ue`qi{d&&-R13o`!2=JGH-NLr=Q`)tBuPuL`Kc>9?Kbn0L@hJ9us(ruxUtqFt z=YG4{@~QT-O|hid4zj(T5jPVz%vk&d&K`QPoL)^YxL{%UM*howKj%&Dc5X z7uoe$o>?EzaUILj?0c0xyT;eUAJZ0gHTgHN<4fsJk%?@L$9FnDB62vhu_N$Y%%kDCDFgGSHk@d{_BNpabsz2K6m7=_NoY3HSGc={<&%-bB=H-^>F~Ya=CU}hcrw!ot$biYZq@bT) zsH8vv3|QEfw=gG4FP4=(r|IY_HqC#}vn^md?9&%~`l3%?@~P%co%c)s7JAWE`wHA_FTkz#Rk)2FvE9BJx7%y6%U*{A z_6>N#4&$KRfoJU`4l$CyV{gS7`xd;z2!GeU8}HdW@JsuC{42A-uk5el1A7mCV?Ty} zx1Yp+FzP?D594F|CH$9t48OIH^K3pTVxJPrep77wj5zjN60mWq*wXN;6PkV>aYE^;QxBqt=3of$I4 zxkRd+2B~r8OUPL)wa!wR>MWO8&T5(MtdonK>*W$BB6FM$xzy>DdZ$}1bGAu?vt1gU zyJVj81)1;MCr!>SS>Sv{7CMj066al6<-9Lzoe$(1a|UHFnsM`C_6%aLlV_#aCwbl` zSTtDnDHaq-_H6rYRQY4?q0ArqIm?PJzI7Z2CEi6?SGb11kkD zY2*fKLgjlg^c7U}BH-r}6l&0+G%}>s!ak-Xj@>v9AJ%-B$bjS@z%8f`#8@5RV zcSt+#l8tysHsN8}jC~Tveo5jf>Eh>BIZ zE%udA9N5Dc&I(^|#w12kxX6XCa2q(|!SJmUj-Ge)-n(#u-Mx z<$bu@_LW;@^jA){2~^9|m@WtNY&|1~c}5QN41B@2 zH7_@OEL$jpN-<5bu%i95Y(-n?Z(930?%j(Z$^Czuc@9B2j3Rjfu}A_fsDZG1M6h)W`0uKFaOOdoj$||883<$`5?<(EweT zI$AQ+#WCul4;RR5C?~y0zJXdfVNirT{y7wN#!_1O*Wt@XCu6DchuG84Dc+~}$Ts_y zn&3r3A0EykD=I6(@y7>o$I-f#yiPdZ;+^&>RLL88W|@$KFd=7_3C4l6l;>rQw=vz; z3&D)Hu?fMw*${lP#5sn24F&d`Krg%yDJdup%*x=2g2yq$Q&&KW10@9~4t(+x|1$u~ zC~k(WkFAQ0<&YVx^5e^dT|=ORX{q8FjOWg?_ww_F-(ucJna!^>-T4`B&Y`DK>KmgZ z;B7rHIM-`Bl`{;^?=m>QN5gy{6Xh*Tksn~T{1EkgUMN3CyS#&#yo_KHvq`hy1wyH@qOf#u53*X!SaN{HavgPr6J_tC?JYW^w_V@dLD+ zntlN!)*CKW#ox)t7lKzOe zjIpXP-kN|5tjIgGn*qVk?YdR)aGYt;!E@5I0$3(nIMQTQwh`%-&MSF@(>yC*A zkwbL6qw^7U^NnV`vQRAzqKR&JsIFob`}z|_OD!)Yc6ig;LJMnvMz(~=UrWx zq;EB1m^GJ1x*TJzD^Ow0#}uo{AkuP6^Gh}=tNm+>u`K(%YYR*Nz~SR)#`Zl0g~q&nP~l1>9C0DX3_unRoJJ r59%AM1w*anhKqN=1#_|n@e@7ZSnTr8bS#`5Uh!!0BlxKi=V$)|;hZ|T literal 0 HcmV?d00001 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 zcmbtX-ES0C6hC)Ax@;-mP(b-8qOcTX{QyB0tECjX&=#~qbi*YV4ft#+_6Z~J!OdIiV{*tu-18s(

      ECffTMAo87o+Fqd`Lgj>iX$JB}L|f$cg9 zO~Alq+p&W&0ol^2c>%czw{8tW7IqE6HrOs;$F%KOvz=DW@@^ZorX^tav}+p8dBd~m zw|bcimTX@@X*wP>Nu!E@{3^*MV764PPDg6Z1)l9RDw}z;5FbP-6jm+I#}oyKD&}XH zrsX5GoMW_@eJqxMqHi}GBj|WIpy+qnmN(0T2W=;?yhQ^M1nfzOCtxe5G3RzX6DOZ6 z#W}^_5X%8yP081-TBm_RGtkWr24qhNczsh~$?$o1&9OYpx^DSq7d$GzfJ+JBcTXjh zFPfx0gS9IVS2lyVD_}b_9}lo{HKZ?KB*_Nh_X_*Wz~KT8Ck5;RVIV0=)xlhpC`r8I z62#wBDQeLrd1Y;jHleCIa|YaI0#-^-=*OO*vga#FdiFLmw}H{@^!ZZF?wU)swt&`? z5=$^{60^sa5TrI}t(#VxRtt3h7M5tzsS6mE^$ypPtJb2?X<{p%EG5Av8R!5*+%i0D zGptB7L_j4e%S}78*zRItwK)haXx-z!6x z{yvQG@l|-*s98;Jy?m1%1sv3l!qRhcJV(Hxq;`(*q&m}eQ-UXbO|kJzmQnjmW}n!wv2UJ2^Yzu1Drh? z`WgLH0sCbBuDjA{Kh8xPZ=tFOBrdrXYXie(7I0JA&+s$YH1_zcwKnc~#)eFGxK}-8 z1a@PtZntpyZmE&CF=3!USDLQ5BH+HhKw7%`53&7`*ysJg@KC<2MGa9{!oFzo{t{pV zbZI?yFc8p8$YnD&*HhEEfECKyPTj&n%MOW-Ehv2x&oJFJV8&Rd8c3c>uGw^I+tqtSJxeu)V}SL99OR(@ zMc9fb-RJNPp8D{*1AmqAF7Tco{T+7xiVqpsjn@Hwc?S02^N<_>dto2`!mR=JXaWJq5R<5P~Gj^I~RF66a_qwPZ_+w04MNDU{(C%ko{oe3^uCxL|`XFFybvUDB)8U z0Z+lGf_)3`#4$7a3tf98z1l-E6DpGd!XT0vI1Oi*G$N8^ zcnPNp{HNv>1u=&ZENDN(ErvL!)Q%u1J1N?$VV>tWPZE-Q1sRHX3dLaWB;3BfaE`dv_vCOB8Re=$Xbvf*h)0h+M&@WtrL&@I2 zZB6yY8!)Cwp20h(7ZYT;XJ*#|0&PvEAx~b%J9#oLrN=X+DZ4YtGUK6?WFs=Av=N!| zN_r}*J%plECg7?fr1jqhPmKF-lKBX@25&0}ZPPwrh0n=`f?Zc& zH()xA*;lDxQfvV;Fss0{ZT2;T#oH`OlNOf#1(5NxCQT|$?4;G(bR&>ho(yjleMj}5fEd`)8Do8ioUmCDZ2)3&99)>j~hqicsYrrBo zX!j&$>*+_HM+_D>SOgYndjU%(k31WSBkf+vN1lIrNcQepU0k{C6Uk5EGlfRS3f{+J TyXU`*CYO#lnt%tq`+fdDp@0_s literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)8YgZFj6x}zOAt8H0ojLBd!iIWL}eZPK0 z{bs+omi0^5s;@4WKfpiIf6;c|$$;2IS6ORj?%X-|oPG8_=Y&^(|M?QY0o)3}Coo*K zi|Oj(l96}r7>jAWUPCoVy*#JeroLD<>ba`z7^Ro)rk)H0`?M`V$b`=(LQLwfBx=re!+g0!I?r=_P$xPnUJ8n9eyi z9gI!CE!Lb_H=U|ImYfq%PF4#>2!3>F2q7%6C-FbdbwZ#=gNlw2wjdI~R)KA;;V!S% z3=P|`U7)*YI1_fUQ86q>Zr25d60Mk%*V{yw_G2<+R6{3%GGt6cKjLJIZgb{cL%^R% zW~I%5h5&*B;c3${W*e17!@ew45a@kF6>n2jq|4JYf8|GZWrk*`quoZzA2zBOYK-$S*vadsEKSgIVaOjYxod}5LX8@ zWN?t*Y=fob*ys%SzY=Z00FrD+w66%uC|cf1LpB(lkD z2-k5VfX@WFUIU%cosx#nrSg8V8^Qt>1JK`0X0`4Z6%BdNd#7&O`f9#fTNOyP$!Ft4 z@luqR?#VOLJ{4}+RRdy^>TwrhH}-0oi|RKvhkQ{>o^>i(6O5Z>*q}M z!zZT+S6gNK^68VU&S!uYA#CDZ$wJ&$lsYqBQJwV9OcT#Q-0o{sy{O`%;yr`|!H^Fcoa75@y~__iRni{X?(HGQFnUJ^6lEkJmcDY#Gmcr=5E4(`jAEXPQ~&R?O%9;vZX|AJDG zHP`)eM2Sa~``DvKlu}$-c!v2Gp;1+S@<&yFM0tiUQc;!tDYxRoBWgswhd5vQl!X!3 zE*??OyWsmJ_=u_$UgIBS20()(EOP*?pckv8;x60gOIF8MB;{*1>bID}cWlY;N!t&& zfge%C&u*?$938~Io@;r%&dM&KK6;#oLH~aG&EY0j3O#S32buX4+quL&*{CKx`LOga D!Zie; literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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 zcmb_cZBr9h6n<{rHiT6X1&L5zw8bO@qOD*Hhy~P|mKR%WEcm+FTyULaH{IP(et^^b zhW>(ntuunAo#{uN>5uC4oV$@?633ZNKO}qho^zjb&hwnJfBpUYp8zhQq#-1baonAp zQ+z5-|0h|@8D1r4I+coJd$|qY@GUcMTmGtacciN!A~4(@zg#vvZ?R-led!8BY@;Ft zdRLwryGE{T*gFK|TK3MIK+GSc@I(hjpK{U=VTV0o7BxEx${<+imapqWn1R@fp> z$MX!aATXV3PtgHZRreM(U7!M&osvu-j2<02P70h)efU}z1WxJbLQLSqie<~STBRu6 zJ4UgrnsrR0TrgaV-qrpk&Xc*yD@?>4WsXuyh*B#vl!%i=XFGxA8l8$ zO=81$0!)F^srD;#JT|vfRlXZcL^zc$aJ`#4ws4Q8Rk?y9B1DpMKG5+H zkKQ_0jXeU4(ju~V1cr_R?oz%Dr{!mjw1;1@{ko`#?+HO zHtI>5sR%*(9;5i<^!6>q@xAU$_9aeaCic<$Tm_$||KrLvO@K2b_!acg*=P`sew?8< zy2#%$0%MD|o!|uTaTES$DncXQK;{L828Sk-kz_O(YhYMIW^y0rT5~O;7fXb^ta9B7 z?jGhEz{iw@a}D4VvO>z@cDaQCjFS~n)&;Vn%1R-v>Z3slY7!HK+C{#4wl{l#sb5g; zNz7<};PNIF+4~AJFEN|he1WT5k;nVEdVp&OSe}h@2Yp&Hu6k(Ts~Bcube4aE{!HM@ zP70wM`^dBBBwo?u99?PPn<#!oAIA-5k0K;vzfmb6Fx}&-tX2A7BYoB}h1*2NcgSM{ z_whYk+{H6&Dr&Y#5NhF&nz|x{si`adnVLGO8&Fd}q^3@IX^L3FMM8~}{~3`NSjQl7 zhiKI(^L5G>BfsDgY>HW=NY0Sr=3e7$(Btz4eh7i>aJYf{VK#>vcr5U*xcy3u2Za0( Yr|<~FFmM4y)rlTpHaih?%6ypr07Yf%b^rhX literal 0 HcmV?d00001 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 zcmZvXy9&ZU5Jm6$NHhxCTG+=Xi?yYq2myneB&EFQ>`k2uG?}a&~*{Rtoa7jq$sV!bUfKwsj0pIO`5uM|aL>yTO17 zi4gGuHAXL%7!sn%NK6bSQXB??iP2z;UXU2Q@rH0oV!ZJ}B0k?aZBNT8S(f!ZeZS{@ z-{*V(PJjIO_FVvLals9TK%J533m82ES~PV^>j|jI!GJN8iVeojXo9Ll!s%w);2uYqa`}jp14L#*odm}h?CxJ zsPvpvW-$}8wK59cFJv|_I@Lg@}L%*6f|HnuaJ})+oIhKw(G*FmFO59VqUgj zyMi5P6qwzorJA&4G!YvzCuzRdmsj0Pz1?Wy*c@(jBP1p7uvZHx5?iAt z2hr-`r}nP@ulZB<0ypo#Twg7m>6K1#!@etCyX@#xot; z`$AyPwA>dm+3N_U3Rh9J8`wF4L1t+2medp;2+mB-+vCdoGDAGCwYF(=C^L@ zos{KOw@_A9eG_x5YHniQm!`o2epbN6&j3Hy(ZPC@arPHdv(z%f3wV*==)epk%qJPh z!2s+UD~$6F(Iw>IuKpfM)mNBToyOv>ns2de91G<4ntNE5#)>p5yC%eMJg6SWlFR|I z{&Bcn6L2{#z%2sS+Lmk6SZ5tv5}WCPbVE!EscQK(NiZ zkwGeCSpNc->GGmWEO7bnUVHj@LhK-P=Qsj{?zEtbve0~bIg>{dqKqcHEbqGty>F1b za?r;Uct~io1#K>bu74K#HKBVf=$=C8>Sv)>2yL~Xt%cA)8hZ-}^bp!^LE8(VYtrZ} zfYuV)Z9%&Wp)AGW0;pN-nlz4fF;{b|YbFtO!fvlW_<8{9*k1MQ#|F&DW~}1o_hTz| zVH?`89mn_*=tCn$5yS;F;X~}iI6}Be#An!z8nPx%R= z;#2gB>(Im(I4*8e{(ye*Gh*Ta2E^|;As$iw1zr4uAxA0Kg&dW8m?v95J1TtAaGZl7 zb$#gPs9fc5j2Lg`#5E4h08TI;_fbh*h`OIR&zA0qiQ7%x(=3iRk+v;ximIIMfT;^p z*O}9enYuRWF64CAOse$DF0m7CTYWn3mVxe{s$M%f%yIZ@_BWFA;< z|0Hx*UcDD_{{W}yVU+bg%lw>UyfOY7dCSaImE}8|E7W9j#it==%^@Q*YsZ-bA=hz+ z)p@QLxySs)S$zZ1o$bG*6O!aD4Bw!E19Hn*v@SCECDM9_R4(%u*}MGZb=jn4Z99LC zmOn?!pP?n>`p%F!NbD4ni{{hI`FLwX{ literal 0 HcmV?d00001 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 zcmb_eYjYe&6+JEOLtc#&TaIkjQj8swSdW#36x$@;V5Gzz0Av^ebMHOf@BHUCcL5AwC5a}5huz|QzdL)y%6r$W*?zOM(C;pK_JV!gD)x^Q%u;E@ zbxNM;cpMZ8+~yXOh$-xAJgB!1&zXy!Ra9uoFDmqmH*Tx5ADBMtx`nJl;xXH?y%P$j zyCRNh>oa!ACW36l_xCW{J);mCap$ZQn$c+qj!I3o~ZXmU*xk^Df&Zg`=CJizb!vH|3WU_D3Av5V}HqNmx*r=*s2B zub4|_f5CL-`=`93?aXJlvhqyhrtX<$GyyG0E2K_Zi$yDMde&SD9k@S6$6$GdEKc3#jNH1H9z-$MJEm=-)Fd+d3~ z^vXp`^44Ww7w&6C4>C#gzIU+(&hfQ$Fqy>dt5p>gstJ|HHQZ~Ch)-t<@uw?w2?VUf#ZfSomZff^_?Z`h-{%(7Of zP?0`s-?QB_0`;PSXYpw!!sG{q`y&v9CMkV>E#@31FQ~<+L^W1k<4UfZ{Xvw*x-qLH zh~^Eyn zNLEb}eF0He_@H@+kld(5_gwN|9mu&pEFRw^%P#j z7lg=w?RI$pHsN0W-lIPq;lZOkb__eXw%^~5 zooM5X2jw=VF&T-2CXRXI`sUR!?Fv}wY}<3=4Q%iECAPPH=q>C$*ST{C!j=89BH#Mn z!UN~hu{G?`J0GmAr(-fo$Jcxl>A2pPSi^zlW69gtCA-s!_T-?fznoO<$#mlGoB#bc z*AI1c_N8O#csfxwt!zb*$M+B-8e}qjM1z`6A$E|-5n`!i zOp#yHuai_EEGyVFMV)V8hX#5^fZh)3@JX56!PI#Tud|A$njyR1#<`#IxZeXlbwxHy z3ESaeFP8X5U1p9e%+Yckb=eSTR)Z4ivbaF1g*x7t0lX2;1$wJ?Tg7utb)2O1ryJzt zC2e}Qzcn=7isxa{kdg~8F!&3`D`hmKL!6VSSSp6h7`@Jio@8Xg#OR6cG>stB*B-0l zQoIhuLs}bd62+^mms_ltFEcw|Vc@T!3tuJUud_P7rV)xf(07P%Nasd^A7W0WZe(QZ zEXhb(B1YuAhH7VwW5>`xff zPf_NY=)wsv;$ zSfZw-@%DtTr3uxZNXJD>@8HFa1in-w@bl{gPVzDUeoeSl5_pFM{+0yZC4s*qfxjn# ze;|Q>B!Pb-fqy1}YpmnH@I|tQ7w`^V#$S1@{SB|+@2tIl;OkryGEe#8hh(mXWUhu} zu7+f;hGeeN;!%?Md?2j}63T1Sr&UX=BqSw`P{mDE*8_eh{*#^XFO9(98M!_Ei;r(O I&YE!Re^w(>ZU6uP literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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 zcmaJ>ZBNrs6n<_u=-3M5MNwqnP|&>~6%d(}5SPUnb-n~}2EKJ$#gfvJwu8if;YWXg zUo{a4n)n0!QO0vG9mTAWWo^$r=RD^*=RED7zdwHin1?1qVpw$C9o1><8cqMuXsEik zr#kz-xo3VfT(xQ%R;%LJp0C@!S8*(h!W>sdoMCWRKhRZ6w|CUnB3(u=!(=y{0I8dv zNtq1N`vZn-?eZ{<;+p#mg^0M2U5D5k$FV4*ch$5_e~sZ~E+Xwb3oXKb0c^g`5U)5b zBZ(N&3Q`zkh~@J2J}?X`kdfd|R}}Oi$&jv@w(+XH*D%~oy>--~mSIBzu~MYq(Ap0f;h8Jn=#j6`;)pWj+xV zUPdc?$4K!9#@}T=V~`ueQ{4K3eqr3^#xKllku_AzoZxN@+;NQjS4x+_DNRx-V1?*t z)Wa$jS;I6Q;~vUbrh7H$9&IF`S0P&>UrLlc!GeTv0=yTXNO*uUibuRV@6t!=Tf7(HK2_qb%BPMIi@8~X_g`P z#g`s?(#Q(5$Nn#$2z{kABQ4Mz8i_6O>bET;JrR*y0=;L)bn-XTSp^LOjm{~<3`Y~U zEDBZ&s3pS@BT4d&XqMz#1e!uCAqOB3RB;#93iwOe5~wd8rUQxNQ1EEh1jA}vfuVpn zEl^W%P`V?XZ&YzFS_P_&>|w*AFs60RN$;?<-mhX4HVafGjjS#G5WYUtR&-E~)25;w z9RkXPZpXD0Grv02RvC{UolND{Da{HXjBN@YxJ~CmK2>yKJEPUpAVf%Lt~mWKK^oU7N}UDU@Jj zg_r`^g=Rkv$iUM2jNJC9IE2HjS1pra6at;)P^GG=NKcVXL_!=<@vuy&-!=>9r5;gP zDt!X2%hazxVm&B`F>y}7Ion8vXN^pF*vJ&B?kM6CYOR9f0_!UdC31EqXVb5)r4*bL zSW{lK<<>eD2HTkI+xNdO}0^_ z8js^i1y9@-McDxrPvL1+ZdyNU_a^leA(vNOQ8Wdk?A(edd&%Kk02(&R0CW|nF~R<1 z=^%smS0N zRu~mwIVqu$o@lf!DtTvB*vJWZXDq{J-xY04cLFmi&dRwM7)zR2-JvbBI;-MY+4QxO zTK1S}>Ba12<(2a)o|jj=&K0TId0BZcs(49W@r~Pac;Z$?E_aP0Y0t@ zcVRvSpWgNb_`l{K7Xn@`pR2g5LJewps*e9XwA4E=G5&Y)P2D0IhuYm; z3nbfd4QrMVYaI96h}gyZ+a2WQ!X2!`dfu%jt-G;-n11MVDCDas7*%|IFhj+CmLm^4L0uyhACE2N$txNWQ;@?gi{?*q_J2 zJbD-KNNf>DhZz5{V~a=(E#kyb#{&8nFc2rgV7I4!bKUp;ZtpzeLC?1s5%>XGw=d|+ zV{8t-dF5F^ zVirBP#EE|yhw&bc;1iDStLVd*?4EBB!y@ANk-haZ&;Ck;-*6JYqaS}@0Dt3@BTdFx zZ#aU;5@^Azc#YE3paHMr4T^Ju*l#*=4b$=#-sZb0_V;DHL#Z>c@Gehy$mk5-#|ISm f5;=Z|k0|3+e#bv1FNK_f_>_2lV$U&B7q0vVgvVno literal 0 HcmV?d00001 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 zcmbVOS#uOs7(F+cVUo~ciA*p~5{x1wnS{6?MkazGfJ8$kEQTHI%rr^kq&v=ZNKo7t zgg48raH&E| z*od3Anoy6`1`;q7Hs2eeXR;9rYYfD(N@4Ao?O5aUvr|^_s5w=z6k5jIoLQJOi?%!m zn=x<3E-CD|E4`J3r37`e7Zti9ZZG#&V;9Ve=0L%8rU#CAMcbLq zM3D*yER(>)3WIk;t}-rXPc<_oV2>Dh02@|gGqxn~*j*Ae5W+wbtxed3Zb^+Eg~L&) zQAI857a?-kAD!5efNSpvSF}hcqf`n*H=tjk?eM(AO0|R!^RIfU)PMnnRPcJ#5#;3u zM4TrK^dim5$XlhHBy%WYjA(FGL7h~1P`fZ;7R_0U1zrVI$aIf}@87pG&oXGsorwUU zS1gascX}0dQrvsazz#g4&^TA-OD9GZnza*0FU?t_PRU^zMKSN0lqwi8uvhZBfq6Yr zFiRz|yWha`7-p+-=W=W*><`-De%mVKeTzGzEQZwy@A#-M85qMsA5~jbI2%z;;p^d@ zsALMKXhz)18aM#T6L%LJ>D@7hK`v*l-+IJ5k>#j?m%)r~q%8g$g>(OtVPuM|K=HVN z!$Ps%_RcF9TK2Jg&KEsdOCYP~S;p7%jDfQ_7erA;*&UTvK73#0thF)?oWv;-$%(Pr z!U=3CY}D)yvLD;Sdp5+K>@iVn}X~gt$GkXed z?p1|XqI%PqIb{{12I9S5gi78gQZQiS0+WGrzepF`BDC>MQv}P&vr){LPQIWM$75-g z$uAp_3WeGr1!EzsM#N5d9Nfb*D%yZ~R`)UnQuTUFH(;FzzG$EbD&1JJrybLqFOqoN zcJkI@IrFPCU!j9_y%G_DTPr5tHt+^6Glm6zEzq)`2j(JC;@zW~R->Hz(7?NRk6Afu zE*|kr32h^nnl8^a9dYN2IcvWy-x(c#m4&C>Hi;j)IP>cHNyl#o`BLGknd<}^_}j>* zL)@45t9#S8(bU`b8=8ONV;$D=ca46vofn@*6FcTQ?mg@u$9lBzi5F#_(wM9SppI*f z%)tCX#PqvOy}zQlW#cWh9s2{DPVlK~36JsvklVMh^=Dr9A)ELQJWIHp8qV;q2XMTA zbYS`u!U^+?*hq`z_Ul-uar)%xCYtrbwp!41`w||n55sm+5@48;?4dv-Y-IZwhZoS# z#`g^WtDa{no@ekRp3?L(*iMDSb550j-Vf9wMw>%ILKEsJ(;KX%x3iXBs;^@SL$NTw zEjm~e{5?c|ho#Yy-z51R!!{fz{s|27S$OvPxD}p5*oEDi=a6PB0uO1%_1xvW3K*ZF zoFZs4V7%uT7hS2oCG4xmok?+qRL(N+=W3)$Rv?p<%!f<{kV+;<05s3Y#R-(sK>cm8 zTX-?R;=>Zg;~}_d7?`2gwuY08|Q#7T{lBOo|IC&Y~nLW$XZTC+(n;g!0OI17x$BFpfSX3^^3tFYLBDdcEX z$@~bcFAFuT`=OTNI3Eu6WtxAJp?+(HP?xJ9$q4NxxRUu009~eA606R(*k67!_t1lJ6G6&u2Pz7H4*QuIMs<+IK-f3xLk=;otWcFGPo13G4>L1cJP47Kdf-6 z@ofKJ@Vk*Gl^4kCFZ#ox-B@&51Up@6q1_fwu3ExEq9zu8iGD`d&zTutU?aX{ zv%Jpi_=;q{X32enaeS-YIp9;NxRcdcA?{==C7NYC{RGZxXQi2BwX-5<7Ozw6RdkLM zC2;X{P{6Iix8=<;VX5G^!ePC^9{U|z_4hSlZLKhB#XCU-w`z0=D`!$9()$%8CeR0A aq#ud&6OnGNfb>xX=}M45AJfA+T>THc*Wlm) literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/MethodOptimizer.class new file mode 100644 index 0000000000000000000000000000000000000000..0aa907283c0590d6b65602d2fe387ede18120df5 GIT binary patch literal 2621 zcma)7TXz#x6#h<{HfcI77)wh<1QeR2w?IX-2@(plG@9OM2{zzmlANZ4$xPN{QqW(b z4?g?sTH1=NrSJYImwTU?CM7e~KFs8tGkbsgJKw(K?|=UI6Tl7ZMi3I1w(MHkDnFMM z=Y=e%^;RQoH65d2d@t?vs&w|O>iW?>g0R3Pzk_SGSk;@3v;`s!z1cL(nn0@HH}0aZ z=?%H+nq~zCZX2fI+!0t!26(w4ibl(DEIS)u5Dc3t3WV=lRT)DchBQQ=30(dE0IA|2 z1V%LUV?f|c!7$}oyHS?*wqCAFfq22H==Gv*8@%@p!_J=35}5r@c0H2P#Y2sKfhz${ zZ{As8Y@e^cXquLzJBDRGkh^-j?g%83K|*&8k7SGBJQ+XN_w{sLH*4v~W~<$7TDBu8 z$I@1yOD`*u@@<(hjN=_v?1DgFl7&34;&13S<&6^E#TUpX^Mx+%mSa=;v!&Cq5*TbA zVG4*mWvnV&6&BeCNyWt^R1QQ*U|3Pw{;nzWX3Hdrf_S*eOlWu;qfw+N#?u(4F&n{* zz}emy8s?A|h_xKuc3MviXHVc<(oZE-icu4N7{NSgddf1_a1$SqoV&(Lfyp3He;khT zv4&5SBX!mgGPoT970!vB=;d3(Ra~RSvYHj@04irC*0Le%RadP{kXn8Q{*zQOf<=Mx zUhVF+je1qutnPgc53t1f((7%xzT0!(bv1FaDL-}$ckz(xZsi2si&1<=Ih_+2(6EU|0#V0u>sDZt`lD^4z$CEu&`YPTMA~{i?17 zCISYI>q7OZr0h4$s-!w~Z`U1x0vD-nPGX`aZk^^Owa}K;wkvYk;E6ffGx+9MU|gXo z+eiOKGzEFo(ke>ph5@G%*7s1J_`y{Q|qXQDex{Xdj1<^ z9VVZX{1=t~lxx%B6vcbEj${SUnjyu@D;ZDkFkm?88#@!CXK-j zEZ~u1bkmK{VU+1G%HXjlPXF3xF0(KgaYI86<&6D^~}>k y;7fd^R2BG|R-7q;Zz!LPsiRD9F7q5cter3Dx5r9C91B|UO2Q4mB~c~!5ahpgPg@B9 literal 0 HcmV?d00001 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 zcma)7TT>Hf7=FHFH4s;f;UL(eRVwBLQ53bt;sFs;35ZZEpw>;Yz-qFaZZ?Yc+}iW` zvRBnBZ|zJQw9Yu*b*7!^-{@8ULhbWy!qG6($z=CCyx;pi&-1?DyMO%q+YRHyoKn7t;;0NYQ;GckuF|P@gmyE=(>K3OEe3G*U2d0E8q(O_lNro~&m`eGZ8vp}?6x!SChaX57!JLIH{1c!}L zJ{lswpd(|Fp}k75$N4*j(-^=A23_a} zE1;I3k8)Q+ug6(hMd-N+`*4QVUi#U=)j?O&J<6uGm9deh{Ix#%USZWjdX1%FgjQga)M0 z$PU^@;CuLvvrc+(f#k+l&=_2zF^D;rMgzKF;2LQ(GB?+eBaIe%$-6W>vSn5C^A~qy zc4wF#GvL3Aj>oVkgU$kO$c)`A<8~SE1V7-TjE@NSfooWQ7rk=-lM4Ejx9>i-xhKEi z$ymiYb;m2(Y4p{-XMd9~kFI4oNtRQrnrT+nCG_Dk`f-KaF3YZnEYdE^NCn{%%Ncx2 WMuPU8)nuK(PM4dPtKYeW@%?{3g=8rJ literal 0 HcmV?d00001 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 zcmbVNO>Y}j6g|)JN8(J|Bu!ERq0kbVIB9B{l7!Z6XmD`r;G|FoL!p$8?TIsqGn0-d zKq-jwB_tLIA%svt2vtZd@CFGv5)}xE9lrpHHG(}GR)}+FY}pA?K`hRj`|f@3ocHd% ze*WpNZ@&j{6sr*g6sB#b6u0xMM!|j2$j9}{dfeV{&2{r-!-;2C9Mf7eoS~#`Rb1V2 zllJ?uuDaIG*{R2Tv$O3f?uS zFg%jkd4HIHX}1 zBMKe$yD!-a{jImJbMgogj4JGIs%31eBvOYpjN=HeRi?w&nvWue2Sn?rXw8dO497(4 zL501o{KDdqPqEZZ@>JQ@U15Jn!*QHYXkQkOPoIin5+{ZJl+dSyei9E0{b}}DE4|0# z@jtSyFX!w{_Kpb5X?PSVW}xV~e1*9vW^q;&(xNaY3bS}j6f!JitAfu|FVUigb9kJ& zsJIT9c>A7~zR9}$-INkhoX1iG*=+~%V57@<|{VGQlhD`};$lij z>>4H*nv~G=77}7gNbDMB7@Cz(atmj~l#tjp%vb4NkoiIlPi&ibH^W)Ra}v)nJ{9^B z)2$o)HACCiFd^us%agg_ZR-nFc`rZj=g~{sWL{U%i8TzMjQv>WXyYAR!A<7iJ8a@- zT*a@rhClEM{=};)jMr2LURV3@h8o11Y7}p&INnyL@UB-eBTBW$HeIgU^|^n|KLdcnRtEuh2*cQ&}K~T&zgx01WRq M@=v2sVnN#f2B~nqVgLXD literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class b/libjava/classpath/tools/asm/org/objectweb/asm/optimizer/Shrinker.class new file mode 100644 index 0000000000000000000000000000000000000000..bb87a280b7bf747db7296fac2f2e3b230ed2dda4 GIT binary patch literal 4058 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 literal 0 HcmV?d00001 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 zcmb7C!A{#i6r3dlLuepCLqmbKz$FNZ%NcP9#*vUv65-V9b>l9Uk+Y80YYM;C10T?j zLhP#POUh+P(}Go$*%3iC_&)G&H2F$U zyXpnQPS5lEU9FrGwC=S-Hxpx;4j(6MKm{E$$pk^Oef{bfNRjaP>@Xx)H7#CB^ZX(! z_)mgw?ZfN0taC=NVTN3B<#bCUW(Sp{gJQx&q~{Z?{98w`ZiK%vb>?ZL8>SwQmr7aY zKSXRIlgx^B(|bX4Ru;{-J-yJHk+l?3k*Kb@4vO+|xo9J}S{}1Fu|EUFa2GIYtf-O|BpqQiB92ON{ zn&CCYmuL7pG}L|7u>yT(t7sTpv$$??!{U33O^cfrKcHp$w(OjbR^PUK$KozNnYvwk OHuyzzm37Z#-G2d%+se`a literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class b/libjava/classpath/tools/asm/org/objectweb/asm/signature/SignatureWriter.class new file mode 100644 index 0000000000000000000000000000000000000000..ec5f52710463214cd0940e9276463db1873efced GIT binary patch literal 2981 zcma)8TTf$E7+t57%hbcr;qHJSjF(avI^cNYrcgnd>0BZRj-wL~v@BnQ$`&;W<>s#k5xBvb5R{#Sz zSB-#y-i*5(%Pg$g$^3@B5VLY?v7EDII5MH&`tys!RFUKy( zvT9Tr=sOh5oRf3%8P`C?LSe~3YodfTlXso;@%s`7Z}wW&*1`-lMfR97+%qRy>ojo$A<=1`%mwx8TpTSgXQ%Q&yD6*{&OKz}E`*9bKWj7FY4NvW!Q|DX zoy|KL@32;)OjtQvT?*1&#woOD=aR0Il>s*529C*l;!ZIY22@Mqu4`RW#p*!%Bo0J7 zVd~X=H5*Q9F=@FRS&dXM zDW+GG&!|VxKqCjaXW}A8XG}beXXwOCrr;*+DMvgPjk}gazbHi)byV=D5<%39M~W*a zAo43;ISu(r8~EDDdwf3mJIqfLvJMDGZ{b+<7c^YDg{EyZ|0F9~`THnuh$H{l_1RAM@g zDpsCh|7XdNKr_yx6Bp2fi;}fjA$zRkz=Md8*Wit)$KNMEQ+@PDVg(=+RPhX$@pT^1 zo%ia>A>J1EOxdk$&4&?^-1Btuc^{6car!jQX|IDSI(l*s!i)6rB_BeSMmVJr4%T4# zDoYv$bmg3bIoOsC^=1=UWD9)!iiPmt_5ltY6~Tphoz$gXz+qQ2TS+S6}1R2gJV#Ui~?*ofg)2+~DS~ zC~p3-a>rG+e&d?|oooINuK7QG&@CF8-^w2JbKZ12mD|CaP#Z@A%RyJB_KELp#`iCN U-~Eja{NtnO)auXDz5o*c0R^ZLGXMYp literal 0 HcmV?d00001 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 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 KDtF|=%l`vKNI=K{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/FieldInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..ef9f743bef4c70268b17ccfcd9bb6ca810cc8a78 GIT binary patch literal 996 zcma)*-EPxB5QWd?$0n&sXbK4>g;FRbaSIj_R}@u3NRYzkCJo0P7|)0;^%vcf#(G^wf#$I&M64 zR3xRd?aM*06~w`A*pnu50(Z|*KIz6Pay|7^ERYXR0vQQZ+DGo#bp~$GclK4}2mMWf zT;L8Rx1NkW0pqbB_-aewQKNNM{Xdmvhp?wKSwt2WEfi2zMzN;~x2LC1}Jou|c|I`m_Kwe~sBe`->EKqDM^v?Cx| z0)<$ry(HHju3K2dHA-C1lOx6HH~vE1k?Jt)b^O>@VYJ!o%wYw$P23V#K5OBW*upA` z0;RD&JM$%w@x}rx|7;~-_N6*_H=_A$qe=V4{qQ*Q5Ni-PFe08 zG$TUNokM1xW2Jy1uXD`aB10Wewdi<=RDg+ z89S`+vJO0)5>UfcW?IXkl0Q9Vkf0;&LOZMKmz}t%qm;VXqDHF>yFS6vudcNJ|hhn~Gi|J?#)_^w&!%E^z$`EKKD*Fe!+QC5p literal 0 HcmV?d00001 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 zcmb_d&u<$=7=7bi+ljLz{T0A9Nz;b5w(Hh}AA!atkeZqroD@hgPzq)3EM{A0U3S;5 z=otz1&WRi1&>NzX4Kjy{6G+^+_C!wn7r>jb9lQ1BfP}2w`DW*vH*eniX8il#Ki>zi zgsV}61Qr@@E!(JEx2pavtCBUn?X2%wR<>YU^{tJ@mKB9AaCDEXb!)p~xxKWA!2Ecc z!YSLH?KfP3h*_;#o+luR0=i>vTLK44*Ugrht(#6QyXm{OQ_FE|%kruMlb&63Ouy+e zFWfTg%}4StDdNnJoUS&GRq>vc{r*Vd*AxTi2HOFcArf)YKYO}BBX4ALp*^=$~xhXt@XQNmWm{ygvJ7VBD zJWmfj`!@Bab48iDY~V$_#D2}9cC*Q1YNR~+)<>}-aC{FBhHPZvPvR^NPa%w#4Xol7 zI<1r&CJC%0M^@;U_?1+E5W`6W<6=Z#Gq8yB0?8no$EWn_^ECq(q=biTXIw<7@#_XI z%7n1#`>q$o8v=>(4X<&~t~7m1?yzKF9UGLnx5L2@FOfiIgK<@TVZ3GFZFzzw)a(n+ zmO!Z5;^Y7!MhlXa9{O~TyoV}>w~EcjVZO=N$pBn+hK7OWv(7fej2Z0Xdp~<$vmar*kp2k=(uodc z)0qyQNT2Q?o{sAsB+~J42Xpt-%p-iya~66aZbaJc=bz7%+2cG{_}u| z`5{LB5sZ8Qh8BcT7-AGgFya~F7X~23F5V1bu=HP&ckWzX{rU~y4OTrk0;@^7-%i3q6`4~Nwq@3Dn^dWG zpyMcrvv@n%QyvNe>vs^h!px*HGGnrUJCLb>2m}fgVOZSIu{N6m6OABf_K3fyY8ftk zACs6S&>&udK*h%diZ-hG@K7Yu)v?+>>4z%ak>QaNsCSb{9`$6ZZ9W1E=0IlxYu!7> z{PR5>jwGW<9UFlcjsJ9fR^}kt>*-9JB<(bNQ+R|W4~qg%|CRrX>|+@vf$4$m9eWBm z{ei&By-ot&zA`&skNHZs(c}ipUy_qFQXjQ_cx^0bKjrnI97wEiQ!c;L;myS{qDFqZ zj3!|>SthzmhUL{;HGI3kRBP!RGp*%wRDa~%bz4J$XNUb8@bMNkY+{zkvtcJ5V2+vP zStpT4*2{X&V`1dS`w_5s6ZHF^pG{c8n#3zB}kqCF4vz}iA1=Eu) literal 0 HcmV?d00001 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 zcma)4O>fgc5Pjn~2}w*_NSn|Cr5}_gF4RKeL=l%tNRgscsK^C++PJH*Rbp3bCtUeU zNQqE6@B{c!h}m^Tkcvbvo;SNQZ{EJ~&tKnv0C@!wOiKhayS_Eqf^E zsNvyOj_!G=ph{Tms#x~MqrTMdM1N=>ltf|}3aw0jb?9cF6wBW2-pDd`z`pb%BW$<+ z(PPaGRjRT?AGE_7Hn3I3CSmZ6do$eepUzPC zpUtr1uedWbzuKNvQ)7AF@{AMS!h0;>1M2vQRh;r2@FHizeLUdI)EgyaktbkLZ+-^ismIA6)~4mwPg_+IJ2W0dE1}SO+3a9lMv1nOotlY{Slvh z@xfa{)W`?;EB=GH&a}m1AmL$V&fc^3T5Iope*O7=0N_4~afAd5uD4Zkn>)((->7EE z>UT=Mr&OuZ?RRT#OT`fp-cMe zaK6wGMAoS|4MD<06fuLRq=|Ew5yVzU$Vk4Tp)*ydt7^NQrt&tdW?Kp7s;+Id8!4f&n;LmuhdY-Z^U$tn!4T=qfk)%_9+vy9kXJCn0wyk=; zRy_gzRQcO(tKsw=-}TCchVK5liAzW&a082RWKZ1Du`&}k^@yeinnll75b6w0c6Y3h zJBV{I8+$ztg)88ojJmt)+3Ja-N17ZjYh}k8Sjf^_n0H5z(d*$UiYdhTP@Iv)SoqD& z;_xTr3yg62JyM@xWPU(iX7*v$-$F7>9K1XH{fW>J&hwpSA+Su6yWI8)=J~yi9A=p{ zNts|~4k<=gZ~+%tmF5|N=siYSG^S-9eB^1!84I%IBMu_;RQX@@jpAEdUL!iBtBdpd zxctwN5oDj!*NcE5Jw#DIL-d%7cZ<%hj=0uGT!}lyuekON3nBbZ_zDI#CkPWqgb6I+ f7KtQid}wYth}ls110^ThdOgurXv87N2dKhdGbO=d literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/IntInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..f89b8fda4aea18127ed552345f7f6f0283b53ac7 GIT binary patch literal 819 zcmaizT~E|d5Qg9BmX_@n3JCbID550nu7-^_YJwp_Bc{oUA(Fj6?Vdmh+p}p8Yxqyx zm`IFX_yhb=#yM@Xt{=pUHuKJz^US={^!tym-vB(prVESkKxM~W6`jghe~?jE&;Hr_#L^>c)NN`>xX`*)tGp#Ue_X+kZMtZ2B z;lqW`i5BPUAk6!ifkOy-Nh%M{hmp*VM06$zOFb2fv%bg@qpPH?Pm-Ll*}G=4DF-_| zhZ@D)m{8B9epke%=ct`bnN>mF=|q4cx(+izZ?H@8-W1 z`?!l)f0<$hwevM}Xv`&5htHrP>( zKQ6D{tdb*}BNwy$uCqFXRh&0E&Cl>UYgd^2$Y~1!zvqjir+o1lJUqt&=kAx~Si}-5 zpkcPfFcX;u7RSr*EBr2Ni_e@+^9n1!$X=1%;~Osv>S|dvp*j_na1*yG)*J3@Siz&t zC#>)@_XW3W_!Ih?$KIcU1`}w2dst@}u?e#mnF#;@ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/JumpInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..fc6e78364a5c40d117c97d63436967c7580b6117 GIT binary patch literal 874 zcmaizZBNrs6vzLk9WCoR3W!sj2vdmLP#0gLGsZ+SoFfY9``dB@CEL2RcQbw`-fEAS}69fJN}S(NOlrgFq%nBIrxPYBvr=-xo=w?c7;Vr%_7S zxun|Mz`DVB6mn$(bqK{&s)Nkdg>SgHhBcOmFq9)j*sfm!eIwOreC$VQq~c_+;g?Xw zhK<{V&H1(bC3bNKi-ht-=g!^(!5B;kwf|Nk*e6mQeHd}?X1&4PJBRT&3FXU3?`CBN z)GzkYnV1OFcqWrS37%DNly3#T*;wSW$ktmJS-jM&eu2|`aE|gPb{p{cT*^XEIk61~ z&#=tCt*IO3uOw-*f?k@7Lkx_%_=H$E;@c9F^Z>C-d%e#_Nn)nW`?RR!$|{ z#Cpzp#g#S7+iiYEg`e_Q+%oYmw8w29`~meYpdL24eZ7eq?&i>knGKlB)<PJ+627W6<7QG!7-%Fy!c6_YL^F2@>Aj#CsC~kGv2Rt$C8Q1+X~RUufdz*X z#ahW70wL>Q0BJ(59yH}?>&BDOx$qj?KVJ`h(Qri+BylI1QddDtSn1KNd)UOB@O^o! z2&=u!ok(>RUbsOVs4&_sxfx7i+QJlJ>HoZ4#SUgLNU+<9R^J4{@Y{st9iqte=QE3?8dJ`~R^-d0AQ?IP`&OIRqAjq@7i97i6ED6cKAC*7Fv$B5N5?RD0hzM# z0=ry!#_%JD26DV-wY0**b=cUz2PM=aFX1V4uH4)pK`S}8wa_!Scd{-Cx7 tY%y@V4{#Q94B{Vwg${5-$LxK?df=Yl?$VqDb~MD%XS3squ&Aq+z5t`Rnx_B& literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LdcInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..97a2e6d698b9d81ea5859b18573e7af3ebc7c10e GIT binary patch literal 729 zcmaix+iuf95QhJ;L!8=f8qyPoLfWblIfz_ zANjp72?x>|gB`Oxax=AMJexeA~{+XByXClI}^D)D>3B{uz3{;1(Szmr` zxP(HN>zUAD*)U*ppx$e^D)6IaAR>gU0NIt>!S zLI0k%7sgBb6233bx$A@aKLjUIokk-!NCFkb?S^Y%3y%zJ6Kc!!zmjb{Mu}k0Q*B<7 zpiSq5z5f;>7-Ol1pU-(lz24{%%umrQ_T~E^9lNqH!eP2=?D3j({#xS0yJAac%Rq_m z74|+r;{({uO7#+Ev-KUTU)k5N#&zGmGUSZJfdv90TTJVcc}R%YCkzmAQZ+Rdp} ztN9J9SJ>2W2Q@Q52PWPw0Ige~g(rB*Ai@rw<-nJj&&^j#U%2LVcSQ~Y?=py;*?JBk JJkPRfe*m5cm^J_a literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/LineNumberNode.class new file mode 100644 index 0000000000000000000000000000000000000000..5b0abc6e224b5c0592a51633f6ffffcc41a558b0 GIT binary patch literal 709 zcmah`%TB^j5IqAZQmY8~Rz!?OKx5-t#f6EF1aYBh;_|lKKuMvd6#Om|jM0T3;71wf z77{dK+{~Ssd*+;Ze0;vW131K191+5f=hqF-YDznJl$IenEhF%yG%8M8R=X`r`cF{2}aSwgf>G!x(+bWC7Ud1)PSOc9c!PVa=}ayRLUXA9R9zN6w{G8QzP4q?qkN*R#BMXh&?y1^Q?}SLJ zN67!HMbK`&u5Zh8M-7`9QK&;5s2d^A`-$?ABmDBZ*dw*9VI~2M<7tlW8KH2=(hKy` z+A}-*&qzImzzo|oVr-Aup70&Yn8hjPIkPz^!vYpLVuDbHLQe@P;Uz2&WiA*UQGa`- jK1=kGdc{fqH4aoSp}i`XC`DuuErN|$A9kJ70e8`)0ak=P>H zLa^Wgcqqh~F``6C1)Di%X3ph1|ICk{-@XHQ3fDx1p&us`H})=spM4OX%hRcwB|^BP z*yrJxCz5-iIF18hqQl9MWANQlFub%1Okt zSweC3G~-Fe&>1Z^9&t~ElvWi{K#?*E#772p#9%y=k<6Ymg#G0{|8;Uzw<|G@24foF z1x?;W6`K~;u|;V8!MFj2Z3}f6%DZL3EWM6}Yo&MBLIX{8d*8xZ>Dd-6TxV#FWF(Gf zQ%@vsm9|Q{zqS5-Sj*03%HXWvTm3$yo56iwyeDyY`zz93i|jlO#xj*zoE#3uYj}cz zi9Un9EY3o(1qUtSoU7agScb}U&am^(b_~svc$WC$rBoxg7pkc5b)dcvc1W@+{Z4}{ z=}R6{>S{~cYD>y$OS)=Hs*h=L>E)!vZ&*y#j4#zrby$Q!8-C z>C_9{bGD5F-OoDz0j&?|1%Xr4a7Hiqjw*6&!9xc=Yy@}=L5#qwvO2{-q8;_ov`l-7 zx1v2otfuLy-#|5$r>N`NQ`~CKU8-7ApHfwoX%C&8h;stYi8m+OoLF;ozoKX261S#sGyWaU_~?J2es>d%ElFmw=iYPAIrsa{cklh}ub++qyo4S~oE13R!?5D})`0|)z&KJe?r9wwhUMs- zju8xNIM3uL!?l{*#Zoi0w{1Ux3{puQuPI^9>nOmG zMH`J3*QHopRFM?DSRxZRV>(THqqSSJ{hL&%Xj3w>r}%Xhq@Vk6d8E3 zD0r+|5;#9tM*-pR&!D(fuiJa3Xc^bEsgYV9_+C(i7l_? z*X=b&ipzU@`UzN&CkZpW2MQk%g_hTcBUZt1WO+HdD+wg&*E#!>QA4z?{20DH!c+PA z`xwnX#Q3ekuh5i33>A)#FmWI0$Z2$)M#ni>c!aF7s2<`%{s*KVB6F*dRu_(Np^ax^ z`1qbG(rV%Oo4{A*B2dl9d9$)9kp zGO8@Ww{cnE=ft|Qe27e8O1h@nxEjL=G7oTl^PVE6B$YoTjVSmRtZqb{+PFbB^Bj*B zj5bOtddy~{rdP@8GmPPL%+VU;as^-F1}yTb{f|xgKQ?7{VKc(H#;!;cf$?s@7jg3bxJK93;EO)mM+*(GJ{{h)5gaiNp literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MemberNode.class new file mode 100644 index 0000000000000000000000000000000000000000..541ac8976c9ea91fb5d85dd609213243e944cd17 GIT binary patch literal 1241 zcmah}YflqV5IwhDS||%eUWz;`5Bm@nR5Y>1q%oMNwSK@*yFtTqRnnugC_l$==SYY%}wq?C#m2BJbOiwy?o4B$M?0B+e zlx5p13XDs;7qZXvJeL`Xo6?rvErED8R~681vtZ zFk4mAmC6r;n)gDo+G6>?^N>B%&8*tR4aQoR~?iysbdMt6xM7u|L7OIVKG-z{VwWABEe!!tKCrYMsFP|A&?B8P(aiKVy4Zs z9_sk3b9!dVJsil*_m=gJ#}{14_Q);$`n?#)u%V;hr==D}VD_IW0{woIEt{jJww;dK zueM35bjOiV%i`kEuQlZt) zScu{ATV&|1oCd6@PzYFk$BF@y6_N#>@Z7-=YTU7>Sim!^VHcZtjuPr9qv^BE2TVei zWtw(2nF8^&1^fS(`$<#2jAv o1SW$rCj{nkIaK)SiQ)w|Qi_YHT*40={iZbkYeJMo zd=U(y4}JhYlz3*dHr877VgB5^XMXq0-TD6G>o))ov6VwgU^55@cF;SLt~!xD+lfZD z3Z=C7q&f`xO+WJ6L0{&O5x94O^l2|rq2sDwVu5UM;>%E=)H-q|jy-hzfxWLn&mZgv zWPE2Nx%6e^3K&m3-&4B+kL%6z>i@|!x`aKW$pX^2WFn6xChE;bHxGf!CbBT}u4E!N z+g&lS07IbI@_gAo9`$5+;Pi$xRcZyUGweE{r{g4$fhr|JhdYhDI=U=|?~` z1@e(pojBGeZkSlXbxIu9m18BaQU42eM(lc#r-E>&(Otwk?&NS=VC}qzGh!1PDDY+z zeRgh4AT^o@tpBr?KyDz_!TT}Yr|S*+FYE`$p(~$zx^7rWGGm0{JUSe;ib#MzhRzltkW zW~$RlMp8-OCe{*Ghic8LZdsqO%2DK4<|u!`tt|e8zb5$2Z}93VyoycSC6uoX^#r~h c$85^N2bP$%#$XP38#By!pGp`4jaX&<1Y2CgP5=M^ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode$1.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/MethodNode$1.class new file mode 100644 index 0000000000000000000000000000000000000000..17c75855293adc5e091c10be7da891d0047196cb GIT binary patch literal 803 zcma)4O>fgc5Pg$`x^YaBrZjwok5ZR>RKm?U2&oEGie$##2Lu;>6k_Zmf>fk%@b1pcn>TM}{Nv~6F97;zJ17u#OgsGuElF$gvR77JDtIYoGEM-y& zyQ>TPeU@7Bg*N(pVbX-#qYva%TNNX7nBatMM zyRE&@)5s)B&o7Z4cJY|dJXMLZ2Ui8OJKcZGX9*l_pDr<;R`6ThO)b~Cpt*g%6VPQoT`u#czBu}i{3wzCq| z-bc91d9$~7fqU=SQ^1n*8w>dU7iaYkXB7|7%0)lSbGGq_ZB9qCqopv%4XC{3h zTEHUsLaBgTTwp6=wI~#6nxUrpYc$)}n#;uFt*hg? zE$QAh>E3t{zPFmz*Avg!X#v6P@n{xkLn52Vr89y+G!~0zvjXW9_)^inxL``x*68+V zYciVJ+`2xONu)Nf;IrO%HYTXfCN`&{xq%Glh2lG7@%~&Qo#Oh*cF{mCk!#z~~I zxy(Q;uiV63X4lGSF1F>$WIDEum{onzo$GVa*fv_kVOKg9P4f0cK8_|gL^Fvf)!~hr zWFi$`GoYmMTi_juR3dk|V0B~Xc#h8HPTrJqY8P)Hxhv_|5WG0g!A#5+cpDdQs0RJ) zAc!g*&390Zkd78QsIj9(4jhDnSS*-oTxQts$Yi3s)CD0lqFDi#P(ov;MO^A&0wyZX z1rDa!(S;6X*wIA}!kDNF&(kTFIH=RFmtjQ^%jx7XQnC)-fp=;YWmO<`Yb>`g@8HE_ z{TIX)f@vkJmFZ-X0na$8K?ha_aV1?*daTe6uENzSsJFKxnG}Q@%Ro!(S1i6+FsZBP zv>Viq8g=D<&ENFpwj}7(`Ca3aWK7C2M5mV9RZNOdBHPi!K#Rs`yHNCWjmlgpe2a0v zsBy82oYKU6LXzg|$zlbKO4DtI{{gkHFtt=K7PN)14mW5V+$dPo=%U70a~Ucjti?^b z<~_8%oNJTY8nZKusV*riSmBl)H=i2;D)_xB_&nlv6KD|;x@s&@hs+%%v=k$3%9F#cG9YJe>@XSkqryU zx@ncVqcT)}j)mHd+sWtlDEFZWMkyuRYBk+0gjCIsR*w0?Y72fh?o~bau#_0=YZCEf zuLWQ327WH(TNU`EU_k|*iXyBApTK>p!NIEY;Ibr_EygJ(liTqKkh5= zv}&NQ-e=GJcvF=7M_ZZ)N( z!efFt<5e_)WhPnqk7B>df20shUA-}D;iw`|$TV8^MCBmMueHEm!~q3b0T1dEq*_hQWX8n!?y9=xErA(-b)VY?L#nkrCb zHm#BvtI{DntF}E&+ximBWiNXfZPhkus})G9A6YwQRu;-aW<8lsZyV?@!3!>}?9`2& zl>s&8{zTAR!HTXia;zC6IIdfJ4{<+8J_M^yiE=J zGZyv=l2?zzv9iC7=T-K%l(s}4WlynQEpHeFw^nAOqN^)EFs;q#O)ZG;3K}cuenYu3 zR_&AczN-BlrfW7A&CuQ6xK`re78c~B)*4@q#k63~sQyQgbRqCu>R)A(#%pe)+PLM% zl}#I^m^JMb{z^^z5lu^^dgBaeTQ*BwT@Wu+IjBdKwwF8&^^?r`ZvI}GjApYN?8%A6Rhxo;bnrUwZ_RNxtcI>*DNARbVDWYR@?M8Ggr|(v8Q_)3ulM#I|#jaEY#R)7TDq`Z#Z{%e>K$ z>fHZzFbR`u;Kx}9tFeZCr3keWkD$v)h))7R@w;v#<3Jq=>iMq9 z_~+_WFIAOlM?#pGPgQOvrA1kWjW~`>5I**@i`B-nGk=~k(Un)DnqBik8Y{JqOp&RD zlqn$zmb>Kqx%cE!r`%1~kaeNIB&WcgIc&-dM|hm%PFXyzmuAv7zeF5#L)&JV<;ZzD z)gR5}GTETa;cJ2Mq29rViJpO6To=!CWWFpY^moNaj3ieb3rkJv`sI8FAHeJoPU1{Z zc!FLuUYhO6^9MZLdQ3%;Mw|)Zl>Rx5GpY#B)PIMaI^sJQ;Tb`;@{`hTpYgizoCxCr z_FSR$>48iveoaD8t&?n2tI(yoWw15sOtFtNNfFOtF2mf*j~^5Hm+uMq9*H#$A#>$B z0(0dX0(0f5-&~m$=F0Pvx$>}Lu6!3@t~~IYD@&ufvM`z}-w>E99m;DxCCx;He;X+D z3iv1=c(7>*vzj7>I@SO(SUR4*O3a=skcy*nfNoO@nBO)cWw@ zeF*vvz~^lbm|1lJ-ry|%iMOnhf1?0@Ha}a1^&5Z}&IV`JY3_Aa2nokqb|t)(q5RJ`%p( z-VXbQv59mZz?HnQ)fHi@J}Dqf+7fHsfGPGCUlo>bdMIVXw z^4q;gAx$^TW(f3io}ajdk!VSRpWk%l3B&>i_#4D4SU zWg&MGvKV->P?YV zSJayT^HJz$Dv7?oAo{beqNR$WtN&l3A7J4zb(rO3RD?WanEgX{xqM9}6W*5Dhw*t6 zA%BEN@-oJR_oLm-L-=EN5tI2Itk#GaAKnVgJr7^NW(~vtb{ADqLHi>VH&p#n>SB!)3D5siMKGO=3@$q&z zFQ%Tmj*8JJJ3_W>ybW;=(s&!jvApOgi@feCy7jT%jC40IX&J(E?t&L%nlu@~O?FW+ z(Cds4wXY7}z&DNHI&OMLDOm8Q+-+QA?AzVVtU`b8F0F-ZF0H_(=B#D&M4rvRz<2U8 z%Gqom!AUhqv-f-MV%o{(B^B8GOA}|x;R_~|b@YQGn=eucW%GyJa;$leFt@dpiIB~< z5uCE3!~VL!5MCN9ejYW4bf8+UL`YVmMy|pHxf+w?8uHwMneuLJfT;D6 z;tmzj-*SwTBT%K)r4ggF*0Bip!79@j{Ech2FB`#WlkGnltD`AdvWlL#u7W52mdMr< zDp&UdcC&dp*73UrUX6BjuQW9b;?>e7Hc=nR8uqPvlhM{D!SbTE%kdxhPwF;- zeW3Pe9`=GE{1^V)Bms}KR&U=-7FtG$=MJj$KhL9~c^GfzG0c{#Sxjd$0H4OzWrxUb7Fl7 zqkarVy$god1w)%YZL6!O;4R0k4%h0q;X)OD0)Yd#*n9Z_EDZZ+71aua1I-QLfYocJ z&*52YmMrGT0NQ0cR>%&llAYMdaj)FQpL#xs-EupBPxufXT}Uy$$e z`m#JBKb0@ZZ{!J&$X7h|a?sNtPkLH-ZI`D!UGlVNogDJ?@VZT&_3V;C&u%$lvUv}4 zmN{9-W{xy-`7YaYEe}IldtPJ(XyeE$%L*g3dsfMXyyxRlq*j)R?#Qe7^P(OT{J5_; sI>BGSFXkb|&!fi_^E4of3-?(3^Y{2)9PR2AxkN7IRX4eHyaH2x4_)gT`v3p{ literal 0 HcmV?d00001 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 zcmah{O>fgc5Pf5ZxN%L>1W17vN}&=-s$y|YsT2^PNNFyua^kXfR_RuWU9C5%`k%NU zwL);<#)Th+n6(QCr4^Um`FQi*%>bnneh&d&p@x0j<;atw68F$x&*H2S<(Ad5+H1IfrSzWB4(F;n?F*K;KB@Km$qJTxPqG)FdK7d7JMorTQVbX+2LJ|LvGmbCL z*g~qN*HuhN)x>*WOh6O2|u8Xl-*AveYg;h!;iZI$m zi0GgLDIL!?f#ITv1~hW5ON0<;Jt8ikNkAXDD|Awhqn>b1QS@Sf;|x-UQUG&VL=??Y z3}aNl2<1`r&J}S5W0Z{QatMZTX*WpKRINSbk>7`8ygGXU6AYadtX11IsbPj~HA8|d zAkNTQadT)9Q%LYY`FzSWsqE5Upq2N@_)~_qjA7{;M}?g3_-$v1Wo%6~v#Mk8F(@BK zynTaulc-VRdLu)9>#yGuPEXVHL#o4=R0DNg_xA04)^H8ac9QWdPxgk0o0zB0xyEbV zFML|SB12D|sp4;vB9?HQLGWz9dkj*|ve#%uGggoiaED>&e1L!WiMWdv>Qa%@t=b-j zP@%{$^4}bZI(iX2Z155t1~*q!CD2()ju| z%_PY%c|^3(zm=>vWH*pplsoYD6m9ZA2{C!Fgid+7gl_pWdUsCIU&5un$ai$fAGq=n zL*FodhRG1N-_zp|rs+RQdjf1y*ewe17#+x>8{0(f2_~?E1?*ymZp;M%q2MZ66xt`u ze2r5M`5Gt96I!HIn)TDVhU;b0MS8(~2~Ot>a|~awu+ELd8Ez4&Dbi!~b<)>OXUh$! z@Qe`}@Qh0EoObsGZHVgg8V)f3@Je76_b6fuhI|eo((hxw%wd`&=NxX2z9SKopwU0d Q`*335F2gab`L`bY0!z$4*8l(j literal 0 HcmV?d00001 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 zcmbV~&u-H|5XQfCoSG)4Eff+`{*;sgi3?ar+=@6*2?;4QKq_D0(6zHlwm5dR*#`B- zDhnQwmk?f&}x<0pWpXn1fK8oBC)d3+)g{aM5z9}YsT zgb0t+`2p8S|7DsdpAPe`@Zd6RobVA3Q=aw0w(Vgk4mDSrq1IYdYVla4`wRt`NKDoPCNEt!eKvq3D>5sy=QqCDYg#FaGp?5C^ya>x)Y zp=Y0Q-gjh9I~Hye*3NhEN3estSRyoLI(N|)!I;bl?f+IHSR+xS5h|T7cW>{f$5||1Nxhqu z1yJAQLwzM^^Gp@~2Y6P!QI@JKSyfweSzKEK0)IXn+>>pE*GxHocIJb z`nb%td-HItV3jqXuJ^?-E$IRV%h%wP_#M^__L;rb37Wsjc42+N87~WJa~^d{HA^bt z25y$D*IZe%+y}kSX!6(iidz-@4SmCH`)8o;Db&Rpx34$R#{CkyUFbZp`H|7{u}!uC RgMy(4(f0Yc{Dul`;}>56ryT$Q literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/VarInsnNode.class new file mode 100644 index 0000000000000000000000000000000000000000..a86ac05705bde055b4d12cd3fdeefb434664a293 GIT binary patch literal 815 zcmaizZ%@-u6vm&^ZY}Ey<&U5^6i^bjNnCtATw+Log|Wp*_WriqKnYuy_A=sk;*E*K z=nFr9AIf-cTjx-SFWQ{v+;e~DJg4c8pWnU%c!Mn)2H`~%pEV-?LI&zu`VEl`8Y-5u z(HC)hm<+qoskBibY(G%<&QDY<0`5sKAzyVfTZ_88~DMA?N6 zmlIXamq3_vQG`YCI^j@uuLi!1PlSId35%U55SKhosCAw!sPix(Y;_)(YHIo>&k>CR zZcHd8QuWeU_grzYqzs+isELiU&d3c*{BfK|80J!*u^u< z5Ztl8n@>bA24lkJe;X0(GpSBKj(BXdTH|dxAEK)`ko%$D%KVhW*B4?eu*r^0{;<4y zy-JP>9NC!RcZt<|80mSrUikv2zIKb*PnkYVyThICzVB&TVAnSimAHpscsW zFdgXz2FH)!=J*zCgU_sbwr6JmiMau8O!|4 ze#NSZzoADwc4rFeO`sm0W1V5dCiGsk|D9B`;o=Re%ywp{mol^wozLv@kCCdEzW~k~ Bmx}-Z literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Analyzer.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/Analyzer.class new file mode 100644 index 0000000000000000000000000000000000000000..aa54fd6f4db73e2f1c10490dd1bc24ae83d6cb0a GIT binary patch literal 8867 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 literal 0 HcmV?d00001 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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 literal 0 HcmV?d00001 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 zcma)6TT@$A6#jNDggW)f zU*U{T`XYVl1ERf*&N%v_GyW*Ywf8=`Of91@u-4jpt#5tnvd>?C|NJX}1#J7^Vu&@G zyNSlmeXH93!rDogtp|yA)3Op~-K;%s*{#H?*|Mt@v$k*f;9(fPZ$2^;HM72($jc}n z1{h}k3q=Ajgv+^XE?df`jO>=4-mavKvd%DP{IBpNgFl-qb)p6{Mn2WG0!BV}vvbAM z`SPlvcg$cx&*%j`x7Ixg7xYrOkV~c01-)48_<7ooA6g9Kuc1?-8_KUORcm(LZm%%7 zBhdmhV+?OF3@kbKQ<39fq7^>{OmO(1`7wo4KD@~=_U|5uq#UO)Oo>I| zrOgdpgucb$SE1)Prp0wY^`hf2!x2ypa~u)j;Fs;`+{ZWu)%|&n3*vsz=~%}j!NH+v zSYQYluZ}z!Al8>S7IB%uw`;WpQHJx8KF?yiY1em?(c_vR>bS}=Bxo?a%W(o4L(s76 zR&M{nj@2xgJ2e6g8I7u0tC&q&*zzy{HlGZ~?nxK?4Kawsn43ZlCoQx(n~o|8tT@oEH27#*x4bed;da60YMia=403 zM3I!_%p2ZFi%MSNqDeC{aBXqW6B#hkfJDxlaqBtNAZ%7!f92^*iHKgf8G%ZcuB6v~+A7S=;3@I&s0H5~>Jf5eo zAg22eC%cF`G7e(dL7Wyif8dl5&vA1&@GXKJ-TxiDo~P~}w5olb_908XUGGaV-AzHO z?4Pf+{`IyYywh*Ozs+ LoAnbp*H8ZeQjK*l literal 0 HcmV?d00001 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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 p>tWyQqT-%aQ{P*MNq1{{>zVBI5u6 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.class b/libjava/classpath/tools/asm/org/objectweb/asm/tree/analysis/DataflowInterpreter.class new file mode 100644 index 0000000000000000000000000000000000000000..c87cf3308271173be119f511686d34ff26678f14 GIT binary patch literal 4302 zcmc&$Yi|@)7=BJW)1lifrBEwXQM_Qcl(KSFS*R8YcC{C!wFq8dc005K+ugc5OKlag zAd(m_A23FZmnsQ(O;9(qNMhiFG4aRv6O7L}b2{BE+fWmYZO*=D&N=Vxd7tyn{PEW> zzXI5Va~3KDwq&xy(M;l)lk~=&MAXiWM!l@#MD4Vln#j4iXs7MjM^l;cc-nKaV_Ap4 z77T$E$Lte!G-aoUqkT%Xl9?eVXJMH@>&@Gx-io{kRPA)ruGcP58EF|5 zF!s<+2$iS}qZ%QBx^6e^^yWtsPIkafq#S{j-I=7F8nm;neAbJGH{#|5wsqgid6`sW z0?X3Q_@JH2(|kvyjE#YbF(=kiW}`GSWg=$bHi5RK2BLIAxE)OvRtq%VtS6m^aR=@c zu!bG4-<@Qbgex9G1J+2K?j~@NxWdolVS&|ULRC2kgqdpJn3J_VHa#+TBCRxtOXEL2DQr z&_+a(IZv`B$I_L0uLlUd^se*uc z!oSSTON@m4$fxaWak_O0cfrc^zYf3>qgyIY?4~MjQrn+wCdb*!7v%B#|CPsolrHaV z?Sd2&{~$%x81kN*igvp>Z^>QG!n2F>vB&X7GDXc|0NZ3QcrJ{CvKQ2{7wmVud^YWO z1ixB*f35I4!+bQP@~D#?X4e>BG^JAV$NpuMtJ#1Khj9cpW04JoVb&Fe+3$GluILo*VO`!COzWn;|>tYTv=wb?RQ0}m%G=llE-l(UGFN zCf(9i;r3)wDSm1(uUN|=3zGu%^A@`7+=#+p0=3e`$uM4*_NwfmA!SOO5D?=66+@gv zZ&}Q_?-{?NN;T>V)+p4U$!C+!K39G-t)4qp^zF4#28DY;SWp2I7QYy)`NYpI{?_m* zN+~GK^)m?n$Vmm3^S4SZK7=~X!~OxRKs}%M62vP0O64wP7HGJJhJ&rY!!jQk)>%Blu(@Cw zyJRwVwa#GYd|mA+X5;kY@Aj~f@Pmgt0()rRhr5TcR5GzT8R3Sj*vk*`k}&U0Pat1gCFL8DIwrvKEKPZnW*jIJc!d5!^&aV^hkc}~l>wR}g*ceQ+9%L3&=vwb1h zTriDxnaY~dEbdm|_2W6bfJ1nZ|A%?!kMMdYFh;m#t=knFCWGuIgX|`Cc84^qmDKe? zucWpQu!Qv~bo;Q1wane5%|cP`U-4OTDa!FF$0jXpEt6V0S`KUJYI$7CQ7toCN*+sl zIV~r&d{xVnTAtE!O3O1+n%jB5s*LT11noAX6tzZ`!ziZl1}?r+u_o6CbUR3}QhHKL6fRKDVlPLV?dv;4>8X z3~8V8K0ib6($jwQYfoqSEc-yStV=z9o5nJOq^akX9VlRM76*7`%Moa$QaewhA25^; zu?8O%h148`)EtD=Orkwc7{UQn))Z0Y1yWGmK+#LfvJK5LhKAk^{Mli&74XsxBtAx8 zlQB2#l#ADqP%D&IFto#LGUe(;)KiSeosnsnt(PT^!OAR-HJLLQyBw@cqd}@EOIMMr zz$b`Z!^FWEygFy{DqgF=fhJR*kq_mKw$697?WkoQpR!1wvCN;d34ejDBu^Y)@@iaQ zf4az*)+L<7*EmlqOygTz!S@PBzq`!_IL_h}^@PNQDYiL4wNH#9My@Ap9w^ literal 0 HcmV?d00001 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 zcma)6TTc@~7(LV5(xtFm1XNT&i?pS%UhtCCm=G@7SWr`J0xxD-7g(~ivAc!nKk>~U zz>7vg(8T!ck20RwZrXwvc-WcwX6HNS%=y0E-+#XU1aKFRHG~9aYV|F%R^G8H-o8~f zrMqi-b;~kkRXQJB+cg)ZCpVqien~nFOG8AUZ%6J)(~;FJ^QE7tAto?+9*_?p5OM8~ zmVn3$MD40ubp?!qkJ#{R$1GZ2P9XNguG-#Ho=)Y{B~A;qcUBw*`Ze?kq|W0i?n=iY zR00DS6o@aayjoj-TU=Tb$P_M`oYNsNlt4Fz1qM_3Q!14%qhMF9)y8hws;|ki!+Q-B zY8B~}WZhPAuo>~TZQj#7m->X+^kIgq|B*XicD=f+czJrbN_TSUl8!L0E4?=a!l`sA zPW|HvXz0>u-A(o8mcUf1d6A9+=KkGjW=|#%hfe=hr3BI!79*f-SzggEHKnlFG3$Lp zI&@*^4F2>+H)ddJm=)+b(F_S>FwIukQ|+hhJ>7hCN$d%9ZA*7sb%_FckidPU1@vOA zQLk9bwqKbO=FTb{Owge)pD04;S4Q#6=vPbv^8?0uRvcmC5Xm<9 z03tlL%<&n4o)bLplZ-dhTO=a^2_bPCQ2X;#pS)eah? zMPsyR4BsY2lR`S6F*ys;L^IzocECl`Amt?R+6PpA@<0H{&k@tyQ4Vhg8k5t%AXXGY zmd|Glahc>Yd5mlbpAd~4gxlCn^WPA$)FC+85}d>x{_9kQ$8e7YQG(eU0p}cNrAJpB X$CwjnBR5rVbg0%_svj~Zghzh?ceDti literal 0 HcmV?d00001 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 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 N;unTrQeOst`4`qhiFyD4 literal 0 HcmV?d00001 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 zcma)4T~8BH5IwhDS}0YZwS1Lo<)gMmSVXDHmk|_gf{=(IA;iQ5F0fd3n|6!fgZ>pC zjJ)__B9i$1X5ypMs?ciR904<^06b9ZLWoHH{&|9t!k;0nh5@CYRA!kTU`ZOCQk znOxG1;->Btq|^<|$n6x(qMo&!2S(lxO`vhZ*fR8-VXf)2ZiawXG@nZWk)`=m?i2;W zi_^!$Mg)9YMy@33_AD~gH)>j@GtQi3HZ{*{(q54Pc+n6OE}6xS7Vmv7elvRp3v(IwD+*no#6%P}|Q-R)(WcTC&zqer0S z&_CxCOlxhTWad_6p%#}|chayd+ljB5)=Hd5ZpZD_cmUlNk}a=>?nc|+t`gDf+BL~Ot<#{1aF5JrjOqi#W@;i{U~^eBvs zQZrsv6Qh7#)GIB@tg`)4{#~(p=PIN-W)HjC=?>>Mu_n-nNrZ8SJ)1-ix%S~6S=~Rv eICH=_Q)NsBRHhi$a2ATYmpF+7#-rru!PsAYyz`C# literal 0 HcmV?d00001 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 zcmc&!%SyvQ6g^Yhrq({3kGUtAMzkdMe;M_rp;3|?M8hK;x>nZmrQxmEs=adN+rYcahFEp32 zh0&0S5gq1b1U12@Pb^G0LGNO)+VC-rdG~V7hh?U`MVFvq+6`kanGPaB zaKEl)UfJ`Mmdw|Ep~PMEybVYFX6ExaBTx?Z2s*2(m&Nt6dAxEtuOn#sQJgLaO*a?1 z;Vd?vSt}7tE{bV;frY#kF0XJGu6bmZ>d*gDUAVcX<;>f{S)RE>2O%8sDM_Elk3b>m4IN!>?5FNmP-XyWJ|_D&EUHREt|V; hkOrC-(po{+-#DC z;*aE-~Jwe)p*N?0)drDt3Q(L-DAYkLq=~Tni`0tEyIXJ6Vdo^ z%1lMN%z?qU(QQ~}pJ`Y=cm?V|Oy{m>%8X5_2xzg4Wf_TdQ#_hV36!_Z*55WfXfy~c zbR@engNEgZm*r}=Cenu07mXRTQ{1*Ex-S~Zq|JDw%}k}KKi5pT5(1(}V9p(8!c1=x z@YL3I3wWE7yNm#+tU<#J<`sCHZx&#WCnT-Yg@E8ZU~gLC1cTechoZF z*?H(q?>32aRUTW{W4S>hTr3fm3vB+s5zgd=hy(DTQW~7+r|G2{3Nc6SZr0$lcR>wB z@XKenXb51gKvBXN>W;=U46gB-80tPWG-ZMjd9XsmNAOWUYN7j3C!o)+gXyf;btEBZ z2q8?`w>GylZ*A^qYJRZ0v2A;^K+O&NufW54upSLQY!E1$&5D%Ja0fOD%%ic* zMk;2RgXyFta1%|cHi$F`BwL|GjT4~izJQwb>>qGF#0wQaU8v|@~hp#O+%-0Pj zQ6SK~KV}T3&153w!xn+nv&ovCkVZMj4j7iJC;8Z_p$ppt{HaWDN>L_*Z_UG`48B|D z@jiiYE+-{D5ZES1pY2G|JGQ|+5TSiuPlf-yX!x!--lFa^f zKDnXmxSdL%66Smv!DBu=$^kIrm5lvyH7OY52o7oZGM>zdF=k%}N~cY*Nu%rWv~0V> z0t7R|a6`WAsNfk`j2$;iVJ@D-SABS%1*UAdcLohF;A_Ol*k_FZX97yyuWJ~U^Us?y z53qel@RIC}m*x1K<*SZ8FIdW=RgRit8jj-xC#Pi$#(8hye6MY4$~$RB@S28i;v|Lp zl2%7_fWpgj?N5$}SuSNRU)L}uKM>kv8l`~%PUEZ(X9R*XIOI@jNoEqe-1gJ(Eva6V zPTFo50R7)G)7LCL-ns%^$&3{n~uLzQ}t4)l)tzRoF3lGHGiM!~86L$5DX+g<-92$;D9VVyJX6RLZNG zBD7MWktFeE<)G>18%cJ#9-6@N_V78>oP>56wL5sOZx3hr&L*)$#XCqudr7&4GNcuT zpsnv>D90+w@TNfOS0hYqFK)#e$KNo|(qB#JUDS?aZF~3%mWIc%u4L0VK7IuAxo;`< zA4Q?(jQ5P^jO*T}Vn2f!CYc9F=R*wQ0G8wPIWTHm7&W+u&RL^ahEEcVgwcj}t{t=~ zN$6Bn^O8fr#vDMp4dNI|wb&-yuFqFNF&K)H?Ch)0uT$n4!HSh@C zju7UfEU?GO)Z@6B>vB9nMh=mSr*a@~bRloV0}kZd@Sp?vGl<&Ei8~2Y*3H?l&0L2A zc!Rh8DzpmkRTN6X>dD_56yuzRk`HiQG2>?y&#NlD^(S2&oBvTPsbI7%#et((VDBbV zAy1P+bmWT7bHt8eu3lf^oj@-^Tt?rHlHC*7Get}bdkpvriFua0=Sa-+B;^HO6^~#m zzQNF6!EPKyhU-2YCxs_S->Y~AuW_87wITm6@lSgpEA+y6Fm!w|7A<3nrLQ@<6F$`6BufWO^`va74*$HQ- zkrm21#HgClNjpj6KAfcwk~RTr6h1Z{qufpFM}+Y-p+vdst6EmLa~0 zVw~eFcneiHj|kXKm>{8-unljc8{a_;--Us9ki@&}+V8Vve!zBlk2Uy1JdGbQ1wSVB zKOwO{#VPzOhukrj+%eU~a;}ZxbBf$zyr^2rL*IvKZw}k3fU_lSlZ%}^$>|r=&tu6I zl!oLwj)zA%n$M&9j2;@t7sm0(RCCW~I)GnrV*C<|@hgR+%(mg;2r8d~PkH-sJPq+A zHS6(W^o@ftWg-@JM$iX;t^Hy^(DM0aQuUxdu(3i#3H#zrpVod1w{7;7R(=+ zq(5OP{)`&@h1Y<;q8WeVH}UVBiSP5ToPVGf|773%i+%Dw9>%|M5dX<3io-4=haE;3 zwJLxDY{5#F(ko0yF9+XhRTN%%S#(nMB;Tl1G5H+u$56t}y5dOj%5faMh*z^bo|0?3 z93Bkf4K+Sw9W7>JPIKTdQ>*Kd+GoH literal 0 HcmV?d00001 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 zcma)5TTdHj5IvtS7>v0D2!%LpF1=u{9X8OUi3*BnqohGH5Xp!Ns$SOi1{N8ww7aHB z)c%SnuX#&&K~nX(SDSArURks@J=911dBc5r6o?8odmsfu--&$5MN+)H)=DKHt6b3Umg&~Em*~mYUJD&cyCBM?c;E@c{=v5dfISqTUxmB^f zWvf!Rr3SZZ)mJRfk-Ijg5yzNh>yywk8KlrHr?VOKpqrF}4aX-{r=`YdE+1yr0v@Tv zauUAtkV#m|yh3Wj@)zy556Nc3aT^LVxs!|8Nr}Cj zNui){s@=>xmcK!J8U`*&wUcC&o6oO^;c|v^#6HHYT8+c;0j2XSKv4z7VHoZxK0;;f z>9X7Os`hP1WbQkfwn-s?^OQ5rf08RiU#<{!xsFMzxOelHK_6fB^EQP9SD^0|)T&bZ z82A&zFKCG2G}knD;4%XYjA|@~qwo^rM)4)GZGa(-Kh5<^^0>mB zS2fW2Fbp4SP6W_wl|X5}F(&u~=b|)UGhTdy!qV7dmOW(2^*L=J(Jt+u)!3QvZG^3; z%7qB$Tke80CKv}u#dpY@P&_7fkVx*nhd0-OH`c%n8vjEX}L?B9run`p%RV=j23uP>^u?uY7BK2R=xT9fggqx&zU$DJWBud#k-H-bo*@get~d-vRPzVn^$YiP-qRc98aOQcsy3oC|TtRg;R!UTCS@Qda$MtHH~uFa(L`4`tcaQoGaR{C$5ur)%NlV z;Z%A>L7S4@NzSUozTXp7>4Lib^*Q;uUaq}~{M z5f{HpI@%FCjn{D{iav!ihtA@s;|;t?N{sb&g+wY~?O$D(NR!s~it)s!f_19`nG9%F z=>K2P$+cPAYA6h+(kDG=A&ZF^;m2bb#BdZtM-;Nua6PM{BZq55XGqaOhD?hJ3df5o z6w)ig(A(1bQ7WwY%$LhdjT$mNyH+LXEY`8ydYLkeR4iwMs<_swl_$1-O$dz5J~6E= z3F$`hzQV|HK_3k;B~$X$at_|LfgTJ&W!lo(lINdXftb7&#+Hnxn@e`lOE#g=My$F$~b8Myf2pTe;CqK^^?^It`N z6h2po?ERgx=B^A+$CTay16R`c#W$B z_>!qK?gJ7alifxlll)cN#`(-1dRKRFaU03ZPe=~!;&KT04^v$5(T(x(1P5-CX>Z^n z@^}k3{gjy?Y%?Vj`1J^k0bE7D4{(6q0|cOuLb?g)Yx)WJ{2mnZXNp;-PY{>v=l26_ zw8B|g{JWo#%?etvG2jJJq!7DJdL;@dvXb3wKy&NhsZvTkBg zc$anv?=h0b)40&328mX>@+|orJw%WYaNnY1596y{*LN`aTR0yc)4s!1ftS!mpOeYJ zdV!9>(w4RSSDH#_a@>FU>QDbcjt`OvZ5KB~xE|rBWN%~_Ga24 z%U8c&`u?EWJmR!J;yTZ9|CrS-;tKAumL>LQnY~#=5%+oX2_9k<6|A9w2l#?_-{4c9 zkvmizD?I4jGu-tVk-HE1I>e|ha}>$NWehV@KN(tJ{J?sMB>TF+J}M%RJ}mwX!Xles literal 0 HcmV?d00001 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 zcmW-aF$%&!6h!Ao&1xzyA!y^rO9)mL0sEiuSvG7E$ZixpnuQ1OP~s-dFbwl%zQ6Ye zzzG|JjIiqm%YD^o9Uoe;gqGu=%F>B{1{e4yepG`cVcW=E*h^>mIs*h_HJ0wBgvI`F iArxgl4z-@0Pf;c`Vf_bl9V2`I literal 0 HcmV?d00001 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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 IGnwP^e=W&WyZ`_I literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierClassVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..60cba834549e39c77cc48580f4864fe9ae33001a GIT binary patch literal 9817 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 lUai56YAxJP98B0sbg) zf+9i{S?29~%f4Yg-riqc0bHW%!6BR#W)>F7T&H%WlTek5u(F(m!}yM;tj&mZHW_ot zwlE%=g#JHoj?;ct`a*Hz&d(tyN<%$MYNXbEnLx`HDN@J>7aGlD0f4%&jg+`t7~S;(%i Q;PV^y&=E!07j$s&0S+Z^v;Y7A literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/ASMifierMethodVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..43b18b737b0ec6a4e28d82371d5f12077c877481 GIT binary patch literal 7739 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAbstractVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..0f103e2aab67ea458f9c27b89be42114569354bd GIT binary patch literal 2593 zcmb7F+jA3T6#so`O19}jLj(j05~|i*S|ZeI1D4PRh^A>xmR9gmH_Z|j%cdq@%Eilz zGCI!an-9!5gKvzE&LD$j&>2Txd~p1m9Dm<#NSCy9hKKCtobR0T{m$=P_MiWL`vbsX zd>TSPAXRVF()G$kYf)adDrvKMDczFxQrc*ki&nPMlzhuMyJ^dMBZQ#9@FN_$Yz4OF zi$<&vmy{JTr^kA^pfe+(q-AOomxg<%Te30 zF4l?G`SVsI6Gj?`LwKH4cC+MJ=s1Egfxf0C3zk!p7f4n-pO{mQFY0&+FOy7jdD(KR z0wWt>PHcAdt17~{z+ilG6FY&UI*x(Wig-6oS6*1hHs*b!fkCDV`7cs&FT%r=*(P81z)pg^9@Dhb%> zCt$`M;Y{LOm{^KBW-u$TZ?R#S((>A%Q|@-<1P=4=O*^OCg-MiPgivPBJ(i=6GhpY3 zYL+xydZG`~?xdE{@D}GF5!P^yEt-g>(=ppooyvX>lh-Qizz}T>_X*87bSnbs$IODX zswgrmIiZ!7RCUJ@23L04?-1OCFgB>&#MZ&yo6rVB-(&yC z-xzWkxkeU7_=|*9Kiq<@v`R6*26Zo67Wjc3_#;Q+C$|01Wa2i#-Epsvc~^887~^8{ Q;ElQURVjST2myTZKTTdn%>V!Z literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceAnnotationVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..50fc265f413f409ae9736b6bd550a8528eea63b6 GIT binary patch literal 5991 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 K1~z-L?tcOOlvTa} literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/TraceFieldVisitor.class new file mode 100644 index 0000000000000000000000000000000000000000..0035c01c0bf022cc4c37a1fd0d4b616f3ba1da96 GIT binary patch literal 1141 zcma)*-*3`T6vw|83LUH)$_7lwCZd~A#;R{R7UNuI%!Yf}g2~=)q2gUwo0JRwTbgJH zJ{X^T@Q*T{+afF}AwKl}=so9r&-c^Y-+#XU0PqY?b;KAdp5L`R``T&CPmXQz{*5(| zqGw(DyzRUZPOsAveIY$xhsID_6n$j(C1uHJLXu%SnsB=)L+rzlq10R))?i2;3RlRN z4Dm{}#h@K~9Vd-ARt%(&X2>*!>zog6Y{$RkcF$qRHoZ3QwYV?Te)3Y2A4Q+RoFh2j zHc4lOiolWUdXh`wxeN!D<~1L3tH<50bs>G>b{kjKIW=cV6DSSUbIw2(Ybh`k4Cq+W zagU)MMKJ3qQfCo9F^%T3Su2jPer|q6{ugrfpV&~#T5*i~aeTvO{WC>{m9s&{b86-VDIK7M z!$8FhD@|0WCLYk4YOPE*%9O2RQ+?II5P_WZ@SaX$6jd;5BkY77tOV*~Jc(guDHMK1 zEMAkPW8`rX2t`iB4j literal 0 HcmV?d00001 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 HcmV?d00001 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 zcmb7HYitzP75-+uW|w6!>opj#c`Ofuy#`Duv;l)%+kqA^;ILr8lqBQz*j`xgE;G9r zLLMY7d9);LNz()x6e+=iN7M1GopTgb>iMCTESblWsK}d+dj1~gc%j>*rnZVciPb~YsgGx49h5_ zb6E`wddoJG1uLB$=`Icrn^rp)rtO{Cf@uvCjs|T&L!E7!*&R7+%*gc7!kEdo8e;O) zTiKl}W`{J)mWRGYYVIx45V1@~mpyPMPumgmbjr*NAe%c4Yos`4W(&!Jkvc)gJGsEH zEaQy(V5V*61%FO_PlHe3Gq$F)=|YEwVDrwFeqMTVLuLe3XwXrQMh#WXE&X9E)_|GN zuvEuf%#*uiIv+$rSfQc5GA$7-M}sU~r6Yu}hB>|Ithu*1HfUN0jKK_piS_1EMyB7e z(lU1+1`DHU#A3SLjf zux(c)>zi9D5OR0%wukY44Kw5B=>iei@d%xC>*$f3&a?}LRdDoFr#yLTbGfpac7H&}2W5AJ_8j8Kb|atHmDG0zfwO>6nd( z@VH-iOiBiOTJFYHiJbjjQHYIx9di&Cn1@BUYf8?xm#U@Y?5K{Yh;g>U(rwtL!$XiR zDf9=Kf>XKlP#6a92G11CFjBnBBF+Lp5+NXGEWwb3==p-?M|m`Zy68+PwMzE zK0=_Dna`-cR^QxHAusL1|5G|@1~dQe%S*C8z3Bg= z#xGEhou0_UcwR%eGj5A;bpTDQiWm(2KpVILnE^>1r z=MYE9aC2F8&fL?N9mXZLg`>v^D48o-DRW0!T3kcLBWj)a#4-|B#Zk?+5|AFr6E7fb zRbAO?)RlcfU0EaQ%HmR2>RnwaXLTk2>Pk(hD;qVh3uwO{^ZC1gvlH|e;B|H4CKe`Q zizcxo(O4V6W0w#LP9Rt{iFo1`mLIu^m6K?CO&MCv-+F=s_8^GebiWsk*oRf8&X_PZXEEawA0>ru~o6l)nUJ1^Fu&9!d2 z)|(R7A!Gd|gku{fP#xQN1Mh9+IFtxZVts<~Z7B!kxIBag9L7={!AcDHTsC2a9wuLB@adDiCCwwcoSWTS2+(be6Rsl@%I>J-~rP0pt7nv>s_lF?(=LVU0aJ2 z#J10si(#LG#h!!ho`W5(17UwhMZk{D<7EE?0cRM%n9pX3 zeGNN3nh~KKi8)AG1WCD=4&H)xgi8;3S8F%Q(QYKzsOv? zKy|;!3V7M)uGMq*A?jFl53PsHOA)`-c#Xfn>m1U1x;YMW^l)6_*un87j-4EjbL`?U zIg%U~IQltua}01;Dp3zeq9!n^CJ#B2qiQnfO!lhDkTdC0lVNAFQB6jj$!aw@?o1lg zB;!mRL1bmZ)aA=fU_WIDynO`qKw&u)#^oKAVV=yr7>_1={@avkHrbCVdK)}Y>^?!L)d|CTTDh%nDrk51xzIXBCdyuQu&-(hq34z}RCjPZLoi0|Vlen3(EP$7>y=sZq_T~4;J zwLHy!CawAzFPf{2Mr7RQLcQvAi)e=`SOp_P7<}6#fw71y2m9Y}|A?M{Om+Q)&F!be z`7?Cl=h%*4@a+7hFPD8D?mjP<&l0(FWZP~oU1BejMu8Z7s04BA^o}RUJLPei$_AcA zz^_T=Z}`>tTg34@9@oFeM*P8-{7o(t4bM{S4uER}Aao@iy8agcjnUStJn9J}_Ay5m zb&b)rF3+*&+#>WJm*JreAMg5@OM1*D z@o~4hKH)KU%w=wc13Y-QJWnY(^`WB$_`g^c=4#bgqRqf^E#%{9g~!n+ana>y1F!Nm z5SEy4;DvI7pCQk+h;M(`+y7~A|2B7j9rqu68zF515xK2ks>Wxk&NKB=MN>QzN~Q)X zn2J>}6_9`Oh(^8^_o%`F<`W7(sbUhGTO~Z@)|bVljuLGFoh?MI)_{6#kH z`*cljc5^dJbtftN@v=E7SZGU`gSgMkEYA%8e{#*7b_{_fn D;moPt literal 0 HcmV?d00001 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 zcma)Ad3;pW75-jkdkG`plL%oc14T&kCJAc_6PB`SAPHMcfCxAV6BrnhFf##hp;i(V zwN^yyih|X~B3Kld5V4k4D;BiYR;ywcyYHo~t@-tz+V9-=m`pN*D8G5jz2}~L&Ue1= zycSsErZN7t7$*KZ6p#J7d&OM{aNT9LurtzlfcdGB4qjp1N@guZnRV?WinIvQ*UiLC}lB-Erq zE7#zj9&QT9XL2aNphkmpZu7cO4jdTZML&2o45$b@;Yxgi*-2}aev z_MkJqAso{%sp3;3$OKB6hC%ri8-rVe7JL=qSiG#fphkkYT!I*^;j%P?f|_h-$nzo_ zIZUE48r&S>{sa3uVn)$WaGi$L`58i+8wti@%Qzp3mX(*+%`LCXU{n#T4@JrfGR!0k zTPDGd^kO(h$kQk=3+%{@{DQu*gH)1f#i?@bj;ka-~_4a%n8>x7CCwXpSQyP*11*H{Lo@f<27D<|B zM7`xGDT@K+JixL@3W;qyoQ*|@dJzMu=2FJ&g&8DmwJs6fRxh^UIt|`+p@v8>8d5VF z=B8J#7Y@l?FX&u|aXmG1UPFq#6xxjhppU%Nlt@d*4nkF|0;f$s+>Bd1__BsedX&bV zA&T00aR%F@mX6Xc)Vj4#v$!DX?M!vt&X!b`BcR^l#hn-?%~ZZ|F&%dbcz1j8RoufQ ztv*=2y(LuM)Yz1uuZVMojiq_Q_4n_FY(&I_4jLqPVIk~2W_sWAe4dq_K=Pau4bUWV?;jR zY9G(W>*E_3X(|374dss-hGqU%snm7+nNGR>uNt7^@AT#;p#R_?4=|2csD)2)9slNy z-~XKD&8^Xf(1Ng>!}Btoh>N8QViX~8APX*d_>?6FUHm_`f#5*^ItFROO zpW{Oo1}dX0UZ=r{050W|n9~RbF5_Js4B}NBEaeIZ@BIqRPUIF2KZYSaZu+aK8C*D% z`_59Xe3rTGiVHCm!<74eD#9#o%2TlI{vc!5>E2gp4j+-{%ys3tJMp=ba0EOjpsmdF zB;Xs-i7|(1V}(9i*_ZQeA$M9tZxwL!xS^wpF_d%PB`S_(mfvI?K8(dU6^9S`v=jh* zDk4eGhXNGRmpqxAb*U#mis;)we-xucp*)^{+$mtRft+#Es;w}Ai2C9pby zYl{+C*XGg)inVtd9X!TnN`Hk%inW;@NZjjjh>hUH%T9#e-QWg?uGj5aFLVuAO-eugC zz*o+{?KbY?o8P#fCTjTu%9HVs+G5G8Tr zBv31X*+#4DII>*c24!lVkxNREj6~_1Q;Bn!B+u}h$7ai;`%{GlEnPHyJi}4L!p2yR<*%ReW0g#)0 zfP1at&%>X{Dwn?rrnTUpETx}k#r`>7YCGUJi)82s%VS%0a>5!*7DD;9h}R`P$j&Lo z33*b1sOdJhmg`Q^)HM5+Vh2Vtlv@bKPD0zpQncd=+)C(g!vfq+4ew&BxdSykU9H7k z2;pvW^B%6)O^bU8=^osV`|uzhz!SVajfZdu590(&@?GlcRXmO}*oPlsKi;9mS)MsQ z#Sg1vyze2+V1^O*-}TL+Jj0ODho=~sB3#FDC_Q$PSLaNx-ajmd7xqowZ9lt1^wZWLrn6vjeq7xokgHs|vVG<0mpxX!`S9 z)O7;yn8tf4BfC0r)---0Bc}0T%EWFp@oO1rb85LxX3CDZ|C1+8K$=yZBc*?M0a&kt*6*c}6aH?LuwkX-j z_XgZ%o|6esmwD9gevxLa@wb3ey$$s2gJBxyI4JL;!&+-X--ldlLIKOkBLr5p{_`+B z+JnhNA^|eqiBpX9HEQWJzg=fYgV%}28@Q5XUCP3)z+1%P6tQ?);c%4|c@l?c5{Iab z1M^a>7tS`}pCpN7yV36NgQ?Pg5nne)c{;NYq2?T_O$LO!Y~5ry^L3uW7{&3A$Z=9X z$?_OKr(|sGJ`-egMgyBgFcEC O&7F+%KU|xIkN*z}VNpN; literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/ASMStackMapTableAttribute.class new file mode 100644 index 0000000000000000000000000000000000000000..f69d0d4611666cc5c5c0b8aef09f0ac41da10943 GIT binary patch literal 5483 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 literal 0 HcmV?d00001 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 zcmZWjy$ZrG7`(4)t1kK$>SA!Niw;f}hk|=rl9CczNfX6abMOItC^0QU2bbfx<9^j+-#F8}D%h!u5JI0& z@q!cFp(|=00lkjW2IuoX8?MyBXN(;iQ-(9z*A%QUPuL1HmMhIJm I$YX%<7eYols{jB1 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/Traceable.class b/libjava/classpath/tools/asm/org/objectweb/asm/util/attrs/Traceable.class new file mode 100644 index 0000000000000000000000000000000000000000..bfd9350a6eed1c4a93d28ce99192e923fcf472b6 GIT binary patch literal 189 zcmYL@Jr06E5QX2MfLa(&VbsEjHJyc(#sXtMkcB{2Fw3HMv+w{O%D7;n&15p~=bP92 z@dU8JID|)-*CyvWDOGCkDq(3Z+}c93SZf+S8A+8ST7?)AW~JPOwNyDD`vk$aorADi z?EhkHO;P3BHp`TWzW2WKAlGPlCQRbGHL2Pa+9jty#=2_=2!w%q5Fm&25p)|uH$99# DykRpa literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationDefaultRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationDefaultRule.class new file mode 100644 index 0000000000000000000000000000000000000000..af595a35fe965fd0d5e8c1151ea4dd489e2f461d GIT binary patch literal 1399 zcmb7ETTc^F5dKcPw9qb65eni36oj@=7B6_Kmo!y_Nzp`16CY3Mu`F!QHoK?D4>Hk2 zUrZE(4~A!dlyS~>V;hRe`mpDgneUtVW@dl={_zvQb=*%P#_-VfnwDGN72E2as9W4` zSqCl0DsOF8T&aXq8(cOV;VqP&E1!tByyK`>9Y-W#Fswv{&>jp4wPX7WYYh2n zM8^_2J+P&%9uZkCvRA&wU{u_O7y(1t#1IlG#4&0jiD8DZsx8HfPOC1w*SxMH8?UjnDpC4FdMUVB4 z5`HOPOJNdINn{z8BC2I#8s{nVwh(&^6S;gJ-OHfRr6eve%nssh3bo@lYPN4H*Gppt zmrPv7EJJo*zYVki1x4_KI6cDBc#knUoBE72GB`^+ z6%yw{h&N=dDW(cv34y*tOdMn82p1U+G1r4jX(r*1B1dHJ${wItXp9B1C*Zwbl1~)Z+29*D;5OtAkbnpqC`g#wm XKXuI-!|h literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationParameterRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$AnnotationParameterRule.class new file mode 100644 index 0000000000000000000000000000000000000000..688a8281059aa14a9ac5ee230c13426be9d53564 GIT binary patch literal 1849 zcmbtU+foxj5IvI&Y)Dp#5dwHeFeV`yyZ~wxO%Np-E(*pfp4=ouSWITA-3{_vRw;@P zmgS=#W!bZ=1PxZD%7@vx?DXl=r@QCJ&o5sA+`wxM0fvW`UC&yTEm3vfiAvURn%UiE zBb#4coU^1Wq`P3qT0_|5c_}T|a7|0D7`D+AuCQOW8bSkS$aD*$EEsy-P16~lWJr~| zG|Z9FeN&q5EICVdZIvoB@Hwj{`oIv;(SzPFf;gc=Lx`cjWJgfjSjnmy zjj~~zYVRL%MVBGpt=oS|MM3mbMBS7O*OH|zW5>ug3|Y^vy0$6nIS*cG?-;w;yi13b zmMffGsvN=~L*Mpq*&`Ujh=yT?xRS5aM8_GNWeC-UTQ(XkiYsx9zf>oMFwWzmh6@a* z+VqN426bWUxP(yxB^r*PGls$AK#L)ak?1wyR71GJpzWBBNm_<+6)6qLKcEYi)ewf% zk;a6&s>m*HFkC$j`3PO#E~h}R>9~$8gI+lR^CJ!>Q|n=>@>?2i5@45grsFoIi2k+^ zZy5%XM>SgZnk1)ThT&o--lA|fty-C)buBxBY24Lu50vv^rGR_bH0?fO$R&$MqVnrt z{kX1ZTlpR+_8WMhV-^n;-g+P&y;$>ZEIUYiD9f$rH(ivc#b6<%UGe>@|2oaUMPLkyUp%f{lA-2 z#lUcaA-rm}?5cQTss|z7@ep2DB2u{(r4;sD!*Coy@(r~EJIu6t>@Z27L3(dlG^(B- zT5$x_^F!x-w40(`faXYg;v>T8iBHhq(>8#U^zEff;BU}RYhA4oK@_KGrflN05Aodx zE@WZ@`-lhd8Rup*vCH229?!(a{nNxAGSfZj59Ei&9wxtG`uqqV?Aga1jy>FOdrl)v zo~zJ#4RJ0o$~Q1hbAoRoO=F6inBiN<^S2(mSueDL&kiWy5%M160c_J{vyvowz;fXmp6_Fkq0KI={&R_bZh7A02lo%XM-RM5 nK|;UqQ4@4WC8Aep{IZR8RAc2efK~6ihF3JJnqXAhWyF2~vj@?3 literal 0 HcmV?d00001 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 zcmbVN+foxj5IvJjSV&e0$i;X=5iuJs0WXL|(TE~wxJV#nfe&uT7#5dZD!V}+^h5jt zpRH09A1r+Jqbz$iD@z$HQ$A$p($n4Nbf200`1$o4fKe0_gc!!`N;z#8H^sX9N)*$& zvz30mWu~+FxhdOnh2_rZR>>5VzN}^0uI?JPwNy2Q0?shlsIT;3XmU3Ur*DKo%Qfhj zA*Wl0Ww?`+EZMM^R$$;$c1g5=A*LdNrYOQVrb0n8Lu<~k#C&zDC@RZ(Q6g*4+3UJl z&?|;q`34Fhd40=gLKQ1$<#ab{QV>qd;MxkLq zL5c!4s09^+7^1>#3-OYnBYBwBf~Vh%f;7Xq`gl{O?l=V^>)MqVhB2z*3a*k6WC7ej z*bEa#uv!O(d)nvYSVYj^WVl+%VVO9v>&F{D!O09pDWj!tc|s04=nIWxsFS=%$tVA&IR>^$za4oI0)HPcLs(d)Kgjs8wSr_l zqheOJCcJHLD|pOsu^w|>y<&KTITiC*ApLrMcp$ToHt6z}8o%rRdpjj`hGPuTyj`uV zi)lkX1YLFS-mokPNqE+>M8y-5pi&+W_{g^nBNQu4uPTej{X4BOun2{ef!_|cckH1ng!#et zGv4G2&h4UajHf;#x{KsQBoXgd*&?u`KuQ7kP zk4JmRF$5^1($3e=%Aa}JyK3hTvd3%LwQ{)$nw?x0h zL^1eaeDtLdgh*sJCOfxkZLT zZNR_^1+AIF^wxSWtp1Y zG_1Pem~tI#s!}e)gF$KkT`)>zsKMK&U?}HnyT-nuTZU-s+n!^JcEu-=KDfq#UiE0R z(e=1nDb(W_r)-4L;VGQKWDFAwSy{jEX$@02%MfpK&$oyU;&BMPBEE2Rre?_O5+gL%cltc7$vMTcyl7 zf3m6;KM^QBhdBQox$>lXgjofLDE3G)6b|(@66za_s&7$J-}!{g$Djcr!D9isFQQCY zEs?|o`8ZB{3Q3v5G|g1{eihdOVVg9{+|tJimPx@8ZZPz?lk&Uz9wX`ppEG-W{x@gZ p$7g9!#VP^nES-@Rjml!J^|1PjC0Qf5?Z4M?hel~JqdvTg%r9qZjzItb literal 0 HcmV?d00001 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 zcmbtUYflqF6g{(DTG}p95h}iU32k{SK2WiUR-(bAVj`yBr!Xmt+gaS*BK{H+HPOFd zq8R*O{Opf1-n(t2T1cAsp*u6TGv}Op&z<@C>)Uq#S8*=^L*TyW*KDu4qc+1=s%p!i zZtvG!yR`9S)zhKU;hNN2uJR{KT6>`k9Zy%J+fXInm#?2ST$O++FxxE(pAd+L+fFdK zAdoM2d9X-_mL2VcD@2y-`c%FmV6J*wDhYwKg&xFHh@sCy0=)tQWk;*^M!l;1=d#Mm z2Fu>2bSu(#c-;z`ELY$`x3nkLin8dbs+yw(=5pm7xhHK`>YBX~`i`y@BYduYAouN3 zNWp3&R6#Lc>BTT5qGesBaRz4-7!k;F={k2?IEV8By)_j^MhQ$ELzVAjPvIgiCvZt% zx=T|mjAD#*?JD&`U?|rP`ZQ{(VgeHa6P4S!QTa=8Dq9T$I|iy~k> z)>`?it_%Xj@gc_p5B&`-{Wzd)|%zQzrF!L4GCt4cl zr*E7#!F+=Onp-?a8X26Tk?g_g7Q{;;Fex@RJ2-TRtbz5yXM&>N0WSQ&_}n2T4IChM z1l-S>%(qCI?=WhKVHR@{=@{l=lcXd@Fif!+MHlGFY-X@VBWI9lGF~Ib zLo5m$v8DKb^8*IVj}cS0x&IGSCPEb%P+gWlWvd+&RK(FA1|6C`R99+@+B{ K6x3rY82k++_IL>Z literal 0 HcmV?d00001 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 zcmbtTT~8B16g{(@elJoB6sjUBSh}TU0mVdXFb&aYQZW(J_i35b#qF%w-6BsWe*F#q zgNYx(2jjCp%6MlXp~*th#Fv>ncV_On=iYPw{Qdb0z&h@vVK6-K{J!mV_hm19BfGW; z2KM2=wOhMSw>=d~6+RYf&z1gCODQiDq2sBJaEJ1t8V;ThU6}@FsE->&|6oXkFP&g% zjlpV<`LRi#?mNl}w+O5{_Ajf$z_-0UnFT}ML=veS5|}WNMuuUs?I^i39CW4sLUeUz z#kSWIZb$fzKA$+bPM4uIF6?=wA`;22>^q8~QEl&w17W*D_3hozcT~R_h1azY#G%~^ z$=Mx-GH6M+lTHTh z`P#}ihwP7q3Ld zJzg(fJ+_jyugHDJwcn^T%DkLBLY3nbsYJBjz69m8fO)bwtutgdkSu`c>N04$6?(19kT(!_qSsrv NO}p+4qtVzz@gKVMT$lg= literal 0 HcmV?d00001 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 zcmbtUU2hUW6g{&n-&>2&Vo_^VDg{crty-+2O$bS&3D(3K-UpcA)@9c0E)@Ma{sR-O zsSn0yf0XggiYW#&?^?1~3!qiaJw7t)K3%p4zVK?L zRt(FeLGr#x;tFz6tT1F%)uz8Ta23}WVm;vp?O`a)pejwX$FNEqUEy_NSffOTs<{c= zLOzPy3>$Mc$-p}95YSs8-Y_f`Cz)OZ?y5zx!H}QEn=qE;S-#^Ys9_}~sLZfGL&da+ z8Ei=uP%*HDZ6!(plbC;ljq_B-(PUp4Vyah!#i>K&h?T#!jlr7Vr2l2BQcG28fgy41 z4BU=5w3LmrQ=_}BWH1=dq!ez$=AI`=KxU%ue+C*m1Q?>f152gUz)%!|rUr)Y<8<1i zlSX^8y!jc4^5z#9AL*#!60H&X2)c(wiVYPbi4-o=PPIg44Dn$MT&<*+&XLt{R7qbC zf=7BKedBi&E`LJe3^%`{uvO0Kx$qf^=hzJ4f-Orp(1(cYr^x6dtm^Nur@s%_4}#RI zV|JhlGmxgDUEHO7aLMJ6a20G+tXiZAq=brv+EgmWQes1?r3S$tb(5~)nBENey9!Ouxs}35EfG z%ksu&7}CW)59a95CCj$_1qznx`&7Eb5Y9VyWDE>(0}%}92w~8GhA6{O(X!?BM!hWE zTcWHoGmB0|)Jnp&)Vc+RRk{qb{f2FeLup6KvTE53XH&&(u`9AQVOO(jzH8alTtKMw z^~7Fw(I>Fn@THeam!cSvEUnK(`UrZ&?hMLc6r8NbZHD|Z=A z^)Ra=k(`ECj;`JCty*?jcv~xCN5?GY6!APmD5ZROl|kE;u4g&6(krKaUQ$sD=~5gE zcwNI~hQUCsZB{ zPV%i8xP^Bp%1*=E`j6d5Nm4tR9l5v4m_WzT@n}95p1cSB0OK2KyoZT>WbPw-fZ2_GoWB@JM$8Kb z7~2>LClY&OpYG%01H2Z(I^p?@nGa|lBUdu!mE*|OjCu7qQplKvS2#_xFy`?&Ht`-J36MeWH`T=i h?N$a3C~rP!=hx|tGLYlL;CmY%(Wt72UMvWh{{kz6%`E@` literal 0 HcmV?d00001 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 zcmbVLYi|-k6g{&`Sqe)_vBg?nwF2eUZmZU6FeXh?qXuds1{1#xFrizQU9u15Z<+WA zelY#)k22oDH9)8dG1<)Ane091+V*s*yA#&_=#3C3HIu;O(Lq$@Dh8V+g&9ud7&}#|z4R1+h>6+8#R+GD?JcpMN zDVO1JUfSsfk@SU@=$baePN8$pZ0_l0=Ruv#ci(7hTNTh(x#AvsbJ_@-slc|V4m3~}+-R4;)I+}5#) zI}B=9_zd|;-67DW*moJ0#@IE}^JB=7Ae;9@0^2BRC@^GXIkP3}D51;{Bg!VX0&-)D zH|*CWZ+Ml!7It*(!XUxC(_vV*f7kzI1w(uOk^9dfk#>_YWJJRW z+_rdT%5luhJic970E7O*wuO6aanBPZJvsFxu}4rUy=<0B$&sf>g(63u?icBFKqrOv zM5+7*@lyF4^iOnDutaN=euDZE%M|M}Mgl3U(7u8+u7nV01Su)^< zrQiZv^i|T?A@T}_s3>?lMvqHkwT_&6I%3%TgAy_j9&#i3GTO&IC@GNe`yp$dvL$O& bYJMa9_KExsIva>W3c!czCFLy$} literal 0 HcmV?d00001 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 zcma)7ZBr6a6n-v?EW)OQTA`7>m@Y`IR$56}YHt)+X<=nGt#Aj{S$3J-#jKC@i<&7L zo2l`0KdR|mKqaLahJn53o;~M0=Q%I@{`2D(fJv;#@G(r=PD!)Z)_K8u&(}2Ft!SGS zQ=41PE!dXFE$@MD6;1Ap+}$kjs%O}iyHqo|3_nAvQ(Ixd5b(-|J2JtL$aZL$CZijM zWq7j`Ozqezk!SEP*hStAhOmMz1VWH-M1hPTLvPlw_+qWH#+_&Snm`uK+6CRr>y9Dh z=A~c2Ww_R9*aHj^c8Oa>h5eo5luqPB7{GBE#~8*sBtyXo#K>vY zt}^tii59Pq>-9^^7-Be54_5OGQ_JbqAmYTKUMO(a4Py|)3Qpq;c`0#^VYC%m(@9&u z=NKXflL!&H=M{`%jG>#{&DDeaC*MpE2`Y-ES9lQPbSiSU5X1#Cb&Zmxdo_m?8bgTh z^_h%GhMxU&vWDx0F@ehpu3(CMxW-2+o}?x+;`*wBYq-uJd-j~;=pPtVb@ebwi8gmK zs9Jrkie{axJ@@Kn7Zq(IEKfabO>`;kTK5?KU~(97Zu#WU24t^ z!!^7d_sTYPN=41I;B7+agu~{texvN$G9qc3Y1WOt_|kk}}ew6on*hvGa*;!+IxMsy=5l64X}9cFig9 zdxjYIV~4ieMUfSQlCdoA)XT&PbI-p!k9v%{jdmxCM8r;^lLVjGDRkdW(iBNPdWMtZ z-w;ZUe~0pgL?3$SH$X2zdX8Q?E8>hWA~;IVqlluf;ey4J2<KEg|Ue&azw@u%7|l;xKpu;1Zn-m+#<&5)P;E(pbK;gV2S>t9^(lS vQYIS>X#^u6>1l&1T0FjbH3EX@rG2!mM2l+puw4IrhUfGYTZ(Q0e;IW#KH&5 zXFtMEvFuq^KoiSY6f-@u)7_`foaub~@%amYIqb>sFwE7>YNlQ~;AQ)mmolnV%be8o zOm1&$wQktlus2nsqH}Y6UE_LXx1neO>EH!LyWfR2!dZ=Qx zT;`S)Mjv7_`Wbo!Tg~Sc+`<4upvvu{syC>N$ri~H&G|#b%AkTF3^N4DJLlwM=xODi z4`77YG}IaoV2m6rt!k)t!=&W|eW-A&9KaM+d?Y}K*a?9w$*|ZWUNf5O0CyY-W`js$ zM#eP5RGUIkkO2wHQ$A)GZgF9&x@uW(P0i+JHiWylCu5#SXpVmEpn?V5X9yi>mS#J` zXLujaH&^hVJ8qG!9)XjkDDu?>&NLPkJj4>weAuw||G1%FaY*bk*LjVesZes0+~{gl z5*bOk|8L4;VENyD-QWxoH!6Q5c4eF>3WU!TtYMwb9o7#Sy5lXbQ^qF4P&3!ps|{lV z&lS8tffVg9z9#ZYaq*Vlwg2>6-2Fc~89h58+77zuy?Vne^L0(Mgx;p+HzSy3Q1XVs zO-Co3I1OI5M9fkciMlF_L`2IW%L|WaIkX?7)dH4O^j|e4GpP+o8r3W`?^wS|o zL+B)15jMhzpo``%L~+v%@!bgr6qD&__c?k!IK%Cgbo7p6FL~3^(F@C$j*eeg{$$Lb zj!wFV<4bb#l#n=}i$A_D9gR=;B793;~#lp*n5N}^LrIf!~M&R-&mI5}Aa6nV>yI!R~5CHV#a b+gGu!^DnY`u;Yv`@rq`l5c&ziE}}mHpccl% literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InnerClassRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$InnerClassRule.class new file mode 100644 index 0000000000000000000000000000000000000000..474e744d2beabba2faab308fc842498d957e802b GIT binary patch literal 1433 zcma)5+fLg+5It)rb}kMCLlQ!vlmdZVz|ae&1dtF?MWmF6Ql-yMSfxgeE!ht6Ta_rN zedq`DqpHrDNI`Wf`DJ%zc4y|ynVH{ze*OZmiz5{h!=CH)4Yzy6d%+Fw8m2!mZU?q; za`Exhbpq}LXQp#$b8oHXINUq6P2c}Cw7H4|LnE%Q@L*7aua>{I!%%I^pP}f!>EF3-@G+W0y1`o0r#8LP6`Do z+wAqY?`Kg$S;agocf+tef$DJLzIYbp zYi6(oL&Y{Bk4As;QNs>)sn6GzZw2GIWjL5nT$Gxqr6ndx5G(w`eIfl%IJM?<|gC%CX7+L9UQ3ZoGW{4C1sj({7mZ)U3 zI{?e)#Uha;LlTQb_B3g4Nt5W#*6QDpsns8#eIr%E6rBovf;^3Bk~JYCi#%rNo`H_p zQHTc$tdi}h*3jpEpeW%Ui^mQ9MJOL68v4seDcR819wnuAhs+%+qpAzoqe@GtV1-^2bS`3* uq$KJDeVrsF4~q0|R78bJ7Cb3}g8ea?rxXaDB)kvL12pLtouXyIA@si_qGojf literal 0 HcmV?d00001 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 zcmbVLYikoh6g@LZlQh}1X>4PyuUeBduXbCtR*48DP%NYhMk4raHW|~cn@!n=_HPM3 zs2`-C{TYJ(4Dn7}NkS?t!ZI^=*n7^o_uTpR>&sUF+jtlUXV@7yJ$+yt%Z~R>8oF@% z`f1bn{yb*Lpm>np_FBtgO0G;!ZB4G zTt<~#hTX8VlMN#2GluM$Hp51#c`V)v-4b?BZ+VVs_v%AX)n`|n>U$nt8onppdbyp% z5-!J)V^|N_B@N5CLKUA#`G#S!R34*yHZ-;#$5n>(P=)WAmVPKs61dKgH2<3Frm%vW z8dhtd>5?^6P-RFEWm{N2 zxiP^T^lO|qxJqFS8yYsDlVH*9GAvyr_?5DEs{iDUpstg@%m1>1p%Z@O{&Pr_-DC_I z(Hi(pNA8pxc64iPiyR@s$(oEn1vcCberbLAR literal 0 HcmV?d00001 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 zcma)7-E$gM6#v}|VPV-OWZP7U#(o%Ez6`0gDMF2=F*Q_@DydYhI9WMwUdakWaJ5wz5imqGOdzBpfMXgIgc+tvrY$x* z&8l#28daH@UTW10t715&lznATrpu5U_u4}UQSJd@*BNFKrMt$Ck+lrFk=^nf({2=! z6%{jhM!`vj^J9Xc;aS8fXuH*BIFU#WMZMAEub|*LhGV_UI-Y4|H;i@|a}3Ika9p!x zM=^_28cyR3g=q+n;oNX;ew2}cUu2jbR3UqzAsiKF@sfsfIL{C^ZLeZj9YQmZNEX9L z5_d+8+Qn6nW{3^E`xvOi&C41VkY$KaGAq4z{|7FLcY!#yjiw0WB00Eb!#2E*L*ga6 zsBJjZs$pDaP$?0=Q5C$#Fgd`ZWV&7yITSQpkvRul^9vyr%NpLmn*@~CT5%lXbB09X z_ECJ3BXkO`G8`W^_!LKo;I}la;Ti+4-D5a4qLEfD!*y>tCS_buv5xBsiVSl{J7VZX z4ey}DFtKC0CQ-PVC>DoO^=}_XGa~7JUv6r+fp-a?cE`PQh>?RPp%GJrC7J}goS(z& zQuhaU42$Mxs&6}JNHQ=gF=*P`WQ+|NB|BuTk3Z)l03By{^`?&og?eSH)p2U#nkkpS z$s;>&K~}|}6>VEMJq85jJo(>Eh(&7T0Buwji^)wxrvSLzG^CG^bcrNR&uA+B0BS1z zJ+$vgGWzp-c!6Ud zXSZ5ECn$mp*;6+#*P)u)1z(U*K7w~t&t9H-A7@(e#BwTIVb z{FQt}-g_Ubb2GvCL_8E%;*l=imP+5y#m1nf1*!r37ex85nB|X<=D#7wf5#esj52?M zD*pq!{7-zv|H3!??_TZO{rddcsZzX$GF2bN*Vw{MLTeUZVh-;UxM_TbB%OjZxpn#@ zD--N%xP^;!3eopEL0%@rs>q{4`Y?7ekIT4cgg{C`A}Hbwt&>&i%CRNeDg7-T z2udIL06q#a>sSh4BZU|5MLXx5IWyxQKX1PSIL4_4h2hxqM}}uzi9z^TSOyQq#?9C< z&UzQ;o*N1`e9hgVBm8QYTf%uiafF5pLwngU8NrYZFYTb(VQ6%h3^Xa|h3(qmOCqZ; z9o6VFWX`>z$b+G%V+Gj)RIKXIkYiZy+OBvz8C$~tz%8k)-1P?B>2u$f=lC)s?KWUp9aWV;N9_3jnF=7z)Fkq~zHl^P7^)LGwKBd8?4#K>K|1~jjc~>cwo;UFa;*~91uaX$DBiS$v z`Wx33{<*`0Km;027!Hz7rHW(7M_$OOLx-xR(x|giNzMW7R48%|=sr)UQ#vWM7MrcF zC^TE&pnsvGf;IYP=@HZ^)@iTHJ&Gt{gVqg{aVLiOh)hILX-;vs*)DI*a9_a`doxrO zEYJ#)NS$F*y^Rp}=20;ssO`7Wj94mYp$(-35_%Z3)F@gel9d{d7O1~#l!+)XqHl-( NZh&l7hG%$=@-GZZN;Log literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LineNumberRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LineNumberRule.class new file mode 100644 index 0000000000000000000000000000000000000000..2bb1138a52440141e417a6addaf74542bf37d677 GIT binary patch literal 1457 zcma)6ZBNrs6n^en*0B{BQ;-)C72F$xf+8YCl#m#g3{AxB`z^Z}C0%RU4*3KAAU}xW z2Y-N{Onmt{#&gS(Dl5sp^uFYt=Q+=F&gr*5U%moZ!!r#jh7Hee8=iG64#RiCGI-E2 zPCJgVd$7OfxuI~w7u;<*!e4CIu6Wt)Si*nZb%X|$p*Co&j9^HIM|QBd%1~(x7-&+^ zw(Z*C4w01yj;b^n)IF~yhQW~2F@$s$3PyBj$S{n>Qr>V&W>#o;hump$-V_gPE6ofhD1C?Q z&fx~8HB2!~O2hhJ>zKhTL#8dlCU?4|q?kZe>1WSk4)YprF^tEV)v4ZX;p@1KI|TZc z`+=Z4hKVH5dIk$5F$lRIX36J!I*KS=B-7xQa4zY774?{zRQu?;DM2bas#szeB}KA; zO*^nd&u3UDCk5_{@W^ZR9+^2T!_ct8FyG%_|2@^QiZyD46A2%81H)Xoo>19#23SWNxXyq|YM^*#ocZAByL;9DvEb zd0&wV8T7jA3V+YxK_CJRG>4^rZxe~Bh_SQs2SA=PnnHl(^Kv9roLf?&Cp3U&4Bn zv5r|xV1tNfFoFd`Z+U%uNBmq)&S_*m`GyW?`s!m}m`kL6LRThci37(?x7ynj# A2mk;8 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LocalVarRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$LocalVarRule.class new file mode 100644 index 0000000000000000000000000000000000000000..b26b677c80276d72b9be43d8c4d6980681c552af GIT binary patch literal 1709 zcma)6+foxj5IvJgvYTW@hz5;{h$4^>4Bk)(UJyl61}Q=FpuS9!skqi=W9@E`-||7c zJoo|rgH_(|-(cCZK@qc-dD-dio#{S(=1jl*@%#mV<5<)XVmQ@w>iK5nzN~r=WhF1% zMt;3v<>ywH=9{)BZEsQ7HA_0frDj!FW#O!}EU6*Pkn8rOI>8Y2?wRiJBtxdu<-r0S znl)|HJ5R;Nx;~XDGlb`xH5mg#!axMkI5>6~(4aHyESa{v-fC2&b5m3lvgEJUOyzF| z!wN3LRJUcf@k7WX6lSsJdZJqsq#}~*-hWApA^pz+46Mjd>HdWUWcvTiAa$#&+rbcDZMK}MTrkz+>+hH} z$5ej|M$xvVGj9pkm9B;bhS5&y0?X3bUzepu4<@NBr;*2cd(|)?izB3l0mWnFohC0t zYa%=T81d}*6Bv)k4WWm=QQ8Fl3OmU*l#K*>(MM|^lGxQw!D5t7rMi<#?tX^;5U%Hv z2Yh2DoJ$^TTaj!odB`_6aCjz4-pFrH%O%Hr=P9yNdUgYo6X|d|l8&ael>Q8-G;Bed zQNZ|X#P}QR;%_m)-(j4;$29+d1^yA&_$Ms!&sgSPaD#uvD*uLC6u-^C`)%B9L)~nH zKw}04zqLD<#W`v`h83hJ#;L(Y43HJ3?|BT86`?mgi6Qc$n8sm@l10};`!l!zy%*$N lY}0}f%B7f(DpKdRI{1@R#e4{t{O>$2)2d{`a0OS9{0Z1Wx#$1@ literal 0 HcmV?d00001 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 zcmbtUX-^YT6g_XIw52mh837S@Wa-L)id$L4CW=YH#G0D;?X`U=L#H#OGX?xF{s9x0 zm?#E67(V->jQ0&ys;x;AGn2R9d(S!dzW4pd*KYt8k&i%OSaF**(=G3aioY+)CifcV zLBlrJi<^1Z@rC1WaHndE=5)bz>#g15zU5c83%o4sXDwSq5Ms#m>q1&Eg#B&Hn_gf@ z7Wy>Ik+G$7X7B>)N+Aysk_Gy%ypj@ z%Pn7cxnwDZF`SEFoMEm{wRBA2JTc!DqRudyNOpvK8YDUw!3Bn)07c8UY;%+EMsbN$ zwq;^H4U@Q{<0`H(s5Rj;%ywdKJL&27I>VV$zXi+lqnIHu4sQqzb4W&zU>KKFy6Ngj zA3!#uGL>hmw9f1~b}F*u&nFoi`OH*k|!^JF@vrofpFM8ViQyCTU&)|qsrO&!|5=%` z#;6(?Vnw&rtcXXJybI%9FTlKH$e=%Q9MR0%-17t>AM5!pV1Zn!^vtk$T;4kxsZiv- zqxC_WEzwM&UQ4AvBbG{kf&P)E3eHd)rbAHQV3@|b9797KBh-(;z}dEo*9g%EY@|LR zc8JkqOm1b3i$}Pu;22Z%r!vO$5oQ$}B6EZV1uwG3t&aVSaXZ*P**lGINWbb^XzDwp z)%SR;eh9FnPU5w(P-M*DZh&tC_i&%kYgj=J%TVJWvMX(*v$P|{2uq%;r*S%YN--3y Q1?>Z@Q!leZ`r;vsp9%_in*aa+ literal 0 HcmV?d00001 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 zcmbVNYf~Fl7=BJRWVgveL&`09skR77NJ#6YQc_z1twcl6Qc@ALZeU3kmfg4)pnmX! z<42kCI^(rY{o-e5lp3p@e)f0xJJk1V(k7B*WSo%fo|p5!=Xsy!Ip_TG*ROX0oW-69 zAH$?+mC|N$Q(bd*)nZz)x6^yudU|?se%3S`)o|t%V_jFRk(_C6xs}CT%~>m7adlOM zpCNhFY@WdoaLSrJa)u$EJ7Qvnk}hb5=3J!3Vn@!37a07r=DK@^`M`_WtckZvMn4D`mUl{(hP=FEVrrbC}~|W zO6f(%(u`8ZtIOH8mA&+|L&2i!sCFh^5Yf-j>m|63rl;o=yF9N{g6P8_?_r2Rh{X#M zhN;i>4c!UhVLU405rzTIY->>&C-E4AR8pOSqPx`cXd6WFR*)f_!ib2|4BZVpghj>^ z7$q1L*C7`**IMx0lxZqek2F`Wha|*EVO=Szx-BBXaH6ruv}Gwba+>V~5yzl}6!p5L z-mrs6(by4PB;!duMcEbCE;IDE0qYsYP_{iQv{QvmzE420IkuIj_mM zf<*?=F+F`5VzHGrR%sIxvBWUE(q=c-VDj?UI7zQ_wzF+$6!8W__^`Y|tl}*ZZ{FW= z-WJW$;a5^E8Q1YPQCCqcTcubB9kZP0qKq|=(mf;)KYI$AtvRN}aGE4-rDR@p%I11~ zQYM5Altq*nPX5PK85%YT#||&wd@5%Rn+_VCsMf5m*tSY|!_DmR8wzKrnn1TB3y1lgL2rKe_?Eh(Mm~Cm65~H3m>9ne z`9~W1&_llgngn4V$LU?>?+77`UV8Q-f)n);H>sqbVl#Kpw|pA|`BWsDj6|z=$cHK( z7jP{V8M}ix{crsKIQg$};wJ=C2bgHAJj|gAA3+j6MpXC&ap6;(7e2$Z@VSR3QCqQ& zhStW@)Cxy9gL8P6@JpD&B+gUwz4Vr;VP$E`<8ANrB@b}n9!||CJh0FEaDW%`$w;ya zdcTJ``kV46BV*0ut|)z~c$wjM1I4Avp;i%XzMg9F!6$L(J z`4_A#d>}Cjig$1Q{b%9;N-8Qw168PgG}@jZf+2i?knkmjgs%`2zQ&~R4f4XbSQc*L zy6_!rdcG&z!iU259u=##h8|F{U#B93_dNo97=nvoY!MYPsL-)ZBurun2EBD5k4qF^ zBEpv`GX;~}u}Y_N1@Ax#gGN?e=ux7Tdnv$eVmDAX+k|_`2gmz$u|rSpXGWL8E+YQ` Doo9J$ literal 0 HcmV?d00001 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 zcmb7D%Tg0j5IvntGIzZ!+RCa>*vTX{#XAXL{ zdC)wnxlSOR;DvCGZRxEYiNUMBEp=#w%Ctc$f)Ec*EPrjAP;5*YSmmI{mSY9`OjejW zs@NiEHTPI1K}Z{jA)Z1MGX``d2y+d~kuUqbw)9?$w#qEqa67_o3C~jh(5R_&2|Lr$ zUP!}9$J(-MIfTtZ<5Zjp(-uzGYzCg?bgM%+rL8Xp=0U*5c0Z7Qwb)7^M@aOLwb^~~Uo9X|o$zM* zLHqB~D7KVRGlW#r?Ry>h+*0GWFt%n}Dt&@ccO2=}Y~lOT*YS|BF|N+UJ!LV%O~p1d zMtRjKlTn+%uP7pF6WE^Q-#z|C_)eF~pO7k*zrgs&-w0;;jI$H8Cz#{6q25R%gL%H^ zk;SDD;sZm**p{zkFP~!}g0Hx~U&-FSc<*VY&sbZ|Y3C?JF+$HmWAsB9S`ACuQ><&x zhD^J^(LyH1#TLvVd!EbL;oQ{l=WvI4moS4>erXwSQFp_P^6aCEj;nfhM~r{gql%7j R`Rd%meZEz52oLZG*g{CFMHZ~h*NJvac9VZkTLy{7?YNbjY+at4R*|m0d zDSfO;O(Ghp>hHcn-=*rE^{O_7N>=~u&fMKO_ndR@oj?Bi^)~>kcxfQTu;vFn+ixGq zPWYp2+d>`Nr^l{cKiF&dUMRhAM|fRV28(+#JoLL?N3JxGW~hvNPM=_y2oD{#c!#0X z9P?m}4sAM~6K+wm;@GE3ErxW%@5)Iq3%ZO&G{9Og9}*?nlRM8N3p0&CF{0 z9pSb_;OKo4Ol!IfcgIaT;tuh?(w05PW2hFJN8&`-uJC&HK^Qn*uNEU}hm|mdc( zQ7Bcd)G~0LVKzPxg^p|Q2z9t8`dQ3jUb8PS@M5VoiTClLfe#pNkLjd|k8p$BbVXab zq-uJ=Do#QPY8iY?Uqz=QmCE50EE@QfA+OOd5;buPOAMKw3|qpD$iSsbRF*CZ&!LF2 zffB>jp+-t?Vi^^Z){jDljZv)UaaYzxppwWadJ@WDh3f8!W0?VUS-LA#CxbPHN#*oB z5k>)hxXX~0rybc39p6(1?lD{&a;XP__^IirFpG7}XUXOVCLV(7neIpGkm33zUJV7b7G>e9bCwQtI^7{;P#Y@y1_>y7aVml0G zw&f@%^n)C>v1{Th-AI`e9eb)1|1kb+{hw*j8mQ#t{DB_@9l7o3q03*mUsiM>7|dPI zlR?83N=fo2JG^yphj2LETx@1WPc^O5Na?Aj_$2MtX_umRuDtvj+4AyRm_O4tg(-SY z&`;oNn5MO<*T`W8v-F;Yg=-1Kp9Gnvm@5B*>^sbT`xg1vcrRJ)SFMGLwQz=;DV*Up z$2V20TCu9<0(Ql+&jnU1*6O*yXYa61!1o6bI#cxxHilG}v>LvSDSi)mexDL;V1qxv zE`NyccnwE<69M0frIZJB6DdR-E7*+XDSVDC5}(KSc!V3|+$_F8JrVjU@v5NHzro|* zv3-Ue2EApZc*tf-d(P{a=8rMY8*$cr>~rCttc5|=8BjHzB^j3JA6=~pU5MroZ?q7) US}E+s&wV_nx9$~2J^upM-*bhVGXMYp literal 0 HcmV?d00001 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 zcmb7AO;5r=6r5KUDzyTlq5=mGCISbFXN`#=F*ZRtU`RYJu)&hjlD7Eqvpf(L6Muj| z%J^EmdC_dL@6GJnnaunAT7CdHMpcJKX!^m}@&^+&j2_g$lHt^PoVwO|@2c&4k@BKT z>5W_!9Cl|zf24E>LSZ8BrR7R*Y;}{Lgp8j&6UZir=xL^yJ9RuKIwPcOwq5Tt-)02^ zDVQeKut7-G>isMTc@t@5;%?J~jtny$$5Yqy=|BZHa^SLBvEvV=+n0e8;~!E)cTPxX zb^e#)gkbdic`#HLPOM$}6}K5jB$&46si5u3FjS$AGU4ctP8@%=F|;^ViZ`xt<&@k} zoH41ydx&EjjBa@%p3660u->RFkZV*IC_FQzp~!a;0uZkd;tg4`L{7Y8i}{1qH*8~v b5epnWz-x(0R==U({Semo@L8cQsegdz$yrRm}(JL(Mhx bk>+D`UGs^W>QsHt;9O0NKN>FJ(kT1@)R1Wu literal 0 HcmV?d00001 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 zcmb7GTW}Lq82(Oj+N8}E+Ca-i3guRkG;Io41OjR)tpwAH6e3l;Y?3uBZgyj`=|#MN zqJrQJFDRlsDKq+nVxcmF&iLRAj!!=N;*6s&KJwy-!}y=wgoLIzB{L`gx%{{D{ogrf zuip6f3V^lv#03Y#dLx?(8Sw*3!W>iLAvu>0ji%8ivVei>j;Uy%fwhYb$?@f%j0VHDK^as6uru zoT!uFf}3G(RMnM%d^)aVcgt~+nKx=AWGyCVRWUA1a*-}W*KEU*X28VhE zxAzW~V*KKL2tPzIt}F*T=}MwVfvZzhKHE9QP9Sx^cK zuWb^7!fUl*5z~VXbh;2?SXP705#oA*M9>)_!ue*ts zw%4Yaz!pHtbW}!V;zb7%5|Skd=-LpbZahUAs&3VCzXVli*f~dN)>e6%R1!H;V3QUE zBI0eF0qM$em-DEAn#d$0;Th10v5OH+T4APDuLv^jfeOo$YC0!OMs{J<2Tx2zl(5L~4GC}JEploab~+66=`x!R2I)@V z5M9~@0K^Map+g5rrl*0PpoO=4FX$#U7&>P-2LJbf)8i!1ey4Zn-1<78hfGksj-htg z$Y&EupDLc&rixFB4zX*ZZ$zgnw?~t6IfeG?Df`esCpmJ`*9xnz7Y{l0oN$PToaSq2 z)I}o)Nl&2d8`K8cEEw=c@1-^FNr=ps7C|I26!>gcH#Jv^f*O0`xWN5 zO<}PE-=k%q{YUWg?H91(3sPq?{fVClxq+Ha?GI`{Q|qJl8MR}iw}KjV*|xwWTFE*v zg?0zdvEJf1=v_aBE(e0%a6xXh<;!+^!9kkXa@z50Z z&>H?MuHD}K2)W0Vl3p?FK4JfPY5vJl*tl3aE|!Aco6|wBQqo8X4OM7RQntsS_dp>z zZ3+hM9TD3@aXD8q&kOUwWlW4*#=#Nq^B3`A+azA{zDj?A3#h$>qtu(kiHmsqyHZ)N zVjY$BAJjRoqrv$vyv`elQUyooqjVqVNb)LZyc#B_%ZSE@xf@5g2Pe3MQzXyuI-KS8 zIL90CHOWidi_5$bKkz2}#24Tfz7W6C_&2@?zw;&di#OvM$-nthT<6P~ldoWNNY3Lc zSrcz%tN9w%NwSOk*hb#QdU=oyk=(=E*p|Qzv?9(%wV?fnC49E#jHoEV literal 0 HcmV?d00001 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 zcma)5+iuf95It)O-y%qCPu+r3{CD&&5NmR zp7h^#T_+Gu@R~bgTX>asvp{%VoBRIznJsi^46V4aGJ+u)e6sw?K1011Gq6KJFD=Ik zj;UBJc2s@9pmp7`NP{73Ac15CD%K3>NHN^#S&lfJO^3q!z=yK4e9s+md%!(Q`io0V zw#)D=ZrOhjqTUljF|izmcCB~D&$(%HXJYmP&vGW6Fsnq`=NINlK$k-T*zeQ_DQr=w zJ9mVa#Vr(dY%>%jV$tUYc5s^^H4(vp+cO%ax}sJ+T0VsmVdU_sNTE#DSootf?&G13 z2MoJ0`7uzzBL-zOXDF}0DU{1c&m!e?GT233M~$Hr&3^5nfd-mH(z)eZ!BTV#&sR(q z9V~hy)u0PoOi9d=>IfBtHYWmz>+S!s!Z406zZF2lSt+7ELwa3f$n@QrHxjQbsm(%U z75C%>48|LWBoZPgsQ2|HR&w32Pq|cDbe7A>1t3d>A{T(})8rkJr_ev!XnsYe(fkhM z3%Lr`=}giisKf%DPFkhc5{aZ7@?cs2`j8R{1&_n?37*nla=~aL4w3&0`=3vM literal 0 HcmV?d00001 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 zcma)Ad3+T0761NzS+c`2kYzcIjfQBZ)5*iyS%49Pn3!B+>b~Xk) ziY-d5XYoMr0Z)Ds>IoD(-O=Q%c>+~UAJSYMl}?XZQD+H5sQl1cRc!*khIpqr z76RjRj6rb#MHsKcj|l=rmFhrAQ`9nBQav4}z1HZ6nF67vc*Kac8Fp0B8KzGKEim`P zI(I9;xW{yuT~SM5PG!?jC0ZRjYIW7Qwp9I+Mqh2cLuNR$g%=DuoughL;I*!K) z?3#H&%7`)4yht(@s@4VAmlJiIgxNgWX-3#8fs;mwXt@7O@ibHkOd1wfBLUcD+6=5l zKs0KY!$+%zT0WL(gfK*dhEw=h=f?tpi9?mms0J_}3l%s@HGGr@h8b_|j@wS1AM9w! zkeQ#QM%PWDB1<T4WJ7P{n#upwQ%LE-I8EeHlas{ zg}A_YPRDXH8L^`YCvFp=!|TuxGm@OpVg56CR2DAKVS{M*(}J?T1VcxPdAnPM>RjyRv-wi2arw@PaC3 z4XT)S==dD2u|H0pk3ZbwJFAKmD(PG<2X{IWTFf*xEZ)j$L+X7U~Dqg zk#sjZ1E_3lEL7t0`Pi#tAMRq_3ByjBTs`V^f&IG1s>ZRn2lx4LZyumqwS4 zYR%gOXl9W_FkJpXGGx&-hU*>WvJTmH+jE-mVRfQJij-y@TMV4}+ zvD#)MQ8y0H;{`vy#KL_1!aJ~xzb7K$SC5%_zUe@t#e21nJ zDVol^zcY4*6)#tjp}J>S93nR-8j5wWkjIYlW#bi%YlT^;@2IwDGU~3x6F8`aaWR3Khp7I{Dd==FikGs{Q1sh{WF0XA7G8s#Te=%5i>dRYr>&-qcme|0gb6}#7JY4Tw_x`VS%y9I1Xi=38^tpA1ySAmhf}p%$iVn8q;?}uMQ7j zR!hHF5UQ*pXAkCus=b%lp|JNdJv7&QnG%}kz34TekGSe3gP7k=3#Yd9g_X$$T}mILACgG3&{EA+*e69y5sL?QR4`X{;Q;Dhl_9nmysT@L{YbG?d6=F-?|Y zraTU($TF;u`a0oP|DlBDTxfxJFiDpRC4%vIYm`5NnU&sc$ zDVO6Nxq`RJnL?LmiD|M?RLJ$>WO<%g$>%C*xCp5BdYeUnXu?$+(9g)X}=L3U%JjIz+1Fhg#} z@iK-g*@Jn~!XlZ#VtE0UN*hglo-LDTlf76k`>=s}o8?7_$%}EdyadbA&Y5}$%t^#;+oLwX`=H^_{)6TNc}oXjZxHZvXoy@zw;=qET}2+4>>ZZ z$Uo)C3Pt`opL{DvE>+UE^U1$^9N9NjL9*UdJKP-F-eTwwzzCROYXt;E>!Y$C-=h*gzk+9%9~Is zZ^m@F3zhN~wskj7m3vSpZ{@DI4XfnsSS#;9JN-rEUUbWSu;pF2P~MHpit zhnr(BrI literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TryCatchRule.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler$TryCatchRule.class new file mode 100644 index 0000000000000000000000000000000000000000..45049a4d149fcb4af20078b1243b244d88119b95 GIT binary patch literal 1526 zcmb7EZBNrs6n^fytz+w8OhE=JB5&Im6y!x^Xo4dKlYxnleYV|hwqnvA$UwY5EJulBW&pG$U&ktt+mhebMh+)Nc>Z+|D@T&KQ>#F89)uX1V zZtm@rY|G=8x2;(LwLAUE1m62mk#-#dQIMUq(sS>zb{38EmRVz`E9I}DTApujua zYuL4pQ89rz%*!Y+jCaq=B~t|pP>IGv5&nEkpO|*_6~oJ*xoKAr!0f+%bTR4Anx!@U zDeC%5RBFU7jnT+elrvG_G|*oKawz?zZxU^z~B=hj4V8P>6Z^e=POjaL8w literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/ASMContentHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..db263e35799740872d604714b2fcf349c8872475 GIT binary patch literal 16825 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 literal 0 HcmV?d00001 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 zcmbVMTT|Oc6#mvLa4_OdsG&eo5(*X&Lz6%#DG7+134s6!lR~E*Szf?YNJN*E_ObsW zzkuh?Ks)Y3AM?<^)R|7t3XLrT18rZtXIFd9ewTCn=ik5o0bmSol1MN-blknHlRprq z|AWY94eu~}d}w7~xsEA3&vEbP?4!Wnw2EfY-di&4f+gG}6ox*TD6e|Padux=N5b{8 zb7I#BEI+!((BuXAf@21U!uB^D$7g6=IWXQESRySL)*aiY z?C2|9?u^xpP8ST*cibNtCc@O~=v0@B5+#IKRR*?ANMk2uY_(5|cF~_^*dM%1vPC_}Ay7Z?^vbUV&%EgYSx%yvD#z@sD{l7#Z9|J;Kr9%G!L-E@WF zi)w@ny@Q$Sx=ZqWqGD2ZM?>huTr_p$jBOkW@5nI4n~fYpoh8j*r89<_cjv2O6+JR7 zUG+pvebQdog|fMmaRH(szQW3jI+BSJ=d6lncrK$k74s5tJr%FuO_}?KO9M^+Ck)BK z9X*#jPt2)Uz#`22 z(Qh;D0=loz+Nu497LA{wT^l+>hc%wLpILnlHzMf(SWa*F<; z;gL?Ign=5IU~QOAI)25_2V^x0yGj^iI77d@Si%HDb%v%8pA#Z-iu6aKM@yw#h1fD$ ziP#L1d=@I#(ZJ`3+&r3TpXLj=#}_fmmoUk5nC8oP#$Vt$U%@Qx7x_!9@l|Z`H5B-I zD8!?45@jI-z6@0-Vwj>x3L)^6BI%sKSC}RdT4Y0BlH`QGNPlz!Pm&Bp1WTAvP*Gz* z9+yC^7+QEj28NWIlMO%vJv=OBK$QuxQ$-Eg8}{xviw_&^Y4h55pz^86Vb~= z^fD1WBGMw~{t|qhyp&*D|ksb`JLPHQUEaRaZ>^$(!J2yOrX literal 0 HcmV?d00001 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 zcma)8TXPge6#ja9_L9wngs@;Xh7h@CH(?i)OGxm7AxL5*Kp;TyHoNI06K7|_%q#@( zE?%Crd{LpwvPy}(sVE69Sm1@?!76X1K3HXyFIxT!%hR))%`S+q~>Ij6B#49*S6BaaV&dvU)CMZy8VWp*3FUK znmJ?$I|zkgr93J3I@&~XR2bvJc9J{Au$DF4!ajy-Cz~3w(%FnK-Tjv3GSv2tX~(ss zp_wDee%B_a9SqTuZH2SDw6ts4CmFW(E)-&?WxC|Q{2+N%Y0*B}We9mYLt;TkT_yYJ zykB^ZJxyT$D7Yo05d z+gd4==?<3^m&&@r>5%M%yC%|N+|@192_nu=SGu=<$Km2<3BOgvB2-r*fek?<8R|ZfpwT9)_A*6|Z75wvZykv8-kgM@vhw^?AkE5gQDljS^^T8BvLLY!8A+ zSyp=KEE*N}f|L~+5$=FyWGN+UOI;S~EH;-f8RP>hcHlt@#}MX-JL+kqJA|DKYdWPe znnb>Wnoj8MsFih_WJpcg43&v6V%R0+_0TOyX09Cwp_|A~csff^fyi4QR?#bC4x}wJ zt+^rWAv?dN5__>fh<(Jlg!_NpsZ{YQ`f-4v!WtK*x6Tm%Zx(bbSrDFU3oX+T#sCfn zafo4wmoEC=-B%QViX)&d5OS?ND27P$ymZF!sHEbt`R^`CK+!cRu@X-}3*t$J%?kl8 z7h0h+s7N7AA*Bh4E6TSpG*YCcvMK-GAr&oD49o6N<<;EILc^vSl&N;cwX`_6pHf(1 z$U5IcYt%K4Pr6DdE9hzNiexZ> zV=7Eo(sER|5>6#Kp8+F9bzH>>xgJg%mLm!p38zOjn;si_z8HedM?1T_^Zrh&m;gOM zN-8@%OfZgil0vQFVMh>NMsz5Seu|g~_gh&zEq3X$6)q~ioCzr-qOjXEh3yrRpf2+= zb<_oNOo^PYC1L|LAx=+s06y8K$@0l2?Tyr;y^$KUH&So+M(S8J2IyoB7SnGn&7Pxk z3XLn`m$4+yr?4zuTQ`OJc*_(T;;mC?j4z);(?!q0O8RZ2Yrx-y!e2)Pe;?KS14Q_F zMEN8d`G;6Vd*XSQSdBF_Bj;Xd%(G;0KF^ZjaSDXmBds*knnFRvWLV50P;?I_Wa_ecFVQ5p4596T5s-phd-P7o~fG}B)kd;H94~H%w(jJfpqJe1~j0P^_==C@qX~^MmhAFg= z-IBu)RdQJ*afKMWNMUzj1Y^`Se2^p!BT6KFgdqPID*psk{2~_dPfY$ z*&TcuUHo(G{yieyhxBr?ZD9!5QVNJ}S6>SdCme2R!p;5gc7%@2cAVIV{HVp%e`rUEx;x1Ub- z5OPXISAl>W#udzFA(1D@CW1T>5#u>z8Ko-Hu6V>Ml2}C&EBR`rSFf$e*IN3w0{lDT z>w7HWKah}q#5(>HTKUgtH(KAIxlo+93!BHo??-u41Eg|Jain}e-| za7m`vtiCQO8+`fxH=5;|$WR8m=Vp!IoR5>wR?J?Z2Jcm;XW&>L! z^T+=rj{YK!{`S1*3oTOQB7&#!j2CnS&w8~@UhzCxoNj%A?(pG7yhLM|b}^j6E2#e$ D!pQB= literal 0 HcmV?d00001 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 zcmbV~NpI6o5Xb-Hq;VEErF5Zmp)93jff^9v0^-n$N|vI66qHL(j`Iqx9KXtTpdX40 z60{NrPApO-4jlM8h#98}Q4$HMmTbRS-tYZq=AHfd`~|=R*d`3ZBOSfAb^B0x$vf4y z-MDKXcLV!nq&*eKI@;h>!a>z>!lPc&Od{oWO=JmkhwfX~_O(3}AQ*m3SZGX$Jt5?t z`k|jZBP>-WW>i~*?2hiJA~GmhFkulgm1?U1LfOI;a)gXAZaYwf%MId4rgaY@|52OS^+_rE_5POqbb+NLlts-}_ zBAv~1X-(aWJhkgf6U&2TX3Jx%P{kk__0tA5mT(R0sfZG;;|7Bnf}6a`a1P&;v7<&rZ;YPv tdt5X(*Tg2DB2(F9qD(DUtDoY|X!E|NyG4b8YWl4~IxY8$a2H!x{tIsx(8~Y- literal 0 HcmV?d00001 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 zcmcgvYj6|S89jR?S+cyrwm`-Y2*iM~Wg7u;puvt4V;gW|OfX{nH<9L(jJovVzrhMH(>&>!vFVFbP6Lt-i(p@^l1Ec;SBRpcn;{G;cAdm=~YXXt}u=LB*aAS5qW7PC_ z8l$0LAe`=_!M1MIDh+B|s|IbihN8|Lfn5QADC$ow)~LZ79Wg`0p}j`?@QAsmJ!}jc z5i`#2TQw9!M~q0iN`oWR&nC8XXmB+J!=XsXY~~WxH9Z>atj}g{@}92DYf3YnQGKO+TWfmUu%S}N92Cpc^L5++T}o9trlC+u z)jIOwmXc3L0dyiUheDLNw)2`@!Hv@6W*}x}c4K`SOcv|L6uhg{WLu`iq+ERo(}*|9 zCc4{4g9hyojl`W;qMHjmV%mWEs0d_}r?+P zX15!Qv0nVqO+B-*WyEA>CpK!BewkOtx=b6Vh|npXTs??2EN1Nr4AZ!dovEiiU`p_o z{x4jd&lsgh86#({MUT0SNPos*w`QYF#nm-AOt{}m`TWgpC;BwZyfQjhCPLwUBj!Rs z;WYW(2w*@IYL(KEju3XxAAu1jANHu90!FSs(sMS-6k#31h%iZ+(G+YAGpcikkZ%E3 zXp06DlJmr1J9Wgwx{iTxB2Ei9gVAAWW2t&uYe$Dr+r{Rlo9gT5%79UEAML%Dm2>Os zo84p-6z@a_26zt}0>cX2wvBBJ{6K7Qaq7YFlDDN~Dj=k_AQj;eGh{Md<;z~A%WkWs zwXJ1i3+H2lRdnKU`Z-tKfdM1t#(q?~aDZV)p!@M9k@YDJb=Rn-%+V-O^NfyX@f^ck zB4g5U-s+Ai6m{Xt6yUZ>8Tb_)FUmj{2lfQQ2}5G(kdDI={Wc>Wbm1kUs}yu$j*8PN zr8z!dnXr(sV@R^cH+8%sahgYE8Kg4yRk6-%RFjC9jZ5&lj&I?ZWEjc)+&gJ$b>Z9G zqpHC0NTUmHu(B#_vh=2u2Bq{CM^x=hM5TO+c&g^Pk;L0hOlT;c6uBc}8iPhmEcTo% z|BeWIR&qgWt{@rowzwH12Ri(AoEOi0pI~Sy$+{Xn;@%KV#Dd1Ekeou(GM@#DWL;|C z5s4VF)^H#mH<+0(Xqa=AlY{ojd{Hm~QE*-k{+G+q#}5-FXOi{giDW%_Zdp&BT6`9< zR}qRi%EPyMKIJdpGd&6KNmQKRi^6Q)-F!l=hf8(gMynR=JO^{rL+@j|jrC=|3Ebqf zoyI)5E%4Qz#zNn$)2Nx8svLQost{?8o8nX#P^mh!sAcM1zVpQ%q`MH0H%z14_PdmQ&=-Bw__7}tl76? zGfR{k+p&cuk##$Iv6Wocb0fC#%|Q+B#^-W0_?Ueh?BAVY&@WqX3iA$OhQ;w7a%+aO+`ck8 zirQJTlh|!Zyk~0ZfcaRM!Bi>1sa~OJUZrVXqkQA2P_JX5I))l`95<^svSe$>$ku?* zbEJeq1MX)4iwq5TfF&DhvSjCA8$V=?w! z&t&gjWwJ-Fhurxo$vt*GQ@l6D6dw5)&C+LsmEta@UAXBi_V-TUiM6#>K5MouvyWp* zo#)9U4%T{^`d=c|3 z)cdsN1r(|enA1L_J%7x|{s^_|Cs?6A#vQEhP(Q^+b@CR zsT5*W+NvJ@a`*<{?IgwT1R8^=X^W9WwX`Saps#NW@7d?0s<#nEu ztnk|3#%Vr_8k0D~vFKBaRU-Ah1724FV zai{tXy3}v6N&OC6)bDYR`UCpZ9}!Z2LRkF;arIa1QGdh3>hE|`{R7W({7dSeSwfCw zgdD@WRv_wlAuZ%IJY~seLn-z!BYe*il0U|B{BnRT5>Lyy%?p~wQD5;ED$X6nOxbo8 zlQ?J9^s}uvU1wwMZd+5ukxM_DbVMrG{|gTFZ@S_?C{mv=-(SLf8&6-G!cx{RvpFmR zsl>WGO~Anu@(0{&*<=2Y%z@a+8p$#xT%PBYE-2&_N}W@a2&^=2bHQoLN0F@nUYnj3 aHYMrR6yCEo=ZE+apYkcH;eC97^8W(fJc8c< literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriterFactory.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor$SAXWriterFactory.class new file mode 100644 index 0000000000000000000000000000000000000000..8fe15a1968e30e1c573c7e25e1a458e78c6e0f68 GIT binary patch literal 815 zcma)4U279T6g_tnvu0hBv`zhJYg@HK62Yy4FIEHzEeb(}mT3Dn*$#Ee?oOGV+SXsC z&{9zF2l#jV0AIvA+fZm;BFpTZ`*qITGxPoLmu~deZ_z7W}V zat=tK14ir>kV;2qY%7Fmy=PUbKFZZ}&mOHNGUeW!%eM%Xrz%tS8KK!4ZQN@23FWTd zmH|qrhq!_Uq10;ks~}8<@NwDgnjxwP2=$)IV&9s?9KRO}p) zhY8%o%#h{@qqtn-D`q!4$INn!sZ-qg#4!(!r{ePTr@(fHJ zGzs@I6^T4o*+wsx!$dq+Q9BW-kc9__Vg7)>;bFq%FzlMM9x4p?XR+F{$lgsj43^3n zmOBO&tFT)Zqq67~nc(RbL*;2Ki0maFB!Xd~qavR4c^2z`~m1P9J# literal 0 HcmV?d00001 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 zcmbVK$w~u35Pj8&8576EeP1pfk_e6-JctWOASeVCl-zqJjgCyFp?l);R|<;Y!4L4G z#F~i+A}V<3uI<(9TKe_v`31lR799w}mNw^}_AgbCTr1y`w(H$=Bk#oMKv}EJ%4yH< z=%CkCadIHzPNYmz28lMe4)TPNOL--|NXF;haYo{xK-m0?w4vkV8zEuLetV3t&`R0T zqO82}zGiL{3OivOCVPbC>TkeWn~-nljw&ICVHZV|3At*mT?BXG!oeV+(h6gB)a&}n zoJl`YTv1C0GHOc`ruK(3pIn5Nu${g4ui0_k6M<1OQD6HZELCg2wLvJI>YfQyGfc}X zf9`25T?D~BjALaQk+fD>2lG6ZKXyTw{c*)u=i%h|4Db=@jQHmW){7|dJ;YX%ZNais ze}Y?IeMIFx!;JD>=3Iy!~No9d%6jtRCnFJmQ)Vv=KhPLCyVY@q&t${j0$ e!$2W*iv5hn?E^k&1g1083}#uTr4i<^fVp?p8NHGK literal 0 HcmV?d00001 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 zcmbVMTTc@~7(Fu-7Rqvws~}h9(klxpA{J3Zh$i(CAdNgOWhhIwyJUAN_0?ab3705| zzWbw$-)sw%P)hKjotd5QJLk-I`}6nbF90)G(ZCtzT`y<2TYDla55$&X`gx<6w~ddU zn-#wAdSe@&>G(UYmlxg})7iF#w`yjk>wVD>VrbtpKbwYaIyvJ*0HUFRVfH4_W!I6y zk(U7(>V2~)cNmPcf-MG036$)~lnLX2g-ykYI>ihkI3sjwu*a;J%P0 z#(<}qf9X0E&1jfm=vOAC&Ri=v(#ngKVpi-+%XPwdgjo%bsZp!pRA`{Y?pV2kXDYXI ze;rRS$IvLg(|w56uGk6MWAP(&#u7*9jwO%K`#rGkqyHX4 z1Rq9-kD-Z=qm@sflTV_b?qVf>+`|B!2r1xY!A>#rV5higx?m7PW#+Hsr|uH5Ln1vy z_c6`W_$kIW>Ck(E$sdSu#J{CaF})c-#={dl{Y}0ggkh>HjtgaR=sbZzp2RSp!U#74 oWh2B$_+@1}I+4NxA&iig=UAj2#|yIHc!?!i!}NvW6<(wNAJd5B^#A|> literal 0 HcmV?d00001 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 zcmah}Yikoh6g`t{y4`h?*rbg$wYJu(dD(4!e2NHCS}3HAPzfl0*{ox_WglT58vCmh zv;_r!fImvSGYKIkg?!iMV>kE zT=R7p*gT4YaQmIpKk(!5%Yn;1?#C(=hMVWsC(Cp#zh|~(sEP%K#yqG=9ES8o5HW1D zBvukTu6g0~O`>ZjaX*PqQ9)u9Y0FsGF22Lqe;V<+$<6}K6RvNUw>s69SWvBprEshOnHQO3HEeV1Y7 zI^vFwO>C*S$FM#FF`0~k``BhMs1GN65Rb&HUDE)0)RdL?El*ZcB2Nlt$Z#=246Cyp z90D-twi`rTS|ZE3fre;b=A)ZLXTq~%pej82X^@0AKXgRza^peW5ww)@k?-?x-?gHM zQx%`mgw5$7jl@(Bu}kxkrY}QZN{kIX7-4JBX}v+#A^B6Z>$NKwwfYa_zmb)~60JG9 z3xytvvItGlP#|AvcpF75lSOe7l@Z#CJiA3cg{)PH{+4&T;KK@{LPu zi2W;_Ofpf&l`NK&oMhS@Mvj?Ecz}m8_beWvLXk|=k@o*NUy+{?a$ZneqBh(fPs=Jm eRf@w1>h4rL-`+|NeJu! literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/Processor.class new file mode 100644 index 0000000000000000000000000000000000000000..cf09fc1b949d714d6b3cefe4699bb2e09ca541e9 GIT binary patch literal 11122 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..f5347601c350d6118f47599d312c6c5221ad1572 GIT binary patch literal 1848 zcmaJ>Yf}?f7=BI&1i}foq9U~k($?kzY^`^(C}PmosH0(`e%vHGuuiheY&ObFe^9^H znN|j!(eM7KPM>$PEZGJ~Cdux}d!F0-p8fjo$Ik#R<8cZJg$38!Hr)CftKq-1>W0~A z8++}RQC)wv-ZXc8%S$1tF!jcKYZ@)n**2a9wF+uS;X*}rOMS=OGd5huw;cbG=`>rG zx2iC5$98OgO(B;*t*}s2NN%`ID~%zHYowqRhVq5l7!)QnhB2ZrS+O1KX}4Xsye+fd zvJ_@2Zo_QVOwX44a53rc*d2w%fbTS0lsCO?`Ekt(*?i$Nsq|zvn`Nh|a3)_l3Z?3M zwzIujsEuMy0ppm*g%rM3m_Ionjqi|ENLx;`+_KtCPT|%upo27nD}`DL3uHS|^rGwd zcH1iNHLP9VcAYd9@k0vVE6nvvVxOZDjURDIVbphfb`)lr#t~#_GL0Pa(xtO(n`5?v zRt!`rB&3PnfzbAs7OGq-HF|1&UYiE1am?oaQ(g7-`3*TTi#5DNJlZD~p-^l#M ziyquauy{Fu(Y=BYW>#|NiU`^zlnBns=9zP)(gDsV@h7I9d_wN^(g$4J$4_702m3R` zS`5)=xDU9_l^aC8$pd>kU|Q&*MS`;^pvc|R&?sSvyJw~UA^RV+BRIK3_N44-^(Oi4x}!As0_qD$ZB#pnTe!s)Rh9?7(}kNaW7W84w< z_?RmdWbg#%@ho8O&BT1joC*ENOq5UJ+l=w`wRDiLN{lV?y(Hi3Q~4BrqoV|V{||B? Bdxii2 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXAnnotationAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..ea703042661b371e1502fe2984813fda6dd21b6d GIT binary patch literal 4628 zcmcImU365{75+{#lRFF-FoS~(2t*(-nVB#m%1=U(5Rwudf{-wf0Lo3~5++V&;>=9~ z3WyeMrC_x}Yx-kA+s6J`u#gExS^DBbpWC;-)rYP=xmMTeW83eXJDH!%=%QUMS>)dA zyZ8R~{`Su~fB5G|cL8j~T@6(NfmC`Roa!4i`>ipvFKlFn!l#B3;jWg$Ey-lcGOTzi z*%C8`Ei zRyv*>Xcnm19#6)t9Rg8*MEaDmWsFnd)>P7>LuJdBaAUe%UT=RO3O(=?Z~WU+cXg zI*E%bN? zJ9xlM>)4Df0xm0MH@$$@-_cMWmJ3T|mp18W#&+s6wJys@TLO)h(kf;!PeGi3qzmo@q&^jnk^`y^@no9sBTK1sf1}Hbqs)$t&JLq5p&-OfhGRlV$yPI z40=%d>X5CLkRU@6glk7bN`4@v&y{2oNhJr|7)C}av%n7j6H<9pDz|GmRlnj}}RtHLban0>^D&{J8s>l}oo*cV3 z1nw{Cz`TOM_jSC5D>AfLOvTh@pH%`+7K7w0%E$FyByt#?s<5S}Uv8MV)47;yi#*vW zk#mD(s=udZrV}=qh;uXNC?8>GR2q&VoUhDEZnAU?D5N&@?NRBx2cqa z{xcmv$1liaTjJ^djFMdR<{ekVOz{qlnY1de4yiZ zxWRh~+k)LImvuRBlBKI|{2sS8++v~1dpLK+QuWN;u5?TxOUGuipBEB=b(I{KW67ZI z==eyU32qtGY@2Gi%N504sgZQQ*&dfS4qv64-3Ga>@DN>9^S_h-J@PE(HBlbSB!$1{ z^RFRFYxrCc2!>YpoIXcY7Wz#Js<4Q^-F$*`rDF^3)orm(HRZo7HX__ddBQ5@mVaU4YoPh%9%D8dfdDduZ6mao-V zzE)%TT8$CcuGN^Tnp4sPNn#D{V)zE*&`2MTMVrLx_57j%Vmvg3md?g0d~;l!4+N*M zx5*Lu4Ex8iG4v_+H#w^}*GyuW&mm^e)#Gz|Yc^$Z@D2`F<3f$_*7%%vum9_dNzp{3 zUfZa*#OSCpdNhlt%Z;2gGRDzJBqL|Egh&cy8vSz&{yK?2(jac5#7j^%DU=OaJUhqe zi%Cq-C}|rdON@qejai(Z zYvgm>!M6k^;R$$N4K_~WJ1ofSS-e?jvne#PoPBJwe$G>j1vOdP6TDXsU>#1PiO)S4 zWLrJUCQGoHhS*98oaOHeyir`lb9e)3T;uZtSh$T5%&^fuV~hNW&%fX_{)XrAC0@Wk za7MU!p;(G@Vim6u^*Aqrcu73Y=UxWdjSHd|uZZJ#Rakt!h}Q(~2I3MfiOakKyouMv zRsQ`p5#`GHl+m)uX4{x=a;b3T@a-yoz?I_^SMWo;&6TrQjA9%=;@sE4j~{broLGa^ z_=#%cgGzRUvcq}VMXaTsWactf=JaNi-XLXn^Lk$@S&Fj1&&ou-l8qAIpO^Kbp8n2K zc5GJ0SbvIl?4jYPI@MNk2RswOP-97z>}C5F_tX`YdBE13&72D&mpR|$u*zlYCI>FH z*3wc4$0rn7322%k1b#+iw0GuG;H3D8I;JXBTkAM>jaEa}p3{c3+We#Qw zby#=I3j}UqPK8+9MJ`c*{VY(1U6OS0+21|I8seOp$yfUo9Eso!9Ji_b1 zW@NDy(;T=v*v=!qg|glFm?yv|DsKCHjpS*FaLiP*^L&uSmn=tA1!RFEs`w6~wW|Fr M&)1JBufiw)20=40qyPW_ literal 0 HcmV?d00001 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 HcmV?d00001 diff --git a/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class b/libjava/classpath/tools/asm/org/objectweb/asm/xml/SAXFieldAdapter.class new file mode 100644 index 0000000000000000000000000000000000000000..7cdae94bb664330666c8270f5243d1f062268915 GIT binary patch literal 1719 zcma)6+foxj5Ir3N8$u))E(#*VE4cuRB3_81F@jR2v=l3)zHO2b7B{=pW>EgYFYpU^ zl`54|tMuKEvh10JB$$XkWV18VbNZaq-TU*`*Y5x>VZ}gzaKZD}O|Q5qO7g8JnpU-9 z?o=FeE&F`M7EU=^wzj134Fm}To7Nl4bS!t>e5@}R=pjtB1L&ItyJ}0%C(s6AJg=e@ zaMju|bDk@OD<4>H*%5w*&~wvvZMj6qC5{R_bhaU!E#X(qtdzc8+?JxcTG?_k$pRsm z^U5NOE*y)X7yX2;M6%EeRuF-KPzW&sLKq@+zfvOmFoKf?P7ucaPBVg0j1eMLY58*5 z5fxTIc#_CBU0Gu$?t13Gc3KlPB`|#h_JvWRA#0^XmPPSrj z!5SeEoWWT_NP0C!grP*TomCj8a9%ldfiT=bhq5x7w_WjQyHXVXGppzbLM-o@k zwp!OWgL1>J5~g&8{@G1j@h(fUd*}bBqJ)6hVM`9hw#sF==o{5-S=aTXrA#6$b`bP3 z*@0j4QoUm{1}+g&%G{1hniuNB5yCtnY&DXHF^2`^>s3PG=!R~Vx!yag?PY4;(LG)k z)sm`48w9~nZs=msOG1Cmn}abS#A}=mi)-{?ZGyNwJi4bl`E>xqwudzIva2U38^K-V z*a_j58}o6aLmApBx9=#4;WcmDFNqafwcXGkU!+;3oBNzwiGSVvi>cY>FI$k`dlBYm zAFtl=S&;vyQu~Oc(w`7b$BxGaV}sLQFx-t@3_SXVQ!i#du=9L!h4&Wt>>8%{Bvpe)0!dzRB29xoF#MK6no-6O!8B$x(OE{S5qr&X zT^u#~4RbG29}$gR9)AxbxQk$b()+mbfe%|LEV8-`>$-_S+`%}!(dDTib&&}fh-J$QtkOPnb|604(IcjXIRvzX<`El zC^4ivLNSzU`{oGl^PpoNwvUCYnnf^NFi=K?M03xhhcGPsC3-aHqJc|TCZ(}_BZ#$T z?la6gG7ty-leUPS^0rU;k`ubzZ}CVb@i>`LT^TdncmCh$CPTp`Z`wR2_PJ>XsKz6= zD+hwu%cI(~2L#W$VLu=T80npPAp=jZieYX1Ozp>!ie%7fPFkef2w!~s$`w5&!ywMX zWLVKwYm{y|2-O}<@Xp$jrPU3rVV&Fx_=$Gq4`@7!h>ya41PE}bju<~XP%;Wl+DoBveI8rI7KnN{Q)JbQ5|CT8wx`#zD=`gV~C~qzkXPCia%+N z%XBUi3-AC1Y+@DNuN{Lj$*|&ak2T?cajl+!+7> literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/AppletSecurityManager.class new file mode 100644 index 0000000000000000000000000000000000000000..cab207c3fb45e6e1dbd8aca30e261005048cfd75 GIT binary patch literal 1193 zcmbVM>rN9v6#k}EwzNeq0&*7xwWZ1e0s>VcL5P}yMYM({CJxJ_3~YDn?kvKi$Xk#o zB$7z@W#U`-BF3{zON-Gz{+OLP=X`U{cP_I(etrE0U<_#uA%>}f<>`jWUAM&5mac5u zbah@TnL_PK@liPXd?2g|!*itCU*;As2uDMhp=+D(a^2)sLI1|}*gl&&jn;@g+V1ZlbDg!QU1oy=+IVCb*rz2cc> z)|QqM&f=aSN{W0$(TD=OQq))R!Q&=%puJqQ0P=EUTNo;x%tvsap~Y|nS7N~*v5d_( z{n^ngvttRRui3_qP*utr#u$345np+hlEs?xMex86y(d*}S;OQdaHWhj&6q%pAxfpY zXmR(yJ50zm+j9)zcZ{L?ufsp$lfwYbYaP8LhLAtBbPCbZ5Ft$iot8-UHPPW?T0LLT zco<-s=zBG|IgT(U2s?>p(si7p(SlZz=w9HJ9uTgft?ct>*{4i>N9+Xc>&Li$nmR-0 zCxj1a?=J7X!G47P)}bTZxe)GEgfomBAW9cTecSM7G#;Qi<>SZ8kP}Rh^QluJ5`s_p zML=tYD9<8}Cq!zVXgx&_7SW4m7{qf7A%jsY)6XS~$5_Q2-jFp%+P9=#$9v?#@vbIa Rd6BNfLrhbe3^PH@+210dF?Rp} literal 0 HcmV?d00001 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 zcmd5>dwf*Ywf@!+GQ;G^BZ2S~1C&5QLM&FWAe6U+CXr`&_?#q%WMDEAW=?pCSe1eg zE~Qkg;G@=xX=?>UGC@#LdwpCh)?QkzqP4c#*0jBkKJUG)_I~TUG9eLK?>{%cU(Pve z?X~w_d#!J+z4o4$K05XkfKSVlK?DTF_3`Gi+E^r&YKmA5WmX~)OO-{MnqsE4E^4kf zlVvk(Vo9Vvh%7540eV3&*gy~={TgbJVSk-(AdFBD7f=Cvxt)~^V>kwA zkC6s)U-zD_Nny6)<1f?9J-n3?$t0K)Y z%WdG|#ujxf&*e_hp~?(gNH^m=c3PZajr`0G9rjRdFEY>veFc3gqH(jTxv|DfE{W8{ zZ099vBeCj8GOD!8%(5Dy^gv0)-;W`hecV`EenVrdtS-@5)?hWpCX~%iG|pR6S>a%9 zPRvv|O)07lV=^ucg1riLj&t`hFctJ@kZZ28QRkZ{6L%p5)%G(C%)~7Ezp0rpzGSRp z#|&&w>B@19ohcN;9D*rfM}sPSnSpt#L@z4g#7GG91wA9NXnkA-DhyPrK!^e}lo`V1 z)FKkIv~{6@McSHew^|`A;dg@>t#7cKs|_skMxSSMLs+2_4B%SgcQURpa3!vC=AUPC zZHSkLaSb9tTfktnw%N%9`YlCR|dr}XR&VooXrRpU?q~$R1QzluFMpCmo1Bno- zVgyh5N6@GUYsUH@)_Fmf0TTlou#u}Z*EUCDoNquk04Z9ji@eUjW?iJh&dDN^vBkg* zo*QSyQYv<%ft!?-zEu8J17Gw+7bj~qd2Baui`q3S#SEr0w;8xyWx|RICqstt zPXZaQEBKOuUHCE;h{o&84VSMvLs{2(Mdd+!MKG`oio%7NBJ zV$G%wRM_3BGvdM>JB;1ftBG^p$IM+F!aZEi_|*|kv>W#s_!{n~b-CA=@j5|i<~*Ll zUFLCBWrEv{2Nbl^LU@o?C`^qj*KT$h;+4{AC*BpCg%=`gcP7zc6Kz+(y=-3I1!@AfiM zD{-hmxW-Fd2XUFo$MnIlIEV^;EY!ypAw0=^(iqvuZ8h4&JaiBz3_Pvl8XULMYY5?4 zjnY_ieKgK&P*3O{#6KH&P9=L&a)HydfK4I1z(iq1t(YzKF9u#xDNTw?lo`Uyw2`&3 z$!>nd!1uLTLu?6oA^dxnfuh+-x27auKecVP3Qz!lo;zkuX zZQ!lU-cB4J#C6*Ej)9+Qqb@;*cCn>Rw-ERKwLZwDA>+bA6`W+J0qk@4%ZZIqq*gwc+}`k>R>@rpi9>7ycq-?{aeW7l^4!N4Cq z%cxZx^Z%I(sEb$;?eyOU{zoO$IkU+N;jbj>OxBf2x}Y5&8TcEc)XrYB9k#tEtqe;* zvVzj1)1EYwMUNSYGrXmzW|NiOY(zRLQQA&yN-r9*CXuvLSi9sHVyH5@{m!(xA?ZzZ zQdT5hSF@3Qq^}|UR78{MVuu})Jl*~xHFgG7p#g^EYYJ94vEV7!%o>tGoU1uyHb$CM zW{4p}y}6dAOxB*NQoTMHN9{Nfk^)ZSM2%KX+G(UAqqLJ-m@%H*7QC)~h{krD)(4^2 zj(7B-AR}0OkewxEbn^0)kg#kF78Ga+J~bp|bV4{JtP06fw2^lam*@~$fRk}CCo3pW z46+QL%1kShn5^ZJGjg;u(Uh*f@p5!XCUcPm1Lm+haZna{WrDpIRA^0X8nQ%|3Ia

      L|jl5vdIdlTgO_&S^8GPAwFQ#;t0t39_fJ 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 literal 0 HcmV?d00001 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 zcmbVNU3U{z6y3K?I%ztkZ7QV|KPo6RP0OetU%}eif>hE1Z7BjGOw*wmn9PKk38kp` zf&K{n1HSlxYe}KHmWwAIeE09D`_4>~Nhr&;TwS>{J@=e__Sxs$JAeND+aCbl!S@Q< z1P-m)Rjp|0o>$TRlIA;(myui+Qr zr?E5i8dA}Tv_Mb6w2k>{dBt#-^cBkx$P}ESZY}GsDgTd*3BP2L@!`V%QISP;>Z_}v zNCLY?!n&KZ%V(Fn@CNoO*dwr`!CRK5;!V6oJ%}N&Gm4J&BcHuY*+Mwhza6@Ox@P!O z)m77(w#4m+i4%Lvq!>qVl&vM&jB!J+T7I;_%13Hd zG~5HI<0_BAyX=D0Aee7~k+_bFzH8cRts(@TdD)f;6(3-dHJHBP>b~O&4AhbZvppNx z>HQ&Q6inCjYT8wC5~n!QHjh?}ZoHK#oR$uHnKPfm$12XC5H|0e?$XLU0{dRfJ-~{} zNn;-86r8Q87~4~EUXE0Ual5Kpo+Q1fVhI;`JWIMaAMoS(<6LFJKE`4>&O#SRhodl0 zQZ$(L!E36RzUjK?JU~NDs-3i}WvQp>*zD71xUS$DC%iHJ(~f2F!r{KBLdS|gm(hq3 z&>|s%oDJt%BLj0h36=Cp&iaf~WMZ2==xd$C@p)C` zW!32!KE>ztCNR29lfo#|(Pr&RHS*-im$y<`g$;+NoErj1!fxRznch*cj=N06#-k=j0}{h* zZaaTTwDBv+F9ui0Zvt2OdBp4y^3SQ+Ccnz;d@H32*6x7jQ(VyGGa2qZ*@Y2EFNzyqL z;0%PmbsQD@u%Af0(2$J~kMSuHles4teaM%PS_jR*Tnr{zhe<-i+uRrOqU0*;KEXH% zlX`-KxlJ5vMOugV=_WJ!l#t2TN2&G X7hCvRpcU>xOuOy~PT&E<+VI`Km(6Ko literal 0 HcmV?d00001 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 zcmb7ETXWk)7(Ht{k>jW|brKhvUfcl1cHD@xT-v5U6SsvFH!Vq;8F*kumbbP#w&ao5 zNrwmC;kWQmW{5ijGw{xjVmK?wm%5%QJV?9xcE5AZchleh{Qf6^4eS|62y8UGp5?Uc zZntBrrlowp)wS$SrzO>qE01MhRs43__qIaQzUtKsqy!e8*+;h3vb~1&sP;@c%D}8Z zF0@A8*2qI3sqBV8x%x)3$mzgtYzi2T?# zdUChduF2rQuC=5(CBd{T&-qs_AwGuD>~i$$~KjX}7!ODEElql=K}*8&ci% zonBjdYTNG8zECJeVR=$nPxh*t8LZ+x1Mdoy{(IR>TtZ%8p71&s8aj;+1fbE1CQ4W% zc_)w^>D31}1Xc?Xci2$-Dsa8V=7byrR|U?E+HSAsDYq@}J$GbBxxSZ%B~aW_O13*n z*7M5GJAt&7%)8!^-E!-Bhk|MplxKA78I-Z1t8|U=O<^C?bI=U@V_gZ>*uX~u7ef^~ zPY>NQcz+vlX340To~X*V;9f) zU^Ez2WZ#or_Xonx6n1ushZ%f@2L^UX^ZF>8_!?D#xvo^(e$T73%?)~KKl&fLb=71} z={wt$ZllQ`LT2CZ1&+M$>Ty|~Z1{Cefjnm{$!CV|gdRWs^%8pc!j+@P)!=gqZ}HY? z?pi!gaa}6C#6oH91dFBe36@J&PjL2E+7oz(?;H_u@vZgV;T_FqYQD8TZuarTq-HgSW)5>{Vhh_LS_OAw zG%NfDW{9>t3G?Gv=rhC6@8N#zyc@PgB;{-}xpKabFGppLiuDtN_&LPMvt+zGCg&k` RiKK0hxJz*Vm|qEe^Dlt^rosRK literal 0 HcmV?d00001 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 zcmb7B%T5A85Uc@oWkp4Nzn=#|!}_{mOw{OU^`gOe9AE-#mKicTtMRkENTP`!;71vI zSQ1P;d70g=o~r7u`TBnU1aN?D2PuZVri{IM$fKykP0KS%g^|ZQoluykKs*cWU23iL zSr2iLVJJNEC*Hr}B{;+INgxAr$}qFz_xd51P4Cv|KsGDIDnsT%HH3>avN;UFWk~N7 zs}6F+Nc5hKcdm3pXrI5R*ti%))&;{v4tY#6WFujc7Q<5CgcB*juDRq*p~=d@6p;p+ zu`x=zC}74K4_nE(9Okh=Bk)Fpq4Z1aLbW?e3TZ0EWDV;u07=*nq_~OOHKFf#Eff@o zuj)Lkavj*Z4`xg&h#1QLf6}cmIBgL{w1}1c6Cutj@IhgLe2NBo3Rk5y%tH4f` z|MhBRtAq_&JWUS|`ZAjYoeouPLM^^l>SCnyfzgL9#@;agfx^RX7t`0Jy*JF>ztWWy x7U`TNGEhba`fgc5Ph4twd)!JElta3DFo4^fE#Y8z@;h@QVNGwxp3M#D`%0jYkAiNjy;vX z!wJ+we*ixUb=F0dLVUoM*E8cc^XAR?_n)(K0DW|PG#H+ys*ID28rsS9cuX6aPzFPL^V95vx{I5=5zXOVMbyN7D%ZdRtkXNBVvZa{^^i`FcCm2*qEEyD literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$10.class new file mode 100644 index 0000000000000000000000000000000000000000..eab6a10f09a4b007dc5c5e5c8e10a2c857519606 GIT binary patch literal 801 zcma)3O;6iE5Pd@o4sP1Ce55V?M50niTbv+qsHl2DR6+{v0h9};#aTI9IlGp?pLxBzY*( zG?Dg1$y1qy`$FlpUe||5SgneVr8TJyf2LL$O_=+tw6fm_U)ud&;zWdr&~bQRGo|D0 z|M9F32;Pnv$^bRYH!zDiLbI>5{85aLWp*fz6G>R;n@A)Bktv7&IXyd4Iib_9YP4#s zZNj59p^g4CHbvfbWv7~+2jtr8l0TFY$5Em89D&0QTOCTF?#r5%}}k2i!5Rismb zH1H1ZS^Y5=C$!o}(_*X-&;{{k+%v-;uZOYE)*(E8fqLiTr_X1o|1Bc|K7%syilbOP z#+|!3H1L=aXW$8%eCMpEY`MC1JY%cI-UTeOXNi3tqveuoi;;_>2NKr?a9t9#?k?{M c2+vD`8eWu%FR{Y^fHPbUnBofgc5Ph4twQCIN2MymJr9m_)#cgj@flE~+q!bRVa^bXfR?b$=uH{`9_zj%O zKjB2x13!Qtg*xk^N+CXA%j=o(n|U+y{QJ+vF92KU_-HV^NL3jp88;^9b`)E!GZXVX z&xAdd;A)1(rFoRi!R$nUdp&TEJ;)ow-f?=_*6P^utA)Ws>=-H7p4BdWRqcv0Q zGTi8JrPbH5F3qN^I@R+8WNX6Prg3v#7%^m6t{K;j67GLVM70~^qs`E(Yi(kO*9jr+ z;=Yf24A1M5rsj$8080!3PZD8Fhk6Zok(OhjEcJ1y%OVl)q+8yc6ZMrFl_7eslqmMx zFCb`lt$meb+K^fY!jAMX!ZWOrB4f&6Xs>;m-cWadO)yf+T@89jGV*=0j^NP^1ikf_ z8$S{Js1PBYVTJrgC|W7`y(=6d+$4`Oa0@N^=B#ezA wtcrd89C!XDIwRosil}`Bx+a>z!-}YhM^vtX$9O{Tkcv5S5Yfgc5Ph4twd)!}TN+x*S7{JU3b=(6YRjc+C8QJ%t#aYCbym(IXV>zs3;YmH z@FzHdIPe4bQHWU=RZ8Onw!EGhznM2P&%git`~_eK9Ul#b$EhmgB;&^9+>TMtk;24VRdffx4D&CG0g5sCG9JQmz(|f{G7)bS804=3#roG z|A}-54BmkriV#iAMVP@XL#r>9cvFtgL~+W`GQqIe*9p%CypYcS7xe5%8isDauF;yQ zb{Xb7Txs=btV^@)s!sJh0oj@Gp3}HFFN_#6EZ2b%2FREx-1fLB;E4noT$&-s0`6-r9^Sy zegQ$dYaOa2(}vVK7IvhE5guZL6d6+nLwobx^oF_vY=e{{_cy#6ti8 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..bf524e75f565fb570ebb1404de37c3d4cdd924f9 GIT binary patch literal 973 zcma)4O>fgc5PjRYb>bM(78<@kN>iGTwr+q63gQxq6e)#6t6Vs3ot3l5SzGp|fj`3u zegFqV#epBdk3!5ks3^op*s?t{elu_0&iwfK?K^-r+BTLLb^g zkK<72GbyGb@s7AuwI?<#hRr;1AaoRK?{%zYq!?D7NhS4jhNt!ZTYkp9kgLEu)`?U> z=YJxN0fW_zhQdJsB^S$BVW{+_60auXQ<0qT(@-$1_amQ&1D;6Z{|;JuBvXb)Kd;do zRUL+MjjKq#A4ik)z*Jr6c@EN^^B$4hm?x zDa{;9X214L2?n>Plt{W}8wHKAa;W?;N@;P9gdRmh7anLv)|fJkwl|BzY7B4yMvG&v zC3&u~x}4b&FUd zt3c6pT%pKSidp1sWL#Z}7*zQj*IMVe^95Uf(|sh`PZ?cx2ECvwqmj`Ss1YNggfgc5PjR2I&lo4g@*5sLQ3<|)(waQ3gQxq6e%r-R=IH6IxA<9v$pJY3%`gH zNE{Fq2YvuQ3Nh=Tq7Wlt%l6Lr&AfRt^W*2Y?*O{!+E`-P3{>X%Ay3no>xrkMC`>&b z$Dzp4zY&){DS_&{3?t*Rht7Vpx7ImDDd7o;8PW`3d(zt^)5+CsGBy z|M9d&3|2oH3kM}sTwK61Lv1LPILM~QB01v6phnrVOoNQK1E@ zdJNSDSCM)@jk0vtWL>Cv4$_^o9+TXdC#e`StQE*LQk=bazQ}u%+Nd+Mi%Og8;dy|A z>$qv-2E#^C(1IQpw{V-G%za;^Y2yh)z1f-x;-}hsDW^iEG^Cz`ySQ)T9>dBXxdWv| zAQBhrctA;VUF7?RvOxt6JhHJtJbHZWx+K}Hpj=^RE`;)_?( z46q;J+y&>U-f$`7NIHfLYxNi=rhfreyFDZ+?*vpB8R2)kgkIp$iT zht`K|n@&ft=myH|&erxfgc5Ph4NI(19~g@*5sLQ3NVaElNU3gQwK2`Oz4t%3xnjk9vLa@Ll;F7U75 zLV*K6fFFgJbx@=f_{kY+UkijoU#CER zAr#Gs{LTyq7Z=H+46LC+XU4ijmZ@9AWwNRiUB?xQT&0*r-bTUIr-(t-zvEi>2kunx q?mXQ$qCG3fli0hR#0w?E_#;nx$rFZ+QsXs0;n&VS0pICB@i2cEzAJv5pyr@+fNO zYIq7Ta23~eTw_=m1sc+0;sy!~8Sc6wj*Dwl$I^4FY2X&-bj&j3{}yLr9=92EPqxJI z?kfdwEJp!~CKhm)AscrO;z9EmW=f7@4Hrn!ESaz{b$0i<%281{s;V^qf-Re{|Af_5 zhN#^QgiIL5+%O0@19Pa1dtovP-E^~0EkZAT=B zVavn=Y>=*i5K6&|Vg6PVD_}Hi>PgW@6GygAyM1W%0-189y7V5IcY_FnR$~zPk)miK z$S$A6!Ndi!2!V^p(V5!iX{YjLaEW$l@=jukJeSF*ku^QIE1(m_VOHzoN+nohh;)YU{LW)YJMe3X1pw literal 0 HcmV?d00001 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 zcma)4O>fgc5Ph4tbz%&GLc{k*Ar(#daLWl);8GO{DTPC;9N@HZR?Z@4*V;sdt4o*BQHH}l5FzrX(gu!GGI4Tk%fDw8zl))w4N6Q^}<6J8X# zaC0d>3X>dgsd`UC1PmK>;7mAOxa4i&q*e^8&!v*?CBw6=;RinFNzPT496BRaw);Pk z{)i#i(-RS)iFS+?tTJ?lQi(U^Y%I(XALoK$ZKzY8kGPTE{~HY4R9c4qu&&XXsdgF8 z^tjUM^Gug^+gDxcc>%Js;60&n3vR5KFs#>%>qm+9Kc%A5#)jxJ4C-22(C{>&jVrho z;wr;tUDDD#F|OkVLpT>^tSxE8-Z8Ye$;z2fj#@d?rAfsr>Gf;-y*~ESGQ_Wy5@yf; z1%l-3?5i}_mKJs(+*D6u+(VC+GNTNJ?$-Ndk@_QSgVDnL)u4yAMt(@v5dyk_*5JXz zN8ix;QXwKbqY8OUC{mUD!3hpA&XPwNIEM~>^VWH?eBBl3}_v9{{XBr#aaLW literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/appletviewer/Main$9.class new file mode 100644 index 0000000000000000000000000000000000000000..e318aa38ec4498d6caca92a5fb3fe7521378e936 GIT binary patch literal 799 zcma)3%TC)s6g`)?IC0a4Qj$KQMFK(6QbVOK5Qq(;Ql$V3P&TXvXXFfWW-NP5%V)8w z)I~p_AJAQYrRp7nKvBG?EsyWHbMEWhUw?o61h9o=A2WotSQlZGh&)e)9fj7IBo9TJ zCemIi`Bi4&p-_5d+lNP3t|G_Mn$(8JsZ~Z3W_OiVc8{>V-oFr+B20vi!xNh+9q;^) zr#m2c`(`Ku)X-?+0cHuUzS8oj7@y1RRGcT0FyA+kNCqNP4&ORGJ5o8J+plW0VyYd& z!xf>8z8ae%-*j20dY+(cO`wlFZYr`|4hijwaos4v!M8}3+T=bugkDu^6B^zH5b7d} zi?P&}^PHF>i{xkJhHto~d~mH2nqRb**}hw$EaUhCkj8W1p>4c>DtO-n;i3-%-CV83CU`$^6YMR*!M- zhKD8|G2#e3MvL#9HOH3ATgMZ&YV4iIQ}!&d&tudsYkgwmSae^+wE_Go3v_NS?+Or} bl?7^eUIxCvOa2EO;bOogUh(PSHJ1JXpA)~j literal 0 HcmV?d00001 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 HcmV?d00001 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 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 SY}ML}^W2umCR*Af7yTFLppG{H literal 0 HcmV?d00001 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 zcmb7GOK=ob6g@AQOiv~agn>j7P&+CizsUe%A_P!~AR$9Q0zrsTJDtv?p{IN7=?Mv< z$VWadbnTKA+ z09$ZFL6yL!j8jM%ww}-Dbbl)4yRMy28E!V~I;no$w#Rkj%yHkc6+{H;PwUfq%GRAs z>hSn!)9?kVZ8sy(oGyJS&@jb?j75ty@21x$5Zh_kmSg$5Y2DU7A`t0!C(JnNutI?< zuxbIdUlLKV5~~E1jOh>QSyNzbTYG?C@;vN&gzt-EHP$Fd2&`Mqw~DoB5U3?kKt`au zZ7EU+UWt4y1fEh+gD7dHEyo-xWXDbKm_BZkS0e2ix;>(MmV6HvqdQAlR6t&vbPLWzw|2s^ZLN?u zHMij9Wd=J`bfSwPnq+VV8Y*!aQP3^WD}yI9y*#VHdAVvsfpH|UK_Kdx`GU=Y?JgC- z@*rU_7hF~9 zrD7Csk)vat9dPo#?ifpERG4Z7Zwquix@Z^ITMX}VCI_&-rTdoa?3*#noP5yEPFc38 z8J@{?C!>wVFwRLarcHWoR?CGs(MDyESHwV4wPW4dK*n)BGX_@drUBbFGrGOUFwA`Z zQMeY3ONxhFf4^+qM;V{tK$&lBdap)Sg#(wxC8wAi=>lsO&F~G6lcc-{p z?yu>%i}efJqNT-Piy9ceRXclbS^(n$KiK}r}TtwTs~6g1;ViI(&cMI*&*p-rfbDKn#3KLs9 zig;0^@1gf(V*6e6@pV@bdk%HY;kBXU1N>Rt6S;-olMRurJ8GJ0x{5fsBia;wfX|zv zMI4#K@gh!shq3f6TsuM363{yYlAm`abY7ZjiZJBMM1V~}w{U9Sc=GYa$$8_c#~F7% zz_v1t(=_fZ!lq8?KKC#e?;$QLu0%vbBzgblKkFCb!i|3C9TrPJj^a4ZmhP7@Te{!I z`(YlgqJ=Rw_#@0jJtp~{vfjVjUI)EOKjdnWP&!Dq2R zNG$jOJ_>QiN+yQrj#W=6t-d6>$he=>pFw&?aIWT=ko_6& zF<)`QJ)W3}jtI^6Jl*uiIs6>Ra+sNo+k{Tl7-xq5mq1t+X;>su<$TYPF4920h)i$R zD<0LJ$(~Susgz91bIF}*9I7DJ84vKa%*T3U;~rtJDu?r*k{Ra%LaU-eegf$7@E7@K zAlEf7fUO1oY%DXr!q$f=>UJJ}gVWi3v|%-uzN7xNjBN1glnmmyS8&;X!WP)Nf;HZa zbrsjj7#B^nN;MbP*|N&hb!;$$a053vYLhXGy<4UFQ}#?g^iQtFhrqCuYE7ljqzHHT ZT2s*7lDLI!-W^5^2b|CjuNFMq{{uh<21oz^ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class new file mode 100644 index 0000000000000000000000000000000000000000..cedab4a0bc0c5baeaa0f7d41a539336344cd4276 GIT binary patch literal 1394 zcmb7ETTc@~6#k|y-DOz>R=Fu4mx{e;7sMMBA%@sQEMQX7r1;`chGofKn%%8Yf0e!n z(dZBGM;Xsv6cRQj_F+2b%$e_UW@dl>`uYRFGS($z7^;TT(>oUT{Voqq^uTp3U+=iK z?K=9_pY%RuUvtkFo`f93T-qK(1a3Fb<1&U}id(|-P1k7#p6M72i^aw%f5&x;JBA)7 zYo)6xhTN8WBxLjxQ;LLY0$X=In+FO8FepJ~SV&WqIN1@t&kfgtMu8yJ%?$}k=k1>$|6Cup$%72}v-$R9^?7*`! zVhI%@{XfpavW)u-(;r~&@qbNkUG;J`L+--n zJXG-rj~QfsbW}GTZbdI7&2jRy_PPPRrdoI?vgJC)o@0GrU@Iq5la@K8Mn%^nJ%rJ6mqHbJ|Gr9M?b5 zS_YFe-lRRi8jUsD`3!^Dzz8jXm3sV&3p<$Y4q?!7AJ7L=-_K-~~SF&fA z{Y=vsT#3>zXj}afn1lrssD?H~urb(t0`?JdWT{ZDRL*f{>I`?w-%xIshqtwRWJasf zkUPWD7pz<`%|y1hsR^%0VuK#^4$0ibEX50GMeMUN?qBvo!VXgN1W!q82CI?wH8Kyv KVsw+jpY|JzpkAW@ literal 0 HcmV?d00001 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 zcma)5e^1j;6g_VPx|I&*1i^{QhTw+KI>4Vyf}8WN0SS{C6BE*P&rvMxvbIFO6>0)R z6F-0-%6MP93CKwN=e75}d(S!V-t&I_{{9m{0WTy(7-m|wuNju^x^3Ot(>%wqT+MI} z4jfzC;I6B;xGQ0RA-S&~>YAn7Ep4l@&kc`ZxU{qRs#@9Ie7R9!NL9}=YF@{*TdNF- zvSYiRZhLjz@_7vLkWu~1s0NH`$f))h8Ai7&wXL1)a%DFpVMvGgzGqt6Hg_GrWAKu1 zH!V&)v7%v_w&|@gM05E%!$8?-av4daBwS;d47ByBRd5|+4DlBCLNEq3cljpytI6YF zxS>GCFsZJZHsACQ8ocvHZ&+M(#W8fNu6IlkcQ=QMfmRt&+){883DWEBnJ&X@^*`o8 z_Z51>CNs=ktv47~cNn4>83lK6SHcX##J|%j`KHz69T~H@FJbPt)LIpi6nLov&( z4-DhEaOL)eRJ+sP&>AK|Op4%#)4Bqxk$0n0~}mzDej$Mo^}?KnPU`=v2qmTNhIaz1%XA{StHE#b4*!0r@MnHR%wl( F_y;m@5#Im+ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent$ExitTask.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/Persistent$ExitTask.class new file mode 100644 index 0000000000000000000000000000000000000000..36daccbc48b4b159fe4d4b0bfa29a2ff920f7efd GIT binary patch literal 532 zcmb7AO-}+b6r94s!nz8A-=0h~K@U`8;z5iTq6rBxCJ^prZJ@f_HQTPypXEv8!5`p{ zGQM3uxOmXZn@*?mI`6%`zq|rCz^01=LwllA9)!Y}TVbc%#&KwP5Jyq0`K3&ZGFEE4 zeRi+xP?#GR4ny-=+zFmq74o5qWReLC&P@og7 zf~rf56Eecm-V-X1x$IHRWZ(#MRQ=Bfg!9B07Jkf!#By`-8MT?&qd$OSIOzP+pnzpk P3s}J_p_jKh|^U^JV{#1LvmEo4q;535>fR2oDUdPwL@!gw$Z zqv`X}B$|f%(cmS4o)K32nJ$dbCKhQaYb=JJwGUhfhX>)|Wcq6SB#Z`s3eLx$g!*2R zDy_^T!g6mXCOG}Al{G8z6Lj)Ud*=q0;h2xtPg3 z60=mY+F_Q6G#0tC`5EZH%axHV*LpzkCRv#$a$i|O^W2?XtAXG@)mr9#>!mDQ+#&2< z$lQB__sT?~IN^={4Ot`am3>)8*GlH73m0`p8yqjes?`t&`G1qU6NZK0?Dh&0ba2onaC`bO@@Q6po!5qVCo=tg_X<^<|pO}h-k9fQt z8KESDHw}~aaRJA$JovZalxUM-Zc9jEUNE#e7Zr6687ey}=2b9U^WfmBi!y2+s;D!R zJGP)U5R$*nCPS{@gu{e0GzKaPlfzI88yCrn8H<#mKe)6EG-Fw3bf=|G_jJN@YHYe# z#%%|;7@B`y@t_dLLklaUqmU`rW~T7AVOY8F!a+B1v5I>R?lLT%IS@!gB5M!#@qoc0 zjWfRYj;K4q`O%6pE3W2gmJk;U7~BJu>4@)=Q-nI3#CpAMDaf=yO0IY8+u)>8?WK$o zl?pj}#m!j74tfl0m(qj rI79kKyq|KUW{$j2AXSOsA=-ph#-qIFG1hV>5}9^TPlvu0bkY9<;mz4r literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ProviderUtil$2.class new file mode 100644 index 0000000000000000000000000000000000000000..501720fe305741fdf93f2e87c0a7876607701e28 GIT binary patch literal 705 zcma)4U27CE6g}BlJDqXtZnw2+)%rof-7R#gFA5bwih{6KVYTns*|3|ENlGR&(0}5C z{s#++;)6fHA0^(5Q(Ez*56R6v_ui9xPx9;ckDmY@;(mx0!(gV%G*i4Nj<}nr&KOms znaOjb)3?@Caw_b5C)MVo5N(F;A+LCGxfUJExj(-8L<9$at=?2vK+txI6to)?gQLW@>}n9$2~dP2TO;^Ed;B*Sl5 zI;nG(Jyu72^#}CGPpHPDD_A8?ksko8S@8c^mP+S|B`^*{b?r62$R literal 0 HcmV?d00001 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 zcmb7G+jA3D9R5xlx?#KA!bK<*0)q5n8*WvhTv{qk;mjc_-5EEE`-JCH~j_Kx8=O?a9 zD-dXOyu3h5Cfq5}FvW$uO^Xa?>Gul6k6DiG+QA80x3v!o#0I>a)X|JJ8VrGTHLn9I z5d&+nPC(1cAZt!bflY1gk^eCAP~g*juZ|7as39S+b-CCEHes{CYC4LN5$JAP>Z#(q zUh=CU@REU5XkwZf+m+eU^n~;;niCH5N@P6CbcRjeR^Ka&O~=Aobu^;YKnvomH<+@E z0_~aqi8V26HgmZu`~s)zX1#*9A!(I-JGfbOk#;A&-Z*wD&|WdH2YX42bOWiN6gX1H z|5BV5tVHbhwh!yrhjtBZi?k6jWS~RQ7$aTNitN`6bfKHPPI`XC>)twH7cw2HfkZcB zzd^wsBrLAHk#>uL=~_#4QOQZeVSz27B#IRj=7p@`b@Ex0Ta@UjlI>9CalFav5P1)5 zGq64P^sFTd>LGb!%64SZ@+H^Zd~!@j4~{B&$<^k1We}Mj95-+RCk2|!LP5GYfv$R{ z3vgYO5DDw2ddIty>AdUtyfHl(Fz}W_H6D18tzz_yfwxs6u}La4jg z_xK}$4K+;D>{fiA=qP}1hyW$xX1l?#>6F+C_+m-NaYI0_R;cdiA*_kx7P%Tv+Nx_X z#oWoHx<_}^&HPwNZFFJm#rIEOt!V`%(;1xSXX65vD;bgIwZ5G8W@I&V9CtN*_5ws4 z)Nvn2m9ifyWq-jtS*KAf2wf4FdYKwkiA6nCAM#4RCC?Ch!dJ~m(cP`Eqe*2wz+dJpC&o15W{2O}b z92g|laQqq0k94*^#f5AwqpmV8cKu2S*E9cJxE#)X7zyWV7^?u4#YR?=;SZZEcP`L! z2)l6!2g&wP&V9IoevEQwjAuu24deKLV}au==i9LGC31L#N&JX>2zEz=4lS?J_j>MK zqqU%23rtKf@*}QVJk=QDnvHP9FFdCxAFoxRaD4_jLYne(xc(f44B_>US8<(*keOA` z-sI5Q@B_3ML1`@Gc7$`y8Bbnp{h0wGjkJWSy2aA(kmLs}`ytLT$uWEtmXVB-36lpc z`tS)pWvaW;%j8uV+i;i9kshxyd8Mef`FQuD(D2mO$m?0eVFiulpYFdi4+P_P^1bFavYPoa_q>DN(l7; ze})SOkVqB7 z>{^!L$g0)pSf*UpRL|Dkch7BWUvFu4)qHCu5MvnMQ}z|vP|UXcthuMDE<>^#I5EuB z{AVYKmXE_L+{=#PY(0FD`Rg8vW>--#C#@t=q zVJO%BQyC(iZfovwwG4B`(pl64*Ap>_G|7>4twH_7`8al16<$nUz$j8lTw<6H>(6`B zGmPc@O8Fpx%M8<}of<%Ic)CHYOyVlTWGFxi1r)iMCGrTwA7)W%q_BjQ1eO`5!aFTs z74r-Ul4D!xPGkFnS_9DC5c-Mk>xyxy2GLF^2w+M0uRwU z4Y*G;cEJ5B0xohosk-Ias1TEPTSM^aF(*@ya2t@s~cNK4kGGEp*KGaa+7cb{`MOnh1)Sy0~_fI0$|g6A}YIfFFf; zZV@a9iNWvQ$34CCy??yE0T`kepvDkorixN6$}$&j9yx1u8D-Mh+(lPP%ZnnbmeRPf z&^i(6eE`nTS%?P_X<@Qxk}PEE7@B9wD0j|K?;p(=_}Jdc5Or*}&_I)+9V;WRt7RgK z8>^h^}W*I!NU=Bi{E#{ZNxVhD|O>h8&lX6W_fAB|I2D3gu6uJH0PmAO;a zlmWU7gFo&}R=n>8TAtdfNagy%!Ef#y`=k62WCM8&)WH4ssSc<*A!LM&!3#E?SL2Xk hNHjm>IK>uatu={o8{X|5w5ijf2`Aj8w?}ym`=6Y7bSD4+ literal 0 HcmV?d00001 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 zcma)5?M@Rx6g|@d+b&zE2!e=8i(p$}S3dk~CE8kl6-Yp8OiakO9n0dn+jM7%z7=Xx zh$cRO4`sZw+X_fY{4=|E=H7G8+wrmN#3~>?=f-&fsi#N$$P96ut zH4Q3;Np;0?_@@7{#@nyWn$2Zb+`4I3&9)`u?&eS-(5fPe8yc=7L3+i$;y-?j%nU@eN5@MBMrk{+n zi4Qb9#3OQvaC=P~&-78Q;0Z(e)G8a6=aG+lZYzJP^Omq&hfMZ?e`Zj30vEorF^D0Glpu;xOkSb?C}Pl%pp%i{K{8r__*m=&qu(&`g@OnsX&niG zRtRR9N)|B{oXAtMPPcrOz7k+CcZ})NQk9Z`H4IP#WSJHwVFouTic2?i0p1ab1W13y zM6QF`qc=a0ew$34;Lb5}w6l~TFgW%QEb0Q**4gQ@z-BbjwUoRM6fn^<}kcsAjWz zaeYf`ID#hZO{?QvP+OWHu`FoZu*{}=o2m6*UvWCR**q;MxuMyOjxKWwN~xV@x22h0 zg7}uDo7x64tqF>s(M{c15;Rj<9?n#*3yLmV8`>m|(S0eJqKu%iQn{X>te`?)`J7>B zP1ShH6ME*Ah9GwI>s(UT4OAslvl^;VS35f2dz(>bQ?~^bYdaPmH7kV`U=-4W zDVk)E^6rAx%5}y+l%gc1u!bCUl#-I71S_4~RZLhGKHBj9h;EroHo5Y3du=x0;#0P5Zx7=6f`!9O+T+rVKxb z|8r8}EK)p+q~|C@=V?DZM>(p|19+ZylVM%J9nwlDA+H!GBE<`y_?vh;if4uY5?7A) zsMsesh~p8}5%)aut%6_;1TTQ#GBjV56pEYGrzrRo1)gQB)_9?$!@kKtKq zM;>K5+M~rjRROt(Hlce3R|cqBpfW*afvQc1=p{*Z+|BQkm3*?2Pge5Cz`>)9oZPUI z$G8f5ZdjTbmBT$M540#F5C1CuzlM~rqtkB$T9fvr)6ys0nzSd)GKW1GL$-=2yIp3W z88h-YZ$ayAbAN|09(DW0e0Bl>gHJPr>IY_&lyXTvM<;*pyRrG|Utud1m26 zUx4ZcsBVJlOW5x#nBvw5Q}6_HXIy(QnQISjylW5F6cvy0Gcfb)SGZfdU{t1K+w8lD zju3qh(jTDwBS`On^e2%14ANgfdKdNhRnjiGN`4(HejO{)%uHL69cJ2!>@W{`MVdJV z;wl~UxT{$CoH6AV&0WJqg!n5Hmz%#yxs>~YCnxa3=Mn7irz;p-zA+H|duZ^ZbleL* zft8h$P%hq~SoGT1p#C3$6iHwIM5umoQ2)h||#EGL=PvP&3tk{$P0%7yX>;M1& literal 0 HcmV?d00001 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 zcma)%zfQw25XQd?A%Re6DSvi0C4%F zAi;u9I^FO5-TCwK{q+sN5d9bdVUU|zWQBCDlzuL}wS^P8^0xHiw)EPXtEWu0MU0TJ z^B^CkD5S~7_XQ!k&_??)Vec^g5lnogO+GrB62eP+uM(_ay@ORmgl?*hx~Ug4Ro%&1 zp$PrdX0n*dN;mw~4EiG*!}>9)L=6J literal 0 HcmV?d00001 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 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 Pz<1QCz>7q_28aF+7U`Cb literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class new file mode 100644 index 0000000000000000000000000000000000000000..a9ac25fd99793dde37d06be821a7c5f7102a1abe GIT binary patch literal 1061 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 HR=52v--NMb literal 0 HcmV?d00001 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 zcmaJ-!Ab)$6r60+u5PQXtzO06s-U5GtOz0s!fFpn@7WmIENfDBv*K@g5AP&J~r&WhpL{H_pc3482@FOHoKW z7t<`)$}_aij5Yq8p)op~G4M*+CO6hHh%CzN?=yT|UUH&9X#)Rg za=$PY!$JCgiV4jrYs)Yk{pq}w#!f<(5UUN(_e*L_pUCLzBVCS zd%f&QaPlE&8eIs8z{57gV`8U-jIeq1hK<*ioY0?;4LByNK%1)0+C;d8aJ+4Fsna8c M6YkI(P#t0S8y6{AAOHXW literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class new file mode 100644 index 0000000000000000000000000000000000000000..c8c24d231d1203877683739e16d1cdb02d0ac2d3 GIT binary patch literal 6303 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 R98Z2KX|WQ+8f}zN{s1R~dUXH* literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Extractor.class new file mode 100644 index 0000000000000000000000000000000000000000..c0d819e4c73bb1ede1e8f5cf72f0cdd1f6fb3d7d GIT binary patch literal 2938 zcmai0TW}L)6#o7;$)?M4X{FMDRuRRfP=lZ-ErL*5jkX0X7Snp$rrUNQ$%frcp+)hI z7rft#w|cD?#LH;ISoOgfb@a(c-<;7IXMFUL7wh+Ll4c85U$!UzIsdtQ-#O>+Pk(>; z4S-AWiGm7&l|z|aESb_BC#$=|G1szEPHeAk$J!3Mww`n?TR}jeem=8pN!PS80%1Ls zin~VIq05f>jQ3dfzHY;95eRKIGp4&mpt2#_BM@k{1`HLISfD{cSYUC7nK8O@>3+lB zt@o!4ftn60si%5$+myeHhXHrkWW-hTMx3pJF~dnKJKAnaXR8}J_Ua>g%(P)hIYypsu8lS9j*zS*I#$Q75a42vnED z79*%wfpZm{=t{{#I(Z0IPU%z&2f$qfir%M|-61A`Po0 zg280Ua;OWM(w{)>Y;pdI$%N%4E3jzRz{^db!XmWG=bZWrlPvb<1_uqBrhVHllytH)cW`_7GxJ=-@|LK-0Y{Zoct`In9K1=CN!zMHn3M1p%roqgM1?OBd z729Up`e=vgxGgF+V6&v-Dson&<1~|KPZb2VY6v1EgKyKY9gPADbUQh0ju;Z2Fm|xi zCKc_tR>3s_nxB6Saa_k-h77k$Pm_eD4bcLQDLpe3W4D=^A*RxSE(M(eOT5cIoray* zMSP9@IXxw7DQ4=K?CjrbB;A&1uYwy1ig(v5Va&|Ndd;kl-zw||QNC$zh*5`ws$mZr z$efu`aRU+(lHM{TrwxXr>K1_&r6RX`yc+|)Pzr7nSXMHS82OYcZbhAnJ|twYeho>m zp*4w*anNleWut7h5=j1HJRPALlsFFwoP9>Qo`s~<)UX%(ygARf?1_zl=iNQC-Jm`r+iz`r`GU{WJ<}(8!5JHJD$_e@NE2GkD-XP18EmwEu zwZc^JWhmOG9garLnFNqU=1D(HVKB|F+HK|Rq_@Jj@ymtDslrNvRmuMixE18?qf|+m z?=ins{1xM0!N0-AJk(DqR6yf5P+1$C!ugXke>6?u!g9>jo~IUmHp2b_#lPAQJdN)_=V5b8L~A7*iNN#*>-f zr_oMJp5&2g4ob-y$GQkHa>i%AW9*UfnQv;wPU6nM*SIfH83}fu!~@Nt&+up@G=(Q7 zXC|cav(2GM=zCPjGiOiZ+DI^u7Yn!Vkxs{tVPVay^wO+MLalk-lOoC-pJC}U?D^~{ z6LW+V0N0WJPAo+iF62wL9yg*D-8{LO-vqzCdIDD3g#o;SA$&y3PiUD(24BI#w_MCW!oklN!7n&~-!O_lF@{rIwgNpOfWsc~56G_w zmWZeH2Hqr{F%tb2-X^7;I9ZgI;xEQ(q^1=r-erRXnCl5l;yp@-a0KsD8>CGbAK*i_ gRGw8H=UE89^43Q@Qa!EqcBnV8BNiyl~>^d`B znu-Ss$PEgL4Jum2s(4Xx(-OhE3SRZVt9XIpg}35=)bBTYWYbOXkDZyF_kQp9-uJ%u zes7+6<%y>NY{P$L6iHY&X(oeXQO&j!nllx2;_;{*oYt&h#2nWT=#~u6t0-Na7}p%# zl2CeyVH(aZ3B`fh0STVA__(g17(NvxD3x$_r(x>d$=IlF^=qS1T|#ANd`ycDXqF-V zXI^@oDZ`eqq4WQE6_%hH!oe#vtHTiH>H?k9+I}q<)y&CYpJN&3WNUI_Lbt-{_eMM@ z6vM;9J*EA?n4WNqxM|C%lyHu_lq!*)oWzTBB~)ZkXmangsh|q0Wvr60emNJrblcV@ zbz6lWYb5w4btmnQgw2IchHDG_4$C-?TQ7vuGdiu0ISSTdy^M7dR=FZaKi~v2n{~vk znC7V1fb*G)3HP6bi-x}lpSi%!z{1DRB~tJ=+EOt&<_ zk#HF=e;V1Fifgw z{ugA6Q5mTDo6}R*ZgiHyW3H@ru^(r)>AscpkEa4EUG3YXAHH~FK z(W{uiBr8EnBy^K%4fzzyZk|^OXf}r7CQ}Adg^>P)w@W?*>dry7^8p_JE2R9At9HjV{eJ zCUl!LTeE04(YUiRmf?+fvy3;fSGqf9N<_t5@Ky=sG}EhD(6EkP9dnt{o6-9#Zi> z(Fc5j5Ux>?%nt}l4@=m1M$cQ?ii8iTI16VBdmmQu5y7YOOo_QBZNaLKsyHGJ=#sH$ z+$I*KmTo7bB-ZKzs~Or8x(S}7>GpJ1S}V&Lmgs)n8g(s6qV!`n%doP*6wmLXX||SC zX-N+FOoOM`pC?(=!6}pIXa35(R!nJ$=;$-K0P=0SeU>U7)9tM#?g&A95&jJJ+Ppop zl_|E16&lOd0L7&Vw~Dy2#tI<$*W{U5Olz?<-%zJW)NXa2;u-v*=BgVkHkGz`ET);` zVtf+byC>B}fo12TF3m6(CZ3+8lSpPyWx=dsd_%?8@O9DRd_FvbZ_D@=%XQgVhUQd! z2amGtXx7-2v0oS6Lah9ricjKG!qE3s`~W{B5K-Nn6bB63cEpQkiO9C5t%@Raexl;1 z_!)H!)7CA<-WZ6aqtENzOH3je&UtZ)G$K3PL#c5FZY@;m;~w!e3aaZnn~`v>`B@j*VrJ=Sn6o`2nY=Q4)xJX^pvA=7&5Gdc|_f`Z`=(*6h(pU5_%KhHrmA(}Es8!1!`1ZlII%d)Z<8l5Pw7bv;tP0^Pp62=Q{2rj1jDG?Wx?E9r8@N;spIDA@03(^`zs8d5n>a-|VhytbZI&^Y>jQtTBa?hp@G= zxbjCS{CJS}pNsoEo*Sa*mnr;a4!;X|>WclI%0GxTDg0?6uXS!2-NYzw=DB?fs+pbh zaXUYz?!X1Oiy6O@nZBD@z1PLJIqgptUuOER#7PukFaFN#6wyj6{z=S>c`wJm@NdQ@ L;Xl+U!pr{y70O+n literal 0 HcmV?d00001 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 zcmai0`Fj&p6g{s^I_WTMr9}$0q#)SU$RcQiEQQvlwgn9o)8aBsrtOqu5+;*Mi-;TI zt|+45Zq>S>f|&SO^+)|a{|$fhj}XtBq%=^9$(Q8Ky!-Aw_uO;u{rnU?8n7bvZ7=o9elPR0xsrC6Xrflpv@w`m!@nZ%%B@7D+8hCoGkGOEY> zbla5Ig_|B{#AHPOyb<#$Fra1|dhCGZnDKTiCa|KudsH9O17~KF3Z0HhD z+mA+#l*}rvpi*GjRl~hkcT_CL3I(?m@6Ni>P>q#LN`@5h)(^Bbgak??(yAMVB_D&C zp&`Sj)j%7sY$KhCI|71u1n&x-SK=&3m(Hs-1@IYW6PPelfqpYpoJD^_pMv!Qx46h1 zw3ElCbUf?$Wu{)b%x??oA`+NMcn7^~LHIZmdr~MQDalVfGk8L=v zVjUV~Nty_~5H+q_!vXSTTEoGHJ{2tpD7ZtQ#*H=)CJlFD1FJA>IK9NvZaMb2z{>iD zJRilU+`V8q1U6~#qD;kI*s5TQ!16f}Tw4uy;~w%Oed`HIrEn+^b-l!0P{z zr-tp=K}AQCmZO`NtlEuI?^g+Nmxd)+s$lmF+eIPUGG;tx*gmvV1b+Ea(S}C()u|x_ z*0xMfr3|UZn)}W~<%w<$Ju*w5lgx9kVlN(0uuou#OH0u?4G$tr=W)Xtc1GMD z3#mAOg9_Mdi)PJx*zX!1LWDL6lU?ks4}}^+YNqx zKB{4+ha@mv!yuvp<>|~|+LekVF*G+t=4N16!B9~r6*8m_P7X^aWTV&46?Sop^1zs34<^&ZCHe)b^X7AVm7~jRnGy)%w5-XSvvc`6lYGcC8s5fPfd#r9 z9Wlp@4pTlD7UeVHB$wAgAKoPqEh^5-sqr3Xj;r^=wiM?F8a~8FB*Qq8(c==@n<~D1vtl<}}yR`P!wG_|?}_-qzHdMb#E>mAB+$lubdatMZ=I+orDkQ+L62 zB7>|U3ZRt-gIsN=`yHslPOQK#)M6X4?{)!fCUUwi0FbLysA1?b+{$+?!T5M*HT=wU zG2eCc?B!kZc|A~(VD2itO^V){b67Zyb&-nOb7<&o%A&c|Q|i``HUo zm)t{c{U)!HJBed>!maqElqO@A;1kZ&6C`&zUc^&)nzfcuo+060#_FK&=Sb@S?qLL3 z)RQd2^EgG%0x$5)^=kQz)*faQZk$Fi(sUUwLuZ;p-eO$eqR(p8YO|A7)9bWe{MPP)1ORQEK5ZHX=a^ pEmD;%QdanC@?l)Uj|5#wC0@o^0uL~4Nk}QrsfCrmPxM@Z?0*YI(YXKs literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..1912cbdbdfd40b83a3b6985c8db4e6f16d7dc85a GIT binary patch literal 964 zcma)4-)j>=5dJnjd(HJsVzt$1tgWVcxuVzj8WBopK}c1o^uf37Ww~s*?1sBdQU5E! zA0Q(7>K`S}UeiKMC_dco%y-|;%r`T?|9txappDQ)iD5la<0wvfo{zX0L`Lg0k4|_N z9dN0dZ5Iy1<~&X!j2@Zj)yPP#7#7Vy=FJ@n*qg^bkJusRGpVF`&afX`PVM$i_$iN4 zu9E1`WKt!aS)_Hu;B<9gl)b!Hcz7(bH~csi3@bey z^Yn;k()tt7u|gR(F0H-UCZWqsuC#hT)Z?7`!n#vP+lHUfH${0$y&CZ>7k!4+V3us9 zdwcIi8@0i7iKq$2l7)P!S)U)cIic_7_AP6zQcc;j>ONgzZ9Dahg u{RMabP4<(D`&A@cJ0o5sE8{)|wt^l|fD)S6qT3^c(G4o;A)O9Q?a^QGcI$2c literal 0 HcmV?d00001 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 zcmaJKnXBD!tyEh0#$P)KT_()VdHY^H2x!tO-We;E6?>+b9oIAh&eESYy18pC3gq1{3<3TF&d?M^9w#KA+d?>QG zFO+U<`tS&=voMLYW@6*F6RV6S%-fO58|z%KHw%4QvBSuhN-O({@S=G+wA(ur??s#n zoy2=KQ#$Fi_6c6s3}pbqVuUN04^hI^2tKY6s?Go8lzU3co$2^MX79v7DhW$HGZ5*% z$dt2BoSq{=s9!o)W0OfNHiS0%<{?1!%>gVsQvT^VY~M1E27T@s?7heKoe*F zK!xpkQ7giAEV0E|xPhAmCc-kR93|YsZT8&ZsK?gbqRVUcxV}OA3&PS7YX7$Q$pif= kT2zmLXDtFe zsE~Nz1Ns1egqU?NQfcUey*o2!F6Yc1{rT||zy=~06~f9;PvayNc|H-vC@zdi^LSrm z@wQMp+;rg(R%c;`vM`e(em5zU(S-S8r1Ef`3-)HAPb+p9`BG_Bydu14T@LN`_QipS zQ=y0PZjmWH?6mg?PS*^i2f|{2E135&hpPcxTqD$5|H-NLl$JZwabIR1L_d{;rJhMd zx+gMa?GvYCNf4Ts&J}JliN#Q8qd$+$G-uA#J?Gi5RU%bir6D*ycwO`Lgz z8r#jXR)FhRVvDnI12;=dfMwJc_yd79JjQVN2o>7pNe_8lOIUh)?h!kNNNLnx6axm4w#; literal 0 HcmV?d00001 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 zcmaJ<%Wl&^6g@XFb?q7w3JtGNQb-{Q0=H6jK}aYn5>ir-in?GoO@?GDXC|^Iy#5M_ z3W)_Dz>Woc4&sjckV-=r_RPKa+{Zb0e*F3N9l$19J_>}@k)FkaL}b}i*l}!)NwRof zq;X#;U2psF2y62&BWcal#xJK<8BJKQW0lo6xL|J{`nY0;kx!IX_9>y=I3L>W?TdFJ zPJ|xCJ2q8%)M@S#ysjC_0EDFo7qAebh>HE{(LO5Kj7OoM?F5H*24pYt?Hw%h(712692;- zO`Q1?WwvX1tq7N~%obi)V9$Po_F3;HG`Ub5p2#W`({@dag n5A-{4Q8@&jvkgOP94>QP65Z(4yN`STNzK#+L@7Nl_CFiM|c(*bdpwG`mxy{*{S@ zL=!*2FYrNs#dv31NNOA6!_MBhd-mLO?>#^MeEkk!2a$^zhSiQ5M6H;oX`h>JWVDXc z=!7TH0hg-0>%w7JpN8oOqx&X$**8)vhB?!fX?dFno72$ejCDdjkxH7U4Ey2b&_?rw zzvofRRVO+$iBz5XWTtY&;52kw*Q!4Rd&^s2%YknLH zhQ+3C@%V@*(%wf&$2Q8acB%IAE;YJP=1QxNJv~TiF03(@*|GE!{f$8$)2#YDNkyAs zDVzk`*1f$CEs?Dtbx~rdP8``E-5Ltw2Vc`QGPS9UT9!$w${x{6WLLs%W#WRF?$JqrTs5sGH$ zaWPN%97S*8P#(xvYp3w4rOl#q2LE%0E70j>ct)6?2c`RW$ ztCh!1iX5tN3q|^Nn{f7aC#(33Vyhvjeu4K5D{pFNxOWOH a-}V&}&kQQ0$|@zZ(Ho?!MyEr&eDoLBsP}jP literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Main$6.class new file mode 100644 index 0000000000000000000000000000000000000000..126639456ef8fb0a1a18f9dbc070b8206ff8d2e6 GIT binary patch literal 966 zcma)4O>fgc5Ph4Px^_(x3JnxOX~6}@2;6e$B?t+HRzgYvsi+5TTW6JQH zd2+-}vd5(gw_P|4>$5O@QRq>TydD)&D~9=EAoFmO5_V^y&oZ_N`BW-dJY(36E{1lx zNBlicGOqf`eqp5Qx2Gem0|uv~d%^?5Vt`AS_c4dd0bEoWqUgV~)VflMSL5NKFmL%` zCK#5wI_22`H`4m2LB|qhSi7+IaGQuOhFocNJk;Zy=E6D?ku95kir)m}3C(K6O)h#2 z%h5F0QulX0q@t7{chO{sXAOTss`CdPRRN`uM`X!zb<|pdp$Al*|u3(97YhA^)5>v%88fC32u9M|Zg&SC*e>Vwdy<26) z=M=F$c=2cWRP^@0#ePw9zsq8c6X1C<4|gfCC3KGxR1ji=Zl5BIZct12>2yf92Y&$y C;q2W2 literal 0 HcmV?d00001 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 zcmaJ=TTc@~6#k|Z)-H>bOT7T)QYy6NvZ8pcm=M&6Df)n^!MAC_ z0~HDRLP()sGEC*Jhvv%+@wK4lCBV?@pc_3ly3psq!cB&*oB{Ngg!JCG_9~wG$Sc0b zFjxwz+%Iz_%so=Z4LyeZwGq!%fq2?7&|&1LIfm^s^ z;WoqAbxAw8ixGxob%(6I+AE>Fst#1!aJ}T!!WcvPDtE7?R&5L83{Ge%g0LSp(wH=L znW9E_pn5q>zHDO@)5a#tFdf-M?uwo9Y0Mb>u(8Y;DbFx)!SbXia}MUQz+lmgDB)4% zQztH4TKMj&QoLOfO9!@S)P65*G8HsSexc=8>V> zM5M}2T-oWcgr>inK}%J`nP*6tEm$-h$m6<{o?0`jVwl@!yMalX#4cJYmQ0#)Bq>Ip zg&U+#khDy9qp=Hfhjbjl`5t2W>Fgm4z>%cW31u4t7^E9zkKxF}H^P|+?+OR750Lte znPZG@9V5LJY37bFL0@LW+}R;gUomtFA^p80%!W?~D9r!B;-@nP8R7}lVMEZoG%!y8 z40f>qi4_D`$9~AJfVg20u`|*#Mu=Yqy?BJjl;H~cA}NL^gpJ`Tp3&bX6r-hh4*Uc4 CFc|3o literal 0 HcmV?d00001 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 zcmaJ>TW=Fb6#m9>S$neyCXfb>u{GUpYZaFI6wAbrl$xe>?`a0BeX zPKGhv5r(@$6&e-8rq`wt@2-%+E{2?2`+TJv*`=AHG>0vam%-K(KMoO z#Lc=(2?HF&A%@@UvSt#cg3+l|q2yIKkivMJFlfTqctOT`OB*(HOp3mXR&^_yR=_ zUovctZ)4CM;1o(kBBOzO<@#VxvovE;56!sHs?SRac6tPRJtB#z;|- zcwwr#?HqJtOS)@nB56Gvhq&@Yu&9(U@%EkQ?E2S^8Tyn)=wE{6a_)Pgw-g~BGW5)n zRU+H@NAvrhz|Zf0hT!)&Xd^v+asoe4;`hkW+qIGWKmHEKS5y zj+!}QM#zKwWB89T{SR_~Ve0b4%pdsR8RniR@ZJ|ac>e%AzlP}~;NyP4Cj$Y~6Q4c8 z`6T4nQ=DAu(VQNLBATS=nE`m6^K1`()$=ioljb$*{YPxYPuPV!n8#gO>Cd=;d$@}G tXyO67c!+QD2;bosn$WL={ua+DNP6zgD1~#xmcn_I>DMP8qcf`@^&j?WeHH)! literal 0 HcmV?d00001 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 zcmbtT-%ry}6#nkm7%Lr&SdOJ*-Ex{X*<-YFY1FD z^?xw|F`DQb5B^ccbMMB$P_;|V=0aZ!*s=ITICw|{RR)J zR^Yld-`eJ$waRU0V%6Oe4;z8)I&nl9vSG;;5x9-OYNatm>r}%qP}=4@+^TV>Vijfk zMTYL6YWov&45Ov6Mu(^}bIEq>;2y(D?(Ed!F_`thvz^M~u}BLzzd@{u#3})Xq>eax zG<2a~M*=B^pxiM7p}%B1Vy#)<6y77gS)=jNCAZ9L8{D(yz8#Fp`55wN zQa+|B4Vv()t{1HFI`w2lhTbjVmpxlaE>Vs|Y){AV_`f7MT_mZ=C8^0MLoQ5{lVqf_ zaqd-G{JR_6^Tig!U@kmWTX|L%YBWEN2?jIF1^?KoQ;@(Ea&b&EjD!^(T1Q7-o>$Us z2#-tKN(1+xKvGIS&&us`%@h3jx(GDPz=~s*VeHhN!uNSa_&Vk=Pp3uXS^_dmg$;Rf zZVltOE>+EHG{OxXH<4xN^F^@im8~q*Bu66zQTb325}}rQIg&W3;Bt!X9*UWM&_IW+u9a zfiJ5196kF~r&pBsf@)sEpqPoMtim9MXq9j0ae=VpTL#0bBCU|43h!bY&!IYE1LF`c z6Wzy%nTdrUzNPxtNaBq`Tu?lX4x-UPG&+a|E)%w7W+?0!p^hO-ysl78G8tD>KP7&W zt7Yy&-^JtsQa>>MByE1f)qPz1CBt+N>|wHSfL^&Re8s|%B*SWmcO>I`qVa*+f270w jgjsx6WQSVqJ7g`~B4Ui9w+S|aJGe`$JOuI$77_UiW=Kxq literal 0 HcmV?d00001 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 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 E4-#|^6951J literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class new file mode 100644 index 0000000000000000000000000000000000000000..8fbd26661ad924a4692b2efe3b525bc86aead685 GIT binary patch literal 2403 zcmai0TX)n{6#fpqgr-L-g_af(C<0EW1LFk*nF87iQs_l!DRjK1)6+I}CK-}Up@4#S ztG_`10I#?fPSvjE;z`%?N2%Y*WTqLg@X+++@C~p0Wbh6WD4y#Zqv=;&RvMlC^B5OM#sa z199`5omUxw=6>6;gEImRiQZ{}#zA*ZnP@<(gn_LBZKJlM#!H1+gKHc zwB_0QKH6*y7HwakXY?7RGvl_LE>MkGjyLbHi3>^9IX(DA=?NW6eO0<8-wsOAvZo!B(L=4r3Q z^Vr^k{WxHtM_|up1ZXG{FX5noEJWC~1|+0{k5z}77&uJ9szCJCh}Lm3AZ-N`hmg?H z^a^ZG)W6s}ZK4lH45SFS9$*!Y#8ITFGDFP?bZrEPrO0R>m_^I83W{ceVcf_o8-treG zRgf`p4IfE-42vMxrQ@{d<5?qRP2`{q(B<1VS|N%fF^>h#$DHc~>`ErlZkA7?zT4P5iv#cK=i()=GjORmBE znHyUmd2J3ikKsA4W#s_2p^bNqdZ6=Ed$^_%!!UQauhS%x57AM^uCdf#Xi4_1;l&4i z53%o0w5Qf_XhyHs@NyZ+)B~QbI4#`S({MNBNlpukg13 z*~bCAhSwQI;24fSUX$pF0Iw$3(WO(rv4%H)K}Y*3@hker)-f=%j-i><8qTfZo$+Mf zkuok+>K{MVcpv@Ujlbctz$08c)x`a5cT*W3mNEMyn(t$8Qr|A>^LmjFA2La?j6lD5 zQ{bn6A0^AUozkhx`0VNiy#pi>I7dQ9(1{B;jEhKNoFFDR+Anb`UZyE0IYg$QaD`no zh3kBFn=N-2Gx!eKkeV|gb*nXMRwHUU;o}P&BqfL0=wIS1Qh1y(zQ#8cY6wU0En_s1 KxYbaG@Bag%8fpCi literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 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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 literal 0 HcmV?d00001 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 zcmb7DT~pIQ6g`^;Lep3(0*c>2#I{h<`sU#HQgH^Ss3Xt^-_XC#j5- zNP=B1mEUq;Gc1ooMk3S0EO;@@q*e^mSzo4piy`QYL!a@xPr+VND3NTD=_9FR_L!kx zy`XL9h`;4Q%vBWZWrE?J!-)f^m?>gZLjmwy$ z+elY1pJU2cAj!lkW054AB3#8a`nN9E! zhd`nNao_=XD8#I(sM-Y49_*c&o%!bHoBjFg`wsvuG#ywB>!BL^LB!K^#Pz_}aU7-o z2~ScPDv|gHT&hZoTy2KcX|AEr@kskGMq0*-A+HBAt+W{Y&NS~!z(ofH0s`w>^6-_?m!VSCb2>oM57abFa`Q1mc^yo(%ecyMr&VY50JGHEd& za~-L~;dpo~k|TZ`35Ief4tUh#i8T6|(Kdr1+^e+GYEt{f3RkguH;l(=(_l{Ybisut zoFAFV^%)kX)NU$u_ud8~<0W-)pP@dDkqi9&4REo9M-Cn`G^PdplSU8ASYepuK_Jq! zLXEt-E}69}OsrkN8Y&JRGpzl;J`d~Ipm9j0MWT4r-DhC0O_fPF9tx%Dt{ab&KPT|(K8(-ml&b;R6?`GZ%Gu8)`NMFgY zJlsN=G>XDJZf8Co7D&nw>LTut(#%&{e}njDON9Ku|A?`eaf;d ko*|xR*(7Y!N0l%v)KI6hOwtlDvPCB&-B`BiZfgc5Pj>oapM>o0xe$!+LF>FZR+?O#HADoDQ%Hja^SXgR?b$=I`TS*@@Kff z4?v;7KHwk&%;Q-zX>iD@zB8ohSs#Cf70mT5tbNcc^C?< zYt+c=tCHEc#Kbx!tf1!LF~iFL@8@9^PZ&HcLL*YWr{ZG<_Qu>ZjmATvG8)!?GEPJB zLK;R(M)sSA0ZMzR=pk&G7b1vI_e`^-g>4nai6+JEh-{GbJ#4~fs2Cwj9?SRQkGdHO z^+peEl3sz{9;;N0{^(@U=U|rnB|7cWUz>KXxqbq-xzYLx?{gkCN2{AhGt5{YP$7FM z$MSFkRkA1xH*qVE@i0%P0--M8HhJ#QUz@DEd6nnnF?GG>7r5VW-#)?eg(}uZl&w#B mm4#Epvnp$ZZThGahJ^;2v{&i0NSv(G&d4^N4O(sTwtfR~ZYbse literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$12.class new file mode 100644 index 0000000000000000000000000000000000000000..c0299c25447c84b73a6c64ef5c79d6a0e9077d7e GIT binary patch literal 1201 zcmb7DT~8B16g{(D*mk>?f`H;TP^2xCZTn_wd_hc13YdU>@NL*m+9BJSW_L@}Kjf1p zCK`YF^vwIZA2I^bc4N7B51D{a#(hV@CxZ8WJx`4U%Jy&33HTsJ;1)qM^^ zEc|8Aqz(^Fue%HjV`?*byF0G~kun)OxXn-<$Kg4~&kS7L#eE0&7;58;{z<%t2Uupv z@*og#T%xjGUX}jJ1pRB}u!=PYC5Dy%=jY)e<{4&(kv@@K5pA3O*y95tGRvdhXdqNV z-8#^tC=k!2Avk9?Wy=u4;5}EgJE@T%e%(J~PNT7-f>6gaq`M;N>#m0__zXoe`;v$9 ztvFo>hD^EAL7iqZL+i?lMKhozS@b!`l0HY$E7+t53e}CzaI2fOCHo7!k11}3PB+Cf zOj++xq<59@gvKo9=r+=I%%_+F7DzI&3Ron`rU*B1lm0D{&b)4=5ucLAJgMlcbLLubk1* z@xdS9k8->l92BTydC2bFn{z+Uy+3|_`wn0i4GRW?8>q48hdfC}JRNvx6orX*%;Q7` zO2pm)m&$EgFd0@SAp?;{qtrVbr7}_sv*|!4?k#PGJV1@ zs9e#ueazo+FXSrlI%zCb(3(b5?J<~pQC}3mP;@YZSsOWAb6}yw@TfA4lgk+GcCIaz zcrhLxiMY#;Lcy@mj(i^Wcr5k%x6;(jV%VIf+$MFX=yDaQlVLPY8rtQhvd=+?gue`$ z)ZmeBb)R8rLTNf}d;h&JG9nWTw;5`aC_G2_nSqVFxNqSeLw%CbKY4fX0ILjn?)xH1 zTq^7JRoSmj(Y{sz>)5d1GOYbSKL?vwq<+0kx+fzdFVEv(JQOOW7ImU=?2BholUmTr zv7=dFaGon#mp#2lf;hGRj5dwKzVgE;p}{;5=^*Mm*n!7T*7GiTC_jkPC1A)^sy#Gl z9&@yztX$SZNs>XIg*@pCB)x%2dZ1L>`V70aU0*T3!1otC o-tsB-ES`ghONuwq*%Tja^q_=1?26eI!qpuP;-$#!r%)9h}&{VNlV z#s`0ZKgxKf7!;_nJnYPwv){RX=luBj?K^;VG#pqAexwFL81ppk^Q;?WTE}T{#FJD; zN+iKHm&)I8U^6U?LPjFf{VaIi&!koilUY}${yIa@8ihXNcb|goQYeu$$@Gy_GJDL> ztz6Kyb;RHBAm%Cx_Oe8(s5y?N+Gemfbw?DyQ1mc?Nf$X>^5CGv@USwDlk*tkcB&JG!~h|)~j?$*0d42et~++e7UqVN>qCk8HV;f{mb4E0e)|K#1nT`VxK^!jvL#|S7 zqd_y7qb+6SvKdU0EczVeNnar81#Hp-rP|78xV6>#y!{2<$02TtPIriBn6M5|rgx3- zgvMn|(`}?Hm>FV9m?g=?Dq)T!n<8ArHTpMCI`g_djQE5!CI_$f3GP?iq_~S`;#n_I rv|bJ4%^hP;;(54FzD-RP@?oJ$8G&-KXl|CULN}wg(X7&GleYc~<>ffU literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jarsigner/Main$4.class new file mode 100644 index 0000000000000000000000000000000000000000..68b4cb2357c34dfe305d167e1d22818e45b3f5f7 GIT binary patch literal 1190 zcmb7DTTc@~6#izruONuwq*%TMRFz#uvoIq@W4d2Oms^?PNP-JJalLz5Oc_ zjm8ImfIrH3W-%yGV|mz_GiSeZ{m%LE^V@d-n`k+(82m_$f-vT3I^;usiO8IntGSP-qt-)0z=uu6sBDiaLI#%3d6(NBu>s_jN6%x zRAO&5I26eNKa2&#Y)6MY?(#&M_iv?bn#Hg>Nx56pp|a1FR__OTl(vk^b7h}`5D9-7 zJfH>-O{;qh^J7XgX}de`LXi`hI=I2m7)RkL!cPob+`=6Pw;7t_jQ+{Hhr3u}DDp5A zY3fs1FE7e|eS-G2OIX1@2R_5{|MT;(iaAPZNK5fnC)BYbPomL4sEnGluSZEJo=QV& z$*jkQ;eo+>rf6Zd%_a$A)%`QvG!Q!~jCD$*xht~1?s?ciz)&?4FL^9Kh~qV2DAej* zv}hs=w421q&qE6yYka(Z5B~nb-9^;uF%C9K6OSxL_P97<&@W!+r8?YO0YB3w6o}l#4}Evw}6c8NH2Wolcvy&0o%iI3WN4 literal 0 HcmV?d00001 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 zcmb7DT~8B16g{(D*mk>?f`H;TuwYv#TTFN`HNGGwCIwBvKKM3lC)*+0nPzuu)PH57 z(fHsG@JAW%ECvN?EDt+-=gzsG=iVPbzkLU=jg|w8!H?7^2xFe6L!R}6OzSuePI!{a zNQora=TiAQ4s3?yamYwydYA<-hnduhVLI!})ZbMxSi=p zB@RY|W04&3<5)1vb#%z%E>EPn|5n0gjK9L@EKPApPz?y%v1Mh1)j@T9Pj}#Sma4G8VHq9pAPjX359uM zD47k}GE^{lFBI*}u308Q#JYdxn`UB9g|SX)I`>7^*F6tg2pFnn=p~Qk2XVRy424>~ zixv%Kf!35&t7bAuvgmVABz=jbH?T<$R2mzf;Wjp#OZFFdA9LIcooE0kb zp)rd&`Wxvw=5tI13nZCX6)ciuQ-mA1NpDM}Gq+oL#Al>2Ie3jvaKGXX#a+1&&l;d? qsXX4|DfTR$hlk|b)KnuM7V4A{C>M(cXB8XtXLL83O*(DTHh%#!nmG~x literal 0 HcmV?d00001 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 zcmb7DTTc@~6#izruTfUv?NR7+eh(iQl!G4xV6>W{9sdpIcZQT_mFqAz^VA4eaS3EeVFg&V_Ly;Wt!&orPv~|ei4o{@H|5nF&lPRXwpl4b^tykhoF-#Og|SX)Mt4Ql(_Ihi2pFnn^d*nw2XV3w z424>~gBFcuftHn3t7bk)vgmVABz=jbH?T<$R2r+F;WpNq3-%XyA9LIkoo@s znMgD~_yhb=#ycyKKx>4Dow@hyz2|<;&tKnv09ePG1B=0r)G!ERo~8qy^@2?6I1LVY zlFCSlB-rLs`5O*whWT-pk;wEQ3tkN}sTD&p>&et#X9(KktS|8HQ?OkMC6X4oK9x#l z&lozjEBdw%`4JCduA*QsOQecgqe#8OU~lTKD1o8uVFE=L1zhvs;5x%nZPaBHF(gxM zsl?8(e;|^5eh>?WYFmdq?(jq!{S>rKBN!GhQ_2QaU-r4u>bS3m>6)P&De0UEHMlr1 zjq5T@k4fDm>TbOYMLw3)!99k?xPhD--(Lq8vv}y>0Yh_~(?6%^;SuH-CV3c&H1(;F z*H@io{Spmpm9PNc!DEJn|L5o72^OheMZrae7OLh(YHQI^cQ zubSR7crO(_fKBr<1WnRCTUJ_vEfvN(rB&M&SxK&}n z&K2m*u}Z}(9!VB`4kigNk+eg9ZMwb2@(J9=O7knc&$-nUoo;T;FkyW_h4i_c%fk&+ zNh2@Z#I4-M!!$_+Vx7TlLhjICo3y)ml;?z)xL)H6+;6yVpJ4t%6ze0()~7tm%qinp glqKReb<~K%LLCjdt0c|RG?wXRq#I;~PMgr?ZyuZ_ssI20 literal 0 HcmV?d00001 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 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 S_C#o>LVG^67ejj~u>S!o*)m}O literal 0 HcmV?d00001 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 zcmbVKU279T6g{(vS+j0zjHZ57ZDVY+3AhT14-p{*1!2`fO9UT;$!5BpxScJ#vqFEC zP%Zf25Aa8cchW7jHem2&X6~JP&pn)be*XIY1HfZ+ZCDIXBbEDM%(HBt>s?2OviJ_u*W!8Sg z&<^JHo*mn#`sY$f{eoemvq*zCVki%jiKv3%l8XzdI4Gg!!p3EWQpXf51yYH(`QBKh z+k6}ghDMNtJRb2>nz%@o4ONC`3(TFP4{>)?qUFwk5rU!F38wrr_hYUie@mxQMSX8n z#WHT#xX#e}w;V2R;ueFuW0X~sK`c4(YaZj~TE_k$P5D6}Gu?Nvg1a{EFkGFDJ^StA z9#%;XKAHT*?A>@OLf!X1oXjaUXf!&CrgvRjd+Di7e0Rbz=#7m0%fI%2z3RLXkzc)9rnw;|T5-iYzSA zS)m$OE2z`kHE%e$f(G5BEv^*^FAIcP_Ylq@n!Rth{r(ihG4R$JT&pz$TAq!o6+l1@ qYiJQY5UKkGKM5Jq7S?Cy20C;b$r!oHgY_Gl0Qj*0 literal 0 HcmV?d00001 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 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ⅆ>)l*4lo7;x`uze%szwwWK{d2l&y+J&P)BjjCx3yll; zM1%$peaWZs0$vE`_8m9j-y&3iHBfgFpG^HAt7*I#Z~Y;m!H~|$G=Q7w8(zYv&_HgX zFL){a2lTE+>HSo!Qp9WN4XoHg#e5d|co{FpEzO1a9mfywR>GTUB(LC=REmg`>fLSk zK7-y>s`oQm&Zlz#bNA5_XhSRJeuv)$1VM8t@2B}};BAO2hw8ZvZ$n+fsgm1y4S8KN zKv@WM41+9iFtoyx4^N3H@K)Th4KGUh!BEMT>y)?F%>gOFaTJlVcldc2q7tvYQoOQq zEel(UxzqB>Xsqkv*n;wkz0|LVH?(x~#;sH+Zx!9VX$NKwW9!7(uoC zBV-4H^T+&?-iY{RAVMy|1%fE|7V(w>>8BPXIFXAboYvvx(k3wPf~qdQ!k?==`dG`O z7xOh{1Uk2vuR}2P=GqZe*j?GhH~90sd3)&y3%*~8p^I;>lxShblVbiQ=JBsil}#$; z^$veNc3x4ri|=yL9zNTzd9}UdO|7A+POoMypveOHvVfwk#-{CFi#9Vl+RgV%6w0>= zMSC$nfE*y5v8KD<``Ye zaohqY=q}V9w(}YE7@vuYz_V~ScMg5T=fV%3hii}Xm9Q3@%(s=UfFIjaPm?b#+QMcm*b}C3aa2M;R~*!8onB;dJR~3Jb zhmPm_sDbat4~n+YYCH{ofWrKs1AD~A9#Os(r+aYcPtZsg)zB3FvxOa3X<4xU<&fCl zaG*GR>~A?{Wyk&)u;iH-Y0V;CLH2 z-U5zyXePg>Xf+dkzbz-fEvIRa&PvG1#kix(Lg8nJr0~nbpzupj_!TJp8WipWh2Ma} VeW38~pzzznq>%Y<;F^oS{y#8X?rQ)5 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..e759d12638cb7d3bb34f597778ccf83a46305e16 GIT binary patch literal 7779 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 Tf(gl6P)@gO3o9r|?N9#z598%F literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/CniPrintStream.class new file mode 100644 index 0000000000000000000000000000000000000000..1f0d890b789251c38ea12af2d6de3301fc5e8d90 GIT binary patch literal 5058 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 G?Ee9?A*?L` literal 0 HcmV?d00001 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 zcma)8TYD4N6y5=t9;b*Y?(I~Lw?DwDQvun&xHXED0H;~S1@n#VgObl;?{jZ zs&Lmr$! z*DGe+iQ_u&PwR<{RjXuZsxzb7FS&&r2^&ZrjbSy`M9_1qoVK|#a39tZZ~#=HJJATM z-F5P46z@@3md$p-L~jJ^sDfLx&7EE9wJ!@IWu7(85kFIEgwS) z=?MB1R^902@Jv-3=toB3?xOa0c*S}}JH9M4^XbLVKd}gPVm}bYCPvj~3Ts=0hph_t zC6=-l79J+xq(TQpa7&rBaomzwF5sfG668!_{UW}uPpU%H@`}y)dX|iZz>f1btZ>h? zXZw1;$cU9OT&YretDC&A%-Uf|NJ9#HGa2(RE61Fquuc9;u{#A_Fn!l7+Edz`aqFgK zmb6tcYrf_Art6qCPu9Xc)oD7GPrDc%!=4CsE3BBS>Na-<_KMOXfzrxO6#FPQx^A#h zGwU@uX(%_`AH|5mc5dy|rZsJOI%|4$$C2#~#r*M-nXa)Z)iw}DUYixy(=&#DnCOI1bVy<4 zdfUmD>$KfQ0GYgF_m>8vIHIt1erI0cN1R%{T6H~N7sjgEBRQ_~*vY)E%7AY&@K*O| zV~9G5Q`BuMjr1LxPoMOjvASQa`*WRQ>Haz-E&XxNsuIFLa#4pO{c&lsPbl=vds*N? zI&#OP%ko;&I^zZy>>ww^9XroWn&<*V3b8;6!J)Bb-YAEn_Y<+ZbV!6?Q&+suK5FZ;G6h%1m7a;ATzBU1K+`S893W7OWx(Dz^b{x z1DoOII#2i>eh|U;S?=>E%bb*&b|kMYw8 ze!?Q1my4$-%lux*jJgGT($=1VbNHD6Y|5Kn62r-Hxp04B;FtK7!kx^-LG9N)N3I-& zzC{v|T;$pcF4Pzleq*2;tD<;=b#f|--%|Z1yQ}9;n~t6~vsrF%WjR~ zD4Qp?C3KE-cHZ!$?bXP5?2udMx0`f0wv~n7i~Rx~>lkJSzn{VK3CRa4=Mm06$#Izf zv5l#|`@2II5k1e@GQ?z!|G)>)g)HviXlug~2JYlc_V2=So+G2XaZg|!LmVptPcf|I zD8yBA+w}Ht?sU>Vm+G6vy{Y*9@=RaAdxP17d~&kk5;kT-9S?`kVNG}VWpt(D@00zW zPU^I?ND` z1aMb19JJsj3HK=7hwwN)(uA>xP$l7ASFrk6>LQN4!AT>pl6zo0ILd4owT|k-NAa;> zzY8D7C-{bR$*42B@e2H7vTzAg7x7g5 z=~;Yg7N4c*vu|T{F8w#!r)Tk{wAjVJOcODtQT!_n%UOI)_PP4PWqd;+8w!aWPV|H> z2#*$fx+ZtZ??-7x~Wb=M(fS>j-2eLQbM&WhGfjk&!f_$-6;Ga#+Zo&CL#~s9Q8h<2hAtI4e US5UJvL??V!Z literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/FieldHelper.class new file mode 100644 index 0000000000000000000000000000000000000000..430344c87c74214663d96c4af507f6340516c1a8 GIT binary patch literal 2203 zcmb7E&36-36#u<8Y0@}Q7)kjO4d3a|HZ)0-VgQ9oX-itbLXd*SX);ZxXF5}7CZ+g+ z;K#y+Zgd0Zc#bC_1c#bYzyYdfU>(1lvO^PW}s?K8Gz3;ty-@U)zz4wFCD!xF+QPVd4;{xr;o{~Ul*r^&Zw4+l&7##v#MbkDW>kBi6dqJPE3<0(1RCKGP zyQb7vHbefL=?NSx{-=oG2I(3a%i(IB2x>c|r2Lz&~H|6WTS!up99Ys6ILd zH!UNIK7r1q6)hn#N+~#u0TQ;PTlIkc*2~QzDnyVG*xcG4vwfo`OKwnLV{5zU*tIC~ z1hV4To*#HWqTqS3970vYW1#BeNyl&uFGRo!?S7o63)dG71ux^65(+a zBRC^)V4V_KRg^M_34y-<(GW7Mv!tenUjXNM1uqA1+WG?9_yS51Tol;zUxuL;qK0i2gIA1J2bmvHSi?aO3B~mVKs4KGF_MFRdvDc*f6Ji6NW$MRGY*I0^Z>o zUfp7}?QBeDG*0rSoVr^vM%c)l^{a+|zvK+N!OH=7ZIn3O`HxUfaTQ#{+P8>)O`#1j z{^c>ykEi%onisfkpw>xPySPK+wswT%D&pFqZ?LI>ZcTlrfoG+154&%pQ&SKAt@i|a zZ&UC85$QYFz?+n^!AXuM($CO69BtsFrk>(PdoI-b6Lzn7yo0TpdYaq4S_5O6I!Q5< z3rVYU_b^3mSK#V0r4^Iga4E^>ZlhmQuQX5k?<3v7tGRGItmwS~ zi(^eAMwVG^lx<)(AMOrs!Te`;q?r|%b!pu+vo-Y%s+#IGP>+YcBv?%_Kfzwg8J2C9 z;0_zsh}kF)q0=kY7O{DzD89VI+qTmK;&8&^aJ`%__0s?Y;cN1Mc98P^#b vDa4z6hgT`RjdvKily2Z%R?StuaFbGq>vr5iob~g78Qj8qlmy-nGX3B$DP1GV literal 0 HcmV?d00001 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 zcma)8`+F4S6@I^D$xhY*)&&&|OQjT>8`*I20)c3*Wa+YtWJw6thS|+zcb3ggoShAz zwY9BPd(moJya26GDfFgYZC#?MZEgEY{jJZ_=jmV5_B}JZ1|(RMCo|{!zH{F1ob#S@ zCja=)dmjSWhQ9^Tq_8HHIqgR>@3O<}#*}HZnz1A(F7O zMsdP$ELqn#18&|bD{M)84p;gVf;rPo8goQTw10-l0mCZwC2S`bvpsiDn3=R7J>r>b_=3WULgtifiozxx zU-T4)#s&`66}}`2*}UP1!reN)EDE9VvDBe-U893^70P+raYdy|N4KbG@nl1xhXfX^ zl6Tyzvp&R!L@K$j4zNS6DB7i**x#e$Uhj(0L~5XcaKBtJTeJ-iW4DezQMqL}b$Bq* zh-5GME6msxvM)Ff=y=e(Xd)FKu3t1rM;2^rCdBh$9U~a^IUlF*Ua7_9WK2gK`xREP z8b*rdoLO>(S%o{>J8qV2u}kPUAc!kzH*C?Y?DL&cxZ~3`F<7yRGo}-Q!b3V%VRZ=O zI2=U!x^D36N5=#v>F9z{teB};g}d9YsWHD}mMgmul9-ZyIjV5mwI=nl?3mE-Ri=Kx zag0-<{52iZIL1^P^YdnDMq%r6R@dC^1Jz^c6NrqCENH2@wtuLwmRb9B_;*~rUL4Ug9Cdt}7) zc=j5o-%{|VlZLd0g?i$B9p85iC#9y!UKfY(7``6F;|d#ZK1^gX=y(F(U%Y<#gV$Px#Z3W0Z+_nw?v48@n2wmGFEH z*pXf`WK=8M_5Y?H8_D&0qS-96b%K2QO{C%tB!7@bZseXNcU;I-_^cs&T@uLE9J!M@ ze_iqWJS|uJLA=C4x>Pm3=3r%ZR=VyqTBU+s)o})A2`=+(fN=!c;~hg9ex}egy-n0! zla@HI(7h~$%fqv{e<1+dHC&YU4h@$S)U@FJO7MQI(AGY5V^{dz(fqe!)~n$SdeqCG z5Ppxhf~YFox^!i{#LO7MA|6QT_SB3X^TkhB6W(iRiv0m+eO+b(tRTB z5^0Y}{UQxiyJ{E;x1Ptn6!snH=Bl64R|4m;DH;yFhPJCnPIY!K;@~0{!Yt}aRmRw6#hj7 zVW^*cG57c$zR$NvKfpS2lSdDJNU4eF9e57Ull-&vK$71peO!RU77IA_pdlK__1`f`lOd5`15er_rclrs!Ri+U{ neh2U41Ew#8H}N5p+{9bX;7|B7Q+tjD@)zn!t9(T5Cj9k(nB4ka literal 0 HcmV?d00001 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 zcmbtWTXi`Js`)>^BrwQBM9kmbC!J2^Vtb7tV<5K0w&Hd&mG3pT zWi8t=vl@H?SI>OF+a^%C&ay41QD9YVV&?5z4a;swNMA849c!^tWw1c6{r-Lm#}QJH9y#6W;=|YlqnEQq?1Of)5u!#+ne+`16EETI*ZRsa%vE$DyAsd^eN4W2IsVE9W%K z!P^niu#8D6f{H6TuEuf!KXb|&PMXOss;!%FI_}NW!aJ}+!#l}U$-?-mj(4G!MBC=D zBd}oHLdvlFV{JWq&7{+yp`LW4v;DEOn%Hml#Ejfvj5(VW3*l^~N~%zYh>j>$G8-eA zG;;)5!~=LY-lO3ffhEehGMqL0QnVb~n(nojcvi1l5XCwV=X9`iXkJFR}w6lF2?);f$Gw9oK@2=>*l&~991BRwB4^^gTNJ~ zt>n_O`#0vTRIizpd^YLWgl376F*wDWySE{L46YG0j$Sv9ecoXs+3h>_p-XDJ8?-W9*_-^xF%`m1|1(kH`#X5Zn9Hl=Rx3y!IWz9 zcCXnN3Lptn1HIPHitvPL)X^vNs>sNeDbEk+u;h%UW>U5v`xr$H&9kS4{1{}W%28S# z%}jx097RGR`%1zON1!Z`kd}v}<^2NXwRN4c+79SAh(q)=VB}g=VR5BPYU!|!TW~}m zkjqmEsu3`ySvt(bULhsFPj)7HV(SyApXK0`*2GNrXVZ?k!9Kv~En+@htB}o77PP?f z#Q!RIMpLai>NeT?*!$yynUuhlo+@~eOdx};(T}?XR>$f?o7zIHZ5^TJP4SLU$L4r@ zs3o3g4n;$j6S8ulK_fXJ`RF%o+1Je8P<WJS!A6~PuiWNtN`fpo7QUt$%l90(AfQ5|2#SJh_Dst);an*Fhc-O=ik)qY0DS$Vr_gDP1<^j$vNW+*Hd5ceuQhlsrVzOUmM z?_zX8^Wz8fyQMYWyn9>Qj*d_j&f!@dKT_9IubE2*Z~;Hj@MAs(E_Ks!AY zqmDnx9$k@4rE|=1w{twiLBTEn$l?C)if_uluJ&|Bajiu=V>~R+(&?CW{xH5_b;m5r_4}ZzGXvA}-BXh8EQGm9`q2u?BI@ zZb2)q$9DcYXybLg4Iky#C$R%}qaF971CL@SPM{M{Vi(JJH^JJ2XVHb{c=`p}e-$_2 zb-rcZK(}ISvx|0-v5T~LL@{;|AH%JTsf-f*xMFNRt$hMV$=EWC((7%E)}e1cG^rLJ zZpR&-X11$yKy^5HX90JI3%EBNypN+&(m@^oYqAo(6o<*A`&2-Sc$5c=0aY`M`)SsP zPvZg4e1eXpROg;Ua!>s!JQ$9g#=}o>#+9X%F0fD83%NUs_U7U^L6YlpRjOqiKZein zS~_|G4Q@1&=lt@R}#DHVOuRS&nFcm~PV=mqYLlHX|XtCT^M zRQE)KU#Fs?!Ea8PP`jQ|OW#tzr_^sj{&I~T$BOFTSXBQxSN-1`!_!LHwb9^tX;@0| zhhuoIfS*N!zjSBl{l#eT*ECpE;#q0BJ{&!b-$aA1^H(OhjRt>Liu3nwEPp5wcY<$X zAVZLD0-u#6E{7O(unKwB{}7eBAB`BM-VRW+2dUFT)aA|8;9=_S7SeqLdkKAp#12tm z2bHFdQa!hk;M)oR9e4tF@>;zMr>N_*d?}sBJ-j21;zb<8%M`+Ec#sNy2!F@J_y-=r zKQV%Tk=TFZQBj7+L?sE8{ixBUaGZRhdFr0e-EUB}WsLk4rSo!HztvOs1I*k_M|ID`QP!%R#jh;37#TUH_+8qkKc{!p7~98MXgebi3r+Mow6f#q^1WLTks4S|yUeSzA@ z{DAG6VKxbr4(fKl)f3eQ^>!^u(1?SYv5iEiRZI7Ck*5~zG)%+ZC7=bK2ARE2uR1bz zGL!SSX@Oh&WxOX+S~97pnu0L_*M6%<_n{c23QDj~*y;jo%*->XFSataK;_&F2)NHn`Y4?RFlV@1 zg0)!h!8(C;^NXYKhJpZs0-mf;XsWD0A`v5PH!VgT8a${MSTdaoxuakMLIPgH)>E2o zr5HybSa3U>TPMOMZ1G?-d7DO<+EuU>FH#n!K1?Rcrw|gF*%#{Q9?;`9_*E|q@$W`3^B#7Ksb0xLhe`4j27u3t4OAP8inO*n0-xBkOvjCA}p{t zZkaZVFMUYAL|NvvT^LR9lstb(K?Lm-K%dUA*UfdVz)+ruj;Vrh5W}Xe_vtAgqIgBY z5ge5fn08D{WauetgTY5}T-J)LJVq3gwqI3n5~p~8RUxo#4%@R$=Mq~Oh)nBg1!r)U z`svrwQ7416N@!s)mvd=>smV%BV0GlFDU}s6q$To=t1xQrxs$SK3e*JVfI4<5sXHCV z*D@T}leS@*X%FaEzO#lq@;g492m3B9t)9PbSiP-!f{jdp35!89ce1q#L>4Mgrx(xb zU;)*6ISE`)po0}PLqNHGr;FN*PGH4+uufW^PVa2v!I&2p$!r^6pDr(`VbLYYd0oL9 z7?IgyVagUbL$Xtz&BpWMErFu0E?G%$D|pALq#ivT_u(qu^Wa@}oF@xP!Tb1trNrK6 zhs_>+xT80#Uds6@K2-1#KIT)H&UB}p0+fv>94=I7&L1y67b6xyEU9|(mdtj{~EP^0*d+oOHWQ<**%o2b@x!IHcVi}pWH6OGyGN(3S{4n?I^=8RA4vX z=RJ6qt7;Yo&*6E_2o5aprSTu$s>Rps`Vc$3o+{DJ|S=%E-cetkJ4-h?B?Hb2n*SQHC8^?(g zW2h?Jbmf+5rBmS6;~UcCO<7G#X(f@O<096)}RfW+3)wE9bGs~-db2qN1V{N zW&_BFKH`MQEb&wq&N197oQ8&OhQ5zC;^=X*KzVSlkHO2F^gEVY9D0CKl@3?dO=4gi z$!Yg|4v#S?IN_MCbmpab)1@?N6HHKhnJ2+TjE1BXMpge1Vbyy1@ej){+21#b*W{2K z%h@<2tI-C@<0#gu{x`YFjmu@haa?J1$t#y#73BF^?xO#b>R{bbas+Xom83_AP?s;f&{K`b`2J;b9@^Y@C#B7cdaZ4 za*^k5)Jc(4>?nR_dW&e`5>NLqCC#)tiYD?mg7x?nzj1V#C|z80lkG9yD#Gvo16+(E AB>(^b literal 0 HcmV?d00001 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 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 DgQAG2 literal 0 HcmV?d00001 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 zcmah|%Wl&^6g`uKIC0#>P1^EqO9_xii4z_L6kt<8Af;syRHSau#2F=1xprkwD)A}& z01Fg^kZ6%u@Bw@j;*OI=imG-ocV@2doO|ZX@t?oHegkOXiGc*e>cAg4uE(S3fUBXS zg20QMJ$}fC&K8$`xn&^5VC#(Iaev^v?d=Iy8Avk}f z!Y$lpn2TKQ&tR1QV{oconpDL?6*UH9Ak;SBCm9wh)k$^ifvyUrKWJyLPWNlX?lI9o z(|~irE0a2l%yy3IIj5$xJe6u-xXixkcH0CB-*EYV&cq;g!uC7Ky7_)58Naf_u1%(Mjo;yxZwlO!I-XE*SO QW|K0SipF_NF{PdI4|j^`SO5S3 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$10.class new file mode 100644 index 0000000000000000000000000000000000000000..6ec567c148788906644aac91712887983717494b GIT binary patch literal 928 zcmah{+iuf96r7W|b?q7w0xkEF(v&9Q;^a992~`Clr3I;|54>#?lNhx< z9{2!03NhL}{rAOg@ zp2m9An?+g&0%zL{BM*Y*01H_3QO2bJE-nkUnzJFZh)q)I$2!`Z9vw#MTXmR3f?D4U zRC1uw*xpY;$F?fixIjDIW3S5%rH%f4WTqL-sm&HXN9od>iAu9*C|H@J+p6?;J`JM6 z^~}XBL3^Ix=caQO;NcF|T-+6`%?tW7`2hD&7c9It>3}xKJ36e=5j*hr&6L=S*xKXS zSMtP$34&KzN9neGOcC9w?C3#aGEQta%Ex9HU<*w~P}m#WU@F*bw&q%Rs{Mr4Lx)o> z^U+GRYDddciJyxl;vP?X{OfQJ+7FN6w;w(JhTu!Vs&MrSHd~Q0s=U{WTmi12#v7w> z71s(*fEAv~%({x}L~ih}!`scG%5x&NuGjtw-#NzZze)%N$x=~b^@MmkgZI`93C{-xnf<@b6*|t8`_);;N6fnV%=-ad%+cn#nWLhlyz@?I-fr3NJzG)UP4;1JPwz zC|(6?@#gl&j)(^lB(Tg-o-~3>1G@-FVHI`)_ZU_u1&!xsVGTKkl#0S(6h3qPB*_1;0c176( zKC;`wj$*CTUDqdN`zrD~LI+cAy^~v-5`*Ixb~W?ObV70`a{h_J7^7OgmS zE=8hW>E=dGj;O@^WR- zID+*l#%1U~0wF|zb76Q0nxiFvxUbqlv+Od1Qw#kJD7LzY1m?qZStTOyo(<>QJY z!e|b)@*&Jato+8@G4gNb*N;#*IrTj__m$3lL~dnFYAF_SLgcedJ0ve9Z8yd=+Z(DZB)ENd4+_KM-w( z`SLhei#K=Pw?sUMAb~}O>ZB1|8rVfZ3d^t)xWlkKDQGk|3oFPIGZlqTT~F-so=D;@ zL#C!|?)ieZ2X-KYG*QHw?tDR~zHgzd!%`I1kHROepG1|GL`iQzhp^R=U2EIQw<%4J z59~u>N3quA(ODIex340q7ar&=k-hdskk%oC)lso>F*UkRPs?cX+hH!_hH?Rl?s=?+LxWT>qi`F-Ip9)@$PPgDQ z;`~CL{DAnx#uYT^Hr7>KD>zlmk!5OCF;A976|Q4}{w)$_yc)CChBOpPyyiAhlt3<)Ma4BN3Cv&=TTTVsEg z35G-yee=Pe;FBN!!+2*QG!2`;!_M5fbLQN0KlaDJ&tCy-qLo34q1IDF$Mtv^4tUge zBH#By=N*5~`_3+xs=k$h!LXc!>WRo7M9zyrBz?s&74>CU-yq6P5_-(pChQ}rWb~Nf zpm7RVKfnL1a#8Xft=km^^w7gD++whk8Z^<)^9NZ}aXW)0hNYxOsL8Qj1(Q?gfH(N40PuT=`atu8A`0x*ZD)X&&@Q<(@wbT=7)unr8L%-PiQQ z`AjJhZ0jKvRMPy8ay>t!QP>qx-|t#j!#cg71YYVw1PrT1=g$RRwJrkp zEHO%?9!2|k8tYMa*3&)^aJJ1*c@S6#Fo$^`Ra_3>;)=j}YnC$Wu|aCRSgXD1VPB>1 zWIs^?jh-3EucSz+?dU;bG7fB4axF0gBDr1hU*0;z#?x|MqR=UdT#R7p>?as@`4_l*Xw+R?;PRI|0#a6pg%>5rDNb} d3J)s`Y(=axKm`vF^7QEuJi$WNxI3K9!+)m(;xqsN literal 0 HcmV?d00001 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 zcmah{T~8B16g@*%mM)8}RlthH1s7=xb>WGJ8ea$+lY%A~5>0%VZpU`XcBa|g8v9fH z872@CP4wO0;)5UW#ybn4A>D+B-I;smocnR^{qgV1Hvrpcn3!U4x^n3GA&=t$PkLUW zR2X~5`~&ZK`#g~DjtPTdB@5LRi5eu{%Rv$-$uOPtg4o@nkgY8AIA)WuPXZYvPZ^$9 zuLHL<(F?ikdWT6A$Zm7eQ#)cXc2!5@!7yv%2Bt0KFlWQWO@{UABxTa0gA`hU6bHk8 zTSTvUI}{A1mhyRc#G^pl7fwUB%CLG(?d}e>I_q+&^NViJVNGn&8suonS+S^h zfo@aunV2Deo^A*9YS3xdH%?*IHydZLKc}by{jC(ui1`ymvYj-Rjaw*@MJ(LLofKnZ zo^Cmcx`0LU+@)88ta6&=9lhwhmHG*+6D)ng+*g#}lvd90@VoZqPO&sjTS`m%Md^Q2 p&_6V(ziIk~^B|Y$D_Em<-QXh%K81Bu>9okh=mZs6qrXA?`hW9g_EP`= literal 0 HcmV?d00001 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 zcmah{O>fgc5Pg%F8oP#sK+AVYi`ypQ!|kn75E7~iLP}etq8_+yot3kdyBpaKf}e#% zg~Wj$!2jU@2gIyfwJNdHgLikv@6Eh@vp@fS{{dhfT^BV%JJFLUPDP%NMKOvBW70f2 z6d%PX+7?QO8!jBeVihWpg&7yo?zm7!6K0B$%EL7-IjBOP*X%R)h0>~cNqEz_3_P&J zC>1)1_KHmDq(7bM?h~9%Gn5_(vjMJP#z!630=T$NSnW(xrZcukW1zI$nH(L+?7cWh zC80Giu}JqtrfhtgbnI0LOP6R5H~6Zvq0mNuJ~ES>y=hJNy#QHfZ^k0a<&ZE}A=`@d zw?4(PG(C55kI<{K`@(R}2p%3_!No(uLKW$JMgbn7O{m9O5$FTkE3$<3`+H`R#qzbX z-gx$fJhvo5@K$S?ZQ6$<*_y_dj#HEKxVB|6GQ$9?=rDt2y|dTL2+N&rrGKZ&Phfql z@ks0ZV5!-(bLCTwKNnXy@9}Ae|2n(}y(h=;drzNzL-3_UHF)()G%@oRnjE*wS^;jL z#Syb`6SqoCfH^+Zx#~P_bLI~JbvU|Pc6r4a+t=%Th3_2W{{Jn0v!Fj^i}@4aSql$~ bT-aV>i3`;57$NUIXNY&OkY!#Sp3KTW1aIMQ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Main$9.class new file mode 100644 index 0000000000000000000000000000000000000000..4f71d9ef1045bffbbd2c063a8891d36cef0b349a GIT binary patch literal 928 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 O+Th9rK6mTvi+=zYO%p}{ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PackageWrapper.class new file mode 100644 index 0000000000000000000000000000000000000000..68f16fb418b9435276c0e4854367b4166275e9fa GIT binary patch literal 500 zcma)2O-sW-5Ph4*#@5(q>(^0lZ7qhPo)kR@o{9>UipObO(yi$xY*PQ1ha!0J2l%7J z*;)|sQkHql=X*Qz`Stz*po={ZjzBZk(=bXX&oe4UVUeau9**gSM&TVr&lJlCLs=$` z2UlRjR>FjI9NrGcGAabh85ybBY4?_;Iumd;O{74*_ejM6dJ%I8X};zHoExjf~6 zqSkx;mE=6H=_S>(*OVf literal 0 HcmV?d00001 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 zcmb7C+iuf95Iq~GaS}`tLJ4u0)hrP_1IcH{P_UEtfKL8BSw~=G$PSwKo0-huh*E3g#VUW0U ze!^$&YXS};EkpGp4i`~#U?a~^Gfp?)YU&%D91BHg2Bj?=sH8ZQNlf3gstnrJgZd$)wMVZ5pvTr>o|zj(te=}bsh)5K=cQ62-Zj5PP;aVx$_v7T-ttQ5S?Js7Ftk@5vx6SC zDKYo`z4!W=j7hSSJ#C?7;69CG{$V5&{jcVYu|q?)XsvWmU2cP6sOh<+AQ z0f_}4z(*nOI8~%1UWA2b?!7+uedf>KU%vtDp>3nU&>G6r4WhOIn@q0nlq{Rx_3MUTRyzDv=2dFb5mU2=OC%1}RN7&QLF zuV=#f5tl>%NXMZZc9*d<`wZ5;8i*1YR$W}eii0AqxUf-Xc-mMd$Rfsst@J`E-lnG~ zBL2WnBEeAWseng)9*0K1Fj{6v4DIDxt#@cht934wJUdlsLIbWXmM{a^o6$Nn<1vpD zF<@BF>CjZ~9DEH#w)MouEe0=dgERY{I+Sn+_iWr{Xy!TPuHD6bY%!Fk6r{=~J*7H~ z{1|>V*RHPThs#U`xk_zpENyo6r z4wSvtcR1cod(-*}_gjXm(CK7&MwpMNlI{_n(71{k-A1~GwG30nI!Pv185<;7l;JvV z(7#Qx8SQ44@ik#g4OQ=)64G~$+pQnip3nIS74R(Q#sojjS;ZrYZ~A&naSCXlNw-55 OMmMN3k4}qL()tG(>>IoQ literal 0 HcmV?d00001 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 zcmb7D%Wl&^6g`u;HE|tc+NMw_k3xVvNS!w9f{;)Y5K>B!S_P@Qi8CawTu)?=5&bNr z0ul>8fR94lajHmpEXu+&_a2}7zVqkruipUnabP0DP#cDc>jgZH$6SqEC1nu1XZ#Bv zxgQBQ8Y^Fh?;@FuOHC67!|pPJp-^(H+zFduRgL_()FAKOW$dNyTV(di4}JBT;iUW@ zcI~eA=LS3+y2mQ=!(nR?Ij!^Sno=Y2R$D7TE7Af-2{gE^-C!=sR?T(9?J0ITqZF!khN!!eI09|+!@NjjMgL< zr_|Xok76-kD3%w^b!)87S5Ks~j!isZs4kn^%#^1FIXuE+6T8&JWkySfZQ}__47usz zQD&3G66FW(n<(NJT|ZVW3(rtC@tk2JEqnI2jS8v^Sw5IA?WlhyJk_dD?S@`#s_f1(f|~Mw1Lf( zBmH>&<;1+d*f{;*E9+G)Tt+HS@Nk)k)cP6sOh<+AQ z0f_}4z(*nOI8~%1UWA2b?!7+uedf>KU%vtDqiv(W&>G6r??*gI#$1nltyGlwr~C^a z`Jc$}ajZin-^3~%*AHx14BL4QL!s4J`x7+7iXMeYeUG9CdFb5m9ddgS%22;#7&QLF zFEHW!h|8gWtm9A)JIh#_T?Xq=4MYhHt1hl!#X%8kE^L$;o;Q{WvWPKZD?up5hxDu` z;uGGB1Vb%QeI9jr92))7Xqh1~w3lzSen3N7t#hg5`I$-+8gOl~gc->GjP{IXJmzsC z1`HcH9h&N$qpy9DZ9TDZo59Q5;LN_K4kg^heH-@}nt4vSYj^Pg+YDUhLpCqf&BQiYeD%z+mtlkMEloVq+#Y1|jDL$jXsIi^1~ zl`^>Rq!jU?c^iTjRXLLVNF_wD_d<`INol1%lZlTTZXI9>123Dm{U|q_XtmDTtkg+BVEUOhACr%B$KO*O_D6i za055#-xk@7b}P&HmN2GAS$4)(`B==ai^GWjQw|_-W269#eeN*At3UKm$#> Q9kMXGL6v!QTC|eZKa1NPq5uE@ literal 0 HcmV?d00001 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 zcmb7D%Wl&^6g`uenz$wjp)HhmAwc3ZxJBv$1tFml9#VKnMOm<$#-qf@oeB21YCj99 zfW(3i;G+?~tx_8F{w6^IfTR$W}cii099xv)`Yc-mNoWD#R%E4@&P_vz80 zh(GbeNHElTYQUpDk3*xM8!gi$hW7HM*7vAMt934wJUvorLJh7hrZ5B9ozb39kH7EQkHuc2D4F)f7f;01;I+Sn=cWm5dXy!TPj@`vwY%!FkD@d75YD#q& z`7h#_pZ3B;cN`+W@1l+elp_yzAn=L1T1C_=D@hUXaS({t* z$0kt*_pOv7-ZxJ}P?$^&j|AsRnk4e6B?IMquWSVu$E!USSQKEDr18r ziy~abHTt(nHltn7BEBJv$)W0$Q>5| literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/PathOptionGroup.class new file mode 100644 index 0000000000000000000000000000000000000000..4833679fb4b565aa2bd37761f3f322526dc24408 GIT binary patch literal 3120 zcmb7GTYD2#6kVrHnKTSgLb(~npE1HSqnd>7Z5Oxm=~1AWMxlQa9Az4l&f?=ye>_uC%;cHuh( zWdfn0^h6|)(lVKG%^r@}rkTn_Mzk~9aHNY1o#VD)rVm@@#JB>Fz_wE6L%MB_+mRw$ zfy(JK1y;u7fsqN@NJW}0OFJ7gGIms8$$)9vMRrO?x202oaIoZ-{9;N=4@J6d%SaDJ zL%jl?7Bi{)pkk?lB?2o-I8(6l&)C<<-t&|0>8l88Qc7UJ?5yMHqPl*C91JX z!Ab$uu`$fZAtR-$SdBGAE|b-*k874@n>^4zADIu!u}(z|Y6TWG8EM0QLSVZaS8)jQ zw}yJ<<_#(yLV%e}>yx&FOQ1R!nr|*c-=tzQwlFd+nPkF?-EX(OZQ?VUE z1~9B;+D%J$&doR(=@(cQGtzp;#Mppt^=JbrT?S?*v{bKV8S=lo=&^?l?x~BF5`)av zJnfKdPl}{-keL%Glk=K)GG>sB;$q7+k4V84PV1*&F*=Tt;S zMKcaiDOyGrhrrfg@%{pbMG13iNI@$_F>_XnnM#ptmaG)TAr*&lL>`(_@c zfcl%~|mek)YPLV?GSPkl~Lo z&85+luELfFiMC&2r&t!iT7wsg7pB1K0&B9f7eV)76sHtWS_?R}(F+!W!tTd}WV|>d z5Gb6_MLnIN2#b;>rRl?IoMO);8!=N$>hxGs=$UEVjvPN0b99`4DZ9+U$%LMlvx4&i z8=PX2rtMm4(6q+%B=<}kNwr^8aS4|Nyaww$-~U$?d^o+V&0UW!##LNX@Dk-bQ=^5q zDz4*Y3R<@Jxt-mucLlE&T1C-~A^XqkD&D}GywPlv@Mu&3;0Ecqep|&mve_$a_8s)1 z;Jw0i=93+tX z6xe=YWY=Z+RCiGWMc*MiB@D*gmQL%I zL%g2BMiz59KY_~lW3%EDvQ_cv;m-@%y?mTq=6|`er7nxbQ&=9~@e@|$u(sn4)VlgC z)@QM?kK@)`_y7Hoc4Y|hxz0IhKX*2x3J0(Pt*GU=8HW(&`*8kD)L{qz@pN7!i|A3# zc47@rsUp7-JnUfHHI3#ru~yKkX*QDJ6sqGAOb)yEdFs}BrqCD<=kRD2`+mXW_t28X zK^NuUb5R~8{ZH}JsGSHq(7<^Vy$;HTysv4LP17iwT$CyiwmB$kiTWt_dKd+-0XKW! zGm|o^!LUD;Lq~WDYCMO|pYim}w42l8@vy(o|BSyshm%=6$CZJ2xT?*c^bdM+7|t(^ z(rC<|mPX_GmD60w_$TDb3tX9rY!m$g{mkh;e(y9fvXexdAR8m-W_Qpr=|rgJ(YX-{ zuAXJ?&vCDe<3&dSe{wDr(C31Wh3^vnU3ANw%6S$S+V5cfj$d&_;2vJ-sB`Eb7g@X} z<-s>^3EaB>PhI)%csGmp@8RQ)Dcp?L=Wy!>9-SA>Hqs27C-e&>{~|$O;>X_=3hFBM za()2UNYM2nYWiH@UUcGfM?keC?+bkCoLGggNJ=^PRN`yg;H(U{9dF;@TaIDU+sF~{ Q^D51c1MWELj;HhE|4h*@Z2$lO literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Printer.class new file mode 100644 index 0000000000000000000000000000000000000000..76b2cbeedab7bff1fe5470118ecf2340a3fa83cf GIT binary patch literal 2145 zcmbtVZBrXn7(Ev@3512x)Id`KL#r4TXr$GufYmlF6$=S1G)ScC0!!F-lZ~5A!Or+H z{i6Pa@(27{XC%zXjDFJ@{ZEeP-h>ePg3kB>?%jKzw{xCzpZxjvFTVm9$7%>I0)zQt zCAsF9<#NgNH6pcQGP8QmTJr_k8(sqO*%ybI zGwtFeBe)g6RPm>6$2y46HLIf9Zc?7oro%2@vpq(4y)OksP9U)1dTW+I=a%RC*1Tt# zg;j^&!700F`w+D*3isY{O}R0a<+9tl!1w?kp_E)0xHisueF*94Cw@&d4k; z3q%vOVib=HKKad0*7El22%$|@@QRLhgu@ubxe(3@=*=AIconaajlAX0n;uJ%xyfx} z_$W&0{<@9?hDlZ7{<`gz6~>&*FruRaVSy8~cF{^#3agg4Xew4Cv+kPdWKGYO-}OVy z-?Zs{?iilyN?`{>>~gK9fa)dFmsFtw;gZx-N=l729M?8wv*ekjlI4*fx;7Xuhw!$* zsRK@CGL0L7lUtsBsF9gM$q_hRXPg>SMUr$%NCk~Z5@kuXvzq<#p}mBWQJSqg9Yes; ziW|LX3QumjjwTei^&C0;za$~NFVKI$jzo}l{b{#STyO9srEx{-@hW?I6z$~m)G6(+ z>A0?>WNq7JpFOxiW}CA#^AyH3W@Lho*pjCb3}?d>;H-`bOv+taM+Wbz=iSsgDbiay zbomUXu^?kD3PhfYr5aY~eBd?{Epi&&VY)1Ov4lQ+OgSubuzbQ_ zkQH3QT}f*7TBh_??V#>dF)V{lpG9NEJM5@;2v$Iy9V z>>wbX$bq1SJ9cm|l(r_VD3^X2i77DsHBYu`1?%L_%K4Sp1vc!|f&m9_*k^ z*^ND6_8NDpA{1FqiKG7uPHYcDD3c$bC@aMCfXKIS6Wdt8S6Ii_aPSQ+zU9dy#p4QD zCz=M257~n(`H*Kz>_H2?+t`O3d2}d++Af7|_GN`!tfQyCi?Sz@`2gb%DVC*t_~`2L wxxrYnD;>s26?YBFVE#}BU8+sr(fNBe>IYR?PtCkhS_j*oV=zGpND9n<0RMsfr~m)} literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/Text.class new file mode 100644 index 0000000000000000000000000000000000000000..e084d89a781767564011cfa8000a2e92227a61a2 GIT binary patch literal 565 zcmaKoT}uK{5Qg8gnx?H;R`zYyl}WU86@3sy76?m8iqPe8TXbdHjoo9^&*~zAF8Tre zsOUXrBm~{e%rnExJ2M}jZ|?y1u$6`(Q0fK)%kgC#-%HiAR2cfP)t3*lXSLi%l}1uv zMziJ1ple-q`mUn{5~sDAfT#=P&cYy8GEi;l58MPtLm+k9Xq;cxGzrqhb$vusOgFC2 ze~Jl#qlnvN9;fL0#BU?6f5<=_3bvh&%#?biv)@$3RvWRmF;$h zi!7VSBc-EN6Em0<$lG4vUJmX$Zq$+;pV9?8bfn*wk*9f-Osbw23zY5u|HJLF&2SJo z?uDmkW%Sc_^$pmhsD3~S%b1|$3aMLE?a+j2K2*$e=)( HWMK0Pe79qN literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..480a1c9d8b7b9976671edf3b193586920c37db6b GIT binary patch literal 1036 zcma)5&2G~`5dJnbb?v%I2yLPKx1=;NKW@08AfzfP5>jZ9ihAHex6Udt*t?OvM)a|e zKu8>T0A7F-JPKmgts;f^kb`$;X1|$l{`~Xr_a6W{XxpeT>eLcXhj}8Treuy(o`%A_F;pk(_t=b^!FwsCNPA{k1$D8uFT+@6H2qgXkJP}! z4q6NjCHvYGol;({@>XBea}Mibm-bOc4j*MInE z!}Jf=iQdaho?3gj88YLJAkDRUdePZL&&Co!!V@Bl1~D zAS5360KS4J_zT3WTSW@-Lmup%9iN#qb7uVW@An@7_RzFZVb~eSJnSVr%f?&}L#^592J@rOe$j^jzu=g*=UAte-Kw zZ!8$o{lGu+FyV3#9_lofgU%wJ<}rg6slIT)uaRs$}ToQzbSk*M`~`WeXH%&kq@ zj(M7iKErxRccyap;8RZ&v&(E;XK0m8ZDz*P00%d5+r}-1?XsY`QG2+9H3s|LX?8Rj zlSV5%9pob+HI;Fw^0X(O$3{DUx_FPxpc%XuQi?P(Ybr>;>VfPfDx<#=^%fTS0l)R&E8Nz@N1N6+ zc%KVgmELZFXN38M8r@rjCp0dhPN%UhW39mWSSQPH`Pd-KB8DrtO5ZlgXKvRD#(nab y8l2V_xI}v6f3n|H+@FGM;|w?@bFf8;O+$AnK?U~^(CLzg(FrPPo8A^p?fyT7a0Rab literal 0 HcmV?d00001 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 zcma)5%Wl&^6g`ugx^|5dLR%>Bf=iR|a7$Mx2&sySgcKg4j|Cf;IwQx_nThNPqMwBX zLSn%O@F%R`3lMkQDpH6SS=e*u`rLcYefa0!?>_)+p=qPSuo25q7^OVVhg|nVtyG$a z$Ku2oVP~f!GTj;Uf^8cX!&(_Q7FrE;_-d#VB^l;*Kgokl%G@nOPo-{C$dg1S`YFTv z#*8uD5Bwt!Q!e9hPiKjY+p~C@hYVIn^@Ib4MGxmN?_v(;J=pLW9yex5GL125tKCG3 zm!rXv$oBbBDj4cr74h_tXNkF=IW5y1hURQ#2HVt}#ehpCPX=m~Q&a2H^b?S+iQ6OU z?T}}==rJspRA-dCyPqOa%r3Wam7!HOwTT&z0~}n(O&d2D*2{vXM(yDimPpdOXlttoMVp`{q_wJ#YGlTbBN|ANUmI`WLbyr5I%4zH`gzl@JhYd6s z98&q(RGX2YMtP6V3OR+fu}O8#Bd3h>Dwy#%@r@%3pgEdNQ3c5`RD!7AyPM184PLQN^dRsKKyZ->eUj-Zh literal 0 HcmV?d00001 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 zcma)5%Wl&^6g`ugx^_(xLR%>BmXs#p;TCm+f{-e!NJs%H6?MU;Or4Qq>dZv;80cpq zfsk160elWC*dXq>RiqFvvasjQ^||+)`|!`d-+utuM%zY(VKb7sA0|A@MqCektyGfv zC*sr?ey|&eR0qR;bH|3ouvP|+gjOT%zaHsWNrrhnh_mJvW$u-sr&4z*CLk25Qec^y%(ZdDIyO_g84>qa{Pg=7inZ}s3wO%a6 zt9*DY(l`7#5e$u<3VCwK)7ae4ot9}1LwmL|n>*B;#U__Zo(@%>QBxb!^b?TniQ8l9 z?TDwD=rb&rRA-dCd!Is4%r3KWouN}UwTT&z103AMZ5y{3Hp+sgM(yDamPp{yNw!Z5 z_fe&!Yk{XxJ`_@ulmnHgp?Dsf{#D1z_s9&J!FwU4NCUH~f_hlnlVPGVn*B?m2deL3 z6D(mb{;%j zwZ6goT;OW-b_+Zs%rDgG-XT1paS07NjddAI1*VE+vJ6)hD`Z*3a0OTC+ba3Y?OMUO zOCF=a>3o4pq&NO2`%U8h6l5!Bz%iMFHA-v>TBigR+(na4mpqJ4kfaTITQs?Q{{V59 B2c7@` literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..f239807a0cbf1559dac6f0d9383f8d4a572a7092 GIT binary patch literal 1041 zcma)5O>fgc5Ph4Px^_(xLR%=`g_I`Y!!1$|CetXww#3&Di~^A74h_#>%`v2PREMF(44Q$`YwsHT<22Bi-8(tBx-GzehRWPb$dbD z4!O=m%&=O}ovqy8{}PFOcA1OY46UN6P0e@`;NdRryST@&Srjxg>HrV0LOq-gwK`8? zp*wc(4)}oNTH?Al8VG5qq9ZlZk$96>8OxI$d~RpX5WJOg94Sc3%D#+JmC*{k6Q-}? z09$A{Kz|0SR_$hxRiekm68Sx{PT-IqD7T(`hu?bo zY~A^R;A@Vn(A&@Pj4*#trF)C;gvK@0=(N^#tmK$7R>`tlWvr3q5W@}Jq;Kowv$tD0 z;~sfz4PNUTd?LN`9~mRrSScr4y97?iJZw;6+t5QwP{JeB>Ga9N=meFtNpFV+`1l{m CCJ1!^ literal 0 HcmV?d00001 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 zcma)4%Wl&^6g@X_>)16-2(-MRg_I`Y;dawa5Kra6;>5BQ*AS@Rf#8TAfbyJmrPe^X0Emc6n1Xk)(1&SS#q> z_Ua$}7|KkE)Wt(WyGVm;iY)>>JjPQOPY7E@K{??9Ji`XTJ(0;kr@R&VN~nlrJfBKs zxRoP4PlobCWH+|DcuH@rbcEoeQZnhedyL%YzYcp3vMT$G*t%Z(7kuXokNzt`9xCK# kCDt#AixM6-Ik6q$IVULL1sZ(&j1b@8Mz;8LSgn`;0Lj+zIRF3v literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/CACertCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..35a37577d5a1ef76cb91d66b74619a0d1f8f3d95 GIT binary patch literal 6606 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 literal 0 HcmV?d00001 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 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 xul)@^lV1Oij5NxWCmk6 zBoGo0d;lMXn02e75I^L>-kI^4IkRWRzyJLF1z-ma7X?DSuf}0F7HK*XW)K>!<1{>$ z6KjNRnV5a~xjpRFc3n7xjXZQ;8a*=Mn~{mMA}pCfl-9PnbSDozTf4h+#r>%R^17SJ9B9?qC;6eZwCBl>XJVj@fm<$a61MV^W~UwCHdeT&kH_iz{SKih zlKyxomEkrH^f>9t7m*dO{BQXl*-;aMmrBW`ZFg0&g5^EcjdjYCeT?n=c{J1D`++*tl9F7B}=Kb&Rn-3nYJ3kP7 z&2VLY`x&0FNC_(JHyO`pTtt;mYhA)hhACl{Ez4EH8e0xCT*ejtw$3r@UCkJubHw)G xHNU}U((C_`(Fuw)$;j4Df#+l%Hn_08&>b#Nz+Ke%^f^L&f?L|;x5H!G`U^c42c7@` literal 0 HcmV?d00001 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 zcma)5O>fgc5Ph4vb?llXgtkz=3vNlwhg&Wc3PM6rk&psZ6!pLbZJkwO>g)!44OE=q zA0dH|IPe4bQHWW$Dhlx-2YYA6Z|1$78UOzC^A~_Ev~5%vS_7GfQNpuq%=IwTN+nr% zD2|K~c15aRig(>n-`}=jF|3uL2STf{4quFQtR%yN9>$r!Nu_&b=;_)W%6S;eSU+Om zGbi=l^7lMUxEzFgI*sL^GfSks&tP>`UpQb`^e~SF7jrn{!A6bYL2H&G(->2>-ixJp zo{tVh`idVUf}z<{5l{Ac8XNy4Xqomf1T!|r-=_8~`dlh`G*Wp+eQi$jPe8UNy!+JM zF;6qmXIL(|o{{eEe2hdfzRboY5?403i7}rhIJkmqHm)*klqF41+rxD%k-|5J*)DC} z2bGerDo+RbNJvdu_Eerm;z?{eSpT^A-a D|Kfgc5Ph4vb?llXgtkz=3u#Hrhg(iXK}aYn5>jXpt$OGMZJkwOuy=#Kspy>( z{2C+>5(j<&KMFDHMnxe$v zyceg&2s$FwZ^VaA(rawnuo%{g(0!rRPzQTM9VyAMpa)Ub*re3mBJ_0bHpM)RWTc-l z@R@_U@AwH1VlMl^zD^_AZ_nas9Wq!Q)e{aF7Cp>k!NnXdc(74nc+#9D$u!2Kt#%_R zc1OvvNDugNEEwut74rCyr;)jjotBY@!Jko_#x}{b*x*vh(?pFj(zQO#KLOdAxIHFy zhdj+hk72o>JyW{7^Dz|p_%a*UsJNoRO^o?Gz`+gNvT>7PqbO*4+8%CWiJEvjOw~!$ z6KTgR-!4x`urg2kqeMteCGD$G8j2T@5wiMk5g(bcGk7nh9ES>0v$`Y0SY@;YuY?|` zo`-vAGB{N8Ytwtmu-Gl7}*k_d4mz-?n40ulFV2u)+hVD>;67Hfwr%N72C#a-#dRsKY FjlcGE4D|p2 literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)5O>fgc5Ph4Px^_(xLR%=`1(zn_!)Nn|U*D#y|gl{{dhREgKbvolxe%Am&+?a6JmNQgIfX zh>0=I>JGei?c$b(caOM>5h+7~VG* zjOl;iA9)aS83qSBjbzwe#M3%ruzG4J95AeUIEQ5yOE~YrMwQ`FbCD$T7?ZZvkED2& zkB>!q$d6;e(CDiHkB@j7nfsa3GU70_7HiY*kT|P8mr72?D$hvN#ytHDWN+ryA#D?$ zW@5;&UecYZ+}-~)5XI~=8&?_HWmB7(@if4}b=l?h! z1+GSKx4<*P{6d}XZNd{87to;7SQoKYV5(Rr%Wze(L6$`fmvEWBZIaL2t`v+<$zy78 x+F#%j>9zmKep7LO3bKt;;FQe479}BLP`_!a7$Mx2nmHEA%%z9(ghosI-|tYnThN%qMwBX zLSn%OuxAC|g1F;WkwU!4!k# z634~}pNd3i(HZs{+cqqQwK8yDXf@K|tC5bCWSG~3IBRTD=585!Ds`Je9>p@&j~U)K zXN>87;2(LIaM=&{bQ;TkdlpaYfWhjho^Zgh=-~|JUCiOE2OB=a!{#hWrZFaMwHr(E zG9Mm_be|t4f}!435l;?y8k_s6(=yFrXw6n;W1E_@*x*vhWp%C=Tjt#*=05^GX!N*o0#!9z`<2qw{eYOy)0;I)E;hNi6p%{%HHgD z85Vfj&xb;4Qn9Di~=clXVl8NBCGinL?4R8ae>J2FaCMq_^=^g#7IY@o^D zkjmGl+LQz}%X@rU$O){CO3OzO!$nTK#78dydKe+Q1ZgBVBs`U-t z=K@!yw_D&DVSb@T_ki$(#yQmKG}d`66&N4OWEn0WD`Z*3Z~+(T+ba3Y?NY(`ggi!r x6MTV7q*wkY`%U8h6l5zWz%iMFHA-v>x=9HtxP=CtE_oQ8AW7@=wrFU#{{gm924(;N literal 0 HcmV?d00001 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 zcma)5%Wl&^6g`ugx^|5dLR%>BmXs#u;TCm+f{;)s5>kLlMO}0QQ)iTzIx~?y2Kre@ zAS4!i03X2$egkpGts;eZk%c{XuFt*a+=qYu{r&^MHd;0+44ZwKhf%__Y{c~-)Ji2; zcq~qg5k3=%(4sT!HFj)R3~OcJzR+r+VbQ}m%)6Mwc@H*xhDXg=l1yVv+G;nJ z;#EF866qU$ln91;S4BKI;Aw2`XHLsBhoLoFnT;K4&SHa0B~OMb�OY5EDs_QdTW z^>)P5O!OF*OR6)<-Q7=-C}x-0xXKWeO>JVv;{XTOanr^PhK;hIsZo2lg(VXB_Bh+4 zh5M*d(zU?Tem)dZlazgxr;&IboBsLZ<$GX;&EUO|QluTTs)Bl0-IY-o5;Sw&>w^j0)+m(Xx zDS3fgc5Ph4Px^_(xLR%=`1(zn_!!1$|CC_>hCWv*S1OX5Nf{{{8*~zz$kADhyi#nFsxtXW5ABVW5?Y zv*4pRHAe7U#6pX168gI~EQXCT@IYua(!r~dj+A6r)WazAw<&Y43_X*&Lm^Kh8R@4C z@0)YR^gi$t9>iP@fh|Xx+)Y77?wSp!=j4?ocCa(%J8^3Pm)=TNn7hh zQXJ&Tu}I(W<5(~>daBRkBc4X)K6YA09ER3>ZTh<;&a%&?lBbEvGZM8iOFsqKnYuk9 zZAU!KM98pO(w(W?-TTxR#q2U0R~g!6Q=6LcB*4LS+_Z6nVY4h~X4D>TVTF2lH%iq> z6pFNK_U?cuB-av82YDi-riu<#p7zCy$jDfo?BGK)a|Z9Fl;cQ2Qr7llKUNv7z`oE! z6?)i0lfj{iUz^TTDy~_s_qeGuSO?p*6btlcuzKBW23Zw)Y%G!AA?qzH@&ncOy{~ZF z_aCfV-{5^Na5Z|n1)dS+7wU9x6Q0nxfCin$x`>qmQ^hJ-hO3G-vMge_gv<18oqXnY zrC@wU9#ezU{sNasul-Nfgc5Ph4Nx^_*I23o$M1(zn_!|kP)AS4uugcMSwq8_+yoR#C^>_+ywqCX3X z3W)?w3_K)f2Lz485Z;;&irkvJg7pKO7|$`MJ!|el401s zWX|A-AM+sLG71iK8q26xj&u$gtiBox2MkLdu3*7M9alZrSSEVya!NU3iZlkX6vKQv z66ps%N(4h|phBJ;@-#O7dC)S0GjuLDg1<|HFZo<5c`{XbMhk0|+h2g}(57ZQ&BT~t zwSv9j>h66GMWIAy<2FOLN`niE%@Z8l#eEz17&fbtO2T<~fOQ7@SfnGB(N@?;hDDx6 z`BX?vR1Q?0hT=_ZHnu!}O3#gS4BlHQMcOwHPtevHdooN^MoPXDdZNZ2w$Ns9i0XSY za!Rb))vG<9<_y-uHmO~w2hN&JBRN?$`fMyx+#zd7e=WMb?vqov-KWpK!TVC68g#k^ zno;I2G|68tYI#^ei#*E0HC!(+9#+Y!Q`I%xpvX=7Yms-W=< nCPIIT7Hem~c?$;{RM-shkP6iB2tM5|MHt;6BAawtq}JnqvfuT9 literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)5+iuf95Ivi^aqK!5LR%>Jf=iQdaho?3goL6XA%%ie)CXQ*>#P!kvm4oK)P5Ec z2#E(ifR94Vx>ckQKjgu?GqY#r%*}uP{`w8z5N#VJhW)Y3f-vT3I^%j0Xr3|dMR{|T%JcV(k~c3wN~^Q ze&%0!5OX;Wj&%~rac>n%`-H*jtC4WPu;F1HWfyCxdazMrc-C4a$TG%+tq&t9jmV8ZFZthW2V@`dwyv=TnuX)YRrO{Q~50LF-a)XFN&8 zh+(UsI+M9OI15ESyVS-_hECDc7G^wmaBv%UZQNnlD{@*IwTFAyWT<`&MWSCtu{h#W z>Qsd%<7_IVreuy)mW0B*G1TVk_tcD=!Fw&GNcv`31$D7LkYTJ+n*JN1Cu-zjA1wxl zl6_~2PAIQdajP%uxq$U>K>M&pKLu+v%u<&pEV38fDbsqhI+j;zC$NCBH zTaK&K>E?Kbbyh}$^bX+(jVoxfgc5Ph4vb?llXgeFkFTU?ri54ZG$f{;)YB&1M~TJ^w%Zj)7F>g-zf1~oqm z353LfAHa`7%(_*i5Fc`|cXs?{-prfvpTEC;1K3B?MuA~>C?`Qb;%ORlJqol^Q5u|! zsWF1?MXVCt84vse8y3S>9(X9UigoZI)}fLNYkCx>{vKuS<)If+w<+XRC`0|4;k2=2 zOz#W-%7ci@VQ{3AP!8M6c$y~+R!0ql1BP`Et5|cff@>aZlo(z%mPxXRF=@-aP>RFJ z_)H|n{45d-)t>6}=!7SsxnDUgBMw7zxi0dX-paw zc`}@gh168Wk(wlZ@isKtm1c|g+zgt*dnctxI%Z7;=~wQ`exy>G`+K2BYT#iP4F-qG z{Ak)usG>%`$XA_Q!rIuQO<1AdfmJGI9mp!sW1~oZhpbPq$PbiSPkz8{J$<%m{e<@| z!diOsvRzs21GqU<6a7N}}ixQiLwkbgYkKohkl84a=Drtw_7ESH(Ka5QU;Q#;t literal 0 HcmV?d00001 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 zcma)5+iuf95Ivi^b?llXgtoL?S_&ym!o@A>3kpI)QIL>AK@|GH3v8X0W9sZi_8PUH zg#<$4fe+xL5VLL-DZ~$X@b1j`%$&LHpTEC;1K3B)Mu}lJl$jsIJWa=34}GmvocgEY z+z5W}Y^)O99Ss@>HY|qiB5)|Q8f*W}SVu}SEa_pCHuflTzX&}OxuiTHh4E-aWL^ABmV`&{TSY0&`4j7g_EMm#U0FCc{pV)6A$n+`$T^^yxJH@UG8L z=1G{1gw&M9k;;-lyo^liDwDl?Z05}1y^>NSU9+Wv+E?w#AXX`j{k70THSn;DCWAv+ zzBSb*lu)y{$Crg%z&hBYMOdKMz-l$K4J4K5vr#6yL()fBWCtqk2S4DpA3oZ!e!}~f zSM$Y(xEG7r1 x{T(im-ujP>ZKBM!aEqd+T_WWk9z zGe*!qov2jz#>3{m4U3^s1dfDO6CJ#p=vYaHH9d;6<}PI(6rmSVcPZp~EMxtG;Zu9b zn89cMg$D_jQE;f!SVrAtJe?y3tEYy-0mHh7Rjj#K!6gqiDh$us%OqLEn6%YFEXCXD z_*kUx`Eeo`>H`(>twVGK8vP$&WD3jkI>jNzE0~P<_54irL$J^FV zc;9kdmELZSXINzo)adRLp3u0AI-SP4f{h$g!6sRTtAZ`EEMmBdYxHfKeCBpNXM9N> zqrvgN!zI$2|Bfgc5Ph4vb?llXgtkz=3n@*^hZ7E!P!JM|f`k-Wq@o^rDcfX~7@S?p-c;?+ zLINRi;0N%d5VLL+Da3~y?42FInK$!h{O9kl-vC-@*eEdU4do>0M?6hqu1A4ZDoTT| z;?fvF_aat_?u-YueH#|TP9AtDw2F0b80%0;hBZA3(^``<_wvvSsoNCtI+US)!|=Jj zWK8c1Kj%TjdPcq#F(_@UMR)E zWPB!)Py8$r4Aq|M^XQl-p}9|;mJx@cv0R(AeG+HA#-);%V>L-h)aoMr9HcdOdr8{H zJW0iXVKb*YQ@Pu{=!Llu8CohMXWJzwu>Q&+GynzR%v^k=Y2#cT#y1$t~0$?uSL0*m}W$$$C-uK(=$ zw)GRMB+GD>utkh7aQyFZiS+J&WUPrIYh`3xSHKyWgB?n28hS(t3V4hfoi2G8ouHC->21*fpZo)D CunMIB literal 0 HcmV?d00001 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 zcma)4%Wl&^6g@X_>)16-2(-MR1(zn_;Z`gP3PM6rkdQ(^D(ZsW)EN?kGZWbkYCj8! z3W)_Dz(*nOxK*TLFS_u|y~pQ1&;0rO>ohLrukzR! zLH}r`ldLx#`Fl1j!e$wHEHgdJg7>p5(u%O0O`_D_;mm_Fb|H0_LtaKI%3cwMtqaBs zzKCxkh=m#l`&kmHakq%H4+vIIkE8>_iiagEyQt!l2OF#0UaJ^VL`;(UAX0KTpB~EO zqd1Hup*hf@hz~>(8UGBl%;1Ff#YXV=c<>cpD6NjCdYNNwCCbjmb1r`RIE!EM~Nafh%~7E}<$b&K%WRTk&Ne4sWNV3 zU(b_JzKP7XRu|9csgaG~y;VvkJ@e=!Z>-)|VXRYD@tw>jdgNgnErP>selX)E+)=B1 zt!I;*(z@7TrK|k7snIZUvsK~GMvZZYts(!l`1U%FPT+PPKlusod(Nu!>E>+05!-v;2?v{;*bH%>6IAd3KHn}Q#5cH+Ej}$)>ft{d;qs{f literal 0 HcmV?d00001 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 zcma)4%Wl&^6g@X_>)16-2(-MRg_I`Y;dWOk2vJ2rLJBQXQ5Wnc$tW>6Gm$;1+Rs9w zLSn%O@KK06ZWXE6i!MBK@A0|MGk^a6`VC+gEf*!i_E^osVJy;gCd?!>TE}VlO`cgJ z?48bZV!G2&W6y;{*eoKCrO`7J9?ndp6=B&-qO`HYnfpcTTPBQ*AS@Rf#8TAfYxJmrPe^X0Elc6n1Xk)(1&SS#q> z_UiXehcZ(lb#b52F4EwNVv7I|5AoQ=Bf?fuP)@i2Pq0C7Ph>LCDQ|_o5Go=W&!eJB-}rzYcr%vMT$G*t%Z(2Ylxo5B@7b?@*!r kti<{SaZ$pJVS$TpAq64+{hN64y*P2AF>bhf&c&j literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ExportCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..2d18e7981687fced1cd80e057f090a4c9e0f0857 GIT binary patch literal 6748 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 v!zR+J|BfAh0zU4X@^dOhIacOl>7xS literal 0 HcmV?d00001 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 zcma)5O>fgc5Ph4vb?h1^gtkz=TT<$T4=3DE5E65c~VcFTmpuvLT(M5@NA|9YH;N;0gZ!!W707?e#B+qAEa?8gU%wJ#vy~zRRdvxVb#GhR%|TcoC6as!$WV8B=Z=Zw$clw zc$JNgMf`>zM}nc&Q+*yC@;KD@GpC`&VQ4PaCdp3ftk$_yaxzj`LaNs0>(4;iGq(pM z?wH4k7%;3Cw5O@td!PCuA6{bO3Xv-s+su%s0T!;|hKcJ8J4HcrvvzP3YeewvNwQBX z_ff^ftIXpd8wr^bl>?Q4%NWH zE<6T{sP5~QV`Aks3Y9+V<`mXJi`HR@ehOBt>YX5~M30Fw`7N@JV2~ehn|Hp#Zr;7O zX?%n8ImcD#ZRdD~W%dhIx;F_=Xq-olPHkPlT8?qCPL{6aVuLJ$DqO@R`nE|veY>1j zd_o@0!D@biO+~N%SB(8enf=L&ZJYw9#Vl-5V%^X-B`Dz*>U7%VVRV8h?afgc5Ph4vb?llXgtkz=3n_KNhZ}Av2nj_6A<}}>s)t@+o2(pzvupXIB0mcW zgv5a#z?~EP7R0O@MGEmD2YYA7Z|2Rs8UOtI{RePn?DphoQAtnjpN)h}siH%b#eMN2&^lJ8Tlh#1oxyn}=$ZuZxNo*xQIHP+PZ|b98YY4YCYkxQr|GZIgWZ zb~R^wP99x@)%pUPNU#4##(tyB{^VpE=fEkMg)K^~8@fXYO1O&#oi=$GouHDo>21&e G@BIV$u?vO( literal 0 HcmV?d00001 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 zcma)4O>fgc5Pg%lb?llZ1X{kKg_I`Y!wuIUBoq~d2mz_62W}f@l^C4e$aX67vyiBe zIPe4b5nSMRAZFbvQn3#`cz0&}X6DVj{rUI%4*(ssY?KJiv6}lqB$8w%(utpH9VPxJ zxiE(RQmWT-(VLDMohLRd!gdjQEK@y8{kO9;)QYg0PQs+IN7(Hbp>wsnobohOVfu_P zXr42t|4|$XKN4!}AEa@p#@&3Rbx5#!dL$hX);z3W)kPT>JlI%gdd+-FK4OYg`=OG9 z`E)4b_hJ}HLcOm85gm#+H2!JOGJ_M^=No}n%9F1(gwkp;)$@cmR?qi81L^RpW+G1H zh_F#W-;j0pKL;|CBC&Cu=@f}@MzUpsgPXW*;}&73C@H6$hdbCJ*hexR>V(%q9|#o@ zkLOdVQl@gC=W!rkgl1*y%g6NCXh-l~DJA2cd3uu9R^3-Yq!X6%jZ7zc#PSQmRNcbT6!)oMm_wo3fjsBqk2YruakzP)3UZ5ZXd{7gCyphuhpx5K_+wmkvk{& zHAo;N4*URq6k^t`B8B*ngLh|UznO1d{`2?OZvgvf*eDQoLpk<)age5?Ko5MaRGj)B z#KZ{x6Ct08NoUxvwQN{~?L2TOv>IvuWc)K$C$9?ZY0Hv z@$f_>uY;3V5UO3(3*zG-iHv?`v`ljdjm65WwYWK}wLmI48LDy0O|8z;&p`HPv=;Yv z6eOwW6EBnIkn$dg5_pI#`;n-+eP~g7;KPk#x+m3hrY0Q1)V#^7NkzJy3lQ zyQmW!PWF{4I^n$P`K>;y=M>h)9`C~v{}fcIn5AH;z@LpG+Z~qPz+yX4YTo$)w|V#8 zmh}_fw+vV2)6MXNW%`T?>rKWp8s|{u+eqiJo?%MZV99Wmu*s6e3>R>b-?rFhv`ZP| z0b5KCPV+llCcW|>8GS*KzGh^br@$$hgKZ9M3cASw3b=(D-!5B-Z*WRGd|Eua+y4N# C5(qi~ literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$3.class new file mode 100644 index 0000000000000000000000000000000000000000..420e5dfc3333d7f17588c5221c7a0f34e46e72c8 GIT binary patch literal 1034 zcma)5%Wl&^6g@X}>)16(2yLOfTN0Xthg-TrK}aYn2oWAqsxH{TG#MoZXC|^8MED0* z@FPedBo=%CABDK%R*^!y$ig%C-Z}SquK)b~^&7w*>NawOoxU3T-B85wNF)P4(K?L% z_i|zc|A|!3y83b`PG~trF+r=Vb#MjR$MIMj0YP9!u{GJLFO?gY_T0E z`C>dgmeHX&4ke-7)?E=Ei6}7osnIgSA=DRZv$D^_S*-}A)nus0F%PvopMD0iH>2I- z*^WdM%N}7pqdQZ%d+@OQ~t|6P?Jyl9ZEwieUXIMN?-B8EO{d1WNbkD;M zY6OQ%ePvqa(A8S@pijFwfiBF+`hAE z{e<@|#TEHE-{D(HG?DYnp811UOCRV2cBrhPF9C4mVKY+hq&!4KAt5r^U?O{0HbJ B2Z8_q literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$4.class new file mode 100644 index 0000000000000000000000000000000000000000..6fa45ba749aa718eaccd3845741ab020a7a6c1c0 GIT binary patch literal 1036 zcma)5&2G~`5dJ20>)3UZ5ZXfdFQhaHKWo?A#vaVcqqiITSW@-AqVfyjK7(0{`Sw`U%vtDqG6*z*be2$@5Vuz4g=lywNi2F ze-L9M_)mp=F2?OaueN8yB5dY?L!s4B`!9z&Qj)Nw`%zlk;mDml^i1d$yF7|yq#qOB z)#vo-ybnGGejLcqKhjAg!`3{O#xcQatDbN`SoW}pB^L`=@nEAwcvzn&$SlT$Eq5X* zUW^7OB6%I0#DY-msBRD+2T5e~GoxjiLukxbW^Ip~vs??LlH-9IrQFo&Ed3N@cS?J} zy&VQgDtd&qoa#*G?!l+7$Yz(?xJ+o~O>Jt%69)%Zaoxr>!d9Ns%&0xwz$#(oZ5oC9 zaj23=_XmVxkc6XwkeZV@Qlq3RoUr2ko#1e?uT0Si=T*;d^;tcquoiZB9~SsgP^Ds)f~5j~Hi~R_Sb77C?Let{=Lg*8 z-Fq9>Pk7%lT$xWd!xI+iGb*e%8P8~(LzQnMoyTg1DPfHz!&SmMOBOR+z(xMI!8W5^ z${6?AVsdbr-{CUpmH)`-3ySnLBU?WOPRJZ=a$r-?O%71NE!6mS*+P7SQ`+Lw;@RE) E2hkP?ZU6uP literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..32399766819b58f48e5fce78a6359526b7ffd08a GIT binary patch literal 1029 zcma)5O>fgc5Ph4vb?llXgtkz=TT+^Y54T7?pdcg^6@&-{si=ouV4JKQgS{KsYeaqx zC%7YlkT~!I_)&;iw~7?vLk{-Nj^E6ic{Bd=_t$R#yJ*=cF>D7i^ZOA`(-GH0Un>=* z{s%EOhW|{+7h>Fv2aP=&7Q;pnI1pNmwEt?PLnRrO^e{{tJCwOsgq}&=p^!(R4E1A% zcg;Ctdhhv1?nhh({-I7n8Fc3Hw2m08t{Mmj49gxCvE*U_=RDY`Fg$F|lVlcS(pGz+ z6bD&+B9b@!BoYkup6c`Hh$o@BpE)ff4nu3cHXC~+&T@lGCC9PKQWCX3OFsqKow_|B zZAUyw#eiY8pgU8!yZ@;#^4X;}t}wKVrZzR>Nq~cExMAZu!&Xty%&0xw#0r)4c5uLB zlBmp+Ad7|6RK=mnlD>Ev8tE#Ny}NJb%-}tjQY2lorGn(E?#q6pQX2b9p@(YVVH-^b zhpK#Sx=pB{X0gU+jhw^LgrwD5}SrLDM1Oh(4f;L52F)Q(iXif8rtoDp@{{5 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/GenKeyCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..6c83543c9810a5ba9debbd3d229ee94e915e1bc7 GIT binary patch literal 1032 zcma)5OK;Oa5dJoG>)16(2yLOfTU?rihg%MnP!JM|3POa3)T#$Auyt06!P&L!4Um7t z34{bf;=m8!Mj7a6JgLQgIf% z7h@v?PlS9X#+_l$-?L#cY!rd}LaRgvFB2Up$*`mcQReSZ|qg0E*5acgN+Kq{l+{&W-%sgwHrzC zVl+G!=^;Ok1w*~7LLMLSG&1_B(K5|pXwFxrzemkk_PJDYJXE8Mnp&TwpMva8Y4@nN z2~RW8V^}Sy&SdWHe+orDyUfNVhE~zkre-{GaBv0JY+Pm7Dsq|`wTJ6iVQ}6gv~C|& zN?Db8+8+&t)Rf498l|Cl9GUJ_CaZVXjGDoFDy2v}W>E!ou(~h9SY4pdsVe!y+rzO!!q zg!e7SRq1qdJi{XUj2h`J!V?;2QK#ET=dhAvDp)1Sa8qr|Y?m*X%>c$SU09)wz{Bn!Wa zi7~>LLcSK0&amh2*{~S4iokuL)kuf$MmkoKVMPz(%-^BR-6Hf{>NbTujb*H#F??<= z7}Nd2k9nAI*$)qN8q0or5l`!o!Rn}nMhYJHx52C_SIdrY$( z@iY@XhV_E(Oy%zWw@BpLWj3xc1VyUNXgm#Ya09n&++=7J1i0 zkai4Zp7zH>AvM)bm#~&&Dp)7Wa8QDW239ZFEbUHEjmn+a literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..a3533a2505d1b4c97ec3715c31c30f1f65337212 GIT binary patch literal 1036 zcma)5+iuf95Ivi^b?mxH2yLO<3n@*)#ckeD5E6=tR4EjsqCW7_Zk<(Puy>>N2GP$# z0wM9h2k=pdS+|N5;)gtVcV_m?oVoeW-(SB0?4#wP#IQS*lQ2qnmW{a?g+{3)3qOks zD};yXSZUKs2aS#khhe)2JQPNaP55qXVkH??%qY$pdlb1}gq{oCC6|}6jLj>Cv*v<6 z{ZIT04-+nj;jz)N9CjD6v`!eDo*D=b466Z_vEpM1YXMwT7+y3N2{MndVXOUEila$- zF7yX}o(P6|Uqw7Q;X1bZmC>=yVQ4K@W}`#RS#5Bs=Zf8jXJ;stTU{gMnao6aUza* zN}VcmJ)ERM8cOC^O>`ve8$)Hfe$VZ=8G=J8h3?s971YJ*fs7KB(e&R6Gg5;9yJ#|a zlTLvr9ozi9Q!)vU?21Oj8rM*#+e+85o?|N5Ajxu7ut}0b3^#C--nPhQwOcvkYqHoJ xy!LnaM0)2xGNw^xSx&Zj37nF7*rvd?pobKoghy!5?URMk4N7T;PKRdq_#eDx2>}2A literal 0 HcmV?d00001 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 zcma)5+iuf95Ivi^b?h1^gtk!bg_I`Y;+8(4AS4tOsZzK|MSbW?*(NK;;OtuV8mQo> zkU&U0@Bw@jV%Du9h4>*4-klkrnKQTj^Y_gs4#4WG7knZ&$5K;QJ|HIv*3d` zHA1jIPE@LU<6(2xhQ+W^1`dT*i4I;TI#QBhNspqexlNJ#W$2mEU2=IE$w)tAc-NZK zr~jURZze{z_9FL5lb!>aKVEOpW#Vso*=Ur6Smfmq8f$brh!fp`&_?)j6|dt^q<;O$E((wc5WI5`jcL+~tTttIzBVEEuf$_0QlHu~PMv_GgmvM#ut&`1YR}04HWHC87 xo$qjo^!k5f>fgc5Pg%lb?llZ4YYhiOH-PJ54TcpK}aYnQl$_o74^W)O;(A)-nHxvq8Bdk zhmfd{IPe4bQHWW$id5`F58j;_zj^cV_Rrs6zX9x`W1~XYp2(R$ih?Xl0zLJ$Qc>oA z6sN}U58_0nx*v~Qdp0b>Mj3b_v`V!9HqoJyghf3Kv(^qX56aL5>K>=O2xX{W5{B(7 z<_tarp8`J$)o+`|JK_X%5NNd@6NJj6PoCe>l8;zSeZJ-b0V znZ-h~>mI3DIufr#v$Ey+TY7G^BX|c=inMQDp5V3B_vI*38B6&_=&2fe*hZV+aIc4E z=9JrNm+$ssoO4(YJ1lpVUpO@yMsv0*{Mo2+++l0Te=WYf?vpdP-KWof!uy`1>U_F6 zny^4$&|rT(=kl$s6)Jgl-+W!5#^o>O|k literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..651d8030dcf7ac96fdbea6af8c50dbd67eda3bc8 GIT binary patch literal 977 zcma)4%Wl&^6g`u;b?llZ4Ya(Wg_I`Y;daqg5K3<7N^XrIIxK zC{C>r9!zISoBnjv+I8VDY?Oh=!l;=E-_A^|B*UVa#A$1rG7rkoh15Nwyo_aRUNH>Y zSL6&%_$MAFT#my-qhmSl6(gM^2B)t^!UMxnfCVi2sNz}x7t7RMyGSWUY?AsQmSUJq zkA;5Ej}yVr9H@vVM_k9&zX&>ZaE8v+MriHQ;7ctol{}rQETx4ti{&ptc4$*Gu2V5$ zSS{(^_Ui9{jzq3R>f#PVw@iaeip>cg?%{!p`wW|9q=Ik(9%7v#Fgi<3f3GjJq4C)V zh8ox7Y$~LoehyWpBk?-6Yg?Ybrx#W~;vPsTbl<){LEQSjj1rZSoNt7gs8N6|v>80= z_nn<{9 literal 0 HcmV?d00001 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 zcma)5+iuf95Ivi^b?llXgtk!bEh$aR#Vrq&P!JM|ic~3Fq*i_4rEHT`VruVN_6Cuk z;0Zni353K0AHYW;X5A`Mh#&G`@9g-@oS8G@KYxGy2C$2kjS|E5K#qc5#Ir2ndKhS> zqAWNQV`BsdaiUV)iTjN`8y3Sx5qKc9N_6lh(V>zIOL`b)jUCF|Eke(vZd1s!P=@+B z!~5o(G2IXRBM%}j2f?9ELpf;A<7pi;SRK_D4j7g_EMm#U0xo&5QDJ!6oF~aF#-y!w zLn&U5;!}|x@zY2!)Vr$3qhp?i=6>O{j5rLf`PyvkkvPi@E|na|YLt)q?I!r7fo$y#*+XCw{XYCZHBF)pqWv7xQi7A`{XP; z8YiStnWuwMETpC~4%H~_iI<_#t}p)hC9vfxyJ7m3sMSh^-KllOHfB0zK z`U&q_j;qq!&G8J2>@#X~_X$sETt=NvV_m^Yj;UakEW=g78d(-GT*Wo|woX2CyPh+? zAdjiR@xQ|*(wqO0u`ejIuQ}P;IdDSeV1p8yhBhfd3HQ*T(q B2RZ-% literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ImportCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..960686d01244e2298efa14043f72bc5a3c1e727b GIT binary patch literal 1029 zcma)5&2G~`5dNlh>)16(2yLPK7gCypAGcg86oiDLB2@|nQRsmSY?D=D>g-1L2GJ+s z1n+hhh^i=33yF89mWS$V- z*Jku-e-Ix<7z@=44@?rNUUL>p{gB|abXR&HECpD=qK|o;3*e$icvPDu$TY@=Ewv*h z_eX;xnYNfez;cEuVudBkRm3Vw4l`WDCH}X@HmhCE7@xAm z=HNBH!)MZ~|B=xb6zFS4wt5O2lX+O@z_y@U9AFN&QRUlb3-Jw3X@gIPhj!;50oMkn literal 0 HcmV?d00001 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 zcma)5%Wl&^6g`u=b?llXgtk!LEh$aR!!4_#AS4tOsZuDFin?G!r^zTWwP!4Q0`zZK z!5RsK#DWjtqY!u8DpH6SS=e*u`rLcYefZDcU%vrtqh+JSusM*UpcnBhOSm2eTB#@t zPQ{rqg1tCVsqV!6#*Ph(VXX)}5LzWVc%A4_NrnYI470`-W$qTCr&6~m~{hZ;r zIb%%sJ^#Rih|586sMAmm+Ov3CM+{a+^@Rh5MGx~>a50BV9&A(?o;GJmGL125tKCqF z{ZV`((l`7h5)AdO>hb7^r=huDI4#p0hSqFlHg>2viw!Q7Jd4#Rqo&rU=_erD6SpVS z+k~f?=rb%ARA-dCyPtX@pIv6-27_NTwTT&z103AK9UHe9Hj09#M(yD)mPp{c)9ip2 z?xRXcSDB}SQ7oh;DTiv5_QcE3^sh2rzQ<py(7 zYW;-wEyq>q?dEufdG;AKy8DDDG%lk~r?IYJDaTZ>OqSuQV1+D;7_Q}yW8at<7mIas5_rl567P{KVl=yb`$=mbgHptnVnyZ;Zo CX$dI+ literal 0 HcmV?d00001 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 zcma)5O>fgc5Ph4vb?llXgtkz=3ocE;s&hWmm zU`+1=KjT5fbDw^8NjHdw(ZsCrN+YH-9L35+_a2IRT!@DF^XW>Ak zU9)$GJSMryJROc>AvINWtj1|yybO(umFW&XF*9fI4y2q!3X-zAFZ+?oXa!ygJyHV? zJ7_RCRPk%mc}m4KiuIl}bph*OmzH9Q{tQ;Dnav=pM30R!`5m&}!XiIVX+8V_xAo}p zru7rvw;Wfcx0~Y`mf2_2=-whcp>Y{?I*oM&YdNNZb+Qas1sh~p#BdeY=-Vdw%Ffy5mGZPl;($-&cR+y?2*$&prD& z_fCKO*&~k;(IjiImxO6dN2I%^EgXo)y8?*~HHm069Ix3J+^R1%4V_)lSfakO-Af*( zQ3o4ZAMNZ6MB16GaI}MISmPOiO@W&3L?~Q?hK^9AqoxthV5|;97A$IJDt3m11L$f= z#4rL~1M8!acp?xfQ2UnIIT7VYdxF!3rTI}z)SCji%3!Mk>2 zeA(76%qhg%^5#aYftRJ}>BVciV$n^Z_F$}Dsqerq+A?k83G)MOiD(SSk8>!L+D(n( zQls!g>qBjUM9>`wvK0gE`hZz_DcI-$D+ZWB@;ZP)$I0=+5uUNt4sgJe?{ZvDfyfl&NaKm=PQ?o6bCesv9z9X1$kUFBgqA%b5 zG>v9>X*$zU{fUiD$I}U500231#5AG2FC-UuKDiq}Om#LDP$AH43`K%X-JR=#v1NgE zVQ{IqG1?XguL#6K`t3Fro@n;!CyQp;bP|oneiIu)5R7q+2UCW$-YCW5!NhDwnug>< zc!lCM-=?F<$5i0Tofnf->a_1mHXWmVK2=bMh<} z$fuv0X_=Q=mL-koWMozCRMj3>#?zXIA+k5$WHD$^l0`dT3L!30!BJKAhIPPgRI2B?m+ z;kXXb?hczqYPZ!L3unwu5oDuHqqJM6K}U_2=`?J2w6+g02G5~o0mgK9G5P0hX$y8G zLa;wx0*6a_X_fBr14g$^n`kcjF|Q%g)eXF3!9eHIKrGOy{ab9>N@s!A4$5X%rV}t5 z%U5NP(lvVjT}#CZUF>X|&QW9rVlg9RX*ABW>8si^)IlRxb0_9G@+<9}BFYwWYOf}UZ;}gm@z}Sa_v9isfaJZ~H9xO|22$rpn zhQra#u;gV?hmy6b+1qXUrlR6m52f?cB}_;5($*ouobFHTur_)E*;|oi# zhuY2b(Txx*d_`OxGPvBV>)yh2O!=z5M$FwposVu~8ic9FAGop(fVYE7Xf-0NLOoOW zbcap5j6j-Z^%p++p0hH1uxT{ozHigrbPo_TO~#uX=EzMXn5eF5Mp^G7Ho@xV(Nad(ez+H{gi(0rJq5l%p%6OI!v|c z7xX`15qzR?wxC6pcQuXR&ZDY@zqaW&^uHJ#j3j~@ZRNN1eXUW&3LpKJ=`dA{3GrYT z3>`M(r{B{by!1TNvDpTs1!5cQglu$apc0JR^hbIDrWi=NjfiZ<9+JWW^*?EB6X~8{ z47NJJ2^*rF#s$1=(>U_^=r6DsN|d=@zWdhrkDPPV7DJOWye!C zy+wa_Fm5oxXd6Vhu78Zv0+wcbHoQ93^ml9;Lu2*rJ)7RA4~$YkmiwwzO3Im|Vvcrrxc7-uy8hdOmP=WIXw}cW#-ef&| z;J`F17lMPVLFsJ!>G+p84N|=d!AW~aQQ)TodA1&~4 zbvBr(KCa1bnd0XPo}>hyjQFoSFO&NKuj^};4y6S_5|8GoHc#W}2o?kF?Z))v+mB0f zha`0sE4+OCA@6*$k84eM6At?L#O&>&54lpN@J#aa44&lW*@p~&ijV7|N1%!ZxIUhj z4RE557i6_eI>FDgbcrt=@)F=vBXltp?)bPV8{+YPZs4WLwNsF9{C{#yN!@bDcuw>2 za$uGjTlx6ZY+Rw8&AimBN%oc@2ArPV0{v)J61N@lA~Srf z<_=sm>-ZQRI72Qbfd!%L7O2WPT_b$RYaH+6NNOXFtRS<=Tm<3>2D!Z{Cjx{w_-dQ4;cp@G>j*{= zJSKt}u9#_tyWgCNZZgns-~zvTEh0XRXWUSxY-X94cQPGeA`w$wK?!AJu)Q%9PxyHU z&B7nP!R8zJChQ%SwlNR~t+HZ~G%+=TxW(pM8L3h+vch%~hRlw%FYiL63@sVv;+?Zl z-Kq-2F(2{mHh-7zaB}dB{hH{6X9|XHMOCKgf{O{-8UVb1WLCKh4^MmTFya^|7cx9kBUvegd4%BTxw6 zQmJ-+i83(jQ3XKCiTVK~l=+7?|A?PNLBt6r4H6CUCEYPVE6wC{#=MFZMf@~B>t*Ct z86wv^!sZ|IPvCRop|c<^C`C5tgrC{`bN+>D4#FSJQZ%H?ED1Ka?R7=`Oa8T&e+BvL zmFQHj&A(v;uAWG63mBeVv2r9@n3^F4pkyXfd&va3d|vI}Uy%IqMLzy(mM~43>Zhma3f0`# zZGMB1A$b$g*|AsvDO!2?YDZ2o63)7cJZ)Zn3t_C=(f?kQ8gJYD4!^4@U8-Ca3vGhJ zL)z6;IzCX7GXDt|S6w#fWDqrX7Os2f{ z+E{p$f;L^%$3Mc3rNEX#@fy3I$dD=*c0LoB;$8nN^2z|Fkw&Nu(;J}29f9!dSVwm! zss`zjgimlRlVOymXg(wZZ8=PkS1EJnM`N9V1WGGTy2EsQzpTg-uMCNEX4d(|hcrZr zQ;20_pL0L~VUZ(js-Q~043?p`94SWuQy{dodtErx29_ZC?IUOD&N@FoCqun*be~cI ztaLE89>+)Vnz=2r(-V9$Jev~7gWWR1mNGdGk`h3z>dfu{;ebvZ)R->`~R zUKw>TESod1RGh{rPGb*_Namb_Ad)q#VwF$IvuH4NqF0bLW_nR`y5|#hZoL8G)JZrK z2t?X8L}O`s!XxAmAl(H87^o&M-2h`1$Dy3zsnxX+&~neq`Xk;!M`rD=NQTKYTc*nl zxC4k$E6Oz~@qvJEsF@S$Xn<(wxu#!EkUFm*6LdUQPQNWD%1p%Os7j!O7F-tX^?o@c z>)_0=?#Z^ylG&J{;;W|%Fn429i>K8fXOCuFU6ItwJg*?YaJ2cLqiva=+TH@4xX_k{ zRKrqjSY%6Ms^Jtk+pdk1VR*Yh@Z3YgyvXR-$we|!nr&%OID^yrIB!c=Gy=<_y~}M` zp}l_eE{?W$hr8oGA^0X~)wJ_T^-|BOTCcI?G(mo*6~%^lygL}1+mu(U5n8o{x&mQn z^$t1RmVn@-*bXCLO*wiEG_%cZZy$)*ju1f*UO449H(u%;p~!UDvO$qi8`IKlO6_x- zisTFldu3zlpd(Fw4FC;FwsZ>oM`2K{1NfRZOkM>Hq|25wH7Z2*(TVb~HpOj8=&_r3 zLm=LS5XC2(K#g9-n&Fo%a+X(M>oN}fTrtIgpL|8bq6T;4j-_{H7`!sEg&uo`0^#~- zcLWg-Qh!v-45{-dXlhSTPzhnQdrZ)WT+oeg-~j31G1I(ATeKa;!d_p)xBBElXy4LB z4J-Y!T`u;@Hz9fbfXOPjqmV0?FxBSqJ-MNVS{4(#WdQ)nm$~;Ive(mN`kIvU(J6kp zRP?Ayu7pc=*Gp5tB%v%<+j5N{RU4Gfcp8x4nHumpPLB8mi{#qmevr<)Hzl9O30eDV zHW{r(>2j?tJ7gy$5rUi=XRJ;Tjt>&rkcWtUy>-7!_kuF3U2n?`aw9w>&Ykse1WI;G zu7~VrcP5$sZwRFn$UviCR8zZ8pWCFU1S@j0Ew^ZDp!XRx!BxuLX3KXp#J5c@x57E| z^2&FaCMlZz9zdCsRt=MoD5XxIe6kCGdR2MKWWU@l-&4W5OI=T2iZ?Vgm@Gl=w&fnV z*9pH;;1)WEv`iCSGuJ;d?h%+f1A>opL~~s7g;R=Tw>;#P2bsnne81UC*z&L>VON}k zWG(49QTP|Gr`iOf?6GC9rhtRg@&+~G47N8!+JjsCvQPGV0YoKJ!@~qnWAFHj;I<8LL;4tZn-Va%B z4qOJfs;E02n-heYCF*mn2MoSXd(@;rSPn@sVaVIMHerd0`Ia~cbFf%pmm39*>Thm_ zdLvG0YlFX^V#f9_RC?VZM+tSQKqS6dkD>752tnR5O9sC%sVJehTO3CD}@uLES{}!l^3(*;3ty%dYhs zAg{=)UO@rDxx8VVTl!{Sa8odB%WLvF_&dL$X585ipGFI4?$G7lN99C5$R9*xKy}w~OjwNpl~L{dNIue7j@qKv4_aJ;1XMC67dq~FjP<$Vi@m)$Dy}}3B9=)z- zp171}p11{Pp1A5}p2xZExWZ<>aaYYeaW@T5(Tf7+iTe%aiR%pJiMj@!!|+u_d? z4Y{!12CR4bfwjnm)tDdF;#^oC0@g?Uz*^$MTAGG6*WIICS+$2wNz$ng)9PG^pMt!f zWk9skJGJRF7vh%>261f;L@uNv_I?4xKpJ8eAJ*lqp!AmFpt;4@F@Na#RHf!g+Bz;Ani<5NjZu;6z`t@$AE#8)- zi}2h>7q=E)+C!IPz?Dh5I!V`NbX@0j0DMlz4Nk}EB;Axf<5s6*ZJ&1Fn!*-OGkh>sgFR_kdo)e`K`_JnVUC`lAJUUJet6b!VjZ~R z0dF2N#4QF)M?ZDt>Mc{jRb2Mf_b{sYD--O;mvx#e?w2yp*I~ zN*x+KOfMDx8RMJG`0D=04^54KrLy?dJ@op+^fp#~*Wu`g*O4C<@?X2C2xxs;*~63v zPqun#xDL*NxDI#CPoyC{laAq&X(Z30a-K~UJO>4>dRoA9X$iiYc^<9g`P9k_D8dVA zGdIwA`2IRCqKmnScJdP3I&H=c(iXatm(#txg7)*NhR&4^)m%D{q|;$L)V7wRK&0+Y zXeCv$4{vaWJb;m~D!pYHxS%axHv1^)rFRJzf#CbtZY|-%JUu+9v8sei_VAD-55wCC z^LE@m9*zF7_~_yC#pCyJMQddVqklY_N_c|ln3&`#=$fHjCzNoV>6&S}PIkIxY1f<* zo@=`1o34dUSA%vfD&fVZaf#E|tc}Y`c!gY?zx<uI_+vN;q|6# zgXucM>Ds7Woh2MKU1yrExYL!;u1zJp*>r6+U0-p!&epDTOZcm%@#|=;8lU9z4H1vX zB4SmNw^iK_iFO?EWB7#x@oA8UFVj$73t2cFVNw7;d02;Y;5J&!?YN*Hq&0Y7%VFBU zosfkHWFd^pK8%m($Pr3S8K{ z40kiH#qG!)IMdxp@8kU=zJ)%+p}Pmi?gRN29)!d0Qof5v;CQp(`h?@6Y?~dhw;UHiSd-UUg%ocl%79nG(Dx~M?qdS zEW53*++FG@I@FFYOY&8XX2dYpyq55{9o=>9+dkgW+QZi^9uGQSUpXFXx_T#htzG1S z%-+0{My8Y({omQmyGr;Tuq?^T#O#p^~Y~jy?PxGnrR zKi9**+eJPd^T&LkGWTAI5R#;X3grkIDnn?b45e{WN|R(5&6i_nkqoC(`pEJ0oZ=s<9@YBxR_di|A@{qC}k3a+|5a*I0 zW|9t2WdjYD5aeJZ&6F_JODBp=5o(n#P~}XDN-TpKU1@4`i5Php4r}L7Lw%z|je2NT ziW;~v;!;CBm!k>lw-&)~AsOOneOM?KbRb*K7n?!ZCS-g%5=x0iQanx7Pt%Zn;%hAt zKbo)HBX*ArI#5|{O@3SkKP)Ac4@pT0I19Du!eyM1+6t$LCPpQWV zjapnZhZLs4RJm*CqfVxPUxwdDk$eNJyZ~ywjmF4@R3#VD9NA7y@=X*EF9s_wq0{kf zmrE%km(gaqoX(Le=>oZ$E|F^pXBl*xTuZxUCp{w9(-U$7Ju5fTZ{=osO>Uz% z!8ob;c@FT^{Ipl?m8mFvn7>ImekT=JccbkjTzf?$9<`q8y)p+CE{}Pn#-MS5(}+h# zp``(G;vE>ermr`36UI>6yO5d8!FH zceGaZ$jZe~u~jFz)?N*`YToMFf?d>wp0%~mis_|=d!-GoOa`kSm3ou1ey@ZCKj}JJ zyYy(?gI2y?yUg6F+Kzheb)P@ws8lyJrC>k(wAF$-$*MiF8Jaa*AFfs@8aIA^xj}YF zMrbFeVghd~_4EdJXP_oS@&dH!MQGEX;4WT*yLcJy;?LmZD|CXq3e9>Qn)L>qCU1gY zZ_!5iJH_N}>PFvr@*bTp@6&eqfG)?s>*Pba8Q-^|{SM5(M?R(pQSN(E{$c3etR|42 zNz?rq*Qk!5@5$N5#f+xgF8YUZzG{e!!FWh35A4go3&6h;*|tY6YT754DjP2c=Sn@* zJ#rPSWx>-l6SfN}-1N#~HLx%B$hT_?E33h!!XCNK88WQ0cp&;-$?dbI7b=9tV|F4H zuS&{Ih+vX(>pr<1=K2n>(Xu=}a%Zi#GAZBp?3eq%Qg6#%c|b_n-!t7e#CIKeJ%|kf zY8Oo|ElA2Ewcb=@DUTzv#K=_Ytdo9F>#HjDL4Z8d3(a}^G+Fqpr@_QI* zWSn})?HZha0je6+HGM_qc~yD&Ln}D`ZjZbG&swF5_|oIDuW1*-(}Li;%&9xN$0- zg!kFjN~*V3QG>ObR#|HdYcLA!xz29tNM5Zjg>lmRbSfBANNqG-Hyr}h5?U4^_3--w;sBp+X zn@S6+OXOck`A^a!rCDi#q1Y~}t}QSSr@F+lJSy97?xIn(h1E|{QFYRSzy$TxiAD zXp?n5v|<~bh3|9meF46=;d?v2FU9vY`2Lo4Azg1>ME6+RGx&CYns4{JwN22Rv_dTS z;rAuh084+$KMtAnc1X7eW^EK5NgqH)o8i=yZv~KF+)Qxg_g#!BRNfmBWmZWnt&)IK zpyRlz@zsvt)_QgkqC+!yaEc|iVM!kvTSaLaGqkZBCH-vqy#h4667qW$m0DNBntU6y zyq3!Ftg?23j@Lt;Z-5NnL<_8&snxp0(BUKp-!vT@sdeO6wOsSZHAYq~Dy4cOze>94eqnqeYU#Kb?$Sc`%Jjcvz_Pv0i`^UUH||9 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..b9b83293b2a6471e3a6f8955c061dec361d418fd GIT binary patch literal 1041 zcma)5+iuf95Ivi^aqOBTgtk!b1(zl+;D$F8goL6ZA;Lu}>O)_ujk9tL&TeFH5cw=5 z5E2i303U^zb*qX{Kg5!EXU1o)XZ-um&tCw#=-8+*bYeLRqm<|Ql5kc$`-wlPSgcsrX6 zMfQOYQ^C+0sEDUWJWGszX0*(J81|NJ)bG-O)_g9NoKMs&r_r`97O(*6E@)3^zEhs% zV#Kgf(x0i_J@^udg2CLz4ThkMy9K7t9UR=k9UHe9cFUYf2={Oo>r~VUPZLg~sPQbG zO@!1`$Dx{Kk$9Py@iqV1z{iGd2Je-WBI}!t73A4CkWs2~BL9uhV>R-yi#CHpmA*F} zXAC>-@trC1Huy;m(ilzNLR34VCvW)$>geIlO&5WT*Wo|wna9hT`w}eAd9KN3BJLl tq&NRd#;T|>yGXWq3OrBdV4DJ)hVD^-3hu+F+a(KCM^6hobXr8*gTL}L2-N@p literal 0 HcmV?d00001 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 zcma)5%Wl&^6g@X}>)16(2yLOf3n@)fz-@LY2&sySga{9*sEcl@Nis?d&P-%a5cw=5 z5E2VMfR94lajS|@FS4-b&hfeT+?Rj<`S}aLJ{m3xgvL-!!+tE%bRx_sG+M`L_({&J z5x$nQPOO#ej0d%r3x}|kM;}U~CnkJ1F_Bh;6*G#`+8)R5=CN~vx7q1=q$2Zz(5o-( z)%_?wi!c^y7#^7Pw3?0eH09P-FDEcZ*`K?$xW5yT zq;f!5&#BMm?jL^X%WQ(Fi(7rC_efcu7Ev)>rg-`9o3BfC+WYV!)E7`MrsQR%^c>&%?Gtz?qJE#*p z&i1{nIw5S=^Oy0wpfg$HI+O zHRF}}?Pq+#GI^-*y~%uL<0`6rTI(9tGENEWY+0=mHrR4l;W}>cw@t?E?PjKUz=+Mk xYkq^zqPPDOqcVzA$;39!h!;C@p^A~`9v~83K?UBlYK_rr7D$;R~Y8@rPM>#V> z@IubIkyf%h88#1WScI)2_(-ODng*|@X{Z%pB^`%JbC0=uMd$+Z4m&*#RhT{@^jiyi z^*)GCB8Y?<1xINds!?YVOZ%8$b@fm>Agp>=#)^w2T<~C{LU`0#gycNN&{lh)lCQE! zU&e1mKazxcPY*fiInr4?kk3NX!P-Ad_`nRD;5}DL#$B_tlKWUaRD(z-JpY$69qXZo9kiI7 zlYL`~jtSeX;$1wg=LFWl9&f}FKMtzZ%v!Ki;?G8z?G8)tV6h#j_`BcX`uFZPtRL{c z=C~@KZjL7`Qyn$dea15y7g6WiNSCmdV=7o@$;7H)gC&b2T*fBfgc5Pg%nb?llXgtk!1SBguM6mW}rK|x3;DiR`vN<}?zL7QZi7@Xb6b}0E- zNFXE*`~ZFwV%DuHLVd`=yEEfA-*12a`S}aL9vU_ZgvLNkf?gz&WGvEQkZK(z!6!L2 zLhxEn+mTkXJ?i`WHY`Fd4?d8o9;dsvX@E(TRvdqn{fsGa$mwyp8(%JfLM?D6OU=JxO@9)yoCUK=x*|Cp_P= zh!fc-tmgD*YIhI5^klZd#Ks1pnYX){O zI_A=fA|6aeQl(tYv7W>|`7$&^to*~n$7bj3`AR7nw+(M4kFtEAdXY|;0*5jk>b{3< z)CmsPdt~~K30w7iI-a+525VuLNwL81gDMrn43-M~*(kEzVd*_AwgaW+&Ud)YhmY2+ zAMn0rxH6w^h9@l21}dyK8P8~3MU`(OUBgO-DPff*ldFU^mMqS29XI&jI@^qPGt2mb zEv5#i`3){7z4c!*s-Z}mS+cb=;6*YAH4bbV+T;KQ+=tJ%%NF7rT+$Yw7O(HYUk7&! A#Q*>R literal 0 HcmV?d00001 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 zcma)5+iuf95IvK+b?llXgtk!b1(zlc;1;P5CpiQz$Or71xb`be2 zBoGo0d;lMXn02d)P(S3syEEf6w==W9|NQ&~U=K|jB|>wkreQx8X*vuJi=)-M(?2icp`o-n@? zk)(1!STE?$)b1X9>C1eAsf`A+$QW4ITZ}t!(FTq?2jku(QLvz zl|?d~j-|@DkV8F9`toID_^bW1f{)F(3EnHEWYRG!E1AXWf$GOP<>|kX*+>sO?4Ut# zxYYNi<%F=^DBi@gZcbrs?D9S=@zbDM%`62=CH`!b+3v9P0T$bVO3?ZaH+cAH)A|AL zYmTe(>E?LCGWn>n9x$HKxQsgAM!JHv98X2n*>TO#E$*-OfYj1aGp_(@=%!GeV~} zvse3*_$-1*sD5ym#-ZvrXR*|e2v$q?qyxgDhj}cxn8O7RHcEsiwON9k$C$9?cBtf= z@vtM~ccK$XLba{CB03UrX!KK~Wg0}-oV8GYmm9R`3#HX$sK*Jnwt7B+Dag*0_K^EK z5^*AXgyo$2Oz!U9m#)kvnAo^RXynaqYSL#84sPIVFNXS z!GpKgXH%+nSstT!0XXk0{i} y;55F$Wzy^ak2XH3asoUfbFjvNO+j}!Kmm8*^X;;Q_y(u6&ZotLyZ0CJB?&D6 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..492ab509103a7bf03731403caf3c680c75ac9cc5 GIT binary patch literal 1046 zcma)5O>fgc5Pg%nb?llXgtkz=TU?r?fLjh!C?S(2#pA$N@ znZ4Q{#U~L&LiK~gG!9k2Ig6!!Ot4zICmj$LJm#)kvnAo^MXynaqYSQNp4sPL&joXCHJg1z2d$@}wrug9`IpEd% ztYct)!&O}4f2(XW+Vw2s z3$_>zPU9O~PI~jdWVDAOJ__TO>_x}RH CO$)C8 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyCloneCmd$8.class new file mode 100644 index 0000000000000000000000000000000000000000..ba86c6c7db169c614c687f3dd4443d8eab666173 GIT binary patch literal 1053 zcma)5O>fgc5Pg%nb?llXgtkz=3n@)fz%8euAP|aD2@wiXQ4d_uCRrs0dpEM3iu^1j z5E2J|06z*b>qZr!KIGutnem%>^R>VK{QL!A9}OD?LSv{Vem@jRG8XB`Pqhvc|FfJL z!GA5M?NBS(js~>@8x~aT;hvSV>1gQrqL$-8^(o@D@8g3sjIkC-mwI zdv!mFQ{jg~4gKRZ4%D!pAtA+}+NXzRV_=*tkJx=FM(y(&r8iZsCrN+k~Awr<{R%xQjKe;^R2hr@=tR zZL@(#BI1@6MLe8DQl*^Jv7W?zc^H^hR{q(>$7b>b@0C(BU&#$EcT_*r2`|DMnU3_p z!w%{MhqHcXs*efV_57ur6?O(|VUJg1iC+m-DrP@eD)48c$aaUN53tw{l$yKW;Wi&W z+O&Sa`iQs)-p^9>ns_r5;j<}nBgj}@xM*B8SQ$; z_>wIq2dDWBE|cE;kBmAf(qTrnaRxjmbFjsMO+oiKKmqqrfgc5Pg%lb?h3F23o$Mr72BP!0oXLLPAjyh%~KK)C0GTvvLg1Ze%+Z`B_L* zNF4Y9{3yh%TUC_!(8KP|%)a@2^ZU=wUjTN|vQZ+mLN)b+SfuGhWFtS*I!^sBa%Keo zgPe6^tz>sRZ0y;v2+<`?^gu_PF__hEQ6~#(J9a*y{5IT!HNJv?d}+<&dya zP`|0x-TxZMoR8GTeL}m4i7UKaIyiWU$2K1EaEhD?==1OdYXtjLCIg-FWaty2B9d@A zmMY_7j`cJN+Vbq=z21&?Goq?vZIb zA#65_ck7~~b65vE%z2rYooY2hJWC}$HY#j)SnBhy#jn@iK7-qS{^AF`Z#k;Ux0|C0 z3-k^(*4Oe_9+pvOjlFOSw{wh#6_&~zbrpBma+iNC*6!t5-mt~wb=u$IT4#9hUkW-v mh5C7l)pOuw3J2>P*fjB!1C+3V2EQ&_h+l9an|xc$*t5UyWB5k^ literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)5%Wl&^6g`ugI(AKxhPF`NEh#vr;5IuHgoL6ZAp%q?>Vi!*wMUM@nTh-W@>xhA zBo=%CpTq)j$E_+tjTB4v+tUOCJcs+Dt;t#HOc+glRQ?EVKE=YS!aiw53AT!-uqXOk!;cfe&>pIQCx<+ZwSEd3x~cX5!j^mSbkvX9gB-;FgJ-4DP%$cW@gk4A#*^@0dy{u{uwq zVk~4%xg4k>4aBop_i*{|O?;?l&fq+kQltaDx`JBS+>=3~GFpL`A|I*H!9BR-ozmUc zWv2{VZnv`Erxl&h`q-hRSfF2owOV>JNUG6mqE5I)(pwmW0}b!~SJ>Y6gLUH@oX;h% zNng95pNR(9Et1~BAUn|X?tg>rZ9P~wzQg%a z;97Lr1)gDn)zK#1BRrw8j1Jvex`>qm)5I!CI#&~GBpH<95-!u*I@z>#rO5b5E w`wE+qUi&8*v(R96k!sA$^LCS-7XJ*gb&WwNk{_zvQ4q7%!gm$QMKZr$|jzl)_Gp*y)Kapc2 z_^;%6pI<)pyTg8C*M>#dn1&B!rbn6oc9cb05f-vRls2|GcyAhdTJ#QkJ&jb9JtG9o z+1+{{#7E)BLWTZ8mP9J-%wlOB5v;E6O9zBS5A#@XF^5YYY*YwOnzIDCh%sTSy-3M7 z`S4gKhvGPvgnCa0B0dsHWb`wmWhf$S&D?2Ymnm9o2&L6{sPmNBtzWEQ0E$#4)05W ztMcg-UeJ0Cv!@Q6MyXY7~UANYkOn`a!03oCe2o zY=q#s9PjhXr*3=D^>=MpgpFzVp3L+x3tkPgNGrlZ){jzun}c_zp{GS}vDc$WMcHFQ zSfAak^Fe$RK`c}+ILMMn^;)x78ixd{t-I0zVbQ}p7F^8Xf(IKV!o&J3LC#}L*m5UQ z^5tl7B$GGdD3*k3M~5Ol6iHkgqP zlHO<_RmO!J=ur~Nr;#CW>F+hXZw5~Ao+%}hw%J?BJeK!V80(bh|3YSc-Suz>b%MjS z?wg(y!e+fOmF&}YPGBu;^G3|^|3Q_CSqqj5{Mjh7-C^k+EVcus=G|{_n_Kr*t?%%@ z%LpM1<0k`1u?XrdV2A8zSr^TbY{Rg-A3-15` literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$6.class new file mode 100644 index 0000000000000000000000000000000000000000..b7aabe18791da0fbc33619488467cbe60dde8cc9 GIT binary patch literal 1052 zcma)5+iuf95Ivi^b?llX4Q-)Z3M~#err?%`N+<{kMMXlSP^qX7yi{9fm6$rak-Y)( zSx6ux9{2!03Nho5Yv1KYF zYGt1FMgt)=u{l(uEEX>l)5WE~ck!{AI)nF0N|CkA@(OBZbx+2r%4rGqh3>1ahX)84 z93p&R3eOlCL33)y&ucn^wXjWVF-JcMtJTbIkW`}2Mw#pmN$+8i9jJs4zrhW+9<5p5 z;e9D^RXW`Q&oIx{Q6oJhJfX3KI^9OPisb@R!3s$xR|TsiS(M=#uG8BZ*^G9h$oPUR zhJzD+g-c0q{gaIOD6>Y9Z1oIyk<7sc1vUk3Qh*Zf!Kd3L3!@uEsX?bj^Sl2CmNO1< literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/KeyPasswdCmd$7.class new file mode 100644 index 0000000000000000000000000000000000000000..fbe08b8617df9e3e13a6b19464bb2704db63c75d GIT binary patch literal 1059 zcma)5+iuf95Ivi^b?llX4Q-*^3odm+TerMaC`lw=?5kzkmD$u!ok33PZauhkg+AJWqKs@C&8l-2W&> zTJT?q(Gk6T3cE?@?wc?e)~Dh7qEKn!ze$ToNrr`D5asSJ1@BEmPmA6mucwiWif0Ug zH@jQ!13%+_%w^v{F0x4WJF{3?Ck#ecg~9^EqJw!X*qFl=2PSF^PrO-zT*m0I^?$78@f*cDtG{wZksHOZcs@ZbQ(0qhkpRE C#t}vU literal 0 HcmV?d00001 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 zcma)4%Wl&^6g@X_>)16U4Ya(W1(znF;B*116oiDLA|cXJRMZ8#NiuQ_&P-%Gg?ttg z6%q?RfR94lajS}wAZ20Cy=TsSp856r$4>y;sM{zI8lf5oy;!8_NMwT`(>hLrPjX_6 z;EkLd@XhCbd)W7PY*>W#S^Q9DdXxokM_Hs5VKEy-so&(}omuQz*;^d-JW^5ig7B_3 ze^}?EI2J)HR2Up)Nux4hTyg7O?1|h)W)9TqbPRrbDI?lcd~NB&qBZ zR%Q%f+I4ro^kgncYUAdAq`n~Cd4Pl4xNGAMp*F9A9`0d{U?0n*t5e<$eIS%X5{`#b zW!%l79w$BdDl&Up{`+M;F&YxQ*GkExZJwg!^_6#3FV-nbx+k-N?t9oojo@&@2WIeu zuu-ee-0|5=r?eKDEPIikJXI=2d$tPv*(fpYu(i*(7N1_@(Fxqf*5mK+zUHhl|J|HT zSfC~ng4>a-DB2_HN`=UNU0pI*o5|trOh(rvyDk niJs*pR!@oNB^<1CVl%{jPEf!D_iHu!I`W)J@W8?^fg literal 0 HcmV?d00001 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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 Li}Ir?0}1~>nhK?9 literal 0 HcmV?d00001 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 zcma)5OK;Oa5dJnbb?urYgtk!Lr7lg(!wokSgoL6ZA%%xj)B^|5)>%0QXE(Cfi2f`j z5E2J|0RM&)oDj2aR4J(sIe2$w{LOsx+F$>E`~=WN$3~4|CzeGRr996kT#rJnRGNn$ z#jz2>L6YnKc<6U+SPWZL&{$|S(c!C!PLyO=)}ti%_bBe53OyINM-Gn@ndm1B@7fD_ z3_kErJWRQa!vmcqGVU#6=^QdxeKiyg7*;);!?KGdocCa(&hV(cNRYD_6Sgr(qx4|$dteQLB!V;FW9Dbnv!V^)1Gl{_A+BByq?&XUhSx-;5C>g$AO zxfn96SJYC3*p@*))4VQjIB zpwlh!j4;2^Bt0NJp>Y8%x{Y)ZYbBE9;VjCQ4Dd`cFRgA;s( tOQhH4$^KAse@n8B6W}SCgDnbd3c5`JYS@NPw@VgAHz=hYIxQO5o&RHi0+|2+ literal 0 HcmV?d00001 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 zcma)5+iuf95IvikI(AKxhPF`dZBv?ri`%@RAS4tO3CU2TR(;?Bv`toysk0l|YeYT^ z353K0AHXN^fS7foN=f|?OWvIspShhG|M~apH-H1QY?K&wLz(&gn5XHO>!Gieic|kw zOpM?MQL1~RL8D{CV%REzhC-{c_K(IoQj%d=52LiPPjQ1H^jzRBIlPEuq+c?8Y%b&x zeCA)cA9ES{$2y5**j>cZI%TkWY9Jgita!MFWfx1h?!iWd;dyhBAXhOaY&D3ac$baN zL~_EDbd@M~Y>Q%h~!VQ3f4Yi7Ea4i4_&fsOkNJ4H@&L-z0xYYg_M^YmmgCVt91 z3A2%qnu<79S<)A;Bg30FUAJdu#H7BFQY1aInu3_C9?E{KQkwW%p@(YVVGm6Phe~{J zT1{x@nyo^5r(ImYy4a^3SfXEm)oNxDNGj25qfB;(qz|yj4piEYf52@&dAe!+g!e7S zRq1qdJR{6s)JSg=p3qoDoo*xDz*>%}V4WnBtAY)ZEXr^bx9Hm@*^G8O&-jWgrUs|| v9WEukJC}?BWybPk8yCRKWDd3{uxV(U0+g_W2Hh@M$cdghcImWeVvqgg-1L8qv=} z0wMLGAHYW;X5FY#Qa|LuyEEf6bLO^x|DB!z*g@MyiD7dfGe3-ZnvS_1`dXz){CG6q19OX@5VY(l3`H~qqMnAaf2fCOyDj#yoh9^Uow1Y&E*k% z>^*UcV~RHDyDh3pPVpJ9<5sCFLxhTD1kWX<{m?`Mvy z(dp)Rh6Pqeo%9aj35~00&~2n^Sk5t3tdL~5s#qn-B8Ka@LI2jsX0)3*<14b59GuQC uxI}t;hKxC=FgGV#JqKQpIasH_rl1EDpo9%H>2}G&=mw>t0z#cj_Dh%6^%>6LoSvKZ+=xe2t%s&-p zM(~3;)BVw)wQs{>*eruaLaVX%-;H&wB*T&(##w8Z;s#~tnZP}Acpl4GzhL;-p35Wn z%)f9y;WF}%bQ;U3H;<)r%wYA^KsaDn_OOU07Yn%J!A6bYS$m!!moX-6J&2`vn~zRJ z`ktR8f}t6xkSE7Hjg3ArTBb1!JM$FT+NZ`Wx42aDY^3sx+S$BJJ_XsE(wImP zs>;(S9|@@`kt3C-p?DRW-g%Ridt$~+>T4-Q+BfSdsC)GT873;DslO3=s0JQ(&}MKb z%|laeN_*Gtl(u+M$vLctUD|^MdIqe~Fv~zvg+3cqvO6SwfJJto)_wRBZuimS4eJ-Y z?**<-r(56|7MX_z>0QDT8duSz+ej-|Eig5#kz}}PSSQIMhHJP^|2D{Gv>OHEOR|_8 xobC^}M0#t6j5SeZD+Ss5Iq-ta!6pSZ1>L6r6>OnJw@VgAHz=iTIxU*oga4ht0v`YX literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd$5.class new file mode 100644 index 0000000000000000000000000000000000000000..9048e24081f27566321b94e2231cea8ca95e4a84 GIT binary patch literal 1029 zcma)5+iuf95Ivi^b?llXgr-nhE^S?!go|6GKA<2Z6cq_66r`d)@KCgMR*Avcwd_qr zKMM(j!~-9|MZ-nQz_9FL5lb!>aKnR*3d4)$JVCBwOxS8KlHzDQ zIuq$feijRcdQXKsKH+I(^oh|jjbYfGr%3;R8nf(kspQ2-jWcRz{W|#+WPeI~PJK;y znu$I`qo6jEw|n?46#3LL8|w`1qIpeC_sYS+Jv^{+pJBVmX=cbC9%6+m_?)EbJnDyR?3N=pe9xiWf-fBhW}3Jq3V0s zMU%myY(JQ)Q(C`ftFY6Pf-Yel?9nY#+x{Y)TD>n|%Vz`Yv^ly!9M!TCc zz9x&w!D;`1OQah!WNaN}wvm&qUIMSk9BfixQ_vO#C}A5u-7Z-e-Jq0q=(K2fkNyK> C@C5V# literal 0 HcmV?d00001 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 zcma)4%Wl&^6g`u;b?h1v0xj>-5|<|7;dawa5E6=tgk%a*Q5Wnc&d4!1Gm$;6=w~5O zA+g{C_$b63H>%Xci!MAf_xjv(ALsu4_xlfkee`V97$T%=c1?Y-pBE(7c+5GD=lW8h#LZqQ)L}(PeO`%ulA>jJBxT zs~qaQlMC1Yd!%!nmYTI%Mr?Z3=(EuvzeBGh`fJhc^`D=^?Z0^W3*L_s)uhuc(F`kW z6D_j0N-ht#&?bwba2t0@jE8l4)roZjcgb^){#s<+FSEQQkIC!wf5NrS@o*sp>!88> kGR4LP@G^yiZ6Y>JJSBn}I`HXs$;0Rd6|zI8MM^#U5BiMmw*UYD literal 0 HcmV?d00001 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 zcma)4O>fgc5Pg%lb?h1v0xjRr(zH#|g4d3!p1;N!Z;OqJ{D#e8m-ej{3_4v zBaD*V^hW*Gz6*!2Rt6nNqsJzEKQ@V0ghew<^42c%MrG(3;sXwNnW)6PB1G+LMMPi3 zHxZ^n4Z>rSC2DXm@9CTnoSyDW4}_%v3t03~#f<P_~BOQzML}ZDzr%uN<&AiuXpta9UFSUfy>TIMZIghG2pZp4BkEb*iSuXp8<&xTM zrT*dfSQZ-OE*=oNWz)Z+)n$N(M|k4mF=4$dXhyOCPq9j;8oAoa5n43fe}Ec8U}$ h7r@ID9@d!HHt~!JDp*I0Z=XHHH@J`uJ{?wR^FNqE?GgY0 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/ListCmd.class new file mode 100644 index 0000000000000000000000000000000000000000..5cb87baf2d19a2b9fd29930487093564e7d8944a GIT binary patch literal 8719 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 Hqci>=13b`p literal 0 HcmV?d00001 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 zcmb`G&u-H|5XQeroVYQr8(LZ@f724$5}+;uB&wobDv&CLfK=22oVL!&-PT!0wu9iY zIG{=#cmN&>G3$iT5KHC2Wp`(G<~KW^$3K34`wrkS)@_sso1q@~K_t?&FS27li{mKu zPvvKG@Lvn1o1OTrNK*NxpQ%{eum~$fIibwre&!Fu2-WOZrOhqEYP%@wWkAcj! zm6n}B??@)^#8D&(^X)hg(V<9`u}4nJv`g5!@b!~&a_g2By_`DL6+gTy(;!i~@`Mln zNt>cZjX2kgILn0Xe-fvNLa6jbB6|Emc~51Ruvh>yx;igE1u}0ewQ+~gDw>jsnHnb$ zW<(MWdQxZ1Ifw^IAYUo-X=-L*H;s@4cVBCn?3u}yT;d*~QB>mmAQEOLh8+zao-+R| zRIi%};!~MDHfDIOvDIPQ;@xdM_zI`>@X;CEFKm}E$E(9T=qW1n1a-C>Im^Xm%(KN= zSilt%!>2_)4cSX0_IoB*_|E&yUbfC~^>6w%)1T+`R{j!iO!vlgZ$xJnu5%rWE8M_M xu6&F6#=4z%^NcO?8v0YD%9o(syui}%a$JA~Wf-w{B~M(%UEUq`5Smy+=@*}K6@mZ& literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$ShutdownHook.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/Main$ShutdownHook.class new file mode 100644 index 0000000000000000000000000000000000000000..c80502410db4d54fcddf9d36803631d36b1ca603 GIT binary patch literal 756 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 N#`E$M_|dWZ=^u)jj-LPk literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..026e85743e8e37f7cc14107c2118273609493258 GIT binary patch literal 1054 zcma)5O>fgc5Ph4Px^~?p4Q-)(7hG^m!3{SQgoL6ZA%#+@s0S`+>#Q7uy&KsZL{9LR zkU&Tr_yPPV#H?FYga#=G@6OD=nR)Z!U%!9+1kgd-MvWm%q#n8{gfdN z=6CDA;~#jGahXJin%E}Yc`WTC2CJtA!U4mwhYMJAv49m1HtGzIgL#6S$C$8emu4l5sAiCO(I1T*Sh>F|7W*jStP-8N3%#ilS%MS5P|}dos>cNo(*@=%E^TxQBqj zA<74)^nzhKXwU5VX;mk%E_P`#7U(x&&8FE7l4|tXSR%Va(i>Q02kPPdZ*aq%2b3%u ygA;y*OG&T&o9q*j`&=d4I02p|bFf8$O+mLQKn-``)9sRl(G8-sO{YZ@y!!`LuMhPA literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/PrintCertCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..120329523e8202d07f33079f3dad63b30f8a58b0 GIT binary patch literal 990 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 Catx~g literal 0 HcmV?d00001 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 zcma)5+iuf95IvK+b?llXgtk!bg_I^K;Fdn2AS4tO2`Ln$pgtfZv~iZi;Os{B2GP$# z0wM9h2k=pdS+}Yv^+O)KJ2O6WJ2U(H&(B`~cF}TCBD6+o7DkE4vZ*lR&}f}x;U{@y zg|IJ^4_%p>?qt~5bKwv+ir^z@^wfl}rY6>kuw=$@*4W|Ly&`l$@D4jYiB)W#5(dq= zy?P(TXAvesjl#Z3V>Rl`V`&`{oUR^94}|3ai&*lpfC~X!R0xlo^8`7Mv0izIQOqiy! zNJq1YREF#5>scDf=dq=)_Rj`Bw9_U8FO-sL*KVw2607?vN_57V ztMgHO5@9UVFzlKnQp46fmc{|WY3qUXKv)j2h$SBjxD>!eiSV>O56MN0r7d?NCErZP zJ(;{0y;u^e9o-l4fk+~&pBWw7Aj0;%h1T}CLCZCvv^p8oU zlF9*LHK#tCyTAXXFS7}zE^ZK-d9$0D^tpqFTe#!mHeoBzDQDmT?qY@D9Zh)gKI??@ zDvD${9ZO|6m9Cy9efcu79jyGbgpcjO3BfC+WYV@vE4h#5ebtY3%JY9M%}5UdY@yEN zoa{SWbVAsy=kMZKJ*Ti1c6cKe_;FCBV%LJD0)H-wZ1-3?gu`~A)ZG3KzxnXdy7L3U z*9=$Y)6ejPMUtqn-ef$ZaT!&v{l!c|=3f9q_s+Vw2r3%1xC yyyiFf9Q5XY!RQ!8inCyAr@-@I9yXZR7IcpZ3b>CN-#%N2Z*WSRd^$Y42Y&(l`wMCS literal 0 HcmV?d00001 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 zcma)5O>fgc5Ph4vb?llXgtkz=3ocDkz%5b_C|tfgc5Pg%nb?llXgtkz=3ocDkz%7SLCpn4*URq6k^t`Dnfn8!Mii#H(zgNfB*UU3&1YwHVTCLKuv;PB$8w-(qWKl9VNlB zoEjnM$mm^5#%XKR_xEgAgpEA-K&E<}2Cv3xs1;!;9fpa&!?D|W=$zn9c6t)3Fnvns z*5>wVzZV}w5D7I1I%yoLL318U{fJ<-bYD6kEPGhQl8Xgg@L;1vcwCz&$a#zjTW*I+ z9!y4E86S#nBnj2F?uqC~#G%nojg}#Zusv_1{vH#w>zzk$}Mtj8k zjzyfvK4CSdKU2HA|EVXl2_`nK5gK{3o0;^PgM%BmW#cAcE6*us;2v&cg4c~MQl>-Q_ppT; z!QoP0o0en3W-WgcPrEsRHL=6{u)t4)DiyO7EEV{(QDnQr(i>Q82TG0Y?{FLUAFNwH z;C;<-Wj@^uPgtansIcB(Jfm?DRlbdM2`d?QhMH@KYi`hUsjGm7*jOSX0bJWJ+ag9Dp}?r?wt?!xEWWef2QE@_ibizj#QF9x{^ AuK)l5 literal 0 HcmV?d00001 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 zcma)5OK;Oa5dNlh>)16(2yLOf3n@)fz%7>w1tFoRNJ!x!0zGg+n`B8$o!!XZAbR5j zzXu6~#DO2ck3!74RYj-|Ie2$w{LOsx+TVYE{sORrx{EnNeV`^`FBWM!7G@Y4t>ZL2 zkcUAv(pSPHO!MIZAx6Tn50aKAQ7kkc3&w$zT4 zd^Q<%W%5dNV@asAbx*|mB8jYiY;TskdDYv$AI)N$3&XjhK z`#Tm%D*J?$oce6;{@%x)%qEz+xI}2=&2DPaCk`I2;F^o8gv~ssoPh_pj%7~j?Lqqb zWt&hC$zU>)%5WYXJxO})16(2yLPK7gCy}fLl&QK}aYn5>kLlK|OFmn`B8$o!!XZ0DS~b z@G3|kBn~_P4~3X@tBOz`a`5iV_?ww;e)jjDpT7X?pzdOhP#>sC*o#G)j)fV9M(a2Y z59N^+!j6pJwq#;jqkeVQg+o}+gAb(9V-vm{n@B6dq8UbMb(>?i^UyiLo9y%`QjvK~ z=+`fk+~&pBNq6Ai~zHg;saDK}%Jkv^pB;Ny@FQoFy;?*_qNF zaDT@lNoAj~l2f1M?(co<$!vnDiz|di-t49(ed^%h8g96_PT0(I${Bcon^X)UYhs&sVxFG|mCJT9SeoO{MS<-eORwRu9Vj-ozQb?a zy|?E4K=3ugmH6~CJYj)8q0D-N@r=fKRQR^i1uSQnB34+kxr$h2$>9taaf$z}vCV3i zvy4yJVmWw?Z}2(k)&G*wXB6m5mTdJHc$&<^ItR7|-QoaqxQ!~`K3j-yFr^JX9iHBu EzY8V|o&W#< literal 0 HcmV?d00001 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 zcma)5&2G~`5dJoG>)16(2yLPK7hIa8fLm@+5E6=tgcJ%=P!C+t#$FPGvm4o)ioOOX zcnl;E5(gfDheFJ{QAMZ^Ie2$w{LOsxx4-}V`~_eiO&cYK=1@+9FyUD?;d&HkrIIZ8 zAWn=B^hNTnD^lGZM}FIe#jsTb9}2A|I(RwJv62icdK72=9>wkzp$md{$mww`WBr6- z&{){3_nsf~AmMTt^mQ7`VP_Fb^N7Lfsz^9sSoN@s6&Fjm;K4?Pq1{*{$a#zjTkXYC z98Sjrk-p}GL@?BQD&)x#Ph+FcjFxE-!|tMm`fX~^s?Vj8Cu23usI~R;3CuzE=d?%E z-w97M5izV6)Ms*c4?cz>pI~O=8bhmSc5{ATm9SdP><39D`fQZR?vV5b7TJMHYxg_c z*8K;Y)(?1Jb6k~9H^(z9vrnjz-Xc7qaS?U8jdTfXIi`Yjk_=Y`8zfo8a2Z$V-zM3N zb~R^wN*0rY)A|ONNU#4##y+FWzT{*Zr@%8Z2U`@_6m*9IlyDb5-7Z-e-Jq1V>9lBw G_x=JB3J-Gt literal 0 HcmV?d00001 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 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$1.class new file mode 100644 index 0000000000000000000000000000000000000000..0ec7554fdb8e480fbd1cd015aeb86f15276f56e8 GIT binary patch literal 1065 zcmb7DO>fgc5Ph4Px^_(x(hn%#g%pxd>V_K%LPAlIkOHk#)B_jfI;+Is>_)aj>CZv} zA#p(B1mZ^_-nvz#P$RVm@6OD=nR)Z!-+#V+2hc{-MoD0OpeBA82WdJEvZ0@89jE?# zd1wTGH`9sS;oCvKJL=clHY|bFB9DR0^f>dk$62J6z-%^*()uRD_lnTP@jLW;5~(PA zDj*x@aqPVdJ_LRor~xS_ks5T)VrlLPSY6$h4g}^sT)?c08C>*Wqb%^aah4#bF(z!K z7b*E_GTN8P>tH{Y0=1qFgLp4UBBLK0Ez>4}jdRpmZ?jGF^+0KLIMS1pJ+7VRFa>E( zX^+_Dage04FR)ZlqM`3@eGFwj%GAa+fmYEFr$&C_;NS*s*|_;1r{c+bxQ#^t@2!#t z`MT+Z?B;@GFd0dekU_bJC!c)B@W5c307>Mi1l#wFBv8)*THIi`#yN+wqs%akl;xQr`&TcOQpSM!X| zXfYg|)@Qg(di~#IKS}Oao^1IDc#_P)Dg&E>?l3?JcTwl<(js_+l-77!9OAvd`-&DG literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/keytool/StorePasswdCmd$2.class new file mode 100644 index 0000000000000000000000000000000000000000..d3af827e06a52d696408d36cbd608bda203d9c89 GIT binary patch literal 1060 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..8162e115bc4e0b06e931969040185aa9055ea0ea GIT binary patch literal 1169 zcma)5YflqF6g|@d+b&zE2!e=@R>hV_R~|m81gZ5?fdr(+#Domnu?#M|O?Q{*zd}ub zXyOm>M;Y(zE&@^#zs&BPx%Zqi_n!In`} zbAcgKaUIX+j$h|?AW}$2yrsXqrI5FDmbbJQ^D^|WS2xx+*DKYnh>Bq}VhMa{o9n`J zgSI7>1E*mNVoQ}RTRPHTWJnf@b%w5r+Ymak7|?KqVI)-8q1M1v3^Jsf!jHfhN`;H} zDPB&V2E#Q2I(kWUO*&#V*xMHEH+vYpVB#S|4{x=E(_onHlzO2$R=J=cW);L7 z!&oO7XA>V8c#J3H72iE++F+rBat+TI@~4Jbk)B7MKJi@jlO*lcKb8Lk#eq zNEAT+D~2Wxap&Oe59HrvbH})MgbCW2&gKp=bBOtaFi#^XPtOS~)6ODcE}db@<2l_O KRIxy70_8t6k{G=J literal 0 HcmV?d00001 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 zcmb7D-%k@k5dOBD96iobDj-yZq6OPRxfY*Hjfo+cG$~+GL!vLbT$grDyVu-ZiT+t8 z7>p+R=7WEfarWAv4M&8B+nt&FX6Bn8`|J1D?*OWJY$CznwAH|IyF3W`JnT53=XC=| z@lc+M9Uiz+ItN4Ld2_d3&sR+t3~O;tZ4r9?&^hdf(o+nRVMhk}3T0@-p|4C)BiE-= z$?zFNr*K2x#(RFsoi0~xry2TEwQJY06pt8;U9TmQV3@XX3zHTmaNCB76vLCkb%I>R z=&&;lsl>sccP#u@{J1L^G7Zn=-6QTxt&fa`ZWcrJX65Fq)U4?|SDyOV^9BJmJ9C-F z7^FI;?NG1#+z&*HVLqlxU4gat!4=U=0~7ZcN^#R1oBf4D68EucVuhg`=XB)?*vMgy zVM-|1Ytay=@PJ|E-#y&k8~tkbg)2{_Xj#Z(!^Ap6@xQtDMG)||2y8q;fgwrkhugxi z5!Z#wJ++WUNw3Eu(d2%6&=V@8UNyae?}`^v4|;ZtuwG0CyRMY*clC1C z#UlM%BAeE-QO0+K(HwH6GgxO>{)zNAWM602zTn|Gia)fOxGewWkco1-#HB?M1y*qq kaakC~x!{t+Cgs)jZc+RM%GjpcA`7D%#Mq(Jp#7`-0jYFK3;+NC literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII$2.class new file mode 100644 index 0000000000000000000000000000000000000000..c289b9ded84c68492889f9951cec901b0b28197b GIT binary patch literal 1019 zcmb7DO>fgc5Ph4Nx^WFj11;asLQ0cBag%EhQWX^`QV5lTa^SXgR?Z@4H?lVo{469Y zBo6!leiUNXsVYj`Ll55FnSF0&_RaYBpP#<~w9s%-U5Q96V6=|YKyf1% zqRrD#%3!cGj)vV{uhw?qFzn`$B4PB*1RrKbYQ?Z-CNixZQigsW`pOg?qP~$znzsz2 z`Zc-z&wRmyn5!rlnnbFov+8M#7@V#iixL<%eB8jAhaztJaB+)azrIRY_1GZgzEol` zpPq{3BR`D=L$$9%9*=k;t$prvtPl*X>pi8`CLuOzTxs=ns^=*QSzRsT5~M}S&3KZE zF~e5QD{Rf)@t06!9ZFq1U})y`=29mw2qiqi6Bmye4)RD>Hq^&c>@ch+Vj-5ru}@_3 zB$`i!GE~!0&y!HRlUBmbf5+{$Z6|}@Q%WRVJEVe?EFY^d)+u%Oy)Y9!_OXvTp~6IP zBTlRW3Bz8!k*oOmHCx3}f1G;r+_nR-z;5AW<&iWGGlcgb^)ZXL4jXIYNOWAm1p-{CoD sc=&&cmk8oBxJq z6AVTZeKhe$8SiWxTSJNAWoPc)bLO6V=FYF*U%vx*fDIcKL$Rqko*(ciYH@w&=`ai; zPjM}e#U_t@DZRaJuw5;c%h~5#?FZtS41|pYgEx%b6gq5a&w#eu&CZcfy2OK^!Tom( zWBO1=*$tvrhH)>fyhYTbxyY+)E}*0}PKYCt<)i>cml@mIohcEFwC!>*Dqq+UqTXdxM5?SVQm=cLX%zG!~(;pRIQFS z{ht$NPF`|x%fQCMjwakV?l8;^PRV*L40pMT`->c8v0`JHA^%@3yCRBsQ$#NAA;*xU z?z)CBtPFGMygmmR6wI|wGq?u>6G(nm!%o|eXP05>AHAkc!k3j2?UH#5f^OL9&pP!> zQ$nwXrBY^iXlGHz#yEYG6cs79Xmtv!pXqZ3_fw3SG`aXsg?KwiQS1`OWT%j(mEjtu z2{A+a1Vx$nypL4PoL4NI!a2q4PfVB{9X@-4Kig|(zn0h?iunw`qk%S wwJ)jOE2>e&5^5-*j)!<1tI2fh^wgM6R+Ea< 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 D-9ZaD literal 0 HcmV?d00001 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 zcmb7DO>fgc5Ph4PI(AJG0xc9MrNxEB1>90DCe^K{uM$mW#yfVdp-G!uP> z`I4zj$L`L%NEAEDY+Pdq%C4|Lx{3vGsm zQJCb3JQ6PrK`Fypt6jQ|li8199c++hX6OfDjfN2pSrvM0R4ML|^%@q%fm*Qs1#WQn z-lFvt-lqarr?*?+8DWmlAU_~Hp>Y9CI*oM^mkLY`^JJM?H7t;2QH9I6Lf;lCX1uFK z#itZ8JvhNfgc5Ph4NI(7{SftJtGmbz^cKHQ4lf{;+vN=RuzD(ZpT##uRAIlGa)LBN#@ z{2U|@hyy=>ABC88t4JjlJ$QF#{N~NfoB93c=Pv-;XuGH|EGKFb#VOD8F*n1=Xr1Pf z&iaGsfJ+tbxNsO&%Rq@RdTgSXVyZ9BbO)UW-{5y1KKhQ} zOM$A>=@)25ksr|@d!^tCa1~9mC<@nby}$%mpjVYx7jc6;H|eiK)~zDTbMn}{Ugs-( u=Lhcmo8l7{^tni}cnX}R@UTk6wu$>hP{A5Px_$C6x;`0*nE literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..1edb963da345e17251eb9b6dbc38d424b4b33dd5 GIT binary patch literal 721 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 Jy;b4+e*t=yCHepW literal 0 HcmV?d00001 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 zcmb7E+fLg+5IvI^a={_tmWCEudV!J)xVN`dl^_x?H3bzK30@+{Sp_5GjqFX;&uS%9 zq#{*)?nhOfwJFe&2P#Xmv#XgoXU^>U=dW+y0X)a63{r%(elWCL--)7uqmC>kr5{-` z?Dni(5k_95M4(zSP~wx?b_N+3gq2&Qa4cc`wHJ8m4PklJmSNwLCw;56^L}%~V$-yb zosW*?No&jVMf0%QCKxT*6M3YOGcks7LecgD@osq172&?q^#x(tmagNsozT~Z^7)UnIEHkkU4P%njK;CZ?=T7P((rz=#Ws7-DBaZj*^{7ggP^uxg@;A|cHa)2-I^C20`mMwMynjCB*!n8~wXIl@FwL~iH}lqUmyk8VH{@_TX^ zx*{3*{HO=8uCwrvYp3}Ufh}JJjI+(~ZXX7JK(n}&wOwl<}FjQW0<8R z_!6eT)E{w)F@|}JC!A$q87mjXZEi%ubb1WRx&roB3?F`lxj&2zE5Mz{+ ToJ))fp7Gy>Uj|;pyk7nW)QAtc literal 0 HcmV?d00001 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 zcmb7F`)^Za7=BKBx^CqlXXa-N<)Ikf(KnGOuo05*iNbhHiIr8*U$=EM?}j0K8bK zpa}s9tNL|A8!XRcH0y+#DQLo`nN?xz>kIi)}d9nwMoLR za6L2iCxQ{*SxdL+_QvWB-AoRZ?PA#`pPD+;C3FJ4=dxPS)=i`2#})}|9oDIt9;!(K z#Ia4mcI+VO^!lhaE8)O{!Kg=1z zF1ZCQPb%m|A4x7~M&6!uGCSRfrzJp$pHXlW{S;>>RqF_G3kOp|GN@n($0RhB%9)Z= zEQAwIr~l=h<3fE{LWuY4k%$5`BsAAZS?&*0-#aZbKtAV`p;w<~prkZE-H)*a9-NAH z!|L7-U=%Nk9NsJPXT=<(Fc)44Y*utM%zlJ6YD#5+bB*3u(j9 ztdwYh8cT|IcRpBSVNyC>5nD))mpxT{>;fDidVn)CjX5_^gDsBZ3ht7enIZ5+=AnGY zg$EB+m4Gx>ajm!t2x2vNY=l_LQCxl;vLg%L!ManC@3Ed=^E_H^P`1?0$Pzojnw>U0 zOs&n-6;>W`ES}}s!;@q*vS6=*trhI7AQlYs|9z5W@e*=!W2+3kUCqBTZE~ycw6)mOFiO*bxi)Do6(t7qNj$IVUz_Um_6lb;@&Cb>1h1e8R+~dw+%G z3-_5h6q1EZ&Rs-nB<6M36$~tSsfFhuxq220$?|vw&k{oG@{6hG zX2NA+yMhqD!6sZ~v%AJVe%-+vabKw6?Qmi(YN5la7!S3!VT#O&T4KMcV*8Dr_;@nx z6_M;C_l#|K+f^R%rdxRl&Rh8Uk$WO#|QXa^E3rbN>}1(Oe; literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)&%}xR_6opR}7{iYsiukwCoeai_y2P+SO)$g_$i9pX)C^P7&ggTwB5~mZ_)x~% zaiRuU*rc7_Gv}Uu?fb{;8-Oz$I9Oq5jKkRT18&TWM-wknDlnd&O5f|K=}ZPZk}AB` zT4@IvhVmnS;$FbRv6qMp6(h9d!BA*J&in2a1G{A?byR2~9!5hR#3D;4+QArdmok)5 zo54Nq{e<-+EyHo^mok`W^~^_sXf=imnT~o8d8}f+h&&1e(vzXMi>D)@2iC<@+#$3XbS=s3!-e(rCr$W#?1!GLqq`; zMNyH5prGQ|VVn_lm{ep&{EZoZ@!#;T5Wl;dGzl%kFS~c|Irlui@0@e@@BjYz6To8J zR!|`@yVuSpQkI^{q;;<^;W>_#Nx1!HDzVwH4OjOZS3yXi=8%3wPguI$o7moc$Vhnt z;Z>$>dTRtKWARRbP>a)JL{W(`Dyk3`7~f{vMn|^4+i-X5-IgIx+vcQnt5bJP`JLYk zd3|O^U~b#9BWV(-?lrufM#jmyDH@y?Yb(aJ%X3Y;w<$hyOTh$zDNkyy&ze?`;YKh~ zAnFVRiR-TLD17_!|oAi98GmZD0!bv(!>lEGcijb z;yFR+0+V8+L@zO|SMfY%Qjb6udz2i`n`j6)z&jLnZJvXXw_@ z`vu}pkKJ?()lsbzJGaK}DlXN};0;y`Kee1grO%0^=|f@K2ZlJ&Mz@8&C^K8iT%6s!=K>?h8!*JlqNG+d)+ zr=gQ&1xW#|AS+2J5J#~Rt0d{G1*YcFcp~*Ud0&pTQfZw;Kj4;1frX}cr-Jnb|9+zc zX$Emb(Tp+ju~8PzCV_^hV?N?Ad2PlPd9YPrdaPw+kpxbtw;bD4wE1O4ZhK@4%FPZH z+htEyr7S07MDPl0yThqB2GVS0qo*9mT`G3tRe>?GzgzTdhMiUx?(ROQv@IyOgz&B~DDpje~u?;gYRk zSvlcS+&wHF2`R;FBEc|9tQUji@sMe_bfA?)Syt{;iMj@-M#^ZmEP-XCFdCfAdZv|V z*VAQiVfRW9*!u; z3XJuw6`ZO#iUA%zY#iHVaBNQ~%ne_GTWsp%g%JF`7RRz!7NkmgKdItvoMNAvc8@V2 z`&7DXt;R8&R`D+0<5V&^1>{x1@-MUAn%{4###y|t;2cRW23L@(_y8ZusxSr^U-=Bo zj{zCTM>3F)pE8sgkB3iGe2R<2hr{RDLS`%=YaTp>_> zdZxoqg*@$z;FKcP^-$J^B0D{AE$8!d-CaS zMJ>}$F)(+xzea-b9FBJLy3us0aAF&`rHC252c* z-QicTI>&oAg&tCHlTrf*5uxo~Mi$WWTb`DC0j6fxf*~9xrX3PeGGq-QovdoO4;I#6 zIF?ifv0n?-%*o-z4YX*=eY_)(3=g7F3*W~Xsgxj!AuW=_`5TxbR}EU^J}y*9Q4XIa zLsIjS!1c%fkSkJBsZf4>Vt_*Xt7n8}& zJ|eQ8|4%w%L}3AQUdDXa;1I{6g?98)-=>yBiH*bD&%)*W$dI3IT;$gk&c$muj@xAJ zC!EC3IOVf+)-UUO!(83NS3Xz3JzU2Pa#e#Le1 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/GiopIo.class new file mode 100644 index 0000000000000000000000000000000000000000..82784b8aad159cedb83144ba9b0b218f83f17f3b GIT binary patch literal 2777 zcmb7GOLG)e6#i}qGo3KwTnKUyUd%B07o*=$J ze7kYuLU&r_$`x8=sM0FSomKEBT)XifSbleIcczC7WwGg=bG~!WJ?A@*o`?Vb`a6Jr ze33+(!1khBGYXDbtyavSWCWh)R1Lpu7mPEuR~hw^Xct(&U@n@5W4cA-{M>?72m}(x zY}XD>2&~Fv^8)Qd-n`X`Rp>}zH4*~r#%$L*S1Zq1{snW+u>|xnuV6ZP)3>D@D%*pS zT@~0d_CI0d1U3|{V9K`xYcenct8BT9qLdkHgf=9z$i)?DzdNsdb$wViZ z@sL-p*pB7rvMYUbU;{QLp)-ueg@Yu^GTjuqu!$60m>xe(Ja$+`Bx&hR;aO}UZPv}2 z=`iC>@yHdax$I05&k1xlZcrHv)@*0q@-;k97QI@~cT3VRJEyMCbYd&EOWM8ursi!`^nK^+9QUsHq~OZeSH9 zQ%C5eVefcukq2_}z_F%i#)xQO8+SEZ&xS`%$s+?z6EN)6*uNTvcyr^>d|k^+PRkP` zO*xD>p2-|uYs&eCRMP%+X@6E=VF0~)TeAgRVD({k6cELRsKARp7 zyD8p#eXi;I-mOe@P1sJ^UJW0|ZjaP-`6+MDrXzdRX9At7eMY$G1=grdWC9zgqvKibgAr-Z>nYxqnl1HPZ3)Pc2FM-2~)f9Q-(h1v5n z)-Pf6x7hLzZ%2$wZIR=@WUP@X;7P_BgJe>si8hlzx5%d?^mkJPy}6yAo-yk+WXfUzY^l2ni(dsxWzM z;_rSIX)n^)haT+5DIDOUJ&5Z#gasVNT^zxeIEwH1P52SV@CT0LAx_{goW$Qa#mWwd z4h)Lz-0~R=ixU{B7dowqiBkOzmK8Sr(VV~Dg2MR63#G zl!7X2La$0e)i9ygq@W6x&~HgWRVSg}mVzopLVs5ZiuZ*6{{4vLo;qK5BwrCtACjhJ zA>vFASx@L6-Cud+lU7HTX;M(2YyfOk*czup5_IfGZ^aDoMSD0nFko z$v?;SehG6#3$VDbOMKqM4ctQ!Us3v+zrP`+-;>lINarsk^H09zjBQp_M%3d`op3pt JpVedf{6FEa-e&*+ literal 0 HcmV?d00001 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 zcma)4O-~b16g`ibX=SYPIYpoa0l}6!6bd#*KKvjO8XHhcFyLxv$M%t7N@k`k+?bfI zFeWZtxDYpuiHR{LCDF(aaOp2F?o9j*;(b#Ln7DB9?z{Kh`|dsGy!YkT#{&QpxEw?i z!%)$#B=eTxy4!|VN_yq8ig z=H48G6pODi$n)ibsX{_?2nqrWEm>}xOO>q+(^)Y#ER&%cDcvPHbXe}AbSik=Q-RiPRBDU+Rzb1`(Fea*$_IR5ev(- zi(biRkqM%Uq0R48@wnxSkTX3MVRQ>tJw!8>iLV9``BUdhlCeFrXgXqAUkLp;Pkr-* z?*_>vF3hXwMYm`(6v71z(=?+{V9;VGKsR)qj<1Wliy_1WJlW-sNV%ZvGa{Wj{=t)h zS+p{=I773ToaL@Z)tyJxC)tpQY@5~=tsMq6SFSjDbAgK&YB_%PF(Cs6Kv?O+08Ql4 zyOIr3l%$=}u8i*E)O$azk`-xS5U0t88U?hUp@`uuTFBC6_JSITCiR4rs-tyQo~xlN z5fy&qHPnVTTa{QeajU)X=AE zO6n7O*AkkX(v&))`xvNW@P1WcniAPN{O(^9jla@0T_6}qD{?weL%*&CM5rlyXw?Fg zZNzD%8em#LjQXa@ZwYx51lx6bC}5npOc2XSilz`He*{;Mz*X{QFh~0$u3-t+v4Weh zXs=NG7`N~Q3)rRXb7b+7Dqdk3Zz%qNd%l9(zO5fANO~cTQD4J%)c+EpXr_5Oc@o7> uF-FfKk?rx%WZWh^A}ixA{kn1T6q-3jxWw5m*_40wj1Y@D@p_X!yQ$ypdfWQ| literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$1.class new file mode 100644 index 0000000000000000000000000000000000000000..eaf143e7be1f79f8639242d0e2064f517db08f66 GIT binary patch literal 969 zcmah{+iuf95IviiI(7{SftG7&OI@0Ti<{>lq^fEVQd*FT`oP=PSviZG-N;@e;IEKC zARhPtJ_<4GR*_09`rzH2@tHF-XXf{xpT7X~(REQ{SWi?D#VOD888?&2Xr1O!HkEO7 z$fXMVE*yr zj(K{*GimK}r(+u>P5xhc*r!I9L$0*?G}T2;!n7CDUV!vTnHkS=F=kk)sM^-(AAF2O zsd(<+M>kE^a2l%*;2QJna)~bT$0}8N?4Tc7fW098=-MVZ{?`&xeo+ZUpC__~q z>mrNAP+Ac^yGYOMAQ^&JN{MXWuA3kYn+GaRbxw0V6lS8w0d~+~Xxa6UJe8lt8>>gg zu-)la>V4ko8Ek-ET7f!kH*2-*9?+{spNj_hJ$fC{Ux)6X_xKz9-jk=_5qv38O*;J& z%_wpYEwVRCt^n83CX1qQ12;=dfE9YxiFFmX$a95!)sn5fgc5Pg%FI&lpNDJ`F+X`8l5_;7OJ5`=`RRzgZkrJ^3VZJkxJ$k~l-2LXS9 z3;Yx$5QqamfFFgJb*o4v7Cm@(XZ&X7&71lC=jSf~U9?;j2=$?!24N(UWFpd0kQx&u zK|EGra3GX!bUQ8_!g?NRC{r^@gO`(38BJJ7M=EJ_2y6X3^ektOp-+`o=`+H9^Ac?T zjd&}9Na$g3oW@EId-I;w3BlPl16c-P(Z>}mcqrnk4;R-6JI(o!d5=v}=_@S{r{hx@ zzY?dBB-HvQ6w!%@m9@{Ej%}2%@qg+p9e29e5ZdVXV>3-ync95a3y>~LGZAqj2ZZGu z+LolZ_b!x~#%h@tMZ&Zwr;uo w6`u10cmFN%i3xqqO01j#XC=y5=ft*&4Ng$NCK`Nu>><9vM7H>Jc$C|J0h{gdvH$=8 literal 0 HcmV?d00001 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 zcmah{+iuf95IxhFxN!{$ftG9Og;b>B;^u*;AYQ6gLP`r#QQx=D%30*>M)tZY{01-l z1`h~{2R?w0Ld=>FRK^uk$B{KA&7*9h z;^;^y-Rbvzc!aGgR3fdJ+UWJvDx(Q?J63sTkFYVULeDt|41J-rvM&jT-Tz>R@5H%? zQlXRR#AZq-gGJBoDZ$$}BiR69CBzlf1JrOegpX^4N8QDcMUNwC4waV2#pFz8Z^c&z#nT@Rimw+jn0=a+}Qq z9j7K|>5rrxn~{$#!g^KG`Gi9}M2FCFLslYHALJX?R7Tk8?pCTctM@l-fIS{$jXx>1 zT5g(rTjJ$onf(pE9rLTlXV`oE1wrr0)2|3Wm#8N1L5U`g{D>CYn>u9sZQMiGd zB__lw-)hXdhFk2p&95F?cgif!*>ZX5FLj+Cflnpv+APffgc5Pg%FI&lpNftJtGv~_6`KHPBO5QK!PRzgY(Qc(}ww$3V9h-Ax>ckSiypkYGk!Dk=FR;6^Ya&gF4`_igyv9B!zdPMIuY3@%#4ZC zFd3^T+!sm*-A67Q!dek(C^Iw3!WWZF8BJKoMk)=q39J1g^ektOp-+@n*;B$^>l|$V zjd&}ZWcqrqd4;PmRTdnz!d5=v}>nkk}rsHFo zyb{N;BsBUa67i8pl(kQtj%}2%{(tH$9e27I2yOKHv6-f;LDMM1L(`B+7hP!Uli(=>QY*f?)auPwET zNQTp~)ETopG}9!Kd&;Uzts34Fr69>><9vL^kfgc5Pg%FI&lpNftJtGv~_6`KHP{4QVjAD_d6OoO=%$PV0 zld+1zeW7&FedNL+tQDb#GBcAbd@;$C(S(I;q|#uUu-Y#|&vNz{`b24!Jtge5&cXKI zh_@n)g&u~7S)%l?H}7d55u6<}kW~;CeO$nThcYhuaB+#S)tV2P_t+%0zS8nwIzE=k zD{&l4LZfdY5g&;}S^L!K*hUHK|EJEn`z3*H0JA`fpl4#iAYj8AS@No zwj{mXcah8`PhH$3bc)12Gn!d|hugU0Vui3$6f~QVk5x1Y6%j=;O@qgTjq~R8+ES~C zWH=p5oiWQpGfg77r>u%qyGjr3Bnkd=t!1)f7f!N>wOt*>Cgs8I%WPx@KDN*z)a`yK z5vvdKrPU)LY_{5kf}gf}0_$O$cc9GsP4&861b&tHb5UV`m0t(^*Wugm-1`QvbN|72 z_+N5VjZZH}6GwhTo$Y3x%g1Fj*y1Q$!POk&V~Jm7&bo|i?77Z=9ky=dRi3fO)~$BF v!gGG$*1sh_F`>_SiRBaEtV9)SoY*$8&IwA`K)|=h9^xBJWRp*aM|t-z%iQt* literal 0 HcmV?d00001 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 zcmah{O>fgc5Pg%FI&lpNftJtGv~_6`KHNwgkb;m<)k;WdK`QEj+tyhni=5rab`bEB zxBwCe#DO2ck3!74RiqM&9=y9Velzpt&HVoJ^A~_F+Ad0j=1@<=C>Cit5!oorjEU1Q z8LKGV7fJ`+M=l(~S`lg}Gc(D;7n4jGO<2fADh;*?tNkMMEN73QPn1^KQ^H>B9BluM zcq_tK=wW!6B}xx_^Pct*!PzkbSp{Ly#|12SDC43J7ncZIt@)67k4;kRD=iPE<71h; z634M5H2NkI@sUWBwNIUnZIrP7f9fn9ce)q|ZS?!GnWn5vW4`VgNSCFVh$NK*!cqZk zOVZnY7s*`m)WuCgr%3EGqnQPGxQ#n5RtPIaL9+?@SVfai5m6-5GIY3_aA(R z|0PG&`1Eo#apXtT*>2{!d|XC@Esnw!T+J~)miSfXtjoB@p6mSAVe3X-A6 vJm&{){afM_6Z)K&SUv&HN>s7NiER_>oS=ja1bln!A-=&xHu-dTlz0CE+bQxH literal 0 HcmV?d00001 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 zcmah|U2hUW6g>lL7q+V)+A3--ZK(zNvGCx7!T8d&i3zPuYDn~Lx=diqGDCJ3qy8(6 zrq~C6fIrH3XG<`IjeXdixo6M)I`{7HKUcp1wBXsuFjV?#?D+wYq7jb=UaWNxdErp{ z-U*kg+InuoV%SJy^+l{lvG-;aORX4|;(?5+O@{SO8haMAP1KiC$@mq+aqR|f=L7%9 zy@0E}cOHjQ_1lX`y~|)7>Ym7hVcEqkEIG*HwhJ3~7Qs_t}PRGLw5x(UY zfnX?gw9kVs52dlEpk*3m*!+L#Bpr3ST;)ou&qF?E0LAPBzn?tG391r{Bp-?e(bgsvtFOH>AJa5+Sz)YRNeXW!T56yB461;Gv z{6I&v1ScXM=$?yx9558kE=eB9FXGH-7cy+u>Z!w-%5qI>qe=UcrGJ4Hi)Lx)mZ8T+ zj_^F)PU)*fr`y>50jIIIe+l<%!Ya_)N!W}$zoAHWC5h$YE=pvP7w+MH!f~-ew=6|n z#REbf(pQVDa+2j8AtrCR@g0se!DDk~C)k+U)qg2VNjaBP;Dl2Cq(E0m>ecH2v(#nm bP(ssOjRI#-M}tm>5Jo4cz+HMfgc5Ph4Nx^@i-DJ`F+Y3sI0_;7RK5`=`RRzgZkrJ^3VZJm{~$k~m&4g&ra z5(tD45*+zah*`IaRASMCcX!5bX5PG+-+#XS0MJF-MTMc6s7Vy3+?X-Xhf%I|YNBi; zIO(IFDYAbEy@>Tt1X0++kSlm!YRQdjx$dmCT;hD7dxzn+YGOYifI!Q;JE`(fZ^?sx$hLmZ{*1Z7fk~CwU88Kj3Dxqyj z`g`wUQAloF++paHiG5)-(*Pg$aNorW!%A7ubV31E(PZ#=91CN@F45Y!Y*4Q)w|Sl= zlaWw4(LC0ZEEfCH%IMi$dTd9@5WG-IWV?3b1gTitQ*o*dP4+yZ9BbO)UWpW$~NKKg>- zV}YvC=@)25k>61#yIJH4a2*Y@C<=?XQD6cr(W^>XmvNIkx9G1!*6pIobMn}_Ugr~h u=PU01TjD1X`c;%zJ_Almcvz#vwuyC0P{9U5x_$C6x2zq8TYmxXu=0KY literal 0 HcmV?d00001 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 zcmah|O>fgc5Ph4NI&l{g0xbk6P203h(hnymgo3zKt%Q`8N=1?2wsls?R?a%I9R&O< zBoK%LCoU9z6Jpklf}&XTV9)OJo3A(H%Rk?~18BjukzuIx_1N`%5k(^r58OBi{KyT5 z%5#r}($&@z8y3S_8mlkkU=+JAN3jYt!$LezQMJji+DT(iW44L@|!|hy% zx5D*>?z?AksC2(QkJP&i)S2)!%|Aw zrby@TohK8?BO4DG8fjwBjArWK;1M3%SYcR6bDBf)9Hl1T4Z@+=QEtf?%o&hj|r^uk$B{KA&7*9h z;^;^y-RVE`;Ssi~P>Hl=YNJF!Z_7%Dx~RcK?GNz7cOl zlnR|hCpJ?$87z8s&j{YW8Oa6+D0uu zFEJrj`Br1rHQZp&O@8&*x>aU*%9hJZf2r&I2>d8%*Jf${&=T%2nJfHm8Muynd&* literal 0 HcmV?d00001 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 zcmah{+iuf95IviiI(7{SftG7&OI@0Ti`%{iA)%_3Dy1n>Q6G5QIxA<9vm4oK1pE~e z2*d*)z(*lw-6~RvMIXGoGd?qO=FI&5^Ya&g9dupP7*-QiL~+XVe9Fx@GFqp3lucwD z9dW6`T^A0+dKD-UMo&$2JT+1)h6OX0dALm(2UX}<%059~N+r!JhJ(%(*ui`Lfk!D< zNpxZ|sgnM@r+doa?CFv4z_1wL8Ww!iaXo;G8w^{W`H*>!P0}1lC5FZ1Ok{8QSt=OX z10D19lxNb~7f#1EN}BwidbmrCE{0rb^=YDuoP=r5m%RkpA!VjK%f*Ocse-lT=g!J$$j+q3H?NWrsF$bQoH8JtR-%XYt1B zkuhv`x|Mogw0aKfW1Ci>PTS2|ExQNws?q17L4J>3L;CB`9rT`lgWr4h{5yg#C8|lM zU!oaB9->9|TA3@rO|;3PDBQyB5))vFUUka4j63AHOMe}*?v+(ulgHNedSBr?Kk(q+ p5>Ch;j`~{~5@P_~Z literal 0 HcmV?d00001 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 zcmah{+iuf95IviiI(7{SftG9O&811WxTTLlNT_Nhq_hPU1*vaaXXPw%b|ZU(fWJZl zfq38p_$b7zTSY3d=!186#%IpVoSEN$e*OZmjkb#l!*Ze~QJnHTA9FK|jMix$Wg{6! z2VAOf$A!bNS_Vpl(PI-Gjg8cbVa^O?9&Qn1uM9n<>=N|3RMNa)*l%5e?Y-w8c$9LL zM8_tRD(TL8+I8TwgL-0x|k?q=b6Qp5%PsORuX|4yt4D}$uCRz*)yB?CK^0Rnt z^~e}DTJ2K3&s#l%b+JV&P^Il=jfUL=dR6FiQ6s-cuS5Fl&>eIheS_b5{Ny`=F9oVj zr(d8MMZQ6U?3IEmz;!gqqA1+J%>ol(fnHT&UBoT&+@`+{S$B#oFUe!`dY!NEogcXO qZ;Cz@^sY#;cm|xN@UTk6wuv<&s9+r--9C93-Jn7?=yYh55B~zU>+qrg literal 0 HcmV?d00001 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 zcmb7D+iuf95IvikI&n=B0xc9MrNxEB1>8bjP!JNTiiDIFq@t?u0$XS0EOK@uUl8zD zNFWdod;lMXn02d2p%#<}duPUH=W^!w=dbTS0BpjyQDIn)R33yePt!5ahC!xvoCe8A zhQSV(%In&&7*@(ak;wEo3!aTLsTIR)Hk7HiK^gmH=t;^RK_5ybvquaE?SEkVZ}~eO z#9T$eUY1A|^-dG%>@!$fdLU|Gm~(Lkvkqo()`g8a!-Mu|lAOetw2i)0VmBWhisS`9 zj0HohuR|X1^F$i|IA|F%h_}Cw=XHsUIgcx?K8$pp5_zqYWv3vUQ{Fw|a?F!d3>fB1 zrZOEn+wVhB>?pNyg~2b|&eSd^7aS~M*~T@7rLs$tmAbf&6^1GgLy@N5eTMG;FV^&0 z8?*WfUuj;>NZLW1W&Tc0@MR0~c*{7@9_5 zlE?C+cy0(v7}naI(sdlqegx}bgETWkKL~3!jc~}S&|{-Y@fumLU{M^X`|Dre__yyY zT3_LQDsT;YI|ZH*<|Ufs`-CSn&Y?x8vCiW{fvIDjEK{qF1+pxva1od2+akq`ce$we zm?EZ!n*SNj`Zrwtv)F5D?oCl_;RrY>R>LYKHUr(D1QmE#qtl@XqZ8E9O?q3j=Ucx4 Dg$fCZ literal 0 HcmV?d00001 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 zcmb7DU2D`p6g{(z%_fbz>uRf2Yptfbo2qH0eUKGFN(EtCg-Q|MX0tTM4^fYCUppT`J`4fiMoqu5aZ}~eO zCS1kgVV+7A_s$aO9x+(EdMF$)EOzjQ5bZobWUgLx#nQ zsZ7W2-upk^bP#0+=o=L;8W3>3dXo10du9Qf3jba5++}u-9qBD}lzQ{*<=%IryL(3>k z@%-)w1GK zikKdp;4|EfZ@B(vu@N;V%VJB%z-ciDwfgc5PjR4xN%Jq0xc9MrLBw7@ZlDTN+^g+RV1VokcukAZR@O@1!p&`*9iDm z91s!*egHoTF>69lR113WdS>?RyqS6PU|8TLEk;6F%5$U(lZYqMHC=bhanFgv5I$8(n0>cG zf_iQqs3g-lX>};oq)z1C8$OF9^DK?yh)W5q>UlO*(@T&j|AtE%LjBCp0dg zO@C)y#HA9`z!F)GtAS;*JYu+vD|EL)G3Q+^86S}6YG8j!YIF&_D+!h-gntMau2VAC Y#A^BQ2G-~wP{h3fm2s0!59`?c1q*xdaR2}S literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$7.class new file mode 100644 index 0000000000000000000000000000000000000000..0ea52dd25137b827a5be8321d9148b04db222cf3 GIT binary patch literal 960 zcma)4O>fgc5PjR4xN%Jq0xc9MrNu>Q_;8DaDip+}DiTskk%}tR+tyh*i=5rayGE3M z#Q`C4;0N%d5VIx(MYW&@uV-f8&YPJxKYo7u4qylOeatberK*UNj2koNb{Jc&GZW_{ znZyTNs%Y1T$FN=nN`=*98y}9X)QX{Ihtfpbl(Aoho~G;(^tn{hzF>IQ`46`Lo`2wR z##I_0*<7l$cag}}F@v|K2ciy!#SoWJ3owt%A$&9#o^>vgU|8UJT8xCUl;=nnc_Lm)*L2-2$73fBL-k literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main$8.class new file mode 100644 index 0000000000000000000000000000000000000000..c0f4c2f4ee09601afe3a3248fe869c5a49cfe420 GIT binary patch literal 969 zcmah{+iuf95IviiI(7{SftG7&OI@0Ti`xgJN~s7CF0-y+&MK z;FFL*ARhPtJ_<4GR*_09`rzH2@tHF-XXf{xpT7WXq3fc?u$-tOic_BF6K+P4(K^ke zY%JqwpGy^PyKop*t3Zh`dSap%6C<@^m@^}phnvJWs6tOE`viR=l{8No_B!Wa2XFXW z9;I9*(V@wtO8T>&?h%8tqldx+!+d}XnDbG`#Q-iYF>G{ZLuNgeq&bjE92DbYk-g%_ zsbFXibj;Huo=Iz;Ivv|6Y4ZQl!)76L++^rgX?caV+vYe9W+R-k4t7(i%KV zim_0Jsyx(17K=S;MfB_4a*F*AD zeh@FM9vQ=Wr(3D_X{#r&J~n9u>a^Xg)v|j)uNr+W8szurbwGa|x`W>RZ}58$9)3sg zr9?I9^h-3O$d71|y;5=oxQsSg6oo6eT4Dk$(5p_Yi?~Lf>-5(l>qeR78F_48ulE(c u^8>g3P4S5e`dp@1JONHqcvvN3+r(WWs9_Bu-9C93-Jn9&>2zq6_x=J4mGLbA literal 0 HcmV?d00001 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 zcmah{O>fgc5Ph4NI(7{SftJtGmbx?vA8s#5RS*)YS_vsFNJTwx+d3;}k+U1wYXn@m zz|TPffjIC3_)&;iw~AC^(Svt)#&6!tyqVvBe*OZmg|3Sl!*ZgEC{B5vPq-OHM(Z?> zvayV#eJ)kF?ZRPLtpX*&=!uD5OpMfuVa|+X9&Qrjpb9;u>=X2fRMI?U*z25w9lYUh zd6aUMM29AmD(TO9x=lIB1vaZrqpMfQpx zr-Gq9&@oSscqXlV>U3s`5}5SuFOX716Vc^vDj9A$YEo$ad_y3DU5+tKwAWG}nD$MtT@v109BzT@T4q z`9Zw2dSndioo=Pxr>&mA`q-ousMB_{R?F@Iy=wHiXprBd*8%-?=ni`KzrpW4c=#Q` zmlD;a(=XACB0r)<_DabW;4<1|Q53G=YKaN3K(9KnF5((_uG3$KtQ%#PXXLSYz1~;& u&JW!BH^nC^=yRE3@dP+c;bE1CZ4-BipoTSsbo=CCbb|_6r_-TP-unw2dhtjA literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..a25716077440f897798314199c0e086175aa10db GIT binary patch literal 6058 zcmb_g33wFc8GgTHlbtMsgoSX(Em3knmV^M3SScV#YB)3y4EAu63}Iojo6hcXcu=ia zTeTNxTeQ|{rL~@lkK!7l6+CHF5$G17WE1jgd6)r zHKiP~)C-0s(y6X=>XfKM(Ftd(AipbN35LXNyS=))DV1)eVE3uUdkSo{?Jhwe8cis& z!RaI^JSiHFrcNe*S$Q+jMTvGhgnW!PF#;otAQ)>Rh(ZJ7Xm^zYCYT6eh`O6(!gTMZ zm^cQ73Y%(T7z$}&V>E6rPj|N3&MK=l#zlo26Kz(k*>a-l*#iTq^-)?nsqw$Mlq)V) zc1EpO^c;Joiff@9L zif9NGh$vso6pShx9E!E&%?4@&Ar<+m)k&*^?yJR|AZ81u_-S?X#7?SDlP2ckM8=yY zyRj9V;G?B{u;LKvz-**ve6{rRfr*cSAudYVsin5nu6$SGr=>ZFk24lWx0-7#tv0Zb zc@s~l1U7IA(@d{@d14KL5awfv^4FH_7zWm4*qhyw z4xvf0v)*%fwbsBVSzzr3KAmwWi>^stc>_SLAgvU9E~kPM4GcH%d6uCT+t9FL zWeD3;c3hm3cb3p5bIb|vO=!DPR(=&iTX>X`<I4??nigDY-jy%Vkfvl9?Y*#8itMlF2(!Z+`KHtVgujH`1&+%d?8$`n7^N!nWgvxCZF0ZGcICT z-pCD18={0|Jk%b-ZYA}W+)`OBKjNOUsk(~Jx;?Y1P1V&Q+^j_0nOg*_qT3Zg-`v$F zq9%mBO2mQOBADg(s)2)BA4eAhKhE?k4+&wvlJt|@l9(y3@HvcPeyt&P!SDuhEAt!AJLlzrnflzaiz#)Fk;P9u`jX{zPL5s2MY;iz*fm$y7N$D5aT?^+{;)mNr`tXQrGW z)3}%FkDF5T!79g62cI$CSlVAUXF2Y8YMEV5qQkK`KnOqf%%AGKA6WIdh|Slo@Jgc=Dg53khF87|aBXmz+* zLua~B3!$^ZpCT0gjK(b&ZzsMk+@bKO#y7fnjCefUrEo{%DHl%@-yGhm@N+eOzKd@o zenI#`4PE3y+X;Ok{6!62>Oz+h`f~WI8v42m?I3hT_!}DfmJ977banXK8v2e4T}$Y? z@bwzH!G(4c+7tevhHi49n+e?-zD+}SxX@lg`@%gMy4!{J6S^mSP($~*(EWsd8h%hi zKUdIgIxZ@nZ}G?poXlLB&#YL0@mPpb(rIWwgge_@(mI?@^b9_oj%7U6tj1dYoyF{F zfz97ew823;&f)#}*ocb}!=*%b@cv39aSc+q9%_TfC-OL`wJ!Y?=zKSugE zXV^oy9M6#+!A`t}D`?wJyvq?(aJ3YXnz&v@a#|cuI*EhcG~6T+(i+?$b=WHlNf+ZD zS;pCEHR+k0e9p#$vYvD!9+4y-m2*kAag0!TI?ByOFHeU^n$|qTOwChW*v(kEjTx>o z{s=4NSIeeXcH@!dGY(#bA=A6@+rVA;-2ohG>A|1s0u^`S@GjJk4IIETME=r^=hhHA zvI|QU_9C&DJnZFNs8!gj#9mj}9+digQ{3;H{5b`Cux4zaq@WvrzYlNL6^<>W{Fix6 z=5-ve!@S$;PXS0k0&I6r})haQmA9G)b+9#3;J7%MD2?O9L|O? zDtWZxkeI~sssBM4D#x$~ZHFbpq?ljr#9|pPs>c<{h)ncoL7wib4O&@IO)Z`@9mJkOw5rjoU{;mJ@KR8vd^!VXL=S-l|RpW19_^lcp@@$kZqOwFmWJHbrw&xKhOAqJTtR+YW!_GJdkHj7SAky zp7#gxM6!5l{dwLR$WxQWGuxl%<$*l2vv}tC^GqJdGb@W{u0K!K7VG9gZ5Gdo{yawp z>Z!}{@ISxjsVtH@sVCjR1IT<*kT!a>$)hbEZTD!*qiK(B^XPVuUgpsq9^K{9YdyN# Qqc?kWuSfTL^nRCq1QdkWGXMYp literal 0 HcmV?d00001 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 zcmah|ZBNrs6n^do>sC6L69f@oHWUX!D=)q>32x3$8zdkzCMKkG*HJ9(vbIG36>2hw zCjJ0_l=0lQb08yrx$U|4oacG&InVv|`}$Y@nU-KNta<%rM zX=pX>x_Xnl5(XGD2l|n&S-RcSHuny=;V}%Ab~avBE4v#nYZZoUwU@E&wN1OZ%8)KQ zw(IG(SJy3{Cy@&I)W3Xcz^4j6^)TXN7}=_9Z|-cBE4v{D!(@o=d#0srao6$N1~2(` z!{Wq}EE<++o8B5jyf9m57$`dpE+d1igewdafwDfe3a(<5A=Ttw2*#imF5YAIa`F@y zt|^c)M5?Q%%{TnRJ>Gt!?^#^*#4&WMuD4AQN1KUapjAd3Hxyh)n)G`6rpqv0{qHR3 zwnA;#V1}8?)dr)A1|eFJQ*aBnB}_An|2wIYZ(0rBmT?dFCCr?gb_k)MfLR9VNX&8b z1H)LM9JS>MwshonDTf|cL!Ch(i%hY E50PdMU;qFB literal 0 HcmV?d00001 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 HcmV?d00001 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 zcma)&Pfx-y7{;GYU^-C{1h0BAFpP_do-ka9CM45?5bk9*qh@Sm-PEt;iNu2+zz=17 zI~M%M!5-Q^?eqTLr+xo;eFJcY0}}?ru^*<67jUKKJefL46a~tOXVP=-ZU+6UXHU!% z8HFYa4D|>8$enCOw8m%l$G8lURm+w>@Sk^rL%WVFO!b6j5TRxH1&C z>1-n65uXHtq2@*&55_!}TIYv_WGWRy%l%)(E`vD}N^w5}{)xh1uL<}q@@N`IPr5&) z)^Te(Zk3_v@l+ABvDV9A4Wl&n#I?*`^5ff1bqXAT5l#<-cJu`_o1}WA4O&ZfXMxR^ z?B1f;%1+zlw6RUPxpbk79a7}SE-J*(tZL30PzT+^v^ysY?EQwFQ_)2RJ6zgUFf)fy PDeBm#R`gN=8EAe2Ol)_C literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class new file mode 100644 index 0000000000000000000000000000000000000000..731f27a5da7a590b63109636dc55635191bf118c GIT binary patch literal 5210 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 T3?Of?GjIS!7#TQ0;tX5>&fQEs literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class new file mode 100644 index 0000000000000000000000000000000000000000..b66e612058cc20409031a3e880269a71eabf6ecf GIT binary patch literal 12424 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 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class new file mode 100644 index 0000000000000000000000000000000000000000..1c267c9ae5e8d64abb91198ff3e956f2be4a36c0 GIT binary patch literal 3890 zcma)9{dW}Q6@K1ilO2}fYb_xWstZv_vI%QwrN{yjLkZC&V1lG1CFx`{Nrvw3th19K z2({J^`~a=r25VKcO|7;{i|dJ=W7{8kj;BBNf9Sta`@HWv*_~t&yE$j({kZRa?|trb z@16YXzh8U>pcADiY6Ozg`Poz^YZZ$H%b!X4uA42UyquFs4Y{*k#vbIb+szf6tnEb+ z5lDTru~=mrAlXSf`%tXo+G65w7T2+BMON zHijo}KjN>%Nrlu;N6~&WHWB%L@<;*XxnX|kV=pOUjg6;W^U1aq43#@4_ z%J2t~kcQoB;-IwK@Lf%l81BQND7u$Lp`ypck8zkJFU%6YJz*yT^g_f5R>H&ymJA%> zmCa7B;Cg;h^6-8W4@f(1ArE`i@{mtD=j^;+G|*3iHamGnc*@Gy>cCMG$K-+aJkXWR z_Lesd3<@-b9UY&vSr=l4jM2g7b5#|@z|RDB7d&Tj~+{q-SoV=AyXuw8KB?gX; zcMbLoCH5!s_L-&SyG}8#%=e1YZdm|TSu#MH?a*4(DwQm0$pmWjy3#Tw02zoG6An%b z#5}u@CD_DP;O=msgK`o|;(n`;4o5kVkgT$E)Z(jZx3W%ohU zFD*;M8QB3IA;oW^`r9>EH?OqpFSmwJTVbYwM+semKLZy85;x?PHZ+m5{qa?_@i7y> z1Up$h7g(fY_!XXv;t58l61C;mn0QK3KT7HkSUI-3MqHFd?iqp2E#1{@2!d+hIhG-5 zT={3<677|i7}iU>r2kSQQ0-1F5_y4FO}vKJ zsXR{$1?~(7KucBI$%J~7x9rTwMB2&AG*T@FuCVNFYfngHeq-Wo{8k%tjFpAPv#p;k z*sQ?eu0QoAHHDVLxGxBW`Q|?q z-4ox}Uc!MAx`x%Pr>%tE@~n@uf%5D@&W6gf6P*1dn2pZkHg)_|e7r1R#WQlefX%^{ z9oo|4q}(ZCdT*pD@+p1M{*Pf3$9o7=nqKci6ZT^Z?!^xF`c97bq8mqW2q)OgCvg}a zdYJx4a1r<8GW+n0e7}M|%%dM~@qHB!;?Eew7i^pV-a?pkE`+e zbO}!nQO3 zzxZXf)TVuYv4mH&ew*|*83rUiFL(6HTVGwlnq>SPxw3$*$@qKf6!YSJHHiOS zzy6?J%b}ZG4&4a<^#Cpqy2t4DfTNG7=Q`dDLA+Ro_*xm_g)+pK$`G>-1{B&y@MQsswbg!x zQPT0FN@-b3_INoCsxvK8bB_3H@P+&^2X3*RWs7 uB#JQIJ_&RjRRm+NZw+5Z6VY{wA* literal 0 HcmV?d00001 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 zcmbVOOH&kQ6g>?CgJb((d?1KA8iO#SA}A_i@D+_H;sa$IpENV=&^Yv9PmiF+#3UN? zz`S;ts%RD|H)fHl$W%gA%+9K;vd$(um-z`v&h74*;boD^0{WZ#ec!$3o^$W*{_XFd ze*w^huly)cur6t48{;W0lNr+N{zf~UPGuUcK_lMSqgjU5m(nwS_!KN2(5`EZDa}ka z9`75_Y16l$Fw2Y9X1lOTanNi+tL#X z=4q)^IcGGSfZeEM&JN~sGJ7{%T<)2 z+>aGAP7y!=Rqm;kD*ULB^Q%LyC|raHfmH0Q0>7 zQ8MjEBNHng>PV&Zq?YQoN%z5#xISbXX|n=NJQUYVGi`^w%OUNGty>{a8pBKmuo+uL zfo;=(ciR@X3EYqEtg0EY_F2j7pl;fe!tG>rWQ?17XfT_xLw$OvDU`NC%>lGvt4P$Q zVmIDkCh@dsYlfLQs^6Fv)h)%ghI4-GQBYNk>cZKdHBt%Ps=z*yq@^rfOWepOqbEWE zv`eIRys6?K4zcF6p&{L50dAUw@rFq(PjTNSE)J{cz!6roopv`BEUlk;g=ZCXsyK!& zCYCSxE`9h_DtAappHOj9m?+f}1m_dd*d)%@85O6%{$Q8zcNNa~5zE)SQ&AnJttWLW zfU`I+!d;+)dRC7dzNF$ZdU<&$%YNQDOVX2a&T~D}L@Wj~&u8-rjR;SHuA)y;SM!IZ zJSD|`6$S?A#bCi{cG?m`JpP=~(&5?L<|75uk3mZ6=sjguMH)lQ(9}nm(NqPz1cV7o zMMhYwFig8gOJyAhSrylX<%)d039b4WL(x&*(a;%(e!3-@c8E+-Dj=fo;8 zB&18v6j1C&Z%9s7gw{Yp&+|}$56Fs{4qf-gu2Y?r75I>JhS-%GoE9lwNJ!OvB!&C& zw0h0A;v}J_*J~9%RWXVOls>5wb=@q|PcGg9byfIW2;s#*cRFju^+SdX#D)1;nAt3v zAVjH4`IadogPg-$1!dAYPtIBA$tlZciOg6&1N`G$=esh zGrkNwWI3`b{KmpRA~c2t6WAOJZpoqfd9Cjeg0*Fj#MTlE?#Q9_IS z+GD}JIqawHz&PHLYvD+34o9OrxtiAF(PFN3d@+KA`T5CEiDs-Ha@DTHOAW%-JZn9J&lg~@y0h932cPpbV8^>vZIgV&ApSAqi+b)L41kT1* z<#28s7o)XhkDdI`6sQL^?N9Sj$Lg$H6=d+HWqk??a^PQp(x`;+Y8Q>dm^ z>v5W220hd`hEAME6c>=hMUM2#xQ$-ir=nj_&95oLw>{NoeA->P$4f174p)nkPdo#2k){XqBz3!9oAG5yLkT&QN3WziB0O~y@Kq2aYy=d z)M1CM_fT4|#cjR!C%2x{ozin8dUd`#bGR$L8N4@+`}qcSd-xNIb@+A9twq8 I%N+RfUtCFVMDVIhLOgXpTe=1X_~rk?KG*j4)c! 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 literal 0 HcmV?d00001 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 zcma)5U2hUW6g|_fUD&Qb(biV2wMvzbwhO))jFAvDo6yn#A?i!r!nmwiX2|Yh)PH4+ z(fHsG@JAW%Y#R&~wGTUU@7*)^+_~q@kDuSZ1E`>^V}W7I6%(uPJ7G9>qM;Q@>4#P@ z@&?v{Skw~G(pw;DoC&936;u4k&EaI{W9Vv!~`HLhuk5OsUO;7N{$>@X! zUFXE-4B4jaJATgzJmsGSHPsC2+rO`ut57qRbB>VW{YXwiYF_p{?F^(c<2|5Wj-4Rn z1BTT(w^9`wjdy(>YZU6Z!BCv1&Wx7R0|qv+rQ;UE%5NQP5pkCXCT?S!AraG4>@Nk_ zN!-PbjvT}0JmTqCn7D`g4C}Re*Y4H2cI)uC-FRkqy6qRoN3C|3f!Pe^SO!roa3>?K zD2aBjW*HHMW$6;Yh>JfCngij3B29%W-W zj1IX};f@Q3VXX?32%{$^dOI;vD~35Ul6kmAjDsrll(J9IU8$sb#cj}doIO1h9vJ2W+`ycVI&KDVaf@NIGaEANu_VobRN|-@pNi}~KTQQg zd!S>Up72as`_k#yMoE+Zmmcm=qw^tGTAhz|k&`g(*|b+6+oa5dXSoEgZv)7j_9vLchGzG4Sw(Wi|+`&l&B`1 zeu-ujDbXT(wd4wL8*Q>E3U_d~!~|HNSDjcFagRJp^w%NlewpPpd2C*<_Z7bL0}uaA op{O8TrdYfHPE&YTBVyac6C$W#9U;M1& literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..0185eced0ed3703552c6c07e1df1f5b81f3efb90 GIT binary patch literal 969 zcmah{+iuf95IviiI(7{SftG7&OI@0Ti(B#Uqb&Tg>RfZ zAP^6H03U^zb*o4v7JcyU&iKsCnKSeI&(B`~w$OD^V^~g95ydIb^9eVj$Y`DBQ8t#t zXrD_JZo6<8R;xgXFnVI5*ApYPVwf`{nTMN{aZrVxrtA~+xm41;VA$(if*ri$r#woz zN}?l^NtN_xJ>6plXGaf(2Zs3oS1{+Jj;jG&Tw~bi%!bT*Y?9_cDsfPZPek^HpQM7J zJ zVtJ&CEEapxis;!zdS(a75WG@KWIJ}<1ZmjZRdK3wn(MwWBRveTfeu5a^Xg)v|j)uNr+W8szurbwGa|x`W>1Z}59ho_Zqr|ftUG0um*lZ^z1~;&&JW!C qx5OzC`cRfwJOfTkcvz*xwuy(7poTSsbo=CCbc2Yj)9KJCAN>XEIPnJn literal 0 HcmV?d00001 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 zcmah{O>fgc5Ph4NI(7{SftJtGmbx?vA8t`^K}e`-C8V?<74^Vv>#Uqb&TeF{5g>7a zUxWk#ao`8=qY$%h6{*Cc2k-8T-@KW5Gr#}*`~_eOT^BWmyiWxm4k{3x{E~3X}+=CnkC^F;XjrIWv-ZxJitID)f}HPtYe)N%NFpuX7G|@P@zT zQOZ>k9hyw4q(AHF9x*sOdMG?F%m=uDIUjXg4B+At!$xN|WY%LzngglCK`}lS*(-jW z3WoMT$2>janY8w))3J?`CjT!z+@?n7L$0)XKh{M~!n9}8o`GzUG83NVV#u&iQMIkn z-+dR0Qt{lyO@>~T)@LR&4e)UrcU&wnEL80y8kbQoH8JtR-% z2l3MCkuj`yx|MpLwt52VW0O{(PTS2|ExQNws?q17L4J>32lUsWJLuj22EX^<;dcaI zN>r0hzeF>N{D>CWD7zPJbP;Zj@P`k;mrsdSBr? tKXB{c6rZS|&t;0m6W}z3hgBlBP244d8rBff?URSm4Ju@vPKQQ$?=Jw<@h$)W literal 0 HcmV?d00001 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 zcmb7DO>fgc5Ph4PI(AJG0xc9MrQky10&amGP!JNTiiDH`Qc;DtZJm{~$k~njfq*+F z_%lc#5C?t$KMFDHR*^z2CjLQrST7gmLY?9`}=tQCXq4cbEVbWkuEYKuYI)a6l7z{yG>kfgc5Ph3Cb(0zr0xh4VEu=I_0XLUk0!XN8C8V?X63Ho zG{!?=#yWJd#jsk`!E9SRbkJpJ*oBcimLJ3$t5CwQ+3plh;G+3+SRXsI6lL0X)@azx zAge^5i$#i8$vUE2hfc4%{SCG5<0s$YeaTUE`qy$aHI9#HkiVXDdANoqd6b3gxRGN# zER$6x))m~O$St~c$h)1t@|-ODZpHbEyMNPvBH-toe&rlAqpx6tNNocTD7l1(Xwg}t P2%{5J#3ub6JVN^qEFbq0 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..6675d24516b7682dc3da164f1fc41b03efefa781 GIT binary patch literal 5921 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 UuCmvx_g2GOQ{HNO>$&dwKgR1i@c;k- literal 0 HcmV?d00001 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 zcmah|e^1j;6g_VPx|I$lf*|6L4aIFj>i~Z;2{Pwj8zh^|n3#~VJx8%?m$fDOtx%Ie zH1PxYp^W#noq&w^&ui~{_nvd!z32V<{rx9^JYGnMFr-?Rr!`F7aXPxYuer8uI$F1F zG_?wM9KFRI2}2CY1N~6fOx6b?$}wwT6&j{t8SXkmG?T3}3>EDrmyyJTgewd)zOn(e3a(<3A>QI{0LGwZF5V-1Ie8om z*A&PYCDmoa;#*#Ok9XhbdnOk>u^YNs*Sm&@!_AR`uT@4AHxyh)g7mukhQlyl{_ia4 zwnA;tV1|Xu)%v3f2O(OKQg92mCCoES|2wHo&oG<3E8`ySOISEJ?EpeS23ZE_P|R`r z1H)9N7`Ej+Q5p}#r4~iTfKJwBq@gO%@Q`6d?{v7;WLO%MdZ9X0xh5c%1;h%&+#nfe z6CWvfj3?v~*X}oMGBZHAgl7!tQ=?Q2#~}~*y;l0v;2qbnEwb20{+U6p`5t_2h&dXWPM8~Kn9_JocL!Ch(HcSF E51e2RV*mgE literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$AdaptedReader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmid/PersistentBidiHashTable$AdaptedReader.class new file mode 100644 index 0000000000000000000000000000000000000000..e45236487d7077b76ca05801dcd38b1193f269e0 GIT binary patch literal 1111 zcmb7DO>fgc5Ph4Nnxsyfw6wHPN`X-FQE=%ssG?LLf&xViDpKIU#$F{GIqS&YMDSDi z7X=BBI3RK5M;h!Uwj^kC0=JnzlSo7q2qfBpjS5IZJP4Er55v>lI!;ehL|t$p7M z?VvAR`?Ux{8ET>Q6Y0w5JnX*VZBG;rTt3jkJr>**feC|Qy~jt~mcD(|?g>ZN)nKTb zIuN|iFsHjREbcPwH7=T|M(9UUNxjeTqI7Y1<9}IG1=Y$Y4B4k29Wl_-SD}e{hUH1% z(c}+i}th!PnIE-$9pmnG)>?U@Uz(fMhTncQ_ z8l>rxv3x#S9Xh4xF>#q}hE4|k&%&b9OY%gKg-Z1sa+RGQSgaV|vGn!}Ia64r_d*=- zo`_lmdWWmzTa5_|Si?Gf5ggZWoqPs1aD(h@k~*b}3dmJ|WAii2uh=@Ro|0oa!3V03 eV;;^_g4`rQ4n^FJX|`kBJ(S2s>&{R{75E1+-+7&gH|wA^rVQiQWWX~EP7s>#jZ^g$tL={1gqe|AK;G? zXG=j5JoK=$GqW?_&NnlkU+*6Pwy|o#U^u!9Q?C_pr5J2Uf~*Y_V-7477|eAYP;AIhoTuGeT`*B&C^e!M z53YGEwLNfVG!2I8&{h0x6_GOIG_)~=84J@4m0{cBU{;s!Jn0$KqEJsKPjK@N7Eofy zskZRbK==&yRg}gpQJ0$6;y=UO(sLuc(=ZfqO>co9ro}%a#ws<@q@`i5t2;@WLB~Rl z{CU!L$<`jbyxAl12IsjSQzV(C7@!W9q|?`JjH5&rtqlqTgev9hIJf))`xTS=Vm-|L j;1v25oYAl6DB|K5o;$!Zut*37mat5>O?Zr2vjThrlxV#2 literal 0 HcmV?d00001 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 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 V_$7YD=TyFp(ZlO}kMa2i@L!1IN~r(< literal 0 HcmV?d00001 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 zcma)5%Wl&^6g`ueI&lpNftEM4;I>J4xLF4wp{htoNkMAW1q-C9GjawwGtqd0D1U_n z0=lbuz-+ut~(D6}W*iO|fPBNb7Q*Otx)jG>#Gm%E5 zGPmY59&)Loo)3>kLh7~)Od9+J`2W9B_$bIs7DV4OZ7>4cTTn3-` zXC7xM?lN@C2)IPog+qY*cJ4xa~Fw2~|ZxN(xd@7wo3a;0!o3k!OM^e}x1B zvET#vD8wDNs?@}bEIf1XopbKnfB*gd17HUo9~FkpR88X~#3n`wdSK=fb3A8COkJ{$gon9yh}CM z|B{Ge493T8hHlvaE{yA(5a2HE`?$vtm62wr7UBWc7-~F8gfS5%*Ilgg-g}p5jpylf zER?035A`%p#4G7KTX(zm%uSaee65to_uOI%YHVX)C7Cuf?18W&Jq)phHbc{`j^vsA zD&D&8h==5$f=7tx4#>jj1|_mVr$>X`{13Gv1DgN< literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$3.class new file mode 100644 index 0000000000000000000000000000000000000000..56426d64bd9996dca270958593db515fc21bc687 GIT binary patch literal 1011 zcma)5%Wl&^6g`ueI&lpNftEM4;I>J4xTVV=Bvcg%DQS_4x?neTM$RB-9L-Fi<*$%H zAQpT8ABDK%R+XA~(S>L3y>rfe`|rQse*kQu9gZAYp{ZITe zk29{)_`qtZ(%!tKbI9QB&h!(xalSO`$X)et_eF>JKwDf1TRq|uj3>`li>ekg7=!U~m!VrWfD7X~Cj_{Uhdv%KL}jGesfBoi6^0s55@AgAl44!1^4>?6XpQT1 zIu^=O&IkEaC*rMiovpiFd*P;D1D=L5n3 literal 0 HcmV?d00001 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 zcma)5O>fgc5Ph4PI&n=B0xgv9f?E<7a0|VlAS6^32`Mc|MLlpqTW94ga@NtVgJ@6i zlaN3l4*URq6k^t`Dkb$H2YYA6Z$9?T^WT5J{{YxT=%T`~mZ)(Qr`(tk&j(SSWvPku zP->A#lk1~smrE6Fxo{X(%CL#Zvr!(s8Rarl4DErVEE9U zEv5I7f8tTfRTAyzTB@WwOQdta;B04oQ3Jz*j|-UhFo%miT+|t!wPz`E9%IWkdQyqK z@$gXSclwNbK$mWFigqR(1 zZA718vE*`gaBt^xEQ-Y$7dIHfvXxCN_$ts9>DyK{AXJZ|USJDz+vvPfG1;XIJR!Zn?t8GENH+EE^TT7Q_SZ#Mom3Yd;39O3^64D&~O03zmY9gybkBchBYh=BLLvf%U zuK$1+K76$7{Dl9lz%}UY6?jINV>HPR2~TKTLW@poUB;CHQ^z7%wpSfXWI5E~Dz4GD zWr|tvdeQMEMeGc<@H@QqU${Bl>uT-yE9& literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Main$5.class new file mode 100644 index 0000000000000000000000000000000000000000..a697c94475fbe0676c3ff989f19b98dd9d6e6921 GIT binary patch literal 965 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 H%v=8tj9?;l literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..b100ea716191ec05846ba5aa1c5f227def49d8ad GIT binary patch literal 1166 zcma)5ZBNrs6n^dobSoW91VO}?O~o;xl^0)`1UKiW0SU;Ai3us&bregxw6{e56>0)R z6Muj|%6M*Dgvm(!a@%w7InVRlbDsO__xGOwX7N%%f}zlI0;6G@zTY;*jv-vv_6={( z@_5Vgg?C`AaNjpu+*i=Ukli)+O~W>wma(?I%Nv5Bzr4Bnx>ns1D--UqSgP>>LIOuj#l4`X&DCBs~c;Z>y_$O#KbTjkp#lBjdkw3 zf!E;Wz-ii?$Wo<-Z8?@$Vn`OI>I^*VNNaBWu>&TE^v19oR z#oGT)hAu5dN9|^qyj*lRxOgnGBRLJXa9hD$hS7iLRt_w?$vqYK@j$_3$Lu2r4Fyaw zDEo4%Yaba#3YEA!okV#&ly{q!8C@D$SCNOV!N4PiKC|8CPLpA#Tk3`CSmmOGn3E9m z3=`dCoKJkL;R&9SRfK!mwBbS*F#KjC`RW zfl*oqLZCT8Hy&(l`|^cIgXepaed60m?CYJe=$q9jbn)KUvjdcXIf54D0(R1g#&tcpVMf~7uh+ofGi6WL7^KTGfeKKKEC zlsH=oiulxr%+5?^&(4`MpI`4E05(vtkYK2^gV<~OTGG)jx91YUQ-2L@lbE(J#jrWRd>qUe63&CsqY?&2r3@j?IhaSD zVOV!WEA~Z;!M+M()fC6lu$%cu)HS0YVVwqnP!+Qfg1F}XNR0xGF-iNwT-VH!yaas~ zhAE#RZ;N7+vCFG3WZvLB^=fit(^LbTz$NSSd>doPQ$*{7Y#-r(?wdNd{0#dQ6Xswq lnEk=Y_BuGHS1*vmFg!;2Y7Y!=3;D literal 0 HcmV?d00001 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 zcmb_fYjjjs75+{p$qd7#kVhXpO)1YjC4rU_#7YPyGzn-z;$R=%%$$%*?#vzT+zF5R zs9L4f`r=W6YHcfuwG=6mq-7|uYFo5Esx4Nns9pYZ>GGeCUoO9M?w!d5Sh`l1u((sJcCE91Gln>I@~ z!!McgHkg^AUUR^fVU!9~Z8t~ErmSb#O=`jO7s>^y^@8Oz^+?w;ZEKIe5)oKW1he~9ldR)wl#HU zZF{q0r9A1j?~2Q`M<^nw5vWuvHG@pACha;SRzfDCn2Y(!>Ma7-2d=e|9?!K>+gg1; z3k_U{=>pR`t(5G}CI_Ue%Sn@+PTaKnOxBC#4TPoMkd+Zw@orEfN~J1779>u5JlUZu z7pI`+3TU=2^`X*C>N3-&ISoY zaThj3uqiOx(zq;)4+_lAtFO%t4$@s>(w5EWQBHaVZkj;1NP`53fE3h`wlp?}@nM0P zd6Sz4w#&Fzq#i{-dLsBpVM9v<_XN=|SBv)<_$W+)sN%lAoqfL~sHA3|FKt!YaRUj( z_p-R{WMl+`fvFV{3?8}j=oiXE7*9y<-}0-L$qOs8dv-Q7^! zO+ik@X-;y*YArfluMn0#nrNXfv~FjMW#r?HzKR zohtm+V$T!OFdocPTw_xh7ql67>_m@ey2Kzf+&m&sGH9{%h1OA1vZ(UxTQMLox3GQ< zx=|;@xkOGDw60>1>VM0Ty9!-8IWWB}T~;lK?R^Jiy{v*Cp(|R#J9ZwyjPA&c2PR zBfoE;5>fyBE#3c)nsGlc@Kwx;Vie;A5K~W&+ADVH&bzGE8AyO>2d-qm%OVp z$v*{OG;j{*Ibl4eMg~^+@aW@5W$U&EH;bx=qWB?R3FBoRnVJm~ItE_FMRmD|`?re; zI!);4+rmb5^79Uo^%Blb_DqPB)d^^Wn)U%j{4k0o#oZn#sq4c}4g46dDb#;%;Awr4 z7?zw_l~-F}mLuw}#DV6@q%*>gMa7dP&(5oNDo4LE@CM%GA>i-jG>rB*SvM{f8QF~2 zxEVI8wAi^Fsg!iv)U8sIIMc7VL*ZryA3_Pr5az#Gm;#l~RNm%FVDQOnin`jVYmt7F zZhSwW4g$V;Z&fEMcihNdQdFX-)sG)b^SSr7{j}>>lp4=3msg@;VvcX>Q;hoE!Z4u7{`ZJ zl`6>=E$NTVEFDK|RhbfPrAWQ+=6hz@81B6Q(WO2HlvGlB%=f!Z?+sk4H7nRT%y)h1 zD3bLjyK-=1IqZm4X2y|a0wZJCGmcMmH`I^ell=|nnJaJxIeaESZV%>B@*pDkED_mD z)E>fYd>*&p3qp=*kRg5?t2xU?8~6II0=tG7{i(tX2uF z&j`MbGCE(@&im9}`V29i+wm~tEoDTD81o~n;#t(-i}(`vUSeKfW(FaWlcUV9H2z4P zQu^AI!@gMUX)GAWfzBKb#_GoLH9~kKRzHrfcQ+8fZ#0bI$zxc|t??UPdQgK{qaHP}XQ7 zZVKpXaNkkF$wP>LA10_Jlo$l|yG*Q(7FDu>R{Ug3_{|Bzr|P8ROjQ+q>+|>?<31s) zaq__9Sjgl~)lxQ!6BN&W6|L$uhSUAJ-HxHo7f&sSa~M_Jeu2$+3TKtL8W+a!(nK3J z>TZ9XM0$f={U&3$MBv|I8Gp@!{vIpw2i!sUJMj);_><1n@S_WI75Gsh@;jNQioC)P z#Ly9|Q83}KQrGd%93Fq6>%WpIe=9OtQ83EU8o+TcAq&xHb!{Ds{F8p#P98>>wtrTC zl5&5Z_;&wJyZ_+W`X^7ue`&il{@%bYt>ASsS_N5+U-C-@%;_5Vx`)4&uc}%S>r&T$ uaYYN|g8vs5C8!XgB3D%fS5<+lat^n*w5t-LssjEEe#^I-wWIv^Ht-*8X(%87 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..bf6d1ced504a4af09594ec59086c1c3b0751c44b GIT binary patch literal 2942 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 P<>CAu(SM!wFLCOBwYDvx literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.class new file mode 100644 index 0000000000000000000000000000000000000000..19b12483e143299a1edbc3ad2fdf65b036a78014 GIT binary patch literal 3829 zcmb_eYiu0V75?r%JZrNAVw^ONW5*^Tj_oyz^DvM#39(5+z>n6OI596X-o05*vb(d) z&gS8yX%WyuBZ?@hXvGhHKowOLg(N`KM!{4SLOfc2p_HnsstWZb^$)G8s;Z)XcV>2W z{K$_=SnIua&OP_s^L^*LXZFLZKYs^6A70Q966nhnE6Ge=FPBTYJ(ILeGha?x1;dg# zqikCzlH=ZFZ=sZ*O52rb4H1FWhxMbn@=KPbbyQk(E10%)*Xx4oivkJU$UTOhpO9AB zFpK;5-XkFH6S#iJES7D(Xiw<*ii|Qz^%oXcE{|tq$)@jAL6*yUP6{**I~nBlVlJ7s zEu)xA#c+ebno2P%iN})J_RNgT9O3A17l;+4J(VXirWlA|$wPUWv6Caxo-wm2fd=Jg z$!VjQ^&Tq4z(d|Nk5o!tIM=R?j!o?x-;)-&>A^tcvFXDM%!sjpOx`FO_I82r#;ys0 z$dH+p8rG1H8Wh*P9s+G~ti)F|vNX*ODjjZ9;YK}?}t`by$+u~?c0X8v! zOP{iCiQ^_^?Wfh{QCaVZqe)q}5t$-X*#_cRf#n)VSxb$AQ8Qi1%(zH*S(a(VaJNA3 zBAvEV1?6(P;+$eLW_2Z?_Cvanm)Qo~g~2$6KD zp42j2UtCq{t0<2PbOfq9kF)A|6lGXimO$&ZJQch2YV)8jy6)rhP)acr#(qU6wI8u( zjIzMy;s3j>@SJ*zP+GE>A@CMArzMXRSh2Ay2;5URZ|bfpxUz7}=8LN}jDY*sT4AD9Fv4 zz>y0BQxIN@UZQ?n45sTJN_)7X)ZbRq&k`iiZA0+>dhFHqc!lbkh@N@v&7Yon`R~gF zLZ#c(S07(UiySq4yULQvcGR>7O}>fzyrS~av#%b!(l9G<%Mu5BC9VNYMPJm%cI=sb z=6wy{B^tk?JM)&*vnLirH+Ecn=~DXFS9t@{X2r_L-RyD#D;G7zTU8*w{7Do4qljTO zG=B5)@m(821E1r#-hW=kXTAiuwp#UaXJq$wM)qrGWRG@6zOFc`Xsgi72&(}xh&rAG zJQ==>mJ4X*u=f7OXk$nB+gNu2ot$<>X`2i;_M|5xjlF5do}|4mQnfp#%`|PDZ@QhP zJD1pI3Om}Uf>yK~$*Lob7~91gQx zl+;y&i3(@OIG*Iwo-W?c^tp;~2pxpB^L2WB4jFJxLzF#;76A*;@HcKCzw8 zA&zz3Jr}X>9A_?)2FH4u75#=2b*1Y?Ob6&geOrNo?5UR7|LAy;7yL#lBt zj(Vx}Q%=Csg!2rp!*{TZ^Cq0(j%RuFbKLPfTJZvRe4k{zh;ICVg#XZiv7KqD->NQ* zCc-<86Al$2%#tF$yLiehPI1;w8P4MCoOQFHr%8mOt{dN60`A}Fp?+WvcyNH{KI(0e=14DbH%BNZCG1w7tB|*1orAm;8x|mcg~(qe;vZ33 zuh9D}rS)Ta{{-vt8oggfC(dCL&f^YTKnia;$nRx_%+D|200pD2rLsMVr--S;L4J~1 ztaoOoIP2s&ii0rY)jJ$SxMvgY@i>TaZJM1BI{MC1v-oGGKzohqjq~d*ge?Tfe zLN7jMn!mypd=e=9Rv-RW558OOlZ4amfevxMTlf&8xP@1}t)EhJbv_^T=N{;O5A^Ld z&}SUbBZ+s>`^L3klR#DMHm~R%UeVVtKz)U%e?!!t5%m?a@>}ls9Z~za57i8fdl;l4t{V!Ote-Zt^S+D;P{eLO_tLUVnHwpgy7a^oXB*4O#BmL)D Itq{KVKLw$Lc>n+a literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..d670a68cfc318b8aae9027333ba3b75092cc0cdc GIT binary patch literal 1160 zcma)5YflqF6g|^Iw_UbSD+nS!S``bzt_6Go8mRSCfrLtpi3u6nu`DjTO?Q{*zd}t4 z(ZnC%k22ob-SUu<_+@tQ%)RHFx%bTPKRk3hpwD{yVc(-?SQ{t>Qi&D40Aq_Yguu0aFah zft={ZM~0C?DeBF6qC6hTo6X3K9__5D$V1m);1NTDw_3t(FwFK!y-*#gT$B)V5@McV zqL+-biH|ir!BaAd=X9GkT z0rKB4GTp(Q!*@TCf1k-6!8@d!eNl7kd$ZV1TNFgE5ckk!<5Ghx;v<1 Jk=7WN{sI`x71#g( literal 0 HcmV?d00001 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 zcma)5T~8B16g@*LOP2*|5kwG0tdutNPw{7% zpcqZ`-5+JVJ0OIx8Xk6cX6`-ro^$8yuixK(0I1@zg8_zeTlW1R;#&8(>G(#eNc&pE zA&+)M?APt8A>v}yL6%`TEj>`(u9E)R-zr;FsV)9|F-cp_1Cc3_~Stwrycl&-kxw-Vq>&SzL8+g<&BLlyV^+=5UR{ zu`Us$c;bL{--MC>JdXKpE!1Y!#SPqaP-GalS8+1zVIB)qB-HEOp4qiRnnNfvOdWY_ zc~e;r30?1rpygr_w;U`n%>SS1hR~X~h4!!vpCL!W4=g~)lshh;9=eNZR1;g=CUt3$ zWaf3%j|1@{Obju4Oga(E;JuVm#E0}5#@1yJDNQ!q5T>JA9v( zkWDl6Z?b$o@hYtb=y5Pa=Q&z!QZ!3nud?_VZe?k9AKoXMHAZjOW-~%Y$kTq#*79&3 z1=fgc5Ph4NI&n=BLL1spXbPcCoVHHG2^DcEMM6s95EKcxut`>qkz+^xi1_?b zNJT{;!Hoky3Nhi;noq}}?YRs~;m{7MP0HO)LMJ3Yq@eq@YljaQ zdbNe4+OPS9n+|s^vlIHZYaK4)sdpKaBX1zGU|8012}>H%xU54(j^SQyktFjNnKs|H zUGXFu^@RV7_Z-1cYE!4CG+u z)S~{5xgUrD!)n6)BzNujO<%+l3{+faFp_3BGwEqS7B{e|;wHmRQc%LcbyTpzkev!I zgIf%xsoM4*M&qM@qSR2uwu(Cp+y760B7%ThBG9pe8f7Q8=enTCq+8GTP(vAp6v7%q zhWl1D5^hMn>3EUf7msW?(%c10sXqq&vFi#yrYmTy`D3^5cmc`rM1(_cpwnBU0i^wi z-bShRa=vQ4izaC?P0x}Q3Q~|{rRYOIl zmTtSg`Xfzo literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/serialver/SerialVer$3.class new file mode 100644 index 0000000000000000000000000000000000000000..9a5b3a72f400943c7d144ef6cd3d82d20d142f0a GIT binary patch literal 950 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 literal 0 HcmV?d00001 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 zcma)5U2oGc6g}?3vZkT!3LA{?jcoK|TUy>w5fU1kRH+?ELwi8t!Aq?)D7CA^oq&IZ z1Y+WWAHa`7TxZizS&;e=`}*eip8Ik9>-UeJ06J*fC@^@Tocck`({#f1$k$56sjnp; zi&P}1{(wi)>)5au*7J~|&}yRn*ApEn$*`zLQR=lRY(Eb@8@EgN=aG!`3x@agc`o!n z@Kf%`T!#LUP9hn0=kYX-8LT}u6h$zUTwKGVg9Ti7VWZ6OtUgbWs~8iu(vPG#oQ_XK z@|K^(f}z$|0gsP)5}EUb(=u&g*qWn8uS0Dqd0Z;_X{@Fx^|E%Adj`^(IX$JWPI!`v zA;U^eX(nxF|6?Gsk)<~7GBopsH8a}F3l8q%p^XO&%YTQ_lUjr#aq$T23`-e3`TmnY z&%tAC+VB`Q@`z_u;$jO=C@2pCk!ISe&!v@~Db$^)M88bJ=~$R_oFg?&0&x(TNfnK@ zcTEw5>q#k+J@X6%4XUy)gIJ{`uz}DcHFU8HpP_2R8u2*#EZ&$7Ck&hQM($8Ans*NC zqD{(MpjXGLRU<#L3iR1nB7c#rcd*D0l$)(@aGKjYYu0zTUou>URwu(V!W^JV=O*C^ zjb+qmH`Wc@%rIrFkY%{aSS8CMhFiEz|JKN7PIofKSL87{xXrI{T4%U-hK+yu`Y2(L j@vWX?FZo>5DYmJpK`{!HPm6YkJdAcwR@<~%H0PZ^r3fUy literal 0 HcmV?d00001 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 zcma)5U279T6g`u!-R^cxVzkxz-MX#GR^2vl5)n$NAf&cXi6Hne-Hge|W+v=Tiu$hv zMe)HO;ExjTY)c__!948Fy=Tw;m~-#`{`2z}fNexBDh%O3P2wcwc|PW57#pqAJT{7t zL@u(Ec%MrZwp}<3t7XiAFnVm_gRzlXG0dBx%)>28+bv^H=j{;xnN-p|XL#3~C7}C( zpYS;4Y7ifpOsYX=7Npfs@<}67ra%|dKS1R#pGCCI7 zYkr&xhDKK>JnivJTK^1mtSk&0Gu$z3lPrrNS6Y1<=}AsnHZInlqHIrjZBlj2vt0BU zmP)Q>+xGW9CZZTw?&20hR5q-s(VhqRxPyBx?lP>E1x-&lz|}$IMS0W5iba2@a&>KvFky+mr99j*Y30+)oXhyNp()!vMx4T4Eg&r3RgnMMYg+n+{ zjW)l*j~+c{=n^ji}k3vH$}1KQ{s6s4{MazUg!ZOs362TojxIqPEbo5 K^mb_K5B~xubr=T# literal 0 HcmV?d00001 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 zcma)7Yf}?f7=BI&WQhx=p+>9Lf+FTZNwM?-p;|B?Nu1eRf zOK&sl*>=^y5Eh7S$sL)kN~@AxT;DRvoH)Yj)X)H;HK?z(>rUGRvhG*BkY=bQq!Fhp^ zARA@7R!oq~VG{RKYy*z?Bsu(~qkW z3Z7Y`|5G=ma0C7{p7u3xT z(r{Zq^MlMUE^C+)&|9Zjv&!0-z!)2<-mK$mfq}Q>jXrcZ+mf!|*5ol2?VL5{P&DNP_8mF=gvc_3ZlL)?Rn`6Zn zu4mMAJcT4mhNEh_Vbip;OPpS+p$u8eX()3PH8Np&hGWU>2Vboae|#$ZFBTj3F5d7N;d+LrN!|R^u1K`?y%h z#NR)_2Ya}lIYeeP9se+%ZR`;=5$k6WEuedn>JHCytGx9xb4D)*rX7~X1YiiQagBZIY#1*(gfB}=#D$f>u zs1uCme9au(fcKV9N#7HYvmY)KC3u%0$2LMS4LkUu3BeFGtCV%6FSR9Jl?a%0m2lou lW*09`$YkDN{urf(%M;Y(zmPe%|ewp1nbMHB4?mhGS&yQaKX7N%(jA5eT23F1CzTf0>$C94s_?C3} zp72F$-&z&E&l|$m(8G}4<@?-nxZAMStGl8m8TwbY)?SxO+iR~@OAMLvS;nSp*=}Qz zAyxETUvgJgxD$v3k`bwSN@|9r<|(O3+#xB$;6`b4eQTpw+KzY_#v+P9+K#m$d@pF# z#7f}S9YIuyLd~&VTP`ug^OF^Zo}yP5I?~8!xWX_R%Ii{V;3|d~k_{mvFa|S!@iLQ_ zlPAG&&47-6QeC!Pu@>xAMe8lEIzlzZt8u5oTegbZn|*~)tByEs7`ToU>6JUS&yX+w z-&E+zN^;a{YU|~a!=bfDqWY0Fa0|CJ++`T~cV;Vr?bJm}$9+7|Fwrsh2*N-flMLFv zn&|pRhT(j%-J4FL93HBhO{XTQV_!k ztpg#@9Kp;|$uvg86Lm`NX_wE_R{``+9bxRORHr0h0X@_JRc1s<7{^VDlFAKjfDc5X z0CL|jJavdW2k(9&_dcCH#=Rp<(auaddx+UXEF6S+8cBK9A+SI@ON6<6jwy#1bazn2 JBCRnL{sM5o73}~3 literal 0 HcmV?d00001 diff --git a/libjava/classpath/tools/external/README b/libjava/classpath/tools/external/README new file mode 100644 index 00000000000..5f0cd1ab2b4 --- /dev/null +++ b/libjava/classpath/tools/external/README @@ -0,0 +1,9 @@ +ASM is a bytecode processing library used by GNU Classpath's rmic and +javah tools. It is not maintained as part of GNU Classpath, but is +imported into the repository for simpler builds. + +The ASM project pages are at http://asm.objectweb.org/ + +The currently imported version is ASM 2.2.3. The sources were checked +out of CVS using the ASM_2_2_3 tag. I've only imported a subset of +the whole checkout: namely, LICENSE.txt and the sources themselves. diff --git a/libjava/classpath/tools/external/asm/LICENSE.txt b/libjava/classpath/tools/external/asm/LICENSE.txt new file mode 100644 index 00000000000..d0cd82defe0 --- /dev/null +++ b/libjava/classpath/tools/external/asm/LICENSE.txt @@ -0,0 +1,28 @@ + + 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. diff --git a/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java b/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java new file mode 100644 index 00000000000..8226ae8cd7f --- /dev/null +++ b/libjava/classpath/tools/external/asm/org/objectweb/asm/AnnotationVisitor.java @@ -0,0 +1,88 @@ +/*** + * 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 annotation. The methods of this interface must be + * called in the following order: (visit | 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: + * + *

      • The constant pool from the original class is copied as is in + * the new class, which saves time. New constant pool entries will be added + * at the end if necessary, but unused constant pool entries won't be + * removed.
      • Methods that are not transformed are copied as + * is in the new class, directly from the original class bytecode (i.e. + * without emitting visit events for all the method instructions), which + * saves a lot of time. Untransformed methods are detected by the + * fact that the {@link ClassReader} receives {@link MethodVisitor} objects + * that come from a {@link ClassWriter} (and not from a custom + * {@link ClassAdapter} or any other {@link ClassVisitor} instance).
      • + *
      + * + * @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/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,11 +230,65 @@ 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. * diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java similarity index 79% rename from libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java rename to libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java index e712056ef98..e44b9011cfd 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/getopt/ClasspathToolParser.java +++ b/libjava/classpath/tools/gnu/classpath/tools/common/ClasspathToolParser.java @@ -36,11 +36,14 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.classpath.tools.getopt; +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 @@ -63,11 +66,22 @@ public class ClasspathToolParser public ClasspathToolParser(String programName) { - super(programName, getVersionString(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/rmi/Persistent.java b/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java rename to libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java index 5cd1efe91f7..5a2b48a8ddc 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/Persistent.java +++ b/libjava/classpath/tools/gnu/classpath/tools/common/Persistent.java @@ -35,7 +35,7 @@ this exception to your version of the library, 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; +package gnu.classpath.tools.common; import java.util.Timer; import java.util.TimerTask; 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,11 +85,33 @@ 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,12 +171,37 @@ 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; + } + /** * Return the short name of the option, or \0 if none. */ @@ -187,6 +243,16 @@ public abstract class Option return description; } + /** + * 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 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); @@ -229,6 +222,18 @@ public class Parser defaultGroup.add(opt); } + /** + * 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 - { - Option found = null; - for (int i = options.size() - 1; i >= 0; --i) - { - Option opt = (Option) options.get(i); - if (option == 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) + for (int charIndex = 1; charIndex < option.length(); ++charIndex) { - handleShortOption(option.charAt(i)); + char optChar = option.charAt(charIndex); + Option found = null; + for (int i = options.size() - 1; i >= 0; --i) + { + 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[] { "" + 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/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/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/giop/nameservice/PersistentContext.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java similarity index 99% rename from libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContext.java rename to libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java index 9f0903f0ab8..9b4f27a3d7d 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContext.java +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContext.java @@ -36,7 +36,7 @@ exception statement from your version. */ -package gnu.classpath.tools.giop.nameservice; +package gnu.classpath.tools.orbd; import gnu.CORBA.NamingService.NameTransformer; import gnu.CORBA.NamingService.TransientContext; diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java rename to libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java index ce0188cf2b1..e983ef30f7a 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentContextMap.java +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentContextMap.java @@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.classpath.tools.giop.nameservice; +package gnu.classpath.tools.orbd; import java.io.File; diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java similarity index 99% rename from libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java rename to libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java index 6939ede17c2..6c6164d21f4 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/nameservice/PersistentMap.java +++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java @@ -36,7 +36,7 @@ exception statement from your version. */ -package gnu.classpath.tools.giop.nameservice; +package gnu.classpath.tools.orbd; import gnu.CORBA.NamingService.NamingMap; 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/rmic/RmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java deleted file mode 100644 index bc51aad38b9..00000000000 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmicCompiler.java +++ /dev/null @@ -1,171 +0,0 @@ -/* RmicCompiler.java -- RMI stub generator for java.rmi.* - 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. -*/ - - -package gnu.classpath.tools.rmi.rmic; - -import java.lang.reflect.Method; -import java.util.Iterator; - -import gnu.classpath.tools.AbstractMethodGenerator; -import gnu.classpath.tools.giop.grmic.GiopRmicCompiler; - -/** - * RMI stub source code generator, required to support java.rmi.* - * - * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) - */ -public class RmicCompiler extends GiopRmicCompiler -{ - /** - * If true, the zero size object array is declared in the stub to reduce - * garbage generation. - */ - public boolean addZeroSizeObjecArray; - - /** - * Generate a RMI stub. - * - * @return the string, containing the text of the generated stub. - */ - public String generateStub() - { - String template = getResource("Stub_12.jav"); - - // Generate methods. - StringBuffer b = new StringBuffer(); - Iterator iter = methods.iterator(); - while (iter.hasNext()) - { - RmiMethodGenerator m = (RmiMethodGenerator) iter.next(); - b.append(m.generateStubMethod()); - } - - vars.put("#stub_methods", b.toString()); - vars.put("#imports", getImportStatements()); - vars.put("#interfaces", getAllInterfaces()); - vars.put("#stub_method_declarations", getStubMethodDeclarations()); - vars.put("#stub_method_initializations", getStubMethodInitializations()); - if (addZeroSizeObjecArray) - { - vars.put("#zeroSizeObjecArray", - "private static final Object[] NO_ARGS = new Object[0];"); - vars.put("#zeroSizeClassArray", - "final Class[] NO_ARGSc = new Class[0];"); - } - else - { - vars.put("#zeroSizeObjecArray",""); - vars.put("#zeroSizeClassArray",""); - } - - String output = replaceAll(template, vars); - return output; - } - - /** - * Create a method generator, applicable for RMI stub methods. - */ - protected AbstractMethodGenerator createMethodGenerator(Method m) - { - return new RmiMethodGenerator(m, this); - } - - /** - * Get the stub method declarations. - */ - public String getStubMethodDeclarations() - { - StringBuffer b = new StringBuffer(); - - Iterator iter = methods.iterator(); - - while (iter.hasNext()) - { - RmiMethodGenerator method = (RmiMethodGenerator) iter.next(); - b.append(" "); - b.append("private static final Method met_"); - b.append(method.method.getName()); - b.append(';'); - if (iter.hasNext()) - b.append('\n'); - } - return b.toString(); - } - - /** - * Get stub method initializations. These must be done in a try-catch - * statement to catch {@link NoSuchMethodException}. - */ - public String getStubMethodInitializations() - { - StringBuffer b = new StringBuffer(); - - Iterator iter = methods.iterator(); - - while (iter.hasNext()) - { - RmiMethodGenerator method = (RmiMethodGenerator) iter.next(); - b.append(" "); - b.append("met_"); - b.append(method.method.getName()); - b.append(" =\n "); - b.append(name(method.method.getDeclaringClass())); - b.append(".class.getMethod("); - b.append('"'); - b.append(method.method.getName()); - b.append("\", "); - if (method.method.getParameterTypes().length == 0) - b.append("NO_ARGSc);"); - else - { - b.append("new Class[]\n {\n "); - b.append(method.getArgListAsClassArray()); - b.append("\n }"); - b.append(");"); - } - b.append('\n'); - } - return b.toString(); - } - - /** - * Prepare for the compilation of the next class. - */ - public void reset() - { - addZeroSizeObjecArray = false; - super.reset(); - } - - /** - * Additional processing of the stub name (nothing to do for JRMP stubs). - */ - public String convertStubName(String name) - { - return name; - } -} diff --git a/libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java index d82284988e9..492566a80f6 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/AbstractMethodGenerator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/AbstractMethodGenerator.java @@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.classpath.tools; +package gnu.classpath.tools.rmic; public interface AbstractMethodGenerator { diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java new file mode 100644 index 00000000000..9c50efa8ff9 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java @@ -0,0 +1,1824 @@ +/* ClassRmicCompiler.java -- + Copyright (c) 1996, 1997, 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. */ + +package gnu.classpath.tools.rmic; + +import gnu.java.rmi.server.RMIHashes; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.File; +import java.io.FileOutputStream; +import java.io.FileWriter; +import java.io.IOException; +import java.io.ObjectInput; +import java.io.ObjectOutput; +import java.io.PrintWriter; +import java.lang.reflect.Method; +import java.net.URL; +import java.net.URLClassLoader; +import java.rmi.MarshalException; +import java.rmi.Remote; +import java.rmi.RemoteException; +import java.rmi.UnexpectedException; +import java.rmi.UnmarshalException; +import java.rmi.server.Operation; +import java.rmi.server.RemoteCall; +import java.rmi.server.RemoteObject; +import java.rmi.server.RemoteRef; +import java.rmi.server.RemoteStub; +import java.rmi.server.Skeleton; +import java.rmi.server.SkeletonMismatchException; +import java.security.MessageDigest; +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; +import org.objectweb.asm.ClassVisitor; +import org.objectweb.asm.ClassWriter; +import org.objectweb.asm.MethodVisitor; +import org.objectweb.asm.Opcodes; +import org.objectweb.asm.Label; +import org.objectweb.asm.Type; + +public class ClassRmicCompiler + implements RmicBackend +{ + private String[] args; + private int next; + private List errors = new ArrayList(); + private boolean keep = false; + private boolean need11Stubs = true; + private boolean need12Stubs = true; + private boolean compile = true; + private boolean verbose; + private boolean noWrite; + private String destination; + private String classpath; + private ClassLoader loader; + private int errorCount = 0; + + private Class clazz; + private String classname; + private String classInternalName; + private String fullclassname; + private MethodRef[] remotemethods; + private String stubname; + private String skelname; + private List mRemoteInterfaces; + + /** + * @return true if run was successful + */ + public boolean run(String[] inputFiles) + { + args = inputFiles; + + if (next >= 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/giop/grmic/CompilationError.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java similarity index 97% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java index d1fa814ee38..176a09598d2 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/CompilationError.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/CompilationError.java @@ -19,7 +19,7 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package gnu.classpath.tools.giop.grmic; +package gnu.classpath.tools.rmic; /** * This error is thrown when the target being compiled has illegal diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java index 17ab821ecc9..64eb2eaf66c 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/Generator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java @@ -19,7 +19,7 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package gnu.classpath.tools.giop.grmic; +package gnu.classpath.tools.rmic; import java.io.BufferedReader; import java.io.IOException; diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java similarity index 96% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java index 0e0df7bc57a..0d77d1a787e 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/GiopIo.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/GiopIo.java @@ -19,7 +19,7 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package gnu.classpath.tools.giop.grmic; +package gnu.classpath.tools.rmic; import java.rmi.Remote; @@ -44,7 +44,7 @@ public class GiopIo * the parent generator, used to name the class * @return the write statement. */ - public static String getWriteStatement(Class c, String variable, GiopRmicCompiler r) + public static String getWriteStatement(Class c, String variable, SourceGiopRmicCompiler r) { if (c.equals(boolean.class)) return "out.write_boolean(" + variable + ");"; @@ -80,7 +80,7 @@ public class GiopIo * the parent generator, used to name the class * @return the right side of the read statement. */ - public static String getReadStatement(Class c, GiopRmicCompiler r) + public static String getReadStatement(Class c, SourceGiopRmicCompiler r) { if (c.equals(boolean.class)) return "in.read_boolean();"; diff --git a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java index 2efdb1e76de..cf4d67f0cc0 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/HashFinder.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/HashFinder.java @@ -20,7 +20,7 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA */ -package gnu.classpath.tools.giop.grmic; +package gnu.classpath.tools.rmic; import java.util.HashSet; 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/giop/grmic/MethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java similarity index 97% rename from libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java index 80148d51aff..335a0a65c30 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/giop/grmic/MethodGenerator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java @@ -19,9 +19,9 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -package gnu.classpath.tools.giop.grmic; +package gnu.classpath.tools.rmic; -import gnu.classpath.tools.AbstractMethodGenerator; +import gnu.classpath.tools.rmic.AbstractMethodGenerator; import java.lang.reflect.Method; import java.util.Properties; @@ -42,7 +42,7 @@ public class MethodGenerator implements AbstractMethodGenerator /** * The parent code generator. */ - GiopRmicCompiler rmic; + SourceGiopRmicCompiler rmic; /** * The previous method in the list, null for the first element. @@ -64,7 +64,7 @@ public class MethodGenerator implements AbstractMethodGenerator * the Rmic generator instance, where more class - related * information is defined. */ - public MethodGenerator(Method aMethod, GiopRmicCompiler aRmic) + public MethodGenerator(Method aMethod, SourceGiopRmicCompiler aRmic) { method = aMethod; rmic = aRmic; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java new file mode 100644 index 00000000000..300d60947d7 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RMICException.java @@ -0,0 +1,54 @@ +/* RMICException.java -- + Copyright (c) 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. */ + + +package gnu.classpath.tools.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 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/rmi/rmic/RmiMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java similarity index 97% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java index 8da486571ce..48abb8fade9 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/RmiMethodGenerator.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java @@ -25,9 +25,9 @@ */ -package gnu.classpath.tools.rmi.rmic; +package gnu.classpath.tools.rmic; -import gnu.classpath.tools.AbstractMethodGenerator; +import gnu.classpath.tools.rmic.AbstractMethodGenerator; import gnu.java.rmi.server.RMIHashes; import java.lang.reflect.Method; @@ -50,7 +50,7 @@ public class RmiMethodGenerator /** * The parent code generator. */ - RmicCompiler rmic; + SourceRmicCompiler rmic; /** * Create the new method generator for the given method. @@ -59,7 +59,7 @@ public class RmiMethodGenerator * @param aRmic the Rmic generator instance, where more class - related * information is defined. */ - public RmiMethodGenerator(Method aMethod, RmicCompiler aRmic) + public RmiMethodGenerator(Method aMethod, SourceRmicCompiler aRmic) { method = aMethod; rmic = aRmic; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java new file mode 100644 index 00000000000..60eb854ca4c --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmicBackend.java @@ -0,0 +1,31 @@ +/* RmicBackend.java -- + Copyright (c) 1996, 1997, 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. */ + +package gnu.classpath.tools.rmic; +public interface RmicBackend +{ + 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); + + boolean run(String[] inputFiles); +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java new file mode 100644 index 00000000000..e9b7bff0b7e --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java @@ -0,0 +1,694 @@ +/* SourceGiopRmicCompiler -- 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.rmic; + +import gnu.classpath.tools.rmic.AbstractMethodGenerator; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +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 SourceGiopRmicCompiler + extends Generator implements Comparator, RmicBackend +{ + /** 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; + + /** + * If this flag is set (false by default), the compiler does not + * write output files. + */ + protected boolean noWrite = false; + + /** + * If this flag is set (false by default), the compiler keeps source + * output files. For SourceGiopRmicCompiler this overrides + * -nowrite, since -nowrite doesn't apply to sources kept with + * -keep. + */ + protected boolean keep = false; + + /** + * Verbose output + */ + protected boolean verbose = false; + + /** + * Force mode - do not check the exceptions + */ + protected boolean force = false; + + /** + * The output directory for generated files. + */ + protected String outputDirectory; + + /** + * 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; + } + + /** + * Assumes that output directory is already created. + */ + protected boolean outputTie(File fw, Class c) + { + try + { + String tie = generateTie(); + String tieName = "_" + name(c) + "_Tie.java"; + + OutputStream 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(); + return false; + } + return true; + } + + 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) + { + setWarnings(warnings); + setVerbose(verbose); + setForce(force); + setClassPath(classpath); + setPoaMode(poa); + this.outputDirectory = outputDirectory; + this.noWrite = noWrite; + this.keep = keep; + } + + public boolean run(String[] inputFiles) + { + for (int i = 0; i < inputFiles.length; i++) + { + reset(); + Class c = loadClass(inputFiles[i]); + + compile(c); + String packag = getPackageName().replace('.', '/'); + File fw = new File(outputDirectory, packag); + + // Generate stub. + String stub = generateStub(); + String subName = getStubName() + "_Stub.java"; + + // -keep overrides -nowrite for sources. + if (!noWrite || keep) + { + try + { + fw.mkdirs(); + OutputStream out = new FileOutputStream(new File(fw, + subName)); + out.write(stub.getBytes()); + out.close(); + + // Generate tie + if (!outputTie(fw, c)) + return false; + } + catch (IOException ioex) + { + System.err.println("Output path not accessible"); + ioex.printStackTrace(); + return false; + } + } + } + return true; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java new file mode 100644 index 00000000000..3779c5d28fb --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java @@ -0,0 +1,179 @@ +/* SourceRmicCompiler.java -- RMI stub generator for java.rmi.* + 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. +*/ + + +package gnu.classpath.tools.rmic; + +import java.lang.reflect.Method; +import java.io.File; +import java.util.Iterator; + +import gnu.classpath.tools.rmic.AbstractMethodGenerator; + +/** + * RMI stub source code generator, required to support java.rmi.* + * + * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) + */ +public class SourceRmicCompiler extends SourceGiopRmicCompiler +{ + /** + * If true, the zero size object array is declared in the stub to reduce + * garbage generation. + */ + public boolean addZeroSizeObjecArray; + + /** + * Generate a RMI stub. + * + * @return the string, containing the text of the generated stub. + */ + public String generateStub() + { + String template = getResource("Stub_12.jav"); + + // Generate methods. + StringBuffer b = new StringBuffer(); + Iterator iter = methods.iterator(); + while (iter.hasNext()) + { + RmiMethodGenerator m = (RmiMethodGenerator) iter.next(); + b.append(m.generateStubMethod()); + } + + vars.put("#stub_methods", b.toString()); + vars.put("#imports", getImportStatements()); + vars.put("#interfaces", getAllInterfaces()); + vars.put("#stub_method_declarations", getStubMethodDeclarations()); + vars.put("#stub_method_initializations", getStubMethodInitializations()); + if (addZeroSizeObjecArray) + { + vars.put("#zeroSizeObjecArray", + "private static final Object[] NO_ARGS = new Object[0];"); + vars.put("#zeroSizeClassArray", + "final Class[] NO_ARGSc = new Class[0];"); + } + else + { + vars.put("#zeroSizeObjecArray",""); + vars.put("#zeroSizeClassArray",""); + } + + String output = replaceAll(template, vars); + return output; + } + + /** + * Create a method generator, applicable for RMI stub methods. + */ + protected AbstractMethodGenerator createMethodGenerator(Method m) + { + return new RmiMethodGenerator(m, this); + } + + /** + * Get the stub method declarations. + */ + public String getStubMethodDeclarations() + { + StringBuffer b = new StringBuffer(); + + Iterator iter = methods.iterator(); + + while (iter.hasNext()) + { + RmiMethodGenerator method = (RmiMethodGenerator) iter.next(); + b.append(" "); + b.append("private static final Method met_"); + b.append(method.method.getName()); + b.append(';'); + if (iter.hasNext()) + b.append('\n'); + } + return b.toString(); + } + + /** + * Get stub method initializations. These must be done in a try-catch + * statement to catch {@link NoSuchMethodException}. + */ + public String getStubMethodInitializations() + { + StringBuffer b = new StringBuffer(); + + Iterator iter = methods.iterator(); + + while (iter.hasNext()) + { + RmiMethodGenerator method = (RmiMethodGenerator) iter.next(); + b.append(" "); + b.append("met_"); + b.append(method.method.getName()); + b.append(" =\n "); + b.append(name(method.method.getDeclaringClass())); + b.append(".class.getMethod("); + b.append('"'); + b.append(method.method.getName()); + b.append("\", "); + if (method.method.getParameterTypes().length == 0) + b.append("NO_ARGSc);"); + else + { + b.append("new Class[]\n {\n "); + b.append(method.getArgListAsClassArray()); + b.append("\n }"); + b.append(");"); + } + b.append('\n'); + } + return b.toString(); + } + + /** + * Prepare for the compilation of the next class. + */ + public void reset() + { + addZeroSizeObjecArray = false; + super.reset(); + } + + /** + * Additional processing of the stub name (nothing to do for JRMP stubs). + */ + public String convertStubName(String name) + { + return name; + } + + /** + * Override to do nothing. + */ + protected boolean outputTie(File fw, Class c) + { + return true; + } +} diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java new file mode 100644 index 00000000000..bddf5f78377 --- /dev/null +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Variables.java @@ -0,0 +1,137 @@ +/* Variables.java -- + 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., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. */ + +package gnu.classpath.tools.rmic; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; + +class Variables +{ + private final HashSet free = new HashSet(); + private final HashMap names = new HashMap(); + private final HashSet wides = new HashSet(); + private final HashSet declared = new HashSet(); + private boolean allocated = false; + + public void declare(Object name) + { + declare(name, 1); + } + + public void declareWide(Object name) + { + declare(name, 2); + } + + public void declare(Object name, int size) + { + if (allocated) + throw new IllegalStateException("cannot declare after allocating"); + if (size != 1 && size != 2) + throw new IllegalArgumentException("size must be 1 or 2"); + if (names.containsKey(name)) + throw new IllegalStateException("already allocated " + name); + + allocateNew(name, size); + declared.add(name); + } + + private int allocateNew(Object name, int size) + { + // total allocation size is first unallocated slot + int i = free.size() + names.size() + wides.size(); + names.put(name, new Integer(i)); + if (size == 2) wides.add(name); + return i; + } + + public int allocate(Object name) + { + return allocate(name, 1); + } + + public int allocateWide(Object name) + { + return allocate(name, 2); + } + + public int allocate(Object name, int size) + { + allocated = true; + if (size != 1 && size != 2) + throw new IllegalArgumentException("size must be 1 or 2"); + if (names.containsKey(name)) + throw new IllegalStateException("already allocated " + name); + + if (size == 2) + { + // look for consecutive free slots + for (Iterator it = free.iterator(); it.hasNext(); ) + { + Integer i = (Integer) it.next(); + Integer next = new Integer(i.intValue() + 1); + if (free.contains(next)) + { + free.remove(i); + free.remove(next); + wides.add(name); + names.put(name, i); + return i.intValue(); + } + } + } + else if (free.size() > 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/rmi/rmic/WrapUnWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java rename to libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java index 8ee4fa5f26d..c51925fa6b9 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmic/WrapUnWrapper.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/WrapUnWrapper.java @@ -20,7 +20,7 @@ Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA */ -package gnu.classpath.tools.rmi.rmic; +package gnu.classpath.tools.rmic; public class WrapUnWrapper 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/rmi/rmid/ActivationSystemImpl.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl.java rename to libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java index dda40b06c02..390117a0527 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl.java @@ -35,10 +35,9 @@ this exception to your version of the library, 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.rmid; +package gnu.classpath.tools.rmid; -import gnu.classpath.tools.rmi.Persistent; -import gnu.classpath.tools.rmi.PersistentBidiHashTable; +import gnu.classpath.tools.common.Persistent; import gnu.java.rmi.activation.ActivationSystemTransient; import java.io.File; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java similarity index 99% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java rename to libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java index 22fa10e4be2..535f8ab92ac 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/rmid/ActivationSystemImpl_Stub.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/ActivationSystemImpl_Stub.java @@ -36,7 +36,7 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -package gnu.classpath.tools.rmi.rmid; +package gnu.classpath.tools.rmid; import java.rmi.MarshalledObject; import java.rmi.RemoteException; 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/rmi/PersistentBidiHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java similarity index 98% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java rename to libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java index 94b5bcbeeb7..d213373d5ff 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentBidiHashTable.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmid/PersistentBidiHashTable.java @@ -35,9 +35,10 @@ this exception to your version of the library, 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; +package gnu.classpath.tools.rmid; -import gnu.classpath.tools.rmi.rmid.ActivationSystemImpl; +import gnu.classpath.tools.common.Persistent; +import gnu.classpath.tools.rmid.ActivationSystemImpl; import gnu.java.rmi.activation.BidiTable; import java.io.BufferedInputStream; 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/rmi/PersistentHashTable.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java similarity index 92% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java rename to libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java index 925e829ffd0..89d66ce4ad7 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/PersistentHashTable.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/PersistentHashTable.java @@ -35,7 +35,9 @@ this exception to your version of the library, 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; +package gnu.classpath.tools.rmiregistry; + +import gnu.classpath.tools.common.Persistent; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; @@ -127,26 +129,40 @@ public class PersistentHashTable 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; } diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java similarity index 94% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java rename to libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java index 90bd3a6bdac..b93d3c1169e 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl.java @@ -36,10 +36,9 @@ this exception to your version of the library, 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; +package gnu.classpath.tools.rmiregistry; -import gnu.classpath.tools.rmi.Persistent; -import gnu.classpath.tools.rmi.REGISTRY; +import gnu.classpath.tools.common.Persistent; import java.rmi.AccessException; import java.rmi.AlreadyBoundException; @@ -85,7 +84,7 @@ public class RegistryImpl implements Registry public void bind(String name, Remote obj) throws RemoteException, AlreadyBoundException, AccessException { - if (REGISTRY.verbose) + if (Main.verbose) System.out.println("Bind "+name); if (bindings.containsKey(name)) throw new AlreadyBoundException(name); @@ -96,7 +95,7 @@ public class RegistryImpl implements Registry public void unbind(String name) throws RemoteException, NotBoundException, AccessException { - if (name.equals(REGISTRY.STOP)) + if (name.equals(Main.STOP)) { if (bindings instanceof Persistent) ((Persistent) bindings).writeContent(); @@ -106,7 +105,7 @@ public class RegistryImpl implements Registry } else { - if (REGISTRY.verbose) + if (Main.verbose) System.out.println("Unbind "+name); if (!bindings.containsKey(name)) @@ -120,7 +119,7 @@ public class RegistryImpl implements Registry public void rebind(String name, Remote obj) throws RemoteException, AccessException { - if (REGISTRY.verbose) + if (Main.verbose) System.out.println("Rebind "+name); bindings.put(name, obj); } diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java similarity index 99% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java rename to libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java index 36b7d94a595..5150debd1de 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Skel.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Skel.java @@ -36,7 +36,7 @@ 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; +package gnu.classpath.tools.rmiregistry; import java.io.IOException; import java.io.ObjectInput; diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java similarity index 99% rename from libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java rename to libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java index d8cac5bfcb3..94d35e92fb3 100644 --- a/libjava/classpath/tools/gnu/classpath/tools/rmi/registry/RegistryImpl_Stub.java +++ b/libjava/classpath/tools/gnu/classpath/tools/rmiregistry/RegistryImpl_Stub.java @@ -35,7 +35,7 @@ this exception to your version of the library, 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; +package gnu.classpath.tools.rmiregistry; import java.rmi.AccessException; import java.rmi.AlreadyBoundException; 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 index 76be558dcd4..916f9593087 100644 --- a/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java +++ b/libjava/classpath/vm/reference/gnu/java/net/VMPlainSocketImpl.java @@ -38,15 +38,16 @@ 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.SocketAddress; +import java.net.NetworkInterface; import java.net.SocketException; -import java.net.SocketImpl; import java.net.SocketOptions; -import java.net.UnknownHostException; import gnu.classpath.Configuration; +import gnu.java.nio.VMChannel; /** * The VM interface for {@link gnu.java.net.PlainSocketImpl}. @@ -56,6 +57,12 @@ import gnu.classpath.Configuration; */ 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. */ @@ -66,249 +73,440 @@ public final class VMPlainSocketImpl 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 + + public VMPlainSocketImpl() { - byte[] buf = new byte[1]; - if (read(socket, buf, 0, 1) > 0) - return buf[0] & 0xFF; - else - return -1; + // 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; } - /** - * 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. + /** This method exists to hide the CP_IP_TTL value from + * higher levels. * - * @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 + * Always think of JNode ... :) */ - 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 + public void setTimeToLive(int ttl) + throws SocketException { - 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); + setOption(nfd.getNativeFD(), CP_IP_TTL, ttl); } - finally + catch (IOException ioe) { - if (oldTimeoutObj != null) - setOption(socket, SocketOptions.SO_TIMEOUT, oldTimeoutObj); + SocketException se = new SocketException(); + se.initCause(ioe); + throw se; } } - /** - * 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) + public int getTimeToLive() + throws SocketException { - throw new InternalError ("PlainSocketImpl::sendUrgentData not implemented"); + 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; + /** + * Our reference implementation uses an integer to store the native + * file descriptor. Implementations without such support + */ + private final State nfd; - private VMChannel(int fd) + private Kind kind; + + public VMChannel() { - this.fd = fd; + // XXX consider adding security check here, so only Classpath + // code may create instances. + this.nfd = new State(); + kind = Kind.OTHER; } - public static VMChannel getVMChannel(PlainSocketImpl socket) + /** + * 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(socket.getNativeFD()); + this(); + this.nfd.setNativeFD(native_fd); } - public static VMChannel getVMChannel(SourceChannelImpl source) + public State getState() { - return new VMChannel(source.getNativeFD()); - } - - public static VMChannel getVMChannel(SinkChannelImpl sink) - { - return new VMChannel(sink.getNativeFD()); - } - - public static VMChannel getVMChannel(FileChannelImpl file) - { - 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) + public void setBlocking(boolean blocking) throws IOException { - setBlocking(fd, blocking); + setBlocking(nfd.getNativeFD(), blocking); } + private static native void setBlocking(int fd, boolean blocking) + throws IOException; + + public int available() throws IOException + { + 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(fd, dsts, offset, 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); + } + + 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 { @@ -55,42 +52,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 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 @@ -15129,13 +15352,14 @@ 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; - /* FIXME: avoid using a buffer here */ + if (! rewrite) + { + pool_data[index].utf8 = _Jv_makeUtf8Const (s, len); + break; + } + + // 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/gnu/java/nio/FileLockImpl.java b/libjava/gnu/java/nio/FileLockImpl.java new file mode 100644 index 00000000000..673ca2522df --- /dev/null +++ b/libjava/gnu/java/nio/FileLockImpl.java @@ -0,0 +1,104 @@ +/* FileLockImpl.java -- FileLock associated with a FileChannelImpl. + Copyright (C) 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.nio; + +import gnu.java.nio.channels.FileChannelImpl; + +import java.io.IOException; +import java.nio.channels.FileLock; + +/** + * A FileLock associated with a FileChannelImpl. + * + * @author Michael Koch + * @since 1.4 + */ +public final class FileLockImpl extends FileLock +{ + /** + * Whether or not this lock is valid, false when channel is closed or + * release has been explicitly called. + */ + private boolean valid; + + public FileLockImpl (FileChannelImpl channel, long position, + long size, boolean shared) + { + super (channel, position, size, shared); + valid = true; + } + + /** + * Releases this lock. + */ + protected void finalize() + { + try + { + release(); + } + catch (IOException e) + { + // Ignore this. + } + } + + /** + * Whether or not this lock is valid, false when channel is closed or + * release has been explicitly called. + */ + public boolean isValid() + { + if (valid) + valid = channel().isOpen(); + return valid; + } + + /** + * Releases the lock if it is still valid. Marks this lock as invalid. + */ + public void release() throws IOException + { + if (isValid()) + { + valid = false; + ((FileChannelImpl) channel()).unlock(position(), size()); + } + } +} 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/gnu/java/nio/NIOSocket.java b/libjava/gnu/java/nio/NIOSocket.java new file mode 100644 index 00000000000..4d812bf44ba --- /dev/null +++ b/libjava/gnu/java/nio/NIOSocket.java @@ -0,0 +1,77 @@ +/* NIOSocket.java -- + 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.nio; + +import gnu.java.net.PlainSocketImpl; +import java.io.IOException; +import java.net.Socket; +import java.nio.channels.SocketChannel; + +/** + * @author Michael Koch + */ +public final class NIOSocket extends Socket +{ + private PlainSocketImpl impl; + private SocketChannelImpl channel; + + protected NIOSocket (PlainSocketImpl impl, SocketChannelImpl channel) + throws IOException + { + super (impl); + this.impl = impl; + this.channel = channel; + } + + public final PlainSocketImpl getPlainSocketImpl() + { + return impl; + } + + final void setChannel (SocketChannelImpl channel) + { + this.impl = channel.getPlainSocketImpl(); + this.channel = channel; + } + + public final SocketChannel getChannel() + { + return channel; + } +} 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/gnu/java/nio/PipeImpl.java b/libjava/gnu/java/nio/PipeImpl.java new file mode 100644 index 00000000000..cccaa39885f --- /dev/null +++ b/libjava/gnu/java/nio/PipeImpl.java @@ -0,0 +1,178 @@ +/* PipeImpl.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 gnu.java.nio; + + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.Pipe; +import java.nio.channels.spi.SelectorProvider; + +class PipeImpl extends Pipe +{ + public static final class SourceChannelImpl extends Pipe.SourceChannel + { + private int native_fd; + private VMChannel vmch; + + public SourceChannelImpl (SelectorProvider selectorProvider, + int native_fd) + { + super (selectorProvider); + this.native_fd = native_fd; + vmch = VMChannel.getVMChannel(this); + } + + protected final void implCloseSelectableChannel() + throws IOException + { + throw new Error ("Not implemented"); + } + + protected void implConfigureBlocking (boolean blocking) + throws IOException + { + vmch.setBlocking(blocking); + } + + public final int read (ByteBuffer src) + throws IOException + { + return vmch.read(src); + } + + public final long read (ByteBuffer[] srcs) + throws IOException + { + return vmch.readScattering(srcs, 0, srcs.length); + } + + public final synchronized long read (ByteBuffer[] srcs, int offset, + int len) + throws IOException + { + if (offset < 0 + || offset > srcs.length + || len < 0 + || len > srcs.length - offset) + throw new IndexOutOfBoundsException(); + + return vmch.readScattering(srcs, offset, len); + } + + public final int getNativeFD() + { + return native_fd; + } + } + + public static final class SinkChannelImpl extends Pipe.SinkChannel + { + private int native_fd; + private VMChannel vmch; + + public SinkChannelImpl (SelectorProvider selectorProvider, + int native_fd) + { + super (selectorProvider); + this.native_fd = native_fd; + vmch = VMChannel.getVMChannel(this); + } + + protected final void implCloseSelectableChannel() + throws IOException + { + throw new Error ("Not implemented"); + } + + protected final void implConfigureBlocking (boolean blocking) + throws IOException + { + vmch.setBlocking(blocking); + } + + public final int write (ByteBuffer dst) + throws IOException + { + return vmch.write(dst); + } + + public final long write (ByteBuffer[] srcs) + throws IOException + { + return vmch.writeGathering(srcs, 0, srcs.length); + } + + public final synchronized long write (ByteBuffer[] srcs, int offset, int len) + throws IOException + { + if (offset < 0 + || offset > srcs.length + || len < 0 + || len > srcs.length - offset) + throw new IndexOutOfBoundsException(); + + return vmch.writeGathering(srcs, offset, len); + } + + public final int getNativeFD() + { + return native_fd; + } + } + + private SinkChannelImpl sink; + private SourceChannelImpl source; + + public PipeImpl (SelectorProvider provider) + throws IOException + { + super(); + VMPipe.init (this, provider); + } + + public Pipe.SinkChannel sink() + { + return sink; + } + + public Pipe.SourceChannel source() + { + return source; + } +} 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/gnu/java/nio/SelectorProviderImpl.java b/libjava/gnu/java/nio/SelectorProviderImpl.java new file mode 100644 index 00000000000..47521107e90 --- /dev/null +++ b/libjava/gnu/java/nio/SelectorProviderImpl.java @@ -0,0 +1,83 @@ +/* SelectorProviderImpl.java -- + Copyright (C) 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 gnu.java.nio; + +import java.io.IOException; +import java.nio.channels.DatagramChannel; +import java.nio.channels.Pipe; +import java.nio.channels.ServerSocketChannel; +import java.nio.channels.SocketChannel; +import java.nio.channels.spi.AbstractSelector; +import java.nio.channels.spi.SelectorProvider; + +public class SelectorProviderImpl extends SelectorProvider +{ + public SelectorProviderImpl () + { + } + + public DatagramChannel openDatagramChannel () + throws IOException + { + return new DatagramChannelImpl (this); + } + + public Pipe openPipe () + throws IOException + { + return new PipeImpl (this); + } + + public AbstractSelector openSelector () + throws IOException + { + return new SelectorImpl (this); + } + + public ServerSocketChannel openServerSocketChannel () + throws IOException + { + return new ServerSocketChannelImpl (this); + } + + public SocketChannel openSocketChannel () + throws IOException + { + return new SocketChannelImpl (this); + } +} 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/gnu/java/nio/SocketChannelSelectionKeyImpl.java b/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.java new file mode 100644 index 00000000000..30fb2dfba44 --- /dev/null +++ b/libjava/gnu/java/nio/SocketChannelSelectionKeyImpl.java @@ -0,0 +1,69 @@ +/* SocketChannelSelectionKey.java -- Selection key for Socket Channel + 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.java.nio; + + +/** + * @author Michael Barker + * + */ +public class SocketChannelSelectionKeyImpl extends SelectionKeyImpl +{ + + SocketChannelImpl ch; + + /** + * @param ch + * @param impl + */ + public SocketChannelSelectionKeyImpl(SocketChannelImpl ch, SelectorImpl impl) + { + super(ch, impl); + this.ch = (SocketChannelImpl) ch; + } + + /** + * Returns the native file/socket descriptor as an int. + */ + public int getNativeFD() + { + return ch.getPlainSocketImpl().getNativeFD(); + } + +} 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 { - self = s; + pc_t pc; + jclass proxyClass; + }; + + _Jv_InterpFrame (void *meth, java::lang::Thread *thr, jclass proxyClass = NULL) + { + 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 @@ -55,6 +67,10 @@ struct _Jv_StackFrame #ifdef INTERPRETER _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; +void _Jv_CheckABIVersion (unsigned long value); - 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; -} 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/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java new file mode 100644 index 00000000000..d300c9cb617 --- /dev/null +++ b/libjava/java/io/FileDescriptor.java @@ -0,0 +1,139 @@ +/* FileDescriptor.java -- Opaque file handle class + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 + Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package java.io; + +import gnu.java.nio.channels.FileChannelImpl; + +import java.nio.channels.ByteChannel; +import java.nio.channels.FileChannel; + +/** + * This class represents an opaque file handle as a Java class. It should + * be used only to pass to other methods that expect an object of this + * type. No system specific information can be obtained from this object. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Tom Tromey (tromey@cygnus.com) + * @date September 24, 1998 + */ +public final class FileDescriptor +{ + /** + * A FileDescriptor representing the system standard input + * stream. This will usually be accessed through the + * System.invariable. + */ + public static final FileDescriptor in + = new FileDescriptor (FileChannelImpl.in); + + /** + * A FileDescriptor representing the system standard output + * stream. This will usually be accessed through the + * System.outvariable. + */ + public static final FileDescriptor out + = new FileDescriptor (FileChannelImpl.out); + + /** + * A FileDescriptor representing the system standard error + * stream. This will usually be accessed through the + * System.errvariable. + */ + public static final FileDescriptor err + = new FileDescriptor (FileChannelImpl.err); + + final ByteChannel channel; + + /** + * This method is used to initialize an invalid FileDescriptor object. + */ + public FileDescriptor() + { + channel = null; + } + + /** + * This method is used to initialize a FileDescriptor object. + */ + FileDescriptor(ByteChannel channel) + { + this.channel = channel; + } + + + /** + * This method forces all data that has not yet been physically written to + * the underlying storage medium associated with this + * FileDescriptor + * to be written out. This method will not return until all data has + * been fully written to the underlying device. If the device does not + * support this functionality or if an error occurs, then an exception + * will be thrown. + */ + public void sync () throws SyncFailedException + { + if (channel instanceof FileChannel) + { + try + { + ((FileChannel) channel).force(true); + } + catch (IOException ex) + { + if (ex instanceof SyncFailedException) + throw (SyncFailedException) ex; + else + throw new SyncFailedException(ex.toString()); + } + } + } + + /** + * This methods tests whether or not this object represents a valid open + * native file handle. + * + * @return true if this object represents a valid + * native file handle, false otherwise + */ + public boolean valid () + { + return channel != null && channel.isOpen(); + } +} diff --git a/libjava/java/io/FileFilter.h b/libjava/java/io/FileFilter.h new file mode 100644 index 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/java/io/FileInputStream.java b/libjava/java/io/FileInputStream.java new file mode 100644 index 00000000000..8ca38b02fc4 --- /dev/null +++ b/libjava/java/io/FileInputStream.java @@ -0,0 +1,309 @@ +/* FileInputStream.java -- An input stream that reads from disk files. + Copyright (C) 1998, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package java.io; + +import gnu.java.nio.channels.FileChannelImpl; + +import java.nio.channels.FileChannel; + +/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 + * "The Java Language Specification", ISBN 0-201-63451-1 + * plus online API docs for JDK 1.2 beta from http://www.javasoft.com. + * Status: Believed complete and correct. + */ + +/** + * This class is a stream that reads its bytes from a file. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Warren Levy (warrenl@cygnus.com) + */ +public class FileInputStream extends InputStream +{ + /** + * This is the native file handle for the file this stream is reading from + */ + private FileDescriptor fd; + + private FileChannelImpl ch; + + /** + * This method initializes a FileInputStream to read from the + * specified named file. A security check is first made to determine + * whether or not access to this file is allowed. This is done by + * calling the checkRead() method of the + * SecurityManager + * (if one exists) with the name of this file. An exception is thrown + * if reading is not allowed. If the file does not exist, an exception + * is also thrown. + * + * @param name The name of the file this stream should read from + * + * @exception SecurityException If read access to the file is not allowed + * @exception FileNotFoundException If the file does not exist + * or if it is a directory + */ + public FileInputStream(String name) throws FileNotFoundException + { + this(new File(name)); + } + + /** + * This method initializes a FileInputStream to read from the + * specified File object. A security check is first + * made to determine + * whether or not access to this file is allowed. This is done by + * calling the checkRead() method of the + * SecurityManager + * (if one exists) with the name of this file. An exception is thrown + * if reading is not allowed. If the file does not exist, an exception + * is also thrown. + * + * @param file The File object this stream should read from + * + * @exception SecurityException If read access to the file is not allowed + * @exception FileNotFoundException If the file does not exist + * or if it is a directory. + */ + public FileInputStream(File file) throws FileNotFoundException + { + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkRead(file.getPath()); + + ch = FileChannelImpl.create(file, FileChannelImpl.READ); + } + + /** + * This method initializes a FileInputStream to read from the + * specified FileDescriptor object. A security + * check is first made to + * determine whether or not access to this file is allowed. This is done by + * calling the checkRead() method of the + * SecurityManager + * (if one exists) with the specified FileDescriptor + * An exception is + * thrown if reading is not allowed. + * + * @param fdObj The FileDescriptor object this stream + * should read from + * + * @exception SecurityException If read access to the file is not allowed + */ + public FileInputStream(FileDescriptor fdObj) + { + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkRead(fdObj); + + fd = fdObj; + ch = (FileChannelImpl) fdObj.channel; + } + + FileInputStream(FileChannelImpl ch) + { + this.ch = ch; + } + + /** + * This method returns the number of bytes that can be read from this + * stream before a read can block. A return of 0 indicates that blocking + * might (or might not) occur on the very next read attempt. + *

      + * This method returns the number of unread bytes remaining in the file if + * the descriptor being read from is an actual file. If this method is + * reading from a ''special'' file such a the standard input, this method + * will return the appropriate value for the stream being read. + *

      + * Be aware that reads on plain files that do not reside locally might + * possibly block even if this method says they should not. For example, + * a remote server might crash, preventing an NFS mounted file from being + * read. + * + * @return The number of bytes that can be read before blocking could occur + * + * @exception IOException If an error occurs + */ + public int available() throws IOException + { + return ch.available(); + } + + /** + * This method closes the stream. Any futher attempts to read from the + * stream will likely generate an IOException since the underlying file + * will be closed. + * + * @exception IOException If an error occurs. + */ + public void close() throws IOException + { + ch.close(); + } + + protected void finalize() throws IOException + { + // We don't actually need this, but we include it because it is + // mentioned in the JCL. + } + + /** + * This method returns a FileDescriptor object representing the + * underlying native file handle of the file this stream is reading + * from + * + * @return A FileDescriptor for this stream + * + * @exception IOException If an error occurs + */ + public final FileDescriptor getFD() throws IOException + { + synchronized (this) + { + if (fd == null) + fd = new FileDescriptor (ch); + return fd; + } + } + + /** + * This method reads an unsigned byte from the input stream and returns it + * as an int in the range of 0-255. This method also will return -1 if + * the end of the stream has been reached. + *

      + * This method will block until the byte can be read. + * + * @return The byte read or -1 if end of stream + * + * @exception IOException If an error occurs + */ + public int read() throws IOException + { + return ch.read(); + } + + /** + * This method reads bytes from a stream and stores them into a caller + * supplied buffer. This method attempts to completely fill the buffer, + * but can return before doing so. The actual number of bytes read is + * returned as an int. A -1 is returned to indicate the end of the stream. + *

      + * This method will block until some data can be read. + *

      + * This method operates by calling an overloaded read method like so: + * read(buf, 0, buf.length) + * + * @param buf The buffer into which the bytes read will be stored. + * + * @return The number of bytes read or -1 if end of stream. + * + * @exception IOException If an error occurs. + */ + public int read(byte[] buf) throws IOException + { + return read(buf, 0, buf.length); + } + + /** + * This method read bytes from a stream and stores them into a caller + * supplied buffer. It starts storing the data at index + * offset into + * the buffer and attempts to read len bytes. This method can + * return before reading the number of bytes requested. The actual number + * of bytes read is returned as an int. A -1 is returned to indicate the + * end of the stream. + *

      + * This method will block until some data can be read. + * + * @param buf The array into which the bytes read should be stored + * @param offset The offset into the array to start storing bytes + * @param len The requested number of bytes to read + * + * @return The actual number of bytes read, or -1 if end of stream. + * + * @exception IOException If an error occurs. + */ + public int read(byte[] buf, int offset, int len) throws IOException + { + if (offset < 0 + || len < 0 + || offset + len > buf.length) + throw new ArrayIndexOutOfBoundsException(); + + return ch.read(buf, offset, len); + } + + /** + * This method skips the specified number of bytes in the stream. It + * returns the actual number of bytes skipped, which may be less than the + * requested amount. + *

      + * @param numBytes The requested number of bytes to skip + * + * @return The actual number of bytes skipped. + * + * @exception IOException If an error occurs + */ + public synchronized long skip (long numBytes) throws IOException + { + if (numBytes < 0) + throw new IllegalArgumentException ("Can't skip negative bytes: " + + numBytes); + + if (numBytes == 0) + return 0; + + long oldPos = ch.position (); + ch.position(oldPos + numBytes); + return ch.position() - oldPos; + } + + /** + * This method creates a java.nio.channels.FileChannel. + * Nio does not allow one to create a file channel directly. + * A file channel must be created by first creating an instance of + * Input/Output/RandomAccessFile and invoking the getChannel() method on it. + */ + public synchronized FileChannel getChannel () + { + return ch; + } + +} // class FileInputStream + diff --git a/libjava/java/io/FileNotFoundException.h b/libjava/java/io/FileNotFoundException.h new file mode 100644 index 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/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java new file mode 100644 index 00000000000..10ea6b536cb --- /dev/null +++ b/libjava/java/io/FileOutputStream.java @@ -0,0 +1,296 @@ +/* FileOutputStream.java -- Writes to a file on disk. + Copyright (C) 1998, 2001, 2003, 2004, 2005 Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + + +package java.io; + +import gnu.java.nio.channels.FileChannelImpl; + +import java.nio.channels.FileChannel; + +/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 + * "The Java Language Specification", ISBN 0-201-63451-1 + * Status: Complete to version 1.1. + */ + +/** + * This classes allows a stream of data to be written to a disk file or + * any open FileDescriptor. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Tom Tromey (tromey@cygnus.com) + */ +public class FileOutputStream extends OutputStream +{ + private FileDescriptor fd; + + private FileChannelImpl ch; + + /** + * This method initializes a FileOutputStream object to write + * to the named file. The file is created if it does not exist, and + * the bytes written are written starting at the beginning of the file if + * the append argument is false or at the end + * of the file if the append argument is true. + *

      + * Before opening a file, a security check is performed by calling the + * checkWrite method of the SecurityManager (if + * one exists) with the name of the file to be opened. An exception is + * thrown if writing is not allowed. + * + * @param path The name of the file this stream should write to + * @param append true to append bytes to the end of the file, + * or false to write bytes to the beginning + * + * @exception SecurityException If write access to the file is not allowed + * @exception FileNotFoundException If a non-security error occurs + */ + public FileOutputStream (String path, boolean append) + throws SecurityException, FileNotFoundException + { + this (new File(path), append); + } + + /** + * This method initializes a FileOutputStream object to write + * to the named file. The file is created if it does not exist, and + * the bytes written are written starting at the beginning of the file. + *

      + * Before opening a file, a security check is performed by calling the + * checkWrite method of the SecurityManager (if + * one exists) with the name of the file to be opened. An exception is + * thrown if writing is not allowed. + * + * @param path The name of the file this stream should write to + * + * @exception SecurityException If write access to the file is not allowed + * @exception FileNotFoundException If a non-security error occurs + */ + public FileOutputStream (String path) + throws SecurityException, FileNotFoundException + { + this (path, false); + } + + /** + * This method initializes a FileOutputStream object to write + * to the specified File object. The file is created if it + * does not exist, and the bytes written are written starting at the + * beginning of the file. + *

      + * Before opening a file, a security check is performed by calling the + * checkWrite method of the SecurityManager (if + * one exists) with the name of the file to be opened. An exception is + * thrown if writing is not allowed. + * + * @param file The File object this stream should write to + * + * @exception SecurityException If write access to the file is not allowed + * @exception FileNotFoundException If a non-security error occurs + */ + public FileOutputStream (File file) + throws SecurityException, FileNotFoundException + { + this (file, false); + } + + /** + * This method initializes a FileOutputStream object to write + * to the specified File object. The file is created if it + * does not exist, and the bytes written are written starting at the + * beginning of the file if the append parameter is + * false. Otherwise bytes are written at the end of the + * file. + *

      + * Before opening a file, a security check is performed by calling the + * checkWrite method of the SecurityManager (if + * one exists) with the name of the file to be opened. An exception is + * thrown if writing is not allowed. + * + * @param file The File object this stream should write to + * @param append true to append bytes to the end of the file, + * or false to write bytes to the beginning + * + * @exception SecurityException If write access to the file is not allowed + * @exception FileNotFoundException If a non-security error occurs + */ + public FileOutputStream (File file, boolean append) + throws FileNotFoundException + { + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkWrite(file.getPath()); + + ch = FileChannelImpl.create(file, (append + ? FileChannelImpl.WRITE + | FileChannelImpl.APPEND + : FileChannelImpl.WRITE)); + } + + /** + * This method initializes a FileOutputStream object to write + * to the file represented by the specified FileDescriptor + * object. This method does not create any underlying disk file or + * reposition the file pointer of the given descriptor. It assumes that + * this descriptor is ready for writing as is. + *

      + * Before opening a file, a security check is performed by calling the + * checkWrite method of the SecurityManager (if + * one exists) with the specified FileDescriptor as an argument. + * An exception is thrown if writing is not allowed. + * + * @param fdObj The FileDescriptor this stream should write to + * + * @exception SecurityException If write access to the file is not allowed + */ + public FileOutputStream (FileDescriptor fdObj) + throws SecurityException + { + // Hmm, no other exception but this one to throw, but if the descriptor + // isn't valid, we surely don't have "permission" to write to it. + if (!fdObj.valid()) + throw new SecurityException("Invalid FileDescriptor"); + + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkWrite(fdObj); + + fd = fdObj; + ch = (FileChannelImpl) fdObj.channel; + } + + FileOutputStream(FileChannelImpl ch) + { + this.ch = ch; + } + + protected void finalize () throws IOException + { + // We don't actually need this, but we include it because it is + // mentioned in the JCL. + } + + /** + * This method returns a FileDescriptor object representing + * the file that is currently being written to + * + * @return A FileDescriptor object for this stream + * + * @exception IOException If an error occurs + */ + public final FileDescriptor getFD () throws IOException + { + synchronized (this) + { + if (fd == null) + fd = new FileDescriptor (ch); + return fd; + } + } + + /** + * This method writes a single byte of data to the file. + * + * @param b The byte of data to write, passed as an int + * + * @exception IOException If an error occurs + */ + public void write (int b) throws IOException + { + ch.write (b); + } + + /** + * This method writes all the bytes in the specified array to the + * file. + * + * @param buf The array of bytes to write to the file + * + * @exception IOException If an error occurs + */ + public void write (byte[] buf) + throws IOException + { + write (buf, 0, buf.length); + } + + /** + * This method writes len bytes from the byte array + * buf to the file starting at index offset. + * + * @param buf The array of bytes to write to the file + * @param offset The offset into the array to start writing bytes from + * @param len The number of bytes to write to the file + * + * @exception IOException If an error occurs + */ + public void write (byte[] buf, int offset, int len) + throws IOException + { + if (offset < 0 + || len < 0 + || offset + len > buf.length) + throw new ArrayIndexOutOfBoundsException (); + + ch.write (buf, offset, len); + } + + /** + * This method closes the underlying file. Any further attempts to + * write to this stream will likely generate an exception since the + * file is closed. + * + * @exception IOException If an error occurs + */ + public void close () throws IOException + { + ch.close(); + } + + /** + * This method creates a java.nio.channels.FileChannel. + * Nio does not allow one to create a file channel directly. + * A file channel must be created by first creating an instance of + * Input/Output/RandomAccessFile and invoking the getChannel() method on it. + */ + public synchronized FileChannel getChannel() + { + return ch; + } + +} // class FileOutputStream + diff --git a/libjava/java/io/FilePermission.h b/libjava/java/io/FilePermission.h new file mode 100644 index 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,8 +1070,224 @@ public final class Class implements Type, GenericDeclaration, Serializable */ public String getSimpleName() { - // FIXME write real implementation - return ""; + 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(); + } + + /** + * Returns the class which immediately encloses this class. If this class + * is a top-level class, this method returns null. + * + * @return the immediate enclosing class, or null if this is + * a top-level class. + * @since 1.5 + */ + public native Class getEnclosingClass(); + + /** + * Returns the constructor which immediately encloses this class. If + * this class is a top-level class, or a local or anonymous class + * immediately enclosed by a type definition, instance initializer + * or static initializer, then null is returned. + * + * @return the immediate enclosing constructor if this class is + * declared within a constructor. Otherwise, null + * is returned. + * @since 1.5 + */ + public native Constructor getEnclosingConstructor(); + + /** + * Returns the method which immediately encloses this class. If + * this class is a top-level class, or a local or anonymous class + * immediately enclosed by a type definition, instance initializer + * or static initializer, then null is returned. + * + * @return the immediate enclosing method if this class is + * declared within a method. Otherwise, null + * is returned. + * @since 1.5 + */ + 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() + { + 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(); + } + + /** + * Returns an array of TypeVariable objects that represents + * the type variables declared by this class, in declaration order. + * An array of size zero is returned if this class has no type + * variables. + * + * @return the type variables associated with this class. + * @throws GenericSignatureFormatError if the generic signature does + * not conform to the format specified in the Virtual Machine + * specification, version 3. + * @since 1.5 + */ + public TypeVariable>[] getTypeParameters() + { + String sig = getClassSignature(); + if (sig == null) + return (TypeVariable>[])new TypeVariable[0]; + + ClassSignatureParser p = new ClassSignatureParser(this, sig); + return p.getTypeParameters(); + } + + /** + * Returns this class' annotation for the specified annotation type, + * or null if no such annotation exists. + * + * @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 A getAnnotation(Class annotationClass) + { + A foundAnnotation = null; + Annotation[] annotations = getAnnotations(); + for (Annotation annotation : annotations) + if (annotation.annotationType() == annotationClass) + foundAnnotation = (A) annotation; + return foundAnnotation; + } + + /** + * Returns all annotations associated with this class. If there are + * no annotations associated with this class, then a zero-length array + * will be returned. The returned array may be modified by the client + * code, but this will have no effect on the annotation content of this + * class, and hence no effect on the return value of this method for + * future callers. + * + * @return this class' annotations. + * @since 1.5 + */ + public Annotation[] getAnnotations() + { + HashMap 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()]); } /** @@ -962,89 +1303,50 @@ public final class Class implements Type, GenericDeclaration, Serializable */ public Annotation[] getDeclaredAnnotations() { - // FIXME write real implementation - return new Annotation[0]; + 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 the class which immediately encloses this class. If this class - * is a top-level class, this method returns null. + * Returns true if this object represents an anonymous class. * - * @return the immediate enclosing class, or null if this is - * a top-level class. + * @return true if this object represents an anonymous class. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Class */ - public Class getEnclosingClass() - { - // FIXME write real implementation - return null; - } + public native boolean isAnonymousClass(); /** - * Returns the constructor which immediately encloses this class. If - * this class is a top-level class, or a local or anonymous class - * immediately enclosed by a type definition, instance initializer - * or static initializer, then null is returned. + * Returns true if this object represents an local class. * - * @return the immediate enclosing constructor if this class is - * declared within a constructor. Otherwise, null - * is returned. + * @return true if this object represents an local class. * @since 1.5 */ - /* FIXME[GENERICS]: Should return Constructor */ - public Constructor getEnclosingConstructor() - { - // FIXME write real implementation - return null; - } + public native boolean isLocalClass(); /** - * Returns the method which immediately encloses this class. If - * this class is a top-level class, or a local or anonymous class - * immediately enclosed by a type definition, instance initializer - * or static initializer, then null is returned. + * Returns true if this object represents an member class. * - * @return the immediate enclosing method if this class is - * declared within a method. Otherwise, null - * is returned. + * @return true if this object represents an member class. * @since 1.5 */ - public Method getEnclosingMethod() - { - // FIXME write real implementation - return null; - } - - /** - * Returns an array of TypeVariable objects that represents - * the type variables declared by this class, in declaration order. - * An array of size zero is returned if this class has no type - * variables. - * - * @return the type variables associated with this class. - * @throws GenericSignatureFormatError if the generic signature does - * not conform to the format specified in the Virtual Machine - * specification, version 3. - * @since 1.5 - */ - /* FIXME[GENERICS]: Should return TypeVariable> */ - public TypeVariable[] getTypeParameters() - { - // FIXME - provide real implementation. - return new TypeVariable[0]; - } - - /** - * Returns true if this class is an Enum. - * - * @return true if this is an enumeration class. - * @since 1.5 - */ - public boolean isEnum() - { - // FIXME - provide real implementation. - return false; - } - + 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 @@ -486,6 +570,35 @@ public abstract class ClassLoader return retval; } + /** + * 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; @@ -102,6 +111,11 @@ public final class System public static final PrintStream err = new PrintStream(new BufferedOutputStream(new FileOutputStream(FileDescriptor.err)), true); + /** + * A cached copy of the environment variable map. + */ + private static Map environmentMap; + /** * This class is uninstantiable. */ @@ -393,6 +407,29 @@ public final class System return SystemProperties.setProperty(key, value); } + /** + * 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. * @@ -415,6 +452,59 @@ public final class System return getenv0(name); } + /** + *

      + * 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. @@ -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 @@ -425,25 +440,6 @@ java::lang::Class::getName (void) return name->toString(); } -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) { @@ -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,12 +29,26 @@ details. */ #include #include +typedef JArray< ::java::lang::annotation::Annotation * > * anno_a_t; + jint java::lang::reflect::Field::getModifiersInternal () { return _Jv_FromReflectedField (this)->flags; } +jstring +java::lang::reflect::Field::getSignature() +{ + return declaringClass->getReflectionSignature (this); +} + +anno_a_t +java::lang::reflect::Field::getDeclaredAnnotationsInternal() +{ + return (anno_a_t) declaringClass->getDeclaredAnnotations(this); +} + jstring java::lang::reflect::Field::getName () { 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; @@ -188,6 +193,30 @@ java::lang::reflect::Method::getModifiersInternal () return _Jv_FromReflectedMethod (this)->accflags; } +jstring +java::lang::reflect::Method::getSignature() +{ + return declaringClass->getReflectionSignature (this); +} + +jobject +java::lang::reflect::Method::getDefaultValue() +{ + return declaringClass->getMethodDefaultValue(this); +} + +anno_a_t +java::lang::reflect::Method::getDeclaredAnnotationsInternal() +{ + return (anno_a_t) declaringClass->getDeclaredAnnotations(this, false); +} + +anno_aa_t +java::lang::reflect::Method::getParameterAnnotationsInternal() +{ + return (anno_aa_t) declaringClass->getDeclaredAnnotations(this, true); +} + jstring java::lang::reflect::Method::getName () { 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/java/net/DatagramSocket.java b/libjava/java/net/DatagramSocket.java new file mode 100644 index 00000000000..d8837c006b5 --- /dev/null +++ b/libjava/java/net/DatagramSocket.java @@ -0,0 +1,939 @@ +/* DatagramSocket.java -- A class to model UDP sockets + Copyright (C) 1998, 1999, 2000, 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 gnu.classpath.SystemProperties; + +import gnu.java.net.PlainDatagramSocketImpl; +import gnu.java.nio.DatagramChannelImpl; + +import java.io.IOException; +import java.nio.channels.DatagramChannel; +import java.nio.channels.IllegalBlockingModeException; + + +/** + * 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 connectionless datagram socket that sends + * individual packets of data across the network. In the TCP/IP world, + * this means UDP. Datagram packets do not have guaranteed delivery, + * or any guarantee about the order the data will be received on the + * remote host. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Warren Levy (warrenl@cygnus.com) + * @date May 3, 1999. + */ +public class DatagramSocket +{ + /** + * This is the user DatagramSocketImplFactory for this class. If this + * variable is null, a default factory is used. + */ + private static DatagramSocketImplFactory factory; + + /** + * This is the implementation object used by this socket. + */ + private DatagramSocketImpl impl; + + /** + * True if socket implementation was created. + */ + private boolean implCreated; + + /** + * This is the address we are "connected" to + */ + private InetAddress remoteAddress; + + /** + * This is the port we are "connected" to + */ + private int remotePort = -1; + + /** + * True if socket is bound. + */ + private boolean bound; + + /** + * Creates a DatagramSocket from a specified + * DatagramSocketImpl instance + * + * @param impl The DatagramSocketImpl the socket will be + * created from + * + * @since 1.4 + */ + protected DatagramSocket(DatagramSocketImpl impl) + { + if (impl == null) + throw new NullPointerException("impl may not be null"); + + this.impl = impl; + this.remoteAddress = null; + this.remotePort = -1; + } + + /** + * Initializes a new instance of DatagramSocket that binds to + * a random port and every address on the local machine. + * + * @exception SocketException If an error occurs. + * @exception SecurityException If a security manager exists and + * its checkListen method doesn't allow the operation. + */ + public DatagramSocket() throws SocketException + { + this(new InetSocketAddress(0)); + } + + /** + * Initializes a new instance of DatagramSocket that binds to + * the specified port and every address on the local machine. + * + * @param port The local port number to bind to. + * + * @exception SecurityException If a security manager exists and its + * checkListen method doesn't allow the operation. + * @exception SocketException If an error occurs. + */ + public DatagramSocket(int port) throws SocketException + { + this(new InetSocketAddress(port)); + } + + /** + * Initializes a new instance of DatagramSocket that binds to + * the specified local port and address. + * + * @param port The local port number to bind to. + * @param addr The local address to bind to. + * + * @exception SecurityException If a security manager exists and its + * checkListen method doesn't allow the operation. + * @exception SocketException If an error occurs. + */ + public DatagramSocket(int port, InetAddress addr) throws SocketException + { + this(new InetSocketAddress(addr, port)); + } + + /** + * Initializes a new instance of DatagramSocket that binds to + * the specified local port and address. + * + * @param address The local address and port number to bind to. + * + * @exception SecurityException If a security manager exists and its + * checkListen method doesn't allow the operation. + * @exception SocketException If an error occurs. + * + * @since 1.4 + */ + public DatagramSocket(SocketAddress address) throws SocketException + { + String propVal = SystemProperties.getProperty("impl.prefix"); + if (propVal == null || propVal.equals("")) + { + if (factory != null) + impl = factory.createDatagramSocketImpl(); + else + impl = new PlainDatagramSocketImpl(); + } + else + try + { + impl = + (DatagramSocketImpl) Class.forName("java.net." + propVal + + "DatagramSocketImpl") + .newInstance(); + } + catch (Exception e) + { + System.err.println("Could not instantiate class: java.net." + + propVal + "DatagramSocketImpl"); + impl = new PlainDatagramSocketImpl(); + } + + if (address != null) + bind(address); + } + + // This needs to be accessible from java.net.MulticastSocket + DatagramSocketImpl getImpl() throws SocketException + { + try + { + if (! implCreated) + { + impl.create(); + implCreated = true; + } + + return impl; + } + catch (IOException e) + { + SocketException se = new SocketException(); + se.initCause(e); + throw se; + } + } + + /** + * Closes this datagram socket. + */ + public void close() + { + if (isClosed()) + return; + + try + { + getImpl().close(); + } + catch (SocketException e) + { + // Ignore this case, just close the socket in finally clause. + } + finally + { + remoteAddress = null; + remotePort = -1; + impl = null; + } + + try + { + if (getChannel() != null) + getChannel().close(); + } + catch (IOException e) + { + // Do nothing. + } + } + + /** + * This method returns the remote address to which this socket is + * connected. If this socket is not connected, then this method will + * return null. + * + * @return The remote address. + * + * @since 1.2 + */ + public InetAddress getInetAddress() + { + return remoteAddress; + } + + /** + * This method returns the remote port to which this socket is + * connected. If this socket is not connected, then this method will + * return -1. + * + * @return The remote port. + * + * @since 1.2 + */ + public int getPort() + { + return remotePort; + } + + /** + * Returns the local address this datagram socket is bound to. + * + * @return The local address is the socket is bound or null + * + * @since 1.1 + */ + public InetAddress getLocalAddress() + { + if (! isBound()) + return null; + + InetAddress localAddr; + + try + { + localAddr = + (InetAddress) getImpl().getOption(SocketOptions.SO_BINDADDR); + + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkConnect(localAddr.getHostName(), -1); + } + catch (SecurityException e) + { + localAddr = InetAddress.ANY_IF; + } + catch (SocketException e) + { + // This cannot happen as we are bound. + return null; + } + + return localAddr; + } + + /** + * Returns the local port this socket is bound to. + * + * @return The local port number. + */ + public int getLocalPort() + { + if (isClosed()) + return -1; + + try + { + return getImpl().getLocalPort(); + } + catch (SocketException e) + { + // This cannot happen as we are bound. + return 0; + } + } + + /** + * Returns the value of the socket's SO_TIMEOUT setting. If this method + * returns 0 then SO_TIMEOUT is disabled. + * + * @return The current timeout in milliseconds. + * + * @exception SocketException If an error occurs. + * + * @since 1.1 + */ + public synchronized int getSoTimeout() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_TIMEOUT); + + if (buf instanceof Integer) + return ((Integer) buf).intValue(); + + throw new SocketException("unexpected type"); + } + + /** + * Sets the value of the socket's SO_TIMEOUT value. A value of 0 will + * disable SO_TIMEOUT. Any other value is the number of milliseconds + * a socket read/write will block before timing out. + * + * @param timeout The new SO_TIMEOUT value in milliseconds. + * + * @exception SocketException If an error occurs. + * + * @since 1.1 + */ + public synchronized void setSoTimeout(int timeout) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (timeout < 0) + throw new IllegalArgumentException("Invalid timeout: " + timeout); + + getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); + } + + /** + * This method returns the value of the system level socket option + * SO_SNDBUF, which is used by the operating system to tune buffer + * sizes for data transfers. + * + * @return The send buffer size. + * + * @exception SocketException If an error occurs. + * + * @since 1.2 + */ + public int getSendBufferSize() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_SNDBUF); + + if (buf instanceof Integer) + return ((Integer) buf).intValue(); + + throw new SocketException("unexpected type"); + } + + /** + * This method sets the value for the system level socket option + * SO_SNDBUF to the specified value. Note that valid values for this + * option are specific to a given operating system. + * + * @param size The new send buffer size. + * + * @exception SocketException If an error occurs. + * @exception IllegalArgumentException If size is 0 or negative. + * + * @since 1.2 + */ + public void setSendBufferSize(int size) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (size < 0) + throw new IllegalArgumentException("Buffer size is less than 0"); + + getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size)); + } + + /** + * This method returns the value of the system level socket option + * SO_RCVBUF, which is used by the operating system to tune buffer + * sizes for data transfers. + * + * @return The receive buffer size. + * + * @exception SocketException If an error occurs. + * + * @since 1.2 + */ + public int getReceiveBufferSize() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_RCVBUF); + + if (buf instanceof Integer) + return ((Integer) buf).intValue(); + + throw new SocketException("unexpected type"); + } + + /** + * This method sets the value for the system level socket option + * SO_RCVBUF to the specified value. Note that valid values for this + * option are specific to a given operating system. + * + * @param size The new receive buffer size. + * + * @exception SocketException If an error occurs. + * @exception IllegalArgumentException If size is 0 or negative. + * + * @since 1.2 + */ + public void setReceiveBufferSize(int size) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (size < 0) + throw new IllegalArgumentException("Buffer size is less than 0"); + + getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size)); + } + + /** + * This method connects this socket to the specified address and port. + * When a datagram socket is connected, it will only send or receive + * packets to and from the host to which it is connected. A multicast + * socket that is connected may only send and not receive packets. + * + * @param address The address to connect this socket to. + * @param port The port to connect this socket to. + * + * @exception IllegalArgumentException If address or port are invalid. + * @exception SecurityException If the caller is not allowed to send + * datagrams to or receive from this address and port. + * + * @since 1.2 + */ + public void connect(InetAddress address, int port) + { + if (address == null) + throw new IllegalArgumentException("Connect address may not be null"); + + if ((port < 1) || (port > 65535)) + throw new IllegalArgumentException("Port number is illegal: " + port); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkConnect(address.getHostName(), port); + + try + { + getImpl().connect(address, port); + remoteAddress = address; + remotePort = port; + } + catch (SocketException e) + { + // This means simply not connected or connect not implemented. + } + } + + /** + * This method disconnects this socket from the address/port it was + * connected to. If the socket was not connected in the first place, + * this method does nothing. + * + * @since 1.2 + */ + public void disconnect() + { + if (! isConnected()) + return; + + try + { + getImpl().disconnect(); + } + catch (SocketException e) + { + // This cannot happen as we are connected. + } + finally + { + remoteAddress = null; + remotePort = -1; + } + } + + /** + * Reads a datagram packet from the socket. Note that this method + * will block until a packet is received from the network. On return, + * the passed in DatagramPacket is populated with the data + * received and all the other information about the packet. + * + * @param p A DatagramPacket for storing the data + * + * @exception IOException If an error occurs. + * @exception SocketTimeoutException If setSoTimeout was previously called + * and the timeout has expired. + * @exception PortUnreachableException If the socket is connected to a + * currently unreachable destination. Note, there is no guarantee that the + * exception will be thrown. + * @exception IllegalBlockingModeException If this socket has an associated + * channel, and the channel is in non-blocking mode. + * @exception SecurityException If a security manager exists and its + * checkAccept method doesn't allow the receive. + */ + public synchronized void receive(DatagramPacket p) throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (remoteAddress != null && remoteAddress.isMulticastAddress()) + throw new IOException + ("Socket connected to a multicast address my not receive"); + + if (getChannel() != null && ! getChannel().isBlocking() + && ! ((DatagramChannelImpl) getChannel()).isInChannelOperation()) + throw new IllegalBlockingModeException(); + + getImpl().receive(p); + + SecurityManager s = System.getSecurityManager(); + if (s != null && isConnected()) + s.checkAccept(p.getAddress().getHostName(), p.getPort()); + } + + /** + * Sends the specified packet. The host and port to which the packet + * are to be sent should be set inside the packet. + * + * @param p The datagram packet to send. + * + * @exception IOException If an error occurs. + * @exception SecurityException If a security manager exists and its + * checkMulticast or checkConnect method doesn't allow the send. + * @exception PortUnreachableException If the socket is connected to a + * currently unreachable destination. Note, there is no guarantee that the + * exception will be thrown. + * @exception IllegalBlockingModeException If this socket has an associated + * channel, and the channel is in non-blocking mode. + */ + public void send(DatagramPacket p) throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + // JDK1.2: Don't do security checks if socket is connected; see jdk1.2 api. + SecurityManager s = System.getSecurityManager(); + if (s != null && ! isConnected()) + { + InetAddress addr = p.getAddress(); + if (addr.isMulticastAddress()) + s.checkMulticast(addr); + else + s.checkConnect(addr.getHostAddress(), p.getPort()); + } + + if (isConnected()) + { + if (p.getAddress() != null + && (remoteAddress != p.getAddress() || remotePort != p.getPort())) + throw new IllegalArgumentException + ("DatagramPacket address does not match remote address"); + } + + // FIXME: if this is a subclass of MulticastSocket, + // use getTimeToLive for TTL val. + if (getChannel() != null && ! getChannel().isBlocking() + && ! ((DatagramChannelImpl) getChannel()).isInChannelOperation()) + throw new IllegalBlockingModeException(); + + getImpl().send(p); + } + + /** + * Binds the socket to the given socket address. + * + * @param address The socket address to bind to. + * + * @exception SocketException If an error occurs. + * @exception SecurityException If a security manager exists and + * its checkListen method doesn't allow the operation. + * @exception IllegalArgumentException If address type is not supported. + * + * @since 1.4 + */ + public void bind(SocketAddress address) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (! (address instanceof InetSocketAddress)) + throw new IllegalArgumentException("unsupported address type"); + + InetAddress addr = ((InetSocketAddress) address).getAddress(); + int port = ((InetSocketAddress) address).getPort(); + + if (port < 0 || port > 65535) + throw new IllegalArgumentException("Invalid port: " + port); + + SecurityManager s = System.getSecurityManager(); + if (s != null) + s.checkListen(port); + + if (addr == null) + addr = InetAddress.ANY_IF; + + try + { + getImpl().bind(port, addr); + bound = true; + } + catch (SocketException exception) + { + getImpl().close(); + throw exception; + } + catch (RuntimeException exception) + { + getImpl().close(); + throw exception; + } + catch (Error error) + { + getImpl().close(); + throw error; + } + } + + /** + * Checks if the datagram socket is closed. + * + * @return True if socket is closed, false otherwise. + * + * @since 1.4 + */ + public boolean isClosed() + { + return impl == null; + } + + /** + * Returns the datagram channel assoziated with this datagram socket. + * + * @return The associated DatagramChannel object or null + * + * @since 1.4 + */ + public DatagramChannel getChannel() + { + return null; + } + + /** + * Connects the datagram socket to a specified socket address. + * + * @param address The socket address to connect to. + * + * @exception SocketException If an error occurs. + * @exception IllegalArgumentException If address type is not supported. + * + * @since 1.4 + */ + public void connect(SocketAddress address) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (! (address instanceof InetSocketAddress)) + throw new IllegalArgumentException("unsupported address type"); + + InetSocketAddress tmp = (InetSocketAddress) address; + connect(tmp.getAddress(), tmp.getPort()); + } + + /** + * Returns the binding state of the socket. + * + * @return True if socket bound, false otherwise. + * + * @since 1.4 + */ + public boolean isBound() + { + return bound; + } + + /** + * Returns the connection state of the socket. + * + * @return True if socket is connected, false otherwise. + * + * @since 1.4 + */ + public boolean isConnected() + { + return remoteAddress != null; + } + + /** + * Returns the SocketAddress of the host this socket is conneted to + * or null if this socket is not connected. + * + * @return The socket address of the remote host if connected or null + * + * @since 1.4 + */ + public SocketAddress getRemoteSocketAddress() + { + if (! isConnected()) + return null; + + return new InetSocketAddress(remoteAddress, remotePort); + } + + /** + * Returns the local SocketAddress this socket is bound to. + * + * @return The local SocketAddress or null if the socket is not bound. + * + * @since 1.4 + */ + public SocketAddress getLocalSocketAddress() + { + if (! isBound()) + return null; + + return new InetSocketAddress(getLocalAddress(), getLocalPort()); + } + + /** + * Enables/Disables SO_REUSEADDR. + * + * @param on Whether or not to have SO_REUSEADDR turned on. + * + * @exception SocketException If an error occurs. + * + * @since 1.4 + */ + public void setReuseAddress(boolean on) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.SO_REUSEADDR, Boolean.valueOf(on)); + } + + /** + * Checks if SO_REUSEADDR is enabled. + * + * @return True if SO_REUSEADDR is set on the socket, false otherwise. + * + * @exception SocketException If an error occurs. + * + * @since 1.4 + */ + public boolean getReuseAddress() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_REUSEADDR); + + if (buf instanceof Boolean) + return ((Boolean) buf).booleanValue(); + + throw new SocketException("unexpected type"); + } + + /** + * Enables/Disables SO_BROADCAST + * + * @param enable True if SO_BROADCAST should be enabled, false otherwise. + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setBroadcast(boolean enable) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.SO_BROADCAST, Boolean.valueOf(enable)); + } + + /** + * Checks if SO_BROADCAST is enabled + * + * @return Whether SO_BROADCAST is set + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getBroadcast() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_BROADCAST); + + if (buf instanceof Boolean) + return ((Boolean) buf).booleanValue(); + + throw new SocketException("unexpected type"); + } + + /** + * Sets the traffic class value + * + * @param tc The traffic class + * + * @exception SocketException If an error occurs + * @exception IllegalArgumentException If tc value is illegal + * + * @see DatagramSocket#getTrafficClass() + * + * @since 1.4 + */ + public void setTrafficClass(int tc) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (tc < 0 || tc > 255) + throw new IllegalArgumentException(); + + getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc)); + } + + /** + * Returns the current traffic class + * + * @return The current traffic class. + * + * @see DatagramSocket#setTrafficClass(int tc) + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public int getTrafficClass() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.IP_TOS); + + if (buf instanceof Integer) + return ((Integer) buf).intValue(); + + throw new SocketException("unexpected type"); + } + + /** + * Sets the datagram socket implementation factory for the application + * + * @param fac The factory to set + * + * @exception IOException If an error occurs + * @exception SocketException If the factory is already defined + * @exception SecurityException If a security manager exists and its + * checkSetFactory method doesn't allow the operation + */ + public static void setDatagramSocketImplFactory(DatagramSocketImplFactory fac) + throws IOException + { + if (factory != null) + throw new SocketException("DatagramSocketImplFactory already defined"); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkSetFactory(); + + factory = fac; + } +} 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/java/net/Socket.java b/libjava/java/net/Socket.java new file mode 100644 index 00000000000..b2249ffaa0d --- /dev/null +++ b/libjava/java/net/Socket.java @@ -0,0 +1,1269 @@ +/* Socket.java -- Client socket implementation + Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004 + Free Software Foundation, Inc. + +This file is part of GNU Classpath. + +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. */ + +package java.net; + +import gnu.java.net.PlainSocketImpl; + +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.channels.IllegalBlockingModeException; +import java.nio.channels.SocketChannel; + + +/* Written using on-line Java Platform 1.2 API Specification. + * Status: I believe all methods are implemented. + */ + +/** + * This class models a client site socket. A socket is a TCP/IP endpoint + * for network communications conceptually similar to a file handle. + *

      + * This class does not actually do any work. Instead, it redirects all of + * its calls to a socket implementation object which implements the + * SocketImpl interface. The implementation class is + * instantiated by factory class that implements the + * SocketImplFactory interface. A default + * factory is provided, however the factory may be set by a call to + * the setSocketImplFactory method. Note that this may only be + * done once per virtual machine. If a subsequent attempt is made to set the + * factory, a SocketException will be thrown. + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Per Bothner (bothner@cygnus.com) + */ +public class Socket +{ + /** + * This is the user SocketImplFactory for this class. If this variable is + * null, a default factory is used. + */ + static SocketImplFactory factory; + + /** + * The implementation object to which calls are redirected + */ + // package-private because ServerSocket.implAccept() needs to access it. + 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. + */ + boolean bound; + + /** + * True if input is shutdown. + */ + private boolean inputShutdown; + + /** + * True if output is shutdown. + */ + private boolean outputShutdown; + + /** + * Initializes a new instance of Socket object without + * connecting to a remote host. This useful for subclasses of socket that + * might want this behavior. + * + * @specnote This constructor is public since JDK 1.4 + * @since 1.1 + */ + public Socket() + { + if (factory != null) + impl = factory.createSocketImpl(); + else + impl = new PlainSocketImpl(); + } + + /** + * Initializes a new instance of Socket object without + * connecting to a remote host. This is useful for subclasses of socket + * that might want this behavior. + *

      + * Additionally, this socket will be created using the supplied + * implementation class instead the default class or one returned by a + * factory. If this value is null, the default Socket + * implementation is used. + * + * @param impl The SocketImpl to use for this + * Socket + * + * @exception SocketException If an error occurs + * + * @since 1.1 + */ + protected Socket(SocketImpl impl) throws SocketException + { + if (impl == null) + this.impl = new PlainSocketImpl(); + else + this.impl = impl; + } + + /** + * Initializes a new instance of Socket and connects to the + * hostname and port specified as arguments. + * + * @param host The name of the host to connect to + * @param port The port number to connect to + * + * @exception UnknownHostException If the hostname cannot be resolved to a + * network address. + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + */ + public Socket(String host, int port) + throws UnknownHostException, IOException + { + this(InetAddress.getByName(host), port, null, 0, true); + } + + /** + * Initializes a new instance of Socket and connects to the + * address and port number specified as arguments. + * + * @param address The address to connect to + * @param port The port number to connect to + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + */ + public Socket(InetAddress address, int port) throws IOException + { + this(address, port, null, 0, true); + } + + /** + * Initializes a new instance of Socket that connects to the + * named host on the specified port and binds to the specified local address + * and port. + * + * @param host The name of the remote host to connect to. + * @param port The remote port to connect to. + * @param localAddr The local address to bind to. + * @param localPort The local port to bind to. + * + * @exception SecurityException If the SecurityManager + * exists and does not allow a connection to the specified host/port or + * binding to the specified local host/port. + * @exception IOException If a connection error occurs. + * + * @since 1.1 + */ + public Socket(String host, int port, InetAddress localAddr, int localPort) + throws IOException + { + this(InetAddress.getByName(host), port, localAddr, localPort, true); + } + + /** + * Initializes a new instance of Socket and connects to the + * address and port number specified as arguments, plus binds to the + * specified local address and port. + * + * @param address The remote address to connect to + * @param port The remote port to connect to + * @param localAddr The local address to connect to + * @param localPort The local port to connect to + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + * + * @since 1.1 + */ + public Socket(InetAddress address, int port, InetAddress localAddr, + int localPort) throws IOException + { + this(address, port, localAddr, localPort, true); + } + + /** + * Initializes a new instance of Socket and connects to the + * hostname and port specified as arguments. If the stream argument is set + * to true, then a stream socket is created. If it is + * false, a datagram socket is created. + * + * @param host The name of the host to connect to + * @param port The port to connect to + * @param stream true for a stream socket, false + * for a datagram socket + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + * + * @deprecated Use the DatagramSocket class to create + * datagram oriented sockets. + */ + public Socket(String host, int port, boolean stream) + throws IOException + { + this(InetAddress.getByName(host), port, null, 0, stream); + } + + /** + * Initializes a new instance of Socket and connects to the + * address and port number specified as arguments. If the stream param is + * true, a stream socket will be created, otherwise a datagram + * socket is created. + * + * @param host The address to connect to + * @param port The port number to connect to + * @param stream true to create a stream socket, + * false to create a datagram socket. + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + * + * @deprecated Use the DatagramSocket class to create + * datagram oriented sockets. + */ + public Socket(InetAddress host, int port, boolean stream) + throws IOException + { + this(host, port, null, 0, stream); + } + + /** + * This constructor is where the real work takes place. Connect to the + * specified address and port. Use default local values if not specified, + * otherwise use the local host and port passed in. Create as stream or + * datagram based on "stream" argument. + *

      + * + * @param raddr The remote address to connect to + * @param rport The remote port to connect to + * @param laddr The local address to connect to + * @param lport The local port to connect to + * @param stream true for a stream socket, false for a datagram socket + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + */ + private Socket(InetAddress raddr, int rport, InetAddress laddr, int lport, + boolean stream) throws IOException + { + this(); + + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkConnect(raddr.getHostName(), rport); + + // bind socket + SocketAddress bindaddr = + laddr == null ? null : new InetSocketAddress(laddr, lport); + bind(bindaddr); + + // connect socket + connect(new InetSocketAddress(raddr, rport)); + + // FIXME: JCL p. 1586 says if localPort is unspecified, bind to any port, + // i.e. '0' and if localAddr is unspecified, use getLocalAddress() as + // that default. JDK 1.2 doc infers not to do a bind. + } + + 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; + } + + /** + * Binds the socket to the givent local address/port + * + * @param bindpoint The address/port to bind to + * + * @exception IOException If an error occurs + * @exception SecurityException If a security manager exists and its + * checkConnect method doesn't allow the operation + * @exception IllegalArgumentException If the address type is not supported + * + * @since 1.4 + */ + public void bind(SocketAddress bindpoint) throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + // XXX: JDK 1.4.1 API documentation says that if bindpoint is null the + // socket will be bound to an ephemeral port and a valid local address. + if (bindpoint == null) + bindpoint = new InetSocketAddress(InetAddress.ANY_IF, 0); + + if (! (bindpoint instanceof InetSocketAddress)) + throw new IllegalArgumentException(); + + InetSocketAddress tmp = (InetSocketAddress) bindpoint; + + // bind to address/port + try + { + getImpl().bind(tmp.getAddress(), tmp.getPort()); + bound = true; + } + catch (IOException exception) + { + close(); + throw exception; + } + catch (RuntimeException exception) + { + close(); + throw exception; + } + catch (Error error) + { + close(); + throw error; + } + } + + /** + * Connects the socket with a remote address. + * + * @param endpoint The address to connect to + * + * @exception IOException If an error occurs + * @exception IllegalArgumentException If the addess type is not supported + * @exception IllegalBlockingModeException If this socket has an associated + * channel, and the channel is in non-blocking mode + * + * @since 1.4 + */ + public void connect(SocketAddress endpoint) throws IOException + { + connect(endpoint, 0); + } + + /** + * Connects the socket with a remote address. A timeout of zero is + * interpreted as an infinite timeout. The connection will then block + * until established or an error occurs. + * + * @param endpoint The address to connect to + * @param timeout The length of the timeout in milliseconds, or + * 0 to indicate no timeout. + * + * @exception IOException If an error occurs + * @exception IllegalArgumentException If the address type is not supported + * @exception IllegalBlockingModeException If this socket has an associated + * channel, and the channel is in non-blocking mode + * @exception SocketTimeoutException If the timeout is reached + * + * @since 1.4 + */ + public void connect(SocketAddress endpoint, int timeout) + throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (! (endpoint instanceof InetSocketAddress)) + throw new IllegalArgumentException("unsupported address type"); + + // 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 + // operation, then we must honor it regardless of its blocking mode. + if (getChannel() != null && ! getChannel().isBlocking() + && ! ((PlainSocketImpl) getImpl()).isInChannelOperation()) + throw new IllegalBlockingModeException(); + + if (! isBound()) + bind(null); + + getImpl().connect(endpoint, timeout); + } + + /** + * Returns the address of the remote end of the socket. If this socket + * is not connected, then null is returned. + * + * @return The remote address this socket is connected to + */ + public InetAddress getInetAddress() + { + if (! isConnected()) + return null; + + try + { + return getImpl().getInetAddress(); + } + catch (SocketException e) + { + // This cannot happen as we are connected. + } + + return null; + } + + /** + * Returns the local address to which this socket is bound. If this socket + * is not connected, then a wildcard address, for which + * @see InetAddress#isAnyLocalAddress() is true, is returned. + * + * @return The local address + * + * @since 1.1 + */ + public InetAddress getLocalAddress() + { + if (! isBound()) + return InetAddress.ANY_IF; + + InetAddress addr = 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 + // before performing this operation. Problems: 1) We don't have the + // addr until after we do it, so we do a post check. 2). The docs I + // see don't require this in the Socket case, only DatagramSocket, but + // we'll assume they mean both. + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkConnect(addr.getHostName(), getLocalPort()); + + return addr; + } + + /** + * Returns the port number of the remote end of the socket connection. If + * this socket is not connected, then 0 is returned. + * + * @return The remote port this socket is connected to + */ + public int getPort() + { + if (! isConnected()) + return 0; + + try + { + return getImpl().getPort(); + } + catch (SocketException e) + { + // This cannot happen as we are connected. + } + + return 0; + } + + /** + * Returns the local port number to which this socket is bound. If this + * socket is not connected, then -1 is returned. + * + * @return The local port + */ + public int getLocalPort() + { + if (! isBound()) + return -1; + + try + { + if (getImpl() != null) + return getImpl().getLocalPort(); + } + catch (SocketException e) + { + // This cannot happen as we are bound. + } + + return -1; + } + + /** + * Returns local socket address. + * + * @return the local socket address, null if not bound + * + * @since 1.4 + */ + public SocketAddress getLocalSocketAddress() + { + if (! isBound()) + return null; + + InetAddress addr = getLocalAddress(); + + try + { + return new InetSocketAddress(addr, getImpl().getLocalPort()); + } + catch (SocketException e) + { + // This cannot happen as we are bound. + return null; + } + } + + /** + * Returns the remote socket address. + * + * @return the remote socket address, null of not connected + * + * @since 1.4 + */ + public SocketAddress getRemoteSocketAddress() + { + if (! isConnected()) + return null; + + try + { + return new InetSocketAddress(getImpl().getInetAddress(), + getImpl().getPort()); + } + catch (SocketException e) + { + // This cannot happen as we are connected. + return null; + } + } + + /** + * Returns an InputStream for reading from this socket. + * + * @return The InputStream object + * + * @exception IOException If an error occurs or Socket is not connected + */ + public InputStream getInputStream() throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (! isConnected()) + throw new IOException("not connected"); + + return getImpl().getInputStream(); + } + + /** + * Returns an OutputStream for writing to this socket. + * + * @return The OutputStream object + * + * @exception IOException If an error occurs or Socket is not connected + */ + public OutputStream getOutputStream() throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (! isConnected()) + throw new IOException("not connected"); + + return getImpl().getOutputStream(); + } + + /** + * Sets the TCP_NODELAY option on the socket. + * + * @param on true to enable, false to disable + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.1 + */ + public void setTcpNoDelay(boolean on) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.TCP_NODELAY, Boolean.valueOf(on)); + } + + /** + * Tests whether or not the TCP_NODELAY option is set on the socket. + * Returns true if enabled, false if disabled. When on it disables the + * Nagle algorithm which means that packets are always send immediatly and + * never merged together to reduce network trafic. + * + * @return Whether or not TCP_NODELAY is set + * + * @exception SocketException If an error occurs or Socket not connected + * + * @since 1.1 + */ + public boolean getTcpNoDelay() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object on = getImpl().getOption(SocketOptions.TCP_NODELAY); + + if (on instanceof Boolean) + return (((Boolean) on).booleanValue()); + else + throw new SocketException("Internal Error"); + } + + /** + * Sets the value of the SO_LINGER option on the socket. If the + * SO_LINGER option is set on a socket and there is still data waiting to + * be sent when the socket is closed, then the close operation will block + * until either that data is delivered or until the timeout period + * expires. The linger interval is specified in hundreths of a second + * (platform specific?) + * + * @param on true to enable SO_LINGER, false to disable + * @param linger The SO_LINGER timeout in hundreths of a second or -1 if + * SO_LINGER not set. + * + * @exception SocketException If an error occurs or Socket not connected + * @exception IllegalArgumentException If linger is negative + * + * @since 1.1 + */ + public void setSoLinger(boolean on, int linger) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (on) + { + if (linger < 0) + throw new IllegalArgumentException("SO_LINGER must be >= 0"); + + if (linger > 65535) + linger = 65535; + + getImpl().setOption(SocketOptions.SO_LINGER, new Integer(linger)); + } + else + getImpl().setOption(SocketOptions.SO_LINGER, Boolean.valueOf(false)); + } + + /** + * Returns the value of the SO_LINGER option on the socket. If the + * SO_LINGER option is set on a socket and there is still data waiting to + * be sent when the socket is closed, then the close operation will block + * until either that data is delivered or until the timeout period + * expires. This method either returns the timeouts (in hundredths of + * of a second (platform specific?)) if SO_LINGER is set, or -1 if + * SO_LINGER is not set. + * + * @return The SO_LINGER timeout in hundreths of a second or -1 + * if SO_LINGER not set + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.1 + */ + public int getSoLinger() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object linger = getImpl().getOption(SocketOptions.SO_LINGER); + + if (linger instanceof Integer) + return (((Integer) linger).intValue()); + else + return -1; + } + + /** + * Sends urgent data through the socket + * + * @param data The data to send. + * Only the lowest eight bits of data are sent + * + * @exception IOException If an error occurs + * + * @since 1.4 + */ + public void sendUrgentData(int data) throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().sendUrgentData(data); + } + + /** + * Enables/disables the SO_OOBINLINE option + * + * @param on True if SO_OOBLINE should be enabled + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setOOBInline(boolean on) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.SO_OOBINLINE, Boolean.valueOf(on)); + } + + /** + * Returns the current setting of the SO_OOBINLINE option for this socket + * + * @return True if SO_OOBINLINE is set, false otherwise. + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getOOBInline() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_OOBINLINE); + + if (buf instanceof Boolean) + return (((Boolean) buf).booleanValue()); + else + throw new SocketException("Internal Error: Unexpected type"); + } + + /** + * Sets the value of the SO_TIMEOUT option on the socket. If this value + * is set, and an read/write is performed that does not complete within + * the timeout period, a short count is returned (or an EWOULDBLOCK signal + * would be sent in Unix if no data had been read). A value of 0 for + * this option implies that there is no timeout (ie, operations will + * block forever). On systems that have separate read and write timeout + * values, this method returns the read timeout. This + * value is in milliseconds. + * + * @param timeout The length of the timeout in milliseconds, or + * 0 to indicate no timeout. + * + * @exception SocketException If an error occurs or Socket not connected + * + * @since 1.1 + */ + public synchronized void setSoTimeout(int timeout) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (timeout < 0) + throw new IllegalArgumentException("SO_TIMEOUT value must be >= 0"); + + getImpl().setOption(SocketOptions.SO_TIMEOUT, new Integer(timeout)); + } + + /** + * Returns the value of the SO_TIMEOUT option on the socket. If this value + * is set, and an read/write is performed that does not complete within + * the timeout period, a short count is returned (or an EWOULDBLOCK signal + * would be sent in Unix if no data had been read). A value of 0 for + * this option implies that there is no timeout (ie, operations will + * block forever). On systems that have separate read and write timeout + * values, this method returns the read timeout. This + * value is in thousandths of a second (implementation specific?). + * + * @return The length of the timeout in thousandth's of a second or 0 + * if not set + * + * @exception SocketException If an error occurs or Socket not connected + * + * @since 1.1 + */ + public synchronized int getSoTimeout() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object timeout = getImpl().getOption(SocketOptions.SO_TIMEOUT); + if (timeout instanceof Integer) + return (((Integer) timeout).intValue()); + else + return 0; + } + + /** + * This method sets the value for the system level socket option + * SO_SNDBUF to the specified value. Note that valid values for this + * option are specific to a given operating system. + * + * @param size The new send buffer size. + * + * @exception SocketException If an error occurs or Socket not connected + * @exception IllegalArgumentException If size is 0 or negative + * + * @since 1.2 + */ + public void setSendBufferSize(int size) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (size <= 0) + throw new IllegalArgumentException("SO_SNDBUF value must be > 0"); + + getImpl().setOption(SocketOptions.SO_SNDBUF, new Integer(size)); + } + + /** + * This method returns the value of the system level socket option + * SO_SNDBUF, which is used by the operating system to tune buffer + * sizes for data transfers. + * + * @return The send buffer size. + * + * @exception SocketException If an error occurs or socket not connected + * + * @since 1.2 + */ + public int getSendBufferSize() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_SNDBUF); + + if (buf instanceof Integer) + return (((Integer) buf).intValue()); + else + throw new SocketException("Internal Error: Unexpected type"); + } + + /** + * This method sets the value for the system level socket option + * SO_RCVBUF to the specified value. Note that valid values for this + * option are specific to a given operating system. + * + * @param size The new receive buffer size. + * + * @exception SocketException If an error occurs or Socket is not connected + * @exception IllegalArgumentException If size is 0 or negative + * + * @since 1.2 + */ + public void setReceiveBufferSize(int size) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (size <= 0) + throw new IllegalArgumentException("SO_RCVBUF value must be > 0"); + + getImpl().setOption(SocketOptions.SO_RCVBUF, new Integer(size)); + } + + /** + * This method returns the value of the system level socket option + * SO_RCVBUF, which is used by the operating system to tune buffer + * sizes for data transfers. + * + * @return The receive buffer size. + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.2 + */ + public int getReceiveBufferSize() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_RCVBUF); + + if (buf instanceof Integer) + return (((Integer) buf).intValue()); + else + throw new SocketException("Internal Error: Unexpected type"); + } + + /** + * This method sets the value for the socket level socket option + * SO_KEEPALIVE. + * + * @param on True if SO_KEEPALIVE should be enabled + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.3 + */ + public void setKeepAlive(boolean on) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.SO_KEEPALIVE, Boolean.valueOf(on)); + } + + /** + * This method returns the value of the socket level socket option + * SO_KEEPALIVE. + * + * @return The setting + * + * @exception SocketException If an error occurs or Socket is not connected + * + * @since 1.3 + */ + public boolean getKeepAlive() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object buf = getImpl().getOption(SocketOptions.SO_KEEPALIVE); + + if (buf instanceof Boolean) + return (((Boolean) buf).booleanValue()); + else + throw new SocketException("Internal Error: Unexpected type"); + } + + /** + * Closes the socket. + * + * @exception IOException If an error occurs + */ + public synchronized void close() throws IOException + { + if (isClosed()) + return; + + getImpl().close(); + impl = null; + bound = false; + + if (getChannel() != null) + getChannel().close(); + } + + /** + * Converts this Socket to a String. + * + * @return The String representation of this Socket + */ + public String toString() + { + try + { + if (isConnected()) + return ("Socket[addr=" + getImpl().getInetAddress() + ",port=" + + getImpl().getPort() + ",localport=" + + getImpl().getLocalPort() + "]"); + } + catch (SocketException e) + { + // This cannot happen as we are connected. + } + + return "Socket[unconnected]"; + } + + /** + * Sets the SocketImplFactory. This may be done only once per + * virtual machine. Subsequent attempts will generate a + * SocketException. Note that a SecurityManager + * check is made prior to setting the factory. If + * insufficient privileges exist to set the factory, then an + * IOException will be thrown. + * + * @param fac the factory to set + * + * @exception SecurityException If the SecurityManager does + * not allow this operation. + * @exception SocketException If the SocketImplFactory is already defined + * @exception IOException If any other error occurs + */ + public static synchronized void setSocketImplFactory(SocketImplFactory fac) + throws IOException + { + // See if already set + if (factory != null) + throw new SocketException("SocketImplFactory already defined"); + + // Check permissions + SecurityManager sm = System.getSecurityManager(); + if (sm != null) + sm.checkSetFactory(); + + if (fac == null) + throw new SocketException("SocketImplFactory cannot be null"); + + factory = fac; + } + + /** + * Closes the input side of the socket stream. + * + * @exception IOException If an error occurs. + * + * @since 1.3 + */ + public void shutdownInput() throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().shutdownInput(); + inputShutdown = true; + } + + /** + * Closes the output side of the socket stream. + * + * @exception IOException If an error occurs. + * + * @since 1.3 + */ + public void shutdownOutput() throws IOException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().shutdownOutput(); + outputShutdown = true; + } + + /** + * Returns the socket channel associated with this socket. + * + * @return the associated socket channel, + * null if no associated channel exists + * + * @since 1.4 + */ + public SocketChannel getChannel() + { + return null; + } + + /** + * Checks if the SO_REUSEADDR option is enabled + * + * @return True if SO_REUSEADDR is set, false otherwise. + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public boolean getReuseAddress() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object reuseaddr = getImpl().getOption(SocketOptions.SO_REUSEADDR); + + if (! (reuseaddr instanceof Boolean)) + throw new SocketException("Internal Error"); + + return ((Boolean) reuseaddr).booleanValue(); + } + + /** + * Enables/Disables the SO_REUSEADDR option + * + * @param reuseAddress true if SO_REUSEADDR should be enabled, + * false otherwise + * + * @exception SocketException If an error occurs + * + * @since 1.4 + */ + public void setReuseAddress(boolean reuseAddress) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + getImpl().setOption(SocketOptions.SO_REUSEADDR, + Boolean.valueOf(reuseAddress)); + } + + /** + * Returns the current traffic class + * + * @return The current traffic class. + * + * @exception SocketException If an error occurs + * + * @see Socket#setTrafficClass(int tc) + * + * @since 1.4 + */ + public int getTrafficClass() throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + Object obj = getImpl().getOption(SocketOptions.IP_TOS); + + if (obj instanceof Integer) + return ((Integer) obj).intValue(); + else + throw new SocketException("Unexpected type"); + } + + /** + * Sets the traffic class value + * + * @param tc The traffic class + * + * @exception SocketException If an error occurs + * @exception IllegalArgumentException If tc value is illegal + * + * @see Socket#getTrafficClass() + * + * @since 1.4 + */ + public void setTrafficClass(int tc) throws SocketException + { + if (isClosed()) + throw new SocketException("socket is closed"); + + if (tc < 0 || tc > 255) + throw new IllegalArgumentException(); + + getImpl().setOption(SocketOptions.IP_TOS, new Integer(tc)); + } + + /** + * Checks if the socket is connected + * + * @return True if socket is connected, false otherwise. + * + * @since 1.4 + */ + public boolean isConnected() + { + try + { + if (getImpl() == null) + return false; + + return getImpl().getInetAddress() != null; + } + catch (SocketException e) + { + return false; + } + } + + /** + * Checks if the socket is already bound. + * + * @return True if socket is bound, false otherwise. + * + * @since 1.4 + */ + public boolean isBound() + { + return bound; + } + + /** + * Checks if the socket is closed. + * + * @return True if socket is closed, false otherwise. + * + * @since 1.4 + */ + public boolean isClosed() + { + return impl == null; + } + + /** + * Checks if the socket's input stream is shutdown + * + * @return True if input is shut down. + * + * @since 1.4 + */ + public boolean isInputShutdown() + { + return inputShutdown; + } + + /** + * Checks if the socket's output stream is shutdown + * + * @return True if output is shut down. + * + * @since 1.4 + */ + public boolean isOutputShutdown() + { + return outputShutdown; + } +} 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. */ - public native int getTotalOut(); + @Deprecated + public int getTotalOut() + { + return (int) getBytesWritten(); + } + + /** + * Gets the number of output bytes so far. + * @since 1.5 + */ + public native long getBytesWritten(); /** * Finalizes this object. 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" @@ -687,207 +685,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. @@ -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 zcmWIWW@h1H00HKDB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z8_cx!{so$v!pOkD1Ed3jEKSYL^^$WEi;HvpeZ3Dmh|HP3<)>M0=$^_C)3hXPJSKYS zH&t+Gg>gN~44%G8^{#^tYyGt44Ndk3(M~bK_ddh9?eY#`alzF_H_bVQr`q4?l_r`Dki}P6&ey~*uI=QqY z#OSSFxhF);FlK#0PK(6@P3dPh&iv@_(JTKQ)0zEyL*w^jExrz~e0a5-py`XeBOkRiTaI6v(b|&xPWR0ph5&CyCN2itu>}k(B!ComsM^qD r51~gL$b@S{ic5sW*kcG`LMxDo9A5$6tZX1zW+2=Qq}KrBlz{;NVu-iI literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.cni/cni.exp b/libjava/testsuite/libjava.cni/cni.exp index 22df1462c1d..61fee3b0200 100644 --- a/libjava/testsuite/libjava.cni/cni.exp +++ b/libjava/testsuite/libjava.cni/cni.exp @@ -4,13 +4,13 @@ # of options to pass to the compiler. Returns 0 on failure, 1 on # success. proc gcj_cni_compile_cxx_to_o {file {options {}}} { - global srcdir + global srcdir subdir set name [file rootname [file tail $file]] set oname ${name}.o # Find the generated header. - lappend options "additional_flags=-I. -I.." + lappend options "additional_flags=-I. -I.. -I$srcdir/$subdir" # Find libgcj headers. lappend options "additional_flags=-I$srcdir/.." @@ -28,28 +28,33 @@ proc gcj_cni_compile_cxx_to_o {file {options {}}} { # Build header files given name of .java file. Return 0 on failure. proc gcj_cni_build_headers {file} { - set gcjh [find_gcjh] - set jvscan [find_jvscan] + global libgcj_jar - 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]} { - fail "$file header generation" - return 0 + set gcjh [find_gcjh] + + # Currently we only build a header file for the main class from the + # .java file, and then others on an ad hoc basis. + set list {} + set main [file rootname [file tail $file]] + lappend list $main + # ... for instance, an obvious hack. + if {$main == "shortfield"} { + lappend list shortfieldbase } - foreach file [split $class_out] { + foreach file $list { + set cmd "$gcjh -cni -force -classpath .:$libgcj_jar $file" + verbose $cmd set x [string trim [libjava_prune_warnings \ - [lindex [local_exec "$gcjh $file" "" "" 300] 1]]] + [lindex [local_exec $cmd "" "" 300] 1]]] if {$x != ""} { verbose "local_exec failed: $x" 2 - fail "$file header generation" + fail "$main header generation" return 0 } } - pass "$file header generation" + pass "$main header generation" return 1 } @@ -64,18 +69,18 @@ proc gcj_cni_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_cni_build_headers $file]} { - # FIXME - return 0 - } +# if {! [gcj_cni_build_headers $file]} { +# # FIXME +# return 0 +# } set cfile [file join [file dirname $file] nat$main.cc] if {! [gcj_cni_compile_cxx_to_o $cfile]} { @@ -106,7 +111,7 @@ proc gcj_cni_run {} { # For now we only test CNI 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_cni_test_one $x diff --git a/libjava/testsuite/libjava.cni/longfield.h b/libjava/testsuite/libjava.cni/longfield.h new file mode 100644 index 00000000000..51ea17f44cb --- /dev/null +++ b/libjava/testsuite/libjava.cni/longfield.h @@ -0,0 +1,33 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __longfield__ +#define __longfield__ + +#pragma interface + +#include +#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 zcmWIWW@h1H0E2oZGYA7hasnw|*APctPd_*P02F0AbaNARfYKl=f~?Hf(a+P(H8@1i z*UdLEFEcH*xI{NBwWv5VKhH|RP|twNxhOTUBsE3XsnSZpK+n=hH$6F-iwkBt2Ll7p z5ns1zF1^Oc!0>{Jfq@@rdQN^`dRk^`PKsV~PGWI!Zs1!#VMh_$%XyKzdU7LgHFYh} z*c3aZt7}%m7xqqjk7hMhl}GDyt<7$~Vb_cnntyQl#T%0{9x?w2IA*+?*Co}w`1zT= z<>&4df4lzvy**>jhc1iUT6>!NZORMxzp;%or`J7EU(fQ%?{UZ4>O%j>6N_~W*&`e3KFx1dVi8l} znsIT3T4GX}ST|Ga1?jI-{Nko-91_yl{>MYM=TM)NT-98MjmyPE4;d% zGo#+hH$UoC$3 zD%T#ry3}{B#W^AV(xmSBh5xpzmMVRz5xO#$Km4jLm)`3SE|1ifxLFIGp1>4lEyuh2 zRqy(x)Aj0ZPD@*8ck1%AqKjv)#6`_~SJHnmfqicJo@1A@%edZkzq9np6P;?9b6sNb zt6N_Ur|sLIQqa7y+yZbtH&4>9cmPW{uvrs;cpU$$g*eBtT8Y}HM>C0F@fIC0?; z3%}mUT%o2dVw$U#L^yU{Hv5?2wWC=kKH(qxk>ABR+s)J~&V2n6&ow(pJZKVE)*72+ zz4qtz3<2JZOk51OQz9@OAOWOwiK-1fWg_&b1DSAbNa++|G4|AlFrgL5L`#bS-mGjO Q1 +#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 zcmWIWW@h1H00Gu|B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zL6*@0n}Md@g_>TRkzZ7jmYJH9l9X7Ss+XLTSX}JtXU*3XATY<3D&LN^ z9XXY;aAW;}V0p&4rU!f1_~_U)v>WLiIg(VKRyJv7ZT&ob2JQ+ooD|X~ zXZ3Bpnr>q7g9+7>*9}VgZ5SCC)&Q{p(4z=XLOmD|>&@gSVtf5+==QBwuj=Sdy|<-R z<;B_;t{hx1j|wbem%Qt#ULt<&ZpXh+el?LV%)bIJ%5uugDBgd5r?LJ1`S%&lT{xxW zx?$R8gRc2g=KPLa!nyl)h0e4|33^v&%k*-XC@iTJ8ZX#WmVRPt+zW4R zHZHSI8#w&pSwHDT_N12RA1hAtYCoBBEKM=QVZ}E2-{&8>mONLQQN~`lr0Jz=dPZZw z3FDBQHwRUoh%LO&Jz3$}$y#a28Ew^eHCGewx`|oZ7Ns1%xayjM&!WyfVNn-u?t2>I z{cwggZ(U87{$~eywFHwLhq8^|6 +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 zcmWIWW@h1H0D%<^N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zq)JshH5eHfwgNFP(DZ;HLsLUzW4+{@#Ny&ye_!vz4g$58mw3+3`<3}xTyBpm|Fi%b z%{Z2Y0wHTS9%WwEOZA@Z<(!XyPk%me&#PR+fqq_wMl?w3*8{g_+s4(MHEf^}oC&tu2h$1m-_mOJ1c*| zZPqB$*N-J%Yd05(oqFid}x|nYb8m$1E^hkpNOWqiREsX@nkiAQP?) jDc%tlV~ + +#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 zcmWIWW@h1H0D+YaN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 ze!bYUK8ulo!IX)Cffs0cK#-w@p`n>xa!z7#acRIwze52cw*5}gr-TKcGqTQE#qDW+ z%;oX1BOXpuIxe=Z7K=NfEbF7IRyR%W%8n1re>5J~dd+DnFFam+UN-Ljym$tS2=fU^ z2D6r*>wBCd?O`lZ^{zMi^W6>6)*q`D%{7=&og3d~bTj?Jo8IEKFOF9P)q=!y3Yd4s z$F9Bo+J!|%`GoP4KPTRrED_)RQTOnYyFVJelO)T^Mek=gw>{b+U!i1IY#VRzqFSC= zH$$UHWWnVNekzmeEnbE2#Yh_Y+?;+mEhY1^WMAZ&i@bsHA8QV!gk%e;DK05!juqzS z`Q!1UE@WRv(*EF$2R58A?BnE44dD%uIM%+UNGG|qu5xLRUGAi9uV0z17XA8oo5hq@ zI(9$4OjB}bU16%>dDw-`>L{CQ=q9f(i+;Aek*)lqbV)2|39nPu6wR84-YKE(X`cm? z?-%@4Ub%5i)Vw`9YKEp68#}#1f7&kV{_L+|oAC1e0-GWc!!?uUAG&27;LXUy#eh3) z0AmITAf*&kZRlwQp+_Caglj`eIS7lfrw4=ytw1J9>Im>=Wdlhw1K}1REd@+M3=9CB Ced(A0 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jni/PR28178.h b/libjava/testsuite/libjava.jni/PR28178.h new file mode 100644 index 00000000000..e686439ecf5 --- /dev/null +++ b/libjava/testsuite/libjava.jni/PR28178.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#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 zcmWIWW@h1H0D*N4N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zW=ksj$S^W6ECFI(py>fYMiz$V7JA7!iN(da{@&h)9R&WVc}^~weJv`twqe1%ApU7p z8xuY%RcL92?Wwr6#QWx?B?7?U%FFg0yV%4P`aur!_b{Soq1? zbdJ547H@!SZ-D2rB9jY&dY>&9O7hix=!!{yZ2Wk;*@cV3)-ji%f2Y+N@o zSXLZX4LEgh(lE|-dlmo3_MKaxRn@^?=67S8%%+}Iw3)iG^O@JC{V9bX znAYxR4BfWgaMRh%t#kbYycwCe7;wiXFf5S(Qrx0yLyujA9(5oSt_>-!5f)>QL4*md ZKqg9j26(fwfuxy%a0`$=1B`SA1^~a}%%lJS literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jni/bytebuffer.h b/libjava/testsuite/libjava.jni/bytebuffer.h new file mode 100644 index 00000000000..33b5c3aa061 --- /dev/null +++ b/libjava/testsuite/libjava.jni/bytebuffer.h @@ -0,0 +1,25 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#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 zcmWIWW@h1H0D%b&N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z?!A=C`Nzb-@R*H(K>%oaQe{bMQfXRRYLQ-YPGWI!X-IbPWd{-4(~C7zCkDx}im(c5 zE>O_g=MdtsA&QYzzGMB87NLyEGfgZGpa0ZdCUac=L4VPna=}dpC-Co_J-hhbyuIn= z_5Xi<O%eua6B6gP<3V56oIo%r7iMZ_>^M+<=aR|w zY+Z|Wd-ud|%&EV-<U(}X>jF^L`DjT@*9ZA+%Rr)&3?b_O%C!eSb)mof?vRvqVK)@#DcWx=KzZum=K4SV69C6f}S-(X3 z@V`yH+3I_{xBM5qC$Zq{CCS@y&-OoUo@l@K|N9U34lHwUk7?d{fc=|({VK-!2~t0F zCj8ug{LHo;oj-$RZXDXi7#&}IBUx>_-#Xi*#%5dQ-Mfm`9{16oAF{66q5Q?H?eE3k zy0))hckP3dY`P8GiN#ePCOZlBdR*A<7%#5*Y4Qn`?2KPt%1YWHvU_K9-1M0F#c*H0 zlChNg{>8d2>U@(Ib^6Px&i)~=(j(o`_0|=wOMIad&1QFP$-d&k?8W8(ak7$sTwb;V zZ*%KLDYs+$8V|9wo|Iaqac5oPtV4gL + +#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 zcmWIWW@h1H0D(yjN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zJ}~Ef*#R{59T0<@mXuhWs+XLTSX><2yPNBfgMjP%XDbb7eR13n!ri?021k=Zl*YDA zovU*?IG;QWzZtgS}z{_NcAGiRRvu40~X$Z(-S2IKiw&fbH)KYD)~`s@8O z>u`xMkT9NkBI(=$K6myc@t2+v0T;I|Je*K)%}8+eC#jB{^UVwIvO?Z3B zi2Gth)Gv|9tCIE?s{)*|m$=;x@wDC`eI+~K>eqMm z3p{VF&HrA9>OXz%x)-HP3=Cl`3=G^r|0O5p41*e`e)ct@$?Sl+eDm@;dhaF8XGRJMUFLKK|jF|AKkj zbuC_deVSH$?|$VuOaJ|Ue|=#+V6`o!g~eso8G|Y#7sjOKuO^Hai!NXAy?awc;M~*s z0d>c-G6P#gGy+nOu&TswP!2PhaZ~deyRG}{RT76S84C|5t(|pm!%SNNgPE)6K9Y$x zw^m&@eZ|XV-!|OO&G?pl&0xjSkTPj44&|jvoSi|s-Tu$cZE#Oaevt7y*Zj`14V4FS zR}`6xP7zMyFIY`#2?iaFJty2RA+na)BP7~|5%I4MOJ0+mt8D6 zJv60ord4EZ`?L>b7uG&fjykZ=)a073>%_%!d)y9ktvjW`F~fp6q_Fq5lKiJBiI?`@ zYfQENr&Ky?b?VoXO!gbKYyZAH>yk42jLam_SJzUlI8%zwpDPMo*d=0b7UH8I>pD~G zmXA8~)LmD%&yI3^?x+3kdE8U39Uc`o-kP;(C{3sc@0#}Fth}b^-;NvA<+E7kaygZ# zb@T+QSw7OgFgx5O%+KJT`1Cs|F#uQsC+z z<@5O0ZibzX&v~cIYkkV`sFi-OZN+EZJKuJ0%Kz{sox|V1V0oCuvAf|NpKp5qKQm8B zxgmDeU%R8CzdZO~Jd=Chc-B6^n~{kNoYSxu0>C7S1dxgZRBh;m0z!{EkO|j@R74;w r#-8yJCbR;Xh++U;A9{vD=u2fp$zB28tZX1j79e~Dq?v&^kbwaJsi)lF literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;L3N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z3hOd;cQ7(A>}6tL;02nVTv1U1G)ONwC$YFVH}JmyIvd`<_yJ)m~Q@6h)|b-u}u&wW1F*<;f9jk9<0y^=-V1?7t(RK4B{ z>Fod8mGFM4^UFmK92dM=@JT-I|DTZ46A##Awd}OuZMQW&ap=vQ3t#dNd@o%#>G8UQ zv)`|Dk?V11p1GHYeWS{hvLYvbF)`Lx1*a9Zuykn%cI7YWyC=2do6p{F2BEvo+zMlP z_dsv8-*KCS&+%)$to3I^8t>xjpuXEa1^9B{t($Xd8dIPD|< z=hz;nqj9J0XPM4+j5kpeh-mZv@av^T_mh1_!Cj{(=gjs?OJ7=JVAncx^8c=ahabE( zHg7)`|9Q%*d*)|qPic$asM6RF`zWhh`RnRmxqY+yvI-jA0*dPn{pxyF8gH7uIl(xb zRcvCU)4bSyhbpEe8~sYZ!?$mNq))+nW|`m0IoVCWFDtP`@q`{zw%NyW + +#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 zcmWIWW@h1H0D-9uN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zRy}!Lw48~7p`Mk2K?rDiN@h`Na!FEYT3Tw6UUE)iadB>NZ180V5!>iXOL)1r)R-xB zXhC(9$j7I)eROHE;;x1eA&Lt>g7KV|FT?bsIpDU z_j>W++_uJ?cgoFS-}>jWB&qonFgFW^z1<{gB`)JEktUJz>s#T`wd`dDCk-a9)!1QB zu=nz!8~IBfRrzhL4J>csFWdXl;6?N&2VrK3ryh>!Gjdq^WUZ`&3SJtOcmS`Di5mfnOZDvSbw|gUDx}$-!9*Mt!sIb^-!sg1i<;gH@)VrT z`qu6^bIzpdGVP>Nx73w!+?SO5j#oH|U(3^M^ItV(-s7f#2O3G<=N8|Ro9X^BHej3O zyvMB~VutogKBe&y(T`>vShAwbV%Y@2t9tFNnSpyB&N#>$xcBLdqrQQm7I}$&A)$S@ zXQUfs*I8#+>|Xa{>!nxv`}NML3jDn(a9%;E!+Cjm^Sx)9-R|?#hRMqml#{OYPI$@xqVDj^!u3UxctYOgf&Y{OFk5t$}SFx^M35j zzFtT7?2E5kMW=n0`r60dL%QJn0Q9Dd%m>DoU699cuDERM^Y>AsLXW@ zid38XJHnwitZ#$MZW$r_w(@$$0B=SnE(YAW3z)W%08(B<)rOwi5PH;sOt?0ryoazD ddyYbw& + +#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 zcmWIWW@h1H0D)-@N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z?Bo+>Z((F$*vZ7ezzsA#Ei*MIMK3ugvA8%l@U-9U00CQJ>y62IP97c=UmUr&SUeL9 z)oH$=u(2y+X~E-^nvd{reH|tsu;On+ok-HU=)jJolgZ~_&oMTxf0tj+ z{G*|iThi%Uz{v&a2UVu{{VCor_~T*V{{QaMoXt3SCznCT7p_Zh z?kFEi>pJ;LXUy#eh4F0b>{mAf-4|ZRlwZp+_Caglj`efe4GSrz?aB atw1JHDhu#tWdlhv1K}nhodisX3=9C + +#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 zcmWIWW@h1H0D&0|N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z-psRKp3TU>V9Lb6AOti$Ei*4MCq6f|BqKjXFF7Z%xHvZ;)|<&u#P;#4cf0cHvge0I zHHxWRTztvCt#<6YJ6~K2o|p2pNKUf-cVabP`R=Qm!~C}}vu(atwnV#GnQd*%&J+&$ zYS~1kl!HyV3g6OKS=Mm4+&{+jh{y2wVfNHcJciD^woxwo9Cs*&e&}mn?i3LmcEd* zGk?vORnJ*?IP@y^FFU|0Et#U5vmhg3vZ672#^NPmChtN|D;BPP$@^!U#l)=UD{s!f zTU{v98PVKj;N!9&I5!}4(HbZJ+4>!J7kl@$_;D**@j7K)@%;CQd&*Upl=7Y{BJ2ET zNqK9&F6mZk|8xF?VxZ=xGtxJ%N_6+8>%8sVV0P%&6a~9NarJ!8C7%6>-LC|;?Pmz^ zW@O@Gz@0*X@q+}A(hI6K^b~{8qYh-kwIQV+gvHoX1;T_@AQLl<1bDNufz&Vq;Z7i} J08C8`3;;p=^AZ36 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jni/findclass.h b/libjava/testsuite/libjava.jni/findclass.h new file mode 100644 index 00000000000..d0d301e9359 --- /dev/null +++ b/libjava/testsuite/libjava.jni/findclass.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#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 zcmWIWW@h1H0D)NzN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zrs%%>wwjTF;RzE113%F8w9LGeR)$Z{^0rLh$%$<|&7Jd?vYX8M!B{tCqf}4RrS^BLUWKp!75eq~^Vil5wr?ao z3?jB0ebBPYH{nr{ycAk@p4*Q99as9(RV$A0Jaarcy|IU1(xm)vmtv(%)ghNdZM?@1 zB=}!D>Z~kg%I@r8$n#6_yVoX}k1rY(Ur*arP^i+pd(k6ly^{`e%(7DjV?S-um-y0L z<|r*?#CPe!$`#^XRX+RV-NRo*Xle@WIhK0B;N871t1~a2R+sfjoMqDL`{-<0f|1S~ zVKucS54J99jBM-N&*JX;vRY}AVRKJsYuwM=7T&fw&4E3d7dADEKJgS?f8F(gVNQAX zi!D3dUHoS*S`<KSO_m+{s0Pm-3VycRPCYD!r8dBQsYk zIpMLS^8SLovR7s-z2!2kRp;3L;BU7@4qOpdyJt}Rw`b>>Kip!`5m|{_TYLA12G3CG zU+7TAv^ze)n~{l&0eA8OMlKRSN^Gdw(32ZNk2;VE*M^k%5Ef%kQV0`TflRan7U0dw S22#Kbgxi30EHE81FaQ7tO%8DY literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;*JN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 ztlzEao65+*FolVMfg5OgW?Eu$s$OzVVsUY4;B7BvLjl|1x9`ki*IxVmcin9+vH9Bj zIGO@N0$4t3-gWDJ<9coFh5Apf@*yIB80@{~Txp6jnQ$_t=-HW>Cx0J5E#2U|=JpAJ zO}}D(opRGpeBgEOl$XNd?o*C`y?(Cb?M`UbwdY&Ud2X8g3ye6U zX{_6ORZrtWbE3GbMavvPW#Lkpa=}{9b<@5T>7?H|%AyvTamPpUJL~1brxUuD#sr<* z@G4=}>|IwrFU&EUazN)$IKsD;j{O-{th&(91$W~@=qgc^H{*-K>$fU(vA#5_Qp zTbZ1nTL6hZ>#zCO?bz7ZoZ0-!*wozEw%s}P?g%~VKqg!pQsPHg sj6F#sOlSo%krFt%M)c4`XmkeV4&<;6@MdKL$+7_98z6lbD9^wE0F8-Bs{jB1 literal 0 HcmV?d00001 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 zcmWIWW@h1H00DJfWiv1XN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zt6Phs)EOBV4g)bS(DZ;HLo-VwW4+{@#Ny)IfYV-w9Yky=o6R(n&COl=UMo+fG;u|f zf~a|uf{3o$9raQU&CH-jE-%twIvs75f8gF}zHr}$^1}Pi?;QVq{Izrg-!=;qwtM?u z$;iExFA$N;a{hjAtF!s1x8C_0>|F;f_!c?LH4s_zjo103$-b#-TpHXj3?x?VRhT6H z^2FqmTVJQC=@xds*6n4ZOp;>m6VEmyt@~@m z9E}D01-|~`mhzAI=QyJ>bpE&PpB!h;5AbGW;$pxZvA|$O0!Yz}strA&5qi{tOt?0r iXh&F#Ju(p{v;vtZQ5)dR$_A2V2Er{s`Z_TF85jVNT*RUP literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jni/invoke.h b/libjava/testsuite/libjava.jni/invoke.h new file mode 100644 index 00000000000..553c598d7d0 --- /dev/null +++ b/libjava/testsuite/libjava.jni/invoke.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#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 zcmWIWW@h1H0D-v;N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zl>Wb*(ZtBW;K{_mzymZrGp{T^J5?_^C$YFVH{i72AqNrL!>dy@PC0+*%-@*6RH%KV zx3iNoP?$$LoZ06@LZ+{-O3gIA2|GS8|Iv6nH*1kv$;Fw~?`*%%F_xd7|DM6GFiGLi zgn)NPswc1|@yuK}qhpuy9ml`Rtf%a4IGFQI=IN>ja}=|}t#~$auh*aKp_JP2fAN;( z{*5w`8zwAE%=dZYq@AO^zV5ZQc?SDFk;QGDsck6_{HI#4xSAys`Goh0#3$}$x@#63 zNU+H|QJA^>?ytp?0yY^TR%%LfeAY%rTz{;2T=?&_SHBL;pLJu&458{++icBuee;-wURDS*l&So$3u|bSOJ+b-XI6q!?AxI5T>d;$-b}8&`GnYRy}D zc!TSInU4;Yz6DDrIyG)HeET=uzthhxeb2A1xA9R*EQ@tk^0sq-EBxTBIeE*wqM+H2 z3)(*E_qT5|GMTTs#OXW7s`vnJMkX!>+(`x)VMqWe0ikL`PeKSi>Odx38&ZNoSd2ZH dAWUclGLaKafHx}}NR}B0Hv?%yV8UWx008PM`&Iw| literal 0 HcmV?d00001 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 zcmWIWW@h1H0D%P!N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zz8rGan8V1x;K;t=aqq`W>SoxbVekL=0CS9e8oi>@hJ`|xL+#aaP< z+sF`)Jy~mah$WfjEb&o!UvjoQu07AV)ozLCq~2+pgFdcm6fP0@wDgp2j6}u1Ti$1< zudLW-eLFAgZoz4!6JB<_obhsdFH_r=b6a>@=aenhw7DX^;d%7i1<%e^{E9yL+SUI0sQ{4>nOi~| zE-*V61#jZqxmD8gHOt<5l}Wsv+XaR5xq?of{CB+H#qz@EE#2(q1V+~FUh0p5&ETnxAq z6EG@~08-LI)rOw95PH;sOt?0rq=v8 + +#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 zcmWIWW@h1H0D(mfN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z7^h_Z)?;E|SjEi1zymZrH?gQBGfyu$C$YFVH#j?A$Wg?WxixZ{Xklf@?|`VSdUv<| zsB82WGHu(UW~$aZpKXTO?KjP9xH;{;?H!VZ>l^G(RirCkiYnV=Y@L42w)owhoA>MM z{xKEs=UWKzWcs&Ed|a$!@TC8!!jpzI=)HRFr&Bc^$))RQZyph8t>64`LlS}rQLUmYIffKe#_{O z&aHJS?!6VxvYs>8K6y;$&flS}l)fNr??d-X4>gQ+{;mJ9?fs5e$yYnNRQs}@?>)-H zd^#fW0rSIePwy!nJ{B22dClvq-C?Cu3SxJj%v>>{du>O0EC$%}t|LH?p)}3}!uL$$;roMi?N9bjOfvHWJN9}}l(kp%jGrN`woj;ku>lFrgL5L{8uV-mGjOS!N*I45aS@GXetx03=6F A!2kdN literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;8~N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z`2Nj`u4H6juwi0g;02nVm!F)ISX`_JCUXN$`yFx+vAsOaFM3sy=n?jP@-LhoNj*At zL{w0?S1)D;BzY=jx}$#HJOhd9z{}egSQb1eTJnEI zpWLm^`$dLLfo&xMooS)hk_GJzQo66k?@^idFg5b4^y*U=>|bnoRac|)s_}e6*e_<; z7aw9$5+D!{_8%a+-!KW&kwKUGy_KDoXd3K8L&)O#Mv%VlupL*k{a`6lP&mJ?Cb^P_S zTQVd5vjliEGI25BPAb5NLIOw$2UQz-(n07^2QuN>kP;HYV(iHSVL~gAiIP|Xyjj^m Q(#$}(1xRZGQxpRO0OmjV-2eap literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+|qN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zB+Kg_7BVt0*f23L@BvNFFH0@T$xlqtOU_9wF3t@&?RUsQ#MXKK6eay`|Bw%%F&=kz zH104oR8-7rN_@QPK+BXV*RD7nN`L9p$!&k2-{_vE)+~dQXZC)7a;NzG-2U_1%Nf!) zn5sy8NjT)JU+_yRrR~jynHHw!KeBI~{cgf{B_)%pd9Qb0WNl6fx90hjdf~a15F5`7 zsi6P6Ze2d!(eJZlbKlz}o(>G`0*94#45yi8lujF+K z3r@CPyo<4IQYTXw@0&$y68jf!XvtXARLl0((P5r_`DMYo?TcV|~rmpi5)6;L%9qcA(H{%pVZz)Ts{uO=? zesBkPGcs{8;7%jJ7(xO_DF#&=dYVD#Q3o>N+K^HZ!eZ>{0%1ZckcpZ~0=!w-K=RB$ NxD`k%0n-u#0|3#C_2mEn literal 0 HcmV?d00001 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 zcmWIWW@h1H0D)xHwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPk9k z9 zc|Gf-ViSCNR!=jFy3{V�{e*P_mMe>EP@ZEFxpH!6R(xA@#lHp#y_vHxVe31IF7cJ}D<+h@Fc6vY ze?!&dM6n}mS`mpF?kitgFFYP=m$oAMoPNx)!%sFUe+ipwz`4$SqxgsD>)lLjJ7>qQ zSlqCRQP{}y=Szd$<~N-YJf^Fk>R7+k$e3_rQSHgfQ>9k|m%6Jp&HnYouIzBj!bICY z&)wJ$uWR%zTzb#jeUE%h>!C@8zn2O-9#TBWC9s%f>NKCNPFDrrCY=Z^<$62SsK_O- z-Q}W+%Hqs(AJ6VloBEjZnplBlzEMVmdoG*p2~~!#vR{95n%Paipt_9n_LR&UhrZ2e z{j + +#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 zcmWIWW@h1H0D;vFN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zXc!8!D6d76=nOo>3=Oh*v=LVkkI}{*bJDsUDina2`0d=j2DIO)t zoX1+#)_o8(&?zb94i9R%c4g7S_L8;SDtdny>`z&&m5MJhEPnsxjHU7OefwOa`nIcNU0X)?{SQvFXP-T^@t#m=yW)=I8Eud>AaV4+1*QJ2!Y3mvigN}+U%bXp3P+$8|lj85qFOz2my{p&s*?eZj zjH5CWBV(g1eli-ZImD@HxkSBU`H}?2Ov!GZkBa+4brNrWp5&GL`TU9aSEkcd9w%*n zGO6s@uazNd*Tssnx4oY8>!+A>p8lmR(^zjz%sw)9N>kq_&%0Fhk8jg|xw@78Q}fq}Y@FDjE~T{0 zu*);)oI|4G^-TVquU=-p5AbGW;$py^WPlNd1dtLCsy6f_gwUf7WWu!}B`Ac&*pmsu bgjOIECD8 + +#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 zcmWIWW@h1H0D-j)N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z7H!zCe+X#mJ0Ru<;({V0V{>Cm6-T|~oW$Z{-QJB{ha3c4(uF5`Ctdl$DAv>(C2_@x zMNmb7V^M2TeP_GNBhAiV@nKD^@((i6dp#Z8MR3@{$*yFwUF~_bB)Ne|5J@zdz%;+|8DuJ zajq|Db41jIfUtE3U0rtux2*n<@Sg$IyO{?s*KG%S^EsM#ogm)z?X~4P6d=%&{`tF4 zj~jo2V#JEp1)44bj;xLX(nswshPxywb$*Nk`j-7ez$3LK1>H0MmQBBT{`*%p1D9Y2 z#TnOAp7h=IOjlg+_u-rbpJt66XF0OAmn&qP{-L6~!XWpB0mnJDjwfcje;D1YuG8SW zrgv`A;uu!T8>v?wyt!+8tW@M=iey!$Rxo3`!YO7Z-3x609pic`?N%pbiSoSotFG0b zl)F*t=!Lc>t=)%Wd+%!Xz0NrBhY{6}>9gK`O<-hTP-9|X;6+3!#D}^5zW%@ntv&1> zofW#KrlX7NAd9WXlx9N#VFg1&#i9chA45*DbuXQvJLAJ<8&8`b%zpxpWjZU>y-6#- zce~a&|JmcuZ)Fc?c4;ZGeD$0cdVaOIR#MB83su{+);;CbntLzchHz8Z_SoaaYSUXX ze!l1v$nO2^#h{(-e3Q>lEYdyvd{g* zl=uIO!#28l=q%GW4aw2JxQy@6x<=n6H}+W1^NNnKbSysRR3tPdrRr^^Q`@{l>H*FE z!mQ`|lp+i>I-C>N8EF^sOiRitR*94N_^0M|#|PQxXI~yX!d+|k + +#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 zcmWIWW@h1H0D+ASN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zd_|7mh+qVo%*4RJ2Q^&&^^Lw50hsBAH7nwi$JB49wor2QDc?K)u{?2l=?q$Ezl61H&S>bp4 z)wvVGUMRHNIGc6+b#(tCWIxkj%ARxjF|#@{ZcM52mKFT?x$ws0lT+_=TQuLBrMqR} zq6Y_B{k+*XDj3hYzHYl_>%I<&Q}@m)d3N`N%B)G8t8+Yg(bQ)Kg64XhlZ7VzPQ1)^ zcv-VjSWZsj@dIYgg^U*t>Sgg9TPwqQ@eZrx_T3*XUVb)Kw0*wsU4@EhhvRO=`E0_H zFRn;mxvFt`x%e5)HSDWiFo@)8i10eCGAZ2uG4#}=iIz3TKJmxQ=M7Es{2mgivG9-Q zM-Q)mR{asB+QB(C3xCxI%0<4C__iW!!+*vAZ$>6A2HZ&j7!gPSDPf>$Lr)qAJ?cOv mTpLnCL0F7E`Vl6y0-30ZA;6oJ4J6MDgj<0$Cost{FaQ8*`{T&~ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D%n+N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z#4ojREn#F}=wM=C;0Kysl$xGdT#{O3q?eqNSX`VNaMw@DQNniffp?qoCME@LTpE>K zxG{`r`>d+Oq)nWevu{*9zRDnMly=kfbkd{bo83;gjLtySINty19t-&x*!L2ZE-Ya18$*H1i%uNb|e;9XeM(ez@>Lx4d-CJ|8#R zsddx$dT`!w|J*89wBm=x;b)g7UfFmctKj1tkBMPnwQCaRs!isM4S%0#m07E-rW|zg z;=*QL#`?lfemA}aI3I1<)xZ75lSPh;Hve3?u)VzEeL{4?Q%OU4>mLdaVrB-qnR@o8);beEF@I$fyN;JvNz%GONF+OnSUgiaR3lb_-wZ1^zRq z54tj%Rkzsb9Ah1&kTt^GIB*KJrO__On$ z^cnVo|BR>+IxA-Jw@bi?22ZBPU*<;Of z_Q!2DahPsku}a=lbE>7!wVxBa+aCCDy?D0gLS^-R!CjxT&Kp{F2-zG^|1$m7hgVtT8A_tU@Ow-@B=7!p36V3}NU)I0!)-6ia>y9mZ8tnSPe#^zHlP=8IE5~^@ zwD1`RZ;N5v1K}#^+=}YoXKu)aOxqlAu63P^y{gOaM``|hu6KQQ_*`pR#N7JzcyOy`RO*bwKkt`q{0GcEg@Bjb+ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;X7N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z7BkrOMKLlkh%+%T2mnnl&de>yNsZ6UE742NNh~hT4e<763Y4(DE}333r|8m^xNjSp zHo9Jl$`od43Q5?KDHy)@#MH_Y7Ht34L`~W9g8j?lMenmxTJJxqzFWMnc!&J_{Pzs! z3UZVVCiE_`|8k_6CrQ|<+4w>Ko@XBy#P5E`<6@rXVY+J`PfE?X1v{@=v;9?i(N$rw=7UhKiueeiBVmD*X=cCD}ThW@wk4kyLr^)=dBGJJ9QVeCNC0wW*~Vjk3(2E zs9=9yW8!f)xz}Q48}pO;75B4bJZ2DOD_#*6XHf3AZ*7@H->yeNTBmOwb)UCN`iNrb ziVG8+gxJoi`HHU6>WRtf`XXHFvMfi@(bCtW*X$hsKA%v-N$Tq(q7U@m3`)*?TJNT_ z;D>MF%PCb`=LZ&f1?TKv@FzY)RC1OC-%9@nFSrA|8JV~ka3=>~WFP^g#DS^}J$WGX pr~{dBZAgg)VKMe3fH0vI$V5*N0p6@^AQj9&xE)CI0uv4c0|2O; + +#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 zcmWIWW@h1H0D&zHN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zP90;t@r;pyL5-P#ffs0cNk&nAd1i@Ta!z7#ac!_~@Z|sz+x3~BU0rx|n><8aJRDa( zn)IseVrXcZgV>HL-TW*A-#IE%AF}_5j(NPuNbe8hKaJy`FIhEQ{-|4Yf4BVedDZWp zTz@Zb&uDYhm|K-m`~L*B<%xL`$kuJdXRE``o3pm~r>j-a{5=;yEN79|tVh zGh0SmT2)-nhCBHBs&D5v#eB8Bb70GXkSQk~m)-D8tx^l%z7_uIlSxmtwbc7G>z=E# z9rrK3#C)@JO2bVpsa*ySs%JE68kjHqu_EE}^u#rf->WaYz2oeS)CaMD4E_8bPtTmS zM2|(xW{SbqqKE%z>Y=B6(p`=n3m2+!b^ z3a=9PTV{8_nR|7QpTnmOZKYoSJ$EnqA)o7ZYVzK0HZ$FvKdhRI*sEfr)cN~AL>y3^ zcwOssO8=?Q^?{P77wj}CJ)Ieyyz}=-g}1B17f!n+onP-Ao;Y)o#D(QN(xNkJqHES( zc$NI?8|$3ndppePVpp-Jg+!=+S#<2D_m*9YHhq-cu6OzDp-c|zvww@i{}HjR}n|8-mds6Rjc64ZWkHe zeXLZ+AX$*{XWr+lkJ4EGa|@*Y<`3{@Wa47Loi2f?0tq0cQdDi|=@g+y9ms@hLrS#> fi?OFggbA%cCQ8Z-@MdKLNizfC79c&13B&^ce&{p% literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jni/virtual.h b/libjava/testsuite/libjava.jni/virtual.h new file mode 100644 index 00000000000..7d9ef8246e5 --- /dev/null +++ b/libjava/testsuite/libjava.jni/virtual.h @@ -0,0 +1,19 @@ +/* DO NOT EDIT THIS FILE - it is machine generated */ + +#include + +#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 zcmWIWW@h1H0D)}{N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zT9g8m3mF+0%$OJ$c!8#uWfql`Cg$iR=Oh*v=LX#NJLDi>>%FiwN^obT>(S^g6(QmK z3j1dKxUz!tm`lyAM{R2~*G_YKl>U-g!uJn@{V5CXBhho(=gysMoPO@i@8hSX8<^in zbr?!8OS;v*lk6}~$@|%G-R50+R{FcO8SXqM-EL3b*V89qvb*S{fIVNHi;$tPnhvw^ z{#~>9_j;7*o>4k$@R;?_v59#n4zss4z5VmRb>SE5(xv9lJ>utl+r5rMf5&T1w!MaO z8BWgEoY<@!AI-D*_HTuc%{6V^qN`6YrEA=}{@>T|-~``^4^_EOM=T6&vU?jgqaZcF zT0P07)r|{+&Jo%>>b>oPb><2$bIo|%;x?3mQ zeL@a1Ycc`^-Gw+`gh+?v28At5pM2iK_EP^lr}do@d)W+4os8oD2&G<~ctbkz-|Th$ zj=hGd^XfE30_JR!nbab5dVf=F?}i69i5sJ2lS(_b=C^*i5jX41*@3=9BhvhCgg literal 0 HcmV?d00001 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 zcmWIWW@h1H0D&N9Wiv1XN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z=3R`p-541d?gKFo(Dc-@)Vz{nz2uz4;^N$ZSZ^jr5!=VBUay-yYguj7?b&WBw$gi9 z924ai{J7NIV|B8_TKJvDm(8yhE^4oHu-DqPn@z}qxp@DxJH_w*{`>idsetRgTa%*h zGpCss+$JqFcvgIGMuBP8ov+7}5?0ixO*MJW6SnqVsz=<5g$0QRKTdF(rFegm*PU}s z`(~6?)GKKiU)k$=exBe$PEL`6l@eN8+pkSpkh?6Xch=W+%{JF^MgCpfKHpiHiQjcf zN7Q)_&q~H=y9)h1oGT7Cr?I8B{eAt;_xY**$l9g7HB*@LmW0)8~%aWF6d0NxSZasU7T literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.jvmti/geterrorname.h b/libjava/testsuite/libjava.jvmti/geterrorname.h new file mode 100644 index 00000000000..957e1c23b2e --- /dev/null +++ b/libjava/testsuite/libjava.jvmti/geterrorname.h @@ -0,0 +1,27 @@ + +// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*- + +#ifndef __geterrorname__ +#define __geterrorname__ + +#pragma interface + +#include +#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 zcmWIWW@h1H0D%x^Wiv1XN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zQ`ospJs24nUI4KW(Dd}wlGLK2{GzWg!@&gaGPs~0WdIH`QR_==(9YV%($KRWHFshLQK z33&)@$~``L?oR6|j{ZE$Ck06SZoa>bSv5WDm_@jS+`^dsx%w8nv$HW^?_e&jG zTzJGgX?1Z}s{b3|YJCseq62Ghs4ZUP=5}MQGP77%ox<-9*Y($gjasj!Pl?~S)getu zidpmAr5euLbB=HL%o^a$$i&5fJNkivj|7ks1FAOknTrc%ItSPh zrzRaVnaISz(8a>QAOJMov8X7qGPoqaC{-^xC$YG=H2AikaG*#m`!XL%_fxWgjt;Gw zxhq8ua&s^>O)4;4srX1WjjKIv!`#d^&58P-B;})&FYbb(X32_T< zcI9zroW3{DU+&*zYkJqovb zd&=oS#kxL`&^6ZA?l`0^%`bTN{pyKjmI~RryVgE#bh!Vs$=g+Z`|?G%Kb$y{d}h*v ziF372t*vbgTz$|&YO8It`l=9<9@b4~Z|pPDofUD&Nc@zZ$dcXa6Ed#6XASNRWGy{< zWYr~GnTk+#bBnj4e`9yPT5-1f%JoX8hY2$tnL7V9xwm8epI3j(4+MYU>76cU_psIB z&$f`BJN_|^k=%b>8CWM;x8Bfv{Hn_5ci%RlTlR~SA9L?|tQw=AxS_>*nTrc%ItSPh z0vo;yGBPnRBr-EF2m(!aEGkN@3@*tpN;T3;&PgmT&J8-5cR4`BR)4bW_1rrX8WmZi z7O1=wh+5_WT-nq>W!Zpd^H&3grdnEO~Znt{CifjMU zPds9qW)iYYXtRIYLYWymI-|L4lKPGsUim7WztU()*h`*STBlQmwRb2lC{NvSxxCH! z)yyst>6caf-%ZyTt)3aLwrT}u#*yuF8s~^wX?8c7=43>u|5o+#$ywysr=0p~^OmEp zQm0U!}QvVt=&gSY$oo2@QbxCDX z_s*<6x`pDWqU@XNPBG8ik(Q(!-DNpL_XC1;z9N*n|ojWIhHY z8#wM$Gdj9=Q&|6m=i!^|6E}Vpy>6~_r?0@=>95H%GlPD1;cYcNhMAEMvNyi0yk}`5 zd@a5S`tqvkaNE4@C?c+N8K4_kmY zBNG<`?qmy0G)Mp`5u<8DPsRv6>Odx38&aZ1Sd2ZXB1~unGBFZvfHx}}NC`6#?f}wT JfvKE<0RW!3FsuLo literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/ArrayStore2.xfail b/libjava/testsuite/libjava.lang/ArrayStore2.xfail deleted file mode 100644 index e4c7ce34df9..00000000000 --- a/libjava/testsuite/libjava.lang/ArrayStore2.xfail +++ /dev/null @@ -1 +0,0 @@ -xfail-source-output diff --git a/libjava/testsuite/libjava.lang/Array_1.jar b/libjava/testsuite/libjava.lang/Array_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..c97b13ae09ee138a39cee6f6cd1e8789bb4fdff4 GIT binary patch literal 864 zcmWIWW@h1H0DnTrc%ItSPh z7v9=*JY!^Fc*DfNzza0pv8X7qGTu-xIVZ8WxHQN&|FVNXt@Q1i$1HMxP5g9IEQ4`3 zC$FIbpQFbLp`axW6JlJwidUGWiSG1zbE<5@FY_OQPkGpt6&>dM4D5&u7702cmsXa3 z?_Blf&GvP5|JW9E9+zQd`)AX4^kv{==kyga-P;!#ialI$QC7~|K2^hx_mD#Eu?08% z`W^50-}4Zb@)F|_k(_4bs1fh0?kp+a@i0OtMX6~*;$69tw5NMa_znf0ep#qvB*OMq zNGsxD#60D%ev?D|bk-#GaxB*T7+x>Vx#(E-stG}|nrgazrEOPl9{pP=;^mtEh-+P8 zjA~+iy6dEf9evU~X%n^_RuNt3AGEscdD3y+=NFEsmv{X_GJJYp zeOq|hcw_T!nR1VB2^Y2%@S8P1)Q;rI-u79)zv@UVx9Js0F*l>Lu0l^`%=ov31Xqhm zaYd=EFt?q!aea_iR1|~{kPJ^uS@NcGM7f3F0eez zw)5@#8A#_a`ByO0>6WS)+rPXJ5AbGW;$py^E`g~62_U6XRBh<#6ro2Q$b@S{O0@`!v8P3Z b39UdTO3DoIW@Q6OGXvokAUzG3d>I%3m=GUx literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+uxB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zi+{+rg)=fRya8ffpy`f9MTwR1MtaFPiN(daf!^Lsfg=Cjoq6%Z!ff)gn}<)`%5a<% ztt_A@u!QMwZ}*O5amktPJ;sgptHoG#?`(bP?)rRIf@62}z30~VEx&($UCZ}C=D3vz z+g@4MnzH*>78>3V{&z%Lj{jJ%bh?t8A@k!eyLfi`N%$no9btZ_>ZHojEYxSB)AprR zddElA=BU;D5?lO!DDbS<;FFSQ6k%&FaJ}<=$BRDec?*Q*?`CvfY4&Dq+qcIjc#p09 z<#1drk+=OWkC(>l8@~>(wV!?Lkom@5*;QP^iz5Fx79KvP>v)7kWygJ^4ehnEqHTxl zGlkhLmT=pgn&6(YB`SQA`L9Hw-Xl}BD`%blJ;#$F#F05Ol{IzA1U3KoitH!pbwAl` z)xy&Uhi3tUjC_Fwsf1Z zZ{|9MPgnfv9R(tp3^O0fq^{x?bH5+p&B(;XfIA@oqX7vZB@0w-=m`U%M;*w7YePyV f2#c{tKEi}nAQL4i1bDNufuxy%a0`%TX9Dp6=xN*2 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-)6B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zeg-=qg)lKN{A6Ze;02oQSX7i)8E>qYoRe5w+#2ZZe|;!sIj)6s=jZyCNiw!z@y4ueATKaA#jDXbS$O5XMx)#)Bq<~?@r zi`}{J7SHee{(b(tP=n(V(GU)e$?LNB)Y+_Y5L#7@x=%S^y?XlLyvHn?+q}hX zcbW;y++#Ur%=L&#w9eLyjJn{eK~Kv~5&(aM{ng)xPUEZ>)uT(*l;O`!^bGRqbfZ|F3%__(byS|4%cY zY}{|8AL=J7x?f=Tbgi{3;`@J^I&L%+lUn}FX4Q}D@~@7t8P0sMZpuV8z6%atW9l;> zaVu#TEh`njYJXveRQ^5p*Z!Kt4d09p^aU@NV&~KyaH}iT?Yg4#oZNf0OZLmSmB`;r zzH3z7vGI7`7sa!sLdG+m&N>`?Bc}WV-}`3k55NEV$X#gRG6|mfVD0wcy9eLxzEN&I zQSM#UPH#tkncs#73{Mz#Dc(82VH|T*WS!w@iFeA)m2Tk$!fbhluSMo1%$oWBz` z_0nTrc%ItSPh zZss3^=KxLJ2E^<@?5vlZlUQ7A{Wbr(9UB{)Gh194o0=P&TY4Frm>XN;nj@QB{?0kF zr=<4(k~LSJ2)VJD%|5f|jF7b(TN>|K12;CY=YOVz=&_}-`N^?`v6;EC)y+S%CuIMn zJ4>!Cns8*voDes*br1erTJ$7jyN^KoaZB}$J1p)6@TV9xGcjL~VG~GTNm@{+aF#FS zBva;wj%#IXeZ2{pdI~4m#8^BFnKRYc78PvZ&MT0PkSfdm^6cVb z_w)0weZUPAs`cljOJy~=4Lbd4H zi`OL8{HxnC#n&*OHi}v{+4@zfHBaGIiv`bvi=8{87D*kFP;=?|zuEWa+SJ#wl8G8y zJiqsd%`TbUo44%A8SUG)v9F(~xCjaxdUpRkuKQSPS;rNLC>^Uk5sTCk*)}V!Gj!3L zshrIBSw+r%Ywjeytlra?FY*{|H&K1-y$-?JsS!}V5l!)M_Wi@!UEEy?JcAlRp}U-8FOnIuK&2PYYt&Ml2w z>9v-xwWd$|;9#|YsOLIpf3`iD_n)0C%VhaATIaERVKi4 z_!&@khdIi2f|VH?8?c;U<48zJV4dW{lY?e&$BwkEF+e+$p!Ry9+v^9hS0B5*Wo%{( zmZ&Q;hZodk1{SS~PV>`JX6`TcODZhfvrx{%Qkt1rnb}xivrz+sGPCuBl%xj?KnE}~ zaWUX7lYuTl0!Sq^sy6g88lguW$b@S{DzOn3V=sphCbR;X&{7#)6MET)(B#I5RuZCX zMNgdwt@oK37@%ntT@!l3Kxmo?EPbKL1YHw)tRgfCvNAA0<2b;Zl?^1p4ul;*w@(5} HF)#oCv(jQc literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-DnTrc%ItSPh zGfloYPiECgZ!py|%}xdn+useXxmddWG7#l^Y)d%X?^NZ4-oEzb4v-J1L7?Sm^< z4nBAkRH)hEywYh&v!D6bpuCg*p1}uC9v7%#OqUgrsbQFZ!t;+%t3pNl`}gzS&-q+i zvv)7Eg~RN{M-sj~E>IJ)6mjP3U1%q2eu&q_r11Qol`_kDeogEOsX7x-wo939t$e&U zb83ih$O7XCX3>)mmA<4FDgJQ~QW4Qg+Aw#uqvP|Xon2~s-+Ao+?ecHcisatpul=ja zt^HFo7B#AA9^*E;@GCKJW3``%rl6*P{P~=lBpl6CGp(1&XtCw=nbn88 z#ZN}eTXAN2sLcNPg$d$IW>#wlx?T@_a%HQg@u{hM!*y%}9bH7e)?{2zJZ(_Fuzkz4 zz#G0-{N^W?T7Bn#a7%g1C+?`D@4Whq7A|ZPE9JSp^UXQ)0B=SnE(Y9j3=Cl;fE44X u+R)=1p+_Caglj`e0SJq+$1B2wRv;5SmIJ(5*+43ofp9yJegsSn3=9B`tI@Ln literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/Divide_1.jar b/libjava/testsuite/libjava.lang/Divide_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..4add13c21e4ded9e7a3b0816f041b8b4dc4b1e28 GIT binary patch literal 1632 zcmWIWW@h1H00G7dB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zUKKZ7p0F@5m;+tF2Q=L!vn(?uHQrD!IVZ8WxHTj?XL71U-MwiS*S$U#c1-5Y8M7Gk zvNV}D5}Vf~H*fN_YH#7#a{K+87oF>z*(3rL-6nDeURmMsh*Q}0aKlC(7hXfHSqYC= z)zs7~(ie$K>2-)d`usO_w%*%}%m4rWmfQEea^Lr#`?CN0#4!f+#|iT=70<3;U+-`` zGXIc`$jUd;N`tm_PcG%zZniSe@eM{_EjC+^Eb-m%%W%i8tk9+Z{_F_{bu*; zdON#`@uitzvH1s?Qf5xjJTWVBow3Mewyi5f&2*kH3FenXEcV~9;*jm+r=6~U7dp1@ zH5ToOnAr3)?T$M`>8Xu3xQw51i|zQUxHenm#pOkN^jY$bEKDJ*1B*O$Y} zUCw)M$*+5xnAyXfac{xlrmQQo0+b_WDCD@xzA7y!VRgE5xXZ74{;JH7g`%6w)a>}$ z_nz;WdL~rmOvG8;dC!8)&%S0fnf*W@<;;}bhZj0(UuzQfzWP1Ra?;0pD+0D?iSTPh zNWZOBTQfgt;qqPIzGhFHVJ|c5-d(oGimOg>$T)RX1<#+d!}3Vv8SbjTidXZin=&VF zUEpB5Ypq6`>t5RwS7{xlZgm@>x7Tm|%{uckIB9KQ_kxy6x4o+)HC^-5F0GB^bahW~ z)4EcXx$Bwh`IDO>)h874-P|T~_u0Iq!5do6_x#tH;W=N!@UHIqM#p%C#h;WuX@51< zTToD@yYtiRb?IXMSEcF}oj>xxG1@cj8H?BK&&MXnMp(C{{(Kx!CzYAEFRXWQqE+4u z<5RCr#C$yUS!0gz!3hSpMEY+PmFzatx4&>G;Nad(N}Zd+R=${ZP07htsN_<#QD5mv zp>HZ)8C~i}ey=GMo5~Wt)L`1=qV;=hIX|C!6&%wNV_`YdZOxM0M)uk*)&hrxxA;G_ z@VhYY2#emuxTE?zJbz2S>tOWT=&^Cir7+L-oJC(fT-qf2wIAr4e9l~0b!i2gw)N6v z!~0#8r$Z7Hrzy{l6;Bi`x>3n_Yo(s~r_Kco(SaT!-XA5r1YIOAPDz%ZCK#wX&snr@ z(=V3uPgh@g=xOqx*2tn+)S_EWDYo-;%vUX$AAJ&aPdxV@sC$L#1W z+jK+0t)zoBZ)4(S9XD~wQg6wsC0u(ib+jLCw97miW>n*H=Z2b`jn?gr&c8MW%N^G< z`sT%BXW78`DR*|*&yBma)^FcAiTln}pWEx6Y$`juFeBW^aJ#wmWK9b>FO}OlIUag9 zUnVH+Ok2F!)O4lC@8#gM`ZZZk@ciEs;6bylmn8GIO`W3EvFj4rXsz{z3Ct zhWba_b(ilwm{Grcuc{i~bxkwP>0ObRzI^VIdepmP_FN{B-*M_Q$3xaI`P6IOXRMB$@SgIz&@Jwn zed`yNxaArC4|(@An}3wMcc@+DgT%dKmR0H>_10bZEy`LeEB}Cfj@sn@55{)OO3qKX zsQ#nbC*Sb5*}2F0F$ZLOCO>rbJj|k66It|O=95QVA`gm<{yDw*5%j7;B4}ghaqYTF z^N*j*R_y*SlyciOr>yw)?jNsb?%banqW{6v|Gl}*?)ybD*ClQ`&1alf&lup%$i&5f zyI2Mmibw#dkVe&pUQ8qOr~{dBZAgVS!eZ=2F~WpaAQQD<4)A7W1IaT3;Z`6$l@-JT E05Bq*od5s; literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/EvaluationOrder.jar b/libjava/testsuite/libjava.lang/EvaluationOrder.jar new file mode 100644 index 0000000000000000000000000000000000000000..f122c7223ce786501da5df916105716e8ad451e6 GIT binary patch literal 730 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 literal 0 HcmV?d00001 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 zcmWIWW@h1H00G$wB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zZ=OD^%w%L>5N2Xv5CfX-mYI|4k(if~lj@!v0yI%CIVZ8WICp}--ysKyqxUa3dAlAs zCGQ%!gIPT6x`esgm6iugP2AzEYAIWMIJX>Ot`H1g6Pal8kwNY_^NRZ+O2=-P82^mB zU%h|kzFM38OcqWz9eNa_#pU)Fq~3r0e6QJj7PgY0{JSe(SFDq<2)`SBk6S|MxKr1I z7RS{g);zyf-hVD;q7vMpd~iZ0$I00bH=I76yZv?HraPSHlQ*1uS6w5*5%0&dMDkSN z_7AeIdA}U*@~8eko~&>>;7{((DT@s*xQVR1>y3$oQy=Y%>U2SDVh=#5xjjvRGr1U!lO&i?f?JGVd+NqI^I`-UrQ>Z zcxRp3BFy*kFY6ggksFIl1v{mDTpf5cXO&#Kwm6_yqgWi{^=#3Id2=kxc*ty%<H!B-R9WxN_ M1=32uG{wLG06ewwEdT%j literal 0 HcmV?d00001 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 zcmWIWW@h1H00ET>B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z@23TOb}%w9gfTHNa05+u%gjs6(M!%rEH2IsJneVLLB#g(>Mdb`0yWvSsw)B?Nj+|R z(Y1opO?(}fPs*0J0vWw^6SHG89v$NUu()S=hm^3@$unQ9B_FH&X61ujyGj!s6AroQy_3y;-S#c@M&hX>B3x{r z{`;87{aW}X*JrT@v(=*ckIYwInrdv+_GIe1__IlF3GY-s?J@QZ`PTO?dXu!4ti|rW zeOnFMS(!gGwF=%f6WgegP?CIN@zI$E032&+m<>xnDcmAU)S-9>F??2s-A~u(AuRmdDm>~WA41HaXXt=rI~og8biN?zuW=dj7(e%xYG?V){p>FDniwUo{kWD)PYR6Hl$RA huo!znTrc%ItSPh z>*Ti2yUxhKpvcU?zza0pEhj&*B;HUjIVZ8WI5+6F-)#p0TV~HWGoFfZY*{)bNaMyG zp9S9+*fodmF(#`S^Jf`51h~0+*ax1@%AV0 z%47k{MiZl!i>n@=T%WjFuUUEbJ1@V?n|(=LD+Gbo)hWDuhdVT)d}NV;@UqC*gasyW-)>p+>HlquOqEwv-QT6|391R@2>lS?^xM8zyD9GT z;Rim`=4P0=^kV5d zWzk?AzH-Ao#+Q#CnJ!=Pi@R7oJNC@|B+LDm4o0!hmfiEx_^BjoL`>1-$GSQRv*YcK zIobVX4)A7V;$py^5P``62_Pj)RBh-96QM^P$b@S{N~Q>lu_r!+39UdTN>U8)W@Q6O OGXvokAl=Rc;sF4hgC!aO literal 0 HcmV?d00001 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 zcmWIWW@h1H00GSkB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zSwHG0im)&+xB*?j3pCv=CqJpYMvQb?^UH9qbCIulSB@YFaB_3;5v>a(uSSsYP z_6S#FOUsca)o!mh0pc77*@};UOuu(V;pXFuw$JYsKRZ|b{bzgq{+;{_#6Qawu$^C# zr_uU4kpGp$HhqoLUj6HyJgYvpRQ!rhReC}gvocya5TFpDz^uDgO-WR258 z^(Ev!FP7uw@qHZSXS;if@9Ll3UQywaQbJ34HWzQNeYHg584ohMuG z)a=oIdX#TV#RZ)iGi$z1ZJPBpSv|@#`s{PbsBM!>7eBX271M|h-Bie5X1L|nX}Q=- zUm{KQm0c=#g#~=>lDk$^oVY6G$>F_+6Xlz3$S=1^*=psyv*?YBFRg|Mtnl& zf64?(+OBh$pSkq9iM*-p{9pCwjgr=hCS7`)v{57Z!leUiiZ)+!kUSqHlpV0;o{!G7 zN%Ml}QJSvV^!ej!=d zc*4S4`;yr5w)y35D}S)2Ptl5B6SA#TFElawmRj;D$)%^l=U$9B-0VK}_};Lo0@9|z zzNy@i>zQ)YIo_D* zQ02+E+Q-*F)P^ekdihGbHS=A7kg>b-%zd-#W_sSQ=kGPGIvh4Z529Jtv&`GkzU_jVmD$E};omNA8X77m%iinP%`jicB3tDCo5ke9d=A!M z_NxyvJ7u!ls2n&e;a7IyXq3I;mGWd6F&>VAJ5@)JM&BV+AsASzBxUH zjT;%|YkTZhrCAsI42-Si*vj_Fwqz>9}s?8}|hnTrc%ItSPh zT927sUjR+jWn^FgIU+4TUoSZ)vAEdP&)5HugFvnGOZKf%8gafo>R%OdZA=C9)d~~~ z8Y)b4V^2=HrIz}zUXWi!?g!&PjmK}~5+=>9H2!^W&(FWVEtxzD-Y#<8VE6i#>+B1$ z>AQ0R(ynG1oWH&(faR9JqL-EX0(#ekIX9VWc}04DJ@o5$ySdZvt^Wk%^dvMl2FeQP zG2bZQco-6vwC(RH*Ue`>1qsZVc=6YU3)}*Slz((r-4;pG`C6YpX-TG({qd94b8IrJ z?|gFVUZ0k|cWPkw#MAv39=_{a&8Plpzu+6*&t03(+sw^9%;o<_dRj}EQVfWI_W&R~LPERgu@qOPR zpd%99a$#e!ZV1c53=UrE!Y*O8qG>r%0XoI75wRwN`Q?uNlwvvoE!# zZBR;_Ibn{{)eT)dj=R3j|Mf;MbVi!rF{$6*TV89v(OaJ=E6q~G+4;XnGTQ#~ch0QK zl6+Q+(tc@o{J-~R-u+ISANn8s8;s**?+b-X_8l?YW8L)U0O#T#eLeD=Txknxy|eE~ zJ(yAJ`X%Ye?0OfSiFL=4lzz9&iO(rAOk7gQQ?a5)AZgC>8M6|F6038Pp9=?gGcs{8 z;Law%SV00vnFduGdbUC6Q3o>N+K@64!eZ=M17SidkO|Ky=-SYe5JKA&V8X&oPyybo QY#=o(K==Vjt1^Rl029M%>;M1& literal 0 HcmV?d00001 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 zcmWIWW@h1H00Er}B{MJsN^k;cU)K;vT~9wZ{QwkYJ9KjsbwFBxSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zu6CVy+{Vbjkif*iAOtks-O$p~(!kijDBi$GFF7Z%xHvc9q#u)`K&`F;cb_!Jx(Dla zxFlEz_H-J)Vx5}OBWE*%(RvxLv2)wO6XKP}n$^^PG1g7lC}oo2B)=*ye1Fx~U3UBL z*)crXxG<^Xpv6h??xQh^>Gz)ah$gmutp0uQ+_l{Adew1zpKon&yeYhnEGMX0O*39&nbg}Dhj^4AyGmfq4l5G3I zu&UAWjPVNI$W@b1yQEF<mpy~ok=JS*a#s%Xd>qb0w* zm|yS&p3eShTBq}5n%Y0T`tY(O&M&?vj9ogmc?T|y?lM{|bF-@TnxaFH$ke=vj>ipp z*{FL0_cgbPK z9G4gC6x@_2UFcYtJX0&$z?+eYivf4y0Y)7XKuSue+RzgdLXSF- n3D<^{v=A0!PcR4*T7gW=nTrc%ItSPh z``6V)l`%3fm@+Xi2mwuZH?*|0G%z+WjyEvWOU_9wF3z3c?SIHYr1kuVtbPomHQQF+k(yXTEbC6TBahikSukM(~PQt=}8UJZKp4${Cv}?!nGiT<$pLg#1 z_uuLaqSit(Jf~Jh=}qTe>hyBm0l4q-`o? zyFRhS?7tJh1f_1dPFSeJF~ z$ANBzLqblM-Tj%n%SBx_I6OY9xU{ox;;xzdmt>2@K8xC}q#7Y&R?gu?;amldmp*WQzZVZ%(vNpT*UXw z{rbP?_ab@EfU=JBj(zibR=KRU&{QsceovwQgh1D-OtAWN+?ZS$bm*kB6{SOR4j+t>THR45g;E$ZN7p zaOQBmm3m{F@$!0x0B=SnE(Y9*1sGLG04eF9YC}&v2tDdRCR`g*QbJgaJ%J!hXazDc XlS_a%D;r1+GZ5|s(%Qg;#lQdn8)@}^ literal 0 HcmV?d00001 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 zcmWIWW@h1H00I39B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zdRkxS&Sqp_$Yo++5CWR+ZfI#~X<%$%9B*Kxmz&+A>Vtan(oQunJynk<@#cZ=ATQA~0Pk+^$%=DU$kd*mDjPlP>!Dve`4>xE z7Wk1G_HLW(MI(bg1<6R+PrS90mQJ-&UFKYKFq&0%vdJaQ{O!|?>RJrfCUzx0>JMW! zo{@TC-QA$c&p1{8Nx2`E@r_v-!dI$OlmgvS~pbNv}BwVG2L}GIBiP1 z*}MhcIVOm>=I=l8;IKiDWA=2Gn9e=Re>6;da75WjFtpay#qwUyittF))hhaTrdL+& zY`=KCyXEd4pPlYbaxQ|$UmZ|$V|(HoI`^F&i{`nBsWQqQ3JoT;_ryXaul<^Q+>Rl@ zn~{l&0e6Z5#wQX$N?)kj&{G&fk2;VE*M^kd5Ef%kMFnTrc%ItSPh zj;!Z(rhE*RDxbjX2-4fDptDl%|laaK@{(yYy99^lS8`@{ioooJn@7(_L z*UK4P*Q}ICHt6eG8nkjl?2Vn8BB4JdoqRu^JG0$q_eA@(rj>V71Ik);@7S`%t5u(T zaKAinC!c&18&iP9GOa_;)NNNEvldTVdz3S2=ApEX)OFhXOG39Rzj3pyUYS(nk$!c_j2Ow7Y#ucKaHh|GiS^Wi*)Yk*>*P1JoJiTdrOza;V&F3 z8Y^`SR^<=h|Bf5I2wi@C z8tJ%;hX$|bUzC{-RCaueCP7?BbgaNXNwmI*R~|hQ4yN4 zB#y(fg>&blpD}-#0=yZSxEOFJ7hq%|0i?u(strB)AoQpMnQ(1Li3wpb_9TKZp%uu) XOfUi7tZX1P%s{vkNb3TV76StS|A6nD literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/G19990310_01.jar b/libjava/testsuite/libjava.lang/G19990310_01.jar new file mode 100644 index 0000000000000000000000000000000000000000..e689e43b11f614f9164f3810f2605668dc1dea69 GIT binary patch literal 850 zcmWIWW@h1H00E;4B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zQcj^w=NK6nPBJkt2mwuZH?*|0G%z+ah&M3QOU_9wF3t^%_LdG5_@}o0?vmNni$WK# zTRS~g-*a25Q^&W3tzIilow@>QCiGgKn3!U&BE9haU&Vbt*YIX-@wE($0~-1b`=wt8RLs`gNK=avbUh5mQFj(_db?!DG&!NsxB z_vOh4x{5hBf47{d-mfdfp`54CC84-i*>bhvJN_4|R>{gPwLTbb^^9ZTF?C+G#835~b}xLh#Wnsoci7## zW=nUbsu}dVns#KS>Pkm69xcjSufE4@VM^^5dC|RBSFY{}WzLRJf6-{qC&YE_@f0h? zi(lIRDt~lb#hLzIf8ClJ5e)o%uediJo&7L6+2pkTN9owTZFL9Pyg$lHTXGiKG#7f? zI;W^?6u-B}#c29|r;pYbEjP^sy6gQiO{1CWWu!}B~gUM*b^SYgjOIEGZ_YWv$BEIFazOE LAl(d1unY_UvRNQ4 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/II.jar b/libjava/testsuite/libjava.lang/II.jar new file mode 100644 index 0000000000000000000000000000000000000000..22d15cd4ec9c464c911b221deea9c3be2cfe5da5 GIT binary patch literal 685 zcmWIWW@h1H00ENnTrc%ItSPh z);CnMY#A9Co&Yfi&~#5vz2uz4;^N%?+g^tq1ls=lUdr3-%fD?~l>gQTu38x%c0KA< zVCmwTdaq*YwWT>H9h0&a>>ctWm`ClXFE360J`t<}dCLYX8hGYh#;Y zR21OWx*^3aR_d>7r0TuWRgZEeEH&z=VqJ4FXDQ38jDj`BSHf?|m~1?F;QdySV^_|+ z{Vz3bqRq>f`$KxBLSp%N7aTN^9ViaKqg!pQaV6bj6HS{CbR;Xu(%HJW@Q7(FazOwApHWE78n=+ DM8nz< literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/InterfaceDispatch.jar b/libjava/testsuite/libjava.lang/InterfaceDispatch.jar new file mode 100644 index 0000000000000000000000000000000000000000..1f87ec30c4ef91bb4c558aa1929ec56c7636867a GIT binary patch literal 4725 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 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/InvokeReturn.jar b/libjava/testsuite/libjava.lang/InvokeReturn.jar new file mode 100644 index 0000000000000000000000000000000000000000..a64e0d58717ec86ed26330eb784d5261642e4611 GIT binary patch literal 1209 zcmWIWW@h1H0DnTrc%ItSPh zZYvH6n=&&n)Uh!z2mwv^%qz>!P7O*eDJ{y=OU_9wF0KtZ9V8qmU_0F=O~ReyVIYTH zpo*Xh7gN%N_QnrlCW79v5tC1{vQM6QCFRlLQ@zpu59lX6UR)r!YD>w}Q)}ZN$VV*A z-kPp9EwRZn^w+nycE!8$%kTewdi}RQgPxM^f=0)3KYjD2`ouQOSKPAJCMe0$ z^?ujd)NMPn3|Z7oVmGTv)=YfC)@+}cvXez#DwRbbB_r-)N!{Kl=L?M2rWDOloZvZI z^<7QD^nK@5rp8R%#=Gj(4WT7s?lPvXtIS@l=w9;dm`tfA!*}%wxt}*Bd;dy5;qd#- zj?MFV{l4!|@X}nLVdd=pQ@mMVm{9oAtxXM&}kxcf9i`Oli4DH_zIM z8CTW&4D}vOXyBN8`tgJd?ZrmF3=dpz64@McR#WZ#x}w*O6H{mOU2)qVemG9{{FB+1 zT7_p)JIs>=#95AfD^>iuCFA2BA6@B1#nP%-9=p94N^UIWN($6i_vEpVUSbHt)vcfF z1ygz&S4m!(v(C6DJpIkK>iA=#!CS7WJmgYiIkK{e{fW|Jt&F&qrrcA3>9_bfMD7X{ zMz~Dwn9#AI!%T3l(k|CC#wC#^_Lr8~noZK`^;mpqMoHy|CKJEu;Bx4d_RQeGoek1Fwf{eC|B|#az`&mued5cjL^Yd>C@2n1M zPvo(3vp?xPLHoiwt}O@upK9Lx^kLMT^WB@B%@^)$dcE#Jjp9}A93@Go?&$$v9vxCS zoUvAsr>ap_<@SX*Mmg8!>V0MPI=8uXyi{Q|5lK-bbrsh50UrXzf2X3t!@9z{CCU8sfIDfc08W5>iL{?&*!Xs zz9;Pb%oWe)tbIP`cYiT^?)H-+e$zH?V7_Sg{gd8Q-XDGP5#`tJmxSKAba&~zMmdX# z_qOx#ESP?8QR0yTUgs9sW3@d>{^ySy@2b-mIPUF}#2&06{K#17N0-XJ#CbEsKM0>T zGya-1_2nTrc%ItSPh z{YHo9Pi16as9<7X-~*cOnOBydof>bbmzCs*d4#(Cmy_hLm_)>4FC>x6YRoec_>1eC`1NY8yr`O!Z1<#+Iv3-7K@8^FXf3YQS zZ);>}t`vw_-M1oN(!=n{?RQ(FKi*joYMHgg)i~)y&S?iXYaY+)w^J0iuGVX5RoNty znIh39BiV6y-F<Gk%z!}9ah3E`0lRB z(Nq;t&S=xCyt9+yUmfK6(ra$Y`+3RCmVZH0E*fY`eKGg7UTnMfAJ6ATp-Bs8bRJYW zdMEs)k&xl6S{8Y^I;W4j?<`UdnCPj!I{HPRS`yQXx9|UZ6t9}yb+`1c+{dj>FIkPx z9TR@`?!fsiXPt7K7b`!MnN}r~n#G_Y5T&w(=dZ!h8#%7C6Tb=vcr!9_G2l)|z*s~A yNT~`{8+y7z=urnU;o6W=8Ny=hX$N6KE0Bqrk^;P0*+BBlK)4l1y8+W10|Nlt6aqZ} literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+(iB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zJiiidd}d@|h-YSC-~*cOnOBydof>bXmzbENQc~OUnhTcae&oat>Zd}?}#S39K3ve?cH-WDqD8d^GK!D2RmhaS$ z>xwGvzOH+`BPH$Z;w@371~$SKed1T9EE86f-QNAAR&#>8jM_hh&8;U-p3U-)cxs-BqVog#Vj&ok98>p251#Cgo&a*}MjV7n;o zgkF5YBX%$O=j=0fAGvhJOa8mquZZ`DUnRfZ-!^Z7<M#Z~Hu!)*`&a1Ub|L}@Gz?+eYivf2k1*Q=sfRtuY twV|h4gdTMu6Rr&@4I?bZo-z?8v;vu^=`_Hbl?^1%41`;O^b#fz4*&x~GnoJY literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/KeepInline.jar b/libjava/testsuite/libjava.lang/KeepInline.jar new file mode 100644 index 0000000000000000000000000000000000000000..754becf5f971201576665d22d4841154fd84d809 GIT binary patch literal 875 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 HV+Qd6qlk8^ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+_mB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z+dTGrXR|OcG;=U8@PSNEEGf#YFiF!(&PgmT-a6&Bzf7pi@%@MIm7m+hJf-iOnrM{x zve-27CDU1}8rN-&6?+jBwIDP-ae?#qrVRlLu6=Wr?^))#xO3KvZc{ZiwQanUD!gkx z9Ci7x^7wsuT37C2=lESG|LnW}+4}o=%j$o>zCXXuxFmpYp`T;LiB-B*tM6`B{2`k0 z`C8Z2$W2*=3{o(|+pB zd_M_9EUHP!yrp%MD`fejD>AE}thsG$@_Y%?|E!yfTwRL$r_Wq?XV#gY*O#s^-M#0* zwPo|PF1|PzC%0k#GS4mj!TpV|dSqMq*D|eNpvuI`&Qh{Rv7dt~Zw%lEo`-@|V<8MCQ zf>j|4CkpRWPh0jh{F%|)$AM9a+WMQ_AEdrXDi2B6{<@F*O=0Z%198{Ca=$se&Y(nZ zju3~!i982|C%cT960h%76ezqqn_zUE>oydEoZA*S4O z!NF2trrve4g))lnhBnHstBzhE>Buy#SgWjVXUrDy<7<@W*C`lIeVUx*l`{Y5$-~;w ze2uqe&bZYVBC(n4$c()q*$>N3rcAmS`?y$d)9m#0i>_KB)5Vv+U2|CYm|XlSmHv*u zSI)WD^Uj@eU}CVu>?<3V3;Hjfw`v}jfAYL*)l%O>K5sdA+0B2p&E1EYo3B{CnIiS< zwB}U5_*Z%U-z#=qzg!#i*MuoHr|Wm-1~V!5g>U}$`R@58kQ<-$L6Of)?iZ)$f8{NI znNpL4@AiNAHO+d{)4trDXQsXW&8Nj*(8TsaK-%Kw!n_A2?T&nreCazM$?TSCw`mvT z6W@{4bJwE%w2Yc%%)_qjawqQYci!k!&9W;~pS`oF$z!Wn zYIs_C+Vaoq7vKC}DR_iu{>d{u`%hl!X*hYOXTixQJrhp8>Dh4d3s3K6%OJn!o|g7b zQid~^EOhm4%gk7H(uUV}M$eTCNov8STdF1>l#04@r|s>{=PA{Elb`53Dd2Tpq2%w= zUdXL{q*!GB117u0VeyGP_a7(R@%gC^1E65;I^qJ zw;5h%_6hxN9AbOG=c|J9RcD?Meq%q|Lk3?p7GDWvTgiQF#c_#6apyU{S}F|G4Rx zs;`)`%p#c(z9#1$XWRB2R=YT#*YntZImLMT%d0gPtjnA4tqHA~f9-{C)bgeG9Hjrg z|Mfxc?&Rn#f4;AL>YG(KyDENqe)LQG0B=SnE(YACBd}~j0!U>gsy6h}5}`*O$b@S{ iDmxJtV=oaACbWV~Kq(&syjj^m^2|WE6-djlf_MPnTrc%ItSPh zVOFljR~Q)>t}-z&2mwv^Gqkj{G%z+ah&M3OOU_9wE-no`?=KuE@Ne1OvhAmxyz3iI zF)=YkXVsrvDPrNUNYP}iCnu+-%eF7AI+^9OcbR^CcJTk7lBPA69+vX?5y|y^;T>=62cn&s(3h zT72ew=zF~MPp;DiFL|LUvFlY!SOg6PoMs5DwOF^}o3-yn>kYGW4^HTNyQ4*Ob>Pm) ztAE=bx7ATJ_CI$fxF|7_xfE$@OQvJ-t>XHAf}$ipldIrG-k zh1*sudUIU)wv)AV{e5fU^Rkw`C+*wkOg4&OFqbT1z42IcQ|M2#)9N23qjooa>y(|A zBrV5Q>SDn5SnL!hhZXZ$>6A2HZ&zm=KTvQo=;lhMqJLdenhTxHhDOim(`a@nTrc%ItSPh zA047E9bjZ&ILO4nAP6+w&(PA+(!kizAl_InIVZ8WxO7sizm%g$+x^W-%sX6NF0Oj; z{rDn<1#uk$`Z+<)Sr=K7lgy6k7#U_KOn;E{X#dOD^|!fwat_7j|5`k2o}=*AM}9`d zWzTHSSC*gq_w)A!)(MA~HMmJ=J^%Exrc8VK-Wx(61eLB|TRU}S^tsSyE2?z$ZJYLI zSZ~|zE@3cfIm>W8jXg|NB>-wg- ztDQcDD4fx`tivkk7?SWL^y;a*z3S3dZidISwx4B7>KD0vR>t^H@`No?tqjLFZ(W=& zV3*{TFv;MS`?6%I!lsN>YprH?N&dAxE1>qz{zm@oud{Mk4cs}V@|T@``?;j*Jda`{ z>(`HkqPj05j&a3LzMA8;+^s`;>66(~{u*Vu0xx1z*R4EK>a=VA;&MhUMT z<@q_2kKLZaw0qr-x7U{b$yvS4CC;SUxzmt;U-Am~#~r&*Zho+xW&M%Y4{q5q*;^zC zo&R?)ZNhPZFX}5>*0-PNezfKNnjg~gTh^~!_oMBDKaYE|tWV8xo%a0`EV|F#OSZfE zHonTrc%ItSPh zjhr%#evAwZSAkd%Xu6-FrKP2Tv7te{iC%I}VsUY9z(K!54g$5&3zjZ*V&(D*P5Qzh z*W#w%a;&>kPQ{@~(NJ#7gEpOoYY!$p%KyQ7&*rtGFn?WxeCnK4oU=Bx&orN1nSbxh z@#nX#8KhHLg`8LAnoITmnisqOMz}z_!LfI1qi65dW&YaVNA&n)=bbhG3{zsr;RKZ>W`?P&9zpzY$Xc*cPAuPI0#Y=@U8`lXr z_r0>=nXw_@h?wq)jGB~;$J_zlj7(e%xYGbI29N+!ia^zdo+c1_)PYR6Hl!4Suo!#1 bBTQ%oGBHv?fHx}}NC`6#?f}wEOduWrWv1N` literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/N19990310_5.jar b/libjava/testsuite/libjava.lang/N19990310_5.jar new file mode 100644 index 0000000000000000000000000000000000000000..d944000c882c3fac2b5f7a1dc434bb32a8d92fba GIT binary patch literal 730 zcmWIWW@h1H0D-&;B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zE^^1NL@+WiJOW}tpy_^wmX?+V#)by*rh3UaiN(da0kPgpjv}_3SMOezw<|L{E%M7Y zwI!2mJ1%+$@OQE;6A;^aOF{Wv-VLcQ=D%3?evRR075v*!7gDmFiF;1tZ`1E{s-M-> z?Aynzk?h-gL?C<0>Z@6qt7EM0hY2Pbw0-N1mAUzD!HqY(mG{#F%38Gl#IoHyRW9LF zeNVODsco4uPpe{}xL&@`965RU+j|9==_ z+pXt)eU&Pi6U-Oxe8wM9aa7sqSIhHl!QBasj#+YU6W!d7DmiDl&F)i8k-V~cfr*mt zGE;9a7HyYn76~2O_MF^t{=4gf`#&~MJ{`R?(-({=kHPYLs5nTrc%ItSPh zCGHE7H5nNgCIK-Y&~*Q@)S|SU{BphIoW$bd*Z^N|ra%$fe7m`Um)(p5x~3WHPAYS} zq{hYKc|u^()t?Z zbL)ac(Opgd{6|j?wjB(RYrVWdvc2fW8#iUU6B28tO;EBvvlDmNN*8 zIj>Y!v7gQ~GDqdThpKYPl?5NEhrxw*UTkvj;5AbGW;$pxZx4@7^0!T59strA^5qi{t nOt?0rm`7NQJw6d8v;vu^u^Zsc$_A2W2EwgC`W7$^FfafBrU1}G literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+ncB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z#dqdrtY%_h2x4Ji;02l<5M*d%Y-*sFoRe5woEw}SeAz+7)|)%ixgkhnQ3sogkLDH| z7Wt#>Q^L0@DEIJu(99L*xU9CrGt};f`w!+ivGiM#GcUgXr*V9@=8cCFXQpf}e{cEx z-QCUg|Ni}9O<-EhHA`a3*YCoUgD*ekYT}vb{CV1}(a^Drv^YgC+3*cIcdeM=;RN0xV!Pp5~;mc`8rm!F9B z{_yAy>)W>UD$(oeH#wUZ20I%^am?SGvoB2Z`OX_tHu30g-Z!s{AxUbNfYRAbnKxas z-aL~klAgEW&EG9+JY)X^J#er4%JuF-nN;L#_Cr5)Iz{iOwypl~^VB^#am72y5)ox{ z7QOrRaLKy$R!y((HDcYR`uVir%Hm%_1o z>YnO#Hm_E3#<4jPu>IFMsqk={V;nKitnP-dfPoC3@t9iL{@q$d5^?zRTyvPguf| z*uW#T;Pqjpy_c4L5qIF=+IuB=*3rx<{^?Uf7tV9wtaCQ_z&!E2P>V)w^dFI3&X*28 z-%wZ2XVQP=LanW7kK7$6;i^orB|mfJzfAqtY?5~V!gkrW>mSzX1s;9yO0sRc`)Y$M ziCAxzDOy3%CN9fY&A4ZE)HtfDwCe=tF1O>WA}kzVONMRBuK2uL(Z*wHplLwnn+4K$ z+s(SRDmQYdUG&WD3VIfOD%0tme1JD26Bh&S%mqx^NB}9Tp=v|VYzRH-Kqg!pQr1IQ ej6FjkOlSo%QLnTrc%ItSPh zJI_vHE(My}2E^<@?5LNVlUQ7A{Wbr(9UB{)Gh1F6o0=P&n|m3Xm>XN;nj@QB{?0kF zr=<4(k~LSJ2rckY5~wyZ`e60^x#)D2XH#2LpG{e2#QfFBz^H)r`E)VW<-1a!EdeTE zVUd)YDKYD1BTpi;r*X5Wr_lzZ4UCy(3jLjp%sR(7(~21xP+ewnVXs~c&_zj5mpP%k z%n#x+b?h!HV>4T@L|K_Ryr3>KuxM3unxB?3v%kZHg%dj$&Xn`8lxAjDW;PbsY}CM@ z%xpa&CFubJnga?A?>t9#fHMvUq|?d)Q-AsK7BVt0@G~(m@B%|2Ajr_j#Lx`ljNA#k z{g@m@+WsHTO^IaPS;@RdU7?dDDJOv2b47=cp-C8bPs+(n+0%|5xyQb7^ED=6Zn*>7 zKeArg?9n7O`)B&IIX|D<-@kqQwS_?p$oD!NajK=iTy7-SxbE z5i_QocGO7@O?Y};pm%qp@^7tc6CRzoc0o~PpKQtMfag4X>Jy{(uTf~`Z7g+qGk;T; zZ;s(A>F=i=WD4E96(5v3z5UXLwzBB3((>?E4;|WncHBW`3p0 zPv;M>8JhVN+bptYT@>1;ZdkStm^c`jxEOF}Utk0w0i?`~str9mBlM^PnQ(1LnHym- z_AHAqp%uu4W?*zp=(!1@NgkNOpm_^j6M7CnXj%Z&1kDfVn$S}%LX#pe9iyb-0B=?{ QkTe?*1_Mpp%M9WH0P?ko1^@s6 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-0oB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zQk(9FDljrIECOO7py>fYhDK(lX7Ndh#i@G9If=!^xdErW4m*h0ZeOordh6D#UphMk zgT&jo%7P1(cdUw9Q}WnJtyClU(*!fYKRU4*J3cV~(fH`MMr0wg@%M8N=Tx6NbN%~q z^#-$9Y(*@)>o42An^W?x)^IW#SIa9G8%}+Ji#K+EQ!kn#;I&*U=%l3L`)zG4hbsRl zoIY`QQ=m&{z{`~$aZ4BKFW-KMUnSUSp_0?#y{~nT@lIOVb?ol73x}juv1$E3!*+hN zOPkrXz~sdisqxRl*Cee!f2!qcP)n?^bjzcq9;F>@+jw$>UU|yOhtE;v^;>Fa*XV*X7eK2;icIJ~0vd_59ZCcLn}sm9fb=vb5Dx&yy&Kj5 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR12915.jar b/libjava/testsuite/libjava.lang/PR12915.jar new file mode 100644 index 0000000000000000000000000000000000000000..29ce9c05f6873697062941b87fa2b49f9506997b GIT binary patch literal 732 zcmWIWW@h1H0D+bYB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z=7qmrB{4EExG*s=@B&Q_2r@LXG&I#q&PgmT&JB$AW^xqyckK3yZA+i7ojo-+XM1}} zv)rK<3m2$+o)lQLJXAgMruU6?7tXI@?`^7cu-CHM%{9rA-#DG`e(FBs`}Xqj3??gN z6xrhTU-dh;CAg2ndDU|MFPm20zFV~Rs&MXf#j?B`ZPf<_!mg+}KRNZ1gELVj#YHgL zBaAotPDPmam-k<$X>ugJY&$z4SZ-DD&bHg;Z}MDo)i$(YK~?hL(;t$CpqMm#@(4m)pPy+~iNJ+$vn{7VMKWZu^zWeaA{TVZQ7Wy-6Z zYhAzo?-jaqwmhU$#^D0bP6HXXzEi-cW@O@Gz?~+5F@gk;QV6Ox t^fZFdqYh-kwIQV#gvHp?0m6h1^_2t<;Va4 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR141.jar b/libjava/testsuite/libjava.lang/PR141.jar new file mode 100644 index 0000000000000000000000000000000000000000..c7b96294507a14355ae66c64be2b6139291ac640 GIT binary patch literal 1142 zcmWIWW@h1H0D+zgB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z*Nj%DFfcPPyk=ow;0Br=5M*d#sF$3RSX^8h?CmccDDp2)^UM|=CS86NiPKj)a&oxdH05CXzTIm_lNsCebH}uS1+4?pIlX>qGaC|Ear|AZ~W-} z!r7izfBV`c5;o7%k2|xg@+dk?UzB3BYTq$~ii;D@&-A*xR_L%$-XpQ*45@9C*>vao zFT8PkhxUVWGr6stgAdty@Hn;24%*cb*d}!@yRJ~rLRK|x&XpZ4oEKhMly-}77c%f$ zw!8D>7QOiI;p!vk5?5d)6ens}TQn>3=?S@F2LBbCY*KSmqb|PqHtWgM?lM1@84FHz z)qD8;xSKFzdI0aqURD=Y8-3#~lOC<#d`x=ZaiOGZRp~jGyo!wHg-+UX@7;`zQ+-z% zOWiNs{Cyy(sD{NKm8DgwThPC75V<%-(6Hl3}rLhk1= z8rvO@Gps+Q?x8Q-a+g(5?!)Wp7o2jOQsP~0;|_MqZrbN8d~dO&{E6R!Yj3zp+bxux zf6*~=b48TYZ4FQMliu^v?;CFCH@p+?@MM9B=|sKr?_O_wcExv^+^P3VEl)k^oP4(N z=>7n2MkX!>-1!xlTaW-!?nTvxo_`T~)PYR6Hl*B)uo!zDMVQbEWFqC*0B=?{kR&q@ NZUWNlfEk;C0RR??rD^~G literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-;=B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z{%7}p&tPI;xW>%DzzsA#Ajr_nKrcBbvADQ4$k$&uP{g)>W|^1u)F6%cpp3ssUffH& zzAg?BTCL){YQi-W!*y)WT6z4^XBnwJ3i`?KR=zIc^&$z?e+-NFA6RRDaBI>13oRU1 zJ@4(!e>bQ4US;~b>-XpHV>prM>L}lwzjxMYeT@l{O1FQlo42*3T6_1ljc3hc*-kz( zW7alq@$TFE_|>-P>ub%XcN|Rkpg(ilOEJ#nOJDI6oiwZv5IUswOE5)Z#SF9hD|tB| zt|iwVe#DabLd~!*!(V&(@~d~IW#)?pmHt0DpO7EP}^X3-6ykvh?e&sSYurg}la3X57mun!RTBm3Pa} zHSYe?$`F(ispNrH!THrb+)bM5eER=)2QuWZh&bZg z*6?~xO^U>|bK3>JiM`X`9B~Pxhe0xnT-t?#k%U;eo z;(tAw>bTE}9hRv15FGYmEk9$F&l!=U0-=wlNT%L@qj=?e++o(Py7d|j%pD~Q?K@7m z{|r515u~MLGo_0?;PS^rp0Mw#V*L{D|NZgumefqDIWi$+%BN3^UN2|NIenq(FI%^~ z!9U55>K9)+tGMoM)(%|TeAB1g-u?HCJC56$U&}su`e@&oq)iWOyY{HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPk9k zA{map0h!Loz`zcqJ@t}v5{rvn`_5(^3J_>LuX5~&$-i&^S-bMI$}aXka?@a0qPum+ zeoy@()xC`skE=z^mvYM=XxExsZGQJm!Lu`Se){dVcV`g3)AE61N?V3NRrE&j$4)QK z{!qPr>duD69B*A$mb+za7IW3D-KX5N{6=S5<-#pS#ZC4yYdL#ee<~`w7+Sq(eIe9z zef!DB&P{e~dqS?wsWgrGXCF1w>*ZM!*`>MydO|K@D|UxO*1Fb}6aTCcUH z`=8gX$wM*5aHq>FCzz&3M!nNLa_4-+-JOyG{F5F?zhyqR|IWFkb1l!e zyC(WgFaFDp8X$WXv#xpv3PEz)NYm$oQqEHE@& zshD)6BL8(;PVns|nYH?lTMHgA)@VF_6L%*i?fLmXzyIExfB&%H0g>%Ye2sFfw_57N z>W?MLiSI6$oT9asH73q2M)Kgv9Vb&~y>_~;?UZd(sl4U=>2g&?n>h>hFDRGHi(mG6 zWYW@TxF`2! z$jYhu>5za&7#Kj=*@1A>3Y|Ug+d|5AQe#zB-fxN1%ximk|^D}d1{@nfN4^x4mzy^*lIss~1 z`uYriA$2_>T)do_+)NCo!2)nryDyQy%%_{*t2KX zW_I@N8Jjgv8aw6h*=P2CQ^@gl_xwj!9bQ-oOlWx)bv$cwJ)2hT=VlMVH?fnJFN}KC zB(n7TvZY*oQzb-?U09MR(kYd5uQW|L!XSCOY^B@dmUHC~cN#~1%-*p3oL7H7_uqQd z0N~%+d+q_y^Y+XP4BWtg2naGXGlB#{ZBVZNm-)l|N3wZZQmNfm&t#W-LkFzhZTi>w*!9x` z<;1`5e=Y93b#2L#zR-xQd8Y5GyHr=tJzQJ%Cx+3S_sYix{$r9nOYW=Y_$2!*IrdI? zt!`-2>P(MukfJ&R2RbPTsv0!m_6E zyx1$x;v>`B_c#5YR;e0iyw&*0zM=yr|I#L>FjmGi8n&5D@Y-}VIOb~7na@RCuVrE` zqzUy39X{=|&R}oHRKvS%$5}L${W@O@Gz+GqqQv(t}D#B5x^J?cOvTpLo6j<6VeL5(n>7084Z z+vu9m3p0eKX~5(RE!xmEp=Wo5rj<+#4A9Jvt_eMhAT+H4W*Vdn6X4Ct29jh0!a$%S IHnW0w0OyXVu>b%7 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;LBN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zfYhGrIK=6cCFiN(da0kPgpjv}_3H}874ZQZiW`Dx#luy)x- zBzzJ2F=@#bMHm0oyhe}SwXJphzp82l$1C%A8yoVIgv+3vPkDH>cc|G+)3>-P8Jin)1ACnfj!tQFaGjazJXzsLJed)3#} zeczzgq?6>UV7KyA@S23z+yUN literal 0 HcmV?d00001 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 zcmWIWW@h1H0D)N*N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zn(rQ!d&|VYkig2ozzZ}zAjr_d%+gXXIVZ8WxHdRC__Bk@ziDDYPD@&g_IGLo+`7c1 z)Z`kX#c?Z$O+xnA@+mq3%a+VFN&FJ|kHg=_da16 z)AJ_B*YB%kH|Q+oEakcM>)4YwXYR~lF?YV*Shd70*ZaIn@Jk!>{wpPI-WdrQx_47T zlJ$2bO1oLU+u0Mp`hi;W>wvR{KZMWS?V5Gpf7MP2=fivQUR+~RWj%J!XvgEo-qQsK zS1;h~Y7uLjw#rJj5Kd3!4aaZQdT^q%P zT|QlEmz}ry%bJPPFB~>_kg`@v%-q*Hz3{D;r<&3Fh+m>S5A>WTugdH@e9mFfEsKvH zJB~jnUa00 zm3c?Mubh)Dw5X-x_WMO^(@pYDU3uItv@DN9D_vv8G38f(C(hbfnKeD}$*xr)zZ%|0 zY~1*&eTv}0@@P;s1ZU)RYiXw#6nA9q+q=bl5%b)ZTcL-N zUg$ksF-7&0+WCVVi_8OWPF`5RSo=^w_qoI!K2gJv0~;*bPP?~fG#og}QtdIXpJkhH z0slpQ;kPWV5=`Nn>;-2U2$i4R-lytsD66C3qJI6*N`P- zU8P?uvRGG(IxZId?|V@H1NZs$_bm??IWjqKxxf5`)ZEt-esKqQGcs{8;Le`F%z*@u wGApV!^z4ezqYh-kwIO9*gvHpiB*KJNAQL5n26(fwfuxy%a0`&0%M9WH02KPJ1^@s6 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR19870.jar b/libjava/testsuite/libjava.lang/PR19870.jar new file mode 100644 index 0000000000000000000000000000000000000000..13255d8a4182a398ce422589566e36556300a7fb GIT binary patch literal 1944 zcmWIWW@h1H0D-v`N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zPEMVpyo`~7p_++-K@ezqK#-xOg}H%>Q(}=`a!z7#ac)4Yzp$f-?dA11^}7Eqnv%6K zv}@bdfL|>vUkZs$|DP0B3_R5Q@uqsc;Ky^zwq@N(d46tg z^?S?b^W?vm-)H#pVUqH}4MtY)-tND3J9nR`oqLy}z3B8suenOE)!NVWvQF{vRW3bu zppEC)!nanZIPV*%M86eY^>uH*5jWGO32tqQdo?9^54-X=Hvv+9(5m;iJLcY zH7m+$6iTHA9+7f?sekEXsKBY2twz^64|jL$uMwFpyWaYftZ1KeeAms!PF|ZQEBWIn0Td{JTXq$hRudjZr88JtpEP9J$t_6>Y~doP3N?FLp0Xuv6*SUnppB&TTbV;@yF!WTc5hGT{mQD zj9FaJeM&q>?8o`&9NkM#D<-C7zR|fk&3SH5#uMJ$H!`ctrqA5f_VcCuC9R7#i)S1t z-jeh*Dp6WL;SUpPq@K}L(7y$Y)VIJ$;+SQ#Z3P zC__lEA*yge(9(`oAuL}HWhPHMH8ok;+EL-3ka!o17<(OqJ(uBYDJSi)TeZIp-|wAy zbN>E){~0bEXBK8<{QSc8|HsAcw!*57w^r7u?{4Jr-*w)7`Kj3)9pC3LGiG1s{&Qiz zjiAP^x5>OuRf0xP+dKbFd{dM(&9JN1UfqE`>Nbkcg4%5&-L zTF;lZw{7wbe*dyt$IV`4%-C^kk>%QJbt0A#S5~?SoiY!W_LeGoEPoQtx9Ue&JnNOvBKGH6+hp!s_OCznmGw=cNw4kJ_u1KV=KR^V?$l!ip3ptw zCsYDCt%FU&xeiOo>V4WjV}0(ka}BJMgBKjSY_(YK>8<1X8|>3P+E@2FwVBS)-SXYC zt~D@SVs8EptLEvOPb(>!o_T&DU1wo_c(Bfr9d&JKUAN;e&YJHXT=GvY-F24ae%@&} zpPX|Q%{963kUi(BPHui&h2`@YtLDEig;<+CtjcHRes0-RC8sm+_${Rv$8f93R`&P8$-%5|Rgu2&;Zt2VrvT3%L`c5ilN_3!7` zO&jFQEQ@&j`}(S*-`^{nUF~>aV!B5E5%G&3TYp`#l<8X{ZT!T&(<(iomaX{qSKFsY zvdugDAVJXk%Ho1p zN!PP^x03I>F>A}5mss_`vG9Y8KF6cY`#y>CUU{|M-=ysFL2ub#?AJGMT*n#x-Q~8R zVzVvBqzhB4=gD0=>6C9GzO!~|%8u9F8j}RSI%_4jUNL&XxgyBhZ8?)q!7oXjPhlrt z^@sP|w@;||50<@^`y^xgik8W9cWFnct@h@Uwl}o()L%ATYJ1Ietssu7f7~JK49Yv7 za_!!E=+zO^tnYWfY;bGm%u!C>ZqO^V*6N^nfMVgQ7fIW4UWK1{F>O=eC-DvYZL`iS z@)7#+k%yb#?Of2x*Jd|m%syy|I;mg(DD^Bpz?+eYivf3y0?hhI0I7aK)rMZfAoQpM znQ(1L^$o&e?6nBOgjOIEqfSBBj$U3Nv_}CGFH}1u(V}ZbPvr=$@hotyD)2NP;LXYg PQo;&^M!?Jw0OkPzqtEs* literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR19870_2.jar b/libjava/testsuite/libjava.lang/PR19870_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..05daaf98ea0bd9fbbebcc8d1c14a8c3d1b7df3cb GIT binary patch literal 1698 zcmWIWW@h1H0D(CbN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zz9%QJ%w}X@n9jt&AP6))Ajr_t!rUO>!`8(KzF*Pc zc0}A%O4vEc$>~bR$EzYSp1fO@>8jODv(xx^kpIKtp7hn49(T6f-Mra&bMdzM@$cms zv~C0mBz45bgzWu4TltW>K=xWv*osM*lZhq#2xEVB@hOd1ClNyOL?{1-}E__{@3R zo5Zt@X1}!1Z!NYG+qfp7(~(=RG1;|jiPYL@1$Y1S@wM5w=SZyaC}>vhwq)Cz_r6D`u{`$2+$+0vRpqRiE?)To^H(Zl|8lE$ zSe49J%By(ap_L zFVBNKL*tIFw`-p-_%gZFWRBCBtq+zg=+BXVy*R|rkjtb!z~yAW_Q~!WEx&kCV=}I0 z#ceKNOf~^AYD_voVlvk6wAbMPkvWr(sO;^`tqJAkiY-~Fm-E_)h$dH02dqg#=wSmgTAB|cX?vs7MPz1-*N!r}ipX6j*| zthHO(L!H(x63A#U^S)`2I$`q1cOSPLoO>qqx9C4^{x?Tn`1PN*VHe%nJHP0jz_}Sr zVvnUxZ&SMer>! zGy_ZkWdMP;|4SYCLtH=T%wv4LaglhIiCR`t5-0~8(}r{PuDN)*D(%Jil&MCRS$`zpaXOouXKITz*IFgL_1+zO8&s_*Fi7C9aW_oM+!PBM(1wO~t-M(_M*-mut z{sl|j?FCAOJ--NVxTx|k!O+K=_xG9NI}1cAny#0dERnp?*67HyS|Z8g|6(JpKg-Oep;tfA0XxvJf956|37P-p!sd?Q!OwAi;g}V<)eQ z6fQnd*39Y@eSFe{=`BCwTbP-7xYdM&lBY=du2<@l*}33eUqKN_re~HGSQ_ zna6gAhgp-VPWu`Ui&I=%C#dh{ddnT)&B(;XfV*S`Mk*3ODrZr(p_jA>J?cOvTpLok zi?A4bX^JqR70ARWThXHwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z-c4H+o(?p%7Kqt_*i$b#C$YHL`fL7mJ2o~pXEwhwHZ?akH~%s=F*mlxHAgnN{GD@T zPf6|nC2Ouc5nA9QrQE!tjel3m)-(xa=J0~L%)p{m(P@5K%FO-_6BaIAI&q<#ho&?$ zvof6*I4NJUq1W=+;Ok)y%H{Pfwm`oGosD$|8Dp zMuGY7w6bS=w{M;wKU=qfA(pXO;hlWb!3RnL2ApRrzX*L551jSo{iB_8p0d0STB@~Q zDa5AU$zXlB|0PG(Q1R*w9K8WcKb7t6N&O~ql-qMbOK6;h)Gy)2TBmF)-tyXZQ<95Dx%cRrdM- literal 0 HcmV?d00001 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 zcmWIWW@h1H0D(mnN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zW=+WY7Rt!Lz{AAAzzZ}zAjrtTz|>4HIVZ8WI5!~Ho5@kc_VMv`>w>2(tG%^-i_{X< zuSs8oSemA!{0Q)0&1>}NUE5o?ziXO=s$Q^vS-i;lb(4tQnZ4!b<`lo*`T6hXpR5lA zTxA8>_Ey%0td*PpqQmga*R|@ajW*1Qd%Ehfcx->8?d6rm8OtwCyeH{=X3g|lQ_kJ3 zPE_a;Y3Dm9U@AH%&%-_DSD8Cc{+e?R1_hf1`&LZ7<#|D%&%&g6RnH`~71MJ)+ZFTg znX0ix-3zeV>oEEFq`sr}-=g&U=WVc@w$W*E?EE>;jwQVeo3-SNhrZ74X$Pd7?`*4i zS|&T&%1mNY@C=#g8_WJz1YBr%^W;osoB`J!C za)z&+lz$>M%s$|UzUM?yzY}~{1>gK*3h-uR;$py^41ke<1dtL1sy6gwfzYE4WWu!} jB@%?i*rOg{LMxDok`MyCS=m6+%s{vWNV5V{3j+fHLviFN literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR218.jar b/libjava/testsuite/libjava.lang/PR218.jar new file mode 100644 index 0000000000000000000000000000000000000000..764740409005dc84d7b6679ef1f0d4675efdd234 GIT binary patch literal 764 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 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+AaN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 z?xwORi!m}VbO13s&~!(=#%f9Z6vRsMl{XYu9_jOUWtiqFk4{`~RhH@*iPx7o5-W=UiS-0FT{ zSMXS2?(XRiom^NC%D8XzNiFnR!T&vvqjz(TnodN7QNsU?KlsaAJ!C90J{5&++WkCq z)0sP&dY2FB7YV8;3+p-+8wKn%>Ug?%#?1)F>kjP~{vLmrAZpuGxO#=f(>n{lzs@`O zrDn;z>`Eh1@l>I%KUN&cju(z!{ciT^M!|)4zYTxaoKY^+o0{jpzR#bJKSYY{!TyD- z*o37@jRaX^rfnE@pDtiR@8w_{^tb7re6V^ecuyVjtfY|LE7Cg#T0 zxaP?x`JzhupoCqiy)X0y-iIU{84#+Jr=*1(NT?D?N5A$n|SY<_ZVVQgk@ zY<2U`>CTcXizXadGACrgq&r8>*toG7_GZYp6dqJ{omu(vnu79?a7LvA7iqnZMDhSh`=_D?B|Cdw1iuHHI#V58s(hAieuISGz_3Qy7= zG-^#{In89a%g9dQB)8d2eue;VMkX!>+-Vi)T_k{%a#6LRr(J{|bs!V24JjofEXJNb o5hk<(nb6dVt_eM65Sk7ElQ~j61$eWvfh1Xg@HvoP#RTF309ODfn*aa+ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR260.out b/libjava/testsuite/libjava.lang/PR260.out index cba223424e6..e69de29bb2d 100644 --- a/libjava/testsuite/libjava.lang/PR260.out +++ b/libjava/testsuite/libjava.lang/PR260.out @@ -1 +0,0 @@ -A initialized diff --git a/libjava/testsuite/libjava.lang/PR26858.jar b/libjava/testsuite/libjava.lang/PR26858.jar new file mode 100644 index 0000000000000000000000000000000000000000..c9b3abbe5a1576393424b766ba361a1193d85f18 GIT binary patch literal 38769 zcmeI4e^3)=8pl!FqI8sL^@h3Y>GtF*?I^?_6|^8b_LQ8%Ahz0LS}S{$BDE^iL|`aG z-f0<2ue8nd9HmoRvU>f7xU`hCth_CobM!l7|CFQCZ^_Sl=-x$f3nTuZ%gNfA z^K|UP#Sh)PFmCzc*xc;wh=_kbed^6$qW^x~7HLmd*rX|w!=?wHzV6Y*@ynJji_6}Y zrPpr@p#r9 zTZnzJp`jssYM!O5t84b;{Ksa$YAGL#bnwz;{U-0@`d9V8WekoQ)j_ZG-ed zmZz)TC|r-PE8>a$CGNSVsKy^fQ`AqQvhio4sq!b0(fBjbl<|}3X#ANdsgW{WP2D9; z((|s7Zbwr`FwtEn9dDAHP5G|U64#XyTes{RO%Z$3(4BnG9SP>P_Pia3t_a;D`%7<= zr~2+1jJ~Y>yYbJACHckwtHjH`yPVNqYmXYAVa_MNTe?b~2#Keew&cH-{$Bp0?~TFe zPVJ}036MDBd&3!hMf4Wk!zVm}so!VOC1V{`xtLlv1$ z;<9yW{kww8KdfbjIm6xqrf@ZBz`l}=3>0GuNuVe2C}2^*T8Lc%`y-A8V+=^fK=D7V zRfahu-h(EsnsnX%2#YBsfu6vlfJFgoA$A4qk2n^LJs_nAiZ57q8}<)--!sLiN!RRa zSWF=a^aLISEDBf)u`6JI#Ia!P0m&LD{>oZw*gxVuY|2%W9QMaqOd$#M1Rez}3RnxV zD`0=bv0&^0NfRhOZ>=z74tw7L z#$pOdpeOJsU{SzYh+P5uBaQ`Q4@j;NZzhY&t;K*en9|`KM?d3eJG*tLdBARvnBOQ1 zX)RHW%FY|j1FhLoudlVMr`)Nbo*H%7D$nEtsjT`M-xI?R&u7(6m%o>HpXGh~Sov$w zZg5NRf`22~J}gm@J?eM+db54Kr9;i4QSD2oeRk3x!~3*^M$#P8mQRN>8WI2%(!3`U1v?>;x@|ubEWf0fZa*NR^HL1UwzJ?Y${`3Co8zi zs=qpzm~MDe^=bWkIJwiV9_k+|$yt&+nmiRjNvL&j2Bd>^J ztJhe0!$<qD0!s{zHk-HBI-)0~yq@-24Xc_tsK{koz!n~GYW#Y7fmJTD zbRVxcSb6_h*6$!!6X;Mn2pm0PO0$Q1N(_!v;@`w7gR(NzY-Ht&>cSgYf#yiIVM&n~ zC%oUFODuBc2}c_Al4x0Bj*$j4g+nEJm)Klt)=0tsz^0M3QqeK;id=0bZ^;SI!Aqj; zjJjMZY9QHCdJ)VMP2bQtlD&(2uI!$!zRh*@m$v7*3=L$xB$>$va)KTfNckd-75Mk% zIvs42@||?KXmZf)0)IrV(-V_iS47UMiS=Z^Y;WLgYNDB(P|HNFhrT1Qee|6!zCtc4 zfIN{Kpj};jxh(C3Owo2l{fnF`GKKK6yk64i;Git+Af0Nq$PLn0hi4godtvcuw*;dtVh9t@4qIU}9Z?Z-Q zr$zphT4@e`B`4DP0(oDq(ZMB=Z&5qU@Q}p0=sg0dlJj-YF7l_8YA#usp)2TKw_OVSAfH^Ne^C; zSX7M}?vwaInjyePGN%WJNSf7rGsH@~lNJf^v24?WEW!zuF+;RO25GtgAIhvA>>`|0 zIWx?ch?C|Ea75y-4f{FY1}m^+sah zG4@Tf!VHlUFbTp@AcSAw1P?g_zk_mxL4goLaDtnhg1bPgFeng02u|>lbFc_n6$S-D z7{3!tL*yh(gBS$`LI}kP9`Xe|0M&{K1wshH32xE?zlL1JgaRRi-~=!E5|)EqF`+;R z<97l#L@aPSL@6i`LMTq~kT$pvDisa|LI}YLZgLua1sMv50wIjw2`<0Q&G(X4cpYX# zA}vxdfjquv2hK~{VJUPdC=fyjPOuG;W|$5M3JQb}iW5BKEW|>cVncxtLU4jR*vw`_ zkzzxE5JGT*msnv1NQw;wLKwdj*daIpQy@}7fe=D*f(On(G#C{Y1wshH32rzAGa+4J zQ6Pj6oZy9Xumr3Mivl5x-wFH>oP;|;qo6 zOBCZRvVp$;5sDp}MjY3Yp0sJV7A%T)ENM}l&ZOhVwa#dG6titmSMQOEeKvR`kwWJ+hT&d z|J;_ga_yRw)$2FJrKSA$2~%%=asU0gEz+K_ut`%UhfV*%6Ltl6>mFSkzijEUxa@6N Xdi}c8+wT~?VoETM20yF!j_&>i{0NI9 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR27908.jar b/libjava/testsuite/libjava.lang/PR27908.jar new file mode 100644 index 0000000000000000000000000000000000000000..e2804073642f78092f10a4da80585c630ac950b8 GIT binary patch literal 2452 zcmZ{m2{=^iAIHZw#$b$nG}IW`V+K){M3`*DWVnWiF$N<`jB&3JgBY5>P)eH^xt11W zNt7j|>?)P)AyeJZwPo#2-R>37|GwvW&w0-|@8|cP=lOo$-}&KeczD5pZ%rfusrP;G z<0QbjVl5m^HLUC~DBPB5)f$1sJ)GCyy2Q`Zu%>oa7z@0kCKiJw22p&-)G&=-$e~n9 zaF78)OA`$?3ndf7$le-kDi!Z5e<^>8kg~xbFxcUS-7N*-I3vQpQe9Z9JpRz{}q5vmXp*F`Y?UW|75rq z=JcbUQvumoRs&(F8HW6=YdyXoO+xA1>Y ztqFctK_OhlyeVlGK%Z4k5S-kgUTF0hS0#EK-QZXxhgDy(6 zB7wq0^lwO=qzFEBe!th`Lh=(!;oOq29J_hpHiQ{0ut#+g7y(}1M}CGGmfB;GcQAgI(RKPJ@!eS@Yb|!`1U~6W7K!{3IU}B=g3dm^9*= z?9=_^{CdO=5z7H7W$zUoD2L4?^o-OceY~F%X|~xSZeAC(+*WQcR+tS1YVabcJWDbNgITE+Je1 zfC|UGVw=w09ZCz*`rE$bv`*_L6N%H^yUWV7DqTN*wYM-I*mH}P$70~1=0}dGvfC;k ziurbmfl)AzhRPmf^(@Jf7_!zb7tozjN!POz1xs{DI?wnYruvx;X#ijC*2sgJ5R0KF}8?4yuCvHTBtktbtdM9tF{DmwS$497i-r_Far72 z{62xQ`rWJ=)b#G;^N3qX^PJ$zNTO#P?!~$!PI>G-w;lpwR+sjc*ym}!J@I-lKsSgl zu{RC{eAH=8vYgS1H9!fn8w#r2Z*!j{2NkB1m}(uyEZfqu#rV4efU+oKOoj)6MpT* zwADPbhQD7udvB+A3d}QE^MbyxlefiPH8; zoUS(l0U?OyMmZ5_s?h$~%#qh(=;xPMv6arX7a+FHZsud)=F}*~vrPjTLR~R_N>i%{ z^u!}fiLr1kJHBb`WL~&3)PC1Gtu|ZLARt9xzi%a4r9Ik%bSk(aN3PrmXAO*WDmiwM z27f-^AB1owp=}sX@9_hx7W~;sXTIxGvVQCLOMF!OMLr&TquF3BjH_3w)-dHjfIQvt zWdJh0^0K8d>tN((W&$lg(|7l-I^&u&0k2pi_gf)z2J&ziIlED5AszBtYU}$3#QwQ#Lus@D1Xctm6C%jdlqiUFYE}R`S!Rgy}kj~!% zS)^g@xJ{v_J#-oX5Eg@_;?EQ$%Wv#?(F{}QO<+#r0?Xm_QF`9h>D<_|s#A)i-IX)myg)Ch z$DRVs;M5F@nL4GR52()3C>S?h$~K|maupPl&~zv6OAYJUC} z@#%9-FUz^a2yL+FW}OXVv2KRXok+%NFfBi+`T5cmC<6&p>1ojq))aF%lo29Ie(9Sy zDp~VlGzX}RnG=0USDQi=WxO!%@CrJ?axW;2?GeG*aB+hH|6L1k^4U-Ar^;X}w!Jpk zWRy9>f3cq`h0TTk|Nnn8!fDQMOEs_^-JXCq(StnyqCchM?fmxqu*r{dijf~nf8&2- ii|zb&`)=}d;1>RenQ=CJoaX=lkaL7_EDr{KyZZ}hfWnFZ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR29013.jar b/libjava/testsuite/libjava.lang/PR29013.jar new file mode 100644 index 0000000000000000000000000000000000000000..198ac6e2ee84ee117a3d708fcd5698482d6b15ac GIT binary patch literal 649 zcmWIWW@h1H00F^DB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z4!;{B_!$`(CIB%n(DZ;HBTEBAW4+{@#Ny)EK3i{QM}fBcd*9Egmf9c0(NxyiY8cg- zq|D(I;He@OR{mVb?2fy|_dlU#VQk#>4fbAhV)>e8CY61gn|^QR{QK+k8JJ6IB6$8C ze(~i`O2MNJE&=3S^>0VSqO)8%UZN2)6*~ K{lIu;U;qG~(7#mx literal 0 HcmV?d00001 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 zcmZ`*2UJtZ8V)A3h!jB#B~*ccBtR%aG=LD0Za}0+ONarZ7?dJXq7sS*FrcCYrHhRv zB8Z_$XC)$nh)W5m6kV21P*?%M7kBq9<-9ld%*=n!%=gVb_b=aI?SUXL;AfMJR5AL? z_-7F2&5l;C2jR9();ict+bZFw@!GuQpIvI>Hphcbw$@fhToI1ej(9RDfEXGEcO!;` zl7h)7B|U^L*fNBO4i)Tr$!YZ#j?)zL9ds- zLIg%wPDcAJYm^65=Bp@Iau(lJ)O|fXuGqEMp&k$F&U(84X=we*``I=2_l3^jS-@Ze zovt82S?GT^#q1|RWt(XkF}Y(tGe_t54(KF6^}fEpnUj(vLL2Nu#j%F=t0aJ~t4DRU z>ORp%a|>BDaH?V5G&nJb(s4$;;#o|3ah_1rbkUP~=S#1R%uT?B?#kvnHE`p`{rUI4 zYo)Y2rX4YMM17ZiX}2%yUap^7=aujLAK`x(H=kLAO~*J^(}hH`?uMPK44XZE#D-u) z)OB#JB3nqQ5d1;A*|gbd;Z8i`4*|;TLz$917~=LfKn5g*9So6i8v78TJaxIUU=-Q> z2tmtaYu;PVL4}}CHX|}VbZJ$T>lZ3q2u!ZES@wNM7`bF%%{&VH;q{v)G&1p;CGgJ! zW+QDH^`DMfDX9(@o^T>hFbYf+x9#>;NK_}|Z#Sk7d%x0Axb6t7u=Pw<8KB$5;(J>3 z$wwHni^0%4kJGoeZy05<2nv$$+k zncw!HQrK@$oRON7mi4mtJX?pHtYq?1dY4)>cAs})zm55-0jKM;MR0Z zg{LU&luxxHvWXzeN^=aM(r%{rwnZzU%}f)k!!$fqMxX3y_lh~LH%VU`>>>_6~piv6lsts$v&Dn}vhFyBf2LSN%GFEy$TlWxx$%GJM81e74 zz3Sp~SoWY4dUtw4xR-Q1ha;Ap7ZU_$k`#qn3Jpnb6@2;?l}# z+$ysouIPJNpYytR1~W}UJ8J`H`pqt0^x-?73I$3~DRYF1#r(z6H!@LBKNucIORJ94 za*t}#Xn9AI-}OOa=j$O>2hK9eWm=;6E&Q0NiuSZvjS62=QUbBX0mEfeV~v&jKSh0f z@!<5ZV)b;a5+>S0f@S}@E_%jI@Nw@itaP1P-`WFWGB%PuO><+V@?i;zhZ4n2uBp46 zFIZtplqF9njHd)j_i(cmhjX%pOYHk1)8g~oeKO9IhIbhWoi+R(VaraJekh8bjjqu_ zP54d&kWXITk6%(hT!vE?zJp^W66#g!Y|yB^kY%seL!<7gwH(FDyVoExFv%39ShckX z1~lkp&R9`t=Zb%5$K;FWYqhA5V&%4rqWvsZdW5rep9@{s^s~gUn8zdI4BfpQQauSy ztpvKBFW((Ph_qpTJHLVQg50CguM<+9fz$_*&%enOFgdx5MO5Brswpig^y(mJ=}h&l zs$Wlm24M3=mk+`6o4PWGgUNu+Zk`Jfd8^NJ^9Zl+-t6WuJc&#U`P^1)UN8Uk<2^ybNTcFVDzc6l50pO_F!s4N zQvb`Bm4zKcA}i`5v2Cl(k&^}Co^no27=ipGhvWQH*J5tIE)`k*{XMQQk!FsF6dmC_ zGH=W#aX|YILiYIZy~@11a40q?c)k!U?(ysi)muU)U7O({$u_=?JvSb{pCa>+eIu?^ zWoB=+yva;Kcuk$i*`y0Ymywy)>AyoePxUT=l2%_D$QDhSSCj{+W}iU6x|6oD@B&Fc z8szWZkR{PauB*S)&3$|eUh_&^v=X1#E5%~=e(F^6SLyV?g|j(0gu*^kh$+7Ilu=uX zNr3rBwsk`Bf@|%yi6YFijuX$}bM{{c95TK7da`NYDO@VI-f}?lh85`7dmPLa!hEzjb$=A%SOZQsJ%8twmrRst@`Xx}_v+<=7fw>m0JY ei@-m}|K!*hZ&-VN-XgF1@E$ZTG^v6=-~Iz$X^H3n literal 0 HcmV?d00001 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 zcmWIWW@h1H00EIoB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zcZ@$AKFP$u@Pvhdfd^=MK#;M4rI}uGPGWI!Zg8x>aG-$g_T6vwPAe@9*dVfm!-@MZ zlgQGe{0@OaOEP#lr?_lSRrJ24cTFt$54+v(CzIonKH5{I~soqt^{V5Kxe;g|E`2xH^jOD4Yf|38mcx#N>ca!-b-xF{!MxXFgM zGRaW%iO>h1cOS3obM(xedfgy|yE0SMJIDF5#tcPK{)|tlzrSv1n6@>0YSYe~jjL}- zoAnl(JEaJ6{+ayJ-)>2H>mtWntm$ff3+fg%cw~IF@Z{9G{aVDzYpvd`tDO(ZV(KPl zE;3bruQ=sVNy(NM9lkK)TuWIWlkSZbqLtqT((ax-T(h@`vL)%33_-6DJwE#jSswCYzb} z^>okKRH-Rnr2dQN9xpypv`(S^c*H5$0`GmdBcrx2f7!71`SBg6zjV9!ABk)V&Yi`_ zvBNxg9`}mhz9OrWpJcW^Wwp68Bj-gnUpDvNEw4<@@JZ#X^WO0G7mqEK-?>8i@e9T7 zUlWz?F#VdaeD*&f#yzg~_a@%Fm&_o~@l(+Ghm+rr&cr{%%vl|otytZQ-C)k z6Bh&SoCi$zNB}7xqH06Wi3mOFKqg!pQocl3j6Js@OlSo%k@H@FH!B-RmKg{)1L+E8 G5Dx$v4v16$ literal 0 HcmV?d00001 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 zcmWIWW@h1H00FT|B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zrblPs+O(Hg3shEXhJ{T7f?e7uwy}uV~_Td8SF?p-YPYBKEZJjyYzQqqEUM_r~2~ z?Wm>aOoBb%J)QaG@y156gI3R1pX$G|cn;^91*;c3zxcO!`^GLg$NjqDfrrA`->qM7 zx&HZMqo~uNoqIGMIiy{$6Yy*@Te*q*%ErXS{Jjc$ww!RPT;_FeR$OnN+u_5XWXcY1 z3=HFCn{`3rb8W;yU+C;#@b^f=hGVfIQ_dD0-26ZH=0i`L+3f2h{!h%l8dPw9 z&AyykM%2JN_U2NOE->Jh0Wl9S@B)I2&5aGAAsArm&*UgjdsudRflQN9-Qr7)tt|l& z2|5NFmAsAwWR$i`Z+c>PrgFxQ%}XvEIdtTjeCixqpN`J6=Z^0)e}A^7c7HuX#$vq* ziV@AP&v`D_O%OU2{QYF^&peCF*veo_KaMAYJ$36(9|#s*^`z&tTd|A5`Nh?lhaC-R+`MT%cZ7l1!IHh}c|10`n&>3p+(#*Yb%0{&fzue1y{F!m$fFtW` z9g(v)97`R;0<#aCY594HcUR?y1op@Xrs$l_>B;QXOuJi7*;lZez7amsocA;5RL-4O zx^EIqx{rTy%G}?2RI|@izEsTMhhNK_u!lN_E%Q(1&s#0!{%D46RrB9TOtN)rw`3YD z>6jXyVZ4;-sHInNi2cT&U2j#7KFjyLQm!Ji#H-ytz?+eYivf4m0ER6RK*}hn+R(EK zLXSF-3D<^{aS#?`&khI^T7gVx=0Mkko(vG04gnJea-snTrc%ItSPh zKMyBguw!IkxC+EPK+^+)ObtxU^^$WEi;HsuPJ1~8ip1Vt{r%O)UmBO^eUoZ2J0a!4 zywp>GGicJoB^N{ai=NmWS{FEfs-t7G-GctEZx=nf_};L;Ub8h`et!OYhQ1BCicSX6 z;a3m8+Ssb0XkGGdZrAG{&8Je!HL4XGl20 zq|7=sT|9Zcw)=Iz>r-QP*@bdQoVekkcuwnlpxwfNU76>qw;rDOiG6F4dZWxIv1xU_ zm+JO#FHK+Ekor!xr*g#~pEXTh-BT4`FMWKKC2V6}V(*0C&u<@N>tcBw=B#&KK-ct( z+#=Z?ciYNkUyhu-X~?%l&U(+BgVU8%zO>De>^PisnPbE0Kzrlre>@*eQg6LsReH1a zSc1ye!}>*6x^Dc_zEr%+l9hK^%Ek}AcOMH$i3;oZDa38~w7q6lrKFpgWq-nJ?f`E_ zCN2it(G3i2B!Cq8sM^q@AE8Gb$b@S{N(=~#u}3k&gjOIEIl=?HS=m6c%s{vqNWTRp H3I+xM4u06p literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR5057_2.jar b/libjava/testsuite/libjava.lang/PR5057_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..b0accb7473da493b78d1d47c97eff7e29bab1af6 GIT binary patch literal 995 zcmWIWW@h1H00D_gB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zH<|5}EEpLW4goPA(DZ;HQv*};cq6^!oW$bdT>q0^%#H%JQ&Y{<(~Jvy1NkRa7-+HZ zbH=e43aF?|>SmvLL~Y9%r9!t0`;D5K*zFJW3$1?K6>(wfo~re`UVVN0ll6e!wUQ$o zZp)+ZuY5oM{Ywvl6{kIlUwFm0vA0w#y``?g*UX)$#CN%^RWj}F$85n%xi7mXpOEhO zxYD?Q)iK*|s@UYqW;3%L%AI}otG*uE_{F_9>%NN|t88)0nf349 zmTK5YyPo;X=O`k?C7&dD#cB;tq`u7h#6-c|3j>a=nNb}#KU$0Z4i$Ocl+ZKfP+Qw9W^u8D zaqs$myVNWzdarkAf&8BQw){)txpvDw2DfzWIT6b#=Hq9{Xw_rHv%a#mHqfVi^;w$@ zPT^VK59S+swf_6n{AzOEiiO9n28(^I5AbGW;$py^$bsHR0!T?7RU3MuN9a)pGU3{g uvH-$j>`vi literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR55.jar b/libjava/testsuite/libjava.lang/PR55.jar new file mode 100644 index 0000000000000000000000000000000000000000..a5cb7d61ead1c8c79fb57b89925156742d0b19e3 GIT binary patch literal 814 zcmWIWW@h1H00HSrB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z%qO_F?P6qLc)-NK0CHMDkg2I&a!z7#acR(Pze5fJw%rHB)|dzE$=)lj|A1Hj;Ex5J zot=To$Bz66NomgZ@?MbfNA$mwyu!sJ{2vzgY(9Eq#f|oxb7vNxJ9F;K-^WjR4{(`T zGVvU|yxFHs`NW0V?7NYfw~M-7PX4oY$2W;X)|V#U({r9ZbC1HCebEAeTND>5w-`8I zpICCFaP1WFsm0p)+)Yz-UK*&JS-m)a=bZ3~eulI6bSx0QD-&zq^;B-vJdKwx9DBHS zny$KiUB%nH*2|~=$04m$%PPrV^{3xmT@ouG%FEgI?Xz^EMV-ByNFmP(J9f|WIahm~ zcwS2!)YyAPYkF&Nf`lReW0f|DX1%=m9W?v8-HNVr1p~nK#3~ zM3Hk-qP+)KM*Bb3y)F|@94PaDQ21O@c6~?uv0qXzoeoTl3=9AYix2Vu literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/PR56.jar b/libjava/testsuite/libjava.lang/PR56.jar new file mode 100644 index 0000000000000000000000000000000000000000..20f87b596ba26b991ea8bd8452b09d200433cbcb GIT binary patch literal 598 zcmWIWW@h1H00D(cB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z9`eRrkASAiFfuTJoE8vdYNnT*lUQ8r>VG=xkb{V=xuIur?ULE=?)+}JrFYA>TiQ{h zC2Y%$*43SSMvIhNZq&a_-=S5aSo+$%Q+?qBop(FSE&8kbm*2N-V86psz_Rq=i;tQP zo&vg8r@vY^CAQ@L zi;V-k8JW1izQ!IQz~DdvNYR6;4LyPodenhTxHhEdLRgGF5)dY|0-1;?3GilR1IaN1 N;YJ|c4~#Sh1^^0KsgeKy literal 0 HcmV?d00001 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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 DsMn_x literal 0 HcmV?d00001 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 zcmWIWW@h1H00G-dB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z>bGoG-e+Q9ILyMpzz;M%peR2%wYWImP%k+rvA8%lI5u1;P~>iSqhx`TYoNNRz43?c z3!7N9FPmuoVVbU+wKj@5CW9x9r)|^rYpb4Dedqs?!++ycXus{3#Zhx59gfauuTDQ_ zxB2|O=Wl*Lf8QU^&~!ua!jT7ev|eb&>Fnd;+F-clt>*hF4t^ImHJ*JU=P$|A#~K>k z`{&J=o`)LwP$!qaL&+vVNTtf8md z{_fV>aZzo-)P;X#dZ(H=pDpHm`@vwxraLR#B=*?Vf7yRzLx*46G}C#fUpAlr;-sg$ zV6|V}(s>(VwmIrvBX#nRi?}g6*66U7Me)o>6xBcG3HZ+WVP{bhQGlCv~v0RR?+Uv&HV{ zcV*=FsBQM)O8)` zqy;Z#eOkjUeM4wNq;}rMbuvqS>|6M1R!i>c?6x>f7q{NmOP#vbuUhu@ZhCm;tv@qs z97_}Ie80Grw}v(D`<0o#<@RxZ1-Z-IA1}Px(4;gcqcOxYRd++=jqC4s2z@PCbG!b~ z?2KCLZ0}<&h3@^@2UE2@LbQwhetomzSFBQU-%veIsEDO}$|B*^HM1+P?cDaU z^OmUdv0IyeWW1ev_{as%)w7>$zvOu9g!|hU&FyFIHfA1rrn#v@&*g%%jnUKZN{*8H znNgBF0=ETBc!VEo*d_DCpV->7=}g?Q|BM0Nj7(e%xU(cMLm&a942r4^J&Pjrr~{dB jZAcjwVKMe>h%liQ$VAJO0p6@^AO*}oxD7~8WCrm7Hg~R# literal 0 HcmV?d00001 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 zcmWIWW@h1H00GBJB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z>*P*OFlA<7NMmJS;0Kx>P?VpXT3j4&q?eqNSX`VN;v0TBKwvNbEw$c_4hx(dH*`3h zZs*|2>RzFs5yhz4#Jc~|H^zfzD>Gjm_bUI#X1U{-u3ndWzh3N*#WsGI#9U?_tv-3C z_WRj8Gf%#^zhB2B;pXMQ+gyIoB*D-4Q8MPBn2zoM5&ibeq8s=Z7~86GB{s4|iJIOg3!NZky@JZBeT7 z=Tfawltk92*-BBF@=NCU8=L&^pQV#A)5P4h#9&8d)@2T_4Cf1e8!q!LsFKQkF{zO6 zuFAw&rweV*8bt6`oeA03SM)-4W0SD0vRPz=oBS_Hm(v;tC1yDt=XcNj%a%IlxPa`l z{E9BckkFU)K2Mb{-%N}VF(`8Ry(##ZYLC$mkKdV>O?(zT%$jy(70W_N=gn2?5~j)o zGESFd3bpBuS^7q$=i#cg2`vj%L#8V3(Mg!|YssV8I&0P!PhPIg66kY-<+`L4Kc|=9 za)!V=Qw(2bxYcCt=2!hu=zYv2ZH3mKRL8SV{%a?!T)X&TsQ$YL>l$t@j{R(w|8Y%E zbw}V~Y1UWu{|{c}UXra^CRlt$+tXB5X4-}ZS4Mt~Gg=;!g}Xaj=H#Awp(Ho$eD95; z5feXha2D+kGtE9`FjsT7=tj4@S$hONF5%gy@lf&*)4XuK!bNlICO@+DHqN-QWJjPu zaE;q$_6y|(SDxn@SUK+5Fkh-_@yey43)Yw2l6?DaUu{SA7blx7RWgei^!*(49B*1~ zy0!0oe4)`YlY8I)G}s5OHaRY=rz+sTWB+2^g(a*jNr3W{UZ|x8e=-MGD$j+1`7<_xe{s-HN_ILc;yGdE$pO)lw z8RbCT{>qoP-`{OpvF6>OwKi(!^=b?^eG~t9<(MUBeqwt`bz}Lte{%A3_fC1LG%LfF zQ~a#(-@c3muMEBZ&o9*2(d%}6{(>^EMKdd+I+lv6oqd@->8-3)hi(VI%3Ho&A2{#c zaMd?l-FM>T{s3=ACN2it86B9-kN{G)N7aU&@ez8|flRnIq+$SJG4{-jFrgL5M9b;{ U-mGjO1nTrc%ItSPh zGnTf=`m-=Fc(5}t@B>W`D9TSxEiR5X)=SPwEH2IsxgRVXF7i(=XOnkKp!iQg*Y2q7 zIsv5x8l6X#x)Pihv?MKFS~fYRpm1~d?B1qrwXg19kgUv8KVNd|!IVtv;Pi?Y@mH2_ zd!8qxIIDf{?&@>4_bu<2zq76X|NFK)L)*u>J!WlvtjEuN4tjZU1yAS0AG`kf^v~Y4 zRc!wGwV(HBA3nc8HbVULw588|&K)q5*cHS+&njTj!TQ4+c*>g=+KR-bO<4AZiGP8t zduWNmfdZY>2%A{FXFE2B9L_2~6~>@`LDf0g;^LHZrd=^dJxh#PuI-54Zcx&GXytb^ zwbUfo0q-1!l>uxxkw0rz*%Whn?s+y_e;ie0fGZZDVWM$&Q3{DjsQMNC* zUv{R6WA~~gp6e1%cp1~9oF0kYnSS(Mp(y9U^V7}W3cWwT>vQ7Aj>w;DC!Oxr%6lYy z>7L&1mg!l6g+>k0J9Lv*IiBd=w|VAs>2-r2^ECp&Gv_fh*5Tj9&hn;uGs3qp?71i$p|UukejrT2Wxly08A3$OexKfvvu?0NM0 zJTcYq@|cT%e{1a%5PP{ZZ^xpK{2?|+rt{3b@-XssKyx*}>5mD`zkZ8;UEi8Mk?XM^ zgZ7W8Da*QzF9|8`(P=)H?|-;_^`2d)WaBazo*ZC3ptZ7&A)vTwPf^91Lm!riCv|AA ze!$rox?iWa_%idWjjXfR+15v0JA29c_%buMNe|h%=1p?5+-qR4Wv{2;t-GA%S)5kiH}3L1elPECyNiRvJJY`9fA%j{zrF5j>ZVC$ zT9dzK{++qg!|ZRkidDqXoAHHqK}Xv+nv4EO&i~i*r|ENOjMsa`X}xci=1pjtWEOOE z>VlA?U%9qiIq%`NdWOp6FH+^@D^AqSVsM_4%Q1bgxk10{F7d6ugzl{hbd7znIPix5 zs(2UuLtkur6pj^g1zYr1KZ!gNnUc}6c7lwRp1@E4iK_~eCQtF~_;gt=qD;JarR|c< z7h`qK2=@9+;Rsa-PCXsCXv6>e_PlO^{ejaY)^fP@3tf^cy18IWx6>iN{Kwm{r<0zeZ~7(K9)l4A`2Cqnr*uBx;TSU>>sI|5YW3=FQdGpEzsu? z*U6%(OQe)nt`mM|u~02=iRGh&rVsf-zf|_Ae+l2wo9pw~{Y=2Jd<}Q$eShTxycwCe z7;qPXzyb&fAQgzH+R%$cgdTMu6Rr)ZfJ9h~z1TyT&nTrc%ItSPh zk*{Y5ykTTu5MpLv;0Kx>P?VpXT3j4&qL-YLSX`VNbUW{|gMjU9i;t}4nZ=p`8W)O+ zXKl&kp3*I--{Ix4Orc3jQEtLxy^GUsL|aNn*|qAwD6Zt-;IwP#cj}RK?mS_4=H0n@ zw#6lBb^m^SV?Mz4?)3@78Tv_*9}Yfvn=31I_|3lm2lK!GU2(nc-reVoNg8${69f7s zKKUh2cdXX=zN6K~N19bc^3=SJALk6-eEKo<{@dcFmVF%(&*qxn(~NaLs`P4SZ!EX! znO7RdXXftPC*$VTa_5+g7Ef6JYMsLYuCP5(So<93MYJ(|>al(X~Z;@;Cc4lR)X<&=BcV(ZhDovAUG3rmA89dCTJ zu=n*2M-59A{nw9^oP=g~hddAO}Vg2L4DS2~8vo4$S$&c)9w_46i@_t>U++KKKyX&Q!m+ogq zdM}7z;&j_oRI;dW!HUbd6U*GH6Q6ST2wMs8A5EHd=HL;@83K{b9su$FFB<>= literal 0 HcmV?d00001 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 zcmWIWW@h1H00Fm3B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zTo-0#EM{V0P-bCZ;0Kx>P?VpXT3j4&s+XLTSX`VN92Rs3?K)N4;zwdHc90~aXYQ{E?yNIP1JVP zk34e@SF-Irlq#I~qF?>fe?em{y)DbWwPx-(vEYi%xpLE(MKvd{^i0pcaUiuPz_+G< zy2PXOYhU=UY%yM(Eb>_ESkx9Xd#N2=7Ln(_x7;yWYxVtfH1|Y9VK%kG-gAC)*Sxpq z(~;SwndA9#N95Uz8A>Z%H`~m)V%R*TOU3!Vq!07v9S0Y@tD2Bn-8Sd$gupu{2JcOS zbwAH4nOn=hJ6GZD%aHpsou0{rH-6vXKi^cxjCG00oz#rtdl?aVPMfXXDK1a?x?aux z=Bv2Q_g)Wgu)TZC*sM19@gJUv)AUS3S4N~uShrr+=??eF{%m?RRL>*$)8vjTUz&o; zy=~O@JbY~>`9kx(RcZg7FH^T)l=jtGt2LJ`GkuG;aQs5qs#eG4rZ1WqTP`pz_Wb*F ze&a7etLc3grt@js7rdRv&o8o#`QbsQs7}@-FJ|YL2|70pOnoD+a_GAB47-|lbD!^d z8a7Su{OZ8c8SWD*{|m~>Wj1y2s@J&5|3PT|HH9yu}5NqluZXKPvT6Qn+nH_Uu`^K zQP!bp=y*}?m)_I=3<2JZOk51OvlTE=BLSpLhN=xcn<4b51DSAbNSO{{G4`y4FrgL5 WM9WwK-mGjO1MFgLnXO_J>^n literal 0 HcmV?d00001 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 zcmWIWW@h1H00H+(B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zkKafCdCbVbz{kwMzz;M%peR2%wYWImOfNYnvA8%l=yu*^2LapJOCpc&$eZoWy)c~X zXr|ZUtu`zln;e{qG?i9xd<;3=#{9t{+Cs!aMp{2k0!qn!22l?DP6Tf-Xh{*c0{5?0XSmo}Fg?~I)wd&3U zY>E2KvsC@z!YhF;M-Pac;xXRF^`!eqdCHe4i+L&?`XL7l^7n2&|FWuZNmJeSt?LgT z(K*g@_|DJ!;hqB8@lrFKr#ikrUGXF_BSQDLeZus`c44`G>l5c?$ofC|{9tcDoX|;= zr>V^07nVGF(pe(8rt@fQL2t>+unirleM>*)%xBy9g?CND)DlkNNh>EFUo}A~R6uyK zNL~10QznZ?0mn;o3hpGV@I4^8gR{F)ez~5$hrX?+74K}G)(_2nx;e#nez{LuIB(vL zPZnW`2@9HU^F+x!YvlQA$mw1pQ?4)ax#qpjyf5!tJ)fLP*Q)jXyvBK3u)#G4b0;gV zltAtar(SMxv0hx8^;vpLuu(_*wW4P_i<`U++%BBgNEPAVpL|R2uglxqjkjLB-L}0g zqT;h?`08xuHT90ho1m0JOE-MF`EDY literal 0 HcmV?d00001 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 zcmWIWW@h1H00GZRB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zb2?W}d&dYgnVErs4`_OjhoPm3sgaRha!z7#acNMl|K$LYx_39OtranEd%&X3v`9L6 zb+zKfGcz!yKrMLF2^$2BNb}Q}C8QykV(Up=b+y#$+Z8r(}dxM|3 zU7lm>qt=&eS865ZG)!4APh#$is0mkJtag|;(f>`)gkN6llN4w7Gz`(7 zHc@Hy*$i&5fJAnd|2NFO^uBh736D&fH nI*nTrc%ItSPh zzK@=rI>XGsP{YQ+APh7;IJGD@$0UUE)iadBygcd@jqz`tV?w_K|dKE3Ua zpUi9rrQ@4i8yrq>Ct2%F(b(qbH)ktnqOR|gt>L@fb{8dm<`VzG`KKku;=_tdVk^3i zPi-n3jE**ziZ){RM){t87GxA?x_bYS6;C%TOn=1iWh#izJRv8ThK{MeSK zNjrBadTSqRQ{@aY@rh1Q*f=lqV(Q*Wnc{i|tyNzg{oZ|;xvnX%ai7$wlAxDMpY=7# zHGZ7-drs<(cZ(kDTBKUbJACEL;Qh{edD7e$;xE1|d3|=rrX`ESn`NF)aHxN@e^H=; zlEI~f756JwzIi*vw#j4hiU%tW1bk?Du&yhx$MAn)<2>en%o2sGC62MYw^KB@bBk9< zX2HBGA4L3u9(?y+rheIMsqGYx;u21!yjEZ9O$V-9wO;nAnKXB@)G|Zm3!%k%Q`WxS zRhs;Emp}KBZ0XeVTY^G%=gvGoW8HG4)(r7^MeY@Nq_#2r*idLdWq8>7W2$c|8dn#$F$;JyUt^as7S@g4q@h_>x>kX|gt39k-?$gv$BR%)W=l+ZQxuVw%S3kJg_UP52 zTP9v^=N>Q7Q$C%eea7r~&h}g9=H315@x#1uwxd;Z+Uu*)*FRX5J6WV#t_%6VHg$Jw zV5YUg3UgMrW-rd1RXe&3Maw5VHrBZ6tb3CsA>@R{yTo9}g>U!Ww7ovrl~--siZH*K zsTaP)s~t7}^OM8dS@6m-uE@hxY3!-j*j%3ckp#UYa&T zOjtqV$Lj@>w$3J6Tddsb9shsGl%G5QV#|(?B<-SaVX{Y z-mbX4=I@dff{$*9JG#Q|>EjvwAEi%5q_e6|3Y~K)*;0P8s88s`OSN+%=cFZfAx)8^W?GDWdr{x?%cQX__x|M z*RG$;w6cpl7$sV+acZ~B(uc{9YhDzeco@KXThxL*czqLlqvrqb%e5-1w@#gB%5yP50!Sqisy6g8386nTrc%ItRoN zjLsUVj0_BhObiS>K+}UW5~~t(^^$WEi;HsuPWv5l5V3V`bc%i&dp{~dB0;gRH!=B< z+afj9oETn%#z}TOTipI=l`cHi`tGmB<6Otii8E84otgW2#?JZi`R^I}0w)S4d(2X< zJ1;9)*!E_|{ZDOY?*S=5xE~sOy6- zN0uC}-llNW#3)50Ec@-!g)jYe%5V52%SKAhv`>7N^NQQunXi)T6VoZ(vrDI4-=Q?u zKkMM!G%nY+qI4CW@H;=-d~Y5rdBXbbz>H5b182I2i@dloW#hqsh=+?3xo`7)@{QOO zdur9c`t-H4o4o#)?r`PVTeY`qQNu%rX0BdG!@UWY#M8rWFqhuDvN)jGXroGtvyw~f z;?QN6<=*yubNS1<(w!;ADceZPtL0?5W3HlD=vVbMPr1))JS~?yS6}e=aro-Vwj4_{ zR(VX0b2N0?9T@YXbjODvkN;h@MiFV+CG07k^A~qHTC{yK5AbGW;$py^Du8i<1d!4Q vsy6ggg3zN5WWu!}r5S|9*i!<+gjOIEIb8&Jv$BC?nSpRKkQM=^9R>yf3I^sl literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/StackTrace2.jar b/libjava/testsuite/libjava.lang/StackTrace2.jar new file mode 100644 index 0000000000000000000000000000000000000000..fc289f1da796cb70af5c137226446144b751c7e7 GIT binary patch literal 1775 zcmWIWW@h1H0D+)NB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z1^Z=tuQM|+yk%ox5CobYT#}fa9a5B-oNA<(oRe5wTpM~nILck*pIBpc<7%bOTfY_` zon_LX(QE3f{4+4wK+(~+d8=vW<+wyoYe7(%>bOo+bd-v&r&tAQ=UO|T?(@J9|zCIgd zssGx_ZrK#SBL$IBth*)l34KeJ5>zdoVyFCGtXRsJ?a_?Xg=eCCqbeIaJ*;jq=NoTx6g0$zAXN94~M8 zzyn+B+V@UbYxdf5<%5t*nLO^^o{cu=)NeN^F8F7&<%d(jl^>=jBUfC#A@^mv$&22_ z*CR^~w=?vZm8^W5lp+6D|HAy4H(d)%_w`Sl&bOm~$wIT*7D0#8-kaJOSCp%sh>hK= zpId&JkNZMgat^=n+#7W}Eck>ioS5Xh%?_s7brrql_t|&sOW2Dya_5fTd!w|iduQyK zG9}ZP= ziZ6clDD2M!x%W$t_g~n)>&5+TFZk;Zub8D)e_Z1E+X*Ficr`p4qhvmtdrsv0V{0R_ zM)`oP-HTVx)f+0g_8)j0|6oT$_n-Z3-aC3-a{@YqmSz;x9lAQdka@pCYy8av=QXYt zFZrlGG2in4QN2<@-oE|~k3~WQ(i)Fn_|J@53b0I#@RDIuf@5dY_^E%RIRPx>JX2OyF0HIuz12vLtL2u@z7uguU$>Oo z&s(XXK4o2!?DOj^+wWE?h#V?e#1b=wStL+MA%}%ygXage%#4(8E*aa{|FeG$fAUJ< z+N->eHeqQh$2;c+a|aw3J9z$bVqTK1s>!XnrvLo6`3oE_NmMEoR`1e}6)xD9rN$EG zKI4Q=@XYqueK~781GbdPd_JiccK%_9>4vWorMhe`-+Ak%PZL<*!y&p&^t6QoW4p%V zj?HU+OuwG=euMs8-N4#Ek2z-BKIGNy+xB)J+pKL)f66zo|CbK%W@O@Gz+JinLlp@i zmG!9F&`W!S9(5oSt_`W|M_7!#L`Rs=3S?rG@95gmlLA6}Hw%h(nTrc%ItSPh zm$&u!yaAeO$;iL}azs*MkzR66VsWvnpRYHwp+N2Bx9`d>?^rkA{NUnm2_NJ3h_E<* z3HUg#cj1yX(jAff|FmB^et5wD!M$^`j7j56^ZaLLXTP6+UY}vQg_faG%Gyt=$6C@B z$6ehM{I{y^eqImXo$BIjrn@dnBz(noZQjcp?lWhuz0fi5?)xHx^P(TihuoHQ+UOD0$n#r>SF0&v=fUja+~ofiq9GfqUjCZ?fL(UZ{toqrQ?{qo zeB=lz3Wy`N-SiT4r;?-zm?H(`MV><$S*4OuGDy z-_u1p*I3G_tUer%8YCybsg!O42FC^_1_p6pkOY?`mSiS7=jRod6qP2Ir+Z#NY<+D<+vD69ce_NRDT1+1nPGQNq|9=H2jN+Rr3Qoi|kvw9pBpW!skVDozAuc|N2LjL%gS#@>p z?~%NiEhkrWX+mK`<`28}JqKi-N!pm^GF{z~5dNwofT#Y=eY?2r8~biu{j{*()#lTN zFY~wlI=L}4wlQ^0f$HQ9rw>J}@qMbTt^0cFn=sooLSpZy{hji{&wJx?p+5{Q%bEBU z=IkzQOiwP~^mbi5$DSi>-yObHX=Mp|C9bte{Jbpgs^%%C*%huQB8~T{=(J20dbZE) z=wY+Oe{zqR@;5ktsN#E7P|o$R_N*dH>Et86Un6(#6IV~$_0}cgvHh}#VY7_oq}==c zSML#iA3WRn$-ja_UoFzy6XYzfPnCZ4i-Wnz+lSxq^6@t}W$PI2#4P%LzMm+$P`g${ zKk%2`k;lb0FO%OsXE@K!!G2>`t${<=<4w})%Dd+*|L{#dz?+eYivf2A1jaQIK+2A& z+R!s3LXSF-3D<^{JrNdT&vXbAT7gV>7DU&Eo-h&GW&o2bj$|6(&B_K+$O434fpk4H Ghz9^oKA&^| literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/StringBuffer_1.jar b/libjava/testsuite/libjava.lang/StringBuffer_1.jar new file mode 100644 index 0000000000000000000000000000000000000000..fd406afbccfd36da107f2d497b7dd0890b586ebc GIT binary patch literal 1351 zcmWIWW@h1H0DnTrc%ItSPh zA;BKy`osXx!0~hQC*LT1b!nNQX6Xt4=G(VeT|S=oesU@<`kR&S${iQ8RVVBSb$S%U!hXf8 zl+{CK$HA$_;zv4}&GSN!?77S0vB~bi;n_DUjqjf^&p&4WzUDh~14o|b3x$&9YpYJ) ziOI;z>G<`wgNfg9|K!`Je5VvYdv+x1U!O(<%l+0#k(=~{teTb0Ip?Kp)!21`b3dDY zP0PHelQhF-Pu;U3{`}L^O|e=#CwW>()s+8?w@{Bvda|r3Z=ZF=!;pne>Lq7fb{DX; z9pM-F)tslH^=s#%6IZsB*e-jRD)T(ZJI(pZ&Sx7FPN}|_aME*DK;fj#$DXTP(d1p9 zFkxZQ)>#JKErHv=yq(y_DKgn1J;gVjllfrCrnUR!*DJ1gaA)7KAt>r#jrzsaS_*t{icO1%!7q|GP^ zoYJcLW>Ii%_cTF6-pw7tA*)~A5&YHEuKY&m{An*HqgPFB*AGr!a^>i>73LNfIj1kE zud+P9_=vvE;-tn0)1yqxq~`~JWHYY}Ix3oX-fgSa#PwMoi6`CGO)X}1lS}9N|N7~) zO14drqN`c*OVX;e7Cn-BeskL9f7{wj)*0XRO;kO-)2%sr-}<84GXf598xHh{vsugCDLB z*6Cbo{zc}MaF|4o|NPu92l}Tkuv{lw|6zN(Y}Eb7Cv+D-x2&3ec&=MKx4UuTV;64b znH#crZqDBYRQ#~ynPwdCb^*TMU!1rn^1Qw%x~+Gc!SO1k&8y$~S#D3iVMn{fp>&Jh^M!2jk977u zwBM9p$Y-zAF<;`Nc*{ra_y68Y9G^eqNc^0KtVw5-{OaZ`XV5d8eA=W%rL|z{O`X7= z@B+ElXEc0QPZGVC81_Dp@qI8WYns{%JF}OJr_P*P;vcx!J;Uhm?k}eAE*jrSUnW@{ zx~ZNyz?+eYivf4J11wXJ08%N0stvsyLg-NkGU3{gN+pEF*vlG(39UdTwvs2nn-y3t QF)%O#;cg&Z#scC209k?`LI3~& literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/StringBuffer_overflow.jar b/libjava/testsuite/libjava.lang/StringBuffer_overflow.jar new file mode 100644 index 0000000000000000000000000000000000000000..be8b655ea6af1a6090551dff58f2e7975aef2bf2 GIT binary patch literal 1610 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 VVmiQ^l?|kf83^|P>BX!d9spNhx7z>! literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;s>B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zb1YW%e`jJ~h+t)45CEDUT$z{bo|B)Hn4_1RlUQ7w8x-v?>?mP-`}DhQIwiM*xLS+C zqq{;*g*pldd~MX&$h}MP;+CZcTjO}dgyVcV_PyB5c~Skok55OFn{cwpMDzdc|9Bpo zZ%&@3X7X~L@pEhA&u3@;{QCWMIm6+IkOz|;) zUtx8dBUX3@m{6*yUX5`sQSq>0Te>Y?J*nwEb5~OnMMI?{r%G-yID-Os9-%x`GdLXt+F8 zoa}YQPo*%*TADTkkOM9DmEiUiv;`NKZUv63FY_+mQ?$^AfTO88A2hUnN#k=cL%#xIA zp7nmO)V7^E8~%5)V02=iwtMiRJ1JE`Q;Ewa zcr!9_G2qUtz?^~vka8}nHuSuU(4!7y!nGmgWQ4`o^C!ZDRv;5Sw+48#vVl}E1L1Zc Jy^0yc0{|5swrv0a literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+83B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zFWvpt&SPR=;9y~3-~*Z-T$z^~0yIf4IVZ8WICoOCzi^AyA z)50e4EvznkR8&NHRc9O%pZ<-Z`)%IlH&T_)n@J?pZY^$%ALN*h=;fPcfV)WSr z9k;)@dia9mc{8T!mx3;#M_BwXZ(Dr3@57hX5(0Anr=<#9;Jq`&uww%!-#aOx+Vx+4!vm?MO4~(MUY4(Y?WSof;KC%_ zWaX;*INaW{(Ni>dhqGtZ(nDvJoK5!4$l$Qko-Zi*J><@D6W;3^UrpzE`|+4aS8Yd6 zkBReb(f5Id$_Jiw6-@P!G`Y90TdF(h*S6@wijOzjnbuphxi02@rgL5I!}GQog)eG$ zs<}w9W!4GR`hL+&dbOqf&@x`d%HA~+nQpr>zX-gtla*LEnWw@}{^Yd!g|Ab7d-iAO zXrB$cXgn?cS6#z~|8Lb>j{C3T=$T)0_v^+L%ihlYcV~G<=o^mIlEv3Af4x=9!sIlO z!+GH=tLUXFic_2%cVRUh`-egAKFK;dCl)TfHi$|7&WL}lGQo|vvO^bZ&Xs(Ri|^gO?rv)ivf3r0w!l9fRw#ZwV`J)gdTMu6Rr&@yCE#bo{119v;vu^St`Jrl?^1% N41`;Ov_CV52LP~^d`nTrc%ItSPh z2Yokk`7$yv`~+fdpy|PtdC3`i$vKI|#kql}{SG;Z*lur~HtmxD%ls89xC;~w^$hcT zVgwCWDjKfi>a*~OWgosi{znS#qxM7q6|Z9kDIn54G`~c9daLygZ?Cht$tp z!yO-Q)jBR%_-eV#lF<7chdk_hX1=U8QV`KD?>(xUXEMQYdtB~Kg@{v6WK|L)G!o9b ze4MXRZqw89K0#JmM_p#)u0!v2B(JTj3^?+*<@t5t8%h~x)umP6%)0S#rFR0~w*a*n z=T}`x&ul$ql*)3O*S)!K$COv4-*Tdlb9ETKzPhmQoZ$NAwI?GxZ8!GI`%bKQ+K`#k z8#!^tv^mbFi(jyuW6E+)K3(6$qLVV=Z}a@3*n^+t7u?niQ#-LY(R91z!Ea4-=5-cX z_$eNjOq^fL%Wfaw&B(;XfIISmL5~EGk^-tW^u&PBqYh-kwIL-9gvHn+9AQE$kckxi V0p6@^AW3E*+ytb515*eC0|4k=+kpT8 literal 0 HcmV?d00001 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 zcmZuy2{@bC8jjthbYiEmCR$s>HYk@`Lx>b%=#(PFc56w+dd;+*JEV#RL6x?M?Xi_o zI!Mt-EVpUZE>$gBQPAp+_5}!{^y+k{LeY>_n+tc-t)drC>~xQV87jngBX0B z{55>Td7}}o7MgbFZM2+@Y-`dC#lkqt`(6C-HnhcgI~#@4QpTC0U=f@>+y`oR=Qg|7mv98SnWfn$b+nz$lVI3?CrYRxpO!Pd$H8k}dy~;(AM38R_nR@Cp>+~(ply?nlBA*b{L+Mt6**bV84|6`T8?kq3M@U+!o@*iIvMyo_gp%^Wp=|&WENlf{$pR(31{y-ElplPw5!6 zbp)rX&ya!GH+#-ZB4;mHW!2=#gL$F`MQjq3UKzmR^jqgqRE@2&X+emEFR5hr)w8rN zxlw~^=i;&VEXHl3>~DK=sBZqp?#WVM{h*kdgoUkqeARXDTFNG~93jWE zP`Zh^=!4`g_l%Ad0V!SLFwU?s_riZh ztJ*Cbjr@XB^j%sBNxViU)!_0y!=(5%lI)QB z$oJLvMS}LCT$Wo%^Q^*1>S?3(_&d=bmGnVFMDTh8*n=z-EE|V6tiXb0B$PiafF6>n zam5BDRRPU)^ui5HflRH|w)Zk)RJasyIaA>r#+sCSy!r@Xqzv2NtGO$uagI6VY|! z#Q7C)V&apwZ`-f&@+|3m7SYhVD>oiQhrW=_RT+vD{uhhBsMZ(?5qK`L9S5m5&yt)Q z?YcRwyF*l_xC^!>n{?W<7|@WZZ~VVcF9XK68cpv3juLT{_Z1q-5s2G=3973@%=bLTGrXS zf~`&3R6XjFiQc0LvjT4b{0gqnx{t1yoicRY2JhW@ch&)6vY3!*oh)MJjkuEKCHCwp z)v<5!12ni;h-txRjMYo>{oHU**k3ex%C#PMrsz)Ja=|b9H92RTO%@+-^BY`<(86Gg z`I%28Y4GI4apKKT?l&yFv%AEpgfa!yxDB(sflo#(_xrAr6-enm+*3`f_}~3kAqtRT zmqzJTOC`KeKL5Y7S+PKpF#F<<3HrE#h_)WHgY&|U>L`7$0h6lhvtadaX~wdKF+%X b^avjZeTaolC_euEResLn$2k#HVE^k6DY##e literal 0 HcmV?d00001 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 zcmWIWW@h1H0DnTrc%ItSPh zE*$nfpBWh#w3rzf_<^Q}08I%f%CD%@OU_9wE-np<^%r&&vAsMkZ+A|1X6r2{N0!pt zs$ui4|8O!fi#)P~x9x+;UB0tUGgWs7x5Pg&)_>q`V)uJ-Px*2$-Uoi)&fS?=eg3b- z_vh>N?=$8cGMtcf;=9Y5d#(>}?rh|7emPxB7f9Y?zW$Ae)Nm%rZ^bY@v%LTW&+4Sk^ zEI1V)!?m2SDTfG-?TkGA-=x3W#1!H^YcPHY^#-*c9cjesXeil zIINZ7Frh}%>SDqK6OZf*=Q8GJ#wwOOvU9l^t=8XsB3bO3{AI(Pssgj)18?kJv{P%k zUf{VJ=T!Yzz0$e<6(5+FzU|#P<+J2z%{~7+<~)yibg`9f^TU9T!at@>3w;u>JTPj> z%m}5meyiJ3qxilSHy73U$!XeLjl7+4DNo3$@t@eI{fwyT!@K(#Up+8=bTKh7C?ls2 z72itFyt4e{#1de7^GM7~$w@7Oq?z2n(|$~j0&5;_eb=?%QFLIS&_S2ZIK#LeH=zKb z4sn0(o?W}nOt{JTbp4fPHMu_w_NQ)i3pN$Zc=>YPs&#cWwe>Yj77n)@8Wba+&ePNW zdBu17F4l_^OQWrW=GEjy`UQ2~CP|B`o_h%(G)c-_APS`7mG_dsT?h(f@~jK3b8{ z`P%yCiTM7e&5IS;UVmA6F1oIFUZZ5&5r*Ks!JjVbA97*(%=WA;YJG|A+1Y_Q2@`is z%sp%HU;Dv{m`F>f@GXzZjPnyESF?rvE8?$r-`J+oeDRa>x&tE@F~q;;Y--Nd`IKi zd;ROD9x^*4AK=Z%#KnNSm;pv25~KI|x1MKqg!pQXzz}7<c`EFaf8sfOr54{1*lQ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;^}B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z$|oD29b;l(sAXYb5CWPWk^$6|67QIkS(d7ooRe5woEv;QNZ3)pcCyaRlt{-zz77fs z8BPrxD>z&P1O<31I9WxHY%)73A#T2Vl%pA3j^RZMiDXSsj(Q)bh%669p4E zuJ6g$UbZro_nd&ot7Y%b82wnh(U&dr;HhHPx+|+E2&QECyi|){FS7a0y$=FGftP*T zw!PRLqMLYYW9eoCFt1`q#UR zn-+$S$ZR^fW6s>O=8x1##KAIt64NTr#ohOTzq?D*$J^=LzR-%+Saq) zUOD)?r+amvDCZsVaJJ{Fjgg`f_QyhfIDAfQk@@@h-=4&d5A9lVoa?t_zf2S8mt+&m zy}fC~XEi)Kll{M2za)^47>Xsdtsue28zFTRcvIU>w9|7+xgGb<~)D%;wa z%55%A&t2_wwA3Ye<>|i#>(f{cHYrrpbsms5RhqEzh(X1=w`~WxXFXK)w4QbN{4W2b z+oHi88x|#9t$io%ySz>_b9K`5ACvUl*1i1G(%*ID#o~=0FZ*lg=HTi9ZjyC|ApV33!(E8N@5{ma`^Wz*8+4QB)otxPsaf8?GK`@1draOjti zi~ed+)>{?+$tr(5^Xq+uXtJ_8J4er)KZ{PYhYLJBskMx6L0)I=q;GLYazxMbb(S*) zdkB>aZC)4a%w`>7v$mSkcMID~=|yv!^sX$Po|p8cizU>)(Ln9wxrL(K8OkN<_X4i) zaekbqWce#G@bs?@HEI`ctaMqpP%BQx;g*$+sQWS(xm;#ZHl>Mz>NgB3<1gK8zfvFI z&B(;XfIIU6lRgqa%8IDk&@&@Kk2;VE*M^ie5f)?5a0nAxflSQo7vRmx22#Teggb$B IH8Y3@0NFK`DgXcg literal 0 HcmV?d00001 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 zcmWIWW@h1H0D=5UB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zv-sFnF9Vu-2#7&W^T|)n)=SPwEH1YGnt$Dnjg8HjEv}4B&5ccL{+}l~Wo%+@Y>jJ< zY;yTK=g6Lt+W$+|TzMko#%4DA%$_qs)^2QRyk`v-L_PmAB}9)cjm=MvEsV{~jje9} znLQ!*aHRee+$v7mv!e-^}a%r!@Z{ONYv=6Vmow6=|zYO!ADX-_No9e$V*(xuZ|}=QBuE ztWs1o*nF9H>D`|{v_4odYZusMdI;KXu)ke;{@eH0`M23Gb+QD>@v|CDQ!-^;woT^z z*SjxfI$T<_PyJ!#g^5zjUTSvn$yzd3`WR+tr==Y{!*=NehltMg>9-HZMYma(-JWbU z>4f2y^xgXo@P2MKopzzi>H7WrRZ73Q_50qq=RM#z(cua?w&r@B%He_={VC78mTXS) z`*g`~l`Q8;uW6SQ{M(F z@glu<*CsUlT6TWH`*{a`^c_m{ng2AtpWpPB$;3aQ0W-rcEW7R>AamJRdBPOSGsY!~ z>yA|(cjOaXn(~#WX{y(?V}{fE0&diPj;`GLIse3!bM>14CtOkTlF{06YNPDb6#=|Q zgFN|O{S-Ak{H5}d>zWN~0{9=UKgG6LJ91?cTetcp$}Khvo6|3<8EKlYpnOi4%pDW9ThL(i!QJ?cOvTpLopMOchIHzG`E1u_vS7+oKF dx<}{>X2g{X0=!w-K0n9TD3;@k9o{Rth literal 0 HcmV?d00001 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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 literal 0 HcmV?d00001 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 zcmWIWW@h1H0DnTrc%ItSPh z)ARoR`oqY;z|73RzymbhD?c+YwMZ{HC$YFVH|TcWWd{M<*-J_v&04aA^XaW!Pt&Zo zWXsP*_M&#=ViWcS;ptp5)hueT9*bhP=vX!FsvBT`yKbi~qkkgbl7U-*N-;b(oR_CZD)Cu zc+g?u!cE>+=BYfEn?83iV?~#*ecmc+D0zd$@ZrN*jckVx)lU$+w&7fY&lb&|e^RnX zJ2E^LYbP};itpEYv@4EZv>;}-K+LI>ML!N4@NHYF`QhS~t$%l&SNA$H<#x{T&NrWB z7qVN=FWtZV=DKW^oG6!h=Xhja)LxjYypv_}JIhNpmx{m4x|bdi_gGk~eaXciFZG1Q zOinR{acuOurghWk4rAoj^3U92auxD{D<7T_JU4OMne2$l-+WK`cSP*1V)w)MsG zMPHpx`%dBy_RGF;p!fdQu;4nr)UuU*?VB?$%qwZ}-(MwMe)&XnCja(&M$}ZY{q&8< z9l%u5$Hc(E3rr=!IjN}y@MIDg>o4pmVtaZ0&Dih-x}q#cxj1%*t~}!2qwh9(l3TCp z(~CK`J!LPQGdrz!F#d_LTHO)$`iA|-(;v@lT{6jH^3L*SZ+1Sfd$Zo&zK-d}@qI3i z4&T(g&W0!j3Po6To?G-y#pv<3*#|qNmI;YA-jb=EE-B2b=CvSW)5?Yy93k^E7hitP zv~+>+x0i88l%Fo_m~9uMGeN4QRy^dp;zJIdvaNyZH@|dHbq`PSOpDQZJk8~Cl<406 z&k!UZ-xB6 zWpy_=?EoJ2%8G^on-Y|2d<@G$=<#{saEp){^Zxff0DafT-MZk)H^OZd_YSszH|LTr`--)PQ@Eg8uXN-f$6;KfwOc@JeJB z)4Rm-vS+vNpV>bD{(E_bZ-Em86FSV^%jA8_(?32<*EuPG{n_G3xmjiVYpzOuSa(`r zUBtGha)vCXdygv2?X8Y+6qqRC#9^$GHSO%{$${S)41WP^cy!`a}G=qhDHD~8dSj_N?xkGe8 z$DYf2mv#Ns7aMPRo%nJplhQ@Gd8+(^jv^cFGw09qRI+y6W9zy|w=&}6gf*h~Cvb+v zPx#7xv+SaCAJN|hR~QIA>Odx38&dUwuo!!#fH0vI$V9Fp&~>606bPNGfkg*O gv4O4?Jpm%L_OW0|jsf1RY#=49K&T5$v+`gb0E8v&&j0`b literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Monitor.jar b/libjava/testsuite/libjava.lang/Thread_Monitor.jar new file mode 100644 index 0000000000000000000000000000000000000000..2345c8b63cc158590ddcfcc2906695acaeb60a4c GIT binary patch literal 1750 zcmWIWW@h1H0D;mnTrc%ItSPh ztRaikUjt3mWn^IB1=7y>rFkW(MS96OiN(dXe!kv^9Yp3_KeD7ZJNoU;AC2s14_?|` zp~=xC&)&U2{O%U-yFr^bsQlB?Z&IrG!2VsbPjAxa zREqWPl?lN{Hlwe=U~uY9*Ih`IRPnVHq+ zc7Fc(_ZQm(hDu3BCesua&dzyt>%)KTy1F)IOZ6d%6CA=p|KBXlj;z|P&!Kp@Y%Qa9 z_8wlRC2?Ol9?A$FI=(EG&yOSPVZW{!=fPEX1p_@gR(B{mPT)G4#xiGtQ`@7tMp{Z8 zLXS!>3q5}q8*R}Wx!}o;FcIw&CnHo(6vvBZN2qJW8m>6UmUMm=OI3x6%le$_hDTPu ze0jMy+Wp1c*T%EcH_zSlUGs_Mq}hT_4HMHFwpTE@^>;d^#yq&Kc%M1u@hxsK)6AwN zVY3u$le#t>nc*}cFp=jcTepsyj!3+bGYzRpI26-8+%z-iDU~ zUYS-dJrAF+HmQ~0=ylA@B7F7ej%&<@qw_v%w# z?rM=N-<(@ZI9-*Ov}G*f?%Ba%ow7Uo3;z%6Uu)-Q`*^B+-2Bm9@_oRpX-j6mnY+3C z-QzPmH`o9F`-?Y0RFyTD=in{%?$>L-vmY|aNz^PbZn63$ZhQag*|LABix1B>Yc4;% z;BPM5^l3IJ1@Ak=_z$q|=i=YPvpMzf6Vc_@AB6elmsqxbDLI@nqw?&qz+#%HY&-Vv)H-$Xc5|iPSUx2G-AI9YoAiD|!+gcVBwB zHF?$~j?_~#qP6n8=gm`&-k$R^GN{nK>W*yUjJi8VYgxamS%vJEy}4)kBSyJPJ6oNN zT+UldDE;r^OS)XRZZh6o2yY9_ltHV=%yg4k~_Jfr%`bL$xVV93YT5yC| zZ-8TC;>%5cM5pbJpS>qvx=Dg%)uD~EYR*p(?(vE1o#Uf6*Ms{+dY8c2d25{F3!^00 z&bz{}FPJH$XHEH&m^S�mm2CuV|Ql?Vo`0SH{@6icVj@Fg$GL4v7H@S@eVRin;v+4*mI#r~kOI&njdI>)qlWR z_Oawlp7iFF;17zuma~p26`8!XxhcBlqJGc;t9gmZQ#Q8yh6Eh4&ROU?lj;1*Q_nm) z9@PhUGcs{8;4YSd*&hiY71F5M(2Hq=9(5oSt_`WsMp%r!C`Opj3S^=b%;;Lt%PWM| n*}xJET6&>tLeEnOO*+6_hAoE$c(byBRIvh~HqhXytRNl$#{`&% literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Sleep.jar b/libjava/testsuite/libjava.lang/Thread_Sleep.jar new file mode 100644 index 0000000000000000000000000000000000000000..2320add2920ee6326619a06a19b224a1efcfde70 GIT binary patch literal 858 zcmWIWW@h1H0D;O%B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh ziJKohxW>r9u$PH}K?rDiNCr?-N_=omYHERAa!z7#ac-b@zEGgZKR(v98Gg|V9JbyP ztKkbdn6;?W^j3z+#+CgnP2A#X4as{;<(?QNm%R5cczLfhHskRj`3L<*^CV{_Oulz? z=l#mM=O3THUw@xr+lEvH=MB~GO?EFfkL|C_QSjD~+aZ6a?>XD=x#G>ta&9euY(-bR zuuD9b`Hl0Y`@;_1GYb=x+iemv{aOFmd}Ciz{q8_A=f_x4fvj_{_eSo_TN1iq|J^sy z5iS=GT;kmHZn@`?eZ4}bS}qw}o7KExc}?9i8-L%RPj{PA!g4|ag>8G5Zhtk!p>^)` zAX_26vcI{)=^W2gB)v3r*F4(OSlse7xG8r{;@pHD;mPW;;d3v~I+yq>FKS1FH=EwP z7j?Vbq^B3QPVnwbC-GX*KJer*@Bi|f<}O*p7#Vb{*lj|L*Am5Bv;L^m zulp+eY$1cDs?mI@r>kbP*UJ2oj8tiUFO!(~+ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Sleep_2.jar b/libjava/testsuite/libjava.lang/Thread_Sleep_2.jar new file mode 100644 index 0000000000000000000000000000000000000000..a657ed91a77bf6e763426dd8426a1a50c14bad77 GIT binary patch literal 966 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 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.jar b/libjava/testsuite/libjava.lang/Thread_Wait_Interrupt.jar new file mode 100644 index 0000000000000000000000000000000000000000..dcafc43c660fb6aad9225cd8154e74c71a6e2617 GIT binary patch literal 1968 zcmWIWW@h1H0D;;{B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zO@AjRK4D^DILpGoAPqD=H`E!ZJfTZ_}T4$|9-!ZNTw zoePVCtJk&$&Dtn9EBf}6*JjQq7v#P8X5hT>ynOluwKFQ^3nlzS`KB0z94To&pSJDV zj;%}9F12vnW^y-S#YfxTxfgVAP0P!1`BNzQ)J5yuvuWI^D@1I>Y^TjYm|v(xojE~qY^yzrIKny$Pr0v5VKnx8H_-hJngUE8hC+>a$~r#_k1 zRCj6m_Jg;dmM#=$KJ-XV{bbh)i6a8eFYEu>oIDUF(qk}XzE{vnu45-0y=F{Pm>E#W zKRIR6G{55JGFJW7Z=F^Jgt`RW3IE6t$ad81b2rb`ecjO~Hnyt^?b^HOgQV!@MFpzm zu2%k9Gt?!I`?IFYb25vczZv#IHSuG=FWA`&upXU6hIOHLLlTT(z&q z|5{bT!DrI^&h~nztI6W>Mz@*sq%@7X`nEZ1{5DbalkzS)X=V|~Wy+sg=OOU+&rgn{ zoKDC40;X|zw6B?A-H*WS7L7+QbJ+d$cT_KP8JN<>A`Nb#EP)ePmCK;<)mO zb^9HY_X{do?zQ|rr}%E0yuu&GuIdVYzV8`gk0X8NHu(svR5Z+JI5W5P%|aa=!F7J8 zk`m`%X%jdmAZpWcF(&6|^_!%X3WcnuCS?wabEM~HEZ8rjf7e6%mq&$tD*FXzp1)sY z7yq3s;U=OSp|CA|N~PXn3DJMo@l7-(i&otJW;IcTj!0t3zD<`I{ zohfDvjbgHlEK{#9TfFeq+-rgDRZq9RzVJXiW0tY*&H%l2-sv|Z^gWJQr)oF&m1MuL z3VLv9wQjgr>5+@hQ)0_b#`vDv(k^eMlYBBY^XL}&y(;To3D!Gq^vO=v=qP@1yPjVfEUS1xXHeYXF#YMaQ*6tfe1*h*p!EO5{WFO$jKc{(ld-0aq-olmdYMYF#T z|E+wYFZN==PY=P+mnAVrO|zCyTI_j7ZS(%a`?7aF>x_oE# zj&E1wW(95C&9Qo^sp*Dp53Oz8FZlF-nq24W-`42=!&5S$LOE)O+eMcnk}Z51`-K)x zF#5_j@#;?fd_nH{YZtt?4HAB}LeyC_=82wO{tu;nVKMc8*=k*CkDSP=DB(|ban+XK z_YW)B-t@cYuA9cw*QN930;O literal 0 HcmV?d00001 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 zcmWIWW@h1H0DnTrc%ItSPh zlWyL!uVQ3i2w`Gi;02lu`X8?e>*Br511XfBl#3}rF6AlQ+1amOv|2AD=Ec2!A^#*-Z8Zbq@@Ho(i=XeS-?NA5#(^#u zCkMHCzwTZA*ya+H@aD{}En0m~%e2_n8eipO`Qm$fYqKun+K@aBmF;_lQymUZ=wy7s zw9@u==8E@A(Kn%TGaNTC zoUU)xj zcUg%+HFtdff`|vDrY`f3bx1FrYIF7i_pipQ>OA+16}Z>Rsqg%o;b{9JWe&6a=Xd;m zLgq~u<<_;a)GK^H;~rg|eeY0?ox)tn`XfhdwLQyT&gkAN$e(uPjn&$dIbDIXcFJt! zKC#H-NYIk*r~U!nj7(e%xYG(SrjP(q%0bnJo^}v=)PYR6Hl&n& V0B=?{kTf$8ZUNF-z$C@M0033u_h0}3 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;y@B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z5)GwSE14J=vRD`xc!8#eWEAC>#~bM-=Oh*vw+6@h3pL<~P4ScGrmdHh4VZ|8RGIvd!gbSD0QMes^bP@w0o? z@AiIve0}?S2DOhN&XXIq{k-=5-u`))1Oz+YM!sLule}~H%;!gKcgk{f$ktglUbDQt zwYjn}%{W$|L#NU@$ldrBZ$<}K$&=jhb*)PmeKB9VNZIpCS2fe!G^_aUQJl*j=zRQp zK>S6{0duDNW#yc1Uen%kmCRg!Zt=^ewsV(L4j(8pVqNy?rdt#?&!0dTH*2VLx3eG@cTLWse!tOl@*j#GT{58N?iUhI7kw-TL^j{(p-MuDjKLW{bKYbu>Ba=@(tD zFV|;gFMPbFdd;LS)BU~ID3(WEI~FN)!F@PVEnQbI<0j@C^OOXFhzpp{T}Z==wzB^6?%2Mf=ai zMgMrdm6?roa_?i$)VIflmThbbeRp-&(OT1|l3wgVYpyEXbgqdxoYJ4fkZEK*ZRlACp+_Caglj{}NC=Cu dXAgu4tw1J9W(n|SWdlhw1K}1Rt;r1H0RU%6d(Hp= literal 0 HcmV?d00001 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 zcmWIWW@h1H0D){*RWmRHN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItN24 z&=FUT&NQ`TVqj=xW?uu* zwmB@V$i2$Wqo%TS!j?u2{;FGYrw_#y+^nknRQ`jz<|C`T*CI~)1M;bJayKryS|RuB z%+IuEvn`E3f4=^mn;~1ni^ITUtMm2B|5>q49g1~F?tk2K@@-h%@;VhMIp-%E6Q%D3 zw=G!q-mqn!rSC$8jul-7N<14kC3bt=Ud6rr*z08q;@#3_hnJKE>|3d@+{J%usFmCZrtGk+yqvR~#K9C7HIm(e4xJOy3FqZ5AhFYl5(^Gzs+`~8K?upO?P zY9@c*`)kfPtjqbC`S0tSAvy^YXKCEqwzKloge#{G>*~GKUwp!0@&*%+4@DjuC`-+mO01qhq{Z@T2{}_IO7uIU59TL zpGaRKzO)r!21>eDP0QCr`h8!iqI4+(!c*{VG|} z{E{!PuI(4^cHy0TVdrX6?}m4H9n(0L(OK2GDOOW(mB1<`$7`BLCM-L9`Q=u(d91gV zC@tjqeqwpJPg@t~g|$DfeD93+8AS}k7yb&g}0+}d@J;0ll S4J6GBgj<00OJJ^GU;qG)T2rnTrc%ItSPh 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 I3AFb1AO08a+5i9m literal 0 HcmV?d00001 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 zcmZ{l2|QGL8^>pJawQ|i*mAASXpD7UWX&?B%*5CdDjLgZjD|a-QId?JMaY&*h%R0G zGA8mOGQ<_#vE?RQTWPbsap_X;J8iG{yzl>f&iOy*od54R=X1W#d45hLC`=6WX&en# zGx{8SJ^Ub?9qin!we1}Vx=x#x-P1lv!3uAG+7aI`bFg-_C)l~V={OJ^C=41kfEA|g z9>8SLLKvnh`Z{`Iw#)!ZSb)E_%^6b_JslGR?La?2F|lviML)lUUVNY8aWDw94FUq~ z5N4+^LKp@b`Z|8W6c+2)^&ZDoD@5$?R{1=)J*&EyA}rAm81WsEbT}YLcz9O?C@RL; zABn^mqokx|Eu-N9jjjp_Ixpr&<{z8jZu!hBgNFACk|_cU)ppu1<+gsEySI5=VxoM3 zCw`qBuKR*`m*1iXCF}$5FHEuGuBHZks7{0GzWv9%9Is;6Pf&3ZG7NFh-;lQIwu2wPrFlT6MwX3 z$x~hdfv7sUtYNxmFxq}uZPp8~+0IUSQ8hAUjBSWD>C!FGFB3Fo59~2x7t@p2r5>aP zc<~Vv#OV62H;iSnU#@!|;T^KJKTctSI5>JZ?e5yl`Ouuk68qOmOxqNfS5~pv;DpzA zLpGyedUzLdg(%JmQNTA)Xq@>1a zz9*NQ*QzYuIUzl;M~9O$gS1rshRB?~F+GchjOBH*MM~2jkTeReS25Ko%e_;E%xKle`U6~=mnzEr#vzioR*z!NWL%VR@UI3<@dOmzjCkUC)PwK3p$RC ztb~&D7L|+eitxR&`(=rSKU{d=vqPIdRdMsFau&_VMOVr=$LC<^cr=7tdABQqmOX=+ zK?aU=uq=oUkB2k5ax-18oHM^Oz4CBDHYW5w_$~9J)V>p(OYyMRr|QHbc2k2E&gk|& zL$y*cy-#GO(f46Da>(1u-g#S}OB_}0vuk=O#a*A9R1QrIl%ca0^dC635P0FSge94t zqE?Ap)%CR>L>kVUYRgt357icxTF+DR*LFg@e(g`bbPdl7c(GCe-i%k<4%Jj5M4Jf% zfwq6c`xUJVo%|VX{xe3#rRT-B5t@Q+yniil?C?$nUL2SjZGEy9>!1HNg-wrXCOQO5 z-&}>RJ3qwPg7*Y-S%EKvWSeFl-)e4-g8tlI8)w9k=>I9lWXCMTV*d+S+%bb3{*wDd zCnjPEIa*??#T`-p!=2{S((G?mTZbKwZ{H`ztE^wUA)zb|1;Z{#zBCYk&r4c}((kbn zPS2E0dZK}d-u;j|;@rn<<}*e_L$KLc;^Erv)Po=>BnzX19MZpdR$)$TX)MMtRGAOE z)m55e`_N;q`Pz?_a2$7FE_>GF=3r{fp)telyGbgDM@sh?53v1}s%m}h;H<(19y%d$lA8@oRiTCGCP7s~FR_mm;ev>e`n_4S_fR{WW7ehhu5$6mb6a@6Q5 z$Osn4mhWK|co=A^ti~o?_));o~-vwm@(^7dn2dX#qijq3CCXOnn4vl9;5izn*925$ZJ?&O^@Va9~TjRR9y2W)AAOhs2i>tK2+N?^WBiSk>z+t4Tc#+4@YY# zdI&%Vn79S2bfRs#!S+RlmFo#njrR|z!e7>j1cr!#{=b0>zrc6nJ3HSj+iK_=8niI{ zuk1T}-+1uRK^HJJ^mq_8)Am436Ft>UdMY(qQ`{VM(ff2(k7p==0S Zfz4&(L=q8R0f7MF<}WO(=53$O{sRizk8A({ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;(YB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z)n@wVVi_42{s1vA(DcN-{5)e7L%rmj#Ny)EfYW}597JrLy`#Nax%S=X7h9^vRM=VQ zY@+BGn{i{ifs^N4wcL-Z@67Pv?}S+uCM7eQ(j$=n4(adpwYKzr-x+3d`Iu)j+ZhfS4}v%n`JJ$ zl83&8kNWXh&TL!7dn-A4Lb+9EsEO!AYb=ZW&ce3UpD)`|CwMc z!RcRZzi`#%>1D^Bh$~v^Cf#%WTybPQ(@FEqcY<#=9(=`p@NwJ=RZjmCe}j4sX>cBS zGHdzej5W#gwNjb5+bxuw?{}}9a9JkcuHLOJvz(T9F#XlNC9om)X5&5)tJH{+-7fjM zNgjSzZ6g;v+IO(5m-UrCi{Y9}nYb}0L@nqq*3Fcv~lZ z&b#a&U^{zB;Tx;HDqDOTow!=9G%Z>_h#m1(S>hq4u+(W)#X(N*Ct8up)y+rZ8TnT( z5RyOOu6S;pmR@M?**E7Z&doG_Jb(Yb{|pz73bV5|PK{W)>iGhd4TVzmJ=U8ee6975 zFE3ieddgpT>Wg%yqYJ)9Eim!8@5%4F!!9g9ETUgXHD2dg@=V#|k7uSlv^d8yXMw2d zuiEF&TJU;d7ccW2kq=EL(tb}1I~`Lku;W>>=)Ue;6PY)EmS=p?yk7J!S^WA< zmDqqgVJY_Nna@L~Y1m$x+4KBw=$#|F?A2=)G0AVgD6+z5soWCorEgW7`O6C)JXq)O zmy1jOd%^ro_A{>d1jZX|F?wEjD8sr!`0rxx%~_`mwKBL(`YbsgKT8pNUio?L+>Zu4 z&X+$nD%N@2Js4VHyg&Pnvb^c$==>>qn>uUe&DdHsP1D4Jv3|vrGi=LR&s}Ltx@0j zt?H|b;W@Ikhj|-Szy049xp|h^%H?kH>W3AZxNG_|4o9hPxfb>4h0LQTJP(EDo@TLL zvB0q_)@fG{ch0@XnPQ<^ov+t1qei`0i>>5rV3h9#Vo*7dS&{~ccw0Y5z9s{KIYA3L z7RCK#j8QqJK4C_|r-Va$CwVC>@m=!6g5U0dyX1D$k0vv3&b(P!KTn^5J%@#f?cVL# z4ktFqK5?G5_)2W$KE733c>=T3d{1Pxtud{?}p_Lby3Bg(+ i@qn%oJ;D$gIarXQFTk6X4J5@1get(SeF`YazyJVmzAh60 literal 0 HcmV?d00001 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 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 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/anonarray.jar b/libjava/testsuite/libjava.lang/anonarray.jar new file mode 100644 index 0000000000000000000000000000000000000000..d2b2070b428025178fc5c1da401fc284ccb43065 GIT binary patch literal 842 zcmWIWW@h1H0D-h}B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zc`l0$&M-1CtYu%vDn)?PNzov?+s zb(<$2@0VMLSUFb)wM^_$a@~1Fb6L^U8z)L9R4rKkk0Yk4&DnwD6XPF7`Gfilo7qfR z6TN@mdw1sCx!ddQ?R**U9G}+M<8+XF@rCZ>_h%Z`CCsl_zvtTp?*7~79vrdv5-Ixa zD51hHy2Wkt>IL>)^M0$Di0GtD432ogvhaV3jnt2i#`y+cJZl79-(-LJ&3-nI@$&{= zoj*(8&YP?D?}QU)_Y(KyzLh0G79F?zA1nCWQTev_;=E2(9qAPsQ~onYM;zpBedDcp zF{=6VlE>3pS49{HB}fQKRWkNJb=zNj*461p#rm738`e#DDL*4%NA5xn?~r#LTu*(? zrH;G*d+cz}tbXfySwW|{x>8RjpJ+8OuZVuSa>=D%4S%fTRve!3JJuzx?axBFO`)^i zXa1gkZX5Zr-bWK&(Y+uva{`rmgny*{lq)$Hh@}=eRw=XlNrKd^v{T3|s+vB#myXj1< z;M+-0QjgE|+whUU)OEpC$nTrc%ItSPh zlD98aN-{Ap&!dr_j7`dfBf!s{?_kz zc^U%w75l{VI5NT(Y6{%tirdL%qT+KzK-?p*df)FY_j7me75Cfyc+!Vb0S=uAYwO#O z%e3B9{)^jt!RLWaTB(XUUod;V^Y-i{KFwA9ze@6+?YP11b$+GMlB(-3ukp?~yr-|n zp~~yl5vFt8NA4N8>aNLT+i}!YIMQr={}kEz&t6%{9o%DjbxYsrl1Edf^l49S?#bxP zW;!%&hhxCR2(^gG8Ui7_9Cu6%nS&o~b665HO~Y`~x-$_|R~THo@j^;^ulKh#>aEL; z*m~Vi*>gT(a)v`Y;y0_c zdV*YOUGa+cmz$&ld*mli$ocK^Ym(Q_iqLGC#K>s-LwCgIXr{fLW9#tCK&fbpT-~4F zvu`l!$#6~7z4Yz+j@OS?^e@@Rw%7PXz?tCxs*k+BOjns8Etzyx{n3rX?Kk*!wwZMO zoHlLOs;G-sN?kv;L?j&wdL`Xe@}}jR*zz#H%S2G6#4wGI25BPR+oyganY%HmWxC)Q!-i4rIc$ kA*FSM#n@9Y!h}{J6Fof#c(byBR4@bKb|8HQnD!YM0IIr1Jpcdz literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+WpB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zzdY~cJ1{aZTmfPMpy`Qu`FV*&MTwQhddWG7#l^V+zTQrbBDRmKtt|IlG5WpXOu*&~(R`~qhVaw<9X0Ct#-JhXd zqwt7C%N4iN22(aG^G#Q@p2ok)aAMV!7d*$ZBn(yhYTvr6^Y|^jm0aL|wpXZN!WRMe zCdJF&wpz_+V-}4&b?{d&8!(wwW-HY=>!GiBqsjo-3M z%gf|f9&qN9ev-Cqijuwf?`4IKr#ilPvH3C@eVfpvzM+@tIG^)7`9#muuS?ePz7q#`QP$u*9zI zuY7I50LTB_3IG5A literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+QnB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zv(|6CwijsXM<5mi;>6z2qDqPuK4t-@yQZIk}lD7ug+feAK{PC@$XV zq9oJtTU)x)cduIRPkr^yX8sR>NzrAKZ=N}qmUe&sbM6Bovf^S37jE*I?`t0-xqF2` zlgHgFDq+uTZng=^7dIJSc6(mjWGf-ZG1avwiQnv%-KqkPw_DBj?2L2r`>xe9^TFFm z*;P-L>YcDpijffhGu3d8UQ%Syvqie!>|=Yn)h{%&EYz4ZjlnTIV*3+^(k~8g<4(<6 z@HzUBlk+lGdEc3Fm3N#Peu<;{by?Gj+p>%d4E;dN1NSS$o38%8{)Zey=IAcf4$xe% zNSt3y&Y|~6vwDxXknrSH?NWMkwv{+fJ1}X>f&ZUUk`|fk|I>K9Md0S)Grwn;zkhrF z{c-UI={X)2O!H0|8E+I?=a9VW+A8zlvP;#S%d7UJ{5}`4d5^e8=`Lr+@(ms(qN*V^ zQyy}%EZq33(zL(y*Q!S|m!+)h5zQ!fdw5PSYS}TrUw0R}%ynKIxFfP!Zne*MRVk*g zxvCdeM!t4gAf+4jGQxhwovqtm#yy|L^l$N2E7>y&}{weS6K>?s$FaQnK%q`m^@Sw934TU-sm`v0nJS^TEqaC8BSSMHO^1 zKIQE*?bLmjEfyVZp&`P@w=(atm4f`@Pwc3{=>GDg>rPckveXn< zshO`%&7A@P(85M6i+!7pIuqZ&?L|gZor0|}d8=q}cxZ?KMcA;FXFke8k{GnF& z7i)T-`qp(?-hKH)NBZEmSIclpIgmvbUkMgQ)ruXx4EqY(Fl z)w8R8fzUO5%LjgP8Fx;XDZH4vh@aheC7;ulC2UU%q+@@?2Y53waWUY|q(J{70i-O8 zstrBUBJ`*OnQ(1LSr}n4_Kb-zp%uu)$foGp(bGCYdm%9OL$pJp3SB39^dfZbV1nsX XL5b`DZ&o&tDpnvg0h+#;8N>qsBh#%s literal 0 HcmV?d00001 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 zcmWIWW@h1H0DnTrc%ItSPh zji1ZpmoqXjY-M6#;02nVSX`W$o@b<&oC9R#2A<9nb`)6iG23i*?_>9S2~I+CWlD*y zs~3A{cqyrHPY`Q$_RFr`B6a%S#%tLw`!vE2F)A%7cznoRF{@{(#kA)aE?;AvRCh#?VR6 z3cZ+){{C=VBXD8YS_l%um|JyGAdEaB}T)?hiYhmrY*4;yiD-#C=q>CP|pb$wgs ztLhaGIA@zEf7|mbK4A7Q_EoA^LLB!$e4yFgcB~}k&7+w|<~daIT{v94=RpFy*_G~` z_|JA4fubw!sNXwMSnyO`Eo^!Gt*i+d&Z}O}4!jeVev9wg>@}~ZswTGQE=}}rlPh=B z{<-Rd*q+V5?H}B^u#hV^Pv*(JHy&yia+e%qx>Q(~togN+ZI0@U;Mte9s?Xl-Tqvf+ zshgb2WScI#dQaWyK)EIP8{fqr{{4k__R_cSZ|sx|j?sDe)Fq{N>w$8%%3Dmiorc=s z$u_Nj>jS(QnYb8mCoEvJA_1gihN=xcp&|6B1DSAbNXZUiG4{lSFrgL5L`hl!-mGjO QX=WhY0;I!%>5qW{0BzS0_W%F@ literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-b{B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zTbcr@IT(Qs0%9JZ=}E~snR(fI$vKI|#i{-Wy$(Bw%<;Xf;=Af<7%P9%y(Ip&dD=}K z^O`s`l`3u>QH}N8w8_(S|5MKo57>VMKJsSL+O=VGzMS#rZ?!f1_A<{%yxn#%;i#ut zH@mdj;dz%b1D;0)e6s5B%U`!c?`Y-Rj^kddnzkI@G~p_z^LhI{X$I%7%q=iTFqn49 zmH(bVEsx}~x{CAjD<*tY;$7r*T4`?k{>{!)KX|>YoNUCEs;C!Usq>}j_{;@&=6KKA z_W1t4{!E#7-=}*?C%2vK&)Rt9)lTn1<*k=GcTC{@xJ$QRN|nz+dVwWdXl+D`*~Z#e zMpbiP-bh?u5WgZVLV3$BJGO}99Wl~Jd|u^l+jlq2{rmcZ%5%0PZ`;QZ;LXUy#eh5F zfWd|YkfIS)8+t?{^r!=waBWD@im(`aWFbsw1u~JNF2I|W4J6A9gqwl%c3|`}FaQ7| C6TvM2 literal 0 HcmV?d00001 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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 B0$Bh6 literal 0 HcmV?d00001 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 zcmWIWW@h1H00HI-B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zPx7za{>aF{Fol_cK@ezqYHmSEWpPPSW?s5pa!z7#acR(PKjA=;*x577^mu}}b-Nac zi7eL$*(194qoa`UWH%o#k0Z-9Z6_%fYo@lnSpFh>0l)6WBm5s0_x#?n_(tNK_S$oA zYOlp*$JhP)^^N&}m6Vhk$K*rr-Q@ch&69qU9l+Vj{QSnsO1};9x3lCs_I6CDf5w*g zWzK>dS7n=aNtU&6vbMF#d}?{QOuFOx#`|J>bC{jBttQO=XxN{=64 z6*2MYpSU%m<%4dF%f!w@Gb+86H%MQ*XJC}Hr{GUpU!)pG()r5)YG;;m#vNIAUC>sz z#am1-d7i_Xr78PY%@a?4q_r+HLSnj6Pvnk1X_mJ)J|=DaI&VXc`Q^QtDa&*c1IyAp zC#7B0kH52NL(gp%TQ2vyLu>xZH->U+?>Jm6(7y4p?9xmB0ykwRiJJ0ex6JI>7rCRo zRByRPp~dxN`G?-^?Q4(KbJqyX-#L}>i+;^RpPbLm>IV;~taT~wkRpB|a4$VEOwVCDGsl_Lg zn_Y9A-KV?0D!MB)bLtYM37R{PMg2H0p5&ETnxCADKL>B0i;BW tstrBaBJ`*OnQ(1Li5Ouq_N0k0p%uu)NT>nctZX19%s{vUNH1jq@c>eEHv9kp literal 0 HcmV?d00001 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 zcmWIWW@h1H00Eu~B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zYPEekcLGg)2*m6_?5LNVlUQ7=>vxu`DM4UP=;=QuTg_iYuz7yxP~vD>;e7G#{Qdx+ zhtAdO`2XfY^Z*B_g`n=}MD^^GOUVoP4(4|2R?QajboM&42enGR|!P{v|@0d=HSd}ayK1qQu zbg|IRb9K$CQ)l_sKR0+X<=lP&argf{*9*7L@LjOAOV&n#$$szQomM|{_Okw`TH3{KKMCy2nfy#4-`<8n0`%s^_7itx-WTt4%$-V^riXjjemTKInVqh zcfa4(+GY?Uo7^FEEPI=BUvpk?#r(Bt?gmS;Z}KT-n`QaGeYG#$TKwvtl}#*-Wu`|K zu98tJQJJWup=(}H^RV!vhb!A;u1)oltLpcDat%N3y(h^y@4!7HXU5yQwU6G}Wpk{K z?oFH}VD)oFqS$AyXB;a94P@6(OujkK=GBJ#J(joLDJ6coe<&`Y{MMoF#F-1^<@e=> zoO=2>sc`wiM8?%cMwT<5mabWNz<5iQ?ZYjc#?J!(%{-NC{4Ms$eEaD~CaFy0JQ_If z-)#pY^U|D$yo%3uA68P#wOby-8FiO;&oqk-Pv@@u#F^tEQuN@XQ=Q_uAAOcuduBhK zS|J-Ptx$HBbNd5{S_>bCquek0FKD~W;E|EKCHrWr(+{zan;DP2ZvF6#U&8ITw2--n z`tn~he)hTgyQ79*9A+VSGB&${m$FS@rX`X>eJuuI6OTP!o^H3^$=lyN`Tq1)`| zZ+{Q)W@O?5M>F>P1&n_rfRx)%wV~%XgdTMu6Rr&@_aQ9Co~IBdv;vvX9EPq5J*grz ZB?A*MBH;#jv$BEYSb*>ukd9*p@c`;@i46b% literal 0 HcmV?d00001 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 zcmWIWW@h1H00EW?B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zc|Q5^dl?xRwlXm=a05+GEh;iJ&`ZuqEG{k$iuINb6tJDV-gn#T&eegh-CmcQZ!=uR zrmgm4!2*$HEG7xo|Xubk^`+Hx#*hIRGxImYcX z_tx+E%dF5or-?yP$3}nq0tFY3IZ^x99Vhak;`r z|Kp$D&)=7kapB_myLZIQ{q3}GvHSO8R@R(;y8rof@#&wu+h?B1a&_erE@Ems zv&_UNxh*}_boQZ@fKy{=swpu0qvO&dU~VR?`jZ z>>a8bgC3Wm|H=Ltq+WWa47Lo!Ed;jRcUA9;!C<#D~zM4rIc$ kAtgnG#n=-V!h}{J6Dhd`c(byBB$nTrc%ItSPh zx>-3{MT`s#%uEan+(6S)i;4^l^^$WEi;Hsue7z4l2-M!*^3&+n+F4=Iwl{)Bw|-IJ z&{Y!I6R|cRvZKoLwU(x@lA-9H-`s!L=dt8h1qgg(|DpUx^OXsg(hh_CwCUf|?!CEv z{Ihn0)HBm15=KT{S*E<1Z1>9b@4Py|>$m!CUi`Ntwyh6YDP_2RzUvL1_mtP?kQqTRmse%V}$PfeG9Eiy1*T&MUuJ>vN%n`!%6 zWz;eQESBv2w*3b8>gpvup8B!-*Co$Vyn4@U;_;p~ro&h4O}IB}7-gg{Ud~v#QTu;n zqJi~8gI6bY^Pk-I`IlJga)jvwyPLYJsIJ$Fi@EcR7SD;SYO3>RJ;`zP$;874B-Y5k zGQH&4Eu6PcqVJII!zGoD7LsvdeW$`(7Jn>#_+pQy%(_ppPQBJGR`v=e6&htzj_IB{ zy>zSfD`RiLe=hGBA5RYM->_anyYTa~&wsCbPrSom_DUl`*!YI}Q^Bi7hVfouvwkxL zcr!9_G2l)i!1zG|Na+Pt8+wXC=urnU;o6YW55i*XsRCg_E0BqlMgqK9*+7!aK)4A= KD*%%b0|Nj9I_BO0 literal 0 HcmV?d00001 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 zcmWIWW@h1H00H(2B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zt&)bbUobK-urV_*a05+GEh;iJ(o4=sEG{k$^7R)E6tUeNZ!Fus%`a2CWCB0y@(j(j z(^wUxIwh1CCrb$h?V52(+-S+%%wsDr-hXiJ$X@H~yEHo0^kP47|B?L1^tiT_rNv0U z^82~H-{(}{+x`B@`|tA^PDKO>D7m!0pRUcN)N*Cw-)nkXbH8uca@j_Rol$Yys~vtD z+&H3JW1Uj&W^?i;9w~JZR94w86Q1+k%J<>^ZL@O^s>5MW*aOuU;bE5XP@!z+oE~h2~o3Kwf~-b@q^_vOP0q2W=^%64lAUpZjyE9ACzwLsptfUfm1BK{Y$;?CO(NcYW|ZC1g~E!34cK}M)v@ms}( zJ=%ZF4^F$`_Pl>#U21#cp5tr>E!In4IPYbzc!)bgLRosVyxlsf&f}GzjfL({Ffpoq zvhTsp67?IYznLdjANykX?#bb`c4@s%^51_)?3l2o;L@HsHq#A`pKTNjoBQOOW}oDn zrG|YxX%mhLKiSZ4xUSB`BJ`_#fHxx(7X$8e2}~7804bHCYC}(_2tDdRCR`g*szq3g dJuM1j+L9so5nTrc%ItSPh zjI-`HykcZvux4gp;0BtWT2y3cte2dVSX^8hlF3CAFI9pu)UfHOv`SSFeD53hU{RhtfS}5WBhw-1rqn*-i25I?4?_cgcZ+X5r z?%$k$e|QsQqq%}w)^HsD`kTwBrBnI$jl5mk>Tl$f_Z@L`Igx9*PuNy<$=O?Wil3EU zaPek7DNUKEETVf{+^+u?x;9xA^kHgO*M zqVc5i&5l^XECYk33rZX>3oKmR!{unX?QX;td!cE**&*et%VtJ93tnIHO48}3%yM6) zb+2a}wt1fWz3R|=p=W2VPj8;PQszj^g}|dqj=fC}l@m|N9A5uOOguVmpW5c=OB;Kv zeN^m@Zo4gi@r!=%_sT050s{6&be#X|QDOBisa0C|$erb%F5Kjtl|NHA$uF_`%uSUg zxAINinQi|ex6p)b+2cl?u1k}{*R6jf$bGjm^zNEdf8CRKSC;D&p^T|KXT=QR0m)v}};ykb3=RNBj?3=4jY%t!C z8?&`;;g5A6nJ25y@Kc}RTW~l_!d&>yzotXwGmd37ZCyVjF<7a$y(e4cMuLp}oXcm7 z1ZOCnRS^~0aA4(i!_IUK!=&N`+rEkicr!9_G2l*_z;uBGkkTotHuRK=(4!7y!nGl# hTZF~fQzOEJRv;58Z3cL=vVkO-fp8O$p1}m-0RWd-F(3c{ literal 0 HcmV?d00001 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 zcmWIWW@h1H00Hg_B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zYGUuT+87xarZ52=1vEXisL0SnFF7Z%xOi^hZ7-%kk=Wyb>2r?lSsJ_b43lnwK$UTo zAd{n3K+7vfH`^O0Vv?ko?U(Am*jg2!@q+o+ij01)sXwn+Zn$ol{q0uzTU+`0>)$hY z-4K45%u#S$Q?~PivCHpUdzVSgx*B}`cI~}F$)@AGmhM*PaoTqwzU+uL-0{pL=k|&l%T`9lwuS98i{JCdep%FBtv?B`*Da3T zyQw9W?S8MGqL_2>SVY|IgMm4sDN4kAGRa?e-M!T$v!6ePxsF0#23X zNq58aJzh?lmz@^L=6r&CHrKQTCp?m)UD|HNPgtA49?ACc+G3tfQ_koY9Z|Ucw(;`A z<-5#1DnBK6#VKw2GKnFdvt-f9V3C*8)KXd+n+=zwTTSRmDsbYuqF6b5={sSsmWNAz zFlfrvxhTk0&YIkkaa>@&XH?1Oh_9@j<{M5MUX#>y6mYvCk(fR2oBzvv`I(+GIVw9Q zP3Pz}ZIhX5ucD*m7`gk)-S#`;0p5&ETnxBV4KU7-08$!4)rOvm5PH;sOt?0rG=;Dj fdrCo=&nTrc%ItSPh zhEGjqPiACbNMvGQ068tSsK`h!IVZ8WI5+UL-ysJP+rz5^R)@^e1GleF zkDHHy%CXSK&XtYRt|UE5|H1w)<~5U$?;nQ!$F_1m&Q&z*+B{>Y@%K5!?`=Q-`}&D3 zfjye3hKDilb}Azy+s~-|SG{BJ?$Np$eSObcgO*ionHJSNb)nfp-wwPg5Ug`iVG&H~ zm?xoTFZ(6xj@|X>SicGL@@DX8e*N^seci(wZIz)HX9=Eh6chLxx~8!F@rQXWl}A=g zFkP_gq~XmCUg<|lI?jKMQ|)1CUSFr9)XK`3+4jTUfV2CA0Y~lkmEL<*uKte_oRI4A z-}eoFPhR`z{|djqsP0s;z_pWSh>t0i>JME$D$=g;yvhuL0Qc12xDboxfcL}4xG z8yk;#wzXLKt~BW2%}&_nTrc%ItSPh zag(OlJYi&D;A3WB068tSsK{6^IVZ8WxOCEee_=;~WwEOy_4>d8PWs+}ktH zpD9oK{(XLTJj1CQlMD|FJa^onseEq1_c`nRR=%%rU+T8}IKMO7%2!o+5$PQ_f7W)@ zJ}$3hGF%~*rf8^A9@GE6k4;vtrpT(+Pm%ffR|&B<-_H5&N|V@e?_yb9{85<_$&;N) zXY=Eo>@FDaH*@_|UNw7XOYHtF?kOHN_&r6(Xvwl8nGsIY9Ob$e z+jXA2ae2#$4H9DiOZUj_{Hw<=@il;87dCZuipn2BW@~{3x(95W6K5^^uO{$BnAblrA;9VXrIQo3OEjm9y_>SRam6Hg$W(UX=2$<)+cJ^M&_ilCM@+ z9D8hNc4GBvQ}3*+ec9JcL*}&16HM`SGH>cqVfoUOWZ)6fwPfkUrQx6E+&kpG>6OWW z?HevQ@Y${r2<@!8`-eNgn~{kN9PikZBrriB0i*nTrc%ItSPh z_mrNPeqm%_P-SLd068tSsK`VwIVZ8WxOI}Rzi^_!@&AYQ?rvMNB~Mc$K;}~O}nD;A^-mbju z>2UW}(&oRy9S@CyqIzmChpGtI;oiDI`T6O%^rDrOcQtJf8&aun!-Hmf+30x!eW$y8(zt{FwumAk> zY?zF8#N^-;9`Bd+MejKKxrmMVVJXMyw5z)=r1B&`6lV(_e|7!DzNDC}D@CUqHJ3|lUhB4fVz8Inqr25->YOgk zkbiiJJ>}-#rm3~c)jh9eD1H4(;Kyu7LxDiM%WCHO3Z=g2c literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/err5.jar b/libjava/testsuite/libjava.lang/err5.jar new file mode 100644 index 0000000000000000000000000000000000000000..9a573abcbb92ce87a0dfedf1c04dc1e359f01e6f GIT binary patch literal 905 zcmWIWW@h1H00E&2B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zPo;1D7G+{!C}U<|068tSsK`_=IVZ8WxHKp_Uno%EU)ycH9n-|PLiCm%y`87)8uglW z1OKdyj;*E#1vtMYHcn2HjyO?f`0@USgh!k09Fm0V8|+V6v`m~RoX2m5KTy`0KXd*Wr|Vn%xsR_kzF5ZD*p(Xnj`84X>C$txH{W*% z?BU4zpzOdQAGOUw>RZ&I%KUA+nu4pAr3yc)`dr`_UMzdsPFMP?0Ec7dA*pE_oj&kO zOzi!VwKeNXbBEHhgs)vQZaps!|6+1vVuIpd#pTEKPOhzcICo8YUE;S>T6uyt$Mc;$ z6c;P_cIbIr-q5GxIJ4~CrfW0yd93R4RkN;I`@l@`WB#G;g;(ElxF3z(Hz6`h%>UER z<}?n=JJbCqPo1|gk(>WV-m?USH++g~!+W#WrupdD`7aQTjF`~M&-v5!&_8bl?Q+vM z4+R}de@|CP4Ba1h=&ao4cVR1cnqOV}NVENIP;t4Gkki(G7c#rUr~SFKV9o^Dla0Rr ztn{CJ+H_p`K-fc#!`2_)-Jj*~_ZVOB23{ZjaDgMd8Jn*NP512DvA&2g%ctP;+cK>S zD}G2%HJtWrtKg3tZVw%M9$VaIIc{TOJWs#pG>`dH=|o*w3B_3-`!{@%op|Dw#L4wP zH16`2Rql6KC%Du2;NB||RVmdya}B%d9e?vI6?gWRI2F_SOzZmcs7V~3PpJNsEUNh= z6IpYB?VP2OP4b=QOY#BUj7(hMgn~T{15*$ZKuXc5+R)Q9LXSF-3D<^{!Vwl@PqzpY aT7gVNDh}{wWdq4E1K~y>eF&J=85jWQkU@I@ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/err6.jar b/libjava/testsuite/libjava.lang/err6.jar new file mode 100644 index 0000000000000000000000000000000000000000..2a12b80e44ccd93cef0ba61bb540743df3bee072 GIT binary patch literal 845 zcmWIWW@h1H00EH-B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zvu10u-(+N9c+AAW0CHMtQIVNma!z7#acNMjzp$f-?d5mxa;9(X`OBc=>KeG+A-eKo zqm-OMR?k$$m5Mh_Y;s<<=wz0^-lh8Ryu|&QYweR(d}RNzxTkypr{gP|Gk0bdpWB=M z?A&|%`}K@B4h8q|G%uX=M6&&$f?w0+1(qC(9xr<{cg5l<2dm`V5_cV*@HLD5NUh-a zsm(e?dOi_6pWhk;RX4tv3_eV>lbSGn zllf^b_o;~=;}gnd_g?=x8 zoZhNj>wL!ZzR0>Sy3W61o}@-cNG+M0D3l_2h;!r8d~WZ3w{Lv8owhi!#_gYUo@kfw zl>G_4hvXx^ace){VV>%h6!2uuY?04Y_XYC}(#2tDdRCR`g*Dn(d~J?$Y(XazD6DKWsCl?^1v P41^njbQ>_OGB5xDeH0<& literal 0 HcmV?d00001 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 zcmWIWW@h1H00GeoB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zHe8ys>=_vtP69E=X{kj;=6cCFiN(dafv3F=JBZj`R-37EtSo2tuQ!KcUmtqpwdIjp zL2_Y>m+CIB*9yV2T#~eYMD7X@_{jW6-}zOw~-9Lnoe6*{P9;sV!a_% zvVF_CGy+#7x264Fw_n2iM3Aig7b|CWQI5V>`%{~zFZXekyB4t6^<>YtU&R~!c7-oF z<&ARa*B7KGa!pa**#F*>PEYz(0c>DAkgB{H&)B3LNJXdS|)A-GE zn>S543ihh2Ud$7*EY&^LvuWpd#@|!9q#Q45Iq>s^X`EZR-GJ*$#E$s91PLPpU&)AR zJQmX%b5A=&G+7;F{d!2u@)3voy*-Ir!|L1j&xqGN6Y}D)ltq*Oi?YPr=llWQj7(hM zAjKZrz_3OFNO6y<4L$Y|denhTxHhD;fUp>Q3?ocv1u_xw9pKH%29je2!i_-s4KPJ8 GFaQA70oD2d literal 0 HcmV?d00001 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 zcmWIWW@h1H00Hp|B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z4|mSbmSALHm;%Hgr==DZS?DF_Bo-Iv2AuXf>>y%0dD~2%p4{Bozup{jRV+;`P!GAo zk*5>ZQSvw|sNG1Fzq9i}`b(#St@01tJIw<%oYD*9i_h7nKYRWAvG4&-HW@bO*wmYv z?sFIJo#KC~KV{R0^eKIMRP}m|!41c#l;YBr-uD;%X?rZx?mU5a z%JBtV_dF*Cn=d${VcvHyac_X5w#KZh8#o(zE$S~My0RY8HnYBKzC(M5Z@2@$Sj?<9 z;acqW0p5&ET;Q<69*w|2L;^^WimDAgS`m8GflRnIq)0|sj6LcQCbR;Xh=>gEW@Q7( PF$3X7Abk`V)eH;(d4az2 literal 0 HcmV?d00001 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 zcmWIWW@h1H00GGgB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zhehw}o@QiVIKjlg0CHMtQIVxya!z7#acN+zx3r^(t-1W}lV!e-)GnIsc3Zpc?vY~= zzfzKGS1g#qrn`hg^~VOo<~1t26L)L=SYyA0Rq^~UfrYH~4fV(BFMRV8St3>b;N0Dv z&+incy}LR;emcXw1XtG<0b$1ttCZYM$XMN0rkGwYK3wW_MenUq z+2MR{-awVoBMSvCm0lOV{Ws5>C4NqryTOvzJLD2i1Ncn?IK%a`}h)2yaSGu$s5fA)xxx ziouGwyU+ja z=rZl)6Q>-Gou+Z7Szi28cfqmCk5_!U&-4CB^`4r>Ba-TOnid;b`6za(U&vp0yrVZN z$MyQ6_v|yaJX#*W7U0+6r<9VqWq$p7->2+B&u18Ha(=?DQS?jtS$Og@rp?a;J|F8= zjN=V__G)fKrHJvHGYJcIxSvgUrYOC~NA9@{S42~*ugJ`eHoKg^$_IEeGI4>U7kkPB z#yb)~N{6W0&{HBpk2;VE*M^iX5f)=lZ3q)uflNf&3-D%T1IaN1;YJ``0Zg3?3;>gL BA_@Qi literal 0 HcmV?d00001 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 zcmWIWW@h1H00G4cB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z?OL2`#hDlwrZF=xhyzVe%gjs6iOVDV z(UqY42Ns3wk((NHKcIVokgwj#q#)-<>czR+H$17jeka!RPoz|IkJ>+m`YDCm65iZy z-#v5g%;z^}ra%8aUw%Ksl#fA&c@8IeSM~k&teVI1>1oYfPLm^&J;KkgXzuJQ53yP? zzr*dwgpR({8TXTBtmjMA;@P~sZ#KW=rK|rJM2UF3e-R&KWH4KzY>E2f*f!JRmL#Ec zaX!gMzw3fk4sJML*xm9;%+lnH=6fS|pY4VP~R9rAqTl`g_AIvOFx_cD04JX+N&r_sVO# zCX?*;iPtxndD*Ubu%o$@tvBRFSF_mRU6HcWw*}1*ad78bCbh;vcIM=thZe57@j&B| zTYoso-o!TYW z9QS#*qw}7LUIoc7a?M3&HQs);;k{L&Mn-Vbmb5P+>-V<3ZZEkTEhzijm-oD6kaI$x z?Vbg%roA^#S-!#{yD2oPO+vTijKP&@3~o_xPaL?^7LeAqPsHNt*~#Hcis$4UyY=GX zq|i49H-uGrM5mvqS!iKv{8u<-VMKxGP3|XV4?|48i(ao&`hM{j+hgmzxexU!U)rs) zGyA>6-fz;9Z`;^&Z4L%+vT_amBk8J@^7zKVck!rcsXB+ zewLJ@$g%yKJ!9{#sTWSZrS{TnW9O{0qr01ynm0BnUblG)>_@((5 z<1|bzu%B>lop-Te+O7?oi_gt_Z+_ph`2UCB{0(d|!fc7zOKKk02JX{$7M|U5XX_5p zQvV;}U;Uf2EqgdS%TI-WtUlzn^p$+XfzkTB(pOE>S z-sm^EI#bsB@B0xS{C4Sv_H?y*|1PIKuNFDIvG@6n^v4HVr1kWUXsxKf7IV$pFi)+} z!{W^;jkHAe%E#U^sx%&zb~fh_a#p* zXaA!*cjeg$e@;pt`#dW`<>ymjdGBnQ?80Y!FYDgs)VIA6XQb~FCM`qHA#Vt&qvt*<#4!^dXKZAEq<45rT zZ$>6A2HeFLFv5`lQelRw4ZS!+=urnU;o6W2H-yF5i!6i*tw1J@0u0>{^t6gFC(?_~k;049b*ZvX%Q literal 0 HcmV?d00001 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 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 a3l<^_Mb2UY-mGjO?W{nU14U>*SLAuSmI literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/indirect_write.jar b/libjava/testsuite/libjava.lang/indirect_write.jar new file mode 100644 index 0000000000000000000000000000000000000000..9393a27a536fc949ccfacfc21edd77d7f362aae6 GIT binary patch literal 1976 zcmWIWW@h1H00D~%B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z7A@C|f|wW>=Oh*v_XcO@3pt9|GEZrJ>!cl!p}qFX zqSy@9?AmE|TUKy#+6m2)depw_K*#L^dXZxC_TI_UT!iWy>`zsscOT6C`JjE~P3z+G zJD=NqyZ&C@o-ya~Ocr_P5c8;AM`wR~sqVdfXA8sOKQq4tYL}TTj;*P~Y1~$)lr!`_bN4soGEdRF+5-{TDROz9sMS zL}ePwU8ClziFsOmNgM%D2fI#G9(z{%yIA7-1~tXUnh9^c?>~!Wy}r>;)tEixbnEAu zlFdJEUEOD%#X%s^l7!wv$qlTCbQ9W&eZHQLdneOuGj$?aX!n-n_aMAobNitk>! zY{HUX+eJhUHrpSNS3TDjH|d+g>36elet(vnUSGF=ALE>)>n&~;QyvDmDS7zhl1n(Hs7E5<6-jiGJ`bMg)@3m-pn;9pUeB&s9eu^W{kkAvo<%Y6hx{n zFVtuZC`(w7;e5P{Sy;5`UPzOcd*|$%mmOTb|4UG^P!Ti~-}*;EpfKv2&ity(?{}{y zm4CZiBF6eCXw{LgI<;%$yb9KZ6y!fTzOlnMM?fo5cHzdFh}$jK?0V|5=F75g4?E~AA0m#D4P931!LLo7tQ_t7WrPiTJv4qmS~Aj-C3udTKPOR_4*;L ztm2z;i+7pcdcPrF+$d{>aaKk`@5WkjdKU`LGv?TFos5x_{O14e>Aagm^s zUy^}{iqn3F0t9RiuMY6mWWBF{WEO*(lD4>nxr&;Ko4C~WB?m(F4w_|l|1$m8-0AZ8 z5dVk8J(rIiNr)*iJYRk8%$=F%*MH|{&wCCFfz|T zXkL@ZL5bVn%Zih%x1a6)H>0q{$6(UFt4eR?9$j%Y?a;=Olme#}SCb51U2h3FF54x; z!7X*^#0n3k^^T2x9@m^48ofI|zl@Eq2rsKw;&|!sqRyV6}PNf_)1kd~D8c_;WgNaTaTuwApxW+1XUY)C4$hS4rIc$Ayp{|i?LS}2oqX?Ow>FI$(`sXpl5T0 t37pL6Cg92R=*FTaT!gWGz&Z`pVOWhtPR0S=tZX0ySb;Dfm>Z12JOJ*D`uzX^ literal 0 HcmV?d00001 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 zcmWIWW@h1H00FBCB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zC3{mpb~7?C_%Jar@B&TG%*!lEtw`2O&PgmT&J8%|cgR7YcJ%?TwM|^2E`p+>HXb&~ zdlsmuxcM4XeAsdzYuc2xncac)CyeE;RD59mqw#o45=ZCVlC<>idn@ywzyAGL_yA*> zM&IC zn>sDMxh{Iw^hLSeOxU(VaH?r~9$(UapBjF+czpSPZ7 zUYfpOw_@AD3@hgC%CEI%oSJ|CZ-Z;9bN0(NotG0EABf&y*y;Yk_hR2M?}@=%-DU>% zz1y3Z<{|yc*HBE(=!hYAF-vY+h{E@#o#i@vm45e}xawl4!qJhEBwM^;0&i(^n^-2> zMVGd`PbI+%EX6qYi&kkR&EDkrLgcS?$A1RYSX<@Oxj_pUYg>R=2oY;4X^ELRkf@8D zaL}8{QRLYEn^*6a-oB!MLjE|w%3vILzD(K&QkTyJVOlXK~z=X=)fklX&=O;~Ul zPn>#4+wQat(dqp>t$AN`Vx~y+6;&Aozp|TTCHnEKlE~!{w_AtVE?Ujvl9w}Mo)VZ? zU^O#(@743q+cR~({y6m`{8v!-!8fHUkJ#;kOmY^dwaI!JJkOfC`1k|<#gQ^y(JNi{ zood~va`ST3k=Ub?T~zeGN#5aE;F1xA>ueGn+$}IT8 z9^lQ$#KnL+TLOa@2_R)sRBhnTrc%ItSPh zLhkHI=YgjF0b*_-&P+>8PSs1!Nh~gw_4Ca>+lQeuupwRqHA=D}<^8 zSo&wDC`(`CIOy>|?B&9Mh4u^VSCy2pKRdf;=J&Rre}DgD{LoX#(SPCU(lenP^FKtK zoE;+(IbSS4a_J}S#(SI(pQ-t-j^ns!WWMX#b$O+Inr;mo*EooD%W>Hkl#k?SV%}e#MF_ zK2bSxX4!`X<(b`v1^{+3n#p#_;*-&hKn{{xPEZyY)koh6f`9!$%|_zwtd_X=mbWT4*c#WouCtlcrOm#_>%LJ@PN? zc*PTHE^tEN(k}hoT@x&Om!0Q08MW8fWA1O;RHe>JZl>avJ!@@CC3nf1?wTmuE~puv z)xRNR_tx|?YZI32b=-WyLH;>sp1xB2Vx$J5_RBt9v|aBIDz!C9~OP z+&E+u#_`2L;9G>%!bkt4%vi4dykB_OiFJ0&k!Yc=Z|`Mit8Lq;9H2VopWvnq-L}j2 zcSrH%2e13PwBwIKbe+YkRot?<^M0FsvygI|T0i^ANWs#|oawq8=UqI%*>zhWWbLqGrL zxM=j3uF@B7x|x;FaqWx9W^Unm{L)joRxPq$rIW_qGOJ(cRM2y)r>+*usxXC#1>;Ze1rXL*Dkbs!V24XFS?Sd2YeBTQ%oGLbSl rx<>STfzVhBj5M@dg02}oei52KF`>kEfHx}}NRkx@HGt+mWCrm7Qu4ns literal 0 HcmV?d00001 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 zcmWIWW@h1H00G+yB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z|APuw>}OmruQg|+uz zg{!>!|AK$bK9#_&yNtusgd+Ij-p<|qS~XZ$_H79t_YSuEN5694tA3x}Dd)W=Vd}oe zmi3D(xn}S9Jt@U0ZuQ5$c2hq)iJ6hrW?j!8Zje3dS-nI}SXT7nv1Q%7jmMZm9pYi@|&YTbFn>U2_i8?=h^=b9d?HgXr z&HrGx`GLT?pCKY2a^|E*@0Llpy6QjUrSEeemQQh4KX)>I#iV%?nw|If9NBy`j_1@+x%L)_jkuB@tC#S_a*%m_S$wQ>15pF zP4_CbvR^vPe;i&Bz`Z(T+lIdCp6`lgJ71gqmSm}C2=HcP;$py^-hi=<1dvi6sy6iW rhtQ)AWWu!}rACCs*wYxogjOIEImHEdv$BC?nSpRKkj?|9N(Kf1{FNk# literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/inner1.jar b/libjava/testsuite/libjava.lang/inner1.jar new file mode 100644 index 0000000000000000000000000000000000000000..382ba64eefc4edc70379e2403155d696c213f4db GIT binary patch literal 1973 zcmWIWW@h1H00D;zB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh ztFOLgd(Fte@Pmngfd^=MW?o)uk)d94PGWI!?xfs&AxDAZ|Cy&WCv%Iitlj!8WQ%(= z|3*8u$FtRrsr{I6;flchiU(fX8m)_E)SgDaVY9Os4*n<%g!XEQz&O zUDEgG{3RD5OGai%r-f^6ewG=%I{DzpTV7T5x{tNYtWIj{0%p%Tk?j0@I)~+MS^4d+ zmb0xBIMco6*3M^Ptm__0b+a4UNbP!TxG?AX?bU3H4^QhfT9^GqEb%W>{rxCkp#J1R183x&qw5;0|DRo2Y{&Q14d8-^7guC+nFu zu2np{`r8lFpDL&0Z|`y6xYzQ``@lsHO!ta7OpjT%&rM4xn)}J_IdM7q0q@?Gr?04) zk^K4WK_2rPWnojYTuyATI?bP(#BKSeK&AWkj?GKtlmxG8{dZWq#r*I=rYmzFKjdlG z4zSaTNeB^C&Drq8@HeN;!Qgve3qIwXZ`hBTD3VXFj&lMgiYGwK2Tv3#Rgh$n8gSb0 zkb{Wr;l)drdW9a?zGx+9g3_jAI}{BS4R>AGp=Nr@-AfGDf@j%nzO@hweo`A zd4Eq>E`L;|mnpdW19N?e=7jZn2W~YxER(hKVrJ47D|zCxBydB*0Wpto(S;7%_DJq8 zdHUhrTRxSK%MDBdTq4~&_Z1s+&%Q9@o$-~gHj+nw9(A2&oO^ZJ<{9M=D_)$`j=%Zz z`G=WReGOLwW2+yyP3(Dbe7juGhJr%1BWf!O9+=dt9X;j5oD=PP-ftnB&%NiBR%*_L zXMVlp3HvL&`u!W0Ydf;;G=AOjrlsC#n^W&EcAea|Ue&ujyt9&P!j%^R?|)Bb>b>YmL3 zE4O_-{N~)=?{kd5fBk%YyF3F|#mWQ67tETb`o`&(#@+A-=@(`lQ&+xkw5Ivb>!{!> zv20}?%g+cD*w6CYFY+ZJ9IkCO&jZdv$JK@`veGyn;-u79uR6XAQWf#*rQmXbbMojc8c`ZT?KQ#=(fFhxm_*XwuNO9 zmzd`AjqQ)Mn5OKOR63j5Cwe~X)SMuh&6j4qy|wIVTY;>(=$#*{|76`Sbe*l-tdn}} zWuSVJsD4h_r+k&QuWlX6c+GW9Ld;JvmP_u<*E3eew>jNwS1ELb4smF@K14H z*~uNZWy%Yta~bT4O*EC5G_&X%PleK2_QLtM_Uya#<%+!5JLR_C&sY90URW*FKJOTx zyWs9CS=)`*dYTjrpe(&-b=(*6ifj zqq8>Xbb-vn3nhIozGMbnDY_LTFFQ+kL1t0=iAnbaLb}dh)OF?P3@pxe{&2@ouTHJ| zp-?UJ7xr8}fi|;);+(pBJMS?3(N=0yeDrA*&&Da2gPhm+{Y?C!I;o<&L!r|mSGeG9 z|F!BaZ{5G#m+nveEf8ma?3qh>!w-(u4|@gWJkB$CU%DeTdv%F?Vs*>$%g003_oU_o zzO=LX>~;Tmu|BVSZa$N~O^!(F1M>iHMkX!>+;t8xxgi0h8VFSzdL4w&qYh-kwIS6= z2#c}TGYAt}flTCD2VEz6VT8~*3z%sjI$=cnTrc%ItSPh z6K-+TPhezVXk=nw-~pPRnU|MZWTcmzlUQ7wJMp#`Q=mxO|F@YXbBs*i#+1!dnet}S z3pEa=l?ON$&33ze^oWJVaQfda83-0_-JpC-@*FO6=6OIeHQfiAU|E~Gv zeLMM6R`y$!KFh|=_-xe}% zeYWLp+Z|)wlRoQ1PqGIlgwE&|w}}zXZE0Vfta9+Sm6M~NcG*I)%cqVTZ)smpH>1oV zVR1^5$EVl#_n-8de@5i;!s?)Y57GGxN+kdha|V(f_qVL~gAiJXK2yjj^mvdloZ8A#g$lNkd80M$SPzW@LL literal 0 HcmV?d00001 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 zcmWIWW@h1H00HL;B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zCxdUjKf=hsaD|D1fd^=MW?o)uk+EKKPGWI!?!?$^VMmd+`<{>MQhk$>R)yYPcdOrb zm9)3M@;#9jrvSyJsuhpb`Vzf2Y0vI_a6aoGi_Q<`KY@>|cQ3qpsr#o@@xAA^>Ce8; zpTD2sP4ayg#{(UYB9^hMbunGt{2}^=T>Hlrf9nd=+PxA|1(q>A>gZg**di!j;?rz( zrlW_SY%bZ*G>Kbyn!{4*qo3~P7)^LtXd&Uf%;%7XSj1QRvh@dTr@DPyaoJ{LpzGNq zd;jND-(T+K7jva>zT3$jQIn#=DO>CVR<4--a7l7vXu{hFKhey41u}li?=9am^{xVk zjLi{c;cTX_(O2~39(OkU3~fKAv+?2mu!YQxljfPl-f2vIw6bApb&lrUU&Z3lH_{4J zt}fJTEUWu0A0qa~;=_j3@h8>Kzkk-!^FDEMZk?ylY(4!g-HH#sOp3IclCS)?ZK;j* z1s}%m9`lV>EtwghB5>fnh)hVaUeO0pU=9xRjlCLW|!%kH;UZY(f!HjD?_VJ z)P9Gh*JeCEsOnPR_|?*EUF*{`XVvaI@-F2`ie>C_5h&nXfB)6_k8esE=f1lqb9Oev z+bFdKhiYGQZP>WxK!&9KhVsp~wDRMNbQK(Cul^@__n-Cycv^zQHebc!I|;zp{tLu> z@Yq%yko_X;vOY8h1RzqwYexcjZtmyKM; zFI?pp@Qcn}?aE^K?(WX>bKt{ivM_c2iEk{q6UyGO&a+88amzmGYnS3xp7pJ4lX!g;*D7~rGRs)DEm_-O zbMaBmg>u)Dmpk?;+$~j-HP$E;$$XbGgE9L~v2dHzvkeCf|EotmH=MR8KS9vjrIpz$ zbL;W>dpFbxRyMvl;bHN&&24fx&y0xF1YOzJ8pSyVBL5qCa~2&s@P6tO_AlmT-l^BD zA1b`+3idyG){p7k$~v~iOZ|NBcP0x?ZdPIDa@l^`C-^QyC})(6IGlEQH``t*YGqh1M{Ua?_*%*O!PZTTHjz zJJx5U+;!3S#sTpFZ$>6A2HXVzFhY<3QgMK)4ZT1>=urnU;o6Xj2ZY7gGd;qDRv;6( k2te0~o`4WKi-83QL?nTrc%ItSPh z2V0LCK4M~Eh+}17-~pPRnU|MZWTKaxlUQ6_8k`#}lqh1$ukc`#mfj=j2`SUKwK8t4 zPSZ*aTq3sY@Ry~m;pwswWeJ6w?q6wt#cX1Eng4~m>D~15X2BPS-`T~Sv;2Oq`2FYK z=g-G8gcZDL?moEs<*umc&j$|+*o5m%DT%yz{?hNG#amO1HUzV2UhjNqDA31 z_&XD?WQd%O(#$*lsBKO{fuzgK37f5F+Udw2dwKrd2R~=+`72EA)mE}EUKXpd?AA4t z6vjlK&soYmi95qh3XcdH3Yr@@|J7<+_)488(DHV4zUH;Jv>u6Z)S6A_8cHR6u*Z5~an9H4`TCC?o zjDy2om9|~jsu|(9O0l*2&dlFDjF#!z5p_#G1RPPei!Tpc$(ax#E_g^n*TMB-Nn7Dh zXM1(_k0Q72a$;|9{F8b&L|dtBg5ut+=4-k+lecF5YM7z+F?6ZZTD$ZaRw1v|VfwcheTe7=j$N4Gy-E0er*i-W9 zvU7NwQgcby#pxHz6>c_tILp-a<=ZVs4x6RSbGIcmoc_I(`*^CmKuLk1`z77py0=VR zA*{XU8S?^D<$j$C=MZ1gDYi_>*JWvi@aBv4?GeJ;RcG?~s_een_A)Z7e3NgK-o1;W zL9HnZJD)xlyH>>QYvWPXy!oIHcYnXNtXEi8r;F1UIp-;2)dJELk4~(eB;hagtIzjk zr10+WgjTUQ^NFuJc%tw51@Q)}7|DJ~=KtO2Fh}Tv$iEa7sl|8hUga13wIDa|isALo z%=y)COBK)e9#^~)as_WUHtKY{YT)j%@0f`ExT>I zx%k-`zx(&%;}}IYE>=7uP;Be}V|V0A#X|{K-b(Mjuwn1&Lo0*DO-~9;y`DGWu3Fks z|GUaL_rJze9x%wMYrMwlyyVI*kwSqphAk`l4BRYCR3r{9Q|b|lo>MZb@5A}r<%%5T zIre=jY9>AZCFA$N#IK`JOFWlhoU^G22w| zi;-9T^FTWt-Z{3slMg$+TfX*&_wqG4xhr1I7FiM*R`~L2*zxt9%HgV}cf{`n&Ena! zW>wH(J|@8nsjAa7z8n0FNR!a2xz+mOs(`YM-)^3(To;Rfx<}1B@LoiE@fNq2++Dl| z6Mj6ApWNlNwz}u3+=6n$t49x|3z{0ay_D3heIoff_DTJdNgWqY~Lgz$gm`+$~4De=U1Ie=h;d>w*11!H87y$MDcvk=b literal 0 HcmV?d00001 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 zcmWIWW@h1H00H+3B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z-*0T5dYchwEHeXxERf2~%S$baPb?}*tW*J$@n8|Xr@8XWk6{m0@X*4amLU$@WQ zTYTQ~yXp7m>+|gy?i_XQ<2gJ_oJGrON}!7Wsgsp6DlBx^o=5DP&Ku9>-s|^1;;X5% z-~P{!KJhtkoEv1udE+aSzrE_jYPOYcj3cTaI*1-H&^BnE)2q|PBvZ^2d0pU{=c2ft zc3aWClWgNBx~z`49dX3yxDaQsB5T-&Qxm5D-PbiaO6=Uyn!8#Lgw_?r*j;x1u5v9) zV?!UWmrUQvxl_xSsuLflK4IOpT3NN-w{Nw{%qaoF6<>1R{A3n=y7BCUpC67KQ}bHZ z{aWN$?)>!N$8Ckq57hE5Ry@gA(!_YU?e?k|1%GGr-bG3QuD!o5Ka`)4cyq6Y;yYOr zi&s3}|6e*L92Ys}e(WhbPno%ld+pad#+OTj9Df7zV-h@>w_E*=;Ux{ZSIg#t#t8d zGrKdTlK;DJ;*qp1KKu>$QBy_b^D9~LObiU~fvG|eHB~@ULhygT%K;+)-brM?Qm<~=F9)hqbx7e zu2^;0AF6OZ zI;TPC`_AY6iHzMspZ$^{+POjo&{UYd1SQE`ism)5BWRk7a7!Flq=IvKr} zM4xy6F%>NIZ|&on_{jRXTbt(FERLUH8}%OA6_)ubYsqmWTv{0rX;ygI)JMqj?E|Y7 zM)M4G-U-%ziOt}?#rn`4kdf++kV(D%a%b+p zQ(G*~DkWWGWnkN?81k^g($`Khl22sC8IHF)Zx`H9sXF@d!oG=VJ#m$jdY)wLoaZI)#4*(~26!_v zaWUX7DuGE72_O}msM^qrPJ|wHAQP?)sUSsIjJ!EjY7{;2%}~La~hIS XkQ^4^&B_K+!UBZMzyey66~qGozFBDX literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/inner_interface.jar b/libjava/testsuite/libjava.lang/inner_interface.jar new file mode 100644 index 0000000000000000000000000000000000000000..b85f38ac02c7bc736daad73d735a593f6a36790d GIT binary patch literal 1644 zcmWIWW@h1H00EB*B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z+SS?Dwg63i1H_U*oSB!GS`?p|SCU$kmYAHXl9X7amz{>=P+zc~xc#|9{2RUp=N$DtWnyf7_|3aL_24H8ngH(^pq8@Mje8iOX$1f69^J z(In=UwNl$86w~-Doh1_Au-2n`^_}d2HF=B-3;|5IyjlhEYHnbz_n`m@+wilmuU&fT z{a*ic*o;QMm$NU5D{?GhTDsowZQA6WN6nglg|mu&Stx&@ziVFaf~ZY*-`*=e_qk}^ z?~gyf@hxbK?PGC1SS0f>Hp)+7Pj<1wmwi7EOiT)Je>OLAyKj1g{p;N};m6S~a#4MvGKM1B|8MN&ZVS1+S4c?WnMgrOips=b1;|4Q!e{myI{wxL7y)Du6ZwjlLIy4&mC1s0fpXtB&o-Ee5Z z_Y+NS`ajnny_DU{y!fUGkMl7pGmC4Pe8EDRH(HJz$ag+bwjyTf=hbr?9wa`Ac(+S9 zU!ia91#iQ!HDYZB8tRI7w)x%{w{xGT6Oeu(!_PCyIAN7kU-vpANAD(|7dmfGmGBAf z-1VPl>94Lg%5z_2y_mhs-s9+m_Frr7E0%V6`D;9x9>3w2^7O?nky?`$-wg{{)$_I^ z@yiR59(Zbpq{n@;bT=LWM$$uIB#C0CM`#31ip>@d6lj}2`N*5J-QSeuw}!6X7`D5! zEcv6+BVR{>CN53ggWPwIB;S~nlTxmHtA43CXT%5gAB&Gzu9V`9ykS`!_iS!u`m;Yj ze!jIXII+;xZKIgm#J>A2fvX;Wcl3{bBJw)@;PC~99E<86r+)YO9_0GZQ=;`{uYEa+W(|H|8zL9w~yWyeiyUAD)^gv zMe(OsKDWfoZi}QgOTH>P|DmD1NbIQfgcEM}rj;+KVA;BIj41#nXG~+DWevJ9=;BeSV24hy>oVD literal 0 HcmV?d00001 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 zcmWIWW@h1H00FNGB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z9&L^*jhGl1rZO`y@BvNF%quQQ%u7zyOU_9wF3t_|&JhX}vE`RwV+-JF75lw7LhFC0 zw0KzWu`5g1Rtq`@y?(~%Z*;cign`MH=O)CV`j+i zitqDwzCW{b|M#!o+x;2VIZYKz=*W0>;bB_%2@XS*??3FqOY^>6ZJ%pyXWnZr`eoa5J zu_g7@87a#pCZd;gz6!3iSfaXP<3ff0rk>EYFP7H}V~$BR+Y~rknaXO}>TXY6GvBu? zD2zpwt?aVsnjQaBQ?E!c?T+U0IxTfGw$Q)$_;icd@WY`8w9aaKxG(BuJ8}8KNw=5T zoi@t)p=ts5gc3R?^ZGZtcs@8Z<J~K456~?Bn^M?oAK=Z% z#KnL+kpq($59H- ILohG^01GZsGXMYp literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/instinit.jar b/libjava/testsuite/libjava.lang/instinit.jar new file mode 100644 index 0000000000000000000000000000000000000000..93684344ef27eb8f425bcd834477a6dbfaefbd13 GIT binary patch literal 766 zcmWIWW@h1H00G|$B{MJsN^pY2TtggnJ^kGD15lLh(9KQM0ZN0g2(mI?M?X(D*WeI6 zUpL>xyv(%J;u77k)S}|d{5&fKLp=j7=c3falGGGkr%EdY13gP4-Sp&SE-skq9AHO0 zyw&U1#K^!9&cwjL2Q)o1uec;LFSA51IVZ8WICtV{ufq-^ZT~l3U6R=|>sHnEirlx0 zjxN<`;#lX>+NF@^^LmRQSvV-%aob40ZxY-|n37&EMkb2(S!%1`6bc7DQH$HMwdD{C2 z7yci!+_;WsYLC$5)DqRO>GkXZ-i%CK47d{wFv^esQW8SdhMtHJdenhTxHhCDg|HZV eLP40&3S^=tn*eWCHjq3s5N-w1#=ykIzyJWXDErj_ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/instinit2.jar b/libjava/testsuite/libjava.lang/instinit2.jar new file mode 100644 index 0000000000000000000000000000000000000000..7573a0dd8eb4feda10c113d9b64e48c2e86a53c8 GIT binary patch literal 889 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 literal 0 HcmV?d00001 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 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 Y705&>ssp@P*+A0FK)3}+FJ}eu05e0j*#H0l literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;sBB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zA9|C#8JQRu5||;T=a%M_WESM4#;0ZGWtQkA=Oh*v=LThGUk;F{^Sf@ADRp~>+0}QC zc6IBWO?$QHu*-zTfED5|ZfMla$h6g#+}UF$`Zuy`*@FY}5Bi1fPZrHyB41ST{`_aV z{JOvYJ_;YOo9A`HV9K9P@txvw_O`{$=94C*UN|?m-|uvBQ{rpi|8w}2+LmrMNJ+?T z`(qsVeU4Mw=NXFC5_J!_rUis3I_fn%oYf`siRWpb^oQ%h`_H?(``v%c({^)a|2sEj za|t<(8bx(Gy#ojvNnU%#N5|puM&B`)7+s`?}c7GVT{RIZ1>EaHzTjW<@zJ?2X)hPw4qoDLP0z@4U54+%h+7Y=ujqSLcHRrRG;6U~=ZU96yKS;- z90MoD?ryoZxyta%WX-Jg-;%EEPrCYx&Ggu_nkn-hyh;gwu{KGR?dP+2xv!G$X89-8 z8>N=c-jJ5spH{+q=t6n&oxLoteJ@^me{{!x`;S(>@oH;Cv#LDm+HT1|_Db*Fr+z>l zHOVY;7QffP$iR>ZOg5Up1c{ntR8YC`nR$7sMX+>q+v~7{$ehbz$&aHRFTJN9x_VpS znthyI`b_~ES|K%4x2)SWNo`UNtG)L}Cc7VubyF(L#8e(RPby9;J9qBfv(K;pG9TcJ z;g&q)wfuE<>GRXw+M*hz z)3^7mn<%&O_?>;4d>qMB_osZFGr^iiKUJpOvM3{~&r$nQHcs1kE}1D`?ru)EKn(;ob40yy^TTU%cccx+u)?J#9w7YR!`dcLlY9r59eK(=6=dT z)?5FMQMI7U-IR(K)rC6Ahkn%mTzo_@<>w`%KLvaZk7q2Y@{lw8+#HizlrM1nZbf6k z{eXhGPsMv|jE=GW$o($j#@uuGrDnOL`aeJ0g)i)qpNMX@pIUKD$b7#rSEum7Uy43O z(+@^HN|v3PV)vhKj<4tswg6yG=VHKJ00H9?2_O|msM^pAB!nJyAQP?)sdz$IjJ?o7 tn9vGjq9!0n(m^)?Jq;pE*a1wHs3zb^kpbSUY#^;HKqv%E()BDL9sryzB~btX literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/negzero.jar b/libjava/testsuite/libjava.lang/negzero.jar new file mode 100644 index 0000000000000000000000000000000000000000..1f23c61da92540fdcd69f74cf74abd91981bad5c GIT binary patch literal 680 zcmWIWW@h1H0D*!EB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zORoyn=rJ-dtOa6Tpy_$3=~byk`FhDYiN(da0lxl+90Y2)mu7EdYI>lqwEbGM%X$fY zDL)rqgBTm#9g5z!)~-D2;{Qk0HsR4h`3L<*=ccJ0IbwU}%)Ytb@13dpUsK0u;W}IS z_<^l+_MEbKv_V2E_@jc zD{Z;mjrIvIb_nv;n39%J@%``AI|`js=au|j*es+a^VB}AdHQmfHa)XI)x{ZZ`@X71 zy3UPGQadtT>CLTT9e+XIHw8JySN^>$-q>w>>+MAcM&9Jg@P8L(r5{;VX>XEo{!NIC z%jOE5>Qg@N)BYDGrCek?J6Y=4ibbuOMY~KjjZd{c=3lcn&{0d|tw>7220rs_TV=-P zu=^V~w%%eY)mrtNTV_qg(kn|GY-ay!5WeN5+h4~R;LXUy#eh40fuV~8kYXEE8+v>r q^r!=waBWDjkFXefoFYtU1u{`$IKZ2g4J6GBgj<00Jzz3mU;qGw-_4c) literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+nTrc%ItSPh z_h#OeWMX1qIKa%nAP+P>4`@niN_=@{Nk)8fNq&)vp$bGuFF7Z%xHvZ`Hvh7Nz?|$m z7KYbVTGWvgSt1 z9xqxxck#oO5}s{;4CeT>oDX>WpS^!+{_e}QPEXJ9-P$cUD@|>Sg{YBdYQ)uE9j2!j zq`Q?Q!YrmuOxO6H8@`9%p1<|~K`E;y6TY15)7DGy)CMlu?s3bQO)zn)v#X;s-)foE zD-uP!3FL;*zmaUmX)Ee-}vlEZfm<2tui}YvN*56rukUFgg7R#1OuJd+q5&U z8_zjq(&cFV&8c4H-mQsOw|-eW_k|Gi`&w~W2SuY&L!PaaUnn5DAw4hd!M4g)>u35`>~sGgxT|fmLUVdWN#}C$2ZcLU z1#c*n{axl8+oi1`7~1*j!NwNL=@tr{t>3QscCK|HV5#PK)`yS`^Wx7(2mtPW}knxE9gR|uM-01=vYYYF|*gpS$ zr?~3(@ALif41OOxoVyk(R0@1L-F;rErrwaxHr{#G747enU;D&b7RL3h`(crC!bUWx z<-CNMPxgTcc3<^&_VGU9$x%AI;jZwc`DfFW-_75>SabP-a;^1Q-@-Q3z2LTdS+cgV zO}FjWuFBU-M7^y(X=oHpJZMt=x^S*b8lUxw42}QA|Ne=4&6Qk{G`;W1*_R$uEut&V zX?yW<9=IFn9(j%T&Jo?VJ1y;o(--DM{onoa#&KER?UH3e5o}Tx2^Z|NGPO<`F66xC zU}+XQQI}17;fcJYsaJl_)L!!H&1{t{F*WDUa}u`X_bks7FuAvGGk@;wYmTjHg)aBY zH0(Y+aNs=7mUkfG!tZ-`Qn>UnpmK>Ft8O zZmVl&%?!HbowEO8Q%=SimqlC(&tG4-z9jF`n?EjfH|%ajC;fh7?RA{{ir9_rBZtCO z@7GRJ+dHo>e$9fb8hbrX2x*n*&(b)&ER^qi!T(!N4CnesUhfF7>e-RAqa`#;{N`s? zxiuNlfvTn{fyeb?CyH!zSlrxhvU=as#r0ZW#RI$T)<57lm)~C E0P93lfdBvi literal 0 HcmV?d00001 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 zcmWIWW@h1H0D+PUB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zK8N<3d}m@{c+bMXAPzJ=FSR_es3@^AKEEurC@m+yTrW8%vADQ2=ys5>qsSXY&fO~7 zPAv^ACifIGm^dU9I5Yw@1VaRL^jp1+9113Hz1Ax-e^I{ON1m{Ssha&!zYOb|Zf#~{ zJlcMDre*Om|MK~t|2{u1%P?2sVt`^m^pxynk7vB*{-*s>C-U1Yw*3xgSN%NY6O~qI zX}NcY*5-8%PbbaXp5o_VBXr?%q;~w7-Pc)b*5(#7{hM9p7v`vtqR`;g_;_Ybpx;!k z?n^UG#dSR!wtQFOknfYWV2fR#6<;F0N!#f69dnaSY-qQA0=hy5nNj>Pm!mFbu z>%PG5aqRQAPh#6SjMpijJ=D-QnMv2?xXqD&5=)QDyqq>?(V3%Ns;9kJ1YNt^(i(-` z6(lTLFEicZ7Twgf=JG7d1BX*9Di`FQQ}+lx9+_nu;Nv*oyueYB#fC+6=MsbH|4v%g zUMjqWjmwzDRm-bh_UYU>_iM)E8+~o3t9|zVzA1V>g@b0zD^nwtRLR;KX{Ut z<(c{8_`uDr1v?6*ed|KcPrv72A?LfNZP~et1#cp)r0!S#etn!x%1G<$8MAYRx%ZE` zzHen;sj{Vzt7?MNZ@pG&9o{P+)ee2?4G0eEO`8{W;YecVBbl=n{oOK4Exv2UILQaP zRm@WGa+~?KHucy2vX}O}*X!Eyg9<$-m|eHnDKqKv$LVv{>HnX4xpc~$s!O@bt%m&` zk>_$-e!gF}*>=js(>)@7i{=NhX+E<`<(c@y;IsS1gVXm)Jb$Yps8-Ou{(Yhlzve5> zWg5$8YotatuUSzQ`k!&H{DfOhA9$UjU-0t>9jS9x{vxsC{Kc7yt?WH#FW#=a$7dMV z`0##!HzN}l1MVyf%rHm*DFdTwL(jqpJ?cOvTpLn`Mp%qJn<7kT1u}7D+5m4>HjqMQ MAlwI}H!_2G0KFcu{Qv*} literal 0 HcmV?d00001 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 zcmWIWW@h1H0DnTrc%ItSPh z{I#rsJAkHs0%Cq3&M!+XD#}brHPlPaNh~go?cK|D$U&ebUBAlk-}R=1m11pQl9V}` zG8W!={(J)WtOJQn{He*R5kDC0rtILnwPVBP-G`6AdHuJ7>BEJMiX48kw3ADg*hq^y znSU$3Z~N=y!MiLQxz4j#UhT9y&vC6_i+aej%q6cjJTM7tRVfLx3Vi)WL}T;k=EX`K z-QkzKooZ*NsfBRI{#bi|z2`?(W`ov6EavGSb3b2u?%8U*Z*ke<*5ruP%&0ZICi^qq zcXL(#eY|STTBBWm8BskctR>|W&d9(Z#KgeBhvZ3!A9E)}dou-!v|cZBd;Vy~;$>5( zuhWm3aAUQgivWjEqoRv{vRulcnVp$ae);dc((L4Dzd&B}?Zu5wR?NTG6#w`(YwP*v z*Ke~ouzeFb!m-L+Y+wHOR;HN?bp3dp9^EK=`=CW3G&{Db=GoU)KF(Q<7D6p0x66(m zJ@JzB|EX8Jtcu@m%(%EVK(4Sm`KI2&fW4XbBa>I#ZMoyPSNO*^>x^r=tbWu>ZHfq; zpgf~~!t! zZH4I*kD{%n{2Ou=SeqA=@0nPyeeP{R-<3zAe9roB4Ad24jI`&?U43Xd*ZU*YHT7Iy zTUl=x_@2=VO*s@J7}axO#;-j`UY=Q6wnTrc%ItSPh znoJSL{TUe;o&zyA(DZ^LLjwc7e{bK-0U{&&Mj~eV+6A=httH3tE#|IoqC` z$u^zMmC|;n#r|X4+1Sm6#&bFX4@|Jy9;3Y@VM5QZ2FG_k@~v!~tNK)ecy7*n+Vy&; zvB*7H`CCm4@RQZ=6TW+|`5L#eZr6clOt%Y51k|;s*`#dB z{3Uf%GDK%p{nYb8mM?Wy|kpNO+K-Gqx91wccflRnIq{M-+7<-f>OlSo% YkrF_FH!B-Rk{Jj$0qMWMG{V3D0GIFI0ssI2 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D-CsB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zSsc4m!xm4YQCXm+cGiX_ca}JEM7AT^Vc=lKji>Zb(EIwbtiusLL_70*fG|83b5CR|f= zPCT)t<@ovIdDGd${mPH5JX+dvJYYrK_Gu+=4Fux$Czf7{a1L{Qc7DUR!?7n~WnZ7T zs8H`y+$+D~!&`5swwC98w=ZmHY~pHG{O=!mTy5K9THquk(R1o8Ae^zc5aDBJlG3 zfdwlXlx}i8)r~sd=6N?wXUiYn0B=SnE(YAm02m2K04Y(RYC}&J2tDdRCR`g*B0*S; dJ?arAv;vt(2_e9nl?^1x41}A2G%FK`2LO}A+y(#u literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;a5B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zhRHLp%wl9<2xVem;02mqP-JLqXkf0FoRe5woEzw?&m1UX>%aQ)wJR?&YOk7iPYOy^ z3{>PW+c$|zaCPQhlgnF-jg}p{C%b3I)iXHK8l{e55YdCTu-e;>ch z-5_&JbPI>Za=$!1bK~_28W#c$&-Lb9-EivW-6Yp(F^v}%WzKvz$w9%kP(dJOvww;R zqf5vZC6xuaGpF5IdA;k>P4li$Pmi+(x{d3;e7vR~d$81J^_=+@9E)Qe*0@|?jCK6e zpZ4(6nW?6tb3FpiuM4*Oc{cIZOdb%V zJDcim{kM%Mm$}`k)aoJO{AI_ggeUF~qzeKkEnk;8*)VFuYd_Dt8TSrkedbzjtI_88 z{=+=6eS4IjaV=(icWAYbol?#52Aw}`e-=5g@&ZT~{>D ztj?Ipt|IO6WV(m&^OoOO1H2iTxEOG! zC16Y<0i=|LstrADA@ryNnQ(1LDGgyU_Vj}=p%utPNlgLXtZX1@W+2=Gq`iPij)4IH DT-OCr literal 0 HcmV?d00001 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 zcmWIWW@h1H0D;yDB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z7kADumtkaJ=mBDWpy>rghQ@{l=J7^)$vKI|#j*XTy$(A_w4OKFZsx21(rJs*3U1Ht zh{fFEZ01c0A+aGbFPtVxoo+FkIN_I`UE}P$7*4&C_s*T_xhozVs6Y3|IDOyDpZ|XT zV0m!JEI??5&C+)Zch{HHCpd^^xc%FFU;6jQ73HEX4-JGb*h-#$}NvZugYp+d@?u51)jX58!RvpZ1)_W24UG}ND--(5)lG@v(>Go8();|7u#p&+-WIlc6HG$?{|Ei3cjk>mqcq6Uw7&LtF_y#R@ih|)(Y|O z>(2Ub{%615HTQyd#y_S2Z$>6A2Hf!p3{50}6uYR}(Bl`OM;*w7YeR}{gvHq75Me?q Zkck$f0p6@^AO*}oxD80314cXp0|2X;$kzY> literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/pr13107_3.jar b/libjava/testsuite/libjava.lang/pr13107_3.jar new file mode 100644 index 0000000000000000000000000000000000000000..8fe3275139b54d21ba0fc312860c8c93366c2d65 GIT binary patch literal 717 zcmWIWW@h1H0D<-jB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zd>WJP_%kvvoB(2epy>rghQ@{l=JCdQ$vKI|#km2e{SG;Z*gAW2Zw(M}Tw?gjt=mv3 z@gdWrV@Hm#$aA*!at9YQIcIoh85X{8f6-;CXHvMZ`u`#M!1oWd)z0}oySKBy_}tv- z+mEX=h~BVD;yLLUu`@2(mgqI$O)vy`aWrvf$a`>#HSaxW>8nDgO4qc|?Yb=a<8>UrQWIzb(mF zEXi}2@4jeI+^_Vfyqt}x0;*3s16`~yuDzVyXrnA2U+s|O!}##RTHi@uif1(ayjtbA zSm;pTD`lO#imCUNt(~gwU&~w2o3O_Iw8zf0GhzAnnTrc%ItSPh zH%}JV*f23LG%+(Ua05**C^9rQ)=SPwEH2IsdYdQYC}Ml~l3vbqr=P1rxTCL>Me5vm zWPVIOH))Y#){>Q(e-g!JJi3x9KE3tC>K{!1u4zcj{=!(J@i^8iNH@jYxY+*Loa$%y z?$_7NWxU}S>ei6B@b$Y8Eu$u$jl#tV({wNAO^-M8tGJvTA+u-mS-$j+>v~P4=S9nQ zpAvX8<4~H%>-_Y^t`9$$4m- z=<)LNgg;kAMGI9VLM}eqrry_HnkQ@QQT5QEMkfv!X=+8!Oi}%4`N>Yj zy1~7kF~FOViHiYuS_h^yB!HCiQMI9`eS{u$AQP?)DJLK-#-6?rCbR;XNU1%*o0SbD Q$qa;>fb=V1reI(I0OMj;w*UYD literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/pr16789.jar b/libjava/testsuite/libjava.lang/pr16789.jar new file mode 100644 index 0000000000000000000000000000000000000000..4c95e0417f7726bc039b3ce7d7f191a32f8ca3d2 GIT binary patch literal 751 zcmWIWW@h1H0D*}WN@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zqJD4JE@fn3aARU%;02mqP-JLkZegjHoRe5woEvc3?~sFtEwfXuB#Y?B&aU%f!kp6b z2X`12UR}Y-qP&i)C!popm1{@NUt$&T{lj2?sv^3R|B=qSy~WSw7#lzT`}irZ1LLd~ zf##CuBHzC8^Qrb2s@y)-Jn_9mm~nkvcK5E+0=7oFmu=HHR!6lazB!V|!J2qNM$ko4 zXjf*Z@%m_Cznd#cSp@TQqTOUTIfd(Wy!*eedr_of=&5sC`Mad8h1uIbt;tb&Creu{ z>T1n6*3)uDzI3N+I&Yszn&hL>^Mx%>>l%49Lod6pY&>gooJmab$+WwfcV3tMou(K1 z^TbBVJbStKL0d}=i&5sVhD6duB>t^eUmZMpq=idaUdJs4jJ)HOqvdHtWso zUCjXvYV!`V&)9W_*Wmi$OZ^^-OdVE@g(o5o{|eY)D{?IE;JRNoUL+QW99ems^X4*3 zmaoDA-i%CK47igCFp`h}QldfChMsH?denhTxHhCjgs>QU(mHwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zRxaTXbY)~z*rO8hu4PPt2c` zSLt`H?(@VMiXW$z==SNhxx7E;z-ldXd&&Mgm&%@`C};7)11qv`c_|6)h;^r;>YEL1$m`U8Y6a8i8%(c$F{yu z)lj~zQM4-Si}A0^%jF}g7q@H+ICI3eO{YkJdxc~$sM^qz0YZ;DkO|j@lqe7uV~=Wt39UdTO2h|vv$BDt PnSpQ%kp2ox9SjTrI)dF? literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/pr179.jar b/libjava/testsuite/libjava.lang/pr179.jar new file mode 100644 index 0000000000000000000000000000000000000000..2eaee64e9592513d377ed83705fd752fb13efb9b GIT binary patch literal 2260 zcmWIWW@h1H0D);0N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zgcoj@EXK&d&;i8kK+_%dl5-M^i*x->dmRoCu)XXar?zd|wO=iHTvuBcYEKkf$g!@8 zOYpmAmFD&*fk{d);$J!)Y?XiD-dVi)1LL`*w&JvNGe3X)`He53r&iXK>1>G!$J^8b z`5lE5^zN)K&|K7%;IlYl*(M9+EAH*vTaHzliL3dndAZ@A$Dj7yPAXUiY;1gw8x~VD(x*!`@IKr*QkKsfVAdo&UG}NrU>w9J#$ozn{mf_L%%T?`!IN zZq%UjaK2cp1Pr!G(4cdI23-I&=&t)FWo0L?4b{HO0SUW_jlxN-{2vaTc{pdLvGJY$^V`cAYTs~)aF_^b2)_FKz^>r1!n~c~k9W?= zXyjU0Q0QgQHaXy^*L;Dly?>*fUh2&B64qY9b)$aGzr%BYQu;BB*81{~Ao>s;=%36H!RwdC*O$A@#Ic0Jf_dFqcd ztAv0I%jBDKpWng;Flb0C+R;NGMl{_|x-4T8<=nPkr;oPG} zQ;%9Mw6of!YO*Is&u2!&<;1@eS@_FaJ#ubjd@KyxwCjC%_RO8vclvZMIN>_Ohi40? zZvKjzREg8>hTAtZ&g;`#_`UzoF|}VTwM$o6q~4$S|8@SsFG-6IZLOWzb=s)YrB2vw zqe8}It-Y;QWjQ?}GgFh_b-mcfOVV-e{kCnBc)^xljLHFi!Pn+4t*WdVOd0p$$!+p`Uh3H||eXx-s5SVKtfS3b_ zJ)zmx`fL7mJ2o~pXST93HZ?akHGlUqHZeE0#x+Max%{1TWKT)$|0Qd#JP~qZTle74 zrA1Fdwx5|3qOg3yi3@jv_?L9`Ha1RdoXN-}AsNvK%zx5oQTA!cuB|B6LX$qGwd&Ng zcKh!8cFTb&rJ0F=fg9-Cf+9n6OK55dya_I^w%;~2%v)P}|N4@v$Lu;oSadm@ViyDj z%)cacYO2~q715gS?Ozr)HGvDP;H6s665pM9cxI0A1HB$0U9!1T+m&?%t~-tkT&cg>q<`7N;5ca zczVK5cfZ3nViG^rwnS|ScG_=}CF9MraWQkB=qIQ1vvf`dvvIXMMnwKPoqgkgTC-M@ zvN?zDcE{}}|CwC0EqvnC?sR6=^>5PO7ETBcS-d}JLXJ+;I;NjTH5P9UeiCx_(&-nz z&*okH?!mb=(8u+GmdF?9-;3-nFjzi%!^!;8$LgNrw&u)8on_OjkG?AZ*mdTp@ilFs zE1zYbDEX+bDUeB&j$N~SSBqU28{34#BA+6bfA!5-)WURX%G{*x8EIRNTvHG5W@O@G zz+D9bBNYiCRfwqC(5pm*9(5oSt_`VzL|BZy+C!Mo3S>fa5xOSy0w1C205DZT^8mUg z^x_SniJh5&0b1ChYeLW02u;o`h+K}Y3q4yRbnOD^!r?&lT!qkO$cmE30=!w-K$09l NxEJVQMo@c!0RW79K%W2r literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/pr179.java b/libjava/testsuite/libjava.lang/pr179.java index 7124dedeef1..9fd4657e893 100644 --- a/libjava/testsuite/libjava.lang/pr179.java +++ b/libjava/testsuite/libjava.lang/pr179.java @@ -4,6 +4,7 @@ // Class.isInstance() and Class.isAssignableFrom(), and isAssignableFrom() // functionality in the event that an interface argument that is not // implemented by any loaded class is given. +// Note that the desired output changed from 1.4 to 1.5. class A { @@ -46,14 +47,3 @@ public class pr179 System.out.println (C.class.isInstance (c)); } } - -/* Expected Output: -A initialized -false -B initialized -false -true -C initialized -false -true -*/ diff --git a/libjava/testsuite/libjava.lang/pr179.out b/libjava/testsuite/libjava.lang/pr179.out index 3a63ad6a52e..0a43def35b6 100644 --- a/libjava/testsuite/libjava.lang/pr179.out +++ b/libjava/testsuite/libjava.lang/pr179.out @@ -1,8 +1,7 @@ +false +false +true A initialized false -B initialized -false -true C initialized -false true diff --git a/libjava/testsuite/libjava.lang/pr184.jar b/libjava/testsuite/libjava.lang/pr184.jar new file mode 100644 index 0000000000000000000000000000000000000000..2770b3d11835bfafadc21d3f6750f12dcf433db6 GIT binary patch literal 757 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 literal 0 HcmV?d00001 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 zcma)94Lnr&8Xk^0zQ+12N;DZJ`4%gK7{*Mg*bzxczQ(taVTFzB;HrsbP(q`y3Kc~p z+f*Z?)ipy&sjii4-Qq4GQ7+Y(tUOAiU8MaSs7 z(HPMok#q~Jv4N2ki9z#?p#|vM#am#F3<#U`gZ%xaq!!R6<{!dH2PK*(fFgr^XFcS6|N7?C(X}DjDiYq*PL!c^B%{G`pNM z9j2N%&eU;{!`c(yjrxTfJhyx?Xyb`L@NDc1>S`@sUY?cxvZL?i`+WOGE;n^5Ai_;A z@m9R^VXD>vY(j9@zikwTb_CU+f1Y&O*Ln|)%Tl*T|GzW5x+Cmi8RODLKeF@ghH!nO z+?$qRCw1S}RFBDS?op7u8D_d)$I2vOz+=z%RmW9RC2{7tQROKE=@oPS73bPd6EF66 z_vTvErm9a+pdU+sUtOwCoVw(Gy26U-4E-nY2*)KcroJob9+8WgQBd4aHBI=L;n`(# zlUGkXzv)Kp_fO*AKWu%P#bXoeHieG1l0B~S%DDEyAO3+mXOXI)TkKHk>r!mX%;W}Z z505>5rZhV$_R`oU`_vASJ|LzBcJU`0o5yg6R^d^njmlQ(41%|zo@8CV@qHQ4zP3;!2yQH z62mhwL|_duSw7fA7f@xj^0?pN2`c80sWPx#Mj4P*-H2dTIr?^k!m4sOU@#M|(A(?-Sqy`niE}K7KypdFwE2Vo`>OW_v5Q<&GqR&-A%_ zMJHe`*WslMug`U+Nn!X#&{pQsypW~FGG1@@pYou98wv)-`JCf(3|8o}{77wOC1HC^ z3=JFF2pem!nKu*^L#J{ewe!h2kRly-F96OfHjsuA!Gp0zcbmDAI2*x4 zP@XqE12gb}y9Ra<6PH6F^q{W@kM^D8&K9Cv;)Cpq%!iLE#nG}U;!{2iXj?g1P|Vh~ zGVWPD$-&`JJH6~ydtQI@`u=Q%ic+cn`92qnaN;MYf14at<4T$-g{F-b{$4!Yne_(j zEL^iO*5XRKV^rse(%Q5Rdz)c;jo{i3C!ONlwZ+l|W7P+w)B3GU_C?uNj;*&+Sj$w4 zO0&rKq`GU=M{aIu{I4nPP00hcWa*26uKd73$@|=VdfVP7hwpi?&5Kl7(@#}m9cpd_ zU6NDmP9Yxs@WU?#yfk~4_a2JJCv!=|v0@IFkN^H*WdoAzAJ8kb&LsxeNt^?!xKwdLz!`x90B&ev47RZAR{_yhmJB}0&I~5ECF#Ga7&h2eISIs zJJfl*-)<)z9I*FbQiwC-yeIx>3-GO*p>D07eA^TsC>mksxqGoa_#N1`HtsijxNX?9 zVFpMBOInG1sn?rua-!8@xoqNTy@F0I_k2S!6ozvz65n12p~-6sRN^30MPNN(!+I{N zyV^(2uU`zIsEH$rw`bwdM8Kh0hg1}zK=x#}f3lzg1$kUhdiw z8g}F!muOZ_?C!v|vtBh~%GSxUTBms)qkbK<_hY@*xB6^QG54jY8uj?;x333BDoqMP zCc7I$`Hg(DJJ|?9Fx-GzGH)r*md4whhdbv;<9+Y2MhJ9uZm2_E+{v zmE()pMa)RlZ@AEQp{-eKqAu+*wJu^p^Cn|FeQ1wph~6VZ>q9&@<>1-%9c z7#kUni-zDqYcL5bK)dO2u{DGvbq*3Mp=nHck#`Qi*$P zE<)WYA}WPic}j#CExH!Xj7yIpr$*tKjqvT4V~b`;;SYa(G87{G6TV$CCnAp`#}eUD z5X?4d$5NpS?)U$8_r79ox(QWQe%h5zs@=wLYt8vM9Z8h(kw K+0mRYhCcw>yt(}V literal 0 HcmV?d00001 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 zcmWIWW@h1H00Ev#B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zLPAmNJs24nE&?$>(DZ^LBQr}&0~JHP9_ROL{+zbC?#_jUhEv}CR9Af8lSPr*ifY16{B6io%EcS9s1ajGMUk?DJ_iYW}bEbnCs;a-%PUOT%sM zKF$W4vJ+W1j@}bT4Rn#GTc=wB1N;;a^CAKr66B!)zTV7+0<|y0@4U^*Ui~#%fMqp% zwk?P2#~_iGRqdjVHcPWLG;^aiMQ*e|9qf8g{z1P``t_t-zL_)kROa7%^7{8*VF%gS zGMa35Cdbu#j|sZBExaLme$h4IUBSC^%Tp61i_*QctIthX_wK%N%B*JfmrA_Hoy9EM zoV+tDg}>gubf>e-Kgc^?<7~i6yKT#g_L+K>`z3RJf22CWc{Q8W6AgnY%VX;~jw>}A zZ`>AL9@z3YiBq)ispRZ`8e2BKPh?%qvos(oo^4`aS&8nJ7aoT<#Qx1s7W@14F~5@V z32)Ka-_?xylli8GM|od<(`hh8vCQFq!;d8zi@&~n7Lps7BC?r1`OMxRr$r^tC%NBZ zuB>pGxm?TntCQ0$Z|OlHQ|<-K3yNj(>`(HE@m5=xtn8Ta|A_NT_5g22CN2it z`3o4(NB}9fp=v|VZwNi=Kqg!pQtm@oj6F{wOlSo%(Q+8NX7sdy(EJOSTA-RCDJ8(0 Rl?^1#0)!udbR08?2LR8Tg0lbs literal 0 HcmV?d00001 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 zcmWIWW@h1H00F*AB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z)+>HCuV7?g$Y5e%;02mqP-J9oXl|&NoRe5woICNR-ysK)w*QUOn8J?k((l+IX5M5j zWqM3?(u@a_8dTa=Hwmw44D&9ml)Ue#ZxZ;J`3J|b^bdkP>93qT-W)wM$1;82=lT2B z&+pe~2$~W2AUWXNoYtdPlDry^2w0lx^`so#aO&jWN1FOOc^X468{IW!+duDwu}Abb zL;l146SyQ9+rIT=e%xEN^~Bscfolr1R!S{9dSS7+5pT@3QlHg(lms5WT`go^?0b8a zW=8spoRFt}GQWcY{v7z-%e2<>lDTpZUrFb)yF8oXZg@R$e&M>mY2UL)uVOsvrEO^OtQg-O%~1@&fGnlJ^lI-mH#|JH+YhH zgt?B@t7kl0HRH&Xbp6=S6a1d{J)dN*+s?m9A^ZAVA^+Kj^uIpmKf}%SNMWbI{C>X_ z!?j$lfwv^ze)_`Pw7o=uYc1pZNs29EE50n5s?_<&?EOW{r>VEhx14w-Y}L0U{pSh$ ziXRQnTrc%ItSPh zeLg7`MvM#$+kuz|XnH}BnX!e1UUE)iadB>dw>MLu$iH=cef^rg!PQ!C)1p)aTN1W# zb~$LxC3K4V^osY1J+Fzw80tj7(e%xT6>tz(@co!cn!M sM>#@|I*nTrc%ItSPh zFN){6>M$`dEN5n506DFo$ii4JIVZ8WI5#NPU)WK^_VTp6-D^aC_p<7W6-3*uTGSy{ z+wh`$^#linW6PKF>`2*tJ7>Gb`hSw~qLZCWE|%9%`Ixg(am(49XOGX>rk~qc{r}J3 zkK6~CZNdeFI!yLnO=T5q{Fwat$eLTribL++v7c5N@34hs(y`E*+uwDbuTT?+-7Isu zUQyuM>D?+f3;36G8Mv8hba1NhoSv9}ySMh`+Zn&NrFb3QBGb6$U)_ZDd!&zBOybIm z3*K0J>r<+;GgqeFlWm$B#hlyjyb_ye_wiEB6_FIyqQ6^S=bpBkFpsNoPaEeQp@7== zUoI5++_n?-c>UB-Q%kKd`rwsP#k@) z?x=2z|5xsw z6j!(E^s@Y&e;&WucKh3_Pg6xp9Bp1~TdKf+*+e!?d6H_ux!4)iW&F=A{DWgyuTMN> zc_sg@OK7L>{2O{*pYAW4*aYa(deqv>L;~iG6=QHdM`>+?whFC@HSrj1n$i^+1 z^UzHR+gayrT}3}eNt|qF3+(^4Php$+e_7*`>hbr#92cvbtm$-)MfFLbOXusS(%Mtl zRVwEv9b>5#ond;?Okc5Ar%0yq7`Ke-v2=^qGgNoE#c*W*X9)0SWa0v+AM8mRn6Qul yQbI@7hMv?BdenhTxHhDOkFXefaz>cY3S=S@cYrr58%T~B2sZ-ho4_onTrc%ItSPh zI~RA^Y-VI&SjWV`zymbBpvc0+&{QuuC$YFVHSoT_l%v4EY0lHE`4+xNjP7o|C4WJx z({r{-++`EPx57a}J)W1BGl#_#-Ye);$InsuLv^T!j`-)8L-=b0T}?Y?Ne#$QLapxP9JSG~1uU;Hct z#CT?yiA_k<*pi}f>vEvKOLg3N@em`SR}&8Ys<|Ydta>=%(8d!RrhUotuiYK`Gj@(NW`FCMW2BQYJo8_DzkS~LSi*Kg@y;WS{!J$7vN6K`8;%9;TpaoRxl8B7-sLMM z#XX$zq&Q7C<;ELz~`#$~MvfMofyxHuoDbBxA@ND^9-D6izZ`k$F zGxqlP4ywZ}R#hej>hj}FSL6M4L?GloAnTrc%ItSPh z*N-S$-UOOz%*epN1EdRzEX>T!^pbNDi;Jzl=3lpCV`Fn>b1Y+1b7R}qq{MApY+S}B z=El~z=Ex?OzjKc4DXIOxWX+W)LJPL|rp2Xo$|^H&ZcCF;X6`Po^U@M$HfC1mXVzwx zR%YJspBA?&J~J;UE6^h;$WKd|Iaw-TW}A3KX}&akd}04kUYV3i$&#TqfMm3S&k)nTrc%ItSPh ze(pRhOMs^C17da{cGOGGNh~h5{+fT?j*X4YnXRsjP0fwX&Ap6G%#E#a&5=zmf9D+8 zQ&RhX$(k!qgv!{=7A#R$W}fYv7MIp3tIWK)Elon1xx2W|OG}*DnAx14*_xSMnR&l| zTHLDm%)FqiK#!y#KP_eE@PfL`z@k;rY8{7T15y$bQ`WE>&3A2N%-|8&%p`k&X#Mah{8|6HhrJ0!nc$qm2n0OOY6PPzj+-Ou0W@blo#r7%J zFM2aFFgyfe9-vDKiYzRQj3G|Roe=BIsGIub!+<5IF_g>A?8hjE&{P0 zENz0ZYb{S4sXMWa?eCgh0U9sZzbsy~S?Xr1@tHH0`p;|Ap4HUuuV=DoS*qmb(bp9A z`bC869EbEd^F93Ama{Cq_d@W|^M4L60v1SmD0rSIU8273SYAAfdD(rzm`ArRDNlL* zeXjfOn|W5-%yY^PJ5(JmTfDq^fosDYMq{Q4s~0wiin=!aJpbX72-kH7&eVOk<=a~> z%~AjR%=EC68`tgJ=LkkeU!H!B-RmK6wPK?X8|cmP0DR5Abn literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/pr8945.jar b/libjava/testsuite/libjava.lang/pr8945.jar new file mode 100644 index 0000000000000000000000000000000000000000..dd244b5b0a34704040e0b95bcda10dcaa33d4372 GIT binary patch literal 708 zcmWIWW@h1H00FZ~B{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z*)>;+d>9!Rz5p=~(DZ^L3riDIz2uz4;^N$ZSZ}640o&{Sdw1n!zPdF%?OL~(ilbxF zS0R?Bkc1zXF0YGybE@vdF6l4#t03t~cot@GkvYKgx;AvY~Pd5ul0-O+D*O#KZWDX(yv zwzxwiG;89gd%!qlWa47L9r?hZM*>Jm0aY7%VnFCo2QuN>kdg+%V(bx)FrgL5M2`Ld UZ&o&tEHe;p2GYNQNrZs`09u{ecmMzZ literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/private_direct_read.jar b/libjava/testsuite/libjava.lang/private_direct_read.jar new file mode 100644 index 0000000000000000000000000000000000000000..e44c0686ea06d6dc0763253e547e2c3c88e7010a GIT binary patch literal 1556 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 K(}CqB0|NkznTrc%ItSPh zx0Z^UYcVk}$gwamNCQnTD9S7YYKqUyOUW!sO)iNCnvtTHoRe5wJT*8vUno()_Hb_E zZe0r(f9S4wZLrQN=3UXtagRcH*(9SyZ!Ike?Yv~NvYHRfPCtl z{%a3XRbL)1pFP*IIPKh<@AC2c8CN`7*uSU`$Z)L3yz0lwg6jDDn zGw`Kk*!E9*N)OHFICy=V?}A#VClfPg-b*%nc~sdc~G_fpvHQVfc_S5OAGMw|SOgJR!v_*T*-gysqwM>ay<6r65V=7vh zqSC**Wlh|7*0rMjB09ol`o1dp)%hxORo9%5xz1tz|D+*z>u2u{Q{LB`ViWy$+>3sf zeBVIV$*ulpbSUq6!?k+uM>aIh=K55hak=7o)uQze#kkhA*(S`q^!(tmSjz_<{f}EO zu6GSodC@+n<6=?n%~f}_S#lg=Tj21sXVK`ZV z-(FEcePX_1oXz^2&X2iM{T~^}NICwsD7;e9KSx^q_4L<_?Oqytw@6g{XZ@UfWcJc$ z0^RyAZ}{hP~c6~mTi%;XGm>r=mE!z3Ny#u({#_TewqU$JT$#mnp-x&_HE zGGQ}yzah8CiZyD6Kt!rnwnvh!;L{D&|3f}WewP2Ys-?c>&U51i**BjwS-U=0G5ldc zO=7m)+SA+^85kA=lbJcLB&LEj;Q^CjUTP6E`Axj<#pEb*Z2#tek+IwF=xko2aEROV z#GY4&Ubt~Et?XVDEqPthJ*W5P)#q9oO?p)ga#~iKD?(Qb96nS2>`nf;IX}O>{{2|k zLHf6uj?-_?)jK;<;#r-SE|vefRpf9~(zNo%D`uBi@^zjqG8H`N{5s7btzkm1o7S4S zLRx!|T$Xh^7rI~(x6{^rEtz+OFWr3^@XS$T#|eek3azH%X4g1Z?qck+6+Q9#=3|Ff z)`l}Y?1WBEh(5u2e|q8_m;95wtK+U^>b$+PbMCn<`ubCMuASvESHhd)-Biu1b2|*C zEbQf4IHyDSTiC1^)j5BEvu@2anKWxcr)YalQdhlM<-Ed4%9}S&d|Wecv2uhB!}7{M z$4*<{5qDmEB72&s;nT$0gYS>USN=Q36~`y7p}T=OZ1P!?_=h(CS7szmzIsUP)Ed=3 zj@vgnUvJhvz>gX=tG{mRV+2NvG%)wuk`py5`6U^!2$~z5>o4pmP`7MKT=kr#Vp_Kr zd91C{^;)a3!qwg(>C%%$YNl#+O4rMnz1NkWy*ur}`AZp!vwkrD2|RXl@)2=A;U61z z8*e^uY;0}(`|a=N>lvalq&)=9+!optOuaGjpF`WC^<_>E`La60uGI)$W7?|j#GL7r zc;B{Q_Pp2c&Emg(lXN?=!dCKXREz2JGxKiy+@G>9~=3WH?`hqdF~^lQ*7%5ygC_V_c>|&S5Dh~@8mvm9_?Byxms-2gRZpD51%I)Yjs# zoafFkyrgzsea77cnQupnSE?_V6R|z?ZF@p#N%1yY^DY;c6@QjD+jxI`|6o#)>(AMN z3l}V(uvA2!Ida?ch*g``>82$=70!3xa4*{=t@8W_&WJr+C+0ucKB4d9)no26j_;`G zX+6sy@u%t4?WDIH+qHzRsPC|Ld_8@B%^XKL<2AaQ*Na?xY-9GJ%7&+4fl1Z zgVGiw6Bh&S3J#dSkN{G3hpG*|!b9j$2QuN>kg7j~#n>w~gbA%cCf1S$QpTVggkE$Z t40-{~HCPQIT#%t#f}RNxmNWyiCCQc`XUPC>RyL4vtUx#kSOnh(^8iG8V2}U+ literal 0 HcmV?d00001 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 zcmWIWW@h1H00EmyB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z!DnmUHZd_UoMB;LkO7)rP?T8))D)kYmy%hOnp_fJUX)pqs+XLTSX?|eBsW+nP^3;z zsrz*kTUY*ykSW|!8DADH3JWqjbKx{kAMa)M=m%-959n=<$@vv&%4%$Qng4~m>0EA; zDeLN99KO5z`<>!>pXYp@b9es!eg7FYG(P9D;hET$JWsMoestcb^LFNr-7?vOnx{aLbR= zVSCTabzU5!d_=+dm~Hf(yFTvS)ENSSSE4UXq|S) z-^<@0EnoJal-ImqvQ_SOkEWM(H@5~gP@U?vGUV}&8k=dYlNjn22R%HSRud~$ar4fTr*l@j?tU8bqcQTaN%FgS znkOeXp7vf@J^5s2!s2jVmZT$TE&IIL`rp{@t<1bQ-DR3#RrHd%7wu-fark?u_{xiy zucfPB_h-*^QoT|p-Was$%CRG}`3|+}DJ{KvF!S5dC~5Ba4Od+Ei0r!CIPXu_RkL?n zHeNjTSFvtMyR4&taYxd$jB^u>K2J%PzUjD+Cvck1p%(F53qR;ZtZd$ECdb>@Wb0+} zHo}SH^yE65gZ~&3IvH#>&3JOie9b)lzPjKO7vCKWwpkqeN^C(X!yh)(w0q>qVHpob z28Q*(^lOPT?W$l;(!dm+ms$i(*b`&DnH)vh?nl~(UH3Kry~%{*qZ99@7g{}eEeaF% zXzZF=C|h*o+6>vZ`Jy6@;(r_JLQ2v;t_ssnno)UvPVKWZGt2kyv$tcMvmohkl0|Ju z(YdWJPA6zg{ZRVf(^EI=W9BV3r<)!|70Gtb*K+c|i{5*121nZ#xsw~p&IG(VCZ8`{ ztjD}kU*go))PTo*iZ^HSxr*^vifb;BRoU?DklQ@PKy!zM+RTNv)e;<~r`d%a-M4V8 z?Bw}gE9jQ{Wm@dUPo-~{r6S_26(loZCg-n@XFm5V7MVG>m*?qbkru)77F8%3!x`*dlU`)dAC2F&?_8qGH7ku#$+sanooQYzZO7jD{UQIrH zfFCt_?mXqa91n~hCT0c(d-9@3CBGyC9!Wu`y_f} z7KaHjBDtwD{FO(J&9J<6`wO4r#4Rrvt5&?QcfQ~jedf{rPk-;%TRwmN`?0WtY_(Jp z&-4C$Gpr_+w_X>wD^LA?Qhd_w&zD82?rc9^bfA`(ldbrL&)i!lKEBJIdv8JkkEW$S zV{E!buKR;LfrG6dTK1$^taeGV*pcjEa=dmPT?t~Gg2(T#lW+bO!AbgXXqb!^Qr`oj?5&B(;XfV*}AMj#SEs;f}7q1RRj zJ?cOvTpLo|g|HZVjf60v70AS%nIYL2-6Zt#0b!COFiB!JiHOny-5T_Cj(% X8stnTrc%ItSPh z9qUaTd6*a&dYKs*gn*_OrzRF9XT;~1mZTQxCFdj-7v~1w&Jzk0iEY1qpd?B|r0U?d z6&dUy8GH9$_;Kk-OG||CEU8D%vL8AwALyAW>GMZD-h`{u_YZ^psU3V75}N$ax9MlE zueID?_x}gy0}g*v7Z#rQsJQokTdld4ELT*Uuyc!D)YrzRUtTZ2>wS}(WzqYXa0e4s zq2t?<+0SbjX+LM$DExix6~UujjJ%$WC8x`tbYI+{z1MiP^#o0hHIg053l)_&$oGZu z+3V#TpE$4Sl+=ktXN8;751u^mskU)WWaimO-&S7POp%Z)zKx}uMUQ2LoSRy9`#|3# z5$+}DRg#=fm$7g?do2)V{UK+$f4j)HfJ+r9NlTbKV?b9?WdYkwpca(OU=qC@ITXX`Rn;F5{69-(N~X@ zuZdHk{610w@NBrxr$qNN=bMox zOwWJh&&s!QKNQLnS*o%46r1zHsUoHvm3p-+zAm^f_^^8UW6nt$f||mqK9Vz19-OqcTxNK9LUByEOQDr=zuDF= zR>yho>`}NTc`Cfaw_3g5@{VD_?@158E%)e@J8mPU;r__TXM0iv+t%$1zl27&9(rlY zqhokRt)=Tgb2#(MQr8*It#fKPn#9$_HZIa#f5|oMwbuMqOC-(QMYBVEmfshzo1Sz4A9&!?rM3g;)wnr>RrWUp{|im8@jo-9AFO~Q;n?c9CtR)&k$JI_0xu&vqgMOW_1 z=s>TqoY>PV<$Z0{qUQ;_DlOX7*C!yh;(q2V%P^f+%P#A=&To`C`gu$AqRo9Xu5Nw5 zMW(s_Vvf&+SxfDc!US83|D~rq%Gmvj_t`s6ubF>^&(s}V8?5tg+IzX=NM;fFLsF0K z2}sv>-uy49FE?*tNTXp-^WkNsljqgDdvNt9GtaJA6s%@8^H}f$^8jx~CN2itr5-Td zAOWN@5LFv`DTvUc4rIc$A(e>;i?Nq<2oqX?OyuMWDfiIzqo;O+{)52s6Inmbv>)Kj S$_CQL0)#xkjPr#B!~*~o7fwq6 literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/shatest.jar b/libjava/testsuite/libjava.lang/shatest.jar new file mode 100644 index 0000000000000000000000000000000000000000..58c3d4f472cb54d237c596f94783d9d0157bf9fe GIT binary patch literal 1274 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 N8xYn4inTrc%ItSPh zyG(9f_zpBRn2~{j9Y}lXCFdj-7pL~0_B!k!()R!Ikvp?)NxZjf*dpDXebm>HLnJn2 z*Zd{UGlkS=_{Dr#d!%>A2gVwWk7srS6qx>*{&}wP{P_3s40?rPi`*9|wfLX7_9)UP zYhn20-$lCGhfhwMaK7&E&djNCv4U)u-ST@bq$$4gbL-$d7`Ekf8~ck+f!Oe^mrmUg z*mJSM@x$`7ld3(Ncq%(=o$4PaOl4hq<2YmZ?7r!8z5nucj=A#m1*v>{^w1}>^1AJ` zO|=54x|}EXyu9UgPfL4~{R{5XTn7%z)$eQ%exr~eY9+ccO({oiVgHo-jH`>EGkWfO zy*Kek*J1JNmfPl?b~^ImrsdCtb?VYUUtq%JBnl@X4mU^rR;c{A4aZ4pS<;jhS$;wmn zAF;|YF|Cxp(7(#+wTrGexBZ(leb492+-$u6f6RZT4Xyl4nujXvd1T(Ncw7B9K*3o< z?zC`Z@zU~;+u5?K%RElhmDs4?QCyHJ^t|a#hN9Jp<1f zJJ0{nEV|Rj#p9Fcmhek2b57zT$$7#@I!lzdesA7TwtM};6TALy2xV3c*>WWEorYsq z?S#WNjoV5eE$W;e@o4*`z4JaDIf{!NPvh4YWi-B*^TOi0>Y(5P;% zQM*2FVNIv_(w&TATFg598_XQG7JchK(s5aRhg)N3)(siKwM8+PpU+&e<>-vh)f0@0 z_Sm$Pzghm_A272qGI25B&XvG;M*>KB6jd8~E=A~32QuN>kn$|TV(d8)VL~gA3C)-2 hn$VLdLeoNE!o^6i0p6@^ASEn7_!dY{0j6vQ1^~uau*CoX literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/stringconst.xfail b/libjava/testsuite/libjava.lang/stringconst.xfail deleted file mode 100644 index e4c7ce34df9..00000000000 --- a/libjava/testsuite/libjava.lang/stringconst.xfail +++ /dev/null @@ -1 +0,0 @@ -xfail-source-output diff --git a/libjava/testsuite/libjava.lang/stringconst2.jar b/libjava/testsuite/libjava.lang/stringconst2.jar new file mode 100644 index 0000000000000000000000000000000000000000..5a6bee37ce07641d0287ca47cf051bdbe3a44edd GIT binary patch literal 877 zcmWIWW@h1H0DnTrc%ItSPh zOnUQny<}uyuwZ6j5CWQBTvC*om!6!TS6pJGmz7L_*t zz(q`)j9~}+optnAKHAb0+PSl0R!-ZF4e~p7Uz}wBM3VpFrw9BG+#|oeOJbBd?S0XSz!06V9E+f;@kW@9o)OYhC3zW0iST%gb%{6Qq_IEOtJu>vVC8 zZKXlcZ=)Ao`;;w@h;DPAv3mdC-)r6cUEL1np3z*f>4(;Ww;cvo4EtG|ik`5uA4_N9ru(p=X#KmV_AaF^w6E2wMv`g-M3-CYxJE%kO5 zzRk6bV=8C=s~e36S*?3x`NH>Fb>6yM5%5jq&A&F4?RU!?{~PAb>{Itt_YYpT!EaaN zh8@46j?1%7yR-fAwrT77Z}{~%^8S&W=X6ME(}|C(K4>z(GkjlZbK}*U$cIxa&gRv* zKC}@Ox%n(e{nHHBmquTBnUho2#{6sRx~ZezxADs>?ss_?CHRlu_``EGr|;tn8$tbq znfs?bnkK;^a^u_v-A}%q&lfg@hFCtzoOE+@e1JD26Bh&S^a)HINB}9dqH04=uLwQr mKqg!pQtCxmj6F>vOlSo%F;i%OH!B-R4Kon#1k&@EKs*33t2Y|} literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/stub.jar b/libjava/testsuite/libjava.lang/stub.jar new file mode 100644 index 0000000000000000000000000000000000000000..1c2fca17bdae2cbe64bf7656f34c94e32469daca GIT binary patch literal 3099 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 literal 0 HcmV?d00001 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 zcmZuy2{aVi8z0%%82fHy&oGu~n3o~O)_7wp>(gLJy)k0&5Md%qm>FwKXbgGT5(*Xb zvXiw5Au&A)iAQu&=|A=Aubg-9x%Yne-240PJ?Hy<-w$Qa&cO%x($b@pjlLS+CSKNx zv~n>A+d3e0Q9oU424m6Mtm7|3?8j?Ja|c_5m9vWu5`jbq2L)il@Zgh}(6As}u!)kM z4utP`C-9`0Gwe50C-s5@gX{XzoWy# zuw+jh&|IwNa|bpb!!O36J1HT)YO&%}?UC!DSSV$?P99+h`*?+@Ow->4L_#!6`XnBCtIYF#?Wd(Y?ack!B%+jx@XmN?IQ~Jzv*drtt1y^(-;_h4q9h5#%%PswOk$ zme&U5>N>+;=l+XJNGg5I1DaP&%^YZcSSr*!spw%&CmP>ewQ{bADe?0`vdZ_Lal_HtTkhW0dCLuPF^F@i&y+tP+H&;FW~DW zA$C`0s~=U&ArX6b7vZZ}>{(WkCa5pJ4i~PO$-kQSoFDhh5Gfexc=aoQ0vi*t_C@0;M=0Hu;WPEmUk+oT zAgezrE~J{{phE9DwnLXqib_w=G-5?|w*VW{+5tl4Zzlb?^goaVi>Ra26OPt=8yvL;m3od%>Kh=!?%}Mp zT5r7Kj*i(@r+Ch-ySh_q{oAp#I6OsZjx8K%pqbvSIVMLmqjR|;NB&mXsWdz-MRj&^ zYIHe+KX!clq$QxR$v83i0s2i6EIDdtppl(_RNuGlL?g;|MZEQ6=4*}#swGs5Y&>R2 z$vsLF%O}<_d6L?f8aiuz!2w-546$-u7}DI{tt4@I__Gdpl*jTz5ra7y_%?dlzsP?T zVD@u#7IITa-mJ)Mva(#@TXa;S{*6z#6V@5%C>E!q%s&n0)f3gss08?+Vj^QT!ROK$ z)cU0tiIKmHO9n&+AwIhzm7NVf#mBikhVmzs4-P$xc>^7e8d}LJ@o8r-=#mu#C8Rv> zRR}m}c!`sFZ```dt$}iliNKt4jb*F1?(v`Go*oz?qkOpumpG^EKdC0T)t2?+crTq= znbzV;*aXT@O?DtkBFDW-b$j9y$g7oGi*Z&hxEebosm-^=gxpL+r|=Zm`AX$;QcpJB zgz1{9D_!g<9T*{5cyv_4dvP{ie?3u%NVe>j35ZK~?|B-Bgs%aKg^%y)jAo_4FLpG^ zn>3JYsK0~|3IA=2Ei9PIzMzW z^wPX%jTSwc^9yk3>t*hXFYR7l1+^rpgJEl&j|uwSkYCF$uWM<<%FCL|fMh)Qir9=& zC+I9GV>`h2wIKYr=CQc=L;FDie}?VXz&(sQ%ltp=2Swa__`h{-&qET+{H}WYQTwaf p9%_)4O?x$NKW=}%?cvUG{EPdZeJFcQt}myYtPWz;&yBCU{{a<#N1p%y literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/update_outer.jar b/libjava/testsuite/libjava.lang/update_outer.jar new file mode 100644 index 0000000000000000000000000000000000000000..f6489d07e7e1d4b70055b56a6d07da4152b10829 GIT binary patch literal 1619 zcmWIWW@h1H0D+!LB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zY9}o%C*&w%dpW4==DMXitlrtt zIT!U7IQ-2LzGCm|GfTj9;X#4=E3JJg(h*W+h9B2n(NHn_$XKKCSaJiS=FKz5?^%Ao zQ~ZAJ&%e)~>oc%hT-u6Va&WGRvzR|8>GsE{qvpNbH+fjZ?8|mD z0X-7LTea@G7I(}1-SedPs2n?Yjm7Es-Qvsy!P9CcFPJWNy*_#Uub=ZbzqxMFuObw` zeOMvF=sYvRDWX|*gYjBrr zJ5_>sIV*4`PZ~2aPxDX_Vdg`gNetP z8Q%uYyd^Sg!}FIW5f@TTMMFbp&V6Sx`_gw~)yBIwjm~60HT~z1kk4kXKd&M1?YC;* zpQm!Y!>VpAT<~E}jQXn5#p^uGPVc%Ic5T|%$F(960p*RmRr%s%qm=IC7K)ylC4K0J z71OLahm#*?#5l(*xCkjs-JJK=;S1Nss&#e_f9?uw*Z#?9ruI&3p~D=L>_0*g?vq5K zZ~SxrI>SZF;g59Lnrh}Z@s3y8D=Zumoi-T>%}e^jE0nkHmBz=&v#0*`y_ha}Q)*$q zL^99aG#ypzIj4ia=5*C8sW?>1=>M^2byh*oV}T#ssL4r3|MF2OU~;+&Oirq3$w>t{ zZN+EiQ_iti1?aCwcCHFWnOBzre>!0ja$#)mg#A|o9&+U zVY9_NXMbV;;%>Tk^NbIFHf%P2K5ujJyOVeK|F8SYxS@4Z6KC7f1y>Df0!x|VckKM< ze059iL#+-Y75!fA#Tk;{TtBWT(|l!jc*_5yUy5e)bb9Sy;W9P%vf1C*wkdWIr{){D zoc41*a?s$cVW+03;F$sq4+EDH&lziHZ2KW#l6~lJ$`u_)q4+mv?wwO{tg|6Z3FKSktDng{>k_Qp)pmer5+-f8bJzfdy$;75jTo>Nm3 zSs%Taljyphhu!#{ooHrC%4B{?u`d^^{;9O3zOw&pr@pe^B5Z?~rPSJK8>D$&KQ>Xm z(EI?z&vOS*YJ|B6VLx@Kt>@FsP~(G50J9$K6(oV8#%*F2tQU#@<3o%~pG zUa-B&vbNnxmo@8DmikvEns^)TNtt0&K4?a^=u1|EP5b_j{V9WzJn>?i41}Dg94!k>alSAB9lbn&|q`^94fx d6<}^b){irn1bDNufwZvzArB)1gCQ%32LOjue!~C& literal 0 HcmV?d00001 diff --git a/libjava/testsuite/libjava.lang/utf8concat.jar b/libjava/testsuite/libjava.lang/utf8concat.jar new file mode 100644 index 0000000000000000000000000000000000000000..55ba02a6a4fedbabf2f27d04f52326c20da29b5a GIT binary patch literal 622 zcmWIWW@h1H0D-nTrc%ItSPh zSyL38-vLeaU}Rtr0Mex;X%@-(dC7?-ddWG7#l@-p_Wn$c0!Qx`+>t+b*_p+fd+h-x zr*x);h8vZl95PmXyEav)aqp8GpQ{DAg}AxB?L-RSITf{@Ju~~H{`<2s{`c(}+Ftxv zA$aIcoz2NB9*MPAIL~hVA=2Dyu=-&1rm#yw8SWXrtN)%!yS2uRC4WutHsPkrZ*@7o zKK~NiT2LT((A}Y9`K=Y#Yi6&=(VNtpl%l;w@lM(F|9`8x8GM_xg??6NG#D%I`0(RM z`BrHAb^v;c}4Ok51OqX-y4NB}9qP_>~)8A6XbkO|j@6oCkf fu}2HSgjOIEJ(2>vS=m4;n1OIRkX{IkOa=x3%dxrv literal 0 HcmV?d00001 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 zcmWIWW@h1H0D=BWB{MJsN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh z6B=YIoLLwcwz4rW@BvLPEy>IY0h*+joRe5woEsADFYPY!Pwaiw_3p;TV-7hUcUlA< z&#<16efh>QzdHrp5!<&;h!U$#HjBD_VomU(uu$!Vt7^{#$9I34(EhD)nb3l!OW(bw z{$l?n{fmFryhs@ty=^tm&deNAIG(vB0F-bl>O_3|X|I6}U z3zkmjYW9BZ-!n(op?1QbFQ0dQ`MYJC(t<=&N5##Sr*&q2i)CCFaQ`^d5f{t+3WWt1 zxjFL~bw8(_j94Rfy|-)G`sg->?`wn?9%>cSpS2($B+%TO>6Y{A&tF$*mmSp+O{)kq z-8t9TEO&Fvtx1Kh2dYc;a~B8wYf=xp;J2W?&E4(zvBkoZgEv+r>CODKK)6ma{QQT= z%5ACAuKG+bl5!|-ZneeD3G6&!s=rRzBjoKTP9^sAJ@1u*M9nWK zKYkWnlRmk!kb5uF6W_c|9c%SVBqQUDp18^%Vv2fO^k-&n&Qh(XNqfJk2Cgm?734Yb z!v6GS%Wp{n&R5D#Ylyz#eZJ_@o!TSafjt);^PJZoS;3y9ad-NIuZ!b+5`r3@8;Z^| z=3Z7j8Da&C;}miu-5j?kO?BFuG3CwW=t+j!3m)4{sJOc2lbb7}ueU;M)vD+; zyB&!+uPc?)#Y(kjJYTx3Su3re-``FD`lC1%19yY3XMGn>5x?N-q4#CMwCXnZB|m!a ziWjJsyj1mlD5w5Y@OzcUg2{TubN5{_Zerz24r~yK^0jE*5wtF>$nDgV<~v`$?dACp z!J@gcd){OQd->W+DH`Yctvq+XS7@rgCTTrwlb+d>lU+F$lc(PBP5UBl5A$ze^VV^;>_M-9MyVa>vr;yWKr?-Joc`!rw>2*57}9 zMUb<-MQ+mHCHw*}5;vW9aFyweQ1a)mS2xwNpS0fPwfe)_J2QDZvL}_U(b@5C*Pu}mpeO&cT@(+Q>=eJIOu`^-n_WL($KF7S~d$aGS`lfQOyoN4jJFRPe zbKfj@R`N)zR{2Z4QHNenaQO6$*k!eCX=e`02lGDJE^;*b_lfguWf$M12kS4GFz^4- z^GUlizHYw4Z8B+I`YWlMCC9(r*!Z&VEl2Q8R+=7SIY;5Ha{JJiq-N3lWwSUR8zp9PT zcgmM}N*}+ZWO_|>YFv_rOhMERGpW+=zn92*Rr~H;g5ZQHzN}l1MX4}Smq!Bq%sgy x8+s{-(4!7y!nGlli3p3amvjgdT7gW|axcJ}6<8iJFfaq*Rv`TaSVA%|001QRWJdr1 literal 0 HcmV?d00001 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 zcmWIWW@h1H0D*~>N@idNl;8x?zOEsTx}JV+`T;1)cIf6N>HwudSOi&_ucM!*n`>~0 zp0As4VqRuiYH^8fSZYymW`3TPf}x%Pmvd2SVo7R>u2ZFzf`Oi;k#2f&G8Y%jbPlj1 zl;=%5zXWLNJ|JcXVi&#SoW$Z{S-;a1Oz^^Mu_bk@Wz{bsHLF1lUc!gn7P z4HgjnwI)3!FL1tb%{Pl3V#mWpRk$o#Z&tjkjJr`ht^)&m$EsJkoSij#qX1DqBEV1JLs}BG9Q9V+6Emx}t=z(QWkGMiS zV*NG$x*Z!En=@Nn8Jn6Ln_GApo0!7WLnjWTO`bVDGU@n<18Wva9y@X1(VY2{P8~gP z=D^9r2TmOT3cLr(zY3oIm)xiD zsQT*OnV;mEsbD>M=JT0n>gx9HVYE21uCvFXZdp?8{{$uN0J&er`(=M!Tu>{@6PkbM zTW8;wCm{z4zU8xQN`Jg>l0m}F6N>r)pGubKEnn<#^m?6umXfVKkET`JbBoYl$!8sB z_ieYDn=72kc+oI0)nfXJ1CtbT7IVygcjEd)hr2s}tCy>9>|>iEyeTu8_chZd>v_j) zOBYTS?XoYo@{rl$A?Yzs$5`*|(4!7y!nGmgc!b5+^D)ANRv;6atI;)~ z=NW`1KVa&B<{)%U=;;=r=|4~tG!>(3LQi!FO=V1|X)wT>l?^1z282OC11~XycmN*W ByAS{X literal 0 HcmV?d00001 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 HcmV?d00001 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 zcmWIWW@h1H009>lWiv1XN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zGi@jO+y!Cns8*voDerQ-;!E^IKQO0U3Qav9UeP8 z`_OdeVOq)qu5@Rt`|*Fkp;y$Zk}zp0J$di7{iQneN-S zJTlUaItwfvCUNVW;tM&+7dL zl4e{LbZ<&LR}{0c{7yFK{*%$Mj+(abcJQ!1J|K12bjkZ2bE{J04~H%ZJ!AOf_{F(; z@;o~I+gsNs%SpDyxSu#ypx~OXbS%I~>ze)itD#RMx)RTbUaI+eX;w$piA4(*cVzQu zDF&AuFvt&aQ|*frI8hp8;<_Md;;WfEzEst|V~+~e5%jupaO&N}BVotRF0eh#BbnT# z^x{D7oxqJkQ>B}JJ<6T_D|g?Ay^|OA?cQ;G!Xhtcd!6RQ(?9yZHNX7*D?WBr_KF1G zqgu{oGF3%M-TO*x!jD&3oU!xuG*j8$Kg(`==8UMr*57hJUg1=m-L>Qz69?PhnXkF* zkBEoF8)Y#}bNtVGaMnWMzrwddKb=aEy!qo5>!kD&1*TiV50^GY#x&Y_{dHg{+;n@o zN3HXfRh+x7GFtxOHmAH05$XQwasfz;|7Nv%>r|?!sB)vQ2i4h;LXUy z#elnD0|p2ZKq}@?wV@Yu2tDdRCR`g*v4^l2dtrt!p%r8TO3{X{7rg{P=nTrc%ItSPh zGi@jO+y!Cns8*voDerQ-;!E^IKQO0U3Qav9UeP8 z`_OdeVOq)qu5@Rt`|*Fkp;y$Zk}zp0J$di7{iQneN-S zJTlUaItwfvCUNVW;tM&+7xi z6_1#B9|avesTm~P6yV>txhp0|eUo{I%&+RIcdD)mis$}l9J#T?E2LES?3s77D>qx8 zumAV&2kQfY-CEN)s@#ukGX1vH{8MWePvYAo;`f5k%v~jZGDs?^Tp*#Vb#6|Qx1G|ayn|W`FTmMWaYyJnWd(8j?d}} zb*k)>`|T%l+j+UZk}RtT=WAxg+mj=@5*U>wmZjd0ycV+2?}o?5fD^}#2Ujy*4RCTj z&L$@il9pzoCgPJ_b~KW8vW?1?!YcS2sTxn702%O4suFJ!k6cIp2C1PSKnfZx|@b{^#`7 zwA@!K&l;{h6+bU}?SeDgx|GTymN|!fm^8KOsIqFr%eSxpGX!`uGI25B&V#_HM*>JW z5>*>|oka8%(V(j@2VL~g&1e9Eet`|MABJ}nElQ3q|4e(}V1F2yF!mmKO Ii5bKL0OKr^UH||9 literal 0 HcmV?d00001 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 zcmWIWW@h1H00B=IWiv1XN^k;cU)K;vT~9wZ{QwkYJ9Kjsb%4?!EP|}e*U`_@%{4eg z&)3a2F)uSMwYWq#EVZaOGe6Ht!BEeD%eg2uu_QG`*QwGnTrc%ItSPh zGi@jO+y!Cns8*voDerQ-;!E^IKQO0U3Qav9UeP8 z`_OdeVOq)qu5@Rt`|*Fkp;y$Zk}zp0J$di7{iQneN-S zJTlUaItwfvCUNVW;tM&+7mD7<^>;ynd9Kot zwT^;8SLfYn^5AfqV|G%j$aBuAdkUY_e@M@%_7w2wFt+D1ENc#OO%1;_^RD^lwDkM` z{(b(d-jJ>#9icFTS90Zbr74X@3k1XTj;aT~>|79Cd3D#6T-OWnKN{C(wYVP771}b{ z(S25g%P}V|E5+A88}~?ji#E#X2=g!Ui2uQuc=qRmvoBt0eQD0SnmcPpyC`#{Q(@b@ zFD@dL%oisvYz=+F(Yh|=Yv7WU|6*<%WUucwUYoVRA;N!y!>Uua&F|@6agoawySCBM zV8+ag9UETlxUB7GJmZO-Vy)e;>8Xz$?>rMze14|&*xVZxB8P9Yl*|1)uX{I5YIjRW z`i=MfNlnMazI|+&@UqZB$n!?|yNVr^hgNa2v$MrG)v?X3%R8<8l%I)vsmomLb77^b zx8$W4W^A@ft2N-c{pn2q(o^TY=pR?P!N}cPp|jyQ)90)YdEL4jePw+n>`QC!thhSa z`5#Y2lPT|CCf$wc_c#3Eu3T^8_VEwvP2RuZHvDjI%jIuk5%zdsgZ?)+IZ)9W*{%Iz8Zs(YBw-Qv(hZ-@Ce@ar&QK%Wphc zb9l+z#rp%i8JV~kaA!+kYCr-=nG{tUdNxJqQ3o>N+K@6W!eZ=M5n)0r$OM#(iLMtt d{UY@C08=%3Y7X#bWdo^T0m9EfdMY!B2LQdUoZ0{Y literal 0 HcmV?d00001 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 zcmW-aI|{-;7=-7~Yjut21uX2;!eB2pf|Y0yvEL+%Y{&ybB6ut-!NLQ0DDlrWGYrFg z^ZmU)05%v4I0QfI%JL!L5vIAitEf=bEjlN;PFq5-HI-?11b4B#61;t#X$cp@5IzFJ zdHhn7nKy6Amh4gQhhKsSopfinterrupt_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); + } +}